From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

window["dash_renderer"] =
/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ 		}
/******/ 	};
/******/
/******/ 	// define __esModule on exports
/******/ 	__webpack_require__.r = function(exports) {
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 		}
/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
/******/ 	};
/******/
/******/ 	// create a fake namespace object
/******/ 	// mode & 1: value is a module id, require it
/******/ 	// mode & 2: merge all properties of value into the ns
/******/ 	// mode & 4: return value when already ns object
/******/ 	// mode & 8|1: behave like require
/******/ 	__webpack_require__.t = function(value, mode) {
/******/ 		if(mode & 1) value = __webpack_require__(value);
/******/ 		if(mode & 8) return value;
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ 		var ns = Object.create(null);
/******/ 		__webpack_require__.r(ns);
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ 		return ns;
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";
/******/
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = 0);
/******/ })
/************************************************************************/
/******/ ({

/***/ "./node_modules/@plotly/dash-component-plugins/dist/index.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@plotly/dash-component-plugins/dist/index.js ***!
  \*******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

!function(e,t){ true?module.exports=t(__webpack_require__(/*! react */ "react")):undefined}(window,(function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=1)}([function(t,n){t.exports=e},function(e,t,n){"use strict";n.r(t);var r=n(0),o=function(e,t){var n,o={isReady:new Promise((function(e){n=e})),get:Object(r.lazy)((function(){return Promise.resolve(t()).then((function(e){return setTimeout((function(){return regeneratorRuntime.async((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,regeneratorRuntime.awrap(n(!0));case 2:o.isReady=!0;case 3:case"end":return e.stop()}}))}),0),e}))}))};return Object.defineProperty(e,"_dashprivate_isLazyComponentReady",{get:function(){return o.isReady}}),o.get},u=function(e){return e&&e._dashprivate_isLazyComponentReady};n.d(t,"asyncDecorator",(function(){return o})),n.d(t,"isReady",(function(){return u}))}])}));

/***/ }),

/***/ "./node_modules/base64-js/index.js":
/*!*****************************************!*\
  !*** ./node_modules/base64-js/index.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.byteLength = byteLength
exports.toByteArray = toByteArray
exports.fromByteArray = fromByteArray

var lookup = []
var revLookup = []
var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array

var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
for (var i = 0, len = code.length; i < len; ++i) {
  lookup[i] = code[i]
  revLookup[code.charCodeAt(i)] = i
}

// Support decoding URL-safe base64 strings, as Node.js does.
// See: https://en.wikipedia.org/wiki/Base64#URL_applications
revLookup['-'.charCodeAt(0)] = 62
revLookup['_'.charCodeAt(0)] = 63

function getLens (b64) {
  var len = b64.length

  if (len % 4 > 0) {
    throw new Error('Invalid string. Length must be a multiple of 4')
  }

  // Trim off extra bytes after placeholder bytes are found
  // See: https://github.com/beatgammit/base64-js/issues/42
  var validLen = b64.indexOf('=')
  if (validLen === -1) validLen = len

  var placeHoldersLen = validLen === len
    ? 0
    : 4 - (validLen % 4)

  return [validLen, placeHoldersLen]
}

// base64 is 4/3 + up to two characters of the original data
function byteLength (b64) {
  var lens = getLens(b64)
  var validLen = lens[0]
  var placeHoldersLen = lens[1]
  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
}

function _byteLength (b64, validLen, placeHoldersLen) {
  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
}

function toByteArray (b64) {
  var tmp
  var lens = getLens(b64)
  var validLen = lens[0]
  var placeHoldersLen = lens[1]

  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))

  var curByte = 0

  // if there are placeholders, only get up to the last complete 4 chars
  var len = placeHoldersLen > 0
    ? validLen - 4
    : validLen

  var i
  for (i = 0; i < len; i += 4) {
    tmp =
      (revLookup[b64.charCodeAt(i)] << 18) |
      (revLookup[b64.charCodeAt(i + 1)] << 12) |
      (revLookup[b64.charCodeAt(i + 2)] << 6) |
      revLookup[b64.charCodeAt(i + 3)]
    arr[curByte++] = (tmp >> 16) & 0xFF
    arr[curByte++] = (tmp >> 8) & 0xFF
    arr[curByte++] = tmp & 0xFF
  }

  if (placeHoldersLen === 2) {
    tmp =
      (revLookup[b64.charCodeAt(i)] << 2) |
      (revLookup[b64.charCodeAt(i + 1)] >> 4)
    arr[curByte++] = tmp & 0xFF
  }

  if (placeHoldersLen === 1) {
    tmp =
      (revLookup[b64.charCodeAt(i)] << 10) |
      (revLookup[b64.charCodeAt(i + 1)] << 4) |
      (revLookup[b64.charCodeAt(i + 2)] >> 2)
    arr[curByte++] = (tmp >> 8) & 0xFF
    arr[curByte++] = tmp & 0xFF
  }

  return arr
}

function tripletToBase64 (num) {
  return lookup[num >> 18 & 0x3F] +
    lookup[num >> 12 & 0x3F] +
    lookup[num >> 6 & 0x3F] +
    lookup[num & 0x3F]
}

function encodeChunk (uint8, start, end) {
  var tmp
  var output = []
  for (var i = start; i < end; i += 3) {
    tmp =
      ((uint8[i] << 16) & 0xFF0000) +
      ((uint8[i + 1] << 8) & 0xFF00) +
      (uint8[i + 2] & 0xFF)
    output.push(tripletToBase64(tmp))
  }
  return output.join('')
}

function fromByteArray (uint8) {
  var tmp
  var len = uint8.length
  var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes
  var parts = []
  var maxChunkLength = 16383 // must be multiple of 3

  // go through the array every three bytes, we'll deal with trailing stuff later
  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
    parts.push(encodeChunk(
      uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)
    ))
  }

  // pad the end with zeros, but make sure to not forget the extra bytes
  if (extraBytes === 1) {
    tmp = uint8[len - 1]
    parts.push(
      lookup[tmp >> 2] +
      lookup[(tmp << 4) & 0x3F] +
      '=='
    )
  } else if (extraBytes === 2) {
    tmp = (uint8[len - 2] << 8) + uint8[len - 1]
    parts.push(
      lookup[tmp >> 10] +
      lookup[(tmp >> 4) & 0x3F] +
      lookup[(tmp << 2) & 0x3F] +
      '='
    )
  }

  return parts.join('')
}


/***/ }),

/***/ "./node_modules/bowser/src/bowser.js":
/*!*******************************************!*\
  !*** ./node_modules/bowser/src/bowser.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/*!
 * Bowser - a browser detector
 * https://github.com/ded/bowser
 * MIT License | (c) Dustin Diaz 2015
 */

!function (root, name, definition) {
  if ( true && module.exports) module.exports = definition()
  else if (true) __webpack_require__(/*! !webpack amd define */ "./node_modules/webpack/buildin/amd-define.js")(name, definition)
  else {}
}(this, 'bowser', function () {
  /**
    * See useragents.js for examples of navigator.userAgent
    */

  var t = true

  function detect(ua) {

    function getFirstMatch(regex) {
      var match = ua.match(regex);
      return (match && match.length > 1 && match[1]) || '';
    }

    function getSecondMatch(regex) {
      var match = ua.match(regex);
      return (match && match.length > 1 && match[2]) || '';
    }

    var iosdevice = getFirstMatch(/(ipod|iphone|ipad)/i).toLowerCase()
      , likeAndroid = /like android/i.test(ua)
      , android = !likeAndroid && /android/i.test(ua)
      , nexusMobile = /nexus\s*[0-6]\s*/i.test(ua)
      , nexusTablet = !nexusMobile && /nexus\s*[0-9]+/i.test(ua)
      , chromeos = /CrOS/.test(ua)
      , silk = /silk/i.test(ua)
      , sailfish = /sailfish/i.test(ua)
      , tizen = /tizen/i.test(ua)
      , webos = /(web|hpw)(o|0)s/i.test(ua)
      , windowsphone = /windows phone/i.test(ua)
      , samsungBrowser = /SamsungBrowser/i.test(ua)
      , windows = !windowsphone && /windows/i.test(ua)
      , mac = !iosdevice && !silk && /macintosh/i.test(ua)
      , linux = !android && !sailfish && !tizen && !webos && /linux/i.test(ua)
      , edgeVersion = getSecondMatch(/edg([ea]|ios)\/(\d+(\.\d+)?)/i)
      , versionIdentifier = getFirstMatch(/version\/(\d+(\.\d+)?)/i)
      , tablet = /tablet/i.test(ua) && !/tablet pc/i.test(ua)
      , mobile = !tablet && /[^-]mobi/i.test(ua)
      , xbox = /xbox/i.test(ua)
      , result

    if (/opera/i.test(ua)) {
      //  an old Opera
      result = {
        name: 'Opera'
      , opera: t
      , version: versionIdentifier || getFirstMatch(/(?:opera|opr|opios)[\s\/](\d+(\.\d+)?)/i)
      }
    } else if (/opr\/|opios/i.test(ua)) {
      // a new Opera
      result = {
        name: 'Opera'
        , opera: t
        , version: getFirstMatch(/(?:opr|opios)[\s\/](\d+(\.\d+)?)/i) || versionIdentifier
      }
    }
    else if (/SamsungBrowser/i.test(ua)) {
      result = {
        name: 'Samsung Internet for Android'
        , samsungBrowser: t
        , version: versionIdentifier || getFirstMatch(/(?:SamsungBrowser)[\s\/](\d+(\.\d+)?)/i)
      }
    }
    else if (/Whale/i.test(ua)) {
      result = {
        name: 'NAVER Whale browser'
        , whale: t
        , version: getFirstMatch(/(?:whale)[\s\/](\d+(?:\.\d+)+)/i)
      }
    }
    else if (/MZBrowser/i.test(ua)) {
      result = {
        name: 'MZ Browser'
        , mzbrowser: t
        , version: getFirstMatch(/(?:MZBrowser)[\s\/](\d+(?:\.\d+)+)/i)
      }
    }
    else if (/coast/i.test(ua)) {
      result = {
        name: 'Opera Coast'
        , coast: t
        , version: versionIdentifier || getFirstMatch(/(?:coast)[\s\/](\d+(\.\d+)?)/i)
      }
    }
    else if (/focus/i.test(ua)) {
      result = {
        name: 'Focus'
        , focus: t
        , version: getFirstMatch(/(?:focus)[\s\/](\d+(?:\.\d+)+)/i)
      }
    }
    else if (/yabrowser/i.test(ua)) {
      result = {
        name: 'Yandex Browser'
      , yandexbrowser: t
      , version: versionIdentifier || getFirstMatch(/(?:yabrowser)[\s\/](\d+(\.\d+)?)/i)
      }
    }
    else if (/ucbrowser/i.test(ua)) {
      result = {
          name: 'UC Browser'
        , ucbrowser: t
        , version: getFirstMatch(/(?:ucbrowser)[\s\/](\d+(?:\.\d+)+)/i)
      }
    }
    else if (/mxios/i.test(ua)) {
      result = {
        name: 'Maxthon'
        , maxthon: t
        , version: getFirstMatch(/(?:mxios)[\s\/](\d+(?:\.\d+)+)/i)
      }
    }
    else if (/epiphany/i.test(ua)) {
      result = {
        name: 'Epiphany'
        , epiphany: t
        , version: getFirstMatch(/(?:epiphany)[\s\/](\d+(?:\.\d+)+)/i)
      }
    }
    else if (/puffin/i.test(ua)) {
      result = {
        name: 'Puffin'
        , puffin: t
        , version: getFirstMatch(/(?:puffin)[\s\/](\d+(?:\.\d+)?)/i)
      }
    }
    else if (/sleipnir/i.test(ua)) {
      result = {
        name: 'Sleipnir'
        , sleipnir: t
        , version: getFirstMatch(/(?:sleipnir)[\s\/](\d+(?:\.\d+)+)/i)
      }
    }
    else if (/k-meleon/i.test(ua)) {
      result = {
        name: 'K-Meleon'
        , kMeleon: t
        , version: getFirstMatch(/(?:k-meleon)[\s\/](\d+(?:\.\d+)+)/i)
      }
    }
    else if (windowsphone) {
      result = {
        name: 'Windows Phone'
      , osname: 'Windows Phone'
      , windowsphone: t
      }
      if (edgeVersion) {
        result.msedge = t
        result.version = edgeVersion
      }
      else {
        result.msie = t
        result.version = getFirstMatch(/iemobile\/(\d+(\.\d+)?)/i)
      }
    }
    else if (/msie|trident/i.test(ua)) {
      result = {
        name: 'Internet Explorer'
      , msie: t
      , version: getFirstMatch(/(?:msie |rv:)(\d+(\.\d+)?)/i)
      }
    } else if (chromeos) {
      result = {
        name: 'Chrome'
      , osname: 'Chrome OS'
      , chromeos: t
      , chromeBook: t
      , chrome: t
      , version: getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)
      }
    } else if (/edg([ea]|ios)/i.test(ua)) {
      result = {
        name: 'Microsoft Edge'
      , msedge: t
      , version: edgeVersion
      }
    }
    else if (/vivaldi/i.test(ua)) {
      result = {
        name: 'Vivaldi'
        , vivaldi: t
        , version: getFirstMatch(/vivaldi\/(\d+(\.\d+)?)/i) || versionIdentifier
      }
    }
    else if (sailfish) {
      result = {
        name: 'Sailfish'
      , osname: 'Sailfish OS'
      , sailfish: t
      , version: getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i)
      }
    }
    else if (/seamonkey\//i.test(ua)) {
      result = {
        name: 'SeaMonkey'
      , seamonkey: t
      , version: getFirstMatch(/seamonkey\/(\d+(\.\d+)?)/i)
      }
    }
    else if (/firefox|iceweasel|fxios/i.test(ua)) {
      result = {
        name: 'Firefox'
      , firefox: t
      , version: getFirstMatch(/(?:firefox|iceweasel|fxios)[ \/](\d+(\.\d+)?)/i)
      }
      if (/\((mobile|tablet);[^\)]*rv:[\d\.]+\)/i.test(ua)) {
        result.firefoxos = t
        result.osname = 'Firefox OS'
      }
    }
    else if (silk) {
      result =  {
        name: 'Amazon Silk'
      , silk: t
      , version : getFirstMatch(/silk\/(\d+(\.\d+)?)/i)
      }
    }
    else if (/phantom/i.test(ua)) {
      result = {
        name: 'PhantomJS'
      , phantom: t
      , version: getFirstMatch(/phantomjs\/(\d+(\.\d+)?)/i)
      }
    }
    else if (/slimerjs/i.test(ua)) {
      result = {
        name: 'SlimerJS'
        , slimer: t
        , version: getFirstMatch(/slimerjs\/(\d+(\.\d+)?)/i)
      }
    }
    else if (/blackberry|\bbb\d+/i.test(ua) || /rim\stablet/i.test(ua)) {
      result = {
        name: 'BlackBerry'
      , osname: 'BlackBerry OS'
      , blackberry: t
      , version: versionIdentifier || getFirstMatch(/blackberry[\d]+\/(\d+(\.\d+)?)/i)
      }
    }
    else if (webos) {
      result = {
        name: 'WebOS'
      , osname: 'WebOS'
      , webos: t
      , version: versionIdentifier || getFirstMatch(/w(?:eb)?osbrowser\/(\d+(\.\d+)?)/i)
      };
      /touchpad\//i.test(ua) && (result.touchpad = t)
    }
    else if (/bada/i.test(ua)) {
      result = {
        name: 'Bada'
      , osname: 'Bada'
      , bada: t
      , version: getFirstMatch(/dolfin\/(\d+(\.\d+)?)/i)
      };
    }
    else if (tizen) {
      result = {
        name: 'Tizen'
      , osname: 'Tizen'
      , tizen: t
      , version: getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.\d+)?)/i) || versionIdentifier
      };
    }
    else if (/qupzilla/i.test(ua)) {
      result = {
        name: 'QupZilla'
        , qupzilla: t
        , version: getFirstMatch(/(?:qupzilla)[\s\/](\d+(?:\.\d+)+)/i) || versionIdentifier
      }
    }
    else if (/chromium/i.test(ua)) {
      result = {
        name: 'Chromium'
        , chromium: t
        , version: getFirstMatch(/(?:chromium)[\s\/](\d+(?:\.\d+)?)/i) || versionIdentifier
      }
    }
    else if (/chrome|crios|crmo/i.test(ua)) {
      result = {
        name: 'Chrome'
        , chrome: t
        , version: getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)
      }
    }
    else if (android) {
      result = {
        name: 'Android'
        , version: versionIdentifier
      }
    }
    else if (/safari|applewebkit/i.test(ua)) {
      result = {
        name: 'Safari'
      , safari: t
      }
      if (versionIdentifier) {
        result.version = versionIdentifier
      }
    }
    else if (iosdevice) {
      result = {
        name : iosdevice == 'iphone' ? 'iPhone' : iosdevice == 'ipad' ? 'iPad' : 'iPod'
      }
      // WTF: version is not part of user agent in web apps
      if (versionIdentifier) {
        result.version = versionIdentifier
      }
    }
    else if(/googlebot/i.test(ua)) {
      result = {
        name: 'Googlebot'
      , googlebot: t
      , version: getFirstMatch(/googlebot\/(\d+(\.\d+))/i) || versionIdentifier
      }
    }
    else {
      result = {
        name: getFirstMatch(/^(.*)\/(.*) /),
        version: getSecondMatch(/^(.*)\/(.*) /)
     };
   }

    // set webkit or gecko flag for browsers based on these engines
    if (!result.msedge && /(apple)?webkit/i.test(ua)) {
      if (/(apple)?webkit\/537\.36/i.test(ua)) {
        result.name = result.name || "Blink"
        result.blink = t
      } else {
        result.name = result.name || "Webkit"
        result.webkit = t
      }
      if (!result.version && versionIdentifier) {
        result.version = versionIdentifier
      }
    } else if (!result.opera && /gecko\//i.test(ua)) {
      result.name = result.name || "Gecko"
      result.gecko = t
      result.version = result.version || getFirstMatch(/gecko\/(\d+(\.\d+)?)/i)
    }

    // set OS flags for platforms that have multiple browsers
    if (!result.windowsphone && (android || result.silk)) {
      result.android = t
      result.osname = 'Android'
    } else if (!result.windowsphone && iosdevice) {
      result[iosdevice] = t
      result.ios = t
      result.osname = 'iOS'
    } else if (mac) {
      result.mac = t
      result.osname = 'macOS'
    } else if (xbox) {
      result.xbox = t
      result.osname = 'Xbox'
    } else if (windows) {
      result.windows = t
      result.osname = 'Windows'
    } else if (linux) {
      result.linux = t
      result.osname = 'Linux'
    }

    function getWindowsVersion (s) {
      switch (s) {
        case 'NT': return 'NT'
        case 'XP': return 'XP'
        case 'NT 5.0': return '2000'
        case 'NT 5.1': return 'XP'
        case 'NT 5.2': return '2003'
        case 'NT 6.0': return 'Vista'
        case 'NT 6.1': return '7'
        case 'NT 6.2': return '8'
        case 'NT 6.3': return '8.1'
        case 'NT 10.0': return '10'
        default: return undefined
      }
    }

    // OS version extraction
    var osVersion = '';
    if (result.windows) {
      osVersion = getWindowsVersion(getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i))
    } else if (result.windowsphone) {
      osVersion = getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i);
    } else if (result.mac) {
      osVersion = getFirstMatch(/Mac OS X (\d+([_\.\s]\d+)*)/i);
      osVersion = osVersion.replace(/[_\s]/g, '.');
    } else if (iosdevice) {
      osVersion = getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i);
      osVersion = osVersion.replace(/[_\s]/g, '.');
    } else if (android) {
      osVersion = getFirstMatch(/android[ \/-](\d+(\.\d+)*)/i);
    } else if (result.webos) {
      osVersion = getFirstMatch(/(?:web|hpw)os\/(\d+(\.\d+)*)/i);
    } else if (result.blackberry) {
      osVersion = getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i);
    } else if (result.bada) {
      osVersion = getFirstMatch(/bada\/(\d+(\.\d+)*)/i);
    } else if (result.tizen) {
      osVersion = getFirstMatch(/tizen[\/\s](\d+(\.\d+)*)/i);
    }
    if (osVersion) {
      result.osversion = osVersion;
    }

    // device type extraction
    var osMajorVersion = !result.windows && osVersion.split('.')[0];
    if (
         tablet
      || nexusTablet
      || iosdevice == 'ipad'
      || (android && (osMajorVersion == 3 || (osMajorVersion >= 4 && !mobile)))
      || result.silk
    ) {
      result.tablet = t
    } else if (
         mobile
      || iosdevice == 'iphone'
      || iosdevice == 'ipod'
      || android
      || nexusMobile
      || result.blackberry
      || result.webos
      || result.bada
    ) {
      result.mobile = t
    }

    // Graded Browser Support
    // http://developer.yahoo.com/yui/articles/gbs
    if (result.msedge ||
        (result.msie && result.version >= 10) ||
        (result.yandexbrowser && result.version >= 15) ||
		    (result.vivaldi && result.version >= 1.0) ||
        (result.chrome && result.version >= 20) ||
        (result.samsungBrowser && result.version >= 4) ||
        (result.whale && compareVersions([result.version, '1.0']) === 1) ||
        (result.mzbrowser && compareVersions([result.version, '6.0']) === 1) ||
        (result.focus && compareVersions([result.version, '1.0']) === 1) ||
        (result.firefox && result.version >= 20.0) ||
        (result.safari && result.version >= 6) ||
        (result.opera && result.version >= 10.0) ||
        (result.ios && result.osversion && result.osversion.split(".")[0] >= 6) ||
        (result.blackberry && result.version >= 10.1)
        || (result.chromium && result.version >= 20)
        ) {
      result.a = t;
    }
    else if ((result.msie && result.version < 10) ||
        (result.chrome && result.version < 20) ||
        (result.firefox && result.version < 20.0) ||
        (result.safari && result.version < 6) ||
        (result.opera && result.version < 10.0) ||
        (result.ios && result.osversion && result.osversion.split(".")[0] < 6)
        || (result.chromium && result.version < 20)
        ) {
      result.c = t
    } else result.x = t

    return result
  }

  var bowser = detect(typeof navigator !== 'undefined' ? navigator.userAgent || '' : '')

  bowser.test = function (browserList) {
    for (var i = 0; i < browserList.length; ++i) {
      var browserItem = browserList[i];
      if (typeof browserItem=== 'string') {
        if (browserItem in bowser) {
          return true;
        }
      }
    }
    return false;
  }

  /**
   * Get version precisions count
   *
   * @example
   *   getVersionPrecision("1.10.3") // 3
   *
   * @param  {string} version
   * @return {number}
   */
  function getVersionPrecision(version) {
    return version.split(".").length;
  }

  /**
   * Array::map polyfill
   *
   * @param  {Array} arr
   * @param  {Function} iterator
   * @return {Array}
   */
  function map(arr, iterator) {
    var result = [], i;
    if (Array.prototype.map) {
      return Array.prototype.map.call(arr, iterator);
    }
    for (i = 0; i < arr.length; i++) {
      result.push(iterator(arr[i]));
    }
    return result;
  }

  /**
   * Calculate browser version weight
   *
   * @example
   *   compareVersions(['1.10.2.1',  '1.8.2.1.90'])    // 1
   *   compareVersions(['1.010.2.1', '1.09.2.1.90']);  // 1
   *   compareVersions(['1.10.2.1',  '1.10.2.1']);     // 0
   *   compareVersions(['1.10.2.1',  '1.0800.2']);     // -1
   *
   * @param  {Array<String>} versions versions to compare
   * @return {Number} comparison result
   */
  function compareVersions(versions) {
    // 1) get common precision for both versions, for example for "10.0" and "9" it should be 2
    var precision = Math.max(getVersionPrecision(versions[0]), getVersionPrecision(versions[1]));
    var chunks = map(versions, function (version) {
      var delta = precision - getVersionPrecision(version);

      // 2) "9" -> "9.0" (for precision = 2)
      version = version + new Array(delta + 1).join(".0");

      // 3) "9.0" -> ["000000000"", "000000009"]
      return map(version.split("."), function (chunk) {
        return new Array(20 - chunk.length).join("0") + chunk;
      }).reverse();
    });

    // iterate in reverse order by reversed chunks array
    while (--precision >= 0) {
      // 4) compare: "000000009" > "000000010" = false (but "9" > "10" = true)
      if (chunks[0][precision] > chunks[1][precision]) {
        return 1;
      }
      else if (chunks[0][precision] === chunks[1][precision]) {
        if (precision === 0) {
          // all version chunks are same
          return 0;
        }
      }
      else {
        return -1;
      }
    }
  }

  /**
   * Check if browser is unsupported
   *
   * @example
   *   bowser.isUnsupportedBrowser({
   *     msie: "10",
   *     firefox: "23",
   *     chrome: "29",
   *     safari: "5.1",
   *     opera: "16",
   *     phantom: "534"
   *   });
   *
   * @param  {Object}  minVersions map of minimal version to browser
   * @param  {Boolean} [strictMode = false] flag to return false if browser wasn't found in map
   * @param  {String}  [ua] user agent string
   * @return {Boolean}
   */
  function isUnsupportedBrowser(minVersions, strictMode, ua) {
    var _bowser = bowser;

    // make strictMode param optional with ua param usage
    if (typeof strictMode === 'string') {
      ua = strictMode;
      strictMode = void(0);
    }

    if (strictMode === void(0)) {
      strictMode = false;
    }
    if (ua) {
      _bowser = detect(ua);
    }

    var version = "" + _bowser.version;
    for (var browser in minVersions) {
      if (minVersions.hasOwnProperty(browser)) {
        if (_bowser[browser]) {
          if (typeof minVersions[browser] !== 'string') {
            throw new Error('Browser version in the minVersion map should be a string: ' + browser + ': ' + String(minVersions));
          }

          // browser version and min supported version.
          return compareVersions([version, minVersions[browser]]) < 0;
        }
      }
    }

    return strictMode; // not found
  }

  /**
   * Check if browser is supported
   *
   * @param  {Object} minVersions map of minimal version to browser
   * @param  {Boolean} [strictMode = false] flag to return false if browser wasn't found in map
   * @param  {String}  [ua] user agent string
   * @return {Boolean}
   */
  function check(minVersions, strictMode, ua) {
    return !isUnsupportedBrowser(minVersions, strictMode, ua);
  }

  bowser.isUnsupportedBrowser = isUnsupportedBrowser;
  bowser.compareVersions = compareVersions;
  bowser.check = check;

  /*
   * Set our detect method to the main bowser object so we can
   * reuse it to test other user agents.
   * This is needed to implement future tests.
   */
  bowser._detect = detect;

  /*
   * Set our detect public method to the main bowser object
   * This is needed to implement bowser in server side
   */
  bowser.detect = detect;
  return bowser
});


/***/ }),

/***/ "./node_modules/buffer/index.js":
/*!**************************************!*\
  !*** ./node_modules/buffer/index.js ***!
  \**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(global) {/*!
 * The buffer module from node.js, for the browser.
 *
 * @author   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
 * @license  MIT
 */
/* eslint-disable no-proto */



var base64 = __webpack_require__(/*! base64-js */ "./node_modules/base64-js/index.js")
var ieee754 = __webpack_require__(/*! ieee754 */ "./node_modules/ieee754/index.js")
var isArray = __webpack_require__(/*! isarray */ "./node_modules/isarray/index.js")

exports.Buffer = Buffer
exports.SlowBuffer = SlowBuffer
exports.INSPECT_MAX_BYTES = 50

/**
 * If `Buffer.TYPED_ARRAY_SUPPORT`:
 *   === true    Use Uint8Array implementation (fastest)
 *   === false   Use Object implementation (most compatible, even IE6)
 *
 * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,
 * Opera 11.6+, iOS 4.2+.
 *
 * Due to various browser bugs, sometimes the Object implementation will be used even
 * when the browser supports typed arrays.
 *
 * Note:
 *
 *   - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,
 *     See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.
 *
 *   - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.
 *
 *   - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
 *     incorrect length in some situations.

 * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
 * get the Object implementation, which is slower but behaves correctly.
 */
Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined
  ? global.TYPED_ARRAY_SUPPORT
  : typedArraySupport()

/*
 * Export kMaxLength after typed array support is determined.
 */
exports.kMaxLength = kMaxLength()

function typedArraySupport () {
  try {
    var arr = new Uint8Array(1)
    arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}
    return arr.foo() === 42 && // typed array instances can be augmented
        typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`
        arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`
  } catch (e) {
    return false
  }
}

function kMaxLength () {
  return Buffer.TYPED_ARRAY_SUPPORT
    ? 0x7fffffff
    : 0x3fffffff
}

function createBuffer (that, length) {
  if (kMaxLength() < length) {
    throw new RangeError('Invalid typed array length')
  }
  if (Buffer.TYPED_ARRAY_SUPPORT) {
    // Return an augmented `Uint8Array` instance, for best performance
    that = new Uint8Array(length)
    that.__proto__ = Buffer.prototype
  } else {
    // Fallback: Return an object instance of the Buffer class
    if (that === null) {
      that = new Buffer(length)
    }
    that.length = length
  }

  return that
}

/**
 * The Buffer constructor returns instances of `Uint8Array` that have their
 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
 * returns a single octet.
 *
 * The `Uint8Array` prototype remains unmodified.
 */

function Buffer (arg, encodingOrOffset, length) {
  if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {
    return new Buffer(arg, encodingOrOffset, length)
  }

  // Common case.
  if (typeof arg === 'number') {
    if (typeof encodingOrOffset === 'string') {
      throw new Error(
        'If encoding is specified then the first argument must be a string'
      )
    }
    return allocUnsafe(this, arg)
  }
  return from(this, arg, encodingOrOffset, length)
}

Buffer.poolSize = 8192 // not used by this implementation

// TODO: Legacy, not needed anymore. Remove in next major version.
Buffer._augment = function (arr) {
  arr.__proto__ = Buffer.prototype
  return arr
}

function from (that, value, encodingOrOffset, length) {
  if (typeof value === 'number') {
    throw new TypeError('"value" argument must not be a number')
  }

  if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
    return fromArrayBuffer(that, value, encodingOrOffset, length)
  }

  if (typeof value === 'string') {
    return fromString(that, value, encodingOrOffset)
  }

  return fromObject(that, value)
}

/**
 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
 * if value is a number.
 * Buffer.from(str[, encoding])
 * Buffer.from(array)
 * Buffer.from(buffer)
 * Buffer.from(arrayBuffer[, byteOffset[, length]])
 **/
Buffer.from = function (value, encodingOrOffset, length) {
  return from(null, value, encodingOrOffset, length)
}

if (Buffer.TYPED_ARRAY_SUPPORT) {
  Buffer.prototype.__proto__ = Uint8Array.prototype
  Buffer.__proto__ = Uint8Array
  if (typeof Symbol !== 'undefined' && Symbol.species &&
      Buffer[Symbol.species] === Buffer) {
    // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97
    Object.defineProperty(Buffer, Symbol.species, {
      value: null,
      configurable: true
    })
  }
}

function assertSize (size) {
  if (typeof size !== 'number') {
    throw new TypeError('"size" argument must be a number')
  } else if (size < 0) {
    throw new RangeError('"size" argument must not be negative')
  }
}

function alloc (that, size, fill, encoding) {
  assertSize(size)
  if (size <= 0) {
    return createBuffer(that, size)
  }
  if (fill !== undefined) {
    // Only pay attention to encoding if it's a string. This
    // prevents accidentally sending in a number that would
    // be interpretted as a start offset.
    return typeof encoding === 'string'
      ? createBuffer(that, size).fill(fill, encoding)
      : createBuffer(that, size).fill(fill)
  }
  return createBuffer(that, size)
}

/**
 * Creates a new filled Buffer instance.
 * alloc(size[, fill[, encoding]])
 **/
Buffer.alloc = function (size, fill, encoding) {
  return alloc(null, size, fill, encoding)
}

function allocUnsafe (that, size) {
  assertSize(size)
  that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)
  if (!Buffer.TYPED_ARRAY_SUPPORT) {
    for (var i = 0; i < size; ++i) {
      that[i] = 0
    }
  }
  return that
}

/**
 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
 * */
Buffer.allocUnsafe = function (size) {
  return allocUnsafe(null, size)
}
/**
 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
 */
Buffer.allocUnsafeSlow = function (size) {
  return allocUnsafe(null, size)
}

function fromString (that, string, encoding) {
  if (typeof encoding !== 'string' || encoding === '') {
    encoding = 'utf8'
  }

  if (!Buffer.isEncoding(encoding)) {
    throw new TypeError('"encoding" must be a valid string encoding')
  }

  var length = byteLength(string, encoding) | 0
  that = createBuffer(that, length)

  var actual = that.write(string, encoding)

  if (actual !== length) {
    // Writing a hex string, for example, that contains invalid characters will
    // cause everything after the first invalid character to be ignored. (e.g.
    // 'abxxcd' will be treated as 'ab')
    that = that.slice(0, actual)
  }

  return that
}

function fromArrayLike (that, array) {
  var length = array.length < 0 ? 0 : checked(array.length) | 0
  that = createBuffer(that, length)
  for (var i = 0; i < length; i += 1) {
    that[i] = array[i] & 255
  }
  return that
}

function fromArrayBuffer (that, array, byteOffset, length) {
  array.byteLength // this throws if `array` is not a valid ArrayBuffer

  if (byteOffset < 0 || array.byteLength < byteOffset) {
    throw new RangeError('\'offset\' is out of bounds')
  }

  if (array.byteLength < byteOffset + (length || 0)) {
    throw new RangeError('\'length\' is out of bounds')
  }

  if (byteOffset === undefined && length === undefined) {
    array = new Uint8Array(array)
  } else if (length === undefined) {
    array = new Uint8Array(array, byteOffset)
  } else {
    array = new Uint8Array(array, byteOffset, length)
  }

  if (Buffer.TYPED_ARRAY_SUPPORT) {
    // Return an augmented `Uint8Array` instance, for best performance
    that = array
    that.__proto__ = Buffer.prototype
  } else {
    // Fallback: Return an object instance of the Buffer class
    that = fromArrayLike(that, array)
  }
  return that
}

function fromObject (that, obj) {
  if (Buffer.isBuffer(obj)) {
    var len = checked(obj.length) | 0
    that = createBuffer(that, len)

    if (that.length === 0) {
      return that
    }

    obj.copy(that, 0, 0, len)
    return that
  }

  if (obj) {
    if ((typeof ArrayBuffer !== 'undefined' &&
        obj.buffer instanceof ArrayBuffer) || 'length' in obj) {
      if (typeof obj.length !== 'number' || isnan(obj.length)) {
        return createBuffer(that, 0)
      }
      return fromArrayLike(that, obj)
    }

    if (obj.type === 'Buffer' && isArray(obj.data)) {
      return fromArrayLike(that, obj.data)
    }
  }

  throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
}

function checked (length) {
  // Note: cannot use `length < kMaxLength()` here because that fails when
  // length is NaN (which is otherwise coerced to zero.)
  if (length >= kMaxLength()) {
    throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
                         'size: 0x' + kMaxLength().toString(16) + ' bytes')
  }
  return length | 0
}

function SlowBuffer (length) {
  if (+length != length) { // eslint-disable-line eqeqeq
    length = 0
  }
  return Buffer.alloc(+length)
}

Buffer.isBuffer = function isBuffer (b) {
  return !!(b != null && b._isBuffer)
}

Buffer.compare = function compare (a, b) {
  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
    throw new TypeError('Arguments must be Buffers')
  }

  if (a === b) return 0

  var x = a.length
  var y = b.length

  for (var i = 0, len = Math.min(x, y); i < len; ++i) {
    if (a[i] !== b[i]) {
      x = a[i]
      y = b[i]
      break
    }
  }

  if (x < y) return -1
  if (y < x) return 1
  return 0
}

Buffer.isEncoding = function isEncoding (encoding) {
  switch (String(encoding).toLowerCase()) {
    case 'hex':
    case 'utf8':
    case 'utf-8':
    case 'ascii':
    case 'latin1':
    case 'binary':
    case 'base64':
    case 'ucs2':
    case 'ucs-2':
    case 'utf16le':
    case 'utf-16le':
      return true
    default:
      return false
  }
}

Buffer.concat = function concat (list, length) {
  if (!isArray(list)) {
    throw new TypeError('"list" argument must be an Array of Buffers')
  }

  if (list.length === 0) {
    return Buffer.alloc(0)
  }

  var i
  if (length === undefined) {
    length = 0
    for (i = 0; i < list.length; ++i) {
      length += list[i].length
    }
  }

  var buffer = Buffer.allocUnsafe(length)
  var pos = 0
  for (i = 0; i < list.length; ++i) {
    var buf = list[i]
    if (!Buffer.isBuffer(buf)) {
      throw new TypeError('"list" argument must be an Array of Buffers')
    }
    buf.copy(buffer, pos)
    pos += buf.length
  }
  return buffer
}

function byteLength (string, encoding) {
  if (Buffer.isBuffer(string)) {
    return string.length
  }
  if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&
      (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {
    return string.byteLength
  }
  if (typeof string !== 'string') {
    string = '' + string
  }

  var len = string.length
  if (len === 0) return 0

  // Use a for loop to avoid recursion
  var loweredCase = false
  for (;;) {
    switch (encoding) {
      case 'ascii':
      case 'latin1':
      case 'binary':
        return len
      case 'utf8':
      case 'utf-8':
      case undefined:
        return utf8ToBytes(string).length
      case 'ucs2':
      case 'ucs-2':
      case 'utf16le':
      case 'utf-16le':
        return len * 2
      case 'hex':
        return len >>> 1
      case 'base64':
        return base64ToBytes(string).length
      default:
        if (loweredCase) return utf8ToBytes(string).length // assume utf8
        encoding = ('' + encoding).toLowerCase()
        loweredCase = true
    }
  }
}
Buffer.byteLength = byteLength

function slowToString (encoding, start, end) {
  var loweredCase = false

  // No need to verify that "this.length <= MAX_UINT32" since it's a read-only
  // property of a typed array.

  // This behaves neither like String nor Uint8Array in that we set start/end
  // to their upper/lower bounds if the value passed is out of range.
  // undefined is handled specially as per ECMA-262 6th Edition,
  // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
  if (start === undefined || start < 0) {
    start = 0
  }
  // Return early if start > this.length. Done here to prevent potential uint32
  // coercion fail below.
  if (start > this.length) {
    return ''
  }

  if (end === undefined || end > this.length) {
    end = this.length
  }

  if (end <= 0) {
    return ''
  }

  // Force coersion to uint32. This will also coerce falsey/NaN values to 0.
  end >>>= 0
  start >>>= 0

  if (end <= start) {
    return ''
  }

  if (!encoding) encoding = 'utf8'

  while (true) {
    switch (encoding) {
      case 'hex':
        return hexSlice(this, start, end)

      case 'utf8':
      case 'utf-8':
        return utf8Slice(this, start, end)

      case 'ascii':
        return asciiSlice(this, start, end)

      case 'latin1':
      case 'binary':
        return latin1Slice(this, start, end)

      case 'base64':
        return base64Slice(this, start, end)

      case 'ucs2':
      case 'ucs-2':
      case 'utf16le':
      case 'utf-16le':
        return utf16leSlice(this, start, end)

      default:
        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
        encoding = (encoding + '').toLowerCase()
        loweredCase = true
    }
  }
}

// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect
// Buffer instances.
Buffer.prototype._isBuffer = true

function swap (b, n, m) {
  var i = b[n]
  b[n] = b[m]
  b[m] = i
}

Buffer.prototype.swap16 = function swap16 () {
  var len = this.length
  if (len % 2 !== 0) {
    throw new RangeError('Buffer size must be a multiple of 16-bits')
  }
  for (var i = 0; i < len; i += 2) {
    swap(this, i, i + 1)
  }
  return this
}

Buffer.prototype.swap32 = function swap32 () {
  var len = this.length
  if (len % 4 !== 0) {
    throw new RangeError('Buffer size must be a multiple of 32-bits')
  }
  for (var i = 0; i < len; i += 4) {
    swap(this, i, i + 3)
    swap(this, i + 1, i + 2)
  }
  return this
}

Buffer.prototype.swap64 = function swap64 () {
  var len = this.length
  if (len % 8 !== 0) {
    throw new RangeError('Buffer size must be a multiple of 64-bits')
  }
  for (var i = 0; i < len; i += 8) {
    swap(this, i, i + 7)
    swap(this, i + 1, i + 6)
    swap(this, i + 2, i + 5)
    swap(this, i + 3, i + 4)
  }
  return this
}

Buffer.prototype.toString = function toString () {
  var length = this.length | 0
  if (length === 0) return ''
  if (arguments.length === 0) return utf8Slice(this, 0, length)
  return slowToString.apply(this, arguments)
}

Buffer.prototype.equals = function equals (b) {
  if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
  if (this === b) return true
  return Buffer.compare(this, b) === 0
}

Buffer.prototype.inspect = function inspect () {
  var str = ''
  var max = exports.INSPECT_MAX_BYTES
  if (this.length > 0) {
    str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')
    if (this.length > max) str += ' ... '
  }
  return '<Buffer ' + str + '>'
}

Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
  if (!Buffer.isBuffer(target)) {
    throw new TypeError('Argument must be a Buffer')
  }

  if (start === undefined) {
    start = 0
  }
  if (end === undefined) {
    end = target ? target.length : 0
  }
  if (thisStart === undefined) {
    thisStart = 0
  }
  if (thisEnd === undefined) {
    thisEnd = this.length
  }

  if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {
    throw new RangeError('out of range index')
  }

  if (thisStart >= thisEnd && start >= end) {
    return 0
  }
  if (thisStart >= thisEnd) {
    return -1
  }
  if (start >= end) {
    return 1
  }

  start >>>= 0
  end >>>= 0
  thisStart >>>= 0
  thisEnd >>>= 0

  if (this === target) return 0

  var x = thisEnd - thisStart
  var y = end - start
  var len = Math.min(x, y)

  var thisCopy = this.slice(thisStart, thisEnd)
  var targetCopy = target.slice(start, end)

  for (var i = 0; i < len; ++i) {
    if (thisCopy[i] !== targetCopy[i]) {
      x = thisCopy[i]
      y = targetCopy[i]
      break
    }
  }

  if (x < y) return -1
  if (y < x) return 1
  return 0
}

// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,
// OR the last index of `val` in `buffer` at offset <= `byteOffset`.
//
// Arguments:
// - buffer - a Buffer to search
// - val - a string, Buffer, or number
// - byteOffset - an index into `buffer`; will be clamped to an int32
// - encoding - an optional encoding, relevant is val is a string
// - dir - true for indexOf, false for lastIndexOf
function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
  // Empty buffer means no match
  if (buffer.length === 0) return -1

  // Normalize byteOffset
  if (typeof byteOffset === 'string') {
    encoding = byteOffset
    byteOffset = 0
  } else if (byteOffset > 0x7fffffff) {
    byteOffset = 0x7fffffff
  } else if (byteOffset < -0x80000000) {
    byteOffset = -0x80000000
  }
  byteOffset = +byteOffset  // Coerce to Number.
  if (isNaN(byteOffset)) {
    // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer
    byteOffset = dir ? 0 : (buffer.length - 1)
  }

  // Normalize byteOffset: negative offsets start from the end of the buffer
  if (byteOffset < 0) byteOffset = buffer.length + byteOffset
  if (byteOffset >= buffer.length) {
    if (dir) return -1
    else byteOffset = buffer.length - 1
  } else if (byteOffset < 0) {
    if (dir) byteOffset = 0
    else return -1
  }

  // Normalize val
  if (typeof val === 'string') {
    val = Buffer.from(val, encoding)
  }

  // Finally, search either indexOf (if dir is true) or lastIndexOf
  if (Buffer.isBuffer(val)) {
    // Special case: looking for empty string/buffer always fails
    if (val.length === 0) {
      return -1
    }
    return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
  } else if (typeof val === 'number') {
    val = val & 0xFF // Search for a byte value [0-255]
    if (Buffer.TYPED_ARRAY_SUPPORT &&
        typeof Uint8Array.prototype.indexOf === 'function') {
      if (dir) {
        return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
      } else {
        return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
      }
    }
    return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
  }

  throw new TypeError('val must be string, number or Buffer')
}

function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
  var indexSize = 1
  var arrLength = arr.length
  var valLength = val.length

  if (encoding !== undefined) {
    encoding = String(encoding).toLowerCase()
    if (encoding === 'ucs2' || encoding === 'ucs-2' ||
        encoding === 'utf16le' || encoding === 'utf-16le') {
      if (arr.length < 2 || val.length < 2) {
        return -1
      }
      indexSize = 2
      arrLength /= 2
      valLength /= 2
      byteOffset /= 2
    }
  }

  function read (buf, i) {
    if (indexSize === 1) {
      return buf[i]
    } else {
      return buf.readUInt16BE(i * indexSize)
    }
  }

  var i
  if (dir) {
    var foundIndex = -1
    for (i = byteOffset; i < arrLength; i++) {
      if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {
        if (foundIndex === -1) foundIndex = i
        if (i - foundIndex + 1 === valLength) return foundIndex * indexSize
      } else {
        if (foundIndex !== -1) i -= i - foundIndex
        foundIndex = -1
      }
    }
  } else {
    if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength
    for (i = byteOffset; i >= 0; i--) {
      var found = true
      for (var j = 0; j < valLength; j++) {
        if (read(arr, i + j) !== read(val, j)) {
          found = false
          break
        }
      }
      if (found) return i
    }
  }

  return -1
}

Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
  return this.indexOf(val, byteOffset, encoding) !== -1
}

Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
  return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
}

Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
  return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
}

function hexWrite (buf, string, offset, length) {
  offset = Number(offset) || 0
  var remaining = buf.length - offset
  if (!length) {
    length = remaining
  } else {
    length = Number(length)
    if (length > remaining) {
      length = remaining
    }
  }

  // must be an even number of digits
  var strLen = string.length
  if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')

  if (length > strLen / 2) {
    length = strLen / 2
  }
  for (var i = 0; i < length; ++i) {
    var parsed = parseInt(string.substr(i * 2, 2), 16)
    if (isNaN(parsed)) return i
    buf[offset + i] = parsed
  }
  return i
}

function utf8Write (buf, string, offset, length) {
  return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
}

function asciiWrite (buf, string, offset, length) {
  return blitBuffer(asciiToBytes(string), buf, offset, length)
}

function latin1Write (buf, string, offset, length) {
  return asciiWrite(buf, string, offset, length)
}

function base64Write (buf, string, offset, length) {
  return blitBuffer(base64ToBytes(string), buf, offset, length)
}

function ucs2Write (buf, string, offset, length) {
  return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
}

Buffer.prototype.write = function write (string, offset, length, encoding) {
  // Buffer#write(string)
  if (offset === undefined) {
    encoding = 'utf8'
    length = this.length
    offset = 0
  // Buffer#write(string, encoding)
  } else if (length === undefined && typeof offset === 'string') {
    encoding = offset
    length = this.length
    offset = 0
  // Buffer#write(string, offset[, length][, encoding])
  } else if (isFinite(offset)) {
    offset = offset | 0
    if (isFinite(length)) {
      length = length | 0
      if (encoding === undefined) encoding = 'utf8'
    } else {
      encoding = length
      length = undefined
    }
  // legacy write(string, encoding, offset, length) - remove in v0.13
  } else {
    throw new Error(
      'Buffer.write(string, encoding, offset[, length]) is no longer supported'
    )
  }

  var remaining = this.length - offset
  if (length === undefined || length > remaining) length = remaining

  if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {
    throw new RangeError('Attempt to write outside buffer bounds')
  }

  if (!encoding) encoding = 'utf8'

  var loweredCase = false
  for (;;) {
    switch (encoding) {
      case 'hex':
        return hexWrite(this, string, offset, length)

      case 'utf8':
      case 'utf-8':
        return utf8Write(this, string, offset, length)

      case 'ascii':
        return asciiWrite(this, string, offset, length)

      case 'latin1':
      case 'binary':
        return latin1Write(this, string, offset, length)

      case 'base64':
        // Warning: maxLength not taken into account in base64Write
        return base64Write(this, string, offset, length)

      case 'ucs2':
      case 'ucs-2':
      case 'utf16le':
      case 'utf-16le':
        return ucs2Write(this, string, offset, length)

      default:
        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
        encoding = ('' + encoding).toLowerCase()
        loweredCase = true
    }
  }
}

Buffer.prototype.toJSON = function toJSON () {
  return {
    type: 'Buffer',
    data: Array.prototype.slice.call(this._arr || this, 0)
  }
}

function base64Slice (buf, start, end) {
  if (start === 0 && end === buf.length) {
    return base64.fromByteArray(buf)
  } else {
    return base64.fromByteArray(buf.slice(start, end))
  }
}

function utf8Slice (buf, start, end) {
  end = Math.min(buf.length, end)
  var res = []

  var i = start
  while (i < end) {
    var firstByte = buf[i]
    var codePoint = null
    var bytesPerSequence = (firstByte > 0xEF) ? 4
      : (firstByte > 0xDF) ? 3
      : (firstByte > 0xBF) ? 2
      : 1

    if (i + bytesPerSequence <= end) {
      var secondByte, thirdByte, fourthByte, tempCodePoint

      switch (bytesPerSequence) {
        case 1:
          if (firstByte < 0x80) {
            codePoint = firstByte
          }
          break
        case 2:
          secondByte = buf[i + 1]
          if ((secondByte & 0xC0) === 0x80) {
            tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)
            if (tempCodePoint > 0x7F) {
              codePoint = tempCodePoint
            }
          }
          break
        case 3:
          secondByte = buf[i + 1]
          thirdByte = buf[i + 2]
          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {
            tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)
            if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {
              codePoint = tempCodePoint
            }
          }
          break
        case 4:
          secondByte = buf[i + 1]
          thirdByte = buf[i + 2]
          fourthByte = buf[i + 3]
          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {
            tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)
            if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {
              codePoint = tempCodePoint
            }
          }
      }
    }

    if (codePoint === null) {
      // we did not generate a valid codePoint so insert a
      // replacement char (U+FFFD) and advance only 1 byte
      codePoint = 0xFFFD
      bytesPerSequence = 1
    } else if (codePoint > 0xFFFF) {
      // encode to utf16 (surrogate pair dance)
      codePoint -= 0x10000
      res.push(codePoint >>> 10 & 0x3FF | 0xD800)
      codePoint = 0xDC00 | codePoint & 0x3FF
    }

    res.push(codePoint)
    i += bytesPerSequence
  }

  return decodeCodePointsArray(res)
}

// Based on http://stackoverflow.com/a/22747272/680742, the browser with
// the lowest limit is Chrome, with 0x10000 args.
// We go 1 magnitude less, for safety
var MAX_ARGUMENTS_LENGTH = 0x1000

function decodeCodePointsArray (codePoints) {
  var len = codePoints.length
  if (len <= MAX_ARGUMENTS_LENGTH) {
    return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
  }

  // Decode in chunks to avoid "call stack size exceeded".
  var res = ''
  var i = 0
  while (i < len) {
    res += String.fromCharCode.apply(
      String,
      codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
    )
  }
  return res
}

function asciiSlice (buf, start, end) {
  var ret = ''
  end = Math.min(buf.length, end)

  for (var i = start; i < end; ++i) {
    ret += String.fromCharCode(buf[i] & 0x7F)
  }
  return ret
}

function latin1Slice (buf, start, end) {
  var ret = ''
  end = Math.min(buf.length, end)

  for (var i = start; i < end; ++i) {
    ret += String.fromCharCode(buf[i])
  }
  return ret
}

function hexSlice (buf, start, end) {
  var len = buf.length

  if (!start || start < 0) start = 0
  if (!end || end < 0 || end > len) end = len

  var out = ''
  for (var i = start; i < end; ++i) {
    out += toHex(buf[i])
  }
  return out
}

function utf16leSlice (buf, start, end) {
  var bytes = buf.slice(start, end)
  var res = ''
  for (var i = 0; i < bytes.length; i += 2) {
    res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)
  }
  return res
}

Buffer.prototype.slice = function slice (start, end) {
  var len = this.length
  start = ~~start
  end = end === undefined ? len : ~~end

  if (start < 0) {
    start += len
    if (start < 0) start = 0
  } else if (start > len) {
    start = len
  }

  if (end < 0) {
    end += len
    if (end < 0) end = 0
  } else if (end > len) {
    end = len
  }

  if (end < start) end = start

  var newBuf
  if (Buffer.TYPED_ARRAY_SUPPORT) {
    newBuf = this.subarray(start, end)
    newBuf.__proto__ = Buffer.prototype
  } else {
    var sliceLen = end - start
    newBuf = new Buffer(sliceLen, undefined)
    for (var i = 0; i < sliceLen; ++i) {
      newBuf[i] = this[i + start]
    }
  }

  return newBuf
}

/*
 * Need to make sure that buffer isn't trying to write out of bounds.
 */
function checkOffset (offset, ext, length) {
  if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')
  if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')
}

Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
  offset = offset | 0
  byteLength = byteLength | 0
  if (!noAssert) checkOffset(offset, byteLength, this.length)

  var val = this[offset]
  var mul = 1
  var i = 0
  while (++i < byteLength && (mul *= 0x100)) {
    val += this[offset + i] * mul
  }

  return val
}

Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
  offset = offset | 0
  byteLength = byteLength | 0
  if (!noAssert) {
    checkOffset(offset, byteLength, this.length)
  }

  var val = this[offset + --byteLength]
  var mul = 1
  while (byteLength > 0 && (mul *= 0x100)) {
    val += this[offset + --byteLength] * mul
  }

  return val
}

Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 1, this.length)
  return this[offset]
}

Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 2, this.length)
  return this[offset] | (this[offset + 1] << 8)
}

Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 2, this.length)
  return (this[offset] << 8) | this[offset + 1]
}

Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 4, this.length)

  return ((this[offset]) |
      (this[offset + 1] << 8) |
      (this[offset + 2] << 16)) +
      (this[offset + 3] * 0x1000000)
}

Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 4, this.length)

  return (this[offset] * 0x1000000) +
    ((this[offset + 1] << 16) |
    (this[offset + 2] << 8) |
    this[offset + 3])
}

Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
  offset = offset | 0
  byteLength = byteLength | 0
  if (!noAssert) checkOffset(offset, byteLength, this.length)

  var val = this[offset]
  var mul = 1
  var i = 0
  while (++i < byteLength && (mul *= 0x100)) {
    val += this[offset + i] * mul
  }
  mul *= 0x80

  if (val >= mul) val -= Math.pow(2, 8 * byteLength)

  return val
}

Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
  offset = offset | 0
  byteLength = byteLength | 0
  if (!noAssert) checkOffset(offset, byteLength, this.length)

  var i = byteLength
  var mul = 1
  var val = this[offset + --i]
  while (i > 0 && (mul *= 0x100)) {
    val += this[offset + --i] * mul
  }
  mul *= 0x80

  if (val >= mul) val -= Math.pow(2, 8 * byteLength)

  return val
}

Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 1, this.length)
  if (!(this[offset] & 0x80)) return (this[offset])
  return ((0xff - this[offset] + 1) * -1)
}

Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 2, this.length)
  var val = this[offset] | (this[offset + 1] << 8)
  return (val & 0x8000) ? val | 0xFFFF0000 : val
}

Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 2, this.length)
  var val = this[offset + 1] | (this[offset] << 8)
  return (val & 0x8000) ? val | 0xFFFF0000 : val
}

Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 4, this.length)

  return (this[offset]) |
    (this[offset + 1] << 8) |
    (this[offset + 2] << 16) |
    (this[offset + 3] << 24)
}

Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 4, this.length)

  return (this[offset] << 24) |
    (this[offset + 1] << 16) |
    (this[offset + 2] << 8) |
    (this[offset + 3])
}

Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 4, this.length)
  return ieee754.read(this, offset, true, 23, 4)
}

Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 4, this.length)
  return ieee754.read(this, offset, false, 23, 4)
}

Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 8, this.length)
  return ieee754.read(this, offset, true, 52, 8)
}

Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
  if (!noAssert) checkOffset(offset, 8, this.length)
  return ieee754.read(this, offset, false, 52, 8)
}

function checkInt (buf, value, offset, ext, max, min) {
  if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance')
  if (value > max || value < min) throw new RangeError('"value" argument is out of bounds')
  if (offset + ext > buf.length) throw new RangeError('Index out of range')
}

Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
  value = +value
  offset = offset | 0
  byteLength = byteLength | 0
  if (!noAssert) {
    var maxBytes = Math.pow(2, 8 * byteLength) - 1
    checkInt(this, value, offset, byteLength, maxBytes, 0)
  }

  var mul = 1
  var i = 0
  this[offset] = value & 0xFF
  while (++i < byteLength && (mul *= 0x100)) {
    this[offset + i] = (value / mul) & 0xFF
  }

  return offset + byteLength
}

Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
  value = +value
  offset = offset | 0
  byteLength = byteLength | 0
  if (!noAssert) {
    var maxBytes = Math.pow(2, 8 * byteLength) - 1
    checkInt(this, value, offset, byteLength, maxBytes, 0)
  }

  var i = byteLength - 1
  var mul = 1
  this[offset + i] = value & 0xFF
  while (--i >= 0 && (mul *= 0x100)) {
    this[offset + i] = (value / mul) & 0xFF
  }

  return offset + byteLength
}

Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
  value = +value
  offset = offset | 0
  if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)
  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
  this[offset] = (value & 0xff)
  return offset + 1
}

function objectWriteUInt16 (buf, value, offset, littleEndian) {
  if (value < 0) value = 0xffff + value + 1
  for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {
    buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>
      (littleEndian ? i : 1 - i) * 8
  }
}

Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
  value = +value
  offset = offset | 0
  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
  if (Buffer.TYPED_ARRAY_SUPPORT) {
    this[offset] = (value & 0xff)
    this[offset + 1] = (value >>> 8)
  } else {
    objectWriteUInt16(this, value, offset, true)
  }
  return offset + 2
}

Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
  value = +value
  offset = offset | 0
  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
  if (Buffer.TYPED_ARRAY_SUPPORT) {
    this[offset] = (value >>> 8)
    this[offset + 1] = (value & 0xff)
  } else {
    objectWriteUInt16(this, value, offset, false)
  }
  return offset + 2
}

function objectWriteUInt32 (buf, value, offset, littleEndian) {
  if (value < 0) value = 0xffffffff + value + 1
  for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {
    buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff
  }
}

Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
  value = +value
  offset = offset | 0
  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
  if (Buffer.TYPED_ARRAY_SUPPORT) {
    this[offset + 3] = (value >>> 24)
    this[offset + 2] = (value >>> 16)
    this[offset + 1] = (value >>> 8)
    this[offset] = (value & 0xff)
  } else {
    objectWriteUInt32(this, value, offset, true)
  }
  return offset + 4
}

Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
  value = +value
  offset = offset | 0
  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
  if (Buffer.TYPED_ARRAY_SUPPORT) {
    this[offset] = (value >>> 24)
    this[offset + 1] = (value >>> 16)
    this[offset + 2] = (value >>> 8)
    this[offset + 3] = (value & 0xff)
  } else {
    objectWriteUInt32(this, value, offset, false)
  }
  return offset + 4
}

Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
  value = +value
  offset = offset | 0
  if (!noAssert) {
    var limit = Math.pow(2, 8 * byteLength - 1)

    checkInt(this, value, offset, byteLength, limit - 1, -limit)
  }

  var i = 0
  var mul = 1
  var sub = 0
  this[offset] = value & 0xFF
  while (++i < byteLength && (mul *= 0x100)) {
    if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {
      sub = 1
    }
    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
  }

  return offset + byteLength
}

Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
  value = +value
  offset = offset | 0
  if (!noAssert) {
    var limit = Math.pow(2, 8 * byteLength - 1)

    checkInt(this, value, offset, byteLength, limit - 1, -limit)
  }

  var i = byteLength - 1
  var mul = 1
  var sub = 0
  this[offset + i] = value & 0xFF
  while (--i >= 0 && (mul *= 0x100)) {
    if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {
      sub = 1
    }
    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
  }

  return offset + byteLength
}

Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
  value = +value
  offset = offset | 0
  if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)
  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
  if (value < 0) value = 0xff + value + 1
  this[offset] = (value & 0xff)
  return offset + 1
}

Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
  value = +value
  offset = offset | 0
  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
  if (Buffer.TYPED_ARRAY_SUPPORT) {
    this[offset] = (value & 0xff)
    this[offset + 1] = (value >>> 8)
  } else {
    objectWriteUInt16(this, value, offset, true)
  }
  return offset + 2
}

Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
  value = +value
  offset = offset | 0
  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
  if (Buffer.TYPED_ARRAY_SUPPORT) {
    this[offset] = (value >>> 8)
    this[offset + 1] = (value & 0xff)
  } else {
    objectWriteUInt16(this, value, offset, false)
  }
  return offset + 2
}

Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
  value = +value
  offset = offset | 0
  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
  if (Buffer.TYPED_ARRAY_SUPPORT) {
    this[offset] = (value & 0xff)
    this[offset + 1] = (value >>> 8)
    this[offset + 2] = (value >>> 16)
    this[offset + 3] = (value >>> 24)
  } else {
    objectWriteUInt32(this, value, offset, true)
  }
  return offset + 4
}

Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
  value = +value
  offset = offset | 0
  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
  if (value < 0) value = 0xffffffff + value + 1
  if (Buffer.TYPED_ARRAY_SUPPORT) {
    this[offset] = (value >>> 24)
    this[offset + 1] = (value >>> 16)
    this[offset + 2] = (value >>> 8)
    this[offset + 3] = (value & 0xff)
  } else {
    objectWriteUInt32(this, value, offset, false)
  }
  return offset + 4
}

function checkIEEE754 (buf, value, offset, ext, max, min) {
  if (offset + ext > buf.length) throw new RangeError('Index out of range')
  if (offset < 0) throw new RangeError('Index out of range')
}

function writeFloat (buf, value, offset, littleEndian, noAssert) {
  if (!noAssert) {
    checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)
  }
  ieee754.write(buf, value, offset, littleEndian, 23, 4)
  return offset + 4
}

Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
  return writeFloat(this, value, offset, true, noAssert)
}

Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
  return writeFloat(this, value, offset, false, noAssert)
}

function writeDouble (buf, value, offset, littleEndian, noAssert) {
  if (!noAssert) {
    checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)
  }
  ieee754.write(buf, value, offset, littleEndian, 52, 8)
  return offset + 8
}

Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
  return writeDouble(this, value, offset, true, noAssert)
}

Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
  return writeDouble(this, value, offset, false, noAssert)
}

// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)
Buffer.prototype.copy = function copy (target, targetStart, start, end) {
  if (!start) start = 0
  if (!end && end !== 0) end = this.length
  if (targetStart >= target.length) targetStart = target.length
  if (!targetStart) targetStart = 0
  if (end > 0 && end < start) end = start

  // Copy 0 bytes; we're done
  if (end === start) return 0
  if (target.length === 0 || this.length === 0) return 0

  // Fatal error conditions
  if (targetStart < 0) {
    throw new RangeError('targetStart out of bounds')
  }
  if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')
  if (end < 0) throw new RangeError('sourceEnd out of bounds')

  // Are we oob?
  if (end > this.length) end = this.length
  if (target.length - targetStart < end - start) {
    end = target.length - targetStart + start
  }

  var len = end - start
  var i

  if (this === target && start < targetStart && targetStart < end) {
    // descending copy from end
    for (i = len - 1; i >= 0; --i) {
      target[i + targetStart] = this[i + start]
    }
  } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
    // ascending copy from start
    for (i = 0; i < len; ++i) {
      target[i + targetStart] = this[i + start]
    }
  } else {
    Uint8Array.prototype.set.call(
      target,
      this.subarray(start, start + len),
      targetStart
    )
  }

  return len
}

// Usage:
//    buffer.fill(number[, offset[, end]])
//    buffer.fill(buffer[, offset[, end]])
//    buffer.fill(string[, offset[, end]][, encoding])
Buffer.prototype.fill = function fill (val, start, end, encoding) {
  // Handle string cases:
  if (typeof val === 'string') {
    if (typeof start === 'string') {
      encoding = start
      start = 0
      end = this.length
    } else if (typeof end === 'string') {
      encoding = end
      end = this.length
    }
    if (val.length === 1) {
      var code = val.charCodeAt(0)
      if (code < 256) {
        val = code
      }
    }
    if (encoding !== undefined && typeof encoding !== 'string') {
      throw new TypeError('encoding must be a string')
    }
    if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
      throw new TypeError('Unknown encoding: ' + encoding)
    }
  } else if (typeof val === 'number') {
    val = val & 255
  }

  // Invalid ranges are not set to a default, so can range check early.
  if (start < 0 || this.length < start || this.length < end) {
    throw new RangeError('Out of range index')
  }

  if (end <= start) {
    return this
  }

  start = start >>> 0
  end = end === undefined ? this.length : end >>> 0

  if (!val) val = 0

  var i
  if (typeof val === 'number') {
    for (i = start; i < end; ++i) {
      this[i] = val
    }
  } else {
    var bytes = Buffer.isBuffer(val)
      ? val
      : utf8ToBytes(new Buffer(val, encoding).toString())
    var len = bytes.length
    for (i = 0; i < end - start; ++i) {
      this[i + start] = bytes[i % len]
    }
  }

  return this
}

// HELPER FUNCTIONS
// ================

var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g

function base64clean (str) {
  // Node strips out invalid characters like \n and \t from the string, base64-js does not
  str = stringtrim(str).replace(INVALID_BASE64_RE, '')
  // Node converts strings with length < 2 to ''
  if (str.length < 2) return ''
  // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
  while (str.length % 4 !== 0) {
    str = str + '='
  }
  return str
}

function stringtrim (str) {
  if (str.trim) return str.trim()
  return str.replace(/^\s+|\s+$/g, '')
}

function toHex (n) {
  if (n < 16) return '0' + n.toString(16)
  return n.toString(16)
}

function utf8ToBytes (string, units) {
  units = units || Infinity
  var codePoint
  var length = string.length
  var leadSurrogate = null
  var bytes = []

  for (var i = 0; i < length; ++i) {
    codePoint = string.charCodeAt(i)

    // is surrogate component
    if (codePoint > 0xD7FF && codePoint < 0xE000) {
      // last char was a lead
      if (!leadSurrogate) {
        // no lead yet
        if (codePoint > 0xDBFF) {
          // unexpected trail
          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
          continue
        } else if (i + 1 === length) {
          // unpaired lead
          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
          continue
        }

        // valid lead
        leadSurrogate = codePoint

        continue
      }

      // 2 leads in a row
      if (codePoint < 0xDC00) {
        if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
        leadSurrogate = codePoint
        continue
      }

      // valid surrogate pair
      codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000
    } else if (leadSurrogate) {
      // valid bmp char, but last char was a lead
      if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
    }

    leadSurrogate = null

    // encode utf8
    if (codePoint < 0x80) {
      if ((units -= 1) < 0) break
      bytes.push(codePoint)
    } else if (codePoint < 0x800) {
      if ((units -= 2) < 0) break
      bytes.push(
        codePoint >> 0x6 | 0xC0,
        codePoint & 0x3F | 0x80
      )
    } else if (codePoint < 0x10000) {
      if ((units -= 3) < 0) break
      bytes.push(
        codePoint >> 0xC | 0xE0,
        codePoint >> 0x6 & 0x3F | 0x80,
        codePoint & 0x3F | 0x80
      )
    } else if (codePoint < 0x110000) {
      if ((units -= 4) < 0) break
      bytes.push(
        codePoint >> 0x12 | 0xF0,
        codePoint >> 0xC & 0x3F | 0x80,
        codePoint >> 0x6 & 0x3F | 0x80,
        codePoint & 0x3F | 0x80
      )
    } else {
      throw new Error('Invalid code point')
    }
  }

  return bytes
}

function asciiToBytes (str) {
  var byteArray = []
  for (var i = 0; i < str.length; ++i) {
    // Node's code seems to be doing this and not & 0x7F..
    byteArray.push(str.charCodeAt(i) & 0xFF)
  }
  return byteArray
}

function utf16leToBytes (str, units) {
  var c, hi, lo
  var byteArray = []
  for (var i = 0; i < str.length; ++i) {
    if ((units -= 2) < 0) break

    c = str.charCodeAt(i)
    hi = c >> 8
    lo = c % 256
    byteArray.push(lo)
    byteArray.push(hi)
  }

  return byteArray
}

function base64ToBytes (str) {
  return base64.toByteArray(base64clean(str))
}

function blitBuffer (src, dst, offset, length) {
  for (var i = 0; i < length; ++i) {
    if ((i + offset >= dst.length) || (i >= src.length)) break
    dst[i + offset] = src[i]
  }
  return i
}

function isnan (val) {
  return val !== val // eslint-disable-line no-self-compare
}

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js")))

/***/ }),

/***/ "./node_modules/check-prop-types/index.js":
/*!************************************************!*\
  !*** ./node_modules/check-prop-types/index.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

/**
 * Copyright Facebook, ratehub.
 * All rights reserved.
 *
 * This code is intended to closely match the behaviour of checkPropTypes() from
 * facebook/prop-types. The license for that code can be found here:
 * https://github.com/facebook/prop-types/blob/be165febc8133dfbe2c45133db6d25664dd68ad8/LICENSE
 *
 * That function's source:
 * https://github.com/facebook/prop-types/blob/be165febc8133dfbe2c45133db6d25664dd68ad8/checkPropTypes.js
 */

/**
 * Check if the values match with the type specs
 * Return a type error message or null
 *
 * @param {object} typeSpecs Map of name to a ReactPropType
 * @param {object} values Runtime values that need to be type-checked
 * @param {string} location e.g. "prop", "context", "child context"
 * @param {string} componentName Name of the component for error messages.
 * @param {?Function} getStack Returns the component stack.
 */
function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
  if (true) {
    var ReactPropTypesSecret = __webpack_require__(/*! prop-types/lib/ReactPropTypesSecret */ "./node_modules/prop-types/lib/ReactPropTypesSecret.js");

    var name = componentName || 'React class';

    for (var typeSpecName in typeSpecs) {
      if (typeSpecs.hasOwnProperty(typeSpecName)) {
        var error;

        if (typeof typeSpecs[typeSpecName] !== 'function') {
          return name + ': ' + location + ' type `' + typeSpecName + '` is ' + 'invalid; it must be a function, usually from React.PropTypes.';
        } else {
          // Prop type validation may throw. In case they do, catch and save the
          // exception as the error.
          try {
            error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
          } catch (ex) {
            error = ex;
          }
        }

        if (error && !(error instanceof Error)) {
          return name + ': type specification of ' + location + ' `' + typeSpecName + '` is invalid; the type checker function must ' + 'return `null` or an `Error` but returned a ' + _typeof(error) + '. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).';
        }

        if (error instanceof Error) {
          var stack = getStack && getStack() || '';
          return 'Failed ' + location + ' type: ' + error.message + stack;
        }
      }
    }
  }
}
/**
 * Same as checkPropTypes but throws on error
 */


function assertPropTypes() {
  if (true) {
    var error = checkPropTypes.apply(null, arguments);

    if (error) {
      throw new Error(error);
    }
  }
}

module.exports = checkPropTypes;
module.exports.assertPropTypes = assertPropTypes;

/***/ }),

/***/ "./node_modules/cookie/index.js":
/*!**************************************!*\
  !*** ./node_modules/cookie/index.js ***!
  \**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/*!
 * cookie
 * Copyright(c) 2012-2014 Roman Shtylman
 * Copyright(c) 2015 Douglas Christopher Wilson
 * MIT Licensed
 */



/**
 * Module exports.
 * @public
 */

exports.parse = parse;
exports.serialize = serialize;

/**
 * Module variables.
 * @private
 */

var decode = decodeURIComponent;
var encode = encodeURIComponent;
var pairSplitRegExp = /; */;

/**
 * RegExp to match field-content in RFC 7230 sec 3.2
 *
 * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]
 * field-vchar   = VCHAR / obs-text
 * obs-text      = %x80-FF
 */

var fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;

/**
 * Parse a cookie header.
 *
 * Parse the given cookie header string into an object
 * The object has the various cookies as keys(names) => values
 *
 * @param {string} str
 * @param {object} [options]
 * @return {object}
 * @public
 */

function parse(str, options) {
  if (typeof str !== 'string') {
    throw new TypeError('argument str must be a string');
  }

  var obj = {}
  var opt = options || {};
  var pairs = str.split(pairSplitRegExp);
  var dec = opt.decode || decode;

  for (var i = 0; i < pairs.length; i++) {
    var pair = pairs[i];
    var eq_idx = pair.indexOf('=');

    // skip things that don't look like key=value
    if (eq_idx < 0) {
      continue;
    }

    var key = pair.substr(0, eq_idx).trim()
    var val = pair.substr(++eq_idx, pair.length).trim();

    // quoted values
    if ('"' == val[0]) {
      val = val.slice(1, -1);
    }

    // only assign once
    if (undefined == obj[key]) {
      obj[key] = tryDecode(val, dec);
    }
  }

  return obj;
}

/**
 * Serialize data into a cookie header.
 *
 * Serialize the a name value pair into a cookie string suitable for
 * http headers. An optional options object specified cookie parameters.
 *
 * serialize('foo', 'bar', { httpOnly: true })
 *   => "foo=bar; httpOnly"
 *
 * @param {string} name
 * @param {string} val
 * @param {object} [options]
 * @return {string}
 * @public
 */

function serialize(name, val, options) {
  var opt = options || {};
  var enc = opt.encode || encode;

  if (typeof enc !== 'function') {
    throw new TypeError('option encode is invalid');
  }

  if (!fieldContentRegExp.test(name)) {
    throw new TypeError('argument name is invalid');
  }

  var value = enc(val);

  if (value && !fieldContentRegExp.test(value)) {
    throw new TypeError('argument val is invalid');
  }

  var str = name + '=' + value;

  if (null != opt.maxAge) {
    var maxAge = opt.maxAge - 0;
    if (isNaN(maxAge)) throw new Error('maxAge should be a Number');
    str += '; Max-Age=' + Math.floor(maxAge);
  }

  if (opt.domain) {
    if (!fieldContentRegExp.test(opt.domain)) {
      throw new TypeError('option domain is invalid');
    }

    str += '; Domain=' + opt.domain;
  }

  if (opt.path) {
    if (!fieldContentRegExp.test(opt.path)) {
      throw new TypeError('option path is invalid');
    }

    str += '; Path=' + opt.path;
  }

  if (opt.expires) {
    if (typeof opt.expires.toUTCString !== 'function') {
      throw new TypeError('option expires is invalid');
    }

    str += '; Expires=' + opt.expires.toUTCString();
  }

  if (opt.httpOnly) {
    str += '; HttpOnly';
  }

  if (opt.secure) {
    str += '; Secure';
  }

  if (opt.sameSite) {
    var sameSite = typeof opt.sameSite === 'string'
      ? opt.sameSite.toLowerCase() : opt.sameSite;

    switch (sameSite) {
      case true:
        str += '; SameSite=Strict';
        break;
      case 'lax':
        str += '; SameSite=Lax';
        break;
      case 'strict':
        str += '; SameSite=Strict';
        break;
      default:
        throw new TypeError('option sameSite is invalid');
    }
  }

  return str;
}

/**
 * Try decoding a string using a decoding function.
 *
 * @param {string} str
 * @param {function} decode
 * @private
 */

function tryDecode(str, decode) {
  try {
    return decode(str);
  } catch (e) {
    return str;
  }
}


/***/ }),

/***/ "./node_modules/css-in-js-utils/lib/hyphenateProperty.js":
/*!***************************************************************!*\
  !*** ./node_modules/css-in-js-utils/lib/hyphenateProperty.js ***!
  \***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = hyphenateProperty;

var _hyphenateStyleName = __webpack_require__(/*! hyphenate-style-name */ "./node_modules/hyphenate-style-name/index.js");

var _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function hyphenateProperty(property) {
  return (0, _hyphenateStyleName2.default)(property);
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/css-in-js-utils/lib/isPrefixedValue.js":
/*!*************************************************************!*\
  !*** ./node_modules/css-in-js-utils/lib/isPrefixedValue.js ***!
  \*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isPrefixedValue;
var regex = /-webkit-|-moz-|-ms-/;

function isPrefixedValue(value) {
  return typeof value === 'string' && regex.test(value);
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js!./src/components/error/CallbackGraph/CallbackGraphContainer.css":
/*!*************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js!./src/components/error/CallbackGraph/CallbackGraphContainer.css ***!
  \*************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
// Module
exports.push([module.i, ".dash-callback-dag--container {\n    border-radius: 4px;\n    position: fixed;\n    bottom: 165px;\n    right: 16px;\n    max-width: 80vw;\n    max-height: calc(100vh - 180px);\n    overflow: auto;\n    box-sizing: border-box;\n    background: #ffffff;\n    display: inline-block;\n    /* shadow-1 */\n    box-shadow: 0px 6px 16px rgba(80, 103, 132, 0.165),\n        0px 2px 6px rgba(80, 103, 132, 0.12),\n        0px 0px 1px rgba(80, 103, 132, 0.32);\n}\n", ""]);


/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js!./src/components/error/FrontEnd/FrontEndError.css":
/*!***********************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js!./src/components/error/FrontEnd/FrontEndError.css ***!
  \***********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
// Module
exports.push([module.i, ".error-container {\n    margin-top: 10px;\n}\n\n.dash-fe-errors {\n    min-width: 386px;\n    max-width: 650px;\n    max-height: 450px;\n    display: inline-block;\n}\n\n.dash-fe-error__icon-error {\n    width: 20px;\n    height: 20px;\n    display: inline-block;\n    margin-right: 16px;\n}\n.dash-fe-error__icon-close {\n    width: 10px;\n    height: 10px;\n    position: absolute;\n    right: 12px;\n    top: 12px;\n    display: inline-block;\n}\n.dash-fe-error__icon-arrow {\n    width: 8px;\n    height: 28px;\n    margin: 0px 8px;\n}\n.dash-fe-error-top {\n    height: 20px;\n    display: flex;\n    justify-content: space-between;\n    width: 100%;\n    cursor: pointer;\n}\n.dash-fe-error-top__group:first-child {\n    /*\n     * 77% is the maximum space allowed based off of the other elements\n     * in the top part of the error container (timestamp & collapse arrow).\n     * this was manually determined */\n    width: 77%;\n}\n.dash-fe-error-top__group {\n    display: inline-flex;\n    align-items: center;\n}\n.dash-fe-error__title {\n    text-align: left;\n    margin: 0px;\n    margin-left: 5px;\n    padding: 0px;\n    font-size: 14px;\n    display: inline-block;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n    overflow: hidden;\n}\n.dash-fe-error__timestamp {\n    margin-right: 20px;\n}\n.dash-fe-error__collapse--flipped {\n    -webkit-transform: rotate(180deg);\n    -ms-transform: rotate(180deg);\n    transform: rotate(180deg);\n}\n\n.dash-fe-error__info_title {\n    margin: 0;\n    color: #506784;\n    font-size: 16px;\n    background-color: #f3f6fa;\n    border: 2px solid #dfe8f3;\n    box-sizing: border-box;\n    border-top-left-radius: 4px;\n    border-top-right-radius: 4px;\n    padding: 10px;\n}\n\n.dash-fe-error__info {\n    border: 1px solid #dfe8f3;\n    margin: 0 0 1em 0;\n    padding: 10px;\n\n    background-color: white;\n    border: 2px solid #dfe8f3;\n    color: #506784;\n    overflow: auto;\n    white-space: pre-wrap;\n}\n\n.dash-fe-error__curved {\n    border-radius: 4px;\n}\n\n.dash-fe-error__curved-top {\n    border-top-left-radius: 4px;\n    border-top-right-radius: 4px;\n    border-bottom-width: 0px;\n}\n\n.dash-fe-error__curved-bottom {\n    border-radius-bottom-left: 4px;\n    border-radius-bottom-right: 4px;\n    background-color: #FFEFEF;\n}\n\n.dash-be-error__st {\n    background-color: #fdf3f4;\n    min-width: 386px;\n    max-width: 650px;\n    /* iframe container handles the scrolling */\n    overflow: hidden;\n    display: inline-block;\n}\n", ""]);


/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js!./src/components/error/GlobalErrorOverlay.css":
/*!*******************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js!./src/components/error/GlobalErrorOverlay.css ***!
  \*******************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
// Module
exports.push([module.i, ".dash-error-menu {\n    max-width: 50%;\n    max-height: 60%;\n    display: contents;\n    font-family: monospace;\n    font-size: 14px;\n    font-variant-ligatures: common-ligatures;\n}\n\n.dash-error-card {\n    box-sizing: border-box;\n    background: #ffffff;\n    display: inline-block;\n    /* shadow-1 */\n    box-shadow: 0px 6px 16px rgba(80, 103, 132, 0.165),\n        0px 2px 6px rgba(80, 103, 132, 0.12),\n        0px 0px 1px rgba(80, 103, 132, 0.32);\n    border-radius: 4px;\n    position: fixed;\n    top: 16px;\n    right: 16px;\n    animation: dash-error-card-animation 0.5s;\n    padding: 24px;\n    text-align: left;\n    background-color: white;\n\n}\n.dash-error-card--alerts-tray {\n    position: absolute;\n    top: -300px;\n    left: -1px;\n    animation: none;\n    box-shadow: none;\n    border: 1px solid #ececec;\n    border-bottom: 0;\n    border-bottom-left-radius: 0px;\n    border-bottom-right-radius: 0px;\n    width: 422px;\n}\n.dash-error-card--container {\n    padding: 10px 10px;\n    width: 600px;\n    max-width: 800px;\n    max-height: calc(100vh - 50px);\n    margin: 10px;\n    overflow: auto;\n    z-index: 1001;  /* above the plotly.js toolbar */\n}\n\n.dash-error-card__topbar {\n    width: 100%;\n    height: 32px;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n}\n.dash-error-card__message {\n    font-size: 14px;\n}\n\n.dash-error-card__message > strong {\n    color: #ff4500;\n}\n\n.dash-error-card__content {\n    box-sizing: border-box;\n    padding: 10px 10px;\n    background-color: white;\n    box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.25),\n        0px 1px 3px rgba(162, 177, 198, 0.32);\n    border-radius: 2px;\n    margin-bottom: 8px;\n}\n\n.dash-error-card__list-item {\n    background: #ffffff;\n    box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.25),\n        0px 1px 3px rgba(162, 177, 198, 0.32);\n    border-radius: 2px;\n    padding: 10px 10px;\n    margin-bottom: 10px;\n    display: flex;\n    align-items: center;\n}\n\n@keyframes dash-error-card-animation {\n    from {\n        opacity: 0;\n        -webkit-transform: scale(1.1);\n        -moz-transform: scale(1.1);\n        -ms-transform: scale(1.1);\n        transform: scale(1.1);\n    }\n    to {\n        opacity: 1;\n        -webkit-transform: scale(1);\n        -moz-transform: scale(1);\n        -ms-transform: scale(1);\n        transform: scale(1);\n    }\n}\n", ""]);


/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js!./src/components/error/Percy.css":
/*!******************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js!./src/components/error/Percy.css ***!
  \******************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
// Module
exports.push([module.i, ".percy-show {\n    display: none;\n}\n\n@media only percy {\n    .percy-hide {\n        display: none;\n    }\n    .percy-show {\n        display: block;\n    }\n}\n", ""]);


/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js!./src/components/error/menu/DebugAlertContainer.css":
/*!*************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js!./src/components/error/menu/DebugAlertContainer.css ***!
  \*************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
// Module
exports.push([module.i, ".dash-debug-alert-container {\n    box-sizing: border-box;\n    background: #f3f6fa;\n    border-radius: 2px;\n    padding: 8px;\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    transition: background-color 0.1s, border 0.1s;\n}\n.dash-debug-alert-container:hover {\n    cursor: pointer;\n}\n.dash-debug-alert-container--opened {\n    background-color: #119dff;\n    color: white;\n}\n.dash-debug-alert-container__icon {\n    width: 12px;\n    height: 12px;\n    margin-right: 4px;\n}\n.dash-debug-alert-container__icon--warning {\n    height: auto;\n}\n\n.dash-debug-alert {\n    display: flex;\n    align-items: center;\n    font-size: 10px;\n}\n\n.dash-debug-alert-label {\n    display: flex;\n    position: fixed;\n    bottom: 81px;\n    right: 29px;\n    z-index: 10001;\n    box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.25),\n        0px 1px 3px rgba(162, 177, 198, 0.32);\n    border-radius: 32px;\n    background-color: white;\n    padding: 4px;\n}\n", ""]);


/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js!./src/components/error/menu/DebugMenu.css":
/*!***************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js!./src/components/error/menu/DebugMenu.css ***!
  \***************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
// Module
exports.push([module.i, ".dash-debug-menu {\n    transition: width 0.05s, background-color 0.1s;\n    position: fixed;\n    bottom: 35px;\n    right: 35px;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    z-index: 10000;\n}\n.dash-debug-menu--closed {\n    background-color: #119dff;\n    border-radius: 100%;\n    width: 64px;\n    height: 64px;\n}\n.dash-debug-menu--opened {\n    box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.25),\n        0px 1px 3px rgba(162, 177, 198, 0.32);\n    border-radius: 4px;\n    padding: 12px 0px;\n    background-color: white;\n}\n\n.dash-debug-menu--closed:hover {\n    cursor: pointer;\n    background-color: #108de4;\n}\n\n.dash-debug-menu__icon {\n    width: 24px;\n    height: 28px;\n}\n.dash-debug-menu__icon--close {\n    width: 14px;\n    height: 14px;\n}\n.dash-debug-menu__icon--bell {\n    height: 24px;\n    width: 28px;\n}\n.dash-debug-menu__icon--debug {\n    height: 24px;\n    width: auto;\n}\n.dash-debug-menu__icon--graph {\n    height: 24px;\n}\n\n.dash-debug-menu__content {\n    display: flex;\n    width: 100%;\n    height: 100%;\n}\n\n.dash-debug-menu__button-container {\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    width: 74px;\n    margin-left: 10px;\n}\n.dash-debug-menu__button-label {\n    color: #A2B1C6;\n    font-size: 10px;\n    margin-top: 4px;\n}\n\n.dash-debug-menu__button {\n    background-color: white;\n    border-radius: 100%;\n    border: 1px solid #B9C2CE;\n    width: 64px;\n    height: 64px;\n    font-size: 10px;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    transition: background-color 0.2s;\n    color: black;\n}\n.dash-debug-menu__button--enabled {\n    background-color: #00CC96;\n    color: white;\n}\n.dash-debug-menu__button--small {\n    width: 32px;\n    height: 32px;\n    background-color: #B9C2CE;\n}\n.dash-debug-menu__button:hover {\n    cursor: pointer;\n    background-color: #f5f5f5;\n}\n.dash-debug-menu__button--small:hover {\n    background-color: #a1a9b5;\n}\n\n.dash-debug-menu__button--enabled:hover {\n    background-color: #03bb8a;\n}\n", ""]);


/***/ }),

/***/ "./node_modules/css-loader/dist/runtime/api.js":
/*!*****************************************************!*\
  !*** ./node_modules/css-loader/dist/runtime/api.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


/*
  MIT License http://www.opensource.org/licenses/mit-license.php
  Author Tobias Koppers @sokra
*/
// css base code, injected by the css-loader
// eslint-disable-next-line func-names
module.exports = function (useSourceMap) {
  var list = []; // return the list of modules as css string

  list.toString = function toString() {
    return this.map(function (item) {
      var content = cssWithMappingToString(item, useSourceMap);

      if (item[2]) {
        return "@media ".concat(item[2], "{").concat(content, "}");
      }

      return content;
    }).join('');
  }; // import a list of modules into the list
  // eslint-disable-next-line func-names


  list.i = function (modules, mediaQuery) {
    if (typeof modules === 'string') {
      // eslint-disable-next-line no-param-reassign
      modules = [[null, modules, '']];
    }

    var alreadyImportedModules = {};

    for (var i = 0; i < this.length; i++) {
      // eslint-disable-next-line prefer-destructuring
      var id = this[i][0];

      if (id != null) {
        alreadyImportedModules[id] = true;
      }
    }

    for (var _i = 0; _i < modules.length; _i++) {
      var item = modules[_i]; // skip already imported module
      // this implementation is not 100% perfect for weird media query combinations
      // when a module is imported multiple times with different media queries.
      // I hope this will never occur (Hey this way we have smaller bundles)

      if (item[0] == null || !alreadyImportedModules[item[0]]) {
        if (mediaQuery && !item[2]) {
          item[2] = mediaQuery;
        } else if (mediaQuery) {
          item[2] = "(".concat(item[2], ") and (").concat(mediaQuery, ")");
        }

        list.push(item);
      }
    }
  };

  return list;
};

function cssWithMappingToString(item, useSourceMap) {
  var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring

  var cssMapping = item[3];

  if (!cssMapping) {
    return content;
  }

  if (useSourceMap && typeof btoa === 'function') {
    var sourceMapping = toComment(cssMapping);
    var sourceURLs = cssMapping.sources.map(function (source) {
      return "/*# sourceURL=".concat(cssMapping.sourceRoot).concat(source, " */");
    });
    return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
  }

  return [content].join('\n');
} // Adapted from convert-source-map (MIT)


function toComment(sourceMap) {
  // eslint-disable-next-line no-undef
  var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
  var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64);
  return "/*# ".concat(data, " */");
}

/***/ }),

/***/ "./node_modules/dependency-graph/lib/dep_graph.js":
/*!********************************************************!*\
  !*** ./node_modules/dependency-graph/lib/dep_graph.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

/**
 * A simple dependency graph
 */

/**
 * Helper for creating a Depth-First-Search on
 * a set of edges.
 *
 * Detects cycles and throws an Error if one is detected.
 *
 * @param edges The set of edges to DFS through
 * @param leavesOnly Whether to only return "leaf" nodes (ones who have no edges)
 * @param result An array in which the results will be populated
 */
function createDFS(edges, leavesOnly, result) {
  var currentPath = [];
  var visited = {};
  return function DFS(currentNode) {
    visited[currentNode] = true;
    currentPath.push(currentNode);
    edges[currentNode].forEach(function (node) {
      if (!visited[node]) {
        DFS(node);
      } else if (currentPath.indexOf(node) >= 0) {
        currentPath.push(node);
        throw new Error('Dependency Cycle Found: ' + currentPath.join(' -> '));
      }
    });
    currentPath.pop();
    if ((!leavesOnly || edges[currentNode].length === 0) && result.indexOf(currentNode) === -1) {
      result.push(currentNode);
    }
  };
}

/**
 * Simple Dependency Graph
 */
var DepGraph = exports.DepGraph = function DepGraph() {
  this.nodes = {};
  this.outgoingEdges = {}; // Node -> [Dependency Node]
  this.incomingEdges = {}; // Node -> [Dependant Node]
};
DepGraph.prototype = {
  /**
   * Add a node to the dependency graph. If a node already exists, this method will do nothing.
   */
  addNode:function (node, data) {
    if (!this.hasNode(node)) {
      // Checking the arguments length allows the user to add a node with undefined data
      if (arguments.length === 2) {
        this.nodes[node] = data;
      } else {
        this.nodes[node] = node;
      }
      this.outgoingEdges[node] = [];
      this.incomingEdges[node] = [];
    }
  },
  /**
   * Remove a node from the dependency graph. If a node does not exist, this method will do nothing.
   */
  removeNode:function (node) {
    if (this.hasNode(node)) {
      delete this.nodes[node];
      delete this.outgoingEdges[node];
      delete this.incomingEdges[node];
      [this.incomingEdges, this.outgoingEdges].forEach(function (edgeList) {
        Object.keys(edgeList).forEach(function (key) {
          var idx = edgeList[key].indexOf(node);
          if (idx >= 0) {
            edgeList[key].splice(idx, 1);
          }
        }, this);
      });
    }
  },
  /**
   * Check if a node exists in the graph
   */
  hasNode:function (node) {
    return this.nodes.hasOwnProperty(node);
  },
  /**
   * Get the data associated with a node name
   */
  getNodeData:function (node) {
    if (this.hasNode(node)) {
      return this.nodes[node];
    } else {
      throw new Error('Node does not exist: ' + node);
    }
  },
  /**
   * Set the associated data for a given node name. If the node does not exist, this method will throw an error
   */
  setNodeData:function (node, data) {
    if (this.hasNode(node)) {
      this.nodes[node] = data;
    } else {
      throw new Error('Node does not exist: ' + node);
    }
  },
  /**
   * Add a dependency between two nodes. If either of the nodes does not exist,
   * an Error will be thrown.
   */
  addDependency:function (from, to) {
    if (!this.hasNode(from)) {
      throw new Error('Node does not exist: ' + from);
    }
    if (!this.hasNode(to)) {
      throw new Error('Node does not exist: ' + to);
    }
    if (this.outgoingEdges[from].indexOf(to) === -1) {
      this.outgoingEdges[from].push(to);
    }
    if (this.incomingEdges[to].indexOf(from) === -1) {
      this.incomingEdges[to].push(from);
    }
    return true;
  },
  /**
   * Remove a dependency between two nodes.
   */
  removeDependency:function (from, to) {
    var idx;
    if (this.hasNode(from)) {
      idx = this.outgoingEdges[from].indexOf(to);
      if (idx >= 0) {
        this.outgoingEdges[from].splice(idx, 1);
      }
    }

    if (this.hasNode(to)) {
      idx = this.incomingEdges[to].indexOf(from);
      if (idx >= 0) {
        this.incomingEdges[to].splice(idx, 1);
      }
    }
  },
  /**
   * Get an array containing the nodes that the specified node depends on (transitively).
   *
   * Throws an Error if the graph has a cycle, or the specified node does not exist.
   *
   * If `leavesOnly` is true, only nodes that do not depend on any other nodes will be returned
   * in the array.
   */
  dependenciesOf:function (node, leavesOnly) {
    if (this.hasNode(node)) {
      var result = [];
      var DFS = createDFS(this.outgoingEdges, leavesOnly, result);
      DFS(node);
      var idx = result.indexOf(node);
      if (idx >= 0) {
        result.splice(idx, 1);
      }
      return result;
    }
    else {
      throw new Error('Node does not exist: ' + node);
    }
  },
  /**
   * get an array containing the nodes that depend on the specified node (transitively).
   *
   * Throws an Error if the graph has a cycle, or the specified node does not exist.
   *
   * If `leavesOnly` is true, only nodes that do not have any dependants will be returned in the array.
   */
  dependantsOf:function (node, leavesOnly) {
    if (this.hasNode(node)) {
      var result = [];
      var DFS = createDFS(this.incomingEdges, leavesOnly, result);
      DFS(node);
      var idx = result.indexOf(node);
      if (idx >= 0) {
        result.splice(idx, 1);
      }
      return result;
    } else {
      throw new Error('Node does not exist: ' + node);
    }
  },
  /**
   * Construct the overall processing order for the dependency graph.
   *
   * Throws an Error if the graph has a cycle.
   *
   * If `leavesOnly` is true, only nodes that do not depend on any other nodes will be returned.
   */
  overallOrder:function (leavesOnly) {
    var self = this;
    var result = [];
    var keys = Object.keys(this.nodes);
    if (keys.length === 0) {
      return result; // Empty graph
    } else {
      // Look for cycles - we run the DFS starting at all the nodes in case there
      // are several disconnected subgraphs inside this dependency graph.
      var CycleDFS = createDFS(this.outgoingEdges, false, []);
      keys.forEach(function(n) {
        CycleDFS(n);
      });

      var DFS = createDFS(this.outgoingEdges, leavesOnly, result);
      // Find all potential starting points (nodes with nothing depending on them) an
      // run a DFS starting at these points to get the order
      keys.filter(function (node) {
        return self.incomingEdges[node].length === 0;
      }).forEach(function (n) {
        DFS(n);
      });

      return result;
    }
  },


};


/***/ }),

/***/ "./node_modules/exenv/index.js":
/*!*************************************!*\
  !*** ./node_modules/exenv/index.js ***!
  \*************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_RESULT__;/*!
  Copyright (c) 2015 Jed Watson.
  Based on code that is Copyright 2013-2015, Facebook, Inc.
  All rights reserved.
*/
/* global define */

(function () {
	'use strict';

	var canUseDOM = !!(
		typeof window !== 'undefined' &&
		window.document &&
		window.document.createElement
	);

	var ExecutionEnvironment = {

		canUseDOM: canUseDOM,

		canUseWorkers: typeof Worker !== 'undefined',

		canUseEventListeners:
			canUseDOM && !!(window.addEventListener || window.attachEvent),

		canUseViewport: canUseDOM && !!window.screen

	};

	if (true) {
		!(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {
			return ExecutionEnvironment;
		}).call(exports, __webpack_require__, exports, module),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
	} else {}

}());


/***/ }),

/***/ "./node_modules/flux-standard-action/lib/index.js":
/*!********************************************************!*\
  !*** ./node_modules/flux-standard-action/lib/index.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.isFSA = isFSA;
exports.isError = isError;

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var _lodashIsplainobject = __webpack_require__(/*! lodash.isplainobject */ "./node_modules/lodash.isplainobject/index.js");

var _lodashIsplainobject2 = _interopRequireDefault(_lodashIsplainobject);

var validKeys = ['type', 'payload', 'error', 'meta'];

function isValidKey(key) {
  return validKeys.indexOf(key) > -1;
}

function isFSA(action) {
  return _lodashIsplainobject2['default'](action) && typeof action.type !== 'undefined' && Object.keys(action).every(isValidKey);
}

function isError(action) {
  return action.error === true;
}

/***/ }),

/***/ "./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js ***!
  \**********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


/**
 * Copyright 2015, Yahoo! Inc.
 * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
 */
var ReactIs = __webpack_require__(/*! react-is */ "./node_modules/react-is/index.js");
var REACT_STATICS = {
    childContextTypes: true,
    contextType: true,
    contextTypes: true,
    defaultProps: true,
    displayName: true,
    getDefaultProps: true,
    getDerivedStateFromError: true,
    getDerivedStateFromProps: true,
    mixins: true,
    propTypes: true,
    type: true
};

var KNOWN_STATICS = {
    name: true,
    length: true,
    prototype: true,
    caller: true,
    callee: true,
    arguments: true,
    arity: true
};

var FORWARD_REF_STATICS = {
    '$$typeof': true,
    render: true,
    defaultProps: true,
    displayName: true,
    propTypes: true
};

var MEMO_STATICS = {
    '$$typeof': true,
    compare: true,
    defaultProps: true,
    displayName: true,
    propTypes: true,
    type: true
};

var TYPE_STATICS = {};
TYPE_STATICS[ReactIs.ForwardRef] = FORWARD_REF_STATICS;

function getStatics(component) {
    if (ReactIs.isMemo(component)) {
        return MEMO_STATICS;
    }
    return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;
}

var defineProperty = Object.defineProperty;
var getOwnPropertyNames = Object.getOwnPropertyNames;
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
var getPrototypeOf = Object.getPrototypeOf;
var objectPrototype = Object.prototype;

function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
    if (typeof sourceComponent !== 'string') {
        // don't hoist over string (html) components

        if (objectPrototype) {
            var inheritedComponent = getPrototypeOf(sourceComponent);
            if (inheritedComponent && inheritedComponent !== objectPrototype) {
                hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
            }
        }

        var keys = getOwnPropertyNames(sourceComponent);

        if (getOwnPropertySymbols) {
            keys = keys.concat(getOwnPropertySymbols(sourceComponent));
        }

        var targetStatics = getStatics(targetComponent);
        var sourceStatics = getStatics(sourceComponent);

        for (var i = 0; i < keys.length; ++i) {
            var key = keys[i];
            if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {
                var descriptor = getOwnPropertyDescriptor(sourceComponent, key);
                try {
                    // Avoid failures from read-only properties
                    defineProperty(targetComponent, key, descriptor);
                } catch (e) {}
            }
        }

        return targetComponent;
    }

    return targetComponent;
}

module.exports = hoistNonReactStatics;


/***/ }),

/***/ "./node_modules/hyphenate-style-name/index.js":
/*!****************************************************!*\
  !*** ./node_modules/hyphenate-style-name/index.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* eslint-disable no-var, prefer-template */
var uppercasePattern = /[A-Z]/g
var msPattern = /^ms-/
var cache = {}

function toHyphenLower(match) {
  return '-' + match.toLowerCase()
}

function hyphenateStyleName(name) {
  if (cache.hasOwnProperty(name)) {
    return cache[name]
  }

  var hName = name.replace(uppercasePattern, toHyphenLower)
  return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)
}

/* harmony default export */ __webpack_exports__["default"] = (hyphenateStyleName);


/***/ }),

/***/ "./node_modules/ieee754/index.js":
/*!***************************************!*\
  !*** ./node_modules/ieee754/index.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports) {

exports.read = function (buffer, offset, isLE, mLen, nBytes) {
  var e, m
  var eLen = (nBytes * 8) - mLen - 1
  var eMax = (1 << eLen) - 1
  var eBias = eMax >> 1
  var nBits = -7
  var i = isLE ? (nBytes - 1) : 0
  var d = isLE ? -1 : 1
  var s = buffer[offset + i]

  i += d

  e = s & ((1 << (-nBits)) - 1)
  s >>= (-nBits)
  nBits += eLen
  for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}

  m = e & ((1 << (-nBits)) - 1)
  e >>= (-nBits)
  nBits += mLen
  for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}

  if (e === 0) {
    e = 1 - eBias
  } else if (e === eMax) {
    return m ? NaN : ((s ? -1 : 1) * Infinity)
  } else {
    m = m + Math.pow(2, mLen)
    e = e - eBias
  }
  return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
}

exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
  var e, m, c
  var eLen = (nBytes * 8) - mLen - 1
  var eMax = (1 << eLen) - 1
  var eBias = eMax >> 1
  var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
  var i = isLE ? 0 : (nBytes - 1)
  var d = isLE ? 1 : -1
  var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0

  value = Math.abs(value)

  if (isNaN(value) || value === Infinity) {
    m = isNaN(value) ? 1 : 0
    e = eMax
  } else {
    e = Math.floor(Math.log(value) / Math.LN2)
    if (value * (c = Math.pow(2, -e)) < 1) {
      e--
      c *= 2
    }
    if (e + eBias >= 1) {
      value += rt / c
    } else {
      value += rt * Math.pow(2, 1 - eBias)
    }
    if (value * c >= 2) {
      e++
      c /= 2
    }

    if (e + eBias >= eMax) {
      m = 0
      e = eMax
    } else if (e + eBias >= 1) {
      m = ((value * c) - 1) * Math.pow(2, mLen)
      e = e + eBias
    } else {
      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
      e = 0
    }
  }

  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}

  e = (e << mLen) | m
  eLen += mLen
  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}

  buffer[offset + i - d] |= s * 128
}


/***/ }),

/***/ "./node_modules/inline-style-prefixer/dynamic/createPrefixer.js":
/*!**********************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/dynamic/createPrefixer.js ***!
  \**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

exports.default = createPrefixer;

var _getBrowserInformation = __webpack_require__(/*! ../utils/getBrowserInformation */ "./node_modules/inline-style-prefixer/utils/getBrowserInformation.js");

var _getBrowserInformation2 = _interopRequireDefault(_getBrowserInformation);

var _getPrefixedKeyframes = __webpack_require__(/*! ../utils/getPrefixedKeyframes */ "./node_modules/inline-style-prefixer/utils/getPrefixedKeyframes.js");

var _getPrefixedKeyframes2 = _interopRequireDefault(_getPrefixedKeyframes);

var _capitalizeString = __webpack_require__(/*! ../utils/capitalizeString */ "./node_modules/inline-style-prefixer/utils/capitalizeString.js");

var _capitalizeString2 = _interopRequireDefault(_capitalizeString);

var _addNewValuesOnly = __webpack_require__(/*! ../utils/addNewValuesOnly */ "./node_modules/inline-style-prefixer/utils/addNewValuesOnly.js");

var _addNewValuesOnly2 = _interopRequireDefault(_addNewValuesOnly);

var _isObject = __webpack_require__(/*! ../utils/isObject */ "./node_modules/inline-style-prefixer/utils/isObject.js");

var _isObject2 = _interopRequireDefault(_isObject);

var _prefixValue = __webpack_require__(/*! ../utils/prefixValue */ "./node_modules/inline-style-prefixer/utils/prefixValue.js");

var _prefixValue2 = _interopRequireDefault(_prefixValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function createPrefixer(_ref) {
  var prefixMap = _ref.prefixMap,
      plugins = _ref.plugins;
  var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (style) {
    return style;
  };

  return function () {
    /**
     * Instantiante a new prefixer
     * @param {string} userAgent - userAgent to gather prefix information according to caniuse.com
     * @param {string} keepUnprefixed - keeps unprefixed properties and values
     */
    function Prefixer() {
      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

      _classCallCheck(this, Prefixer);

      var defaultUserAgent = typeof navigator !== 'undefined' ? navigator.userAgent : undefined;

      this._userAgent = options.userAgent || defaultUserAgent;
      this._keepUnprefixed = options.keepUnprefixed || false;

      if (this._userAgent) {
        this._browserInfo = (0, _getBrowserInformation2.default)(this._userAgent);
      }

      // Checks if the userAgent was resolved correctly
      if (this._browserInfo && this._browserInfo.cssPrefix) {
        this.prefixedKeyframes = (0, _getPrefixedKeyframes2.default)(this._browserInfo.browserName, this._browserInfo.browserVersion, this._browserInfo.cssPrefix);
      } else {
        this._useFallback = true;
        return false;
      }

      var prefixData = this._browserInfo.browserName && prefixMap[this._browserInfo.browserName];
      if (prefixData) {
        this._requiresPrefix = {};

        for (var property in prefixData) {
          if (prefixData[property] >= this._browserInfo.browserVersion) {
            this._requiresPrefix[property] = true;
          }
        }

        this._hasPropsRequiringPrefix = Object.keys(this._requiresPrefix).length > 0;
      } else {
        this._useFallback = true;
      }

      this._metaData = {
        browserVersion: this._browserInfo.browserVersion,
        browserName: this._browserInfo.browserName,
        cssPrefix: this._browserInfo.cssPrefix,
        jsPrefix: this._browserInfo.jsPrefix,
        keepUnprefixed: this._keepUnprefixed,
        requiresPrefix: this._requiresPrefix
      };
    }

    _createClass(Prefixer, [{
      key: 'prefix',
      value: function prefix(style) {
        // use static prefixer as fallback if userAgent can not be resolved
        if (this._useFallback) {
          return fallback(style);
        }

        // only add prefixes if needed
        if (!this._hasPropsRequiringPrefix) {
          return style;
        }

        return this._prefixStyle(style);
      }
    }, {
      key: '_prefixStyle',
      value: function _prefixStyle(style) {
        for (var property in style) {
          var value = style[property];

          // handle nested objects
          if ((0, _isObject2.default)(value)) {
            style[property] = this.prefix(value);
            // handle array values
          } else if (Array.isArray(value)) {
            var combinedValue = [];

            for (var i = 0, len = value.length; i < len; ++i) {
              var processedValue = (0, _prefixValue2.default)(plugins, property, value[i], style, this._metaData);
              (0, _addNewValuesOnly2.default)(combinedValue, processedValue || value[i]);
            }

            // only modify the value if it was touched
            // by any plugin to prevent unnecessary mutations
            if (combinedValue.length > 0) {
              style[property] = combinedValue;
            }
          } else {
            var _processedValue = (0, _prefixValue2.default)(plugins, property, value, style, this._metaData);

            // only modify the value if it was touched
            // by any plugin to prevent unnecessary mutations
            if (_processedValue) {
              style[property] = _processedValue;
            }

            // add prefixes to properties
            if (this._requiresPrefix.hasOwnProperty(property)) {
              style[this._browserInfo.jsPrefix + (0, _capitalizeString2.default)(property)] = value;
              if (!this._keepUnprefixed) {
                delete style[property];
              }
            }
          }
        }

        return style;
      }

      /**
       * Returns a prefixed version of the style object using all vendor prefixes
       * @param {Object} styles - Style object that gets prefixed properties added
       * @returns {Object} - Style object with prefixed properties and values
       */

    }], [{
      key: 'prefixAll',
      value: function prefixAll(styles) {
        return fallback(styles);
      }
    }]);

    return Prefixer;
  }();
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/dynamic/plugins/calc.js":
/*!********************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/dynamic/plugins/calc.js ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = calc;

var _getPrefixedValue = __webpack_require__(/*! ../../utils/getPrefixedValue */ "./node_modules/inline-style-prefixer/utils/getPrefixedValue.js");

var _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function calc(property, value, style, _ref) {
  var browserName = _ref.browserName,
      browserVersion = _ref.browserVersion,
      cssPrefix = _ref.cssPrefix,
      keepUnprefixed = _ref.keepUnprefixed;

  if (typeof value === 'string' && value.indexOf('calc(') > -1 && (browserName === 'firefox' && browserVersion < 15 || browserName === 'chrome' && browserVersion < 25 || browserName === 'safari' && browserVersion < 6.1 || browserName === 'ios_saf' && browserVersion < 7)) {
    return (0, _getPrefixedValue2.default)(value.replace(/calc\(/g, cssPrefix + 'calc('), value, keepUnprefixed);
  }
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/dynamic/plugins/crossFade.js":
/*!*************************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/dynamic/plugins/crossFade.js ***!
  \*************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = crossFade;

var _getPrefixedValue = __webpack_require__(/*! ../../utils/getPrefixedValue */ "./node_modules/inline-style-prefixer/utils/getPrefixedValue.js");

var _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function crossFade(property, value, style, _ref) {
  var browserName = _ref.browserName,
      browserVersion = _ref.browserVersion,
      cssPrefix = _ref.cssPrefix,
      keepUnprefixed = _ref.keepUnprefixed;

  if (typeof value === 'string' && value.indexOf('cross-fade(') > -1 && (browserName === 'chrome' || browserName === 'opera' || browserName === 'and_chr' || (browserName === 'ios_saf' || browserName === 'safari') && browserVersion < 10)) {
    return (0, _getPrefixedValue2.default)(value.replace(/cross-fade\(/g, cssPrefix + 'cross-fade('), value, keepUnprefixed);
  }
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/dynamic/plugins/cursor.js":
/*!**********************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/dynamic/plugins/cursor.js ***!
  \**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = cursor;

var _getPrefixedValue = __webpack_require__(/*! ../../utils/getPrefixedValue */ "./node_modules/inline-style-prefixer/utils/getPrefixedValue.js");

var _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var grabValues = {
  grab: true,
  grabbing: true
};


var zoomValues = {
  'zoom-in': true,
  'zoom-out': true
};

function cursor(property, value, style, _ref) {
  var browserName = _ref.browserName,
      browserVersion = _ref.browserVersion,
      cssPrefix = _ref.cssPrefix,
      keepUnprefixed = _ref.keepUnprefixed;

  // adds prefixes for firefox, chrome, safari, and opera regardless of
  // version until a reliable browser support info can be found
  // see: https://github.com/rofrischmann/inline-style-prefixer/issues/79
  if (property === 'cursor' && grabValues[value] && (browserName === 'firefox' || browserName === 'chrome' || browserName === 'safari' || browserName === 'opera')) {
    return (0, _getPrefixedValue2.default)(cssPrefix + value, value, keepUnprefixed);
  }

  if (property === 'cursor' && zoomValues[value] && (browserName === 'firefox' && browserVersion < 24 || browserName === 'chrome' && browserVersion < 37 || browserName === 'safari' && browserVersion < 9 || browserName === 'opera' && browserVersion < 24)) {
    return (0, _getPrefixedValue2.default)(cssPrefix + value, value, keepUnprefixed);
  }
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/dynamic/plugins/filter.js":
/*!**********************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/dynamic/plugins/filter.js ***!
  \**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = filter;

var _getPrefixedValue = __webpack_require__(/*! ../../utils/getPrefixedValue */ "./node_modules/inline-style-prefixer/utils/getPrefixedValue.js");

var _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function filter(property, value, style, _ref) {
  var browserName = _ref.browserName,
      browserVersion = _ref.browserVersion,
      cssPrefix = _ref.cssPrefix,
      keepUnprefixed = _ref.keepUnprefixed;

  if (typeof value === 'string' && value.indexOf('filter(') > -1 && (browserName === 'ios_saf' || browserName === 'safari' && browserVersion < 9.1)) {
    return (0, _getPrefixedValue2.default)(value.replace(/filter\(/g, cssPrefix + 'filter('), value, keepUnprefixed);
  }
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/dynamic/plugins/flex.js":
/*!********************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/dynamic/plugins/flex.js ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = flex;

var _getPrefixedValue = __webpack_require__(/*! ../../utils/getPrefixedValue */ "./node_modules/inline-style-prefixer/utils/getPrefixedValue.js");

var _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var values = {
  flex: true,
  'inline-flex': true
};
function flex(property, value, style, _ref) {
  var browserName = _ref.browserName,
      browserVersion = _ref.browserVersion,
      cssPrefix = _ref.cssPrefix,
      keepUnprefixed = _ref.keepUnprefixed;

  if (property === 'display' && values[value] && (browserName === 'chrome' && browserVersion < 29 && browserVersion > 20 || (browserName === 'safari' || browserName === 'ios_saf') && browserVersion < 9 && browserVersion > 6 || browserName === 'opera' && (browserVersion === 15 || browserVersion === 16))) {
    return (0, _getPrefixedValue2.default)(cssPrefix + value, value, keepUnprefixed);
  }
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/dynamic/plugins/flexboxIE.js":
/*!*************************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/dynamic/plugins/flexboxIE.js ***!
  \*************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = flexboxIE;

var _getPrefixedValue = __webpack_require__(/*! ../../utils/getPrefixedValue */ "./node_modules/inline-style-prefixer/utils/getPrefixedValue.js");

var _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var alternativeValues = {
  'space-around': 'distribute',
  'space-between': 'justify',
  'flex-start': 'start',
  'flex-end': 'end',
  flex: 'flexbox',
  'inline-flex': 'inline-flexbox'
};

var alternativeProps = {
  alignContent: 'msFlexLinePack',
  alignSelf: 'msFlexItemAlign',
  alignItems: 'msFlexAlign',
  justifyContent: 'msFlexPack',
  order: 'msFlexOrder',
  flexGrow: 'msFlexPositive',
  flexShrink: 'msFlexNegative',
  flexBasis: 'msFlexPreferredSize'
};

function flexboxIE(property, value, style, _ref) {
  var browserName = _ref.browserName,
      browserVersion = _ref.browserVersion,
      cssPrefix = _ref.cssPrefix,
      keepUnprefixed = _ref.keepUnprefixed,
      requiresPrefix = _ref.requiresPrefix;

  if ((alternativeProps.hasOwnProperty(property) || property === 'display' && typeof value === 'string' && value.indexOf('flex') > -1) && (browserName === 'ie_mob' || browserName === 'ie') && browserVersion === 10) {
    delete requiresPrefix[property];

    if (!keepUnprefixed && !Array.isArray(style[property])) {
      delete style[property];
    }
    if (property === 'display' && alternativeValues.hasOwnProperty(value)) {
      return (0, _getPrefixedValue2.default)(cssPrefix + alternativeValues[value], value, keepUnprefixed);
    }
    if (alternativeProps.hasOwnProperty(property)) {
      style[alternativeProps[property]] = alternativeValues[value] || value;
    }
  }
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/dynamic/plugins/flexboxOld.js":
/*!**************************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/dynamic/plugins/flexboxOld.js ***!
  \**************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = flexboxOld;

var _getPrefixedValue = __webpack_require__(/*! ../../utils/getPrefixedValue */ "./node_modules/inline-style-prefixer/utils/getPrefixedValue.js");

var _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var alternativeValues = {
  'space-around': 'justify',
  'space-between': 'justify',
  'flex-start': 'start',
  'flex-end': 'end',
  'wrap-reverse': 'multiple',
  wrap: 'multiple',
  flex: 'box',
  'inline-flex': 'inline-box'
};


var alternativeProps = {
  alignItems: 'WebkitBoxAlign',
  justifyContent: 'WebkitBoxPack',
  flexWrap: 'WebkitBoxLines',
  flexGrow: 'WebkitBoxFlex'
};

var otherProps = ['alignContent', 'alignSelf', 'order', 'flexGrow', 'flexShrink', 'flexBasis', 'flexDirection'];
var properties = Object.keys(alternativeProps).concat(otherProps);

function flexboxOld(property, value, style, _ref) {
  var browserName = _ref.browserName,
      browserVersion = _ref.browserVersion,
      cssPrefix = _ref.cssPrefix,
      keepUnprefixed = _ref.keepUnprefixed,
      requiresPrefix = _ref.requiresPrefix;

  if ((properties.indexOf(property) > -1 || property === 'display' && typeof value === 'string' && value.indexOf('flex') > -1) && (browserName === 'firefox' && browserVersion < 22 || browserName === 'chrome' && browserVersion < 21 || (browserName === 'safari' || browserName === 'ios_saf') && browserVersion <= 6.1 || browserName === 'android' && browserVersion < 4.4 || browserName === 'and_uc')) {
    delete requiresPrefix[property];

    if (!keepUnprefixed && !Array.isArray(style[property])) {
      delete style[property];
    }
    if (property === 'flexDirection' && typeof value === 'string') {
      if (value.indexOf('column') > -1) {
        style.WebkitBoxOrient = 'vertical';
      } else {
        style.WebkitBoxOrient = 'horizontal';
      }
      if (value.indexOf('reverse') > -1) {
        style.WebkitBoxDirection = 'reverse';
      } else {
        style.WebkitBoxDirection = 'normal';
      }
    }
    if (property === 'display' && alternativeValues.hasOwnProperty(value)) {
      return (0, _getPrefixedValue2.default)(cssPrefix + alternativeValues[value], value, keepUnprefixed);
    }
    if (alternativeProps.hasOwnProperty(property)) {
      style[alternativeProps[property]] = alternativeValues[value] || value;
    }
  }
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/dynamic/plugins/gradient.js":
/*!************************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/dynamic/plugins/gradient.js ***!
  \************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = gradient;

var _getPrefixedValue = __webpack_require__(/*! ../../utils/getPrefixedValue */ "./node_modules/inline-style-prefixer/utils/getPrefixedValue.js");

var _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var values = /linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/gi;
function gradient(property, value, style, _ref) {
  var browserName = _ref.browserName,
      browserVersion = _ref.browserVersion,
      cssPrefix = _ref.cssPrefix,
      keepUnprefixed = _ref.keepUnprefixed;

  if (typeof value === 'string' && values.test(value) && (browserName === 'firefox' && browserVersion < 16 || browserName === 'chrome' && browserVersion < 26 || (browserName === 'safari' || browserName === 'ios_saf') && browserVersion < 7 || (browserName === 'opera' || browserName === 'op_mini') && browserVersion < 12.1 || browserName === 'android' && browserVersion < 4.4 || browserName === 'and_uc')) {
    return (0, _getPrefixedValue2.default)(value.replace(values, function (grad) {
      return cssPrefix + grad;
    }), value, keepUnprefixed);
  }
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/dynamic/plugins/imageSet.js":
/*!************************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/dynamic/plugins/imageSet.js ***!
  \************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = imageSet;

var _getPrefixedValue = __webpack_require__(/*! ../../utils/getPrefixedValue */ "./node_modules/inline-style-prefixer/utils/getPrefixedValue.js");

var _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function imageSet(property, value, style, _ref) {
  var browserName = _ref.browserName,
      cssPrefix = _ref.cssPrefix,
      keepUnprefixed = _ref.keepUnprefixed;

  if (typeof value === 'string' && value.indexOf('image-set(') > -1 && (browserName === 'chrome' || browserName === 'opera' || browserName === 'and_chr' || browserName === 'and_uc' || browserName === 'ios_saf' || browserName === 'safari')) {
    return (0, _getPrefixedValue2.default)(value.replace(/image-set\(/g, cssPrefix + 'image-set('), value, keepUnprefixed);
  }
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/dynamic/plugins/position.js":
/*!************************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/dynamic/plugins/position.js ***!
  \************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = position;

var _getPrefixedValue = __webpack_require__(/*! ../../utils/getPrefixedValue */ "./node_modules/inline-style-prefixer/utils/getPrefixedValue.js");

var _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function position(property, value, style, _ref) {
  var browserName = _ref.browserName,
      cssPrefix = _ref.cssPrefix,
      keepUnprefixed = _ref.keepUnprefixed;

  if (property === 'position' && value === 'sticky' && (browserName === 'safari' || browserName === 'ios_saf')) {
    return (0, _getPrefixedValue2.default)(cssPrefix + value, value, keepUnprefixed);
  }
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/dynamic/plugins/sizing.js":
/*!**********************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/dynamic/plugins/sizing.js ***!
  \**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = sizing;

var _getPrefixedValue = __webpack_require__(/*! ../../utils/getPrefixedValue */ "./node_modules/inline-style-prefixer/utils/getPrefixedValue.js");

var _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var properties = {
  maxHeight: true,
  maxWidth: true,
  width: true,
  height: true,
  columnWidth: true,
  minWidth: true,
  minHeight: true
};

var values = {
  'min-content': true,
  'max-content': true,
  'fill-available': true,
  'fit-content': true,
  'contain-floats': true

  // TODO: chrome & opera support it
};function sizing(property, value, style, _ref) {
  var cssPrefix = _ref.cssPrefix,
      keepUnprefixed = _ref.keepUnprefixed;

  // This might change in the future
  // Keep an eye on it
  if (properties.hasOwnProperty(property) && values.hasOwnProperty(value)) {
    return (0, _getPrefixedValue2.default)(cssPrefix + value, value, keepUnprefixed);
  }
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/dynamic/plugins/transition.js":
/*!**************************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/dynamic/plugins/transition.js ***!
  \**************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = transition;

var _hyphenateProperty = __webpack_require__(/*! css-in-js-utils/lib/hyphenateProperty */ "./node_modules/css-in-js-utils/lib/hyphenateProperty.js");

var _hyphenateProperty2 = _interopRequireDefault(_hyphenateProperty);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var properties = {
  transition: true,
  transitionProperty: true,
  WebkitTransition: true,
  WebkitTransitionProperty: true,
  MozTransition: true,
  MozTransitionProperty: true
};


var requiresPrefixDashCased = void 0;

function transition(property, value, style, _ref) {
  var cssPrefix = _ref.cssPrefix,
      keepUnprefixed = _ref.keepUnprefixed,
      requiresPrefix = _ref.requiresPrefix;

  if (typeof value === 'string' && properties.hasOwnProperty(property)) {
    // memoize the prefix array for later use
    if (!requiresPrefixDashCased) {
      requiresPrefixDashCased = Object.keys(requiresPrefix).map(function (prop) {
        return (0, _hyphenateProperty2.default)(prop);
      });
    }

    // only split multi values, not cubic beziers
    var multipleValues = value.split(/,(?![^()]*(?:\([^()]*\))?\))/g);

    requiresPrefixDashCased.forEach(function (prop) {
      multipleValues.forEach(function (val, index) {
        if (val.indexOf(prop) > -1 && prop !== 'order') {
          multipleValues[index] = val.replace(prop, cssPrefix + prop) + (keepUnprefixed ? ',' + val : '');
        }
      });
    });

    return multipleValues.join(',');
  }
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/static/createPrefixer.js":
/*!*********************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/static/createPrefixer.js ***!
  \*********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = createPrefixer;

var _prefixProperty = __webpack_require__(/*! ../utils/prefixProperty */ "./node_modules/inline-style-prefixer/utils/prefixProperty.js");

var _prefixProperty2 = _interopRequireDefault(_prefixProperty);

var _prefixValue = __webpack_require__(/*! ../utils/prefixValue */ "./node_modules/inline-style-prefixer/utils/prefixValue.js");

var _prefixValue2 = _interopRequireDefault(_prefixValue);

var _addNewValuesOnly = __webpack_require__(/*! ../utils/addNewValuesOnly */ "./node_modules/inline-style-prefixer/utils/addNewValuesOnly.js");

var _addNewValuesOnly2 = _interopRequireDefault(_addNewValuesOnly);

var _isObject = __webpack_require__(/*! ../utils/isObject */ "./node_modules/inline-style-prefixer/utils/isObject.js");

var _isObject2 = _interopRequireDefault(_isObject);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function createPrefixer(_ref) {
  var prefixMap = _ref.prefixMap,
      plugins = _ref.plugins;

  function prefixAll(style) {
    for (var property in style) {
      var value = style[property];

      // handle nested objects
      if ((0, _isObject2.default)(value)) {
        style[property] = prefixAll(value);
        // handle array values
      } else if (Array.isArray(value)) {
        var combinedValue = [];

        for (var i = 0, len = value.length; i < len; ++i) {
          var processedValue = (0, _prefixValue2.default)(plugins, property, value[i], style, prefixMap);
          (0, _addNewValuesOnly2.default)(combinedValue, processedValue || value[i]);
        }

        // only modify the value if it was touched
        // by any plugin to prevent unnecessary mutations
        if (combinedValue.length > 0) {
          style[property] = combinedValue;
        }
      } else {
        var _processedValue = (0, _prefixValue2.default)(plugins, property, value, style, prefixMap);

        // only modify the value if it was touched
        // by any plugin to prevent unnecessary mutations
        if (_processedValue) {
          style[property] = _processedValue;
        }

        style = (0, _prefixProperty2.default)(prefixMap, property, style);
      }
    }

    return style;
  }

  return prefixAll;
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/static/plugins/calc.js":
/*!*******************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/static/plugins/calc.js ***!
  \*******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = calc;

var _isPrefixedValue = __webpack_require__(/*! css-in-js-utils/lib/isPrefixedValue */ "./node_modules/css-in-js-utils/lib/isPrefixedValue.js");

var _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var prefixes = ['-webkit-', '-moz-', ''];
function calc(property, value) {
  if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('calc(') > -1) {
    return prefixes.map(function (prefix) {
      return value.replace(/calc\(/g, prefix + 'calc(');
    });
  }
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/static/plugins/crossFade.js":
/*!************************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/static/plugins/crossFade.js ***!
  \************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = crossFade;

var _isPrefixedValue = __webpack_require__(/*! css-in-js-utils/lib/isPrefixedValue */ "./node_modules/css-in-js-utils/lib/isPrefixedValue.js");

var _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

// http://caniuse.com/#search=cross-fade
var prefixes = ['-webkit-', ''];
function crossFade(property, value) {
  if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('cross-fade(') > -1) {
    return prefixes.map(function (prefix) {
      return value.replace(/cross-fade\(/g, prefix + 'cross-fade(');
    });
  }
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/static/plugins/cursor.js":
/*!*********************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/static/plugins/cursor.js ***!
  \*********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = cursor;
var prefixes = ['-webkit-', '-moz-', ''];

var values = {
  'zoom-in': true,
  'zoom-out': true,
  grab: true,
  grabbing: true
};

function cursor(property, value) {
  if (property === 'cursor' && values.hasOwnProperty(value)) {
    return prefixes.map(function (prefix) {
      return prefix + value;
    });
  }
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/static/plugins/filter.js":
/*!*********************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/static/plugins/filter.js ***!
  \*********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = filter;

var _isPrefixedValue = __webpack_require__(/*! css-in-js-utils/lib/isPrefixedValue */ "./node_modules/css-in-js-utils/lib/isPrefixedValue.js");

var _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

// http://caniuse.com/#feat=css-filter-function
var prefixes = ['-webkit-', ''];
function filter(property, value) {
  if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('filter(') > -1) {
    return prefixes.map(function (prefix) {
      return value.replace(/filter\(/g, prefix + 'filter(');
    });
  }
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/static/plugins/flex.js":
/*!*******************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/static/plugins/flex.js ***!
  \*******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = flex;
var values = {
  flex: ['-webkit-box', '-moz-box', '-ms-flexbox', '-webkit-flex', 'flex'],
  'inline-flex': ['-webkit-inline-box', '-moz-inline-box', '-ms-inline-flexbox', '-webkit-inline-flex', 'inline-flex']
};

function flex(property, value) {
  if (property === 'display' && values.hasOwnProperty(value)) {
    return values[value];
  }
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/static/plugins/flexboxIE.js":
/*!************************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/static/plugins/flexboxIE.js ***!
  \************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = flexboxIE;
var alternativeValues = {
  'space-around': 'distribute',
  'space-between': 'justify',
  'flex-start': 'start',
  'flex-end': 'end'
};
var alternativeProps = {
  alignContent: 'msFlexLinePack',
  alignSelf: 'msFlexItemAlign',
  alignItems: 'msFlexAlign',
  justifyContent: 'msFlexPack',
  order: 'msFlexOrder',
  flexGrow: 'msFlexPositive',
  flexShrink: 'msFlexNegative',
  flexBasis: 'msFlexPreferredSize'
};

function flexboxIE(property, value, style) {
  if (alternativeProps.hasOwnProperty(property)) {
    style[alternativeProps[property]] = alternativeValues[value] || value;
  }
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/static/plugins/flexboxOld.js":
/*!*************************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/static/plugins/flexboxOld.js ***!
  \*************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = flexboxOld;
var alternativeValues = {
  'space-around': 'justify',
  'space-between': 'justify',
  'flex-start': 'start',
  'flex-end': 'end',
  'wrap-reverse': 'multiple',
  wrap: 'multiple',
  flex: 'box',
  'inline-flex': 'inline-box'
};

var alternativeProps = {
  alignItems: 'WebkitBoxAlign',
  justifyContent: 'WebkitBoxPack',
  flexWrap: 'WebkitBoxLines',
  flexGrow: 'WebkitBoxFlex'
};

function flexboxOld(property, value, style) {
  if (property === 'flexDirection' && typeof value === 'string') {
    if (value.indexOf('column') > -1) {
      style.WebkitBoxOrient = 'vertical';
    } else {
      style.WebkitBoxOrient = 'horizontal';
    }
    if (value.indexOf('reverse') > -1) {
      style.WebkitBoxDirection = 'reverse';
    } else {
      style.WebkitBoxDirection = 'normal';
    }
  }
  if (alternativeProps.hasOwnProperty(property)) {
    style[alternativeProps[property]] = alternativeValues[value] || value;
  }
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/static/plugins/gradient.js":
/*!***********************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/static/plugins/gradient.js ***!
  \***********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = gradient;

var _isPrefixedValue = __webpack_require__(/*! css-in-js-utils/lib/isPrefixedValue */ "./node_modules/css-in-js-utils/lib/isPrefixedValue.js");

var _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var prefixes = ['-webkit-', '-moz-', ''];

var values = /linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/gi;

function gradient(property, value) {
  if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && values.test(value)) {
    return prefixes.map(function (prefix) {
      return value.replace(values, function (grad) {
        return prefix + grad;
      });
    });
  }
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/static/plugins/imageSet.js":
/*!***********************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/static/plugins/imageSet.js ***!
  \***********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = imageSet;

var _isPrefixedValue = __webpack_require__(/*! css-in-js-utils/lib/isPrefixedValue */ "./node_modules/css-in-js-utils/lib/isPrefixedValue.js");

var _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

// http://caniuse.com/#feat=css-image-set
var prefixes = ['-webkit-', ''];
function imageSet(property, value) {
  if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('image-set(') > -1) {
    return prefixes.map(function (prefix) {
      return value.replace(/image-set\(/g, prefix + 'image-set(');
    });
  }
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/static/plugins/position.js":
/*!***********************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/static/plugins/position.js ***!
  \***********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = position;
function position(property, value) {
  if (property === 'position' && value === 'sticky') {
    return ['-webkit-sticky', 'sticky'];
  }
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/static/plugins/sizing.js":
/*!*********************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/static/plugins/sizing.js ***!
  \*********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = sizing;
var prefixes = ['-webkit-', '-moz-', ''];

var properties = {
  maxHeight: true,
  maxWidth: true,
  width: true,
  height: true,
  columnWidth: true,
  minWidth: true,
  minHeight: true
};
var values = {
  'min-content': true,
  'max-content': true,
  'fill-available': true,
  'fit-content': true,
  'contain-floats': true
};

function sizing(property, value) {
  if (properties.hasOwnProperty(property) && values.hasOwnProperty(value)) {
    return prefixes.map(function (prefix) {
      return prefix + value;
    });
  }
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/static/plugins/transition.js":
/*!*************************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/static/plugins/transition.js ***!
  \*************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = transition;

var _hyphenateProperty = __webpack_require__(/*! css-in-js-utils/lib/hyphenateProperty */ "./node_modules/css-in-js-utils/lib/hyphenateProperty.js");

var _hyphenateProperty2 = _interopRequireDefault(_hyphenateProperty);

var _isPrefixedValue = __webpack_require__(/*! css-in-js-utils/lib/isPrefixedValue */ "./node_modules/css-in-js-utils/lib/isPrefixedValue.js");

var _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);

var _capitalizeString = __webpack_require__(/*! ../../utils/capitalizeString */ "./node_modules/inline-style-prefixer/utils/capitalizeString.js");

var _capitalizeString2 = _interopRequireDefault(_capitalizeString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var properties = {
  transition: true,
  transitionProperty: true,
  WebkitTransition: true,
  WebkitTransitionProperty: true,
  MozTransition: true,
  MozTransitionProperty: true
};


var prefixMapping = {
  Webkit: '-webkit-',
  Moz: '-moz-',
  ms: '-ms-'
};

function prefixValue(value, propertyPrefixMap) {
  if ((0, _isPrefixedValue2.default)(value)) {
    return value;
  }

  // only split multi values, not cubic beziers
  var multipleValues = value.split(/,(?![^()]*(?:\([^()]*\))?\))/g);

  for (var i = 0, len = multipleValues.length; i < len; ++i) {
    var singleValue = multipleValues[i];
    var values = [singleValue];
    for (var property in propertyPrefixMap) {
      var dashCaseProperty = (0, _hyphenateProperty2.default)(property);

      if (singleValue.indexOf(dashCaseProperty) > -1 && dashCaseProperty !== 'order') {
        var prefixes = propertyPrefixMap[property];
        for (var j = 0, pLen = prefixes.length; j < pLen; ++j) {
          // join all prefixes and create a new value
          values.unshift(singleValue.replace(dashCaseProperty, prefixMapping[prefixes[j]] + dashCaseProperty));
        }
      }
    }

    multipleValues[i] = values.join(',');
  }

  return multipleValues.join(',');
}

function transition(property, value, style, propertyPrefixMap) {
  // also check for already prefixed transitions
  if (typeof value === 'string' && properties.hasOwnProperty(property)) {
    var outputValue = prefixValue(value, propertyPrefixMap);
    // if the property is already prefixed
    var webkitOutput = outputValue.split(/,(?![^()]*(?:\([^()]*\))?\))/g).filter(function (val) {
      return !/-moz-|-ms-/.test(val);
    }).join(',');

    if (property.indexOf('Webkit') > -1) {
      return webkitOutput;
    }

    var mozOutput = outputValue.split(/,(?![^()]*(?:\([^()]*\))?\))/g).filter(function (val) {
      return !/-webkit-|-ms-/.test(val);
    }).join(',');

    if (property.indexOf('Moz') > -1) {
      return mozOutput;
    }

    style['Webkit' + (0, _capitalizeString2.default)(property)] = webkitOutput;
    style['Moz' + (0, _capitalizeString2.default)(property)] = mozOutput;
    return outputValue;
  }
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/utils/addNewValuesOnly.js":
/*!**********************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/utils/addNewValuesOnly.js ***!
  \**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = addNewValuesOnly;
function addIfNew(list, value) {
  if (list.indexOf(value) === -1) {
    list.push(value);
  }
}

function addNewValuesOnly(list, values) {
  if (Array.isArray(values)) {
    for (var i = 0, len = values.length; i < len; ++i) {
      addIfNew(list, values[i]);
    }
  } else {
    addIfNew(list, values);
  }
}
module.exports = exports["default"];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/utils/capitalizeString.js":
/*!**********************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/utils/capitalizeString.js ***!
  \**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = capitalizeString;
function capitalizeString(str) {
  return str.charAt(0).toUpperCase() + str.slice(1);
}
module.exports = exports["default"];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/utils/getBrowserInformation.js":
/*!***************************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/utils/getBrowserInformation.js ***!
  \***************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = getBrowserInformation;

var _bowser = __webpack_require__(/*! bowser */ "./node_modules/bowser/src/bowser.js");

var _bowser2 = _interopRequireDefault(_bowser);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var prefixByBrowser = {
  chrome: 'Webkit',
  safari: 'Webkit',
  ios: 'Webkit',
  android: 'Webkit',
  phantom: 'Webkit',
  opera: 'Webkit',
  webos: 'Webkit',
  blackberry: 'Webkit',
  bada: 'Webkit',
  tizen: 'Webkit',
  chromium: 'Webkit',
  vivaldi: 'Webkit',
  firefox: 'Moz',
  seamoney: 'Moz',
  sailfish: 'Moz',
  msie: 'ms',
  msedge: 'ms'
};


var browserByCanIuseAlias = {
  chrome: 'chrome',
  chromium: 'chrome',
  safari: 'safari',
  firfox: 'firefox',
  msedge: 'edge',
  opera: 'opera',
  vivaldi: 'opera',
  msie: 'ie'
};

function getBrowserName(browserInfo) {
  if (browserInfo.firefox) {
    return 'firefox';
  }

  if (browserInfo.mobile || browserInfo.tablet) {
    if (browserInfo.ios) {
      return 'ios_saf';
    } else if (browserInfo.android) {
      return 'android';
    } else if (browserInfo.opera) {
      return 'op_mini';
    }
  }

  for (var browser in browserByCanIuseAlias) {
    if (browserInfo.hasOwnProperty(browser)) {
      return browserByCanIuseAlias[browser];
    }
  }
}

/**
 * Uses bowser to get default browser browserInformation such as version and name
 * Evaluates bowser browserInfo and adds vendorPrefix browserInformation
 * @param {string} userAgent - userAgent that gets evaluated
 */
function getBrowserInformation(userAgent) {
  var browserInfo = _bowser2.default._detect(userAgent);

  if (browserInfo.yandexbrowser) {
    browserInfo = _bowser2.default._detect(userAgent.replace(/YaBrowser\/[0-9.]*/, ''));
  }

  for (var browser in prefixByBrowser) {
    if (browserInfo.hasOwnProperty(browser)) {
      var prefix = prefixByBrowser[browser];

      browserInfo.jsPrefix = prefix;
      browserInfo.cssPrefix = '-' + prefix.toLowerCase() + '-';
      break;
    }
  }

  browserInfo.browserName = getBrowserName(browserInfo);

  // For cordova IOS 8 the version is missing, set truncated osversion to prevent NaN
  if (browserInfo.version) {
    browserInfo.browserVersion = parseFloat(browserInfo.version);
  } else {
    browserInfo.browserVersion = parseInt(parseFloat(browserInfo.osversion), 10);
  }

  browserInfo.osVersion = parseFloat(browserInfo.osversion);

  // iOS forces all browsers to use Safari under the hood
  // as the Safari version seems to match the iOS version
  // we just explicitely use the osversion instead
  // https://github.com/rofrischmann/inline-style-prefixer/issues/72
  if (browserInfo.browserName === 'ios_saf' && browserInfo.browserVersion > browserInfo.osVersion) {
    browserInfo.browserVersion = browserInfo.osVersion;
  }

  // seperate native android chrome
  // https://github.com/rofrischmann/inline-style-prefixer/issues/45
  if (browserInfo.browserName === 'android' && browserInfo.chrome && browserInfo.browserVersion > 37) {
    browserInfo.browserName = 'and_chr';
  }

  // For android < 4.4 we want to check the osversion
  // not the chrome version, see issue #26
  // https://github.com/rofrischmann/inline-style-prefixer/issues/26
  if (browserInfo.browserName === 'android' && browserInfo.osVersion < 5) {
    browserInfo.browserVersion = browserInfo.osVersion;
  }

  // Samsung browser are basically build on Chrome > 44
  // https://github.com/rofrischmann/inline-style-prefixer/issues/102
  if (browserInfo.browserName === 'android' && browserInfo.samsungBrowser) {
    browserInfo.browserName = 'and_chr';
    browserInfo.browserVersion = 44;
  }

  return browserInfo;
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/utils/getPrefixedKeyframes.js":
/*!**************************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/utils/getPrefixedKeyframes.js ***!
  \**************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = getPrefixedKeyframes;
function getPrefixedKeyframes(browserName, browserVersion, cssPrefix) {
  var prefixedKeyframes = 'keyframes';

  if (browserName === 'chrome' && browserVersion < 43 || (browserName === 'safari' || browserName === 'ios_saf') && browserVersion < 9 || browserName === 'opera' && browserVersion < 30 || browserName === 'android' && browserVersion <= 4.4 || browserName === 'and_uc') {
    return cssPrefix + prefixedKeyframes;
  }
  return prefixedKeyframes;
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/utils/getPrefixedValue.js":
/*!**********************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/utils/getPrefixedValue.js ***!
  \**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = getPrefixedValue;
function getPrefixedValue(prefixedValue, value, keepUnprefixed) {
  if (keepUnprefixed) {
    return [prefixedValue, value];
  }
  return prefixedValue;
}
module.exports = exports["default"];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/utils/isObject.js":
/*!**************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/utils/isObject.js ***!
  \**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = isObject;
function isObject(value) {
  return value instanceof Object && !Array.isArray(value);
}
module.exports = exports["default"];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/utils/prefixProperty.js":
/*!********************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/utils/prefixProperty.js ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = prefixProperty;

var _capitalizeString = __webpack_require__(/*! ./capitalizeString */ "./node_modules/inline-style-prefixer/utils/capitalizeString.js");

var _capitalizeString2 = _interopRequireDefault(_capitalizeString);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function prefixProperty(prefixProperties, property, style) {
  if (prefixProperties.hasOwnProperty(property)) {
    var newStyle = {};
    var requiredPrefixes = prefixProperties[property];
    var capitalizedProperty = (0, _capitalizeString2.default)(property);
    var keys = Object.keys(style);
    for (var i = 0; i < keys.length; i++) {
      var styleProperty = keys[i];
      if (styleProperty === property) {
        for (var j = 0; j < requiredPrefixes.length; j++) {
          newStyle[requiredPrefixes[j] + capitalizedProperty] = style[property];
        }
      }
      newStyle[styleProperty] = style[styleProperty];
    }
    return newStyle;
  }
  return style;
}
module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/inline-style-prefixer/utils/prefixValue.js":
/*!*****************************************************************!*\
  !*** ./node_modules/inline-style-prefixer/utils/prefixValue.js ***!
  \*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = prefixValue;
function prefixValue(plugins, property, value, style, metaData) {
  for (var i = 0, len = plugins.length; i < len; ++i) {
    var processedValue = plugins[i](property, value, style, metaData);

    // we can stop processing if a value is returned
    // as all plugin criteria are unique
    if (processedValue) {
      return processedValue;
    }
  }
}
module.exports = exports["default"];

/***/ }),

/***/ "./node_modules/invariant/browser.js":
/*!*******************************************!*\
  !*** ./node_modules/invariant/browser.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



/**
 * Use invariant() to assert state which your program assumes to be true.
 *
 * Provide sprintf-style format (only %s is supported) and arguments
 * to provide information about what broke and what you were
 * expecting.
 *
 * The invariant message will be stripped in production, but the invariant
 * will remain to ensure logic does not differ in production.
 */

var invariant = function(condition, format, a, b, c, d, e, f) {
  if (true) {
    if (format === undefined) {
      throw new Error('invariant requires an error message argument');
    }
  }

  if (!condition) {
    var error;
    if (format === undefined) {
      error = new Error(
        'Minified exception occurred; use the non-minified dev environment ' +
        'for the full error message and additional helpful warnings.'
      );
    } else {
      var args = [a, b, c, d, e, f];
      var argIndex = 0;
      error = new Error(
        format.replace(/%s/g, function() { return args[argIndex++]; })
      );
      error.name = 'Invariant Violation';
    }

    error.framesToPop = 1; // we don't care about invariant's own frame
    throw error;
  }
};

module.exports = invariant;


/***/ }),

/***/ "./node_modules/isarray/index.js":
/*!***************************************!*\
  !*** ./node_modules/isarray/index.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports) {

var toString = {}.toString;

module.exports = Array.isArray || function (arr) {
  return toString.call(arr) == '[object Array]';
};


/***/ }),

/***/ "./node_modules/lodash-es/_Symbol.js":
/*!*******************************************!*\
  !*** ./node_modules/lodash-es/_Symbol.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_root.js */ "./node_modules/lodash-es/_root.js");


/** Built-in value references. */
var Symbol = _root_js__WEBPACK_IMPORTED_MODULE_0__["default"].Symbol;

/* harmony default export */ __webpack_exports__["default"] = (Symbol);


/***/ }),

/***/ "./node_modules/lodash-es/_baseGetTag.js":
/*!***********************************************!*\
  !*** ./node_modules/lodash-es/_baseGetTag.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Symbol.js */ "./node_modules/lodash-es/_Symbol.js");
/* harmony import */ var _getRawTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getRawTag.js */ "./node_modules/lodash-es/_getRawTag.js");
/* harmony import */ var _objectToString_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_objectToString.js */ "./node_modules/lodash-es/_objectToString.js");




/** `Object#toString` result references. */
var nullTag = '[object Null]',
    undefinedTag = '[object Undefined]';

/** Built-in value references. */
var symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"].toStringTag : undefined;

/**
 * The base implementation of `getTag` without fallbacks for buggy environments.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the `toStringTag`.
 */
function baseGetTag(value) {
  if (value == null) {
    return value === undefined ? undefinedTag : nullTag;
  }
  return (symToStringTag && symToStringTag in Object(value))
    ? Object(_getRawTag_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value)
    : Object(_objectToString_js__WEBPACK_IMPORTED_MODULE_2__["default"])(value);
}

/* harmony default export */ __webpack_exports__["default"] = (baseGetTag);


/***/ }),

/***/ "./node_modules/lodash-es/_freeGlobal.js":
/*!***********************************************!*\
  !*** ./node_modules/lodash-es/_freeGlobal.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */
var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;

/* harmony default export */ __webpack_exports__["default"] = (freeGlobal);

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js")))

/***/ }),

/***/ "./node_modules/lodash-es/_getPrototype.js":
/*!*************************************************!*\
  !*** ./node_modules/lodash-es/_getPrototype.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _overArg_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_overArg.js */ "./node_modules/lodash-es/_overArg.js");


/** Built-in value references. */
var getPrototype = Object(_overArg_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Object.getPrototypeOf, Object);

/* harmony default export */ __webpack_exports__["default"] = (getPrototype);


/***/ }),

/***/ "./node_modules/lodash-es/_getRawTag.js":
/*!**********************************************!*\
  !*** ./node_modules/lodash-es/_getRawTag.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Symbol.js */ "./node_modules/lodash-es/_Symbol.js");


/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */
var nativeObjectToString = objectProto.toString;

/** Built-in value references. */
var symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"].toStringTag : undefined;

/**
 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the raw `toStringTag`.
 */
function getRawTag(value) {
  var isOwn = hasOwnProperty.call(value, symToStringTag),
      tag = value[symToStringTag];

  try {
    value[symToStringTag] = undefined;
    var unmasked = true;
  } catch (e) {}

  var result = nativeObjectToString.call(value);
  if (unmasked) {
    if (isOwn) {
      value[symToStringTag] = tag;
    } else {
      delete value[symToStringTag];
    }
  }
  return result;
}

/* harmony default export */ __webpack_exports__["default"] = (getRawTag);


/***/ }),

/***/ "./node_modules/lodash-es/_objectToString.js":
/*!***************************************************!*\
  !*** ./node_modules/lodash-es/_objectToString.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/** Used for built-in method references. */
var objectProto = Object.prototype;

/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */
var nativeObjectToString = objectProto.toString;

/**
 * Converts `value` to a string using `Object.prototype.toString`.
 *
 * @private
 * @param {*} value The value to convert.
 * @returns {string} Returns the converted string.
 */
function objectToString(value) {
  return nativeObjectToString.call(value);
}

/* harmony default export */ __webpack_exports__["default"] = (objectToString);


/***/ }),

/***/ "./node_modules/lodash-es/_overArg.js":
/*!********************************************!*\
  !*** ./node_modules/lodash-es/_overArg.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * Creates a unary function that invokes `func` with its argument transformed.
 *
 * @private
 * @param {Function} func The function to wrap.
 * @param {Function} transform The argument transform.
 * @returns {Function} Returns the new function.
 */
function overArg(func, transform) {
  return function(arg) {
    return func(transform(arg));
  };
}

/* harmony default export */ __webpack_exports__["default"] = (overArg);


/***/ }),

/***/ "./node_modules/lodash-es/_root.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash-es/_root.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_freeGlobal.js */ "./node_modules/lodash-es/_freeGlobal.js");


/** Detect free variable `self`. */
var freeSelf = typeof self == 'object' && self && self.Object === Object && self;

/** Used as a reference to the global object. */
var root = _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__["default"] || freeSelf || Function('return this')();

/* harmony default export */ __webpack_exports__["default"] = (root);


/***/ }),

/***/ "./node_modules/lodash-es/isObjectLike.js":
/*!************************************************!*\
  !*** ./node_modules/lodash-es/isObjectLike.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */
function isObjectLike(value) {
  return value != null && typeof value == 'object';
}

/* harmony default export */ __webpack_exports__["default"] = (isObjectLike);


/***/ }),

/***/ "./node_modules/lodash-es/isPlainObject.js":
/*!*************************************************!*\
  !*** ./node_modules/lodash-es/isPlainObject.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseGetTag.js */ "./node_modules/lodash-es/_baseGetTag.js");
/* harmony import */ var _getPrototype_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getPrototype.js */ "./node_modules/lodash-es/_getPrototype.js");
/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isObjectLike.js */ "./node_modules/lodash-es/isObjectLike.js");




/** `Object#toString` result references. */
var objectTag = '[object Object]';

/** Used for built-in method references. */
var funcProto = Function.prototype,
    objectProto = Object.prototype;

/** Used to resolve the decompiled source of functions. */
var funcToString = funcProto.toString;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/** Used to infer the `Object` constructor. */
var objectCtorString = funcToString.call(Object);

/**
 * Checks if `value` is a plain object, that is, an object created by the
 * `Object` constructor or one with a `[[Prototype]]` of `null`.
 *
 * @static
 * @memberOf _
 * @since 0.8.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
 * @example
 *
 * function Foo() {
 *   this.a = 1;
 * }
 *
 * _.isPlainObject(new Foo);
 * // => false
 *
 * _.isPlainObject([1, 2, 3]);
 * // => false
 *
 * _.isPlainObject({ 'x': 0, 'y': 0 });
 * // => true
 *
 * _.isPlainObject(Object.create(null));
 * // => true
 */
function isPlainObject(value) {
  if (!Object(_isObjectLike_js__WEBPACK_IMPORTED_MODULE_2__["default"])(value) || Object(_baseGetTag_js__WEBPACK_IMPORTED_MODULE_0__["default"])(value) != objectTag) {
    return false;
  }
  var proto = Object(_getPrototype_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value);
  if (proto === null) {
    return true;
  }
  var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
  return typeof Ctor == 'function' && Ctor instanceof Ctor &&
    funcToString.call(Ctor) == objectCtorString;
}

/* harmony default export */ __webpack_exports__["default"] = (isPlainObject);


/***/ }),

/***/ "./node_modules/lodash._basefor/index.js":
/*!***********************************************!*\
  !*** ./node_modules/lodash._basefor/index.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

/**
 * lodash 3.0.3 (Custom Build) <https://lodash.com/>
 * Build: `lodash modularize exports="npm" -o ./`
 * Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 * Available under MIT license <https://lodash.com/license>
 */

/**
 * The base implementation of `baseForIn` and `baseForOwn` which iterates
 * over `object` properties returned by `keysFunc` invoking `iteratee` for
 * each property. Iteratee functions may exit iteration early by explicitly
 * returning `false`.
 *
 * @private
 * @param {Object} object The object to iterate over.
 * @param {Function} iteratee The function invoked per iteration.
 * @param {Function} keysFunc The function to get the keys of `object`.
 * @returns {Object} Returns `object`.
 */
var baseFor = createBaseFor();

/**
 * Creates a base function for methods like `_.forIn`.
 *
 * @private
 * @param {boolean} [fromRight] Specify iterating from right to left.
 * @returns {Function} Returns the new base function.
 */
function createBaseFor(fromRight) {
  return function(object, iteratee, keysFunc) {
    var index = -1,
        iterable = Object(object),
        props = keysFunc(object),
        length = props.length;

    while (length--) {
      var key = props[fromRight ? length : ++index];
      if (iteratee(iterable[key], key, iterable) === false) {
        break;
      }
    }
    return object;
  };
}

module.exports = baseFor;


/***/ }),

/***/ "./node_modules/lodash.isarguments/index.js":
/*!**************************************************!*\
  !*** ./node_modules/lodash.isarguments/index.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

/**
 * lodash (Custom Build) <https://lodash.com/>
 * Build: `lodash modularize exports="npm" -o ./`
 * Copyright jQuery Foundation and other contributors <https://jquery.org/>
 * Released under MIT license <https://lodash.com/license>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 */

/** Used as references for various `Number` constants. */
var MAX_SAFE_INTEGER = 9007199254740991;

/** `Object#toString` result references. */
var argsTag = '[object Arguments]',
    funcTag = '[object Function]',
    genTag = '[object GeneratorFunction]';

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */
var objectToString = objectProto.toString;

/** Built-in value references. */
var propertyIsEnumerable = objectProto.propertyIsEnumerable;

/**
 * Checks if `value` is likely an `arguments` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
 *  else `false`.
 * @example
 *
 * _.isArguments(function() { return arguments; }());
 * // => true
 *
 * _.isArguments([1, 2, 3]);
 * // => false
 */
function isArguments(value) {
  // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
  return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&
    (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);
}

/**
 * Checks if `value` is array-like. A value is considered array-like if it's
 * not a function and has a `value.length` that's an integer greater than or
 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
 * @example
 *
 * _.isArrayLike([1, 2, 3]);
 * // => true
 *
 * _.isArrayLike(document.body.children);
 * // => true
 *
 * _.isArrayLike('abc');
 * // => true
 *
 * _.isArrayLike(_.noop);
 * // => false
 */
function isArrayLike(value) {
  return value != null && isLength(value.length) && !isFunction(value);
}

/**
 * This method is like `_.isArrayLike` except that it also checks if `value`
 * is an object.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an array-like object,
 *  else `false`.
 * @example
 *
 * _.isArrayLikeObject([1, 2, 3]);
 * // => true
 *
 * _.isArrayLikeObject(document.body.children);
 * // => true
 *
 * _.isArrayLikeObject('abc');
 * // => false
 *
 * _.isArrayLikeObject(_.noop);
 * // => false
 */
function isArrayLikeObject(value) {
  return isObjectLike(value) && isArrayLike(value);
}

/**
 * Checks if `value` is classified as a `Function` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
 * @example
 *
 * _.isFunction(_);
 * // => true
 *
 * _.isFunction(/abc/);
 * // => false
 */
function isFunction(value) {
  // The use of `Object#toString` avoids issues with the `typeof` operator
  // in Safari 8-9 which returns 'object' for typed array and other constructors.
  var tag = isObject(value) ? objectToString.call(value) : '';
  return tag == funcTag || tag == genTag;
}

/**
 * Checks if `value` is a valid array-like length.
 *
 * **Note:** This method is loosely based on
 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
 * @example
 *
 * _.isLength(3);
 * // => true
 *
 * _.isLength(Number.MIN_VALUE);
 * // => false
 *
 * _.isLength(Infinity);
 * // => false
 *
 * _.isLength('3');
 * // => false
 */
function isLength(value) {
  return typeof value == 'number' &&
    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
}

/**
 * Checks if `value` is the
 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 * @example
 *
 * _.isObject({});
 * // => true
 *
 * _.isObject([1, 2, 3]);
 * // => true
 *
 * _.isObject(_.noop);
 * // => true
 *
 * _.isObject(null);
 * // => false
 */
function isObject(value) {
  var type = typeof value;
  return !!value && (type == 'object' || type == 'function');
}

/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */
function isObjectLike(value) {
  return !!value && typeof value == 'object';
}

module.exports = isArguments;


/***/ }),

/***/ "./node_modules/lodash.isarray/index.js":
/*!**********************************************!*\
  !*** ./node_modules/lodash.isarray/index.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

/**
 * lodash 3.0.4 (Custom Build) <https://lodash.com/>
 * Build: `lodash modern modularize exports="npm" -o ./`
 * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 * Available under MIT license <https://lodash.com/license>
 */

/** `Object#toString` result references. */
var arrayTag = '[object Array]',
    funcTag = '[object Function]';

/** Used to detect host constructors (Safari > 5). */
var reIsHostCtor = /^\[object .+?Constructor\]$/;

/**
 * Checks if `value` is object-like.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 */
function isObjectLike(value) {
  return !!value && typeof value == 'object';
}

/** Used for native method references. */
var objectProto = Object.prototype;

/** Used to resolve the decompiled source of functions. */
var fnToString = Function.prototype.toString;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
 * of values.
 */
var objToString = objectProto.toString;

/** Used to detect if a method is native. */
var reIsNative = RegExp('^' +
  fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&')
  .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
);

/* Native method references for those with the same name as other `lodash` methods. */
var nativeIsArray = getNative(Array, 'isArray');

/**
 * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
 * of an array-like value.
 */
var MAX_SAFE_INTEGER = 9007199254740991;

/**
 * Gets the native function at `key` of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @param {string} key The key of the method to get.
 * @returns {*} Returns the function if it's native, else `undefined`.
 */
function getNative(object, key) {
  var value = object == null ? undefined : object[key];
  return isNative(value) ? value : undefined;
}

/**
 * Checks if `value` is a valid array-like length.
 *
 * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
 */
function isLength(value) {
  return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
}

/**
 * Checks if `value` is classified as an `Array` object.
 *
 * @static
 * @memberOf _
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
 * @example
 *
 * _.isArray([1, 2, 3]);
 * // => true
 *
 * _.isArray(function() { return arguments; }());
 * // => false
 */
var isArray = nativeIsArray || function(value) {
  return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;
};

/**
 * Checks if `value` is classified as a `Function` object.
 *
 * @static
 * @memberOf _
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
 * @example
 *
 * _.isFunction(_);
 * // => true
 *
 * _.isFunction(/abc/);
 * // => false
 */
function isFunction(value) {
  // The use of `Object#toString` avoids issues with the `typeof` operator
  // in older versions of Chrome and Safari which return 'function' for regexes
  // and Safari 8 equivalents which return 'object' for typed array constructors.
  return isObject(value) && objToString.call(value) == funcTag;
}

/**
 * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
 * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 *
 * @static
 * @memberOf _
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 * @example
 *
 * _.isObject({});
 * // => true
 *
 * _.isObject([1, 2, 3]);
 * // => true
 *
 * _.isObject(1);
 * // => false
 */
function isObject(value) {
  // Avoid a V8 JIT bug in Chrome 19-20.
  // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
  var type = typeof value;
  return !!value && (type == 'object' || type == 'function');
}

/**
 * Checks if `value` is a native function.
 *
 * @static
 * @memberOf _
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a native function, else `false`.
 * @example
 *
 * _.isNative(Array.prototype.push);
 * // => true
 *
 * _.isNative(_);
 * // => false
 */
function isNative(value) {
  if (value == null) {
    return false;
  }
  if (isFunction(value)) {
    return reIsNative.test(fnToString.call(value));
  }
  return isObjectLike(value) && reIsHostCtor.test(value);
}

module.exports = isArray;


/***/ }),

/***/ "./node_modules/lodash.isplainobject/index.js":
/*!****************************************************!*\
  !*** ./node_modules/lodash.isplainobject/index.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/**
 * lodash 3.2.0 (Custom Build) <https://lodash.com/>
 * Build: `lodash modern modularize exports="npm" -o ./`
 * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 * Available under MIT license <https://lodash.com/license>
 */
var baseFor = __webpack_require__(/*! lodash._basefor */ "./node_modules/lodash._basefor/index.js"),
    isArguments = __webpack_require__(/*! lodash.isarguments */ "./node_modules/lodash.isarguments/index.js"),
    keysIn = __webpack_require__(/*! lodash.keysin */ "./node_modules/lodash.keysin/index.js");

/** `Object#toString` result references. */
var objectTag = '[object Object]';

/**
 * Checks if `value` is object-like.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 */
function isObjectLike(value) {
  return !!value && typeof value == 'object';
}

/** Used for native method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
 * of values.
 */
var objToString = objectProto.toString;

/**
 * The base implementation of `_.forIn` without support for callback
 * shorthands and `this` binding.
 *
 * @private
 * @param {Object} object The object to iterate over.
 * @param {Function} iteratee The function invoked per iteration.
 * @returns {Object} Returns `object`.
 */
function baseForIn(object, iteratee) {
  return baseFor(object, iteratee, keysIn);
}

/**
 * Checks if `value` is a plain object, that is, an object created by the
 * `Object` constructor or one with a `[[Prototype]]` of `null`.
 *
 * **Note:** This method assumes objects created by the `Object` constructor
 * have no inherited enumerable properties.
 *
 * @static
 * @memberOf _
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
 * @example
 *
 * function Foo() {
 *   this.a = 1;
 * }
 *
 * _.isPlainObject(new Foo);
 * // => false
 *
 * _.isPlainObject([1, 2, 3]);
 * // => false
 *
 * _.isPlainObject({ 'x': 0, 'y': 0 });
 * // => true
 *
 * _.isPlainObject(Object.create(null));
 * // => true
 */
function isPlainObject(value) {
  var Ctor;

  // Exit early for non `Object` objects.
  if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isArguments(value)) ||
      (!hasOwnProperty.call(value, 'constructor') && (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) {
    return false;
  }
  // IE < 9 iterates inherited properties before own properties. If the first
  // iterated property is an object's own property then there are no inherited
  // enumerable properties.
  var result;
  // In most environments an object's own properties are iterated before
  // its inherited properties. If the last iterated property is an object's
  // own property then there are no inherited enumerable properties.
  baseForIn(value, function(subValue, key) {
    result = key;
  });
  return result === undefined || hasOwnProperty.call(value, result);
}

module.exports = isPlainObject;


/***/ }),

/***/ "./node_modules/lodash.keysin/index.js":
/*!*********************************************!*\
  !*** ./node_modules/lodash.keysin/index.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/**
 * lodash 3.0.8 (Custom Build) <https://lodash.com/>
 * Build: `lodash modern modularize exports="npm" -o ./`
 * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 * Available under MIT license <https://lodash.com/license>
 */
var isArguments = __webpack_require__(/*! lodash.isarguments */ "./node_modules/lodash.isarguments/index.js"),
    isArray = __webpack_require__(/*! lodash.isarray */ "./node_modules/lodash.isarray/index.js");

/** Used to detect unsigned integer values. */
var reIsUint = /^\d+$/;

/** Used for native method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)
 * of an array-like value.
 */
var MAX_SAFE_INTEGER = 9007199254740991;

/**
 * Checks if `value` is a valid array-like index.
 *
 * @private
 * @param {*} value The value to check.
 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
 */
function isIndex(value, length) {
  value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;
  length = length == null ? MAX_SAFE_INTEGER : length;
  return value > -1 && value % 1 == 0 && value < length;
}

/**
 * Checks if `value` is a valid array-like length.
 *
 * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
 */
function isLength(value) {
  return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
}

/**
 * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
 * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 *
 * @static
 * @memberOf _
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 * @example
 *
 * _.isObject({});
 * // => true
 *
 * _.isObject([1, 2, 3]);
 * // => true
 *
 * _.isObject(1);
 * // => false
 */
function isObject(value) {
  // Avoid a V8 JIT bug in Chrome 19-20.
  // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
  var type = typeof value;
  return !!value && (type == 'object' || type == 'function');
}

/**
 * Creates an array of the own and inherited enumerable property names of `object`.
 *
 * **Note:** Non-object values are coerced to objects.
 *
 * @static
 * @memberOf _
 * @category Object
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 * @example
 *
 * function Foo() {
 *   this.a = 1;
 *   this.b = 2;
 * }
 *
 * Foo.prototype.c = 3;
 *
 * _.keysIn(new Foo);
 * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
 */
function keysIn(object) {
  if (object == null) {
    return [];
  }
  if (!isObject(object)) {
    object = Object(object);
  }
  var length = object.length;
  length = (length && isLength(length) &&
    (isArray(object) || isArguments(object)) && length) || 0;

  var Ctor = object.constructor,
      index = -1,
      isProto = typeof Ctor == 'function' && Ctor.prototype === object,
      result = Array(length),
      skipIndexes = length > 0;

  while (++index < length) {
    result[index] = (index + '');
  }
  for (var key in object) {
    if (!(skipIndexes && isIndex(key, length)) &&
        !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
      result.push(key);
    }
  }
  return result;
}

module.exports = keysIn;


/***/ }),

/***/ "./node_modules/lodash/_Symbol.js":
/*!****************************************!*\
  !*** ./node_modules/lodash/_Symbol.js ***!
  \****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");

/** Built-in value references. */
var Symbol = root.Symbol;

module.exports = Symbol;


/***/ }),

/***/ "./node_modules/lodash/_baseGetTag.js":
/*!********************************************!*\
  !*** ./node_modules/lodash/_baseGetTag.js ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js"),
    getRawTag = __webpack_require__(/*! ./_getRawTag */ "./node_modules/lodash/_getRawTag.js"),
    objectToString = __webpack_require__(/*! ./_objectToString */ "./node_modules/lodash/_objectToString.js");

/** `Object#toString` result references. */
var nullTag = '[object Null]',
    undefinedTag = '[object Undefined]';

/** Built-in value references. */
var symToStringTag = Symbol ? Symbol.toStringTag : undefined;

/**
 * The base implementation of `getTag` without fallbacks for buggy environments.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the `toStringTag`.
 */
function baseGetTag(value) {
  if (value == null) {
    return value === undefined ? undefinedTag : nullTag;
  }
  return (symToStringTag && symToStringTag in Object(value))
    ? getRawTag(value)
    : objectToString(value);
}

module.exports = baseGetTag;


/***/ }),

/***/ "./node_modules/lodash/_freeGlobal.js":
/*!********************************************!*\
  !*** ./node_modules/lodash/_freeGlobal.js ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */
var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;

module.exports = freeGlobal;

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js")))

/***/ }),

/***/ "./node_modules/lodash/_getPrototype.js":
/*!**********************************************!*\
  !*** ./node_modules/lodash/_getPrototype.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var overArg = __webpack_require__(/*! ./_overArg */ "./node_modules/lodash/_overArg.js");

/** Built-in value references. */
var getPrototype = overArg(Object.getPrototypeOf, Object);

module.exports = getPrototype;


/***/ }),

/***/ "./node_modules/lodash/_getRawTag.js":
/*!*******************************************!*\
  !*** ./node_modules/lodash/_getRawTag.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js");

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */
var nativeObjectToString = objectProto.toString;

/** Built-in value references. */
var symToStringTag = Symbol ? Symbol.toStringTag : undefined;

/**
 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the raw `toStringTag`.
 */
function getRawTag(value) {
  var isOwn = hasOwnProperty.call(value, symToStringTag),
      tag = value[symToStringTag];

  try {
    value[symToStringTag] = undefined;
    var unmasked = true;
  } catch (e) {}

  var result = nativeObjectToString.call(value);
  if (unmasked) {
    if (isOwn) {
      value[symToStringTag] = tag;
    } else {
      delete value[symToStringTag];
    }
  }
  return result;
}

module.exports = getRawTag;


/***/ }),

/***/ "./node_modules/lodash/_objectToString.js":
/*!************************************************!*\
  !*** ./node_modules/lodash/_objectToString.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

/** Used for built-in method references. */
var objectProto = Object.prototype;

/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */
var nativeObjectToString = objectProto.toString;

/**
 * Converts `value` to a string using `Object.prototype.toString`.
 *
 * @private
 * @param {*} value The value to convert.
 * @returns {string} Returns the converted string.
 */
function objectToString(value) {
  return nativeObjectToString.call(value);
}

module.exports = objectToString;


/***/ }),

/***/ "./node_modules/lodash/_overArg.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash/_overArg.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports) {

/**
 * Creates a unary function that invokes `func` with its argument transformed.
 *
 * @private
 * @param {Function} func The function to wrap.
 * @param {Function} transform The argument transform.
 * @returns {Function} Returns the new function.
 */
function overArg(func, transform) {
  return function(arg) {
    return func(transform(arg));
  };
}

module.exports = overArg;


/***/ }),

/***/ "./node_modules/lodash/_root.js":
/*!**************************************!*\
  !*** ./node_modules/lodash/_root.js ***!
  \**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var freeGlobal = __webpack_require__(/*! ./_freeGlobal */ "./node_modules/lodash/_freeGlobal.js");

/** Detect free variable `self`. */
var freeSelf = typeof self == 'object' && self && self.Object === Object && self;

/** Used as a reference to the global object. */
var root = freeGlobal || freeSelf || Function('return this')();

module.exports = root;


/***/ }),

/***/ "./node_modules/lodash/isObjectLike.js":
/*!*********************************************!*\
  !*** ./node_modules/lodash/isObjectLike.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */
function isObjectLike(value) {
  return value != null && typeof value == 'object';
}

module.exports = isObjectLike;


/***/ }),

/***/ "./node_modules/lodash/isPlainObject.js":
/*!**********************************************!*\
  !*** ./node_modules/lodash/isPlainObject.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
    getPrototype = __webpack_require__(/*! ./_getPrototype */ "./node_modules/lodash/_getPrototype.js"),
    isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");

/** `Object#toString` result references. */
var objectTag = '[object Object]';

/** Used for built-in method references. */
var funcProto = Function.prototype,
    objectProto = Object.prototype;

/** Used to resolve the decompiled source of functions. */
var funcToString = funcProto.toString;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/** Used to infer the `Object` constructor. */
var objectCtorString = funcToString.call(Object);

/**
 * Checks if `value` is a plain object, that is, an object created by the
 * `Object` constructor or one with a `[[Prototype]]` of `null`.
 *
 * @static
 * @memberOf _
 * @since 0.8.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
 * @example
 *
 * function Foo() {
 *   this.a = 1;
 * }
 *
 * _.isPlainObject(new Foo);
 * // => false
 *
 * _.isPlainObject([1, 2, 3]);
 * // => false
 *
 * _.isPlainObject({ 'x': 0, 'y': 0 });
 * // => true
 *
 * _.isPlainObject(Object.create(null));
 * // => true
 */
function isPlainObject(value) {
  if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
    return false;
  }
  var proto = getPrototype(value);
  if (proto === null) {
    return true;
  }
  var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
  return typeof Ctor == 'function' && Ctor instanceof Ctor &&
    funcToString.call(Ctor) == objectCtorString;
}

module.exports = isPlainObject;


/***/ }),

/***/ "./node_modules/process/browser.js":
/*!*****************************************!*\
  !*** ./node_modules/process/browser.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports) {

// shim for using process in browser
var process = module.exports = {};

// cached from whatever global is present so that test runners that stub it
// don't break things.  But we need to wrap it in a try catch in case it is
// wrapped in strict mode code which doesn't define any globals.  It's inside a
// function because try/catches deoptimize in certain engines.

var cachedSetTimeout;
var cachedClearTimeout;

function defaultSetTimout() {
    throw new Error('setTimeout has not been defined');
}
function defaultClearTimeout () {
    throw new Error('clearTimeout has not been defined');
}
(function () {
    try {
        if (typeof setTimeout === 'function') {
            cachedSetTimeout = setTimeout;
        } else {
            cachedSetTimeout = defaultSetTimout;
        }
    } catch (e) {
        cachedSetTimeout = defaultSetTimout;
    }
    try {
        if (typeof clearTimeout === 'function') {
            cachedClearTimeout = clearTimeout;
        } else {
            cachedClearTimeout = defaultClearTimeout;
        }
    } catch (e) {
        cachedClearTimeout = defaultClearTimeout;
    }
} ())
function runTimeout(fun) {
    if (cachedSetTimeout === setTimeout) {
        //normal enviroments in sane situations
        return setTimeout(fun, 0);
    }
    // if setTimeout wasn't available but was latter defined
    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
        cachedSetTimeout = setTimeout;
        return setTimeout(fun, 0);
    }
    try {
        // when when somebody has screwed with setTimeout but no I.E. maddness
        return cachedSetTimeout(fun, 0);
    } catch(e){
        try {
            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
            return cachedSetTimeout.call(null, fun, 0);
        } catch(e){
            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
            return cachedSetTimeout.call(this, fun, 0);
        }
    }


}
function runClearTimeout(marker) {
    if (cachedClearTimeout === clearTimeout) {
        //normal enviroments in sane situations
        return clearTimeout(marker);
    }
    // if clearTimeout wasn't available but was latter defined
    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
        cachedClearTimeout = clearTimeout;
        return clearTimeout(marker);
    }
    try {
        // when when somebody has screwed with setTimeout but no I.E. maddness
        return cachedClearTimeout(marker);
    } catch (e){
        try {
            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally
            return cachedClearTimeout.call(null, marker);
        } catch (e){
            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
            // Some versions of I.E. have different rules for clearTimeout vs setTimeout
            return cachedClearTimeout.call(this, marker);
        }
    }



}
var queue = [];
var draining = false;
var currentQueue;
var queueIndex = -1;

function cleanUpNextTick() {
    if (!draining || !currentQueue) {
        return;
    }
    draining = false;
    if (currentQueue.length) {
        queue = currentQueue.concat(queue);
    } else {
        queueIndex = -1;
    }
    if (queue.length) {
        drainQueue();
    }
}

function drainQueue() {
    if (draining) {
        return;
    }
    var timeout = runTimeout(cleanUpNextTick);
    draining = true;

    var len = queue.length;
    while(len) {
        currentQueue = queue;
        queue = [];
        while (++queueIndex < len) {
            if (currentQueue) {
                currentQueue[queueIndex].run();
            }
        }
        queueIndex = -1;
        len = queue.length;
    }
    currentQueue = null;
    draining = false;
    runClearTimeout(timeout);
}

process.nextTick = function (fun) {
    var args = new Array(arguments.length - 1);
    if (arguments.length > 1) {
        for (var i = 1; i < arguments.length; i++) {
            args[i - 1] = arguments[i];
        }
    }
    queue.push(new Item(fun, args));
    if (queue.length === 1 && !draining) {
        runTimeout(drainQueue);
    }
};

// v8 likes predictible objects
function Item(fun, array) {
    this.fun = fun;
    this.array = array;
}
Item.prototype.run = function () {
    this.fun.apply(null, this.array);
};
process.title = 'browser';
process.browser = true;
process.env = {};
process.argv = [];
process.version = ''; // empty string to avoid regexp issues
process.versions = {};

function noop() {}

process.on = noop;
process.addListener = noop;
process.once = noop;
process.off = noop;
process.removeListener = noop;
process.removeAllListeners = noop;
process.emit = noop;
process.prependListener = noop;
process.prependOnceListener = noop;

process.listeners = function (name) { return [] }

process.binding = function (name) {
    throw new Error('process.binding is not supported');
};

process.cwd = function () { return '/' };
process.chdir = function (dir) {
    throw new Error('process.chdir is not supported');
};
process.umask = function() { return 0; };


/***/ }),

/***/ "./node_modules/prop-types/lib/ReactPropTypesSecret.js":
/*!*************************************************************!*\
  !*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
  \*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';

module.exports = ReactPropTypesSecret;


/***/ }),

/***/ "./node_modules/radium/es/append-important-to-each-value.js":
/*!******************************************************************!*\
  !*** ./node_modules/radium/es/append-important-to-each-value.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return appendImportantToEachValue; });
/* harmony import */ var _append_px_if_needed__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./append-px-if-needed */ "./node_modules/radium/es/append-px-if-needed.js");
/* harmony import */ var _map_object__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./map-object */ "./node_modules/radium/es/map-object.js");



function appendImportantToEachValue(style) {
  return Object(_map_object__WEBPACK_IMPORTED_MODULE_1__["default"])(style, function (result, key) {
    return Object(_append_px_if_needed__WEBPACK_IMPORTED_MODULE_0__["default"])(key, style[key]) + ' !important';
  });
}

/***/ }),

/***/ "./node_modules/radium/es/append-px-if-needed.js":
/*!*******************************************************!*\
  !*** ./node_modules/radium/es/append-px-if-needed.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return appendPxIfNeeded; });


// Copied from https://github.com/facebook/react/blob/
// 102cd291899f9942a76c40a0e78920a6fe544dc1/
// src/renderers/dom/shared/CSSProperty.js
var isUnitlessNumber = {
  animationIterationCount: true,
  boxFlex: true,
  boxFlexGroup: true,
  boxOrdinalGroup: true,
  columnCount: true,
  flex: true,
  flexGrow: true,
  flexPositive: true,
  flexShrink: true,
  flexNegative: true,
  flexOrder: true,
  gridRow: true,
  gridColumn: true,
  fontWeight: true,
  lineClamp: true,
  lineHeight: true,
  opacity: true,
  order: true,
  orphans: true,
  tabSize: true,
  widows: true,
  zIndex: true,
  zoom: true,

  // SVG-related properties
  fillOpacity: true,
  stopOpacity: true,
  strokeDashoffset: true,
  strokeOpacity: true,
  strokeWidth: true
};

function appendPxIfNeeded(propertyName, value) {
  var needsPxSuffix = !isUnitlessNumber[propertyName] && typeof value === 'number' && value !== 0;
  return needsPxSuffix ? value + 'px' : value;
}

/***/ }),

/***/ "./node_modules/radium/es/camel-case-props-to-dash-case.js":
/*!*****************************************************************!*\
  !*** ./node_modules/radium/es/camel-case-props-to-dash-case.js ***!
  \*****************************************************************/
/*! exports provided: camelCaseToDashCase, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "camelCaseToDashCase", function() { return camelCaseToDashCase; });
var _camelCaseRegex = /([a-z])?([A-Z])/g;

var _camelCaseReplacer = function _camelCaseReplacer(match, p1, p2) {
  return (p1 || '') + '-' + p2.toLowerCase();
};

var camelCaseToDashCase = function camelCaseToDashCase(s) {
  return s.replace(_camelCaseRegex, _camelCaseReplacer);
};

var camelCasePropsToDashCase = function camelCasePropsToDashCase(prefixedStyle) {
  // Since prefix is expected to work on inline style objects, we must
  // translate the keys to dash case for rendering to CSS.
  return Object.keys(prefixedStyle).reduce(function (result, key) {
    var dashCaseKey = camelCaseToDashCase(key);

    // Fix IE vendor prefix
    if (/^ms-/.test(dashCaseKey)) {
      dashCaseKey = '-' + dashCaseKey;
    }

    result[dashCaseKey] = prefixedStyle[key];
    return result;
  }, {});
};

/* harmony default export */ __webpack_exports__["default"] = (camelCasePropsToDashCase);

/***/ }),

/***/ "./node_modules/radium/es/clean-state-key.js":
/*!***************************************************!*\
  !*** ./node_modules/radium/es/clean-state-key.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* flow */

var cleanStateKey = function cleanStateKey(key) {
  return key === null || typeof key === 'undefined' ? 'main' : key.toString();
};

/* harmony default export */ __webpack_exports__["default"] = (cleanStateKey);

/***/ }),

/***/ "./node_modules/radium/es/components/style-root.js":
/*!*********************************************************!*\
  !*** ./node_modules/radium/es/components/style-root.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "prop-types");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _enhancer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../enhancer */ "./node_modules/radium/es/enhancer.js");
/* harmony import */ var _style_keeper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../style-keeper */ "./node_modules/radium/es/style-keeper.js");
/* harmony import */ var _style_sheet__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./style-sheet */ "./node_modules/radium/es/components/style-sheet.js");
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }










function _getStyleKeeper(instance) {
  if (!instance._radiumStyleKeeper) {
    var userAgent = instance.props.radiumConfig && instance.props.radiumConfig.userAgent || instance.context._radiumConfig && instance.context._radiumConfig.userAgent;
    instance._radiumStyleKeeper = new _style_keeper__WEBPACK_IMPORTED_MODULE_3__["default"](userAgent);
  }

  return instance._radiumStyleKeeper;
}

var StyleRoot = function (_PureComponent) {
  _inherits(StyleRoot, _PureComponent);

  function StyleRoot() {
    _classCallCheck(this, StyleRoot);

    var _this = _possibleConstructorReturn(this, (StyleRoot.__proto__ || Object.getPrototypeOf(StyleRoot)).apply(this, arguments));

    _getStyleKeeper(_this);
    return _this;
  }

  _createClass(StyleRoot, [{
    key: 'getChildContext',
    value: function getChildContext() {
      return { _radiumStyleKeeper: _getStyleKeeper(this) };
    }
  }, {
    key: 'render',
    value: function render() {
      /* eslint-disable no-unused-vars */
      // Pass down all props except config to the rendered div.
      var _props = this.props,
          radiumConfig = _props.radiumConfig,
          otherProps = _objectWithoutProperties(_props, ['radiumConfig']);
      /* eslint-enable no-unused-vars */

      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(
        'div',
        otherProps,
        this.props.children,
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_style_sheet__WEBPACK_IMPORTED_MODULE_4__["default"], null)
      );
    }
  }]);

  return StyleRoot;
}(react__WEBPACK_IMPORTED_MODULE_0__["PureComponent"]);

StyleRoot.contextTypes = {
  _radiumConfig: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object,
  _radiumStyleKeeper: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(_style_keeper__WEBPACK_IMPORTED_MODULE_3__["default"])
};

StyleRoot.childContextTypes = {
  _radiumStyleKeeper: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(_style_keeper__WEBPACK_IMPORTED_MODULE_3__["default"])
};

StyleRoot = Object(_enhancer__WEBPACK_IMPORTED_MODULE_2__["default"])(StyleRoot);

/* harmony default export */ __webpack_exports__["default"] = (StyleRoot);

/***/ }),

/***/ "./node_modules/radium/es/components/style-sheet.js":
/*!**********************************************************!*\
  !*** ./node_modules/radium/es/components/style-sheet.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return StyleSheet; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "prop-types");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _style_keeper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../style-keeper */ "./node_modules/radium/es/style-keeper.js");
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp;

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }







var StyleSheet = (_temp = _class = function (_PureComponent) {
  _inherits(StyleSheet, _PureComponent);

  function StyleSheet() {
    _classCallCheck(this, StyleSheet);

    var _this = _possibleConstructorReturn(this, (StyleSheet.__proto__ || Object.getPrototypeOf(StyleSheet)).apply(this, arguments));

    _this._onChange = function () {
      setTimeout(function () {
        _this._isMounted && _this.setState(_this._getCSSState());
      }, 0);
    };

    _this.state = _this._getCSSState();
    return _this;
  }

  _createClass(StyleSheet, [{
    key: 'componentDidMount',
    value: function componentDidMount() {
      this._isMounted = true;
      this._subscription = this.context._radiumStyleKeeper.subscribe(this._onChange);
      this._onChange();
    }
  }, {
    key: 'componentWillUnmount',
    value: function componentWillUnmount() {
      this._isMounted = false;
      if (this._subscription) {
        this._subscription.remove();
      }
    }
  }, {
    key: '_getCSSState',
    value: function _getCSSState() {
      return { css: this.context._radiumStyleKeeper.getCSS() };
    }
  }, {
    key: 'render',
    value: function render() {
      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement('style', { dangerouslySetInnerHTML: { __html: this.state.css } });
    }
  }]);

  return StyleSheet;
}(react__WEBPACK_IMPORTED_MODULE_0__["PureComponent"]), _class.contextTypes = {
  _radiumStyleKeeper: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(_style_keeper__WEBPACK_IMPORTED_MODULE_2__["default"])
}, _temp);


/***/ }),

/***/ "./node_modules/radium/es/components/style.js":
/*!****************************************************!*\
  !*** ./node_modules/radium/es/components/style.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _css_rule_set_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../css-rule-set-to-string */ "./node_modules/radium/es/css-rule-set-to-string.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "prop-types");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp;

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }






var Style = (_temp = _class = function (_PureComponent) {
  _inherits(Style, _PureComponent);

  function Style() {
    _classCallCheck(this, Style);

    return _possibleConstructorReturn(this, (Style.__proto__ || Object.getPrototypeOf(Style)).apply(this, arguments));
  }

  _createClass(Style, [{
    key: '_buildStyles',
    value: function _buildStyles(styles) {
      var _this2 = this;

      var userAgent = this.props.radiumConfig && this.props.radiumConfig.userAgent || this.context && this.context._radiumConfig && this.context._radiumConfig.userAgent;

      var scopeSelector = this.props.scopeSelector;

      var rootRules = Object.keys(styles).reduce(function (accumulator, selector) {
        if (_typeof(styles[selector]) !== 'object') {
          accumulator[selector] = styles[selector];
        }

        return accumulator;
      }, {});
      var rootStyles = Object.keys(rootRules).length ? Object(_css_rule_set_to_string__WEBPACK_IMPORTED_MODULE_0__["default"])(scopeSelector || '', rootRules, userAgent) : '';

      return rootStyles + Object.keys(styles).reduce(function (accumulator, selector) {
        var rules = styles[selector];

        if (selector === 'mediaQueries') {
          accumulator += _this2._buildMediaQueryString(rules);
        } else if (_typeof(styles[selector]) === 'object') {
          var completeSelector = scopeSelector ? selector.split(',').map(function (part) {
            return scopeSelector + ' ' + part.trim();
          }).join(',') : selector;

          accumulator += Object(_css_rule_set_to_string__WEBPACK_IMPORTED_MODULE_0__["default"])(completeSelector, rules, userAgent);
        }

        return accumulator;
      }, '');
    }
  }, {
    key: '_buildMediaQueryString',
    value: function _buildMediaQueryString(stylesByMediaQuery) {
      var _this3 = this;

      var mediaQueryString = '';

      Object.keys(stylesByMediaQuery).forEach(function (query) {
        mediaQueryString += '@media ' + query + '{' + _this3._buildStyles(stylesByMediaQuery[query]) + '}';
      });

      return mediaQueryString;
    }
  }, {
    key: 'render',
    value: function render() {
      if (!this.props.rules) {
        return null;
      }

      var styles = this._buildStyles(this.props.rules);

      return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement('style', { dangerouslySetInnerHTML: { __html: styles } });
    }
  }]);

  return Style;
}(react__WEBPACK_IMPORTED_MODULE_1__["PureComponent"]), _class.propTypes = {
  radiumConfig: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object,
  rules: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object,
  scopeSelector: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.string
}, _class.contextTypes = {
  _radiumConfig: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object
}, _class.defaultProps = {
  scopeSelector: ''
}, _temp);


/* harmony default export */ __webpack_exports__["default"] = (Style);

/***/ }),

/***/ "./node_modules/radium/es/css-rule-set-to-string.js":
/*!**********************************************************!*\
  !*** ./node_modules/radium/es/css-rule-set-to-string.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return cssRuleSetToString; });
/* harmony import */ var _append_px_if_needed__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./append-px-if-needed */ "./node_modules/radium/es/append-px-if-needed.js");
/* harmony import */ var _camel_case_props_to_dash_case__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./camel-case-props-to-dash-case */ "./node_modules/radium/es/camel-case-props-to-dash-case.js");
/* harmony import */ var _map_object__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./map-object */ "./node_modules/radium/es/map-object.js");
/* harmony import */ var _prefixer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./prefixer */ "./node_modules/radium/es/prefixer.js");





function createMarkupForStyles(style) {
  return Object.keys(style).map(function (property) {
    return property + ': ' + style[property] + ';';
  }).join('\n');
}

function cssRuleSetToString(selector, rules, userAgent) {
  if (!rules) {
    return '';
  }

  var rulesWithPx = Object(_map_object__WEBPACK_IMPORTED_MODULE_2__["default"])(rules, function (value, key) {
    return Object(_append_px_if_needed__WEBPACK_IMPORTED_MODULE_0__["default"])(key, value);
  });
  var prefixedRules = Object(_prefixer__WEBPACK_IMPORTED_MODULE_3__["getPrefixedStyle"])(rulesWithPx, userAgent);
  var cssPrefixedRules = Object(_camel_case_props_to_dash_case__WEBPACK_IMPORTED_MODULE_1__["default"])(prefixedRules);
  var serializedRules = createMarkupForStyles(cssPrefixedRules);
  return selector + '{' + serializedRules + '}';
}

/***/ }),

/***/ "./node_modules/radium/es/enhancer.js":
/*!********************************************!*\
  !*** ./node_modules/radium/es/enhancer.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return enhanceWithRadium; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "prop-types");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _style_keeper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./style-keeper */ "./node_modules/radium/es/style-keeper.js");
/* harmony import */ var _resolve_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./resolve-styles */ "./node_modules/radium/es/resolve-styles.js");
/* harmony import */ var _get_radium_style_state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./get-radium-style-state */ "./node_modules/radium/es/get-radium-style-state.js");
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }








var KEYS_TO_IGNORE_WHEN_COPYING_PROPERTIES = ['arguments', 'callee', 'caller', 'length', 'name', 'prototype', 'type'];

function copyProperties(source, target) {
  Object.getOwnPropertyNames(source).forEach(function (key) {
    if (KEYS_TO_IGNORE_WHEN_COPYING_PROPERTIES.indexOf(key) < 0 && !target.hasOwnProperty(key)) {
      var descriptor = Object.getOwnPropertyDescriptor(source, key);
      Object.defineProperty(target, key, descriptor);
    }
  });
}

function isStateless(component) {
  return !component.render && !(component.prototype && component.prototype.render);
}

// Check if value is a real ES class in Native / Node code.
// See: https://stackoverflow.com/a/30760236
function isNativeClass(component) {
  return typeof component === 'function' && /^\s*class\s+/.test(component.toString());
}

// Manually apply babel-ish class inheritance.
function inherits(subClass, superClass) {
  if (typeof superClass !== 'function' && superClass !== null) {
    throw new TypeError('Super expression must either be null or a function, not ' + (typeof superClass === 'undefined' ? 'undefined' : _typeof(superClass)));
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      enumerable: false,
      writable: true,
      configurable: true
    }
  });

  if (superClass) {
    if (Object.setPrototypeOf) {
      Object.setPrototypeOf(subClass, superClass);
    } else {
      subClass.__proto__ = superClass; // eslint-disable-line no-proto
    }
  }
}

function enhanceWithRadium(configOrComposedComponent) {
  var _class, _temp;

  var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};

  if (typeof configOrComposedComponent !== 'function') {
    var newConfig = _extends({}, config, configOrComposedComponent);
    return function (configOrComponent) {
      return enhanceWithRadium(configOrComponent, newConfig);
    };
  }

  var component = configOrComposedComponent;
  var ComposedComponent = component;

  // Handle Native ES classes.
  if (isNativeClass(ComposedComponent)) {
    // Manually approximate babel's class transpilation, but _with_ a real `new` call.
    ComposedComponent = function (OrigComponent) {
      function NewComponent() {
        // Ordinarily, babel would produce something like:
        //
        // ```
        // return _possibleConstructorReturn(this, OrigComponent.apply(this, arguments));
        // ```
        //
        // Instead, we just call `new` directly without the `_possibleConstructorReturn` wrapper.
        var source = new (Function.prototype.bind.apply(OrigComponent, [null].concat(Array.prototype.slice.call(arguments))))();

        // Then we manually update context with properties.
        copyProperties(source, this);

        return this;
      }

      inherits(NewComponent, OrigComponent);

      return NewComponent;
    }(ComposedComponent);
  }

  // Handle stateless components
  if (isStateless(ComposedComponent)) {
    ComposedComponent = function (_Component) {
      _inherits(ComposedComponent, _Component);

      function ComposedComponent() {
        _classCallCheck(this, ComposedComponent);

        return _possibleConstructorReturn(this, (ComposedComponent.__proto__ || Object.getPrototypeOf(ComposedComponent)).apply(this, arguments));
      }

      _createClass(ComposedComponent, [{
        key: 'render',
        value: function render() {
          return component(this.props, this.context);
        }
      }]);

      return ComposedComponent;
    }(react__WEBPACK_IMPORTED_MODULE_0__["Component"]);

    ComposedComponent.displayName = component.displayName || component.name;
  }

  var RadiumEnhancer = (_temp = _class = function (_ComposedComponent) {
    _inherits(RadiumEnhancer, _ComposedComponent);

    function RadiumEnhancer() {
      _classCallCheck(this, RadiumEnhancer);

      var _this2 = _possibleConstructorReturn(this, (RadiumEnhancer.__proto__ || Object.getPrototypeOf(RadiumEnhancer)).apply(this, arguments));

      _this2.state = _this2.state || {};
      _this2.state._radiumStyleState = {};
      _this2._radiumIsMounted = true;
      return _this2;
    }

    _createClass(RadiumEnhancer, [{
      key: 'componentWillUnmount',
      value: function componentWillUnmount() {
        if (_get(RadiumEnhancer.prototype.__proto__ || Object.getPrototypeOf(RadiumEnhancer.prototype), 'componentWillUnmount', this)) {
          _get(RadiumEnhancer.prototype.__proto__ || Object.getPrototypeOf(RadiumEnhancer.prototype), 'componentWillUnmount', this).call(this);
        }

        this._radiumIsMounted = false;

        if (this._radiumMouseUpListener) {
          this._radiumMouseUpListener.remove();
        }

        if (this._radiumMediaQueryListenersByQuery) {
          Object.keys(this._radiumMediaQueryListenersByQuery).forEach(function (query) {
            this._radiumMediaQueryListenersByQuery[query].remove();
          }, this);
        }
      }
    }, {
      key: 'getChildContext',
      value: function getChildContext() {
        var superChildContext = _get(RadiumEnhancer.prototype.__proto__ || Object.getPrototypeOf(RadiumEnhancer.prototype), 'getChildContext', this) ? _get(RadiumEnhancer.prototype.__proto__ || Object.getPrototypeOf(RadiumEnhancer.prototype), 'getChildContext', this).call(this) : {};

        if (!this.props.radiumConfig) {
          return superChildContext;
        }

        var newContext = _extends({}, superChildContext);

        if (this.props.radiumConfig) {
          newContext._radiumConfig = this.props.radiumConfig;
        }

        return newContext;
      }
    }, {
      key: 'render',
      value: function render() {
        var renderedElement = _get(RadiumEnhancer.prototype.__proto__ || Object.getPrototypeOf(RadiumEnhancer.prototype), 'render', this).call(this);
        var currentConfig = this.props.radiumConfig || this.context._radiumConfig || config;

        if (config && currentConfig !== config) {
          currentConfig = _extends({}, config, currentConfig);
        }

        var _resolveStyles = Object(_resolve_styles__WEBPACK_IMPORTED_MODULE_3__["default"])(this, renderedElement, currentConfig),
            extraStateKeyMap = _resolveStyles.extraStateKeyMap,
            element = _resolveStyles.element;

        this._extraRadiumStateKeys = Object.keys(extraStateKeyMap);

        return element;
      }

      /* eslint-disable react/no-did-update-set-state, no-unused-vars */

    }, {
      key: 'componentDidUpdate',
      value: function componentDidUpdate(prevProps, prevState) {
        if (_get(RadiumEnhancer.prototype.__proto__ || Object.getPrototypeOf(RadiumEnhancer.prototype), 'componentDidUpdate', this)) {
          _get(RadiumEnhancer.prototype.__proto__ || Object.getPrototypeOf(RadiumEnhancer.prototype), 'componentDidUpdate', this).call(this, prevProps, prevState);
        }

        if (this._extraRadiumStateKeys.length > 0) {
          var trimmedRadiumState = this._extraRadiumStateKeys.reduce(function (state, key) {
            var extraStateKey = state[key],
                remainingState = _objectWithoutProperties(state, [key]);

            return remainingState;
          }, Object(_get_radium_style_state__WEBPACK_IMPORTED_MODULE_4__["default"])(this));

          this._lastRadiumState = trimmedRadiumState;
          this.setState({ _radiumStyleState: trimmedRadiumState });
        }
      }
      /* eslint-enable react/no-did-update-set-state, no-unused-vars */

    }]);

    return RadiumEnhancer;
  }(ComposedComponent), _class._isRadiumEnhanced = true, _temp);

  // Class inheritance uses Object.create and because of __proto__ issues
  // with IE <10 any static properties of the superclass aren't inherited and
  // so need to be manually populated.
  // See http://babeljs.io/docs/advanced/caveats/#classes-10-and-below-

  copyProperties(component, RadiumEnhancer);

  if (true) {
    // This also fixes React Hot Loader by exposing the original components top
    // level prototype methods on the Radium enhanced prototype as discussed in
    // https://github.com/FormidableLabs/radium/issues/219.
    copyProperties(ComposedComponent.prototype, RadiumEnhancer.prototype);
  }

  if (RadiumEnhancer.propTypes && RadiumEnhancer.propTypes.style) {
    RadiumEnhancer.propTypes = _extends({}, RadiumEnhancer.propTypes, {
      style: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object])
    });
  }

  RadiumEnhancer.displayName = component.displayName || component.name || 'Component';

  RadiumEnhancer.contextTypes = _extends({}, RadiumEnhancer.contextTypes, {
    _radiumConfig: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object,
    _radiumStyleKeeper: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(_style_keeper__WEBPACK_IMPORTED_MODULE_2__["default"])
  });

  RadiumEnhancer.childContextTypes = _extends({}, RadiumEnhancer.childContextTypes, {
    _radiumConfig: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object,
    _radiumStyleKeeper: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(_style_keeper__WEBPACK_IMPORTED_MODULE_2__["default"])
  });

  return RadiumEnhancer;
}

/***/ }),

/***/ "./node_modules/radium/es/get-radium-style-state.js":
/*!**********************************************************!*\
  !*** ./node_modules/radium/es/get-radium-style-state.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
var getRadiumStyleState = function getRadiumStyleState(component) {
  return component._lastRadiumState || component.state && component.state._radiumStyleState || {};
};

/* harmony default export */ __webpack_exports__["default"] = (getRadiumStyleState);

/***/ }),

/***/ "./node_modules/radium/es/get-state-key.js":
/*!*************************************************!*\
  !*** ./node_modules/radium/es/get-state-key.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
var getStateKey = function getStateKey(renderedElement) {
  return typeof renderedElement.ref === 'string' ? renderedElement.ref : renderedElement.key;
};

/* harmony default export */ __webpack_exports__["default"] = (getStateKey);

/***/ }),

/***/ "./node_modules/radium/es/get-state.js":
/*!*********************************************!*\
  !*** ./node_modules/radium/es/get-state.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _clean_state_key__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clean-state-key */ "./node_modules/radium/es/clean-state-key.js");


var getState = function getState(state, elementKey, value) {
  var key = Object(_clean_state_key__WEBPACK_IMPORTED_MODULE_0__["default"])(elementKey);

  return !!state && !!state._radiumStyleState && !!state._radiumStyleState[key] && state._radiumStyleState[key][value];
};

/* harmony default export */ __webpack_exports__["default"] = (getState);

/***/ }),

/***/ "./node_modules/radium/es/hash.js":
/*!****************************************!*\
  !*** ./node_modules/radium/es/hash.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return hash; });


// a simple djb2 hash based on hash-string:
// https://github.com/MatthewBarker/hash-string/blob/master/source/hash-string.js
// returns a hex-encoded hash
function hash(text) {
  if (!text) {
    return '';
  }

  var hashValue = 5381;
  var index = text.length - 1;

  while (index) {
    hashValue = hashValue * 33 ^ text.charCodeAt(index);
    index -= 1;
  }

  return (hashValue >>> 0).toString(16);
}

/***/ }),

/***/ "./node_modules/radium/es/index.js":
/*!*****************************************!*\
  !*** ./node_modules/radium/es/index.js ***!
  \*****************************************/
/*! exports provided: default, Plugins, Style, StyleRoot, getState, keyframes */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _enhancer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./enhancer */ "./node_modules/radium/es/enhancer.js");
/* harmony import */ var _plugins__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./plugins */ "./node_modules/radium/es/plugins/index.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Plugins", function() { return _plugins__WEBPACK_IMPORTED_MODULE_1__["default"]; });

/* harmony import */ var _components_style__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components/style */ "./node_modules/radium/es/components/style.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Style", function() { return _components_style__WEBPACK_IMPORTED_MODULE_2__["default"]; });

/* harmony import */ var _components_style_root__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/style-root */ "./node_modules/radium/es/components/style-root.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StyleRoot", function() { return _components_style_root__WEBPACK_IMPORTED_MODULE_3__["default"]; });

/* harmony import */ var _get_state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./get-state */ "./node_modules/radium/es/get-state.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getState", function() { return _get_state__WEBPACK_IMPORTED_MODULE_4__["default"]; });

/* harmony import */ var _keyframes__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./keyframes */ "./node_modules/radium/es/keyframes.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "keyframes", function() { return _keyframes__WEBPACK_IMPORTED_MODULE_5__["default"]; });

/* harmony import */ var _resolve_styles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./resolve-styles */ "./node_modules/radium/es/resolve-styles.js");








function Radium(ComposedComponent) {
  return Object(_enhancer__WEBPACK_IMPORTED_MODULE_0__["default"])(ComposedComponent);
}

// Legacy object support.
//
// Normally it would be disfavored to attach these to the `Radium` object
// because it defeats tree-shaking, using instead the ESM exports. But,
// the `Radium` `Enhancer` uses **all** of these, so there's no extra "cost"
// to them being explicitly on the `Radium` object.
Radium.Plugins = _plugins__WEBPACK_IMPORTED_MODULE_1__["default"];
Radium.Style = _components_style__WEBPACK_IMPORTED_MODULE_2__["default"];
Radium.StyleRoot = _components_style_root__WEBPACK_IMPORTED_MODULE_3__["default"];
Radium.getState = _get_state__WEBPACK_IMPORTED_MODULE_4__["default"];
Radium.keyframes = _keyframes__WEBPACK_IMPORTED_MODULE_5__["default"];

if (true) {
  Radium.TestMode = {
    clearState: _resolve_styles__WEBPACK_IMPORTED_MODULE_6__["default"].__clearStateForTests,
    disable: _resolve_styles__WEBPACK_IMPORTED_MODULE_6__["default"].__setTestMode.bind(null, false),
    enable: _resolve_styles__WEBPACK_IMPORTED_MODULE_6__["default"].__setTestMode.bind(null, true)
  };
}

/* harmony default export */ __webpack_exports__["default"] = (Radium);

// ESM re-exports


/***/ }),

/***/ "./node_modules/radium/es/keyframes.js":
/*!*********************************************!*\
  !*** ./node_modules/radium/es/keyframes.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return keyframes; });
/* harmony import */ var _css_rule_set_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./css-rule-set-to-string */ "./node_modules/radium/es/css-rule-set-to-string.js");
/* harmony import */ var _hash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hash */ "./node_modules/radium/es/hash.js");
/* harmony import */ var _prefixer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./prefixer */ "./node_modules/radium/es/prefixer.js");




function keyframes(keyframeRules, name) {
  return {
    __radiumKeyframes: true,
    __process: function __process(userAgent) {
      var keyframesPrefixed = Object(_prefixer__WEBPACK_IMPORTED_MODULE_2__["getPrefixedKeyframes"])(userAgent);
      var rules = Object.keys(keyframeRules).map(function (percentage) {
        return Object(_css_rule_set_to_string__WEBPACK_IMPORTED_MODULE_0__["default"])(percentage, keyframeRules[percentage], userAgent);
      }).join('\n');
      var animationName = (name ? name + '-' : '') + 'radium-animation-' + Object(_hash__WEBPACK_IMPORTED_MODULE_1__["default"])(rules);
      var css = '@' + keyframesPrefixed + ' ' + animationName + ' {\n' + rules + '\n}\n';
      return { css: css, animationName: animationName };
    }
  };
}

/***/ }),

/***/ "./node_modules/radium/es/map-object.js":
/*!**********************************************!*\
  !*** ./node_modules/radium/es/map-object.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return mapObject; });
function mapObject(object, mapper) {
  return Object.keys(object).reduce(function (result, key) {
    result[key] = mapper(object[key], key);
    return result;
  }, {});
}

/***/ }),

/***/ "./node_modules/radium/es/merge-styles.js":
/*!************************************************!*\
  !*** ./node_modules/radium/es/merge-styles.js ***!
  \************************************************/
/*! exports provided: isNestedStyle, mergeStyles */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNestedStyle", function() { return isNestedStyle; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeStyles", function() { return mergeStyles; });
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

function isNestedStyle(value) {
  // Don't merge objects overriding toString, since they should be converted
  // to string values.
  return value && value.constructor === Object && value.toString === Object.prototype.toString;
}

// Merge style objects. Deep merge plain object values.
function mergeStyles(styles) {
  var result = {};

  styles.forEach(function (style) {
    if (!style || (typeof style === 'undefined' ? 'undefined' : _typeof(style)) !== 'object') {
      return;
    }

    if (Array.isArray(style)) {
      style = mergeStyles(style);
    }

    Object.keys(style).forEach(function (key) {
      // Simple case, nothing nested
      if (!isNestedStyle(style[key]) || !isNestedStyle(result[key])) {
        result[key] = style[key];
        return;
      }

      // If nested media, don't merge the nested styles, append a space to the
      // end (benign when converted to CSS). This way we don't end up merging
      // media queries that appear later in the chain with those that appear
      // earlier.
      if (key.indexOf('@media') === 0) {
        var newKey = key;
        // eslint-disable-next-line no-constant-condition
        while (true) {
          newKey += ' ';
          if (!result[newKey]) {
            result[newKey] = style[key];
            return;
          }
        }
      }

      // Merge all other nested styles recursively
      result[key] = mergeStyles([result[key], style[key]]);
    });
  });

  return result;
}

/***/ }),

/***/ "./node_modules/radium/es/plugins/check-props-plugin.js":
/*!**************************************************************!*\
  !*** ./node_modules/radium/es/plugins/check-props-plugin.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

var _checkProps = function checkProps() {};

if (true) {
  // Warn if you use longhand and shorthand properties in the same style
  // object.
  // https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties

  var shorthandPropertyExpansions = {
    background: ['backgroundAttachment', 'backgroundBlendMode', 'backgroundClip', 'backgroundColor', 'backgroundImage', 'backgroundOrigin', 'backgroundPosition', 'backgroundPositionX', 'backgroundPositionY', 'backgroundRepeat', 'backgroundRepeatX', 'backgroundRepeatY', 'backgroundSize'],
    border: ['borderBottom', 'borderBottomColor', 'borderBottomStyle', 'borderBottomWidth', 'borderColor', 'borderLeft', 'borderLeftColor', 'borderLeftStyle', 'borderLeftWidth', 'borderRight', 'borderRightColor', 'borderRightStyle', 'borderRightWidth', 'borderStyle', 'borderTop', 'borderTopColor', 'borderTopStyle', 'borderTopWidth', 'borderWidth'],
    borderImage: ['borderImageOutset', 'borderImageRepeat', 'borderImageSlice', 'borderImageSource', 'borderImageWidth'],
    borderRadius: ['borderBottomLeftRadius', 'borderBottomRightRadius', 'borderTopLeftRadius', 'borderTopRightRadius'],
    font: ['fontFamily', 'fontKerning', 'fontSize', 'fontStretch', 'fontStyle', 'fontVariant', 'fontVariantLigatures', 'fontWeight', 'lineHeight'],
    listStyle: ['listStyleImage', 'listStylePosition', 'listStyleType'],
    margin: ['marginBottom', 'marginLeft', 'marginRight', 'marginTop'],
    padding: ['paddingBottom', 'paddingLeft', 'paddingRight', 'paddingTop'],
    transition: ['transitionDelay', 'transitionDuration', 'transitionProperty', 'transitionTimingFunction']
  };

  _checkProps = function checkProps(config) {
    var componentName = config.componentName,
        style = config.style;

    if ((typeof style === 'undefined' ? 'undefined' : _typeof(style)) !== 'object' || !style) {
      return;
    }

    var styleKeys = Object.keys(style);
    styleKeys.forEach(function (styleKey) {
      if (Array.isArray(shorthandPropertyExpansions[styleKey]) && shorthandPropertyExpansions[styleKey].some(function (sp) {
        return styleKeys.indexOf(sp) !== -1;
      })) {
        if (true) {
          /* eslint-disable no-console */
          console.warn('Radium: property "' + styleKey + '" in style object', style, ': do not mix longhand and ' + 'shorthand properties in the same style object. Check the render ' + 'method of ' + componentName + '.', 'See https://github.com/FormidableLabs/radium/issues/95 for more ' + 'information.');
          /* eslint-enable no-console */
        }
      }
    });

    styleKeys.forEach(function (k) {
      return _checkProps(_extends({}, config, { style: style[k] }));
    });
    return;
  };
}

/* harmony default export */ __webpack_exports__["default"] = (_checkProps);

/***/ }),

/***/ "./node_modules/radium/es/plugins/index.js":
/*!*************************************************!*\
  !*** ./node_modules/radium/es/plugins/index.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _check_props_plugin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./check-props-plugin */ "./node_modules/radium/es/plugins/check-props-plugin.js");
/* harmony import */ var _keyframes_plugin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keyframes-plugin */ "./node_modules/radium/es/plugins/keyframes-plugin.js");
/* harmony import */ var _merge_style_array_plugin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./merge-style-array-plugin */ "./node_modules/radium/es/plugins/merge-style-array-plugin.js");
/* harmony import */ var _prefix_plugin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./prefix-plugin */ "./node_modules/radium/es/plugins/prefix-plugin.js");
/* harmony import */ var _remove_nested_styles_plugin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./remove-nested-styles-plugin */ "./node_modules/radium/es/plugins/remove-nested-styles-plugin.js");
/* harmony import */ var _resolve_interaction_styles_plugin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./resolve-interaction-styles-plugin */ "./node_modules/radium/es/plugins/resolve-interaction-styles-plugin.js");
/* harmony import */ var _resolve_media_queries_plugin__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./resolve-media-queries-plugin */ "./node_modules/radium/es/plugins/resolve-media-queries-plugin.js");
/* harmony import */ var _visited_plugin__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./visited-plugin */ "./node_modules/radium/es/plugins/visited-plugin.js");



/* eslint-disable block-scoped-const */









/* harmony default export */ __webpack_exports__["default"] = ({
  checkProps: _check_props_plugin__WEBPACK_IMPORTED_MODULE_0__["default"],
  keyframes: _keyframes_plugin__WEBPACK_IMPORTED_MODULE_1__["default"],
  mergeStyleArray: _merge_style_array_plugin__WEBPACK_IMPORTED_MODULE_2__["default"],
  prefix: _prefix_plugin__WEBPACK_IMPORTED_MODULE_3__["default"],
  removeNestedStyles: _remove_nested_styles_plugin__WEBPACK_IMPORTED_MODULE_4__["default"],
  resolveInteractionStyles: _resolve_interaction_styles_plugin__WEBPACK_IMPORTED_MODULE_5__["default"],
  resolveMediaQueries: _resolve_media_queries_plugin__WEBPACK_IMPORTED_MODULE_6__["default"],
  visited: _visited_plugin__WEBPACK_IMPORTED_MODULE_7__["default"]
});

/***/ }),

/***/ "./node_modules/radium/es/plugins/keyframes-plugin.js":
/*!************************************************************!*\
  !*** ./node_modules/radium/es/plugins/keyframes-plugin.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return keyframesPlugin; });
function keyframesPlugin(_ref // eslint-disable-line no-shadow
) {
  var addCSS = _ref.addCSS,
      config = _ref.config,
      style = _ref.style;

  var newStyle = Object.keys(style).reduce(function (newStyleInProgress, key) {
    var value = style[key];
    if (key === 'animationName' && value && value.__radiumKeyframes) {
      var keyframesValue = value;

      var _keyframesValue$__pro = keyframesValue.__process(config.userAgent),
          animationName = _keyframesValue$__pro.animationName,
          css = _keyframesValue$__pro.css;

      addCSS(css);
      value = animationName;
    }

    newStyleInProgress[key] = value;
    return newStyleInProgress;
  }, {});
  return { style: newStyle };
}

/***/ }),

/***/ "./node_modules/radium/es/plugins/merge-style-array-plugin.js":
/*!********************************************************************!*\
  !*** ./node_modules/radium/es/plugins/merge-style-array-plugin.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);


// Convenient syntax for multiple styles: `style={[style1, style2, etc]}`
// Ignores non-objects, so you can do `this.state.isCool && styles.cool`.
var mergeStyleArrayPlugin = function mergeStyleArrayPlugin(_ref) {
  var style = _ref.style,
      mergeStyles = _ref.mergeStyles;

  // eslint-disable-line no-shadow
  var newStyle = Array.isArray(style) ? mergeStyles(style) : style;
  return { style: newStyle };
};

/* harmony default export */ __webpack_exports__["default"] = (mergeStyleArrayPlugin);

/***/ }),

/***/ "./node_modules/radium/es/plugins/mouse-up-listener.js":
/*!*************************************************************!*\
  !*** ./node_modules/radium/es/plugins/mouse-up-listener.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
var _callbacks = [];
var _mouseUpListenerIsActive = false;

function _handleMouseUp() {
  _callbacks.forEach(function (callback) {
    callback();
  });
}

var subscribe = function subscribe(callback) {
  if (_callbacks.indexOf(callback) === -1) {
    _callbacks.push(callback);
  }

  if (!_mouseUpListenerIsActive) {
    window.addEventListener('mouseup', _handleMouseUp);
    _mouseUpListenerIsActive = true;
  }

  return {
    remove: function remove() {
      var index = _callbacks.indexOf(callback);
      _callbacks.splice(index, 1);

      if (_callbacks.length === 0 && _mouseUpListenerIsActive) {
        window.removeEventListener('mouseup', _handleMouseUp);
        _mouseUpListenerIsActive = false;
      }
    }
  };
};

/* harmony default export */ __webpack_exports__["default"] = ({
  subscribe: subscribe,
  __triggerForTests: _handleMouseUp
});

/***/ }),

/***/ "./node_modules/radium/es/plugins/prefix-plugin.js":
/*!*********************************************************!*\
  !*** ./node_modules/radium/es/plugins/prefix-plugin.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return prefixPlugin; });
/* harmony import */ var _prefixer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../prefixer */ "./node_modules/radium/es/prefixer.js");




function prefixPlugin(_ref // eslint-disable-line no-shadow
) {
  var config = _ref.config,
      style = _ref.style;

  var newStyle = Object(_prefixer__WEBPACK_IMPORTED_MODULE_0__["getPrefixedStyle"])(style, config.userAgent);
  return { style: newStyle };
}

/***/ }),

/***/ "./node_modules/radium/es/plugins/remove-nested-styles-plugin.js":
/*!***********************************************************************!*\
  !*** ./node_modules/radium/es/plugins/remove-nested-styles-plugin.js ***!
  \***********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return removeNestedStyles; });


function removeNestedStyles(_ref) {
  var isNestedStyle = _ref.isNestedStyle,
      style = _ref.style;

  // eslint-disable-line no-shadow
  var newStyle = Object.keys(style).reduce(function (newStyleInProgress, key) {
    var value = style[key];
    if (!isNestedStyle(value)) {
      newStyleInProgress[key] = value;
    }
    return newStyleInProgress;
  }, {});

  return {
    style: newStyle
  };
}

/***/ }),

/***/ "./node_modules/radium/es/plugins/resolve-interaction-styles-plugin.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/radium/es/plugins/resolve-interaction-styles-plugin.js ***!
  \*****************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _mouse_up_listener__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mouse-up-listener */ "./node_modules/radium/es/plugins/mouse-up-listener.js");




var _isInteractiveStyleField = function _isInteractiveStyleField(styleFieldName) {
  return styleFieldName === ':hover' || styleFieldName === ':active' || styleFieldName === ':focus';
};

var resolveInteractionStyles = function resolveInteractionStyles(config) {
  var ExecutionEnvironment = config.ExecutionEnvironment,
      getComponentField = config.getComponentField,
      getState = config.getState,
      mergeStyles = config.mergeStyles,
      props = config.props,
      setState = config.setState,
      style = config.style;


  var newComponentFields = {};
  var newProps = {};

  // Only add handlers if necessary
  if (style[':hover']) {
    // Always call the existing handler if one is already defined.
    // This code, and the very similar ones below, could be abstracted a bit
    // more, but it hurts readability IMO.
    var existingOnMouseEnter = props.onMouseEnter;
    newProps.onMouseEnter = function (e) {
      existingOnMouseEnter && existingOnMouseEnter(e);
      setState(':hover', true);
    };

    var existingOnMouseLeave = props.onMouseLeave;
    newProps.onMouseLeave = function (e) {
      existingOnMouseLeave && existingOnMouseLeave(e);
      setState(':hover', false);
    };
  }

  if (style[':active']) {
    var existingOnMouseDown = props.onMouseDown;
    newProps.onMouseDown = function (e) {
      existingOnMouseDown && existingOnMouseDown(e);
      newComponentFields._lastMouseDown = Date.now();
      setState(':active', 'viamousedown');
    };

    var existingOnKeyDown = props.onKeyDown;
    newProps.onKeyDown = function (e) {
      existingOnKeyDown && existingOnKeyDown(e);
      if (e.key === ' ' || e.key === 'Enter') {
        setState(':active', 'viakeydown');
      }
    };

    var existingOnKeyUp = props.onKeyUp;
    newProps.onKeyUp = function (e) {
      existingOnKeyUp && existingOnKeyUp(e);
      if (e.key === ' ' || e.key === 'Enter') {
        setState(':active', false);
      }
    };
  }

  if (style[':focus']) {
    var existingOnFocus = props.onFocus;
    newProps.onFocus = function (e) {
      existingOnFocus && existingOnFocus(e);
      setState(':focus', true);
    };

    var existingOnBlur = props.onBlur;
    newProps.onBlur = function (e) {
      existingOnBlur && existingOnBlur(e);
      setState(':focus', false);
    };
  }

  if (style[':active'] && !getComponentField('_radiumMouseUpListener') && ExecutionEnvironment.canUseEventListeners) {
    newComponentFields._radiumMouseUpListener = _mouse_up_listener__WEBPACK_IMPORTED_MODULE_0__["default"].subscribe(function () {
      Object.keys(getComponentField('state')._radiumStyleState).forEach(function (key) {
        if (getState(':active', key) === 'viamousedown') {
          setState(':active', false, key);
        }
      });
    });
  }

  // Merge the styles in the order they were defined
  var interactionStyles = props.disabled ? [style[':disabled']] : Object.keys(style).filter(function (name) {
    return _isInteractiveStyleField(name) && getState(name);
  }).map(function (name) {
    return style[name];
  });

  var newStyle = mergeStyles([style].concat(interactionStyles));

  // Remove interactive styles
  newStyle = Object.keys(newStyle).reduce(function (styleWithoutInteractions, name) {
    if (!_isInteractiveStyleField(name) && name !== ':disabled') {
      styleWithoutInteractions[name] = newStyle[name];
    }
    return styleWithoutInteractions;
  }, {});

  return {
    componentFields: newComponentFields,
    props: newProps,
    style: newStyle
  };
};

/* harmony default export */ __webpack_exports__["default"] = (resolveInteractionStyles);

/***/ }),

/***/ "./node_modules/radium/es/plugins/resolve-media-queries-plugin.js":
/*!************************************************************************!*\
  !*** ./node_modules/radium/es/plugins/resolve-media-queries-plugin.js ***!
  \************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return resolveMediaQueries; });
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _windowMatchMedia = void 0;
function _getWindowMatchMedia(ExecutionEnvironment) {
  if (_windowMatchMedia === undefined) {
    _windowMatchMedia = !!ExecutionEnvironment.canUseDOM && !!window && !!window.matchMedia && function (mediaQueryString) {
      return window.matchMedia(mediaQueryString);
    } || null;
  }
  return _windowMatchMedia;
}

function _filterObject(obj, predicate) {
  return Object.keys(obj).filter(function (key) {
    return predicate(obj[key], key);
  }).reduce(function (result, key) {
    result[key] = obj[key];
    return result;
  }, {});
}

function _removeMediaQueries(style) {
  return Object.keys(style).reduce(function (styleWithoutMedia, key) {
    if (key.indexOf('@media') !== 0) {
      styleWithoutMedia[key] = style[key];
    }
    return styleWithoutMedia;
  }, {});
}

function _topLevelRulesToCSS(_ref) {
  var addCSS = _ref.addCSS,
      appendImportantToEachValue = _ref.appendImportantToEachValue,
      cssRuleSetToString = _ref.cssRuleSetToString,
      hash = _ref.hash,
      isNestedStyle = _ref.isNestedStyle,
      style = _ref.style,
      userAgent = _ref.userAgent;

  var className = '';
  Object.keys(style).filter(function (name) {
    return name.indexOf('@media') === 0;
  }).map(function (query) {
    var topLevelRules = appendImportantToEachValue(_filterObject(style[query], function (value) {
      return !isNestedStyle(value);
    }));

    if (!Object.keys(topLevelRules).length) {
      return;
    }

    var ruleCSS = cssRuleSetToString('', topLevelRules, userAgent);

    // CSS classes cannot start with a number
    var mediaQueryClassName = 'rmq-' + hash(query + ruleCSS);
    var css = query + '{ .' + mediaQueryClassName + ruleCSS + '}';

    addCSS(css);

    className += (className ? ' ' : '') + mediaQueryClassName;
  });
  return className;
}

function _subscribeToMediaQuery(_ref2) {
  var listener = _ref2.listener,
      listenersByQuery = _ref2.listenersByQuery,
      matchMedia = _ref2.matchMedia,
      mediaQueryListsByQuery = _ref2.mediaQueryListsByQuery,
      query = _ref2.query;

  query = query.replace('@media ', '');

  var mql = mediaQueryListsByQuery[query];
  if (!mql && matchMedia) {
    mediaQueryListsByQuery[query] = mql = matchMedia(query);
  }

  if (!listenersByQuery || !listenersByQuery[query]) {
    mql.addListener(listener);

    listenersByQuery[query] = {
      remove: function remove() {
        mql.removeListener(listener);
      }
    };
  }
  return mql;
}

function resolveMediaQueries(_ref3) {
  var ExecutionEnvironment = _ref3.ExecutionEnvironment,
      addCSS = _ref3.addCSS,
      appendImportantToEachValue = _ref3.appendImportantToEachValue,
      config = _ref3.config,
      cssRuleSetToString = _ref3.cssRuleSetToString,
      getComponentField = _ref3.getComponentField,
      getGlobalState = _ref3.getGlobalState,
      hash = _ref3.hash,
      isNestedStyle = _ref3.isNestedStyle,
      mergeStyles = _ref3.mergeStyles,
      props = _ref3.props,
      setState = _ref3.setState,
      style = _ref3.style;

  // eslint-disable-line no-shadow
  var newStyle = _removeMediaQueries(style);
  var mediaQueryClassNames = _topLevelRulesToCSS({
    addCSS: addCSS,
    appendImportantToEachValue: appendImportantToEachValue,
    cssRuleSetToString: cssRuleSetToString,
    hash: hash,
    isNestedStyle: isNestedStyle,
    style: style,
    userAgent: config.userAgent
  });

  var newProps = mediaQueryClassNames ? {
    className: mediaQueryClassNames + (props.className ? ' ' + props.className : '')
  } : null;

  var matchMedia = config.matchMedia || _getWindowMatchMedia(ExecutionEnvironment);

  if (!matchMedia) {
    return {
      props: newProps,
      style: newStyle
    };
  }

  var listenersByQuery = _extends({}, getComponentField('_radiumMediaQueryListenersByQuery'));
  var mediaQueryListsByQuery = getGlobalState('mediaQueryListsByQuery') || {};

  Object.keys(style).filter(function (name) {
    return name.indexOf('@media') === 0;
  }).map(function (query) {
    var nestedRules = _filterObject(style[query], isNestedStyle);

    if (!Object.keys(nestedRules).length) {
      return;
    }

    var mql = _subscribeToMediaQuery({
      listener: function listener() {
        return setState(query, mql.matches, '_all');
      },
      listenersByQuery: listenersByQuery,
      matchMedia: matchMedia,
      mediaQueryListsByQuery: mediaQueryListsByQuery,
      query: query
    });

    // Apply media query states
    if (mql.matches) {
      newStyle = mergeStyles([newStyle, nestedRules]);
    }
  });

  return {
    componentFields: {
      _radiumMediaQueryListenersByQuery: listenersByQuery
    },
    globalState: { mediaQueryListsByQuery: mediaQueryListsByQuery },
    props: newProps,
    style: newStyle
  };
}

/***/ }),

/***/ "./node_modules/radium/es/plugins/visited-plugin.js":
/*!**********************************************************!*\
  !*** ./node_modules/radium/es/plugins/visited-plugin.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return visited; });


function visited(_ref) {
  var addCSS = _ref.addCSS,
      appendImportantToEachValue = _ref.appendImportantToEachValue,
      config = _ref.config,
      cssRuleSetToString = _ref.cssRuleSetToString,
      hash = _ref.hash,
      props = _ref.props,
      style = _ref.style;

  // eslint-disable-line no-shadow
  var className = props.className;

  var newStyle = Object.keys(style).reduce(function (newStyleInProgress, key) {
    var value = style[key];
    if (key === ':visited') {
      value = appendImportantToEachValue(value);
      var ruleCSS = cssRuleSetToString('', value, config.userAgent);
      var visitedClassName = 'rad-' + hash(ruleCSS);
      var css = '.' + visitedClassName + ':visited' + ruleCSS;

      addCSS(css);
      className = (className ? className + ' ' : '') + visitedClassName;
    } else {
      newStyleInProgress[key] = value;
    }

    return newStyleInProgress;
  }, {});

  return {
    props: className === props.className ? null : { className: className },
    style: newStyle
  };
}

/***/ }),

/***/ "./node_modules/radium/es/prefix-data/dynamic.js":
/*!*******************************************************!*\
  !*** ./node_modules/radium/es/prefix-data/dynamic.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var inline_style_prefixer_dynamic_plugins_calc__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inline-style-prefixer/dynamic/plugins/calc */ "./node_modules/inline-style-prefixer/dynamic/plugins/calc.js");
/* harmony import */ var inline_style_prefixer_dynamic_plugins_calc__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_dynamic_plugins_calc__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var inline_style_prefixer_dynamic_plugins_crossFade__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! inline-style-prefixer/dynamic/plugins/crossFade */ "./node_modules/inline-style-prefixer/dynamic/plugins/crossFade.js");
/* harmony import */ var inline_style_prefixer_dynamic_plugins_crossFade__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_dynamic_plugins_crossFade__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var inline_style_prefixer_dynamic_plugins_cursor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! inline-style-prefixer/dynamic/plugins/cursor */ "./node_modules/inline-style-prefixer/dynamic/plugins/cursor.js");
/* harmony import */ var inline_style_prefixer_dynamic_plugins_cursor__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_dynamic_plugins_cursor__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var inline_style_prefixer_dynamic_plugins_filter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! inline-style-prefixer/dynamic/plugins/filter */ "./node_modules/inline-style-prefixer/dynamic/plugins/filter.js");
/* harmony import */ var inline_style_prefixer_dynamic_plugins_filter__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_dynamic_plugins_filter__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var inline_style_prefixer_dynamic_plugins_flex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! inline-style-prefixer/dynamic/plugins/flex */ "./node_modules/inline-style-prefixer/dynamic/plugins/flex.js");
/* harmony import */ var inline_style_prefixer_dynamic_plugins_flex__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_dynamic_plugins_flex__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var inline_style_prefixer_dynamic_plugins_flexboxIE__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! inline-style-prefixer/dynamic/plugins/flexboxIE */ "./node_modules/inline-style-prefixer/dynamic/plugins/flexboxIE.js");
/* harmony import */ var inline_style_prefixer_dynamic_plugins_flexboxIE__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_dynamic_plugins_flexboxIE__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var inline_style_prefixer_dynamic_plugins_flexboxOld__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! inline-style-prefixer/dynamic/plugins/flexboxOld */ "./node_modules/inline-style-prefixer/dynamic/plugins/flexboxOld.js");
/* harmony import */ var inline_style_prefixer_dynamic_plugins_flexboxOld__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_dynamic_plugins_flexboxOld__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var inline_style_prefixer_dynamic_plugins_gradient__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! inline-style-prefixer/dynamic/plugins/gradient */ "./node_modules/inline-style-prefixer/dynamic/plugins/gradient.js");
/* harmony import */ var inline_style_prefixer_dynamic_plugins_gradient__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_dynamic_plugins_gradient__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var inline_style_prefixer_dynamic_plugins_imageSet__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! inline-style-prefixer/dynamic/plugins/imageSet */ "./node_modules/inline-style-prefixer/dynamic/plugins/imageSet.js");
/* harmony import */ var inline_style_prefixer_dynamic_plugins_imageSet__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_dynamic_plugins_imageSet__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var inline_style_prefixer_dynamic_plugins_position__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! inline-style-prefixer/dynamic/plugins/position */ "./node_modules/inline-style-prefixer/dynamic/plugins/position.js");
/* harmony import */ var inline_style_prefixer_dynamic_plugins_position__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_dynamic_plugins_position__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var inline_style_prefixer_dynamic_plugins_sizing__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! inline-style-prefixer/dynamic/plugins/sizing */ "./node_modules/inline-style-prefixer/dynamic/plugins/sizing.js");
/* harmony import */ var inline_style_prefixer_dynamic_plugins_sizing__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_dynamic_plugins_sizing__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var inline_style_prefixer_dynamic_plugins_transition__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! inline-style-prefixer/dynamic/plugins/transition */ "./node_modules/inline-style-prefixer/dynamic/plugins/transition.js");
/* harmony import */ var inline_style_prefixer_dynamic_plugins_transition__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_dynamic_plugins_transition__WEBPACK_IMPORTED_MODULE_11__);













/* harmony default export */ __webpack_exports__["default"] = ({
  plugins: [inline_style_prefixer_dynamic_plugins_calc__WEBPACK_IMPORTED_MODULE_0___default.a, inline_style_prefixer_dynamic_plugins_crossFade__WEBPACK_IMPORTED_MODULE_1___default.a, inline_style_prefixer_dynamic_plugins_cursor__WEBPACK_IMPORTED_MODULE_2___default.a, inline_style_prefixer_dynamic_plugins_filter__WEBPACK_IMPORTED_MODULE_3___default.a, inline_style_prefixer_dynamic_plugins_flex__WEBPACK_IMPORTED_MODULE_4___default.a, inline_style_prefixer_dynamic_plugins_flexboxIE__WEBPACK_IMPORTED_MODULE_5___default.a, inline_style_prefixer_dynamic_plugins_flexboxOld__WEBPACK_IMPORTED_MODULE_6___default.a, inline_style_prefixer_dynamic_plugins_gradient__WEBPACK_IMPORTED_MODULE_7___default.a, inline_style_prefixer_dynamic_plugins_imageSet__WEBPACK_IMPORTED_MODULE_8___default.a, inline_style_prefixer_dynamic_plugins_position__WEBPACK_IMPORTED_MODULE_9___default.a, inline_style_prefixer_dynamic_plugins_sizing__WEBPACK_IMPORTED_MODULE_10___default.a, inline_style_prefixer_dynamic_plugins_transition__WEBPACK_IMPORTED_MODULE_11___default.a],
  prefixMap: {
    chrome: {
      transform: 35,
      transformOrigin: 35,
      transformOriginX: 35,
      transformOriginY: 35,
      backfaceVisibility: 35,
      perspective: 35,
      perspectiveOrigin: 35,
      transformStyle: 35,
      transformOriginZ: 35,
      animation: 42,
      animationDelay: 42,
      animationDirection: 42,
      animationFillMode: 42,
      animationDuration: 42,
      animationIterationCount: 42,
      animationName: 42,
      animationPlayState: 42,
      animationTimingFunction: 42,
      appearance: 66,
      userSelect: 53,
      fontKerning: 32,
      textEmphasisPosition: 66,
      textEmphasis: 66,
      textEmphasisStyle: 66,
      textEmphasisColor: 66,
      boxDecorationBreak: 66,
      clipPath: 54,
      maskImage: 66,
      maskMode: 66,
      maskRepeat: 66,
      maskPosition: 66,
      maskClip: 66,
      maskOrigin: 66,
      maskSize: 66,
      maskComposite: 66,
      mask: 66,
      maskBorderSource: 66,
      maskBorderMode: 66,
      maskBorderSlice: 66,
      maskBorderWidth: 66,
      maskBorderOutset: 66,
      maskBorderRepeat: 66,
      maskBorder: 66,
      maskType: 66,
      textDecorationStyle: 56,
      textDecorationSkip: 56,
      textDecorationLine: 56,
      textDecorationColor: 56,
      filter: 52,
      fontFeatureSettings: 47,
      breakAfter: 49,
      breakBefore: 49,
      breakInside: 49,
      columnCount: 49,
      columnFill: 49,
      columnGap: 49,
      columnRule: 49,
      columnRuleColor: 49,
      columnRuleStyle: 49,
      columnRuleWidth: 49,
      columns: 49,
      columnSpan: 49,
      columnWidth: 49,
      writingMode: 47
    },
    safari: {
      flex: 8,
      flexBasis: 8,
      flexDirection: 8,
      flexGrow: 8,
      flexFlow: 8,
      flexShrink: 8,
      flexWrap: 8,
      alignContent: 8,
      alignItems: 8,
      alignSelf: 8,
      justifyContent: 8,
      order: 8,
      transition: 6,
      transitionDelay: 6,
      transitionDuration: 6,
      transitionProperty: 6,
      transitionTimingFunction: 6,
      transform: 8,
      transformOrigin: 8,
      transformOriginX: 8,
      transformOriginY: 8,
      backfaceVisibility: 8,
      perspective: 8,
      perspectiveOrigin: 8,
      transformStyle: 8,
      transformOriginZ: 8,
      animation: 8,
      animationDelay: 8,
      animationDirection: 8,
      animationFillMode: 8,
      animationDuration: 8,
      animationIterationCount: 8,
      animationName: 8,
      animationPlayState: 8,
      animationTimingFunction: 8,
      appearance: 11,
      userSelect: 11,
      backdropFilter: 11,
      fontKerning: 9,
      scrollSnapType: 10.1,
      scrollSnapPointsX: 10.1,
      scrollSnapPointsY: 10.1,
      scrollSnapDestination: 10.1,
      scrollSnapCoordinate: 10.1,
      textEmphasisPosition: 7,
      textEmphasis: 7,
      textEmphasisStyle: 7,
      textEmphasisColor: 7,
      boxDecorationBreak: 11,
      clipPath: 11,
      maskImage: 11,
      maskMode: 11,
      maskRepeat: 11,
      maskPosition: 11,
      maskClip: 11,
      maskOrigin: 11,
      maskSize: 11,
      maskComposite: 11,
      mask: 11,
      maskBorderSource: 11,
      maskBorderMode: 11,
      maskBorderSlice: 11,
      maskBorderWidth: 11,
      maskBorderOutset: 11,
      maskBorderRepeat: 11,
      maskBorder: 11,
      maskType: 11,
      textDecorationStyle: 11,
      textDecorationSkip: 11,
      textDecorationLine: 11,
      textDecorationColor: 11,
      shapeImageThreshold: 10,
      shapeImageMargin: 10,
      shapeImageOutside: 10,
      filter: 9,
      hyphens: 11,
      flowInto: 11,
      flowFrom: 11,
      breakBefore: 8,
      breakAfter: 8,
      breakInside: 8,
      regionFragment: 11,
      columnCount: 8,
      columnFill: 8,
      columnGap: 8,
      columnRule: 8,
      columnRuleColor: 8,
      columnRuleStyle: 8,
      columnRuleWidth: 8,
      columns: 8,
      columnSpan: 8,
      columnWidth: 8,
      writingMode: 10.1
    },
    firefox: {
      appearance: 60,
      userSelect: 60,
      boxSizing: 28,
      textAlignLast: 48,
      textDecorationStyle: 35,
      textDecorationSkip: 35,
      textDecorationLine: 35,
      textDecorationColor: 35,
      tabSize: 60,
      hyphens: 42,
      fontFeatureSettings: 33,
      breakAfter: 51,
      breakBefore: 51,
      breakInside: 51,
      columnCount: 51,
      columnFill: 51,
      columnGap: 51,
      columnRule: 51,
      columnRuleColor: 51,
      columnRuleStyle: 51,
      columnRuleWidth: 51,
      columns: 51,
      columnSpan: 51,
      columnWidth: 51
    },
    opera: {
      flex: 16,
      flexBasis: 16,
      flexDirection: 16,
      flexGrow: 16,
      flexFlow: 16,
      flexShrink: 16,
      flexWrap: 16,
      alignContent: 16,
      alignItems: 16,
      alignSelf: 16,
      justifyContent: 16,
      order: 16,
      transform: 22,
      transformOrigin: 22,
      transformOriginX: 22,
      transformOriginY: 22,
      backfaceVisibility: 22,
      perspective: 22,
      perspectiveOrigin: 22,
      transformStyle: 22,
      transformOriginZ: 22,
      animation: 29,
      animationDelay: 29,
      animationDirection: 29,
      animationFillMode: 29,
      animationDuration: 29,
      animationIterationCount: 29,
      animationName: 29,
      animationPlayState: 29,
      animationTimingFunction: 29,
      appearance: 50,
      userSelect: 40,
      fontKerning: 19,
      textEmphasisPosition: 50,
      textEmphasis: 50,
      textEmphasisStyle: 50,
      textEmphasisColor: 50,
      boxDecorationBreak: 50,
      clipPath: 41,
      maskImage: 50,
      maskMode: 50,
      maskRepeat: 50,
      maskPosition: 50,
      maskClip: 50,
      maskOrigin: 50,
      maskSize: 50,
      maskComposite: 50,
      mask: 50,
      maskBorderSource: 50,
      maskBorderMode: 50,
      maskBorderSlice: 50,
      maskBorderWidth: 50,
      maskBorderOutset: 50,
      maskBorderRepeat: 50,
      maskBorder: 50,
      maskType: 50,
      textDecorationStyle: 43,
      textDecorationSkip: 43,
      textDecorationLine: 43,
      textDecorationColor: 43,
      filter: 39,
      fontFeatureSettings: 34,
      breakAfter: 36,
      breakBefore: 36,
      breakInside: 36,
      columnCount: 36,
      columnFill: 36,
      columnGap: 36,
      columnRule: 36,
      columnRuleColor: 36,
      columnRuleStyle: 36,
      columnRuleWidth: 36,
      columns: 36,
      columnSpan: 36,
      columnWidth: 36,
      writingMode: 34
    },
    ie: {
      flex: 10,
      flexDirection: 10,
      flexFlow: 10,
      flexWrap: 10,
      transform: 9,
      transformOrigin: 9,
      transformOriginX: 9,
      transformOriginY: 9,
      userSelect: 11,
      wrapFlow: 11,
      wrapThrough: 11,
      wrapMargin: 11,
      scrollSnapType: 11,
      scrollSnapPointsX: 11,
      scrollSnapPointsY: 11,
      scrollSnapDestination: 11,
      scrollSnapCoordinate: 11,
      touchAction: 10,
      hyphens: 11,
      flowInto: 11,
      flowFrom: 11,
      breakBefore: 11,
      breakAfter: 11,
      breakInside: 11,
      regionFragment: 11,
      gridTemplateColumns: 11,
      gridTemplateRows: 11,
      gridTemplateAreas: 11,
      gridTemplate: 11,
      gridAutoColumns: 11,
      gridAutoRows: 11,
      gridAutoFlow: 11,
      grid: 11,
      gridRowStart: 11,
      gridColumnStart: 11,
      gridRowEnd: 11,
      gridRow: 11,
      gridColumn: 11,
      gridColumnEnd: 11,
      gridColumnGap: 11,
      gridRowGap: 11,
      gridArea: 11,
      gridGap: 11,
      textSizeAdjust: 11,
      writingMode: 11
    },
    edge: {
      userSelect: 17,
      wrapFlow: 17,
      wrapThrough: 17,
      wrapMargin: 17,
      scrollSnapType: 17,
      scrollSnapPointsX: 17,
      scrollSnapPointsY: 17,
      scrollSnapDestination: 17,
      scrollSnapCoordinate: 17,
      hyphens: 17,
      flowInto: 17,
      flowFrom: 17,
      breakBefore: 17,
      breakAfter: 17,
      breakInside: 17,
      regionFragment: 17,
      gridTemplateColumns: 15,
      gridTemplateRows: 15,
      gridTemplateAreas: 15,
      gridTemplate: 15,
      gridAutoColumns: 15,
      gridAutoRows: 15,
      gridAutoFlow: 15,
      grid: 15,
      gridRowStart: 15,
      gridColumnStart: 15,
      gridRowEnd: 15,
      gridRow: 15,
      gridColumn: 15,
      gridColumnEnd: 15,
      gridColumnGap: 15,
      gridRowGap: 15,
      gridArea: 15,
      gridGap: 15
    },
    ios_saf: {
      flex: 8.1,
      flexBasis: 8.1,
      flexDirection: 8.1,
      flexGrow: 8.1,
      flexFlow: 8.1,
      flexShrink: 8.1,
      flexWrap: 8.1,
      alignContent: 8.1,
      alignItems: 8.1,
      alignSelf: 8.1,
      justifyContent: 8.1,
      order: 8.1,
      transition: 6,
      transitionDelay: 6,
      transitionDuration: 6,
      transitionProperty: 6,
      transitionTimingFunction: 6,
      transform: 8.1,
      transformOrigin: 8.1,
      transformOriginX: 8.1,
      transformOriginY: 8.1,
      backfaceVisibility: 8.1,
      perspective: 8.1,
      perspectiveOrigin: 8.1,
      transformStyle: 8.1,
      transformOriginZ: 8.1,
      animation: 8.1,
      animationDelay: 8.1,
      animationDirection: 8.1,
      animationFillMode: 8.1,
      animationDuration: 8.1,
      animationIterationCount: 8.1,
      animationName: 8.1,
      animationPlayState: 8.1,
      animationTimingFunction: 8.1,
      appearance: 11,
      userSelect: 11,
      backdropFilter: 11,
      fontKerning: 11,
      scrollSnapType: 10.3,
      scrollSnapPointsX: 10.3,
      scrollSnapPointsY: 10.3,
      scrollSnapDestination: 10.3,
      scrollSnapCoordinate: 10.3,
      boxDecorationBreak: 11,
      clipPath: 11,
      maskImage: 11,
      maskMode: 11,
      maskRepeat: 11,
      maskPosition: 11,
      maskClip: 11,
      maskOrigin: 11,
      maskSize: 11,
      maskComposite: 11,
      mask: 11,
      maskBorderSource: 11,
      maskBorderMode: 11,
      maskBorderSlice: 11,
      maskBorderWidth: 11,
      maskBorderOutset: 11,
      maskBorderRepeat: 11,
      maskBorder: 11,
      maskType: 11,
      textSizeAdjust: 11,
      textDecorationStyle: 11,
      textDecorationSkip: 11,
      textDecorationLine: 11,
      textDecorationColor: 11,
      shapeImageThreshold: 10,
      shapeImageMargin: 10,
      shapeImageOutside: 10,
      filter: 9,
      hyphens: 11,
      flowInto: 11,
      flowFrom: 11,
      breakBefore: 8.1,
      breakAfter: 8.1,
      breakInside: 8.1,
      regionFragment: 11,
      columnCount: 8.1,
      columnFill: 8.1,
      columnGap: 8.1,
      columnRule: 8.1,
      columnRuleColor: 8.1,
      columnRuleStyle: 8.1,
      columnRuleWidth: 8.1,
      columns: 8.1,
      columnSpan: 8.1,
      columnWidth: 8.1,
      writingMode: 10.3
    },
    android: {
      borderImage: 4.2,
      borderImageOutset: 4.2,
      borderImageRepeat: 4.2,
      borderImageSlice: 4.2,
      borderImageSource: 4.2,
      borderImageWidth: 4.2,
      flex: 4.2,
      flexBasis: 4.2,
      flexDirection: 4.2,
      flexGrow: 4.2,
      flexFlow: 4.2,
      flexShrink: 4.2,
      flexWrap: 4.2,
      alignContent: 4.2,
      alignItems: 4.2,
      alignSelf: 4.2,
      justifyContent: 4.2,
      order: 4.2,
      transition: 4.2,
      transitionDelay: 4.2,
      transitionDuration: 4.2,
      transitionProperty: 4.2,
      transitionTimingFunction: 4.2,
      transform: 4.4,
      transformOrigin: 4.4,
      transformOriginX: 4.4,
      transformOriginY: 4.4,
      backfaceVisibility: 4.4,
      perspective: 4.4,
      perspectiveOrigin: 4.4,
      transformStyle: 4.4,
      transformOriginZ: 4.4,
      animation: 4.4,
      animationDelay: 4.4,
      animationDirection: 4.4,
      animationFillMode: 4.4,
      animationDuration: 4.4,
      animationIterationCount: 4.4,
      animationName: 4.4,
      animationPlayState: 4.4,
      animationTimingFunction: 4.4,
      appearance: 62,
      userSelect: 4.4,
      fontKerning: 4.4,
      textEmphasisPosition: 62,
      textEmphasis: 62,
      textEmphasisStyle: 62,
      textEmphasisColor: 62,
      boxDecorationBreak: 62,
      clipPath: 4.4,
      maskImage: 62,
      maskMode: 62,
      maskRepeat: 62,
      maskPosition: 62,
      maskClip: 62,
      maskOrigin: 62,
      maskSize: 62,
      maskComposite: 62,
      mask: 62,
      maskBorderSource: 62,
      maskBorderMode: 62,
      maskBorderSlice: 62,
      maskBorderWidth: 62,
      maskBorderOutset: 62,
      maskBorderRepeat: 62,
      maskBorder: 62,
      maskType: 62,
      filter: 4.4,
      fontFeatureSettings: 4.4,
      breakAfter: 4.4,
      breakBefore: 4.4,
      breakInside: 4.4,
      columnCount: 4.4,
      columnFill: 4.4,
      columnGap: 4.4,
      columnRule: 4.4,
      columnRuleColor: 4.4,
      columnRuleStyle: 4.4,
      columnRuleWidth: 4.4,
      columns: 4.4,
      columnSpan: 4.4,
      columnWidth: 4.4,
      writingMode: 4.4
    },
    and_chr: {
      appearance: 62,
      textEmphasisPosition: 62,
      textEmphasis: 62,
      textEmphasisStyle: 62,
      textEmphasisColor: 62,
      boxDecorationBreak: 62,
      maskImage: 62,
      maskMode: 62,
      maskRepeat: 62,
      maskPosition: 62,
      maskClip: 62,
      maskOrigin: 62,
      maskSize: 62,
      maskComposite: 62,
      mask: 62,
      maskBorderSource: 62,
      maskBorderMode: 62,
      maskBorderSlice: 62,
      maskBorderWidth: 62,
      maskBorderOutset: 62,
      maskBorderRepeat: 62,
      maskBorder: 62,
      maskType: 62
    },
    and_uc: {
      flex: 11.4,
      flexBasis: 11.4,
      flexDirection: 11.4,
      flexGrow: 11.4,
      flexFlow: 11.4,
      flexShrink: 11.4,
      flexWrap: 11.4,
      alignContent: 11.4,
      alignItems: 11.4,
      alignSelf: 11.4,
      justifyContent: 11.4,
      order: 11.4,
      transform: 11.4,
      transformOrigin: 11.4,
      transformOriginX: 11.4,
      transformOriginY: 11.4,
      backfaceVisibility: 11.4,
      perspective: 11.4,
      perspectiveOrigin: 11.4,
      transformStyle: 11.4,
      transformOriginZ: 11.4,
      animation: 11.4,
      animationDelay: 11.4,
      animationDirection: 11.4,
      animationFillMode: 11.4,
      animationDuration: 11.4,
      animationIterationCount: 11.4,
      animationName: 11.4,
      animationPlayState: 11.4,
      animationTimingFunction: 11.4,
      appearance: 11.4,
      userSelect: 11.4,
      textEmphasisPosition: 11.4,
      textEmphasis: 11.4,
      textEmphasisStyle: 11.4,
      textEmphasisColor: 11.4,
      clipPath: 11.4,
      maskImage: 11.4,
      maskMode: 11.4,
      maskRepeat: 11.4,
      maskPosition: 11.4,
      maskClip: 11.4,
      maskOrigin: 11.4,
      maskSize: 11.4,
      maskComposite: 11.4,
      mask: 11.4,
      maskBorderSource: 11.4,
      maskBorderMode: 11.4,
      maskBorderSlice: 11.4,
      maskBorderWidth: 11.4,
      maskBorderOutset: 11.4,
      maskBorderRepeat: 11.4,
      maskBorder: 11.4,
      maskType: 11.4,
      textSizeAdjust: 11.4,
      filter: 11.4,
      hyphens: 11.4,
      fontFeatureSettings: 11.4,
      breakAfter: 11.4,
      breakBefore: 11.4,
      breakInside: 11.4,
      columnCount: 11.4,
      columnFill: 11.4,
      columnGap: 11.4,
      columnRule: 11.4,
      columnRuleColor: 11.4,
      columnRuleStyle: 11.4,
      columnRuleWidth: 11.4,
      columns: 11.4,
      columnSpan: 11.4,
      columnWidth: 11.4,
      writingMode: 11.4
    },
    op_mini: {}
  }
});

/***/ }),

/***/ "./node_modules/radium/es/prefix-data/static.js":
/*!******************************************************!*\
  !*** ./node_modules/radium/es/prefix-data/static.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var inline_style_prefixer_static_plugins_calc__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inline-style-prefixer/static/plugins/calc */ "./node_modules/inline-style-prefixer/static/plugins/calc.js");
/* harmony import */ var inline_style_prefixer_static_plugins_calc__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_static_plugins_calc__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var inline_style_prefixer_static_plugins_crossFade__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! inline-style-prefixer/static/plugins/crossFade */ "./node_modules/inline-style-prefixer/static/plugins/crossFade.js");
/* harmony import */ var inline_style_prefixer_static_plugins_crossFade__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_static_plugins_crossFade__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var inline_style_prefixer_static_plugins_cursor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! inline-style-prefixer/static/plugins/cursor */ "./node_modules/inline-style-prefixer/static/plugins/cursor.js");
/* harmony import */ var inline_style_prefixer_static_plugins_cursor__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_static_plugins_cursor__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var inline_style_prefixer_static_plugins_filter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! inline-style-prefixer/static/plugins/filter */ "./node_modules/inline-style-prefixer/static/plugins/filter.js");
/* harmony import */ var inline_style_prefixer_static_plugins_filter__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_static_plugins_filter__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var inline_style_prefixer_static_plugins_flex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! inline-style-prefixer/static/plugins/flex */ "./node_modules/inline-style-prefixer/static/plugins/flex.js");
/* harmony import */ var inline_style_prefixer_static_plugins_flex__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_static_plugins_flex__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var inline_style_prefixer_static_plugins_flexboxIE__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! inline-style-prefixer/static/plugins/flexboxIE */ "./node_modules/inline-style-prefixer/static/plugins/flexboxIE.js");
/* harmony import */ var inline_style_prefixer_static_plugins_flexboxIE__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_static_plugins_flexboxIE__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var inline_style_prefixer_static_plugins_flexboxOld__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! inline-style-prefixer/static/plugins/flexboxOld */ "./node_modules/inline-style-prefixer/static/plugins/flexboxOld.js");
/* harmony import */ var inline_style_prefixer_static_plugins_flexboxOld__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_static_plugins_flexboxOld__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var inline_style_prefixer_static_plugins_gradient__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! inline-style-prefixer/static/plugins/gradient */ "./node_modules/inline-style-prefixer/static/plugins/gradient.js");
/* harmony import */ var inline_style_prefixer_static_plugins_gradient__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_static_plugins_gradient__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var inline_style_prefixer_static_plugins_imageSet__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! inline-style-prefixer/static/plugins/imageSet */ "./node_modules/inline-style-prefixer/static/plugins/imageSet.js");
/* harmony import */ var inline_style_prefixer_static_plugins_imageSet__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_static_plugins_imageSet__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var inline_style_prefixer_static_plugins_position__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! inline-style-prefixer/static/plugins/position */ "./node_modules/inline-style-prefixer/static/plugins/position.js");
/* harmony import */ var inline_style_prefixer_static_plugins_position__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_static_plugins_position__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var inline_style_prefixer_static_plugins_sizing__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! inline-style-prefixer/static/plugins/sizing */ "./node_modules/inline-style-prefixer/static/plugins/sizing.js");
/* harmony import */ var inline_style_prefixer_static_plugins_sizing__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_static_plugins_sizing__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var inline_style_prefixer_static_plugins_transition__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! inline-style-prefixer/static/plugins/transition */ "./node_modules/inline-style-prefixer/static/plugins/transition.js");
/* harmony import */ var inline_style_prefixer_static_plugins_transition__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_static_plugins_transition__WEBPACK_IMPORTED_MODULE_11__);












var w = ['Webkit'];
var m = ['Moz'];
var ms = ['ms'];
var wm = ['Webkit', 'Moz'];
var wms = ['Webkit', 'ms'];
var wmms = ['Webkit', 'Moz', 'ms'];

/* harmony default export */ __webpack_exports__["default"] = ({
  plugins: [inline_style_prefixer_static_plugins_calc__WEBPACK_IMPORTED_MODULE_0___default.a, inline_style_prefixer_static_plugins_crossFade__WEBPACK_IMPORTED_MODULE_1___default.a, inline_style_prefixer_static_plugins_cursor__WEBPACK_IMPORTED_MODULE_2___default.a, inline_style_prefixer_static_plugins_filter__WEBPACK_IMPORTED_MODULE_3___default.a, inline_style_prefixer_static_plugins_flex__WEBPACK_IMPORTED_MODULE_4___default.a, inline_style_prefixer_static_plugins_flexboxIE__WEBPACK_IMPORTED_MODULE_5___default.a, inline_style_prefixer_static_plugins_flexboxOld__WEBPACK_IMPORTED_MODULE_6___default.a, inline_style_prefixer_static_plugins_gradient__WEBPACK_IMPORTED_MODULE_7___default.a, inline_style_prefixer_static_plugins_imageSet__WEBPACK_IMPORTED_MODULE_8___default.a, inline_style_prefixer_static_plugins_position__WEBPACK_IMPORTED_MODULE_9___default.a, inline_style_prefixer_static_plugins_sizing__WEBPACK_IMPORTED_MODULE_10___default.a, inline_style_prefixer_static_plugins_transition__WEBPACK_IMPORTED_MODULE_11___default.a],
  prefixMap: {
    transform: wms,
    transformOrigin: wms,
    transformOriginX: wms,
    transformOriginY: wms,
    backfaceVisibility: w,
    perspective: w,
    perspectiveOrigin: w,
    transformStyle: w,
    transformOriginZ: w,
    animation: w,
    animationDelay: w,
    animationDirection: w,
    animationFillMode: w,
    animationDuration: w,
    animationIterationCount: w,
    animationName: w,
    animationPlayState: w,
    animationTimingFunction: w,
    appearance: wm,
    userSelect: wmms,
    fontKerning: w,
    textEmphasisPosition: w,
    textEmphasis: w,
    textEmphasisStyle: w,
    textEmphasisColor: w,
    boxDecorationBreak: w,
    clipPath: w,
    maskImage: w,
    maskMode: w,
    maskRepeat: w,
    maskPosition: w,
    maskClip: w,
    maskOrigin: w,
    maskSize: w,
    maskComposite: w,
    mask: w,
    maskBorderSource: w,
    maskBorderMode: w,
    maskBorderSlice: w,
    maskBorderWidth: w,
    maskBorderOutset: w,
    maskBorderRepeat: w,
    maskBorder: w,
    maskType: w,
    textDecorationStyle: wm,
    textDecorationSkip: wm,
    textDecorationLine: wm,
    textDecorationColor: wm,
    filter: w,
    fontFeatureSettings: wm,
    breakAfter: wmms,
    breakBefore: wmms,
    breakInside: wmms,
    columnCount: wm,
    columnFill: wm,
    columnGap: wm,
    columnRule: wm,
    columnRuleColor: wm,
    columnRuleStyle: wm,
    columnRuleWidth: wm,
    columns: wm,
    columnSpan: wm,
    columnWidth: wm,
    writingMode: wms,
    flex: wms,
    flexBasis: w,
    flexDirection: wms,
    flexGrow: w,
    flexFlow: wms,
    flexShrink: w,
    flexWrap: wms,
    alignContent: w,
    alignItems: w,
    alignSelf: w,
    justifyContent: w,
    order: w,
    transitionDelay: w,
    transitionDuration: w,
    transitionProperty: w,
    transitionTimingFunction: w,
    backdropFilter: w,
    scrollSnapType: wms,
    scrollSnapPointsX: wms,
    scrollSnapPointsY: wms,
    scrollSnapDestination: wms,
    scrollSnapCoordinate: wms,
    shapeImageThreshold: w,
    shapeImageMargin: w,
    shapeImageOutside: w,
    hyphens: wmms,
    flowInto: wms,
    flowFrom: wms,
    regionFragment: wms,
    boxSizing: m,
    textAlignLast: m,
    tabSize: m,
    wrapFlow: ms,
    wrapThrough: ms,
    wrapMargin: ms,
    touchAction: ms,
    gridTemplateColumns: ms,
    gridTemplateRows: ms,
    gridTemplateAreas: ms,
    gridTemplate: ms,
    gridAutoColumns: ms,
    gridAutoRows: ms,
    gridAutoFlow: ms,
    grid: ms,
    gridRowStart: ms,
    gridColumnStart: ms,
    gridRowEnd: ms,
    gridRow: ms,
    gridColumn: ms,
    gridColumnEnd: ms,
    gridColumnGap: ms,
    gridRowGap: ms,
    gridArea: ms,
    gridGap: ms,
    textSizeAdjust: wms,
    borderImage: w,
    borderImageOutset: w,
    borderImageRepeat: w,
    borderImageSlice: w,
    borderImageSource: w,
    borderImageWidth: w
  }
});

/***/ }),

/***/ "./node_modules/radium/es/prefixer.js":
/*!********************************************!*\
  !*** ./node_modules/radium/es/prefixer.js ***!
  \********************************************/
/*! exports provided: getPrefixedKeyframes, getPrefixedStyle */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPrefixedKeyframes", function() { return getPrefixedKeyframes; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPrefixedStyle", function() { return getPrefixedStyle; });
/* harmony import */ var inline_style_prefixer_static_createPrefixer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inline-style-prefixer/static/createPrefixer */ "./node_modules/inline-style-prefixer/static/createPrefixer.js");
/* harmony import */ var inline_style_prefixer_static_createPrefixer__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_static_createPrefixer__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var inline_style_prefixer_dynamic_createPrefixer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! inline-style-prefixer/dynamic/createPrefixer */ "./node_modules/inline-style-prefixer/dynamic/createPrefixer.js");
/* harmony import */ var inline_style_prefixer_dynamic_createPrefixer__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(inline_style_prefixer_dynamic_createPrefixer__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var exenv__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! exenv */ "./node_modules/exenv/index.js");
/* harmony import */ var exenv__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(exenv__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _prefix_data_static__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./prefix-data/static */ "./node_modules/radium/es/prefix-data/static.js");
/* harmony import */ var _prefix_data_dynamic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./prefix-data/dynamic */ "./node_modules/radium/es/prefix-data/dynamic.js");
/* harmony import */ var _camel_case_props_to_dash_case__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./camel-case-props-to-dash-case */ "./node_modules/radium/es/camel-case-props-to-dash-case.js");
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

/**
 * Based on https://github.com/jsstyles/css-vendor, but without having to
 * convert between different cases all the time.
 *
 * 
 */










var prefixAll = inline_style_prefixer_static_createPrefixer__WEBPACK_IMPORTED_MODULE_0___default()(_prefix_data_static__WEBPACK_IMPORTED_MODULE_3__["default"]);
var InlineStylePrefixer = inline_style_prefixer_dynamic_createPrefixer__WEBPACK_IMPORTED_MODULE_1___default()(_prefix_data_dynamic__WEBPACK_IMPORTED_MODULE_4__["default"], prefixAll);

function transformValues(style) {
  return Object.keys(style).reduce(function (newStyle, key) {
    var value = style[key];
    if (Array.isArray(value)) {
      value = value.join(';' + key + ':');
    } else if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && typeof value.toString === 'function') {
      value = value.toString();
    }

    newStyle[key] = value;
    return newStyle;
  }, {});
}

// Flatten prefixed values that are arrays to strings.
//
// We get prefixed styles back in the form of:
// - `display: "flex"` OR
// - `display: "-webkit-flex"` OR
// - `display: [/* ... */, "-webkit-flex", "flex"]
//
// The last form is problematic for eventual use in the browser and server
// render. More confusingly, we have to do **different** things on the
// browser and server (noted inline below).
//
// https://github.com/FormidableLabs/radium/issues/958
function flattenStyleValues(style) {
  return Object.keys(style).reduce(function (newStyle, key) {
    var val = style[key];
    if (Array.isArray(val)) {
      if (exenv__WEBPACK_IMPORTED_MODULE_2___default.a.canUseDOM) {
        // For the **browser**, when faced with multiple values, we just take
        // the **last** one, which is the original passed in value before
        // prefixing. This _should_ work, because `inline-style-prefixer`
        // we're just passing through what would happen without ISP.

        val = val[val.length - 1].toString();
      } else {
        // For the **server**, we just concatenate things together and convert
        // the style object values into a hacked-up string of like `display:
        // "-webkit-flex;display:flex"` that will SSR render correctly to like
        // `"display:-webkit-flex;display:flex"` but would otherwise be
        // totally invalid values.

        // We convert keys to dash-case only for the serialize values and
        // leave the real key camel-cased so it's as expected to React and
        // other parts of the processing chain.
        val = val.join(';' + Object(_camel_case_props_to_dash_case__WEBPACK_IMPORTED_MODULE_5__["camelCaseToDashCase"])(key) + ':');
      }
    }

    newStyle[key] = val;
    return newStyle;
  }, {});
}

var _hasWarnedAboutUserAgent = false;
var _lastUserAgent = void 0;
var _cachedPrefixer = void 0;

function getPrefixer(userAgent) {
  var actualUserAgent = userAgent || global && global.navigator && global.navigator.userAgent;

  if (true) {
    if (!actualUserAgent && !_hasWarnedAboutUserAgent) {
      /* eslint-disable no-console */
      console.warn('Radium: userAgent should be supplied for server-side rendering. See ' + 'https://github.com/FormidableLabs/radium/tree/master/docs/api#radium ' + 'for more information.');
      /* eslint-enable no-console */
      _hasWarnedAboutUserAgent = true;
    }
  }

  if ( false || !_cachedPrefixer || actualUserAgent !== _lastUserAgent) {
    if (actualUserAgent === 'all') {
      _cachedPrefixer = {
        prefix: prefixAll,
        prefixedKeyframes: 'keyframes'
      };
    } else {
      _cachedPrefixer = new InlineStylePrefixer({ userAgent: actualUserAgent });
    }
    _lastUserAgent = actualUserAgent;
  }

  return _cachedPrefixer;
}

function getPrefixedKeyframes(userAgent) {
  return getPrefixer(userAgent).prefixedKeyframes || 'keyframes';
}

// Returns a new style object with vendor prefixes added to property names and
// values.
function getPrefixedStyle(style, userAgent) {
  var styleWithFallbacks = transformValues(style);
  var prefixer = getPrefixer(userAgent);
  var prefixedStyle = prefixer.prefix(styleWithFallbacks);
  var flattenedStyle = flattenStyleValues(prefixedStyle);
  return flattenedStyle;
}
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js")))

/***/ }),

/***/ "./node_modules/radium/es/resolve-styles.js":
/*!**************************************************!*\
  !*** ./node_modules/radium/es/resolve-styles.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _append_important_to_each_value__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./append-important-to-each-value */ "./node_modules/radium/es/append-important-to-each-value.js");
/* harmony import */ var _css_rule_set_to_string__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./css-rule-set-to-string */ "./node_modules/radium/es/css-rule-set-to-string.js");
/* harmony import */ var _get_state__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./get-state */ "./node_modules/radium/es/get-state.js");
/* harmony import */ var _get_state_key__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./get-state-key */ "./node_modules/radium/es/get-state-key.js");
/* harmony import */ var _clean_state_key__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./clean-state-key */ "./node_modules/radium/es/clean-state-key.js");
/* harmony import */ var _get_radium_style_state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./get-radium-style-state */ "./node_modules/radium/es/get-radium-style-state.js");
/* harmony import */ var _hash__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./hash */ "./node_modules/radium/es/hash.js");
/* harmony import */ var _merge_styles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./merge-styles */ "./node_modules/radium/es/merge-styles.js");
/* harmony import */ var _plugins___WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./plugins/ */ "./node_modules/radium/es/plugins/index.js");
/* harmony import */ var exenv__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! exenv */ "./node_modules/exenv/index.js");
/* harmony import */ var exenv__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(exenv__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_10__);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };















var DEFAULT_CONFIG = {
  plugins: [_plugins___WEBPACK_IMPORTED_MODULE_8__["default"].mergeStyleArray, _plugins___WEBPACK_IMPORTED_MODULE_8__["default"].checkProps, _plugins___WEBPACK_IMPORTED_MODULE_8__["default"].resolveMediaQueries, _plugins___WEBPACK_IMPORTED_MODULE_8__["default"].resolveInteractionStyles, _plugins___WEBPACK_IMPORTED_MODULE_8__["default"].keyframes, _plugins___WEBPACK_IMPORTED_MODULE_8__["default"].visited, _plugins___WEBPACK_IMPORTED_MODULE_8__["default"].removeNestedStyles, _plugins___WEBPACK_IMPORTED_MODULE_8__["default"].prefix, _plugins___WEBPACK_IMPORTED_MODULE_8__["default"].checkProps]
};

// Gross
var globalState = {};

// Declare early for recursive helpers.
var resolveStyles = null;

var _shouldResolveStyles = function _shouldResolveStyles(component) {
  return component.type && !component.type._isRadiumEnhanced;
};

var _resolveChildren = function _resolveChildren(_ref) {
  var children = _ref.children,
      component = _ref.component,
      config = _ref.config,
      existingKeyMap = _ref.existingKeyMap,
      extraStateKeyMap = _ref.extraStateKeyMap;

  if (!children) {
    return children;
  }

  var childrenType = typeof children === 'undefined' ? 'undefined' : _typeof(children);

  if (childrenType === 'string' || childrenType === 'number') {
    // Don't do anything with a single primitive child
    return children;
  }

  if (childrenType === 'function') {
    // Wrap the function, resolving styles on the result
    return function () {
      var result = children.apply(this, arguments);

      if (react__WEBPACK_IMPORTED_MODULE_10___default.a.isValidElement(result)) {
        var _key = Object(_get_state_key__WEBPACK_IMPORTED_MODULE_3__["default"])(result);
        delete extraStateKeyMap[_key];

        var _resolveStyles = resolveStyles(component, result, config, existingKeyMap, true, extraStateKeyMap),
            _element = _resolveStyles.element;

        return _element;
      }

      return result;
    };
  }

  if (react__WEBPACK_IMPORTED_MODULE_10___default.a.Children.count(children) === 1 && children.type) {
    // If a React Element is an only child, don't wrap it in an array for
    // React.Children.map() for React.Children.only() compatibility.
    var onlyChild = react__WEBPACK_IMPORTED_MODULE_10___default.a.Children.only(children);
    var _key2 = Object(_get_state_key__WEBPACK_IMPORTED_MODULE_3__["default"])(onlyChild);
    delete extraStateKeyMap[_key2];

    var _resolveStyles2 = resolveStyles(component, onlyChild, config, existingKeyMap, true, extraStateKeyMap),
        _element2 = _resolveStyles2.element;

    return _element2;
  }

  return react__WEBPACK_IMPORTED_MODULE_10___default.a.Children.map(children, function (child) {
    if (react__WEBPACK_IMPORTED_MODULE_10___default.a.isValidElement(child)) {
      var _key3 = Object(_get_state_key__WEBPACK_IMPORTED_MODULE_3__["default"])(child);
      delete extraStateKeyMap[_key3];

      var _resolveStyles3 = resolveStyles(component, child, config, existingKeyMap, true, extraStateKeyMap),
          _element3 = _resolveStyles3.element;

      return _element3;
    }

    return child;
  });
};

// Recurse over props, just like children
var _resolveProps = function _resolveProps(_ref2) {
  var component = _ref2.component,
      config = _ref2.config,
      existingKeyMap = _ref2.existingKeyMap,
      props = _ref2.props,
      extraStateKeyMap = _ref2.extraStateKeyMap;

  var newProps = props;

  Object.keys(props).forEach(function (prop) {
    // We already recurse over children above
    if (prop === 'children') {
      return;
    }

    var propValue = props[prop];
    if (react__WEBPACK_IMPORTED_MODULE_10___default.a.isValidElement(propValue)) {
      var _key4 = Object(_get_state_key__WEBPACK_IMPORTED_MODULE_3__["default"])(propValue);
      delete extraStateKeyMap[_key4];
      newProps = _extends({}, newProps);

      var _resolveStyles4 = resolveStyles(component, propValue, config, existingKeyMap, true, extraStateKeyMap),
          _element4 = _resolveStyles4.element;

      newProps[prop] = _element4;
    }
  });

  return newProps;
};

var _buildGetKey = function _buildGetKey(_ref3) {
  var componentName = _ref3.componentName,
      existingKeyMap = _ref3.existingKeyMap,
      renderedElement = _ref3.renderedElement;

  // We need a unique key to correlate state changes due to user interaction
  // with the rendered element, so we know to apply the proper interactive
  // styles.
  var originalKey = Object(_get_state_key__WEBPACK_IMPORTED_MODULE_3__["default"])(renderedElement);
  var key = Object(_clean_state_key__WEBPACK_IMPORTED_MODULE_4__["default"])(originalKey);

  var alreadyGotKey = false;
  var getKey = function getKey() {
    if (alreadyGotKey) {
      return key;
    }

    alreadyGotKey = true;

    if (existingKeyMap[key]) {
      var elementName = void 0;
      if (typeof renderedElement.type === 'string') {
        elementName = renderedElement.type;
      } else if (renderedElement.type.constructor) {
        elementName = renderedElement.type.constructor.displayName || renderedElement.type.constructor.name;
      }

      throw new Error('Radium requires each element with interactive styles to have a unique ' + 'key, set using either the ref or key prop. ' + (originalKey ? 'Key "' + originalKey + '" is a duplicate.' : 'Multiple elements have no key specified.') + ' ' + 'Component: "' + componentName + '". ' + (elementName ? 'Element: "' + elementName + '".' : ''));
    }

    existingKeyMap[key] = true;

    return key;
  };

  return getKey;
};

var _setStyleState = function _setStyleState(component, key, stateKey, value) {
  if (!component._radiumIsMounted) {
    return;
  }

  var existing = Object(_get_radium_style_state__WEBPACK_IMPORTED_MODULE_5__["default"])(component);
  var state = { _radiumStyleState: _extends({}, existing) };

  state._radiumStyleState[key] = _extends({}, state._radiumStyleState[key]);
  state._radiumStyleState[key][stateKey] = value;

  component._lastRadiumState = state._radiumStyleState;
  component.setState(state);
};

var _runPlugins = function _runPlugins(_ref4) {
  var component = _ref4.component,
      config = _ref4.config,
      existingKeyMap = _ref4.existingKeyMap,
      props = _ref4.props,
      renderedElement = _ref4.renderedElement;

  // Don't run plugins if renderedElement is not a simple ReactDOMElement or has
  // no style.
  if (!react__WEBPACK_IMPORTED_MODULE_10___default.a.isValidElement(renderedElement) || typeof renderedElement.type !== 'string' || !props.style) {
    return props;
  }

  var newProps = props;

  var plugins = config.plugins || DEFAULT_CONFIG.plugins;

  var componentName = component.constructor.displayName || component.constructor.name;
  var getKey = _buildGetKey({
    renderedElement: renderedElement,
    existingKeyMap: existingKeyMap,
    componentName: componentName
  });
  var getComponentField = function getComponentField(key) {
    return component[key];
  };
  var getGlobalState = function getGlobalState(key) {
    return globalState[key];
  };
  var componentGetState = function componentGetState(stateKey, elementKey) {
    return Object(_get_state__WEBPACK_IMPORTED_MODULE_2__["default"])(component.state, elementKey || getKey(), stateKey);
  };
  var setState = function setState(stateKey, value, elementKey) {
    return _setStyleState(component, elementKey || getKey(), stateKey, value);
  };

  var addCSS = function addCSS(css) {
    var styleKeeper = component._radiumStyleKeeper || component.context._radiumStyleKeeper;
    if (!styleKeeper) {
      if (__isTestModeEnabled) {
        return {
          remove: function remove() {}
        };
      }

      throw new Error('To use plugins requiring `addCSS` (e.g. keyframes, media queries), ' + 'please wrap your application in the StyleRoot component. Component ' + 'name: `' + componentName + '`.');
    }

    return styleKeeper.addCSS(css);
  };

  var newStyle = props.style;

  plugins.forEach(function (plugin) {
    var result = plugin({
      ExecutionEnvironment: exenv__WEBPACK_IMPORTED_MODULE_9___default.a,
      addCSS: addCSS,
      appendImportantToEachValue: _append_important_to_each_value__WEBPACK_IMPORTED_MODULE_0__["default"],
      componentName: componentName,
      config: config,
      cssRuleSetToString: _css_rule_set_to_string__WEBPACK_IMPORTED_MODULE_1__["default"],
      getComponentField: getComponentField,
      getGlobalState: getGlobalState,
      getState: componentGetState,
      hash: _hash__WEBPACK_IMPORTED_MODULE_6__["default"],
      mergeStyles: _merge_styles__WEBPACK_IMPORTED_MODULE_7__["mergeStyles"],
      props: newProps,
      setState: setState,
      isNestedStyle: _merge_styles__WEBPACK_IMPORTED_MODULE_7__["isNestedStyle"],
      style: newStyle
    }) || {};

    newStyle = result.style || newStyle;

    newProps = result.props && Object.keys(result.props).length ? _extends({}, newProps, result.props) : newProps;

    var newComponentFields = result.componentFields || {};
    Object.keys(newComponentFields).forEach(function (fieldName) {
      component[fieldName] = newComponentFields[fieldName];
    });

    var newGlobalState = result.globalState || {};
    Object.keys(newGlobalState).forEach(function (key) {
      globalState[key] = newGlobalState[key];
    });
  });

  if (newStyle !== props.style) {
    newProps = _extends({}, newProps, { style: newStyle });
  }

  return newProps;
};

// Wrapper around React.cloneElement. To avoid processing the same element
// twice, whenever we clone an element add a special prop to make sure we don't
// process this element again.
var _cloneElement = function _cloneElement(renderedElement, newProps, newChildren) {
  // Only add flag if this is a normal DOM element
  if (typeof renderedElement.type === 'string') {
    newProps = _extends({}, newProps, { 'data-radium': true });
  }

  return react__WEBPACK_IMPORTED_MODULE_10___default.a.cloneElement(renderedElement, newProps, newChildren);
};

//
// The nucleus of Radium. resolveStyles is called on the rendered elements
// before they are returned in render. It iterates over the elements and
// children, rewriting props to add event handlers required to capture user
// interactions (e.g. mouse over). It also replaces the style prop because it
// adds in the various interaction styles (e.g. :hover).
//
/* eslint-disable max-params */
resolveStyles = function resolveStyles(component, // ReactComponent, flow+eslint complaining
renderedElement) {
  var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_CONFIG;
  var existingKeyMap = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
  var shouldCheckBeforeResolve = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
  var extraStateKeyMap = arguments[5];

  // The extraStateKeyMap is for determining which keys should be erased from
  // the state (i.e. which child components are unmounted and should no longer
  // have a style state).
  if (!extraStateKeyMap) {
    var state = Object(_get_radium_style_state__WEBPACK_IMPORTED_MODULE_5__["default"])(component);
    extraStateKeyMap = Object.keys(state).reduce(function (acc, key) {
      // 'main' is the auto-generated key when there is only one element with
      // interactive styles and if a custom key is not assigned. Because of
      // this, it is impossible to know which child is 'main', so we won't
      // count this key when generating our extraStateKeyMap.
      if (key !== 'main') {
        acc[key] = true;
      }
      return acc;
    }, {});
  }

  // ReactElement
  if (!renderedElement ||
  // Bail if we've already processed this element. This ensures that only the
  // owner of an element processes that element, since the owner's render
  // function will be called first (which will always be the case, since you
  // can't know what else to render until you render the parent component).
  renderedElement.props && renderedElement.props['data-radium'] ||
  // Bail if this element is a radium enhanced element, because if it is,
  // then it will take care of resolving its own styles.
  shouldCheckBeforeResolve && !_shouldResolveStyles(renderedElement)) {
    return { extraStateKeyMap: extraStateKeyMap, element: renderedElement };
  }

  var newChildren = _resolveChildren({
    children: renderedElement.props.children,
    component: component,
    config: config,
    existingKeyMap: existingKeyMap,
    extraStateKeyMap: extraStateKeyMap
  });

  var newProps = _resolveProps({
    component: component,
    config: config,
    existingKeyMap: existingKeyMap,
    extraStateKeyMap: extraStateKeyMap,
    props: renderedElement.props
  });

  newProps = _runPlugins({
    component: component,
    config: config,
    existingKeyMap: existingKeyMap,
    props: newProps,
    renderedElement: renderedElement
  });

  // If nothing changed, don't bother cloning the element. Might be a bit
  // wasteful, as we add the sentinal to stop double-processing when we clone.
  // Assume benign double-processing is better than unneeded cloning.
  if (newChildren === renderedElement.props.children && newProps === renderedElement.props) {
    return { extraStateKeyMap: extraStateKeyMap, element: renderedElement };
  }

  var element = _cloneElement(renderedElement, newProps !== renderedElement.props ? newProps : {}, newChildren);

  return { extraStateKeyMap: extraStateKeyMap, element: element };
};
/* eslint-enable max-params */

// Only for use by tests
var __isTestModeEnabled = false;
if (true) {
  resolveStyles.__clearStateForTests = function () {
    globalState = {};
  };
  resolveStyles.__setTestMode = function (isEnabled) {
    __isTestModeEnabled = isEnabled;
  };
}

/* harmony default export */ __webpack_exports__["default"] = (resolveStyles);

/***/ }),

/***/ "./node_modules/radium/es/style-keeper.js":
/*!************************************************!*\
  !*** ./node_modules/radium/es/style-keeper.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return StyleKeeper; });
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

var StyleKeeper = function () {
  function StyleKeeper(userAgent) {
    _classCallCheck(this, StyleKeeper);

    this._userAgent = userAgent;
    this._listeners = [];
    this._cssSet = {};
  }

  _createClass(StyleKeeper, [{
    key: 'subscribe',
    value: function subscribe(listener) {
      var _this = this;

      if (this._listeners.indexOf(listener) === -1) {
        this._listeners.push(listener);
      }

      return {
        // Must be fat arrow to capture `this`
        remove: function remove() {
          var listenerIndex = _this._listeners.indexOf(listener);
          if (listenerIndex > -1) {
            _this._listeners.splice(listenerIndex, 1);
          }
        }
      };
    }
  }, {
    key: 'addCSS',
    value: function addCSS(css) {
      var _this2 = this;

      if (!this._cssSet[css]) {
        this._cssSet[css] = true;
        this._emitChange();
      }

      return {
        // Must be fat arrow to capture `this`
        remove: function remove() {
          delete _this2._cssSet[css];
          _this2._emitChange();
        }
      };
    }
  }, {
    key: 'getCSS',
    value: function getCSS() {
      return Object.keys(this._cssSet).join('\n');
    }
  }, {
    key: '_emitChange',
    value: function _emitChange() {
      this._listeners.forEach(function (listener) {
        return listener();
      });
    }
  }]);

  return StyleKeeper;
}();



/***/ }),

/***/ "./node_modules/ramda/es/F.js":
/*!************************************!*\
  !*** ./node_modules/ramda/es/F.js ***!
  \************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);


/**
 * A function that always returns `false`. Any passed in parameters are ignored.
 *
 * @func
 * @memberOf R
 * @since v0.9.0
 * @category Function
 * @sig * -> Boolean
 * @param {*}
 * @return {Boolean}
 * @see R.T
 * @example
 *
 *      R.F(); //=> false
 */
var F = function () {
  return false;
};
/* harmony default export */ __webpack_exports__["default"] = (F);

/***/ }),

/***/ "./node_modules/ramda/es/T.js":
/*!************************************!*\
  !*** ./node_modules/ramda/es/T.js ***!
  \************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);


/**
 * A function that always returns `true`. Any passed in parameters are ignored.
 *
 * @func
 * @memberOf R
 * @since v0.9.0
 * @category Function
 * @sig * -> Boolean
 * @param {*}
 * @return {Boolean}
 * @see R.F
 * @example
 *
 *      R.T(); //=> true
 */
var T = function () {
  return true;
};
/* harmony default export */ __webpack_exports__["default"] = (T);

/***/ }),

/***/ "./node_modules/ramda/es/__.js":
/*!*************************************!*\
  !*** ./node_modules/ramda/es/__.js ***!
  \*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * A special placeholder value used to specify "gaps" within curried functions,
 * allowing partial application of any combination of arguments, regardless of
 * their positions.
 *
 * If `g` is a curried ternary function and `_` is `R.__`, the following are
 * equivalent:
 *
 *   - `g(1, 2, 3)`
 *   - `g(_, 2, 3)(1)`
 *   - `g(_, _, 3)(1)(2)`
 *   - `g(_, _, 3)(1, 2)`
 *   - `g(_, 2, _)(1, 3)`
 *   - `g(_, 2)(1)(3)`
 *   - `g(_, 2)(1, 3)`
 *   - `g(_, 2)(_, 3)(1)`
 *
 * @name __
 * @constant
 * @memberOf R
 * @since v0.6.0
 * @category Function
 * @example
 *
 *      const greet = R.replace('{name}', R.__, 'Hello, {name}!');
 *      greet('Alice'); //=> 'Hello, Alice!'
 */
/* harmony default export */ __webpack_exports__["default"] = ({ '@@functional/placeholder': true });

/***/ }),

/***/ "./node_modules/ramda/es/add.js":
/*!**************************************!*\
  !*** ./node_modules/ramda/es/add.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Adds two values.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Math
 * @sig Number -> Number -> Number
 * @param {Number} a
 * @param {Number} b
 * @return {Number}
 * @see R.subtract
 * @example
 *
 *      R.add(2, 3);       //=>  5
 *      R.add(7)(10);      //=> 17
 */
var add = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function add(a, b) {
  return Number(a) + Number(b);
});
/* harmony default export */ __webpack_exports__["default"] = (add);

/***/ }),

/***/ "./node_modules/ramda/es/addIndex.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/addIndex.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ "./node_modules/ramda/es/internal/_concat.js");
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curryN.js */ "./node_modules/ramda/es/curryN.js");




/**
 * Creates a new list iteration function from an existing one by adding two new
 * parameters to its callback function: the current index, and the entire list.
 *
 * This would turn, for instance, [`R.map`](#map) function into one that
 * more closely resembles `Array.prototype.map`. Note that this will only work
 * for functions in which the iteration callback function is the first
 * parameter, and where the list is the last parameter. (This latter might be
 * unimportant if the list parameter is not used.)
 *
 * @func
 * @memberOf R
 * @since v0.15.0
 * @category Function
 * @category List
 * @sig ((a ... -> b) ... -> [a] -> *) -> ((a ..., Int, [a] -> b) ... -> [a] -> *)
 * @param {Function} fn A list iteration function that does not pass index or list to its callback
 * @return {Function} An altered list iteration function that passes (item, index, list) to its callback
 * @example
 *
 *      const mapIndexed = R.addIndex(R.map);
 *      mapIndexed((val, idx) => idx + '-' + val, ['f', 'o', 'o', 'b', 'a', 'r']);
 *      //=> ['0-f', '1-o', '2-o', '3-b', '4-a', '5-r']
 */
var addIndex = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function addIndex(fn) {
  return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_2__["default"])(fn.length, function () {
    var idx = 0;
    var origFn = arguments[0];
    var list = arguments[arguments.length - 1];
    var args = Array.prototype.slice.call(arguments, 0);
    args[0] = function () {
      var result = origFn.apply(this, Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__["default"])(arguments, [idx, list]));
      idx += 1;
      return result;
    };
    return fn.apply(this, args);
  });
});
/* harmony default export */ __webpack_exports__["default"] = (addIndex);

/***/ }),

/***/ "./node_modules/ramda/es/adjust.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/adjust.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ "./node_modules/ramda/es/internal/_concat.js");
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");



/**
 * Applies a function to the value at the given index of an array, returning a
 * new copy of the array with the element at the given index replaced with the
 * result of the function application.
 *
 * @func
 * @memberOf R
 * @since v0.14.0
 * @category List
 * @sig Number -> (a -> a) -> [a] -> [a]
 * @param {Number} idx The index.
 * @param {Function} fn The function to apply.
 * @param {Array|Arguments} list An array-like object whose value
 *        at the supplied index will be replaced.
 * @return {Array} A copy of the supplied array-like object with
 *         the element at index `idx` replaced with the value
 *         returned by applying `fn` to the existing element.
 * @see R.update
 * @example
 *
 *      R.adjust(1, R.toUpper, ['a', 'b', 'c', 'd']);      //=> ['a', 'B', 'c', 'd']
 *      R.adjust(-1, R.toUpper, ['a', 'b', 'c', 'd']);     //=> ['a', 'b', 'c', 'D']
 * @symb R.adjust(-1, f, [a, b]) = [a, f(b)]
 * @symb R.adjust(0, f, [a, b]) = [f(a), b]
 */
var adjust = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function adjust(idx, fn, list) {
  if (idx >= list.length || idx < -list.length) {
    return list;
  }
  var start = idx < 0 ? list.length : 0;
  var _idx = start + idx;
  var _list = Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__["default"])(list);
  _list[_idx] = fn(list[_idx]);
  return _list;
});
/* harmony default export */ __webpack_exports__["default"] = (adjust);

/***/ }),

/***/ "./node_modules/ramda/es/all.js":
/*!**************************************!*\
  !*** ./node_modules/ramda/es/all.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ "./node_modules/ramda/es/internal/_dispatchable.js");
/* harmony import */ var _internal_xall_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xall.js */ "./node_modules/ramda/es/internal/_xall.js");




/**
 * Returns `true` if all elements of the list match the predicate, `false` if
 * there are any that don't.
 *
 * Dispatches to the `all` method of the second argument, if present.
 *
 * Acts as a transducer if a transformer is given in list position.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig (a -> Boolean) -> [a] -> Boolean
 * @param {Function} fn The predicate function.
 * @param {Array} list The array to consider.
 * @return {Boolean} `true` if the predicate is satisfied by every element, `false`
 *         otherwise.
 * @see R.any, R.none, R.transduce
 * @example
 *
 *      const equals3 = R.equals(3);
 *      R.all(equals3)([3, 3, 3, 3]); //=> true
 *      R.all(equals3)([3, 3, 1, 3]); //=> false
 */
var all = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/Object(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__["default"])(['all'], _internal_xall_js__WEBPACK_IMPORTED_MODULE_2__["default"], function all(fn, list) {
  var idx = 0;
  while (idx < list.length) {
    if (!fn(list[idx])) {
      return false;
    }
    idx += 1;
  }
  return true;
}));
/* harmony default export */ __webpack_exports__["default"] = (all);

/***/ }),

/***/ "./node_modules/ramda/es/allPass.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/allPass.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ "./node_modules/ramda/es/curryN.js");
/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./max.js */ "./node_modules/ramda/es/max.js");
/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pluck.js */ "./node_modules/ramda/es/pluck.js");
/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reduce.js */ "./node_modules/ramda/es/reduce.js");






/**
 * Takes a list of predicates and returns a predicate that returns true for a
 * given list of arguments if every one of the provided predicates is satisfied
 * by those arguments.
 *
 * The function returned is a curried function whose arity matches that of the
 * highest-arity predicate.
 *
 * @func
 * @memberOf R
 * @since v0.9.0
 * @category Logic
 * @sig [(*... -> Boolean)] -> (*... -> Boolean)
 * @param {Array} predicates An array of predicates to check
 * @return {Function} The combined predicate
 * @see R.anyPass
 * @example
 *
 *      const isQueen = R.propEq('rank', 'Q');
 *      const isSpade = R.propEq('suit', '♠︎');
 *      const isQueenOfSpades = R.allPass([isQueen, isSpade]);
 *
 *      isQueenOfSpades({rank: 'Q', suit: '♣︎'}); //=> false
 *      isQueenOfSpades({rank: 'Q', suit: '♠︎'}); //=> true
 */
var allPass = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function allPass(preds) {
  return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__["default"])(Object(_reduce_js__WEBPACK_IMPORTED_MODULE_4__["default"])(_max_js__WEBPACK_IMPORTED_MODULE_2__["default"], 0, Object(_pluck_js__WEBPACK_IMPORTED_MODULE_3__["default"])('length', preds)), function () {
    var idx = 0;
    var len = preds.length;
    while (idx < len) {
      if (!preds[idx].apply(this, arguments)) {
        return false;
      }
      idx += 1;
    }
    return true;
  });
});
/* harmony default export */ __webpack_exports__["default"] = (allPass);

/***/ }),

/***/ "./node_modules/ramda/es/always.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/always.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");


/**
 * Returns a function that always returns the given value. Note that for
 * non-primitives the value returned is a reference to the original value.
 *
 * This function is known as `const`, `constant`, or `K` (for K combinator) in
 * other languages and libraries.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Function
 * @sig a -> (* -> a)
 * @param {*} val The value to wrap in a function
 * @return {Function} A Function :: * -> val.
 * @example
 *
 *      const t = R.always('Tee');
 *      t(); //=> 'Tee'
 */
var always = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function always(val) {
  return function () {
    return val;
  };
});
/* harmony default export */ __webpack_exports__["default"] = (always);

/***/ }),

/***/ "./node_modules/ramda/es/and.js":
/*!**************************************!*\
  !*** ./node_modules/ramda/es/and.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Returns `true` if both arguments are `true`; `false` otherwise.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Logic
 * @sig a -> b -> a | b
 * @param {Any} a
 * @param {Any} b
 * @return {Any} the first argument if it is falsy, otherwise the second argument.
 * @see R.both
 * @example
 *
 *      R.and(true, true); //=> true
 *      R.and(true, false); //=> false
 *      R.and(false, true); //=> false
 *      R.and(false, false); //=> false
 */
var and = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function and(a, b) {
  return a && b;
});
/* harmony default export */ __webpack_exports__["default"] = (and);

/***/ }),

/***/ "./node_modules/ramda/es/any.js":
/*!**************************************!*\
  !*** ./node_modules/ramda/es/any.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ "./node_modules/ramda/es/internal/_dispatchable.js");
/* harmony import */ var _internal_xany_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xany.js */ "./node_modules/ramda/es/internal/_xany.js");




/**
 * Returns `true` if at least one of the elements of the list match the predicate,
 * `false` otherwise.
 *
 * Dispatches to the `any` method of the second argument, if present.
 *
 * Acts as a transducer if a transformer is given in list position.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig (a -> Boolean) -> [a] -> Boolean
 * @param {Function} fn The predicate function.
 * @param {Array} list The array to consider.
 * @return {Boolean} `true` if the predicate is satisfied by at least one element, `false`
 *         otherwise.
 * @see R.all, R.none, R.transduce
 * @example
 *
 *      const lessThan0 = R.flip(R.lt)(0);
 *      const lessThan2 = R.flip(R.lt)(2);
 *      R.any(lessThan0)([1, 2]); //=> false
 *      R.any(lessThan2)([1, 2]); //=> true
 */
var any = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/Object(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__["default"])(['any'], _internal_xany_js__WEBPACK_IMPORTED_MODULE_2__["default"], function any(fn, list) {
  var idx = 0;
  while (idx < list.length) {
    if (fn(list[idx])) {
      return true;
    }
    idx += 1;
  }
  return false;
}));
/* harmony default export */ __webpack_exports__["default"] = (any);

/***/ }),

/***/ "./node_modules/ramda/es/anyPass.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/anyPass.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ "./node_modules/ramda/es/curryN.js");
/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./max.js */ "./node_modules/ramda/es/max.js");
/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pluck.js */ "./node_modules/ramda/es/pluck.js");
/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reduce.js */ "./node_modules/ramda/es/reduce.js");






/**
 * Takes a list of predicates and returns a predicate that returns true for a
 * given list of arguments if at least one of the provided predicates is
 * satisfied by those arguments.
 *
 * The function returned is a curried function whose arity matches that of the
 * highest-arity predicate.
 *
 * @func
 * @memberOf R
 * @since v0.9.0
 * @category Logic
 * @sig [(*... -> Boolean)] -> (*... -> Boolean)
 * @param {Array} predicates An array of predicates to check
 * @return {Function} The combined predicate
 * @see R.allPass
 * @example
 *
 *      const isClub = R.propEq('suit', '♣');
 *      const isSpade = R.propEq('suit', '♠');
 *      const isBlackCard = R.anyPass([isClub, isSpade]);
 *
 *      isBlackCard({rank: '10', suit: '♣'}); //=> true
 *      isBlackCard({rank: 'Q', suit: '♠'}); //=> true
 *      isBlackCard({rank: 'Q', suit: '♦'}); //=> false
 */
var anyPass = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function anyPass(preds) {
  return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__["default"])(Object(_reduce_js__WEBPACK_IMPORTED_MODULE_4__["default"])(_max_js__WEBPACK_IMPORTED_MODULE_2__["default"], 0, Object(_pluck_js__WEBPACK_IMPORTED_MODULE_3__["default"])('length', preds)), function () {
    var idx = 0;
    var len = preds.length;
    while (idx < len) {
      if (preds[idx].apply(this, arguments)) {
        return true;
      }
      idx += 1;
    }
    return false;
  });
});
/* harmony default export */ __webpack_exports__["default"] = (anyPass);

/***/ }),

/***/ "./node_modules/ramda/es/ap.js":
/*!*************************************!*\
  !*** ./node_modules/ramda/es/ap.js ***!
  \*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ "./node_modules/ramda/es/internal/_concat.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_reduce.js */ "./node_modules/ramda/es/internal/_reduce.js");
/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./map.js */ "./node_modules/ramda/es/map.js");





/**
 * ap applies a list of functions to a list of values.
 *
 * Dispatches to the `ap` method of the second argument, if present. Also
 * treats curried functions as applicatives.
 *
 * @func
 * @memberOf R
 * @since v0.3.0
 * @category Function
 * @sig [a -> b] -> [a] -> [b]
 * @sig Apply f => f (a -> b) -> f a -> f b
 * @sig (r -> a -> b) -> (r -> a) -> (r -> b)
 * @param {*} applyF
 * @param {*} applyX
 * @return {*}
 * @example
 *
 *      R.ap([R.multiply(2), R.add(3)], [1,2,3]); //=> [2, 4, 6, 4, 5, 6]
 *      R.ap([R.concat('tasty '), R.toUpper], ['pizza', 'salad']); //=> ["tasty pizza", "tasty salad", "PIZZA", "SALAD"]
 *
 *      // R.ap can also be used as S combinator
 *      // when only two functions are passed
 *      R.ap(R.concat, R.toUpper)('Ramda') //=> 'RamdaRAMDA'
 * @symb R.ap([f, g], [a, b]) = [f(a), f(b), g(a), g(b)]
 */
var ap = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function ap(applyF, applyX) {
  return typeof applyX['fantasy-land/ap'] === 'function' ? applyX['fantasy-land/ap'](applyF) : typeof applyF.ap === 'function' ? applyF.ap(applyX) : typeof applyF === 'function' ? function (x) {
    return applyF(x)(applyX(x));
  } : Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_2__["default"])(function (acc, f) {
    return Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__["default"])(acc, Object(_map_js__WEBPACK_IMPORTED_MODULE_3__["default"])(f, applyX));
  }, [], applyF);
});
/* harmony default export */ __webpack_exports__["default"] = (ap);

/***/ }),

/***/ "./node_modules/ramda/es/aperture.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/aperture.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_aperture_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_aperture.js */ "./node_modules/ramda/es/internal/_aperture.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_dispatchable.js */ "./node_modules/ramda/es/internal/_dispatchable.js");
/* harmony import */ var _internal_xaperture_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_xaperture.js */ "./node_modules/ramda/es/internal/_xaperture.js");





/**
 * Returns a new list, composed of n-tuples of consecutive elements. If `n` is
 * greater than the length of the list, an empty list is returned.
 *
 * Acts as a transducer if a transformer is given in list position.
 *
 * @func
 * @memberOf R
 * @since v0.12.0
 * @category List
 * @sig Number -> [a] -> [[a]]
 * @param {Number} n The size of the tuples to create
 * @param {Array} list The list to split into `n`-length tuples
 * @return {Array} The resulting list of `n`-length tuples
 * @see R.transduce
 * @example
 *
 *      R.aperture(2, [1, 2, 3, 4, 5]); //=> [[1, 2], [2, 3], [3, 4], [4, 5]]
 *      R.aperture(3, [1, 2, 3, 4, 5]); //=> [[1, 2, 3], [2, 3, 4], [3, 4, 5]]
 *      R.aperture(7, [1, 2, 3, 4, 5]); //=> []
 */
var aperture = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])( /*#__PURE__*/Object(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_2__["default"])([], _internal_xaperture_js__WEBPACK_IMPORTED_MODULE_3__["default"], _internal_aperture_js__WEBPACK_IMPORTED_MODULE_0__["default"]));
/* harmony default export */ __webpack_exports__["default"] = (aperture);

/***/ }),

/***/ "./node_modules/ramda/es/append.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/append.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ "./node_modules/ramda/es/internal/_concat.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");



/**
 * Returns a new list containing the contents of the given list, followed by
 * the given element.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig a -> [a] -> [a]
 * @param {*} el The element to add to the end of the new list.
 * @param {Array} list The list of elements to add a new item to.
 *        list.
 * @return {Array} A new list containing the elements of the old list followed by `el`.
 * @see R.prepend
 * @example
 *
 *      R.append('tests', ['write', 'more']); //=> ['write', 'more', 'tests']
 *      R.append('tests', []); //=> ['tests']
 *      R.append(['tests'], ['write', 'more']); //=> ['write', 'more', ['tests']]
 */
var append = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function append(el, list) {
  return Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__["default"])(list, [el]);
});
/* harmony default export */ __webpack_exports__["default"] = (append);

/***/ }),

/***/ "./node_modules/ramda/es/apply.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/apply.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Applies function `fn` to the argument list `args`. This is useful for
 * creating a fixed-arity function from a variadic function. `fn` should be a
 * bound function if context is significant.
 *
 * @func
 * @memberOf R
 * @since v0.7.0
 * @category Function
 * @sig (*... -> a) -> [*] -> a
 * @param {Function} fn The function which will be called with `args`
 * @param {Array} args The arguments to call `fn` with
 * @return {*} result The result, equivalent to `fn(...args)`
 * @see R.call, R.unapply
 * @example
 *
 *      const nums = [1, 2, 3, -99, 42, 6, 7];
 *      R.apply(Math.max, nums); //=> 42
 * @symb R.apply(f, [a, b, c]) = f(a, b, c)
 */
var apply = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function apply(fn, args) {
  return fn.apply(this, args);
});
/* harmony default export */ __webpack_exports__["default"] = (apply);

/***/ }),

/***/ "./node_modules/ramda/es/applySpec.js":
/*!********************************************!*\
  !*** ./node_modules/ramda/es/applySpec.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _apply_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./apply.js */ "./node_modules/ramda/es/apply.js");
/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curryN.js */ "./node_modules/ramda/es/curryN.js");
/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./max.js */ "./node_modules/ramda/es/max.js");
/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pluck.js */ "./node_modules/ramda/es/pluck.js");
/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./reduce.js */ "./node_modules/ramda/es/reduce.js");
/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./keys.js */ "./node_modules/ramda/es/keys.js");
/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./values.js */ "./node_modules/ramda/es/values.js");









// Use custom mapValues function to avoid issues with specs that include a "map" key and R.map
// delegating calls to .map
function mapValues(fn, obj) {
  return Object(_keys_js__WEBPACK_IMPORTED_MODULE_6__["default"])(obj).reduce(function (acc, key) {
    acc[key] = fn(obj[key]);
    return acc;
  }, {});
}

/**
 * Given a spec object recursively mapping properties to functions, creates a
 * function producing an object of the same structure, by mapping each property
 * to the result of calling its associated function with the supplied arguments.
 *
 * @func
 * @memberOf R
 * @since v0.20.0
 * @category Function
 * @sig {k: ((a, b, ..., m) -> v)} -> ((a, b, ..., m) -> {k: v})
 * @param {Object} spec an object recursively mapping properties to functions for
 *        producing the values for these properties.
 * @return {Function} A function that returns an object of the same structure
 * as `spec', with each property set to the value returned by calling its
 * associated function with the supplied arguments.
 * @see R.converge, R.juxt
 * @example
 *
 *      const getMetrics = R.applySpec({
 *        sum: R.add,
 *        nested: { mul: R.multiply }
 *      });
 *      getMetrics(2, 4); // => { sum: 6, nested: { mul: 8 } }
 * @symb R.applySpec({ x: f, y: { z: g } })(a, b) = { x: f(a, b), y: { z: g(a, b) } }
 */
var applySpec = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function applySpec(spec) {
  spec = mapValues(function (v) {
    return typeof v == 'function' ? v : applySpec(v);
  }, spec);

  return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_2__["default"])(Object(_reduce_js__WEBPACK_IMPORTED_MODULE_5__["default"])(_max_js__WEBPACK_IMPORTED_MODULE_3__["default"], 0, Object(_pluck_js__WEBPACK_IMPORTED_MODULE_4__["default"])('length', Object(_values_js__WEBPACK_IMPORTED_MODULE_7__["default"])(spec))), function () {
    var args = arguments;
    return mapValues(function (f) {
      return Object(_apply_js__WEBPACK_IMPORTED_MODULE_1__["default"])(f, args);
    }, spec);
  });
});
/* harmony default export */ __webpack_exports__["default"] = (applySpec);

/***/ }),

/***/ "./node_modules/ramda/es/applyTo.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/applyTo.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Takes a value and applies a function to it.
 *
 * This function is also known as the `thrush` combinator.
 *
 * @func
 * @memberOf R
 * @since v0.25.0
 * @category Function
 * @sig a -> (a -> b) -> b
 * @param {*} x The value
 * @param {Function} f The function to apply
 * @return {*} The result of applying `f` to `x`
 * @example
 *
 *      const t42 = R.applyTo(42);
 *      t42(R.identity); //=> 42
 *      t42(R.add(1)); //=> 43
 */
var applyTo = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function applyTo(x, f) {
  return f(x);
});
/* harmony default export */ __webpack_exports__["default"] = (applyTo);

/***/ }),

/***/ "./node_modules/ramda/es/ascend.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/ascend.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");


/**
 * Makes an ascending comparator function out of a function that returns a value
 * that can be compared with `<` and `>`.
 *
 * @func
 * @memberOf R
 * @since v0.23.0
 * @category Function
 * @sig Ord b => (a -> b) -> a -> a -> Number
 * @param {Function} fn A function of arity one that returns a value that can be compared
 * @param {*} a The first item to be compared.
 * @param {*} b The second item to be compared.
 * @return {Number} `-1` if fn(a) < fn(b), `1` if fn(b) < fn(a), otherwise `0`
 * @see R.descend
 * @example
 *
 *      const byAge = R.ascend(R.prop('age'));
 *      const people = [
 *        { name: 'Emma', age: 70 },
 *        { name: 'Peter', age: 78 },
 *        { name: 'Mikhail', age: 62 },
 *      ];
 *      const peopleByYoungestFirst = R.sort(byAge, people);
 *        //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]
 */
var ascend = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function ascend(fn, a, b) {
  var aa = fn(a);
  var bb = fn(b);
  return aa < bb ? -1 : aa > bb ? 1 : 0;
});
/* harmony default export */ __webpack_exports__["default"] = (ascend);

/***/ }),

/***/ "./node_modules/ramda/es/assoc.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/assoc.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");


/**
 * Makes a shallow clone of an object, setting or overriding the specified
 * property with the given value. Note that this copies and flattens prototype
 * properties onto the new object as well. All non-primitive properties are
 * copied by reference.
 *
 * @func
 * @memberOf R
 * @since v0.8.0
 * @category Object
 * @sig String -> a -> {k: v} -> {k: v}
 * @param {String} prop The property name to set
 * @param {*} val The new value
 * @param {Object} obj The object to clone
 * @return {Object} A new object equivalent to the original except for the changed property.
 * @see R.dissoc, R.pick
 * @example
 *
 *      R.assoc('c', 3, {a: 1, b: 2}); //=> {a: 1, b: 2, c: 3}
 */
var assoc = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function assoc(prop, val, obj) {
  var result = {};
  for (var p in obj) {
    result[p] = obj[p];
  }
  result[prop] = val;
  return result;
});
/* harmony default export */ __webpack_exports__["default"] = (assoc);

/***/ }),

/***/ "./node_modules/ramda/es/assocPath.js":
/*!********************************************!*\
  !*** ./node_modules/ramda/es/assocPath.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");
/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ "./node_modules/ramda/es/internal/_has.js");
/* harmony import */ var _internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isArray.js */ "./node_modules/ramda/es/internal/_isArray.js");
/* harmony import */ var _internal_isInteger_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_isInteger.js */ "./node_modules/ramda/es/internal/_isInteger.js");
/* harmony import */ var _assoc_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./assoc.js */ "./node_modules/ramda/es/assoc.js");
/* harmony import */ var _isNil_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isNil.js */ "./node_modules/ramda/es/isNil.js");







/**
 * Makes a shallow clone of an object, setting or overriding the nodes required
 * to create the given path, and placing the specific value at the tail end of
 * that path. Note that this copies and flattens prototype properties onto the
 * new object as well. All non-primitive properties are copied by reference.
 *
 * @func
 * @memberOf R
 * @since v0.8.0
 * @category Object
 * @typedefn Idx = String | Int
 * @sig [Idx] -> a -> {a} -> {a}
 * @param {Array} path the path to set
 * @param {*} val The new value
 * @param {Object} obj The object to clone
 * @return {Object} A new object equivalent to the original except along the specified path.
 * @see R.dissocPath
 * @example
 *
 *      R.assocPath(['a', 'b', 'c'], 42, {a: {b: {c: 0}}}); //=> {a: {b: {c: 42}}}
 *
 *      // Any missing or non-object keys in path will be overridden
 *      R.assocPath(['a', 'b', 'c'], 42, {a: 5}); //=> {a: {b: {c: 42}}}
 */
var assocPath = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function assocPath(path, val, obj) {
  if (path.length === 0) {
    return val;
  }
  var idx = path[0];
  if (path.length > 1) {
    var nextObj = !Object(_isNil_js__WEBPACK_IMPORTED_MODULE_5__["default"])(obj) && Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__["default"])(idx, obj) ? obj[idx] : Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_3__["default"])(path[1]) ? [] : {};
    val = assocPath(Array.prototype.slice.call(path, 1), val, nextObj);
  }
  if (Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_3__["default"])(idx) && Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__["default"])(obj)) {
    var arr = [].concat(obj);
    arr[idx] = val;
    return arr;
  } else {
    return Object(_assoc_js__WEBPACK_IMPORTED_MODULE_4__["default"])(idx, val, obj);
  }
});
/* harmony default export */ __webpack_exports__["default"] = (assocPath);

/***/ }),

/***/ "./node_modules/ramda/es/binary.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/binary.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _nAry_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./nAry.js */ "./node_modules/ramda/es/nAry.js");



/**
 * Wraps a function of any arity (including nullary) in a function that accepts
 * exactly 2 parameters. Any extraneous parameters will not be passed to the
 * supplied function.
 *
 * @func
 * @memberOf R
 * @since v0.2.0
 * @category Function
 * @sig (* -> c) -> (a, b -> c)
 * @param {Function} fn The function to wrap.
 * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of
 *         arity 2.
 * @see R.nAry, R.unary
 * @example
 *
 *      const takesThreeArgs = function(a, b, c) {
 *        return [a, b, c];
 *      };
 *      takesThreeArgs.length; //=> 3
 *      takesThreeArgs(1, 2, 3); //=> [1, 2, 3]
 *
 *      const takesTwoArgs = R.binary(takesThreeArgs);
 *      takesTwoArgs.length; //=> 2
 *      // Only 2 arguments are passed to the wrapped function
 *      takesTwoArgs(1, 2, 3); //=> [1, 2, undefined]
 * @symb R.binary(f)(a, b, c) = f(a, b)
 */
var binary = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function binary(fn) {
  return Object(_nAry_js__WEBPACK_IMPORTED_MODULE_1__["default"])(2, fn);
});
/* harmony default export */ __webpack_exports__["default"] = (binary);

/***/ }),

/***/ "./node_modules/ramda/es/bind.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/bind.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ "./node_modules/ramda/es/internal/_arity.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");



/**
 * Creates a function that is bound to a context.
 * Note: `R.bind` does not provide the additional argument-binding capabilities of
 * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).
 *
 * @func
 * @memberOf R
 * @since v0.6.0
 * @category Function
 * @category Object
 * @sig (* -> *) -> {*} -> (* -> *)
 * @param {Function} fn The function to bind to context
 * @param {Object} thisObj The context to bind `fn` to
 * @return {Function} A function that will execute in the context of `thisObj`.
 * @see R.partial
 * @example
 *
 *      const log = R.bind(console.log, console);
 *      R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}
 *      // logs {a: 2}
 * @symb R.bind(f, o)(a, b) = f.call(o, a, b)
 */
var bind = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function bind(fn, thisObj) {
  return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__["default"])(fn.length, function () {
    return fn.apply(thisObj, arguments);
  });
});
/* harmony default export */ __webpack_exports__["default"] = (bind);

/***/ }),

/***/ "./node_modules/ramda/es/both.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/both.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isFunction.js */ "./node_modules/ramda/es/internal/_isFunction.js");
/* harmony import */ var _and_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./and.js */ "./node_modules/ramda/es/and.js");
/* harmony import */ var _lift_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lift.js */ "./node_modules/ramda/es/lift.js");





/**
 * A function which calls the two provided functions and returns the `&&`
 * of the results.
 * It returns the result of the first function if it is false-y and the result
 * of the second function otherwise. Note that this is short-circuited,
 * meaning that the second function will not be invoked if the first returns a
 * false-y value.
 *
 * In addition to functions, `R.both` also accepts any fantasy-land compatible
 * applicative functor.
 *
 * @func
 * @memberOf R
 * @since v0.12.0
 * @category Logic
 * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)
 * @param {Function} f A predicate
 * @param {Function} g Another predicate
 * @return {Function} a function that applies its arguments to `f` and `g` and `&&`s their outputs together.
 * @see R.and
 * @example
 *
 *      const gt10 = R.gt(R.__, 10)
 *      const lt20 = R.lt(R.__, 20)
 *      const f = R.both(gt10, lt20);
 *      f(15); //=> true
 *      f(30); //=> false
 *
 *      R.both(Maybe.Just(false), Maybe.Just(55)); // => Maybe.Just(false)
 *      R.both([false, false, 'a'], [11]); //=> [false, false, 11]
 */
var both = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function both(f, g) {
  return Object(_internal_isFunction_js__WEBPACK_IMPORTED_MODULE_1__["default"])(f) ? function _both() {
    return f.apply(this, arguments) && g.apply(this, arguments);
  } : Object(_lift_js__WEBPACK_IMPORTED_MODULE_3__["default"])(_and_js__WEBPACK_IMPORTED_MODULE_2__["default"])(f, g);
});
/* harmony default export */ __webpack_exports__["default"] = (both);

/***/ }),

/***/ "./node_modules/ramda/es/call.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/call.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _curry_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./curry.js */ "./node_modules/ramda/es/curry.js");


/**
 * Returns the result of calling its first argument with the remaining
 * arguments. This is occasionally useful as a converging function for
 * [`R.converge`](#converge): the first branch can produce a function while the
 * remaining branches produce values to be passed to that function as its
 * arguments.
 *
 * @func
 * @memberOf R
 * @since v0.9.0
 * @category Function
 * @sig (*... -> a),*... -> a
 * @param {Function} fn The function to apply to the remaining arguments.
 * @param {...*} args Any number of positional arguments.
 * @return {*}
 * @see R.apply
 * @example
 *
 *      R.call(R.add, 1, 2); //=> 3
 *
 *      const indentN = R.pipe(R.repeat(' '),
 *                           R.join(''),
 *                           R.replace(/^(?!$)/gm));
 *
 *      const format = R.converge(R.call, [
 *                                  R.pipe(R.prop('indent'), indentN),
 *                                  R.prop('value')
 *                              ]);
 *
 *      format({indent: 2, value: 'foo\nbar\nbaz\n'}); //=> '  foo\n  bar\n  baz\n'
 * @symb R.call(f, a, b) = f(a, b)
 */
var call = /*#__PURE__*/Object(_curry_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function call(fn) {
  return fn.apply(this, Array.prototype.slice.call(arguments, 1));
});
/* harmony default export */ __webpack_exports__["default"] = (call);

/***/ }),

/***/ "./node_modules/ramda/es/chain.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/chain.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ "./node_modules/ramda/es/internal/_dispatchable.js");
/* harmony import */ var _internal_makeFlat_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_makeFlat.js */ "./node_modules/ramda/es/internal/_makeFlat.js");
/* harmony import */ var _internal_xchain_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_xchain.js */ "./node_modules/ramda/es/internal/_xchain.js");
/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./map.js */ "./node_modules/ramda/es/map.js");






/**
 * `chain` maps a function over a list and concatenates the results. `chain`
 * is also known as `flatMap` in some libraries.
 *
 * Dispatches to the `chain` method of the second argument, if present,
 * according to the [FantasyLand Chain spec](https://github.com/fantasyland/fantasy-land#chain).
 *
 * If second argument is a function, `chain(f, g)(x)` is equivalent to `f(g(x), x)`.
 *
 * Acts as a transducer if a transformer is given in list position.
 *
 * @func
 * @memberOf R
 * @since v0.3.0
 * @category List
 * @sig Chain m => (a -> m b) -> m a -> m b
 * @param {Function} fn The function to map with
 * @param {Array} list The list to map over
 * @return {Array} The result of flat-mapping `list` with `fn`
 * @example
 *
 *      const duplicate = n => [n, n];
 *      R.chain(duplicate, [1, 2, 3]); //=> [1, 1, 2, 2, 3, 3]
 *
 *      R.chain(R.append, R.head)([1, 2, 3]); //=> [1, 2, 3, 1]
 */
var chain = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/Object(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__["default"])(['fantasy-land/chain', 'chain'], _internal_xchain_js__WEBPACK_IMPORTED_MODULE_3__["default"], function chain(fn, monad) {
  if (typeof monad === 'function') {
    return function (x) {
      return fn(monad(x))(x);
    };
  }
  return Object(_internal_makeFlat_js__WEBPACK_IMPORTED_MODULE_2__["default"])(false)(Object(_map_js__WEBPACK_IMPORTED_MODULE_4__["default"])(fn, monad));
}));
/* harmony default export */ __webpack_exports__["default"] = (chain);

/***/ }),

/***/ "./node_modules/ramda/es/clamp.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/clamp.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");


/**
 * Restricts a number to be within a range.
 *
 * Also works for other ordered types such as Strings and Dates.
 *
 * @func
 * @memberOf R
 * @since v0.20.0
 * @category Relation
 * @sig Ord a => a -> a -> a -> a
 * @param {Number} minimum The lower limit of the clamp (inclusive)
 * @param {Number} maximum The upper limit of the clamp (inclusive)
 * @param {Number} value Value to be clamped
 * @return {Number} Returns `minimum` when `val < minimum`, `maximum` when `val > maximum`, returns `val` otherwise
 * @example
 *
 *      R.clamp(1, 10, -5) // => 1
 *      R.clamp(1, 10, 15) // => 10
 *      R.clamp(1, 10, 4)  // => 4
 */
var clamp = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function clamp(min, max, value) {
  if (min > max) {
    throw new Error('min must not be greater than max in clamp(min, max, value)');
  }
  return value < min ? min : value > max ? max : value;
});
/* harmony default export */ __webpack_exports__["default"] = (clamp);

/***/ }),

/***/ "./node_modules/ramda/es/clone.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/clone.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_clone_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_clone.js */ "./node_modules/ramda/es/internal/_clone.js");
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");



/**
 * Creates a deep copy of the value which may contain (nested) `Array`s and
 * `Object`s, `Number`s, `String`s, `Boolean`s and `Date`s. `Function`s are
 * assigned by reference rather than copied
 *
 * Dispatches to a `clone` method if present.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Object
 * @sig {*} -> {*}
 * @param {*} value The object or array to clone
 * @return {*} A deeply cloned copy of `val`
 * @example
 *
 *      const objects = [{}, {}, {}];
 *      const objectsClone = R.clone(objects);
 *      objects === objectsClone; //=> false
 *      objects[0] === objectsClone[0]; //=> false
 */
var clone = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function clone(value) {
  return value != null && typeof value.clone === 'function' ? value.clone() : Object(_internal_clone_js__WEBPACK_IMPORTED_MODULE_0__["default"])(value, [], [], true);
});
/* harmony default export */ __webpack_exports__["default"] = (clone);

/***/ }),

/***/ "./node_modules/ramda/es/comparator.js":
/*!*********************************************!*\
  !*** ./node_modules/ramda/es/comparator.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");


/**
 * Makes a comparator function out of a function that reports whether the first
 * element is less than the second.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Function
 * @sig ((a, b) -> Boolean) -> ((a, b) -> Number)
 * @param {Function} pred A predicate function of arity two which will return `true` if the first argument
 * is less than the second, `false` otherwise
 * @return {Function} A Function :: a -> b -> Int that returns `-1` if a < b, `1` if b < a, otherwise `0`
 * @example
 *
 *      const byAge = R.comparator((a, b) => a.age < b.age);
 *      const people = [
 *        { name: 'Emma', age: 70 },
 *        { name: 'Peter', age: 78 },
 *        { name: 'Mikhail', age: 62 },
 *      ];
 *      const peopleByIncreasingAge = R.sort(byAge, people);
 *        //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]
 */
var comparator = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function comparator(pred) {
  return function (a, b) {
    return pred(a, b) ? -1 : pred(b, a) ? 1 : 0;
  };
});
/* harmony default export */ __webpack_exports__["default"] = (comparator);

/***/ }),

/***/ "./node_modules/ramda/es/complement.js":
/*!*********************************************!*\
  !*** ./node_modules/ramda/es/complement.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _lift_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lift.js */ "./node_modules/ramda/es/lift.js");
/* harmony import */ var _not_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./not.js */ "./node_modules/ramda/es/not.js");



/**
 * Takes a function `f` and returns a function `g` such that if called with the same arguments
 * when `f` returns a "truthy" value, `g` returns `false` and when `f` returns a "falsy" value `g` returns `true`.
 *
 * `R.complement` may be applied to any functor
 *
 * @func
 * @memberOf R
 * @since v0.12.0
 * @category Logic
 * @sig (*... -> *) -> (*... -> Boolean)
 * @param {Function} f
 * @return {Function}
 * @see R.not
 * @example
 *
 *      const isNotNil = R.complement(R.isNil);
 *      isNil(null); //=> true
 *      isNotNil(null); //=> false
 *      isNil(7); //=> false
 *      isNotNil(7); //=> true
 */
var complement = /*#__PURE__*/Object(_lift_js__WEBPACK_IMPORTED_MODULE_0__["default"])(_not_js__WEBPACK_IMPORTED_MODULE_1__["default"]);
/* harmony default export */ __webpack_exports__["default"] = (complement);

/***/ }),

/***/ "./node_modules/ramda/es/compose.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/compose.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return compose; });
/* harmony import */ var _pipe_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pipe.js */ "./node_modules/ramda/es/pipe.js");
/* harmony import */ var _reverse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reverse.js */ "./node_modules/ramda/es/reverse.js");



/**
 * Performs right-to-left function composition. The rightmost function may have
 * any arity; the remaining functions must be unary.
 *
 * **Note:** The result of compose is not automatically curried.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Function
 * @sig ((y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)) -> ((a, b, ..., n) -> z)
 * @param {...Function} ...functions The functions to compose
 * @return {Function}
 * @see R.pipe
 * @example
 *
 *      const classyGreeting = (firstName, lastName) => "The name's " + lastName + ", " + firstName + " " + lastName
 *      const yellGreeting = R.compose(R.toUpper, classyGreeting);
 *      yellGreeting('James', 'Bond'); //=> "THE NAME'S BOND, JAMES BOND"
 *
 *      R.compose(Math.abs, R.add(1), R.multiply(2))(-4) //=> 7
 *
 * @symb R.compose(f, g, h)(a, b) = f(g(h(a, b)))
 */
function compose() {
  if (arguments.length === 0) {
    throw new Error('compose requires at least one argument');
  }
  return _pipe_js__WEBPACK_IMPORTED_MODULE_0__["default"].apply(this, Object(_reverse_js__WEBPACK_IMPORTED_MODULE_1__["default"])(arguments));
}

/***/ }),

/***/ "./node_modules/ramda/es/composeK.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/composeK.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return composeK; });
/* harmony import */ var _chain_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./chain.js */ "./node_modules/ramda/es/chain.js");
/* harmony import */ var _compose_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./compose.js */ "./node_modules/ramda/es/compose.js");
/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./map.js */ "./node_modules/ramda/es/map.js");




/**
 * Returns the right-to-left Kleisli composition of the provided functions,
 * each of which must return a value of a type supported by [`chain`](#chain).
 *
 * `R.composeK(h, g, f)` is equivalent to `R.compose(R.chain(h), R.chain(g), f)`.
 *
 * @func
 * @memberOf R
 * @since v0.16.0
 * @category Function
 * @sig Chain m => ((y -> m z), (x -> m y), ..., (a -> m b)) -> (a -> m z)
 * @param {...Function} ...functions The functions to compose
 * @return {Function}
 * @see R.pipeK
 * @deprecated since v0.26.0
 * @example
 *
 *       //  get :: String -> Object -> Maybe *
 *       const get = R.curry((propName, obj) => Maybe(obj[propName]))
 *
 *       //  getStateCode :: Maybe String -> Maybe String
 *       const getStateCode = R.composeK(
 *         R.compose(Maybe.of, R.toUpper),
 *         get('state'),
 *         get('address'),
 *         get('user'),
 *       );
 *       getStateCode({"user":{"address":{"state":"ny"}}}); //=> Maybe.Just("NY")
 *       getStateCode({}); //=> Maybe.Nothing()
 * @symb R.composeK(f, g, h)(a) = R.chain(f, R.chain(g, h(a)))
 */
function composeK() {
  if (arguments.length === 0) {
    throw new Error('composeK requires at least one argument');
  }
  var init = Array.prototype.slice.call(arguments);
  var last = init.pop();
  return Object(_compose_js__WEBPACK_IMPORTED_MODULE_1__["default"])(_compose_js__WEBPACK_IMPORTED_MODULE_1__["default"].apply(this, Object(_map_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_chain_js__WEBPACK_IMPORTED_MODULE_0__["default"], init)), last);
}

/***/ }),

/***/ "./node_modules/ramda/es/composeP.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/composeP.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return composeP; });
/* harmony import */ var _pipeP_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pipeP.js */ "./node_modules/ramda/es/pipeP.js");
/* harmony import */ var _reverse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reverse.js */ "./node_modules/ramda/es/reverse.js");



/**
 * Performs right-to-left composition of one or more Promise-returning
 * functions. The rightmost function may have any arity; the remaining
 * functions must be unary.
 *
 * @func
 * @memberOf R
 * @since v0.10.0
 * @category Function
 * @sig ((y -> Promise z), (x -> Promise y), ..., (a -> Promise b)) -> (a -> Promise z)
 * @param {...Function} functions The functions to compose
 * @return {Function}
 * @see R.pipeP
 * @deprecated since v0.26.0
 * @example
 *
 *      const db = {
 *        users: {
 *          JOE: {
 *            name: 'Joe',
 *            followers: ['STEVE', 'SUZY']
 *          }
 *        }
 *      }
 *
 *      // We'll pretend to do a db lookup which returns a promise
 *      const lookupUser = (userId) => Promise.resolve(db.users[userId])
 *      const lookupFollowers = (user) => Promise.resolve(user.followers)
 *      lookupUser('JOE').then(lookupFollowers)
 *
 *      //  followersForUser :: String -> Promise [UserId]
 *      const followersForUser = R.composeP(lookupFollowers, lookupUser);
 *      followersForUser('JOE').then(followers => console.log('Followers:', followers))
 *      // Followers: ["STEVE","SUZY"]
 */
function composeP() {
  if (arguments.length === 0) {
    throw new Error('composeP requires at least one argument');
  }
  return _pipeP_js__WEBPACK_IMPORTED_MODULE_0__["default"].apply(this, Object(_reverse_js__WEBPACK_IMPORTED_MODULE_1__["default"])(arguments));
}

/***/ }),

/***/ "./node_modules/ramda/es/composeWith.js":
/*!**********************************************!*\
  !*** ./node_modules/ramda/es/composeWith.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _pipeWith_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pipeWith.js */ "./node_modules/ramda/es/pipeWith.js");
/* harmony import */ var _reverse_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reverse.js */ "./node_modules/ramda/es/reverse.js");




/**
 * Performs right-to-left function composition using transforming function. The rightmost function may have
 * any arity; the remaining functions must be unary.
 *
 * **Note:** The result of compose is not automatically curried.
 *
 * @func
 * @memberOf R
 * @category Function
 * @sig ((* -> *), [(y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)]) -> ((a, b, ..., n) -> z)
 * @param {...Function} ...functions The functions to compose
 * @return {Function}
 * @see R.compose, R.pipeWith
 * @example
 *
 *      const composeWhileNotNil = R.composeWith((f, res) => R.isNil(res) ? res : f(res));
 *
 *      composeWhileNotNil([R.inc, R.prop('age')])({age: 1}) //=> 2
 *      composeWhileNotNil([R.inc, R.prop('age')])({}) //=> undefined
 *
 * @symb R.composeWith(f)([g, h, i])(...args) = f(g, f(h, f(i, ...args)))
 */
var composeWith = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function composeWith(xf, list) {
  return _pipeWith_js__WEBPACK_IMPORTED_MODULE_1__["default"].apply(this, [xf, Object(_reverse_js__WEBPACK_IMPORTED_MODULE_2__["default"])(list)]);
});
/* harmony default export */ __webpack_exports__["default"] = (composeWith);

/***/ }),

/***/ "./node_modules/ramda/es/concat.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/concat.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isArray.js */ "./node_modules/ramda/es/internal/_isArray.js");
/* harmony import */ var _internal_isFunction_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isFunction.js */ "./node_modules/ramda/es/internal/_isFunction.js");
/* harmony import */ var _internal_isString_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_isString.js */ "./node_modules/ramda/es/internal/_isString.js");
/* harmony import */ var _toString_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./toString.js */ "./node_modules/ramda/es/toString.js");






/**
 * Returns the result of concatenating the given lists or strings.
 *
 * Note: `R.concat` expects both arguments to be of the same type,
 * unlike the native `Array.prototype.concat` method. It will throw
 * an error if you `concat` an Array with a non-Array value.
 *
 * Dispatches to the `concat` method of the first argument, if present.
 * Can also concatenate two members of a [fantasy-land
 * compatible semigroup](https://github.com/fantasyland/fantasy-land#semigroup).
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig [a] -> [a] -> [a]
 * @sig String -> String -> String
 * @param {Array|String} firstList The first list
 * @param {Array|String} secondList The second list
 * @return {Array|String} A list consisting of the elements of `firstList` followed by the elements of
 * `secondList`.
 *
 * @example
 *
 *      R.concat('ABC', 'DEF'); // 'ABCDEF'
 *      R.concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]
 *      R.concat([], []); //=> []
 */
var concat = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function concat(a, b) {
  if (Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_1__["default"])(a)) {
    if (Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_1__["default"])(b)) {
      return a.concat(b);
    }
    throw new TypeError(Object(_toString_js__WEBPACK_IMPORTED_MODULE_4__["default"])(b) + ' is not an array');
  }
  if (Object(_internal_isString_js__WEBPACK_IMPORTED_MODULE_3__["default"])(a)) {
    if (Object(_internal_isString_js__WEBPACK_IMPORTED_MODULE_3__["default"])(b)) {
      return a + b;
    }
    throw new TypeError(Object(_toString_js__WEBPACK_IMPORTED_MODULE_4__["default"])(b) + ' is not a string');
  }
  if (a != null && Object(_internal_isFunction_js__WEBPACK_IMPORTED_MODULE_2__["default"])(a['fantasy-land/concat'])) {
    return a['fantasy-land/concat'](b);
  }
  if (a != null && Object(_internal_isFunction_js__WEBPACK_IMPORTED_MODULE_2__["default"])(a.concat)) {
    return a.concat(b);
  }
  throw new TypeError(Object(_toString_js__WEBPACK_IMPORTED_MODULE_4__["default"])(a) + ' does not have a method named "concat" or "fantasy-land/concat"');
});
/* harmony default export */ __webpack_exports__["default"] = (concat);

/***/ }),

/***/ "./node_modules/ramda/es/cond.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/cond.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ "./node_modules/ramda/es/internal/_arity.js");
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./map.js */ "./node_modules/ramda/es/map.js");
/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./max.js */ "./node_modules/ramda/es/max.js");
/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reduce.js */ "./node_modules/ramda/es/reduce.js");






/**
 * Returns a function, `fn`, which encapsulates `if/else, if/else, ...` logic.
 * `R.cond` takes a list of [predicate, transformer] pairs. All of the arguments
 * to `fn` are applied to each of the predicates in turn until one returns a
 * "truthy" value, at which point `fn` returns the result of applying its
 * arguments to the corresponding transformer. If none of the predicates
 * matches, `fn` returns undefined.
 *
 * @func
 * @memberOf R
 * @since v0.6.0
 * @category Logic
 * @sig [[(*... -> Boolean),(*... -> *)]] -> (*... -> *)
 * @param {Array} pairs A list of [predicate, transformer]
 * @return {Function}
 * @see R.ifElse, R.unless, R.when
 * @example
 *
 *      const fn = R.cond([
 *        [R.equals(0),   R.always('water freezes at 0°C')],
 *        [R.equals(100), R.always('water boils at 100°C')],
 *        [R.T,           temp => 'nothing special happens at ' + temp + '°C']
 *      ]);
 *      fn(0); //=> 'water freezes at 0°C'
 *      fn(50); //=> 'nothing special happens at 50°C'
 *      fn(100); //=> 'water boils at 100°C'
 */
var cond = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function cond(pairs) {
  var arity = Object(_reduce_js__WEBPACK_IMPORTED_MODULE_4__["default"])(_max_js__WEBPACK_IMPORTED_MODULE_3__["default"], 0, Object(_map_js__WEBPACK_IMPORTED_MODULE_2__["default"])(function (pair) {
    return pair[0].length;
  }, pairs));
  return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__["default"])(arity, function () {
    var idx = 0;
    while (idx < pairs.length) {
      if (pairs[idx][0].apply(this, arguments)) {
        return pairs[idx][1].apply(this, arguments);
      }
      idx += 1;
    }
  });
});
/* harmony default export */ __webpack_exports__["default"] = (cond);

/***/ }),

/***/ "./node_modules/ramda/es/construct.js":
/*!********************************************!*\
  !*** ./node_modules/ramda/es/construct.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _constructN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constructN.js */ "./node_modules/ramda/es/constructN.js");



/**
 * Wraps a constructor function inside a curried function that can be called
 * with the same arguments and returns the same type.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Function
 * @sig (* -> {*}) -> (* -> {*})
 * @param {Function} fn The constructor function to wrap.
 * @return {Function} A wrapped, curried constructor function.
 * @see R.invoker
 * @example
 *
 *      // Constructor function
 *      function Animal(kind) {
 *        this.kind = kind;
 *      };
 *      Animal.prototype.sighting = function() {
 *        return "It's a " + this.kind + "!";
 *      }
 *
 *      const AnimalConstructor = R.construct(Animal)
 *
 *      // Notice we no longer need the 'new' keyword:
 *      AnimalConstructor('Pig'); //=> {"kind": "Pig", "sighting": function (){...}};
 *
 *      const animalTypes = ["Lion", "Tiger", "Bear"];
 *      const animalSighting = R.invoker(0, 'sighting');
 *      const sightNewAnimal = R.compose(animalSighting, AnimalConstructor);
 *      R.map(sightNewAnimal, animalTypes); //=> ["It's a Lion!", "It's a Tiger!", "It's a Bear!"]
 */
var construct = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function construct(Fn) {
  return Object(_constructN_js__WEBPACK_IMPORTED_MODULE_1__["default"])(Fn.length, Fn);
});
/* harmony default export */ __webpack_exports__["default"] = (construct);

/***/ }),

/***/ "./node_modules/ramda/es/constructN.js":
/*!*********************************************!*\
  !*** ./node_modules/ramda/es/constructN.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _curry_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curry.js */ "./node_modules/ramda/es/curry.js");
/* harmony import */ var _nAry_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nAry.js */ "./node_modules/ramda/es/nAry.js");




/**
 * Wraps a constructor function inside a curried function that can be called
 * with the same arguments and returns the same type. The arity of the function
 * returned is specified to allow using variadic constructor functions.
 *
 * @func
 * @memberOf R
 * @since v0.4.0
 * @category Function
 * @sig Number -> (* -> {*}) -> (* -> {*})
 * @param {Number} n The arity of the constructor function.
 * @param {Function} Fn The constructor function to wrap.
 * @return {Function} A wrapped, curried constructor function.
 * @example
 *
 *      // Variadic Constructor function
 *      function Salad() {
 *        this.ingredients = arguments;
 *      }
 *
 *      Salad.prototype.recipe = function() {
 *        const instructions = R.map(ingredient => 'Add a dollop of ' + ingredient, this.ingredients);
 *        return R.join('\n', instructions);
 *      };
 *
 *      const ThreeLayerSalad = R.constructN(3, Salad);
 *
 *      // Notice we no longer need the 'new' keyword, and the constructor is curried for 3 arguments.
 *      const salad = ThreeLayerSalad('Mayonnaise')('Potato Chips')('Ketchup');
 *
 *      console.log(salad.recipe());
 *      // Add a dollop of Mayonnaise
 *      // Add a dollop of Potato Chips
 *      // Add a dollop of Ketchup
 */
var constructN = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function constructN(n, Fn) {
  if (n > 10) {
    throw new Error('Constructor with greater than ten arguments');
  }
  if (n === 0) {
    return function () {
      return new Fn();
    };
  }
  return Object(_curry_js__WEBPACK_IMPORTED_MODULE_1__["default"])(Object(_nAry_js__WEBPACK_IMPORTED_MODULE_2__["default"])(n, function ($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
    switch (arguments.length) {
      case 1:
        return new Fn($0);
      case 2:
        return new Fn($0, $1);
      case 3:
        return new Fn($0, $1, $2);
      case 4:
        return new Fn($0, $1, $2, $3);
      case 5:
        return new Fn($0, $1, $2, $3, $4);
      case 6:
        return new Fn($0, $1, $2, $3, $4, $5);
      case 7:
        return new Fn($0, $1, $2, $3, $4, $5, $6);
      case 8:
        return new Fn($0, $1, $2, $3, $4, $5, $6, $7);
      case 9:
        return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8);
      case 10:
        return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8, $9);
    }
  }));
});
/* harmony default export */ __webpack_exports__["default"] = (constructN);

/***/ }),

/***/ "./node_modules/ramda/es/contains.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/contains.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includes.js */ "./node_modules/ramda/es/internal/_includes.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");



/**
 * Returns `true` if the specified value is equal, in [`R.equals`](#equals)
 * terms, to at least one element of the given list; `false` otherwise.
 * Works also with strings.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig a -> [a] -> Boolean
 * @param {Object} a The item to compare against.
 * @param {Array} list The array to consider.
 * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.
 * @see R.includes
 * @deprecated since v0.26.0
 * @example
 *
 *      R.contains(3, [1, 2, 3]); //=> true
 *      R.contains(4, [1, 2, 3]); //=> false
 *      R.contains({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true
 *      R.contains([42], [[42]]); //=> true
 *      R.contains('ba', 'banana'); //=>true
 */
var contains = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(_internal_includes_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
/* harmony default export */ __webpack_exports__["default"] = (contains);

/***/ }),

/***/ "./node_modules/ramda/es/converge.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/converge.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_map.js */ "./node_modules/ramda/es/internal/_map.js");
/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curryN.js */ "./node_modules/ramda/es/curryN.js");
/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./max.js */ "./node_modules/ramda/es/max.js");
/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pluck.js */ "./node_modules/ramda/es/pluck.js");
/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./reduce.js */ "./node_modules/ramda/es/reduce.js");







/**
 * Accepts a converging function and a list of branching functions and returns
 * a new function. The arity of the new function is the same as the arity of
 * the longest branching function. When invoked, this new function is applied
 * to some arguments, and each branching function is applied to those same
 * arguments. The results of each branching function are passed as arguments
 * to the converging function to produce the return value.
 *
 * @func
 * @memberOf R
 * @since v0.4.2
 * @category Function
 * @sig ((x1, x2, ...) -> z) -> [((a, b, ...) -> x1), ((a, b, ...) -> x2), ...] -> (a -> b -> ... -> z)
 * @param {Function} after A function. `after` will be invoked with the return values of
 *        `fn1` and `fn2` as its arguments.
 * @param {Array} functions A list of functions.
 * @return {Function} A new function.
 * @see R.useWith
 * @example
 *
 *      const average = R.converge(R.divide, [R.sum, R.length])
 *      average([1, 2, 3, 4, 5, 6, 7]) //=> 4
 *
 *      const strangeConcat = R.converge(R.concat, [R.toUpper, R.toLower])
 *      strangeConcat("Yodel") //=> "YODELyodel"
 *
 * @symb R.converge(f, [g, h])(a, b) = f(g(a, b), h(a, b))
 */
var converge = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function converge(after, fns) {
  return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_2__["default"])(Object(_reduce_js__WEBPACK_IMPORTED_MODULE_5__["default"])(_max_js__WEBPACK_IMPORTED_MODULE_3__["default"], 0, Object(_pluck_js__WEBPACK_IMPORTED_MODULE_4__["default"])('length', fns)), function () {
    var args = arguments;
    var context = this;
    return after.apply(context, Object(_internal_map_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function (fn) {
      return fn.apply(context, args);
    }, fns));
  });
});
/* harmony default export */ __webpack_exports__["default"] = (converge);

/***/ }),

/***/ "./node_modules/ramda/es/countBy.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/countBy.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _reduceBy_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reduceBy.js */ "./node_modules/ramda/es/reduceBy.js");


/**
 * Counts the elements of a list according to how many match each value of a
 * key generated by the supplied function. Returns an object mapping the keys
 * produced by `fn` to the number of occurrences in the list. Note that all
 * keys are coerced to strings because of how JavaScript objects work.
 *
 * Acts as a transducer if a transformer is given in list position.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Relation
 * @sig (a -> String) -> [a] -> {*}
 * @param {Function} fn The function used to map values to keys.
 * @param {Array} list The list to count elements from.
 * @return {Object} An object mapping keys to number of occurrences in the list.
 * @example
 *
 *      const numbers = [1.0, 1.1, 1.2, 2.0, 3.0, 2.2];
 *      R.countBy(Math.floor)(numbers);    //=> {'1': 3, '2': 2, '3': 1}
 *
 *      const letters = ['a', 'b', 'A', 'a', 'B', 'c'];
 *      R.countBy(R.toLower)(letters);   //=> {'a': 3, 'b': 2, 'c': 1}
 */
var countBy = /*#__PURE__*/Object(_reduceBy_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function (acc, elem) {
  return acc + 1;
}, 0);
/* harmony default export */ __webpack_exports__["default"] = (countBy);

/***/ }),

/***/ "./node_modules/ramda/es/curry.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/curry.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ "./node_modules/ramda/es/curryN.js");



/**
 * Returns a curried equivalent of the provided function. The curried function
 * has two unusual capabilities. First, its arguments needn't be provided one
 * at a time. If `f` is a ternary function and `g` is `R.curry(f)`, the
 * following are equivalent:
 *
 *   - `g(1)(2)(3)`
 *   - `g(1)(2, 3)`
 *   - `g(1, 2)(3)`
 *   - `g(1, 2, 3)`
 *
 * Secondly, the special placeholder value [`R.__`](#__) may be used to specify
 * "gaps", allowing partial application of any combination of arguments,
 * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),
 * the following are equivalent:
 *
 *   - `g(1, 2, 3)`
 *   - `g(_, 2, 3)(1)`
 *   - `g(_, _, 3)(1)(2)`
 *   - `g(_, _, 3)(1, 2)`
 *   - `g(_, 2)(1)(3)`
 *   - `g(_, 2)(1, 3)`
 *   - `g(_, 2)(_, 3)(1)`
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Function
 * @sig (* -> a) -> (* -> a)
 * @param {Function} fn The function to curry.
 * @return {Function} A new, curried function.
 * @see R.curryN, R.partial
 * @example
 *
 *      const addFourNumbers = (a, b, c, d) => a + b + c + d;
 *
 *      const curriedAddFourNumbers = R.curry(addFourNumbers);
 *      const f = curriedAddFourNumbers(1, 2);
 *      const g = f(3);
 *      g(4); //=> 10
 */
var curry = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function curry(fn) {
  return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__["default"])(fn.length, fn);
});
/* harmony default export */ __webpack_exports__["default"] = (curry);

/***/ }),

/***/ "./node_modules/ramda/es/curryN.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/curryN.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ "./node_modules/ramda/es/internal/_arity.js");
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_curryN_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_curryN.js */ "./node_modules/ramda/es/internal/_curryN.js");





/**
 * Returns a curried equivalent of the provided function, with the specified
 * arity. The curried function has two unusual capabilities. First, its
 * arguments needn't be provided one at a time. If `g` is `R.curryN(3, f)`, the
 * following are equivalent:
 *
 *   - `g(1)(2)(3)`
 *   - `g(1)(2, 3)`
 *   - `g(1, 2)(3)`
 *   - `g(1, 2, 3)`
 *
 * Secondly, the special placeholder value [`R.__`](#__) may be used to specify
 * "gaps", allowing partial application of any combination of arguments,
 * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),
 * the following are equivalent:
 *
 *   - `g(1, 2, 3)`
 *   - `g(_, 2, 3)(1)`
 *   - `g(_, _, 3)(1)(2)`
 *   - `g(_, _, 3)(1, 2)`
 *   - `g(_, 2)(1)(3)`
 *   - `g(_, 2)(1, 3)`
 *   - `g(_, 2)(_, 3)(1)`
 *
 * @func
 * @memberOf R
 * @since v0.5.0
 * @category Function
 * @sig Number -> (* -> a) -> (* -> a)
 * @param {Number} length The arity for the returned function.
 * @param {Function} fn The function to curry.
 * @return {Function} A new, curried function.
 * @see R.curry
 * @example
 *
 *      const sumArgs = (...args) => R.sum(args);
 *
 *      const curriedAddFourNumbers = R.curryN(4, sumArgs);
 *      const f = curriedAddFourNumbers(1, 2);
 *      const g = f(3);
 *      g(4); //=> 10
 */
var curryN = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_2__["default"])(function curryN(length, fn) {
  if (length === 1) {
    return Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__["default"])(fn);
  }
  return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__["default"])(length, Object(_internal_curryN_js__WEBPACK_IMPORTED_MODULE_3__["default"])(length, [], fn));
});
/* harmony default export */ __webpack_exports__["default"] = (curryN);

/***/ }),

/***/ "./node_modules/ramda/es/dec.js":
/*!**************************************!*\
  !*** ./node_modules/ramda/es/dec.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _add_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add.js */ "./node_modules/ramda/es/add.js");


/**
 * Decrements its argument.
 *
 * @func
 * @memberOf R
 * @since v0.9.0
 * @category Math
 * @sig Number -> Number
 * @param {Number} n
 * @return {Number} n - 1
 * @see R.inc
 * @example
 *
 *      R.dec(42); //=> 41
 */
var dec = /*#__PURE__*/Object(_add_js__WEBPACK_IMPORTED_MODULE_0__["default"])(-1);
/* harmony default export */ __webpack_exports__["default"] = (dec);

/***/ }),

/***/ "./node_modules/ramda/es/defaultTo.js":
/*!********************************************!*\
  !*** ./node_modules/ramda/es/defaultTo.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Returns the second argument if it is not `null`, `undefined` or `NaN`;
 * otherwise the first argument is returned.
 *
 * @func
 * @memberOf R
 * @since v0.10.0
 * @category Logic
 * @sig a -> b -> a | b
 * @param {a} default The default value.
 * @param {b} val `val` will be returned instead of `default` unless `val` is `null`, `undefined` or `NaN`.
 * @return {*} The second value if it is not `null`, `undefined` or `NaN`, otherwise the default value
 * @example
 *
 *      const defaultTo42 = R.defaultTo(42);
 *
 *      defaultTo42(null);  //=> 42
 *      defaultTo42(undefined);  //=> 42
 *      defaultTo42(false);  //=> false
 *      defaultTo42('Ramda');  //=> 'Ramda'
 *      // parseInt('string') results in NaN
 *      defaultTo42(parseInt('string')); //=> 42
 */
var defaultTo = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function defaultTo(d, v) {
  return v == null || v !== v ? d : v;
});
/* harmony default export */ __webpack_exports__["default"] = (defaultTo);

/***/ }),

/***/ "./node_modules/ramda/es/descend.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/descend.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");


/**
 * Makes a descending comparator function out of a function that returns a value
 * that can be compared with `<` and `>`.
 *
 * @func
 * @memberOf R
 * @since v0.23.0
 * @category Function
 * @sig Ord b => (a -> b) -> a -> a -> Number
 * @param {Function} fn A function of arity one that returns a value that can be compared
 * @param {*} a The first item to be compared.
 * @param {*} b The second item to be compared.
 * @return {Number} `-1` if fn(a) > fn(b), `1` if fn(b) > fn(a), otherwise `0`
 * @see R.ascend
 * @example
 *
 *      const byAge = R.descend(R.prop('age'));
 *      const people = [
 *        { name: 'Emma', age: 70 },
 *        { name: 'Peter', age: 78 },
 *        { name: 'Mikhail', age: 62 },
 *      ];
 *      const peopleByOldestFirst = R.sort(byAge, people);
 *        //=> [{ name: 'Peter', age: 78 }, { name: 'Emma', age: 70 }, { name: 'Mikhail', age: 62 }]
 */
var descend = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function descend(fn, a, b) {
  var aa = fn(a);
  var bb = fn(b);
  return aa > bb ? -1 : aa < bb ? 1 : 0;
});
/* harmony default export */ __webpack_exports__["default"] = (descend);

/***/ }),

/***/ "./node_modules/ramda/es/difference.js":
/*!*********************************************!*\
  !*** ./node_modules/ramda/es/difference.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_Set_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_Set.js */ "./node_modules/ramda/es/internal/_Set.js");



/**
 * Finds the set (i.e. no duplicates) of all elements in the first list not
 * contained in the second list. Objects and Arrays are compared in terms of
 * value equality, not reference equality.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Relation
 * @sig [*] -> [*] -> [*]
 * @param {Array} list1 The first list.
 * @param {Array} list2 The second list.
 * @return {Array} The elements in `list1` that are not in `list2`.
 * @see R.differenceWith, R.symmetricDifference, R.symmetricDifferenceWith, R.without
 * @example
 *
 *      R.difference([1,2,3,4], [7,6,5,4,3]); //=> [1,2]
 *      R.difference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5]
 *      R.difference([{a: 1}, {b: 2}], [{a: 1}, {c: 3}]) //=> [{b: 2}]
 */
var difference = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function difference(first, second) {
  var out = [];
  var idx = 0;
  var firstLen = first.length;
  var secondLen = second.length;
  var toFilterOut = new _internal_Set_js__WEBPACK_IMPORTED_MODULE_1__["default"]();

  for (var i = 0; i < secondLen; i += 1) {
    toFilterOut.add(second[i]);
  }

  while (idx < firstLen) {
    if (toFilterOut.add(first[idx])) {
      out[out.length] = first[idx];
    }
    idx += 1;
  }
  return out;
});
/* harmony default export */ __webpack_exports__["default"] = (difference);

/***/ }),

/***/ "./node_modules/ramda/es/differenceWith.js":
/*!*************************************************!*\
  !*** ./node_modules/ramda/es/differenceWith.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includesWith.js */ "./node_modules/ramda/es/internal/_includesWith.js");
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");



/**
 * Finds the set (i.e. no duplicates) of all elements in the first list not
 * contained in the second list. Duplication is determined according to the
 * value returned by applying the supplied predicate to two list elements.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Relation
 * @sig ((a, a) -> Boolean) -> [a] -> [a] -> [a]
 * @param {Function} pred A predicate used to test whether two items are equal.
 * @param {Array} list1 The first list.
 * @param {Array} list2 The second list.
 * @return {Array} The elements in `list1` that are not in `list2`.
 * @see R.difference, R.symmetricDifference, R.symmetricDifferenceWith
 * @example
 *
 *      const cmp = (x, y) => x.a === y.a;
 *      const l1 = [{a: 1}, {a: 2}, {a: 3}];
 *      const l2 = [{a: 3}, {a: 4}];
 *      R.differenceWith(cmp, l1, l2); //=> [{a: 1}, {a: 2}]
 */
var differenceWith = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function differenceWith(pred, first, second) {
  var out = [];
  var idx = 0;
  var firstLen = first.length;
  while (idx < firstLen) {
    if (!Object(_internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__["default"])(pred, first[idx], second) && !Object(_internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__["default"])(pred, first[idx], out)) {
      out.push(first[idx]);
    }
    idx += 1;
  }
  return out;
});
/* harmony default export */ __webpack_exports__["default"] = (differenceWith);

/***/ }),

/***/ "./node_modules/ramda/es/dissoc.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/dissoc.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Returns a new object that does not contain a `prop` property.
 *
 * @func
 * @memberOf R
 * @since v0.10.0
 * @category Object
 * @sig String -> {k: v} -> {k: v}
 * @param {String} prop The name of the property to dissociate
 * @param {Object} obj The object to clone
 * @return {Object} A new object equivalent to the original but without the specified property
 * @see R.assoc, R.omit
 * @example
 *
 *      R.dissoc('b', {a: 1, b: 2, c: 3}); //=> {a: 1, c: 3}
 */
var dissoc = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function dissoc(prop, obj) {
  var result = {};
  for (var p in obj) {
    result[p] = obj[p];
  }
  delete result[prop];
  return result;
});
/* harmony default export */ __webpack_exports__["default"] = (dissoc);

/***/ }),

/***/ "./node_modules/ramda/es/dissocPath.js":
/*!*********************************************!*\
  !*** ./node_modules/ramda/es/dissocPath.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isInteger.js */ "./node_modules/ramda/es/internal/_isInteger.js");
/* harmony import */ var _internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isArray.js */ "./node_modules/ramda/es/internal/_isArray.js");
/* harmony import */ var _assoc_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./assoc.js */ "./node_modules/ramda/es/assoc.js");
/* harmony import */ var _dissoc_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dissoc.js */ "./node_modules/ramda/es/dissoc.js");
/* harmony import */ var _remove_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./remove.js */ "./node_modules/ramda/es/remove.js");
/* harmony import */ var _update_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./update.js */ "./node_modules/ramda/es/update.js");








/**
 * Makes a shallow clone of an object, omitting the property at the given path.
 * Note that this copies and flattens prototype properties onto the new object
 * as well. All non-primitive properties are copied by reference.
 *
 * @func
 * @memberOf R
 * @since v0.11.0
 * @category Object
 * @typedefn Idx = String | Int
 * @sig [Idx] -> {k: v} -> {k: v}
 * @param {Array} path The path to the value to omit
 * @param {Object} obj The object to clone
 * @return {Object} A new object without the property at path
 * @see R.assocPath
 * @example
 *
 *      R.dissocPath(['a', 'b', 'c'], {a: {b: {c: 42}}}); //=> {a: {b: {}}}
 */
var dissocPath = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function dissocPath(path, obj) {
  switch (path.length) {
    case 0:
      return obj;
    case 1:
      return Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__["default"])(path[0]) && Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__["default"])(obj) ? Object(_remove_js__WEBPACK_IMPORTED_MODULE_5__["default"])(path[0], 1, obj) : Object(_dissoc_js__WEBPACK_IMPORTED_MODULE_4__["default"])(path[0], obj);
    default:
      var head = path[0];
      var tail = Array.prototype.slice.call(path, 1);
      if (obj[head] == null) {
        return obj;
      } else if (Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__["default"])(head) && Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__["default"])(obj)) {
        return Object(_update_js__WEBPACK_IMPORTED_MODULE_6__["default"])(head, dissocPath(tail, obj[head]), obj);
      } else {
        return Object(_assoc_js__WEBPACK_IMPORTED_MODULE_3__["default"])(head, dissocPath(tail, obj[head]), obj);
      }
  }
});
/* harmony default export */ __webpack_exports__["default"] = (dissocPath);

/***/ }),

/***/ "./node_modules/ramda/es/divide.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/divide.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Divides two numbers. Equivalent to `a / b`.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Math
 * @sig Number -> Number -> Number
 * @param {Number} a The first value.
 * @param {Number} b The second value.
 * @return {Number} The result of `a / b`.
 * @see R.multiply
 * @example
 *
 *      R.divide(71, 100); //=> 0.71
 *
 *      const half = R.divide(R.__, 2);
 *      half(42); //=> 21
 *
 *      const reciprocal = R.divide(1);
 *      reciprocal(4);   //=> 0.25
 */
var divide = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function divide(a, b) {
  return a / b;
});
/* harmony default export */ __webpack_exports__["default"] = (divide);

/***/ }),

/***/ "./node_modules/ramda/es/drop.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/drop.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ "./node_modules/ramda/es/internal/_dispatchable.js");
/* harmony import */ var _internal_xdrop_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xdrop.js */ "./node_modules/ramda/es/internal/_xdrop.js");
/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./slice.js */ "./node_modules/ramda/es/slice.js");





/**
 * Returns all but the first `n` elements of the given list, string, or
 * transducer/transformer (or object with a `drop` method).
 *
 * Dispatches to the `drop` method of the second argument, if present.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig Number -> [a] -> [a]
 * @sig Number -> String -> String
 * @param {Number} n
 * @param {*} list
 * @return {*} A copy of list without the first `n` elements
 * @see R.take, R.transduce, R.dropLast, R.dropWhile
 * @example
 *
 *      R.drop(1, ['foo', 'bar', 'baz']); //=> ['bar', 'baz']
 *      R.drop(2, ['foo', 'bar', 'baz']); //=> ['baz']
 *      R.drop(3, ['foo', 'bar', 'baz']); //=> []
 *      R.drop(4, ['foo', 'bar', 'baz']); //=> []
 *      R.drop(3, 'ramda');               //=> 'da'
 */
var drop = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/Object(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__["default"])(['drop'], _internal_xdrop_js__WEBPACK_IMPORTED_MODULE_2__["default"], function drop(n, xs) {
  return Object(_slice_js__WEBPACK_IMPORTED_MODULE_3__["default"])(Math.max(0, n), Infinity, xs);
}));
/* harmony default export */ __webpack_exports__["default"] = (drop);

/***/ }),

/***/ "./node_modules/ramda/es/dropLast.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/dropLast.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ "./node_modules/ramda/es/internal/_dispatchable.js");
/* harmony import */ var _internal_dropLast_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_dropLast.js */ "./node_modules/ramda/es/internal/_dropLast.js");
/* harmony import */ var _internal_xdropLast_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_xdropLast.js */ "./node_modules/ramda/es/internal/_xdropLast.js");





/**
 * Returns a list containing all but the last `n` elements of the given `list`.
 *
 * Acts as a transducer if a transformer is given in list position.
 *
 * @func
 * @memberOf R
 * @since v0.16.0
 * @category List
 * @sig Number -> [a] -> [a]
 * @sig Number -> String -> String
 * @param {Number} n The number of elements of `list` to skip.
 * @param {Array} list The list of elements to consider.
 * @return {Array} A copy of the list with only the first `list.length - n` elements
 * @see R.takeLast, R.drop, R.dropWhile, R.dropLastWhile
 * @example
 *
 *      R.dropLast(1, ['foo', 'bar', 'baz']); //=> ['foo', 'bar']
 *      R.dropLast(2, ['foo', 'bar', 'baz']); //=> ['foo']
 *      R.dropLast(3, ['foo', 'bar', 'baz']); //=> []
 *      R.dropLast(4, ['foo', 'bar', 'baz']); //=> []
 *      R.dropLast(3, 'ramda');               //=> 'ra'
 */
var dropLast = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/Object(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__["default"])([], _internal_xdropLast_js__WEBPACK_IMPORTED_MODULE_3__["default"], _internal_dropLast_js__WEBPACK_IMPORTED_MODULE_2__["default"]));
/* harmony default export */ __webpack_exports__["default"] = (dropLast);

/***/ }),

/***/ "./node_modules/ramda/es/dropLastWhile.js":
/*!************************************************!*\
  !*** ./node_modules/ramda/es/dropLastWhile.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ "./node_modules/ramda/es/internal/_dispatchable.js");
/* harmony import */ var _internal_dropLastWhile_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_dropLastWhile.js */ "./node_modules/ramda/es/internal/_dropLastWhile.js");
/* harmony import */ var _internal_xdropLastWhile_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_xdropLastWhile.js */ "./node_modules/ramda/es/internal/_xdropLastWhile.js");





/**
 * Returns a new list excluding all the tailing elements of a given list which
 * satisfy the supplied predicate function. It passes each value from the right
 * to the supplied predicate function, skipping elements until the predicate
 * function returns a `falsy` value. The predicate function is applied to one argument:
 * *(value)*.
 *
 * Acts as a transducer if a transformer is given in list position.
 *
 * @func
 * @memberOf R
 * @since v0.16.0
 * @category List
 * @sig (a -> Boolean) -> [a] -> [a]
 * @sig (a -> Boolean) -> String -> String
 * @param {Function} predicate The function to be called on each element
 * @param {Array} xs The collection to iterate over.
 * @return {Array} A new array without any trailing elements that return `falsy` values from the `predicate`.
 * @see R.takeLastWhile, R.addIndex, R.drop, R.dropWhile
 * @example
 *
 *      const lteThree = x => x <= 3;
 *
 *      R.dropLastWhile(lteThree, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3, 4]
 *
 *      R.dropLastWhile(x => x !== 'd' , 'Ramda'); //=> 'Ramd'
 */
var dropLastWhile = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/Object(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__["default"])([], _internal_xdropLastWhile_js__WEBPACK_IMPORTED_MODULE_3__["default"], _internal_dropLastWhile_js__WEBPACK_IMPORTED_MODULE_2__["default"]));
/* harmony default export */ __webpack_exports__["default"] = (dropLastWhile);

/***/ }),

/***/ "./node_modules/ramda/es/dropRepeats.js":
/*!**********************************************!*\
  !*** ./node_modules/ramda/es/dropRepeats.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ "./node_modules/ramda/es/internal/_dispatchable.js");
/* harmony import */ var _internal_xdropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xdropRepeatsWith.js */ "./node_modules/ramda/es/internal/_xdropRepeatsWith.js");
/* harmony import */ var _dropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dropRepeatsWith.js */ "./node_modules/ramda/es/dropRepeatsWith.js");
/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./equals.js */ "./node_modules/ramda/es/equals.js");






/**
 * Returns a new list without any consecutively repeating elements.
 * [`R.equals`](#equals) is used to determine equality.
 *
 * Acts as a transducer if a transformer is given in list position.
 *
 * @func
 * @memberOf R
 * @since v0.14.0
 * @category List
 * @sig [a] -> [a]
 * @param {Array} list The array to consider.
 * @return {Array} `list` without repeating elements.
 * @see R.transduce
 * @example
 *
 *     R.dropRepeats([1, 1, 1, 2, 3, 4, 4, 2, 2]); //=> [1, 2, 3, 4, 2]
 */
var dropRepeats = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/Object(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__["default"])([], /*#__PURE__*/Object(_internal_xdropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_equals_js__WEBPACK_IMPORTED_MODULE_4__["default"]), /*#__PURE__*/Object(_dropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_3__["default"])(_equals_js__WEBPACK_IMPORTED_MODULE_4__["default"])));
/* harmony default export */ __webpack_exports__["default"] = (dropRepeats);

/***/ }),

/***/ "./node_modules/ramda/es/dropRepeatsWith.js":
/*!**************************************************!*\
  !*** ./node_modules/ramda/es/dropRepeatsWith.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ "./node_modules/ramda/es/internal/_dispatchable.js");
/* harmony import */ var _internal_xdropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xdropRepeatsWith.js */ "./node_modules/ramda/es/internal/_xdropRepeatsWith.js");
/* harmony import */ var _last_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./last.js */ "./node_modules/ramda/es/last.js");





/**
 * Returns a new list without any consecutively repeating elements. Equality is
 * determined by applying the supplied predicate to each pair of consecutive elements. The
 * first element in a series of equal elements will be preserved.
 *
 * Acts as a transducer if a transformer is given in list position.
 *
 * @func
 * @memberOf R
 * @since v0.14.0
 * @category List
 * @sig ((a, a) -> Boolean) -> [a] -> [a]
 * @param {Function} pred A predicate used to test whether two items are equal.
 * @param {Array} list The array to consider.
 * @return {Array} `list` without repeating elements.
 * @see R.transduce
 * @example
 *
 *      const l = [1, -1, 1, 3, 4, -4, -4, -5, 5, 3, 3];
 *      R.dropRepeatsWith(R.eqBy(Math.abs), l); //=> [1, 3, 4, -5, 3]
 */
var dropRepeatsWith = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/Object(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__["default"])([], _internal_xdropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_2__["default"], function dropRepeatsWith(pred, list) {
  var result = [];
  var idx = 1;
  var len = list.length;
  if (len !== 0) {
    result[0] = list[0];
    while (idx < len) {
      if (!pred(Object(_last_js__WEBPACK_IMPORTED_MODULE_3__["default"])(result), list[idx])) {
        result[result.length] = list[idx];
      }
      idx += 1;
    }
  }
  return result;
}));
/* harmony default export */ __webpack_exports__["default"] = (dropRepeatsWith);

/***/ }),

/***/ "./node_modules/ramda/es/dropWhile.js":
/*!********************************************!*\
  !*** ./node_modules/ramda/es/dropWhile.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ "./node_modules/ramda/es/internal/_dispatchable.js");
/* harmony import */ var _internal_xdropWhile_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xdropWhile.js */ "./node_modules/ramda/es/internal/_xdropWhile.js");
/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./slice.js */ "./node_modules/ramda/es/slice.js");





/**
 * Returns a new list excluding the leading elements of a given list which
 * satisfy the supplied predicate function. It passes each value to the supplied
 * predicate function, skipping elements while the predicate function returns
 * `true`. The predicate function is applied to one argument: *(value)*.
 *
 * Dispatches to the `dropWhile` method of the second argument, if present.
 *
 * Acts as a transducer if a transformer is given in list position.
 *
 * @func
 * @memberOf R
 * @since v0.9.0
 * @category List
 * @sig (a -> Boolean) -> [a] -> [a]
 * @sig (a -> Boolean) -> String -> String
 * @param {Function} fn The function called per iteration.
 * @param {Array} xs The collection to iterate over.
 * @return {Array} A new array.
 * @see R.takeWhile, R.transduce, R.addIndex
 * @example
 *
 *      const lteTwo = x => x <= 2;
 *
 *      R.dropWhile(lteTwo, [1, 2, 3, 4, 3, 2, 1]); //=> [3, 4, 3, 2, 1]
 *
 *      R.dropWhile(x => x !== 'd' , 'Ramda'); //=> 'da'
 */
var dropWhile = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/Object(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__["default"])(['dropWhile'], _internal_xdropWhile_js__WEBPACK_IMPORTED_MODULE_2__["default"], function dropWhile(pred, xs) {
  var idx = 0;
  var len = xs.length;
  while (idx < len && pred(xs[idx])) {
    idx += 1;
  }
  return Object(_slice_js__WEBPACK_IMPORTED_MODULE_3__["default"])(idx, Infinity, xs);
}));
/* harmony default export */ __webpack_exports__["default"] = (dropWhile);

/***/ }),

/***/ "./node_modules/ramda/es/either.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/either.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isFunction.js */ "./node_modules/ramda/es/internal/_isFunction.js");
/* harmony import */ var _lift_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lift.js */ "./node_modules/ramda/es/lift.js");
/* harmony import */ var _or_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./or.js */ "./node_modules/ramda/es/or.js");





/**
 * A function wrapping calls to the two functions in an `||` operation,
 * returning the result of the first function if it is truth-y and the result
 * of the second function otherwise. Note that this is short-circuited,
 * meaning that the second function will not be invoked if the first returns a
 * truth-y value.
 *
 * In addition to functions, `R.either` also accepts any fantasy-land compatible
 * applicative functor.
 *
 * @func
 * @memberOf R
 * @since v0.12.0
 * @category Logic
 * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)
 * @param {Function} f a predicate
 * @param {Function} g another predicate
 * @return {Function} a function that applies its arguments to `f` and `g` and `||`s their outputs together.
 * @see R.or
 * @example
 *
 *      const gt10 = x => x > 10;
 *      const even = x => x % 2 === 0;
 *      const f = R.either(gt10, even);
 *      f(101); //=> true
 *      f(8); //=> true
 *
 *      R.either(Maybe.Just(false), Maybe.Just(55)); // => Maybe.Just(55)
 *      R.either([false, false, 'a'], [11]) // => [11, 11, "a"]
 */
var either = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function either(f, g) {
  return Object(_internal_isFunction_js__WEBPACK_IMPORTED_MODULE_1__["default"])(f) ? function _either() {
    return f.apply(this, arguments) || g.apply(this, arguments);
  } : Object(_lift_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_or_js__WEBPACK_IMPORTED_MODULE_3__["default"])(f, g);
});
/* harmony default export */ __webpack_exports__["default"] = (either);

/***/ }),

/***/ "./node_modules/ramda/es/empty.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/empty.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _internal_isArguments_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isArguments.js */ "./node_modules/ramda/es/internal/_isArguments.js");
/* harmony import */ var _internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isArray.js */ "./node_modules/ramda/es/internal/_isArray.js");
/* harmony import */ var _internal_isObject_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_isObject.js */ "./node_modules/ramda/es/internal/_isObject.js");
/* harmony import */ var _internal_isString_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internal/_isString.js */ "./node_modules/ramda/es/internal/_isString.js");






/**
 * Returns the empty value of its argument's type. Ramda defines the empty
 * value of Array (`[]`), Object (`{}`), String (`''`), and Arguments. Other
 * types are supported if they define `<Type>.empty`,
 * `<Type>.prototype.empty` or implement the
 * [FantasyLand Monoid spec](https://github.com/fantasyland/fantasy-land#monoid).
 *
 * Dispatches to the `empty` method of the first argument, if present.
 *
 * @func
 * @memberOf R
 * @since v0.3.0
 * @category Function
 * @sig a -> a
 * @param {*} x
 * @return {*}
 * @example
 *
 *      R.empty(Just(42));      //=> Nothing()
 *      R.empty([1, 2, 3]);     //=> []
 *      R.empty('unicorns');    //=> ''
 *      R.empty({x: 1, y: 2});  //=> {}
 */
var empty = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function empty(x) {
  return x != null && typeof x['fantasy-land/empty'] === 'function' ? x['fantasy-land/empty']() : x != null && x.constructor != null && typeof x.constructor['fantasy-land/empty'] === 'function' ? x.constructor['fantasy-land/empty']() : x != null && typeof x.empty === 'function' ? x.empty() : x != null && x.constructor != null && typeof x.constructor.empty === 'function' ? x.constructor.empty() : Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__["default"])(x) ? [] : Object(_internal_isString_js__WEBPACK_IMPORTED_MODULE_4__["default"])(x) ? '' : Object(_internal_isObject_js__WEBPACK_IMPORTED_MODULE_3__["default"])(x) ? {} : Object(_internal_isArguments_js__WEBPACK_IMPORTED_MODULE_1__["default"])(x) ? function () {
    return arguments;
  }() : void 0 // else
  ;
});
/* harmony default export */ __webpack_exports__["default"] = (empty);

/***/ }),

/***/ "./node_modules/ramda/es/endsWith.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/endsWith.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ "./node_modules/ramda/es/equals.js");
/* harmony import */ var _takeLast_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./takeLast.js */ "./node_modules/ramda/es/takeLast.js");




/**
 * Checks if a list ends with the provided sublist.
 *
 * Similarly, checks if a string ends with the provided substring.
 *
 * @func
 * @memberOf R
 * @since v0.24.0
 * @category List
 * @sig [a] -> [a] -> Boolean
 * @sig String -> String -> Boolean
 * @param {*} suffix
 * @param {*} list
 * @return {Boolean}
 * @see R.startsWith
 * @example
 *
 *      R.endsWith('c', 'abc')                //=> true
 *      R.endsWith('b', 'abc')                //=> false
 *      R.endsWith(['c'], ['a', 'b', 'c'])    //=> true
 *      R.endsWith(['b'], ['a', 'b', 'c'])    //=> false
 */
var endsWith = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function (suffix, list) {
  return Object(_equals_js__WEBPACK_IMPORTED_MODULE_1__["default"])(Object(_takeLast_js__WEBPACK_IMPORTED_MODULE_2__["default"])(suffix.length, list), suffix);
});
/* harmony default export */ __webpack_exports__["default"] = (endsWith);

/***/ }),

/***/ "./node_modules/ramda/es/eqBy.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/eqBy.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");
/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ "./node_modules/ramda/es/equals.js");



/**
 * Takes a function and two values in its domain and returns `true` if the
 * values map to the same value in the codomain; `false` otherwise.
 *
 * @func
 * @memberOf R
 * @since v0.18.0
 * @category Relation
 * @sig (a -> b) -> a -> a -> Boolean
 * @param {Function} f
 * @param {*} x
 * @param {*} y
 * @return {Boolean}
 * @example
 *
 *      R.eqBy(Math.abs, 5, -5); //=> true
 */
var eqBy = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function eqBy(f, x, y) {
  return Object(_equals_js__WEBPACK_IMPORTED_MODULE_1__["default"])(f(x), f(y));
});
/* harmony default export */ __webpack_exports__["default"] = (eqBy);

/***/ }),

/***/ "./node_modules/ramda/es/eqProps.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/eqProps.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");
/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ "./node_modules/ramda/es/equals.js");



/**
 * Reports whether two objects have the same value, in [`R.equals`](#equals)
 * terms, for the specified property. Useful as a curried predicate.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Object
 * @sig k -> {k: v} -> {k: v} -> Boolean
 * @param {String} prop The name of the property to compare
 * @param {Object} obj1
 * @param {Object} obj2
 * @return {Boolean}
 *
 * @example
 *
 *      const o1 = { a: 1, b: 2, c: 3, d: 4 };
 *      const o2 = { a: 10, b: 20, c: 3, d: 40 };
 *      R.eqProps('a', o1, o2); //=> false
 *      R.eqProps('c', o1, o2); //=> true
 */
var eqProps = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function eqProps(prop, obj1, obj2) {
  return Object(_equals_js__WEBPACK_IMPORTED_MODULE_1__["default"])(obj1[prop], obj2[prop]);
});
/* harmony default export */ __webpack_exports__["default"] = (eqProps);

/***/ }),

/***/ "./node_modules/ramda/es/equals.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/equals.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_equals.js */ "./node_modules/ramda/es/internal/_equals.js");



/**
 * Returns `true` if its arguments are equivalent, `false` otherwise. Handles
 * cyclical data structures.
 *
 * Dispatches symmetrically to the `equals` methods of both arguments, if
 * present.
 *
 * @func
 * @memberOf R
 * @since v0.15.0
 * @category Relation
 * @sig a -> b -> Boolean
 * @param {*} a
 * @param {*} b
 * @return {Boolean}
 * @example
 *
 *      R.equals(1, 1); //=> true
 *      R.equals(1, '1'); //=> false
 *      R.equals([1, 2, 3], [1, 2, 3]); //=> true
 *
 *      const a = {}; a.v = a;
 *      const b = {}; b.v = b;
 *      R.equals(a, b); //=> true
 */
var equals = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function equals(a, b) {
  return Object(_internal_equals_js__WEBPACK_IMPORTED_MODULE_1__["default"])(a, b, [], []);
});
/* harmony default export */ __webpack_exports__["default"] = (equals);

/***/ }),

/***/ "./node_modules/ramda/es/evolve.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/evolve.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Creates a new object by recursively evolving a shallow copy of `object`,
 * according to the `transformation` functions. All non-primitive properties
 * are copied by reference.
 *
 * A `transformation` function will not be invoked if its corresponding key
 * does not exist in the evolved object.
 *
 * @func
 * @memberOf R
 * @since v0.9.0
 * @category Object
 * @sig {k: (v -> v)} -> {k: v} -> {k: v}
 * @param {Object} transformations The object specifying transformation functions to apply
 *        to the object.
 * @param {Object} object The object to be transformed.
 * @return {Object} The transformed object.
 * @example
 *
 *      const tomato = {firstName: '  Tomato ', data: {elapsed: 100, remaining: 1400}, id:123};
 *      const transformations = {
 *        firstName: R.trim,
 *        lastName: R.trim, // Will not get invoked.
 *        data: {elapsed: R.add(1), remaining: R.add(-1)}
 *      };
 *      R.evolve(transformations, tomato); //=> {firstName: 'Tomato', data: {elapsed: 101, remaining: 1399}, id:123}
 */
var evolve = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function evolve(transformations, object) {
  var result = object instanceof Array ? [] : {};
  var transformation, key, type;
  for (key in object) {
    transformation = transformations[key];
    type = typeof transformation;
    result[key] = type === 'function' ? transformation(object[key]) : transformation && type === 'object' ? evolve(transformation, object[key]) : object[key];
  }
  return result;
});
/* harmony default export */ __webpack_exports__["default"] = (evolve);

/***/ }),

/***/ "./node_modules/ramda/es/filter.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/filter.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ "./node_modules/ramda/es/internal/_dispatchable.js");
/* harmony import */ var _internal_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_filter.js */ "./node_modules/ramda/es/internal/_filter.js");
/* harmony import */ var _internal_isObject_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_isObject.js */ "./node_modules/ramda/es/internal/_isObject.js");
/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internal/_reduce.js */ "./node_modules/ramda/es/internal/_reduce.js");
/* harmony import */ var _internal_xfilter_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./internal/_xfilter.js */ "./node_modules/ramda/es/internal/_xfilter.js");
/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./keys.js */ "./node_modules/ramda/es/keys.js");








/**
 * Takes a predicate and a `Filterable`, and returns a new filterable of the
 * same type containing the members of the given filterable which satisfy the
 * given predicate. Filterable objects include plain objects or any object
 * that has a filter method such as `Array`.
 *
 * Dispatches to the `filter` method of the second argument, if present.
 *
 * Acts as a transducer if a transformer is given in list position.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig Filterable f => (a -> Boolean) -> f a -> f a
 * @param {Function} pred
 * @param {Array} filterable
 * @return {Array} Filterable
 * @see R.reject, R.transduce, R.addIndex
 * @example
 *
 *      const isEven = n => n % 2 === 0;
 *
 *      R.filter(isEven, [1, 2, 3, 4]); //=> [2, 4]
 *
 *      R.filter(isEven, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}
 */
var filter = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/Object(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__["default"])(['filter'], _internal_xfilter_js__WEBPACK_IMPORTED_MODULE_5__["default"], function (pred, filterable) {
  return Object(_internal_isObject_js__WEBPACK_IMPORTED_MODULE_3__["default"])(filterable) ? Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_4__["default"])(function (acc, key) {
    if (pred(filterable[key])) {
      acc[key] = filterable[key];
    }
    return acc;
  }, {}, Object(_keys_js__WEBPACK_IMPORTED_MODULE_6__["default"])(filterable)) :
  // else
  Object(_internal_filter_js__WEBPACK_IMPORTED_MODULE_2__["default"])(pred, filterable);
}));
/* harmony default export */ __webpack_exports__["default"] = (filter);

/***/ }),

/***/ "./node_modules/ramda/es/find.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/find.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ "./node_modules/ramda/es/internal/_dispatchable.js");
/* harmony import */ var _internal_xfind_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xfind.js */ "./node_modules/ramda/es/internal/_xfind.js");




/**
 * Returns the first element of the list which matches the predicate, or
 * `undefined` if no element matches.
 *
 * Dispatches to the `find` method of the second argument, if present.
 *
 * Acts as a transducer if a transformer is given in list position.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig (a -> Boolean) -> [a] -> a | undefined
 * @param {Function} fn The predicate function used to determine if the element is the
 *        desired one.
 * @param {Array} list The array to consider.
 * @return {Object} The element found, or `undefined`.
 * @see R.transduce
 * @example
 *
 *      const xs = [{a: 1}, {a: 2}, {a: 3}];
 *      R.find(R.propEq('a', 2))(xs); //=> {a: 2}
 *      R.find(R.propEq('a', 4))(xs); //=> undefined
 */
var find = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/Object(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__["default"])(['find'], _internal_xfind_js__WEBPACK_IMPORTED_MODULE_2__["default"], function find(fn, list) {
  var idx = 0;
  var len = list.length;
  while (idx < len) {
    if (fn(list[idx])) {
      return list[idx];
    }
    idx += 1;
  }
}));
/* harmony default export */ __webpack_exports__["default"] = (find);

/***/ }),

/***/ "./node_modules/ramda/es/findIndex.js":
/*!********************************************!*\
  !*** ./node_modules/ramda/es/findIndex.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ "./node_modules/ramda/es/internal/_dispatchable.js");
/* harmony import */ var _internal_xfindIndex_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xfindIndex.js */ "./node_modules/ramda/es/internal/_xfindIndex.js");




/**
 * Returns the index of the first element of the list which matches the
 * predicate, or `-1` if no element matches.
 *
 * Acts as a transducer if a transformer is given in list position.
 *
 * @func
 * @memberOf R
 * @since v0.1.1
 * @category List
 * @sig (a -> Boolean) -> [a] -> Number
 * @param {Function} fn The predicate function used to determine if the element is the
 * desired one.
 * @param {Array} list The array to consider.
 * @return {Number} The index of the element found, or `-1`.
 * @see R.transduce
 * @example
 *
 *      const xs = [{a: 1}, {a: 2}, {a: 3}];
 *      R.findIndex(R.propEq('a', 2))(xs); //=> 1
 *      R.findIndex(R.propEq('a', 4))(xs); //=> -1
 */
var findIndex = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/Object(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__["default"])([], _internal_xfindIndex_js__WEBPACK_IMPORTED_MODULE_2__["default"], function findIndex(fn, list) {
  var idx = 0;
  var len = list.length;
  while (idx < len) {
    if (fn(list[idx])) {
      return idx;
    }
    idx += 1;
  }
  return -1;
}));
/* harmony default export */ __webpack_exports__["default"] = (findIndex);

/***/ }),

/***/ "./node_modules/ramda/es/findLast.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/findLast.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ "./node_modules/ramda/es/internal/_dispatchable.js");
/* harmony import */ var _internal_xfindLast_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xfindLast.js */ "./node_modules/ramda/es/internal/_xfindLast.js");




/**
 * Returns the last element of the list which matches the predicate, or
 * `undefined` if no element matches.
 *
 * Acts as a transducer if a transformer is given in list position.
 *
 * @func
 * @memberOf R
 * @since v0.1.1
 * @category List
 * @sig (a -> Boolean) -> [a] -> a | undefined
 * @param {Function} fn The predicate function used to determine if the element is the
 * desired one.
 * @param {Array} list The array to consider.
 * @return {Object} The element found, or `undefined`.
 * @see R.transduce
 * @example
 *
 *      const xs = [{a: 1, b: 0}, {a:1, b: 1}];
 *      R.findLast(R.propEq('a', 1))(xs); //=> {a: 1, b: 1}
 *      R.findLast(R.propEq('a', 4))(xs); //=> undefined
 */
var findLast = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/Object(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__["default"])([], _internal_xfindLast_js__WEBPACK_IMPORTED_MODULE_2__["default"], function findLast(fn, list) {
  var idx = list.length - 1;
  while (idx >= 0) {
    if (fn(list[idx])) {
      return list[idx];
    }
    idx -= 1;
  }
}));
/* harmony default export */ __webpack_exports__["default"] = (findLast);

/***/ }),

/***/ "./node_modules/ramda/es/findLastIndex.js":
/*!************************************************!*\
  !*** ./node_modules/ramda/es/findLastIndex.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ "./node_modules/ramda/es/internal/_dispatchable.js");
/* harmony import */ var _internal_xfindLastIndex_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xfindLastIndex.js */ "./node_modules/ramda/es/internal/_xfindLastIndex.js");




/**
 * Returns the index of the last element of the list which matches the
 * predicate, or `-1` if no element matches.
 *
 * Acts as a transducer if a transformer is given in list position.
 *
 * @func
 * @memberOf R
 * @since v0.1.1
 * @category List
 * @sig (a -> Boolean) -> [a] -> Number
 * @param {Function} fn The predicate function used to determine if the element is the
 * desired one.
 * @param {Array} list The array to consider.
 * @return {Number} The index of the element found, or `-1`.
 * @see R.transduce
 * @example
 *
 *      const xs = [{a: 1, b: 0}, {a:1, b: 1}];
 *      R.findLastIndex(R.propEq('a', 1))(xs); //=> 1
 *      R.findLastIndex(R.propEq('a', 4))(xs); //=> -1
 */
var findLastIndex = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/Object(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__["default"])([], _internal_xfindLastIndex_js__WEBPACK_IMPORTED_MODULE_2__["default"], function findLastIndex(fn, list) {
  var idx = list.length - 1;
  while (idx >= 0) {
    if (fn(list[idx])) {
      return idx;
    }
    idx -= 1;
  }
  return -1;
}));
/* harmony default export */ __webpack_exports__["default"] = (findLastIndex);

/***/ }),

/***/ "./node_modules/ramda/es/flatten.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/flatten.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _internal_makeFlat_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_makeFlat.js */ "./node_modules/ramda/es/internal/_makeFlat.js");



/**
 * Returns a new list by pulling every item out of it (and all its sub-arrays)
 * and putting them in a new array, depth-first.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig [a] -> [b]
 * @param {Array} list The array to consider.
 * @return {Array} The flattened list.
 * @see R.unnest
 * @example
 *
 *      R.flatten([1, 2, [3, 4], 5, [6, [7, 8, [9, [10, 11], 12]]]]);
 *      //=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
 */
var flatten = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/Object(_internal_makeFlat_js__WEBPACK_IMPORTED_MODULE_1__["default"])(true));
/* harmony default export */ __webpack_exports__["default"] = (flatten);

/***/ }),

/***/ "./node_modules/ramda/es/flip.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/flip.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ "./node_modules/ramda/es/curryN.js");



/**
 * Returns a new function much like the supplied one, except that the first two
 * arguments' order is reversed.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Function
 * @sig ((a, b, c, ...) -> z) -> (b -> a -> c -> ... -> z)
 * @param {Function} fn The function to invoke with its first two parameters reversed.
 * @return {*} The result of invoking `fn` with its first two parameters' order reversed.
 * @example
 *
 *      const mergeThree = (a, b, c) => [].concat(a, b, c);
 *
 *      mergeThree(1, 2, 3); //=> [1, 2, 3]
 *
 *      R.flip(mergeThree)(1, 2, 3); //=> [2, 1, 3]
 * @symb R.flip(f)(a, b, c) = f(b, a, c)
 */
var flip = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function flip(fn) {
  return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__["default"])(fn.length, function (a, b) {
    var args = Array.prototype.slice.call(arguments, 0);
    args[0] = b;
    args[1] = a;
    return fn.apply(this, args);
  });
});
/* harmony default export */ __webpack_exports__["default"] = (flip);

/***/ }),

/***/ "./node_modules/ramda/es/forEach.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/forEach.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_checkForMethod.js */ "./node_modules/ramda/es/internal/_checkForMethod.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");



/**
 * Iterate over an input `list`, calling a provided function `fn` for each
 * element in the list.
 *
 * `fn` receives one argument: *(value)*.
 *
 * Note: `R.forEach` does not skip deleted or unassigned indices (sparse
 * arrays), unlike the native `Array.prototype.forEach` method. For more
 * details on this behavior, see:
 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach#Description
 *
 * Also note that, unlike `Array.prototype.forEach`, Ramda's `forEach` returns
 * the original array. In some libraries this function is named `each`.
 *
 * Dispatches to the `forEach` method of the second argument, if present.
 *
 * @func
 * @memberOf R
 * @since v0.1.1
 * @category List
 * @sig (a -> *) -> [a] -> [a]
 * @param {Function} fn The function to invoke. Receives one argument, `value`.
 * @param {Array} list The list to iterate over.
 * @return {Array} The original list.
 * @see R.addIndex
 * @example
 *
 *      const printXPlusFive = x => console.log(x + 5);
 *      R.forEach(printXPlusFive, [1, 2, 3]); //=> [1, 2, 3]
 *      // logs 6
 *      // logs 7
 *      // logs 8
 * @symb R.forEach(f, [a, b, c]) = [a, b, c]
 */
var forEach = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])( /*#__PURE__*/Object(_internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__["default"])('forEach', function forEach(fn, list) {
  var len = list.length;
  var idx = 0;
  while (idx < len) {
    fn(list[idx]);
    idx += 1;
  }
  return list;
}));
/* harmony default export */ __webpack_exports__["default"] = (forEach);

/***/ }),

/***/ "./node_modules/ramda/es/forEachObjIndexed.js":
/*!****************************************************!*\
  !*** ./node_modules/ramda/es/forEachObjIndexed.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ "./node_modules/ramda/es/keys.js");



/**
 * Iterate over an input `object`, calling a provided function `fn` for each
 * key and value in the object.
 *
 * `fn` receives three argument: *(value, key, obj)*.
 *
 * @func
 * @memberOf R
 * @since v0.23.0
 * @category Object
 * @sig ((a, String, StrMap a) -> Any) -> StrMap a -> StrMap a
 * @param {Function} fn The function to invoke. Receives three argument, `value`, `key`, `obj`.
 * @param {Object} obj The object to iterate over.
 * @return {Object} The original object.
 * @example
 *
 *      const printKeyConcatValue = (value, key) => console.log(key + ':' + value);
 *      R.forEachObjIndexed(printKeyConcatValue, {x: 1, y: 2}); //=> {x: 1, y: 2}
 *      // logs x:1
 *      // logs y:2
 * @symb R.forEachObjIndexed(f, {x: a, y: b}) = {x: a, y: b}
 */
var forEachObjIndexed = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function forEachObjIndexed(fn, obj) {
  var keyList = Object(_keys_js__WEBPACK_IMPORTED_MODULE_1__["default"])(obj);
  var idx = 0;
  while (idx < keyList.length) {
    var key = keyList[idx];
    fn(obj[key], key, obj);
    idx += 1;
  }
  return obj;
});
/* harmony default export */ __webpack_exports__["default"] = (forEachObjIndexed);

/***/ }),

/***/ "./node_modules/ramda/es/fromPairs.js":
/*!********************************************!*\
  !*** ./node_modules/ramda/es/fromPairs.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");


/**
 * Creates a new object from a list key-value pairs. If a key appears in
 * multiple pairs, the rightmost pair is included in the object.
 *
 * @func
 * @memberOf R
 * @since v0.3.0
 * @category List
 * @sig [[k,v]] -> {k: v}
 * @param {Array} pairs An array of two-element arrays that will be the keys and values of the output object.
 * @return {Object} The object made by pairing up `keys` and `values`.
 * @see R.toPairs, R.pair
 * @example
 *
 *      R.fromPairs([['a', 1], ['b', 2], ['c', 3]]); //=> {a: 1, b: 2, c: 3}
 */
var fromPairs = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function fromPairs(pairs) {
  var result = {};
  var idx = 0;
  while (idx < pairs.length) {
    result[pairs[idx][0]] = pairs[idx][1];
    idx += 1;
  }
  return result;
});
/* harmony default export */ __webpack_exports__["default"] = (fromPairs);

/***/ }),

/***/ "./node_modules/ramda/es/groupBy.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/groupBy.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_checkForMethod.js */ "./node_modules/ramda/es/internal/_checkForMethod.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _reduceBy_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reduceBy.js */ "./node_modules/ramda/es/reduceBy.js");




/**
 * Splits a list into sub-lists stored in an object, based on the result of
 * calling a String-returning function on each element, and grouping the
 * results according to values returned.
 *
 * Dispatches to the `groupBy` method of the second argument, if present.
 *
 * Acts as a transducer if a transformer is given in list position.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig (a -> String) -> [a] -> {String: [a]}
 * @param {Function} fn Function :: a -> String
 * @param {Array} list The array to group
 * @return {Object} An object with the output of `fn` for keys, mapped to arrays of elements
 *         that produced that key when passed to `fn`.
 * @see R.reduceBy, R.transduce
 * @example
 *
 *      const byGrade = R.groupBy(function(student) {
 *        const score = student.score;
 *        return score < 65 ? 'F' :
 *               score < 70 ? 'D' :
 *               score < 80 ? 'C' :
 *               score < 90 ? 'B' : 'A';
 *      });
 *      const students = [{name: 'Abby', score: 84},
 *                      {name: 'Eddy', score: 58},
 *                      // ...
 *                      {name: 'Jack', score: 69}];
 *      byGrade(students);
 *      // {
 *      //   'A': [{name: 'Dianne', score: 99}],
 *      //   'B': [{name: 'Abby', score: 84}]
 *      //   // ...,
 *      //   'F': [{name: 'Eddy', score: 58}]
 *      // }
 */
var groupBy = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])( /*#__PURE__*/Object(_internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__["default"])('groupBy', /*#__PURE__*/Object(_reduceBy_js__WEBPACK_IMPORTED_MODULE_2__["default"])(function (acc, item) {
  if (acc == null) {
    acc = [];
  }
  acc.push(item);
  return acc;
}, null)));
/* harmony default export */ __webpack_exports__["default"] = (groupBy);

/***/ }),

/***/ "./node_modules/ramda/es/groupWith.js":
/*!********************************************!*\
  !*** ./node_modules/ramda/es/groupWith.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Takes a list and returns a list of lists where each sublist's elements are
 * all satisfied pairwise comparison according to the provided function.
 * Only adjacent elements are passed to the comparison function.
 *
 * @func
 * @memberOf R
 * @since v0.21.0
 * @category List
 * @sig ((a, a) → Boolean) → [a] → [[a]]
 * @param {Function} fn Function for determining whether two given (adjacent)
 *        elements should be in the same group
 * @param {Array} list The array to group. Also accepts a string, which will be
 *        treated as a list of characters.
 * @return {List} A list that contains sublists of elements,
 *         whose concatenations are equal to the original list.
 * @example
 *
 * R.groupWith(R.equals, [0, 1, 1, 2, 3, 5, 8, 13, 21])
 * //=> [[0], [1, 1], [2], [3], [5], [8], [13], [21]]
 *
 * R.groupWith((a, b) => a + 1 === b, [0, 1, 1, 2, 3, 5, 8, 13, 21])
 * //=> [[0, 1], [1, 2, 3], [5], [8], [13], [21]]
 *
 * R.groupWith((a, b) => a % 2 === b % 2, [0, 1, 1, 2, 3, 5, 8, 13, 21])
 * //=> [[0], [1, 1], [2], [3, 5], [8], [13, 21]]
 *
 * R.groupWith(R.eqBy(isVowel), 'aestiou')
 * //=> ['ae', 'st', 'iou']
 */
var groupWith = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function (fn, list) {
  var res = [];
  var idx = 0;
  var len = list.length;
  while (idx < len) {
    var nextidx = idx + 1;
    while (nextidx < len && fn(list[nextidx - 1], list[nextidx])) {
      nextidx += 1;
    }
    res.push(list.slice(idx, nextidx));
    idx = nextidx;
  }
  return res;
});
/* harmony default export */ __webpack_exports__["default"] = (groupWith);

/***/ }),

/***/ "./node_modules/ramda/es/gt.js":
/*!*************************************!*\
  !*** ./node_modules/ramda/es/gt.js ***!
  \*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Returns `true` if the first argument is greater than the second; `false`
 * otherwise.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Relation
 * @sig Ord a => a -> a -> Boolean
 * @param {*} a
 * @param {*} b
 * @return {Boolean}
 * @see R.lt
 * @example
 *
 *      R.gt(2, 1); //=> true
 *      R.gt(2, 2); //=> false
 *      R.gt(2, 3); //=> false
 *      R.gt('a', 'z'); //=> false
 *      R.gt('z', 'a'); //=> true
 */
var gt = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function gt(a, b) {
  return a > b;
});
/* harmony default export */ __webpack_exports__["default"] = (gt);

/***/ }),

/***/ "./node_modules/ramda/es/gte.js":
/*!**************************************!*\
  !*** ./node_modules/ramda/es/gte.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Returns `true` if the first argument is greater than or equal to the second;
 * `false` otherwise.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Relation
 * @sig Ord a => a -> a -> Boolean
 * @param {Number} a
 * @param {Number} b
 * @return {Boolean}
 * @see R.lte
 * @example
 *
 *      R.gte(2, 1); //=> true
 *      R.gte(2, 2); //=> true
 *      R.gte(2, 3); //=> false
 *      R.gte('a', 'z'); //=> false
 *      R.gte('z', 'a'); //=> true
 */
var gte = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function gte(a, b) {
  return a >= b;
});
/* harmony default export */ __webpack_exports__["default"] = (gte);

/***/ }),

/***/ "./node_modules/ramda/es/has.js":
/*!**************************************!*\
  !*** ./node_modules/ramda/es/has.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _hasPath_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hasPath.js */ "./node_modules/ramda/es/hasPath.js");



/**
 * Returns whether or not an object has an own property with the specified name
 *
 * @func
 * @memberOf R
 * @since v0.7.0
 * @category Object
 * @sig s -> {s: x} -> Boolean
 * @param {String} prop The name of the property to check for.
 * @param {Object} obj The object to query.
 * @return {Boolean} Whether the property exists.
 * @example
 *
 *      const hasName = R.has('name');
 *      hasName({name: 'alice'});   //=> true
 *      hasName({name: 'bob'});     //=> true
 *      hasName({});                //=> false
 *
 *      const point = {x: 0, y: 0};
 *      const pointHas = R.has(R.__, point);
 *      pointHas('x');  //=> true
 *      pointHas('y');  //=> true
 *      pointHas('z');  //=> false
 */
var has = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function has(prop, obj) {
  return Object(_hasPath_js__WEBPACK_IMPORTED_MODULE_1__["default"])([prop], obj);
});
/* harmony default export */ __webpack_exports__["default"] = (has);

/***/ }),

/***/ "./node_modules/ramda/es/hasIn.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/hasIn.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Returns whether or not an object or its prototype chain has a property with
 * the specified name
 *
 * @func
 * @memberOf R
 * @since v0.7.0
 * @category Object
 * @sig s -> {s: x} -> Boolean
 * @param {String} prop The name of the property to check for.
 * @param {Object} obj The object to query.
 * @return {Boolean} Whether the property exists.
 * @example
 *
 *      function Rectangle(width, height) {
 *        this.width = width;
 *        this.height = height;
 *      }
 *      Rectangle.prototype.area = function() {
 *        return this.width * this.height;
 *      };
 *
 *      const square = new Rectangle(2, 2);
 *      R.hasIn('width', square);  //=> true
 *      R.hasIn('area', square);  //=> true
 */
var hasIn = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function hasIn(prop, obj) {
  return prop in obj;
});
/* harmony default export */ __webpack_exports__["default"] = (hasIn);

/***/ }),

/***/ "./node_modules/ramda/es/hasPath.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/hasPath.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ "./node_modules/ramda/es/internal/_has.js");



/**
 * Returns whether or not a path exists in an object. Only the object's
 * own properties are checked.
 *
 * @func
 * @memberOf R
 * @since v0.26.0
 * @category Object
 * @typedefn Idx = String | Int
 * @sig [Idx] -> {a} -> Boolean
 * @param {Array} path The path to use.
 * @param {Object} obj The object to check the path in.
 * @return {Boolean} Whether the path exists.
 * @see R.has
 * @example
 *
 *      R.hasPath(['a', 'b'], {a: {b: 2}});         // => true
 *      R.hasPath(['a', 'b'], {a: {b: undefined}}); // => true
 *      R.hasPath(['a', 'b'], {a: {c: 2}});         // => false
 *      R.hasPath(['a', 'b'], {});                  // => false
 */
var hasPath = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function hasPath(_path, obj) {
  if (_path.length === 0) {
    return false;
  }
  var val = obj;
  var idx = 0;
  while (idx < _path.length) {
    if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__["default"])(_path[idx], val)) {
      val = val[_path[idx]];
      idx += 1;
    } else {
      return false;
    }
  }
  return true;
});
/* harmony default export */ __webpack_exports__["default"] = (hasPath);

/***/ }),

/***/ "./node_modules/ramda/es/head.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/head.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _nth_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./nth.js */ "./node_modules/ramda/es/nth.js");


/**
 * Returns the first element of the given list or string. In some libraries
 * this function is named `first`.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig [a] -> a | Undefined
 * @sig String -> String
 * @param {Array|String} list
 * @return {*}
 * @see R.tail, R.init, R.last
 * @example
 *
 *      R.head(['fi', 'fo', 'fum']); //=> 'fi'
 *      R.head([]); //=> undefined
 *
 *      R.head('abc'); //=> 'a'
 *      R.head(''); //=> ''
 */
var head = /*#__PURE__*/Object(_nth_js__WEBPACK_IMPORTED_MODULE_0__["default"])(0);
/* harmony default export */ __webpack_exports__["default"] = (head);

/***/ }),

/***/ "./node_modules/ramda/es/identical.js":
/*!********************************************!*\
  !*** ./node_modules/ramda/es/identical.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_objectIs_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_objectIs.js */ "./node_modules/ramda/es/internal/_objectIs.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");



/**
 * Returns true if its arguments are identical, false otherwise. Values are
 * identical if they reference the same memory. `NaN` is identical to `NaN`;
 * `0` and `-0` are not identical.
 *
 * Note this is merely a curried version of ES6 `Object.is`.
 *
 * @func
 * @memberOf R
 * @since v0.15.0
 * @category Relation
 * @sig a -> a -> Boolean
 * @param {*} a
 * @param {*} b
 * @return {Boolean}
 * @example
 *
 *      const o = {};
 *      R.identical(o, o); //=> true
 *      R.identical(1, 1); //=> true
 *      R.identical(1, '1'); //=> false
 *      R.identical([], []); //=> false
 *      R.identical(0, -0); //=> false
 *      R.identical(NaN, NaN); //=> true
 */
var identical = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(_internal_objectIs_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
/* harmony default export */ __webpack_exports__["default"] = (identical);

/***/ }),

/***/ "./node_modules/ramda/es/identity.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/identity.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _internal_identity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_identity.js */ "./node_modules/ramda/es/internal/_identity.js");



/**
 * A function that does nothing but return the parameter supplied to it. Good
 * as a default or placeholder function.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Function
 * @sig a -> a
 * @param {*} x The value to return.
 * @return {*} The input value, `x`.
 * @example
 *
 *      R.identity(1); //=> 1
 *
 *      const obj = {};
 *      R.identity(obj) === obj; //=> true
 * @symb R.identity(a) = a
 */
var identity = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(_internal_identity_js__WEBPACK_IMPORTED_MODULE_1__["default"]);
/* harmony default export */ __webpack_exports__["default"] = (identity);

/***/ }),

/***/ "./node_modules/ramda/es/ifElse.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/ifElse.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");
/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ "./node_modules/ramda/es/curryN.js");



/**
 * Creates a function that will process either the `onTrue` or the `onFalse`
 * function depending upon the result of the `condition` predicate.
 *
 * @func
 * @memberOf R
 * @since v0.8.0
 * @category Logic
 * @sig (*... -> Boolean) -> (*... -> *) -> (*... -> *) -> (*... -> *)
 * @param {Function} condition A predicate function
 * @param {Function} onTrue A function to invoke when the `condition` evaluates to a truthy value.
 * @param {Function} onFalse A function to invoke when the `condition` evaluates to a falsy value.
 * @return {Function} A new function that will process either the `onTrue` or the `onFalse`
 *                    function depending upon the result of the `condition` predicate.
 * @see R.unless, R.when, R.cond
 * @example
 *
 *      const incCount = R.ifElse(
 *        R.has('count'),
 *        R.over(R.lensProp('count'), R.inc),
 *        R.assoc('count', 1)
 *      );
 *      incCount({});           //=> { count: 1 }
 *      incCount({ count: 1 }); //=> { count: 2 }
 */
var ifElse = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function ifElse(condition, onTrue, onFalse) {
  return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__["default"])(Math.max(condition.length, onTrue.length, onFalse.length), function _ifElse() {
    return condition.apply(this, arguments) ? onTrue.apply(this, arguments) : onFalse.apply(this, arguments);
  });
});
/* harmony default export */ __webpack_exports__["default"] = (ifElse);

/***/ }),

/***/ "./node_modules/ramda/es/inc.js":
/*!**************************************!*\
  !*** ./node_modules/ramda/es/inc.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _add_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add.js */ "./node_modules/ramda/es/add.js");


/**
 * Increments its argument.
 *
 * @func
 * @memberOf R
 * @since v0.9.0
 * @category Math
 * @sig Number -> Number
 * @param {Number} n
 * @return {Number} n + 1
 * @see R.dec
 * @example
 *
 *      R.inc(42); //=> 43
 */
var inc = /*#__PURE__*/Object(_add_js__WEBPACK_IMPORTED_MODULE_0__["default"])(1);
/* harmony default export */ __webpack_exports__["default"] = (inc);

/***/ }),

/***/ "./node_modules/ramda/es/includes.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/includes.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includes.js */ "./node_modules/ramda/es/internal/_includes.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");



/**
 * Returns `true` if the specified value is equal, in [`R.equals`](#equals)
 * terms, to at least one element of the given list; `false` otherwise.
 * Works also with strings.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig a -> [a] -> Boolean
 * @param {Object} a The item to compare against.
 * @param {Array} list The array to consider.
 * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.
 * @see R.any
 * @example
 *
 *      R.includes(3, [1, 2, 3]); //=> true
 *      R.includes(4, [1, 2, 3]); //=> false
 *      R.includes({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true
 *      R.includes([42], [[42]]); //=> true
 *      R.includes('ba', 'banana'); //=>true
 */
var includes = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(_internal_includes_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
/* harmony default export */ __webpack_exports__["default"] = (includes);

/***/ }),

/***/ "./node_modules/ramda/es/index.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/index.js ***!
  \****************************************/
/*! exports provided: F, T, __, add, addIndex, adjust, all, allPass, always, and, any, anyPass, ap, aperture, append, apply, applySpec, applyTo, ascend, assoc, assocPath, binary, bind, both, call, chain, clamp, clone, comparator, complement, compose, composeK, composeP, composeWith, concat, cond, construct, constructN, contains, converge, countBy, curry, curryN, dec, defaultTo, descend, difference, differenceWith, dissoc, dissocPath, divide, drop, dropLast, dropLastWhile, dropRepeats, dropRepeatsWith, dropWhile, either, empty, endsWith, eqBy, eqProps, equals, evolve, filter, find, findIndex, findLast, findLastIndex, flatten, flip, forEach, forEachObjIndexed, fromPairs, groupBy, groupWith, gt, gte, has, hasIn, hasPath, head, identical, identity, ifElse, inc, includes, indexBy, indexOf, init, innerJoin, insert, insertAll, intersection, intersperse, into, invert, invertObj, invoker, is, isEmpty, isNil, join, juxt, keys, keysIn, last, lastIndexOf, length, lens, lensIndex, lensPath, lensProp, lift, liftN, lt, lte, map, mapAccum, mapAccumRight, mapObjIndexed, match, mathMod, max, maxBy, mean, median, memoizeWith, merge, mergeAll, mergeDeepLeft, mergeDeepRight, mergeDeepWith, mergeDeepWithKey, mergeLeft, mergeRight, mergeWith, mergeWithKey, min, minBy, modulo, move, multiply, nAry, negate, none, not, nth, nthArg, o, objOf, of, omit, once, or, otherwise, over, pair, partial, partialRight, partition, path, pathEq, pathOr, pathSatisfies, pick, pickAll, pickBy, pipe, pipeK, pipeP, pipeWith, pluck, prepend, product, project, prop, propEq, propIs, propOr, propSatisfies, props, range, reduce, reduceBy, reduceRight, reduceWhile, reduced, reject, remove, repeat, replace, reverse, scan, sequence, set, slice, sort, sortBy, sortWith, split, splitAt, splitEvery, splitWhen, startsWith, subtract, sum, symmetricDifference, symmetricDifferenceWith, tail, take, takeLast, takeLastWhile, takeWhile, tap, test, then, times, toLower, toPairs, toPairsIn, toString, toUpper, transduce, transpose, traverse, trim, tryCatch, type, unapply, unary, uncurryN, unfold, union, unionWith, uniq, uniqBy, uniqWith, unless, unnest, until, update, useWith, values, valuesIn, view, when, where, whereEq, without, xprod, zip, zipObj, zipWith, thunkify */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _F_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./F.js */ "./node_modules/ramda/es/F.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "F", function() { return _F_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });

/* harmony import */ var _T_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./T.js */ "./node_modules/ramda/es/T.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "T", function() { return _T_js__WEBPACK_IMPORTED_MODULE_1__["default"]; });

/* harmony import */ var _js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./__.js */ "./node_modules/ramda/es/__.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__", function() { return _js__WEBPACK_IMPORTED_MODULE_2__["default"]; });

/* harmony import */ var _add_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./add.js */ "./node_modules/ramda/es/add.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "add", function() { return _add_js__WEBPACK_IMPORTED_MODULE_3__["default"]; });

/* harmony import */ var _addIndex_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./addIndex.js */ "./node_modules/ramda/es/addIndex.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "addIndex", function() { return _addIndex_js__WEBPACK_IMPORTED_MODULE_4__["default"]; });

/* harmony import */ var _adjust_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./adjust.js */ "./node_modules/ramda/es/adjust.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "adjust", function() { return _adjust_js__WEBPACK_IMPORTED_MODULE_5__["default"]; });

/* harmony import */ var _all_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./all.js */ "./node_modules/ramda/es/all.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "all", function() { return _all_js__WEBPACK_IMPORTED_MODULE_6__["default"]; });

/* harmony import */ var _allPass_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./allPass.js */ "./node_modules/ramda/es/allPass.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "allPass", function() { return _allPass_js__WEBPACK_IMPORTED_MODULE_7__["default"]; });

/* harmony import */ var _always_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./always.js */ "./node_modules/ramda/es/always.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "always", function() { return _always_js__WEBPACK_IMPORTED_MODULE_8__["default"]; });

/* harmony import */ var _and_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./and.js */ "./node_modules/ramda/es/and.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "and", function() { return _and_js__WEBPACK_IMPORTED_MODULE_9__["default"]; });

/* harmony import */ var _any_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./any.js */ "./node_modules/ramda/es/any.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "any", function() { return _any_js__WEBPACK_IMPORTED_MODULE_10__["default"]; });

/* harmony import */ var _anyPass_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./anyPass.js */ "./node_modules/ramda/es/anyPass.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "anyPass", function() { return _anyPass_js__WEBPACK_IMPORTED_MODULE_11__["default"]; });

/* harmony import */ var _ap_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ap.js */ "./node_modules/ramda/es/ap.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ap", function() { return _ap_js__WEBPACK_IMPORTED_MODULE_12__["default"]; });

/* harmony import */ var _aperture_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./aperture.js */ "./node_modules/ramda/es/aperture.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "aperture", function() { return _aperture_js__WEBPACK_IMPORTED_MODULE_13__["default"]; });

/* harmony import */ var _append_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./append.js */ "./node_modules/ramda/es/append.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "append", function() { return _append_js__WEBPACK_IMPORTED_MODULE_14__["default"]; });

/* harmony import */ var _apply_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./apply.js */ "./node_modules/ramda/es/apply.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "apply", function() { return _apply_js__WEBPACK_IMPORTED_MODULE_15__["default"]; });

/* harmony import */ var _applySpec_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./applySpec.js */ "./node_modules/ramda/es/applySpec.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "applySpec", function() { return _applySpec_js__WEBPACK_IMPORTED_MODULE_16__["default"]; });

/* harmony import */ var _applyTo_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./applyTo.js */ "./node_modules/ramda/es/applyTo.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "applyTo", function() { return _applyTo_js__WEBPACK_IMPORTED_MODULE_17__["default"]; });

/* harmony import */ var _ascend_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./ascend.js */ "./node_modules/ramda/es/ascend.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ascend", function() { return _ascend_js__WEBPACK_IMPORTED_MODULE_18__["default"]; });

/* harmony import */ var _assoc_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./assoc.js */ "./node_modules/ramda/es/assoc.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "assoc", function() { return _assoc_js__WEBPACK_IMPORTED_MODULE_19__["default"]; });

/* harmony import */ var _assocPath_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./assocPath.js */ "./node_modules/ramda/es/assocPath.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "assocPath", function() { return _assocPath_js__WEBPACK_IMPORTED_MODULE_20__["default"]; });

/* harmony import */ var _binary_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./binary.js */ "./node_modules/ramda/es/binary.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "binary", function() { return _binary_js__WEBPACK_IMPORTED_MODULE_21__["default"]; });

/* harmony import */ var _bind_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./bind.js */ "./node_modules/ramda/es/bind.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bind", function() { return _bind_js__WEBPACK_IMPORTED_MODULE_22__["default"]; });

/* harmony import */ var _both_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./both.js */ "./node_modules/ramda/es/both.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "both", function() { return _both_js__WEBPACK_IMPORTED_MODULE_23__["default"]; });

/* harmony import */ var _call_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./call.js */ "./node_modules/ramda/es/call.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "call", function() { return _call_js__WEBPACK_IMPORTED_MODULE_24__["default"]; });

/* harmony import */ var _chain_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./chain.js */ "./node_modules/ramda/es/chain.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "chain", function() { return _chain_js__WEBPACK_IMPORTED_MODULE_25__["default"]; });

/* harmony import */ var _clamp_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./clamp.js */ "./node_modules/ramda/es/clamp.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "clamp", function() { return _clamp_js__WEBPACK_IMPORTED_MODULE_26__["default"]; });

/* harmony import */ var _clone_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./clone.js */ "./node_modules/ramda/es/clone.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "clone", function() { return _clone_js__WEBPACK_IMPORTED_MODULE_27__["default"]; });

/* harmony import */ var _comparator_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./comparator.js */ "./node_modules/ramda/es/comparator.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "comparator", function() { return _comparator_js__WEBPACK_IMPORTED_MODULE_28__["default"]; });

/* harmony import */ var _complement_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./complement.js */ "./node_modules/ramda/es/complement.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "complement", function() { return _complement_js__WEBPACK_IMPORTED_MODULE_29__["default"]; });

/* harmony import */ var _compose_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./compose.js */ "./node_modules/ramda/es/compose.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "compose", function() { return _compose_js__WEBPACK_IMPORTED_MODULE_30__["default"]; });

/* harmony import */ var _composeK_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./composeK.js */ "./node_modules/ramda/es/composeK.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "composeK", function() { return _composeK_js__WEBPACK_IMPORTED_MODULE_31__["default"]; });

/* harmony import */ var _composeP_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./composeP.js */ "./node_modules/ramda/es/composeP.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "composeP", function() { return _composeP_js__WEBPACK_IMPORTED_MODULE_32__["default"]; });

/* harmony import */ var _composeWith_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./composeWith.js */ "./node_modules/ramda/es/composeWith.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "composeWith", function() { return _composeWith_js__WEBPACK_IMPORTED_MODULE_33__["default"]; });

/* harmony import */ var _concat_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./concat.js */ "./node_modules/ramda/es/concat.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return _concat_js__WEBPACK_IMPORTED_MODULE_34__["default"]; });

/* harmony import */ var _cond_js__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./cond.js */ "./node_modules/ramda/es/cond.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cond", function() { return _cond_js__WEBPACK_IMPORTED_MODULE_35__["default"]; });

/* harmony import */ var _construct_js__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./construct.js */ "./node_modules/ramda/es/construct.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "construct", function() { return _construct_js__WEBPACK_IMPORTED_MODULE_36__["default"]; });

/* harmony import */ var _constructN_js__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./constructN.js */ "./node_modules/ramda/es/constructN.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "constructN", function() { return _constructN_js__WEBPACK_IMPORTED_MODULE_37__["default"]; });

/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./contains.js */ "./node_modules/ramda/es/contains.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "contains", function() { return _contains_js__WEBPACK_IMPORTED_MODULE_38__["default"]; });

/* harmony import */ var _converge_js__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./converge.js */ "./node_modules/ramda/es/converge.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "converge", function() { return _converge_js__WEBPACK_IMPORTED_MODULE_39__["default"]; });

/* harmony import */ var _countBy_js__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./countBy.js */ "./node_modules/ramda/es/countBy.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "countBy", function() { return _countBy_js__WEBPACK_IMPORTED_MODULE_40__["default"]; });

/* harmony import */ var _curry_js__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./curry.js */ "./node_modules/ramda/es/curry.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curry", function() { return _curry_js__WEBPACK_IMPORTED_MODULE_41__["default"]; });

/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./curryN.js */ "./node_modules/ramda/es/curryN.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "curryN", function() { return _curryN_js__WEBPACK_IMPORTED_MODULE_42__["default"]; });

/* harmony import */ var _dec_js__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./dec.js */ "./node_modules/ramda/es/dec.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dec", function() { return _dec_js__WEBPACK_IMPORTED_MODULE_43__["default"]; });

/* harmony import */ var _defaultTo_js__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./defaultTo.js */ "./node_modules/ramda/es/defaultTo.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultTo", function() { return _defaultTo_js__WEBPACK_IMPORTED_MODULE_44__["default"]; });

/* harmony import */ var _descend_js__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./descend.js */ "./node_modules/ramda/es/descend.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "descend", function() { return _descend_js__WEBPACK_IMPORTED_MODULE_45__["default"]; });

/* harmony import */ var _difference_js__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./difference.js */ "./node_modules/ramda/es/difference.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "difference", function() { return _difference_js__WEBPACK_IMPORTED_MODULE_46__["default"]; });

/* harmony import */ var _differenceWith_js__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./differenceWith.js */ "./node_modules/ramda/es/differenceWith.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "differenceWith", function() { return _differenceWith_js__WEBPACK_IMPORTED_MODULE_47__["default"]; });

/* harmony import */ var _dissoc_js__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./dissoc.js */ "./node_modules/ramda/es/dissoc.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dissoc", function() { return _dissoc_js__WEBPACK_IMPORTED_MODULE_48__["default"]; });

/* harmony import */ var _dissocPath_js__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./dissocPath.js */ "./node_modules/ramda/es/dissocPath.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dissocPath", function() { return _dissocPath_js__WEBPACK_IMPORTED_MODULE_49__["default"]; });

/* harmony import */ var _divide_js__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./divide.js */ "./node_modules/ramda/es/divide.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "divide", function() { return _divide_js__WEBPACK_IMPORTED_MODULE_50__["default"]; });

/* harmony import */ var _drop_js__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./drop.js */ "./node_modules/ramda/es/drop.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "drop", function() { return _drop_js__WEBPACK_IMPORTED_MODULE_51__["default"]; });

/* harmony import */ var _dropLast_js__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./dropLast.js */ "./node_modules/ramda/es/dropLast.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dropLast", function() { return _dropLast_js__WEBPACK_IMPORTED_MODULE_52__["default"]; });

/* harmony import */ var _dropLastWhile_js__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./dropLastWhile.js */ "./node_modules/ramda/es/dropLastWhile.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dropLastWhile", function() { return _dropLastWhile_js__WEBPACK_IMPORTED_MODULE_53__["default"]; });

/* harmony import */ var _dropRepeats_js__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./dropRepeats.js */ "./node_modules/ramda/es/dropRepeats.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dropRepeats", function() { return _dropRepeats_js__WEBPACK_IMPORTED_MODULE_54__["default"]; });

/* harmony import */ var _dropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./dropRepeatsWith.js */ "./node_modules/ramda/es/dropRepeatsWith.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dropRepeatsWith", function() { return _dropRepeatsWith_js__WEBPACK_IMPORTED_MODULE_55__["default"]; });

/* harmony import */ var _dropWhile_js__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./dropWhile.js */ "./node_modules/ramda/es/dropWhile.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dropWhile", function() { return _dropWhile_js__WEBPACK_IMPORTED_MODULE_56__["default"]; });

/* harmony import */ var _either_js__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./either.js */ "./node_modules/ramda/es/either.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "either", function() { return _either_js__WEBPACK_IMPORTED_MODULE_57__["default"]; });

/* harmony import */ var _empty_js__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./empty.js */ "./node_modules/ramda/es/empty.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "empty", function() { return _empty_js__WEBPACK_IMPORTED_MODULE_58__["default"]; });

/* harmony import */ var _endsWith_js__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./endsWith.js */ "./node_modules/ramda/es/endsWith.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "endsWith", function() { return _endsWith_js__WEBPACK_IMPORTED_MODULE_59__["default"]; });

/* harmony import */ var _eqBy_js__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./eqBy.js */ "./node_modules/ramda/es/eqBy.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "eqBy", function() { return _eqBy_js__WEBPACK_IMPORTED_MODULE_60__["default"]; });

/* harmony import */ var _eqProps_js__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./eqProps.js */ "./node_modules/ramda/es/eqProps.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "eqProps", function() { return _eqProps_js__WEBPACK_IMPORTED_MODULE_61__["default"]; });

/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./equals.js */ "./node_modules/ramda/es/equals.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "equals", function() { return _equals_js__WEBPACK_IMPORTED_MODULE_62__["default"]; });

/* harmony import */ var _evolve_js__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./evolve.js */ "./node_modules/ramda/es/evolve.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "evolve", function() { return _evolve_js__WEBPACK_IMPORTED_MODULE_63__["default"]; });

/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./filter.js */ "./node_modules/ramda/es/filter.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "filter", function() { return _filter_js__WEBPACK_IMPORTED_MODULE_64__["default"]; });

/* harmony import */ var _find_js__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./find.js */ "./node_modules/ramda/es/find.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "find", function() { return _find_js__WEBPACK_IMPORTED_MODULE_65__["default"]; });

/* harmony import */ var _findIndex_js__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./findIndex.js */ "./node_modules/ramda/es/findIndex.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findIndex", function() { return _findIndex_js__WEBPACK_IMPORTED_MODULE_66__["default"]; });

/* harmony import */ var _findLast_js__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./findLast.js */ "./node_modules/ramda/es/findLast.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findLast", function() { return _findLast_js__WEBPACK_IMPORTED_MODULE_67__["default"]; });

/* harmony import */ var _findLastIndex_js__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./findLastIndex.js */ "./node_modules/ramda/es/findLastIndex.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findLastIndex", function() { return _findLastIndex_js__WEBPACK_IMPORTED_MODULE_68__["default"]; });

/* harmony import */ var _flatten_js__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./flatten.js */ "./node_modules/ramda/es/flatten.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "flatten", function() { return _flatten_js__WEBPACK_IMPORTED_MODULE_69__["default"]; });

/* harmony import */ var _flip_js__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./flip.js */ "./node_modules/ramda/es/flip.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "flip", function() { return _flip_js__WEBPACK_IMPORTED_MODULE_70__["default"]; });

/* harmony import */ var _forEach_js__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./forEach.js */ "./node_modules/ramda/es/forEach.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forEach", function() { return _forEach_js__WEBPACK_IMPORTED_MODULE_71__["default"]; });

/* harmony import */ var _forEachObjIndexed_js__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./forEachObjIndexed.js */ "./node_modules/ramda/es/forEachObjIndexed.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forEachObjIndexed", function() { return _forEachObjIndexed_js__WEBPACK_IMPORTED_MODULE_72__["default"]; });

/* harmony import */ var _fromPairs_js__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./fromPairs.js */ "./node_modules/ramda/es/fromPairs.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fromPairs", function() { return _fromPairs_js__WEBPACK_IMPORTED_MODULE_73__["default"]; });

/* harmony import */ var _groupBy_js__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./groupBy.js */ "./node_modules/ramda/es/groupBy.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "groupBy", function() { return _groupBy_js__WEBPACK_IMPORTED_MODULE_74__["default"]; });

/* harmony import */ var _groupWith_js__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./groupWith.js */ "./node_modules/ramda/es/groupWith.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "groupWith", function() { return _groupWith_js__WEBPACK_IMPORTED_MODULE_75__["default"]; });

/* harmony import */ var _gt_js__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./gt.js */ "./node_modules/ramda/es/gt.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "gt", function() { return _gt_js__WEBPACK_IMPORTED_MODULE_76__["default"]; });

/* harmony import */ var _gte_js__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ./gte.js */ "./node_modules/ramda/es/gte.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "gte", function() { return _gte_js__WEBPACK_IMPORTED_MODULE_77__["default"]; });

/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./has.js */ "./node_modules/ramda/es/has.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "has", function() { return _has_js__WEBPACK_IMPORTED_MODULE_78__["default"]; });

/* harmony import */ var _hasIn_js__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ./hasIn.js */ "./node_modules/ramda/es/hasIn.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasIn", function() { return _hasIn_js__WEBPACK_IMPORTED_MODULE_79__["default"]; });

/* harmony import */ var _hasPath_js__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./hasPath.js */ "./node_modules/ramda/es/hasPath.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasPath", function() { return _hasPath_js__WEBPACK_IMPORTED_MODULE_80__["default"]; });

/* harmony import */ var _head_js__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ./head.js */ "./node_modules/ramda/es/head.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "head", function() { return _head_js__WEBPACK_IMPORTED_MODULE_81__["default"]; });

/* harmony import */ var _identical_js__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ./identical.js */ "./node_modules/ramda/es/identical.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "identical", function() { return _identical_js__WEBPACK_IMPORTED_MODULE_82__["default"]; });

/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ./identity.js */ "./node_modules/ramda/es/identity.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "identity", function() { return _identity_js__WEBPACK_IMPORTED_MODULE_83__["default"]; });

/* harmony import */ var _ifElse_js__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ./ifElse.js */ "./node_modules/ramda/es/ifElse.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ifElse", function() { return _ifElse_js__WEBPACK_IMPORTED_MODULE_84__["default"]; });

/* harmony import */ var _inc_js__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ./inc.js */ "./node_modules/ramda/es/inc.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "inc", function() { return _inc_js__WEBPACK_IMPORTED_MODULE_85__["default"]; });

/* harmony import */ var _includes_js__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ./includes.js */ "./node_modules/ramda/es/includes.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "includes", function() { return _includes_js__WEBPACK_IMPORTED_MODULE_86__["default"]; });

/* harmony import */ var _indexBy_js__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./indexBy.js */ "./node_modules/ramda/es/indexBy.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "indexBy", function() { return _indexBy_js__WEBPACK_IMPORTED_MODULE_87__["default"]; });

/* harmony import */ var _indexOf_js__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./indexOf.js */ "./node_modules/ramda/es/indexOf.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "indexOf", function() { return _indexOf_js__WEBPACK_IMPORTED_MODULE_88__["default"]; });

/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./init.js */ "./node_modules/ramda/es/init.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "init", function() { return _init_js__WEBPACK_IMPORTED_MODULE_89__["default"]; });

/* harmony import */ var _innerJoin_js__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ./innerJoin.js */ "./node_modules/ramda/es/innerJoin.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "innerJoin", function() { return _innerJoin_js__WEBPACK_IMPORTED_MODULE_90__["default"]; });

/* harmony import */ var _insert_js__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ./insert.js */ "./node_modules/ramda/es/insert.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "insert", function() { return _insert_js__WEBPACK_IMPORTED_MODULE_91__["default"]; });

/* harmony import */ var _insertAll_js__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ./insertAll.js */ "./node_modules/ramda/es/insertAll.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "insertAll", function() { return _insertAll_js__WEBPACK_IMPORTED_MODULE_92__["default"]; });

/* harmony import */ var _intersection_js__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ./intersection.js */ "./node_modules/ramda/es/intersection.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "intersection", function() { return _intersection_js__WEBPACK_IMPORTED_MODULE_93__["default"]; });

/* harmony import */ var _intersperse_js__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ./intersperse.js */ "./node_modules/ramda/es/intersperse.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "intersperse", function() { return _intersperse_js__WEBPACK_IMPORTED_MODULE_94__["default"]; });

/* harmony import */ var _into_js__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ./into.js */ "./node_modules/ramda/es/into.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "into", function() { return _into_js__WEBPACK_IMPORTED_MODULE_95__["default"]; });

/* harmony import */ var _invert_js__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ./invert.js */ "./node_modules/ramda/es/invert.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "invert", function() { return _invert_js__WEBPACK_IMPORTED_MODULE_96__["default"]; });

/* harmony import */ var _invertObj_js__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ./invertObj.js */ "./node_modules/ramda/es/invertObj.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "invertObj", function() { return _invertObj_js__WEBPACK_IMPORTED_MODULE_97__["default"]; });

/* harmony import */ var _invoker_js__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ./invoker.js */ "./node_modules/ramda/es/invoker.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "invoker", function() { return _invoker_js__WEBPACK_IMPORTED_MODULE_98__["default"]; });

/* harmony import */ var _is_js__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ./is.js */ "./node_modules/ramda/es/is.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "is", function() { return _is_js__WEBPACK_IMPORTED_MODULE_99__["default"]; });

/* harmony import */ var _isEmpty_js__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ./isEmpty.js */ "./node_modules/ramda/es/isEmpty.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isEmpty", function() { return _isEmpty_js__WEBPACK_IMPORTED_MODULE_100__["default"]; });

/* harmony import */ var _isNil_js__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ./isNil.js */ "./node_modules/ramda/es/isNil.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isNil", function() { return _isNil_js__WEBPACK_IMPORTED_MODULE_101__["default"]; });

/* harmony import */ var _join_js__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ./join.js */ "./node_modules/ramda/es/join.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "join", function() { return _join_js__WEBPACK_IMPORTED_MODULE_102__["default"]; });

/* harmony import */ var _juxt_js__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ./juxt.js */ "./node_modules/ramda/es/juxt.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "juxt", function() { return _juxt_js__WEBPACK_IMPORTED_MODULE_103__["default"]; });

/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(/*! ./keys.js */ "./node_modules/ramda/es/keys.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "keys", function() { return _keys_js__WEBPACK_IMPORTED_MODULE_104__["default"]; });

/* harmony import */ var _keysIn_js__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(/*! ./keysIn.js */ "./node_modules/ramda/es/keysIn.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "keysIn", function() { return _keysIn_js__WEBPACK_IMPORTED_MODULE_105__["default"]; });

/* harmony import */ var _last_js__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ./last.js */ "./node_modules/ramda/es/last.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "last", function() { return _last_js__WEBPACK_IMPORTED_MODULE_106__["default"]; });

/* harmony import */ var _lastIndexOf_js__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ./lastIndexOf.js */ "./node_modules/ramda/es/lastIndexOf.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lastIndexOf", function() { return _lastIndexOf_js__WEBPACK_IMPORTED_MODULE_107__["default"]; });

/* harmony import */ var _length_js__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ./length.js */ "./node_modules/ramda/es/length.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "length", function() { return _length_js__WEBPACK_IMPORTED_MODULE_108__["default"]; });

/* harmony import */ var _lens_js__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ./lens.js */ "./node_modules/ramda/es/lens.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lens", function() { return _lens_js__WEBPACK_IMPORTED_MODULE_109__["default"]; });

/* harmony import */ var _lensIndex_js__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ./lensIndex.js */ "./node_modules/ramda/es/lensIndex.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lensIndex", function() { return _lensIndex_js__WEBPACK_IMPORTED_MODULE_110__["default"]; });

/* harmony import */ var _lensPath_js__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ./lensPath.js */ "./node_modules/ramda/es/lensPath.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lensPath", function() { return _lensPath_js__WEBPACK_IMPORTED_MODULE_111__["default"]; });

/* harmony import */ var _lensProp_js__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ./lensProp.js */ "./node_modules/ramda/es/lensProp.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lensProp", function() { return _lensProp_js__WEBPACK_IMPORTED_MODULE_112__["default"]; });

/* harmony import */ var _lift_js__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ./lift.js */ "./node_modules/ramda/es/lift.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lift", function() { return _lift_js__WEBPACK_IMPORTED_MODULE_113__["default"]; });

/* harmony import */ var _liftN_js__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ./liftN.js */ "./node_modules/ramda/es/liftN.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "liftN", function() { return _liftN_js__WEBPACK_IMPORTED_MODULE_114__["default"]; });

/* harmony import */ var _lt_js__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ./lt.js */ "./node_modules/ramda/es/lt.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lt", function() { return _lt_js__WEBPACK_IMPORTED_MODULE_115__["default"]; });

/* harmony import */ var _lte_js__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ./lte.js */ "./node_modules/ramda/es/lte.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "lte", function() { return _lte_js__WEBPACK_IMPORTED_MODULE_116__["default"]; });

/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ./map.js */ "./node_modules/ramda/es/map.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "map", function() { return _map_js__WEBPACK_IMPORTED_MODULE_117__["default"]; });

/* harmony import */ var _mapAccum_js__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./mapAccum.js */ "./node_modules/ramda/es/mapAccum.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mapAccum", function() { return _mapAccum_js__WEBPACK_IMPORTED_MODULE_118__["default"]; });

/* harmony import */ var _mapAccumRight_js__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./mapAccumRight.js */ "./node_modules/ramda/es/mapAccumRight.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mapAccumRight", function() { return _mapAccumRight_js__WEBPACK_IMPORTED_MODULE_119__["default"]; });

/* harmony import */ var _mapObjIndexed_js__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./mapObjIndexed.js */ "./node_modules/ramda/es/mapObjIndexed.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mapObjIndexed", function() { return _mapObjIndexed_js__WEBPACK_IMPORTED_MODULE_120__["default"]; });

/* harmony import */ var _match_js__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./match.js */ "./node_modules/ramda/es/match.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "match", function() { return _match_js__WEBPACK_IMPORTED_MODULE_121__["default"]; });

/* harmony import */ var _mathMod_js__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./mathMod.js */ "./node_modules/ramda/es/mathMod.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mathMod", function() { return _mathMod_js__WEBPACK_IMPORTED_MODULE_122__["default"]; });

/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./max.js */ "./node_modules/ramda/es/max.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "max", function() { return _max_js__WEBPACK_IMPORTED_MODULE_123__["default"]; });

/* harmony import */ var _maxBy_js__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./maxBy.js */ "./node_modules/ramda/es/maxBy.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "maxBy", function() { return _maxBy_js__WEBPACK_IMPORTED_MODULE_124__["default"]; });

/* harmony import */ var _mean_js__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ./mean.js */ "./node_modules/ramda/es/mean.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mean", function() { return _mean_js__WEBPACK_IMPORTED_MODULE_125__["default"]; });

/* harmony import */ var _median_js__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(/*! ./median.js */ "./node_modules/ramda/es/median.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "median", function() { return _median_js__WEBPACK_IMPORTED_MODULE_126__["default"]; });

/* harmony import */ var _memoizeWith_js__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(/*! ./memoizeWith.js */ "./node_modules/ramda/es/memoizeWith.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "memoizeWith", function() { return _memoizeWith_js__WEBPACK_IMPORTED_MODULE_127__["default"]; });

/* harmony import */ var _merge_js__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(/*! ./merge.js */ "./node_modules/ramda/es/merge.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return _merge_js__WEBPACK_IMPORTED_MODULE_128__["default"]; });

/* harmony import */ var _mergeAll_js__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(/*! ./mergeAll.js */ "./node_modules/ramda/es/mergeAll.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeAll", function() { return _mergeAll_js__WEBPACK_IMPORTED_MODULE_129__["default"]; });

/* harmony import */ var _mergeDeepLeft_js__WEBPACK_IMPORTED_MODULE_130__ = __webpack_require__(/*! ./mergeDeepLeft.js */ "./node_modules/ramda/es/mergeDeepLeft.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeDeepLeft", function() { return _mergeDeepLeft_js__WEBPACK_IMPORTED_MODULE_130__["default"]; });

/* harmony import */ var _mergeDeepRight_js__WEBPACK_IMPORTED_MODULE_131__ = __webpack_require__(/*! ./mergeDeepRight.js */ "./node_modules/ramda/es/mergeDeepRight.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeDeepRight", function() { return _mergeDeepRight_js__WEBPACK_IMPORTED_MODULE_131__["default"]; });

/* harmony import */ var _mergeDeepWith_js__WEBPACK_IMPORTED_MODULE_132__ = __webpack_require__(/*! ./mergeDeepWith.js */ "./node_modules/ramda/es/mergeDeepWith.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeDeepWith", function() { return _mergeDeepWith_js__WEBPACK_IMPORTED_MODULE_132__["default"]; });

/* harmony import */ var _mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_133__ = __webpack_require__(/*! ./mergeDeepWithKey.js */ "./node_modules/ramda/es/mergeDeepWithKey.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeDeepWithKey", function() { return _mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_133__["default"]; });

/* harmony import */ var _mergeLeft_js__WEBPACK_IMPORTED_MODULE_134__ = __webpack_require__(/*! ./mergeLeft.js */ "./node_modules/ramda/es/mergeLeft.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeLeft", function() { return _mergeLeft_js__WEBPACK_IMPORTED_MODULE_134__["default"]; });

/* harmony import */ var _mergeRight_js__WEBPACK_IMPORTED_MODULE_135__ = __webpack_require__(/*! ./mergeRight.js */ "./node_modules/ramda/es/mergeRight.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeRight", function() { return _mergeRight_js__WEBPACK_IMPORTED_MODULE_135__["default"]; });

/* harmony import */ var _mergeWith_js__WEBPACK_IMPORTED_MODULE_136__ = __webpack_require__(/*! ./mergeWith.js */ "./node_modules/ramda/es/mergeWith.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeWith", function() { return _mergeWith_js__WEBPACK_IMPORTED_MODULE_136__["default"]; });

/* harmony import */ var _mergeWithKey_js__WEBPACK_IMPORTED_MODULE_137__ = __webpack_require__(/*! ./mergeWithKey.js */ "./node_modules/ramda/es/mergeWithKey.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeWithKey", function() { return _mergeWithKey_js__WEBPACK_IMPORTED_MODULE_137__["default"]; });

/* harmony import */ var _min_js__WEBPACK_IMPORTED_MODULE_138__ = __webpack_require__(/*! ./min.js */ "./node_modules/ramda/es/min.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "min", function() { return _min_js__WEBPACK_IMPORTED_MODULE_138__["default"]; });

/* harmony import */ var _minBy_js__WEBPACK_IMPORTED_MODULE_139__ = __webpack_require__(/*! ./minBy.js */ "./node_modules/ramda/es/minBy.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "minBy", function() { return _minBy_js__WEBPACK_IMPORTED_MODULE_139__["default"]; });

/* harmony import */ var _modulo_js__WEBPACK_IMPORTED_MODULE_140__ = __webpack_require__(/*! ./modulo.js */ "./node_modules/ramda/es/modulo.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "modulo", function() { return _modulo_js__WEBPACK_IMPORTED_MODULE_140__["default"]; });

/* harmony import */ var _move_js__WEBPACK_IMPORTED_MODULE_141__ = __webpack_require__(/*! ./move.js */ "./node_modules/ramda/es/move.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "move", function() { return _move_js__WEBPACK_IMPORTED_MODULE_141__["default"]; });

/* harmony import */ var _multiply_js__WEBPACK_IMPORTED_MODULE_142__ = __webpack_require__(/*! ./multiply.js */ "./node_modules/ramda/es/multiply.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "multiply", function() { return _multiply_js__WEBPACK_IMPORTED_MODULE_142__["default"]; });

/* harmony import */ var _nAry_js__WEBPACK_IMPORTED_MODULE_143__ = __webpack_require__(/*! ./nAry.js */ "./node_modules/ramda/es/nAry.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "nAry", function() { return _nAry_js__WEBPACK_IMPORTED_MODULE_143__["default"]; });

/* harmony import */ var _negate_js__WEBPACK_IMPORTED_MODULE_144__ = __webpack_require__(/*! ./negate.js */ "./node_modules/ramda/es/negate.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "negate", function() { return _negate_js__WEBPACK_IMPORTED_MODULE_144__["default"]; });

/* harmony import */ var _none_js__WEBPACK_IMPORTED_MODULE_145__ = __webpack_require__(/*! ./none.js */ "./node_modules/ramda/es/none.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "none", function() { return _none_js__WEBPACK_IMPORTED_MODULE_145__["default"]; });

/* harmony import */ var _not_js__WEBPACK_IMPORTED_MODULE_146__ = __webpack_require__(/*! ./not.js */ "./node_modules/ramda/es/not.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "not", function() { return _not_js__WEBPACK_IMPORTED_MODULE_146__["default"]; });

/* harmony import */ var _nth_js__WEBPACK_IMPORTED_MODULE_147__ = __webpack_require__(/*! ./nth.js */ "./node_modules/ramda/es/nth.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "nth", function() { return _nth_js__WEBPACK_IMPORTED_MODULE_147__["default"]; });

/* harmony import */ var _nthArg_js__WEBPACK_IMPORTED_MODULE_148__ = __webpack_require__(/*! ./nthArg.js */ "./node_modules/ramda/es/nthArg.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "nthArg", function() { return _nthArg_js__WEBPACK_IMPORTED_MODULE_148__["default"]; });

/* harmony import */ var _o_js__WEBPACK_IMPORTED_MODULE_149__ = __webpack_require__(/*! ./o.js */ "./node_modules/ramda/es/o.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "o", function() { return _o_js__WEBPACK_IMPORTED_MODULE_149__["default"]; });

/* harmony import */ var _objOf_js__WEBPACK_IMPORTED_MODULE_150__ = __webpack_require__(/*! ./objOf.js */ "./node_modules/ramda/es/objOf.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "objOf", function() { return _objOf_js__WEBPACK_IMPORTED_MODULE_150__["default"]; });

/* harmony import */ var _of_js__WEBPACK_IMPORTED_MODULE_151__ = __webpack_require__(/*! ./of.js */ "./node_modules/ramda/es/of.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "of", function() { return _of_js__WEBPACK_IMPORTED_MODULE_151__["default"]; });

/* harmony import */ var _omit_js__WEBPACK_IMPORTED_MODULE_152__ = __webpack_require__(/*! ./omit.js */ "./node_modules/ramda/es/omit.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "omit", function() { return _omit_js__WEBPACK_IMPORTED_MODULE_152__["default"]; });

/* harmony import */ var _once_js__WEBPACK_IMPORTED_MODULE_153__ = __webpack_require__(/*! ./once.js */ "./node_modules/ramda/es/once.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "once", function() { return _once_js__WEBPACK_IMPORTED_MODULE_153__["default"]; });

/* harmony import */ var _or_js__WEBPACK_IMPORTED_MODULE_154__ = __webpack_require__(/*! ./or.js */ "./node_modules/ramda/es/or.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "or", function() { return _or_js__WEBPACK_IMPORTED_MODULE_154__["default"]; });

/* harmony import */ var _otherwise_js__WEBPACK_IMPORTED_MODULE_155__ = __webpack_require__(/*! ./otherwise.js */ "./node_modules/ramda/es/otherwise.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "otherwise", function() { return _otherwise_js__WEBPACK_IMPORTED_MODULE_155__["default"]; });

/* harmony import */ var _over_js__WEBPACK_IMPORTED_MODULE_156__ = __webpack_require__(/*! ./over.js */ "./node_modules/ramda/es/over.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "over", function() { return _over_js__WEBPACK_IMPORTED_MODULE_156__["default"]; });

/* harmony import */ var _pair_js__WEBPACK_IMPORTED_MODULE_157__ = __webpack_require__(/*! ./pair.js */ "./node_modules/ramda/es/pair.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pair", function() { return _pair_js__WEBPACK_IMPORTED_MODULE_157__["default"]; });

/* harmony import */ var _partial_js__WEBPACK_IMPORTED_MODULE_158__ = __webpack_require__(/*! ./partial.js */ "./node_modules/ramda/es/partial.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "partial", function() { return _partial_js__WEBPACK_IMPORTED_MODULE_158__["default"]; });

/* harmony import */ var _partialRight_js__WEBPACK_IMPORTED_MODULE_159__ = __webpack_require__(/*! ./partialRight.js */ "./node_modules/ramda/es/partialRight.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "partialRight", function() { return _partialRight_js__WEBPACK_IMPORTED_MODULE_159__["default"]; });

/* harmony import */ var _partition_js__WEBPACK_IMPORTED_MODULE_160__ = __webpack_require__(/*! ./partition.js */ "./node_modules/ramda/es/partition.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "partition", function() { return _partition_js__WEBPACK_IMPORTED_MODULE_160__["default"]; });

/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_161__ = __webpack_require__(/*! ./path.js */ "./node_modules/ramda/es/path.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "path", function() { return _path_js__WEBPACK_IMPORTED_MODULE_161__["default"]; });

/* harmony import */ var _pathEq_js__WEBPACK_IMPORTED_MODULE_162__ = __webpack_require__(/*! ./pathEq.js */ "./node_modules/ramda/es/pathEq.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pathEq", function() { return _pathEq_js__WEBPACK_IMPORTED_MODULE_162__["default"]; });

/* harmony import */ var _pathOr_js__WEBPACK_IMPORTED_MODULE_163__ = __webpack_require__(/*! ./pathOr.js */ "./node_modules/ramda/es/pathOr.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pathOr", function() { return _pathOr_js__WEBPACK_IMPORTED_MODULE_163__["default"]; });

/* harmony import */ var _pathSatisfies_js__WEBPACK_IMPORTED_MODULE_164__ = __webpack_require__(/*! ./pathSatisfies.js */ "./node_modules/ramda/es/pathSatisfies.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pathSatisfies", function() { return _pathSatisfies_js__WEBPACK_IMPORTED_MODULE_164__["default"]; });

/* harmony import */ var _pick_js__WEBPACK_IMPORTED_MODULE_165__ = __webpack_require__(/*! ./pick.js */ "./node_modules/ramda/es/pick.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pick", function() { return _pick_js__WEBPACK_IMPORTED_MODULE_165__["default"]; });

/* harmony import */ var _pickAll_js__WEBPACK_IMPORTED_MODULE_166__ = __webpack_require__(/*! ./pickAll.js */ "./node_modules/ramda/es/pickAll.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pickAll", function() { return _pickAll_js__WEBPACK_IMPORTED_MODULE_166__["default"]; });

/* harmony import */ var _pickBy_js__WEBPACK_IMPORTED_MODULE_167__ = __webpack_require__(/*! ./pickBy.js */ "./node_modules/ramda/es/pickBy.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pickBy", function() { return _pickBy_js__WEBPACK_IMPORTED_MODULE_167__["default"]; });

/* harmony import */ var _pipe_js__WEBPACK_IMPORTED_MODULE_168__ = __webpack_require__(/*! ./pipe.js */ "./node_modules/ramda/es/pipe.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pipe", function() { return _pipe_js__WEBPACK_IMPORTED_MODULE_168__["default"]; });

/* harmony import */ var _pipeK_js__WEBPACK_IMPORTED_MODULE_169__ = __webpack_require__(/*! ./pipeK.js */ "./node_modules/ramda/es/pipeK.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pipeK", function() { return _pipeK_js__WEBPACK_IMPORTED_MODULE_169__["default"]; });

/* harmony import */ var _pipeP_js__WEBPACK_IMPORTED_MODULE_170__ = __webpack_require__(/*! ./pipeP.js */ "./node_modules/ramda/es/pipeP.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pipeP", function() { return _pipeP_js__WEBPACK_IMPORTED_MODULE_170__["default"]; });

/* harmony import */ var _pipeWith_js__WEBPACK_IMPORTED_MODULE_171__ = __webpack_require__(/*! ./pipeWith.js */ "./node_modules/ramda/es/pipeWith.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pipeWith", function() { return _pipeWith_js__WEBPACK_IMPORTED_MODULE_171__["default"]; });

/* harmony import */ var _pluck_js__WEBPACK_IMPORTED_MODULE_172__ = __webpack_require__(/*! ./pluck.js */ "./node_modules/ramda/es/pluck.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pluck", function() { return _pluck_js__WEBPACK_IMPORTED_MODULE_172__["default"]; });

/* harmony import */ var _prepend_js__WEBPACK_IMPORTED_MODULE_173__ = __webpack_require__(/*! ./prepend.js */ "./node_modules/ramda/es/prepend.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "prepend", function() { return _prepend_js__WEBPACK_IMPORTED_MODULE_173__["default"]; });

/* harmony import */ var _product_js__WEBPACK_IMPORTED_MODULE_174__ = __webpack_require__(/*! ./product.js */ "./node_modules/ramda/es/product.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "product", function() { return _product_js__WEBPACK_IMPORTED_MODULE_174__["default"]; });

/* harmony import */ var _project_js__WEBPACK_IMPORTED_MODULE_175__ = __webpack_require__(/*! ./project.js */ "./node_modules/ramda/es/project.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "project", function() { return _project_js__WEBPACK_IMPORTED_MODULE_175__["default"]; });

/* harmony import */ var _prop_js__WEBPACK_IMPORTED_MODULE_176__ = __webpack_require__(/*! ./prop.js */ "./node_modules/ramda/es/prop.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "prop", function() { return _prop_js__WEBPACK_IMPORTED_MODULE_176__["default"]; });

/* harmony import */ var _propEq_js__WEBPACK_IMPORTED_MODULE_177__ = __webpack_require__(/*! ./propEq.js */ "./node_modules/ramda/es/propEq.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "propEq", function() { return _propEq_js__WEBPACK_IMPORTED_MODULE_177__["default"]; });

/* harmony import */ var _propIs_js__WEBPACK_IMPORTED_MODULE_178__ = __webpack_require__(/*! ./propIs.js */ "./node_modules/ramda/es/propIs.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "propIs", function() { return _propIs_js__WEBPACK_IMPORTED_MODULE_178__["default"]; });

/* harmony import */ var _propOr_js__WEBPACK_IMPORTED_MODULE_179__ = __webpack_require__(/*! ./propOr.js */ "./node_modules/ramda/es/propOr.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "propOr", function() { return _propOr_js__WEBPACK_IMPORTED_MODULE_179__["default"]; });

/* harmony import */ var _propSatisfies_js__WEBPACK_IMPORTED_MODULE_180__ = __webpack_require__(/*! ./propSatisfies.js */ "./node_modules/ramda/es/propSatisfies.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "propSatisfies", function() { return _propSatisfies_js__WEBPACK_IMPORTED_MODULE_180__["default"]; });

/* harmony import */ var _props_js__WEBPACK_IMPORTED_MODULE_181__ = __webpack_require__(/*! ./props.js */ "./node_modules/ramda/es/props.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "props", function() { return _props_js__WEBPACK_IMPORTED_MODULE_181__["default"]; });

/* harmony import */ var _range_js__WEBPACK_IMPORTED_MODULE_182__ = __webpack_require__(/*! ./range.js */ "./node_modules/ramda/es/range.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "range", function() { return _range_js__WEBPACK_IMPORTED_MODULE_182__["default"]; });

/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_183__ = __webpack_require__(/*! ./reduce.js */ "./node_modules/ramda/es/reduce.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "reduce", function() { return _reduce_js__WEBPACK_IMPORTED_MODULE_183__["default"]; });

/* harmony import */ var _reduceBy_js__WEBPACK_IMPORTED_MODULE_184__ = __webpack_require__(/*! ./reduceBy.js */ "./node_modules/ramda/es/reduceBy.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "reduceBy", function() { return _reduceBy_js__WEBPACK_IMPORTED_MODULE_184__["default"]; });

/* harmony import */ var _reduceRight_js__WEBPACK_IMPORTED_MODULE_185__ = __webpack_require__(/*! ./reduceRight.js */ "./node_modules/ramda/es/reduceRight.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "reduceRight", function() { return _reduceRight_js__WEBPACK_IMPORTED_MODULE_185__["default"]; });

/* harmony import */ var _reduceWhile_js__WEBPACK_IMPORTED_MODULE_186__ = __webpack_require__(/*! ./reduceWhile.js */ "./node_modules/ramda/es/reduceWhile.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "reduceWhile", function() { return _reduceWhile_js__WEBPACK_IMPORTED_MODULE_186__["default"]; });

/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_187__ = __webpack_require__(/*! ./reduced.js */ "./node_modules/ramda/es/reduced.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "reduced", function() { return _reduced_js__WEBPACK_IMPORTED_MODULE_187__["default"]; });

/* harmony import */ var _reject_js__WEBPACK_IMPORTED_MODULE_188__ = __webpack_require__(/*! ./reject.js */ "./node_modules/ramda/es/reject.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "reject", function() { return _reject_js__WEBPACK_IMPORTED_MODULE_188__["default"]; });

/* harmony import */ var _remove_js__WEBPACK_IMPORTED_MODULE_189__ = __webpack_require__(/*! ./remove.js */ "./node_modules/ramda/es/remove.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "remove", function() { return _remove_js__WEBPACK_IMPORTED_MODULE_189__["default"]; });

/* harmony import */ var _repeat_js__WEBPACK_IMPORTED_MODULE_190__ = __webpack_require__(/*! ./repeat.js */ "./node_modules/ramda/es/repeat.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "repeat", function() { return _repeat_js__WEBPACK_IMPORTED_MODULE_190__["default"]; });

/* harmony import */ var _replace_js__WEBPACK_IMPORTED_MODULE_191__ = __webpack_require__(/*! ./replace.js */ "./node_modules/ramda/es/replace.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "replace", function() { return _replace_js__WEBPACK_IMPORTED_MODULE_191__["default"]; });

/* harmony import */ var _reverse_js__WEBPACK_IMPORTED_MODULE_192__ = __webpack_require__(/*! ./reverse.js */ "./node_modules/ramda/es/reverse.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "reverse", function() { return _reverse_js__WEBPACK_IMPORTED_MODULE_192__["default"]; });

/* harmony import */ var _scan_js__WEBPACK_IMPORTED_MODULE_193__ = __webpack_require__(/*! ./scan.js */ "./node_modules/ramda/es/scan.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scan", function() { return _scan_js__WEBPACK_IMPORTED_MODULE_193__["default"]; });

/* harmony import */ var _sequence_js__WEBPACK_IMPORTED_MODULE_194__ = __webpack_require__(/*! ./sequence.js */ "./node_modules/ramda/es/sequence.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sequence", function() { return _sequence_js__WEBPACK_IMPORTED_MODULE_194__["default"]; });

/* harmony import */ var _set_js__WEBPACK_IMPORTED_MODULE_195__ = __webpack_require__(/*! ./set.js */ "./node_modules/ramda/es/set.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "set", function() { return _set_js__WEBPACK_IMPORTED_MODULE_195__["default"]; });

/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_196__ = __webpack_require__(/*! ./slice.js */ "./node_modules/ramda/es/slice.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "slice", function() { return _slice_js__WEBPACK_IMPORTED_MODULE_196__["default"]; });

/* harmony import */ var _sort_js__WEBPACK_IMPORTED_MODULE_197__ = __webpack_require__(/*! ./sort.js */ "./node_modules/ramda/es/sort.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sort", function() { return _sort_js__WEBPACK_IMPORTED_MODULE_197__["default"]; });

/* harmony import */ var _sortBy_js__WEBPACK_IMPORTED_MODULE_198__ = __webpack_require__(/*! ./sortBy.js */ "./node_modules/ramda/es/sortBy.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sortBy", function() { return _sortBy_js__WEBPACK_IMPORTED_MODULE_198__["default"]; });

/* harmony import */ var _sortWith_js__WEBPACK_IMPORTED_MODULE_199__ = __webpack_require__(/*! ./sortWith.js */ "./node_modules/ramda/es/sortWith.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sortWith", function() { return _sortWith_js__WEBPACK_IMPORTED_MODULE_199__["default"]; });

/* harmony import */ var _split_js__WEBPACK_IMPORTED_MODULE_200__ = __webpack_require__(/*! ./split.js */ "./node_modules/ramda/es/split.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "split", function() { return _split_js__WEBPACK_IMPORTED_MODULE_200__["default"]; });

/* harmony import */ var _splitAt_js__WEBPACK_IMPORTED_MODULE_201__ = __webpack_require__(/*! ./splitAt.js */ "./node_modules/ramda/es/splitAt.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "splitAt", function() { return _splitAt_js__WEBPACK_IMPORTED_MODULE_201__["default"]; });

/* harmony import */ var _splitEvery_js__WEBPACK_IMPORTED_MODULE_202__ = __webpack_require__(/*! ./splitEvery.js */ "./node_modules/ramda/es/splitEvery.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "splitEvery", function() { return _splitEvery_js__WEBPACK_IMPORTED_MODULE_202__["default"]; });

/* harmony import */ var _splitWhen_js__WEBPACK_IMPORTED_MODULE_203__ = __webpack_require__(/*! ./splitWhen.js */ "./node_modules/ramda/es/splitWhen.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "splitWhen", function() { return _splitWhen_js__WEBPACK_IMPORTED_MODULE_203__["default"]; });

/* harmony import */ var _startsWith_js__WEBPACK_IMPORTED_MODULE_204__ = __webpack_require__(/*! ./startsWith.js */ "./node_modules/ramda/es/startsWith.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "startsWith", function() { return _startsWith_js__WEBPACK_IMPORTED_MODULE_204__["default"]; });

/* harmony import */ var _subtract_js__WEBPACK_IMPORTED_MODULE_205__ = __webpack_require__(/*! ./subtract.js */ "./node_modules/ramda/es/subtract.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "subtract", function() { return _subtract_js__WEBPACK_IMPORTED_MODULE_205__["default"]; });

/* harmony import */ var _sum_js__WEBPACK_IMPORTED_MODULE_206__ = __webpack_require__(/*! ./sum.js */ "./node_modules/ramda/es/sum.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sum", function() { return _sum_js__WEBPACK_IMPORTED_MODULE_206__["default"]; });

/* harmony import */ var _symmetricDifference_js__WEBPACK_IMPORTED_MODULE_207__ = __webpack_require__(/*! ./symmetricDifference.js */ "./node_modules/ramda/es/symmetricDifference.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symmetricDifference", function() { return _symmetricDifference_js__WEBPACK_IMPORTED_MODULE_207__["default"]; });

/* harmony import */ var _symmetricDifferenceWith_js__WEBPACK_IMPORTED_MODULE_208__ = __webpack_require__(/*! ./symmetricDifferenceWith.js */ "./node_modules/ramda/es/symmetricDifferenceWith.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "symmetricDifferenceWith", function() { return _symmetricDifferenceWith_js__WEBPACK_IMPORTED_MODULE_208__["default"]; });

/* harmony import */ var _tail_js__WEBPACK_IMPORTED_MODULE_209__ = __webpack_require__(/*! ./tail.js */ "./node_modules/ramda/es/tail.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tail", function() { return _tail_js__WEBPACK_IMPORTED_MODULE_209__["default"]; });

/* harmony import */ var _take_js__WEBPACK_IMPORTED_MODULE_210__ = __webpack_require__(/*! ./take.js */ "./node_modules/ramda/es/take.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "take", function() { return _take_js__WEBPACK_IMPORTED_MODULE_210__["default"]; });

/* harmony import */ var _takeLast_js__WEBPACK_IMPORTED_MODULE_211__ = __webpack_require__(/*! ./takeLast.js */ "./node_modules/ramda/es/takeLast.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "takeLast", function() { return _takeLast_js__WEBPACK_IMPORTED_MODULE_211__["default"]; });

/* harmony import */ var _takeLastWhile_js__WEBPACK_IMPORTED_MODULE_212__ = __webpack_require__(/*! ./takeLastWhile.js */ "./node_modules/ramda/es/takeLastWhile.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "takeLastWhile", function() { return _takeLastWhile_js__WEBPACK_IMPORTED_MODULE_212__["default"]; });

/* harmony import */ var _takeWhile_js__WEBPACK_IMPORTED_MODULE_213__ = __webpack_require__(/*! ./takeWhile.js */ "./node_modules/ramda/es/takeWhile.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "takeWhile", function() { return _takeWhile_js__WEBPACK_IMPORTED_MODULE_213__["default"]; });

/* harmony import */ var _tap_js__WEBPACK_IMPORTED_MODULE_214__ = __webpack_require__(/*! ./tap.js */ "./node_modules/ramda/es/tap.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tap", function() { return _tap_js__WEBPACK_IMPORTED_MODULE_214__["default"]; });

/* harmony import */ var _test_js__WEBPACK_IMPORTED_MODULE_215__ = __webpack_require__(/*! ./test.js */ "./node_modules/ramda/es/test.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "test", function() { return _test_js__WEBPACK_IMPORTED_MODULE_215__["default"]; });

/* harmony import */ var _then_js__WEBPACK_IMPORTED_MODULE_216__ = __webpack_require__(/*! ./then.js */ "./node_modules/ramda/es/then.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "then", function() { return _then_js__WEBPACK_IMPORTED_MODULE_216__["default"]; });

/* harmony import */ var _times_js__WEBPACK_IMPORTED_MODULE_217__ = __webpack_require__(/*! ./times.js */ "./node_modules/ramda/es/times.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "times", function() { return _times_js__WEBPACK_IMPORTED_MODULE_217__["default"]; });

/* harmony import */ var _toLower_js__WEBPACK_IMPORTED_MODULE_218__ = __webpack_require__(/*! ./toLower.js */ "./node_modules/ramda/es/toLower.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toLower", function() { return _toLower_js__WEBPACK_IMPORTED_MODULE_218__["default"]; });

/* harmony import */ var _toPairs_js__WEBPACK_IMPORTED_MODULE_219__ = __webpack_require__(/*! ./toPairs.js */ "./node_modules/ramda/es/toPairs.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toPairs", function() { return _toPairs_js__WEBPACK_IMPORTED_MODULE_219__["default"]; });

/* harmony import */ var _toPairsIn_js__WEBPACK_IMPORTED_MODULE_220__ = __webpack_require__(/*! ./toPairsIn.js */ "./node_modules/ramda/es/toPairsIn.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toPairsIn", function() { return _toPairsIn_js__WEBPACK_IMPORTED_MODULE_220__["default"]; });

/* harmony import */ var _toString_js__WEBPACK_IMPORTED_MODULE_221__ = __webpack_require__(/*! ./toString.js */ "./node_modules/ramda/es/toString.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toString", function() { return _toString_js__WEBPACK_IMPORTED_MODULE_221__["default"]; });

/* harmony import */ var _toUpper_js__WEBPACK_IMPORTED_MODULE_222__ = __webpack_require__(/*! ./toUpper.js */ "./node_modules/ramda/es/toUpper.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toUpper", function() { return _toUpper_js__WEBPACK_IMPORTED_MODULE_222__["default"]; });

/* harmony import */ var _transduce_js__WEBPACK_IMPORTED_MODULE_223__ = __webpack_require__(/*! ./transduce.js */ "./node_modules/ramda/es/transduce.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transduce", function() { return _transduce_js__WEBPACK_IMPORTED_MODULE_223__["default"]; });

/* harmony import */ var _transpose_js__WEBPACK_IMPORTED_MODULE_224__ = __webpack_require__(/*! ./transpose.js */ "./node_modules/ramda/es/transpose.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transpose", function() { return _transpose_js__WEBPACK_IMPORTED_MODULE_224__["default"]; });

/* harmony import */ var _traverse_js__WEBPACK_IMPORTED_MODULE_225__ = __webpack_require__(/*! ./traverse.js */ "./node_modules/ramda/es/traverse.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "traverse", function() { return _traverse_js__WEBPACK_IMPORTED_MODULE_225__["default"]; });

/* harmony import */ var _trim_js__WEBPACK_IMPORTED_MODULE_226__ = __webpack_require__(/*! ./trim.js */ "./node_modules/ramda/es/trim.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "trim", function() { return _trim_js__WEBPACK_IMPORTED_MODULE_226__["default"]; });

/* harmony import */ var _tryCatch_js__WEBPACK_IMPORTED_MODULE_227__ = __webpack_require__(/*! ./tryCatch.js */ "./node_modules/ramda/es/tryCatch.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tryCatch", function() { return _tryCatch_js__WEBPACK_IMPORTED_MODULE_227__["default"]; });

/* harmony import */ var _type_js__WEBPACK_IMPORTED_MODULE_228__ = __webpack_require__(/*! ./type.js */ "./node_modules/ramda/es/type.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "type", function() { return _type_js__WEBPACK_IMPORTED_MODULE_228__["default"]; });

/* harmony import */ var _unapply_js__WEBPACK_IMPORTED_MODULE_229__ = __webpack_require__(/*! ./unapply.js */ "./node_modules/ramda/es/unapply.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unapply", function() { return _unapply_js__WEBPACK_IMPORTED_MODULE_229__["default"]; });

/* harmony import */ var _unary_js__WEBPACK_IMPORTED_MODULE_230__ = __webpack_require__(/*! ./unary.js */ "./node_modules/ramda/es/unary.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unary", function() { return _unary_js__WEBPACK_IMPORTED_MODULE_230__["default"]; });

/* harmony import */ var _uncurryN_js__WEBPACK_IMPORTED_MODULE_231__ = __webpack_require__(/*! ./uncurryN.js */ "./node_modules/ramda/es/uncurryN.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "uncurryN", function() { return _uncurryN_js__WEBPACK_IMPORTED_MODULE_231__["default"]; });

/* harmony import */ var _unfold_js__WEBPACK_IMPORTED_MODULE_232__ = __webpack_require__(/*! ./unfold.js */ "./node_modules/ramda/es/unfold.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unfold", function() { return _unfold_js__WEBPACK_IMPORTED_MODULE_232__["default"]; });

/* harmony import */ var _union_js__WEBPACK_IMPORTED_MODULE_233__ = __webpack_require__(/*! ./union.js */ "./node_modules/ramda/es/union.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "union", function() { return _union_js__WEBPACK_IMPORTED_MODULE_233__["default"]; });

/* harmony import */ var _unionWith_js__WEBPACK_IMPORTED_MODULE_234__ = __webpack_require__(/*! ./unionWith.js */ "./node_modules/ramda/es/unionWith.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unionWith", function() { return _unionWith_js__WEBPACK_IMPORTED_MODULE_234__["default"]; });

/* harmony import */ var _uniq_js__WEBPACK_IMPORTED_MODULE_235__ = __webpack_require__(/*! ./uniq.js */ "./node_modules/ramda/es/uniq.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "uniq", function() { return _uniq_js__WEBPACK_IMPORTED_MODULE_235__["default"]; });

/* harmony import */ var _uniqBy_js__WEBPACK_IMPORTED_MODULE_236__ = __webpack_require__(/*! ./uniqBy.js */ "./node_modules/ramda/es/uniqBy.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "uniqBy", function() { return _uniqBy_js__WEBPACK_IMPORTED_MODULE_236__["default"]; });

/* harmony import */ var _uniqWith_js__WEBPACK_IMPORTED_MODULE_237__ = __webpack_require__(/*! ./uniqWith.js */ "./node_modules/ramda/es/uniqWith.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "uniqWith", function() { return _uniqWith_js__WEBPACK_IMPORTED_MODULE_237__["default"]; });

/* harmony import */ var _unless_js__WEBPACK_IMPORTED_MODULE_238__ = __webpack_require__(/*! ./unless.js */ "./node_modules/ramda/es/unless.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unless", function() { return _unless_js__WEBPACK_IMPORTED_MODULE_238__["default"]; });

/* harmony import */ var _unnest_js__WEBPACK_IMPORTED_MODULE_239__ = __webpack_require__(/*! ./unnest.js */ "./node_modules/ramda/es/unnest.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unnest", function() { return _unnest_js__WEBPACK_IMPORTED_MODULE_239__["default"]; });

/* harmony import */ var _until_js__WEBPACK_IMPORTED_MODULE_240__ = __webpack_require__(/*! ./until.js */ "./node_modules/ramda/es/until.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "until", function() { return _until_js__WEBPACK_IMPORTED_MODULE_240__["default"]; });

/* harmony import */ var _update_js__WEBPACK_IMPORTED_MODULE_241__ = __webpack_require__(/*! ./update.js */ "./node_modules/ramda/es/update.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "update", function() { return _update_js__WEBPACK_IMPORTED_MODULE_241__["default"]; });

/* harmony import */ var _useWith_js__WEBPACK_IMPORTED_MODULE_242__ = __webpack_require__(/*! ./useWith.js */ "./node_modules/ramda/es/useWith.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useWith", function() { return _useWith_js__WEBPACK_IMPORTED_MODULE_242__["default"]; });

/* harmony import */ var _values_js__WEBPACK_IMPORTED_MODULE_243__ = __webpack_require__(/*! ./values.js */ "./node_modules/ramda/es/values.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "values", function() { return _values_js__WEBPACK_IMPORTED_MODULE_243__["default"]; });

/* harmony import */ var _valuesIn_js__WEBPACK_IMPORTED_MODULE_244__ = __webpack_require__(/*! ./valuesIn.js */ "./node_modules/ramda/es/valuesIn.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "valuesIn", function() { return _valuesIn_js__WEBPACK_IMPORTED_MODULE_244__["default"]; });

/* harmony import */ var _view_js__WEBPACK_IMPORTED_MODULE_245__ = __webpack_require__(/*! ./view.js */ "./node_modules/ramda/es/view.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "view", function() { return _view_js__WEBPACK_IMPORTED_MODULE_245__["default"]; });

/* harmony import */ var _when_js__WEBPACK_IMPORTED_MODULE_246__ = __webpack_require__(/*! ./when.js */ "./node_modules/ramda/es/when.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "when", function() { return _when_js__WEBPACK_IMPORTED_MODULE_246__["default"]; });

/* harmony import */ var _where_js__WEBPACK_IMPORTED_MODULE_247__ = __webpack_require__(/*! ./where.js */ "./node_modules/ramda/es/where.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "where", function() { return _where_js__WEBPACK_IMPORTED_MODULE_247__["default"]; });

/* harmony import */ var _whereEq_js__WEBPACK_IMPORTED_MODULE_248__ = __webpack_require__(/*! ./whereEq.js */ "./node_modules/ramda/es/whereEq.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "whereEq", function() { return _whereEq_js__WEBPACK_IMPORTED_MODULE_248__["default"]; });

/* harmony import */ var _without_js__WEBPACK_IMPORTED_MODULE_249__ = __webpack_require__(/*! ./without.js */ "./node_modules/ramda/es/without.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "without", function() { return _without_js__WEBPACK_IMPORTED_MODULE_249__["default"]; });

/* harmony import */ var _xprod_js__WEBPACK_IMPORTED_MODULE_250__ = __webpack_require__(/*! ./xprod.js */ "./node_modules/ramda/es/xprod.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "xprod", function() { return _xprod_js__WEBPACK_IMPORTED_MODULE_250__["default"]; });

/* harmony import */ var _zip_js__WEBPACK_IMPORTED_MODULE_251__ = __webpack_require__(/*! ./zip.js */ "./node_modules/ramda/es/zip.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return _zip_js__WEBPACK_IMPORTED_MODULE_251__["default"]; });

/* harmony import */ var _zipObj_js__WEBPACK_IMPORTED_MODULE_252__ = __webpack_require__(/*! ./zipObj.js */ "./node_modules/ramda/es/zipObj.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zipObj", function() { return _zipObj_js__WEBPACK_IMPORTED_MODULE_252__["default"]; });

/* harmony import */ var _zipWith_js__WEBPACK_IMPORTED_MODULE_253__ = __webpack_require__(/*! ./zipWith.js */ "./node_modules/ramda/es/zipWith.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zipWith", function() { return _zipWith_js__WEBPACK_IMPORTED_MODULE_253__["default"]; });

/* harmony import */ var _thunkify_js__WEBPACK_IMPORTED_MODULE_254__ = __webpack_require__(/*! ./thunkify.js */ "./node_modules/ramda/es/thunkify.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "thunkify", function() { return _thunkify_js__WEBPACK_IMPORTED_MODULE_254__["default"]; });

































































































































































































































































/***/ }),

/***/ "./node_modules/ramda/es/indexBy.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/indexBy.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _reduceBy_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reduceBy.js */ "./node_modules/ramda/es/reduceBy.js");


/**
 * Given a function that generates a key, turns a list of objects into an
 * object indexing the objects by the given key. Note that if multiple
 * objects generate the same value for the indexing key only the last value
 * will be included in the generated object.
 *
 * Acts as a transducer if a transformer is given in list position.
 *
 * @func
 * @memberOf R
 * @since v0.19.0
 * @category List
 * @sig (a -> String) -> [{k: v}] -> {k: {k: v}}
 * @param {Function} fn Function :: a -> String
 * @param {Array} array The array of objects to index
 * @return {Object} An object indexing each array element by the given property.
 * @example
 *
 *      const list = [{id: 'xyz', title: 'A'}, {id: 'abc', title: 'B'}];
 *      R.indexBy(R.prop('id'), list);
 *      //=> {abc: {id: 'abc', title: 'B'}, xyz: {id: 'xyz', title: 'A'}}
 */
var indexBy = /*#__PURE__*/Object(_reduceBy_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function (acc, elem) {
  return elem;
}, null);
/* harmony default export */ __webpack_exports__["default"] = (indexBy);

/***/ }),

/***/ "./node_modules/ramda/es/indexOf.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/indexOf.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_indexOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_indexOf.js */ "./node_modules/ramda/es/internal/_indexOf.js");
/* harmony import */ var _internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isArray.js */ "./node_modules/ramda/es/internal/_isArray.js");




/**
 * Returns the position of the first occurrence of an item in an array, or -1
 * if the item is not included in the array. [`R.equals`](#equals) is used to
 * determine equality.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig a -> [a] -> Number
 * @param {*} target The item to find.
 * @param {Array} xs The array to search in.
 * @return {Number} the index of the target, or -1 if the target is not found.
 * @see R.lastIndexOf
 * @example
 *
 *      R.indexOf(3, [1,2,3,4]); //=> 2
 *      R.indexOf(10, [1,2,3,4]); //=> -1
 */
var indexOf = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function indexOf(target, xs) {
  return typeof xs.indexOf === 'function' && !Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_2__["default"])(xs) ? xs.indexOf(target) : Object(_internal_indexOf_js__WEBPACK_IMPORTED_MODULE_1__["default"])(xs, target, 0);
});
/* harmony default export */ __webpack_exports__["default"] = (indexOf);

/***/ }),

/***/ "./node_modules/ramda/es/init.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/init.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./slice.js */ "./node_modules/ramda/es/slice.js");


/**
 * Returns all but the last element of the given list or string.
 *
 * @func
 * @memberOf R
 * @since v0.9.0
 * @category List
 * @sig [a] -> [a]
 * @sig String -> String
 * @param {*} list
 * @return {*}
 * @see R.last, R.head, R.tail
 * @example
 *
 *      R.init([1, 2, 3]);  //=> [1, 2]
 *      R.init([1, 2]);     //=> [1]
 *      R.init([1]);        //=> []
 *      R.init([]);         //=> []
 *
 *      R.init('abc');  //=> 'ab'
 *      R.init('ab');   //=> 'a'
 *      R.init('a');    //=> ''
 *      R.init('');     //=> ''
 */
var init = /*#__PURE__*/Object(_slice_js__WEBPACK_IMPORTED_MODULE_0__["default"])(0, -1);
/* harmony default export */ __webpack_exports__["default"] = (init);

/***/ }),

/***/ "./node_modules/ramda/es/innerJoin.js":
/*!********************************************!*\
  !*** ./node_modules/ramda/es/innerJoin.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includesWith.js */ "./node_modules/ramda/es/internal/_includesWith.js");
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");
/* harmony import */ var _internal_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_filter.js */ "./node_modules/ramda/es/internal/_filter.js");




/**
 * Takes a predicate `pred`, a list `xs`, and a list `ys`, and returns a list
 * `xs'` comprising each of the elements of `xs` which is equal to one or more
 * elements of `ys` according to `pred`.
 *
 * `pred` must be a binary function expecting an element from each list.
 *
 * `xs`, `ys`, and `xs'` are treated as sets, semantically, so ordering should
 * not be significant, but since `xs'` is ordered the implementation guarantees
 * that its values are in the same order as they appear in `xs`. Duplicates are
 * not removed, so `xs'` may contain duplicates if `xs` contains duplicates.
 *
 * @func
 * @memberOf R
 * @since v0.24.0
 * @category Relation
 * @sig ((a, b) -> Boolean) -> [a] -> [b] -> [a]
 * @param {Function} pred
 * @param {Array} xs
 * @param {Array} ys
 * @return {Array}
 * @see R.intersection
 * @example
 *
 *      R.innerJoin(
 *        (record, id) => record.id === id,
 *        [{id: 824, name: 'Richie Furay'},
 *         {id: 956, name: 'Dewey Martin'},
 *         {id: 313, name: 'Bruce Palmer'},
 *         {id: 456, name: 'Stephen Stills'},
 *         {id: 177, name: 'Neil Young'}],
 *        [177, 456, 999]
 *      );
 *      //=> [{id: 456, name: 'Stephen Stills'}, {id: 177, name: 'Neil Young'}]
 */
var innerJoin = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function innerJoin(pred, xs, ys) {
  return Object(_internal_filter_js__WEBPACK_IMPORTED_MODULE_2__["default"])(function (x) {
    return Object(_internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__["default"])(pred, x, ys);
  }, xs);
});
/* harmony default export */ __webpack_exports__["default"] = (innerJoin);

/***/ }),

/***/ "./node_modules/ramda/es/insert.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/insert.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");


/**
 * Inserts the supplied element into the list, at the specified `index`. _Note that

 * this is not destructive_: it returns a copy of the list with the changes.
 * <small>No lists have been harmed in the application of this function.</small>
 *
 * @func
 * @memberOf R
 * @since v0.2.2
 * @category List
 * @sig Number -> a -> [a] -> [a]
 * @param {Number} index The position to insert the element
 * @param {*} elt The element to insert into the Array
 * @param {Array} list The list to insert into
 * @return {Array} A new Array with `elt` inserted at `index`.
 * @example
 *
 *      R.insert(2, 'x', [1,2,3,4]); //=> [1,2,'x',3,4]
 */
var insert = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function insert(idx, elt, list) {
  idx = idx < list.length && idx >= 0 ? idx : list.length;
  var result = Array.prototype.slice.call(list, 0);
  result.splice(idx, 0, elt);
  return result;
});
/* harmony default export */ __webpack_exports__["default"] = (insert);

/***/ }),

/***/ "./node_modules/ramda/es/insertAll.js":
/*!********************************************!*\
  !*** ./node_modules/ramda/es/insertAll.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");


/**
 * Inserts the sub-list into the list, at the specified `index`. _Note that this is not
 * destructive_: it returns a copy of the list with the changes.
 * <small>No lists have been harmed in the application of this function.</small>
 *
 * @func
 * @memberOf R
 * @since v0.9.0
 * @category List
 * @sig Number -> [a] -> [a] -> [a]
 * @param {Number} index The position to insert the sub-list
 * @param {Array} elts The sub-list to insert into the Array
 * @param {Array} list The list to insert the sub-list into
 * @return {Array} A new Array with `elts` inserted starting at `index`.
 * @example
 *
 *      R.insertAll(2, ['x','y','z'], [1,2,3,4]); //=> [1,2,'x','y','z',3,4]
 */
var insertAll = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function insertAll(idx, elts, list) {
  idx = idx < list.length && idx >= 0 ? idx : list.length;
  return [].concat(Array.prototype.slice.call(list, 0, idx), elts, Array.prototype.slice.call(list, idx));
});
/* harmony default export */ __webpack_exports__["default"] = (insertAll);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_Set.js":
/*!************************************************!*\
  !*** ./node_modules/ramda/es/internal/_Set.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_includes.js */ "./node_modules/ramda/es/internal/_includes.js");


var _Set = /*#__PURE__*/function () {
  function _Set() {
    /* globals Set */
    this._nativeSet = typeof Set === 'function' ? new Set() : null;
    this._items = {};
  }

  // until we figure out why jsdoc chokes on this
  // @param item The item to add to the Set
  // @returns {boolean} true if the item did not exist prior, otherwise false
  //
  _Set.prototype.add = function (item) {
    return !hasOrAdd(item, true, this);
  };

  //
  // @param item The item to check for existence in the Set
  // @returns {boolean} true if the item exists in the Set, otherwise false
  //
  _Set.prototype.has = function (item) {
    return hasOrAdd(item, false, this);
  };

  //
  // Combines the logic for checking whether an item is a member of the set and
  // for adding a new item to the set.
  //
  // @param item       The item to check or add to the Set instance.
  // @param shouldAdd  If true, the item will be added to the set if it doesn't
  //                   already exist.
  // @param set        The set instance to check or add to.
  // @return {boolean} true if the item already existed, otherwise false.
  //
  return _Set;
}();

function hasOrAdd(item, shouldAdd, set) {
  var type = typeof item;
  var prevSize, newSize;
  switch (type) {
    case 'string':
    case 'number':
      // distinguish between +0 and -0
      if (item === 0 && 1 / item === -Infinity) {
        if (set._items['-0']) {
          return true;
        } else {
          if (shouldAdd) {
            set._items['-0'] = true;
          }
          return false;
        }
      }
      // these types can all utilise the native Set
      if (set._nativeSet !== null) {
        if (shouldAdd) {
          prevSize = set._nativeSet.size;
          set._nativeSet.add(item);
          newSize = set._nativeSet.size;
          return newSize === prevSize;
        } else {
          return set._nativeSet.has(item);
        }
      } else {
        if (!(type in set._items)) {
          if (shouldAdd) {
            set._items[type] = {};
            set._items[type][item] = true;
          }
          return false;
        } else if (item in set._items[type]) {
          return true;
        } else {
          if (shouldAdd) {
            set._items[type][item] = true;
          }
          return false;
        }
      }

    case 'boolean':
      // set._items['boolean'] holds a two element array
      // representing [ falseExists, trueExists ]
      if (type in set._items) {
        var bIdx = item ? 1 : 0;
        if (set._items[type][bIdx]) {
          return true;
        } else {
          if (shouldAdd) {
            set._items[type][bIdx] = true;
          }
          return false;
        }
      } else {
        if (shouldAdd) {
          set._items[type] = item ? [false, true] : [true, false];
        }
        return false;
      }

    case 'function':
      // compare functions for reference equality
      if (set._nativeSet !== null) {
        if (shouldAdd) {
          prevSize = set._nativeSet.size;
          set._nativeSet.add(item);
          newSize = set._nativeSet.size;
          return newSize === prevSize;
        } else {
          return set._nativeSet.has(item);
        }
      } else {
        if (!(type in set._items)) {
          if (shouldAdd) {
            set._items[type] = [item];
          }
          return false;
        }
        if (!Object(_includes_js__WEBPACK_IMPORTED_MODULE_0__["default"])(item, set._items[type])) {
          if (shouldAdd) {
            set._items[type].push(item);
          }
          return false;
        }
        return true;
      }

    case 'undefined':
      if (set._items[type]) {
        return true;
      } else {
        if (shouldAdd) {
          set._items[type] = true;
        }
        return false;
      }

    case 'object':
      if (item === null) {
        if (!set._items['null']) {
          if (shouldAdd) {
            set._items['null'] = true;
          }
          return false;
        }
        return true;
      }
    /* falls through */
    default:
      // reduce the search size of heterogeneous sets by creating buckets
      // for each type.
      type = Object.prototype.toString.call(item);
      if (!(type in set._items)) {
        if (shouldAdd) {
          set._items[type] = [item];
        }
        return false;
      }
      // scan through all previously applied items
      if (!Object(_includes_js__WEBPACK_IMPORTED_MODULE_0__["default"])(item, set._items[type])) {
        if (shouldAdd) {
          set._items[type].push(item);
        }
        return false;
      }
      return true;
  }
}

// A simple Set type that honours R.equals semantics
/* harmony default export */ __webpack_exports__["default"] = (_Set);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_aperture.js":
/*!*****************************************************!*\
  !*** ./node_modules/ramda/es/internal/_aperture.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _aperture; });
function _aperture(n, list) {
  var idx = 0;
  var limit = list.length - (n - 1);
  var acc = new Array(limit >= 0 ? limit : 0);
  while (idx < limit) {
    acc[idx] = Array.prototype.slice.call(list, idx, idx + n);
    idx += 1;
  }
  return acc;
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_arity.js":
/*!**************************************************!*\
  !*** ./node_modules/ramda/es/internal/_arity.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _arity; });
function _arity(n, fn) {
  /* eslint-disable no-unused-vars */
  switch (n) {
    case 0:
      return function () {
        return fn.apply(this, arguments);
      };
    case 1:
      return function (a0) {
        return fn.apply(this, arguments);
      };
    case 2:
      return function (a0, a1) {
        return fn.apply(this, arguments);
      };
    case 3:
      return function (a0, a1, a2) {
        return fn.apply(this, arguments);
      };
    case 4:
      return function (a0, a1, a2, a3) {
        return fn.apply(this, arguments);
      };
    case 5:
      return function (a0, a1, a2, a3, a4) {
        return fn.apply(this, arguments);
      };
    case 6:
      return function (a0, a1, a2, a3, a4, a5) {
        return fn.apply(this, arguments);
      };
    case 7:
      return function (a0, a1, a2, a3, a4, a5, a6) {
        return fn.apply(this, arguments);
      };
    case 8:
      return function (a0, a1, a2, a3, a4, a5, a6, a7) {
        return fn.apply(this, arguments);
      };
    case 9:
      return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {
        return fn.apply(this, arguments);
      };
    case 10:
      return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {
        return fn.apply(this, arguments);
      };
    default:
      throw new Error('First argument to _arity must be a non-negative integer no greater than ten');
  }
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_arrayFromIterator.js":
/*!**************************************************************!*\
  !*** ./node_modules/ramda/es/internal/_arrayFromIterator.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _arrayFromIterator; });
function _arrayFromIterator(iter) {
  var list = [];
  var next;
  while (!(next = iter.next()).done) {
    list.push(next.value);
  }
  return list;
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_assertPromise.js":
/*!**********************************************************!*\
  !*** ./node_modules/ramda/es/internal/_assertPromise.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _assertPromise; });
/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isFunction.js */ "./node_modules/ramda/es/internal/_isFunction.js");
/* harmony import */ var _toString_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_toString.js */ "./node_modules/ramda/es/internal/_toString.js");



function _assertPromise(name, p) {
  if (p == null || !Object(_isFunction_js__WEBPACK_IMPORTED_MODULE_0__["default"])(p.then)) {
    throw new TypeError('`' + name + '` expected a Promise, received ' + Object(_toString_js__WEBPACK_IMPORTED_MODULE_1__["default"])(p, []));
  }
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_checkForMethod.js":
/*!***********************************************************!*\
  !*** ./node_modules/ramda/es/internal/_checkForMethod.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _checkForMethod; });
/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArray.js */ "./node_modules/ramda/es/internal/_isArray.js");


/**
 * This checks whether a function has a [methodname] function. If it isn't an
 * array it will execute that function otherwise it will default to the ramda
 * implementation.
 *
 * @private
 * @param {Function} fn ramda implemtation
 * @param {String} methodname property to check for a custom implementation
 * @return {Object} Whatever the return value of the method is.
 */
function _checkForMethod(methodname, fn) {
  return function () {
    var length = arguments.length;
    if (length === 0) {
      return fn();
    }
    var obj = arguments[length - 1];
    return Object(_isArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(obj) || typeof obj[methodname] !== 'function' ? fn.apply(this, arguments) : obj[methodname].apply(obj, Array.prototype.slice.call(arguments, 0, length - 1));
  };
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_clone.js":
/*!**************************************************!*\
  !*** ./node_modules/ramda/es/internal/_clone.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _clone; });
/* harmony import */ var _cloneRegExp_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cloneRegExp.js */ "./node_modules/ramda/es/internal/_cloneRegExp.js");
/* harmony import */ var _type_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../type.js */ "./node_modules/ramda/es/type.js");



/**
 * Copies an object.
 *
 * @private
 * @param {*} value The value to be copied
 * @param {Array} refFrom Array containing the source references
 * @param {Array} refTo Array containing the copied source references
 * @param {Boolean} deep Whether or not to perform deep cloning.
 * @return {*} The copied value.
 */
function _clone(value, refFrom, refTo, deep) {
  var copy = function copy(copiedValue) {
    var len = refFrom.length;
    var idx = 0;
    while (idx < len) {
      if (value === refFrom[idx]) {
        return refTo[idx];
      }
      idx += 1;
    }
    refFrom[idx + 1] = value;
    refTo[idx + 1] = copiedValue;
    for (var key in value) {
      copiedValue[key] = deep ? _clone(value[key], refFrom, refTo, true) : value[key];
    }
    return copiedValue;
  };
  switch (Object(_type_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value)) {
    case 'Object':
      return copy({});
    case 'Array':
      return copy([]);
    case 'Date':
      return new Date(value.valueOf());
    case 'RegExp':
      return Object(_cloneRegExp_js__WEBPACK_IMPORTED_MODULE_0__["default"])(value);
    default:
      return value;
  }
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_cloneRegExp.js":
/*!********************************************************!*\
  !*** ./node_modules/ramda/es/internal/_cloneRegExp.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _cloneRegExp; });
function _cloneRegExp(pattern) {
                                  return new RegExp(pattern.source, (pattern.global ? 'g' : '') + (pattern.ignoreCase ? 'i' : '') + (pattern.multiline ? 'm' : '') + (pattern.sticky ? 'y' : '') + (pattern.unicode ? 'u' : ''));
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_complement.js":
/*!*******************************************************!*\
  !*** ./node_modules/ramda/es/internal/_complement.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _complement; });
function _complement(f) {
  return function () {
    return !f.apply(this, arguments);
  };
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_concat.js":
/*!***************************************************!*\
  !*** ./node_modules/ramda/es/internal/_concat.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _concat; });
/**
 * Private `concat` function to merge two array-like objects.
 *
 * @private
 * @param {Array|Arguments} [set1=[]] An array-like object.
 * @param {Array|Arguments} [set2=[]] An array-like object.
 * @return {Array} A new, merged array.
 * @example
 *
 *      _concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]
 */
function _concat(set1, set2) {
  set1 = set1 || [];
  set2 = set2 || [];
  var idx;
  var len1 = set1.length;
  var len2 = set2.length;
  var result = [];

  idx = 0;
  while (idx < len1) {
    result[result.length] = set1[idx];
    idx += 1;
  }
  idx = 0;
  while (idx < len2) {
    result[result.length] = set2[idx];
    idx += 1;
  }
  return result;
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_createPartialApplicator.js":
/*!********************************************************************!*\
  !*** ./node_modules/ramda/es/internal/_createPartialApplicator.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _createPartialApplicator; });
/* harmony import */ var _arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_arity.js */ "./node_modules/ramda/es/internal/_arity.js");
/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");



function _createPartialApplicator(concat) {
  return Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function (fn, args) {
    return Object(_arity_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Math.max(0, fn.length - args.length), function () {
      return fn.apply(this, concat(args, arguments));
    });
  });
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_curry1.js":
/*!***************************************************!*\
  !*** ./node_modules/ramda/es/internal/_curry1.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _curry1; });
/* harmony import */ var _isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isPlaceholder.js */ "./node_modules/ramda/es/internal/_isPlaceholder.js");


/**
 * Optimized internal one-arity curry function.
 *
 * @private
 * @category Function
 * @param {Function} fn The function to curry.
 * @return {Function} The curried function.
 */
function _curry1(fn) {
  return function f1(a) {
    if (arguments.length === 0 || Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_0__["default"])(a)) {
      return f1;
    } else {
      return fn.apply(this, arguments);
    }
  };
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_curry2.js":
/*!***************************************************!*\
  !*** ./node_modules/ramda/es/internal/_curry2.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _curry2; });
/* harmony import */ var _curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isPlaceholder.js */ "./node_modules/ramda/es/internal/_isPlaceholder.js");



/**
 * Optimized internal two-arity curry function.
 *
 * @private
 * @category Function
 * @param {Function} fn The function to curry.
 * @return {Function} The curried function.
 */
function _curry2(fn) {
  return function f2(a, b) {
    switch (arguments.length) {
      case 0:
        return f2;
      case 1:
        return Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__["default"])(a) ? f2 : Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function (_b) {
          return fn(a, _b);
        });
      default:
        return Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__["default"])(a) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__["default"])(b) ? f2 : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__["default"])(a) ? Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function (_a) {
          return fn(_a, b);
        }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__["default"])(b) ? Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function (_b) {
          return fn(a, _b);
        }) : fn(a, b);
    }
  };
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_curry3.js":
/*!***************************************************!*\
  !*** ./node_modules/ramda/es/internal/_curry3.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _curry3; });
/* harmony import */ var _curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_isPlaceholder.js */ "./node_modules/ramda/es/internal/_isPlaceholder.js");




/**
 * Optimized internal three-arity curry function.
 *
 * @private
 * @category Function
 * @param {Function} fn The function to curry.
 * @return {Function} The curried function.
 */
function _curry3(fn) {
  return function f3(a, b, c) {
    switch (arguments.length) {
      case 0:
        return f3;
      case 1:
        return Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__["default"])(a) ? f3 : Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function (_b, _c) {
          return fn(a, _b, _c);
        });
      case 2:
        return Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__["default"])(a) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__["default"])(b) ? f3 : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__["default"])(a) ? Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function (_a, _c) {
          return fn(_a, b, _c);
        }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__["default"])(b) ? Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function (_b, _c) {
          return fn(a, _b, _c);
        }) : Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function (_c) {
          return fn(a, b, _c);
        });
      default:
        return Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__["default"])(a) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__["default"])(b) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__["default"])(c) ? f3 : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__["default"])(a) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__["default"])(b) ? Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function (_a, _b) {
          return fn(_a, _b, c);
        }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__["default"])(a) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__["default"])(c) ? Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function (_a, _c) {
          return fn(_a, b, _c);
        }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__["default"])(b) && Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__["default"])(c) ? Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function (_b, _c) {
          return fn(a, _b, _c);
        }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__["default"])(a) ? Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function (_a) {
          return fn(_a, b, c);
        }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__["default"])(b) ? Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function (_b) {
          return fn(a, _b, c);
        }) : Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_2__["default"])(c) ? Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function (_c) {
          return fn(a, b, _c);
        }) : fn(a, b, c);
    }
  };
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_curryN.js":
/*!***************************************************!*\
  !*** ./node_modules/ramda/es/internal/_curryN.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _curryN; });
/* harmony import */ var _arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_arity.js */ "./node_modules/ramda/es/internal/_arity.js");
/* harmony import */ var _isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isPlaceholder.js */ "./node_modules/ramda/es/internal/_isPlaceholder.js");



/**
 * Internal curryN function.
 *
 * @private
 * @category Function
 * @param {Number} length The arity of the curried function.
 * @param {Array} received An array of arguments received thus far.
 * @param {Function} fn The function to curry.
 * @return {Function} The curried function.
 */
function _curryN(length, received, fn) {
  return function () {
    var combined = [];
    var argsIdx = 0;
    var left = length;
    var combinedIdx = 0;
    while (combinedIdx < received.length || argsIdx < arguments.length) {
      var result;
      if (combinedIdx < received.length && (!Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__["default"])(received[combinedIdx]) || argsIdx >= arguments.length)) {
        result = received[combinedIdx];
      } else {
        result = arguments[argsIdx];
        argsIdx += 1;
      }
      combined[combinedIdx] = result;
      if (!Object(_isPlaceholder_js__WEBPACK_IMPORTED_MODULE_1__["default"])(result)) {
        left -= 1;
      }
      combinedIdx += 1;
    }
    return left <= 0 ? fn.apply(this, combined) : Object(_arity_js__WEBPACK_IMPORTED_MODULE_0__["default"])(left, _curryN(length, combined, fn));
  };
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_dispatchable.js":
/*!*********************************************************!*\
  !*** ./node_modules/ramda/es/internal/_dispatchable.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _dispatchable; });
/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArray.js */ "./node_modules/ramda/es/internal/_isArray.js");
/* harmony import */ var _isTransformer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isTransformer.js */ "./node_modules/ramda/es/internal/_isTransformer.js");



/**
 * Returns a function that dispatches with different strategies based on the
 * object in list position (last argument). If it is an array, executes [fn].
 * Otherwise, if it has a function with one of the given method names, it will
 * execute that function (functor case). Otherwise, if it is a transformer,
 * uses transducer [xf] to return a new transformer (transducer case).
 * Otherwise, it will default to executing [fn].
 *
 * @private
 * @param {Array} methodNames properties to check for a custom implementation
 * @param {Function} xf transducer to initialize if object is transformer
 * @param {Function} fn default ramda implementation
 * @return {Function} A function that dispatches on object in list position
 */
function _dispatchable(methodNames, xf, fn) {
  return function () {
    if (arguments.length === 0) {
      return fn();
    }
    var args = Array.prototype.slice.call(arguments, 0);
    var obj = args.pop();
    if (!Object(_isArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(obj)) {
      var idx = 0;
      while (idx < methodNames.length) {
        if (typeof obj[methodNames[idx]] === 'function') {
          return obj[methodNames[idx]].apply(obj, args);
        }
        idx += 1;
      }
      if (Object(_isTransformer_js__WEBPACK_IMPORTED_MODULE_1__["default"])(obj)) {
        var transducer = xf.apply(null, args);
        return transducer(obj);
      }
    }
    return fn.apply(this, arguments);
  };
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_dropLast.js":
/*!*****************************************************!*\
  !*** ./node_modules/ramda/es/internal/_dropLast.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return dropLast; });
/* harmony import */ var _take_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../take.js */ "./node_modules/ramda/es/take.js");


function dropLast(n, xs) {
  return Object(_take_js__WEBPACK_IMPORTED_MODULE_0__["default"])(n < xs.length ? xs.length - n : 0, xs);
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_dropLastWhile.js":
/*!**********************************************************!*\
  !*** ./node_modules/ramda/es/internal/_dropLastWhile.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return dropLastWhile; });
/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../slice.js */ "./node_modules/ramda/es/slice.js");


function dropLastWhile(pred, xs) {
  var idx = xs.length - 1;
  while (idx >= 0 && pred(xs[idx])) {
    idx -= 1;
  }
  return Object(_slice_js__WEBPACK_IMPORTED_MODULE_0__["default"])(0, idx + 1, xs);
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_equals.js":
/*!***************************************************!*\
  !*** ./node_modules/ramda/es/internal/_equals.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _equals; });
/* harmony import */ var _arrayFromIterator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_arrayFromIterator.js */ "./node_modules/ramda/es/internal/_arrayFromIterator.js");
/* harmony import */ var _includesWith_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_includesWith.js */ "./node_modules/ramda/es/internal/_includesWith.js");
/* harmony import */ var _functionName_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_functionName.js */ "./node_modules/ramda/es/internal/_functionName.js");
/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_has.js */ "./node_modules/ramda/es/internal/_has.js");
/* harmony import */ var _objectIs_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_objectIs.js */ "./node_modules/ramda/es/internal/_objectIs.js");
/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../keys.js */ "./node_modules/ramda/es/keys.js");
/* harmony import */ var _type_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../type.js */ "./node_modules/ramda/es/type.js");








/**
 * private _uniqContentEquals function.
 * That function is checking equality of 2 iterator contents with 2 assumptions
 * - iterators lengths are the same
 * - iterators values are unique
 *
 * false-positive result will be returned for comparision of, e.g.
 * - [1,2,3] and [1,2,3,4]
 * - [1,1,1] and [1,2,3]
 * */

function _uniqContentEquals(aIterator, bIterator, stackA, stackB) {
  var a = Object(_arrayFromIterator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(aIterator);
  var b = Object(_arrayFromIterator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(bIterator);

  function eq(_a, _b) {
    return _equals(_a, _b, stackA.slice(), stackB.slice());
  }

  // if *a* array contains any element that is not included in *b*
  return !Object(_includesWith_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function (b, aItem) {
    return !Object(_includesWith_js__WEBPACK_IMPORTED_MODULE_1__["default"])(eq, aItem, b);
  }, b, a);
}

function _equals(a, b, stackA, stackB) {
  if (Object(_objectIs_js__WEBPACK_IMPORTED_MODULE_4__["default"])(a, b)) {
    return true;
  }

  var typeA = Object(_type_js__WEBPACK_IMPORTED_MODULE_6__["default"])(a);

  if (typeA !== Object(_type_js__WEBPACK_IMPORTED_MODULE_6__["default"])(b)) {
    return false;
  }

  if (a == null || b == null) {
    return false;
  }

  if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {
    return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);
  }

  if (typeof a.equals === 'function' || typeof b.equals === 'function') {
    return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);
  }

  switch (typeA) {
    case 'Arguments':
    case 'Array':
    case 'Object':
      if (typeof a.constructor === 'function' && Object(_functionName_js__WEBPACK_IMPORTED_MODULE_2__["default"])(a.constructor) === 'Promise') {
        return a === b;
      }
      break;
    case 'Boolean':
    case 'Number':
    case 'String':
      if (!(typeof a === typeof b && Object(_objectIs_js__WEBPACK_IMPORTED_MODULE_4__["default"])(a.valueOf(), b.valueOf()))) {
        return false;
      }
      break;
    case 'Date':
      if (!Object(_objectIs_js__WEBPACK_IMPORTED_MODULE_4__["default"])(a.valueOf(), b.valueOf())) {
        return false;
      }
      break;
    case 'Error':
      return a.name === b.name && a.message === b.message;
    case 'RegExp':
      if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {
        return false;
      }
      break;
  }

  var idx = stackA.length - 1;
  while (idx >= 0) {
    if (stackA[idx] === a) {
      return stackB[idx] === b;
    }
    idx -= 1;
  }

  switch (typeA) {
    case 'Map':
      if (a.size !== b.size) {
        return false;
      }

      return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));
    case 'Set':
      if (a.size !== b.size) {
        return false;
      }

      return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));
    case 'Arguments':
    case 'Array':
    case 'Object':
    case 'Boolean':
    case 'Number':
    case 'String':
    case 'Date':
    case 'Error':
    case 'RegExp':
    case 'Int8Array':
    case 'Uint8Array':
    case 'Uint8ClampedArray':
    case 'Int16Array':
    case 'Uint16Array':
    case 'Int32Array':
    case 'Uint32Array':
    case 'Float32Array':
    case 'Float64Array':
    case 'ArrayBuffer':
      break;
    default:
      // Values of other types are only equal if identical.
      return false;
  }

  var keysA = Object(_keys_js__WEBPACK_IMPORTED_MODULE_5__["default"])(a);
  if (keysA.length !== Object(_keys_js__WEBPACK_IMPORTED_MODULE_5__["default"])(b).length) {
    return false;
  }

  var extendedStackA = stackA.concat([a]);
  var extendedStackB = stackB.concat([b]);

  idx = keysA.length - 1;
  while (idx >= 0) {
    var key = keysA[idx];
    if (!(Object(_has_js__WEBPACK_IMPORTED_MODULE_3__["default"])(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {
      return false;
    }
    idx -= 1;
  }
  return true;
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_filter.js":
/*!***************************************************!*\
  !*** ./node_modules/ramda/es/internal/_filter.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _filter; });
function _filter(fn, list) {
  var idx = 0;
  var len = list.length;
  var result = [];

  while (idx < len) {
    if (fn(list[idx])) {
      result[result.length] = list[idx];
    }
    idx += 1;
  }
  return result;
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_flatCat.js":
/*!****************************************************!*\
  !*** ./node_modules/ramda/es/internal/_flatCat.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _forceReduced_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_forceReduced.js */ "./node_modules/ramda/es/internal/_forceReduced.js");
/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isArrayLike.js */ "./node_modules/ramda/es/internal/_isArrayLike.js");
/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_reduce.js */ "./node_modules/ramda/es/internal/_reduce.js");
/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_xfBase.js */ "./node_modules/ramda/es/internal/_xfBase.js");





var preservingReduced = function (xf) {
  return {
    '@@transducer/init': _xfBase_js__WEBPACK_IMPORTED_MODULE_3__["default"].init,
    '@@transducer/result': function (result) {
      return xf['@@transducer/result'](result);
    },
    '@@transducer/step': function (result, input) {
      var ret = xf['@@transducer/step'](result, input);
      return ret['@@transducer/reduced'] ? Object(_forceReduced_js__WEBPACK_IMPORTED_MODULE_0__["default"])(ret) : ret;
    }
  };
};

var _flatCat = function _xcat(xf) {
  var rxf = preservingReduced(xf);
  return {
    '@@transducer/init': _xfBase_js__WEBPACK_IMPORTED_MODULE_3__["default"].init,
    '@@transducer/result': function (result) {
      return rxf['@@transducer/result'](result);
    },
    '@@transducer/step': function (result, input) {
      return !Object(_isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__["default"])(input) ? Object(_reduce_js__WEBPACK_IMPORTED_MODULE_2__["default"])(rxf, result, [input]) : Object(_reduce_js__WEBPACK_IMPORTED_MODULE_2__["default"])(rxf, result, input);
    }
  };
};

/* harmony default export */ __webpack_exports__["default"] = (_flatCat);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_forceReduced.js":
/*!*********************************************************!*\
  !*** ./node_modules/ramda/es/internal/_forceReduced.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _forceReduced; });
function _forceReduced(x) {
  return {
    '@@transducer/value': x,
    '@@transducer/reduced': true
  };
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_functionName.js":
/*!*********************************************************!*\
  !*** ./node_modules/ramda/es/internal/_functionName.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _functionName; });
function _functionName(f) {
  // String(x => x) evaluates to "x => x", so the pattern may not match.
  var match = String(f).match(/^function (\w*)/);
  return match == null ? '' : match[1];
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_has.js":
/*!************************************************!*\
  !*** ./node_modules/ramda/es/internal/_has.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _has; });
function _has(prop, obj) {
  return Object.prototype.hasOwnProperty.call(obj, prop);
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_identity.js":
/*!*****************************************************!*\
  !*** ./node_modules/ramda/es/internal/_identity.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _identity; });
function _identity(x) {
  return x;
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_includes.js":
/*!*****************************************************!*\
  !*** ./node_modules/ramda/es/internal/_includes.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _includes; });
/* harmony import */ var _indexOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_indexOf.js */ "./node_modules/ramda/es/internal/_indexOf.js");


function _includes(a, list) {
  return Object(_indexOf_js__WEBPACK_IMPORTED_MODULE_0__["default"])(list, a, 0) >= 0;
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_includesWith.js":
/*!*********************************************************!*\
  !*** ./node_modules/ramda/es/internal/_includesWith.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _includesWith; });
function _includesWith(pred, x, list) {
  var idx = 0;
  var len = list.length;

  while (idx < len) {
    if (pred(x, list[idx])) {
      return true;
    }
    idx += 1;
  }
  return false;
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_indexOf.js":
/*!****************************************************!*\
  !*** ./node_modules/ramda/es/internal/_indexOf.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _indexOf; });
/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../equals.js */ "./node_modules/ramda/es/equals.js");


function _indexOf(list, a, idx) {
  var inf, item;
  // Array.prototype.indexOf doesn't exist below IE9
  if (typeof list.indexOf === 'function') {
    switch (typeof a) {
      case 'number':
        if (a === 0) {
          // manually crawl the list to distinguish between +0 and -0
          inf = 1 / a;
          while (idx < list.length) {
            item = list[idx];
            if (item === 0 && 1 / item === inf) {
              return idx;
            }
            idx += 1;
          }
          return -1;
        } else if (a !== a) {
          // NaN
          while (idx < list.length) {
            item = list[idx];
            if (typeof item === 'number' && item !== item) {
              return idx;
            }
            idx += 1;
          }
          return -1;
        }
        // non-zero numbers can utilise Set
        return list.indexOf(a, idx);

      // all these types can utilise Set
      case 'string':
      case 'boolean':
      case 'function':
      case 'undefined':
        return list.indexOf(a, idx);

      case 'object':
        if (a === null) {
          // null can utilise Set
          return list.indexOf(a, idx);
        }
    }
  }
  // anything else not covered above, defer to R.equals
  while (idx < list.length) {
    if (Object(_equals_js__WEBPACK_IMPORTED_MODULE_0__["default"])(list[idx], a)) {
      return idx;
    }
    idx += 1;
  }
  return -1;
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_isArguments.js":
/*!********************************************************!*\
  !*** ./node_modules/ramda/es/internal/_isArguments.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_has.js */ "./node_modules/ramda/es/internal/_has.js");


var toString = Object.prototype.toString;
var _isArguments = /*#__PURE__*/function () {
  return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {
    return toString.call(x) === '[object Arguments]';
  } : function _isArguments(x) {
    return Object(_has_js__WEBPACK_IMPORTED_MODULE_0__["default"])('callee', x);
  };
}();

/* harmony default export */ __webpack_exports__["default"] = (_isArguments);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_isArray.js":
/*!****************************************************!*\
  !*** ./node_modules/ramda/es/internal/_isArray.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * Tests whether or not an object is an array.
 *
 * @private
 * @param {*} val The object to test.
 * @return {Boolean} `true` if `val` is an array, `false` otherwise.
 * @example
 *
 *      _isArray([]); //=> true
 *      _isArray(null); //=> false
 *      _isArray({}); //=> false
 */
/* harmony default export */ __webpack_exports__["default"] = (Array.isArray || function _isArray(val) {
  return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';
});

/***/ }),

/***/ "./node_modules/ramda/es/internal/_isArrayLike.js":
/*!********************************************************!*\
  !*** ./node_modules/ramda/es/internal/_isArrayLike.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isArray.js */ "./node_modules/ramda/es/internal/_isArray.js");
/* harmony import */ var _isString_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_isString.js */ "./node_modules/ramda/es/internal/_isString.js");




/**
 * Tests whether or not an object is similar to an array.
 *
 * @private
 * @category Type
 * @category List
 * @sig * -> Boolean
 * @param {*} x The object to test.
 * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.
 * @example
 *
 *      _isArrayLike([]); //=> true
 *      _isArrayLike(true); //=> false
 *      _isArrayLike({}); //=> false
 *      _isArrayLike({length: 10}); //=> false
 *      _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true
 */
var _isArrayLike = /*#__PURE__*/Object(_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function isArrayLike(x) {
  if (Object(_isArray_js__WEBPACK_IMPORTED_MODULE_1__["default"])(x)) {
    return true;
  }
  if (!x) {
    return false;
  }
  if (typeof x !== 'object') {
    return false;
  }
  if (Object(_isString_js__WEBPACK_IMPORTED_MODULE_2__["default"])(x)) {
    return false;
  }
  if (x.nodeType === 1) {
    return !!x.length;
  }
  if (x.length === 0) {
    return true;
  }
  if (x.length > 0) {
    return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);
  }
  return false;
});
/* harmony default export */ __webpack_exports__["default"] = (_isArrayLike);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_isFunction.js":
/*!*******************************************************!*\
  !*** ./node_modules/ramda/es/internal/_isFunction.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _isFunction; });
function _isFunction(x) {
  return Object.prototype.toString.call(x) === '[object Function]';
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_isInteger.js":
/*!******************************************************!*\
  !*** ./node_modules/ramda/es/internal/_isInteger.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * Determine if the passed argument is an integer.
 *
 * @private
 * @param {*} n
 * @category Type
 * @return {Boolean}
 */
/* harmony default export */ __webpack_exports__["default"] = (Number.isInteger || function _isInteger(n) {
  return n << 0 === n;
});

/***/ }),

/***/ "./node_modules/ramda/es/internal/_isNumber.js":
/*!*****************************************************!*\
  !*** ./node_modules/ramda/es/internal/_isNumber.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _isNumber; });
function _isNumber(x) {
  return Object.prototype.toString.call(x) === '[object Number]';
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_isObject.js":
/*!*****************************************************!*\
  !*** ./node_modules/ramda/es/internal/_isObject.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _isObject; });
function _isObject(x) {
  return Object.prototype.toString.call(x) === '[object Object]';
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_isPlaceholder.js":
/*!**********************************************************!*\
  !*** ./node_modules/ramda/es/internal/_isPlaceholder.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _isPlaceholder; });
function _isPlaceholder(a) {
       return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_isRegExp.js":
/*!*****************************************************!*\
  !*** ./node_modules/ramda/es/internal/_isRegExp.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _isRegExp; });
function _isRegExp(x) {
  return Object.prototype.toString.call(x) === '[object RegExp]';
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_isString.js":
/*!*****************************************************!*\
  !*** ./node_modules/ramda/es/internal/_isString.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _isString; });
function _isString(x) {
  return Object.prototype.toString.call(x) === '[object String]';
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_isTransformer.js":
/*!**********************************************************!*\
  !*** ./node_modules/ramda/es/internal/_isTransformer.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _isTransformer; });
function _isTransformer(obj) {
  return obj != null && typeof obj['@@transducer/step'] === 'function';
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_makeFlat.js":
/*!*****************************************************!*\
  !*** ./node_modules/ramda/es/internal/_makeFlat.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _makeFlat; });
/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArrayLike.js */ "./node_modules/ramda/es/internal/_isArrayLike.js");


/**
 * `_makeFlat` is a helper function that returns a one-level or fully recursive
 * function based on the flag passed in.
 *
 * @private
 */
function _makeFlat(recursive) {
  return function flatt(list) {
    var value, jlen, j;
    var result = [];
    var idx = 0;
    var ilen = list.length;

    while (idx < ilen) {
      if (Object(_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__["default"])(list[idx])) {
        value = recursive ? flatt(list[idx]) : list[idx];
        j = 0;
        jlen = value.length;
        while (j < jlen) {
          result[result.length] = value[j];
          j += 1;
        }
      } else {
        result[result.length] = list[idx];
      }
      idx += 1;
    }
    return result;
  };
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_map.js":
/*!************************************************!*\
  !*** ./node_modules/ramda/es/internal/_map.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _map; });
function _map(fn, functor) {
  var idx = 0;
  var len = functor.length;
  var result = Array(len);
  while (idx < len) {
    result[idx] = fn(functor[idx]);
    idx += 1;
  }
  return result;
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_objectAssign.js":
/*!*********************************************************!*\
  !*** ./node_modules/ramda/es/internal/_objectAssign.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_has.js */ "./node_modules/ramda/es/internal/_has.js");


// Based on https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
function _objectAssign(target) {
  if (target == null) {
    throw new TypeError('Cannot convert undefined or null to object');
  }

  var output = Object(target);
  var idx = 1;
  var length = arguments.length;
  while (idx < length) {
    var source = arguments[idx];
    if (source != null) {
      for (var nextKey in source) {
        if (Object(_has_js__WEBPACK_IMPORTED_MODULE_0__["default"])(nextKey, source)) {
          output[nextKey] = source[nextKey];
        }
      }
    }
    idx += 1;
  }
  return output;
}

/* harmony default export */ __webpack_exports__["default"] = (typeof Object.assign === 'function' ? Object.assign : _objectAssign);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_objectIs.js":
/*!*****************************************************!*\
  !*** ./node_modules/ramda/es/internal/_objectIs.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
function _objectIs(a, b) {
  // SameValue algorithm
  if (a === b) {
    // Steps 1-5, 7-10
    // Steps 6.b-6.e: +0 != -0
    return a !== 0 || 1 / a === 1 / b;
  } else {
    // Step 6.a: NaN == NaN
    return a !== a && b !== b;
  }
}

/* harmony default export */ __webpack_exports__["default"] = (typeof Object.is === 'function' ? Object.is : _objectIs);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_of.js":
/*!***********************************************!*\
  !*** ./node_modules/ramda/es/internal/_of.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _of; });
function _of(x) {
  return [x];
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_pipe.js":
/*!*************************************************!*\
  !*** ./node_modules/ramda/es/internal/_pipe.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _pipe; });
function _pipe(f, g) {
  return function () {
    return g.call(this, f.apply(this, arguments));
  };
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_pipeP.js":
/*!**************************************************!*\
  !*** ./node_modules/ramda/es/internal/_pipeP.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _pipeP; });
function _pipeP(f, g) {
  return function () {
    var ctx = this;
    return f.apply(ctx, arguments).then(function (x) {
      return g.call(ctx, x);
    });
  };
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_quote.js":
/*!**************************************************!*\
  !*** ./node_modules/ramda/es/internal/_quote.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _quote; });
function _quote(s) {
  var escaped = s.replace(/\\/g, '\\\\').replace(/[\b]/g, '\\b') // \b matches word boundary; [\b] matches backspace
  .replace(/\f/g, '\\f').replace(/\n/g, '\\n').replace(/\r/g, '\\r').replace(/\t/g, '\\t').replace(/\v/g, '\\v').replace(/\0/g, '\\0');

  return '"' + escaped.replace(/"/g, '\\"') + '"';
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_reduce.js":
/*!***************************************************!*\
  !*** ./node_modules/ramda/es/internal/_reduce.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _reduce; });
/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isArrayLike.js */ "./node_modules/ramda/es/internal/_isArrayLike.js");
/* harmony import */ var _xwrap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xwrap.js */ "./node_modules/ramda/es/internal/_xwrap.js");
/* harmony import */ var _bind_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../bind.js */ "./node_modules/ramda/es/bind.js");




function _arrayReduce(xf, acc, list) {
  var idx = 0;
  var len = list.length;
  while (idx < len) {
    acc = xf['@@transducer/step'](acc, list[idx]);
    if (acc && acc['@@transducer/reduced']) {
      acc = acc['@@transducer/value'];
      break;
    }
    idx += 1;
  }
  return xf['@@transducer/result'](acc);
}

function _iterableReduce(xf, acc, iter) {
  var step = iter.next();
  while (!step.done) {
    acc = xf['@@transducer/step'](acc, step.value);
    if (acc && acc['@@transducer/reduced']) {
      acc = acc['@@transducer/value'];
      break;
    }
    step = iter.next();
  }
  return xf['@@transducer/result'](acc);
}

function _methodReduce(xf, acc, obj, methodName) {
  return xf['@@transducer/result'](obj[methodName](Object(_bind_js__WEBPACK_IMPORTED_MODULE_2__["default"])(xf['@@transducer/step'], xf), acc));
}

var symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';

function _reduce(fn, acc, list) {
  if (typeof fn === 'function') {
    fn = Object(_xwrap_js__WEBPACK_IMPORTED_MODULE_1__["default"])(fn);
  }
  if (Object(_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__["default"])(list)) {
    return _arrayReduce(fn, acc, list);
  }
  if (typeof list['fantasy-land/reduce'] === 'function') {
    return _methodReduce(fn, acc, list, 'fantasy-land/reduce');
  }
  if (list[symIterator] != null) {
    return _iterableReduce(fn, acc, list[symIterator]());
  }
  if (typeof list.next === 'function') {
    return _iterableReduce(fn, acc, list);
  }
  if (typeof list.reduce === 'function') {
    return _methodReduce(fn, acc, list, 'reduce');
  }

  throw new TypeError('reduce: list must be array or iterable');
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_reduced.js":
/*!****************************************************!*\
  !*** ./node_modules/ramda/es/internal/_reduced.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _reduced; });
function _reduced(x) {
  return x && x['@@transducer/reduced'] ? x : {
    '@@transducer/value': x,
    '@@transducer/reduced': true
  };
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_stepCat.js":
/*!****************************************************!*\
  !*** ./node_modules/ramda/es/internal/_stepCat.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _stepCat; });
/* harmony import */ var _objectAssign_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_objectAssign.js */ "./node_modules/ramda/es/internal/_objectAssign.js");
/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_identity.js */ "./node_modules/ramda/es/internal/_identity.js");
/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_isArrayLike.js */ "./node_modules/ramda/es/internal/_isArrayLike.js");
/* harmony import */ var _isTransformer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_isTransformer.js */ "./node_modules/ramda/es/internal/_isTransformer.js");
/* harmony import */ var _objOf_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../objOf.js */ "./node_modules/ramda/es/objOf.js");






var _stepCatArray = {
  '@@transducer/init': Array,
  '@@transducer/step': function (xs, x) {
    xs.push(x);
    return xs;
  },
  '@@transducer/result': _identity_js__WEBPACK_IMPORTED_MODULE_1__["default"]
};
var _stepCatString = {
  '@@transducer/init': String,
  '@@transducer/step': function (a, b) {
    return a + b;
  },
  '@@transducer/result': _identity_js__WEBPACK_IMPORTED_MODULE_1__["default"]
};
var _stepCatObject = {
  '@@transducer/init': Object,
  '@@transducer/step': function (result, input) {
    return Object(_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__["default"])(result, Object(_isArrayLike_js__WEBPACK_IMPORTED_MODULE_2__["default"])(input) ? Object(_objOf_js__WEBPACK_IMPORTED_MODULE_4__["default"])(input[0], input[1]) : input);
  },
  '@@transducer/result': _identity_js__WEBPACK_IMPORTED_MODULE_1__["default"]
};

function _stepCat(obj) {
  if (Object(_isTransformer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(obj)) {
    return obj;
  }
  if (Object(_isArrayLike_js__WEBPACK_IMPORTED_MODULE_2__["default"])(obj)) {
    return _stepCatArray;
  }
  if (typeof obj === 'string') {
    return _stepCatString;
  }
  if (typeof obj === 'object') {
    return _stepCatObject;
  }
  throw new Error('Cannot create transformer for ' + obj);
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_toISOString.js":
/*!********************************************************!*\
  !*** ./node_modules/ramda/es/internal/_toISOString.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/**
 * Polyfill from <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString>.
 */
var pad = function pad(n) {
  return (n < 10 ? '0' : '') + n;
};

var _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {
  return d.toISOString();
} : function _toISOString(d) {
  return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';
};

/* harmony default export */ __webpack_exports__["default"] = (_toISOString);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_toString.js":
/*!*****************************************************!*\
  !*** ./node_modules/ramda/es/internal/_toString.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _toString; });
/* harmony import */ var _includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_includes.js */ "./node_modules/ramda/es/internal/_includes.js");
/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_map.js */ "./node_modules/ramda/es/internal/_map.js");
/* harmony import */ var _quote_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_quote.js */ "./node_modules/ramda/es/internal/_quote.js");
/* harmony import */ var _toISOString_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_toISOString.js */ "./node_modules/ramda/es/internal/_toISOString.js");
/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../keys.js */ "./node_modules/ramda/es/keys.js");
/* harmony import */ var _reject_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../reject.js */ "./node_modules/ramda/es/reject.js");







function _toString(x, seen) {
  var recur = function recur(y) {
    var xs = seen.concat([x]);
    return Object(_includes_js__WEBPACK_IMPORTED_MODULE_0__["default"])(y, xs) ? '<Circular>' : _toString(y, xs);
  };

  //  mapPairs :: (Object, [String]) -> [String]
  var mapPairs = function (obj, keys) {
    return Object(_map_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function (k) {
      return Object(_quote_js__WEBPACK_IMPORTED_MODULE_2__["default"])(k) + ': ' + recur(obj[k]);
    }, keys.slice().sort());
  };

  switch (Object.prototype.toString.call(x)) {
    case '[object Arguments]':
      return '(function() { return arguments; }(' + Object(_map_js__WEBPACK_IMPORTED_MODULE_1__["default"])(recur, x).join(', ') + '))';
    case '[object Array]':
      return '[' + Object(_map_js__WEBPACK_IMPORTED_MODULE_1__["default"])(recur, x).concat(mapPairs(x, Object(_reject_js__WEBPACK_IMPORTED_MODULE_5__["default"])(function (k) {
        return (/^\d+$/.test(k)
        );
      }, Object(_keys_js__WEBPACK_IMPORTED_MODULE_4__["default"])(x)))).join(', ') + ']';
    case '[object Boolean]':
      return typeof x === 'object' ? 'new Boolean(' + recur(x.valueOf()) + ')' : x.toString();
    case '[object Date]':
      return 'new Date(' + (isNaN(x.valueOf()) ? recur(NaN) : Object(_quote_js__WEBPACK_IMPORTED_MODULE_2__["default"])(Object(_toISOString_js__WEBPACK_IMPORTED_MODULE_3__["default"])(x))) + ')';
    case '[object Null]':
      return 'null';
    case '[object Number]':
      return typeof x === 'object' ? 'new Number(' + recur(x.valueOf()) + ')' : 1 / x === -Infinity ? '-0' : x.toString(10);
    case '[object String]':
      return typeof x === 'object' ? 'new String(' + recur(x.valueOf()) + ')' : Object(_quote_js__WEBPACK_IMPORTED_MODULE_2__["default"])(x);
    case '[object Undefined]':
      return 'undefined';
    default:
      if (typeof x.toString === 'function') {
        var repr = x.toString();
        if (repr !== '[object Object]') {
          return repr;
        }
      }
      return '{' + mapPairs(x, Object(_keys_js__WEBPACK_IMPORTED_MODULE_4__["default"])(x)).join(', ') + '}';
  }
}

/***/ }),

/***/ "./node_modules/ramda/es/internal/_xall.js":
/*!*************************************************!*\
  !*** ./node_modules/ramda/es/internal/_xall.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduced.js */ "./node_modules/ramda/es/internal/_reduced.js");
/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ "./node_modules/ramda/es/internal/_xfBase.js");




var XAll = /*#__PURE__*/function () {
  function XAll(f, xf) {
    this.xf = xf;
    this.f = f;
    this.all = true;
  }
  XAll.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__["default"].init;
  XAll.prototype['@@transducer/result'] = function (result) {
    if (this.all) {
      result = this.xf['@@transducer/step'](result, true);
    }
    return this.xf['@@transducer/result'](result);
  };
  XAll.prototype['@@transducer/step'] = function (result, input) {
    if (!this.f(input)) {
      this.all = false;
      result = Object(_reduced_js__WEBPACK_IMPORTED_MODULE_1__["default"])(this.xf['@@transducer/step'](result, false));
    }
    return result;
  };

  return XAll;
}();

var _xall = /*#__PURE__*/Object(_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function _xall(f, xf) {
  return new XAll(f, xf);
});
/* harmony default export */ __webpack_exports__["default"] = (_xall);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_xany.js":
/*!*************************************************!*\
  !*** ./node_modules/ramda/es/internal/_xany.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduced.js */ "./node_modules/ramda/es/internal/_reduced.js");
/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ "./node_modules/ramda/es/internal/_xfBase.js");




var XAny = /*#__PURE__*/function () {
  function XAny(f, xf) {
    this.xf = xf;
    this.f = f;
    this.any = false;
  }
  XAny.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__["default"].init;
  XAny.prototype['@@transducer/result'] = function (result) {
    if (!this.any) {
      result = this.xf['@@transducer/step'](result, false);
    }
    return this.xf['@@transducer/result'](result);
  };
  XAny.prototype['@@transducer/step'] = function (result, input) {
    if (this.f(input)) {
      this.any = true;
      result = Object(_reduced_js__WEBPACK_IMPORTED_MODULE_1__["default"])(this.xf['@@transducer/step'](result, true));
    }
    return result;
  };

  return XAny;
}();

var _xany = /*#__PURE__*/Object(_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function _xany(f, xf) {
  return new XAny(f, xf);
});
/* harmony default export */ __webpack_exports__["default"] = (_xany);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_xaperture.js":
/*!******************************************************!*\
  !*** ./node_modules/ramda/es/internal/_xaperture.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_concat.js */ "./node_modules/ramda/es/internal/_concat.js");
/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ "./node_modules/ramda/es/internal/_xfBase.js");




var XAperture = /*#__PURE__*/function () {
  function XAperture(n, xf) {
    this.xf = xf;
    this.pos = 0;
    this.full = false;
    this.acc = new Array(n);
  }
  XAperture.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__["default"].init;
  XAperture.prototype['@@transducer/result'] = function (result) {
    this.acc = null;
    return this.xf['@@transducer/result'](result);
  };
  XAperture.prototype['@@transducer/step'] = function (result, input) {
    this.store(input);
    return this.full ? this.xf['@@transducer/step'](result, this.getCopy()) : result;
  };
  XAperture.prototype.store = function (input) {
    this.acc[this.pos] = input;
    this.pos += 1;
    if (this.pos === this.acc.length) {
      this.pos = 0;
      this.full = true;
    }
  };
  XAperture.prototype.getCopy = function () {
    return Object(_concat_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Array.prototype.slice.call(this.acc, this.pos), Array.prototype.slice.call(this.acc, 0, this.pos));
  };

  return XAperture;
}();

var _xaperture = /*#__PURE__*/Object(_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function _xaperture(n, xf) {
  return new XAperture(n, xf);
});
/* harmony default export */ __webpack_exports__["default"] = (_xaperture);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_xchain.js":
/*!***************************************************!*\
  !*** ./node_modules/ramda/es/internal/_xchain.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _flatCat_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_flatCat.js */ "./node_modules/ramda/es/internal/_flatCat.js");
/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../map.js */ "./node_modules/ramda/es/map.js");




var _xchain = /*#__PURE__*/Object(_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function _xchain(f, xf) {
  return Object(_map_js__WEBPACK_IMPORTED_MODULE_2__["default"])(f, Object(_flatCat_js__WEBPACK_IMPORTED_MODULE_1__["default"])(xf));
});
/* harmony default export */ __webpack_exports__["default"] = (_xchain);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_xdrop.js":
/*!**************************************************!*\
  !*** ./node_modules/ramda/es/internal/_xdrop.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ "./node_modules/ramda/es/internal/_xfBase.js");



var XDrop = /*#__PURE__*/function () {
  function XDrop(n, xf) {
    this.xf = xf;
    this.n = n;
  }
  XDrop.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__["default"].init;
  XDrop.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__["default"].result;
  XDrop.prototype['@@transducer/step'] = function (result, input) {
    if (this.n > 0) {
      this.n -= 1;
      return result;
    }
    return this.xf['@@transducer/step'](result, input);
  };

  return XDrop;
}();

var _xdrop = /*#__PURE__*/Object(_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function _xdrop(n, xf) {
  return new XDrop(n, xf);
});
/* harmony default export */ __webpack_exports__["default"] = (_xdrop);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_xdropLast.js":
/*!******************************************************!*\
  !*** ./node_modules/ramda/es/internal/_xdropLast.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ "./node_modules/ramda/es/internal/_xfBase.js");



var XDropLast = /*#__PURE__*/function () {
  function XDropLast(n, xf) {
    this.xf = xf;
    this.pos = 0;
    this.full = false;
    this.acc = new Array(n);
  }
  XDropLast.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__["default"].init;
  XDropLast.prototype['@@transducer/result'] = function (result) {
    this.acc = null;
    return this.xf['@@transducer/result'](result);
  };
  XDropLast.prototype['@@transducer/step'] = function (result, input) {
    if (this.full) {
      result = this.xf['@@transducer/step'](result, this.acc[this.pos]);
    }
    this.store(input);
    return result;
  };
  XDropLast.prototype.store = function (input) {
    this.acc[this.pos] = input;
    this.pos += 1;
    if (this.pos === this.acc.length) {
      this.pos = 0;
      this.full = true;
    }
  };

  return XDropLast;
}();

var _xdropLast = /*#__PURE__*/Object(_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function _xdropLast(n, xf) {
  return new XDropLast(n, xf);
});
/* harmony default export */ __webpack_exports__["default"] = (_xdropLast);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_xdropLastWhile.js":
/*!***********************************************************!*\
  !*** ./node_modules/ramda/es/internal/_xdropLastWhile.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduce.js */ "./node_modules/ramda/es/internal/_reduce.js");
/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ "./node_modules/ramda/es/internal/_xfBase.js");




var XDropLastWhile = /*#__PURE__*/function () {
  function XDropLastWhile(fn, xf) {
    this.f = fn;
    this.retained = [];
    this.xf = xf;
  }
  XDropLastWhile.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__["default"].init;
  XDropLastWhile.prototype['@@transducer/result'] = function (result) {
    this.retained = null;
    return this.xf['@@transducer/result'](result);
  };
  XDropLastWhile.prototype['@@transducer/step'] = function (result, input) {
    return this.f(input) ? this.retain(result, input) : this.flush(result, input);
  };
  XDropLastWhile.prototype.flush = function (result, input) {
    result = Object(_reduce_js__WEBPACK_IMPORTED_MODULE_1__["default"])(this.xf['@@transducer/step'], result, this.retained);
    this.retained = [];
    return this.xf['@@transducer/step'](result, input);
  };
  XDropLastWhile.prototype.retain = function (result, input) {
    this.retained.push(input);
    return result;
  };

  return XDropLastWhile;
}();

var _xdropLastWhile = /*#__PURE__*/Object(_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function _xdropLastWhile(fn, xf) {
  return new XDropLastWhile(fn, xf);
});
/* harmony default export */ __webpack_exports__["default"] = (_xdropLastWhile);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_xdropRepeatsWith.js":
/*!*************************************************************!*\
  !*** ./node_modules/ramda/es/internal/_xdropRepeatsWith.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ "./node_modules/ramda/es/internal/_xfBase.js");



var XDropRepeatsWith = /*#__PURE__*/function () {
  function XDropRepeatsWith(pred, xf) {
    this.xf = xf;
    this.pred = pred;
    this.lastValue = undefined;
    this.seenFirstValue = false;
  }

  XDropRepeatsWith.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__["default"].init;
  XDropRepeatsWith.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__["default"].result;
  XDropRepeatsWith.prototype['@@transducer/step'] = function (result, input) {
    var sameAsLast = false;
    if (!this.seenFirstValue) {
      this.seenFirstValue = true;
    } else if (this.pred(this.lastValue, input)) {
      sameAsLast = true;
    }
    this.lastValue = input;
    return sameAsLast ? result : this.xf['@@transducer/step'](result, input);
  };

  return XDropRepeatsWith;
}();

var _xdropRepeatsWith = /*#__PURE__*/Object(_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function _xdropRepeatsWith(pred, xf) {
  return new XDropRepeatsWith(pred, xf);
});
/* harmony default export */ __webpack_exports__["default"] = (_xdropRepeatsWith);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_xdropWhile.js":
/*!*******************************************************!*\
  !*** ./node_modules/ramda/es/internal/_xdropWhile.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ "./node_modules/ramda/es/internal/_xfBase.js");



var XDropWhile = /*#__PURE__*/function () {
  function XDropWhile(f, xf) {
    this.xf = xf;
    this.f = f;
  }
  XDropWhile.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__["default"].init;
  XDropWhile.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__["default"].result;
  XDropWhile.prototype['@@transducer/step'] = function (result, input) {
    if (this.f) {
      if (this.f(input)) {
        return result;
      }
      this.f = null;
    }
    return this.xf['@@transducer/step'](result, input);
  };

  return XDropWhile;
}();

var _xdropWhile = /*#__PURE__*/Object(_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function _xdropWhile(f, xf) {
  return new XDropWhile(f, xf);
});
/* harmony default export */ __webpack_exports__["default"] = (_xdropWhile);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_xfBase.js":
/*!***************************************************!*\
  !*** ./node_modules/ramda/es/internal/_xfBase.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ({
  init: function () {
    return this.xf['@@transducer/init']();
  },
  result: function (result) {
    return this.xf['@@transducer/result'](result);
  }
});

/***/ }),

/***/ "./node_modules/ramda/es/internal/_xfilter.js":
/*!****************************************************!*\
  !*** ./node_modules/ramda/es/internal/_xfilter.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ "./node_modules/ramda/es/internal/_xfBase.js");



var XFilter = /*#__PURE__*/function () {
  function XFilter(f, xf) {
    this.xf = xf;
    this.f = f;
  }
  XFilter.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__["default"].init;
  XFilter.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__["default"].result;
  XFilter.prototype['@@transducer/step'] = function (result, input) {
    return this.f(input) ? this.xf['@@transducer/step'](result, input) : result;
  };

  return XFilter;
}();

var _xfilter = /*#__PURE__*/Object(_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function _xfilter(f, xf) {
  return new XFilter(f, xf);
});
/* harmony default export */ __webpack_exports__["default"] = (_xfilter);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_xfind.js":
/*!**************************************************!*\
  !*** ./node_modules/ramda/es/internal/_xfind.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduced.js */ "./node_modules/ramda/es/internal/_reduced.js");
/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ "./node_modules/ramda/es/internal/_xfBase.js");




var XFind = /*#__PURE__*/function () {
  function XFind(f, xf) {
    this.xf = xf;
    this.f = f;
    this.found = false;
  }
  XFind.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__["default"].init;
  XFind.prototype['@@transducer/result'] = function (result) {
    if (!this.found) {
      result = this.xf['@@transducer/step'](result, void 0);
    }
    return this.xf['@@transducer/result'](result);
  };
  XFind.prototype['@@transducer/step'] = function (result, input) {
    if (this.f(input)) {
      this.found = true;
      result = Object(_reduced_js__WEBPACK_IMPORTED_MODULE_1__["default"])(this.xf['@@transducer/step'](result, input));
    }
    return result;
  };

  return XFind;
}();

var _xfind = /*#__PURE__*/Object(_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function _xfind(f, xf) {
  return new XFind(f, xf);
});
/* harmony default export */ __webpack_exports__["default"] = (_xfind);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_xfindIndex.js":
/*!*******************************************************!*\
  !*** ./node_modules/ramda/es/internal/_xfindIndex.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduced.js */ "./node_modules/ramda/es/internal/_reduced.js");
/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ "./node_modules/ramda/es/internal/_xfBase.js");




var XFindIndex = /*#__PURE__*/function () {
  function XFindIndex(f, xf) {
    this.xf = xf;
    this.f = f;
    this.idx = -1;
    this.found = false;
  }
  XFindIndex.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__["default"].init;
  XFindIndex.prototype['@@transducer/result'] = function (result) {
    if (!this.found) {
      result = this.xf['@@transducer/step'](result, -1);
    }
    return this.xf['@@transducer/result'](result);
  };
  XFindIndex.prototype['@@transducer/step'] = function (result, input) {
    this.idx += 1;
    if (this.f(input)) {
      this.found = true;
      result = Object(_reduced_js__WEBPACK_IMPORTED_MODULE_1__["default"])(this.xf['@@transducer/step'](result, this.idx));
    }
    return result;
  };

  return XFindIndex;
}();

var _xfindIndex = /*#__PURE__*/Object(_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function _xfindIndex(f, xf) {
  return new XFindIndex(f, xf);
});
/* harmony default export */ __webpack_exports__["default"] = (_xfindIndex);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_xfindLast.js":
/*!******************************************************!*\
  !*** ./node_modules/ramda/es/internal/_xfindLast.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ "./node_modules/ramda/es/internal/_xfBase.js");



var XFindLast = /*#__PURE__*/function () {
  function XFindLast(f, xf) {
    this.xf = xf;
    this.f = f;
  }
  XFindLast.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__["default"].init;
  XFindLast.prototype['@@transducer/result'] = function (result) {
    return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.last));
  };
  XFindLast.prototype['@@transducer/step'] = function (result, input) {
    if (this.f(input)) {
      this.last = input;
    }
    return result;
  };

  return XFindLast;
}();

var _xfindLast = /*#__PURE__*/Object(_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function _xfindLast(f, xf) {
  return new XFindLast(f, xf);
});
/* harmony default export */ __webpack_exports__["default"] = (_xfindLast);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_xfindLastIndex.js":
/*!***********************************************************!*\
  !*** ./node_modules/ramda/es/internal/_xfindLastIndex.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ "./node_modules/ramda/es/internal/_xfBase.js");



var XFindLastIndex = /*#__PURE__*/function () {
  function XFindLastIndex(f, xf) {
    this.xf = xf;
    this.f = f;
    this.idx = -1;
    this.lastIdx = -1;
  }
  XFindLastIndex.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__["default"].init;
  XFindLastIndex.prototype['@@transducer/result'] = function (result) {
    return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.lastIdx));
  };
  XFindLastIndex.prototype['@@transducer/step'] = function (result, input) {
    this.idx += 1;
    if (this.f(input)) {
      this.lastIdx = this.idx;
    }
    return result;
  };

  return XFindLastIndex;
}();

var _xfindLastIndex = /*#__PURE__*/Object(_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function _xfindLastIndex(f, xf) {
  return new XFindLastIndex(f, xf);
});
/* harmony default export */ __webpack_exports__["default"] = (_xfindLastIndex);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_xmap.js":
/*!*************************************************!*\
  !*** ./node_modules/ramda/es/internal/_xmap.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ "./node_modules/ramda/es/internal/_xfBase.js");



var XMap = /*#__PURE__*/function () {
  function XMap(f, xf) {
    this.xf = xf;
    this.f = f;
  }
  XMap.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__["default"].init;
  XMap.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__["default"].result;
  XMap.prototype['@@transducer/step'] = function (result, input) {
    return this.xf['@@transducer/step'](result, this.f(input));
  };

  return XMap;
}();

var _xmap = /*#__PURE__*/Object(_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function _xmap(f, xf) {
  return new XMap(f, xf);
});
/* harmony default export */ __webpack_exports__["default"] = (_xmap);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_xreduceBy.js":
/*!******************************************************!*\
  !*** ./node_modules/ramda/es/internal/_xreduceBy.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curryN.js */ "./node_modules/ramda/es/internal/_curryN.js");
/* harmony import */ var _has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_has.js */ "./node_modules/ramda/es/internal/_has.js");
/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ "./node_modules/ramda/es/internal/_xfBase.js");




var XReduceBy = /*#__PURE__*/function () {
  function XReduceBy(valueFn, valueAcc, keyFn, xf) {
    this.valueFn = valueFn;
    this.valueAcc = valueAcc;
    this.keyFn = keyFn;
    this.xf = xf;
    this.inputs = {};
  }
  XReduceBy.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__["default"].init;
  XReduceBy.prototype['@@transducer/result'] = function (result) {
    var key;
    for (key in this.inputs) {
      if (Object(_has_js__WEBPACK_IMPORTED_MODULE_1__["default"])(key, this.inputs)) {
        result = this.xf['@@transducer/step'](result, this.inputs[key]);
        if (result['@@transducer/reduced']) {
          result = result['@@transducer/value'];
          break;
        }
      }
    }
    this.inputs = null;
    return this.xf['@@transducer/result'](result);
  };
  XReduceBy.prototype['@@transducer/step'] = function (result, input) {
    var key = this.keyFn(input);
    this.inputs[key] = this.inputs[key] || [key, this.valueAcc];
    this.inputs[key][1] = this.valueFn(this.inputs[key][1], input);
    return result;
  };

  return XReduceBy;
}();

var _xreduceBy = /*#__PURE__*/Object(_curryN_js__WEBPACK_IMPORTED_MODULE_0__["default"])(4, [], function _xreduceBy(valueFn, valueAcc, keyFn, xf) {
  return new XReduceBy(valueFn, valueAcc, keyFn, xf);
});
/* harmony default export */ __webpack_exports__["default"] = (_xreduceBy);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_xtake.js":
/*!**************************************************!*\
  !*** ./node_modules/ramda/es/internal/_xtake.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduced.js */ "./node_modules/ramda/es/internal/_reduced.js");
/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ "./node_modules/ramda/es/internal/_xfBase.js");




var XTake = /*#__PURE__*/function () {
  function XTake(n, xf) {
    this.xf = xf;
    this.n = n;
    this.i = 0;
  }
  XTake.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__["default"].init;
  XTake.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__["default"].result;
  XTake.prototype['@@transducer/step'] = function (result, input) {
    this.i += 1;
    var ret = this.n === 0 ? result : this.xf['@@transducer/step'](result, input);
    return this.n >= 0 && this.i >= this.n ? Object(_reduced_js__WEBPACK_IMPORTED_MODULE_1__["default"])(ret) : ret;
  };

  return XTake;
}();

var _xtake = /*#__PURE__*/Object(_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function _xtake(n, xf) {
  return new XTake(n, xf);
});
/* harmony default export */ __webpack_exports__["default"] = (_xtake);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_xtakeWhile.js":
/*!*******************************************************!*\
  !*** ./node_modules/ramda/es/internal/_xtakeWhile.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_reduced.js */ "./node_modules/ramda/es/internal/_reduced.js");
/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_xfBase.js */ "./node_modules/ramda/es/internal/_xfBase.js");




var XTakeWhile = /*#__PURE__*/function () {
  function XTakeWhile(f, xf) {
    this.xf = xf;
    this.f = f;
  }
  XTakeWhile.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__["default"].init;
  XTakeWhile.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_2__["default"].result;
  XTakeWhile.prototype['@@transducer/step'] = function (result, input) {
    return this.f(input) ? this.xf['@@transducer/step'](result, input) : Object(_reduced_js__WEBPACK_IMPORTED_MODULE_1__["default"])(result);
  };

  return XTakeWhile;
}();

var _xtakeWhile = /*#__PURE__*/Object(_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function _xtakeWhile(f, xf) {
  return new XTakeWhile(f, xf);
});
/* harmony default export */ __webpack_exports__["default"] = (_xtakeWhile);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_xtap.js":
/*!*************************************************!*\
  !*** ./node_modules/ramda/es/internal/_xtap.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _xfBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_xfBase.js */ "./node_modules/ramda/es/internal/_xfBase.js");



var XTap = /*#__PURE__*/function () {
  function XTap(f, xf) {
    this.xf = xf;
    this.f = f;
  }
  XTap.prototype['@@transducer/init'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__["default"].init;
  XTap.prototype['@@transducer/result'] = _xfBase_js__WEBPACK_IMPORTED_MODULE_1__["default"].result;
  XTap.prototype['@@transducer/step'] = function (result, input) {
    this.f(input);
    return this.xf['@@transducer/step'](result, input);
  };

  return XTap;
}();

var _xtap = /*#__PURE__*/Object(_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function _xtap(f, xf) {
  return new XTap(f, xf);
});
/* harmony default export */ __webpack_exports__["default"] = (_xtap);

/***/ }),

/***/ "./node_modules/ramda/es/internal/_xwrap.js":
/*!**************************************************!*\
  !*** ./node_modules/ramda/es/internal/_xwrap.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _xwrap; });
var XWrap = /*#__PURE__*/function () {
  function XWrap(fn) {
    this.f = fn;
  }
  XWrap.prototype['@@transducer/init'] = function () {
    throw new Error('init not implemented on XWrap');
  };
  XWrap.prototype['@@transducer/result'] = function (acc) {
    return acc;
  };
  XWrap.prototype['@@transducer/step'] = function (acc, x) {
    return this.f(acc, x);
  };

  return XWrap;
}();

function _xwrap(fn) {
  return new XWrap(fn);
}

/***/ }),

/***/ "./node_modules/ramda/es/intersection.js":
/*!***********************************************!*\
  !*** ./node_modules/ramda/es/intersection.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includes.js */ "./node_modules/ramda/es/internal/_includes.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_filter.js */ "./node_modules/ramda/es/internal/_filter.js");
/* harmony import */ var _flip_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./flip.js */ "./node_modules/ramda/es/flip.js");
/* harmony import */ var _uniq_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./uniq.js */ "./node_modules/ramda/es/uniq.js");






/**
 * Combines two lists into a set (i.e. no duplicates) composed of those
 * elements common to both lists.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Relation
 * @sig [*] -> [*] -> [*]
 * @param {Array} list1 The first list.
 * @param {Array} list2 The second list.
 * @return {Array} The list of elements found in both `list1` and `list2`.
 * @see R.innerJoin
 * @example
 *
 *      R.intersection([1,2,3,4], [7,6,5,4,3]); //=> [4, 3]
 */
var intersection = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function intersection(list1, list2) {
  var lookupList, filteredList;
  if (list1.length > list2.length) {
    lookupList = list1;
    filteredList = list2;
  } else {
    lookupList = list2;
    filteredList = list1;
  }
  return Object(_uniq_js__WEBPACK_IMPORTED_MODULE_4__["default"])(Object(_internal_filter_js__WEBPACK_IMPORTED_MODULE_2__["default"])(Object(_flip_js__WEBPACK_IMPORTED_MODULE_3__["default"])(_internal_includes_js__WEBPACK_IMPORTED_MODULE_0__["default"])(lookupList), filteredList));
});
/* harmony default export */ __webpack_exports__["default"] = (intersection);

/***/ }),

/***/ "./node_modules/ramda/es/intersperse.js":
/*!**********************************************!*\
  !*** ./node_modules/ramda/es/intersperse.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_checkForMethod.js */ "./node_modules/ramda/es/internal/_checkForMethod.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");



/**
 * Creates a new list with the separator interposed between elements.
 *
 * Dispatches to the `intersperse` method of the second argument, if present.
 *
 * @func
 * @memberOf R
 * @since v0.14.0
 * @category List
 * @sig a -> [a] -> [a]
 * @param {*} separator The element to add to the list.
 * @param {Array} list The list to be interposed.
 * @return {Array} The new list.
 * @example
 *
 *      R.intersperse('a', ['b', 'n', 'n', 's']); //=> ['b', 'a', 'n', 'a', 'n', 'a', 's']
 */
var intersperse = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])( /*#__PURE__*/Object(_internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__["default"])('intersperse', function intersperse(separator, list) {
  var out = [];
  var idx = 0;
  var length = list.length;
  while (idx < length) {
    if (idx === length - 1) {
      out.push(list[idx]);
    } else {
      out.push(list[idx], separator);
    }
    idx += 1;
  }
  return out;
}));
/* harmony default export */ __webpack_exports__["default"] = (intersperse);

/***/ }),

/***/ "./node_modules/ramda/es/into.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/into.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_clone_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_clone.js */ "./node_modules/ramda/es/internal/_clone.js");
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");
/* harmony import */ var _internal_isTransformer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isTransformer.js */ "./node_modules/ramda/es/internal/_isTransformer.js");
/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_reduce.js */ "./node_modules/ramda/es/internal/_reduce.js");
/* harmony import */ var _internal_stepCat_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internal/_stepCat.js */ "./node_modules/ramda/es/internal/_stepCat.js");






/**
 * Transforms the items of the list with the transducer and appends the
 * transformed items to the accumulator using an appropriate iterator function
 * based on the accumulator type.
 *
 * The accumulator can be an array, string, object or a transformer. Iterated
 * items will be appended to arrays and concatenated to strings. Objects will
 * be merged directly or 2-item arrays will be merged as key, value pairs.
 *
 * The accumulator can also be a transformer object that provides a 2-arity
 * reducing iterator function, step, 0-arity initial value function, init, and
 * 1-arity result extraction function result. The step function is used as the
 * iterator function in reduce. The result function is used to convert the
 * final accumulator into the return type and in most cases is R.identity. The
 * init function is used to provide the initial accumulator.
 *
 * The iteration is performed with [`R.reduce`](#reduce) after initializing the
 * transducer.
 *
 * @func
 * @memberOf R
 * @since v0.12.0
 * @category List
 * @sig a -> (b -> b) -> [c] -> a
 * @param {*} acc The initial accumulator value.
 * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.
 * @param {Array} list The list to iterate over.
 * @return {*} The final, accumulated value.
 * @see R.transduce
 * @example
 *
 *      const numbers = [1, 2, 3, 4];
 *      const transducer = R.compose(R.map(R.add(1)), R.take(2));
 *
 *      R.into([], transducer, numbers); //=> [2, 3]
 *
 *      const intoArray = R.into([]);
 *      intoArray(transducer, numbers); //=> [2, 3]
 */
var into = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function into(acc, xf, list) {
  return Object(_internal_isTransformer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(acc) ? Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__["default"])(xf(acc), acc['@@transducer/init'](), list) : Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__["default"])(xf(Object(_internal_stepCat_js__WEBPACK_IMPORTED_MODULE_4__["default"])(acc)), Object(_internal_clone_js__WEBPACK_IMPORTED_MODULE_0__["default"])(acc, [], [], false), list);
});
/* harmony default export */ __webpack_exports__["default"] = (into);

/***/ }),

/***/ "./node_modules/ramda/es/invert.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/invert.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ "./node_modules/ramda/es/internal/_has.js");
/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keys.js */ "./node_modules/ramda/es/keys.js");




/**
 * Same as [`R.invertObj`](#invertObj), however this accounts for objects with
 * duplicate values by putting the values into an array.
 *
 * @func
 * @memberOf R
 * @since v0.9.0
 * @category Object
 * @sig {s: x} -> {x: [ s, ... ]}
 * @param {Object} obj The object or array to invert
 * @return {Object} out A new object with keys in an array.
 * @see R.invertObj
 * @example
 *
 *      const raceResultsByFirstName = {
 *        first: 'alice',
 *        second: 'jake',
 *        third: 'alice',
 *      };
 *      R.invert(raceResultsByFirstName);
 *      //=> { 'alice': ['first', 'third'], 'jake':['second'] }
 */
var invert = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function invert(obj) {
  var props = Object(_keys_js__WEBPACK_IMPORTED_MODULE_2__["default"])(obj);
  var len = props.length;
  var idx = 0;
  var out = {};

  while (idx < len) {
    var key = props[idx];
    var val = obj[key];
    var list = Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__["default"])(val, out) ? out[val] : out[val] = [];
    list[list.length] = key;
    idx += 1;
  }
  return out;
});
/* harmony default export */ __webpack_exports__["default"] = (invert);

/***/ }),

/***/ "./node_modules/ramda/es/invertObj.js":
/*!********************************************!*\
  !*** ./node_modules/ramda/es/invertObj.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ "./node_modules/ramda/es/keys.js");



/**
 * Returns a new object with the keys of the given object as values, and the
 * values of the given object, which are coerced to strings, as keys. Note
 * that the last key found is preferred when handling the same value.
 *
 * @func
 * @memberOf R
 * @since v0.9.0
 * @category Object
 * @sig {s: x} -> {x: s}
 * @param {Object} obj The object or array to invert
 * @return {Object} out A new object
 * @see R.invert
 * @example
 *
 *      const raceResults = {
 *        first: 'alice',
 *        second: 'jake'
 *      };
 *      R.invertObj(raceResults);
 *      //=> { 'alice': 'first', 'jake':'second' }
 *
 *      // Alternatively:
 *      const raceResults = ['alice', 'jake'];
 *      R.invertObj(raceResults);
 *      //=> { 'alice': '0', 'jake':'1' }
 */
var invertObj = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function invertObj(obj) {
  var props = Object(_keys_js__WEBPACK_IMPORTED_MODULE_1__["default"])(obj);
  var len = props.length;
  var idx = 0;
  var out = {};

  while (idx < len) {
    var key = props[idx];
    out[obj[key]] = key;
    idx += 1;
  }
  return out;
});
/* harmony default export */ __webpack_exports__["default"] = (invertObj);

/***/ }),

/***/ "./node_modules/ramda/es/invoker.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/invoker.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_isFunction_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isFunction.js */ "./node_modules/ramda/es/internal/_isFunction.js");
/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curryN.js */ "./node_modules/ramda/es/curryN.js");
/* harmony import */ var _toString_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./toString.js */ "./node_modules/ramda/es/toString.js");





/**
 * Turns a named method with a specified arity into a function that can be
 * called directly supplied with arguments and a target object.
 *
 * The returned function is curried and accepts `arity + 1` parameters where
 * the final parameter is the target object.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Function
 * @sig Number -> String -> (a -> b -> ... -> n -> Object -> *)
 * @param {Number} arity Number of arguments the returned function should take
 *        before the target object.
 * @param {String} method Name of the method to call.
 * @return {Function} A new curried function.
 * @see R.construct
 * @example
 *
 *      const sliceFrom = R.invoker(1, 'slice');
 *      sliceFrom(6, 'abcdefghijklm'); //=> 'ghijklm'
 *      const sliceFrom6 = R.invoker(2, 'slice')(6);
 *      sliceFrom6(8, 'abcdefghijklm'); //=> 'gh'
 * @symb R.invoker(0, 'method')(o) = o['method']()
 * @symb R.invoker(1, 'method')(a, o) = o['method'](a)
 * @symb R.invoker(2, 'method')(a, b, o) = o['method'](a, b)
 */
var invoker = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function invoker(arity, method) {
  return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_2__["default"])(arity + 1, function () {
    var target = arguments[arity];
    if (target != null && Object(_internal_isFunction_js__WEBPACK_IMPORTED_MODULE_1__["default"])(target[method])) {
      return target[method].apply(target, Array.prototype.slice.call(arguments, 0, arity));
    }
    throw new TypeError(Object(_toString_js__WEBPACK_IMPORTED_MODULE_3__["default"])(target) + ' does not have a method named "' + method + '"');
  });
});
/* harmony default export */ __webpack_exports__["default"] = (invoker);

/***/ }),

/***/ "./node_modules/ramda/es/is.js":
/*!*************************************!*\
  !*** ./node_modules/ramda/es/is.js ***!
  \*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * See if an object (`val`) is an instance of the supplied constructor. This
 * function will check up the inheritance chain, if any.
 *
 * @func
 * @memberOf R
 * @since v0.3.0
 * @category Type
 * @sig (* -> {*}) -> a -> Boolean
 * @param {Object} ctor A constructor
 * @param {*} val The value to test
 * @return {Boolean}
 * @example
 *
 *      R.is(Object, {}); //=> true
 *      R.is(Number, 1); //=> true
 *      R.is(Object, 1); //=> false
 *      R.is(String, 's'); //=> true
 *      R.is(String, new String('')); //=> true
 *      R.is(Object, new String('')); //=> true
 *      R.is(Object, 's'); //=> false
 *      R.is(Number, {}); //=> false
 */
var is = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function is(Ctor, val) {
  return val != null && val.constructor === Ctor || val instanceof Ctor;
});
/* harmony default export */ __webpack_exports__["default"] = (is);

/***/ }),

/***/ "./node_modules/ramda/es/isEmpty.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/isEmpty.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _empty_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./empty.js */ "./node_modules/ramda/es/empty.js");
/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./equals.js */ "./node_modules/ramda/es/equals.js");




/**
 * Returns `true` if the given value is its type's empty value; `false`
 * otherwise.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Logic
 * @sig a -> Boolean
 * @param {*} x
 * @return {Boolean}
 * @see R.empty
 * @example
 *
 *      R.isEmpty([1, 2, 3]);   //=> false
 *      R.isEmpty([]);          //=> true
 *      R.isEmpty('');          //=> true
 *      R.isEmpty(null);        //=> false
 *      R.isEmpty({});          //=> true
 *      R.isEmpty({length: 0}); //=> false
 */
var isEmpty = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function isEmpty(x) {
  return x != null && Object(_equals_js__WEBPACK_IMPORTED_MODULE_2__["default"])(x, Object(_empty_js__WEBPACK_IMPORTED_MODULE_1__["default"])(x));
});
/* harmony default export */ __webpack_exports__["default"] = (isEmpty);

/***/ }),

/***/ "./node_modules/ramda/es/isNil.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/isNil.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");


/**
 * Checks if the input value is `null` or `undefined`.
 *
 * @func
 * @memberOf R
 * @since v0.9.0
 * @category Type
 * @sig * -> Boolean
 * @param {*} x The value to test.
 * @return {Boolean} `true` if `x` is `undefined` or `null`, otherwise `false`.
 * @example
 *
 *      R.isNil(null); //=> true
 *      R.isNil(undefined); //=> true
 *      R.isNil(0); //=> false
 *      R.isNil([]); //=> false
 */
var isNil = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function isNil(x) {
  return x == null;
});
/* harmony default export */ __webpack_exports__["default"] = (isNil);

/***/ }),

/***/ "./node_modules/ramda/es/join.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/join.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _invoker_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./invoker.js */ "./node_modules/ramda/es/invoker.js");


/**
 * Returns a string made by inserting the `separator` between each element and
 * concatenating all the elements into a single string.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig String -> [a] -> String
 * @param {Number|String} separator The string used to separate the elements.
 * @param {Array} xs The elements to join into a string.
 * @return {String} str The string made by concatenating `xs` with `separator`.
 * @see R.split
 * @example
 *
 *      const spacer = R.join(' ');
 *      spacer(['a', 2, 3.4]);   //=> 'a 2 3.4'
 *      R.join('|', [1, 2, 3]);    //=> '1|2|3'
 */
var join = /*#__PURE__*/Object(_invoker_js__WEBPACK_IMPORTED_MODULE_0__["default"])(1, 'join');
/* harmony default export */ __webpack_exports__["default"] = (join);

/***/ }),

/***/ "./node_modules/ramda/es/juxt.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/juxt.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _converge_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./converge.js */ "./node_modules/ramda/es/converge.js");



/**
 * juxt applies a list of functions to a list of values.
 *
 * @func
 * @memberOf R
 * @since v0.19.0
 * @category Function
 * @sig [(a, b, ..., m) -> n] -> ((a, b, ..., m) -> [n])
 * @param {Array} fns An array of functions
 * @return {Function} A function that returns a list of values after applying each of the original `fns` to its parameters.
 * @see R.applySpec
 * @example
 *
 *      const getRange = R.juxt([Math.min, Math.max]);
 *      getRange(3, 4, 9, -3); //=> [-3, 9]
 * @symb R.juxt([f, g, h])(a, b) = [f(a, b), g(a, b), h(a, b)]
 */
var juxt = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function juxt(fns) {
  return Object(_converge_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function () {
    return Array.prototype.slice.call(arguments, 0);
  }, fns);
});
/* harmony default export */ __webpack_exports__["default"] = (juxt);

/***/ }),

/***/ "./node_modules/ramda/es/keys.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/keys.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ "./node_modules/ramda/es/internal/_has.js");
/* harmony import */ var _internal_isArguments_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isArguments.js */ "./node_modules/ramda/es/internal/_isArguments.js");




// cover IE < 9 keys issues
var hasEnumBug = ! /*#__PURE__*/{ toString: null }.propertyIsEnumerable('toString');
var nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];
// Safari bug
var hasArgsEnumBug = /*#__PURE__*/function () {
  'use strict';

  return arguments.propertyIsEnumerable('length');
}();

var contains = function contains(list, item) {
  var idx = 0;
  while (idx < list.length) {
    if (list[idx] === item) {
      return true;
    }
    idx += 1;
  }
  return false;
};

/**
 * Returns a list containing the names of all the enumerable own properties of
 * the supplied object.
 * Note that the order of the output array is not guaranteed to be consistent
 * across different JS platforms.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Object
 * @sig {k: v} -> [k]
 * @param {Object} obj The object to extract properties from
 * @return {Array} An array of the object's own properties.
 * @see R.keysIn, R.values
 * @example
 *
 *      R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']
 */
var keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function keys(obj) {
  return Object(obj) !== obj ? [] : Object.keys(obj);
}) : /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function keys(obj) {
  if (Object(obj) !== obj) {
    return [];
  }
  var prop, nIdx;
  var ks = [];
  var checkArgsLength = hasArgsEnumBug && Object(_internal_isArguments_js__WEBPACK_IMPORTED_MODULE_2__["default"])(obj);
  for (prop in obj) {
    if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__["default"])(prop, obj) && (!checkArgsLength || prop !== 'length')) {
      ks[ks.length] = prop;
    }
  }
  if (hasEnumBug) {
    nIdx = nonEnumerableProps.length - 1;
    while (nIdx >= 0) {
      prop = nonEnumerableProps[nIdx];
      if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__["default"])(prop, obj) && !contains(ks, prop)) {
        ks[ks.length] = prop;
      }
      nIdx -= 1;
    }
  }
  return ks;
});
/* harmony default export */ __webpack_exports__["default"] = (keys);

/***/ }),

/***/ "./node_modules/ramda/es/keysIn.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/keysIn.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");


/**
 * Returns a list containing the names of all the properties of the supplied
 * object, including prototype properties.
 * Note that the order of the output array is not guaranteed to be consistent
 * across different JS platforms.
 *
 * @func
 * @memberOf R
 * @since v0.2.0
 * @category Object
 * @sig {k: v} -> [k]
 * @param {Object} obj The object to extract properties from
 * @return {Array} An array of the object's own and prototype properties.
 * @see R.keys, R.valuesIn
 * @example
 *
 *      const F = function() { this.x = 'X'; };
 *      F.prototype.y = 'Y';
 *      const f = new F();
 *      R.keysIn(f); //=> ['x', 'y']
 */
var keysIn = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function keysIn(obj) {
  var prop;
  var ks = [];
  for (prop in obj) {
    ks[ks.length] = prop;
  }
  return ks;
});
/* harmony default export */ __webpack_exports__["default"] = (keysIn);

/***/ }),

/***/ "./node_modules/ramda/es/last.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/last.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _nth_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./nth.js */ "./node_modules/ramda/es/nth.js");


/**
 * Returns the last element of the given list or string.
 *
 * @func
 * @memberOf R
 * @since v0.1.4
 * @category List
 * @sig [a] -> a | Undefined
 * @sig String -> String
 * @param {*} list
 * @return {*}
 * @see R.init, R.head, R.tail
 * @example
 *
 *      R.last(['fi', 'fo', 'fum']); //=> 'fum'
 *      R.last([]); //=> undefined
 *
 *      R.last('abc'); //=> 'c'
 *      R.last(''); //=> ''
 */
var last = /*#__PURE__*/Object(_nth_js__WEBPACK_IMPORTED_MODULE_0__["default"])(-1);
/* harmony default export */ __webpack_exports__["default"] = (last);

/***/ }),

/***/ "./node_modules/ramda/es/lastIndexOf.js":
/*!**********************************************!*\
  !*** ./node_modules/ramda/es/lastIndexOf.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isArray.js */ "./node_modules/ramda/es/internal/_isArray.js");
/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./equals.js */ "./node_modules/ramda/es/equals.js");




/**
 * Returns the position of the last occurrence of an item in an array, or -1 if
 * the item is not included in the array. [`R.equals`](#equals) is used to
 * determine equality.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig a -> [a] -> Number
 * @param {*} target The item to find.
 * @param {Array} xs The array to search in.
 * @return {Number} the index of the target, or -1 if the target is not found.
 * @see R.indexOf
 * @example
 *
 *      R.lastIndexOf(3, [-1,3,3,0,1,2,3,4]); //=> 6
 *      R.lastIndexOf(10, [1,2,3,4]); //=> -1
 */
var lastIndexOf = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function lastIndexOf(target, xs) {
  if (typeof xs.lastIndexOf === 'function' && !Object(_internal_isArray_js__WEBPACK_IMPORTED_MODULE_1__["default"])(xs)) {
    return xs.lastIndexOf(target);
  } else {
    var idx = xs.length - 1;
    while (idx >= 0) {
      if (Object(_equals_js__WEBPACK_IMPORTED_MODULE_2__["default"])(xs[idx], target)) {
        return idx;
      }
      idx -= 1;
    }
    return -1;
  }
});
/* harmony default export */ __webpack_exports__["default"] = (lastIndexOf);

/***/ }),

/***/ "./node_modules/ramda/es/length.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/length.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _internal_isNumber_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isNumber.js */ "./node_modules/ramda/es/internal/_isNumber.js");



/**
 * Returns the number of elements in the array by returning `list.length`.
 *
 * @func
 * @memberOf R
 * @since v0.3.0
 * @category List
 * @sig [a] -> Number
 * @param {Array} list The array to inspect.
 * @return {Number} The length of the array.
 * @example
 *
 *      R.length([]); //=> 0
 *      R.length([1, 2, 3]); //=> 3
 */
var length = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function length(list) {
  return list != null && Object(_internal_isNumber_js__WEBPACK_IMPORTED_MODULE_1__["default"])(list.length) ? list.length : NaN;
});
/* harmony default export */ __webpack_exports__["default"] = (length);

/***/ }),

/***/ "./node_modules/ramda/es/lens.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/lens.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./map.js */ "./node_modules/ramda/es/map.js");



/**
 * Returns a lens for the given getter and setter functions. The getter "gets"
 * the value of the focus; the setter "sets" the value of the focus. The setter
 * should not mutate the data structure.
 *
 * @func
 * @memberOf R
 * @since v0.8.0
 * @category Object
 * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s
 * @sig (s -> a) -> ((a, s) -> s) -> Lens s a
 * @param {Function} getter
 * @param {Function} setter
 * @return {Lens}
 * @see R.view, R.set, R.over, R.lensIndex, R.lensProp
 * @example
 *
 *      const xLens = R.lens(R.prop('x'), R.assoc('x'));
 *
 *      R.view(xLens, {x: 1, y: 2});            //=> 1
 *      R.set(xLens, 4, {x: 1, y: 2});          //=> {x: 4, y: 2}
 *      R.over(xLens, R.negate, {x: 1, y: 2});  //=> {x: -1, y: 2}
 */
var lens = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function lens(getter, setter) {
  return function (toFunctorFn) {
    return function (target) {
      return Object(_map_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function (focus) {
        return setter(focus, target);
      }, toFunctorFn(getter(target)));
    };
  };
});
/* harmony default export */ __webpack_exports__["default"] = (lens);

/***/ }),

/***/ "./node_modules/ramda/es/lensIndex.js":
/*!********************************************!*\
  !*** ./node_modules/ramda/es/lensIndex.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _lens_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lens.js */ "./node_modules/ramda/es/lens.js");
/* harmony import */ var _nth_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nth.js */ "./node_modules/ramda/es/nth.js");
/* harmony import */ var _update_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./update.js */ "./node_modules/ramda/es/update.js");





/**
 * Returns a lens whose focus is the specified index.
 *
 * @func
 * @memberOf R
 * @since v0.14.0
 * @category Object
 * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s
 * @sig Number -> Lens s a
 * @param {Number} n
 * @return {Lens}
 * @see R.view, R.set, R.over
 * @example
 *
 *      const headLens = R.lensIndex(0);
 *
 *      R.view(headLens, ['a', 'b', 'c']);            //=> 'a'
 *      R.set(headLens, 'x', ['a', 'b', 'c']);        //=> ['x', 'b', 'c']
 *      R.over(headLens, R.toUpper, ['a', 'b', 'c']); //=> ['A', 'b', 'c']
 */
var lensIndex = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function lensIndex(n) {
  return Object(_lens_js__WEBPACK_IMPORTED_MODULE_1__["default"])(Object(_nth_js__WEBPACK_IMPORTED_MODULE_2__["default"])(n), Object(_update_js__WEBPACK_IMPORTED_MODULE_3__["default"])(n));
});
/* harmony default export */ __webpack_exports__["default"] = (lensIndex);

/***/ }),

/***/ "./node_modules/ramda/es/lensPath.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/lensPath.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _assocPath_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assocPath.js */ "./node_modules/ramda/es/assocPath.js");
/* harmony import */ var _lens_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lens.js */ "./node_modules/ramda/es/lens.js");
/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./path.js */ "./node_modules/ramda/es/path.js");





/**
 * Returns a lens whose focus is the specified path.
 *
 * @func
 * @memberOf R
 * @since v0.19.0
 * @category Object
 * @typedefn Idx = String | Int
 * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s
 * @sig [Idx] -> Lens s a
 * @param {Array} path The path to use.
 * @return {Lens}
 * @see R.view, R.set, R.over
 * @example
 *
 *      const xHeadYLens = R.lensPath(['x', 0, 'y']);
 *
 *      R.view(xHeadYLens, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});
 *      //=> 2
 *      R.set(xHeadYLens, 1, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});
 *      //=> {x: [{y: 1, z: 3}, {y: 4, z: 5}]}
 *      R.over(xHeadYLens, R.negate, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});
 *      //=> {x: [{y: -2, z: 3}, {y: 4, z: 5}]}
 */
var lensPath = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function lensPath(p) {
  return Object(_lens_js__WEBPACK_IMPORTED_MODULE_2__["default"])(Object(_path_js__WEBPACK_IMPORTED_MODULE_3__["default"])(p), Object(_assocPath_js__WEBPACK_IMPORTED_MODULE_1__["default"])(p));
});
/* harmony default export */ __webpack_exports__["default"] = (lensPath);

/***/ }),

/***/ "./node_modules/ramda/es/lensProp.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/lensProp.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _assoc_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assoc.js */ "./node_modules/ramda/es/assoc.js");
/* harmony import */ var _lens_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lens.js */ "./node_modules/ramda/es/lens.js");
/* harmony import */ var _prop_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./prop.js */ "./node_modules/ramda/es/prop.js");





/**
 * Returns a lens whose focus is the specified property.
 *
 * @func
 * @memberOf R
 * @since v0.14.0
 * @category Object
 * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s
 * @sig String -> Lens s a
 * @param {String} k
 * @return {Lens}
 * @see R.view, R.set, R.over
 * @example
 *
 *      const xLens = R.lensProp('x');
 *
 *      R.view(xLens, {x: 1, y: 2});            //=> 1
 *      R.set(xLens, 4, {x: 1, y: 2});          //=> {x: 4, y: 2}
 *      R.over(xLens, R.negate, {x: 1, y: 2});  //=> {x: -1, y: 2}
 */
var lensProp = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function lensProp(k) {
  return Object(_lens_js__WEBPACK_IMPORTED_MODULE_2__["default"])(Object(_prop_js__WEBPACK_IMPORTED_MODULE_3__["default"])(k), Object(_assoc_js__WEBPACK_IMPORTED_MODULE_1__["default"])(k));
});
/* harmony default export */ __webpack_exports__["default"] = (lensProp);

/***/ }),

/***/ "./node_modules/ramda/es/lift.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/lift.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _liftN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./liftN.js */ "./node_modules/ramda/es/liftN.js");



/**
 * "lifts" a function of arity > 1 so that it may "map over" a list, Function or other
 * object that satisfies the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).
 *
 * @func
 * @memberOf R
 * @since v0.7.0
 * @category Function
 * @sig (*... -> *) -> ([*]... -> [*])
 * @param {Function} fn The function to lift into higher context
 * @return {Function} The lifted function.
 * @see R.liftN
 * @example
 *
 *      const madd3 = R.lift((a, b, c) => a + b + c);
 *
 *      madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]
 *
 *      const madd5 = R.lift((a, b, c, d, e) => a + b + c + d + e);
 *
 *      madd5([1,2], [3], [4, 5], [6], [7, 8]); //=> [21, 22, 22, 23, 22, 23, 23, 24]
 */
var lift = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function lift(fn) {
  return Object(_liftN_js__WEBPACK_IMPORTED_MODULE_1__["default"])(fn.length, fn);
});
/* harmony default export */ __webpack_exports__["default"] = (lift);

/***/ }),

/***/ "./node_modules/ramda/es/liftN.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/liftN.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_reduce.js */ "./node_modules/ramda/es/internal/_reduce.js");
/* harmony import */ var _ap_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ap.js */ "./node_modules/ramda/es/ap.js");
/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./curryN.js */ "./node_modules/ramda/es/curryN.js");
/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./map.js */ "./node_modules/ramda/es/map.js");






/**
 * "lifts" a function to be the specified arity, so that it may "map over" that
 * many lists, Functions or other objects that satisfy the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).
 *
 * @func
 * @memberOf R
 * @since v0.7.0
 * @category Function
 * @sig Number -> (*... -> *) -> ([*]... -> [*])
 * @param {Function} fn The function to lift into higher context
 * @return {Function} The lifted function.
 * @see R.lift, R.ap
 * @example
 *
 *      const madd3 = R.liftN(3, (...args) => R.sum(args));
 *      madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]
 */
var liftN = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function liftN(arity, fn) {
  var lifted = Object(_curryN_js__WEBPACK_IMPORTED_MODULE_3__["default"])(arity, fn);
  return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_3__["default"])(arity, function () {
    return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__["default"])(_ap_js__WEBPACK_IMPORTED_MODULE_2__["default"], Object(_map_js__WEBPACK_IMPORTED_MODULE_4__["default"])(lifted, arguments[0]), Array.prototype.slice.call(arguments, 1));
  });
});
/* harmony default export */ __webpack_exports__["default"] = (liftN);

/***/ }),

/***/ "./node_modules/ramda/es/lt.js":
/*!*************************************!*\
  !*** ./node_modules/ramda/es/lt.js ***!
  \*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Returns `true` if the first argument is less than the second; `false`
 * otherwise.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Relation
 * @sig Ord a => a -> a -> Boolean
 * @param {*} a
 * @param {*} b
 * @return {Boolean}
 * @see R.gt
 * @example
 *
 *      R.lt(2, 1); //=> false
 *      R.lt(2, 2); //=> false
 *      R.lt(2, 3); //=> true
 *      R.lt('a', 'z'); //=> true
 *      R.lt('z', 'a'); //=> false
 */
var lt = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function lt(a, b) {
  return a < b;
});
/* harmony default export */ __webpack_exports__["default"] = (lt);

/***/ }),

/***/ "./node_modules/ramda/es/lte.js":
/*!**************************************!*\
  !*** ./node_modules/ramda/es/lte.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Returns `true` if the first argument is less than or equal to the second;
 * `false` otherwise.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Relation
 * @sig Ord a => a -> a -> Boolean
 * @param {Number} a
 * @param {Number} b
 * @return {Boolean}
 * @see R.gte
 * @example
 *
 *      R.lte(2, 1); //=> false
 *      R.lte(2, 2); //=> true
 *      R.lte(2, 3); //=> true
 *      R.lte('a', 'z'); //=> true
 *      R.lte('z', 'a'); //=> false
 */
var lte = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function lte(a, b) {
  return a <= b;
});
/* harmony default export */ __webpack_exports__["default"] = (lte);

/***/ }),

/***/ "./node_modules/ramda/es/map.js":
/*!**************************************!*\
  !*** ./node_modules/ramda/es/map.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ "./node_modules/ramda/es/internal/_dispatchable.js");
/* harmony import */ var _internal_map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_map.js */ "./node_modules/ramda/es/internal/_map.js");
/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_reduce.js */ "./node_modules/ramda/es/internal/_reduce.js");
/* harmony import */ var _internal_xmap_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internal/_xmap.js */ "./node_modules/ramda/es/internal/_xmap.js");
/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./curryN.js */ "./node_modules/ramda/es/curryN.js");
/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./keys.js */ "./node_modules/ramda/es/keys.js");








/**
 * Takes a function and
 * a [functor](https://github.com/fantasyland/fantasy-land#functor),
 * applies the function to each of the functor's values, and returns
 * a functor of the same shape.
 *
 * Ramda provides suitable `map` implementations for `Array` and `Object`,
 * so this function may be applied to `[1, 2, 3]` or `{x: 1, y: 2, z: 3}`.
 *
 * Dispatches to the `map` method of the second argument, if present.
 *
 * Acts as a transducer if a transformer is given in list position.
 *
 * Also treats functions as functors and will compose them together.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig Functor f => (a -> b) -> f a -> f b
 * @param {Function} fn The function to be called on every element of the input `list`.
 * @param {Array} list The list to be iterated over.
 * @return {Array} The new list.
 * @see R.transduce, R.addIndex
 * @example
 *
 *      const double = x => x * 2;
 *
 *      R.map(double, [1, 2, 3]); //=> [2, 4, 6]
 *
 *      R.map(double, {x: 1, y: 2, z: 3}); //=> {x: 2, y: 4, z: 6}
 * @symb R.map(f, [a, b]) = [f(a), f(b)]
 * @symb R.map(f, { x: a, y: b }) = { x: f(a), y: f(b) }
 * @symb R.map(f, functor_o) = functor_o.map(f)
 */
var map = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/Object(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__["default"])(['fantasy-land/map', 'map'], _internal_xmap_js__WEBPACK_IMPORTED_MODULE_4__["default"], function map(fn, functor) {
  switch (Object.prototype.toString.call(functor)) {
    case '[object Function]':
      return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_5__["default"])(functor.length, function () {
        return fn.call(this, functor.apply(this, arguments));
      });
    case '[object Object]':
      return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__["default"])(function (acc, key) {
        acc[key] = fn(functor[key]);
        return acc;
      }, {}, Object(_keys_js__WEBPACK_IMPORTED_MODULE_6__["default"])(functor));
    default:
      return Object(_internal_map_js__WEBPACK_IMPORTED_MODULE_2__["default"])(fn, functor);
  }
}));
/* harmony default export */ __webpack_exports__["default"] = (map);

/***/ }),

/***/ "./node_modules/ramda/es/mapAccum.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/mapAccum.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");


/**
 * The `mapAccum` function behaves like a combination of map and reduce; it
 * applies a function to each element of a list, passing an accumulating
 * parameter from left to right, and returning a final value of this
 * accumulator together with the new list.
 *
 * The iterator function receives two arguments, *acc* and *value*, and should
 * return a tuple *[acc, value]*.
 *
 * @func
 * @memberOf R
 * @since v0.10.0
 * @category List
 * @sig ((acc, x) -> (acc, y)) -> acc -> [x] -> (acc, [y])
 * @param {Function} fn The function to be called on every element of the input `list`.
 * @param {*} acc The accumulator value.
 * @param {Array} list The list to iterate over.
 * @return {*} The final, accumulated value.
 * @see R.scan, R.addIndex, R.mapAccumRight
 * @example
 *
 *      const digits = ['1', '2', '3', '4'];
 *      const appender = (a, b) => [a + b, a + b];
 *
 *      R.mapAccum(appender, 0, digits); //=> ['01234', ['01', '012', '0123', '01234']]
 * @symb R.mapAccum(f, a, [b, c, d]) = [
 *   f(f(f(a, b)[0], c)[0], d)[0],
 *   [
 *     f(a, b)[1],
 *     f(f(a, b)[0], c)[1],
 *     f(f(f(a, b)[0], c)[0], d)[1]
 *   ]
 * ]
 */
var mapAccum = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function mapAccum(fn, acc, list) {
  var idx = 0;
  var len = list.length;
  var result = [];
  var tuple = [acc];
  while (idx < len) {
    tuple = fn(tuple[0], list[idx]);
    result[idx] = tuple[1];
    idx += 1;
  }
  return [tuple[0], result];
});
/* harmony default export */ __webpack_exports__["default"] = (mapAccum);

/***/ }),

/***/ "./node_modules/ramda/es/mapAccumRight.js":
/*!************************************************!*\
  !*** ./node_modules/ramda/es/mapAccumRight.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");


/**
 * The `mapAccumRight` function behaves like a combination of map and reduce; it
 * applies a function to each element of a list, passing an accumulating
 * parameter from right to left, and returning a final value of this
 * accumulator together with the new list.
 *
 * Similar to [`mapAccum`](#mapAccum), except moves through the input list from
 * the right to the left.
 *
 * The iterator function receives two arguments, *acc* and *value*, and should
 * return a tuple *[acc, value]*.
 *
 * @func
 * @memberOf R
 * @since v0.10.0
 * @category List
 * @sig ((acc, x) -> (acc, y)) -> acc -> [x] -> (acc, [y])
 * @param {Function} fn The function to be called on every element of the input `list`.
 * @param {*} acc The accumulator value.
 * @param {Array} list The list to iterate over.
 * @return {*} The final, accumulated value.
 * @see R.addIndex, R.mapAccum
 * @example
 *
 *      const digits = ['1', '2', '3', '4'];
 *      const appender = (a, b) => [b + a, b + a];
 *
 *      R.mapAccumRight(appender, 5, digits); //=> ['12345', ['12345', '2345', '345', '45']]
 * @symb R.mapAccumRight(f, a, [b, c, d]) = [
 *   f(f(f(a, d)[0], c)[0], b)[0],
 *   [
 *     f(a, d)[1],
 *     f(f(a, d)[0], c)[1],
 *     f(f(f(a, d)[0], c)[0], b)[1]
 *   ]
 * ]
 */
var mapAccumRight = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function mapAccumRight(fn, acc, list) {
  var idx = list.length - 1;
  var result = [];
  var tuple = [acc];
  while (idx >= 0) {
    tuple = fn(tuple[0], list[idx]);
    result[idx] = tuple[1];
    idx -= 1;
  }
  return [tuple[0], result];
});
/* harmony default export */ __webpack_exports__["default"] = (mapAccumRight);

/***/ }),

/***/ "./node_modules/ramda/es/mapObjIndexed.js":
/*!************************************************!*\
  !*** ./node_modules/ramda/es/mapObjIndexed.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_reduce.js */ "./node_modules/ramda/es/internal/_reduce.js");
/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keys.js */ "./node_modules/ramda/es/keys.js");




/**
 * An Object-specific version of [`map`](#map). The function is applied to three
 * arguments: *(value, key, obj)*. If only the value is significant, use
 * [`map`](#map) instead.
 *
 * @func
 * @memberOf R
 * @since v0.9.0
 * @category Object
 * @sig ((*, String, Object) -> *) -> Object -> Object
 * @param {Function} fn
 * @param {Object} obj
 * @return {Object}
 * @see R.map
 * @example
 *
 *      const xyz = { x: 1, y: 2, z: 3 };
 *      const prependKeyAndDouble = (num, key, obj) => key + (num * 2);
 *
 *      R.mapObjIndexed(prependKeyAndDouble, xyz); //=> { x: 'x2', y: 'y4', z: 'z6' }
 */
var mapObjIndexed = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function mapObjIndexed(fn, obj) {
  return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function (acc, key) {
    acc[key] = fn(obj[key], key, obj);
    return acc;
  }, {}, Object(_keys_js__WEBPACK_IMPORTED_MODULE_2__["default"])(obj));
});
/* harmony default export */ __webpack_exports__["default"] = (mapObjIndexed);

/***/ }),

/***/ "./node_modules/ramda/es/match.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/match.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Tests a regular expression against a String. Note that this function will
 * return an empty array when there are no matches. This differs from
 * [`String.prototype.match`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match)
 * which returns `null` when there are no matches.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category String
 * @sig RegExp -> String -> [String | Undefined]
 * @param {RegExp} rx A regular expression.
 * @param {String} str The string to match against
 * @return {Array} The list of matches or empty array.
 * @see R.test
 * @example
 *
 *      R.match(/([a-z]a)/g, 'bananas'); //=> ['ba', 'na', 'na']
 *      R.match(/a/, 'b'); //=> []
 *      R.match(/a/, null); //=> TypeError: null does not have a method named "match"
 */
var match = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function match(rx, str) {
  return str.match(rx) || [];
});
/* harmony default export */ __webpack_exports__["default"] = (match);

/***/ }),

/***/ "./node_modules/ramda/es/mathMod.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/mathMod.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isInteger.js */ "./node_modules/ramda/es/internal/_isInteger.js");



/**
 * `mathMod` behaves like the modulo operator should mathematically, unlike the
 * `%` operator (and by extension, [`R.modulo`](#modulo)). So while
 * `-17 % 5` is `-2`, `mathMod(-17, 5)` is `3`. `mathMod` requires Integer
 * arguments, and returns NaN when the modulus is zero or negative.
 *
 * @func
 * @memberOf R
 * @since v0.3.0
 * @category Math
 * @sig Number -> Number -> Number
 * @param {Number} m The dividend.
 * @param {Number} p the modulus.
 * @return {Number} The result of `b mod a`.
 * @see R.modulo
 * @example
 *
 *      R.mathMod(-17, 5);  //=> 3
 *      R.mathMod(17, 5);   //=> 2
 *      R.mathMod(17, -5);  //=> NaN
 *      R.mathMod(17, 0);   //=> NaN
 *      R.mathMod(17.2, 5); //=> NaN
 *      R.mathMod(17, 5.3); //=> NaN
 *
 *      const clock = R.mathMod(R.__, 12);
 *      clock(15); //=> 3
 *      clock(24); //=> 0
 *
 *      const seventeenMod = R.mathMod(17);
 *      seventeenMod(3);  //=> 2
 *      seventeenMod(4);  //=> 1
 *      seventeenMod(10); //=> 7
 */
var mathMod = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function mathMod(m, p) {
  if (!Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__["default"])(m)) {
    return NaN;
  }
  if (!Object(_internal_isInteger_js__WEBPACK_IMPORTED_MODULE_1__["default"])(p) || p < 1) {
    return NaN;
  }
  return (m % p + p) % p;
});
/* harmony default export */ __webpack_exports__["default"] = (mathMod);

/***/ }),

/***/ "./node_modules/ramda/es/max.js":
/*!**************************************!*\
  !*** ./node_modules/ramda/es/max.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Returns the larger of its two arguments.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Relation
 * @sig Ord a => a -> a -> a
 * @param {*} a
 * @param {*} b
 * @return {*}
 * @see R.maxBy, R.min
 * @example
 *
 *      R.max(789, 123); //=> 789
 *      R.max('a', 'b'); //=> 'b'
 */
var max = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function max(a, b) {
  return b > a ? b : a;
});
/* harmony default export */ __webpack_exports__["default"] = (max);

/***/ }),

/***/ "./node_modules/ramda/es/maxBy.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/maxBy.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");


/**
 * Takes a function and two values, and returns whichever value produces the
 * larger result when passed to the provided function.
 *
 * @func
 * @memberOf R
 * @since v0.8.0
 * @category Relation
 * @sig Ord b => (a -> b) -> a -> a -> a
 * @param {Function} f
 * @param {*} a
 * @param {*} b
 * @return {*}
 * @see R.max, R.minBy
 * @example
 *
 *      //  square :: Number -> Number
 *      const square = n => n * n;
 *
 *      R.maxBy(square, -3, 2); //=> -3
 *
 *      R.reduce(R.maxBy(square), 0, [3, -5, 4, 1, -2]); //=> -5
 *      R.reduce(R.maxBy(square), 0, []); //=> 0
 */
var maxBy = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function maxBy(f, a, b) {
  return f(b) > f(a) ? b : a;
});
/* harmony default export */ __webpack_exports__["default"] = (maxBy);

/***/ }),

/***/ "./node_modules/ramda/es/mean.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/mean.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _sum_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sum.js */ "./node_modules/ramda/es/sum.js");



/**
 * Returns the mean of the given list of numbers.
 *
 * @func
 * @memberOf R
 * @since v0.14.0
 * @category Math
 * @sig [Number] -> Number
 * @param {Array} list
 * @return {Number}
 * @see R.median
 * @example
 *
 *      R.mean([2, 7, 9]); //=> 6
 *      R.mean([]); //=> NaN
 */
var mean = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function mean(list) {
  return Object(_sum_js__WEBPACK_IMPORTED_MODULE_1__["default"])(list) / list.length;
});
/* harmony default export */ __webpack_exports__["default"] = (mean);

/***/ }),

/***/ "./node_modules/ramda/es/median.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/median.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _mean_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mean.js */ "./node_modules/ramda/es/mean.js");



/**
 * Returns the median of the given list of numbers.
 *
 * @func
 * @memberOf R
 * @since v0.14.0
 * @category Math
 * @sig [Number] -> Number
 * @param {Array} list
 * @return {Number}
 * @see R.mean
 * @example
 *
 *      R.median([2, 9, 7]); //=> 7
 *      R.median([7, 2, 10, 9]); //=> 8
 *      R.median([]); //=> NaN
 */
var median = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function median(list) {
  var len = list.length;
  if (len === 0) {
    return NaN;
  }
  var width = 2 - len % 2;
  var idx = (len - width) / 2;
  return Object(_mean_js__WEBPACK_IMPORTED_MODULE_1__["default"])(Array.prototype.slice.call(list, 0).sort(function (a, b) {
    return a < b ? -1 : a > b ? 1 : 0;
  }).slice(idx, idx + width));
});
/* harmony default export */ __webpack_exports__["default"] = (median);

/***/ }),

/***/ "./node_modules/ramda/es/memoizeWith.js":
/*!**********************************************!*\
  !*** ./node_modules/ramda/es/memoizeWith.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ "./node_modules/ramda/es/internal/_arity.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_has.js */ "./node_modules/ramda/es/internal/_has.js");




/**
 * Creates a new function that, when invoked, caches the result of calling `fn`
 * for a given argument set and returns the result. Subsequent calls to the
 * memoized `fn` with the same argument set will not result in an additional
 * call to `fn`; instead, the cached result for that set of arguments will be
 * returned.
 *
 *
 * @func
 * @memberOf R
 * @since v0.24.0
 * @category Function
 * @sig (*... -> String) -> (*... -> a) -> (*... -> a)
 * @param {Function} fn The function to generate the cache key.
 * @param {Function} fn The function to memoize.
 * @return {Function} Memoized version of `fn`.
 * @example
 *
 *      let count = 0;
 *      const factorial = R.memoizeWith(R.identity, n => {
 *        count += 1;
 *        return R.product(R.range(1, n + 1));
 *      });
 *      factorial(5); //=> 120
 *      factorial(5); //=> 120
 *      factorial(5); //=> 120
 *      count; //=> 1
 */
var memoizeWith = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function memoizeWith(mFn, fn) {
  var cache = {};
  return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__["default"])(fn.length, function () {
    var key = mFn.apply(this, arguments);
    if (!Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_2__["default"])(key, cache)) {
      cache[key] = fn.apply(this, arguments);
    }
    return cache[key];
  });
});
/* harmony default export */ __webpack_exports__["default"] = (memoizeWith);

/***/ }),

/***/ "./node_modules/ramda/es/merge.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/merge.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_objectAssign.js */ "./node_modules/ramda/es/internal/_objectAssign.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");



/**
 * Create a new object with the own properties of the first object merged with
 * the own properties of the second object. If a key exists in both objects,
 * the value from the second object will be used.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Object
 * @sig {k: v} -> {k: v} -> {k: v}
 * @param {Object} l
 * @param {Object} r
 * @return {Object}
 * @see R.mergeRight, R.mergeDeepRight, R.mergeWith, R.mergeWithKey
 * @deprecated
 * @example
 *
 *      R.merge({ 'name': 'fred', 'age': 10 }, { 'age': 40 });
 *      //=> { 'name': 'fred', 'age': 40 }
 *
 *      const withDefaults = R.merge({x: 0, y: 0});
 *      withDefaults({y: 2}); //=> {x: 0, y: 2}
 * @symb R.merge(a, b) = {...a, ...b}
 */
var merge = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function merge(l, r) {
  return Object(_internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__["default"])({}, l, r);
});
/* harmony default export */ __webpack_exports__["default"] = (merge);

/***/ }),

/***/ "./node_modules/ramda/es/mergeAll.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/mergeAll.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_objectAssign.js */ "./node_modules/ramda/es/internal/_objectAssign.js");
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");



/**
 * Merges a list of objects together into one object.
 *
 * @func
 * @memberOf R
 * @since v0.10.0
 * @category List
 * @sig [{k: v}] -> {k: v}
 * @param {Array} list An array of objects
 * @return {Object} A merged object.
 * @see R.reduce
 * @example
 *
 *      R.mergeAll([{foo:1},{bar:2},{baz:3}]); //=> {foo:1,bar:2,baz:3}
 *      R.mergeAll([{foo:1},{foo:2},{bar:2}]); //=> {foo:2,bar:2}
 * @symb R.mergeAll([{ x: 1 }, { y: 2 }, { z: 3 }]) = { x: 1, y: 2, z: 3 }
 */
var mergeAll = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function mergeAll(list) {
  return _internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__["default"].apply(null, [{}].concat(list));
});
/* harmony default export */ __webpack_exports__["default"] = (mergeAll);

/***/ }),

/***/ "./node_modules/ramda/es/mergeDeepLeft.js":
/*!************************************************!*\
  !*** ./node_modules/ramda/es/mergeDeepLeft.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mergeDeepWithKey.js */ "./node_modules/ramda/es/mergeDeepWithKey.js");



/**
 * Creates a new object with the own properties of the first object merged with
 * the own properties of the second object. If a key exists in both objects:
 * - and both values are objects, the two values will be recursively merged
 * - otherwise the value from the first object will be used.
 *
 * @func
 * @memberOf R
 * @since v0.24.0
 * @category Object
 * @sig {a} -> {a} -> {a}
 * @param {Object} lObj
 * @param {Object} rObj
 * @return {Object}
 * @see R.merge, R.mergeDeepRight, R.mergeDeepWith, R.mergeDeepWithKey
 * @example
 *
 *      R.mergeDeepLeft({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},
 *                      { age: 40, contact: { email: 'baa@example.com' }});
 *      //=> { name: 'fred', age: 10, contact: { email: 'moo@example.com' }}
 */
var mergeDeepLeft = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function mergeDeepLeft(lObj, rObj) {
  return Object(_mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function (k, lVal, rVal) {
    return lVal;
  }, lObj, rObj);
});
/* harmony default export */ __webpack_exports__["default"] = (mergeDeepLeft);

/***/ }),

/***/ "./node_modules/ramda/es/mergeDeepRight.js":
/*!*************************************************!*\
  !*** ./node_modules/ramda/es/mergeDeepRight.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mergeDeepWithKey.js */ "./node_modules/ramda/es/mergeDeepWithKey.js");



/**
 * Creates a new object with the own properties of the first object merged with
 * the own properties of the second object. If a key exists in both objects:
 * - and both values are objects, the two values will be recursively merged
 * - otherwise the value from the second object will be used.
 *
 * @func
 * @memberOf R
 * @since v0.24.0
 * @category Object
 * @sig {a} -> {a} -> {a}
 * @param {Object} lObj
 * @param {Object} rObj
 * @return {Object}
 * @see R.merge, R.mergeDeepLeft, R.mergeDeepWith, R.mergeDeepWithKey
 * @example
 *
 *      R.mergeDeepRight({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},
 *                       { age: 40, contact: { email: 'baa@example.com' }});
 *      //=> { name: 'fred', age: 40, contact: { email: 'baa@example.com' }}
 */
var mergeDeepRight = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function mergeDeepRight(lObj, rObj) {
  return Object(_mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function (k, lVal, rVal) {
    return rVal;
  }, lObj, rObj);
});
/* harmony default export */ __webpack_exports__["default"] = (mergeDeepRight);

/***/ }),

/***/ "./node_modules/ramda/es/mergeDeepWith.js":
/*!************************************************!*\
  !*** ./node_modules/ramda/es/mergeDeepWith.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");
/* harmony import */ var _mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mergeDeepWithKey.js */ "./node_modules/ramda/es/mergeDeepWithKey.js");



/**
 * Creates a new object with the own properties of the two provided objects.
 * If a key exists in both objects:
 * - and both associated values are also objects then the values will be
 *   recursively merged.
 * - otherwise the provided function is applied to associated values using the
 *   resulting value as the new value associated with the key.
 * If a key only exists in one object, the value will be associated with the key
 * of the resulting object.
 *
 * @func
 * @memberOf R
 * @since v0.24.0
 * @category Object
 * @sig ((a, a) -> a) -> {a} -> {a} -> {a}
 * @param {Function} fn
 * @param {Object} lObj
 * @param {Object} rObj
 * @return {Object}
 * @see R.mergeWith, R.mergeDeepWithKey
 * @example
 *
 *      R.mergeDeepWith(R.concat,
 *                      { a: true, c: { values: [10, 20] }},
 *                      { b: true, c: { values: [15, 35] }});
 *      //=> { a: true, b: true, c: { values: [10, 20, 15, 35] }}
 */
var mergeDeepWith = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function mergeDeepWith(fn, lObj, rObj) {
  return Object(_mergeDeepWithKey_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function (k, lVal, rVal) {
    return fn(lVal, rVal);
  }, lObj, rObj);
});
/* harmony default export */ __webpack_exports__["default"] = (mergeDeepWith);

/***/ }),

/***/ "./node_modules/ramda/es/mergeDeepWithKey.js":
/*!***************************************************!*\
  !*** ./node_modules/ramda/es/mergeDeepWithKey.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");
/* harmony import */ var _internal_isObject_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isObject.js */ "./node_modules/ramda/es/internal/_isObject.js");
/* harmony import */ var _mergeWithKey_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mergeWithKey.js */ "./node_modules/ramda/es/mergeWithKey.js");




/**
 * Creates a new object with the own properties of the two provided objects.
 * If a key exists in both objects:
 * - and both associated values are also objects then the values will be
 *   recursively merged.
 * - otherwise the provided function is applied to the key and associated values
 *   using the resulting value as the new value associated with the key.
 * If a key only exists in one object, the value will be associated with the key
 * of the resulting object.
 *
 * @func
 * @memberOf R
 * @since v0.24.0
 * @category Object
 * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}
 * @param {Function} fn
 * @param {Object} lObj
 * @param {Object} rObj
 * @return {Object}
 * @see R.mergeWithKey, R.mergeDeepWith
 * @example
 *
 *      let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r
 *      R.mergeDeepWithKey(concatValues,
 *                         { a: true, c: { thing: 'foo', values: [10, 20] }},
 *                         { b: true, c: { thing: 'bar', values: [15, 35] }});
 *      //=> { a: true, b: true, c: { thing: 'bar', values: [10, 20, 15, 35] }}
 */
var mergeDeepWithKey = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function mergeDeepWithKey(fn, lObj, rObj) {
  return Object(_mergeWithKey_js__WEBPACK_IMPORTED_MODULE_2__["default"])(function (k, lVal, rVal) {
    if (Object(_internal_isObject_js__WEBPACK_IMPORTED_MODULE_1__["default"])(lVal) && Object(_internal_isObject_js__WEBPACK_IMPORTED_MODULE_1__["default"])(rVal)) {
      return mergeDeepWithKey(fn, lVal, rVal);
    } else {
      return fn(k, lVal, rVal);
    }
  }, lObj, rObj);
});
/* harmony default export */ __webpack_exports__["default"] = (mergeDeepWithKey);

/***/ }),

/***/ "./node_modules/ramda/es/mergeLeft.js":
/*!********************************************!*\
  !*** ./node_modules/ramda/es/mergeLeft.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_objectAssign.js */ "./node_modules/ramda/es/internal/_objectAssign.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");



/**
 * Create a new object with the own properties of the first object merged with
 * the own properties of the second object. If a key exists in both objects,
 * the value from the first object will be used.
 *
 * @func
 * @memberOf R
 * @category Object
 * @sig {k: v} -> {k: v} -> {k: v}
 * @param {Object} l
 * @param {Object} r
 * @return {Object}
 * @see R.mergeRight, R.mergeDeepLeft, R.mergeWith, R.mergeWithKey
 * @example
 *
 *      R.mergeLeft({ 'age': 40 }, { 'name': 'fred', 'age': 10 });
 *      //=> { 'name': 'fred', 'age': 40 }
 *
 *      const resetToDefault = R.mergeLeft({x: 0});
 *      resetToDefault({x: 5, y: 2}); //=> {x: 0, y: 2}
 * @symb R.mergeLeft(a, b) = {...b, ...a}
 */
var mergeLeft = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function mergeLeft(l, r) {
  return Object(_internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__["default"])({}, r, l);
});
/* harmony default export */ __webpack_exports__["default"] = (mergeLeft);

/***/ }),

/***/ "./node_modules/ramda/es/mergeRight.js":
/*!*********************************************!*\
  !*** ./node_modules/ramda/es/mergeRight.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_objectAssign.js */ "./node_modules/ramda/es/internal/_objectAssign.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");



/**
 * Create a new object with the own properties of the first object merged with
 * the own properties of the second object. If a key exists in both objects,
 * the value from the second object will be used.
 *
 * @func
 * @memberOf R
 * @category Object
 * @sig {k: v} -> {k: v} -> {k: v}
 * @param {Object} l
 * @param {Object} r
 * @return {Object}
 * @see R.mergeLeft, R.mergeDeepRight, R.mergeWith, R.mergeWithKey
 * @example
 *
 *      R.mergeRight({ 'name': 'fred', 'age': 10 }, { 'age': 40 });
 *      //=> { 'name': 'fred', 'age': 40 }
 *
 *      const withDefaults = R.mergeRight({x: 0, y: 0});
 *      withDefaults({y: 2}); //=> {x: 0, y: 2}
 * @symb R.mergeRight(a, b) = {...a, ...b}
 */
var mergeRight = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function mergeRight(l, r) {
  return Object(_internal_objectAssign_js__WEBPACK_IMPORTED_MODULE_0__["default"])({}, l, r);
});
/* harmony default export */ __webpack_exports__["default"] = (mergeRight);

/***/ }),

/***/ "./node_modules/ramda/es/mergeWith.js":
/*!********************************************!*\
  !*** ./node_modules/ramda/es/mergeWith.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");
/* harmony import */ var _mergeWithKey_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mergeWithKey.js */ "./node_modules/ramda/es/mergeWithKey.js");



/**
 * Creates a new object with the own properties of the two provided objects. If
 * a key exists in both objects, the provided function is applied to the values
 * associated with the key in each object, with the result being used as the
 * value associated with the key in the returned object.
 *
 * @func
 * @memberOf R
 * @since v0.19.0
 * @category Object
 * @sig ((a, a) -> a) -> {a} -> {a} -> {a}
 * @param {Function} fn
 * @param {Object} l
 * @param {Object} r
 * @return {Object}
 * @see R.mergeDeepWith, R.merge, R.mergeWithKey
 * @example
 *
 *      R.mergeWith(R.concat,
 *                  { a: true, values: [10, 20] },
 *                  { b: true, values: [15, 35] });
 *      //=> { a: true, b: true, values: [10, 20, 15, 35] }
 */
var mergeWith = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function mergeWith(fn, l, r) {
  return Object(_mergeWithKey_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function (_, _l, _r) {
    return fn(_l, _r);
  }, l, r);
});
/* harmony default export */ __webpack_exports__["default"] = (mergeWith);

/***/ }),

/***/ "./node_modules/ramda/es/mergeWithKey.js":
/*!***********************************************!*\
  !*** ./node_modules/ramda/es/mergeWithKey.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");
/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ "./node_modules/ramda/es/internal/_has.js");



/**
 * Creates a new object with the own properties of the two provided objects. If
 * a key exists in both objects, the provided function is applied to the key
 * and the values associated with the key in each object, with the result being
 * used as the value associated with the key in the returned object.
 *
 * @func
 * @memberOf R
 * @since v0.19.0
 * @category Object
 * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}
 * @param {Function} fn
 * @param {Object} l
 * @param {Object} r
 * @return {Object}
 * @see R.mergeDeepWithKey, R.merge, R.mergeWith
 * @example
 *
 *      let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r
 *      R.mergeWithKey(concatValues,
 *                     { a: true, thing: 'foo', values: [10, 20] },
 *                     { b: true, thing: 'bar', values: [15, 35] });
 *      //=> { a: true, b: true, thing: 'bar', values: [10, 20, 15, 35] }
 * @symb R.mergeWithKey(f, { x: 1, y: 2 }, { y: 5, z: 3 }) = { x: 1, y: f('y', 2, 5), z: 3 }
 */
var mergeWithKey = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function mergeWithKey(fn, l, r) {
  var result = {};
  var k;

  for (k in l) {
    if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__["default"])(k, l)) {
      result[k] = Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__["default"])(k, r) ? fn(k, l[k], r[k]) : l[k];
    }
  }

  for (k in r) {
    if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__["default"])(k, r) && !Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__["default"])(k, result)) {
      result[k] = r[k];
    }
  }

  return result;
});
/* harmony default export */ __webpack_exports__["default"] = (mergeWithKey);

/***/ }),

/***/ "./node_modules/ramda/es/min.js":
/*!**************************************!*\
  !*** ./node_modules/ramda/es/min.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Returns the smaller of its two arguments.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Relation
 * @sig Ord a => a -> a -> a
 * @param {*} a
 * @param {*} b
 * @return {*}
 * @see R.minBy, R.max
 * @example
 *
 *      R.min(789, 123); //=> 123
 *      R.min('a', 'b'); //=> 'a'
 */
var min = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function min(a, b) {
  return b < a ? b : a;
});
/* harmony default export */ __webpack_exports__["default"] = (min);

/***/ }),

/***/ "./node_modules/ramda/es/minBy.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/minBy.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");


/**
 * Takes a function and two values, and returns whichever value produces the
 * smaller result when passed to the provided function.
 *
 * @func
 * @memberOf R
 * @since v0.8.0
 * @category Relation
 * @sig Ord b => (a -> b) -> a -> a -> a
 * @param {Function} f
 * @param {*} a
 * @param {*} b
 * @return {*}
 * @see R.min, R.maxBy
 * @example
 *
 *      //  square :: Number -> Number
 *      const square = n => n * n;
 *
 *      R.minBy(square, -3, 2); //=> 2
 *
 *      R.reduce(R.minBy(square), Infinity, [3, -5, 4, 1, -2]); //=> 1
 *      R.reduce(R.minBy(square), Infinity, []); //=> Infinity
 */
var minBy = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function minBy(f, a, b) {
  return f(b) < f(a) ? b : a;
});
/* harmony default export */ __webpack_exports__["default"] = (minBy);

/***/ }),

/***/ "./node_modules/ramda/es/modulo.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/modulo.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Divides the first parameter by the second and returns the remainder. Note
 * that this function preserves the JavaScript-style behavior for modulo. For
 * mathematical modulo see [`mathMod`](#mathMod).
 *
 * @func
 * @memberOf R
 * @since v0.1.1
 * @category Math
 * @sig Number -> Number -> Number
 * @param {Number} a The value to the divide.
 * @param {Number} b The pseudo-modulus
 * @return {Number} The result of `b % a`.
 * @see R.mathMod
 * @example
 *
 *      R.modulo(17, 3); //=> 2
 *      // JS behavior:
 *      R.modulo(-17, 3); //=> -2
 *      R.modulo(17, -3); //=> 2
 *
 *      const isOdd = R.modulo(R.__, 2);
 *      isOdd(42); //=> 0
 *      isOdd(21); //=> 1
 */
var modulo = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function modulo(a, b) {
  return a % b;
});
/* harmony default export */ __webpack_exports__["default"] = (modulo);

/***/ }),

/***/ "./node_modules/ramda/es/move.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/move.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");


/**
 * Move an item, at index `from`, to index `to`, in a list of elements.
 * A new list will be created containing the new elements order.
 *
 * @func
 * @memberOf R
 * @category List
 * @sig Number -> Number -> [a] -> [a]
 * @param {Number} from The source index
 * @param {Number} to The destination index
 * @param {Array} list The list which will serve to realise the move
 * @return {Array} The new list reordered
 * @example
 *
 *      R.move(0, 2, ['a', 'b', 'c', 'd', 'e', 'f']); //=> ['b', 'c', 'a', 'd', 'e', 'f']
 *      R.move(-1, 0, ['a', 'b', 'c', 'd', 'e', 'f']); //=> ['f', 'a', 'b', 'c', 'd', 'e'] list rotation
 */
var move = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function (from, to, list) {
  var length = list.length;
  var result = list.slice();
  var positiveFrom = from < 0 ? length + from : from;
  var positiveTo = to < 0 ? length + to : to;
  var item = result.splice(positiveFrom, 1);

  return positiveFrom < 0 || positiveFrom >= list.length || positiveTo < 0 || positiveTo >= list.length ? list : [].concat(result.slice(0, positiveTo)).concat(item).concat(result.slice(positiveTo, list.length));
});

/* harmony default export */ __webpack_exports__["default"] = (move);

/***/ }),

/***/ "./node_modules/ramda/es/multiply.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/multiply.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Multiplies two numbers. Equivalent to `a * b` but curried.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Math
 * @sig Number -> Number -> Number
 * @param {Number} a The first value.
 * @param {Number} b The second value.
 * @return {Number} The result of `a * b`.
 * @see R.divide
 * @example
 *
 *      const double = R.multiply(2);
 *      const triple = R.multiply(3);
 *      double(3);       //=>  6
 *      triple(4);       //=> 12
 *      R.multiply(2, 5);  //=> 10
 */
var multiply = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function multiply(a, b) {
  return a * b;
});
/* harmony default export */ __webpack_exports__["default"] = (multiply);

/***/ }),

/***/ "./node_modules/ramda/es/nAry.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/nAry.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Wraps a function of any arity (including nullary) in a function that accepts
 * exactly `n` parameters. Any extraneous parameters will not be passed to the
 * supplied function.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Function
 * @sig Number -> (* -> a) -> (* -> a)
 * @param {Number} n The desired arity of the new function.
 * @param {Function} fn The function to wrap.
 * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of
 *         arity `n`.
 * @see R.binary, R.unary
 * @example
 *
 *      const takesTwoArgs = (a, b) => [a, b];
 *
 *      takesTwoArgs.length; //=> 2
 *      takesTwoArgs(1, 2); //=> [1, 2]
 *
 *      const takesOneArg = R.nAry(1, takesTwoArgs);
 *      takesOneArg.length; //=> 1
 *      // Only `n` arguments are passed to the wrapped function
 *      takesOneArg(1, 2); //=> [1, undefined]
 * @symb R.nAry(0, f)(a, b) = f()
 * @symb R.nAry(1, f)(a, b) = f(a)
 * @symb R.nAry(2, f)(a, b) = f(a, b)
 */
var nAry = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function nAry(n, fn) {
  switch (n) {
    case 0:
      return function () {
        return fn.call(this);
      };
    case 1:
      return function (a0) {
        return fn.call(this, a0);
      };
    case 2:
      return function (a0, a1) {
        return fn.call(this, a0, a1);
      };
    case 3:
      return function (a0, a1, a2) {
        return fn.call(this, a0, a1, a2);
      };
    case 4:
      return function (a0, a1, a2, a3) {
        return fn.call(this, a0, a1, a2, a3);
      };
    case 5:
      return function (a0, a1, a2, a3, a4) {
        return fn.call(this, a0, a1, a2, a3, a4);
      };
    case 6:
      return function (a0, a1, a2, a3, a4, a5) {
        return fn.call(this, a0, a1, a2, a3, a4, a5);
      };
    case 7:
      return function (a0, a1, a2, a3, a4, a5, a6) {
        return fn.call(this, a0, a1, a2, a3, a4, a5, a6);
      };
    case 8:
      return function (a0, a1, a2, a3, a4, a5, a6, a7) {
        return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7);
      };
    case 9:
      return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {
        return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8);
      };
    case 10:
      return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {
        return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
      };
    default:
      throw new Error('First argument to nAry must be a non-negative integer no greater than ten');
  }
});
/* harmony default export */ __webpack_exports__["default"] = (nAry);

/***/ }),

/***/ "./node_modules/ramda/es/negate.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/negate.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");


/**
 * Negates its argument.
 *
 * @func
 * @memberOf R
 * @since v0.9.0
 * @category Math
 * @sig Number -> Number
 * @param {Number} n
 * @return {Number}
 * @example
 *
 *      R.negate(42); //=> -42
 */
var negate = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function negate(n) {
  return -n;
});
/* harmony default export */ __webpack_exports__["default"] = (negate);

/***/ }),

/***/ "./node_modules/ramda/es/none.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/none.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_complement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_complement.js */ "./node_modules/ramda/es/internal/_complement.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _all_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./all.js */ "./node_modules/ramda/es/all.js");




/**
 * Returns `true` if no elements of the list match the predicate, `false`
 * otherwise.
 *
 * Dispatches to the `all` method of the second argument, if present.
 *
 * Acts as a transducer if a transformer is given in list position.
 *
 * @func
 * @memberOf R
 * @since v0.12.0
 * @category List
 * @sig (a -> Boolean) -> [a] -> Boolean
 * @param {Function} fn The predicate function.
 * @param {Array} list The array to consider.
 * @return {Boolean} `true` if the predicate is not satisfied by every element, `false` otherwise.
 * @see R.all, R.any
 * @example
 *
 *      const isEven = n => n % 2 === 0;
 *      const isOdd = n => n % 2 === 1;
 *
 *      R.none(isEven, [1, 3, 5, 7, 9, 11]); //=> true
 *      R.none(isOdd, [1, 3, 5, 7, 8, 11]); //=> false
 */
var none = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function none(fn, input) {
  return Object(_all_js__WEBPACK_IMPORTED_MODULE_2__["default"])(Object(_internal_complement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(fn), input);
});
/* harmony default export */ __webpack_exports__["default"] = (none);

/***/ }),

/***/ "./node_modules/ramda/es/not.js":
/*!**************************************!*\
  !*** ./node_modules/ramda/es/not.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");


/**
 * A function that returns the `!` of its argument. It will return `true` when
 * passed false-y value, and `false` when passed a truth-y one.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Logic
 * @sig * -> Boolean
 * @param {*} a any value
 * @return {Boolean} the logical inverse of passed argument.
 * @see R.complement
 * @example
 *
 *      R.not(true); //=> false
 *      R.not(false); //=> true
 *      R.not(0); //=> true
 *      R.not(1); //=> false
 */
var not = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function not(a) {
  return !a;
});
/* harmony default export */ __webpack_exports__["default"] = (not);

/***/ }),

/***/ "./node_modules/ramda/es/nth.js":
/*!**************************************!*\
  !*** ./node_modules/ramda/es/nth.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_isString_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isString.js */ "./node_modules/ramda/es/internal/_isString.js");



/**
 * Returns the nth element of the given list or string. If n is negative the
 * element at index length + n is returned.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig Number -> [a] -> a | Undefined
 * @sig Number -> String -> String
 * @param {Number} offset
 * @param {*} list
 * @return {*}
 * @example
 *
 *      const list = ['foo', 'bar', 'baz', 'quux'];
 *      R.nth(1, list); //=> 'bar'
 *      R.nth(-1, list); //=> 'quux'
 *      R.nth(-99, list); //=> undefined
 *
 *      R.nth(2, 'abc'); //=> 'c'
 *      R.nth(3, 'abc'); //=> ''
 * @symb R.nth(-1, [a, b, c]) = c
 * @symb R.nth(0, [a, b, c]) = a
 * @symb R.nth(1, [a, b, c]) = b
 */
var nth = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function nth(offset, list) {
  var idx = offset < 0 ? list.length + offset : offset;
  return Object(_internal_isString_js__WEBPACK_IMPORTED_MODULE_1__["default"])(list) ? list.charAt(idx) : list[idx];
});
/* harmony default export */ __webpack_exports__["default"] = (nth);

/***/ }),

/***/ "./node_modules/ramda/es/nthArg.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/nthArg.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ "./node_modules/ramda/es/curryN.js");
/* harmony import */ var _nth_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nth.js */ "./node_modules/ramda/es/nth.js");




/**
 * Returns a function which returns its nth argument.
 *
 * @func
 * @memberOf R
 * @since v0.9.0
 * @category Function
 * @sig Number -> *... -> *
 * @param {Number} n
 * @return {Function}
 * @example
 *
 *      R.nthArg(1)('a', 'b', 'c'); //=> 'b'
 *      R.nthArg(-1)('a', 'b', 'c'); //=> 'c'
 * @symb R.nthArg(-1)(a, b, c) = c
 * @symb R.nthArg(0)(a, b, c) = a
 * @symb R.nthArg(1)(a, b, c) = b
 */
var nthArg = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function nthArg(n) {
  var arity = n < 0 ? 1 : n + 1;
  return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__["default"])(arity, function () {
    return Object(_nth_js__WEBPACK_IMPORTED_MODULE_2__["default"])(n, arguments);
  });
});
/* harmony default export */ __webpack_exports__["default"] = (nthArg);

/***/ }),

/***/ "./node_modules/ramda/es/o.js":
/*!************************************!*\
  !*** ./node_modules/ramda/es/o.js ***!
  \************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");


/**
 * `o` is a curried composition function that returns a unary function.
 * Like [`compose`](#compose), `o` performs right-to-left function composition.
 * Unlike [`compose`](#compose), the rightmost function passed to `o` will be
 * invoked with only one argument. Also, unlike [`compose`](#compose), `o` is
 * limited to accepting only 2 unary functions. The name o was chosen because
 * of its similarity to the mathematical composition operator ∘.
 *
 * @func
 * @memberOf R
 * @since v0.24.0
 * @category Function
 * @sig (b -> c) -> (a -> b) -> a -> c
 * @param {Function} f
 * @param {Function} g
 * @return {Function}
 * @see R.compose, R.pipe
 * @example
 *
 *      const classyGreeting = name => "The name's " + name.last + ", " + name.first + " " + name.last
 *      const yellGreeting = R.o(R.toUpper, classyGreeting);
 *      yellGreeting({first: 'James', last: 'Bond'}); //=> "THE NAME'S BOND, JAMES BOND"
 *
 *      R.o(R.multiply(10), R.add(10))(-4) //=> 60
 *
 * @symb R.o(f, g, x) = f(g(x))
 */
var o = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function o(f, g, x) {
  return f(g(x));
});
/* harmony default export */ __webpack_exports__["default"] = (o);

/***/ }),

/***/ "./node_modules/ramda/es/objOf.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/objOf.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Creates an object containing a single key:value pair.
 *
 * @func
 * @memberOf R
 * @since v0.18.0
 * @category Object
 * @sig String -> a -> {String:a}
 * @param {String} key
 * @param {*} val
 * @return {Object}
 * @see R.pair
 * @example
 *
 *      const matchPhrases = R.compose(
 *        R.objOf('must'),
 *        R.map(R.objOf('match_phrase'))
 *      );
 *      matchPhrases(['foo', 'bar', 'baz']); //=> {must: [{match_phrase: 'foo'}, {match_phrase: 'bar'}, {match_phrase: 'baz'}]}
 */
var objOf = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function objOf(key, val) {
  var obj = {};
  obj[key] = val;
  return obj;
});
/* harmony default export */ __webpack_exports__["default"] = (objOf);

/***/ }),

/***/ "./node_modules/ramda/es/of.js":
/*!*************************************!*\
  !*** ./node_modules/ramda/es/of.js ***!
  \*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _internal_of_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_of.js */ "./node_modules/ramda/es/internal/_of.js");



/**
 * Returns a singleton array containing the value provided.
 *
 * Note this `of` is different from the ES6 `of`; See
 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of
 *
 * @func
 * @memberOf R
 * @since v0.3.0
 * @category Function
 * @sig a -> [a]
 * @param {*} x any value
 * @return {Array} An array wrapping `x`.
 * @example
 *
 *      R.of(null); //=> [null]
 *      R.of([42]); //=> [[42]]
 */
var of = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(_internal_of_js__WEBPACK_IMPORTED_MODULE_1__["default"]);
/* harmony default export */ __webpack_exports__["default"] = (of);

/***/ }),

/***/ "./node_modules/ramda/es/omit.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/omit.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Returns a partial copy of an object omitting the keys specified.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Object
 * @sig [String] -> {String: *} -> {String: *}
 * @param {Array} names an array of String property names to omit from the new object
 * @param {Object} obj The object to copy from
 * @return {Object} A new object with properties from `names` not on it.
 * @see R.pick
 * @example
 *
 *      R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}
 */
var omit = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function omit(names, obj) {
  var result = {};
  var index = {};
  var idx = 0;
  var len = names.length;

  while (idx < len) {
    index[names[idx]] = 1;
    idx += 1;
  }

  for (var prop in obj) {
    if (!index.hasOwnProperty(prop)) {
      result[prop] = obj[prop];
    }
  }
  return result;
});
/* harmony default export */ __webpack_exports__["default"] = (omit);

/***/ }),

/***/ "./node_modules/ramda/es/once.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/once.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ "./node_modules/ramda/es/internal/_arity.js");
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");



/**
 * Accepts a function `fn` and returns a function that guards invocation of
 * `fn` such that `fn` can only ever be called once, no matter how many times
 * the returned function is invoked. The first value calculated is returned in
 * subsequent invocations.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Function
 * @sig (a... -> b) -> (a... -> b)
 * @param {Function} fn The function to wrap in a call-only-once wrapper.
 * @return {Function} The wrapped function.
 * @example
 *
 *      const addOneOnce = R.once(x => x + 1);
 *      addOneOnce(10); //=> 11
 *      addOneOnce(addOneOnce(50)); //=> 11
 */
var once = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function once(fn) {
  var called = false;
  var result;
  return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__["default"])(fn.length, function () {
    if (called) {
      return result;
    }
    called = true;
    result = fn.apply(this, arguments);
    return result;
  });
});
/* harmony default export */ __webpack_exports__["default"] = (once);

/***/ }),

/***/ "./node_modules/ramda/es/or.js":
/*!*************************************!*\
  !*** ./node_modules/ramda/es/or.js ***!
  \*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Returns `true` if one or both of its arguments are `true`. Returns `false`
 * if both arguments are `false`.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Logic
 * @sig a -> b -> a | b
 * @param {Any} a
 * @param {Any} b
 * @return {Any} the first argument if truthy, otherwise the second argument.
 * @see R.either
 * @example
 *
 *      R.or(true, true); //=> true
 *      R.or(true, false); //=> true
 *      R.or(false, true); //=> true
 *      R.or(false, false); //=> false
 */
var or = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function or(a, b) {
  return a || b;
});
/* harmony default export */ __webpack_exports__["default"] = (or);

/***/ }),

/***/ "./node_modules/ramda/es/otherwise.js":
/*!********************************************!*\
  !*** ./node_modules/ramda/es/otherwise.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_assertPromise_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_assertPromise.js */ "./node_modules/ramda/es/internal/_assertPromise.js");



/**
 * Returns the result of applying the onFailure function to the value inside
 * a failed promise. This is useful for handling rejected promises
 * inside function compositions.
 *
 * @func
 * @memberOf R
 * @category Function
 * @sig (e -> b) -> (Promise e a) -> (Promise e b)
 * @sig (e -> (Promise f b)) -> (Promise e a) -> (Promise f b)
 * @param {Function} onFailure The function to apply. Can return a value or a promise of a value.
 * @param {Promise} p
 * @return {Promise} The result of calling `p.then(null, onFailure)`
 * @see R.then
 * @example
 *
 *      var failedFetch = (id) => Promise.reject('bad ID');
 *      var useDefault = () => ({ firstName: 'Bob', lastName: 'Loblaw' })
 *
 *      //recoverFromFailure :: String -> Promise ({firstName, lastName})
 *      var recoverFromFailure = R.pipe(
 *        failedFetch,
 *        R.otherwise(useDefault),
 *        R.then(R.pick(['firstName', 'lastName'])),
 *      );
 *      recoverFromFailure(12345).then(console.log)
 */
var otherwise = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function otherwise(f, p) {
  Object(_internal_assertPromise_js__WEBPACK_IMPORTED_MODULE_1__["default"])('otherwise', p);

  return p.then(null, f);
});
/* harmony default export */ __webpack_exports__["default"] = (otherwise);

/***/ }),

/***/ "./node_modules/ramda/es/over.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/over.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");


// `Identity` is a functor that holds a single value, where `map` simply
// transforms the held value with the provided function.
var Identity = function (x) {
  return { value: x, map: function (f) {
      return Identity(f(x));
    } };
};

/**
 * Returns the result of "setting" the portion of the given data structure
 * focused by the given lens to the result of applying the given function to
 * the focused value.
 *
 * @func
 * @memberOf R
 * @since v0.16.0
 * @category Object
 * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s
 * @sig Lens s a -> (a -> a) -> s -> s
 * @param {Lens} lens
 * @param {*} v
 * @param {*} x
 * @return {*}
 * @see R.prop, R.lensIndex, R.lensProp
 * @example
 *
 *      const headLens = R.lensIndex(0);
 *
 *      R.over(headLens, R.toUpper, ['foo', 'bar', 'baz']); //=> ['FOO', 'bar', 'baz']
 */
var over = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function over(lens, f, x) {
  // The value returned by the getter function is first transformed with `f`,
  // then set as the value of an `Identity`. This is then mapped over with the
  // setter function of the lens.
  return lens(function (y) {
    return Identity(f(y));
  })(x).value;
});
/* harmony default export */ __webpack_exports__["default"] = (over);

/***/ }),

/***/ "./node_modules/ramda/es/pair.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/pair.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Takes two arguments, `fst` and `snd`, and returns `[fst, snd]`.
 *
 * @func
 * @memberOf R
 * @since v0.18.0
 * @category List
 * @sig a -> b -> (a,b)
 * @param {*} fst
 * @param {*} snd
 * @return {Array}
 * @see R.objOf, R.of
 * @example
 *
 *      R.pair('foo', 'bar'); //=> ['foo', 'bar']
 */
var pair = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function pair(fst, snd) {
  return [fst, snd];
});
/* harmony default export */ __webpack_exports__["default"] = (pair);

/***/ }),

/***/ "./node_modules/ramda/es/partial.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/partial.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ "./node_modules/ramda/es/internal/_concat.js");
/* harmony import */ var _internal_createPartialApplicator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_createPartialApplicator.js */ "./node_modules/ramda/es/internal/_createPartialApplicator.js");



/**
 * Takes a function `f` and a list of arguments, and returns a function `g`.
 * When applied, `g` returns the result of applying `f` to the arguments
 * provided initially followed by the arguments provided to `g`.
 *
 * @func
 * @memberOf R
 * @since v0.10.0
 * @category Function
 * @sig ((a, b, c, ..., n) -> x) -> [a, b, c, ...] -> ((d, e, f, ..., n) -> x)
 * @param {Function} f
 * @param {Array} args
 * @return {Function}
 * @see R.partialRight, R.curry
 * @example
 *
 *      const multiply2 = (a, b) => a * b;
 *      const double = R.partial(multiply2, [2]);
 *      double(2); //=> 4
 *
 *      const greet = (salutation, title, firstName, lastName) =>
 *        salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!';
 *
 *      const sayHello = R.partial(greet, ['Hello']);
 *      const sayHelloToMs = R.partial(sayHello, ['Ms.']);
 *      sayHelloToMs('Jane', 'Jones'); //=> 'Hello, Ms. Jane Jones!'
 * @symb R.partial(f, [a, b])(c, d) = f(a, b, c, d)
 */
var partial = /*#__PURE__*/Object(_internal_createPartialApplicator_js__WEBPACK_IMPORTED_MODULE_1__["default"])(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
/* harmony default export */ __webpack_exports__["default"] = (partial);

/***/ }),

/***/ "./node_modules/ramda/es/partialRight.js":
/*!***********************************************!*\
  !*** ./node_modules/ramda/es/partialRight.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ "./node_modules/ramda/es/internal/_concat.js");
/* harmony import */ var _internal_createPartialApplicator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_createPartialApplicator.js */ "./node_modules/ramda/es/internal/_createPartialApplicator.js");
/* harmony import */ var _flip_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./flip.js */ "./node_modules/ramda/es/flip.js");




/**
 * Takes a function `f` and a list of arguments, and returns a function `g`.
 * When applied, `g` returns the result of applying `f` to the arguments
 * provided to `g` followed by the arguments provided initially.
 *
 * @func
 * @memberOf R
 * @since v0.10.0
 * @category Function
 * @sig ((a, b, c, ..., n) -> x) -> [d, e, f, ..., n] -> ((a, b, c, ...) -> x)
 * @param {Function} f
 * @param {Array} args
 * @return {Function}
 * @see R.partial
 * @example
 *
 *      const greet = (salutation, title, firstName, lastName) =>
 *        salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!';
 *
 *      const greetMsJaneJones = R.partialRight(greet, ['Ms.', 'Jane', 'Jones']);
 *
 *      greetMsJaneJones('Hello'); //=> 'Hello, Ms. Jane Jones!'
 * @symb R.partialRight(f, [a, b])(c, d) = f(c, d, a, b)
 */
var partialRight = /*#__PURE__*/Object(_internal_createPartialApplicator_js__WEBPACK_IMPORTED_MODULE_1__["default"])( /*#__PURE__*/Object(_flip_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__["default"]));
/* harmony default export */ __webpack_exports__["default"] = (partialRight);

/***/ }),

/***/ "./node_modules/ramda/es/partition.js":
/*!********************************************!*\
  !*** ./node_modules/ramda/es/partition.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./filter.js */ "./node_modules/ramda/es/filter.js");
/* harmony import */ var _juxt_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./juxt.js */ "./node_modules/ramda/es/juxt.js");
/* harmony import */ var _reject_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reject.js */ "./node_modules/ramda/es/reject.js");




/**
 * Takes a predicate and a list or other `Filterable` object and returns the
 * pair of filterable objects of the same type of elements which do and do not
 * satisfy, the predicate, respectively. Filterable objects include plain objects or any object
 * that has a filter method such as `Array`.
 *
 * @func
 * @memberOf R
 * @since v0.1.4
 * @category List
 * @sig Filterable f => (a -> Boolean) -> f a -> [f a, f a]
 * @param {Function} pred A predicate to determine which side the element belongs to.
 * @param {Array} filterable the list (or other filterable) to partition.
 * @return {Array} An array, containing first the subset of elements that satisfy the
 *         predicate, and second the subset of elements that do not satisfy.
 * @see R.filter, R.reject
 * @example
 *
 *      R.partition(R.includes('s'), ['sss', 'ttt', 'foo', 'bars']);
 *      // => [ [ 'sss', 'bars' ],  [ 'ttt', 'foo' ] ]
 *
 *      R.partition(R.includes('s'), { a: 'sss', b: 'ttt', foo: 'bars' });
 *      // => [ { a: 'sss', foo: 'bars' }, { b: 'ttt' }  ]
 */
var partition = /*#__PURE__*/Object(_juxt_js__WEBPACK_IMPORTED_MODULE_1__["default"])([_filter_js__WEBPACK_IMPORTED_MODULE_0__["default"], _reject_js__WEBPACK_IMPORTED_MODULE_2__["default"]]);
/* harmony default export */ __webpack_exports__["default"] = (partition);

/***/ }),

/***/ "./node_modules/ramda/es/path.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/path.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Retrieve the value at a given path.
 *
 * @func
 * @memberOf R
 * @since v0.2.0
 * @category Object
 * @typedefn Idx = String | Int
 * @sig [Idx] -> {a} -> a | Undefined
 * @param {Array} path The path to use.
 * @param {Object} obj The object to retrieve the nested property from.
 * @return {*} The data at `path`.
 * @see R.prop
 * @example
 *
 *      R.path(['a', 'b'], {a: {b: 2}}); //=> 2
 *      R.path(['a', 'b'], {c: {b: 2}}); //=> undefined
 */
var path = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function path(paths, obj) {
  var val = obj;
  var idx = 0;
  while (idx < paths.length) {
    if (val == null) {
      return;
    }
    val = val[paths[idx]];
    idx += 1;
  }
  return val;
});
/* harmony default export */ __webpack_exports__["default"] = (path);

/***/ }),

/***/ "./node_modules/ramda/es/pathEq.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/pathEq.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");
/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ "./node_modules/ramda/es/equals.js");
/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./path.js */ "./node_modules/ramda/es/path.js");




/**
 * Determines whether a nested path on an object has a specific value, in
 * [`R.equals`](#equals) terms. Most likely used to filter a list.
 *
 * @func
 * @memberOf R
 * @since v0.7.0
 * @category Relation
 * @typedefn Idx = String | Int
 * @sig [Idx] -> a -> {a} -> Boolean
 * @param {Array} path The path of the nested property to use
 * @param {*} val The value to compare the nested property with
 * @param {Object} obj The object to check the nested property in
 * @return {Boolean} `true` if the value equals the nested object property,
 *         `false` otherwise.
 * @example
 *
 *      const user1 = { address: { zipCode: 90210 } };
 *      const user2 = { address: { zipCode: 55555 } };
 *      const user3 = { name: 'Bob' };
 *      const users = [ user1, user2, user3 ];
 *      const isFamous = R.pathEq(['address', 'zipCode'], 90210);
 *      R.filter(isFamous, users); //=> [ user1 ]
 */
var pathEq = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function pathEq(_path, val, obj) {
  return Object(_equals_js__WEBPACK_IMPORTED_MODULE_1__["default"])(Object(_path_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_path, obj), val);
});
/* harmony default export */ __webpack_exports__["default"] = (pathEq);

/***/ }),

/***/ "./node_modules/ramda/es/pathOr.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/pathOr.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");
/* harmony import */ var _defaultTo_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultTo.js */ "./node_modules/ramda/es/defaultTo.js");
/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./path.js */ "./node_modules/ramda/es/path.js");




/**
 * If the given, non-null object has a value at the given path, returns the
 * value at that path. Otherwise returns the provided default value.
 *
 * @func
 * @memberOf R
 * @since v0.18.0
 * @category Object
 * @typedefn Idx = String | Int
 * @sig a -> [Idx] -> {a} -> a
 * @param {*} d The default value.
 * @param {Array} p The path to use.
 * @param {Object} obj The object to retrieve the nested property from.
 * @return {*} The data at `path` of the supplied object or the default value.
 * @example
 *
 *      R.pathOr('N/A', ['a', 'b'], {a: {b: 2}}); //=> 2
 *      R.pathOr('N/A', ['a', 'b'], {c: {b: 2}}); //=> "N/A"
 */
var pathOr = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function pathOr(d, p, obj) {
  return Object(_defaultTo_js__WEBPACK_IMPORTED_MODULE_1__["default"])(d, Object(_path_js__WEBPACK_IMPORTED_MODULE_2__["default"])(p, obj));
});
/* harmony default export */ __webpack_exports__["default"] = (pathOr);

/***/ }),

/***/ "./node_modules/ramda/es/pathSatisfies.js":
/*!************************************************!*\
  !*** ./node_modules/ramda/es/pathSatisfies.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");
/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./path.js */ "./node_modules/ramda/es/path.js");



/**
 * Returns `true` if the specified object property at given path satisfies the
 * given predicate; `false` otherwise.
 *
 * @func
 * @memberOf R
 * @since v0.19.0
 * @category Logic
 * @typedefn Idx = String | Int
 * @sig (a -> Boolean) -> [Idx] -> {a} -> Boolean
 * @param {Function} pred
 * @param {Array} propPath
 * @param {*} obj
 * @return {Boolean}
 * @see R.propSatisfies, R.path
 * @example
 *
 *      R.pathSatisfies(y => y > 0, ['x', 'y'], {x: {y: 2}}); //=> true
 */
var pathSatisfies = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function pathSatisfies(pred, propPath, obj) {
  return propPath.length > 0 && pred(Object(_path_js__WEBPACK_IMPORTED_MODULE_1__["default"])(propPath, obj));
});
/* harmony default export */ __webpack_exports__["default"] = (pathSatisfies);

/***/ }),

/***/ "./node_modules/ramda/es/pick.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/pick.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Returns a partial copy of an object containing only the keys specified. If
 * the key does not exist, the property is ignored.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Object
 * @sig [k] -> {k: v} -> {k: v}
 * @param {Array} names an array of String property names to copy onto a new object
 * @param {Object} obj The object to copy from
 * @return {Object} A new object with only properties from `names` on it.
 * @see R.omit, R.props
 * @example
 *
 *      R.pick(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}
 *      R.pick(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1}
 */
var pick = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function pick(names, obj) {
  var result = {};
  var idx = 0;
  while (idx < names.length) {
    if (names[idx] in obj) {
      result[names[idx]] = obj[names[idx]];
    }
    idx += 1;
  }
  return result;
});
/* harmony default export */ __webpack_exports__["default"] = (pick);

/***/ }),

/***/ "./node_modules/ramda/es/pickAll.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/pickAll.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Similar to `pick` except that this one includes a `key: undefined` pair for
 * properties that don't exist.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Object
 * @sig [k] -> {k: v} -> {k: v}
 * @param {Array} names an array of String property names to copy onto a new object
 * @param {Object} obj The object to copy from
 * @return {Object} A new object with only properties from `names` on it.
 * @see R.pick
 * @example
 *
 *      R.pickAll(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}
 *      R.pickAll(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, e: undefined, f: undefined}
 */
var pickAll = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function pickAll(names, obj) {
  var result = {};
  var idx = 0;
  var len = names.length;
  while (idx < len) {
    var name = names[idx];
    result[name] = obj[name];
    idx += 1;
  }
  return result;
});
/* harmony default export */ __webpack_exports__["default"] = (pickAll);

/***/ }),

/***/ "./node_modules/ramda/es/pickBy.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/pickBy.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Returns a partial copy of an object containing only the keys that satisfy
 * the supplied predicate.
 *
 * @func
 * @memberOf R
 * @since v0.8.0
 * @category Object
 * @sig ((v, k) -> Boolean) -> {k: v} -> {k: v}
 * @param {Function} pred A predicate to determine whether or not a key
 *        should be included on the output object.
 * @param {Object} obj The object to copy from
 * @return {Object} A new object with only properties that satisfy `pred`
 *         on it.
 * @see R.pick, R.filter
 * @example
 *
 *      const isUpperCase = (val, key) => key.toUpperCase() === key;
 *      R.pickBy(isUpperCase, {a: 1, b: 2, A: 3, B: 4}); //=> {A: 3, B: 4}
 */
var pickBy = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function pickBy(test, obj) {
  var result = {};
  for (var prop in obj) {
    if (test(obj[prop], prop, obj)) {
      result[prop] = obj[prop];
    }
  }
  return result;
});
/* harmony default export */ __webpack_exports__["default"] = (pickBy);

/***/ }),

/***/ "./node_modules/ramda/es/pipe.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/pipe.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return pipe; });
/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ "./node_modules/ramda/es/internal/_arity.js");
/* harmony import */ var _internal_pipe_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_pipe.js */ "./node_modules/ramda/es/internal/_pipe.js");
/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reduce.js */ "./node_modules/ramda/es/reduce.js");
/* harmony import */ var _tail_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tail.js */ "./node_modules/ramda/es/tail.js");





/**
 * Performs left-to-right function composition. The leftmost function may have
 * any arity; the remaining functions must be unary.
 *
 * In some libraries this function is named `sequence`.
 *
 * **Note:** The result of pipe is not automatically curried.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Function
 * @sig (((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)) -> ((a, b, ..., n) -> z)
 * @param {...Function} functions
 * @return {Function}
 * @see R.compose
 * @example
 *
 *      const f = R.pipe(Math.pow, R.negate, R.inc);
 *
 *      f(3, 4); // -(3^4) + 1
 * @symb R.pipe(f, g, h)(a, b) = h(g(f(a, b)))
 */
function pipe() {
  if (arguments.length === 0) {
    throw new Error('pipe requires at least one argument');
  }
  return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__["default"])(arguments[0].length, Object(_reduce_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_internal_pipe_js__WEBPACK_IMPORTED_MODULE_1__["default"], arguments[0], Object(_tail_js__WEBPACK_IMPORTED_MODULE_3__["default"])(arguments)));
}

/***/ }),

/***/ "./node_modules/ramda/es/pipeK.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/pipeK.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return pipeK; });
/* harmony import */ var _composeK_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./composeK.js */ "./node_modules/ramda/es/composeK.js");
/* harmony import */ var _reverse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reverse.js */ "./node_modules/ramda/es/reverse.js");



/**
 * Returns the left-to-right Kleisli composition of the provided functions,
 * each of which must return a value of a type supported by [`chain`](#chain).
 *
 * `R.pipeK(f, g, h)` is equivalent to `R.pipe(f, R.chain(g), R.chain(h))`.
 *
 * @func
 * @memberOf R
 * @since v0.16.0
 * @category Function
 * @sig Chain m => ((a -> m b), (b -> m c), ..., (y -> m z)) -> (a -> m z)
 * @param {...Function}
 * @return {Function}
 * @see R.composeK
 * @deprecated since v0.26.0
 * @example
 *
 *      //  parseJson :: String -> Maybe *
 *      //  get :: String -> Object -> Maybe *
 *
 *      //  getStateCode :: Maybe String -> Maybe String
 *      const getStateCode = R.pipeK(
 *        parseJson,
 *        get('user'),
 *        get('address'),
 *        get('state'),
 *        R.compose(Maybe.of, R.toUpper)
 *      );
 *
 *      getStateCode('{"user":{"address":{"state":"ny"}}}');
 *      //=> Just('NY')
 *      getStateCode('[Invalid JSON]');
 *      //=> Nothing()
 * @symb R.pipeK(f, g, h)(a) = R.chain(h, R.chain(g, f(a)))
 */
function pipeK() {
  if (arguments.length === 0) {
    throw new Error('pipeK requires at least one argument');
  }
  return _composeK_js__WEBPACK_IMPORTED_MODULE_0__["default"].apply(this, Object(_reverse_js__WEBPACK_IMPORTED_MODULE_1__["default"])(arguments));
}

/***/ }),

/***/ "./node_modules/ramda/es/pipeP.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/pipeP.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return pipeP; });
/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ "./node_modules/ramda/es/internal/_arity.js");
/* harmony import */ var _internal_pipeP_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_pipeP.js */ "./node_modules/ramda/es/internal/_pipeP.js");
/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reduce.js */ "./node_modules/ramda/es/reduce.js");
/* harmony import */ var _tail_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tail.js */ "./node_modules/ramda/es/tail.js");





/**
 * Performs left-to-right composition of one or more Promise-returning
 * functions. The leftmost function may have any arity; the remaining functions
 * must be unary.
 *
 * @func
 * @memberOf R
 * @since v0.10.0
 * @category Function
 * @sig ((a -> Promise b), (b -> Promise c), ..., (y -> Promise z)) -> (a -> Promise z)
 * @param {...Function} functions
 * @return {Function}
 * @see R.composeP
 * @deprecated since v0.26.0
 * @example
 *
 *      //  followersForUser :: String -> Promise [User]
 *      const followersForUser = R.pipeP(db.getUserById, db.getFollowers);
 */
function pipeP() {
  if (arguments.length === 0) {
    throw new Error('pipeP requires at least one argument');
  }
  return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__["default"])(arguments[0].length, Object(_reduce_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_internal_pipeP_js__WEBPACK_IMPORTED_MODULE_1__["default"], arguments[0], Object(_tail_js__WEBPACK_IMPORTED_MODULE_3__["default"])(arguments)));
}

/***/ }),

/***/ "./node_modules/ramda/es/pipeWith.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/pipeWith.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ "./node_modules/ramda/es/internal/_arity.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _head_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./head.js */ "./node_modules/ramda/es/head.js");
/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_reduce.js */ "./node_modules/ramda/es/internal/_reduce.js");
/* harmony import */ var _tail_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./tail.js */ "./node_modules/ramda/es/tail.js");
/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./identity.js */ "./node_modules/ramda/es/identity.js");







/**
 * Performs left-to-right function composition using transforming function. The leftmost function may have
 * any arity; the remaining functions must be unary.
 *
 * **Note:** The result of pipeWith is not automatically curried.
 *
 * @func
 * @memberOf R
 * @category Function
 * @sig ((* -> *), [((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)]) -> ((a, b, ..., n) -> z)
 * @param {...Function} functions
 * @return {Function}
 * @see R.composeWith, R.pipe
 * @example
 *
 *      const pipeWhileNotNil = R.pipeWith((f, res) => R.isNil(res) ? res : f(res));
 *      const f = pipeWhileNotNil([Math.pow, R.negate, R.inc])
 *
 *      f(3, 4); // -(3^4) + 1
 * @symb R.pipeWith(f)([g, h, i])(...args) = f(i, f(h, f(g, ...args)))
 */
var pipeWith = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function pipeWith(xf, list) {
  if (list.length <= 0) {
    return _identity_js__WEBPACK_IMPORTED_MODULE_5__["default"];
  }

  var headList = Object(_head_js__WEBPACK_IMPORTED_MODULE_2__["default"])(list);
  var tailList = Object(_tail_js__WEBPACK_IMPORTED_MODULE_4__["default"])(list);

  return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__["default"])(headList.length, function () {
    return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__["default"])(function (result, f) {
      return xf.call(this, f, result);
    }, headList.apply(this, arguments), tailList);
  });
});
/* harmony default export */ __webpack_exports__["default"] = (pipeWith);

/***/ }),

/***/ "./node_modules/ramda/es/pluck.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/pluck.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./map.js */ "./node_modules/ramda/es/map.js");
/* harmony import */ var _prop_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./prop.js */ "./node_modules/ramda/es/prop.js");




/**
 * Returns a new list by plucking the same named property off all objects in
 * the list supplied.
 *
 * `pluck` will work on
 * any [functor](https://github.com/fantasyland/fantasy-land#functor) in
 * addition to arrays, as it is equivalent to `R.map(R.prop(k), f)`.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig Functor f => k -> f {k: v} -> f v
 * @param {Number|String} key The key name to pluck off of each object.
 * @param {Array} f The array or functor to consider.
 * @return {Array} The list of values for the given key.
 * @see R.props
 * @example
 *
 *      var getAges = R.pluck('age');
 *      getAges([{name: 'fred', age: 29}, {name: 'wilma', age: 27}]); //=> [29, 27]
 *
 *      R.pluck(0, [[1, 2], [3, 4]]);               //=> [1, 3]
 *      R.pluck('val', {a: {val: 3}, b: {val: 5}}); //=> {a: 3, b: 5}
 * @symb R.pluck('x', [{x: 1, y: 2}, {x: 3, y: 4}, {x: 5, y: 6}]) = [1, 3, 5]
 * @symb R.pluck(0, [[1, 2], [3, 4], [5, 6]]) = [1, 3, 5]
 */
var pluck = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function pluck(p, list) {
  return Object(_map_js__WEBPACK_IMPORTED_MODULE_1__["default"])(Object(_prop_js__WEBPACK_IMPORTED_MODULE_2__["default"])(p), list);
});
/* harmony default export */ __webpack_exports__["default"] = (pluck);

/***/ }),

/***/ "./node_modules/ramda/es/prepend.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/prepend.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ "./node_modules/ramda/es/internal/_concat.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");



/**
 * Returns a new list with the given element at the front, followed by the
 * contents of the list.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig a -> [a] -> [a]
 * @param {*} el The item to add to the head of the output list.
 * @param {Array} list The array to add to the tail of the output list.
 * @return {Array} A new array.
 * @see R.append
 * @example
 *
 *      R.prepend('fee', ['fi', 'fo', 'fum']); //=> ['fee', 'fi', 'fo', 'fum']
 */
var prepend = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function prepend(el, list) {
  return Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__["default"])([el], list);
});
/* harmony default export */ __webpack_exports__["default"] = (prepend);

/***/ }),

/***/ "./node_modules/ramda/es/product.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/product.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _multiply_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./multiply.js */ "./node_modules/ramda/es/multiply.js");
/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reduce.js */ "./node_modules/ramda/es/reduce.js");



/**
 * Multiplies together all the elements of a list.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Math
 * @sig [Number] -> Number
 * @param {Array} list An array of numbers
 * @return {Number} The product of all the numbers in the list.
 * @see R.reduce
 * @example
 *
 *      R.product([2,4,6,8,100,1]); //=> 38400
 */
var product = /*#__PURE__*/Object(_reduce_js__WEBPACK_IMPORTED_MODULE_1__["default"])(_multiply_js__WEBPACK_IMPORTED_MODULE_0__["default"], 1);
/* harmony default export */ __webpack_exports__["default"] = (product);

/***/ }),

/***/ "./node_modules/ramda/es/project.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/project.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_map_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_map.js */ "./node_modules/ramda/es/internal/_map.js");
/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./identity.js */ "./node_modules/ramda/es/identity.js");
/* harmony import */ var _pickAll_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pickAll.js */ "./node_modules/ramda/es/pickAll.js");
/* harmony import */ var _useWith_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useWith.js */ "./node_modules/ramda/es/useWith.js");





/**
 * Reasonable analog to SQL `select` statement.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Object
 * @category Relation
 * @sig [k] -> [{k: v}] -> [{k: v}]
 * @param {Array} props The property names to project
 * @param {Array} objs The objects to query
 * @return {Array} An array of objects with just the `props` properties.
 * @example
 *
 *      const abby = {name: 'Abby', age: 7, hair: 'blond', grade: 2};
 *      const fred = {name: 'Fred', age: 12, hair: 'brown', grade: 7};
 *      const kids = [abby, fred];
 *      R.project(['name', 'grade'], kids); //=> [{name: 'Abby', grade: 2}, {name: 'Fred', grade: 7}]
 */
var project = /*#__PURE__*/Object(_useWith_js__WEBPACK_IMPORTED_MODULE_3__["default"])(_internal_map_js__WEBPACK_IMPORTED_MODULE_0__["default"], [_pickAll_js__WEBPACK_IMPORTED_MODULE_2__["default"], _identity_js__WEBPACK_IMPORTED_MODULE_1__["default"]]); // passing `identity` gives correct arity
/* harmony default export */ __webpack_exports__["default"] = (project);

/***/ }),

/***/ "./node_modules/ramda/es/prop.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/prop.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./path.js */ "./node_modules/ramda/es/path.js");



/**
 * Returns a function that when supplied an object returns the indicated
 * property of that object, if it exists.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Object
 * @sig s -> {s: a} -> a | Undefined
 * @param {String} p The property name
 * @param {Object} obj The object to query
 * @return {*} The value at `obj.p`.
 * @see R.path
 * @example
 *
 *      R.prop('x', {x: 100}); //=> 100
 *      R.prop('x', {}); //=> undefined
 *      R.compose(R.inc, R.prop('x'))({ x: 3 }) //=> 4
 */

var prop = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function prop(p, obj) {
  return Object(_path_js__WEBPACK_IMPORTED_MODULE_1__["default"])([p], obj);
});
/* harmony default export */ __webpack_exports__["default"] = (prop);

/***/ }),

/***/ "./node_modules/ramda/es/propEq.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/propEq.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");
/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ "./node_modules/ramda/es/equals.js");



/**
 * Returns `true` if the specified object property is equal, in
 * [`R.equals`](#equals) terms, to the given value; `false` otherwise.
 * You can test multiple properties with [`R.whereEq`](#whereEq).
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Relation
 * @sig String -> a -> Object -> Boolean
 * @param {String} name
 * @param {*} val
 * @param {*} obj
 * @return {Boolean}
 * @see R.whereEq, R.propSatisfies, R.equals
 * @example
 *
 *      const abby = {name: 'Abby', age: 7, hair: 'blond'};
 *      const fred = {name: 'Fred', age: 12, hair: 'brown'};
 *      const rusty = {name: 'Rusty', age: 10, hair: 'brown'};
 *      const alois = {name: 'Alois', age: 15, disposition: 'surly'};
 *      const kids = [abby, fred, rusty, alois];
 *      const hasBrownHair = R.propEq('hair', 'brown');
 *      R.filter(hasBrownHair, kids); //=> [fred, rusty]
 */
var propEq = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function propEq(name, val, obj) {
  return Object(_equals_js__WEBPACK_IMPORTED_MODULE_1__["default"])(val, obj[name]);
});
/* harmony default export */ __webpack_exports__["default"] = (propEq);

/***/ }),

/***/ "./node_modules/ramda/es/propIs.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/propIs.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");
/* harmony import */ var _is_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./is.js */ "./node_modules/ramda/es/is.js");



/**
 * Returns `true` if the specified object property is of the given type;
 * `false` otherwise.
 *
 * @func
 * @memberOf R
 * @since v0.16.0
 * @category Type
 * @sig Type -> String -> Object -> Boolean
 * @param {Function} type
 * @param {String} name
 * @param {*} obj
 * @return {Boolean}
 * @see R.is, R.propSatisfies
 * @example
 *
 *      R.propIs(Number, 'x', {x: 1, y: 2});  //=> true
 *      R.propIs(Number, 'x', {x: 'foo'});    //=> false
 *      R.propIs(Number, 'x', {});            //=> false
 */
var propIs = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function propIs(type, name, obj) {
  return Object(_is_js__WEBPACK_IMPORTED_MODULE_1__["default"])(type, obj[name]);
});
/* harmony default export */ __webpack_exports__["default"] = (propIs);

/***/ }),

/***/ "./node_modules/ramda/es/propOr.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/propOr.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");
/* harmony import */ var _pathOr_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pathOr.js */ "./node_modules/ramda/es/pathOr.js");



/**
 * If the given, non-null object has an own property with the specified name,
 * returns the value of that property. Otherwise returns the provided default
 * value.
 *
 * @func
 * @memberOf R
 * @since v0.6.0
 * @category Object
 * @sig a -> String -> Object -> a
 * @param {*} val The default value.
 * @param {String} p The name of the property to return.
 * @param {Object} obj The object to query.
 * @return {*} The value of given property of the supplied object or the default value.
 * @example
 *
 *      const alice = {
 *        name: 'ALICE',
 *        age: 101
 *      };
 *      const favorite = R.prop('favoriteLibrary');
 *      const favoriteWithDefault = R.propOr('Ramda', 'favoriteLibrary');
 *
 *      favorite(alice);  //=> undefined
 *      favoriteWithDefault(alice);  //=> 'Ramda'
 */
var propOr = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function propOr(val, p, obj) {
  return Object(_pathOr_js__WEBPACK_IMPORTED_MODULE_1__["default"])(val, [p], obj);
});
/* harmony default export */ __webpack_exports__["default"] = (propOr);

/***/ }),

/***/ "./node_modules/ramda/es/propSatisfies.js":
/*!************************************************!*\
  !*** ./node_modules/ramda/es/propSatisfies.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");


/**
 * Returns `true` if the specified object property satisfies the given
 * predicate; `false` otherwise. You can test multiple properties with
 * [`R.where`](#where).
 *
 * @func
 * @memberOf R
 * @since v0.16.0
 * @category Logic
 * @sig (a -> Boolean) -> String -> {String: a} -> Boolean
 * @param {Function} pred
 * @param {String} name
 * @param {*} obj
 * @return {Boolean}
 * @see R.where, R.propEq, R.propIs
 * @example
 *
 *      R.propSatisfies(x => x > 0, 'x', {x: 1, y: 2}); //=> true
 */
var propSatisfies = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function propSatisfies(pred, name, obj) {
  return pred(obj[name]);
});
/* harmony default export */ __webpack_exports__["default"] = (propSatisfies);

/***/ }),

/***/ "./node_modules/ramda/es/props.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/props.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Acts as multiple `prop`: array of keys in, array of values out. Preserves
 * order.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Object
 * @sig [k] -> {k: v} -> [v]
 * @param {Array} ps The property names to fetch
 * @param {Object} obj The object to query
 * @return {Array} The corresponding values or partially applied function.
 * @example
 *
 *      R.props(['x', 'y'], {x: 1, y: 2}); //=> [1, 2]
 *      R.props(['c', 'a', 'b'], {b: 2, a: 1}); //=> [undefined, 1, 2]
 *
 *      const fullName = R.compose(R.join(' '), R.props(['first', 'last']));
 *      fullName({last: 'Bullet-Tooth', age: 33, first: 'Tony'}); //=> 'Tony Bullet-Tooth'
 */
var props = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function props(ps, obj) {
  var len = ps.length;
  var out = [];
  var idx = 0;

  while (idx < len) {
    out[idx] = obj[ps[idx]];
    idx += 1;
  }

  return out;
});
/* harmony default export */ __webpack_exports__["default"] = (props);

/***/ }),

/***/ "./node_modules/ramda/es/range.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/range.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_isNumber_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isNumber.js */ "./node_modules/ramda/es/internal/_isNumber.js");



/**
 * Returns a list of numbers from `from` (inclusive) to `to` (exclusive).
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig Number -> Number -> [Number]
 * @param {Number} from The first number in the list.
 * @param {Number} to One more than the last number in the list.
 * @return {Array} The list of numbers in the set `[a, b)`.
 * @example
 *
 *      R.range(1, 5);    //=> [1, 2, 3, 4]
 *      R.range(50, 53);  //=> [50, 51, 52]
 */
var range = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function range(from, to) {
  if (!(Object(_internal_isNumber_js__WEBPACK_IMPORTED_MODULE_1__["default"])(from) && Object(_internal_isNumber_js__WEBPACK_IMPORTED_MODULE_1__["default"])(to))) {
    throw new TypeError('Both arguments to range must be numbers');
  }
  var result = [];
  var n = from;
  while (n < to) {
    result.push(n);
    n += 1;
  }
  return result;
});
/* harmony default export */ __webpack_exports__["default"] = (range);

/***/ }),

/***/ "./node_modules/ramda/es/reduce.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/reduce.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");
/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_reduce.js */ "./node_modules/ramda/es/internal/_reduce.js");



/**
 * Returns a single item by iterating through the list, successively calling
 * the iterator function and passing it an accumulator value and the current
 * value from the array, and then passing the result to the next call.
 *
 * The iterator function receives two values: *(acc, value)*. It may use
 * [`R.reduced`](#reduced) to shortcut the iteration.
 *
 * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function
 * is *(value, acc)*.
 *
 * Note: `R.reduce` does not skip deleted or unassigned indices (sparse
 * arrays), unlike the native `Array.prototype.reduce` method. For more details
 * on this behavior, see:
 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description
 *
 * Dispatches to the `reduce` method of the third argument, if present. When
 * doing so, it is up to the user to handle the [`R.reduced`](#reduced)
 * shortcuting, as this is not implemented by `reduce`.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig ((a, b) -> a) -> a -> [b] -> a
 * @param {Function} fn The iterator function. Receives two values, the accumulator and the
 *        current element from the array.
 * @param {*} acc The accumulator value.
 * @param {Array} list The list to iterate over.
 * @return {*} The final, accumulated value.
 * @see R.reduced, R.addIndex, R.reduceRight
 * @example
 *
 *      R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10
 *      //          -               -10
 *      //         / \              / \
 *      //        -   4           -6   4
 *      //       / \              / \
 *      //      -   3   ==>     -3   3
 *      //     / \              / \
 *      //    -   2           -1   2
 *      //   / \              / \
 *      //  0   1            0   1
 *
 * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)
 */
var reduce = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__["default"]);
/* harmony default export */ __webpack_exports__["default"] = (reduce);

/***/ }),

/***/ "./node_modules/ramda/es/reduceBy.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/reduceBy.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curryN_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curryN.js */ "./node_modules/ramda/es/internal/_curryN.js");
/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ "./node_modules/ramda/es/internal/_dispatchable.js");
/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_has.js */ "./node_modules/ramda/es/internal/_has.js");
/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/_reduce.js */ "./node_modules/ramda/es/internal/_reduce.js");
/* harmony import */ var _internal_xreduceBy_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internal/_xreduceBy.js */ "./node_modules/ramda/es/internal/_xreduceBy.js");






/**
 * Groups the elements of the list according to the result of calling
 * the String-returning function `keyFn` on each element and reduces the elements
 * of each group to a single value via the reducer function `valueFn`.
 *
 * This function is basically a more general [`groupBy`](#groupBy) function.
 *
 * Acts as a transducer if a transformer is given in list position.
 *
 * @func
 * @memberOf R
 * @since v0.20.0
 * @category List
 * @sig ((a, b) -> a) -> a -> (b -> String) -> [b] -> {String: a}
 * @param {Function} valueFn The function that reduces the elements of each group to a single
 *        value. Receives two values, accumulator for a particular group and the current element.
 * @param {*} acc The (initial) accumulator value for each group.
 * @param {Function} keyFn The function that maps the list's element into a key.
 * @param {Array} list The array to group.
 * @return {Object} An object with the output of `keyFn` for keys, mapped to the output of
 *         `valueFn` for elements which produced that key when passed to `keyFn`.
 * @see R.groupBy, R.reduce
 * @example
 *
 *      const groupNames = (acc, {name}) => acc.concat(name)
 *      const toGrade = ({score}) =>
 *        score < 65 ? 'F' :
 *        score < 70 ? 'D' :
 *        score < 80 ? 'C' :
 *        score < 90 ? 'B' : 'A'
 *
 *      var students = [
 *        {name: 'Abby', score: 83},
 *        {name: 'Bart', score: 62},
 *        {name: 'Curt', score: 88},
 *        {name: 'Dora', score: 92},
 *      ]
 *
 *      reduceBy(groupNames, [], toGrade, students)
 *      //=> {"A": ["Dora"], "B": ["Abby", "Curt"], "F": ["Bart"]}
 */
var reduceBy = /*#__PURE__*/Object(_internal_curryN_js__WEBPACK_IMPORTED_MODULE_0__["default"])(4, [], /*#__PURE__*/Object(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__["default"])([], _internal_xreduceBy_js__WEBPACK_IMPORTED_MODULE_4__["default"], function reduceBy(valueFn, valueAcc, keyFn, list) {
  return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_3__["default"])(function (acc, elt) {
    var key = keyFn(elt);
    acc[key] = valueFn(Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_2__["default"])(key, acc) ? acc[key] : valueAcc, elt);
    return acc;
  }, {}, list);
}));
/* harmony default export */ __webpack_exports__["default"] = (reduceBy);

/***/ }),

/***/ "./node_modules/ramda/es/reduceRight.js":
/*!**********************************************!*\
  !*** ./node_modules/ramda/es/reduceRight.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");


/**
 * Returns a single item by iterating through the list, successively calling
 * the iterator function and passing it an accumulator value and the current
 * value from the array, and then passing the result to the next call.
 *
 * Similar to [`reduce`](#reduce), except moves through the input list from the
 * right to the left.
 *
 * The iterator function receives two values: *(value, acc)*, while the arguments'
 * order of `reduce`'s iterator function is *(acc, value)*.
 *
 * Note: `R.reduceRight` does not skip deleted or unassigned indices (sparse
 * arrays), unlike the native `Array.prototype.reduceRight` method. For more details
 * on this behavior, see:
 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceRight#Description
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig ((a, b) -> b) -> b -> [a] -> b
 * @param {Function} fn The iterator function. Receives two values, the current element from the array
 *        and the accumulator.
 * @param {*} acc The accumulator value.
 * @param {Array} list The list to iterate over.
 * @return {*} The final, accumulated value.
 * @see R.reduce, R.addIndex
 * @example
 *
 *      R.reduceRight(R.subtract, 0, [1, 2, 3, 4]) // => (1 - (2 - (3 - (4 - 0)))) = -2
 *      //    -               -2
 *      //   / \              / \
 *      //  1   -            1   3
 *      //     / \              / \
 *      //    2   -     ==>    2  -1
 *      //       / \              / \
 *      //      3   -            3   4
 *      //         / \              / \
 *      //        4   0            4   0
 *
 * @symb R.reduceRight(f, a, [b, c, d]) = f(b, f(c, f(d, a)))
 */
var reduceRight = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function reduceRight(fn, acc, list) {
  var idx = list.length - 1;
  while (idx >= 0) {
    acc = fn(list[idx], acc);
    idx -= 1;
  }
  return acc;
});
/* harmony default export */ __webpack_exports__["default"] = (reduceRight);

/***/ }),

/***/ "./node_modules/ramda/es/reduceWhile.js":
/*!**********************************************!*\
  !*** ./node_modules/ramda/es/reduceWhile.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curryN_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curryN.js */ "./node_modules/ramda/es/internal/_curryN.js");
/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_reduce.js */ "./node_modules/ramda/es/internal/_reduce.js");
/* harmony import */ var _internal_reduced_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_reduced.js */ "./node_modules/ramda/es/internal/_reduced.js");




/**
 * Like [`reduce`](#reduce), `reduceWhile` returns a single item by iterating
 * through the list, successively calling the iterator function. `reduceWhile`
 * also takes a predicate that is evaluated before each step. If the predicate
 * returns `false`, it "short-circuits" the iteration and returns the current
 * value of the accumulator.
 *
 * @func
 * @memberOf R
 * @since v0.22.0
 * @category List
 * @sig ((a, b) -> Boolean) -> ((a, b) -> a) -> a -> [b] -> a
 * @param {Function} pred The predicate. It is passed the accumulator and the
 *        current element.
 * @param {Function} fn The iterator function. Receives two values, the
 *        accumulator and the current element.
 * @param {*} a The accumulator value.
 * @param {Array} list The list to iterate over.
 * @return {*} The final, accumulated value.
 * @see R.reduce, R.reduced
 * @example
 *
 *      const isOdd = (acc, x) => x % 2 === 1;
 *      const xs = [1, 3, 5, 60, 777, 800];
 *      R.reduceWhile(isOdd, R.add, 0, xs); //=> 9
 *
 *      const ys = [2, 4, 6]
 *      R.reduceWhile(isOdd, R.add, 111, ys); //=> 111
 */
var reduceWhile = /*#__PURE__*/Object(_internal_curryN_js__WEBPACK_IMPORTED_MODULE_0__["default"])(4, [], function _reduceWhile(pred, fn, a, list) {
  return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function (acc, x) {
    return pred(acc, x) ? fn(acc, x) : Object(_internal_reduced_js__WEBPACK_IMPORTED_MODULE_2__["default"])(acc);
  }, a, list);
});
/* harmony default export */ __webpack_exports__["default"] = (reduceWhile);

/***/ }),

/***/ "./node_modules/ramda/es/reduced.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/reduced.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _internal_reduced_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_reduced.js */ "./node_modules/ramda/es/internal/_reduced.js");



/**
 * Returns a value wrapped to indicate that it is the final value of the reduce
 * and transduce functions. The returned value should be considered a black
 * box: the internal structure is not guaranteed to be stable.
 *
 * Note: this optimization is only available to the below functions:
 * - [`reduce`](#reduce)
 * - [`reduceWhile`](#reduceWhile)
 * - [`transduce`](#transduce)
 *
 * @func
 * @memberOf R
 * @since v0.15.0
 * @category List
 * @sig a -> *
 * @param {*} x The final value of the reduce.
 * @return {*} The wrapped value.
 * @see R.reduce, R.reduceWhile, R.transduce
 * @example
 *
 *     R.reduce(
 *       (acc, item) => item > 3 ? R.reduced(acc) : acc.concat(item),
 *       [],
 *       [1, 2, 3, 4, 5]) // [1, 2, 3]
 */
var reduced = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(_internal_reduced_js__WEBPACK_IMPORTED_MODULE_1__["default"]);
/* harmony default export */ __webpack_exports__["default"] = (reduced);

/***/ }),

/***/ "./node_modules/ramda/es/reject.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/reject.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_complement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_complement.js */ "./node_modules/ramda/es/internal/_complement.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./filter.js */ "./node_modules/ramda/es/filter.js");




/**
 * The complement of [`filter`](#filter).
 *
 * Acts as a transducer if a transformer is given in list position. Filterable
 * objects include plain objects or any object that has a filter method such
 * as `Array`.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig Filterable f => (a -> Boolean) -> f a -> f a
 * @param {Function} pred
 * @param {Array} filterable
 * @return {Array}
 * @see R.filter, R.transduce, R.addIndex
 * @example
 *
 *      const isOdd = (n) => n % 2 === 1;
 *
 *      R.reject(isOdd, [1, 2, 3, 4]); //=> [2, 4]
 *
 *      R.reject(isOdd, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}
 */
var reject = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function reject(pred, filterable) {
  return Object(_filter_js__WEBPACK_IMPORTED_MODULE_2__["default"])(Object(_internal_complement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(pred), filterable);
});
/* harmony default export */ __webpack_exports__["default"] = (reject);

/***/ }),

/***/ "./node_modules/ramda/es/remove.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/remove.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");


/**
 * Removes the sub-list of `list` starting at index `start` and containing
 * `count` elements. _Note that this is not destructive_: it returns a copy of
 * the list with the changes.
 * <small>No lists have been harmed in the application of this function.</small>
 *
 * @func
 * @memberOf R
 * @since v0.2.2
 * @category List
 * @sig Number -> Number -> [a] -> [a]
 * @param {Number} start The position to start removing elements
 * @param {Number} count The number of elements to remove
 * @param {Array} list The list to remove from
 * @return {Array} A new Array with `count` elements from `start` removed.
 * @see R.without
 * @example
 *
 *      R.remove(2, 3, [1,2,3,4,5,6,7,8]); //=> [1,2,6,7,8]
 */
var remove = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function remove(start, count, list) {
  var result = Array.prototype.slice.call(list, 0);
  result.splice(start, count);
  return result;
});
/* harmony default export */ __webpack_exports__["default"] = (remove);

/***/ }),

/***/ "./node_modules/ramda/es/repeat.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/repeat.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _always_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./always.js */ "./node_modules/ramda/es/always.js");
/* harmony import */ var _times_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./times.js */ "./node_modules/ramda/es/times.js");




/**
 * Returns a fixed list of size `n` containing a specified identical value.
 *
 * @func
 * @memberOf R
 * @since v0.1.1
 * @category List
 * @sig a -> n -> [a]
 * @param {*} value The value to repeat.
 * @param {Number} n The desired size of the output list.
 * @return {Array} A new array containing `n` `value`s.
 * @see R.times
 * @example
 *
 *      R.repeat('hi', 5); //=> ['hi', 'hi', 'hi', 'hi', 'hi']
 *
 *      const obj = {};
 *      const repeatedObjs = R.repeat(obj, 5); //=> [{}, {}, {}, {}, {}]
 *      repeatedObjs[0] === repeatedObjs[1]; //=> true
 * @symb R.repeat(a, 0) = []
 * @symb R.repeat(a, 1) = [a]
 * @symb R.repeat(a, 2) = [a, a]
 */
var repeat = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function repeat(value, n) {
  return Object(_times_js__WEBPACK_IMPORTED_MODULE_2__["default"])(Object(_always_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value), n);
});
/* harmony default export */ __webpack_exports__["default"] = (repeat);

/***/ }),

/***/ "./node_modules/ramda/es/replace.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/replace.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");


/**
 * Replace a substring or regex match in a string with a replacement.
 *
 * The first two parameters correspond to the parameters of the
 * `String.prototype.replace()` function, so the second parameter can also be a
 * function.
 *
 * @func
 * @memberOf R
 * @since v0.7.0
 * @category String
 * @sig RegExp|String -> String -> String -> String
 * @param {RegExp|String} pattern A regular expression or a substring to match.
 * @param {String} replacement The string to replace the matches with.
 * @param {String} str The String to do the search and replacement in.
 * @return {String} The result.
 * @example
 *
 *      R.replace('foo', 'bar', 'foo foo foo'); //=> 'bar foo foo'
 *      R.replace(/foo/, 'bar', 'foo foo foo'); //=> 'bar foo foo'
 *
 *      // Use the "g" (global) flag to replace all occurrences:
 *      R.replace(/foo/g, 'bar', 'foo foo foo'); //=> 'bar bar bar'
 */
var replace = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function replace(regex, replacement, str) {
  return str.replace(regex, replacement);
});
/* harmony default export */ __webpack_exports__["default"] = (replace);

/***/ }),

/***/ "./node_modules/ramda/es/reverse.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/reverse.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _internal_isString_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_isString.js */ "./node_modules/ramda/es/internal/_isString.js");



/**
 * Returns a new list or string with the elements or characters in reverse
 * order.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig [a] -> [a]
 * @sig String -> String
 * @param {Array|String} list
 * @return {Array|String}
 * @example
 *
 *      R.reverse([1, 2, 3]);  //=> [3, 2, 1]
 *      R.reverse([1, 2]);     //=> [2, 1]
 *      R.reverse([1]);        //=> [1]
 *      R.reverse([]);         //=> []
 *
 *      R.reverse('abc');      //=> 'cba'
 *      R.reverse('ab');       //=> 'ba'
 *      R.reverse('a');        //=> 'a'
 *      R.reverse('');         //=> ''
 */
var reverse = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function reverse(list) {
  return Object(_internal_isString_js__WEBPACK_IMPORTED_MODULE_1__["default"])(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();
});
/* harmony default export */ __webpack_exports__["default"] = (reverse);

/***/ }),

/***/ "./node_modules/ramda/es/scan.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/scan.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");


/**
 * Scan is similar to [`reduce`](#reduce), but returns a list of successively
 * reduced values from the left
 *
 * @func
 * @memberOf R
 * @since v0.10.0
 * @category List
 * @sig ((a, b) -> a) -> a -> [b] -> [a]
 * @param {Function} fn The iterator function. Receives two values, the accumulator and the
 *        current element from the array
 * @param {*} acc The accumulator value.
 * @param {Array} list The list to iterate over.
 * @return {Array} A list of all intermediately reduced values.
 * @see R.reduce, R.mapAccum
 * @example
 *
 *      const numbers = [1, 2, 3, 4];
 *      const factorials = R.scan(R.multiply, 1, numbers); //=> [1, 1, 2, 6, 24]
 * @symb R.scan(f, a, [b, c]) = [a, f(a, b), f(f(a, b), c)]
 */
var scan = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function scan(fn, acc, list) {
  var idx = 0;
  var len = list.length;
  var result = [acc];
  while (idx < len) {
    acc = fn(acc, list[idx]);
    result[idx + 1] = acc;
    idx += 1;
  }
  return result;
});
/* harmony default export */ __webpack_exports__["default"] = (scan);

/***/ }),

/***/ "./node_modules/ramda/es/sequence.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/sequence.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _ap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ap.js */ "./node_modules/ramda/es/ap.js");
/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./map.js */ "./node_modules/ramda/es/map.js");
/* harmony import */ var _prepend_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./prepend.js */ "./node_modules/ramda/es/prepend.js");
/* harmony import */ var _reduceRight_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reduceRight.js */ "./node_modules/ramda/es/reduceRight.js");






/**
 * Transforms a [Traversable](https://github.com/fantasyland/fantasy-land#traversable)
 * of [Applicative](https://github.com/fantasyland/fantasy-land#applicative) into an
 * Applicative of Traversable.
 *
 * Dispatches to the `sequence` method of the second argument, if present.
 *
 * @func
 * @memberOf R
 * @since v0.19.0
 * @category List
 * @sig (Applicative f, Traversable t) => (a -> f a) -> t (f a) -> f (t a)
 * @param {Function} of
 * @param {*} traversable
 * @return {*}
 * @see R.traverse
 * @example
 *
 *      R.sequence(Maybe.of, [Just(1), Just(2), Just(3)]);   //=> Just([1, 2, 3])
 *      R.sequence(Maybe.of, [Just(1), Just(2), Nothing()]); //=> Nothing()
 *
 *      R.sequence(R.of, Just([1, 2, 3])); //=> [Just(1), Just(2), Just(3)]
 *      R.sequence(R.of, Nothing());       //=> [Nothing()]
 */
var sequence = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function sequence(of, traversable) {
  return typeof traversable.sequence === 'function' ? traversable.sequence(of) : Object(_reduceRight_js__WEBPACK_IMPORTED_MODULE_4__["default"])(function (x, acc) {
    return Object(_ap_js__WEBPACK_IMPORTED_MODULE_1__["default"])(Object(_map_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_prepend_js__WEBPACK_IMPORTED_MODULE_3__["default"], x), acc);
  }, of([]), traversable);
});
/* harmony default export */ __webpack_exports__["default"] = (sequence);

/***/ }),

/***/ "./node_modules/ramda/es/set.js":
/*!**************************************!*\
  !*** ./node_modules/ramda/es/set.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");
/* harmony import */ var _always_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./always.js */ "./node_modules/ramda/es/always.js");
/* harmony import */ var _over_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./over.js */ "./node_modules/ramda/es/over.js");




/**
 * Returns the result of "setting" the portion of the given data structure
 * focused by the given lens to the given value.
 *
 * @func
 * @memberOf R
 * @since v0.16.0
 * @category Object
 * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s
 * @sig Lens s a -> a -> s -> s
 * @param {Lens} lens
 * @param {*} v
 * @param {*} x
 * @return {*}
 * @see R.prop, R.lensIndex, R.lensProp
 * @example
 *
 *      const xLens = R.lensProp('x');
 *
 *      R.set(xLens, 4, {x: 1, y: 2});  //=> {x: 4, y: 2}
 *      R.set(xLens, 8, {x: 1, y: 2});  //=> {x: 8, y: 2}
 */
var set = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function set(lens, v, x) {
  return Object(_over_js__WEBPACK_IMPORTED_MODULE_2__["default"])(lens, Object(_always_js__WEBPACK_IMPORTED_MODULE_1__["default"])(v), x);
});
/* harmony default export */ __webpack_exports__["default"] = (set);

/***/ }),

/***/ "./node_modules/ramda/es/slice.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/slice.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_checkForMethod.js */ "./node_modules/ramda/es/internal/_checkForMethod.js");
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");



/**
 * Returns the elements of the given list or string (or object with a `slice`
 * method) from `fromIndex` (inclusive) to `toIndex` (exclusive).
 *
 * Dispatches to the `slice` method of the third argument, if present.
 *
 * @func
 * @memberOf R
 * @since v0.1.4
 * @category List
 * @sig Number -> Number -> [a] -> [a]
 * @sig Number -> Number -> String -> String
 * @param {Number} fromIndex The start index (inclusive).
 * @param {Number} toIndex The end index (exclusive).
 * @param {*} list
 * @return {*}
 * @example
 *
 *      R.slice(1, 3, ['a', 'b', 'c', 'd']);        //=> ['b', 'c']
 *      R.slice(1, Infinity, ['a', 'b', 'c', 'd']); //=> ['b', 'c', 'd']
 *      R.slice(0, -1, ['a', 'b', 'c', 'd']);       //=> ['a', 'b', 'c']
 *      R.slice(-3, -1, ['a', 'b', 'c', 'd']);      //=> ['b', 'c']
 *      R.slice(0, 3, 'ramda');                     //=> 'ram'
 */
var slice = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__["default"])( /*#__PURE__*/Object(_internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__["default"])('slice', function slice(fromIndex, toIndex, list) {
  return Array.prototype.slice.call(list, fromIndex, toIndex);
}));
/* harmony default export */ __webpack_exports__["default"] = (slice);

/***/ }),

/***/ "./node_modules/ramda/es/sort.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/sort.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Returns a copy of the list, sorted according to the comparator function,
 * which should accept two values at a time and return a negative number if the
 * first value is smaller, a positive number if it's larger, and zero if they
 * are equal. Please note that this is a **copy** of the list. It does not
 * modify the original.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig ((a, a) -> Number) -> [a] -> [a]
 * @param {Function} comparator A sorting function :: a -> b -> Int
 * @param {Array} list The list to sort
 * @return {Array} a new array with its elements sorted by the comparator function.
 * @example
 *
 *      const diff = function(a, b) { return a - b; };
 *      R.sort(diff, [4,2,7,5]); //=> [2, 4, 5, 7]
 */
var sort = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function sort(comparator, list) {
  return Array.prototype.slice.call(list, 0).sort(comparator);
});
/* harmony default export */ __webpack_exports__["default"] = (sort);

/***/ }),

/***/ "./node_modules/ramda/es/sortBy.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/sortBy.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Sorts the list according to the supplied function.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Relation
 * @sig Ord b => (a -> b) -> [a] -> [a]
 * @param {Function} fn
 * @param {Array} list The list to sort.
 * @return {Array} A new list sorted by the keys generated by `fn`.
 * @example
 *
 *      const sortByFirstItem = R.sortBy(R.prop(0));
 *      const pairs = [[-1, 1], [-2, 2], [-3, 3]];
 *      sortByFirstItem(pairs); //=> [[-3, 3], [-2, 2], [-1, 1]]
 *
 *      const sortByNameCaseInsensitive = R.sortBy(R.compose(R.toLower, R.prop('name')));
 *      const alice = {
 *        name: 'ALICE',
 *        age: 101
 *      };
 *      const bob = {
 *        name: 'Bob',
 *        age: -10
 *      };
 *      const clara = {
 *        name: 'clara',
 *        age: 314.159
 *      };
 *      const people = [clara, bob, alice];
 *      sortByNameCaseInsensitive(people); //=> [alice, bob, clara]
 */
var sortBy = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function sortBy(fn, list) {
  return Array.prototype.slice.call(list, 0).sort(function (a, b) {
    var aa = fn(a);
    var bb = fn(b);
    return aa < bb ? -1 : aa > bb ? 1 : 0;
  });
});
/* harmony default export */ __webpack_exports__["default"] = (sortBy);

/***/ }),

/***/ "./node_modules/ramda/es/sortWith.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/sortWith.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Sorts a list according to a list of comparators.
 *
 * @func
 * @memberOf R
 * @since v0.23.0
 * @category Relation
 * @sig [(a, a) -> Number] -> [a] -> [a]
 * @param {Array} functions A list of comparator functions.
 * @param {Array} list The list to sort.
 * @return {Array} A new list sorted according to the comarator functions.
 * @example
 *
 *      const alice = {
 *        name: 'alice',
 *        age: 40
 *      };
 *      const bob = {
 *        name: 'bob',
 *        age: 30
 *      };
 *      const clara = {
 *        name: 'clara',
 *        age: 40
 *      };
 *      const people = [clara, bob, alice];
 *      const ageNameSort = R.sortWith([
 *        R.descend(R.prop('age')),
 *        R.ascend(R.prop('name'))
 *      ]);
 *      ageNameSort(people); //=> [alice, clara, bob]
 */
var sortWith = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function sortWith(fns, list) {
  return Array.prototype.slice.call(list, 0).sort(function (a, b) {
    var result = 0;
    var i = 0;
    while (result === 0 && i < fns.length) {
      result = fns[i](a, b);
      i += 1;
    }
    return result;
  });
});
/* harmony default export */ __webpack_exports__["default"] = (sortWith);

/***/ }),

/***/ "./node_modules/ramda/es/split.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/split.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _invoker_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./invoker.js */ "./node_modules/ramda/es/invoker.js");


/**
 * Splits a string into an array of strings based on the given
 * separator.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category String
 * @sig (String | RegExp) -> String -> [String]
 * @param {String|RegExp} sep The pattern.
 * @param {String} str The string to separate into an array.
 * @return {Array} The array of strings from `str` separated by `str`.
 * @see R.join
 * @example
 *
 *      const pathComponents = R.split('/');
 *      R.tail(pathComponents('/usr/local/bin/node')); //=> ['usr', 'local', 'bin', 'node']
 *
 *      R.split('.', 'a.b.c.xyz.d'); //=> ['a', 'b', 'c', 'xyz', 'd']
 */
var split = /*#__PURE__*/Object(_invoker_js__WEBPACK_IMPORTED_MODULE_0__["default"])(1, 'split');
/* harmony default export */ __webpack_exports__["default"] = (split);

/***/ }),

/***/ "./node_modules/ramda/es/splitAt.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/splitAt.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _length_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./length.js */ "./node_modules/ramda/es/length.js");
/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./slice.js */ "./node_modules/ramda/es/slice.js");




/**
 * Splits a given list or string at a given index.
 *
 * @func
 * @memberOf R
 * @since v0.19.0
 * @category List
 * @sig Number -> [a] -> [[a], [a]]
 * @sig Number -> String -> [String, String]
 * @param {Number} index The index where the array/string is split.
 * @param {Array|String} array The array/string to be split.
 * @return {Array}
 * @example
 *
 *      R.splitAt(1, [1, 2, 3]);          //=> [[1], [2, 3]]
 *      R.splitAt(5, 'hello world');      //=> ['hello', ' world']
 *      R.splitAt(-1, 'foobar');          //=> ['fooba', 'r']
 */
var splitAt = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function splitAt(index, array) {
  return [Object(_slice_js__WEBPACK_IMPORTED_MODULE_2__["default"])(0, index, array), Object(_slice_js__WEBPACK_IMPORTED_MODULE_2__["default"])(index, Object(_length_js__WEBPACK_IMPORTED_MODULE_1__["default"])(array), array)];
});
/* harmony default export */ __webpack_exports__["default"] = (splitAt);

/***/ }),

/***/ "./node_modules/ramda/es/splitEvery.js":
/*!*********************************************!*\
  !*** ./node_modules/ramda/es/splitEvery.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slice.js */ "./node_modules/ramda/es/slice.js");



/**
 * Splits a collection into slices of the specified length.
 *
 * @func
 * @memberOf R
 * @since v0.16.0
 * @category List
 * @sig Number -> [a] -> [[a]]
 * @sig Number -> String -> [String]
 * @param {Number} n
 * @param {Array} list
 * @return {Array}
 * @example
 *
 *      R.splitEvery(3, [1, 2, 3, 4, 5, 6, 7]); //=> [[1, 2, 3], [4, 5, 6], [7]]
 *      R.splitEvery(3, 'foobarbaz'); //=> ['foo', 'bar', 'baz']
 */
var splitEvery = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function splitEvery(n, list) {
  if (n <= 0) {
    throw new Error('First argument to splitEvery must be a positive integer');
  }
  var result = [];
  var idx = 0;
  while (idx < list.length) {
    result.push(Object(_slice_js__WEBPACK_IMPORTED_MODULE_1__["default"])(idx, idx += n, list));
  }
  return result;
});
/* harmony default export */ __webpack_exports__["default"] = (splitEvery);

/***/ }),

/***/ "./node_modules/ramda/es/splitWhen.js":
/*!********************************************!*\
  !*** ./node_modules/ramda/es/splitWhen.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Takes a list and a predicate and returns a pair of lists with the following properties:
 *
 *  - the result of concatenating the two output lists is equivalent to the input list;
 *  - none of the elements of the first output list satisfies the predicate; and
 *  - if the second output list is non-empty, its first element satisfies the predicate.
 *
 * @func
 * @memberOf R
 * @since v0.19.0
 * @category List
 * @sig (a -> Boolean) -> [a] -> [[a], [a]]
 * @param {Function} pred The predicate that determines where the array is split.
 * @param {Array} list The array to be split.
 * @return {Array}
 * @example
 *
 *      R.splitWhen(R.equals(2), [1, 2, 3, 1, 2, 3]);   //=> [[1], [2, 3, 1, 2, 3]]
 */
var splitWhen = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function splitWhen(pred, list) {
  var idx = 0;
  var len = list.length;
  var prefix = [];

  while (idx < len && !pred(list[idx])) {
    prefix.push(list[idx]);
    idx += 1;
  }

  return [prefix, Array.prototype.slice.call(list, idx)];
});
/* harmony default export */ __webpack_exports__["default"] = (splitWhen);

/***/ }),

/***/ "./node_modules/ramda/es/startsWith.js":
/*!*********************************************!*\
  !*** ./node_modules/ramda/es/startsWith.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ "./node_modules/ramda/es/equals.js");
/* harmony import */ var _take_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./take.js */ "./node_modules/ramda/es/take.js");




/**
 * Checks if a list starts with the provided sublist.
 *
 * Similarly, checks if a string starts with the provided substring.
 *
 * @func
 * @memberOf R
 * @since v0.24.0
 * @category List
 * @sig [a] -> [a] -> Boolean
 * @sig String -> String -> Boolean
 * @param {*} prefix
 * @param {*} list
 * @return {Boolean}
 * @see R.endsWith
 * @example
 *
 *      R.startsWith('a', 'abc')                //=> true
 *      R.startsWith('b', 'abc')                //=> false
 *      R.startsWith(['a'], ['a', 'b', 'c'])    //=> true
 *      R.startsWith(['b'], ['a', 'b', 'c'])    //=> false
 */
var startsWith = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function (prefix, list) {
  return Object(_equals_js__WEBPACK_IMPORTED_MODULE_1__["default"])(Object(_take_js__WEBPACK_IMPORTED_MODULE_2__["default"])(prefix.length, list), prefix);
});
/* harmony default export */ __webpack_exports__["default"] = (startsWith);

/***/ }),

/***/ "./node_modules/ramda/es/subtract.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/subtract.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Subtracts its second argument from its first argument.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Math
 * @sig Number -> Number -> Number
 * @param {Number} a The first value.
 * @param {Number} b The second value.
 * @return {Number} The result of `a - b`.
 * @see R.add
 * @example
 *
 *      R.subtract(10, 8); //=> 2
 *
 *      const minus5 = R.subtract(R.__, 5);
 *      minus5(17); //=> 12
 *
 *      const complementaryAngle = R.subtract(90);
 *      complementaryAngle(30); //=> 60
 *      complementaryAngle(72); //=> 18
 */
var subtract = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function subtract(a, b) {
  return Number(a) - Number(b);
});
/* harmony default export */ __webpack_exports__["default"] = (subtract);

/***/ }),

/***/ "./node_modules/ramda/es/sum.js":
/*!**************************************!*\
  !*** ./node_modules/ramda/es/sum.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _add_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add.js */ "./node_modules/ramda/es/add.js");
/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reduce.js */ "./node_modules/ramda/es/reduce.js");



/**
 * Adds together all the elements of a list.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Math
 * @sig [Number] -> Number
 * @param {Array} list An array of numbers
 * @return {Number} The sum of all the numbers in the list.
 * @see R.reduce
 * @example
 *
 *      R.sum([2,4,6,8,100,1]); //=> 121
 */
var sum = /*#__PURE__*/Object(_reduce_js__WEBPACK_IMPORTED_MODULE_1__["default"])(_add_js__WEBPACK_IMPORTED_MODULE_0__["default"], 0);
/* harmony default export */ __webpack_exports__["default"] = (sum);

/***/ }),

/***/ "./node_modules/ramda/es/symmetricDifference.js":
/*!******************************************************!*\
  !*** ./node_modules/ramda/es/symmetricDifference.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _concat_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./concat.js */ "./node_modules/ramda/es/concat.js");
/* harmony import */ var _difference_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./difference.js */ "./node_modules/ramda/es/difference.js");




/**
 * Finds the set (i.e. no duplicates) of all elements contained in the first or
 * second list, but not both.
 *
 * @func
 * @memberOf R
 * @since v0.19.0
 * @category Relation
 * @sig [*] -> [*] -> [*]
 * @param {Array} list1 The first list.
 * @param {Array} list2 The second list.
 * @return {Array} The elements in `list1` or `list2`, but not both.
 * @see R.symmetricDifferenceWith, R.difference, R.differenceWith
 * @example
 *
 *      R.symmetricDifference([1,2,3,4], [7,6,5,4,3]); //=> [1,2,7,6,5]
 *      R.symmetricDifference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5,1,2]
 */
var symmetricDifference = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function symmetricDifference(list1, list2) {
  return Object(_concat_js__WEBPACK_IMPORTED_MODULE_1__["default"])(Object(_difference_js__WEBPACK_IMPORTED_MODULE_2__["default"])(list1, list2), Object(_difference_js__WEBPACK_IMPORTED_MODULE_2__["default"])(list2, list1));
});
/* harmony default export */ __webpack_exports__["default"] = (symmetricDifference);

/***/ }),

/***/ "./node_modules/ramda/es/symmetricDifferenceWith.js":
/*!**********************************************************!*\
  !*** ./node_modules/ramda/es/symmetricDifferenceWith.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");
/* harmony import */ var _concat_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./concat.js */ "./node_modules/ramda/es/concat.js");
/* harmony import */ var _differenceWith_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./differenceWith.js */ "./node_modules/ramda/es/differenceWith.js");




/**
 * Finds the set (i.e. no duplicates) of all elements contained in the first or
 * second list, but not both. Duplication is determined according to the value
 * returned by applying the supplied predicate to two list elements.
 *
 * @func
 * @memberOf R
 * @since v0.19.0
 * @category Relation
 * @sig ((a, a) -> Boolean) -> [a] -> [a] -> [a]
 * @param {Function} pred A predicate used to test whether two items are equal.
 * @param {Array} list1 The first list.
 * @param {Array} list2 The second list.
 * @return {Array} The elements in `list1` or `list2`, but not both.
 * @see R.symmetricDifference, R.difference, R.differenceWith
 * @example
 *
 *      const eqA = R.eqBy(R.prop('a'));
 *      const l1 = [{a: 1}, {a: 2}, {a: 3}, {a: 4}];
 *      const l2 = [{a: 3}, {a: 4}, {a: 5}, {a: 6}];
 *      R.symmetricDifferenceWith(eqA, l1, l2); //=> [{a: 1}, {a: 2}, {a: 5}, {a: 6}]
 */
var symmetricDifferenceWith = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function symmetricDifferenceWith(pred, list1, list2) {
  return Object(_concat_js__WEBPACK_IMPORTED_MODULE_1__["default"])(Object(_differenceWith_js__WEBPACK_IMPORTED_MODULE_2__["default"])(pred, list1, list2), Object(_differenceWith_js__WEBPACK_IMPORTED_MODULE_2__["default"])(pred, list2, list1));
});
/* harmony default export */ __webpack_exports__["default"] = (symmetricDifferenceWith);

/***/ }),

/***/ "./node_modules/ramda/es/tail.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/tail.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_checkForMethod.js */ "./node_modules/ramda/es/internal/_checkForMethod.js");
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./slice.js */ "./node_modules/ramda/es/slice.js");




/**
 * Returns all but the first element of the given list or string (or object
 * with a `tail` method).
 *
 * Dispatches to the `slice` method of the first argument, if present.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig [a] -> [a]
 * @sig String -> String
 * @param {*} list
 * @return {*}
 * @see R.head, R.init, R.last
 * @example
 *
 *      R.tail([1, 2, 3]);  //=> [2, 3]
 *      R.tail([1, 2]);     //=> [2]
 *      R.tail([1]);        //=> []
 *      R.tail([]);         //=> []
 *
 *      R.tail('abc');  //=> 'bc'
 *      R.tail('ab');   //=> 'b'
 *      R.tail('a');    //=> ''
 *      R.tail('');     //=> ''
 */
var tail = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__["default"])( /*#__PURE__*/Object(_internal_checkForMethod_js__WEBPACK_IMPORTED_MODULE_0__["default"])('tail', /*#__PURE__*/Object(_slice_js__WEBPACK_IMPORTED_MODULE_2__["default"])(1, Infinity)));
/* harmony default export */ __webpack_exports__["default"] = (tail);

/***/ }),

/***/ "./node_modules/ramda/es/take.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/take.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ "./node_modules/ramda/es/internal/_dispatchable.js");
/* harmony import */ var _internal_xtake_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xtake.js */ "./node_modules/ramda/es/internal/_xtake.js");
/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./slice.js */ "./node_modules/ramda/es/slice.js");





/**
 * Returns the first `n` elements of the given list, string, or
 * transducer/transformer (or object with a `take` method).
 *
 * Dispatches to the `take` method of the second argument, if present.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig Number -> [a] -> [a]
 * @sig Number -> String -> String
 * @param {Number} n
 * @param {*} list
 * @return {*}
 * @see R.drop
 * @example
 *
 *      R.take(1, ['foo', 'bar', 'baz']); //=> ['foo']
 *      R.take(2, ['foo', 'bar', 'baz']); //=> ['foo', 'bar']
 *      R.take(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']
 *      R.take(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']
 *      R.take(3, 'ramda');               //=> 'ram'
 *
 *      const personnel = [
 *        'Dave Brubeck',
 *        'Paul Desmond',
 *        'Eugene Wright',
 *        'Joe Morello',
 *        'Gerry Mulligan',
 *        'Bob Bates',
 *        'Joe Dodge',
 *        'Ron Crotty'
 *      ];
 *
 *      const takeFive = R.take(5);
 *      takeFive(personnel);
 *      //=> ['Dave Brubeck', 'Paul Desmond', 'Eugene Wright', 'Joe Morello', 'Gerry Mulligan']
 * @symb R.take(-1, [a, b]) = [a, b]
 * @symb R.take(0, [a, b]) = []
 * @symb R.take(1, [a, b]) = [a]
 * @symb R.take(2, [a, b]) = [a, b]
 */
var take = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/Object(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__["default"])(['take'], _internal_xtake_js__WEBPACK_IMPORTED_MODULE_2__["default"], function take(n, xs) {
  return Object(_slice_js__WEBPACK_IMPORTED_MODULE_3__["default"])(0, n < 0 ? Infinity : n, xs);
}));
/* harmony default export */ __webpack_exports__["default"] = (take);

/***/ }),

/***/ "./node_modules/ramda/es/takeLast.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/takeLast.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _drop_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./drop.js */ "./node_modules/ramda/es/drop.js");



/**
 * Returns a new list containing the last `n` elements of the given list.
 * If `n > list.length`, returns a list of `list.length` elements.
 *
 * @func
 * @memberOf R
 * @since v0.16.0
 * @category List
 * @sig Number -> [a] -> [a]
 * @sig Number -> String -> String
 * @param {Number} n The number of elements to return.
 * @param {Array} xs The collection to consider.
 * @return {Array}
 * @see R.dropLast
 * @example
 *
 *      R.takeLast(1, ['foo', 'bar', 'baz']); //=> ['baz']
 *      R.takeLast(2, ['foo', 'bar', 'baz']); //=> ['bar', 'baz']
 *      R.takeLast(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']
 *      R.takeLast(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']
 *      R.takeLast(3, 'ramda');               //=> 'mda'
 */
var takeLast = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function takeLast(n, xs) {
  return Object(_drop_js__WEBPACK_IMPORTED_MODULE_1__["default"])(n >= 0 ? xs.length - n : 0, xs);
});
/* harmony default export */ __webpack_exports__["default"] = (takeLast);

/***/ }),

/***/ "./node_modules/ramda/es/takeLastWhile.js":
/*!************************************************!*\
  !*** ./node_modules/ramda/es/takeLastWhile.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slice.js */ "./node_modules/ramda/es/slice.js");



/**
 * Returns a new list containing the last `n` elements of a given list, passing
 * each value to the supplied predicate function, and terminating when the
 * predicate function returns `false`. Excludes the element that caused the
 * predicate function to fail. The predicate function is passed one argument:
 * *(value)*.
 *
 * @func
 * @memberOf R
 * @since v0.16.0
 * @category List
 * @sig (a -> Boolean) -> [a] -> [a]
 * @sig (a -> Boolean) -> String -> String
 * @param {Function} fn The function called per iteration.
 * @param {Array} xs The collection to iterate over.
 * @return {Array} A new array.
 * @see R.dropLastWhile, R.addIndex
 * @example
 *
 *      const isNotOne = x => x !== 1;
 *
 *      R.takeLastWhile(isNotOne, [1, 2, 3, 4]); //=> [2, 3, 4]
 *
 *      R.takeLastWhile(x => x !== 'R' , 'Ramda'); //=> 'amda'
 */
var takeLastWhile = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function takeLastWhile(fn, xs) {
  var idx = xs.length - 1;
  while (idx >= 0 && fn(xs[idx])) {
    idx -= 1;
  }
  return Object(_slice_js__WEBPACK_IMPORTED_MODULE_1__["default"])(idx + 1, Infinity, xs);
});
/* harmony default export */ __webpack_exports__["default"] = (takeLastWhile);

/***/ }),

/***/ "./node_modules/ramda/es/takeWhile.js":
/*!********************************************!*\
  !*** ./node_modules/ramda/es/takeWhile.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ "./node_modules/ramda/es/internal/_dispatchable.js");
/* harmony import */ var _internal_xtakeWhile_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xtakeWhile.js */ "./node_modules/ramda/es/internal/_xtakeWhile.js");
/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./slice.js */ "./node_modules/ramda/es/slice.js");





/**
 * Returns a new list containing the first `n` elements of a given list,
 * passing each value to the supplied predicate function, and terminating when
 * the predicate function returns `false`. Excludes the element that caused the
 * predicate function to fail. The predicate function is passed one argument:
 * *(value)*.
 *
 * Dispatches to the `takeWhile` method of the second argument, if present.
 *
 * Acts as a transducer if a transformer is given in list position.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig (a -> Boolean) -> [a] -> [a]
 * @sig (a -> Boolean) -> String -> String
 * @param {Function} fn The function called per iteration.
 * @param {Array} xs The collection to iterate over.
 * @return {Array} A new array.
 * @see R.dropWhile, R.transduce, R.addIndex
 * @example
 *
 *      const isNotFour = x => x !== 4;
 *
 *      R.takeWhile(isNotFour, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3]
 *
 *      R.takeWhile(x => x !== 'd' , 'Ramda'); //=> 'Ram'
 */
var takeWhile = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/Object(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__["default"])(['takeWhile'], _internal_xtakeWhile_js__WEBPACK_IMPORTED_MODULE_2__["default"], function takeWhile(fn, xs) {
  var idx = 0;
  var len = xs.length;
  while (idx < len && fn(xs[idx])) {
    idx += 1;
  }
  return Object(_slice_js__WEBPACK_IMPORTED_MODULE_3__["default"])(0, idx, xs);
}));
/* harmony default export */ __webpack_exports__["default"] = (takeWhile);

/***/ }),

/***/ "./node_modules/ramda/es/tap.js":
/*!**************************************!*\
  !*** ./node_modules/ramda/es/tap.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_dispatchable.js */ "./node_modules/ramda/es/internal/_dispatchable.js");
/* harmony import */ var _internal_xtap_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_xtap.js */ "./node_modules/ramda/es/internal/_xtap.js");




/**
 * Runs the given function with the supplied object, then returns the object.
 *
 * Acts as a transducer if a transformer is given as second parameter.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Function
 * @sig (a -> *) -> a -> a
 * @param {Function} fn The function to call with `x`. The return value of `fn` will be thrown away.
 * @param {*} x
 * @return {*} `x`.
 * @example
 *
 *      const sayX = x => console.log('x is ' + x);
 *      R.tap(sayX, 100); //=> 100
 *      // logs 'x is 100'
 * @symb R.tap(f, a) = a
 */
var tap = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/Object(_internal_dispatchable_js__WEBPACK_IMPORTED_MODULE_1__["default"])([], _internal_xtap_js__WEBPACK_IMPORTED_MODULE_2__["default"], function tap(fn, x) {
  fn(x);
  return x;
}));
/* harmony default export */ __webpack_exports__["default"] = (tap);

/***/ }),

/***/ "./node_modules/ramda/es/test.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/test.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_cloneRegExp_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_cloneRegExp.js */ "./node_modules/ramda/es/internal/_cloneRegExp.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_isRegExp_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_isRegExp.js */ "./node_modules/ramda/es/internal/_isRegExp.js");
/* harmony import */ var _toString_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./toString.js */ "./node_modules/ramda/es/toString.js");





/**
 * Determines whether a given string matches a given regular expression.
 *
 * @func
 * @memberOf R
 * @since v0.12.0
 * @category String
 * @sig RegExp -> String -> Boolean
 * @param {RegExp} pattern
 * @param {String} str
 * @return {Boolean}
 * @see R.match
 * @example
 *
 *      R.test(/^x/, 'xyz'); //=> true
 *      R.test(/^y/, 'xyz'); //=> false
 */
var test = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function test(pattern, str) {
  if (!Object(_internal_isRegExp_js__WEBPACK_IMPORTED_MODULE_2__["default"])(pattern)) {
    throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + Object(_toString_js__WEBPACK_IMPORTED_MODULE_3__["default"])(pattern));
  }
  return Object(_internal_cloneRegExp_js__WEBPACK_IMPORTED_MODULE_0__["default"])(pattern).test(str);
});
/* harmony default export */ __webpack_exports__["default"] = (test);

/***/ }),

/***/ "./node_modules/ramda/es/then.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/then.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_assertPromise_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_assertPromise.js */ "./node_modules/ramda/es/internal/_assertPromise.js");



/**
 * Returns the result of applying the onSuccess function to the value inside
 * a successfully resolved promise. This is useful for working with promises
 * inside function compositions.
 *
 * @func
 * @memberOf R
 * @category Function
 * @sig (a -> b) -> (Promise e a) -> (Promise e b)
 * @sig (a -> (Promise e b)) -> (Promise e a) -> (Promise e b)
 * @param {Function} onSuccess The function to apply. Can return a value or a promise of a value.
 * @param {Promise} p
 * @return {Promise} The result of calling `p.then(onSuccess)`
 * @see R.otherwise
 * @example
 *
 *      var makeQuery = (email) => ({ query: { email }});
 *
 *      //getMemberName :: String -> Promise ({firstName, lastName})
 *      var getMemberName = R.pipe(
 *        makeQuery,
 *        fetchMember,
 *        R.then(R.pick(['firstName', 'lastName']))
 *      );
 */
var then = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function then(f, p) {
  Object(_internal_assertPromise_js__WEBPACK_IMPORTED_MODULE_1__["default"])('then', p);

  return p.then(f);
});
/* harmony default export */ __webpack_exports__["default"] = (then);

/***/ }),

/***/ "./node_modules/ramda/es/thunkify.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/thunkify.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./curryN.js */ "./node_modules/ramda/es/curryN.js");
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");



/**
 * Creates a thunk out of a function. A thunk delays a calculation until
 * its result is needed, providing lazy evaluation of arguments.
 *
 * @func
 * @memberOf R
 * @category Function
 * @sig ((a, b, ..., j) -> k) -> (a, b, ..., j) -> (() -> k)
 * @param {Function} fn A function to wrap in a thunk
 * @return {Function} Expects arguments for `fn` and returns a new function
 *  that, when called, applies those arguments to `fn`.
 * @see R.partial, R.partialRight
 * @example
 *
 *      R.thunkify(R.identity)(42)(); //=> 42
 *      R.thunkify((a, b) => a + b)(25, 17)(); //=> 42
 */
var thunkify = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function thunkify(fn) {
  return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_0__["default"])(fn.length, function createThunk() {
    var fnArgs = arguments;
    return function invokeThunk() {
      return fn.apply(this, fnArgs);
    };
  });
});

/* harmony default export */ __webpack_exports__["default"] = (thunkify);

/***/ }),

/***/ "./node_modules/ramda/es/times.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/times.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Calls an input function `n` times, returning an array containing the results
 * of those function calls.
 *
 * `fn` is passed one argument: The current value of `n`, which begins at `0`
 * and is gradually incremented to `n - 1`.
 *
 * @func
 * @memberOf R
 * @since v0.2.3
 * @category List
 * @sig (Number -> a) -> Number -> [a]
 * @param {Function} fn The function to invoke. Passed one argument, the current value of `n`.
 * @param {Number} n A value between `0` and `n - 1`. Increments after each function call.
 * @return {Array} An array containing the return values of all calls to `fn`.
 * @see R.repeat
 * @example
 *
 *      R.times(R.identity, 5); //=> [0, 1, 2, 3, 4]
 * @symb R.times(f, 0) = []
 * @symb R.times(f, 1) = [f(0)]
 * @symb R.times(f, 2) = [f(0), f(1)]
 */
var times = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function times(fn, n) {
  var len = Number(n);
  var idx = 0;
  var list;

  if (len < 0 || isNaN(len)) {
    throw new RangeError('n must be a non-negative number');
  }
  list = new Array(len);
  while (idx < len) {
    list[idx] = fn(idx);
    idx += 1;
  }
  return list;
});
/* harmony default export */ __webpack_exports__["default"] = (times);

/***/ }),

/***/ "./node_modules/ramda/es/toLower.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/toLower.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _invoker_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./invoker.js */ "./node_modules/ramda/es/invoker.js");


/**
 * The lower case version of a string.
 *
 * @func
 * @memberOf R
 * @since v0.9.0
 * @category String
 * @sig String -> String
 * @param {String} str The string to lower case.
 * @return {String} The lower case version of `str`.
 * @see R.toUpper
 * @example
 *
 *      R.toLower('XYZ'); //=> 'xyz'
 */
var toLower = /*#__PURE__*/Object(_invoker_js__WEBPACK_IMPORTED_MODULE_0__["default"])(0, 'toLowerCase');
/* harmony default export */ __webpack_exports__["default"] = (toLower);

/***/ }),

/***/ "./node_modules/ramda/es/toPairs.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/toPairs.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ "./node_modules/ramda/es/internal/_has.js");



/**
 * Converts an object into an array of key, value arrays. Only the object's
 * own properties are used.
 * Note that the order of the output array is not guaranteed to be consistent
 * across different JS platforms.
 *
 * @func
 * @memberOf R
 * @since v0.4.0
 * @category Object
 * @sig {String: *} -> [[String,*]]
 * @param {Object} obj The object to extract from
 * @return {Array} An array of key, value arrays from the object's own properties.
 * @see R.fromPairs
 * @example
 *
 *      R.toPairs({a: 1, b: 2, c: 3}); //=> [['a', 1], ['b', 2], ['c', 3]]
 */
var toPairs = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function toPairs(obj) {
  var pairs = [];
  for (var prop in obj) {
    if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__["default"])(prop, obj)) {
      pairs[pairs.length] = [prop, obj[prop]];
    }
  }
  return pairs;
});
/* harmony default export */ __webpack_exports__["default"] = (toPairs);

/***/ }),

/***/ "./node_modules/ramda/es/toPairsIn.js":
/*!********************************************!*\
  !*** ./node_modules/ramda/es/toPairsIn.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");


/**
 * Converts an object into an array of key, value arrays. The object's own
 * properties and prototype properties are used. Note that the order of the
 * output array is not guaranteed to be consistent across different JS
 * platforms.
 *
 * @func
 * @memberOf R
 * @since v0.4.0
 * @category Object
 * @sig {String: *} -> [[String,*]]
 * @param {Object} obj The object to extract from
 * @return {Array} An array of key, value arrays from the object's own
 *         and prototype properties.
 * @example
 *
 *      const F = function() { this.x = 'X'; };
 *      F.prototype.y = 'Y';
 *      const f = new F();
 *      R.toPairsIn(f); //=> [['x','X'], ['y','Y']]
 */
var toPairsIn = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function toPairsIn(obj) {
  var pairs = [];
  for (var prop in obj) {
    pairs[pairs.length] = [prop, obj[prop]];
  }
  return pairs;
});
/* harmony default export */ __webpack_exports__["default"] = (toPairsIn);

/***/ }),

/***/ "./node_modules/ramda/es/toString.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/toString.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _internal_toString_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_toString.js */ "./node_modules/ramda/es/internal/_toString.js");



/**
 * Returns the string representation of the given value. `eval`'ing the output
 * should result in a value equivalent to the input value. Many of the built-in
 * `toString` methods do not satisfy this requirement.
 *
 * If the given value is an `[object Object]` with a `toString` method other
 * than `Object.prototype.toString`, this method is invoked with no arguments
 * to produce the return value. This means user-defined constructor functions
 * can provide a suitable `toString` method. For example:
 *
 *     function Point(x, y) {
 *       this.x = x;
 *       this.y = y;
 *     }
 *
 *     Point.prototype.toString = function() {
 *       return 'new Point(' + this.x + ', ' + this.y + ')';
 *     };
 *
 *     R.toString(new Point(1, 2)); //=> 'new Point(1, 2)'
 *
 * @func
 * @memberOf R
 * @since v0.14.0
 * @category String
 * @sig * -> String
 * @param {*} val
 * @return {String}
 * @example
 *
 *      R.toString(42); //=> '42'
 *      R.toString('abc'); //=> '"abc"'
 *      R.toString([1, 2, 3]); //=> '[1, 2, 3]'
 *      R.toString({foo: 1, bar: 2, baz: 3}); //=> '{"bar": 2, "baz": 3, "foo": 1}'
 *      R.toString(new Date('2001-02-03T04:05:06Z')); //=> 'new Date("2001-02-03T04:05:06.000Z")'
 */
var toString = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function toString(val) {
  return Object(_internal_toString_js__WEBPACK_IMPORTED_MODULE_1__["default"])(val, []);
});
/* harmony default export */ __webpack_exports__["default"] = (toString);

/***/ }),

/***/ "./node_modules/ramda/es/toUpper.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/toUpper.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _invoker_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./invoker.js */ "./node_modules/ramda/es/invoker.js");


/**
 * The upper case version of a string.
 *
 * @func
 * @memberOf R
 * @since v0.9.0
 * @category String
 * @sig String -> String
 * @param {String} str The string to upper case.
 * @return {String} The upper case version of `str`.
 * @see R.toLower
 * @example
 *
 *      R.toUpper('abc'); //=> 'ABC'
 */
var toUpper = /*#__PURE__*/Object(_invoker_js__WEBPACK_IMPORTED_MODULE_0__["default"])(0, 'toUpperCase');
/* harmony default export */ __webpack_exports__["default"] = (toUpper);

/***/ }),

/***/ "./node_modules/ramda/es/transduce.js":
/*!********************************************!*\
  !*** ./node_modules/ramda/es/transduce.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_reduce_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_reduce.js */ "./node_modules/ramda/es/internal/_reduce.js");
/* harmony import */ var _internal_xwrap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_xwrap.js */ "./node_modules/ramda/es/internal/_xwrap.js");
/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./curryN.js */ "./node_modules/ramda/es/curryN.js");




/**
 * Initializes a transducer using supplied iterator function. Returns a single
 * item by iterating through the list, successively calling the transformed
 * iterator function and passing it an accumulator value and the current value
 * from the array, and then passing the result to the next call.
 *
 * The iterator function receives two values: *(acc, value)*. It will be
 * wrapped as a transformer to initialize the transducer. A transformer can be
 * passed directly in place of an iterator function. In both cases, iteration
 * may be stopped early with the [`R.reduced`](#reduced) function.
 *
 * A transducer is a function that accepts a transformer and returns a
 * transformer and can be composed directly.
 *
 * A transformer is an an object that provides a 2-arity reducing iterator
 * function, step, 0-arity initial value function, init, and 1-arity result
 * extraction function, result. The step function is used as the iterator
 * function in reduce. The result function is used to convert the final
 * accumulator into the return type and in most cases is
 * [`R.identity`](#identity). The init function can be used to provide an
 * initial accumulator, but is ignored by transduce.
 *
 * The iteration is performed with [`R.reduce`](#reduce) after initializing the transducer.
 *
 * @func
 * @memberOf R
 * @since v0.12.0
 * @category List
 * @sig (c -> c) -> ((a, b) -> a) -> a -> [b] -> a
 * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.
 * @param {Function} fn The iterator function. Receives two values, the accumulator and the
 *        current element from the array. Wrapped as transformer, if necessary, and used to
 *        initialize the transducer
 * @param {*} acc The initial accumulator value.
 * @param {Array} list The list to iterate over.
 * @return {*} The final, accumulated value.
 * @see R.reduce, R.reduced, R.into
 * @example
 *
 *      const numbers = [1, 2, 3, 4];
 *      const transducer = R.compose(R.map(R.add(1)), R.take(2));
 *      R.transduce(transducer, R.flip(R.append), [], numbers); //=> [2, 3]
 *
 *      const isOdd = (x) => x % 2 === 1;
 *      const firstOddTransducer = R.compose(R.filter(isOdd), R.take(1));
 *      R.transduce(firstOddTransducer, R.flip(R.append), [], R.range(0, 100)); //=> [1]
 */
var transduce = /*#__PURE__*/Object(_curryN_js__WEBPACK_IMPORTED_MODULE_2__["default"])(4, function transduce(xf, fn, acc, list) {
  return Object(_internal_reduce_js__WEBPACK_IMPORTED_MODULE_0__["default"])(xf(typeof fn === 'function' ? Object(_internal_xwrap_js__WEBPACK_IMPORTED_MODULE_1__["default"])(fn) : fn), acc, list);
});
/* harmony default export */ __webpack_exports__["default"] = (transduce);

/***/ }),

/***/ "./node_modules/ramda/es/transpose.js":
/*!********************************************!*\
  !*** ./node_modules/ramda/es/transpose.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");


/**
 * Transposes the rows and columns of a 2D list.
 * When passed a list of `n` lists of length `x`,
 * returns a list of `x` lists of length `n`.
 *
 *
 * @func
 * @memberOf R
 * @since v0.19.0
 * @category List
 * @sig [[a]] -> [[a]]
 * @param {Array} list A 2D list
 * @return {Array} A 2D list
 * @example
 *
 *      R.transpose([[1, 'a'], [2, 'b'], [3, 'c']]) //=> [[1, 2, 3], ['a', 'b', 'c']]
 *      R.transpose([[1, 2, 3], ['a', 'b', 'c']]) //=> [[1, 'a'], [2, 'b'], [3, 'c']]
 *
 *      // If some of the rows are shorter than the following rows, their elements are skipped:
 *      R.transpose([[10, 11], [20], [], [30, 31, 32]]) //=> [[10, 20, 30], [11, 31], [32]]
 * @symb R.transpose([[a], [b], [c]]) = [a, b, c]
 * @symb R.transpose([[a, b], [c, d]]) = [[a, c], [b, d]]
 * @symb R.transpose([[a, b], [c]]) = [[a, c], [b]]
 */
var transpose = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function transpose(outerlist) {
  var i = 0;
  var result = [];
  while (i < outerlist.length) {
    var innerlist = outerlist[i];
    var j = 0;
    while (j < innerlist.length) {
      if (typeof result[j] === 'undefined') {
        result[j] = [];
      }
      result[j].push(innerlist[j]);
      j += 1;
    }
    i += 1;
  }
  return result;
});
/* harmony default export */ __webpack_exports__["default"] = (transpose);

/***/ }),

/***/ "./node_modules/ramda/es/traverse.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/traverse.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");
/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./map.js */ "./node_modules/ramda/es/map.js");
/* harmony import */ var _sequence_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sequence.js */ "./node_modules/ramda/es/sequence.js");




/**
 * Maps an [Applicative](https://github.com/fantasyland/fantasy-land#applicative)-returning
 * function over a [Traversable](https://github.com/fantasyland/fantasy-land#traversable),
 * then uses [`sequence`](#sequence) to transform the resulting Traversable of Applicative
 * into an Applicative of Traversable.
 *
 * Dispatches to the `traverse` method of the third argument, if present.
 *
 * @func
 * @memberOf R
 * @since v0.19.0
 * @category List
 * @sig (Applicative f, Traversable t) => (a -> f a) -> (a -> f b) -> t a -> f (t b)
 * @param {Function} of
 * @param {Function} f
 * @param {*} traversable
 * @return {*}
 * @see R.sequence
 * @example
 *
 *      // Returns `Maybe.Nothing` if the given divisor is `0`
 *      const safeDiv = n => d => d === 0 ? Maybe.Nothing() : Maybe.Just(n / d)
 *
 *      R.traverse(Maybe.of, safeDiv(10), [2, 4, 5]); //=> Maybe.Just([5, 2.5, 2])
 *      R.traverse(Maybe.of, safeDiv(10), [2, 0, 5]); //=> Maybe.Nothing
 */
var traverse = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function traverse(of, f, traversable) {
  return typeof traversable['fantasy-land/traverse'] === 'function' ? traversable['fantasy-land/traverse'](f, of) : Object(_sequence_js__WEBPACK_IMPORTED_MODULE_2__["default"])(of, Object(_map_js__WEBPACK_IMPORTED_MODULE_1__["default"])(f, traversable));
});
/* harmony default export */ __webpack_exports__["default"] = (traverse);

/***/ }),

/***/ "./node_modules/ramda/es/trim.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/trim.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");


var ws = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' + '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028' + '\u2029\uFEFF';
var zeroWidth = '\u200b';
var hasProtoTrim = typeof String.prototype.trim === 'function';
/**
 * Removes (strips) whitespace from both ends of the string.
 *
 * @func
 * @memberOf R
 * @since v0.6.0
 * @category String
 * @sig String -> String
 * @param {String} str The string to trim.
 * @return {String} Trimmed version of `str`.
 * @example
 *
 *      R.trim('   xyz  '); //=> 'xyz'
 *      R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']
 */
var trim = !hasProtoTrim || /*#__PURE__*/ws.trim() || ! /*#__PURE__*/zeroWidth.trim() ? /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function trim(str) {
  var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');
  var endRx = new RegExp('[' + ws + '][' + ws + ']*$');
  return str.replace(beginRx, '').replace(endRx, '');
}) : /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function trim(str) {
  return str.trim();
});
/* harmony default export */ __webpack_exports__["default"] = (trim);

/***/ }),

/***/ "./node_modules/ramda/es/tryCatch.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/tryCatch.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_arity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_arity.js */ "./node_modules/ramda/es/internal/_arity.js");
/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_concat.js */ "./node_modules/ramda/es/internal/_concat.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");




/**
 * `tryCatch` takes two functions, a `tryer` and a `catcher`. The returned
 * function evaluates the `tryer`; if it does not throw, it simply returns the
 * result. If the `tryer` *does* throw, the returned function evaluates the
 * `catcher` function and returns its result. Note that for effective
 * composition with this function, both the `tryer` and `catcher` functions
 * must return the same type of results.
 *
 * @func
 * @memberOf R
 * @since v0.20.0
 * @category Function
 * @sig (...x -> a) -> ((e, ...x) -> a) -> (...x -> a)
 * @param {Function} tryer The function that may throw.
 * @param {Function} catcher The function that will be evaluated if `tryer` throws.
 * @return {Function} A new function that will catch exceptions and send then to the catcher.
 * @example
 *
 *      R.tryCatch(R.prop('x'), R.F)({x: true}); //=> true
 *      R.tryCatch(() => { throw 'foo'}, R.always('catched'))('bar') // => 'catched'
 *      R.tryCatch(R.times(R.identity), R.always([]))('s') // => []
 `` */
var tryCatch = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_2__["default"])(function _tryCatch(tryer, catcher) {
  return Object(_internal_arity_js__WEBPACK_IMPORTED_MODULE_0__["default"])(tryer.length, function () {
    try {
      return tryer.apply(this, arguments);
    } catch (e) {
      return catcher.apply(this, Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_1__["default"])([e], arguments));
    }
  });
});
/* harmony default export */ __webpack_exports__["default"] = (tryCatch);

/***/ }),

/***/ "./node_modules/ramda/es/type.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/type.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");


/**
 * Gives a single-word string description of the (native) type of a value,
 * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not
 * attempt to distinguish user Object types any further, reporting them all as
 * 'Object'.
 *
 * @func
 * @memberOf R
 * @since v0.8.0
 * @category Type
 * @sig (* -> {*}) -> String
 * @param {*} val The value to test
 * @return {String}
 * @example
 *
 *      R.type({}); //=> "Object"
 *      R.type(1); //=> "Number"
 *      R.type(false); //=> "Boolean"
 *      R.type('s'); //=> "String"
 *      R.type(null); //=> "Null"
 *      R.type([]); //=> "Array"
 *      R.type(/[A-z]/); //=> "RegExp"
 *      R.type(() => {}); //=> "Function"
 *      R.type(undefined); //=> "Undefined"
 */
var type = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function type(val) {
  return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);
});
/* harmony default export */ __webpack_exports__["default"] = (type);

/***/ }),

/***/ "./node_modules/ramda/es/unapply.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/unapply.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");


/**
 * Takes a function `fn`, which takes a single array argument, and returns a
 * function which:
 *
 *   - takes any number of positional arguments;
 *   - passes these arguments to `fn` as an array; and
 *   - returns the result.
 *
 * In other words, `R.unapply` derives a variadic function from a function which
 * takes an array. `R.unapply` is the inverse of [`R.apply`](#apply).
 *
 * @func
 * @memberOf R
 * @since v0.8.0
 * @category Function
 * @sig ([*...] -> a) -> (*... -> a)
 * @param {Function} fn
 * @return {Function}
 * @see R.apply
 * @example
 *
 *      R.unapply(JSON.stringify)(1, 2, 3); //=> '[1,2,3]'
 * @symb R.unapply(f)(a, b) = f([a, b])
 */
var unapply = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function unapply(fn) {
  return function () {
    return fn(Array.prototype.slice.call(arguments, 0));
  };
});
/* harmony default export */ __webpack_exports__["default"] = (unapply);

/***/ }),

/***/ "./node_modules/ramda/es/unary.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/unary.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _nAry_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./nAry.js */ "./node_modules/ramda/es/nAry.js");



/**
 * Wraps a function of any arity (including nullary) in a function that accepts
 * exactly 1 parameter. Any extraneous parameters will not be passed to the
 * supplied function.
 *
 * @func
 * @memberOf R
 * @since v0.2.0
 * @category Function
 * @sig (* -> b) -> (a -> b)
 * @param {Function} fn The function to wrap.
 * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of
 *         arity 1.
 * @see R.binary, R.nAry
 * @example
 *
 *      const takesTwoArgs = function(a, b) {
 *        return [a, b];
 *      };
 *      takesTwoArgs.length; //=> 2
 *      takesTwoArgs(1, 2); //=> [1, 2]
 *
 *      const takesOneArg = R.unary(takesTwoArgs);
 *      takesOneArg.length; //=> 1
 *      // Only 1 argument is passed to the wrapped function
 *      takesOneArg(1, 2); //=> [1, undefined]
 * @symb R.unary(f)(a, b, c) = f(a)
 */
var unary = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function unary(fn) {
  return Object(_nAry_js__WEBPACK_IMPORTED_MODULE_1__["default"])(1, fn);
});
/* harmony default export */ __webpack_exports__["default"] = (unary);

/***/ }),

/***/ "./node_modules/ramda/es/uncurryN.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/uncurryN.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ "./node_modules/ramda/es/curryN.js");



/**
 * Returns a function of arity `n` from a (manually) curried function.
 *
 * @func
 * @memberOf R
 * @since v0.14.0
 * @category Function
 * @sig Number -> (a -> b) -> (a -> c)
 * @param {Number} length The arity for the returned function.
 * @param {Function} fn The function to uncurry.
 * @return {Function} A new function.
 * @see R.curry
 * @example
 *
 *      const addFour = a => b => c => d => a + b + c + d;
 *
 *      const uncurriedAddFour = R.uncurryN(4, addFour);
 *      uncurriedAddFour(1, 2, 3, 4); //=> 10
 */
var uncurryN = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function uncurryN(depth, fn) {
  return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__["default"])(depth, function () {
    var currentDepth = 1;
    var value = fn;
    var idx = 0;
    var endIdx;
    while (currentDepth <= depth && typeof value === 'function') {
      endIdx = currentDepth === depth ? arguments.length : idx + value.length;
      value = value.apply(this, Array.prototype.slice.call(arguments, idx, endIdx));
      currentDepth += 1;
      idx = endIdx;
    }
    return value;
  });
});
/* harmony default export */ __webpack_exports__["default"] = (uncurryN);

/***/ }),

/***/ "./node_modules/ramda/es/unfold.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/unfold.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Builds a list from a seed value. Accepts an iterator function, which returns
 * either false to stop iteration or an array of length 2 containing the value
 * to add to the resulting list and the seed to be used in the next call to the
 * iterator function.
 *
 * The iterator function receives one argument: *(seed)*.
 *
 * @func
 * @memberOf R
 * @since v0.10.0
 * @category List
 * @sig (a -> [b]) -> * -> [b]
 * @param {Function} fn The iterator function. receives one argument, `seed`, and returns
 *        either false to quit iteration or an array of length two to proceed. The element
 *        at index 0 of this array will be added to the resulting array, and the element
 *        at index 1 will be passed to the next call to `fn`.
 * @param {*} seed The seed value.
 * @return {Array} The final list.
 * @example
 *
 *      const f = n => n > 50 ? false : [-n, n + 10];
 *      R.unfold(f, 10); //=> [-10, -20, -30, -40, -50]
 * @symb R.unfold(f, x) = [f(x)[0], f(f(x)[1])[0], f(f(f(x)[1])[1])[0], ...]
 */
var unfold = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function unfold(fn, seed) {
  var pair = fn(seed);
  var result = [];
  while (pair && pair.length) {
    result[result.length] = pair[0];
    pair = fn(pair[1]);
  }
  return result;
});
/* harmony default export */ __webpack_exports__["default"] = (unfold);

/***/ }),

/***/ "./node_modules/ramda/es/union.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/union.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ "./node_modules/ramda/es/internal/_concat.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _compose_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./compose.js */ "./node_modules/ramda/es/compose.js");
/* harmony import */ var _uniq_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./uniq.js */ "./node_modules/ramda/es/uniq.js");





/**
 * Combines two lists into a set (i.e. no duplicates) composed of the elements
 * of each list.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Relation
 * @sig [*] -> [*] -> [*]
 * @param {Array} as The first list.
 * @param {Array} bs The second list.
 * @return {Array} The first and second lists concatenated, with
 *         duplicates removed.
 * @example
 *
 *      R.union([1, 2, 3], [2, 3, 4]); //=> [1, 2, 3, 4]
 */
var union = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])( /*#__PURE__*/Object(_compose_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_uniq_js__WEBPACK_IMPORTED_MODULE_3__["default"], _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__["default"]));
/* harmony default export */ __webpack_exports__["default"] = (union);

/***/ }),

/***/ "./node_modules/ramda/es/unionWith.js":
/*!********************************************!*\
  !*** ./node_modules/ramda/es/unionWith.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_concat.js */ "./node_modules/ramda/es/internal/_concat.js");
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");
/* harmony import */ var _uniqWith_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./uniqWith.js */ "./node_modules/ramda/es/uniqWith.js");




/**
 * Combines two lists into a set (i.e. no duplicates) composed of the elements
 * of each list. Duplication is determined according to the value returned by
 * applying the supplied predicate to two list elements.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Relation
 * @sig ((a, a) -> Boolean) -> [*] -> [*] -> [*]
 * @param {Function} pred A predicate used to test whether two items are equal.
 * @param {Array} list1 The first list.
 * @param {Array} list2 The second list.
 * @return {Array} The first and second lists concatenated, with
 *         duplicates removed.
 * @see R.union
 * @example
 *
 *      const l1 = [{a: 1}, {a: 2}];
 *      const l2 = [{a: 1}, {a: 4}];
 *      R.unionWith(R.eqBy(R.prop('a')), l1, l2); //=> [{a: 1}, {a: 2}, {a: 4}]
 */
var unionWith = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function unionWith(pred, list1, list2) {
  return Object(_uniqWith_js__WEBPACK_IMPORTED_MODULE_2__["default"])(pred, Object(_internal_concat_js__WEBPACK_IMPORTED_MODULE_0__["default"])(list1, list2));
});
/* harmony default export */ __webpack_exports__["default"] = (unionWith);

/***/ }),

/***/ "./node_modules/ramda/es/uniq.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/uniq.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./identity.js */ "./node_modules/ramda/es/identity.js");
/* harmony import */ var _uniqBy_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uniqBy.js */ "./node_modules/ramda/es/uniqBy.js");



/**
 * Returns a new list containing only one copy of each element in the original
 * list. [`R.equals`](#equals) is used to determine equality.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig [a] -> [a]
 * @param {Array} list The array to consider.
 * @return {Array} The list of unique items.
 * @example
 *
 *      R.uniq([1, 1, 2, 1]); //=> [1, 2]
 *      R.uniq([1, '1']);     //=> [1, '1']
 *      R.uniq([[42], [42]]); //=> [[42]]
 */
var uniq = /*#__PURE__*/Object(_uniqBy_js__WEBPACK_IMPORTED_MODULE_1__["default"])(_identity_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
/* harmony default export */ __webpack_exports__["default"] = (uniq);

/***/ }),

/***/ "./node_modules/ramda/es/uniqBy.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/uniqBy.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_Set_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_Set.js */ "./node_modules/ramda/es/internal/_Set.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");



/**
 * Returns a new list containing only one copy of each element in the original
 * list, based upon the value returned by applying the supplied function to
 * each list element. Prefers the first item if the supplied function produces
 * the same value on two items. [`R.equals`](#equals) is used for comparison.
 *
 * @func
 * @memberOf R
 * @since v0.16.0
 * @category List
 * @sig (a -> b) -> [a] -> [a]
 * @param {Function} fn A function used to produce a value to use during comparisons.
 * @param {Array} list The array to consider.
 * @return {Array} The list of unique items.
 * @example
 *
 *      R.uniqBy(Math.abs, [-1, -5, 2, 10, 1, 2]); //=> [-1, -5, 2, 10]
 */
var uniqBy = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function uniqBy(fn, list) {
  var set = new _internal_Set_js__WEBPACK_IMPORTED_MODULE_0__["default"]();
  var result = [];
  var idx = 0;
  var appliedItem, item;

  while (idx < list.length) {
    item = list[idx];
    appliedItem = fn(item);
    if (set.add(appliedItem)) {
      result.push(item);
    }
    idx += 1;
  }
  return result;
});
/* harmony default export */ __webpack_exports__["default"] = (uniqBy);

/***/ }),

/***/ "./node_modules/ramda/es/uniqWith.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/uniqWith.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includesWith.js */ "./node_modules/ramda/es/internal/_includesWith.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");



/**
 * Returns a new list containing only one copy of each element in the original
 * list, based upon the value returned by applying the supplied predicate to
 * two list elements. Prefers the first item if two items compare equal based
 * on the predicate.
 *
 * @func
 * @memberOf R
 * @since v0.2.0
 * @category List
 * @sig ((a, a) -> Boolean) -> [a] -> [a]
 * @param {Function} pred A predicate used to test whether two items are equal.
 * @param {Array} list The array to consider.
 * @return {Array} The list of unique items.
 * @example
 *
 *      const strEq = R.eqBy(String);
 *      R.uniqWith(strEq)([1, '1', 2, 1]); //=> [1, 2]
 *      R.uniqWith(strEq)([{}, {}]);       //=> [{}]
 *      R.uniqWith(strEq)([1, '1', 1]);    //=> [1]
 *      R.uniqWith(strEq)(['1', 1, 1]);    //=> ['1']
 */
var uniqWith = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function uniqWith(pred, list) {
  var idx = 0;
  var len = list.length;
  var result = [];
  var item;
  while (idx < len) {
    item = list[idx];
    if (!Object(_internal_includesWith_js__WEBPACK_IMPORTED_MODULE_0__["default"])(pred, item, result)) {
      result[result.length] = item;
    }
    idx += 1;
  }
  return result;
});
/* harmony default export */ __webpack_exports__["default"] = (uniqWith);

/***/ }),

/***/ "./node_modules/ramda/es/unless.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/unless.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");


/**
 * Tests the final argument by passing it to the given predicate function. If
 * the predicate is not satisfied, the function will return the result of
 * calling the `whenFalseFn` function with the same argument. If the predicate
 * is satisfied, the argument is returned as is.
 *
 * @func
 * @memberOf R
 * @since v0.18.0
 * @category Logic
 * @sig (a -> Boolean) -> (a -> a) -> a -> a
 * @param {Function} pred        A predicate function
 * @param {Function} whenFalseFn A function to invoke when the `pred` evaluates
 *                               to a falsy value.
 * @param {*}        x           An object to test with the `pred` function and
 *                               pass to `whenFalseFn` if necessary.
 * @return {*} Either `x` or the result of applying `x` to `whenFalseFn`.
 * @see R.ifElse, R.when, R.cond
 * @example
 *
 *      let safeInc = R.unless(R.isNil, R.inc);
 *      safeInc(null); //=> null
 *      safeInc(1); //=> 2
 */
var unless = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function unless(pred, whenFalseFn, x) {
  return pred(x) ? x : whenFalseFn(x);
});
/* harmony default export */ __webpack_exports__["default"] = (unless);

/***/ }),

/***/ "./node_modules/ramda/es/unnest.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/unnest.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_identity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_identity.js */ "./node_modules/ramda/es/internal/_identity.js");
/* harmony import */ var _chain_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./chain.js */ "./node_modules/ramda/es/chain.js");



/**
 * Shorthand for `R.chain(R.identity)`, which removes one level of nesting from
 * any [Chain](https://github.com/fantasyland/fantasy-land#chain).
 *
 * @func
 * @memberOf R
 * @since v0.3.0
 * @category List
 * @sig Chain c => c (c a) -> c a
 * @param {*} list
 * @return {*}
 * @see R.flatten, R.chain
 * @example
 *
 *      R.unnest([1, [2], [[3]]]); //=> [1, 2, [3]]
 *      R.unnest([[1, 2], [3, 4], [5, 6]]); //=> [1, 2, 3, 4, 5, 6]
 */
var unnest = /*#__PURE__*/Object(_chain_js__WEBPACK_IMPORTED_MODULE_1__["default"])(_internal_identity_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
/* harmony default export */ __webpack_exports__["default"] = (unnest);

/***/ }),

/***/ "./node_modules/ramda/es/until.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/until.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");


/**
 * Takes a predicate, a transformation function, and an initial value,
 * and returns a value of the same type as the initial value.
 * It does so by applying the transformation until the predicate is satisfied,
 * at which point it returns the satisfactory value.
 *
 * @func
 * @memberOf R
 * @since v0.20.0
 * @category Logic
 * @sig (a -> Boolean) -> (a -> a) -> a -> a
 * @param {Function} pred A predicate function
 * @param {Function} fn The iterator function
 * @param {*} init Initial value
 * @return {*} Final value that satisfies predicate
 * @example
 *
 *      R.until(R.gt(R.__, 100), R.multiply(2))(1) // => 128
 */
var until = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function until(pred, fn, init) {
  var val = init;
  while (!pred(val)) {
    val = fn(val);
  }
  return val;
});
/* harmony default export */ __webpack_exports__["default"] = (until);

/***/ }),

/***/ "./node_modules/ramda/es/update.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/update.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");
/* harmony import */ var _adjust_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./adjust.js */ "./node_modules/ramda/es/adjust.js");
/* harmony import */ var _always_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./always.js */ "./node_modules/ramda/es/always.js");




/**
 * Returns a new copy of the array with the element at the provided index
 * replaced with the given value.
 *
 * @func
 * @memberOf R
 * @since v0.14.0
 * @category List
 * @sig Number -> a -> [a] -> [a]
 * @param {Number} idx The index to update.
 * @param {*} x The value to exist at the given index of the returned array.
 * @param {Array|Arguments} list The source array-like object to be updated.
 * @return {Array} A copy of `list` with the value at index `idx` replaced with `x`.
 * @see R.adjust
 * @example
 *
 *      R.update(1, '_', ['a', 'b', 'c']);      //=> ['a', '_', 'c']
 *      R.update(-1, '_', ['a', 'b', 'c']);     //=> ['a', 'b', '_']
 * @symb R.update(-1, a, [b, c]) = [b, a]
 * @symb R.update(0, a, [b, c]) = [a, c]
 * @symb R.update(1, a, [b, c]) = [b, a]
 */
var update = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function update(idx, x, list) {
  return Object(_adjust_js__WEBPACK_IMPORTED_MODULE_1__["default"])(idx, Object(_always_js__WEBPACK_IMPORTED_MODULE_2__["default"])(x), list);
});
/* harmony default export */ __webpack_exports__["default"] = (update);

/***/ }),

/***/ "./node_modules/ramda/es/useWith.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/useWith.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _curryN_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curryN.js */ "./node_modules/ramda/es/curryN.js");



/**
 * Accepts a function `fn` and a list of transformer functions and returns a
 * new curried function. When the new function is invoked, it calls the
 * function `fn` with parameters consisting of the result of calling each
 * supplied handler on successive arguments to the new function.
 *
 * If more arguments are passed to the returned function than transformer
 * functions, those arguments are passed directly to `fn` as additional
 * parameters. If you expect additional arguments that don't need to be
 * transformed, although you can ignore them, it's best to pass an identity
 * function so that the new function reports the correct arity.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Function
 * @sig ((x1, x2, ...) -> z) -> [(a -> x1), (b -> x2), ...] -> (a -> b -> ... -> z)
 * @param {Function} fn The function to wrap.
 * @param {Array} transformers A list of transformer functions
 * @return {Function} The wrapped function.
 * @see R.converge
 * @example
 *
 *      R.useWith(Math.pow, [R.identity, R.identity])(3, 4); //=> 81
 *      R.useWith(Math.pow, [R.identity, R.identity])(3)(4); //=> 81
 *      R.useWith(Math.pow, [R.dec, R.inc])(3, 4); //=> 32
 *      R.useWith(Math.pow, [R.dec, R.inc])(3)(4); //=> 32
 * @symb R.useWith(f, [g, h])(a, b) = f(g(a), h(b))
 */
var useWith = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function useWith(fn, transformers) {
  return Object(_curryN_js__WEBPACK_IMPORTED_MODULE_1__["default"])(transformers.length, function () {
    var args = [];
    var idx = 0;
    while (idx < transformers.length) {
      args.push(transformers[idx].call(this, arguments[idx]));
      idx += 1;
    }
    return fn.apply(this, args.concat(Array.prototype.slice.call(arguments, transformers.length)));
  });
});
/* harmony default export */ __webpack_exports__["default"] = (useWith);

/***/ }),

/***/ "./node_modules/ramda/es/values.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/values.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");
/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ "./node_modules/ramda/es/keys.js");



/**
 * Returns a list of all the enumerable own properties of the supplied object.
 * Note that the order of the output array is not guaranteed across different
 * JS platforms.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category Object
 * @sig {k: v} -> [v]
 * @param {Object} obj The object to extract values from
 * @return {Array} An array of the values of the object's own properties.
 * @see R.valuesIn, R.keys
 * @example
 *
 *      R.values({a: 1, b: 2, c: 3}); //=> [1, 2, 3]
 */
var values = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function values(obj) {
  var props = Object(_keys_js__WEBPACK_IMPORTED_MODULE_1__["default"])(obj);
  var len = props.length;
  var vals = [];
  var idx = 0;
  while (idx < len) {
    vals[idx] = obj[props[idx]];
    idx += 1;
  }
  return vals;
});
/* harmony default export */ __webpack_exports__["default"] = (values);

/***/ }),

/***/ "./node_modules/ramda/es/valuesIn.js":
/*!*******************************************!*\
  !*** ./node_modules/ramda/es/valuesIn.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry1.js */ "./node_modules/ramda/es/internal/_curry1.js");


/**
 * Returns a list of all the properties, including prototype properties, of the
 * supplied object.
 * Note that the order of the output array is not guaranteed to be consistent
 * across different JS platforms.
 *
 * @func
 * @memberOf R
 * @since v0.2.0
 * @category Object
 * @sig {k: v} -> [v]
 * @param {Object} obj The object to extract values from
 * @return {Array} An array of the values of the object's own and prototype properties.
 * @see R.values, R.keysIn
 * @example
 *
 *      const F = function() { this.x = 'X'; };
 *      F.prototype.y = 'Y';
 *      const f = new F();
 *      R.valuesIn(f); //=> ['X', 'Y']
 */
var valuesIn = /*#__PURE__*/Object(_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function valuesIn(obj) {
  var prop;
  var vs = [];
  for (prop in obj) {
    vs[vs.length] = obj[prop];
  }
  return vs;
});
/* harmony default export */ __webpack_exports__["default"] = (valuesIn);

/***/ }),

/***/ "./node_modules/ramda/es/view.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/view.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


// `Const` is a functor that effectively ignores the function given to `map`.
var Const = function (x) {
  return { value: x, 'fantasy-land/map': function () {
      return this;
    } };
};

/**
 * Returns a "view" of the given data structure, determined by the given lens.
 * The lens's focus determines which portion of the data structure is visible.
 *
 * @func
 * @memberOf R
 * @since v0.16.0
 * @category Object
 * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s
 * @sig Lens s a -> s -> a
 * @param {Lens} lens
 * @param {*} x
 * @return {*}
 * @see R.prop, R.lensIndex, R.lensProp
 * @example
 *
 *      const xLens = R.lensProp('x');
 *
 *      R.view(xLens, {x: 1, y: 2});  //=> 1
 *      R.view(xLens, {x: 4, y: 2});  //=> 4
 */
var view = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function view(lens, x) {
  // Using `Const` effectively ignores the setter function of the `lens`,
  // leaving the value returned by the getter function unmodified.
  return lens(Const)(x).value;
});
/* harmony default export */ __webpack_exports__["default"] = (view);

/***/ }),

/***/ "./node_modules/ramda/es/when.js":
/*!***************************************!*\
  !*** ./node_modules/ramda/es/when.js ***!
  \***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");


/**
 * Tests the final argument by passing it to the given predicate function. If
 * the predicate is satisfied, the function will return the result of calling
 * the `whenTrueFn` function with the same argument. If the predicate is not
 * satisfied, the argument is returned as is.
 *
 * @func
 * @memberOf R
 * @since v0.18.0
 * @category Logic
 * @sig (a -> Boolean) -> (a -> a) -> a -> a
 * @param {Function} pred       A predicate function
 * @param {Function} whenTrueFn A function to invoke when the `condition`
 *                              evaluates to a truthy value.
 * @param {*}        x          An object to test with the `pred` function and
 *                              pass to `whenTrueFn` if necessary.
 * @return {*} Either `x` or the result of applying `x` to `whenTrueFn`.
 * @see R.ifElse, R.unless, R.cond
 * @example
 *
 *      // truncate :: String -> String
 *      const truncate = R.when(
 *        R.propSatisfies(R.gt(R.__, 10), 'length'),
 *        R.pipe(R.take(10), R.append('…'), R.join(''))
 *      );
 *      truncate('12345');         //=> '12345'
 *      truncate('0123456789ABC'); //=> '0123456789…'
 */
var when = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function when(pred, whenTrueFn, x) {
  return pred(x) ? whenTrueFn(x) : x;
});
/* harmony default export */ __webpack_exports__["default"] = (when);

/***/ }),

/***/ "./node_modules/ramda/es/where.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/where.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _internal_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_has.js */ "./node_modules/ramda/es/internal/_has.js");



/**
 * Takes a spec object and a test object; returns true if the test satisfies
 * the spec. Each of the spec's own properties must be a predicate function.
 * Each predicate is applied to the value of the corresponding property of the
 * test object. `where` returns true if all the predicates return true, false
 * otherwise.
 *
 * `where` is well suited to declaratively expressing constraints for other
 * functions such as [`filter`](#filter) and [`find`](#find).
 *
 * @func
 * @memberOf R
 * @since v0.1.1
 * @category Object
 * @sig {String: (* -> Boolean)} -> {String: *} -> Boolean
 * @param {Object} spec
 * @param {Object} testObj
 * @return {Boolean}
 * @see R.propSatisfies, R.whereEq
 * @example
 *
 *      // pred :: Object -> Boolean
 *      const pred = R.where({
 *        a: R.equals('foo'),
 *        b: R.complement(R.equals('bar')),
 *        x: R.gt(R.__, 10),
 *        y: R.lt(R.__, 20)
 *      });
 *
 *      pred({a: 'foo', b: 'xxx', x: 11, y: 19}); //=> true
 *      pred({a: 'xxx', b: 'xxx', x: 11, y: 19}); //=> false
 *      pred({a: 'foo', b: 'bar', x: 11, y: 19}); //=> false
 *      pred({a: 'foo', b: 'xxx', x: 10, y: 19}); //=> false
 *      pred({a: 'foo', b: 'xxx', x: 11, y: 20}); //=> false
 */
var where = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function where(spec, testObj) {
  for (var prop in spec) {
    if (Object(_internal_has_js__WEBPACK_IMPORTED_MODULE_1__["default"])(prop, spec) && !spec[prop](testObj[prop])) {
      return false;
    }
  }
  return true;
});
/* harmony default export */ __webpack_exports__["default"] = (where);

/***/ }),

/***/ "./node_modules/ramda/es/whereEq.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/whereEq.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _equals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equals.js */ "./node_modules/ramda/es/equals.js");
/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./map.js */ "./node_modules/ramda/es/map.js");
/* harmony import */ var _where_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./where.js */ "./node_modules/ramda/es/where.js");





/**
 * Takes a spec object and a test object; returns true if the test satisfies
 * the spec, false otherwise. An object satisfies the spec if, for each of the
 * spec's own properties, accessing that property of the object gives the same
 * value (in [`R.equals`](#equals) terms) as accessing that property of the
 * spec.
 *
 * `whereEq` is a specialization of [`where`](#where).
 *
 * @func
 * @memberOf R
 * @since v0.14.0
 * @category Object
 * @sig {String: *} -> {String: *} -> Boolean
 * @param {Object} spec
 * @param {Object} testObj
 * @return {Boolean}
 * @see R.propEq, R.where
 * @example
 *
 *      // pred :: Object -> Boolean
 *      const pred = R.whereEq({a: 1, b: 2});
 *
 *      pred({a: 1});              //=> false
 *      pred({a: 1, b: 2});        //=> true
 *      pred({a: 1, b: 2, c: 3});  //=> true
 *      pred({a: 1, b: 1});        //=> false
 */
var whereEq = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function whereEq(spec, testObj) {
  return Object(_where_js__WEBPACK_IMPORTED_MODULE_3__["default"])(Object(_map_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_equals_js__WEBPACK_IMPORTED_MODULE_1__["default"], spec), testObj);
});
/* harmony default export */ __webpack_exports__["default"] = (whereEq);

/***/ }),

/***/ "./node_modules/ramda/es/without.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/without.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_includes.js */ "./node_modules/ramda/es/internal/_includes.js");
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");
/* harmony import */ var _flip_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./flip.js */ "./node_modules/ramda/es/flip.js");
/* harmony import */ var _reject_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./reject.js */ "./node_modules/ramda/es/reject.js");





/**
 * Returns a new list without values in the first argument.
 * [`R.equals`](#equals) is used to determine equality.
 *
 * Acts as a transducer if a transformer is given in list position.
 *
 * @func
 * @memberOf R
 * @since v0.19.0
 * @category List
 * @sig [a] -> [a] -> [a]
 * @param {Array} list1 The values to be removed from `list2`.
 * @param {Array} list2 The array to remove values from.
 * @return {Array} The new array without values in `list1`.
 * @see R.transduce, R.difference, R.remove
 * @example
 *
 *      R.without([1, 2], [1, 2, 1, 3, 4]); //=> [3, 4]
 */
var without = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_1__["default"])(function (xs, list) {
  return Object(_reject_js__WEBPACK_IMPORTED_MODULE_3__["default"])(Object(_flip_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_internal_includes_js__WEBPACK_IMPORTED_MODULE_0__["default"])(xs), list);
});
/* harmony default export */ __webpack_exports__["default"] = (without);

/***/ }),

/***/ "./node_modules/ramda/es/xprod.js":
/*!****************************************!*\
  !*** ./node_modules/ramda/es/xprod.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Creates a new list out of the two supplied by creating each possible pair
 * from the lists.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig [a] -> [b] -> [[a,b]]
 * @param {Array} as The first list.
 * @param {Array} bs The second list.
 * @return {Array} The list made by combining each possible pair from
 *         `as` and `bs` into pairs (`[a, b]`).
 * @example
 *
 *      R.xprod([1, 2], ['a', 'b']); //=> [[1, 'a'], [1, 'b'], [2, 'a'], [2, 'b']]
 * @symb R.xprod([a, b], [c, d]) = [[a, c], [a, d], [b, c], [b, d]]
 */
var xprod = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function xprod(a, b) {
  // = xprodWith(prepend); (takes about 3 times as long...)
  var idx = 0;
  var ilen = a.length;
  var j;
  var jlen = b.length;
  var result = [];
  while (idx < ilen) {
    j = 0;
    while (j < jlen) {
      result[result.length] = [a[idx], b[j]];
      j += 1;
    }
    idx += 1;
  }
  return result;
});
/* harmony default export */ __webpack_exports__["default"] = (xprod);

/***/ }),

/***/ "./node_modules/ramda/es/zip.js":
/*!**************************************!*\
  !*** ./node_modules/ramda/es/zip.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Creates a new list out of the two supplied by pairing up equally-positioned
 * items from both lists. The returned list is truncated to the length of the
 * shorter of the two input lists.
 * Note: `zip` is equivalent to `zipWith(function(a, b) { return [a, b] })`.
 *
 * @func
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig [a] -> [b] -> [[a,b]]
 * @param {Array} list1 The first array to consider.
 * @param {Array} list2 The second array to consider.
 * @return {Array} The list made by pairing up same-indexed elements of `list1` and `list2`.
 * @example
 *
 *      R.zip([1, 2, 3], ['a', 'b', 'c']); //=> [[1, 'a'], [2, 'b'], [3, 'c']]
 * @symb R.zip([a, b, c], [d, e, f]) = [[a, d], [b, e], [c, f]]
 */
var zip = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function zip(a, b) {
  var rv = [];
  var idx = 0;
  var len = Math.min(a.length, b.length);
  while (idx < len) {
    rv[idx] = [a[idx], b[idx]];
    idx += 1;
  }
  return rv;
});
/* harmony default export */ __webpack_exports__["default"] = (zip);

/***/ }),

/***/ "./node_modules/ramda/es/zipObj.js":
/*!*****************************************!*\
  !*** ./node_modules/ramda/es/zipObj.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry2.js */ "./node_modules/ramda/es/internal/_curry2.js");


/**
 * Creates a new object out of a list of keys and a list of values.
 * Key/value pairing is truncated to the length of the shorter of the two lists.
 * Note: `zipObj` is equivalent to `pipe(zip, fromPairs)`.
 *
 * @func
 * @memberOf R
 * @since v0.3.0
 * @category List
 * @sig [String] -> [*] -> {String: *}
 * @param {Array} keys The array that will be properties on the output object.
 * @param {Array} values The list of values on the output object.
 * @return {Object} The object made by pairing up same-indexed elements of `keys` and `values`.
 * @example
 *
 *      R.zipObj(['a', 'b', 'c'], [1, 2, 3]); //=> {a: 1, b: 2, c: 3}
 */
var zipObj = /*#__PURE__*/Object(_internal_curry2_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function zipObj(keys, values) {
  var idx = 0;
  var len = Math.min(keys.length, values.length);
  var out = {};
  while (idx < len) {
    out[keys[idx]] = values[idx];
    idx += 1;
  }
  return out;
});
/* harmony default export */ __webpack_exports__["default"] = (zipObj);

/***/ }),

/***/ "./node_modules/ramda/es/zipWith.js":
/*!******************************************!*\
  !*** ./node_modules/ramda/es/zipWith.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/_curry3.js */ "./node_modules/ramda/es/internal/_curry3.js");


/**
 * Creates a new list out of the two supplied by applying the function to each
 * equally-positioned pair in the lists. The returned list is truncated to the
 * length of the shorter of the two input lists.
 *
 * @function
 * @memberOf R
 * @since v0.1.0
 * @category List
 * @sig ((a, b) -> c) -> [a] -> [b] -> [c]
 * @param {Function} fn The function used to combine the two elements into one value.
 * @param {Array} list1 The first array to consider.
 * @param {Array} list2 The second array to consider.
 * @return {Array} The list made by combining same-indexed elements of `list1` and `list2`
 *         using `fn`.
 * @example
 *
 *      const f = (x, y) => {
 *        // ...
 *      };
 *      R.zipWith(f, [1, 2, 3], ['a', 'b', 'c']);
 *      //=> [f(1, 'a'), f(2, 'b'), f(3, 'c')]
 * @symb R.zipWith(fn, [a, b, c], [d, e, f]) = [fn(a, d), fn(b, e), fn(c, f)]
 */
var zipWith = /*#__PURE__*/Object(_internal_curry3_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function zipWith(fn, a, b) {
  var rv = [];
  var idx = 0;
  var len = Math.min(a.length, b.length);
  while (idx < len) {
    rv[idx] = fn(a[idx], b[idx]);
    idx += 1;
  }
  return rv;
});
/* harmony default export */ __webpack_exports__["default"] = (zipWith);

/***/ }),

/***/ "./node_modules/react-is/cjs/react-is.development.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-is/cjs/react-is.development.js ***!
  \***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/** @license React v16.11.0
 * react-is.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */





if (true) {
  (function() {
'use strict';

Object.defineProperty(exports, '__esModule', { value: true });

// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
// nor polyfill, then a plain number is used for performance.
var hasSymbol = typeof Symbol === 'function' && Symbol.for;
var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
// (unstable) APIs that have been removed. Can we remove the symbols?

var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;

function isValidElementType(type) {
  return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
  type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE);
}

/**
 * Forked from fbjs/warning:
 * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js
 *
 * Only change is we use console.warn instead of console.error,
 * and do nothing when 'console' is not supported.
 * This really simplifies the code.
 * ---
 * Similar to invariant but only logs a warning if the condition is not met.
 * This can be used to log issues in development environments in critical
 * paths. Removing the logging code for production environments will keep the
 * same logic and follow the same code paths.
 */
var lowPriorityWarningWithoutStack = function () {};

{
  var printWarning = function (format) {
    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
      args[_key - 1] = arguments[_key];
    }

    var argIndex = 0;
    var message = 'Warning: ' + format.replace(/%s/g, function () {
      return args[argIndex++];
    });

    if (typeof console !== 'undefined') {
      console.warn(message);
    }

    try {
      // --- Welcome to debugging React ---
      // This error was thrown as a convenience so that you can use this stack
      // to find the callsite that caused this warning to fire.
      throw new Error(message);
    } catch (x) {}
  };

  lowPriorityWarningWithoutStack = function (condition, format) {
    if (format === undefined) {
      throw new Error('`lowPriorityWarningWithoutStack(condition, format, ...args)` requires a warning ' + 'message argument');
    }

    if (!condition) {
      for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
        args[_key2 - 2] = arguments[_key2];
      }

      printWarning.apply(void 0, [format].concat(args));
    }
  };
}

var lowPriorityWarningWithoutStack$1 = lowPriorityWarningWithoutStack;

function typeOf(object) {
  if (typeof object === 'object' && object !== null) {
    var $$typeof = object.$$typeof;

    switch ($$typeof) {
      case REACT_ELEMENT_TYPE:
        var type = object.type;

        switch (type) {
          case REACT_ASYNC_MODE_TYPE:
          case REACT_CONCURRENT_MODE_TYPE:
          case REACT_FRAGMENT_TYPE:
          case REACT_PROFILER_TYPE:
          case REACT_STRICT_MODE_TYPE:
          case REACT_SUSPENSE_TYPE:
            return type;

          default:
            var $$typeofType = type && type.$$typeof;

            switch ($$typeofType) {
              case REACT_CONTEXT_TYPE:
              case REACT_FORWARD_REF_TYPE:
              case REACT_PROVIDER_TYPE:
                return $$typeofType;

              default:
                return $$typeof;
            }

        }

      case REACT_LAZY_TYPE:
      case REACT_MEMO_TYPE:
      case REACT_PORTAL_TYPE:
        return $$typeof;
    }
  }

  return undefined;
} // AsyncMode is deprecated along with isAsyncMode

var AsyncMode = REACT_ASYNC_MODE_TYPE;
var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
var ContextConsumer = REACT_CONTEXT_TYPE;
var ContextProvider = REACT_PROVIDER_TYPE;
var Element = REACT_ELEMENT_TYPE;
var ForwardRef = REACT_FORWARD_REF_TYPE;
var Fragment = REACT_FRAGMENT_TYPE;
var Lazy = REACT_LAZY_TYPE;
var Memo = REACT_MEMO_TYPE;
var Portal = REACT_PORTAL_TYPE;
var Profiler = REACT_PROFILER_TYPE;
var StrictMode = REACT_STRICT_MODE_TYPE;
var Suspense = REACT_SUSPENSE_TYPE;
var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated

function isAsyncMode(object) {
  {
    if (!hasWarnedAboutDeprecatedIsAsyncMode) {
      hasWarnedAboutDeprecatedIsAsyncMode = true;
      lowPriorityWarningWithoutStack$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
    }
  }

  return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
}
function isConcurrentMode(object) {
  return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
}
function isContextConsumer(object) {
  return typeOf(object) === REACT_CONTEXT_TYPE;
}
function isContextProvider(object) {
  return typeOf(object) === REACT_PROVIDER_TYPE;
}
function isElement(object) {
  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
}
function isForwardRef(object) {
  return typeOf(object) === REACT_FORWARD_REF_TYPE;
}
function isFragment(object) {
  return typeOf(object) === REACT_FRAGMENT_TYPE;
}
function isLazy(object) {
  return typeOf(object) === REACT_LAZY_TYPE;
}
function isMemo(object) {
  return typeOf(object) === REACT_MEMO_TYPE;
}
function isPortal(object) {
  return typeOf(object) === REACT_PORTAL_TYPE;
}
function isProfiler(object) {
  return typeOf(object) === REACT_PROFILER_TYPE;
}
function isStrictMode(object) {
  return typeOf(object) === REACT_STRICT_MODE_TYPE;
}
function isSuspense(object) {
  return typeOf(object) === REACT_SUSPENSE_TYPE;
}

exports.typeOf = typeOf;
exports.AsyncMode = AsyncMode;
exports.ConcurrentMode = ConcurrentMode;
exports.ContextConsumer = ContextConsumer;
exports.ContextProvider = ContextProvider;
exports.Element = Element;
exports.ForwardRef = ForwardRef;
exports.Fragment = Fragment;
exports.Lazy = Lazy;
exports.Memo = Memo;
exports.Portal = Portal;
exports.Profiler = Profiler;
exports.StrictMode = StrictMode;
exports.Suspense = Suspense;
exports.isValidElementType = isValidElementType;
exports.isAsyncMode = isAsyncMode;
exports.isConcurrentMode = isConcurrentMode;
exports.isContextConsumer = isContextConsumer;
exports.isContextProvider = isContextProvider;
exports.isElement = isElement;
exports.isForwardRef = isForwardRef;
exports.isFragment = isFragment;
exports.isLazy = isLazy;
exports.isMemo = isMemo;
exports.isPortal = isPortal;
exports.isProfiler = isProfiler;
exports.isStrictMode = isStrictMode;
exports.isSuspense = isSuspense;
  })();
}


/***/ }),

/***/ "./node_modules/react-is/index.js":
/*!****************************************!*\
  !*** ./node_modules/react-is/index.js ***!
  \****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


if (false) {} else {
  module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "./node_modules/react-is/cjs/react-is.development.js");
}


/***/ }),

/***/ "./node_modules/react-redux/lib/components/Provider.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-redux/lib/components/Provider.js ***!
  \*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports["default"] = undefined;

var _react = __webpack_require__(/*! react */ "react");

var _propTypes = __webpack_require__(/*! prop-types */ "prop-types");

var _propTypes2 = _interopRequireDefault(_propTypes);

var _storeShape = __webpack_require__(/*! ../utils/storeShape */ "./node_modules/react-redux/lib/utils/storeShape.js");

var _storeShape2 = _interopRequireDefault(_storeShape);

var _warning = __webpack_require__(/*! ../utils/warning */ "./node_modules/react-redux/lib/utils/warning.js");

var _warning2 = _interopRequireDefault(_warning);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var didWarnAboutReceivingStore = false;
function warnAboutReceivingStore() {
  if (didWarnAboutReceivingStore) {
    return;
  }
  didWarnAboutReceivingStore = true;

  (0, _warning2["default"])('<Provider> does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reactjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.');
}

var Provider = function (_Component) {
  _inherits(Provider, _Component);

  Provider.prototype.getChildContext = function getChildContext() {
    return { store: this.store };
  };

  function Provider(props, context) {
    _classCallCheck(this, Provider);

    var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));

    _this.store = props.store;
    return _this;
  }

  Provider.prototype.render = function render() {
    return _react.Children.only(this.props.children);
  };

  return Provider;
}(_react.Component);

exports["default"] = Provider;


if (true) {
  Provider.prototype.componentWillReceiveProps = function (nextProps) {
    var store = this.store;
    var nextStore = nextProps.store;


    if (store !== nextStore) {
      warnAboutReceivingStore();
    }
  };
}

Provider.propTypes = {
  store: _storeShape2["default"].isRequired,
  children: _propTypes2["default"].element.isRequired
};
Provider.childContextTypes = {
  store: _storeShape2["default"].isRequired
};

/***/ }),

/***/ "./node_modules/react-redux/lib/components/connect.js":
/*!************************************************************!*\
  !*** ./node_modules/react-redux/lib/components/connect.js ***!
  \************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

exports["default"] = connect;

var _react = __webpack_require__(/*! react */ "react");

var _storeShape = __webpack_require__(/*! ../utils/storeShape */ "./node_modules/react-redux/lib/utils/storeShape.js");

var _storeShape2 = _interopRequireDefault(_storeShape);

var _shallowEqual = __webpack_require__(/*! ../utils/shallowEqual */ "./node_modules/react-redux/lib/utils/shallowEqual.js");

var _shallowEqual2 = _interopRequireDefault(_shallowEqual);

var _wrapActionCreators = __webpack_require__(/*! ../utils/wrapActionCreators */ "./node_modules/react-redux/lib/utils/wrapActionCreators.js");

var _wrapActionCreators2 = _interopRequireDefault(_wrapActionCreators);

var _warning = __webpack_require__(/*! ../utils/warning */ "./node_modules/react-redux/lib/utils/warning.js");

var _warning2 = _interopRequireDefault(_warning);

var _isPlainObject = __webpack_require__(/*! lodash/isPlainObject */ "./node_modules/lodash/isPlainObject.js");

var _isPlainObject2 = _interopRequireDefault(_isPlainObject);

var _hoistNonReactStatics = __webpack_require__(/*! hoist-non-react-statics */ "./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js");

var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);

var _invariant = __webpack_require__(/*! invariant */ "./node_modules/invariant/browser.js");

var _invariant2 = _interopRequireDefault(_invariant);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var defaultMapStateToProps = function defaultMapStateToProps(state) {
  return {};
}; // eslint-disable-line no-unused-vars
var defaultMapDispatchToProps = function defaultMapDispatchToProps(dispatch) {
  return { dispatch: dispatch };
};
var defaultMergeProps = function defaultMergeProps(stateProps, dispatchProps, parentProps) {
  return _extends({}, parentProps, stateProps, dispatchProps);
};

function getDisplayName(WrappedComponent) {
  return WrappedComponent.displayName || WrappedComponent.name || 'Component';
}

var errorObject = { value: null };
function tryCatch(fn, ctx) {
  try {
    return fn.apply(ctx);
  } catch (e) {
    errorObject.value = e;
    return errorObject;
  }
}

// Helps track hot reloading.
var nextVersion = 0;

function connect(mapStateToProps, mapDispatchToProps, mergeProps) {
  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};

  var shouldSubscribe = Boolean(mapStateToProps);
  var mapState = mapStateToProps || defaultMapStateToProps;

  var mapDispatch = void 0;
  if (typeof mapDispatchToProps === 'function') {
    mapDispatch = mapDispatchToProps;
  } else if (!mapDispatchToProps) {
    mapDispatch = defaultMapDispatchToProps;
  } else {
    mapDispatch = (0, _wrapActionCreators2["default"])(mapDispatchToProps);
  }

  var finalMergeProps = mergeProps || defaultMergeProps;
  var _options$pure = options.pure,
      pure = _options$pure === undefined ? true : _options$pure,
      _options$withRef = options.withRef,
      withRef = _options$withRef === undefined ? false : _options$withRef;

  var checkMergedEquals = pure && finalMergeProps !== defaultMergeProps;

  // Helps track hot reloading.
  var version = nextVersion++;

  return function wrapWithConnect(WrappedComponent) {
    var connectDisplayName = 'Connect(' + getDisplayName(WrappedComponent) + ')';

    function checkStateShape(props, methodName) {
      if (!(0, _isPlainObject2["default"])(props)) {
        (0, _warning2["default"])(methodName + '() in ' + connectDisplayName + ' must return a plain object. ' + ('Instead received ' + props + '.'));
      }
    }

    function computeMergedProps(stateProps, dispatchProps, parentProps) {
      var mergedProps = finalMergeProps(stateProps, dispatchProps, parentProps);
      if (true) {
        checkStateShape(mergedProps, 'mergeProps');
      }
      return mergedProps;
    }

    var Connect = function (_Component) {
      _inherits(Connect, _Component);

      Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate() {
        return !pure || this.haveOwnPropsChanged || this.hasStoreStateChanged;
      };

      function Connect(props, context) {
        _classCallCheck(this, Connect);

        var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));

        _this.version = version;
        _this.store = props.store || context.store;

        (0, _invariant2["default"])(_this.store, 'Could not find "store" in either the context or ' + ('props of "' + connectDisplayName + '". ') + 'Either wrap the root component in a <Provider>, ' + ('or explicitly pass "store" as a prop to "' + connectDisplayName + '".'));

        var storeState = _this.store.getState();
        _this.state = { storeState: storeState };
        _this.clearCache();
        return _this;
      }

      Connect.prototype.computeStateProps = function computeStateProps(store, props) {
        if (!this.finalMapStateToProps) {
          return this.configureFinalMapState(store, props);
        }

        var state = store.getState();
        var stateProps = this.doStatePropsDependOnOwnProps ? this.finalMapStateToProps(state, props) : this.finalMapStateToProps(state);

        if (true) {
          checkStateShape(stateProps, 'mapStateToProps');
        }
        return stateProps;
      };

      Connect.prototype.configureFinalMapState = function configureFinalMapState(store, props) {
        var mappedState = mapState(store.getState(), props);
        var isFactory = typeof mappedState === 'function';

        this.finalMapStateToProps = isFactory ? mappedState : mapState;
        this.doStatePropsDependOnOwnProps = this.finalMapStateToProps.length !== 1;

        if (isFactory) {
          return this.computeStateProps(store, props);
        }

        if (true) {
          checkStateShape(mappedState, 'mapStateToProps');
        }
        return mappedState;
      };

      Connect.prototype.computeDispatchProps = function computeDispatchProps(store, props) {
        if (!this.finalMapDispatchToProps) {
          return this.configureFinalMapDispatch(store, props);
        }

        var dispatch = store.dispatch;

        var dispatchProps = this.doDispatchPropsDependOnOwnProps ? this.finalMapDispatchToProps(dispatch, props) : this.finalMapDispatchToProps(dispatch);

        if (true) {
          checkStateShape(dispatchProps, 'mapDispatchToProps');
        }
        return dispatchProps;
      };

      Connect.prototype.configureFinalMapDispatch = function configureFinalMapDispatch(store, props) {
        var mappedDispatch = mapDispatch(store.dispatch, props);
        var isFactory = typeof mappedDispatch === 'function';

        this.finalMapDispatchToProps = isFactory ? mappedDispatch : mapDispatch;
        this.doDispatchPropsDependOnOwnProps = this.finalMapDispatchToProps.length !== 1;

        if (isFactory) {
          return this.computeDispatchProps(store, props);
        }

        if (true) {
          checkStateShape(mappedDispatch, 'mapDispatchToProps');
        }
        return mappedDispatch;
      };

      Connect.prototype.updateStatePropsIfNeeded = function updateStatePropsIfNeeded() {
        var nextStateProps = this.computeStateProps(this.store, this.props);
        if (this.stateProps && (0, _shallowEqual2["default"])(nextStateProps, this.stateProps)) {
          return false;
        }

        this.stateProps = nextStateProps;
        return true;
      };

      Connect.prototype.updateDispatchPropsIfNeeded = function updateDispatchPropsIfNeeded() {
        var nextDispatchProps = this.computeDispatchProps(this.store, this.props);
        if (this.dispatchProps && (0, _shallowEqual2["default"])(nextDispatchProps, this.dispatchProps)) {
          return false;
        }

        this.dispatchProps = nextDispatchProps;
        return true;
      };

      Connect.prototype.updateMergedPropsIfNeeded = function updateMergedPropsIfNeeded() {
        var nextMergedProps = computeMergedProps(this.stateProps, this.dispatchProps, this.props);
        if (this.mergedProps && checkMergedEquals && (0, _shallowEqual2["default"])(nextMergedProps, this.mergedProps)) {
          return false;
        }

        this.mergedProps = nextMergedProps;
        return true;
      };

      Connect.prototype.isSubscribed = function isSubscribed() {
        return typeof this.unsubscribe === 'function';
      };

      Connect.prototype.trySubscribe = function trySubscribe() {
        if (shouldSubscribe && !this.unsubscribe) {
          this.unsubscribe = this.store.subscribe(this.handleChange.bind(this));
          this.handleChange();
        }
      };

      Connect.prototype.tryUnsubscribe = function tryUnsubscribe() {
        if (this.unsubscribe) {
          this.unsubscribe();
          this.unsubscribe = null;
        }
      };

      Connect.prototype.componentDidMount = function componentDidMount() {
        this.trySubscribe();
      };

      Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
        if (!pure || !(0, _shallowEqual2["default"])(nextProps, this.props)) {
          this.haveOwnPropsChanged = true;
        }
      };

      Connect.prototype.componentWillUnmount = function componentWillUnmount() {
        this.tryUnsubscribe();
        this.clearCache();
      };

      Connect.prototype.clearCache = function clearCache() {
        this.dispatchProps = null;
        this.stateProps = null;
        this.mergedProps = null;
        this.haveOwnPropsChanged = true;
        this.hasStoreStateChanged = true;
        this.haveStatePropsBeenPrecalculated = false;
        this.statePropsPrecalculationError = null;
        this.renderedElement = null;
        this.finalMapDispatchToProps = null;
        this.finalMapStateToProps = null;
      };

      Connect.prototype.handleChange = function handleChange() {
        if (!this.unsubscribe) {
          return;
        }

        var storeState = this.store.getState();
        var prevStoreState = this.state.storeState;
        if (pure && prevStoreState === storeState) {
          return;
        }

        if (pure && !this.doStatePropsDependOnOwnProps) {
          var haveStatePropsChanged = tryCatch(this.updateStatePropsIfNeeded, this);
          if (!haveStatePropsChanged) {
            return;
          }
          if (haveStatePropsChanged === errorObject) {
            this.statePropsPrecalculationError = errorObject.value;
          }
          this.haveStatePropsBeenPrecalculated = true;
        }

        this.hasStoreStateChanged = true;
        this.setState({ storeState: storeState });
      };

      Connect.prototype.getWrappedInstance = function getWrappedInstance() {
        (0, _invariant2["default"])(withRef, 'To access the wrapped instance, you need to specify ' + '{ withRef: true } as the fourth argument of the connect() call.');

        return this.refs.wrappedInstance;
      };

      Connect.prototype.render = function render() {
        var haveOwnPropsChanged = this.haveOwnPropsChanged,
            hasStoreStateChanged = this.hasStoreStateChanged,
            haveStatePropsBeenPrecalculated = this.haveStatePropsBeenPrecalculated,
            statePropsPrecalculationError = this.statePropsPrecalculationError,
            renderedElement = this.renderedElement;


        this.haveOwnPropsChanged = false;
        this.hasStoreStateChanged = false;
        this.haveStatePropsBeenPrecalculated = false;
        this.statePropsPrecalculationError = null;

        if (statePropsPrecalculationError) {
          throw statePropsPrecalculationError;
        }

        var shouldUpdateStateProps = true;
        var shouldUpdateDispatchProps = true;
        if (pure && renderedElement) {
          shouldUpdateStateProps = hasStoreStateChanged || haveOwnPropsChanged && this.doStatePropsDependOnOwnProps;
          shouldUpdateDispatchProps = haveOwnPropsChanged && this.doDispatchPropsDependOnOwnProps;
        }

        var haveStatePropsChanged = false;
        var haveDispatchPropsChanged = false;
        if (haveStatePropsBeenPrecalculated) {
          haveStatePropsChanged = true;
        } else if (shouldUpdateStateProps) {
          haveStatePropsChanged = this.updateStatePropsIfNeeded();
        }
        if (shouldUpdateDispatchProps) {
          haveDispatchPropsChanged = this.updateDispatchPropsIfNeeded();
        }

        var haveMergedPropsChanged = true;
        if (haveStatePropsChanged || haveDispatchPropsChanged || haveOwnPropsChanged) {
          haveMergedPropsChanged = this.updateMergedPropsIfNeeded();
        } else {
          haveMergedPropsChanged = false;
        }

        if (!haveMergedPropsChanged && renderedElement) {
          return renderedElement;
        }

        if (withRef) {
          this.renderedElement = (0, _react.createElement)(WrappedComponent, _extends({}, this.mergedProps, {
            ref: 'wrappedInstance'
          }));
        } else {
          this.renderedElement = (0, _react.createElement)(WrappedComponent, this.mergedProps);
        }

        return this.renderedElement;
      };

      return Connect;
    }(_react.Component);

    Connect.displayName = connectDisplayName;
    Connect.WrappedComponent = WrappedComponent;
    Connect.contextTypes = {
      store: _storeShape2["default"]
    };
    Connect.propTypes = {
      store: _storeShape2["default"]
    };

    if (true) {
      Connect.prototype.componentWillUpdate = function componentWillUpdate() {
        if (this.version === version) {
          return;
        }

        // We are hot reloading!
        this.version = version;
        this.trySubscribe();
        this.clearCache();
      };
    }

    return (0, _hoistNonReactStatics2["default"])(Connect, WrappedComponent);
  };
}

/***/ }),

/***/ "./node_modules/react-redux/lib/index.js":
/*!***********************************************!*\
  !*** ./node_modules/react-redux/lib/index.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.connect = exports.Provider = undefined;

var _Provider = __webpack_require__(/*! ./components/Provider */ "./node_modules/react-redux/lib/components/Provider.js");

var _Provider2 = _interopRequireDefault(_Provider);

var _connect = __webpack_require__(/*! ./components/connect */ "./node_modules/react-redux/lib/components/connect.js");

var _connect2 = _interopRequireDefault(_connect);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

exports.Provider = _Provider2["default"];
exports.connect = _connect2["default"];

/***/ }),

/***/ "./node_modules/react-redux/lib/utils/shallowEqual.js":
/*!************************************************************!*\
  !*** ./node_modules/react-redux/lib/utils/shallowEqual.js ***!
  \************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports["default"] = shallowEqual;
function shallowEqual(objA, objB) {
  if (objA === objB) {
    return true;
  }

  var keysA = Object.keys(objA);
  var keysB = Object.keys(objB);

  if (keysA.length !== keysB.length) {
    return false;
  }

  // Test for A's keys different from B.
  var hasOwn = Object.prototype.hasOwnProperty;
  for (var i = 0; i < keysA.length; i++) {
    if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {
      return false;
    }
  }

  return true;
}

/***/ }),

/***/ "./node_modules/react-redux/lib/utils/storeShape.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-redux/lib/utils/storeShape.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

var _propTypes = __webpack_require__(/*! prop-types */ "prop-types");

var _propTypes2 = _interopRequireDefault(_propTypes);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

exports["default"] = _propTypes2["default"].shape({
  subscribe: _propTypes2["default"].func.isRequired,
  dispatch: _propTypes2["default"].func.isRequired,
  getState: _propTypes2["default"].func.isRequired
});

/***/ }),

/***/ "./node_modules/react-redux/lib/utils/warning.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-redux/lib/utils/warning.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports["default"] = warning;
/**
 * Prints a warning in the console if it exists.
 *
 * @param {String} message The warning message.
 * @returns {void}
 */
function warning(message) {
  /* eslint-disable no-console */
  if (typeof console !== 'undefined' && typeof console.error === 'function') {
    console.error(message);
  }
  /* eslint-enable no-console */
  try {
    // This error was thrown as a convenience so that if you enable
    // "break on all exceptions" in your console,
    // it would pause the execution at this line.
    throw new Error(message);
    /* eslint-disable no-empty */
  } catch (e) {}
  /* eslint-enable no-empty */
}

/***/ }),

/***/ "./node_modules/react-redux/lib/utils/wrapActionCreators.js":
/*!******************************************************************!*\
  !*** ./node_modules/react-redux/lib/utils/wrapActionCreators.js ***!
  \******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports["default"] = wrapActionCreators;

var _redux = __webpack_require__(/*! redux */ "./node_modules/redux/es/index.js");

function wrapActionCreators(actionCreators) {
  return function (dispatch) {
    return (0, _redux.bindActionCreators)(actionCreators, dispatch);
  };
}

/***/ }),

/***/ "./node_modules/reduce-reducers/dist/index.js":
/*!****************************************************!*\
  !*** ./node_modules/reduce-reducers/dist/index.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

exports.default = function () {
  for (var _len = arguments.length, reducers = Array(_len), _key = 0; _key < _len; _key++) {
    reducers[_key] = arguments[_key];
  }

  return function (previous, current) {
    return reducers.reduce(function (p, r) {
      return r(p, current);
    }, previous);
  };
};

module.exports = exports["default"];

/***/ }),

/***/ "./node_modules/redux-actions/lib/createAction.js":
/*!********************************************************!*\
  !*** ./node_modules/redux-actions/lib/createAction.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports['default'] = createAction;
function identity(t) {
  return t;
}

function createAction(type, actionCreator, metaCreator) {
  var finalActionCreator = typeof actionCreator === 'function' ? actionCreator : identity;

  return function () {
    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    var action = {
      type: type,
      payload: finalActionCreator.apply(undefined, args)
    };

    if (args.length === 1 && args[0] instanceof Error) {
      // Handle FSA errors where the payload is an Error object. Set error.
      action.error = true;
    }

    if (typeof metaCreator === 'function') {
      action.meta = metaCreator.apply(undefined, args);
    }

    return action;
  };
}

module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/redux-actions/lib/handleAction.js":
/*!********************************************************!*\
  !*** ./node_modules/redux-actions/lib/handleAction.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports['default'] = handleAction;

var _fluxStandardAction = __webpack_require__(/*! flux-standard-action */ "./node_modules/flux-standard-action/lib/index.js");

function isFunction(val) {
  return typeof val === 'function';
}

function handleAction(type, reducers) {
  return function (state, action) {
    // If action type does not match, return previous state
    if (action.type !== type) return state;

    var handlerKey = _fluxStandardAction.isError(action) ? 'throw' : 'next';

    // If function is passed instead of map, use as reducer
    if (isFunction(reducers)) {
      reducers.next = reducers['throw'] = reducers;
    }

    // Otherwise, assume an action map was passed
    var reducer = reducers[handlerKey];

    return isFunction(reducer) ? reducer(state, action) : state;
  };
}

module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/redux-actions/lib/handleActions.js":
/*!*********************************************************!*\
  !*** ./node_modules/redux-actions/lib/handleActions.js ***!
  \*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports['default'] = handleActions;

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var _handleAction = __webpack_require__(/*! ./handleAction */ "./node_modules/redux-actions/lib/handleAction.js");

var _handleAction2 = _interopRequireDefault(_handleAction);

var _ownKeys = __webpack_require__(/*! ./ownKeys */ "./node_modules/redux-actions/lib/ownKeys.js");

var _ownKeys2 = _interopRequireDefault(_ownKeys);

var _reduceReducers = __webpack_require__(/*! reduce-reducers */ "./node_modules/reduce-reducers/dist/index.js");

var _reduceReducers2 = _interopRequireDefault(_reduceReducers);

function handleActions(handlers, defaultState) {
  var reducers = _ownKeys2['default'](handlers).map(function (type) {
    return _handleAction2['default'](type, handlers[type]);
  });

  return typeof defaultState !== 'undefined' ? function (state, action) {
    if (state === undefined) state = defaultState;
    return _reduceReducers2['default'].apply(undefined, reducers)(state, action);
  } : _reduceReducers2['default'].apply(undefined, reducers);
}

module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/redux-actions/lib/index.js":
/*!*************************************************!*\
  !*** ./node_modules/redux-actions/lib/index.js ***!
  \*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var _createAction = __webpack_require__(/*! ./createAction */ "./node_modules/redux-actions/lib/createAction.js");

var _createAction2 = _interopRequireDefault(_createAction);

var _handleAction = __webpack_require__(/*! ./handleAction */ "./node_modules/redux-actions/lib/handleAction.js");

var _handleAction2 = _interopRequireDefault(_handleAction);

var _handleActions = __webpack_require__(/*! ./handleActions */ "./node_modules/redux-actions/lib/handleActions.js");

var _handleActions2 = _interopRequireDefault(_handleActions);

exports.createAction = _createAction2['default'];
exports.handleAction = _handleAction2['default'];
exports.handleActions = _handleActions2['default'];

/***/ }),

/***/ "./node_modules/redux-actions/lib/ownKeys.js":
/*!***************************************************!*\
  !*** ./node_modules/redux-actions/lib/ownKeys.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports['default'] = ownKeys;

function ownKeys(object) {
  if (typeof Reflect !== 'undefined' && typeof Reflect.ownKeys === 'function') {
    return Reflect.ownKeys(object);
  }

  var keys = Object.getOwnPropertyNames(object);

  if (typeof Object.getOwnPropertySymbols === 'function') {
    keys = keys.concat(Object.getOwnPropertySymbols(object));
  }

  return keys;
}

module.exports = exports['default'];

/***/ }),

/***/ "./node_modules/redux-thunk/es/index.js":
/*!**********************************************!*\
  !*** ./node_modules/redux-thunk/es/index.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
function createThunkMiddleware(extraArgument) {
  return function (_ref) {
    var dispatch = _ref.dispatch,
        getState = _ref.getState;
    return function (next) {
      return function (action) {
        if (typeof action === 'function') {
          return action(dispatch, getState, extraArgument);
        }

        return next(action);
      };
    };
  };
}

var thunk = createThunkMiddleware();
thunk.withExtraArgument = createThunkMiddleware;

/* harmony default export */ __webpack_exports__["default"] = (thunk);

/***/ }),

/***/ "./node_modules/redux/es/applyMiddleware.js":
/*!**************************************************!*\
  !*** ./node_modules/redux/es/applyMiddleware.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return applyMiddleware; });
/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./compose */ "./node_modules/redux/es/compose.js");
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };



/**
 * Creates a store enhancer that applies middleware to the dispatch method
 * of the Redux store. This is handy for a variety of tasks, such as expressing
 * asynchronous actions in a concise manner, or logging every action payload.
 *
 * See `redux-thunk` package as an example of the Redux middleware.
 *
 * Because middleware is potentially asynchronous, this should be the first
 * store enhancer in the composition chain.
 *
 * Note that each middleware will be given the `dispatch` and `getState` functions
 * as named arguments.
 *
 * @param {...Function} middlewares The middleware chain to be applied.
 * @returns {Function} A store enhancer applying the middleware.
 */
function applyMiddleware() {
  for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {
    middlewares[_key] = arguments[_key];
  }

  return function (createStore) {
    return function (reducer, preloadedState, enhancer) {
      var store = createStore(reducer, preloadedState, enhancer);
      var _dispatch = store.dispatch;
      var chain = [];

      var middlewareAPI = {
        getState: store.getState,
        dispatch: function dispatch(action) {
          return _dispatch(action);
        }
      };
      chain = middlewares.map(function (middleware) {
        return middleware(middlewareAPI);
      });
      _dispatch = _compose__WEBPACK_IMPORTED_MODULE_0__["default"].apply(undefined, chain)(store.dispatch);

      return _extends({}, store, {
        dispatch: _dispatch
      });
    };
  };
}

/***/ }),

/***/ "./node_modules/redux/es/bindActionCreators.js":
/*!*****************************************************!*\
  !*** ./node_modules/redux/es/bindActionCreators.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return bindActionCreators; });
function bindActionCreator(actionCreator, dispatch) {
  return function () {
    return dispatch(actionCreator.apply(undefined, arguments));
  };
}

/**
 * Turns an object whose values are action creators, into an object with the
 * same keys, but with every function wrapped into a `dispatch` call so they
 * may be invoked directly. This is just a convenience method, as you can call
 * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.
 *
 * For convenience, you can also pass a single function as the first argument,
 * and get a function in return.
 *
 * @param {Function|Object} actionCreators An object whose values are action
 * creator functions. One handy way to obtain it is to use ES6 `import * as`
 * syntax. You may also pass a single function.
 *
 * @param {Function} dispatch The `dispatch` function available on your Redux
 * store.
 *
 * @returns {Function|Object} The object mimicking the original object, but with
 * every action creator wrapped into the `dispatch` call. If you passed a
 * function as `actionCreators`, the return value will also be a single
 * function.
 */
function bindActionCreators(actionCreators, dispatch) {
  if (typeof actionCreators === 'function') {
    return bindActionCreator(actionCreators, dispatch);
  }

  if (typeof actionCreators !== 'object' || actionCreators === null) {
    throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?');
  }

  var keys = Object.keys(actionCreators);
  var boundActionCreators = {};
  for (var i = 0; i < keys.length; i++) {
    var key = keys[i];
    var actionCreator = actionCreators[key];
    if (typeof actionCreator === 'function') {
      boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);
    }
  }
  return boundActionCreators;
}

/***/ }),

/***/ "./node_modules/redux/es/combineReducers.js":
/*!**************************************************!*\
  !*** ./node_modules/redux/es/combineReducers.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return combineReducers; });
/* harmony import */ var _createStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createStore */ "./node_modules/redux/es/createStore.js");
/* harmony import */ var lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash-es/isPlainObject */ "./node_modules/lodash-es/isPlainObject.js");
/* harmony import */ var _utils_warning__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/warning */ "./node_modules/redux/es/utils/warning.js");




function getUndefinedStateErrorMessage(key, action) {
  var actionType = action && action.type;
  var actionName = actionType && '"' + actionType.toString() + '"' || 'an action';

  return 'Given action ' + actionName + ', reducer "' + key + '" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state. ' + 'If you want this reducer to hold no value, you can return null instead of undefined.';
}

function getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {
  var reducerKeys = Object.keys(reducers);
  var argumentName = action && action.type === _createStore__WEBPACK_IMPORTED_MODULE_0__["ActionTypes"].INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';

  if (reducerKeys.length === 0) {
    return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';
  }

  if (!Object(lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_1__["default"])(inputState)) {
    return 'The ' + argumentName + ' has unexpected type of "' + {}.toString.call(inputState).match(/\s([a-z|A-Z]+)/)[1] + '". Expected argument to be an object with the following ' + ('keys: "' + reducerKeys.join('", "') + '"');
  }

  var unexpectedKeys = Object.keys(inputState).filter(function (key) {
    return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];
  });

  unexpectedKeys.forEach(function (key) {
    unexpectedKeyCache[key] = true;
  });

  if (unexpectedKeys.length > 0) {
    return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('"' + unexpectedKeys.join('", "') + '" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('"' + reducerKeys.join('", "') + '". Unexpected keys will be ignored.');
  }
}

function assertReducerShape(reducers) {
  Object.keys(reducers).forEach(function (key) {
    var reducer = reducers[key];
    var initialState = reducer(undefined, { type: _createStore__WEBPACK_IMPORTED_MODULE_0__["ActionTypes"].INIT });

    if (typeof initialState === 'undefined') {
      throw new Error('Reducer "' + key + '" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined. If you don\'t want to set a value for this reducer, ' + 'you can use null instead of undefined.');
    }

    var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');
    if (typeof reducer(undefined, { type: type }) === 'undefined') {
      throw new Error('Reducer "' + key + '" returned undefined when probed with a random type. ' + ('Don\'t try to handle ' + _createStore__WEBPACK_IMPORTED_MODULE_0__["ActionTypes"].INIT + ' or other actions in "redux/*" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined, but can be null.');
    }
  });
}

/**
 * Turns an object whose values are different reducer functions, into a single
 * reducer function. It will call every child reducer, and gather their results
 * into a single state object, whose keys correspond to the keys of the passed
 * reducer functions.
 *
 * @param {Object} reducers An object whose values correspond to different
 * reducer functions that need to be combined into one. One handy way to obtain
 * it is to use ES6 `import * as reducers` syntax. The reducers may never return
 * undefined for any action. Instead, they should return their initial state
 * if the state passed to them was undefined, and the current state for any
 * unrecognized action.
 *
 * @returns {Function} A reducer function that invokes every reducer inside the
 * passed object, and builds a state object with the same shape.
 */
function combineReducers(reducers) {
  var reducerKeys = Object.keys(reducers);
  var finalReducers = {};
  for (var i = 0; i < reducerKeys.length; i++) {
    var key = reducerKeys[i];

    if (true) {
      if (typeof reducers[key] === 'undefined') {
        Object(_utils_warning__WEBPACK_IMPORTED_MODULE_2__["default"])('No reducer provided for key "' + key + '"');
      }
    }

    if (typeof reducers[key] === 'function') {
      finalReducers[key] = reducers[key];
    }
  }
  var finalReducerKeys = Object.keys(finalReducers);

  var unexpectedKeyCache = void 0;
  if (true) {
    unexpectedKeyCache = {};
  }

  var shapeAssertionError = void 0;
  try {
    assertReducerShape(finalReducers);
  } catch (e) {
    shapeAssertionError = e;
  }

  return function combination() {
    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    var action = arguments[1];

    if (shapeAssertionError) {
      throw shapeAssertionError;
    }

    if (true) {
      var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);
      if (warningMessage) {
        Object(_utils_warning__WEBPACK_IMPORTED_MODULE_2__["default"])(warningMessage);
      }
    }

    var hasChanged = false;
    var nextState = {};
    for (var _i = 0; _i < finalReducerKeys.length; _i++) {
      var _key = finalReducerKeys[_i];
      var reducer = finalReducers[_key];
      var previousStateForKey = state[_key];
      var nextStateForKey = reducer(previousStateForKey, action);
      if (typeof nextStateForKey === 'undefined') {
        var errorMessage = getUndefinedStateErrorMessage(_key, action);
        throw new Error(errorMessage);
      }
      nextState[_key] = nextStateForKey;
      hasChanged = hasChanged || nextStateForKey !== previousStateForKey;
    }
    return hasChanged ? nextState : state;
  };
}

/***/ }),

/***/ "./node_modules/redux/es/compose.js":
/*!******************************************!*\
  !*** ./node_modules/redux/es/compose.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return compose; });
/**
 * Composes single-argument functions from right to left. The rightmost
 * function can take multiple arguments as it provides the signature for
 * the resulting composite function.
 *
 * @param {...Function} funcs The functions to compose.
 * @returns {Function} A function obtained by composing the argument functions
 * from right to left. For example, compose(f, g, h) is identical to doing
 * (...args) => f(g(h(...args))).
 */

function compose() {
  for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {
    funcs[_key] = arguments[_key];
  }

  if (funcs.length === 0) {
    return function (arg) {
      return arg;
    };
  }

  if (funcs.length === 1) {
    return funcs[0];
  }

  return funcs.reduce(function (a, b) {
    return function () {
      return a(b.apply(undefined, arguments));
    };
  });
}

/***/ }),

/***/ "./node_modules/redux/es/createStore.js":
/*!**********************************************!*\
  !*** ./node_modules/redux/es/createStore.js ***!
  \**********************************************/
/*! exports provided: ActionTypes, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ActionTypes", function() { return ActionTypes; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return createStore; });
/* harmony import */ var lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash-es/isPlainObject */ "./node_modules/lodash-es/isPlainObject.js");
/* harmony import */ var symbol_observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! symbol-observable */ "./node_modules/symbol-observable/es/index.js");



/**
 * These are private action types reserved by Redux.
 * For any unknown actions, you must return the current state.
 * If the current state is undefined, you must return the initial state.
 * Do not reference these action types directly in your code.
 */
var ActionTypes = {
  INIT: '@@redux/INIT'

  /**
   * Creates a Redux store that holds the state tree.
   * The only way to change the data in the store is to call `dispatch()` on it.
   *
   * There should only be a single store in your app. To specify how different
   * parts of the state tree respond to actions, you may combine several reducers
   * into a single reducer function by using `combineReducers`.
   *
   * @param {Function} reducer A function that returns the next state tree, given
   * the current state tree and the action to handle.
   *
   * @param {any} [preloadedState] The initial state. You may optionally specify it
   * to hydrate the state from the server in universal apps, or to restore a
   * previously serialized user session.
   * If you use `combineReducers` to produce the root reducer function, this must be
   * an object with the same shape as `combineReducers` keys.
   *
   * @param {Function} [enhancer] The store enhancer. You may optionally specify it
   * to enhance the store with third-party capabilities such as middleware,
   * time travel, persistence, etc. The only store enhancer that ships with Redux
   * is `applyMiddleware()`.
   *
   * @returns {Store} A Redux store that lets you read the state, dispatch actions
   * and subscribe to changes.
   */
};function createStore(reducer, preloadedState, enhancer) {
  var _ref2;

  if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {
    enhancer = preloadedState;
    preloadedState = undefined;
  }

  if (typeof enhancer !== 'undefined') {
    if (typeof enhancer !== 'function') {
      throw new Error('Expected the enhancer to be a function.');
    }

    return enhancer(createStore)(reducer, preloadedState);
  }

  if (typeof reducer !== 'function') {
    throw new Error('Expected the reducer to be a function.');
  }

  var currentReducer = reducer;
  var currentState = preloadedState;
  var currentListeners = [];
  var nextListeners = currentListeners;
  var isDispatching = false;

  function ensureCanMutateNextListeners() {
    if (nextListeners === currentListeners) {
      nextListeners = currentListeners.slice();
    }
  }

  /**
   * Reads the state tree managed by the store.
   *
   * @returns {any} The current state tree of your application.
   */
  function getState() {
    return currentState;
  }

  /**
   * Adds a change listener. It will be called any time an action is dispatched,
   * and some part of the state tree may potentially have changed. You may then
   * call `getState()` to read the current state tree inside the callback.
   *
   * You may call `dispatch()` from a change listener, with the following
   * caveats:
   *
   * 1. The subscriptions are snapshotted just before every `dispatch()` call.
   * If you subscribe or unsubscribe while the listeners are being invoked, this
   * will not have any effect on the `dispatch()` that is currently in progress.
   * However, the next `dispatch()` call, whether nested or not, will use a more
   * recent snapshot of the subscription list.
   *
   * 2. The listener should not expect to see all state changes, as the state
   * might have been updated multiple times during a nested `dispatch()` before
   * the listener is called. It is, however, guaranteed that all subscribers
   * registered before the `dispatch()` started will be called with the latest
   * state by the time it exits.
   *
   * @param {Function} listener A callback to be invoked on every dispatch.
   * @returns {Function} A function to remove this change listener.
   */
  function subscribe(listener) {
    if (typeof listener !== 'function') {
      throw new Error('Expected listener to be a function.');
    }

    var isSubscribed = true;

    ensureCanMutateNextListeners();
    nextListeners.push(listener);

    return function unsubscribe() {
      if (!isSubscribed) {
        return;
      }

      isSubscribed = false;

      ensureCanMutateNextListeners();
      var index = nextListeners.indexOf(listener);
      nextListeners.splice(index, 1);
    };
  }

  /**
   * Dispatches an action. It is the only way to trigger a state change.
   *
   * The `reducer` function, used to create the store, will be called with the
   * current state tree and the given `action`. Its return value will
   * be considered the **next** state of the tree, and the change listeners
   * will be notified.
   *
   * The base implementation only supports plain object actions. If you want to
   * dispatch a Promise, an Observable, a thunk, or something else, you need to
   * wrap your store creating function into the corresponding middleware. For
   * example, see the documentation for the `redux-thunk` package. Even the
   * middleware will eventually dispatch plain object actions using this method.
   *
   * @param {Object} action A plain object representing “what changed”. It is
   * a good idea to keep actions serializable so you can record and replay user
   * sessions, or use the time travelling `redux-devtools`. An action must have
   * a `type` property which may not be `undefined`. It is a good idea to use
   * string constants for action types.
   *
   * @returns {Object} For convenience, the same action object you dispatched.
   *
   * Note that, if you use a custom middleware, it may wrap `dispatch()` to
   * return something else (for example, a Promise you can await).
   */
  function dispatch(action) {
    if (!Object(lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_0__["default"])(action)) {
      throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');
    }

    if (typeof action.type === 'undefined') {
      throw new Error('Actions may not have an undefined "type" property. ' + 'Have you misspelled a constant?');
    }

    if (isDispatching) {
      throw new Error('Reducers may not dispatch actions.');
    }

    try {
      isDispatching = true;
      currentState = currentReducer(currentState, action);
    } finally {
      isDispatching = false;
    }

    var listeners = currentListeners = nextListeners;
    for (var i = 0; i < listeners.length; i++) {
      var listener = listeners[i];
      listener();
    }

    return action;
  }

  /**
   * Replaces the reducer currently used by the store to calculate the state.
   *
   * You might need this if your app implements code splitting and you want to
   * load some of the reducers dynamically. You might also need this if you
   * implement a hot reloading mechanism for Redux.
   *
   * @param {Function} nextReducer The reducer for the store to use instead.
   * @returns {void}
   */
  function replaceReducer(nextReducer) {
    if (typeof nextReducer !== 'function') {
      throw new Error('Expected the nextReducer to be a function.');
    }

    currentReducer = nextReducer;
    dispatch({ type: ActionTypes.INIT });
  }

  /**
   * Interoperability point for observable/reactive libraries.
   * @returns {observable} A minimal observable of state changes.
   * For more information, see the observable proposal:
   * https://github.com/tc39/proposal-observable
   */
  function observable() {
    var _ref;

    var outerSubscribe = subscribe;
    return _ref = {
      /**
       * The minimal observable subscription method.
       * @param {Object} observer Any object that can be used as an observer.
       * The observer object should have a `next` method.
       * @returns {subscription} An object with an `unsubscribe` method that can
       * be used to unsubscribe the observable from the store, and prevent further
       * emission of values from the observable.
       */
      subscribe: function subscribe(observer) {
        if (typeof observer !== 'object') {
          throw new TypeError('Expected the observer to be an object.');
        }

        function observeState() {
          if (observer.next) {
            observer.next(getState());
          }
        }

        observeState();
        var unsubscribe = outerSubscribe(observeState);
        return { unsubscribe: unsubscribe };
      }
    }, _ref[symbol_observable__WEBPACK_IMPORTED_MODULE_1__["default"]] = function () {
      return this;
    }, _ref;
  }

  // When a store is created, an "INIT" action is dispatched so that every
  // reducer returns their initial state. This effectively populates
  // the initial state tree.
  dispatch({ type: ActionTypes.INIT });

  return _ref2 = {
    dispatch: dispatch,
    subscribe: subscribe,
    getState: getState,
    replaceReducer: replaceReducer
  }, _ref2[symbol_observable__WEBPACK_IMPORTED_MODULE_1__["default"]] = observable, _ref2;
}

/***/ }),

/***/ "./node_modules/redux/es/index.js":
/*!****************************************!*\
  !*** ./node_modules/redux/es/index.js ***!
  \****************************************/
/*! exports provided: createStore, combineReducers, bindActionCreators, applyMiddleware, compose */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _createStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createStore */ "./node_modules/redux/es/createStore.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createStore", function() { return _createStore__WEBPACK_IMPORTED_MODULE_0__["default"]; });

/* harmony import */ var _combineReducers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./combineReducers */ "./node_modules/redux/es/combineReducers.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineReducers", function() { return _combineReducers__WEBPACK_IMPORTED_MODULE_1__["default"]; });

/* harmony import */ var _bindActionCreators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./bindActionCreators */ "./node_modules/redux/es/bindActionCreators.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bindActionCreators", function() { return _bindActionCreators__WEBPACK_IMPORTED_MODULE_2__["default"]; });

/* harmony import */ var _applyMiddleware__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./applyMiddleware */ "./node_modules/redux/es/applyMiddleware.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "applyMiddleware", function() { return _applyMiddleware__WEBPACK_IMPORTED_MODULE_3__["default"]; });

/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./compose */ "./node_modules/redux/es/compose.js");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "compose", function() { return _compose__WEBPACK_IMPORTED_MODULE_4__["default"]; });

/* harmony import */ var _utils_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/warning */ "./node_modules/redux/es/utils/warning.js");







/*
* This is a dummy function to check if the function name has been altered by minification.
* If the function has been minified and NODE_ENV !== 'production', warn the user.
*/
function isCrushed() {}

if ( true && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {
  Object(_utils_warning__WEBPACK_IMPORTED_MODULE_5__["default"])('You are currently using minified code outside of NODE_ENV === \'production\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');
}



/***/ }),

/***/ "./node_modules/redux/es/utils/warning.js":
/*!************************************************!*\
  !*** ./node_modules/redux/es/utils/warning.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return warning; });
/**
 * Prints a warning in the console if it exists.
 *
 * @param {String} message The warning message.
 * @returns {void}
 */
function warning(message) {
  /* eslint-disable no-console */
  if (typeof console !== 'undefined' && typeof console.error === 'function') {
    console.error(message);
  }
  /* eslint-enable no-console */
  try {
    // This error was thrown as a convenience so that if you enable
    // "break on all exceptions" in your console,
    // it would pause the execution at this line.
    throw new Error(message);
    /* eslint-disable no-empty */
  } catch (e) {}
  /* eslint-enable no-empty */
}

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":
/*!****************************************************************************!*\
  !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!
  \****************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var stylesInDom = {};

var isOldIE = function isOldIE() {
  var memo;
  return function memorize() {
    if (typeof memo === 'undefined') {
      // Test for IE <= 9 as proposed by Browserhacks
      // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
      // Tests for existence of standard globals is to allow style-loader
      // to operate correctly into non-standard environments
      // @see https://github.com/webpack-contrib/style-loader/issues/177
      memo = Boolean(window && document && document.all && !window.atob);
    }

    return memo;
  };
}();

var getTarget = function getTarget() {
  var memo = {};
  return function memorize(target) {
    if (typeof memo[target] === 'undefined') {
      var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself

      if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
        try {
          // This will throw an exception if access to iframe is blocked
          // due to cross-origin restrictions
          styleTarget = styleTarget.contentDocument.head;
        } catch (e) {
          // istanbul ignore next
          styleTarget = null;
        }
      }

      memo[target] = styleTarget;
    }

    return memo[target];
  };
}();

function listToStyles(list, options) {
  var styles = [];
  var newStyles = {};

  for (var i = 0; i < list.length; i++) {
    var item = list[i];
    var id = options.base ? item[0] + options.base : item[0];
    var css = item[1];
    var media = item[2];
    var sourceMap = item[3];
    var part = {
      css: css,
      media: media,
      sourceMap: sourceMap
    };

    if (!newStyles[id]) {
      styles.push(newStyles[id] = {
        id: id,
        parts: [part]
      });
    } else {
      newStyles[id].parts.push(part);
    }
  }

  return styles;
}

function addStylesToDom(styles, options) {
  for (var i = 0; i < styles.length; i++) {
    var item = styles[i];
    var domStyle = stylesInDom[item.id];
    var j = 0;

    if (domStyle) {
      domStyle.refs++;

      for (; j < domStyle.parts.length; j++) {
        domStyle.parts[j](item.parts[j]);
      }

      for (; j < item.parts.length; j++) {
        domStyle.parts.push(addStyle(item.parts[j], options));
      }
    } else {
      var parts = [];

      for (; j < item.parts.length; j++) {
        parts.push(addStyle(item.parts[j], options));
      }

      stylesInDom[item.id] = {
        id: item.id,
        refs: 1,
        parts: parts
      };
    }
  }
}

function insertStyleElement(options) {
  var style = document.createElement('style');

  if (typeof options.attributes.nonce === 'undefined') {
    var nonce =  true ? __webpack_require__.nc : undefined;

    if (nonce) {
      options.attributes.nonce = nonce;
    }
  }

  Object.keys(options.attributes).forEach(function (key) {
    style.setAttribute(key, options.attributes[key]);
  });

  if (typeof options.insert === 'function') {
    options.insert(style);
  } else {
    var target = getTarget(options.insert || 'head');

    if (!target) {
      throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
    }

    target.appendChild(style);
  }

  return style;
}

function removeStyleElement(style) {
  // istanbul ignore if
  if (style.parentNode === null) {
    return false;
  }

  style.parentNode.removeChild(style);
}
/* istanbul ignore next  */


var replaceText = function replaceText() {
  var textStore = [];
  return function replace(index, replacement) {
    textStore[index] = replacement;
    return textStore.filter(Boolean).join('\n');
  };
}();

function applyToSingletonTag(style, index, remove, obj) {
  var css = remove ? '' : obj.css; // For old IE

  /* istanbul ignore if  */

  if (style.styleSheet) {
    style.styleSheet.cssText = replaceText(index, css);
  } else {
    var cssNode = document.createTextNode(css);
    var childNodes = style.childNodes;

    if (childNodes[index]) {
      style.removeChild(childNodes[index]);
    }

    if (childNodes.length) {
      style.insertBefore(cssNode, childNodes[index]);
    } else {
      style.appendChild(cssNode);
    }
  }
}

function applyToTag(style, options, obj) {
  var css = obj.css;
  var media = obj.media;
  var sourceMap = obj.sourceMap;

  if (media) {
    style.setAttribute('media', media);
  }

  if (sourceMap && btoa) {
    css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
  } // For old IE

  /* istanbul ignore if  */


  if (style.styleSheet) {
    style.styleSheet.cssText = css;
  } else {
    while (style.firstChild) {
      style.removeChild(style.firstChild);
    }

    style.appendChild(document.createTextNode(css));
  }
}

var singleton = null;
var singletonCounter = 0;

function addStyle(obj, options) {
  var style;
  var update;
  var remove;

  if (options.singleton) {
    var styleIndex = singletonCounter++;
    style = singleton || (singleton = insertStyleElement(options));
    update = applyToSingletonTag.bind(null, style, styleIndex, false);
    remove = applyToSingletonTag.bind(null, style, styleIndex, true);
  } else {
    style = insertStyleElement(options);
    update = applyToTag.bind(null, style, options);

    remove = function remove() {
      removeStyleElement(style);
    };
  }

  update(obj);
  return function updateStyle(newObj) {
    if (newObj) {
      if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {
        return;
      }

      update(obj = newObj);
    } else {
      remove();
    }
  };
}

module.exports = function (list, options) {
  options = options || {};
  options.attributes = typeof options.attributes === 'object' ? options.attributes : {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
  // tags it will allow on a page

  if (!options.singleton && typeof options.singleton !== 'boolean') {
    options.singleton = isOldIE();
  }

  var styles = listToStyles(list, options);
  addStylesToDom(styles, options);
  return function update(newList) {
    var mayRemove = [];

    for (var i = 0; i < styles.length; i++) {
      var item = styles[i];
      var domStyle = stylesInDom[item.id];

      if (domStyle) {
        domStyle.refs--;
        mayRemove.push(domStyle);
      }
    }

    if (newList) {
      var newStyles = listToStyles(newList, options);
      addStylesToDom(newStyles, options);
    }

    for (var _i = 0; _i < mayRemove.length; _i++) {
      var _domStyle = mayRemove[_i];

      if (_domStyle.refs === 0) {
        for (var j = 0; j < _domStyle.parts.length; j++) {
          _domStyle.parts[j]();
        }

        delete stylesInDom[_domStyle.id];
      }
    }
  };
};

/***/ }),

/***/ "./node_modules/symbol-observable/es/index.js":
/*!****************************************************!*\
  !*** ./node_modules/symbol-observable/es/index.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* WEBPACK VAR INJECTION */(function(global, module) {/* harmony import */ var _ponyfill_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ponyfill.js */ "./node_modules/symbol-observable/es/ponyfill.js");
/* global window */


var root;

if (typeof self !== 'undefined') {
  root = self;
} else if (typeof window !== 'undefined') {
  root = window;
} else if (typeof global !== 'undefined') {
  root = global;
} else if (true) {
  root = module;
} else {}

var result = Object(_ponyfill_js__WEBPACK_IMPORTED_MODULE_0__["default"])(root);
/* harmony default export */ __webpack_exports__["default"] = (result);

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"), __webpack_require__(/*! ./../../webpack/buildin/harmony-module.js */ "./node_modules/webpack/buildin/harmony-module.js")(module)))

/***/ }),

/***/ "./node_modules/symbol-observable/es/ponyfill.js":
/*!*******************************************************!*\
  !*** ./node_modules/symbol-observable/es/ponyfill.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return symbolObservablePonyfill; });
function symbolObservablePonyfill(root) {
	var result;
	var Symbol = root.Symbol;

	if (typeof Symbol === 'function') {
		if (Symbol.observable) {
			result = Symbol.observable;
		} else {
			result = Symbol('observable');
			Symbol.observable = result;
		}
	} else {
		result = '@@observable';
	}

	return result;
};


/***/ }),

/***/ "./node_modules/uniqid/index.js":
/*!**************************************!*\
  !*** ./node_modules/uniqid/index.js ***!
  \**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(process) {/* 
(The MIT License)
Copyright (c) 2014-2019 Halász Ádám <mail@adamhalasz.com>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
//  Unique Hexatridecimal ID Generator
// ================================================
//  Dependencies
// ================================================
var pid = process && process.pid ? process.pid.toString(36) : '';
var address = '';

if (false) { var i, length, networkInterface, interface_key, mac, networkInterfaces; } //  Exports
// ================================================


module.exports = module.exports["default"] = function () {
  var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
  var suffix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
  return prefix + address + pid + now().toString(36) + suffix;
};

module.exports.process = function () {
  var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
  var suffix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
  return prefix + pid + now().toString(36) + suffix;
};

module.exports.time = function () {
  var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
  var suffix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
  return prefix + now().toString(36) + suffix;
}; //  Helpers
// ================================================


function now() {
  var time = Date.now();
  var last = now.last || time;
  return now.last = time > last ? time : last + 1;
}
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../process/browser.js */ "./node_modules/process/browser.js")))

/***/ }),

/***/ "./node_modules/viz.js/viz.js":
/*!************************************!*\
  !*** ./node_modules/viz.js/viz.js ***!
  \************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(process, Buffer) {/*
Viz.js 1.7.1 (Graphviz 2.40.1, Expat 2.1.0, Emscripten 1.37.9)
Copyright (c) 2014-2017 Michael Daines
Licensed under MIT license

This distribution contains other software in object code form:

Graphviz
Licensed under Eclipse Public License - v 1.0
http://www.graphviz.org

Expat
Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd and Clark Cooper
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Expat maintainers.
Licensed under MIT license
http://www.libexpat.org

zlib
Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler
http://www.zlib.net/zlib_license.html
*/
(function(global) {
var Module = function(Module) {
  Module = Module || {};
  var Module = Module;

var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&"function"==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=console.log;if(!Module["printErr"])Module["printErr"]=console.warn;var nodeFS;var nodePath;Module["read"]=function read(filename,binary){if(!nodeFS)nodeFS=__webpack_require__(/*! fs */ 1);if(!nodePath)nodePath=__webpack_require__(/*! path */ 2);filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(true){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=(function(status,toThrow){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return xhr.response}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.warn(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){abort("NO_DYNAMIC_EXECUTION=1 was set, cannot eval")}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}if(!Module["quit"]){Module["quit"]=(function(status,toThrow){throw toThrow})}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var Runtime={setTempRet0:(function(value){tempRet0=value;return value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){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(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i<Runtime.functionPointers.length;i++){if(!Runtime.functionPointers[i]){Runtime.functionPointers[i]=func;return 2*(1+i)}}throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."}),removeFunction:(function(index){Runtime.functionPointers[(index-2)/2]=null}),warnOnce:(function(text){if(!Runtime.warnOnce.shown)Runtime.warnOnce.shown={};if(!Runtime.warnOnce.shown[text]){Runtime.warnOnce.shown[text]=1;Module.printErr(text)}}),funcWrappers:{},getFuncWrapper:(function(func,sig){assert(sig);if(!Runtime.funcWrappers[sig]){Runtime.funcWrappers[sig]={}}var sigCache=Runtime.funcWrappers[sig];if(!sigCache[func]){if(sig.length===1){sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func)}}else if(sig.length===2){sigCache[func]=function dynCall_wrapper(arg){return Runtime.dynCall(sig,func,[arg])}}else{sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func,Array.prototype.slice.call(arguments))}}}return sigCache[func]}),getCompilerSetting:(function(name){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"}),stackAlloc:(function(size){var ret=STACKTOP;STACKTOP=STACKTOP+size|0;STACKTOP=STACKTOP+15&-16;return ret}),staticAlloc:(function(size){var ret=STATICTOP;STATICTOP=STATICTOP+size|0;STATICTOP=STATICTOP+15&-16;return ret}),dynamicAlloc:(function(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=(ret+size+15|0)&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];if(!func){abort("NO_DYNAMIC_EXECUTION=1 was set, cannot eval")}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=Runtime.stackAlloc(len);stringToUTF8(str,ret,len)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=Runtime.stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);if(returnType==="string")ret=Pointer_stringify(ret);if(stack!==0){if(opts&&opts.async){EmterpreterAsync.asyncFinalizers.push((function(){Runtime.stackRestore(stack)}));return}Runtime.stackRestore(stack)}return ret};cwrap=function cwrap(ident,returnType,argTypes){return(function(){return ccall(ident,returnType,argTypes,arguments)})}}))();Module["ccall"]=ccall;function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}var ALLOC_NORMAL=0;var ALLOC_STATIC=2;var ALLOC_NONE=4;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[typeof _malloc==="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr<stop;ptr+=4){HEAP32[ptr>>2]=0}stop=ret+size;while(ptr<stop){HEAP8[ptr++>>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i<size){var curr=slab[i];if(typeof curr==="function"){curr=Runtime.getFunctionIndex(curr)}type=singleType||types[i];if(type===0){i++;continue}if(type=="i64")type="i32";setValue(ret+i,curr,type);if(previousType!==type){typeSize=Runtime.getNativeTypeSize(type);previousType=type}i+=typeSize}return ret}function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];if(__cxa_demangle_func){try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=__cxa_demangle_func(buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}return func}Runtime.warnOnce("warning: build with  -s DEMANGLE_SUPPORT=1  to link in libcxxabi demangling");return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}var PAGE_SIZE=16384;var HEAP;var buffer;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with  -s TOTAL_MEMORY=X  with X higher than the current value "+TOTAL_MEMORY+", (2) compile with  -s ALLOW_MEMORY_GROWTH=1  which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with  -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(TOTAL_MEMORY<TOTAL_STACK)Module.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")");if(Module["buffer"]){buffer=Module["buffer"]}else{{buffer=new ArrayBuffer(TOTAL_MEMORY)}}updateGlobalBufferViews();function getTotalMemory(){return TOTAL_MEMORY}HEAP32[0]=1668509029;HEAP16[1]=25459;if(HEAPU8[2]!==115||HEAPU8[3]!==99)throw"Runtime error: expected the system to be little-endian!";Module["HEAP"]=HEAP;Module["buffer"]=buffer;Module["HEAP8"]=HEAP8;Module["HEAP16"]=HEAP16;Module["HEAP32"]=HEAP32;Module["HEAPU8"]=HEAPU8;Module["HEAPU16"]=HEAPU16;Module["HEAPU32"]=HEAPU32;Module["HEAPF32"]=HEAPF32;Module["HEAPF64"]=HEAPF64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];if(!Math["trunc"])Math["trunc"]=(function(x){return x<0?Math.ceil(x):Math.floor(x)});Math.trunc=Math["trunc"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_round=Math.round;var Math_min=Math.min;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};var ASM_CONSTS=[(function($0,$1){{var path=Pointer_stringify($0);var data=Pointer_stringify($1);FS.createPath("/",PATH.dirname(path));FS.writeFile(PATH.join("/",path),data)}})];function _emscripten_asm_const_iii(code,a0,a1){return ASM_CONSTS[code](a0,a1)}STATIC_BASE=8;STATICTOP=STATIC_BASE+197520;__ATINIT__.push();allocate([0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,32,193,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,64,0,0,0,0,0,0,82,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,64,0,0,0,0,0,0,82,64,0,32,193,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,64,0,0,0,0,0,0,82,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,64,0,0,0,0,0,0,82,64,2,16,0,0,0,0,0,0,0,0,0,0,0,0,16,64,200,47,0,0,8,0,0,0,1,0,0,0,0,0,0,0,2,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,150,64,0,0,0,0,0,128,150,64,4,144,195,0,0,0,0,0,0,0,0,0,0,0,16,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,64,0,0,0,0,0,0,88,64,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,64,0,0,0,0,0,0,88,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,64,0,0,0,0,0,0,82,64,0,32,3,2,0,0,0,0,0,0,0,0,0,0,16,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,66,64,0,0,0,0,0,0,66,64,0,0,0,0,0,32,131,64,0,0,0,0,0,192,136,64,0,0,0,0,0,0,82,64,0,0,0,0,0,0,82,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,64,0,0,0,0,0,0,66,64,0,0,0,0,0,32,131,64,0,0,0,0,0,192,136,64,0,0,0,0,0,0,82,64,0,0,0,0,0,0,82,64,0,176,193,0,0,0,0,0,0,0,0,0,0,0,16,64,104,54,0,0,147,0,0,0,1,0,0,0,0,0,0,0,64,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,64,0,0,0,0,0,0,82,64,0,16,0,2,0,0,0,0,0,0,0,0,0,0,16,64,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,64,0,0,0,0,0,0,88,64,0,176,193,0,0,0,0,0,0,0,0,0,0,0,0,0,68,58,0,0,16,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,64,0,0,0,0,0,0,88,64,64,32,62,3,0,0,0,0,0,0,0,0,0,0,16,64,76,59,0,0,122,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,64,0,0,0,0,0,0,82,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,64,0,0,0,0,0,0,82,64,255,255,255,255,255,255,239,127,255,255,255,255,255,255,239,127,255,255,255,255,255,255,239,255,255,255,255,255,255,255,239,255,0,0,0,0,0,0,248,63,51,51,51,51,51,51,211,63,60,0,0,0,0,0,0,0,154,153,153,153,153,153,169,63,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,240,63,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,240,63,2,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,224,63,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,240,63,4,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,51,51,51,51,51,51,243,63,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,154,153,153,153,153,153,233,63,6,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,240,63,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,224,63,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,255,255,255,255,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,191,0,0,0,0,0,0,240,191,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,51,51,51,51,51,211,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,128,70,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,154,153,153,153,153,153,217,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,51,51,51,51,51,227,63,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,123,20,174,71,225,122,228,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,40,86,0,0,1,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,128,102,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,128,102,64,154,153,153,153,153,153,217,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,128,102,64,123,20,174,71,225,122,228,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,128,70,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,22,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,1,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,86,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,191,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,88,168,53,205,59,78,213,63,37,117,2,154,8,27,218,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,44,212,154,230,29,167,234,63,106,222,113,138,142,228,232,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,224,63,93,220,70,3,120,11,226,63,0,0,0,0,0,0,208,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,208,63,211,188,227,20,29,201,209,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,93,220,70,3,120,11,226,63,93,220,70,3,120,11,226,63,93,220,70,3,120,11,226,63,13,113,172,139,219,104,220,63,100,93,220,70,3,120,237,63,210,111,95,7,206,25,231,63,16,122,54,171,62,87,229,63,16,122,54,171,62,87,229,63,210,111,95,7,206,25,231,63,120,11,36,40,126,140,227,63,181,21,251,203,238,201,225,63,210,111,95,7,206,25,231,63,210,111,95,7,206,25,231,63,88,168,53,205,59,78,213,63,136,133,90,211,188,227,216,63,210,111,95,7,206,25,231,63,120,11,36,40,126,140,227,63,196,66,173,105,222,113,236,63,210,111,95,7,206,25,231,63,210,111,95,7,206,25,231,63,181,21,251,203,238,201,225,63,210,111,95,7,206,25,231,63,16,122,54,171,62,87,229,63,181,21,251,203,238,201,225,63,120,11,36,40,126,140,227,63,210,111,95,7,206,25,231,63,210,111,95,7,206,25,231,63,134,56,214,197,109,52,238,63,210,111,95,7,206,25,231,63,210,111,95,7,206,25,231,63,120,11,36,40,126,140,227,63,88,168,53,205,59,78,213,63,211,188,227,20,29,201,209,63,88,168,53,205,59,78,213,63,166,10,70,37,117,2,222,63,0,0,0,0,0,0,224,63,88,168,53,205,59,78,213,63,13,113,172,139,219,104,220,63,0,0,0,0,0,0,224,63,13,113,172,139,219,104,220,63,0,0,0,0,0,0,224,63,13,113,172,139,219,104,220,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,0,0,0,0,0,0,224,63,211,188,227,20,29,201,209,63,106,222,113,138,142,228,232,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,88,168,53,205,59,78,213,63,136,133,90,211,188,227,216,63,211,188,227,20,29,201,209,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,210,111,95,7,206,25,231,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,13,113,172,139,219,104,220,63,244,108,86,125,174,182,222,63,17,54,60,189,82,150,201,63,244,108,86,125,174,182,222,63,59,1,77,132,13,79,225,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,62,232,217,172,250,92,197,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,130,115,70,148,246,6,199,63,13,113,172,139,219,104,220,63,0,0,0,0,0,0,224,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,7,240,22,72,80,252,220,63,162,180,55,248,194,100,214,63,88,168,53,205,59,78,213,63,13,113,172,139,219,104,220,63,13,113,172,139,219,104,220,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,208,63,13,113,172,139,219,104,220,63,0,0,0,0,0,0,208,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,208,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,208,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,196,66,173,105,222,113,236,63,0,0,0,0,0,0,208,63,127,217,61,121,88,168,209,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,120,11,36,40,126,140,227,63,210,111,95,7,206,25,231,63,196,66,173,105,222,113,236,63,19,242,65,207,102,213,211,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,16,122,54,171,62,87,229,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,211,188,227,20,29,201,209,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,211,188,227,20,29,201,209,63,0,0,0,0,0,0,224,63,210,111,95,7,206,25,231,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,244,108,86,125,174,182,214,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,196,66,173,105,222,113,236,63,16,122,54,171,62,87,229,63,245,219,215,129,115,70,204,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,136,133,90,211,188,227,216,63,1,77,132,13,79,175,226,63,211,188,227,20,29,201,209,63,88,168,53,205,59,78,213,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,1,77,132,13,79,175,226,63,1,77,132,13,79,175,226,63,1,77,132,13,79,175,226,63,181,21,251,203,238,201,225,63,204,93,75,200,7,61,240,63,16,122,54,171,62,87,229,63,16,122,54,171,62,87,229,63,210,111,95,7,206,25,231,63,210,111,95,7,206,25,231,63,16,122,54,171,62,87,229,63,120,11,36,40,126,140,227,63,106,222,113,138,142,228,232,63,210,111,95,7,206,25,231,63,211,188,227,20,29,201,209,63,0,0,0,0,0,0,224,63,16,122,54,171,62,87,229,63,181,21,251,203,238,201,225,63,44,212,154,230,29,167,234,63,210,111,95,7,206,25,231,63,106,222,113,138,142,228,232,63,16,122,54,171,62,87,229,63,106,222,113,138,142,228,232,63,210,111,95,7,206,25,231,63,16,122,54,171,62,87,229,63,120,11,36,40,126,140,227,63,210,111,95,7,206,25,231,63,16,122,54,171,62,87,229,63,134,56,214,197,109,52,238,63,16,122,54,171,62,87,229,63,16,122,54,171,62,87,229,63,120,11,36,40,126,140,227,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,166,10,70,37,117,2,222,63,181,21,251,203,238,201,225,63,72,191,125,29,56,103,204,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,0,0,0,0,0,0,224,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,211,188,227,20,29,201,209,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,72,191,125,29,56,103,204,63,72,191,125,29,56,103,204,63,0,0,0,0,0,0,224,63,72,191,125,29,56,103,204,63,44,212,154,230,29,167,234,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,224,63,211,188,227,20,29,201,209,63,181,21,251,203,238,201,225,63,0,0,0,0,0,0,224,63,210,111,95,7,206,25,231,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,2,154,8,27,158,94,213,63,224,190,14,156,51,162,208,63,2,154,8,27,158,94,213,63,1,77,132,13,79,175,226,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,88,168,53,205,59,78,213,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,62,232,217,172,250,92,197,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,29,56,103,68,105,111,200,63,88,168,53,205,59,78,213,63,181,21,251,203,238,201,225,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,211,188,227,20,29,201,209,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,231,29,167,232,72,46,225,63,162,180,55,248,194,100,214,63,72,191,125,29,56,103,204,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,181,21,251,203,238,201,225,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,211,188,227,20,29,201,209,63,120,11,36,40,126,140,227,63,211,188,227,20,29,201,209,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,211,188,227,20,29,201,209,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,211,188,227,20,29,201,209,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,240,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,0,0,0,0,0,0,240,63,211,188,227,20,29,201,209,63,234,149,178,12,113,172,215,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([181,21,251,203,238,201,225,63,106,222,113,138,142,228,232,63,0,0,0,0,0,0,240,63,152,221,147,135,133,90,215,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,196,66,173,105,222,113,236,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,72,191,125,29,56,103,204,63,120,11,36,40,126,140,227,63,134,56,214,197,109,52,238,63,120,11,36,40,126,140,227,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,81,160,79,228,73,210,14,64,180,200,118,190,159,58,53,192,58,34,223,165,212,37,213,191,243,130,62,71,154,46,138,63,159,229,121,112,119,214,249,191,126,253,16,27,44,156,230,63,150,236,216,8,196,235,204,63,205,206,162,119,42,224,208,63,176,227,191,64,16,32,237,191,173,161,212,94,68,219,216,63,59,161,124,230,81,150,118,63,211,110,112,249,122,132,123,63,129,204,206,162,119,42,228,191,209,173,215,244,160,160,200,63,106,223,55,25,176,63,132,63,190,202,144,25,94,255,132,63,28,150,6,126,84,195,196,191,165,73,41,232,246,226,35,64,169,217,3,173,192,144,193,63,8,196,144,65,147,105,137,63,250,68,158,36,93,51,208,191,1,240,153,54,45,194,94,63,13,156,125,47,207,148,151,63,137,181,248,20,0,227,137,63,229,169,88,70,52,203,177,191,143,0,201,207,161,103,166,191,92,181,198,251,204,180,136,63,77,164,143,84,58,179,144,63,230,199,4,161,97,214,160,191,199,105,103,28,19,247,130,191,42,127,107,229,45,112,92,191,228,87,98,84,8,154,117,63,209,241,135,85,114,4,183,63,149,212,9,104,34,60,51,192,100,35,16,175,235,119,16,192,167,33,170,240,103,120,199,63,218,255,0,107,213,174,193,63,78,40,68,192,33,84,247,191,170,72,133,177,133,32,245,63,157,104,87,33,229,39,246,63,77,46,198,192,58,142,205,63,89,107,40,181,23,209,220,191,3,63,170,97,191,39,204,63,166,71,83,61,153,127,218,63,182,129,59,80,167,60,174,63,81,76,222,0,51,223,185,191,245,118,149,255,218,11,166,63,212,165,53,188,15,246,148,63,31,173,32,188,44,220,144,63,40,44,241,128,178,201,35,64,35,90,225,76,2,138,183,63,72,163,101,81,150,41,127,63,187,180,134,247,193,158,147,63,23,168,123,83,71,125,160,191,33,43,174,224,109,148,139,63,51,115,220,132,214,30,181,191,160,120,132,137,245,252,143,63,105,53,36,238,177,244,145,191,184,205,51,122,94,191,106,63,146,62,173,162,63,52,205,191,126,176,231,198,79,62,152,191,7,35,155,80,45,199,164,63,62,24,194,123,88,185,145,191,45,124,125,173,75,141,198,63,0,0,0,64,251,33,249,63,0,0,0,0,45,68,116,62,0,0,0,128,152,70,248,60,0,0,0,96,81,204,120,59,0,0,0,128,131,27,240,57,0,0,0,64,32,37,122,56,0,0,0,128,34,130,227,54,0,0,0,0,29,243,105,53,204,5,1,0,16,43,0,0,3,0,0,0,56,45,0,0,3,0,0,0,16,48,0,0,3,0,0,0,216,48,0,0,3,0,0,0,40,50,0,0,3,0,0,0,160,53,0,0,3,0,0,0,220,56,0,0,3,0,0,0,236,46,0,0,3,0,0,0,164,57,0,0,3,0,0,0,172,58,0,0,3,0,0,0,56,63,0,0,3,0,0,0,92,61,0,0,0,0,0,0,252,44,0,0,0,0,0,0,232,47,0,0,0,0,0,0,56,48,0,0,0,0,0,0,0,50,0,0,0,0,0,0,80,50,0,0,0,0,0,0,180,56,0,0,0,0,0,0,136,46,0,0,0,0,0,0,124,57,0,0,0,0,0,0,132,58,0,0,0,0,0,0,16,63,0,0,0,0,0,0,52,61,0,0,4,0,0,0,96,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,176,217,2,0,192,217,2,0,208,217,2,0,224,217,2,0,240,217,2,0,0,218,2,0,16,218,2,0,32,218,2,0,192,217,2,0,192,217,2,0,0,218,2,0,0,218,2,0,31,0,0,0,63,0,0,0,127,0,0,0,0,0,0,0,207,134,1,0,1,0,0,0,208,43,0,0,104,0,0,0,4,0,0,0,229,9,1,0,1,0,0,0,72,44,0,0,136,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,6,1,0,1,0,0,0,0,0,0,0,224,0,0,0,0,0,0,0,136,6,1,0,1,0,0,0,0,0,0,0,224,0,0,0,1,0,0,0,143,6,1,0,1,0,0,0,0,0,0,0,168,0,0,0,2,0,0,0,153,6,1,0,1,0,0,0,0,0,0,0,224,0,0,0,3,0,0,0,163,6,1,0,1,0,0,0,0,0,0,0,224,0,0,0,4,0,0,0,177,6,1,0,1,0,0,0,0,0,0,0,224,0,0,0,5,0,0,0,187,6,1,0,1,0,0,0,0,0,0,0,224,0,0,0,6,0,0,0,200,6,1,0,1,0,0,0,0,0,0,0,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,234,9,1,0,1,0,0,0,236,45,0,0,24,1,0,0,1,0,0,0,239,9,1,0,1,0,0,0,236,45,0,0,24,1,0,0,2,0,0,0,245,9,1,0,1,0,0,0,236,45,0,0,24,1,0,0,3,0,0,0,254,9,1,0,1,0,0,0,236,45,0,0,24,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,10,1,0,1,0,0,0,0,0,0,0,112,1,0,0,1,0,0,0,18,10,1,0,1,0,0,0,0,0,0,0,112,1,0,0,2,0,0,0,29,10,1,0,1,0,0,0,0,0,0,0,56,1,0,0,3,0,0,0,43,10,1,0,1,0,0,0,0,0,0,0,56,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,1,0,0,0,6,0,0,0,2,0,0,0,2,0,0,0,7,0,0,0,2,0,0,0,0,0,0,0,143,25,2,0,148,2,2,0,37,4,2,0,101,10,2,0,92,17,2,0,155,21,2,0,27,25,2,0,44,25,2,0,0,0,0,0,114,10,1,0,1,0,0,0,80,47,0,0,168,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118,10,1,0,1,0,0,0,0,0,0,0,200,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,126,10,1,0,1,0,0,0,96,48,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,182,11,1,0,1,0,0,0,0,0,0,0,32,2,0,0,2,0,0,0,192,11,1,0,1,0,0,0,0,0,0,0,88,2,0,0,0,0,0,0,201,11,1,0,1,0,0,0,0,0,0,0,88,2,0,0,3,0,0,0,210,11,1,0,1,0,0,0,0,0,0,0,88,2,0,0,0,0,0,0,220,11,1,0,1,0,0,0,0,0,0,0,32,2,0,0,3,0,0,0,232,11,1,0,1,0,0,0,0,0,0,0,32,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,3,0,0,0,3,0,0,0,10,0,0,0,4,0,0,0,0,0,0,0,143,25,2,0,148,2,2,0,101,10,2,0,37,4,2,0,155,21,2,0,92,17,2,0,44,25,2,0,27,25,2,0,0,0,0,0,0,0,0,0,165,13,1,0,255,255,255,255,100,49,0,0,144,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,13,1,0,255,255,255,255,0,0,0,0,176,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,213,142,1,0,1,0,0,0,120,50,0,0,232,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,5,0,0,0,4,0,0,0,13,0,0,0,5,0,0,0,3,0,0,0,165,17,1,0,179,17,1,0,201,17,1,0,13,251,2,0,215,17,1,0,230,17,1,0,235,17,1,0,9,18,1,0,13,251,2,0,27,18,1,0,75,18,1,0,13,251,2,0,105,18,1,0,145,18,1,0,159,18,1,0,206,18,1,0,2,19,1,0,19,19,1,0,56,19,1,0,91,19,1,0,97,19,1,0,125,19,1,0,154,19,1,0,181,19,1,0,214,19,1,0,240,19,1,0,18,20,1,0,49,20,1,0,87,20,1,0,111,20,1,0,143,20,1,0,172,20,1,0,208,20,1,0,220,20,1,0,13,251,2,0,231,20,1,0,13,21,1,0,49,21,1,0,87,21,1,0,13,251,2,0,141,21,1,0,165,21,1,0,178,21,1,0,225,21,1,0,220,20,1,0,13,251,2,0,238,21,1,0,247,21,1,0,24,22,1,0,83,22,1,0,158,22,1,0,242,22,1,0,20,23,1,0,41,23,1,0,64,23,1,0,86,23,1,0,110,23,1,0,13,251,2,0,132,23,1,0,159,23,1,0,195,23,1,0,231,23,1,0,12,24,1,0,13,251,2,0,45,24,1,0,71,24,1,0,89,24,1,0,102,24,1,0,115,24,1,0,135,24,1,0,150,24,1,0,158,24,1,0,179,24,1,0,193,24,1,0,255,24,1,0,10,25,1,0,220,20,1,0,13,251,2,0,16,25,1,0,28,25,1,0,43,25,1,0,91,19,1,0,13,251,2,0,62,25,1,0,103,25,1,0,133,25,1,0,149,25,1,0,166,25,1,0,173,25,1,0,188,25,1,0,204,25,1,0,16,26,1,0,23,26,1,0,91,19,1,0,13,251,2,0,33,26,1,0,77,26,1,0,88,26,1,0,97,26,1,0,106,26,1,0,123,26,1,0,140,26,1,0,160,26,1,0,220,20,1,0,13,251,2,0,172,26,1,0,188,26,1,0,202,26,1,0,216,26,1,0,229,26,1,0,242,26,1,0,8,27,1,0,17,27,1,0,32,27,1,0,45,27,1,0,62,27,1,0,220,20,1,0,13,251,2,0,73,27,1,0,104,27,1,0,13,251,2,0,122,27,1,0,137,27,1,0,185,27,1,0,195,27,1,0,208,27,1,0,221,27,1,0,234,27,1,0,247,27,1,0,250,27,1,0,13,251,2,0,254,27,1,0,13,251,2,0,33,28,1,0,82,28,1,0,129,28,1,0,152,28,1,0,179,28,1,0,206,28,1,0,220,20,1,0,13,251,2,0,234,28,1,0,13,251,2,0,18,29,1,0,30,29,1,0,49,29,1,0,68,29,1,0,89,29,1,0,110,29,1,0,114,29,1,0,91,19,1,0,13,251,2,0,126,29,1,0,13,251,2,0,142,29,1,0,156,29,1,0,168,29,1,0,181,29,1,0,213,29,1,0,235,29,1,0,13,251,2,0,255,29,1,0,72,30,1,0,142,30,1,0,190,30,1,0,241,30,1,0,248,30,1,0,31,31,1,0,70,31,1,0,13,251,2,0,75,31,1,0,0,0,0,0,0,0,0,0,0,73,1,0,1,0,0,0,0,0,0,0,8,3,0,0,1,0,0,0,191,31,1,0,1,0,0,0,0,0,0,0,8,3,0,0,2,0,0,0,249,72,1,0,1,0,0,0,0,0,0,0,64,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,35,0,0,0,0,0,0,0,36,0,0,0,37,0,0,0,6,0,0,0,38,0,0,0,39,0,0,0,40,0,0,0,41,0,0,0,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,4,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,15,0,0,0,7,0,0,0,5,0,0,0,16,0,0,0,6,0,0,0,0,0,0,0,172,1,2,0,182,1,2,0,137,50,1,0,251,1,2,0,54,2,2,0,88,2,2,0,94,2,2,0,143,25,2,0,133,2,2,0,148,2,2,0,177,2,2,0,188,2,2,0,222,2,2,0,20,3,2,0,74,3,2,0,133,3,2,0,187,3,2,0,221,3,2,0,236,3,2,0,29,4,2,0,37,4,2,0,79,38,1,0,88,38,1,0,66,4,2,0,97,38,1,0,140,4,2,0,106,38,1,0,150,4,2,0,115,38,1,0,160,4,2,0,239,4,2,0,42,5,2,0,127,38,1,0,101,5,2,0,112,5,2,0,181,5,2,0,195,5,2,0,13,6,2,0,27,6,2,0,41,6,2,0,52,6,2,0,101,6,2,0,165,6,2,0,173,6,2,0,181,6,2,0,240,6,2,0,38,7,2,0,50,7,2,0,142,50,1,0,62,7,2,0,72,7,2,0,83,7,2,0,112,7,2,0,166,7,2,0,101,10,2,0,135,10,2,0,147,10,2,0,82,13,2,0,131,13,2,0,175,13,2,0,229,13,2,0,242,13,2,0,20,14,2,0,54,14,2,0,63,14,2,0,137,14,2,0,147,14,2,0,216,14,2,0,14,15,2,0,25,15,2,0,158,15,2,0,179,15,2,0,135,38,1,0,189,15,2,0,199,15,2,0,253,15,2,0,61,16,2,0,75,16,2,0,159,16,2,0,174,16,2,0,189,16,2,0,12,17,2,0,150,50,1,0,76,17,2,0,86,17,2,0,92,17,2,0,136,17,2,0,175,17,2,0,192,17,2,0,203,17,2,0,16,18,2,0,85,18,2,0,100,18,2,0,116,18,2,0,134,18,2,0,150,18,2,0,166,18,2,0,179,18,2,0,189,18,2,0,243,18,2,0,252,18,2,0,60,19,2,0,79,19,2,0,155,50,1,0,87,19,2,0,141,19,2,0,180,19,2,0,234,19,2,0,17,20,2,0,31,20,2,0,85,20,2,0,159,20,2,0,233,20,2,0,244,20,2,0,42,21,2,0,47,21,2,0,76,21,2,0,105,21,2,0,116,21,2,0,155,21,2,0,179,21,2,0,233,21,2,0,31,22,2,0,43,22,2,0,82,22,2,0,93,22,2,0,142,22,2,0,191,22,2,0,136,61,1,0,230,22,2,0,18,23,2,0,72,23,2,0,126,23,2,0,136,23,2,0,165,23,2,0,229,23,2,0,27,24,2,0,161,50,1,0,51,24,2,0,95,24,2,0,134,24,2,0,188,24,2,0,249,24,2,0,27,25,2,0,33,25,2,0,44,25,2,0,83,25,2,0,0,0,0,0,216,142,1,0,1,0,0,0,240,53,0,0,120,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,215,73,1,0,1,0,0,0,0,0,0,0,152,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,0,0,0,0,0,0,51,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,0,0,0,0,18,0,0,0,8,0,0,0,6,0,0,0,19,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,189,39,1,0,1,0,0,0,4,57,0,0,208,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,39,1,0,1,0,0,0,0,0,0,0,240,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,0,0,0,0,0,0,0,53,0,0,0,54,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,55,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,21,0,0,0,9,0,0,0,7,0,0,0,22,0,0,0,8,0,0,0,0,0,0,0,137,50,1,0,143,25,2,0,148,2,2,0,142,50,1,0,166,7,2,0,101,10,2,0,150,50,1,0,136,17,2,0,60,19,2,0,155,50,1,0,116,21,2,0,155,21,2,0,136,61,1,0,161,50,1,0,27,25,2,0,44,25,2,0,0,0,0,0,166,50,1,0,1,0,0,0,204,57,0,0,40,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,170,50,1,0,1,0,0,0,0,0,0,0,72,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,0,0,0,0,57,0,0,0,58,0,0,0,10,0,0,0,59,0,0,0,60,0,0,0,61,0,0,0,62,0,0,0,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,65,0,0,0,66,0,0,0,67,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,11,0,0,0,8,0,0,0,25,0,0,0,9,0,0,0,0,0,0,0,251,1,2,0,30,60,1,0,143,25,2,0,148,2,2,0,177,2,2,0,41,60,1,0,47,60,1,0,58,60,1,0,65,60,1,0,188,2,2,0,20,3,2,0,73,60,1,0,79,60,1,0,90,60,1,0,187,3,2,0,221,3,2,0,37,4,2,0,97,60,1,0,140,4,2,0,160,4,2,0,42,5,2,0,107,60,1,0,181,5,2,0,195,5,2,0,13,6,2,0,118,60,1,0,27,6,2,0,126,60,1,0,135,60,1,0,149,60,1,0,159,60,1,0,240,6,2,0,168,60,1,0,50,7,2,0,83,7,2,0,112,7,2,0,174,60,1,0,183,7,2,0,226,7,2,0,11,8,2,0,46,8,2,0,87,8,2,0,122,8,2,0,163,8,2,0,198,8,2,0,239,8,2,0,18,9,2,0,59,9,2,0,94,9,2,0,135,9,2,0,170,9,2,0,211,9,2,0,246,9,2,0,31,10,2,0,66,10,2,0,101,10,2,0,181,60,1,0,135,10,2,0,193,60,1,0,175,13,2,0,20,14,2,0,216,14,2,0,206,60,1,0,189,16,2,0,219,60,1,0,76,17,2,0,92,17,2,0,229,60,1,0,136,17,2,0,175,17,2,0,192,17,2,0,244,60,1,0,6,61,1,0,203,17,2,0,85,18,2,0,100,18,2,0,116,18,2,0,134,18,2,0,150,18,2,0,22,61,1,0,33,61,1,0,44,61,1,0,166,18,2,0,60,19,2,0,65,19,2,0,49,61,1,0,58,61,1,0,67,61,1,0,83,61,1,0,90,61,1,0,141,19,2,0,180,19,2,0,234,19,2,0,31,20,2,0,47,21,2,0,76,21,2,0,98,61,1,0,155,21,2,0,105,61,1,0,43,22,2,0,114,61,1,0,93,22,2,0,122,61,1,0,191,22,2,0,136,61,1,0,230,22,2,0,18,23,2,0,143,61,1,0,165,23,2,0,229,23,2,0,153,61,1,0,27,24,2,0,51,24,2,0,134,24,2,0,163,61,1,0,177,61,1,0,188,24,2,0,195,24,2,0,249,24,2,0,27,25,2,0,44,25,2,0,83,25,2,0,0,0,0,0,195,61,1,0,1,0,0,0,212,58,0,0,128,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,199,61,1,0,1,0,0,0,0,0,0,0,160,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,68,0,0,0,69,0,0,0,0,0,0,0,0,0,0,0,70,0,0,0,71,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,0,0,0,0,27,0,0,0,12,0,0,0,9,0,0,0,28,0,0,0,10,0,0,0,0,0,0,0,65,66,0,0,221,162,1,0,65,73,0,0,183,162,1,0,65,82,0,0,138,162,1,0,65,88,0,0,242,162,1,0,66,32,0,0,46,165,1,0,66,73,0,0,63,165,1,0,67,66,0,0,119,163,1,0,67,79,0,0,101,163,1,0,67,88,0,0,132,163,1,0,72,32,0,0,168,163,1,0,72,66,0,0,178,163,1,0,72,73,0,0,62,164,1,0,72,88,0,0,193,163,1,0,72,98,0,0,242,163,1,0,72,105,0,0,37,164,1,0,72,114,0,0,215,163,1,0,72,120,0,0,8,164,1,0,73,32,0,0,80,165,1,0,75,66,0,0,9,163,1,0,75,73,0,0,81,163,1,0,75,82,0,0,61,163,1,0,75,88,0,0,42,163,1,0,78,66,0,0,80,164,1,0,78,73,0,0,151,164,1,0,78,82,0,0,175,164,1,0,78,88,0,0,123,164,1,0,80,65,0,0,16,165,1,0,80,66,0,0,204,164,1,0,80,73,0,0,0,165,1,0,80,88,0,0,236,164,1,0,82,32,0,0,7,167,1,0,83,32,0,0,31,165,1,0,90,68,0,0,141,165,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,109,72,1,0,255,255,255,255,132,61,0,0,216,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,113,72,1,0,255,255,255,255,0,0,0,0,248,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,121,72,1,0,1,0,0,0,72,67,0,0,0,0,0,0,16,0,0,0,129,72,1,0,1,0,0,0,72,67,0,0,0,0,0,0,17,0,0,0,137,72,1,0,1,0,0,0,72,67,0,0,0,0,0,0,17,0,0,0,146,72,1,0,1,0,0,0,72,67,0,0,0,0,0,0,17,0,0,0,154,72,1,0,1,0,0,0,72,67,0,0,0,0,0,0,19,0,0,0,162,72,1,0,1,0,0,0,76,67,0,0,0,0,0,0,20,0,0,0,170,72,1,0,1,0,0,0,76,67,0,0,0,0,0,0,21,0,0,0,178,72,1,0,1,0,0,0,76,67,0,0,0,0,0,0,21,0,0,0,187,72,1,0,1,0,0,0,76,67,0,0,0,0,0,0,21,0,0,0,195,72,1,0,1,0,0,0,76,67,0,0,0,0,0,0,22,0,0,0,203,72,1,0,1,0,0,0,80,67,0,0,0,0,0,0,23,0,0,0,212,72,1,0,1,0,0,0,80,67,0,0,0,0,0,0,24,0,0,0,221,72,1,0,1,0,0,0,80,67,0,0,0,0,0,0,24,0,0,0,231,72,1,0,1,0,0,0,80,67,0,0,0,0,0,0,24,0,0,0,240,72,1,0,1,0,0,0,80,67,0,0,0,0,0,0,25,0,0,0,249,72,1,0,1,0,0,0,84,67,0,0,0,0,0,0,25,0,0,0,0,73,1,0,1,0,0,0,84,67,0,0,0,0,0,0,26,0,0,0,6,73,1,0,1,0,0,0,88,67,0,0,0,0,0,0,10,0,0,0,15,73,1,0,1,0,0,0,92,67,0,0,0,0,0,0,11,0,0,0,23,73,1,0,1,0,0,0,92,67,0,0,0,0,0,0,12,0,0,0,31,73,1,0,1,0,0,0,92,67,0,0,0,0,0,0,12,0,0,0,40,73,1,0,1,0,0,0,92,67,0,0,0,0,0,0,12,0,0,0,48,73,1,0,1,0,0,0,92,67,0,0,0,0,0,0,14,0,0,0,56,73,1,0,1,0,0,0,92,67,0,0,0,0,0,0,14,0,0,0,63,73,1,0,1,0,0,0,92,67,0,0,0,0,0,0,13,0,0,0,71,73,1,0,1,0,0,0,92,67,0,0,0,0,0,0,5,0,0,0,79,73,1,0,1,0,0,0,92,67,0,0,0,0,0,0,6,0,0,0,87,73,1,0,1,0,0,0,92,67,0,0,0,0,0,0,7,0,0,0,95,73,1,0,1,0,0,0,92,67,0,0,0,0,0,0,7,0,0,0,104,73,1,0,1,0,0,0,92,67,0,0,0,0,0,0,7,0,0,0,112,73,1,0,1,0,0,0,92,67,0,0,0,0,0,0,9,0,0,0,120,73,1,0,1,0,0,0,92,67,0,0,0,0,0,0,9,0,0,0,127,73,1,0,1,0,0,0,92,67,0,0,0,0,0,0,8,0,0,0,135,73,1,0,1,0,0,0,92,67,0,0,0,0,0,0,0,0,0,0,143,73,1,0,1,0,0,0,96,67,0,0,0,0,0,0,1,0,0,0,152,73,1,0,1,0,0,0,96,67,0,0,0,0,0,0,2,0,0,0,161,73,1,0,1,0,0,0,96,67,0,0,0,0,0,0,2,0,0,0,171,73,1,0,1,0,0,0,96,67,0,0,0,0,0,0,2,0,0,0,180,73,1,0,1,0,0,0,96,67,0,0,0,0,0,0,4,0,0,0,189,73,1,0,1,0,0,0,96,67,0,0,0,0,0,0,4,0,0,0,197,73,1,0,1,0,0,0,96,67,0,0,0,0,0,0,3,0,0,0,206,73,1,0,1,0,0,0,96,67,0,0,0,0,0,0,18,0,0,0,215,73,1,0,1,0,0,0,72,67,0,0,0,0,0,0,27,0,0,0,223,73,1,0,1,0,0,0,100,67,0,0,0,0,0,0,28,0,0,0,231,73,1,0,1,0,0,0,100,67,0,0,0,0,0,0,29,0,0,0,239,73,1,0,1,0,0,0,100,67,0,0,0,0,0,0,29,0,0,0,248,73,1,0,1,0,0,0,100,67,0,0,0,0,0,0,29,0,0,0,0,74,1,0,1,0,0,0,100,67,0,0,0,0,0,0,30,0,0,0,8,74,1,0,1,0,0,0,104,67,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,115,77,1,0,116,67,0,0,1,0,0,0,144,67,0,0,0,0,0,0,0,0,0,0,72,0,0,0,73,0,0,0,1,0,0,0,0,0,0,0,207,134,1,0,0,0,0,0,132,67,0,0,140,67,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,24,1,0,0,48,1,0,0,176,0,0,0,152,85,1,0,157,85,1,0,161,85,1,0,168,85,1,0,172,85,1,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,161,90,1,0,80,68,0,0,1,0,0,0,168,68,0,0,0,0,0,0,0,0,0,0,74,0,0,0,75,0,0,0,76,0,0,0,77,0,0,0,78,0,0,0,79,0,0,0,80,0,0,0,81,0,0,0,82,0,0,0,83,0,0,0,84,0,0,0,75,0,0,0,85,0,0,0,75,0,0,0,86,0,0,0,87,0,0,0,88,0,0,0,89,0,0,0,0,0,0,0,174,90,1,0,0,0,0,0,96,68,0,0,208,219,2,0,1,0,0,0,180,90,1,0,0,0,0,0,104,68,0,0,208,219,2,0,2,0,0,0,184,90,1,0,0,0,0,0,112,68,0,0,208,219,2,0,3,0,0,0,189,90,1,0,0,0,0,0,120,68,0,0,208,219,2,0,4,0,0,0,195,90,1,0,0,0,0,0,128,68,0,0,208,219,2,0,5,0,0,0,201,90,1,0,0,0,0,0,152,68,0,0,208,219,2,0,6,0,0,0,211,90,1,0,0,0,0,0,160,68,0,0,208,219,2,0,7,0,0,0,217,90,1,0,0,0,0,0,136,68,0,0,208,219,2,0,7,0,0,0,221,90,1,0,0,0,0,0,136,68,0,0,208,219,2,0,7,0,0,0,226,90,1,0,0,0,0,0,144,68,0,0,208,219,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,48,0,0,0,0,0,0,0,1,0,0,0,32,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,4,0,0,0,0,0,0,0,105,104,1,0,129,104,1,0,160,104,1,0,189,104,1,0,220,104,1,0,227,104,1,0,236,104,1,0,105,104,1,0,110,104,1,0,117,104,1,0,122,104,1,0,11,104,1,0,29,104,1,0,43,104,1,0,57,104,1,0,71,104,1,0,78,104,1,0,93,104,1,0,105,104,1,0,0,0,0,0,13,251,2,0,0,0,0,0,74,19,2,0,1,0,0,0,37,107,1,0,7,0,0,0,233,106,1,0,3,0,0,0,245,38,2,0,5,0,0,0,45,107,1,0,15,0,0,0,189,142,1,0,8,0,0,0,189,142,1,0,16,0,0,0,53,107,1,0,4,0,0,0,53,107,1,0,17,0,0,0,58,107,1,0,5,0,0,0,58,107,1,0,2,0,0,0,64,107,1,0,6,0,0,0,71,107,1,0,4,0,0,0,83,107,1,0,7,0,0,0,91,107,1,0,7,0,0,0,107,107,1,0,5,0,0,0,113,107,1,0,8,0,0,0,136,107,1,0,8,0,0,0,113,107,1,0,9,0,0,0,145,107,1,0,7,0,0,0,153,107,1,0,10,0,0,0,179,107,1,0,7,0,0,0,187,107,1,0,11,0,0,0,213,107,1,0,6,0,0,0,220,107,1,0,12,0,0,0,250,107,1,0,9,0,0,0,220,107,1,0,13,0,0,0,4,108,1,0,8,0,0,0,13,108,1,0,14,0,0,0,46,108,1,0,8,0,0,0,55,108,1,0,18,0,0,0,88,108,1,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,12,0,0,0,2,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,4,0,0,0,0,0,0,0,3,0,0,0,33,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,4,0,0,0,0,0,0,0,4,0,0,0,34,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,64,0,0,0,176,71,0,0,192,71,0,0,6,0,0,0,4,0,0,0,204,71,0,0,6,0,0,0,8,0,0,0,6,0,0,0,4,0,0,0,212,71,0,0,0,4,0,0,8,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,121,1,0,53,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,10,0,0,0,92,73,0,0,224,72,0,0,68,73,0,0,1,0,0,0,1,0,0,0,10,0,0,0,22,0,0,0,11,0,0,0,90,0,0,0,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,7,0,0,0,2,0,0,0,5,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,3,0,0,0,14,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,16,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,39,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,4,0,0,0,5,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,1,0,0,0,1,0,0,0,11,0,0,0,1,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,19,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,1,0,0,0,30,0,0,0,1,0,0,0,1,0,0,0,19,0,0,0,1,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,19,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,39,0,0,0,40,0,0,0,41,0,0,0,19,0,0,0,42,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,46,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,47,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,48,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,1,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,128,0,0,0,166,180,1,0,135,180,1,0,77,125,1,0,179,180,1,0,171,180,1,0,185,180,1,0,0,0,0,0,83,129,1,0,92,129,1,0,99,129,1,0,113,129,1,0,167,179,1,0,207,180,1,0,120,129,1,0,127,129,1,0,1,0,0,0,8,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29,131,1,0,8,0,0,0,3,0,0,0,38,131,1,0,42,131,1,0,11,0,0,0,6,0,0,0,213,142,1,0,54,131,1,0,2,0,0,0,1,0,0,0,57,131,1,0,61,131,1,0,4,0,0,0,2,0,0,0,66,131,1,0,70,131,1,0,4,0,0,0,4,0,0,0,75,131,1,0,80,131,1,0,5,0,0,0,5,0,0,0,86,131,1,0,90,131,1,0,4,0,0,0,7,0,0,0,95,131,1,0,99,131,1,0,5,0,0,0,9,0,0,0,105,131,1,0,109,131,1,0,4,0,0,0,10,0,0,0,114,131,1,0,119,131,1,0,4,0,0,0,12,0,0,0,124,131,1,0,15,136,1,0,0,0,0,0,1,0,0,0,23,136,1,0,1,0,0,0,0,0,0,0,162,179,1,0,1,0,0,0,1,0,0,0,74,19,2],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+10240);allocate([248,134,1,0,49,0,0,0,0,0,0,0,0,0,0,0,208,174,1,0,16,0,0,0,116,31,2,0,128,0,0,0,241,134,1,0,64,0,0,0,59,161,1,0,16,0,0,0,243,134,1,0,64,0,0,0,0,0,0,0,0,0,0,0,191,134,1,0,1,0,0,0,198,134,1,0,2,0,0,0,203,134,1,0,3,0,0,0,249,167,1,0,4,0,0,0,93,158,1,0,5,0,0,0,207,134,1,0,6,0,0,0,74,19,2,0,8,0,0,0,211,134,1,0,33,0,0,0,215,134,1,0,34,0,0,0,219,134,1,0,34,0,0,0,223,134,1,0,1,0,0,0,228,134,1,0,7,0,0,0,234,134,1,0,39,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,140,1,0,49,140,1,0,0,0,0,0,80,6,0,0,210,142,1,0,213,142,1,0,216,142,1,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,255,255,255,255,149,142,1,0,155,142,1,0,74,19,2,0,0,0,0,0,100,0,0,0,101,0,0,0,102,0,0,0,100,0,0,0,8,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,42,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,0,0,0,0,9,0,0,0,43,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,249,167,1,0,144,85,0,0,176,6,0,0,0,0,0,0,38,158,1,0,144,85,0,0,224,6,0,0,0,0,0,0,255,166,1,0,144,85,0,0,16,7,0,0,0,0,0,0,46,158,1,0,144,85,0,0,16,7,0,0,0,0,0,0,51,158,1,0,144,85,0,0,64,7,0,0,0,0,0,0,58,158,1,0,168,85,0,0,64,7,0,0,0,0,0,0,64,158,1,0,144,85,0,0,112,7,0,0,0,0,0,0,68,158,1,0,144,85,0,0,160,7,0,0,0,0,0,0,74,19,2,0,144,85,0,0,208,7,0,0,0,0,0,0,77,158,1,0,144,85,0,0,208,7,0,0,0,0,0,0,87,158,1,0,144,85,0,0,128,6,0,0,0,0,0,0,93,158,1,0,144,85,0,0,0,8,0,0,0,0,0,0,101,158,1,0,144,85,0,0,48,8,0,0,0,0,0,0,111,158,1,0,144,85,0,0,96,8,0,0,0,0,0,0,125,158,1,0,144,85,0,0,144,8,0,0,0,0,0,0,131,158,1,0,144,85,0,0,192,8,0,0,0,0,0,0,140,158,1,0,144,85,0,0,240,8,0,0,0,0,0,0,148,158,1,0,144,85,0,0,32,9,0,0,0,0,0,0,157,158,1,0,144,85,0,0,80,9,0,0,0,0,0,0,165,158,1,0,144,85,0,0,128,9,0,0,0,0,0,0,170,158,1,0,144,85,0,0,176,9,0,0,0,0,0,0,174,158,1,0,144,85,0,0,224,9,0,0,0,0,0,0,181,158,1,0,144,85,0,0,16,10,0,0,0,0,0,0,187,158,1,0,144,85,0,0,64,10,0,0,0,0,0,0,197,158,1,0,192,85,0,0,112,10,0,0,0,0,0,0,206,158,1,0,144,85,0,0,176,6,0,0,0,0,0,0,211,158,1,0,144,85,0,0,176,6,0,0,0,0,0,0,221,158,1,0,144,85,0,0,160,10,0,0,0,0,0,0,228,158,1,0,144,85,0,0,208,10,0,0,0,0,0,0,241,158,1,0,144,85,0,0,0,11,0,0,0,0,0,0,255,158,1,0,144,85,0,0,48,11,0,0,0,0,0,0,13,159,1,0,144,85,0,0,96,11,0,0,0,0,0,0,25,159,1,0,144,85,0,0,144,11,0,0,0,0,0,0,38,159,1,0,144,85,0,0,192,11,0,0,0,0,0,0,47,159,1,0,144,85,0,0,240,11,0,0,0,0,0,0,57,159,1,0,144,85,0,0,32,12,0,0,0,0,0,0,66,159,1,0,144,85,0,0,80,12,0,0,0,0,0,0,74,159,1,0,144,85,0,0,128,12,0,0,0,0,0,0,82,159,1,0,144,85,0,0,176,12,0,0,0,0,0,0,91,159,1,0,144,85,0,0,224,12,0,0,0,0,0,0,95,159,1,0,144,85,0,0,16,13,0,0,0,0,0,0,106,159,1,0,144,85,0,0,64,13,0,0,0,0,0,0,110,159,1,0,144,85,0,0,112,13,0,0,0,0,0,0,120,159,1,0,144,85,0,0,160,13,0,0,0,0,0,0,129,159,1,0,144,85,0,0,208,13,0,0,0,0,0,0,137,159,1,0,144,85,0,0,0,14,0,0,0,0,0,0,150,159,1,0,144,85,0,0,48,14,0,0,0,0,0,0,162,159,1,0,144,85,0,0,96,14,0,0,0,0,0,0,173,159,1,0,144,85,0,0,144,14,0,0,0,0,0,0,189,159,1,0,144,85,0,0,192,14,0,0,0,0,0,0,203,159,1,0,144,85,0,0,240,14,0,0,0,0,0,0,218,159,1,0,144,85,0,0,32,15,0,0,0,0,0,0,228,159,1,0,144,85,0,0,80,15,0,0,0,0,0,0,237,159,1,0,144,85,0,0,128,15,0,0,0,0,0,0,247,159,1,0,144,85,0,0,176,15,0,0,0,0,0,0,1,160,1,0,144,85,0,0,224,15,0,0,0,0,0,0,8,160,1,0,144,85,0,0,16,16,0,0,0,0,0,0,15,160,1,0,144,85,0,0,64,16,0,0,0,0,0,0,25,160,1,0,216,85,0,0,0,0,0,0,0,0,0,0,32,160,1,0,216,85,0,0,0,0,0,0,0,0,0,0,2,158,1,0,240,85,0,0,0,0,0,0,0,0,0,0,40,160,1,0,8,86,0,0,112,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,91,0,0,0,92,0,0,0,23,0,0,0,4,0,0,0,2,0,0,0,12,0,0,0,93,0,0,0,92,0,0,0,23,0,0,0,5,0,0,0,0,0,0,0,13,0,0,0,91,0,0,0,92,0,0,0,23,0,0,0,4,0,0,0,2,0,0,0,12,0,0,0,94,0,0,0,95,0,0,0,24,0,0,0,6,0,0,0,3,0,0,0,14,0,0,0,96,0,0,0,97,0,0,0,23,0,0,0,7,0,0,0,0,0,0,0,15,0,0,0,91,0,0,0,92,0,0,0,23,0,0,0,8,0,0,0,2,0,0,0,12,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,42,161,1,0,49,161,1,0,0,0,0,0,57,161,1,0,59,161,1,0,174,31,2,0,61,161,1,0,12,0,0,0,4,0,0,0,6,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,9,0,0,0,8,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,41,0,0,0,42,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,48,0,0,0,51,0,0,0,52,0,0,0,53,0,0,0,54,0,0,0,55,0,0,0,56,0,0,0,57,0,0,0,58,0,0,0,61,0,0,0,62,0,0,0,63,0,0,0,64,0,0,0,65,0,0,0,66,0,0,0,67,0,0,0,68,0,0,0,71,0,0,0,72,0,0,0,73,0,0,0,74,0,0,0,75,0,0,0,76,0,0,0,77,0,0,0,78,0,0,0,81,0,0,0,82,0,0,0,83,0,0,0,84,0,0,0,85,0,0,0,86,0,0,0,87,0,0,0,88,0,0,0,138,162,1,0,154,162,1,0,167,162,1,0,0,0,0,0,0,0,0,0,4,0,0,0,172,162,1,0,0,0,0,0,0,0,0,0,183,162,1,0,154,162,1,0,167,162,1,0,0,0,0,0,206,162,1,0,5,0,0,0,172,162,1,0,0,0,0,0,214,162,1,0,221,162,1,0,154,162,1,0,237,162,1,0,0,0,0,0,0,0,0,0,6,0,0,0,172,162,1,0,24,179,1,0,0,0,0,0,242,162,1,0,154,162,1,0,237,162,1,0,0,0,0,0,206,162,1,0,7,0,0,0,172,162,1,0,24,179,1,0,214,162,1,0,9,163,1,0,22,163,1,0,237,162,1,0,0,0,0,0,0,0,0,0,10,0,0,0,36,163,1,0,24,179,1,0,0,0,0,0,42,163,1,0,22,163,1,0,237,162,1,0,0,0,0,0,214,162,1,0,11,0,0,0,36,163,1,0,24,179,1,0,214,162,1,0,61,163,1,0,22,163,1,0,75,163,1,0,0,0,0,0,0,0,0,0,8,0,0,0,36,163,1,0,0,0,0,0,0,0,0,0,81,163,1,0,22,163,1,0,75,163,1,0,0,0,0,0,214,162,1,0,9,0,0,0,36,163,1,0,0,0,0,0,214,162,1,0,101,163,1,0,101,163,1,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,109,163,1,0,0,0,0,0,0,0,0,0,119,163,1,0,101,163,1,0,24,179,1,0,0,0,0,0,0,0,0,0,14,0,0,0,109,163,1,0,24,179,1,0,0,0,0,0,132,163,1,0,101,163,1,0,24,179,1,0,0,0,0,0,206,162,1,0,15,0,0,0,109,163,1,0,24,179,1,0,214,162,1,0,152,163,1,0,101,163,1,0,0,0,0,0,0,0,0,0,206,162,1,0,13,0,0,0,109,163,1,0,0,0,0,0,214,162,1,0,168,163,1,0,168,163,1,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,172,162,1,0,0,0,0,0,0,0,0,0,178,163,1,0,168,163,1,0,24,179,1,0,0,0,0,0,0,0,0,0,18,0,0,0,172,162,1,0,24,179,1,0,0,0,0,0,193,163,1,0,168,163,1,0,24,179,1,0,0,0,0,0,206,162,1,0,19,0,0,0,172,162,1,0,24,179,1,0,214,162,1,0,215,163,1,0,168,163,1,0,0,0,0,0,232,163,1,0,0,0,0,0,20,0,0,0,172,162,1,0,0,0,0,0,0,0,0,0,242,163,1,0,168,163,1,0,24,179,1,0,232,163,1,0,0,0,0,0,22,0,0,0,172,162,1,0,24,179,1,0,0,0,0,0,8,164,1,0,168,163,1,0,24,179,1,0,232,163,1,0,206,162,1,0,23,0,0,0,172,162,1,0,24,179,1,0,214,162,1,0,37,164,1,0,168,163,1,0,0,0,0,0,232,163,1,0,206,162,1,0,21,0,0,0,172,162,1,0,0,0,0,0,214,162,1,0,62,164,1,0,168,163,1,0,0,0,0,0,0,0,0,0,206,162,1,0,17,0,0,0,172,162,1,0,0,0,0,0,214,162,1,0,80,164,1,0,102,164,1,0,24,179,1,0,0,0,0,0,0,0,0,0,26,0,0,0,36,163,1,0,24,179,1,0,0,0,0,0,123,164,1,0,102,164,1,0,24,179,1,0,0,0,0,0,214,162,1,0,27,0,0,0,36,163,1,0,24,179,1,0,214,162,1,0,151,164,1,0,102,164,1,0,0,0,0,0,0,0,0,0,214,162,1,0,25,0,0,0,36,163,1,0,0,0,0,0,214,162,1,0,175,164,1,0,102,164,1,0,198,164,1,0,0,0,0,0,0,0,0,0,24,0,0,0,36,163,1,0,0,0,0,0,0,0,0,0,204,164,1,0,218,164,1,0,24,179,1,0,0,0,0,0,0,0,0,0,30,0,0,0,36,163,1,0,24,179,1,0,0,0,0,0,236,164,1,0,218,164,1,0,24,179,1,0,0,0,0,0,214,162,1,0,31,0,0,0,36,163,1,0,24,179,1,0,214,162,1,0,0,165,1,0,218,164,1,0,0,0,0,0,0,0,0,0,214,162,1,0,29,0,0,0,36,163,1,0,0,0,0,0,214,162,1,0,16,165,1,0,218,164,1,0,198,164,1,0,0,0,0,0,0,0,0,0,28,0,0,0,36,163,1,0,0,0,0,0,0,0,0,0,31,165,1,0,31,165,1,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,38,165,1,0,0,0,0,0,0,0,0,0,46,165,1,0,57,165,1,0,24,179,1,0,0,0,0,0,0,0,0,0,2,0,0,0,36,163,1,0,24,179,1,0,0,0,0,0,63,165,1,0,57,165,1,0,24,179,1,0,0,0,0,0,214,162,1,0,3,0,0,0,36,163,1,0,24,179,1,0,214,162,1,0,80,165,1,0,57,165,1,0,0,0,0,0,0,0,0,0,214,162,1,0,1,0,0,0,36,163,1,0,0,0,0,0,214,162,1,0,7,167,1,0,57,165,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,163,1,0,0,0,0,0,0,0,0,0,93,165,1,0,119,165,1,0,134,165,1,0,0,0,0,0,214,162,1,0,33,0,0,0,36,163,1,0,0,0,0,0,214,162,1,0,141,165,1,0,154,165,1,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,38,165,1,0,0,0,0,0,0,0,0,0,8,0,0,0,4,0,0,0,0,0,0,0,10,0,0,0,45,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54,168,1,0,198,0,0,0,60,168,1,0,193,0,0,0,67,168,1,0,194,0,0,0,73,168,1,0,192,0,0,0,80,168,1,0,145,3,0,0,86,168,1,0,197,0,0,0,92,168,1,0,195,0,0,0,99,168,1,0,196,0,0,0,104,168,1,0,146,3,0,0,109,168,1,0,199,0,0,0,116,168,1,0,167,3,0,0,120,168,1,0,33,32,0,0,127,168,1,0,148,3,0,0,133,168,1,0,208,0,0,0,137,168,1,0,201,0,0,0,144,168,1,0,202,0,0,0,150,168,1,0,200,0,0,0,157,168,1,0,149,3,0,0,165,168,1,0,151,3,0,0,169,168,1,0,203,0,0,0,174,168,1,0,147,3,0,0,180,168,1,0,205,0,0,0,187,168,1,0,206,0,0,0,193,168,1,0,204,0,0,0,200,168,1,0,153,3,0,0,205,168,1,0,207,0,0,0,210,168,1,0,154,3,0,0,216,168,1,0,155,3,0,0,223,168,1,0,156,3,0,0,226,168,1,0,209,0,0,0,233,168,1,0,157,3,0,0,236,168,1,0,82,1,0,0,242,168,1,0,211,0,0,0,249,168,1,0,212,0,0,0,255,168,1,0,210,0,0,0,6,169,1,0,169,3,0,0,12,169,1,0,159,3,0,0,20,169,1,0,216,0,0,0,27,169,1,0,213,0,0,0,34,169,1,0,214,0,0,0,39,169,1,0,166,3,0,0,43,169,1,0,160,3,0,0,46,169,1,0,51,32,0,0,52,169,1,0,168,3,0,0,56,169,1,0,161,3,0,0,60,169,1,0,96,1,0,0,67,169,1,0,163,3,0,0,73,169,1,0,222,0,0,0,79,169,1,0,164,3,0,0,83,169,1,0,152,3,0,0,89,169,1,0,218,0,0,0,96,169,1,0,219,0,0,0,102,169,1,0,217,0,0,0,109,169,1,0,165,3,0,0,117,169,1,0,220,0,0,0,122,169,1,0,158,3,0,0,125,169,1,0,221,0,0,0,132,169,1,0,120,1,0,0,137,169,1,0,150,3,0,0,142,169,1,0,225,0,0,0,149,169,1,0,226,0,0,0,155,169,1,0,180,0,0,0,161,169,1,0,230,0,0,0,167,169,1,0,224,0,0,0,174,169,1,0,53,33,0,0,182,169,1,0,177,3,0,0,188,169,1,0,38,0,0,0,192,169,1,0,39,34,0,0,196,169,1,0,32,34,0,0,200,169,1,0,229,0,0,0,206,169,1,0,72,34,0,0,212,169,1,0,227,0,0,0,219,169,1,0,228,0,0,0,224,169,1,0,30,32,0,0,230,169,1,0,178,3,0,0,235,169,1,0,166,0,0,0,242,169,1,0,34,32,0,0,247,169,1,0,41,34,0,0,251,169,1,0,231,0,0,0,2,170,1,0,184,0,0,0,8,170,1,0,162,0,0,0,13,170,1,0,199,3,0,0,17,170,1,0,198,2,0,0,22,170,1,0,99,38,0,0,28,170,1,0,69,34,0,0,33,170,1,0,169,0,0,0,38,170,1,0,181,33,0,0,44,170,1,0,42,34,0,0,48,170,1,0,164,0,0,0,55,170,1,0,211,33,0,0,60,170,1,0,32,32,0,0,67,170,1,0,147,33,0,0,72,170,1,0,176,0,0,0,76,170,1,0,180,3,0,0,82,170,1,0,102,38,0,0,88,170,1,0,247,0,0,0,95,170,1,0,233,0,0,0,102,170,1,0,234,0,0,0,108,170,1,0,232,0,0,0,115,170,1,0,5,34,0,0,121,170,1,0,3,32,0,0,126,170,1,0,2,32,0,0,131,170,1,0,181,3,0,0,139,170,1,0,97,34,0,0,145,170,1,0,183,3,0,0,149,170,1,0,240,0,0,0,153,170,1,0,235,0,0,0,158,170,1,0,172,32,0,0,163,170,1,0,3,34,0,0,169,170,1,0,146,1,0,0,174,170,1,0,0,34,0,0,181,170,1,0,189,0,0,0,188,170,1,0,188,0,0,0,195,170,1,0,190,0,0,0,202,170,1,0,68,32,0,0,208,170,1,0,179,3,0,0,214,170,1,0,101,34,0,0,217,170,1,0,62,0,0,0,220,170,1,0,212,33,0,0,225,170,1,0,148,33,0,0,230,170,1,0,101,38,0,0,237,170,1,0,38,32,0,0,244,170,1,0,237,0,0,0,251,170,1,0,238,0,0,0,1,171,1,0,161,0,0,0,7,171,1,0,236,0,0,0,14,171,1,0,17,33,0,0,20,171,1,0,30,34,0,0,26,171,1,0,43,34,0,0,30,171,1,0,185,3,0,0,35,171,1,0,191,0,0,0,42,171,1,0,8,34,0,0,47,171,1,0,239,0,0,0,52,171,1,0,186,3,0,0,58,171,1,0,208,33,0,0,63,171,1,0,187,3,0,0,70,171,1,0,41,35,0,0,75,171,1,0,171,0,0,0,81,171,1,0,144,33,0,0,86,171,1,0,8,35,0,0,92,171,1,0,28,32,0,0,98,171,1,0,100,34,0,0,101,171,1,0,10,35,0,0,108,171,1,0,23,34,0,0,115,171,1,0,202,37,0,0,119,171,1,0,14,32,0,0,123,171,1,0,57,32,0,0,130,171,1,0,24,32,0,0,136,171,1,0,60,0,0,0,139,171,1,0,175,0,0,0,144,171,1,0,20,32,0,0,150,171,1,0,181,0,0,0,156,171,1,0,183,0,0,0,115,180,1,0,18,34,0,0,163,171,1,0,188,3,0,0,166,171,1,0,7,34,0,0,172,171,1,0,160,0,0,0,177,171,1,0,19,32,0,0,183,171,1,0,96,34,0,0,186,171,1,0,11,34,0,0,189,171,1,0,172,0,0,0,193,171,1,0,9,34,0,0,199,171,1,0,132,34,0,0,204,171,1,0,241,0,0,0,211,171,1,0,189,3,0,0,214,171,1,0,243,0,0,0,221,171,1,0,244,0,0,0,227,171,1,0,83,1,0,0,233,171,1,0,242,0,0,0,240,171,1,0,62,32,0,0,246,171,1,0,201,3,0,0,252,171,1,0,191,3,0,0,4,172,1,0,149,34,0,0,10,172,1,0,40,34,0,0,13,172,1,0,170,0,0,0,18,172,1,0,186,0,0,0,23,172,1,0,248,0,0,0,30,172,1,0,245,0,0,0,37,172,1,0,151,34,0,0,44,172,1,0,246,0,0,0,49,172,1,0,182,0,0,0,54,172,1,0,2,34,0,0,59,172,1,0,48,32,0,0,66,172,1,0,165,34,0,0,71,172,1,0,198,3,0,0,75,172,1,0,192,3,0,0,78,172,1,0,214,3,0,0,82,172,1,0,177,0,0,0,89,172,1,0,163,0,0,0,95,172,1,0,50,32,0,0,101,172,1,0,15,34,0,0,106,172,1,0,29,34,0,0,111,172,1,0,200,3,0,0,115,172,1,0,34,0,0,0,120,172,1,0,210,33,0,0,125,172,1,0,26,34,0,0,131,172,1,0,42,35,0,0,136,172,1,0,187,0,0,0,142,172,1,0,146,33,0,0,147,172,1,0,9,35,0,0,153,172,1,0,29,32,0,0,159,172,1,0,28,33,0,0,164,172,1,0,174,0,0,0,168,172,1,0,11,35,0,0,175,172,1,0,193,3,0,0,179,172,1,0,15,32,0,0,183,172,1,0,58,32,0,0,190,172,1,0,25,32,0,0,196,172,1,0,26,32,0,0,202,172,1,0,97,1,0,0,209,172,1,0,197,34,0,0,214,172,1,0,167,0,0,0,219,172,1,0,173,0,0,0,223,172,1,0,195,3,0,0,229,172,1,0,194,3,0,0,236,172,1,0,60,34,0,0,240,172,1,0,96,38,0,0,247,172,1,0,130,34,0,0,251,172,1,0,134,34,0,0,0,173,1,0,17,34,0,0,4,173,1,0,131,34,0,0,8,173,1,0,185,0,0,0,13,173,1,0,178,0,0,0,18,173,1,0,179,0,0,0,23,173,1,0,135,34,0,0,28,173,1,0,223,0,0,0,34,173,1,0,196,3,0,0,38,173,1,0,52,34,0,0,45,173,1,0,184,3,0,0,51,173,1,0,209,3,0,0,60,173,1,0,9,32,0,0,67,173,1,0,254,0,0,0,73,173,1,0,220,2,0,0,79,173,1,0,215,0,0,0,85,173,1,0,34,33,0,0,91,173,1,0,209,33,0,0,96,173,1,0,250,0,0,0,103,173,1,0,145,33,0,0,108,173,1,0,251,0,0,0,114,173,1,0,249,0,0,0,121,173,1,0,168,0,0,0,125,173,1,0,210,3,0,0,131,173,1,0,197,3,0,0,139,173,1,0,252,0,0,0,144,173,1,0,24,33,0,0,151,173,1,0,190,3,0,0,154,173,1,0,253,0,0,0,161,173,1,0,165,0,0,0,165,173,1,0,255,0,0,0,170,173,1,0,182,3,0,0,175,173,1,0,13,32,0,0,179,173,1,0,12,32,0,0,7,0,0,0,8,0,0,0,1,1,0,0,8,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,48,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,180,1,0,9,0,0,0,53,180,1,0,10,0,0,0,58,180,1,0,10,0,0,0,66,180,1,0,11,0,0,0,72,180,1,0,11,0,0,0,81,180,1,0,12,0,0,0,84,180,1,0,12,0,0,0,90,180,1,0,13,0,0,0,95,180,1,0,13,0,0,0,103,180,1,0,14,0,0,0,108,180,1,0,14,0,0,0,115,180,1,0,15,0,0,0,121,180,1,0,15,0,0,0,133,180,1,0,16,0,0,0,14,0,0,0,98,0,0,0,49,0,0,0,50,0,0,0,20,0,0,0,51,0,0,0,99,0,0,0,52,0,0,0,21,0,0,0,53,0,0,0,8,0,0,0,4,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,181,1,0,85,93,201,127,201,127,255,0,219,181,1,0,187,45,212,190,174,212,255,0,230,181,1,0,20,119,253,253,192,134,255,0,241,181,1,0,85,93,201,127,201,127,255,0,252,181,1,0,187,45,212,190,174,212,255,0,7,182,1,0,20,119,253,253,192,134,255,0,18,182,1,0,42,102,255,255,255,153,255,0,29,182,1,0,85,93,201,127,201,127,255,0,40,182,1,0,187,45,212,190,174,212,255,0,51,182,1,0,20,119,253,253,192,134,255,0,62,182,1,0,42,102,255,255,255,153,255,0,73,182,1,0,151,173,176,56,108,176,255,0,84,182,1,0,85,93,201,127,201,127,255,0,95,182,1,0,187,45,212,190,174,212,255,0,106,182,1,0,20,119,253,253,192,134,255,0,117,182,1,0,42,102,255,255,255,153,255,0,128,182,1,0,151,173,176,56,108,176,255,0,139,182,1,0,232,252,240,240,2,127,255,0,150,182,1,0,85,93,201,127,201,127,255,0,161,182,1,0,187,45,212,190,174,212,255,0,172,182,1,0,20,119,253,253,192,134,255,0,183,182,1,0,42,102,255,255,255,153,255,0,194,182,1,0,151,173,176,56,108,176,255,0,205,182,1,0,232,252,240,240,2,127,255,0,216,182,1,0,17,224,191,191,91,23,255,0,227,182,1,0,85,93,201,127,201,127,255,0,238,182,1,0,187,45,212,190,174,212,255,0,249,182,1,0,20,119,253,253,192,134,255,0,4,183,1,0,42,102,255,255,255,153,255,0,15,183,1,0,151,173,176,56,108,176,255,0,26,183,1,0,232,252,240,240,2,127,255,0,37,183,1,0,17,224,191,191,91,23,255,0,48,183,1,0,0,0,102,102,102,102,255,0,59,183,1,0,147,25,247,222,235,247,255,0,69,183,1,0,142,75,225,158,202,225,255,0,79,183,1,0,145,188,189,49,130,189,255,0,89,183,1,0,159,16,255,239,243,255,255,0,99,183,1,0,143,46,231,189,215,231,255,0,109,183,1,0,143,127,214,107,174,214,255,0,119,183,1,0,147,208,181,33,113,181,255,0,129,183,1,0,159,16,255,239,243,255,255,0,139,183,1,0,143,46,231,189,215,231,255,0,149,183,1,0,143,127,214,107,174,214,255,0,159,183,1,0,145,188,189,49,130,189,255,0,169,183,1,0,149,241,156,8,81,156,255,0,179,183,1,0,159,16,255,239,243,255,255,0,189,183,1,0,148,43,239,198,219,239,255,0,199,183,1,0,142,75,225,158,202,225,255,0,209,183,1,0,143,127,214,107,174,214,255,0,219,183,1,0,145,188,189,49,130,189,255,0,229,183,1,0,149,241,156,8,81,156,255,0,239,183,1,0,159,16,255,239,243,255,255,0,249,183,1,0,148,43,239,198,219,239,255,0,3,184,1,0,142,75,225,158,202,225,255,0,13,184,1,0,143,127,214,107,174,214,255,0,23,184,1,0,144,169,198,66,146,198,255,0,33,184,1,0,147,208,181,33,113,181,255,0,43,184,1,0,151,241,148,8,69,148,255,0,53,184,1,0,148,8,255,247,251,255,255,0,63,184,1,0,147,25,247,222,235,247,255,0,73,184,1,0,148,43,239,198,219,239,255,0,83,184,1,0,142,75,225,158,202,225,255,0,93,184,1,0,143,127,214,107,174,214,255,0,103,184,1,0,144,169,198,66,146,198,255,0,113,184,1,0,147,208,181,33,113,181,255,0,123,184,1,0,151,241,148,8,69,148,255,0,133,184,1,0,148,8,255,247,251,255,255,0,143,184,1,0,147,25,247,222,235,247,255,0,153,184,1,0,148,43,239,198,219,239,255,0,163,184,1,0,142,75,225,158,202,225,255,0,173,184,1,0,143,127,214,107,174,214,255,0,183,184,1,0,144,169,198,66,146,198,255,0,193,184,1,0,147,208,181,33,113,181,255,0,203,184,1,0,149,241,156,8,81,156,255,0,213,184,1,0,152,235,107,8,48,107,255,0,223,184,1,0,23,239,84,84,48,5,255,0,233,184,1,0,119,255,60,0,60,48,255,0,244,184,1,0,23,236,140,140,81,10,255,0,254,184,1,0,24,194,191,191,129,45,255,0,8,185,1,0,29,112,223,223,194,125,255,0,18,185,1,0,30,52,246,246,232,195,255,0,28,185,1,0,121,38,234,199,234,229,255,0,38,185,1,0,120,95,205,128,205,193,255,0,48,185,1,0,124,165,151,53,151,143,255,0,58,185,1,0,124,252,102,1,102,94,255,0,68,185,1,0,23,239,84,84,48,5,255,0,78,185,1,0,124,252,102,1,102,94,255,0,89,185,1,0,119,255,60,0,60,48,255,0,100,185,1,0,23,236,140,140,81,10,255,0,110,185,1,0,24,194,191,191,129,45,255,0,120,185,1,0,29,112,223,223,194,125,255,0,130,185,1,0,30,52,246,246,232,195,255,0,140,185,1,0,0,0,245,245,245,245,255,0,150,185,1,0,121,38,234,199,234,229,255,0,160,185,1,0,120,95,205,128,205,193,255,0,170,185,1,0,124,165,151,53,151,143,255,0,180,185,1,0,28,135,216,216,179,101,255,0,189,185,1,0,0,0,245,245,245,245,255,0,198,185,1,0,123,127,180,90,180,172,255,0,207,185,1,0,21,215,166,166,97,26,255,0,216,185,1,0,29,112,223,223,194,125,255,0,225,185,1,0,120,95,205,128,205,193,255,0,234,185,1,0,121,253,133,1,133,113,255,0,243,185,1,0,21,215,166,166,97,26,255,0,252,185,1,0,29,112,223,223,194,125,255,0,5,186,1,0,0,0,245,245,245,245,255,0,14,186,1,0,120,95,205,128,205,193,255,0,23,186,1,0,121,253,133,1,133,113,255,0,32,186,1,0,23,236,140,140,81,10,255,0,41,186,1,0,28,135,216,216,179,101,255,0,50,186,1,0,30,52,246,246,232,195,255,0,59,186,1,0,121,38,234,199,234,229,255,0,68,186,1,0,123,127,180,90,180,172,255,0,77,186,1,0,124,252,102,1,102,94,255,0,86,186,1,0,23,236,140,140,81,10,255,0,95,186,1,0,28,135,216,216,179,101,255,0,104,186,1,0,30,52,246,246,232,195,255,0,113,186,1,0,0,0,245,245,245,245,255,0,122,186,1,0,121,38,234,199,234,229,255,0,131,186,1,0,123,127,180,90,180,172,255,0,140,186,1,0,124,252,102,1,102,94,255,0,149,186,1,0,23,236,140,140,81,10,255,0,158,186,1,0,24,194,191,191,129,45,255,0,167,186,1,0,29,112,223,223,194,125,255,0,176,186,1,0,30,52,246,246,232,195,255,0,185,186,1,0,121,38,234,199,234,229,255,0,194,186,1,0,120,95,205,128,205,193,255,0,203,186,1,0,124,165,151,53,151,143,255,0,212,186,1,0,124,252,102,1,102,94,255,0,221,186,1,0,23,236,140,140,81,10,255,0,230,186,1,0,24,194,191,191,129,45,255,0,239,186,1,0,29,112,223,223,194,125,255,0,248,186,1,0,30,52,246,246,232,195,255,0,1,187,1,0,0,0,245,245,245,245,255,0,10,187,1,0,121,38,234,199,234,229,255,0,19,187,1,0,120,95,205,128,205,193,255,0,28,187,1,0,124,165,151,53,151,143,255,0,37,187,1,0,124,252,102,1,102,94,255,0,46,187,1,0,135,20,249,229,245,249,255,0,55,187,1,0,117,74,216,153,216,201,255,0,64,187,1,0,103,185,162,44,162,95,255,0,73,187,1,0,136,14,251,237,248,251,255,0,82,187,1,0,127,54,226,178,226,226,255,0,91,187,1,0,113,120,194,102,194,164,255,0,100,187,1,0,98,190,139,35,139,69,255,0,109,187,1,0,136,14,251,237,248,251,255,0,118,187,1,0,127,54,226,178,226,226,255,0,127,187,1,0,113,120,194,102,194,164,255,0,136,187,1,0,103,185,162,44,162,95,255,0,145,187,1,0,102,255,109,0,109,44,255,0,154,187,1,0,136,14,251,237,248,251,255,0,163,187,1,0,119,34,236,204,236,230,255,0,172,187,1,0,117,74,216,153,216,201,255,0,181,187,1,0,113,120,194,102,194,164,255,0,190,187,1,0,103,185,162,44,162,95,255,0,199,187,1,0,102,255,109,0,109,44,255,0,208,187,1,0,136,14,251,237,248,251,255,0,217,187,1,0,119,34,236,204,236,230,255,0,226,187,1,0,117,74,216,153,216,201,255,0,235,187,1,0,113,120,194,102,194,164,255,0,244,187,1,0,105,159,174,65,174,118,255,0,253,187,1,0,98,190,139,35,139,69,255,0,6,188,1,0,102,255,88,0,88,36,255,0,15,188,1,0,134,6,253,247,252,253,255,0,24,188,1,0,135,20,249,229,245,249,255,0,33,188,1,0,119,34,236,204,236,230,255,0,42,188,1,0,117,74,216,153,216,201,255,0,51,188,1,0,113,120,194,102,194,164,255,0,60,188,1,0,105,159,174,65,174,118,255,0,69,188,1,0,98,190,139,35,139,69,255,0,78,188,1,0,102,255,88,0,88,36,255,0,87,188,1,0,134,6,253,247,252,253,255,0,96,188,1,0,135,20,249,229,245,249,255,0,105,188,1,0,119,34,236,204,236,230,255,0,114,188,1,0,117,74,216,153,216,201,255,0,123,188,1,0,113,120,194,102,194,164,255,0,132,188,1,0,105,159,174,65,174,118,255,0,141,188,1,0,98,190,139,35,139,69,255,0,150,188,1,0,102,255,109,0,109,44,255,0,159,188,1,0,101,255,68,0,68,27,255,0,168,188,1,0,144,20,244,224,236,244,255,0,177,188,1,0,148,70,218,158,188,218,255,0,186,188,1,0,196,123,167,136,86,167,255,0,195,188,1,0,136,14,251,237,248,251,255,0,204,188,1,0,146,53,227,179,205,227,255,0,213,188,1,0,162,74,198,140,150,198,255,0,222,188,1,0,202,149,157,136,65,157,255,0,231,188,1,0,136,14,251,237,248,251,255,0,240,188,1,0,146,53,227,179,205,227,255,0,249,188,1,0,162,74,198,140,150,198,255,0,2,189,1,0,196,123,167,136,86,167,255,0,11,189,1,0,214,225,129,129,15,124,255,0,20,189,1,0,136,14,251,237,248,251,255,0,29,189,1,0,148,43,230,191,211,230,255,0,38,189,1,0,148,70,218,158,188,218,255,0,47,189,1,0,162,74,198,140,150,198,255,0,56,189,1,0,196,123,167,136,86,167,255,0,65,189,1,0,214,225,129,129,15,124,255,0,74,189,1,0,136,14,251,237,248,251,255,0,83,189,1,0,148,43,230,191,211,230,255,0,92,189,1,0,148,70,218,158,188,218,255,0,101,189,1,0,162,74,198,140,150,198,255,0,110,189,1,0,190,100,177,140,107,177,255,0,119,189,1,0,202,149,157,136,65,157,255,0,128,189,1,0,213,252,110,110,1,107,255,0,137,189,1,0,134,6,253,247,252,253,255,0,146,189,1,0,144,20,244,224,236,244,255,0,155,189,1,0,148,43,230,191,211,230,255,0,164,189,1,0,148,70,218,158,188,218,255,0,173,189,1,0,162,74,198,140,150,198,255,0,182,189,1,0,190,100,177,140,107,177,255,0,191,189,1,0,202,149,157,136,65,157,255,0,200,189,1,0,213,252,110,110,1,107,255,0,209,189,1,0,134,6,253,247,252,253,255,0,218,189,1,0,144,20,244,224,236,244,255,0,227,189,1,0,148,43,230,191,211,230,255,0,236,189,1,0,148,70,218,158,188,218,255,0,245,189,1,0,162,74,198,140,150,198,255,0,254,189,1,0,190,100,177,140,107,177,255,0,7,190,1,0,202,149,157,136,65,157,255,0,16,190,1,0,214,225,129,129,15,124,255,0,25,190,1,0,213,255,77,77,0,75,255,0,34,190,1,0,114,211,158,27,158,119,255,0,44,190,1,0,18,252,217,217,95,2,255,0,54,190,1,0,173,95,179,117,112,179,255,0,64,190,1,0,114,211,158,27,158,119,255,0,74,190,1,0,18,252,217,217,95,2,255,0,84,190,1,0,173,95,179,117,112,179,255,0,94,190,1,0,233,209,231,231,41,138,255,0,104,190,1,0,114,211,158,27,158,119,255,0,114,190,1,0,18,252,217,217,95,2,255,0,124,190,1,0,173,95,179,117,112,179,255,0,134,190,1,0,233,209,231,231,41,138,255,0,144,190,1,0,62,208,166,102,166,30,255,0,154,190,1,0,114,211,158,27,158,119,255,0,164,190,1,0,18,252,217,217,95,2,255,0,174,190,1,0,173,95,179,117,112,179,255,0,184,190,1,0,233,209,231,231,41,138,255,0,194,190,1,0,62,208,166,102,166,30,255,0,204,190,1,0,31,252,230,230,171,2,255,0,214,190,1,0,114,211,158,27,158,119,255,0,224,190,1,0,18,252,217,217,95,2,255,0,234,190,1,0,173,95,179,117,112,179,255,0,244,190,1,0,233,209,231,231,41,138,255,0,254,190,1,0,62,208,166,102,166,30,255,0,8,191,1,0,31,252,230,230,171,2,255,0,18,191,1,0,27,210,166,166,118,29,255,0,28,191,1,0,114,211,158,27,158,119,255,0,38,191,1,0,18,252,217,217,95,2,255,0,48,191,1,0,173,95,179,117,112,179,255,0,58,191,1,0,233,209,231,231,41,138,255,0,68,191,1,0,62,208,166,102,166,30,255,0,78,191,1,0,31,252,230,230,171,2,255,0,88,191,1,0,27,210,166,166,118,29,255,0,98,191,1,0,0,0,102,102,102,102,255,0,108,191,1,0,76,25,243,224,243,219,255,0,117,191,1,0,95,61,221,168,221,181,255,0,126,191,1,0,140,170,202,67,162,202,255,0,135,191,1,0,65,17,249,240,249,232,255,0,144,191,1,0,87,46,228,186,228,188,255,0,153,191,1,0,123,101,204,123,204,196,255,0,162,191,1,0,141,197,190,43,140,190,255,0,171,191,1,0,65,17,249,240,249,232,255,0,180,191,1,0,87,46,228,186,228,188,255,0,189,191,1,0,123,101,204,123,204,196,255,0,198,191,1,0,140,170,202,67,162,202,255,0,207,191,1,0,145,243,172,8,104,172,255,0,216,191,1,0,65,17,249,240,249,232,255,0,225,191,1,0,77,41,235,204,235,197,255,0,234,191,1,0,95,61,221,168,221,181,255,0,243,191,1,0,123,101,204,123,204,196,255,0,252,191,1,0,140,170,202,67,162,202,255,0,5,192,1,0,145,243,172,8,104,172,255,0,14,192,1,0,65,17,249,240,249,232,255,0,23,192,1,0,77,41,235,204,235,197,255,0,32,192,1,0,95,61,221,168,221,181,255,0,41,192,1,0,123,101,204,123,204,196,255,0,50,192,1,0,137,160,211,78,179,211,255,0,59,192,1,0,141,197,190,43,140,190,255,0,68,192,1,0,147,242,158,8,88,158,255,0,77,192,1,0,60,12,252,247,252,240,255,0,86,192,1,0,76,25,243,224,243,219,255,0,95,192,1,0,77,41,235,204,235,197,255,0,104,192,1,0,95,61,221,168,221,181,255,0,113,192,1,0,123,101,204,123,204,196,255,0,122,192,1,0,137,160,211,78,179,211,255,0,131,192,1,0,141,197,190,43,140,190,255,0,140,192,1,0,147,242,158,8,88,158,255,0,149,192,1,0,60,12,252,247,252,240,255,0,158,192,1,0,76,25,243,224,243,219,255,0,167,192,1,0,77,41,235,204,235,197,255,0,176,192,1,0,95,61,221,168,221,181,255,0,185,192,1,0,123,101,204,123,204,196,255,0,194,192,1,0,137,160,211,78,179,211,255,0,203,192,1,0,141,197,190,43,140,190,255,0,212,192,1,0,145,243,172,8,104,172,255,0,221,192,1,0,150,239,129,8,64,129,255,0,230,192,1,0,74,21,245,229,245,224,255,0,241,192,1,0,80,72,217,161,217,155,255,0,252,192,1,0,98,178,163,49,163,84,255,0,7,193,1,0,73,15,248,237,248,233,255,0,18,193,1,0,78,54,228,186,228,179,255,0,29,193,1,0,86,104,196,116,196,118,255,0,40,193,1,0,98,190,139,35,139,69,255,0,51,193,1,0,73,15,248,237,248,233,255,0,62,193,1,0,78,54,228,186,228,179,255,0,73,193,1,0,86,104,196,116,196,118,255,0,84,193,1,0,98,178,163,49,163,84,255,0,95,193,1,0,102,255,109,0,109,44,255,0,106,193,1,0,73,15,248,237,248,233,255,0,117,193,1,0,77,44,233,199,233,192,255,0,128,193,1,0,80,72,217,161,217,155,255,0,139,193,1,0,86,104,196,116,196,118,255,0,150,193,1,0,98,178,163,49,163,84,255,0,161,193,1,0,102,255,109,0,109,44,255,0,172,193,1,0,73,15,248,237,248,233,255,0,183,193,1,0,77,44,233,199,233,192,255,0,194,193,1,0,80,72,217,161,217,155,255,0,205,193,1,0,86,104,196,116,196,118,255,0,216,193,1,0,96,158,171,65,171,93,255,0,227,193,1,0,98,190,139,35,139,69,255,0,238,193,1,0,108,255,90,0,90,50,255,0,249,193,1,0,72,7,252,247,252,245,255,0,4,194,1,0,74,21,245,229,245,224,255,0,15,194,1,0,77,44,233,199,233,192,255,0,26,194,1,0,80,72,217,161,217,155,255,0,37,194,1,0,86,104,196,116,196,118,255,0,48,194,1,0,96,158,171,65,171,93,255,0,59,194,1,0,98,190,139,35,139,69,255,0,70,194,1,0,108,255,90,0,90,50,255,0,81,194,1,0,72,7,252,247,252,245,255,0,92,194,1,0,74,21,245,229,245,224,255,0,103,194,1,0,77,44,233,199,233,192,255,0,114,194,1,0,80,72,217,161,217,155,255,0,125,194,1,0,86,104,196,116,196,118,255,0,136,194,1,0,96,158,171,65,171,93,255,0,147,194,1,0,98,190,139,35,139,69,255,0,158,194,1,0,102,255,109,0,109,44,255,0,169,194,1,0,101,255,68,0,68,27,255,0,180,194,1,0,0,0,240,240,240,240,255,0,190,194,1,0,0,0,189,189,189,189,255,0,200,194,1,0,0,0,99,99,99,99,255,0,210,194,1,0,0,0,247,247,247,247,255,0,220,194,1,0,0,0,204,204,204,204,255,0,230,194,1,0,0,0,150,150,150,150,255,0,240,194,1,0,0,0,82,82,82,82,255,0,250,194,1,0,0,0,247,247,247,247,255,0,4,195,1,0,0,0,204,204,204,204,255,0,14,195,1,0,0,0,150,150,150,150,255,0,24,195,1,0,0,0,99,99,99,99,255,0,34,195,1,0,0,0,37,37,37,37,255,0,44,195,1,0,0,0,247,247,247,247,255,0,54,195,1,0,0,0,217,217,217,217,255,0,64,195,1,0,0,0,189,189,189,189,255,0,74,195,1,0,0,0,150,150,150,150,255,0,84,195,1,0,0,0,99,99,99,99,255,0,94,195,1,0,0,0,37,37,37,37,255,0,104,195,1,0,0,0,247,247,247,247,255,0,114,195,1,0,0,0,217,217,217,217,255,0,124,195,1,0,0,0,189,189,189,189,255,0,134,195,1,0,0,0,150,150,150,150,255,0,144,195,1,0,0,0,115,115,115,115,255,0,154,195,1,0,0,0,82,82,82,82,255,0,164,195,1,0,0,0,37,37,37,37,255,0,174,195,1,0,0,0,255,255,255,255,255,0,184,195,1,0,0,0,240,240,240,240,255,0,194,195,1,0,0,0,217,217,217,217,255,0,204,195,1,0,0,0,189,189,189,189,255,0,214,195,1,0,0,0,150,150,150,150,255,0,224,195,1,0,0,0,115,115,115,115,255,0,234,195,1,0,0,0,82,82,82,82,255,0,244,195,1,0,0,0,37,37,37,37,255,0,254,195,1,0,0,0,255,255,255,255,255,0,8,196,1,0,0,0,240,240,240,240,255,0,18,196,1,0,0,0,217,217,217,217,255,0,28,196,1,0,0,0,189,189,189,189,255,0,38,196,1,0,0,0,150,150,150,150,255,0,48,196,1,0,0,0,115,115,115,115,255,0,58,196,1,0,0,0,82,82,82,82,255,0,68,196,1,0,0,0,37,37,37,37,255,0,78,196,1,0,0,0,0,0,0,0,255,0,88,196,1,0,21,48,254,254,230,206,255,0,100,196,1,0,19,147,253,253,174,107,255,0,112,196,1,0,14,240,230,230,85,13,255,0,124,196,1,0,19,32,254,254,237,222,255,0,136,196,1,0,20,120,253,253,190,133,255,0,148,196,1,0,17,194,253,253,141,60,255,0,160,196,1,0,13,253,217,217,71,1,255,0,172,196,1,0,19,32,254,254,237,222,255,0,184,196,1,0,20,120,253,253,190,133,255,0,196,196,1,0,17,194,253,253,141,60,255,0,208,196,1,0,14,240,230,230,85,13,255,0,220,196,1,0,13,250,166,166,54,3,255,0,232,196,1,0,19,32,254,254,237,222,255,0,244,196,1],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+20484);allocate([21,91,253,253,208,162,255,0,0,197,1,0,19,147,253,253,174,107,255,0,12,197,1,0,17,194,253,253,141,60,255,0,24,197,1,0,14,240,230,230,85,13,255,0,36,197,1,0,13,250,166,166,54,3,255,0,48,197,1,0,19,32,254,254,237,222,255,0,60,197,1,0,21,91,253,253,208,162,255,0,72,197,1,0,19,147,253,253,174,107,255,0,84,197,1,0,17,194,253,253,141,60,255,0,96,197,1,0,16,234,241,241,105,19,255,0,108,197,1,0,13,253,217,217,72,1,255,0,120,197,1,0,12,247,140,140,45,4,255,0,132,197,1,0,21,20,255,255,245,235,255,0,144,197,1,0,21,48,254,254,230,206,255,0,156,197,1,0,21,91,253,253,208,162,255,0,168,197,1,0,19,147,253,253,174,107,255,0,180,197,1,0,17,194,253,253,141,60,255,0,192,197,1,0,16,234,241,241,105,19,255,0,204,197,1,0,13,253,217,217,72,1,255,0,216,197,1,0,12,247,140,140,45,4,255,0,228,197,1,0,21,20,255,255,245,235,255,0,240,197,1,0,21,48,254,254,230,206,255,0,252,197,1,0,21,91,253,253,208,162,255,0,8,198,1,0,19,147,253,253,174,107,255,0,20,198,1,0,17,194,253,253,141,60,255,0,32,198,1,0,16,234,241,241,105,19,255,0,44,198,1,0,13,253,217,217,72,1,255,0,56,198,1,0,13,250,166,166,54,3,255,0,68,198,1,0,12,246,127,127,39,4,255,0,80,198,1,0,25,54,254,254,232,200,255,0,89,198,1,0,19,121,253,253,187,132,255,0,98,198,1,0,5,197,227,227,74,51,255,0,107,198,1,0,26,37,254,254,240,217,255,0,116,198,1,0,24,115,253,253,204,138,255,0,125,198,1,0,13,164,252,252,141,89,255,0,134,198,1,0,3,218,215,215,48,31,255,0,143,198,1,0,26,37,254,254,240,217,255,0,152,198,1,0,24,115,253,253,204,138,255,0,161,198,1,0,13,164,252,252,141,89,255,0,170,198,1,0,5,197,227,227,74,51,255,0,179,198,1,0,0,255,179,179,0,0,255,0,188,198,1,0,26,37,254,254,240,217,255,0,197,198,1,0,24,95,253,253,212,158,255,0,206,198,1,0,19,121,253,253,187,132,255,0,215,198,1,0,13,164,252,252,141,89,255,0,224,198,1,0,5,197,227,227,74,51,255,0,233,198,1,0,0,255,179,179,0,0,255,0,242,198,1,0,26,37,254,254,240,217,255,0,251,198,1,0,24,95,253,253,212,158,255,0,4,199,1,0,19,121,253,253,187,132,255,0,13,199,1,0,13,164,252,252,141,89,255,0,22,199,1,0,7,178,239,239,101,72,255,0,31,199,1,0,3,218,215,215,48,31,255,0,40,199,1,0,0,255,153,153,0,0,255,0,49,199,1,0,24,18,255,255,247,236,255,0,58,199,1,0,25,54,254,254,232,200,255,0,67,199,1,0,24,95,253,253,212,158,255,0,76,199,1,0,19,121,253,253,187,132,255,0,85,199,1,0,13,164,252,252,141,89,255,0,94,199,1,0,7,178,239,239,101,72,255,0,103,199,1,0,3,218,215,215,48,31,255,0,112,199,1,0,0,255,153,153,0,0,255,0,121,199,1,0,24,18,255,255,247,236,255,0,130,199,1,0,25,54,254,254,232,200,255,0,139,199,1,0,24,95,253,253,212,158,255,0,148,199,1,0,19,121,253,253,187,132,255,0,157,199,1,0,13,164,252,252,141,89,255,0,166,199,1,0,7,178,239,239,101,72,255,0,175,199,1,0,3,218,215,215,48,31,255,0,184,199,1,0,0,255,179,179,0,0,255,0,193,199,1,0,0,255,127,127,0,0,255,0,202,199,1,0,142,68,227,166,206,227,255,0,214,199,1,0,190,153,154,106,61,154,255,0,227,199,1,0,144,211,180,31,120,180,255,0,239,199,1,0,65,97,223,178,223,138,255,0,251,199,1,0,82,184,160,51,160,44,255,0,7,200,1,0,0,99,251,251,154,153,255,0,19,200,1,0,254,225,227,227,26,28,255,0,31,200,1,0,23,143,253,253,191,111,255,0,43,200,1,0,21,255,255,255,127,0,255,0,55,200,1,0,198,42,214,202,178,214,255,0,67,200,1,0,142,68,227,166,206,227,255,0,79,200,1,0,190,153,154,106,61,154,255,0,92,200,1,0,42,102,255,255,255,153,255,0,105,200,1,0,144,211,180,31,120,180,255,0,117,200,1,0,65,97,223,178,223,138,255,0,129,200,1,0,82,184,160,51,160,44,255,0,141,200,1,0,0,99,251,251,154,153,255,0,153,200,1,0,254,225,227,227,26,28,255,0,165,200,1,0,23,143,253,253,191,111,255,0,177,200,1,0,21,255,255,255,127,0,255,0,189,200,1,0,198,42,214,202,178,214,255,0,201,200,1,0,142,68,227,166,206,227,255,0,213,200,1,0,190,153,154,106,61,154,255,0,226,200,1,0,42,102,255,255,255,153,255,0,239,200,1,0,15,197,177,177,89,40,255,0,252,200,1,0,144,211,180,31,120,180,255,0,8,201,1,0,65,97,223,178,223,138,255,0,20,201,1,0,82,184,160,51,160,44,255,0,32,201,1,0,0,99,251,251,154,153,255,0,44,201,1,0,254,225,227,227,26,28,255,0,56,201,1,0,23,143,253,253,191,111,255,0,68,201,1,0,21,255,255,255,127,0,255,0,80,201,1,0,198,42,214,202,178,214,255,0,92,201,1,0,142,68,227,166,206,227,255,0,103,201,1,0,144,211,180,31,120,180,255,0,114,201,1,0,65,97,223,178,223,138,255,0,125,201,1,0,142,68,227,166,206,227,255,0,136,201,1,0,144,211,180,31,120,180,255,0,147,201,1,0,65,97,223,178,223,138,255,0,158,201,1,0,82,184,160,51,160,44,255,0,169,201,1,0,142,68,227,166,206,227,255,0,180,201,1,0,144,211,180,31,120,180,255,0,191,201,1,0,65,97,223,178,223,138,255,0,202,201,1,0,82,184,160,51,160,44,255,0,213,201,1,0,0,99,251,251,154,153,255,0,224,201,1,0,142,68,227,166,206,227,255,0,235,201,1,0,144,211,180,31,120,180,255,0,246,201,1,0,65,97,223,178,223,138,255,0,1,202,1,0,82,184,160,51,160,44,255,0,12,202,1,0,0,99,251,251,154,153,255,0,23,202,1,0,254,225,227,227,26,28,255,0,34,202,1,0,142,68,227,166,206,227,255,0,45,202,1,0,144,211,180,31,120,180,255,0,56,202,1,0,65,97,223,178,223,138,255,0,67,202,1,0,82,184,160,51,160,44,255,0,78,202,1,0,0,99,251,251,154,153,255,0,89,202,1,0,254,225,227,227,26,28,255,0,100,202,1,0,23,143,253,253,191,111,255,0,111,202,1,0,142,68,227,166,206,227,255,0,122,202,1,0,144,211,180,31,120,180,255,0,133,202,1,0,65,97,223,178,223,138,255,0,144,202,1,0,82,184,160,51,160,44,255,0,155,202,1,0,0,99,251,251,154,153,255,0,166,202,1,0,254,225,227,227,26,28,255,0,177,202,1,0,23,143,253,253,191,111,255,0,188,202,1,0,21,255,255,255,127,0,255,0,199,202,1,0,142,68,227,166,206,227,255,0,210,202,1,0,144,211,180,31,120,180,255,0,221,202,1,0,65,97,223,178,223,138,255,0,232,202,1,0,82,184,160,51,160,44,255,0,243,202,1,0,0,99,251,251,154,153,255,0,254,202,1,0,254,225,227,227,26,28,255,0,9,203,1,0,23,143,253,253,191,111,255,0,20,203,1,0,21,255,255,255,127,0,255,0,31,203,1,0,198,42,214,202,178,214,255,0,42,203,1,0,3,78,251,251,180,174,255,0,54,203,1,0,146,53,227,179,205,227,255,0,66,203,1,0,77,41,235,204,235,197,255,0,78,203,1,0,3,78,251,251,180,174,255,0,90,203,1,0,146,53,227,179,205,227,255,0,102,203,1,0,77,41,235,204,235,197,255,0,114,203,1,0,202,27,228,222,203,228,255,0,126,203,1,0,3,78,251,251,180,174,255,0,138,203,1,0,146,53,227,179,205,227,255,0,150,203,1,0,77,41,235,204,235,197,255,0,162,203,1,0,202,27,228,222,203,228,255,0,174,203,1,0,24,88,254,254,217,166,255,0,186,203,1,0,3,78,251,251,180,174,255,0,198,203,1,0,146,53,227,179,205,227,255,0,210,203,1,0,77,41,235,204,235,197,255,0,222,203,1,0,202,27,228,222,203,228,255,0,234,203,1,0,24,88,254,254,217,166,255,0,246,203,1,0,42,50,255,255,255,204,255,0,2,204,1,0,3,78,251,251,180,174,255,0,14,204,1,0,146,53,227,179,205,227,255,0,26,204,1,0,77,41,235,204,235,197,255,0,38,204,1,0,202,27,228,222,203,228,255,0,50,204,1,0,24,88,254,254,217,166,255,0,62,204,1,0,42,50,255,255,255,204,255,0,74,204,1,0,28,44,229,229,216,189,255,0,86,204,1,0,3,78,251,251,180,174,255,0,98,204,1,0,146,53,227,179,205,227,255,0,110,204,1,0,77,41,235,204,235,197,255,0,122,204,1,0,202,27,228,222,203,228,255,0,134,204,1,0,24,88,254,254,217,166,255,0,146,204,1,0,42,50,255,255,255,204,255,0,158,204,1,0,28,44,229,229,216,189,255,0,170,204,1,0,233,35,253,253,218,236,255,0,182,204,1,0,3,78,251,251,180,174,255,0,194,204,1,0,146,53,227,179,205,227,255,0,206,204,1,0,77,41,235,204,235,197,255,0,218,204,1,0,202,27,228,222,203,228,255,0,230,204,1,0,24,88,254,254,217,166,255,0,242,204,1,0,42,50,255,255,255,204,255,0,254,204,1,0,28,44,229,229,216,189,255,0,10,205,1,0,233,35,253,253,218,236,255,0,22,205,1,0,0,0,242,242,242,242,255,0,34,205,1,0,108,53,226,179,226,205,255,0,46,205,1,0,17,81,253,253,205,172,255,0,58,205,1,0,155,31,232,203,213,232,255,0,70,205,1,0,108,53,226,179,226,205,255,0,82,205,1,0,17,81,253,253,205,172,255,0,94,205,1,0,155,31,232,203,213,232,255,0,106,205,1,0,228,43,244,244,202,228,255,0,118,205,1,0,108,53,226,179,226,205,255,0,130,205,1,0,17,81,253,253,205,172,255,0,142,205,1,0,155,31,232,203,213,232,255,0,154,205,1,0,228,43,244,244,202,228,255,0,166,205,1,0,56,45,245,230,245,201,255,0,178,205,1,0,108,53,226,179,226,205,255,0,190,205,1,0,17,81,253,253,205,172,255,0,202,205,1,0,155,31,232,203,213,232,255,0,214,205,1,0,228,43,244,244,202,228,255,0,226,205,1,0,56,45,245,230,245,201,255,0,238,205,1,0,35,81,255,255,242,174,255,0,250,205,1,0,108,53,226,179,226,205,255,0,6,206,1,0,17,81,253,253,205,172,255,0,18,206,1,0,155,31,232,203,213,232,255,0,30,206,1,0,228,43,244,244,202,228,255,0,42,206,1,0,56,45,245,230,245,201,255,0,54,206,1,0,35,81,255,255,242,174,255,0,66,206,1,0,25,39,241,241,226,204,255,0,78,206,1,0,108,53,226,179,226,205,255,0,90,206,1,0,17,81,253,253,205,172,255,0,102,206,1,0,155,31,232,203,213,232,255,0,114,206,1,0,228,43,244,244,202,228,255,0,126,206,1,0,56,45,245,230,245,201,255,0,138,206,1,0,35,81,255,255,242,174,255,0,150,206,1,0,25,39,241,241,226,204,255,0,162,206,1,0,0,0,204,204,204,204,255,0,174,206,1,0,230,253,142,142,1,82,255,0,184,206,1,0,77,191,100,39,100,25,255,0,195,206,1,0,230,220,197,197,27,125,255,0,205,206,1,0,232,118,222,222,119,174,255,0,215,206,1,0,229,62,241,241,182,218,255,0,225,206,1,0,233,29,253,253,224,239,255,0,235,206,1,0,59,38,245,230,245,208,255,0,245,206,1,0,61,103,225,184,225,134,255,0,255,206,1,0,63,166,188,127,188,65,255,0,9,207,1,0,68,197,146,77,146,33,255,0,19,207,1,0,230,253,142,142,1,82,255,0,29,207,1,0,68,197,146,77,146,33,255,0,40,207,1,0,77,191,100,39,100,25,255,0,51,207,1,0,230,220,197,197,27,125,255,0,61,207,1,0,232,118,222,222,119,174,255,0,71,207,1,0,229,62,241,241,182,218,255,0,81,207,1,0,233,29,253,253,224,239,255,0,91,207,1,0,0,0,247,247,247,247,255,0,101,207,1,0,59,38,245,230,245,208,255,0,111,207,1,0,61,103,225,184,225,134,255,0,121,207,1,0,63,166,188,127,188,65,255,0,131,207,1,0,231,76,233,233,163,201,255,0,140,207,1,0,0,0,247,247,247,247,255,0,149,207,1,0,63,129,215,161,215,106,255,0,158,207,1,0,228,220,208,208,28,139,255,0,167,207,1,0,229,62,241,241,182,218,255,0,176,207,1,0,61,103,225,184,225,134,255,0,185,207,1,0,72,198,172,77,172,38,255,0,194,207,1,0,228,220,208,208,28,139,255,0,203,207,1,0,229,62,241,241,182,218,255,0,212,207,1,0,0,0,247,247,247,247,255,0,221,207,1,0,61,103,225,184,225,134,255,0,230,207,1,0,72,198,172,77,172,38,255,0,239,207,1,0,230,220,197,197,27,125,255,0,248,207,1,0,231,76,233,233,163,201,255,0,1,208,1,0,233,29,253,253,224,239,255,0,10,208,1,0,59,38,245,230,245,208,255,0,19,208,1,0,63,129,215,161,215,106,255,0,28,208,1,0,68,197,146,77,146,33,255,0,37,208,1,0,230,220,197,197,27,125,255,0,46,208,1,0,231,76,233,233,163,201,255,0,55,208,1,0,233,29,253,253,224,239,255,0,64,208,1,0,0,0,247,247,247,247,255,0,73,208,1,0,59,38,245,230,245,208,255,0,82,208,1,0,63,129,215,161,215,106,255,0,91,208,1,0,68,197,146,77,146,33,255,0,100,208,1,0,230,220,197,197,27,125,255,0,109,208,1,0,232,118,222,222,119,174,255,0,118,208,1,0,229,62,241,241,182,218,255,0,127,208,1,0,233,29,253,253,224,239,255,0,136,208,1,0,59,38,245,230,245,208,255,0,145,208,1,0,61,103,225,184,225,134,255,0,154,208,1,0,63,166,188,127,188,65,255,0,163,208,1,0,68,197,146,77,146,33,255,0,172,208,1,0,230,220,197,197,27,125,255,0,181,208,1,0,232,118,222,222,119,174,255,0,190,208,1,0,229,62,241,241,182,218,255,0,199,208,1,0,233,29,253,253,224,239,255,0,208,208,1,0,0,0,247,247,247,247,255,0,217,208,1,0,59,38,245,230,245,208,255,0,226,208,1,0,61,103,225,184,225,134,255,0,235,208,1,0,63,166,188,127,188,65,255,0,244,208,1,0,68,197,146,77,146,33,255,0,253,208,1,0,206,255,75,64,0,75,255,0,7,209,1,0,101,255,68,0,68,27,255,0,18,209,1,0,206,173,131,118,42,131,255,0,28,209,1,0,199,87,171,153,112,171,255,0,38,209,1,0,199,51,207,194,165,207,255,0,48,209,1,0,210,21,232,231,212,232,255,0,58,209,1,0,76,30,240,217,240,211,255,0,68,209,1,0,80,68,219,166,219,160,255,0,78,209,1,0,88,123,174,90,174,97,255,0,88,209,1,0,97,197,120,27,120,55,255,0,98,209,1,0,206,255,75,64,0,75,255,0,108,209,1,0,97,197,120,27,120,55,255,0,119,209,1,0,101,255,68,0,68,27,255,0,130,209,1,0,206,173,131,118,42,131,255,0,140,209,1,0,199,87,171,153,112,171,255,0,150,209,1,0,199,51,207,194,165,207,255,0,160,209,1,0,210,21,232,231,212,232,255,0,170,209,1,0,0,0,247,247,247,247,255,0,180,209,1,0,76,30,240,217,240,211,255,0,190,209,1,0,80,68,219,166,219,160,255,0,200,209,1,0,88,123,174,90,174,97,255,0,210,209,1,0,196,70,195,175,141,195,255,0,219,209,1,0,0,0,247,247,247,247,255,0,228,209,1,0,82,90,191,127,191,123,255,0,237,209,1,0,201,168,148,123,50,148,255,0,246,209,1,0,199,51,207,194,165,207,255,0,255,209,1,0,80,68,219,166,219,160,255,0,8,210,1,0,102,255,136,0,136,55,255,0,17,210,1,0,201,168,148,123,50,148,255,0,26,210,1,0,199,51,207,194,165,207,255,0,35,210,1,0,0,0,247,247,247,247,255,0,44,210,1,0,80,68,219,166,219,160,255,0,53,210,1,0,102,255,136,0,136,55,255,0,62,210,1,0,206,173,131,118,42,131,255,0,71,210,1,0,196,70,195,175,141,195,255,0,80,210,1,0,210,21,232,231,212,232,255,0,89,210,1,0,76,30,240,217,240,211,255,0,98,210,1,0,82,90,191,127,191,123,255,0,107,210,1,0,97,197,120,27,120,55,255,0,116,210,1,0,206,173,131,118,42,131,255,0,125,210,1,0,196,70,195,175,141,195,255,0,134,210,1,0,210,21,232,231,212,232,255,0,143,210,1,0,0,0,247,247,247,247,255,0,152,210,1,0,76,30,240,217,240,211,255,0,161,210,1,0,82,90,191,127,191,123,255,0,170,210,1,0,97,197,120,27,120,55,255,0,179,210,1,0,206,173,131,118,42,131,255,0,188,210,1,0,199,87,171,153,112,171,255,0,197,210,1,0,199,51,207,194,165,207,255,0,206,210,1,0,210,21,232,231,212,232,255,0,215,210,1,0,76,30,240,217,240,211,255,0,224,210,1,0,80,68,219,166,219,160,255,0,233,210,1,0,88,123,174,90,174,97,255,0,242,210,1,0,97,197,120,27,120,55,255,0,251,210,1,0,206,173,131,118,42,131,255,0,4,211,1,0,199,87,171,153,112,171,255,0,13,211,1,0,199,51,207,194,165,207,255,0,22,211,1,0,210,21,232,231,212,232,255,0,31,211,1,0,0,0,247,247,247,247,255,0,40,211,1,0,76,30,240,217,240,211,255,0,49,211,1,0,80,68,219,166,219,160,255,0,58,211,1,0,88,123,174,90,174,97,255,0,67,211,1,0,97,197,120,27,120,55,255,0,76,211,1,0,189,11,242,236,231,242,255,0,85,211,1,0,151,61,219,166,189,219,255,0,94,211,1,0,141,197,190,43,140,190,255,0,103,211,1,0,185,8,246,241,238,246,255,0,112,211,1,0,155,40,225,189,201,225,255,0,121,211,1,0,145,112,207,116,169,207,255,0,130,211,1,0,143,247,176,5,112,176,255,0,139,211,1,0,185,8,246,241,238,246,255,0,148,211,1,0,155,40,225,189,201,225,255,0,157,211,1,0,145,112,207,116,169,207,255,0,166,211,1,0,141,197,190,43,140,190,255,0,175,211,1,0,143,247,141,4,90,141,255,0,184,211,1,0,185,8,246,241,238,246,255,0,193,211,1,0,168,24,230,208,209,230,255,0,202,211,1,0,151,61,219,166,189,219,255,0,211,211,1,0,145,112,207,116,169,207,255,0,220,211,1,0,141,197,190,43,140,190,255,0,229,211,1,0,143,247,141,4,90,141,255,0,238,211,1,0,185,8,246,241,238,246,255,0,247,211,1,0,168,24,230,208,209,230,255,0,0,212,1,0,151,61,219,166,189,219,255,0,9,212,1,0,145,112,207,116,169,207,255,0,18,212,1,0,142,183,192,54,144,192,255,0,27,212,1,0,143,247,176,5,112,176,255,0,36,212,1,0,143,248,123,3,78,123,255,0,45,212,1,0,233,8,255,255,247,251,255,0,54,212,1,0,189,11,242,236,231,242,255,0,63,212,1,0,168,24,230,208,209,230,255,0,72,212,1,0,151,61,219,166,189,219,255,0,81,212,1,0,145,112,207,116,169,207,255,0,90,212,1,0,142,183,192,54,144,192,255,0,99,212,1,0,143,247,176,5,112,176,255,0,108,212,1,0,143,248,123,3,78,123,255,0,117,212,1,0,233,8,255,255,247,251,255,0,126,212,1,0,189,11,242,236,231,242,255,0,135,212,1,0,168,24,230,208,209,230,255,0,144,212,1,0,151,61,219,166,189,219,255,0,153,212,1,0,145,112,207,116,169,207,255,0,162,212,1,0,142,183,192,54,144,192,255,0,171,212,1,0,143,247,176,5,112,176,255,0,180,212,1,0,143,247,141,4,90,141,255,0,189,212,1,0,143,249,88,2,56,88,255,0,198,212,1,0,200,14,240,236,226,240,255,0,209,212,1,0,151,61,219,166,189,219,255,0,220,212,1,0,130,208,153,28,144,153,255,0,231,212,1,0,207,8,247,246,239,247,255,0,242,212,1,0,155,40,225,189,201,225,255,0,253,212,1,0,143,128,207,103,169,207,255,0,8,213,1,0,130,251,138,2,129,138,255,0,19,213,1,0,207,8,247,246,239,247,255,0,30,213,1,0,155,40,225,189,201,225,255,0,41,213,1,0,143,128,207,103,169,207,255,0,52,213,1,0,130,208,153,28,144,153,255,0,63,213,1,0,119,252,108,1,108,89,255,0,74,213,1,0,207,8,247,246,239,247,255,0,85,213,1,0,168,24,230,208,209,230,255,0,96,213,1,0,151,61,219,166,189,219,255,0,107,213,1,0,143,128,207,103,169,207,255,0,118,213,1,0,130,208,153,28,144,153,255,0,129,213,1,0,119,252,108,1,108,89,255,0,140,213,1,0,207,8,247,246,239,247,255,0,151,213,1,0,168,24,230,208,209,230,255,0,162,213,1,0,151,61,219,166,189,219,255,0,173,213,1,0,143,128,207,103,169,207,255,0,184,213,1,0,142,183,192,54,144,192,255,0,195,213,1,0,130,251,138,2,129,138,255,0,206,213,1,0,118,252,100,1,100,80,255,0,217,213,1,0,233,8,255,255,247,251,255,0,228,213,1,0,200,14,240,236,226,240,255,0,239,213,1,0,168,24,230,208,209,230,255,0,250,213,1,0,151,61,219,166,189,219,255,0,5,214,1,0,143,128,207,103,169,207,255,0,16,214,1,0,142,183,192,54,144,192,255,0,27,214,1,0,130,251,138,2,129,138,255,0,38,214,1,0,118,252,100,1,100,80,255,0,49,214,1,0,233,8,255,255,247,251,255,0,60,214,1,0,200,14,240,236,226,240,255,0,71,214,1,0,168,24,230,208,209,230,255,0,82,214,1,0,151,61,219,166,189,219,255,0,93,214,1,0,143,128,207,103,169,207,255,0,104,214,1,0,142,183,192,54,144,192,255,0,115,214,1,0,130,251,138,2,129,138,255,0,126,214,1,0,119,252,108,1,108,89,255,0,137,214,1,0,117,251,70,1,70,54,255,0,148,214,1,0,18,238,127,127,59,8,255,0,158,214,1,0,195,255,75,45,0,75,255,0,169,214,1,0,20,246,179,179,88,6,255,0,179,214,1,0,22,232,224,224,130,20,255,0,189,214,1,0,23,155,253,253,184,99,255,0,199,214,1,0,24,72,254,254,224,182,255,0,209,214,1,0,165,20,235,216,218,235,255,0,219,214,1,0,177,47,210,178,171,210,255,0,229,214,1,0,179,84,172,128,115,172,255,0,239,214,1,0,189,181,136,84,39,136,255,0,249,214,1,0,18,238,127,127,59,8,255,0,3,215,1,0,189,181,136,84,39,136,255,0,14,215,1,0,195,255,75,45,0,75,255,0,25,215,1,0,20,246,179,179,88,6,255,0,35,215,1,0,22,232,224,224,130,20,255,0,45,215,1,0,23,155,253,253,184,99,255,0,55,215,1,0,24,72,254,254,224,182,255,0,65,215,1,0,0,0,247,247,247,247,255,0,75,215,1,0,165,20,235,216,218,235,255,0,85,215,1,0,177,47,210,178,171,210,255,0,95,215,1,0,179,84,172,128,115,172,255,0,105,215,1,0,23,187,241,241,163,64,255,0,114,215,1,0,0,0,247,247,247,247,255,0,123,215,1,0,178,69,195,153,142,195,255,0,132,215,1,0,17,253,230,230,97,1,255,0,141,215,1,0,23,155,253,253,184,99,255,0,150,215,1,0,177,47,210,178,171,210,255,0,159,215,1,0,185,155,153,94,60,153,255,0,168,215,1,0,17,253,230,230,97,1,255,0,177,215,1,0,23,155,253,253,184,99,255,0,186,215,1,0,0,0,247,247,247,247,255,0,195,215,1,0,177,47,210,178,171,210,255,0,204,215,1,0,185,155,153,94,60,153,255,0,213,215,1,0,20,246,179,179,88,6,255,0,222,215,1,0,23,187,241,241,163,64,255,0,231,215,1,0,24,72,254,254,224,182,255,0,240,215,1,0,165,20,235,216,218,235,255,0,249,215,1,0,178,69,195,153,142,195,255,0,2,216,1,0,189,181,136,84,39,136,255,0,11,216,1,0,20,246,179,179,88,6,255,0,20,216,1,0,23,187,241,241,163,64,255,0,29,216,1,0,24,72,254,254,224,182,255,0,38,216,1,0,0,0,247,247,247,247,255,0,47,216,1,0,165,20,235,216,218,235,255,0,56,216,1,0,178,69,195,153,142,195,255,0,65,216,1,0,189,181,136,84,39,136,255,0,74,216,1,0,20,246,179,179,88,6,255,0,83,216,1,0,22,232,224,224,130,20,255,0,92,216,1,0,23,155,253,253,184,99,255,0,101,216,1,0,24,72,254,254,224,182,255,0,110,216,1,0,165,20,235,216,218,235,255,0,119,216,1,0,177,47,210,178,171,210,255,0,128,216,1,0,179,84,172,128,115,172,255,0,137,216,1,0,189,181,136,84,39,136,255,0,146,216,1,0,20,246,179,179,88,6,255,0,155,216,1,0,22,232,224,224,130,20,255,0,164,216,1,0,23,155,253,253,184,99,255,0,173,216,1,0,24,72,254,254,224,182,255,0,182,216,1,0,0,0,247,247,247,247,255,0,191,216,1,0,165,20,235,216,218,235,255,0,200,216,1,0,177,47,210,178,171,210,255,0,209,216,1,0,179,84,172,128,115,172,255,0,218,216,1,0,189,181,136,84,39,136,255,0,227,216,1,0,188,14,239,231,225,239,255,0,236,216,1,0,214,67,201,201,148,199,255,0,245,216,1,0,234,222,221,221,28,119,255,0,254,216,1,0,185,8,246,241,238,246,255,0,7,217,1,0,211,41,216,215,181,216,255,0,16,217,1,0,228,139,223,223,101,176,255,0,25,217,1,0,239,232,206,206,18,86,255,0,34,217,1,0,185,8,246,241,238,246,255,0,43,217,1,0,211,41,216,215,181,216,255,0,52,217,1,0,228,139,223,223,101,176,255,0,61,217,1,0,234,222,221,221,28,119,255,0,70,217,1,0,236,255,152,152,0,67,255,0,79,217,1,0,185,8,246,241,238,246,255,0,88,217,1,0,204,38,218,212,185,218,255,0,97,217,1,0,214,67,201,201,148,199,255,0,106,217,1,0,228,139,223,223,101,176,255,0,115,217,1,0,234,222,221,221,28,119,255,0,124,217,1,0,236,255,152,152,0,67,255,0,133,217,1,0,185,8,246,241,238,246,255,0,142,217,1,0,204,38,218,212,185,218,255,0,151,217,1,0,214,67,201,201,148,199,255,0,160,217,1,0,228,139,223,223,101,176,255,0,169,217,1,0,233,209,231,231,41,138,255,0,178,217,1,0,239,232,206,206,18,86,255,0,187,217,1,0,236,255,145,145,0,63,255,0,196,217,1,0,195,5,249,247,244,249,255,0,205,217,1,0,188,14,239,231,225,239,255,0,214,217,1,0,204,38,218,212,185,218,255,0,223,217,1,0,214,67,201,201,148,199,255,0,232,217,1,0,228,139,223,223,101,176,255,0,241,217,1,0,233,209,231,231,41,138,255,0,250,217,1,0,239,232,206,206,18,86,255,0,3,218,1,0,236,255,145,145,0,63,255,0,12,218,1,0,195,5,249,247,244,249,255,0,21,218,1,0,188,14,239,231,225,239,255,0,30,218,1,0,204,38,218,212,185,218,255,0,39,218,1,0,214,67,201,201,148,199,255,0,48,218,1,0,228,139,223,223,101,176,255,0,57,218,1,0,233,209,231,231,41,138,255,0,66,218,1,0,239,232,206,206,18,86,255,0,75,218,1,0,236,255,152,152,0,67,255,0,84,218,1,0,242,255,103,103,0,31,255,0,93,218,1,0,180,8,245,239,237,245,255,0,105,218,1,0,168,37,220,188,189,220,255,0,117,218,1,0,176,100,177,117,107,177,255,0,129,218,1,0,182,7,247,242,240,247,255,0,141,218,1,0,173,28,226,203,201,226,255,0,153,218,1,0,173,58,200,158,154,200,255,0,165,218,1,0,182,128,163,106,81,163,255,0,177,218,1,0,182,7,247,242,240,247,255,0,189,218,1,0,173,28,226,203,201,226,255,0,201,218,1,0,173,58,200,158,154,200,255,0,213,218,1,0,176,100,177,117,107,177,255,0,225,218,1,0,188,185,143,84,39,143,255,0,237,218,1,0,182,7,247,242,240,247,255,0,249,218,1,0,170,18,235,218,218,235,255,0,5,219,1,0,168,37,220,188,189,220,255,0,17,219,1,0,173,58,200,158,154,200,255,0,29,219,1,0,176,100,177,117,107,177,255,0,41,219,1,0,188,185,143,84,39,143,255,0,53,219,1,0,182,7,247,242,240,247,255,0,65,219,1,0,170,18,235,218,218,235,255,0,77,219,1,0,168,37,220,188,189,220,255,0,89,219,1,0,173,58,200,158,154,200,255,0,101,219,1,0,172,83,186,128,125,186,255,0,113,219,1,0,182,128,163,106,81,163,255,0,125,219,1,0,190,216,134,74,20,134,255,0,137,219,1,0,191,2,253,252,251,253,255,0,149,219,1,0,180,8,245,239,237,245,255,0,161,219,1,0,170,18,235,218,218,235,255,0,173,219,1,0,168,37,220,188,189,220,255,0,185,219,1,0,173,58,200,158,154,200,255,0,197,219,1,0,172,83,186,128,125,186,255,0,209,219,1,0,182,128,163,106,81,163,255,0,221,219,1,0,190,216,134,74,20,134,255,0,233,219,1,0,191,2,253,252,251,253,255,0,245,219,1,0,180,8,245,239,237,245,255,0,1,220,1,0,170,18,235,218,218,235,255,0,13,220,1,0,168,37,220,188,189,220,255,0,25,220,1,0,173,58,200,158,154,200,255,0,37,220,1,0,172,83,186,128,125,186,255,0,49,220,1,0,182,128,163,106,81,163,255,0,61,220,1,0,188,185,143,84,39,143,255,0,73,220,1,0,191,255,125,63,0,125,255,0,85,220,1,0,242,255,103,103,0,31,255,0,95,220,1,0,150,241,97,5,48,97,255,0,106,220,1,0,249,220,178,178,24,43,255,0,116,220,1,0,5,163,214,214,96,77,255,0,126,220,1,0,13,119,244,244,165,130,255,0,136,220,1,0,15,54,253,253,219,199,255,0,146,220,1,0,142,32,240,209,229,240,255,0,156,220,1,0,141,87,222,146,197,222,255,0,166,220,1,0,143,167,195,67,147,195,255,0,176,220,1,0,148,206,172,33,102,172,255,0,186,220,1,0,242,255,103,103,0,31,255,0,196,220,1,0,148,206,172,33,102,172,255,0,207,220,1,0,150,241,97,5,48,97,255,0,218,220,1,0,249,220,178,178,24,43,255,0,228,220,1,0,5,163,214,214,96,77,255,0,238,220,1,0,13,119,244,244,165,130,255,0,248,220,1,0,15,54,253,253,219,199,255,0,2,221,1,0,0,0,247,247,247,247,255,0,12,221,1,0,142,32,240,209,229,240,255,0,22,221,1,0,141,87,222,146,197,222,255,0,32,221,1,0,143,167,195,67,147,195,255,0,42,221,1,0,12,150,239,239,138,98,255,0,51,221,1,0,0,0,247,247,247,247,255,0,60,221,1,0,143,128,207,103,169,207,255,0,69,221,1,0,248,255,202,202,0,32,255,0,78,221,1,0,13,119,244,244,165,130,255,0,87,221,1,0,141,87,222,146,197,222,255,0,96,221,1,0,143,247,176,5,113,176,255,0,105,221,1,0,248,255,202,202,0,32,255,0,114,221,1,0,13,119,244,244,165,130,255,0,123,221,1,0,0,0,247,247,247,247,255,0,132,221,1,0,141,87,222,146,197,222,255,0,141,221,1,0,143,247,176,5,113,176,255,0,150,221,1,0,249,220,178,178,24,43,255,0,159,221,1,0,12,150,239,239,138,98,255,0,168,221,1,0,15,54,253,253,219,199,255,0,177,221,1,0,142,32,240,209,229,240,255,0,186,221,1,0,143,128,207,103,169,207,255,0,195,221,1,0,148,206,172,33,102,172,255,0,204,221,1,0,249,220,178,178,24,43,255,0,213,221,1,0,12,150,239,239,138,98,255,0,222,221,1,0,15,54,253,253,219,199,255,0,231,221,1,0,0,0,247,247,247,247,255,0,240,221,1,0,142,32,240,209,229,240,255,0,249,221,1,0,143,128,207,103,169,207,255,0,2,222,1,0,148,206,172,33,102,172,255,0,11,222,1,0,249,220,178,178,24,43,255,0,20,222,1,0,5,163,214,214,96,77,255,0,29,222,1,0,13,119,244,244,165,130,255,0,38,222,1,0,15,54,253,253,219,199,255,0,47,222,1,0,142,32,240,209,229,240,255,0,56,222,1,0,141,87,222,146,197,222,255,0,65,222,1,0,143,167,195,67,147,195,255,0,74,222,1,0,148,206,172,33,102,172,255,0,83,222,1,0,249,220,178,178,24,43,255,0,92,222,1,0,5,163,214,214,96,77,255,0,101,222,1,0,13,119,244,244,165,130,255,0,110,222,1,0,15,54,253,253,219,199,255,0,119,222,1,0,0,0,247,247,247,247,255,0,128,222,1,0,142,32,240,209,229,240,255,0,137,222,1,0,141,87,222,146,197,222,255,0,146,222,1,0,143,167,195,67,147,195,255,0,155,222,1,0,148,206,172,33,102,172,255,0,164,222,1,0,242,255,103,103,0,31,255,0,174,222,1,0,0,0,26,26,26,26,255,0,185,222,1,0,249,220,178,178,24,43,255,0,195,222,1,0,5,163,214,214,96,77,255,0,205,222,1,0,13,119,244,244,165,130,255,0,215,222,1,0,15,54,253,253,219,199,255,0,225,222,1,0,0,0,224,224,224,224,255,0,235,222,1,0,0,0,186,186,186,186,255,0,245,222,1,0,0,0,135,135,135,135,255,0,255,222,1,0,0,0,77,77,77,77,255,0,9,223,1,0,242,255,103,103,0,31,255,0,19,223,1,0,0,0,77,77,77,77,255,0,30,223,1,0,0,0,26,26,26,26,255,0,41,223,1,0,249,220,178,178,24,43,255,0,51,223,1,0,5,163,214,214,96,77,255,0,61,223,1,0,13,119,244,244,165,130,255,0,71,223,1,0,15,54,253,253,219,199,255,0,81,223,1,0,0,0,255,255,255,255,255,0,91,223,1,0,0,0,224,224,224,224,255,0,101,223,1,0,0,0,186,186,186,186,255,0,111,223,1,0,0,0,135,135,135,135,255,0,121,223,1,0,12,150,239,239,138,98,255,0,130,223,1,0,0,0,255,255,255,255,255,0,139,223,1,0,0,0,153,153,153,153,255,0,148,223,1,0,248,255,202,202,0,32,255,0,157,223,1,0,13,119,244,244,165,130,255,0,166,223,1,0,0,0,186,186,186,186,255,0,175,223,1,0,0,0,64,64,64,64,255,0,184,223,1,0,248,255,202,202,0,32,255,0,193,223,1,0,13,119,244,244,165,130,255,0,202,223,1,0,0,0,255,255,255,255,255,0,211,223,1,0,0,0,186,186,186,186,255,0,220,223,1,0,0,0,64,64,64,64,255,0,229,223,1,0,249,220,178,178,24,43,255,0,238,223,1,0,12,150,239,239,138,98,255,0,247,223,1,0,15,54,253,253,219,199,255,0,0,224,1,0,0,0,224,224,224,224,255,0,9,224,1,0,0,0,153,153,153,153,255,0,18,224,1,0,0,0,77,77,77,77,255,0,27,224,1,0,249,220,178,178,24,43,255,0,36,224,1,0,12,150,239,239,138,98,255,0,45,224,1,0,15,54,253,253,219,199,255,0,54,224,1,0,0,0,255,255,255,255,255,0,63,224,1,0,0,0,224,224,224,224,255,0,72,224,1,0,0,0,153,153,153,153,255,0,81,224,1,0,0,0,77,77,77,77,255,0,90,224,1,0,249,220,178,178,24,43,255,0,99,224,1,0,5,163,214,214,96,77,255,0,108,224,1,0,13,119,244,244,165,130,255,0,117,224,1,0,15,54,253,253,219,199,255,0,126,224,1,0,0,0,224,224,224,224,255,0,135,224,1,0,0,0,186,186,186,186,255,0,144,224,1,0,0,0,135,135,135,135,255,0,153,224,1,0,0,0,77,77,77,77,255,0,162,224,1,0,249,220,178,178,24,43,255,0,171,224,1,0,5,163,214,214,96,77,255,0,180,224,1,0,13,119,244,244,165,130,255,0,189,224,1,0,15,54,253,253,219,199,255,0,198,224,1,0,0,0,255,255,255,255,255,0,207,224,1,0,0,0,224,224,224,224,255,0,216,224,1,0,0,0,186,186,186,186,255,0,225,224,1,0,0,0,135,135,135,135,255,0,234,224,1,0,0,0,77,77,77,77,255,0,243,224,1,0,3,32,253,253,224,221,255,0,252,224,1,0,244,92,250,250,159,181,255,0,5,225,1,0,227,220,197,197,27,138,255,0,14,225,1,0,13,28,254,254,235,226,255,0,23,225,1,0,252,72,251,251,180,185,255,0,32,225,1,0,238,147,247,247,104,161,255,0,41,225,1,0,224,253,174,174,1,126,255,0,50,225,1,0,13,28,254,254,235,226,255,0,59,225,1,0,252,72,251,251,180,185,255,0,68,225,1,0,238,147,247,247,104,161,255,0,77,225,1,0,227,220,197,197,27,138,255,0,86,225,1,0,213,252,122,122,1,119,255,0,95,225,1,0,13,28,254,254,235,226,255,0,104,225,1,0,3,60,252,252,197,192,255,0,113,225,1,0,244,92,250,250,159,181,255,0,122,225,1,0,238,147,247,247,104,161,255,0,131,225,1,0,227,220,197,197,27,138,255,0,140,225,1,0,213,252,122,122,1,119,255,0,149,225,1,0,13,28,254,254,235,226,255,0,158,225,1,0,3,60,252,252,197,192,255,0,167,225,1,0,244,92,250,250,159,181,255,0,176,225,1,0,238,147,247,247,104,161,255,0,185,225,1,0,230,195,221,221,52,151,255,0,194,225,1,0,224,253,174,174,1,126,255,0,203,225,1,0,213,252,122,122,1,119,255,0,212,225,1,0,14,12,255,255,247,243,255,0,221,225,1,0,3,32,253,253,224,221,255,0,230,225,1,0,3,60,252,252,197,192,255,0,239,225,1,0,244,92,250,250,159,181,255,0,248,225,1,0,238,147,247,247,104,161,255,0,1,226,1,0,230,195,221,221,52,151,255,0,10,226,1,0,224,253,174,174,1,126,255,0,19,226,1,0,213,252,122,122,1,119,255,0,28,226,1,0,14,12,255,255,247,243,255,0,37,226,1,0,3,32,253,253,224,221,255,0,46,226,1,0,3,60,252,252,197,192,255,0,55,226,1,0,244,92,250,250,159,181,255,0,64,226,1,0,238,147,247,247,104,161,255,0,73,226,1,0,230,195,221,221,52,151,255,0,82,226,1,0,224,253,174,174,1,126,255,0,91,226,1,0,213,252,122,122,1,119,255,0,100,226,1,0,199,255,106,73,0,106,255,0,109,226,1,0,245,255,165,165,0,38,255,0,121,226,1,0,167,171,149,49,54,149,255,0,134,226,1,0,2,208,215,215,48,39,255,0,146,226,1,0,10,184,244,244,109,67,255,0,158,226,1,0,20,157,253,253,174,97,255,0,170,226,1,0,30,110,254,254,224,144,255,0,182,226,1,0,136,24,248,224,243,248,255,0,194,226,1,0,138,67,233,171,217,233,255,0,206,226,1,0,143,113,209,116,173,209,255,0,218,226,1,0,151,157,180,69,117,180,255,0,230,226,1,0,245,255,165,165,0,38,255,0,242,226,1,0,151,157,180,69,117,180,255,0,255,226,1,0,167,171,149,49,54,149,255,0,12,227,1,0,2,208,215,215,48,39,255,0,24,227,1,0,10,184,244,244,109,67,255,0,36,227,1,0,20,157,253,253,174,97,255,0,48,227,1,0,30,110,254,254,224,144,255,0,60,227,1,0,42,64,255,255,255,191,255,0,72,227,1,0,136,24,248,224,243,248,255,0,84,227,1,0,138,67,233,171,217,233,255,0,96,227,1,0,143,113,209,116,173,209,255,0,108,227,1,0,13,164,252,252,141,89,255,0,119,227,1,0,42,64,255,255,255,191,255,0,130,227,1,0,143,86,219,145,191,219,255,0,141,227,1,0,254,225,215,215,25,28,255,0,152,227,1,0,20,157,253,253,174,97,255,0,163,227,1,0,138,67,233,171,217,233,255,0,174,227,1,0,145,193,182,44,123,182,255,0,185,227,1,0,254,225,215,215,25,28,255,0,196,227,1,0,20,157,253,253,174,97,255,0,207,227,1,0,42,64,255,255,255,191,255,0,218,227,1,0,138,67,233,171,217,233,255,0,229,227,1,0,145,193,182,44,123,182,255,0,240,227,1,0,2,208,215,215,48,39,255,0,251,227,1,0,13,164,252,252,141,89,255,0,6,228,1,0,30,110,254,254,224,144,255,0,17,228,1,0,136,24,248,224,243,248,255,0,28,228,1,0,143,86,219,145,191,219,255,0,39,228,1,0,151,157,180,69,117,180,255,0,50,228,1,0,2,208,215,215,48,39,255,0,61,228,1,0,13,164,252,252,141,89,255,0,72,228,1,0,30,110,254,254,224,144,255,0,83,228,1,0,42,64,255,255,255,191,255,0,94,228,1,0,136,24,248,224,243,248,255,0,105,228,1,0,143,86,219,145,191,219,255,0,116,228,1,0,151,157,180,69,117,180,255,0,127,228,1,0,2,208,215,215,48,39,255,0,138,228,1,0,10,184,244,244,109,67,255,0,149,228,1,0,20,157,253,253,174,97,255,0,160,228,1,0,30,110,254,254,224,144,255,0,171,228,1,0,136,24,248,224,243,248,255,0,182,228,1,0,138,67,233,171,217,233,255,0,193,228,1,0,143,113,209,116,173,209,255,0,204,228,1,0,151,157,180,69,117,180,255,0,215,228,1,0,2,208,215,215,48,39,255,0,226,228,1,0,10,184,244,244,109,67,255,0,237,228,1,0,20,157,253,253,174,97,255,0,248,228,1,0,30,110,254,254,224,144,255,0,3,229,1,0,42,64,255,255,255,191,255,0,14,229,1,0,136,24,248,224,243,248,255,0,25,229,1,0,138,67,233,171,217,233,255,0,36,229,1,0,143,113,209,116,173,209,255,0,47,229,1,0,151,157,180,69,117,180,255,0,58,229,1,0,245,255,165,165,0,38,255,0,70,229,1,0,107,255,104,0,104,55,255,0,83,229,1,0,2,208,215,215,48,39,255,0,95,229,1,0,10,184,244,244,109,67,255,0,107,229,1,0,20,157,253,253,174,97,255,0,119,229,1,0,31,115,254,254,224,139,255,0,131,229,1,0,51,106,239,217,239,139,255,0,143,229,1,0,62,130,217,166,217,106,255,0,155,229,1,0,83,121,189,102,189,99,255,0,167,229,1,0,103,211,152,26,152,80,255,0,179,229,1,0,245,255,165,165,0,38,255,0,191,229,1,0,103,211,152,26,152,80,255,0,204,229,1,0,107,255,104,0,104,55,255,0,217,229,1,0,2,208,215,215,48,39,255,0,229,229,1,0,10,184,244,244,109,67,255,0,241,229,1,0,20,157,253,253,174,97,255,0,253,229,1,0,31,115,254,254,224,139,255,0,9,230,1,0,42,64,255,255,255,191,255,0,21,230,1,0,51,106,239,217,239,139,255,0,33,230,1,0,62,130,217,166,217,106,255,0,45,230,1,0,83,121,189,102,189,99,255,0,57,230,1,0,13,164,252,252,141,89,255,0,68,230,1,0,42,64,255,255,255,191,255,0,79,230,1,0,66,136,207,145,207,96,255,0,90,230,1,0,254,225,215,215,25,28,255,0,101,230,1,0,20,157,253,253,174,97,255,0,112,230,1,0,62,130,217,166,217,106,255,0,123,230,1,0,98,210,150,26,150,65,255,0,134,230,1,0,254,225,215,215,25,28,255,0,145,230,1,0,20,157,253,253,174,97,255,0,156,230,1,0,42,64,255,255,255,191,255,0,167,230,1,0,62,130,217,166,217,106,255,0,178,230,1,0,98,210,150,26,150,65,255,0,189,230,1,0,2,208,215,215,48,39,255,0,200,230,1,0,13,164,252,252,141,89,255,0,211,230,1,0,31,115,254,254,224,139,255,0,222,230,1,0,51,106,239,217,239,139,255,0,233,230,1,0,66,136,207,145,207,96,255,0,244,230,1,0,103,211,152,26,152,80,255,0,255,230,1,0,2,208,215,215,48,39,255,0,10,231,1,0,13,164,252,252,141,89,255,0,21,231,1,0,31,115,254,254,224,139,255,0,32,231,1,0,42,64,255,255,255,191,255,0,43,231,1,0,51,106,239,217,239,139,255,0,54,231,1,0,66,136,207,145],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+30724);allocate([207,96,255,0,65,231,1,0,103,211,152,26,152,80,255,0,76,231,1,0,2,208,215,215,48,39,255,0,87,231,1,0,10,184,244,244,109,67,255,0,98,231,1,0,20,157,253,253,174,97,255,0,109,231,1,0,31,115,254,254,224,139,255,0,120,231,1,0,51,106,239,217,239,139,255,0,131,231,1,0,62,130,217,166,217,106,255,0,142,231,1,0,83,121,189,102,189,99,255,0,153,231,1,0,103,211,152,26,152,80,255,0,164,231,1,0,2,208,215,215,48,39,255,0,175,231,1,0,10,184,244,244,109,67,255,0,186,231,1,0,20,157,253,253,174,97,255,0,197,231,1,0,31,115,254,254,224,139,255,0,208,231,1,0,42,64,255,255,255,191,255,0,219,231,1,0,51,106,239,217,239,139,255,0,230,231,1,0,62,130,217,166,217,106,255,0,241,231,1,0,83,121,189,102,189,99,255,0,252,231,1,0,103,211,152,26,152,80,255,0,7,232,1,0,13,44,254,254,224,210,255,0,16,232,1,0,9,139,252,252,146,114,255,0,25,232,1,0,1,211,222,222,45,38,255,0,34,232,1,0,13,37,254,254,229,217,255,0,43,232,1,0,11,108,252,252,174,145,255,0,52,232,1,0,7,179,251,251,106,74,255,0,61,232,1,0,253,224,203,203,24,29,255,0,70,232,1,0,13,37,254,254,229,217,255,0,79,232,1,0,11,108,252,252,174,145,255,0,88,232,1,0,7,179,251,251,106,74,255,0,97,232,1,0,1,211,222,222,45,38,255,0,106,232,1,0,253,231,165,165,15,21,255,0,115,232,1,0,13,37,254,254,229,217,255,0,124,232,1,0,12,92,252,252,187,161,255,0,133,232,1,0,9,139,252,252,146,114,255,0,142,232,1,0,7,179,251,251,106,74,255,0,151,232,1,0,1,211,222,222,45,38,255,0,160,232,1,0,253,231,165,165,15,21,255,0,169,232,1,0,13,37,254,254,229,217,255,0,178,232,1,0,12,92,252,252,187,161,255,0,187,232,1,0,9,139,252,252,146,114,255,0,196,232,1,0,7,179,251,251,106,74,255,0,205,232,1,0,3,208,239,239,59,44,255,0,214,232,1,0,253,224,203,203,24,29,255,0,223,232,1,0,251,255,153,153,0,13,255,0,232,232,1,0,14,15,255,255,245,240,255,0,241,232,1,0,13,44,254,254,224,210,255,0,250,232,1,0,12,92,252,252,187,161,255,0,3,233,1,0,9,139,252,252,146,114,255,0,12,233,1,0,7,179,251,251,106,74,255,0,21,233,1,0,3,208,239,239,59,44,255,0,30,233,1,0,253,224,203,203,24,29,255,0,39,233,1,0,251,255,153,153,0,13,255,0,48,233,1,0,14,15,255,255,245,240,255,0,57,233,1,0,13,44,254,254,224,210,255,0,66,233,1,0,12,92,252,252,187,161,255,0,75,233,1,0,9,139,252,252,146,114,255,0,84,233,1,0,7,179,251,251,106,74,255,0,93,233,1,0,3,208,239,239,59,44,255,0,102,233,1,0,253,224,203,203,24,29,255,0,111,233,1,0,253,231,165,165,15,21,255,0,120,233,1,0,249,255,103,103,0,13,255,0,129,233,1,0,254,225,228,228,26,28,255,0,138,233,1,0,146,178,184,55,126,184,255,0,147,233,1,0,83,147,175,77,175,74,255,0,156,233,1,0,254,225,228,228,26,28,255,0,165,233,1,0,146,178,184,55,126,184,255,0,174,233,1,0,83,147,175,77,175,74,255,0,183,233,1,0,207,132,163,152,78,163,255,0,192,233,1,0,254,225,228,228,26,28,255,0,201,233,1,0,146,178,184,55,126,184,255,0,210,233,1,0,83,147,175,77,175,74,255,0,219,233,1,0,207,132,163,152,78,163,255,0,228,233,1,0,21,255,255,255,127,0,255,0,237,233,1,0,254,225,228,228,26,28,255,0,246,233,1,0,146,178,184,55,126,184,255,0,255,233,1,0,83,147,175,77,175,74,255,0,8,234,1,0,207,132,163,152,78,163,255,0,17,234,1,0,21,255,255,255,127,0,255,0,26,234,1,0,42,204,255,255,255,51,255,0,35,234,1,0,254,225,228,228,26,28,255,0,44,234,1,0,146,178,184,55,126,184,255,0,53,234,1,0,83,147,175,77,175,74,255,0,62,234,1,0,207,132,163,152,78,163,255,0,71,234,1,0,21,255,255,255,127,0,255,0,80,234,1,0,42,204,255,255,255,51,255,0,89,234,1,0,15,193,166,166,86,40,255,0,98,234,1,0,254,225,228,228,26,28,255,0,107,234,1,0,146,178,184,55,126,184,255,0,116,234,1,0,83,147,175,77,175,74,255,0,125,234,1,0,207,132,163,152,78,163,255,0,134,234,1,0,21,255,255,255,127,0,255,0,143,234,1,0,42,204,255,255,255,51,255,0,152,234,1,0,15,193,166,166,86,40,255,0,161,234,1,0,232,121,247,247,129,191,255,0,170,234,1,0,254,225,228,228,26,28,255,0,179,234,1,0,146,178,184,55,126,184,255,0,188,234,1,0,83,147,175,77,175,74,255,0,197,234,1,0,207,132,163,152,78,163,255,0,206,234,1,0,21,255,255,255,127,0,255,0,215,234,1,0,42,204,255,255,255,51,255,0,224,234,1,0,15,193,166,166,86,40,255,0,233,234,1,0,232,121,247,247,129,191,255,0,242,234,1,0,0,0,153,153,153,153,255,0,251,234,1,0,114,120,194,102,194,165,255,0,4,235,1,0,11,155,252,252,141,98,255,0,13,235,1,0,156,77,203,141,160,203,255,0,22,235,1,0,114,120,194,102,194,165,255,0,31,235,1,0,11,155,252,252,141,98,255,0,40,235,1,0,156,77,203,141,160,203,255,0,49,235,1,0,228,102,231,231,138,195,255,0,58,235,1,0,114,120,194,102,194,165,255,0,67,235,1,0,11,155,252,252,141,98,255,0,76,235,1,0,156,77,203,141,160,203,255,0,85,235,1,0,228,102,231,231,138,195,255,0,94,235,1,0,58,155,216,166,216,84,255,0,103,235,1,0,114,120,194,102,194,165,255,0,112,235,1,0,11,155,252,252,141,98,255,0,121,235,1,0,156,77,203,141,160,203,255,0,130,235,1,0,228,102,231,231,138,195,255,0,139,235,1,0,58,155,216,166,216,84,255,0,148,235,1,0,34,208,255,255,217,47,255,0,157,235,1,0,114,120,194,102,194,165,255,0,166,235,1,0,11,155,252,252,141,98,255,0,175,235,1,0,156,77,203,141,160,203,255,0,184,235,1,0,228,102,231,231,138,195,255,0,193,235,1,0,58,155,216,166,216,84,255,0,202,235,1,0,34,208,255,255,217,47,255,0,211,235,1,0,25,90,229,229,196,148,255,0,220,235,1,0,114,120,194,102,194,165,255,0,229,235,1,0,11,155,252,252,141,98,255,0,238,235,1,0,156,77,203,141,160,203,255,0,247,235,1,0,228,102,231,231,138,195,255,0,0,236,1,0,58,155,216,166,216,84,255,0,9,236,1,0,34,208,255,255,217,47,255,0,18,236,1,0,25,90,229,229,196,148,255,0,27,236,1,0,0,0,179,179,179,179,255,0,36,236,1,0,120,84,211,141,211,199,255,0,46,236,1,0,211,82,189,188,128,189,255,0,57,236,1,0,42,76,255,255,255,179,255,0,67,236,1,0,175,37,218,190,186,218,255,0,77,236,1,0,4,139,251,251,128,114,255,0,87,236,1,0,144,100,211,128,177,211,255,0,97,236,1,0,22,156,253,253,180,98,255,0,107,236,1,0,58,134,222,179,222,105,255,0,117,236,1,0,233,47,252,252,205,229,255,0,127,236,1,0,0,0,217,217,217,217,255,0,137,236,1,0,120,84,211,141,211,199,255,0,147,236,1,0,211,82,189,188,128,189,255,0,158,236,1,0,77,41,235,204,235,197,255,0,169,236,1,0,42,76,255,255,255,179,255,0,179,236,1,0,175,37,218,190,186,218,255,0,189,236,1,0,4,139,251,251,128,114,255,0,199,236,1,0,144,100,211,128,177,211,255,0,209,236,1,0,22,156,253,253,180,98,255,0,219,236,1,0,58,134,222,179,222,105,255,0,229,236,1,0,233,47,252,252,205,229,255,0,239,236,1,0,0,0,217,217,217,217,255,0,249,236,1,0,120,84,211,141,211,199,255,0,3,237,1,0,211,82,189,188,128,189,255,0,14,237,1,0,77,41,235,204,235,197,255,0,25,237,1,0,37,144,255,255,237,111,255,0,36,237,1,0,42,76,255,255,255,179,255,0,46,237,1,0,175,37,218,190,186,218,255,0,56,237,1,0,4,139,251,251,128,114,255,0,66,237,1,0,144,100,211,128,177,211,255,0,76,237,1,0,22,156,253,253,180,98,255,0,86,237,1,0,58,134,222,179,222,105,255,0,96,237,1,0,233,47,252,252,205,229,255,0,106,237,1,0,0,0,217,217,217,217,255,0,116,237,1,0,120,84,211,141,211,199,255,0,125,237,1,0,42,76,255,255,255,179,255,0,134,237,1,0,175,37,218,190,186,218,255,0,143,237,1,0,120,84,211,141,211,199,255,0,152,237,1,0,42,76,255,255,255,179,255,0,161,237,1,0,175,37,218,190,186,218,255,0,170,237,1,0,4,139,251,251,128,114,255,0,179,237,1,0,120,84,211,141,211,199,255,0,188,237,1,0,42,76,255,255,255,179,255,0,197,237,1,0,175,37,218,190,186,218,255,0,206,237,1,0,4,139,251,251,128,114,255,0,215,237,1,0,144,100,211,128,177,211,255,0,224,237,1,0,120,84,211,141,211,199,255,0,233,237,1,0,42,76,255,255,255,179,255,0,242,237,1,0,175,37,218,190,186,218,255,0,251,237,1,0,4,139,251,251,128,114,255,0,4,238,1,0,144,100,211,128,177,211,255,0,13,238,1,0,22,156,253,253,180,98,255,0,22,238,1,0,120,84,211,141,211,199,255,0,31,238,1,0,42,76,255,255,255,179,255,0,40,238,1,0,175,37,218,190,186,218,255,0,49,238,1,0,4,139,251,251,128,114,255,0,58,238,1,0,144,100,211,128,177,211,255,0,67,238,1,0,22,156,253,253,180,98,255,0,76,238,1,0,58,134,222,179,222,105,255,0,85,238,1,0,120,84,211,141,211,199,255,0,94,238,1,0,42,76,255,255,255,179,255,0,103,238,1,0,175,37,218,190,186,218,255,0,112,238,1,0,4,139,251,251,128,114,255,0,121,238,1,0,144,100,211,128,177,211,255,0,130,238,1,0,22,156,253,253,180,98,255,0,139,238,1,0,58,134,222,179,222,105,255,0,148,238,1,0,233,47,252,252,205,229,255,0,157,238,1,0,120,84,211,141,211,199,255,0,166,238,1,0,42,76,255,255,255,179,255,0,175,238,1,0,175,37,218,190,186,218,255,0,184,238,1,0,4,139,251,251,128,114,255,0,193,238,1,0,144,100,211,128,177,211,255,0,202,238,1,0,22,156,253,253,180,98,255,0,211,238,1,0,58,134,222,179,222,105,255,0,220,238,1,0,233,47,252,252,205,229,255,0,229,238,1,0,0,0,217,217,217,217,255,0,238,238,1,0,237,253,158,158,1,66,255,0,252,238,1,0,177,130,162,94,79,162,255,0,11,239,1,0,250,180,213,213,62,79,255,0,25,239,1,0,10,184,244,244,109,67,255,0,39,239,1,0,20,157,253,253,174,97,255,0,53,239,1,0,31,115,254,254,224,139,255,0,67,239,1,0,49,96,245,230,245,152,255,0,81,239,1,0,79,65,221,171,221,164,255,0,95,239,1,0,114,120,194,102,194,165,255,0,109,239,1,0,143,187,189,50,136,189,255,0,123,239,1,0,237,253,158,158,1,66,255,0,137,239,1,0,143,187,189,50,136,189,255,0,152,239,1,0,177,130,162,94,79,162,255,0,167,239,1,0,250,180,213,213,62,79,255,0,181,239,1,0,10,184,244,244,109,67,255,0,195,239,1,0,20,157,253,253,174,97,255,0,209,239,1,0,31,115,254,254,224,139,255,0,223,239,1,0,42,64,255,255,255,191,255,0,237,239,1,0,49,96,245,230,245,152,255,0,251,239,1,0,79,65,221,171,221,164,255,0,9,240,1,0,114,120,194,102,194,165,255,0,23,240,1,0,13,164,252,252,141,89,255,0,36,240,1,0,42,64,255,255,255,191,255,0,49,240,1,0,81,77,213,153,213,148,255,0,62,240,1,0,254,225,215,215,25,28,255,0,75,240,1,0,20,157,253,253,174,97,255,0,88,240,1,0,79,65,221,171,221,164,255,0,101,240,1,0,143,196,186,43,131,186,255,0,114,240,1,0,254,225,215,215,25,28,255,0,127,240,1,0,20,157,253,253,174,97,255,0,140,240,1,0,42,64,255,255,255,191,255,0,153,240,1,0,79,65,221,171,221,164,255,0,166,240,1,0,143,196,186,43,131,186,255,0,179,240,1,0,250,180,213,213,62,79,255,0,192,240,1,0,13,164,252,252,141,89,255,0,205,240,1,0,31,115,254,254,224,139,255,0,218,240,1,0,49,96,245,230,245,152,255,0,231,240,1,0,81,77,213,153,213,148,255,0,244,240,1,0,143,187,189,50,136,189,255,0,1,241,1,0,250,180,213,213,62,79,255,0,14,241,1,0,13,164,252,252,141,89,255,0,27,241,1,0,31,115,254,254,224,139,255,0,40,241,1,0,42,64,255,255,255,191,255,0,53,241,1,0,49,96,245,230,245,152,255,0,66,241,1,0,81,77,213,153,213,148,255,0,79,241,1,0,143,187,189,50,136,189,255,0,92,241,1,0,250,180,213,213,62,79,255,0,105,241,1,0,10,184,244,244,109,67,255,0,118,241,1,0,20,157,253,253,174,97,255,0,131,241,1,0,31,115,254,254,224,139,255,0,144,241,1,0,49,96,245,230,245,152,255,0,157,241,1,0,79,65,221,171,221,164,255,0,170,241,1,0,114,120,194,102,194,165,255,0,183,241,1,0,143,187,189,50,136,189,255,0,196,241,1,0,250,180,213,213,62,79,255,0,209,241,1,0,10,184,244,244,109,67,255,0,222,241,1,0,20,157,253,253,174,97,255,0,235,241,1,0,31,115,254,254,224,139,255,0,248,241,1,0,42,64,255,255,255,191,255,0,5,242,1,0,49,96,245,230,245,152,255,0,18,242,1,0,79,65,221,171,221,164,255,0,31,242,1,0,114,120,194,102,194,165,255,0,44,242,1,0,143,187,189,50,136,189,255,0,57,242,1,0,147,15,255,240,248,255,255,0,72,242,1,0,24,35,250,250,235,215,255,0,90,242,1,0,127,255,255,0,255,255,255,0,100,242,1,0,113,128,255,127,255,212,255,0,116,242,1,0,127,15,255,240,255,255,255,0,127,242,1,0,42,26,245,245,245,220,255,0,138,242,1,0,23,58,255,255,228,196,255,0,150,242,1,0,0,0,0,0,0,0,255,0,161,242,1,0,25,49,255,255,235,205,255,0,181,242,1,0,170,255,255,0,0,255,255,0,191,242,1,0,192,206,226,138,43,226,255,0,207,242,1,0,0,190,165,165,42,42,255,0,218,242,1,0,23,99,222,222,184,135,255,0,233,242,1,0,128,103,160,95,158,160,255,0,248,242,1,0,63,255,255,127,255,0,255,0,8,243,1,0,17,218,210,210,105,30,255,0,23,243,1,0,11,175,255,255,127,80,255,0,34,243,1,0,154,147,237,100,149,237,255,0,54,243,1,0,33,34,255,255,248,220,255,0,68,243,1,0,246,231,220,220,20,60,255,0,81,243,1,0,127,255,255,0,255,255,255,0,91,243,1,0,170,255,139,0,0,139,255,0,105,243,1,0,127,255,139,0,139,139,255,0,119,243,1,0,30,239,184,184,134,11,255,0,138,243,1,0,0,0,169,169,169,169,255,0,152,243,1,0,85,255,100,0,100,0,255,0,167,243,1,0,0,0,169,169,169,169,255,0,181,243,1,0,39,110,189,189,183,107,255,0,196,243,1,0,212,255,139,139,0,139,255,0,213,243,1,0,58,142,107,85,107,47,255,0,233,243,1,0,23,255,255,255,140,0,255,0,249,243,1,0,198,192,204,153,50,204,255,0,9,244,1,0,0,255,139,139,0,0,255,0,22,244,1,0,10,121,233,233,150,122,255,0,38,244,1,0,85,61,188,143,188,143,255,0,56,244,1,0,175,143,139,72,61,139,255,0,75,244,1,0,127,103,79,47,79,79,255,0,94,244,1,0,127,103,79,47,79,79,255,0,113,244,1,0,128,255,209,0,206,209,255,0,132,244,1,0,199,255,211,148,0,211,255,0,148,244,1,0,232,235,255,255,20,147,255,0,162,244,1,0,138,255,255,0,191,255,255,0,179,244,1,0,0,0,105,105,105,105,255,0,192,244,1,0,0,0,105,105,105,105,255,0,205,244,1,0,148,225,255,30,144,255,255,0,221,244,1,0,0,206,178,178,34,34,255,0,236,244,1,0,28,15,255,255,250,240,255,0,253,244,1,0,85,192,139,34,139,34,255,0,14,245,1,0,212,255,255,255,0,255,255,0,27,245,1,0,0,0,220,220,220,220,255,0,42,245,1,0,170,7,255,248,248,255,255,0,58,245,1,0,35,255,255,255,215,0,255,0,68,245,1,0,30,217,218,218,165,32,255,0,83,245,1,0,0,0,128,128,128,128,255,0,93,245,1,0,85,255,128,0,128,0,255,0,104,245,1,0,59,208,255,173,255,47,255,0,121,245,1,0,0,0,128,128,128,128,255,0,131,245,1,0,85,15,255,240,255,240,255,0,145,245,1,0,233,150,255,255,105,180,255,0,158,245,1,0,0,140,205,205,92,92,255,0,173,245,1,0,194,255,130,75,0,130,255,0,185,245,1,0,42,15,255,255,255,240,255,0,196,245,1,0,38,106,240,240,230,140,255,0,207,245,1,0,170,20,250,230,230,250,255,0,221,245,1,0,240,15,255,255,240,245,255,0,240,245,1,0,64,255,252,124,252,0,255,0,255,245,1,0,38,49,255,255,250,205,255,0,17,246,1,0,137,63,230,173,216,230,255,0,32,246,1,0,0,119,240,240,128,128,255,0,48,246,1,0,127,31,255,224,255,255,255,0,63,246,1,0,42,40,250,250,250,210,255,0,89,246,1,0,0,0,211,211,211,211,255,0,104,246,1,0,85,100,238,144,238,144,255,0,120,246,1,0,0,0,211,211,211,211,255,0,135,246,1,0,248,73,255,255,182,193,255,0,150,246,1,0,12,132,255,255,160,122,255,0,167,246,1,0,125,209,178,32,178,170,255,0,186,246,1,0,143,117,250,135,206,250,255,0,204,246,1,0,148,56,153,119,136,153,255,0,224,246,1,0,148,56,153,119,136,153,255,0,244,246,1,0,151,52,222,176,196,222,255,0,8,247,1,0,42,31,255,255,255,224,255,0,25,247,1,0,85,255,255,0,255,0,255,0,35,247,1,0,85,192,205,50,205,50,255,0,50,247,1,0,21,20,250,250,240,230,255,0,61,247,1,0,212,255,255,255,0,255,255,0,74,247,1,0,0,255,128,128,0,0,255,0,86,247,1,0,113,128,205,102,205,170,255,0,108,247,1,0,170,255,205,0,0,205,255,0,124,247,1,0,204,152,211,186,85,211,255,0,142,247,1,0,183,124,219,147,112,219,255,0,160,247,1,0,103,169,179,60,179,113,255,0,180,247,1,0,176,143,238,123,104,238,255,0,201,247,1,0,111,255,250,0,250,154,255,0,224,247,1,0,125,167,209,72,209,204,255,0,245,247,1,0,228,228,199,199,21,133,255,0,10,248,1,0,170,198,112,25,25,112,255,0,28,248,1,0,106,9,255,245,255,250,255,0,43,248,1,0,4,30,255,255,228,225,255,0,58,248,1,0,26,73,255,255,228,181,255,0,72,248,1,0,25,81,255,255,222,173,255,0,89,248,1,0,170,255,128,0,0,128,255,0,99,248,1,0,27,23,253,253,245,230,255,0,112,248,1,0,42,255,128,128,128,0,255,0,123,248,1,0,56,192,142,107,142,35,255,0,138,248,1,0,27,255,255,255,165,0,255,0,150,248,1,0,11,255,255,255,69,0,255,0,165,248,1,0,214,123,218,218,112,214,255,0,177,248,1,0,38,72,238,238,232,170,255,0,196,248,1,0,85,100,251,152,251,152,255,0,211,248,1,0,127,67,238,175,238,238,255,0,230,248,1,0,241,124,219,219,112,147,255,0,249,248,1,0,26,41,255,255,239,213,255,0,9,249,1,0,20,70,255,255,218,185,255,0,24,249,1,0,20,176,205,205,133,63,255,0,34,249,1,0,247,63,255,255,192,203,255,0,44,249,1,0,212,70,221,221,160,221,255,0,54,249,1,0,132,59,230,176,224,230,255,0,70,249,1,0,212,255,128,128,0,128,255,0,82,249,1,0,0,255,255,255,0,0,255,0,91,249,1,0,0,61,188,188,143,143,255,0,106,249,1,0,159,181,225,65,105,225,255,0,121,249,1,0,17,220,139,139,69,19,255,0,138,249,1,0,4,138,250,250,128,114,255,0,150,249,1,0,19,154,244,244,164,96,255,0,166,249,1,0,103,170,139,46,139,87,255,0,180,249,1,0,17,16,255,255,245,238,255,0,194,249,1,0,13,183,160,160,82,45,255,0,206,249,1,0,0,0,192,192,192,192,255,0,218,249,1,0,139,108,235,135,206,235,255,0,231,249,1,0,175,143,205,106,90,205,255,0,246,249,1,0,148,56,144,112,128,144,255,0,5,250,1,0,148,56,144,112,128,144,255,0,20,250,1,0,0,5,255,255,250,250,255,0,30,250,1,0,106,255,255,0,255,127,255,0,47,250,1,0,146,155,180,70,130,180,255,0,62,250,1,0,24,84,210,210,180,140,255,0,71,250,1,0,127,255,128,0,128,128,255,0,81,250,1,0,212,29,216,216,191,216,255,0,94,250,1,0,6,184,255,255,99,71,255,0,106,250,1,0,123,182,224,64,224,208,255,0,121,250,1,0,212,115,238,238,130,238,255,0,133,250,1,0,27,68,245,245,222,179,255,0,144,250,1,0,0,0,255,255,255,255,255,0,155,250,1,0,0,0,245,245,245,245,255,0,171,250,1,0,42,255,255,255,255,0,255,0,183,250,1,0,56,192,205,154,205,50,255,0,200,250,1,0,45,67,252,247,252,185,255,0,209,250,1,0,68,91,221,173,221,142,255,0,218,250,1,0,98,178,163,49,163,84,255,0,227,250,1,0,42,50,255,255,255,204,255,0,236,250,1,0,62,85,230,194,230,153,255,0,245,250,1,0,85,100,198,120,198,121,255,0,254,250,1,0,99,187,132,35,132,67,255,0,7,251,1,0,42,50,255,255,255,204,255,0,16,251,1,0,62,85,230,194,230,153,255,0,25,251,1,0,85,100,198,120,198,121,255,0,34,251,1,0,98,178,163,49,163,84,255,0,43,251,1,0,107,255,104,0,104,55,255,0,52,251,1,0,42,50,255,255,255,204,255,0,61,251,1,0,55,81,240,217,240,163,255,0,70,251,1,0,68,91,221,173,221,142,255,0,79,251,1,0,85,100,198,120,198,121,255,0,88,251,1,0,98,178,163,49,163,84,255,0,97,251,1,0,107,255,104,0,104,55,255,0,106,251,1,0,42,50,255,255,255,204,255,0,115,251,1,0,55,81,240,217,240,163,255,0,124,251,1,0,68,91,221,173,221,142,255,0,133,251,1,0,85,100,198,120,198,121,255,0,142,251,1,0,96,158,171,65,171,93,255,0,151,251,1,0,99,187,132,35,132,67,255,0,160,251,1,0,108,255,90,0,90,50,255,0,169,251,1,0,42,25,255,255,255,229,255,0,178,251,1,0,45,67,252,247,252,185,255,0,187,251,1,0,55,81,240,217,240,163,255,0,196,251,1,0,68,91,221,173,221,142,255,0,205,251,1,0,85,100,198,120,198,121,255,0,214,251,1,0,96,158,171,65,171,93,255,0,223,251,1,0,99,187,132,35,132,67,255,0,232,251,1,0,108,255,90,0,90,50,255,0,241,251,1,0,42,25,255,255,255,229,255,0,250,251,1,0,45,67,252,247,252,185,255,0,3,252,1,0,55,81,240,217,240,163,255,0,12,252,1,0,68,91,221,173,221,142,255,0,21,252,1,0,85,100,198,120,198,121,255,0,30,252,1,0,96,158,171,65,171,93,255,0,39,252,1,0,99,187,132,35,132,67,255,0,48,252,1,0,107,255,104,0,104,55,255,0,57,252,1,0,110,255,69,0,69,41,255,0,66,252,1,0,49,73,248,237,248,177,255,0,77,252,1,0,117,97,205,127,205,187,255,0,88,252,1,0,144,194,184,44,127,184,255,0,99,252,1,0,42,50,255,255,255,204,255,0,110,252,1,0,99,66,218,161,218,180,255,0,121,252,1,0,132,170,196,65,182,196,255,0,132,252,1,0,150,203,168,34,94,168,255,0,143,252,1,0,42,50,255,255,255,204,255,0,154,252,1,0,99,66,218,161,218,180,255,0,165,252,1,0,132,170,196,65,182,196,255,0,176,252,1,0,144,194,184,44,127,184,255,0,187,252,1,0,164,191,148,37,52,148,255,0,198,252,1,0,42,50,255,255,255,204,255,0,209,252,1,0,69,58,233,199,233,180,255,0,220,252,1,0,117,97,205,127,205,187,255,0,231,252,1,0,132,170,196,65,182,196,255,0,242,252,1,0,144,194,184,44,127,184,255,0,253,252,1,0,164,191,148,37,52,148,255,0,8,253,1,0,42,50,255,255,255,204,255,0,19,253,1,0,69,58,233,199,233,180,255,0,30,253,1,0,117,97,205,127,205,187,255,0,41,253,1,0,132,170,196,65,182,196,255,0,52,253,1,0,139,216,192,29,145,192,255,0,63,253,1,0,150,203,168,34,94,168,255,0,74,253,1,0,158,231,132,12,44,132,255,0,85,253,1,0,42,38,255,255,255,217,255,0,96,253,1,0,49,73,248,237,248,177,255,0,107,253,1,0,69,58,233,199,233,180,255,0,118,253,1,0,117,97,205,127,205,187,255,0,129,253,1,0,132,170,196,65,182,196,255,0,140,253,1,0,139,216,192,29,145,192,255,0,151,253,1,0,150,203,168,34,94,168,255,0,162,253,1,0,158,231,132,12,44,132,255,0,173,253,1,0,42,38,255,255,255,217,255,0,184,253,1,0,49,73,248,237,248,177,255,0,195,253,1,0,69,58,233,199,233,180,255,0,206,253,1,0,117,97,205,127,205,187,255,0,217,253,1,0,132,170,196,65,182,196,255,0,228,253,1,0,139,216,192,29,145,192,255,0,239,253,1,0,150,203,168,34,94,168,255,0,250,253,1,0,164,191,148,37,52,148,255,0,5,254,1,0,158,231,88,8,29,88,255,0,16,254,1,0,37,66,255,255,247,188,255,0,27,254,1,0,28,175,254,254,196,79,255,0,38,254,1,0,16,238,217,217,95,14,255,0,49,254,1,0,42,42,255,255,255,212,255,0,60,254,1,0,28,112,254,254,217,142,255,0,71,254,1,0,22,213,254,254,153,41,255,0,82,254,1,0,15,252,204,204,76,2,255,0,93,254,1,0,42,42,255,255,255,212,255,0,104,254,1,0,28,112,254,254,217,142,255,0,115,254,1,0,22,213,254,254,153,41,255,0,126,254,1,0,16,238,217,217,95,14,255,0,137,254,1,0,13,248,153,153,52,4,255,0,148,254,1,0,42,42,255,255,255,212,255,0,159,254,1,0,31,109,254,254,227,145,255,0,170,254,1,0,28,175,254,254,196,79,255,0,181,254,1,0,22,213,254,254,153,41,255,0,192,254,1,0,16,238,217,217,95,14,255,0,203,254,1,0,13,248,153,153,52,4,255,0,214,254,1,0,42,42,255,255,255,212,255,0,225,254,1,0,31,109,254,254,227,145,255,0,236,254,1,0,28,175,254,254,196,79,255,0,247,254,1,0,22,213,254,254,153,41,255,0,2,255,1,0,18,233,236,236,112,20,255,0,13,255,1,0,15,252,204,204,76,2,255,0,24,255,1,0,12,247,140,140,45,4,255,0,35,255,1,0,42,25,255,255,255,229,255,0,46,255,1,0,37,66,255,255,247,188,255,0,57,255,1,0,31,109,254,254,227,145,255,0,68,255,1,0,28,175,254,254,196,79,255,0,79,255,1,0,22,213,254,254,153,41,255,0,90,255,1,0,18,233,236,236,112,20,255,0,101,255,1,0,15,252,204,204,76,2,255,0,112,255,1,0,12,247,140,140,45,4,255,0,123,255,1,0,42,25,255,255,255,229,255,0,134,255,1,0,37,66,255,255,247,188,255,0,145,255,1,0,31,109,254,254,227,145,255,0,156,255,1,0,28,175,254,254,196,79,255,0,167,255,1,0,22,213,254,254,153,41,255,0,178,255,1,0,18,233,236,236,112,20,255,0,189,255,1,0,15,252,204,204,76,2,255,0,200,255,1,0,13,248,153,153,52,4,255,0,211,255,1,0,13,240,102,102,37,6,255,0,222,255,1,0,34,95,255,255,237,160,255,0,233,255,1,0,24,178,254,254,178,76,255,0,244,255,1,0,5,221,240,240,59,32,255,0,255,255,1,0,42,77,255,255,255,178,255,0,10,0,2,0,29,162,254,254,204,92,255,0,21,0,2,0,17,194,253,253,141,60,255,0,32,0,2,0,254,225,227,227,26,28,255,0,43,0,2,0,42,77,255,255,255,178,255,0,54,0,2,0,29,162,254,254,204,92,255,0,65,0,2,0,17,194,253,253,141,60,255,0,76,0,2,0,5,221,240,240,59,32,255,0,87,0,2,0,246,255,189,189,0,38,255,0,98,0,2,0,42,77,255,255,255,178,255,0,109,0,2,0,30,136,254,254,217,118,255,0,120,0,2,0,24,178,254,254,178,76,255,0,131,0,2,0,17,194,253,253,141,60,255,0,142,0,2,0,5,221,240,240,59,32,255,0,153,0,2,0,246,255,189,189,0,38,255,0,164,0,2,0,42,77,255,255,255,178,255,0,175,0,2,0,30,136,254,254,217,118,255,0,186,0,2,0,24,178,254,254,178,76,255,0,197,0,2,0,17,194,253,253,141,60,255,0,208,0,2,0,7,212,252,252,78,42,255,0,219,0,2,0,254,225,227,227,26,28,255,0,230,0,2,0,245,255,177,177,0,38,255,0,241,0,2,0,42,50,255,255,255,204,255,0,252,0,2,0,34,95,255,255,237,160,255,0,7,1,2,0,30,136,254,254,217,118,255,0,18,1,2,0,24,178,254,254,178,76,255,0,29,1,2,0,17,194,253,253,141,60,255,0,40,1,2,0,7,212,252,252,78,42,255,0,51,1,2,0,254,225,227,227,26,28,255,0,62,1,2,0,245,255,177,177,0,38,255,0,73,1,2,0,42,50,255,255,255,204,255,0,84,1,2,0,34,95,255,255,237,160,255,0,95,1,2,0,30,136,254,254,217,118,255,0,106,1,2,0,24,178,254,254,178,76,255,0,117,1,2,0,17,194,253,253,141,60,255,0,128,1,2,0,7,212,252,252,78,42,255,0,139,1,2,0,254,225,227,227,26,28,255,0,150,1,2,0,246,255,189,189,0,38,255,0,161,1,2,0,242,255,128,128,0,38,255,0,172,1,2,0,147,15,255,240,248,255,255,0,182,1,2,0,24,35,250,250,235,215,255,0,195,1,2,0,23,36,255,255,239,219,255,0,209,1,2,0,23,36,238,238,223,204,255,0,223,1,2,0,23,36,205,205,192,176,255,0,237,1,2,0,24,34,139,139,131,120,255,0,251,1,2,0,113,128,255,127,255,212,255,0,6,2,2,0,113,128,255,127,255,212,255,0,18,2,2,0,113,128,238,118,238,198,255,0,30,2,2,0,113,128,205,102,205,170,255,0,42,2,2,0,113,128,139,69,139,116,255,0,54,2,2,0,127,15,255,240,255,255,255,0,60,2,2,0,127,15,255,240,255,255,255,0,67,2,2,0,127,15,238,224,238,238,255,0,74,2,2,0,127,14,205,193,205,205,255,0,81,2,2,0,127,14,139,131,139,139,255,0,88,2,2,0,42,26,245,245,245,220,255,0,94,2,2,0,23,58,255,255,228,196,255,0,101,2,2,0,23,58,255,255,228,196,255,0,109,2,2,0,23,58,238,238,213,183,255,0,117,2,2,0,22,58,205,205,183,158,255,0,125,2,2,0,23,58,139,139,125,107,255,0,143,25,2,0,0,0,0,0,0,0,255,0,133,2,2,0,25,49,255,255,235,205,255,0,148,2,2,0,170,255,255,0,0,255,255,0,153,2,2,0,170,255,255,0,0,255,255,0,159,2,2,0,170,255,238,0,0,238,255,0,165,2,2,0,170,255,205,0,0,205,255,0,171,2,2,0,170,255,139,0,0,139,255,0,177,2,2,0,192,206,226,138,43,226,255,0,188,2,2,0,0,190,165,165,42,42,255,0,194,2,2,0,0,191,255,255,64,64,255,0,201,2,2,0,0,191,238,238,59,59,255,0,208,2,2,0,0,191,205,205,51,51,255,0,215,2,2,0,0,190,139,139,35,35,255,0,222,2,2,0,23,99,222,222,184,135,255,0,232,2,2,0,23,100,255,255,211,155,255,0,243,2,2,0,23,99,238,238,197,145,255,0,254,2,2,0,23,99,205,205,170,125,255,0,9,3,2,0,23,99,139,139,115,85,255,0,20,3,2,0,128,103,160,95,158,160,255,0,30,3,2,0,131,103,255,152,245,255,255,0,41,3,2,0,131,102,238,142,229,238,255,0,52,3,2,0,131,103,205,122,197,205,255,0,63,3,2,0,131,102,139,83,134,139,255,0,74,3,2,0,63,255,255,127,255,0,255,0,85,3,2,0,63,255,255,127,255,0,255,0,97,3,2,0,63,255,238,118,238,0,255,0,109,3,2,0,63,255,205,102,205,0,255,0,121,3,2,0,63,255,139,69,139,0,255,0,133,3,2,0,17,218,210,210,105,30,255,0,143,3,2,0,17,219,255,255,127,36,255,0,154,3,2,0,17,219,238,238,118,33,255,0,165,3,2,0,17,218,205,205,102,29,255,0,176,3,2,0,17,220,139,139,69,19,255,0,187,3,2,0,11,175,255,255,127,80,255,0,193,3,2,0,7,169,255,255,114,86,255,0,200,3,2,0,6,169,238,238,106,80,255,0,207,3,2,0,6,169,205,205,91,69,255,0,214,3,2,0,6,168,139,139,62,47,255,0,221,3,2,0,154,147,237,100,149,237,255,0,236,3,2,0,33,34,255,255,248,220,255,0,245,3,2,0,33,34,255,255,248,220,255,0,255,3,2,0,34,35,238,238,232,205,255,0,9,4,2,0,34,34,205,205,200,177,255,0,19,4,2,0,35,34,139,139,136,120,255,0,29,4,2,0,246,231,220,220,20,60,255,0,37,4,2,0,127,255,255,0,255,255,255,0,42,4,2,0,127,255,255,0,255,255,255,0,48,4,2,0,127,255,238,0,238,238,255,0,54,4,2,0,127,255,205,0,205,205,255,0,60,4,2,0,127,255,139,0,139,139,255,0,66,4,2,0,30,239,184,184,134,11,255,0,80,4,2,0,30,240,255,255,185,15,255,0,95,4,2,0,30,240,238,238,173,14,255,0,110,4,2,0,30,240,205,205,149,12,255,0,125,4,2,0,30,240,139,139,101,8,255,0,140,4,2,0,85,255,100,0,100,0,255,0,150,4,2,0,39,110,189,189,183,107,255,0,160,4,2,0,58,142,107,85,107,47,255,0,175,4,2,0,58,143,255,202,255,112,255,0,191,4,2,0,58,143,238,188,238,104,255,0,207,4,2,0,58,143,205,162,205,90,255,0,223,4,2,0,58,143,139,110,139,61,255,0,239,4,2,0,23,255,255,255,140,0,255,0,250,4,2,0,21,255,255,255,127,0,255,0,6,5,2,0,21,255,238,238,118,0,255,0,18,5,2,0,21,255,205,205,102,0,255,0,30,5,2,0,21,255,139,139,69,0,255,0,42,5,2,0,198,192,204,153,50,204,255,0,53,5,2,0,198,193,255,191,62,255,255,0,65,5,2,0,198,192,238,178,58,238,255,0,77,5,2,0,198,192,205,154,50,205,255,0,89,5,2,0,198,192,139,104,34,139,255,0,101,5,2,0,10,121,233,233,150,122,255,0,112,5,2,0,85,61,188,143,188,143,255,0,125,5,2,0,85,62,255,193,255,193,255,0,139,5,2,0,85,62,238,180,238,180,255,0,153,5,2,0,85,62,205,155,205,155,255,0,167,5,2,0,85,62,139,105,139,105,255,0,181,5,2,0,175,143,139,72,61,139,255,0,195,5,2,0,127,103,79,47,79,79,255,0,209,5,2,0,127,104,255,151,255,255,255,0,224,5,2,0,127,103,238,141,238,238,255,0,239,5,2,0,127,104,205,121,205,205,255,0,254,5,2,0,127,104,139,82,139,139,255,0,13,6,2,0,127,103,79,47,79,79,255,0,27,6,2,0,128,255,209,0,206,209,255,0,41,6,2,0,199,255,211,148,0,211,255,0,52,6,2,0,232,235,255,255,20,147,255,0,61,6,2,0,232,235,255,255,20,147,255,0,71,6,2,0,232,235,238,238,18,137,255,0,81,6,2,0,232,235,205,205,16,118,255,0,91,6,2,0,231,236,139,139,10,80,255,0,101,6,2,0,138,255,255,0,191,255,255,0,113,6,2,0,138,255,255,0,191,255,255,0,126,6,2,0,138,255,238,0,178,238,255,0,139,6,2,0,138,255,205,0,154,205,255,0,152,6,2,0,138,255,139,0,104,139,255,0,165,6,2,0,0,0,105,105,105,105,255,0,173,6,2,0,0,0,105,105,105,105,255,0,181,6,2,0,148,225,255,30,144,255,255,0,192,6,2,0,148,225,255,30,144,255,255,0,204,6,2,0,148,225,238,28,134,238,255,0,216,6,2,0,148,225,205,24,116,205,255,0,228,6,2,0,148,225,139,16,78,139,255,0,240,6,2,0,0,206,178,178,34,34,255,0,250,6,2,0,0,207,255,255,48,48,255,0,5,7,2,0,0,207,238,238,44,44,255,0,16,7,2,0,0,207,205,205,38,38,255,0,27,7,2,0,0,207,139,139,26,26,255,0,38,7,2,0,28,15,255,255,250,240,255,0,50,7,2,0,85,192,139,34,139,34,255,0,62,7,2,0,0,0,220,220,220,220,255,0,72,7,2,0,170,7,255,248,248,255,255,0,83,7,2,0,35,255,255,255,215,0,255,0,88,7,2,0,35,255,255,255,215,0,255,0,94,7,2,0,35,255,238,238,201,0,255,0,100,7,2,0,35,255,205,205,173,0,255,0,106,7,2,0,35,255,139,139,117,0,255,0,112,7,2,0,30,217,218,218,165,32,255,0,122,7,2,0,30,218,255,255,193,37,255,0,133,7,2,0,30,218,238,238,180,34,255,0,144,7,2,0,30,218,205,205,155,29,255,0,155,7,2,0,30,218,139,139,105,20,255,0,166,7,2,0,0,0,192,192,192,192,255,0,171,7,2,0,0,0,0,0,0,0,255,0,177,7,2,0,0,0,3,3,3,3,255,0,183,7,2,0,0,0,26,26,26,26,255,0,190,7,2,0,0,0,255,255,255,255,255,0,198,7,2,0,0,0,28,28,28,28,255,0,205,7,2,0,0,0,31,31,31,31,255,0,212,7,2,0,0,0,33,33,33,33,255,0,219,7,2,0,0,0,36,36,36,36,255,0,226,7,2,0,0,0,38,38,38,38,255,0,233,7,2,0,0,0,41,41,41,41,255,0,240,7,2,0,0,0,43,43,43,43,255,0,247,7,2,0,0,0,46,46,46,46,255,0,254,7,2,0,0,0,48,48,48,48,255,0,5,8,2,0,0,0,5,5,5,5,255,0,11,8,2,0,0,0,51,51,51,51,255,0,18,8,2,0,0,0,54,54,54,54,255,0,25,8,2,0,0,0,56,56,56,56,255,0,32,8,2,0,0,0,59,59,59,59,255,0,39,8,2,0,0,0,61,61,61,61,255,0,46,8,2,0,0,0,64,64,64,64,255,0,53,8,2,0,0,0,66,66,66,66,255,0,60,8,2,0,0,0,69,69,69,69,255,0,67,8,2,0,0,0,71,71,71,71,255,0,74,8,2,0,0,0,74,74,74,74,255,0,81,8,2,0,0,0,8,8,8,8,255,0,87,8,2,0,0,0,77,77,77,77,255,0,94,8,2,0,0,0,79,79,79,79,255,0,101,8,2,0,0,0,82,82,82,82,255,0,108,8,2,0,0,0,84,84,84,84,255,0,115,8,2,0,0,0,87,87,87,87,255,0,122,8,2,0,0,0,89,89,89,89,255,0,129,8,2,0,0,0,92,92,92,92,255,0,136,8,2,0,0,0,94,94,94,94,255,0,143,8,2,0,0,0,97,97,97,97,255,0,150,8,2,0,0,0,99,99,99,99,255,0,157,8,2,0,0,0,10,10,10,10,255,0,163,8,2,0,0,0,102,102,102,102,255,0,170,8,2,0,0,0,105,105,105,105,255,0,177,8,2,0,0,0,107,107,107,107,255,0,184,8,2,0,0,0,110,110,110,110,255,0,191,8,2,0,0,0,112,112,112,112,255,0,198,8,2,0,0,0,115,115,115,115,255,0,205,8,2,0,0,0,117,117,117,117,255,0,212,8,2,0,0,0,120,120,120,120,255,0,219,8,2,0,0,0,122,122,122,122,255,0,226,8,2,0,0,0,125,125,125,125,255,0,233,8,2,0,0,0,13,13,13,13,255,0,239,8,2,0,0,0,127,127,127,127,255,0,246,8,2,0,0,0,130,130,130,130,255,0,253,8,2,0,0,0,133,133,133,133,255,0,4,9,2,0,0,0,135,135,135,135,255,0,11,9,2,0,0,0,138,138,138,138,255,0,18,9,2,0,0,0,140,140,140,140,255,0,25,9,2,0,0,0,143,143,143,143,255,0,32,9,2,0,0,0,145,145,145,145,255,0,39,9,2,0,0,0,148,148,148,148,255,0,46,9,2,0,0,0,150,150,150,150,255,0,53,9,2,0,0,0,15,15,15,15,255,0,59,9,2,0,0,0,153,153,153,153,255,0,66,9,2,0,0,0,156,156,156,156,255,0,73,9,2,0,0,0,158,158,158,158,255,0,80,9,2,0,0,0,161,161,161,161,255,0,87,9,2,0,0,0,163,163,163,163,255,0,94,9,2,0,0,0,166,166,166,166,255,0,101,9,2,0,0,0,168,168,168,168,255,0,108,9,2,0,0,0,171,171,171,171,255,0,115,9,2,0,0,0,173,173,173,173,255,0,122,9,2,0,0,0,176,176,176,176,255,0,129,9,2,0,0,0,18,18,18,18,255,0,135,9,2,0,0,0,179,179,179,179,255,0,142,9,2,0,0,0,181,181,181,181,255,0,149,9,2,0,0,0,184,184,184,184,255,0,156,9,2,0,0,0,186,186,186,186,255,0,163,9,2,0,0,0,189,189,189,189,255,0,170,9,2,0,0,0,191,191,191,191,255,0,177,9,2,0,0,0,194,194,194,194,255,0,184,9,2,0,0,0,196,196,196,196,255,0,191,9,2,0,0,0,199,199,199,199,255,0,198,9,2,0,0,0,201,201,201,201,255,0,205,9,2,0,0,0,20,20,20,20,255,0,211,9,2,0,0,0,204,204,204,204,255,0,218,9,2,0,0,0,207,207,207,207,255,0,225,9,2,0,0,0,209,209,209,209,255,0,232,9,2,0,0,0,212,212,212,212,255,0,239,9,2,0,0,0,214,214,214,214,255,0,246,9,2,0,0,0,217,217,217,217,255,0,253,9,2,0,0,0,219,219,219,219,255,0,4,10,2,0,0,0,222,222,222,222,255,0,11,10,2,0,0,0,224,224,224,224,255,0,18,10,2,0,0,0,227,227,227,227,255,0,25,10,2,0,0,0,23,23,23,23,255,0,31,10,2,0,0,0,229,229,229,229,255,0,38,10,2,0,0,0,232,232,232,232,255,0,45,10,2,0,0,0,235,235,235,235,255,0,52,10,2,0,0,0,237,237,237,237,255,0,59,10,2,0,0,0,240,240,240,240,255,0,66,10,2,0,0,0,242,242,242,242,255,0,73,10,2,0,0,0,245,245,245,245,255,0,80,10,2,0,0,0,247,247,247,247,255,0,87,10,2,0,0,0,250,250,250,250,255,0,94,10,2,0,0,0,252,252,252,252,255,0,101,10,2,0,85,255,255,0,255,0,255,0,107,10,2,0,85,255,255,0,255,0,255,0,114,10,2,0,85,255,238,0,238,0,255,0,121,10,2,0,85,255,205,0,205,0,255,0,128,10,2,0,85,255,139,0,139,0,255,0,135,10,2,0,59,208,255,173,255,47,255,0,147,10,2,0,0,0,192,192,192,192,255,0,152,10,2,0,0,0,0,0,0,0,255,0,158,10,2,0,0,0,3,3,3,3,255,0,164,10,2,0,0,0,26,26,26,26,255,0,171,10,2,0,0,0,255,255,255,255,255,0,179,10,2,0,0,0,28,28,28,28,255,0,186,10,2,0,0,0,31,31,31,31,255,0,193,10,2,0,0,0,33,33,33,33,255,0,200,10,2,0,0,0,36,36,36,36,255,0,207,10,2,0,0,0,38,38,38,38,255,0,214,10,2,0,0,0,41,41,41,41,255,0,221,10,2,0,0,0,43,43,43,43,255],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+40964);allocate([228,10,2,0,0,0,46,46,46,46,255,0,235,10,2,0,0,0,48,48,48,48,255,0,242,10,2,0,0,0,5,5,5,5,255,0,248,10,2,0,0,0,51,51,51,51,255,0,255,10,2,0,0,0,54,54,54,54,255,0,6,11,2,0,0,0,56,56,56,56,255,0,13,11,2,0,0,0,59,59,59,59,255,0,20,11,2,0,0,0,61,61,61,61,255,0,27,11,2,0,0,0,64,64,64,64,255,0,34,11,2,0,0,0,66,66,66,66,255,0,41,11,2,0,0,0,69,69,69,69,255,0,48,11,2,0,0,0,71,71,71,71,255,0,55,11,2,0,0,0,74,74,74,74,255,0,62,11,2,0,0,0,8,8,8,8,255,0,68,11,2,0,0,0,77,77,77,77,255,0,75,11,2,0,0,0,79,79,79,79,255,0,82,11,2,0,0,0,82,82,82,82,255,0,89,11,2,0,0,0,84,84,84,84,255,0,96,11,2,0,0,0,87,87,87,87,255,0,103,11,2,0,0,0,89,89,89,89,255,0,110,11,2,0,0,0,92,92,92,92,255,0,117,11,2,0,0,0,94,94,94,94,255,0,124,11,2,0,0,0,97,97,97,97,255,0,131,11,2,0,0,0,99,99,99,99,255,0,138,11,2,0,0,0,10,10,10,10,255,0,144,11,2,0,0,0,102,102,102,102,255,0,151,11,2,0,0,0,105,105,105,105,255,0,158,11,2,0,0,0,107,107,107,107,255,0,165,11,2,0,0,0,110,110,110,110,255,0,172,11,2,0,0,0,112,112,112,112,255,0,179,11,2,0,0,0,115,115,115,115,255,0,186,11,2,0,0,0,117,117,117,117,255,0,193,11,2,0,0,0,120,120,120,120,255,0,200,11,2,0,0,0,122,122,122,122,255,0,207,11,2,0,0,0,125,125,125,125,255,0,214,11,2,0,0,0,13,13,13,13,255,0,220,11,2,0,0,0,127,127,127,127,255,0,227,11,2,0,0,0,130,130,130,130,255,0,234,11,2,0,0,0,133,133,133,133,255,0,241,11,2,0,0,0,135,135,135,135,255,0,248,11,2,0,0,0,138,138,138,138,255,0,255,11,2,0,0,0,140,140,140,140,255,0,6,12,2,0,0,0,143,143,143,143,255,0,13,12,2,0,0,0,145,145,145,145,255,0,20,12,2,0,0,0,148,148,148,148,255,0,27,12,2,0,0,0,150,150,150,150,255,0,34,12,2,0,0,0,15,15,15,15,255,0,40,12,2,0,0,0,153,153,153,153,255,0,47,12,2,0,0,0,156,156,156,156,255,0,54,12,2,0,0,0,158,158,158,158,255,0,61,12,2,0,0,0,161,161,161,161,255,0,68,12,2,0,0,0,163,163,163,163,255,0,75,12,2,0,0,0,166,166,166,166,255,0,82,12,2,0,0,0,168,168,168,168,255,0,89,12,2,0,0,0,171,171,171,171,255,0,96,12,2,0,0,0,173,173,173,173,255,0,103,12,2,0,0,0,176,176,176,176,255,0,110,12,2,0,0,0,18,18,18,18,255,0,116,12,2,0,0,0,179,179,179,179,255,0,123,12,2,0,0,0,181,181,181,181,255,0,130,12,2,0,0,0,184,184,184,184,255,0,137,12,2,0,0,0,186,186,186,186,255,0,144,12,2,0,0,0,189,189,189,189,255,0,151,12,2,0,0,0,191,191,191,191,255,0,158,12,2,0,0,0,194,194,194,194,255,0,165,12,2,0,0,0,196,196,196,196,255,0,172,12,2,0,0,0,199,199,199,199,255,0,179,12,2,0,0,0,201,201,201,201,255,0,186,12,2,0,0,0,20,20,20,20,255,0,192,12,2,0,0,0,204,204,204,204,255,0,199,12,2,0,0,0,207,207,207,207,255,0,206,12,2,0,0,0,209,209,209,209,255,0,213,12,2,0,0,0,212,212,212,212,255,0,220,12,2,0,0,0,214,214,214,214,255,0,227,12,2,0,0,0,217,217,217,217,255,0,234,12,2,0,0,0,219,219,219,219,255,0,241,12,2,0,0,0,222,222,222,222,255,0,248,12,2,0,0,0,224,224,224,224,255,0,255,12,2,0,0,0,227,227,227,227,255,0,6,13,2,0,0,0,23,23,23,23,255,0,12,13,2,0,0,0,229,229,229,229,255,0,19,13,2,0,0,0,232,232,232,232,255,0,26,13,2,0,0,0,235,235,235,235,255,0,33,13,2,0,0,0,237,237,237,237,255,0,40,13,2,0,0,0,240,240,240,240,255,0,47,13,2,0,0,0,242,242,242,242,255,0,54,13,2,0,0,0,245,245,245,245,255,0,61,13,2,0,0,0,247,247,247,247,255,0,68,13,2,0,0,0,250,250,250,250,255,0,75,13,2,0,0,0,252,252,252,252,255,0,82,13,2,0,85,15,255,240,255,240,255,0,91,13,2,0,85,15,255,240,255,240,255,0,101,13,2,0,85,15,238,224,238,224,255,0,111,13,2,0,85,14,205,193,205,193,255,0,121,13,2,0,85,14,139,131,139,131,255,0,131,13,2,0,233,150,255,255,105,180,255,0,139,13,2,0,234,145,255,255,110,180,255,0,148,13,2,0,235,141,238,238,106,167,255,0,157,13,2,0,236,135,205,205,96,144,255,0,166,13,2,0,234,148,139,139,58,98,255,0,175,13,2,0,0,140,205,205,92,92,255,0,185,13,2,0,0,148,255,255,106,106,255,0,196,13,2,0,0,148,238,238,99,99,255,0,207,13,2,0,0,149,205,205,85,85,255,0,218,13,2,0,0,148,139,139,58,58,255,0,229,13,2,0,194,255,130,75,0,130,255,0,236,13,2,0,42,0,255,255,255,254,0,0,242,13,2,0,42,15,255,255,255,240,255,0,248,13,2,0,42,15,255,255,255,240,255,0,255,13,2,0,42,15,238,238,238,224,255,0,6,14,2,0,42,14,205,205,205,193,255,0,13,14,2,0,42,14,139,139,139,131,255,0,20,14,2,0,38,106,240,240,230,140,255,0,26,14,2,0,39,112,255,255,246,143,255,0,33,14,2,0,39,112,238,238,230,133,255,0,40,14,2,0,39,111,205,205,198,115,255,0,47,14,2,0,39,111,139,139,134,78,255,0,54,14,2,0,170,20,250,230,230,250,255,0,63,14,2,0,240,15,255,255,240,245,255,0,77,14,2,0,240,15,255,255,240,245,255,0,92,14,2,0,239,15,238,238,224,229,255,0,107,14,2,0,240,14,205,205,193,197,255,0,122,14,2,0,239,14,139,139,131,134,255,0,137,14,2,0,64,255,252,124,252,0,255,0,147,14,2,0,38,49,255,255,250,205,255,0,160,14,2,0,38,49,255,255,250,205,255,0,174,14,2,0,37,50,238,238,233,191,255,0,188,14,2,0,38,49,205,205,201,165,255,0,202,14,2,0,39,49,139,139,137,112,255,0,216,14,2,0,137,63,230,173,216,230,255,0,226,14,2,0,138,64,255,191,239,255,255,0,237,14,2,0,138,64,238,178,223,238,255,0,248,14,2,0,138,63,205,154,192,205,255,0,3,15,2,0,137,64,139,104,131,139,255,0,14,15,2,0,0,119,240,240,128,128,255,0,25,15,2,0,127,31,255,224,255,255,255,0,35,15,2,0,127,31,255,224,255,255,255,0,46,15,2,0,127,31,238,209,238,238,255,0,57,15,2,0,127,31,205,180,205,205,255,0,68,15,2,0,127,31,139,122,139,139,255,0,79,15,2,0,35,115,238,238,221,130,255,0,94,15,2,0,35,116,255,255,236,139,255,0,110,15,2,0,35,115,238,238,220,130,255,0,126,15,2,0,35,115,205,205,190,112,255,0,142,15,2,0,35,115,139,139,129,76,255,0,158,15,2,0,42,40,250,250,250,210,255,0,179,15,2,0,0,0,211,211,211,211,255,0,189,15,2,0,0,0,211,211,211,211,255,0,199,15,2,0,248,73,255,255,182,193,255,0,209,15,2,0,249,81,255,255,174,185,255,0,220,15,2,0,248,81,238,238,162,173,255,0,231,15,2,0,249,80,205,205,140,149,255,0,242,15,2,0,249,80,139,139,95,101,255,0,253,15,2,0,12,132,255,255,160,122,255,0,9,16,2,0,12,132,255,255,160,122,255,0,22,16,2,0,11,132,238,238,149,114,255,0,35,16,2,0,12,133,205,205,129,98,255,0,48,16,2,0,12,133,139,139,87,66,255,0,61,16,2,0,125,209,178,32,178,170,255,0,75,16,2,0,143,117,250,135,206,250,255,0,88,16,2,0,143,79,255,176,226,255,255,0,102,16,2,0,143,79,238,164,211,238,255,0,116,16,2,0,142,79,205,141,182,205,255,0,130,16,2,0,143,78,139,96,123,139,255,0,144,16,2,0,175,143,255,132,112,255,255,0,159,16,2,0,148,56,153,119,136,153,255,0,174,16,2,0,148,56,153,119,136,153,255,0,189,16,2,0,151,52,222,176,196,222,255,0,204,16,2,0,151,53,255,202,225,255,255,0,220,16,2,0,151,53,238,188,210,238,255,0,236,16,2,0,151,53,205,162,181,205,255,0,252,16,2,0,150,53,139,110,123,139,255,0,12,17,2,0,42,31,255,255,255,224,255,0,24,17,2,0,42,31,255,255,255,224,255,0,37,17,2,0,42,31,238,238,238,209,255,0,50,17,2,0,42,31,205,205,205,180,255,0,63,17,2,0,42,31,139,139,139,122,255,0,76,17,2,0,85,192,205,50,205,50,255,0,86,17,2,0,21,20,250,250,240,230,255,0,92,17,2,0,212,255,255,255,0,255,255,0,100,17,2,0,212,255,255,255,0,255,255,0,109,17,2,0,212,255,238,238,0,238,255,0,118,17,2,0,212,255,205,205,0,205,255,0,127,17,2,0,212,255,139,139,0,139,255,0,136,17,2,0,239,185,176,176,48,96,255,0,143,17,2,0,228,203,255,255,52,179,255,0,151,17,2,0,228,203,238,238,48,167,255,0,159,17,2,0,228,204,205,205,41,144,255,0,167,17,2,0,228,203,139,139,28,98,255,0,175,17,2,0,113,128,205,102,205,170,255,0,192,17,2,0,170,255,205,0,0,205,255,0,203,17,2,0,204,152,211,186,85,211,255,0,216,17,2,0,203,153,255,224,102,255,255,0,230,17,2,0,203,153,238,209,95,238,255,0,244,17,2,0,203,153,205,180,82,205,255,0,2,18,2,0,203,154,139,122,55,139,255,0,16,18,2,0,183,124,219,147,112,219,255,0,29,18,2,0,183,125,255,171,130,255,255,0,43,18,2,0,183,125,238,159,121,238,255,0,57,18,2,0,183,125,205,137,104,205,255,0,71,18,2,0,183,124,139,93,71,139,255,0,85,18,2,0,103,169,179,60,179,113,255,0,100,18,2,0,176,143,238,123,104,238,255,0,116,18,2,0,111,255,250,0,250,154,255,0,134,18,2,0,125,167,209,72,209,204,255,0,150,18,2,0,228,228,199,199,21,133,255,0,166,18,2,0,170,198,112,25,25,112,255,0,179,18,2,0,106,9,255,245,255,250,255,0,189,18,2,0,4,30,255,255,228,225,255,0,199,18,2,0,4,30,255,255,228,225,255,0,210,18,2,0,4,30,238,238,213,210,255,0,221,18,2,0,3,29,205,205,183,181,255,0,232,18,2,0,5,29,139,139,125,123,255,0,243,18,2,0,26,73,255,255,228,181,255,0,252,18,2,0,25,81,255,255,222,173,255,0,8,19,2,0,25,81,255,255,222,173,255,0,21,19,2,0,25,82,238,238,207,161,255,0,34,19,2,0,25,82,205,205,179,139,255,0,47,19,2,0,25,82,139,139,121,94,255,0,60,19,2,0,170,255,128,0,0,128,255,0,65,19,2,0,170,255,128,0,0,128,255,0,74,19,2,0,42,0,255,255,255,254,0,0,79,19,2,0,27,23,253,253,245,230,255,0,87,19,2,0,56,192,142,107,142,35,255,0,97,19,2,0,56,193,255,192,255,62,255,0,108,19,2,0,56,192,238,179,238,58,255,0,119,19,2,0,56,192,205,154,205,50,255,0,130,19,2,0,56,192,139,105,139,34,255,0,141,19,2,0,27,255,255,255,165,0,255,0,148,19,2,0,27,255,255,255,165,0,255,0,156,19,2,0,27,255,238,238,154,0,255,0,164,19,2,0,27,255,205,205,133,0,255,0,172,19,2,0,27,255,139,139,90,0,255,0,180,19,2,0,11,255,255,255,69,0,255,0,190,19,2,0,11,255,255,255,69,0,255,0,201,19,2,0,11,255,238,238,64,0,255,0,212,19,2,0,11,255,205,205,55,0,255,0,223,19,2,0,11,255,139,139,37,0,255,0,234,19,2,0,214,123,218,218,112,214,255,0,241,19,2,0,214,124,255,255,131,250,255,0,249,19,2,0,214,124,238,238,122,233,255,0,1,20,2,0,214,124,205,205,105,201,255,0,9,20,2,0,213,124,139,139,71,137,255,0,17,20,2,0,38,72,238,238,232,170,255,0,31,20,2,0,85,100,251,152,251,152,255,0,41,20,2,0,85,101,255,154,255,154,255,0,52,20,2,0,85,100,238,144,238,144,255,0,63,20,2,0,85,100,205,124,205,124,255,0,74,20,2,0,85,100,139,84,139,84,255,0,85,20,2,0,127,67,238,175,238,238,255,0,99,20,2,0,127,68,255,187,255,255,255,0,114,20,2,0,127,68,238,174,238,238,255,0,129,20,2,0,127,68,205,150,205,205,255,0,144,20,2,0,127,67,139,102,139,139,255,0,159,20,2,0,241,124,219,219,112,147,255,0,173,20,2,0,241,125,255,255,130,171,255,0,188,20,2,0,241,125,238,238,121,159,255,0,203,20,2,0,241,125,205,205,104,137,255,0,218,20,2,0,241,124,139,139,71,93,255,0,233,20,2,0,26,41,255,255,239,213,255,0,244,20,2,0,20,70,255,255,218,185,255,0,254,20,2,0,20,70,255,255,218,185,255,0,9,21,2,0,19,69,238,238,203,173,255,0,20,21,2,0,19,69,205,205,175,149,255,0,31,21,2,0,20,69,139,139,119,101,255,0,42,21,2,0,20,176,205,205,133,63,255,0,47,21,2,0,247,63,255,255,192,203,255,0,52,21,2,0,245,73,255,255,181,197,255,0,58,21,2,0,245,73,238,238,169,184,255,0,64,21,2,0,245,74,205,205,145,158,255,0,70,21,2,0,245,73,139,139,99,108,255,0,76,21,2,0,212,70,221,221,160,221,255,0,81,21,2,0,212,68,255,255,187,255,255,0,87,21,2,0,212,68,238,238,174,238,255,0,93,21,2,0,212,68,205,205,150,205,255,0,99,21,2,0,212,67,139,139,102,139,255,0,105,21,2,0,132,59,230,176,224,230,255,0,116,21,2,0,196,221,240,160,32,240,255,0,123,21,2,0,191,207,255,155,48,255,255,0,131,21,2,0,192,207,238,145,44,238,255,0,139,21,2,0,192,207,205,125,38,205,255,0,147,21,2,0,192,207,139,85,26,139,255,0,155,21,2,0,0,255,255,255,0,0,255,0,159,21,2,0,0,255,255,255,0,0,255,0,164,21,2,0,0,255,238,238,0,0,255,0,169,21,2,0,0,255,205,205,0,0,255,0,174,21,2,0,0,255,139,139,0,0,255,0,179,21,2,0,0,61,188,188,143,143,255,0,189,21,2,0,0,62,255,255,193,193,255,0,200,21,2,0,0,62,238,238,180,180,255,0,211,21,2,0,0,62,205,205,155,155,255,0,222,21,2,0,0,62,139,139,105,105,255,0,233,21,2,0,159,181,225,65,105,225,255,0,243,21,2,0,159,183,255,72,118,255,255,0,254,21,2,0,159,183,238,67,110,238,255,0,9,22,2,0,159,182,205,58,95,205,255,0,20,22,2,0,159,183,139,39,64,139,255,0,31,22,2,0,17,220,139,139,69,19,255,0,43,22,2,0,4,138,250,250,128,114,255,0,50,22,2,0,9,150,255,255,140,105,255,0,58,22,2,0,9,150,238,238,130,98,255,0,66,22,2,0,9,150,205,205,112,84,255,0,74,22,2,0,9,150,139,139,76,57,255,0,82,22,2,0,19,154,244,244,164,96,255,0,93,22,2,0,103,170,139,46,139,87,255,0,102,22,2,0,103,171,255,84,255,159,255,0,112,22,2,0,103,171,238,78,238,148,255,0,122,22,2,0,103,171,205,67,205,128,255,0,132,22,2,0,103,170,139,46,139,87,255,0,142,22,2,0,17,16,255,255,245,238,255,0,151,22,2,0,17,16,255,255,245,238,255,0,161,22,2,0,18,17,238,238,229,222,255,0,171,22,2,0,18,17,205,205,197,191,255,0,181,22,2,0,18,16,139,139,134,130,255,0,191,22,2,0,13,183,160,160,82,45,255,0,198,22,2,0,13,184,255,255,130,71,255,0,206,22,2,0,13,184,238,238,121,66,255,0,214,22,2,0,13,184,205,205,104,57,255,0,222,22,2,0,13,185,139,139,71,38,255,0,230,22,2,0,139,108,235,135,206,235,255,0,238,22,2,0,144,120,255,135,206,255,255,0,247,22,2,0,144,120,238,126,192,238,255,0,0,23,2,0,144,120,205,108,166,205,255,0,9,23,2,0,145,119,139,74,112,139,255,0,18,23,2,0,175,143,205,106,90,205,255,0,28,23,2,0,175,144,255,131,111,255,255,0,39,23,2,0,175,144,238,122,103,238,255,0,50,23,2,0,175,144,205,105,89,205,255,0,61,23,2,0,175,144,139,71,60,139,255,0,72,23,2,0,148,56,144,112,128,144,255,0,82,23,2,0,149,56,255,198,226,255,255,0,93,23,2,0,149,56,238,185,211,238,255,0,104,23,2,0,148,57,205,159,182,205,255,0,115,23,2,0,149,56,139,108,123,139,255,0,126,23,2,0,148,56,144,112,128,144,255,0,136,23,2,0,0,5,255,255,250,250,255,0,141,23,2,0,0,5,255,255,250,250,255,0,147,23,2,0,0,5,238,238,233,233,255,0,153,23,2,0,0,4,205,205,201,201,255,0,159,23,2,0,0,3,139,139,137,137,255,0,165,23,2,0,106,255,255,0,255,127,255,0,177,23,2,0,106,255,255,0,255,127,255,0,190,23,2,0,106,255,238,0,238,118,255,0,203,23,2,0,106,255,205,0,205,102,255,0,216,23,2,0,106,255,139,0,139,69,255,0,229,23,2,0,146,155,180,70,130,180,255,0,239,23,2,0,146,156,255,99,184,255,255,0,250,23,2,0,146,156,238,92,172,238,255,0,5,24,2,0,146,156,205,79,148,205,255,0,16,24,2,0,147,155,139,54,100,139,255,0,27,24,2,0,24,84,210,210,180,140,255,0,31,24,2,0,20,176,255,255,165,79,255,0,36,24,2,0,20,176,238,238,154,73,255,0,41,24,2,0,20,176,205,205,133,63,255,0,46,24,2,0,20,176,139,139,90,43,255,0,51,24,2,0,212,29,216,216,191,216,255,0,59,24,2,0,212,30,255,255,225,255,255,0,68,24,2,0,212,30,238,238,210,238,255,0,77,24,2,0,212,29,205,205,181,205,255,0,86,24,2,0,212,29,139,139,123,139,255,0,95,24,2,0,6,184,255,255,99,71,255,0,102,24,2,0,6,184,255,255,99,71,255,0,110,24,2,0,6,184,238,238,92,66,255,0,118,24,2,0,6,184,205,205,79,57,255,0,126,24,2,0,6,185,139,139,54,38,255,0,208,25,2,0,42,0,255,255,255,254,0,0,134,24,2,0,123,182,224,64,224,208,255,0,144,24,2,0,129,255,255,0,245,255,255,0,155,24,2,0,129,255,238,0,229,238,255,0,166,24,2,0,129,255,205,0,197,205,255,0,177,24,2,0,129,255,139,0,134,139,255,0,188,24,2,0,212,115,238,238,130,238,255,0,195,24,2,0,227,215,208,208,32,144,255,0,205,24,2,0,235,193,255,255,62,150,255,0,216,24,2,0,235,192,238,238,58,140,255,0,227,24,2,0,235,192,205,205,50,120,255,0,238,24,2,0,235,192,139,139,34,82,255,0,249,24,2,0,27,68,245,245,222,179,255,0,255,24,2,0,27,69,255,255,231,186,255,0,6,25,2,0,27,68,238,238,216,174,255,0,13,25,2,0,27,68,205,205,186,150,255,0,20,25,2,0,27,67,139,139,126,102,255,0,27,25,2,0,0,0,255,255,255,255,255,0,33,25,2,0,0,0,245,245,245,245,255,0,44,25,2,0,42,255,255,255,255,0,255,0,51,25,2,0,42,255,255,255,255,0,255,0,59,25,2,0,42,255,238,238,238,0,255,0,67,25,2,0,42,255,205,205,205,0,255,0,75,25,2,0,42,255,139,139,139,0,255,0,83,25,2,0,56,192,205,154,205,50,255,0,201,29,2,0,227,25,2,0,229,25,2,0,231,25,2,0,233,25,2,0,235,25,2,0,237,25,2,0,239,25,2,0,241,25,2,0,243,25,2,0,245,25,2,0,248,25,2,0,251,25,2,0,254,25,2,0,1,26,2,0,4,26,2,0,7,26,2,0,10,26,2,0,13,26,2,0,16,26,2,0,19,26,2,0,0,0,0,0,4,0,0,0,4,0,0,0,11,0,0,0,54,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,27,2,0,149,28,2,0,8,0,0,0,16,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,16,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,55,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,245,38,2,0,9,0,0,0,251,38,2,0,10,0,0,0,4,39,2,0,11,0,0,0,70,39,2,0,12,0,0,0,76,39,2,0,13,0,0,0,81,39,2,0,14,0,0,0,4,39,2,0,15,0,0,0,217,39,2,0,16,0,0,0,224,39,2,0,17,0,0,0,232,39,2,0,18,0,0,0,239,39,2,0,19,0,0,0,251,39,2,0,20,0,0,0,70,39,2,0,21,0,0,0,7,40,2,0,22,0,0,0,15,40,2,0,23,0,0,0,25,40,2,0,24,0,0,0,39,40,2,0,25,0,0,0,46,40,2,0,26,0,0,0,51,40,2,0,27,0,0,0,54,40,2,0,28,0,0,0,59,40,2,0,29,0,0,0,67,40,2,0,30,0,0,0,73,40,2,0,31,0,0,0,79,40,2,0,32,0,0,0,86,40,2,0,33,0,0,0,92,40,2,0,33,0,0,0,100,40,2,0,34,0,0,0,107,40,2,0,35,0,0,0,4,39,2,0,36,0,0,0,224,39,2,0,17,0,0,0,232,39,2,0,18,0,0,0,98,42,2,0,37,0,0,0,239,39,2,0,19,0,0,0,251,39,2,0,20,0,0,0,70,39,2,0,21,0,0,0,109,42,2,0,38,0,0,0,15,40,2,0,23,0,0,0,25,40,2,0,24,0,0,0,39,40,2,0,25,0,0,0,46,40,2,0,26,0,0,0,51,40,2,0,27,0,0,0,54,40,2,0,28,0,0,0,117,42,2,0,39,0,0,0,67,40,2,0,30,0,0,0,73,40,2,0,31,0,0,0,79,40,2,0,32,0,0,0,86,40,2,0,33,0,0,0,92,40,2,0,33,0,0,0,100,40,2,0,34,0,0,0,107,40,2,0,35,0,0,0,0,0,0,0,76,45,2,0,90,45,2,0,103,45,2,0,120,45,2,0,152,45,2,0,167,45,2,0,185,45,2,0,200,45,2,0,220,45,2,0,248,45,2,0,27,46,2,0,44,46,2,0,71,46,2,0,91,46,2,0,129,46,2,0,156,46,2,0,198,46,2,0,245,46,2,0,6,47,2,0,57,47,2,0,80,47,2,0,126,47,2,0,153,47,2,0,204,47,2,0,240,47,2,0,36,48,2,0,81,48,2,0,96,48,2,0,122,48,2,0,160,48,2,0,192,48,2,0,225,48,2,0,3,49,2,0,20,49,2,0,41,49,2,0,57,49,2,0,74,49,2,0,118,49,2,0,198,49,2,0,1,50,2,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,12,0,0,0,31,0,0,0,40,0,0,0,41,0,0,0,32,0,0,0,42,0,0,0,13,0,0,0,25,0,0,0,33,0,0,0,6,0,0,0,7,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,10,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,16,12,19,28,30,3,13,31,32,33,34,35,27,26,17,25,25,25,25,25,25,25,25,25,25,22,18,2,14,11,15,28,24,24,24,24,24,24,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,28,4,28,22,28,24,24,24,24,24,24,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,36,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,22,28,28,28,28,28,28,28,28,28,28,22,28,26,28,28,22,28,28,28,28,28,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,22,22,22,22,22,22,22,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,4,254,255,255,135,254,255,255,7,0,0,0,0,0,0,0,0,255,255,127,255,255,255,127,255,255,255,255,255,255,255,243,127,254,253,255,255,255,255,255,127,255,255,255,255,255,255,255,255,15,224,255,255,255,255,49,252,255,255,255,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,1,0,248,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,215,255,255,251,255,255,255,255,127,127,84,253,255,15,0,254,223,255,255,255,255,255,255,255,255,254,223,255,255,255,255,3,0,255,255,255,255,255,255,159,25,255,255,255,207,63,3,0,0,0,0,0,0,254,255,255,255,127,2,254,255,255,255,127,0,0,0,0,0,0,0,0,0,255,255,255,7,7,0,0,0,0,0,254,255,255,7,254,7,0,0,0,0,254,255,255,255,255,255,255,255,255,124,255,127,47,0,96,0,0,0,224,255,255,255,255,255,255,35,0,0,0,255,3,0,0,0,224,159,249,255,255,253,197,3,0,0,0,176,3,0,3,0,224,135,249,255,255,253,109,3,0,0,0,94,0,0,28,0,224,175,251,255,255,253,237,35,0,0,0,0,1,0,0,0,224,159,249,255,255,253,205,35,0,0,0,176,3,0,0,0,224,199,61,214,24,199,191,3,0,0,0,0,0,0,0,0,224,223,253,255,255,253,239,3,0,0,0,0,3,0,0,0,224,223,253,255,255,253,239,3,0,0,0,64,3,0,0,0,224,223,253,255,255,253,255,3,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,255,255,255,255,127,13,0,63,0,0,0,0,0,0,0,150,37,240,254,174,108,13,32,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,254,255,255,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,63,0,255,255,255,255,127,0,237,218,7,0,0,0,0,80,1,80,49,130,171,98,44,0,0,0,0,64,0,201,128,245,7,0,0,0,0,8,1,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,15,255,255,255,255,255,255,255,255,255,255,255,3,255,255,63,63,255,255,255,255,63,63,255,170,255,255,255,63,255,255,255,255,255,255,223,95,220,31,207,15,255,31,220,31,0,0,0,0,64,76,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,254,3,0,0,254,255,255,255,255,255,255,255,255,255,31,0,254,255,255,255,255,255,255,255,255,255,255,7,224,255,255,255,255,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,255,7,254,255,255,135,254,255,255,7,0,0,0,0,0,0,128,0,255,255,127,255,255,255,127,255,255,255,255,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,1,0,248,3,0,3,0,0,0,0,0,255,255,255,255,255,255,255,255,63,0,0,0,3,0,0,0,192,215,255,255,251,255,255,255,255,127,127,84,253,255,15,0,254,223,255,255,255,255,255,255,255,255,254,223,255,255,255,255,123,0,255,255,255,255,255,255,159,25,255,255,255,207,63,3,0,0,0,0,0,0,254,255,255,255,127,2,254,255,255,255,127,0,254,255,251,255,255,187,22,0,255,255,255,7,7,0,0,0,0,0,254,255,255,7,255,255,7,0,255,3,255,255,255,255,255,255,255,255,255,124,255,127,239,255,255,61,255,3,238,255,255,255,255,255,255,243,255,63,30,255,207,255,0,0,238,159,249,255,255,253,197,211,159,57,128,176,207,255,3,0,228,135,249,255,255,253,109,211,135,57,0,94,192,255,31,0,238,175,251,255,255,253,237,243,191,59,0,0,193,255,0,0,238,159,249,255,255,253,205,243,143,57,192,176,195,255,0,0,236,199,61,214,24,199,191,195,199,61,128,0,128,255,0,0,238,223,253,255,255,253,239,195,223,61,96,0,195,255,0,0,236,223,253,255,255,253,239,195,223,61,96,64,195,255,0,0,236,223,253,255,255,253,255,195,207,61,128,0,195,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,255,255,255,255,127,255,7,255,127,255,3,0,0,0,0,150,37,240,254,174,108,255,59,95,63,255,3,0,0,0,0,0,0,0,3,255,3,160,194,255,254,255,255,255,3,254,255,223,15,191,254,255,63,254,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,31,2,0,0,0,160,0,0,0,254,255,62,0,254,255,255,255,255,255,255,255,255,255,31,102,254,255,255,255,255,255,255,255,255,255,255,119,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,12,0,0,0,31,0,0,0,40,0,0,0,41,0,0,0,32,0,0,0,42,0,0,0,13,0,0,0,25,0,0,0,33,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,21,10,0,0,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,16,12,19,28,30,3,13,31,32,33,34,35,27,26,17,25,25,25,25,25,25,25,25,25,25,22,18,2,14,11,15,28,24,24,24,24,24,24,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,28,4,28,22,28,24,24,24,24,24,24,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,36,28,28,28,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,0,0,0,0,0,0,0,0,0,1,1,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,45,0,0,0,48,0,0,0,49,0,0,0,50,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,12,0,0,0,31,0,0,0,40,0,0,0,41,0,0,0,32,0,0,0,42,0,0,0,13,0,0,0,25,0,0,0,33,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,21,10,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,16,12,19,28,30,3,13,31,32,33,34,35,27,26,17,25,25,25,25,25,25,25,25,25,25,22,18,2,14,11,15,28,24,24,24,24,24,24,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,28,4,28,22,28,24,24,24,24,24,24,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,36,28,28,28,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,0,0,0,0,0,0,0,0,0,1,1,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,45,0,0,0,48,0,0,0,49,0,0,0,50,0,0,0,224,221,0,0,76,231,0,0,192,229,0,0,188,232,0,0,188,232,0,0,44,234,0,0,192,229,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,12,0,0,0,31,0,0,0,40,0,0,0,41,0,0,0,32,0,0,0,42,0,0,0,13,0,0,0,25,0,0,0,33,0,0,0,10,0,0,0,7,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,21,10,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,16,12,19,28,30,3,13,31,32,33,34,35,27,26,17,25,25,25,25,25,25,25,25,25,25,22,18,2,14,11,15,28,24,24,24,24,24,24,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,28,4,28,22,28,24,24,24,24,24,24,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,36,28,28,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,14,0,0,0,40,0,0,0,51,0,0,0,52,0,0,0,41,0,0,0,53,0,0,0,15,0,0,0,26,0,0,0,42,0,0,0,11,0,0,0,12,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,10,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,16,12,19,28,30,3,13,31,32,33,34,35,27,26,17,25,25,25,25,25,25,25,25,25,25,22,18,2,14,11,15,28,24,24,24,24,24,24,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,28,4,28,22,28,24,24,24,24,24,24,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,36,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,22,28,28,28,28,28,28,28,28,28,28,22,28,26,28,28,22,28,28,28,28,28,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,22,22,22,22,22,22,22,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,48,0,0,0,16,0,0,0,49,0,0,0,54,0,0,0,55,0,0,0,50,0,0,0,56,0,0,0,17,0,0,0,27,0,0,0,51,0,0,0,13,0,0,0,14,0,0,0,2,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,21,10,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,16,12,19,28,30,3,13,31,32,33,34,35,27,26,17,25,25,25,25,25,25,25,25,25,25,22,18,2,14,11,15,28,24,24,24,24,24,24,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,28,4,28,22,28,24,24,24,24,24,24,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,36,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,22,28,28,28,28,28,28,28,28,28,28,22,28,26,28,28,22,28,28,28,28,28,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,22,22,22,22,22,22,22,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,142,1,0,71,52,2,0,128,143,1,0,80,52,2,0,87,52,2,0,96,52,2,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,12,0,0,0,31,0,0,0,40,0,0,0,41,0,0,0,32,0,0,0,42,0,0,0,13,0,0,0,25,0,0,0,33,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,21,10,0,0,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,16,12,19,28,30,3,13,31,32,33,34,35,27,26,17,25,25,25,25,25,25,25,25,25,25,23,18,2,14,11,15,28,24,24,24,24,24,24,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,28,4,28,22,28,24,24,24,24,24,24,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,36,28,28,28,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,0,0,0,0,0,0,0,0,0,1,1,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,45,0,0,0,48,0,0,0,49,0,0,0,50,0,0,0,64,237,0,0,176,238,0,0,32,240,0,0,144,241,0,0,144,241,0,0,0,243,0,0,32,240,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,12,0,0,0,31,0,0,0,40,0,0,0,41,0,0,0,32,0,0,0,42,0,0,0,13,0,0,0,25,0,0,0,33,0,0,0,6,0,0,0,7,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,10,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,16,12,19,28,30,3,13,31,32,33,34,35,27,26,17,25,25,25,25,25,25,25,25,25,25,23,18,2,14,11,15,28,24,24,24,24,24,24,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,28,4,28,22,28,24,24,24,24,24,24,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,36,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,22,28,28,28,28,28,28,28,28,28,28,22,28,26,28,28,22,28,28,28,28,28,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,22,22,22,22,22,22,22,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,12,0,0,0,31,0,0,0,40,0,0,0,41,0,0,0,32,0,0,0,42,0,0,0,13,0,0,0,25,0,0,0,33,0,0,0,10,0,0,0,7,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,21,10,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,16,12,19,28,30,3,13,31,32,33,34,35,27,26,17,25,25,25,25,25,25,25,25,25,25,23,18,2,14,11,15,28,24,24,24,24,24,24,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,28,4,28,22,28,24,24,24,24,24,24,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,36,28,28,28],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+51204);allocate([25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,12,0,0,0,31,0,0,0,40,0,0,0,41,0,0,0,32,0,0,0,42,0,0,0,13,0,0,0,25,0,0,0,33,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,21,10,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,16,12,19,28,30,3,13,31,32,33,34,35,27,26,17,25,25,25,25,25,25,25,25,25,25,23,18,2,14,11,15,28,24,24,24,24,24,24,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,28,4,28,22,28,24,24,24,24,24,24,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,36,28,28,28,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,0,0,0,0,0,0,0,0,0,1,1,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,45,0,0,0,48,0,0,0,49,0,0,0,50,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,14,0,0,0,40,0,0,0,51,0,0,0,52,0,0,0,41,0,0,0,53,0,0,0,15,0,0,0,26,0,0,0,42,0,0,0,11,0,0,0,12,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,10,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,16,12,19,28,30,3,13,31,32,33,34,35,27,26,17,25,25,25,25,25,25,25,25,25,25,23,18,2,14,11,15,28,24,24,24,24,24,24,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,28,4,28,22,28,24,24,24,24,24,24,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,36,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,22,28,28,28,28,28,28,28,28,28,28,22,28,26,28,28,22,28,28,28,28,28,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,22,22,22,22,22,22,22,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,48,0,0,0,16,0,0,0,49,0,0,0,54,0,0,0,55,0,0,0,50,0,0,0,56,0,0,0,17,0,0,0,27,0,0,0,51,0,0,0,13,0,0,0,14,0,0,0,2,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,21,10,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,16,12,19,28,30,3,13,31,32,33,34,35,27,26,17,25,25,25,25,25,25,25,25,25,25,23,18,2,14,11,15,28,24,24,24,24,24,24,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,28,4,28,22,28,24,24,24,24,24,24,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,36,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,22,28,28,28,28,28,28,28,28,28,28,22,28,26,28,28,22,28,28,28,28,28,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,22,22,22,22,22,22,22,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,242,52,2,0,248,52,2,0,251,52,2,0,1,53,2,0,155,52,2,0,8,53,2,0,17,53,2,0,25,53,2,0,172,244,0,0,20,0,0,0,67,46,85,84,70,45,56,0,0,0,0,0,0,0,0,0,0,0,0,0,222,18,4,149,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,2,0,0,192,3,0,0,192,4,0,0,192,5,0,0,192,6,0,0,192,7,0,0,192,8,0,0,192,9,0,0,192,10,0,0,192,11,0,0,192,12,0,0,192,13,0,0,192,14,0,0,192,15,0,0,192,16,0,0,192,17,0,0,192,18,0,0,192,19,0,0,192,20,0,0,192,21,0,0,192,22,0,0,192,23,0,0,192,24,0,0,192,25,0,0,192,26,0,0,192,27,0,0,192,28,0,0,192,29,0,0,192,30,0,0,192,31,0,0,192,0,0,0,179,1,0,0,195,2,0,0,195,3,0,0,195,4,0,0,195,5,0,0,195,6,0,0,195,7,0,0,195,8,0,0,195,9,0,0,195,10,0,0,195,11,0,0,195,12,0,0,195,13,0,0,211,14,0,0,195,15,0,0,195,0,0,12,187,1,0,12,195,2,0,12,195,3,0,12,195,4,0,12,211,144,245,0,0,5,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,19,0,0,0,22,251,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,231,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,247,0,0,9,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,19,0,0,0,30,251,2,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,132,247,0,0,5,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,0,0,0,19,0,0,0,38,255,2,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,132,247,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,9,0,0,0,10,0,0,0,13,0,0,0,11,0,0,0,12,0,0,0,133,0,0,0,0,32,0,0,1,32,0,0,2,32,0,0,3,32,0,0,4,32,0,0,5,32,0,0,6,32,0,0,8,32,0,0,9,32,0,0,10,32,0,0,40,32,0,0,41,32,0,0,95,32,0,0,0,48,0,0,0,0,0,0,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5,95,112,137,0,255,9,47,15,3,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,131,249,162,0,68,78,110,0,252,41,21,0,209,87,39,0,221,52,245,0,98,219,192,0,60,153,149,0,65,144,67,0,99,81,254,0,187,222,171,0,183,97,197,0,58,110,36,0,210,77,66,0,73,6,224,0,9,234,46,0,28,146,209,0,235,29,254,0,41,177,28,0,232,62,167,0,245,53,130,0,68,187,46,0,156,233,132,0,180,38,112,0,65,126,95,0,214,145,57,0,83,131,57,0,156,244,57,0,139,95,132,0,40,249,189,0,248,31,59,0,222,255,151,0,15,152,5,0,17,47,239,0,10,90,139,0,109,31,109,0,207,126,54,0,9,203,39,0,70,79,183,0,158,102,63,0,45,234,95,0,186,39,117,0,229,235,199,0,61,123,241,0,247,57,7,0,146,82,138,0,251,107,234,0,31,177,95,0,8,93,141,0,48,3,86,0,123,252,70,0,240,171,107,0,32,188,207,0,54,244,154,0,227,169,29,0,94,97,145,0,8,27,230,0,133,153,101,0,160,20,95,0,141,64,104,0,128,216,255,0,39,115,77,0,6,6,49,0,202,86,21,0,201,168,115,0,123,226,96,0,107,140,192,0,116,0,0,0,146,88,2,0,110,0,0,0,148,88,2,0,114,0,0,0,150,88,2,0,102,0,0,0,152,88,2,0,97,0,0,0,154,88,2,0,101,0,0,0,156,88,2,0,119,0,0,0,158,88,2,0,87,0,0,0,171,88,2,0,115,0,0,0,185,88,2,0,83,0,0,0,197,88,2,0,100,0,0,0,210,88,2,0,68,0,0,0,222,88,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,4,0,27,0,27,0,32,0,32,0,35,0,33,0,10,0,2,0,22,0,9,0,33,0,33,0,33,0,21,0,28,0,1,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,8,0,4,0,5,0,27,0,2,0,23,0,27,0,32,0,31,0,30,0,29,0,9,0,19,0,0,0,21,0,18,0,21,0,3,0,7,0,21,0,21,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,8,0,4,0,5,0,5,0,6,0,27,0,26,0,24,0,25,0,32,0,7,0,21,0,20,0,20,0,20,0,20,0,20,0,20,0,11,0,20,0,13,0,20,0,12,0,20,0,20,0,20,0,14,0,20,0,20,0,20,0,16,0,20,0,15,0,20,0,17,0,0,0,0,0,0,0,174,0,46,0,47,0,51,0,53,0,48,0,55,0,170,0,219,0,219,0,219,0,219,0,0,0,61,0,135,0,55,0,55,0,219,0,219,0,0,0,40,0,53,0,46,0,50,0,47,0,98,0,0,0,0,0,71,0,0,0,0,0,219,0,81,0,0,0,219,0,219,0,219,0,0,0,219,0,132,0,85,0,219,0,130,0,219,0,0,0,129,0,219,0,0,0,62,0,66,0,65,0,72,0,68,0,82,0,91,0,0,0,0,0,94,0,95,0,219,0,0,0,219,0,219,0,219,0,0,0,0,0,123,0,73,0,87,0,82,0,90,0,90,0,93,0,0,0,95,0,0,0,95,0,0,0,101,0,93,0,95,0,0,0,93,0,110,0,106,0,0,0,105,0,0,0,110,0,0,0,219,0,147,0,154,0,161,0,168,0,171,0,112,0,177,0,184,0,191,0,198,0,205,0,211,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,3,0,4,0,7,0,3,0,4,0,5,0,5,0,6,0,6,0,8,0,7,0,7,0,17,0,22,0,18,0,17,0,18,0,8,0,8,0,15,0,15,0,23,0,15,0,24,0,15,0,25,0,26,0,26,0,30,0,22,0,52,0,30,0,5,0,50,0,6,0,34,0,34,0,51,0,23,0,24,0,53,0,25,0,26,0,26,0,42,0,54,0,42,0,52,0,55,0,50,0,69,0,59,0,60,0,51,0,59,0,60,0,70,0,53,0,71,0,72,0,76,0,54,0,34,0,73,0,74,0,55,0,69,0,78,0,80,0,98,0,81,0,82,0,84,0,70,0,71,0,85,0,72,0,76,0,86,0,73,0,74,0,88,0,90,0,78,0,68,0,80,0,81,0,82,0,84,0,56,0,47,0,44,0,85,0,41,0,86,0,27,0,16,0,88,0,90,0,93,0,93,0,93,0,93,0,93,0,93,0,93,0,94,0,94,0,94,0,94,0,94,0,94,0,94,0,95,0,95,0,95,0,95,0,95,0,95,0,95,0,96,0,9,0,96,0,96,0,96,0,96,0,96,0,97,0,97,0,99,0,2,0,99,0,99,0,99,0,99,0,99,0,100,0,0,0,100,0,0,0,100,0,100,0,100,0,101,0,0,0,101,0,101,0,101,0,101,0,101,0,102,0,102,0,0,0,102,0,102,0,102,0,102,0,103,0,0,0,103,0,103,0,103,0,103,0,104,0,0,0,104,0,104,0,104,0,104,0,104,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,0,0,92,0,1,0,93,0,93,0,94,0,94,0,95,0,95,0,92,0,92,0,92,0,92,0,92,0,96,0,92,0,92,0,92,0,97,0,92,0,92,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,99,0,100,0,101,0,102,0,102,0,92,0,92,0,103,0,92,0,92,0,92,0,96,0,92,0,92,0,97,0,92,0,97,0,92,0,104,0,97,0,92,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,99,0,100,0,101,0,101,0,92,0,102,0,92,0,92,0,92,0,103,0,104,0,97,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,0,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,0,0,10,0,11,0,12,0,13,0,14,0,10,0,15,0,16,0,17,0,18,0,19,0,10,0,20,0,21,0,21,0,21,0,22,0,23,0,21,0,24,0,21,0,21,0,25,0,21,0,21,0,21,0,26,0,21,0,21,0,10,0,21,0,21,0,21,0,22,0,23,0,24,0,21,0,21,0,25,0,21,0,21,0,21,0,26,0,21,0,21,0,21,0,21,0,27,0,12,0,12,0,36,0,30,0,30,0,32,0,33,0,32,0,33,0,36,0,37,0,38,0,45,0,50,0,47,0,46,0,42,0,37,0,38,0,40,0,41,0,51,0,42,0,52,0,43,0,53,0,54,0,55,0,60,0,50,0,71,0,61,0,34,0,69,0,34,0,63,0,64,0,70,0,51,0,52,0,72,0,53,0,54,0,55,0,47,0,73,0,42,0,71,0,74,0,69,0,76,0,92,0,60,0,70,0,92,0,61,0,77,0,72,0,78,0,79,0,82,0,73,0,65,0,80,0,81,0,74,0,76,0,83,0,84,0,49,0,85,0,86,0,87,0,77,0,78,0,88,0,79,0,82,0,89,0,80,0,81,0,90,0,91,0,83,0,68,0,84,0,85,0,86,0,87,0,75,0,68,0,44,0,88,0,44,0,89,0,56,0,44,0,90,0,91,0,29,0,29,0,29,0,29,0,29,0,29,0,29,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,35,0,35,0,35,0,35,0,35,0,35,0,35,0,39,0,92,0,39,0,39,0,39,0,39,0,39,0,48,0,48,0,57,0,28,0,57,0,57,0,57,0,57,0,57,0,58,0,92,0,58,0,92,0,58,0,58,0,58,0,59,0,92,0,59,0,59,0,59,0,59,0,59,0,62,0,62,0,92,0,62,0,62,0,62,0,62,0,66,0,92,0,66,0,66,0,66,0,66,0,67,0,92,0,67,0,67,0,67,0,67,0,67,0,9,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,8,0,174,255,209,0,10,0,174,255,174,255,11,0,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,5,0,209,0,174,255,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,174,255,251,255,174,255,14,0,236,255,174,255,174,255,174,255,174,255,209,0,209,0,209,0,209,0,209,0,13,0,37,0,12,0,66,0,16,0,80,0,19,0,109,0,123,0,20,0,152,0,15,0,166,0,195,0,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,23,0,174,255,119,0,174,255,7,0,46,0,174,255,38,0,174,255,23,0,17,0,35,0,174,255,13,0,174,255,174,255,174,255,174,255,58,0,174,255,174,255,53,0,174,255,174,255,174,255,40,0,174,255,7,0,174,255,59,0,69,0,174,255,72,0,174,255,174,255,174,255,174,255,174,255,174,255,174,255,252,255,232,0,246,255,255,255,26,0,0,0,39,0,1,0,50,0,174,255,174,255,2,0,36,0,3,0,47,0,174,255,174,255,174,255,174,255,174,255,254,255,148,0,174,255,9,0,27,0,174,255,188,255,174,255,174,255,175,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,0,0,0,0,0,0,109,230,236,222,5,0,11,0,73,0,49,1,83,0,127,1,48,1,105,0,120,1,255,0,129,1,83,2,130,1,131,1,132,1,133,1,134,1,84,2,135,1,136,1,137,1,86,2,138,1,87,2,139,1,140,1,142,1,221,1,143,1,89,2,144,1,91,2,145,1,146,1,147,1,96,2,148,1,99,2,150,1,105,2,151,1,104,2,152,1,153,1,156,1,111,2,157,1,114,2,159,1,117,2,166,1,128,2,167,1,168,1,169,1,131,2,172,1,173,1,174,1,136,2,175,1,176,1,177,1,138,2,178,1,139,2,183,1,146,2,184,1,185,1,188,1,189,1,196,1,198,1,196,1,197,1,197,1,198,1,199,1,201,1,199,1,200,1,200,1,201,1,202,1,204,1,202,1,203,1,203,1,204,1,241,1,243,1,241,1,242,1,242,1,243,1,244,1,245,1,246,1,149,1,247,1,191,1,32,2,158,1,134,3,172,3,136,3,173,3,137,3,174,3,138,3,175,3,140,3,204,3,142,3,205,3,143,3,206,3,153,3,69,3,153,3,190,31,163,3,194,3,247,3,248,3,250,3,251,3,96,30,155,30,158,30,223,0,89,31,81,31,91,31,83,31,93,31,85,31,95,31,87,31,188,31,179,31,204,31,195,31,236,31,229,31,252,31,243,31,58,2,101,44,59,2,60,2,61,2,154,1,62,2,102,44,65,2,66,2,67,2,128,1,68,2,137,2,69,2,140,2,244,3,184,3,249,3,242,3,253,3,123,3,254,3,124,3,255,3,125,3,192,4,207,4,38,33,201,3,42,33,107,0,43,33,229,0,50,33,78,33,131,33,132,33,96,44,97,44,98,44,107,2,99,44,125,29,100,44,125,2,109,44,81,2,110,44,113,2,111,44,80,2,112,44,82,2,114,44,115,44,117,44,118,44,126,44,63,2,127,44,64,2,242,44,243,44,125,167,121,29,139,167,140,167,141,167,101,2,170,167,102,2,199,16,39,45,205,16,45,45,118,3,119,3,156,3,181,0,146,3,208,3,152,3,209,3,166,3,213,3,160,3,214,3,154,3,240,3,161,3,241,3,149,3,245,3,207,3,215,3,0,0,0,0,65,0,32,26,192,0,32,31,0,1,1,47,50,1,1,5,57,1,1,15,74,1,1,45,121,1,1,5,112,3,1,3,145,3,32,17,163,3,32,9,0,4,80,16,16,4,32,32,96,4,1,33,138,4,1,53,193,4,1,13,208,4,1,63,20,5,1,19,49,5,48,38,160,1,1,5,179,1,1,3,205,1,1,15,222,1,1,17,248,1,1,39,34,2,1,17,216,3,1,23,0,30,1,149,160,30,1,95,8,31,248,8,24,31,248,6,40,31,248,8,56,31,248,8,72,31,248,6,104,31,248,8,136,31,248,8,152,31,248,8,168,31,248,8,184,31,248,2,186,31,182,2,200,31,170,4,216,31,248,2,218,31,156,2,232,31,248,2,234,31,144,2,248,31,128,2,250,31,130,2,70,2,1,9,16,5,1,3,96,33,16,16,0,44,48,47,103,44,1,5,128,44,1,99,235,44,1,3,64,166,1,45,128,166,1,23,34,167,1,13,50,167,1,61,121,167,1,3,126,167,1,9,144,167,1,3,160,167,1,9,33,255,32,26,0,0,0,0,123,32,118,97,114,32,112,97,116,104,32,61,32,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,48,41,59,32,118,97,114,32,100,97,116,97,32,61,32,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,49,41,59,32,70,83,46,99,114,101,97,116,101,80,97,116,104,40,34,47,34,44,32,80,65,84,72,46,100,105,114,110,97,109,101,40,112,97,116,104,41,41,59,32,70,83,46,119,114,105,116,101,70,105,108,101,40,80,65,84,72,46,106,111,105,110,40,34,47,34,44,32,112,97,116,104,41,44,32,100,97,116,97,41,59,32,125,0,99,111,114,101,0,120,100,111,116,118,101,114,115,105,111,110,0,49,46,55,0,49,46,52,0,49,46,50,0,95,108,100,114,97,119,95,0,95,104,100,114,97,119,95,0,95,116,100,114,97,119,95,0,95,104,108,100,114,97,119,95,0,95,116,108,100,114,97,119,95,0,120,100,111,116,32,118,101,114,115,105,111,110,32,34,37,115,34,32,116,111,111,32,108,111,110,103,0,32,37,100,32,0,37,46,48,50,102,0,37,115,37,100,32,45,0,35,37,48,50,120,37,48,50,120,37,48,50,120,37,48,50,120,0,115,101,116,108,105,110,101,119,105,100,116,104,40,0,37,46,51,102,0,83,32,0,67,32,0,50,32,0,69,32,0,101,32,0,70,32,0,116,32,37,117,32,0,84,32,0,100,111,116,58,100,111,116,0,103,118,58,100,111,116,0,99,97,110,111,110,58,100,111,116,0,112,108,97,105,110,58,100,111,116,0,112,108,97,105,110,45,101,120,116,58,100,111,116,0,120,100,111,116,58,120,100,111,116,0,120,100,111,116,49,46,50,58,120,100,111,116,0,120,100,111,116,49,46,52,58,120,100,111,116,0,73,32,0,34,95,115,117,98,103,114,97,112,104,95,99,110,116,34,58,32,37,100,0,34,95,103,118,105,100,34,58,32,37,100,0,34,101,100,103,101,115,34,58,32,91,10,0,34,95,103,118,105,100,34,58,32,37,100,44,10,0,34,116,97,105,108,34,58,32,37,100,44,10,0,34,104,101,97,100,34,58,32,37,100,0,34,111,98,106,101,99,116,115,34,58,32,91,10,0,34,110,111,100,101,115,34,58,32,91,10,0,34,110,97,109,101,34,58,32,34,37,115,34,0,92,34,0,92,47,0,92,98,0,92,102,0,92,110,0,92,114,0,92,116,0,34,115,117,98,103,114,97,112,104,115,34,58,32,91,10,0,34,37,115,34,58,32,0,34,37,115,34,0,67,111,117,108,100,32,110,111,116,32,112,97,114,115,101,32,120,100,111,116,32,34,37,115,34,10,0,91,10,0,34,111,112,34,58,32,34,37,99,34,44,10,0,34,114,101,99,116,34,58,32,91,37,46,48,51,102,44,37,46,48,51,102,44,37,46,48,51,102,44,37,46,48,51,102,93,10,0,34,111,112,34,58,32,34,76,34,44,10,0,34,111,112,34,58,32,34,84,34,44,10,0,34,112,116,34,58,32,91,37,46,48,51,102,44,37,46,48,51,102,93,44,10,0,34,97,108,105,103,110,34,58,32,34,37,99,34,44,10,0,34,119,105,100,116,104,34,58,32,37,46,48,51,102,44,10,0,34,116,101,120,116,34,58,32,34,37,115,34,10,0,34,103,114,97,100,34,58,32,34,110,111,110,101,34,44,10,0,34,99,111,108,111,114,34,58,32,34,37,115,34,10,0,34,103,114,97,100,34,58,32,34,108,105,110,101,97,114,34,44,10,0,34,103,114,97,100,34,58,32,34,114,97,100,105,97,108,34,44,10,0,34,111,112,34,58,32,34,70,34,44,10,0,34,115,105,122,101,34,58,32,37,46,48,51,102,44,10,0,34,102,97,99,101,34,58,32,34,37,115,34,10,0,34,111,112,34,58,32,34,83,34,44,10,0,34,115,116,121,108,101,34,58,32,34,37,115,34,10,0,34,111,112,34,58,32,34,116,34,44,10,0,34,102,111,110,116,99,104,97,114,34,58,32,37,100,10,0,34,112,48,34,58,32,91,37,46,48,51,102,44,37,46,48,51,102,44,37,46,48,51,102,93,44,10,0,34,112,49,34,58,32,91,37,46,48,51,102,44,37,46,48,51,102,44,37,46,48,51,102,93,44,10,0,34,115,116,111,112,115,34,58,32,91,0,123,34,102,114,97,99,34,58,32,37,46,48,51,102,44,32,34,99,111,108,111,114,34,58,32,34,37,115,34,125,0,93,10,0,34,112,48,34,58,32,91,37,46,48,51,102,44,37,46,48,51,102,93,44,10,0,34,112,49,34,58,32,91,37,46,48,51,102,44,37,46,48,51,102,93,44,10,0,34,112,111,105,110,116,115,34,58,32,91,0,91,37,46,48,51,102,44,37,46,48,51,102,93,0,100,114,97,119,95,0,108,100,114,97,119,95,0,104,100,114,97,119,95,0,116,100,114,97,119,95,0,104,108,100,114,97,119,95,0,116,108,100,114,97,119,95,0,34,100,105,114,101,99,116,101,100,34,58,32,37,115,44,10,0,34,115,116,114,105,99,116,34,58,32,37,115,0,68,117,112,108,105,99,97,116,101,32,99,108,117,115,116,101,114,32,110,97,109,101,32,34,37,115,34,10,0,120,100,111,116,0,106,115,111,110,0,106,115,111,110,48,0,100,111,116,95,106,115,111,110,0,120,100,111,116,95,106,115,111,110,0,106,115,111,110,58,106,115,111,110,0,106,115,111,110,48,58,106,115,111,110,0,100,111,116,95,106,115,111,110,58,106,115,111,110,0,120,100,111,116,95,106,115,111,110,58,106,115,111,110,0,110,32,62,61,32,52,0,103,118,114,101,110,100,101,114,95,99,111,114,101,95,102,105,103,46,99,0,102,105,103,95,98,101,122,105,101,114,0,102,105,103,95,114,101,115,111,108,118,101,95,99,111,108,111,114,0,102,105,103,0,102,105,103,58,102,105,103,0,109,97,112,0,114,101,99,116,32,37,115,32,37,100,44,37,100,32,37,100,44,37,100,10,0,99,105,114,99,108,101,32,37,115,32,37,100,44,37,100,44,37,100,10,0,112,111,108,121,32,37,115,0,32,37,100,44,37,100,0,103,118,114,101,110,100,101,114,95,99,111,114,101,95,109,97,112,46,99,0,109,97,112,95,111,117,116,112,117,116,95,115,104,97,112,101,0,114,101,99,116,97,110,103,108,101,32,40,37,100,44,37,100,41,32,40,37,100,44,37,100,41,32,37,115,32,37,115,10,0,60,97,114,101,97,32,115,104,97,112,101,61,34,99,105,114,99,108,101,34,0,60,97,114,101,97,32,115,104,97,112,101,61,34,114,101,99,116,34,0,60,97,114,101,97,32,115,104,97,112,101,61,34,112,111,108,121,34,0,32,104,114,101,102,61,34,0,32,116,105,116,108,101,61,34,0,32,97,108,116,61,34,34,0,32,99,111,111,114,100,115,61,34,0,37,100,44,37,100,44,37,100,0,37,100,44,37,100,44,37,100,44,37,100,0,37,100,44,37,100,0,44,37,100,44,37,100,0,34,62,10,0,60,47,109,97,112,62,10,0,98,97,115,101,32,114,101,102,101,114,101,114,10,0,100,101,102,97,117,108,116,32,0,60,109,97,112,32,105,100,61,34,0,34,32,110,97,109,101,61,34,0,105,115,109,97,112,58,109,97,112,0,99,109,97,112,58,109,97,112,0,105,109,97,112,58,109,97,112,0,99,109,97,112,120,58,109,97,112,0,105,109,97,112,95,110,112,58,109,97,112,0,99,109,97,112,120,95,110,112,58,109,97,112,0,35,32,37,115,10,0,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,46,49,102,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,10,0,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,46,49,102,32,37,100,32,37,100,32,37,100,32,37,100,10,0,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,46,51,102,32,37,100,32,37,46,52,102,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,10,0,37,100,32,37,100,32,35,37,48,50,120,37,48,50,120,37,48,50,120,10,0,103,118,114,101,110,100,101,114,95,99,111,114,101,95,109,112,46,99,0,109,112,95,114,101,115,111,108,118,101,95,99,111,108,111,114,0,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,46,49,102,32,37,46,52,102,32,37,100,32,37,46,49,102,32,37,46,49,102,32,37,100,32,37,100,32,37,115,92,48,48,49,10,0,35,32,101,110,100,32,111,102,32,70,73,71,32,102,105,108,101,10,0,35,70,73,71,32,51,46,50,10,0,35,32,71,101,110,101,114,97,116,101,100,32,98,121,32,37,115,32,118,101,114,115,105,111,110,32,37,115,32,40,37,115,41,10,0,35,32,84,105,116,108,101,58,32,37,115,10,0,35,32,80,97,103,101,115,58,32,37,100,10,0,80,111,114,116,114,97,105,116,10,0,67,101,110,116,101,114,10,0,73,110,99,104,101,115,10,0,76,101,116,116,101,114,10,0,49,48,48,46,48,48,10,0,83,105,110,103,108,101,10,0,45,50,10,0,49,50,48,48,0,32,50,10,0,109,112,0,109,112,58,109,112,0,32,93,32,32,37,100,32,116,114,117,101,32,37,115,10,0,32,93,32,32,37,100,32,102,97,108,115,101,32,37,115,10,0,32,115,101,116,108,105,110,101,119,105,100,116,104,10,0,37,115,32,0,115,101,116,104,115,98,0,37,46,53,103,32,37,46,53,103,32,37,46,53,103,32,37,115,99,111,108,111,114,10,0,37,32,0,110,101,119,112,97,116,104,32,0,32,109,111,118,101,116,111,10,0,32,108,105,110,101,116,111,10,0,115,116,114,111,107,101,10,0,32,99,117,114,118,101,116,111,10,0,99,108,111,115,101,112,97,116,104,32,102,105,108,108,10,0,99,108,111,115,101,112,97,116,104,32,115,116,114,111,107,101,10,0,32,101,108,108,105,112,115,101,95,112,97,116,104,32,102,105,108,108,10,0,32,101,108,108,105,112,115,101,95,112,97,116,104,32,115,116,114,111,107,101,10,0,32,47,37,115,32,115,101,116,95,102,111,110,116,10,0,32,109,111,118,101,116,111,32,0,32,37,115,32,97,108,105,103,110,101,100,116,101,120,116,10,0,91,32,47,82,101,99,116,32,91,32,0,32,93,10,0,32,32,47,66,111,114,100,101,114,32,91,32,48,32,48,32,48,32,93,10,32,32,47,65,99,116,105,111,110,32,60,60,32,47,83,117,98,116,121,112,101,32,47,85,82,73,32,47,85,82,73,32,37,115,32,62,62,10,32,32,47,83,117,98,116,121,112,101,32,47,76,105,110,107,10,47,65,78,78,32,112,100,102,109,97,114,107,10,0,103,115,97,118,101,10,0,37,37,32,37,115,10,0,48,32,48,32,48,32,101,100,103,101,99,111,108,111,114,10,0,101,110,100,112,97,103,101,10,115,104,111,119,112,97,103,101,10,103,114,101,115,116,111,114,101,10,0,37,37,80,97,103,101,84,114,97,105,108,101,114,10,0,37,37,37,37,69,110,100,80,97,103,101,58,32,37,100,10,0,37,37,37,37,80,97,103,101,58,32,37,100,32,37,100,10,0,37,37,37,37,80,97,103,101,66,111,117,110,100,105,110,103,66,111,120,58,32,37,100,32,37,100,32,37,100,32,37,100,10,0,76,97,110,100,115,99,97,112,101,0,80,111,114,116,114,97,105,116,0,37,37,37,37,80,97,103,101,79,114,105,101,110,116,97,116,105,111,110,58,32,37,115,10,0,60,60,32,47,80,97,103,101,83,105,122,101,32,91,37,100,32,37,100,93,32,62,62,32,115,101,116,112,97,103,101,100,101,118,105,99,101,10,0,37,100,32,37,100,32,37,100,32,98,101,103,105,110,112,97,103,101,10,0,103,115,97,118,101,10,37,100,32,37,100,32,37,100,32,37,100,32,98,111,120,112,114,105,109,32,99,108,105,112,32,110,101,119,112,97,116,104,10,0,37,103,32,37,103,32,115,101,116,95,115,99,97,108,101,32,37,100,32,114,111,116,97,116,101,32,37,103,32,37,103,32,116,114,97,110,115,108,97,116,101,10,0,99,97,110,118,97,115,32,115,105,122,101,32,40,37,100,44,37,100,41,32,101,120,99,101,101,100,115,32,80,68,70,32,108,105,109,105,116,32,40,37,100,41,10,9,40,115,117,103,103,101,115,116,32,115,101,116,116,105,110,103,32,97,32,98,111,117,110,100,105,110,103,32,98,111,120,32,115,105,122,101,44,32,115,101,101,32,100,111,116,40,49,41,41,10,0,91,32,47,67,114,111,112,66,111,120,32,91,37,100,32,37,100,32,37,100,32,37,100,93,32,47,80,65,71,69,83,32,112,100,102,109,97,114,107,10,0,37,100,32,37,100,32,115,101,116,108,97,121,101,114,10,0,37,37,37,37,84,105,116,108,101,58,32,37,115,10,0,37,37,80,97,103,101,115,58,32,40,97,116,101,110,100,41,10,0,37,37,80,97,103,101,115,58,32,49,10,0,37,37,66,111,117,110,100,105,110,103,66,111,120,58,32,40,97,116,101,110,100,41,10,0,37,37,37,37,66,111,117,110,100,105,110,103,66,111,120,58,32,37,100,32,37,100,32,37,100,32,37,100,10,0,37,37,69,110,100,67,111,109,109,101,110,116,115,10,115,97,118,101,10,0,115,101,116,117,112,76,97,116,105,110,49,10,0,91,32,123,67,97,116,97,108,111,103,125,32,60,60,32,47,85,82,73,32,60,60,32,47,66,97,115,101,32,37,115,32,62,62,32,62,62,10,47,80,85,84,32,112,100,102,109,97,114,107,10,0,37,37,66,101,103,105,110,80,114,111,108,111,103,0,47,68,111,116,68,105,99,116,32,50,48,48,32,100,105,99,116,32,100,101,102,0,68,111,116,68,105,99,116,32,98,101,103,105,110,0,47,115,101,116,117,112,76,97,116,105,110,49,32,123,0,109,97,114,107,0,47,69,110,99,111,100,105,110,103,86,101,99,116,111,114,32,50,53,54,32,97,114,114,97,121,32,100,101,102,0,32,69,110,99,111,100,105,110,103,86,101,99,116,111,114,32,48,0,73,83,79,76,97,116,105,110,49,69,110,99,111,100,105,110,103,32,48,32,50,53,53,32,103,101,116,105,110,116,101,114,118,97,108,32,112,117,116,105,110,116,101,114,118,97,108,0,69,110,99,111,100,105,110,103,86,101,99,116,111,114,32,52,53,32,47,104,121,112,104,101,110,32,112,117,116,0,37,32,83,101,116,32,117,112,32,73,83,79,32,76,97,116,105,110,32,49,32,99,104,97,114,97,99,116,101,114,32,101,110,99,111,100,105,110,103,0,47,115,116,97,114,110,101,116,73,83,79,32,123,0,32,32,32,32,32,32,32,32,100,117,112,32,100,117,112,32,102,105,110,100,102,111,110,116,32,100,117,112,32,108,101,110,103,116,104,32,100,105,99,116,32,98,101,103,105,110,0,32,32,32,32,32,32,32,32,123,32,49,32,105,110,100,101,120,32,47,70,73,68,32,110,101,32,123,32,100,101,102,32,125,123,32,112,111,112,32,112,111,112,32,125,32,105,102,101,108,115,101,0,32,32,32,32,32,32,32,32,125,32,102,111,114,97,108,108,0,32,32,32,32,32,32,32,32,47,69,110,99,111,100,105,110,103,32,69,110,99,111,100,105,110,103,86,101,99,116,111,114,32,100,101,102,0,32,32,32,32,32,32,32,32,99,117,114,114,101,110,116,100,105,99,116,32,101,110,100,32,100,101,102,105,110,101,102,111,110,116,0,125,32,100,101,102,0,47,84,105,109,101,115,45,82,111,109,97,110,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,84,105,109,101,115,45,73,116,97,108,105,99,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,84,105,109,101,115,45,66,111,108,100,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,84,105,109,101,115,45,66,111,108,100,73,116,97,108,105,99,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,72,101,108,118,101,116,105,99,97,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,72,101,108,118,101,116,105,99,97,45,79,98,108,105,113,117,101,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,72,101,108,118,101,116,105,99,97,45,66,111,108,100,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,72,101,108,118,101,116,105,99,97,45,66,111,108,100,79,98,108,105,113,117,101,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,67,111,117,114,105,101,114,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,67,111,117,114,105,101,114,45,79,98,108,105,113,117,101,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,67,111,117,114,105,101,114,45,66,111,108,100,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,67,111,117,114,105,101,114,45,66,111,108,100,79,98,108,105,113,117,101,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,99,108,101,97,114,116,111,109,97,114,107,0,125,32,98,105,110,100,32,100,101,102,0,37,37,66,101,103,105,110,82,101,115,111,117,114,99,101,58,32,112,114,111,99,115,101,116,32,103,114,97,112,104,118,105,122,32,48,32,48,0,47,99,111,111,114,100,45,102,111,110,116,45,102,97,109,105,108,121,32,47,84,105,109,101,115,45,82,111,109,97,110,32,100,101,102,0,47,100,101,102,97,117,108,116,45,102,111,110,116,45,102,97,109,105,108,121,32,47,84,105,109,101,115,45,82,111,109,97,110,32,100,101,102,0,47,99,111,111,114,100,102,111,110,116,32,99,111,111,114,100,45,102,111,110,116,45,102,97,109,105,108,121,32,102,105,110,100,102,111,110,116,32,56,32,115,99,97,108,101,102,111,110,116,32,100,101,102,0,47,73,110,118,83,99,97,108,101,70,97,99,116,111,114,32,49,46,48,32,100,101,102,0,47,115,101,116,95,115,99,97,108,101,32,123,0,32,32,32,32,32,32,32,100,117,112,32,49,32,101,120,99,104,32,100,105,118,32,47,73,110,118,83,99,97,108,101,70,97,99,116,111,114,32,101,120,99,104,32,100,101,102,0,32,32,32,32,32,32,32,115,99,97,108,101,0,37,32,115,116,121,108,101,115,0,47,115,111,108,105,100,32,123,32,91,93,32,48,32,115,101,116,100,97,115,104,32,125,32,98,105,110,100,32,100,101,102,0,47,100,97,115,104,101,100,32,123,32,91,57,32,73,110,118,83,99,97,108,101,70,97,99,116,111,114,32,109,117,108,32,100,117,112,32,93,32,48,32,115,101,116,100,97,115,104,32,125,32,98,105,110,100,32,100,101,102,0,47,100,111,116,116,101,100,32,123,32,91,49,32,73,110,118,83,99,97,108,101,70,97,99,116,111,114,32,109,117,108,32,54,32,73,110,118,83,99,97,108,101,70,97,99,116,111,114,32,109,117,108,93,32,48,32,115,101,116,100,97,115,104,32,125,32,98,105,110,100,32,100,101,102,0,47,105,110,118,105,115,32,123,47,102,105,108,108,32,123,110,101,119,112,97,116,104,125,32,100,101,102,32,47,115,116,114,111,107,101,32,123,110,101,119,112,97,116,104,125,32,100,101,102,32,47,115,104,111,119,32,123,112,111,112,32,110,101,119,112,97,116,104,125,32,100,101,102,125,32,98,105,110,100,32,100,101,102,0,47,98,111,108,100,32,123,32,50,32,115,101,116,108,105,110,101,119,105,100,116,104,32,125,32,98,105,110,100,32,100,101,102,0,47,102,105,108,108,101,100,32,123,32,125,32,98,105,110,100,32,100,101,102,0,47,117,110,102,105,108,108,101,100,32,123,32,125,32,98,105,110,100,32,100,101,102,0,47,114,111,117,110,100,101,100,32,123,32,125,32,98,105,110,100,32,100,101,102,0,47,100,105,97,103,111,110,97,108,115,32,123,32,125,32,98,105,110,100,32,100,101,102,0,47,116,97,112,101,114,101,100,32,123,32,125,32,98,105,110,100,32,100,101,102,0,37,32,104,111,111,107,115,32,102,111,114,32,115,101,116,116,105,110,103,32,99,111,108,111,114,32,0,47,110,111,100,101,99,111,108,111,114,32,123,32,115,101,116,104,115,98,99,111,108,111,114,32,125,32,98,105,110,100,32,100,101,102,0,47,101,100,103,101,99,111,108,111,114,32,123,32,115,101,116,104,115,98,99,111,108,111,114,32,125,32,98,105,110,100,32,100,101,102,0,47,103,114,97,112,104,99,111,108,111,114,32,123,32,115,101,116,104,115,98,99,111,108,111,114,32,125,32,98,105,110,100,32,100,101,102,0,47,110,111,112,99,111,108,111,114,32,123,112,111,112,32,112,111,112,32,112],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+61464);allocate([111,112,125,32,98,105,110,100,32,100,101,102,0,47,98,101,103,105,110,112,97,103,101,32,123,9,37,32,105,32,106,32,110,112,97,103,101,115,0,9,47,110,112,97,103,101,115,32,101,120,99,104,32,100,101,102,0,9,47,106,32,101,120,99,104,32,100,101,102,0,9,47,105,32,101,120,99,104,32,100,101,102,0,9,47,115,116,114,32,49,48,32,115,116,114,105,110,103,32,100,101,102,0,9,110,112,97,103,101,115,32,49,32,103,116,32,123,0,9,9,103,115,97,118,101,0,9,9,9,99,111,111,114,100,102,111,110,116,32,115,101,116,102,111,110,116,0,9,9,9,48,32,48,32,109,111,118,101,116,111,0,9,9,9,40,92,40,41,32,115,104,111,119,32,105,32,115,116,114,32,99,118,115,32,115,104,111,119,32,40,44,41,32,115,104,111,119,32,106,32,115,116,114,32,99,118,115,32,115,104,111,119,32,40,92,41,41,32,115,104,111,119,0,9,9,103,114,101,115,116,111,114,101,0,9,125,32,105,102,0,47,115,101,116,95,102,111,110,116,32,123,0,9,102,105,110,100,102,111,110,116,32,101,120,99,104,0,9,115,99,97,108,101,102,111,110,116,32,115,101,116,102,111,110,116,0,37,32,100,114,97,119,32,116,101,120,116,32,102,105,116,116,101,100,32,116,111,32,105,116,115,32,101,120,112,101,99,116,101,100,32,119,105,100,116,104,0,47,97,108,105,103,110,101,100,116,101,120,116,32,123,9,9,9,37,32,119,105,100,116,104,32,116,101,120,116,0,9,47,116,101,120,116,32,101,120,99,104,32,100,101,102,0,9,47,119,105,100,116,104,32,101,120,99,104,32,100,101,102,0,9,103,115,97,118,101,0,9,9,119,105,100,116,104,32,48,32,103,116,32,123,0,9,9,9,91,93,32,48,32,115,101,116,100,97,115,104,0,9,9,9,116,101,120,116,32,115,116,114,105,110,103,119,105,100,116,104,32,112,111,112,32,119,105,100,116,104,32,101,120,99,104,32,115,117,98,32,116,101,120,116,32,108,101,110,103,116,104,32,100,105,118,32,48,32,116,101,120,116,32,97,115,104,111,119,0,9,9,125,32,105,102,0,9,103,114,101,115,116,111,114,101,0,47,98,111,120,112,114,105,109,32,123,9,9,9,9,37,32,120,99,111,114,110,101,114,32,121,99,111,114,110,101,114,32,120,115,105,122,101,32,121,115,105,122,101,0,9,9,52,32,50,32,114,111,108,108,0,9,9,109,111,118,101,116,111,0,9,9,50,32,99,111,112,121,0,9,9,101,120,99,104,32,48,32,114,108,105,110,101,116,111,0,9,9,48,32,101,120,99,104,32,114,108,105,110,101,116,111,0,9,9,112,111,112,32,110,101,103,32,48,32,114,108,105,110,101,116,111,0,9,9,99,108,111,115,101,112,97,116,104,0,47,101,108,108,105,112,115,101,95,112,97,116,104,32,123,0,9,47,114,121,32,101,120,99,104,32,100,101,102,0,9,47,114,120,32,101,120,99,104,32,100,101,102,0,9,47,121,32,101,120,99,104,32,100,101,102,0,9,47,120,32,101,120,99,104,32,100,101,102,0,9,109,97,116,114,105,120,32,99,117,114,114,101,110,116,109,97,116,114,105,120,0,9,110,101,119,112,97,116,104,0,9,120,32,121,32,116,114,97,110,115,108,97,116,101,0,9,114,120,32,114,121,32,115,99,97,108,101,0,9,48,32,48,32,49,32,48,32,51,54,48,32,97,114,99,0,9,115,101,116,109,97,116,114,105,120,0,47,101,110,100,112,97,103,101,32,123,32,115,104,111,119,112,97,103,101,32,125,32,98,105,110,100,32,100,101,102,0,47,115,104,111,119,112,97,103,101,32,123,32,125,32,100,101,102,0,47,108,97,121,101,114,99,111,108,111,114,115,101,113,0,9,91,9,37,32,108,97,121,101,114,32,99,111,108,111,114,32,115,101,113,117,101,110,99,101,32,45,32,100,97,114,107,101,115,116,32,116,111,32,108,105,103,104,116,101,115,116,0,9,9,91,48,32,48,32,48,93,0,9,9,91,46,50,32,46,56,32,46,56,93,0,9,9,91,46,52,32,46,56,32,46,56,93,0,9,9,91,46,54,32,46,56,32,46,56,93,0,9,9,91,46,56,32,46,56,32,46,56,93,0,9,93,0,100,101,102,0,47,108,97,121,101,114,108,101,110,32,108,97,121,101,114,99,111,108,111,114,115,101,113,32,108,101,110,103,116,104,32,100,101,102,0,47,115,101,116,108,97,121,101,114,32,123,47,109,97,120,108,97,121,101,114,32,101,120,99,104,32,100,101,102,32,47,99,117,114,108,97,121,101,114,32,101,120,99,104,32,100,101,102,0,9,108,97,121,101,114,99,111,108,111,114,115,101,113,32,99,117,114,108,97,121,101,114,32,49,32,115,117,98,32,108,97,121,101,114,108,101,110,32,109,111,100,32,103,101,116,0,9,97,108,111,97,100,32,112,111,112,32,115,101,116,104,115,98,99,111,108,111,114,0,9,47,110,111,100,101,99,111,108,111,114,32,123,110,111,112,99,111,108,111,114,125,32,100,101,102,0,9,47,101,100,103,101,99,111,108,111,114,32,123,110,111,112,99,111,108,111,114,125,32,100,101,102,0,9,47,103,114,97,112,104,99,111,108,111,114,32,123,110,111,112,99,111,108,111,114,125,32,100,101,102,0,47,111,110,108,97,121,101,114,32,123,32,99,117,114,108,97,121,101,114,32,110,101,32,123,105,110,118,105,115,125,32,105,102,32,125,32,100,101,102,0,47,111,110,108,97,121,101,114,115,32,123,0,9,47,109,121,117,112,112,101,114,32,101,120,99,104,32,100,101,102,0,9,47,109,121,108,111,119,101,114,32,101,120,99,104,32,100,101,102,0,9,99,117,114,108,97,121,101,114,32,109,121,108,111,119,101,114,32,108,116,0,9,99,117,114,108,97,121,101,114,32,109,121,117,112,112,101,114,32,103,116,0,9,111,114,0,9,123,105,110,118,105,115,125,32,105,102,0,47,99,117,114,108,97,121,101,114,32,48,32,100,101,102,0,37,37,69,110,100,82,101,115,111,117,114,99,101,0,37,37,69,110,100,80,114,111,108,111,103,0,37,37,66,101,103,105,110,83,101,116,117,112,0,49,52,32,100,101,102,97,117,108,116,45,102,111,110,116,45,102,97,109,105,108,121,32,115,101,116,95,102,111,110,116,0,37,32,47,97,114,114,111,119,108,101,110,103,116,104,32,49,48,32,100,101,102,0,37,32,47,97,114,114,111,119,119,105,100,116,104,32,53,32,100,101,102,0,37,32,109,97,107,101,32,115,117,114,101,32,112,100,102,109,97,114,107,32,105,115,32,104,97,114,109,108,101,115,115,32,102,111,114,32,80,83,45,105,110,116,101,114,112,114,101,116,101,114,115,32,111,116,104,101,114,32,116,104,97,110,32,68,105,115,116,105,108,108,101,114,0,47,112,100,102,109,97,114,107,32,119,104,101,114,101,32,123,112,111,112,125,32,123,117,115,101,114,100,105,99,116,32,47,112,100,102,109,97,114,107,32,47,99,108,101,97,114,116,111,109,97,114,107,32,108,111,97,100,32,112,117,116,125,32,105,102,101,108,115,101,0,37,32,109,97,107,101,32,39,60,60,39,32,97,110,100,32,39,62,62,39,32,115,97,102,101,32,111,110,32,80,83,32,76,101,118,101,108,32,49,32,100,101,118,105,99,101,115,0,47,108,97,110,103,117,97,103,101,108,101,118,101,108,32,119,104,101,114,101,32,123,112,111,112,32,108,97,110,103,117,97,103,101,108,101,118,101,108,125,123,49,125,32,105,102,101,108,115,101,0,50,32,108,116,32,123,0,32,32,32,32,117,115,101,114,100,105,99,116,32,40,60,60,41,32,99,118,110,32,40,91,41,32,99,118,110,32,108,111,97,100,32,112,117,116,0,32,32,32,32,117,115,101,114,100,105,99,116,32,40,62,62,41,32,99,118,110,32,40,91,41,32,99,118,110,32,108,111,97,100,32,112,117,116,0,125,32,105,102,0,37,37,69,110,100,83,101,116,117,112,0,37,37,84,114,97,105,108,101,114,10,0,37,37,37,37,80,97,103,101,115,58,32,37,100,10,0,101,110,100,10,114,101,115,116,111,114,101,10,0,37,37,69,79,70,10,0,37,33,80,83,45,65,100,111,98,101,45,51,46,48,0,32,69,80,83,70,45,51,46,48,10,0,37,37,37,37,67,114,101,97,116,111,114,58,32,37,115,32,118,101,114,115,105,111,110,32,37,115,32,40,37,115,41,10,0,112,115,50,58,112,115,0,60,33,45,45,32,0,60,112,111,108,121,108,105,110,101,0,32,112,111,105,110,116,115,61,34,0,34,47,62,10,0,32,102,105,108,108,61,34,0,117,114,108,40,35,108,95,37,100,41,0,117,114,108,40,35,114,95,37,100,41,0,34,32,102,105,108,108,45,111,112,97,99,105,116,121,61,34,37,102,0,34,32,115,116,114,111,107,101,61,34,0,34,32,115,116,114,111,107,101,45,119,105,100,116,104,61,34,0,34,32,115,116,114,111,107,101,45,100,97,115,104,97,114,114,97,121,61,34,37,115,0,53,44,50,0,49,44,53,0,34,32,115,116,114,111,107,101,45,111,112,97,99,105,116,121,61,34,37,102,0,103,118,114,101,110,100,101,114,95,99,111,114,101,95,115,118,103,46,99,0,115,118,103,95,112,114,105,110,116,95,99,111,108,111,114,0,60,112,97,116,104,0,32,105,100,61,34,0,95,112,34,32,0,32,100,61,34,0,37,99,0,60,100,101,102,115,62,10,60,114,97,100,105,97,108,71,114,97,100,105,101,110,116,32,105,100,61,34,114,95,37,100,34,32,99,120,61,34,53,48,37,37,34,32,99,121,61,34,53,48,37,37,34,32,114,61,34,55,53,37,37,34,32,102,120,61,34,37,100,37,37,34,32,102,121,61,34,37,100,37,37,34,62,10,0,60,115,116,111,112,32,111,102,102,115,101,116,61,34,48,34,32,115,116,121,108,101,61,34,115,116,111,112,45,99,111,108,111,114,58,0,59,115,116,111,112,45,111,112,97,99,105,116,121,58,0,49,46,0,59,34,47,62,10,0,60,115,116,111,112,32,111,102,102,115,101,116,61,34,49,34,32,115,116,121,108,101,61,34,115,116,111,112,45,99,111,108,111,114,58,0,59,34,47,62,10,60,47,114,97,100,105,97,108,71,114,97,100,105,101,110,116,62,10,60,47,100,101,102,115,62,10,0,60,100,101,102,115,62,10,60,108,105,110,101,97,114,71,114,97,100,105,101,110,116,32,105,100,61,34,108,95,37,100,34,32,103,114,97,100,105,101,110,116,85,110,105,116,115,61,34,117,115,101,114,83,112,97,99,101,79,110,85,115,101,34,32,0,120,49,61,34,0,34,32,121,49,61,34,0,34,32,120,50,61,34,0,34,32,121,50,61,34,0,34,32,62,10,0,60,115,116,111,112,32,111,102,102,115,101,116,61,34,37,46,48,51,102,34,32,115,116,121,108,101,61,34,115,116,111,112,45,99,111,108,111,114,58,0,59,34,47,62,10,60,47,108,105,110,101,97,114,71,114,97,100,105,101,110,116,62,10,60,47,100,101,102,115,62,10,0,60,112,111,108,121,103,111,110,0,60,101,108,108,105,112,115,101,0,32,99,120,61,34,0,34,32,99,121,61,34,0,34,32,114,120,61,34,0,34,32,114,121,61,34,0,60,116,101,120,116,0,32,116,101,120,116,45,97,110,99,104,111,114,61,34,115,116,97,114,116,34,0,32,116,101,120,116,45,97,110,99,104,111,114,61,34,101,110,100,34,0,32,116,101,120,116,45,97,110,99,104,111,114,61,34,109,105,100,100,108,101,34,0,32,120,61,34,0,34,32,121,61,34,0,32,102,111,110,116,45,102,97,109,105,108,121,61,34,37,115,0,44,37,115,0,32,102,111,110,116,45,119,101,105,103,104,116,61,34,37,115,34,0,32,102,111,110,116,45,115,116,114,101,116,99,104,61,34,37,115,34,0,32,102,111,110,116,45,115,116,121,108,101,61,34,37,115,34,0,32,102,111,110,116,45,102,97,109,105,108,121,61,34,37,115,34,0,32,102,111,110,116,45,119,101,105,103,104,116,61,34,98,111,108,100,34,0,32,102,111,110,116,45,115,116,121,108,101,61,34,105,116,97,108,105,99,34,0,32,116,101,120,116,45,100,101,99,111,114,97,116,105,111,110,61,34,0,37,115,111,118,101,114,108,105,110,101,0,37,115,108,105,110,101,45,116,104,114,111,117,103,104,0,32,98,97,115,101,108,105,110,101,45,115,104,105,102,116,61,34,115,117,112,101,114,34,0,32,98,97,115,101,108,105,110,101,45,115,104,105,102,116,61,34,115,117,98,34,0,32,102,111,110,116,45,115,105,122,101,61,34,37,46,50,102,34,0,32,102,105,108,108,61,34,37,115,34,0,32,102,105,108,108,61,34,35,37,48,50,120,37,48,50,120,37,48,50,120,34,0,115,118,103,95,116,101,120,116,115,112,97,110,0,62,0,60,116,101,120,116,80,97,116,104,32,120,108,105,110,107,58,104,114,101,102,61,34,35,37,115,95,112,34,32,115,116,97,114,116,79,102,102,115,101,116,61,34,53,48,37,37,34,62,0,60,116,115,112,97,110,32,120,61,34,48,34,32,100,121,61,34,0,34,62,0,60,47,116,115,112,97,110,62,60,47,116,101,120,116,80,97,116,104,62,0,60,47,116,101,120,116,62,10,0,60,47,103,62,10,0,60,103,0,32,105,100,61,34,97,95,0,32,120,108,105,110,107,58,104,114,101,102,61,34,0,32,120,108,105,110,107,58,116,105,116,108,101,61,34,0,32,116,97,114,103,101,116,61,34,0,60,116,105,116,108,101,62,0,60,47,116,105,116,108,101,62,10,0,60,103,32,105,100,61,34,0,95,37,115,0,34,32,99,108,97,115,115,61,34,37,115,0,99,108,97,115,115,0,32,116,114,97,110,115,102,111,114,109,61,34,115,99,97,108,101,40,0,41,32,114,111,116,97,116,101,40,37,100,41,32,116,114,97,110,115,108,97,116,101,40,0,41,34,62,10,0,60,47,115,118,103,62,10,0,60,33,45,45,0,32,80,97,103,101,115,58,32,37,100,32,45,45,62,10,0,60,115,118,103,32,119,105,100,116,104,61,34,37,100,112,116,34,32,104,101,105,103,104,116,61,34,37,100,112,116,34,10,0,32,118,105,101,119,66,111,120,61,34,37,46,50,102,32,37,46,50,102,32,37,46,50,102,32,37,46,50,102,34,0,32,120,109,108,110,115,61,34,104,116,116,112,58,47,47,119,119,119,46,119,51,46,111,114,103,47,50,48,48,48,47,115,118,103,34,0,32,120,109,108,110,115,58,120,108,105,110,107,61,34,104,116,116,112,58,47,47,119,119,119,46,119,51,46,111,114,103,47,49,57,57,57,47,120,108,105,110,107,34,0,60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101,110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,32,115,116,97,110,100,97,108,111,110,101,61,34,110,111,34,63,62,10,0,115,116,121,108,101,115,104,101,101,116,0,60,63,120,109,108,45,115,116,121,108,101,115,104,101,101,116,32,104,114,101,102,61,34,0,34,32,116,121,112,101,61,34,116,101,120,116,47,99,115,115,34,63,62,10,0,60,33,68,79,67,84,89,80,69,32,115,118,103,32,80,85,66,76,73,67,32,34,45,47,47,87,51,67,47,47,68,84,68,32,83,86,71,32,49,46,49,47,47,69,78,34,10,0,32,34,104,116,116,112,58,47,47,119,119,119,46,119,51,46,111,114,103,47,71,114,97,112,104,105,99,115,47,83,86,71,47,49,46,49,47,68,84,68,47,115,118,103,49,49,46,100,116,100,34,62,10,0,60,33,45,45,32,71,101,110,101,114,97,116,101,100,32,98,121,32,0,100,97,114,107,98,108,117,101,0,100,97,114,107,99,121,97,110,0,100,97,114,107,103,114,97,121,0,100,97,114,107,103,114,101,121,0,100,97,114,107,109,97,103,101,110,116,97,0,100,97,114,107,114,101,100,0,108,105,103,104,116,103,114,101,101,110,0,35,32,0,32,99,114,101,97,116,101,32,108,105,110,101,32,0,32,45,102,105,108,108,32,0,32,45,100,97,115,104,32,53,0,32,45,100,97,115,104,32,50,0,103,118,114,101,110,100,101,114,95,99,111,114,101,95,116,107,46,99,0,116,107,103,101,110,95,112,114,105,110,116,95,116,97,103,115,0,103,114,97,112,104,32,108,97,98,101,108,0,32,45,116,97,103,115,32,123,37,100,37,115,37,112,125,0,116,107,103,101,110,95,112,114,105,110,116,95,99,111,108,111,114,0,36,99,0,32,45,119,105,100,116,104,32,0,32,45,115,109,111,111,116,104,32,98,101,122,105,101,114,32,0,32,99,114,101,97,116,101,32,112,111,108,121,103,111,110,32,0,32,45,111,117,116,108,105,110,101,32,0,32,99,114,101,97,116,101,32,111,118,97,108,32,0,32,99,114,101,97,116,101,32,116,101,120,116,32,0,32,45,116,101,120,116,32,123,0,125,0,32,45,102,111,110,116,32,123,0,32,37,100,125,0,32,45,97,110,99,104,111,114,32,119,0,32,45,97,110,99,104,111,114,32,101,0,35,0,32,84,105,116,108,101,58,32,0,32,80,97,103,101,115,58,32,37,100,10,0,35,32,71,101,110,101,114,97,116,101,100,32,98,121,32,0,41,10,0,116,107,0,116,107,58,116,107,0,32,32,32,32,32,32,60,33,45,45,32,0,32,45,45,62,10,0,69,114,114,111,114,32,100,117,114,105,110,103,32,99,111,110,118,101,114,115,105,111,110,32,116,111,32,34,85,84,70,45,56,34,46,32,32,81,117,105,116,105,110,103,46,10,0,32,60,118,58,115,104,97,112,101,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,97,98,115,111,108,117,116,101,59,32,0,32,119,105,100,116,104,58,32,37,100,59,32,104,101,105,103,104,116,58,32,37,100,34,32,102,105,108,108,101,100,61,34,102,97,108,115,101,34,62,0,60,118,58,112,97,116,104,32,118,61,34,0,32,109,32,0,37,46,48,102,44,37,46,48,102,32,0,32,108,32,0,32,101,32,0,34,47,62,0,60,47,118,58,115,104,97,112,101,62,10,0,60,118,58,115,116,114,111,107,101,32,99,111,108,111,114,61,34,0,34,32,119,101,105,103,104,116,61,34,37,46,48,102,112,116,0,34,32,100,97,115,104,115,116,121,108,101,61,34,100,97,115,104,0,34,32,100,97,115,104,115,116,121,108,101,61,34,100,111,116,0,34,32,47,62,0,35,37,48,50,120,37,48,50,120,37,48,50,120,0,103,118,114,101,110,100,101,114,95,99,111,114,101,95,118,109,108,46,99,0,118,109,108,95,112,114,105,110,116,95,99,111,108,111,114,0,32,119,105,100,116,104,58,32,37,100,59,32,104,101,105,103,104,116,58,32,37,100,34,0,32,62,0,60,118,58,112,97,116,104,32,32,118,61,34,0,47,62,60,47,118,58,115,104,97,112,101,62,10,0,109,32,0,37,115,37,46,48,102,44,37,46,48,102,32,0,99,32,0,32,102,105,108,108,101,100,61,34,116,114,117,101,34,32,102,105,108,108,99,111,108,111,114,61,34,0,34,32,0,32,102,105,108,108,101,100,61,34,102,97,108,115,101,34,32,0,37,46,48,102,32,37,46,48,102,32,0,108,32,0,120,32,101,32,34,47,62,0,32,32,60,118,58,111,118,97,108,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,97,98,115,111,108,117,116,101,59,0,32,108,101,102,116,58,32,37,46,50,102,59,32,116,111,112,58,32,37,46,50,102,59,0,32,119,105,100,116,104,58,32,37,46,50,102,59,32,104,101,105,103,104,116,58,32,37,46,50,102,34,0,60,47,118,58,111,118,97,108,62,10,0,60,118,58,114,101,99,116,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,97,98,115,111,108,117,116,101,59,32,0,32,115,116,114,111,107,101,100,61,34,102,97,108,115,101,34,32,102,105,108,108,101,100,61,34,102,97,108,115,101,34,62,10,0,60,118,58,116,101,120,116,98,111,120,32,105,110,115,101,116,61,34,48,44,48,44,48,44,48,34,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,97,98,115,111,108,117,116,101,59,32,118,45,116,101,120,116,45,119,114,97,112,112,105,110,103,58,39,102,97,108,115,101,39,59,112,97,100,100,105,110,103,58,39,48,39,59,0,102,111,110,116,45,102,97,109,105,108,121,58,32,39,37,115,39,59,0,102,111,110,116,45,119,101,105,103,104,116,58,32,37,115,59,0,102,111,110,116,45,115,116,114,101,116,99,104,58,32,37,115,59,0,102,111,110,116,45,115,116,121,108,101,58,32,37,115,59,0,32,102,111,110,116,45,115,105,122,101,58,32,37,46,50,102,112,116,59,0,99,111,108,111,114,58,37,115,59,0,99,111,108,111,114,58,35,37,48,50,120,37,48,50,120,37,48,50,120,59,0,118,109,108,95,116,101,120,116,115,112,97,110,0,34,62,60,99,101,110,116,101,114,62,0,60,47,99,101,110,116,101,114,62,60,47,118,58,116,101,120,116,98,111,120,62,10,0,60,47,118,58,114,101,99,116,62,10,0,60,47,97,62,10,0,60,97,0,32,104,114,101,102,61,34,37,115,34,0,32,116,105,116,108,101,61,34,37,115,34,0,32,116,97,114,103,101,116,61,34,37,115,34,0,62,10,0,60,47,118,58,103,114,111,117,112,62,10,0,60,47,68,73,86,62,10,0,60,68,73,86,32,105,100,61,39,95,86,77,76,50,95,39,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,114,101,108,97,116,105,118,101,59,118,105,115,105,98,105,108,105,116,121,58,104,105,100,100,101,110,34,62,10,0,60,33,45,45,32,105,110,115,101,114,116,32,97,110,121,32,111,116,104,101,114,32,104,116,109,108,32,99,111,110,116,101,110,116,32,104,101,114,101,32,45,45,62,10,0,60,68,73,86,32,105,100,61,39,95,110,111,116,86,77,76,49,95,39,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,114,101,108,97,116,105,118,101,59,34,62,10,0,60,33,45,45,32,116,104,105,115,32,115,104,111,117,108,100,32,111,110,108,121,32,100,105,115,112,108,97,121,32,111,110,32,78,79,78,45,73,69,32,98,114,111,119,115,101,114,115,32,45,45,62,10,0,60,72,50,62,83,111,114,114,121,44,32,116,104,105,115,32,100,105,97,103,114,97,109,32,119,105,108,108,32,111,110,108,121,32,100,105,115,112,108,97,121,32,99,111,114,114,101,99,116,108,121,32,111,110,32,73,110,116,101,114,110,101,116,32,69,120,112,108,111,114,101,114,32,53,32,40,97,110,100,32,117,112,41,32,98,114,111,119,115,101,114,115,46,60,47,72,50,62,10,0,60,68,73,86,32,105,100,61,39,95,110,111,116,86,77,76,50,95,39,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,114,101,108,97,116,105,118,101,59,34,62,10,0,60,33,45,45,32,105,110,115,101,114,116,32,97,110,121,32,111,116,104,101,114,32,78,79,78,45,73,69,32,104,116,109,108,32,99,111,110,116,101,110,116,32,104,101,114,101,32,45,45,62,10,0,60,47,66,79,68,89,62,10,60,47,72,84,77,76,62,10,0,60,72,69,65,68,62,0,60,77,69,84,65,32,104,116,116,112,45,101,113,117,105,118,61,34,67,111,110,116,101,110,116,45,84,121,112,101,34,32,99,111,110,116,101,110,116,61,34,116,101,120,116,47,104,116,109,108,59,32,99,104,97,114,115,101,116,61,85,84,70,45,56,34,62,10,0,60,84,73,84,76,69,62,0,60,47,84,73,84,76,69,62,0,60,33,45,45,32,80,97,103,101,115,58,32,37,100,32,45,45,62,10,0,32,32,32,60,83,67,82,73,80,84,32,76,65,78,71,85,65,71,69,61,39,74,97,118,97,115,99,114,105,112,116,39,62,10,0,32,32,32,102,117,110,99,116,105,111,110,32,98,114,111,119,115,101,114,99,104,101,99,107,40,41,10,0,32,32,32,123,10,0,32,32,32,32,32,32,118,97,114,32,117,97,32,61,32,119,105,110,100,111,119,46,110,97,118,105,103,97,116,111,114,46,117,115,101,114,65,103,101,110,116,10,0,32,32,32,32,32,32,118,97,114,32,109,115,105,101,32,61,32,117,97,46,105,110,100,101,120,79,102,32,40,32,39,77,83,73,69,32,39,32,41,10,0,32,32,32,32,32,32,118,97,114,32,105,101,118,101,114,115,59,10,0,32,32,32,32,32,32,118,97,114,32,105,116,101,109,59,10,0,32,32,32,32,32,32,118,97,114,32,86,77,76,121,101,115,61,110,101,119,32,65,114,114,97,121,40,39,95,86,77,76,49,95,39,44,39,95,86,77,76,50,95,39,41,59,10,0,32,32,32,32,32,32,118,97,114,32,86,77,76,110,111,61,110,101,119,32,65,114,114,97,121,40,39,95,110,111,116,86,77,76,49,95,39,44,39,95,110,111,116,86,77,76,50,95,39,41,59,10,0,32,32,32,32,32,32,105,102,32,40,32,109,115,105,101,32,62,32,48,32,41,123,32,32,32,32,32,32,47,47,32,73,102,32,73,110,116,101,114,110,101,116,32,69,120,112,108,111,114,101,114,44,32,114,101,116,117,114,110,32,118,101,114,115,105,111,110,32,110,117,109,98,101,114,10,0,32,32,32,32,32,32,32,32,32,105,101,118,101,114,115,61,32,112,97,114,115,101,73,110,116,32,40,117,97,46,115,117,98,115,116,114,105,110,103,32,40,109,115,105,101,43,53,44,32,117,97,46,105,110,100,101,120,79,102,32,40,39,46,39,44,32,109,115,105,101,32,41,41,41,10,0,32,32,32,32,32,32,125,10,0,32,32,32,32,32,32,105,102,32,40,105,101,118,101,114,115,62,61,53,41,123,10,0,32,32,32,32,32,32,32,102,111,114,32,40,120,32,105,110,32,86,77,76,121,101,115,41,123,10,0,32,32,32,32,32,32,32,32,32,105,116,101,109,32,61,32,100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,66,121,73,100,40,86,77,76,121,101,115,91,120,93,41,59,10,0,32,32,32,32,32,32,32,32,32,105,102,32,40,105,116,101,109,41,32,123,10,0,32,32,32,32,32,32,32,32,32,32,32,105,116,101,109,46,115,116,121,108,101,46,118,105,115,105,98,105,108,105,116,121,61,39,118,105,115,105,98,108,101,39,59,10,0,32,32,32,32,32,32,32,32,32,125,10,0,32,32,32,32,32,32,32,125,10,0,32,32,32,32,32,32,32,102,111,114,32,40,120,32,105,110,32,86,77,76,110,111,41,123,10,0,32,32,32,32,32,32,32,32,32,105,116,101,109,32,61,32,100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,66,121,73,100,40,86,77,76,110,111,91,120,93,41,59,10,0,32,32,32,32,32,32,32,32,32,32,32,105,116,101,109,46,115,116,121,108,101,46,118,105,115,105,98,105,108,105,116,121,61,39,104,105,100,100,101,110,39,59,10,0,32,32,32,32,32,125,101,108,115,101,123,10,0,32,32,32,32,32,125,10,0,32,32,32,125,10,0,32,32,32,60,47,83,67,82,73,80,84,62,10,0,60,47,72,69,65,68,62,0,60,66,79,68,89,32,111,110,108,111,97,100,61,39,98,114,111,119,115,101,114,99,104,101,99,107,40,41,59,39,62,10,0,60,68,73,86,32,105,100,61,39,95,86,77,76,49,95,39,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,114,101,108,97,116,105,118,101,59,32,100,105,115,112,108,97,121,58,105,110,108,105,110,101,59,32,118,105,115,105,98,105,108,105,116,121,58,104,105,100,100,101,110,0,32,119,105,100,116,104,58,32,37,100,112,116,59,32,104,101,105,103,104,116,58,32,37,100,112,116,34,62,10,0,60,83,84,89,76,69,62,10,0,118,92,58,42,32,123,32,98,101,104,97,118,105,111,114,58,32,117,114,108,40,35,100,101,102,97,117,108,116,35,86,77,76,41,59,100,105,115,112,108,97,121,58,105,110,108,105,110,101,45,98,108,111,99,107,125,10,0,60,47,83,84,89,76,69,62,10,0,60,120,109,108,58,110,97,109,101,115,112,97,99,101,32,110,115,61,34,117,114,110,58,115,99,104,101,109,97,115,45,109,105,99,114,111,115,111,102,116,45,99,111,109,58,118,109,108,34,32,112,114,101,102,105,120,61,34,118,34,32,47,62,10,0,32,60,118,58,103,114,111,117,112,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,114,101,108,97,116,105,118,101,59,32,0,32,119,105,100,116,104,58,32,37,100,112,116,59,32,104,101,105,103,104,116,58,32,37,100,112,116,34,0,32,99,111,111,114,100,111,114,105,103,105,110,61,34,48,44,48,34,32,99,111,111,114,100,115,105,122,101,61,34,37,100,44,37,100,34,32,62,0,60,72,84,77,76,62,10,0,10,60,33,45,45,32,71,101,110,101,114,97,116,101,100,32,98,121,32,0,32,118,101,114,115,105,111,110,32,0,32,40,0,41,10,45,45,62,10,0,97,113,117,97,0,102,117,99,104,115,105,97,0,108,105,109,101,0,111,108,105,118,101,0,116,101,97,108,0,118,109,108,0,118,109,108,58,118,109,108,0,47,47,42,42,42,32,99,111,109,109,101,110,116,58,32,37,115,10,0,47,47,42,42,42,32,112,111,108,121,108,105,110,101,10,0,115,99,97,108,101,32,32,32,32,60,37,57,46,51,102,44,32,37,57,46,51,102,44,32,37,57,46,51,102,62,10,0,114,111,116,97,116,101,32,32,32,60,37,57,46,51,102,44,32,37,57,46,51,102,44,32,37,57,46,51,102,62,10,0,116,114,97,110,115,108,97,116,101,60,37,57,46,51,102,44,32,37,57,46,51,102,44,32,37,57,46,51,102,62,10,0,115,112,104,101,114,101,95,115,119,101,101,112,32,123,10,32,32,32,32,37,115,10,32,32,32,32,37,100,44,10,0,108,105,110,101,97,114,95,115,112,108,105,110,101,0,60,37,57,46,51,102,44,32,37,57,46,51,102,44,32,37,57,46,51,102,62,44,32,37,46,51,102,10,0,37,115,32,32,32,32,37,115,0,32,32,32,32,116,111,108,101,114,97,110,99,101,32,48,46,48,49,10,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,125,10,0,37,115,37,115,0,37,115,32,116,114,97,110,115,109,105,116,32,37,46,51,102,0,82,101,100,0,71,114,101,101,110,0,66,108,117,101,0,114,103,98,60,37,57,46,51,102,44,32,37,57,46,51,102,44,32,37,57,46,51,102,62,32,116,114,97,110,115,109,105,116,32,37,46,51,102,0,111,111,112,115,44,32,105,110,116,101,114,110,97,108,32,101,114,114,111,114,58,32,117,110,104,97,110,100,108,101,100,32,99,111,108,111,114,32,116,121,112,101,61,37,100,32,37,115,10,0,103,118,114,101,110,100,101,114,95,99,111,114,101,95,112,111,118,46,99,0,112,111,118,95,99,111,108,111,114,95,97,115,95,115,116,114,0,112,105,103,109,101,110,116,32,123,32,99,111,108,111,114,32,37,115,32,125,10,0,112,111,118,32,114,101,110,100,101,114,101,114,58,101,108,32,45,32,37,115,10,0,47,47,42,42,42,32,98,101,122,105,101,114,10,0,98,95,115,112,108,105,110,101,0,32,32,32,32,32,32,32,32,116,111,108,101,114,97,110,99,101,32,48,46,48,49,10,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,125,10,0,47,47,42,42,42,32,112,111,108,121,103,111,110,10,0,32,32,32,32,116,111,108,101,114,97,110,99,101,32,48,46,49,10,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,125,10,0,112,111,108,121,103,111,110,32,123,32,37,100,44,10,0,60,37,57,46,51,102,44,32,37,57,46,51,102,44,32,37,57,46,51,102,62,0,37,115,10,32,32,32,32,37,115,0,10,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,125,10,0,47,47,42,42,42,32,101,108,108,105,112,115,101,10,0,116,111,114,117,115,32,123,32,37,46,51,102,44,32,37,46,51,102,10,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,125,10,0,115,112,104,101,114,101,32,123,60,37,57,46,51,102,44,32,37,57,46,51,102,44,32,37,57,46,51,102,62,44,32,49,46,48,10,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,125,10,0,47,47,42,42,42,32,116,101,120,116,115,112,97,110,58,32,37,115,44,32,102,111,110,116,115,105,122,101,32,61,32,37,46,51,102,44,32,102,111,110,116,110,97,109,101,32,61,32,37,115,10,0,115,99,97,108,101,32,37,46,51,102,10,0,116,101,120,116,32,123,10,32,32,32,32,116,116,102,32,34,37,115,34,44,10,32,32,32,32,34,37,115,34,44,32,37,46,51,102,44,32,37,46,51,102,10,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,125,10,0,32,32,32,32,110,111,95,115,104,97,100,111,119,10,0,47,47,42,42,42,32,101,110,100,95,101,100,103,101,10,0,47,47,42,42,42,32,98,101,103,105,110,95,101,100,103,101,10,0,47,47,42,42,42,32,101,110,100,95,110,111,100,101,10,0,47,47,42,42,42,32,98,101,103,105,110,95,110,111,100,101,58,32,37,115,10,0,47,47,42,42,42,32,101,110,100,95,99,108,117,115,116,101,114,10,0,47,47,42,42,42,32,98,101,103,105,110,95,99,108,117,115,116,101,114,10,0,47,47,42,42,42,32,101,110,100,95,112,97,103,101,10,0,47,47,42,42,42,32,98,101,103,105,110,95,112,97,103,101,10,0,47,47,42,42,42,32,101,110,100,95,108,97,121,101,114,10,0,47,47,42,42,42,32,98,101,103,105,110,95,108,97,121,101,114,58,32,37,115,44,32,37,100,47,37,100,10,0,47,47,42,42,42,32,101,110,100,95,103,114,97,112,104,10,0,47,47,42,42,42,32,98,101,103,105,110,95,103,114,97,112,104,32,37,115,10,0,99,97,109,101,114,97,32,123,32,108,111,99,97,116,105,111,110,32,60,37,46,51,102,32,44,32,37,46,51,102,32,44,32,37,46,51,102,62,10,32,32,32,32,32,32,32,32,32,108,111,111,107,95,97,116,32,32,60,37,46,51,102,32,44,32,37,46,51,102,32,44,32,37,46,51,102,62,10,32,32,32,32,32,32,32,32,32,114,105,103,104,116,32,120,32,42,32,105,109,97,103,101,95,119,105,100,116,104,32,47,32,105,109,97,103,101,95,104,101,105,103,104,116,10,32,32,32,32,32,32,32,32,32,97,110,103,108,101,32,37,46,51,102,10,125,10,0,47,47,115,107,121,10,112,108,97,110,101,32,123,32,60,48,44,32,49,44,32,48,62,44,32,49,32,104,111,108,108,111,119,10,32,32,32,32,116,101,120,116,117,114,101,32,123,10,32,32,32,32,32,32,32,32,112,105,103,109,101,110,116,32,123,32,98,111,122,111,32,116,117,114,98,117,108,101,110,99,101,32,48,46,57,53,10,32,32,32,32,32,32,32,32,32,32,32,32,99,111,108,111,114,95,109,97,112,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,91,48,46,48,48,32,114,103,98,32,60,48,46,48,53,44,32,48,46,50,48,44,32,48,46,53,48,62,93,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,91,48,46,53,48,32,114,103,98,32,60,48,46,48,53,44,32,48,46,50,48,44,32,48,46,53,48,62,93,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,91,48,46,55,53,32,114,103,98,32,60,49,46,48,48,44,32,49,46,48,48,44,32,49,46,48,48,62,93,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,91,48,46,55,53,32,114,103,98,32,60,48,46,50,53,44,32,48,46,50,53,44,32,48,46,50,53,62,93,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,91,49,46,48,48,32,114,103,98,32,60,48,46,53,48,44,32,48,46,53,48,44,32,48,46,53,48,62,93,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,115,99,97,108,101,32,60,49,46,48,48,44,32,49,46,48,48,44,32,49,46,53,48,62,32,42,32,50,46,53,48,10,32,32,32,32,32,32,32,32,32,32,32,32,116,114,97,110,115,108,97,116,101,32,60,48,46,48,48,44,32,48,46,48,48,44,32,48,46,48,48,62,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,102,105,110,105,115,104,32,123,32,97,109,98,105,101,110,116,32,49,32,100,105,102,102,117,115,101,32,48,32,125,10,32,32,32,32,125,10,32,32,32,32,115,99,97,108,101,32,49,48,48,48,48,10,125,10,47,47,109,105,115,116,10,102,111,103,32,123,32,102,111,103,95,116,121,112,101,32,50,10,32,32,32,32,100,105,115,116,97,110,99,101,32,53,48,10,32,32,32,32,99,111,108,111,114,32,114,103,98,32,60,49,46,48,48,44,32,49,46,48,48,44,32,49,46,48,48,62,32,42,32,48,46,55,53,10,32,32,32,32,102,111,103,95,111,102,102,115,101,116,32,48,46,49,48,10,32,32,32,32,102,111,103,95,97,108,116,32,49,46,53,48,10,32,32,32,32,116,117,114,98,117,108,101,110,99,101,32,49,46,55,53,10,125,10,47,47,103,110,100,10,112,108,97,110,101,32,123,32,60,48,46,48,48,44,32,49,46,48,48,44,32,48,46,48,48,62,44,32,48,10,32,32,32,32,116,101,120,116,117,114,101,32,123,10,32,32,32,32,32,32,32,32,112,105,103,109,101,110,116,123,32,99,111,108,111,114,32,114,103,98,32,60,48,46,50,53,44,32,48,46,52,53,44,32,48,46,48,48,62,32,125,10,32,32,32,32,32,32,32,32,110,111,114,109,97,108,32,123,32,98,117,109,112,115,32,48,46,55,53,32,115,99,97,108,101,32,48,46,48,49,32,125,10,32,32,32,32,32,32,32,32,102,105,110,105,115,104,32,123,32,112,104,111,110,103,32,48,46,49,48,32,125,10,32,32,32,32,125,10,125,10,0,108,105,103,104,116,95,115,111,117,114,99,101,32,123,32,60,49,53,48,48,44,51,48,48,48,44,45,50,53,48,48,62,32,99,111,108,111,114,32,87,104,105,116,101,32,125,10,0,35,118,101,114,115,105,111,110,32,51,46,54,59,10,0,103,108,111,98,97,108,95,115,101,116,116,105,110,103,115,32,123,32,97,115,115,117,109,101,100,95,103,97,109,109,97,32,49,46,48,32,125,10,0,35,100,101,102,97,117,108,116,32,123,32,102,105,110,105,115,104,32,123,32,97,109,98,105,101,110,116,32,48,46,49,32,100,105,102,102,117,115,101,32,48,46,57,32,125,32,125,10,0,35,105,110,99,108,117,100,101,32,34,99,111,108,111,114,115,46,105,110,99,34,10,35,105,110,99,108,117,100,101,32,34,116,101,120,116,117,114,101,115,46,105,110,99,34,10,35,105,110,99,108,117,100,101,32,34,115,104,97,112,101,115,46,105,110,99,34,10,0,35,100,101,99,108,97,114,101,32,37,115,32,61,32,37,115,59,10,0,66,108,97,99,107,0,87,104,105,116,101,0,98,97,107,101,114,115,99,104,111,99,0,98,114,97,115,115,0,98,114,105,103,104,116,103,111,108,100,0,98,114,111,110,122,101,0,98,114,111,110,122,101,50,0,99,108,101,97,114,0,99,111,111,108,99,111,112,112,101,114,0,99,111,112,112,101,114,0,100,97,114,107,98,114,111,119,110,0,100,97,114,107,112,117,114,112,108,101,0,100,97,114,107,116,97,110,0,100,97,114,107,119,111,111,100,0,100,107,103,114,101,101,110,99,111,112,112,101,114,0,100,117,115,116,121,114,111,115,101,0,102,101,108,100,115,112,97,114,0,102,108,101,115,104,0,103,114,97,121,48,53,0,103,114,101,101,110,99,111,112,112,101,114,0,104,117,110,116,101,114,115,103,114,101,101,110,0,108,105,103,104,116,95,112,117,114,112,108,101,0,108,105,103,104,116,119,111,111,100,0,109,97,110,100,97,114,105,110,111,114,97,110,103,101,0,109,101,100,105,117,109,102,111,114,101,115,116,103,114,101,101,110,0,109,101,100,105,117,109,103,111,108,100,101,110,114,111,100,0,109,101,100,105,117,109,119,111,111,100,0,109,101,100,95,112,117,114,112,108,101,0,109,105,99,97,0,110,101,111,110,98,108,117,101,0,110,101,111,110,112,105,110,107,0,110,101,119,109,105,100,110,105,103,104,116,98,108,117,101,0,110,101,119,116,97,110,0,111,108,100,103,111,108,100,0,113,117,97,114,116,122,0,114,105,99,104,98,108,117,101,0,115,99,97,114,108,101,116,0,115,101,109,105,83,119,101,101,116,67,104,111,99,0,115,105,108,118,101,114,0,115,112,105,99,121,112,105,110,107,0,115,117,109,109,101,114,115,107,121,0,118,101,114,121,100,97,114,107,98,114,111,119,110,0,118,101,114,121,95,108,105,103,104,116,95,112,117,114,112,108,101,0,112,111,118,0,112,111,118,58,112,111,118,0,37,115,32,37,115,10,0,46,92,34,32,0,32,37,100,32,37,100,0,32,37,115,10,0,32,37,100,0,102,105,108,108,32,0,101,108,108,105,112,115,101,32,97,116,116,114,115,37,100,32,37,115,119,105,100,32,37,46,53,102,32,104,116,32,37,46,53,102,32,97,116,32,40,37,46,53,102,44,37,46,53,102,41,59,10,0,46,102,116,32,37,115,10,0,46,112,115,32,37,100,42,92,110,40,83,70,117,47,37,46,48,102,117,10,0,34,37,115,34,32,97,116,32,40,37,46,53,102,44,37,46,53,102,41,59,10,0,37,48,51,111,0,37,115,37,115,32,105,115,32,110,111,116,32,97,32,116,114,111,102,102,32,102,111,110,116,10,0,100,111,116,32,112,105,99,32,112,108,117,103,105,110,58,32,0,82,0,93,10,46,80,69,10,0,46,80,83,32,37,46,53,102,32,37,46,53,102,10,0,37,115,32,116,111,32,99,104,97,110,103,101,32,100,114,97,119,105,110,103,32,115,105,122,101,44,32,109,117,108,116,105,112,108,121,32,116,104,101,32,119,105,100,116,104,32,97,110,100,32,104,101,105,103,104,116,32,111,110,32,116,104,101,32,46,80,83,32,108,105,110,101,32,97,98,111,118,101,32,97,110,100,32,116,104,101,32,110,117,109,98,101,114,32,111,110,32,116,104,101,32,116,119,111,32,108,105,110,101,115,32,98,101,108,111,119,32,40,114,111,117,110,100,101,100,32,116,111,32,116,104,101,32,110,101,97,114,101,115,116,32,105,110,116,101,103,101,114,41,32,98,121,32,97,32,115,99,97,108,101,32,102,97,99,116,111,114,10,0,46,110,114,32,83,70,32,37,46,48,102,10,115,99,97,108,101,116,104,105,99,107,110,101,115,115,32,61,32,37,46,48,102,10,0,37,115,32,100,111,110,39,116,32,99,104,97,110,103,101,32,97,110,121,116,104,105,110,103,32,98,101,108,111,119,32,116,104,105,115,32,108,105,110,101,32,105,110,32,116,104,105,115,32,100,114,97,119,105,110,103,10,0,37,115,32,110,111,110,45,102,97,116,97,108,32,114,117,110,45,116,105,109,101,32,112,105,99,32,118,101,114,115,105,111,110,32,100,101,116,101,114,109,105,110,97,116,105,111,110,44,32,118,101,114,115,105,111,110,32,50,10,0,98,111,120,114,97,100,61,50,46,48,32,37,115,32,119,105,108,108,32,98,101,32,114,101,115,101,116,32,116,111,32,48,46,48,32,98,121,32,103,112,105,99,32,111,110,108,121,10,0,115,99,97,108,101,61,49,46,48,32,37,115,32],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+71704);allocate([114,101,113,117,105,114,101,100,32,102,111,114,32,99,111,109,112,97,114,105,115,111,110,115,10,0,37,115,32,98,111,120,114,97,100,32,105,115,32,110,111,119,32,48,46,48,32,105,110,32,103,112,105,99,44,32,101,108,115,101,32,105,116,32,114,101,109,97,105,110,115,32,50,46,48,10,0,37,115,32,100,97,115,104,119,105,100,32,105,115,32,48,46,49,32,105,110,32,49,48,116,104,32,69,100,105,116,105,111,110,44,32,48,46,48,53,32,105,110,32,68,87,66,32,50,32,97,110,100,32,105,110,32,103,112,105,99,10,0,37,115,32,102,105,108,108,118,97,108,32,105,115,32,48,46,51,32,105,110,32,49,48,116,104,32,69,100,105,116,105,111,110,32,40,102,105,108,108,32,48,32,109,101,97,110,115,32,98,108,97,99,107,41,44,32,48,46,53,32,105,110,32,103,112,105,99,32,40,102,105,108,108,32,48,32,109,101,97,110,115,32,119,104,105,116,101,41,44,32,117,110,100,101,102,105,110,101,100,32,105,110,32,68,87,66,32,50,10,0,37,115,32,102,105,108,108,32,104,97,115,32,110,111,32,109,101,97,110,105,110,103,32,105,110,32,68,87,66,32,50,44,32,103,112,105,99,32,99,97,110,32,117,115,101,32,102,105,108,108,32,111,114,32,102,105,108,108,101,100,44,32,49,48,116,104,32,69,100,105,116,105,111,110,32,117,115,101,115,32,102,105,108,108,32,111,110,108,121,10,0,37,115,32,68,87,66,32,50,32,100,111,101,115,110,39,116,32,117,115,101,32,102,105,108,108,32,97,110,100,32,100,111,101,115,110,39,116,32,100,101,102,105,110,101,32,102,105,108,108,118,97,108,10,0,37,115,32,114,101,115,101,116,32,119,111,114,107,115,32,105,110,32,103,112,105,99,32,97,110,100,32,49,48,116,104,32,101,100,105,116,105,111,110,44,32,98,117,116,32,105,115,110,39,116,32,100,101,102,105,110,101,100,32,105,110,32,68,87,66,32,50,10,0,37,115,32,68,87,66,32,50,32,99,111,109,112,97,116,105,98,105,108,105,116,121,32,100,101,102,105,110,105,116,105,111,110,115,10,0,105,102,32,98,111,120,114,97,100,32,62,32,49,46,48,32,38,38,32,100,97,115,104,119,105,100,32,60,32,48,46,48,55,53,32,116,104,101,110,32,88,10,9,102,105,108,108,118,97,108,32,61,32,49,59,10,9,100,101,102,105,110,101,32,102,105,108,108,32,89,32,89,59,10,9,100,101,102,105,110,101,32,115,111,108,105,100,32,89,32,89,59,10,9,100,101,102,105,110,101,32,114,101,115,101,116,32,89,32,115,99,97,108,101,61,49,46,48,32,89,59,10,88,10,0,114,101,115,101,116,32,37,115,32,115,101,116,32,116,111,32,107,110,111,119,110,32,115,116,97,116,101,10,0,37,115,32,71,78,85,32,112,105,99,32,118,115,46,32,49,48,116,104,32,69,100,105,116,105,111,110,32,100,92,40,101,39,116,101,110,116,101,10,0,105,102,32,102,105,108,108,118,97,108,32,62,32,48,46,52,32,116,104,101,110,32,88,10,9,100,101,102,105,110,101,32,115,101,116,102,105,108,108,118,97,108,32,89,32,102,105,108,108,118,97,108,32,61,32,49,32,45,32,89,59,10,9,100,101,102,105,110,101,32,98,111,108,100,32,89,32,116,104,105,99,107,110,101,115,115,32,50,32,89,59,10,0,9,37,115,32,105,102,32,121,111,117,32,117,115,101,32,103,112,105,99,32,97,110,100,32,105,116,32,98,97,114,102,115,32,111,110,32,101,110,99,111,117,110,116,101,114,105,110,103,32,34,115,111,108,105,100,34,44,10,0,9,37,115,9,105,110,115,116,97,108,108,32,97,32,109,111,114,101,32,114,101,99,101,110,116,32,118,101,114,115,105,111,110,32,111,102,32,103,112,105,99,32,111,114,32,115,119,105,116,99,104,32,116,111,32,68,87,66,32,111,114,32,49,48,116,104,32,69,100,105,116,105,111,110,32,112,105,99,59,10,0,9,37,115,9,115,111,114,114,121,44,32,116,104,101,32,103,114,111,102,102,32,102,111,108,107,115,32,99,104,97,110,103,101,100,32,103,112,105,99,59,32,115,101,110,100,32,97,110,121,32,99,111,109,112,108,97,105,110,116,32,116,111,32,116,104,101,109,59,10,0,88,32,101,108,115,101,32,90,10,9,100,101,102,105,110,101,32,115,101,116,102,105,108,108,118,97,108,32,89,32,102,105,108,108,118,97,108,32,61,32,89,59,10,9,100,101,102,105,110,101,32,98,111,108,100,32,89,32,89,59,10,9,100,101,102,105,110,101,32,102,105,108,108,101,100,32,89,32,102,105,108,108,32,89,59,10,90,10,0,37,115,32,97,114,114,111,119,104,101,97,100,32,104,97,115,32,110,111,32,109,101,97,110,105,110,103,32,105,110,32,68,87,66,32,50,44,32,97,114,114,111,119,104,101,97,100,32,61,32,55,32,109,97,107,101,115,32,102,105,108,108,101,100,32,97,114,114,111,119,104,101,97,100,115,32,105,110,32,103,112,105,99,32,97,110,100,32,105,110,32,49,48,116,104,32,69,100,105,116,105,111,110,10,0,37,115,32,97,114,114,111,119,104,101,97,100,32,105,115,32,117,110,100,101,102,105,110,101,100,32,105,110,32,68,87,66,32,50,44,32,105,110,105,116,105,97,108,108,121,32,49,32,105,110,32,103,112,105,99,44,32,50,32,105,110,32,49,48,116,104,32,69,100,105,116,105,111,110,10,0,97,114,114,111,119,104,101,97,100,32,61,32,55,32,37,115,32,110,111,116,32,117,115,101,100,32,98,121,32,103,114,97,112,104,118,105,122,10,0,37,115,32,71,78,85,32,112,105,99,32,115,117,112,112,111,114,116,115,32,97,32,98,111,120,114,97,100,32,118,97,114,105,97,98,108,101,32,116,111,32,100,114,97,119,32,98,111,120,101,115,32,119,105,116,104,32,114,111,117,110,100,101,100,32,99,111,114,110,101,114,115,59,32,68,87,66,32,97,110,100,32,49,48,116,104,32,69,100,46,32,100,111,32,110,111,116,10,0,98,111,120,114,97,100,32,61,32,48,32,37,115,32,110,111,32,114,111,117,110,100,101,100,32,99,111,114,110,101,114,115,32,105,110,32,103,114,97,112,104,118,105,122,10,0,37,115,32,71,78,85,32,112,105,99,32,115,117,112,112,111,114,116,115,32,97,32,108,105,110,101,116,104,105,99,107,32,118,97,114,105,97,98,108,101,32,116,111,32,115,101,116,32,108,105,110,101,32,116,104,105,99,107,110,101,115,115,59,32,68,87,66,32,97,110,100,32,49,48,116,104,32,69,100,46,32,100,111,32,110,111,116,10,0,108,105,110,101,116,104,105,99,107,32,61,32,48,59,32,111,108,100,108,105,110,101,116,104,105,99,107,32,61,32,108,105,110,101,116,104,105,99,107,10,0,37,115,32,46,80,83,32,119,47,111,32,97,114,103,115,32,99,97,117,115,101,115,32,71,78,85,32,112,105,99,32,116,111,32,115,99,97,108,101,32,100,114,97,119,105,110,103,32,116,111,32,102,105,116,32,56,46,53,120,49,49,32,112,97,112,101,114,59,32,68,87,66,32,100,111,101,115,32,110,111,116,10,0,37,115,32,109,97,120,112,115,104,116,32,97,110,100,32,109,97,120,112,115,119,105,100,32,104,97,118,101,32,110,111,32,109,101,97,110,105,110,103,32,105,110,32,68,87,66,32,50,46,48,44,32,115,101,116,32,112,97,103,101,32,98,111,117,110,100,97,114,105,101,115,32,105,110,32,103,112,105,99,32,97,110,100,32,105,110,32,49,48,116,104,32,69,100,105,116,105,111,110,10,0,37,115,32,109,97,120,112,115,104,116,32,97,110,100,32,109,97,120,112,115,119,105,100,32,97,114,101,32,112,114,101,100,101,102,105,110,101,100,32,116,111,32,49,49,46,48,32,97,110,100,32,56,46,53,32,105,110,32,103,112,105,99,10,0,109,97,120,112,115,104,116,32,61,32,37,102,10,109,97,120,112,115,119,105,100,32,61,32,37,102,10,0,68,111,116,58,32,91,10,0,100,101,102,105,110,101,32,97,116,116,114,115,48,32,37,37,32,37,37,59,32,100,101,102,105,110,101,32,117,110,102,105,108,108,101,100,32,37,37,32,37,37,59,32,100,101,102,105,110,101,32,114,111,117,110,100,101,100,32,37,37,32,37,37,59,32,100,101,102,105,110,101,32,100,105,97,103,111,110,97,108,115,32,37,37,32,37,37,10,0,37,115,37,115,32,117,110,115,117,112,112,111,114,116,101,100,10,0,37,115,32,114,101,115,116,111,114,101,32,112,111,105,110,116,32,115,105,122,101,32,97,110,100,32,102,111,110,116,10,46,112,115,32,92,110,40,46,83,10,46,102,116,32,92,110,40,68,70,10,0,37,115,32,67,114,101,97,116,111,114,58,32,37,115,32,118,101,114,115,105,111,110,32,37,115,32,40,37,115,41,10,0,37,115,32,84,105,116,108,101,58,32,37,115,10,0,37,115,32,115,97,118,101,32,112,111,105,110,116,32,115,105,122,101,32,97,110,100,32,102,111,110,116,10,46,110,114,32,46,83,32,92,110,40,46,115,10,46,110,114,32,68,70,32,92,110,40,46,102,10,0,112,105,99,0,112,105,99,58,112,105,99,0,112,110,103,58,115,118,103,0,103,105,102,58,115,118,103,0,106,112,101,103,58,115,118,103,0,106,112,101,58,115,118,103,0,106,112,103,58,115,118,103,0,112,110,103,58,102,105,103,0,103,105,102,58,102,105,103,0,106,112,101,103,58,102,105,103,0,106,112,101,58,102,105,103,0,106,112,103,58,102,105,103,0,112,110,103,58,118,114,109,108,0,103,105,102,58,118,114,109,108,0,106,112,101,103,58,118,114,109,108,0,106,112,101,58,118,114,109,108,0,106,112,103,58,118,114,109,108,0,101,112,115,58,112,115,0,112,115,58,112,115,0,40,108,105,98,41,58,112,115,0,112,110,103,58,109,97,112,0,103,105,102,58,109,97,112,0,106,112,101,103,58,109,97,112,0,106,112,101,58,109,97,112,0,106,112,103,58,109,97,112,0,112,115,58,109,97,112,0,101,112,115,58,109,97,112,0,115,118,103,58,109,97,112,0,112,110,103,58,100,111,116,0,103,105,102,58,100,111,116,0,106,112,101,103,58,100,111,116,0,106,112,101,58,100,111,116,0,106,112,103,58,100,111,116,0,112,115,58,100,111,116,0,101,112,115,58,100,111,116,0,115,118,103,58,100,111,116,0,112,110,103,58,120,100,111,116,0,103,105,102,58,120,100,111,116,0,106,112,101,103,58,120,100,111,116,0,106,112,101,58,120,100,111,116,0,106,112,103,58,120,100,111,116,0,112,115,58,120,100,111,116,0,101,112,115,58,120,100,111,116,0,115,118,103,58,120,100,111,116,0,115,118,103,58,115,118,103,0,112,110,103,58,118,109,108,0,103,105,102,58,118,109,108,0,106,112,101,103,58,118,109,108,0,106,112,101,58,118,109,108,0,106,112,103,58,118,109,108,0,103,105,102,58,116,107,0,105,109,97,103,101,32,99,114,101,97,116,101,32,112,104,111,116,111,32,34,112,104,111,116,111,95,37,115,34,32,45,102,105,108,101,32,34,37,115,34,10,0,36,99,32,99,114,101,97,116,101,32,105,109,97,103,101,32,37,46,50,102,32,37,46,50,102,32,45,105,109,97,103,101,32,34,112,104,111,116,111,95,37,115,34,10,0,60,118,58,105,109,97,103,101,32,115,114,99,61,34,37,115,34,32,115,116,121,108,101,61,34,32,112,111,115,105,116,105,111,110,58,97,98,115,111,108,117,116,101,59,32,119,105,100,116,104,58,37,46,50,102,59,32,104,101,105,103,104,116,58,37,46,50,102,59,32,108,101,102,116,58,37,46,50,102,32,59,32,116,111,112,58,37,46,50,102,34,0,32,47,62,10,0,103,118,108,111,97,100,105,109,97,103,101,95,99,111,114,101,46,99,0,99,111,114,101,95,108,111,97,100,105,109,97,103,101,95,112,115,108,105,98,0,91,32,0,37,103,32,37,103,32,0,93,32,32,37,100,32,116,114,117,101,32,37,115,10,0,93,32,32,37,100,32,102,97,108,115,101,32,37,115,10,0,99,111,114,101,95,108,111,97,100,105,109,97,103,101,95,112,115,0,103,115,97,118,101,32,37,103,32,37,103,32,116,114,97,110,115,108,97,116,101,32,110,101,119,112,97,116,104,10,0,117,115,101,114,95,115,104,97,112,101,95,37,100,10,0,103,114,101,115,116,111,114,101,10,0,99,111,114,101,95,108,111,97,100,105,109,97,103,101,95,118,114,109,108,0,83,104,97,112,101,32,123,10,0,32,32,97,112,112,101,97,114,97,110,99,101,32,65,112,112,101,97,114,97,110,99,101,32,123,10,0,32,32,32,32,109,97,116,101,114,105,97,108,32,77,97,116,101,114,105,97,108,32,123,10,0,32,32,32,32,32,32,97,109,98,105,101,110,116,73,110,116,101,110,115,105,116,121,32,48,46,51,51,10,0,32,32,32,32,32,32,32,32,100,105,102,102,117,115,101,67,111,108,111,114,32,49,32,49,32,49,10,0,32,32,32,32,125,10,0,32,32,32,32,116,101,120,116,117,114,101,32,73,109,97,103,101,84,101,120,116,117,114,101,32,123,32,117,114,108,32,34,37,115,34,32,125,10,0,32,32,125,10,0,99,111,114,101,95,108,111,97,100,105,109,97,103,101,95,102,105,103,0,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,46,49,102,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,10,32,37,100,32,37,115,10,0,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,10,0,99,111,114,101,95,108,111,97,100,105,109,97,103,101,95,115,118,103,0,60,105,109,97,103,101,32,120,108,105,110,107,58,104,114,101,102,61,34,0,34,32,119,105,100,116,104,61,34,37,103,112,120,34,32,104,101,105,103,104,116,61,34,37,103,112,120,34,32,112,114,101,115,101,114,118,101,65,115,112,101,99,116,82,97,116,105,111,61,34,120,77,105,100,89,77,105,100,32,109,101,101,116,34,32,120,61,34,37,103,34,32,121,61,34,37,103,34,0,32,116,114,97,110,115,102,111,114,109,61,34,114,111,116,97,116,101,40,37,100,32,37,103,32,37,103,41,34,0,34,32,119,105,100,116,104,61,34,37,103,112,120,34,32,104,101,105,103,104,116,61,34,37,103,112,120,34,32,112,114,101,115,101,114,118,101,65,115,112,101,99,116,82,97,116,105,111,61,34,120,77,105,110,89,77,105,110,32,109,101,101,116,34,32,120,61,34,37,103,34,32,121,61,34,37,103,34,0,47,62,10,0,100,111,116,95,108,97,121,111,117,116,0,112,104,97,115,101,0,100,111,116,32,100,111,101,115,32,110,111,116,32,115,117,112,112,111,114,116,32,116,104,101,32,97,115,112,101,99,116,32,97,116,116,114,105,98,117,116,101,32,102,111,114,32,100,105,115,99,111,110,110,101,99,116,101,100,32,103,114,97,112,104,115,32,111,114,32,103,114,97,112,104,115,32,119,105,116,104,32,99,108,117,115,116,101,114,115,10,0,99,111,109,112,111,117,110,100,0,118,32,61,61,32,110,0,100,111,116,105,110,105,116,46,99,0,114,101,109,111,118,101,95,102,114,111,109,95,114,97,110,107,0,111,114,100,101,114,0,101,100,103,101,32,108,97,98,101,108,115,32,119,105,116,104,32,115,112,108,105,110,101,115,61,99,117,114,118,101,100,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,105,110,32,100,111,116,32,45,32,117,115,101,32,120,108,97,98,101,108,115,10,0,69,68,95,108,97,98,101,108,40,102,101,41,0,100,111,116,115,112,108,105,110,101,115,46,99,0,95,100,111,116,95,115,112,108,105,110,101,115,0,102,108,97,116,32,101,100,103,101,32,98,101,116,119,101,101,110,32,97,100,106,97,99,101,110,116,32,110,111,100,101,115,32,111,110,101,32,111,102,32,119,104,105,99,104,32,104,97,115,32,97,32,114,101,99,111,114,100,32,115,104,97,112,101,32,45,32,114,101,112,108,97,99,101,32,114,101,99,111,114,100,115,32,119,105,116,104,32,72,84,77,76,45,108,105,107,101,32,108,97,98,101,108,115,10,0,32,32,69,100,103,101,32,37,115,32,37,115,32,37,115,10,0,120,120,120,0,49,48,48,48,48,0,123,37,115,125,0,97,117,120,103,0,108,97,98,101,108,95,102,108,111,97,116,0,102,105,120,101,100,0,40,108,32,61,32,69,68,95,108,97,98,101,108,40,102,101,41,41,0,115,101,116,69,100,103,101,76,97,98,101,108,80,111,115,0,101,32,33,61,32,78,85,76,76,0,102,97,115,116,103,114,46,99,0,100,101,108,101,116,101,95,102,97,115,116,95,101,100,103,101,0,110,32,33,61,32,78,68,95,110,101,120,116,40,110,41,0,102,97,115,116,95,110,111,100,101,0,117,32,33,61,32,118,0,102,97,115,116,95,110,111,100,101,97,112,112,0,78,68,95,110,101,120,116,40,118,41,32,61,61,32,78,85,76,76,0,102,105,110,100,95,102,97,115,116,95,110,111,100,101,40,103,44,32,110,41,0,100,101,108,101,116,101,95,102,97,115,116,95,110,111,100,101,0,100,101,108,101,116,101,95,102,108,97,116,95,101,100,103,101,0,109,101,114,103,101,95,111,110,101,119,97,121,32,103,108,105,116,99,104,10,0,109,101,114,103,101,95,111,110,101,119,97,121,0,115,97,102,101,95,100,101,108,101,116,101,95,102,97,115,116,95,101,100,103,101,0,108,103,0,99,111,109,112,0,99,110,116,32,61,61,32,115,122,0,109,105,110,99,114,111,115,115,46,99,0,102,105,120,76,97,98,101,108,79,114,100,101,114,0,114,101,109,105,110,99,114,111,115,115,0,109,105,110,99,114,111,115,115,32,37,115,58,32,37,100,32,99,114,111,115,115,105,110,103,115,44,32,37,46,50,102,32,115,101,99,115,46,10,0,118,0,110,101,105,103,104,98,111,114,0,40,114,118,32,61,61,32,48,41,32,124,124,32,40,78,68,95,111,114,100,101,114,40,114,118,41,45,78,68,95,111,114,100,101,114,40,118,41,41,42,100,105,114,32,62,32,48,0,99,111,110,115,116,114,97,105,110,105,110,103,95,102,108,97,116,95,101,100,103,101,40,103,44,118,44,101,41,32,61,61,32,70,65,76,83,69,0,102,108,97,116,95,114,101,111,114,100,101,114,0,78,68,95,114,97,110,107,40,118,41,32,61,61,32,114,0,112,111,115,116,111,114,100,101,114,0,102,108,97,116,105,110,100,101,120,40,97,103,104,101,97,100,40,101,41,41,32,60,32,77,45,62,110,114,111,119,115,0,102,108,97,116,95,115,101,97,114,99,104,0,102,108,97,116,105,110,100,101,120,40,97,103,116,97,105,108,40,101,41,41,32,60,32,77,45,62,110,99,111,108,115,0,111,117,116,0,111,114,100,101,114,105,110,103,32,39,37,115,39,32,110,111,116,32,114,101,99,111,103,110,105,122,101,100,46,10,0,111,114,100,101,114,105,110,103,32,39,37,115,39,32,110,111,116,32,114,101,99,111,103,110,105,122,101,100,32,102,111,114,32,110,111,100,101,32,39,37,115,39,46,10,0,109,101,114,103,101,50,58,32,103,114,97,112,104,32,37,115,44,32,114,97,110,107,32,37,100,32,104,97,115,32,111,110,108,121,32,37,100,32,60,32,37,100,32,110,111,100,101,115,10,0,109,105,110,99,114,111,115,115,58,32,112,97,115,115,32,37,100,32,105,116,101,114,32,37,100,32,116,114,121,105,110,103,32,37,100,32,99,117,114,95,99,114,111,115,115,32,37,100,32,98,101,115,116,95,99,114,111,115,115,32,37,100,10,0,78,68,95,111,114,100,101,114,40,118,41,32,60,32,78,68,95,111,114,100,101,114,40,119,41,0,98,97,108,97,110,99,101,0,116,114,97,110,115,112,111,115,101,95,115,116,101,112,0,115,117,114,112,114,105,115,101,10,0,105,110,115,116,97,108,108,95,105,110,95,114,97,110,107,44,32,108,105,110,101,32,37,100,58,32,37,115,32,37,115,32,114,97,110,107,32,37,100,32,105,32,61,32,37,100,32,97,110,32,61,32,48,10,0,71,68,95,114,97,110,107,40,103,41,91,114,93,46,110,32,60,61,32,71,68,95,114,97,110,107,40,103,41,91,114,93,46,97,110,0,105,110,115,116,97,108,108,95,105,110,95,114,97,110,107,0,105,110,115,116,97,108,108,95,105,110,95,114,97,110,107,44,32,108,105,110,101,32,37,100,58,32,78,68,95,111,114,100,101,114,40,37,115,41,32,91,37,100,93,32,62,32,71,68,95,114,97,110,107,40,82,111,111,116,41,91,37,100,93,46,97,110,32,91,37,100,93,10,0,105,110,115,116,97,108,108,95,105,110,95,114,97,110,107,44,32,108,105,110,101,32,37,100,58,32,114,97,110,107,32,37,100,32,110,111,116,32,105,110,32,114,97,110,107,32,114,97,110,103,101,32,91,37,100,44,37,100,93,10,0,105,110,115,116,97,108,108,95,105,110,95,114,97,110,107,44,32,108,105,110,101,32,37,100,58,32,71,68,95,114,97,110,107,40,103,41,91,37,100,93,46,118,32,43,32,78,68,95,111,114,100,101,114,40,37,115,41,32,91,37,100,93,32,62,32,71,68,95,114,97,110,107,40,103,41,91,37,100,93,46,97,118,32,43,32,71,68,95,114,97,110,107,40,82,111,111,116,41,91,37,100,93,46,97,110,32,91,37,100,93,10,0,95,110,101,119,95,114,97,110,107,0,109,99,108,105,109,105,116,0,114,97,110,107,40,103,44,32,50,44,32,110,115,105,116,101,114,50,40,103,41,41,32,61,61,32,48,0,112,111,115,105,116,105,111,110,46,99,0,100,111,116,95,112,111,115,105,116,105,111,110,0,65,82,61,37,48,46,52,108,102,9,32,65,114,101,97,61,32,37,48,46,52,108,102,9,0,68,117,109,109,121,61,37,100,10,0,71,111,105,110,103,32,116,111,32,97,112,112,108,121,32,97,110,111,116,104,101,114,32,101,120,112,97,110,115,105,111,110,46,10,0,110,101,120,116,35,105,116,101,114,61,37,100,10,0,104,112,0,99,111,110,110,101,99,116,71,114,97,112,104,0,69,100,103,101,32,108,101,110,103,116,104,32,37,102,32,108,97,114,103,101,114,32,116,104,97,110,32,109,97,120,105,109,117,109,32,37,117,32,97,108,108,111,119,101,100,46,10,67,104,101,99,107,32,102,111,114,32,111,118,101,114,119,105,100,101,32,110,111,100,101,40,115,41,46,10,0,110,115,108,105,109,105,116,0,99,111,110,116,97,105,110,95,110,111,100,101,115,32,99,108,117,115,116,32,37,115,32,114,97,110,107,32,37,100,32,109,105,115,115,105,110,103,32,110,111,100,101,10,0,110,115,108,105,109,105,116,49,0,110,101,119,114,97,110,107,0,77,97,120,114,97,110,107,32,61,32,37,100,44,32,109,105,110,114,97,110,107,32,61,32,37,100,10,0,108,101,97,100,101,114,32,33,61,32,78,85,76,76,0,114,97,110,107,46,99,0,99,108,117,115,116,101,114,95,108,101,97,100,101,114,0,40,78,68,95,85,70,95,115,105,122,101,40,110,41,32,60,61,32,49,41,32,124,124,32,40,110,32,61,61,32,108,101,97,100,101,114,41,0,97,103,104,101,97,100,40,101,41,32,61,61,32,85,70,95,102,105,110,100,40,97,103,104,101,97,100,40,101,41,41,0,109,105,110,109,97,120,95,101,100,103,101,115,0,97,103,116,97,105,108,40,101,41,32,61,61,32,85,70,95,102,105,110,100,40,97,103,116,97,105,108,40,101,41,41,0,114,97,110,107,0,115,97,109,101,0,109,105,110,0,115,111,117,114,99,101,0,109,97,120,0,115,105,110,107,0,108,101,118,101,108,32,97,115,115,105,103,110,109,101,110,116,32,99,111,110,115,116,114,97,105,110,116,115,0,108,101,118,101,108,32,103,114,97,112,104,32,114,101,99,0,127,114,111,111,116,0,127,116,111,112,0,127,98,111,116,0,99,111,109,112,97,99,116,0,95,119,101,97,107,95,37,100,0,114,97,110,107,105,110,103,58,32,102,97,105,108,117,114,101,32,116,111,32,99,114,101,97,116,101,32,115,116,114,111,110,103,32,99,111,110,115,116,114,97,105,110,116,32,101,100,103,101,32,98,101,116,119,101,101,110,32,110,111,100,101,115,32,37,115,32,97,110,100,32,37,115,10,0,37,115,32,104,97,115,32,117,110,114,101,99,111,103,110,105,122,101,100,32,114,97,110,107,61,37,115,0,108,101,118,101,108,32,101,100,103,101,32,114,101,99,0,108,101,118,101,108,32,110,111,100,101,32,114,101,99,0,115,97,109,101,104,101,97,100,0,115,97,109,101,116,97,105,108,0,116,111,111,32,109,97,110,121,32,40,62,32,37,100,41,32,115,97,109,101,123,104,101,97,100,44,116,97,105,108,125,32,103,114,111,117,112,115,32,102,111,114,32,110,111,100,101,32,37,115,10,0,99,111,109,98,105,65,82,32,61,32,37,108,102,10,0,37,108,102,44,37,100,0,116,104,101,32,97,115,112,101,99,116,32,97,116,116,114,105,98,117,116,101,32,104,97,115,32,98,101,101,110,32,100,105,115,97,98,108,101,100,32,100,117,101,32,116,111,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,32,102,108,97,119,115,32,45,32,97,116,116,114,105,98,117,116,101,32,105,103,110,111,114,101,100,46,10,0,69,68,95,116,111,95,118,105,114,116,40,101,41,32,61,61,32,78,85,76,76,0,99,108,97,115,115,50,46,99,0,109,101,114,103,101,95,99,104,97,105,110,0,69,68,95,116,111,95,118,105,114,116,40,111,114,105,103,41,32,61,61,32,78,85,76,76,0,109,97,107,101,95,99,104,97,105,110,0,69,68,95,116,111,95,118,105,114,116,40,111,114,105,103,41,32,33,61,32,78,85,76,76,0,78,68,95,114,97,110,107,40,102,114,111,109,41,32,60,32,78,68,95,114,97,110,107,40,116,111,41,0,99,108,117,115,116,101,114,46,99,0,109,97,112,95,112,97,116,104,0,37,115,32,119,97,115,32,97,108,114,101,97,100,121,32,105,110,32,97,32,114,97,110,107,115,101,116,44,32,100,101,108,101,116,101,100,32,102,114,111,109,32,99,108,117,115,116,101,114,32,37,115,10,0,108,104,101,97,100,0,108,116,97,105,108,0,37,115,32,45,62,32,37,115,58,32,115,112,108,105,110,101,32,115,105,122,101,32,62,32,49,32,110,111,116,32,115,117,112,112,111,114,116,101,100,10,0,37,115,32,45,62,32,37,115,58,32,104,101,97,100,32,110,111,116,32,105,110,115,105,100,101,32,104,101,97,100,32,99,108,117,115,116,101,114,32,37,115,10,0,37,115,32,45,62,32,37,115,58,32,116,97,105,108,32,105,115,32,105,110,115,105,100,101,32,104,101,97,100,32,99,108,117,115,116,101,114,32,37,115,10,0,98,101,122,45,62,115,102,108,97,103,0,99,111,109,112,111,117,110,100,46,99,0,109,97,107,101,67,111,109,112,111,117,110,100,69,100,103,101,0,98,101,122,45,62,101,102,108,97,103,0,37,115,32,45,62,32,37,115,58,32,116,97,105,108,32,110,111,116,32,105,110,115,105,100,101,32,116,97,105,108,32,99,108,117,115,116,101,114,32,37,115,10,0,37,115,32,45,62,32,37,115,58,32,104,101,97,100,32,105,115,32,105,110,115,105,100,101,32,116,97,105,108,32,99,108,117,115,116,101,114,32,37,115,10,0,115,101,103,109,101,110,116,32,91,37,115,44,37,115,93,32,100,111,101,115,32,110,111,116,32,105,110,116,101,114,115,101,99,116,32,98,111,120,32,108,108,61,37,115,44,117,114,61,37,115,10,0,98,111,120,73,110,116,101,114,115,101,99,116,102,0,40,37,46,53,103,44,37,46,53,103,41,0,99,108,117,115,116,101,114,32,110,97,109,101,100,32,37,115,32,110,111,116,32,102,111,117,110,100,10,0,99,111,110,99,101,110,116,114,97,116,101,61,116,114,117,101,32,109,97,121,32,110,111,116,32,119,111,114,107,32,99,111,114,114,101,99,116,108,121,46,10,0,114,101,98,117,105,108,116,100,95,118,108,105,115,116,115,58,32,114,97,110,107,32,108,101,97,100,32,37,115,32,110,111,116,32,105,110,32,111,114,100,101,114,32,37,100,32,111,102,32,114,97,110,107,32,37,100,10,0,100,101,103,101,110,101,114,97,116,101,32,99,111,110,99,101,110,116,114,97,116,101,100,32,114,97,110,107,32,37,115,44,37,100,10,0,78,68,95,105,110,40,114,105,103,104,116,41,46,115,105,122,101,32,43,32,78,68,95,111,117,116,40,114,105,103,104,116,41,46,115,105,122,101,32,61,61,32,48,0,99,111,110,99,46,99,0,109,101,114,103,101,118,105,114,116,117,97,108,0,100,111,116,58,32,79,117,116,32,111,102,32,109,101,109,111,114,121,10,0,78,68,95,111,117,116,40,118,41,46,115,105,122,101,32,61,61,32,50,0,102,108,97,116,46,99,0,115,101,116,98,111,117,110,100,115,0,71,68,95,109,105,110,114,97,110,107,40,103,41,32,61,61,32,48,0,97,98,111,109,105,110,97,116,105,111,110,0,110,101,97,116,111,95,108,97,121,111,117,116,0,110,101,97,116,111,0,102,100,112,0,115,102,100,112,0,116,119,111,112,105,0,99,105,114,99,111,0,112,97,116,99,104,119,111,114,107,0,111,115,97,103,101,0,110,111,112,0,110,111,112,49,0,110,111,112,50,0,37,108,102,44,37,108,102,44,37,108,102,37,99,0,110,111,100,101,32,37,115,44,32,112,111,115,105,116,105,111,110,32,37,115,44,32,101,120,112,101,99,116,101,100,32,116,119,111,32,100,111,117,98,108,101,115,10,0,110,111,116,114,97,110,115,108,97,116,101,0,110,111,100,101,32,37,115,32,105,110,32,103,114,97,112,104,32,37,115,32,104,97,115,32,110,111,32,112,111,115,105,116,105,111,110,10,0,115,44,37,108,102,44,37,108,102,37,110,0,32,101,44,37,108,102,44,37,108,102,37,110,0,112,111,115,32,97,116,116,114,105,98,117,116,101,32,102,111,114,32,101,100,103,101,32,40,37,115,44,37,115,41,32,100,111,101,115,110,39,116,32,104,97,118,101,32,51,110,43,49,32,112,111,105,110,116,115,10,0,37,108,102,44,37,108,102,37,110,0,115,121,110,116,97,120,32,101,114,114,111,114,32,105,110,32,112,111,115,32,97,116,116,114,105,98,117,116,101,32,102,111,114,32,101,100,103,101,32,40,37,115,44,37,115,41,10,0,37,108,102,44,37,108,102,44,37,108,102,44,37,108,102,0,115,116,97,114,116,0,115,101,108,102,0,114,97,110,100,111,109,0,110,111,100,101,32,112,111,115,105,116,105,111,110,115,32,97,114,101,32,105,103,110,111,114,101,100,32,117,110,108,101,115,115,32,115,116,97,114,116,61,114,97,110,100,111,109,10,0,97,115,32,114,101,113,117,105,114,101,100,32,98,121,32,116,104,101,32,45,110,32,102,108,97,103,10,0,95,110,101,97,116,111,95,99,99,0,103,114,97,112,104,32,37,115,32,105,115,32,100,105,115,99,111,110,110,101,99,116,101,100,46,32,72,101,110,99,101,44,32,116,104,101,32,99,105,114,99,117,105,116,32,109,111,100,101,108,10,0,65,108,116,101,114,110,97,116,105,118,101,108,121,44,32,99,111,110,115,105,100,101,114,32,114,117,110,110,105,110,103,32,110,101,97,116,111,32,117,115,105,110,103,32,45,71,112,97,99,107,61,116,114,117,101,32,111,114,32,100,101,99,111,109,112,111,115,105,110,103,10,0,116,104,101,32,103,114,97,112,104,32,105,110,116,111,32,99,111,110,110,101,99,116,101,100,32,99,111,109,112,111,110,101,110,116,115,46,10,0,83,111,108,118,105,110,103,32,109,111,100,101,108,32,37,100,32,105,116,101,114,97,116,105,111,110,115,32,37,100,32,116,111,108,32,37,102,10,0,78,68,95,105,100,40,110,112,41,32,61,61,32,105,0,110,101,97,116,111,105,110,105,116,46,99,0,109,97,107,101,71,114,97,112,104,68,97,116,97,0,102,32,60,32,103,114,97,112,104,91,106,93,46,110,101,100,103,101,115,0,100,102,115,67,121,99,108,101,0,109,111,100,101,108,32,37,100,32,115,109,97,114,116,95,105,110,105,116,32,37,100,32,115,116,114,101,115,115,119,116,32,37,100,32,105,116,101,114,97,116,105,111,110,115,32,37,100,32,116,111,108,32,37,102,10,0,99,111,110,118,101,114,116,32,103,114,97,112,104,58,32,0,109,97,106,111,114,105,122,97,116,105,111,110,10,0,37,100,32,110,111,100,101,115,32,37,46,50,102,32,115,101,99,10,0,108,101,118,101,108,115,103,97,112,0,108,97,121,111,117,116,32,97,98,111,114,116,101,100,10,0,115,116,114,101,115,115,119,116,0,37,115,32,97,116,116,114,105,98,117,116,101,32,118,97,108,117,101,32,109,117,115,116,32,98,101,32,49,32,111,114,32,50,32,45,32,105,103,110,111,114,105,110,103,10,0,109,111,100,101,108,0,99,105,114,99,117,105,116,0,115,117,98,115,101,116,0,115,104,111,114,116,112,97,116,104,0,109,100,115,0,101,100,103,101,115,32,105,110,32,103,114,97,112,104,32,37,115,32,104,97,118,101,32,110,111,32,108,101,110,32,97,116,116,114,105,98,117,116,101,46,32,72,101,110,99,101,44,32,116,104,101,32,109,100,115,32,109,111,100,101,108,10,0,105,115,32,105,110,97,112,112,114,111,112,114,105,97,116,101,46,32,82,101,118,101,114,116,105,110,103,32,116,111,32,116,104,101,32,115,104,111,114,116,101,115,116,32,112,97,116,104,32,109,111,100,101,108,46,10,0,85,110,107,110,111,119,110,32,118,97,108,117,101,32,37,115,32,102,111,114,32,97,116,116,114,105,98,117,116,101,32,34,109,111,100,101,108,34,32,105,110,32,103,114,97,112,104,32,37,115,32,45,32,105,103,110,111,114,101,100,10,0,109,111,100,101,0,75,75,0,109,97,106,111,114,0,104,105,101,114,0,73,108,108,101,103,97,108,32,118,97,108,117,101,32,37,115,32,102,111,114,32,97,116,116,114,105,98,117,116,101,32,34,109,111,100,101,34,32,105,110,32,103,114,97,112,104,32,37,115,32,45,32,105,103,110,111,114,101,100,10,0,109,97,107,101,83,112,108,105,110,101,58,32,102,97,105,108,101,100,32,116,111,32,109,97,107,101,32,115,112,108,105,110,101,32,101,100,103,101,32,40,37,115,44,37,115,41,10,0,115,112,108,105,110,101,32,37,115,32,37,115,10,0,98,32,61,61,32,110,0,110,101,97,116,111,115,112,108,105,110,101,115,46,99,0,109,97,107,101,95,98,97,114,114,105,101,114,115,0,116,104,101,32,98,111,117,110,100,105,110,103,32,98,111,120,101,115,32,111,102,32,115,111,109,101,32,110,111,100,101,115,32,116,111,117,99,104,32,45,32,102,97,108,108,105,110,103,32,98,97,99,107,32,116,111,32,115,116,114,97,105,103,104,116,32,108,105,110,101,32,101,100,103,101,115,10,0,115,111,109,101,32,110,111,100,101,115,32,119,105,116,104,32,109,97,114,103,105,110,32,40,37,46,48,50,102,44,37,46,48,50,102,41,32,116,111,117,99,104,32,45,32,102,97,108,108,105,110,103,32,98,97,99,107,32,116,111,32,115,116,114,97,105,103,104,116,32,108,105,110,101,32,101,100,103,101,115,10,0,111,114,116,104,111,103,111,110,97,108,32,108,105,110,101,115,0,108,105,110,101,32,115,101,103,109,101,110,116,115,0,112,111,108,121,108,105,110,101,115,0,67,114,101,97,116,105,110,103,32,101,100,103,101,115,32,117,115,105,110,103,32,37,115,10,0,112,111,108,121,108,105,110,101,32,37,115,32,37,115,10,0,109,100,115,77,111,100,101,108,58,32,100,101,108,116,97,32,61,32,37,102,10,0,83,101,116,116,105,110,103,32,117,112,32,115,116,114,101,115,115,32,102,117,110,99,116,105,111,110,0,83,111,108,118,105,110,103,32,109,111,100,101,108,58,32,0,10,102,105,110,97,108,32,101,32,61,32,37,102,32,37,100,32,105,116,101,114,97,116,105,111,110,115,32,37,46,50,102,32,115,101,99,10,0,83,99,97,110,110,105,110,103,32,103,114,97,112,104,32,37,115,44,32,37,100,32,110,111,100,101,115,10,0,68,97,109,112,105,110,103,0,100,101,102,97,117,108,116,100,105,115,116,0,32,105,110,32,37,115,32,45,32,115,101,116,116,105,110,103,32,116,111,32,37,46,48,50,102,10,0,98,97,100,32,101,100,103,101,32,108,101,110,32,34,37,115,34,0,83,101,116,116,105,110,103,32,105,110,105,116,105,97,108,32,112,111,115,105,116,105,111,110,115,10,0,115,116,97,114,116,61,37,115,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,119,105,116,104,32,109,111,100,101,61,115,101,108,102,32,45,32,105,103,110,111,114,101,100,10,0,83,101,116,116,105,110,103,32,117,112,32,115,112,114,105,110,103,32,109,111,100,101,108,58,32,0,37,46,50,102,32,115,101,99,10,0,10,102,105,110,97,108,32,101,32,61,32,37,102,0,33,0,32,37,100,37,115,32,105,116,101,114,97,116,105,111,110,115,32,37,46,50,102,32,115,101,99,10,0,77,97,120,46,32,105,116,101,114,97,116,105,111,110,115,32,40,37,100,41,32,114,101,97,99,104,101,100,32,111,110,32,103,114,97,112,104,32,37,115,10,0,37,115,32,37,46,51,102,10,0,37,46,51,102,32,0,78,68,95,104,101,97,112,105,110,100,101,120,40,118,41,32,60,32,48,0,115,116,117,102,102,46,99,0,110,101,97,116,111,95,101,110,113,117,101,117,101,0,67,97,108,99,117,108,97,116,105,110,103,32,115,104,111,114,116,101,115,116,32,112,97,116,104,115,58,32,0,115,112,101,99,105,102,105,101,100,32,114,111,111,116,32,110,111,100,101,32,34,37,115,34,32,119,97,115,32,110,111,116,32,102,111,117,110,100,46,0,85,115,105,110,103,32,100,101,102,97,117,108,116,32,99,97,108,99,117,108,97,116,105,111,110,32,102,111,114,32,114,111,111,116,32,110,111,100,101,10,0,114,101,112,111,115,105,116,105,111,110,32,37,115,10,0,37,115,32,58,32,37,102,32,37,102,10,0,37,115,32,58,32,37,102,32,37,102,32,37,102,32,37,102,10,0,32,32,0,71,114,97,112,104,32,37,115,32,104,97,115,32,97,114,114,97,121,32,112,97,99,107,105,110,103,32,119,105,116,104,32,117,115,101,114,32,118,97,108,117,101,115,32,98,117,116,32,110,111,32,34,115,111,114,116,118,34,32,97,116,116,114,105,98,117,116,101,115,32,97,114,101,32,100,101,102,105,110,101,100,46,0,112,105,110,0,87,97,114,110,105,110,103,58,32,110,111,100,101,32,37,115,44,32,112,111,115,105,116,105,111,110,32,37,115,44,32,101,120,112,101,99,116,101,100,32,116,119,111,32,102,108,111,97,116,115,10,0,99,111,111,114,100,115,0,108,97,121,111,117,116,32,37,115,10,0,101,110,100,32,37,115,10,0,105,100,120,32,61,61,32,115,122,0,108,97,121,111,117,116,46,99,0,101,120,112,97,110,100,67,108,117,115,116,101,114,0,105,32,61,61,32,100,101,103,0,103,101,116,69,100,103,101,76,105,115,116,0,95,100,103,95,37,100,0,100,101,114,105,118,101,32,103,114,97,112,104,32,37,115,32,111,102,32,37,115,10,0,110,111,100,101,32,34,37,115,34,32,105,115,32,99,111,110,116,97,105,110,101,100,32,105,110,32,116,119,111,32,110,111,110,45,99,111,109,112,97,114,97,98,108,101,32,99,108,117,115,116,101,114,115,32,34,37,115,34,32,97,110,100,32,34,37,115,34,10,0,95,112,111,114,116,95,37,115,95,37,115,95,37,115,95,37,108,100,0,95,112,111,114,116,95,37,115,95,40,37,100,41,95,40,37,100,41,95,37,108,100,0,37,108,102,44,37,108,102,44,37,108,102,44,37,108,102,37,99,0,103,114,97,112,104,32,37,115,44,32,99,111,111,114,100,32,37,115,44,32,101,120,112,101,99,116,101,100,32,102,111,117,114,32,100,111,117,98,108,101,115,10,0,115,112,108,105,110,101,115,32,97,110,100,32,99,108,117,115,116,101,114,32,101,100,103,101,115,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,45,32,117,115,105,110,103,32,108,105,110,101,32,115,101,103,109,101,110,116,115,10,0,109,97,120,105,116,101,114,0,84,48,0,102,100,112,32,100,111,101,115,32,110,111,116,32,115,117,112,112,111,114,116,32,115,116,97,114,116,61,115,101,108,102,32,45,32,105,103,110,111,114,105,110,103,10,0,120,76,97,121,111,117,116,32,0,57,58,112,114,105,115,109,0,116,114,105,101,115,32,61,32,37,100,44,32,109,111,100,101,32,61,32,37,115,10,0,100,101,114,105,118,101,100,0,105,110,102,111,0,115,102,100,112,32,111,110,108,121,32,115,117,112,112,111,114,116,115,32,115,116,97,114,116,61,114,97,110,100,111,109,10,0,75,0,114,101,112,117,108,115,105,118,101,102,111,114,99,101,0,108,101,118,101,108,115,0,115,109,111,111,116,104,105,110,103,0,113,117,97,100,116,114,101,101,0,98,101,97,117,116,105,102,121,0,111,118,101,114,108,97,112,95,115,104,114,105,110,107,0,114,111,116,97,116,105,111,110,0,108,97,98,101,108,95,115,99,104,101,109,101,0,108,97,98,101,108,95,115,99,104,101,109,101,32,61,32,37,100,32,62,32,52,32,58,32,105,103,110,111,114,105,110,103,10,0,102,97,115,116,0,97,118,103,95,100,105,115,116,0,103,114,97,112,104,95,100,105,115,116,0,112,111,119,101,114,95,100,105,115,116,0,115,112,114,105,110,103,0,100,105,109,101,110,0,100,105,109,0,115,112,114,105,110,103,95,101,108,101,99,116,114,105,99,97,108,95,99,111,110,116,114,111,108,58,10,0,32,32,114,101,112,117,108,115,105,118,101,32,97,110,100,32,97,116,116,114,97,99,116,105,118,101,32,101,120,112,111,110,101,110,116,115,58,32,37,46,48,51,102,32,37,46,48,51,102,10,0,32,32,114,97,110,100,111,109,32,115,116,97,114,116,32,37,100,32,115,101,101,100,32,37,100,10,0,32,32,75,32,58,32,37,46,48,51,102,32,67,32,58,32,37,46,48,51,102,10,0,32,32,109,97,120,32,108,101,118,101,108,115,32,37,100,32,99,111,97,114,115,101,110,95,115,99,104,101,109,101,32,37,100,32,99,111,97,114,115,101,110,95,110,111,100,101,32,37,100,10,0,32,32,113,117,97,100,116,114,101,101,32,115,105,122,101,32,37,100,32,109,97,120,95,108,101,118,101,108,32,37,100,10,0,32,32,66,97,114,110,101,115,45,72,117,116,116,32,99,111,110,115,116,97,110,116,32,37,46,48,51,102,32,116,111,108,101,114,97,110,99,101,32,32,37,46,48,51,102,32,109,97,120,105,116,101,114,32,37,100,10,0,32,32,99,111,111,108,105,110,103,32,37,46,48,51,102,32,115,116,101,112,32,115,105,122,101,32,32,37,46,48,51,102,32,97,100,97,112,116,105,118,101,32,37,100,10,0,32,32,98,101,97,117,116,105,102,121,95,108,101,97,118,101,115,32,37,100,32,110,111,100,101,32,119,101,105,103,104,116,115,32,37,100,32,114,111,116,97,116,105,111,110,32,37,46,48,51,102,10,0,32,32,115,109,111,111,116,104,105,110,103,32,37,115,32,111,118,101,114,108,97,112,32,37,100,32,105,110,105,116,105,97,108,95,115,99,97,108,105,110,103,32,37,46,48,51,102,32,100,111,95,115,104,114,105,110,107,105,110,103,32,37,100,10,0,32,32,111,99,116,114,101,101,32,115,99,104,101,109,101,32,37,115,32,109,101,116,104,111,100,32,37,115,10,0,32,32,101,100,103,101,95,108,97,98,101,108,105,110,103,95,115,99,104,101,109,101,32,37,100,10,0,83,80,82,73,78,71,95,69,76,69,67,84,82,73,67,65,76,0,83,80,82],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+81944);allocate([73,78,71,95,77,65,88,69,78,84,0,83,84,82,69,83,83,95,77,65,88,69,78,84,0,83,84,82,69,83,83,95,65,80,80,82,79,88,0,83,84,82,69,83,83,0,85,78,73,70,79,82,77,95,83,84,82,69,83,83,0,70,85,76,76,95,83,84,82,69,83,83,0,78,79,78,69,0,78,79,82,77,65,76,0,70,65,83,84,0,72,89,66,82,73,68,0,83,84,82,69,83,83,95,77,65,74,79,82,73,90,65,84,73,79,78,95,71,82,65,80,72,95,68,73,83,84,0,83,84,82,69,83,83,95,77,65,74,79,82,73,90,65,84,73,79,78,95,65,86,71,95,68,73,83,84,0,83,84,82,69,83,83,95,77,65,74,79,82,73,90,65,84,73,79,78,95,80,79,87,69,82,95,68,73,83,84,0,83,80,82,73,78,71,0,84,82,73,65,78,71,76,69,0,82,78,71,0,13,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,116,101,114,32,61,32,37,100,44,32,115,116,101,112,32,61,32,37,102,32,70,110,111,114,109,32,61,32,37,102,32,110,122,32,61,32,37,100,32,32,75,32,61,32,37,102,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,115,112,114,105,110,103,95,101,108,101,99,116,114,105,99,97,108,95,101,109,98,101,100,100,105,110,103,95,115,108,111,119,0,100,109,101,97,110,32,61,32,37,102,44,32,114,104,111,32,61,32,37,102,10,0,115,101,110,100,32,114,97,110,100,111,109,32,99,111,111,114,100,105,110,97,116,101,115,10,0,115,99,97,108,105,110,103,32,102,97,99,116,111,114,32,61,32,37,102,10,0,81,85,65,68,95,84,82,69,69,95,72,89,66,82,73,68,44,32,115,105,122,101,32,108,97,114,103,101,114,32,116,104,97,110,32,37,100,44,32,115,119,105,116,99,104,32,116,111,32,102,97,115,116,32,113,117,97,100,116,114,101,101,0,99,116,114,108,45,62,111,118,101,114,108,97,112,61,37,100,10,0,37,100,32,37,100,10,0,117,110,105,102,111,114,109,95,115,116,114,101,115,115,46,99,0,85,110,105,102,111,114,109,83,116,114,101,115,115,83,109,111,111,116,104,101,114,95,110,101,119,0,83,112,97,114,115,101,77,97,116,114,105,120,95,105,115,95,115,121,109,109,101,116,114,105,99,40,66,44,32,70,65,76,83,69,41,0,117,110,105,102,111,114,109,95,115,116,114,101,115,115,0,124,101,100,103,101,108,97,98,101,108,124,0,108,101,110,0,110,111,114,109,97,108,105,122,101,0,111,118,101,114,108,97,112,0,79,118,101,114,108,97,112,32,118,97,108,117,101,32,34,37,115,34,32,117,110,115,117,112,112,111,114,116,101,100,32,45,32,105,103,110,111,114,101,100,10,0,85,110,114,101,99,111,103,110,105,122,101,100,32,111,118,101,114,108,97,112,32,118,97,108,117,101,32,34,37,115,34,32,45,32,117,115,105,110,103,32,102,97,108,115,101,10,0,86,111,114,111,110,111,105,0,111,118,101,114,108,97,112,58,32,37,115,32,118,97,108,117,101,32,37,100,32,115,99,97,108,105,110,103,32,37,46,48,52,102,10,0,111,118,101,114,108,97,112,95,115,99,97,108,105,110,103,0,118,111,114,111,110,111,105,0,115,99,97,108,105,110,103,0,118,112,115,99,0,105,112,115,101,112,0,111,115,99,97,108,101,0,111,108,100,32,115,99,97,108,105,110,103,0,115,99,97,108,101,120,121,0,120,32,97,110,100,32,121,32,115,99,97,108,105,110,103,0,111,114,116,104,111,0,111,114,116,104,111,103,111,110,97,108,32,99,111,110,115,116,114,97,105,110,116,115,0,111,114,116,104,111,95,121,120,0,111,114,116,104,111,120,121,0,120,121,32,111,114,116,104,111,103,111,110,97,108,32,99,111,110,115,116,114,97,105,110,116,115,0,111,114,116,104,111,121,120,0,121,120,32,111,114,116,104,111,103,111,110,97,108,32,99,111,110,115,116,114,97,105,110,116,115,0,112,111,114,116,104,111,0,112,115,101,117,100,111,45,111,114,116,104,111,103,111,110,97,108,32,99,111,110,115,116,114,97,105,110,116,115,0,112,111,114,116,104,111,95,121,120,0,112,111,114,116,104,111,120,121,0,120,121,32,112,115,101,117,100,111,45,111,114,116,104,111,103,111,110,97,108,32,99,111,110,115,116,114,97,105,110,116,115,0,112,111,114,116,104,111,121,120,0,121,120,32,112,115,101,117,100,111,45,111,114,116,104,111,103,111,110,97,108,32,99,111,110,115,116,114,97,105,110,116,115,0,112,114,105,115,109,0,65,100,106,117,115,116,105,110,103,32,37,115,32,117,115,105,110,103,32,37,115,10,0,85,110,104,97,110,100,108,101,100,32,97,100,106,117,115,116,32,111,112,116,105,111,110,32,37,115,10,0,78,117,109,98,101,114,32,111,102,32,105,116,101,114,97,116,105,111,110,115,32,61,32,37,100,10,0,78,117,109,98,101,114,32,111,102,32,105,110,99,114,101,97,115,101,115,32,61,32,37,100,10,0,111,118,101,114,108,97,112,32,91,37,100,93,32,58,32,37,100,10,0,118,111,114,111,95,109,97,114,103,105,110,0,115,101,112,0,101,115,101,112,0,78,111,100,101,32,115,101,112,97,114,97,116,105,111,110,58,32,97,100,100,61,37,100,32,40,37,102,44,37,102,41,10,0,37,102,44,37,102,0,115,99,97,108,101,32,61,32,40,37,46,48,51,102,44,37,46,48,51,102,41,10,0,69,100,103,101,32,115,101,112,97,114,97,116,105,111,110,58,32,97,100,100,61,37,100,32,40,37,102,44,37,102,41,10,0,67,97,108,99,117,108,97,116,105,110,103,32,99,105,114,99,117,105,116,32,109,111,100,101,108,0,99,111,110,106,117,103,97,116,101,95,103,114,97,100,105,101,110,116,58,32,117,110,101,120,112,101,99,116,101,100,32,108,101,110,103,116,104,32,48,32,118,101,99,116,111,114,10,0,67,97,108,99,117,108,97,116,105,110,103,32,115,117,98,115,101,116,32,109,111,100,101,108,0,103,114,97,112,104,32,105,115,32,100,105,115,99,111,110,110,101,99,116,101,100,46,32,72,101,110,99,101,44,32,116,104,101,32,99,105,114,99,117,105,116,32,109,111,100,101,108,10,0,105,115,32,117,110,100,101,102,105,110,101,100,46,32,82,101,118,101,114,116,105,110,103,32,116,111,32,116,104,101,32,115,104,111,114,116,101,115,116,32,112,97,116,104,32,109,111,100,101,108,46,10,0,67,97,108,99,117,108,97,116,105,110,103,32,77,68,83,32,109,111,100,101,108,0,67,97,108,99,117,108,97,116,105,110,103,32,115,104,111,114,116,101,115,116,32,112,97,116,104,115,0,58,32,37,46,50,102,32,115,101,99,10,0,83,101,116,116,105,110,103,32,105,110,105,116,105,97,108,32,112,111,115,105,116,105,111,110,115,0,58,32,37,46,50,102,32,115,101,99,0,99,103,0,100,101,108,116,97,32,60,61,32,48,120,70,70,70,70,0,99,111,110,115,116,114,97,105,110,116,46,99,0,109,107,78,67,111,110,115,116,114,97,105,110,116,71,0,118,103,0,99,111,109,112,114,101,115,115,32,37,103,32,10,0,115,99,97,108,101,32,98,121,32,37,103,44,37,103,32,10,0,98,101,115,116,99,111,115,116,32,60,32,72,85,71,69,95,86,65,76,0,99,111,109,112,117,116,101,83,99,97,108,101,88,89,0,71,114,97,112,104,118,105,122,32,98,117,105,108,116,32,119,105,116,104,111,117,116,32,97,110,121,32,116,114,105,97,110,103,117,108,97,116,105,111,110,32,108,105,98,114,97,114,121,10,0,100,101,108,97,117,110,97,121,95,116,114,105,97,110,103,117,108,97,116,105,111,110,58,32,37,115,10,0,100,101,108,97,117,110,97,121,95,116,114,105,58,32,37,115,10,0,116,114,121,105,110,103,32,116,111,32,100,101,108,101,116,101,32,97,32,110,111,110,45,108,105,110,101,10,0,10,105,110,116,101,114,115,101,99,116,105,111,110,32,97,116,32,37,46,51,102,32,37,46,51,102,10,0,115,101,103,35,37,100,32,58,32,40,37,46,51,102,44,32,37,46,51,102,41,32,40,37,46,51,102,44,32,37,46,51,102,41,10,0,114,101,109,111,118,101,95,111,118,101,114,108,97,112,58,32,71,114,97,112,104,118,105,122,32,110,111,116,32,98,117,105,108,116,32,119,105,116,104,32,116,114,105,97,110,103,117,108,97,116,105,111,110,32,108,105,98,114,97,114,121,10,0,109,97,107,101,65,100,100,80,111,108,121,58,32,117,110,107,110,111,119,110,32,115,104,97,112,101,32,116,121,112,101,32,37,115,10,0,109,97,107,101,80,111,108,121,58,32,117,110,107,110,111,119,110,32,115,104,97,112,101,32,116,121,112,101,32,37,115,10,0,120,33,61,78,85,76,76,0,115,109,97,114,116,95,105,110,105,95,120,46,99,0,73,77,68,83,95,103,105,118,101,110,95,100,105,109,0,105,108,108,45,99,111,110,100,105,116,105,111,110,101,100,0,114,111,111,116,32,61,32,37,115,32,109,97,120,32,115,116,101,112,115,32,116,111,32,114,111,111,116,32,61,32,37,100,10,0,116,119,111,112,105,58,32,117,115,101,32,111,102,32,119,101,105,103,104,116,61,48,32,99,114,101,97,116,101,115,32,100,105,115,99,111,110,110,101,99,116,101,100,32,99,111,109,112,111,110,101,110,116,46,10,0,82,97,110,107,32,115,101,112,97,114,97,116,105,111,110,32,61,32,0,37,46,48,51,108,102,32,0,97,114,101,97,0,105,110,115,101,116,0,37,115,32,99,111,111,114,100,32,37,46,53,103,32,37,46,53,103,32,104,116,32,37,102,32,119,105,100,116,104,32,37,102,10,0,37,46,48,51,102,0,114,101,99,32,37,102,32,37,102,32,37,102,32,37,102,10,0,37,102,32,45,32,37,102,32,37,102,32,37,102,32,37,102,32,61,32,37,102,32,40,37,102,32,37,102,32,37,102,32,37,102,41,10,0,116,114,121,105,110,103,32,116,111,32,97,100,100,32,116,111,32,114,101,99,116,32,123,37,102,32,43,47,45,32,37,102,44,32,37,102,32,43,47,45,32,37,102,125,10,0,116,111,116,97,108,32,97,100,100,101,100,32,115,111,32,102,97,114,32,61,32,37,100,10,0,97,100,100,105,110,103,32,37,100,32,105,116,101,109,115,44,32,116,111,116,97,108,32,97,114,101,97,32,61,32,37,102,44,32,119,32,61,32,37,102,44,32,97,114,101,97,47,119,61,37,102,10,0,99,111,109,112,111,117,110,100,69,100,103,101,115,58,32,99,111,117,108,100,32,110,111,116,32,99,111,110,115,116,114,117,99,116,32,111,98,115,116,97,99,108,101,115,32,45,32,102,97,108,108,105,110,103,32,98,97,99,107,32,116,111,32,115,116,114,97,105,103,104,116,32,108,105,110,101,32,101,100,103,101,115,10,0,99,111,109,112,111,117,110,100,69,100,103,101,115,58,32,110,111,100,101,115,32,116,111,117,99,104,32,45,32,102,97,108,108,105,110,103,32,98,97,99,107,32,116,111,32,115,116,114,97,105,103,104,116,32,108,105,110,101,32,101,100,103,101,115,10,0,112,97,99,107,32,118,97,108,117,101,32,37,100,32,105,115,32,115,109,97,108,108,101,114,32,116,104,97,110,32,101,115,101,112,32,40,37,46,48,51,102,44,37,46,48,51,102,41,10,0,115,101,112,32,118,97,108,117,101,32,40,37,46,48,51,102,44,37,46,48,51,102,41,32,105,115,32,115,109,97,108,108,101,114,32,116,104,97,110,32,101,115,101,112,32,40,37,46,48,51,102,44,37,46,48,51,102,41,10,0,99,99,37,115,95,37,100,0,99,99,37,115,43,37,100,0,99,95,99,110,116,32,61,61,32,48,0,99,111,109,112,46,99,0,102,105,110,100,67,67,111,109,112,0,103,114,105,100,40,37,100,44,37,100,41,58,32,37,115,10,0,119,103,116,32,62,32,48,0,81,117,97,100,84,114,101,101,46,99,0,81,117,97,100,84,114,101,101,95,114,101,112,117,108,115,105,118,101,95,102,111,114,99,101,95,97,99,99,117,109,117,108,97,116,101,0,113,116,50,45,62,110,32,62,32,48,0,113,116,49,45,62,110,32,62,32,48,32,38,38,32,113,116,50,45,62,110,32,62,32,48,0,81,117,97,100,84,114,101,101,95,114,101,112,117,108,115,105,118,101,95,102,111,114,99,101,95,105,110,116,101,114,97,99,116,0,100,105,115,116,32,62,32,48,0,33,40,113,45,62,108,41,0,81,117,97,100,84,114,101,101,95,97,100,100,95,105,110,116,101,114,110,97,108,0,105,105,32,60,32,49,60,60,100,105,109,32,38,38,32,105,105,32,62,61,32,48,0,113,45,62,113,116,115,91,105,105,93,0,113,45,62,110,32,61,61,32,49,0,33,40,113,45,62,113,116,115,41,0,113,45,62,108,0,119,105,100,116,104,32,62,32,48,0,81,117,97,100,84,114,101,101,95,110,101,119,0,65,45,62,102,111,114,109,97,116,32,61,61,32,70,79,82,77,65,84,95,67,83,82,0,83,112,97,114,115,101,77,97,116,114,105,120,46,99,0,83,112,97,114,115,101,77,97,116,114,105,120,95,116,114,97,110,115,112,111,115,101,0,65,32,38,38,32,66,0,83,112,97,114,115,101,77,97,116,114,105,120,95,97,100,100,0,65,45,62,102,111,114,109,97,116,32,61,61,32,66,45,62,102,111,114,109,97,116,32,38,38,32,65,45,62,102,111,114,109,97,116,32,61,61,32,70,79,82,77,65,84,95,67,83,82,0,65,45,62,116,121,112,101,32,61,61,32,66,45,62,116,121,112,101,0,83,112,97,114,115,101,77,97,116,114,105,120,95,105,115,95,115,121,109,109,101,116,114,105,99,0,65,45,62,102,111,114,109,97,116,32,61,61,32,70,79,82,77,65,84,95,67,79,79,82,68,0,83,112,97,114,115,101,77,97,116,114,105,120,95,102,114,111,109,95,99,111,111,114,100,105,110,97,116,101,95,102,111,114,109,97,116,0,109,32,62,32,48,32,38,38,32,110,32,62,32,48,32,38,38,32,110,122,32,62,61,32,48,0,83,112,97,114,115,101,77,97,116,114,105,120,95,102,114,111,109,95,99,111,111,114,100,105,110,97,116,101,95,97,114,114,97,121,115,95,105,110,116,101,114,110,97,108,0,65,0,106,97,91,109,97,115,107,91,106,97,91,106,93,93,93,32,61,61,32,106,97,91,106,93,0,83,112,97,114,115,101,77,97,116,114,105,120,95,115,117,109,95,114,101,112,101,97,116,95,101,110,116,114,105,101,115,0,105,100,32,60,32,110,42,40,121,109,97,120,45,121,109,105,110,43,49,41,0,106,97,91,109,97,115,107,91,105,100,93,93,32,61,61,32,106,97,91,106,93,0,83,112,97,114,115,101,77,97,116,114,105,120,95,109,117,108,116,105,112,108,121,95,100,101,110,115,101,50,0,65,45,62,116,121,112,101,32,61,61,32,77,65,84,82,73,88,95,84,89,80,69,95,82,69,65,76,0,83,112,97,114,115,101,77,97,116,114,105,120,95,109,117,108,116,105,112,108,121,95,118,101,99,116,111,114,0,65,45,62,116,121,112,101,32,61,61,32,77,65,84,82,73,88,95,84,89,80,69,95,82,69,65,76,32,124,124,32,65,45,62,116,121,112,101,32,61,61,32,77,65,84,82,73,88,95,84,89,80,69,95,73,78,84,69,71,69,82,0,83,112,97,114,115,101,77,97,116,114,105,120,95,109,117,108,116,105,112,108,121,95,100,101,110,115,101,49,0,83,112,97,114,115,101,77,97,116,114,105,120,95,109,117,108,116,105,112,108,121,0,106,99,91,109,97,115,107,91,106,98,91,107,93,93,93,32,61,61,32,106,98,91,107,93,0,83,112,97,114,115,101,77,97,116,114,105,120,95,109,117,108,116,105,112,108,121,51,0,106,100,91,109,97,115,107,91,106,99,91,107,93,93,93,32,61,61,32,106,99,91,107,93,0,83,112,97,114,115,101,77,97,116,114,105,120,95,99,111,111,114,100,105,110,97,116,101,95,102,111,114,109,95,97,100,100,95,101,110,116,114,105,101,115,0,83,112,97,114,115,101,77,97,116,114,105,120,95,100,105,118,105,100,101,95,114,111,119,95,98,121,95,100,101,103,114,101,101,0,110,32,62,32,49,0,103,101,110,101,114,97,108,46,99,0,105,114,97,110,100,0,111,110,101,98,108,111,99,107,0,109,105,110,100,105,115,116,0,97,114,116,105,99,117,108,97,116,105,111,110,95,112,111,115,0,114,111,111,116,0,80,114,105,111,114,105,116,121,81,117,101,117,101,46,99,0,80,114,105,111,114,105,116,121,81,117,101,117,101,95,112,117,115,104,0,103,97,105,110,32,60,61,32,113,45,62,110,103,97,105,110,0,83,112,97,114,115,101,77,97,116,114,105,120,95,105,115,95,115,121,109,109,101,116,114,105,99,40,65,44,32,70,65,76,83,69,41,0,112,111,115,116,95,112,114,111,99,101,115,115,46,99,0,105,100,101,97,108,95,100,105,115,116,97,110,99,101,95,109,97,116,114,105,120,0,108,101,110,32,62,32,48,0,83,116,114,101,115,115,77,97,106,111,114,105,122,97,116,105,111,110,83,109,111,111,116,104,101,114,50,95,110,101,119,0,110,122,32,62,32,48,0,105,100,101,97,108,95,100,105,115,116,95,115,99,104,101,109,101,32,118,97,108,117,101,32,119,114,111,110,103,0,83,112,97,114,115,101,77,97,116,114,105,120,95,105,115,95,115,121,109,109,101,116,114,105,99,40,65,44,32,70,65,76,83,69,41,32,38,38,32,65,45,62,116,121,112,101,32,61,61,32,77,65,84,82,73,88,95,84,89,80,69,95,82,69,65,76,0,83,112,97,114,115,101,83,116,114,101,115,115,77,97,106,111,114,105,122,97,116,105,111,110,83,109,111,111,116,104,101,114,95,110,101,119,0,105,100,105,97,103,32,62,61,32,48,0,83,116,114,101,115,115,77,97,106,111,114,105,122,97,116,105,111,110,83,109,111,111,116,104,101,114,95,115,109,111,111,116,104,0,40,33,106,99,110,41,32,38,38,32,40,33,118,97,108,41,0,103,101,116,95,101,100,103,101,95,108,97,98,101,108,95,109,97,116,114,105,120,0,84,114,105,97,110,103,108,101,83,109,111,111,116,104,101,114,95,110,101,119,0,106,100,105,97,103,32,62,61,32,48,0,83,112,114,105,110,103,83,109,111,111,116,104,101,114,95,110,101,119,0,33,102,108,97,103,0,83,112,114,105,110,103,83,109,111,111,116,104,101,114,95,115,109,111,111,116,104,0,110,101,105,103,104,98,61,37,100,10,0,114,111,111,116,32,61,32,37,115,10,0,95,98,108,111,99,107,95,37,100,0,115,45,62,115,122,32,62,32,48,0,98,108,111,99,107,116,114,101,101,46,99,0,112,111,112,0,97,99,116,117,97,108,0,110,111,100,101,108,105,115,116,46,99,0,105,110,115,101,114,116,78,111,100,101,108,105,115,116,0,95,115,112,97,110,95,37,100,0,95,99,108,111,110,101,95,37,100,0,105,112,0,100,101,103,108,105,115,116,46,99,0,114,101,109,111,118,101,68,101,103,108,105,115,116,0,69,114,114,111,114,0,87,97,114,110,105,110,103,0,37,115,58,32,0,117,115,101,114,111,117,116,58,32,99,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,10,0,95,65,71,95,115,116,114,100,97,116,97,0,95,65,71,95,100,97,116,97,100,105,99,116,0,97,103,100,105,99,116,111,102,58,32,117,110,107,110,111,119,110,32,107,105,110,100,32,37,100,10,0,37,99,37,108,100,0,109,101,109,111,114,121,32,97,108,108,111,99,97,116,105,111,110,32,102,97,105,108,117,114,101,0,97,103,100,101,108,101,116,101,32,111,110,32,119,114,111,110,103,32,103,114,97,112,104,0,95,65,71,95,112,101,110,100,105,110,103,0,97,103,114,101,99,111,114,100,95,99,97,108,108,98,97,99,107,32,111,102,32,97,32,98,97,100,32,111,98,106,101,99,116,0,112,101,110,100,32,100,105,99,116,111,102,32,97,32,98,97,100,32,111,98,106,101,99,116,0,109,111,118,101,32,116,111,32,102,114,111,110,116,32,108,111,99,107,32,105,110,99,111,110,115,105,115,116,101,110,99,121,0,92,92,0,102,97,116,97,108,32,102,108,101,120,32,115,99,97,110,110,101,114,32,105,110,116,101,114,110,97,108,32,101,114,114,111,114,45,45,110,111,32,97,99,116,105,111,110,32,102,111,117,110,100,0,37,115,10,0,102,97,116,97,108,32,102,108,101,120,32,115,99,97,110,110,101,114,32,105,110,116,101,114,110,97,108,32,101,114,114,111,114,45,45,101,110,100,32,111,102,32,98,117,102,102,101,114,32,109,105,115,115,101,100,0,102,97,116,97,108,32,101,114,114,111,114,32,45,32,115,99,97,110,110,101,114,32,105,110,112,117,116,32,98,117,102,102,101,114,32,111,118,101,114,102,108,111,119,0,111,117,116,32,111,102,32,100,121,110,97,109,105,99,32,109,101,109,111,114,121,32,105,110,32,97,97,103,95,103,101,116,95,110,101,120,116,95,98,117,102,102,101,114,40,41,0,105,110,112,117,116,0,115,121,110,116,97,120,32,97,109,98,105,103,117,105,116,121,32,45,32,98,97,100,108,121,32,100,101,108,105,109,105,116,101,100,32,110,117,109,98,101,114,32,39,0,39,32,105,110,32,108,105,110,101,32,37,100,32,111,102,32,0,32,115,112,108,105,116,115,32,105,110,116,111,32,116,119,111,32,116,111,107,101,110,115,10,0,37,115,0,108,105,110,101,0,37,100,32,37,49,91,34,93,37,110,0,111,117,116,32,111,102,32,100,121,110,97,109,105,99,32,109,101,109,111,114,121,32,105,110,32,97,97,103,95,99,114,101,97,116,101,95,98,117,102,102,101,114,40,41,0,111,117,116,32,111,102,32,100,121,110,97,109,105,99,32,109,101,109,111,114,121,32,105,110,32,97,97,103,101,110,115,117,114,101,95,98,117,102,102,101,114,95,115,116,97,99,107,40,41,0,58,32,0,32,105,110,32,108,105,110,101,32,37,100,0,32,110,101,97,114,32,39,0,32,115,99,97,110,110,105,110,103,32,97,32,113,117,111,116,101,100,32,115,116,114,105,110,103,32,40,109,105,115,115,105,110,103,32,101,110,100,113,117,111,116,101,63,32,108,111,110,103,101,114,32,116,104,97,110,32,37,100,63,41,0,10,83,116,114,105,110,103,32,115,116,97,114,116,105,110,103,58,34,0,32,115,99,97,110,110,105,110,103,32,97,32,72,84,77,76,32,115,116,114,105,110,103,32,40,109,105,115,115,105,110,103,32,39,62,39,63,32,98,97,100,32,110,101,115,116,105,110,103,63,32,108,111,110,103,101,114,32,116,104,97,110,32,37,100,63,41,0,10,83,116,114,105,110,103,32,115,116,97,114,116,105,110,103,58,60,0,32,115,99,97,110,110,105,110,103,32,97,32,47,42,46,46,46,42,47,32,99,111,109,109,101,110,116,32,40,109,105,115,115,105,110,103,32,39,42,47,63,32,108,111,110,103,101,114,32,116,104,97,110,32,37,100,63,41,0,102,108,101,120,32,115,99,97,110,110,101,114,32,112,117,115,104,45,98,97,99,107,32,111,118,101,114,102,108,111,119,0,34,34,0,115,116,114,105,99,116,0,108,105,110,101,108,101,110,103,116,104,0,59,10,0,32,91,107,101,121,61,0,93,0,32,91,0,44,10,0,61,0,95,37,108,100,95,83,85,83,80,69,67,84,0,100,105,0,115,116,114,105,99,116,32,0,123,10,0,93,59,10,0,18,238,238,20,9,3,238,254,238,238,238,1,238,238,238,1,238,238,10,254,238,19,25,21,238,19,1,238,238,238,238,11,17,238,238,238,238,238,238,238,238,238,1,238,238,22,9,1,1,29,15,23,238,238,26,23,27,238,238,28,238,238,238,238,1,25,251,238,238,238,1,238,16,238,238,30,238,238,238,238,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,23,17,2,2,2,2,2,2,2,2,2,2,2,2,2,18,16,2,19,2,2,22,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,20,2,21,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,14,2,15,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,3,4,5,6,7,8,9,10,11,12,13,11,3,4,5,15,7,3,12,13,6,12,13,14,12,13,26,21,22,0,1,0,3,7,14,6,15,8,12,13,18,19,42,16,17,9,16,47,48,17,50,23,19,13,20,18,46,18,20,65,19,50,19,44,64,42,66,25,44,66,70,34,12,13,14,35,15,9,16,17,10,16,17,201,16,17,45,69,70,252,1,6,246,15,7,246,36,2,16,17,47,48,54,77,78,40,38,59,60,42,54,49,57,61,63,47,58,64,216,68,48,62,37,55,67,53,75,43,56,73,76,0,3,9,0,0,0,1,14,2,11,12,8,35,36,37,54,59,61,0,13,16,18,27,22,28,18,39,50,34,23,51,30,60,6,7,53,5,15,17,20,24,41,0,19,41,0,0,0,0,0,55,21,40,29,30,0,33,38,52,31,48,62,25,44,0,27,0,32,26,42,0,43,58,46,47,0,49,56,57,45,0,2,2,1,0,3,3,1,0,1,0,1,1,1,0,2,1,1,0,2,2,3,1,1,0,0,5,0,1,3,1,3,5,3,1,1,1,1,2,0,1,0,4,2,0,2,1,1,3,2,1,0,3,2,1,0,1,1,0,1,1,1,3,0,24,25,25,25,26,27,28,28,29,29,30,30,31,31,32,32,33,33,34,34,35,36,36,38,39,37,37,40,40,41,41,41,42,42,43,43,43,44,44,45,45,46,47,47,48,49,49,50,51,52,54,53,55,55,55,56,56,56,57,57,58,58,238,238,255,238,238,238,238,238,238,31,32,238,0,239,238,238,238,12,238,238,238,8,13,238,238,238,248,238,238,238,238,238,238,245,238,255,3,8,4,33,5,11,18,19,39,20,21,22,41,50,65,23,24,25,26,44,51,52,66,71,72,27,74,28,29,46,30,79,31,32,107,101,121,0,97,116,116,114,105,98,117,116,101,32,109,97,99,114,111,115,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,37,115,58,37,115,0,67,111,117,108,100,32,110,111,116,32,111,112,101,110,32,34,37,115,34,32,102,111,114,32,119,114,105,116,105,110,103,32,58,32,37,115,10,0,78,111,32,108,105,98,122,32,115,117,112,112,111,114,116,46,10,0,46,37,100,0,110,111,110,97,109,101,46,103,118,0,103,118,119,114,105,116,101,95,110,111,95,122,32,112,114,111,98,108,101,109,32,37,100,10,0,109,101,109,111,114,121,32,97,108,108,111,99,97,116,105,111,110,32,102,97,105,108,117,114,101,10,0,78,111,32,108,105,98,122,32,115,117,112,112,111,114,116,10,0,103,118,112,114,105,110,116,102,58,32,37,115,10,0,45,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,46,57,57,0,103,114,97,112,104,118,105,122,0,50,46,52,48,46,49,0,50,48,49,54,49,50,50,53,46,48,51,48,52,0,114,101,110,100,101,114,0,100,101,118,105,99,101,0,108,111,97,100,105,109,97,103,101,0,100,121,110,97,109,105,99,32,108,111,97,100,105,110,103,32,110,111,116,32,97,118,97,105,108,97,98,108,101,10,0,85,115,105,110,103,32,37,115,58,32,37,115,58,37,115,10,0,103,118,117,115,101,114,115,104,97,112,101,46,99,0,103,118,117,115,101,114,115,104,97,112,101,95,102,105,110,100,0,103,118,117,115,101,114,115,104,97,112,101,95,102,105,108,101,95,97,99,99,101,115,115,0,70,105,108,101,110,97,109,101,32,34,37,115,34,32,105,115,32,117,110,115,97,102,101,10,0,37,115,32,119,104,105,108,101,32,111,112,101,110,105,110,103,32,37,115,10,0,117,115,45,62,102,0,103,118,117,115,101,114,115,104,97,112,101,95,111,112,101,110,0,34,37,115,34,32,119,97,115,32,110,111,116,32,102,111,117,110,100,32,97,115,32,97,32,102,105,108,101,32,111,114,32,97,115,32,97,32,115,104,97,112,101,32,108,105,98,114,97,114,121,32,109,101,109,98,101,114,10,0,47,77,101,100,105,97,66,111,120,0,40,91,97,45,122,93,91,97,45,122,65,45,90,93,42,41,61,34,40,91,94,34,93,42,41,34,0,99,97,110,110,111,116,32,99,111,109,112,105,108,101,32,114,101,103,117,108,97,114,32,101,120,112,114,101,115,115,105,111,110,32,37,115,0,37,108,102,37,50,115,0,112,116,0,118,105,101,119,66,111,120,0,37,108,102,32,37,108,102,32,37,108,102,32,37,108,102,0,105,110,0,112,120,0,112,99,0,34,0,99,109,0,109,109,0,37,37,66,111,117,110,100,105,110,103,66,111,120,58,0,1,208,209,210,211,212,213,214,215,216,217,0,60,115,118,103,0,87,69,66,80,0,119,101,98,112,0,40,108,105,98,41,0,137,80,78,71,13,10,26,10,0,112,110,103,0,37,33,80,83,45,65,100,111,98,101,45,0,66,77,0,98,109,112,0,71,73,70,56,0,103,105,102,0,255,216,255,224,0,106,112,101,103,0,37,80,68,70,45,0,112,100,102,0,197,208,211,198,0,101,112,115,0,60,63,120,109,108,0,120,109,108,0,82,73,70,70,0,114,105,102,102,0,0,0,1,0,0,105,99,111,0,37,100,32,37,100,32,37,100,32,37,100,0,76,97,121,111,117,116,32,119,97,115,32,110,111,116,32,100,111,110,101,10,0,102,97,105,108,117,114,101,32,109,97,108,108,111,99,39,105,110,103,32,102,111,114,32,114,101,115,117,108,116,32,115,116,114,105,110,103,0,103,99,58,32,79,117,116,32,111,102,32,109,101,109,111,114,121,10,0,95,99,99,95,0,111,114,105,103,0,111,112,0,99,99,111,109,112,115,46,99,0,109,97,112,67,108,117,115,116,0,99,99,103,114,97,112,104,105,110,102,111,0,99,99,103,110,111,100,101,105,110,102,111,0,40,37,52,108,100,41,32,37,55,108,100,32,110,111,100,101,115,32,37,55,108,100,32,101,100,103,101,115,10,0,32,32,32,32,32,32,32,37,55,100,32,110,111,100,101,115,32,37,55,100,32,101,100,103,101,115,32,37,55,108,100,32,99,111,109,112,111,110,101,110,116,115,32,37,115,10,0,100,103,0,69,114,114,111,114,58,32,110,111,100,101,32,34,37,115,34,32,98,101,108,111,110,103,115,32,116,111,32,116,119,111,32,110,111,110,45,110,101,115,116,101,100,32,99,108,117,115,116,101,114,115,32,34,37,115,34,32,97,110,100,32,34,37,115,34,10,0,115,111,114,116,118,0,114,111,119,32,109,97,106,111,114,0,99,111,108,117,109,110,32,109,97,106,111,114,0,97,114,114,97,121,32,112,97,99,107,105,110,103,58,32,37,115,32,37,100,32,114,111,119,115,32,37,100,32,99,111,108,117,109,110,115,10,0,98,98,91,37,115,93,32,37,46,53,103,32,37,46,53,103,32,37,46,53,103,32,37,46,53,103,10,0,115,116,101,112,32,115,105,122,101,32,61,32,37,100,10,0,112,111,115,91,37,100,93,32,37,100,32,37,100,10,0,99,99,32,40,37,100,32,99,101,108,108,115,41,32,97,116,32,40,37,100,44,37,100,41,32,40,37,100,44,37,100,41,10,0,99,99,32,40,37,100,32,99,101,108,108,115,41,32,97,116,32,40,37,100,44,37,100,41,10,0,37,115,32,110,111,46,32,99,101,108,108,115,32,37,100,32,87,32,37,100,32,72,32,37,100,10,0,32,32,37,100,32,37,100,32,99,101,108,108,10,0,108,105,98,112,97,99,107,58,32,100,105,115,99,32,61,32,37,102,32,40,32,60,32,48,41,10,0,80,97,99,107,105,110,103,58,32,99,111,109,112,117,116,101,32,103,114,105,100,32,115,105,122,101,10,0,97,32,37,102,32,98,32,37,102,32,99,32,37,102,32,100,32,37,102,32,114,32,37,102,10,0,114,111,111,116,32,37,100,32,40,37,102,41,32,37,100,32,40,37,102,41,10,0,32,114,49,32,37,102,32,114,50,32,37,102,10,0,112,105,110,102,111,0,112,97,99,107,46,99,0,103,101,116,80,97,99,107,73,110,102,111,0,32,32,109,97,114,103,105,110,32,37,100,10,0,112,97,99,107,109,111,100,101,0,112,97,114,115,101,80,97,99,107,77,111,100,101,73,110,102,111,0,97,114,114,97,121,0,97,115,112,101,99,116,0,37,102,0,112,97,99,107,32,105,110,102,111,58,10,0,32,32,109,111,100,101,32,32,32,37,115,10,0,32,32,97,115,112,101,99,116,32,37,102,10,0,32,32,115,105,122,101,32,32,32,37,100,10,0,32,32,102,108,97,103,115,32,32,37,100,10,0,117,110,100,101,102,105,110,101,100,0,112,97,99,107,0,65,114,114,111,119,32,116,121,112,101,32,34,37,115,34,32,117,110,107,110,111,119,110,32,45,32,105,103,110,111,114,105,110,103,10,0,110,111,114,109,97,108,0,99,114,111,119,0,116,101,101,0,100,111,116,0,105,110,118,0,118,101,101,0,112,101,110,0,109,112,116,121,0,99,117,114,118,101,0,105,99,117,114,118,101,0,108,0,104,97,108,102,0,105,110,118,101,109,112,116,121,0,95,98,97,99,107,103,114,111,117,110,100,0,95,100,114,97,119,95,0,67,111,117,108,100,32,110,111,116,32,112,97,114,115,101,32,34,95,98,97,99,107,103,114,111,117,110,100,34,32,97,116,116,114,105,98,117,116,101,32,105,110,32,103,114,97,112,104,32,37,115,10,0,32,32,34,37,115,34,10,0,110,111,32,109,101,109,111,114,121,32,102,114,111,109,32,122,109,97,108,108,111,99,40,41,10,0,111,98,106,0,101,109,105,116,46,99,0,112,111,112,95,111,98,106,95,115,116,97,116,101,0,99,108,117,115,116,0,37,108,100,0,112,97,103,101,37,100,44,37,100,95,0,84,111,116,97,108,32,115,105,122,101,32,62,32,49,32,105,110,32,34,37,115,34,32,99,111,108,111,114,32,115,112,101,99,32,0,73,108,108,101,103,97,108,32,108,101,110,103,116,104,32,118,97,108,117,101,32,105,110,32,34,37,115,34,32,99,111,108,111,114,32,97,116,116,114,105,98,117,116,101,32,0,108,110,114,99,111,108,111,114,115,99,104,101,109,101,0,101,109,105,116,95,101,100,103,101,95,108,97,98,101,108,0,37,115,45,37,115,0,102,111,114,119,97,114,100,0,98,97,99,107,0,32,45,62,32,0,32,45,45,32,0,105,110,32,101,100,103,101,32,37,115,37,115,37,115,10,0,108,97,98,101,108,97,108,105,103,110,101,100,0,101,100,103,101,104,114,101,102,0,101,100,103,101,85,82,76,0,108,97,98,101,108,104,114,101,102,0,108,97,98,101,108,85,82,76,0,116,97,105,108,104,114,101,102,0,116,97,105,108,85,82,76,0,104,101,97,100,104,114,101,102,0,104,101,97,100,85,82,76,0,101,100,103,101,116,97,114,103,101,116,0,108,97,98,101,108,116,97,114,103,101,116,0,116,97,105,108,116,97,114,103,101,116,0,104,101,97,100,116,97,114,103,101,116,0,101,100,103,101,116,111,111,108,116,105,112,0,108,97,98,101,108,116,111,111,108,116,105,112,0,116,97,105,108,116,111,111,108,116,105,112,0,104,101,97,100,116,111,111,108,116,105,112,0,1,110,101,115,116,105,110,103,32,110,111,116,32,97,108,108,111,119,101,100,32,105,110,32,115,116,121,108,101,58,32,37,115,10,0,117,110,109,97,116,99,104,101,100,32,39,41,39,32,105,110,32,115,116,121,108,101,58,32,37,115,10,0,116,114,117,110,99,97,116,105,110,103,32,115,116,121,108,101,32,39,37,115,39,10,0,117,110,109,97,116,99,104,101,100,32,39,40,39,32,105,110,32,115,116,121,108,101,58,32,37,115,10,0,97,108,108,0,105,110,32,99,108,117,115,116,101,114,32,37,115,10,0,77,111,114,101,32,116,104,97,110,32,50,32,99,111,108,111,114,115,32,115,112,101,99,105,102,105,101,100,32,102,111,114,32,97,32,103,114,97,100,105,101,110,116,32,45,32,105,103,110,111,114,105,110,103,32,114,101,109,97,105,110,105,110,103,10,0,103,114,97,100,105,101,110,116,32,112,101,110,32,99,111,108,111,114,115,32,110,111,116,32,121,101,116,32,115,117,112,112,111,114,116,101,100,46,10,0,73,109,97,103,101,115,32,117,110,115,117,112,112,111,114,116,101,100,32,105,110,32,34,98,97,99,107,103,114,111,117,110,100,34,32,97,116,116,114,105,98,117,116,101,10,0,108,97,121,101,114,115,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,105,110,32,37,115,32,111,117,116,112,117,116,10,0,76,97,121,111,117,116,32,119,97,115,32,110,111,116,32,100,111,110,101,46,32,32,77,105,115,115,105,110,103,32,108,97,121,111,117,116,32,112,108,117,103,105,110,115,63,32,10,0,103,118,82,101,110,100,101,114,74,111,98,115,32,37,115,58,32,37,46,50,102,32,115,101,99,115,46,10,0,108,97,121,111,117,116,32,119,97,115,32,110,111,116,32,100,111,110,101,10,0,114,101,110,100,101,114,101,114,32,102,111,114,32,37,115,32,105,115,32,117,110,97,118,97,105,108,97,98,108,101,10,0,112,97,103,101,100,105,114,61,37,115,32,105,103,110,111,114,101,100,10,0,118,105,101,119,112,111,114,116,0,37,108,102,44,37,108,102,44,37,108,102,44,39,37,91,94,39,93,39,0,37,108,102,44,37,108,102,44,37,108,102,44,37,91,94,44,93,37,115,0,37,108,102,44,37,108,102,44,37,108,102,44,37,108,102,44,37,108,102,0,111,117,116,112,117,116,111,114,100,101,114,0,111,100,101,115,102,105,114,115,116,0,100,103,101,115,102,105,114,115,116,0,108,97,121,101,114,115,0,108,97,121,101,114,115,101,108,101,99,116,0,84,104,101,32,108,97,121,101,114,115,101,108,101,99,116,32,97,116,116,114,105,98,117,116,101,32,34,37,115,34,32,100,111,101,115,32,110,111,116,32,109,97,116,99,104,32,97,110,121,32,108,97,121,101,114,32,115,112,101,99,105,102,101,100,32,98,121,32,116,104,101,32,108,97,121,101,114,115,32,97,116,116,114,105,98,117,116,101,32,45,32,105,103,110,111,114,101,100,46,10,0,108,97,121,101,114,115,101,112,0,58,9,32,0,108,97,121,101,114,108,105,115,116,115,101,112,0,44,0,84,104,101,32,99,104,97,114,97,99,116,101,114,32,39,37,99,39,32,97,112,112,101,97,114,115,32,105,110,32,98,111,116,104,32,116,104,101,32,108,97,121,101,114,115,101,112,32,97,110,100,32,108,97,121,101,114,108,105,115,116,115,101,112,32,97,116,116,114,105,98,117,116,101,115,32,45,32,108,97,121,101,114,108,105,115,116,115,101,112,32,105,103,110,111,114,101,100,46,10,0,112,97,100,0,66,76,0,112,97,103,101,100,105,114,0,115,111,108,105,100,0,0,115,101,116,108,105,110,101,119,105,100,116,104,0,49,0,0,115,112,108,45,62,115,105,122,101,32,62,32,48,0,105,110,105,116,95,115,112,108,105,110,101,115,95,98,98,0,98,122,46,115,105,122,101,32,62,32,48,0,98,101,122,105,101,114,95,98,98,0,98,122,46,115,105,122,101,32,37,32,51,32,61,61,32,49,0,37,108,102,0,102,111,110,116,112,97,116,104,0,68,79,84,70,79,78,84,80,65,84,72,0,71,68,70,79,78,84,80,65,84,72,0,105,109,97,103,101,112,97,116,104,0,113,117,97,110,116,117,109,0,114,97,110,107,100,105,114,0,76,82,0,66,84,0,82,76,0,110,111,100,101,115,101,112,0,114,97,110,107,115,101,112,0,101,113,117,97,108,108,121,0,115,104,111,119,98,111,120,101,115,0,102,111,110,116,110,97,109,101,115,0,115,105,122,101,0,112,97,103,101,0,99,101,110,116,101,114,0,114,111,116,97,116,101,0,111,114,105,101,110,116,97,116,105,111,110,0,108,97,110,100,115,99,97,112,101,0,99,108,117,115,116,101,114,114,97,110,107,0,99,111,110,99,101,110,116,114,97,116,101,0,100,112,105,0,114,101,115,111,108,117,116,105,111,110,0,111,114,100,101,114,105,110,103,0,102,105,108,108,99,111,108,111,114,0,102,111,110,116,115,105,122,101,0,102,111,110,116,110,97,109,101,0,102,111,110,116,99,111,108,111,114,0,120,108,97,98,101,108,0,112,101,110,119,105,100,116,104,0,112,101,114,105,112,104,101,114,105,101,115,0,115,107,101,119,0,100,105,115,116,111,114,116,105,111,110,0,110,111,106,117,115,116,105,102,121,0,108,97,121,101,114,0,103,114,111,117,112,0,99,111,109,109,101,110,116,0,118,101,114,116,105,99,101,115,0,122,0,119,101,105,103,104,116,0,108,97,98,101,108,102,108,111,97,116,0,100,105,114,0,97,114,114,111,119,104,101,97,100,0,97,114,114,111,119,116,97,105,108,0,104,101,97,100,108,97,98,101,108,0,116,97,105,108,108,97,98,101,108,0,108,97,98,101,108,102,111,110,116,115,105,122,101,0,108,97,98,101,108,102,111,110,116,110,97,109,101,0,108,97,98,101,108,102,111,110,116,99,111,108,111,114,0,108,97,98,101,108,100,105,115,116,97,110,99,101,0,108,97,98,101,108,97,110,103,108,101,0,109,105,110,108,101,110,0,100,101,99,111,114,97,116,101,0,97,114,114,111,119,115,105,122,101,0,99,111,110,115,116,114,97,105,110,116,0,116,97,105,108,99,108,105,112,0,104,101,97,100,99,108,105,112,0,108,97,98,101,108,106,117,115,116,0,108,111,99,97,108,0,103,108,111,98,97,108,0,37,108,102,44,37,108,102,37,99,0,37,108,102,37,99,0,114,97,116,105,111,0,97,117,116,111,0,99,111,109,112,114,101,115,115,0,101,120,112,97,110,100,0,102,105,108,108,0,103,100,0,112,115,0,115,118,103,0,99,104,97,114,115,101,116,0,117,116,102,45,56,0,108,97,116,105,110,45,49,0,108,97,116,105,110,49,0,108,49,0,73,83,79,45,56,56,53,57,45,49,0,73,83,79,95,56,56,53,57,45,49,0,73,83,79,56,56,53,57,45,49,0,73,83,79,45,73,82,45,49,48,48,0,98,105,103,45,53,0,98,105,103,53,0,117,116,102,56,0,85,110,115,117,112,112,111,114,116,101,100,32,99,104,97,114,115,101,116,32,34,37,115,34,32,45,32,97,115,115,117,109,105,110,103,32,117,116,102,45,56,10,0,85,110,115,117,112,112,111,114,116,101,100,32,99,104,97,114,115,101,116,32,118,97,108,117,101,32,37,100,10,0,85,84,70,45,56,0,66,73,71,45,53,0,105,110,32,108,97,98,101,108,32,111,102,32,103,114,97,112,104,32,37,115,10,0,105,110,32,108,97,98,101,108,32,111,102,32,110,111,100,101,32,37,115,10,0,105,110,32,108,97,98,101,108,32,111,102,32,101,100,103,101,32,37,115,32,37,115,32,37,115,10,0,107,105,110,100,32,61,61,32,76,84,95,78,79,78,69,0,108,97,98,101,108,115,46,99,0,109,97,107,101,95,108,97,98,101,108,0,92,76,0,92,71,0,92,69,0,92,72,0,92,84,0,38,35,49,51,59,0,38,113,117,111,116,59,0,38,35,49,48,59,0,38,35,49,54,48,59,0,38],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+92184);allocate([97,109,112,59,0,38,103,116,59,0,38,35,51,57,59,0,38,35,52,53,59,0,38,108,116,59,0,37,115,32,37,100,32,110,111,100,101,115,32,37,100,32,101,100,103,101,115,32,109,97,120,105,116,101,114,61,37,100,32,98,97,108,97,110,99,101,61,37,100,10,0,110,101,116,119,111,114,107,32,115,105,109,112,108,101,120,58,32,0,37,100,32,0,37,115,37,100,32,110,111,100,101,115,32,37,100,32,101,100,103,101,115,32,37,100,32,105,116,101,114,32,37,46,50,102,32,115,101,99,10,0,117,112,100,97,116,101,58,32,109,105,115,109,97,116,99,104,101,100,32,108,99,97,32,105,110,32,116,114,101,101,117,112,100,97,116,101,115,10,0,84,114,101,101,95,101,100,103,101,46,115,105,122,101,32,61,61,32,78,95,110,111,100,101,115,32,45,32,49,0,110,115,46,99,0,102,101,97,115,105,98,108,101,95,116,114,101,101,0,33,84,82,69,69,95,69,68,71,69,40,101,41,0,109,101,114,103,101,95,116,114,101,101,115,0,40,114,48,45,62,104,101,97,112,95,105,110,100,101,120,32,62,32,45,49,41,32,124,124,32,40,114,49,45,62,104,101,97,112,95,105,110,100,101,120,32,62,32,45,49,41,0,83,84,115,101,116,85,110,105,111,110,0,114,45,62,104,101,97,112,95,105,110,100,101,120,32,62,61,32,48,0,97,100,100,95,116,114,101,101,95,101,100,103,101,58,32,109,105,115,115,105,110,103,32,116,114,101,101,32,101,100,103,101,10,0,97,100,100,95,116,114,101,101,95,101,100,103,101,58,32,101,109,112,116,121,32,111,117,116,101,100,103,101,32,108,105,115,116,10,0,97,100,100,95,116,114,101,101,95,101,100,103,101,58,32,101,109,112,116,121,32,105,110,101,100,103,101,32,108,105,115,116,10,0,116,114,111,117,98,108,101,32,105,110,32,105,110,105,116,95,114,97,110,107,10,0,9,37,115,32,37,100,10,0,115,101,97,114,99,104,115,105,122,101,0,103,114,97,112,104,32,0,32,0,110,111,100,101,32,0,115,116,111,112,10,0,37,46,53,103,0,112,111,115,0,114,101,99,116,115,0,120,108,112,0,108,112,0,104,101,97,100,95,108,112,0,116,97,105,108,95,108,112,0,108,119,105,100,116,104,0,108,104,101,105,103,104,116,0,98,98,0,37,46,53,103,44,37,46,53,103,44,37,46,53,103,0,44,37,46,53,103,0,37,46,53,103,44,37,46,53,103,0,115,97,109,112,108,101,112,111,105,110,116,115,0,37,46,53,103,32,37,46,53,103,0,115,44,37,46,53,103,44,37,46,53,103,32,0,101,44,37,46,53,103,44,37,46,53,103,32,0,37,46,53,103,44,37,46,53,103,44,37,46,53,103,44,37,46,53,103,0,37,46,50,102,0,37,46,53,103,44,37,46,53,103,44,37,46,53,103,44,37,46,53,103,32,0,47,112,97,116,104,98,111,120,32,123,10,32,32,32,32,47,88,32,101,120,99,104,32,110,101,103,32,37,46,53,103,32,115,117,98,32,100,101,102,10,32,32,32,32,47,89,32,101,120,99,104,32,37,46,53,103,32,115,117,98,32,100,101,102,10,32,32,32,32,47,120,32,101,120,99,104,32,110,101,103,32,37,46,53,103,32,115,117,98,32,100,101,102,10,32,32,32,32,47,121,32,101,120,99,104,32,37,46,53,103,32,115,117,98,32,100,101,102,10,32,32,32,32,110,101,119,112,97,116,104,32,120,32,121,32,109,111,118,101,116,111,10,32,32,32,32,88,32,121,32,108,105,110,101,116,111,10,32,32,32,32,88,32,89,32,108,105,110,101,116,111,10,32,32,32,32,120,32,89,32,108,105,110,101,116,111,10,32,32,32,32,99,108,111,115,101,112,97,116,104,32,115,116,114,111,107,101,10,125,32,100,101,102,10,0,47,112,97,116,104,98,111,120,32,123,10,32,32,32,32,47,89,32,101,120,99,104,32,37,46,53,103,32,115,117,98,32,100,101,102,10,32,32,32,32,47,88,32,101,120,99,104,32,37,46,53,103,32,115,117,98,32,100,101,102,10,32,32,32,32,47,121,32,101,120,99,104,32,37,46,53,103,32,115,117,98,32,100,101,102,10,32,32,32,32,47,120,32,101,120,99,104,32,37,46,53,103,32,115,117,98,32,100,101,102,10,32,32,32,32,110,101,119,112,97,116,104,32,120,32,121,32,109,111,118,101,116,111,10,32,32,32,32,88,32,121,32,108,105,110,101,116,111,10,32,32,32,32,88,32,89,32,108,105,110,101,116,111,10,32,32,32,32,120,32,89,32,108,105,110,101,116,111,10,32,32,32,32,99,108,111,115,101,112,97,116,104,32,115,116,114,111,107,101,10,32,125,32,100,101,102,10,47,100,98,103,115,116,97,114,116,32,123,32,103,115,97,118,101,32,37,46,53,103,32,37,46,53,103,32,116,114,97,110,115,108,97,116,101,32,125,32,100,101,102,10,47,97,114,114,111,119,108,101,110,103,116,104,32,49,48,32,100,101,102,10,47,97,114,114,111,119,119,105,100,116,104,32,97,114,114,111,119,108,101,110,103,116,104,32,50,32,100,105,118,32,100,101,102,10,47,97,114,114,111,119,104,101,97,100,32,123,10,32,32,32,32,103,115,97,118,101,10,32,32,32,32,114,111,116,97,116,101,10,32,32,32,32,99,117,114,114,101,110,116,112,111,105,110,116,10,32,32,32,32,110,101,119,112,97,116,104,10,32,32,32,32,109,111,118,101,116,111,10,32,32,32,32,97,114,114,111,119,108,101,110,103,116,104,32,97,114,114,111,119,119,105,100,116,104,32,50,32,100,105,118,32,114,108,105,110,101,116,111,10,32,32,32,32,48,32,97,114,114,111,119,119,105,100,116,104,32,110,101,103,32,114,108,105,110,101,116,111,10,32,32,32,32,99,108,111,115,101,112,97,116,104,32,102,105,108,108,10,32,32,32,32,103,114,101,115,116,111,114,101,10,125,32,98,105,110,100,32,100,101,102,10,47,109,97,107,101,97,114,114,111,119,32,123,10,32,32,32,32,99,117,114,114,101,110,116,112,111,105,110,116,32,101,120,99,104,32,112,111,112,32,115,117,98,32,101,120,99,104,32,99,117,114,114,101,110,116,112,111,105,110,116,32,112,111,112,32,115,117,98,32,97,116,97,110,10,32,32,32,32,97,114,114,111,119,104,101,97,100,10,125,32,98,105,110,100,32,100,101,102,10,47,112,111,105,110,116,32,123,32,32,32,32,110,101,119,112,97,116,104,32,32,32,32,50,32,48,32,51,54,48,32,97,114,99,32,102,105,108,108,125,32,100,101,102,47,109,97,107,101,118,101,99,32,123,10,32,32,32,32,47,89,32,101,120,99,104,32,100,101,102,10,32,32,32,32,47,88,32,101,120,99,104,32,100,101,102,10,32,32,32,32,47,121,32,101,120,99,104,32,100,101,102,10,32,32,32,32,47,120,32,101,120,99,104,32,100,101,102,10,32,32,32,32,110,101,119,112,97,116,104,32,120,32,121,32,109,111,118,101,116,111,10,32,32,32,32,88,32,89,32,108,105,110,101,116,111,32,115,116,114,111,107,101,10,32,32,32,32,88,32,89,32,109,111,118,101,116,111,10,32,32,32,32,120,32,121,32,109,97,107,101,97,114,114,111,119,10,125,32,100,101,102,10,0,108,111,115,116,32,37,115,32,37,115,32,101,100,103,101,10,0,110,111,32,112,111,115,105,116,105,111,110,32,102,111,114,32,101,100,103,101,32,119,105,116,104,32,108,97,98,101,108,32,37,115,0,110,111,32,112,111,115,105,116,105,111,110,32,102,111,114,32,101,100,103,101,32,119,105,116,104,32,116,97,105,108,32,108,97,98,101,108,32,37,115,0,110,111,32,112,111,115,105,116,105,111,110,32,102,111,114,32,101,100,103,101,32,119,105,116,104,32,104,101,97,100,32,108,97,98,101,108,32,37,115,0,110,111,32,112,111,115,105,116,105,111,110,32,102,111,114,32,101,100,103,101,32,119,105,116,104,32,120,108,97,98,101,108,32,37,115,0,102,111,114,99,101,108,97,98,101,108,115,0,37,100,32,111,117,116,32,111,102,32,37,100,32,108,97,98,101,108,115,32,112,111,115,105,116,105,111,110,101,100,46,10,0,37,100,32,111,117,116,32,111,102,32,37,100,32,101,120,116,101,114,105,111,114,32,108,97,98,101,108,115,32,112,111,115,105,116,105,111,110,101,100,46,10,0,37,100,32,111,98,106,115,32,37,100,32,120,108,97,98,101,108,115,32,102,111,114,99,101,61,37,100,32,98,98,61,40,37,46,48,50,102,44,37,46,48,50,102,41,32,40,37,46,48,50,102,44,37,46,48,50,102,41,10,0,111,98,106,101,99,116,115,10,0,32,91,37,100,93,32,40,37,46,48,50,102,44,37,46,48,50,102,41,32,40,37,46,48,50,102,44,37,46,48,50,102,41,32,37,112,32,34,37,115,34,10,0,120,108,97,98,101,108,115,10,0,32,91,37,100,93,32,37,112,32,115,101,116,32,37,100,32,40,37,46,48,50,102,44,37,46,48,50,102,41,32,40,37,46,48,50,102,44,37,46,48,50,102,41,32,37,115,10,0,115,104,97,112,101,102,105,108,101,32,110,111,116,32,115,101,116,32,111,114,32,110,111,116,32,102,111,117,110,100,32,102,111,114,32,101,112,115,102,32,110,111,100,101,32,37,115,10,0,99,111,117,108,100,110,39,116,32,111,112,101,110,32,101,112,115,102,32,102,105,108,101,32,37,115,10,0,37,37,37,37,66,111,117,110,100,105,110,103,66,111,120,58,32,37,100,32,37,100,32,37,100,32,37,100,0,114,101,97,100,0,66,111,117,110,100,105,110,103,66,111,120,32,110,111,116,32,102,111,117,110,100,32,105,110,32,101,112,115,102,32,102,105,108,101,32,37,115,10,0,99,97,110,39,116,32,102,105,110,100,32,108,105,98,114,97,114,121,32,102,105,108,101,32,37,115,10,0,99,97,110,39,116,32,111,112,101,110,32,108,105,98,114,97,114,121,32,102,105,108,101,32,37,115,10,0,69,79,70,0,66,69,71,73,78,0,69,78,68,0,84,82,65,73,76,69,82,0,47,117,115,101,114,95,115,104,97,112,101,95,37,100,32,123,10,0,37,37,66,101,103,105,110,68,111,99,117,109,101,110,116,58,10,0,37,37,69,110,100,68,111,99,117,109,101,110,116,10,0,125,32,98,105,110,100,32,100,101,102,10,0,85,84,70,45,56,32,105,110,112,117,116,32,117,115,101,115,32,110,111,110,45,76,97,116,105,110,49,32,99,104,97,114,97,99,116,101,114,115,32,119,104,105,99,104,32,99,97,110,110,111,116,32,98,101,32,104,97,110,100,108,101,100,32,98,121,32,116,104,105,115,32,80,111,115,116,83,99,114,105,112,116,32,100,114,105,118,101,114,10,0,99,97,110,110,111,116,32,114,101,45,97,108,108,111,99,97,116,101,32,112,115,10,0,114,111,117,116,101,115,112,108,105,110,101,115,105,110,105,116,58,32,99,97,110,110,111,116,32,97,108,108,111,99,97,116,101,32,112,115,10,0,114,111,117,116,101,115,112,108,105,110,101,115,58,32,37,100,32,101,100,103,101,115,44,32,37,100,32,98,111,120,101,115,32,37,46,50,102,32,115,101,99,10,0,105,110,32,114,111,117,116,101,115,112,108,105,110,101,115,44,32,99,97,110,110,111,116,32,102,105,110,100,32,78,79,82,77,65,76,32,101,100,103,101,10,0,105,110,32,114,111,117,116,101,115,112,108,105,110,101,115,44,32,105,108,108,101,103,97,108,32,118,97,108,117,101,115,32,111,102,32,112,114,101,118,32,37,100,32,97,110,100,32,110,101,120,116,32,37,100,44,32,108,105,110,101,32,37,100,10,0,105,110,32,114,111,117,116,101,115,112,108,105,110,101,115,44,32,101,100,103,101,32,105,115,32,97,32,108,111,111,112,32,97,116,32,37,115,10,0,105,110,32,114,111,117,116,101,115,112,108,105,110,101,115,44,32,80,115,104,111,114,116,101,115,116,112,97,116,104,32,102,97,105,108,101,100,10,0,105,110,32,114,111,117,116,101,115,112,108,105,110,101,115,44,32,80,114,111,117,116,101,115,112,108,105,110,101,32,102,97,105,108,101,100,10,0,85,110,97,98,108,101,32,116,111,32,114,101,99,108,97,105,109,32,98,111,120,32,115,112,97,99,101,32,105,110,32,115,112,108,105,110,101,32,114,111,117,116,105,110,103,32,102,111,114,32,101,100,103,101,32,34,37,115,34,32,45,62,32,34,37,115,34,46,32,83,111,109,101,116,104,105,110,103,32,105,115,32,112,114,111,98,97,98,108,121,32,115,101,114,105,111,117,115,108,121,32,119,114,111,110,103,46,10,0,105,110,32,99,104,101,99,107,112,97,116,104,44,32,98,111,120,32,48,32,104,97,115,32,76,76,32,99,111,111,114,100,32,62,32,85,82,32,99,111,111,114,100,10,0,105,110,32,99,104,101,99,107,112,97,116,104,44,32,98,111,120,32,37,100,32,104,97,115,32,76,76,32,99,111,111,114,100,32,62,32,85,82,32,99,111,111,114,100,10,0,105,110,32,99,104,101,99,107,112,97,116,104,44,32,98,111,120,101,115,32,37,100,32,97,110,100,32,37,100,32,100,111,110,39,116,32,116,111,117,99,104,10,0,105,110,32,99,104,101,99,107,112,97,116,104,44,32,115,116,97,114,116,32,112,111,114,116,32,110,111,116,32,105,110,32,102,105,114,115,116,32,98,111,120,10,0,105,110,32,99,104,101,99,107,112,97,116,104,44,32,101,110,100,32,112,111,114,116,32,110,111,116,32,105,110,32,108,97,115,116,32,98,111,120,10,0,37,100,32,98,111,120,101,115,58,10,0,37,100,32,40,37,46,53,103,44,32,37,46,53,103,41,44,32,40,37,46,53,103,44,32,37,46,53,103,41,10,0,99,111,110,115,116,114,97,105,110,101,100,0,110,111,116,32,99,111,110,115,116,114,97,105,110,101,100,0,115,116,97,114,116,32,112,111,114,116,58,32,40,37,46,53,103,44,32,37,46,53,103,41,44,32,116,97,110,103,101,110,116,32,97,110,103,108,101,58,32,37,46,53,103,44,32,37,115,10,0,101,110,100,32,112,111,114,116,58,32,40,37,46,53,103,44,32,37,46,53,103,41,44,32,116,97,110,103,101,110,116,32,97,110,103,108,101,58,32,37,46,53,103,44,32,37,115,10,0,115,105,100,101,115,32,61,61,32,52,0,115,104,97,112,101,115,46,99,0,114,111,117,110,100,95,99,111,114,110,101,114,115,0,98,97,100,32,108,97,98,101,108,32,102,111,114,109,97,116,32,37,115,10,0,92,78,0,109,97,114,103,105,110,0,37,108,102,44,37,108,102,0,114,101,103,117,108,97,114,0,99,117,115,116,111,109,0,115,104,97,112,101,102,105,108,101,0,60,110,105,108,62,0,78,111,32,111,114,32,105,109,112,114,111,112,101,114,32,115,104,97,112,101,102,105,108,101,61,34,37,115,34,32,102,111,114,32,110,111,100,101,32,34,37,115,34,10,0,78,111,32,111,114,32,105,109,112,114,111,112,101,114,32,105,109,97,103,101,61,34,37,115,34,32,102,111,114,32,110,111,100,101,32,34,37,115,34,10,0,108,97,98,101,108,108,111,99,0,110,111,100,101,32,39,37,115,39,44,32,103,114,97,112,104,32,39,37,115,39,32,115,105,122,101,32,116,111,111,32,115,109,97,108,108,32,102,111,114,32,108,97,98,101,108,10,0,101,112,115,102,0,117,115,105,110,103,32,37,115,32,102,111,114,32,117,110,107,110,111,119,110,32,115,104,97,112,101,32,37,115,10,0,112,111,108,121,103,111,110,0,111,118,97,108,0,99,105,114,99,108,101,0,112,111,105,110,116,0,101,103,103,0,116,114,105,97,110,103,108,101,0,112,108,97,105,110,116,101,120,116,0,112,108,97,105,110,0,100,105,97,109,111,110,100,0,116,114,97,112,101,122,105,117,109,0,112,97,114,97,108,108,101,108,111,103,114,97,109,0,104,111,117,115,101,0,112,101,110,116,97,103,111,110,0,104,101,120,97,103,111,110,0,115,101,112,116,97,103,111,110,0,111,99,116,97,103,111,110,0,110,111,116,101,0,116,97,98,0,102,111,108,100,101,114,0,98,111,120,51,100,0,99,111,109,112,111,110,101,110,116,0,99,121,108,105,110,100,101,114,0,114,101,99,116,0,114,101,99,116,97,110,103,108,101,0,115,113,117,97,114,101,0,100,111,117,98,108,101,99,105,114,99,108,101,0,100,111,117,98,108,101,111,99,116,97,103,111,110,0,116,114,105,112,108,101,111,99,116,97,103,111,110,0,105,110,118,116,114,105,97,110,103,108,101,0,105,110,118,116,114,97,112,101,122,105,117,109,0,105,110,118,104,111,117,115,101,0,117,110,100,101,114,108,105,110,101,0,77,100,105,97,109,111,110,100,0,77,115,113,117,97,114,101,0,77,99,105,114,99,108,101,0,112,114,111,109,111,116,101,114,0,99,100,115,0,116,101,114,109,105,110,97,116,111,114,0,117,116,114,0,105,110,115,117,108,97,116,111,114,0,114,105,98,111,115,105,116,101,0,114,110,97,115,116,97,98,0,112,114,111,116,101,97,115,101,115,105,116,101,0,112,114,111,116,101,105,110,115,116,97,98,0,112,114,105,109,101,114,115,105,116,101,0,114,101,115,116,114,105,99,116,105,111,110,115,105,116,101,0,102,105,118,101,112,111,118,101,114,104,97,110,103,0,116,104,114,101,101,112,111,118,101,114,104,97,110,103,0,110,111,118,101,114,104,97,110,103,0,97,115,115,101,109,98,108,121,0,115,105,103,110,97,116,117,114,101,0,114,112,114,111,109,111,116,101,114,0,108,97,114,114,111,119,0,114,97,114,114,111,119,0,108,112,114,111,109,111,116,101,114,0,114,101,99,111,114,100,0,77,114,101,99,111,114,100,0,115,116,97,114,0,35,56,48,56,48,56,48,0,35,102,99,102,99,102,99,0,35,51,48,51,48,51,48,0,35,101,56,101,56,101,56,0,35,101,48,101,48,101,48,0,35,102,48,102,48,102,48,0,35,49,48,49,48,49,48,0,35,102,56,102,56,102,56,0,105,110,32,110,111,100,101,32,37,115,10,0,114,111,117,110,100,101,100,0,100,105,97,103,111,110,97,108,115,0,114,97,100,105,97,108,0,115,116,114,105,112,101,100,0,119,101,100,103,101,100,0,95,0,110,111,100,101,32,37,115,44,32,112,111,114,116,32,37,115,44,32,117,110,114,101,99,111,103,110,105,122,101,100,32,99,111,109,112,97,115,115,32,112,111,105,110,116,32,39,37,115,39,32,45,32,105,103,110,111,114,101,100,10,0,110,111,100,101,32,37,115,44,32,112,111,114,116,32,37,115,32,117,110,114,101,99,111,103,110,105,122,101,100,10,0,37,46,53,103,32,37,46,53,103,32,116,114,97,110,115,108,97,116,101,32,110,101,119,112,97,116,104,32,117,115,101,114,95,115,104,97,112,101,95,37,100,10,0,105,110,118,105,115,0,0,102,105,108,108,101,100,0,0,115,0,101,0,119,0,115,112,108,105,110,101,115,46,99,0,98,101,103,105,110,112,97,116,104,0,80,45,62,101,110,100,46,116,104,101,116,97,32,60,32,50,32,42,32,77,95,80,73,0,101,110,100,112,97,116,104,0,109,97,107,101,83,101,108,102,69,100,103,101,0,103,101,116,115,112,108,105,110,101,112,111,105,110,116,115,58,32,110,111,32,115,112,108,105,110,101,32,112,111,105,110,116,115,32,97,118,97,105,108,97,98,108,101,32,102,111,114,32,101,100,103,101,32,40,37,115,44,37,115,41,10,0,112,111,108,121,108,105,110,101,77,105,100,112,111,105,110,116,0,115,112,97,110,45,62,102,111,110,116,0,116,101,120,116,115,112,97,110,46,99,0,116,101,120,116,115,112,97,110,95,115,105,122,101,0,102,111,110,116,45,62,110,97,109,101,0,102,111,110,116,110,97,109,101,58,32,34,37,115,34,32,114,101,115,111,108,118,101,100,32,116,111,58,32,37,115,10,0,102,111,110,116,110,97,109,101,58,32,117,110,97,98,108,101,32,116,111,32,114,101,115,111,108,118,101,32,34,37,115,34,10,0,99,111,117,114,0,97,114,105,97,108,0,104,101,108,118,101,116,105,99,97,0,91,105,110,116,101,114,110,97,108,32,116,105,109,101,115,93,0,91,105,110,116,101,114,110,97,108,32,99,111,117,114,105,101,114,93,0,91,105,110,116,101,114,110,97,108,32,97,114,105,97,108,93,0,65,118,97,110,116,71,97,114,100,101,45,66,111,111,107,0,85,82,87,32,71,111,116,104,105,99,32,76,0,98,111,111,107,0,115,97,110,115,45,83,101,114,105,102,0,65,118,97,110,116,71,97,114,100,101,45,66,111,111,107,79,98,108,105,113,117,101,0,111,98,108,105,113,117,101,0,105,116,97,108,105,99,0,65,118,97,110,116,71,97,114,100,101,45,68,101,109,105,0,100,101,109,105,0,65,118,97,110,116,71,97,114,100,101,45,68,101,109,105,79,98,108,105,113,117,101,0,66,111,111,107,109,97,110,45,68,101,109,105,0,85,82,87,32,66,111,111,107,109,97,110,32,76,0,115,101,114,105,102,0,66,111,111,107,109,97,110,45,68,101,109,105,73,116,97,108,105,99,0,66,111,111,107,109,97,110,45,76,105,103,104,116,0,108,105,103,104,116,0,66,111,111,107,109,97,110,45,76,105,103,104,116,73,116,97,108,105,99,0,67,111,117,114,105,101,114,0,109,111,110,111,115,112,97,99,101,0,67,111,117,114,105,101,114,45,66,111,108,100,0,67,111,117,114,105,101,114,45,66,111,108,100,79,98,108,105,113,117,101,0,67,111,117,114,105,101,114,45,79,98,108,105,113,117,101,0,72,101,108,118,101,116,105,99,97,0,72,101,108,118,101,116,105,99,97,45,66,111,108,100,0,72,101,108,118,101,116,105,99,97,45,66,111,108,100,79,98,108,105,113,117,101,0,72,101,108,118,101,116,105,99,97,45,78,97,114,114,111,119,0,99,111,110,100,101,110,115,101,100,0,72,101,108,118,101,116,105,99,97,45,78,97,114,114,111,119,45,66,111,108,100,0,72,101,108,118,101,116,105,99,97,45,78,97,114,114,111,119,45,66,111,108,100,79,98,108,105,113,117,101,0,72,101,108,118,101,116,105,99,97,45,78,97,114,114,111,119,45,79,98,108,105,113,117,101,0,72,101,108,118,101,116,105,99,97,45,79,98,108,105,113,117,101,0,78,101,119,67,101,110,116,117,114,121,83,99,104,108,98,107,45,66,111,108,100,0,67,101,110,116,117,114,121,32,83,99,104,111,111,108,98,111,111,107,32,76,0,78,101,119,67,101,110,116,117,114,121,83,99,104,108,98,107,45,66,111,108,100,73,116,97,108,105,99,0,78,101,119,67,101,110,116,117,114,121,83,99,104,108,98,107,45,73,116,97,108,105,99,0,78,101,119,67,101,110,116,117,114,121,83,99,104,108,98,107,45,82,111,109,97,110,0,114,111,109,97,110,0,80,97,108,97,116,105,110,111,45,66,111,108,100,0,80,97,108,97,116,105,110,111,32,76,105,110,111,116,121,112,101,0,80,97,108,97,116,105,110,111,45,66,111,108,100,73,116,97,108,105,99,0,80,97,108,97,116,105,110,111,45,73,116,97,108,105,99,0,80,97,108,97,116,105,110,111,45,82,111,109,97,110,0,83,121,109,98,111,108,0,102,97,110,116,97,115,121,0,84,105,109,101,115,45,66,111,108,100,0,84,105,109,101,115,0,84,105,109,101,115,45,66,111,108,100,73,116,97,108,105,99,0,84,105,109,101,115,45,73,116,97,108,105,99,0,90,97,112,102,67,104,97,110,99,101,114,121,45,77,101,100,105,117,109,73,116,97,108,105,99,0,85,82,87,32,67,104,97,110,99,101,114,121,32,76,0,109,101,100,105,117,109,0,90,97,112,102,68,105,110,103,98,97,116,115,0,68,105,110,103,98,97,116,115,0,105,110,112,117,116,115,99,97,108,101,0,110,111,0,116,114,117,101,0,121,101,115,0,117,116,105,108,115,46,99,0,117,32,61,61,32,85,70,95,102,105,110,100,40,117,41,0,85,70,95,115,101,116,110,97,109,101,0,1,102,105,108,101,32,108,111,97,100,105,110,103,32,105,115,32,100,105,115,97,98,108,101,100,32,98,101,99,97,117,115,101,32,116,104,101,32,101,110,118,105,114,111,110,109,101,110,116,32,99,111,110,116,97,105,110,115,32,83,69,82,86,69,82,95,78,65,77,69,61,34,37,115,34,10,97,110,100,32,116,104,101,32,71,86,95,70,73,76,69,95,80,65,84,72,32,118,97,114,105,97,98,108,101,32,105,115,32,117,110,115,101,116,32,111,114,32,101,109,112,116,121,46,10,0,80,97,116,104,32,112,114,111,118,105,100,101,100,32,116,111,32,102,105,108,101,58,32,34,37,115,34,32,104,97,115,32,98,101,101,110,32,105,103,110,111,114,101,100,32,98,101,99,97,117,115,101,32,102,105,108,101,115,32,97,114,101,32,111,110,108,121,32,112,101,114,109,105,116,116,101,100,32,116,111,32,98,101,32,108,111,97,100,101,100,32,102,114,111,109,32,116,104,101,32,100,105,114,101,99,116,111,114,105,101,115,32,105,110,32,34,37,115,34,32,119,104,101,110,32,114,117,110,110,105,110,103,32,105,110,32,97,110,32,104,116,116,112,32,115,101,114,118,101,114,46,10,0,37,115,37,115,37,115,0,47,0,58,0,101,108,108,105,112,115,101,0,84,105,109,101,115,45,82,111,109,97,110,0,99,108,117,115,116,101,114,0,95,95,99,108,117,115,116,101,114,110,111,100,101,115,0,99,108,117,115,116,101,114,32,99,121,99,108,101,32,37,115,32,45,45,32,37,115,32,110,111,116,32,115,117,112,112,111,114,116,101,100,10,0,116,97,105,108,32,99,108,117,115,116,101,114,32,37,115,32,105,110,115,105,100,101,32,104,101,97,100,32,99,108,117,115,116,101,114,32,37,115,10,0,104,101,97,100,32,99,108,117,115,116,101,114,32,37,115,32,105,110,115,105,100,101,32,116,97,105,108,32,99,108,117,115,116,101,114,32,37,115,10,0,116,97,105,108,32,110,111,100,101,32,37,115,32,105,110,115,105,100,101,32,104,101,97,100,32,99,108,117,115,116,101,114,32,37,115,10,0,104,101,97,100,32,110,111,100,101,32,37,115,32,105,110,115,105,100,101,32,116,97,105,108,32,99,108,117,115,116,101,114,32,37,115,10,0,95,95,0,108,97,98,101,108,0,115,104,97,112,101,0,98,111,120,0,84,119,111,32,99,108,117,115,116,101,114,115,32,110,97,109,101,100,32,37,115,32,45,32,116,104,101,32,115,101,99,111,110,100,32,119,105,108,108,32,98,101,32,105,103,110,111,114,101,100,10,0,109,97,112,78,0,65,69,108,105,103,0,65,97,99,117,116,101,0,65,99,105,114,99,0,65,103,114,97,118,101,0,65,108,112,104,97,0,65,114,105,110,103,0,65,116,105,108,100,101,0,65,117,109,108,0,66,101,116,97,0,67,99,101,100,105,108,0,67,104,105,0,68,97,103,103,101,114,0,68,101,108,116,97,0,69,84,72,0,69,97,99,117,116,101,0,69,99,105,114,99,0,69,103,114,97,118,101,0,69,112,115,105,108,111,110,0,69,116,97,0,69,117,109,108,0,71,97,109,109,97,0,73,97,99,117,116,101,0,73,99,105,114,99,0,73,103,114,97,118,101,0,73,111,116,97,0,73,117,109,108,0,75,97,112,112,97,0,76,97,109,98,100,97,0,77,117,0,78,116,105,108,100,101,0,78,117,0,79,69,108,105,103,0,79,97,99,117,116,101,0,79,99,105,114,99,0,79,103,114,97,118,101,0,79,109,101,103,97,0,79,109,105,99,114,111,110,0,79,115,108,97,115,104,0,79,116,105,108,100,101,0,79,117,109,108,0,80,104,105,0,80,105,0,80,114,105,109,101,0,80,115,105,0,82,104,111,0,83,99,97,114,111,110,0,83,105,103,109,97,0,84,72,79,82,78,0,84,97,117,0,84,104,101,116,97,0,85,97,99,117,116,101,0,85,99,105,114,99,0,85,103,114,97,118,101,0,85,112,115,105,108,111,110,0,85,117,109,108,0,88,105,0,89,97,99,117,116,101,0,89,117,109,108,0,90,101,116,97,0,97,97,99,117,116,101,0,97,99,105,114,99,0,97,99,117,116,101,0,97,101,108,105,103,0,97,103,114,97,118,101,0,97,108,101,102,115,121,109,0,97,108,112,104,97,0,97,109,112,0,97,110,100,0,97,110,103,0,97,114,105,110,103,0,97,115,121,109,112,0,97,116,105,108,100,101,0,97,117,109,108,0,98,100,113,117,111,0,98,101,116,97,0,98,114,118,98,97,114,0,98,117,108,108,0,99,97,112,0,99,99,101,100,105,108,0,99,101,100,105,108,0,99,101,110,116,0,99,104,105,0,99,105,114,99,0,99,108,117,98,115,0,99,111,110,103,0,99,111,112,121,0,99,114,97,114,114,0,99,117,112,0,99,117,114,114,101,110,0,100,65,114,114,0,100,97,103,103,101,114,0,100,97,114,114,0,100,101,103,0,100,101,108,116,97,0,100,105,97,109,115,0,100,105,118,105,100,101,0,101,97,99,117,116,101,0,101,99,105,114,99,0,101,103,114,97,118,101,0,101,109,112,116,121,0,101,109,115,112,0,101,110,115,112,0,101,112,115,105,108,111,110,0,101,113,117,105,118,0,101,116,97,0,101,116,104,0,101,117,109,108,0,101,117,114,111,0,101,120,105,115,116,0,102,110,111,102,0,102,111,114,97,108,108,0,102,114,97,99,49,50,0,102,114,97,99,49,52,0,102,114,97,99,51,52,0,102,114,97,115,108,0,103,97,109,109,97,0,103,101,0,103,116,0,104,65,114,114,0,104,97,114,114,0,104,101,97,114,116,115,0,104,101,108,108,105,112,0,105,97,99,117,116,101,0,105,99,105,114,99,0,105,101,120,99,108,0,105,103,114,97,118,101,0,105,109,97,103,101,0,105,110,102,105,110,0,105,110,116,0,105,111,116,97,0,105,113,117,101,115,116,0,105,115,105,110,0,105,117,109,108,0,107,97,112,112,97,0,108,65,114,114,0,108,97,109,98,100,97,0,108,97,110,103,0,108,97,113,117,111,0,108,97,114,114,0,108,99,101,105,108,0,108,100,113,117,111,0,108,101,0,108,102,108,111,111,114,0,108,111,119,97,115,116,0,108,111,122,0,108,114,109,0,108,115,97,113,117,111,0,108,115,113,117,111,0,108,116,0,109,97,99,114,0,109,100,97,115,104,0,109,105,99,114,111,0,109,105,100,100,111,116,0,109,117,0,110,97,98,108,97,0,110,98,115,112,0,110,100,97,115,104,0,110,101,0,110,105,0,110,111,116,0,110,111,116,105,110,0,110,115,117,98,0,110,116,105,108,100,101,0,110,117,0,111,97,99,117,116,101,0,111,99,105,114,99,0,111,101,108,105,103,0,111,103,114,97,118,101,0,111,108,105,110,101,0,111,109,101,103,97,0,111,109,105,99,114,111,110,0,111,112,108,117,115,0,111,114,0,111,114,100,102,0,111,114,100,109,0,111,115,108,97,115,104,0,111,116,105,108,100,101,0,111,116,105,109,101,115,0,111,117,109,108,0,112,97,114,97,0,112,97,114,116,0,112,101,114,109,105,108,0,112,101,114,112,0,112,104,105,0,112,105,0,112,105,118,0,112,108,117,115,109,110,0,112,111,117,110,100,0,112,114,105,109,101,0,112,114,111,100,0,112,114,111,112,0,112,115,105,0,113,117,111,116,0,114,65,114,114,0,114,97,100,105,99,0,114,97,110,103,0,114,97,113,117,111,0,114,97,114,114,0,114,99,101,105,108,0,114,100,113,117,111,0,114,101,97,108,0,114,101,103,0,114,102,108,111,111,114,0,114,104,111,0,114,108,109,0,114,115,97,113,117,111,0,114,115,113,117,111,0,115,98,113,117,111,0,115,99,97,114,111,110,0,115,100,111,116,0,115,101,99,116,0,115,104,121,0,115,105,103,109,97,0,115,105,103,109,97,102,0,115,105,109,0,115,112,97,100,101,115,0,115,117,98,0,115,117,98,101,0,115,117,109,0,115,117,112,0,115,117,112,49,0,115,117,112,50,0,115,117,112,51,0,115,117,112,101,0,115,122,108,105,103,0,116,97,117,0,116,104,101,114,101,52,0,116,104,101,116,97,0,116,104,101,116,97,115,121,109,0,116,104,105,110,115,112,0,116,104,111,114,110,0,116,105,108,100,101,0,116,105,109,101,115,0,116,114,97,100,101,0,117,65,114,114,0,117,97,99,117,116,101,0,117,97,114,114,0,117,99,105,114,99,0,117,103,114,97,118,101,0,117,109,108,0,117,112,115,105,104,0,117,112,115,105,108,111,110,0,117,117,109,108,0,119,101,105,101,114,112,0,120,105,0,121,97,99,117,116,101,0,121,101,110,0,121,117,109,108,0,122,101,116,97,0,122,119,106,0,122,119,110,106,0,85,84,70,56,32,99,111,100,101,115,32,62,32,52,32,98,121,116,101,115,32,97,114,101,32,110,111,116,32,99,117,114,114,101,110,116,108,121,32,115,117,112,112,111,114,116,101,100,32,40,103,114,97,112,104,32,37,115,41,32,45,32,116,114,101,97,116,101,100,32,97,115,32,76,97,116,105,110,45,49,46,32,80,101,114,104,97,112,115,32,34,45,71,99,104,97,114,115,101,116,61,108,97,116,105,110,49,34,32,105,115,32,110,101,101,100,101,100,63,10,0,73,110,118,97,108,105,100,32,37,100,45,98,121,116,101,32,85,84,70,56,32,102,111,117,110,100,32,105,110,32,105,110,112,117,116,32,111,102,32,103,114,97,112,104,32,37,115,32,45,32,116,114,101,97,116,101,100,32,97,115,32,76,97,116,105,110,45,49,46,32,80,101,114,104,97,112,115,32,34,45,71,99,104,97,114,115,101,116,61,108,97,116,105,110,49,34,32,105,115,32,110,101,101,100,101,100,63,10,0,98,122,46,115,105,122,101,0,111,118,101,114,108,97,112,95,98,101,122,105,101,114,0,117,114,118,101,100,0,111,109,112,111,117,110,100,0,97,108,115,101,0,105,110,101,0,111,110,101,0,111,0,114,116,104,111,0,111,108,121,108,105,110,101,0,112,108,105,110,101,0,114,117,101,0,101,115,0,85,110,107,110,111,119,110,32,34,115,112,108,105,110,101,115,34,32,118,97,108,117,101,58,32,34,37,115,34,32,45,32,105,103,110,111,114,101,100,10,0,115,112,108,105,110,101,115,0,111,100,98,0,79,114,116,104,111,103,111,110,97,108,32,101,100,103,101,115,32,100,111,32,110,111,116,32,99,117,114,114,101,110,116,108,121,32,104,97,110,100,108,101,32,101,100,103,101,32,108,97,98,101,108,115,46,32,84,114,121,32,117,115,105,110,103,32,120,108,97,98,101,108,115,46,10,0,111,114,116,104,111,32,37,115,32,37,115,10,0,99,104,97,110,105,0,111,114,116,104,111,46,99,0,99,104,97,110,83,101,97,114,99,104,0,99,112,0,37,37,33,80,83,45,65,100,111,98,101,45,50,46,48,10,37,37,37,37,66,111,117,110,100,105,110,103,66,111,120,58,32,40,97,116,101,110,100,41,10,47,112,111,105,110,116,32,123,10,32,32,47,89,32,101,120,99,104,32,100,101,102,10,32,32,47,88,32,101,120,99,104,32,100,101,102,10,32,32,110,101,119,112,97,116,104,10,32,32,88,32,89,32,51,32,48,32,51,54,48,32,97,114,99,32,102,105,108,108,10,125,32,100,101,102,10,47,99,101,108,108,32,123,10,32,32,47,89,32,101,120,99,104,32,100,101,102,10,32,32,47,88,32,101,120,99,104,32,100,101,102,10,32,32,47,121,32,101,120,99,104,32,100,101,102,10,32,32,47,120,32,101,120,99,104,32,100,101,102,10,32,32,110,101,119,112,97,116,104,10,32,32,120,32,121,32,109,111,118,101,116,111,10,32,32,120,32,89,32,108,105,110,101,116,111,10,32,32,88,32,89,32,108,105,110,101,116,111,10,32,32,88,32,121,32,108,105,110,101,116,111,10,32,32,99,108,111,115,101,112,97,116,104,32,115,116,114,111,107,101,10,125,32,100,101,102,10,47,110,111,100,101,32,123,10,32,47,117,32,101,120,99,104,32,100,101,102,10,32,47,114,32,101,120,99,104,32,100,101,102,10,32,47,100,32,101,120,99,104,32,100,101,102,10,32,47,108,32,101,120,99,104,32,100,101,102,10,32,110,101,119,112,97,116,104,32,108,32,100,32,109,111,118,101,116,111,10,32,114,32,100,32,108,105,110,101,116,111,32,114,32,117,32,108,105,110,101,116,111,32,108,32,117,32,108,105,110,101,116,111,10,32,99,108,111,115,101,112,97,116,104,32,102,105,108,108,10,125,32,100,101,102,10,10,0,37,100,32,37,100,32,116,114,97,110,115,108,97,116,101,10,0,48,46,56,32,48,46,56,32,48,46,56,32,115,101,116,114,103,98,99,111,108,111,114,10,0,115,104,111,119,112,97,103,101,10,37,37,37,37,84,114,97,105,108,101,114,10,37,37,37,37,66,111,117,110,100,105,110,103,66,111,120,58,32,37,100,32,37,100,32,37,100,32,37,100,10,0,110,101,119,112,97,116,104,32,37,100,32,37,100,32,109,111,118,101,116,111,10,0,37,100,32,37,100,32,108,105,110,101,116,111,10,0,37,100,32,37,100,32,108,105,110,101,116,111,32,115,116,114,111,107,101,10,0,99,104,97,110,110,101,108,32,37,100,32,40,37,102,44,37,102,41,10,0,32,45,62,10,0,32,32,32,32,32,0,40,40,37,102,44,37,102,41,44,40,37,102,44,37,102,41,41,32,37,115,32,37,115,0,66,95,82,73,71,72,84,0,66,95,68,79,87,78,0,66,95,76,69,70,84,0,66,95,85,80,0,66,95,78,79,68,69,0,115,101,103,0,110,101,120,116,95,115,101,103,0,100,101,99,105,100,101,95,112,111,105,110,116,0,105,110,99,111,109,112,97,114,97,98,108,101,32,115,101,103,109,101,110,116,115,32,33,33,32,45,45,32,65,98,111,114,116,105,110,103,10,0,115,49,45,62,99,111,109,109,95,99,111,111,114,100,61,61,115,50,45,62,99,111,109,109,95,99,111,111,114,100,0,105,115,95,112,97,114,97,108,108,101,108,0,103,114,97,112,104,32,71,32,123,10,0,32,110,111,100,101,91,115,104,97,112,101,61,112,111,105,110,116,93,10,0,32,32,37,100,32,91,112,111,115,61,34,37,100,44,37,100,34,93,10,0,32,32,37,100,32,45,45,32,37,100,91,108,101,110,61,34,37,102,34,93,10,0,125,10,0,99,111,108,111,114,32,37,115,0,37,115,32,105,115,32,110,111,116,32,97,32,107,110,111,119,110,32,99,111,108,111,114,46,10,0,101,114,114,111,114,32,105,110,32,99,111,108,120,108,97,116,101,40,41,10,0,115,111,108,105,100,0,105,110,118,105,115,105,98,108,101,0,98,111,108,100,0,115,101,116,108,105,110,101,119,105,100,116,104,0,102,105,108,108,101,100,0,117,110,102,105,108,108,101,100,0,116,97,112,101,114,101,100,0,103,118,114,101,110,100,101,114,95,115,101,116,95,115,116,121,108,101,58,32,117,110,115,117,112,112,111,114,116,101,100,32,115,116,121,108,101,32,37,115,32,45,32,105,103,110,111,114,105,110,103,10,0,103,118,114,101,110,100,101,114,46,99,0,103,118,114,101,110,100,101,114,95,117,115,101,114,115,104,97,112,101,0,110,97,109,101,0,110,97,109,101,91,48,93,0,98,111,116,104,0,108,97,121,111,117,116,0,76,97,121,111,117,116,32,116,121,112,101,58,32,34,37,115,34,32,110,111,116,32,114,101,99,111,103,110,105,122,101,100,46,32,85,115,101,32,111,110,101,32,111,102,58,37,115,10,0,106,111,98,0,103,118,108,111,97,100,105,109,97,103,101,46,99,0,103,118,108,111,97,100,105,109,97,103,101,0,117,115,0,117,115,45,62,110,97,109,101,0,117,115,45,62,110,97,109,101,91,48,93,0,78,111,32,108,111,97,100,105,109,97,103,101,32,112,108,117,103,105,110,32,102,111,114,32,34,37,115,34,10,0,81,0,76,101,102,116,0,75,80,95,76,101,102,116,0,82,105,103,104,116,0,75,80,95,82,105,103,104,116,0,85,112,0,75,80,95,85,112,0,68,111,119,110,0,75,80,95,68,111,119,110,0,112,108,117,115,0,75,80,95,65,100,100,0,109,105,110,117,115,0,75,80,95,83,117,98,116,114,97,99,116,0,70,0,101,100,103,101,0,116,97,105,108,112,111,114,116,0,104,101,97,100,112,111,114,116,0,107,101,121,0,85,82,76,0,110,111,100,101,0,100,105,103,114,97,112,104,0,103,114,97,112,104,0,115,117,98,103,114,97,112,104,0,95,76,84,88,95,108,105,98,114,97,114,121,0,116,101,120,116,108,97,121,111,117,116,0,111,98,106,112,45,62,108,98,108,0,120,108,97,98,101,108,115,46,99,0,120,108,97,100,106,117,115,116,0,120,108,105,110,116,101,114,115,101,99,116,105,111,110,115,0,108,112,32,33,61,32,99,108,112,0,103,101,116,105,110,116,114,115,120,105,0,111,98,106,112,49,45,62,115,122,46,120,32,61,61,32,48,32,38,38,32,111,98,106,112,49,45,62,115,122,46,121,32,61,61,32,48,0,108,98,108,101,110,99,108,111,115,105,110,103,0,118,112,0,120,108,104,100,120,117,110,108,111,97,100,0,115,105,122,101,61,61,102,114,101,101,100,0,114,101,99,116,46,98,111,117,110,100,97,114,121,91,50,93,32,60,32,73,78,84,95,77,65,88,0,111,98,106,112,108,112,109,107,115,0,114,101,99,116,46,98,111,117,110,100,97,114,121,91,51,93,32,60,32,73,78,84,95,77,65,88,0,111,117,116,32,111,102,32,109,101,109,111,114,121,10,0,35,37,50,120,37,50,120,37,50,120,37,50,120,0,37,108,102,37,108,102,37,108,102,0,47,97,99,99,101,110,116,51,47,49,0,47,97,99,99,101,110,116,51,47,50,0,47,97,99,99,101,110,116,51,47,51,0,47,97,99,99,101,110,116,52,47,49,0,47,97,99,99,101,110,116,52,47,50,0,47,97,99,99,101,110,116,52,47,51,0,47,97,99,99,101,110,116,52,47,52,0,47,97,99,99,101,110,116,53,47,49,0,47,97,99,99,101,110,116,53,47,50,0,47,97,99,99,101,110,116,53,47,51,0,47,97,99,99,101,110,116,53,47,52,0,47,97,99,99,101,110,116,53,47,53,0,47,97,99,99,101,110,116,54,47,49,0,47,97,99,99,101,110,116,54,47,50,0,47,97,99,99,101,110,116,54,47,51,0,47,97,99,99,101,110,116,54,47,52,0,47,97,99,99,101,110,116,54,47,53,0,47,97,99,99,101,110,116,54,47,54,0,47,97,99,99,101,110,116,55,47,49,0,47,97,99,99,101,110,116,55,47,50,0,47,97,99,99,101,110,116,55,47,51,0,47,97,99,99,101,110,116,55,47,52,0,47,97,99,99,101,110,116,55,47,53,0,47,97,99,99,101,110,116,55,47,54,0,47,97,99,99,101,110,116,55,47,55,0,47,97,99,99,101,110,116,56,47,49,0,47,97,99,99,101,110,116,56,47,50,0,47,97,99,99,101,110,116,56,47,51,0,47,97,99,99,101,110,116,56,47,52,0,47,97,99,99,101,110,116,56,47,53,0,47,97,99,99,101,110,116,56,47,54,0,47,97,99,99,101,110,116,56,47,55,0,47,97,99,99,101,110,116,56,47,56,0,47,98,108,117,101,115,51,47,49,0,47,98,108,117,101,115,51,47,50,0,47,98,108,117,101,115,51,47,51,0,47,98,108,117,101,115,52,47,49,0,47,98,108,117,101,115,52,47,50,0,47,98,108,117,101,115,52,47,51,0,47,98,108,117,101,115,52,47,52,0,47,98,108,117,101,115,53,47,49,0,47,98,108,117,101,115,53,47,50,0,47,98,108,117,101,115,53,47,51,0,47,98,108,117,101,115,53,47,52,0,47,98,108,117,101,115,53,47,53,0,47,98,108,117,101,115,54,47,49,0,47,98,108,117,101,115,54,47,50,0,47,98,108,117,101,115,54,47,51,0,47,98,108,117,101,115,54,47,52,0,47,98,108,117,101,115,54,47,53,0,47,98,108,117,101,115,54,47,54,0,47,98,108,117,101,115,55,47,49,0,47,98,108,117,101,115,55,47,50,0,47,98,108,117,101,115,55,47,51,0,47,98,108,117,101,115,55,47,52,0,47,98,108,117,101,115,55,47,53],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+102424);allocate([0,47,98,108,117,101,115,55,47,54,0,47,98,108,117,101,115,55,47,55,0,47,98,108,117,101,115,56,47,49,0,47,98,108,117,101,115,56,47,50,0,47,98,108,117,101,115,56,47,51,0,47,98,108,117,101,115,56,47,52,0,47,98,108,117,101,115,56,47,53,0,47,98,108,117,101,115,56,47,54,0,47,98,108,117,101,115,56,47,55,0,47,98,108,117,101,115,56,47,56,0,47,98,108,117,101,115,57,47,49,0,47,98,108,117,101,115,57,47,50,0,47,98,108,117,101,115,57,47,51,0,47,98,108,117,101,115,57,47,52,0,47,98,108,117,101,115,57,47,53,0,47,98,108,117,101,115,57,47,54,0,47,98,108,117,101,115,57,47,55,0,47,98,108,117,101,115,57,47,56,0,47,98,108,117,101,115,57,47,57,0,47,98,114,98,103,49,48,47,49,0,47,98,114,98,103,49,48,47,49,48,0,47,98,114,98,103,49,48,47,50,0,47,98,114,98,103,49,48,47,51,0,47,98,114,98,103,49,48,47,52,0,47,98,114,98,103,49,48,47,53,0,47,98,114,98,103,49,48,47,54,0,47,98,114,98,103,49,48,47,55,0,47,98,114,98,103,49,48,47,56,0,47,98,114,98,103,49,48,47,57,0,47,98,114,98,103,49,49,47,49,0,47,98,114,98,103,49,49,47,49,48,0,47,98,114,98,103,49,49,47,49,49,0,47,98,114,98,103,49,49,47,50,0,47,98,114,98,103,49,49,47,51,0,47,98,114,98,103,49,49,47,52,0,47,98,114,98,103,49,49,47,53,0,47,98,114,98,103,49,49,47,54,0,47,98,114,98,103,49,49,47,55,0,47,98,114,98,103,49,49,47,56,0,47,98,114,98,103,49,49,47,57,0,47,98,114,98,103,51,47,49,0,47,98,114,98,103,51,47,50,0,47,98,114,98,103,51,47,51,0,47,98,114,98,103,52,47,49,0,47,98,114,98,103,52,47,50,0,47,98,114,98,103,52,47,51,0,47,98,114,98,103,52,47,52,0,47,98,114,98,103,53,47,49,0,47,98,114,98,103,53,47,50,0,47,98,114,98,103,53,47,51,0,47,98,114,98,103,53,47,52,0,47,98,114,98,103,53,47,53,0,47,98,114,98,103,54,47,49,0,47,98,114,98,103,54,47,50,0,47,98,114,98,103,54,47,51,0,47,98,114,98,103,54,47,52,0,47,98,114,98,103,54,47,53,0,47,98,114,98,103,54,47,54,0,47,98,114,98,103,55,47,49,0,47,98,114,98,103,55,47,50,0,47,98,114,98,103,55,47,51,0,47,98,114,98,103,55,47,52,0,47,98,114,98,103,55,47,53,0,47,98,114,98,103,55,47,54,0,47,98,114,98,103,55,47,55,0,47,98,114,98,103,56,47,49,0,47,98,114,98,103,56,47,50,0,47,98,114,98,103,56,47,51,0,47,98,114,98,103,56,47,52,0,47,98,114,98,103,56,47,53,0,47,98,114,98,103,56,47,54,0,47,98,114,98,103,56,47,55,0,47,98,114,98,103,56,47,56,0,47,98,114,98,103,57,47,49,0,47,98,114,98,103,57,47,50,0,47,98,114,98,103,57,47,51,0,47,98,114,98,103,57,47,52,0,47,98,114,98,103,57,47,53,0,47,98,114,98,103,57,47,54,0,47,98,114,98,103,57,47,55,0,47,98,114,98,103,57,47,56,0,47,98,114,98,103,57,47,57,0,47,98,117,103,110,51,47,49,0,47,98,117,103,110,51,47,50,0,47,98,117,103,110,51,47,51,0,47,98,117,103,110,52,47,49,0,47,98,117,103,110,52,47,50,0,47,98,117,103,110,52,47,51,0,47,98,117,103,110,52,47,52,0,47,98,117,103,110,53,47,49,0,47,98,117,103,110,53,47,50,0,47,98,117,103,110,53,47,51,0,47,98,117,103,110,53,47,52,0,47,98,117,103,110,53,47,53,0,47,98,117,103,110,54,47,49,0,47,98,117,103,110,54,47,50,0,47,98,117,103,110,54,47,51,0,47,98,117,103,110,54,47,52,0,47,98,117,103,110,54,47,53,0,47,98,117,103,110,54,47,54,0,47,98,117,103,110,55,47,49,0,47,98,117,103,110,55,47,50,0,47,98,117,103,110,55,47,51,0,47,98,117,103,110,55,47,52,0,47,98,117,103,110,55,47,53,0,47,98,117,103,110,55,47,54,0,47,98,117,103,110,55,47,55,0,47,98,117,103,110,56,47,49,0,47,98,117,103,110,56,47,50,0,47,98,117,103,110,56,47,51,0,47,98,117,103,110,56,47,52,0,47,98,117,103,110,56,47,53,0,47,98,117,103,110,56,47,54,0,47,98,117,103,110,56,47,55,0,47,98,117,103,110,56,47,56,0,47,98,117,103,110,57,47,49,0,47,98,117,103,110,57,47,50,0,47,98,117,103,110,57,47,51,0,47,98,117,103,110,57,47,52,0,47,98,117,103,110,57,47,53,0,47,98,117,103,110,57,47,54,0,47,98,117,103,110,57,47,55,0,47,98,117,103,110,57,47,56,0,47,98,117,103,110,57,47,57,0,47,98,117,112,117,51,47,49,0,47,98,117,112,117,51,47,50,0,47,98,117,112,117,51,47,51,0,47,98,117,112,117,52,47,49,0,47,98,117,112,117,52,47,50,0,47,98,117,112,117,52,47,51,0,47,98,117,112,117,52,47,52,0,47,98,117,112,117,53,47,49,0,47,98,117,112,117,53,47,50,0,47,98,117,112,117,53,47,51,0,47,98,117,112,117,53,47,52,0,47,98,117,112,117,53,47,53,0,47,98,117,112,117,54,47,49,0,47,98,117,112,117,54,47,50,0,47,98,117,112,117,54,47,51,0,47,98,117,112,117,54,47,52,0,47,98,117,112,117,54,47,53,0,47,98,117,112,117,54,47,54,0,47,98,117,112,117,55,47,49,0,47,98,117,112,117,55,47,50,0,47,98,117,112,117,55,47,51,0,47,98,117,112,117,55,47,52,0,47,98,117,112,117,55,47,53,0,47,98,117,112,117,55,47,54,0,47,98,117,112,117,55,47,55,0,47,98,117,112,117,56,47,49,0,47,98,117,112,117,56,47,50,0,47,98,117,112,117,56,47,51,0,47,98,117,112,117,56,47,52,0,47,98,117,112,117,56,47,53,0,47,98,117,112,117,56,47,54,0,47,98,117,112,117,56,47,55,0,47,98,117,112,117,56,47,56,0,47,98,117,112,117,57,47,49,0,47,98,117,112,117,57,47,50,0,47,98,117,112,117,57,47,51,0,47,98,117,112,117,57,47,52,0,47,98,117,112,117,57,47,53,0,47,98,117,112,117,57,47,54,0,47,98,117,112,117,57,47,55,0,47,98,117,112,117,57,47,56,0,47,98,117,112,117,57,47,57,0,47,100,97,114,107,50,51,47,49,0,47,100,97,114,107,50,51,47,50,0,47,100,97,114,107,50,51,47,51,0,47,100,97,114,107,50,52,47,49,0,47,100,97,114,107,50,52,47,50,0,47,100,97,114,107,50,52,47,51,0,47,100,97,114,107,50,52,47,52,0,47,100,97,114,107,50,53,47,49,0,47,100,97,114,107,50,53,47,50,0,47,100,97,114,107,50,53,47,51,0,47,100,97,114,107,50,53,47,52,0,47,100,97,114,107,50,53,47,53,0,47,100,97,114,107,50,54,47,49,0,47,100,97,114,107,50,54,47,50,0,47,100,97,114,107,50,54,47,51,0,47,100,97,114,107,50,54,47,52,0,47,100,97,114,107,50,54,47,53,0,47,100,97,114,107,50,54,47,54,0,47,100,97,114,107,50,55,47,49,0,47,100,97,114,107,50,55,47,50,0,47,100,97,114,107,50,55,47,51,0,47,100,97,114,107,50,55,47,52,0,47,100,97,114,107,50,55,47,53,0,47,100,97,114,107,50,55,47,54,0,47,100,97,114,107,50,55,47,55,0,47,100,97,114,107,50,56,47,49,0,47,100,97,114,107,50,56,47,50,0,47,100,97,114,107,50,56,47,51,0,47,100,97,114,107,50,56,47,52,0,47,100,97,114,107,50,56,47,53,0,47,100,97,114,107,50,56,47,54,0,47,100,97,114,107,50,56,47,55,0,47,100,97,114,107,50,56,47,56,0,47,103,110,98,117,51,47,49,0,47,103,110,98,117,51,47,50,0,47,103,110,98,117,51,47,51,0,47,103,110,98,117,52,47,49,0,47,103,110,98,117,52,47,50,0,47,103,110,98,117,52,47,51,0,47,103,110,98,117,52,47,52,0,47,103,110,98,117,53,47,49,0,47,103,110,98,117,53,47,50,0,47,103,110,98,117,53,47,51,0,47,103,110,98,117,53,47,52,0,47,103,110,98,117,53,47,53,0,47,103,110,98,117,54,47,49,0,47,103,110,98,117,54,47,50,0,47,103,110,98,117,54,47,51,0,47,103,110,98,117,54,47,52,0,47,103,110,98,117,54,47,53,0,47,103,110,98,117,54,47,54,0,47,103,110,98,117,55,47,49,0,47,103,110,98,117,55,47,50,0,47,103,110,98,117,55,47,51,0,47,103,110,98,117,55,47,52,0,47,103,110,98,117,55,47,53,0,47,103,110,98,117,55,47,54,0,47,103,110,98,117,55,47,55,0,47,103,110,98,117,56,47,49,0,47,103,110,98,117,56,47,50,0,47,103,110,98,117,56,47,51,0,47,103,110,98,117,56,47,52,0,47,103,110,98,117,56,47,53,0,47,103,110,98,117,56,47,54,0,47,103,110,98,117,56,47,55,0,47,103,110,98,117,56,47,56,0,47,103,110,98,117,57,47,49,0,47,103,110,98,117,57,47,50,0,47,103,110,98,117,57,47,51,0,47,103,110,98,117,57,47,52,0,47,103,110,98,117,57,47,53,0,47,103,110,98,117,57,47,54,0,47,103,110,98,117,57,47,55,0,47,103,110,98,117,57,47,56,0,47,103,110,98,117,57,47,57,0,47,103,114,101,101,110,115,51,47,49,0,47,103,114,101,101,110,115,51,47,50,0,47,103,114,101,101,110,115,51,47,51,0,47,103,114,101,101,110,115,52,47,49,0,47,103,114,101,101,110,115,52,47,50,0,47,103,114,101,101,110,115,52,47,51,0,47,103,114,101,101,110,115,52,47,52,0,47,103,114,101,101,110,115,53,47,49,0,47,103,114,101,101,110,115,53,47,50,0,47,103,114,101,101,110,115,53,47,51,0,47,103,114,101,101,110,115,53,47,52,0,47,103,114,101,101,110,115,53,47,53,0,47,103,114,101,101,110,115,54,47,49,0,47,103,114,101,101,110,115,54,47,50,0,47,103,114,101,101,110,115,54,47,51,0,47,103,114,101,101,110,115,54,47,52,0,47,103,114,101,101,110,115,54,47,53,0,47,103,114,101,101,110,115,54,47,54,0,47,103,114,101,101,110,115,55,47,49,0,47,103,114,101,101,110,115,55,47,50,0,47,103,114,101,101,110,115,55,47,51,0,47,103,114,101,101,110,115,55,47,52,0,47,103,114,101,101,110,115,55,47,53,0,47,103,114,101,101,110,115,55,47,54,0,47,103,114,101,101,110,115,55,47,55,0,47,103,114,101,101,110,115,56,47,49,0,47,103,114,101,101,110,115,56,47,50,0,47,103,114,101,101,110,115,56,47,51,0,47,103,114,101,101,110,115,56,47,52,0,47,103,114,101,101,110,115,56,47,53,0,47,103,114,101,101,110,115,56,47,54,0,47,103,114,101,101,110,115,56,47,55,0,47,103,114,101,101,110,115,56,47,56,0,47,103,114,101,101,110,115,57,47,49,0,47,103,114,101,101,110,115,57,47,50,0,47,103,114,101,101,110,115,57,47,51,0,47,103,114,101,101,110,115,57,47,52,0,47,103,114,101,101,110,115,57,47,53,0,47,103,114,101,101,110,115,57,47,54,0,47,103,114,101,101,110,115,57,47,55,0,47,103,114,101,101,110,115,57,47,56,0,47,103,114,101,101,110,115,57,47,57,0,47,103,114,101,121,115,51,47,49,0,47,103,114,101,121,115,51,47,50,0,47,103,114,101,121,115,51,47,51,0,47,103,114,101,121,115,52,47,49,0,47,103,114,101,121,115,52,47,50,0,47,103,114,101,121,115,52,47,51,0,47,103,114,101,121,115,52,47,52,0,47,103,114,101,121,115,53,47,49,0,47,103,114,101,121,115,53,47,50,0,47,103,114,101,121,115,53,47,51,0,47,103,114,101,121,115,53,47,52,0,47,103,114,101,121,115,53,47,53,0,47,103,114,101,121,115,54,47,49,0,47,103,114,101,121,115,54,47,50,0,47,103,114,101,121,115,54,47,51,0,47,103,114,101,121,115,54,47,52,0,47,103,114,101,121,115,54,47,53,0,47,103,114,101,121,115,54,47,54,0,47,103,114,101,121,115,55,47,49,0,47,103,114,101,121,115,55,47,50,0,47,103,114,101,121,115,55,47,51,0,47,103,114,101,121,115,55,47,52,0,47,103,114,101,121,115,55,47,53,0,47,103,114,101,121,115,55,47,54,0,47,103,114,101,121,115,55,47,55,0,47,103,114,101,121,115,56,47,49,0,47,103,114,101,121,115,56,47,50,0,47,103,114,101,121,115,56,47,51,0,47,103,114,101,121,115,56,47,52,0,47,103,114,101,121,115,56,47,53,0,47,103,114,101,121,115,56,47,54,0,47,103,114,101,121,115,56,47,55,0,47,103,114,101,121,115,56,47,56,0,47,103,114,101,121,115,57,47,49,0,47,103,114,101,121,115,57,47,50,0,47,103,114,101,121,115,57,47,51,0,47,103,114,101,121,115,57,47,52,0,47,103,114,101,121,115,57,47,53,0,47,103,114,101,121,115,57,47,54,0,47,103,114,101,121,115,57,47,55,0,47,103,114,101,121,115,57,47,56,0,47,103,114,101,121,115,57,47,57,0,47,111,114,97,110,103,101,115,51,47,49,0,47,111,114,97,110,103,101,115,51,47,50,0,47,111,114,97,110,103,101,115,51,47,51,0,47,111,114,97,110,103,101,115,52,47,49,0,47,111,114,97,110,103,101,115,52,47,50,0,47,111,114,97,110,103,101,115,52,47,51,0,47,111,114,97,110,103,101,115,52,47,52,0,47,111,114,97,110,103,101,115,53,47,49,0,47,111,114,97,110,103,101,115,53,47,50,0,47,111,114,97,110,103,101,115,53,47,51,0,47,111,114,97,110,103,101,115,53,47,52,0,47,111,114,97,110,103,101,115,53,47,53,0,47,111,114,97,110,103,101,115,54,47,49,0,47,111,114,97,110,103,101,115,54,47,50,0,47,111,114,97,110,103,101,115,54,47,51,0,47,111,114,97,110,103,101,115,54,47,52,0,47,111,114,97,110,103,101,115,54,47,53,0,47,111,114,97,110,103,101,115,54,47,54,0,47,111,114,97,110,103,101,115,55,47,49,0,47,111,114,97,110,103,101,115,55,47,50,0,47,111,114,97,110,103,101,115,55,47,51,0,47,111,114,97,110,103,101,115,55,47,52,0,47,111,114,97,110,103,101,115,55,47,53,0,47,111,114,97,110,103,101,115,55,47,54,0,47,111,114,97,110,103,101,115,55,47,55,0,47,111,114,97,110,103,101,115,56,47,49,0,47,111,114,97,110,103,101,115,56,47,50,0,47,111,114,97,110,103,101,115,56,47,51,0,47,111,114,97,110,103,101,115,56,47,52,0,47,111,114,97,110,103,101,115,56,47,53,0,47,111,114,97,110,103,101,115,56,47,54,0,47,111,114,97,110,103,101,115,56,47,55,0,47,111,114,97,110,103,101,115,56,47,56,0,47,111,114,97,110,103,101,115,57,47,49,0,47,111,114,97,110,103,101,115,57,47,50,0,47,111,114,97,110,103,101,115,57,47,51,0,47,111,114,97,110,103,101,115,57,47,52,0,47,111,114,97,110,103,101,115,57,47,53,0,47,111,114,97,110,103,101,115,57,47,54,0,47,111,114,97,110,103,101,115,57,47,55,0,47,111,114,97,110,103,101,115,57,47,56,0,47,111,114,97,110,103,101,115,57,47,57,0,47,111,114,114,100,51,47,49,0,47,111,114,114,100,51,47,50,0,47,111,114,114,100,51,47,51,0,47,111,114,114,100,52,47,49,0,47,111,114,114,100,52,47,50,0,47,111,114,114,100,52,47,51,0,47,111,114,114,100,52,47,52,0,47,111,114,114,100,53,47,49,0,47,111,114,114,100,53,47,50,0,47,111,114,114,100,53,47,51,0,47,111,114,114,100,53,47,52,0,47,111,114,114,100,53,47,53,0,47,111,114,114,100,54,47,49,0,47,111,114,114,100,54,47,50,0,47,111,114,114,100,54,47,51,0,47,111,114,114,100,54,47,52,0,47,111,114,114,100,54,47,53,0,47,111,114,114,100,54,47,54,0,47,111,114,114,100,55,47,49,0,47,111,114,114,100,55,47,50,0,47,111,114,114,100,55,47,51,0,47,111,114,114,100,55,47,52,0,47,111,114,114,100,55,47,53,0,47,111,114,114,100,55,47,54,0,47,111,114,114,100,55,47,55,0,47,111,114,114,100,56,47,49,0,47,111,114,114,100,56,47,50,0,47,111,114,114,100,56,47,51,0,47,111,114,114,100,56,47,52,0,47,111,114,114,100,56,47,53,0,47,111,114,114,100,56,47,54,0,47,111,114,114,100,56,47,55,0,47,111,114,114,100,56,47,56,0,47,111,114,114,100,57,47,49,0,47,111,114,114,100,57,47,50,0,47,111,114,114,100,57,47,51,0,47,111,114,114,100,57,47,52,0,47,111,114,114,100,57,47,53,0,47,111,114,114,100,57,47,54,0,47,111,114,114,100,57,47,55,0,47,111,114,114,100,57,47,56,0,47,111,114,114,100,57,47,57,0,47,112,97,105,114,101,100,49,48,47,49,0,47,112,97,105,114,101,100,49,48,47,49,48,0,47,112,97,105,114,101,100,49,48,47,50,0,47,112,97,105,114,101,100,49,48,47,51,0,47,112,97,105,114,101,100,49,48,47,52,0,47,112,97,105,114,101,100,49,48,47,53,0,47,112,97,105,114,101,100,49,48,47,54,0,47,112,97,105,114,101,100,49,48,47,55,0,47,112,97,105,114,101,100,49,48,47,56,0,47,112,97,105,114,101,100,49,48,47,57,0,47,112,97,105,114,101,100,49,49,47,49,0,47,112,97,105,114,101,100,49,49,47,49,48,0,47,112,97,105,114,101,100,49,49,47,49,49,0,47,112,97,105,114,101,100,49,49,47,50,0,47,112,97,105,114,101,100,49,49,47,51,0,47,112,97,105,114,101,100,49,49,47,52,0,47,112,97,105,114,101,100,49,49,47,53,0,47,112,97,105,114,101,100,49,49,47,54,0,47,112,97,105,114,101,100,49,49,47,55,0,47,112,97,105,114,101,100,49,49,47,56,0,47,112,97,105,114,101,100,49,49,47,57,0,47,112,97,105,114,101,100,49,50,47,49,0,47,112,97,105,114,101,100,49,50,47,49,48,0,47,112,97,105,114,101,100,49,50,47,49,49,0,47,112,97,105,114,101,100,49,50,47,49,50,0,47,112,97,105,114,101,100,49,50,47,50,0,47,112,97,105,114,101,100,49,50,47,51,0,47,112,97,105,114,101,100,49,50,47,52,0,47,112,97,105,114,101,100,49,50,47,53,0,47,112,97,105,114,101,100,49,50,47,54,0,47,112,97,105,114,101,100,49,50,47,55,0,47,112,97,105,114,101,100,49,50,47,56,0,47,112,97,105,114,101,100,49,50,47,57,0,47,112,97,105,114,101,100,51,47,49,0,47,112,97,105,114,101,100,51,47,50,0,47,112,97,105,114,101,100,51,47,51,0,47,112,97,105,114,101,100,52,47,49,0,47,112,97,105,114,101,100,52,47,50,0,47,112,97,105,114,101,100,52,47,51,0,47,112,97,105,114,101,100,52,47,52,0,47,112,97,105,114,101,100,53,47,49,0,47,112,97,105,114,101,100,53,47,50,0,47,112,97,105,114,101,100,53,47,51,0,47,112,97,105,114,101,100,53,47,52,0,47,112,97,105,114,101,100,53,47,53,0,47,112,97,105,114,101,100,54,47,49,0,47,112,97,105,114,101,100,54,47,50,0,47,112,97,105,114,101,100,54,47,51,0,47,112,97,105,114,101,100,54,47,52,0,47,112,97,105,114,101,100,54,47,53,0,47,112,97,105,114,101,100,54,47,54,0,47,112,97,105,114,101,100,55,47,49,0,47,112,97,105,114,101,100,55,47,50,0,47,112,97,105,114,101,100,55,47,51,0,47,112,97,105,114,101,100,55,47,52,0,47,112,97,105,114,101,100,55,47,53,0,47,112,97,105,114,101,100,55,47,54,0,47,112,97,105,114,101,100,55,47,55,0,47,112,97,105,114,101,100,56,47,49,0,47,112,97,105,114,101,100,56,47,50,0,47,112,97,105,114,101,100,56,47,51,0,47,112,97,105,114,101,100,56,47,52,0,47,112,97,105,114,101,100,56,47,53,0,47,112,97,105,114,101,100,56,47,54,0,47,112,97,105,114,101,100,56,47,55,0,47,112,97,105,114,101,100,56,47,56,0,47,112,97,105,114,101,100,57,47,49,0,47,112,97,105,114,101,100,57,47,50,0,47,112,97,105,114,101,100,57,47,51,0,47,112,97,105,114,101,100,57,47,52,0,47,112,97,105,114,101,100,57,47,53,0,47,112,97,105,114,101,100,57,47,54,0,47,112,97,105,114,101,100,57,47,55,0,47,112,97,105,114,101,100,57,47,56,0,47,112,97,105,114,101,100,57,47,57,0,47,112,97,115,116,101,108,49,51,47,49,0,47,112,97,115,116,101,108,49,51,47,50,0,47,112,97,115,116,101,108,49,51,47,51,0,47,112,97,115,116,101,108,49,52,47,49,0,47,112,97,115,116,101,108,49,52,47,50,0,47,112,97,115,116,101,108,49,52,47,51,0,47,112,97,115,116,101,108,49,52,47,52,0,47,112,97,115,116,101,108,49,53,47,49,0,47,112,97,115,116,101,108,49,53,47,50,0,47,112,97,115,116,101,108,49,53,47,51,0,47,112,97,115,116,101,108,49,53,47,52,0,47,112,97,115,116,101,108,49,53,47,53,0,47,112,97,115,116,101,108,49,54,47,49,0,47,112,97,115,116,101,108,49,54,47,50,0,47,112,97,115,116,101,108,49,54,47,51,0,47,112,97,115,116,101,108,49,54,47,52,0,47,112,97,115,116,101,108,49,54,47,53,0,47,112,97,115,116,101,108,49,54,47,54,0,47,112,97,115,116,101,108,49,55,47,49,0,47,112,97,115,116,101,108,49,55,47,50,0,47,112,97,115,116,101,108,49,55,47,51,0,47,112,97,115,116,101,108,49,55,47,52,0,47,112,97,115,116,101,108,49,55,47,53,0,47,112,97,115,116,101,108,49,55,47,54,0,47,112,97,115,116,101,108,49,55,47,55,0,47,112,97,115,116,101,108,49,56,47,49,0,47,112,97,115,116,101,108,49,56,47,50,0,47,112,97,115,116,101,108,49,56,47,51,0,47,112,97,115,116,101,108,49,56,47,52,0,47,112,97,115,116,101,108,49,56,47,53,0,47,112,97,115,116,101,108,49,56,47,54,0,47,112,97,115,116,101,108,49,56,47,55,0,47,112,97,115,116,101,108,49,56,47,56,0,47,112,97,115,116,101,108,49,57,47,49,0,47,112,97,115,116,101,108,49,57,47,50,0,47,112,97,115,116,101,108,49,57,47,51,0,47,112,97,115,116,101,108,49,57,47,52,0,47,112,97,115,116,101,108,49,57,47,53,0,47,112,97,115,116,101,108,49,57,47,54,0,47,112,97,115,116,101,108,49,57,47,55,0,47,112,97,115,116,101,108,49,57,47,56,0,47,112,97,115,116,101,108,49,57,47,57,0,47,112,97,115,116,101,108,50,51,47,49,0,47,112,97,115,116,101,108,50,51,47,50,0,47,112,97,115,116,101,108,50,51,47,51,0,47,112,97,115,116,101,108,50,52,47,49,0,47,112,97,115,116,101,108,50,52,47,50,0,47,112,97,115,116,101,108,50,52,47,51,0,47,112,97,115,116,101,108,50,52,47,52,0,47,112,97,115,116,101,108,50,53,47,49,0,47,112,97,115,116,101,108,50,53,47,50,0,47,112,97,115,116,101,108,50,53,47,51,0,47,112,97,115,116,101,108,50,53,47,52,0,47,112,97,115,116,101,108,50,53,47,53,0,47,112,97,115,116,101,108,50,54,47,49,0,47,112,97,115,116,101,108,50,54,47,50,0,47,112,97,115,116,101,108,50,54,47,51,0,47,112,97,115,116,101,108,50,54,47,52,0,47,112,97,115,116,101,108,50,54,47,53,0,47,112,97,115,116,101,108,50,54,47,54,0,47,112,97,115,116,101,108,50,55,47,49,0,47,112,97,115,116,101,108,50,55,47,50,0,47,112,97,115,116,101,108,50,55,47,51,0,47,112,97,115,116,101,108,50,55,47,52,0,47,112,97,115,116,101,108,50,55,47,53,0,47,112,97,115,116,101,108,50,55,47,54,0,47,112,97,115,116,101,108,50,55,47,55,0,47,112,97,115,116,101,108,50,56,47,49,0,47,112,97,115,116,101,108,50,56,47,50,0,47,112,97,115,116,101,108,50,56,47,51,0,47,112,97,115,116,101,108,50,56,47,52,0,47,112,97,115,116,101,108,50,56,47,53,0,47,112,97,115,116,101,108,50,56,47,54,0,47,112,97,115,116,101,108,50,56,47,55,0,47,112,97,115,116,101,108,50,56,47,56,0,47,112,105,121,103,49,48,47,49,0,47,112,105,121,103,49,48,47,49,48,0,47,112,105,121,103,49,48,47,50,0,47,112,105,121,103,49,48,47,51,0,47,112,105,121,103,49,48,47,52,0,47,112,105,121,103,49,48,47,53,0,47,112,105,121,103,49,48,47,54,0,47,112,105,121,103,49,48,47,55,0,47,112,105,121,103,49,48,47,56,0,47,112,105,121,103,49,48,47,57,0,47,112,105,121,103,49,49,47,49,0,47,112,105,121,103,49,49,47,49,48,0,47,112,105,121,103,49,49,47,49,49,0,47,112,105,121,103,49,49,47,50,0,47,112,105,121,103,49,49,47,51,0,47,112,105,121,103,49,49,47,52,0,47,112,105,121,103,49,49,47,53,0,47,112,105,121,103,49,49,47,54,0,47,112,105,121,103,49,49,47,55,0,47,112,105,121,103,49,49,47,56,0,47,112,105,121,103,49,49,47,57,0,47,112,105,121,103,51,47,49,0,47,112,105,121,103,51,47,50,0,47,112,105,121,103,51,47,51,0,47,112,105,121,103,52,47,49,0,47,112,105,121,103,52,47,50,0,47,112,105,121,103,52,47,51,0,47,112,105,121,103,52,47,52,0,47,112,105,121,103,53,47,49,0,47,112,105,121,103,53,47,50,0,47,112,105,121,103,53,47,51,0,47,112,105,121,103,53,47,52,0,47,112,105,121,103,53,47,53,0,47,112,105,121,103,54,47,49,0,47,112,105,121,103,54,47,50,0,47,112,105,121,103,54,47,51,0,47,112,105,121,103,54,47,52,0,47,112,105,121,103,54,47,53,0,47,112,105,121,103,54,47,54,0,47,112,105,121,103,55,47,49,0,47,112,105,121,103,55,47,50,0,47,112,105,121,103,55,47,51,0,47,112,105,121,103,55,47,52,0,47,112,105,121,103,55,47,53,0,47,112,105,121,103,55,47,54,0,47,112,105,121,103,55,47,55,0,47,112,105,121,103,56,47,49,0,47,112,105,121,103,56,47,50,0,47,112,105,121,103,56,47,51,0,47,112,105,121,103,56,47,52,0,47,112,105,121,103,56,47,53,0,47,112,105,121,103,56,47,54,0,47,112,105,121,103,56,47,55,0,47,112,105,121,103,56,47,56,0,47,112,105,121,103,57,47,49,0,47,112,105,121,103,57,47,50,0,47,112,105,121,103,57,47,51,0,47,112,105,121,103,57,47,52,0,47,112,105,121,103,57,47,53,0,47,112,105,121,103,57,47,54,0,47,112,105,121,103,57,47,55,0,47,112,105,121,103,57,47,56,0,47,112,105,121,103,57,47,57,0,47,112,114,103,110,49,48,47,49,0,47,112,114,103,110,49,48,47,49,48,0,47,112,114,103,110,49,48,47,50,0,47,112,114,103,110,49,48,47,51,0,47,112,114,103,110,49,48,47,52,0,47,112,114,103,110,49,48,47,53,0,47,112,114,103,110,49,48,47,54,0,47,112,114,103,110,49,48,47,55,0,47,112,114,103,110,49,48,47,56,0,47,112,114,103,110,49,48,47,57,0,47,112,114,103,110,49,49,47,49,0,47,112,114,103,110,49,49,47,49,48,0,47,112,114,103,110,49,49,47,49,49,0,47,112,114,103,110,49,49,47,50,0,47,112,114,103,110,49,49,47,51,0,47,112,114,103,110,49,49,47,52,0,47,112,114,103,110,49,49,47,53,0,47,112,114,103,110,49,49,47,54,0,47,112,114,103,110,49,49,47,55,0,47,112,114,103,110,49,49,47,56,0,47,112,114,103,110,49,49,47,57,0,47,112,114,103,110,51,47,49,0,47,112,114,103,110,51,47,50,0,47,112,114,103,110,51,47,51,0,47,112,114,103,110,52,47,49,0,47,112,114,103,110,52,47,50,0,47,112,114,103,110,52,47,51,0,47,112,114,103,110,52,47,52,0,47,112,114,103,110,53,47,49,0,47,112,114,103,110,53,47,50,0,47,112,114,103,110,53,47,51,0,47,112,114,103,110,53,47,52,0,47,112,114,103,110,53,47,53,0,47,112,114,103,110,54,47,49,0,47,112,114,103,110,54,47,50,0,47,112,114,103,110,54,47,51,0,47,112,114,103,110,54,47,52,0,47,112,114,103,110,54,47,53,0,47,112,114,103,110,54,47,54,0,47,112,114,103,110,55,47,49,0,47,112,114,103,110,55,47,50,0,47,112,114,103,110,55,47,51,0,47,112,114,103,110,55,47,52,0,47,112,114,103,110,55,47,53,0,47,112,114,103,110,55,47,54,0,47,112,114,103,110,55,47,55,0,47,112,114,103,110,56,47,49,0,47,112,114,103,110,56,47,50,0,47,112,114,103,110,56,47,51,0,47,112,114,103,110,56,47,52,0,47,112,114,103,110,56,47,53,0,47,112,114,103,110,56,47,54,0,47,112,114,103,110,56,47,55,0,47,112,114,103,110,56,47,56,0,47,112,114,103,110,57,47,49,0,47,112,114,103,110,57,47,50,0,47,112,114,103,110,57,47,51,0,47,112,114,103,110,57,47,52,0,47,112,114,103,110,57,47,53,0,47,112,114,103,110,57,47,54,0,47,112,114,103,110,57,47,55,0,47,112,114,103,110,57,47,56,0,47,112,114,103,110,57,47,57,0,47,112,117,98,117,51,47,49,0,47,112,117,98,117,51,47,50,0,47,112,117,98,117,51,47,51,0,47,112,117,98,117,52,47,49,0,47,112,117,98,117,52,47,50,0,47,112,117,98,117,52,47,51,0,47,112,117,98,117,52,47,52,0,47,112,117,98,117,53,47,49,0,47,112,117,98,117,53,47,50,0,47,112,117,98,117,53,47,51,0,47,112,117,98,117,53,47,52,0,47,112,117,98,117,53,47,53,0,47,112,117,98,117,54,47,49,0,47,112,117,98,117,54,47,50,0,47,112,117,98,117,54,47,51,0,47,112,117,98,117,54,47,52,0,47,112,117,98,117,54,47,53,0,47,112,117,98,117,54,47,54,0,47,112,117,98,117,55,47,49,0,47,112,117,98,117,55,47,50,0,47,112,117,98,117,55,47,51,0,47,112,117,98,117,55,47,52,0,47,112,117,98,117,55,47,53,0,47,112,117,98,117,55,47,54,0,47,112,117,98,117,55,47,55,0,47,112,117,98,117,56,47,49,0,47,112,117,98,117,56,47,50,0,47,112,117,98,117,56,47,51,0,47,112,117,98,117,56,47,52,0,47,112,117,98,117,56,47,53,0,47,112,117,98,117,56,47,54,0,47,112,117,98,117,56,47,55,0,47,112,117,98,117,56,47,56,0,47,112,117,98,117,57,47,49,0,47,112,117,98,117,57,47,50,0,47,112,117,98,117,57,47,51,0,47,112,117,98,117,57,47,52,0,47,112,117,98,117,57,47,53,0,47,112,117,98,117,57,47,54,0,47,112,117,98,117,57,47,55,0,47,112,117,98,117,57,47,56,0,47,112,117,98,117,57,47,57,0,47,112,117,98,117,103,110,51,47,49,0,47,112,117,98,117,103,110,51,47,50,0,47,112,117,98,117,103,110,51,47,51,0,47,112,117,98,117,103,110,52,47,49,0,47,112,117,98,117,103,110,52,47,50,0,47,112,117,98,117,103,110,52,47,51,0,47,112,117,98,117,103,110,52,47,52,0,47,112,117,98,117,103,110,53,47,49,0,47,112,117,98,117,103,110,53,47,50,0,47,112,117,98,117,103,110,53,47,51,0,47,112,117,98,117,103,110,53,47,52,0,47,112,117,98,117,103,110,53,47,53,0,47,112,117,98,117,103,110,54,47,49,0,47,112,117,98,117,103,110,54,47,50,0,47,112,117,98,117,103,110,54,47,51,0,47,112,117,98,117,103,110,54,47,52,0,47,112,117,98,117,103,110,54,47,53,0,47,112,117,98,117,103,110,54,47,54,0,47,112,117,98,117,103,110,55,47,49,0,47,112,117,98,117,103,110,55,47,50,0,47,112,117,98,117,103,110,55,47,51,0,47,112,117,98,117,103,110,55,47,52,0,47,112,117,98,117,103,110,55,47,53,0,47,112,117,98,117,103,110,55,47,54,0,47,112,117,98,117,103,110,55,47,55,0,47,112,117,98,117,103,110,56,47,49,0,47,112,117,98,117,103,110,56,47,50,0,47,112,117,98,117,103,110,56,47,51,0,47,112,117,98,117,103,110,56,47,52,0,47,112,117,98,117,103,110,56,47,53,0,47,112,117,98,117,103,110,56,47,54,0,47,112,117,98,117,103,110,56,47,55,0,47,112,117,98,117,103,110,56,47,56,0,47,112,117,98,117,103,110,57,47,49,0,47,112,117,98,117,103,110,57,47,50,0,47,112,117,98,117,103,110,57,47,51,0,47,112,117,98,117,103,110,57,47,52,0,47,112,117,98,117,103,110,57,47,53,0,47,112,117,98,117,103,110,57,47,54,0,47,112,117,98,117,103,110,57,47,55,0,47,112,117,98,117,103,110,57,47,56,0,47,112,117,98,117,103,110,57,47,57,0,47,112,117,111,114,49,48,47,49,0,47,112,117,111,114,49,48,47,49,48,0,47,112,117,111,114,49,48,47,50,0,47,112,117,111,114,49,48,47,51,0,47,112,117,111,114,49,48,47,52,0,47,112,117,111,114,49,48,47,53,0,47,112,117,111,114,49,48,47,54,0,47,112,117,111,114,49,48,47,55,0,47,112,117,111,114,49,48,47,56,0,47,112,117,111,114,49,48,47,57,0,47,112,117,111,114,49,49,47,49,0,47,112,117,111,114,49,49,47,49,48,0,47,112,117,111,114,49,49,47,49,49,0,47,112,117,111,114,49,49,47,50,0,47,112,117,111,114,49,49,47,51,0,47,112,117,111,114,49,49,47,52,0,47,112,117,111,114,49,49,47,53,0,47,112,117,111,114,49,49,47,54,0,47,112,117,111,114,49,49,47,55,0,47,112,117,111,114,49,49,47,56,0,47,112,117,111,114,49,49,47,57,0,47,112,117,111,114,51,47,49,0,47,112,117,111,114,51,47,50,0,47,112,117,111,114,51,47,51,0,47,112,117,111,114,52,47,49,0,47,112,117,111,114,52,47,50,0,47,112,117,111,114,52,47,51,0,47,112,117,111,114,52,47,52,0,47,112,117,111,114,53,47,49,0,47,112,117,111,114,53,47,50,0,47,112,117,111,114,53,47,51,0,47,112,117,111,114,53,47,52,0,47,112,117,111,114,53,47,53,0,47,112,117,111,114,54,47,49,0,47,112,117,111,114,54,47,50,0,47,112,117,111,114,54,47,51,0,47,112,117,111,114,54,47,52,0,47,112,117,111,114,54,47,53,0,47,112,117,111,114,54,47,54,0,47,112,117,111,114,55,47,49,0,47,112,117,111,114,55,47,50,0,47,112,117,111,114,55,47,51,0,47,112,117,111,114,55,47,52,0,47,112,117,111,114,55,47,53,0,47,112,117,111,114,55,47,54,0,47,112,117,111,114,55,47,55,0,47,112,117,111,114,56,47,49,0,47,112,117,111,114,56,47,50,0,47,112,117,111,114,56,47,51,0,47,112,117,111,114,56,47,52,0,47,112,117,111,114,56,47,53,0,47,112,117,111,114,56,47,54,0,47,112,117,111,114,56,47,55,0,47,112,117,111,114,56,47,56,0,47,112,117,111,114,57,47,49,0,47,112,117,111,114,57,47,50,0,47,112,117,111,114,57,47,51,0,47,112,117,111,114,57,47,52,0,47,112,117,111,114,57,47,53,0,47,112,117,111,114,57,47,54,0,47,112,117,111,114,57,47,55,0,47,112,117,111,114,57,47,56,0,47,112,117,111,114,57,47,57,0,47,112,117,114,100,51,47,49,0,47,112,117,114,100,51,47,50,0,47,112,117,114,100,51,47,51,0,47,112,117,114,100,52,47,49,0,47,112,117,114,100,52,47,50,0,47,112,117,114,100,52,47,51,0,47,112,117,114,100,52,47,52,0,47,112,117,114,100,53,47,49,0,47,112,117,114,100,53,47,50,0,47,112,117,114,100,53,47,51,0,47,112,117,114,100,53,47,52,0,47,112,117,114,100,53,47,53,0,47,112,117,114,100,54,47,49,0,47,112,117,114,100,54,47,50,0,47,112,117,114,100,54,47,51,0,47,112,117,114,100,54,47,52,0,47,112,117,114,100,54,47,53,0,47,112,117,114,100,54,47,54,0,47,112,117,114,100,55,47,49,0,47,112,117,114,100,55,47,50,0,47,112,117,114,100,55,47,51,0,47,112,117,114,100,55,47,52,0,47,112,117,114,100,55,47,53,0,47,112,117,114,100,55,47,54,0,47,112,117,114,100,55,47,55,0,47,112,117,114,100,56,47,49,0,47,112,117,114,100,56,47,50,0,47,112,117,114,100,56,47,51,0,47,112,117,114,100,56,47,52,0,47,112,117,114,100,56,47,53,0,47,112,117,114,100,56,47,54,0,47,112,117,114,100,56,47,55,0,47,112,117,114,100,56,47,56,0,47,112,117,114,100,57,47,49,0,47,112,117,114,100,57,47,50,0,47,112,117,114,100,57,47,51,0,47,112,117,114,100,57,47,52,0,47,112,117,114,100,57,47,53,0,47,112,117,114,100,57,47,54,0,47,112,117,114,100,57,47,55,0,47,112,117,114,100,57,47,56,0,47,112,117,114,100,57,47,57,0,47,112,117,114,112,108,101,115,51,47,49,0,47,112,117,114,112,108,101,115,51,47,50,0,47,112,117,114,112,108,101,115,51,47,51,0,47,112,117,114,112,108,101,115,52,47,49,0,47,112,117,114,112,108,101,115,52,47,50,0,47,112,117,114,112,108,101,115,52,47,51,0,47,112,117,114,112,108,101,115,52,47,52,0,47,112,117,114,112,108,101,115,53,47,49,0,47,112,117,114,112,108,101,115,53,47,50,0,47,112,117,114,112,108,101,115,53,47,51,0,47,112,117,114,112,108,101,115,53,47,52,0,47,112,117,114,112,108,101,115,53,47,53,0,47,112,117,114,112,108,101,115,54,47,49,0,47,112,117,114,112,108,101,115,54,47,50,0,47,112,117,114,112,108,101,115,54,47,51,0,47,112,117,114,112,108,101,115,54,47,52,0,47,112,117,114,112,108,101,115,54,47,53,0,47,112,117,114,112,108,101,115,54,47,54,0,47,112,117,114,112,108,101,115,55,47,49,0,47,112,117,114,112,108,101,115,55,47,50,0,47,112,117,114,112,108,101,115,55,47,51,0,47,112,117,114,112,108,101,115,55,47,52,0,47,112,117,114,112,108,101,115,55,47,53,0,47,112,117,114,112,108,101,115,55,47,54,0,47,112,117,114,112,108,101,115,55,47,55,0,47,112,117,114,112,108,101,115,56,47,49,0,47,112,117,114,112,108,101,115,56,47,50,0,47,112,117,114,112,108,101,115,56,47,51,0,47,112,117,114,112,108,101,115,56,47,52,0,47,112,117,114,112,108,101,115,56,47,53,0,47,112,117,114,112,108,101,115,56,47,54,0,47,112,117,114,112,108,101,115,56,47,55,0,47,112,117,114,112,108,101,115,56,47,56,0,47,112,117,114,112,108,101,115,57,47,49,0,47,112,117,114,112,108,101,115,57,47,50,0,47,112,117,114,112,108,101,115,57,47,51,0,47,112,117,114,112,108,101,115,57,47,52,0,47,112,117,114,112,108,101,115,57,47,53,0,47,112,117,114,112,108,101,115,57,47,54,0,47,112,117,114,112,108,101,115,57,47,55,0,47,112,117,114,112,108,101,115,57,47,56,0,47,112,117,114,112,108,101,115,57,47,57,0,47,114,100,98,117,49,48,47,49,0,47,114,100,98,117,49,48,47,49,48,0,47,114,100,98,117,49,48,47,50,0,47,114,100,98,117,49,48,47,51,0,47,114,100,98,117,49,48,47,52,0,47,114,100,98,117,49,48,47,53,0,47,114,100,98,117,49,48,47,54,0,47,114,100,98,117,49,48,47,55,0,47,114,100,98,117,49,48,47,56,0,47,114,100,98,117,49,48,47,57,0,47,114,100,98,117,49,49,47,49,0,47,114,100,98,117,49,49,47,49,48,0,47,114,100,98,117,49,49,47,49,49,0,47,114,100,98,117,49,49,47,50,0,47,114,100,98,117,49,49,47,51,0,47,114,100,98,117,49,49,47,52,0,47,114,100,98,117,49,49,47,53,0,47,114,100,98,117,49,49,47,54,0,47,114,100,98,117,49,49,47,55,0,47,114,100,98,117,49,49,47,56,0,47,114,100,98,117,49,49,47,57,0,47,114,100,98,117,51,47,49,0,47,114,100,98,117,51,47,50,0,47,114,100,98,117,51,47,51,0,47,114,100,98,117,52,47,49,0,47,114,100,98,117,52,47,50,0,47,114,100,98,117,52,47,51,0,47,114,100,98,117,52,47,52,0,47,114,100,98,117,53,47,49,0,47,114,100,98,117,53,47,50,0,47,114,100,98,117,53,47,51,0,47,114,100,98,117,53,47,52,0,47,114,100,98,117,53,47,53,0,47,114,100,98,117,54,47,49,0,47,114,100,98,117,54,47,50,0,47,114,100,98,117,54,47,51,0,47,114,100,98,117,54,47,52,0,47,114,100,98,117,54,47,53,0,47,114,100,98,117,54,47,54,0,47,114,100,98,117,55,47,49,0,47,114,100,98,117,55,47,50,0,47,114,100,98,117,55,47,51,0,47,114,100,98,117,55,47,52,0,47,114,100,98,117,55,47,53,0,47,114,100,98,117,55,47,54,0,47,114,100,98,117,55,47,55,0,47,114,100,98,117,56,47,49,0,47,114,100,98,117,56,47,50,0,47,114,100,98,117,56,47,51,0,47,114,100,98,117,56,47,52,0,47,114,100,98,117,56,47,53,0,47,114,100,98,117,56,47,54,0,47,114,100,98,117,56,47,55,0,47,114,100,98,117,56,47,56,0,47,114,100,98,117,57,47,49,0,47,114,100,98,117,57,47,50,0,47,114,100,98,117,57,47,51,0,47,114,100,98,117,57,47,52,0,47,114,100,98,117,57,47,53,0,47,114,100,98,117,57,47,54,0,47,114,100,98,117,57,47,55,0,47,114,100,98,117,57,47,56,0,47,114,100,98,117,57,47,57,0,47,114,100,103,121,49,48,47,49,0,47,114,100,103,121,49,48,47,49,48,0,47,114,100,103,121,49,48,47,50,0,47,114,100,103,121,49,48,47,51,0,47,114,100,103,121,49,48,47,52,0,47,114,100,103,121,49,48,47,53,0,47,114,100,103,121,49,48,47,54,0,47,114,100,103,121,49,48,47,55,0,47,114,100,103,121,49,48,47,56,0,47,114,100,103,121,49,48,47,57,0,47,114,100,103,121,49,49,47,49,0,47,114,100,103,121,49,49,47,49,48,0,47,114,100,103,121,49,49,47,49,49,0,47,114,100,103,121,49,49,47,50,0,47,114,100,103,121,49,49,47,51,0,47,114,100,103,121,49,49,47,52,0,47,114,100,103,121,49,49,47,53,0,47,114,100,103,121,49,49,47,54,0,47,114,100,103,121,49,49,47,55,0,47,114,100,103,121,49,49,47,56,0,47,114,100,103,121,49,49,47,57,0,47,114,100,103,121,51,47,49,0,47,114,100,103,121,51,47,50,0,47,114,100,103,121,51,47,51,0,47,114,100,103,121,52,47,49,0,47,114,100,103,121,52,47,50,0,47,114,100,103,121,52,47,51,0,47,114,100,103,121,52,47,52,0,47,114,100,103,121,53,47,49,0,47,114,100,103,121,53,47,50,0,47,114,100,103,121,53,47,51,0,47,114,100,103,121,53,47,52,0,47,114,100,103,121,53,47,53,0,47,114,100,103,121,54,47,49,0,47,114,100,103,121,54,47,50,0,47,114,100,103,121,54,47,51,0,47,114,100,103,121,54,47,52,0,47,114,100,103,121,54,47,53,0,47,114,100,103,121,54,47,54,0,47,114,100,103,121],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+112664);allocate([55,47,49,0,47,114,100,103,121,55,47,50,0,47,114,100,103,121,55,47,51,0,47,114,100,103,121,55,47,52,0,47,114,100,103,121,55,47,53,0,47,114,100,103,121,55,47,54,0,47,114,100,103,121,55,47,55,0,47,114,100,103,121,56,47,49,0,47,114,100,103,121,56,47,50,0,47,114,100,103,121,56,47,51,0,47,114,100,103,121,56,47,52,0,47,114,100,103,121,56,47,53,0,47,114,100,103,121,56,47,54,0,47,114,100,103,121,56,47,55,0,47,114,100,103,121,56,47,56,0,47,114,100,103,121,57,47,49,0,47,114,100,103,121,57,47,50,0,47,114,100,103,121,57,47,51,0,47,114,100,103,121,57,47,52,0,47,114,100,103,121,57,47,53,0,47,114,100,103,121,57,47,54,0,47,114,100,103,121,57,47,55,0,47,114,100,103,121,57,47,56,0,47,114,100,103,121,57,47,57,0,47,114,100,112,117,51,47,49,0,47,114,100,112,117,51,47,50,0,47,114,100,112,117,51,47,51,0,47,114,100,112,117,52,47,49,0,47,114,100,112,117,52,47,50,0,47,114,100,112,117,52,47,51,0,47,114,100,112,117,52,47,52,0,47,114,100,112,117,53,47,49,0,47,114,100,112,117,53,47,50,0,47,114,100,112,117,53,47,51,0,47,114,100,112,117,53,47,52,0,47,114,100,112,117,53,47,53,0,47,114,100,112,117,54,47,49,0,47,114,100,112,117,54,47,50,0,47,114,100,112,117,54,47,51,0,47,114,100,112,117,54,47,52,0,47,114,100,112,117,54,47,53,0,47,114,100,112,117,54,47,54,0,47,114,100,112,117,55,47,49,0,47,114,100,112,117,55,47,50,0,47,114,100,112,117,55,47,51,0,47,114,100,112,117,55,47,52,0,47,114,100,112,117,55,47,53,0,47,114,100,112,117,55,47,54,0,47,114,100,112,117,55,47,55,0,47,114,100,112,117,56,47,49,0,47,114,100,112,117,56,47,50,0,47,114,100,112,117,56,47,51,0,47,114,100,112,117,56,47,52,0,47,114,100,112,117,56,47,53,0,47,114,100,112,117,56,47,54,0,47,114,100,112,117,56,47,55,0,47,114,100,112,117,56,47,56,0,47,114,100,112,117,57,47,49,0,47,114,100,112,117,57,47,50,0,47,114,100,112,117,57,47,51,0,47,114,100,112,117,57,47,52,0,47,114,100,112,117,57,47,53,0,47,114,100,112,117,57,47,54,0,47,114,100,112,117,57,47,55,0,47,114,100,112,117,57,47,56,0,47,114,100,112,117,57,47,57,0,47,114,100,121,108,98,117,49,48,47,49,0,47,114,100,121,108,98,117,49,48,47,49,48,0,47,114,100,121,108,98,117,49,48,47,50,0,47,114,100,121,108,98,117,49,48,47,51,0,47,114,100,121,108,98,117,49,48,47,52,0,47,114,100,121,108,98,117,49,48,47,53,0,47,114,100,121,108,98,117,49,48,47,54,0,47,114,100,121,108,98,117,49,48,47,55,0,47,114,100,121,108,98,117,49,48,47,56,0,47,114,100,121,108,98,117,49,48,47,57,0,47,114,100,121,108,98,117,49,49,47,49,0,47,114,100,121,108,98,117,49,49,47,49,48,0,47,114,100,121,108,98,117,49,49,47,49,49,0,47,114,100,121,108,98,117,49,49,47,50,0,47,114,100,121,108,98,117,49,49,47,51,0,47,114,100,121,108,98,117,49,49,47,52,0,47,114,100,121,108,98,117,49,49,47,53,0,47,114,100,121,108,98,117,49,49,47,54,0,47,114,100,121,108,98,117,49,49,47,55,0,47,114,100,121,108,98,117,49,49,47,56,0,47,114,100,121,108,98,117,49,49,47,57,0,47,114,100,121,108,98,117,51,47,49,0,47,114,100,121,108,98,117,51,47,50,0,47,114,100,121,108,98,117,51,47,51,0,47,114,100,121,108,98,117,52,47,49,0,47,114,100,121,108,98,117,52,47,50,0,47,114,100,121,108,98,117,52,47,51,0,47,114,100,121,108,98,117,52,47,52,0,47,114,100,121,108,98,117,53,47,49,0,47,114,100,121,108,98,117,53,47,50,0,47,114,100,121,108,98,117,53,47,51,0,47,114,100,121,108,98,117,53,47,52,0,47,114,100,121,108,98,117,53,47,53,0,47,114,100,121,108,98,117,54,47,49,0,47,114,100,121,108,98,117,54,47,50,0,47,114,100,121,108,98,117,54,47,51,0,47,114,100,121,108,98,117,54,47,52,0,47,114,100,121,108,98,117,54,47,53,0,47,114,100,121,108,98,117,54,47,54,0,47,114,100,121,108,98,117,55,47,49,0,47,114,100,121,108,98,117,55,47,50,0,47,114,100,121,108,98,117,55,47,51,0,47,114,100,121,108,98,117,55,47,52,0,47,114,100,121,108,98,117,55,47,53,0,47,114,100,121,108,98,117,55,47,54,0,47,114,100,121,108,98,117,55,47,55,0,47,114,100,121,108,98,117,56,47,49,0,47,114,100,121,108,98,117,56,47,50,0,47,114,100,121,108,98,117,56,47,51,0,47,114,100,121,108,98,117,56,47,52,0,47,114,100,121,108,98,117,56,47,53,0,47,114,100,121,108,98,117,56,47,54,0,47,114,100,121,108,98,117,56,47,55,0,47,114,100,121,108,98,117,56,47,56,0,47,114,100,121,108,98,117,57,47,49,0,47,114,100,121,108,98,117,57,47,50,0,47,114,100,121,108,98,117,57,47,51,0,47,114,100,121,108,98,117,57,47,52,0,47,114,100,121,108,98,117,57,47,53,0,47,114,100,121,108,98,117,57,47,54,0,47,114,100,121,108,98,117,57,47,55,0,47,114,100,121,108,98,117,57,47,56,0,47,114,100,121,108,98,117,57,47,57,0,47,114,100,121,108,103,110,49,48,47,49,0,47,114,100,121,108,103,110,49,48,47,49,48,0,47,114,100,121,108,103,110,49,48,47,50,0,47,114,100,121,108,103,110,49,48,47,51,0,47,114,100,121,108,103,110,49,48,47,52,0,47,114,100,121,108,103,110,49,48,47,53,0,47,114,100,121,108,103,110,49,48,47,54,0,47,114,100,121,108,103,110,49,48,47,55,0,47,114,100,121,108,103,110,49,48,47,56,0,47,114,100,121,108,103,110,49,48,47,57,0,47,114,100,121,108,103,110,49,49,47,49,0,47,114,100,121,108,103,110,49,49,47,49,48,0,47,114,100,121,108,103,110,49,49,47,49,49,0,47,114,100,121,108,103,110,49,49,47,50,0,47,114,100,121,108,103,110,49,49,47,51,0,47,114,100,121,108,103,110,49,49,47,52,0,47,114,100,121,108,103,110,49,49,47,53,0,47,114,100,121,108,103,110,49,49,47,54,0,47,114,100,121,108,103,110,49,49,47,55,0,47,114,100,121,108,103,110,49,49,47,56,0,47,114,100,121,108,103,110,49,49,47,57,0,47,114,100,121,108,103,110,51,47,49,0,47,114,100,121,108,103,110,51,47,50,0,47,114,100,121,108,103,110,51,47,51,0,47,114,100,121,108,103,110,52,47,49,0,47,114,100,121,108,103,110,52,47,50,0,47,114,100,121,108,103,110,52,47,51,0,47,114,100,121,108,103,110,52,47,52,0,47,114,100,121,108,103,110,53,47,49,0,47,114,100,121,108,103,110,53,47,50,0,47,114,100,121,108,103,110,53,47,51,0,47,114,100,121,108,103,110,53,47,52,0,47,114,100,121,108,103,110,53,47,53,0,47,114,100,121,108,103,110,54,47,49,0,47,114,100,121,108,103,110,54,47,50,0,47,114,100,121,108,103,110,54,47,51,0,47,114,100,121,108,103,110,54,47,52,0,47,114,100,121,108,103,110,54,47,53,0,47,114,100,121,108,103,110,54,47,54,0,47,114,100,121,108,103,110,55,47,49,0,47,114,100,121,108,103,110,55,47,50,0,47,114,100,121,108,103,110,55,47,51,0,47,114,100,121,108,103,110,55,47,52,0,47,114,100,121,108,103,110,55,47,53,0,47,114,100,121,108,103,110,55,47,54,0,47,114,100,121,108,103,110,55,47,55,0,47,114,100,121,108,103,110,56,47,49,0,47,114,100,121,108,103,110,56,47,50,0,47,114,100,121,108,103,110,56,47,51,0,47,114,100,121,108,103,110,56,47,52,0,47,114,100,121,108,103,110,56,47,53,0,47,114,100,121,108,103,110,56,47,54,0,47,114,100,121,108,103,110,56,47,55,0,47,114,100,121,108,103,110,56,47,56,0,47,114,100,121,108,103,110,57,47,49,0,47,114,100,121,108,103,110,57,47,50,0,47,114,100,121,108,103,110,57,47,51,0,47,114,100,121,108,103,110,57,47,52,0,47,114,100,121,108,103,110,57,47,53,0,47,114,100,121,108,103,110,57,47,54,0,47,114,100,121,108,103,110,57,47,55,0,47,114,100,121,108,103,110,57,47,56,0,47,114,100,121,108,103,110,57,47,57,0,47,114,101,100,115,51,47,49,0,47,114,101,100,115,51,47,50,0,47,114,101,100,115,51,47,51,0,47,114,101,100,115,52,47,49,0,47,114,101,100,115,52,47,50,0,47,114,101,100,115,52,47,51,0,47,114,101,100,115,52,47,52,0,47,114,101,100,115,53,47,49,0,47,114,101,100,115,53,47,50,0,47,114,101,100,115,53,47,51,0,47,114,101,100,115,53,47,52,0,47,114,101,100,115,53,47,53,0,47,114,101,100,115,54,47,49,0,47,114,101,100,115,54,47,50,0,47,114,101,100,115,54,47,51,0,47,114,101,100,115,54,47,52,0,47,114,101,100,115,54,47,53,0,47,114,101,100,115,54,47,54,0,47,114,101,100,115,55,47,49,0,47,114,101,100,115,55,47,50,0,47,114,101,100,115,55,47,51,0,47,114,101,100,115,55,47,52,0,47,114,101,100,115,55,47,53,0,47,114,101,100,115,55,47,54,0,47,114,101,100,115,55,47,55,0,47,114,101,100,115,56,47,49,0,47,114,101,100,115,56,47,50,0,47,114,101,100,115,56,47,51,0,47,114,101,100,115,56,47,52,0,47,114,101,100,115,56,47,53,0,47,114,101,100,115,56,47,54,0,47,114,101,100,115,56,47,55,0,47,114,101,100,115,56,47,56,0,47,114,101,100,115,57,47,49,0,47,114,101,100,115,57,47,50,0,47,114,101,100,115,57,47,51,0,47,114,101,100,115,57,47,52,0,47,114,101,100,115,57,47,53,0,47,114,101,100,115,57,47,54,0,47,114,101,100,115,57,47,55,0,47,114,101,100,115,57,47,56,0,47,114,101,100,115,57,47,57,0,47,115,101,116,49,51,47,49,0,47,115,101,116,49,51,47,50,0,47,115,101,116,49,51,47,51,0,47,115,101,116,49,52,47,49,0,47,115,101,116,49,52,47,50,0,47,115,101,116,49,52,47,51,0,47,115,101,116,49,52,47,52,0,47,115,101,116,49,53,47,49,0,47,115,101,116,49,53,47,50,0,47,115,101,116,49,53,47,51,0,47,115,101,116,49,53,47,52,0,47,115,101,116,49,53,47,53,0,47,115,101,116,49,54,47,49,0,47,115,101,116,49,54,47,50,0,47,115,101,116,49,54,47,51,0,47,115,101,116,49,54,47,52,0,47,115,101,116,49,54,47,53,0,47,115,101,116,49,54,47,54,0,47,115,101,116,49,55,47,49,0,47,115,101,116,49,55,47,50,0,47,115,101,116,49,55,47,51,0,47,115,101,116,49,55,47,52,0,47,115,101,116,49,55,47,53,0,47,115,101,116,49,55,47,54,0,47,115,101,116,49,55,47,55,0,47,115,101,116,49,56,47,49,0,47,115,101,116,49,56,47,50,0,47,115,101,116,49,56,47,51,0,47,115,101,116,49,56,47,52,0,47,115,101,116,49,56,47,53,0,47,115,101,116,49,56,47,54,0,47,115,101,116,49,56,47,55,0,47,115,101,116,49,56,47,56,0,47,115,101,116,49,57,47,49,0,47,115,101,116,49,57,47,50,0,47,115,101,116,49,57,47,51,0,47,115,101,116,49,57,47,52,0,47,115,101,116,49,57,47,53,0,47,115,101,116,49,57,47,54,0,47,115,101,116,49,57,47,55,0,47,115,101,116,49,57,47,56,0,47,115,101,116,49,57,47,57,0,47,115,101,116,50,51,47,49,0,47,115,101,116,50,51,47,50,0,47,115,101,116,50,51,47,51,0,47,115,101,116,50,52,47,49,0,47,115,101,116,50,52,47,50,0,47,115,101,116,50,52,47,51,0,47,115,101,116,50,52,47,52,0,47,115,101,116,50,53,47,49,0,47,115,101,116,50,53,47,50,0,47,115,101,116,50,53,47,51,0,47,115,101,116,50,53,47,52,0,47,115,101,116,50,53,47,53,0,47,115,101,116,50,54,47,49,0,47,115,101,116,50,54,47,50,0,47,115,101,116,50,54,47,51,0,47,115,101,116,50,54,47,52,0,47,115,101,116,50,54,47,53,0,47,115,101,116,50,54,47,54,0,47,115,101,116,50,55,47,49,0,47,115,101,116,50,55,47,50,0,47,115,101,116,50,55,47,51,0,47,115,101,116,50,55,47,52,0,47,115,101,116,50,55,47,53,0,47,115,101,116,50,55,47,54,0,47,115,101,116,50,55,47,55,0,47,115,101,116,50,56,47,49,0,47,115,101,116,50,56,47,50,0,47,115,101,116,50,56,47,51,0,47,115,101,116,50,56,47,52,0,47,115,101,116,50,56,47,53,0,47,115,101,116,50,56,47,54,0,47,115,101,116,50,56,47,55,0,47,115,101,116,50,56,47,56,0,47,115,101,116,51,49,48,47,49,0,47,115,101,116,51,49,48,47,49,48,0,47,115,101,116,51,49,48,47,50,0,47,115,101,116,51,49,48,47,51,0,47,115,101,116,51,49,48,47,52,0,47,115,101,116,51,49,48,47,53,0,47,115,101,116,51,49,48,47,54,0,47,115,101,116,51,49,48,47,55,0,47,115,101,116,51,49,48,47,56,0,47,115,101,116,51,49,48,47,57,0,47,115,101,116,51,49,49,47,49,0,47,115,101,116,51,49,49,47,49,48,0,47,115,101,116,51,49,49,47,49,49,0,47,115,101,116,51,49,49,47,50,0,47,115,101,116,51,49,49,47,51,0,47,115,101,116,51,49,49,47,52,0,47,115,101,116,51,49,49,47,53,0,47,115,101,116,51,49,49,47,54,0,47,115,101,116,51,49,49,47,55,0,47,115,101,116,51,49,49,47,56,0,47,115,101,116,51,49,49,47,57,0,47,115,101,116,51,49,50,47,49,0,47,115,101,116,51,49,50,47,49,48,0,47,115,101,116,51,49,50,47,49,49,0,47,115,101,116,51,49,50,47,49,50,0,47,115,101,116,51,49,50,47,50,0,47,115,101,116,51,49,50,47,51,0,47,115,101,116,51,49,50,47,52,0,47,115,101,116,51,49,50,47,53,0,47,115,101,116,51,49,50,47,54,0,47,115,101,116,51,49,50,47,55,0,47,115,101,116,51,49,50,47,56,0,47,115,101,116,51,49,50,47,57,0,47,115,101,116,51,51,47,49,0,47,115,101,116,51,51,47,50,0,47,115,101,116,51,51,47,51,0,47,115,101,116,51,52,47,49,0,47,115,101,116,51,52,47,50,0,47,115,101,116,51,52,47,51,0,47,115,101,116,51,52,47,52,0,47,115,101,116,51,53,47,49,0,47,115,101,116,51,53,47,50,0,47,115,101,116,51,53,47,51,0,47,115,101,116,51,53,47,52,0,47,115,101,116,51,53,47,53,0,47,115,101,116,51,54,47,49,0,47,115,101,116,51,54,47,50,0,47,115,101,116,51,54,47,51,0,47,115,101,116,51,54,47,52,0,47,115,101,116,51,54,47,53,0,47,115,101,116,51,54,47,54,0,47,115,101,116,51,55,47,49,0,47,115,101,116,51,55,47,50,0,47,115,101,116,51,55,47,51,0,47,115,101,116,51,55,47,52,0,47,115,101,116,51,55,47,53,0,47,115,101,116,51,55,47,54,0,47,115,101,116,51,55,47,55,0,47,115,101,116,51,56,47,49,0,47,115,101,116,51,56,47,50,0,47,115,101,116,51,56,47,51,0,47,115,101,116,51,56,47,52,0,47,115,101,116,51,56,47,53,0,47,115,101,116,51,56,47,54,0,47,115,101,116,51,56,47,55,0,47,115,101,116,51,56,47,56,0,47,115,101,116,51,57,47,49,0,47,115,101,116,51,57,47,50,0,47,115,101,116,51,57,47,51,0,47,115,101,116,51,57,47,52,0,47,115,101,116,51,57,47,53,0,47,115,101,116,51,57,47,54,0,47,115,101,116,51,57,47,55,0,47,115,101,116,51,57,47,56,0,47,115,101,116,51,57,47,57,0,47,115,112,101,99,116,114,97,108,49,48,47,49,0,47,115,112,101,99,116,114,97,108,49,48,47,49,48,0,47,115,112,101,99,116,114,97,108,49,48,47,50,0,47,115,112,101,99,116,114,97,108,49,48,47,51,0,47,115,112,101,99,116,114,97,108,49,48,47,52,0,47,115,112,101,99,116,114,97,108,49,48,47,53,0,47,115,112,101,99,116,114,97,108,49,48,47,54,0,47,115,112,101,99,116,114,97,108,49,48,47,55,0,47,115,112,101,99,116,114,97,108,49,48,47,56,0,47,115,112,101,99,116,114,97,108,49,48,47,57,0,47,115,112,101,99,116,114,97,108,49,49,47,49,0,47,115,112,101,99,116,114,97,108,49,49,47,49,48,0,47,115,112,101,99,116,114,97,108,49,49,47,49,49,0,47,115,112,101,99,116,114,97,108,49,49,47,50,0,47,115,112,101,99,116,114,97,108,49,49,47,51,0,47,115,112,101,99,116,114,97,108,49,49,47,52,0,47,115,112,101,99,116,114,97,108,49,49,47,53,0,47,115,112,101,99,116,114,97,108,49,49,47,54,0,47,115,112,101,99,116,114,97,108,49,49,47,55,0,47,115,112,101,99,116,114,97,108,49,49,47,56,0,47,115,112,101,99,116,114,97,108,49,49,47,57,0,47,115,112,101,99,116,114,97,108,51,47,49,0,47,115,112,101,99,116,114,97,108,51,47,50,0,47,115,112,101,99,116,114,97,108,51,47,51,0,47,115,112,101,99,116,114,97,108,52,47,49,0,47,115,112,101,99,116,114,97,108,52,47,50,0,47,115,112,101,99,116,114,97,108,52,47,51,0,47,115,112,101,99,116,114,97,108,52,47,52,0,47,115,112,101,99,116,114,97,108,53,47,49,0,47,115,112,101,99,116,114,97,108,53,47,50,0,47,115,112,101,99,116,114,97,108,53,47,51,0,47,115,112,101,99,116,114,97,108,53,47,52,0,47,115,112,101,99,116,114,97,108,53,47,53,0,47,115,112,101,99,116,114,97,108,54,47,49,0,47,115,112,101,99,116,114,97,108,54,47,50,0,47,115,112,101,99,116,114,97,108,54,47,51,0,47,115,112,101,99,116,114,97,108,54,47,52,0,47,115,112,101,99,116,114,97,108,54,47,53,0,47,115,112,101,99,116,114,97,108,54,47,54,0,47,115,112,101,99,116,114,97,108,55,47,49,0,47,115,112,101,99,116,114,97,108,55,47,50,0,47,115,112,101,99,116,114,97,108,55,47,51,0,47,115,112,101,99,116,114,97,108,55,47,52,0,47,115,112,101,99,116,114,97,108,55,47,53,0,47,115,112,101,99,116,114,97,108,55,47,54,0,47,115,112,101,99,116,114,97,108,55,47,55,0,47,115,112,101,99,116,114,97,108,56,47,49,0,47,115,112,101,99,116,114,97,108,56,47,50,0,47,115,112,101,99,116,114,97,108,56,47,51,0,47,115,112,101,99,116,114,97,108,56,47,52,0,47,115,112,101,99,116,114,97,108,56,47,53,0,47,115,112,101,99,116,114,97,108,56,47,54,0,47,115,112,101,99,116,114,97,108,56,47,55,0,47,115,112,101,99,116,114,97,108,56,47,56,0,47,115,112,101,99,116,114,97,108,57,47,49,0,47,115,112,101,99,116,114,97,108,57,47,50,0,47,115,112,101,99,116,114,97,108,57,47,51,0,47,115,112,101,99,116,114,97,108,57,47,52,0,47,115,112,101,99,116,114,97,108,57,47,53,0,47,115,112,101,99,116,114,97,108,57,47,54,0,47,115,112,101,99,116,114,97,108,57,47,55,0,47,115,112,101,99,116,114,97,108,57,47,56,0,47,115,112,101,99,116,114,97,108,57,47,57,0,47,115,118,103,47,97,108,105,99,101,98,108,117,101,0,47,115,118,103,47,97,110,116,105,113,117,101,119,104,105,116,101,0,47,115,118,103,47,97,113,117,97,0,47,115,118,103,47,97,113,117,97,109,97,114,105,110,101,0,47,115,118,103,47,97,122,117,114,101,0,47,115,118,103,47,98,101,105,103,101,0,47,115,118,103,47,98,105,115,113,117,101,0,47,115,118,103,47,98,108,97,99,107,0,47,115,118,103,47,98,108,97,110,99,104,101,100,97,108,109,111,110,100,0,47,115,118,103,47,98,108,117,101,0,47,115,118,103,47,98,108,117,101,118,105,111,108,101,116,0,47,115,118,103,47,98,114,111,119,110,0,47,115,118,103,47,98,117,114,108,121,119,111,111,100,0,47,115,118,103,47,99,97,100,101,116,98,108,117,101,0,47,115,118,103,47,99,104,97,114,116,114,101,117,115,101,0,47,115,118,103,47,99,104,111,99,111,108,97,116,101,0,47,115,118,103,47,99,111,114,97,108,0,47,115,118,103,47,99,111,114,110,102,108,111,119,101,114,98,108,117,101,0,47,115,118,103,47,99,111,114,110,115,105,108,107,0,47,115,118,103,47,99,114,105,109,115,111,110,0,47,115,118,103,47,99,121,97,110,0,47,115,118,103,47,100,97,114,107,98,108,117,101,0,47,115,118,103,47,100,97,114,107,99,121,97,110,0,47,115,118,103,47,100,97,114,107,103,111,108,100,101,110,114,111,100,0,47,115,118,103,47,100,97,114,107,103,114,97,121,0,47,115,118,103,47,100,97,114,107,103,114,101,101,110,0,47,115,118,103,47,100,97,114,107,103,114,101,121,0,47,115,118,103,47,100,97,114,107,107,104,97,107,105,0,47,115,118,103,47,100,97,114,107,109,97,103,101,110,116,97,0,47,115,118,103,47,100,97,114,107,111,108,105,118,101,103,114,101,101,110,0,47,115,118,103,47,100,97,114,107,111,114,97,110,103,101,0,47,115,118,103,47,100,97,114,107,111,114,99,104,105,100,0,47,115,118,103,47,100,97,114,107,114,101,100,0,47,115,118,103,47,100,97,114,107,115,97,108,109,111,110,0,47,115,118,103,47,100,97,114,107,115,101,97,103,114,101,101,110,0,47,115,118,103,47,100,97,114,107,115,108,97,116,101,98,108,117,101,0,47,115,118,103,47,100,97,114,107,115,108,97,116,101,103,114,97,121,0,47,115,118,103,47,100,97,114,107,115,108,97,116,101,103,114,101,121,0,47,115,118,103,47,100,97,114,107,116,117,114,113,117,111,105,115,101,0,47,115,118,103,47,100,97,114,107,118,105,111,108,101,116,0,47,115,118,103,47,100,101,101,112,112,105,110,107,0,47,115,118,103,47,100,101,101,112,115,107,121,98,108,117,101,0,47,115,118,103,47,100,105,109,103,114,97,121,0,47,115,118,103,47,100,105,109,103,114,101,121,0,47,115,118,103,47,100,111,100,103,101,114,98,108,117,101,0,47,115,118,103,47,102,105,114,101,98,114,105,99,107,0,47,115,118,103,47,102,108,111,114,97,108,119,104,105,116,101,0,47,115,118,103,47,102,111,114,101,115,116,103,114,101,101,110,0,47,115,118,103,47,102,117,99,104,115,105,97,0,47,115,118,103,47,103,97,105,110,115,98,111,114,111,0,47,115,118,103,47,103,104,111,115,116,119,104,105,116,101,0,47,115,118,103,47,103,111,108,100,0,47,115,118,103,47,103,111,108,100,101,110,114,111,100,0,47,115,118,103,47,103,114,97,121,0,47,115,118,103,47,103,114,101,101,110,0,47,115,118,103,47,103,114,101,101,110,121,101,108,108,111,119,0,47,115,118,103,47,103,114,101,121,0,47,115,118,103,47,104,111,110,101,121,100,101,119,0,47,115,118,103,47,104,111,116,112,105,110,107,0,47,115,118,103,47,105,110,100,105,97,110,114,101,100,0,47,115,118,103,47,105,110,100,105,103,111,0,47,115,118,103,47,105,118,111,114,121,0,47,115,118,103,47,107,104,97,107,105,0,47,115,118,103,47,108,97,118,101,110,100,101,114,0,47,115,118,103,47,108,97,118,101,110,100,101,114,98,108,117,115,104,0,47,115,118,103,47,108,97,119,110,103,114,101,101,110,0,47,115,118,103,47,108,101,109,111,110,99,104,105,102,102,111,110,0,47,115,118,103,47,108,105,103,104,116,98,108,117,101,0,47,115,118,103,47,108,105,103,104,116,99,111,114,97,108,0,47,115,118,103,47,108,105,103,104,116,99,121,97,110,0,47,115,118,103,47,108,105,103,104,116,103,111,108,100,101,110,114,111,100,121,101,108,108,111,119,0,47,115,118,103,47,108,105,103,104,116,103,114,97,121,0,47,115,118,103,47,108,105,103,104,116,103,114,101,101,110,0,47,115,118,103,47,108,105,103,104,116,103,114,101,121,0,47,115,118,103,47,108,105,103,104,116,112,105,110,107,0,47,115,118,103,47,108,105,103,104,116,115,97,108,109,111,110,0,47,115,118,103,47,108,105,103,104,116,115,101,97,103,114,101,101,110,0,47,115,118,103,47,108,105,103,104,116,115,107,121,98,108,117,101,0,47,115,118,103,47,108,105,103,104,116,115,108,97,116,101,103,114,97,121,0,47,115,118,103,47,108,105,103,104,116,115,108,97,116,101,103,114,101,121,0,47,115,118,103,47,108,105,103,104,116,115,116,101,101,108,98,108,117,101,0,47,115,118,103,47,108,105,103,104,116,121,101,108,108,111,119,0,47,115,118,103,47,108,105,109,101,0,47,115,118,103,47,108,105,109,101,103,114,101,101,110,0,47,115,118,103,47,108,105,110,101,110,0,47,115,118,103,47,109,97,103,101,110,116,97,0,47,115,118,103,47,109,97,114,111,111,110,0,47,115,118,103,47,109,101,100,105,117,109,97,113,117,97,109,97,114,105,110,101,0,47,115,118,103,47,109,101,100,105,117,109,98,108,117,101,0,47,115,118,103,47,109,101,100,105,117,109,111,114,99,104,105,100,0,47,115,118,103,47,109,101,100,105,117,109,112,117,114,112,108,101,0,47,115,118,103,47,109,101,100,105,117,109,115,101,97,103,114,101,101,110,0,47,115,118,103,47,109,101,100,105,117,109,115,108,97,116,101,98,108,117,101,0,47,115,118,103,47,109,101,100,105,117,109,115,112,114,105,110,103,103,114,101,101,110,0,47,115,118,103,47,109,101,100,105,117,109,116,117,114,113,117,111,105,115,101,0,47,115,118,103,47,109,101,100,105,117,109,118,105,111,108,101,116,114,101,100,0,47,115,118,103,47,109,105,100,110,105,103,104,116,98,108,117,101,0,47,115,118,103,47,109,105,110,116,99,114,101,97,109,0,47,115,118,103,47,109,105,115,116,121,114,111,115,101,0,47,115,118,103,47,109,111,99,99,97,115,105,110,0,47,115,118,103,47,110,97,118,97,106,111,119,104,105,116,101,0,47,115,118,103,47,110,97,118,121,0,47,115,118,103,47,111,108,100,108,97,99,101,0,47,115,118,103,47,111,108,105,118,101,0,47,115,118,103,47,111,108,105,118,101,100,114,97,98,0,47,115,118,103,47,111,114,97,110,103,101,0,47,115,118,103,47,111,114,97,110,103,101,114,101,100,0,47,115,118,103,47,111,114,99,104,105,100,0,47,115,118,103,47,112,97,108,101,103,111,108,100,101,110,114,111,100,0,47,115,118,103,47,112,97,108,101,103,114,101,101,110,0,47,115,118,103,47,112,97,108,101,116,117,114,113,117,111,105,115,101,0,47,115,118,103,47,112,97,108,101,118,105,111,108,101,116,114,101,100,0,47,115,118,103,47,112,97,112,97,121,97,119,104,105,112,0,47,115,118,103,47,112,101,97,99,104,112,117,102,102,0,47,115,118,103,47,112,101,114,117,0,47,115,118,103,47,112,105,110,107,0,47,115,118,103,47,112,108,117,109,0,47,115,118,103,47,112,111,119,100,101,114,98,108,117,101,0,47,115,118,103,47,112,117,114,112,108,101,0,47,115,118,103,47,114,101,100,0,47,115,118,103,47,114,111,115,121,98,114,111,119,110,0,47,115,118,103,47,114,111,121,97,108,98,108,117,101,0,47,115,118,103,47,115,97,100,100,108,101,98,114,111,119,110,0,47,115,118,103,47,115,97,108,109,111,110,0,47,115,118,103,47,115,97,110,100,121,98,114,111,119,110,0,47,115,118,103,47,115,101,97,103,114,101,101,110,0,47,115,118,103,47,115,101,97,115,104,101,108,108,0,47,115,118,103,47,115,105,101,110,110,97,0,47,115,118,103,47,115,105,108,118,101,114,0,47,115,118,103,47,115,107,121,98,108,117,101,0,47,115,118,103,47,115,108,97,116,101,98,108,117,101,0,47,115,118,103,47,115,108,97,116,101,103,114,97,121,0,47,115,118,103,47,115,108,97,116,101,103,114,101,121,0,47,115,118,103,47,115,110,111,119,0,47,115,118,103,47,115,112,114,105,110,103,103,114,101,101,110,0,47,115,118,103,47,115,116,101,101,108,98,108,117,101,0,47,115,118,103,47,116,97,110,0,47,115,118,103,47,116,101,97,108,0,47,115,118,103,47,116,104,105,115,116,108,101,0,47,115,118,103,47,116,111,109,97,116,111,0,47,115,118,103,47,116,117,114,113,117,111,105,115,101,0,47,115,118,103,47,118,105,111,108,101,116,0,47,115,118,103,47,119,104,101,97,116,0,47,115,118,103,47,119,104,105,116,101,0,47,115,118,103,47,119,104,105,116,101,115,109,111,107,101,0,47,115,118,103,47,121,101,108,108,111,119,0,47,115,118,103,47,121,101,108,108,111,119,103,114,101,101,110,0,47,121,108,103,110,51,47,49,0,47,121,108,103,110,51,47,50,0,47,121,108,103,110,51,47,51,0,47,121,108,103,110,52,47,49,0,47,121,108,103,110,52,47,50,0,47,121,108,103,110,52,47,51,0,47,121,108,103,110,52,47,52,0,47,121,108,103,110,53,47,49,0,47,121,108,103,110,53,47,50,0,47,121,108,103,110,53,47,51,0,47,121,108,103,110,53,47,52,0,47,121,108,103,110,53,47,53,0,47,121,108,103,110,54,47,49,0,47,121,108,103,110,54,47,50,0,47,121,108,103,110,54,47,51,0,47,121,108,103,110,54,47,52,0,47,121,108,103,110,54,47,53,0,47,121,108,103,110,54,47,54,0,47,121,108,103,110,55,47,49,0,47,121,108,103,110,55,47,50,0,47,121,108,103,110,55,47,51,0,47,121,108,103,110,55,47,52,0,47,121,108,103,110,55,47,53,0,47,121,108,103,110,55,47,54,0,47,121,108,103,110,55,47,55,0,47,121,108,103,110,56,47,49,0,47,121,108,103,110,56,47,50,0,47,121,108,103,110,56,47,51,0,47,121,108,103,110,56,47,52,0,47,121,108,103,110,56,47,53,0,47,121,108,103,110,56,47,54,0,47,121,108,103,110,56,47,55,0,47,121,108,103,110,56,47,56,0,47,121,108,103,110,57,47,49,0,47,121,108,103,110,57,47,50,0,47,121,108,103,110,57,47,51,0,47,121,108,103,110,57,47,52,0,47,121,108,103,110,57,47,53,0,47,121,108,103,110,57,47,54,0,47,121,108,103,110,57,47,55,0,47,121,108,103,110,57,47,56,0,47,121,108,103,110,57,47,57,0,47,121,108,103,110,98,117,51,47,49,0,47,121,108,103,110,98,117,51,47,50,0,47,121,108,103,110,98,117,51,47,51,0,47,121,108,103,110,98,117,52,47,49,0,47,121,108,103,110,98,117,52,47,50,0,47,121,108,103,110,98,117,52,47,51,0,47,121,108,103,110,98,117,52,47,52,0,47,121,108,103,110,98,117,53,47,49,0,47,121,108,103,110,98,117,53,47,50,0,47,121,108,103,110,98,117,53,47,51,0,47,121,108,103,110,98,117,53,47,52,0,47,121,108,103,110,98,117,53,47,53,0,47,121,108,103,110,98,117,54,47,49,0,47,121,108,103,110,98,117,54,47,50,0,47,121,108,103,110,98,117,54,47,51,0,47,121,108,103,110,98,117,54,47,52,0,47,121,108,103,110,98,117,54,47,53,0,47,121,108,103,110,98,117,54,47,54,0,47,121,108,103,110,98,117,55,47,49,0,47,121,108,103,110,98,117,55,47,50,0,47,121,108,103,110,98,117,55,47,51,0,47,121,108,103,110,98,117,55,47,52,0,47,121,108,103,110,98,117,55,47,53,0,47,121,108,103,110,98,117,55,47,54,0,47,121,108,103,110,98,117,55,47,55,0,47,121,108,103,110,98,117,56,47,49,0,47,121,108,103,110,98,117,56,47,50,0,47,121,108,103,110,98,117,56,47,51,0,47,121,108,103,110,98,117,56,47,52,0,47,121,108,103,110,98,117,56,47,53,0,47,121,108,103,110,98,117,56,47,54,0,47,121,108,103,110,98,117,56,47,55,0,47,121,108,103,110,98,117,56,47,56,0,47,121,108,103,110,98,117,57,47,49,0,47,121,108,103,110,98,117,57,47,50,0,47,121,108,103,110,98,117,57,47,51,0,47,121,108,103,110,98,117,57,47,52,0,47,121,108,103,110,98,117,57,47,53,0,47,121,108,103,110,98,117,57,47,54,0,47,121,108,103,110,98,117,57,47,55,0,47,121,108,103,110,98,117,57,47,56,0,47,121,108,103,110,98,117,57,47,57,0,47,121,108,111,114,98,114,51,47,49,0,47,121,108,111,114,98,114,51,47,50,0,47,121,108,111,114,98,114,51,47,51,0,47,121,108,111,114,98,114,52,47,49,0,47,121,108,111,114,98,114,52,47,50,0,47,121,108,111,114,98,114,52,47,51,0,47,121,108,111,114,98,114,52,47,52,0,47,121,108,111,114,98,114,53,47,49,0,47,121,108,111,114,98,114,53,47,50,0,47,121,108,111,114,98,114,53,47,51,0,47,121,108,111,114,98,114,53,47,52,0,47,121,108,111,114,98,114,53,47,53,0,47,121,108,111,114,98,114,54,47,49,0,47,121,108,111,114,98,114,54,47,50,0,47,121,108,111,114,98,114,54,47,51,0,47,121,108,111,114,98,114,54,47,52,0,47,121,108,111,114,98,114,54,47,53,0,47,121,108,111,114,98,114,54,47,54,0,47,121,108,111,114,98,114,55,47,49,0,47,121,108,111,114,98,114,55,47,50,0,47,121,108,111,114,98,114,55,47,51,0,47,121,108,111,114,98,114,55,47,52,0,47,121,108,111,114,98,114,55,47,53,0,47,121,108,111,114,98,114,55,47,54,0,47,121,108,111,114,98,114,55,47,55,0,47,121,108,111,114,98,114,56,47,49,0,47,121,108,111,114,98,114,56,47,50,0,47,121,108,111,114,98,114,56,47,51,0,47,121,108,111,114,98,114,56,47,52,0,47,121,108,111,114,98,114,56,47,53,0,47,121,108,111,114,98,114,56,47,54,0,47,121,108,111,114,98,114,56,47,55,0,47,121,108,111,114,98,114,56,47,56,0,47,121,108,111,114,98,114,57,47,49,0,47,121,108,111,114,98,114,57,47,50,0,47,121,108,111,114,98,114,57,47,51,0,47,121,108,111,114,98,114,57,47,52,0,47,121,108,111,114,98,114,57,47,53,0,47,121,108,111,114,98,114,57,47,54,0,47,121,108,111,114,98,114,57,47,55,0,47,121,108,111,114,98,114,57,47,56,0,47,121,108,111,114,98,114,57,47,57,0,47,121,108,111,114,114,100,51,47,49,0,47,121,108,111,114,114,100,51,47,50,0,47,121,108,111,114,114,100,51,47,51,0,47,121,108,111,114,114,100,52,47,49,0,47,121,108,111,114,114,100,52,47,50,0,47,121,108,111,114,114,100,52,47,51,0,47,121,108,111,114,114,100,52,47,52,0,47,121,108,111,114,114,100,53,47,49,0,47,121,108,111,114,114,100,53,47,50,0,47,121,108,111,114,114,100,53,47,51,0,47,121,108,111,114,114,100,53,47,52,0,47,121,108,111,114,114,100,53,47,53,0,47,121,108,111,114,114,100,54,47,49,0,47,121,108,111,114,114,100,54,47,50,0,47,121,108,111,114,114,100,54,47,51,0,47,121,108,111,114,114,100,54,47,52,0,47,121,108,111,114,114,100,54,47,53,0,47,121,108,111,114,114,100,54,47,54,0,47,121,108,111,114,114,100,55,47,49,0,47,121,108,111,114,114,100,55,47,50,0,47,121,108,111,114,114,100,55,47,51,0,47,121,108,111,114,114,100,55,47,52,0,47,121,108,111,114,114,100,55,47,53,0,47,121,108,111,114,114,100,55,47,54,0,47,121,108,111,114,114,100,55,47,55,0,47,121,108,111,114,114,100,56,47,49,0,47,121,108,111,114,114,100,56,47,50,0,47,121,108,111,114,114,100,56,47,51,0,47,121,108,111,114,114,100,56,47,52,0,47,121,108,111,114,114,100,56,47,53,0,47,121,108,111,114,114,100,56,47,54,0,47,121,108,111,114,114,100,56,47,55,0,47,121,108,111,114,114,100,56,47,56,0,47,121,108,111,114,114,100,57,47,49,0,47,121,108,111,114,114,100,57,47,50,0,47,121,108,111,114,114,100,57,47,51,0,47,121,108,111,114,114,100,57,47,52,0,47,121,108,111,114,114,100,57,47,53,0,47,121,108,111,114,114,100,57,47,54,0,47,121,108,111,114,114,100,57,47,55,0,47,121,108,111,114,114,100,57,47,56,0,47,121,108,111,114,114,100,57,47,57,0,97,108,105,99,101,98,108,117,101,0,97,110,116,105,113,117,101,119,104,105,116,101,0,97,110,116,105,113,117,101,119,104,105,116,101,49,0,97,110,116,105,113,117,101,119,104,105,116,101,50,0,97,110,116,105,113,117,101,119,104,105,116,101,51,0,97,110,116,105,113,117,101,119,104,105,116,101,52,0,97,113,117,97,109,97,114,105,110,101,0,97,113,117,97,109,97,114,105,110,101,49,0,97,113,117,97,109,97,114,105,110,101,50,0,97,113,117,97,109,97,114,105,110,101,51,0,97,113,117,97,109,97,114,105,110,101,52,0,97,122,117,114,101,0,97,122,117,114,101,49,0,97,122,117,114,101,50,0,97,122,117,114,101,51,0,97,122,117,114,101,52,0,98,101,105,103,101,0,98,105,115,113,117,101,0,98,105,115,113,117,101,49,0,98,105,115,113,117,101,50,0,98,105,115,113,117,101,51,0,98,105,115,113,117,101,52,0,98,108,97,110,99,104,101,100,97,108,109,111,110,100,0,98,108,117,101,0,98,108,117,101,49,0,98,108,117,101,50,0,98,108,117,101,51,0,98,108,117,101,52,0,98,108,117,101,118,105,111,108,101,116,0,98,114,111,119,110,0,98,114,111,119,110,49,0,98,114,111,119,110,50,0,98,114,111,119,110,51,0,98,114,111,119,110,52,0,98,117,114,108,121,119,111,111,100,0,98,117,114,108,121,119,111,111,100,49,0,98,117,114,108,121,119,111,111,100,50,0,98,117,114,108,121,119,111,111,100,51,0,98,117,114,108,121,119,111,111,100,52,0,99,97,100,101,116,98,108,117,101,0,99,97,100,101,116,98,108,117,101,49,0,99,97,100,101,116,98,108,117,101,50,0,99,97,100,101,116,98,108,117,101,51,0,99,97,100,101,116,98,108,117,101,52,0,99,104,97,114,116,114,101,117,115,101,0,99,104,97,114,116,114,101,117,115,101,49,0,99,104,97,114,116,114,101,117,115,101,50,0,99,104,97,114,116,114,101,117,115,101,51,0,99,104,97,114,116,114,101,117,115,101,52,0,99,104,111,99,111,108,97,116,101,0,99,104,111,99,111,108,97,116,101,49,0,99,104,111,99,111,108,97,116,101,50,0,99,104,111,99,111,108,97,116,101,51,0,99,104,111,99,111,108,97,116,101,52,0,99,111,114,97,108,0,99,111,114,97,108,49,0,99,111,114,97,108,50,0,99,111,114,97,108,51,0,99,111,114,97,108,52,0,99,111,114,110,102,108,111,119,101,114,98,108,117,101,0,99,111,114,110,115,105,108,107,0,99,111,114,110,115,105,108,107,49,0,99,111,114,110,115,105,108,107,50,0,99,111,114,110,115,105,108,107,51,0,99,111,114,110,115,105,108,107,52,0,99,114,105,109,115,111,110,0,99,121,97,110,0,99,121,97,110,49,0,99,121,97,110,50,0,99,121,97,110,51,0,99,121,97,110,52,0,100,97,114,107,103,111,108,100,101,110,114,111,100,0,100,97,114,107,103,111,108,100,101,110,114,111,100,49,0,100,97,114,107,103,111,108,100,101,110,114,111,100,50,0,100,97,114,107,103,111,108,100,101,110,114,111,100,51,0,100,97,114,107,103,111,108,100,101,110,114,111,100,52,0,100,97,114,107,103,114,101,101,110,0,100,97,114,107,107,104,97,107,105,0,100,97,114,107,111,108,105,118,101,103,114,101,101,110,0,100,97,114,107,111,108,105,118,101,103,114,101,101,110,49,0,100,97,114,107,111,108,105,118,101,103,114,101,101,110,50,0,100,97,114,107,111,108,105,118,101,103,114,101,101,110,51,0,100,97,114,107,111,108,105,118,101,103,114,101,101,110,52,0,100,97,114,107,111,114,97,110,103,101,0,100,97,114,107,111,114,97,110,103,101,49,0,100,97,114,107,111,114,97,110,103,101,50,0,100,97,114,107,111,114,97,110,103,101,51,0,100,97,114,107,111,114,97,110,103,101,52,0,100,97,114,107,111,114,99,104,105,100,0,100,97,114,107,111,114,99,104,105,100,49,0,100,97,114,107,111,114,99,104,105,100,50,0,100,97,114,107,111,114,99,104,105,100,51,0,100,97,114,107,111,114,99,104,105,100,52,0,100,97,114,107,115,97,108,109,111,110,0,100,97,114,107,115,101,97,103,114,101,101,110,0,100,97,114,107,115,101,97,103,114,101,101,110,49,0,100,97,114,107,115,101,97,103,114,101,101,110,50,0,100,97,114,107,115,101,97,103,114,101,101,110,51,0,100,97,114,107,115,101,97,103,114,101,101,110,52,0,100,97,114,107,115,108,97,116,101,98,108,117,101,0,100,97,114,107,115,108,97,116,101,103,114,97,121,0,100,97,114,107,115,108,97,116,101,103,114,97,121,49,0,100,97,114,107,115,108,97,116,101,103,114,97,121,50,0,100,97,114,107,115,108,97,116,101,103,114,97,121,51,0,100,97,114,107,115,108,97,116,101,103,114,97,121,52,0,100,97,114,107,115,108,97,116,101,103,114,101,121,0,100,97,114,107,116,117,114,113,117,111,105,115,101,0,100,97,114,107,118,105,111,108,101,116,0,100,101,101,112,112,105,110,107,0,100,101,101,112,112,105,110,107,49,0,100,101,101,112,112,105,110,107,50,0,100,101,101,112,112,105,110,107,51,0,100,101,101,112,112,105,110,107,52,0,100,101,101,112,115,107,121,98,108,117,101,0,100,101,101,112,115,107,121,98,108,117,101,49,0,100,101,101,112,115,107,121,98,108,117,101,50,0,100,101,101,112,115,107,121,98,108,117,101,51,0,100,101,101,112,115,107,121,98,108,117,101,52,0,100,105,109,103,114,97,121,0,100,105,109,103,114,101,121,0,100,111,100,103,101,114,98,108,117,101,0,100,111,100,103,101,114,98,108,117,101,49,0,100,111,100,103,101,114,98,108,117,101,50,0,100,111,100,103,101,114,98,108,117,101,51,0,100,111,100,103,101,114,98,108,117,101,52,0,102,105,114,101,98,114,105,99,107,0,102,105,114,101,98,114,105,99,107,49,0,102,105,114,101,98,114,105,99,107,50,0,102,105,114,101,98,114,105,99,107,51,0,102,105,114,101,98,114,105,99,107,52,0,102,108,111,114,97,108,119,104,105,116,101,0,102,111,114,101,115,116,103,114,101,101,110,0,103,97,105,110,115,98,111,114,111,0,103,104,111,115,116,119,104,105,116,101,0,103,111,108,100,0,103,111,108,100,49,0,103,111,108,100,50,0,103,111,108,100,51,0,103,111,108,100,52,0,103,111,108,100,101,110,114,111,100,0,103,111,108,100,101,110,114,111,100,49,0,103,111,108,100,101,110,114,111,100,50,0,103,111,108,100,101,110,114,111,100,51,0,103,111,108,100,101,110,114,111,100,52,0,103,114,97,121,0,103,114,97,121,48,0,103,114,97,121,49,0,103,114,97,121,49,48,0,103,114,97,121,49,48,48,0,103,114,97,121,49,49,0,103,114,97,121,49,50,0,103,114,97,121,49,51,0,103,114,97,121,49,52,0,103,114,97,121,49,53,0,103,114,97,121,49,54,0,103,114,97,121,49,55,0,103,114,97,121,49,56,0,103,114,97,121,49,57,0,103,114,97,121,50,0,103,114,97,121,50,48,0,103,114,97,121,50,49,0,103,114,97,121,50,50],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+122904);allocate([103,114,97,121,50,51,0,103,114,97,121,50,52,0,103,114,97,121,50,53,0,103,114,97,121,50,54,0,103,114,97,121,50,55,0,103,114,97,121,50,56,0,103,114,97,121,50,57,0,103,114,97,121,51,0,103,114,97,121,51,48,0,103,114,97,121,51,49,0,103,114,97,121,51,50,0,103,114,97,121,51,51,0,103,114,97,121,51,52,0,103,114,97,121,51,53,0,103,114,97,121,51,54,0,103,114,97,121,51,55,0,103,114,97,121,51,56,0,103,114,97,121,51,57,0,103,114,97,121,52,0,103,114,97,121,52,48,0,103,114,97,121,52,49,0,103,114,97,121,52,50,0,103,114,97,121,52,51,0,103,114,97,121,52,52,0,103,114,97,121,52,53,0,103,114,97,121,52,54,0,103,114,97,121,52,55,0,103,114,97,121,52,56,0,103,114,97,121,52,57,0,103,114,97,121,53,0,103,114,97,121,53,48,0,103,114,97,121,53,49,0,103,114,97,121,53,50,0,103,114,97,121,53,51,0,103,114,97,121,53,52,0,103,114,97,121,53,53,0,103,114,97,121,53,54,0,103,114,97,121,53,55,0,103,114,97,121,53,56,0,103,114,97,121,53,57,0,103,114,97,121,54,0,103,114,97,121,54,48,0,103,114,97,121,54,49,0,103,114,97,121,54,50,0,103,114,97,121,54,51,0,103,114,97,121,54,52,0,103,114,97,121,54,53,0,103,114,97,121,54,54,0,103,114,97,121,54,55,0,103,114,97,121,54,56,0,103,114,97,121,54,57,0,103,114,97,121,55,0,103,114,97,121,55,48,0,103,114,97,121,55,49,0,103,114,97,121,55,50,0,103,114,97,121,55,51,0,103,114,97,121,55,52,0,103,114,97,121,55,53,0,103,114,97,121,55,54,0,103,114,97,121,55,55,0,103,114,97,121,55,56,0,103,114,97,121,55,57,0,103,114,97,121,56,0,103,114,97,121,56,48,0,103,114,97,121,56,49,0,103,114,97,121,56,50,0,103,114,97,121,56,51,0,103,114,97,121,56,52,0,103,114,97,121,56,53,0,103,114,97,121,56,54,0,103,114,97,121,56,55,0,103,114,97,121,56,56,0,103,114,97,121,56,57,0,103,114,97,121,57,0,103,114,97,121,57,48,0,103,114,97,121,57,49,0,103,114,97,121,57,50,0,103,114,97,121,57,51,0,103,114,97,121,57,52,0,103,114,97,121,57,53,0,103,114,97,121,57,54,0,103,114,97,121,57,55,0,103,114,97,121,57,56,0,103,114,97,121,57,57,0,103,114,101,101,110,0,103,114,101,101,110,49,0,103,114,101,101,110,50,0,103,114,101,101,110,51,0,103,114,101,101,110,52,0,103,114,101,101,110,121,101,108,108,111,119,0,103,114,101,121,0,103,114,101,121,48,0,103,114,101,121,49,0,103,114,101,121,49,48,0,103,114,101,121,49,48,48,0,103,114,101,121,49,49,0,103,114,101,121,49,50,0,103,114,101,121,49,51,0,103,114,101,121,49,52,0,103,114,101,121,49,53,0,103,114,101,121,49,54,0,103,114,101,121,49,55,0,103,114,101,121,49,56,0,103,114,101,121,49,57,0,103,114,101,121,50,0,103,114,101,121,50,48,0,103,114,101,121,50,49,0,103,114,101,121,50,50,0,103,114,101,121,50,51,0,103,114,101,121,50,52,0,103,114,101,121,50,53,0,103,114,101,121,50,54,0,103,114,101,121,50,55,0,103,114,101,121,50,56,0,103,114,101,121,50,57,0,103,114,101,121,51,0,103,114,101,121,51,48,0,103,114,101,121,51,49,0,103,114,101,121,51,50,0,103,114,101,121,51,51,0,103,114,101,121,51,52,0,103,114,101,121,51,53,0,103,114,101,121,51,54,0,103,114,101,121,51,55,0,103,114,101,121,51,56,0,103,114,101,121,51,57,0,103,114,101,121,52,0,103,114,101,121,52,48,0,103,114,101,121,52,49,0,103,114,101,121,52,50,0,103,114,101,121,52,51,0,103,114,101,121,52,52,0,103,114,101,121,52,53,0,103,114,101,121,52,54,0,103,114,101,121,52,55,0,103,114,101,121,52,56,0,103,114,101,121,52,57,0,103,114,101,121,53,0,103,114,101,121,53,48,0,103,114,101,121,53,49,0,103,114,101,121,53,50,0,103,114,101,121,53,51,0,103,114,101,121,53,52,0,103,114,101,121,53,53,0,103,114,101,121,53,54,0,103,114,101,121,53,55,0,103,114,101,121,53,56,0,103,114,101,121,53,57,0,103,114,101,121,54,0,103,114,101,121,54,48,0,103,114,101,121,54,49,0,103,114,101,121,54,50,0,103,114,101,121,54,51,0,103,114,101,121,54,52,0,103,114,101,121,54,53,0,103,114,101,121,54,54,0,103,114,101,121,54,55,0,103,114,101,121,54,56,0,103,114,101,121,54,57,0,103,114,101,121,55,0,103,114,101,121,55,48,0,103,114,101,121,55,49,0,103,114,101,121,55,50,0,103,114,101,121,55,51,0,103,114,101,121,55,52,0,103,114,101,121,55,53,0,103,114,101,121,55,54,0,103,114,101,121,55,55,0,103,114,101,121,55,56,0,103,114,101,121,55,57,0,103,114,101,121,56,0,103,114,101,121,56,48,0,103,114,101,121,56,49,0,103,114,101,121,56,50,0,103,114,101,121,56,51,0,103,114,101,121,56,52,0,103,114,101,121,56,53,0,103,114,101,121,56,54,0,103,114,101,121,56,55,0,103,114,101,121,56,56,0,103,114,101,121,56,57,0,103,114,101,121,57,0,103,114,101,121,57,48,0,103,114,101,121,57,49,0,103,114,101,121,57,50,0,103,114,101,121,57,51,0,103,114,101,121,57,52,0,103,114,101,121,57,53,0,103,114,101,121,57,54,0,103,114,101,121,57,55,0,103,114,101,121,57,56,0,103,114,101,121,57,57,0,104,111,110,101,121,100,101,119,0,104,111,110,101,121,100,101,119,49,0,104,111,110,101,121,100,101,119,50,0,104,111,110,101,121,100,101,119,51,0,104,111,110,101,121,100,101,119,52,0,104,111,116,112,105,110,107,0,104,111,116,112,105,110,107,49,0,104,111,116,112,105,110,107,50,0,104,111,116,112,105,110,107,51,0,104,111,116,112,105,110,107,52,0,105,110,100,105,97,110,114,101,100,0,105,110,100,105,97,110,114,101,100,49,0,105,110,100,105,97,110,114,101,100,50,0,105,110,100,105,97,110,114,101,100,51,0,105,110,100,105,97,110,114,101,100,52,0,105,110,100,105,103,111,0,105,110,118,105,115,0,105,118,111,114,121,0,105,118,111,114,121,49,0,105,118,111,114,121,50,0,105,118,111,114,121,51,0,105,118,111,114,121,52,0,107,104,97,107,105,0,107,104,97,107,105,49,0,107,104,97,107,105,50,0,107,104,97,107,105,51,0,107,104,97,107,105,52,0,108,97,118,101,110,100,101,114,0,108,97,118,101,110,100,101,114,98,108,117,115,104,0,108,97,118,101,110,100,101,114,98,108,117,115,104,49,0,108,97,118,101,110,100,101,114,98,108,117,115,104,50,0,108,97,118,101,110,100,101,114,98,108,117,115,104,51,0,108,97,118,101,110,100,101,114,98,108,117,115,104,52,0,108,97,119,110,103,114,101,101,110,0,108,101,109,111,110,99,104,105,102,102,111,110,0,108,101,109,111,110,99,104,105,102,102,111,110,49,0,108,101,109,111,110,99,104,105,102,102,111,110,50,0,108,101,109,111,110,99,104,105,102,102,111,110,51,0,108,101,109,111,110,99,104,105,102,102,111,110,52,0,108,105,103,104,116,98,108,117,101,0,108,105,103,104,116,98,108,117,101,49,0,108,105,103,104,116,98,108,117,101,50,0,108,105,103,104,116,98,108,117,101,51,0,108,105,103,104,116,98,108,117,101,52,0,108,105,103,104,116,99,111,114,97,108,0,108,105,103,104,116,99,121,97,110,0,108,105,103,104,116,99,121,97,110,49,0,108,105,103,104,116,99,121,97,110,50,0,108,105,103,104,116,99,121,97,110,51,0,108,105,103,104,116,99,121,97,110,52,0,108,105,103,104,116,103,111,108,100,101,110,114,111,100,0,108,105,103,104,116,103,111,108,100,101,110,114,111,100,49,0,108,105,103,104,116,103,111,108,100,101,110,114,111,100,50,0,108,105,103,104,116,103,111,108,100,101,110,114,111,100,51,0,108,105,103,104,116,103,111,108,100,101,110,114,111,100,52,0,108,105,103,104,116,103,111,108,100,101,110,114,111,100,121,101,108,108,111,119,0,108,105,103,104,116,103,114,97,121,0,108,105,103,104,116,103,114,101,121,0,108,105,103,104,116,112,105,110,107,0,108,105,103,104,116,112,105,110,107,49,0,108,105,103,104,116,112,105,110,107,50,0,108,105,103,104,116,112,105,110,107,51,0,108,105,103,104,116,112,105,110,107,52,0,108,105,103,104,116,115,97,108,109,111,110,0,108,105,103,104,116,115,97,108,109,111,110,49,0,108,105,103,104,116,115,97,108,109,111,110,50,0,108,105,103,104,116,115,97,108,109,111,110,51,0,108,105,103,104,116,115,97,108,109,111,110,52,0,108,105,103,104,116,115,101,97,103,114,101,101,110,0,108,105,103,104,116,115,107,121,98,108,117,101,0,108,105,103,104,116,115,107,121,98,108,117,101,49,0,108,105,103,104,116,115,107,121,98,108,117,101,50,0,108,105,103,104,116,115,107,121,98,108,117,101,51,0,108,105,103,104,116,115,107,121,98,108,117,101,52,0,108,105,103,104,116,115,108,97,116,101,98,108,117,101,0,108,105,103,104,116,115,108,97,116,101,103,114,97,121,0,108,105,103,104,116,115,108,97,116,101,103,114,101,121,0,108,105,103,104,116,115,116,101,101,108,98,108,117,101,0,108,105,103,104,116,115,116,101,101,108,98,108,117,101,49,0,108,105,103,104,116,115,116,101,101,108,98,108,117,101,50,0,108,105,103,104,116,115,116,101,101,108,98,108,117,101,51,0,108,105,103,104,116,115,116,101,101,108,98,108,117,101,52,0,108,105,103,104,116,121,101,108,108,111,119,0,108,105,103,104,116,121,101,108,108,111,119,49,0,108,105,103,104,116,121,101,108,108,111,119,50,0,108,105,103,104,116,121,101,108,108,111,119,51,0,108,105,103,104,116,121,101,108,108,111,119,52,0,108,105,109,101,103,114,101,101,110,0,108,105,110,101,110,0,109,97,103,101,110,116,97,0,109,97,103,101,110,116,97,49,0,109,97,103,101,110,116,97,50,0,109,97,103,101,110,116,97,51,0,109,97,103,101,110,116,97,52,0,109,97,114,111,111,110,0,109,97,114,111,111,110,49,0,109,97,114,111,111,110,50,0,109,97,114,111,111,110,51,0,109,97,114,111,111,110,52,0,109,101,100,105,117,109,97,113,117,97,109,97,114,105,110,101,0,109,101,100,105,117,109,98,108,117,101,0,109,101,100,105,117,109,111,114,99,104,105,100,0,109,101,100,105,117,109,111,114,99,104,105,100,49,0,109,101,100,105,117,109,111,114,99,104,105,100,50,0,109,101,100,105,117,109,111,114,99,104,105,100,51,0,109,101,100,105,117,109,111,114,99,104,105,100,52,0,109,101,100,105,117,109,112,117,114,112,108,101,0,109,101,100,105,117,109,112,117,114,112,108,101,49,0,109,101,100,105,117,109,112,117,114,112,108,101,50,0,109,101,100,105,117,109,112,117,114,112,108,101,51,0,109,101,100,105,117,109,112,117,114,112,108,101,52,0,109,101,100,105,117,109,115,101,97,103,114,101,101,110,0,109,101,100,105,117,109,115,108,97,116,101,98,108,117,101,0,109,101,100,105,117,109,115,112,114,105,110,103,103,114,101,101,110,0,109,101,100,105,117,109,116,117,114,113,117,111,105,115,101,0,109,101,100,105,117,109,118,105,111,108,101,116,114,101,100,0,109,105,100,110,105,103,104,116,98,108,117,101,0,109,105,110,116,99,114,101,97,109,0,109,105,115,116,121,114,111,115,101,0,109,105,115,116,121,114,111,115,101,49,0,109,105,115,116,121,114,111,115,101,50,0,109,105,115,116,121,114,111,115,101,51,0,109,105,115,116,121,114,111,115,101,52,0,109,111,99,99,97,115,105,110,0,110,97,118,97,106,111,119,104,105,116,101,0,110,97,118,97,106,111,119,104,105,116,101,49,0,110,97,118,97,106,111,119,104,105,116,101,50,0,110,97,118,97,106,111,119,104,105,116,101,51,0,110,97,118,97,106,111,119,104,105,116,101,52,0,110,97,118,121,0,110,97,118,121,98,108,117,101,0,110,111,110,101,0,111,108,100,108,97,99,101,0,111,108,105,118,101,100,114,97,98,0,111,108,105,118,101,100,114,97,98,49,0,111,108,105,118,101,100,114,97,98,50,0,111,108,105,118,101,100,114,97,98,51,0,111,108,105,118,101,100,114,97,98,52,0,111,114,97,110,103,101,0,111,114,97,110,103,101,49,0,111,114,97,110,103,101,50,0,111,114,97,110,103,101,51,0,111,114,97,110,103,101,52,0,111,114,97,110,103,101,114,101,100,0,111,114,97,110,103,101,114,101,100,49,0,111,114,97,110,103,101,114,101,100,50,0,111,114,97,110,103,101,114,101,100,51,0,111,114,97,110,103,101,114,101,100,52,0,111,114,99,104,105,100,0,111,114,99,104,105,100,49,0,111,114,99,104,105,100,50,0,111,114,99,104,105,100,51,0,111,114,99,104,105,100,52,0,112,97,108,101,103,111,108,100,101,110,114,111,100,0,112,97,108,101,103,114,101,101,110,0,112,97,108,101,103,114,101,101,110,49,0,112,97,108,101,103,114,101,101,110,50,0,112,97,108,101,103,114,101,101,110,51,0,112,97,108,101,103,114,101,101,110,52,0,112,97,108,101,116,117,114,113,117,111,105,115,101,0,112,97,108,101,116,117,114,113,117,111,105,115,101,49,0,112,97,108,101,116,117,114,113,117,111,105,115,101,50,0,112,97,108,101,116,117,114,113,117,111,105,115,101,51,0,112,97,108,101,116,117,114,113,117,111,105,115,101,52,0,112,97,108,101,118,105,111,108,101,116,114,101,100,0,112,97,108,101,118,105,111,108,101,116,114,101,100,49,0,112,97,108,101,118,105,111,108,101,116,114,101,100,50,0,112,97,108,101,118,105,111,108,101,116,114,101,100,51,0,112,97,108,101,118,105,111,108,101,116,114,101,100,52,0,112,97,112,97,121,97,119,104,105,112,0,112,101,97,99,104,112,117,102,102,0,112,101,97,99,104,112,117,102,102,49,0,112,101,97,99,104,112,117,102,102,50,0,112,101,97,99,104,112,117,102,102,51,0,112,101,97,99,104,112,117,102,102,52,0,112,101,114,117,0,112,105,110,107,0,112,105,110,107,49,0,112,105,110,107,50,0,112,105,110,107,51,0,112,105,110,107,52,0,112,108,117,109,0,112,108,117,109,49,0,112,108,117,109,50,0,112,108,117,109,51,0,112,108,117,109,52,0,112,111,119,100,101,114,98,108,117,101,0,112,117,114,112,108,101,0,112,117,114,112,108,101,49,0,112,117,114,112,108,101,50,0,112,117,114,112,108,101,51,0,112,117,114,112,108,101,52,0,114,101,100,0,114,101,100,49,0,114,101,100,50,0,114,101,100,51,0,114,101,100,52,0,114,111,115,121,98,114,111,119,110,0,114,111,115,121,98,114,111,119,110,49,0,114,111,115,121,98,114,111,119,110,50,0,114,111,115,121,98,114,111,119,110,51,0,114,111,115,121,98,114,111,119,110,52,0,114,111,121,97,108,98,108,117,101,0,114,111,121,97,108,98,108,117,101,49,0,114,111,121,97,108,98,108,117,101,50,0,114,111,121,97,108,98,108,117,101,51,0,114,111,121,97,108,98,108,117,101,52,0,115,97,100,100,108,101,98,114,111,119,110,0,115,97,108,109,111,110,0,115,97,108,109,111,110,49,0,115,97,108,109,111,110,50,0,115,97,108,109,111,110,51,0,115,97,108,109,111,110,52,0,115,97,110,100,121,98,114,111,119,110,0,115,101,97,103,114,101,101,110,0,115,101,97,103,114,101,101,110,49,0,115,101,97,103,114,101,101,110,50,0,115,101,97,103,114,101,101,110,51,0,115,101,97,103,114,101,101,110,52,0,115,101,97,115,104,101,108,108,0,115,101,97,115,104,101,108,108,49,0,115,101,97,115,104,101,108,108,50,0,115,101,97,115,104,101,108,108,51,0,115,101,97,115,104,101,108,108,52,0,115,105,101,110,110,97,0,115,105,101,110,110,97,49,0,115,105,101,110,110,97,50,0,115,105,101,110,110,97,51,0,115,105,101,110,110,97,52,0,115,107,121,98,108,117,101,0,115,107,121,98,108,117,101,49,0,115,107,121,98,108,117,101,50,0,115,107,121,98,108,117,101,51,0,115,107,121,98,108,117,101,52,0,115,108,97,116,101,98,108,117,101,0,115,108,97,116,101,98,108,117,101,49,0,115,108,97,116,101,98,108,117,101,50,0,115,108,97,116,101,98,108,117,101,51,0,115,108,97,116,101,98,108,117,101,52,0,115,108,97,116,101,103,114,97,121,0,115,108,97,116,101,103,114,97,121,49,0,115,108,97,116,101,103,114,97,121,50,0,115,108,97,116,101,103,114,97,121,51,0,115,108,97,116,101,103,114,97,121,52,0,115,108,97,116,101,103,114,101,121,0,115,110,111,119,0,115,110,111,119,49,0,115,110,111,119,50,0,115,110,111,119,51,0,115,110,111,119,52,0,115,112,114,105,110,103,103,114,101,101,110,0,115,112,114,105,110,103,103,114,101,101,110,49,0,115,112,114,105,110,103,103,114,101,101,110,50,0,115,112,114,105,110,103,103,114,101,101,110,51,0,115,112,114,105,110,103,103,114,101,101,110,52,0,115,116,101,101,108,98,108,117,101,0,115,116,101,101,108,98,108,117,101,49,0,115,116,101,101,108,98,108,117,101,50,0,115,116,101,101,108,98,108,117,101,51,0,115,116,101,101,108,98,108,117,101,52,0,116,97,110,0,116,97,110,49,0,116,97,110,50,0,116,97,110,51,0,116,97,110,52,0,116,104,105,115,116,108,101,0,116,104,105,115,116,108,101,49,0,116,104,105,115,116,108,101,50,0,116,104,105,115,116,108,101,51,0,116,104,105,115,116,108,101,52,0,116,111,109,97,116,111,0,116,111,109,97,116,111,49,0,116,111,109,97,116,111,50,0,116,111,109,97,116,111,51,0,116,111,109,97,116,111,52,0,116,117,114,113,117,111,105,115,101,0,116,117,114,113,117,111,105,115,101,49,0,116,117,114,113,117,111,105,115,101,50,0,116,117,114,113,117,111,105,115,101,51,0,116,117,114,113,117,111,105,115,101,52,0,118,105,111,108,101,116,0,118,105,111,108,101,116,114,101,100,0,118,105,111,108,101,116,114,101,100,49,0,118,105,111,108,101,116,114,101,100,50,0,118,105,111,108,101,116,114,101,100,51,0,118,105,111,108,101,116,114,101,100,52,0,119,104,101,97,116,0,119,104,101,97,116,49,0,119,104,101,97,116,50,0,119,104,101,97,116,51,0,119,104,101,97,116,52,0,119,104,105,116,101,0,119,104,105,116,101,115,109,111,107,101,0,121,101,108,108,111,119,0,121,101,108,108,111,119,49,0,121,101,108,108,111,119,50,0,121,101,108,108,111,119,51,0,121,101,108,108,111,119,52,0,121,101,108,108,111,119,103,114,101,101,110,0,108,97,99,107,0,104,105,116,101,0,105,103,104,116,103,114,101,121,0,88,49,49,47,0,47,37,115,47,37,115,0,105,109,97,103,101,115,99,97,108,101,0,102,97,108,115,101,0,98,108,97,99,107,0,100,111,116,116,101,100,0,100,97,115,104,101,100,0,99,112,45,62,115,114,99,0,104,116,109,108,116,97,98,108,101,46,99,0,101,109,105,116,95,104,116,109,108,95,105,109,103,0,99,112,45,62,115,114,99,91,48,93,0,116,114,97,110,115,112,97,114,101,110,116,0,95,37,100,0,37,100,0,49,0,50,0,51,0,52,0,53,0,54,0,55,0,56,0,57,0,49,48,0,49,49,0,49,50,0,49,51,0,49,52,0,49,53,0,49,54,0,49,55,0,49,56,0,49,57,0,50,48,0,65,103,110,111,100,101,105,110,102,111,95,116,0,65,103,101,100,103,101,105,110,102,111,95,116,0,114,111,119,103,0,99,111,108,103,0,65,103,114,97,112,104,105,110,102,111,95,116,0,100,101,108,120,32,62,61,32,48,0,112,111,115,95,104,116,109,108,95,116,98,108,0,100,101,108,121,32,62,61,32,48,0,116,97,98,108,101,32,115,105,122,101,32,116,111,111,32,115,109,97,108,108,32,102,111,114,32,99,111,110,116,101,110,116,10,0,102,105,120,101,100,32,116,97,98,108,101,32,115,105,122,101,32,119,105,116,104,32,117,110,115,112,101,99,105,102,105,101,100,32,119,105,100,116,104,32,111,114,32,104,101,105,103,104,116,10,0,99,101,108,108,32,115,105,122,101,32,116,111,111,32,115,109,97,108,108,32,102,111,114,32,99,111,110,116,101,110,116,10,0,102,105,120,101,100,32,99,101,108,108,32,115,105,122,101,32,119,105,116,104,32,117,110,115,112,101,99,105,102,105,101,100,32,119,105,100,116,104,32,111,114,32,104,101,105,103,104,116,10,0,78,111,32,111,114,32,105,109,112,114,111,112,101,114,32,105,109,97,103,101,32,102,105,108,101,61,34,37,115,34,10,0,112,101,110,99,111,108,111,114,0,45,62,0,102,80,81,46,99,0,80,81,99,104,101,99,107,0,72,101,97,112,32,111,118,101,114,102,108,111,119,10,0,37,33,80,83,45,65,100,111,98,101,45,50,46,48,10,47,110,111,100,101,32,123,10,32,32,47,89,32,101,120,99,104,32,100,101,102,10,32,32,47,88,32,101,120,99,104,32,100,101,102,10,32,32,47,121,32,101,120,99,104,32,100,101,102,10,32,32,47,120,32,101,120,99,104,32,100,101,102,10,32,32,110,101,119,112,97,116,104,10,32,32,120,32,121,32,109,111,118,101,116,111,10,32,32,120,32,89,32,108,105,110,101,116,111,10,32,32,88,32,89,32,108,105,110,101,116,111,10,32,32,88,32,121,32,108,105,110,101,116,111,10,32,32,99,108,111,115,101,112,97,116,104,32,102,105,108,108,10,125,32,100,101,102,10,47,99,101,108,108,32,123,10,32,32,47,89,32,101,120,99,104,32,100,101,102,10,32,32,47,88,32,101,120,99,104,32,100,101,102,10,32,32,47,121,32,101,120,99,104,32,100,101,102,10,32,32,47,120,32,101,120,99,104,32,100,101,102,10,32,32,110,101,119,112,97,116,104,10,32,32,120,32,121,32,109,111,118,101,116,111,10,32,32,120,32,89,32,108,105,110,101,116,111,10,32,32,88,32,89,32,108,105,110,101,116,111,10,32,32,88,32,121,32,108,105,110,101,116,111,10,32,32,99,108,111,115,101,112,97,116,104,32,115,116,114,111,107,101,10,125,32,100,101,102,10,0,115,104,111,119,112,97,103,101,10,0,102,97,105,108,101,100,32,97,116,32,110,111,100,101,32,37,100,91,48,93,10,0,110,112,45,62,99,101,108,108,115,91,48,93,0,109,97,122,101,46,99,0,99,104,107,83,103,114,97,112,104,0,102,97,105,108,101,100,32,97,116,32,110,111,100,101,32,37,100,91,49,93,10,0,110,112,45,62,99,101,108,108,115,91,49,93,0,100,105,116,101,109,115,0,102,105,110,100,83,86,101,114,116,0,37,37,37,37,80,97,103,101,58,32,49,32,49,10,37,37,37,37,80,97,103,101,66,111,117,110,100,105,110,103,66,111,120,58,32,37,100,32,37,100,32,37,100,32,37,100,10,0,37,102,32,37,102,32,116,114,97,110,115,108,97,116,101,10,0,48,32,48,32,49,32,115,101,116,114,103,98,99,111,108,111,114,10,0,37,102,32,37,102,32,37,102,32,37,102,32,110,111,100,101,10,0,48,32,48,32,48,32,115,101,116,114,103,98,99,111,108,111,114,10,0,37,102,32,37,102,32,37,102,32,37,102,32,99,101,108,108,10,0,49,32,48,32,48,32,115,101,116,114,103,98,99,111,108,111,114,10,0,117,110,101,120,112,101,99,116,101,100,32,99,97,115,101,32,105,110,32,108,111,99,97,116,101,95,101,110,100,112,111,105,110,116,10,0,48,0,116,114,97,112,101,122,111,105,100,46,99,0,108,111,99,97,116,101,95,101,110,100,112,111,105,110,116,0,97,100,100,95,115,101,103,109,101,110,116,58,32,101,114,114,111,114,10,0,110,101,119,110,111,100,101,58,32,81,117,101,114,121,45,116,97,98,108,101,32,111,118,101,114,102,108,111,119,10,0,110,101,119,110,111,100,101,0,110,101,119,116,114,97,112,58,32,84,114,97,112,101,122,111,105,100,45,116,97,98,108,101,32,111,118,101,114,102,108,111,119,32,37,100,10,0,110,101,119,116,114,97,112,0,105,110,100,101,120,46,99,0,82,84,114,101,101,83,101,97,114,99,104,0,110,45,62,108,101,118,101,108,32,62,61,32,48,0,82,84,114,101,101,73,110,115,101,114,116,0,108,101,118,101,108,32,62,61,32,48,32,38,38,32,108,101,118,101,108,32,60,61,32,40,42,110,41,45,62,108,101,118,101,108,0,114,45,62,98,111,117,110,100,97,114,121,91,105,93,32,60,61,32,114,45,62,98,111,117,110,100,97,114,121,91,78,85,77,68,73,77,83,32,43,32,105,93,0,114,32,38,38,32,110,32,38,38,32,110,101,119,0,82,84,114,101,101,73,110,115,101,114,116,50,0,108,101,118,101,108,32,62,61,32,48,32,38,38,32,108,101,118,101,108,32,60,61,32,110,45,62,108,101,118,101,108,0,70,65,76,83,69,0,110,111,100,101,46,99,0,78,111,100,101,67,111,118,101,114,0,114,32,38,38,32,110,0,80,105,99,107,66,114,97,110,99,104,0,65,100,100,66,114,97,110,99,104,0,105,32,60,32,78,79,68,69,67,65,82,68,0,110,101,119,0,110,32,38,38,32,105,32,62,61,32,48,32,38,38,32,105,32,60,32,78,79,68,69,67,65,82,68,0,68,105,115,99,111,110,66,114,97,110,99,104,0,114,0,114,101,99,116,97,110,103,108,101,46,99,0,82,101,99,116,65,114,101,97,0,114,32,38,38,32,114,114,0,67,111,109,98,105,110,101,82,101,99,116,0,114,32,38,38,32,115,0,79,118,101,114,108,97,112,0,110,0,115,112,108,105,116,46,113,46,99,0,83,112,108,105,116,78,111,100,101,0,98,0,110,45,62,99,111,117,110,116,32,43,32,40,42,110,110,41,45,62,99,111,117,110,116,32,61,61,32,78,79,68,69,67,65,82,68,32,43,32,49,0,76,111,97,100,78,111,100,101,115,0,113,0,112,0,114,116,112,45,62,115,112,108,105,116,46,80,97,114,116,105,116,105,111,110,115,91,48,93,46,112,97,114,116,105,116,105,111,110,91,105,93,32,61,61,32,48,32,124,124,32,114,116,112,45,62,115,112,108,105,116,46,80,97,114,116,105,116,105,111,110,115,91,48,93,46,112,97,114,116,105,116,105,111,110,91,105,93,32,61,61,32,49,0,114,116,112,45,62,115,112,108,105,116,46,80,97,114,116,105,116,105,111,110,115,91,48,93,46,99,111,117,110,116,91,48,93,32,43,32,114,116,112,45,62,115,112,108,105,116,46,80,97,114,116,105,116,105,111,110,115,91,48,93,46,99,111,117,110,116,91,49,93,32,61,61,32,78,79,68,69,67,65,82,68,32,43,32,49,0,77,101,116,104,111,100,90,101,114,111,0,114,116,112,45,62,115,112,108,105,116,46,80,97,114,116,105,116,105,111,110,115,91,48,93,46,99,111,117,110,116,91,48,93,32,62,61,32,114,116,112,45,62,77,105,110,70,105,108,108,32,38,38,32,114,116,112,45,62,115,112,108,105,116,46,80,97,114,116,105,116,105,111,110,115,91,48,93,46,99,111,117,110,116,91,49,93,32,62,61,32,114,116,112,45,62,77,105,110,70,105,108,108,0,33,114,116,112,45,62,115,112,108,105,116,46,80,97,114,116,105,116,105,111,110,115,91,48,93,46,116,97,107,101,110,91,105,93,0,67,108,97,115,115,105,102,121,0,71,101,116,66,114,97,110,99,104,101,115,0,110,45,62,98,114,97,110,99,104,91,105,93,46,99,104,105,108,100,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,2,2,2,2,2,2,16,12,89,1,0,31,80,8,3,7,18,19,20,87,22,23,8,11,105,12,31,10,5,12,14,41,17,43,15,45,16,47,48,32,50,6,52,53,27,28,29,30,11,12,33,34,35,36,37,38,39,40,12,24,25,23,4,10,27,28,26,32,42,10,33,34,35,36,37,38,39,40,12,10,14,83,10,44,88,49,88,88,88,88,88,88,12,27,28,15,46,88,51,33,34,35,36,37,38,39,40,27,28,255,83,255,255,33,34,35,36,37,38,39,40,12,255,255,5,255,255,255,9,20,255,255,255,255,255,12,27,28,255,16,21,22,33,34,35,36,37,38,39,40,27,28,255,255,255,255,33,34,35,36,37,38,39,40,12,255,18,19,20,17,22,23,255,255,255,255,255,255,12,27,28,255,255,255,18,33,34,35,36,37,38,39,40,27,28,255,255,255,255,33,34,35,36,37,38,39,40,12,255,255,255,255,255,255,19,255,255,255,255,255,255,12,27,28,255,255,255,255,33,34,35,36,37,38,39,40,27,28,255,255,255,255,33,34,35,36,37,38,39,40,18,19,20,21,22,23,24,25,255,255,255,255,255,255,255,255,255,35,36,37,38,39,27,18,19,20,22,23,34,54,104,1,31,56,86,33,32,2,27,27,27,94,27,27,55,57,112,54,210,194,79,4,60,34,71,34,63,34,68,34,34,88,34,101,34,34,5,6,95,96,57,4,7,8,9,10,11,12,13,14,4,102,103,93,106,109,5,6,111,88,59,113,7,8,9,10,11,12,13,14,4,114,60,91,115,62,97,70,27,18,19,20,22,23,4,5,6,63,65,98,73,7,8,9,10,11,12,13,14,5,6,0,92,0,0,7,8,9,10,11,12,13,14,4,0,0,79,0,0,0,83,66,0,0,0,0,0,4,5,6,0,68,84,85,7,8,9,10,11,12,13,14,5,6,0,0,0,0,7,8,9,10,11,12,13,14,4,0,42,44,46,71,49,51,0,0,0,0,0,0,4,5,6,0,0,0,74,7,8,9,10,11,12,13,14,5,6,0,0,0,0,7,8,9,10,11,12,13,14,4,0,0,0,0,0,0,76,0,0,0,0,0,0,4,5,6,0,0,0,0,7,8,9,10,11,12,13,14,5,6,0,0,0,0,7,8,9,10,11,12,13,14,41,43,45,47,48,50,52,53,0,0,0,0,0,0,0,0,0,41,43,45,48,50,0,4,47,0,36,35,0,18,20,22,26,28,30,32,24,0,5,7,47,47,47,0,47,47,0,0,9,8,40,0,0,1,34,2,6,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,37,3,38,19,10,41,21,11,42,23,14,45,25,17,27,12,43,29,13,44,31,15,33,16,0,51,0,48,0,47,67,0,49,0,47,0,53,46,39,66,50,65,0,58,56,0,60,52,69,0,54,0,64,0,0,63,0,68,55,59,57,61,0,2,3,3,1,1,2,1,1,1,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,0,6,1,3,3,3,3,3,1,0,1,2,3,0,4,1,2,3,0,4,0,4,0,4,0,3,2,1,2,1,2,1,83,121,110,116,97,120,32,101,114,114,111,114,58,32,110,111,110,45,115,112,97,99,101,32,115,116,114,105,110,103,32,117,115,101,100,32,98,101,102,111,114,101,32,60,84,65,66,76,69,62,0,83,121,110,116,97,120,32,101,114,114,111,114,58,32,110,111,110,45,115,112,97,99,101,32,115,116,114,105,110,103,32,117,115,101,100,32,97,102,116,101,114,32,60,47,84,65,66,76,69,62,0,0,41,42,42,42,43,44,44,45,45,45,45,45,45,45,45,45,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,62,63,63,65,64,66,66,66,66,66,66,67,67,68,68,68,70,69,71,71,71,73,72,74,72,75,72,76,72,77,77,78,78,79,79,255,3,15,16,17,35,58,36,61,37,64,21,67,38,69,39,72,24,75,25,77,26,40,28,78,29,30,80,81,82,89,90,108,107,110,99,100,87,105,109,101,109,111,114,121,32,101,120,104,97,117,115,116,101,100,0,37,115,32,105,110,32,108,105,110,101,32,37,100,32,10,0,46,46,46,32,37,115,32,46,46,46,10,0,84,65,66,76,69,0,84,82,0,84,72,0,84,68,0,72,84,77,76,0,70,79,78,84,0,66,0,85,0,79,0,73,0,83,85,80,0,83,85,66,0,83,0,66,82,0,72,82,0,86,82,0,73,77,71,0,85,110,107,110,111,119,110,32,72,84,77,76,32,101,108,101,109,101,110,116,32,60,37,115,62,32,111,110,32,108,105,110,101,32,37,100,32,10,0,60,73,77,71,62,0,73,108,108,101,103,97,108,32,97,116,116,114,105,98,117,116,101,32,37,115,32,105,110,32,37,115,32,45,32,105,103,110,111,114,101,100,10,0,115,99,97,108,101,0,115,114,99,0,60,66,82,62,0,97,108,105,103,110,0,73,71,72,84,0,69,70,84,0,69,78,84,69,82,0,73,108,108,101,103,97,108,32,118,97,108,117,101,32,37,115,32,102,111,114,32,65,76,73,71,78,32,45,32,105,103,110,111,114,101,100,10,0,60,70,79,78,84,62,0,99,111,108,111,114,0,102,97,99,101,0,112,111,105,110,116,45,115,105,122,101,0,80,79,73,78,84,45,83,73,90,69,0,73,109,112,114,111,112,101,114,32,37,115,32,118,97,108,117,101,32,37,115,32,45,32,105,103,110,111,114,101,100,0,37,115,32,118,97,108,117,101,32,37,115,32,62,32,37,100,32,45,32,116,111,111,32,108,97,114,103,101,32,45,32,105,103,110,111,114,101,100,0,37,115,32,118,97,108,117,101,32,37,115,32,60,32,37,100,32,45,32,116,111,111,32,115,109,97,108,108,32,45,32,105,103,110,111,114,101,100,0,60,84,68,62,0,98,97,108,105,103,110,0,98,103,99,111,108,111,114,0,98,111,114,100,101,114,0,99,101,108,108,112,97,100,100,105,110,103,0,99,101,108,108,115,112,97,99,105,110,103,0,99,111,108,115,112,97,110,0,102,105,120,101,100,115,105,122,101,0,103,114,97,100,105,101,110,116,97,110,103,108,101,0,104,101,105,103,104,116,0,104,114,101,102,0,105,100,0,112,111,114,116,0,114,111,119,115,112,97,110,0,115,105,100,101,115,0,115,116,121,108,101,0,116,97,114,103,101,116,0,116,105,116,108,101,0,116,111,111,108,116,105,112,0,118,97,108,105,103,110,0,119,105,100,116,104,0,87,73,68,84,72,0,79,84,84,79,77,0,79,80,0,73,68,68,76,69,0,73,108,108,101,103,97,108,32,118,97,108,117,101,32,37,115,32,102,111,114,32,86,65,76,73,71,78,32,45,32,105,103,110,111,114,101,100,10,0,32,44,0,79,85,78,68,69,68,0,65,68,73,65,76,0,73,108,108,101,103,97,108,32,118,97,108,117,101,32,37,115,32,102,111,114,32,83,84,89,76,69,32,45,32,105,103,110,111,114,101,100,10,0,83,79,76,73,68,0,73,78,86,73,83,73,66,76,69,0,73,78,86,73,83,0,68,79,84,84,69,68,0,68,65,83,72,69,68,0,85,110,114,101,99,111,103,110,105,122,101,100,32,99,104,97,114,97,99,116,101,114,32,39,37,99,39,32,40,37,100,41,32,105,110,32,115,105,100,101,115,32,97,116,116,114,105,98,117,116,101,10,0,82,79,87,83,80,65,78,0,82,79,87,83,80,65,78,32,118,97,108,117,101,32,99,97,110,110,111,116,32,98,101,32,48,32,45,32,105,103,110,111,114,101,100,10,0,72,69,73,71,72,84,0,71,82,65,68,73,69,78,84,65,78,71,76,69,0,82,85,69,0,65,76,83,69,0,73,108,108,101,103,97,108,32,118,97,108,117,101,32,37,115,32,102,111,114,32,70,73,88,69,68,83,73,90,69,32,45,32,105,103,110,111,114,101,100,10,0,67,79,76,83,80,65,78,0,67,79,76,83,80,65,78,32,118,97,108,117,101,32,99,97,110,110,111,116,32,98,101,32,48,32,45,32,105,103,110,111,114,101,100,10,0,67,69,76,76,83,80,65,67,73,78,71,0,67,69,76,76,80,65,68,68,73,78,71,0,66,79,82,68,69,82,0,73,108,108,101,103,97,108,32,118,97,108,117,101,32,37,115,32,102,111,114,32,66,65,76,73,71,78,32,105,110,32,84,68,32,45,32,105,103,110,111,114,101,100,10,0,69,88,84,0,73,108,108,101,103,97,108,32,118,97,108,117,101,32,37,115,32,102,111,114,32,65,76,73,71,78,32,105,110,32,84,68,32,45,32,105,103,110,111,114,101,100,10,0,60,84,65,66,76,69,62,0,99,101,108,108,98,111,114,100,101,114,0,99,111,108,117,109,110,115,0,114,111,119,115,0,85,110,107,110,111,119,110,32,118,97,108,117,101,32,37,115,32,102,111,114,32,82,79,87,83,32,45,32,105,103,110,111,114,101,100,10,0,85,110,107,110,111,119,110,32,118,97,108,117,101,32,37,115,32,102,111,114,32,67,79,76,85,77,78,83,32,45,32,105,103,110,111,114,101,100,10,0,67,69,76,76,83,66,79,82,68,69,82,0,60,72,84,77,76,62,0,60,47,72,84,77,76,62,0,45,45,0,76,97,98,101,108,32,99,108,111,115,101,100,32,98,101,102,111,114,101,32,101,110,100,32,111,102,32,72,84,77,76,32,101,108,101,109,101,110,116,10,0,85,110,99,108,111,115,101,100,32,99,111,109,109,101,110,116,10,0,106,32,61,61,32,48,0,99,118,116,46,99,0,80,111,98,115,112,97,116,104,0,114,111,117,116,101,46,99,0,108,105,98,112,97,116,104,47,37,115,58,37,100,58,32,37,115,10,0,115,104,111,114,116,101,115,116,46,99,0,115,111,117,114,99,101,32,112,111,105,110,116,32,110,111,116,32,105,110,32,97,110,121,32,116,114,105,97,110,103,108,101,0,100,101,115,116,105,110,97,116,105,111,110,32,112,111,105,110,116,32,110,111,116,32,105,110,32,97,110,121,32,116,114,105,97,110,103,108,101,0,99,97,110,110,111,116,32,102,105,110,100,32,116,114,105,97,110,103,108,101,32,112,97,116,104,0,99,97,110,110,111,116,32,109,97,108,108,111,99,32,111,112,115,0,99,97,110,110,111,116,32,114,101,97,108,108,111,99,32,111,112,115,0,116,114,105,97,110,103,117,108,97,116,105,111,110,32,102,97,105,108,101,100,0,99,97,110,110,111,116,32,109,97,108,108,111,99,32,116,114,105,115,0,99,97,110,110,111,116,32,114,101,97,108,108,111,99,32,116,114,105,115,0,99,97,110,110,111,116,32,109,97,108,108,111,99,32,100,113,46,112,110,108,115,0,99,97,110,110,111,116,32,114,101,97,108,108,111,99,32,100,113,46,112,110,108,115,0,99,97,110,110,111,116,32,109,97,108,108,111,99,32,112,110,108,115,0,99,97,110,110,111,116,32,109,97,108,108,111,99,32,112,110,108,112,115,0,99,97,110,110,111,116,32,114,101,97,108,108,111,99,32,112,110,108,115,0,99,97,110,110,111,116,32,114,101,97,108,108,111,99,32,112,110,108,112,115,0,67,68,65,84,65,0,73,68,0,73,68,82,69,70,0,73,68,82,69,70,83,0,69,78,84,73,84,89,0,69,78,84,73,84,73,69,83,0,78,77,84,79,75,69,78,0,78,77,84,79,75,69,78,83,0,78,79,84,65,84,73,79,78,40,0,40,0,124,0,104,116,116,112,58,47,47,119,119,119,46,119,51,46,111,114,103,47,88,77,76,47,49,57,57,56,47,110,97,109,101,115,112,97,99,101,0,104,116,116,112,58,47,47,119,119,119,46,119,51,46,111,114,103,47,50,48,48,48,47,120,109,108,110,115,47,0,120,109,108,61,104,116,116,112,58,47,47,119,119,119,46,119,51,46,111,114,103,47,88,77,76,47,49,57,57,56,47,110,97,109,101,115,112,97,99,101,0,111,117,116,32,111,102,32,109,101,109,111,114,121,0,115,121,110,116,97,120,32,101,114,114,111,114,0,110,111,32,101,108,101,109,101,110,116,32,102,111,117,110,100,0,110,111,116,32,119,101,108,108,45,102,111,114,109,101,100,32,40,105,110,118,97,108,105,100,32,116,111,107,101,110,41,0,117,110,99,108,111,115,101,100,32,116,111,107,101,110,0,112,97,114,116,105,97,108,32,99,104,97,114,97,99,116,101,114,0,109,105,115,109,97,116,99,104,101,100,32,116,97,103,0,100,117,112,108,105,99,97,116,101,32,97,116,116,114,105,98,117,116,101,0,106,117,110,107,32,97,102,116,101,114,32,100,111,99,117,109,101,110,116,32,101,108,101,109,101,110,116,0,105,108,108,101,103,97,108,32,112,97,114,97,109,101,116,101,114,32,101,110,116,105,116,121,32,114,101,102,101,114,101,110,99,101,0,117,110,100,101,102,105,110,101,100,32,101,110,116,105,116,121,0,114,101,99,117,114,115,105,118,101,32,101,110,116,105,116,121,32,114,101,102,101,114,101,110,99,101,0,97,115,121,110,99,104,114,111,110,111,117,115,32,101,110,116,105,116,121,0,114,101,102,101,114,101,110,99,101,32,116,111,32,105,110,118,97,108,105,100,32,99,104,97,114,97,99,116,101,114,32,110,117,109,98,101,114,0,114,101,102,101,114,101,110,99,101,32,116,111,32,98,105,110,97,114,121,32,101,110,116,105,116,121,0,114,101,102,101,114,101,110,99,101,32,116,111,32,101,120,116,101,114,110,97,108,32,101,110,116,105,116,121,32,105,110,32,97,116,116,114,105,98,117,116,101,0,88,77,76,32,111,114,32,116,101,120,116,32,100,101,99,108,97,114,97,116,105,111,110,32,110,111,116,32,97,116,32,115,116,97,114,116,32,111,102,32,101,110,116,105,116,121,0,117,110,107,110,111,119,110,32,101,110,99,111,100,105,110,103,0,101,110,99,111,100,105,110,103,32,115,112,101,99,105,102,105,101,100,32,105,110,32,88,77,76,32,100,101,99,108,97,114,97,116,105,111,110,32,105,115,32,105,110,99,111,114,114,101,99,116,0,117,110,99,108,111,115,101,100,32,67,68,65,84,65,32,115,101,99,116,105,111,110,0,101,114,114,111,114,32,105,110,32,112,114,111,99,101,115,115,105,110,103,32,101,120,116,101,114,110,97,108,32,101,110,116,105,116,121,32,114,101,102,101,114,101,110,99,101,0,100,111,99,117,109,101,110,116,32,105,115,32,110,111,116,32,115,116,97,110,100,97,108,111,110,101,0,117,110,101,120,112,101,99,116,101,100,32,112,97,114,115,101,114,32,115,116,97,116,101,32,45,32,112,108,101,97,115,101,32,115,101,110,100,32,97,32,98,117,103,32,114,101,112,111,114,116,0,101,110,116,105,116,121,32,100,101,99,108,97,114,101,100,32,105,110,32,112,97,114,97,109,101,116,101,114,32,101,110,116,105,116,121,0,114,101,113,117,101,115,116,101,100,32,102,101,97,116,117,114,101,32,114,101,113,117,105,114,101,115,32,88,77,76,95,68,84,68,32,115,117,112,112,111,114,116,32,105,110,32,69,120],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+133144);allocate([112,97,116,0,99,97,110,110,111,116,32,99,104,97,110,103,101,32,115,101,116,116,105,110,103,32,111,110,99,101,32,112,97,114,115,105,110,103,32,104,97,115,32,98,101,103,117,110,0,117,110,98,111,117,110,100,32,112,114,101,102,105,120,0,109,117,115,116,32,110,111,116,32,117,110,100,101,99,108,97,114,101,32,112,114,101,102,105,120,0,105,110,99,111,109,112,108,101,116,101,32,109,97,114,107,117,112,32,105,110,32,112,97,114,97,109,101,116,101,114,32,101,110,116,105,116,121,0,88,77,76,32,100,101,99,108,97,114,97,116,105,111,110,32,110,111,116,32,119,101,108,108,45,102,111,114,109,101,100,0,116,101,120,116,32,100,101,99,108,97,114,97,116,105,111,110,32,110,111,116,32,119,101,108,108,45,102,111,114,109,101,100,0,105,108,108,101,103,97,108,32,99,104,97,114,97,99,116,101,114,40,115,41,32,105,110,32,112,117,98,108,105,99,32,105,100,0,112,97,114,115,101,114,32,115,117,115,112,101,110,100,101,100,0,112,97,114,115,101,114,32,110,111,116,32,115,117,115,112,101,110,100,101,100,0,112,97,114,115,105,110,103,32,97,98,111,114,116,101,100,0,112,97,114,115,105,110,103,32,102,105,110,105,115,104,101,100,0,99,97,110,110,111,116,32,115,117,115,112,101,110,100,32,105,110,32,101,120,116,101,114,110,97,108,32,112,97,114,97,109,101,116,101,114,32,101,110,116,105,116,121,0,114,101,115,101,114,118,101,100,32,112,114,101,102,105,120,32,40,120,109,108,41,32,109,117,115,116,32,110,111,116,32,98,101,32,117,110,100,101,99,108,97,114,101,100,32,111,114,32,98,111,117,110,100,32,116,111,32,97,110,111,116,104,101,114,32,110,97,109,101,115,112,97,99,101,32,110,97,109,101,0,114,101,115,101,114,118,101,100,32,112,114,101,102,105,120,32,40,120,109,108,110,115,41,32,109,117,115,116,32,110,111,116,32,98,101,32,100,101,99,108,97,114,101,100,32,111,114,32,117,110,100,101,99,108,97,114,101,100,0,112,114,101,102,105,120,32,109,117,115,116,32,110,111,116,32,98,101,32,98,111,117,110,100,32,116,111,32,111,110,101,32,111,102,32,116,104,101,32,114,101,115,101,114,118,101,100,32,110,97,109,101,115,112,97,99,101,32,110,97,109,101,115,0,2,3,4,5,6,7,8,0,0,9,10,11,12,13,14,15,16,17,0,0,0,0,0,0,0,0,0,0,0,0,18,19,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,23,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,3,26,27,28,29,30,0,0,31,32,33,34,35,36,37,16,17,0,0,0,0,0,0,0,0,0,0,0,0,18,19,38,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,23,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,68,65,84,65,91,85,83,45,65,83,67,73,73,0,85,84,70,45,49,54,0,85,84,70,45,49,54,66,69,0,85,84,70,45,49,54,76,69,0,118,101,114,115,105,111,110,0,101,110,99,111,100,105,110,103,0,115,116,97,110,100,97,108,111,110,101,0,68,79,67,84,89,80,69,0,83,89,83,84,69,77,0,80,85,66,76,73,67,0,69,78,84,73,84,89,0,65,84,84,76,73,83,84,0,69,76,69,77,69,78,84,0,78,79,84,65,84,73,79,78,0,73,78,67,76,85,68,69,0,73,71,78,79,82,69,0,69,77,80,84,89,0,65,78,89,0,80,67,68,65,84,65,0,73,77,80,76,73,69,68,0,82,69,81,85,73,82,69,68,0,70,73,88,69,68,0,67,68,65,84,65,0,73,68,0,73,68,82,69,70,0,73,68,82,69,70,83,0,69,78,84,73,84,73,69,83,0,78,77,84,79,75,69,78,0,78,77,84,79,75,69,78,83,0,78,68,65,84,65,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,4,7,3,6,5,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,18,17,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,17,34,35,36,17,37,38,39,40,41,42,43,44,17,45,46,47,16,16,48,16,16,16,16,16,16,16,49,50,51,16,52,53,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,54,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,55,17,17,17,17,56,17,57,58,59,60,61,62,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,63,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,64,65,17,66,67,68,69,70,71,72,73,16,16,16,74,75,76,77,78,16,16,16,79,80,16,16,16,16,81,16,16,16,16,16,16,16,16,16,17,17,17,82,83,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,84,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,85,16,16,16,16,86,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,87,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,88,89,90,91,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,92,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,254,255,255,7,254,255,255,7,0,0,0,0,0,4,32,4,255,255,127,255,255,255,127,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,195,255,3,0,31,80,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,223,60,64,215,255,255,251,255,255,255,255,255,255,255,255,255,191,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,3,252,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,254,255,255,255,127,2,254,255,255,255,255,0,0,0,0,0,255,191,182,0,255,255,255,7,7,0,0,0,255,7,255,255,255,255,255,255,255,254,255,195,255,255,255,255,255,255,255,255,255,255,255,255,239,31,254,225,255,159,0,0,255,255,255,255,255,255,0,224,255,255,255,255,255,255,255,255,255,255,255,255,3,0,255,255,255,255,255,7,48,4,255,255,255,252,255,31,0,0,255,255,255,1,0,0,0,0,0,0,0,0,253,31,0,0,0,0,0,0,240,3,255,127,255,255,255,255,255,255,255,239,255,223,225,255,207,255,254,254,238,159,249,255,255,253,197,227,159,89,128,176,207,255,3,0,238,135,249,255,255,253,109,195,135,25,2,94,192,255,63,0,238,191,251,255,255,253,237,227,191,27,1,0,207,255,0,0,238,159,249,255,255,253,237,227,159,25,192,176,207,255,2,0,236,199,61,214,24,199,255,195,199,29,129,0,192,255,0,0,238,223,253,255,255,253,239,227,223,29,96,3,207,255,0,0,236,223,253,255,255,253,239,227,223,29,96,64,207,255,6,0,236,223,253,255,255,255,255,231,223,93,128,0,207,255,0,252,236,255,127,252,255,255,251,47,127,128,95,255,0,0,12,0,254,255,255,255,255,127,255,7,63,32,255,3,0,0,0,0,150,37,240,254,174,236,255,59,95,32,255,243,0,0,0,0,1,0,0,0,255,3,0,0,255,254,255,255,255,31,254,255,3,255,255,254,255,255,255,31,0,0,0,0,0,0,0,0,255,255,255,255,255,255,127,249,255,3,255,255,231,193,255,255,127,64,255,51,255,255,255,255,191,32,255,255,255,255,255,247,255,255,255,255,255,255,255,255,255,61,127,61,255,255,255,255,255,61,255,255,255,255,61,127,61,255,127,255,255,255,255,255,255,255,61,255,255,255,255,255,255,255,255,135,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,31,0,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,159,255,255,254,255,255,7,255,255,255,255,255,255,255,255,255,199,1,0,255,223,15,0,255,255,15,0,255,255,15,0,255,223,13,0,255,255,255,255,255,255,207,255,255,1,128,16,255,3,0,0,0,0,255,3,255,255,255,255,255,255,255,255,255,255,255,0,255,255,255,255,255,7,255,255,255,255,255,255,255,255,63,0,255,255,255,31,255,15,255,1,192,255,255,255,255,63,31,0,255,255,255,255,255,15,255,255,255,3,255,3,0,0,0,0,255,255,255,15,255,255,255,255,255,255,255,127,254,255,31,0,255,3,255,3,128,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,239,255,239,15,255,3,0,0,0,0,255,255,255,255,255,243,255,255,255,255,255,255,191,255,3,0,255,255,255,255,255,255,63,0,255,227,255,255,255,255,255,63,0,0,0,0,0,0,0,0,0,0,0,0,0,222,111,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,63,63,255,255,255,255,63,63,255,170,255,255,255,63,255,255,255,255,255,255,223,95,220,31,207,15,255,31,220,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,128,0,0,255,31,0,0,0,0,0,0,0,0,0,0,0,0,132,252,47,62,80,189,255,243,224,67,0,0,255,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,255,255,255,255,255,255,3,0,0,255,255,255,255,255,127,255,255,255,255,255,127,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,120,12,0,255,255,255,255,191,32,255,255,255,255,255,255,255,128,0,0,255,255,127,0,127,127,127,127,127,127,127,127,255,255,255,255,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,0,0,0,254,3,62,31,254,255,255,255,255,255,255,255,255,255,127,224,254,255,255,255,255,255,255,255,255,255,255,247,224,255,255,255,255,63,254,255,255,255,255,255,255,255,255,255,255,127,0,0,255,255,255,7,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,0,0,0,0,0,0,0,0,255,255,255,255,255,63,255,31,255,255,255,15,0,0,255,255,255,255,255,127,240,143,255,255,255,128,255,255,255,255,255,255,255,255,255,255,0,0,0,0,128,255,252,255,255,255,255,255,255,255,255,255,255,255,255,121,15,0,255,7,0,0,0,0,0,0,0,0,0,255,187,247,255,255,255,0,0,0,255,255,255,255,255,255,15,0,255,255,255,255,255,255,255,255,15,0,255,3,0,0,252,8,255,255,255,255,255,7,255,255,255,255,7,0,255,255,255,31,255,255,255,255,255,255,247,255,0,128,255,3,0,0,0,0,255,255,255,255,255,255,127,0,255,63,255,3,255,255,127,4,255,255,255,255,255,255,255,127,5,0,0,56,255,255,60,0,126,126,126,0,127,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,7,255,3,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,15,0,255,255,127,248,255,255,255,255,255,15,255,255,255,255,255,255,255,255,255,255,255,255,255,63,255,255,255,255,255,255,255,255,255,255,255,255,255,3,0,0,0,0,127,0,248,224,255,253,127,95,219,255,255,255,255,255,255,255,255,255,255,255,255,255,3,0,0,0,248,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,255,255,255,255,255,255,255,255,252,255,255,255,255,255,255,0,0,0,0,0,255,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,0,0,255,3,254,255,255,7,254,255,255,7,192,255,255,255,255,255,255,255,255,255,255,127,252,252,252,28,0,0,0,0,255,239,255,255,127,255,255,183,255,63,255,63,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,7,0,0,0,0,0,0,0,0,255,255,255,255,255,255,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,31,255,255,255,255,255,255,1,0,0,0,0,0,255,255,255,127,0,0,255,255,255,7,0,0,0,0,0,0,255,255,255,63,255,255,255,255,15,255,62,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,255,3,0,0,0,0,0,0,0,0,0,0,63,253,255,255,255,255,191,145,255,255,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,63,0,255,255,255,3,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,192,0,0,0,0,0,0,0,0,111,240,239,254,255,255,15,0,0,0,0,0,255,255,255,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,63,0,255,255,63,0,255,255,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,63,0,0,0,192,255,0,0,252,255,255,255,255,255,255,1,0,0,255,255,255,1,255,3,255,255,255,255,255,255,199,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,30,0,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,63,0,255,3,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,31,0,255,255,255,255,255,127,0,0,248,255,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,223,100,222,255,235,239,255,255,255,255,255,255,255,191,231,223,223,255,255,255,123,95,252,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,255,255,255,253,255,255,247,255,255,255,247,255,255,223,255,255,255,223,255,255,127,255,255,255,127,255,255,255,253,255,255,255,253,255,255,247,207,255,255,255,255,255,255,239,255,255,255,150,254,247,10,132,234,150,170,150,247,247,94,255,251,255,15,238,251,255,15,0,0,0,0,0,0,0,0,18,16,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,16,16,34,35,16,36,37,38,39,40,41,42,43,16,44,45,46,17,47,48,17,17,49,17,17,17,50,51,52,53,54,55,56,57,17,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,58,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,59,16,60,61,62,63,64,65,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,66,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,67,16,16,68,16,69,70,71,16,72,16,73,16,16,16,16,74,75,76,77,16,16,78,16,79,80,16,16,16,16,81,16,16,16,16,16,16,16,16,16,16,16,16,16,82,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,83,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,84,85,86,87,16,16,88,89,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,90,16,91,92,93,94,95,96,97,98,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,254,255,0,252,1,0,0,248,1,0,0,120,0,0,0,0,255,251,223,251,0,0,128,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,60,0,252,255,224,175,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,32,64,176,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,0,0,0,0,0,134,254,255,255,255,0,64,73,0,0,0,0,0,24,0,223,255,0,200,0,0,0,0,0,0,0,1,0,60,0,0,0,0,0,0,0,0,0,0,0,0,16,224,1,30,0,96,255,191,0,0,0,0,0,0,255,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,207,3,0,0,0,3,0,32,255,127,0,0,0,78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,16,0,32,30,0,48,0,1,0,0,0,0,0,0,0,0,16,0,32,0,0,0,0,252,15,0,0,0,0,0,0,0,16,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,32,0,0,0,0,3,0,0,0,0,0,0,0,0,16,0,32,0,0,0,0,253,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,255,7,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,255,0,0,0,0,0,0,0,16,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,63,2,0,0,0,0,0,0,0,0,0,4,0,0,0,0,16,0,0,0,0,0,0,128,0,128,192,223,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,0,0,0,0,254,255,255,255,0,252,255,255,0,0,0,0,0,0,0,0,252,0,0,0,0,0,0,192,255,223,255,7,0,0,0,0,0,0,0,0,0,0,128,6,0,252,0,0,24,62,0,0,128,191,0,204,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,96,255,255,255,31,0,0,255,3,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,1,0,0,24,0,0,0,0,0,0,0,0,0,56,0,0,0,0,16,0,0,0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,0,0,254,127,47,0,0,255,3,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,196,255,255,255,255,0,0,0,192,0,0,0,0,0,0,0,0,1,0,224,159,0,0,0,0,127,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,16,0,0,252,255,255,255,31,0,0,0,0,0,12,0,0,0,0,0,0,64,0,12,240,0,0,0,0,0,0,192,248,0,0,0,0,0,0,0,192,0,0,0,0,0,0,0,0,255,0,255,255,255,33,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,127,0,0,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,3,224,0,224,0,224,0,96,128,248,255,255,255,252,255,255,255,255,255,127,31,252,241,127,255,127,0,0,255,255,255,3,0,0,255,255,255,255,1,0,123,3,208,193,175,66,0,12,31,188,255,255,0,0,0,0,0,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,15,0,255,255,255,255,127,0,0,0,255,7,0,0,255,255,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,252,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,135,3,254,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,127,255,15,0,0,0,0,0,0,0,0,255,255,255,251,255,255,255,255,255,255,255,255,255,255,15,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,0,255,15,30,255,255,255,1,252,193,224,0,0,0,0,0,0,0,0,0,0,0,30,1,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,15,0,0,0,255,255,255,127,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,127,0,0,0,0,0,0,192,0,224,0,0,0,0,0,0,0,0,0,0,0,128,15,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,255,255,127,0,3,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,68,8,0,0,0,15,255,3,0,0,0,0,0,0,240,0,0,0,0,0,0,0,0,0,16,192,0,0,255,255,3,7,0,0,0,0,0,248,0,0,0,0,8,128,0,0,0,0,0,0,0,0,0,0,8,0,255,63,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,0,0,128,11,0,0,0,0,0,0,0,128,2,0,0,192,0,0,67,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,255,255,255,3,127,0,255,255,255,255,247,255,127,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,254,255,0,252,1,0,0,248,1,0,0,248,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,127,0,48,135,255,255,255,255,255,143,255,0,0,0,0,0,0,224,255,255,7,255,15,0,0,0,0,0,0,255,255,255,255,255,63,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,143,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,135,255,0,255,1,0,0,0,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,63,252,255,63,0,0,0,3,0,0,0,0,0,0,254,3,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,225,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,7,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,255,255,255,255,127,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,0,0,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,127,0,255,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,8,0,0,0,8,0,0,32,0,0,0,32,0,0,128,0,0,0,128,0,0,0,2,0,0,0,2,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,255,255,255,255,255,15,255,255,255,255,255,255,255,255,255,255,255,255,15,0,255,127,254,127,254,255,254,255,0,0,0,0,255,7,255,255,255,127,255,255,255,255,255,255,255,15,255,255,255,255,255,7,0,0,0,0,0,0,0,0,192,255,255,255,7,0,255,255,255,255,255,7,255,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,191,255,255,255,255,255,255,255,255,31,255,255,15,0,255,255,255,255,223,7,0,0,255,255,1,0,255,255,255,255,255,255,255,127,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,30,255,255,255,255,255,255,255,63,15,0,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,255,255,255,255,255,255,255,255,225,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,108,110,117,109,0,97,108,112,104,97,0,98,108,97,110,107,0,99,110,116,114,108,0,100,105,103,105,116,0,103,114,97,112,104,0,108,111,119,101,114,0,112,114,105,110,116,0,112,117,110,99,116,0,115,112,97,99,101,0,117,112,112,101,114,0,120,100,105,103,105,116,0,47,112,114,111,99,47,115,101,108,102,47,102,100,47,0,105,110,102,105,110,105,116,121,0,110,97,110,0,76,67,95,65,76,76,0,76,67,95,67,84,89,80,69],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+143384);allocate([76,67,95,78,85,77,69,82,73,67,0,0,76,67,95,84,73,77,69,0,0,0,0,0,76,67,95,67,79,76,76,65,84,69,0,0,76,67,95,77,79,78,69,84,65,82,89,0,76,67,95,77,69,83,83,65,71,69,83,0,76,65,78,71,0,67,46,85,84,70,45,56,0,80,79,83,73,88,0,77,85,83,76,95,76,79,67,80,65,84,72,0,67,46,85,84,70,45,56,0,0,0,0,0,0,0,0,0,67,0,114,119,97,0,9,0,10,0,13,0,12,0,7,0,27,0,91,91,58,97,108,110,117,109,58,93,95,93,0,91,94,91,58,97,108,110,117,109,58,93,95,93,0,91,91,58,115,112,97,99,101,58,93,93,0,91,94,91,58,115,112,97,99,101,58,93,93,0,91,91,58,100,105,103,105,116,58,93,93,0,91,94,91,58,100,105,103,105,116,58,93,93,0,47,116,109,112,47,116,109,112,102,105,108,101,95,88,88,88,88,88,88,0,119,43,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+153624);var tempDoublePtr=STATICTOP;STATICTOP+=16;Module["_i64Subtract"]=_i64Subtract;function ___assert_fail(condition,filename,line,func){ABORT=true;throw"Assertion failed: "+Pointer_stringify(condition)+", at: "+[filename?Pointer_stringify(filename):"unknown filename",line,func?Pointer_stringify(func):"unknown function"]+" at "+stackTrace()}var PROCINFO={ppid:1,pid:42,sid:42,pgid:42};var ERRNO_CODES={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};var ERRNO_MESSAGES={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"};function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var PATH={splitPath:(function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)}),normalizeArray:(function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),resolve:(function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")})};var TTY={ttys:[],init:(function(){}),shutdown:(function(){}),register:(function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)}),stream_ops:{open:(function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}stream.tty=tty;stream.seekable=false}),close:(function(stream){stream.tty.ops.flush(stream.tty)}),flush:(function(stream){stream.tty.ops.flush(stream.tty)}),read:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead}),write:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}for(var i=0;i<length;i++){try{stream.tty.ops.put_char(stream.tty,buffer[offset+i])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}}if(length){stream.node.timestamp=Date.now()}return i})},default_tty_ops:{get_char:(function(tty){if(!tty.input.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=new Buffer(BUFSIZE);var bytesRead=0;var isPosixPlatform=process.platform!="win32";var fd=process.stdin.fd;if(isPosixPlatform){var usingDevice=false;try{fd=fs.openSync("/dev/stdin","r");usingDevice=true}catch(e){}}try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE,null)}catch(e){if(e.toString().indexOf("EOF")!=-1)bytesRead=0;else throw e}if(usingDevice){fs.closeSync(fd)}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()}),put_char:(function(tty,val){if(val===null||val===10){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}})}};var MEMFS={ops_table:null,mount:(function(mount){return MEMFS.createNode(null,"/",16384|511,0)}),createNode:(function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i<node.usedBytes;++i)arr.push(node.contents[i]);return arr}return node.contents}),getFileDataAsTypedArray:(function(node){if(!node.contents)return new Uint8Array;if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)}),expandFileStorage:(function(node,newCapacity){if(node.contents&&node.contents.subarray&&newCapacity>node.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)|0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.length<newCapacity)node.contents.push(0)}),resizeFileStorage:(function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(new ArrayBuffer(newSize));if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length<newSize)node.contents.push(0);node.usedBytes=newSize}),node_ops:{getattr:(function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr}),setattr:(function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}}),lookup:(function(parent,name){throw FS.genericErrors[ERRNO_CODES.ENOENT]}),mknod:(function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)}),rename:(function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}}}delete old_node.parent.contents[old_node.name];old_node.name=new_name;new_dir.contents[new_name]=old_node;old_node.parent=new_dir}),unlink:(function(parent,name){delete parent.contents[name]}),rmdir:(function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}delete parent.contents[name]}),readdir:(function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries}),symlink:(function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node}),readlink:(function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return node.link})},stream_ops:{read:(function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size}),write:(function(stream,buffer,offset,length,position,canOwn){if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=new Uint8Array(buffer.subarray(offset,offset+length));node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray)node.contents.set(buffer.subarray(offset,offset+length),position);else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position}),allocate:(function(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&(contents.buffer===buffer||contents.buffer===buffer.buffer)){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<stream.node.usedBytes){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=_malloc(length);if(!ptr){throw new FS.ErrnoError(ERRNO_CODES.ENOMEM)}buffer.set(contents,ptr)}return{ptr:ptr,allocated:allocated}}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(mmapFlags&2){return 0}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0})}};var IDBFS={dbs:{},indexedDB:(function(){if(typeof indexedDB!=="undefined")return indexedDB;var ret=null;if(typeof window==="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret}),DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:(function(mount){return MEMFS.mount.apply(null,arguments)}),syncfs:(function(mount,populate,callback){IDBFS.getLocalSet(mount,(function(err,local){if(err)return callback(err);IDBFS.getRemoteSet(mount,(function(err,remote){if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)}))}))}),getDB:(function(name,callback){var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}if(!req){return callback("Unable to connect to IndexedDB")}req.onupgradeneeded=(function(e){var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}});req.onsuccess=(function(){db=req.result;IDBFS.dbs[name]=db;callback(null,db)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),getLocalSet:(function(mount,callback){var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return(function(p){return PATH.join2(root,p)})}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={timestamp:stat.mtime}}return callback(null,{type:"local",entries:entries})}),getRemoteSet:(function(mount,callback){var entries={};IDBFS.getDB(mount.mountpoint,(function(err,db){if(err)return callback(err);var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=(function(e){callback(this.error);e.preventDefault()});var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=(function(event){var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db:db,entries:entries})}entries[cursor.primaryKey]={timestamp:cursor.key};cursor.continue()})}))}),loadLocalEntry:(function(path,callback){var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{timestamp:stat.mtime,mode:stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{timestamp:stat.mtime,mode:stat.mode,contents:node.contents})}else{return callback(new Error("node type not supported"))}}),storeLocalEntry:(function(path,entry,callback){try{if(FS.isDir(entry.mode)){FS.mkdir(path,entry.mode)}else if(FS.isFile(entry.mode)){FS.writeFile(path,entry.contents,{encoding:"binary",canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry.mode);FS.utime(path,entry.timestamp,entry.timestamp)}catch(e){return callback(e)}callback(null)}),removeLocalEntry:(function(path,callback){try{var lookup=FS.lookupPath(path);var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)}),loadRemoteEntry:(function(store,path,callback){var req=store.get(path);req.onsuccess=(function(event){callback(null,event.target.result)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),storeRemoteEntry:(function(store,path,entry,callback){var req=store.put(entry,path);req.onsuccess=(function(){callback(null)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),removeRemoteEntry:(function(store,path,callback){var req=store.delete(path);req.onsuccess=(function(){callback(null)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),reconcile:(function(src,dst,callback){var total=0;var create=[];Object.keys(src.entries).forEach((function(key){var e=src.entries[key];var e2=dst.entries[key];if(!e2||e.timestamp>e2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&146)>>1}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:(function(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}}),setattr:(function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),lookup:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)}),mknod:(function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsToPermissionString(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;var nbuffer=new Buffer(length);var res;try{res=fs.readSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(res>0){for(var i=0;i<res;i++){buffer[offset+i]=nbuffer[i]}}return res}),write:(function(stream,buffer,offset,length,position){var nbuffer=new Buffer(buffer.subarray(offset,offset+length));var res;try{res=fs.writeSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}return res}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=fs.fstatSync(stream.nfd);position+=stat.size}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:(function(mount){assert(ENVIRONMENT_IS_WORKER);if(!WORKERFS.reader)WORKERFS.reader=new FileReaderSync;var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i<parts.length-1;i++){var curr=parts.slice(0,i+1).join("/");if(!createdParents[curr]){createdParents[curr]=WORKERFS.createNode(parent,parts[i],WORKERFS.DIR_MODE,0)}parent=createdParents[curr]}return parent}function base(path){var parts=path.split("/");return parts[parts.length-1]}Array.prototype.forEach.call(mount.opts["files"]||[],(function(file){WORKERFS.createNode(ensureParent(file.name),base(file.name),WORKERFS.FILE_MODE,0,file,file.lastModifiedDate)}));(mount.opts["blobs"]||[]).forEach((function(obj){WORKERFS.createNode(ensureParent(obj["name"]),base(obj["name"]),WORKERFS.FILE_MODE,0,obj["data"])}));(mount.opts["packages"]||[]).forEach((function(pack){pack["metadata"].files.forEach((function(file){var name=file.filename.substr(1);WORKERFS.createNode(ensureParent(name),base(name),WORKERFS.FILE_MODE,0,pack["blob"].slice(file.start,file.end))}))}));return root}),createNode:(function(parent,name,mode,dev,contents,mtime){var node=FS.createNode(parent,name,mode);node.mode=mode;node.node_ops=WORKERFS.node_ops;node.stream_ops=WORKERFS.stream_ops;node.timestamp=(mtime||new Date).getTime();assert(WORKERFS.FILE_MODE!==WORKERFS.DIR_MODE);if(mode===WORKERFS.FILE_MODE){node.size=contents.size;node.contents=contents}else{node.size=4096;node.contents={}}if(parent){parent.contents[name]=node}return node}),node_ops:{getattr:(function(node){return{dev:1,ino:undefined,mode:node.mode,nlink:1,uid:0,gid:0,rdev:undefined,size:node.size,atime:new Date(node.timestamp),mtime:new Date(node.timestamp),ctime:new Date(node.timestamp),blksize:4096,blocks:Math.ceil(node.size/4096)}}),setattr:(function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}}),lookup:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}),mknod:(function(parent,name,mode,dev){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),rename:(function(oldNode,newDir,newName){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),unlink:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),rmdir:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),readdir:(function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries}),symlink:(function(parent,newName,oldPath){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),readlink:(function(node){throw new FS.ErrnoError(ERRNO_CODES.EPERM)})},stream_ops:{read:(function(stream,buffer,offset,length,position){if(position>=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size}),write:(function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};STATICTOP+=16;STATICTOP+=16;STATICTOP+=16;var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:(function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)}),lookupPath:(function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count});current=lookup.node;if(count++>40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}}),hashName:(function(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)}),createNode:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),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(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:(function(){return this.node}),set:(function(val){this.node=val})},isRead:{get:(function(){return(this.flags&2097155)!==1})},isWrite:{get:(function(){return(this.flags&2097155)!==0})},isAppend:{get:(function(){return this.flags&1024})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),chrdev_stream_ops:{open:(function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}}),llseek:(function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)})},major:(function(dev){return dev>>8}),minor:(function(dev){return dev&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts}),syncfs:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){console.log("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(err){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(err)}function done(err){if(err){if(!done.errored){done.errored=true;return doCallback(err)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach((function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)}))}),mount:(function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot}),unmount:(function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdirTree:(function(path,mode){var dirs=path.split("/");var d="";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+="/"+dirs[i];try{FS.mkdir(d,mode)}catch(e){if(e.errno!=ERRNO_CODES.EEXIST)throw e}}}),mkdev:(function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)}),symlink:(function(oldpath,newpath){if(!PATH.resolve(oldpath)){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.symlink(parent,newname,oldpath)}),rename:(function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err)}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}}),rmdir:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}return node.node_ops.readdir(node)}),unlink:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readlink:(function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!link.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return PATH.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))}),stat:(function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!node.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return node.node_ops.getattr(node)}),lstat:(function(path){return FS.stat(path,true)}),chmod:(function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})}),lchmod:(function(path,mode){FS.chmod(path,mode,true)}),fchmod:(function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chmod(stream.node,mode)}),chown:(function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{timestamp:Date.now()})}),lchown:(function(path,uid,gid){FS.chown(path,uid,gid,true)}),fchown:(function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chown(stream.node,uid,gid)}),truncate:(function(path,len){if(len<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})}),ftruncate:(function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}FS.truncate(stream.node,len)}),utime:(function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})}),open:(function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;Module["printErr"]("read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream}),close:(function(stream){if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}}),llseek:(function(stream,offset,whence){if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position}),read:(function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead}),write:(function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+e.message)}return bytesWritten}),allocate:(function(stream,offset,length){if(offset<0||length<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}stream.stream_ops.allocate(stream,offset,length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EACCES)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)}),munmap:(function(stream){return 0}),ioctl:(function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(ERRNO_CODES.ENOTTY)}return stream.stream_ops.ioctl(stream,cmd,arg)}),readFile:(function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret}),writeFile:(function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";opts.encoding=opts.encoding||"utf8";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var stream=FS.open(path,opts.flags,opts.mode);if(opts.encoding==="utf8"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,0,opts.canOwn)}else if(opts.encoding==="binary"){FS.write(stream,data,0,data.length,0,opts.canOwn)}FS.close(stream)}),cwd:(function(){return FS.currentPath}),chdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err)}FS.currentPath=lookup.path}),createDefaultDirectories:(function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")}),createDefaultDevices:(function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:(function(){return 0}),write:(function(stream,buffer,offset,length,pos){return length})});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto!=="undefined"){var randomBuffer=new Uint8Array(1);random_device=(function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]})}else if(ENVIRONMENT_IS_NODE){random_device=(function(){return __webpack_require__(/*! crypto */ 3).randomBytes(1)[0]})}else{random_device=(function(){return Math.random()*256|0})}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")}),createSpecialDirectories:(function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:(function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:(function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:(function(){return stream.path})}};ret.parent=ret;return ret})};return node})},{},"/proc/self/fd")}),createStandardStreams:(function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin","r");assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")")}),ensureErrnoError:(function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=(function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}});this.setErrno(errno);this.message=ERRNO_MESSAGES[errno]};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach((function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack="<generic error, no stack>"}))}),staticInit:(function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS}}),init:(function(input,output,error){assert(!FS.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)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()}),quit:(function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}}),getMode:(function(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode}),joinPath:(function(parts,forceRelative){var path=PATH.join.apply(null,parts);if(forceRelative&&path[0]=="/")path=path.substr(1);return path}),absolutePath:(function(relative,base){return PATH.resolve(base,relative)}),standardizePath:(function(path){return PATH.normalize(path)}),findObject:(function(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{___setErrNo(ret.error);return null}}),analyzePath:(function(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret}),createFolder:(function(parent,name,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.mkdir(path,mode)}),createPath:(function(parent,path,canRead,canWrite){parent=typeof parent==="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current}),createFile:(function(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)}),createDataFile:(function(parent,name,data,canRead,canWrite,canOwn){var path=name?PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name):parent;var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,"w");FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}return node}),createDevice:(function(parent,name,input,output){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:(function(stream){stream.seekable=false}),close:(function(stream){if(output&&output.buffer&&output.buffer.length){output(10)}}),read:(function(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead}),write:(function(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}}if(length){stream.node.timestamp=Date.now()}return i})});return FS.mkdev(path,mode,dev)}),createLink:(function(parent,name,target,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);return FS.symlink(target,path)}),forceLoadFile:(function(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;var success=true;if(typeof XMLHttpRequest!=="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(Module["read"]){try{obj.contents=intArrayFromString(Module["read"](obj.url),true);obj.usedBytes=obj.contents.length}catch(e){success=false}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}if(!success)___setErrNo(ERRNO_CODES.EIO);return success}),createLazyFile:(function(parent,name,url,canRead,canWrite){function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}});var lazyArray=this;lazyArray.setDataGetter((function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]}));if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;console.log("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})},chunkSize:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize})}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:(function(){return this.contents.length})}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size};node.stream_ops=stream_ops;return node}),createPreloadedFile:(function(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){Browser.init();var fullname=name?PATH.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}var handled=false;Module["preloadPlugins"].forEach((function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,(function(){if(onerror)onerror();removeRunDependency(dep)}));handled=true}}));if(!handled)finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){Browser.asyncLoad(url,(function(byteArray){processData(byteArray)}),onerror)}else{processData(url)}}),indexedDB:(function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB}),DB_NAME:(function(){return"EM_FS_"+window.location.pathname}),DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(function(paths,onload,onerror){onload=onload||(function(){});onerror=onerror||(function(){});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=function openRequest_onupgradeneeded(){console.log("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach((function(path){var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=function putRequest_onsuccess(){ok++;if(ok+fail==total)finish()};putRequest.onerror=function putRequest_onerror(){fail++;if(ok+fail==total)finish()}}));transaction.onerror=onerror};openRequest.onerror=onerror}),loadFilesFromDB:(function(paths,onload,onerror){onload=onload||(function(){});onerror=onerror||(function(){});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach((function(path){var getRequest=files.get(path);getRequest.onsuccess=function getRequest_onsuccess(){if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=function getRequest_onerror(){fail++;if(ok+fail==total)finish()}}));transaction.onerror=onerror};openRequest.onerror=onerror})};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:(function(dirfd,path){if(path[0]!=="/"){var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);dir=dirstream.path}path=PATH.join2(dir,path)}return path}),doStat:(function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-ERRNO_CODES.ENOTDIR}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0}),doMsync:(function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)}),doMkdir:(function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}),doMknod:(function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0}),doReadlink:(function(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}),doAccess:(function(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES}return 0}),doDup:(function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd}),doReadv:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break}return ret}),doWritev:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}),varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),getStreamFromFD:(function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream}),getSocketFromFD:(function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket}),getSocketAddress:(function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall20(which,varargs){SYSCALLS.varargs=varargs;try{return PROCINFO.pid}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_memset"]=_memset;Module["_bitshift64Shl"]=_bitshift64Shl;function ___syscall192(which,varargs){SYSCALLS.varargs=varargs;try{var addr=SYSCALLS.get(),len=SYSCALLS.get(),prot=SYSCALLS.get(),flags=SYSCALLS.get(),fd=SYSCALLS.get(),off=SYSCALLS.get();off<<=12;var ptr;var allocated=false;if(fd===-1){ptr=_memalign(PAGE_SIZE,len);if(!ptr)return-ERRNO_CODES.ENOMEM;_memset(ptr,0,len);allocated=true}else{var info=FS.getStream(fd);if(!info)return-ERRNO_CODES.EBADF;var res=FS.mmap(info,HEAPU8,addr,len,off,prot,flags);ptr=res.ptr;allocated=res.allocated}SYSCALLS.mappings[ptr]={malloc:ptr,len:len,allocated:allocated,fd:fd,flags:flags};return ptr}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall195(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),buf=SYSCALLS.get();return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall197(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),buf=SYSCALLS.get();return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___lock(){}function ___unlock(){}Module["_i64Add"]=_i64Add;function _realloc(){throw"bad"}Module["_realloc"]=_realloc;Module["_saveSetjmp"]=_saveSetjmp;var _environ=STATICTOP;STATICTOP+=16;function ___buildEnvironment(env){var MAX_ENV_VALUES=64;var TOTAL_ENV_SIZE=1024;var poolPtr;var envPtr;if(!___buildEnvironment.called){___buildEnvironment.called=true;ENV["USER"]=ENV["LOGNAME"]="web_user";ENV["PATH"]="/";ENV["PWD"]="/";ENV["HOME"]="/home/web_user";ENV["LANG"]="C";ENV["_"]=Module["thisProgram"];poolPtr=allocate(TOTAL_ENV_SIZE,"i8",ALLOC_STATIC);envPtr=allocate(MAX_ENV_VALUES*4,"i8*",ALLOC_STATIC);HEAP32[envPtr>>2]=poolPtr;HEAP32[_environ>>2]=envPtr}else{envPtr=HEAP32[_environ>>2];poolPtr=HEAP32[envPtr>>2]}var strings=[];var totalSize=0;for(var key in env){if(typeof env[key]==="string"){var line=key+"="+env[key];strings.push(line);totalSize+=line.length}}if(totalSize>TOTAL_ENV_SIZE){throw new Error("Environment size exceeded TOTAL_ENV_SIZE!")}var ptrSize=4;for(var i=0;i<strings.length;i++){var line=strings[i];writeAsciiToMemory(line,poolPtr);HEAP32[envPtr+i*ptrSize>>2]=poolPtr;poolPtr+=line.length+1}HEAP32[envPtr+strings.length*ptrSize>>2]=0}var ENV={};function _setenv(envname,envval,overwrite){if(envname===0){___setErrNo(ERRNO_CODES.EINVAL);return-1}var name=Pointer_stringify(envname);var val=Pointer_stringify(envval);if(name===""||name.indexOf("=")!==-1){___setErrNo(ERRNO_CODES.EINVAL);return-1}if(ENV.hasOwnProperty(name)&&!overwrite)return 0;ENV[name]=val;___buildEnvironment(ENV);return 0}function __exit(status){Module["exit"](status)}function _exit(status){__exit(status)}function ___syscall91(which,varargs){SYSCALLS.varargs=varargs;try{var addr=SYSCALLS.get(),len=SYSCALLS.get();var info=SYSCALLS.mappings[addr];if(!info)return 0;if(len===info.len){var stream=FS.getStream(info.fd);SYSCALLS.doMsync(addr,stream,len,info.flags);FS.munmap(stream);SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21506:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)};case 21523:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_bitshift64Ashr"]=_bitshift64Ashr;Module["_bitshift64Lshr"]=_bitshift64Lshr;Module["_testSetjmp"]=_testSetjmp;function _longjmp(env,value){Module["setThrew"](env,value||1);throw"longjmp"}function _llvm_trap(){abort("trap!")}function ___syscall33(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),amode=SYSCALLS.get();return SYSCALLS.doAccess(path,amode)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _emscripten_get_now(){abort()}function _emscripten_get_now_is_monotonic(){return ENVIRONMENT_IS_NODE||typeof dateNow!=="undefined"||(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&self["performance"]&&self["performance"]["now"]}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if(clk_id===1&&_emscripten_get_now_is_monotonic()){now=_emscripten_get_now()}else{___setErrNo(ERRNO_CODES.EINVAL);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}function ___clock_gettime(){return _clock_gettime.apply(null,arguments)}function ___syscall10(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr();FS.unlink(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___map_file(pathname,size){___setErrNo(ERRNO_CODES.EPERM);return-1}function _getenv(name){if(name===0)return 0;name=Pointer_stringify(name);if(!ENV.hasOwnProperty(name))return 0;if(_getenv.ret)_free(_getenv.ret);_getenv.ret=allocate(intArrayFromString(ENV[name]),"i8",ALLOC_NORMAL);return _getenv.ret}function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_STATIC);Module["_llvm_cttz_i32"]=_llvm_cttz_i32;Module["___udivmoddi4"]=___udivmoddi4;Module["___udivdi3"]=___udivdi3;Module["___muldsi3"]=___muldsi3;Module["___muldi3"]=___muldi3;var _llvm_pow_f64=Math_pow;Module["_sbrk"]=_sbrk;Module["_memmove"]=_memmove;Module["___uremdi3"]=___uremdi3;function _times(buffer){if(buffer!==0){_memset(buffer,0,16)}return 0}function _abort(){Module["abort"]()}Module["_llvm_bswap_i32"]=_llvm_bswap_i32;Module["_llvm_bswap_i16"]=_llvm_bswap_i16;function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;assert(offset_high===0);FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-ERRNO_CODES.EINVAL}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd};case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0};case 12:case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0};case 13:case 14:case 13:case 14:return 0;case 16:case 8:return-ERRNO_CODES.EINVAL;case 9:___setErrNo(ERRNO_CODES.EINVAL);return-1;default:{return-ERRNO_CODES.EINVAL}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall145(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doReadv(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=__webpack_require__(/*! fs */ 1);var NODEJS_PATH=__webpack_require__(/*! path */ 2);NODEFS.staticInit()}___buildEnvironment(ENV);if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function _emscripten_get_now_actual(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else if(typeof self==="object"&&self["performance"]&&typeof self["performance"]["now"]==="function"){_emscripten_get_now=(function(){return self["performance"]["now"]()})}else if(typeof performance==="object"&&typeof performance["now"]==="function"){_emscripten_get_now=(function(){return performance["now"]()})}else{_emscripten_get_now=Date.now}DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC);STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){try{Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_d(index){try{return Module["dynCall_d"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_di(index,a1){try{return Module["dynCall_di"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_i(index){try{return Module["dynCall_i"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){try{return Module["dynCall_iiiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiidd(index,a1,a2,a3,a4){try{return Module["dynCall_iiidd"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vii(index,a1,a2){try{Module["dynCall_vii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){try{return Module["dynCall_iiiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiddi(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiddi"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){try{Module["dynCall_viiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_dddd(index,a1,a2,a3){try{return Module["dynCall_dddd"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viii(index,a1,a2,a3){try{Module["dynCall_viii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_v(index){try{Module["dynCall_v"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){try{return Module["dynCall_iiiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iii(index,a1,a2){try{return Module["dynCall_iii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){try{return Module["dynCall_iiiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){try{Module["dynCall_viiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity};Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"invoke_vi":invoke_vi,"invoke_iiii":invoke_iiii,"invoke_viiiii":invoke_viiiii,"invoke_d":invoke_d,"invoke_di":invoke_di,"invoke_i":invoke_i,"invoke_iiiiiiiiiii":invoke_iiiiiiiiiii,"invoke_iiidd":invoke_iiidd,"invoke_vii":invoke_vii,"invoke_iiiiiii":invoke_iiiiiii,"invoke_viiiddi":invoke_viiiddi,"invoke_viiiiiiiii":invoke_viiiiiiiii,"invoke_ii":invoke_ii,"invoke_dddd":invoke_dddd,"invoke_viii":invoke_viii,"invoke_v":invoke_v,"invoke_iiiii":invoke_iiiii,"invoke_viiiiii":invoke_viiiiii,"invoke_iii":invoke_iii,"invoke_iiiiii":invoke_iiiiii,"invoke_viiii":invoke_viiii,"___syscall221":___syscall221,"_emscripten_get_now_is_monotonic":_emscripten_get_now_is_monotonic,"_llvm_pow_f64":_llvm_pow_f64,"___syscall6":___syscall6,"___syscall20":___syscall20,"_setenv":_setenv,"___assert_fail":___assert_fail,"___buildEnvironment":___buildEnvironment,"_longjmp":_longjmp,"_clock_gettime":_clock_gettime,"_times":_times,"___setErrNo":___setErrNo,"___syscall192":___syscall192,"___syscall197":___syscall197,"_emscripten_get_now":_emscripten_get_now,"___syscall195":___syscall195,"__exit":__exit,"_emscripten_memcpy_big":_emscripten_memcpy_big,"___syscall91":___syscall91,"_getenv":_getenv,"___map_file":___map_file,"___syscall33":___syscall33,"___syscall54":___syscall54,"___unlock":___unlock,"_emscripten_asm_const_iii":_emscripten_asm_const_iii,"___syscall10":___syscall10,"___lock":___lock,"_abort":_abort,"___syscall5":___syscall5,"___clock_gettime":___clock_gettime,"_time":_time,"___syscall140":___syscall140,"_llvm_trap":_llvm_trap,"_exit":_exit,"___syscall145":___syscall145,"___syscall146":___syscall146,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"cttz_i8":cttz_i8};// EMSCRIPTEN_START_ASM
var asm=(function(global,env,buffer) {
"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.DYNAMICTOP_PTR|0;var j=env.tempDoublePtr|0;var k=env.ABORT|0;var l=env.STACKTOP|0;var m=env.STACK_MAX|0;var n=env.cttz_i8|0;var o=0;var p=0;var q=0;var r=0;var s=global.NaN,t=global.Infinity;var u=0,v=0,w=0,x=0,y=0.0,z=0,A=0,B=0,C=0.0;var D=0;var E=global.Math.floor;var F=global.Math.abs;var G=global.Math.sqrt;var H=global.Math.pow;var I=global.Math.cos;var J=global.Math.sin;var K=global.Math.tan;var L=global.Math.acos;var M=global.Math.asin;var N=global.Math.atan;var O=global.Math.atan2;var P=global.Math.exp;var Q=global.Math.log;var R=global.Math.ceil;var S=global.Math.imul;var T=global.Math.min;var U=global.Math.max;var V=global.Math.clz32;var W=env.abort;var X=env.assert;var Y=env.enlargeMemory;var Z=env.getTotalMemory;var _=env.abortOnCannotGrowMemory;var $=env.invoke_vi;var aa=env.invoke_iiii;var ba=env.invoke_viiiii;var ca=env.invoke_d;var da=env.invoke_di;var ea=env.invoke_i;var fa=env.invoke_iiiiiiiiiii;var ga=env.invoke_iiidd;var ha=env.invoke_vii;var ia=env.invoke_iiiiiii;var ja=env.invoke_viiiddi;var ka=env.invoke_viiiiiiiii;var la=env.invoke_ii;var ma=env.invoke_dddd;var na=env.invoke_viii;var oa=env.invoke_v;var pa=env.invoke_iiiii;var qa=env.invoke_viiiiii;var ra=env.invoke_iii;var sa=env.invoke_iiiiii;var ta=env.invoke_viiii;var ua=env.___syscall221;var va=env._emscripten_get_now_is_monotonic;var wa=env._llvm_pow_f64;var xa=env.___syscall6;var ya=env.___syscall20;var za=env._setenv;var Aa=env.___assert_fail;var Ba=env.___buildEnvironment;var Ca=env._longjmp;var Da=env._clock_gettime;var Ea=env._times;var Fa=env.___setErrNo;var Ga=env.___syscall192;var Ha=env.___syscall197;var Ia=env._emscripten_get_now;var Ja=env.___syscall195;var Ka=env.__exit;var La=env._emscripten_memcpy_big;var Ma=env.___syscall91;var Na=env._getenv;var Oa=env.___map_file;var Pa=env.___syscall33;var Qa=env.___syscall54;var Ra=env.___unlock;var Sa=env._emscripten_asm_const_iii;var Ta=env.___syscall10;var Ua=env.___lock;var Va=env._abort;var Wa=env.___syscall5;var Xa=env.___clock_gettime;var Ya=env._time;var Za=env.___syscall140;var _a=env._llvm_trap;var $a=env._exit;var ab=env.___syscall145;var bb=env.___syscall146;var cb=0.0;
// EMSCRIPTEN_START_FUNCS
function CV(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0.0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;$=l;l=l+96|0;X=$+32|0;f=$+16|0;Y=$;r=X;k=b+(a*56|0)|0;q=r+56|0;do{c[r>>2]=c[k>>2];r=r+4|0;k=k+4|0}while((r|0)<(q|0));Z=X+16|0;_=X+24|0;i=+h[_>>3];P=X+8|0;j=+h[P>>3];g=X+36|0;p=X+40|0;do if(!(i>j+1.0e-07)){if(!(i<j+-1.0e-07)?+h[Z>>3]>+h[X>>3]:0){O=4;break}O=(GV(a,b,1)|0)==0;f=c[g>>2]|0;if(O){n=0;O=7}else{f=EV(X,Z,f,b,e)|0;O=20}}else O=4;while(0);if((O|0)==4){c[f>>2]=c[X>>2];c[f+4>>2]=c[X+4>>2];c[f+8>>2]=c[X+8>>2];c[f+12>>2]=c[X+12>>2];c[X>>2]=c[Z>>2];c[X+4>>2]=c[Z+4>>2];c[X+8>>2]=c[Z+8>>2];c[X+12>>2]=c[Z+12>>2];c[Z>>2]=c[f>>2];c[Z+4>>2]=c[f+4>>2];c[Z+8>>2]=c[f+8>>2];c[Z+12>>2]=c[f+12>>2];O=c[g>>2]|0;f=c[p>>2]|0;c[g>>2]=f;c[p>>2]=O;if(!(GV(a,b,2)|0)){n=1;O=7}else{f=EV(X,Z,f,b,e)|0;O=19}}if((O|0)==7){m=EV(X,Z,f,b,e)|0;f=HV(d)|0;c[d+(f*72|0)+68>>2]=1;r=d+(f*72|0)|0;k=d+(m*72|0)|0;q=r+72|0;do{c[r>>2]=c[k>>2];r=r+4|0;k=k+4|0}while((r|0)<(q|0));t=+h[P>>3];h[d+(f*72|0)+16>>3]=t;h[d+(m*72|0)+32>>3]=t;t=+h[X>>3];h[d+(f*72|0)+8>>3]=t;h[d+(m*72|0)+24>>3]=t;c[d+(m*72|0)+48>>2]=f;c[d+(m*72|0)+52>>2]=0;c[d+(f*72|0)+40>>2]=m;c[d+(f*72|0)+44>>2]=0;g=c[d+(f*72|0)+48>>2]|0;if((g|0)>0){k=d+(g*72|0)+40|0;if((c[k>>2]|0)==(m|0))c[k>>2]=f;g=d+(g*72|0)+44|0;if((c[g>>2]|0)==(m|0))c[g>>2]=f}g=c[d+(f*72|0)+52>>2]|0;if((g|0)>0){k=d+(g*72|0)+40|0;if((c[k>>2]|0)==(m|0))c[k>>2]=f;g=d+(g*72|0)+44|0;if((c[g>>2]|0)==(m|0))c[g>>2]=f}M=IV()|0;O=IV()|0;N=d+(m*72|0)+56|0;L=c[N>>2]|0;c[e+(L*40|0)>>2]=2;K=e+(L*40|0)+8|0;c[K>>2]=c[X>>2];c[K+4>>2]=c[X+4>>2];c[K+8>>2]=c[X+8>>2];c[K+12>>2]=c[X+12>>2];c[e+(L*40|0)+4>>2]=a;c[e+(L*40|0)+32>>2]=O;c[e+(L*40|0)+36>>2]=M;c[e+(M*40|0)>>2]=3;c[e+(M*40|0)+24>>2]=m;c[e+(M*40|0)+28>>2]=L;c[e+(O*40|0)>>2]=3;c[e+(O*40|0)+24>>2]=f;c[e+(O*40|0)+28>>2]=L;c[N>>2]=M;c[d+(f*72|0)+56>>2]=O;if(n)O=19;else O=20}if((O|0)==19)if(!(GV(a,b,1)|0)){o=1;O=21}else{g=1;O=32}else if((O|0)==20)if(!(GV(a,b,2)|0)){o=0;O=21}else{g=0;O=32}if((O|0)==21){n=EV(Z,X,c[p>>2]|0,b,e)|0;m=HV(d)|0;c[d+(m*72|0)+68>>2]=1;r=d+(m*72|0)|0;k=d+(n*72|0)|0;q=r+72|0;do{c[r>>2]=c[k>>2];r=r+4|0;k=k+4|0}while((r|0)<(q|0));t=+h[_>>3];h[d+(m*72|0)+16>>3]=t;h[d+(n*72|0)+32>>3]=t;t=+h[Z>>3];h[d+(m*72|0)+8>>3]=t;h[d+(n*72|0)+24>>3]=t;c[d+(n*72|0)+48>>2]=m;c[d+(n*72|0)+52>>2]=0;c[d+(m*72|0)+40>>2]=n;c[d+(m*72|0)+44>>2]=0;g=c[d+(m*72|0)+48>>2]|0;if((g|0)>0){k=d+(g*72|0)+40|0;if((c[k>>2]|0)==(n|0))c[k>>2]=m;g=d+(g*72|0)+44|0;if((c[g>>2]|0)==(n|0))c[g>>2]=m}g=c[d+(m*72|0)+52>>2]|0;if((g|0)>0){k=d+(g*72|0)+40|0;if((c[k>>2]|0)==(n|0))c[k>>2]=m;g=d+(g*72|0)+44|0;if((c[g>>2]|0)==(n|0))c[g>>2]=m}M=IV()|0;N=IV()|0;g=d+(n*72|0)+56|0;L=c[g>>2]|0;c[e+(L*40|0)>>2]=2;K=e+(L*40|0)+8|0;c[K>>2]=c[Z>>2];c[K+4>>2]=c[Z+4>>2];c[K+8>>2]=c[Z+8>>2];c[K+12>>2]=c[Z+12>>2];c[e+(L*40|0)+4>>2]=a;c[e+(L*40|0)+32>>2]=N;c[e+(L*40|0)+36>>2]=M;c[e+(M*40|0)>>2]=3;c[e+(M*40|0)+24>>2]=n;c[e+(M*40|0)+28>>2]=L;c[e+(N*40|0)>>2]=3;c[e+(N*40|0)+24>>2]=m;c[e+(N*40|0)+28>>2]=L;c[g>>2]=M;c[d+(m*72|0)+56>>2]=N;N=f;f=0;g=o}else if((O|0)==32){N=f;n=EV(Z,X,c[p>>2]|0,b,e)|0;f=1}a:do if((N|0)>0){L=d+(n*72|0)+24|0;M=d+(n*72|0)+32|0;K=(f|0)!=0;G=g?b+(a*56|0)+48|0:b+(a*56|0)+44|0;I=Y+8|0;g=0;f=0;H=N;while(1){k=d+(H*72|0)|0;D=d+(H*72|0)+24|0;if(!(JV(D,L)|0))break a;m=d+(H*72|0)+56|0;C=c[m>>2]|0;o=IV()|0;p=IV()|0;c[e+(C*40|0)>>2]=1;c[e+(C*40|0)+4>>2]=a;c[e+(C*40|0)+32>>2]=o;c[e+(C*40|0)+36>>2]=p;c[e+(o*40|0)>>2]=3;c[e+(o*40|0)+24>>2]=H;c[e+(o*40|0)+28>>2]=C;c[e+(p*40|0)>>2]=3;E=HV(d)|0;c[e+(p*40|0)+24>>2]=E;J=d+(E*72|0)|0;c[d+(E*72|0)+68>>2]=1;c[e+(p*40|0)+28>>2]=C;g=(H|0)==(N|0)?E:g;C=d+(H*72|0)+32|0;if(+F(+(+h[C>>3]-+h[M>>3]))<=1.0e-07?+F(+(+h[D>>3]-+h[L>>3]))<=1.0e-07:0)f=E;r=J;q=r+72|0;do{c[r>>2]=c[k>>2];r=r+4|0;k=k+4|0}while((r|0)<(q|0));c[m>>2]=o;c[d+(E*72|0)+56>>2]=p;z=d+(H*72|0)+48|0;k=c[z>>2]|0;q=(k|0)<1;m=d+(H*72|0)+52|0;if(q?(c[m>>2]|0)<1:0)break;A=d+(E*72|0)+48|0;r=d+(H*72|0)+64|0;p=d+(E*72|0)+44|0;o=d+(E*72|0)+52|0;v=d+(H*72|0)+60|0;w=d+(E*72|0)+60|0;y=d+(E*72|0)+40|0;x=d+(H*72|0)+44|0;B=d+(H*72|0)+40|0;do if((k|0)>0?(c[m>>2]|0)<1:0){k=c[B>>2]|0;do if((k|0)>0?(Q=c[x>>2]|0,(Q|0)>0):0){k=c[v>>2]|0;if((k|0)<=0){c[y>>2]=Q;c[p>>2]=-1;c[x>>2]=-1;c[d+(Q*72|0)+48>>2]=E;break}if((c[r>>2]|0)==1){c[y>>2]=Q;c[x>>2]=-1;c[p>>2]=k;r=E;q=Q;k=c[B>>2]|0}else{c[p>>2]=-1;c[y>>2]=c[x>>2];q=c[B>>2]|0;c[x>>2]=q;c[B>>2]=k;r=H;p=y}c[d+(k*72|0)+48>>2]=H;c[d+(q*72|0)+48>>2]=r;c[d+((c[p>>2]|0)*72|0)+48>>2]=E;c[w>>2]=0;c[v>>2]=0}else O=52;while(0);do if((O|0)==52){O=0;q=d+(k*72|0)+48|0;r=c[q>>2]|0;k=d+(k*72|0)+52|0;if((r|0)>0?(c[k>>2]|0)>0:0){k=c[d+(r*72|0)+4>>2]|0;if((k|0)>0?(FV(k,b,Z)|0)==0:0){c[p>>2]=-1;c[x>>2]=-1;c[B>>2]=-1;c[d+((c[y>>2]|0)*72|0)+52>>2]=E;break}c[x>>2]=-1;c[p>>2]=-1;c[y>>2]=-1;c[d+((c[B>>2]|0)*72|0)+48>>2]=H;break}c[q>>2]=H;c[k>>2]=E}while(0);if(+F(+(+h[C>>3]-+h[M>>3]))<=1.0e-07?K&+F(+(+h[D>>3]-+h[L>>3]))<=1.0e-07:0){k=c[G>>2]|0;if((k|0)>0?(FV(k,b,X)|0)!=0:0){c[d+((c[z>>2]|0)*72|0)+40>>2]=H;m=o;k=E}else{c[d+((c[A>>2]|0)*72|0)+44>>2]=E;k=H}c[m>>2]=-1;c[d+(k*72|0)+48>>2]=-1;k=c[z>>2]|0;break}k=c[z>>2]|0;m=d+(k*72|0)+40|0;o=c[m>>2]|0;p=d+(k*72|0)+44|0;if((o|0)>0?(R=c[p>>2]|0,S=(o|0)==(H|0),(R|0)>0):0){c[d+(k*72|0)+60>>2]=S?R:o;c[d+(k*72|0)+64>>2]=S?1:2}c[m>>2]=H;c[p>>2]=E}else O=70;while(0);do if((O|0)==70){O=0;if(q?(c[m>>2]|0)>0:0){k=c[B>>2]|0;do if((k|0)>0?(T=c[x>>2]|0,(T|0)>0):0){k=c[v>>2]|0;if((k|0)<=0){c[y>>2]=T;c[p>>2]=-1;c[x>>2]=-1;c[d+(T*72|0)+48>>2]=E;break}if((c[r>>2]|0)==1){c[y>>2]=T;c[x>>2]=-1;c[p>>2]=k;r=E;q=T;k=c[B>>2]|0}else{c[p>>2]=-1;c[y>>2]=c[x>>2];q=c[B>>2]|0;c[x>>2]=q;c[B>>2]=k;r=H;p=y}c[d+(k*72|0)+48>>2]=H;c[d+(q*72|0)+48>>2]=r;c[d+((c[p>>2]|0)*72|0)+48>>2]=E;c[w>>2]=0;c[v>>2]=0}else O=80;while(0);do if((O|0)==80){O=0;q=d+(k*72|0)+48|0;r=c[q>>2]|0;k=d+(k*72|0)+52|0;if((r|0)>0?(c[k>>2]|0)>0:0){k=c[d+(r*72|0)+4>>2]|0;if((k|0)>0?(FV(k,b,Z)|0)==0:0){c[p>>2]=-1;c[x>>2]=-1;c[B>>2]=-1;c[d+((c[y>>2]|0)*72|0)+52>>2]=E;break}c[x>>2]=-1;c[p>>2]=-1;c[y>>2]=-1;c[d+((c[B>>2]|0)*72|0)+48>>2]=H;break}c[q>>2]=H;c[k>>2]=E}while(0);if(+F(+(+h[C>>3]-+h[M>>3]))<=1.0e-07?K&+F(+(+h[D>>3]-+h[L>>3]))<=1.0e-07:0){k=c[G>>2]|0;if((k|0)>0?(FV(k,b,X)|0)!=0:0){c[d+((c[m>>2]|0)*72|0)+40>>2]=H;k=E}else{c[d+((c[o>>2]|0)*72|0)+44>>2]=E;o=m;k=H}c[o>>2]=-1;c[d+(k*72|0)+48>>2]=-1;k=c[m>>2]|0;break}k=c[m>>2]|0;m=d+(k*72|0)+40|0;o=c[m>>2]|0;p=d+(k*72|0)+44|0;if((o|0)>0?(U=c[p>>2]|0,V=(o|0)==(H|0),(U|0)>0):0){c[d+(k*72|0)+60>>2]=V?U:o;c[d+(k*72|0)+64>>2]=V?1:2}c[m>>2]=H;c[p>>2]=E;break}i=+h[C>>3];j=+h[P>>3];s=i-j;u=!(+F(+s)<=1.0e-07);t=+h[X>>3];if(u){h[I>>3]=i;h[Y>>3]=t+s/(+h[_>>3]-j)*(+h[Z>>3]-t);u=(KV(Y,D)|0)!=0}else u=+h[D>>3]>t;k=c[B>>2]|0;do if((k|0)>0?(W=c[x>>2]|0,(W|0)>0):0){k=c[v>>2]|0;if((k|0)<=0){c[y>>2]=W;c[p>>2]=-1;c[x>>2]=-1;c[d+(W*72|0)+48>>2]=E;break}if((c[r>>2]|0)==1){c[y>>2]=W;c[x>>2]=-1;c[p>>2]=k;r=E;q=W;k=c[B>>2]|0}else{c[p>>2]=-1;c[y>>2]=c[x>>2];q=c[B>>2]|0;c[x>>2]=q;c[B>>2]=k;r=H;p=y}c[d+(k*72|0)+48>>2]=H;c[d+(q*72|0)+48>>2]=r;c[d+((c[p>>2]|0)*72|0)+48>>2]=E;c[w>>2]=0;c[v>>2]=0}else O=109;while(0);do if((O|0)==109){O=0;q=d+(k*72|0)+48|0;r=c[q>>2]|0;k=d+(k*72|0)+52|0;if((r|0)>0?(c[k>>2]|0)>0:0){k=c[d+(r*72|0)+4>>2]|0;if((k|0)>0?(FV(k,b,Z)|0)==0:0){c[p>>2]=-1;c[x>>2]=-1;c[B>>2]=-1;c[d+((c[y>>2]|0)*72|0)+52>>2]=E;break}c[x>>2]=-1;c[p>>2]=-1;c[y>>2]=-1;c[d+((c[B>>2]|0)*72|0)+48>>2]=H;break}c[q>>2]=H;c[k>>2]=E}while(0);if(+F(+(+h[C>>3]-+h[M>>3]))<=1.0e-07?K&+F(+(+h[D>>3]-+h[L>>3]))<=1.0e-07:0){k=c[z>>2]|0;c[d+(k*72|0)+40>>2]=H;c[d+(k*72|0)+44>>2]=-1;k=c[m>>2]|0;c[d+(k*72|0)+40>>2]=E;c[d+(k*72|0)+44>>2]=-1;c[A>>2]=k;c[o>>2]=-1;c[m>>2]=-1;k=-1}else O=119;do if((O|0)==119){O=0;k=c[z>>2]|0;c[d+(k*72|0)+40>>2]=H;p=d+(k*72|0)+44|0;if(u){c[p>>2]=E;D=c[m>>2]|0;c[d+(D*72|0)+40>>2]=E;c[d+(D*72|0)+44>>2]=-1;c[m>>2]=-1;break}else{c[p>>2]=-1;k=c[m>>2]|0;c[d+(k*72|0)+40>>2]=H;c[d+(k*72|0)+44>>2]=E;c[A>>2]=k;c[o>>2]=-1;k=c[m>>2]|0;break}}while(0)}while(0);c[J>>2]=a;c[d+(H*72|0)+4>>2]=a;if((k|0)>0)H=k;else break a}_3(138727,19,1,c[15715]|0)|0}else{g=0;f=0}while(0);LV(a,N,n,1,d,e);LV(a,g,f,2,d,e);c[b+(a*56|0)+32>>2]=1;l=$;return}function DV(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(!(c[b+(a*56|0)+32>>2]|0)){f=b+(a*56|0)|0;g=b+(a*56|0)+16|0;h=b+(a*56|0)+36|0;c[h>>2]=c[d+((EV(f,g,c[h>>2]|0,b,e)|0)*72|0)+56>>2];a=b+(a*56|0)+40|0;c[a>>2]=c[d+((EV(g,f,c[a>>2]|0,b,e)|0)*72|0)+56>>2]}return}function EV(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,i=0,j=0.0,k=0.0,l=0.0,m=0,n=0.0,o=0.0,p=0,q=0.0,r=0,s=0;p=b+8|0;r=a+8|0;i=d;a:while(1){m=f+(i*40|0)+36|0;d=f+(i*40|0)+32|0;b:do switch(c[f+(i*40|0)>>2]|0){case 3:{s=3;break a}case 2:{g=+h[r>>3];j=+h[f+(i*40|0)+16>>3];k=j+1.0e-07;if(!(g>k)){l=j+-1.0e-07;i=f+(i*40|0)+8|0;if(!(g<l)?+h[a>>3]>+h[i>>3]:0){d=m;break b}if(+F(+(g-j))<=1.0e-07?(n=+h[i>>3],+F(+(+h[a>>3]-n))<=1.0e-07):0){g=+h[p>>3];if(g>k)d=m;else if(!(g<l)?+h[b>>3]>n:0){d=m;break b}}}else d=m;break}case 1:{j=+h[r>>3];i=c[f+(i*40|0)+4>>2]|0;if(+F(+(j-+h[e+(i*56|0)+8>>3]))<=1.0e-07?(o=+h[a>>3],+F(+(o-+h[e+(i*56|0)>>3]))<=1.0e-07):0)g=o;else s=16;do if((s|0)==16){s=0;if(+F(+(j-+h[e+(i*56|0)+24>>3]))<=1.0e-07?(q=+h[a>>3],+F(+(q-+h[e+(i*56|0)+16>>3]))<=1.0e-07):0){g=q;break}i=(FV(i,e,a)|0)==0;d=i?m:d;break b}while(0);if(!(+F(+(j-+h[p>>3]))<=1.0e-07)){i=(FV(i,e,b)|0)==0;d=i?m:d;break b}if(!(+h[b>>3]<g))d=m;break}default:{s=23;break a}}while(0);i=c[d>>2]|0}if((s|0)==3)return c[f+(i*40|0)+24>>2]|0;else if((s|0)==23){_3(138661,35,1,c[15715]|0)|0;Aa(138697,138699,349,138711)}return 0}function FV(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0,i=0.0,j=0.0,k=0,l=0.0;i=+h[b+(a*56|0)+24>>3];j=+h[b+(a*56|0)+8>>3];k=b+(a*56|0)+16|0;b=b+(a*56|0)|0;a=c+8|0;do if(!(i>j+1.0e-07)){if(!(i<j+-1.0e-07)?+h[k>>3]>+h[b>>3]:0){g=4;break}f=+h[a>>3];a=!(+F(+(i-f))<=1.0e-07);e=+h[c>>3];if(!a){d=e<+h[k>>3]?1.0:-1.0;break}c=!(+F(+(j-f))<=1.0e-07);d=+h[b>>3];if(c){l=+h[k>>3];d=(f-i)*(d-l)-(j-i)*(e-l);break}else{d=e<d?1.0:-1.0;break}}else g=4;while(0);do if((g|0)==4){f=+h[a>>3];g=!(+F(+(i-f))<=1.0e-07);e=+h[c>>3];if(!g){d=e<+h[k>>3]?1.0:-1.0;break}g=!(+F(+(j-f))<=1.0e-07);d=+h[b>>3];if(g){d=(f-j)*(+h[k>>3]-d)-(i-j)*(e-d);break}else{d=e<d?1.0:-1.0;break}}while(0);return d>0.0|0}function GV(a,b,d){a=a|0;b=b|0;d=d|0;return c[b+((c[((d|0)==1?b+(a*56|0)+48|0:b+(a*56|0)+44|0)>>2]|0)*56|0)+32>>2]|0}function HV(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;d=e;b=c[47466]|0;if((b|0)<(c[47465]|0)){c[a+(b*72|0)>>2]=-1;c[a+(b*72|0)+4>>2]=-1;c[a+(b*72|0)+68>>2]=1;c[47466]=b+1;l=e;return b|0}else{e=c[15715]|0;c[d>>2]=b;z4(e,138786,d)|0;Aa(138697,138699,88,138824)}return 0}function IV(){var a=0;a=c[47467]|0;if((a|0)<(c[47464]|0)){c[47467]=a+1;return a|0}else{_3(138747,30,1,c[15715]|0)|0;Aa(138697,138699,72,138778)}return 0}function JV(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;c=+h[a+8>>3];d=+h[b+8>>3];if(!(c>d+1.0e-07))if(c<d+-1.0e-07)a=0;else a=+h[a>>3]>=+h[b>>3]&1;else a=1;return a|0}function KV(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;c=+h[a+8>>3];d=+h[b+8>>3];if(!(c<d+-1.0e-07))if(c>d+1.0e-07)a=0;else a=+h[a>>3]<+h[b>>3]&1;else a=1;return a|0}function LV(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;q=f+(d*72|0)+24|0;p=(e|0)==1;a:while(1){o=f+(b*72|0)+24|0;j=f+(b*72|0)+48|0;k=f+(b*72|0)+52|0;l=f+(b*72|0)|0;m=f+(b*72|0)+4|0;n=f+(b*72|0)+56|0;if((b|0)<=0)break;while(1){if(!(JV(o,q)|0))break a;d=c[j>>2]|0;e=(d|0)>0;do if(p){if(e?(c[f+(d*72|0)+4>>2]|0)==(a|0):0)break;d=c[k>>2]|0;if((d|0)<=0){b=d;continue a}e=d;d=f+(d*72|0)+4|0;r=13}else{if(e?(c[f+(d*72|0)>>2]|0)==(a|0):0)break;d=c[k>>2]|0;if((d|0)<=0){b=d;continue a}e=d;d=f+(d*72|0)|0;r=13}while(0);if((r|0)==13){r=0;if((c[d>>2]|0)==(a|0))d=e;else{b=e;continue a}}if((c[l>>2]|0)!=(c[f+(d*72|0)>>2]|0)){b=d;continue a}if((c[m>>2]|0)!=(c[f+(d*72|0)+4>>2]|0)){b=d;continue a}s=c[f+(d*72|0)+56>>2]|0;e=c[g+(s*40|0)+28>>2]|0;h=g+(e*40|0)+32|0;i=c[n>>2]|0;if((c[h>>2]|0)==(s|0))c[h>>2]=i;else c[g+(e*40|0)+36>>2]=i;e=c[f+(d*72|0)+48>>2]|0;c[j>>2]=e;do if((e|0)>0){h=f+(e*72|0)+40|0;if((c[h>>2]|0)==(d|0)){c[h>>2]=b;break}e=f+(e*72|0)+44|0;if((c[e>>2]|0)==(d|0))c[e>>2]=b}while(0);e=c[f+(d*72|0)+52>>2]|0;c[k>>2]=e;do if((e|0)>0){h=f+(e*72|0)+40|0;if((c[h>>2]|0)==(d|0)){c[h>>2]=b;break}e=f+(e*72|0)+44|0;if((c[e>>2]|0)==(d|0))c[e>>2]=b}while(0);s=f+(d*72|0)+24|0;c[o>>2]=c[s>>2];c[o+4>>2]=c[s+4>>2];c[o+8>>2]=c[s+8>>2];c[o+12>>2]=c[s+12>>2];c[f+(d*72|0)+68>>2]=2}}return}function MV(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0;e=+h[b+8>>3];f=+h[d+8>>3];do if(!(e>f+1.0e-07)){if(!(+F(+(e-f))<=1.0e-07)){c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];break}if(+h[b>>3]>+h[d>>3]+1.0e-07){c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];break}else{c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];break}}else{c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2]}while(0);return}function NV(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0;e=+h[b+8>>3];f=+h[d+8>>3];do if(!(e<f+-1.0e-07)){if(!(+F(+(e-f))<=1.0e-07)){c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];break}if(+h[b>>3]<+h[d>>3]){c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];break}else{c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];break}}else{c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2]}while(0);return}function OV(a){a=a|0;var b=0;b=HK(8)|0;if(b|0){c[b+4>>2]=a;c[b>>2]=0}return b|0}function PV(a,b){a=a|0;b=b|0;if(b){b=OV(b)|0;c[b>>2]=a;a=b}return a|0}function QV(a){a=a|0;var b=0;do{b=a;a=c[a>>2]|0;l6(b)}while((a|0)!=0);return}function RV(){var a=0;a=HK(1992)|0;if(a|0)c[a>>2]=SV(a)|0;return a|0}function SV(a){a=a|0;var b=0;b=YV(a)|0;c[b+4>>2]=0;a=a+1972|0;c[a>>2]=(c[a>>2]|0)+1;return b|0}function TV(a){a=a|0;UV(a,c[a>>2]|0);l6(c[a>>2]|0);l6(a);return 0}function UV(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;g=a+1936|0;h=a+1980|0;i=a+1912|0;a:do if((c[b+4>>2]|0)>0){d=0;while(1){if((d|0)==64)break a;e=b+8+(d*20|0)+16|0;f=c[e>>2]|0;if(f|0?(UV(a,f),l6(c[e>>2]|0),cW(b,d),c[h>>2]=(c[h>>2]|0)+-1,c[i>>2]|0):0)c[g>>2]=(c[g>>2]|0)+1;d=d+1|0}}else{d=0;while(1){if((d|0)==64)break a;if(c[b+8+(d*20|0)+16>>2]|0?(cW(b,d),c[h>>2]=(c[h>>2]|0)+-1,c[i>>2]|0):0)c[g>>2]=(c[g>>2]|0)+1;d=d+1|0}}while(0);return}function VV(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;if(!b)Aa(139182,138832,194,138840);e=c[b+4>>2]|0;if((e|0)<=-1)Aa(138852,138832,195,138840);if(!d)Aa(139124,138832,196,138840);i=a+1952|0;c[i>>2]=(c[i>>2]|0)+1;a:do if((e|0)>0){i=0;e=0;while(1){if((i|0)==64)break a;f=b+8+(i*20|0)+16|0;if((c[f>>2]|0)!=0?(hW(d,b+8+(i*20|0)|0)|0)!=0:0){g=VV(a,c[f>>2]|0,d)|0;if(!e)e=g;else{f=e;while(1){h=c[f>>2]|0;if(!h)break;else f=h}c[f>>2]=g}}i=i+1|0}}else{g=0;e=0;while(1){if((g|0)==64)break a;f=b+8+(g*20|0)|0;if((c[b+8+(g*20|0)+16>>2]|0)!=0?(hW(d,f)|0)!=0:0)e=PV(e,f)|0;g=g+1|0}}while(0);return e|0}function WV(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;o=l;l=l+64|0;j=o+52|0;k=o+32|0;m=o+16|0;n=o;c[j>>2]=0;if(!((b|0)!=0&(e|0)!=0))Aa(139038,138832,247,138866);if((f|0)>-1?(i=c[e>>2]|0,(c[i+4>>2]|0)>=(f|0)):0){g=0;while(1){if((g|0)>=2)break;if((c[b+(g<<2)>>2]|0)>(c[b+(g+2<<2)>>2]|0)){h=8;break}else g=g+1|0}if((h|0)==8)Aa(138913,138832,250,138866);g=a+1912|0;h=a+1908|0;if(c[g>>2]|0){p=c[h>>2]|0?a+1924|0:a+1916|0;c[p>>2]=(c[p>>2]|0)+1}if(!(c[h>>2]|0)){p=a+1964|0;c[p>>2]=(c[p>>2]|0)+1}if(!(XV(a,b,d,i,j,f)|0))g=0;else{if(c[g>>2]|0){p=c[h>>2]|0?a+1948|0:a+1944|0;c[p>>2]=(c[p>>2]|0)+1}g=YV(a)|0;p=a+1976|0;c[p>>2]=(c[p>>2]|0)+1;p=c[e>>2]|0;c[g+4>>2]=(c[p+4>>2]|0)+1;$V(m,p);c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];c[k+12>>2]=c[m+12>>2];p=k+16|0;c[p>>2]=c[e>>2];bW(a,k,g,0)|0;$V(n,c[j>>2]|0);c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];c[k+12>>2]=c[n+12>>2];c[p>>2]=c[j>>2];bW(a,k,g,0)|0;c[e>>2]=g;g=a+1980|0;c[g>>2]=(c[g>>2]|0)+2;g=1}l=o;return g|0}Aa(138878,138832,248,138866);return 0}function XV(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+80|0;m=q+52|0;n=q+48|0;o=q+32|0;p=q+16|0;k=q;c[n>>2]=0;if(!((b|0)!=0&(e|0)!=0&(f|0)!=0))Aa(138956,138832,311,138970);if((g|0)>-1?(i=e+4|0,h=c[i>>2]|0,(h|0)>=(g|0)):0){if(c[a+1912>>2]|0){h=c[a+1908>>2]|0?a+1948|0:a+1944|0;c[h>>2]=(c[h>>2]|0)+1;h=c[i>>2]|0}do if((h|0)>(g|0)){i=aW(b,e)|0;h=e+8+(i*20|0)+16|0;i=e+8+(i*20|0)|0;if(!(XV(a,b,d,c[h>>2]|0,n,g)|0)){gW(o,b,i);c[i>>2]=c[o>>2];c[i+4>>2]=c[o+4>>2];c[i+8>>2]=c[o+8>>2];c[i+12>>2]=c[o+12>>2];j=0;break}else{$V(p,c[h>>2]|0);c[i>>2]=c[p>>2];c[i+4>>2]=c[p+4>>2];c[i+8>>2]=c[p+8>>2];c[i+12>>2]=c[p+12>>2];j=c[n>>2]|0;c[m+16>>2]=j;$V(k,j);c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];c[m+12>>2]=c[k+12>>2];j=a+1980|0;c[j>>2]=(c[j>>2]|0)+1;j=bW(a,m,e,f)|0;break}}else if((h|0)==(g|0)){c[m>>2]=c[b>>2];c[m+4>>2]=c[b+4>>2];c[m+8>>2]=c[b+8>>2];c[m+12>>2]=c[b+12>>2];c[m+16>>2]=d;j=a+1980|0;c[j>>2]=(c[j>>2]|0)+1;j=bW(a,m,e,f)|0;break}else Aa(139015,138832,341,138970);while(0);l=q;return j|0}Aa(138983,138832,312,138970);return 0}function YV(a){a=a|0;a=a+1968|0;c[a>>2]=(c[a>>2]|0)+1;a=k6(1288)|0;ZV(a);return a|0}function ZV(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=-1;b=0;while(1){if((b|0)==64)break;_V(a+8+(b*20|0)|0);b=b+1|0}return}function _V(a){a=a|0;dW(a);c[a+16>>2]=0;return}function $V(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+32|0;g=i+16|0;h=i;if(!b)Aa(139182,139021,99,139028);dW(g);d=1;f=0;while(1){if((f|0)==64)break;do if(c[b+8+(f*20|0)+16>>2]|0){e=b+8+(f*20|0)|0;if(!d){gW(h,g,e);c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];c[g+12>>2]=c[h+12>>2];d=0;break}else{c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];d=0;break}}while(0);f=f+1|0}c[a>>2]=c[g>>2];c[a+4>>2]=c[g+4>>2];c[a+8>>2]=c[g+8>>2];c[a+12>>2]=c[g+12>>2];l=i;return}function aW(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;k=l;l=l+32|0;i=k+16|0;j=k;if(!((a|0)!=0&(b|0)!=0))Aa(139038,139021,125,139045);d=0;e=0;f=0;g=1;h=0;while(1){if((h|0)==64)break;if(c[b+8+(h*20|0)+16>>2]|0){n=b+8+(h*20|0)|0;p=fW(n)|0;gW(j,a,n);c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];n=(fW(i)|0)-p|0;m=(g|0)!=0|(n|0)<(f|0);o=m|(p|0)<(e|0)&(n|0)==(f|0);d=o?h:d;e=o?p:e;f=o?n:f;g=m?0:g}h=h+1|0}l=k;return d|0}function bW(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(!b)Aa(139204,139021,167,139056);if(!d)Aa(139182,139021,168,139056);do if((c[d>>2]|0)<64){a=0;while(1){if((a|0)>=64){e=10;break}if(!(c[d+8+(a*20|0)+16>>2]|0)){e=8;break}a=a+1|0}if((e|0)==8){f=d+8+(a*20|0)|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];c[f+16>>2]=c[b+16>>2];f=0;g=d;break}else if((e|0)==10)Aa(139066,139021,178,139056)}else{if(c[a+1912>>2]|0){h=c[a+1908>>2]|0?a+1948|0:a+1944|0;c[h>>2]=(c[h>>2]|0)+1}if(!e)Aa(139079,139021,187,139056);else{iW(a,d,b,e);f=1;g=(c[d+4>>2]|0)==0?a+1972|0:a+1976|0;break}}while(0);c[g>>2]=(c[g>>2]|0)+1;return f|0}function cW(a,b){a=a|0;b=b|0;if(!((a|0)!=0&b>>>0<64))Aa(139083,139021,201,139111);if(!(c[a+8+(b*20|0)+16>>2]|0))Aa(139605,139021,202,139111);else{_V(a+8+(b*20|0)|0);c[a>>2]=(c[a>>2]|0)+-1;return}}function dW(a){a=a|0;var b=0;b=0;while(1){if((b|0)==4)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function eW(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;d=e;c[d>>2]=1;c[d+8>>2]=-1;b=1;while(1){if((b|0)==2)break;c[d+(b+2<<2)>>2]=0;c[d+(b<<2)>>2]=0;b=b+1|0}c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];l=e;return}function fW(a){a=a|0;var b=0,d=0,e=0;if(!a)Aa(139124,139126,128,139138);a:do if((c[a>>2]|0)>(c[a+8>>2]|0))b=0;else{b=1;d=0;while(1){if((d|0)==2)break a;e=S(c[a+(d+2<<2)>>2]|0,b)|0;b=e-(c[a+(d<<2)>>2]|0)|0;d=d+1|0}}while(0);return b|0}function gW(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;g=l;l=l+16|0;f=g;if(!((b|0)!=0&(d|0)!=0))Aa(139147,139126,195,139155);do if((c[b>>2]|0)>(c[b+8>>2]|0)){c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2]}else{if((c[d>>2]|0)>(c[d+8>>2]|0)){c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];break}else e=0;while(1){if((e|0)==2)break;j=c[b+(e<<2)>>2]|0;h=c[d+(e<<2)>>2]|0;c[f+(e<<2)>>2]=(j|0)<(h|0)?j:h;h=e+2|0;j=c[b+(h<<2)>>2]|0;i=c[d+(h<<2)>>2]|0;c[f+(h<<2)>>2]=(j|0)>(i|0)?j:i;e=e+1|0}c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];c[a+12>>2]=c[f+12>>2]}while(0);l=g;return}function hW(a,b){a=a|0;b=b|0;var d=0,e=0;if((a|0)!=0&(b|0)!=0)d=0;else Aa(139167,139126,216,139174);while(1){if((d|0)>=2){d=1;break}e=d+2|0;if((c[a+(d<<2)>>2]|0)>(c[b+(e<<2)>>2]|0)){d=0;break}if((c[b+(d<<2)>>2]|0)>(c[a+(e<<2)>>2]|0)){d=0;break}else d=d+1|0}return d|0}function iW(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0;if(!b)Aa(139182,139184,40,139194);if(!d)Aa(139204,139184,41,139194);j=a+1912|0;k=a+1908|0;if(c[j>>2]|0){i=c[k>>2]|0?a+1932|0:a+1928|0;c[i>>2]=(c[i>>2]|0)+1}h=b+4|0;i=c[h>>2]|0;jW(a,b,d);d=a+1324|0;kW(a);f=fW(a+1852|0)|0;f=(fW(a+1868|0)|0)+f|0;if(c[j>>2]|0?(f|0)!=0&(c[k>>2]|0)==0:0){k=a+1960|0;g[k>>2]=+g[k>>2]+ +((c[a+1320>>2]|0)>>>0)/+(f|0)}k=YV(a)|0;c[e>>2]=k;c[h>>2]=i;c[k+4>>2]=i;lW(a,b,k,d);if(((c[c[e>>2]>>2]|0)+(c[b>>2]|0)|0)==65)return;else Aa(139206,139184,86,139194)}function jW(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;h=l;l=l+16|0;g=h;if(!b)Aa(139182,139184,106,139593);if(!d)Aa(139204,139184,107,139593);else e=0;while(1){if((e|0)>=64)break;if(!(c[b+8+(e*20|0)+16>>2]|0)){f=7;break}j=b+8+(e*20|0)|0;i=a+4+(e*20|0)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];c[i+16>>2]=c[j+16>>2];e=e+1|0}if((f|0)==7)Aa(139605,139184,111,139593);e=a+4|0;j=a+1284|0;c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];c[j+16>>2]=c[d+16>>2];d=a+1304|0;c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];c[d+12>>2]=c[e+12>>2];e=1;while(1){if((e|0)==65)break;gW(g,d,a+4+(e*20|0)|0);c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];c[d+12>>2]=c[g+12>>2];e=e+1|0}c[a+1320>>2]=fW(d)|0;ZV(b);l=h;return}function kW(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=l;l=l+48|0;i=u+32|0;k=u+16|0;m=u;mW(a);nW(a);s=a+1844|0;q=a+1848|0;t=a+1892|0;n=a+1852|0;o=a+1884|0;p=a+1868|0;j=a+1888|0;f=0;e=0;while(1){b=c[s>>2]|0;d=c[q>>2]|0;if((d+b|0)>=65)break;h=65-(c[t>>2]|0)|0;b=(b|0)<(h|0);if(b&(d|0)<(h|0)){g=-1;h=0}else{r=12;break}while(1){if((h|0)==65)break;if(!(c[a+1584+(h<<2)>>2]|0)){v=a+4+(h*20|0)|0;gW(k,v,n);c[i>>2]=c[k>>2];c[i+4>>2]=c[k+4>>2];c[i+8>>2]=c[k+8>>2];c[i+12>>2]=c[k+12>>2];b=fW(i)|0;d=c[o>>2]|0;gW(m,v,p);c[i>>2]=c[m>>2];c[i+4>>2]=c[m+4>>2];c[i+8>>2]=c[m+8>>2];c[i+12>>2]=c[m+12>>2];v=fW(i)|0;b=v-(c[j>>2]|0)+(d-b)|0;d=(b|0)>-1;b=d?b:0-b|0;d=(d^1)&1;if((b|0)<=(g|0))if((b|0)==(g|0)){v=(c[a+1844+(d<<2)>>2]|0)<(c[a+1844+(f<<2)>>2]|0);b=g;d=v?d:f;e=v?h:e}else{b=g;d=f}else e=h}else{b=g;d=f}g=b;h=h+1|0;f=d}oW(a,e,f)}if((r|0)==12){b=(b^1)&1;d=0;while(1){if((d|0)==65)break;if(!(c[a+1584+(d<<2)>>2]|0))oW(a,d,b);d=d+1|0}d=c[q>>2]|0;b=c[s>>2]|0}if((d+b|0)!=65)Aa(139349,139184,210,139435);v=c[t>>2]|0;if((b|0)<(v|0)|(d|0)<(v|0))Aa(139446,139184,212,139435);else{l=u;return}}function lW(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;if(!b)Aa(139182,139184,297,139246);if(!d)Aa(139256,139184,298,139246);if(!e)Aa(139258,139184,299,139246);else g=0;while(1){if((g|0)>=65){e=14;break}f=c[a+1324+(g<<2)>>2]|0;if(f>>>0>=2){e=9;break}e=a+4+(g*20|0)|0;switch(f|0){case 0:{bW(a,e,b,0)|0;break}case 1:{bW(a,e,d,0)|0;break}default:{}}g=g+1|0}if((e|0)==9)Aa(139260,139184,303,139246);else if((e|0)==14)return}function mW(a){a=a|0;var b=0,d=0,e=0,f=0;d=l;l=l+16|0;e=d;c[a+1848>>2]=0;c[a+1844>>2]=0;b=a+1852|0;f=a+1868|0;eW(e);c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[b+12>>2]=c[e+12>>2];c[a+1888>>2]=0;c[a+1884>>2]=0;b=0;while(1){if((b|0)==65)break;c[a+1584+(b<<2)>>2]=0;c[a+1324+(b<<2)>>2]=-1;b=b+1|0}l=d;return}function nW(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;o=l;l=l+304|0;k=o+32|0;m=o+16|0;n=o;b=0;while(1){if((b|0)==65)break;c[k+(b<<2)>>2]=fW(a+4+(b*20|0)|0)|0;b=b+1|0}b=0;d=0;e=0;g=0;a:while(1){if((g|0)==64)break;i=g+1|0;j=a+4+(g*20|0)|0;h=k+(g<<2)|0;f=i;while(1){if((f|0)==65){g=i;continue a}gW(n,j,a+4+(f*20|0)|0);c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];p=fW(m)|0;p=p-(c[h>>2]|0)-(c[k+(f<<2)>>2]|0)|0;q=p>>>0>e>>>0;r=q?f:b;f=f+1|0;b=r;d=q?g:d;e=q?p:e}}oW(a,d,0);oW(a,b,1);l=o;return}function oW(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;h=i;e=a+1584+(b<<2)|0;if(c[e>>2]|0)Aa(139549,139184,257,139584);c[a+1324+(b<<2)>>2]=d;c[e>>2]=1;g=a+1844+(d<<2)|0;f=a+1852+(d<<4)|0;e=a+4+(b*20|0)|0;if(!(c[g>>2]|0)){c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2]}else{gW(h,e,f);c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[f+8>>2]=c[h+8>>2];c[f+12>>2]=c[h+12>>2]}c[a+1884+(d<<2)>>2]=fW(f)|0;c[g>>2]=(c[g>>2]|0)+1;l=i;return}function pW(){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+1200|0;t=v+800|0;h=v;c[47468]=0;c[47469]=-2;f=t;j=200;n=h;o=0;q=0;g=t;a:while(1){b[g>>1]=o;if((f+(j<<1)+-2|0)>>>0>g>>>0){r=j;s=f;p=h;i=n}else{m=(g-f>>1)+1|0;if(j>>>0>9999){u=96;break}j=j<<1;j=j>>>0<1e4?j:1e4;e=k6(j*6|3)|0;if(e){B6(e|0,f|0,m<<1|0)|0;i=e+(j>>>1<<2)|0;B6(i|0,n|0,m<<2|0)|0;if((f|0)==(t|0)){k=0;f=e}else{l6(f);k=0;f=e}}else{k=4;i=n}e=(k|0)==0;switch((e?((j|0)>(m|0)?0:9):k)&15){case 9:{e=1;u=97;break a}case 4:{u=96;break a}case 0:{r=j;s=f;p=e?i+(m<<2)+-4|0:h;g=e?f+(m<<1)+-2|0:g;break}default:{e=0;break a}}}if((o|0)==31){e=0;f=s;u=97;break}e=b[65806+(o<<1)>>1]|0;j=e<<16>>16;k=(q|0)!=0;do if(e<<16>>16!=-82){f=c[47469]|0;if((f|0)==-2){f=EX()|0;c[47469]=f}if((f|0)>=1)if(f>>>0<296)h=d[139624+f>>0]|0;else h=2;else{c[47469]=0;h=0}f=h+j|0;if(f>>>0<=271?(a[139920+f>>0]|0)==(h|0):0){o=a[140192+f>>0]|0;e=o<<24>>24;if(o<<24>>24<1){f=0-e|0;u=23;break}else{c[47469]=-2;h=p+4|0;c[h>>2]=c[47470];k=k?q+-1|0:0;break}}else u=22}else u=22;while(0);if((u|0)==22){u=0;o=a[140464+o>>0]|0;f=o&255;if(!(o<<24>>24)){do if(k)if((q|0)==3){f=c[47469]|0;if((f|0)<1)if(!f){e=1;f=s;u=97;break a}else{f=p;break}else{c[47469]=-2;f=p;break}}else f=p;else{c[47468]=(c[47468]|0)+1;KW(142682);f=p}while(0);while(1){if(e<<16>>16==8)break;if((g|0)==(s|0)){e=1;f=s;u=97;break a}e=g+-2|0;f=f+-4|0;g=e;e=b[65806+(b[e>>1]<<1)>>1]|0}h=f+4|0;c[h>>2]=c[47470];e=1;k=3}else u=23}do if((u|0)==23){u=0;m=d[140580+f>>0]|0;e=c[p+(1-m<<2)>>2]|0;h=p+-12|0;j=p+-4|0;k=p+-8|0;do switch(f|0){case 4:{u=26;break a}case 2:{c[47471]=qW(c[j>>2]|0,2)|0;break}case 3:{c[47471]=qW(c[j>>2]|0,1)|0;break}case 5:{e=sW()|0;break}case 8:{tW(c[47472]|0);break}case 9:{uW(c[p>>2]|0);break}case 18:{vW(c[p>>2]|0);break}case 19:{wW();break}case 20:{vW(c[p>>2]|0);break}case 21:{wW();break}case 22:{vW(c[p>>2]|0);break}case 23:{wW();break}case 24:{vW(c[p>>2]|0);break}case 25:{wW();break}case 26:{vW(c[p>>2]|0);break}case 27:{wW();break}case 28:{vW(c[p>>2]|0);break}case 29:{wW();break}case 30:{vW(c[p>>2]|0);break}case 31:{wW();break}case 32:{vW(c[p>>2]|0);break}case 33:{wW();break}case 34:{e=c[j>>2]|0;break}case 35:{e=c[p>>2]|0;break}case 38:{e=c[47472]|0;h=c[e+4>>2]|0;if(h>>>0>=(c[e+8>>2]|0)>>>0){iA(e,1)|0;h=c[47472]|0;e=h;h=c[h+4>>2]|0}a[h>>0]=0;o=c[e>>2]|0;c[e+4>>2]=o;if(xW(o)|0){u=51;break a}c[(c[p>>2]|0)+80>>2]=c[47473];e=Sz(56092,c[4590]|0)|0;c[(c[p>>2]|0)+84>>2]=e;c[47473]=c[p>>2];c[(c[p>>2]|0)+108>>2]=c[c[47474]>>2];e=c[p>>2]|0;break}case 39:{e=c[47472]|0;h=c[e+4>>2]|0;if(h>>>0>=(c[e+8>>2]|0)>>>0){iA(e,1)|0;h=c[47472]|0;e=h;h=c[h+4>>2]|0}a[h>>0]=0;o=c[e>>2]|0;c[e+4>>2]=o;if(xW(o)|0){u=56;break a}e=c[47473]|0;c[47473]=c[e+80>>2];break}case 40:{e=c[p>>2]|0;break}case 41:{e=c[j>>2]|0;break}case 42:{e=c[j>>2]|0;break}case 43:{e=c[j>>2]|0;break}case 44:{e=c[j>>2]|0;break}case 45:{e=c[j>>2]|0;break}case 48:{e=c[p>>2]|0;break}case 49:{e=c[p>>2]|0;break}case 50:{a[(c[k>>2]|0)+12>>0]=1;e=c[p>>2]|0;break}case 51:{yW();break}case 52:{e=zW()|0;break}case 53:{e=c[p>>2]|0;break}case 54:{e=c[p>>2]|0;break}case 55:{e=(c[k>>2]|0)+100|0;a[e>>0]=a[e>>0]|1;e=c[p>>2]|0;break}case 56:{AW(c[j>>2]|0,c[p>>2]|0,1);break}case 57:{e=c[h>>2]|0;break}case 58:{AW(c[j>>2]|0,c[p>>2]|0,2);break}case 59:{e=c[h>>2]|0;break}case 60:{AW(c[j>>2]|0,c[p>>2]|0,3);break}case 61:{e=c[h>>2]|0;break}case 62:{AW(c[p>>2]|0,sW()|0,2);break}case 63:{e=c[k>>2]|0;break}case 64:{e=c[j>>2]|0;break}case 65:{e=c[p>>2]|0;break}default:{}}while(0);h=0-m|0;p=p+(h<<2)|0;g=g+(h<<1)|0;h=p+4|0;c[p+4>>2]=e;e=(d[140752+f>>0]|0)+-41|0;p=b[g>>1]|0;f=p+(b[66038+(e<<1)>>1]|0)|0;if(f>>>0<272?(a[139920+f>>0]|0)==(p|0):0){e=a[140192+f>>0]|0;k=q;break}e=a[140822+e>>0]|0;k=q}while(0);f=s;j=r;n=i;o=e;q=k;g=g+2|0}if((u|0)==26){rW();e=1;f=s;u=97}else if((u|0)==51){KW(140650);rW();e=1;f=s;u=97}else if((u|0)==56){KW(140701);rW();e=1;f=s;u=97}else if((u|0)==96){KW(140861);e=2;u=97}if((u|0)==97)if((f|0)!=(t|0))l6(f);l=v;return e|0}function qW(b,d){b=b|0;d=d|0;var e=0;e=HK(8)|0;a[e+4>>0]=d;c[e>>2]=b;return e|0}function rW(){var a=0,b=0;a=c[47473]|0;b=c[47471]|0;if(b|0){kU(b,1);c[47471]=0}c[14036]=67;while(1){if(!a)break;b=c[a+80>>2]|0;EW(a);a=b}c[14036]=56;c[14045]=68;b=c[47476]|0;eb[c[b>>2]&63](b,0,64)|0;c[14045]=56;c[14054]=69;b=c[47477]|0;eb[c[b>>2]&63](b,0,64)|0;c[14054]=56;HW();return}function sW(){var a=0,d=0,e=0,f=0,g=0,h=0;e=c[47477]|0;f=HK(40)|0;if(Uz(c[47476]|0)|0)uW(0);a=Uz(e)|0;b[f+4>>1]=a;a:do if(!a)a=e;else{c[f>>2]=HK(a*24|0)|0;a=0;d=eb[c[e>>2]&63](e,0,128)|0;while(1){if(!d){a=e;break a}g=(c[f>>2]|0)+(a*24|0)|0;h=d+8|0;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];c[g+12>>2]=c[h+12>>2];c[g+16>>2]=c[h+16>>2];c[g+20>>2]=c[h+20>>2];a=a+1|0;d=eb[c[e>>2]&63](e,d,8)|0}}while(0);eb[c[a>>2]&63](e,0,64)|0;return f|0}function tW(b){b=b|0;var d=0,e=0,f=0;e=HK(64)|0;f=b+4|0;d=c[f>>2]|0;if(d>>>0>=(c[b+8>>2]|0)>>>0){iA(b,1)|0;d=c[f>>2]|0}a[d>>0]=0;b=c[b>>2]|0;c[f>>2]=b;c[e+8>>2]=Y3(b)|0;c[e+12>>2]=c[c[47474]>>2];f=c[47476]|0;eb[c[f>>2]&63](f,e,1)|0;return}function uW(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=HK(32)|0;j=c[47476]|0;e=Uz(j)|0;k=i+8|0;a[i+14>>0]=d;a:do if(!e){c[k>>2]=HK(56)|0;b[i+12>>1]=1;h=Y3(195341)|0;k=c[k>>2]|0;c[k>>2]=h;c[k+4>>2]=c[c[47474]>>2]}else{b[i+12>>1]=e;c[k>>2]=HK(e*56|0)|0;d=0;e=Qz(j)|0;while(1){if(!e)break a;f=(c[k>>2]|0)+(d*56|0)|0;g=e+8|0;h=f+56|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));d=d+1|0;e=c[e>>2]|0}}while(0);eb[c[j>>2]&63](j,0,64)|0;k=c[47477]|0;eb[c[k>>2]&63](k,i,1)|0;return}function vW(a){a=a|0;var b=0,d=0.0,e=0,f=0,g=0,i=0,j=0;j=l;l=l+32|0;g=j;i=HK(8)|0;f=c[c[47474]>>2]|0;c[g>>2]=c[a>>2];c[g+4>>2]=c[a+4>>2];c[g+8>>2]=c[a+8>>2];c[g+12>>2]=c[a+12>>2];c[g+16>>2]=c[a+16>>2];c[g+20>>2]=c[a+20>>2];c[g+24>>2]=c[a+24>>2];c[g+28>>2]=c[a+28>>2];if(f|0){a=g+4|0;if((c[a>>2]|0)==0?(b=c[f+4>>2]|0,b|0):0)c[a>>2]=b;a=g+16|0;if(+h[a>>3]<0.0?(d=+h[f+16>>3],d>=0.0):0)h[a>>3]=d;if((c[g>>2]|0)==0?(e=c[f>>2]|0,e|0):0)c[g>>2]=e;a=c[f+24>>2]&127;if(a|0){f=g+24|0;e=c[f>>2]|0;c[f>>2]=e&127|a|e&-128}}f=c[(c[47475]|0)+144>>2]|0;c[i>>2]=eb[c[f>>2]&63](f,g,1)|0;c[i+4>>2]=c[47474];c[47474]=i;l=j;return}function wW(){var a=0,b=0;b=c[47474]|0;a=c[b+4>>2]|0;l6(b);c[47474]=a;return}function xW(b){b=b|0;var c=0;while(1){c=a[b>>0]|0;if(!(c<<24>>24)){b=0;break}if(c<<24>>24==32)b=b+1|0;else{b=1;break}}return b|0}function yW(){var b=0,d=0,e=0;e=Sz(56128,c[4590]|0)|0;b=c[47473]|0;d=HK(16)|0;c[d+8>>2]=e;if(a[b+112>>0]&2)a[d+12>>0]=1;e=c[b+84>>2]|0;eb[c[e>>2]&63](e,d,1)|0;return}function zW(){var a=0;a=c[(c[47473]|0)+84>>2]|0;return eb[c[a>>2]&63](a,0,256)|0}function AW(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=HK(16)|0;f=c[47473]|0;h=c[f+84>>2]|0;h=c[(eb[c[h>>2]&63](h,0,256)|0)+8>>2]|0;c[g+8>>2]=b;eb[c[h>>2]&63](h,g,1)|0;a[b+92>>0]=e;if(a[f+112>>0]&1)a[b+100>>0]=1;c[b+88>>2]=d;return}function BW(a,b,c){a=a|0;b=b|0;c=c|0;l6(b);return}function CW(a,b,d){a=a|0;b=b|0;d=d|0;Oz(c[b+8>>2]|0)|0;l6(b);return}function DW(a,b,d){a=a|0;b=b|0;d=d|0;IW(c[b+8>>2]|0);l6(b);return}function EW(a){a=a|0;Oz(c[a+84>>2]|0)|0;hU(a);l6(a);return}function FW(a,b,d){a=a|0;b=b|0;d=d|0;l6(c[b+8>>2]|0);l6(b);return}function GW(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=d+12|0;a=b[g>>1]|0;if(a<<16>>16){h=d+8|0;e=0;f=c[h>>2]|0;while(1){if((e|0)>=(a<<16>>16|0))break;l6(c[f>>2]|0);e=e+1|0;f=f+56|0;a=b[g>>1]|0}l6(c[h>>2]|0)}l6(d);return}function HW(){var a=0,b=0;a=c[47474]|0;while(1){b=c[a+4>>2]|0;if(!b)break;l6(a);a=b}return}function IW(b){b=b|0;var d=0;d=b+88|0;switch(a[b+92>>0]|0){case 1:{EW(c[d>>2]|0);break}case 2:{iU(c[d>>2]|0);break}default:{}}hU(b);l6(b);return}function JW(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=l;l=l+160|0;e=f+8|0;g=f;c[g>>2]=0;c[g+4>>2]=0;c[47474]=g;c[47473]=0;c[47471]=0;c[47475]=c[(c[(c[d+52>>2]|0)+16>>2]|0)+144>>2];c[47476]=Sz(56164,c[4590]|0)|0;c[47477]=Sz(56200,c[4590]|0)|0;hA(e,128,f+24|0);c[47472]=e;if(!(NW(a,e,d)|0)){pW()|0;c[b>>2]=DX()|0;a=c[47471]|0}else{c[b>>2]=2;a=0}Oz(c[47476]|0)|0;Oz(c[47477]|0)|0;c[47476]=0;c[47477]=0;c[47474]=0;lA(e);l=f;return a|0}function KW(b){b=b|0;var d=0,e=0,f=0;e=l;l=l+16|0;d=e;if(!(a[189945]|0)){a[189945]=1;f=LW()|0;c[d>>2]=b;c[d+4>>2]=f;dA(1,140878,d)|0;MW()}l=e;return}function LW(){return f_(c[47478]|0)|0}function MW(){var b=0,d=0,e=0,f=0;f=l;l=l+16|0;e=f;b=c[47481]|0;c[b+4>>2]=c[b>>2];d=c[47490]|0;if((d|0)>0){jA(b,c[47488]|0,d)|0;b=c[47481]|0}jA(b,c[47487]|0,c[47489]|0)|0;d=c[47481]|0;b=c[d+4>>2]|0;if(b>>>0>=(c[d+8>>2]|0)>>>0){iA(d,1)|0;b=c[47481]|0;d=b;b=c[b+4>>2]|0}c[d+4>>2]=b+1;a[b>>0]=0;b=c[47481]|0;d=c[b>>2]|0;c[b+4>>2]=d;c[e>>2]=d;dA(3,140894,e)|0;l=f;return}function NW(b,e,f){b=b|0;e=e|0;f=f|0;c[47481]=e;hA(189928,128,0);c[47479]=b;a[189947]=0;a[189944]=0;a[189945]=0;c[47489]=0;c[47490]=0;a[189946]=1;f=f+52|0;e=SY(uK(d[(c[(c[f>>2]|0)+16>>2]|0)+115>>0]|0)|0)|0;c[47478]=e;XZ(e,c[(c[(c[f>>2]|0)+16>>2]|0)+144>>2]|0);YZ(c[47478]|0,70,27);ZZ(c[47478]|0,71);return 0}function OW(b,d,e){b=b|0;d=d|0;e=e|0;do if(!(C3(d,140906)|0)){c[47470]=SW(e)|0;a[189946]=0;c[47480]=286}else{if(C3(d,140912)|0?C3(d,140915)|0:0){if(!(C3(d,140918)|0)){a[189946]=1;c[47470]=TW(e)|0;c[47480]=287;break}if(!(C3(d,140926)|0)){c[47470]=UW(b,e,0)|0;c[47480]=288;break}if(!(C3(d,140931)|0)){c[47470]=UW(b,0,1)|0;c[47480]=290;break}if(!(C3(d,140947)|0)){c[47470]=UW(b,0,32)|0;c[47480]=295;break}if(!(C3(d,140933)|0)){c[47470]=UW(b,0,4)|0;c[47480]=291;break}if(!(C3(d,140935)|0)){c[47470]=UW(b,0,64)|0;c[47480]=292;break}if(!(C3(d,140937)|0)){c[47470]=UW(b,0,2)|0;c[47480]=289;break}if(!(C3(d,140939)|0)){c[47470]=UW(b,0,8)|0;c[47480]=293;break}if(!(C3(d,140943)|0)){c[47470]=UW(b,0,16)|0;c[47480]=294;break}if(!(C3(d,140949)|0)){VW(e);c[47480]=283;break}if(!(C3(d,140952)|0)){c[47480]=277;break}if(!(C3(d,140955)|0)){c[47480]=280;break}if(!(C3(d,140958)|0)){c[47470]=WW(e)|0;c[47480]=285;break}if(!(C3(d,140921)|0)){c[47480]=262;break}else{RW(d);break}}a[189946]=0;c[47480]=260}while(0);return}function PW(b,d){b=b|0;d=d|0;do if(!(C3(d,140906)|0)){c[47480]=264;a[189946]=1}else{if(C3(d,140912)|0?C3(d,140915)|0:0){if(!(C3(d,140918)|0)){c[47480]=265;a[189946]=0;break}if(!(C3(d,140921)|0)){c[47480]=263;break}if(!(C3(d,140926)|0)){c[47480]=266;break}if(!(C3(d,140931)|0)){c[47480]=270;break}if(!(C3(d,140933)|0)){c[47480]=271;break}if(!(C3(d,140935)|0)){c[47480]=272;break}if(!(C3(d,140937)|0)){c[47480]=269;break}if(!(C3(d,140939)|0)){c[47480]=273;break}if(!(C3(d,140943)|0)){c[47480]=274;break}if(!(C3(d,140947)|0)){c[47480]=275;break}if(!(C3(d,140949)|0)){c[47480]=(c[47480]|0)==283?282:258;break}if(!(C3(d,140952)|0)){c[47480]=(c[47480]|0)==277?276:278;break}if(!(C3(d,140955)|0)){c[47480]=(c[47480]|0)==280?279:281;break}if(!(C3(d,140958)|0)){c[47480]=(c[47480]|0)==285?284:259;break}else{RW(d);break}}c[47480]=261}while(0);return}function QW(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(a[189946]|0){b=0;while(1){if(!e)break;h=d+1|0;g=a[d>>0]|0;if((g&255)>31){d=c[47481]|0;f=c[d+4>>2]|0;if(f>>>0>=(c[d+8>>2]|0)>>>0){iA(d,1)|0;f=c[47481]|0;d=f;f=c[f+4>>2]|0}c[d+4>>2]=f+1;a[f>>0]=g;b=b+1|0}d=h;e=e+-1|0}if(b|0)c[47480]=267}return}function RW(b){b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;c[47480]=268;a[189945]=1;f=LW()|0;c[e>>2]=b;c[e+4>>2]=f;dA(1,140962,e)|0;l=d;return}function SW(b){b=b|0;var d=0;d=HK(120)|0;c[d+100>>2]=-1;a[d+88>>0]=-1;XW(d,56460,22,b,141914);return d|0}function TW(a){a=a|0;var c=0;c=HK(104)|0;b[c+80>>1]=1;b[c+82>>1]=1;XW(c,56284,22,a,141268);return c|0}function UW(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=l;l=l+32|0;e=f;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;h[e+16>>3]=-1.0;c[e+24>>2]=d&127;if(b|0)XW(e,56260,3,b,141119);d=c[a+144>>2]|0;e=eb[c[d>>2]&63](d,e,1)|0;l=f;return e|0}function VW(a){a=a|0;c[47470]=0;XW(189880,56252,1,a,141055);return}function WW(a){a=a|0;var b=0;b=HK(40)|0;XW(b,56236,2,a,141001);return b|0}function XW(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;n=o;m=o+8|0;while(1){k=c[g>>2]|0;if(!k)break;i=c[g+4>>2]|0;c[m>>2]=k;j=e6(m,e,f,8,104)|0;if(!j){c[n>>2]=k;c[n+4>>2]=h;dA(0,141007,n)|0;i=1}else{i=vb[c[j+4>>2]&127](b,i)|0;i=(d[189944]|0|i)&255}a[189944]=i;g=g+8|0}l=o;return}function YW(a,b){a=a|0;b=b|0;return C3(c[a>>2]|0,c[b>>2]|0)|0}function ZW(a,b){a=a|0;b=b|0;c[a+36>>2]=Y3(b)|0;return 0}function _W(a,b){a=a|0;b=b|0;c[a+32>>2]=Y3(b)|0;return 0}function $W(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;g=i;e=(a2(a[d>>0]|0)|0)<<24>>24;f=d+1|0;switch(e|0){case 82:{if(!(C3(f,141066)|0)){c[b>>2]=114;b=0}else h=4;break}case 76:{h=5;break}default:h=4}do if((h|0)==4)if(!(C3(f,141071)|0))h=5;else{if((e|0)!=67?(C3(f,141075)|0)==0:0){c[g>>2]=d;dA(0,141081,g)|0;b=1;break}c[b>>2]=110;b=0}while(0);if((h|0)==5){c[b>>2]=108;b=0}l=i;return b|0}function aX(a,b){a=a|0;b=b|0;c[a+4>>2]=b;return 0}function bX(a,b){a=a|0;b=b|0;c[a>>2]=b;return 0}function cX(a,b){a=a|0;b=b|0;var d=0,e=0;e=l;l=l+16|0;d=e;if(!(dX(b,141148,0,255,d)|0)){h[a+16>>3]=+(c[d>>2]|0);a=0}else a=1;l=e;return a|0}function dX(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;k=l;l=l+48|0;j=k+24|0;i=k+8|0;h=k;m=k+36|0;g=$1(a,m,10)|0;do if((c[m>>2]|0)!=(a|0)){if((g|0)>(e|0)){c[i>>2]=b;c[i+4>>2]=a;c[i+8>>2]=e;dA(0,141190,i)|0;a=1;break}if((g|0)<(d|0)){c[j>>2]=b;c[j+4>>2]=a;c[j+8>>2]=d;dA(0,141229,j)|0;a=1;break}else{c[f>>2]=g;a=0;break}}else{c[h>>2]=b;c[h+4>>2]=a;dA(0,141159,h)|0;a=1}while(0);l=k;return a|0}function eX(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l+16|0;g=i;f=e+1|0;d=d+36|0;switch((a2(a[e>>0]|0)|0)<<24>>24|0){case 76:{if(!(C3(f,141071)|0)){b[d>>1]=b[d>>1]|4;d=0}else h=9;break}case 82:{if(!(C3(f,141066)|0)){b[d>>1]=b[d>>1]|2;d=0}else h=9;break}case 84:{if(!(C3(f,141866)|0)){b[d>>1]=b[d>>1]|6;d=0}else h=9;break}case 67:{if(!(C3(f,141075)|0))d=0;else h=9;break}default:h=9}if((h|0)==9){c[g>>2]=e;dA(0,141870,g)|0;d=1}l=i;return d|0}function fX(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l+16|0;g=i;f=e+1|0;d=d+36|0;switch((a2(a[e>>0]|0)|0)<<24>>24|0){case 76:{if(!(C3(f,141071)|0)){b[d>>1]=b[d>>1]|512;d=0}else h=7;break}case 82:{if(!(C3(f,141066)|0)){b[d>>1]=b[d>>1]|256;d=0}else h=7;break}case 67:{if(!(C3(f,141075)|0))d=0;else h=7;break}default:h=7}if((h|0)==7){c[g>>2]=e;dA(0,141821,g)|0;d=1}l=i;return d|0}function gX(a,b){a=a|0;b=b|0;c[a+20>>2]=Y3(b)|0;return 0}function hX(d,e){d=d|0;e=e|0;var f=0,g=0;g=l;l=l+16|0;f=g;if(!(dX(e,141814,0,255,f)|0)){a[d+33>>0]=c[f>>2];d=d+36|0;b[d>>1]=b[d>>1]|32;d=0}else d=1;l=g;return d|0}function iX(d,e){d=d|0;e=e|0;var f=0,g=0;g=l;l=l+16|0;f=g;if(!(dX(e,141802,0,255,f)|0)){a[d+34>>0]=c[f>>2];d=d+36|0;b[d>>1]=b[d>>1]|64;d=0}else d=1;l=g;return d|0}function jX(d,e){d=d|0;e=e|0;var f=0,g=0;g=l;l=l+16|0;f=g;if(!(dX(e,141790,-128,127,f)|0)){a[d+32>>0]=c[f>>2];d=d+36|0;b[d>>1]=b[d>>1]|128;d=0}else d=1;l=g;return d|0}function kX(a,b){a=a|0;b=b|0;c[a+24>>2]=Y3(b)|0;return 0}function lX(a,d){a=a|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;f=g;e=g+4|0;do if(!(dX(d,141745,0,65535,e)|0)){d=c[e>>2]|0;if(!d){dA(0,141753,f)|0;d=1;break}else{b[a+80>>1]=d;d=0;break}}else d=1;while(0);l=g;return d|0}function mX(a,e){a=a|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l+16|0;g=i;f=e+1|0;switch((a2(d[e>>0]|0)|0)<<24>>24|0){case 84:{if(!(C3(f,141694)|0)){a=a+36|0;b[a>>1]=b[a>>1]|1;a=0}else h=5;break}case 70:{if(!(C3(f,141698)|0))a=0;else h=5;break}default:h=5}if((h|0)==5){c[g>>2]=e;dA(0,141703,g)|0;a=1}l=i;return a|0}function nX(a,b){a=a|0;b=b|0;var d=0,e=0;e=l;l=l+16|0;d=e;if(!(dX(b,141680,0,360,d)|0)){c[a+28>>2]=c[d>>2]&65535;a=0}else a=1;l=e;return a|0}function oX(a,d){a=a|0;d=d|0;var e=0,f=0;f=l;l=l+16|0;e=f;if(!(dX(d,141673,0,65535,e)|0)){b[a+40>>1]=c[e>>2];a=0}else a=1;l=f;return a|0}function pX(a,b){a=a|0;b=b|0;c[a>>2]=Y3(b)|0;return 0}function qX(a,b){a=a|0;b=b|0;c[a+16>>2]=Y3(b)|0;return 0}function rX(a,b){a=a|0;b=b|0;c[a+4>>2]=Y3(b)|0;return 0}function sX(a,d){a=a|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;f=g;e=g+4|0;do if(!(dX(d,141628,0,65535,e)|0)){d=c[e>>2]|0;if(!d){dA(0,141636,f)|0;d=1;break}else{b[a+82>>1]=d;d=0;break}}else d=1;while(0);l=g;return d|0}function tX(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;i=k;h=0;a:while(1){b:while(1){g=e+1|0;e=a[e>>0]|0;if(!(e<<24>>24))break a;e=e<<24>>24;f=(R1(e)|0)+-98|0;switch(f>>>1|f<<31|0){case 5:{j=5;break b}case 9:{f=2048;break b}case 8:{j=6;break b}case 0:{j=7;break b}default:{}}c[i>>2]=e;c[i+4>>2]=e;dA(0,141575,i)|0;e=g}if((j|0)==5){j=0;f=1024}else if((j|0)==6){j=0;f=4096}else if((j|0)==7){j=0;f=8192}e=g;h=(h&65535|f)&65535}if(h<<16>>16!=15360){j=d+36|0;b[j>>1]=b[j>>1]|h}l=k;return 0}function uX(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;j=k+8|0;i=k;h=Y3(e)|0;g=d+42|0;f=0;e=h;while(1){d=i6(e,141485)|0;if(!d)break;if(((a2(a[d>>0]|0)|0)&255|0)==82){e=d+1|0;if(!(C3(e,141488)|0)){b[g>>1]=b[g>>1]|4;d=f;e=0;f=d;continue}if(!(C3(e,141495)|0)){b[g>>1]=b[g>>1]|2;d=f;e=0;f=d;continue}else{c[i>>2]=d;dA(0,141501,i)|0;f=1;e=0;continue}}if(!(C3(d,141539)|0)){b[g>>1]=b[g>>1]&-385;d=f;e=0;f=d;continue}if(C3(d,141545)|0?C3(d,141555)|0:0){if(!(C3(d,141561)|0)){b[g>>1]=b[g>>1]|128;d=f;e=0;f=d;continue}if(!(C3(d,141568)|0)){b[g>>1]=b[g>>1]|256;d=f;e=0;f=d;continue}else{c[j>>2]=d;dA(0,141501,j)|0;f=1;e=0;continue}}b[g>>1]=b[g>>1]|32;d=f;e=0;f=d}l6(h);l=k;return f|0}function vX(a,b){a=a|0;b=b|0;c[a+8>>2]=Y3(b)|0;return 0}function wX(a,b){a=a|0;b=b|0;c[a+12>>2]=Y3(b)|0;return 0}function xX(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l+16|0;g=i;f=e+1|0;d=d+36|0;switch((a2(a[e>>0]|0)|0)<<24>>24|0){case 66:{if(!(C3(f,141431)|0)){b[d>>1]=b[d>>1]|16;d=0}else h=7;break}case 84:{if(!(C3(f,141437)|0)){b[d>>1]=b[d>>1]|8;d=0}else h=7;break}case 77:{if(!(C3(f,141440)|0))d=0;else h=7;break}default:h=7}if((h|0)==7){c[g>>2]=e;dA(0,141446,g)|0;d=1}l=i;return d|0}function yX(a,d){a=a|0;d=d|0;var e=0,f=0;f=l;l=l+16|0;e=f;if(!(dX(d,141425,0,65535,e)|0)){b[a+38>>1]=c[e>>2];a=0}else a=1;l=f;return a|0}function zX(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l+16|0;g=i;f=e+1|0;d=d+36|0;switch((a2(a[e>>0]|0)|0)<<24>>24|0){case 76:{if(!(C3(f,141071)|0)){b[d>>1]=b[d>>1]|4;d=0}else h=7;break}case 82:{if(!(C3(f,141066)|0)){b[d>>1]=b[d>>1]|2;d=0}else h=7;break}case 67:{if(!(C3(f,141075)|0))d=0;else h=7;break}default:h=7}if((h|0)==7){c[g>>2]=e;dA(0,141081,g)|0;d=1}l=i;return d|0}function AX(b,d){b=b|0;d=d|0;var e=0,f=0;f=l;l=l+16|0;e=f;if(!(dX(d,142023,0,127,e)|0)){a[b+88>>0]=c[e>>2];b=0}else b=1;l=f;return b|0}function BX(b,d){b=b|0;d=d|0;var e=0,f=0;f=l;l=l+16|0;e=f;if((a[d>>0]|0)==42){b=b+112|0;a[b>>0]=a[b>>0]|1;b=0}else{c[e>>2]=d;dA(0,141983,e)|0;b=1}l=f;return b|0}function CX(b,d){b=b|0;d=d|0;var e=0,f=0;f=l;l=l+16|0;e=f;if((a[d>>0]|0)==42){b=b+112|0;a[b>>0]=a[b>>0]|2;b=0}else{c[e>>2]=d;dA(0,141946,e)|0;b=1}l=f;return b|0}function DX(){var b=0;b=(a[189945]|a[189944])<<24>>24;YY(c[47478]|0);lA(189928);return b|0}function EX(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+16|0;i=j;c[47480]=0;d=0;a:do{b:do switch(a[189947]|0){case 2:{b=-1;break a}case 0:{a[189947]=1;h=6;b=142035;d=0;break}default:{b=c[47479]|0;if(!(a[b>>0]|0)){a[189947]=2;h=7;b=142042;break b}else{d=FX(b)|0;h=d-b|0;break b}}}while(0);c[47488]=c[47487];c[47490]=c[47489];c[47487]=b;c[47489]=h;e=c[47483]|0;f=e-(c[47482]|0)|0;g=c[47478]|0;if(!f)b=_Z(g,b,h,(h|0)==0&1)|0;else{if(e>>>0<(c[47484]|0)>>>0)b=e;else{iA(189928,1)|0;b=c[47483]|0}a[b>>0]=0;b=c[47482]|0;c[47483]=b;b=_Z(g,b,f,0)|0}if(!((b|0)!=0|(a[189945]|0)!=0)){g=g_(e_(c[47478]|0)|0)|0;h=LW()|0;c[i>>2]=g;c[i+4>>2]=h;dA(1,140878,i)|0;MW();a[189945]=1;c[47480]=268}if(d|0)c[47479]=d;b=c[47480]|0}while((b|0)==0);l=j;return b|0}function FX(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;g=i;d=b+1|0;f=a[b>>0]|0;a:do if(f<<24>>24==60){e=a[d>>0]|0;if(e<<24>>24==33)if(!(h2(b+2|0,142050,2)|0)){e=GX(b+4|0)|0;d=e;e=a[e>>0]|0}else{e=33;h=5}else h=5;b:do if((h|0)==5)while(1){switch(e<<24>>24){case 62:case 0:break b;default:{}}e=d+1|0;d=e;e=a[e>>0]|0;h=5}while(0);if(e<<24>>24==62){d=d+1|0;break}else{dA(0,142053,g)|0;a[189944]=1;break}}else{d=b;while(1){switch(f<<24>>24){case 60:case 0:break a;default:{}}e=d+1|0;if(f<<24>>24==38?(a[e>>0]|0)!=35:0)e=ZP(e,189928)|0;else{d=c[47483]|0;if(d>>>0>=(c[47484]|0)>>>0){iA(189928,1)|0;d=c[47483]|0}c[47483]=d+1;a[d>>0]=f}d=e;f=a[e>>0]|0}}while(0);l=i;return d|0}function GX(b){b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+16|0;i=j;f=1;c=b;a:while(1){e=(f|0)==0;d=c;b:while(1){if(e)break a;g=d+1|0;switch(a[d>>0]|0){case 0:{c=g;break a}case 60:{h=5;break b}case 62:{c=-1;break b}default:d=g}}if((h|0)==5){h=0;c=1}f=f+c|0;c=g}d=c+-1|0;do if(a[d>>0]|0){c=c+-3|0;if(c>>>0>=b>>>0?(h2(c,142050,2)|0)==0:0)break;dA(0,142094,i)|0;a[189944]=1}while(0);l=j;return d|0}function HX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;d=k6(28)|0;if(!d)d=0;else{e=0;f=0;while(1){if((e|0)>=(b|0))break;r=(c[(c[a+(e<<2)>>2]|0)+4>>2]|0)+f|0;e=e+1|0;f=r}o=d+8|0;c[o>>2]=IX(f<<4)|0;p=d+12|0;c[p>>2]=IX((b<<2)+4|0)|0;e=f<<2;q=d+16|0;c[q>>2]=IX(e)|0;e=IX(e)|0;r=d+20|0;c[r>>2]=e;c[d+4>>2]=f;c[d>>2]=b;f=0;h=0;while(1){c[(c[p>>2]|0)+(h<<2)>>2]=f;if((h|0)>=(b|0))break;j=a+(h<<2)|0;n=c[j>>2]|0;k=c[n+4>>2]|0;l=f+-1|0;g=0;i=f;m=k;while(1){if((g|0)>=(m|0))break;m=(c[o>>2]|0)+(i<<4)|0;e=(c[n>>2]|0)+(g<<4)|0;c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];m=i+1|0;c[(c[q>>2]|0)+(i<<2)>>2]=m;e=c[r>>2]|0;c[e+(i<<2)>>2]=i+-1;s=c[j>>2]|0;g=g+1|0;i=m;m=c[s+4>>2]|0;n=s}s=l+k|0;c[(c[q>>2]|0)+(s<<2)>>2]=f;c[e+(f<<2)>>2]=s;f=i;h=h+1|0}IY(d)}return d|0}function IX(a){a=a|0;if(!a)a=0;else a=k6(a)|0;return a|0}function JX(a){a=a|0;var b=0,d=0;l6(c[a+8>>2]|0);l6(c[a+12>>2]|0);l6(c[a+16>>2]|0);l6(c[a+20>>2]|0);d=a+24|0;b=c[d>>2]|0;if(b|0){l6(c[b>>2]|0);l6(c[d>>2]|0)}l6(a);return}function KX(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+32|0;m=p+16|0;j=p;c[m>>2]=c[b>>2];c[m+4>>2]=c[b+4>>2];c[m+8>>2]=c[b+8>>2];c[m+12>>2]=c[b+12>>2];n=PY(a,d,m)|0;c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];o=PY(a,f,m)|0;c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];m=yY(j,d,n,m,f,o,a)|0;d=c[a+4>>2]|0;j=d+1|0;f=1;h=d;while(1){h=c[m+(h<<2)>>2]|0;k=f+1|0;if((h|0)==(j|0))break;else f=k}i=k6(k<<4)|0;h=i+(f<<4)|0;c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[h+12>>2]=c[e+12>>2];a=a+8|0;while(1){d=c[m+(d<<2)>>2]|0;f=f+-1|0;h=i+(f<<4)|0;if((d|0)==(j|0))break;e=(c[a>>2]|0)+(d<<4)|0;c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[h+12>>2]=c[e+12>>2]}c[h>>2]=c[b>>2];c[h+4>>2]=c[b+4>>2];c[h+8>>2]=c[b+8>>2];c[h+12>>2]=c[b+12>>2];if(f|0)Aa(142112,142119,148,142125);if(n|0)l6(n);if(o|0)l6(o);c[g+4>>2]=k;c[g>>2]=i;l6(m);l=p;return 1}function LX(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;j=l;l=l+48|0;h=j+32|0;g=j+16|0;f=j;i=c[a>>2]|0;d=c[a+4>>2]|0;e=d+-1|0;a=0;while(1){if((a|0)>=(d|0)){a=1;break}m=i+(((e+a|0)%(d|0)|0)<<4)|0;k=i+(a<<4)|0;c[f>>2]=c[m>>2];c[f+4>>2]=c[m+4>>2];c[f+8>>2]=c[m+8>>2];c[f+12>>2]=c[m+12>>2];c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];c[g+8>>2]=c[k+8>>2];c[g+12>>2]=c[k+12>>2];c[h>>2]=c[b>>2];c[h+4>>2]=c[b+4>>2];c[h+8>>2]=c[b+8>>2];c[h+12>>2]=c[b+12>>2];if((EY(f,g,h)|0)==1){a=0;break}else a=a+1|0}l=j;return a|0}function MX(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+64|0;m=u+48|0;k=u+32|0;s=4;j=k6(40)|0;c[j>>2]=0;n=u+16|0;q=u;r=c[d>>2]|0;i=c[d+4>>2]|0;s=x6(189964,1,j|0,s|0)|0;j=D;o=0;d=o;o=0;if((d|0)!=0&(p|0)!=0){g=A6(c[d>>2]|0,s|0,j|0)|0;if(!g)Ca(d|0,p|0);D=p}else g=-1;if((g|0)==1)d=D;else d=0;while(1){if(d|0){d=-1;break}o=0;c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];ha(28,n|0,m|0);d=o;o=0;if((d|0)!=0&(p|0)!=0){g=A6(c[d>>2]|0,s|0,j|0)|0;if(!g)Ca(d|0,p|0);D=p}else g=-1;if((g|0)==1){d=D;continue};c[e>>2]=c[n>>2];c[e+4>>2]=c[n+4>>2];c[e+8>>2]=c[n+8>>2];c[e+12>>2]=c[n+12>>2];h=e+16|0;o=0;c[m>>2]=c[h>>2];c[m+4>>2]=c[h+4>>2];c[m+8>>2]=c[h+8>>2];c[m+12>>2]=c[h+12>>2];ha(28,q|0,m|0);d=o;o=0;if((d|0)!=0&(p|0)!=0){g=A6(c[d>>2]|0,s|0,j|0)|0;if(!g)Ca(d|0,p|0);D=p}else g=-1;if((g|0)==1){d=D;continue};c[h>>2]=c[q>>2];c[h+4>>2]=c[q+4>>2];c[h+8>>2]=c[q+8>>2];c[h+12>>2]=c[q+12>>2];c[47530]=0;o=0;$(115,4);d=o;o=0;if((d|0)!=0&(p|0)!=0){g=A6(c[d>>2]|0,s|0,j|0)|0;if(!g)Ca(d|0,p|0);D=p}else g=-1;if((g|0)==1){d=D;continue}g=c[47531]|0;d=c[47530]|0;c[47530]=d+1;d=g+(d<<4)|0;c[d>>2]=c[r>>2];c[d+4>>2]=c[r+4>>2];c[d+8>>2]=c[r+8>>2];c[d+12>>2]=c[r+12>>2];o=0;c[k>>2]=c[e>>2];c[k+4>>2]=c[e+4>>2];c[k+8>>2]=c[e+8>>2];c[k+12>>2]=c[e+12>>2];c[m>>2]=c[h>>2];c[m+4>>2]=c[h+4>>2];c[m+8>>2]=c[h+8>>2];c[m+12>>2]=c[h+12>>2];d=ia(1,a|0,b|0,r|0,i|0,k|0,m|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){h=A6(c[g>>2]|0,s|0,j|0)|0;if(!h)Ca(g|0,p|0);D=p}else h=-1;if((h|0)==1)d=D;else{t=8;break}}if((t|0)==8)if((d|0)==-1)d=-1;else{c[f+4>>2]=c[47530];c[f>>2]=c[47531];d=0}l6(s|0);l=u;return d|0}function NX(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0.0,g=0.0;d=+h[b>>3];e=b+8|0;f=+h[e>>3];g=d*d+f*f;if(g>1.0e-06){g=+G(+g);h[b>>3]=d/g;h[e>>3]=f/g};c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];return}function OX(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=l;l=l+32|0;f=g+16|0;e=g;if((c[47534]|0)<(a|0)){b=c[47531]|0;d=a<<4;if(!b){f=k6(d)|0;c[47531]=f;if(!f){f=c[15715]|0;c[e>>2]=142134;c[e+4>>2]=531;c[e+8>>2]=142269;z4(f,142142,e)|0;Ca(189964,1)}}else{e=n6(b,d)|0;c[47531]=e;if(!e){e=c[15715]|0;c[f>>2]=142134;c[f+4>>2]=537;c[f+8>>2]=142287;z4(e,142142,f)|0;Ca(189964,1)}}c[47534]=a}l=g;return}function PX(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0.0,k=0,m=0.0,n=0,o=0.0,p=0.0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0.0,U=0.0,V=0.0,W=0.0;R=l;l=l+336|0;J=R+320|0;I=R+304|0;w=R+144|0;q=R+128|0;G=R+112|0;H=R+96|0;Q=R+80|0;A=R+64|0;C=R+48|0;K=R+32|0;L=R+16|0;M=R;x=R+288|0;y=R+272|0;z=R+256|0;B=R+240|0;D=R+224|0;E=R+208|0;N=R+192|0;O=R+176|0;P=R+160|0;i=c[47533]|0;do if((c[47532]|0)<(e|0)){k=e*40|0;if(!i){i=k6(k)|0;c[47533]=i;if(!i){i=-1;break}}else{i=n6(i,k)|0;c[47533]=i;if(!i){i=-1;break}}c[47532]=e;n=6}else n=6;while(0);if((n|0)==6){h[i>>3]=0.0;k=1;j=0.0;while(1){if((k|0)>=(e|0))break;n=d+(k<<4)|0;F=d+(k+-1<<4)|0;c[I>>2]=c[n>>2];c[I+4>>2]=c[n+4>>2];c[I+8>>2]=c[n+8>>2];c[I+12>>2]=c[n+12>>2];c[J>>2]=c[F>>2];c[J+4>>2]=c[F+4>>2];c[J+8>>2]=c[F+8>>2];c[J+12>>2]=c[F+12>>2];v=j+ +QX(I,J);h[i+(k*40|0)>>3]=v;k=k+1|0;j=v}F=e+-1|0;n=i+(F*40|0)|0;k=1;while(1){if((k|0)>=(e|0))break;S=i+(k*40|0)|0;h[S>>3]=+h[S>>3]/+h[n>>3];k=k+1|0}k=0;while(1){if((k|0)>=(e|0))break;S=i+(k*40|0)+8|0;n=i+(k*40|0)|0;v=+RX(+h[n>>3]);c[J>>2]=c[f>>2];c[J+4>>2]=c[f+4>>2];c[J+8>>2]=c[f+8>>2];c[J+12>>2]=c[f+12>>2];SX(x,J,v);c[S>>2]=c[x>>2];c[S+4>>2]=c[x+4>>2];c[S+8>>2]=c[x+8>>2];c[S+12>>2]=c[x+12>>2];S=i+(k*40|0)+24|0;v=+TX(+h[n>>3]);c[J>>2]=c[g>>2];c[J+4>>2]=c[g+4>>2];c[J+8>>2]=c[g+8>>2];c[J+12>>2]=c[g+12>>2];SX(y,J,v);c[S>>2]=c[y>>2];c[S+4>>2]=c[y+4>>2];c[S+8>>2]=c[y+8>>2];c[S+12>>2]=c[y+12>>2];k=k+1|0}c[I>>2]=c[f>>2];c[I+4>>2]=c[f+4>>2];c[I+8>>2]=c[f+8>>2];c[I+12>>2]=c[f+12>>2];c[J>>2]=c[g>>2];c[J+4>>2]=c[g+4>>2];c[J+8>>2]=c[g+8>>2];c[J+12>>2]=c[g+12>>2];UX(d,e,i,I,J,G,A,H,C);c[q>>2]=c[G>>2];c[q+4>>2]=c[G+4>>2];c[q+8>>2]=c[G+8>>2];c[q+12>>2]=c[G+12>>2];c[w>>2]=c[A>>2];c[w+4>>2]=c[A+4>>2];c[w+8>>2]=c[A+8>>2];c[w+12>>2]=c[A+12>>2];c[I>>2]=c[H>>2];c[I+4>>2]=c[H+4>>2];c[I+8>>2]=c[H+8>>2];c[I+12>>2]=c[H+12>>2];c[J>>2]=c[C>>2];c[J+4>>2]=c[C+4>>2];c[J+8>>2]=c[C+8>>2];c[J+12>>2]=c[C+12>>2];if(!(VX(a,b,q,w,I,J,d,e)|0)){c[J>>2]=c[A>>2];c[J+4>>2]=c[A+4>>2];c[J+8>>2]=c[A+8>>2];c[J+12>>2]=c[A+12>>2];SX(z,J,.3333333333333333);c[I>>2]=c[G>>2];c[I+4>>2]=c[G+4>>2];c[I+8>>2]=c[G+8>>2];c[I+12>>2]=c[G+12>>2];c[J>>2]=c[z>>2];c[J+4>>2]=c[z+4>>2];c[J+8>>2]=c[z+8>>2];c[J+12>>2]=c[z+12>>2];WX(B,I,J);v=+h[B>>3];u=+h[B+8>>3];c[J>>2]=c[C>>2];c[J+4>>2]=c[C+4>>2];c[J+8>>2]=c[C+8>>2];c[J+12>>2]=c[C+12>>2];SX(D,J,.3333333333333333);c[I>>2]=c[H>>2];c[I+4>>2]=c[H+4>>2];c[I+8>>2]=c[H+8>>2];c[I+12>>2]=c[H+12>>2];c[J>>2]=c[D>>2];c[J+4>>2]=c[D+4>>2];c[J+8>>2]=c[D+8>>2];c[J+12>>2]=c[D+12>>2];XX(E,I,J);t=+h[E>>3];p=+h[E+8>>3];q=c[47533]|0;r=+h[G>>3];s=+h[H>>3];o=+h[G+8>>3];m=+h[H+8>>3];n=Q+8|0;i=-1;j=-1.0;k=1;while(1){if((k|0)>=(F|0))break;W=+h[q+(k*40|0)>>3];T=+YX(W);U=+RX(W);V=+TX(W);W=+ZX(W);h[Q>>3]=T*r+v*U+t*V+W*s;h[n>>3]=W*m+(p*V+(u*U+T*o));S=d+(k<<4)|0;c[I>>2]=c[Q>>2];c[I+4>>2]=c[Q+4>>2];c[I+8>>2]=c[Q+8>>2];c[I+12>>2]=c[Q+12>>2];c[J>>2]=c[S>>2];c[J+4>>2]=c[S+4>>2];c[J+8>>2]=c[S+8>>2];c[J+12>>2]=c[S+12>>2];T=+QX(I,J);S=T>j;i=S?k:i;j=S?T:j;k=k+1|0}S=d+(i<<4)|0;Q=d+(i+-1<<4)|0;c[I>>2]=c[S>>2];c[I+4>>2]=c[S+4>>2];c[I+8>>2]=c[S+8>>2];c[I+12>>2]=c[S+12>>2];c[J>>2]=c[Q>>2];c[J+4>>2]=c[Q+4>>2];c[J+8>>2]=c[Q+8>>2];c[J+12>>2]=c[Q+12>>2];XX(N,I,J);c[J>>2]=c[N>>2];c[J+4>>2]=c[N+4>>2];c[J+8>>2]=c[N+8>>2];c[J+12>>2]=c[N+12>>2];NX(L,J);Q=i+1|0;N=d+(Q<<4)|0;c[I>>2]=c[N>>2];c[I+4>>2]=c[N+4>>2];c[I+8>>2]=c[N+8>>2];c[I+12>>2]=c[N+12>>2];c[J>>2]=c[S>>2];c[J+4>>2]=c[S+4>>2];c[J+8>>2]=c[S+8>>2];c[J+12>>2]=c[S+12>>2];XX(O,I,J);c[J>>2]=c[O>>2];c[J+4>>2]=c[O+4>>2];c[J+8>>2]=c[O+8>>2];c[J+12>>2]=c[O+12>>2];NX(M,J);c[I>>2]=c[L>>2];c[I+4>>2]=c[L+4>>2];c[I+8>>2]=c[L+8>>2];c[I+12>>2]=c[L+12>>2];c[J>>2]=c[M>>2];c[J+4>>2]=c[M+4>>2];c[J+8>>2]=c[M+8>>2];c[J+12>>2]=c[M+12>>2];WX(P,I,J);c[J>>2]=c[P>>2];c[J+4>>2]=c[P+4>>2];c[J+8>>2]=c[P+8>>2];c[J+12>>2]=c[P+12>>2];NX(K,J);c[I>>2]=c[f>>2];c[I+4>>2]=c[f+4>>2];c[I+8>>2]=c[f+8>>2];c[I+12>>2]=c[f+12>>2];c[J>>2]=c[K>>2];c[J+4>>2]=c[K+4>>2];c[J+8>>2]=c[K+8>>2];c[J+12>>2]=c[K+12>>2];PX(a,b,d,Q,I,J)|0;c[I>>2]=c[K>>2];c[I+4>>2]=c[K+4>>2];c[I+8>>2]=c[K+8>>2];c[I+12>>2]=c[K+12>>2];c[J>>2]=c[g>>2];c[J+4>>2]=c[g+4>>2];c[J+8>>2]=c[g+8>>2];c[J+12>>2]=c[g+12>>2];PX(a,b,S,e-i|0,I,J)|0;i=0}else i=0}l=R;return i|0}function QX(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;d=+h[b>>3]-+h[a>>3];c=+h[b+8>>3]-+h[a+8>>3];return +(+G(+(d*d+c*c)))}function RX(a){a=+a;var b=0.0;b=1.0-a;return +(b*(a*3.0*b))}function SX(a,b,d){a=a|0;b=b|0;d=+d;var e=0;h[b>>3]=+h[b>>3]*d;e=b+8|0;h[e>>3]=+h[e>>3]*d;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];return}function TX(a){a=+a;return +((1.0-a)*(a*3.0*a))}function UX(a,b,d,e,f,g,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;k=k|0;var m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0,C=0,D=0,E=0,F=0,G=0,H=0.0,I=0.0,J=0,K=0,L=0,M=0;G=l;l=l+128|0;B=G+112|0;v=G+96|0;u=G;r=G+80|0;s=G+64|0;t=G+48|0;C=G+32|0;D=G+16|0;E=a+(b+-1<<4)|0;q=0;w=0.0;x=0.0;y=0.0;z=0.0;A=0.0;while(1){if((q|0)>=(b|0))break;K=d+(q*40|0)+8|0;c[v>>2]=c[K>>2];c[v+4>>2]=c[K+4>>2];c[v+8>>2]=c[K+8>>2];c[v+12>>2]=c[K+12>>2];c[B>>2]=c[K>>2];c[B+4>>2]=c[K+4>>2];c[B+8>>2]=c[K+8>>2];c[B+12>>2]=c[K+12>>2];H=x+ +dY(v,B);J=d+(q*40|0)+24|0;c[v>>2]=c[K>>2];c[v+4>>2]=c[K+4>>2];c[v+8>>2]=c[K+8>>2];c[v+12>>2]=c[K+12>>2];c[B>>2]=c[J>>2];c[B+4>>2]=c[J+4>>2];c[B+8>>2]=c[J+8>>2];c[B+12>>2]=c[J+12>>2];p=A+ +dY(v,B);c[v>>2]=c[J>>2];c[v+4>>2]=c[J+4>>2];c[v+8>>2]=c[J+8>>2];c[v+12>>2]=c[J+12>>2];c[B>>2]=c[J>>2];c[B+4>>2]=c[J+4>>2];c[B+8>>2]=c[J+8>>2];c[B+12>>2]=c[J+12>>2];o=y+ +dY(v,B);L=a+(q<<4)|0;M=d+(q*40|0)|0;I=+eY(+h[M>>3]);c[B>>2]=c[a>>2];c[B+4>>2]=c[a+4>>2];c[B+8>>2]=c[a+8>>2];c[B+12>>2]=c[a+12>>2];SX(s,B,I);I=+fY(+h[M>>3]);c[B>>2]=c[E>>2];c[B+4>>2]=c[E+4>>2];c[B+8>>2]=c[E+8>>2];c[B+12>>2]=c[E+12>>2];SX(t,B,I);c[v>>2]=c[s>>2];c[v+4>>2]=c[s+4>>2];c[v+8>>2]=c[s+8>>2];c[v+12>>2]=c[s+12>>2];c[B>>2]=c[t>>2];c[B+4>>2]=c[t+4>>2];c[B+8>>2]=c[t+8>>2];c[B+12>>2]=c[t+12>>2];WX(r,v,B);c[v>>2]=c[L>>2];c[v+4>>2]=c[L+4>>2];c[v+8>>2]=c[L+8>>2];c[v+12>>2]=c[L+12>>2];c[B>>2]=c[r>>2];c[B+4>>2]=c[r+4>>2];c[B+8>>2]=c[r+8>>2];c[B+12>>2]=c[r+12>>2];XX(u,v,B);c[v>>2]=c[K>>2];c[v+4>>2]=c[K+4>>2];c[v+8>>2]=c[K+8>>2];c[v+12>>2]=c[K+12>>2];c[B>>2]=c[u>>2];c[B+4>>2]=c[u+4>>2];c[B+8>>2]=c[u+8>>2];c[B+12>>2]=c[u+12>>2];I=w+ +dY(v,B);c[v>>2]=c[J>>2];c[v+4>>2]=c[J+4>>2];c[v+8>>2]=c[J+8>>2];c[v+12>>2]=c[J+12>>2];c[B>>2]=c[u>>2];c[B+4>>2]=c[u+4>>2];c[B+8>>2]=c[u+8>>2];c[B+12>>2]=c[u+12>>2];q=q+1|0;w=I;x=H;y=o;z=z+ +dY(v,B);A=p}o=x*y-A*A;p=o>=0.0?o:-o;if(!(p>=1.0e-06?(m=(w*y-z*A)/o,n=(z*x-w*A)/o,!(n<=0.0|(m<=0.0|p<1.0e-06))):0))F=6;if((F|0)==6){c[v>>2]=c[a>>2];c[v+4>>2]=c[a+4>>2];c[v+8>>2]=c[a+8>>2];c[v+12>>2]=c[a+12>>2];c[B>>2]=c[E>>2];c[B+4>>2]=c[E+4>>2];c[B+8>>2]=c[E+8>>2];c[B+12>>2]=c[E+12>>2];m=+QX(v,B)/3.0;n=m};c[g>>2]=c[a>>2];c[g+4>>2]=c[a+4>>2];c[g+8>>2]=c[a+8>>2];c[g+12>>2]=c[a+12>>2];c[B>>2]=c[e>>2];c[B+4>>2]=c[e+4>>2];c[B+8>>2]=c[e+8>>2];c[B+12>>2]=c[e+12>>2];SX(C,B,m);c[i>>2]=c[C>>2];c[i+4>>2]=c[C+4>>2];c[i+8>>2]=c[C+8>>2];c[i+12>>2]=c[C+12>>2];c[j>>2]=c[E>>2];c[j+4>>2]=c[E+4>>2];c[j+8>>2]=c[E+8>>2];c[j+12>>2]=c[E+12>>2];c[B>>2]=c[f>>2];c[B+4>>2]=c[f+4>>2];c[B+8>>2]=c[f+8>>2];c[B+12>>2]=c[f+12>>2];SX(D,B,n);c[k>>2]=c[D>>2];c[k+4>>2]=c[D+4>>2];c[k+8>>2]=c[D+8>>2];c[k+12>>2]=c[D+12>>2];l=G;return}function VX(a,b,d,e,f,g,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;var k=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0.0,s=0.0,t=0,u=0.0,v=0,w=0.0,x=0,y=0.0,z=0,A=0,B=0,C=0,D=0.0,E=0;C=l;l=l+64|0;B=C;z=(j|0)==2;y=+h[d>>3];u=+h[d+8>>3];v=B+8|0;w=+h[e>>3];x=B+16|0;p=+h[e+8>>3];q=B+24|0;r=+h[f>>3];s=+h[g>>3];t=B+32|0;o=+h[f+8>>3];n=+h[g+8>>3];e=B+40|0;f=B+48|0;g=B+56|0;d=1;k=4.0;m=4.0;while(1){h[B>>3]=y;h[v>>3]=u;h[x>>3]=y+m*w/3.0;h[q>>3]=u+m*p/3.0;h[t>>3]=r-k*s/3.0;h[e>>3]=o-k*n/3.0;h[f>>3]=r;h[g>>3]=o;if(d?(D=+_X(B,4),D<+_X(i,j)+-.001):0){d=0;break}if($X(a,b,B)|0){A=5;break}if(m==0.0&k==0.0){A=9;break}E=m>.01;d=0;k=E?k*.5:0.0;m=E?m*.5:0.0}a:do if((A|0)==5){OX((c[47530]|0)+4|0);e=c[47531]|0;d=1;while(1){if((d|0)==4){d=1;break a}E=c[47530]|0;h[e+(E<<4)>>3]=+h[B+(d<<4)>>3];D=+h[B+(d<<4)+8>>3];c[47530]=E+1;h[e+(E<<4)+8>>3]=D;d=d+1|0}}else if((A|0)==9)if(z){OX((c[47530]|0)+4|0);e=c[47531]|0;d=1;while(1){if((d|0)==4){d=1;break a}E=c[47530]|0;h[e+(E<<4)>>3]=+h[B+(d<<4)>>3];D=+h[B+(d<<4)+8>>3];c[47530]=E+1;h[e+(E<<4)+8>>3]=D;d=d+1|0}}else d=0;while(0);l=C;return d|0}function WX(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;h[b>>3]=+h[d>>3]+ +h[b>>3];e=b+8|0;h[e>>3]=+h[d+8>>3]+ +h[e>>3];c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];return}function XX(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;h[b>>3]=+h[b>>3]-+h[d>>3];e=b+8|0;h[e>>3]=+h[e>>3]-+h[d+8>>3];c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];return}function YX(a){a=+a;a=1.0-a;return +(a*(a*a))}function ZX(a){a=+a;return +(a*a*a)}function _X(a,b){a=a|0;b=b|0;var c=0.0,d=0,e=0.0,f=0.0,g=0;c=0.0;d=1;while(1){if((d|0)>=(b|0))break;g=d+-1|0;f=+h[a+(d<<4)>>3]-+h[a+(g<<4)>>3];e=+h[a+(d<<4)+8>>3]-+h[a+(g<<4)+8>>3];c=c+ +G(+(f*f+e*e));d=d+1|0}return +c}function $X(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0.0,w=0,x=0,y=0.0,z=0,A=0,B=0,C=0,D=0.0,E=0.0;C=l;l=l+64|0;t=C+32|0;u=C;w=u+16|0;x=d+16|0;z=d+32|0;A=d+48|0;B=d+8|0;g=d+24|0;i=d+40|0;j=d+56|0;k=u+8|0;m=u+24|0;f=0;a:while(1){if((f|0)>=(b|0)){e=1;break}n=a+(f<<5)|0;c[u>>2]=c[n>>2];c[u+4>>2]=c[n+4>>2];c[u+8>>2]=c[n+8>>2];c[u+12>>2]=c[n+12>>2];n=a+(f<<5)+16|0;c[w>>2]=c[n>>2];c[w+4>>2]=c[n+4>>2];c[w+8>>2]=c[n+8>>2];c[w+12>>2]=c[n+12>>2];n=aY(d,u,t)|0;b:do if((n|0)!=4){o=+h[u>>3];p=+h[k>>3];q=+h[w>>3];r=+h[m>>3];e=0;while(1){if((e|0)>=(n|0))break b;s=+h[t+(e<<3)>>3];if((!(s<1.0e-06|s>.999999)?(y=s*(s*s),v=s*3.0,E=1.0-s,D=E*(s*v),s=E*(v*E),E=E*(E*E),v=E*+h[d>>3]+s*+h[x>>3]+D*+h[z>>3]+y*+h[A>>3],y=E*+h[B>>3]+s*+h[g>>3]+D*+h[i>>3]+y*+h[j>>3],D=v-o,s=y-p,!(D*D+s*s<.001)):0)?(D=v-q,E=y-r,!(D*D+E*E<.001)):0){e=0;break a}e=e+1|0}}while(0);f=f+1|0}l=C;return e|0}function aY(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0,j=0.0,k=0.0,m=0.0,n=0,o=0.0,p=0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=l;l=l+96|0;y=C+48|0;A=C+24|0;z=C;B=C+80|0;u=+h[b>>3];s=+h[b+16>>3]-u;t=+h[b+8>>3];o=+h[b+24>>3]-t;c[B>>2]=0;v=y+8|0;f=a+48|0;e=a+56|0;w=y+16|0;i=a+32|0;p=a+40|0;q=a+8|0;x=y+24|0;g=+h[a>>3];j=+h[f>>3];k=+h[i>>3];r=a+24|0;n=a+16|0;m=+h[n>>3];a:do if(!(s==0.0)){o=o/s;bY(+h[q>>3]-o*g,+h[r>>3]-o*m,+h[p>>3]-o*k,+h[e>>3]-o*j,y);h[y>>3]=u*o-t+ +h[y>>3];e=zY(y,A)|0;if((e|0)==4)b=4;else{b=0;while(1){if((b|0)>=(e|0))break;g=+h[A+(b<<3)>>3];if(g>=0.0&g<=1.0?(bY(+h[a>>3],+h[n>>3],+h[i>>3],+h[f>>3],y),t=(+h[y>>3]+g*(+h[v>>3]+g*(+h[w>>3]+g*+h[x>>3]))-u)/s,t>=0.0&t<=1.0):0)cY(g,d,B);b=b+1|0}b=c[B>>2]|0}}else{bY(g,m,k,j,y);h[y>>3]=+h[y>>3]-u;n=zY(y,A)|0;if(!(o==0.0)){if((n|0)==4){b=4;break}else b=0;while(1){if((b|0)>=(n|0))break;g=+h[A+(b<<3)>>3];if(g>=0.0&g<=1.0?(bY(+h[q>>3],+h[r>>3],+h[p>>3],+h[e>>3],y),u=(+h[y>>3]+g*(+h[v>>3]+g*(+h[w>>3]+g*+h[x>>3]))-t)/o,u>=0.0&u<=1.0):0)cY(g,d,B);b=b+1|0}b=c[B>>2]|0;break}bY(+h[q>>3],+h[r>>3],+h[p>>3],+h[e>>3],y);h[y>>3]=+h[y>>3]-t;i=zY(y,z)|0;b=(i|0)==4;b:do if((n|0)==4){if(b){b=4;break a}else b=0;while(1){if((b|0)>=(i|0))break b;cY(+h[z+(b<<3)>>3],d,B);b=b+1|0}}else{if(b){b=0;while(1){if((b|0)>=(n|0))break b;cY(+h[A+(b<<3)>>3],d,B);b=b+1|0}}else e=0;while(1){if((e|0)>=(n|0))break b;f=A+(e<<3)|0;b=0;while(1){if((b|0)>=(i|0))break;g=+h[f>>3];if(g==+h[z+(b<<3)>>3])cY(g,d,B);b=b+1|0}e=e+1|0}}while(0);b=c[B>>2]|0}while(0);l=C;return b|0}function bY(a,b,c,d,e){a=+a;b=+b;c=+c;d=+d;e=e|0;c=c*3.0;h[e+24>>3]=b*3.0+d-(c+a);h[e+16>>3]=a*3.0+c-b*6.0;h[e+8>>3]=(b-a)*3.0;h[e>>3]=a;return}function cY(a,b,d){a=+a;b=b|0;d=d|0;var e=0;if(a>=0.0&a<=1.0){e=c[d>>2]|0;h[b+(e<<3)>>3]=a;c[d>>2]=e+1}return}function dY(a,b){a=a|0;b=b|0;return +(+h[a>>3]*+h[b>>3]+ +h[a+8>>3]*+h[b+8>>3])}function eY(a){a=+a;var b=0.0;b=1.0-a;return +(b*b*(b+a*3.0))}function fY(a){a=+a;return +(a*a*((1.0-a)*3.0+a))}function gY(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0.0,j=0,k=0,m=0,n=0,q=0,r=0,s=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0.0;J=l;l=l+112|0;G=J+80|0;F=J+64|0;E=J+48|0;I=4;H=k6(40)|0;c[H>>2]=0;x=J+32|0;y=J+16|0;z=J;A=J+96|0;I=x6(190140,1,H|0,I|0)|0;H=D;o=0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,I|0,H|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1)e=D;else e=0;a:while(1){if(e|0){e=-2;break}g=a+4|0;o=0;$(116,c[g>>2]|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,I|0,H|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){e=D;continue}c[47574]=0;c[47575]=0;o=0;$(117,c[g>>2]<<1|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,I|0,H|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){e=D;continue}n=(c[47577]|0)/2|0;c[47578]=n;c[47579]=n+-1;n=c[g>>2]|0;g=c[a>>2]|0;e=0;f=-1;i=t;while(1){if((e|0)>=(n|0))break;K=+h[g+(e<<4)>>3];w=i>K;v=w?e:f;e=e+1|0;f=v;i=w?K:i}m=g+(f<<4)|0;c[y>>2]=c[m>>2];c[y+4>>2]=c[m+4>>2];c[y+8>>2]=c[m+8>>2];c[y+12>>2]=c[m+12>>2];m=g+(((f|0)==0?n:f)+-1<<4)|0;c[x>>2]=c[m>>2];c[x+4>>2]=c[m+4>>2];c[x+8>>2]=c[m+8>>2];c[x+12>>2]=c[m+12>>2];m=n+-1|0;w=g+(((f|0)==(m|0)?0:f+1|0)<<4)|0;c[z>>2]=c[w>>2];c[z+4>>2]=c[w+4>>2];c[z+8>>2]=c[w+8>>2];c[z+12>>2]=c[w+12>>2];K=+h[y>>3];if((+h[x>>3]==K?K==+h[z>>3]:0)?+h[z+8>>3]>+h[y+8>>3]:0)w=15;else w=12;b:do if((w|0)==12){w=0;o=0;e=aa(39,x|0,y|0,z|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=A6(c[f>>2]|0,I|0,H|0)|0;if(!g)Ca(f|0,p|0);D=p}else g=-1;if((g|0)==1){e=D;continue a}if((e|0)==1){g=c[47581]|0;e=c[47582]|0;f=0;while(1){if((f|0)>=(n|0))break b;j=c[a>>2]|0;k=j+(f<<4)|0;if(!(((f|0)>0?(C=f+-1|0,+h[k>>3]==+h[j+(C<<4)>>3]):0)?+h[j+(f<<4)+8>>3]==+h[j+(C<<4)+8>>3]:0)){v=c[47574]|0;c[g+(v<<3)>>2]=k;c[g+(v<<3)+4>>2]=g+(((v|0)%(n|0)|0)<<3);c[e+(v<<2)>>2]=g+(v<<3);c[47574]=v+1}f=f+1|0}}else w=15}while(0);c:do if((w|0)==15){w=0;g=c[47581]|0;e=c[47582]|0;f=m;while(1){if((f|0)<=-1)break c;j=c[a>>2]|0;k=j+(f<<4)|0;if(!(((f|0)<(m|0)?(B=f+1|0,+h[k>>3]==+h[j+(B<<4)>>3]):0)?+h[j+(f<<4)+8>>3]==+h[j+(B<<4)+8>>3]:0)){v=c[47574]|0;c[g+(v<<3)>>2]=k;c[g+(v<<3)+4>>2]=g+(((v|0)%(n|0)|0)<<3);c[e+(v<<2)>>2]=g+(v<<3);c[47574]=v+1}f=f+-1|0}}while(0);o=0;ha(29,e|0,c[47574]|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,I|0,H|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){e=D;continue}j=0;e=c[47575]|0;d:while(1){if((j|0)>=(e|0)){u=0;break}k=j+1|0;g=k;while(1){if((g|0)>=(e|0)){j=k;continue d}o=0;ha(30,j|0,g|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,I|0,H|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){e=D;continue a}g=g+1|0;e=c[47575]|0}}while(1){if((u|0)>=(e|0))break;o=0;f=ra(105,u|0,b|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){j=A6(c[g>>2]|0,I|0,H|0)|0;if(!j)Ca(g|0,p|0);D=p}else j=-1;if((j|0)==1){e=D;continue a}if(f|0)break;u=u+1|0}if((u|0)==(e|0)){e=c[15715]|0;o=0;c[E>>2]=142161;c[E+4>>2]=192;c[E+8>>2]=142172;aa(35,e|0,142142,E|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,I|0,H|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){e=D;continue}else{w=42;break}}v=b+16|0;k=0;while(1){if((k|0)>=(e|0))break;o=0;f=ra(105,k|0,v|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){j=A6(c[g>>2]|0,I|0,H|0)|0;if(!j)Ca(g|0,p|0);D=p}else j=-1;if((j|0)==1){e=D;continue a}if(f|0)break;k=k+1|0}if((k|0)==(e|0)){e=c[15715]|0;o=0;c[F>>2]=142161;c[F+4>>2]=200;c[F+8>>2]=142205;aa(35,e|0,142142,F|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,I|0,H|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){e=D;continue}else{w=49;break}}o=0;e=ra(106,u|0,k|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=A6(c[f>>2]|0,I|0,H|0)|0;if(!g)Ca(f|0,p|0);D=p}else g=-1;if((g|0)==1){e=D;continue}if(!e){e=c[15715]|0;o=0;c[G>>2]=142161;c[G+4>>2]=207;c[G+8>>2]=142243;aa(35,e|0,142142,G|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,I|0,H|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){e=D;continue}o=0;$(118,2);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,I|0,H|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){e=D;continue}else{w=54;break}}s=d+4|0;if((u|0)==(k|0)){o=0;$(118,2);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,I|0,H|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){e=D;continue}else{w=57;break}}c[A>>2]=b;c[A+4>>2]=0;f=A+8|0;c[f>>2]=v;c[A+12>>2]=0;o=0;ha(31,1,A|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){g=A6(c[e>>2]|0,I|0,H|0)|0;if(!g)Ca(e|0,p|0);D=p}else g=-1;if((g|0)==1){e=D;continue}c[47580]=c[47578];q=u;e:while(1){if((q|0)==-1){g=f;e=0;break}r=c[47584]|0;c[r+(q*52|0)>>2]=2;g=0;while(1){j=g+1|0;if((g|0)>=3){w=65;break}e=c[r+(q*52|0)+4+(g<<4)+12>>2]|0;if(!e){g=j;continue}if((c[e>>2]|0)==1){w=68;break}else g=j}if((w|0)==65){w=0;if((g|0)==3){e=c[47576]|0;k=c[e+(c[47579]<<2)>>2]|0;o=0;e=aa(39,v|0,c[c[e+(c[47578]<<2)>>2]>>2]|0,c[k>>2]|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){j=A6(c[g>>2]|0,I|0,H|0)|0;if(!j)Ca(g|0,p|0);D=p}else j=-1;if((j|0)==1){e=D;continue a}j=(e|0)==1;n=j?f:k;j=j?k:f}else w=68}if((w|0)==68){w=0;m=c[r+(q*52|0)+4+(g<<4)>>2]|0;k=c[r+(q*52|0)+4+(g<<4)+4>>2]|0;o=0;e=aa(39,c[m>>2]|0,c[c[r+(q*52|0)+4+(((j|0)%3|0)<<4)+4>>2]>>2]|0,c[k>>2]|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){j=A6(c[g>>2]|0,I|0,H|0)|0;if(!j)Ca(g|0,p|0);D=p}else j=-1;if((j|0)==1){e=D;continue a}j=(e|0)==1;n=j?m:k;j=j?k:m}do if((q|0)==(u|0)){o=0;ha(31,2,j|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){g=A6(c[e>>2]|0,I|0,H|0)|0;if(!g)Ca(e|0,p|0);D=p}else g=-1;if((g|0)==1){e=D;continue a}o=0;ha(31,1,n|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){g=A6(c[e>>2]|0,I|0,H|0)|0;if(!g)Ca(e|0,p|0);D=p}else g=-1;if((g|0)==1){e=D;continue a}e=0}else{m=c[47576]|0;if((c[m+(c[47578]<<2)>>2]|0)!=(n|0)?(c[m+(c[47579]<<2)>>2]|0)!=(n|0):0){o=0;j=la(34,n|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){g=A6(c[e>>2]|0,I|0,H|0)|0;if(!g)Ca(e|0,p|0);D=p}else g=-1;if((g|0)==1){e=D;continue a}o=0;ha(32,2,j|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){g=A6(c[e>>2]|0,I|0,H|0)|0;if(!g)Ca(e|0,p|0);D=p}else g=-1;if((g|0)==1){e=D;continue a}o=0;ha(31,1,n|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){g=A6(c[e>>2]|0,I|0,H|0)|0;if(!g)Ca(e|0,p|0);D=p}else g=-1;if((g|0)==1){e=D;continue a}if((j|0)<=(c[47580]|0)){e=0;break}c[47580]=j;e=0;break}o=0;k=la(34,j|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){g=A6(c[e>>2]|0,I|0,H|0)|0;if(!g)Ca(e|0,p|0);D=p}else g=-1;if((g|0)==1){e=D;continue a}o=0;ha(32,1,k|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){g=A6(c[e>>2]|0,I|0,H|0)|0;if(!g)Ca(e|0,p|0);D=p}else g=-1;if((g|0)==1){e=D;continue a}o=0;ha(31,2,j|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){g=A6(c[e>>2]|0,I|0,H|0)|0;if(!g)Ca(e|0,p|0);D=p}else g=-1;if((g|0)==1){e=D;continue a}if((k|0)>=(c[47580]|0)){e=0;break}c[47580]=k;e=0}while(0);while(1){if((e|0)>=3){q=-1;continue e}g=c[r+(q*52|0)+4+(e<<4)+12>>2]|0;if(g|0?(c[g>>2]|0)==1:0)break;e=e+1|0}q=(g-(c[47584]|0)|0)/52|0}while(1){if(!g)break;g=c[g+4>>2]|0;e=e+1|0}o=0;$(118,e|0);g=o;o=0;if((g|0)!=0&(p|0)!=0){j=A6(c[g>>2]|0,I|0,H|0)|0;if(!j)Ca(g|0,p|0);D=p}else j=-1;if((j|0)==1)e=D;else{w=94;break}}if((w|0)==42)e=-1;else if((w|0)==49)e=-1;else if((w|0)==54){c[d+4>>2]=2;e=c[47583]|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];H=e+16|0;c[H>>2]=c[v>>2];c[H+4>>2]=c[v+4>>2];c[H+8>>2]=c[v+8>>2];c[H+12>>2]=c[v+12>>2];c[d>>2]=e;e=0}else if((w|0)==57){c[s>>2]=2;e=c[47583]|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];H=e+16|0;c[H>>2]=c[v>>2];c[H+4>>2]=c[v+4>>2];c[H+8>>2]=c[v+8>>2];c[H+12>>2]=c[v+12>>2];c[d>>2]=e;e=0}else if((w|0)==94){c[s>>2]=e;g=c[47583]|0;while(1){e=e+-1|0;if(!f)break;H=g+(e<<4)|0;G=c[f>>2]|0;c[H>>2]=c[G>>2];c[H+4>>2]=c[G+4>>2];c[H+8>>2]=c[G+8>>2];c[H+12>>2]=c[G+12>>2];f=c[f+4>>2]|0}c[d>>2]=g;e=0}l6(I|0);l=J;return e|0}function hY(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+64|0;g=j+48|0;i=j+32|0;h=j+16|0;f=j;if((c[47587]|0)<(a|0)){b=c[47581]|0;d=a<<3;e=a<<2;if(!b){i=k6(d)|0;c[47581]=i;if(!i){i=c[15715]|0;c[f>>2]=142161;c[f+4>>2]=523;c[f+8>>2]=142411;z4(i,142142,f)|0;Ca(190140,1)}i=k6(e)|0;c[47582]=i;if(!i){i=c[15715]|0;c[h>>2]=142161;c[h+4>>2]=527;c[h+8>>2]=142430;z4(i,142142,h)|0;Ca(190140,1)}}else{h=n6(b,d)|0;c[47581]=h;if(!h){h=c[15715]|0;c[i>>2]=142161;c[i+4>>2]=533;c[i+8>>2]=142450;z4(h,142142,i)|0;Ca(190140,1)}i=n6(c[47582]|0,e)|0;c[47582]=i;if(!i){i=c[15715]|0;c[g>>2]=142161;c[g+4>>2]=539;c[g+8>>2]=142470;z4(i,142142,g)|0;Ca(190140,1)}}c[47587]=a}l=j;return}function iY(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=l;l=l+32|0;f=g+16|0;e=g;if((c[47577]|0)<(a|0)){b=c[47576]|0;d=a<<2;if(!b){f=k6(d)|0;c[47576]=f;if(!f){f=c[15715]|0;c[e>>2]=142161;c[e+4>>2]=573;c[e+8>>2]=142366;z4(f,142142,e)|0;Ca(190140,1)}}else{e=n6(b,d)|0;c[47576]=e;if(!e){e=c[15715]|0;c[f>>2]=142161;c[f+4>>2]=580;c[f+8>>2]=142388;z4(e,142142,f)|0;Ca(190140,1)}}c[47577]=a}l=g;return}function jY(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0;e=+h[b+8>>3];d=+h[b>>3];d=(+h[a+8>>3]-e)*(+h[c>>3]-d)-(+h[c+8>>3]-e)*(+h[a>>3]-d);return (d>0.0?1:d<0.0?2:3)|0}function kY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;h=i;a:while(1){if((b|0)>3)e=0;else{b=9;break}while(1){if((e|0)>=(b|0)){b=8;break a}f=e+1|0;d=(f|0)%(b|0)|0;g=(e+2|0)%(b|0)|0;if(!(sY(e,g,a,b)|0))e=f;else break}tY(c[a+(e<<2)>>2]|0,c[a+(d<<2)>>2]|0,c[a+(g<<2)>>2]|0);b=b+-1|0;while(1){if((d|0)>=(b|0))continue a;g=d+1|0;c[a+(d<<2)>>2]=c[a+(g<<2)>>2];d=g}}if((b|0)==8){a=c[15715]|0;c[h>>2]=142161;c[h+4>>2]=324;c[h+8>>2]=142306;z4(a,142142,h)|0}else if((b|0)==9)tY(c[a>>2]|0,c[a+4>>2]|0,c[a+8>>2]|0);l=i;return}function lY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=c[47584]|0;i=h+(a*52|0)|0;j=h+(b*52|0)|0;e=0;while(1){if((e|0)==3)break;k=h+(a*52|0)+4+(e<<4)|0;l=h+(a*52|0)+4+(e<<4)+4|0;m=h+(a*52|0)+4+(e<<4)+12|0;d=0;while(1){if((d|0)==3)break;n=c[c[k>>2]>>2]|0;f=c[c[h+(b*52|0)+4+(d<<4)>>2]>>2]|0;g=c[c[h+(b*52|0)+4+(d<<4)+4>>2]>>2]|0;if((n|0)==(f|0)?(c[c[l>>2]>>2]|0)==(g|0):0)o=9;else o=7;if(((o|0)==7?(o=0,(n|0)==(g|0)):0)?(c[c[l>>2]>>2]|0)==(f|0):0)o=9;if((o|0)==9){c[m>>2]=j;c[h+(b*52|0)+4+(d<<4)+12>>2]=i}d=d+1|0}e=e+1|0}return}function mY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=c[47584]|0;d=0;e=0;while(1){if((e|0)==3)break;d=((jY(c[c[f+(a*52|0)+4+(e<<4)>>2]>>2]|0,c[c[f+(a*52|0)+4+(e<<4)+4>>2]>>2]|0,b)|0)!=2&1)+d|0;e=e+1|0}return ((d|0)==3|(d|0)==0)&1|0}function nY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[47584]|0;e=d+(a*52|0)|0;a:do if(!(c[e>>2]|0)){c[e>>2]=1;if((a|0)==(b|0))d=1;else{f=0;while(1){if((f|0)>=3)break;e=c[d+(a*52|0)+4+(f<<4)+12>>2]|0;if(e){if(nY((e-d|0)/52|0,b)|0){d=1;break a}d=c[47584]|0}f=f+1|0}c[d+(a*52|0)>>2]=0;d=0}}else d=0;while(0);return d|0}function oY(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=l;l=l+32|0;f=g+16|0;e=g;if((c[47585]|0)<(a|0)){b=c[47583]|0;d=a<<4;if(!b){f=k6(d)|0;c[47583]=f;if(!f){f=c[15715]|0;c[e>>2]=142161;c[e+4>>2]=593;c[e+8>>2]=142269;z4(f,142142,e)|0;Ca(190140,1)}}else{e=n6(b,d)|0;c[47583]=e;if(!e){e=c[15715]|0;c[f>>2]=142161;c[f+4>>2]=599;c[f+8>>2]=142287;z4(e,142142,f)|0;Ca(190140,1)}}c[47585]=a}l=g;return}function pY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=c[47579]|0;e=c[47578]|0;f=(d|0)>=(e|0);g=b+4|0;if((a|0)==1){if(f)c[g>>2]=c[(c[47576]|0)+(e<<2)>>2];a=e+-1|0;d=190312}else{if(f)c[g>>2]=c[(c[47576]|0)+(d<<2)>>2];a=d+1|0;d=190316}c[d>>2]=a;c[(c[47576]|0)+(a<<2)>>2]=b;return}function qY(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=c[47580]|0;g=c[47576]|0;b=c[47578]|0;while(1){if((b|0)>=(f|0)){e=4;break}d=b+1|0;if((jY(c[c[g+(d<<2)>>2]>>2]|0,c[c[g+(b<<2)>>2]>>2]|0,c[a>>2]|0)|0)==1)break;else b=d}a:do if((e|0)==4){b=c[47579]|0;while(1){if((b|0)<=(f|0)){b=f;break a}d=b+-1|0;if((jY(c[c[g+(d<<2)>>2]>>2]|0,c[c[g+(b<<2)>>2]>>2]|0,c[a>>2]|0)|0)==2)break;else b=d}}while(0);return b|0}function rY(a,b){a=a|0;b=b|0;c[((a|0)==1?190316:190312)>>2]=b;return}function sY(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=c[c[d+(((a+-1+e|0)%(e|0)|0)<<2)>>2]>>2]|0;i=c[c[d+(a<<2)>>2]>>2]|0;g=c[c[d+(((a+1|0)%(e|0)|0)<<2)>>2]>>2]|0;k=(jY(f,i,g)|0)==1;j=c[c[d+(b<<2)>>2]>>2]|0;if(k)if((jY(i,j,f)|0)==1){f=jY(j,i,g)|0;g=1;h=5}else f=0;else{f=jY(i,j,g)|0;g=2;h=5}a:do if((h|0)==5)if((f|0)==(g|0)){f=0;while(1){if((f|0)>=(e|0)){f=1;break a}g=f;f=f+1|0;h=(f|0)%(e|0)|0;if((h|0)==(b|0)|((g|0)==(b|0)|((g|0)==(a|0)|(h|0)==(a|0))))continue;if(vY(i,j,c[c[d+(g<<2)>>2]>>2]|0,c[c[d+(h<<2)>>2]>>2]|0)|0){f=0;break}}}else f=0;while(0);return f|0}function tY(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=c[47575]|0;f=c[47586]|0;if((e|0)<(f|0))h=e;else{uY(f+20|0);h=c[47575]|0}g=c[47584]|0;c[47575]=h+1;f=g+(h*52|0)|0;c[f>>2]=0;c[g+(h*52|0)+4>>2]=a;c[g+(h*52|0)+8>>2]=b;c[g+(h*52|0)+16>>2]=0;c[g+(h*52|0)+20>>2]=b;c[g+(h*52|0)+24>>2]=d;c[g+(h*52|0)+32>>2]=0;c[g+(h*52|0)+36>>2]=d;c[g+(h*52|0)+40>>2]=a;c[g+(h*52|0)+48>>2]=0;e=0;while(1){if((e|0)==3)break;c[g+(h*52|0)+4+(e<<4)+8>>2]=f;e=e+1|0}return}function uY(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=l;l=l+32|0;f=g+16|0;e=g;if((c[47586]|0)<(a|0)){b=c[47584]|0;d=a*52|0;if(!b){f=k6(d)|0;c[47584]=f;if(!f){f=c[15715]|0;c[e>>2]=142161;c[e+4>>2]=552;c[e+8>>2]=142327;z4(f,142142,e)|0;Ca(190140,1)}}else{e=n6(b,d)|0;c[47584]=e;if(!e){e=c[15715]|0;c[f>>2]=142161;c[f+4>>2]=558;c[f+8>>2]=142346;z4(e,142142,f)|0;Ca(190140,1)}}c[47586]=a}l=g;return}function vY(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=jY(a,b,c)|0;if((((f|0)!=3?(g=jY(a,b,d)|0,(g|0)!=3):0)?(h=jY(c,d,a)|0,(h|0)!=3):0)?(e=jY(c,d,b)|0,(e|0)!=3):0)a=((f|0)==1^(g|0)==1)&((h|0)==1^(e|0)==1)&1;else if(((wY(a,b,c)|0)==0?(wY(a,b,d)|0)==0:0)?(wY(c,d,a)|0)==0:0)return (wY(c,d,b)|0)!=0|0;else a=1;return a|0}function wY(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0;e=+h[a>>3];g=+h[b>>3]-e;f=+h[a+8>>3];d=+h[b+8>>3]-f;e=+h[c>>3]-e;f=+h[c+8>>3]-f;if((jY(a,b,c)|0)==3)a=(g*e+d*f>=0.0?e*e+f*f<=g*g+d*d:0)&1;else a=0;return a|0}function xY(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0;m=k6(d<<2)|0;n=k6((d<<3)+8|0)|0;o=n+8|0;f=0;while(1){if((f|0)>=(d|0))break;c[m+(f<<2)>>2]=-1;h[o+(f<<3)>>3]=-2147483647.0;f=f+1|0}h[n>>3]=-2147483648.0;a:while(1){if((a|0)==(b|0))break;l=o+(a<<3)|0;j=+h[l>>3];h[l>>3]=j==-2147483647.0?0.0:-j;k=0;f=-1;while(1){if((k|0)>=(d|0)){a=f;continue a}i=o+(k<<3)|0;g=+h[i>>3];if(g<0.0){q=(a|0)<(k|0);p=+h[(c[e+((q?k:a)<<2)>>2]|0)+((q?a:k)<<3)>>3];j=-(p+ +h[l>>3]);if(p!=0.0&g<j){h[i>>3]=j;c[m+(k<<2)>>2]=a;g=j}f=g>+h[o+(f<<3)>>3]?k:f}k=k+1|0}}l6(n);return m|0}function yY(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0;j=l;l=l+32|0;k=j+16|0;m=j;i=c[h+4>>2]|0;c[m>>2]=c[a>>2];c[m+4>>2]=c[a+4>>2];c[m+8>>2]=c[a+8>>2];c[m+12>>2]=c[a+12>>2];c[k>>2]=c[e>>2];c[k+4>>2]=c[e+4>>2];c[k+8>>2]=c[e+8>>2];c[k+12>>2]=c[e+12>>2];a=i+2|0;if(!(RY(m,b,k,f,h)|0)){m=c[h+24>>2]|0;c[m+(i<<2)>>2]=g;k=i+1|0;c[m+(k<<2)>>2]=d;a=xY(k,i,a,m)|0}else{a=k6(a<<2)|0;m=i+1|0;c[a+(i<<2)>>2]=m;c[a+(m<<2)>>2]=-1}l=j;return a|0}function zY(a,b){a=a|0;b=b|0;var c=0,d=0.0,e=0.0,f=0.0,g=0.0,i=0.0,j=0;d=+h[a+24>>3];a:do if(d<1.0e-07&d>-1.0e-07)a=AY(a,b)|0;else{i=+h[a+16>>3]/(d*3.0);e=+h[a+8>>3]/d;g=i*i;d=+h[a>>3]/d+(i*2.0*g-e*i);g=e/3.0-g;e=d*d;g=e+g*(g*(g*4.0));a=b+16|0;f=-d;c=b+8|0;if(!(g<0.0)){d=(+G(+g)-d)*.5;e=+U3(d);d=e+ +U3(f-d);h[b>>3]=d;d=d*-.5;if(g>0.0)a=1;else{h[a>>3]=d;h[c>>3]=d;a=3}}else{f=+O(+(+G(+-g)),+f);g=+U3(+G(+(e-g))*.5)*2.0;h[b>>3]=g*+I(+(f/3.0));h[c>>3]=g*+I(+((f+3.141592653589793+3.141592653589793)/3.0));h[a>>3]=g*+I(+((f+-3.141592653589793+-3.141592653589793)/3.0));a=3}c=0;while(1){if((c|0)>=(a|0))break a;j=b+(c<<3)|0;h[j>>3]=+h[j>>3]-i;c=c+1|0}}while(0);return a|0}function AY(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;c=+h[a+16>>3];do if(!(c<1.0e-07&c>-1.0e-07)){d=+h[a+8>>3]/(c*2.0);c=d*d-+h[a>>3]/c;if(!(c<0.0))if(c==0.0){h[b>>3]=-d;a=1;break}else{c=+G(+c)-d;h[b>>3]=c;h[b+8>>3]=d*-2.0-c;a=2;break}else a=0}else a=BY(a,b)|0;while(0);return a|0}function BY(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;d=+h[a+8>>3];c=+h[a>>3];if(d<1.0e-07&d>-1.0e-07)a=c<1.0e-07&c>-1.0e-07?4:0;else{h[b>>3]=-c/d;a=1}return a|0}function CY(a){a=a|0;l6(c[a>>2]|0);l6(a);return}function DY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=c[a+4>>2]|0;l=(f*3|0)+-2|0;e=c[47589]|0;if((l|0)>(c[47588]|0)){d=l<<4;if(!e)d=k6(d)|0;else d=n6(e,d)|0;c[47589]=d;c[47588]=l;k=d;j=d}else{k=e;j=e}i=c[a>>2]|0;c[j>>2]=c[i>>2];c[j+4>>2]=c[i+4>>2];c[j+8>>2]=c[i+8>>2];c[j+12>>2]=c[i+12>>2];I6(k+16|0,i|0,16)|0;a=f+-1|0;d=1;e=2;while(1){f=k+(e<<4)|0;g=k+(e+1<<4)|0;h=i+(d<<4)|0;if((d|0)>=(a|0))break;m=k+(e+2<<4)|0;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[f+8>>2]=c[h+8>>2];c[f+12>>2]=c[h+12>>2];I6(g|0,h|0,16)|0;c[m>>2]=c[g>>2];c[m+4>>2]=c[g+4>>2];c[m+8>>2]=c[g+8>>2];c[m+12>>2]=c[g+12>>2];d=d+1|0;e=e+3|0}c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[f+8>>2]=c[h+8>>2];c[f+12>>2]=c[h+12>>2];I6(g|0,h|0,16)|0;c[b+4>>2]=l;c[b>>2]=j;return}function EY(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0;e=+h[b+8>>3];d=+h[b>>3];d=(+h[a+8>>3]-e)*(+h[c>>3]-d)-(+h[c+8>>3]-e)*(+h[a>>3]-d);return (d>.0001?1:(d<-.0001)<<31>>31)|0}function FY(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0;e=+h[a>>3];f=+h[b>>3];if(e!=f){d=+h[c>>3];if(!(e<d&d<f))if(f<d)a=d<e;else a=0;else a=1}else{f=+h[a+8>>3];e=+h[c+8>>3];d=+h[b+8>>3];if(!(f<e&e<d))if(d<e)a=e<f;else a=0;else a=1}return a&1|0}function GY(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+48|0;i=m+32|0;h=m+16|0;g=m;c[g>>2]=c[a>>2];c[g+4>>2]=c[a+4>>2];c[g+8>>2]=c[a+8>>2];c[g+12>>2]=c[a+12>>2];c[h>>2]=c[b>>2];c[h+4>>2]=c[b+4>>2];c[h+8>>2]=c[b+8>>2];c[h+12>>2]=c[b+12>>2];c[i>>2]=c[d>>2];c[i+4>>2]=c[d+4>>2];c[i+8>>2]=c[d+8>>2];c[i+12>>2]=c[d+12>>2];j=EY(g,h,i)|0;if((j|0)==0?(c[g>>2]=c[a>>2],c[g+4>>2]=c[a+4>>2],c[g+8>>2]=c[a+8>>2],c[g+12>>2]=c[a+12>>2],c[h>>2]=c[b>>2],c[h+4>>2]=c[b+4>>2],c[h+8>>2]=c[b+8>>2],c[h+12>>2]=c[b+12>>2],c[i>>2]=c[d>>2],c[i+4>>2]=c[d+4>>2],c[i+8>>2]=c[d+8>>2],c[i+12>>2]=c[d+12>>2],(FY(g,h,i)|0)!=0):0)f=1;else k=3;do if((k|0)==3){c[g>>2]=c[a>>2];c[g+4>>2]=c[a+4>>2];c[g+8>>2]=c[a+8>>2];c[g+12>>2]=c[a+12>>2];c[h>>2]=c[b>>2];c[h+4>>2]=c[b+4>>2];c[h+8>>2]=c[b+8>>2];c[h+12>>2]=c[b+12>>2];c[i>>2]=c[e>>2];c[i+4>>2]=c[e+4>>2];c[i+8>>2]=c[e+8>>2];c[i+12>>2]=c[e+12>>2];f=EY(g,h,i)|0;if((f|0)==0?(c[g>>2]=c[a>>2],c[g+4>>2]=c[a+4>>2],c[g+8>>2]=c[a+8>>2],c[g+12>>2]=c[a+12>>2],c[h>>2]=c[b>>2],c[h+4>>2]=c[b+4>>2],c[h+8>>2]=c[b+8>>2],c[h+12>>2]=c[b+12>>2],c[i>>2]=c[e>>2],c[i+4>>2]=c[e+4>>2],c[i+8>>2]=c[e+8>>2],c[i+12>>2]=c[e+12>>2],FY(g,h,i)|0):0){f=1;break};c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];c[g+8>>2]=c[d+8>>2];c[g+12>>2]=c[d+12>>2];c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[h+12>>2]=c[e+12>>2];c[i>>2]=c[a>>2];c[i+4>>2]=c[a+4>>2];c[i+8>>2]=c[a+8>>2];c[i+12>>2]=c[a+12>>2];k=EY(g,h,i)|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];c[g+8>>2]=c[d+8>>2];c[g+12>>2]=c[d+12>>2];c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[h+12>>2]=c[e+12>>2];c[i>>2]=c[b>>2];c[i+4>>2]=c[b+4>>2];c[i+8>>2]=c[b+8>>2];c[i+12>>2]=c[b+12>>2];f=((S(EY(g,h,i)|0,k)|0)&(S(f,j)|0))>>>31}while(0);l=m;return f|0}function HY(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;d=+h[a>>3]-+h[b>>3];c=+h[a+8>>3]-+h[b+8>>3];return +(d*d+c*c)}function IY(a){a=a|0;c[a+24>>2]=JY(c[a+4>>2]|0)|0;KY(a);return}function JY(a){a=a|0;var b=0,d=0,e=0,f=0;e=a+2|0;f=k6(e<<2)|0;b=m6(S(a,a)|0,8)|0;d=0;while(1){if((d|0)>=(a|0))break;c[f+(d<<2)>>2]=b;b=b+(a<<3)|0;d=d+1|0}while(1){if((a|0)>=(e|0))break;c[f+(a<<2)>>2]=0;a=a+1|0}return f|0}function KY(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0;p=l;l=l+32|0;i=p+16|0;g=p;j=c[a+4>>2]|0;m=c[a+8>>2]|0;n=c[a+16>>2]|0;o=c[a+20>>2]|0;d=c[a+24>>2]|0;b=0;while(1){if((b|0)>=(j|0))break;q=c[o+(b<<2)>>2]|0;e=m+(b<<4)|0;f=m+(q<<4)|0;c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];r=+LY(g,i);f=c[d+(b<<2)>>2]|0;h[f+(q<<3)>>3]=r;h[(c[d+(q<<2)>>2]|0)+(b<<3)>>3]=r;a=b+-1|0;a=(q|0)==(a|0)?b+-2|0:a;while(1){if((a|0)<=-1)break;if((MY(b,a,m,n,o)|0?MY(a,b,m,n,o)|0:0)?(k=m+(a<<4)|0,c[g>>2]=c[e>>2],c[g+4>>2]=c[e+4>>2],c[g+8>>2]=c[e+8>>2],c[g+12>>2]=c[e+12>>2],c[i>>2]=c[k>>2],c[i+4>>2]=c[k+4>>2],c[i+8>>2]=c[k+8>>2],c[i+12>>2]=c[k+12>>2],NY(g,i,j,j,j,m,n)|0):0){c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[i>>2]=c[k>>2];c[i+4>>2]=c[k+4>>2];c[i+8>>2]=c[k+8>>2];c[i+12>>2]=c[k+12>>2];r=+LY(g,i);h[f+(a<<3)>>3]=r;h[(c[d+(a<<2)>>2]|0)+(b<<3)>>3]=r}a=a+-1|0}b=b+1|0}l=p;return}function LY(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,g=0;e=l;l=l+32|0;f=e+16|0;g=e;c[g>>2]=c[a>>2];c[g+4>>2]=c[a+4>>2];c[g+8>>2]=c[a+8>>2];c[g+12>>2]=c[a+12>>2];c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];d=+G(+(+HY(g,f)));l=e;return +d}function MY(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0;g=l;l=l+64|0;h=g+48|0;i=g+32|0;j=g+16|0;k=g;n=d+(c[f+(a<<2)>>2]<<4)|0;m=d+(a<<4)|0;e=d+(c[e+(a<<2)>>2]<<4)|0;f=d+(b<<4)|0;c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];c[k+12>>2]=c[n+12>>2];c[j>>2]=c[m>>2];c[j+4>>2]=c[m+4>>2];c[j+8>>2]=c[m+8>>2];c[j+12>>2]=c[m+12>>2];c[i>>2]=c[e>>2];c[i+4>>2]=c[e+4>>2];c[i+8>>2]=c[e+8>>2];c[i+12>>2]=c[e+12>>2];c[h>>2]=c[f>>2];c[h+4>>2]=c[f+4>>2];c[h+8>>2]=c[f+8>>2];c[h+12>>2]=c[f+12>>2];f=OY(k,j,i,h)|0;l=g;return f|0}function NY(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;p=l;l=l+64|0;n=p+48|0;m=p+32|0;k=p+16|0;j=p;i=0;while(1){if((i|0)>=(d|0)){o=4;break}r=g+(i<<4)|0;q=g+(c[h+(i<<2)>>2]<<4)|0;c[j>>2]=c[a>>2];c[j+4>>2]=c[a+4>>2];c[j+8>>2]=c[a+8>>2];c[j+12>>2]=c[a+12>>2];c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];c[k+12>>2]=c[b+12>>2];c[m>>2]=c[r>>2];c[m+4>>2]=c[r+4>>2];c[m+8>>2]=c[r+8>>2];c[m+12>>2]=c[r+12>>2];c[n>>2]=c[q>>2];c[n+4>>2]=c[q+4>>2];c[n+8>>2]=c[q+8>>2];c[n+12>>2]=c[q+12>>2];if(!(GY(j,k,m,n)|0))i=i+1|0;else{e=0;break}}a:do if((o|0)==4)while(1){if((e|0)>=(f|0)){e=1;break a}q=g+(e<<4)|0;r=g+(c[h+(e<<2)>>2]<<4)|0;c[j>>2]=c[a>>2];c[j+4>>2]=c[a+4>>2];c[j+8>>2]=c[a+8>>2];c[j+12>>2]=c[a+12>>2];c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];c[k+12>>2]=c[b+12>>2];c[m>>2]=c[q>>2];c[m+4>>2]=c[q+4>>2];c[m+8>>2]=c[q+8>>2];c[m+12>>2]=c[q+12>>2];c[n>>2]=c[r>>2];c[n+4>>2]=c[r+4>>2];c[n+8>>2]=c[r+8>>2];c[n+12>>2]=c[r+12>>2];if(!(GY(j,k,m,n)|0)){e=e+1|0;o=4}else{e=0;break}}while(0);l=p;return e|0}function OY(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;g=l;l=l+48|0;h=g+32|0;i=g+16|0;j=g;c[j>>2]=c[e>>2];c[j+4>>2]=c[e+4>>2];c[j+8>>2]=c[e+8>>2];c[j+12>>2]=c[e+12>>2];c[i>>2]=c[a>>2];c[i+4>>2]=c[a+4>>2];c[i+8>>2]=c[a+8>>2];c[i+12>>2]=c[a+12>>2];c[h>>2]=c[b>>2];c[h+4>>2]=c[b+4>>2];c[h+8>>2]=c[b+8>>2];c[h+12>>2]=c[b+12>>2];f=EY(j,i,h)|0;c[j>>2]=c[e>>2];c[j+4>>2]=c[e+4>>2];c[j+8>>2]=c[e+8>>2];c[j+12>>2]=c[e+12>>2];c[i>>2]=c[b>>2];c[i+4>>2]=c[b+4>>2];c[i+8>>2]=c[b+8>>2];c[i+12>>2]=c[b+12>>2];c[h>>2]=c[d>>2];c[h+4>>2]=c[d+4>>2];c[h+8>>2]=c[d+8>>2];c[h+12>>2]=c[d+12>>2];e=EY(j,i,h)|0;c[j>>2]=c[a>>2];c[j+4>>2]=c[a+4>>2];c[j+8>>2]=c[a+8>>2];c[j+12>>2]=c[a+12>>2];c[i>>2]=c[b>>2];c[i+4>>2]=c[b+4>>2];c[i+8>>2]=c[b+8>>2];c[i+12>>2]=c[b+12>>2];c[h>>2]=c[d>>2];c[h+4>>2]=c[d+4>>2];c[h+8>>2]=c[d+8>>2];c[h+12>>2]=c[d+12>>2];d=(EY(j,i,h)|0)>0;l=g;return (d?e|f:e&f)>>>31^1|0}function PY(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=l;l=l+80|0;k=t+64|0;j=t+48|0;i=t+32|0;m=t+16|0;p=t;q=c[a+4>>2]|0;r=c[a+8>>2]|0;s=c[a+16>>2]|0;n=c[a+20>>2]|0;o=k6((q<<3)+16|0)|0;if((b|0)==-2222){c[k>>2]=c[d>>2];c[k+4>>2]=c[d+4>>2];c[k+8>>2]=c[d+8>>2];c[k+12>>2]=c[d+12>>2];b=QY(a,k)|0}if((b|0)>-1){f=c[a+12>>2]|0;g=c[f+(b+1<<2)>>2]|0;f=c[f+(b<<2)>>2]|0}else{g=q;f=q}b=0;while(1){if((b|0)>=(f|0)){b=f;break}u=r+(b<<4)|0;c[p>>2]=c[u>>2];c[p+4>>2]=c[u+4>>2];c[p+8>>2]=c[u+8>>2];c[p+12>>2]=c[u+12>>2];u=r+(c[n+(b<<2)>>2]<<4)|0;a=r+(c[s+(b<<2)>>2]<<4)|0;c[m>>2]=c[u>>2];c[m+4>>2]=c[u+4>>2];c[m+8>>2]=c[u+8>>2];c[m+12>>2]=c[u+12>>2];c[i>>2]=c[p>>2];c[i+4>>2]=c[p+4>>2];c[i+8>>2]=c[p+8>>2];c[i+12>>2]=c[p+12>>2];c[j>>2]=c[a>>2];c[j+4>>2]=c[a+4>>2];c[j+8>>2]=c[a+8>>2];c[j+12>>2]=c[a+12>>2];c[k>>2]=c[d>>2];c[k+4>>2]=c[d+4>>2];c[k+8>>2]=c[d+8>>2];c[k+12>>2]=c[d+12>>2];a=o+(b<<3)|0;if((OY(m,i,j,k)|0)!=0?(c[j>>2]=c[d>>2],c[j+4>>2]=c[d+4>>2],c[j+8>>2]=c[d+8>>2],c[j+12>>2]=c[d+12>>2],c[k>>2]=c[p>>2],c[k+4>>2]=c[p+4>>2],c[k+8>>2]=c[p+8>>2],c[k+12>>2]=c[p+12>>2],(NY(j,k,f,g,q,r,s)|0)!=0):0){c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];c[k>>2]=c[p>>2];c[k+4>>2]=c[p+4>>2];c[k+8>>2]=c[p+8>>2];c[k+12>>2]=c[p+12>>2];e=+LY(j,k)}else e=0.0;h[a>>3]=e;b=b+1|0}while(1){if((b|0)>=(g|0)){b=g;break}h[o+(b<<3)>>3]=0.0;b=b+1|0}while(1){if((b|0)>=(q|0))break;u=r+(b<<4)|0;c[p>>2]=c[u>>2];c[p+4>>2]=c[u+4>>2];c[p+8>>2]=c[u+8>>2];c[p+12>>2]=c[u+12>>2];u=r+(c[n+(b<<2)>>2]<<4)|0;a=r+(c[s+(b<<2)>>2]<<4)|0;c[m>>2]=c[u>>2];c[m+4>>2]=c[u+4>>2];c[m+8>>2]=c[u+8>>2];c[m+12>>2]=c[u+12>>2];c[i>>2]=c[p>>2];c[i+4>>2]=c[p+4>>2];c[i+8>>2]=c[p+8>>2];c[i+12>>2]=c[p+12>>2];c[j>>2]=c[a>>2];c[j+4>>2]=c[a+4>>2];c[j+8>>2]=c[a+8>>2];c[j+12>>2]=c[a+12>>2];c[k>>2]=c[d>>2];c[k+4>>2]=c[d+4>>2];c[k+8>>2]=c[d+8>>2];c[k+12>>2]=c[d+12>>2];a=o+(b<<3)|0;if((OY(m,i,j,k)|0)!=0?(c[j>>2]=c[d>>2],c[j+4>>2]=c[d+4>>2],c[j+8>>2]=c[d+8>>2],c[j+12>>2]=c[d+12>>2],c[k>>2]=c[p>>2],c[k+4>>2]=c[p+4>>2],c[k+8>>2]=c[p+8>>2],c[k+12>>2]=c[p+12>>2],(NY(j,k,f,g,q,r,s)|0)!=0):0){c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];c[k>>2]=c[p>>2];c[k+4>>2]=c[p+4>>2];c[k+8>>2]=c[p+8>>2];c[k+12>>2]=c[p+12>>2];e=+LY(j,k)}else e=0.0;h[a>>3]=e;b=b+1|0}h[o+(q<<3)>>3]=0.0;h[o+(q+1<<3)>>3]=0.0;l=t;return o|0}function QY(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;m=l;l=l+32|0;f=m;e=m+24|0;h=m+16|0;i=a+8|0;j=a+12|0;k=h+4|0;d=0;while(1){if((d|0)>=(c[a>>2]|0)){d=-1111;break}o=c[j>>2]|0;n=c[o+(d<<2)>>2]|0;c[h>>2]=(c[i>>2]|0)+(n<<4);g=d+1|0;c[k>>2]=(c[o+(g<<2)>>2]|0)-n;c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];if(!(LX(e,f)|0))d=g;else break}l=m;return d|0}function RY(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=l;l=l+64|0;m=t+48|0;k=t+32|0;o=t+16|0;n=t;q=c[f+4>>2]|0;r=c[f+8>>2]|0;p=c[f+16>>2]|0;h=e+1|0;f=f+12|0;g=(e|0)<0;if((b|0)<0)if(g){f=0;e=0;g=0;b=0}else{g=c[f>>2]|0;f=c[g+(h<<2)>>2]|0;e=c[g+(e<<2)>>2]|0;g=0;b=0}else{f=c[f>>2]|0;j=c[f+(b<<2)>>2]|0;i=c[f+(b+1<<2)>>2]|0;if(g){f=i;e=j;g=0;b=0}else{u=(b|0)>(e|0);b=c[f+(e<<2)>>2]|0;g=c[f+(h<<2)>>2]|0;f=u?i:g;e=u?j:b;g=u?g:i;b=u?b:j}}h=0;while(1){if((h|0)>=(b|0)){s=9;break}j=r+(h<<4)|0;u=r+(c[p+(h<<2)>>2]<<4)|0;c[n>>2]=c[a>>2];c[n+4>>2]=c[a+4>>2];c[n+8>>2]=c[a+8>>2];c[n+12>>2]=c[a+12>>2];c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];c[o+8>>2]=c[d+8>>2];c[o+12>>2]=c[d+12>>2];c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];c[m>>2]=c[u>>2];c[m+4>>2]=c[u+4>>2];c[m+8>>2]=c[u+8>>2];c[m+12>>2]=c[u+12>>2];if(!(GY(n,o,k,m)|0))h=h+1|0;else{f=0;break}}a:do if((s|0)==9){while(1){if((g|0)>=(e|0))break;s=r+(g<<4)|0;u=r+(c[p+(g<<2)>>2]<<4)|0;c[n>>2]=c[a>>2];c[n+4>>2]=c[a+4>>2];c[n+8>>2]=c[a+8>>2];c[n+12>>2]=c[a+12>>2];c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];c[o+8>>2]=c[d+8>>2];c[o+12>>2]=c[d+12>>2];c[k>>2]=c[s>>2];c[k+4>>2]=c[s+4>>2];c[k+8>>2]=c[s+8>>2];c[k+12>>2]=c[s+12>>2];c[m>>2]=c[u>>2];c[m+4>>2]=c[u+4>>2];c[m+8>>2]=c[u+8>>2];c[m+12>>2]=c[u+12>>2];if(!(GY(n,o,k,m)|0)){g=g+1|0;s=9}else{f=0;break a}}while(1){if((f|0)>=(q|0)){f=1;break a}s=r+(f<<4)|0;u=r+(c[p+(f<<2)>>2]<<4)|0;c[n>>2]=c[a>>2];c[n+4>>2]=c[a+4>>2];c[n+8>>2]=c[a+8>>2];c[n+12>>2]=c[a+12>>2];c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];c[o+8>>2]=c[d+8>>2];c[o+12>>2]=c[d+12>>2];c[k>>2]=c[s>>2];c[k+4>>2]=c[s+4>>2];c[k+8>>2]=c[s+8>>2];c[k+12>>2]=c[s+12>>2];c[m>>2]=c[u>>2];c[m+4>>2]=c[u+4>>2];c[m+8>>2]=c[u+8>>2];c[m+12>>2]=c[u+12>>2];if(!(GY(n,o,k,m)|0))f=f+1|0;else{f=0;break}}}while(0);l=t;return f|0}function SY(a){a=a|0;return TY(a,0,0)|0}function TY(a,b,c){a=a|0;b=b|0;c=c|0;return UY(a,b,c,0)|0}function UY(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;if(!d){g=k6(500)|0;if(!g)g=0;else{c[g+12>>2]=35;c[g+16>>2]=107;c[g+20>>2]=105;d=35;h=6}}else{g=pb[c[d>>2]&63](500)|0;if(!g)g=0;else{h=c[d>>2]|0;c[g+12>>2]=h;c[g+16>>2]=c[d+4>>2];c[g+20>>2]=c[d+8>>2];d=h;h=6}}do if((h|0)==6){c[g+8>>2]=0;c[g+32>>2]=0;c[g+380>>2]=16;k=g+12|0;j=pb[d&63](256)|0;d=g+392|0;c[d>>2]=j;h=g+20|0;if(!j){db[c[h>>2]&127](g);g=0;break}i=pb[c[k>>2]&63](1024)|0;j=g+44|0;c[j>>2]=i;if(!i){db[c[h>>2]&127](c[d>>2]|0);db[c[h>>2]&127](g);g=0;break}c[g+48>>2]=i+1024;if(!f){f=VY(k)|0;c[g+356>>2]=f;if(!f){db[c[h>>2]&127](c[j>>2]|0);db[c[h>>2]&127](c[d>>2]|0);db[c[h>>2]&127](g);g=0;break}}else c[g+356>>2]=f;c[g+376>>2]=0;c[g+368>>2]=0;c[g+304>>2]=0;c[g+468>>2]=0;c[g+464>>2]=0;c[g+124>>2]=0;c[g+248>>2]=0;d=g+472|0;a[d>>0]=33;h=g+236|0;a[h>>0]=0;a[g+237>>0]=0;c[g+396>>2]=0;c[g+400>>2]=0;a[g+404>>0]=0;WY(g+416|0,k);WY(g+440|0,k);XY(g,b);if(b|0?(c[g+232>>2]|0)==0:0){YY(g);g=0;break}if(!e){c[g+228>>2]=V_()|0;break}else{a[h>>0]=1;c[g+228>>2]=B0()|0;a[d>>0]=a[e>>0]|0;break}}while(0);return g|0}function VY(b){b=b|0;var d=0;d=pb[c[b>>2]&63](188)|0;if(d|0){WY(d+80|0,b);WY(d+104|0,b);VZ(d,b);VZ(d+20|0,b);VZ(d+40|0,b);VZ(d+60|0,b);a[d+131>>0]=0;VZ(d+132|0,b);c[d+152>>2]=0;c[d+156>>2]=0;a[d+160>>0]=0;b=d+164|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;a[d+128>>0]=1;a[d+129>>0]=0;a[d+130>>0]=0}return d|0}function WY(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=b;return}function XY(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;c[d+280>>2]=56;I0(d+256|0);if(!e)e=0;else e=eZ(d+416|0,e)|0;c[d+232>>2]=e;c[d+360>>2]=0;K$(d+148|0,d+144|0,0)|0;c[d>>2]=0;c[d+4>>2]=0;e=d+116|0;g=d+52|0;h=g+64|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(h|0));c[e>>2]=d;c[d+120>>2]=0;e=d+128|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;e=c[d+8>>2]|0;c[d+24>>2]=e;c[d+28>>2]=e;c[d+36>>2]=0;c[d+40>>2]=0;e=d+316|0;g=d+408|0;c[g>>2]=0;c[g+4>>2]=0;g=d+284|0;f=d+308|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;g=e;h=g+36|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(h|0));b[e+36>>1]=0;a[f>>0]=1;c[d+312>>2]=0;c[d+364>>2]=0;c[d+372>>2]=0;c[d+384>>2]=0;c[d+240>>2]=0;c[d+252>>2]=0;c[d+244>>2]=0;c[d+476>>2]=0;c[d+480>>2]=0;a[d+488>>0]=0;a[d+489>>0]=0;c[d+492>>2]=0;c[d+496>>2]=0;return}function YY(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;if(b|0){e=b+368|0;g=b+20|0;d=c[b+364>>2]|0;while(1){if(!d){d=c[e>>2]|0;if(!d)break;c[e>>2]=0}h=c[d>>2]|0;db[c[g>>2]&127](c[d+36>>2]|0);ZY(c[d+44>>2]|0,b);db[c[g>>2]&127](d);d=h}e=b+304|0;d=c[b+300>>2]|0;while(1){if(!d){d=c[e>>2]|0;if(!d)break;c[e>>2]=0}h=c[d+8>>2]|0;db[c[g>>2]&127](d);d=h}d=b+12|0;ZY(c[b+376>>2]|0,b);ZY(c[b+372>>2]|0,b);_Y(b+416|0);_Y(b+440|0);if((a[b+488>>0]|0)==0?(f=c[b+356>>2]|0,f|0):0)$Y(f,(c[b+476>>2]|0)==0&1,d);db[c[g>>2]&127](c[b+392>>2]|0);db[c[g>>2]&127](c[b+464>>2]|0);db[c[g>>2]&127](c[b+8>>2]|0);db[c[g>>2]&127](c[b+44>>2]|0);db[c[g>>2]&127](c[b+396>>2]|0);db[c[g>>2]&127](c[b+240>>2]|0);d=c[b+252>>2]|0;if(d|0)db[d&127](c[b+244>>2]|0);db[c[g>>2]&127](b)}return}function ZY(a,b){a=a|0;b=b|0;var d=0;b=b+20|0;while(1){if(!a)break;d=c[a+4>>2]|0;db[c[b>>2]&127](c[a+16>>2]|0);db[c[b>>2]&127](a);a=d}return}function _Y(a){a=a|0;var b=0,d=0,e=0;d=a+20|0;b=c[a>>2]|0;while(1){if(!b)break;e=c[b>>2]|0;db[c[(c[d>>2]|0)+8>>2]&127](b);b=e}b=c[a+4>>2]|0;while(1){if(!b)break;e=c[b>>2]|0;db[c[(c[d>>2]|0)+8>>2]&127](b);b=e}return}function $Y(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+16|0;f=h;g=a+20|0;aZ(f,g);d=d+8|0;while(1){e=bZ(f)|0;if(!e)break;if(!(c[e+16>>2]|0))continue;db[c[d>>2]&127](c[e+20>>2]|0)}cZ(a);cZ(a+132|0);cZ(g);cZ(a+40|0);cZ(a+60|0);_Y(a+80|0);_Y(a+104|0);if(b<<24>>24){db[c[d>>2]&127](c[a+184>>2]|0);db[c[d>>2]&127](c[a+164>>2]|0)}db[c[d>>2]&127](a);l=h;return}function aZ(a,b){a=a|0;b=b|0;var d=0;d=c[b>>2]|0;c[a>>2]=d;c[a+4>>2]=d+(c[b+8>>2]<<2);return}function bZ(a){a=a|0;var b=0,d=0,e=0;d=c[a+4>>2]|0;e=c[a>>2]|0;do{if((e|0)==(d|0)){b=0;break}b=e;e=e+4|0;c[a>>2]=e;b=c[b>>2]|0}while(!(b|0));return b|0}function cZ(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=a+8|0;e=a+16|0;b=0;while(1){f=c[(c[e>>2]|0)+8>>2]|0;g=c[a>>2]|0;if(b>>>0>=(c[d>>2]|0)>>>0)break;db[f&127](c[g+(b<<2)>>2]|0);b=b+1|0}db[f&127](g);return}function dZ(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=gZ(a)|0;if(!f){c[a+280>>2]=57;f=hZ(a,b,d,e)|0}return f|0}function eZ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;f=b+12|0;g=b+8|0;while(1){e=c[f>>2]|0;if((e|0)==(c[g>>2]|0)){if(!((fZ(b)|0)<<24>>24)){d=0;break}e=c[f>>2]|0}i=a[d>>0]|0;c[f>>2]=e+1;a[e>>0]=i;if(!(a[d>>0]|0)){h=6;break}else d=d+1|0}if((h|0)==6){i=b+16|0;d=c[i>>2]|0;c[i>>2]=c[f>>2]}return d|0}function fZ(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=a+4|0;f=c[b>>2]|0;i=a+16|0;j=a+12|0;k=a+8|0;do if(f){g=c[i>>2]|0;if(!g){c[a>>2]=f;c[b>>2]=c[f>>2];c[f>>2]=0;b=f+8|0;c[i>>2]=b;c[k>>2]=(c[f+4>>2]|0)+(f+8);c[j>>2]=b;b=1;break}d=c[k>>2]|0;e=d-g|0;if((e|0)<(c[f+4>>2]|0)){d=c[f>>2]|0;c[f>>2]=c[a>>2];c[a>>2]=f;c[b>>2]=d;B6(f+8|0,g|0,e|0)|0;b=c[a>>2]|0;c[j>>2]=(c[j>>2]|0)-(c[i>>2]|0)+(b+8);c[i>>2]=b+8;c[k>>2]=(c[b+4>>2]|0)+(b+8);b=1}else h=7}else{d=c[k>>2]|0;h=7}while(0);a:do if((h|0)==7){e=c[a>>2]|0;f=a+20|0;do if(!e){h=i;b=c[i>>2]|0}else{h=c[i>>2]|0;b=h;if((h|0)!=(e+8|0)){h=i;break}d=d-b<<1;b=vb[c[(c[f>>2]|0)+4>>2]&127](e,d+8|0)|0;if(!b){b=0;break a}c[a>>2]=b;c[b+4>>2]=d;c[j>>2]=(c[j>>2]|0)-(c[i>>2]|0)+(b+8);c[i>>2]=b+8;c[k>>2]=b+8+d;b=1;break a}while(0);g=d-b|0;g=(g|0)<1024?1024:g<<1;b=pb[c[c[f>>2]>>2]&63](g+8|0)|0;if(!b)b=0;else{c[b+4>>2]=g;c[b>>2]=c[a>>2];c[a>>2]=b;a=c[j>>2]|0;e=c[i>>2]|0;f=b+8|0;d=a;b=e;if((a|0)!=(e|0)){B6(f|0,e|0,d-b|0)|0;d=c[j>>2]|0;b=c[h>>2]|0}c[j>>2]=f+(d-b);c[i>>2]=f;c[k>>2]=f+g;b=1}}while(0);return b|0}function gZ(b){b=b|0;var d=0;d=b+232|0;if(!(eb[(a[b+236>>0]<<24>>24?40:41)&63](b+148|0,b+144|0,c[d>>2]|0)|0))b=UZ(b,c[d>>2]|0)|0;else b=0;return b|0}function hZ(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;g=l;l=l+16|0;h=g;c[h>>2]=d;j=b+144|0;i=c[j>>2]|0;i=tb[c[i>>2]&127](i,d,e,h)|0;f=iZ(b,c[j>>2]|0,d,e,i,c[h>>2]|0,f,(a[b+484>>0]|0)==0&1)|0;l=g;return f|0}function iZ(b,e,f,g,h,i,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0;Ha=l;l=l+16|0;wa=Ha;c[wa>>2]=i;s=c[b+356>>2]|0;t=b+144|0;u=b+300|0;if((c[t>>2]|0)==(e|0)){q=b+288|0;r=b+292|0}else{r=c[u>>2]|0;q=r;r=r+4|0}v=b+256|0;w=k<<24>>24!=0;x=b+328|0;y=b+344|0;z=b+136|0;A=b+353|0;xa=b+116|0;oa=b+489|0;ya=b+4|0;B=s+80|0;C=b+340|0;D=b+348|0;E=b+316|0;F=s+168|0;G=s+164|0;za=s+130|0;H=b+352|0;I=b+260|0;J=s+184|0;K=b+476|0;sa=b+492|0;L=s+96|0;M=b+332|0;N=s+160|0;O=b+324|0;P=b+128|0;Q=b+96|0;R=b+464|0;S=s+180|0;Aa=b+108|0;Ba=s+131|0;T=b+132|0;U=b+336|0;Ca=s+129|0;Da=b+360|0;V=b+416|0;W=b+80|0;ta=s+132|0;X=b+320|0;Ea=b+112|0;Y=s+128|0;Z=b+84|0;_=b+428|0;$=b+424|0;aa=s+92|0;ba=b+12|0;ca=b+432|0;da=b+480|0;ea=b+88|0;fa=s+120|0;ga=s+116|0;ha=b+92|0;ia=b+468|0;ja=b+16|0;ka=b+272|0;la=b+120|0;ma=s+176|0;p=e;o=f;e=h;a:while(1){c[q>>2]=o;f=c[wa>>2]|0;c[r>>2]=f;i=f;b:do if((e|0)<1){if(w&(e|0)!=0){n=7;break a}h=0-e|0;switch(e|0){case -1:{i=5;n=278;break a}case 0:{n=9;break a}case -2:{i=6;break a}case -4:{n=10;break a}case -15:{e=h;break b}default:{}}c[wa>>2]=g;e=h;i=g}while(0);m=wb[c[v>>2]&63](v,e,o,i,p)|0;i=p+56|0;f=p+68|0;c:do switch(m|0){case 2:{n=58;break a}case -1:{n=184;break a}case 1:{i=jZ(b,0,o,c[wa>>2]|0)|0;if(i|0){n=278;break a}i=c[t>>2]|0;break}case 4:{if(!(c[Z>>2]|0))i=1;else{n=kZ(V,p,o,c[wa>>2]|0)|0;c[X>>2]=n;if(!n){i=1;n=278;break a}c[ca>>2]=c[_>>2];c[x>>2]=0;i=0}c[O>>2]=0;n=272;break}case 7:{i=c[Z>>2]|0;if(!i)n=273;else{fb[i&31](c[ya>>2]|0,c[X>>2]|0,c[O>>2]|0,c[x>>2]|0,1);c[X>>2]=0;lZ(V);i=p}break}case 57:{i=jZ(b,1,o,c[wa>>2]|0)|0;if(i|0){n=278;break a}i=c[t>>2]|0;break}case 6:{a[oa>>0]=0;n=mZ(b,ta,75667,36)|0;c[E>>2]=n;if(!n){i=1;n=278;break a}a[Ca>>0]=1;if(!(c[Z>>2]|0))n=33;else{if(!(tb[c[i>>2]&127](p,o,c[wa>>2]|0,q)|0)){i=32;n=278;break a}i=c[f>>2]|0;i=kZ(V,p,o+i|0,(c[wa>>2]|0)+(0-i)|0)|0;if(!i){i=1;n=278;break a}nZ(i);c[ca>>2]=c[_>>2];c[x>>2]=i;i=0;n=34}break}case 14:{n=33;break}case 8:{i=c[X>>2]|0;if(!i)i=1;else{fb[c[Z>>2]&31](c[ya>>2]|0,i,c[O>>2]|0,c[x>>2]|0,0);lZ(V);i=0}if(!((c[O>>2]|0)==0?!(a[oa>>0]|0):0)){f=a[Ca>>0]|0;a[Ca>>0]=1;do if(c[sa>>2]|0?c[Ea>>2]|0:0){h=mZ(b,ta,75667,36)|0;if(!h){i=1;n=278;break a}e=h+20|0;if(!(a[oa>>0]|0))e=c[e>>2]|0;else{m=c[Da>>2]|0;c[e>>2]=m;e=m}a[Ba>>0]=0;if(!(wb[c[Ea>>2]&63](c[xa>>2]|0,0,e,c[h+16>>2]|0,c[h+24>>2]|0)|0)){i=21;n=278;break a}if(!(a[Ba>>0]|0)){if(c[O>>2]|0)break;a[Ca>>0]=f;break}if(((a[za>>0]|0)==0?(na=c[Aa>>2]|0,na|0):0)?(pb[na&63](c[ya>>2]|0)|0)==0:0){i=22;n=278;break a}}while(0);a[oa>>0]=0}e=c[ea>>2]|0;if(!e)n=272;else{db[e&127](c[ya>>2]|0);i=p}break}case 34:{n=pZ(b,p,o,c[wa>>2]|0)|0;c[y>>2]=n;if(!n){i=1;n=278;break a}else n=80;break}case 22:{n=qZ(b,p,o,c[wa>>2]|0)|0;c[D>>2]=n;if(!n){i=1;n=278;break a}a[H>>0]=0;c[M>>2]=0;a[A>>0]=0;n=80;break}case 23:{a[H>>0]=1;c[M>>2]=142491;n=80;break}case 24:{a[A>>0]=1;c[M>>2]=142497;n=80;break}case 25:{c[M>>2]=142500;n=80;break}case 26:{c[M>>2]=142506;n=80;break}case 27:{c[M>>2]=142513;n=80;break}case 28:{c[M>>2]=142520;n=80;break}case 29:{c[M>>2]=142529;n=80;break}case 30:{c[M>>2]=142537;n=80;break}case 32:case 31:{if((a[Y>>0]|0)!=0?(c[T>>2]|0)!=0:0){if(!(rZ(V,(c[M>>2]|0)==0?((m|0)==32?142546:142556):142558)|0)){i=1;n=278;break a}if(!(sZ(V,p,o,c[wa>>2]|0)|0)){i=1;n=278;break a}c[M>>2]=c[ca>>2];i=p}else n=273;break}case 36:case 35:{if(a[Y>>0]|0){if(!(tZ(c[y>>2]|0,c[D>>2]|0,a[H>>0]|0,a[A>>0]|0,0,b)|0)){i=1;n=278;break a}if((c[T>>2]|0)!=0?(pa=c[M>>2]|0,(pa|0)!=0):0){switch(a[pa>>0]|0){case 40:{n=93;break}case 78:{if((a[pa+1>>0]|0)==79)n=93;break}default:{}}if((n|0)==93){n=0;i=c[_>>2]|0;if((i|0)==(c[$>>2]|0)){if(!((fZ(V)|0)<<24>>24)){i=1;n=278;break a}i=c[_>>2]|0}c[_>>2]=i+1;a[i>>0]=41;i=c[_>>2]|0;if((i|0)==(c[$>>2]|0)){if(!((fZ(V)|0)<<24>>24)){i=1;n=278;break a}i=c[_>>2]|0}c[_>>2]=i+1;a[i>>0]=0;c[M>>2]=c[ca>>2];c[ca>>2]=c[_>>2]}c[r>>2]=o;ub[c[T>>2]&15](c[ya>>2]|0,c[c[y>>2]>>2]|0,c[c[D>>2]>>2]|0,c[M>>2]|0,0,(m|0)==36&1);lZ(V);i=p}else n=273}else n=273;break}case 38:case 37:{if(a[Y>>0]|0){i=c[f>>2]|0;i=uZ(b,p,a[H>>0]|0,o+i|0,(c[wa>>2]|0)+(0-i)|0,B)|0;if(i|0){n=278;break a}e=c[L>>2]|0;c[L>>2]=c[aa>>2];if(!(tZ(c[y>>2]|0,c[D>>2]|0,a[H>>0]|0,0,e,b)|0)){i=1;n=278;break a}if((c[T>>2]|0)!=0?(qa=c[M>>2]|0,(qa|0)!=0):0){switch(a[qa>>0]|0){case 40:{n=108;break}case 78:{if((a[qa+1>>0]|0)==79)n=108;break}default:{}}if((n|0)==108){n=0;i=c[_>>2]|0;if((i|0)==(c[$>>2]|0)){if(!((fZ(V)|0)<<24>>24)){i=1;n=278;break a}i=c[_>>2]|0}c[_>>2]=i+1;a[i>>0]=41;i=c[_>>2]|0;if((i|0)==(c[$>>2]|0)){if(!((fZ(V)|0)<<24>>24)){i=1;n=278;break a}i=c[_>>2]|0}c[_>>2]=i+1;a[i>>0]=0;c[M>>2]=c[ca>>2];c[ca>>2]=c[_>>2]}c[r>>2]=o;ub[c[T>>2]&15](c[ya>>2]|0,c[c[y>>2]>>2]|0,c[c[D>>2]>>2]|0,c[M>>2]|0,e,(m|0)==38&1);lZ(V);i=p}else n=273}else n=273;break}case 12:{if(a[Y>>0]|0){i=c[f>>2]|0;i=vZ(b,p,o+i|0,(c[wa>>2]|0)+(0-i)|0)|0;e=c[E>>2]|0;f=c[fa>>2]|0;if(e){c[e+4>>2]=f;n=c[ga>>2]|0;c[e+8>>2]=n-f;c[fa>>2]=n;if(!(c[z>>2]|0))e=1;else{c[r>>2]=o;e=c[E>>2]|0;ob[c[z>>2]&0](c[ya>>2]|0,c[e>>2]|0,d[e+33>>0]|0,c[e+4>>2]|0,c[e+8>>2]|0,c[Da>>2]|0,0,0,0);e=0}}else{c[ga>>2]=f;e=1}if(!i){i=e;n=272}else{n=278;break a}}else n=273;break}case 5:{a[oa>>0]=0;a[Ca>>0]=1;if(!(c[Z>>2]|0)){c[O>>2]=75667;i=1}else{n=c[f>>2]|0;n=kZ(V,p,o+n|0,(c[wa>>2]|0)+(0-n)|0)|0;c[O>>2]=n;if(!n){i=1;n=278;break a}c[ca>>2]=c[_>>2];i=0}if((((a[za>>0]|0)==0?(c[sa>>2]|0)==0:0)?(ra=c[Aa>>2]|0,ra|0):0)?(pb[ra&63](c[ya>>2]|0)|0)==0:0){i=22;n=278;break a}if(!(c[E>>2]|0)){e=mZ(b,ta,75667,36)|0;c[E>>2]=e;if(!e){i=1;n=278;break a}c[e+24>>2]=0;n=133}else n=133;break}case 13:{i=1;n=133;break}case 15:{if(((a[Y>>0]|0)!=0?(c[E>>2]|0)!=0:0)?(c[z>>2]|0)!=0:0){c[r>>2]=o;i=c[E>>2]|0;ob[c[z>>2]&0](c[ya>>2]|0,c[i>>2]|0,d[i+33>>0]|0,0,0,c[i+20>>2]|0,c[i+16>>2]|0,c[i+24>>2]|0,0);i=p}else n=273;break}case 16:{if((a[Y>>0]|0)!=0?(c[E>>2]|0)!=0:0){m=kZ(B,p,o,c[wa>>2]|0)|0;c[(c[E>>2]|0)+28>>2]=m;if(!m){i=1;n=278;break a}c[L>>2]=c[aa>>2];if(c[ha>>2]|0){c[r>>2]=o;i=c[E>>2]|0;ub[c[ha>>2]&15](c[ya>>2]|0,c[i>>2]|0,c[i+20>>2]|0,c[i+16>>2]|0,c[i+24>>2]|0,c[i+28>>2]|0);i=p;break c}if(c[z>>2]|0){c[r>>2]=o;i=c[E>>2]|0;ob[c[z>>2]&0](c[ya>>2]|0,c[i>>2]|0,0,0,0,c[i+20>>2]|0,c[i+16>>2]|0,c[i+24>>2]|0,c[i+28>>2]|0);i=p}else n=273}else n=273;break}case 9:{if(eb[c[p+48>>2]&63](p,o,c[wa>>2]|0)|0){c[E>>2]=0;n=273;break c}if(!(a[Y>>0]|0)){c[aa>>2]=c[L>>2];c[E>>2]=0;n=273;break c}i=kZ(B,p,o,c[wa>>2]|0)|0;if(!i){i=1;n=278;break a}e=mZ(b,s,i,36)|0;c[E>>2]=e;if(!e){i=1;n=278;break a}if((c[e>>2]|0)!=(i|0)){c[aa>>2]=c[L>>2];c[E>>2]=0;n=273;break c}c[L>>2]=c[aa>>2];c[e+24>>2]=0;a[e+33>>0]=0;if(!(c[K>>2]|0))i=(c[u>>2]|0)!=0;else i=1;a[e+34>>0]=(i^1)&1;if(!(c[z>>2]|0))n=273;else i=p;break}case 10:{if(!(a[Y>>0]|0)){c[aa>>2]=c[L>>2];c[E>>2]=0;n=273;break c}i=kZ(B,p,o,c[wa>>2]|0)|0;if(!i){i=1;n=278;break a}e=mZ(b,ta,i,36)|0;c[E>>2]=e;if(!e){i=1;n=278;break a}if((c[e>>2]|0)!=(i|0)){c[aa>>2]=c[L>>2];c[E>>2]=0;n=273;break c}c[L>>2]=c[aa>>2];c[e+24>>2]=0;a[e+33>>0]=1;if(!(c[K>>2]|0))i=(c[u>>2]|0)!=0;else i=1;a[e+34>>0]=(i^1)&1;if(!(c[z>>2]|0))n=273;else i=p;break}case 18:{c[C>>2]=0;c[U>>2]=0;if(!(c[Q>>2]|0))n=273;else{o=kZ(V,p,o,c[wa>>2]|0)|0;c[U>>2]=o;if(!o){i=1;n=278;break a}c[ca>>2]=c[_>>2];i=p}break}case 21:{if(!(tb[c[i>>2]&127](p,o,c[wa>>2]|0,q)|0)){i=32;n=278;break a}if(!(c[U>>2]|0))n=273;else{i=c[f>>2]|0;i=kZ(V,p,o+i|0,(c[wa>>2]|0)+(0-i)|0)|0;if(!i){i=1;n=278;break a}nZ(i);c[C>>2]=i;c[ca>>2]=c[_>>2];i=p}break}case 19:{if((c[U>>2]|0)!=0?(c[Q>>2]|0)!=0:0){i=c[f>>2]|0;i=kZ(V,p,o+i|0,(c[wa>>2]|0)+(0-i)|0)|0;if(!i){i=1;n=278;break a}c[r>>2]=o;fb[c[Q>>2]&31](c[ya>>2]|0,c[U>>2]|0,c[Da>>2]|0,i,c[C>>2]|0);i=0}else i=1;lZ(V);n=272;break}case 20:{if((c[C>>2]|0)!=0?(c[Q>>2]|0)!=0:0){c[r>>2]=o;fb[c[Q>>2]&31](c[ya>>2]|0,c[U>>2]|0,c[Da>>2]|0,0,c[C>>2]|0);i=0}else i=1;lZ(V);n=272;break}case 58:{if(c[W>>2]|0)wZ(b,p,o,c[wa>>2]|0);i=xZ(b,p,wa,g,j,k)|0;if(i|0){n=278;break a}if(!(c[wa>>2]|0)){n=189;break a}else i=p;break}case 44:{i=c[ia>>2]|0;do if((c[I>>2]|0)>>>0>=i>>>0){if(!i){m=c[ba>>2]|0;c[ia>>2]=32;m=pb[m&63](32)|0;c[R>>2]=m;if(!m){i=1;n=278;break a}else break}h=c[ja>>2]|0;m=c[R>>2]|0;i=i<<1;c[ia>>2]=i;i=vb[h&127](m,i)|0;if(!i){i=1;n=278;break a}c[R>>2]=i;i=c[J>>2]|0;if(i|0){i=vb[c[ja>>2]&127](i,c[ia>>2]<<2)|0;if(!i){i=1;n=278;break a}c[J>>2]=i}}while(0);a[(c[R>>2]|0)+(c[I>>2]|0)>>0]=0;if(a[N>>0]|0){i=zZ(b)|0;if((i|0)<0){i=1;n=278;break a}c[(c[J>>2]|0)+(c[S>>2]<<2)>>2]=i;c[S>>2]=(c[S>>2]|0)+1;c[(c[G>>2]|0)+(i*28|0)>>2]=6;if(c[P>>2]|0)i=p;else n=273}else n=273;break}case 50:{i=(c[R>>2]|0)+(c[I>>2]|0)|0;if((a[i>>0]|0)==124){i=2;n=278;break a}a[i>>0]=44;if((a[N>>0]|0)!=0?(c[P>>2]|0)!=0:0)i=p;else n=273;break}case 49:{e=(c[R>>2]|0)+(c[I>>2]|0)|0;i=a[e>>0]|0;if(i<<24>>24==44){i=2;n=278;break a}if(i<<24>>24==0&(a[N>>0]|0)!=0?(ua=(c[G>>2]|0)+((c[(c[J>>2]|0)+((c[S>>2]|0)+-1<<2)>>2]|0)*28|0)|0,(c[ua>>2]|0)!=3):0){c[ua>>2]=5;i=(c[P>>2]|0)==0&1}else i=1;a[e>>0]=124;n=272;break}case 59:case 60:{a[Ca>>0]=1;if(c[sa>>2]|0){e=c[f>>2]|0;e=kZ(B,p,o+e|0,(c[wa>>2]|0)+(0-e)|0)|0;if(!e){i=1;n=278;break a}h=mZ(b,ta,e,0)|0;c[aa>>2]=c[L>>2];i=(h|0)!=0;f=(m|0)==60;do if(c[ka>>2]|0){if(!(a[za>>0]|0)){if(a[Ca>>0]|0){n=217;break}}else if(c[u>>2]|0){n=217;break}if(!i){i=11;n=278;break a}if(!(a[h+34>>0]|0)){i=24;n=278;break a}}else n=217;while(0);if((n|0)==217?(n=0,!i):0){a[Y>>0]=a[za>>0]|0;if(!f){n=273;break c}i=c[la>>2]|0;if(!i){n=273;break c}rb[i&127](c[ya>>2]|0,e,1);i=p;break c}e=h+32|0;if(a[e>>0]|0){i=12;n=278;break a}if(c[h+4>>2]|0){i=AZ(b,h,f&1)|0;e=(i|0)==0;if(e){i=(e^1)&1;n=272;break c}else{n=278;break a}}i=c[Ea>>2]|0;if(!i){a[Y>>0]=a[za>>0]|0;n=273;break c}a[Ba>>0]=0;a[e>>0]=1;m=(wb[i&63](c[xa>>2]|0,0,c[h+20>>2]|0,c[h+16>>2]|0,c[h+24>>2]|0)|0)==0;a[e>>0]=0;if(m){i=21;n=278;break a}e=a[za>>0]|0;if(!(a[Ba>>0]|0)){a[Y>>0]=e;i=p;break c}else i=0}else{e=a[za>>0]|0;a[Y>>0]=e;i=1}if((e<<24>>24==0?(va=c[Aa>>2]|0,(va|0)!=0):0)?(pb[va&63](c[ya>>2]|0)|0)==0:0){i=22;n=278;break a}else n=272;break}case 40:{if(!(c[P>>2]|0))n=273;else{o=pZ(b,p,o,c[wa>>2]|0)|0;c[y>>2]=o;if(!o){i=1;n=278;break a}c[S>>2]=0;c[ma>>2]=0;a[N>>0]=1;i=p}break}case 42:case 41:{if(!(a[N>>0]|0))n=273;else{if(!(c[P>>2]|0))i=1;else{i=pb[c[ba>>2]&63](20)|0;if(!i){i=1;n=278;break a}n=i+4|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[i>>2]=(m|0)==41?2:1;c[r>>2]=o;rb[c[P>>2]&127](c[ya>>2]|0,c[c[y>>2]>>2]|0,i);i=0}a[N>>0]=0;n=272}break}case 43:{if((a[N>>0]|0)!=0?(c[(c[G>>2]|0)+((c[(c[J>>2]|0)+((c[S>>2]|0)+-1<<2)>>2]|0)*28|0)>>2]=3,(c[P>>2]|0)!=0):0)i=p;else n=273;break}case 51:{e=0;n=245;break}case 53:{e=1;n=245;break}case 52:{e=2;n=245;break}case 54:{e=3;n=245;break}case 45:{f=0;n=256;break}case 47:{f=1;n=256;break}case 46:{f=2;n=256;break}case 48:{f=3;n=256;break}case 55:{if(!(CZ(b,p,o,c[wa>>2]|0)|0)){i=1;n=278;break a}else i=p;break}case 56:{if(!(DZ(b,p,o,c[wa>>2]|0)|0)){i=1;n=278;break a}else i=p;break}case 0:{if((e|0)==14)i=p;else n=273;break}case 3:{if(!(c[Z>>2]|0))n=273;else i=p;break}case 11:{if((a[Y>>0]|0)!=0?(c[z>>2]|0)!=0:0)i=p;else n=273;break}case 17:{if(!(c[Q>>2]|0))n=273;else i=p;break}case 33:{if((a[Y>>0]|0)!=0?(c[T>>2]|0)!=0:0)i=p;else n=273;break}case 39:{if(!(c[P>>2]|0))n=273;else i=p;break}default:n=273}while(0);if((n|0)==33)if(!(tb[c[i>>2]&127](p,o,c[wa>>2]|0,q)|0)){i=32;n=278;break}else{i=1;n=34}else if((n|0)==80){n=0;if((a[Y>>0]|0)!=0?(c[T>>2]|0)!=0:0)i=p;else n=273}else if((n|0)==133){n=0;if((a[Y>>0]|0)!=0?(c[E>>2]|0)!=0:0){m=c[f>>2]|0;m=kZ(B,p,o+m|0,(c[wa>>2]|0)+(0-m)|0)|0;e=c[E>>2]|0;c[e+16>>2]=m;if(!m){i=1;n=278;break}c[e+20>>2]=c[Da>>2];c[L>>2]=c[aa>>2];if(c[z>>2]|0)i=p;else n=272}else n=272}else if((n|0)==245){n=0;if(a[N>>0]|0){i=c[wa>>2]|0;if(e)i=i+(0-(c[f>>2]|0))|0;f=zZ(b)|0;if((f|0)<0){i=1;n=278;break}m=c[G>>2]|0;c[m+(f*28|0)>>2]=4;c[m+(f*28|0)+4>>2]=e;i=pZ(b,p,o,i)|0;if(!i){i=1;n=278;break}e=c[i>>2]|0;c[(c[G>>2]|0)+(f*28|0)+8>>2]=e;i=0;do{m=i;i=i+1|0}while((a[e+m>>0]|0)!=0);c[F>>2]=(c[F>>2]|0)+i;if(c[P>>2]|0)i=p;else n=273}else n=273}else if((n|0)==256)if(a[N>>0]|0){e=(c[P>>2]|0)==0;i=e&1;n=(c[S>>2]|0)+-1|0;c[S>>2]=n;c[(c[G>>2]|0)+((c[(c[J>>2]|0)+(n<<2)>>2]|0)*28|0)+4>>2]=f;if(!n){if(!e){e=BZ(b)|0;if(!e){i=1;n=278;break}c[r>>2]=o;rb[c[P>>2]&127](c[ya>>2]|0,c[c[y>>2]>>2]|0,e)}a[N>>0]=0;c[F>>2]=0;n=272}else n=272}else n=273;if((n|0)==34){n=0;if((a[Y>>0]|0)!=0?(c[E>>2]|0)!=0:0){e=c[f>>2]|0;e=kZ(B,p,o+e|0,(c[wa>>2]|0)+(0-e)|0)|0;if(!e){i=1;n=278;break}nZ(e);c[(c[E>>2]|0)+24>>2]=e;c[L>>2]=c[aa>>2];if(c[z>>2]|0)i=p;else n=272}else n=272}if((n|0)==272){n=0;if(!(i<<24>>24))i=p;else n=273}if((n|0)==273){n=0;if(!(c[W>>2]|0))i=p;else{wZ(b,p,o,c[wa>>2]|0);i=p}}switch(c[da>>2]|0){case 3:{n=276;break a}case 2:{i=35;n=278;break a}default:{}}e=c[wa>>2]|0;p=i;o=e;e=tb[c[i>>2]&127](i,e,g,wa)|0}d:do if((n|0)==7){c[j>>2]=o;i=0}else if((n|0)==9){c[q>>2]=f;i=4}else if((n|0)==10){if((p|0)==(c[t>>2]|0)){if(!(a[b+488>>0]|0)){i=3;break}}else if(!(a[(c[u>>2]|0)+20>>0]|0)){c[j>>2]=o;i=0;break}if((wb[c[v>>2]&63](v,-4,g,g,p)|0)==-1)i=29;else{c[j>>2]=o;i=0}}else if((n|0)==58){e=b+280|0;do if((a[oa>>0]|0?(Fa=a[Ca>>0]|0,a[Ca>>0]=1,c[sa>>2]|0):0)?c[Ea>>2]|0:0){i=mZ(b,ta,75667,36)|0;if(!i){i=1;break d}Da=c[Da>>2]|0;c[i+20>>2]=Da;a[Ba>>0]=0;if(!(wb[c[Ea>>2]&63](c[xa>>2]|0,0,Da,c[i+16>>2]|0,c[i+24>>2]|0)|0)){i=21;break d}if(!(a[Ba>>0]|0)){a[Ca>>0]=Fa;break}if(((a[za>>0]|0)==0?(Ga=c[Aa>>2]|0,Ga|0):0)?(pb[Ga&63](c[ya>>2]|0)|0)==0:0){i=22;break d}}while(0);c[e>>2]=58;i=oZ(b,o,g,j)|0}else if((n|0)==184)i=(e|0)==28?10:(e|0)==12?17:2;else if((n|0)==189){c[b+280>>2]=59;i=0}else if((n|0)==276){c[j>>2]=c[wa>>2];i=0}while(0);l=Ha;return i|0}function jZ(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+32|0;q=r+16|0;m=r+12|0;i=r+8|0;j=r+4|0;k=r;c[q>>2]=0;c[m>>2]=0;c[i>>2]=0;c[k>>2]=-1;n=b+144|0;p=b+288|0;g=(d|0)!=0;a:do if(jb[(a[b+236>>0]<<24>>24?1:2)&3](d,c[n>>2]|0,e,f,p,i,j,q,m,k)|0){if((c[k>>2]|0)==1&(g^1)?(a[(c[b+356>>2]|0)+130>>0]=1,h=b+492|0,(c[h>>2]|0)==1):0)c[h>>2]=0;h=b+140|0;o=b+440|0;if(!(c[h>>2]|0))if(!(c[b+80>>2]|0)){e=0;d=0}else{wZ(b,c[n>>2]|0,e,f);e=0;d=0}else{d=c[q>>2]|0;if(!d)d=0;else{f=c[n>>2]|0;d=kZ(o,f,d,d+(vb[c[f+32>>2]&127](f,d)|0)|0)|0;if(!d){d=1;break}c[b+456>>2]=c[b+452>>2]}g=c[i>>2]|0;if(g){i=c[n>>2]|0;g=kZ(o,i,g,(c[j>>2]|0)+(0-(c[i+68>>2]|0))|0)|0;if(!g){d=1;break}}else g=0;xb[c[h>>2]&31](c[b+4>>2]|0,g,d,c[k>>2]|0);e=g}h=(d|0)!=0;do if(!(c[b+232>>2]|0)){g=c[m>>2]|0;if(g|0)if((c[g+68>>2]|0)==(c[(c[n>>2]|0)+68>>2]|0)){c[n>>2]=g;break}else{c[p>>2]=c[q>>2];d=19;break a}g=c[q>>2]|0;if(g|0){if(!h){d=c[n>>2]|0;d=kZ(o,d,g,g+(vb[c[d+32>>2]&127](d,g)|0)|0)|0;if(!d){d=1;break a}}d=UZ(b,d)|0;lZ(o);if((d|0)!=18)break a;c[p>>2]=c[q>>2];d=18;break a}}while(0);if(h|(e|0)!=0){lZ(o);d=0}else d=0}else d=g?31:30;while(0);l=r;return d|0}function kZ(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;do if(!(sZ(b,d,e,f)|0))d=0;else{e=b+12|0;d=c[e>>2]|0;if((d|0)==(c[b+8>>2]|0)){if(!((fZ(b)|0)<<24>>24)){d=0;break}d=c[e>>2]|0}c[e>>2]=d+1;a[d>>0]=0;d=c[b+16>>2]|0}while(0);return d|0}function lZ(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;e=a+4|0;b=c[e>>2]|0;d=c[a>>2]|0;a:do if(!b)c[e>>2]=d;else while(1){if(!d)break a;g=c[d>>2]|0;c[d>>2]=b;c[e>>2]=d;f=d;d=g;b=f}while(0);c[a>>2]=0;c[a+16>>2]=0;c[a+12>>2]=0;c[a+8>>2]=0;return}function mZ(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;x=e+8|0;n=c[x>>2]|0;z=e+12|0;v=e+4|0;o=(g|0)!=0;y=e+16|0;a:do if(!n)if(o){a[v>>0]=6;c[x>>2]=64;h=pb[c[c[y>>2]>>2]&63](256)|0;c[e>>2]=h;if(!h){c[x>>2]=0;h=0;break}else{u6(h|0,0,256)|0;i=SZ(b,f)|0;i=(c[x>>2]|0)+-1&i;p=26;break}}else h=0;else{w=SZ(b,f)|0;i=n+-1|0;k=c[e>>2]|0;l=w&0-n;m=i>>>2;j=0;i=w&i;while(1){h=c[k+(i<<2)>>2]|0;if(!h)break;if((TZ(f,c[h>>2]|0)|0)<<24>>24)break a;if(!(j<<24>>24))h=(l>>>((d[v>>0]|0)+-1|0)&m|1)&255;else h=j;u=h&255;j=h;i=i-u+(i>>>0<u>>>0?n:0)|0}if(o){h=d[v>>0]|0;if((c[z>>2]|0)>>>(h+-1|0)){i=h+1|0;r=i&255;i=i&255;t=1<<i;s=t+-1|0;h=t<<2;u=pb[c[c[y>>2]>>2]&63](h)|0;if(!u)h=0;else{u6(u|0,0,h|0)|0;p=0-t|0;q=s>>>2;n=i+-1|0;m=c[x>>2]|0;l=0;while(1){if(l>>>0>=m>>>0)break;h=c[(c[e>>2]|0)+(l<<2)>>2]|0;o=h;if(h|0){h=SZ(b,c[h>>2]|0)|0;j=((h&p)>>>n&q|1)&255;h=h&s;i=0;while(1){k=u+(h<<2)|0;if(!(c[k>>2]|0))break;k=i<<24>>24==0?j:i;A=k&255;h=h+(h>>>0<A>>>0?t:0)-A|0;i=k}c[k>>2]=o}l=l+1|0}db[c[(c[y>>2]|0)+8>>2]&127](c[e>>2]|0);c[e>>2]=u;a[v>>0]=r;c[x>>2]=t;j=((w&p)>>>n&q|1)&255;i=s&w;h=0;while(1){if(!(c[u+(i<<2)>>2]|0)){p=26;break a}A=h<<24>>24==0?j:h;x=A&255;i=i+(i>>>0<x>>>0?t:0)-x|0;h=A}}}else p=26}else h=0}while(0);if((p|0)==26){h=pb[c[c[y>>2]>>2]&63](g)|0;c[(c[e>>2]|0)+(i<<2)>>2]=h;h=c[(c[e>>2]|0)+(i<<2)>>2]|0;if(!h)h=0;else{u6(h|0,0,g|0)|0;h=(c[e>>2]|0)+(i<<2)|0;c[c[h>>2]>>2]=f;c[z>>2]=(c[z>>2]|0)+1;h=c[h>>2]|0}}return h|0}function nZ(b){b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;h=b;c=b;while(1){d=a[h>>0]|0;e=c+-1|0;f=(c|0)!=(b|0);if(!(d<<24>>24))break;g=c+1|0;switch(d<<24>>24|0){case 10:case 13:case 32:{if(f){if((a[e>>0]|0)!=32){a[c>>0]=32;c=g}}else c=b;break}default:{a[c>>0]=d;c=g}}h=h+1|0}if(f)b=(a[e>>0]|0)==32?e:c;a[b>>0]=0;return}function oZ(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;d=GZ(b,0,c[b+144>>2]|0,d,e,f,(a[b+484>>0]|0)==0&1)|0;if((d|0)==0?(OZ(b)|0)<<24>>24==0:0)d=1;return d|0}function pZ(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=c[a+356>>2]|0;e=kZ(g+80|0,b,d,e)|0;do if((e|0)!=0?(f=mZ(a,g+20|0,e,24)|0,(f|0)!=0):0){d=g+92|0;b=g+96|0;if((c[f>>2]|0)==(e|0)){c[b>>2]=c[d>>2];if(!(PZ(a,f)|0)){f=0;break}}else c[d>>2]=c[b>>2]}else f=0;while(0);return f|0}function qZ(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=c[b+356>>2]|0;m=j+80|0;o=j+92|0;h=c[o>>2]|0;n=j+88|0;if((h|0)==(c[n>>2]|0))if(!((fZ(m)|0)<<24>>24))g=0;else{h=c[o>>2]|0;i=4}else i=4;a:do if((i|0)==4){c[o>>2]=h+1;a[h>>0]=0;e=kZ(m,d,e,f)|0;if((e|0)!=0?(l=e+1|0,g=mZ(b,j+40|0,l,12)|0,(g|0)!=0):0){k=j+96|0;if((c[g>>2]|0)!=(l|0)){c[o>>2]=c[k>>2];break}h=c[o>>2]|0;c[k>>2]=h;if(a[b+236>>0]|0){d=a[l>>0]|0;i=j+60|0;b:do if(d<<24>>24==120)if((((a[e+2>>0]|0)==109?(a[e+3>>0]|0)==108:0)?(a[e+4>>0]|0)==110:0)?(a[e+5>>0]|0)==115:0){switch(a[e+6>>0]|0){case 0:{h=j+152|0;break}case 58:{h=mZ(b,i,e+7|0,8)|0;break}default:{f=0;d=120;break b}}c[g+4>>2]=h;a[g+9>>0]=1;break a}else{f=0;d=120}else f=0;while(0);c:while(1){switch(d<<24>>24){case 0:break a;case 58:{e=0;break c}default:{}}d=f+1|0;f=d;d=a[l+d>>0]|0}while(1){d=(h|0)==(c[n>>2]|0);if((e|0)>=(f|0))break;if(d){if(!((fZ(m)|0)<<24>>24)){g=0;break a}h=c[o>>2]|0}j=a[l+e>>0]|0;c[o>>2]=h+1;a[h>>0]=j;e=e+1|0;h=c[o>>2]|0}if(d){if(!((fZ(m)|0)<<24>>24)){g=0;break}h=c[o>>2]|0}c[o>>2]=h+1;a[h>>0]=0;b=mZ(b,i,c[k>>2]|0,8)|0;c[g+4>>2]=b;h=c[k>>2]|0;if((c[b>>2]|0)==(h|0)){c[k>>2]=c[o>>2];break}else{c[o>>2]=h;break}}}else g=0}while(0);return g|0}function rZ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=b+12|0;h=b+8|0;while(1){e=a[d>>0]|0;if(!(e<<24>>24)){i=7;break}f=c[g>>2]|0;if((f|0)==(c[h>>2]|0)){if(!((fZ(b)|0)<<24>>24)){d=0;break}f=c[g>>2]|0;e=a[d>>0]|0}c[g>>2]=f+1;a[f>>0]=e;d=d+1|0}if((i|0)==7)d=c[b+16>>2]|0;return d|0}function sZ(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l+16|0;h=i;c[h>>2]=d;g=a+12|0;if((c[g>>2]|0)==0?(fZ(a)|0)<<24>>24==0:0)d=0;else f=3;a:do if((f|0)==3){d=b+60|0;f=a+8|0;while(1){fb[c[d>>2]&31](b,h,e,g,c[f>>2]|0);if((c[h>>2]|0)==(e|0))break;if(!((fZ(a)|0)<<24>>24)){d=0;break a}}d=c[a+16>>2]|0}while(0);l=i;return d|0}function tZ(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0;n=b+12|0;m=b+20|0;l=c[n>>2]|0;i=f<<24>>24!=0;a:do if(i|(g|0)!=0){f=0;while(1){if((f|0)>=(l|0))break;if((c[(c[m>>2]|0)+(f*12|0)>>2]|0)==(d|0)){f=1;break a}else f=f+1|0}if((i?(j=b+8|0,(c[j>>2]|0)==0):0)?(a[d+9>>0]|0)==0:0){c[j>>2]=d;k=8}else k=8}else k=8;while(0);b:do if((k|0)==8){i=b+16|0;do if((l|0)==(c[i>>2]|0)){if(!l){c[i>>2]=8;f=pb[c[h+12>>2]&63](96)|0;c[m>>2]=f;if(!f){f=0;break b}else break}f=vb[c[h+16>>2]&127](c[m>>2]|0,l*24|0)|0;if(!f){f=0;break b}c[i>>2]=l<<1;c[m>>2]=f}else f=c[m>>2]|0;while(0);i=c[n>>2]|0;c[f+(i*12|0)>>2]=d;c[f+(i*12|0)+8>>2]=g;a[f+(i*12|0)+4>>0]=e;if(!(e<<24>>24))a[d+8>>0]=1;c[n>>2]=i+1;f=1}while(0);return f|0}function uZ(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;b=RZ(b,d,e,f,g,h)|0;do if(!b){d=h+12|0;b=c[d>>2]|0;if((e<<24>>24==0?(b|0)!=(c[h+16>>2]|0):0)?(i=b+-1|0,(a[i>>0]|0)==32):0){c[d>>2]=i;b=i}if((b|0)==(c[h+8>>2]|0)){if(!((fZ(h)|0)<<24>>24)){b=1;break}b=c[d>>2]|0}c[d>>2]=b+1;a[b>>0]=0;b=0}while(0);return b|0}function vZ(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;H=l;l=l+16|0;B=H;C=H+4|0;g=c[b+356>>2]|0;D=g+104|0;F=b+276|0;E=c[F>>2]|0;c[F>>2]=1;if((c[D>>2]|0)==0?(fZ(D)|0)<<24>>24==0:0)g=1;else{n=d+20|0;o=b+144|0;p=g+116|0;q=g+112|0;r=d+68|0;s=b+488|0;t=b+416|0;u=g+132|0;v=b+432|0;w=b+428|0;x=g+130|0;y=g+128|0;z=b+228|0;A=b+112|0;j=g+131|0;k=b+116|0;m=d+44|0;a:while(1){b:do switch(tb[c[n>>2]&127](d,e,f,B)|0){case -4:{g=0;break a}case -1:{G=39;break a}case 0:{G=41;break a}case 28:{if((a[s>>0]|0)==0?(c[o>>2]|0)==(d|0):0){G=19;break a}g=c[r>>2]|0;g=kZ(t,d,e+g|0,(c[B>>2]|0)+(0-g)|0)|0;if(!g){g=1;break a}h=mZ(b,u,g,0)|0;c[w>>2]=c[v>>2];if(!h){G=9;break a}i=h+32|0;if(a[i>>0]|0){G=11;break a}g=c[h+16>>2]|0;if(!g){a[i>>0]=1;g=c[h+4>>2]|0;g=vZ(b,c[z>>2]|0,g,g+(c[h+8>>2]|0)|0)|0;a[i>>0]=0;if(!g)break b;else break a}e=c[A>>2]|0;if(e|0){a[j>>0]=0;a[i>>0]=1;h=(wb[e&63](c[k>>2]|0,0,c[h+20>>2]|0,g,c[h+24>>2]|0)|0)==0;a[i>>0]=0;if(h){g=21;break a}if(a[j>>0]|0)break b}a[y>>0]=a[x>>0]|0;break}case 6:case 9:{if(!(sZ(D,d,e,c[B>>2]|0)|0)){g=1;break a}break}case -3:{c[B>>2]=e+(c[r>>2]|0);G=22;break}case 7:{G=22;break}case 10:{g=vb[c[m>>2]&127](d,e)|0;if((g|0)<0){G=27;break a}h=h_(g,C)|0;if(!h){G=30;break a}else e=0;while(1){if((e|0)>=(h|0))break;g=c[p>>2]|0;if((c[q>>2]|0)==(g|0)){if(!((fZ(D)|0)<<24>>24)){g=1;G=37;break a}g=c[p>>2]|0}i=a[C+e>>0]|0;c[p>>2]=g+1;a[g>>0]=i;e=e+1|0}break}default:{G=43;break a}}while(0);if((G|0)==22){G=0;g=c[p>>2]|0;if((c[q>>2]|0)==(g|0)){if(!((fZ(D)|0)<<24>>24)){g=1;break}g=c[p>>2]|0}c[p>>2]=g+1;a[g>>0]=10}e=c[B>>2]|0}if((G|0)==9){a[y>>0]=a[x>>0]|0;g=0}else if((G|0)==11)if((c[o>>2]|0)==(d|0)){c[b+288>>2]=e;g=12}else g=12;else if((G|0)==19){c[b+288>>2]=e;g=10}else if((G|0)==27)if((c[o>>2]|0)==(d|0)){c[b+288>>2]=e;g=14;G=37}else{g=14;G=37}else if((G|0)==30)if((c[o>>2]|0)==(d|0)){c[b+288>>2]=e;g=14;G=37}else{g=14;G=37}else if((G|0)==39)if((c[o>>2]|0)==(d|0)){c[b+288>>2]=e;g=4}else g=4;else if((G|0)==41)if((c[o>>2]|0)==(d|0)){c[b+288>>2]=c[B>>2];g=4}else g=4;else if((G|0)==43)if((c[o>>2]|0)==(d|0)){c[b+288>>2]=e;g=23}else g=23;c[F>>2]=E}l=H;return g|0}function wZ(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+16|0;n=p;o=p+4|0;c[n>>2]=e;if(!(a[d+72>>0]|0)){if((c[b+144>>2]|0)==(d|0)){g=b+292|0;h=b+288|0}else{h=c[b+300>>2]|0;g=h+4|0}i=b+44|0;j=d+60|0;k=b+48|0;m=b+80|0;e=b+4|0;do{c[o>>2]=c[i>>2];fb[c[j>>2]&31](d,n,f,o,c[k>>2]|0);c[g>>2]=c[n>>2];b=c[i>>2]|0;rb[c[m>>2]&127](c[e>>2]|0,b,(c[o>>2]|0)-b|0);c[h>>2]=c[n>>2]}while((c[n>>2]|0)!=(f|0))}else rb[c[b+80>>2]&127](c[b+4>>2]|0,e,f-e|0);l=p;return}function xZ(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+16|0;j=m;k=c[d>>2]|0;if((c[a+144>>2]|0)==(b|0)){i=a+288|0;c[i>>2]=k;h=a+292|0}else{i=c[a+300>>2]|0;h=i+4|0}c[i>>2]=k;c[d>>2]=0;n=tb[c[b+12>>2]&127](b,k,e,j)|0;e=c[j>>2]|0;c[h>>2]=e;h=g<<24>>24!=0;switch(n|0){case 42:{if(c[a+80>>2]|0){wZ(a,b,k,e);e=c[j>>2]|0}c[d>>2]=e;c[f>>2]=e;e=(c[a+480>>2]|0)==2?35:0;break}case 0:{c[i>>2]=e;e=4;break}case -2:{if(h){c[f>>2]=k;e=0}else e=6;break}case -4:case -1:{if(h){c[f>>2]=k;e=0}else e=2;break}default:{c[i>>2]=e;e=23}}l=m;return e|0}function yZ(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=l;l=l+16|0;g=h;c[g>>2]=d;d=xZ(b,c[b+144>>2]|0,g,e,f,(a[b+484>>0]|0)==0&1)|0;if(!d){d=c[g>>2]|0;if(!d)d=0;else{c[b+280>>2]=57;d=hZ(b,d,e,f)|0}}l=h;return d|0}function zZ(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=c[a+356>>2]|0;k=j+184|0;f=a+12|0;if(!(c[k>>2]|0)){b=pb[c[f>>2]&63](c[a+468>>2]<<2)|0;c[k>>2]=b;if(!b)b=-1;else{c[b>>2]=0;d=4}}else d=4;do if((d|0)==4){i=j+176|0;b=c[i>>2]|0;g=j+172|0;d=c[g>>2]|0;h=j+164|0;e=c[h>>2]|0;if(b>>>0<d>>>0)g=e;else{if(!e){b=pb[c[f>>2]&63](896)|0;if(!b){b=-1;break}else{d=b;b=32}}else{b=vb[c[a+16>>2]&127](e,d*56|0)|0;if(!b){b=-1;break}d=b;b=c[g>>2]<<1}c[g>>2]=b;c[h>>2]=d;b=c[i>>2]|0;g=d}c[i>>2]=b+1;d=c[j+180>>2]|0;if(d|0){a=c[(c[k>>2]|0)+(d+-1<<2)>>2]|0;f=g+(a*28|0)+16|0;d=c[f>>2]|0;if(d|0)c[g+(d*28|0)+24>>2]=b;d=g+(a*28|0)+20|0;e=c[d>>2]|0;if(!e)c[g+(a*28|0)+12>>2]=b;c[f>>2]=b;c[d>>2]=e+1}k=g+(b*28|0)+12|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0}while(0);return b|0}function AZ(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+16|0;p=r;q=b+304|0;f=c[q>>2]|0;if(!f){f=pb[c[b+12>>2]&63](24)|0;if(!f)f=1;else{o=f;g=4}}else{c[q>>2]=c[f+8>>2];o=f;g=4}do if((g|0)==4){j=d+32|0;a[j>>0]=1;k=d+12|0;c[k>>2]=0;m=b+300|0;n=o+8|0;c[n>>2]=c[m>>2];c[m>>2]=o;c[o+12>>2]=d;h=c[b+312>>2]|0;c[o+16>>2]=h;a[o+20>>0]=e;c[o>>2]=0;c[o+4>>2]=0;e=c[d+4>>2]|0;i=e+(c[d+8>>2]|0)|0;f=b+228|0;g=c[f>>2]|0;if(!(a[d+33>>0]|0))f=GZ(b,h,g,e,i,p,0)|0;else{d=tb[c[g>>2]&127](g,e,i,p)|0;f=iZ(b,c[f>>2]|0,e,i,d,c[p>>2]|0,p,0)|0}if(!f){f=c[p>>2]|0;if((i|0)!=(f|0)?(c[b+480>>2]|0)==3:0){c[k>>2]=f-e;c[b+280>>2]=60;f=0;break}a[j>>0]=0;c[m>>2]=c[n>>2];c[n>>2]=c[q>>2];c[q>>2]=o;f=0}}while(0);l=r;return f|0}function BZ(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=l;l=l+16|0;d=g+4|0;e=g;b=c[a+356>>2]|0;f=b+176|0;b=pb[c[a+12>>2]&63](((c[f>>2]|0)*20|0)+(c[b+168>>2]|0)|0)|0;if(!b)b=0;else{c[e>>2]=b+((c[f>>2]|0)*20|0);c[d>>2]=b+20;FZ(a,0,b,d,e)}l=g;return b|0}function CZ(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=a+64|0;if(!(c[j>>2]|0))if(!(c[a+80>>2]|0))d=1;else{wZ(a,b,d,e);d=1}else{h=b+68|0;g=d+(c[h>>2]<<1)|0;d=g+(vb[c[b+32>>2]&127](b,g)|0)|0;f=a+416|0;g=kZ(f,b,g,d)|0;if((g|0)!=0?(c[a+432>>2]=c[a+428>>2],i=vb[c[b+36>>2]&127](b,d)|0,i=kZ(f,b,i,e+(0-(c[h>>2]<<1))|0)|0,(i|0)!=0):0){EZ(i);rb[c[j>>2]&127](c[a+4>>2]|0,g,i);lZ(f);d=1}else d=0}return d|0}function DZ(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=a+68|0;if(!(c[g>>2]|0))if(!(c[a+80>>2]|0))b=1;else{wZ(a,b,d,e);b=1}else{f=a+416|0;h=c[b+68>>2]|0;b=kZ(f,b,d+(h<<2)|0,e+(S(h,-3)|0)|0)|0;if(!b)b=0;else{EZ(b);lb[c[g>>2]&63](c[a+4>>2]|0,b);lZ(f);b=1}}return b|0}function EZ(b){b=b|0;var c=0,d=0,e=0,f=0;a:while(1){switch(a[b>>0]|0){case 0:break a;case 13:{f=b;e=13;c=4;break a}default:{}}b=b+1|0}if((c|0)==4){while(1){c=f;f=f+1|0;d=b+1|0;if(e<<24>>24==13){a[c>>0]=10;b=(a[d>>0]|0)==10?b+2|0:d}else{a[c>>0]=e;b=d}e=a[b>>0]|0;if(!(e<<24>>24))break;else c=4}a[f>>0]=0}return}function FZ(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;k=(c[b+356>>2]|0)+164|0;h=c[k>>2]|0;m=c[h+(d*28|0)>>2]|0;c[e>>2]=m;c[e+4>>2]=c[h+(d*28|0)+4>>2];l=e+12|0;i=e+8|0;j=e+16|0;if((m|0)==4){c[i>>2]=c[g>>2];e=c[h+(d*28|0)+8>>2]|0;while(1){k=a[e>>0]|0;m=c[g>>2]|0;c[g>>2]=m+1;a[m>>0]=k;if(!(a[e>>0]|0))break;else e=e+1|0}c[l>>2]=0;c[j>>2]=0}else{h=c[h+(d*28|0)+20>>2]|0;c[l>>2]=h;c[j>>2]=c[f>>2];c[f>>2]=(c[f>>2]|0)+(h*20|0);e=(c[k>>2]|0)+(d*28|0)+12|0;d=0;while(1){e=c[e>>2]|0;if(d>>>0>=h>>>0)break;FZ(b,e,(c[j>>2]|0)+(d*20|0)|0,f,g);e=(c[k>>2]|0)+(e*28|0)+24|0;d=d+1|0;h=c[l>>2]|0}c[i>>2]=0}return}function GZ(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0;ma=l;l=l+48|0;ja=ma+28|0;_=ma+32|0;ka=ma+24|0;Y=ma;c[ja>>2]=f;Z=c[b+356>>2]|0;if((c[b+144>>2]|0)==(e|0)){ea=b+288|0;$=b+292|0}else{$=c[b+300>>2]|0;ea=$;$=$+4|0}c[ea>>2]=f;t=e+4|0;aa=e+72|0;u=b+56|0;v=b+376|0;ba=b+48|0;ga=b+80|0;w=e+68|0;ca=b+44|0;ha=b+312|0;x=b+52|0;da=e+60|0;y=e+32|0;z=b+104|0;A=b+416|0;B=b+392|0;C=b+368|0;fa=b+60|0;ia=b+4|0;D=b+364|0;E=b+432|0;F=b+428|0;G=b+480|0;H=e+48|0;I=Z+80|0;J=Z+96|0;K=Z+92|0;L=Z+129|0;M=b+120|0;N=b+112|0;O=b+116|0;P=b+308|0;Q=Z+130|0;R=b+12|0;S=b+16|0;T=b+236|0;U=b+237|0;V=b+472|0;W=e+44|0;X=b+72|0;a:while(1){s=c[ja>>2]|0;c[_>>2]=s;s=tb[c[t>>2]&127](e,s,g,_)|0;f=c[_>>2]|0;c[$>>2]=f;k=f;b:do switch(s|0){case -3:{la=6;break a}case -4:{la=15;break a}case 0:{la=20;break a}case -1:{la=21;break a}case -2:{la=23;break a}case 12:{f=17;break a}case -5:{la=136;break a}case 9:{s=c[w>>2]|0;s=(eb[c[H>>2]&63](e,(c[ja>>2]|0)+s|0,k+(0-s)|0)|0)&255;a[ka>>0]=s;do if(s<<24>>24){f=c[fa>>2]|0;if(f|0){rb[f&127](c[ia>>2]|0,ka,1);break}if(c[ga>>2]|0)wZ(b,e,c[ja>>2]|0,c[_>>2]|0)}else{j=c[w>>2]|0;j=kZ(I,e,(c[ja>>2]|0)+j|0,(c[_>>2]|0)+(0-j)|0)|0;if(!j){f=1;la=56;break a}k=mZ(b,Z,j,0)|0;c[K>>2]=c[J>>2];f=(k|0)!=0;if((a[L>>0]|0)!=0?(a[Q>>0]|0)==0:0){if(!f){f=c[M>>2]|0;if(f|0){rb[f&127](c[ia>>2]|0,j,0);break}if(!(c[ga>>2]|0))break;wZ(b,e,c[ja>>2]|0,c[_>>2]|0);break}}else{if(!f){f=11;la=56;break a}if(!(a[k+34>>0]|0)){f=24;la=56;break a}}f=k+32|0;if(a[f>>0]|0){f=12;la=56;break a}if(c[k+28>>2]|0){f=15;la=56;break a}if(!(c[k+4>>2]|0)){if(!(c[N>>2]|0)){if(!(c[ga>>2]|0))break;wZ(b,e,c[ja>>2]|0,c[_>>2]|0);break}a[f>>0]=1;j=IZ(b)|0;a[f>>0]=0;if(!j){f=1;la=56;break a}if(!(wb[c[N>>2]&63](c[O>>2]|0,j,c[k+20>>2]|0,c[k+16>>2]|0,c[k+24>>2]|0)|0)){f=21;la=56;break a}c[F>>2]=c[E>>2];break}if(a[P>>0]|0){f=AZ(b,k,0)|0;if(!f)break;else{la=58;break a}}f=c[M>>2]|0;if(!f){if(c[ga>>2]|0)wZ(b,e,c[ja>>2]|0,c[_>>2]|0)}else rb[f&127](c[ia>>2]|0,c[k>>2]|0,0);break b}while(0);break}case 1:case 2:{f=c[C>>2]|0;if(!f){f=pb[c[R>>2]&63](48)|0;if(!f){f=1;la=75;break a}j=pb[c[R>>2]&63](32)|0;c[f+36>>2]=j;if(!j){la=63;break a}c[f+40>>2]=j+32}else c[C>>2]=c[f>>2];o=f+44|0;c[o>>2]=0;c[f>>2]=c[D>>2];c[D>>2]=f;s=f+12|0;c[f+16>>2]=0;c[f+20>>2]=0;p=(c[ja>>2]|0)+(c[w>>2]|0)|0;q=f+4|0;c[q>>2]=p;p=vb[c[y>>2]&127](e,p)|0;c[f+8>>2]=p;c[ha>>2]=(c[ha>>2]|0)+1;q=c[q>>2]|0;p=q+p|0;c[Y>>2]=q;q=f+36|0;c[ka>>2]=c[q>>2];r=f+40|0;j=c[r>>2]|0;while(1){fb[c[da>>2]&31](e,Y,p,ka,j+-1|0);j=c[ka>>2]|0;m=c[q>>2]|0;k=m;n=j-k|0;if((c[Y>>2]|0)==(p|0))break;k=(c[r>>2]|0)-k<<1;j=vb[c[S>>2]&127](m,k)|0;if(!j){la=69;break a}c[q>>2]=j;m=j+k|0;c[r>>2]=m;c[ka>>2]=j+n;j=m}c[f+24>>2]=n;c[s>>2]=k;a[j>>0]=0;f=JZ(b,e,c[ja>>2]|0,s,o)|0;if(f|0){la=75;break a}f=c[x>>2]|0;if(!f){if(c[ga>>2]|0)wZ(b,e,c[ja>>2]|0,c[_>>2]|0)}else rb[f&127](c[ia>>2]|0,c[s>>2]|0,c[B>>2]|0);lZ(A);break}case 3:case 4:{s=(c[ja>>2]|0)+(c[w>>2]|0)|0;c[ka>>2]=0;s=kZ(A,e,s,s+(vb[c[y>>2]&127](e,s)|0)|0)|0;c[Y>>2]=s;if(!s){f=1;la=93;break a}c[E>>2]=c[F>>2];f=JZ(b,e,c[ja>>2]|0,Y,ka)|0;if(f|0){la=93;break a}c[E>>2]=c[F>>2];f=c[x>>2]|0;if(!f)j=1;else{rb[f&127](c[ia>>2]|0,c[Y>>2]|0,c[B>>2]|0);j=0}f=c[u>>2]|0;if(!f){if(j|0?c[ga>>2]|0:0)wZ(b,e,c[ja>>2]|0,c[_>>2]|0)}else{if(c[x>>2]|0){c[ea>>2]=c[$>>2];f=c[u>>2]|0}lb[f&63](c[ia>>2]|0,c[Y>>2]|0)}lZ(A);f=c[ka>>2]|0;while(1){if(!f)break;j=c[z>>2]|0;if(j|0)lb[j&63](c[ia>>2]|0,c[c[f>>2]>>2]|0);s=c[f+4>>2]|0;c[ka>>2]=s;c[f+4>>2]=c[v>>2];c[v>>2]=f;c[(c[f>>2]|0)+4>>2]=c[f+8>>2];f=s}if(!(c[ha>>2]|0)){la=95;break a}break}case 5:{if((c[ha>>2]|0)==(d|0)){f=13;break a}o=c[D>>2]|0;c[D>>2]=c[o>>2];c[o>>2]=c[C>>2];c[C>>2]=o;f=(c[ja>>2]|0)+(c[w>>2]<<1)|0;j=vb[c[y>>2]&127](e,f)|0;if((j|0)!=(c[o+8>>2]|0)){la=99;break a}if(g2(c[o+4>>2]|0,f,j)|0){la=99;break a}c[ha>>2]=(c[ha>>2]|0)+-1;f=c[u>>2]|0;if(!f){if(c[ga>>2]|0)wZ(b,e,c[ja>>2]|0,c[_>>2]|0)}else{j=c[o+16>>2]|0;n=o+12|0;if((j|0)!=0&(a[T>>0]|0)!=0){f=(c[n>>2]|0)+(c[o+28>>2]|0)|0;while(1){k=a[j>>0]|0;m=f+1|0;if(!(k<<24>>24))break;a[f>>0]=k;f=m;j=j+1|0}j=c[o+20>>2]|0;c:do if((j|0)!=0&(a[U>>0]|0)!=0){a[f>>0]=a[V>>0]|0;f=m;while(1){k=a[j>>0]|0;if(!(k<<24>>24))break c;a[f>>0]=k;j=j+1|0;f=f+1|0}}while(0);a[f>>0]=0;f=c[u>>2]|0}lb[f&63](c[ia>>2]|0,c[n>>2]|0)}j=o+44|0;k=c[j>>2]|0;while(1){if(!k)break;f=c[z>>2]|0;if(!f)f=k;else{lb[f&63](c[ia>>2]|0,c[c[k>>2]>>2]|0);f=c[j>>2]|0}s=c[f+4>>2]|0;c[j>>2]=s;c[k+4>>2]=c[v>>2];c[v>>2]=k;c[(c[k>>2]|0)+4>>2]=c[k+8>>2];k=s}if(!(c[ha>>2]|0)){la=119;break a}break}case 10:{f=vb[c[W>>2]&127](e,c[ja>>2]|0)|0;if((f|0)<0){f=14;break a}j=c[fa>>2]|0;if(j|0){r=c[ia>>2]|0;s=h_(f,ka)|0;rb[j&127](r,ka,s);break b}if(c[ga>>2]|0)wZ(b,e,c[ja>>2]|0,c[_>>2]|0);break}case 7:{f=c[fa>>2]|0;if(f|0){a[ka>>0]=10;rb[f&127](c[ia>>2]|0,ka,1);break b}if(c[ga>>2]|0)wZ(b,e,c[ja>>2]|0,k);break}case 8:{f=c[X>>2]|0;if(!f){if(c[ga>>2]|0)wZ(b,e,c[ja>>2]|0,k)}else db[f&127](c[ia>>2]|0);f=LZ(b,e,_,g,h,i)|0;if(f|0)break a;if(!(c[_>>2]|0)){la=135;break a}break}case 6:{j=c[fa>>2]|0;if(!j){if(!(c[ga>>2]|0))break b;wZ(b,e,c[ja>>2]|0,k);break b}if(!(a[aa>>0]|0))f=k;else{s=c[ja>>2]|0;rb[j&127](c[ia>>2]|0,s,f-s|0);break b}while(1){c[ka>>2]=c[ca>>2];fb[c[da>>2]&31](e,ja,f,ka,c[ba>>2]|0);c[$>>2]=c[ja>>2];f=c[ca>>2]|0;rb[j&127](c[ia>>2]|0,f,(c[ka>>2]|0)-f|0);f=c[ja>>2]|0;if((f|0)==(c[_>>2]|0))break;c[ea>>2]=f;f=c[_>>2]|0}break}case 11:{if(!(CZ(b,e,c[ja>>2]|0,k)|0)){f=1;break a}break}case 13:{if(!(DZ(b,e,c[ja>>2]|0,k)|0)){f=1;break a}break}default:if(c[ga>>2]|0)wZ(b,e,c[ja>>2]|0,k)}while(0);s=c[_>>2]|0;c[ja>>2]=s;c[ea>>2]=s;switch(c[G>>2]|0){case 2:{f=35;break a}case 3:{la=162;break a}default:{}}}switch(la|0){case 6:{j=(d|0)==0;if(i<<24>>24){c[h>>2]=c[ja>>2];f=0;break}c[$>>2]=g;f=c[fa>>2]|0;if(!f){if(c[ga>>2]|0)wZ(b,e,c[ja>>2]|0,g)}else{a[ka>>0]=10;rb[f&127](c[ia>>2]|0,ka,1)}if(!j)if((c[ha>>2]|0)==(d|0)){c[h>>2]=g;f=0}else f=13;else f=3;break}case 15:{if(i<<24>>24){c[h>>2]=c[ja>>2];f=0;break}if((d|0)>0)if((c[ha>>2]|0)==(d|0)){c[h>>2]=c[ja>>2];f=0}else f=13;else f=3;break}case 20:{c[ea>>2]=f;f=4;break}case 21:{if(!(i<<24>>24))f=5;else{c[h>>2]=c[ja>>2];f=0}break}case 23:{if(!(i<<24>>24))f=6;else{c[h>>2]=c[ja>>2];f=0}break}case 56:break;case 58:break;case 63:{db[c[b+20>>2]&127](f);f=1;la=75;break}case 69:{f=1;la=75;break}case 93:break;case 95:{f=KZ(b,c[_>>2]|0,g,h)|0;break}case 99:{c[ea>>2]=f;f=7;break}case 119:{f=KZ(b,c[_>>2]|0,g,h)|0;break}case 135:{c[b+280>>2]=61;f=0;break}case 136:{j=(d|0)==0;if(i<<24>>24){c[h>>2]=c[ja>>2];f=0;break}f=c[fa>>2]|0;do if(!f){if(c[ga>>2]|0)wZ(b,e,c[ja>>2]|0,g)}else if(!(a[aa>>0]|0)){c[ka>>2]=c[ca>>2];fb[c[da>>2]&31](e,ja,g,ka,c[ba>>2]|0);ja=c[ca>>2]|0;rb[c[fa>>2]&127](c[ia>>2]|0,ja,(c[ka>>2]|0)-ja|0);break}else{ka=c[ja>>2]|0;rb[f&127](c[ia>>2]|0,ka,g-ka|0);break}while(0);if(j){c[ea>>2]=g;f=3;break}if((c[ha>>2]|0)==(d|0)){c[h>>2]=g;f=0;break}else{c[ea>>2]=g;f=13;break}}case 162:{c[h>>2]=c[_>>2];f=0;break}}l=ma;return f|0}function HZ(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+16|0;r=s;n=b+300|0;o=c[n>>2]|0;do if(o){p=c[o+12>>2]|0;j=p+4|0;m=c[j>>2]|0;k=p+12|0;g=m+(c[k>>2]|0)|0;m=m+(c[p+8>>2]|0)|0;q=p+33|0;h=b+228|0;i=c[h>>2]|0;if(!(a[q>>0]|0))g=GZ(b,c[o+16>>2]|0,i,g,m,r,0)|0;else{i=tb[c[i>>2]&127](i,g,m,r)|0;g=iZ(b,c[h>>2]|0,g,m,i,c[r>>2]|0,r,0)|0}if(!g){g=c[r>>2]|0;if((m|0)!=(g|0)?(c[b+480>>2]|0)==3:0){c[k>>2]=g-(c[j>>2]|0);g=0;break}a[p+32>>0]=0;h=o+8|0;c[n>>2]=c[h>>2];g=b+304|0;c[h>>2]=c[g>>2];c[g>>2]=o;g=b+280|0;h=b+144|0;i=c[h>>2]|0;if(!(a[q>>0]|0)){c[g>>2]=58;g=GZ(b,(c[b+476>>2]|0)!=0&1,i,d,e,f,(a[b+484>>0]|0)==0&1)|0;break}else{c[g>>2]=57;g=tb[c[i>>2]&127](i,d,e,r)|0;g=iZ(b,c[h>>2]|0,d,e,g,c[r>>2]|0,f,(a[b+484>>0]|0)==0&1)|0;break}}}else g=23;while(0);l=s;return g|0}function IZ(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;p=l;l=l+16|0;k=p;i=c[b+356>>2]|0;g=i+156|0;j=b+472|0;n=b+416|0;o=b+428|0;m=b+424|0;a:do if(!(c[g>>2]|0)){d=0;h=11}else{d=c[o>>2]|0;if((d|0)==(c[m>>2]|0)){if(!((fZ(n)|0)<<24>>24)){d=0;break}d=c[o>>2]|0}c[o>>2]=d+1;a[d>>0]=61;e=(((a[j>>0]|0)!=0)<<31>>31)+(c[(c[g>>2]|0)+20>>2]|0)|0;f=0;while(1){if((f|0)>=(e|0)){d=1;h=11;break a}d=c[o>>2]|0;if((d|0)==(c[m>>2]|0)){if(!((fZ(n)|0)<<24>>24)){d=0;break a}d=c[o>>2]|0}q=a[(c[(c[g>>2]|0)+16>>2]|0)+f>>0]|0;c[o>>2]=d+1;a[d>>0]=q;f=f+1|0}}while(0);b:do if((h|0)==11){aZ(k,i+60|0);c:while(1){do{e=bZ(k)|0;if(!e)break c;h=e+4|0}while(!(c[h>>2]|0));if(d<<24>>24){d=c[o>>2]|0;if((d|0)==(c[m>>2]|0)){if(!((fZ(n)|0)<<24>>24)){d=0;break b}d=c[o>>2]|0}c[o>>2]=d+1;a[d>>0]=12}g=c[e>>2]|0;while(1){e=a[g>>0]|0;d=c[o>>2]|0;f=(d|0)==(c[m>>2]|0);if(!(e<<24>>24))break;if(f){if(!((fZ(n)|0)<<24>>24)){d=0;break b}d=c[o>>2]|0;e=a[g>>0]|0}c[o>>2]=d+1;a[d>>0]=e;g=g+1|0}if(f){if(!((fZ(n)|0)<<24>>24)){d=0;break b}d=c[o>>2]|0}c[o>>2]=d+1;a[d>>0]=61;f=(((a[j>>0]|0)!=0)<<31>>31)+(c[(c[h>>2]|0)+20>>2]|0)|0;e=0;while(1){if((e|0)>=(f|0)){d=1;continue c}d=c[o>>2]|0;if((d|0)==(c[m>>2]|0)){if(!((fZ(n)|0)<<24>>24)){d=0;break b}d=c[o>>2]|0}q=a[(c[(c[h>>2]|0)+16>>2]|0)+e>>0]|0;c[o>>2]=d+1;a[d>>0]=q;e=e+1|0}}aZ(k,i);d:while(1){do{e=bZ(k)|0;if(!e)break d}while(!(a[e+32>>0]|0));if(d<<24>>24){d=c[o>>2]|0;if((d|0)==(c[m>>2]|0)){if(!((fZ(n)|0)<<24>>24)){d=0;break b}d=c[o>>2]|0}c[o>>2]=d+1;a[d>>0]=12}f=c[e>>2]|0;while(1){e=a[f>>0]|0;if(!(e<<24>>24)){d=1;continue d}d=c[o>>2]|0;if((d|0)==(c[m>>2]|0)){if(!((fZ(n)|0)<<24>>24)){d=0;break b}d=c[o>>2]|0;e=a[f>>0]|0}c[o>>2]=d+1;a[d>>0]=e;f=f+1|0}}d=c[o>>2]|0;if((d|0)==(c[m>>2]|0)){if(!((fZ(n)|0)<<24>>24)){d=0;break}d=c[o>>2]|0}c[o>>2]=d+1;a[d>>0]=0;d=c[b+432>>2]|0}while(0);l=p;return d|0}function JZ(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;L=c[b+356>>2]|0;k=L+20|0;i=mZ(b,k,c[g>>2]|0,0)|0;K=b+236|0;if(!i){i=eZ(L+80|0,c[g>>2]|0)|0;if((i|0)!=0?(j=mZ(b,k,i,24)|0,(j|0)!=0):0)if((a[K>>0]|0)!=0?(PZ(b,j)|0)==0:0)i=1;else A=6;else i=1}else{j=i;A=6}a:do if((A|0)==6){w=c[j+12>>2]|0;l=e+40|0;i=b+380|0;s=b+392|0;t=tb[c[l>>2]&127](e,f,c[i>>2]|0,c[s>>2]|0)|0;k=t+w|0;m=c[i>>2]|0;z=b+16|0;if((k|0)>(m|0)){J=k+16|0;c[i>>2]=J;i=vb[c[z>>2]&127](c[s>>2]|0,J<<4)|0;if(!i){i=1;break}c[s>>2]=i;if((t|0)>(m|0))tb[c[l>>2]&127](e,f,t,i)|0}J=c[s>>2]|0;v=j+20|0;G=b+416|0;H=b+432|0;I=b+428|0;q=e+32|0;r=0;p=0;k=0;while(1){if((p|0)>=(t|0))break;o=c[(c[s>>2]|0)+(p<<4)>>2]|0;o=qZ(b,e,o,o+(vb[c[q>>2]&127](e,o)|0)|0)|0;if(!o){i=1;break a}i=(c[o>>2]|0)+-1|0;if(a[i>>0]|0){A=14;break}a[i>>0]=1;c[J+(r<<2)>>2]=c[o>>2];F=c[s>>2]|0;n=J+(r+1<<2)|0;m=F+(p<<4)+4|0;f=F+(p<<4)+8|0;if(a[F+(p<<4)+12>>0]|0){F=kZ(G,e,c[m>>2]|0,c[f>>2]|0)|0;c[n>>2]=F;if(!F){i=1;break a}}else{b:do if(!(a[o+8>>0]|0))i=1;else{i=0;while(1){if((i|0)>=(w|0)){i=1;break b}l=c[v>>2]|0;if((o|0)==(c[l+(i*12|0)>>2]|0))break;i=i+1|0}i=a[l+(i*12|0)+4>>0]|0}while(0);i=uZ(b,e,i,c[m>>2]|0,c[f>>2]|0,G)|0;if(i|0)break a;c[n>>2]=c[H>>2]}c[H>>2]=c[I>>2];l=c[o+4>>2]|0;i=r+2|0;do if(l)if(a[o+9>>0]|0){i=QZ(b,l,o,c[n>>2]|0,h)|0;if(!i){i=r;break}else break a}else{a[(c[o>>2]|0)+-1>>0]=2;k=k+1|0;break}while(0);r=i;p=p+1|0}if((A|0)==14){if((c[b+144>>2]|0)!=(e|0)){i=8;break}c[b+288>>2]=c[(c[s>>2]|0)+(p<<4)>>2];i=8;break}c[b+384>>2]=r;i=c[j+8>>2]|0;c:do if((i|0)!=0?(u=c[i>>2]|0,(a[u+-1>>0]|0)!=0):0){i=0;while(1){if((i|0)>=(r|0)){p=0;q=k;E=r;break c}if((c[J+(i<<2)>>2]|0)==(u|0)){A=35;break c}i=i+2|0}}else{i=-1;A=35}while(0);if((A|0)==35){c[b+388>>2]=i;p=0;q=k;E=r}while(1){n=J+(E<<2)|0;if((p|0)>=(w|0))break;i=c[v>>2]|0;o=i+(p*12|0)|0;l=c[o>>2]|0;m=(c[l>>2]|0)+-1|0;d:do if((a[m>>0]|0)==0?(x=i+(p*12|0)+8|0,y=c[x>>2]|0,(y|0)!=0):0){k=c[l+4>>2]|0;i=E+2|0;f=J+(E+1<<2)|0;do if(k)if(a[l+9>>0]|0){i=QZ(b,k,l,y,h)|0;if(!i){k=q;i=E;break d}else break a}else{a[m>>0]=2;k=q+1|0;break}else{a[m>>0]=1;k=q}while(0);c[n>>2]=c[c[o>>2]>>2];c[f>>2]=c[x>>2]}else{k=q;i=E}while(0);p=p+1|0;q=k;E=i}c[n>>2]=0;F=b+472|0;D=b+237|0;e:do if(!q)i=0;else{m=b+400|0;l=c[m>>2]|0;B=b+404|0;i=a[B>>0]|0;k=i&255;C=b+396|0;if(!(q<<1>>k)){i=1<<k;if(!l){k=i;A=52}else{k=i;i=l}}else{do{A=i;i=i+1<<24>>24}while((q>>(A&255)|0)!=0);k=(i&255)>3?i:3;a[B>>0]=k;k=k&255;i=vb[c[z>>2]&127](c[C>>2]|0,12<<k)|0;if(!i){i=1;break a}c[C>>2]=i;k=1<<k;A=52}f:do if((A|0)==52){i=k;while(1){if(!i){i=-1;break f}A=i+-1|0;c[(c[C>>2]|0)+(A*12|0)>>2]=-1;i=A}}while(0);A=i+-1|0;c[m>>2]=A;u=b+496|0;v=L+40|0;w=b+424|0;x=k+-1|0;y=0-k|0;z=x>>>2;i=0;e=q;do{while(1){if((i|0)>=(E|0))break e;t=J+(i<<2)|0;p=c[t>>2]|0;l=p+-1|0;if((a[l>>0]|0)==2)break;a[l>>0]=0;i=i+2|0}m=c[u>>2]|0;a[l>>0]=0;s=c[(c[(mZ(b,v,p,0)|0)+4>>2]|0)+4>>2]|0;if(!s){i=27;break a}n=s+20|0;o=s+16|0;q=m;m=0;while(1){if((m|0)>=(c[n>>2]|0)){l=p;break}f=a[(c[o>>2]|0)+m>>0]|0;l=c[I>>2]|0;if((l|0)==(c[w>>2]|0)){if(!((fZ(G)|0)<<24>>24)){i=1;break a}l=c[I>>2]|0}c[I>>2]=l+1;a[l>>0]=f;q=f&255^q*1000003;m=m+1|0}while(1){m=l+1|0;if((a[l>>0]|0)==58)break;else l=m}while(1){n=a[m>>0]|0;l=c[I>>2]|0;if((l|0)==(c[w>>2]|0)){if(!((fZ(G)|0)<<24>>24)){i=1;break a}l=c[I>>2]|0;f=a[m>>0]|0}else f=n;c[I>>2]=l+1;a[l>>0]=f;q=n&255^q*1000003;if(!(a[m>>0]|0))break;else m=m+1|0}o=c[C>>2]|0;p=q&y;l=0;r=q&x;while(1){if((c[o+(r*12|0)>>2]|0)!=(A|0))break;if((q|0)==(c[o+(r*12|0)+4>>2]|0)){m=c[o+(r*12|0)+8>>2]|0;f=c[H>>2]|0;while(1){M=a[f>>0]|0;n=M<<24>>24==0;if(n|M<<24>>24!=(a[m>>0]|0))break;m=m+1|0;f=f+1|0}if(n){i=8;break a}}if(!(l<<24>>24))l=(p>>>((d[B>>0]|0)+-1|0)&z|1)&255;M=l&255;r=r+((r|0)<(M|0)?k:0)-M|0}if(a[D>>0]|0){a[(c[I>>2]|0)+-1>>0]=a[F>>0]|0;m=c[c[s>>2]>>2]|0;while(1){l=c[I>>2]|0;if((l|0)==(c[w>>2]|0)){if(!((fZ(G)|0)<<24>>24)){i=1;break a}l=c[I>>2]|0}M=a[m>>0]|0;c[I>>2]=l+1;a[l>>0]=M;if(!(a[m>>0]|0))break;else m=m+1|0}}s=c[H>>2]|0;c[H>>2]=c[I>>2];c[t>>2]=s;M=c[C>>2]|0;c[M+(r*12|0)>>2]=A;c[M+(r*12|0)+4>>2]=q;c[M+(r*12|0)+8>>2]=s;e=e+-1|0;i=i+2|0}while((e|0)!=0)}while(0);while(1){if((i|0)>=(E|0)){i=h;break}a[(c[J+(i<<2)>>2]|0)+-1>>0]=0;i=i+2|0}while(1){i=c[i>>2]|0;if(!i)break;a[(c[c[i+12>>2]>>2]|0)+-1>>0]=0;i=i+4|0}if(!(a[K>>0]|0))i=0;else{i=c[j+4>>2]|0;if(!i){i=c[L+156>>2]|0;if(!i){i=0;break}k=c[g>>2]|0}else{i=c[i+4>>2]|0;if(!i){i=27;break}j=c[g>>2]|0;while(1){k=j+1|0;if((a[j>>0]|0)==58)break;else j=k}}m=c[c[i>>2]>>2]|0;if((a[D>>0]|0)==0|(m|0)==0)l=0;else{j=0;while(1){l=j+1|0;if(!(a[m+j>>0]|0))break;else j=l}}c[g+4>>2]=k;o=i+20|0;j=c[o>>2]|0;c[g+16>>2]=j;c[g+8>>2]=m;c[g+20>>2]=l;p=0;while(1){q=p+1|0;if(!(a[k+p>>0]|0))break;else p=q}m=j+l+q|0;f=i+24|0;r=i+16|0;if((m|0)>(c[f>>2]|0)){j=m+24|0;m=pb[c[b+12>>2]&63](j)|0;if(!m){i=1;break}c[f>>2]=j;B6(m|0,c[r>>2]|0,c[o>>2]|0)|0;n=c[r>>2]|0;j=b+364|0;while(1){j=c[j>>2]|0;if(!j)break;f=j+12|0;if((c[f>>2]|0)==(n|0))c[f>>2]=m}db[c[b+20>>2]&127](n);c[r>>2]=m;j=c[o>>2]|0}else m=c[r>>2]|0;j=m+j|0;B6(j|0,k|0,q|0)|0;if(l|0){M=j+p|0;a[M>>0]=a[F>>0]|0;B6(M+1|0,c[c[i>>2]>>2]|0,l|0)|0}c[g>>2]=c[r>>2];i=0}}while(0);return i|0}function KZ(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;q=l;l=l+16|0;j=q;c[b+280>>2]=62;k=b+288|0;c[k>>2]=d;m=b+144|0;n=b+292|0;o=b+80|0;i=b+480|0;g=d;a:while(1){c[j>>2]=0;r=c[m>>2]|0;r=tb[c[r>>2]&127](r,g,e,j)|0;d=c[j>>2]|0;c[n>>2]=d;h=d;switch(r|0){case -15:{p=3;break a}case -4:{p=7;break a}case 0:{p=12;break a}case -1:{p=13;break a}case -2:{p=15;break a}case 15:{if(c[o>>2]|0)wZ(b,c[m>>2]|0,g,h);break}case 11:{if(!(CZ(b,c[m>>2]|0,g,h)|0)){d=1;break a}break}case 13:{if(!(DZ(b,c[m>>2]|0,g,h)|0)){d=1;break a}break}default:{d=9;break a}}d=c[j>>2]|0;c[k>>2]=d;switch(c[i>>2]|0){case 2:{d=35;break a}case 3:{p=18;break a}default:{}}g=d}do if((p|0)==3){if(c[o>>2]|0){wZ(b,c[m>>2]|0,g,h);if((c[i>>2]|0)==2){d=35;break}d=c[j>>2]|0}c[f>>2]=d;d=0}else if((p|0)==7){c[f>>2]=g;d=0}else if((p|0)==12){c[k>>2]=d;d=4}else if((p|0)==13)if(!(a[b+484>>0]|0)){c[f>>2]=g;d=0}else d=5;else if((p|0)==15)if(!(a[b+484>>0]|0)){c[f>>2]=g;d=0}else d=6;else if((p|0)==18){c[f>>2]=d;d=0}while(0);l=q;return d|0}function LZ(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=l;l=l+16|0;y=B+8|0;z=B+4|0;x=B;i=c[e>>2]|0;c[y>>2]=i;if((c[b+144>>2]|0)==(d|0)){s=b+288|0;c[s>>2]=i;t=b+292|0}else{t=c[b+300>>2]|0;s=t;t=t+4|0}c[s>>2]=i;c[e>>2]=0;m=d+8|0;u=b+4|0;v=b+80|0;n=b+60|0;w=b+480|0;o=d+72|0;p=b+44|0;q=d+60|0;r=b+48|0;a:while(1){k=tb[c[m>>2]&127](d,c[y>>2]|0,f,z)|0;i=c[z>>2]|0;c[t>>2]=i;j=i;b:do switch(k|0){case 40:{A=6;break a}case 0:{A=23;break a}case -2:{A=24;break a}case -4:case -1:{A=26;break a}case 7:{i=c[n>>2]|0;if(i|0){a[x>>0]=10;rb[i&127](c[u>>2]|0,x,1);break b}if(c[v>>2]|0)wZ(b,d,c[y>>2]|0,j);break}case 6:{k=c[n>>2]|0;if(!k){if(!(c[v>>2]|0))break b;wZ(b,d,c[y>>2]|0,j);break b}if(!(a[o>>0]|0))i=j;else{j=c[y>>2]|0;rb[k&127](c[u>>2]|0,j,i-j|0);break b}while(1){c[x>>2]=c[p>>2];fb[c[q>>2]&31](d,y,i,x,c[r>>2]|0);c[t>>2]=c[z>>2];i=c[p>>2]|0;rb[k&127](c[u>>2]|0,i,(c[x>>2]|0)-i|0);i=c[y>>2]|0;if((i|0)==(c[z>>2]|0))break;c[s>>2]=i;i=c[z>>2]|0}break}default:{A=28;break a}}while(0);k=c[z>>2]|0;c[y>>2]=k;c[s>>2]=k;switch(c[w>>2]|0){case 3:{A=30;break a}case 2:{i=35;break a}default:{}}}if((A|0)==6){i=c[b+76>>2]|0;if(!i){if(c[v>>2]|0)wZ(b,d,c[y>>2]|0,j)}else db[i&127](c[u>>2]|0);i=c[z>>2]|0;c[e>>2]=i;c[g>>2]=i;i=(c[w>>2]|0)==2?35:0}else if((A|0)==23){c[s>>2]=i;i=4}else if((A|0)==24)if(!(h<<24>>24))i=6;else{c[g>>2]=c[y>>2];i=0}else if((A|0)==26)if(!(h<<24>>24))i=20;else{c[g>>2]=c[y>>2];i=0}else if((A|0)==28){c[s>>2]=i;i=23}else if((A|0)==30){c[g>>2]=c[z>>2];i=0}l=B;return i|0}function MZ(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=l;l=l+16|0;g=h;c[g>>2]=d;d=LZ(b,c[b+144>>2]|0,g,e,f,(a[b+484>>0]|0)==0&1)|0;do if(!d){d=c[g>>2]|0;if(d){g=b+280|0;if(!(c[b+476>>2]|0)){c[g>>2]=58;d=oZ(b,d,e,f)|0;break}else{c[g>>2]=63;d=NZ(b,d,e,f)|0;break}}else d=0}while(0);l=h;return d|0}function NZ(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;d=GZ(b,1,c[b+144>>2]|0,d,e,f,(a[b+484>>0]|0)==0&1)|0;if((d|0)==0?(OZ(b)|0)<<24>>24==0:0)d=1;return d|0}function OZ(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=a+16|0;a=a+364|0;while(1){a=c[a>>2]|0;if(!a){a=1;break}i=(c[a+24>>2]|0)+1|0;j=a+36|0;f=c[j>>2]|0;e=f+i|0;l=a+4|0;d=c[l>>2]|0;if((d|0)==(e|0)){a=1;break}k=a+8|0;b=c[k>>2]|0;g=b+i|0;h=a+40|0;if((g|0)>((c[h>>2]|0)-f|0)){e=vb[c[m>>2]&127](f,g)|0;if(!e){a=0;break}b=a+12|0;f=c[j>>2]|0;if((c[b>>2]|0)==(f|0))c[b>>2]=e;b=a+16|0;d=c[b>>2]|0;if(d|0)c[b>>2]=e+(d-f);c[j>>2]=e;c[h>>2]=e+g;e=e+i|0;d=c[l>>2]|0;b=c[k>>2]|0}B6(e|0,d|0,b|0)|0;c[l>>2]=e}return a|0}function PZ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=c[b+356>>2]|0;j=n+80|0;k=n+92|0;l=n+88|0;m=n+60|0;n=n+96|0;i=d+4|0;h=c[d>>2]|0;a:while(1){switch(a[h>>0]|0){case 0:{e=1;break a}case 58:{g=c[d>>2]|0;while(1){e=c[k>>2]|0;f=(e|0)==(c[l>>2]|0);if((g|0)==(h|0))break;if(f){if(!((fZ(j)|0)<<24>>24)){e=0;break a}e=c[k>>2]|0}f=a[g>>0]|0;c[k>>2]=e+1;a[e>>0]=f;g=g+1|0}if(f){if(!((fZ(j)|0)<<24>>24)){e=0;break a}e=c[k>>2]|0}c[k>>2]=e+1;a[e>>0]=0;e=mZ(b,m,c[n>>2]|0,8)|0;if(!e){e=0;break a}f=c[n>>2]|0;if((c[e>>2]|0)==(f|0))c[n>>2]=c[k>>2];else c[k>>2]=f;c[i>>2]=e;break}default:{}}h=h+1|0}return e|0}function QZ(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=c[d>>2]|0;i=(h|0)!=0;a:do if((a[f>>0]|0)!=0|i^1){b:do if(((i?(a[h>>0]|0)==120:0)?(a[h+1>>0]|0)==109:0)?(a[h+2>>0]|0)==108:0){switch(a[h+3>>0]|0){case 110:break;case 0:{m=1;break b}default:{m=0;break b}}if((a[h+4>>0]|0)==115?(a[h+5>>0]|0)==0:0){h=39;break a}else m=0}else m=0;while(0);n=m<<24>>24!=0;l=1;h=1;i=0;c:while(1){p=n|l^1;while(1){k=a[f+i>>0]|0;j=h<<24>>24!=0;o=i+1|0;if(!(k<<24>>24))break c;do if(j){if((i|0)<=36?k<<24>>24==(a[142560+i>>0]|0):0)break;h=0}else h=0;while(0);if(p){i=o;continue}if((i|0)>29){l=0;i=o;continue c}if(k<<24>>24==(a[142597+i>>0]|0))i=o;else{l=0;i=o;continue c}}}if((m&255|0)!=(j&(i|0)==36&1|0)){h=n?38:40;break}if(!(l&(i|0)==29)){p=b+472|0;n=(a[p>>0]|0)==0?i:o;h=b+376|0;j=c[h>>2]|0;m=n+24|0;do if(!j){h=b+12|0;i=pb[c[h>>2]&63](28)|0;if(!i){h=1;break a}o=pb[c[h>>2]&63](m)|0;c[i+16>>2]=o;if(!o){db[c[b+20>>2]&127](i);h=1;break a}else{c[i+24>>2]=m;j=i;break}}else{i=j+24|0;if((n|0)>(c[i>>2]|0)){k=j+16|0;l=vb[c[b+16>>2]&127](c[k>>2]|0,m)|0;if(!l){h=1;break a}c[k>>2]=l;c[i>>2]=m}c[h>>2]=c[j+4>>2]}while(0);c[j+20>>2]=n;i=j+16|0;B6(c[i>>2]|0,f|0,n|0)|0;h=a[p>>0]|0;if(h<<24>>24)a[(c[i>>2]|0)+(n+-1)>>0]=h;c[j>>2]=d;c[j+12>>2]=e;i=d+4|0;c[j+8>>2]=c[i>>2];if((a[f>>0]|0)==0?((c[b+356>>2]|0)+152|0)==(d|0):0)h=0;else h=j;c[i>>2]=h;c[j+4>>2]=c[g>>2];c[g>>2]=j;if((e|0)!=0?(q=c[b+100>>2]|0,(q|0)!=0):0){rb[q&127](c[b+4>>2]|0,c[d>>2]|0,c[i>>2]|0?f:0);h=0}else h=0}else h=40}else h=28;while(0);return h|0}function RZ(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;L=l;l=l+16|0;I=L;J=L+4|0;K=c[b+356>>2]|0;o=d+16|0;p=d+68|0;q=b+144|0;r=h+16|0;s=h+8|0;t=h+12|0;v=b+288|0;w=d+44|0;x=e<<24>>24==0;y=d+48|0;z=b+440|0;A=b+456|0;B=b+452|0;C=(K+80|0)==(h|0);D=K+130|0;E=K+129|0;F=b+272|0;G=b+300|0;H=b+228|0;i=0;a:while(1){b:while(1){switch(tb[c[o>>2]&127](d,f,g,I)|0){case -4:{i=0;n=63;break a}case 0:{n=4;break a}case -1:{n=6;break a}case 6:{n=23;break b}case -3:{n=24;break b}case 7:case 39:{n=25;break b}case 10:{j=vb[c[w>>2]&127](d,f)|0;c:do if((j|0)<0)if((c[q>>2]|0)==(d|0)){c[v>>2]=f;j=1;i=14}else{j=1;i=14}else{if(x&(j|0)==32){k=c[t>>2]|0;if((k|0)==(c[r>>2]|0)){j=4;break}if((a[k+-1>>0]|0)==32){j=4;break}}m=h_(j,J)|0;if(!m){if((c[q>>2]|0)!=(d|0)){j=1;i=14;break}c[v>>2]=f;j=1;i=14;break}else k=0;while(1){if((k|0)>=(m|0)){j=0;break c}j=c[t>>2]|0;if((j|0)==(c[s>>2]|0)){if(!((fZ(h)|0)<<24>>24)){j=1;i=1;break c}j=c[t>>2]|0}M=a[J+k>>0]|0;c[t>>2]=j+1;a[j>>0]=M;k=k+1|0}}while(0);switch(j&7){case 4:case 0:break b;default:{}}break}case 9:{j=c[p>>2]|0;j=(eb[c[y>>2]&63](d,f+j|0,(c[I>>2]|0)+(0-j)|0)|0)&255;if(j<<24>>24){n=33;break b}j=c[p>>2]|0;j=kZ(z,d,f+j|0,(c[I>>2]|0)+(0-j)|0)|0;if(!j){i=1;n=63;break a}m=mZ(b,K,j,0)|0;c[B>>2]=c[A>>2];do if(C){if(!(c[F>>2]|0))if(!m)break b;else break;if(!(a[D>>0]|0)){j=(m|0)!=0;if(!(a[E>>0]|0)){n=47;break}else{u=j;n=49;break}}else{j=(m|0)!=0;if(!(c[G>>2]|0)){n=47;break}else{u=j;n=49;break}}}else if(!(a[E>>0]|0))if(!m){i=11;n=63;break a}else{n=48;break}else{j=(m|0)!=0;if(!(a[D>>0]|0)){u=j;n=49;break}else{n=47;break}}while(0);if((n|0)==47)if(j)n=48;else{i=11;n=63;break a}else if((n|0)==49?(n=0,!u):0)break b;if((n|0)==48?(n=0,(a[m+34>>0]|0)==0):0){i=24;n=63;break a}k=m+32|0;if(a[k>>0]|0){n=51;break a}if(c[m+28>>2]|0){n=54;break a}j=c[m+4>>2]|0;if(!j){n=57;break a}m=j+(c[m+8>>2]|0)|0;a[k>>0]=1;m=RZ(b,c[H>>2]|0,e,j,m,h)|0;a[k>>0]=0;j=(m|0)==0;if(j)break b;else{j=(j^1)&1;i=m}break}default:{n=60;break a}}if(j)break a}if((n|0)==23){n=0;if(!(sZ(h,d,f,c[I>>2]|0)|0)){i=1;n=63;break}}else if((n|0)==24){c[I>>2]=f+(c[p>>2]|0);n=25}else if((n|0)==33){n=0;f=c[t>>2]|0;if((f|0)==(c[s>>2]|0)){if(!((fZ(h)|0)<<24>>24)){i=1;n=63;break}f=c[t>>2]|0}c[t>>2]=f+1;a[f>>0]=j}do if((n|0)==25){n=0;f=c[t>>2]|0;if(x){if((f|0)==(c[r>>2]|0))break;if((a[f+-1>>0]|0)==32)break}if((f|0)==(c[s>>2]|0)){if(!((fZ(h)|0)<<24>>24)){i=1;n=63;break a}f=c[t>>2]|0}c[t>>2]=f+1;a[f>>0]=32}while(0);f=c[I>>2]|0}if((n|0)==4)if((c[q>>2]|0)==(d|0)){c[v>>2]=c[I>>2];i=4;n=63}else{i=4;n=63}else if((n|0)==6)if((c[q>>2]|0)==(d|0)){c[v>>2]=f;i=4;n=63}else{i=4;n=63}else if((n|0)==51)if((c[q>>2]|0)==(d|0)){c[v>>2]=f;i=12;n=63}else{i=12;n=63}else if((n|0)==54)if((c[q>>2]|0)==(d|0)){c[v>>2]=f;i=15;n=63}else{i=15;n=63}else if((n|0)==57)if((c[q>>2]|0)==(d|0)){c[v>>2]=f;i=16;n=63}else{i=16;n=63}else if((n|0)==60)if((c[q>>2]|0)==(d|0)){c[v>>2]=f;i=23;n=63}else{i=23;n=63}l=L;return i|0}function SZ(b,d){b=b|0;d=d|0;var e=0;e=c[b+496>>2]|0;b=d;while(1){d=a[b>>0]|0;if(!(d<<24>>24))break;e=d&255^e*1000003;b=b+1|0}return e|0}function TZ(b,c){b=b|0;c=c|0;var d=0;while(1){d=a[b>>0]|0;if(d<<24>>24!=(a[c>>0]|0)){c=0;break}if(!(d<<24>>24)){c=1;break}c=c+1|0;b=b+1|0}return c|0}function UZ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+1040|0;i=k;f=c[b+124>>2]|0;a:do if(!f)e=18;else{e=0;while(1){if((e|0)==256)break;c[i+(e<<2)>>2]=-1;e=e+1|0}g=i+1028|0;c[g>>2]=0;j=i+1024|0;c[j>>2]=0;h=i+1032|0;c[h>>2]=0;do if(eb[f&63](c[b+248>>2]|0,d,i)|0){f=c[b+12>>2]|0;e=i_()|0;e=pb[f&63](e)|0;c[b+240>>2]=e;if(!e){e=c[h>>2]|0;if(!e)e=1;else{db[e&127](c[j>>2]|0);e=1}}else{e=tb[(a[b+236>>0]<<24>>24?64:65)&127](e,i,c[g>>2]|0,c[j>>2]|0)|0;if(!e)break;c[b+244>>2]=c[j>>2];c[b+252>>2]=c[h>>2];c[b+144>>2]=e;e=0}break a}while(0);e=c[h>>2]|0;if(e|0)db[e&127](c[j>>2]|0);e=18}while(0);l=k;return e|0}function VZ(b,d){b=b|0;d=d|0;a[b+4>>0]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b>>2]=0;c[b+16>>2]=d;return}function WZ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;l=c[b+356>>2]|0;m=b+416|0;n=b+428|0;o=b+424|0;p=b+432|0;q=l+152|0;r=b+372|0;j=l+60|0;k=l+80|0;a:while(1){g=d;b:while(1){if(!(a[d>>0]|0)){d=1;break a}e=a[g>>0]|0;h=g+1|0;switch(e<<24>>24){case 0:case 12:{s=5;break b}case 61:break b;default:{}}f=c[n>>2]|0;if((f|0)==(c[o>>2]|0)){if(!((fZ(m)|0)<<24>>24)){d=0;break a}f=c[n>>2]|0;e=a[g>>0]|0}c[n>>2]=f+1;a[f>>0]=e;g=h}if((s|0)==5){s=0;d=c[n>>2]|0;if((d|0)==(c[o>>2]|0)){if(!((fZ(m)|0)<<24>>24)){d=0;break}d=c[n>>2]|0}c[n>>2]=d+1;a[d>>0]=0;d=mZ(b,l,c[p>>2]|0,0)|0;if(d|0)a[d+32>>0]=1;d=(a[g>>0]|0)==0?g:h;c[n>>2]=c[p>>2];continue}d=c[n>>2]|0;if((d|0)==(c[p>>2]|0))f=q;else{if((d|0)==(c[o>>2]|0)){if(!((fZ(m)|0)<<24>>24)){d=0;break}d=c[n>>2]|0}c[n>>2]=d+1;a[d>>0]=0;f=mZ(b,j,c[p>>2]|0,8)|0;if(!f){d=0;break}e=c[f>>2]|0;i=c[p>>2]|0;d=i;if((e|0)==(i|0)){i=eZ(k,e)|0;c[f>>2]=i;if(!i){d=0;break}d=c[p>>2]|0}c[n>>2]=d}c:while(1){e=a[h>>0]|0;g=(d|0)==(c[o>>2]|0);i=h+1|0;switch(e<<24>>24){case 0:case 12:break c;default:{}}if(g){if(!((fZ(m)|0)<<24>>24)){d=0;break a}d=c[n>>2]|0;e=a[h>>0]|0}c[n>>2]=d+1;a[d>>0]=e;h=i;d=c[n>>2]|0}if(g){if(!((fZ(m)|0)<<24>>24)){d=0;break}d=c[n>>2]|0}c[n>>2]=d+1;a[d>>0]=0;if(QZ(b,f,0,c[p>>2]|0,r)|0){d=0;break}c[n>>2]=c[p>>2];d=(a[h>>0]|0)==0?h:i}return d|0}function XZ(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+4|0;e=(c[d>>2]|0)==(c[a>>2]|0);c[a>>2]=b;if(e)c[d>>2]=b;return}function YZ(a,b,d){a=a|0;b=b|0;d=d|0;c[a+52>>2]=b;c[a+56>>2]=d;return}function ZZ(a,b){a=a|0;b=b|0;c[a+60>>2]=b;return}function _Z(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;i=b+480|0;j=b+284|0;switch(c[i>>2]|0){case 3:{c[j>>2]=33;g=0;break}case 2:{c[j>>2]=36;g=0;break}case 0:{if((c[b+476>>2]|0)==0?($Z(b)|0)<<24>>24==0:0){c[j>>2]=1;g=0}else h=7;break}default:h=7}a:do if((h|0)==7){c[i>>2]=1;if(e|0){g=b_(b,e)|0;if(!g){g=0;break}B6(g|0,d|0,e|0)|0;g=c_(b,e,f)|0;break}a[b+484>>0]=f;if(!f)g=1;else{g=b+24|0;f=c[g>>2]|0;d=b+296|0;c[d>>2]=f;h=c[b+28>>2]|0;c[b+40>>2]=h;e=b+280|0;h=tb[c[e>>2]&127](b,f,h,g)|0;c[j>>2]=h;if(h|0){c[b+292>>2]=c[b+288>>2];c[e>>2]=66;g=0;break}switch(c[i>>2]|0){case 3:{j=c[b+144>>2]|0;xb[c[j+52>>2]&31](j,c[d>>2]|0,c[g>>2]|0,b+408|0);c[d>>2]=c[g>>2];g=2;break a}case 1:case 0:{c[i>>2]=2;g=1;break a}default:{g=1;break a}}}}while(0);return g|0}function $Z(b){b=b|0;var d=0;d=b+496|0;if(!(c[d>>2]|0))c[d>>2]=d_()|0;if(!(a[b+236>>0]|0))b=1;else b=WZ(b,142627)|0;return b|0}function a_(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;return c[a+284>>2]|0}function b_(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;l=a+284|0;a:do switch(c[a+480>>2]|0){case 3:{c[l>>2]=33;d=0;break}case 2:{c[l>>2]=36;d=0;break}default:{m=a+32|0;k=c[m>>2]|0;p=a+28|0;e=c[p>>2]|0;d=e;if((k-e|0)<(b|0)){q=a+24|0;j=c[q>>2]|0;f=e-j|0;o=a+8|0;g=c[o>>2]|0;r=g;h=j-r|0;i=(h|0)>1024;e=i?1024:h;b=f+b+e|0;do if((b|0)>(k-r|0)){d=k-j|0;d=(d|0)==0?1024:d;do d=d<<1;while((d|0)<(b|0));e=pb[c[a+12>>2]&63](d)|0;if(!e){c[l>>2]=1;d=0;break a}c[m>>2]=e+d;d=c[q>>2]|0;b=d;f=(c[p>>2]|0)-b|0;if(!d){d=e+f|0;c[p>>2]=d;c[o>>2]=e;n=14;break}else{n=b-(c[o>>2]|0)|0;n=(n|0)<1024?n:1024;B6(e|0,d+(0-n)|0,n+f|0)|0;db[c[a+20>>2]&127](c[o>>2]|0);c[o>>2]=e;d=e+((c[p>>2]|0)-(c[q>>2]|0))+n|0;c[p>>2]=d;e=e+n|0;n=14;break}}else if(i){d=h-e|0;I6(g|0,g+d|0,e+f|0)|0;e=0-d|0;d=(c[p>>2]|0)+e|0;c[p>>2]=d;e=(c[q>>2]|0)+e|0;n=14}while(0);if((n|0)==14)c[q>>2]=e;c[a+292>>2]=0;c[a+288>>2]=0;c[a+296>>2]=0}}}while(0);return d|0}function c_(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=b+480|0;i=b+284|0;switch(c[h>>2]|0){case 3:{c[i>>2]=33;d=0;break}case 2:{c[i>>2]=36;d=0;break}case 0:{if((c[b+476>>2]|0)==0?($Z(b)|0)<<24>>24==0:0){c[i>>2]=1;d=0}else f=7;break}default:f=7}a:do if((f|0)==7){c[h>>2]=1;f=b+24|0;k=c[f>>2]|0;g=b+296|0;c[g>>2]=k;l=b+28|0;j=(c[l>>2]|0)+d|0;c[l>>2]=j;c[b+40>>2]=j;l=b+36|0;c[l>>2]=(c[l>>2]|0)+d;a[b+484>>0]=e;d=b+280|0;j=tb[c[d>>2]&127](b,k,j,f)|0;c[i>>2]=j;if(j|0){c[b+292>>2]=c[b+288>>2];c[d>>2]=66;d=0;break}switch(c[h>>2]|0){case 3:{d=2;break}case 1:case 0:{if(!e)d=1;else{c[h>>2]=2;d=1;break a}break}default:d=1}l=c[b+144>>2]|0;xb[c[l+52>>2]&31](l,c[g>>2]|0,c[f>>2]|0,b+408|0);c[g>>2]=c[f>>2]}while(0);return d|0}function d_(){var a=0;a=Ya(0)|0;T4(((a|0)==-1&1)+a|0);return U4()|0}function e_(a){a=a|0;return c[a+284>>2]|0}function f_(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+288|0;d=c[b>>2]|0;e=a+408|0;if(d|0?(f=a+296|0,g=c[f>>2]|0,d>>>0>=g>>>0):0){a=c[a+144>>2]|0;xb[c[a+52>>2]&31](a,g,d,e);c[f>>2]=c[b>>2]}return (c[e>>2]|0)+1|0}function g_(a){a=a|0;if((a+-1|0)>>>0<40)a=c[56636+(a<<2)>>2]|0;else a=0;return a|0}function h_(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;do if((b|0)>=0){if((b|0)<128){a[c>>0]=b;d=1;break}h=c+1|0;d=b>>>6;e=(b&63|128)&255;if((b|0)<2048){a[c>>0]=d|192;a[h>>0]=e;d=2;break}f=b>>>12;g=c+2|0;d=(d&63|128)&255;if((b|0)<65536){a[c>>0]=f|224;a[h>>0]=d;a[g>>0]=e;d=3;break}if((b|0)<1114112){a[c>>0]=b>>>18|240;a[h>>0]=f&63|128;a[g>>0]=d;a[c+3>>0]=e;d=4}else d=0}else d=0;while(0);return d|0}function i_(){return 1912}function j_(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;i=0;while(1){if((i|0)==368){i=0;break}a[e+i>>0]=a[56800+i>>0]|0;i=i+1|0}a:while(1){if((i|0)>=128){j=5;break}switch(a[56876+i>>0]|0){case 0:case 28:break;default:if((c[f+(i<<2)>>2]|0)!=(i|0)){e=0;break a}}i=i+1|0}b:do if((j|0)==5){t=e+376|0;m=e+888|0;n=e+76|0;l=0;while(1){if((l|0)>=256)break;o=c[f+(l<<2)>>2]|0;p=t+(l<<1)|0;q=m+(l<<2)|0;r=m+(l<<2)+1|0;s=n+l|0;do if((o|0)==-1){a[s>>0]=1;b[p>>1]=-1;a[q>>0]=1;a[r>>0]=0}else{if((o|0)<0){if((o|0)<-4){e=0;break b}a[s>>0]=3-o;a[q>>0]=0;b[p>>1]=0;break}if((o|0)<128){i=a[56876+o>>0]|0;switch(i<<24>>24){case 0:case 28:break;default:if((o|0)!=(l|0)){e=0;break b}}a[s>>0]=i;a[q>>0]=1;a[r>>0]=o;b[p>>1]=(o|0)==0?-1:o&65535;break}if((k_(o)|0)<0){a[s>>0]=0;b[p>>1]=-1;a[q>>0]=1;a[r>>0]=0;break}if((o|0)>65535){e=0;break b}i=o>>>8;j=o>>>5&7;k=1<<(o&31);if(!(c[57168+((d[143937+i>>0]<<3|j)<<2)>>2]&k))i=c[57168+((d[144193+i>>0]<<3|j)<<2)>>2]&k|0?26:28;else i=22;a[s>>0]=i;a[q>>0]=h_(o,r)|0;b[p>>1]=o}while(0);l=l+1|0}c[e+372>>2]=h;c[e+368>>2]=g;if(g|0){c[e+332>>2]=108;c[e+336>>2]=108;c[e+340>>2]=108;c[e+344>>2]=109;c[e+348>>2]=109;c[e+352>>2]=109;c[e+356>>2]=110;c[e+360>>2]=110;c[e+364>>2]=110}c[e+60>>2]=18;c[e+64>>2]=19}while(0);return e|0}function k_(b){b=b|0;var c=0;switch(b>>8|0){case 223:case 222:case 221:case 220:case 219:case 218:case 217:case 216:{b=-1;break}case 0:{if(!(a[56876+b>>0]|0))b=-1;else c=4;break}case 255:{if((b|1|0)==65535)b=-1;else c=4;break}default:c=4}return b|0}function l_(a,b){a=a|0;b=b|0;a=vb[c[a+368>>2]&127](c[a+372>>2]|0,b)|0;if(a>>>0>65535)a=0;else a=c[57168+(((d[144193+(a>>>8)>>0]|0)<<3|a>>>5&7)<<2)>>2]&1<<(a&31);return a|0}function m_(a,b){a=a|0;b=b|0;a=vb[c[a+368>>2]&127](c[a+372>>2]|0,b)|0;if(a>>>0>65535)a=0;else a=c[57168+(((d[143937+(a>>>8)>>0]|0)<<3|a>>>5&7)<<2)>>2]&1<<(a&31);return a|0}function n_(a,b){a=a|0;b=b|0;a=vb[c[a+368>>2]&127](c[a+372>>2]|0,b)|0;if(a>>>0>65535)a=1;else a=(k_(a)|0)<0;return a&1|0}function o_(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;q=l;l=l+16|0;m=q;n=b+368|0;o=b+888|0;p=b+372|0;k=b+76|0;a:while(1){j=c[e>>2]|0;if((j|0)==(f|0))break;r=d[j>>0]|0;i=o+(r<<2)+1|0;r=a[o+(r<<2)>>0]|0;b=r<<24>>24;if(!(r<<24>>24)){b=h_(vb[c[n>>2]&127](c[p>>2]|0,j)|0,m)|0;if((b|0)>(h-(c[g>>2]|0)|0))break;j=c[e>>2]|0;i=m;j=j+((d[k+(d[j>>0]|0)>>0]|0)+-3)|0}else{if((b|0)>(h-(c[g>>2]|0)|0))break;j=j+1|0}c[e>>2]=j;while(1){j=a[i>>0]|0;r=c[g>>2]|0;c[g>>2]=r+1;a[r>>0]=j;b=b+-1|0;if(!b)continue a;else i=i+1|0}}l=q;return}function p_(a,e,f,g,h){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0;l=a+376|0;m=a+368|0;n=a+372|0;k=a+76|0;while(1){i=c[e>>2]|0;if((i|0)==(f|0))break;if((c[g>>2]|0)==(h|0))break;a=b[l+((d[i>>0]|0)<<1)>>1]|0;if(!(a<<16>>16)){a=(vb[c[m>>2]&127](c[n>>2]|0,i)|0)&65535;i=c[e>>2]|0;j=(d[k+(d[i>>0]|0)>>0]|0)+-3|0}else j=1;c[e>>2]=i+j;j=c[g>>2]|0;c[g>>2]=j+2;b[j>>1]=a}return}function q_(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;a:do if((e|0)==(f|0))h=-4;else{q=b+76|0;i=e+1|0;l=b+332|0;m=f;h=(i|0)==(f|0);n=b+340|0;o=b+336|0;k=e+2|0;j=m-e|0;do switch(a[q+(d[e>>0]|0)>>0]|0){case 12:{h=S_(12,b,i,f,g)|0;break a}case 13:{h=S_(13,b,i,f,g)|0;break a}case 2:{if(h){h=-1;break a}switch(a[q+(d[i>>0]|0)>>0]|0){case 16:{h=T_(b,k,f,g)|0;break a}case 15:{h=O_(b,k,f,g)|0;break a}case 7:case 6:case 5:case 29:case 24:case 22:{c[g>>2]=e;h=29;break a}default:{c[g>>2]=i;h=0;break a}}}case 9:{if(h){c[g>>2]=f;h=-15;break a}else p=13;break}case 10:case 21:{p=13;break}case 30:{h=I_(b,i,f,g)|0;break a}case 35:{c[g>>2]=i;h=38;break a}case 20:{c[g>>2]=i;h=25;break a}case 4:{if(h){h=-26;break a}if((a[i>>0]|0)==93){if((k|0)==(f|0)){h=-1;break a}if((a[k>>0]|0)==62){c[g>>2]=e+3;h=34;break a}}c[g>>2]=i;h=26;break a}case 31:{c[g>>2]=i;h=23;break a}case 32:{if(h){h=-24;break a}switch(a[q+(d[i>>0]|0)>>0]|0){case 33:{c[g>>2]=k;h=36;break a}case 15:{c[g>>2]=k;h=35;break a}case 34:{c[g>>2]=k;h=37;break a}case 32:case 36:case 35:case 11:case 21:case 10:case 9:{c[g>>2]=i;h=24;break a}default:{c[g>>2]=i;h=0;break a}}}case 36:{c[g>>2]=i;h=21;break a}case 11:{c[g>>2]=i;h=17;break a}case 19:{h=U_(b,i,f,g)|0;break a}case 5:{if((j|0)<2){h=-2;break a}if(!(vb[c[b+344>>2]&127](b,e)|0))if(!(vb[c[l>>2]&127](b,e)|0)){c[g>>2]=e;h=0;break a}else{h=19;i=k}else{h=18;i=k}break}case 6:{if((j|0)<3){h=-2;break a}i=e+3|0;if(!(vb[c[b+348>>2]&127](b,e)|0))if(!(vb[c[o>>2]&127](b,e)|0)){c[g>>2]=e;h=0;break a}else h=19;else h=18;break}case 7:{if((j|0)<4){h=-2;break a}i=e+4|0;if(!(vb[c[b+352>>2]&127](b,e)|0))if(!(vb[c[n>>2]&127](b,e)|0)){c[g>>2]=e;h=0;break a}else h=19;else h=18;break}case 24:case 22:{h=18;break}case 23:case 27:case 26:case 25:{h=19;break}default:{c[g>>2]=e;h=0;break a}}while(0);if((p|0)==13){b:while(1){h=e;e=e+1|0;if((e|0)==(f|0)){p=17;break}switch(a[q+(d[e>>0]|0)>>0]|0){case 10:case 21:{p=13;continue b}case 9:break;default:{p=16;break b}}if((h+2|0)==(f|0)){p=16;break}else p=13}if((p|0)==16){c[g>>2]=e;h=15;break}else if((p|0)==17){c[g>>2]=f;h=15;break}}c:while(1){if((i|0)==(f|0)){p=96;break}j=i+1|0;e=m-i|0;switch(a[q+(d[i>>0]|0)>>0]|0){case 27:case 26:case 25:case 24:case 22:{p=h;i=j;h=p;continue c}case 29:{p=54;break c}case 10:case 9:case 21:case 30:case 20:case 36:case 35:case 32:case 11:{p=67;break c}case 34:{p=86;break c}case 33:{p=89;break c}case 15:{p=92;break c}case 5:{if((e|0)<2){h=-2;break a}if(!(vb[c[l>>2]&127](b,i)|0)){p=57;break c}p=h;i=i+2|0;h=p;continue c}case 6:{if((e|0)<3){h=-2;break a}if(!(vb[c[o>>2]&127](b,i)|0)){p=61;break c}p=h;i=i+3|0;h=p;continue c}case 7:{if((e|0)<4){h=-2;break a}if(!(vb[c[n>>2]&127](b,i)|0)){p=65;break c}p=h;i=i+4|0;h=p;continue c}case 23:{switch(h&63){case 18:break;case 41:{h=19;i=j;continue c}default:{p=h;i=j;h=p;continue c}}if((j|0)==(f|0)){h=-1;break a}h=m-j|0;switch(a[q+(d[j>>0]|0)>>0]|0){case 29:{p=71;break c}case 27:case 26:case 25:case 24:case 22:{h=41;i=i+2|0;continue c}case 5:{if((h|0)<2){h=-2;break a}if(!(vb[c[l>>2]&127](b,j)|0)){p=75;break c}h=41;i=i+3|0;continue c}case 6:{if((h|0)<3){h=-2;break a}if(!(vb[c[o>>2]&127](b,j)|0)){p=79;break c}h=41;i=i+4|0;continue c}case 7:{if((h|0)<4){h=-2;break a}if(!(vb[c[n>>2]&127](b,j)|0)){p=83;break c}h=41;i=i+5|0;continue c}default:{h=19;i=j;continue c}}}default:{p=95;break c}}}switch(p|0){case 54:{c[g>>2]=i;h=0;break a}case 57:{c[g>>2]=i;h=0;break a}case 61:{c[g>>2]=i;h=0;break a}case 65:{c[g>>2]=i;h=0;break a}case 67:{c[g>>2]=i;break a}case 71:{c[g>>2]=j;h=0;break a}case 75:{c[g>>2]=j;h=0;break a}case 79:{c[g>>2]=j;h=0;break a}case 83:{c[g>>2]=j;h=0;break a}case 86:if((h|0)==19){c[g>>2]=i;h=0;break a}else{c[g>>2]=j;h=32;break a}case 89:if((h|0)==19){c[g>>2]=i;h=0;break a}else{c[g>>2]=j;h=31;break a}case 92:if((h|0)==19){c[g>>2]=i;h=0;break a}else{c[g>>2]=j;h=30;break a}case 95:{c[g>>2]=i;h=0;break a}case 96:{h=0-h|0;break a}}}while(0);return h|0}function r_(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a:do if((e|0)!=(f|0)){p=b+76|0;l=b+356|0;m=f;n=b+360|0;i=e+1|0;o=b+364|0;h=m-e|0;j=e+2|0;k=(i|0)==(f|0);b:do switch(a[p+(d[e>>0]|0)>>0]|0){case 2:{e=L_(b,i,f,g)|0;break a}case 3:{e=H_(b,i,f,g)|0;break a}case 9:{if(k){e=-3;break a}c[g>>2]=(a[p+(d[i>>0]|0)>>0]|0)==10?j:i;e=7;break a}case 10:{c[g>>2]=i;e=7;break a}case 4:{if(k){e=-5;break a}if((a[i>>0]|0)==93){if((j|0)==(f|0)){e=-5;break a}if((a[j>>0]|0)==62){c[g>>2]=j;e=0;break a}}break}case 5:{if((h|0)<2){e=-2;break a}if(!(vb[c[l>>2]&127](b,e)|0))i=j;else{c[g>>2]=e;e=0;break a}break}case 6:{if((h|0)<3){e=-2;break a}if(!(vb[c[n>>2]&127](b,e)|0)){i=e+3|0;break b}else{c[g>>2]=e;e=0;break a}}case 7:{if((h|0)<4){e=-2;break a}if(!(vb[c[o>>2]&127](b,e)|0)){i=e+4|0;break b}else{c[g>>2]=e;e=0;break a}}case 8:case 1:case 0:{c[g>>2]=e;e=0;break a}default:{}}while(0);c:while(1){if((i|0)==(f|0)){h=44;break}j=i+2|0;e=i+1|0;h=m-i|0;switch(a[p+(d[i>>0]|0)>>0]|0){case 10:case 9:case 8:case 1:case 0:case 2:case 3:{h=43;break c}case 5:{if((h|0)<2){h=29;break c}if(!(vb[c[l>>2]&127](b,i)|0)){i=j;continue c}else{h=29;break c}}case 6:{if((h|0)<3){h=32;break c}if(vb[c[n>>2]&127](b,i)|0){h=32;break c}i=i+3|0;continue c}case 7:{if((h|0)<4){h=36;break c}if(vb[c[o>>2]&127](b,i)|0){h=36;break c}i=i+4|0;continue c}case 4:{if((e|0)==(f|0)){h=43;break c}if((a[e>>0]|0)!=93){i=e;continue c}if((j|0)==(f|0)){h=43;break c}if((a[j>>0]|0)==62){h=42;break c}else{i=e;continue c}}default:{i=e;continue c}}}if((h|0)==29){c[g>>2]=i;e=6;break}else if((h|0)==32){c[g>>2]=i;e=6;break}else if((h|0)==36){c[g>>2]=i;e=6;break}else if((h|0)==42){c[g>>2]=j;e=0;break}else if((h|0)==43){c[g>>2]=i;e=6;break}else if((h|0)==44){c[g>>2]=f;e=6;break}}else e=-4;while(0);return e|0}
function s_(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a:do if((e|0)!=(f|0)){p=b+76|0;l=b+356|0;m=f;n=b+360|0;i=e+1|0;o=b+364|0;h=m-e|0;j=(i|0)==(f|0);k=e+2|0;b:do switch(a[p+(d[e>>0]|0)>>0]|0){case 4:{if(j){e=-1;break a}if((a[i>>0]|0)==93){if((k|0)==(f|0)){e=-1;break a}if((a[k>>0]|0)==62){c[g>>2]=e+3;e=40;break a}}break}case 9:{if(j){e=-1;break a}c[g>>2]=(a[p+(d[i>>0]|0)>>0]|0)==10?k:i;e=7;break a}case 10:{c[g>>2]=i;e=7;break a}case 5:{if((h|0)<2){e=-2;break a}if(!(vb[c[l>>2]&127](b,e)|0))i=k;else{c[g>>2]=e;e=0;break a}break}case 6:{if((h|0)<3){e=-2;break a}if(!(vb[c[n>>2]&127](b,e)|0)){i=e+3|0;break b}else{c[g>>2]=e;e=0;break a}}case 7:{if((h|0)<4){e=-2;break a}if(!(vb[c[o>>2]&127](b,e)|0)){i=e+4|0;break b}else{c[g>>2]=e;e=0;break a}}case 8:case 1:case 0:{c[g>>2]=e;e=0;break a}default:{}}while(0);c:while(1){if((i|0)==(f|0)){h=36;break}e=m-i|0;switch(a[p+(d[i>>0]|0)>>0]|0){case 4:case 10:case 9:case 8:case 1:case 0:{h=34;break c}case 5:{if((e|0)<2){h=27;break c}if(!(vb[c[l>>2]&127](b,i)|0))e=2;else{h=27;break c}break}case 6:{if((e|0)<3){h=30;break c}if(!(vb[c[n>>2]&127](b,i)|0))e=3;else{h=30;break c}break}case 7:{if((e|0)<4){h=33;break c}if(!(vb[c[o>>2]&127](b,i)|0))e=4;else{h=33;break c}break}default:e=1}i=i+e|0}if((h|0)==27){c[g>>2]=i;e=6;break}else if((h|0)==30){c[g>>2]=i;e=6;break}else if((h|0)==33){c[g>>2]=i;e=6;break}else if((h|0)==34){c[g>>2]=i;e=6;break}else if((h|0)==36){c[g>>2]=f;e=6;break}}else e=-4;while(0);return e|0}function t_(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;o=b+76|0;p=f;q=b+356|0;r=b+360|0;s=b+364|0;n=0;a:while(1){if((e|0)==(f|0)){e=-1;break}h=e+1|0;i=e+2|0;j=(i|0)==(f|0);k=e+3|0;l=p-e|0;m=(h|0)==(f|0);switch(a[o+(d[e>>0]|0)>>0]|0){case 8:case 1:case 0:{t=14;break a}case 5:{if((l|0)<2){e=-2;break a}if(!(vb[c[q>>2]&127](b,e)|0)){m=n;e=i;n=m;continue a}else{t=6;break a}}case 6:{if((l|0)<3){e=-2;break a}if(!(vb[c[r>>2]&127](b,e)|0)){m=n;e=k;n=m;continue a}else{t=9;break a}}case 7:{if((l|0)<4){e=-2;break a}if(vb[c[s>>2]&127](b,e)|0){t=12;break a}m=n;e=e+4|0;n=m;continue a}case 2:{if(m){e=-1;break a}if((a[h>>0]|0)!=33){m=n;e=h;n=m;continue a}if(j){e=-1;break a}e=(a[i>>0]|0)==91;n=(e&1)+n|0;e=e?k:i;continue a}case 4:{if(m){e=-1;break a}if((a[h>>0]|0)!=93){m=n;e=h;n=m;continue a}if(j){e=-1;break a}if((a[i>>0]|0)!=62){m=n;e=i;n=m;continue a}if(!n){t=24;break a}n=n+-1|0;e=k;continue a}default:{m=n;e=h;n=m;continue a}}}if((t|0)==6){c[g>>2]=e;e=0}else if((t|0)==9){c[g>>2]=e;e=0}else if((t|0)==12){c[g>>2]=e;e=0}else if((t|0)==14){c[g>>2]=e;e=0}else if((t|0)==24){c[g>>2]=k;e=42}return e|0}function u_(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;do if((e|0)!=(f|0)){j=b+76|0;h=e;a:while(1){if((h|0)==(f|0)){k=22;break}i=h+1|0;switch(a[j+(d[h>>0]|0)>>0]|0){case 3:{k=8;break a}case 2:{k=11;break a}case 10:{k=12;break a}case 9:{k=15;break a}case 21:{k=19;break a}case 5:{h=h+2|0;continue a}case 6:{h=h+3|0;continue a}case 7:{h=h+4|0;continue a}default:{h=i;continue a}}}if((k|0)==8)if((h|0)==(e|0)){h=H_(b,i,f,g)|0;break}else{c[g>>2]=h;h=6;break}else if((k|0)==11){c[g>>2]=h;h=0;break}else if((k|0)==12)if((h|0)==(e|0)){c[g>>2]=i;h=7;break}else{c[g>>2]=h;h=6;break}else if((k|0)==15){if((h|0)!=(e|0)){c[g>>2]=h;h=6;break}if((i|0)==(f|0)){h=-3;break}c[g>>2]=(a[j+(d[i>>0]|0)>>0]|0)==10?e+2|0:i;h=7;break}else if((k|0)==19)if((h|0)==(e|0)){c[g>>2]=i;h=39;break}else{c[g>>2]=h;h=6;break}else if((k|0)==22){c[g>>2]=f;h=6;break}}else h=-4;while(0);return h|0}function v_(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;do if((e|0)!=(f|0)){j=b+76|0;h=e;a:while(1){if((h|0)==(f|0)){k=21;break}i=h+1|0;switch(a[j+(d[h>>0]|0)>>0]|0){case 3:{k=8;break a}case 30:{k=11;break a}case 10:{k=14;break a}case 9:{k=17;break a}case 5:{h=h+2|0;continue a}case 6:{h=h+3|0;continue a}case 7:{h=h+4|0;continue a}default:{h=i;continue a}}}if((k|0)==8)if((h|0)==(e|0)){h=H_(b,i,f,g)|0;break}else{c[g>>2]=h;h=6;break}else if((k|0)==11)if((h|0)==(e|0)){h=I_(b,i,f,g)|0;h=(h|0)==22?0:h;break}else{c[g>>2]=h;h=6;break}else if((k|0)==14)if((h|0)==(e|0)){c[g>>2]=i;h=7;break}else{c[g>>2]=h;h=6;break}else if((k|0)==17){if((h|0)!=(e|0)){c[g>>2]=h;h=6;break}if((i|0)==(f|0)){h=-3;break}c[g>>2]=(a[j+(d[i>>0]|0)>>0]|0)==10?e+2|0:i;h=7;break}else if((k|0)==21){c[g>>2]=f;h=6;break}}else h=-4;while(0);return h|0}function w_(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;g=b+76|0;a:while(1){f=a[c>>0]|0;b=d+1|0;e=c+1|0;switch(a[g+(f&255)>>0]|0){case 7:{h=3;break}case 6:{b=f;h=5;break}case 5:{b=f;break}case 27:case 26:case 25:case 24:case 23:case 22:case 29:if((a[d>>0]|0)==f<<24>>24){d=b;c=e;continue a}else{b=0;break a}default:{h=10;break a}}if((h|0)==3){h=0;if(f<<24>>24!=(a[d>>0]|0)){b=0;break}d=b;c=e;b=a[e>>0]|0;h=5}if((h|0)==5){h=0;e=c+1|0;if(b<<24>>24!=(a[d>>0]|0)){b=0;break}d=d+1|0;c=e;b=a[e>>0]|0}if(b<<24>>24!=(a[d>>0]|0)){b=0;break}if((a[c+1>>0]|0)==(a[d+1>>0]|0)){d=d+2|0;c=c+2|0}else{b=0;break}}b:do if((h|0)==10){b=a[d>>0]|0;if(f<<24>>24==b<<24>>24)b=1;else{switch(a[g+(b&255)>>0]|0){case 27:case 26:case 25:case 24:case 23:case 22:case 29:case 7:case 6:case 5:{b=0;break b}default:{}}b=1}}while(0);return b|0}function x_(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;b=c;while(1){c=a[e>>0]|0;f=(b|0)==(d|0);if(!(c<<24>>24)){g=6;break}if(f){b=0;break}if((a[b>>0]|0)!=c<<24>>24){b=0;break}e=e+1|0;b=b+1|0}if((g|0)==6)b=f&1;return b|0}function y_(b,c){b=b|0;c=c|0;var e=0,f=0;f=b+76|0;b=c;a:while(1){switch(a[f+(d[b>>0]|0)>>0]|0){case 5:{e=2;break}case 6:{e=3;break}case 7:{e=4;break}case 27:case 26:case 25:case 24:case 23:case 22:case 29:{e=1;break}default:break a}b=b+e|0}return b-c|0}function z_(b,c){b=b|0;c=c|0;b=b+76|0;a:while(1){switch(a[b+(d[c>>0]|0)>>0]|0){case 21:case 9:case 10:break;default:break a}c=c+1|0}return c|0}function A_(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;w=b+76|0;u=0;v=0;b=1;a:while(1){h=e+1|0;s=a[h>>0]|0;t=v+1|0;i=(b|0)!=2;j=(b|0)==2;k=e+2|0;l=(v|0)<(f|0);m=(b|0)==1;n=g+(v<<4)+12|0;o=g+(v<<4)+4|0;p=g+(v<<4)|0;q=(b|0)==0;r=g+(v<<4)+8|0;do switch(a[w+(s&255)>>0]|0){case 5:{if(!q){r=b;s=v;t=u;e=k;b=r;v=s;u=t;continue a}if(!l){s=v;t=u;b=1;e=k;v=s;u=t;continue a}c[p>>2]=h;a[n>>0]=1;s=v;t=u;b=1;e=k;v=s;u=t;continue a}case 6:{if(q&l){c[p>>2]=h;a[n>>0]=1;b=1}else b=q?1:b;s=v;t=u;e=e+3|0;v=s;u=t;continue a}case 7:{if(q&l){c[p>>2]=h;a[n>>0]=1;b=1}else b=q?1:b;s=v;t=u;e=e+4|0;v=s;u=t;continue a}case 24:case 22:case 29:{if(!q){r=b;s=v;t=u;e=h;b=r;v=s;u=t;continue a}if(!l){s=v;t=u;b=1;e=h;v=s;u=t;continue a}c[p>>2]=h;a[n>>0]=1;s=v;t=u;b=1;e=h;v=s;u=t;continue a}case 12:{if(i){if(!l){t=v;u=12;b=2;e=h;v=t;continue a}c[o>>2]=k;t=v;u=12;b=2;e=h;v=t;continue a}if((u|0)!=12){s=v;t=u;b=2;e=h;v=s;u=t;continue a}if(!l){u=12;v=t;b=0;e=h;continue a}c[r>>2]=h;u=12;v=t;b=0;e=h;continue a}case 13:{if(i){if(!l){t=v;u=13;b=2;e=h;v=t;continue a}c[o>>2]=k;t=v;u=13;b=2;e=h;v=t;continue a}if((u|0)!=13){s=v;t=u;b=2;e=h;v=s;u=t;continue a}if(!l){u=13;v=t;b=0;e=h;continue a}c[r>>2]=h;u=13;v=t;b=0;e=h;continue a}case 3:{if(!l){r=b;s=v;t=u;e=h;b=r;v=s;u=t;continue a}a[n>>0]=0;r=b;s=v;t=u;e=h;b=r;v=s;u=t;continue a}case 21:{if(m){s=v;t=u;b=0;e=h;v=s;u=t;continue a}if(!j){r=b;s=v;t=u;e=h;b=r;v=s;u=t;continue a}if(!l){s=v;t=u;b=2;e=h;v=s;u=t;continue a}if(!(a[n>>0]|0)){s=v;t=u;b=2;e=h;v=s;u=t;continue a}if(((s<<24>>24==32?(h|0)!=(c[o>>2]|0):0)?(x=a[k>>0]|0,x<<24>>24!=32):0)?(d[w+(x&255)>>0]|0)!=(u|0):0){s=v;t=u;b=2;e=h;v=s;u=t;continue a}a[n>>0]=0;s=v;t=u;b=2;e=h;v=s;u=t;continue a}case 10:case 9:{if(m){s=v;t=u;b=0;e=h;v=s;u=t;continue a}if(!j){r=b;s=v;t=u;e=h;b=r;v=s;u=t;continue a}if(!l){s=v;t=u;b=2;e=h;v=s;u=t;continue a}a[n>>0]=0;s=v;t=u;b=2;e=h;v=s;u=t;continue a}case 17:case 11:if(i)break a;else{s=v;t=u;b=2;e=h;v=s;u=t;continue a}default:{r=b;s=v;t=u;e=h;b=r;v=s;u=t;continue a}}while(0)}return v|0}function B_(b,c){b=b|0;c=c|0;var d=0,e=0;b=c+2|0;d=a[b>>0]|0;a:do if(d<<24>>24==120){d=c+3|0;b=0;while(1){b:while(1){e=a[d>>0]|0;c=e<<24>>24;if(e<<24>>24==59){e=14;break a}switch(c|0){case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:case 48:{e=7;break b}case 70:case 69:case 68:case 67:case 66:case 65:{e=8;break b}case 102:case 101:case 100:case 99:case 98:case 97:{e=9;break b}default:{}}d=d+1|0}if((e|0)==7){e=0;b=c+-48|b<<4}else if((e|0)==8){e=0;b=(b<<4)+-55+c|0}else if((e|0)==9){e=0;b=(b<<4)+-87+c|0}if((b|0)<1114112)d=d+1|0;else{b=-1;break}}}else{c=b;b=0;while(1){if(d<<24>>24==59){e=14;break a}b=(b*10|0)+-48+(d<<24>>24)|0;d=c+1|0;if((b|0)>=1114112){b=-1;break a}c=d;d=a[d>>0]|0}}while(0);if((e|0)==14)b=k_(b)|0;return b|0}function C_(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=c+1|0;f=c+2|0;a:do switch(d-c|0){case 2:{if((a[e>>0]|0)==116){b=a[c>>0]|0;b=b<<24>>24==108?60:b<<24>>24==103?62:0}else g=14;break}case 3:{if(((a[c>>0]|0)==97?(a[e>>0]|0)==109:0)?(a[f>>0]|0)==112:0)b=38;else g=14;break}case 4:{b=c+3|0;switch(a[c>>0]|0){case 113:{if((a[e>>0]|0)!=117){g=14;break a}if((a[f>>0]|0)!=111){g=14;break a}if((a[b>>0]|0)==116){b=34;break a}else{g=14;break a}}case 97:{if((a[e>>0]|0)!=112){g=14;break a}if((a[f>>0]|0)!=111){g=14;break a}if((a[b>>0]|0)==115){b=39;break a}else{g=14;break a}}default:{g=14;break a}}}default:g=14}while(0);if((g|0)==14)b=0;return b|0}function D_(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=b+76|0;i=g+4|0;b=e;while(1){if(b>>>0>=f>>>0)break;e=b+1|0;switch(a[h+(d[b>>0]|0)>>0]|0){case 5:{b=b+2|0;break}case 6:{b=b+3|0;break}case 7:{b=b+4|0;break}case 10:{c[i>>2]=-1;c[g>>2]=(c[g>>2]|0)+1;b=e;break}case 9:{c[g>>2]=(c[g>>2]|0)+1;if((e|0)==(f|0))b=f;else b=(a[h+(d[e>>0]|0)>>0]|0)==10?b+2|0:e;c[i>>2]=-1;break}default:b=e}c[i>>2]=(c[i>>2]|0)+1}return}function E_(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;h=e+-1|0;g=b+76|0;a:while(1){d=d+1|0;if((d|0)==(h|0)){d=1;break}b=a[d>>0]|0;e=b<<24>>24;switch(a[g+(b&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(b<<24>>24==9){i=7;break a}else continue a;case 22:case 26:{if(b<<24>>24>=0)continue a;break}default:{}}switch(e|0){case 64:case 36:break;default:{i=7;break a}}}if((i|0)==7){c[f>>2]=d;d=0}return d|0}function F_(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0;i=h;while(1){j=c[e>>2]|0;if((j|0)==(f|0))break;k=d[j>>0]|0;b=c[g>>2]|0;if(!(k&128)){if((b|0)==(h|0))break;c[e>>2]=j+1;j=a[j>>0]|0;k=c[g>>2]|0;c[g>>2]=k+1;a[k>>0]=j;continue}else{if((i-b|0)<2)break;c[g>>2]=b+1;a[b>>0]=k>>>6|192;j=c[g>>2]|0;c[g>>2]=j+1;a[j>>0]=k&63|128;c[e>>2]=(c[e>>2]|0)+1;continue}}return}function G_(a,e,f,g,h){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;while(1){a=c[e>>2]|0;if((a|0)==(f|0))break;if((c[g>>2]|0)==(h|0))break;c[e>>2]=a+1;i=d[a>>0]|0;a=c[g>>2]|0;c[g>>2]=a+2;b[a>>1]=i}return}function H_(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:do if((e|0)!=(f|0)){n=b+76|0;m=f;h=m-e|0;i=e+1|0;b:do switch(a[n+(d[e>>0]|0)>>0]|0){case 29:{c[g>>2]=e;e=0;break a}case 24:case 22:break;case 5:{if((h|0)<2){e=-2;break a}if(!(vb[c[b+344>>2]&127](b,e)|0)){c[g>>2]=e;e=0;break a}else{i=e+2|0;break b}}case 6:{if((h|0)<3){e=-2;break a}if(!(vb[c[b+348>>2]&127](b,e)|0)){c[g>>2]=e;e=0;break a}else{i=e+3|0;break b}}case 7:{if((h|0)<4){e=-2;break a}if(!(vb[c[b+352>>2]&127](b,e)|0)){c[g>>2]=e;e=0;break a}else{i=e+4|0;break b}}case 19:{e=J_(b,i,f,g)|0;break a}default:{c[g>>2]=e;e=0;break a}}while(0);h=b+332|0;j=b+336|0;k=b+340|0;c:while(1){if((i|0)==(f|0)){e=-1;break a}l=i+1|0;e=m-i|0;switch(a[n+(d[i>>0]|0)>>0]|0){case 27:case 26:case 25:case 24:case 22:{i=l;continue c}case 29:{h=21;break c}case 18:{h=34;break c}case 5:{if((e|0)<2){e=-2;break a}if(!(vb[c[h>>2]&127](b,i)|0)){h=24;break c}i=i+2|0;continue c}case 6:{if((e|0)<3){e=-2;break a}if(!(vb[c[j>>2]&127](b,i)|0)){h=28;break c}i=i+3|0;continue c}case 7:{if((e|0)<4){e=-2;break a}if(!(vb[c[k>>2]&127](b,i)|0)){h=32;break c}i=i+4|0;continue c}default:{h=35;break c}}}if((h|0)==21){c[g>>2]=i;e=0;break}else if((h|0)==24){c[g>>2]=i;e=0;break}else if((h|0)==28){c[g>>2]=i;e=0;break}else if((h|0)==32){c[g>>2]=i;e=0;break}else if((h|0)==34){c[g>>2]=l;e=9;break}else if((h|0)==35){c[g>>2]=i;e=0;break}}else e=-1;while(0);return e|0}function I_(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;a:do if((e|0)!=(f|0)){o=b+76|0;n=f;h=n-e|0;switch(a[o+(d[e>>0]|0)>>0]|0){case 29:{c[g>>2]=e;h=0;break a}case 24:case 22:{h=1;break}case 5:{if((h|0)<2){h=-2;break a}if(!(vb[c[b+344>>2]&127](b,e)|0)){c[g>>2]=e;h=0;break a}else h=2;break}case 6:{if((h|0)<3){h=-2;break a}if(!(vb[c[b+348>>2]&127](b,e)|0)){c[g>>2]=e;h=0;break a}else h=3;break}case 7:{if((h|0)<4){h=-2;break a}if(!(vb[c[b+352>>2]&127](b,e)|0)){c[g>>2]=e;h=0;break a}else h=4;break}case 30:case 9:case 10:case 21:{c[g>>2]=e;h=22;break a}default:{c[g>>2]=e;h=0;break a}}k=b+332|0;l=b+336|0;m=b+340|0;i=e+h|0;b:while(1){if((i|0)==(f|0)){h=-1;break a}j=i+1|0;h=n-i|0;switch(a[o+(d[i>>0]|0)>>0]|0){case 27:case 26:case 25:case 24:case 22:{i=j;continue b}case 29:{e=18;break b}case 18:{e=31;break b}case 5:{if((h|0)<2){h=-2;break a}if(!(vb[c[k>>2]&127](b,i)|0)){e=21;break b}i=i+2|0;continue b}case 6:{if((h|0)<3){h=-2;break a}if(!(vb[c[l>>2]&127](b,i)|0)){e=25;break b}i=i+3|0;continue b}case 7:{if((h|0)<4){h=-2;break a}if(!(vb[c[m>>2]&127](b,i)|0)){e=29;break b}i=i+4|0;continue b}default:{e=32;break b}}}if((e|0)==18){c[g>>2]=i;h=0;break}else if((e|0)==21){c[g>>2]=i;h=0;break}else if((e|0)==25){c[g>>2]=i;h=0;break}else if((e|0)==29){c[g>>2]=i;h=0;break}else if((e|0)==31){c[g>>2]=j;h=28;break}else if((e|0)==32){c[g>>2]=i;h=0;break}}else h=-1;while(0);return h|0}function J_(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;a:do if((e|0)!=(f|0)){i=a[e>>0]|0;h=e+1|0;if(i<<24>>24==120){h=K_(b,h,f,g)|0;break}b=b+76|0;if((a[b+(i&255)>>0]|0)!=25){c[g>>2]=e;h=0;break}b:while(1){if((h|0)==(f|0)){h=-1;break a}e=h+1|0;switch(a[b+(d[h>>0]|0)>>0]|0){case 25:{h=e;break}case 18:{b=8;break b}default:{b=9;break b}}}if((b|0)==8){c[g>>2]=e;h=10;break}else if((b|0)==9){c[g>>2]=h;h=0;break}}else h=-1;while(0);return h|0}function K_(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;a:do if((e|0)!=(f|0)){i=b+76|0;if((a[i+(d[e>>0]|0)>>0]&-2)<<24>>24!=24){c[g>>2]=e;b=0;break}b=e+1|0;b:while(1){if((b|0)==(f|0)){b=-1;break a}h=b+1|0;switch(a[i+(d[b>>0]|0)>>0]|0){case 24:case 25:{b=h;break}case 18:{e=7;break b}default:{e=8;break b}}}if((e|0)==7){c[g>>2]=h;b=10;break}else if((e|0)==8){c[g>>2]=b;b=0;break}}else b=-1;while(0);return b|0}function L_(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:do if((e|0)!=(f|0)){r=b+76|0;n=b+344|0;o=f;h=e+1|0;p=b+352|0;q=b+348|0;i=o-e|0;b:do switch(a[r+(d[e>>0]|0)>>0]|0){case 29:{c[g>>2]=e;h=0;break a}case 24:case 22:break;case 5:{if((i|0)<2){h=-2;break a}if(!(vb[c[n>>2]&127](b,e)|0)){c[g>>2]=e;h=0;break a}else{h=e+2|0;break b}}case 6:{if((i|0)<3){h=-2;break a}if(!(vb[c[q>>2]&127](b,e)|0)){c[g>>2]=e;h=0;break a}else{h=e+3|0;break b}}case 7:{if((i|0)<4){h=-2;break a}if(!(vb[c[p>>2]&127](b,e)|0)){c[g>>2]=e;h=0;break a}else{h=e+4|0;break b}}case 16:{if((h|0)==(f|0)){h=-1;break a}e=e+2|0;switch(a[r+(d[h>>0]|0)>>0]|0){case 27:{h=M_(b,e,f,g)|0;break a}case 20:{h=N_(e,f,g)|0;break a}default:{c[g>>2]=h;h=0;break a}}}case 15:{h=O_(b,h,f,g)|0;break a}case 17:{h=P_(b,h,f,g)|0;break a}default:{c[g>>2]=e;h=0;break a}}while(0);k=b+332|0;l=b+336|0;m=b+340|0;i=0;c:while(1){if((h|0)==(f|0)){h=-1;break a}j=h+1|0;e=o-h|0;switch(a[r+(d[h>>0]|0)>>0]|0){case 27:case 26:case 25:case 24:case 22:{e=i;h=j;i=e;continue c}case 29:{s=27;break c}case 10:case 9:case 21:{h=j;s=59;break c}case 11:{s=76;break c}case 17:break c;case 5:{if((e|0)<2){h=-2;break a}if(!(vb[c[k>>2]&127](b,h)|0)){s=30;break c}j=i;h=h+2|0;i=j;continue c}case 6:{if((e|0)<3){h=-2;break a}if(!(vb[c[l>>2]&127](b,h)|0)){s=34;break c}j=i;h=h+3|0;i=j;continue c}case 7:{if((e|0)<4){h=-2;break a}if(!(vb[c[m>>2]&127](b,h)|0)){s=38;break c}j=i;h=h+4|0;i=j;continue c}case 23:{if(i|0){s=41;break c}if((j|0)==(f|0)){h=-1;break a}e=o-j|0;switch(a[r+(d[j>>0]|0)>>0]|0){case 29:{s=44;break c}case 24:case 22:{i=1;h=h+2|0;continue c}case 5:{if((e|0)<2){h=-2;break a}if(!(vb[c[n>>2]&127](b,j)|0)){s=48;break c}i=1;h=h+3|0;continue c}case 6:{if((e|0)<3){h=-2;break a}if(!(vb[c[q>>2]&127](b,j)|0)){s=52;break c}i=1;h=h+4|0;continue c}case 7:{if((e|0)<4){h=-2;break a}if(!(vb[c[p>>2]&127](b,j)|0)){s=56;break c}i=1;h=h+5|0;continue c}default:{s=58;break c}}}default:{s=81;break c}}}d:switch(s|0){case 27:{c[g>>2]=h;h=0;break a}case 30:{c[g>>2]=h;h=0;break a}case 34:{c[g>>2]=h;h=0;break a}case 38:{c[g>>2]=h;h=0;break a}case 41:{c[g>>2]=h;h=0;break a}case 44:{c[g>>2]=j;h=0;break a}case 48:{c[g>>2]=j;h=0;break a}case 52:{c[g>>2]=j;h=0;break a}case 56:{c[g>>2]=j;h=0;break a}case 58:{c[g>>2]=j;h=0;break a}case 59:{e:while(1){s=0;if((h|0)==(f|0)){h=-1;break a}e=h+1|0;switch(a[r+(d[h>>0]|0)>>0]|0){case 11:{s=76;break d}case 17:break d;case 10:case 9:case 21:{h=e;s=59;break}case 29:{s=61;break e}case 24:case 22:{h=e;break e}case 5:{s=62;break e}case 6:{s=66;break e}case 7:{s=70;break e}default:{s=74;break e}}}do if((s|0)==61){c[g>>2]=h;h=0;break a}else if((s|0)==62){if((o-h|0)<2){h=-2;break a}if(!(vb[c[n>>2]&127](b,h)|0)){c[g>>2]=h;h=0;break a}else{h=h+2|0;break}}else if((s|0)==66){if((o-h|0)<3){h=-2;break a}if(!(vb[c[q>>2]&127](b,h)|0)){c[g>>2]=h;h=0;break a}else{h=h+3|0;break}}else if((s|0)==70){if((o-h|0)<4){h=-2;break a}if(!(vb[c[p>>2]&127](b,h)|0)){c[g>>2]=h;h=0;break a}else{h=h+4|0;break}}else if((s|0)==74){c[g>>2]=h;h=0;break a}while(0);h=Q_(b,h,f,g)|0;break a}case 81:{c[g>>2]=h;h=0;break a}}if((s|0)==76){c[g>>2]=h+1;h=2;break}e=h+1|0;if((e|0)!=(f|0))if((a[e>>0]|0)==62){c[g>>2]=h+2;h=4;break}else{c[g>>2]=e;h=0;break}else h=-1}else h=-1;while(0);return h|0}function M_(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:do if((e|0)!=(f|0)){if((a[e>>0]|0)!=45){c[g>>2]=e;e=0;break}l=b+76|0;m=f;i=b+356|0;j=b+360|0;k=b+364|0;n=e+1|0;b:while(1){if((n|0)==(f|0)){e=-1;break a}e=n+1|0;h=m-n|0;switch(a[l+(d[n>>0]|0)>>0]|0){case 8:case 1:case 0:{h=19;break b}case 5:{if((h|0)<2){e=-2;break a}if(vb[c[i>>2]&127](b,n)|0){h=9;break b}n=n+2|0;continue b}case 6:{if((h|0)<3){e=-2;break a}if(vb[c[j>>2]&127](b,n)|0){h=13;break b}n=n+3|0;continue b}case 7:{if((h|0)<4){e=-2;break a}if(vb[c[k>>2]&127](b,n)|0){h=17;break b}n=n+4|0;continue b}case 27:{if((e|0)==(f|0)){e=-1;break a}if((a[e>>0]|0)==45){h=22;break b}else{n=e;continue b}}default:{n=e;continue b}}}if((h|0)==9){c[g>>2]=n;e=0;break}else if((h|0)==13){c[g>>2]=n;e=0;break}else if((h|0)==17){c[g>>2]=n;e=0;break}else if((h|0)==19){c[g>>2]=n;e=0;break}else if((h|0)==22){e=n+2|0;if((e|0)==(f|0)){e=-1;break}if((a[e>>0]|0)==62){c[g>>2]=n+3;e=13;break}else{c[g>>2]=e;e=0;break}}}else e=-1;while(0);return e|0}function N_(b,d,e){b=b|0;d=d|0;e=e|0;if((d-b|0)<6)d=-1;else{d=0;while(1){if((d|0)>=6){d=8;break}if((a[b>>0]|0)!=(a[144449+d>>0]|0)){d=0;break}d=d+1|0;b=b+1|0}c[e>>2]=b}return d|0}function O_(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+16|0;q=s;a:do if((e|0)==(f|0))h=-1;else{r=b+76|0;p=f;h=p-e|0;switch(a[r+(d[e>>0]|0)>>0]|0){case 29:{c[g>>2]=e;h=0;break a}case 24:case 22:{h=1;break}case 5:{if((h|0)<2){h=-2;break a}if(!(vb[c[b+344>>2]&127](b,e)|0)){c[g>>2]=e;h=0;break a}else h=2;break}case 6:{if((h|0)<3){h=-2;break a}if(!(vb[c[b+348>>2]&127](b,e)|0)){c[g>>2]=e;h=0;break a}else h=3;break}case 7:{if((h|0)<4){h=-2;break a}if(!(vb[c[b+352>>2]&127](b,e)|0)){c[g>>2]=e;h=0;break a}else h=4;break}default:{c[g>>2]=e;h=0;break a}}k=b+332|0;m=b+336|0;n=b+340|0;h=e+h|0;b:while(1){if((h|0)==(f|0)){h=-1;break a}j=h+1|0;i=p-h|0;switch(a[r+(d[h>>0]|0)>>0]|0){case 27:case 26:case 25:case 24:case 22:{h=j;continue b}case 29:{o=17;break b}case 10:case 9:case 21:{o=30;break b}case 15:{o=51;break b}case 5:{if((i|0)<2){h=-2;break a}if(!(vb[c[k>>2]&127](b,h)|0)){o=20;break b}h=h+2|0;continue b}case 6:{if((i|0)<3){h=-2;break a}if(!(vb[c[m>>2]&127](b,h)|0)){o=24;break b}h=h+3|0;continue b}case 7:{if((i|0)<4){h=-2;break a}if(!(vb[c[n>>2]&127](b,h)|0)){o=28;break b}h=h+4|0;continue b}default:break b}}if((o|0)==17){c[g>>2]=h;h=0;break}else if((o|0)==20){c[g>>2]=h;h=0;break}else if((o|0)==24){c[g>>2]=h;h=0;break}else if((o|0)==28){c[g>>2]=h;h=0;break}else if((o|0)==30){if(!(R_(e,h,q)|0)){c[g>>2]=h;h=0;break}k=b+356|0;m=b+360|0;n=b+364|0;c:while(1){if((j|0)==(f|0)){h=-1;break a}h=j+1|0;i=p-j|0;switch(a[r+(d[j>>0]|0)>>0]|0){case 8:case 1:case 0:{o=47;break c}case 5:{if((i|0)<2){h=-2;break a}if(vb[c[k>>2]&127](b,j)|0){o=37;break c}j=j+2|0;continue c}case 6:{if((i|0)<3){h=-2;break a}if(vb[c[m>>2]&127](b,j)|0){o=41;break c}j=j+3|0;continue c}case 7:{if((i|0)<4){h=-2;break a}if(vb[c[n>>2]&127](b,j)|0){o=45;break c}j=j+4|0;continue c}case 15:{if((h|0)==(f|0)){h=-1;break a}if((a[h>>0]|0)==62){o=50;break c}else{j=h;continue c}}default:{j=h;continue c}}}if((o|0)==37){c[g>>2]=j;h=0;break}else if((o|0)==41){c[g>>2]=j;h=0;break}else if((o|0)==45){c[g>>2]=j;h=0;break}else if((o|0)==47){c[g>>2]=j;h=0;break}else if((o|0)==50){c[g>>2]=j+2;h=c[q>>2]|0;break}}else if((o|0)==51){if(!(R_(e,h,q)|0)){c[g>>2]=h;h=0;break}if((j|0)==(f|0)){h=-1;break}if((a[j>>0]|0)==62){c[g>>2]=h+2;h=c[q>>2]|0;break}else h=j}c[g>>2]=h;h=0}while(0);l=s;return h|0}function P_(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:do if((e|0)!=(f|0)){n=b+76|0;m=f;h=m-e|0;switch(a[n+(d[e>>0]|0)>>0]|0){case 29:{c[g>>2]=e;h=0;break a}case 24:case 22:{h=1;break}case 5:{if((h|0)<2){h=-2;break a}if(!(vb[c[b+344>>2]&127](b,e)|0)){c[g>>2]=e;h=0;break a}else h=2;break}case 6:{if((h|0)<3){h=-2;break a}if(!(vb[c[b+348>>2]&127](b,e)|0)){c[g>>2]=e;h=0;break a}else h=3;break}case 7:{if((h|0)<4){h=-2;break a}if(!(vb[c[b+352>>2]&127](b,e)|0)){c[g>>2]=e;h=0;break a}else h=4;break}default:{c[g>>2]=e;h=0;break a}}i=b+332|0;k=b+336|0;l=b+340|0;j=e+h|0;b:while(1){if((j|0)==(f|0)){h=-1;break a}h=j+1|0;e=m-j|0;switch(a[n+(d[j>>0]|0)>>0]|0){case 23:case 27:case 26:case 25:case 24:case 22:{j=h;continue b}case 29:{i=17;break b}case 10:case 9:case 21:{i=30;break b}case 11:{i=34;break b}case 5:{if((e|0)<2){h=-2;break a}if(!(vb[c[i>>2]&127](b,j)|0)){i=20;break b}j=j+2|0;continue b}case 6:{if((e|0)<3){h=-2;break a}if(!(vb[c[k>>2]&127](b,j)|0)){i=24;break b}j=j+3|0;continue b}case 7:{if((e|0)<4){h=-2;break a}if(!(vb[c[l>>2]&127](b,j)|0)){i=28;break b}j=j+4|0;continue b}default:{i=35;break b}}}if((i|0)==17){c[g>>2]=j;h=0;break}else if((i|0)==20){c[g>>2]=j;h=0;break}else if((i|0)==24){c[g>>2]=j;h=0;break}else if((i|0)==28){c[g>>2]=j;h=0;break}else if((i|0)==30){c:while(1){if((h|0)==(f|0)){h=-1;break a}e=h+1|0;switch(a[n+(d[h>>0]|0)>>0]|0){case 10:case 9:case 21:{h=e;i=30;break}case 11:{i=32;break c}default:{i=33;break c}}}if((i|0)==32){c[g>>2]=e;h=5;break}else if((i|0)==33){c[g>>2]=h;h=0;break}}else if((i|0)==34){c[g>>2]=h;h=5;break}else if((i|0)==35){c[g>>2]=j;h=0;break}}else h=-1;while(0);return h|0}function Q_(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=l;l=l+16|0;x=z;c[x>>2]=e;s=b+76|0;t=b+344|0;u=b+348|0;v=f;w=b+352|0;m=b+332|0;n=b+336|0;o=b+340|0;p=b+356|0;q=b+360|0;r=b+364|0;i=0;a:while(1){if((e|0)==(f|0)){e=-1;break}h=v-e|0;j=e+1|0;b:do switch(a[s+(d[e>>0]|0)>>0]|0){case 29:{y=4;break a}case 27:case 26:case 25:case 24:case 22:{c[x>>2]=j;k=i;e=j;i=k;continue a}case 5:{if((h|0)<2){e=-2;break a}if(!(vb[c[m>>2]&127](b,e)|0)){y=8;break a}j=e+2|0;c[x>>2]=j;k=i;e=j;i=k;continue a}case 6:{if((h|0)<3){e=-2;break a}if(!(vb[c[n>>2]&127](b,e)|0)){y=12;break a}j=e+3|0;c[x>>2]=j;k=i;e=j;i=k;continue a}case 7:{if((h|0)<4){e=-2;break a}if(!(vb[c[o>>2]&127](b,e)|0)){y=16;break a}j=e+4|0;c[x>>2]=j;k=i;e=j;i=k;continue a}case 23:{if(i|0){y=19;break a}c[x>>2]=j;if((j|0)==(f|0)){e=-1;break a}h=v-j|0;switch(a[s+(d[j>>0]|0)>>0]|0){case 29:{y=22;break a}case 24:case 22:{k=e+2|0;c[x>>2]=k;i=1;e=k;continue a}case 5:{if((h|0)<2){e=-2;break a}if(!(vb[c[t>>2]&127](b,j)|0)){y=26;break a}k=e+3|0;c[x>>2]=k;i=1;e=k;continue a}case 6:{if((h|0)<3){e=-2;break a}if(!(vb[c[u>>2]&127](b,j)|0)){y=30;break a}k=e+4|0;c[x>>2]=k;i=1;e=k;continue a}case 7:{if((h|0)<4){e=-2;break a}if(!(vb[c[w>>2]&127](b,j)|0)){y=34;break a}k=e+5|0;c[x>>2]=k;i=1;e=k;continue a}default:{y=36;break a}}}case 10:case 9:case 21:while(1){e=e+1|0;c[x>>2]=e;if((e|0)==(f|0)){e=-1;break a}switch(a[s+(d[e>>0]|0)>>0]|0){case 14:break b;case 9:case 10:case 21:break;default:{y=39;break a}}}case 14:break;default:{y=92;break a}}while(0);while(1){h=e+1|0;c[x>>2]=h;if((h|0)==(f|0)){e=-1;break a}k=a[s+(d[h>>0]|0)>>0]|0;if((k|1)<<24>>24==13)break;switch(k<<24>>24){case 9:case 10:case 21:{e=h;break}default:{y=43;break a}}}e=e+2|0;c[x>>2]=e;c:while(1){if((e|0)==(f|0)){e=-1;break a}h=a[s+(d[e>>0]|0)>>0]|0;if(h<<24>>24==k<<24>>24)break;i=e+1|0;j=v-e|0;switch(h<<24>>24){case 8:case 1:case 0:{y=60;break a}case 2:{y=65;break a}case 5:{if((j|0)<2){e=-2;break a}if(vb[c[p>>2]&127](b,e)|0){y=50;break a}j=e+2|0;c[x>>2]=j;e=j;continue c}case 6:{if((j|0)<3){e=-2;break a}if(vb[c[q>>2]&127](b,e)|0){y=54;break a}j=e+3|0;c[x>>2]=j;e=j;continue c}case 7:{if((j|0)<4){e=-2;break a}if(vb[c[r>>2]&127](b,e)|0){y=58;break a}j=e+4|0;c[x>>2]=j;e=j;continue c}case 3:{e=H_(b,i,f,x)|0;if((e|0)<1){y=63;break a}e=c[x>>2]|0;continue c}default:{c[x>>2]=i;e=i;continue c}}}h=e+1|0;c[x>>2]=h;if((h|0)==(f|0)){e=-1;break}switch(a[s+(d[h>>0]|0)>>0]|0){case 11:{y=86;break a}case 17:{y=87;break a}case 10:case 9:case 21:{e=h;break}default:{y=69;break a}}d:while(1){h=e+1|0;c[x>>2]=h;if((h|0)==(f|0)){e=-1;break a}switch(a[s+(d[h>>0]|0)>>0]|0){case 29:{y=72;break a}case 11:{y=86;break a}case 17:{y=87;break a}case 10:case 9:case 21:{e=h;break}case 24:case 22:{y=73;break d}case 5:{y=74;break d}case 6:{y=78;break d}case 7:{y=82;break d}default:{y=91;break a}}}if((y|0)==73){y=0;e=e+2|0;c[x>>2]=e;i=0;continue}else if((y|0)==74){y=0;if((v-h|0)<2){e=-2;break}if(!(vb[c[t>>2]&127](b,h)|0)){y=76;break}e=e+3|0;c[x>>2]=e;i=0;continue}else if((y|0)==78){y=0;if((v-h|0)<3){e=-2;break}if(!(vb[c[u>>2]&127](b,h)|0)){y=80;break}e=e+4|0;c[x>>2]=e;i=0;continue}else if((y|0)==82){y=0;if((v-h|0)<4){e=-2;break}if(!(vb[c[w>>2]&127](b,h)|0)){y=84;break}e=e+5|0;c[x>>2]=e;i=0;continue}}switch(y|0){case 4:{c[g>>2]=e;e=0;break}case 8:{c[g>>2]=e;e=0;break}case 12:{c[g>>2]=e;e=0;break}case 16:{c[g>>2]=e;e=0;break}case 19:{c[g>>2]=e;e=0;break}case 22:{c[g>>2]=j;e=0;break}case 26:{c[g>>2]=j;e=0;break}case 30:{c[g>>2]=j;e=0;break}case 34:{c[g>>2]=j;e=0;break}case 36:{c[g>>2]=j;e=0;break}case 39:{c[g>>2]=e;e=0;break}case 43:{c[g>>2]=h;e=0;break}case 50:{c[g>>2]=e;e=0;break}case 54:{c[g>>2]=e;e=0;break}case 58:{c[g>>2]=e;e=0;break}case 60:{c[g>>2]=e;e=0;break}case 63:{if(!e){c[g>>2]=c[x>>2];e=0}break}case 65:{c[g>>2]=e;e=0;break}case 69:{c[g>>2]=h;e=0;break}case 72:{c[g>>2]=h;e=0;break}case 76:{c[g>>2]=h;e=0;break}case 80:{c[g>>2]=h;e=0;break}case 84:{c[g>>2]=h;e=0;break}case 86:{c[g>>2]=e+2;e=1;break}case 87:{e=h+1|0;c[x>>2]=e;if((e|0)!=(f|0))if((a[e>>0]|0)==62){c[g>>2]=h+2;e=3;break}else{c[g>>2]=e;e=0;break}else e=-1;break}case 91:{c[g>>2]=h;e=0;break}case 92:{c[g>>2]=e;e=0;break}}l=z;return e|0}function R_(b,d,e){b=b|0;d=d|0;e=e|0;c[e>>2]=11;a:do if((d-b|0)==3){switch(a[b>>0]|0){case 120:{d=0;break}case 88:{d=1;break}default:{d=1;break a}}switch(a[b+1>>0]|0){case 109:break;case 77:{d=1;break}default:{d=1;break a}}switch(a[b+2>>0]|0){case 108:break;case 76:{d=0;break a}default:{d=1;break a}}if(!d){c[e>>2]=12;d=1}else d=0}else d=1;while(0);return d|0}function S_(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;l=e+76|0;m=g;n=e+356|0;o=e+360|0;p=e+364|0;a:while(1){if((f|0)==(g|0)){f=-1;break}i=a[l+(d[f>>0]|0)>>0]|0;j=f+1|0;k=m-f|0;switch(i<<24>>24){case 8:case 1:case 0:{q=16;break a}case 5:{if((k|0)<2){f=-2;break a}if(vb[c[n>>2]&127](e,f)|0){q=6;break a}f=f+2|0;continue a}case 6:{if((k|0)<3){f=-2;break a}if(vb[c[o>>2]&127](e,f)|0){q=10;break a}f=f+3|0;continue a}case 7:{if((k|0)<4){f=-2;break a}if(vb[c[p>>2]&127](e,f)|0){q=14;break a}f=f+4|0;continue a}case 13:case 12:if((i&255|0)==(b|0)){q=18;break a}else{f=j;continue a}default:{f=j;continue a}}}b:do if((q|0)==6){c[h>>2]=f;f=0}else if((q|0)==10){c[h>>2]=f;f=0}else if((q|0)==14){c[h>>2]=f;f=0}else if((q|0)==16){c[h>>2]=f;f=0}else if((q|0)==18)if((j|0)==(g|0))f=-27;else{c[h>>2]=j;switch(a[l+(d[j>>0]|0)>>0]|0){case 20:case 30:case 11:case 10:case 9:case 21:{f=27;break b}default:{}}f=0}while(0);return f|0}function T_(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;a:do if((e|0)==(f|0))h=-1;else{i=b+76|0;h=e+1|0;switch(a[i+(d[e>>0]|0)>>0]|0){case 27:{h=M_(b,h,f,g)|0;break a}case 20:{c[g>>2]=h;h=33;break a}case 24:case 22:{b:while(1){if((h|0)==(f|0)){h=-1;break a}b=h+1|0;switch(a[i+(d[h>>0]|0)>>0]|0){case 24:case 22:{h=b;break}case 30:{j=8;break b}case 10:case 9:case 21:break b;default:{j=12;break b}}}if((j|0)==12){c[g>>2]=h;h=0;break a}c:do if((j|0)==8){if((b|0)==(f|0)){h=-1;break a}switch(a[i+(d[b>>0]|0)>>0]|0){case 30:case 10:case 9:case 21:break;default:break c}c[g>>2]=h;h=0;break a}while(0);c[g>>2]=h;h=16;break a}default:{c[g>>2]=e;h=0;break a}}}while(0);return h|0}function U_(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:do if((e|0)!=(f|0)){n=b+76|0;m=f;h=m-e|0;switch(a[n+(d[e>>0]|0)>>0]|0){case 29:{c[g>>2]=e;h=0;break a}case 24:case 22:{h=1;break}case 5:{if((h|0)<2){h=-2;break a}if(!(vb[c[b+344>>2]&127](b,e)|0)){c[g>>2]=e;h=0;break a}else h=2;break}case 6:{if((h|0)<3){h=-2;break a}if(!(vb[c[b+348>>2]&127](b,e)|0)){c[g>>2]=e;h=0;break a}else h=3;break}case 7:{if((h|0)<4){h=-2;break a}if(!(vb[c[b+352>>2]&127](b,e)|0)){c[g>>2]=e;h=0;break a}else h=4;break}default:{c[g>>2]=e;h=0;break a}}j=b+332|0;k=b+336|0;l=b+340|0;i=e+h|0;b:while(1){if((i|0)==(f|0)){h=-20;break a}h=m-i|0;switch(a[n+(d[i>>0]|0)>>0]|0){case 29:{e=17;break b}case 36:case 30:case 11:case 32:case 21:case 10:case 9:{e=28;break b}case 27:case 26:case 25:case 24:case 22:{h=1;break}case 5:{if((h|0)<2){h=-2;break a}if(!(vb[c[j>>2]&127](b,i)|0)){e=20;break b}else h=2;break}case 6:{if((h|0)<3){h=-2;break a}if(!(vb[c[k>>2]&127](b,i)|0)){e=23;break b}else h=3;break}case 7:{if((h|0)<4){h=-2;break a}if(!(vb[c[l>>2]&127](b,i)|0)){e=26;break b}else h=4;break}default:{e=29;break b}}i=i+h|0}if((e|0)==17){c[g>>2]=i;h=0;break}else if((e|0)==20){c[g>>2]=i;h=0;break}else if((e|0)==23){c[g>>2]=i;h=0;break}else if((e|0)==26){c[g>>2]=i;h=0;break}else if((e|0)==28){c[g>>2]=i;h=20;break}else if((e|0)==29){c[g>>2]=i;h=0;break}}else h=-1;while(0);return h|0}function V_(){return 58448}function W_(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=c[d>>2]|0;b=c[f>>2]|0;g=g-b|0;a:do if((e-h|0)>(g|0)){e=h+g|0;while(1){if(e>>>0<=h>>>0)break a;g=e+-1|0;if((a[g>>0]&-64)<<24>>24==-128)e=g;else break}}while(0);while(1){if((h|0)==(e|0))break;a[b>>0]=a[h>>0]|0;h=h+1|0;b=b+1|0}c[d>>2]=e;c[f>>2]=b;return}function X_(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=d+76|0;d=c[g>>2]|0;i=c[e>>2]|0;a:while(1){if((i|0)==(f|0)|(d|0)==(h|0))break;j=a[i>>0]|0;k=i+1|0;l=d+2|0;m=i+3|0;n=j<<24>>24;o=i+2|0;switch(a[p+(j&255)>>0]|0){case 5:{b[d>>1]=a[k>>0]&63|n<<6&1984;d=l;i=o;continue a}case 6:{b[d>>1]=(a[k>>0]&63)<<6|n<<12|a[o>>0]&63;d=l;i=m;continue a}case 7:{if((l|0)==(h|0))break a;o=((a[k>>0]&63)<<12|n<<18&1835008|(a[o>>0]&63)<<6|a[m>>0]&63)+-65536|0;b[d>>1]=o>>>10|55296;b[l>>1]=o&1023|56320;d=d+4|0;i=i+4|0;continue a}default:{b[d>>1]=j<<24>>24;d=l;i=k;continue a}}}c[e>>2]=i;c[g>>2]=d;return}function Y_(a,b){a=a|0;b=b|0;a=d[b>>0]|0;b=d[b+1>>0]|0;return 1<<(b&31)&c[57168+(((d[144193+(a>>>2&7)>>0]|0)<<3|a<<1&6|b>>>5&1)<<2)>>2]|0}function Z_(b,e){b=b|0;e=e|0;var f=0;f=d[e+1>>0]|0;b=d[e+2>>0]|0;return 1<<(b&31)&c[57168+(((d[144193+(f>>>2&15|a[e>>0]<<4&255)>>0]|0)<<3|f<<1&6|b>>>5&1)<<2)>>2]|0}function __(a,b){a=a|0;b=b|0;return 0}function $_(a,b){a=a|0;b=b|0;a=d[b>>0]|0;b=d[b+1>>0]|0;return 1<<(b&31)&c[57168+(((d[143937+(a>>>2&7)>>0]|0)<<3|a<<1&6|b>>>5&1)<<2)>>2]|0}function a$(b,e){b=b|0;e=e|0;var f=0;f=d[e+1>>0]|0;b=d[e+2>>0]|0;return 1<<(b&31)&c[57168+(((d[143937+(f>>>2&15|a[e>>0]<<4&255)>>0]|0)<<3|f<<1&6|b>>>5&1)<<2)>>2]|0}function b$(a,b){a=a|0;b=b|0;if((d[b>>0]|0)<194)a=1;else{a=d[b+1>>0]|0;a=(a&128|0)==0|(a&192|0)==192}return a&1|0}function c$(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;d=a[c+2>>0]|0;e=d&255;do if(!(e&128))b=1;else{f=a[c>>0]|0;b=c+1|0;if(f<<24>>24==-17?(a[b>>0]|0)==-65:0)if((d&255)>189){b=1;break}else{b=191;d=-65;c=0}else{if((e&192|0)==192){b=1;break}d=a[b>>0]|0;b=d&255;c=(b&192|0)==192;if(f<<24>>24==-32){b=(d&255)<160|c;break}}b=(b&128|0)==0|(f<<24>>24==-19?(d&255)>159:c)}while(0);return b&1|0}function d$(b,c){b=b|0;c=c|0;var e=0,f=0;f=d[c+3>>0]|0;do if(!((f&128|0)==0|(f&192|0)==192)?(f=d[c+2>>0]|0,!((f&128|0)==0|(f&192|0)==192)):0){f=a[c>>0]|0;b=a[c+1>>0]|0;c=b&255;e=(c&192|0)==192;if(f<<24>>24==-16){b=(b&255)<144|e;break}else{b=(c&128|0)==0|(f<<24>>24==-12?(b&255)>143:e);break}}else b=1;while(0);return b&1|0}function e$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;a:do if((e|0)!=(f|0)){h=e;p=f-h|0;o=(p&1|0)==0;p=p&-2;q=(p|0)==0;p=o|q?f:e+p|0;if(o|q^1){i=a[e+1>>0]|0;q=b+76|0;m=a[e>>0]|0;if(!(i<<24>>24))l=d[q+(m&255)>>0]|0;else l=v$(i,m)|0;j=e+2|0;o=p;k=e+3|0;f=o-h|0;h=(j|0)==(p|0);n=e+4|0;do switch(l|0){case 12:{f=H$(12,b,j,p,g)|0;break a}case 13:{f=H$(13,b,j,p,g)|0;break a}case 2:{if(h){f=-1;break a}f=a[k>>0]|0;h=a[j>>0]|0;if(!(f<<24>>24))f=d[q+(h&255)>>0]|0;else f=v$(f,h)|0;switch(f|0){case 16:{f=I$(b,n,p,g)|0;break a}case 15:{f=D$(b,n,p,g)|0;break a}case 7:case 6:case 5:case 29:case 24:case 22:{c[g>>2]=e;f=29;break a}default:{c[g>>2]=j;f=0;break a}}}case 9:{if(h){c[g>>2]=p;f=-15;break a}else h=20;break}case 10:case 21:{h=20;break}case 30:{f=x$(b,j,p,g)|0;break a}case 35:{c[g>>2]=j;f=38;break a}case 20:{c[g>>2]=j;f=25;break a}case 4:{if(h){f=-26;break a}if((a[k>>0]|0)==0?(a[j>>0]|0)==93:0){if((n|0)==(p|0)){f=-1;break a}if((a[e+5>>0]|0)==0?(a[n>>0]|0)==62:0){c[g>>2]=e+6;f=34;break a}}c[g>>2]=j;f=26;break a}case 31:{c[g>>2]=j;f=23;break a}case 32:{if(h){f=-24;break a}f=a[k>>0]|0;h=a[j>>0]|0;if(!(f<<24>>24))f=d[q+(h&255)>>0]|0;else f=v$(f,h)|0;switch(f|0){case 33:{c[g>>2]=n;f=36;break a}case 15:{c[g>>2]=n;f=35;break a}case 34:{c[g>>2]=n;f=37;break a}case 32:case 36:case 35:case 11:case 21:case 10:case 9:{c[g>>2]=j;f=24;break a}default:{c[g>>2]=j;f=0;break a}}}case 36:{c[g>>2]=j;f=21;break a}case 11:{c[g>>2]=j;f=17;break a}case 19:{f=J$(b,j,p,g)|0;break a}case 5:{if((f|0)<2){f=-2;break a}c[g>>2]=e;f=0;break a}case 6:{if((f|0)<3){f=-2;break a}c[g>>2]=e;f=0;break a}case 7:{if((f|0)<4){f=-2;break a}c[g>>2]=e;f=0;break a}case 24:case 22:{f=18;h=63;break}case 23:case 27:case 26:case 25:{f=19;h=63;break}case 29:{i=i&255;h=m&255;f=h>>>5;h=1<<(h&31);if(!(h&c[57168+((f|d[143937+i>>0]<<3)<<2)>>2]))if(!(c[57168+((d[144193+i>>0]<<3|f)<<2)>>2]&h))h=62;else{f=19;h=63}else{f=18;h=63}break}default:h=62}while(0);if((h|0)==20){b:while(1){i=e;e=e+2|0;if((e|0)==(p|0)){h=27;break}f=a[i+3>>0]|0;h=a[e>>0]|0;if(!(f<<24>>24))f=d[q+(h&255)>>0]|0;else f=v$(f,h)|0;switch(f|0){case 10:case 21:{h=20;continue b}case 9:break;default:{h=26;break b}}if((i+4|0)==(p|0)){h=26;break}else h=20}if((h|0)==26){c[g>>2]=e;f=15;break}else if((h|0)==27){c[g>>2]=p;f=15;break}}else if((h|0)==62){c[g>>2]=e;f=0;break}else if((h|0)==63){c:while(1){if((j|0)==(p|0)){h=103;break}h=a[j+1>>0]|0;i=a[j>>0]|0;if(!(h<<24>>24))e=d[q+(i&255)>>0]|0;else e=v$(h,i)|0;k=j+2|0;switch(e|0){case 27:case 26:case 25:case 24:case 22:{h=f;j=k;f=h;h=63;continue c}case 5:{h=70;break c}case 6:{h=72;break c}case 7:{h=74;break c}case 10:case 9:case 21:case 30:case 20:case 36:case 35:case 32:case 11:{h=76;break c}case 34:{h=93;break c}case 33:{h=96;break c}case 15:{h=99;break c}case 29:{n=i&255;if(!(1<<(n&31)&c[57168+((n>>>5|d[144193+(h&255)>>0]<<3)<<2)>>2])){h=69;break c}else{h=f;j=k;f=h;h=63;continue c}}case 23:break;default:{h=102;break c}}switch(f&63){case 18:break;case 41:{f=19;j=k;h=63;continue c}default:{h=f;j=k;f=h;h=63;continue c}}if((k|0)==(p|0)){f=-1;break a}f=a[j+3>>0]|0;h=a[k>>0]|0;if(!(f<<24>>24))i=d[q+(h&255)>>0]|0;else i=v$(f,h)|0;switch(i|0){case 5:{h=86;break c}case 6:{h=88;break c}case 7:{h=90;break c}case 29:{n=h&255;if(!(1<<(n&31)&c[57168+((n>>>5|d[144193+(f&255)>>0]<<3)<<2)>>2])){h=84;break c}break}case 27:case 26:case 25:case 24:case 22:break;default:{f=19;j=k;h=63;continue c}}f=41;j=j+4|0;h=63}switch(h|0){case 69:{c[g>>2]=j;f=0;break a}case 70:{if((o-j|0)<2){f=-2;break a}c[g>>2]=j;f=0;break a}case 72:{if((o-j|0)<3){f=-2;break a}c[g>>2]=j;f=0;break a}case 74:{if((o-j|0)<4){f=-2;break a}c[g>>2]=j;f=0;break a}case 76:{c[g>>2]=j;break a}case 84:{c[g>>2]=k;f=0;break a}case 86:{if((o-k|0)<2){f=-2;break a}c[g>>2]=k;f=0;break a}case 88:{if((o-k|0)<3){f=-2;break a}c[g>>2]=k;f=0;break a}case 90:{if((o-k|0)<4){f=-2;break a}c[g>>2]=k;f=0;break a}case 93:if((f|0)==19){c[g>>2]=j;f=0;break a}else{c[g>>2]=k;f=32;break a}case 96:if((f|0)==19){c[g>>2]=j;f=0;break a}else{c[g>>2]=k;f=31;break a}case 99:if((f|0)==19){c[g>>2]=j;f=0;break a}else{c[g>>2]=k;f=30;break a}case 102:{c[g>>2]=j;f=0;break a}case 103:{f=0-f|0;break a}}}}else f=-1}else f=-4;while(0);return f|0}function f$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a:do if((e|0)!=(f|0)){l=e;o=f-l|0;n=(o&1|0)==0;o=o&-2;p=(o|0)==0;o=n|p?f:e+o|0;if(n|p^1){f=a[e+1>>0]|0;h=a[e>>0]|0;p=b+76|0;if(!(f<<24>>24))j=d[p+(h&255)>>0]|0;else j=v$(f,h)|0;k=e+2|0;n=o;i=e+3|0;m=e+4|0;f=n-l|0;h=(k|0)==(o|0);switch(j|0){case 2:{f=A$(b,k,o,g)|0;break a}case 3:{f=w$(b,k,o,g)|0;break a}case 9:{if(h){f=-3;break a}f=a[i>>0]|0;h=a[k>>0]|0;if(!(f<<24>>24))f=d[p+(h&255)>>0]|0;else f=v$(f,h)|0;c[g>>2]=(f|0)==10?m:k;f=7;break a}case 10:{c[g>>2]=k;f=7;break a}case 4:{if(h){f=-5;break a}if((a[i>>0]|0)==0?(a[k>>0]|0)==93:0){if((m|0)==(o|0)){f=-5;break a}if((a[e+5>>0]|0)==0?(a[m>>0]|0)==62:0){c[g>>2]=m;f=0;break a}}break}case 5:{if((f|0)<2){f=-2;break a}break}case 6:{if((f|0)<3){f=-2;break a}else k=i;break}case 7:{if((f|0)<4){f=-2;break a}else k=m;break}case 8:case 1:case 0:{c[g>>2]=e;f=0;break a}default:{}}b:while(1){if((k|0)==(o|0)){h=46;break}f=a[k+1>>0]|0;h=a[k>>0]|0;if(!(f<<24>>24))i=d[p+(h&255)>>0]|0;else i=v$(f,h)|0;j=k+4|0;f=k+2|0;h=n-k|0;switch(i|0){case 10:case 9:case 8:case 1:case 0:case 2:case 3:{h=45;break b}case 5:if((h|0)<2){h=32;break b}else{k=f;continue b}case 6:{if((h|0)<3){h=34;break b}k=k+3|0;continue b}case 7:if((h|0)<4){h=37;break b}else{k=j;continue b}case 4:{if((f|0)==(o|0)){h=45;break b}if(a[k+3>>0]|0){k=f;continue b}if((a[f>>0]|0)!=93){k=f;continue b}if((j|0)==(o|0)){h=45;break b}if(a[k+5>>0]|0){k=f;continue b}if((a[j>>0]|0)==62){h=44;break b}else{k=f;continue b}}default:{k=f;continue b}}}if((h|0)==32){c[g>>2]=k;f=6;break}else if((h|0)==34){c[g>>2]=k;f=6;break}else if((h|0)==37){c[g>>2]=k;f=6;break}else if((h|0)==44){c[g>>2]=j;f=0;break}else if((h|0)==45){c[g>>2]=k;f=6;break}else if((h|0)==46){c[g>>2]=o;f=6;break}}else f=-1}else f=-4;while(0);return f|0}function g$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:do if((e|0)!=(f|0)){k=e;m=f-k|0;l=(m&1|0)==0;m=m&-2;n=(m|0)==0;m=l|n?f:e+m|0;if(l|n^1){f=a[e+1>>0]|0;h=a[e>>0]|0;n=b+76|0;if(!(f<<24>>24))j=d[n+(h&255)>>0]|0;else j=v$(f,h)|0;i=e+2|0;l=m;h=(i|0)==(m|0);f=l-k|0;b=e+3|0;k=e+4|0;switch(j|0){case 4:{if(h){f=-1;break a}if((a[b>>0]|0)==0?(a[i>>0]|0)==93:0){if((k|0)==(m|0)){f=-1;break a}if((a[e+5>>0]|0)==0?(a[k>>0]|0)==62:0){c[g>>2]=e+6;f=40;break a}}break}case 9:{if(h){f=-1;break a}f=a[b>>0]|0;b=a[i>>0]|0;if(!(f<<24>>24))f=d[n+(b&255)>>0]|0;else f=v$(f,b)|0;c[g>>2]=(f|0)==10?k:i;f=7;break a}case 10:{c[g>>2]=i;f=7;break a}case 5:{if((f|0)<2){f=-2;break a}break}case 6:{if((f|0)<3){f=-2;break a}else i=b;break}case 7:{if((f|0)<4){f=-2;break a}else i=k;break}case 8:case 1:case 0:{c[g>>2]=e;f=0;break a}default:{}}b:while(1){if((i|0)==(m|0)){b=38;break}f=a[i+1>>0]|0;b=a[i>>0]|0;if(!(f<<24>>24))h=d[n+(b&255)>>0]|0;else h=v$(f,b)|0;f=i+2|0;b=l-i|0;switch(h|0){case 4:case 10:case 9:case 8:case 1:case 0:{b=37;break b}case 5:if((b|0)<2){b=30;break b}else{i=f;continue b}case 6:{if((b|0)<3){b=32;break b}i=i+3|0;continue b}case 7:{if((b|0)<4){b=35;break b}i=i+4|0;continue b}default:{i=f;continue b}}}if((b|0)==30){c[g>>2]=i;f=6;break}else if((b|0)==32){c[g>>2]=i;f=6;break}else if((b|0)==35){c[g>>2]=i;f=6;break}else if((b|0)==37){c[g>>2]=i;f=6;break}else if((b|0)==38){c[g>>2]=m;f=6;break}}else f=-1}else f=-4;while(0);return f|0}function h$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=f-e|0;r=(r&1|0)==0?f:e+(r&-2)|0;p=b+76|0;q=r;o=0;a:while(1){if((e|0)==(r|0)){f=-1;break}f=a[e+1>>0]|0;b=a[e>>0]|0;if(!(f<<24>>24))n=d[p+(b&255)>>0]|0;else n=v$(f,b)|0;f=e+2|0;b=(f|0)==(r|0);h=e+4|0;i=e+3|0;j=e+6|0;k=(h|0)==(r|0);l=e+5|0;m=q-e|0;switch(n|0){case 8:case 1:case 0:{s=10;break a}case 5:if((m|0)<2){f=-2;break a}else{n=o;e=f;o=n;continue a}case 6:if((m|0)<3){f=-2;break a}else{n=o;e=i;o=n;continue a}case 7:if((m|0)<4){f=-2;break a}else{n=o;e=h;o=n;continue a}case 2:{if(b){f=-1;break a}if(a[i>>0]|0){n=o;e=f;o=n;continue a}if((a[f>>0]|0)!=33){n=o;e=f;o=n;continue a}if(k){f=-1;break a}if(a[l>>0]|0){n=o;e=h;o=n;continue a}e=(a[h>>0]|0)==91;o=(e&1)+o|0;e=e?j:h;continue a}case 4:{if(b){f=-1;break a}if(a[i>>0]|0){n=o;e=f;o=n;continue a}if((a[f>>0]|0)!=93){n=o;e=f;o=n;continue a}if(k){f=-1;break a}if(a[l>>0]|0){n=o;e=h;o=n;continue a}if((a[h>>0]|0)!=62){n=o;e=h;o=n;continue a}if(!o){s=24;break a}o=o+-1|0;e=j;continue a}default:{n=o;e=f;o=n;continue a}}}if((s|0)==10){c[g>>2]=e;f=0}else if((s|0)==24){c[g>>2]=j;f=42}return f|0}function i$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;do if((e|0)!=(f|0)){l=b+76|0;j=e;a:while(1){if((j|0)==(f|0)){i=27;break}i=a[j+1>>0]|0;h=a[j>>0]|0;if(!(i<<24>>24))h=d[l+(h&255)>>0]|0;else h=v$(i,h)|0;k=j+2|0;switch(h|0){case 21:{i=24;break a}case 3:{i=10;break a}case 2:{i=13;break a}case 10:{i=14;break a}case 9:{i=17;break a}case 6:{j=j+3|0;continue a}case 7:{j=j+4|0;continue a}default:{j=k;continue a}}}if((i|0)==10)if((j|0)==(e|0)){h=w$(b,k,f,g)|0;break}else{c[g>>2]=j;h=6;break}else if((i|0)==13){c[g>>2]=j;h=0;break}else if((i|0)==14)if((j|0)==(e|0)){c[g>>2]=k;h=7;break}else{c[g>>2]=j;h=6;break}else if((i|0)==17){if((j|0)!=(e|0)){c[g>>2]=j;h=6;break}if((k|0)==(f|0)){h=-3;break}h=a[e+3>>0]|0;i=a[k>>0]|0;if(!(h<<24>>24))h=d[l+(i&255)>>0]|0;else h=v$(h,i)|0;c[g>>2]=(h|0)==10?e+4|0:k;h=7;break}else if((i|0)==24)if((j|0)==(e|0)){c[g>>2]=k;h=39;break}else{c[g>>2]=j;h=6;break}else if((i|0)==27){c[g>>2]=f;h=6;break}}else h=-4;while(0);return h|0}function j$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;do if((e|0)!=(f|0)){l=b+76|0;j=e;a:while(1){if((j|0)==(f|0)){i=26;break}i=a[j+1>>0]|0;h=a[j>>0]|0;if(!(i<<24>>24))h=d[l+(h&255)>>0]|0;else h=v$(i,h)|0;k=j+2|0;switch(h|0){case 9:{i=19;break a}case 3:{i=10;break a}case 30:{i=13;break a}case 10:{i=16;break a}case 6:{j=j+3|0;continue a}case 7:{j=j+4|0;continue a}default:{j=k;continue a}}}if((i|0)==10)if((j|0)==(e|0)){h=w$(b,k,f,g)|0;break}else{c[g>>2]=j;h=6;break}else if((i|0)==13)if((j|0)==(e|0)){h=x$(b,k,f,g)|0;h=(h|0)==22?0:h;break}else{c[g>>2]=j;h=6;break}else if((i|0)==16)if((j|0)==(e|0)){c[g>>2]=k;h=7;break}else{c[g>>2]=j;h=6;break}else if((i|0)==19){if((j|0)!=(e|0)){c[g>>2]=j;h=6;break}if((k|0)==(f|0)){h=-3;break}h=a[e+3>>0]|0;i=a[k>>0]|0;if(!(h<<24>>24))h=d[l+(i&255)>>0]|0;else h=v$(h,i)|0;c[g>>2]=(h|0)==10?e+4|0:k;h=7;break}else if((i|0)==26){c[g>>2]=f;h=6;break}}else h=-4;while(0);return h|0}function k$(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;j=b+76|0;f=e;b=c;a:while(1){h=b+1|0;i=a[h>>0]|0;e=a[b>>0]|0;if(!(i<<24>>24))g=d[j+(e&255)>>0]|0;else g=v$(i,e)|0;c=f+1|0;switch(g|0){case 7:{if(e<<24>>24==(a[f>>0]|0)){f=c;b=h;e=i;k=7}else{b=0;break a}break}case 6:{k=7;break}case 5:{k=9;break}case 27:case 26:case 25:case 24:case 23:case 22:case 29:{if((a[f>>0]|0)!=e<<24>>24){b=0;break a}if((a[c>>0]|0)==i<<24>>24)e=f;else{b=0;break a}break}default:{k=14;break a}}if((k|0)==7){k=0;c=b+1|0;if(e<<24>>24!=(a[f>>0]|0)){b=0;break}f=f+1|0;b=c;e=a[c>>0]|0;k=9}if((k|0)==9){k=0;if(e<<24>>24!=(a[f>>0]|0)){b=0;break}if((a[b+1>>0]|0)==(a[f+1>>0]|0))e=f;else{b=0;break}}f=e+2|0;b=b+2|0}b:do if((k|0)==14){e=a[c>>0]|0;b=a[f>>0]|0;if(!(e<<24>>24))b=d[j+(b&255)>>0]|0;else b=v$(e,b)|0;switch(b|0){case 27:case 26:case 25:case 24:case 23:case 22:case 29:case 7:case 6:case 5:{b=0;break b}default:{}}b=1}while(0);return b|0}function l$(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;b=c;while(1){c=a[e>>0]|0;f=(b|0)==(d|0);if(!(c<<24>>24)){g=7;break}if(f){b=0;break}if(a[b+1>>0]|0){b=0;break}if((a[b>>0]|0)!=c<<24>>24){b=0;break}e=e+1|0;b=b+2|0}if((g|0)==7)b=f&1;return b|0}function m$(b,c){b=b|0;c=c|0;var e=0,f=0,g=0;g=b+76|0;f=c;a:while(1){b=a[f+1>>0]|0;e=a[f>>0]|0;if(!(b<<24>>24))b=d[g+(e&255)>>0]|0;else b=v$(b,e)|0;switch(b|0){case 27:case 26:case 25:case 24:case 23:case 22:case 29:case 5:{f=f+2|0;continue a}case 6:{f=f+3|0;continue a}case 7:{f=f+4|0;continue a}default:break a}}return f-c|0}function n$(b,c){b=b|0;c=c|0;var e=0,f=0;f=b+76|0;a:while(1){b=a[c+1>>0]|0;e=a[c>>0]|0;if(!(b<<24>>24))b=d[f+(e&255)>>0]|0;else b=v$(b,e)|0;switch(b|0){case 21:case 9:case 10:break;default:break a}c=c+2|0}return c|0}function o$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=b+76|0;x=0;y=0;u=1;a:while(1){w=e+2|0;r=e+3|0;b=a[r>>0]|0;s=b<<24>>24==0;t=a[w>>0]|0;if(s)p=d[z+(t&255)>>0]|0;else p=v$(b,t)|0;b=(y|0)<(f|0);q=e+4|0;h=(u|0)==1;i=(u|0)==2;v=g+(y<<4)+12|0;j=y+1|0;k=(u|0)==0;l=(u|0)!=2;m=g+(y<<4)+8|0;n=g+(y<<4)+4|0;o=g+(y<<4)|0;do switch(p|0){case 5:{if(!k){s=u;t=y;v=x;e=w;u=s;y=t;x=v;continue a}if(!b){t=y;v=x;u=1;e=w;y=t;x=v;continue a}c[o>>2]=w;a[v>>0]=1;t=y;v=x;u=1;e=w;y=t;x=v;continue a}case 6:{if(!k){t=u;v=y;w=x;e=r;u=t;y=v;x=w;continue a}if(!b){v=y;w=x;u=1;e=r;y=v;x=w;continue a}c[o>>2]=w;a[v>>0]=1;v=y;w=x;u=1;e=r;y=v;x=w;continue a}case 7:{if(!k){t=u;v=y;w=x;e=q;u=t;y=v;x=w;continue a}if(!b){v=y;w=x;u=1;e=q;y=v;x=w;continue a}c[o>>2]=w;a[v>>0]=1;v=y;w=x;u=1;e=q;y=v;x=w;continue a}case 24:case 22:case 29:{if(!k){s=u;t=y;v=x;e=w;u=s;y=t;x=v;continue a}if(!b){t=y;v=x;u=1;e=w;y=t;x=v;continue a}c[o>>2]=w;a[v>>0]=1;t=y;v=x;u=1;e=w;y=t;x=v;continue a}case 12:{if(l){if(!b){v=y;x=12;u=2;e=w;y=v;continue a}c[n>>2]=q;v=y;x=12;u=2;e=w;y=v;continue a}if((x|0)!=12){t=y;v=x;u=2;e=w;y=t;x=v;continue a}if(!b){x=12;y=j;u=0;e=w;continue a}c[m>>2]=w;x=12;y=j;u=0;e=w;continue a}case 13:{if(l){if(!b){v=y;x=13;u=2;e=w;y=v;continue a}c[n>>2]=q;v=y;x=13;u=2;e=w;y=v;continue a}if((x|0)!=13){t=y;v=x;u=2;e=w;y=t;x=v;continue a}if(!b){x=13;y=j;u=0;e=w;continue a}c[m>>2]=w;x=13;y=j;u=0;e=w;continue a}case 3:{if(!b){s=u;t=y;v=x;e=w;u=s;y=t;x=v;continue a}a[v>>0]=0;s=u;t=y;v=x;e=w;u=s;y=t;x=v;continue a}case 21:{if(h){t=y;v=x;u=0;e=w;y=t;x=v;continue a}if(!i){s=u;t=y;v=x;e=w;u=s;y=t;x=v;continue a}if(!b){t=y;v=x;u=2;e=w;y=t;x=v;continue a}if(!(a[v>>0]|0)){t=y;v=x;u=2;e=w;y=t;x=v;continue a}do if(s&(w|0)!=(c[n>>2]|0)&t<<24>>24==32){e=a[e+5>>0]|0;b=a[q>>0]|0;if(!(e<<24>>24)){if(b<<24>>24==32)break;b=d[z+(b&255)>>0]|0}else b=v$(e,b)|0;if((b|0)!=(x|0)){t=y;v=x;u=2;e=w;y=t;x=v;continue a}}while(0);a[v>>0]=0;t=y;v=x;u=2;e=w;y=t;x=v;continue a}case 10:case 9:{if(h){t=y;v=x;u=0;e=w;y=t;x=v;continue a}if(!i){s=u;t=y;v=x;e=w;u=s;y=t;x=v;continue a}if(!b){t=y;v=x;u=2;e=w;y=t;x=v;continue a}a[v>>0]=0;t=y;v=x;u=2;e=w;y=t;x=v;continue a}case 17:case 11:if(l)break a;else{t=y;v=x;u=2;e=w;y=t;x=v;continue a}default:{s=u;t=y;v=x;e=w;u=s;y=t;x=v;continue a}}while(0)}return y|0}function p$(b,c){b=b|0;c=c|0;var d=0,e=0;b=c+4|0;a:do if((a[c+5>>0]|0)==0?(a[b>>0]|0)==120:0){c=c+6|0;b=0;while(1){b:while(1){if(!(a[c+1>>0]|0)){d=a[c>>0]|0;if(d<<24>>24==59){e=17;break a}d=d<<24>>24;switch(d|0){case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:case 48:{e=8;break b}case 70:case 69:case 68:case 67:case 66:case 65:{e=9;break b}case 102:case 101:case 100:case 99:case 98:case 97:{e=10;break b}default:{}}}c=c+2|0}if((e|0)==8){e=0;b=d+-48|b<<4}else if((e|0)==9){e=0;b=(b<<4)+-55+d|0}else if((e|0)==10){e=0;b=(b<<4)+-87+d|0}if((b|0)<1114112)c=c+2|0;else{b=-1;break}}}else{d=b;b=0;e=13}while(0);c:do if((e|0)==13)while(1){e=0;if(!(a[d+1>>0]|0)){c=a[d>>0]|0;if(c<<24>>24==59){e=17;break c}c=c<<24>>24}else c=-1;b=(b*10|0)+-48+c|0;if((b|0)>=1114112){b=-1;break}else{d=d+2|0;e=13}}while(0);if((e|0)==17)b=k_(b)|0;return b|0}function q$(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=c+2|0;b=c+1|0;h=c+3|0;e=c+4|0;f=c+5|0;a:do switch((d-c|0)/2|0|0){case 2:{if((a[h>>0]|0)==0?(a[g>>0]|0)==116:0){if(!(a[b>>0]|0))b=a[c>>0]|0;else b=-1;b=(b|0)==108?60:(b|0)==103?62:0}else i=27;break}case 3:{if((((((a[b>>0]|0)==0?(a[c>>0]|0)==97:0)?(a[h>>0]|0)==0:0)?(a[g>>0]|0)==109:0)?(a[f>>0]|0)==0:0)?(a[e>>0]|0)==112:0)b=38;else i=27;break}case 4:{if(!(a[b>>0]|0)){b=c+6|0;d=c+7|0;switch(a[c>>0]|0){case 113:{if(a[h>>0]|0){i=27;break a}if((a[g>>0]|0)!=117){i=27;break a}if(a[f>>0]|0){i=27;break a}if((a[e>>0]|0)!=111){i=27;break a}if(a[d>>0]|0){i=27;break a}if((a[b>>0]|0)==116){b=34;break a}else{i=27;break a}}case 97:{if(a[h>>0]|0){i=27;break a}if((a[g>>0]|0)!=112){i=27;break a}if(a[f>>0]|0){i=27;break a}if((a[e>>0]|0)!=111){i=27;break a}if(a[d>>0]|0){i=27;break a}if((a[b>>0]|0)==115){b=39;break a}else{i=27;break a}}default:{i=27;break a}}}else i=27;break}default:i=27}while(0);if((i|0)==27)b=0;return b|0}function r$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;j=b+76|0;k=g+4|0;b=e;while(1){if(b>>>0>=f>>>0)break;h=a[b+1>>0]|0;e=a[b>>0]|0;if(!(h<<24>>24))e=d[j+(e&255)>>0]|0;else e=v$(h,e)|0;i=b+2|0;switch(e|0){case 9:{c[g>>2]=(c[g>>2]|0)+1;if((i|0)==(f|0))b=f;else{e=a[b+3>>0]|0;h=a[i>>0]|0;if(!(e<<24>>24))e=d[j+(h&255)>>0]|0;else e=v$(e,h)|0;b=(e|0)==10?b+4|0:i}c[k>>2]=-1;break}case 6:{b=b+3|0;break}case 7:{b=b+4|0;break}case 10:{c[k>>2]=-1;c[g>>2]=(c[g>>2]|0)+1;b=i;break}default:b=i}c[k>>2]=(c[k>>2]|0)+1}return}function s$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;j=f+-2|0;i=b+76|0;f=e;a:while(1){h=f+2|0;if((h|0)==(j|0)){f=1;break}f=a[f+3>>0]|0;e=f<<24>>24==0;b=a[h>>0]|0;if(e)f=d[i+(b&255)>>0]|0;else f=v$(f,b)|0;switch(f|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:{f=h;continue a}case 21:if(e&b<<24>>24==9){k=12;break a}else{f=h;continue a}case 22:case 26:{if(!e){k=12;break a}if(b<<24>>24>=0){f=h;continue a}break}default:if(!e){k=12;break a}}switch(b<<24>>24|0){case 64:case 36:{f=h;break}default:{k=12;break a}}}if((k|0)==12){c[g>>2]=h;f=0}return f|0}function t$(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=h;b=c[e>>2]|0;a:while(1){if((b|0)==(f|0)){b=f;break}k=a[b>>0]|0;i=a[b+1>>0]|0;m=i&255;j=k&255;n=j>>>6;l=(j&63|128)&255;switch(i<<24>>24){case 0:{if(k<<24>>24>-1){i=c[g>>2]|0;if((i|0)==(h|0))break a;c[g>>2]=i+1;a[i>>0]=k}else p=7;break}case 7:case 6:case 5:case 4:case 3:case 2:case 1:{p=7;break}case -37:case -38:case -39:case -40:{i=c[g>>2]|0;if((o-i|0)<4)break a;m=(m<<2&12|n)+1|0;c[g>>2]=i+1;a[i>>0]=m>>>2|240;n=c[g>>2]|0;c[g>>2]=n+1;a[n>>0]=j>>>2&15|m<<4&48|128;n=b+2|0;m=d[n>>0]|0;l=(j<<4&48|m>>>6|a[b+3>>0]<<2&12|128)&255;b=c[g>>2]|0;c[g>>2]=b+1;a[b>>0]=l;b=c[g>>2]|0;c[g>>2]=b+1;a[b>>0]=m&63|128;b=n;break}default:{i=c[g>>2]|0;if((o-i|0)<3)break a;c[g>>2]=i+1;a[i>>0]=m>>>4|224;k=c[g>>2]|0;c[g>>2]=k+1;a[k>>0]=n|m<<2&60|128;n=c[g>>2]|0;c[g>>2]=n+1;a[n>>0]=l}}if((p|0)==7){p=0;i=c[g>>2]|0;if((o-i|0)<2)break;c[g>>2]=i+1;a[i>>0]=n|m<<2|192;n=c[g>>2]|0;c[g>>2]=n+1;a[n>>0]=l}b=b+2|0}c[e>>2]=b;return}function u$(e,f,g,h,i){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0;e=c[f>>2]|0;if((g-e|0)>(i-(c[h>>2]|0)|0))g=(a[g+-1>>0]&-8)<<24>>24==-40?g+-2|0:g;while(1){if((e|0)==(g|0))break;j=c[h>>2]|0;if((j|0)==(i|0))break;k=((d[e+1>>0]|0)<<8|(d[e>>0]|0))&65535;c[h>>2]=j+2;b[j>>1]=k;j=(c[f>>2]|0)+2|0;c[f>>2]=j;e=j}return}function v$(a,b){a=a|0;b=b|0;var c=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((b&255)>253)a=0;else c=4;break}default:c=4}if((c|0)==4)a=29;return a|0}function w$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:do if((e|0)!=(f|0)){k=a[e+1>>0]|0;m=b+76|0;l=a[e>>0]|0;if(!(k<<24>>24))j=d[m+(l&255)>>0]|0;else j=v$(k,l)|0;n=f;h=n-e|0;i=e+2|0;switch(j|0){case 29:{l=l&255;if(!(1<<(l&31)&c[57168+((l>>>5|(d[143937+(k&255)>>0]|0)<<3)<<2)>>2])){c[g>>2]=e;b=0;break a}break}case 24:case 22:break;case 5:{if((h|0)<2){b=-2;break a}c[g>>2]=e;b=0;break a}case 6:{if((h|0)<3){b=-2;break a}c[g>>2]=e;b=0;break a}case 7:{if((h|0)<4){b=-2;break a}c[g>>2]=e;b=0;break a}case 19:{b=y$(b,i,f,g)|0;break a}default:{c[g>>2]=e;b=0;break a}}b:while(1){if((i|0)==(f|0)){b=-1;break a}b=a[i+1>>0]|0;e=a[i>>0]|0;if(!(b<<24>>24))h=d[m+(e&255)>>0]|0;else h=v$(b,e)|0;j=i+2|0;switch(h|0){case 27:case 26:case 25:case 24:case 22:{i=j;continue b}case 5:{e=23;break b}case 6:{e=25;break b}case 7:{e=27;break b}case 18:{e=29;break b}case 29:break;default:{e=30;break b}}l=e&255;if(!(1<<(l&31)&c[57168+((l>>>5|(d[144193+(b&255)>>0]|0)<<3)<<2)>>2])){e=22;break}else i=j}if((e|0)==22){c[g>>2]=i;b=0;break}else if((e|0)==23){if((n-i|0)<2){b=-2;break}c[g>>2]=i;b=0;break}else if((e|0)==25){if((n-i|0)<3){b=-2;break}c[g>>2]=i;b=0;break}else if((e|0)==27){if((n-i|0)<4){b=-2;break}c[g>>2]=i;b=0;break}else if((e|0)==29){c[g>>2]=j;b=9;break}else if((e|0)==30){c[g>>2]=i;b=0;break}}else b=-1;while(0);return b|0}function x$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;a:do if((e|0)!=(f|0)){j=a[e+1>>0]|0;k=b+76|0;i=a[e>>0]|0;if(!(j<<24>>24))h=d[k+(i&255)>>0]|0;else h=v$(j,i)|0;l=f;b=l-e|0;switch(h|0){case 29:{i=i&255;if(!(1<<(i&31)&c[57168+((i>>>5|(d[143937+(j&255)>>0]|0)<<3)<<2)>>2])){c[g>>2]=e;b=0;break a}break}case 24:case 22:break;case 5:{if((b|0)<2){b=-2;break a}c[g>>2]=e;b=0;break a}case 6:{if((b|0)<3){b=-2;break a}c[g>>2]=e;b=0;break a}case 7:{if((b|0)<4){b=-2;break a}c[g>>2]=e;b=0;break a}case 30:case 9:case 10:case 21:{c[g>>2]=e;b=22;break a}default:{c[g>>2]=e;b=0;break a}}e=e+2|0;b:while(1){if((e|0)==(f|0)){b=-1;break a}b=a[e+1>>0]|0;h=a[e>>0]|0;if(!(b<<24>>24))i=d[k+(h&255)>>0]|0;else i=v$(b,h)|0;j=e+2|0;switch(i|0){case 27:case 26:case 25:case 24:case 22:{e=j;continue b}case 5:{h=24;break b}case 6:{h=26;break b}case 7:{h=28;break b}case 18:{h=30;break b}case 29:break;default:{h=31;break b}}i=h&255;if(!(1<<(i&31)&c[57168+((i>>>5|(d[144193+(b&255)>>0]|0)<<3)<<2)>>2])){h=23;break}else e=j}if((h|0)==23){c[g>>2]=e;b=0;break}else if((h|0)==24){if((l-e|0)<2){b=-2;break}c[g>>2]=e;b=0;break}else if((h|0)==26){if((l-e|0)<3){b=-2;break}c[g>>2]=e;b=0;break}else if((h|0)==28){if((l-e|0)<4){b=-2;break}c[g>>2]=e;b=0;break}else if((h|0)==30){c[g>>2]=j;b=28;break}else if((h|0)==31){c[g>>2]=e;b=0;break}}else b=-1;while(0);return b|0}function y$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;a:do if((e|0)!=(f|0)){h=a[e+1>>0]|0;i=h<<24>>24==0;j=e+2|0;k=a[e>>0]|0;if(i&k<<24>>24==120){b=z$(b,j,f,g)|0;break}l=b+76|0;if(i)b=d[l+(k&255)>>0]|0;else b=v$(h,k)|0;if((b|0)!=25){c[g>>2]=e;b=0;break}b:while(1){if((j|0)==(f|0)){b=-1;break a}b=a[j+1>>0]|0;h=a[j>>0]|0;if(!(b<<24>>24))b=d[l+(h&255)>>0]|0;else b=v$(b,h)|0;i=j+2|0;switch(b|0){case 25:{j=i;break}case 18:{h=14;break b}default:{h=15;break b}}}if((h|0)==14){c[g>>2]=i;b=10;break}else if((h|0)==15){c[g>>2]=j;b=0;break}}else b=-1;while(0);return b|0}function z$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;a:do if((e|0)!=(f|0)){h=a[e+1>>0]|0;j=b+76|0;b=a[e>>0]|0;if(!(h<<24>>24))b=d[j+(b&255)>>0]|0;else b=v$(h,b)|0;if((b&-2|0)!=24){c[g>>2]=e;b=0;break}i=e+2|0;b:while(1){if((i|0)==(f|0)){b=-1;break a}b=a[i+1>>0]|0;h=a[i>>0]|0;if(!(b<<24>>24))b=d[j+(h&255)>>0]|0;else b=v$(b,h)|0;e=i+2|0;switch(b|0){case 24:case 25:{i=e;break}case 18:{h=13;break b}default:{h=14;break b}}}if((h|0)==13){c[g>>2]=e;b=10;break}else if((h|0)==14){c[g>>2]=i;b=0;break}}else b=-1;while(0);return b|0}function A$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;a:do if((e|0)!=(f|0)){k=a[e+1>>0]|0;n=b+76|0;l=a[e>>0]|0;if(!(k<<24>>24))j=d[n+(l&255)>>0]|0;else j=v$(k,l)|0;h=e+2|0;m=f;i=m-e|0;switch(j|0){case 29:{l=l&255;if(!(1<<(l&31)&c[57168+((l>>>5|d[143937+(k&255)>>0]<<3)<<2)>>2])){c[g>>2]=e;h=0;break a}else l=0;break}case 24:case 22:{l=0;break}case 5:{if((i|0)<2){h=-2;break a}c[g>>2]=e;h=0;break a}case 6:{if((i|0)<3){h=-2;break a}c[g>>2]=e;h=0;break a}case 7:{if((i|0)<4){h=-2;break a}c[g>>2]=e;h=0;break a}case 16:{if((h|0)==(f|0)){h=-1;break a}i=a[e+3>>0]|0;j=a[h>>0]|0;if(!(i<<24>>24))j=d[n+(j&255)>>0]|0;else j=v$(i,j)|0;i=e+4|0;switch(j|0){case 27:{h=B$(b,i,f,g)|0;break a}case 20:{h=C$(i,f,g)|0;break a}default:{c[g>>2]=h;h=0;break a}}}case 15:{h=D$(b,h,f,g)|0;break a}case 17:{h=E$(b,h,f,g)|0;break a}default:{c[g>>2]=e;h=0;break a}}b:while(1){c:while(1){if((h|0)==(f|0)){h=-1;break a}i=a[h+1>>0]|0;j=a[h>>0]|0;if(!(i<<24>>24))k=d[n+(j&255)>>0]|0;else k=v$(i,j)|0;e=h+2|0;switch(k|0){case 5:{o=32;break b}case 6:{o=34;break b}case 7:{o=36;break b}case 10:case 9:case 21:{h=e;o=56;break b}case 11:{o=71;break b}case 17:break b;case 27:case 26:case 25:case 24:case 22:{h=e;continue c}case 23:break c;case 29:break;default:{o=77;break b}}k=j&255;if(!(1<<(k&31)&c[57168+((k>>>5|d[144193+(i&255)>>0]<<3)<<2)>>2])){o=31;break b}else h=e}if(l|0){o=39;break}if((e|0)==(f|0)){h=-1;break a}i=a[h+3>>0]|0;j=a[e>>0]|0;if(!(i<<24>>24))k=d[n+(j&255)>>0]|0;else k=v$(i,j)|0;switch(k|0){case 5:{o=49;break b}case 6:{o=51;break b}case 7:{o=53;break b}case 29:{l=j&255;if(!(1<<(l&31)&c[57168+((l>>>5|d[143937+(i&255)>>0]<<3)<<2)>>2])){o=46;break b}break}case 24:case 22:break;default:{o=55;break b}}l=1;h=h+4|0}d:switch(o|0){case 31:{c[g>>2]=h;h=0;break a}case 32:{if((m-h|0)<2){h=-2;break a}c[g>>2]=h;h=0;break a}case 34:{if((m-h|0)<3){h=-2;break a}c[g>>2]=h;h=0;break a}case 36:{if((m-h|0)<4){h=-2;break a}c[g>>2]=h;h=0;break a}case 39:{c[g>>2]=h;h=0;break a}case 46:{c[g>>2]=e;h=0;break a}case 49:{if((m-e|0)<2){h=-2;break a}c[g>>2]=e;h=0;break a}case 51:{if((m-e|0)<3){h=-2;break a}c[g>>2]=e;h=0;break a}case 53:{if((m-e|0)<4){h=-2;break a}c[g>>2]=e;h=0;break a}case 55:{c[g>>2]=e;h=0;break a}case 56:{e:while(1){o=0;if((h|0)==(f|0)){h=-1;break a}i=a[h+1>>0]|0;j=a[h>>0]|0;if(!(i<<24>>24))l=d[n+(j&255)>>0]|0;else l=v$(i,j)|0;k=h+2|0;switch(l|0){case 11:{o=71;break d}case 17:break d;case 10:case 9:case 21:{h=k;o=56;break}case 29:{o=61;break e}case 24:case 22:break e;case 5:{o=64;break e}case 6:{o=66;break e}case 7:{o=68;break e}default:{o=70;break e}}}if((o|0)==61){o=j&255;if(!(1<<(o&31)&c[57168+((o>>>5|d[143937+(i&255)>>0]<<3)<<2)>>2])){c[g>>2]=h;h=0;break a}}else if((o|0)==64){if((m-h|0)<2){h=-2;break a}c[g>>2]=h;h=0;break a}else if((o|0)==66){if((m-h|0)<3){h=-2;break a}c[g>>2]=h;h=0;break a}else if((o|0)==68){if((m-h|0)<4){h=-2;break a}c[g>>2]=h;h=0;break a}else if((o|0)==70){c[g>>2]=h;h=0;break a}h=F$(b,k,f,g)|0;break a}case 77:{c[g>>2]=h;h=0;break a}}if((o|0)==71){c[g>>2]=h+2;h=2;break}i=h+2|0;if((i|0)!=(f|0)){if((a[h+3>>0]|0)==0?(a[i>>0]|0)==62:0){c[g>>2]=h+4;h=4;break}c[g>>2]=i;h=0}else h=-1}else h=-1;while(0);return h|0}function B$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;a:do if((e|0)==(f|0))b=-1;else{if((a[e+1>>0]|0)==0?(a[e>>0]|0)==45:0){j=b+76|0;k=f;i=e+2|0;b:while(1){if((i|0)==(f|0)){b=-1;break a}b=a[i+1>>0]|0;e=a[i>>0]|0;if(!(b<<24>>24))h=d[j+(e&255)>>0]|0;else h=v$(b,e)|0;b=i+2|0;e=k-i|0;switch(h|0){case 8:case 1:case 0:{l=16;break b}case 5:if((e|0)<2){b=-2;break a}else{i=b;continue b}case 6:{if((e|0)<3){b=-2;break a}i=i+3|0;continue b}case 7:{if((e|0)<4){b=-2;break a}i=i+4|0;continue b}case 27:{if((b|0)==(f|0)){b=-1;break a}if(a[i+3>>0]|0){i=b;continue b}if((a[b>>0]|0)==45)break b;else{i=b;continue b}}default:{i=b;continue b}}}if((l|0)==16){c[g>>2]=i;b=0;break}b=i+4|0;if((b|0)==(f|0)){b=-1;break}if((a[i+5>>0]|0)==0?(a[b>>0]|0)==62:0){c[g>>2]=i+6;b=13;break}c[g>>2]=b;b=0;break}c[g>>2]=e;b=0}while(0);return b|0}function C$(b,d,e){b=b|0;d=d|0;e=e|0;if((d-b|0)<12)d=-1;else{d=0;while(1){if((d|0)>=6){d=8;break}if(a[b+1>>0]|0){d=0;break}if((a[b>>0]|0)!=(a[144449+d>>0]|0)){d=0;break}d=d+1|0;b=b+2|0}c[e>>2]=b}return d|0}function D$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+16|0;p=q;a:do if((e|0)==(f|0))b=-1;else{j=a[e+1>>0]|0;o=b+76|0;b=a[e>>0]|0;if(!(j<<24>>24))i=d[o+(b&255)>>0]|0;else i=v$(j,b)|0;n=f;h=n-e|0;switch(i|0){case 29:{k=b&255;if(!(1<<(k&31)&c[57168+((k>>>5|d[143937+(j&255)>>0]<<3)<<2)>>2])){c[g>>2]=e;b=0;break a}break}case 24:case 22:break;case 5:{if((h|0)<2){b=-2;break a}c[g>>2]=e;b=0;break a}case 6:{if((h|0)<3){b=-2;break a}c[g>>2]=e;b=0;break a}case 7:{if((h|0)<4){b=-2;break a}c[g>>2]=e;b=0;break a}default:{c[g>>2]=e;b=0;break a}}b=e+2|0;b:while(1){if((b|0)==(f|0)){b=-1;break a}h=a[b+1>>0]|0;i=a[b>>0]|0;if(!(h<<24>>24))k=d[o+(i&255)>>0]|0;else k=v$(h,i)|0;j=b+2|0;switch(k|0){case 27:case 26:case 25:case 24:case 22:{b=j;continue b}case 5:{m=23;break b}case 6:{m=25;break b}case 7:{m=27;break b}case 10:case 9:case 21:{m=29;break b}case 15:{m=46;break b}case 29:break;default:break b}k=i&255;if(!(1<<(k&31)&c[57168+((k>>>5|d[144193+(h&255)>>0]<<3)<<2)>>2])){m=22;break}else b=j}if((m|0)==22){c[g>>2]=b;b=0;break}else if((m|0)==23){if((n-b|0)<2){b=-2;break}c[g>>2]=b;b=0;break}else if((m|0)==25){if((n-b|0)<3){b=-2;break}c[g>>2]=b;b=0;break}else if((m|0)==27){if((n-b|0)<4){b=-2;break}c[g>>2]=b;b=0;break}else if((m|0)==29){if(!(G$(e,b,p)|0)){c[g>>2]=b;b=0;break}c:while(1){if((j|0)==(f|0)){b=-1;break a}b=a[j+1>>0]|0;h=a[j>>0]|0;if(!(b<<24>>24))i=d[o+(h&255)>>0]|0;else i=v$(b,h)|0;b=j+2|0;h=n-j|0;switch(i|0){case 8:case 1:case 0:{m=41;break c}case 5:if((h|0)<2){b=-2;break a}else{j=b;continue c}case 6:{if((h|0)<3){b=-2;break a}j=j+3|0;continue c}case 7:{if((h|0)<4){b=-2;break a}j=j+4|0;continue c}case 15:{if((b|0)==(f|0)){b=-1;break a}if(a[j+3>>0]|0){j=b;continue c}if((a[b>>0]|0)==62){m=45;break c}else{j=b;continue c}}default:{j=b;continue c}}}if((m|0)==41){c[g>>2]=j;b=0;break}else if((m|0)==45){c[g>>2]=j+4;b=c[p>>2]|0;break}}else if((m|0)==46){if(!(G$(e,b,p)|0)){c[g>>2]=b;b=0;break}if((j|0)==(f|0)){b=-1;break}if((a[b+3>>0]|0)==0?(a[j>>0]|0)==62:0){c[g>>2]=b+4;b=c[p>>2]|0;break}else b=j}c[g>>2]=b;b=0}while(0);l=q;return b|0}function E$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;a:do if((e|0)!=(f|0)){j=a[e+1>>0]|0;l=b+76|0;i=a[e>>0]|0;if(!(j<<24>>24))h=d[l+(i&255)>>0]|0;else h=v$(j,i)|0;k=f;b=k-e|0;switch(h|0){case 29:{i=i&255;if(!(1<<(i&31)&c[57168+((i>>>5|(d[143937+(j&255)>>0]|0)<<3)<<2)>>2])){c[g>>2]=e;b=0;break a}break}case 24:case 22:break;case 5:{if((b|0)<2){b=-2;break a}c[g>>2]=e;b=0;break a}case 6:{if((b|0)<3){b=-2;break a}c[g>>2]=e;b=0;break a}case 7:{if((b|0)<4){b=-2;break a}c[g>>2]=e;b=0;break a}default:{c[g>>2]=e;b=0;break a}}j=e+2|0;b:while(1){if((j|0)==(f|0)){b=-1;break a}b=a[j+1>>0]|0;h=a[j>>0]|0;if(!(b<<24>>24))e=d[l+(h&255)>>0]|0;else e=v$(b,h)|0;i=j+2|0;switch(e|0){case 23:case 27:case 26:case 25:case 24:case 22:{j=i;continue b}case 5:{e=23;break b}case 6:{e=25;break b}case 7:{e=27;break b}case 10:case 9:case 21:{e=29;break b}case 11:{e=36;break b}case 29:break;default:{e=37;break b}}e=h&255;if(!(1<<(e&31)&c[57168+((e>>>5|(d[144193+(b&255)>>0]|0)<<3)<<2)>>2])){e=22;break}else j=i}if((e|0)==22){c[g>>2]=j;b=0;break}else if((e|0)==23){if((k-j|0)<2){b=-2;break}c[g>>2]=j;b=0;break}else if((e|0)==25){if((k-j|0)<3){b=-2;break}c[g>>2]=j;b=0;break}else if((e|0)==27){if((k-j|0)<4){b=-2;break}c[g>>2]=j;b=0;break}else if((e|0)==29){c:while(1){if((i|0)==(f|0)){b=-1;break a}b=a[i+1>>0]|0;h=a[i>>0]|0;if(!(b<<24>>24))b=d[l+(h&255)>>0]|0;else b=v$(b,h)|0;h=i+2|0;switch(b|0){case 10:case 9:case 21:{i=h;e=29;break}case 11:{e=34;break c}default:{e=35;break c}}}if((e|0)==34){c[g>>2]=h;b=5;break}else if((e|0)==35){c[g>>2]=i;b=0;break}}else if((e|0)==36){c[g>>2]=i;b=5;break}else if((e|0)==37){c[g>>2]=j;b=0;break}}else b=-1;while(0);return b|0}function F$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+16|0;p=q;c[p>>2]=e;m=b+76|0;n=f;h=0;a:while(1){b:while(1){if((e|0)==(f|0)){e=-1;break a}k=a[e+1>>0]|0;i=a[e>>0]|0;if(!(k<<24>>24))j=d[m+(i&255)>>0]|0;else j=v$(k,i)|0;switch(j|0){case 5:{o=11;break a}case 6:{o=13;break a}case 7:{o=15;break a}case 23:{o=17;break b}case 10:case 9:case 21:{h=e;o=33;break b}case 14:{o=39;break b}case 29:{j=i&255;if(!(1<<(j&31)&c[57168+((j>>>5|d[144193+(k&255)>>0]<<3)<<2)>>2])){o=9;break a}break}case 27:case 26:case 25:case 24:case 22:break;default:{o=93;break a}}k=e+2|0;c[p>>2]=k;e=k}c:do if((o|0)==17){o=0;if(h|0){o=18;break a}h=e+2|0;c[p>>2]=h;if((h|0)==(f|0)){e=-1;break a}i=a[e+3>>0]|0;j=a[h>>0]|0;if(!(i<<24>>24))k=d[m+(j&255)>>0]|0;else k=v$(i,j)|0;switch(k|0){case 5:{o=26;break a}case 6:{o=28;break a}case 7:{o=30;break a}case 24:case 22:{h=1;break c}case 29:break;default:{o=32;break a}}k=j&255;if(!(1<<(k&31)&c[57168+((k>>>5|d[143937+(i&255)>>0]<<3)<<2)>>2])){o=25;break a}else h=1}else if((o|0)==33)while(1){o=0;e=h+2|0;c[p>>2]=e;if((e|0)==(f|0)){e=-1;break a}h=a[h+3>>0]|0;i=a[e>>0]|0;if(!(h<<24>>24))h=d[m+(i&255)>>0]|0;else h=v$(h,i)|0;switch(h|0){case 14:{o=39;break c}case 9:case 10:case 21:{h=e;o=33;break}default:{o=38;break a}}}while(0);d:do if((o|0)==39){while(1){o=0;j=e+2|0;c[p>>2]=j;if((j|0)==(f|0)){e=-1;break a}h=a[e+3>>0]|0;i=a[j>>0]|0;if(!(h<<24>>24))k=d[m+(i&255)>>0]|0;else k=v$(h,i)|0;if((k|1|0)==13)break;switch(k|0){case 9:case 10:case 21:{e=j;o=39;break}default:{o=45;break a}}}e=e+4|0;c[p>>2]=e;e:while(1){if((e|0)==(f|0)){e=-1;break a}h=a[e+1>>0]|0;i=a[e>>0]|0;if(!(h<<24>>24))h=d[m+(i&255)>>0]|0;else h=v$(h,i)|0;if((h|0)==(k|0))break;switch(h|0){case 8:case 1:case 0:{o=59;break a}case 2:{o=64;break a}case 5:{if((n-e|0)<2){e=-2;break a}j=e+2|0;c[p>>2]=j;e=j;continue e}case 6:{if((n-e|0)<3){e=-2;break a}j=e+3|0;c[p>>2]=j;e=j;continue e}case 7:{if((n-e|0)<4){e=-2;break a}j=e+4|0;c[p>>2]=j;e=j;continue e}case 3:{e=w$(b,e+2|0,f,p)|0;if((e|0)<1){o=62;break a}e=c[p>>2]|0;continue e}default:{j=e+2|0;c[p>>2]=j;e=j;continue e}}}i=e+2|0;c[p>>2]=i;if((i|0)==(f|0)){e=-1;break a}h=a[e+3>>0]|0;j=a[i>>0]|0;if(!(h<<24>>24))h=d[m+(j&255)>>0]|0;else h=v$(h,j)|0;switch(h|0){case 11:{o=85;break a}case 17:{o=86;break a}case 10:case 9:case 21:{e=i;break}default:{o=71;break a}}f:while(1){i=e+2|0;c[p>>2]=i;if((i|0)==(f|0)){e=-1;break a}h=a[e+3>>0]|0;j=a[i>>0]|0;if(!(h<<24>>24))k=d[m+(j&255)>>0]|0;else k=v$(h,j)|0;switch(k|0){case 5:{o=79;break a}case 6:{o=81;break a}case 7:{o=83;break a}case 11:{o=85;break a}case 17:{o=86;break a}case 24:case 22:{h=0;break d}case 10:case 9:case 21:{e=i;break}case 29:break f;default:{o=91;break a}}}k=j&255;if(!(1<<(k&31)&c[57168+((k>>>5|d[143937+(h&255)>>0]<<3)<<2)>>2])){o=78;break a}else h=0}while(0);e=e+4|0;c[p>>2]=e}switch(o|0){case 9:{c[g>>2]=e;e=0;break}case 11:{if((f-e|0)<2)e=-2;else{c[g>>2]=e;e=0}break}case 13:{if((f-e|0)<3)e=-2;else{c[g>>2]=e;e=0}break}case 15:{if((f-e|0)<4)e=-2;else{c[g>>2]=e;e=0}break}case 18:{c[g>>2]=e;e=0;break}case 25:{c[g>>2]=h;e=0;break}case 26:{if((f-h|0)<2)e=-2;else{c[g>>2]=h;e=0}break}case 28:{if((f-h|0)<3)e=-2;else{c[g>>2]=h;e=0}break}case 30:{if((f-h|0)<4)e=-2;else{c[g>>2]=h;e=0}break}case 32:{c[g>>2]=h;e=0;break}case 38:{c[g>>2]=e;e=0;break}case 45:{c[g>>2]=j;e=0;break}case 59:{c[g>>2]=e;e=0;break}case 62:{if(!e){c[g>>2]=c[p>>2];e=0}break}case 64:{c[g>>2]=e;e=0;break}case 71:{c[g>>2]=i;e=0;break}case 78:{c[g>>2]=i;e=0;break}case 79:{if((n-i|0)<2)e=-2;else{c[g>>2]=i;e=0}break}case 81:{if((n-i|0)<3)e=-2;else{c[g>>2]=i;e=0}break}case 83:{if((n-i|0)<4)e=-2;else{c[g>>2]=i;e=0}break}case 85:{c[g>>2]=e+4;e=1;break}case 86:{h=i+2|0;c[p>>2]=h;e=h;if((h|0)==(f|0))e=-1;else{if((a[i+3>>0]|0)==0?(a[h>>0]|0)==62:0){c[g>>2]=i+4;e=3;break}c[g>>2]=e;e=0}break}case 91:{c[g>>2]=i;e=0;break}case 93:{c[g>>2]=e;e=0;break}}l=q;return e|0}function G$(b,d,e){b=b|0;d=d|0;e=e|0;c[e>>2]=11;a:do if((d-b|0)==6?(a[b+1>>0]|0)==0:0){switch(a[b>>0]|0){case 120:{d=0;break}case 88:{d=1;break}default:{d=1;break a}}if(!(a[b+3>>0]|0)){switch(a[b+2>>0]|0){case 109:break;case 77:{d=1;break}default:{d=1;break a}}if(!(a[b+5>>0]|0)){switch(a[b+4>>0]|0){case 108:break;case 76:{d=0;break a}default:{d=1;break a}}if(!d){c[e>>2]=12;d=1}else d=0}else d=1}else d=1}else d=1;while(0);return d|0}function H$(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0;l=e+76|0;k=g;a:while(1){if((f|0)==(g|0)){e=-1;break}i=a[f+1>>0]|0;e=a[f>>0]|0;if(!(i<<24>>24))i=d[l+(e&255)>>0]|0;else i=v$(i,e)|0;j=f+2|0;e=k-f|0;switch(i|0){case 8:case 1:case 0:{m=12;break a}case 5:if((e|0)<2){e=-2;break a}else{f=j;continue a}case 6:{if((e|0)<3){e=-2;break a}f=f+3|0;continue a}case 7:{if((e|0)<4){e=-2;break a}f=f+4|0;continue a}case 13:case 12:if((i|0)==(b|0)){m=14;break a}else{f=j;continue a}default:{f=j;continue a}}}b:do if((m|0)==12){c[h>>2]=f;e=0}else if((m|0)==14)if((j|0)==(g|0))e=-27;else{c[h>>2]=j;f=a[f+3>>0]|0;e=a[j>>0]|0;if(!(f<<24>>24))e=d[l+(e&255)>>0]|0;else e=v$(f,e)|0;switch(e|0){case 20:case 30:case 11:case 10:case 9:case 21:{e=27;break b}default:{}}e=0}while(0);return e|0}function I$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;a:do if((e|0)==(f|0))h=-1;else{h=a[e+1>>0]|0;i=a[e>>0]|0;k=b+76|0;if(!(h<<24>>24))i=d[k+(i&255)>>0]|0;else i=v$(h,i)|0;h=e+2|0;switch(i|0){case 27:{h=B$(b,h,f,g)|0;break a}case 20:{c[g>>2]=h;h=33;break a}case 24:case 22:{e=h;b:while(1){if((e|0)==(f|0)){h=-1;break a}h=a[e+1>>0]|0;i=a[e>>0]|0;if(!(h<<24>>24))h=d[k+(i&255)>>0]|0;else h=v$(h,i)|0;b=e+2|0;switch(h|0){case 24:case 22:{e=b;break}case 30:{j=14;break b}case 10:case 9:case 21:break b;default:{j=21;break b}}}if((j|0)==21){c[g>>2]=e;h=0;break a}c:do if((j|0)==14){if((b|0)==(f|0)){h=-1;break a}i=a[e+3>>0]|0;h=a[b>>0]|0;if(!(i<<24>>24))h=d[k+(h&255)>>0]|0;else h=v$(i,h)|0;switch(h|0){case 30:case 10:case 9:case 21:break;default:break c}c[g>>2]=e;h=0;break a}while(0);c[g>>2]=e;h=16;break a}default:{c[g>>2]=e;h=0;break a}}}while(0);return h|0}function J$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;a:do if((e|0)!=(f|0)){j=a[e+1>>0]|0;k=b+76|0;i=a[e>>0]|0;if(!(j<<24>>24))h=d[k+(i&255)>>0]|0;else h=v$(j,i)|0;l=f;b=l-e|0;switch(h|0){case 29:{i=i&255;if(!(1<<(i&31)&c[57168+((i>>>5|(d[143937+(j&255)>>0]|0)<<3)<<2)>>2])){c[g>>2]=e;b=0;break a}break}case 24:case 22:break;case 5:{if((b|0)<2){b=-2;break a}c[g>>2]=e;b=0;break a}case 6:{if((b|0)<3){b=-2;break a}c[g>>2]=e;b=0;break a}case 7:{if((b|0)<4){b=-2;break a}c[g>>2]=e;b=0;break a}default:{c[g>>2]=e;b=0;break a}}b:while(1){b=e;e=e+2|0;if((e|0)==(f|0)){b=-20;break a}b=a[b+3>>0]|0;h=a[e>>0]|0;if(!(b<<24>>24))i=d[k+(h&255)>>0]|0;else i=v$(b,h)|0;switch(i|0){case 27:case 26:case 25:case 24:case 22:continue b;case 5:{h=22;break b}case 6:{h=24;break b}case 7:{h=26;break b}case 36:case 30:case 11:case 32:case 21:case 10:case 9:{h=28;break b}case 29:break;default:{h=29;break b}}j=h&255;if(!(1<<(j&31)&c[57168+((j>>>5|(d[144193+(b&255)>>0]|0)<<3)<<2)>>2])){h=21;break}}if((h|0)==21){c[g>>2]=e;b=0;break}else if((h|0)==22){if((l-e|0)<2){b=-2;break}c[g>>2]=e;b=0;break}else if((h|0)==24){if((l-e|0)<3){b=-2;break}c[g>>2]=e;b=0;break}else if((h|0)==26){if((l-e|0)<4){b=-2;break}c[g>>2]=e;b=0;break}else if((h|0)==28){c[g>>2]=e;b=20;break}else if((h|0)==29){c[g>>2]=e;b=0;break}}else b=-1;while(0);return b|0}function K$(b,d,e){b=b|0;d=d|0;e=e|0;e=L$(e)|0;if((e|0)==-1)e=0;else{a[b+73>>0]=e;c[b>>2]=67;c[b+4>>2]=68;c[b+52>>2]=31;c[b+76>>2]=d;c[d>>2]=b;e=1}return e|0}function L$(a){a=a|0;var b=0;a:do if(!a)b=6;else{b=0;while(1){if((b|0)>=6){b=-1;break a}if(u0(a,c[60316+(b<<2)>>2]|0)|0)break a;b=b+1|0}}while(0);return b|0}function M$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return P$(59184,a,0,b,c,d)|0}function N$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return P$(59184,a,1,b,c,d)|0}function O$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;D_(58816,b,c,d);return}function P$(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a:do if((f|0)==(g|0))d=-4;else{p=c[d+76>>2]|0;i=f+1|0;o=(e|0)==1;n=d+73|0;b:do if((i|0)==(g|0)){d=a[n>>0]|0;if(((d<<24>>24)+-3|0)>>>0<3){d=-1;break a}switch(a[f>>0]|0){case 60:case 0:{d=-1;break a}case -17:case -1:case -2:break;default:break b}if(!(o&d<<24>>24==0)){d=-1;break a}}else{l=a[f>>0]|0;d=a[i>>0]|0;i=b+16|0;m=b+20|0;j=f+2|0;k=((l&255)<<8|d&255)&65535;c:do if(k<<16>>16<-2){if(k<<16>>16>=-257){switch(k<<16>>16){case -257:break;default:break c}if(o&(a[n>>0]|0)==0)break b;c[h>>2]=j;c[p>>2]=c[i>>2];d=14;break a}switch(k<<16>>16){case -4165:break;default:break c}if(o)switch(a[n>>0]|0){case 0:case 3:case 4:case 5:break b;default:{}}if((j|0)==(g|0)){d=-1;break a}if((a[j>>0]|0)!=-65)break b;c[h>>2]=f+3;c[p>>2]=c[b+8>>2];d=14;break a}else{if(k<<16>>16<15360){switch(k<<16>>16){case -2:break;default:break c}if(o&(a[n>>0]|0)==0)break b;c[h>>2]=j;c[p>>2]=c[m>>2];d=14;break a}switch(k<<16>>16){case 15360:break;default:break c}d=a[n>>0]|0;if(d<<24>>24==4){if(o)break b}else if(o&d<<24>>24==3)break b;d=c[m>>2]|0;c[p>>2]=d;d=tb[c[d+(e<<2)>>2]&127](d,f,g,h)|0;break a}while(0);if(l<<24>>24){if(o|d<<24>>24!=0)break;d=c[m>>2]|0;c[p>>2]=d;d=tb[c[d+(e<<2)>>2]&127](d,f,g,h)|0;break a}if(o?(a[n>>0]|0)==5:0)break;d=c[i>>2]|0;c[p>>2]=d;d=tb[c[d+(e<<2)>>2]&127](d,f,g,h)|0;break a}while(0);d=c[b+(a[n>>0]<<2)>>2]|0;c[p>>2]=d;d=tb[c[d+(e<<2)>>2]&127](d,f,g,h)|0}while(0);return d|0}function Q$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;a:do if((e|0)!=(f|0)){h=e;p=f-h|0;o=(p&1|0)==0;p=p&-2;q=(p|0)==0;p=o|q?f:e+p|0;if(o|q^1){i=a[e>>0]|0;q=b+76|0;l=a[e+1>>0]|0;if(!(i<<24>>24))k=d[q+(l&255)>>0]|0;else k=v$(i,l)|0;j=e+2|0;o=p;m=e+3|0;f=o-h|0;h=(j|0)==(p|0);n=e+4|0;do switch(k|0){case 12:{f=q0(12,b,j,p,g)|0;break a}case 13:{f=q0(13,b,j,p,g)|0;break a}case 2:{if(h){f=-1;break a}h=a[j>>0]|0;f=a[m>>0]|0;if(!(h<<24>>24))f=d[q+(f&255)>>0]|0;else f=v$(h,f)|0;switch(f|0){case 16:{f=r0(b,n,p,g)|0;break a}case 15:{f=m0(b,n,p,g)|0;break a}case 7:case 6:case 5:case 29:case 24:case 22:{c[g>>2]=e;f=29;break a}default:{c[g>>2]=j;f=0;break a}}}case 9:{if(h){c[g>>2]=p;f=-15;break a}else h=20;break}case 10:case 21:{h=20;break}case 30:{f=g0(b,j,p,g)|0;break a}case 35:{c[g>>2]=j;f=38;break a}case 20:{c[g>>2]=j;f=25;break a}case 4:{if(h){f=-26;break a}if((a[j>>0]|0)==0?(a[m>>0]|0)==93:0){if((n|0)==(p|0)){f=-1;break a}if((a[n>>0]|0)==0?(a[e+5>>0]|0)==62:0){c[g>>2]=e+6;f=34;break a}}c[g>>2]=j;f=26;break a}case 31:{c[g>>2]=j;f=23;break a}case 32:{if(h){f=-24;break a}h=a[j>>0]|0;f=a[m>>0]|0;if(!(h<<24>>24))f=d[q+(f&255)>>0]|0;else f=v$(h,f)|0;switch(f|0){case 33:{c[g>>2]=n;f=36;break a}case 15:{c[g>>2]=n;f=35;break a}case 34:{c[g>>2]=n;f=37;break a}case 32:case 36:case 35:case 11:case 21:case 10:case 9:{c[g>>2]=j;f=24;break a}default:{c[g>>2]=j;f=0;break a}}}case 36:{c[g>>2]=j;f=21;break a}case 11:{c[g>>2]=j;f=17;break a}case 19:{f=s0(b,j,p,g)|0;break a}case 5:{if((f|0)<2){f=-2;break a}c[g>>2]=e;f=0;break a}case 6:{if((f|0)<3){f=-2;break a}c[g>>2]=e;f=0;break a}case 7:{if((f|0)<4){f=-2;break a}c[g>>2]=e;f=0;break a}case 24:case 22:{f=18;h=63;break}case 23:case 27:case 26:case 25:{f=19;h=63;break}case 29:{i=i&255;h=l&255;f=h>>>5;h=1<<(h&31);if(!(h&c[57168+((f|d[143937+i>>0]<<3)<<2)>>2]))if(!(c[57168+((d[144193+i>>0]<<3|f)<<2)>>2]&h))h=62;else{f=19;h=63}else{f=18;h=63}break}default:h=62}while(0);if((h|0)==20){b:while(1){i=e;e=e+2|0;if((e|0)==(p|0)){h=27;break}f=a[e>>0]|0;h=a[i+3>>0]|0;if(!(f<<24>>24))f=d[q+(h&255)>>0]|0;else f=v$(f,h)|0;switch(f|0){case 10:case 21:{h=20;continue b}case 9:break;default:{h=26;break b}}if((i+4|0)==(p|0)){h=26;break}else h=20}if((h|0)==26){c[g>>2]=e;f=15;break}else if((h|0)==27){c[g>>2]=p;f=15;break}}else if((h|0)==62){c[g>>2]=e;f=0;break}else if((h|0)==63){c:while(1){if((j|0)==(p|0)){h=103;break}h=a[j>>0]|0;i=a[j+1>>0]|0;if(!(h<<24>>24))e=d[q+(i&255)>>0]|0;else e=v$(h,i)|0;k=j+2|0;switch(e|0){case 27:case 26:case 25:case 24:case 22:{h=f;j=k;f=h;h=63;continue c}case 5:{h=70;break c}case 6:{h=72;break c}case 7:{h=74;break c}case 10:case 9:case 21:case 30:case 20:case 36:case 35:case 32:case 11:{h=76;break c}case 34:{h=93;break c}case 33:{h=96;break c}case 15:{h=99;break c}case 29:{n=i&255;if(!(1<<(n&31)&c[57168+((n>>>5|d[144193+(h&255)>>0]<<3)<<2)>>2])){h=69;break c}else{h=f;j=k;f=h;h=63;continue c}}case 23:break;default:{h=102;break c}}switch(f&63){case 18:break;case 41:{f=19;j=k;h=63;continue c}default:{h=f;j=k;f=h;h=63;continue c}}if((k|0)==(p|0)){f=-1;break a}f=a[k>>0]|0;h=a[j+3>>0]|0;if(!(f<<24>>24))i=d[q+(h&255)>>0]|0;else i=v$(f,h)|0;switch(i|0){case 5:{h=86;break c}case 6:{h=88;break c}case 7:{h=90;break c}case 29:{n=h&255;if(!(1<<(n&31)&c[57168+((n>>>5|d[144193+(f&255)>>0]<<3)<<2)>>2])){h=84;break c}break}case 27:case 26:case 25:case 24:case 22:break;default:{f=19;j=k;h=63;continue c}}f=41;j=j+4|0;h=63}switch(h|0){case 69:{c[g>>2]=j;f=0;break a}case 70:{if((o-j|0)<2){f=-2;break a}c[g>>2]=j;f=0;break a}case 72:{if((o-j|0)<3){f=-2;break a}c[g>>2]=j;f=0;break a}case 74:{if((o-j|0)<4){f=-2;break a}c[g>>2]=j;f=0;break a}case 76:{c[g>>2]=j;break a}case 84:{c[g>>2]=k;f=0;break a}case 86:{if((o-k|0)<2){f=-2;break a}c[g>>2]=k;f=0;break a}case 88:{if((o-k|0)<3){f=-2;break a}c[g>>2]=k;f=0;break a}case 90:{if((o-k|0)<4){f=-2;break a}c[g>>2]=k;f=0;break a}case 93:if((f|0)==19){c[g>>2]=j;f=0;break a}else{c[g>>2]=k;f=32;break a}case 96:if((f|0)==19){c[g>>2]=j;f=0;break a}else{c[g>>2]=k;f=31;break a}case 99:if((f|0)==19){c[g>>2]=j;f=0;break a}else{c[g>>2]=k;f=30;break a}case 102:{c[g>>2]=j;f=0;break a}case 103:{f=0-f|0;break a}}}}else f=-1}else f=-4;while(0);return f|0}function R$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a:do if((e|0)!=(f|0)){l=e;o=f-l|0;n=(o&1|0)==0;o=o&-2;p=(o|0)==0;o=n|p?f:e+o|0;if(n|p^1){f=a[e>>0]|0;p=b+76|0;h=a[e+1>>0]|0;if(!(f<<24>>24))i=d[p+(h&255)>>0]|0;else i=v$(f,h)|0;k=e+2|0;n=o;h=(k|0)==(o|0);j=e+3|0;m=e+4|0;f=n-l|0;switch(i|0){case 2:{f=j0(b,k,o,g)|0;break a}case 3:{f=f0(b,k,o,g)|0;break a}case 9:{if(h){f=-3;break a}h=a[k>>0]|0;f=a[j>>0]|0;if(!(h<<24>>24))f=d[p+(f&255)>>0]|0;else f=v$(h,f)|0;c[g>>2]=(f|0)==10?m:k;f=7;break a}case 10:{c[g>>2]=k;f=7;break a}case 4:{if(h){f=-5;break a}if((a[k>>0]|0)==0?(a[j>>0]|0)==93:0){if((m|0)==(o|0)){f=-5;break a}if((a[m>>0]|0)==0?(a[e+5>>0]|0)==62:0){c[g>>2]=m;f=0;break a}}break}case 5:{if((f|0)<2){f=-2;break a}break}case 6:{if((f|0)<3){f=-2;break a}else k=j;break}case 7:{if((f|0)<4){f=-2;break a}else k=m;break}case 8:case 1:case 0:{c[g>>2]=e;f=0;break a}default:{}}b:while(1){if((k|0)==(o|0)){h=46;break}f=a[k>>0]|0;h=a[k+1>>0]|0;if(!(f<<24>>24))i=d[p+(h&255)>>0]|0;else i=v$(f,h)|0;j=k+4|0;f=k+2|0;h=n-k|0;switch(i|0){case 10:case 9:case 8:case 1:case 0:case 2:case 3:{h=45;break b}case 5:if((h|0)<2){h=32;break b}else{k=f;continue b}case 6:{if((h|0)<3){h=34;break b}k=k+3|0;continue b}case 7:if((h|0)<4){h=37;break b}else{k=j;continue b}case 4:{if((f|0)==(o|0)){h=45;break b}if(a[f>>0]|0){k=f;continue b}if((a[k+3>>0]|0)!=93){k=f;continue b}if((j|0)==(o|0)){h=45;break b}if(a[j>>0]|0){k=f;continue b}if((a[k+5>>0]|0)==62){h=44;break b}else{k=f;continue b}}default:{k=f;continue b}}}if((h|0)==32){c[g>>2]=k;f=6;break}else if((h|0)==34){c[g>>2]=k;f=6;break}else if((h|0)==37){c[g>>2]=k;f=6;break}else if((h|0)==44){c[g>>2]=j;f=0;break}else if((h|0)==45){c[g>>2]=k;f=6;break}else if((h|0)==46){c[g>>2]=o;f=6;break}}else f=-1}else f=-4;while(0);return f|0}function S$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:do if((e|0)!=(f|0)){k=e;m=f-k|0;l=(m&1|0)==0;m=m&-2;n=(m|0)==0;m=l|n?f:e+m|0;if(l|n^1){h=a[e>>0]|0;n=b+76|0;f=a[e+1>>0]|0;if(!(h<<24>>24))h=d[n+(f&255)>>0]|0;else h=v$(h,f)|0;i=e+2|0;j=e+3|0;l=m;b=(i|0)==(m|0);f=l-k|0;k=e+4|0;switch(h|0){case 4:{if(b){f=-1;break a}if((a[i>>0]|0)==0?(a[j>>0]|0)==93:0){if((k|0)==(m|0)){f=-1;break a}if((a[k>>0]|0)==0?(a[e+5>>0]|0)==62:0){c[g>>2]=e+6;f=40;break a}}break}case 9:{if(b){f=-1;break a}b=a[i>>0]|0;f=a[j>>0]|0;if(!(b<<24>>24))f=d[n+(f&255)>>0]|0;else f=v$(b,f)|0;c[g>>2]=(f|0)==10?k:i;f=7;break a}case 10:{c[g>>2]=i;f=7;break a}case 5:{if((f|0)<2){f=-2;break a}break}case 6:{if((f|0)<3){f=-2;break a}else i=j;break}case 7:{if((f|0)<4){f=-2;break a}else i=k;break}case 8:case 1:case 0:{c[g>>2]=e;f=0;break a}default:{}}b:while(1){if((i|0)==(m|0)){b=38;break}f=a[i>>0]|0;b=a[i+1>>0]|0;if(!(f<<24>>24))h=d[n+(b&255)>>0]|0;else h=v$(f,b)|0;f=i+2|0;b=l-i|0;switch(h|0){case 4:case 10:case 9:case 8:case 1:case 0:{b=37;break b}case 5:if((b|0)<2){b=30;break b}else{i=f;continue b}case 6:{if((b|0)<3){b=32;break b}i=i+3|0;continue b}case 7:{if((b|0)<4){b=35;break b}i=i+4|0;continue b}default:{i=f;continue b}}}if((b|0)==30){c[g>>2]=i;f=6;break}else if((b|0)==32){c[g>>2]=i;f=6;break}else if((b|0)==35){c[g>>2]=i;f=6;break}else if((b|0)==37){c[g>>2]=i;f=6;break}else if((b|0)==38){c[g>>2]=m;f=6;break}}else f=-1}else f=-4;while(0);return f|0}function T$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=f-e|0;r=(r&1|0)==0?f:e+(r&-2)|0;p=b+76|0;q=r;o=0;a:while(1){if((e|0)==(r|0)){f=-1;break}f=a[e>>0]|0;b=a[e+1>>0]|0;if(!(f<<24>>24))n=d[p+(b&255)>>0]|0;else n=v$(f,b)|0;f=e+2|0;b=(f|0)==(r|0);h=e+3|0;i=e+4|0;j=e+5|0;k=e+6|0;l=q-e|0;m=(i|0)==(r|0);switch(n|0){case 8:case 1:case 0:{s=10;break a}case 5:if((l|0)<2){f=-2;break a}else{n=o;e=f;o=n;continue a}case 6:if((l|0)<3){f=-2;break a}else{n=o;e=h;o=n;continue a}case 7:if((l|0)<4){f=-2;break a}else{n=o;e=i;o=n;continue a}case 2:{if(b){f=-1;break a}if(a[f>>0]|0){n=o;e=f;o=n;continue a}if((a[h>>0]|0)!=33){n=o;e=f;o=n;continue a}if(m){f=-1;break a}if(a[i>>0]|0){n=o;e=i;o=n;continue a}e=(a[j>>0]|0)==91;o=(e&1)+o|0;e=e?k:i;continue a}case 4:{if(b){f=-1;break a}if(a[f>>0]|0){n=o;e=f;o=n;continue a}if((a[h>>0]|0)!=93){n=o;e=f;o=n;continue a}if(m){f=-1;break a}if(a[i>>0]|0){n=o;e=i;o=n;continue a}if((a[j>>0]|0)!=62){n=o;e=i;o=n;continue a}if(!o){s=24;break a}o=o+-1|0;e=k;continue a}default:{n=o;e=f;o=n;continue a}}}if((s|0)==10){c[g>>2]=e;f=0}else if((s|0)==24){c[g>>2]=k;f=42}return f|0}function U$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;do if((e|0)!=(f|0)){l=b+76|0;j=e;a:while(1){if((j|0)==(f|0)){i=27;break}i=a[j>>0]|0;h=a[j+1>>0]|0;if(!(i<<24>>24))h=d[l+(h&255)>>0]|0;else h=v$(i,h)|0;k=j+2|0;switch(h|0){case 21:{i=24;break a}case 3:{i=10;break a}case 2:{i=13;break a}case 10:{i=14;break a}case 9:{i=17;break a}case 6:{j=j+3|0;continue a}case 7:{j=j+4|0;continue a}default:{j=k;continue a}}}if((i|0)==10)if((j|0)==(e|0)){h=f0(b,k,f,g)|0;break}else{c[g>>2]=j;h=6;break}else if((i|0)==13){c[g>>2]=j;h=0;break}else if((i|0)==14)if((j|0)==(e|0)){c[g>>2]=k;h=7;break}else{c[g>>2]=j;h=6;break}else if((i|0)==17){if((j|0)!=(e|0)){c[g>>2]=j;h=6;break}if((k|0)==(f|0)){h=-3;break}h=a[k>>0]|0;i=a[e+3>>0]|0;if(!(h<<24>>24))h=d[l+(i&255)>>0]|0;else h=v$(h,i)|0;c[g>>2]=(h|0)==10?e+4|0:k;h=7;break}else if((i|0)==24)if((j|0)==(e|0)){c[g>>2]=k;h=39;break}else{c[g>>2]=j;h=6;break}else if((i|0)==27){c[g>>2]=f;h=6;break}}else h=-4;while(0);return h|0}function V$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;do if((e|0)!=(f|0)){l=b+76|0;j=e;a:while(1){if((j|0)==(f|0)){i=26;break}i=a[j>>0]|0;h=a[j+1>>0]|0;if(!(i<<24>>24))h=d[l+(h&255)>>0]|0;else h=v$(i,h)|0;k=j+2|0;switch(h|0){case 9:{i=19;break a}case 3:{i=10;break a}case 30:{i=13;break a}case 10:{i=16;break a}case 6:{j=j+3|0;continue a}case 7:{j=j+4|0;continue a}default:{j=k;continue a}}}if((i|0)==10)if((j|0)==(e|0)){h=f0(b,k,f,g)|0;break}else{c[g>>2]=j;h=6;break}else if((i|0)==13)if((j|0)==(e|0)){h=g0(b,k,f,g)|0;h=(h|0)==22?0:h;break}else{c[g>>2]=j;h=6;break}else if((i|0)==16)if((j|0)==(e|0)){c[g>>2]=k;h=7;break}else{c[g>>2]=j;h=6;break}else if((i|0)==19){if((j|0)!=(e|0)){c[g>>2]=j;h=6;break}if((k|0)==(f|0)){h=-3;break}h=a[k>>0]|0;i=a[e+3>>0]|0;if(!(h<<24>>24))h=d[l+(i&255)>>0]|0;else h=v$(h,i)|0;c[g>>2]=(h|0)==10?e+4|0:k;h=7;break}else if((i|0)==26){c[g>>2]=f;h=6;break}}else h=-4;while(0);return h|0}function W$(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;j=b+76|0;b=c;a:while(1){c=a[b>>0]|0;h=b+1|0;i=a[h>>0]|0;if(!(c<<24>>24))f=d[j+(i&255)>>0]|0;else f=v$(c,i)|0;g=e+1|0;switch(f|0){case 7:{if(c<<24>>24==(a[e>>0]|0)){e=g;b=h;c=i;k=7}else{b=0;break a}break}case 6:{k=7;break}case 5:{k=9;break}case 27:case 26:case 25:case 24:case 23:case 22:case 29:{if((a[e>>0]|0)!=c<<24>>24){b=0;break a}if((a[g>>0]|0)!=i<<24>>24){b=0;break a}break}default:{k=14;break a}}if((k|0)==7){k=0;f=b+1|0;if(c<<24>>24!=(a[e>>0]|0)){b=0;break}e=e+1|0;b=f;c=a[f>>0]|0;k=9}if((k|0)==9){k=0;if(c<<24>>24!=(a[e>>0]|0)){b=0;break}if((a[b+1>>0]|0)!=(a[e+1>>0]|0)){b=0;break}}e=e+2|0;b=b+2|0}b:do if((k|0)==14){e=a[e>>0]|0;b=a[g>>0]|0;if(!(e<<24>>24))b=d[j+(b&255)>>0]|0;else b=v$(e,b)|0;switch(b|0){case 27:case 26:case 25:case 24:case 23:case 22:case 29:case 7:case 6:case 5:{b=0;break b}default:{}}b=1}while(0);return b|0}function X$(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;b=c;while(1){c=a[e>>0]|0;f=(b|0)==(d|0);if(!(c<<24>>24)){g=7;break}if(f){b=0;break}if(a[b>>0]|0){b=0;break}if((a[b+1>>0]|0)!=c<<24>>24){b=0;break}e=e+1|0;b=b+2|0}if((g|0)==7)b=f&1;return b|0}function Y$(b,c){b=b|0;c=c|0;var e=0,f=0,g=0;g=b+76|0;f=c;a:while(1){b=a[f>>0]|0;e=a[f+1>>0]|0;if(!(b<<24>>24))b=d[g+(e&255)>>0]|0;else b=v$(b,e)|0;switch(b|0){case 27:case 26:case 25:case 24:case 23:case 22:case 29:case 5:{f=f+2|0;continue a}case 6:{f=f+3|0;continue a}case 7:{f=f+4|0;continue a}default:break a}}return f-c|0}function Z$(b,c){b=b|0;c=c|0;var e=0,f=0;f=b+76|0;a:while(1){b=a[c>>0]|0;e=a[c+1>>0]|0;if(!(b<<24>>24))b=d[f+(e&255)>>0]|0;else b=v$(b,e)|0;switch(b|0){case 21:case 9:case 10:break;default:break a}c=c+2|0}return c|0}function _$(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=b+76|0;x=0;y=0;u=1;a:while(1){w=e+2|0;b=a[w>>0]|0;r=b<<24>>24==0;s=e+3|0;t=a[s>>0]|0;if(r)q=d[z+(t&255)>>0]|0;else q=v$(b,t)|0;b=(y|0)<(f|0);h=e+4|0;i=(u|0)==1;j=(u|0)==2;v=g+(y<<4)+12|0;k=y+1|0;l=(u|0)==0;m=(u|0)!=2;n=g+(y<<4)+8|0;o=g+(y<<4)+4|0;p=g+(y<<4)|0;do switch(q|0){case 5:{if(!l){s=u;t=y;v=x;e=w;u=s;y=t;x=v;continue a}if(!b){t=y;v=x;u=1;e=w;y=t;x=v;continue a}c[p>>2]=w;a[v>>0]=1;t=y;v=x;u=1;e=w;y=t;x=v;continue a}case 6:{if(!l){t=u;v=y;w=x;e=s;u=t;y=v;x=w;continue a}if(!b){v=y;w=x;u=1;e=s;y=v;x=w;continue a}c[p>>2]=w;a[v>>0]=1;v=y;w=x;u=1;e=s;y=v;x=w;continue a}case 7:{if(!l){t=u;v=y;w=x;e=h;u=t;y=v;x=w;continue a}if(!b){v=y;w=x;u=1;e=h;y=v;x=w;continue a}c[p>>2]=w;a[v>>0]=1;v=y;w=x;u=1;e=h;y=v;x=w;continue a}case 24:case 22:case 29:{if(!l){s=u;t=y;v=x;e=w;u=s;y=t;x=v;continue a}if(!b){t=y;v=x;u=1;e=w;y=t;x=v;continue a}c[p>>2]=w;a[v>>0]=1;t=y;v=x;u=1;e=w;y=t;x=v;continue a}case 12:{if(m){if(!b){v=y;x=12;u=2;e=w;y=v;continue a}c[o>>2]=h;v=y;x=12;u=2;e=w;y=v;continue a}if((x|0)!=12){t=y;v=x;u=2;e=w;y=t;x=v;continue a}if(!b){x=12;y=k;u=0;e=w;continue a}c[n>>2]=w;x=12;y=k;u=0;e=w;continue a}case 13:{if(m){if(!b){v=y;x=13;u=2;e=w;y=v;continue a}c[o>>2]=h;v=y;x=13;u=2;e=w;y=v;continue a}if((x|0)!=13){t=y;v=x;u=2;e=w;y=t;x=v;continue a}if(!b){x=13;y=k;u=0;e=w;continue a}c[n>>2]=w;x=13;y=k;u=0;e=w;continue a}case 3:{if(!b){s=u;t=y;v=x;e=w;u=s;y=t;x=v;continue a}a[v>>0]=0;s=u;t=y;v=x;e=w;u=s;y=t;x=v;continue a}case 21:{if(i){t=y;v=x;u=0;e=w;y=t;x=v;continue a}if(!j){s=u;t=y;v=x;e=w;u=s;y=t;x=v;continue a}if(!b){t=y;v=x;u=2;e=w;y=t;x=v;continue a}if(!(a[v>>0]|0)){t=y;v=x;u=2;e=w;y=t;x=v;continue a}do if(r&(w|0)!=(c[o>>2]|0)&t<<24>>24==32){h=a[h>>0]|0;b=a[e+5>>0]|0;if(!(h<<24>>24)){if(b<<24>>24==32)break;b=d[z+(b&255)>>0]|0}else b=v$(h,b)|0;if((b|0)!=(x|0)){t=y;v=x;u=2;e=w;y=t;x=v;continue a}}while(0);a[v>>0]=0;t=y;v=x;u=2;e=w;y=t;x=v;continue a}case 10:case 9:{if(i){t=y;v=x;u=0;e=w;y=t;x=v;continue a}if(!j){s=u;t=y;v=x;e=w;u=s;y=t;x=v;continue a}if(!b){t=y;v=x;u=2;e=w;y=t;x=v;continue a}a[v>>0]=0;t=y;v=x;u=2;e=w;y=t;x=v;continue a}case 17:case 11:if(m)break a;else{t=y;v=x;u=2;e=w;y=t;x=v;continue a}default:{s=u;t=y;v=x;e=w;u=s;y=t;x=v;continue a}}while(0)}return y|0}function $$(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;b=c+4|0;d=a[b>>0]|0;a:do if(!(d<<24>>24))if((a[c+5>>0]|0)==120){c=c+6|0;b=0;while(1){b:while(1){if(!(a[c>>0]|0)){d=a[c+1>>0]|0;if(d<<24>>24==59){f=18;break a}d=d<<24>>24;switch(d|0){case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:case 48:{f=8;break b}case 70:case 69:case 68:case 67:case 66:case 65:{f=9;break b}case 102:case 101:case 100:case 99:case 98:case 97:{f=10;break b}default:{}}}c=c+2|0}if((f|0)==8){f=0;b=d+-48|b<<4}else if((f|0)==9){f=0;b=(b<<4)+-55+d|0}else if((f|0)==10){f=0;b=(b<<4)+-87+d|0}if((b|0)<1114112)c=c+2|0;else{b=-1;break}}}else{e=b;b=0;c=0;f=13}else{e=b;b=0;c=d;f=13}while(0);c:do if((f|0)==13)while(1){f=0;if(!(c<<24>>24)){c=a[e+1>>0]|0;if(c<<24>>24==59){f=18;break c}c=c<<24>>24}else c=-1;b=(b*10|0)+-48+c|0;c=e+2|0;if((b|0)>=1114112){b=-1;break c}e=c;c=a[c>>0]|0;f=13}while(0);if((f|0)==18)b=k_(b)|0;return b|0}function a0(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;g=c+2|0;h=c+3|0;i=c+4|0;e=c+5|0;f=c+1|0;a:do switch((d-c|0)/2|0|0){case 2:{if((a[g>>0]|0)==0?(a[h>>0]|0)==116:0){if(!(a[c>>0]|0))b=a[f>>0]|0;else b=-1;b=(b|0)==108?60:(b|0)==103?62:0}else j=27;break}case 3:{if((((((a[c>>0]|0)==0?(a[f>>0]|0)==97:0)?(a[g>>0]|0)==0:0)?(a[h>>0]|0)==109:0)?(a[i>>0]|0)==0:0)?(a[e>>0]|0)==112:0)b=38;else j=27;break}case 4:{if(!(a[c>>0]|0)){d=c+6|0;b=c+7|0;switch(a[f>>0]|0){case 113:{if(a[g>>0]|0){j=27;break a}if((a[h>>0]|0)!=117){j=27;break a}if(a[i>>0]|0){j=27;break a}if((a[e>>0]|0)!=111){j=27;break a}if(a[d>>0]|0){j=27;break a}if((a[b>>0]|0)==116){b=34;break a}else{j=27;break a}}case 97:{if(a[g>>0]|0){j=27;break a}if((a[h>>0]|0)!=112){j=27;break a}if(a[i>>0]|0){j=27;break a}if((a[e>>0]|0)!=111){j=27;break a}if(a[d>>0]|0){j=27;break a}if((a[b>>0]|0)==115){b=39;break a}else{j=27;break a}}default:{j=27;break a}}}else j=27;break}default:j=27}while(0);if((j|0)==27)b=0;return b|0}function b0(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;j=b+76|0;k=g+4|0;b=e;while(1){if(b>>>0>=f>>>0)break;h=a[b>>0]|0;e=a[b+1>>0]|0;if(!(h<<24>>24))e=d[j+(e&255)>>0]|0;else e=v$(h,e)|0;i=b+2|0;switch(e|0){case 9:{c[g>>2]=(c[g>>2]|0)+1;if((i|0)==(f|0))b=f;else{e=a[i>>0]|0;h=a[b+3>>0]|0;if(!(e<<24>>24))e=d[j+(h&255)>>0]|0;else e=v$(e,h)|0;b=(e|0)==10?b+4|0:i}c[k>>2]=-1;break}case 6:{b=b+3|0;break}case 7:{b=b+4|0;break}case 10:{c[k>>2]=-1;c[g>>2]=(c[g>>2]|0)+1;b=i;break}default:b=i}c[k>>2]=(c[k>>2]|0)+1}return}function c0(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;k=f+-2|0;j=b+76|0;a:while(1){h=e+2|0;if((h|0)==(k|0)){f=1;break}f=a[h>>0]|0;i=f<<24>>24==0;b=a[e+3>>0]|0;if(i)f=d[j+(b&255)>>0]|0;else f=v$(f,b)|0;switch(f|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=h;continue a}case 21:if(i&b<<24>>24==9){l=12;break a}else{e=h;continue a}case 22:case 26:{if(!i){l=12;break a}if(b<<24>>24>=0){e=h;continue a}break}default:if(!i){l=12;break a}}switch(b<<24>>24|0){case 64:case 36:{e=h;break}default:{l=12;break a}}}if((l|0)==12){c[g>>2]=h;f=0}return f|0}function d0(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=h;b=c[e>>2]|0;a:while(1){if((b|0)==(f|0)){b=f;break}k=a[b+1>>0]|0;i=a[b>>0]|0;m=i&255;j=k&255;n=j>>>6;l=(j&63|128)&255;switch(i<<24>>24){case 0:{if(k<<24>>24>-1){i=c[g>>2]|0;if((i|0)==(h|0))break a;c[g>>2]=i+1;a[i>>0]=k}else p=7;break}case 7:case 6:case 5:case 4:case 3:case 2:case 1:{p=7;break}case -37:case -38:case -39:case -40:{i=c[g>>2]|0;if((o-i|0)<4)break a;m=(m<<2&12|n)+1|0;c[g>>2]=i+1;a[i>>0]=m>>>2|240;n=c[g>>2]|0;c[g>>2]=n+1;a[n>>0]=j>>>2&15|m<<4&48|128;n=b+2|0;m=d[b+3>>0]|0;l=(j<<4&48|m>>>6|a[n>>0]<<2&12|128)&255;b=c[g>>2]|0;c[g>>2]=b+1;a[b>>0]=l;b=c[g>>2]|0;c[g>>2]=b+1;a[b>>0]=m&63|128;b=n;break}default:{i=c[g>>2]|0;if((o-i|0)<3)break a;c[g>>2]=i+1;a[i>>0]=m>>>4|224;k=c[g>>2]|0;c[g>>2]=k+1;a[k>>0]=n|m<<2&60|128;n=c[g>>2]|0;c[g>>2]=n+1;a[n>>0]=l}}if((p|0)==7){p=0;i=c[g>>2]|0;if((o-i|0)<2)break;c[g>>2]=i+1;a[i>>0]=n|m<<2|192;n=c[g>>2]|0;c[g>>2]=n+1;a[n>>0]=l}b=b+2|0}c[e>>2]=b;return}function e0(e,f,g,h,i){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0;e=c[f>>2]|0;if((g-e|0)>(i-(c[h>>2]|0)|0)){j=g+-2|0;j=(a[j>>0]&-8)<<24>>24==-40?j:g}else j=g;while(1){if((e|0)==(j|0))break;g=c[h>>2]|0;if((g|0)==(i|0))break;k=((d[e>>0]|0)<<8|(d[e+1>>0]|0))&65535;c[h>>2]=g+2;b[g>>1]=k;g=(c[f>>2]|0)+2|0;c[f>>2]=g;e=g}return}function f0(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:do if((e|0)!=(f|0)){k=a[e>>0]|0;m=b+76|0;l=a[e+1>>0]|0;if(!(k<<24>>24))j=d[m+(l&255)>>0]|0;else j=v$(k,l)|0;n=f;h=n-e|0;i=e+2|0;switch(j|0){case 29:{l=l&255;if(!(1<<(l&31)&c[57168+((l>>>5|(d[143937+(k&255)>>0]|0)<<3)<<2)>>2])){c[g>>2]=e;b=0;break a}break}case 24:case 22:break;case 5:{if((h|0)<2){b=-2;break a}c[g>>2]=e;b=0;break a}case 6:{if((h|0)<3){b=-2;break a}c[g>>2]=e;b=0;break a}case 7:{if((h|0)<4){b=-2;break a}c[g>>2]=e;b=0;break a}case 19:{b=h0(b,i,f,g)|0;break a}default:{c[g>>2]=e;b=0;break a}}b:while(1){if((i|0)==(f|0)){b=-1;break a}b=a[i>>0]|0;e=a[i+1>>0]|0;if(!(b<<24>>24))h=d[m+(e&255)>>0]|0;else h=v$(b,e)|0;j=i+2|0;switch(h|0){case 27:case 26:case 25:case 24:case 22:{i=j;continue b}case 5:{e=23;break b}case 6:{e=25;break b}case 7:{e=27;break b}case 18:{e=29;break b}case 29:break;default:{e=30;break b}}l=e&255;if(!(1<<(l&31)&c[57168+((l>>>5|(d[144193+(b&255)>>0]|0)<<3)<<2)>>2])){e=22;break}else i=j}if((e|0)==22){c[g>>2]=i;b=0;break}else if((e|0)==23){if((n-i|0)<2){b=-2;break}c[g>>2]=i;b=0;break}else if((e|0)==25){if((n-i|0)<3){b=-2;break}c[g>>2]=i;b=0;break}else if((e|0)==27){if((n-i|0)<4){b=-2;break}c[g>>2]=i;b=0;break}else if((e|0)==29){c[g>>2]=j;b=9;break}else if((e|0)==30){c[g>>2]=i;b=0;break}}else b=-1;while(0);return b|0}function g0(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;a:do if((e|0)!=(f|0)){j=a[e>>0]|0;k=b+76|0;i=a[e+1>>0]|0;if(!(j<<24>>24))h=d[k+(i&255)>>0]|0;else h=v$(j,i)|0;l=f;b=l-e|0;switch(h|0){case 29:{i=i&255;if(!(1<<(i&31)&c[57168+((i>>>5|(d[143937+(j&255)>>0]|0)<<3)<<2)>>2])){c[g>>2]=e;b=0;break a}break}case 24:case 22:break;case 5:{if((b|0)<2){b=-2;break a}c[g>>2]=e;b=0;break a}case 6:{if((b|0)<3){b=-2;break a}c[g>>2]=e;b=0;break a}case 7:{if((b|0)<4){b=-2;break a}c[g>>2]=e;b=0;break a}case 30:case 9:case 10:case 21:{c[g>>2]=e;b=22;break a}default:{c[g>>2]=e;b=0;break a}}e=e+2|0;b:while(1){if((e|0)==(f|0)){b=-1;break a}b=a[e>>0]|0;h=a[e+1>>0]|0;if(!(b<<24>>24))i=d[k+(h&255)>>0]|0;else i=v$(b,h)|0;j=e+2|0;switch(i|0){case 27:case 26:case 25:case 24:case 22:{e=j;continue b}case 5:{h=24;break b}case 6:{h=26;break b}case 7:{h=28;break b}case 18:{h=30;break b}case 29:break;default:{h=31;break b}}i=h&255;if(!(1<<(i&31)&c[57168+((i>>>5|(d[144193+(b&255)>>0]|0)<<3)<<2)>>2])){h=23;break}else e=j}if((h|0)==23){c[g>>2]=e;b=0;break}else if((h|0)==24){if((l-e|0)<2){b=-2;break}c[g>>2]=e;b=0;break}else if((h|0)==26){if((l-e|0)<3){b=-2;break}c[g>>2]=e;b=0;break}else if((h|0)==28){if((l-e|0)<4){b=-2;break}c[g>>2]=e;b=0;break}else if((h|0)==30){c[g>>2]=j;b=28;break}else if((h|0)==31){c[g>>2]=e;b=0;break}}else b=-1;while(0);return b|0}function h0(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;a:do if((e|0)!=(f|0)){h=a[e>>0]|0;i=h<<24>>24==0;j=e+2|0;k=a[e+1>>0]|0;if(i&k<<24>>24==120){b=i0(b,j,f,g)|0;break}l=b+76|0;if(i)b=d[l+(k&255)>>0]|0;else b=v$(h,k)|0;if((b|0)!=25){c[g>>2]=e;b=0;break}b:while(1){if((j|0)==(f|0)){b=-1;break a}b=a[j>>0]|0;h=a[j+1>>0]|0;if(!(b<<24>>24))b=d[l+(h&255)>>0]|0;else b=v$(b,h)|0;i=j+2|0;switch(b|0){case 25:{j=i;break}case 18:{h=14;break b}default:{h=15;break b}}}if((h|0)==14){c[g>>2]=i;b=10;break}else if((h|0)==15){c[g>>2]=j;b=0;break}}else b=-1;while(0);return b|0}function i0(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;a:do if((e|0)!=(f|0)){h=a[e>>0]|0;j=b+76|0;b=a[e+1>>0]|0;if(!(h<<24>>24))b=d[j+(b&255)>>0]|0;else b=v$(h,b)|0;if((b&-2|0)!=24){c[g>>2]=e;b=0;break}i=e+2|0;b:while(1){if((i|0)==(f|0)){b=-1;break a}b=a[i>>0]|0;h=a[i+1>>0]|0;if(!(b<<24>>24))b=d[j+(h&255)>>0]|0;else b=v$(b,h)|0;e=i+2|0;switch(b|0){case 24:case 25:{i=e;break}case 18:{h=13;break b}default:{h=14;break b}}}if((h|0)==13){c[g>>2]=e;b=10;break}else if((h|0)==14){c[g>>2]=i;b=0;break}}else b=-1;while(0);return b|0}function j0(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;a:do if((e|0)!=(f|0)){k=a[e>>0]|0;n=b+76|0;l=a[e+1>>0]|0;if(!(k<<24>>24))j=d[n+(l&255)>>0]|0;else j=v$(k,l)|0;h=e+2|0;m=f;i=m-e|0;switch(j|0){case 29:{l=l&255;if(!(1<<(l&31)&c[57168+((l>>>5|d[143937+(k&255)>>0]<<3)<<2)>>2])){c[g>>2]=e;h=0;break a}else l=0;break}case 24:case 22:{l=0;break}case 5:{if((i|0)<2){h=-2;break a}c[g>>2]=e;h=0;break a}case 6:{if((i|0)<3){h=-2;break a}c[g>>2]=e;h=0;break a}case 7:{if((i|0)<4){h=-2;break a}c[g>>2]=e;h=0;break a}case 16:{if((h|0)==(f|0)){h=-1;break a}i=a[h>>0]|0;j=a[e+3>>0]|0;if(!(i<<24>>24))j=d[n+(j&255)>>0]|0;else j=v$(i,j)|0;i=e+4|0;switch(j|0){case 27:{h=k0(b,i,f,g)|0;break a}case 20:{h=l0(i,f,g)|0;break a}default:{c[g>>2]=h;h=0;break a}}}case 15:{h=m0(b,h,f,g)|0;break a}case 17:{h=n0(b,h,f,g)|0;break a}default:{c[g>>2]=e;h=0;break a}}b:while(1){c:while(1){if((h|0)==(f|0)){h=-1;break a}i=a[h>>0]|0;j=a[h+1>>0]|0;if(!(i<<24>>24))k=d[n+(j&255)>>0]|0;else k=v$(i,j)|0;e=h+2|0;switch(k|0){case 5:{o=32;break b}case 6:{o=34;break b}case 7:{o=36;break b}case 10:case 9:case 21:{h=e;o=56;break b}case 11:{o=71;break b}case 17:break b;case 27:case 26:case 25:case 24:case 22:{h=e;continue c}case 23:break c;case 29:break;default:{o=77;break b}}k=j&255;if(!(1<<(k&31)&c[57168+((k>>>5|d[144193+(i&255)>>0]<<3)<<2)>>2])){o=31;break b}else h=e}if(l|0){o=39;break}if((e|0)==(f|0)){h=-1;break a}i=a[e>>0]|0;j=a[h+3>>0]|0;if(!(i<<24>>24))k=d[n+(j&255)>>0]|0;else k=v$(i,j)|0;switch(k|0){case 5:{o=49;break b}case 6:{o=51;break b}case 7:{o=53;break b}case 29:{l=j&255;if(!(1<<(l&31)&c[57168+((l>>>5|d[143937+(i&255)>>0]<<3)<<2)>>2])){o=46;break b}break}case 24:case 22:break;default:{o=55;break b}}l=1;h=h+4|0}d:switch(o|0){case 31:{c[g>>2]=h;h=0;break a}case 32:{if((m-h|0)<2){h=-2;break a}c[g>>2]=h;h=0;break a}case 34:{if((m-h|0)<3){h=-2;break a}c[g>>2]=h;h=0;break a}case 36:{if((m-h|0)<4){h=-2;break a}c[g>>2]=h;h=0;break a}case 39:{c[g>>2]=h;h=0;break a}case 46:{c[g>>2]=e;h=0;break a}case 49:{if((m-e|0)<2){h=-2;break a}c[g>>2]=e;h=0;break a}case 51:{if((m-e|0)<3){h=-2;break a}c[g>>2]=e;h=0;break a}case 53:{if((m-e|0)<4){h=-2;break a}c[g>>2]=e;h=0;break a}case 55:{c[g>>2]=e;h=0;break a}case 56:{e:while(1){o=0;if((h|0)==(f|0)){h=-1;break a}i=a[h>>0]|0;j=a[h+1>>0]|0;if(!(i<<24>>24))l=d[n+(j&255)>>0]|0;else l=v$(i,j)|0;k=h+2|0;switch(l|0){case 11:{o=71;break d}case 17:break d;case 10:case 9:case 21:{h=k;o=56;break}case 29:{o=61;break e}case 24:case 22:break e;case 5:{o=64;break e}case 6:{o=66;break e}case 7:{o=68;break e}default:{o=70;break e}}}if((o|0)==61){o=j&255;if(!(1<<(o&31)&c[57168+((o>>>5|d[143937+(i&255)>>0]<<3)<<2)>>2])){c[g>>2]=h;h=0;break a}}else if((o|0)==64){if((m-h|0)<2){h=-2;break a}c[g>>2]=h;h=0;break a}else if((o|0)==66){if((m-h|0)<3){h=-2;break a}c[g>>2]=h;h=0;break a}else if((o|0)==68){if((m-h|0)<4){h=-2;break a}c[g>>2]=h;h=0;break a}else if((o|0)==70){c[g>>2]=h;h=0;break a}h=o0(b,k,f,g)|0;break a}case 77:{c[g>>2]=h;h=0;break a}}if((o|0)==71){c[g>>2]=h+2;h=2;break}i=h+2|0;if((i|0)!=(f|0)){if((a[i>>0]|0)==0?(a[h+3>>0]|0)==62:0){c[g>>2]=h+4;h=4;break}c[g>>2]=i;h=0}else h=-1}else h=-1;while(0);return h|0}function k0(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;a:do if((e|0)==(f|0))b=-1;else{if((a[e>>0]|0)==0?(a[e+1>>0]|0)==45:0){j=b+76|0;k=f;i=e+2|0;b:while(1){if((i|0)==(f|0)){b=-1;break a}b=a[i>>0]|0;e=a[i+1>>0]|0;if(!(b<<24>>24))h=d[j+(e&255)>>0]|0;else h=v$(b,e)|0;b=i+2|0;e=k-i|0;switch(h|0){case 8:case 1:case 0:{l=16;break b}case 5:if((e|0)<2){b=-2;break a}else{i=b;continue b}case 6:{if((e|0)<3){b=-2;break a}i=i+3|0;continue b}case 7:{if((e|0)<4){b=-2;break a}i=i+4|0;continue b}case 27:{if((b|0)==(f|0)){b=-1;break a}if(a[b>>0]|0){i=b;continue b}if((a[i+3>>0]|0)==45)break b;else{i=b;continue b}}default:{i=b;continue b}}}if((l|0)==16){c[g>>2]=i;b=0;break}b=i+4|0;if((b|0)==(f|0)){b=-1;break}if((a[b>>0]|0)==0?(a[i+5>>0]|0)==62:0){c[g>>2]=i+6;b=13;break}c[g>>2]=b;b=0;break}c[g>>2]=e;b=0}while(0);return b|0}function l0(b,d,e){b=b|0;d=d|0;e=e|0;if((d-b|0)<12)d=-1;else{d=0;while(1){if((d|0)>=6){d=8;break}if(a[b>>0]|0){d=0;break}if((a[b+1>>0]|0)!=(a[144449+d>>0]|0)){d=0;break}d=d+1|0;b=b+2|0}c[e>>2]=b}return d|0}function m0(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+16|0;p=q;a:do if((e|0)==(f|0))b=-1;else{j=a[e>>0]|0;o=b+76|0;b=a[e+1>>0]|0;if(!(j<<24>>24))i=d[o+(b&255)>>0]|0;else i=v$(j,b)|0;n=f;h=n-e|0;switch(i|0){case 29:{k=b&255;if(!(1<<(k&31)&c[57168+((k>>>5|d[143937+(j&255)>>0]<<3)<<2)>>2])){c[g>>2]=e;b=0;break a}break}case 24:case 22:break;case 5:{if((h|0)<2){b=-2;break a}c[g>>2]=e;b=0;break a}case 6:{if((h|0)<3){b=-2;break a}c[g>>2]=e;b=0;break a}case 7:{if((h|0)<4){b=-2;break a}c[g>>2]=e;b=0;break a}default:{c[g>>2]=e;b=0;break a}}b=e+2|0;b:while(1){if((b|0)==(f|0)){b=-1;break a}h=a[b>>0]|0;i=a[b+1>>0]|0;if(!(h<<24>>24))k=d[o+(i&255)>>0]|0;else k=v$(h,i)|0;j=b+2|0;switch(k|0){case 27:case 26:case 25:case 24:case 22:{b=j;continue b}case 5:{m=23;break b}case 6:{m=25;break b}case 7:{m=27;break b}case 10:case 9:case 21:{m=29;break b}case 15:{m=46;break b}case 29:break;default:break b}k=i&255;if(!(1<<(k&31)&c[57168+((k>>>5|d[144193+(h&255)>>0]<<3)<<2)>>2])){m=22;break}else b=j}if((m|0)==22){c[g>>2]=b;b=0;break}else if((m|0)==23){if((n-b|0)<2){b=-2;break}c[g>>2]=b;b=0;break}else if((m|0)==25){if((n-b|0)<3){b=-2;break}c[g>>2]=b;b=0;break}else if((m|0)==27){if((n-b|0)<4){b=-2;break}c[g>>2]=b;b=0;break}else if((m|0)==29){if(!(p0(e,b,p)|0)){c[g>>2]=b;b=0;break}c:while(1){if((j|0)==(f|0)){b=-1;break a}b=a[j>>0]|0;h=a[j+1>>0]|0;if(!(b<<24>>24))i=d[o+(h&255)>>0]|0;else i=v$(b,h)|0;b=j+2|0;h=n-j|0;switch(i|0){case 8:case 1:case 0:{m=41;break c}case 5:if((h|0)<2){b=-2;break a}else{j=b;continue c}case 6:{if((h|0)<3){b=-2;break a}j=j+3|0;continue c}case 7:{if((h|0)<4){b=-2;break a}j=j+4|0;continue c}case 15:{if((b|0)==(f|0)){b=-1;break a}if(a[b>>0]|0){j=b;continue c}if((a[j+3>>0]|0)==62){m=45;break c}else{j=b;continue c}}default:{j=b;continue c}}}if((m|0)==41){c[g>>2]=j;b=0;break}else if((m|0)==45){c[g>>2]=j+4;b=c[p>>2]|0;break}}else if((m|0)==46){if(!(p0(e,b,p)|0)){c[g>>2]=b;b=0;break}if((j|0)==(f|0)){b=-1;break}if((a[j>>0]|0)==0?(a[b+3>>0]|0)==62:0){c[g>>2]=b+4;b=c[p>>2]|0;break}else b=j}c[g>>2]=b;b=0}while(0);l=q;return b|0}function n0(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;a:do if((e|0)!=(f|0)){j=a[e>>0]|0;l=b+76|0;i=a[e+1>>0]|0;if(!(j<<24>>24))h=d[l+(i&255)>>0]|0;else h=v$(j,i)|0;k=f;b=k-e|0;switch(h|0){case 29:{i=i&255;if(!(1<<(i&31)&c[57168+((i>>>5|(d[143937+(j&255)>>0]|0)<<3)<<2)>>2])){c[g>>2]=e;b=0;break a}break}case 24:case 22:break;case 5:{if((b|0)<2){b=-2;break a}c[g>>2]=e;b=0;break a}case 6:{if((b|0)<3){b=-2;break a}c[g>>2]=e;b=0;break a}case 7:{if((b|0)<4){b=-2;break a}c[g>>2]=e;b=0;break a}default:{c[g>>2]=e;b=0;break a}}j=e+2|0;b:while(1){if((j|0)==(f|0)){b=-1;break a}b=a[j>>0]|0;h=a[j+1>>0]|0;if(!(b<<24>>24))e=d[l+(h&255)>>0]|0;else e=v$(b,h)|0;i=j+2|0;switch(e|0){case 23:case 27:case 26:case 25:case 24:case 22:{j=i;continue b}case 5:{e=23;break b}case 6:{e=25;break b}case 7:{e=27;break b}case 10:case 9:case 21:{e=29;break b}case 11:{e=36;break b}case 29:break;default:{e=37;break b}}e=h&255;if(!(1<<(e&31)&c[57168+((e>>>5|(d[144193+(b&255)>>0]|0)<<3)<<2)>>2])){e=22;break}else j=i}if((e|0)==22){c[g>>2]=j;b=0;break}else if((e|0)==23){if((k-j|0)<2){b=-2;break}c[g>>2]=j;b=0;break}else if((e|0)==25){if((k-j|0)<3){b=-2;break}c[g>>2]=j;b=0;break}else if((e|0)==27){if((k-j|0)<4){b=-2;break}c[g>>2]=j;b=0;break}else if((e|0)==29){c:while(1){if((i|0)==(f|0)){b=-1;break a}b=a[i>>0]|0;h=a[i+1>>0]|0;if(!(b<<24>>24))b=d[l+(h&255)>>0]|0;else b=v$(b,h)|0;h=i+2|0;switch(b|0){case 10:case 9:case 21:{i=h;e=29;break}case 11:{e=34;break c}default:{e=35;break c}}}if((e|0)==34){c[g>>2]=h;b=5;break}else if((e|0)==35){c[g>>2]=i;b=0;break}}else if((e|0)==36){c[g>>2]=i;b=5;break}else if((e|0)==37){c[g>>2]=j;b=0;break}}else b=-1;while(0);return b|0}function o0(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+16|0;p=q;c[p>>2]=e;m=b+76|0;n=f;h=0;a:while(1){b:while(1){if((e|0)==(f|0)){e=-1;break a}k=a[e>>0]|0;i=a[e+1>>0]|0;if(!(k<<24>>24))j=d[m+(i&255)>>0]|0;else j=v$(k,i)|0;switch(j|0){case 5:{o=11;break a}case 6:{o=13;break a}case 7:{o=15;break a}case 23:{o=17;break b}case 10:case 9:case 21:{h=e;o=33;break b}case 14:{o=39;break b}case 29:{j=i&255;if(!(1<<(j&31)&c[57168+((j>>>5|d[144193+(k&255)>>0]<<3)<<2)>>2])){o=9;break a}break}case 27:case 26:case 25:case 24:case 22:break;default:{o=93;break a}}k=e+2|0;c[p>>2]=k;e=k}c:do if((o|0)==17){o=0;if(h|0){o=18;break a}h=e+2|0;c[p>>2]=h;if((h|0)==(f|0)){e=-1;break a}i=a[h>>0]|0;j=a[e+3>>0]|0;if(!(i<<24>>24))k=d[m+(j&255)>>0]|0;else k=v$(i,j)|0;switch(k|0){case 5:{o=26;break a}case 6:{o=28;break a}case 7:{o=30;break a}case 24:case 22:{h=1;break c}case 29:break;default:{o=32;break a}}k=j&255;if(!(1<<(k&31)&c[57168+((k>>>5|d[143937+(i&255)>>0]<<3)<<2)>>2])){o=25;break a}else h=1}else if((o|0)==33)while(1){o=0;e=h+2|0;c[p>>2]=e;if((e|0)==(f|0)){e=-1;break a}i=a[e>>0]|0;h=a[h+3>>0]|0;if(!(i<<24>>24))h=d[m+(h&255)>>0]|0;else h=v$(i,h)|0;switch(h|0){case 14:{o=39;break c}case 9:case 10:case 21:{h=e;o=33;break}default:{o=38;break a}}}while(0);d:do if((o|0)==39){while(1){o=0;j=e+2|0;c[p>>2]=j;if((j|0)==(f|0)){e=-1;break a}h=a[j>>0]|0;i=a[e+3>>0]|0;if(!(h<<24>>24))k=d[m+(i&255)>>0]|0;else k=v$(h,i)|0;if((k|1|0)==13)break;switch(k|0){case 9:case 10:case 21:{e=j;o=39;break}default:{o=45;break a}}}e=e+4|0;c[p>>2]=e;e:while(1){if((e|0)==(f|0)){e=-1;break a}h=a[e>>0]|0;i=a[e+1>>0]|0;if(!(h<<24>>24))h=d[m+(i&255)>>0]|0;else h=v$(h,i)|0;if((h|0)==(k|0))break;switch(h|0){case 8:case 1:case 0:{o=59;break a}case 2:{o=64;break a}case 5:{if((n-e|0)<2){e=-2;break a}j=e+2|0;c[p>>2]=j;e=j;continue e}case 6:{if((n-e|0)<3){e=-2;break a}j=e+3|0;c[p>>2]=j;e=j;continue e}case 7:{if((n-e|0)<4){e=-2;break a}j=e+4|0;c[p>>2]=j;e=j;continue e}case 3:{e=f0(b,e+2|0,f,p)|0;if((e|0)<1){o=62;break a}e=c[p>>2]|0;continue e}default:{j=e+2|0;c[p>>2]=j;e=j;continue e}}}i=e+2|0;c[p>>2]=i;if((i|0)==(f|0)){e=-1;break a}h=a[i>>0]|0;j=a[e+3>>0]|0;if(!(h<<24>>24))h=d[m+(j&255)>>0]|0;else h=v$(h,j)|0;switch(h|0){case 11:{o=85;break a}case 17:{o=86;break a}case 10:case 9:case 21:{e=i;break}default:{o=71;break a}}f:while(1){i=e+2|0;c[p>>2]=i;if((i|0)==(f|0)){e=-1;break a}h=a[i>>0]|0;j=a[e+3>>0]|0;if(!(h<<24>>24))k=d[m+(j&255)>>0]|0;else k=v$(h,j)|0;switch(k|0){case 5:{o=79;break a}case 6:{o=81;break a}case 7:{o=83;break a}case 11:{o=85;break a}case 17:{o=86;break a}case 24:case 22:{h=0;break d}case 10:case 9:case 21:{e=i;break}case 29:break f;default:{o=91;break a}}}k=j&255;if(!(1<<(k&31)&c[57168+((k>>>5|d[143937+(h&255)>>0]<<3)<<2)>>2])){o=78;break a}else h=0}while(0);e=e+4|0;c[p>>2]=e}switch(o|0){case 9:{c[g>>2]=e;e=0;break}case 11:{if((f-e|0)<2)e=-2;else{c[g>>2]=e;e=0}break}case 13:{if((f-e|0)<3)e=-2;else{c[g>>2]=e;e=0}break}case 15:{if((f-e|0)<4)e=-2;else{c[g>>2]=e;e=0}break}case 18:{c[g>>2]=e;e=0;break}case 25:{c[g>>2]=h;e=0;break}case 26:{if((f-h|0)<2)e=-2;else{c[g>>2]=h;e=0}break}case 28:{if((f-h|0)<3)e=-2;else{c[g>>2]=h;e=0}break}case 30:{if((f-h|0)<4)e=-2;else{c[g>>2]=h;e=0}break}case 32:{c[g>>2]=h;e=0;break}case 38:{c[g>>2]=e;e=0;break}case 45:{c[g>>2]=j;e=0;break}case 59:{c[g>>2]=e;e=0;break}case 62:{if(!e){c[g>>2]=c[p>>2];e=0}break}case 64:{c[g>>2]=e;e=0;break}case 71:{c[g>>2]=i;e=0;break}case 78:{c[g>>2]=i;e=0;break}case 79:{if((n-i|0)<2)e=-2;else{c[g>>2]=i;e=0}break}case 81:{if((n-i|0)<3)e=-2;else{c[g>>2]=i;e=0}break}case 83:{if((n-i|0)<4)e=-2;else{c[g>>2]=i;e=0}break}case 85:{c[g>>2]=e+4;e=1;break}case 86:{h=i+2|0;c[p>>2]=h;e=h;if((h|0)==(f|0))e=-1;else{if((a[h>>0]|0)==0?(a[i+3>>0]|0)==62:0){c[g>>2]=i+4;e=3;break}c[g>>2]=e;e=0}break}case 91:{c[g>>2]=i;e=0;break}case 93:{c[g>>2]=e;e=0;break}}l=q;return e|0}function p0(b,d,e){b=b|0;d=d|0;e=e|0;c[e>>2]=11;a:do if((d-b|0)==6?(a[b>>0]|0)==0:0){switch(a[b+1>>0]|0){case 120:{d=0;break}case 88:{d=1;break}default:{d=1;break a}}if(!(a[b+2>>0]|0)){switch(a[b+3>>0]|0){case 109:break;case 77:{d=1;break}default:{d=1;break a}}if(!(a[b+4>>0]|0)){switch(a[b+5>>0]|0){case 108:break;case 76:{d=0;break a}default:{d=1;break a}}if(!d){c[e>>2]=12;d=1}else d=0}else d=1}else d=1}else d=1;while(0);return d|0}function q0(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0;l=e+76|0;k=g;j=f;a:while(1){if((j|0)==(g|0)){e=-1;break}f=a[j>>0]|0;e=a[j+1>>0]|0;if(!(f<<24>>24))i=d[l+(e&255)>>0]|0;else i=v$(f,e)|0;e=j+2|0;f=k-j|0;switch(i|0){case 8:case 1:case 0:{m=12;break a}case 5:if((f|0)<2){e=-2;break a}else{j=e;continue a}case 6:{if((f|0)<3){e=-2;break a}j=j+3|0;continue a}case 7:{if((f|0)<4){e=-2;break a}j=j+4|0;continue a}case 13:case 12:if((i|0)==(b|0)){m=14;break a}else{j=e;continue a}default:{j=e;continue a}}}b:do if((m|0)==12){c[h>>2]=j;e=0}else if((m|0)==14)if((e|0)==(g|0))e=-27;else{c[h>>2]=e;f=a[e>>0]|0;e=a[j+3>>0]|0;if(!(f<<24>>24))e=d[l+(e&255)>>0]|0;else e=v$(f,e)|0;switch(e|0){case 20:case 30:case 11:case 10:case 9:case 21:{e=27;break b}default:{}}e=0}while(0);return e|0}function r0(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;a:do if((e|0)==(f|0))h=-1;else{h=a[e>>0]|0;i=a[e+1>>0]|0;k=b+76|0;if(!(h<<24>>24))i=d[k+(i&255)>>0]|0;else i=v$(h,i)|0;h=e+2|0;switch(i|0){case 27:{h=k0(b,h,f,g)|0;break a}case 20:{c[g>>2]=h;h=33;break a}case 24:case 22:{b=h;b:while(1){if((b|0)==(f|0)){h=-1;break a}h=a[b>>0]|0;i=a[b+1>>0]|0;if(!(h<<24>>24))i=d[k+(i&255)>>0]|0;else i=v$(h,i)|0;h=b+2|0;switch(i|0){case 24:case 22:{b=h;break}case 30:{j=14;break b}case 10:case 9:case 21:break b;default:{j=21;break b}}}if((j|0)==21){c[g>>2]=b;h=0;break a}c:do if((j|0)==14){if((h|0)==(f|0)){h=-1;break a}h=a[h>>0]|0;i=a[b+3>>0]|0;if(!(h<<24>>24))h=d[k+(i&255)>>0]|0;else h=v$(h,i)|0;switch(h|0){case 30:case 10:case 9:case 21:break;default:break c}c[g>>2]=b;h=0;break a}while(0);c[g>>2]=b;h=16;break a}default:{c[g>>2]=e;h=0;break a}}}while(0);return h|0}function s0(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;a:do if((e|0)!=(f|0)){j=a[e>>0]|0;k=b+76|0;i=a[e+1>>0]|0;if(!(j<<24>>24))h=d[k+(i&255)>>0]|0;else h=v$(j,i)|0;l=f;b=l-e|0;switch(h|0){case 29:{i=i&255;if(!(1<<(i&31)&c[57168+((i>>>5|(d[143937+(j&255)>>0]|0)<<3)<<2)>>2])){c[g>>2]=e;b=0;break a}break}case 24:case 22:break;case 5:{if((b|0)<2){b=-2;break a}c[g>>2]=e;b=0;break a}case 6:{if((b|0)<3){b=-2;break a}c[g>>2]=e;b=0;break a}case 7:{if((b|0)<4){b=-2;break a}c[g>>2]=e;b=0;break a}default:{c[g>>2]=e;b=0;break a}}b:while(1){b=e;e=e+2|0;if((e|0)==(f|0)){b=-20;break a}i=a[e>>0]|0;b=a[b+3>>0]|0;if(!(i<<24>>24))h=d[k+(b&255)>>0]|0;else h=v$(i,b)|0;switch(h|0){case 27:case 26:case 25:case 24:case 22:continue b;case 5:{h=22;break b}case 6:{h=24;break b}case 7:{h=26;break b}case 36:case 30:case 11:case 32:case 21:case 10:case 9:{h=28;break b}case 29:break;default:{h=29;break b}}j=b&255;if(!(1<<(j&31)&c[57168+((j>>>5|(d[144193+(i&255)>>0]|0)<<3)<<2)>>2])){h=21;break}}if((h|0)==21){c[g>>2]=e;b=0;break}else if((h|0)==22){if((l-e|0)<2){b=-2;break}c[g>>2]=e;b=0;break}else if((h|0)==24){if((l-e|0)<3){b=-2;break}c[g>>2]=e;b=0;break}else if((h|0)==26){if((l-e|0)<4){b=-2;break}c[g>>2]=e;b=0;break}else if((h|0)==28){c[g>>2]=e;b=20;break}else if((h|0)==29){c[g>>2]=e;b=0;break}}else b=-1;while(0);return b|0}function t0(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;while(1){b=c[d>>2]|0;if((b|0)==(e|0))break;if((c[f>>2]|0)==(g|0))break;c[d>>2]=b+1;h=a[b>>0]|0;b=c[f>>2]|0;c[f>>2]=b+1;a[b>>0]=h}return}function u0(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;a:while(1){f=a[b>>0]|0;g=a[c>>0]|0;f=(f+-97&255)<26?(f&255)+224&255:f;switch((f<<24>>24==((g+-97&255)<26?(g&255)+224&255:g)<<24>>24?(f<<24>>24==0?2:0):1)&3){case 0:{c=c+1|0;b=b+1|0;break}case 1:{e=3;break a}case 2:{d=1;break a}default:{e=5;break a}}}if((e|0)==3)d=0;return d|0}function v0(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;return x0(42,a,b,c,d,e,f,g,h,i,j)|0}function w0(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=l;l=l+144|0;i=h+4|0;f=h+8|0;g=h;c[i>>2]=d;c[g>>2]=f;fb[c[b+60>>2]&31](b,i,e,g,f+127|0);do if((c[i>>2]|0)==(e|0)){a[c[g>>2]>>0]=0;if(u0(f,144464)|0?(c[b+68>>2]|0)==2:0)break;b=L$(f)|0;if((b|0)!=-1)b=c[59184+(b<<2)>>2]|0;else b=0}else b=0;while(0);l=h;return b|0}function x0(a,b,d,e,f,g,h,i,j,k,m){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+16|0;t=v+8|0;q=v+12|0;o=v+4|0;p=v;c[q>>2]=0;c[o>>2]=0;c[p>>2]=0;u=d+68|0;s=c[u>>2]|0;r=e+(s*5|0)|0;c[t>>2]=r;s=f+(0-(s<<1))|0;r=(y0(d,r,s,o,p,q,t)|0)!=0;n=c[o>>2]|0;e=n;a:do if(r&(n|0)!=0){r=d+28|0;f=c[p>>2]|0;b=(b|0)!=0;do if(!(tb[c[r>>2]&127](d,n,f,144489)|0)){if(!b){c[g>>2]=e;e=0;break a}}else{if(h|0)c[h>>2]=c[q>>2];e=c[t>>2]|0;if(i|0)c[i>>2]=e;if(!(y0(d,e,s,o,p,q,t)|0)){c[g>>2]=c[t>>2];e=0;break a}e=c[o>>2]|0;if(e|0){n=e;f=c[p>>2]|0;break}if(!b){e=1;break a}c[g>>2]=c[t>>2];e=0;break a}while(0);if(tb[c[r>>2]&127](d,n,f,144497)|0){f=c[q>>2]|0;e=f;if((((z0(d,f,s)|0)&-33)+-65|0)>>>0>=26){c[g>>2]=e;e=0;break}if(j|0)c[j>>2]=e;e=c[t>>2]|0;if(k|0)c[k>>2]=eb[a&63](d,f,e+(0-(c[u>>2]|0))|0)|0;if(!(y0(d,e,s,o,p,q,t)|0)){c[g>>2]=c[t>>2];e=0;break}e=c[o>>2]|0;if(!e){e=1;break}n=e;f=c[p>>2]|0}if(b|(tb[c[r>>2]&127](d,n,f,144506)|0)==0){c[g>>2]=e;e=0;break}f=c[q>>2]|0;e=c[t>>2]|0;n=(m|0)!=0;b=f;if(!(tb[c[r>>2]&127](d,f,e+(0-(c[u>>2]|0))|0,107958)|0)){if(!(tb[c[r>>2]&127](d,f,e+(0-(c[u>>2]|0))|0,107950)|0)){c[g>>2]=b;e=0;break}if(n)c[m>>2]=0}else if(n)c[m>>2]=1;while(1){if(!(A0(z0(d,e,s)|0)|0))break;e=e+(c[u>>2]|0)|0}c[t>>2]=e;if((e|0)==(s|0))e=1;else{c[g>>2]=e;e=0}}else{c[g>>2]=c[t>>2];e=0}while(0);l=v;return e|0}function y0(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0;a:do if((b|0)!=(d|0)){if(!(A0(z0(a,b,d)|0)|0)){c[h>>2]=b;b=0;break}j=a+68|0;do b=b+(c[j>>2]|0)|0;while((A0(z0(a,b,d)|0)|0)!=0);if((b|0)==(d|0)){c[e>>2]=0;b=1;break}c[e>>2]=b;b:while(1){i=z0(a,b,d)|0;switch(i|0){case -1:{i=11;break b}case 61:{i=12;break b}default:{}}if(A0(i)|0){i=14;break}b=b+(c[j>>2]|0)|0}if((i|0)==11){c[h>>2]=b;b=0;break}else if((i|0)==12)c[f>>2]=b;else if((i|0)==14){c[f>>2]=b;do{b=b+(c[j>>2]|0)|0;i=z0(a,b,d)|0}while((A0(i)|0)!=0);if((i|0)!=61){c[h>>2]=b;b=0;break}}if((b|0)==(c[e>>2]|0)){c[h>>2]=b;b=0;break}do{b=b+(c[j>>2]|0)|0;i=z0(a,b,d)|0}while((A0(i)|0)!=0);switch(i|0){case 34:case 39:break;default:{c[h>>2]=b;b=0;break a}}f=b+(c[j>>2]|0)|0;c[g>>2]=f;b=i<<24>>24;c:while(1){i=z0(a,f,d)|0;if((i|0)==(b|0)){i=30;break}if((i+-48|0)>>>0>9&((i&-33)+-65|0)>>>0>25)switch(i|0){case 45:case 46:case 95:break;default:{i=28;break c}}f=f+(c[j>>2]|0)|0}if((i|0)==28){c[h>>2]=f;b=0;break}else if((i|0)==30){c[h>>2]=f+(c[j>>2]|0);b=1;break}}else{c[e>>2]=0;b=1}while(0);return b|0}function z0(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=l;l=l+16|0;i=h+4|0;f=h+8|0;g=h;c[i>>2]=d;c[g>>2]=f;fb[c[b+60>>2]&31](b,i,e,g,f+1|0);l=h;return ((c[g>>2]|0)==(f|0)?-1:a[f>>0]|0)|0}function A0(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 B0(){return 60340}function C0(b,d,e){b=b|0;d=d|0;e=e|0;e=L$(e)|0;if((e|0)==-1)e=0;else{a[b+73>>0]=e;c[b>>2]=69;c[b+4>>2]=70;c[b+52>>2]=31;c[b+76>>2]=d;c[d>>2]=b;e=1}return e|0}function D0(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return P$(60708,a,0,b,c,d)|0}function E0(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return P$(60708,a,1,b,c,d)|0}function F0(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;return x0(43,a,b,c,d,e,f,g,h,i,j)|0}function G0(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=l;l=l+144|0;i=h+4|0;f=h+8|0;g=h;c[i>>2]=d;c[g>>2]=f;fb[c[b+60>>2]&31](b,i,e,g,f+127|0);do if((c[i>>2]|0)==(e|0)){a[c[g>>2]>>0]=0;if(u0(f,144464)|0?(c[b+68>>2]|0)==2:0)break;b=L$(f)|0;if((b|0)!=-1)b=c[60708+(b<<2)>>2]|0;else b=0}else b=0;while(0);l=h;return b|0}function H0(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;b=j_(b,c,d,e)|0;if(b|0)a[b+76+58>>0]=23;return b|0}function I0(a){a=a|0;c[a>>2]=4;c[a+16>>2]=1;c[a+12>>2]=0;c[a+20>>2]=0;return}function J0(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;switch(b|0){case 15:{c[a>>2]=5;a=0;break}case 12:{c[a>>2]=5;a=1;break}case 11:{c[a>>2]=5;a=55;break}case 13:{c[a>>2]=5;a=56;break}case 14:{a=0;break}case 16:{if(!(tb[c[f+28>>2]&127](f,d+(c[f+68>>2]<<1)|0,e,144517)|0))g=9;else{c[a>>2]=6;a=3}break}case 29:{c[a>>2]=7;a=2;break}default:g=9}if((g|0)==9)a=N0(a,b)|0;return a|0}function K0(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;switch(b|0){case 14:case 15:{a=0;break}case 11:{a=55;break}case 13:{a=56;break}case 16:{if(!(tb[c[f+28>>2]&127](f,d+(c[f+68>>2]<<1)|0,e,144517)|0))g=7;else{c[a>>2]=6;a=3}break}case 29:{c[a>>2]=7;a=2;break}default:g=7}if((g|0)==7)a=N0(a,b)|0;return a|0}function L0(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=3;break}case 41:case 18:{c[a>>2]=8;a=4;break}default:a=N0(a,b)|0}return a|0}function M0(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 0}function N0(a,b){a=a|0;b=b|0;if((b|0)==28&(c[a+16>>2]|0)==0)a=59;else{c[a>>2]=7;a=-1}return a|0}function O0(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a:do switch(b|0){case 15:{a=3;break}case 25:{c[a>>2]=9;a=7;break}case 17:{c[a>>2]=10;a=8;break}case 18:{g=f+28|0;if(tb[c[g>>2]&127](f,d,e,144525)|0){c[a>>2]=11;a=3;break a}if(!(tb[c[g>>2]&127](f,d,e,144532)|0))h=8;else{c[a>>2]=12;a=3}break}default:h=8}while(0);if((h|0)==8)a=N0(a,b)|0;return a|0}function P0(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;a:do switch(b|0){case -4:case 15:{a=0;break}case 16:{g=f+28|0;h=f+68|0;if(tb[c[g>>2]&127](f,d+(c[h>>2]<<1)|0,e,144539)|0){c[a>>2]=13;a=11;break a}if(tb[c[g>>2]&127](f,d+(c[h>>2]<<1)|0,e,144546)|0){c[a>>2]=14;a=33;break a}if(tb[c[g>>2]&127](f,d+(c[h>>2]<<1)|0,e,144554)|0){c[a>>2]=15;a=39;break a}if(!(tb[c[g>>2]&127](f,d+(c[h>>2]<<1)|0,e,144562)|0))i=14;else{c[a>>2]=16;a=17}break}case 11:{a=55;break}case 13:{a=56;break}case 28:{a=60;break}case 26:{c[a>>2]=17;a=3;break}default:i=14}while(0);if((i|0)==14)a=N0(a,b)|0;return a|0}function Q0(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;f=b+-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:{c[a>>2]=7;a=2;break}default:a=N0(a,b)|0}return a|0}function R0(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=3;break}case 27:{c[a>>2]=18;a=5;break}default:a=N0(a,b)|0}return a|0}function S0(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=3;break}case 27:{c[a>>2]=11;a=6;break}default:a=N0(a,b)|0}return a|0}function T0(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=3;break}case 25:{c[a>>2]=9;a=7;break}case 17:{c[a>>2]=10;a=8;break}default:a=N0(a,b)|0}return a|0}function U0(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=11;break}case 22:{c[a>>2]=19;a=11;break}case 18:{c[a>>2]=20;a=9;break}default:a=N0(a,b)|0}return a|0}function V0(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=33;break}case 41:case 18:{c[a>>2]=21;a=34;break}default:a=N0(a,b)|0}return a|0}function W0(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=39;break}case 41:case 18:{c[a>>2]=22;a=40;break}default:a=N0(a,b)|0}return a|0}function X0(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=17;break}case 18:{c[a>>2]=23;a=18;break}default:a=N0(a,b)|0}return a|0}function Y0(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=3;break}case 17:{c[a>>2]=10;a=8;break}default:a=N0(a,b)|0}return a|0}function Z0(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a:do switch(b|0){case 15:{a=17;break}case 18:{g=f+28|0;if(tb[c[g>>2]&127](f,d,e,144525)|0){c[a>>2]=24;a=17;break a}if(!(tb[c[g>>2]&127](f,d,e,144532)|0))h=6;else{c[a>>2]=25;a=17}break}default:h=6}while(0);if((h|0)==6)a=N0(a,b)|0;return a|0}function _0(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=17;break}case 27:{c[a>>2]=26;c[a+8>>2]=17;a=19;break}default:a=N0(a,b)|0}return a|0}function $0(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=17;break}case 27:{c[a>>2]=27;a=21;break}default:a=N0(a,b)|0}return a|0}function a1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=17;break}case 27:{c[a>>2]=26;c[a+8>>2]=17;a=19;break}case 17:{c[a>>2]=c[a+16>>2]|0?9:28;a=20;break}default:a=N0(a,b)|0}return a|0}function b1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=a+8|0;switch(b|0){case 15:{d=c[d>>2]|0;break}case 17:{c[a>>2]=c[a+16>>2]|0?9:28;d=c[d>>2]|0;break}default:d=N0(a,b)|0}return d|0}function c1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=a+12|0;switch(b|0){case 33:{c[a>>2]=29;d=0;break}case 34:{d=c[g>>2]|0;if(!d)h=7;else{c[g>>2]=d+-1;d=0}break}case 15:{d=0;break}case 26:{h=7;break}case -4:{if(!(c[g>>2]|0))d=0;else h=7;break}default:d=P0(a,b,d,e,f)|0}if((h|0)==7)d=N0(a,b)|0;return d|0}function d1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a:do switch(b|0){case 15:{a=0;break}case 18:{g=f+28|0;if(tb[c[g>>2]&127](f,d,e,144571)|0){c[a>>2]=30;a=0;break a}if(!(tb[c[g>>2]&127](f,d,e,144579)|0))h=6;else{c[a>>2]=31;a=0}break}default:h=6}while(0);if((h|0)==6)a=N0(a,b)|0;return a|0}function e1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=0;break}case 25:{c[a>>2]=28;a=a+12|0;c[a>>2]=(c[a>>2]|0)+1;a=0;break}default:a=N0(a,b)|0}return a|0}function f1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=0;break}case 25:{c[a>>2]=28;a=58;break}default:a=N0(a,b)|0}return a|0}function g1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;a:do switch(b|0){case 15:{a=39;break}case 18:{g=f+28|0;h=a+8|0;if(tb[c[g>>2]&127](f,d,e,144586)|0){c[a>>2]=26;c[h>>2]=39;a=42;break a}if(!(tb[c[g>>2]&127](f,d,e,144592)|0))i=7;else{c[a>>2]=26;c[h>>2]=39;a=41}break}case 23:{c[a>>2]=32;c[a+4>>2]=1;a=44;break}default:i=7}while(0);if((i|0)==7)a=N0(a,b)|0;return a|0}function h1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;switch(b|0){case 15:{a=39;break}case 20:{if(!(tb[c[f+28>>2]&127](f,d+(c[f+68>>2]|0)|0,e,144596)|0))g=9;else{c[a>>2]=33;a=43}break}case 23:{c[a+4>>2]=2;c[a>>2]=34;a=44;break}case 41:case 18:{c[a>>2]=35;a=51;break}case 30:{c[a>>2]=35;a=53;break}case 31:{c[a>>2]=35;a=52;break}case 32:{c[a>>2]=35;a=54;break}default:g=9}if((g|0)==9)a=N0(a,b)|0;return a|0}function i1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=a+8|0;switch(b|0){case 15:{d=39;break}case 24:{c[a>>2]=26;c[d>>2]=39;d=45;break}case 36:{c[a>>2]=26;c[d>>2]=39;d=46;break}case 21:{c[a>>2]=36;d=39;break}default:d=N0(a,b)|0}return d|0}function j1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=39;break}case 23:{a=a+4|0;c[a>>2]=(c[a>>2]|0)+1;a=44;break}case 41:case 18:{c[a>>2]=35;a=51;break}case 30:{c[a>>2]=35;a=53;break}case 31:{c[a>>2]=35;a=52;break}case 32:{c[a>>2]=35;a=54;break}default:a=N0(a,b)|0}return a|0}function k1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=a+8|0;e=a+4|0;switch(b|0){case 15:{d=39;break}case 24:{b=(c[e>>2]|0)+-1|0;c[e>>2]=b;if(!b){c[a>>2]=26;c[d>>2]=39;d=45}else d=45;break}case 36:{b=(c[e>>2]|0)+-1|0;c[e>>2]=b;if(!b){c[a>>2]=26;c[d>>2]=39;d=46}else d=46;break}case 35:{b=(c[e>>2]|0)+-1|0;c[e>>2]=b;if(!b){c[a>>2]=26;c[d>>2]=39;d=47}else d=47;break}case 37:{b=(c[e>>2]|0)+-1|0;c[e>>2]=b;if(!b){c[a>>2]=26;c[d>>2]=39;d=48}else d=48;break}case 38:{c[a>>2]=34;d=50;break}case 21:{c[a>>2]=34;d=49;break}default:d=N0(a,b)|0}return d|0}function l1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=39;break}case 41:case 18:{c[a>>2]=37;a=51;break}default:a=N0(a,b)|0}return a|0}function m1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=39;break}case 36:{c[a>>2]=26;c[a+8>>2]=39;a=46;break}case 21:{c[a>>2]=36;a=39;break}default:a=N0(a,b)|0}return a|0}function n1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=33;break}case 17:{c[a>>2]=c[a+16>>2]|0?9:28;a=33;break}case 41:case 18:{c[a>>2]=38;a=22;break}default:a=N0(a,b)|0}return a|0}function o1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;a:do switch(b|0){case 15:{g=33;break}case 18:{h=f+28|0;g=0;while(1){i=c[h>>2]|0;if((g|0)>=8)break;if(tb[i&127](f,d,e,c[62576+(g<<2)>>2]|0)|0){j=6;break}g=g+1|0}if((j|0)==6){c[a>>2]=39;g=g+23|0;break a}if(!(tb[i&127](f,d,e,144562)|0))j=10;else{c[a>>2]=40;g=33}break}case 23:{c[a>>2]=41;g=33;break}default:j=10}while(0);if((j|0)==10)g=N0(a,b)|0;return g|0}function p1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;a:do switch(b|0){case 15:{a=33;break}case 20:{g=f+28|0;h=f+68|0;if(tb[c[g>>2]&127](f,d+(c[h>>2]|0)|0,e,144603)|0){c[a>>2]=21;a=35;break a}if(tb[c[g>>2]&127](f,d+(c[h>>2]|0)|0,e,144611)|0){c[a>>2]=21;a=36;break a}if(!(tb[c[g>>2]&127](f,d+(c[h>>2]|0)|0,e,144620)|0))i=9;else{c[a>>2]=42;a=33}break}case 27:{c[a>>2]=21;a=37;break}default:i=9}while(0);if((i|0)==9)a=N0(a,b)|0;return a|0}function q1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=33;break}case 23:{c[a>>2]=43;a=33;break}default:a=N0(a,b)|0}return a|0}function r1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=33;break}case 41:case 18:case 19:{c[a>>2]=44;a=31;break}default:a=N0(a,b)|0}return a|0}function s1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=33;break}case 24:{c[a>>2]=39;a=33;break}case 21:{c[a>>2]=41;a=33;break}default:a=N0(a,b)|0}return a|0}function t1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=33;break}case 18:{c[a>>2]=45;a=32;break}default:a=N0(a,b)|0}return a|0}function u1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=33;break}case 24:{c[a>>2]=39;a=33;break}case 21:{c[a>>2]=43;a=33;break}default:a=N0(a,b)|0}return a|0}function v1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=33;break}case 27:{c[a>>2]=21;a=38;break}default:a=N0(a,b)|0}return a|0}function w1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=11;break}case 18:{c[a>>2]=46;a=10;break}default:a=N0(a,b)|0}return a|0}function x1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a:do switch(b|0){case 15:{a=11;break}case 18:{g=f+28|0;if(tb[c[g>>2]&127](f,d,e,144525)|0){c[a>>2]=47;a=11;break a}if(!(tb[c[g>>2]&127](f,d,e,144532)|0))h=7;else{c[a>>2]=48;a=11}break}case 27:{c[a>>2]=26;c[a+8>>2]=11;a=12;break}default:h=7}while(0);if((h|0)==7)a=N0(a,b)|0;return a|0}function y1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=11;break}case 27:{c[a>>2]=49;a=13;break}default:a=N0(a,b)|0}return a|0}function z1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=11;break}case 27:{c[a>>2]=47;a=14;break}default:a=N0(a,b)|0}return a|0}function A1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;switch(b|0){case 15:{a=11;break}case 17:{c[a>>2]=c[a+16>>2]|0?9:28;a=15;break}case 18:{if(!(tb[c[f+28>>2]&127](f,d,e,144674)|0))g=5;else{c[a>>2]=50;a=11}break}default:g=5}if((g|0)==5)a=N0(a,b)|0;return a|0}function B1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=11;break}case 18:{c[a>>2]=26;c[a+8>>2]=11;a=16;break}default:a=N0(a,b)|0}return a|0}function C1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a:do switch(b|0){case 15:{a=11;break}case 18:{g=f+28|0;if(tb[c[g>>2]&127](f,d,e,144525)|0){c[a>>2]=51;a=11;break a}if(!(tb[c[g>>2]&127](f,d,e,144532)|0))h=7;else{c[a>>2]=52;a=11}break}case 27:{c[a>>2]=26;c[a+8>>2]=11;a=12;break}default:h=7}while(0);if((h|0)==7)a=N0(a,b)|0;return a|0}function D1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=11;break}case 27:{c[a>>2]=53;a=13;break}default:a=N0(a,b)|0}return a|0}function E1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=11;break}case 27:{c[a>>2]=51;a=14;break}default:a=N0(a,b)|0}return a|0}function F1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(b|0){case 15:{a=11;break}case 17:{c[a>>2]=c[a+16>>2]|0?9:28;a=15;break}default:a=N0(a,b)|0}return a|0}function G1(){return 190360}function H1(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=O1(c[a+60>>2]|0)|0;a=K1(xa(6,d|0)|0)|0;l=b;return a|0}function I1(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;n=l;l=l+48|0;k=n+16|0;g=n;f=n+32|0;i=a+28|0;e=c[i>>2]|0;c[f>>2]=e;j=a+20|0;e=(c[j>>2]|0)-e|0;c[f+4>>2]=e;c[f+8>>2]=b;c[f+12>>2]=d;e=e+d|0;h=a+60|0;c[g>>2]=c[h>>2];c[g+4>>2]=f;c[g+8>>2]=2;g=K1(bb(146,g|0)|0)|0;a:do if((e|0)!=(g|0)){b=2;while(1){if((g|0)<0)break;e=e-g|0;p=c[f+4>>2]|0;o=g>>>0>p>>>0;f=o?f+8|0:f;b=(o<<31>>31)+b|0;p=g-(o?p:0)|0;c[f>>2]=(c[f>>2]|0)+p;o=f+4|0;c[o>>2]=(c[o>>2]|0)-p;c[k>>2]=c[h>>2];c[k+4>>2]=f;c[k+8>>2]=b;g=K1(bb(146,k|0)|0)|0;if((e|0)==(g|0)){m=3;break a}}c[a+16>>2]=0;c[i>>2]=0;c[j>>2]=0;c[a>>2]=c[a>>2]|32;if((b|0)==2)d=0;else d=d-(c[f+4>>2]|0)|0}else m=3;while(0);if((m|0)==3){p=c[a+44>>2]|0;c[a+16>>2]=p+(c[a+48>>2]|0);c[i>>2]=p;c[j>>2]=p}l=n;return d|0}function J1(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=l;l=l+32|0;g=f;e=f+20|0;c[g>>2]=c[a+60>>2];c[g+4>>2]=0;c[g+8>>2]=b;c[g+12>>2]=e;c[g+16>>2]=d;if((K1(Za(140,g|0)|0)|0)<0){c[e>>2]=-1;a=-1}else a=c[e>>2]|0;l=f;return a|0}function K1(a){a=a|0;if(a>>>0>4294963200){c[(L1()|0)>>2]=0-a;a=-1}return a|0}function L1(){return (M1()|0)+64|0}function M1(){return N1()|0}function N1(){return 62988}function O1(a){a=a|0;return a|0}function P1(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;k=l;l=l+32|0;f=k;i=k+16|0;c[i>>2]=d;g=i+4|0;j=b+48|0;m=c[j>>2]|0;c[g>>2]=e-((m|0)!=0&1);h=b+44|0;c[i+8>>2]=c[h>>2];c[i+12>>2]=m;c[f>>2]=c[b+60>>2];c[f+4>>2]=i;c[f+8>>2]=2;f=K1(ab(145,f|0)|0)|0;if((f|0)>=1){i=c[g>>2]|0;if(f>>>0>i>>>0){g=c[h>>2]|0;h=b+4|0;c[h>>2]=g;c[b+8>>2]=g+(f-i);if(!(c[j>>2]|0))f=e;else{c[h>>2]=g+1;a[d+(e+-1)>>0]=a[g>>0]|0;f=e}}}else c[b>>2]=c[b>>2]|f&48^16;l=k;return f|0}function Q1(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=l;l=l+32|0;f=g;c[b+36>>2]=18;if((c[b>>2]&64|0)==0?(c[f>>2]=c[b+60>>2],c[f+4>>2]=21523,c[f+8>>2]=g+16,Qa(54,f|0)|0):0)a[b+75>>0]=-1;f=I1(b,d,e)|0;l=g;return f|0}function R1(a){a=a|0;var b=0;b=(S1(a)|0)==0;return (b?a:a|32)|0}function S1(a){a=a|0;return (a+-65|0)>>>0<26|0}function T1(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l+128|0;h=j;c[h>>2]=0;i=h+4|0;c[i>>2]=a;c[h+44>>2]=a;g=h+8|0;c[g>>2]=(a|0)<0?-1:a+2147483647|0;c[h+76>>2]=-1;U1(h,0);d=V1(h,d,1,e,f)|0;if(b|0)c[b>>2]=a+((c[i>>2]|0)+(c[h+108>>2]|0)-(c[g>>2]|0));l=j;return d|0}function U1(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a+104>>2]=b;d=c[a+8>>2]|0;e=c[a+4>>2]|0;f=d-e|0;c[a+108>>2]=f;c[a+100>>2]=(b|0)!=0&(f|0)>(b|0)?e+b|0:d;return}function V1(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;a:do if(e>>>0>36){c[(L1()|0)>>2]=22;h=0;g=0}else{r=b+4|0;q=b+100|0;do{i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=W1(b)|0}while((X1(i)|0)!=0);b:do switch(i|0){case 43:case 45:{i=((i|0)==45)<<31>>31;j=c[r>>2]|0;if(j>>>0<(c[q>>2]|0)>>>0){c[r>>2]=j+1;p=i;i=d[j>>0]|0;break b}else{p=i;i=W1(b)|0;break b}}default:p=0}while(0);j=(e|0)==0;do if((e|16|0)==16&(i|0)==48){i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=W1(b)|0;if((i|32|0)!=120)if(j){e=8;n=46;break}else{n=32;break}i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=W1(b)|0;if((d[144681+i>>0]|0)>15){g=(c[q>>2]|0)!=0;if(g)c[r>>2]=(c[r>>2]|0)+-1;if(!f){U1(b,0);h=0;g=0;break a}if(!g){h=0;g=0;break a}c[r>>2]=(c[r>>2]|0)+-1;h=0;g=0;break a}else{e=16;n=46}}else{e=j?10:e;if((d[144681+i>>0]|0)>>>0<e>>>0)n=32;else{if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;U1(b,0);c[(L1()|0)>>2]=22;h=0;g=0;break a}}while(0);c:do if((n|0)==32)if((e|0)==10){e=i+-48|0;if(e>>>0<10){i=0;j=e;do{i=(i*10|0)+j|0;e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;e=d[e>>0]|0}else e=W1(b)|0;j=e+-48|0}while(j>>>0<10&i>>>0<429496729);f=0}else{e=i;i=0;f=0}k=e+-48|0;if(k>>>0<10){j=e;do{e=G6(i|0,f|0,10,0)|0;l=D;m=((k|0)<0)<<31>>31;o=~m;if(l>>>0>o>>>0|(l|0)==(o|0)&e>>>0>~k>>>0){e=10;n=72;break c}i=w6(e|0,l|0,k|0,m|0)|0;f=D;e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;j=d[e>>0]|0}else j=W1(b)|0;k=j+-48|0}while(k>>>0<10&(f>>>0<429496729|(f|0)==429496729&i>>>0<2576980378));if(k>>>0>9){j=p;e=f}else{e=10;n=72}}else{j=p;e=f}}else n=46;while(0);d:do if((n|0)==46){if(!(e+-1&e)){n=a[144937+((e*23|0)>>>5&7)>>0]|0;f=a[144681+i>>0]|0;j=f&255;if(j>>>0<e>>>0){i=0;k=j;do{i=k|i<<n;j=c[r>>2]|0;if(j>>>0<(c[q>>2]|0)>>>0){c[r>>2]=j+1;j=d[j>>0]|0}else j=W1(b)|0;f=a[144681+j>>0]|0;k=f&255}while(i>>>0<134217728&k>>>0<e>>>0);k=0}else{j=i;k=0;i=0}l=z6(-1,-1,n|0)|0;m=D;if((f&255)>>>0>=e>>>0|(k>>>0>m>>>0|(k|0)==(m|0)&i>>>0>l>>>0)){f=k;n=72;break}else j=k;while(1){i=v6(i|0,j|0,n|0)|0;k=D;i=f&255|i;j=c[r>>2]|0;if(j>>>0<(c[q>>2]|0)>>>0){c[r>>2]=j+1;j=d[j>>0]|0}else j=W1(b)|0;f=a[144681+j>>0]|0;if((f&255)>>>0>=e>>>0|(k>>>0>m>>>0|(k|0)==(m|0)&i>>>0>l>>>0)){f=k;n=72;break d}else j=k}}f=a[144681+i>>0]|0;j=f&255;if(j>>>0<e>>>0){i=0;k=j;do{i=k+(S(i,e)|0)|0;j=c[r>>2]|0;if(j>>>0<(c[q>>2]|0)>>>0){c[r>>2]=j+1;j=d[j>>0]|0}else j=W1(b)|0;f=a[144681+j>>0]|0;k=f&255}while(i>>>0<119304647&k>>>0<e>>>0);k=0}else{j=i;i=0;k=0}if((f&255)>>>0<e>>>0){n=E6(-1,-1,e|0,0)|0;o=D;m=k;while(1){if(m>>>0>o>>>0|(m|0)==(o|0)&i>>>0>n>>>0){f=m;n=72;break d}k=G6(i|0,m|0,e|0,0)|0;l=D;f=f&255;if(l>>>0>4294967295|(l|0)==-1&k>>>0>~f>>>0){f=m;n=72;break d}i=w6(f|0,0,k|0,l|0)|0;k=D;j=c[r>>2]|0;if(j>>>0<(c[q>>2]|0)>>>0){c[r>>2]=j+1;j=d[j>>0]|0}else j=W1(b)|0;f=a[144681+j>>0]|0;if((f&255)>>>0>=e>>>0){f=k;n=72;break}else m=k}}else{f=k;n=72}}while(0);if((n|0)==72)if((d[144681+j>>0]|0)>>>0<e>>>0){do{i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=W1(b)|0}while((d[144681+i>>0]|0)>>>0<e>>>0);c[(L1()|0)>>2]=34;j=(g&1|0)==0&0==0?p:0;e=h;i=g}else{j=p;e=f}if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;if(!(e>>>0<h>>>0|(e|0)==(h|0)&i>>>0<g>>>0)){if(!((g&1|0)!=0|0!=0|(j|0)!=0)){c[(L1()|0)>>2]=34;g=w6(g|0,h|0,-1,-1)|0;h=D;break}if(e>>>0>h>>>0|(e|0)==(h|0)&i>>>0>g>>>0){c[(L1()|0)>>2]=34;break}}g=((j|0)<0)<<31>>31;g=t6(i^j|0,e^g|0,j|0,g|0)|0;h=D}while(0);D=h;return g|0}function W1(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=b+104|0;j=c[f>>2]|0;if((j|0)!=0?(c[b+108>>2]|0)>=(j|0):0)k=4;else{e=Y1(b)|0;if((e|0)>=0){g=c[f>>2]|0;f=b+8|0;if(g){i=c[f>>2]|0;f=c[b+4>>2]|0;h=b+108|0;g=g-(c[h>>2]|0)|0;j=i;if((i-f|0)<(g|0)){i=j;g=j}else{i=f+(g+-1)|0;g=j}}else{g=c[f>>2]|0;h=b+108|0;i=g;f=c[b+4>>2]|0}c[b+100>>2]=i;if(g|0)c[h>>2]=g+1-f+(c[h>>2]|0);f=f+-1|0;if((d[f>>0]|0|0)!=(e|0))a[f>>0]=e}else k=4}if((k|0)==4){c[b+100>>2]=0;e=-1}return e|0}function X1(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function Y1(a){a=a|0;var b=0,e=0;e=l;l=l+16|0;b=e;if((Z1(a)|0)==0?(eb[c[a+32>>2]&63](a,b,1)|0)==1:0)a=d[b>>0]|0;else a=-1;l=e;return a|0}function Z1(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=b+20|0;e=b+28|0;if((c[d>>2]|0)>>>0>(c[e>>2]|0)>>>0)eb[c[b+36>>2]&63](b,0,0)|0;c[b+16>>2]=0;c[e>>2]=0;c[d>>2]=0;d=c[b>>2]|0;if(!(d&4)){e=(c[b+44>>2]|0)+(c[b+48>>2]|0)|0;c[b+8>>2]=e;c[b+4>>2]=e;d=d<<27>>31}else{c[b>>2]=d|32;d=-1}return d|0}function _1(a,b,c){a=a|0;b=b|0;c=c|0;c=T1(a,b,c,-1,0)|0;return c|0}function $1(a,b,c){a=a|0;b=b|0;c=c|0;c=T1(a,b,c,-2147483648,0)|0;return c|0}function a2(a){a=a|0;var b=0;b=(b2(a)|0)==0;return (b?a:a&95)|0}function b2(a){a=a|0;return (a+-97|0)>>>0<26|0}function c2(a,b){a=+a;b=+b;var d=0.0,e=0,f=0,g=0,i=0,k=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;q=l;l=l+32|0;m=q+24|0;n=q+16|0;o=q+8|0;p=q;h[j>>3]=a;t=c[j>>2]|0;g=c[j+4>>2]|0;h[j>>3]=b;e=c[j>>2]|0;g=g&2147483647;f=c[j+4>>2]&2147483647;i=g>>>0<f>>>0|(g|0)==(f|0)&t>>>0<e>>>0;s=i?e:t;r=i?f:g;e=i?t:e;f=i?g:f;g=z6(s|0,r|0,52)|0;i=z6(e|0,f|0,52)|0;c[j>>2]=s;c[j+4>>2]=r;a=+h[j>>3];c[j>>2]=e;c[j+4>>2]=f;k=+h[j>>3];do if((i|0)!=2047){if(!((e|0)==0&(f|0)==0|(g|0)==2047)){if((g-i|0)>64){a=a+k;break}if(g>>>0>1533){d=5260135901548373507240989.0e186;b=a*1.90109156629516e-211;a=k*1.90109156629516e-211}else{t=i>>>0<573;d=t?1.90109156629516e-211:1.0;b=t?a*5260135901548373507240989.0e186:a;a=t?k*5260135901548373507240989.0e186:k}d2(m,n,b);d2(o,p,a);a=d*+G(+(+h[p>>3]+ +h[n>>3]+ +h[o>>3]+ +h[m>>3]))}}else a=k;while(0);l=q;return +a}function d2(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0,e=0.0;e=c*134217729.0;e=e+(c-e);d=c-e;c=c*c;h[a>>3]=c;h[b>>3]=d*d+(e*e-c+e*2.0*d);return}function e2(a,b){a=+a;b=+b;var d=0,e=0;h[j>>3]=a;e=c[j>>2]|0;d=c[j+4>>2]|0;h[j>>3]=b;d=c[j+4>>2]&-2147483648|d&2147483647;c[j>>2]=e;c[j+4>>2]=d;return +(+h[j>>3])}function f2(b,c){b=b|0;c=c|0;var d=0,e=0;d=a[b>>0]|0;e=a[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24)b=e;else{do{b=b+1|0;c=c+1|0;d=a[b>>0]|0;e=a[c>>0]|0}while(!(d<<24>>24==0?1:d<<24>>24!=e<<24>>24));b=e}return (d&255)-(b&255)|0}function g2(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if(!d)b=0;else{while(1){e=a[b>>0]|0;f=a[c>>0]|0;if(e<<24>>24!=f<<24>>24)break;d=d+-1|0;if(!d){b=0;break a}else{b=b+1|0;c=c+1|0}}b=(e&255)-(f&255)|0}while(0);return b|0}function h2(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;if(!d)e=0;else{h=a[b>>0]|0;e=h&255;g=a[c>>0]|0;f=g&255;a:do if(h<<24>>24)do{d=d+-1|0;if(!(h<<24>>24==g<<24>>24&((d|0)!=0&g<<24>>24!=0)))break a;b=b+1|0;c=c+1|0;h=a[b>>0]|0;e=h&255;g=a[c>>0]|0;f=g&255}while(h<<24>>24!=0);while(0);e=e-f|0}return e|0}function i2(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;c[f>>2]=d;d=j2(a,b,f)|0;l=e;return d|0}function j2(a,b,c){a=a|0;b=b|0;c=c|0;return k2(a,2147483647,b,c)|0}function k2(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+128|0;g=n+124|0;m=n;h=m;i=63492;j=h+124|0;do{c[h>>2]=c[i>>2];h=h+4|0;i=i+4|0}while((h|0)<(j|0));if((d+-1|0)>>>0>2147483646)if(!d){b=g;d=1;k=4}else{c[(L1()|0)>>2]=75;d=-1}else k=4;if((k|0)==4){k=-2-b|0;k=d>>>0>k>>>0?k:d;c[m+48>>2]=k;g=m+20|0;c[g>>2]=b;c[m+44>>2]=b;d=b+k|0;b=m+16|0;c[b>>2]=d;c[m+28>>2]=d;d=l2(m,e,f)|0;if(k){m=c[g>>2]|0;a[m+(((m|0)==(c[b>>2]|0))<<31>>31)>>0]=0}}l=n;return d|0}function l2(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+224|0;n=s+120|0;o=s+80|0;q=s;r=s+136|0;f=o;g=f+40|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));c[n>>2]=c[e>>2];if((m2(0,d,n,q,o)|0)<0)e=-1;else{if((c[b+76>>2]|0)>-1)p=n2(b)|0;else p=0;e=c[b>>2]|0;m=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;f=b+48|0;if(!(c[f>>2]|0)){g=b+44|0;h=c[g>>2]|0;c[g>>2]=r;i=b+28|0;c[i>>2]=r;j=b+20|0;c[j>>2]=r;c[f>>2]=80;k=b+16|0;c[k>>2]=r+80;e=m2(b,d,n,q,o)|0;if(h){eb[c[b+36>>2]&63](b,0,0)|0;e=(c[j>>2]|0)==0?-1:e;c[g>>2]=h;c[f>>2]=0;c[k>>2]=0;c[i>>2]=0;c[j>>2]=0}}else e=m2(b,d,n,q,o)|0;f=c[b>>2]|0;c[b>>2]=f|m;if(p|0)o2(b);e=(f&32|0)==0?e:-1}l=s;return e|0}function m2(d,e,f,g,i){d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0;H=l;l=l+64|0;C=H+16|0;E=H;A=H+24|0;F=H+8|0;G=H+20|0;c[C>>2]=e;x=(d|0)!=0;y=A+40|0;z=y;A=A+39|0;B=F+4|0;k=0;j=0;p=0;a:while(1){do if((j|0)>-1)if((k|0)>(2147483647-j|0)){c[(L1()|0)>>2]=75;j=-1;break}else{j=k+j|0;break}while(0);k=a[e>>0]|0;if(!(k<<24>>24)){w=87;break}else m=e;b:while(1){switch(k<<24>>24){case 37:{k=m;w=9;break b}case 0:{k=m;break b}default:{}}v=m+1|0;c[C>>2]=v;k=a[v>>0]|0;m=v}c:do if((w|0)==9)while(1){w=0;if((a[m+1>>0]|0)!=37)break c;k=k+1|0;m=m+2|0;c[C>>2]=m;if((a[m>>0]|0)==37)w=9;else break}while(0);k=k-e|0;if(x)p2(d,e,k);if(k|0){e=m;continue}n=m+1|0;k=(a[n>>0]|0)+-48|0;if(k>>>0<10){v=(a[m+2>>0]|0)==36;u=v?k:-1;p=v?1:p;n=v?m+3|0:n}else u=-1;c[C>>2]=n;k=a[n>>0]|0;m=(k<<24>>24)+-32|0;d:do if(m>>>0<32){o=0;q=k;while(1){k=1<<m;if(!(k&75913)){k=q;break d}o=k|o;n=n+1|0;c[C>>2]=n;k=a[n>>0]|0;m=(k<<24>>24)+-32|0;if(m>>>0>=32)break;else q=k}}else o=0;while(0);if(k<<24>>24==42){m=n+1|0;k=(a[m>>0]|0)+-48|0;if(k>>>0<10?(a[n+2>>0]|0)==36:0){c[i+(k<<2)>>2]=10;k=c[g+((a[m>>0]|0)+-48<<3)>>2]|0;p=1;n=n+3|0}else{if(p|0){j=-1;break}if(x){p=(c[f>>2]|0)+(4-1)&~(4-1);k=c[p>>2]|0;c[f>>2]=p+4;p=0;n=m}else{k=0;p=0;n=m}}c[C>>2]=n;v=(k|0)<0;k=v?0-k|0:k;o=v?o|8192:o}else{k=q2(C)|0;if((k|0)<0){j=-1;break}n=c[C>>2]|0}do if((a[n>>0]|0)==46){if((a[n+1>>0]|0)!=42){c[C>>2]=n+1;m=q2(C)|0;n=c[C>>2]|0;break}q=n+2|0;m=(a[q>>0]|0)+-48|0;if(m>>>0<10?(a[n+3>>0]|0)==36:0){c[i+(m<<2)>>2]=10;m=c[g+((a[q>>0]|0)+-48<<3)>>2]|0;n=n+4|0;c[C>>2]=n;break}if(p|0){j=-1;break a}if(x){v=(c[f>>2]|0)+(4-1)&~(4-1);m=c[v>>2]|0;c[f>>2]=v+4}else m=0;c[C>>2]=q;n=q}else m=-1;while(0);t=0;while(1){if(((a[n>>0]|0)+-65|0)>>>0>57){j=-1;break a}v=n+1|0;c[C>>2]=v;q=a[(a[n>>0]|0)+-65+(144946+(t*58|0))>>0]|0;r=q&255;if((r+-1|0)>>>0<8){t=r;n=v}else break}if(!(q<<24>>24)){j=-1;break}s=(u|0)>-1;do if(q<<24>>24==19)if(s){j=-1;break a}else w=49;else{if(s){c[i+(u<<2)>>2]=r;s=g+(u<<3)|0;u=c[s+4>>2]|0;w=E;c[w>>2]=c[s>>2];c[w+4>>2]=u;w=49;break}if(!x){j=0;break a}r2(E,r,f)}while(0);if((w|0)==49?(w=0,!x):0){k=0;e=v;continue}n=a[n>>0]|0;n=(t|0)!=0&(n&15|0)==3?n&-33:n;s=o&-65537;u=(o&8192|0)==0?o:s;e:do switch(n|0){case 110:switch((t&255)<<24>>24){case 0:{c[c[E>>2]>>2]=j;k=0;e=v;continue a}case 1:{c[c[E>>2]>>2]=j;k=0;e=v;continue a}case 2:{k=c[E>>2]|0;c[k>>2]=j;c[k+4>>2]=((j|0)<0)<<31>>31;k=0;e=v;continue a}case 3:{b[c[E>>2]>>1]=j;k=0;e=v;continue a}case 4:{a[c[E>>2]>>0]=j;k=0;e=v;continue a}case 6:{c[c[E>>2]>>2]=j;k=0;e=v;continue a}case 7:{k=c[E>>2]|0;c[k>>2]=j;c[k+4>>2]=((j|0)<0)<<31>>31;k=0;e=v;continue a}default:{k=0;e=v;continue a}}case 112:{n=120;m=m>>>0>8?m:8;e=u|8;w=61;break}case 88:case 120:{e=u;w=61;break}case 111:{n=E;e=c[n>>2]|0;n=c[n+4>>2]|0;r=t2(e,n,y)|0;s=z-r|0;o=0;q=145410;m=(u&8|0)==0|(m|0)>(s|0)?m:s+1|0;s=u;w=67;break}case 105:case 100:{n=E;e=c[n>>2]|0;n=c[n+4>>2]|0;if((n|0)<0){e=t6(0,0,e|0,n|0)|0;n=D;o=E;c[o>>2]=e;c[o+4>>2]=n;o=1;q=145410;w=66;break e}else{o=(u&2049|0)!=0&1;q=(u&2048|0)==0?((u&1|0)==0?145410:145412):145411;w=66;break e}}case 117:{n=E;o=0;q=145410;e=c[n>>2]|0;n=c[n+4>>2]|0;w=66;break}case 99:{a[A>>0]=c[E>>2];e=A;o=0;q=145410;r=y;n=1;m=s;break}case 109:{n=v2(c[(L1()|0)>>2]|0)|0;w=71;break}case 115:{n=c[E>>2]|0;n=n|0?n:145420;w=71;break}case 67:{c[F>>2]=c[E>>2];c[B>>2]=0;c[E>>2]=F;r=-1;n=F;w=75;break}case 83:{e=c[E>>2]|0;if(!m){x2(d,32,k,0,u);e=0;w=84}else{r=m;n=e;w=75}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{k=z2(d,+h[E>>3],k,m,u,n)|0;e=v;continue a}default:{o=0;q=145410;r=y;n=m;m=u}}while(0);f:do if((w|0)==61){u=E;t=c[u>>2]|0;u=c[u+4>>2]|0;r=s2(t,u,y,n&32)|0;q=(e&8|0)==0|(t|0)==0&(u|0)==0;o=q?0:2;q=q?145410:145410+(n>>4)|0;s=e;e=t;n=u;w=67}else if((w|0)==66){r=u2(e,n,y)|0;s=u;w=67}else if((w|0)==71){w=0;u=w2(n,0,m)|0;t=(u|0)==0;e=n;o=0;q=145410;r=t?n+m|0:u;n=t?m:u-n|0;m=s}else if((w|0)==75){w=0;q=n;e=0;m=0;while(1){o=c[q>>2]|0;if(!o)break;m=y2(G,o)|0;if((m|0)<0|m>>>0>(r-e|0)>>>0)break;e=m+e|0;if(r>>>0>e>>>0)q=q+4|0;else break}if((m|0)<0){j=-1;break a}x2(d,32,k,e,u);if(!e){e=0;w=84}else{o=0;while(1){m=c[n>>2]|0;if(!m){w=84;break f}m=y2(G,m)|0;o=m+o|0;if((o|0)>(e|0)){w=84;break f}p2(d,G,m);if(o>>>0>=e>>>0){w=84;break}else n=n+4|0}}}while(0);if((w|0)==67){w=0;n=(e|0)!=0|(n|0)!=0;u=(m|0)!=0|n;n=((n^1)&1)+(z-r)|0;e=u?r:y;r=y;n=u?((m|0)>(n|0)?m:n):m;m=(m|0)>-1?s&-65537:s}else if((w|0)==84){w=0;x2(d,32,k,e,u^8192);k=(k|0)>(e|0)?k:e;e=v;continue}t=r-e|0;s=(n|0)<(t|0)?t:n;u=s+o|0;k=(k|0)<(u|0)?u:k;x2(d,32,k,u,m);p2(d,q,o);x2(d,48,k,u,m^65536);x2(d,48,s,t,0);p2(d,e,t);x2(d,32,k,u,m^8192);e=v}g:do if((w|0)==87)if(!d)if(!p)j=0;else{j=1;while(1){e=c[i+(j<<2)>>2]|0;if(!e)break;r2(g+(j<<3)|0,e,f);j=j+1|0;if((j|0)>=10){j=1;break g}}while(1){if(c[i+(j<<2)>>2]|0){j=-1;break g}j=j+1|0;if((j|0)>=10){j=1;break}}}while(0);l=H;return j|0}function n2(a){a=a|0;return 0}function o2(a){a=a|0;return}function p2(a,b,d){a=a|0;b=b|0;d=d|0;if(!(c[a>>2]&32))L2(b,d,a)|0;return}function q2(b){b=b|0;var d=0,e=0,f=0;e=c[b>>2]|0;f=(a[e>>0]|0)+-48|0;if(f>>>0<10){d=0;do{d=f+(d*10|0)|0;e=e+1|0;c[b>>2]=e;f=(a[e>>0]|0)+-48|0}while(f>>>0<10)}else d=0;return d|0}function r2(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=b;break a}case 10:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=((b|0)<0)<<31>>31;break a}case 11:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=0;break a}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);b=e;f=c[b>>2]|0;b=c[b+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=f;c[e+4>>2]=b;break a}case 13:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&65535)<<16>>16;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 14:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e&65535;c[f+4>>2]=0;break a}case 15:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&255)<<24>>24;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 16:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e&255;c[f+4>>2]=0;break a}case 17:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}case 18:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}default:break a}while(0);while(0);return}function s2(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;if(!((b|0)==0&(c|0)==0))do{e=e+-1|0;a[e>>0]=d[145458+(b&15)>>0]|0|f;b=z6(b|0,c|0,4)|0;c=D}while(!((b|0)==0&(c|0)==0));return e|0}function t2(b,c,d){b=b|0;c=c|0;d=d|0;if(!((b|0)==0&(c|0)==0))do{d=d+-1|0;a[d>>0]=b&7|48;b=z6(b|0,c|0,3)|0;c=D}while(!((b|0)==0&(c|0)==0));return d|0}function u2(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295){while(1){e=J6(b|0,c|0,10,0)|0;d=d+-1|0;a[d>>0]=e&255|48;e=b;b=E6(b|0,c|0,10,0)|0;if(!(c>>>0>9|(c|0)==9&e>>>0>4294967295))break;else c=D}c=b}else c=b;if(c)while(1){d=d+-1|0;a[d>>0]=(c>>>0)%10|0|48;if(c>>>0<10)break;else c=(c>>>0)/10|0}return d|0}function v2(a){a=a|0;return G2(a,c[(F2()|0)+188>>2]|0)|0}function w2(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=d&255;f=(e|0)!=0;a:do if(f&(b&3|0)!=0){g=d&255;while(1){if((a[b>>0]|0)==g<<24>>24){i=6;break a}b=b+1|0;e=e+-1|0;f=(e|0)!=0;if(!(f&(b&3|0)!=0)){i=5;break}}}else i=5;while(0);if((i|0)==5)if(f)i=6;else e=0;b:do if((i|0)==6){g=d&255;if((a[b>>0]|0)!=g<<24>>24){f=S(h,16843009)|0;c:do if(e>>>0>3)while(1){h=c[b>>2]^f;if((h&-2139062144^-2139062144)&h+-16843009|0)break;b=b+4|0;e=e+-4|0;if(e>>>0<=3){i=11;break c}}else i=11;while(0);if((i|0)==11)if(!e){e=0;break}while(1){if((a[b>>0]|0)==g<<24>>24)break b;b=b+1|0;e=e+-1|0;if(!e){e=0;break}}}}while(0);return (e|0?b:0)|0}function x2(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=l;l=l+256|0;f=g;if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;u6(f|0,b|0,(e>>>0<256?e:256)|0)|0;if(e>>>0>255){b=c-d|0;do{p2(a,f,256);e=e+-256|0}while(e>>>0>255);e=b&255}p2(a,f,e)}l=g;return}function y2(a,b){a=a|0;b=b|0;if(!a)a=0;else a=D2(a,b,0)|0;return a|0}function z2(b,e,f,g,h,i){b=b|0;e=+e;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0;H=l;l=l+560|0;m=H+8|0;u=H;G=H+524|0;F=G;n=H+512|0;c[u>>2]=0;E=n+12|0;A2(e)|0;if((D|0)<0){e=-e;B=1;A=145427}else{B=(h&2049|0)!=0&1;A=(h&2048|0)==0?((h&1|0)==0?145428:145433):145430}A2(e)|0;C=D&2146435072;do if(C>>>0<2146435072|(C|0)==2146435072&0<0){r=+B2(e,u)*2.0;j=r!=0.0;if(j)c[u>>2]=(c[u>>2]|0)+-1;w=i|32;if((w|0)==97){s=i&32;q=(s|0)==0?A:A+9|0;p=B|2;j=12-g|0;do if(!(g>>>0>11|(j|0)==0)){e=8.0;do{j=j+-1|0;e=e*16.0}while((j|0)!=0);if((a[q>>0]|0)==45){e=-(e+(-r-e));break}else{e=r+e-e;break}}else e=r;while(0);k=c[u>>2]|0;j=(k|0)<0?0-k|0:k;j=u2(j,((j|0)<0)<<31>>31,E)|0;if((j|0)==(E|0)){j=n+11|0;a[j>>0]=48}a[j+-1>>0]=(k>>31&2)+43;o=j+-2|0;a[o>>0]=i+15;n=(g|0)<1;m=(h&8|0)==0;j=G;do{C=~~e;k=j+1|0;a[j>>0]=d[145458+C>>0]|s;e=(e-+(C|0))*16.0;if((k-F|0)==1?!(m&(n&e==0.0)):0){a[k>>0]=46;j=j+2|0}else j=k}while(e!=0.0);C=j-F|0;F=E-o|0;E=(g|0)!=0&(C+-2|0)<(g|0)?g+2|0:C;j=F+p+E|0;x2(b,32,f,j,h);p2(b,q,p);x2(b,48,f,j,h^65536);p2(b,G,C);x2(b,48,E-C|0,0,0);p2(b,o,F);x2(b,32,f,j,h^8192);break}k=(g|0)<0?6:g;if(j){j=(c[u>>2]|0)+-28|0;c[u>>2]=j;e=r*268435456.0}else{e=r;j=c[u>>2]|0}C=(j|0)<0?m:m+288|0;m=C;do{y=~~e>>>0;c[m>>2]=y;m=m+4|0;e=(e-+(y>>>0))*1.0e9}while(e!=0.0);if((j|0)>0){n=C;p=m;while(1){o=(j|0)<29?j:29;j=p+-4|0;if(j>>>0>=n>>>0){m=0;do{x=v6(c[j>>2]|0,0,o|0)|0;x=w6(x|0,D|0,m|0,0)|0;y=D;v=J6(x|0,y|0,1e9,0)|0;c[j>>2]=v;m=E6(x|0,y|0,1e9,0)|0;j=j+-4|0}while(j>>>0>=n>>>0);if(m){n=n+-4|0;c[n>>2]=m}}m=p;while(1){if(m>>>0<=n>>>0)break;j=m+-4|0;if(!(c[j>>2]|0))m=j;else break}j=(c[u>>2]|0)-o|0;c[u>>2]=j;if((j|0)>0)p=m;else break}}else n=C;if((j|0)<0){g=((k+25|0)/9|0)+1|0;t=(w|0)==102;do{s=0-j|0;s=(s|0)<9?s:9;if(n>>>0<m>>>0){o=(1<<s)+-1|0;p=1e9>>>s;q=0;j=n;do{y=c[j>>2]|0;c[j>>2]=(y>>>s)+q;q=S(y&o,p)|0;j=j+4|0}while(j>>>0<m>>>0);j=(c[n>>2]|0)==0?n+4|0:n;if(!q){n=j;j=m}else{c[m>>2]=q;n=j;j=m+4|0}}else{n=(c[n>>2]|0)==0?n+4|0:n;j=m}m=t?C:n;m=(j-m>>2|0)>(g|0)?m+(g<<2)|0:j;j=(c[u>>2]|0)+s|0;c[u>>2]=j}while((j|0)<0);j=n;g=m}else{j=n;g=m}y=C;if(j>>>0<g>>>0){m=(y-j>>2)*9|0;o=c[j>>2]|0;if(o>>>0>=10){n=10;do{n=n*10|0;m=m+1|0}while(o>>>0>=n>>>0)}}else m=0;t=(w|0)==103;v=(k|0)!=0;n=k-((w|0)!=102?m:0)+((v&t)<<31>>31)|0;if((n|0)<(((g-y>>2)*9|0)+-9|0)){n=n+9216|0;s=C+4+(((n|0)/9|0)+-1024<<2)|0;n=((n|0)%9|0)+1|0;if((n|0)<9){o=10;do{o=o*10|0;n=n+1|0}while((n|0)!=9)}else o=10;p=c[s>>2]|0;q=(p>>>0)%(o>>>0)|0;n=(s+4|0)==(g|0);if(!(n&(q|0)==0)){r=(((p>>>0)/(o>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;x=(o|0)/2|0;e=q>>>0<x>>>0?.5:n&(q|0)==(x|0)?1.0:1.5;if(B){x=(a[A>>0]|0)==45;e=x?-e:e;r=x?-r:r}n=p-q|0;c[s>>2]=n;if(r+e!=r){x=n+o|0;c[s>>2]=x;if(x>>>0>999999999){m=s;while(1){n=m+-4|0;c[m>>2]=0;if(n>>>0<j>>>0){j=j+-4|0;c[j>>2]=0}x=(c[n>>2]|0)+1|0;c[n>>2]=x;if(x>>>0>999999999)m=n;else break}}else n=s;m=(y-j>>2)*9|0;p=c[j>>2]|0;if(p>>>0>=10){o=10;do{o=o*10|0;m=m+1|0}while(p>>>0>=o>>>0)}}else n=s}else n=s;n=n+4|0;n=g>>>0>n>>>0?n:g;x=j}else{n=g;x=j}w=n;while(1){if(w>>>0<=x>>>0){u=0;break}j=w+-4|0;if(!(c[j>>2]|0))w=j;else{u=1;break}}g=0-m|0;do if(t){j=((v^1)&1)+k|0;if((j|0)>(m|0)&(m|0)>-5){o=i+-1|0;k=j+-1-m|0}else{o=i+-2|0;k=j+-1|0}j=h&8;if(!j){if(u?(z=c[w+-4>>2]|0,(z|0)!=0):0)if(!((z>>>0)%10|0)){n=0;j=10;do{j=j*10|0;n=n+1|0}while(!((z>>>0)%(j>>>0)|0|0))}else n=0;else n=9;j=((w-y>>2)*9|0)+-9|0;if((o|32|0)==102){s=j-n|0;s=(s|0)>0?s:0;k=(k|0)<(s|0)?k:s;s=0;break}else{s=j+m-n|0;s=(s|0)>0?s:0;k=(k|0)<(s|0)?k:s;s=0;break}}else s=j}else{o=i;s=h&8}while(0);t=k|s;p=(t|0)!=0&1;q=(o|32|0)==102;if(q){v=0;j=(m|0)>0?m:0}else{j=(m|0)<0?g:m;j=u2(j,((j|0)<0)<<31>>31,E)|0;n=E;if((n-j|0)<2)do{j=j+-1|0;a[j>>0]=48}while((n-j|0)<2);a[j+-1>>0]=(m>>31&2)+43;j=j+-2|0;a[j>>0]=o;v=j;j=n-j|0}j=B+1+k+p+j|0;x2(b,32,f,j,h);p2(b,A,B);x2(b,48,f,j,h^65536);if(q){o=x>>>0>C>>>0?C:x;s=G+9|0;p=s;q=G+8|0;n=o;do{m=u2(c[n>>2]|0,0,s)|0;if((n|0)==(o|0)){if((m|0)==(s|0)){a[q>>0]=48;m=q}}else if(m>>>0>G>>>0){u6(G|0,48,m-F|0)|0;do m=m+-1|0;while(m>>>0>G>>>0)}p2(b,m,p-m|0);n=n+4|0}while(n>>>0<=C>>>0);if(t|0)p2(b,145474,1);if(n>>>0<w>>>0&(k|0)>0)while(1){m=u2(c[n>>2]|0,0,s)|0;if(m>>>0>G>>>0){u6(G|0,48,m-F|0)|0;do m=m+-1|0;while(m>>>0>G>>>0)}p2(b,m,(k|0)<9?k:9);n=n+4|0;m=k+-9|0;if(!(n>>>0<w>>>0&(k|0)>9)){k=m;break}else k=m}x2(b,48,k+9|0,9,0)}else{t=u?w:x+4|0;if((k|0)>-1){u=G+9|0;s=(s|0)==0;g=u;p=0-F|0;q=G+8|0;o=x;do{m=u2(c[o>>2]|0,0,u)|0;if((m|0)==(u|0)){a[q>>0]=48;m=q}do if((o|0)==(x|0)){n=m+1|0;p2(b,m,1);if(s&(k|0)<1){m=n;break}p2(b,145474,1);m=n}else{if(m>>>0<=G>>>0)break;u6(G|0,48,m+p|0)|0;do m=m+-1|0;while(m>>>0>G>>>0)}while(0);F=g-m|0;p2(b,m,(k|0)>(F|0)?F:k);k=k-F|0;o=o+4|0}while(o>>>0<t>>>0&(k|0)>-1)}x2(b,48,k+18|0,18,0);p2(b,v,E-v|0)}x2(b,32,f,j,h^8192)}else{G=(i&32|0)!=0;j=B+3|0;x2(b,32,f,j,h&-65537);p2(b,A,B);p2(b,e!=e|0.0!=0.0?(G?153609:145454):G?145446:145450,3);x2(b,32,f,j,h^8192)}while(0);l=H;return ((j|0)<(f|0)?f:j)|0}function A2(a){a=+a;var b=0;h[j>>3]=a;b=c[j>>2]|0;D=c[j+4>>2]|0;return b|0}function B2(a,b){a=+a;b=b|0;return +(+C2(a,b))}function C2(a,b){a=+a;b=b|0;var d=0,e=0,f=0;h[j>>3]=a;d=c[j>>2]|0;e=c[j+4>>2]|0;f=z6(d|0,e|0,52)|0;switch(f&2047){case 0:{if(a!=0.0){a=+C2(a*18446744073709551616.0,b);d=(c[b>>2]|0)+-64|0}else d=0;c[b>>2]=d;break}case 2047:break;default:{c[b>>2]=(f&2047)+-1022;c[j>>2]=d;c[j+4>>2]=e&-2146435073|1071644672;a=+h[j>>3]}}return +a}function D2(b,d,e){b=b|0;d=d|0;e=e|0;do if(b){if(d>>>0<128){a[b>>0]=d;b=1;break}if(!(c[c[(E2()|0)+188>>2]>>2]|0))if((d&-128|0)==57216){a[b>>0]=d;b=1;break}else{c[(L1()|0)>>2]=84;b=-1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;b=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;b=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;b=4;break}else{c[(L1()|0)>>2]=84;b=-1;break}}else b=1;while(0);return b|0}function E2(){return N1()|0}function F2(){return N1()|0}function G2(b,e){b=b|0;e=e|0;var f=0,g=0;g=0;while(1){if((d[145476+g>>0]|0)==(b|0)){b=2;break}f=g+1|0;if((f|0)==87){f=145564;g=87;b=5;break}else g=f}if((b|0)==2)if(!g)f=145564;else{f=145564;b=5}if((b|0)==5)while(1){do{b=f;f=f+1|0}while((a[b>>0]|0)!=0);g=g+-1|0;if(!g)break;else b=5}return H2(f,c[e+20>>2]|0)|0}function H2(a,b){a=a|0;b=b|0;return I2(a,b)|0}function I2(a,b){a=a|0;b=b|0;if(!b)b=0;else b=J2(c[b>>2]|0,c[b+4>>2]|0,a)|0;return (b|0?b:a)|0}function J2(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=(c[b>>2]|0)+1794895138|0;h=K2(c[b+8>>2]|0,o)|0;f=K2(c[b+12>>2]|0,o)|0;g=K2(c[b+16>>2]|0,o)|0;a:do if((h>>>0<d>>>2>>>0?(n=d-(h<<2)|0,f>>>0<n>>>0&g>>>0<n>>>0):0)?((g|f)&3|0)==0:0){n=f>>>2;m=g>>>2;l=0;while(1){j=h>>>1;k=l+j|0;i=k<<1;g=i+n|0;f=K2(c[b+(g<<2)>>2]|0,o)|0;g=K2(c[b+(g+1<<2)>>2]|0,o)|0;if(!(g>>>0<d>>>0&f>>>0<(d-g|0)>>>0)){f=0;break a}if(a[b+(g+f)>>0]|0){f=0;break a}f=f2(e,b+g|0)|0;if(!f)break;f=(f|0)<0;if((h|0)==1){f=0;break a}else{l=f?l:k;h=f?j:h-j|0}}f=i+m|0;g=K2(c[b+(f<<2)>>2]|0,o)|0;f=K2(c[b+(f+1<<2)>>2]|0,o)|0;if(f>>>0<d>>>0&g>>>0<(d-f|0)>>>0)f=(a[b+(f+g)>>0]|0)==0?b+f|0:0;else f=0}else f=0;while(0);return f|0}function K2(a,b){a=a|0;b=b|0;var c=0;c=K6(a|0)|0;return ((b|0)==0?a:c)|0}function L2(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(M2(e)|0)){g=c[f>>2]|0;h=5}else f=0;else h=5;a:do if((h|0)==5){j=e+20|0;i=c[j>>2]|0;f=i;if((g-i|0)>>>0<d>>>0){f=eb[c[e+36>>2]&63](e,b,d)|0;break}b:do if((a[e+75>>0]|0)>-1){i=d;while(1){if(!i){h=0;g=b;break b}g=i+-1|0;if((a[b+g>>0]|0)==10)break;else i=g}f=eb[c[e+36>>2]&63](e,b,i)|0;if(f>>>0<i>>>0)break a;h=i;g=b+i|0;d=d-i|0;f=c[j>>2]|0}else{h=0;g=b}while(0);B6(f|0,g|0,d|0)|0;c[j>>2]=(c[j>>2]|0)+d;f=h+d|0}while(0);return f|0}function M2(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=c[b>>2]|0;if(!(d&8)){c[b+8>>2]=0;c[b+4>>2]=0;e=c[b+44>>2]|0;c[b+28>>2]=e;c[b+20>>2]=e;c[b+16>>2]=e+(c[b+48>>2]|0);b=0}else{c[b>>2]=d|32;b=-1}return b|0}function N2(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+16>>2]|0)-f|0;a=a>>>0>d>>>0?d:a;B6(f|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return d|0}function O2(a){a=a|0;return ((a+-48|0)>>>0<10|(P2(a)|0)!=0)&1|0}function P2(a){a=a|0;return ((a|32)+-97|0)>>>0<26|0}function Q2(a){a=a|0;return ((a|0)==32|(a|0)==9)&1|0}function R2(a){a=a|0;if(!(S2(a)|0))a=(T2(a)|0)!=0;else a=1;return a&1|0}function S2(a){a=a|0;return (a+-48|0)>>>0<10|0}function T2(a){a=a|0;if(a>>>0<131072)a=(d[147368+((d[147368+(a>>>8)>>0]|0)<<5|a>>>3&31)>>0]|0)>>>(a&7)&1;else a=a>>>0<196606&1;return a|0}function U2(a){a=a|0;return Q2(a)|0}function V2(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 W2(a,b){a=a|0;b=b|0;do switch(b|0){case 1:{a=R2(a)|0;break}case 2:{a=T2(a)|0;break}case 3:{a=U2(a)|0;break}case 4:{a=V2(a)|0;break}case 5:{a=S2(a)|0;break}case 6:{a=X2(a)|0;break}case 7:{a=Y2(a)|0;break}case 8:{a=Z2(a)|0;break}case 9:{a=_2(a)|0;break}case 10:{a=$2(a)|0;break}case 11:{a=a3(a)|0;break}case 12:{a=b3(a)|0;break}default:a=0}while(0);return a|0}function X2(a){a=a|0;if(!($2(a)|0))a=(Z2(a)|0)!=0;else a=0;return a&1|0}function Y2(a){a=a|0;return (g3(a)|0)!=(a|0)|0}function Z2(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 _2(a){a=a|0;if(a>>>0<131072)a=(d[150344+((d[150344+(a>>>8)>>0]|0)<<5|a>>>3&31)>>0]|0)>>>(a&7)&1;else a=0;return a|0}function $2(a){a=a|0;if(!a)a=0;else a=(e3(63616,a)|0)!=0;return a&1|0}function a3(a){a=a|0;return (c3(a)|0)!=(a|0)|0}function b3(a){a=a|0;return ((a+-48|0)>>>0<10|((a|32)+-97|0)>>>0<6)&1|0}function c3(a){a=a|0;return d3(a,1)|0}function d3(c,f){c=c|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=(f<<1)+-1|0;l=f+-1|0;a:do if(!((c+-43008|0)>>>0<22272|((c+-11776|0)>>>0<30784|((c+-1536|0)>>>0<2560|(T2(c)|0)==0)))){g=(f|0)!=0;if(g&(c+-4256|0)>>>0<46){if((c|0)>4293)switch(c|0){case 4295:case 4301:break;default:break a}c=c+7264|0;break}if((c+-11520|0)>>>0<38&(g^1)){c=c+-7264|0;break}else g=0;do{i=a[66618+(g<<2)+2>>0]|0;j=i<<24>>24;h=c-(e[66618+(g<<2)>>1]|0)|0;if((h-(j&l)|0)>>>0<(d[66618+(g<<2)+3>>0]|0)>>>0){m=11;break}g=g+1|0}while((g|0)!=61);if((m|0)==11)if(i<<24>>24==1){c=f+c-(h&1)|0;break}else{c=(S(j,k)|0)+c|0;break}i=1-f|0;g=b[66130+(i<<1)>>1]|0;b:do if(g<<16>>16){h=0;while(1){if((g&65535|0)==(c|0))break;h=h+1|0;g=b[66130+(h<<2)+(i<<1)>>1]|0;if(!(g<<16>>16))break b}c=e[66130+(h<<2)+(f<<1)>>1]|0;break a}while(0);return ((c+-66600+(f*40|0)|0)>>>0<40?c+-40+(f*80|0)|0:c)|0}while(0);return c|0}function e3(a,b){a=a|0;b=b|0;var d=0,e=0;if(!b)a=a+((f3(a)|0)<<2)|0;else{while(1){e=c[a>>2]|0;d=(e|0)!=0;if((e|0)==(b|0)|d^1)break;else a=a+4|0}a=d?a:0}return a|0}function f3(a){a=a|0;var b=0;b=a;while(1)if(!(c[b>>2]|0))break;else b=b+4|0;return b-a>>2|0}function g3(a){a=a|0;return d3(a,0)|0}function h3(b){b=b|0;var c=0,d=0,e=0,f=0;e=a[b>>0]|0;c=1;d=153512;f=97;while(1){if(e<<24>>24==f<<24>>24?(f2(b,d)|0)==0:0)break;d=d+6|0;f=a[d>>0]|0;if(!(f<<24>>24)){c=0;break}else c=c+1|0}return c|0}function i3(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=l;l=l+48|0;f=g+40|0;e=g+8|0;d=g;c[d>>2]=a;c[d+4>>2]=b;d=Ha(197,d|0)|0;if((d|0)==-9?(c[e>>2]=a,c[e+4>>2]=1,(ua(221,e|0)|0)>=0):0){j3(e,a);c[f>>2]=e;c[f+4>>2]=b;b=K1(Ja(195,f|0)|0)|0}else b=K1(d)|0;l=g;return b|0}function j3(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;d=b;e=153585;f=d+15|0;do{a[d>>0]=a[e>>0]|0;d=d+1|0;e=e+1|0}while((d|0)<(f|0));if(!c){a[b+14>>0]=48;a[b+15>>0]=0}else{e=c;d=14;while(1){d=d+1|0;if(e>>>0<10)break;else e=(e>>>0)/10|0}a[b+d>>0]=0;while(1){d=d+-1|0;a[b+d>>0]=(c>>>0)%10|0|48;if(c>>>0<10)break;else c=(c>>>0)/10|0}}return}function k3(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+208|0;j=m+8|0;k=m;h=S(d,b)|0;i=k;c[i>>2]=1;c[i+4>>2]=0;a:do if(h|0){i=0-d|0;c[j+4>>2]=d;c[j>>2]=d;f=2;b=d;g=d;while(1){b=b+d+g|0;c[j+(f<<2)>>2]=b;if(b>>>0<h>>>0){n=g;f=f+1|0;g=b;b=n}else break}g=a+h+i|0;if(g>>>0>a>>>0){h=g;f=1;b=1;do{do if((b&3|0)!=3){b=f+-1|0;if((c[j+(b<<2)>>2]|0)>>>0<(h-a|0)>>>0)l3(a,d,e,f,j);else n3(a,d,e,k,f,0,j);if((f|0)==1){o3(k,1);f=0;break}else{o3(k,b);f=1;break}}else{l3(a,d,e,f,j);m3(k,2);f=f+2|0}while(0);b=c[k>>2]|1;c[k>>2]=b;a=a+d|0}while(a>>>0<g>>>0)}else{f=1;b=1}n3(a,d,e,k,f,0,j);g=k+4|0;while(1){if((f|0)==1&(b|0)==1){if(!(c[g>>2]|0))break a}else if((f|0)>=2){o3(k,2);n=f+-2|0;c[k>>2]=c[k>>2]^7;m3(k,1);n3(a+(0-(c[j+(n<<2)>>2]|0))+i|0,d,e,k,f+-1|0,1,j);o3(k,1);b=c[k>>2]|1;c[k>>2]=b;h=a+i|0;n3(h,d,e,k,n,1,j);a=h;f=n;continue}b=p3(k)|0;m3(k,b);a=a+i|0;f=b+f|0;b=c[k>>2]|0}}while(0);l=m;return}function l3(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+240|0;m=n;c[m>>2]=a;a:do if((e|0)>1){k=0-b|0;g=a;j=e;e=1;while(1){h=g+k|0;i=j+-2|0;g=h+(0-(c[f+(i<<2)>>2]|0))|0;if((vb[d&127](a,g)|0)>-1?(vb[d&127](a,h)|0)>-1:0)break a;a=e+1|0;e=m+(e<<2)|0;if((vb[d&127](g,h)|0)>-1){c[e>>2]=g;e=j+-1|0}else{c[e>>2]=h;g=h;e=i}if((e|0)<=1){e=a;break a}j=e;e=a;a=c[m>>2]|0}}else e=1;while(0);r3(b,m,e);l=n;return}function m3(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+4|0;if(b>>>0>31){e=c[f>>2]|0;c[a>>2]=e;c[f>>2]=0;b=b+-32|0;d=0}else{d=c[f>>2]|0;e=c[a>>2]|0}c[a>>2]=d<<32-b|e>>>b;c[f>>2]=d>>>b;return}function n3(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;p=l;l=l+240|0;n=p+232|0;o=p;q=c[e>>2]|0;c[n>>2]=q;j=c[e+4>>2]|0;k=n+4|0;c[k>>2]=j;c[o>>2]=a;a:do if((q|0)!=1|(j|0)!=0?(m=0-b|0,i=a+(0-(c[h+(f<<2)>>2]|0))|0,(vb[d&127](i,a)|0)>=1):0){e=1;g=(g|0)==0;j=i;while(1){if(g&(f|0)>1){g=a+m|0;i=c[h+(f+-2<<2)>>2]|0;if((vb[d&127](g,j)|0)>-1){i=10;break a}if((vb[d&127](g+(0-i)|0,j)|0)>-1){i=10;break a}}g=e+1|0;c[o+(e<<2)>>2]=j;q=p3(n)|0;m3(n,q);f=q+f|0;if(!((c[n>>2]|0)!=1|(c[k>>2]|0)!=0)){e=g;a=j;i=10;break a}a=j+(0-(c[h+(f<<2)>>2]|0))|0;if((vb[d&127](a,c[o>>2]|0)|0)<1){a=j;e=g;g=0;i=9;break}else{q=j;e=g;g=1;j=a;a=q}}}else{e=1;i=9}while(0);if((i|0)==9?(g|0)==0:0)i=10;if((i|0)==10){r3(b,o,e);l3(a,b,d,f,h)}l=p;return}function o3(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+4|0;if(b>>>0>31){e=c[a>>2]|0;c[f>>2]=e;c[a>>2]=0;b=b+-32|0;d=0}else{d=c[a>>2]|0;e=c[f>>2]|0}c[f>>2]=d>>>(32-b|0)|e<<b;c[a>>2]=d<<b;return}function p3(a){a=a|0;var b=0;b=q3((c[a>>2]|0)+-1|0)|0;if(!b){b=q3(c[a+4>>2]|0)|0;return ((b|0)==0?0:b+32|0)|0}else return b|0;return 0}function q3(a){a=a|0;var b=0;if(a)if(!(a&1)){b=a;a=0;do{a=a+1|0;b=b>>>1}while(!(b&1|0))}else a=0;else a=32;return a|0}
function yb(a){a=a|0;var b=0;b=l;l=l+a|0;l=l+15&-16;return b|0}function zb(){return l|0}function Ab(a){a=a|0;l=a}function Bb(a,b){a=a|0;b=b|0;l=a;m=b}function Cb(a,b){a=a|0;b=b|0;if(!o){o=a;p=b}}function Db(a){a=a|0;D=a}function Eb(){return D|0}function Fb(a){a=a|0;c[46696]=a;return 0}function Gb(){return c[46696]|0}function Hb(a,b){a=a|0;b=b|0;Sa(0,a|0,b|0)|0;return}function Ib(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;f=i+4|0;g=i;c[f>>2]=0;h=kG()|0;pG(h,11016);pG(h,17260);pG(h,17480);cA(1)|0;bA(18)|0;while(1){a=WB(a)|0;e=c[f>>2]|0;if(!a)break;if(e|0){a=195341;continue}lG(h,a,d)|0;oG(h,a,b,f,g)|0;a=195341}l=i;return e|0}function Jb(a){a=a|0;var d=0,e=0,f=0,g=0;g=l;l=l+16|0;d=g+4|0;e=g;f=c[(c[a+16>>2]|0)+8>>2]|0;a=a+64|0;switch(c[a>>2]|0){case 0:{HL(f);break}case 1:{if(b[(c[f+16>>2]|0)+136>>1]&1)SP(f);break}case 4:case 5:case 6:{EL(f,e,d);Mb(f,c[e>>2]|0,c[d>>2]|0,c[a>>2]|0);break}default:{}}l=g;return}function Kb(a){a=a|0;var b=0,d=0,e=0,f=0;e=c[(c[a+16>>2]|0)+8>>2]|0;if(!(c[46697]|0)){c[46697]=c[4689];c[46698]=57;c[46699]=19}f=e+64|0;d=(c[f>>2]|0)+8|0;b=c[d>>2]|0;c[d>>2]=186788;d=a+152|0;switch(c[a+64>>2]|0){case 2:{uL(a,e,a,0);break}case 3:{uL(a,e,a,1);break}case 1:case 0:{if(!(c[d>>2]&134217728))bE(e,a)|0;break}case 6:case 5:case 4:{Lb(e);if(!(c[d>>2]&134217728))bE(e,a)|0;break}default:{}}c[(c[f>>2]|0)+8>>2]=b;return}function Lb(b){b=b|0;var d=0,e=0;d=c[46701]|0;if((d|0)!=(c[46700]|0)){e=c[c[46732]>>2]|0;if(!e){e=YP(b,0,100109,195341)|0;c[c[46732]>>2]=e;d=c[46701]|0}if(d>>>0>=(c[46702]|0)>>>0){iA(186800,1)|0;d=c[46701]|0}a[d>>0]=0;d=c[46700]|0;c[46701]=d;HA(b,e,d)|0}if(c[(c[b+16>>2]|0)+12>>2]|0){e=c[(c[46732]|0)+4>>2]|0;d=c[46717]|0;if(d>>>0>=(c[46718]|0)>>>0){iA(186864,1)|0;d=c[46717]|0}a[d>>0]=0;d=c[46716]|0;c[46717]=d;HA(b,e,d)|0}QA(b,67025,c[(c[46732]|0)+8236>>2]|0,195341)|0;d=0;while(1){if((d|0)==8)break;lA(186800+(d<<4)|0);d=d+1|0}l6(c[46732]|0);h[1]=1.0;h[5]=1.0;c[46733]=0;c[46737]=0;return}function Mb(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;j=k6(8240)|0;c[46732]=j;h=j+8232|0;a:do switch(g|0){case 6:{b[h>>1]=14;g=67041;h=j;break}case 5:{b[h>>1]=12;g=67045;h=j;break}default:{g=NA(d,67025)|0;if((g|0?a[g>>0]|0:0)?(i=Nb(g)|0,(i&65535)>10):0){h=c[46732]|0;b[h+8232>>1]=i;break a}g=Nb(67037)|0;h=c[46732]|0;b[h+8232>>1]=g;g=67037}}while(0);c[h+8236>>2]=g;j=d+16|0;g=c[j>>2]|0;if(!(c[g+180>>2]|0))i=0;else{i=YP(d,0,100109,195341)|0;h=c[46732]|0;g=c[j>>2]|0}c[h>>2]=i;if(!(a[g+113>>0]&8))g=0;else g=YP(d,0,67049,195341)|0;c[(c[46732]|0)+4>>2]=g;i=YP(d,1,100109,195341)|0;c[(c[46732]|0)+8>>2]=i;i=YP(d,1,67049,195341)|0;c[(c[46732]|0)+12>>2]=i;i=YP(d,2,100109,195341)|0;g=c[46732]|0;c[g+16>>2]=i;if(!f)h=0;else{h=YP(d,2,67057,195341)|0;g=c[46732]|0}c[g+20>>2]=h;if(!e)h=0;else{h=YP(d,2,67065,195341)|0;g=c[46732]|0}c[g+24>>2]=h;h=a[(c[j>>2]|0)+113>>0]|0;if(!(h&33))i=0;else{i=YP(d,2,67049,195341)|0;g=c[46732]|0;h=a[(c[j>>2]|0)+113>>0]|0}c[g+28>>2]=i;if(!(h&2))i=0;else{i=YP(d,2,67073,195341)|0;g=c[46732]|0;h=a[(c[j>>2]|0)+113>>0]|0}c[g+32>>2]=i;if(!(h&4))h=0;else{h=YP(d,2,67082,195341)|0;g=c[46732]|0}c[g+36>>2]=h;g=0;while(1){if((g|0)==8)break;hA(186800+(g<<4)|0,1024,(c[46732]|0)+40+(g<<10)|0);g=g+1|0}return}function Nb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+1040|0;h=j;i=j+8|0;g=0;d=b;a:while(1){e=d;do{f=e;e=e+1|0;f=a[f>>0]|0;if(!(f<<24>>24)){e=8;break a}}while(((f<<24>>24)+-48|0)>>>0>=10);d=i+g|0;if((g|0)>=1023){e=7;break}a[d>>0]=f;g=g+1|0;d=e}if((e|0)==7){c[h>>2]=b;dA(0,67091,h)|0}else if((e|0)==8)d=i+g|0;a[d>>0]=0;i=(d6(i)|0)&65535;l=j;return i|0}function Ob(b){b=b|0;var d=0,e=0;e=c[(c[b+16>>2]|0)+8>>2]|0;d=c[c[46732]>>2]|0;b=c[46705]|0;if(b>>>0>=(c[46706]|0)>>>0){iA(186816,1)|0;b=c[46705]|0}a[b>>0]=0;b=c[46704]|0;c[46705]=b;HA(e,d,b)|0;if(c[(c[e+16>>2]|0)+12>>2]|0){d=c[(c[46732]|0)+4>>2]|0;b=c[46721]|0;if(b>>>0>=(c[46722]|0)>>>0){iA(186880,1)|0;b=c[46721]|0}a[b>>0]=0;b=c[46720]|0;c[46721]=b;HA(e,d,b)|0}h[2]=1.0;h[6]=1.0;c[46734]=0;c[46738]=0;return}function Pb(b){b=b|0;var d=0,e=0;e=c[(c[b+16>>2]|0)+8>>2]|0;b=c[46705]|0;if((b|0)!=(c[46704]|0)){d=c[(c[46732]|0)+8>>2]|0;if(b>>>0>=(c[46706]|0)>>>0){iA(186816,1)|0;b=c[46705]|0}a[b>>0]=0;b=c[46704]|0;c[46705]=b;HA(e,d,b)|0}b=c[46721]|0;if((b|0)!=(c[46720]|0)){d=c[(c[46732]|0)+12>>2]|0;if(b>>>0>=(c[46722]|0)>>>0){iA(186880,1)|0;b=c[46721]|0}a[b>>0]=0;b=c[46720]|0;c[46721]=b;HA(e,d,b)|0}h[9]=1.0;h[11]=1.0;c[46741]=0;c[46743]=0;return}function Qb(b){b=b|0;var d=0,e=0;e=c[(c[b+16>>2]|0)+8>>2]|0;b=c[46705]|0;if((b|0)!=(c[46704]|0)){d=c[(c[46732]|0)+16>>2]|0;if(b>>>0>=(c[46706]|0)>>>0){iA(186816,1)|0;b=c[46705]|0}a[b>>0]=0;b=c[46704]|0;c[46705]=b;HA(e,d,b)|0}b=c[46709]|0;if((b|0)!=(c[46708]|0)){d=c[(c[46732]|0)+24>>2]|0;if(b>>>0>=(c[46710]|0)>>>0){iA(186832,1)|0;b=c[46709]|0}a[b>>0]=0;b=c[46708]|0;c[46709]=b;HA(e,d,b)|0}b=c[46713]|0;if((b|0)!=(c[46712]|0)){d=c[(c[46732]|0)+20>>2]|0;if(b>>>0>=(c[46714]|0)>>>0){iA(186848,1)|0;b=c[46713]|0}a[b>>0]=0;b=c[46712]|0;c[46713]=b;HA(e,d,b)|0}b=c[46721]|0;if((b|0)!=(c[46720]|0)){d=c[(c[46732]|0)+28>>2]|0;if(b>>>0>=(c[46722]|0)>>>0){iA(186880,1)|0;b=c[46721]|0}a[b>>0]=0;b=c[46720]|0;c[46721]=b;HA(e,d,b)|0}b=c[46725]|0;if((b|0)!=(c[46724]|0)){d=c[(c[46732]|0)+36>>2]|0;if(b>>>0>=(c[46726]|0)>>>0){iA(186896,1)|0;b=c[46725]|0}a[b>>0]=0;b=c[46724]|0;c[46725]=b;HA(e,d,b)|0}b=c[46729]|0;if((b|0)!=(c[46728]|0)){d=c[(c[46732]|0)+32>>2]|0;if(b>>>0>=(c[46730]|0)>>>0){iA(186912,1)|0;b=c[46729]|0}a[b>>0]=0;b=c[46728]|0;c[46729]=b;HA(e,d,b)|0}h[10]=1.0;h[12]=1.0;h[3]=1.0;h[4]=1.0;h[7]=1.0;h[8]=1.0;c[46742]=0;c[46744]=0;c[46735]=0;c[46736]=0;c[46739]=0;c[46740]=0;return}function Rb(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+1056|0;j=t+16|0;s=t+8|0;r=t;k=t+32|0;o=c[(c[d+16>>2]|0)+12>>2]|0;p=c[11456+(o<<2)>>2]|0;kA(p,67188)|0;g=f+4|0;_b(k,+h[(c[g>>2]|0)+16>>3]);kA(p,k)|0;bc(d,195341,c[c[g>>2]>>2]|0);Xb(d);q=a[f+48>>0]|0;q=q<<24>>24==108?-1:q<<24>>24==114&1;g=c[g>>2]|0;if(!g)g=0;else g=c[g+24>>2]&127;i=b[(c[46732]|0)+8232>>1]|0;if((i&65535)>14?(m=c[11504+((i&65535)+-15<<2)>>2]&g,n=186932+(o<<2)|0,(c[n>>2]|0)!=(m|0)):0){c[r>>2]=m;i2(k,67191,r)|0;kA(p,k)|0;c[n>>2]=m}r=e+8|0;h[r>>3]=+h[f+24>>3]+ +h[r>>3];kA(p,67197)|0;c[j>>2]=c[e>>2];c[j+4>>2]=c[e+4>>2];c[j+8>>2]=c[e+8>>2];c[j+12>>2]=c[e+12>>2];Zb(p,j);c[s>>2]=q;i2(k,102521,s)|0;kA(p,k)|0;_b(k,+h[f+32>>3]);kA(p,k)|0;bc(d,195341,c[f>>2]|0);l=t;return}function Sb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0;i=l;l=l+1040|0;f=i;g=i+16|0;e=c[(c[a+16>>2]|0)+12>>2]|0;Wb(a);Xb(a);e=11456+(e<<2)|0;if(!d){a=c[e>>2]|0;kA(a,67185)|0}else{if((d|1|0)==3)dc(a,d,b,2);else ec(a);a=c[e>>2]|0;kA(a,67182)|0};c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];Zb(a,f);_b(g,+h[b+16>>3]-+h[b>>3]);kA(a,g)|0;_b(g,+h[b+24>>3]-+h[b+8>>3]);kA(a,g)|0;l=i;return}function Tb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Wb(a);Xb(a);if(!d)Yb(a,112,b,c);else{if((d|1|0)==3)dc(a,d,b,c);else ec(a);Yb(a,80,b,c)}return}function Ub(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Wb(a);Xb(a);if(!f)Yb(a,66,b,c);else{if((f|1|0)==3)dc(a,f,b,c);else ec(a);Yb(a,98,b,c)}return}function Vb(a,b,c){a=a|0;b=b|0;c=c|0;Wb(a);Xb(a);Yb(a,76,b,c);return}function Wb(b){b=b|0;var d=0,e=0,f=0,g=0.0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+1184|0;i=n;f=n+24|0;m=n+8|0;hA(m,1024,n+152|0);j=b+16|0;d=c[j>>2]|0;g=+h[d+152>>3];e=8+(c[d+12>>2]<<3)|0;if(g!=+h[e>>3]){h[e>>3]=g;kA(m,67154)|0;h[i>>3]=+h[(c[j>>2]|0)+152>>3];i2(f,67168,i)|0;$b(f,0);kA(m,f)|0;f=m+4|0;d=c[f>>2]|0;e=m+8|0;if(d>>>0>=(c[e>>2]|0)>>>0){iA(m,1)|0;d=c[f>>2]|0}c[f>>2]=d+1;a[d>>0]=41;d=c[f>>2]|0;if(d>>>0>=(c[e>>2]|0)>>>0){iA(m,1)|0;d=c[f>>2]|0}a[d>>0]=0;d=c[m>>2]|0;c[f>>2]=d;bc(b,67173,d);d=c[j>>2]|0}d=c[d+160>>2]|0;if(d|0){j=m+4|0;k=m+8|0;a:while(1){i=d+4|0;d=c[d>>2]|0;if(!d)break;switch(a[d>>0]|0){case 102:{if(!(f2(d,111402)|0)){d=i;continue a}break}case 98:{if(!(f2(d,111384)|0)){d=i;continue a}break}case 115:{if(!(f2(d,111389)|0)){d=i;continue a}break}default:{}}kA(m,d)|0;do{f=d;d=d+1|0}while((a[f>>0]|0)!=0);if(a[d>>0]|0){e=c[j>>2]|0;if(e>>>0>=(c[k>>2]|0)>>>0){iA(m,1)|0;e=c[j>>2]|0}c[j>>2]=e+1;a[e>>0]=40;f=0;while(1){if(!(a[d>>0]|0))break;if(f|0){e=c[j>>2]|0;if(e>>>0>=(c[k>>2]|0)>>>0){iA(m,1)|0;e=c[j>>2]|0}c[j>>2]=e+1;a[e>>0]=44}kA(m,d)|0;do{e=d;d=d+1|0}while((a[e>>0]|0)!=0);f=f+1|0}d=c[j>>2]|0;if(d>>>0>=(c[k>>2]|0)>>>0){iA(m,1)|0;d=c[j>>2]|0}c[j>>2]=d+1;a[d>>0]=41}d=c[j>>2]|0;if(d>>>0>=(c[k>>2]|0)>>>0){iA(m,1)|0;d=c[j>>2]|0}a[d>>0]=0;d=c[m>>2]|0;c[j>>2]=d;bc(b,67173,d);d=i}lA(m)}l=n;return}function Xb(a){a=a|0;ac((c[a+16>>2]|0)+16|0);bc(a,76106,194038);return}function Yb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;k=l;l=l+1040|0;j=k;i=k+16|0;h=c[11456+(c[(c[b+16>>2]|0)+12>>2]<<2)>>2]|0;g=h+4|0;b=c[g>>2]|0;if(b>>>0>=(c[h+8>>2]|0)>>>0){iA(h,1)|0;b=c[g>>2]|0}c[g>>2]=b+1;a[b>>0]=d;c[j>>2]=f;i2(i,67118,j)|0;kA(h,i)|0;b=0;while(1){if((b|0)>=(f|0))break;i=e+(b<<4)|0;c[j>>2]=c[i>>2];c[j+4>>2]=c[i+4>>2];c[j+8>>2]=c[i+8>>2];c[j+12>>2]=c[i+12>>2];Zb(h,j);b=b+1|0}l=k;return}function Zb(a,b){a=a|0;b=b|0;var c=0,d=0;c=l;l=l+1024|0;d=c;_b(d,+h[b>>3]);kA(a,d)|0;_b(d,+tL(+h[b+8>>3]));kA(a,d)|0;l=c;return}function _b(a,b){a=a|0;b=+b;var c=0,d=0;c=l;l=l+16|0;d=c;h[d>>3]=b>-1.0e-08&b<1.0e-08?0.0:b;i2(a,67123,d)|0;$b(a,1);l=c;return}function $b(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;d=F3(b,46)|0;e=(c|0)!=0;if(!d){if(e){d=b+(D3(b)|0)|0;f=10}}else{while(1){c=d+1|0;if(!(a[c>>0]|0))break;else d=c}a:while(1){switch(a[d>>0]|0){case 46:{f=5;break a}case 48:break;default:{f=6;break a}}a[d>>0]=0;d=d+-1|0}if((f|0)==5)a[d>>0]=0;else if((f|0)==6)d=d+1|0;if(e)f=10}if((f|0)==10){a[d>>0]=32;a[d+1>>0]=0}return}function ac(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+32|0;i=j+16|0;h=j;e=a[b+3>>0]|0;f=d[b>>0]|0;g=d[b+1>>0]|0;b=d[b+2>>0]|0;if(e<<24>>24==-1){c[h>>2]=f;c[h+4>>2]=g;c[h+8>>2]=b;i2(194038,75986,h)|0}else{c[i>>2]=f;c[i+4>>2]=g;c[i+8>>2]=b;c[i+12>>2]=e&255;i2(194038,67136,i)|0}l=j;return}function bc(a,b,d){a=a|0;b=b|0;d=d|0;cc(c[11456+(c[(c[a+16>>2]|0)+12>>2]<<2)>>2]|0,b,d);return}function cc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=l;l=l+1040|0;h=f;g=f+8|0;i=D3(e)|0;c[h>>2]=d;c[h+4>>2]=i;i2(g,67129,h)|0;kA(b,g)|0;kA(b,e)|0;e=b+4|0;d=c[e>>2]|0;if(d>>>0>=(c[b+8>>2]|0)>>>0){iA(b,1)|0;d=c[e>>2]|0}c[e>>2]=d+1;a[d>>0]=32;l=f;return}function dc(b,d,f,i){b=b|0;d=d|0;f=f|0;i=i|0;var j=0.0,k=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=l;l=l+1120|0;s=w+64|0;v=w+80|0;k=w+32|0;q=w+16|0;r=w;t=c[b+16>>2]|0;j=+(c[t+136>>2]|0)*3.141592653589793/180.0;if((e[(c[46732]|0)+8232>>1]|0)<14)ec(b);else{hA(v,1024,w+96|0);u=(d|0)==2;if(u){nQ(f,k,i,j,2);f=v+4|0;d=c[f>>2]|0;if(d>>>0>=(c[v+8>>2]|0)>>>0){iA(v,1)|0;d=c[f>>2]|0}c[f>>2]=d+1;a[d>>0]=91;c[s>>2]=c[k>>2];c[s+4>>2]=c[k+4>>2];c[s+8>>2]=c[k+8>>2];c[s+12>>2]=c[k+12>>2];Zb(v,s);r=k+16|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];Zb(v,s)}else{nQ(f,k,i,0.0,3);p=+h[k+24>>3];n=+h[k>>3];m=+h[k+8>>3];o=p*.25;if(j==0.0){h[q>>3]=n;j=m}else{h[q>>3]=n+o*+I(+j);j=m+o*+J(+j)}h[q+8>>3]=j;h[r>>3]=n;h[r+8>>3]=m;f=v+4|0;d=c[f>>2]|0;if(d>>>0>=(c[v+8>>2]|0)>>>0){iA(v,1)|0;d=c[f>>2]|0}c[f>>2]=d+1;a[d>>0]=40;c[s>>2]=c[q>>2];c[s+4>>2]=c[q+4>>2];c[s+8>>2]=c[q+8>>2];c[s+12>>2]=c[q+12>>2];Zb(v,s);fc(v,o);c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];Zb(v,s);fc(v,p)}kA(v,67179)|0;f=t+140|0;j=+g[f>>2];i=t+56|0;d=t+96|0;if(j>0.0){gc(v,j,i);gc(v,+g[f>>2],d)}else{gc(v,0.0,i);gc(v,1.0,d)}mA(v)|0;k=v+4|0;d=c[k>>2]|0;i=v+8|0;f=d>>>0>=(c[i>>2]|0)>>>0;if(u){if(f){iA(v,1)|0;d=c[k>>2]|0}c[k>>2]=d+1;a[d>>0]=93}else{if(f){iA(v,1)|0;d=c[k>>2]|0}c[k>>2]=d+1;a[d>>0]=41}d=c[k>>2]|0;if(d>>>0>=(c[i>>2]|0)>>>0){iA(v,1)|0;d=c[k>>2]|0}a[d>>0]=0;u=c[v>>2]|0;c[k>>2]=u;bc(b,67176,u);lA(v)}l=w;return}function ec(a){a=a|0;ac((c[a+16>>2]|0)+56|0);bc(a,67176,194038);return}function fc(a,b){a=a|0;b=+b;var c=0,d=0;c=l;l=l+1024|0;d=c;_b(d,b);kA(a,d)|0;l=c;return}function gc(a,b,c){a=a|0;b=+b;c=c|0;var d=0,e=0,f=0;d=l;l=l+1040|0;f=d;e=d+8|0;h[f>>3]=b;i2(e,94469,f)|0;$b(e,1);ac(c);cc(a,e,194038);l=d;return}function hc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0;e=l;l=l+1040|0;i=e;f=e+16|0;g=c[11456+(c[(c[a+16>>2]|0)+12>>2]<<2)>>2]|0;kA(g,67285)|0;c[i>>2]=c[d>>2];c[i+4>>2]=c[d+4>>2];c[i+8>>2]=c[d+8>>2];c[i+12>>2]=c[d+12>>2];Zb(g,i);_b(f,+h[d+16>>3]-+h[d>>3]);kA(g,f)|0;_b(f,+h[d+24>>3]-+h[d+8>>3]);kA(g,f)|0;bc(a,195341,c[b+8>>2]|0);l=e;return}function ic(a){a=a|0;var b=0;switch(c[a+64>>2]|0){case 0:{b=yF(c[a>>2]|0)|0;mG(b,c[(c[a+16>>2]|0)+8>>2]|0,68069,0)|0;zF(b);break}case 1:{HL(c[(c[a>>2]|0)+168>>2]|0);break}default:{}}return}function jc(b){b=b|0;var d=0,e=0,f=0,g=0;f=l;l=l+16|0;d=f;e=c[(c[b+16>>2]|0)+8>>2]|0;if(!(c[46745]|0)){c[46745]=c[4689];c[46746]=57;c[46747]=19}c[(c[e+64>>2]|0)+8>>2]=186980;kc(e,1);c[d>>2]=0;a[d+4>>0]=(a[(c[e+16>>2]|0)+115>>0]|0)==1&1;g=c[b+64>>2]|0;a[d+5>>0]=((g|0)==0|(g|0)==3)&1;a[d+6>>0]=0;lc(e,b,1,d);l=f;return}function kc(a,b){a=a|0;b=b|0;var d=0;c[a>>2]=c[a>>2]&-9;d=MD(a)|0;while(1){if(!d)break;kc(d,0);d=ND(d)|0}a:do if(b|0){b=gC(a)|0;while(1){if(!b)break a;c[b>>2]=c[b>>2]&-9;d=UA(a,b)|0;while(1){if(!d)break;c[d>>2]=c[d>>2]&-9;d=WA(a,d)|0}b=hC(a,b)|0}}while(0);return}function lc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+16|0;p=q+8|0;o=q;n=(d|0)!=0;if(n){m=Sz(11876,c[4591]|0)|0;WC(a,1,141363,12,0);WC(a,2,141363,12,0);WC(a,0,141363,-12,0);f=mc(a,0,m)|0;j=gC(a)|0;i=0;g=0;while(1){if(!j)break;if(!(h2(HB(j)|0,108307,7)|0)){k=g;g=nc(m,HB(j)|0)|0}else{k=g+1|0;g=g+f|0}c[(PC(j,141363,0)|0)+8>>2]=g;h=UA(a,j)|0;g=i;while(1){if(!h)break;c[(PC(h,141363,0)|0)+8>>2]=g;h=WA(a,h)|0;g=g+1|0}j=hC(a,j)|0;i=g;g=k}Oz(m)|0}else f=0;m=c[e>>2]|0;c[e>>2]=m+1;oc(b,m);mF(b,97675)|0;pc(a,b,d,e);qc(a,b,e);mF(b,97646)|0;oc(b,c[e>>2]|0);if(n){c[o>>2]=f;sF(b,67288,o)}else{c[p>>2]=c[(PC(a,141363,0)|0)+8>>2];sF(b,67308,p)}sc(a,b,d,rc(a,b,d,e)|0,e);tc(a,b,d,e);mF(b,153748)|0;p=(c[e>>2]|0)+-1|0;c[e>>2]=p;oc(b,p);if(n)mF(b,111309)|0;else mF(b,75629)|0;l=q;return}function mc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((vC(a)|0)!=(a|0)){e=b+1|0;c[(PC(a,141363,0)|0)+8>>2]=b;if(!(h2(HB(a)|0,108307,7)|0)){b=HB(a)|0;Fc(d,b,c[(PC(a,141363,0)|0)+8>>2]|0);b=e}else b=e}e=MD(a)|0;while(1){if(!e)break;a=mc(e,b,d)|0;e=ND(e)|0;b=a}return b|0}function nc(a,b){a=a|0;b=b|0;a=eb[c[a>>2]&63](a,b,512)|0;if(!a)a=-1;else a=c[a+12>>2]|0;return a|0}function oc(a,b){a=a|0;b=b|0;while(1){if((b|0)<=0)break;mF(a,90875)|0;b=b+-1|0}return}function pc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;h=l;l=l+32|0;g=h+16|0;f=h+8|0;i=h;j=HB(a)|0;oc(b,c[e>>2]|0);c[i>>2]=wc(j,e)|0;sF(b,67396,i);if(d|0){mF(b,97646)|0;oc(b,c[e>>2]|0);j=(uB(a)|0)!=0;c[f>>2]=j?107953:137609;sF(b,68010,f);oc(b,c[e>>2]|0);j=(wB(a)|0)!=0;c[g>>2]=j?107953:137609;sF(b,68027,g)}l=h;return}function qc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;n=o+8|0;m=o;i=vC(b)|0;j=c[b>>2]&3;f=IA(i,j,0)|0;a:do if(f|0){k=e+5|0;while(1){if(!f)break a;g=OA(b,f)|0;do if(g|0){h=f+8|0;if(!(a[g>>0]|0)){g=c[h>>2]|0;if((a[g>>0]|0)!=108)break;if(f2(g,108525)|0)break}mF(d,97646)|0;oc(d,c[e>>2]|0);c[m>>2]=wc(c[h>>2]|0,e)|0;sF(d,67446,m);if(a[k>>0]|0?yc(c[h>>2]|0)|0:0){zc(OA(b,f)|0,d,e);break}c[n>>2]=wc(OA(b,f)|0,e)|0;sF(d,67453,n)}while(0);f=IA(i,j,f)|0}}while(0);l=o;return}function rc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l+16|0;h=i;f=MD(a)|0;if(f){mF(b,97646)|0;g=c[e>>2]|0;c[e>>2]=g+1;oc(b,g);g=(d|0)!=0;if(g){mF(b,67370)|0;a=0;d=f}else{mF(b,67430)|0;oc(b,c[e>>2]|0);a=0;d=f}while(1){if(!d)break;if(!a)a=1;else mF(b,97646)|0;if(g)xc(d,b,e);else{c[h>>2]=c[(PC(d,141363,0)|0)+8>>2];sF(b,137696,h)}d=ND(d)|0}if(g)a=1;else{c[e>>2]=(c[e>>2]|0)+-1;mF(b,153748)|0;oc(b,c[e>>2]|0);mF(b,97641)|0;a=1}}else a=0;l=i;return a|0}function sc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=gC(a)|0;e=(e|0)!=0;if(!g){if((d|0)!=0&e){c[f>>2]=(c[f>>2]|0)+-1;mF(b,153748)|0;oc(b,c[f>>2]|0);mF(b,97641)|0}}else{mF(b,97646)|0;h=(d|0)!=0;if(h)if(e)e=0;else{e=c[f>>2]|0;c[f>>2]=e+1;oc(b,e);mF(b,67370)|0;e=0}else{e=c[f>>2]|0;c[f>>2]=e+1;oc(b,e);mF(b,67384)|0;oc(b,c[f>>2]|0);e=0}while(1){if(!g)break;if(h2(HB(g)|0,108307,7)|0){do if(e)if(h){mF(b,97646)|0;break}else{mF(b,101300)|0;break}else e=1;while(0);vc(g,b,d,f)}g=hC(a,g)|0}c[f>>2]=(c[f>>2]|0)+-1;mF(b,153748)|0;oc(b,c[f>>2]|0);mF(b,97641)|0}return}function tc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=gC(a)|0;a:do if(f|0){while(1){if(!f)break a;if(UA(a,f)|0)break;f=hC(a,f)|0}mF(b,97646)|0;i=c[e>>2]|0;c[e>>2]=i+1;oc(b,i);mF(b,67320)|0;i=(d|0)!=0;if(i)g=0;else{oc(b,c[e>>2]|0);g=0}while(1){if(!f)break;h=UA(a,f)|0;while(1){if(!h)break;do if(g)if(i){mF(b,97646)|0;break}else{mF(b,101300)|0;break}else g=1;while(0);uc(h,b,d,e);h=WA(a,h)|0}f=hC(a,f)|0}c[e>>2]=(c[e>>2]|0)+-1;mF(b,153748)|0;oc(b,c[e>>2]|0);mF(b,97641)|0}while(0);return}function uc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=l;l=l+32|0;i=j+24|0;h=j+16|0;g=j+8|0;f=j;if(!d){c[i>>2]=c[(PC(a,141363,0)|0)+8>>2];sF(b,137696,i)}else{i=c[e>>2]|0;c[e>>2]=i+1;oc(b,i);mF(b,97675)|0;oc(b,c[e>>2]|0);c[f>>2]=c[(PC(a,141363,0)|0)+8>>2];sF(b,67332,f);oc(b,c[e>>2]|0);c[g>>2]=c[(PC(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0,141363,0)|0)+8>>2];sF(b,67346,g);oc(b,c[e>>2]|0);c[h>>2]=c[(PC(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0,141363,0)|0)+8>>2];sF(b,67359,h);qc(a,b,e);mF(b,153748)|0;i=(c[e>>2]|0)+-1|0;c[e>>2]=i;oc(b,i);mF(b,75629)|0}l=j;return}function vc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l+32|0;h=i+16|0;g=i+8|0;f=i;if(!d){c[h>>2]=c[(PC(a,141363,0)|0)+8>>2];sF(b,137696,h)}else{h=c[e>>2]|0;c[e>>2]=h+1;oc(b,h);mF(b,97675)|0;oc(b,c[e>>2]|0);c[f>>2]=c[(PC(a,141363,0)|0)+8>>2];sF(b,67332,f);oc(b,c[e>>2]|0);c[g>>2]=wc(HB(a)|0,e)|0;sF(b,67396,g);qc(a,b,e);mF(b,153748)|0;h=(c[e>>2]|0)+-1|0;c[e>>2]=h;oc(b,h);mF(b,75629)|0}l=i;return}function wc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=d+4|0;if(a[g>>0]|0)b=cQ(b)|0;if(!(c[46748]|0)){hA(186992,1024,0);e=b}else e=b;a:while(1){f=a[e>>0]|0;switch(f<<24>>24){case 0:break a;case 34:{kA(186992,67409)|0;break}case 92:{kA(186992,96917)|0;break}case 47:{kA(186992,67412)|0;break}case 8:{kA(186992,67415)|0;break}case 12:{kA(186992,67418)|0;break}case 10:{kA(186992,67421)|0;break}case 13:{kA(186992,67424)|0;break}case 9:{kA(186992,67427)|0;break}default:{d=c[46749]|0;if(d>>>0>=(c[46750]|0)>>>0){iA(186992,1)|0;d=c[46749]|0}c[46749]=d+1;a[d>>0]=f}}e=e+1|0}d=c[46749]|0;if(d>>>0>=(c[46750]|0)>>>0){iA(186992,1)|0;d=c[46749]|0}a[d>>0]=0;d=c[46748]|0;c[46749]=d;if(a[g>>0]|0)l6(b);return d|0}function xc(a,b,c){a=a|0;b=b|0;c=c|0;lc(a,b,0,c);a=MD(a)|0;while(1){if(!a)break;mF(b,97646)|0;xc(a,b,c);a=ND(a)|0}return}function yc(b){b=b|0;var c=0;c=b+1|0;a:do if((a[b>>0]|0)==95){b=(a[c>>0]|0)+-100<<24>>24;switch(((b&255)>>>2|b<<6&255)<<24>>24){case 0:{if(!(f2(c,67967)|0)){b=1;break a}break}case 2:{if(!(f2(c,67973)|0)){b=1;break a}break}case 1:{if(!(f2(c,67980)|0)){b=1;break a}b=(f2(c,67994)|0)==0;break a}case 4:{if(!(f2(c,67987)|0)){b=1;break a}b=(f2(c,68002)|0)==0;break a}default:{b=0;break a}}b=0}else b=0;while(0);return b&1|0}function zc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l+16|0;f=i;do if(b|0?a[b>>0]|0:0){h=BH(b)|0;if(!h){c[f>>2]=b;dA(0,67458,f)|0;break}mF(d,153748)|0;g=c[e>>2]|0;c[e>>2]=g+1;oc(d,g);mF(d,67485)|0;g=h+8|0;b=0;f=0;while(1){if((f|0)>=(c[h>>2]|0))break;if(!b)b=1;else mF(d,97646)|0;Ac((c[g>>2]|0)+(f*80|0)|0,d,e);f=f+1|0}c[e>>2]=(c[e>>2]|0)+-1;mF(d,153748)|0;oc(d,c[e>>2]|0);mF(d,97641)|0;CH(h)}while(0);l=i;return}function Ac(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0.0,D=0.0;A=l;l=l+240|0;y=A+224|0;x=A+216|0;w=A+208|0;v=A+200|0;u=A+192|0;t=A+184|0;s=A+176|0;r=A+152|0;q=A+136|0;p=A+128|0;o=A+112|0;n=A+104|0;m=A+96|0;k=A+88|0;j=A+72|0;i=A+48|0;z=A+40|0;g=A+8|0;f=A;e=c[d>>2]|0;c[d>>2]=e+1;oc(b,e);mF(b,97675)|0;oc(b,c[d>>2]|0);e=c[a>>2]|0;a:do switch(e|0){case 1:case 0:{c[f>>2]=(e|0)==0?69:101;sF(b,67488,f);oc(b,c[d>>2]|0);D=+h[a+16>>3];C=+h[a+24>>3];B=+h[a+32>>3];h[g>>3]=+h[a+8>>3];h[g+8>>3]=D;h[g+16>>3]=C;h[g+24>>3]=B;sF(b,67501,g);break}case 3:case 2:{c[z>>2]=(e|0)==2?80:112;sF(b,67488,z);oc(b,c[d>>2]|0);Bc(b,a+8|0);break}case 5:case 4:{c[i>>2]=(e|0)==4?66:98;sF(b,67488,i);oc(b,c[d>>2]|0);Bc(b,a+8|0);break}case 6:{sF(b,67536,A+56|0);oc(b,c[d>>2]|0);Bc(b,a+8|0);break}case 7:{sF(b,67548,A+64|0);oc(b,c[d>>2]|0);D=+h[a+16>>3];h[j>>3]=+h[a+8>>3];h[j+8>>3]=D;sF(b,67560,j);oc(b,c[d>>2]|0);z=c[a+24>>2]|0;c[k>>2]=(z|0)==0?108:(z|0)==1?99:114;sF(b,67582,k);oc(b,c[d>>2]|0);h[m>>3]=+h[a+32>>3];sF(b,67598,m);oc(b,c[d>>2]|0);c[n>>2]=wc(c[a+40>>2]|0,d)|0;sF(b,67615,n);break}case 9:case 8:{c[o>>2]=(e|0)==8?67:99;sF(b,67488,o);oc(b,c[d>>2]|0);sF(b,67629,A+120|0);oc(b,c[d>>2]|0);c[p>>2]=wc(c[a+8>>2]|0,d)|0;sF(b,67646,p);break}case 13:case 14:{c[q>>2]=(e|0)==13?67:99;sF(b,67488,q);oc(b,c[d>>2]|0);switch(c[a+8>>2]|0){case 0:{sF(b,67629,A+144|0);oc(b,c[d>>2]|0);c[r>>2]=wc(c[a+16>>2]|0,d)|0;sF(b,67646,r);break a}case 1:{sF(b,67661,A+160|0);oc(b,c[d>>2]|0);Cc(b,a+16|0,d);break a}default:{sF(b,67680,A+168|0);oc(b,c[d>>2]|0);Dc(b,a+16|0,d);break a}}}case 10:{sF(b,67699,s);oc(b,c[d>>2]|0);h[t>>3]=+h[a+8>>3];sF(b,67711,t);oc(b,c[d>>2]|0);c[u>>2]=wc(c[a+16>>2]|0,d)|0;sF(b,67727,u);break}case 11:{sF(b,67741,v);oc(b,c[d>>2]|0);c[w>>2]=wc(c[a+8>>2]|0,d)|0;sF(b,67753,w);break}case 15:{sF(b,67768,x);oc(b,c[d>>2]|0);c[y>>2]=c[a+8>>2];sF(b,67780,y);break}default:{}}while(0);z=(c[d>>2]|0)+-1|0;c[d>>2]=z;oc(b,z);mF(b,75629)|0;l=A;return}function Bc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0.0;j=l;l=l+48|0;i=j+32|0;g=j+16|0;f=j+8|0;e=c[b>>2]|0;d=c[b+4>>2]|0;sF(a,67941,j);b=0;while(1){if((b|0)>=(e|0))break;if((b|0)>0)sF(a,101300,f);k=+h[d+(b*24|0)+8>>3];h[g>>3]=+h[d+(b*24|0)>>3];h[g+8>>3]=k;sF(a,67953,g);b=b+1|0}sF(a,67894,i);l=j;return}function Cc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0;e=l;l=l+32|0;f=e+16|0;i=e;oc(a,c[d>>2]|0);g=+h[b+8>>3];h[i>>3]=+h[b>>3];h[i+8>>3]=g;sF(a,67897,i);oc(a,c[d>>2]|0);g=+h[b+24>>3];h[f>>3]=+h[b+16>>3];h[f+8>>3]=g;sF(a,67919,f);oc(a,c[d>>2]|0);Ec(a,c[b+32>>2]|0,c[b+36>>2]|0,d);l=e;return}function Dc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0.0,j=0;e=l;l=l+48|0;f=e+24|0;j=e;oc(a,c[d>>2]|0);g=+h[b+8>>3];i=+h[b+16>>3];h[j>>3]=+h[b>>3];h[j+8>>3]=g;h[j+16>>3]=i;sF(a,67796,j);oc(a,c[d>>2]|0);i=+h[b+32>>3];g=+h[b+40>>3];h[f>>3]=+h[b+24>>3];h[f+8>>3]=i;h[f+16>>3]=g;sF(a,67824,f);oc(a,c[d>>2]|0);Ec(a,c[b+48>>2]|0,c[b+52>>2]|0,d);l=e;return}function Ec(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,i=0,j=0,k=0,m=0,n=0,o=0.0;m=l;l=l+48|0;k=m+32|0;j=m+16|0;i=m+8|0;sF(a,67852,m);f=0;while(1){if((f|0)>=(b|0))break;if((f|0)>0)sF(a,101300,i);o=+g[d+(f<<3)>>2];n=wc(c[d+(f<<3)+4>>2]|0,e)|0;h[j>>3]=o;c[j+8>>2]=n;sF(a,67863,j);f=f+1|0}sF(a,67894,k);l=m;return}function Fc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;f=g;e=eb[c[a>>2]&63](a,b,512)|0;if(e){if((c[e+12>>2]|0)!=(d|0)){c[f>>2]=b;dA(0,68040,f)|0}}else{f=m6(1,16)|0;c[f+8>>2]=Y3(b)|0;c[f+12>>2]=d;eb[c[a>>2]&63](a,f,1)|0}l=g;return}function Gc(a,b,d){a=a|0;b=b|0;d=d|0;l6(c[b+8>>2]|0);l6(b);return}function Hc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=l;l=l+32|0;d=b+24|0;e=b+16|0;g=b;f=c[a+16>>2]|0;mF(a,68895)|0;j=c[c[a+12>>2]>>2]|0;i=c[j+4>>2]|0;h=c[j+8>>2]|0;c[g>>2]=c[j>>2];c[g+4>>2]=i;c[g+8>>2]=h;sF(a,68905,g);c[e>>2]=HB(c[f+8>>2]|0)|0;sF(a,68940,e);c[d>>2]=S(c[a+168>>2]|0,c[a+164>>2]|0)|0;sF(a,68953,d);mF(a,68966)|0;mF(a,68976)|0;mF(a,68984)|0;mF(a,68992)|0;mF(a,69e3)|0;mF(a,69008)|0;mF(a,69016)|0;mF(a,69020)|0;mF(a,69025)|0;l=b;return}function Ic(a){a=a|0;mF(a,68876)|0;return}function Jc(a){a=a|0;c[46752]=2;return}function Kc(a){a=a|0;c[46752]=1;return}function Lc(a){a=a|0;c[46752]=2;return}function Mc(a){a=a|0;c[46752]=0;return}function Nc(a){a=a|0;c[46752]=2;return}function Oc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0.0,j=0,k=0.0,m=0,n=0,o=0,p=0,q=0.0,r=0.0;p=l;l=l+80|0;o=p;m=c[(c[b+16>>2]|0)+16>>2]|0;n=c[46752]|0;f=c[e+4>>2]|0;g=+h[f+16>>3]*+h[b+352>>3];i=c[b+360>>2]|0?1.5707963267948966:0.0;j=c[e>>2]|0;k=g*2.0/3.0*+((D3(j)|0)>>>0)*.5;f=c[f+8>>2]|0;if(!f)f=-1;else f=c[f+20>>2]|0;e=a[e+48>>0]|0;r=+h[d>>3];q=+h[d+8>>3]+-72.0;j=Yc(j)|0;c[o>>2]=4;c[o+4>>2]=e<<24>>24==108?0:e<<24>>24==114?2:1;c[o+8>>2]=m;c[o+12>>2]=n;c[o+16>>2]=0;c[o+20>>2]=f;h[o+24>>3]=g;h[o+32>>3]=i;c[o+40>>2]=6;h[o+48>>3]=g;h[o+56>>3]=k;c[o+64>>2]=~~(r+(r>=0.0?.5:-.5));c[o+68>>2]=~~(q+(q>=0.0?.5:-.5));c[o+72>>2]=j;sF(b,68821,o);l=p;return}function Pc(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;n=l;l=l+32|0;j=n;i=n+20|0;m=e+32|0;a:do switch(c[m>>2]|0){case 5:{f=0;while(1){g=c[12764+(f<<2)>>2]|0;if((f|0)==8)break a;h=c[e>>2]|0;if((a[g>>0]|0)==(a[h>>0]|0)?(f2(g,h)|0)==0:0){k=10;break a}f=f+1|0}}case 1:{g=e+1|0;h=e+2|0;f=(Xc(i,d[e>>0]|0,d[g>>0]|0,d[h>>0]|0)|0)+32|0;if(!(c[i>>2]|0))k=10;else{o=d[e>>0]|0;i=d[g>>0]|0;k=d[h>>0]|0;c[j>>2]=0;c[j+4>>2]=f;c[j+8>>2]=o;c[j+12>>2]=i;c[j+16>>2]=k;sF(b,68764,j);k=10}break}default:Aa(138697,68161,163,68192)}while(0);if((k|0)==10)c[e>>2]=f;c[m>>2]=6;l=n;return}function Qc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0.0,j=0,k=0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0;e=l;l=l+112|0;f=e+8|0;u=e+104|0;t=e;k=c[a+16>>2]|0;s=~~+h[k+152>>3];r=c[k+16>>2]|0;q=c[k+56>>2]|0;p=c[46752]|0;Vc(k,u,t);n=+h[b>>3];k=~~(n+(n>=0.0?.5:-.5));m=+h[b+8>>3];j=~~(m+(m>=0.0?.5:-.5));i=+h[b+16>>3];n=i-n;g=+h[b+24>>3];m=g-m;b=c[u>>2]|0;o=+h[t>>3];c[f>>2]=1;c[f+4>>2]=1;c[f+8>>2]=b;c[f+12>>2]=s;c[f+16>>2]=r;c[f+20>>2]=q;c[f+24>>2]=p;c[f+28>>2]=0;c[f+32>>2]=d|0?20:-1;h[f+40>>3]=o;c[f+48>>2]=0;h[f+56>>3]=0.0;c[f+64>>2]=k;c[f+68>>2]=j;c[f+72>>2]=~~(n+(n>=0.0?.5:-.5));c[f+76>>2]=~~(m+(m>=0.0?.5:-.5));c[f+80>>2]=k;c[f+84>>2]=j;c[f+88>>2]=~~(i+(i>=0.0?.5:-.5));c[f+92>>2]=~~(g+(g>=0.0?.5:-.5));sF(a,68699,f);l=e;return}function Rc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;f=l;l=l+96|0;g=f+8|0;o=f+80|0;p=f;q=c[a+16>>2]|0;n=~~+h[q+152>>3];m=c[q+16>>2]|0;k=c[q+56>>2]|0;j=c[46752]|0;Vc(q,o,p);o=c[o>>2]|0;i=+h[p>>3];c[g>>2]=2;c[g+4>>2]=3;c[g+8>>2]=o;c[g+12>>2]=n;c[g+16>>2]=m;c[g+20>>2]=k;c[g+24>>2]=j;c[g+28>>2]=0;c[g+32>>2]=e|0?20:-1;h[g+40>>3]=i;c[g+48>>2]=0;c[g+52>>2]=0;c[g+56>>2]=0;c[g+60>>2]=0;c[g+64>>2]=0;c[g+68>>2]=d+1;sF(a,68603,g);Wc(a,b,d,1);l=f;return}function Sc(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=0.0,F=0;C=l;l=l+192|0;B=C+176|0;z=C+168|0;A=C+104|0;y=C+96|0;i=C+88|0;u=C+180|0;v=C+80|0;w=C+16|0;x=C;f=a+16|0;e=c[f>>2]|0;q=~~+h[e+152>>3];r=c[e+16>>2]|0;s=c[46752]|0;if((d|0)<=3)Aa(68154,68161,360,68181);t=k6((d*140|0)+140|0)|0;Vc(e,u,v);if(!g){o=4;j=0;k=-1}else{o=5;j=c[(c[f>>2]|0)+56>>2]|0;k=20}E=+h[b>>3];n=w+48|0;h[n>>3]=E;D=+h[b+8>>3];h[w+56>>3]=D;c[i>>2]=~~(E+(E>=0.0?.5:-.5));c[i+4>>2]=~~(D+(D>=0.0?.5:-.5));m=x+8|0;e=t+(i2(t,81371,i)|0)|0;p=1;g=0;while(1){i=g+3|0;if((i|0)>=(d|0))break;c[w>>2]=c[n>>2];c[w+4>>2]=c[n+4>>2];c[w+8>>2]=c[n+8>>2];c[w+12>>2]=c[n+12>>2];f=1;while(1){if((f|0)==4){f=1;break}F=f+g|0;h[w+(f<<4)>>3]=+h[b+(F<<4)>>3];h[w+(f<<4)+8>>3]=+h[b+(F<<4)+8>>3];f=f+1|0}while(1){if((f|0)==7)break;iP(x,w,3,+(f|0)/6.0,0,0);D=+h[x>>3];E=+h[m>>3];c[y>>2]=~~(D+(D>=0.0?.5:-.5));c[y+4>>2]=~~(E+(E>=0.0?.5:-.5));f=f+1|0;e=e+(i2(e,81371,y)|0)|0}p=p+6|0;g=i}f=c[u>>2]|0;E=+h[v>>3];c[A>>2]=3;c[A+4>>2]=o;c[A+8>>2]=f;c[A+12>>2]=q;c[A+16>>2]=r;c[A+20>>2]=j;c[A+24>>2]=s;c[A+28>>2]=0;c[A+32>>2]=k;h[A+40>>3]=E;c[A+48>>2]=0;c[A+52>>2]=0;c[A+56>>2]=0;c[A+60>>2]=p;sF(a,68654,A);c[z>>2]=t;sF(a,81378,z);l6(t);f=p+-1|0;e=0;while(1){if((e|0)>=(p|0))break;c[B>>2]=((e|0)%(f|0)|0|0)!=0&1;sF(a,81383,B);e=e+1|0}mF(a,153748)|0;l=C;return}function Tc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0,j=0,k=0,m=0,n=0,o=0;e=l;l=l+96|0;f=e+8|0;m=e+80|0;n=e;o=c[a+16>>2]|0;k=~~+h[o+152>>3];j=c[o+16>>2]|0;i=c[46752]|0;Vc(o,m,n);m=c[m>>2]|0;g=+h[n>>3];c[f>>2]=2;c[f+4>>2]=1;c[f+8>>2]=m;c[f+12>>2]=k;c[f+16>>2]=j;c[f+20>>2]=0;c[f+24>>2]=i;c[f+28>>2]=0;c[f+32>>2]=0;h[f+40>>3]=g;c[f+48>>2]=0;c[f+52>>2]=0;c[f+56>>2]=0;c[f+60>>2]=0;c[f+64>>2]=0;c[f+68>>2]=d;sF(a,68603,f);Wc(a,b,d,0);l=e;return}function Uc(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;sF(a,68597,e);l=d;return}function Vc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0;switch(c[a+144>>2]|0){case 1:{e=10.0;a=1;break}case 2:{e=10.0;a=2;break}default:{e=0.0;a=0}}c[b>>2]=a;h[d>>3]=e;return}function Wc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0.0,m=0.0;j=l;l=l+16|0;i=j+8|0;g=j;f=0;while(1){if((f|0)>=(d|0))break;m=+h[b+(f<<4)>>3];k=+h[b+(f<<4)+8>>3];c[g>>2]=~~(m+(m>=0.0?.5:-.5));c[g+4>>2]=~~(k+(k>=0.0?.5:-.5));sF(a,81371,g);f=f+1|0}if(e|0){k=+h[b>>3];m=+h[b+8>>3];c[i>>2]=~~(k+(k>=0.0?.5:-.5));c[i+4>>2]=~~(m+(m>=0.0?.5:-.5));sF(a,81371,i)}mF(a,153748)|0;l=j;return}function Xc(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c[a>>2]=0;m=c[46753]|0;h=195075;g=0;i=-1;while(1){j=190960+(g<<1)|0;k=191472+(g<<1)|0;l=191984+(g<<1)|0;if((g|0)>=(m|0)){n=6;break}o=(b[j>>1]|0)-d|0;k=(b[k>>1]|0)-e|0;j=(b[l>>1]|0)-f|0;j=(S(k,k)|0)+(S(o,o)|0)+(S(j,j)|0)|0;if((j|0)<(h|0))if(!j)break;else{h=j;i=g}g=g+1|0}if((n|0)==6){c[46753]=m+1;if((m|0)==256)g=i;else{b[j>>1]=d;b[k>>1]=e;b[l>>1]=f;c[a>>2]=1}}return g|0}function Yc(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;h=i;d=c[46754]|0;if(!d){c[46755]=64;d=k6(64)|0;c[46754]=d;e=0}else e=0;while(1){g=b+1|0;f=a[b>>0]|0;if(!(f<<24>>24))break;b=c[46755]|0;if((e|0)>(b+-8|0)){d=b<<1;c[46755]=d;d=n6(c[46754]|0,d)|0;c[46754]=d;d=d+e|0}b=d+1|0;if(f<<24>>24<=-1){a[d>>0]=92;c[h>>2]=f&255;i2(b,81496,h)|0;b=g;d=d+4|0;e=e+4|0;continue}if(f<<24>>24==92){a[d>>0]=92;e=e+1|0;d=b}a[d>>0]=f;b=g;d=d+1|0;e=e+1|0}a[d>>0]=0;l=i;return c[46754]|0}function Zc(b){b=b|0;var d=0,e=0,f=0;e=c[b+16>>2]|0;switch(c[b+64>>2]|0){case 0:{mF(b,68492)|0;d=e+208|0;e=c[d>>2]|0;if(e|0?a[e>>0]|0:0){mF(b,68506)|0;mF(b,DK(c[d>>2]|0)|0)|0;mF(b,153748)|0}break}case 1:{d=e+208|0;f=c[d>>2]|0;if(f|0?a[f>>0]|0:0){mF(b,68506)|0;mF(b,DK(c[d>>2]|0)|0)|0;mF(b,102905)|0;mF(b,DK(HB(c[e+8>>2]|0)|0)|0)|0;mF(b,153748)|0}break}case 3:{f=DK(HB(c[e+8>>2]|0)|0)|0;mF(b,68515)|0;mF(b,f)|0;mF(b,68525)|0;mF(b,f)|0;mF(b,68480)|0;break}default:{}}return}function _c(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;d=c[a+16>>2]|0;e=d+264|0;f=d+228|0;g=d+244|0;h=d+208|0;i=d+272|0;b=d+268|0;d=d+212|0;switch(c[a+64>>2]|0){case 2:{ad(a,c[e>>2]|0,c[i>>2]|0,c[b>>2]|0,c[h>>2]|0,c[f>>2]|0,c[g>>2]|0,c[d>>2]|0);break}case 3:{ad(a,c[e>>2]|0,c[i>>2]|0,c[b>>2]|0,c[h>>2]|0,c[f>>2]|0,c[g>>2]|0,c[d>>2]|0);mF(a,68484)|0;break}default:{}}return}function $c(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=c[a+16>>2]|0;ad(a,c[g+264>>2]|0,c[g+272>>2]|0,c[g+268>>2]|0,b,d,e,f);return}function ad(b,d,e,f,g,i,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0;y=l;l=l+128|0;x=y+120|0;u=y+112|0;t=y+96|0;s=y+80|0;r=y+56|0;w=y+48|0;q=y+40|0;v=y+24|0;p=y;a:do if((e|0)!=0&(f|0)!=0){m=f+10|0;if((c[46756]|0)<(f|0)){c[46756]=m;o=n6(c[46757]|0,m<<3)|0;c[46757]=o}else o=c[46757]|0;m=0;while(1){if((m|0)>=(f|0))break;z=+h[e+(m<<4)>>3];c[o+(m<<3)>>2]=~~(z+(z>=0.0?.5:-.5));z=+h[e+(m<<4)+8>>3];c[o+(m<<3)+4>>2]=~~(z+(z>=0.0?.5:-.5));m=m+1|0}n=b+64|0;m=c[n>>2]|0;e=(g|0)!=0;if(e&(m|0)==0){if(!(a[g>>0]|0))break;switch(d|0){case 0:{v=c[o>>2]|0;w=c[o+12>>2]|0;x=c[o+8>>2]|0;f=c[o+4>>2]|0;c[p>>2]=g;c[p+4>>2]=v;c[p+8>>2]=w;c[p+12>>2]=x;c[p+16>>2]=f;sF(b,68226,p);break a}case 1:{w=c[o>>2]|0;x=c[o+4>>2]|0;f=(c[o+8>>2]|0)-w|0;c[v>>2]=g;c[v+4>>2]=w;c[v+8>>2]=x;c[v+12>>2]=f;sF(b,68247,v);break a}case 2:{c[q>>2]=g;sF(b,68267,q);m=0;while(1){if((m|0)>=(f|0))break;v=c[46757]|0;x=c[v+(m<<3)+4>>2]|0;c[w>>2]=c[v+(m<<3)>>2];c[w+4>>2]=x;sF(b,68275,w);m=m+1|0}mF(b,153748)|0;break a}default:Aa(138697,68282,63,68302)}}if(e&(m|0)==1){if(!(a[g>>0]|0))break;if(!d){w=c[o+12>>2]|0;x=c[o+8>>2]|0;f=c[o+4>>2]|0;c[r>>2]=c[o>>2];c[r+4>>2]=w;c[r+8>>2]=x;c[r+12>>2]=f;c[r+16>>2]=g;c[r+20>>2]=i;sF(b,68319,r);break}else Aa(138697,68282,75,68302)}if((m&-2|0)==2){switch(d|0){case 1:{mF(b,68352)|0;break}case 0:{mF(b,68373)|0;break}case 2:{mF(b,68392)|0;break}default:Aa(138697,68282,91,68302)}if(k|0?a[k>>0]|0:0){mF(b,73872)|0;mF(b,GK(k)|0)|0;mF(b,99045)|0}if(e?a[g>>0]|0:0){mF(b,68411)|0;mF(b,GK(g)|0)|0;mF(b,99045)|0}if(j|0?a[j>>0]|0:0){mF(b,74831)|0;mF(b,DK(j)|0)|0;mF(b,99045)|0}if(i|0?a[i>>0]|0:0){mF(b,68419)|0;mF(b,DK(i)|0)|0;mF(b,99045)|0}mF(b,68428)|0;mF(b,68436)|0;b:do switch(d|0){case 1:{f=c[46757]|0;w=c[f>>2]|0;x=c[f+4>>2]|0;f=(c[f+8>>2]|0)-w|0;c[s>>2]=w;c[s+4>>2]=x;c[s+8>>2]=f;sF(b,68446,s);break}case 0:{v=c[46757]|0;w=c[v+12>>2]|0;x=c[v+8>>2]|0;f=c[v+4>>2]|0;c[t>>2]=c[v>>2];c[t+4>>2]=w;c[t+8>>2]=x;c[t+12>>2]=f;sF(b,68455,t);break}case 2:{w=c[46757]|0;m=c[w+4>>2]|0;c[u>>2]=c[w>>2];c[u+4>>2]=m;sF(b,68467,u);m=1;while(1){if((m|0)>=(f|0))break b;v=c[46757]|0;w=c[v+(m<<3)+4>>2]|0;c[x>>2]=c[v+(m<<3)>>2];c[x+4>>2]=w;sF(b,68473,x);m=m+1|0}}default:{}}while(0);if((c[n>>2]|0)==3){mF(b,73696)|0;break}else{mF(b,68480)|0;break}}}while(0);l=y;return}function bd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=l;l=l+32|0;d=b+24|0;e=b+16|0;g=b;f=c[a+16>>2]|0;mF(a,68895)|0;j=c[c[a+12>>2]>>2]|0;i=c[j+4>>2]|0;h=c[j+8>>2]|0;c[g>>2]=c[j>>2];c[g+4>>2]=i;c[g+8>>2]=h;sF(a,68905,g);c[e>>2]=HB(c[f+8>>2]|0)|0;sF(a,68940,e);c[d>>2]=S(c[a+168>>2]|0,c[a+164>>2]|0)|0;sF(a,68953,d);mF(a,68966)|0;mF(a,68976)|0;mF(a,68984)|0;mF(a,68992)|0;mF(a,69e3)|0;mF(a,69008)|0;mF(a,69016)|0;mF(a,69020)|0;mF(a,69025)|0;l=b;return}function cd(a){a=a|0;mF(a,68876)|0;return}function dd(a){a=a|0;c[46758]=2;return}function ed(a){a=a|0;c[46758]=1;return}function fd(a){a=a|0;c[46758]=2;return}function gd(a){a=a|0;c[46758]=0;return}function hd(a){a=a|0;c[46758]=2;return}function id(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0.0,j=0,k=0,m=0,n=0,o=0.0,p=0.0,q=0;n=l;l=l+80|0;m=n;j=c[(c[b+16>>2]|0)+16>>2]|0;k=c[46758]|0;f=c[e+4>>2]|0;g=+h[f+16>>3]*+h[b+352>>3];i=c[b+360>>2]|0?1.5707963267948966:0.0;f=c[f+8>>2]|0;if(!f)f=-1;else f=c[f+20>>2]|0;q=a[e+48>>0]|0;p=+h[d>>3];o=+h[d+8>>3];e=sd(c[e>>2]|0)|0;c[m>>2]=4;c[m+4>>2]=q<<24>>24==108?0:q<<24>>24==114?2:1;c[m+8>>2]=j;c[m+12>>2]=k;c[m+16>>2]=0;c[m+20>>2]=f;h[m+24>>3]=g;h[m+32>>3]=i;c[m+40>>2]=4;h[m+48>>3]=0.0;h[m+56>>3]=0.0;c[m+64>>2]=~~(p+(p>=0.0?.5:-.5));c[m+68>>2]=~~(o+(o>=0.0?.5:-.5));c[m+72>>2]=e;sF(b,68821,m);l=n;return}function jd(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;n=l;l=l+32|0;j=n;i=n+20|0;m=e+32|0;a:do switch(c[m>>2]|0){case 5:{f=0;while(1){g=c[12764+(f<<2)>>2]|0;if((f|0)==8)break a;h=c[e>>2]|0;if((a[g>>0]|0)==(a[h>>0]|0)?(f2(g,h)|0)==0:0){k=10;break a}f=f+1|0}}case 1:{g=e+1|0;h=e+2|0;f=(rd(i,d[e>>0]|0,d[g>>0]|0,d[h>>0]|0)|0)+32|0;if(!(c[i>>2]|0))k=10;else{o=d[e>>0]|0;i=d[g>>0]|0;k=d[h>>0]|0;c[j>>2]=0;c[j+4>>2]=f;c[j+8>>2]=o;c[j+12>>2]=i;c[j+16>>2]=k;sF(b,68764,j);k=10}break}case 0:{f=0;k=10;break}default:Aa(138697,68785,168,68804)}while(0);if((k|0)==10)c[e>>2]=f;c[m>>2]=6;l=n;return}function kd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0.0,j=0,k=0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0;e=l;l=l+112|0;f=e+8|0;u=e+104|0;t=e;k=c[a+16>>2]|0;s=~~+h[k+152>>3];r=c[k+16>>2]|0;q=c[k+56>>2]|0;p=c[46758]|0;pd(k,u,t);n=+h[b>>3];k=~~(n+(n>=0.0?.5:-.5));m=+h[b+8>>3];j=~~(m+(m>=0.0?.5:-.5));i=+h[b+16>>3];n=i-n;g=+h[b+24>>3];m=g-m;b=c[u>>2]|0;o=+h[t>>3];c[f>>2]=1;c[f+4>>2]=1;c[f+8>>2]=b;c[f+12>>2]=s;c[f+16>>2]=r;c[f+20>>2]=q;c[f+24>>2]=p;c[f+28>>2]=0;c[f+32>>2]=d|0?20:-1;h[f+40>>3]=o;c[f+48>>2]=0;h[f+56>>3]=0.0;c[f+64>>2]=k;c[f+68>>2]=j;c[f+72>>2]=~~(n+(n>=0.0?.5:-.5));c[f+76>>2]=~~(m+(m>=0.0?.5:-.5));c[f+80>>2]=k;c[f+84>>2]=j;c[f+88>>2]=~~(i+(i>=0.0?.5:-.5));c[f+92>>2]=~~(g+(g>=0.0?.5:-.5));sF(a,68699,f);l=e;return}function ld(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;f=l;l=l+96|0;g=f+8|0;o=f+80|0;p=f;q=c[a+16>>2]|0;n=~~+h[q+152>>3];m=c[q+16>>2]|0;k=c[q+56>>2]|0;j=c[46758]|0;pd(q,o,p);o=c[o>>2]|0;i=+h[p>>3];c[g>>2]=2;c[g+4>>2]=3;c[g+8>>2]=o;c[g+12>>2]=n;c[g+16>>2]=m;c[g+20>>2]=k;c[g+24>>2]=j;c[g+28>>2]=0;c[g+32>>2]=e|0?20:-1;h[g+40>>3]=i;c[g+48>>2]=0;c[g+52>>2]=0;c[g+56>>2]=0;c[g+60>>2]=0;c[g+64>>2]=0;c[g+68>>2]=d+1;sF(a,68603,g);qd(a,b,d,1);l=f;return}function md(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=0.0,F=0;C=l;l=l+192|0;B=C+176|0;z=C+168|0;A=C+104|0;y=C+96|0;f=C+88|0;u=C+180|0;v=C+80|0;w=C+16|0;x=C;e=a+16|0;p=c[e>>2]|0;q=~~+h[p+152>>3];r=c[p+16>>2]|0;s=c[46758]|0;t=k6((d*140|0)+140|0)|0;pd(p,u,v);if(!g){o=4;j=0;k=-1}else{o=5;j=c[(c[e>>2]|0)+56>>2]|0;k=20}E=+h[b>>3];n=w+48|0;h[n>>3]=E;D=+h[b+8>>3];h[w+56>>3]=D;c[f>>2]=~~(E+(E>=0.0?.5:-.5));c[f+4>>2]=~~(D+(D>=0.0?.5:-.5));m=x+8|0;e=t+(i2(t,81371,f)|0)|0;p=1;g=0;while(1){i=g+3|0;if((i|0)>=(d|0))break;c[w>>2]=c[n>>2];c[w+4>>2]=c[n+4>>2];c[w+8>>2]=c[n+8>>2];c[w+12>>2]=c[n+12>>2];f=1;while(1){if((f|0)==4){f=1;break}F=f+g|0;h[w+(f<<4)>>3]=+h[b+(F<<4)>>3];h[w+(f<<4)+8>>3]=+h[b+(F<<4)+8>>3];f=f+1|0}while(1){if((f|0)==7)break;iP(x,w,3,+(f|0)/6.0,0,0);D=+h[x>>3];E=+h[m>>3];c[y>>2]=~~(D+(D>=0.0?.5:-.5));c[y+4>>2]=~~(E+(E>=0.0?.5:-.5));f=f+1|0;e=e+(i2(e,81371,y)|0)|0}p=p+6|0;g=i}f=c[u>>2]|0;E=+h[v>>3];c[A>>2]=3;c[A+4>>2]=o;c[A+8>>2]=f;c[A+12>>2]=q;c[A+16>>2]=r;c[A+20>>2]=j;c[A+24>>2]=s;c[A+28>>2]=0;c[A+32>>2]=k;h[A+40>>3]=E;c[A+48>>2]=0;c[A+52>>2]=0;c[A+56>>2]=0;c[A+60>>2]=p;sF(a,68654,A);c[z>>2]=t;sF(a,81378,z);l6(t);f=p+-1|0;e=0;while(1){if((e|0)>=(p|0))break;c[B>>2]=((e|0)%(f|0)|0|0)!=0&1;sF(a,81383,B);e=e+1|0}mF(a,153748)|0;l=C;return}function nd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0,j=0,k=0,m=0,n=0,o=0;e=l;l=l+96|0;f=e+8|0;m=e+80|0;n=e;o=c[a+16>>2]|0;k=~~+h[o+152>>3];j=c[o+16>>2]|0;i=c[46758]|0;pd(o,m,n);m=c[m>>2]|0;g=+h[n>>3];c[f>>2]=2;c[f+4>>2]=1;c[f+8>>2]=m;c[f+12>>2]=k;c[f+16>>2]=j;c[f+20>>2]=0;c[f+24>>2]=i;c[f+28>>2]=0;c[f+32>>2]=0;h[f+40>>3]=g;c[f+48>>2]=0;c[f+52>>2]=0;c[f+56>>2]=0;c[f+60>>2]=0;c[f+64>>2]=0;c[f+68>>2]=d;sF(a,68603,f);qd(a,b,d,0);l=e;return}function od(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;sF(a,68597,e);l=d;return}function pd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0;switch(c[a+144>>2]|0){case 1:{e=10.0;a=1;break}case 2:{e=10.0;a=2;break}default:{e=0.0;a=0}}c[b>>2]=a;h[d>>3]=e;return}function qd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0.0,m=0.0;j=l;l=l+16|0;i=j+8|0;g=j;f=0;while(1){if((f|0)>=(d|0))break;m=+h[b+(f<<4)>>3];k=+h[b+(f<<4)+8>>3];c[g>>2]=~~(m+(m>=0.0?.5:-.5));c[g+4>>2]=~~(k+(k>=0.0?.5:-.5));sF(a,81371,g);f=f+1|0}if(e|0){k=+h[b>>3];m=+h[b+8>>3];c[i>>2]=~~(k+(k>=0.0?.5:-.5));c[i+4>>2]=~~(m+(m>=0.0?.5:-.5));sF(a,81371,i)}mF(a,153748)|0;l=j;return}function rd(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c[a>>2]=0;m=c[46759]|0;h=195075;g=0;i=-1;while(1){j=192496+(g<<1)|0;k=193008+(g<<1)|0;l=193520+(g<<1)|0;if((g|0)>=(m|0)){n=6;break}o=(b[j>>1]|0)-d|0;k=(b[k>>1]|0)-e|0;j=(b[l>>1]|0)-f|0;j=(S(k,k)|0)+(S(o,o)|0)+(S(j,j)|0)|0;if((j|0)<(h|0))if(!j)break;else{h=j;i=g}g=g+1|0}if((n|0)==6){c[46759]=m+1;if((m|0)==256)g=i;else{b[j>>1]=d;b[k>>1]=e;b[l>>1]=f;c[a>>2]=1}}return g|0}function sd(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;h=i;d=c[46760]|0;if(!d){c[46761]=64;d=k6(64)|0;c[46760]=d;e=0}else e=0;while(1){g=b+1|0;f=a[b>>0]|0;if(!(f<<24>>24))break;b=c[46761]|0;if((e|0)>(b+-8|0)){d=b<<1;c[46761]=d;d=n6(c[46760]|0,d)|0;c[46760]=d;d=d+e|0}b=d+1|0;if(f<<24>>24<=-1){a[d>>0]=92;c[h>>2]=f&255;i2(b,81496,h)|0;b=g;d=d+4|0;e=e+4|0;continue}if(f<<24>>24==92){a[d>>0]=92;e=e+1|0;d=b}a[d>>0]=f;b=g;d=d+1|0;e=e+1|0}a[d>>0]=0;l=i;return c[46760]|0}function td(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=l;l=l+16|0;b=d;mF(a,73604)|0;if((c[a+64>>2]|0)==2)mF(a,73619)|0;else mF(a,153748)|0;g=c[c[a+12>>2]>>2]|0;f=c[g+4>>2]|0;e=c[g+8>>2]|0;c[b>>2]=c[g>>2];c[b+4>>2]=f;c[b+8>>2]=e;sF(a,73630,b);l=d;return}function ud(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=l;l=l+32|0;f=g+8|0;e=g;mF(a,73558)|0;b=a+64|0;d=a+12|0;if((c[b>>2]|0)!=2){c[e>>2]=c[(c[d>>2]|0)+28>>2];sF(a,73569,e)}if((c[(c[d>>2]|0)+20>>2]|0)==0?(c[b>>2]|0)!=2:0){b=c[a+476>>2]|0;d=c[a+480>>2]|0;e=c[a+484>>2]|0;c[f>>2]=c[a+472>>2];c[f+4>>2]=b;c[f+8>>2]=d;c[f+12>>2]=e;sF(a,69938,f)}mF(a,73584)|0;mF(a,73597)|0;l=g;return}function vd(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;k=l;l=l+32|0;j=k+24|0;f=k+8|0;i=k;g=c[b+16>>2]|0;a[194048]=0;e=b+12|0;h=g+8|0;if(!(c[(c[e>>2]|0)+28>>2]|0)){c[i>>2]=HB(c[h>>2]|0)|0;sF(b,69869,i);d=b+64|0;if((c[d>>2]|0)==2)mF(b,69902)|0;else mF(b,69884)|0;do if(!(c[(c[e>>2]|0)+20>>2]|0))if((c[d>>2]|0)==2){n=c[b+460>>2]|0;m=c[b+464>>2]|0;d=c[b+468>>2]|0;c[f>>2]=c[b+456>>2];c[f+4>>2]=n;c[f+8>>2]=m;c[f+12>>2]=d;sF(b,69938,f);break}else{mF(b,69914)|0;break}while(0);mF(b,69968)|0;wM(b,c[(c[e>>2]|0)+24>>2]|0,13040);yM(b);d=c[(c[e>>2]|0)+20>>2]|0;if(d|0){c[i>>2]=c[d>>2];c[i+4>>2]=0;wM(b,0,i)}}c[46762]=(a[(c[(c[h>>2]|0)+16>>2]|0)+115>>0]|0)==1?1:-1;if(!(a[194048]|0)){mF(b,69988)|0;a[194048]=1}d=c[g+208>>2]|0;if(d|0){c[j>>2]=zM(d,c[46762]|0)|0;sF(b,70001,j)}l=k;return}function wd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;b=l;l=l+16|0;f=b;c[f>>2]=d;c[f+4>>2]=e;sF(a,69853,f);l=b;return}function xd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0.0,w=0.0;s=l;l=l+144|0;r=s+128|0;q=s+112|0;p=s+72|0;o=s+56|0;n=s+40|0;m=s+32|0;e=s+24|0;b=s+8|0;d=s;f=c[a+456>>2]|0;j=c[a+460>>2]|0;g=c[a+464>>2]|0;i=c[a+468>>2]|0;k=a+12|0;t=(c[(c[k>>2]|0)+28>>2]|0)+1|0;c[d>>2]=t;c[d+4>>2]=t;sF(a,69480,d);if(!(c[(c[k>>2]|0)+20>>2]|0)){c[b>>2]=f;c[b+4>>2]=j;c[b+8>>2]=g;c[b+12>>2]=i;sF(a,69497,b)}d=a+360|0;c[e>>2]=c[d>>2]|0?69531:69541;sF(a,69550,e);b=a+64|0;if((c[b>>2]|0)==1){c[m>>2]=g;c[m+4>>2]=i;sF(a,69575,m)}m=c[a+200>>2]|0;t=c[a+204>>2]|0;c[n>>2]=c[a+196>>2];c[n+4>>2]=m;c[n+8>>2]=t;sF(a,69614,n);if(!(c[(c[k>>2]|0)+20>>2]|0)){c[o>>2]=f;c[o+4>>2]=j;c[o+8>>2]=g-f;c[o+12>>2]=i-j;sF(a,69634,o)}w=+h[a+496>>3];t=c[d>>2]|0;v=+h[a+504>>3];u=+h[a+512>>3];h[p>>3]=+h[a+488>>3];h[p+8>>3]=w;c[p+16>>2]=t;h[p+24>>3]=v;h[p+32>>3]=u;sF(a,69674,p);if((c[b>>2]|0)==1){if((g|0)>14399|(i|0)>14399){t=c[(c[k>>2]|0)+16>>2]|0;c[q>>2]=g;c[q+4>>2]=i;c[q+8>>2]=14400;lb[t&63](69717,q)}c[r>>2]=f;c[r+4>>2]=j;c[r+8>>2]=g;c[r+12>>2]=i;sF(a,69812,r)}l=s;return}function yd(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;d=e;b=a+12|0;if(c[(c[b>>2]|0)+20>>2]|0){mF(a,69404)|0;wM(a,0,(c[(c[b>>2]|0)+20>>2]|0)+4|0)}mF(a,69421)|0;mF(a,69448)|0;c[d>>2]=c[(c[b>>2]|0)+28>>2];sF(a,69463,d);l=e;return}function zd(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=HB(c[(c[a+16>>2]|0)+8>>2]|0)|0;sF(a,69397,d);mF(a,69390)|0;l=b;return}function Ad(a){a=a|0;mF(a,84824)|0;return}function Bd(a){a=a|0;mF(a,69390)|0;return}function Cd(a){a=a|0;mF(a,84824)|0;return}function Dd(a){a=a|0;mF(a,69390)|0;return}function Ed(a){a=a|0;mF(a,84824)|0;return}function Fd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;e=l;l=l+16|0;d=e;if(b|0?(g=(c[a+16>>2]|0)+272|0,c[g>>2]|0):0){mF(a,69286)|0;wF(a,c[g>>2]|0,2);mF(a,69297)|0;c[d>>2]=zM(b,c[46762]|0)|0;sF(a,69301,d)}l=e;return}function Gd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+32|0;j=m+8|0;k=m;f=c[b+16>>2]|0;if(!(+h[f+40>>3]<.5)){Nd(b,f+16|0);f=e+4|0;tF(b,+h[(c[f>>2]|0)+16>>3]);c[j>>2]=c[c[f>>2]>>2];sF(b,69245,j);f=zM(c[e>>2]|0,c[46762]|0)|0;i=e+32|0;switch(a[e+48>>0]|0){case 114:{g=+h[i>>3];break}case 108:{g=0.0;break}default:g=+h[i>>3]*.5}h[d>>3]=+h[d>>3]-g;n=d+8|0;h[n>>3]=+h[e+24>>3]+ +h[n>>3];c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];vF(b,j);mF(b,69260)|0;tF(b,+h[i>>3]);c[k>>2]=f;sF(b,69269,k)}l=m;return}function Hd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+32|0;f=g;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];h[f+16>>3]=+h[b+16>>3]-+h[b>>3];h[f+24>>3]=+h[b+24>>3]-+h[b+8>>3];b=a+16|0;if(d|0?(e=c[b>>2]|0,+h[e+80>>3]>.5):0){Nd(a,e+56|0);wF(a,f,2);mF(a,69203)|0}if(+h[(c[b>>2]|0)+40>>3]>.5){Od(a);Nd(a,(c[b>>2]|0)+16|0);wF(a,f,2);mF(a,69223)|0}l=g;return}function Id(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0;j=l;l=l+16|0;i=j;g=a+16|0;if(e|0?(f=c[g>>2]|0,+h[f+80>>3]>.5):0){Nd(a,f+56|0);mF(a,69124)|0;c[i>>2]=c[b>>2];c[i+4>>2]=c[b+4>>2];c[i+8>>2]=c[b+8>>2];c[i+12>>2]=c[b+12>>2];vF(a,i);mF(a,69133)|0;e=1;while(1){if((e|0)>=(d|0))break;f=b+(e<<4)|0;c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];vF(a,i);mF(a,69142)|0;e=e+1|0}mF(a,69169)|0}if(+h[(c[g>>2]|0)+40>>3]>.5){Od(a);Nd(a,(c[g>>2]|0)+16|0);mF(a,69124)|0;c[i>>2]=c[b>>2];c[i+4>>2]=c[b+4>>2];c[i+8>>2]=c[b+8>>2];c[i+12>>2]=c[b+12>>2];vF(a,i);mF(a,69133)|0;e=1;while(1){if((e|0)>=(d|0))break;g=b+(e<<4)|0;c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];c[i+12>>2]=c[g+12>>2];vF(a,i);mF(a,69142)|0;e=e+1|0}mF(a,69185)|0}l=j;return}function Jd(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0;k=l;l=l+16|0;f=k;i=a+16|0;if(g|0?(j=c[i>>2]|0,+h[j+80>>3]>.5):0){Nd(a,j+56|0);mF(a,69124)|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];vF(a,f);mF(a,69133)|0;e=1;while(1){if((e|0)>=(d|0))break;wF(a,b+(e<<4)|0,3);mF(a,69159)|0;e=e+3|0}mF(a,69169)|0}if(+h[(c[i>>2]|0)+40>>3]>.5){Od(a);Nd(a,(c[i>>2]|0)+16|0);mF(a,69124)|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];vF(a,f);mF(a,69133)|0;e=1;while(1){if((e|0)>=(d|0))break;wF(a,b+(e<<4)|0,3);mF(a,69159)|0;e=e+3|0}mF(a,69151)|0}l=k;return}function Kd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0;g=l;l=l+16|0;f=g;e=a+16|0;if(+h[(c[e>>2]|0)+40>>3]>.5){Od(a);Nd(a,(c[e>>2]|0)+16|0);mF(a,69124)|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];vF(a,f);mF(a,69133)|0;e=1;while(1){if((e|0)>=(d|0))break;i=b+(e<<4)|0;c[f>>2]=c[i>>2];c[f+4>>2]=c[i+4>>2];c[f+8>>2]=c[i+8>>2];c[f+12>>2]=c[i+12>>2];vF(a,f);mF(a,69142)|0;e=e+1|0}mF(a,69151)|0}l=g;return}function Ld(a,b){a=a|0;b=b|0;mF(a,69121)|0;mF(a,b)|0;mF(a,153748)|0;return}function Md(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;g=n+16|0;m=n+8|0;k=n;i=a+16|0;if(f|0?(j=c[i>>2]|0,+h[j+80>>3]>.5):0){Nd(a,j+56|0);mF(a,84719)|0;wF(a,d,e);mF(a,102905)|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];c[g+8>>2]=c[d+8>>2];c[g+12>>2]=c[d+12>>2];vF(a,g);c[k>>2]=e;c[k+4>>2]=b;sF(a,69038,k)}if(+h[(c[i>>2]|0)+40>>3]>.5){Od(a);Nd(a,(c[i>>2]|0)+16|0);mF(a,84719)|0;wF(a,d,e);mF(a,102905)|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];c[g+8>>2]=c[d+8>>2];c[g+12>>2]=c[d+12>>2];vF(a,g);c[m>>2]=e;c[m+4>>2]=b;sF(a,69054,m)}l=n;return}function Nd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0.0,i=0.0;f=l;l=l+32|0;e=f;if(b|0){switch(c[(c[a+16>>2]|0)+4>>2]|0){case 1:case 0:{d=111795;break}case 2:{d=111782;break}case 3:{d=111751;break}default:d=69090}i=+h[b+8>>3];g=+h[b+16>>3];h[e>>3]=+h[b>>3];h[e+8>>3]=i;h[e+16>>3]=g;c[e+24>>2]=d;sF(a,69097,e)}l=f;return}function Od(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;k=m+8|0;j=m;g=b+16|0;i=c[g>>2]|0;d=c[i+160>>2]|0;tF(b,+h[i+152>>3]);mF(b,69071)|0;while(1){if(!d)break;i=d+4|0;f=c[d>>2]|0;if(!f)break;if(!(f2(f,111389)|0)){d=i;continue}else e=f;while(1){d=e+1|0;if(!(a[e>>0]|0))break;else e=d}a:while(1){if(!(a[d>>0]|0))break;c[j>>2]=d;sF(b,69086,j);while(1){e=d+1|0;if(!(a[d>>0]|0)){d=e;continue a}else d=e}}if(!(f2(f,134636)|0))h[(c[g>>2]|0)+152>>3]=0.0;c[k>>2]=f;sF(b,96971,k);d=i}l=m;return}function Pd(b){b=b|0;var d=0;mF(b,75110)|0;d=NA(c[(c[b>>2]|0)+168>>2]|0,75166)|0;if(d|0?a[d>>0]|0:0){mF(b,75177)|0;mF(b,d)|0;mF(b,75201)|0}mF(b,75222)|0;mF(b,75270)|0;mF(b,75324)|0;d=b+12|0;mF(b,DK(c[c[c[d>>2]>>2]>>2]|0)|0)|0;mF(b,78453)|0;mF(b,DK(c[(c[c[d>>2]>>2]|0)+4>>2]|0)|0)|0;mF(b,78463)|0;mF(b,DK(c[(c[c[d>>2]>>2]|0)+8>>2]|0)|0)|0;mF(b,75706)|0;mF(b,75730)|0;return}function Qd(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0.0,k=0.0,m=0.0;i=l;l=l+48|0;g=i+16|0;f=i+8|0;e=i;d=c[b+16>>2]|0;mF(b,74945)|0;d=d+8|0;if(a[(HB(c[d>>2]|0)|0)>>0]|0){mF(b,75669)|0;mF(b,DK(HB(c[d>>2]|0)|0)|0)|0}c[e>>2]=S(c[b+168>>2]|0,c[b+164>>2]|0)|0;sF(b,74950,e);e=c[b+452>>2]|0;c[f>>2]=c[b+448>>2];c[f+4>>2]=e;sF(b,74966,f);m=+h[b+392>>3];k=+h[b+400>>3];j=+h[b+408>>3];h[g>>3]=+h[b+384>>3];h[g+8>>3]=m;h[g+16>>3]=k;h[g+24>>3]=j;sF(b,74999,g);mF(b,75030)|0;mF(b,75066)|0;mF(b,76660)|0;l=i;return}function Rd(a){a=a|0;mF(a,74937)|0;return}function Sd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;ne(a,b,0,101811,c[(c[a+16>>2]|0)+8>>2]|0);mF(a,76660)|0;return}function Td(a){a=a|0;mF(a,74785)|0;return}function Ud(b){b=b|0;var d=0,e=0,f=0,g=0;e=l;l=l+16|0;f=e;g=c[b+16>>2]|0;d=g+8|0;ne(b,c[g+212>>2]|0,0,111795,c[d>>2]|0);mF(b,74889)|0;tF(b,+h[b+488>>3]);mF(b,102905)|0;tF(b,+h[b+496>>3]);c[f>>2]=0-(c[b+360>>2]|0);sF(b,74908,f);tF(b,+h[b+504>>3]);mF(b,102905)|0;tF(b,-+h[b+512>>3]);mF(b,74932)|0;if(a[(HB(c[d>>2]|0)|0)>>0]|0){mF(b,74841)|0;mF(b,DK(HB(c[d>>2]|0)|0)|0)|0;mF(b,74849)|0}l=e;return}function Vd(a){a=a|0;mF(a,74785)|0;return}function Wd(a){a=a|0;var b=0,d=0;d=c[a+16>>2]|0;b=d+8|0;ne(a,c[d+212>>2]|0,0,108307,c[b>>2]|0);mF(a,76660)|0;mF(a,74841)|0;mF(a,DK(HB(c[b>>2]|0)|0)|0)|0;mF(a,74849)|0;return}function Xd(a){a=a|0;mF(a,74785)|0;return}function Yd(a){a=a|0;var b=0,d=0,e=0;d=c[a+16>>2]|0;b=c[a+160>>2]|0;if((b|0)>1)b=c[(c[(c[a>>2]|0)+308>>2]|0)+(b<<2)>>2]|0;else b=0;e=d+8|0;ne(a,c[d+212>>2]|0,b,111782,c[e>>2]|0);mF(a,76660)|0;mF(a,74841)|0;mF(a,DK(HB(c[e>>2]|0)|0)|0)|0;mF(a,74849)|0;return}function Zd(a){a=a|0;mF(a,74785)|0;return}function _d(a){a=a|0;var b=0,d=0;d=c[a+16>>2]|0;b=d+8|0;ne(a,c[d+212>>2]|0,0,111751,c[b>>2]|0);mF(a,76660)|0;mF(a,74841)|0;b=CK(102396,c[b>>2]|0)|0;mF(a,DK(b)|0)|0;l6(b);mF(a,74849)|0;return}function $d(a){a=a|0;mF(a,74785)|0;return}function ae(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;mF(b,74791)|0;if(f|0){mF(b,74794)|0;mF(b,DK(f)|0)|0;mF(b,99045)|0}mF(b,74684)|0;mF(b,76621)|0;if(c|0?a[c>>0]|0:0){mF(b,74802)|0;mF(b,c)|0;mF(b,99045)|0}if(d|0?a[d>>0]|0:0){mF(b,74816)|0;mF(b,EK(d,1)|0)|0;mF(b,99045)|0}if(e|0?a[e>>0]|0:0){mF(b,74831)|0;mF(b,DK(e)|0)|0;mF(b,99045)|0}mF(b,76660)|0;return}function be(a){a=a|0;mF(a,76615)|0;mF(a,74785)|0;return}function ce(e,f,g){e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0,H=0,I=0,J=0,K=0,L=0,M=0;M=l;l=l+176|0;L=M+160|0;K=M+152|0;F=M+136|0;J=M+128|0;E=M+120|0;D=M+112|0;C=M+104|0;B=M+96|0;A=M+88|0;y=M+80|0;w=M+72|0;v=M+64|0;u=M+56|0;t=M+48|0;i=M+40|0;q=M+32|0;s=M+24|0;r=M+16|0;p=M+8|0;o=M;I=c[e+16>>2]|0;mF(e,74316)|0;switch(a[g+48>>0]|0){case 108:{mF(e,74322)|0;break}case 114:{mF(e,74343)|0;break}default:mF(e,74362)|0}H=f+8|0;G=+h[g+24>>3]+ +h[H>>3];h[H>>3]=G;H=I+260|0;if(!(b[H>>1]&512)){mF(e,74384)|0;tF(e,+h[f>>3]);mF(e,74389)|0;tF(e,-G);mF(e,99045)|0}x=g+4|0;f=c[x>>2]|0;n=c[f+8>>2]|0;if(n){f=n+16|0;i=n+8|0;switch(c[(c[(c[(c[e>>2]|0)+168>>2]|0)+16>>2]|0)+244>>2]|0){case 1:{m=n;break}case 2:{m=n+24|0;f=n+32|0;i=n+28|0;break}default:m=n+4|0}j=c[f>>2]|0;f=c[i>>2]|0;k=c[n+12>>2]|0;c[o>>2]=c[m>>2];sF(e,74395,o);i=c[n+24>>2]|0;if(i|0){c[p>>2]=i;sF(e,74412,p)}mF(e,99045)|0;if(f|0){c[r>>2]=f;sF(e,74416,r)}if(k|0){c[s>>2]=k;sF(e,74434,s)}if(!j)j=0;else{c[q>>2]=j;sF(e,74453,q)}}else{c[i>>2]=c[f>>2];sF(e,74470,i);j=0;f=0}i=c[x>>2]|0;if(i|0?(z=c[i+24>>2]|0,z&127|0):0){if(!((f|0)!=0|(z&1|0)==0))sF(e,74488,t);if(!((j|0)!=0|(z&2|0)==0))sF(e,74508,u);if(z&100|0){sF(e,74529,v);if(!(z&4))f=0;else{sF(e,106287,w);f=1}if(z&64){c[y>>2]=f|0?101300:195341;sF(e,74548,y);f=1}if(z&32|0){c[A>>2]=f|0?101300:195341;sF(e,74559,A)}sF(e,99045,B)}if(z&8|0)sF(e,74574,C);if(z&16|0)sF(e,74598,D)}h[E>>3]=+h[(c[x>>2]|0)+16>>3];sF(e,74620,E);f=I+16|0;switch(c[I+48>>2]|0){case 5:{f=c[f>>2]|0;if(C3(f,137615)|0){c[J>>2]=f;sF(e,74638,J)}break}case 1:{E=d[f+1>>0]|0;J=d[f+2>>0]|0;c[F>>2]=d[f>>0];c[F+4>>2]=E;c[F+8>>2]=J;sF(e,74649,F);break}default:Aa(138697,73830,486,74671)}mF(e,74684)|0;if(b[H>>1]&512){c[K>>2]=DK(c[I+212>>2]|0)|0;sF(e,74686,K);mF(e,74735)|0;tF(e,-G);mF(e,74753)|0}mF(e,EK(c[g>>2]|0,1)|0)|0;if(b[H>>1]&512)sF(e,74756,L);mF(e,74776)|0;l=M;return}function de(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;switch(c|0){case 2:{d=ke(a,b,2)|0;break}case 3:{d=le(a)|0;break}default:d=0}mF(a,74280)|0;ie(a,c,d);mF(a,74289)|0;tF(a,+h[b>>3]);mF(a,74295)|0;c=b+8|0;tF(a,-+h[c>>3]);mF(a,74302)|0;tF(a,+h[b+16>>3]-+h[b>>3]);mF(a,74309)|0;tF(a,+h[b+24>>3]-+h[c>>3]);mF(a,73696)|0;return}function ee(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;switch(d|0){case 2:{e=ke(a,b,c)|0;break}case 3:{e=le(a)|0;break}default:e=0}mF(a,74271)|0;ie(a,d,e);mF(a,73686)|0;e=0;while(1){if((e|0)>=(c|0))break;tF(a,+h[b+(e<<4)>>3]);mF(a,101300)|0;tF(a,-+h[b+(e<<4)+8>>3]);mF(a,102905)|0;e=e+1|0}tF(a,+h[b>>3]);mF(a,101300)|0;tF(a,-+h[b+8>>3]);mF(a,73696)|0;return}function fe(a,d,e,f,g,h){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;g=c[a+16>>2]|0;switch(h|0){case 2:{f=ke(a,d,e)|0;break}case 3:{f=le(a)|0;break}default:f=0}mF(a,73866)|0;if(b[g+260>>1]&512){mF(a,73872)|0;mF(a,DK(c[g+212>>2]|0)|0)|0;mF(a,73878)|0}ie(a,h,f);mF(a,73883)|0;me(a,d,e);mF(a,73696)|0;return}function ge(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;mF(a,73676)|0;ie(a,0,0);mF(a,73686)|0;d=0;while(1){if((d|0)>=(c|0))break;tF(a,+h[b+(d<<4)>>3]);mF(a,101300)|0;tF(a,-+h[b+(d<<4)+8>>3]);mF(a,102905)|0;d=d+1|0}mF(a,73696)|0;return}function he(a,b){a=a|0;b=b|0;mF(a,73670)|0;mF(a,DK(b)|0)|0;mF(a,75730)|0;return}function ie(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+96|0;k=q+48|0;p=q+40|0;n=q+32|0;o=q+24|0;j=q+16|0;g=q+8|0;f=q;m=c[b+16>>2]|0;mF(b,73701)|0;a:do switch(d|0){case 2:{c[f>>2]=e;sF(b,73709,f);break}case 3:{c[g>>2]=e;sF(b,73720,g);break}case 0:{mF(b,136010)|0;break}default:{d=m+56|0;f=k;g=d;i=f+40|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(i|0));je(b,k);if((c[m+88>>2]|0)==1){d=a[d+3>>0]|0;switch(d<<24>>24){case -1:case 0:break a;default:{}}h[j>>3]=+(d&255)/255.0;sF(b,73731,j)}}}while(0);mF(b,73750)|0;e=m+16|0;f=k;g=e;i=f+40|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(i|0));je(b,k);d=m+152|0;if(+h[d>>3]!=1.0){mF(b,73761)|0;tF(b,+h[d>>3])}switch(c[m+144>>2]|0){case 1:{c[o>>2]=73801;sF(b,73778,o);break}case 2:{c[n>>2]=73805;sF(b,73778,n);break}default:{}}b:do if((c[m+48>>2]|0)==1){d=a[e+3>>0]|0;switch(d<<24>>24){case -1:case 0:break b;default:{}}h[p>>3]=+(d&255)/255.0;sF(b,73809,p)}while(0);mF(b,99045)|0;l=q;return}function je(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0;g=l;l=l+16|0;f=g;a:do switch(c[e+32>>2]|0){case 5:{mF(b,c[e>>2]|0)|0;break}case 1:if(!(a[e+3>>0]|0)){mF(b,137680)|0;break a}else{i=d[e+1>>0]|0;h=d[e+2>>0]|0;c[f>>2]=d[e>>0];c[f+4>>2]=i;c[f+8>>2]=h;sF(b,75986,f);break a}default:Aa(138697,73830,117,73850)}while(0);l=g;return}function ke(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+112|0;o=t+64|0;r=t+56|0;n=t+48|0;m=t+40|0;i=t+32|0;k=t;q=c[46764]|0;c[46764]=q+1;p=c[b+16>>2]|0;f=+(c[p+136>>2]|0)*3.141592653589793/180.0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;c[k+20>>2]=0;c[k+24>>2]=0;c[k+28>>2]=0;nQ(d,k,e,f,0);c[o>>2]=q;sF(b,74103,o);mF(b,74168)|0;tF(b,+h[k>>3]);mF(b,74173)|0;tF(b,+h[k+8>>3]);mF(b,74180)|0;tF(b,+h[k+16>>3]);mF(b,74187)|0;tF(b,+h[k+24>>3]);mF(b,74194)|0;k=p+140|0;f=+g[k>>2];if(f>0.0){h[i>>3]=f+-.001;sF(b,74199,i)}else mF(b,73975)|0;d=p+56|0;e=o;i=d;j=e+40|0;do{c[e>>2]=c[i>>2];e=e+4|0;i=i+4|0}while((e|0)<(j|0));je(b,o);mF(b,74011)|0;a:do if((c[p+88>>2]|0)==1){d=a[d+3>>0]|0;switch(d<<24>>24){case -1:case 0:{s=7;break a}default:{}}h[m>>3]=+(d&255)/255.0;sF(b,99913,m)}else s=7;while(0);if((s|0)==7)mF(b,74026)|0;mF(b,74029)|0;f=+g[k>>2];if(f>0.0){h[n>>3]=f;sF(b,74199,n)}else mF(b,74035)|0;d=p+96|0;e=o;i=d;j=e+40|0;do{c[e>>2]=c[i>>2];e=e+4|0;i=i+4|0}while((e|0)<(j|0));je(b,o);mF(b,74011)|0;b:do if((c[p+128>>2]|0)==1){d=a[d+3>>0]|0;switch(d<<24>>24){case -1:case 0:{s=14;break b}default:{}}h[r>>3]=+(d&255)/255.0;sF(b,99913,r)}else s=14;while(0);if((s|0)==14)mF(b,74026)|0;mF(b,74239)|0;l=t;return q|0}function le(b){b=b|0;var d=0,e=0.0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0;q=l;l=l+64|0;k=q+16|0;o=q+8|0;j=q;n=c[46763]|0;c[46763]=n+1;m=c[b+16>>2]|0;r=+(c[m+136>>2]|0)*3.141592653589793/180.0;e=r;if(r==0.0){f=50;d=50}else{f=~~((+I(+e)+1.0)*50.0);d=~~((1.0-+J(+e))*50.0)}c[k>>2]=n;c[k+4>>2]=f;c[k+8>>2]=d;sF(b,73891,k);mF(b,73975)|0;d=m+56|0;f=k;g=d;i=f+40|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(i|0));je(b,k);mF(b,74011)|0;a:do if((c[m+88>>2]|0)==1){d=a[d+3>>0]|0;switch(d<<24>>24){case -1:case 0:{p=6;break a}default:{}}h[j>>3]=+(d&255)/255.0;sF(b,99913,j)}else p=6;while(0);if((p|0)==6)mF(b,74026)|0;mF(b,74029)|0;mF(b,74035)|0;d=m+96|0;f=k;g=d;i=f+40|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(i|0));je(b,k);mF(b,74011)|0;b:do if((c[m+128>>2]|0)==1){d=a[d+3>>0]|0;switch(d<<24>>24){case -1:case 0:{p=10;break b}default:{}}h[o>>3]=+(d&255)/255.0;sF(b,99913,o)}else p=10;while(0);if((p|0)==10)mF(b,74026)|0;mF(b,74071)|0;l=q;return n|0}function me(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0;i=l;l=l+16|0;g=i;e=77;f=0;while(1){if((f|0)>=(d|0))break;c[g>>2]=e;sF(a,73888,g);tF(a,+h[b+(f<<4)>>3]);mF(a,101300)|0;tF(a,-+h[b+(f<<4)+8>>3]);e=(f|0)==0?67:32;f=f+1|0}l=i;return}function ne(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;j=l;l=l+16|0;i=j+8|0;h=j;mF(b,74859)|0;mF(b,DK(d)|0)|0;if(e|0){c[h>>2]=DK(e)|0;sF(b,74867,h)}c[i>>2]=f;sF(b,74871,i);d=NA(g,74883)|0;if(d|0?a[d>>0]|0:0){mF(b,102905)|0;mF(b,DK(d)|0)|0}mF(b,99045)|0;l=j;return}function oe(a){a=a|0;var b=0;mF(a,75690)|0;b=a+12|0;mF(a,ye(c[c[c[b>>2]>>2]>>2]|0)|0)|0;mF(a,78453)|0;mF(a,ye(c[(c[c[b>>2]>>2]|0)+4>>2]|0)|0)|0;mF(a,78463)|0;mF(a,ye(c[(c[c[b>>2]>>2]|0)+8>>2]|0)|0)|0;mF(a,75706)|0;return}function pe(b){b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=c[b+16>>2]|0;mF(b,75667)|0;d=d+8|0;if(a[(HB(c[d>>2]|0)|0)>>0]|0){mF(b,75669)|0;mF(b,ye(HB(c[d>>2]|0)|0)|0)|0}c[e>>2]=S(c[b+168>>2]|0,c[b+164>>2]|0)|0;sF(b,75678,e);c[46765]=0;l=f;return}function qe(a){a=a|0;c[46765]=1;return}function re(a){a=a|0;c[46765]=-1;return}function se(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+48|0;i=n+8|0;m=n;f=c[b+16>>2]|0;if(c[f+144>>2]|0?(k=e+4|0,j=~~(+h[(c[k>>2]|0)+16>>3]*+h[b+352>>3]),j|0):0){ze(b);mF(b,75606)|0;g=d+8|0;h[g>>3]=+h[g>>3]-+(j|0)*.55;c[i>>2]=c[d>>2];c[i+4>>2]=c[d+4>>2];c[i+8>>2]=c[d+8>>2];c[i+12>>2]=c[d+12>>2];vF(b,i);mF(b,75620)|0;mF(b,c[e>>2]|0)|0;mF(b,75629)|0;mF(b,75427)|0;g=i;d=f+16|0;f=g+40|0;do{c[g>>2]=c[d>>2];g=g+4|0;d=d+4|0}while((g|0)<(f|0));Ae(b,i);mF(b,75631)|0;i=c[k>>2]|0;k=c[i+8>>2]|0;k=c[((k|0)==0?i:k+4|0)>>2]|0;mF(b,99045)|0;mF(b,k)|0;mF(b,99045)|0;c[m>>2]=j;sF(b,75640,m);switch(a[e+48>>0]|0){case 108:{mF(b,75645)|0;break}case 114:{mF(b,75656)|0;break}default:{}}Be(b);mF(b,153748)|0}l=n;return}function te(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0.0,m=0.0,n=0.0;j=l;l=l+48|0;f=j;g=c[a+16>>2]|0;i=g+144|0;if(c[i>>2]|0){n=+h[b>>3];e=b+8|0;m=+h[e>>3];k=+h[b+24>>3]-m;h[b>>3]=n-(+h[b+16>>3]-n);h[e>>3]=m-k;ze(a);mF(a,75592)|0;wF(a,b,2);mF(a,75427)|0;do if(!d)if(!(c[46765]|0)){mF(a,97610)|0;break}else{mF(a,137499)|0;break}else{b=f;d=g+56|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));Ae(a,f)}while(0);if((c[46765]|0)==1)c[46765]=0;mF(a,75538)|0;tF(a,+h[g+152>>3]);mF(a,75581)|0;b=f;d=g+16|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));Ae(a,f);b=c[i>>2]|0;if((b|0)==1){mF(a,75435)|0;b=c[i>>2]|0}if((b|0)==2)mF(a,75444)|0;Be(a);mF(a,153748)|0}l=j;return}function ue(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0;j=l;l=l+48|0;f=j;g=c[a+16>>2]|0;i=g+144|0;if(c[i>>2]|0){ze(a);mF(a,75564)|0;wF(a,b,d);mF(a,75427)|0;do if(!e)if(!(c[46765]|0)){mF(a,97610)|0;break}else{mF(a,137499)|0;break}else{b=f;d=g+56|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));Ae(a,f)}while(0);if((c[46765]|0)==1)c[46765]=0;mF(a,75538)|0;tF(a,+h[g+152>>3]);mF(a,75581)|0;b=f;d=g+16|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));Ae(a,f);b=c[i>>2]|0;if((b|0)==1){mF(a,75435)|0;b=c[i>>2]|0}if((b|0)==2)mF(a,75444)|0;Be(a);mF(a,153748)|0}l=j;return}function ve(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0;m=l;l=l+48|0;i=m;j=c[a+16>>2]|0;k=j+144|0;if(c[k>>2]|0){ze(a);mF(a,75413)|0;wF(a,b,d);mF(a,75427)|0;e=i;f=j+16|0;g=e+40|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));Ae(a,i);mF(a,75538)|0;tF(a,+h[j+152>>3]);e=c[k>>2]|0;if((e|0)==1){mF(a,75435)|0;e=c[k>>2]|0}if((e|0)==2)mF(a,75444)|0;mF(a,75547)|0;Be(a);mF(a,153748)|0}l=m;return}function we(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+48|0;g=i;e=c[a+16>>2]|0;h=e+144|0;if(c[h>>2]|0){ze(a);mF(a,75413)|0;wF(a,b,d);mF(a,75427)|0;f=g;b=e+16|0;d=f+40|0;do{c[f>>2]=c[b>>2];f=f+4|0;b=b+4|0}while((f|0)<(d|0));Ae(a,g);b=c[h>>2]|0;if((b|0)==1){mF(a,75435)|0;b=c[h>>2]|0}if((b|0)==2)mF(a,75444)|0;Be(a);mF(a,153748)|0}l=i;return}function xe(a,b){a=a|0;b=b|0;mF(a,75410)|0;mF(a,ye(b)|0)|0;mF(a,153748)|0;return}function ye(a){a=a|0;return a|0}function ze(b){b=b|0;if(!(a[b+144>>0]|0))mF(b,75535)|0;else mF(b,c[b+148>>2]|0)|0;return}function Ae(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0;g=l;l=l+16|0;f=g;a:do switch(c[e+32>>2]|0){case 5:{mF(b,c[e>>2]|0)|0;break}case 1:if(!(a[e+3>>0]|0)){mF(b,97610)|0;break a}else{i=d[e+1>>0]|0;h=d[e+2>>0]|0;c[f>>2]=d[e>>0];c[f+4>>2]=i;c[f+8>>2]=h;sF(b,75986,f);break a}default:Aa(138697,75453,49,75517)}while(0);l=g;return}function Be(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;g=l;l=l+16|0;f=g;h=c[a+16>>2]|0;e=h+8|0;switch(c[h+12>>2]|0){case 8:{b=1;d=111782;break}case 10:{b=0;d=111782;break}case 3:case 2:case 9:{b=1;d=111751;break}case 7:case 6:case 11:{b=0;d=111751;break}case 0:{b=1;d=111795;break}case 4:{b=0;d=75489;break}case 1:{b=1;d=111795;break}case 5:{b=0;d=111795;break}default:Aa(138697,75453,106,75472)}h=c[(c[e>>2]|0)+8>>2]|0;c[f>>2]=b;c[f+4>>2]=d;c[f+8>>2]=h;sF(a,75501,f);l=g;return}function Ce(a){a=a|0;var b=0;mF(a,78425)|0;mF(a,78433)|0;b=a+12|0;mF(a,Ne(c[c[c[b>>2]>>2]>>2]|0)|0)|0;mF(a,78453)|0;mF(a,Ne(c[(c[c[b>>2]>>2]|0)+4>>2]|0)|0)|0;mF(a,78463)|0;mF(a,Ne(c[(c[c[b>>2]>>2]|0)+8>>2]|0)|0)|0;mF(a,78466)|0;return}function De(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0;j=l;l=l+32|0;i=j+24|0;g=j+16|0;f=j+8|0;e=j;d=c[b+16>>2]|0;c[46769]=~~(+h[b+232>>3]-+h[b+216>>3]);c[46768]=~~(+h[b+224>>3]-+h[b+208>>3]);mF(b,77112)|0;mF(b,77119)|0;d=HB(c[d+8>>2]|0)|0;if(a[d>>0]|0){mF(b,77188)|0;mF(b,Ne(d)|0)|0;mF(b,77196)|0}c[e>>2]=S(c[b+168>>2]|0,c[b+164>>2]|0)|0;sF(b,77205,e);mF(b,77225)|0;mF(b,77260)|0;mF(b,77288)|0;mF(b,77294)|0;mF(b,77337)|0;mF(b,77378)|0;mF(b,77397)|0;mF(b,77414)|0;mF(b,77462)|0;mF(b,77515)|0;mF(b,77591)|0;mF(b,77667)|0;mF(b,77676)|0;mF(b,77699)|0;mF(b,77726)|0;mF(b,77779)|0;mF(b,77801)|0;mF(b,77846)|0;mF(b,77858)|0;mF(b,77868)|0;mF(b,77894)|0;mF(b,77779)|0;mF(b,77946)|0;mF(b,77846)|0;mF(b,77858)|0;mF(b,77990)|0;mF(b,77699)|0;mF(b,77726)|0;mF(b,77779)|0;mF(b,77946)|0;mF(b,77846)|0;mF(b,77858)|0;mF(b,77868)|0;mF(b,77894)|0;mF(b,77779)|0;mF(b,77801)|0;mF(b,77846)|0;mF(b,77858)|0;mF(b,78003)|0;mF(b,78011)|0;mF(b,78017)|0;mF(b,78031)|0;mF(b,78039)|0;mF(b,78072)|0;e=(c[46769]|0)+10|0;c[f>>2]=c[46768];c[f+4>>2]=e;sF(b,78149,f);mF(b,78179)|0;mF(b,78188)|0;mF(b,78246)|0;mF(b,78256)|0;mF(b,78321)|0;f=c[46769]|0;c[g>>2]=c[46768];c[g+4>>2]=f;sF(b,78358,g);g=c[46769]|0;c[i>>2]=c[46768];c[i+4>>2]=g;sF(b,78386,i);l=j;return}function Ee(a){a=a|0;mF(a,76663)|0;mF(a,76675)|0;mF(a,76683)|0;mF(a,76746)|0;mF(a,76675)|0;mF(a,76791)|0;mF(a,76840)|0;mF(a,76894)|0;mF(a,76675)|0;mF(a,76994)|0;mF(a,77043)|0;mF(a,76675)|0;mF(a,77095)|0;return}function Fe(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;j=l;l=l+32|0;i=j+16|0;h=j+8|0;g=j;mF(b,76621)|0;if(d|0?a[d>>0]|0:0){c[g>>2]=Ne(d)|0;sF(b,76624,g)}if(e|0?a[e>>0]|0:0){c[h>>2]=Ne(e)|0;sF(b,76635,h)}if(f|0?a[f>>0]|0:0){c[i>>2]=Ne(f)|0;sF(b,76647,i)}mF(b,76660)|0;l=j;return}function Ge(a){a=a|0;mF(a,76615)|0;return}function He(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,i=0.0,j=0.0,k=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0.0,D=0.0;A=l;l=l+112|0;y=A+96|0;z=A+88|0;w=A+80|0;q=A+72|0;v=A+64|0;t=A+56|0;s=A+48|0;r=A+40|0;p=A+24|0;o=A+8|0;n=A;x=c[b+16>>2]|0;m=+h[f+32>>3];switch(a[f+48>>0]|0){case 108:{j=+h[e>>3];break}case 114:{j=+h[e>>3]-m;break}default:j=+h[e>>3]-m*.5}g=f+40|0;i=+h[g>>3];u=f+4|0;k=+h[(c[u>>2]|0)+16>>3];if(i<k){i=k*1.1+1.0;h[g>>3]=i}D=j+-8.0;B=+((c[46769]|0)>>>0)-+h[e+8>>3];C=k/5.0+(k<12.0?1.4:2.0);k=C+(B-i);sF(b,76277,n);h[o>>3]=D;h[o+8>>3]=k;sF(b,76214,o);h[p>>3]=m+j+8.0-D;h[p+8>>3]=C+B-k;sF(b,76238,p);mF(b,76312)|0;mF(b,76346)|0;g=c[u>>2]|0;e=c[g+8>>2]|0;if(e){c[r>>2]=c[e+4>>2];sF(b,76436,r);g=c[e+8>>2]|0;if(g|0){c[s>>2]=g;sF(b,76455,s)}g=c[e+12>>2]|0;if(g|0){c[t>>2]=g;sF(b,76472,t)}g=c[e+16>>2]|0;if(g|0){c[v>>2]=g;sF(b,76490,v)}}else{c[q>>2]=c[g>>2];sF(b,76436,q)}h[w>>3]=+h[(c[u>>2]|0)+16>>3];sF(b,76506,w);g=x+16|0;switch(c[x+48>>2]|0){case 5:{g=c[g>>2]|0;if(C3(g,137615)|0){c[z>>2]=g;sF(b,76526,z)}break}case 1:{x=d[g+1>>0]|0;z=d[g+2>>0]|0;c[y>>2]=d[g>>0];c[y+4>>2]=x;c[y+8>>2]=z;sF(b,76536,y);break}default:Aa(138697,76e3,438,76557)}mF(b,76570)|0;mF(b,Ne(c[f>>2]|0)|0)|0;mF(b,76581)|0;mF(b,76604)|0;l=A;return}function Ie(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0.0,j=0,k=0.0,m=0.0;e=l;l=l+32|0;f=e+16|0;j=e;mF(a,76178)|0;m=+h[b>>3];i=+h[b+16>>3]-m;k=+h[b+8>>3];g=+h[b+24>>3]-k;k=+((c[46769]|0)>>>0)-(k+g);h[j>>3]=m-i;h[j+8>>3]=k;sF(a,76214,j);h[f>>3]=i*2.0;h[f+8>>3]=g*2.0;sF(a,76238,f);Re(a,d);mF(a,76060)|0;Pe(a);mF(a,76266)|0;l=e;return}function Je(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0,i=0.0,j=0,k=0,m=0,n=0;m=l;l=l+48|0;k=m+24|0;j=m+8|0;g=m;mF(a,75783)|0;n=c[46769]|0;c[g>>2]=c[46768];c[g+4>>2]=n;sF(a,76036,g);Re(a,e);mF(a,76060)|0;Pe(a);mF(a,76063)|0;g=d+-1|0;e=0;while(1){if((e|0)>=(d|0))break;i=+h[b+(e<<4)>>3];f=+((c[46769]|0)>>>0)-+h[b+(e<<4)+8>>3];if(!e){mF(a,76090)|0;h[j>>3]=i;h[j+8>>3]=f;sF(a,76156,j);mF(a,76167)|0}else{h[k>>3]=i;h[k+8>>3]=f;sF(a,76156,k)}if((e|0)==(g|0))mF(a,76170)|0;e=e+1|0}mF(a,75899)|0;l=m;return}function Ke(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;f=l;l=l+16|0;e=f;mF(a,75783)|0;h=c[46769]|0;c[e>>2]=c[46768];c[e+4>>2]=h;sF(a,76036,e);Re(a,g);mF(a,76060)|0;Pe(a);mF(a,76063)|0;Se(a,b,d);mF(a,76076)|0;l=f;return}function Le(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0.0;k=l;l=l+48|0;j=k+24|0;i=k+8|0;f=k;mF(a,75783)|0;g=c[46769]|0;c[f>>2]=c[46768];c[f+4>>2]=g;sF(a,75820,f);mF(a,75860)|0;f=d+-1|0;g=b+8|0;e=0;while(1){if((e|0)>=(d|0))break;if(!e){mF(a,75872)|0;m=+((c[46769]|0)>>>0)-+h[g>>3];h[i>>3]=+h[b>>3];h[i+8>>3]=m;sF(a,75876,i);mF(a,75887)|0}else{m=+((c[46769]|0)>>>0)-+h[b+(e<<4)+8>>3];h[j>>3]=+h[b+(e<<4)>>3];h[j+8>>3]=m;sF(a,75876,j)}if((e|0)==(f|0))mF(a,75891)|0;e=e+1|0}mF(a,75895)|0;Pe(a);mF(a,75899)|0;l=k;return}function Me(a,b){a=a|0;b=b|0;mF(a,75718)|0;mF(a,Ne(b)|0)|0;mF(a,75730)|0;return}function Ne(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+16|0;e=u;d=c[46766]|0;if(!d){c[46767]=64;d=IK(64)|0;c[46766]=d}s=e+15|0;r=e+14|0;g=0;q=0;o=0;e=0;f=0;a:while(1){n=(o|0)!=0;m=g;p=b;j=e;k=f;b:while(1){if(!p){t=29;break a}b=a[p>>0]|0;if(!(b<<24>>24)){t=29;break a}e=c[46767]|0;if((q|0)>(e+-8|0)){d=e<<1;c[46767]=d;d=KK(c[46766]|0,d)|0;c[46766]=d;d=d+q|0;e=a[p>>0]|0}else e=b;b=p+1|0;switch(e<<24>>24){case 60:{e=4;f=102454;t=24;break b}case 62:{e=4;f=102437;t=25;break b}case 38:{t=11;break b}case 45:{e=5;f=102448;i=m;break b}default:{}}if(n&e<<24>>24==32){t=13;break}switch(e<<24>>24){case 34:{e=6;f=102411;t=24;break b}case 39:{e=5;f=102442;t=25;break b}default:{}}if(e<<24>>24<0){i=127;f=0}else{e=1;f=p;t=24;break}while(1){g=i&255;h=e&255;if(g>>>0>=h>>>0)break;e=h&i&255;i=g>>>1;f=f+1|0}g=(f|0)>1;j=v6(j|0,k|0,6)|0;k=g?f:m;f=w6(e&255|0,0,(g?0:j)|0,(g?0:D)|0)|0;g=D;m=k+-1|0;if((k|0)>1){p=b;j=f;k=g}else{t=19;break}}if((t|0)==11){t=0;f=(Oe(p)|0)==0;e=f?5:1;f=f?102431:p;i=m}else if((t|0)==13){t=0;f=(a[o>>0]|0)==32;e=f?6:1;f=f?102424:p;i=m}else if((t|0)==19){t=0;a[s>>0]=59;e=3;i=r;j=f;k=g;while(1){f=J6(j|0,k|0,10,0)|0;h=i+-1|0;a[i>>0]=f|48;f=j;j=E6(j|0,k|0,10,0)|0;g=k;k=D;o=e;e=e+1|0;if((o|0)>11){t=21;break a}if(!(g>>>0>0|(g|0)==0&f>>>0>9))break;else i=h}f=i+-2|0;a[h>>0]=35;a[f>>0]=38;i=m}else if((t|0)==24){t=0;i=m}else if((t|0)==25){t=0;i=m}h=d+e|0;g=e;while(1){if(!g)break;a[d>>0]=a[f>>0]|0;g=g+-1|0;f=f+1|0;d=d+1|0}g=i;q=e+q|0;o=p;d=h;e=j;f=k}if((t|0)==21){_3(75736,46,1,c[15715]|0)|0;$a(1)}else if((t|0)==29){a[d>>0]=0;l=u;return c[46766]|0}return 0}function Oe(b){b=b|0;var c=0,d=0;d=b+1|0;c=a[d>>0]|0;a:do if(c<<24>>24==35){d=b+2|0;c=a[d>>0]|0;switch(c<<24>>24){case 88:case 120:break;default:{b=d;while(1){d=b+1|0;if((c+-48&255)>=10)break a;b=d;c=a[d>>0]|0}}}d=b+3|0;while(1){c=a[d>>0]|0;if((c+-48&255)>=10)switch(c<<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}d=d+1|0}}else while(1){b=d+1|0;if(((c&-33)+-65&255)>=26)break a;d=b;c=a[b>>0]|0}while(0);return c<<24>>24==59|0}function Pe(a){a=a|0;var b=0.0,d=0,e=0,f=0,g=0,i=0,j=0,k=0;k=l;l=l+48|0;d=k+8|0;j=k;i=c[a+16>>2]|0;mF(a,75911)|0;e=d;f=i+16|0;g=e+40|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));Qe(a,d);b=+h[i+152>>3];if(b!=1.0){h[j>>3]=b;sF(a,75929,j)}switch(c[i+144>>2]|0){case 1:{mF(a,75946)|0;break}case 2:{mF(a,75964)|0;break}default:{}}mF(a,75981)|0;l=k;return}function Qe(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0;g=l;l=l+16|0;f=g;a:do switch(c[e+32>>2]|0){case 5:{mF(b,c[e>>2]|0)|0;break}case 1:if(!(a[e+3>>0]|0)){mF(b,136010)|0;break a}else{i=d[e+1>>0]|0;h=d[e+2>>0]|0;c[f>>2]=d[e>>0];c[f+4>>2]=i;c[f+8>>2]=h;sF(b,75986,f);break a}default:Aa(138697,76e3,94,76020)}while(0);l=g;return}function Re(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=l;l=l+48|0;f=g;if(!b)mF(a,76139)|0;else{d=c[a+16>>2]|0;mF(a,76109)|0;b=f;d=d+56|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));Qe(a,f);mF(a,76136)|0}l=g;return}function Se(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0.0,k=0.0;i=l;l=l+32|0;g=i;e=76090;f=0;while(1){if((f|0)>=(d|0))break;k=+h[b+(f<<4)>>3];j=+((c[46769]|0)>>>0)-+h[b+(f<<4)+8>>3];c[g>>2]=e;h[g+8>>3]=k;h[g+16>>3]=j;sF(a,76093,g);e=(f|0)==0?76106:195341;f=f+1|0}mF(a,99045)|0;l=i;return}function Te(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b+8|0;e=b;mF(a,80723)|0;mF(a,80738)|0;mF(a,80777)|0;mF(a,80826)|0;c[e>>2]=137615;c[e+4>>2]=80914;sF(a,80895,e);c[d>>2]=137499;c[d+4>>2]=80920;sF(a,80895,d);l=b;return}function Ue(a){a=a|0;var b=0,d=0,e=0.0,f=0.0,g=0.0,i=0.0,j=0;b=l;l=l+64|0;d=b+8|0;j=b;c[j>>2]=HB(c[(c[a+16>>2]|0)+8>>2]|0)|0;sF(a,79676,j);i=+h[a+368>>3]*.5*+h[a+488>>3];g=+h[a+376>>3]*.5*+h[a+496>>3];f=+N(+(i/500.0))*180.0/3.141592653589793*2.0;e=+N(+(g/500.0))*180.0/3.141592653589793*2.0;h[d>>3]=i;h[d+8>>3]=g;h[d+16>>3]=-500.0;h[d+24>>3]=i;h[d+32>>3]=g;h[d+40>>3]=0.0;h[d+48>>3]=(f>e?f:e)*1.2;sF(a,79698,d);mF(a,79845)|0;mF(a,80675)|0;l=b;return}function Ve(a){a=a|0;mF(a,79659)|0;return}function We(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0;f=l;l=l+16|0;h=f;c[h>>2]=b;c[h+4>>2]=d;c[h+8>>2]=e;sF(a,79629,h);g[46770]=+(S(d,-10)|0);l=f;return}function Xe(a){a=a|0;mF(a,79612)|0;return}function Ye(a){a=a|0;mF(a,79594)|0;return}function Ze(a){a=a|0;mF(a,79578)|0;return}function _e(a){a=a|0;mF(a,79557)|0;g[46770]=+g[46770]+-2.0;return}function $e(a){a=a|0;mF(a,79538)|0;return}function af(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=HB(c[(c[a+16>>2]|0)+8>>2]|0)|0;sF(a,79516,d);l=b;return}function bf(a){a=a|0;mF(a,79500)|0;return}function cf(a){a=a|0;mF(a,79482)|0;g[46770]=+g[46770]+-5.0;return}function df(a){a=a|0;mF(a,79466)|0;g[46770]=+g[46770]+5.0;return}function ef(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0.0;r=l;l=l+144|0;o=r+104|0;q=r+56|0;m=r+32|0;j=r+24|0;i=r;p=e+4|0;n=c[p>>2]|0;f=+h[n+16>>3];n=c[n>>2]|0;c[i>>2]=c[e>>2];h[i+8>>3]=f;c[i+16>>2]=n;sF(b,79312,i);g[46771]=+g[46770]+-9.0;i=e+32|0;switch(a[e+48>>0]|0){case 108:{f=+h[d>>3];break}case 114:{f=+h[d>>3]-+h[i>>3];k=5;break}default:{f=+h[d>>3]-+h[i>>3]*.5;k=5}}if((k|0)==5)h[d>>3]=f;u=+h[b+488>>3];t=(f+ +h[b+504>>3])*u;s=(+h[d+8>>3]+ +h[b+512>>3])*+h[b+496>>3];h[j>>3]=u*+h[(c[p>>2]|0)+16>>3];n=lf(b,79364,j)|0;f=+(c[b+360>>2]|0);h[m>>3]=0.0;h[m+8>>3]=0.0;h[m+16>>3]=f;i=lf(b,78581,m)|0;f=+g[46771];h[o>>3]=t;h[o+8>>3]=s;h[o+16>>3]=f;d=lf(b,78613,o)|0;j=o;k=(c[b+16>>2]|0)+16|0;m=j+40|0;do{c[j>>2]=c[k>>2];j=j+4|0;k=k+4|0}while((j|0)<(m|0));o=mf(b,o,0.0)|0;e=c[e>>2]|0;c[q>>2]=c[c[p>>2]>>2];h[q+8>>3]=.25;h[q+16>>3]=0.0;c[q+24>>2]=e;c[q+28>>2]=79451;c[q+32>>2]=n;c[q+36>>2]=i;c[q+40>>2]=d;c[q+44>>2]=o;q=lf(b,79376,q)|0;mF(b,q)|0;l6(q);l6(i);l6(o);l6(d);l6(n);l=r;return}function ff(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,i=0.0,j=0.0,k=0.0,m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0;z=l;l=l+240|0;x=z+192|0;y=z+152|0;t=z+128|0;r=z+104|0;o=z+80|0;n=z+48|0;e=z+24|0;m=z;mF(a,79189)|0;g[46771]=+g[46770]+-6.0;j=+h[b>>3];i=+h[a+488>>3];p=(j+ +h[a+504>>3])*i;k=+h[b+8>>3];A=+h[a+496>>3];q=(k+ +h[a+512>>3])*A;j=i*(+h[b+16>>3]-j);k=A*(+h[b+24>>3]-k);s=a+16|0;A=j+k;i=+h[(c[s>>2]|0)+152>>3]/A*.5*5.0;h[m>>3]=j;h[m+8>>3]=A*.25;h[m+16>>3]=k;b=lf(a,78549,m)|0;m=a+360|0;A=+(c[m>>2]|0);h[e>>3]=90.0;h[e+8>>3]=0.0;h[e+16>>3]=A;e=lf(a,78581,e)|0;A=+g[46771];h[x>>3]=p;h[x+8>>3]=q;h[x+16>>3]=A;f=lf(a,78613,x)|0;u=x;v=(c[s>>2]|0)+16|0;w=u+40|0;do{c[u>>2]=c[v>>2];u=u+4|0;v=v+4|0}while((u|0)<(w|0));v=mf(a,x,0.0)|0;h[n>>3]=1.0;h[n+8>>3]=i;c[n+16>>2]=b;c[n+20>>2]=e;c[n+24>>2]=f;c[n+28>>2]=v;w=lf(a,79204,n)|0;mF(a,w)|0;l6(b);l6(e);l6(f);l6(v);l6(w);if(d|0){h[o>>3]=j;h[o+8>>3]=k;h[o+16>>3]=1.0;f=lf(a,78549,o)|0;A=+(c[m>>2]|0);h[r>>3]=0.0;h[r+8>>3]=0.0;h[r+16>>3]=A;e=lf(a,78581,r)|0;A=+g[46771];h[t>>3]=p;h[t+8>>3]=q;h[t+16>>3]=A;b=lf(a,78613,t)|0;u=x;v=(c[s>>2]|0)+56|0;w=u+40|0;do{c[u>>2]=c[v>>2];u=u+4|0;v=v+4|0}while((u|0)<(w|0));x=mf(a,x,0.0)|0;h[y>>3]=0.0;h[y+8>>3]=0.0;h[y+16>>3]=0.0;c[y+24>>2]=f;c[y+28>>2]=e;c[y+32>>2]=b;c[y+36>>2]=x;y=lf(a,79250,y)|0;mF(a,y)|0;l6(f);l6(e);l6(b);l6(x);l6(y)}l=z;return}function gf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,i=0,j=0,k=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;N=l;l=l+336|0;E=N+296|0;M=N+288|0;L=N+272|0;K=N+264|0;J=N+240|0;G=N+232|0;D=N+208|0;C=N+184|0;A=N+160|0;z=N+152|0;y=N+136|0;x=N+128|0;w=N+96|0;v=N+88|0;u=N+56|0;f=N+48|0;m=N+24|0;k=N;mF(a,79054)|0;g[46771]=+g[46770]+-2.0;s=a+488|0;t=a+496|0;q=+h[t>>3];h[k>>3]=+h[s>>3];h[k+8>>3]=q;h[k+16>>3]=1.0;k=lf(a,78549,k)|0;B=a+360|0;q=+(c[B>>2]|0);h[m>>3]=0.0;h[m+8>>3]=0.0;h[m+16>>3]=q;m=lf(a,78581,m)|0;q=+g[46771]+-2.0;h[E>>3]=0.0;h[E+8>>3]=0.0;h[E+16>>3]=q;n=lf(a,78613,E)|0;F=a+16|0;i=E;j=(c[F>>2]|0)+16|0;r=i+40|0;do{c[i>>2]=c[j>>2];i=i+4|0;j=j+4|0}while((i|0)<(r|0));j=mf(a,E,0.0)|0;c[f>>2]=78676;c[f+4>>2]=d+1;H=a+512|0;I=a+504|0;i=0;f=lf(a,78645,f)|0;while(1){o=+h[H>>3];p=+h[I>>3];q=+h[(c[F>>2]|0)+152>>3];if((i|0)>=(d|0))break;o=o+ +h[b+(i<<4)+8>>3];h[u>>3]=p+ +h[b+(i<<4)>>3];h[u+8>>3]=o;h[u+16>>3]=0.0;h[u+24>>3]=q;O=lf(a,78690,u)|0;c[v>>2]=f;c[v+4>>2]=O;r=lf(a,78719,v)|0;l6(O);l6(f);i=i+1|0;f=r}o=o+ +h[b+8>>3];h[w>>3]=p+ +h[b>>3];h[w+8>>3]=o;h[w+16>>3]=0.0;h[w+24>>3]=q;w=lf(a,78690,w)|0;c[x>>2]=f;c[x+4>>2]=w;O=lf(a,78719,x)|0;l6(w);l6(f);c[y>>2]=k;c[y+4>>2]=m;c[y+8>>2]=n;c[y+12>>2]=j;y=lf(a,79069,y)|0;c[z>>2]=O;c[z+4>>2]=y;O=lf(a,78774,z)|0;l6(y);mF(a,O)|0;l6(k);l6(m);l6(n);l6(j);l6(O);if(e|0){q=+h[t>>3];h[A>>3]=+h[s>>3];h[A+8>>3]=q;h[A+16>>3]=1.0;n=lf(a,78549,A)|0;q=+(c[B>>2]|0);h[C>>3]=0.0;h[C+8>>3]=0.0;h[C+16>>3]=q;m=lf(a,78581,C)|0;q=+g[46771]+-2.0;h[D>>3]=0.0;h[D+8>>3]=0.0;h[D+16>>3]=q;k=lf(a,78613,D)|0;i=E;j=(c[F>>2]|0)+56|0;r=i+40|0;do{c[i>>2]=c[j>>2];i=i+4|0;j=j+4|0}while((i|0)<(r|0));j=mf(a,E,.25)|0;c[G>>2]=d;i=0;f=lf(a,79114,G)|0;while(1){if((i|0)>=(d|0))break;q=+h[b+(i<<4)+8>>3]+ +h[H>>3];h[J>>3]=+h[b+(i<<4)>>3]+ +h[I>>3];h[J+8>>3]=q;h[J+16>>3]=0.0;G=lf(a,79129,J)|0;c[K>>2]=f;c[K+4>>2]=G;O=lf(a,79151,K)|0;l6(G);l6(f);i=i+1|0;f=O}c[L>>2]=n;c[L+4>>2]=m;c[L+8>>2]=k;c[L+12>>2]=j;L=lf(a,79161,L)|0;c[M>>2]=f;c[M+4>>2]=L;O=lf(a,78774,M)|0;l6(L);mF(a,O)|0;l6(n);l6(m);l6(k);l6(j);l6(O)}l=N;return}function hf(a,b,d,e,f,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0.0,D=0.0;B=l;l=l+208|0;e=B+160|0;A=B+152|0;z=B+136|0;y=B+128|0;x=B+96|0;w=B+88|0;v=B+56|0;k=B+48|0;s=B+24|0;r=B;mF(a,78981)|0;g[46771]=+g[46770]+-4.0;C=+h[a+496>>3];h[r>>3]=+h[a+488>>3];h[r+8>>3]=C;h[r+16>>3]=1.0;r=lf(a,78549,r)|0;C=+(c[a+360>>2]|0);h[s>>3]=0.0;h[s+8>>3]=0.0;h[s+16>>3]=C;s=lf(a,78581,s)|0;C=+g[46771]+-2.0;h[e>>3]=0.0;h[e+8>>3]=0.0;h[e+16>>3]=C;t=lf(a,78613,e)|0;u=a+16|0;f=e;i=(c[u>>2]|0)+56|0;j=f+40|0;do{c[f>>2]=c[i>>2];f=f+4|0;i=i+4|0}while((f|0)<(j|0));n=mf(a,e,0.0)|0;c[k>>2]=78995;c[k+4>>2]=d+2;o=a+504|0;p=a+512|0;q=d+-1|0;m=0;e=lf(a,78645,k)|0;while(1){if((m|0)>=(d|0))break;f=b+(m<<4)|0;i=b+(m<<4)+8|0;D=+h[i>>3]+ +h[p>>3];C=+h[(c[u>>2]|0)+152>>3];h[v>>3]=+h[f>>3]+ +h[o>>3];h[v+8>>3]=D;h[v+16>>3]=0.0;h[v+24>>3]=C;k=lf(a,78690,v)|0;c[w>>2]=e;c[w+4>>2]=k;j=lf(a,78719,w)|0;l6(k);l6(e);if((m|0)==0|(m|0)==(q|0)){C=+h[i>>3]+ +h[p>>3];D=+h[(c[u>>2]|0)+152>>3];h[x>>3]=+h[f>>3]+ +h[o>>3];h[x+8>>3]=C;h[x+16>>3]=0.0;h[x+24>>3]=D;k=lf(a,78690,x)|0;c[y>>2]=j;c[y+4>>2]=k;e=lf(a,78719,y)|0;l6(k);l6(j)}else e=j;m=m+1|0}c[z>>2]=r;c[z+4>>2]=s;c[z+8>>2]=t;c[z+12>>2]=n;b=lf(a,79004,z)|0;c[A>>2]=e;c[A+4>>2]=b;d=lf(a,78774,A)|0;l6(b);mF(a,d)|0;l6(r);l6(s);l6(t);l6(n);l6(d);l=B;return}function jf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0,y=0.0;v=l;l=l+160|0;e=v+120|0;u=v+112|0;t=v+96|0;s=v+88|0;r=v+56|0;m=v+48|0;n=v+24|0;q=v;mF(a,78533)|0;g[46771]=+g[46770]+-6.0;w=+h[a+496>>3];h[q>>3]=+h[a+488>>3];h[q+8>>3]=w;h[q+16>>3]=1.0;q=lf(a,78549,q)|0;w=+(c[a+360>>2]|0);h[n>>3]=0.0;h[n+8>>3]=0.0;h[n+16>>3]=w;n=lf(a,78581,n)|0;w=+g[46771];h[e>>3]=0.0;h[e+8>>3]=0.0;h[e+16>>3]=w;o=lf(a,78613,e)|0;p=a+16|0;f=e;i=(c[p>>2]|0)+16|0;j=f+40|0;do{c[f>>2]=c[i>>2];f=f+4|0;i=i+4|0}while((f|0)<(j|0));i=mf(a,e,0.0)|0;c[m>>2]=78676;c[m+4>>2]=d;j=a+504|0;k=a+512|0;f=0;e=lf(a,78645,m)|0;while(1){if((f|0)>=(d|0))break;y=+h[b+(f<<4)+8>>3]+ +h[k>>3];w=+h[(c[p>>2]|0)+152>>3];h[r>>3]=+h[b+(f<<4)>>3]+ +h[j>>3];h[r+8>>3]=y;h[r+16>>3]=0.0;h[r+24>>3]=w;x=lf(a,78690,r)|0;c[s>>2]=e;c[s+4>>2]=x;m=lf(a,78719,s)|0;l6(x);l6(e);f=f+1|0;e=m}c[t>>2]=q;c[t+4>>2]=n;c[t+8>>2]=o;c[t+12>>2]=i;t=lf(a,78728,t)|0;c[u>>2]=e;c[u+4>>2]=t;x=lf(a,78774,u)|0;l6(t);mF(a,x)|0;l6(q);l6(n);l6(o);l6(i);l6(x);l=v;return}function kf(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;sF(a,78514,e);l=d;return}function lf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+1056|0;h=i;e=i+24|0;f=i+8|0;c[f>>2]=d;g=k2(e,1024,b,f)|0;do if((g|0)>=0)if((g|0)>1023){a=k6(g+1|0)|0;c[f>>2]=d;j2(a,b,f)|0;break}else{a=Y3(e)|0;break}else{a=c[(c[a+12>>2]|0)+16>>2]|0;c[h>>2]=v2(c[(L1()|0)>>2]|0)|0;lb[a&63](78959,h);a=Y3(195341)|0}while(0);l=i;return a|0}function mf(a,b,e){a=a|0;b=b|0;e=+e;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0;q=l;l=l+112|0;o=q+104|0;j=q+96|0;i=q+64|0;m=q+48|0;p=q+32|0;n=q+16|0;k=q;g=c[b+32>>2]|0;a:do switch(g|0){case 5:{f=c[b>>2]|0;if(!(f2(f,136603)|0)){c[k>>2]=78796;h[k+8>>3]=e;f=lf(a,78779,k)|0;break a}if(!(f2(f,133733)|0)){c[n>>2]=78800;h[n+8>>3]=e;f=lf(a,78779,n)|0;break a}if(!(f2(f,131732)|0)){c[p>>2]=78806;h[p+8>>3]=e;f=lf(a,78779,p)|0;break a}else{c[m>>2]=f;h[m+8>>3]=e;f=lf(a,78779,m)|0;break a}}case 1:{s=+(d[b+1>>0]|0)*.00390625;r=+(d[b+2>>0]|0)*.00390625;h[i>>3]=+(d[b>>0]|0)*.00390625;h[i+8>>3]=s;h[i+16>>3]=r;h[i+24>>3]=e;f=lf(a,78811,i)|0;break}default:{p=c[15715]|0;n=c[b>>2]|0;c[j>>2]=g;c[j+4>>2]=n;z4(p,78850,j)|0;Aa(138697,78900,436,78920)}}while(0);c[o>>2]=f;p=lf(a,78937,o)|0;l6(f);l=q;return p|0}function nf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=l;l=l+32|0;d=b+24|0;e=b+16|0;g=b;f=c[a+16>>2]|0;h=c[c[a+12>>2]>>2]|0;j=c[h>>2]|0;i=c[h+4>>2]|0;h=c[h+8>>2]|0;c[g>>2]=81366;c[g+4>>2]=j;c[g+8>>2]=i;c[g+12>>2]=h;sF(a,83976,g);f=HB(c[f+8>>2]|0)|0;c[e>>2]=81366;c[e+4>>2]=f;sF(a,84008,e);c[d>>2]=81366;sF(a,84022,d);l=b;return}function of(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=81366;sF(a,83924,d);l=b;return}function pf(a){a=a|0;var b=0.0,d=0.0,e=0.0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;W=l;l=l+304|0;V=W+296|0;U=W+288|0;T=W+272|0;R=W+264|0;Q=W+256|0;P=W+248|0;O=W+240|0;N=W+232|0;M=W+224|0;L=W+216|0;K=W+208|0;J=W+200|0;I=W+192|0;G=W+184|0;F=W+176|0;E=W+168|0;D=W+160|0;C=W+152|0;A=W+144|0;z=W+136|0;y=W+128|0;x=W+120|0;w=W+112|0;v=W+104|0;u=W+96|0;t=W+88|0;s=W+80|0;r=W+72|0;q=W+64|0;p=W+56|0;o=W+48|0;S=W+40|0;B=W+24|0;n=W+16|0;m=W;f=c[a+456>>2]|0;g=c[a+460>>2]|0;i=c[a+464>>2]|0;j=c[a+468>>2]|0;k=a+360|0;a:do if(c[4035]|0){switch(c[k>>2]|0){case 90:case 0:break a;default:{}}Bf();c[4035]=0}while(0);e=(+(j|0)-+(g|0))/72.0;b=(+(i|0)-+(f|0))/72.0;k=(c[k>>2]|0)==90;d=k?e:b;e=k?b:e;h[m>>3]=d;h[m+8>>3]=e;sF(a,81553,m);c[n>>2]=81366;sF(a,81568,n);if(d>0.0){b=+V3(d);h[19233]=b;b=b+(3.0-+(~~b|0))}else b=3.0;b=+H(10.0,+b);h[19233]=b;h[B>>3]=b;h[B+8>>3]=b;sF(a,81737,B);c[S>>2]=81366;sF(a,81772,S);c[o>>2]=81366;sF(a,81830,o);c[p>>2]=81366;sF(a,81890,p);c[q>>2]=81366;sF(a,81939,q);c[r>>2]=81366;sF(a,81978,r);c[s>>2]=81366;sF(a,82029,s);c[t>>2]=81366;sF(a,82091,t);c[u>>2]=81366;sF(a,82201,u);c[v>>2]=81366;sF(a,82292,v);c[w>>2]=81366;sF(a,82346,w);c[x>>2]=81366;sF(a,82415,x);sF(a,82451,y);c[z>>2]=81366;sF(a,82576,z);c[A>>2]=81366;sF(a,82605,A);sF(a,82645,C);c[D>>2]=81366;sF(a,82738,D);c[E>>2]=81366;sF(a,82797,E);c[F>>2]=81366;sF(a,82878,F);sF(a,82948,G);c[I>>2]=81366;sF(a,83037,I);c[J>>2]=81366;sF(a,83142,J);c[K>>2]=81366;sF(a,83218,K);c[L>>2]=81366;sF(a,83257,L);c[M>>2]=81366;sF(a,83356,M);c[N>>2]=81366;sF(a,83402,N);sF(a,83491,O);c[P>>2]=81366;sF(a,83532,P);c[Q>>2]=81366;sF(a,83615,Q);c[R>>2]=81366;sF(a,83716,R);h[T>>3]=e;h[T+8>>3]=d;sF(a,83780,T);sF(a,83808,U);sF(a,83816,V);l=W;return}function qf(a){a=a|0;var b=0;b=l;l=l+16|0;sF(a,81546,b);l=b;return}function rf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0.0,j=0.0,k=0,m=0.0,n=0,o=0,p=0,q=0,r=0;q=l;l=l+48|0;p=q+24|0;o=q+8|0;n=q;j=+h[e+32>>3];switch(a[e+48>>0]|0){case 108:{i=+h[d>>3];break}case 114:{g=j;f=4;break}default:{g=j*.5;f=4}}if((f|0)==4){i=+h[d>>3]-g;h[d>>3]=i}k=e+4|0;f=c[k>>2]|0;g=+h[f+16>>3];r=d+8|0;m=+h[r>>3]+g/216.0;h[r>>3]=m;i=j/144.0+i;h[d>>3]=i;f=c[f>>2]|0;do if(f){d=c[46772]|0;if(d|0?(f2(d,f)|0)==0:0)break;c[n>>2]=zf(f)|0;sF(b,81445,n);r=c[k>>2]|0;c[46772]=c[r>>2];g=+h[r+16>>3]}while(0);f=~~g;f=(f|0)>1?f:1;if((f|0)!=(c[46773]|0)){j=+h[19233];c[o>>2]=f;h[o+8>>3]=j;sF(b,81453,o);c[46773]=f}c[p>>2]=Af(c[e>>2]|0)|0;h[p+8>>3]=i;h[p+16>>3]=m;sF(b,81474,p);l=q;return}function sf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0.0,j=0.0,k=0.0;e=l;l=l+48|0;f=e;i=+h[b>>3];k=(+h[b+16>>3]-i)*2.0/72.0;g=+h[b+8>>3];j=(+h[b+24>>3]-g)*2.0/72.0;c[f>>2]=1;c[f+4>>2]=d|0?81387:195341;h[f+8>>3]=k;h[f+16>>3]=j;h[f+24>>3]=i/72.0;h[f+32>>3]=g/72.0;sF(a,81393,f);l=e;return}function tf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;e=l;l=l+16|0;xf(c[a+16>>2]|0,e+8|0,e);yf(a,b,d,1);l=e;return}function uf(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0.0,w=0;t=l;l=l+128|0;s=t+112|0;q=t+104|0;p=t+96|0;e=t+88|0;n=t+16|0;o=t;k=c[a+16>>2]|0;j=k6((d*140|0)+140|0)|0;xf(k,t+116|0,t+80|0);v=+h[b>>3];k=n+48|0;h[k>>3]=v;u=+h[b+8>>3];h[n+56>>3]=u;c[e>>2]=~~(v+(v>=0.0?.5:-.5));c[e+4>>2]=~~(u+(u>=0.0?.5:-.5));i=o+8|0;e=j+(i2(j,81371,e)|0)|0;r=1;g=0;while(1){m=g+3|0;if((m|0)>=(d|0))break;c[n>>2]=c[k>>2];c[n+4>>2]=c[k+4>>2];c[n+8>>2]=c[k+8>>2];c[n+12>>2]=c[k+12>>2];f=1;while(1){if((f|0)==4){f=1;break}w=f+g|0;h[n+(f<<4)>>3]=+h[b+(w<<4)>>3];h[n+(f<<4)+8>>3]=+h[b+(w<<4)+8>>3];f=f+1|0}while(1){if((f|0)==7)break;iP(o,n,3,+(f|0)/6.0,0,0);u=+h[o>>3];v=+h[i>>3];c[p>>2]=~~(u+(u>=0.0?.5:-.5));c[p+4>>2]=~~(v+(v>=0.0?.5:-.5));f=f+1|0;e=e+(i2(e,81371,p)|0)|0}r=r+6|0;g=m}c[q>>2]=j;sF(a,81378,q);l6(j);f=r+-1|0;e=0;while(1){if((e|0)>=(r|0))break;c[s>>2]=((e|0)%(f|0)|0|0)!=0&1;sF(a,81383,s);e=e+1|0}mF(a,153748)|0;l=t;return}function vf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=l;l=l+16|0;xf(c[a+16>>2]|0,e+8|0,e);yf(a,b,d,0);l=e;return}function wf(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=81366;c[e+4>>2]=b;sF(a,81359,e);l=d;return}function xf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0;switch(c[a+144>>2]|0){case 1:{e=10.0;a=1;break}case 2:{e=10.0;a=2;break}default:{e=0.0;a=0}}c[b>>2]=a;h[d>>3]=e;return}function yf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0.0,m=0.0;j=l;l=l+16|0;i=j+8|0;g=j;f=0;while(1){if((f|0)>=(d|0))break;m=+h[b+(f<<4)>>3];k=+h[b+(f<<4)+8>>3];c[g>>2]=~~(m+(m>=0.0?.5:-.5));c[g+4>>2]=~~(k+(k>=0.0?.5:-.5));sF(a,81371,g);f=f+1|0}if(e|0){k=+h[b>>3];m=+h[b+8>>3];c[i>>2]=~~(k+(k>=0.0?.5:-.5));c[i+4>>2]=~~(m+(m>=0.0?.5:-.5));sF(a,81371,i)}mF(a,153748)|0;l=j;return}function zf(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=l;l=l+16|0;f=h;a:while(1){d=15868;while(1){e=c[d+4>>2]|0;if(!e)break;if(!(f2(e,b)|0)){g=6;break a}d=d+8|0}c[f>>2]=81527;c[f+4>>2]=b;dA(1,81501,f)|0;d=I4(b,45)|0;if(!d){d=81544;break}a[d>>0]=0}l=h;return d|0}function Af(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;h=i;d=c[46774]|0;if(!d){c[46775]=64;d=k6(64)|0;c[46774]=d;e=0}else e=0;while(1){g=b+1|0;f=a[b>>0]|0;if(!(f<<24>>24))break;b=c[46775]|0;if((e|0)>(b+-8|0)){d=b<<1;c[46775]=d;d=n6(c[46774]|0,d)|0;c[46774]=d;d=d+e|0}b=d+1|0;if(f<<24>>24<=-1){a[d>>0]=92;c[h>>2]=f&255;i2(b,81496,h)|0;b=g;d=d+4|0;e=e+4|0;continue}if(f<<24>>24==92){a[d>>0]=92;e=e+1|0;d=b}a[d>>0]=f;b=g;d=d+1|0;e=e+1|0}a[d>>0]=0;l=i;return c[46774]|0}function Bf(){var a=0,b=0;a=l;l=l+16|0;b=a;c[b>>2]=81527;c[b+4>>2]=91570;dA(0,83906,b)|0;l=a;return}function Cf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0.0,j=0,k=0;e=l;l=l+32|0;f=e+8|0;j=e;b=b+8|0;k=c[b>>2]|0;c[j>>2]=k;c[j+4>>2]=k;sF(a,84495,j);i=(+h[d+16>>3]+ +h[d>>3])*.5;g=(+h[d+24>>3]+ +h[d+8>>3])*.5;c[f>>2]=c[b>>2];h[f+8>>3]=i;h[f+16>>3]=g;sF(a,84537,f);l=e;return}function Df(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0.0,j=0.0,k=0.0;e=l;l=l+48|0;f=e;i=+h[d>>3];k=+h[d+16>>3]-i;g=+h[d+24>>3];j=g-+h[d+8>>3];g=+(~~(+h[a+232>>3]-+h[a+216>>3])>>>0)-g;c[f>>2]=c[b+8>>2];h[f+8>>3]=k;h[f+16>>3]=j;h[f+24>>3]=i;h[f+32>>3]=g;sF(a,84582,f);mF(a,84674)|0;l=e;return}function Ef(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return}function Ff(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0;t=l;l=l+160|0;s=t+152|0;r=t+136|0;q=t+120|0;k=t+112|0;n=t+104|0;m=t+88|0;j=t+72|0;i=t+64|0;o=t;if(!a)Aa(111583,84679,212,84698);if(!b)Aa(111613,84679,213,84698);p=b+8|0;if(!(c[p>>2]|0))Aa(111616,84679,214,84698);if(c[b+52>>2]|0){c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];c[o+8>>2]=c[d+8>>2];c[o+12>>2]=c[d+12>>2];b=o+32|0;d=d+16|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];f=+h[o>>3];h[o+16>>3]=f;h[o+24>>3]=+h[o+40>>3];h[o+48>>3]=+h[b>>3];g=+h[o+8>>3];h[o+56>>3]=g;if(e<<24>>24){sF(a,84719,i);b=0;while(1){if((b|0)==4)break;u=+h[o+(b<<4)+8>>3];h[j>>3]=+h[o+(b<<4)>>3];h[j+8>>3]=u;sF(a,84722,j);b=b+1|0}h[m>>3]=f;h[m+8>>3]=g;sF(a,84722,m);m=c[p>>2]|0;c[n>>2]=4;c[n+4>>2]=m;sF(a,84729,n)}sF(a,84719,k);b=0;while(1){if((b|0)==4)break;u=+h[o+(b<<4)+8>>3];h[q>>3]=+h[o+(b<<4)>>3];h[q+8>>3]=u;sF(a,84722,q);b=b+1|0}h[r>>3]=f;h[r+8>>3]=g;sF(a,84722,r);r=c[p>>2]|0;c[s>>2]=4;c[s+4>>2]=r;sF(a,84744,s)}l=t;return}function Gf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0.0;p=l;l=l+112|0;o=p+24|0;n=p+16|0;m=p;g=p+28|0;if(!b)Aa(111583,84679,153,84760);if(!d)Aa(111613,84679,154,84760);if(!(c[d+8>>2]|0))Aa(111616,84679,155,84760);j=d+52|0;k=d+60|0;if(c[j>>2]|0){f=c[k>>2]|0;if((f|0)==100)i=18;else{db[f&127](d);c[j>>2]=0;c[k>>2]=0;c[d+56>>2]=0;i=10}}else i=10;do if((i|0)==10){if(!((MF(d)|0)<<24>>24))break;f=V5(c[d+20>>2]|0)|0;if((c[d+24>>2]&-2|0)==6){i3(f,g)|0;g=c[g+36>>2]|0;c[d+56>>2]=g;f=K4(0,g,1,1,f,0)|0;c[j>>2]=f;a[d+16>>0]=1}else f=c[j>>2]|0;if(f|0)c[k>>2]=100;NF(d);if(c[j>>2]|0)i=18}while(0);if((i|0)==18){q=+h[e+8>>3]-+(c[d+36>>2]|0);h[m>>3]=+h[e>>3]-+(c[d+32>>2]|0);h[m+8>>3]=q;sF(b,84778,m);if(!(a[d+16>>0]|0)){c[n>>2]=c[d+12>>2];sF(b,84809,n)}else xM(b,d);sF(b,84824,o)}l=p;return}function Hf(a){a=a|0;E3(c[a+52>>2]|0,c[a+56>>2]|0)|0;return}function If(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=l;l=l+80|0;f=g+48|0;if(!a)Aa(111583,84679,121,84834);e=c[a+16>>2]|0;if(!e)Aa(100203,84679,123,84834);if(!b)Aa(111613,84679,124,84834);d=b+8|0;if(!(c[d>>2]|0))Aa(111616,84679,125,84834);if(!(c[e+8>>2]|0))Aa(139182,84679,128,84834);else{sF(a,84854,g);sF(a,84863,g+8|0);sF(a,84890,g+16|0);sF(a,84915,g+24|0);sF(a,84944,g+32|0);sF(a,84972,g+40|0);c[f>>2]=c[d>>2];sF(a,84979,f);sF(a,85018,g+56|0);sF(a,111309,g+64|0);l=g;return}}function Jf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0.0;i=l;l=l+128|0;g=i+80|0;f=i;if(!a)Aa(111583,84679,97,85023);if(!b)Aa(111613,84679,98,85023);e=c[b+8>>2]|0;if(!e)Aa(111616,84679,99,85023);else{m=+h[d>>3];j=~~(m+(m>=0.0?.5:-.5));m=+h[d+8>>3];b=~~(m+(m>=0.0?.5:-.5));m=+h[d+16>>3];k=~~(m+(m>=0.0?.5:-.5));m=+h[d+24>>3];d=~~(m+(m>=0.0?.5:-.5));c[f>>2]=2;c[f+4>>2]=5;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=-1;c[f+24>>2]=1;c[f+28>>2]=-1;c[f+32>>2]=0;h[f+40>>3]=0.0;c[f+48>>2]=0;c[f+52>>2]=0;c[f+56>>2]=0;c[f+60>>2]=0;c[f+64>>2]=0;c[f+68>>2]=5;c[f+72>>2]=0;c[f+76>>2]=e;sF(a,85042,f);c[g>>2]=j;c[g+4>>2]=b;c[g+8>>2]=j;c[g+12>>2]=d;c[g+16>>2]=k;c[g+20>>2]=d;c[g+24>>2]=k;c[g+28>>2]=b;c[g+32>>2]=j;c[g+36>>2]=b;sF(a,85100,g);l=i;return}}function Kf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0,k=0.0,m=0,n=0,o=0,p=0,q=0.0;p=l;l=l+96|0;o=p+56|0;n=p+32|0;m=p;q=+h[d+16>>3];i=+h[d>>3];k=q-i;j=+h[d+24>>3];f=+h[d+8>>3];g=j-f;i=(q+i-k)*.5;if(!a)Aa(111583,84679,53,85132);if(!b)Aa(111613,84679,54,85132);e=b+8|0;if(!(c[e>>2]|0))Aa(111616,84679,55,85132);mF(a,85151)|0;mF(a,c[e>>2]|0)|0;e=a+360|0;f=-((j+f+g)*.5);if(!(c[e>>2]|0)){h[o>>3]=k;h[o+8>>3]=g;h[o+16>>3]=i;h[o+24>>3]=f;sF(a,85280,o)}else{h[m>>3]=g;h[m+8>>3]=k;h[m+16>>3]=i;h[m+24>>3]=f;sF(a,85171,m);c[n>>2]=c[e>>2];h[n+8>>3]=i;h[n+16>>3]=f;sF(a,85250,n)}mF(a,85359)|0;l=p;return}function Lf(a){a=a|0;var b=0,c=0;b=gC(a)|0;while(1){if(!b)break;Mf(b);b=hC(a,b)|0}c=gC(a)|0;while(1){if(!c)break;b=UA(a,c)|0;while(1){if(!b)break;Nf(b);b=WA(a,b)|0}c=hC(a,c)|0}return}function Mf(a){a=a|0;var b=0,d=0;RC(a,137750,304,1)|0;qP(a);oQ(a,c[(c[(uC(a)|0)+16>>2]|0)+116>>2]&1);a=a+16|0;c[(c[a>>2]|0)+176>>2]=0;b=HK(20)|0;d=c[a>>2]|0;c[d+172>>2]=b;c[d+184>>2]=0;d=HK(20)|0;b=c[a>>2]|0;c[b+180>>2]=d;c[b+200>>2]=0;b=HK(12)|0;d=c[a>>2]|0;c[d+196>>2]=b;c[d+192>>2]=0;d=HK(12)|0;b=c[a>>2]|0;c[b+188>>2]=d;c[b+208>>2]=0;b=HK(12)|0;a=c[a>>2]|0;c[a+204>>2]=b;c[a+216>>2]=1;return}function Nf(d){d=d|0;var e=0,f=0,g=0,h=0,i=0;RC(d,137763,176,1)|0;rP(d)|0;h=XO(d,c[47236]|0,1,0)|0;g=d+16|0;c[(c[g>>2]|0)+156>>2]=h;h=_O(c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0,c[47230]|0,195341)|0;i=_O(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0,c[47230]|0,195341)|0;e=c[g>>2]|0;f=e+154|0;b[f>>1]=1;b[e+168>>1]=1;if((h|0)==(i|0)&(a[h>>0]|0)!=0){b[f>>1]=1e3;i=e+156|0;c[i>>2]=(c[i>>2]|0)*100}if(Jk(d)|0){i=c[g>>2]|0;b[i+154>>1]=0;c[i+156>>2]=0}i=(XO(d,c[47256]|0,0,0)|0)&255;a[(c[g>>2]|0)+152>>0]=i;i=(XO(d,c[47237]|0,1,0)|0)&65535;b[(c[g>>2]|0)+170>>1]=i;return}function Of(a){a=a|0;var b=0,d=0;Pf(c[(c[a+16>>2]|0)+192>>2]|0);d=gC(a)|0;while(1){if(!d)break;b=UA(a,d)|0;while(1){if(!b)break;WP(b);b=WA(a,b)|0}Qf(d);d=hC(a,d)|0}Rf(a);return}function Pf(b){b=b|0;var d=0,e=0,f=0,g=0;while(1){if(!b)break;f=b+16|0;g=c[(c[f>>2]|0)+164>>2]|0;Sf(b);d=c[f>>2]|0;if((a[d+156>>0]|0)!=1){b=g;continue}e=c[d+180>>2]|0;if(e){l6(e);d=c[f>>2]|0}e=c[d+172>>2]|0;if(e){l6(e);d=c[f>>2]|0}l6(d);l6(b);b=g}return}function Qf(a){a=a|0;var b=0,d=0,e=0;e=a+16|0;b=c[e>>2]|0;d=c[b+172>>2]|0;if(d){l6(d);b=c[e>>2]|0}d=c[b+180>>2]|0;if(d){l6(d);b=c[e>>2]|0}d=c[b+188>>2]|0;if(d){l6(d);b=c[e>>2]|0}d=c[b+196>>2]|0;if(d){l6(d);b=c[e>>2]|0}d=c[b+204>>2]|0;if(d){l6(d);b=c[e>>2]|0}AK(c[b+104>>2]|0);AK(c[(c[e>>2]|0)+108>>2]|0);b=c[(c[e>>2]|0)+8>>2]|0;if(b|0)db[c[(c[b+4>>2]|0)+4>>2]&127](a);TC(a,137750)|0;return}function Rf(a){a=a|0;var d=0,e=0,f=0,g=0,h=0;d=MD(a)|0;while(1){if(!d)break;Rf(d);d=ND(d)|0}if(RC(a,137786,0,1)|0){g=a+16|0;d=c[g>>2]|0;e=c[d+184>>2]|0;if(e){l6(e);d=c[g>>2]|0}e=c[d+268>>2]|0;if(e){l6(e);d=c[g>>2]|0}e=c[d+216>>2]|0;if(e){l6(e);d=c[g>>2]|0}e=c[d+196>>2]|0;do if(e|0){f=b[d+236>>1]|0;while(1){if((f|0)>(b[d+238>>1]|0))break;l6(c[e+(f<<6)+12>>2]|0);h=c[g>>2]|0;f=f+1|0;d=h;e=c[h+196>>2]|0}if((b[d+236>>1]|0)==-1){l6(e+-64|0);break}else{l6(e);break}}while(0);if((vC(a)|0)!=(a|0)){AK(c[(c[g>>2]|0)+12>>2]|0);TC(a,137786)|0}}return}function Sf(a){a=a|0;var b=0,d=0,e=0;e=a+16|0;d=c[e>>2]|0;b=c[d+176>>2]|0;while(1){a=b+-1|0;if((b|0)<=0)break;b=c[(c[d+172>>2]|0)+(a<<2)>>2]|0;fh(b);l6(c[b+16>>2]|0);l6(b);b=a;d=c[e>>2]|0}b=c[d+184>>2]|0;while(1){a=b+-1|0;if((b|0)<=0)break;b=c[(c[(c[e>>2]|0)+180>>2]|0)+(a<<2)>>2]|0;fh(b);l6(c[b+16>>2]|0);l6(b);b=a}return}function Tf(a){a=a|0;if(qB(a)|0)Uf(a);rM(a);return}function Uf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=l;l=l+48|0;g=h+32|0;f=h;b=jH(a,-1,8)|0;d=kH(a,0,f)|0;iH(a,2,8,f)|0;d=(d|0)==0;e=(b|0)<0;if(e&d)Vf(a);else{if(d)c[f+16>>2]=3;else b=e?8:b;c[f+8>>2]=b;c[f+20>>2]=0;e=EG(a,g,0)|0;b=c[g>>2]|0;do if((b|0)==1){Vf(a);b=0}else{if(c[(c[(c[a+16>>2]|0)+8>>2]|0)+84>>2]|0){Vf(a);b=0;break}c[f+12>>2]=1;d=0;while(1){if((d|0)>=(b|0))break;b=c[e+(d<<2)>>2]|0;Wf(b,a);Vf(b);d=d+1|0;b=c[g>>2]|0}Xf(a);hH(c[g>>2]|0,e,a,f)|0;Yf(a);Zf(c[g>>2]|0,e,a);b=0}while(0);while(1){if((b|0)>=(c[g>>2]|0))break;f=e+(b<<2)|0;l6(c[(c[(c[f>>2]|0)+16>>2]|0)+8>>2]|0);Rf(c[f>>2]|0);tC(a,c[f>>2]|0)|0;b=b+1|0}l6(e)}l=h;return}function Vf(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+48|0;k=m+40|0;e=m;i=XO(a,DA(a,0,85374,0)|0,-1,1)|0;mQ(a,10);d=Ik(a,e)|0;$f(a,a);Lf(a);f=(i|0)==1;g=e+32|0;h=(i|0)==2;i=(i|0)==3;j=e+28|0;e=e+24|0;while(1){uj(a,d);if(f){d=3;break}if(c[g>>2]|0){dA(0,85380,k)|0;c[e>>2]=0;d=0}Eh(a,(d|0)!=0&1);if(h){d=7;break}Hi(a,d);if(i){d=9;break}n=(c[j>>2]|0)+-1|0;c[j>>2]=n;if(!((n|0)!=0&(c[e>>2]|0)!=0)){d=11;break}}if((d|0)==3)ag(a,1);else if((d|0)==7)ag(a,2);else if((d|0)==9)ag(a,2);else if((d|0)==11){if(b[(c[a+16>>2]|0)+136>>1]&16)bg(a);ok(a);fg(a);if((bP(NA(a,85471)|0)|0)<<24>>24)il(a)}l=m;return}function Wf(b,d){b=b|0;d=d|0;var e=0,f=0;RC(b,137786,280,1)|0;e=HK(96)|0;b=c[b+16>>2]|0;c[b+8>>2]=e;d=c[d+16>>2]|0;f=c[d+8>>2]|0;h[e>>3]=+h[f>>3];h[e+24>>3]=+h[f+24>>3];c[b+144>>2]=c[d+144>>2];a[b+115>>0]=a[d+115>>0]|0;c[b+116>>2]=c[d+116>>2];c[b+248>>2]=c[d+248>>2];c[b+252>>2]=c[d+252>>2];c[b+244>>2]=c[d+244>>2];return}function Xf(a){a=a|0;var b=0,d=0,e=0;b=HK((qB(a)|0)<<4)|0;d=gC(a)|0;while(1){if(!d)break;e=c[d+16>>2]|0;c[e+132>>2]=b;h[b>>3]=+h[e+16>>3]/72.0;h[b+8>>3]=+h[e+24>>3]/72.0;b=b+16|0;d=hC(a,d)|0}return}function Yf(a){a=a|0;var b=0,d=0,e=0,f=0;e=c[(c[(gC(a)|0)+16>>2]|0)+132>>2]|0;b=e;d=gC(a)|0;while(1){if(!d)break;f=c[d+16>>2]|0;c[f+132>>2]=0;h[f+16>>3]=+h[b>>3]*72.0;h[f+24>>3]=+h[b+8>>3]*72.0;b=b+16|0;d=hC(a,d)|0}l6(e);return}function Zf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=0;f=0;while(1){if((e|0)>=(a|0))break;i=(c[(c[(c[b+(e<<2)>>2]|0)+16>>2]|0)+180>>2]|0)+f|0;e=e+1|0;f=i}i=d+16|0;c[(c[i>>2]|0)+180>>2]=f;g=HK((f<<2)+4|0)|0;c[(c[i>>2]|0)+184>>2]=g;g=0;e=1;while(1){if((g|0)>=(a|0))break;h=(c[b+(g<<2)>>2]|0)+16|0;f=1;while(1){d=c[h>>2]|0;if((f|0)>(c[d+180>>2]|0))break;d=DG(c[(c[d+184>>2]|0)+(f<<2)>>2]|0)|0;c[(c[(c[i>>2]|0)+184>>2]|0)+(e<<2)>>2]=d;_f(c[(c[(c[h>>2]|0)+184>>2]|0)+(f<<2)>>2]|0,d);f=f+1|0;e=e+1|0}g=g+1|0}return}function _f(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;RC(d,137786,280,1)|0;g=d+16|0;d=(c[g>>2]|0)+16|0;f=b+16|0;b=(c[f>>2]|0)+16|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];c[d+16>>2]=c[b+16>>2];c[d+20>>2]=c[b+20>>2];c[d+24>>2]=c[b+24>>2];c[d+28>>2]=c[b+28>>2];b=c[f>>2]|0;d=c[g>>2]|0;a[d+275>>0]=a[b+275>>0]|0;d=d+48|0;b=b+48|0;e=d+64|0;do{c[d>>2]=c[b>>2];d=d+4|0;b=b+4|0}while((d|0)<(e|0));b=c[(c[f>>2]|0)+180>>2]|0;c[(c[g>>2]|0)+180>>2]=b;d=HK((b<<2)+4|0)|0;c[(c[g>>2]|0)+184>>2]=d;d=1;while(1){e=c[f>>2]|0;if((d|0)>(b|0))break;e=DG(c[(c[e+184>>2]|0)+(d<<2)>>2]|0)|0;c[(c[(c[g>>2]|0)+184>>2]|0)+(d<<2)>>2]=e;_f(c[(c[(c[f>>2]|0)+184>>2]|0)+(d<<2)>>2]|0,e);d=d+1|0}f=e+12|0;c[(c[g>>2]|0)+12>>2]=c[f>>2];c[f>>2]=0;return}function $f(a,b){a=a|0;b=b|0;if((vC(a)|0)!=(a|0))RC(a,137786,280,1)|0;if((a|0)==(b|0))c[(c[(vC(a)|0)+16>>2]|0)+188>>2]=a;a=MD(a)|0;while(1){if(!a)break;$f(a,b);a=ND(a)|0}return}function ag(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+1040|0;k=m+8|0;j=m;e=m+16|0;f=DA(a,1,87443,195341)|0;g=DA(a,1,85514,195341)|0;h=(b|0)>0;d=(b|0)==1;b=gC(a)|0;while(1){if(!b)break;if(h?(i=b+16|0,c[j>>2]=c[(c[i>>2]|0)+232>>2],i2(e,137696,j)|0,HA(b,f,e)|0,!d):0){c[k>>2]=c[(c[i>>2]|0)+236>>2];i2(e,137696,k)|0;HA(b,g,e)|0}b=hC(a,b)|0}l=m;return}function bg(a){a=a|0;var b=0,c=0,d=0;c=LD(a,86947,0)|0;if(c|0){b=gC(c)|0;while(1){if(!b)break;d=hC(c,b)|0;nh(a,b);cg(a,b);Qf(b);sC(a,b)|0;b=d}PD(a,c)|0}return}function cg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=c[(c[b+16>>2]|0)+232>>2]|0;i=a+16|0;a=c[(c[i>>2]|0)+196>>2]|0;d=c[a+(j<<6)>>2]|0;h=a+(j<<6)+4|0;g=0;e=0;while(1){if((e|0)>=(d|0)){f=7;break}f=c[(c[h>>2]|0)+(e<<2)>>2]|0;e=e+1|0;if((f|0)==(b|0)){f=4;break}else g=f}if((f|0)==4){while(1){if((e|0)>=(d|0))break;f=c[a+(j<<6)+4>>2]|0;c[f+(e+-1<<2)>>2]=c[f+(e<<2)>>2];f=c[(c[i>>2]|0)+196>>2]|0;e=e+1|0;d=c[f+(j<<6)>>2]|0;a=f;f=4}c[a+(j<<6)>>2]=d+-1}else if((f|0)==7?(g|0)!=(b|0):0)Aa(85480,85487,248,85497);return}function dg(a){a=a|0;return c[(c[(vC(a)|0)+16>>2]|0)+188>>2]|0}function eg(b,c){b=b|0;c=c|0;var d=0;d=a[b+28>>0]|0;if(a[c+28>>0]|0)if(d<<24>>24){d=~~(+h[b>>3]-+h[c>>3]);if(!d)d=~~(+h[b+8>>3]-+h[c+8>>3])}else d=-1;else d=d<<24>>24!=0&1;return d|0}function fg(a){a=a|0;gg(a,1);return}function gg(d,e){d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0;_=l;l=l+656|0;P=_+592|0;O=_+552|0;g=_+544|0;U=_+96|0;V=_;Z=_+632|0;W=d+16|0;Y=b[(c[W>>2]|0)+136>>1]&14;Q=Y&65535;R=U+16|0;c[R>>2]=_+368;S=V+16|0;c[S>>2]=_+192;do if(Y<<16>>16){T=Y<<16>>16==4;f=d+60|0;do if(T){hg(d);if(!(a[(c[(c[f>>2]|0)+16>>2]|0)+113>>0]&1))C=9;else{dA(0,85520,g)|0;C=9}}else if(Y<<16>>16==8){hg(d);if(!(a[(c[(c[f>>2]|0)+16>>2]|0)+113>>0]&1)){pQ(d,0);n=0;m=0;k=0;break}else{ig(d);pQ(d,1);n=0;m=0;k=0;break}}else C=9;while(0);if((C|0)==9){gl(d);if(DM()|0)break;X=HK(96)|0;L=c[(c[W>>2]|0)+248>>2]|0;c[Z+8>>2]=(L|0)/4|0;c[Z+12>>2]=L;q=HK(512)|0;G=Z+4|0;c[G>>2]=0;c[Z>>2]=0;j=c[W>>2]|0;D=b[j+236>>1]|0;E=0;M=0;N=q;F=q;m=q;n=q;p=q;I=0;J=0;a:while(1){if((D|0)>(b[j+238>>1]|0))break;r=c[j+196>>2]|0;i=c[r+(D<<6)>>2]|0;H=i+E|0;g=c[r+(D<<6)+4>>2]|0;f=c[g>>2]|0;if(!f)f=I;else{o=+(I|0);f=c[f+16>>2]|0;z=+h[f+16>>3]-+h[f+88>>3];f=~~(o<z?o:z)}if((i|0)!=0?(K=c[g+(i+-1<<2)>>2]|0,(K|0)!=0):0){o=+(J|0);g=c[K+16>>2]|0;z=+h[g+16>>3]+ +h[g+96>>3];g=~~(o>z?o:z)}else g=J;B=f+-16|0;A=g+16|0;y=0;u=M;v=N;s=j;w=F;k=m;g=q;f=r;while(1){if((y|0)>=(i|0))break;q=c[(c[f+(D<<6)+4>>2]|0)+(y<<2)>>2]|0;x=q+16|0;f=c[x>>2]|0;i=c[f+112>>2]|0;if(i){i=i+16|0;j=c[(c[i>>2]|0)+96>>2]|0;if(!j){C=21;break a}t=j+56|0;f=f+16|0;c[t>>2]=c[f>>2];c[t+4>>2]=c[f+4>>2];c[t+8>>2]=c[f+8>>2];c[t+12>>2]=c[f+12>>2];a[(c[(c[i>>2]|0)+96>>2]|0)+81>>0]=1;f=c[x>>2]|0}if((a[f+156>>0]|0)!=0?(pb[c[17340>>2]&63](q)|0)<<24>>24==0:0){r=u;f=v;j=w;i=p}else{t=0;r=u;s=v;j=w;C=25}b:do if((C|0)==25){while(1){C=0;q=c[x>>2]|0;i=c[(c[q+180>>2]|0)+(t<<2)>>2]|0;if(!i)break;switch(a[(c[i+16>>2]|0)+112>>0]|0){case 6:case 4:{f=r;i=s;break}default:{jg(i,1,16,64);f=r+1|0;c[s+(r<<2)>>2]=i;if(!(f&127)){g=KK(g,(r<<2)+516|0)|0;i=g;j=g;k=g;n=g;p=g}else i=s}}t=t+1|0;r=f;s=i;C=25}f=c[q+188>>2]|0;c:do if(!f)i=p;else{t=0;i=p;while(1){f=c[f+(t<<2)>>2]|0;if(!f)break c;jg(f,2,0,128);p=r+1|0;c[s+(r<<2)>>2]=f;if(!(p&127)){g=KK(i,(r<<2)+516|0)|0;f=g;j=g;k=g;n=g;i=g}else f=s;q=c[x>>2]|0;t=t+1|0;r=p;s=f;f=c[q+188>>2]|0}}while(0);f=c[q+204>>2]|0;if(!f)f=s;else{if(!(a[q+156>>0]|0)){w=q+96|0;z=+h[w>>3];t=q+240|0;h[w>>3]=+h[t>>3];h[t>>3]=z;t=0;q=s}else{t=0;q=s}while(1){f=c[f+(t<<2)>>2]|0;if(!f){f=q;break b}jg(f,0,0,128);p=r+1|0;c[q+(r<<2)>>2]=f;if(!(p&127)){g=KK(n,(r<<2)+516|0)|0;f=g;j=g;k=g;n=g;i=g}else f=q;t=t+1|0;r=p;q=f;f=c[(c[x>>2]|0)+204>>2]|0}}}while(0);s=c[W>>2]|0;x=c[s+196>>2]|0;y=y+1|0;u=r;v=f;w=j;p=i;i=c[x+(D<<6)>>2]|0;f=x}D=D+1|0;E=H;M=u;N=v;F=w;j=s;m=k;q=g;I=B;J=A}if((C|0)==21)Aa(85588,85601,313,85614);c[Z>>2]=I;c[G>>2]=J;k3(F,M,4,58);c[X+84>>2]=HK((E<<5)+11520|0)|0;c[Z+16>>2]=HK(D<<5)|0;d:do if(Y<<16>>16==2){f=(c[W>>2]|0)+192|0;while(1){g=c[f>>2]|0;if(!g)break d;i=g+16|0;f=c[i>>2]|0;if((a[f+156>>0]|0)==1?(c[f+104>>2]|0)!=0:0){lg(g);f=c[i>>2]|0}f=f+164|0}}while(0);B=V+48|0;C=V+-48|0;D=U+48|0;E=U+-48|0;A=V+16|0;z=+(L|0);y=0;e:while(1){if((y|0)>=(M|0))break;v=N+(y<<2)|0;s=c[v>>2]|0;t=mg(s)|0;u=s+16|0;g=c[u>>2]|0;if(!(a[g+44>>0]|0)){g=(a[g+84>>0]|0)==0?t:s;f=g;g=c[g+16>>2]|0}else f=s;i=f+16|0;if(c[g+164>>2]&32){g=c[R>>2]|0;B6(g|0,c[i>>2]|0,176)|0;n=U;p=f;q=n+48|0;do{c[n>>2]=c[p>>2];n=n+4|0;p=p+4|0}while((n|0)<(q|0));c[R>>2]=g;p=c[f>>2]&3;n=c[U>>2]&3;c[((n|0)==3?U:D)+40>>2]=c[((p|0)==2?f:f+-48|0)+40>>2];c[((n|0)==2?U:E)+40>>2]=c[((p|0)==3?f:f+48|0)+40>>2];n=g+16|0;p=(c[i>>2]|0)+56|0;q=n+40|0;do{c[n>>2]=c[p>>2];n=n+4|0;p=p+4|0}while((n|0)<(q|0));n=g+56|0;p=(c[i>>2]|0)+16|0;q=n+40|0;do{c[n>>2]=c[p>>2];n=n+4|0;p=p+4|0}while((n|0)<(q|0));a[g+112>>0]=1;c[g+116>>2]=f;f=U}r=f+16|0;x=1;f=y;while(1){w=f+1|0;if((w|0)>=(M|0))break;j=N+(w<<2)|0;f=c[j>>2]|0;if((t|0)!=(mg(f)|0))break;if(!(a[(c[u>>2]|0)+113>>0]|0)){k=f+16|0;g=c[k>>2]|0;if(!(a[g+44>>0]|0)){g=(a[g+84>>0]|0)==0?t:f;f=g;g=c[g+16>>2]|0}i=f+16|0;if(c[g+164>>2]&32){g=c[S>>2]|0;B6(g|0,c[i>>2]|0,176)|0;n=V;p=f;q=n+48|0;do{c[n>>2]=c[p>>2];n=n+4|0;p=p+4|0}while((n|0)<(q|0));c[S>>2]=g;p=c[f>>2]&3;n=c[V>>2]&3;c[((n|0)==3?V:B)+40>>2]=c[((p|0)==2?f:f+-48|0)+40>>2];c[((n|0)==2?V:C)+40>>2]=c[((p|0)==3?f:f+48|0)+40>>2];n=g+16|0;p=(c[i>>2]|0)+56|0;q=n+40|0;do{c[n>>2]=c[p>>2];n=n+4|0;p=p+4|0}while((n|0)<(q|0));n=g+56|0;p=(c[i>>2]|0)+16|0;q=n+40|0;do{c[n>>2]=c[p>>2];n=n+4|0;p=p+4|0}while((n|0)<(q|0));a[g+112>>0]=1;c[g+116>>2]=f;g=c[A>>2]|0}i=c[r>>2]|0;f=g+16|0;n=O;p=i+16|0;q=n+40|0;do{c[n>>2]=c[p>>2];n=n+4|0;p=p+4|0}while((n|0)<(q|0));n=P;p=f;q=n+40|0;do{c[n>>2]=c[p>>2];n=n+4|0;p=p+4|0}while((n|0)<(q|0));if(eg(O,P)|0)break;f=g+56|0;n=O;p=i+56|0;q=n+40|0;do{c[n>>2]=c[p>>2];n=n+4|0;p=p+4|0}while((n|0)<(q|0));n=P;p=f;q=n+40|0;do{c[n>>2]=c[p>>2];n=n+4|0;p=p+4|0}while((n|0)<(q|0));if(eg(O,P)|0)break;L=c[u>>2]|0;if((c[L+164>>2]&15|0)==2?(c[L+96>>2]|0)!=(c[(c[k>>2]|0)+96>>2]|0):0)break;if(c[(c[(c[j>>2]|0)+16>>2]|0)+164>>2]&64|0)break}x=x+1|0;f=w}if(T){if((x|0)==1)f=P;else f=HK(x<<2)|0;c[f>>2]=mg(c[v>>2]|0)|0;g=1;while(1){if((g|0)>=(x|0))break;c[f+(g<<2)>>2]=c[v+(g<<2)>>2];g=g+1|0}NM(d,f,x,Q,17336);if((x|0)>1)l6(f);y=w;continue}f=c[s>>2]&3;L=c[((f|0)==3?s:s+48|0)+40>>2]|0;f=c[((f|0)==2?s:s+-48|0)+40>>2]|0;g=c[L+16>>2]|0;n=c[g+232>>2]|0;if((L|0)!=(f|0))if((n|0)==(c[(c[f+16>>2]|0)+232>>2]|0)){ng(d,Z,X,N,y,x,Q);y=w;continue}else{og(d,Z,X,N,y,x,Q);y=w;continue}j=c[W>>2]|0;f=j+196|0;k=n+-1|0;i=g+24|0;do if((n|0)==(b[j+238>>1]|0))if((n|0)>0){f=~~(+h[(c[(c[c[(c[f>>2]|0)+(k<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+h[i>>3]);break}else{f=~~+h[g+80>>3];break}else{g=c[f>>2]|0;o=+h[i>>3];f=~~(o-+h[(c[(c[c[g+(n+1<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]);if((n|0)!=(b[j+236>>1]|0)){L=~~(+h[(c[(c[c[g+(k<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-o);f=(L|0)<(f|0)?L:f}}while(0);jO(X,N,y,x,z,+((f|0)/2|0|0),17336);f=0;while(1){if((f|0)>=(x|0)){y=w;continue e}g=c[(c[(c[N+(f+y<<2)>>2]|0)+16>>2]|0)+96>>2]|0;if(g|0)xP(d,g);f=f+1|0}}f=(c[W>>2]|0)+192|0;while(1){g=c[f>>2]|0;if(!g)break;i=g+16|0;f=c[i>>2]|0;if((a[f+156>>0]|0)==1?(c[f+104>>2]|0)!=0:0){lg(g);xP(d,c[(c[i>>2]|0)+104>>2]|0);f=c[i>>2]|0}f=f+164|0}if(!e){n=X;k=X}else{pg(d);n=X;k=X}}f:do if((c[47266]|0)!=0|(c[47267]|0)!=0?(c[47272]|0)!=0|(c[47271]|0)!=0:0){j=gC(d)|0;while(1){if(!j)break f;g:do if(c[47266]|0){f=XA(d,j)|0;while(1){if(!f)break g;g=f+-48|0;i=(c[f>>2]&3|0)==2?f:g;if(c[(c[i+16>>2]|0)+100>>2]|0){rO(i,1)|0;xP(d,c[(c[((c[f>>2]&3|0)==2?f:g)+16>>2]|0)+100>>2]|0)}f=YA(d,f)|0}}while(0);h:do if(c[47267]|0){f=UA(d,j)|0;while(1){if(!f)break h;g=f+16|0;if(c[(c[g>>2]|0)+104>>2]|0?rO(f,0)|0:0)xP(d,c[(c[g>>2]|0)+104>>2]|0);f=WA(d,f)|0}}while(0);j=hC(d,j)|0}}while(0);switch(Y&15){case 4:case 8:break;default:{l6(m);l6(c[n+84>>2]|0);l6(k);l6(c[Z+16>>2]|0);EM()}}c[47185]=1;c[47186]=1}while(0);l=_;return}function hg(a){a=a|0;var b=0,d=0,e=0.0,f=0;b=gC(a)|0;while(1){if(!b)break;d=c[b+16>>2]|0;if(c[d+204>>2]|0){f=d+96|0;e=+h[f>>3];d=d+240|0;h[f>>3]=+h[d>>3];h[d>>3]=e}b=hC(a,b)|0}return}function ig(b){b=b|0;var d=0,e=0,f=0,g=0;d=(c[b+16>>2]|0)+192|0;a:while(1){f=c[d>>2]|0;if(!f){d=12;break}g=f+16|0;d=c[g>>2]|0;do if((a[d+156>>0]|0)==1){e=c[d+112>>2]|0;if(!e){e=c[d+104>>2]|0;if(!e)break;lg(f);d=e}else{e=c[(c[e+16>>2]|0)+96>>2]|0;if(!e){d=6;break a}f=e+56|0;d=d+16|0;c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];a[e+81>>0]=1;d=e}xP(b,d);d=c[g>>2]|0}while(0);d=d+164|0}if((d|0)==6)Aa(85788,85601,234,85807);else if((d|0)==12)return}function jg(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;h=b+-48|0;i=b+48|0;j=b+16|0;do if(!d){g=c[b>>2]&3;d=c[((g|0)==3?b:i)+40>>2]|0;g=c[((g|0)==2?b:h)+40>>2]|0;if((d|0)!=(g|0)){d=(c[(c[d+16>>2]|0)+232>>2]|0)==(c[(c[g+16>>2]|0)+232>>2]|0)?2:1;break}d=c[j>>2]|0;if(!(a[d+44>>0]|0))d=(a[d+84>>0]|0)==0?8:4;else d=4}while(0);a:do if(!e)switch(d|0){case 1:{e=c[b>>2]&3;e=(c[(c[(c[((e|0)==3?b:i)+40>>2]|0)+16>>2]|0)+232>>2]|0)<(c[(c[(c[((e|0)==2?b:h)+40>>2]|0)+16>>2]|0)+232>>2]|0)?16:32;break a}case 2:{e=c[b>>2]&3;e=(c[(c[(c[((e|0)==3?b:i)+40>>2]|0)+16>>2]|0)+236>>2]|0)<(c[(c[(c[((e|0)==2?b:h)+40>>2]|0)+16>>2]|0)+236>>2]|0)?16:32;break a}default:{e=16;break a}}while(0);c[(c[j>>2]|0)+164>>2]=d|f|e;return}function kg(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=l;l=l+624|0;y=C+584|0;x=C+544|0;r=C+368|0;s=C+96|0;u=C;t=s+16|0;c[t>>2]=r;v=u+16|0;c[v>>2]=C+192;B=c[b>>2]|0;A=c[d>>2]|0;w=B+16|0;p=c[w>>2]|0;d=c[p+164>>2]|0;e=d&15;z=A+16|0;b=c[z>>2]|0;f=c[b+164>>2]&15;do if((f|0)==(e|0)){o=mg(B)|0;q=mg(A)|0;m=c[o>>2]|0;f=m&3;e=c[(c[((f|0)==3?o:o+48|0)+40>>2]|0)+16>>2]|0;f=c[(c[((f|0)==2?o:o+-48|0)+40>>2]|0)+16>>2]|0;g=(c[e+232>>2]|0)-(c[f+232>>2]|0)|0;n=c[q>>2]|0;k=n&3;j=c[(c[((k|0)==3?q:q+48|0)+40>>2]|0)+16>>2]|0;k=c[(c[((k|0)==2?q:q+-48|0)+40>>2]|0)+16>>2]|0;i=(c[j+232>>2]|0)-(c[k+232>>2]|0)|0;g=(g|0)>-1?g:0-g|0;i=(i|0)>-1?i:0-i|0;if((g|0)!=(i|0)){b=g-i|0;break}f=~~(+h[e+16>>3]-+h[f+16>>3]);f=(f|0)>-1?f:0-f|0;e=~~(+h[j+16>>3]-+h[k+16>>3]);e=(e|0)>-1?e:0-e|0;if((f|0)!=(e|0)){b=f-e|0;break}f=m>>>4;e=n>>>4;if((f|0)!=(e|0)){b=f-e|0;break}if(!(a[p+44>>0]|0)){d=(a[p+84>>0]|0)==0?o:B;f=d;d=c[(c[d+16>>2]|0)+164>>2]|0}else f=B;e=f+16|0;if(d&32){B6(r|0,c[e>>2]|0,176)|0;g=s;i=f;j=g+48|0;do{c[g>>2]=c[i>>2];g=g+4|0;i=i+4|0}while((g|0)<(j|0));c[t>>2]=r;i=c[f>>2]&3;g=c[s>>2]&3;c[((g|0)==3?s:s+48|0)+40>>2]=c[((i|0)==2?f:f+-48|0)+40>>2];c[((g|0)==2?s:s+-48|0)+40>>2]=c[((i|0)==3?f:f+48|0)+40>>2];g=r+16|0;i=(c[e>>2]|0)+56|0;j=g+40|0;do{c[g>>2]=c[i>>2];g=g+4|0;i=i+4|0}while((g|0)<(j|0));g=r+56|0;i=(c[e>>2]|0)+16|0;j=g+40|0;do{c[g>>2]=c[i>>2];g=g+4|0;i=i+4|0}while((g|0)<(j|0));a[r+112>>0]=1;c[r+116>>2]=f;f=s;b=c[z>>2]|0}if(!(a[b+44>>0]|0)){b=(a[b+84>>0]|0)==0?q:A;e=b;b=c[b+16>>2]|0}else e=A;d=e+16|0;if(!(c[b+164>>2]&32))e=b;else{b=c[v>>2]|0;B6(b|0,c[d>>2]|0,176)|0;g=u;i=e;j=g+48|0;do{c[g>>2]=c[i>>2];g=g+4|0;i=i+4|0}while((g|0)<(j|0));c[v>>2]=b;i=c[e>>2]&3;g=c[u>>2]&3;c[((g|0)==3?u:u+48|0)+40>>2]=c[((i|0)==2?e:e+-48|0)+40>>2];c[((g|0)==2?u:u+-48|0)+40>>2]=c[((i|0)==3?e:e+48|0)+40>>2];g=b+16|0;i=(c[d>>2]|0)+56|0;j=g+40|0;do{c[g>>2]=c[i>>2];g=g+4|0;i=i+4|0}while((g|0)<(j|0));g=b+56|0;i=(c[d>>2]|0)+16|0;j=g+40|0;do{c[g>>2]=c[i>>2];g=g+4|0;i=i+4|0}while((g|0)<(j|0));a[b+112>>0]=1;c[b+116>>2]=e;e=c[u+16>>2]|0}d=c[f+16>>2]|0;b=e+16|0;g=x;i=d+16|0;j=g+40|0;do{c[g>>2]=c[i>>2];g=g+4|0;i=i+4|0}while((g|0)<(j|0));g=y;i=b;j=g+40|0;do{c[g>>2]=c[i>>2];g=g+4|0;i=i+4|0}while((g|0)<(j|0));b=eg(x,y)|0;if(!b){b=e+56|0;g=x;i=d+56|0;j=g+40|0;do{c[g>>2]=c[i>>2];g=g+4|0;i=i+4|0}while((g|0)<(j|0));g=y;i=b;j=g+40|0;do{c[g>>2]=c[i>>2];g=g+4|0;i=i+4|0}while((g|0)<(j|0));b=eg(x,y)|0;if(!b){d=c[(c[w>>2]|0)+164>>2]&192;b=c[(c[z>>2]|0)+164>>2]&192;if((d|0)==(b|0)){b=((c[B>>2]|0)>>>4)-((c[A>>2]|0)>>>4)|0;break}else{b=d-b|0;break}}}}else b=f-e|0;while(0);l=C;return b|0}function lg(b){b=b|0;var d=0,e=0,f=0,g=0.0,i=0.0;f=b+16|0;d=c[f>>2]|0;if(c[d+176>>2]|0){d=c[d+180>>2]|0;while(1){d=(c[d>>2]|0)+16|0;e=c[d>>2]|0;if(!(a[e+112>>0]|0))break;else d=e+116|0}e=c[e+96>>2]|0;g=+h[e+24>>3];i=+h[e+32>>3];e=(c[(c[(uC(b)|0)+16>>2]|0)+116>>2]&1|0)!=0;b=c[f>>2]|0;f=c[(c[d>>2]|0)+96>>2]|0;h[f+56>>3]=+h[b+16>>3]+(e?i:g)*.5;h[f+64>>3]=+h[b+24>>3];a[f+81>>0]=1}return}function mg(a){a=a|0;var b=0,d=0;while(1){b=c[a+16>>2]|0;d=c[b+172>>2]|0;if(!d)break;else a=d}while(1){b=c[b+116>>2]|0;if(!b)break;a=b;b=c[b+16>>2]|0}return a|0}function ng(b,d,e,f,g,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;var k=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0;B=l;l=l+1712|0;x=B+1664|0;o=B+1488|0;u=B+1392|0;A=B+1696|0;y=B+696|0;z=B;n=u+16|0;c[n>>2]=o;s=c[f+(g<<2)>>2]|0;t=s+16|0;k=c[t>>2]|0;v=a[k+113>>0]|0;if(c[k+164>>2]&32){B6(o|0,k|0,176)|0;p=u;q=s;r=p+48|0;do{c[p>>2]=c[q>>2];p=p+4|0;q=q+4|0}while((p|0)<(r|0));c[n>>2]=o;p=c[u>>2]&3;c[((p|0)==3?u:u+48|0)+40>>2]=c[((c[s>>2]&3|0)==2?s:s+-48|0)+40>>2];c[((p|0)==2?u:u+-48|0)+40>>2]=c[((c[s>>2]&3|0)==3?s:s+48|0)+40>>2];p=o+16|0;q=(c[t>>2]|0)+56|0;r=p+40|0;do{c[p>>2]=c[q>>2];p=p+4|0;q=q+4|0}while((p|0)<(r|0));k=c[n>>2]|0;p=k+56|0;q=(c[t>>2]|0)+16|0;r=p+40|0;do{c[p>>2]=c[q>>2];p=p+4|0;q=q+4|0}while((p|0)<(r|0));a[k+112>>0]=1;c[k+116>>2]=s;s=u}k=1;while(1){if((k|0)>=(i|0)){u=6;break}if(!(a[(c[(c[f+(k+g<<2)>>2]|0)+16>>2]|0)+113>>0]|0))k=k+1|0;else{u=7;break}}a:do if((u|0)==6)if(!(v<<24>>24)){k=c[s+16>>2]|0;if(c[k+96>>2]|0){Ng(b,d,e,s,j);break}n=s+48|0;o=s+-48|0;if((j|0)==2){A=c[s>>2]&3;Og(c[((A|0)==3?s:n)+40>>2]|0,c[((A|0)==2?s:o)+40>>2]|0,f,g,i,2);break}r=a[k+49>>0]|0;v=a[k+89>>0]|0;t=(j|0)==10;if(!(r<<24>>24==1&v<<24>>24!=4)?!(r<<24>>24!=4&v<<24>>24==1):0){p=c[s>>2]&3;q=c[((p|0)==3?s:n)+40>>2]|0;p=c[((p|0)==2?s:o)+40>>2]|0;k=c[q+16>>2]|0;n=c[k+232>>2]|0;o=c[b+16>>2]|0;if((n|0)>0){j=c[o+196>>2]|0;v=n+~(a[(c[(c[b+60>>2]|0)+16>>2]|0)+113>>0]&1)|0;m=+h[(c[(c[c[j+(v<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+h[j+(v<<6)+16>>3]-+h[k+24>>3]-+h[j+(n<<6)+24>>3]}else m=+(c[o+252>>2]|0);C=+(i+1|0);w=+(c[d+12>>2]|0)/C;m=m/C;Qg(b,d,e,q,s,y,1);Qg(b,d,e,p,s,z,0);p=y+52|0;q=z+52|0;r=e+80|0;k=0;while(1){if((k|0)>=(i|0))break a;s=c[f+(k+g<<2)>>2]|0;o=c[p>>2]|0;n=o+-1|0;G=+h[y+56+(n<<5)>>3];F=+h[y+56+(n<<5)+16>>3];C=+h[y+56+(n<<5)+24>>3];h[19234]=G;h[19235]=C;k=k+1|0;E=+(k|0);D=w*E;h[19236]=D+F;C=m*E+C;h[19237]=C;h[19238]=G;h[19239]=C;n=(c[q>>2]|0)+-1|0;G=+h[z+56+(n<<5)+16>>3];h[19240]=G;h[19241]=m+C;E=+h[z+56+(n<<5)>>3];F=+h[z+56+(n<<5)+24>>3];h[19244]=G;h[19243]=F;h[19242]=E-D;h[19245]=C;n=0;while(1){if((n|0)>=(o|0)){n=0;break}o=y+56+(n<<5)|0;c[x>>2]=c[o>>2];c[x+4>>2]=c[o+4>>2];c[x+8>>2]=c[o+8>>2];c[x+12>>2]=c[o+12>>2];c[x+16>>2]=c[o+16>>2];c[x+20>>2]=c[o+20>>2];c[x+24>>2]=c[o+24>>2];c[x+28>>2]=c[o+28>>2];dO(e,x);n=n+1|0;o=c[p>>2]|0}while(1){if((n|0)==3)break;d=153872+(n<<5)|0;c[x>>2]=c[d>>2];c[x+4>>2]=c[d+4>>2];c[x+8>>2]=c[d+8>>2];c[x+12>>2]=c[d+12>>2];c[x+16>>2]=c[d+16>>2];c[x+20>>2]=c[d+20>>2];c[x+24>>2]=c[d+24>>2];c[x+28>>2]=c[d+28>>2];dO(e,x);n=n+1|0}o=c[q>>2]|0;while(1){n=o+-1|0;if((o|0)<=0)break;o=z+56+(n<<5)|0;c[x>>2]=c[o>>2];c[x+4>>2]=c[o+4>>2];c[x+8>>2]=c[o+8>>2];c[x+12>>2]=c[o+12>>2];c[x+16>>2]=c[o+16>>2];c[x+20>>2]=c[o+20>>2];c[x+24>>2]=c[o+24>>2];c[x+28>>2]=c[o+28>>2];dO(e,x);o=n}if(t)n=FM(e,A)|0;else n=LM(e,A)|0;o=c[A>>2]|0;if(!o)break a;bO(s,c[((c[s>>2]&3|0)==2?s:s+-48|0)+40>>2]|0,n,o,17336);c[r>>2]=0}}Pg(b,d,e,f,g,i,s,t&1)}else u=7;while(0);if((u|0)==7)Mg(b,f,g,i,s,j);l=B;return}function og(b,d,e,f,g,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;var k=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0;da=l;l=l+2576|0;T=da+2528|0;aa=da+2568|0;k=da+2352|0;n=da+2176|0;w=da+1904|0;Z=da+1808|0;ba=da+1712|0;U=da+1016|0;V=da+320|0;W=da+256|0;Y=da+2564|0;_=da+2560|0;B=da+288|0;C=da+224|0;M=da+192|0;N=da+160|0;O=da+128|0;P=da+96|0;Q=da+64|0;R=da+32|0;X=da;t=w+16|0;c[t>>2]=k;o=Z+16|0;c[o>>2]=n;ca=ba+16|0;c[ca>>2]=da+2e3;if(!(c[46776]|0)){c[46776]=IK(32e3)|0;c[46777]=IK(32e3)|0;c[46778]=2e3;c[46779]=2e3}x=c[f+(g<<2)>>2]|0;K=c[x>>2]&3;p=x+48|0;q=x+-48|0;K=(c[(c[(c[((K|0)==3?x:p)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((K|0)==2?x:q)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0;u=w+-48|0;$=Z+-48|0;r=x+16|0;s=w+48|0;if((((K|0)>-1?K:0-K|0)|0)<=1){k=c[r>>2]|0;if(!(c[k+164>>2]&32)){w=x;n=0}else{n=c[t>>2]|0;B6(n|0,k|0,176)|0;y=w;z=x;A=y+48|0;do{c[y>>2]=c[z>>2];y=y+4|0;z=z+4|0}while((y|0)<(A|0));c[t>>2]=n;y=c[w>>2]&3;c[((y|0)==3?w:s)+40>>2]=c[((c[x>>2]&3|0)==2?x:q)+40>>2];c[((y|0)==2?w:u)+40>>2]=c[((c[x>>2]&3|0)==3?x:p)+40>>2];y=n+16|0;z=(c[r>>2]|0)+56|0;A=y+40|0;do{c[y>>2]=c[z>>2];y=y+4|0;z=z+4|0}while((y|0)<(A|0));k=c[t>>2]|0;y=k+56|0;z=(c[r>>2]|0)+16|0;A=y+40|0;do{c[y>>2]=c[z>>2];y=y+4|0;z=z+4|0}while((y|0)<(A|0));a[k+112>>0]=1;n=0;L=12}}else{B6(k|0,c[r>>2]|0,176)|0;y=w;z=x;A=y+48|0;do{c[y>>2]=c[z>>2];y=y+4|0;z=z+4|0}while((y|0)<(A|0));y=w+48|0;z=p;A=y+48|0;do{c[y>>2]=c[z>>2];y=y+4|0;z=z+4|0}while((y|0)<(A|0));c[t>>2]=k;k=c[r>>2]|0;if(!(c[k+164>>2]&32)){B6(n|0,k|0,176)|0;y=Z;z=x;A=y+48|0;do{c[y>>2]=c[z>>2];y=y+4|0;z=z+4|0}while((y|0)<(A|0));c[o>>2]=n;o=c[w>>2]|0;c[((o&3|0)==3?w:s)+40>>2]=c[((c[x>>2]&3|0)==3?x:p)+40>>2];y=Z+48|0;z=p;A=y+48|0;do{c[y>>2]=c[z>>2];y=y+4|0;z=z+4|0}while((y|0)<(A|0))}else{n=c[o>>2]|0;B6(n|0,k|0,176)|0;y=Z;z=x;A=y+48|0;do{c[y>>2]=c[z>>2];y=y+4|0;z=z+4|0}while((y|0)<(A|0));c[o>>2]=n;y=c[Z>>2]&3;c[((y|0)==3?Z:Z+48|0)+40>>2]=c[((c[x>>2]&3|0)==2?x:q)+40>>2];c[((y|0)==2?Z:$)+40>>2]=c[((c[x>>2]&3|0)==3?x:p)+40>>2];y=n+16|0;z=(c[r>>2]|0)+56|0;A=y+40|0;do{c[y>>2]=c[z>>2];y=y+4|0;z=z+4|0}while((y|0)<(A|0));k=c[o>>2]|0;y=k+56|0;z=(c[r>>2]|0)+16|0;A=y+40|0;do{c[y>>2]=c[z>>2];y=y+4|0;z=z+4|0}while((y|0)<(A|0));a[k+112>>0]=1;c[k+116>>2]=x;o=c[w>>2]|0;c[((o&3|0)==3?w:s)+40>>2]=c[((c[x>>2]&3|0)==2?x:q)+40>>2];y=(c[t>>2]|0)+16|0;z=(c[r>>2]|0)+56|0;A=y+40|0;do{c[y>>2]=c[z>>2];y=y+4|0;z=z+4|0}while((y|0)<(A|0))}k=mg(x)|0;while(1){n=c[(c[k+16>>2]|0)+172>>2]|0;if(!n)break;else k=n}c[((o&3|0)==2?w:u)+40>>2]=c[((c[k>>2]&3|0)==2?k:k+-48|0)+40>>2];k=c[t>>2]|0;a[k+84>>0]=0;a[k+112>>0]=1;n=k+56|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;n=1;L=12}if((L|0)==12)c[k+116>>2]=x;J=(j|0)==2;if(J?(v=sg(b,w,c[46776]|0,aa)|0,c[_>>2]=v,(v|0)!=0):0)L=63;else L=15;a:do if((L|0)==15){I=(j|0)==10;c[_>>2]=0;o=c[w>>2]&3;k=c[((o|0)==3?w:w+48|0)+40>>2]|0;o=c[((o|0)==2?w:w+-48|0)+40>>2]|0;c[aa>>2]=o;tg(B,b,d,k,0,w);c[U>>2]=c[B>>2];c[U+4>>2]=c[B+4>>2];c[U+8>>2]=c[B+8>>2];c[U+12>>2]=c[B+12>>2];c[U+16>>2]=c[B+16>>2];c[U+20>>2]=c[B+20>>2];c[U+24>>2]=c[B+24>>2];c[U+28>>2]=c[B+28>>2];c[W>>2]=c[B>>2];c[W+4>>2]=c[B+4>>2];c[W+8>>2]=c[B+8>>2];c[W+12>>2]=c[B+12>>2];c[W+16>>2]=c[B+16>>2];c[W+20>>2]=c[B+20>>2];eO(e,w,1,U,ug(k)|0);D=U+52|0;K=(c[D>>2]|0)+-1|0;F=W+24|0;h[F>>3]=+h[U+56+(K<<5)+24>>3];G=W+8|0;h[G>>3]=+h[U+56+(K<<5)+8>>3];K=c[k+16>>2]|0;H=b+16|0;m=+h[K+24>>3]-+h[(c[(c[H>>2]|0)+196>>2]|0)+(c[K+232>>2]<<6)+16>>3];c[T>>2]=c[W>>2];c[T+4>>2]=c[W+4>>2];c[T+8>>2]=c[W+8>>2];c[T+12>>2]=c[W+12>>2];c[T+16>>2]=c[W+16>>2];c[T+20>>2]=c[W+20>>2];c[T+24>>2]=c[W+24>>2];c[T+28>>2]=c[W+28>>2];vg(C,T,1,m);c[W>>2]=c[C>>2];c[W+4>>2]=c[C+4>>2];c[W+8>>2]=c[C+8>>2];c[W+12>>2]=c[C+12>>2];c[W+16>>2]=c[C+16>>2];c[W+20>>2]=c[C+20>>2];c[W+24>>2]=c[C+24>>2];c[W+28>>2]=c[C+28>>2];C=W+16|0;if(+h[W>>3]<+h[C>>3]?+h[G>>3]<+h[F>>3]:0){K=c[D>>2]|0;c[D>>2]=K+1;K=U+56+(K<<5)|0;c[K>>2]=c[W>>2];c[K+4>>2]=c[W+4>>2];c[K+8>>2]=c[W+8>>2];c[K+12>>2]=c[W+12>>2];c[K+16>>2]=c[W+16>>2];c[K+20>>2]=c[W+20>>2];c[K+24>>2]=c[W+24>>2];c[K+28>>2]=c[W+28>>2]}y=b+60|0;E=V+52|0;z=e+56|0;A=e+69|0;j=e+16|0;B=e+29|0;K=w;q=0;r=-1;b:while(1){s=0;p=0;v=K;while(1){t=o;x=o;u=s|1;o=153872+(s<<5)|0;k=k+16|0;if((a[(c[t+16>>2]|0)+156>>0]|0)!=1)break b;if((pb[c[17340>>2]&63](t)|0)<<24>>24)break b;wg(M,d,b,c[(c[k>>2]|0)+232>>2]|0);c[o>>2]=c[M>>2];c[o+4>>2]=c[M+4>>2];c[o+8>>2]=c[M+8>>2];c[o+12>>2]=c[M+12>>2];c[o+16>>2]=c[M+16>>2];c[o+20>>2]=c[M+20>>2];c[o+24>>2]=c[M+24>>2];c[o+28>>2]=c[M+28>>2];if(!p){q=xg(t)|0;o=(q|0)<((a[(c[(c[y>>2]|0)+16>>2]|0)+113>>0]<<1&2)+3&255|0);q=o?q:q+-2|0;r=o?r:1;o=(o^1)&1}else o=p;if(!((o|0)==0|(r|0)>0))break;u=153872+(u<<5)|0;tg(N,b,d,t,v,c[c[(c[t+16>>2]|0)+180>>2]>>2]|0);c[u>>2]=c[N>>2];c[u+4>>2]=c[N+4>>2];c[u+8>>2]=c[N+8>>2];c[u+12>>2]=c[N+12>>2];c[u+16>>2]=c[N+16>>2];c[u+20>>2]=c[N+20>>2];c[u+24>>2]=c[N+24>>2];c[u+28>>2]=c[N+28>>2];u=c[c[(c[x+16>>2]|0)+180>>2]>>2]|0;x=c[u>>2]&3;k=c[((x|0)==3?u:u+48|0)+40>>2]|0;x=c[((x|0)==2?u:u+-48|0)+40>>2]|0;c[aa>>2]=x;s=s+2|0;r=r+-1|0;p=o;v=u;o=x}tg(O,b,d,t,v,c[c[(c[t+16>>2]|0)+180>>2]>>2]|0);c[V>>2]=c[O>>2];c[V+4>>2]=c[O+4>>2];c[V+8>>2]=c[O+8>>2];c[V+12>>2]=c[O+12>>2];c[V+16>>2]=c[O+16>>2];c[V+20>>2]=c[O+20>>2];c[V+24>>2]=c[O+24>>2];c[V+28>>2]=c[O+28>>2];hO(e,v,1,V,ug(c[((c[v>>2]&3|0)==2?v:v+-48|0)+40>>2]|0)|0);t=V+56+((c[E>>2]|0)+-1<<5)|0;s=c[x+16>>2]|0;m=+h[s+24>>3]+ +h[(c[(c[H>>2]|0)+196>>2]|0)+(c[s+232>>2]<<6)+24>>3];c[T>>2]=c[t>>2];c[T+4>>2]=c[t+4>>2];c[T+8>>2]=c[t+8>>2];c[T+12>>2]=c[t+12>>2];c[T+16>>2]=c[t+16>>2];c[T+20>>2]=c[t+20>>2];c[T+24>>2]=c[t+24>>2];c[T+28>>2]=c[t+28>>2];vg(W,T,4,m);if(+h[W>>3]<+h[C>>3]?+h[G>>3]<+h[F>>3]:0){t=c[E>>2]|0;c[E>>2]=t+1;t=V+56+(t<<5)|0;c[t>>2]=c[W>>2];c[t+4>>2]=c[W+4>>2];c[t+8>>2]=c[W+8>>2];c[t+12>>2]=c[W+12>>2];c[t+16>>2]=c[W+16>>2];c[t+20>>2]=c[W+20>>2];c[t+24>>2]=c[W+24>>2];c[t+28>>2]=c[W+28>>2]}h[z>>3]=1.5707963267948966;a[A>>0]=1;yg(e,K,v,U,V,u);if(!I){k=LM(e,Y)|0;o=c[Y>>2]|0;if(J&(o|0)>4){v=k+16|0;c[v>>2]=c[k>>2];c[v+4>>2]=c[k+4>>2];c[v+8>>2]=c[k+8>>2];c[v+12>>2]=c[k+12>>2];v=k+32|0;o=k+(o+-1<<4)|0;c[v>>2]=c[o>>2];c[v+4>>2]=c[o+4>>2];c[v+8>>2]=c[o+8>>2];c[v+12>>2]=c[o+12>>2];I6(k+48|0,o|0,16)|0;c[Y>>2]=4;o=4}else L=33}else{k=FM(e,Y)|0;o=c[Y>>2]|0;L=33}if((L|0)==33){L=0;if(!o)break a}u=c[_>>2]|0;p=u+o|0;if((p|0)>(c[46778]|0)){c[46778]=p<<1;t=KK(c[46776]|0,p<<5)|0;c[46776]=t;o=c[Y>>2]|0}else t=c[46776]|0;s=0;p=u;while(1){if((s|0)>=(o|0))break;v=t+(p<<4)|0;u=k+(s<<4)|0;c[v>>2]=c[u>>2];c[v+4>>2]=c[u+4>>2];c[v+8>>2]=c[u+8>>2];c[v+12>>2]=c[u+12>>2];s=s+1|0;p=p+1|0}c[_>>2]=p;o=zg(c[c[(c[x+16>>2]|0)+180>>2]>>2]|0,q,t,_)|0;Ag(K,e);p=c[o>>2]&3;k=c[((p|0)==3?o:o+48|0)+40>>2]|0;p=c[((p|0)==2?o:o+-48|0)+40>>2]|0;c[aa>>2]=p;x=k+16|0;tg(P,b,d,k,c[c[(c[x>>2]|0)+172>>2]>>2]|0,o);c[U>>2]=c[P>>2];c[U+4>>2]=c[P+4>>2];c[U+8>>2]=c[P+8>>2];c[U+12>>2]=c[P+12>>2];c[U+16>>2]=c[P+16>>2];c[U+20>>2]=c[P+20>>2];c[U+24>>2]=c[P+24>>2];c[U+28>>2]=c[P+28>>2];eO(e,o,1,U,ug(k)|0);K=U+56+((c[D>>2]|0)+-1<<5)|0;x=c[x>>2]|0;m=+h[x+24>>3]-+h[(c[(c[H>>2]|0)+196>>2]|0)+(c[x+232>>2]<<6)+16>>3];c[T>>2]=c[K>>2];c[T+4>>2]=c[K+4>>2];c[T+8>>2]=c[K+8>>2];c[T+12>>2]=c[K+12>>2];c[T+16>>2]=c[K+16>>2];c[T+20>>2]=c[K+20>>2];c[T+24>>2]=c[K+24>>2];c[T+28>>2]=c[K+28>>2];vg(W,T,1,m);if(+h[W>>3]<+h[C>>3]?+h[G>>3]<+h[F>>3]:0){K=c[D>>2]|0;c[D>>2]=K+1;K=U+56+(K<<5)|0;c[K>>2]=c[W>>2];c[K+4>>2]=c[W+4>>2];c[K+8>>2]=c[W+8>>2];c[K+12>>2]=c[W+12>>2];c[K+16>>2]=c[W+16>>2];c[K+20>>2]=c[W+20>>2];c[K+24>>2]=c[W+24>>2];c[K+28>>2]=c[W+28>>2]}h[j>>3]=-1.5707963267948966;a[B>>0]=1;K=o;o=p}s=v+-48|0;wg(Q,d,b,c[(c[k>>2]|0)+232>>2]|0);c[o>>2]=c[Q>>2];c[o+4>>2]=c[Q+4>>2];c[o+8>>2]=c[Q+8>>2];c[o+12>>2]=c[Q+12>>2];c[o+16>>2]=c[Q+16>>2];c[o+20>>2]=c[Q+20>>2];c[o+24>>2]=c[Q+24>>2];c[o+28>>2]=c[Q+28>>2];tg(R,b,d,t,v,0);c[V>>2]=c[R>>2];c[V+4>>2]=c[R+4>>2];c[V+8>>2]=c[R+8>>2];c[V+12>>2]=c[R+12>>2];c[V+16>>2]=c[R+16>>2];c[V+20>>2]=c[R+20>>2];c[V+24>>2]=c[R+24>>2];c[V+28>>2]=c[R+28>>2];c[W>>2]=c[R>>2];c[W+4>>2]=c[R+4>>2];c[W+8>>2]=c[R+8>>2];c[W+12>>2]=c[R+12>>2];c[W+16>>2]=c[R+16>>2];c[W+20>>2]=c[R+20>>2];c[W+24>>2]=c[R+24>>2];c[W+28>>2]=c[R+28>>2];r=(n|0)!=0;hO(e,r?Z:v,1,V,ug(c[((c[v>>2]&3|0)==2?v:s)+40>>2]|0)|0);R=(c[E>>2]|0)+-1|0;h[F>>3]=+h[V+56+(R<<5)+24>>3];h[G>>3]=+h[V+56+(R<<5)+8>>3];R=c[x+16>>2]|0;m=+h[R+24>>3]+ +h[(c[(c[H>>2]|0)+196>>2]|0)+(c[R+232>>2]<<6)+24>>3];c[T>>2]=c[W>>2];c[T+4>>2]=c[W+4>>2];c[T+8>>2]=c[W+8>>2];c[T+12>>2]=c[W+12>>2];c[T+16>>2]=c[W+16>>2];c[T+20>>2]=c[W+20>>2];c[T+24>>2]=c[W+24>>2];c[T+28>>2]=c[W+28>>2];vg(X,T,4,m);c[W>>2]=c[X>>2];c[W+4>>2]=c[X+4>>2];c[W+8>>2]=c[X+8>>2];c[W+12>>2]=c[X+12>>2];c[W+16>>2]=c[X+16>>2];c[W+20>>2]=c[X+20>>2];c[W+24>>2]=c[X+24>>2];c[W+28>>2]=c[X+28>>2];if(+h[W>>3]<+h[C>>3]?+h[G>>3]<+h[F>>3]:0){X=c[E>>2]|0;c[E>>2]=X+1;X=V+56+(X<<5)|0;c[X>>2]=c[W>>2];c[X+4>>2]=c[W+4>>2];c[X+8>>2]=c[W+8>>2];c[X+12>>2]=c[W+12>>2];c[X+16>>2]=c[W+16>>2];c[X+20>>2]=c[W+20>>2];c[X+24>>2]=c[W+24>>2];c[X+28>>2]=c[W+28>>2]}yg(e,K,v,U,V,u);if(I)q=FM(e,Y)|0;else q=LM(e,Y)|0;k=c[Y>>2]|0;if(!(J&(k|0)>4)){if(!k)break}else{X=q+32|0;k=q+(k+-1<<4)|0;W=q+16|0;c[W>>2]=c[q>>2];c[W+4>>2]=c[q+4>>2];c[W+8>>2]=c[q+8>>2];c[W+12>>2]=c[q+12>>2];c[X>>2]=c[k>>2];c[X+4>>2]=c[k+4>>2];c[X+8>>2]=c[k+8>>2];c[X+12>>2]=c[k+12>>2];I6(q+48|0,k|0,16)|0;c[Y>>2]=4;k=4}o=c[_>>2]|0;n=o+k|0;if((n|0)>(c[46778]|0)){c[46778]=n<<1;p=KK(c[46776]|0,n<<5)|0;c[46776]=p;k=c[Y>>2]|0}else p=c[46776]|0;n=0;while(1){if((n|0)>=(k|0))break;Y=p+(o<<4)|0;X=q+(n<<4)|0;c[Y>>2]=c[X>>2];c[Y+4>>2]=c[X+4>>2];c[Y+8>>2]=c[X+8>>2];c[Y+12>>2]=c[X+12>>2];n=n+1|0;o=o+1|0}c[_>>2]=o;Ag(K,e);if(r)k=(c[Z>>2]&3|0)==2?Z:$;else k=(c[v>>2]&3|0)==2?v:s;c[aa>>2]=c[k+40>>2];v=o;L=63}while(0);c:do if((L|0)==63){if((i|0)==1){bO(w,c[aa>>2]|0,c[46776]|0,v,17336);break}t=d+12|0;u=v+-1|0;m=+((S(c[t>>2]|0,i+-1|0)|0)/2|0|0);n=c[46776]|0;k=1;while(1){if((k|0)>=(u|0))break;d=n+(k<<4)|0;h[d>>3]=+h[d>>3]-m;k=k+1|0}k=c[46778]|0;if((k|0)>(c[46779]|0)){c[46779]=k;o=KK(c[46777]|0,k<<4)|0;c[46777]=o;n=c[46776]|0}else o=c[46777]|0;k=0;while(1){if((k|0)>=(v|0))break;d=o+(k<<4)|0;$=n+(k<<4)|0;c[d>>2]=c[$>>2];c[d+4>>2]=c[$+4>>2];c[d+8>>2]=c[$+8>>2];c[d+12>>2]=c[$+12>>2];k=k+1|0}bO(w,c[aa>>2]|0,o,v,17336);r=ba+48|0;s=ba+-48|0;q=1;while(1){if((q|0)>=(i|0))break c;o=c[f+(q+g<<2)>>2]|0;p=o+16|0;k=c[p>>2]|0;if(c[k+164>>2]&32){n=c[ca>>2]|0;B6(n|0,k|0,176)|0;y=ba;z=o;A=y+48|0;do{c[y>>2]=c[z>>2];y=y+4|0;z=z+4|0}while((y|0)<(A|0));c[ca>>2]=n;y=c[ba>>2]&3;c[((y|0)==3?ba:r)+40>>2]=c[((c[o>>2]&3|0)==2?o:o+-48|0)+40>>2];c[((y|0)==2?ba:s)+40>>2]=c[((c[o>>2]&3|0)==3?o:o+48|0)+40>>2];y=n+16|0;z=(c[p>>2]|0)+56|0;A=y+40|0;do{c[y>>2]=c[z>>2];y=y+4|0;z=z+4|0}while((y|0)<(A|0));k=c[ca>>2]|0;y=k+56|0;z=(c[p>>2]|0)+16|0;A=y+40|0;do{c[y>>2]=c[z>>2];y=y+4|0;z=z+4|0}while((y|0)<(A|0));a[k+112>>0]=1;c[k+116>>2]=o;o=ba}p=c[46776]|0;k=1;while(1){if((k|0)>=(u|0))break;aa=p+(k<<4)|0;h[aa>>3]=+(c[t>>2]|0)+ +h[aa>>3];k=k+1|0}n=c[46777]|0;k=0;while(1){if((k|0)>=(v|0))break;aa=n+(k<<4)|0;d=p+(k<<4)|0;c[aa>>2]=c[d>>2];c[aa+4>>2]=c[d+4>>2];c[aa+8>>2]=c[d+8>>2];c[aa+12>>2]=c[d+12>>2];k=k+1|0}bO(o,c[((c[o>>2]&3|0)==2?o:o+-48|0)+40>>2]|0,n,v,17336);q=q+1|0}}while(0);l=da;return}function pg(a){a=a|0;var b=0,d=0,e=0;b=gC(a)|0;while(1){if(!b)break;d=UA(a,b)|0;while(1){if(!d)break;if((pb[c[4334]&63](d)|0)<<24>>24?(e=c[(c[d+16>>2]|0)+8>>2]|0,e|0):0)qg(e);d=WA(a,d)|0}b=hC(a,b)|0}return}function qg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=c[a+4>>2]|0;g=IK(f*48|0)|0;b=g;d=0;e=(c[a>>2]|0)+((f+-1|0)*48|0)|0;while(1){if((d|0)>=(f|0)){b=0;break}rg(e,b);b=b+48|0;d=d+1|0;e=e+-48|0}while(1){d=c[a>>2]|0;if((b|0)>=(f|0))break;l6(c[d+(b*48|0)>>2]|0);b=b+1|0}l6(d);c[a>>2]=g;return}function rg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=c[a+4>>2]|0;h=IK(g<<4)|0;d=h;e=0;f=(c[a>>2]|0)+(g+-1<<4)|0;while(1){if((e|0)>=(g|0))break;c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];d=d+16|0;e=e+1|0;f=f+-16|0}c[b>>2]=h;c[b+4>>2]=g;c[b+8>>2]=c[a+12>>2];c[b+12>>2]=c[a+8>>2];h=b+16|0;g=a+32|0;c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];h=b+32|0;g=a+16|0;c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];return}function sg(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0.0,j=0.0,k=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;y=l;l=l+96|0;r=y+80|0;t=y+64|0;s=y+48|0;v=y+32|0;w=y+16|0;x=y;n=d;while(1){u=n+16|0;g=c[u>>2]|0;if(!(a[g+112>>0]|0))break;n=c[g+116>>2]|0}g=c[n>>2]&3;q=c[((g|0)==2?n:n+-48|0)+40>>2]|0;g=c[((g|0)==3?n:n+48|0)+40>>2]|0;n=q+16|0;o=g+16|0;z=(c[(c[n>>2]|0)+232>>2]|0)-(c[(c[o>>2]|0)+232>>2]|0)|0;switch(((z|0)>-1?z:0-z|0)|0){case 1:{g=0;break}case 2:{if(!(a[(c[(c[b+60>>2]|0)+16>>2]|0)+113>>0]&1))p=6;else g=0;break}default:p=6}do if((p|0)==6){if((c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0)==(g|0)){c[f>>2]=q;z=(c[o>>2]|0)+16|0;p=(c[u>>2]|0)+16|0;c[t>>2]=c[z>>2];c[t+4>>2]=c[z+4>>2];c[t+8>>2]=c[z+8>>2];c[t+12>>2]=c[z+12>>2];c[r>>2]=c[p>>2];c[r+4>>2]=c[p+4>>2];c[r+8>>2]=c[p+8>>2];c[r+12>>2]=c[p+12>>2];Kg(v,t,r);p=(c[n>>2]|0)+16|0;z=(c[u>>2]|0)+56|0;c[t>>2]=c[p>>2];c[t+4>>2]=c[p+4>>2];c[t+8>>2]=c[p+8>>2];c[t+12>>2]=c[p+12>>2];c[r>>2]=c[z>>2];c[r+4>>2]=c[z+4>>2];c[r+8>>2]=c[z+8>>2];c[r+12>>2]=c[z+12>>2];Kg(w,t,r)}else{c[f>>2]=g;z=(c[n>>2]|0)+16|0;p=(c[u>>2]|0)+56|0;c[t>>2]=c[z>>2];c[t+4>>2]=c[z+4>>2];c[t+8>>2]=c[z+8>>2];c[t+12>>2]=c[z+12>>2];c[r>>2]=c[p>>2];c[r+4>>2]=c[p+4>>2];c[r+8>>2]=c[p+8>>2];c[r+12>>2]=c[p+12>>2];Kg(v,t,r);p=(c[o>>2]|0)+16|0;z=(c[u>>2]|0)+16|0;c[t>>2]=c[p>>2];c[t+4>>2]=c[p+4>>2];c[t+8>>2]=c[p+8>>2];c[t+12>>2]=c[p+12>>2];c[r>>2]=c[z>>2];c[r+4>>2]=c[z+4>>2];c[r+8>>2]=c[z+8>>2];c[r+12>>2]=c[z+12>>2];Kg(w,t,r)}g=c[(c[u>>2]|0)+96>>2]|0;n=e+16|0;o=e+32|0;b=e+48|0;if(!g){c[e>>2]=c[v>>2];c[e+4>>2]=c[v+4>>2];c[e+8>>2]=c[v+8>>2];c[e+12>>2]=c[v+12>>2];c[n>>2]=c[v>>2];c[n+4>>2]=c[v+4>>2];c[n+8>>2]=c[v+8>>2];c[n+12>>2]=c[v+12>>2];c[o>>2]=c[w>>2];c[o+4>>2]=c[w+4>>2];c[o+8>>2]=c[w+8>>2];c[o+12>>2]=c[w+12>>2];c[b>>2]=c[w>>2];c[b+4>>2]=c[w+4>>2];c[b+8>>2]=c[w+8>>2];c[b+12>>2]=c[w+12>>2];g=4;break}k=+h[g+24>>3];m=+h[g+32>>3];q=(c[(c[(uC(q)|0)+16>>2]|0)+116>>2]&1|0)==0;z=(c[(c[u>>2]|0)+96>>2]|0)+56|0;c[x>>2]=c[z>>2];c[x+4>>2]=c[z+4>>2];c[x+8>>2]=c[z+8>>2];c[x+12>>2]=c[z+12>>2];c[s>>2]=c[w>>2];c[s+4>>2]=c[w+4>>2];c[s+8>>2]=c[w+8>>2];c[s+12>>2]=c[w+12>>2];c[t>>2]=c[v>>2];c[t+4>>2]=c[v+4>>2];c[t+8>>2]=c[v+8>>2];c[t+12>>2]=c[v+12>>2];c[r>>2]=c[z>>2];c[r+4>>2]=c[z+4>>2];c[r+8>>2]=c[z+8>>2];c[r+12>>2]=c[z+12>>2];z=(Lg(s,t,r)|0)==0;i=(q?k:m)*.5;j=+h[x>>3];g=x+8|0;k=(q?m:k)*.5;m=+h[g>>3];if(z){h[x>>3]=j-i;i=k+m}else{h[x>>3]=i+j;i=m-k}h[g>>3]=i;c[e>>2]=c[v>>2];c[e+4>>2]=c[v+4>>2];c[e+8>>2]=c[v+8>>2];c[e+12>>2]=c[v+12>>2];c[n>>2]=c[v>>2];c[n+4>>2]=c[v+4>>2];c[n+8>>2]=c[v+8>>2];c[n+12>>2]=c[v+12>>2];g=e+64|0;c[g>>2]=c[x>>2];c[g+4>>2]=c[x+4>>2];c[g+8>>2]=c[x+8>>2];c[g+12>>2]=c[x+12>>2];c[b>>2]=c[x>>2];c[b+4>>2]=c[x+4>>2];c[b+8>>2]=c[x+8>>2];c[b+12>>2]=c[x+12>>2];c[o>>2]=c[x>>2];c[o+4>>2]=c[x+4>>2];c[o+8>>2]=c[x+8>>2];c[o+12>>2]=c[x+12>>2];g=e+80|0;z=e+96|0;c[z>>2]=c[w>>2];c[z+4>>2]=c[w+4>>2];c[z+8>>2]=c[w+8>>2];c[z+12>>2]=c[w+12>>2];c[g>>2]=c[w>>2];c[g+4>>2]=c[w+4>>2];c[g+8>>2]=c[w+8>>2];c[g+12>>2]=c[w+12>>2];g=7}while(0);l=y;return g|0}function tg(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0.0,k=0,l=0,m=0.0,n=0,o=0.0,p=0,q=0.0,r=0,s=0;s=c[f+16>>2]|0;q=+h[s+16>>3];m=q-+h[s+88>>3]+-4.0;k=Gg(d,f,g,i,-1)|0;p=e+8|0;r=d+16|0;if(!k){n=~~(m+(m>=0.0?.5:-.5));k=c[e>>2]|0;k=(n|0)<(k|0)?n:k}else{l=Hg(d,f,k)|0;do if(!l){n=c[k+16>>2]|0;j=+h[n+16>>3]+ +h[n+240>>3];if(!(a[n+156>>0]|0)){j=j+ +(c[(c[r>>2]|0)+248>>2]|0)*.5;break}else{j=j+ +(c[p>>2]|0);break}}else j=+h[(c[l+16>>2]|0)+32>>3]+ +(c[p>>2]|0);while(0);o=j<m?j:m;k=~~(o+(o>=0.0?.5:-.5))}o=+(k|0);n=(a[s+156>>0]|0)==1;if(n?(c[s+104>>2]|0)!=0:0)m=q+10.0;else m=q+ +h[s+96>>3]+4.0;l=Gg(d,f,g,i,1)|0;if(!l){p=~~(m+(m>=0.0?.5:-.5));k=c[e+4>>2]|0;k=(p|0)>(k|0)?p:k}else{k=Hg(d,f,l)|0;do if(!k){f=c[l+16>>2]|0;j=+h[f+16>>3]-+h[f+88>>3];if(!(a[f+156>>0]|0)){j=j-+(c[(c[r>>2]|0)+248>>2]|0)*.5;break}else{j=j-+(c[p>>2]|0);break}}else j=+h[(c[k+16>>2]|0)+16>>3]-+(c[p>>2]|0);while(0);m=j>m?j:m;k=~~(m+(m>=0.0?.5:-.5))}j=+(k|0);if(n?(c[s+104>>2]|0)!=0:0){j=j-+h[s+96>>3];if(j<o)j=q}q=+h[s+24>>3];r=c[(c[r>>2]|0)+196>>2]|0;s=c[s+232>>2]|0;m=q-+h[r+(s<<6)+16>>3];q=q+ +h[r+(s<<6)+24>>3];h[b>>3]=o;h[b+8>>3]=m;h[b+16>>3]=j;h[b+24>>3]=q;return}function ug(b){b=b|0;b=c[b+16>>2]|0;if((a[b+156>>0]|0)==1)if((c[b+176>>2]|0)>1)b=1;else b=(c[b+184>>2]|0)>1&1;else b=0;return b|0}function vg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=+e;var f=0,g=0,i=0;i=l;l=l+32|0;f=i;g=b+16|0;switch(d|0){case 1:{Fg(f,+h[b>>3],e,+h[g>>3],+h[b+8>>3]);break}case 4:{Fg(f,+h[b>>3],+h[b+24>>3],+h[g>>3],e);break}default:{}}c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];c[a+12>>2]=c[f+12>>2];c[a+16>>2]=c[f+16>>2];c[a+20>>2]=c[f+20>>2];c[a+24>>2]=c[f+24>>2];c[a+28>>2]=c[f+28>>2];l=i;return}function wg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0;l=c[b+16>>2]|0;k=l+(e<<5)|0;j=+h[k>>3];m=l+(e<<5)+8|0;g=+h[m>>3];n=l+(e<<5)+16|0;f=+h[n>>3];l=l+(e<<5)+24|0;i=+h[l>>3];if(j==f){d=c[(c[d+16>>2]|0)+196>>2]|0;o=e+1|0;j=+(c[b>>2]|0);g=+h[(c[(c[c[d+(o<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]+ +h[d+(o<<6)+24>>3];f=+(c[b+4>>2]|0);i=+h[(c[(c[c[d+(e<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+h[d+(e<<6)+16>>3];h[k>>3]=j;h[m>>3]=g;h[n>>3]=f;h[l>>3]=i}h[a>>3]=j;h[a+8>>3]=g;h[a+16>>3]=f;h[a+24>>3]=i;return}function xg(b){b=b|0;var d=0,e=0;b=c[b+16>>2]|0;e=b+16|0;d=0;while(1){b=c[c[b+180>>2]>>2]|0;b=c[(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)+16>>2]|0;if((a[b+156>>0]|0)!=1)break;if((c[b+184>>2]|0)!=1)break;if((c[b+176>>2]|0)!=1)break;if(+h[b+16>>3]!=+h[e>>3])break;d=d+1|0}return d|0}function yg(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;k=l;l=l+32|0;j=k;h=Cg(b,-1)|0;b=Cg(b,1)|0;if(!((h|0)!=0?!(sO(h)|0):0))i=3;do if((i|0)==3){if(b|0?(sO(b)|0)==0:0)break;h=Dg(d,-1)|0;b=Dg(d,1)|0;if(h|0?(sO(h)|0)==0:0)break;if(b|0?(sO(b)|0)==0:0)break;h=e+52|0;b=0;while(1){if((b|0)>=(c[h>>2]|0))break;d=e+56+(b<<5)|0;c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];c[j+16>>2]=c[d+16>>2];c[j+20>>2]=c[d+20>>2];c[j+24>>2]=c[d+24>>2];c[j+28>>2]=c[d+28>>2];dO(a,j);b=b+1|0}h=c[a+80>>2]|0;i=g+-3|0;b=0;while(1){if((b|0)>=(g|0))break;e=153872+(b<<5)|0;c[j>>2]=c[e>>2];c[j+4>>2]=c[e+4>>2];c[j+8>>2]=c[e+8>>2];c[j+12>>2]=c[e+12>>2];c[j+16>>2]=c[e+16>>2];c[j+20>>2]=c[e+20>>2];c[j+24>>2]=c[e+24>>2];c[j+28>>2]=c[e+28>>2];dO(a,j);b=b+1|0}d=h+1|0;i=i+d|0;h=c[f+52>>2]|0;while(1){b=h+-1|0;if((h|0)<=0)break;h=f+56+(b<<5)|0;c[j>>2]=c[h>>2];c[j+4>>2]=c[h+4>>2];c[j+8>>2]=c[h+8>>2];c[j+12>>2]=c[h+12>>2];c[j+16>>2]=c[h+16>>2];c[j+20>>2]=c[h+20>>2];c[j+24>>2]=c[h+24>>2];c[j+28>>2]=c[h+28>>2];dO(a,j);h=b}Eg(a,d,i)}while(0);l=k;return}function zg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=c[e>>2]|0;while(1){if(!b)break;a=c[c[(c[(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0;b=b+-1|0}c[e>>2]=f+1;g=d+(f<<4)|0;b=d+(f+-1<<4)|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];f=c[e>>2]|0;c[e>>2]=f+1;f=d+(f<<4)|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];f=d+(c[e>>2]<<4)|0;e=(c[(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+16|0;c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];return a|0}function Ag(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0.0,i=0,j=0,k=0,l=0,m=0,n=0;n=d+80|0;m=d+84|0;e=0;d=b;a:while(1){k=c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0;l=k+16|0;if((a[(c[l>>2]|0)+156>>0]|0)!=1)break;if((pb[c[17340>>2]&63](k)|0)<<24>>24)break;d=c[n>>2]|0;while(1){if((e|0)>=(d|0))break a;b=c[m>>2]|0;j=c[l>>2]|0;f=+h[j+24>>3];if(!(+h[b+(e<<5)+8>>3]>f))break;e=e+1|0}do if(!(+h[b+(e<<5)+24>>3]<f)){g=+h[b+(e<<5)>>3];i=~~g;f=+h[b+(e<<5)+16>>3];d=~~f;if(!(c[j+104>>2]|0)){Bg(k,i,~~((g+f)*.5),d);break}else{Bg(k,i,d,~~(f+ +h[j+96>>3]));break}}while(0);d=c[c[(c[l>>2]|0)+180>>2]>>2]|0}return}function Bg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=c[a+16>>2]|0;h[a+16>>3]=+(d|0);h[a+88>>3]=+(d-b|0);h[a+96>>3]=+(e-d|0);return}function Cg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=c[a>>2]&3;i=c[(c[(c[((h|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+180>>2]|0;h=((h|0)==2?a:a+-48|0)+40|0;g=0;a=0;while(1){e=c[i+(g<<2)>>2]|0;if(!e)break;f=c[(c[(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;do if((S(f-(c[(c[(c[h>>2]|0)+16>>2]|0)+236>>2]|0)|0,b)|0)>=1){d=c[e+16>>2]|0;if(!(c[d+8>>2]|0)){d=c[d+116>>2]|0;if(!d)break;if(!(c[(c[d+16>>2]|0)+8>>2]|0))break}if(a|0?(S((c[(c[(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-f|0,b)|0)<=0:0)break;a=e}while(0);g=g+1|0}return a|0}function Dg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=c[a>>2]&3;i=c[(c[(c[((h|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+172>>2]|0;h=((h|0)==3?a:a+48|0)+40|0;g=0;a=0;while(1){e=c[i+(g<<2)>>2]|0;if(!e)break;f=c[(c[(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;do if((S(f-(c[(c[(c[h>>2]|0)+16>>2]|0)+236>>2]|0)|0,b)|0)>=1){d=c[e+16>>2]|0;if(!(c[d+8>>2]|0)){d=c[d+116>>2]|0;if(!d)break;if(!(c[(c[d+16>>2]|0)+8>>2]|0))break}if(a|0?(S((c[(c[(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-f|0,b)|0)<=0:0)break;a=e}while(0);g=g+1|0}return a|0}function Eg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,i=0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0,p=0;p=a+84|0;f=b+-1|0;while(1){if((f|0)>(d|0))break;i=c[p>>2]|0;g=i+(f<<5)|0;e=+h[g>>3];i=i+(f<<5)+16|0;j=+h[i>>3];o=~~((e+j)*.5);k=+(o+-8|0);l=+(o+8|0);if(!(f-b&1)){if(e>=j){h[g>>3]=k;h[i>>3]=l}}else if(e+16.0>j){h[g>>3]=k;h[i>>3]=l}f=f+1|0}o=(c[a+80>>2]|0)+-1|0;f=0;while(1){if((f|0)>=(o|0))break;g=c[p>>2]|0;n=f+1|0;i=g+(n<<5)|0;m=g+(f<<5)+16|0;a=g+(n<<5)+16|0;g=g+(f<<5)|0;if(!((f|0)<(b|0)|(f|0)>(d|0))?(f-b&1|0)==0:0){e=+h[g>>3]+16.0;if(e>+h[a>>3])h[a>>3]=e;e=+h[m>>3]+-16.0;if(!(e<+h[i>>3])){f=n;continue}h[i>>3]=e;f=n;continue}if(!((f|0)<(d|0)&(n|0)>=(b|0))){f=n;continue}if(n-b&1|0){f=n;continue}e=+h[a>>3];if(+h[g>>3]+16.0>e)h[g>>3]=e+-16.0;e=+h[i>>3];if(!(+h[m>>3]+-16.0<e)){f=n;continue}h[m>>3]=e+16.0;f=n}return}function Fg(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;h[a>>3]=b;h[a+8>>3]=c;h[a+16>>3]=d;h[a+24>>3]=e;return}function Gg(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;k=c[(c[b+16>>2]|0)+196>>2]|0;h=c[d+16>>2]|0;j=c[h+232>>2]|0;i=k+(j<<6)|0;j=k+(j<<6)+4|0;h=c[h+236>>2]|0;a:do{h=h+g|0;if((h|0)<=-1){b=0;break}if((h|0)>=(c[i>>2]|0)){b=0;break}b=c[(c[j>>2]|0)+(h<<2)>>2]|0;k=c[b+16>>2]|0;switch(a[k+156>>0]|0){case 0:break a;case 1:{if(c[k+104>>2]|0)break a;break}default:{}}}while((Jg(b,d,e,f)|0)<<24>>24!=0);return b|0}function Hg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;d=c[d+16>>2]|0;if(!(a[d+156>>0]|0)){i=c[d+212>>2]|0;h=i}else{i=c[(c[(c[c[d+180>>2]>>2]|0)+16>>2]|0)+116>>2]|0;g=c[i>>2]&3;h=c[(c[(c[((g|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0;i=c[(c[(c[((g|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0}d=c[e+16>>2]|0;if(!(a[d+156>>0]|0)){e=c[d+212>>2]|0;e=(e|0)==(b|0)?0:e;return ((e|0)==(h|0)|((e|0)==0|(e|0)==(i|0))?0:e)|0}f=c[(c[(c[c[d+180>>2]>>2]|0)+16>>2]|0)+116>>2]|0;g=c[f>>2]&3;d=c[(c[(c[((g|0)==3?f:f+48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0;d=(d|0)==(b|0)?0:d;if(!(!((d|0)==(h|0)|((d|0)==0|(d|0)==(i|0)))?(Ig(d,e)|0)!=0:0)){d=c[(c[(c[((g|0)==2?f:f+-48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0;d=(d|0)==(b|0)?0:d;if((d|0)==(h|0)|((d|0)==0|(d|0)==(i|0)))d=0;else{e=(Ig(d,e)|0)==0;return (e?0:d)|0}}return d|0}function Ig(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0;d=c[a+16>>2]|0;a=c[b+16>>2]|0;f=+h[a+16>>3];if((+h[d+16>>3]<=f?f<=+h[d+32>>3]:0)?(e=+h[a+24>>3],+h[d+24>>3]<=e):0)a=e<=+h[d+40>>3];else a=0;return a&1|0}function Jg(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;i=c[b+16>>2]|0;j=(c[i+236>>2]|0)>(c[(c[d+16>>2]|0)+236>>2]|0);a:do if((c[i+184>>2]|0)==1){b:do if(f|0){h=0;b=c[c[i+180>>2]>>2]|0;while(1){if((h|0)>=2)break b;b=c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0;d=c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0;if((b|0)==(d|0))break b;g=c[b+16>>2]|0;b=c[d+16>>2]|0;if(j^(c[g+236>>2]|0)>(c[b+236>>2]|0)){b=1;break a}if((c[g+184>>2]|0)!=1)break b;if(!(a[g+156>>0]|0))break b;if((c[b+184>>2]|0)!=1)break b;if(!(a[b+156>>0]|0))break b;h=h+1|0;f=c[c[b+180>>2]>>2]|0;b=c[c[g+180>>2]>>2]|0}}while(0);if(e|0?(c[i+176>>2]|0)==1:0){g=0;d=e;b=c[c[i+172>>2]>>2]|0;while(1){if((g|0)>=2){b=0;break a}b=c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0;d=c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0;if((b|0)==(d|0)){b=0;break a}f=c[b+16>>2]|0;b=c[d+16>>2]|0;if(j^(c[f+236>>2]|0)>(c[b+236>>2]|0)){b=1;break a}if((c[f+176>>2]|0)!=1){b=0;break a}if(!(a[f+156>>0]|0)){b=0;break a}if((c[b+176>>2]|0)!=1){b=0;break a}if(!(a[b+156>>0]|0)){b=0;break a}g=g+1|0;d=c[c[b+172>>2]>>2]|0;b=c[c[f+172>>2]>>2]|0}}else b=0}else b=0;while(0);return b|0}function Kg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=+h[b+8>>3]+ +h[c+8>>3];h[a>>3]=+h[b>>3]+ +h[c>>3];h[a+8>>3]=d;return}function Lg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0;e=+h[b+8>>3];d=+h[b>>3];return (~~((+h[a+8>>3]-e)*(+h[c>>3]-d)-(+h[c+8>>3]-e)*(+h[a>>3]-d))|0)>0|0}function Mg(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0.0,m=0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0;S=l;l=l+256|0;E=S+232|0;D=S+216|0;Q=S+88|0;P=S+80|0;L=S+64|0;M=S+200|0;N=S+184|0;O=S;F=S+168|0;G=S+152|0;H=S+136|0;I=S+120|0;J=S+104|0;C=c[g>>2]&3;K=c[((C|0)==3?g:g+48|0)+40>>2]|0;C=c[((C|0)==2?g:g+-48|0)+40>>2]|0;do if((UM(K)|0)!=2?(UM(C)|0)!=2:0){g=0;j=0;m=0;while(1){if((m|0)>=(f|0))break;B=c[(c[d+(m+e<<2)>>2]|0)+16>>2]|0;g=((c[B+96>>2]|0)!=0&1)+g|0;if(!((a[B+44>>0]|0)==0?(a[B+84>>0]|0)==0:0))j=1;m=m+1|0}if(!j)if(!g){Og(K,C,d,e,f,i);break}else{Tg(K,C,d,e,f,i,g);break}z=HK(156)|0;A=Ug(b,z)|0;w=LD(A,85750,1)|0;RC(w,137786,280,1)|0;PA(w,87443,87457)|0;k=+h[(c[C+16>>2]|0)+16>>3];n=+h[(c[K+16>>2]|0)+16>>3];B=b+16|0;u=(c[(c[B>>2]|0)+116>>2]&1|0)==0;v=u?C:K;u=u?K:C;w=Vg(w,u)|0;x=Vg(A,v)|0;g=0;t=0;while(1){s=(g|0)!=0;if((t|0)>=(f|0))break;j=d+(t+e<<2)|0;while(1){r=c[j>>2]|0;q=r+16|0;j=c[q>>2]|0;if(!(a[j+112>>0]|0))break;else j=j+116|0}if((c[((c[r>>2]&3|0)==3?r:r+48|0)+40>>2]|0)==(u|0))m=Wg(A,w,x,r)|0;else m=Wg(A,x,w,r)|0;j=c[q>>2]|0;c[j+120>>2]=m;if(!s)if((a[j+44>>0]|0)==0?(a[j+84>>0]|0)==0:0){c[(c[m+16>>2]|0)+120>>2]=r;g=m}else g=0;t=t+1|0}if(s)y=g;else y=fB(A,w,x,0,1)|0;HA(y,c[47236]|0,85754)|0;g=A+16|0;r=c[g>>2]|0;c[r+144>>2]=c[(c[B>>2]|0)+144>>2];c[r+188>>2]=A;mQ(A,i);Lf(A);uj(A,0);Eh(A,0);Hi(A,0);r=u+16|0;u=c[r>>2]|0;i=c[v+16>>2]|0;s=w+16|0;p=+(~~((+h[(c[s>>2]|0)+16>>3]+ +h[(c[x+16>>2]|0)+16>>3])*.5)|0);o=+(~~k|0);k=+(~~n|0);n=+(~~((+h[u+16>>3]-+h[u+96>>3]+ +h[i+16>>3]+ +h[i+88>>3])*.5)|0);g=(c[g>>2]|0)+192|0;while(1){g=c[g>>2]|0;if(!g)break;j=c[g+16>>2]|0;m=j+16|0;q=j+24|0;do if((g|0)!=(w|0))if((g|0)==(x|0)){h[q>>3]=k;h[m>>3]=p;break}else{h[q>>3]=n;break}else{h[q>>3]=o;h[m>>3]=p}while(0);g=j+164|0}ok(A);gg(A,0);rM(A);w=c[r>>2]|0;p=+h[w+16>>3];x=c[s>>2]|0;k=+h[w+24>>3];n=+h[x+16>>3];o=+h[x+24>>3];if(!(c[(c[B>>2]|0)+116>>2]&1)){h[L>>3]=p-n;k=k-o}else{h[L>>3]=p-o;k=k+n}h[L+8>>3]=k;v=O+16|0;i=O+32|0;w=O+48|0;u=0;while(1){if((u|0)>=(f|0))break;g=d+(u+e<<2)|0;while(1){j=c[g>>2]|0;t=j+16|0;g=c[t>>2]|0;if(!(a[g+112>>0]|0))break;else g=g+116|0}x=c[g+120>>2]|0;s=x+16|0;g=c[s>>2]|0;if(!((x|0)==(y|0)&(c[g+120>>2]|0)==0)){q=c[c[g+8>>2]>>2]|0;r=q+4|0;j=aO(j,c[r>>2]|0)|0;c[j+8>>2]=c[q+8>>2];g=j+16|0;x=q+16|0;m=c[(c[B>>2]|0)+116>>2]&1;c[D>>2]=c[x>>2];c[D+4>>2]=c[x+4>>2];c[D+8>>2]=c[x+8>>2];c[D+12>>2]=c[x+12>>2];c[E>>2]=c[L>>2];c[E+4>>2]=c[L+4>>2];c[E+8>>2]=c[L+8>>2];c[E+12>>2]=c[L+12>>2];Xg(M,D,E,m);c[g>>2]=c[M>>2];c[g+4>>2]=c[M+4>>2];c[g+8>>2]=c[M+8>>2];c[g+12>>2]=c[M+12>>2];c[j+12>>2]=c[q+12>>2];g=j+32|0;m=q+32|0;x=c[(c[B>>2]|0)+116>>2]&1;c[D>>2]=c[m>>2];c[D+4>>2]=c[m+4>>2];c[D+8>>2]=c[m+8>>2];c[D+12>>2]=c[m+12>>2];c[E>>2]=c[L>>2];c[E+4>>2]=c[L+4>>2];c[E+8>>2]=c[L+8>>2];c[E+12>>2]=c[L+12>>2];Xg(N,D,E,x);c[g>>2]=c[N>>2];c[g+4>>2]=c[N+4>>2];c[g+8>>2]=c[N+8>>2];c[g+12>>2]=c[N+12>>2];g=0;while(1){if((g|0)>=(c[r>>2]|0))break;m=(c[j>>2]|0)+(g<<4)|0;T=(c[q>>2]|0)+(g<<4)|0;x=c[(c[B>>2]|0)+116>>2]&1;c[D>>2]=c[T>>2];c[D+4>>2]=c[T+4>>2];c[D+8>>2]=c[T+8>>2];c[D+12>>2]=c[T+12>>2];c[E>>2]=c[L>>2];c[E+4>>2]=c[L+4>>2];c[E+8>>2]=c[L+8>>2];c[E+12>>2]=c[L+12>>2];Xg(F,D,E,x);c[m>>2]=c[F>>2];c[m+4>>2]=c[F+4>>2];c[m+8>>2]=c[F+8>>2];c[m+12>>2]=c[F+12>>2];c[O>>2]=c[F>>2];c[O+4>>2]=c[F+4>>2];c[O+8>>2]=c[F+8>>2];c[O+12>>2]=c[F+12>>2];m=g+1|0;if((m|0)>=(c[r>>2]|0)){R=48;break}x=(c[j>>2]|0)+(m<<4)|0;m=(c[q>>2]|0)+(m<<4)|0;T=c[(c[B>>2]|0)+116>>2]&1;c[D>>2]=c[m>>2];c[D+4>>2]=c[m+4>>2];c[D+8>>2]=c[m+8>>2];c[D+12>>2]=c[m+12>>2];c[E>>2]=c[L>>2];c[E+4>>2]=c[L+4>>2];c[E+8>>2]=c[L+8>>2];c[E+12>>2]=c[L+12>>2];Xg(G,D,E,T);c[x>>2]=c[G>>2];c[x+4>>2]=c[G+4>>2];c[x+8>>2]=c[G+8>>2];c[x+12>>2]=c[G+12>>2];c[v>>2]=c[G>>2];c[v+4>>2]=c[G+4>>2];c[v+8>>2]=c[G+8>>2];c[v+12>>2]=c[G+12>>2];x=g+2|0;T=(c[j>>2]|0)+(x<<4)|0;x=(c[q>>2]|0)+(x<<4)|0;m=c[(c[B>>2]|0)+116>>2]&1;c[D>>2]=c[x>>2];c[D+4>>2]=c[x+4>>2];c[D+8>>2]=c[x+8>>2];c[D+12>>2]=c[x+12>>2];c[E>>2]=c[L>>2];c[E+4>>2]=c[L+4>>2];c[E+8>>2]=c[L+8>>2];c[E+12>>2]=c[L+12>>2];Xg(H,D,E,m);c[T>>2]=c[H>>2];c[T+4>>2]=c[H+4>>2];c[T+8>>2]=c[H+8>>2];c[T+12>>2]=c[H+12>>2];c[i>>2]=c[H>>2];c[i+4>>2]=c[H+4>>2];c[i+8>>2]=c[H+8>>2];c[i+12>>2]=c[H+12>>2];T=g+3|0;m=(c[q>>2]|0)+(T<<4)|0;x=c[(c[B>>2]|0)+116>>2]&1;c[D>>2]=c[m>>2];c[D+4>>2]=c[m+4>>2];c[D+8>>2]=c[m+8>>2];c[D+12>>2]=c[m+12>>2];c[E>>2]=c[L>>2];c[E+4>>2]=c[L+4>>2];c[E+8>>2]=c[L+8>>2];c[E+12>>2]=c[L+12>>2];Xg(I,D,E,x);c[w>>2]=c[I>>2];c[w+4>>2]=c[I+4>>2];c[w+8>>2]=c[I+8>>2];c[w+12>>2]=c[I+12>>2];jI((c[B>>2]|0)+16|0,O);g=T}if((R|0)==48)R=0;g=c[(c[t>>2]|0)+96>>2]|0;if(g|0){T=g+56|0;s=(c[(c[s>>2]|0)+96>>2]|0)+56|0;x=c[(c[B>>2]|0)+116>>2]&1;c[D>>2]=c[s>>2];c[D+4>>2]=c[s+4>>2];c[D+8>>2]=c[s+8>>2];c[D+12>>2]=c[s+12>>2];c[E>>2]=c[L>>2];c[E+4>>2]=c[L+4>>2];c[E+8>>2]=c[L+8>>2];c[E+12>>2]=c[L+12>>2];Xg(J,D,E,x);c[T>>2]=c[J>>2];c[T+4>>2]=c[J+4>>2];c[T+8>>2]=c[J+8>>2];c[T+12>>2]=c[J+12>>2];T=c[(c[t>>2]|0)+96>>2]|0;a[T+81>>0]=1;xP(b,T)}}u=u+1|0}Yg(A,z)}else R=3;while(0);if((R|0)==3?(c[46780]|0)==0:0){c[46780]=1;dA(0,85627,P)|0;P=HB(K)|0;R=(uB(b)|0)!=0;T=HB(C)|0;c[Q>>2]=P;c[Q+4>>2]=R?138041:142050;c[Q+8>>2]=T;dA(3,85733,Q)|0}l=S;return}function Ng(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0;z=l;l=l+1600|0;u=z+1552|0;n=z+1536|0;t=z+840|0;v=z+144|0;w=z+1584|0;j=z+32|0;s=z+16|0;o=z;q=c[f>>2]&3;p=c[((q|0)==3?f:f+48|0)+40>>2]|0;x=f+-48|0;q=c[((q|0)==2?f:x)+40>>2]|0;r=f+16|0;k=c[r>>2]|0;i=c[k+172>>2]|0;while(1){m=c[(c[i+16>>2]|0)+172>>2]|0;if(!m)break;else i=m}k=(c[k+96>>2]|0)+56|0;i=(c[((c[i>>2]&3|0)==3?i:i+48|0)+40>>2]|0)+16|0;m=(c[i>>2]|0)+16|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];c[k+12>>2]=c[m+12>>2];k=c[r>>2]|0;a[(c[k+96>>2]|0)+81>>0]=1;m=c[p+16>>2]|0;if((g|0)!=2){k=c[i>>2]|0;C=+h[k+16>>3];E=C-+h[k+88>>3];C=C+ +h[k+96>>3];B=+h[k+24>>3];D=B+ +h[k+80>>3]*.5;k=c[(c[b+16>>2]|0)+196>>2]|0;j=c[m+232>>2]|0;B=+(~~(+(~~(B-+h[k+(j<<6)+16>>3]-+h[m+24>>3]+ +h[k+(j<<6)+24>>3])|0)/6.0)|0);B=D-(B<5.0?5.0:B);Qg(b,d,e,p,f,t,1);Qg(b,d,e,q,f,v,0);j=t+52|0;k=c[j>>2]|0;m=k+-1|0;A=+h[t+56+(m<<5)>>3];h[19234]=A;h[19235]=+h[t+56+(m<<5)+24>>3];h[19236]=E;h[19237]=B;h[19238]=A;h[19239]=B;m=v+52|0;i=(c[m>>2]|0)+-1|0;A=+h[v+56+(i<<5)+16>>3];h[19240]=A;h[19241]=D;h[19242]=C;h[19245]=B;h[19243]=+h[v+56+(i<<5)+24>>3];h[19244]=A;i=0;while(1){if((i|0)>=(k|0)){i=0;break}k=t+56+(i<<5)|0;c[u>>2]=c[k>>2];c[u+4>>2]=c[k+4>>2];c[u+8>>2]=c[k+8>>2];c[u+12>>2]=c[k+12>>2];c[u+16>>2]=c[k+16>>2];c[u+20>>2]=c[k+20>>2];c[u+24>>2]=c[k+24>>2];c[u+28>>2]=c[k+28>>2];dO(e,u);i=i+1|0;k=c[j>>2]|0}while(1){if((i|0)==3)break;t=153872+(i<<5)|0;c[u>>2]=c[t>>2];c[u+4>>2]=c[t+4>>2];c[u+8>>2]=c[t+8>>2];c[u+12>>2]=c[t+12>>2];c[u+16>>2]=c[t+16>>2];c[u+20>>2]=c[t+20>>2];c[u+24>>2]=c[t+24>>2];c[u+28>>2]=c[t+28>>2];dO(e,u);i=i+1|0}j=c[m>>2]|0;while(1){i=j+-1|0;if((j|0)<=0)break;j=v+56+(i<<5)|0;c[u>>2]=c[j>>2];c[u+4>>2]=c[j+4>>2];c[u+8>>2]=c[j+8>>2];c[u+12>>2]=c[j+12>>2];c[u+16>>2]=c[j+16>>2];c[u+20>>2]=c[j+20>>2];c[u+24>>2]=c[j+24>>2];c[u+28>>2]=c[j+28>>2];dO(e,u);j=i}if((g|0)==10)j=FM(e,w)|0;else j=LM(e,w)|0;i=c[w>>2]|0;if(i|0)y=17}else{i=m+16|0;v=k+16|0;c[n>>2]=c[i>>2];c[n+4>>2]=c[i+4>>2];c[n+8>>2]=c[i+8>>2];c[n+12>>2]=c[i+12>>2];c[u>>2]=c[v>>2];c[u+4>>2]=c[v+4>>2];c[u+8>>2]=c[v+8>>2];c[u+12>>2]=c[v+12>>2];Kg(s,n,u);v=(c[q+16>>2]|0)+16|0;i=(c[r>>2]|0)+56|0;c[n>>2]=c[v>>2];c[n+4>>2]=c[v+4>>2];c[n+8>>2]=c[v+8>>2];c[n+12>>2]=c[v+12>>2];c[u>>2]=c[i>>2];c[u+4>>2]=c[i+4>>2];c[u+8>>2]=c[i+8>>2];c[u+12>>2]=c[i+12>>2];Kg(o,n,u);i=c[(c[r>>2]|0)+96>>2]|0;D=+h[i+56>>3];E=+h[i+64>>3]-+h[i+32>>3]*.5;i=j+16|0;c[j>>2]=c[s>>2];c[j+4>>2]=c[s+4>>2];c[j+8>>2]=c[s+8>>2];c[j+12>>2]=c[s+12>>2];c[i>>2]=c[s>>2];c[i+4>>2]=c[s+4>>2];c[i+8>>2]=c[s+8>>2];c[i+12>>2]=c[s+12>>2];i=j+32|0;v=j+48|0;y=j+64|0;h[j+64>>3]=D;h[j+72>>3]=E;c[v>>2]=c[y>>2];c[v+4>>2]=c[y+4>>2];c[v+8>>2]=c[y+8>>2];c[v+12>>2]=c[y+12>>2];c[i>>2]=c[y>>2];c[i+4>>2]=c[y+4>>2];c[i+8>>2]=c[y+8>>2];c[i+12>>2]=c[y+12>>2];i=j+80|0;y=j+96|0;c[y>>2]=c[o>>2];c[y+4>>2]=c[o+4>>2];c[y+8>>2]=c[o+8>>2];c[y+12>>2]=c[o+12>>2];c[i>>2]=c[o>>2];c[i+4>>2]=c[o+4>>2];c[i+8>>2]=c[o+8>>2];c[i+12>>2]=c[o+12>>2];c[w>>2]=7;i=7;y=17}if((y|0)==17)bO(f,c[((c[f>>2]&3|0)==2?f:x)+40>>2]|0,j,i,17336);l=z;return}function Og(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;P=l;l=l+352|0;z=P+336|0;y=P+320|0;N=P+144|0;u=P+304|0;A=P+128|0;O=P+112|0;G=P+96|0;H=P+80|0;I=P+64|0;J=P+48|0;K=P+32|0;L=P+16|0;M=P;a=a+16|0;s=(c[a>>2]|0)+16|0;x=(c[d+(e<<2)>>2]|0)+16|0;t=(c[x>>2]|0)+16|0;c[y>>2]=c[s>>2];c[y+4>>2]=c[s+4>>2];c[y+8>>2]=c[s+8>>2];c[y+12>>2]=c[s+12>>2];c[z>>2]=c[t>>2];c[z+4>>2]=c[t+4>>2];c[z+8>>2]=c[t+8>>2];c[z+12>>2]=c[t+12>>2];Kg(u,y,z);E=+h[u>>3];F=+h[u+8>>3];u=(c[b+16>>2]|0)+16|0;x=(c[x>>2]|0)+56|0;c[y>>2]=c[u>>2];c[y+4>>2]=c[u+4>>2];c[y+8>>2]=c[u+8>>2];c[y+12>>2]=c[u+12>>2];c[z>>2]=c[x>>2];c[z+4>>2]=c[x+4>>2];c[z+8>>2]=c[x+8>>2];c[z+12>>2]=c[x+12>>2];Kg(A,y,z);C=+h[A>>3];D=+h[A+8>>3];if((f|0)>1){B=+h[(c[a>>2]|0)+80>>3];i=B*.5;B=B/+(f+-1|0)}else{i=0.0;B=0.0}r=(g|8|0)==10;o=N+8|0;s=N+16|0;t=N+48|0;u=N+32|0;v=(E*2.0+C)/3.0;w=(E+C*2.0)/3.0;p=N+24|0;x=N+64|0;y=N+80|0;z=N+96|0;A=N+112|0;m=N+128|0;q=N+136|0;n=N+144|0;i=F-i;b=0;while(1){if((b|0)>=(f|0))break;k=c[d+(b+e<<2)>>2]|0;h[N>>3]=E;h[o>>3]=F;if(r){Sg(O,v,i);c[s>>2]=c[O>>2];c[s+4>>2]=c[O+4>>2];c[s+8>>2]=c[O+8>>2];c[s+12>>2]=c[O+12>>2];Sg(G,w,i);c[u>>2]=c[G>>2];c[u+4>>2]=c[G+4>>2];c[u+8>>2]=c[G+8>>2];c[u+12>>2]=c[G+12>>2];a=4;g=3;j=t}else{h[s>>3]=E;h[p>>3]=F;Sg(H,v,i);c[u>>2]=c[H>>2];c[u+4>>2]=c[H+4>>2];c[u+8>>2]=c[H+8>>2];c[u+12>>2]=c[H+12>>2];Sg(I,v,i);c[t>>2]=c[I>>2];c[t+4>>2]=c[I+4>>2];c[t+8>>2]=c[I+8>>2];c[t+12>>2]=c[I+12>>2];Sg(J,v,i);c[x>>2]=c[J>>2];c[x+4>>2]=c[J+4>>2];c[x+8>>2]=c[J+8>>2];c[x+12>>2]=c[J+12>>2];Sg(K,w,i);c[y>>2]=c[K>>2];c[y+4>>2]=c[K+4>>2];c[y+8>>2]=c[K+8>>2];c[y+12>>2]=c[K+12>>2];Sg(L,w,i);c[z>>2]=c[L>>2];c[z+4>>2]=c[L+4>>2];c[z+8>>2]=c[L+8>>2];c[z+12>>2]=c[L+12>>2];Sg(M,w,i);c[A>>2]=c[M>>2];c[A+4>>2]=c[M+4>>2];c[A+8>>2]=c[M+8>>2];c[A+12>>2]=c[M+12>>2];h[m>>3]=C;h[q>>3]=D;a=10;g=9;j=n}h[j>>3]=C;h[N+(g<<4)+8>>3]=D;bO(k,c[((c[k>>2]&3|0)==2?k:k+-48|0)+40>>2]|0,N,a,17336);i=B+i;b=b+1|0}l=P;return}function Pg(a,d,e,f,g,i,j,k){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;k=k|0;var m=0,n=0.0,o=0,p=0,q=0,r=0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0;x=l;l=l+1440|0;t=x+1392|0;v=x+1424|0;w=x+696|0;u=x;r=c[j>>2]&3;q=c[((r|0)==3?j:j+48|0)+40>>2]|0;r=c[((r|0)==2?j:j+-48|0)+40>>2]|0;m=c[q+16>>2]|0;o=c[m+232>>2]|0;p=c[a+16>>2]|0;if((o|0)<(b[p+238>>1]|0)){y=c[p+196>>2]|0;p=o+1|0;n=+h[m+24>>3]-+h[y+(o<<6)+32>>3]-(+h[(c[(c[c[y+(p<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]+ +h[y+(p<<6)+40>>3])}else n=+(c[p+252>>2]|0);z=+(i+1|0);s=+(c[d+12>>2]|0)/z;n=n/z;Rg(a,d,e,q,j,w,1);Rg(a,d,e,r,j,u,0);r=w+52|0;j=u+52|0;a=(k|0)==0;d=e+80|0;m=0;while(1){if((m|0)>=(i|0))break;q=c[f+(m+g<<2)>>2]|0;p=c[r>>2]|0;o=p+-1|0;D=+h[w+56+(o<<5)>>3];B=+h[w+56+(o<<5)+8>>3];C=+h[w+56+(o<<5)+16>>3];h[19234]=D;h[19237]=B;m=m+1|0;z=+(m|0);A=s*z;h[19236]=A+C;z=B-n*z;h[19235]=z;h[19238]=D;h[19241]=z;o=(c[j>>2]|0)+-1|0;D=+h[u+56+(o<<5)+16>>3];h[19240]=D;h[19239]=z-n;B=+h[u+56+(o<<5)>>3];C=+h[u+56+(o<<5)+8>>3];h[19244]=D;h[19245]=C;h[19242]=B-A;h[19243]=z;o=0;while(1){if((o|0)>=(p|0)){o=0;break}p=w+56+(o<<5)|0;c[t>>2]=c[p>>2];c[t+4>>2]=c[p+4>>2];c[t+8>>2]=c[p+8>>2];c[t+12>>2]=c[p+12>>2];c[t+16>>2]=c[p+16>>2];c[t+20>>2]=c[p+20>>2];c[t+24>>2]=c[p+24>>2];c[t+28>>2]=c[p+28>>2];dO(e,t);o=o+1|0;p=c[r>>2]|0}while(1){if((o|0)==3)break;y=153872+(o<<5)|0;c[t>>2]=c[y>>2];c[t+4>>2]=c[y+4>>2];c[t+8>>2]=c[y+8>>2];c[t+12>>2]=c[y+12>>2];c[t+16>>2]=c[y+16>>2];c[t+20>>2]=c[y+20>>2];c[t+24>>2]=c[y+24>>2];c[t+28>>2]=c[y+28>>2];dO(e,t);o=o+1|0}p=c[j>>2]|0;while(1){o=p+-1|0;if((p|0)<=0)break;p=u+56+(o<<5)|0;c[t>>2]=c[p>>2];c[t+4>>2]=c[p+4>>2];c[t+8>>2]=c[p+8>>2];c[t+12>>2]=c[p+12>>2];c[t+16>>2]=c[p+16>>2];c[t+20>>2]=c[p+20>>2];c[t+24>>2]=c[p+24>>2];c[t+28>>2]=c[p+28>>2];dO(e,t);p=o}if(a)o=LM(e,v)|0;else o=FM(e,v)|0;p=c[v>>2]|0;if(!p)break;bO(q,c[((c[q>>2]&3|0)==2?q:q+-48|0)+40>>2]|0,o,p,17336);c[d>>2]=0}l=x;return}function Qg(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0.0;n=l;l=l+128|0;j=n+96|0;k=n+64|0;o=n+32|0;m=n;tg(o,a,b,e,0,f);c[g>>2]=c[o>>2];c[g+4>>2]=c[o+4>>2];c[g+8>>2]=c[o+8>>2];c[g+12>>2]=c[o+12>>2];c[g+16>>2]=c[o+16>>2];c[g+20>>2]=c[o+20>>2];c[g+24>>2]=c[o+24>>2];c[g+28>>2]=c[o+28>>2];c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];c[k+12>>2]=c[o+12>>2];c[k+16>>2]=c[o+16>>2];c[k+20>>2]=c[o+20>>2];c[k+24>>2]=c[o+24>>2];c[k+28>>2]=c[o+28>>2];c[g+48>>2]=4;if(!(i<<24>>24))hO(d,f,2,g,0);else eO(d,f,2,g,0);b=g+52|0;f=(c[b>>2]|0)+-1|0;o=k+24|0;h[o>>3]=+h[g+56+(f<<5)+24>>3];i=k+8|0;h[i>>3]=+h[g+56+(f<<5)+8>>3];e=c[e+16>>2]|0;p=+h[e+24>>3]+ +h[(c[(c[a+16>>2]|0)+196>>2]|0)+(c[e+232>>2]<<6)+24>>3];c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];c[j+16>>2]=c[k+16>>2];c[j+20>>2]=c[k+20>>2];c[j+24>>2]=c[k+24>>2];c[j+28>>2]=c[k+28>>2];vg(m,j,4,p);c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];c[k+12>>2]=c[m+12>>2];c[k+16>>2]=c[m+16>>2];c[k+20>>2]=c[m+20>>2];c[k+24>>2]=c[m+24>>2];c[k+28>>2]=c[m+28>>2];if(+h[k>>3]<+h[k+16>>3]?+h[i>>3]<+h[o>>3]:0){o=c[b>>2]|0;c[b>>2]=o+1;o=g+56+(o<<5)|0;c[o>>2]=c[k>>2];c[o+4>>2]=c[k+4>>2];c[o+8>>2]=c[k+8>>2];c[o+12>>2]=c[k+12>>2];c[o+16>>2]=c[k+16>>2];c[o+20>>2]=c[k+20>>2];c[o+24>>2]=c[k+24>>2];c[o+28>>2]=c[k+28>>2]}l=n;return}function Rg(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0.0;n=l;l=l+128|0;j=n+96|0;k=n+64|0;o=n+32|0;m=n;tg(o,a,b,e,0,f);c[g>>2]=c[o>>2];c[g+4>>2]=c[o+4>>2];c[g+8>>2]=c[o+8>>2];c[g+12>>2]=c[o+12>>2];c[g+16>>2]=c[o+16>>2];c[g+20>>2]=c[o+20>>2];c[g+24>>2]=c[o+24>>2];c[g+28>>2]=c[o+28>>2];c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];c[k+12>>2]=c[o+12>>2];c[k+16>>2]=c[o+16>>2];c[k+20>>2]=c[o+20>>2];c[k+24>>2]=c[o+24>>2];c[k+28>>2]=c[o+28>>2];c[g+48>>2]=1;if(!(i<<24>>24))hO(d,f,2,g,0);else eO(d,f,2,g,0);b=g+52|0;f=(c[b>>2]|0)+-1|0;o=k+24|0;h[o>>3]=+h[g+56+(f<<5)+24>>3];i=k+8|0;h[i>>3]=+h[g+56+(f<<5)+8>>3];e=c[e+16>>2]|0;p=+h[e+24>>3]-+h[(c[(c[a+16>>2]|0)+196>>2]|0)+(c[e+232>>2]<<6)+24>>3];c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];c[j+16>>2]=c[k+16>>2];c[j+20>>2]=c[k+20>>2];c[j+24>>2]=c[k+24>>2];c[j+28>>2]=c[k+28>>2];vg(m,j,1,p);c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];c[k+12>>2]=c[m+12>>2];c[k+16>>2]=c[m+16>>2];c[k+20>>2]=c[m+20>>2];c[k+24>>2]=c[m+24>>2];c[k+28>>2]=c[m+28>>2];if(+h[k>>3]<+h[k+16>>3]?+h[i>>3]<+h[o>>3]:0){o=c[b>>2]|0;c[b>>2]=o+1;o=g+56+(o<<5)|0;c[o>>2]=c[k>>2];c[o+4>>2]=c[k+4>>2];c[o+8>>2]=c[k+8>>2];c[o+12>>2]=c[k+12>>2];c[o+16>>2]=c[k+16>>2];c[o+20>>2]=c[k+20>>2];c[o+24>>2]=c[k+24>>2];c[o+28>>2]=c[k+28>>2]}l=n;return}function Sg(a,b,c){a=a|0;b=+b;c=+c;h[a>>3]=b;h[a+8>>3]=c;return}function Tg(b,d,e,f,g,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0.0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;$=l;l=l+288|0;U=$+256|0;T=$+240|0;S=$+224|0;Y=$+280|0;Z=$+272|0;_=$+32|0;V=$+16|0;W=$;m=$+208|0;n=$+192|0;o=c[e+(f<<2)>>2]|0;X=HK(g<<2)|0;k=0;while(1){if((k|0)>=(g|0))break;c[X+(k<<2)>>2]=c[e+(k+f<<2)>>2];k=k+1|0}k3(X,g,4,59);E=b+16|0;G=(c[E>>2]|0)+16|0;F=o+16|0;K=(c[F>>2]|0)+16|0;c[T>>2]=c[G>>2];c[T+4>>2]=c[G+4>>2];c[T+8>>2]=c[G+8>>2];c[T+12>>2]=c[G+12>>2];c[U>>2]=c[K>>2];c[U+4>>2]=c[K+4>>2];c[U+8>>2]=c[K+8>>2];c[U+12>>2]=c[K+12>>2];Kg(m,T,U);c[V>>2]=c[m>>2];c[V+4>>2]=c[m+4>>2];c[V+8>>2]=c[m+8>>2];c[V+12>>2]=c[m+12>>2];K=d+16|0;G=(c[K>>2]|0)+16|0;F=(c[F>>2]|0)+56|0;c[T>>2]=c[G>>2];c[T+4>>2]=c[G+4>>2];c[T+8>>2]=c[G+8>>2];c[T+12>>2]=c[G+12>>2];c[U>>2]=c[F>>2];c[U+4>>2]=c[F+4>>2];c[U+8>>2]=c[F+8>>2];c[U+12>>2]=c[F+12>>2];Kg(n,T,U);c[W>>2]=c[n>>2];c[W+4>>2]=c[n+4>>2];c[W+8>>2]=c[n+8>>2];c[W+12>>2]=c[n+12>>2];y=+h[V>>3]+ +h[(c[E>>2]|0)+96>>3];z=+h[W>>3]-+h[(c[K>>2]|0)+88>>3];x=(y+z)*.5;K=c[X>>2]|0;c[_>>2]=c[V>>2];c[_+4>>2]=c[V+4>>2];c[_+8>>2]=c[V+8>>2];c[_+12>>2]=c[V+12>>2];E=_+16|0;c[E>>2]=c[V>>2];c[E+4>>2]=c[V+4>>2];c[E+8>>2]=c[V+8>>2];c[E+12>>2]=c[V+12>>2];F=_+32|0;c[F>>2]=c[W>>2];c[F+4>>2]=c[W+4>>2];c[F+8>>2]=c[W+8>>2];c[F+12>>2]=c[W+12>>2];G=_+48|0;c[G>>2]=c[W>>2];c[G+4>>2]=c[W+4>>2];c[G+8>>2]=c[W+8>>2];c[G+12>>2]=c[W+12>>2];bO(K,c[((c[K>>2]&3|0)==2?K:K+-48|0)+40>>2]|0,_,4,17336);K=c[(c[K+16>>2]|0)+96>>2]|0;h[K+56>>3]=x;H=V+8|0;v=+h[H>>3];w=+h[K+32>>3];h[K+64>>3]=v+(w+6.0)*.5;a[K+81>>0]=1;v=v+3.0;J=+h[K+24>>3]*.5;I=x-J;J=x+J;K=W+8|0;L=_+72|0;M=_+40|0;N=_+120|0;O=_+64|0;P=Y+4|0;Q=_+56|0;R=_+24|0;o=(i|0)==6&1;e=_+104|0;f=_+96|0;i=_+80|0;C=_+88|0;D=_+112|0;t=0.0;s=0.0;w=v+w;m=1;while(1){if((m|0)>=(j|0)){B=6;break}d=c[X+(m<<2)>>2]|0;p=+h[V>>3];q=+h[K>>3];r=+h[W>>3];u=+h[H>>3];n=d+16|0;if(!(m&1)){c[_>>2]=c[V>>2];c[_+4>>2]=c[V+4>>2];c[_+8>>2]=c[V+8>>2];c[_+12>>2]=c[V+12>>2];h[E>>3]=I;h[R>>3]=u;h[F>>3]=I;h[M>>3]=w;h[G>>3]=J;h[Q>>3]=w;h[O>>3]=J;h[L>>3]=q;h[i>>3]=r;h[C>>3]=q;h[f>>3]=r;A=w+6.0;h[e>>3]=A;h[D>>3]=p;h[N>>3]=A;A=+h[(c[(c[n>>2]|0)+96>>2]|0)+32>>3];p=w+A*.5+6.0;w=w+(A+6.0)}else{k=c[(c[n>>2]|0)+96>>2]|0;if((m|0)==1){s=+h[k+24>>3]*.5;t=x+s;s=x-s}v=v-(+h[k+32>>3]+6.0);c[_>>2]=c[V>>2];c[_+4>>2]=c[V+4>>2];c[_+8>>2]=c[V+8>>2];c[_+12>>2]=c[V+12>>2];h[E>>3]=p;p=v+-6.0;h[R>>3]=p;h[F>>3]=r;h[M>>3]=p;c[G>>2]=c[W>>2];c[G+4>>2]=c[W+4>>2];c[G+8>>2]=c[W+8>>2];c[G+12>>2]=c[W+12>>2];h[O>>3]=t;h[L>>3]=q;h[i>>3]=t;h[C>>3]=v;h[f>>3]=s;h[e>>3]=v;h[D>>3]=s;h[N>>3]=u;p=v+ +h[(c[(c[n>>2]|0)+96>>2]|0)+32>>3]*.5}c[P>>2]=8;c[Y>>2]=_;c[S>>2]=c[V>>2];c[S+4>>2]=c[V+4>>2];c[S+8>>2]=c[V+8>>2];c[S+12>>2]=c[V+12>>2];c[T>>2]=c[W>>2];c[T+4>>2]=c[W+4>>2];c[T+8>>2]=c[W+8>>2];c[T+12>>2]=c[W+12>>2];c[U>>2]=c[Y>>2];c[U+4>>2]=c[Y+4>>2];k=BM(S,T,U,Z,o)|0;b=c[Z>>2]|0;if(!b)break;n=c[(c[n>>2]|0)+96>>2]|0;h[n+56>>3]=x;h[n+64>>3]=p;a[n+81>>0]=1;bO(d,c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0,k,b,17336);m=m+1|0}a:do if((B|0)==6){A=(y*2.0+z)/3.0;x=(y+z*2.0)/3.0;while(1){if((m|0)>=(g|0))break;d=c[X+(m<<2)>>2]|0;p=+h[V>>3];q=+h[K>>3];r=+h[W>>3];u=+h[H>>3];if(!(m&1)){c[_>>2]=c[V>>2];c[_+4>>2]=c[V+4>>2];c[_+8>>2]=c[V+8>>2];c[_+12>>2]=c[V+12>>2];h[E>>3]=I;h[R>>3]=u;h[F>>3]=I;h[M>>3]=w;h[G>>3]=J;h[Q>>3]=w;h[O>>3]=J;h[L>>3]=q;h[i>>3]=r;h[C>>3]=q;h[f>>3]=r;q=w+6.0;w=q;r=q}else{B=(m|0)==1;y=B?A:s;t=B?x:t;z=v+-6.0;c[_>>2]=c[V>>2];c[_+4>>2]=c[V+4>>2];c[_+8>>2]=c[V+8>>2];c[_+12>>2]=c[V+12>>2];h[E>>3]=p;v=z+-6.0;h[R>>3]=v;h[F>>3]=r;h[M>>3]=v;c[G>>2]=c[W>>2];c[G+4>>2]=c[W+4>>2];c[G+8>>2]=c[W+8>>2];c[G+12>>2]=c[W+12>>2];h[O>>3]=t;h[L>>3]=q;h[i>>3]=t;h[C>>3]=z;h[f>>3]=y;v=z;s=y;r=u;p=y;q=z}h[e>>3]=q;h[D>>3]=p;h[N>>3]=r;c[P>>2]=8;c[Y>>2]=_;c[S>>2]=c[V>>2];c[S+4>>2]=c[V+4>>2];c[S+8>>2]=c[V+8>>2];c[S+12>>2]=c[V+12>>2];c[T>>2]=c[W>>2];c[T+4>>2]=c[W+4>>2];c[T+8>>2]=c[W+8>>2];c[T+12>>2]=c[W+12>>2];c[U>>2]=c[Y>>2];c[U+4>>2]=c[Y+4>>2];k=BM(S,T,U,Z,o)|0;b=c[Z>>2]|0;if(!b)break a;bO(d,c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0,k,b,17336);m=m+1|0}l6(X)}while(0);l=$;return}function Ug(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0;g=l;l=l+16|0;f=g;j=(uB(b)|0)==0;c[f>>2]=c[(j?18636:18628)>>2];f=lB(85765,f,0)|0;RC(f,137786,280,1)|0;DA(f,0,87443,195341)|0;j=HK(96)|0;e=c[f+16>>2]|0;c[e+8>>2]=j;i=c[b+16>>2]|0;k=c[i+8>>2]|0;h[j>>3]=+h[k>>3];h[j+24>>3]=+h[k+24>>3];a[e+115>>0]=a[i+115>>0]|0;c[e+116>>2]=c[i+116>>2]&1^1;c[e+248>>2]=c[i+248>>2];c[e+252>>2]=c[i+252>>2];e=IA(vC(b)|0,1,0)|0;while(1){if(!e)break;DA(f,1,c[e+8>>2]|0,c[e+12>>2]|0)|0;e=IA(vC(b)|0,1,e)|0}e=IA(vC(b)|0,2,0)|0;while(1){if(!e)break;DA(f,2,c[e+8>>2]|0,c[e+12>>2]|0)|0;e=IA(vC(b)|0,2,e)|0}if(!(DA(f,2,111765,0)|0))DA(f,2,111765,195341)|0;if(!(DA(f,2,111756,0)|0))DA(f,2,111756,195341)|0;Zg(f,d);l=g;return f|0}function Vg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=l;l=l+16|0;d=e;a=qC(a,HB(b)|0,1)|0;RC(a,137750,304,1)|0;RA(b,a)|0;if((UM(b)|0)==2){f=b+16|0;b=IK((D3(c[c[(c[f>>2]|0)+104>>2]>>2]|0)|0)+3|0)|0;c[d>>2]=c[c[(c[f>>2]|0)+104>>2]>>2];i2(b,85760,d)|0;PA(a,108525,b)|0}l=e;return a|0}function Wg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=fB(a,b,c,0,1)|0;RC(c,137763,176,1)|0;RA(d,c)|0;return c|0}function Xg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0.0;i=l;l=l+32|0;g=i+16|0;f=i;if(e|0){j=+h[b>>3];e=b+8|0;h[b>>3]=+h[e>>3];h[e>>3]=-j};c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];c[g+8>>2]=c[d+8>>2];c[g+12>>2]=c[d+12>>2];Kg(a,f,g);l=i;return}function Yg(a,b){a=a|0;b=b|0;c[47258]=c[b>>2];c[47262]=c[b+4>>2];c[47263]=c[b+8>>2];c[47236]=c[b+12>>2];c[47237]=c[b+16>>2];c[47250]=c[b+20>>2];c[47249]=c[b+24>>2];c[47248]=c[b+28>>2];c[47274]=c[b+32>>2];c[47266]=c[b+36>>2];c[47251]=c[b+40>>2];c[47261]=c[b+44>>2];c[47270]=c[b+48>>2];c[47269]=c[b+52>>2];c[47268]=c[b+56>>2];c[47273]=c[b+60>>2];c[47267]=c[b+64>>2];c[47252]=c[b+68>>2];c[47199]=c[b+72>>2];c[47200]=c[b+76>>2];c[47201]=c[b+80>>2];c[47219]=c[b+84>>2];c[47212]=c[b+88>>2];c[47213]=c[b+92>>2];c[47214]=c[b+96>>2];c[47216]=c[b+100>>2];c[47217]=c[b+104>>2];c[47220]=c[b+108>>2];c[47223]=c[b+112>>2];c[47221]=c[b+116>>2];c[47222]=c[b+120>>2];c[47225]=c[b+124>>2];c[47224]=c[b+128>>2];c[47226]=c[b+132>>2];c[47227]=c[b+136>>2];c[47218]=c[b+140>>2];c[47230]=c[b+144>>2];c[47194]=c[b+148>>2];c[47185]=c[b+152>>2];l6(b);Of(a);pB(a)|0;return}function Zg(a,b){a=a|0;b=b|0;c[b>>2]=c[47258];c[b+4>>2]=c[47262];c[b+8>>2]=c[47263];c[b+12>>2]=c[47236];c[b+16>>2]=c[47237];c[b+20>>2]=c[47250];c[b+24>>2]=c[47249];c[b+28>>2]=c[47248];c[b+32>>2]=c[47274];c[b+36>>2]=c[47266];c[b+40>>2]=c[47251];c[b+44>>2]=c[47261];c[b+48>>2]=c[47270];c[b+52>>2]=c[47269];c[b+56>>2]=c[47268];c[b+60>>2]=c[47273];c[b+64>>2]=c[47267];c[b+68>>2]=c[47252];c[b+72>>2]=c[47199];c[b+76>>2]=c[47200];c[b+80>>2]=c[47201];c[b+84>>2]=c[47219];c[b+88>>2]=c[47212];c[b+92>>2]=c[47213];c[b+96>>2]=c[47214];c[b+100>>2]=c[47216];c[b+104>>2]=c[47217];c[b+108>>2]=c[47220];c[b+112>>2]=c[47223];c[b+116>>2]=c[47221];c[b+120>>2]=c[47222];c[b+124>>2]=c[47225];c[b+128>>2]=c[47224];c[b+132>>2]=c[47226];c[b+136>>2]=c[47227];c[b+140>>2]=c[47218];c[b+144>>2]=c[47230];c[b+152>>2]=c[47185];c[b+148>>2]=c[47194];c[47258]=0;c[47262]=DA(a,2,87684,0)|0;c[47263]=DA(a,2,87693,0)|0;b=DA(a,2,101842,0)|0;c[47236]=b;if(!b)c[47236]=DA(a,2,101842,195341)|0;c[47237]=0;c[47250]=0;c[47249]=DA(a,2,101738,0)|0;c[47248]=DA(a,2,101729,0)|0;c[47274]=DA(a,2,102018,0)|0;c[47266]=0;c[47251]=DA(a,2,108525,0)|0;c[47261]=DA(a,2,85770,0)|0;c[47270]=0;c[47269]=DA(a,2,101918,0)|0;c[47268]=DA(a,2,101904,0)|0;c[47273]=DA(a,2,102009,0)|0;c[47267]=0;c[47252]=0;c[47199]=DA(a,1,141351,0)|0;c[47200]=DA(a,1,141419,0)|0;c[47201]=DA(a,1,108531,0)|0;c[47219]=0;c[47212]=DA(a,1,101729,0)|0;c[47213]=DA(a,1,101738,0)|0;c[47214]=0;c[47216]=DA(a,1,108525,0)|0;c[47217]=0;c[47220]=0;c[47223]=DA(a,1,101710,0)|0;c[47221]=DA(a,1,141379,0)|0;c[47222]=DA(a,1,101773,0)|0;c[47225]=DA(a,1,101785,0)|0;c[47224]=DA(a,1,101649,0)|0;c[47226]=DA(a,1,101790,0)|0;c[47227]=DA(a,1,85782,0)|0;c[47218]=0;c[47230]=0;c[47194]=DA(a,0,101710,0)|0;return}function _g(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,g=0.0,i=0.0;d=c[(c[(c[a>>2]|0)+16>>2]|0)+96>>2]|0;a=c[(c[(c[b>>2]|0)+16>>2]|0)+96>>2]|0;b=(a|0)!=0;if(d)if(b?(f=+h[d+24>>3],i=+h[d+32>>3],e=+h[a+24>>3],g=+h[a+32>>3],!(f>e)):0)if(!(f<e))if(i>g)a=-1;else a=i<g&1;else a=1;else a=-1;else a=b&1;return a|0}
function EB(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;j=(e|0)!=0;i=b+64|0;do if(j){if((a[e>>0]|0)!=37?(h=c[i>>2]|0,h=wb[c[(c[h+4>>2]|0)+4>>2]&63](c[h+16>>2]|0,d,e,f,g)|0,h|0):0)break;h=JB(b,d,e,f)|0;if(!h)k=5}else k=5;while(0);if((k|0)==5)if(g){h=c[i>>2]|0;h=wb[c[(c[h+4>>2]|0)+4>>2]&63](c[h+16>>2]|0,d,0,f,g)|0;if(j&(h|0)!=0){k=f;KB(b,d,e,c[k>>2]|0,c[k+4>>2]|0)}}else h=0;return h|0}function FB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=c[a+64>>2]|0;return tb[c[(c[a+4>>2]|0)+8>>2]&127](c[a+16>>2]|0,b,d,e)|0}function GB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;PB(a,b,d,e)|0;a=c[a+64>>2]|0;xb[c[(c[a+4>>2]|0)+12>>2]&31](c[a+16>>2]|0,b,d,e);return}function HB(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=l;l=l+16|0;g=h;d=uC(a)|0;f=a+8|0;b=f;b=NB(d,c[a>>2]&3,c[b>>2]|0,c[b+4>>2]|0)|0;do if(!b){b=c[d+64>>2]|0;d=c[(c[b+4>>2]|0)+16>>2]|0;if(d|0?(e=f,e=tb[d&127](c[b+16>>2]|0,c[a>>2]&3,c[e>>2]|0,c[e+4>>2]|0)|0,e|0):0){b=e;break}if((c[a>>2]&3|0)==2)b=0;else{e=c[f>>2]|0;f=c[f+4>>2]|0;c[g>>2]=37;b=g+8|0;c[b>>2]=e;c[b+4>>2]=f;i2(195053,96757,g)|0;b=195053}}while(0);l=h;return b|0}function IB(a,b,d){a=a|0;b=b|0;d=d|0;a=c[a+64>>2]|0;rb[c[(c[a+4>>2]|0)+24>>2]&127](c[a+16>>2]|0,b,d);return}function JB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l+32|0;h=i;b=c[(c[a+64>>2]|0)+56+(((b|0)==3?2:b)<<2)>>2]|0;if(((b|0)!=0?(f=aD(a,d)|0,(f|0)!=0):0)?(c[h+24>>2]=f,g=eb[c[b>>2]&63](b,h,4)|0,(g|0)!=0):0){d=g+16|0;h=c[d+4>>2]|0;b=e;c[b>>2]=c[d>>2];c[b+4>>2]=h;b=1}else b=0;l=i;return b|0}function KB(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=aC(a,32)|0;g=h+16|0;c[g>>2]=e;c[g+4>>2]=f;c[h+24>>2]=dD(a,d)|0;e=(b|0)==3?2:b;g=a+64|0;d=c[g>>2]|0;b=c[d+56+(e<<2)>>2]|0;if(!b){f=SD(a,18684,c[4599]|0)|0;c[(c[g>>2]|0)+56+(e<<2)>>2]=f;b=c[g>>2]|0}else{f=b;b=d}b=c[b+68+(e<<2)>>2]|0;if(!b){b=SD(a,18720,c[4599]|0)|0;c[(c[g>>2]|0)+68+(e<<2)>>2]=b}eb[c[f>>2]&63](f,h,1)|0;eb[c[b>>2]&63](b,h,1)|0;return}function LB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=b+16|0;b=c[a>>2]|0;a=c[a+4>>2]|0;d=d+16|0;e=c[d>>2]|0;d=c[d+4>>2]|0;return (a>>>0>d>>>0|(a|0)==(d|0)&b>>>0>e>>>0?1:(a>>>0<d>>>0|(a|0)==(d|0)&b>>>0<e>>>0)<<31>>31)|0}function MB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=c[b+24>>2]|0;e=c[d+24>>2]|0;return (b>>>0>e>>>0?1:(b>>>0<e>>>0)<<31>>31)|0}function NB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=OB(a,b,d,e)|0;if(!a)a=0;else a=c[a+24>>2]|0;return a|0}function OB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=l;l=l+32|0;f=g;a=c[(c[a+64>>2]|0)+68+(((b|0)==3?2:b)<<2)>>2]|0;if(!a)a=0;else{b=f+16|0;c[b>>2]=d;c[b+4>>2]=e;a=eb[c[a>>2]&63](a,f,4)|0}l=g;return a|0}function PB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=(b|0)==3?2:b;b=OB(a,f,d,e)|0;if(!b)b=0;else{e=a+64|0;d=c[(c[e>>2]|0)+56+(f<<2)>>2]|0;eb[c[d>>2]&63](d,b,2)|0;e=c[(c[e>>2]|0)+68+(f<<2)>>2]|0;eb[c[e>>2]&63](e,b,2)|0;fD(a,c[b+24>>2]|0)|0;bC(a,b);b=1}return b|0}function QB(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;c[46985]=b;g=c[b+64>>2]|0;f=0;while(1){if((f|0)==3)break;h=g+56+(f<<2)|0;d=c[h>>2]|0;a:do if(d|0){d=eb[c[d>>2]&63](d,0,128)|0;while(1){if(!d)break a;e=c[h>>2]|0;e=eb[c[e>>2]&63](e,d,8)|0;if((a[c[d+24>>2]>>0]|0)!=37){d=e;continue}i=d+16|0;PB(b,f,c[i>>2]|0,c[i+4>>2]|0)|0;d=e}}while(0);f=f+1|0}return}function RB(a){a=a|0;c[46985]=a;a=a+64|0;SB((c[a>>2]|0)+56|0);SB((c[a>>2]|0)+68|0);return}function SB(a){a=a|0;var b=0,d=0,e=0;b=0;while(1){if((b|0)==3)break;d=a+(b<<2)|0;e=c[d>>2]|0;if(e|0){Oz(e)|0;c[d>>2]=0}b=b+1|0}return}function TB(a,b,c){a=a|0;b=b|0;c=c|0;if(!(o4(b,c,a)|0))a=0;else a=D3(b)|0;return a|0}function UB(a,b){a=a|0;b=b|0;return Z3(b,a)|0}function VB(a){a=a|0;return m4(a)|0}function WB(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+32|0;e=b+12|0;d=b;c[4693]=c[4690];c[4694]=c[4691];c[e>>2]=a;c[e+4>>2]=D3(a)|0;c[e+8>>2]=0;c[d>>2]=18780;c[d+4>>2]=18656;c[d+8>>2]=18768;a=hF(e,d)|0;iD(0);l=b;return a|0}function XB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;if((e|0)!=0?(h=b+8|0,f=c[h>>2]|0,(f|0)<(c[b+4>>2]|0)):0){i=(c[b>>2]|0)+f|0;b=0;g=a[i>>0]|0;f=d;d=i;while(1){d=d+1|0;a[f>>0]=g;b=b+1|0;if(!(g<<24>>24!=10&(b|0)<(e|0)))break;g=a[d>>0]|0;if(!(g<<24>>24))break;else f=f+1|0}c[h>>2]=(c[h>>2]|0)+b}else b=0;return b|0}function YB(a){a=a|0;return 0}function ZB(a,b){a=a|0;b=b|0;a=k6(b)|0;u6(a|0,0,b|0)|0;return a|0}function _B(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=n6(b,d)|0;if(d>>>0>c>>>0)u6(a+c|0,0,d-c|0)|0;return a|0}function $B(a,b){a=a|0;b=b|0;l6(b);return}function aC(a,b){a=a|0;b=b|0;var d=0;d=l;l=l+16|0;a=c[a+64>>2]|0;a=vb[c[(c[a>>2]|0)+4>>2]&127](c[a+12>>2]|0,b)|0;if(!a)dA(1,96763,d)|0;l=d;return a|0}function bC(a,b){a=a|0;b=b|0;if(b|0){a=c[a+64>>2]|0;lb[c[(c[a>>2]|0)+12>>2]&63](c[a+12>>2]|0,b)}return}function cC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=(c[b+16>>2]|0)+8|0;b=c[a>>2]|0;a=c[a+4>>2]|0;d=(c[d+16>>2]|0)+8|0;e=c[d>>2]|0;d=c[d+4>>2]|0;return (a>>>0<d>>>0|(a|0)==(d|0)&b>>>0<e>>>0?-1:(a>>>0>d>>>0|(a|0)==(d|0)&b>>>0>e>>>0)&1)|0}function dC(a,b,d){a=a|0;b=b|0;d=d|0;a=c[b+16>>2]|0;if((a+28|0)!=(b|0))bC(c[a+24>>2]|0,b);return}function eC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=(c[c[b+16>>2]>>2]|0)>>>4;e=(c[c[d+16>>2]>>2]|0)>>>4;return (b>>>0<e>>>0?-1:b>>>0>e>>>0&1)|0}function fC(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=186424;c[e>>2]=b;c[e+4>>2]=d;c[46990]=186416;a=c[a+40>>2]|0;a=eb[c[a>>2]&63](a,187944,4)|0;if(!a)a=0;else a=c[a+16>>2]|0;return a|0}function gC(a){a=a|0;a=c[a+36>>2]|0;a=eb[c[a>>2]&63](a,0,128)|0;if(!a)a=0;else a=c[a+16>>2]|0;return a|0}function hC(a,b){a=a|0;b=b|0;var d=0;b=VA(a,b)|0;if((b|0)!=0?(d=c[a+36>>2]|0,d=eb[c[d>>2]&63](d,b,8)|0,(d|0)!=0):0)b=c[d+16>>2]|0;else b=0;return b|0}function iC(a){a=a|0;a=c[a+36>>2]|0;a=eb[c[a>>2]&63](a,0,256)|0;if(!a)a=0;else a=c[a+16>>2]|0;return a|0}function jC(a,b){a=a|0;b=b|0;var d=0;b=VA(a,b)|0;if((b|0)!=0?(d=c[a+36>>2]|0,d=eb[c[d>>2]&63](d,b,16)|0,(d|0)!=0):0)b=c[d+16>>2]|0;else b=0;return b|0}function kC(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=fC(a,b,c)|0;do if((d|0)!=0&(e|0)==0){e=vC(a)|0;if((e|0)!=(a|0)?(f=fC(e,b,c)|0,f|0):0){lC(a,f,1)|0;e=f;break}if(!(FB(a,1,b,c)|0))e=0;else{e=oB(a,1)|0;e=mC(a,b,c,e,D)|0;nC(a,e);oC(a,e)}}while(0);return e|0}function lC(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=vC(a)|0;if((e|0)==(c[b+24>>2]|0)){e=b+8|0;e=fC(a,c[e>>2]|0,c[e+4>>2]|0)|0;if((d|0)!=0&(e|0)==0){e=OD(a)|0;if(!e)e=0;else{d=lC(e,b,d)|0;pC(a,d);return d|0}}}else e=0;return e|0}function mC(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;g=aC(b,64)|0;h=c[g>>2]|0;i=g+8|0;c[i>>2]=d;c[i+4>>2]=e;c[g>>2]=h&12|f<<4|1;c[g+24>>2]=vC(b)|0;if(a[(vC(b)|0)+24>>0]&64)RC(g,c[4610]|0,16,0)|0;return g|0}function nC(a,b){a=a|0;b=b|0;do{pC(a,b);a=OD(a)|0}while((a|0)!=0);return}function oC(b,c){b=b|0;c=c|0;if(a[(vC(b)|0)+24>>0]&64)rA(b,c);wC(b,c);return}function pC(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+40|0;Uz(c[e>>2]|0)|0;if((vC(a)|0)==(a|0))d=b+28|0;else d=aC(a,36)|0;c[d+16>>2]=b;e=c[e>>2]|0;eb[c[e>>2]&63](e,d,1)|0;e=c[a+36>>2]|0;eb[c[e>>2]&63](e,d,1)|0;return}function qC(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+16|0;g=j;h=vC(a)|0;e=(d|0)!=0;if(EB(a,1,b,g,0)|0){d=g;d=fC(a,c[d>>2]|0,c[d+4>>2]|0)|0;if(!d)if(!((h|0)==(a|0)|e^1)?(f=g,f=fC(h,c[f>>2]|0,c[f+4>>2]|0)|0,(f|0)!=0):0)d=lC(a,f,1)|0;else i=6}else i=6;if((i|0)==6)if(e?(EB(a,1,b,g,1)|0)!=0:0){i=g;h=c[i>>2]|0;i=c[i+4>>2]|0;d=oB(a,1)|0;d=mC(a,h,i,d,D)|0;nC(a,d);oC(a,d);IB(a,1,d)}else d=0;l=j;return d|0}function rC(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;c[46999]=b;d=ZA(a,b)|0;while(1){if(!d)break;e=_A(a,d,b)|0;gB(a,d,0);d=e}e=c[a+40>>2]|0;eb[c[e>>2]&63](e,187980,2)|0;e=c[a+36>>2]|0;eb[c[e>>2]&63](e,187980,2)|0;return}function sC(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=d+8|0;e=f;if(fC(b,c[e>>2]|0,c[e+4>>2]|0)|0){if((vC(b)|0)==(b|0)){e=ZA(b,d)|0;while(1){if(!e)break;g=_A(b,e,d)|0;iB(b,e)|0;e=g}if(a[b+24>>0]&64)LA(d);AC(b,d);ZC(d);g=f;GB(b,1,c[g>>2]|0,c[g+4>>2]|0)}if(!(zE(b,d,59,0,0)|0))if((vC(b)|0)==(b|0)){bC(b,d);e=0}else e=0;else e=-1}else e=-1;return e|0}function tC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=l;l=l+16|0;e=h;d=c[b>>2]|0;do if(!(d&3))if((OD(b)|0)==(a|0)){d=c[b>>2]|0;g=5;break}else{dA(1,96789,e)|0;f=-1;break}else g=5;while(0);a:do if((g|0)==5)switch(d&3){case 1:{f=sC(a,b)|0;break a}case 2:case 3:{f=iB(a,b)|0;break a}case 0:{f=pB(b)|0;break a}default:{}}while(0);l=h;return f|0}function uC(a){a=a|0;var b=0;switch(c[a>>2]&3){case 2:case 3:{b=c[(c[a+40>>2]|0)+24>>2]|0;break}case 1:{b=c[a+24>>2]|0;break}case 0:{b=a;break}default:{}}return b|0}function vC(a){a=a|0;var b=0;switch(c[a>>2]&3){case 2:case 3:{b=(c[a+40>>2]|0)+24|0;break}case 1:{b=a+24|0;break}case 0:{b=a+60|0;break}default:{}}return c[b>>2]|0}function wC(b,d){b=b|0;d=d|0;var e=0;e=c[b+64>>2]|0;if(!(a[e+52>>0]|0))GC(b,d,100,0);else xC(b,d,c[e+48>>2]|0);return}function xC(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a:do if(d|0){xC(a,b,c[d+8>>2]|0);switch(c[b>>2]&3){case 0:{e=c[d>>2]|0;break}case 1:{e=(c[d>>2]|0)+12|0;break}case 2:{e=(c[d>>2]|0)+24|0;break}default:break a}e=c[e>>2]|0;if(e|0)rb[e&127](a,b,c[d+4>>2]|0)}while(0);return}function yC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=c[b+64>>2]|0;if(!(a[f+52>>0]|0))GC(b,d,101,e);else zC(b,d,e,c[f+48>>2]|0);return}function zC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;a:do if(e|0){zC(a,b,d,c[e+8>>2]|0);switch(c[b>>2]&3){case 0:{f=(c[e>>2]|0)+4|0;break}case 1:{f=(c[e>>2]|0)+16|0;break}case 2:{f=(c[e>>2]|0)+28|0;break}default:break a}f=c[f>>2]|0;if(f|0)xb[f&31](a,b,c[e+4>>2]|0,d)}while(0);return}function AC(b,d){b=b|0;d=d|0;var e=0;e=c[b+64>>2]|0;if(!(a[e+52>>0]|0))GC(b,d,102,0);else BC(b,d,c[e+48>>2]|0);return}function BC(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a:do if(d|0){BC(a,b,c[d+8>>2]|0);switch(c[b>>2]&3){case 0:{e=(c[d>>2]|0)+8|0;break}case 1:{e=(c[d>>2]|0)+20|0;break}case 2:{e=(c[d>>2]|0)+32|0;break}default:break a}e=c[e>>2]|0;if(e|0)rb[e&127](a,b,c[d+4>>2]|0)}while(0);return}function CC(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=aC(a,12)|0;c[e>>2]=b;c[e+4>>2]=d;d=(c[a+64>>2]|0)+48|0;c[e+8>>2]=c[d>>2];c[d>>2]=e;return}function DC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=(c[a+64>>2]|0)+48|0;d=c[e>>2]|0;a:do if(!d)d=-1;else{if((c[d>>2]|0)!=(b|0)){while(1){e=d+8|0;if(!d){d=-1;break a}f=c[e>>2]|0;if((c[f>>2]|0)==(b|0))break;else d=f}if(f)c[e>>2]=c[f+8>>2]}else c[e>>2]=c[d+8>>2];bC(a,d);d=0}while(0);return d|0}function EC(a,b){a=a|0;b=b|0;var d=0;d=vC(a)|0;a:do if((d|0)==(vC(b)|0))switch(c[b>>2]&3){case 0:{while(1){if((b|0)==(a|0)){b=1;break a}b=OD(b)|0;if(!b){b=0;break}}break}case 1:{b=b+8|0;b=(kC(a,c[b>>2]|0,c[b+4>>2]|0,0)|0)!=0;break a}default:{b=(jB(a,b,0)|0)!=0;break a}}else b=0;while(0);return b&1|0}function FC(a){a=a|0;return c[a>>2]&3|0}function GC(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;f=g;e=RC(a,96813,44,0)|0;switch(c|0){case 100:{c=HC(e,b,100)|0;if(!(IC(c,b)|0))JC(c,a,b,d)|0;break}case 101:{if((IC(HC(e,b,100)|0,b)|0)==0?(IC(HC(e,b,102)|0,b)|0)==0:0){e=HC(e,b,101)|0;c=IC(e,b)|0;if(!c)c=JC(e,a,b,d)|0;KC(b,c,d)}break}case 102:{LC(HC(e,b,100)|0,b);LC(HC(e,b,101)|0,b);c=HC(e,b,102)|0;if(!(IC(c,b)|0))JC(c,a,b,d)|0;break}default:dA(1,96825,f)|0}l=g;return}function HC(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;e=g;a:do switch(c[b>>2]&3){case 0:switch(d|0){case 100:{d=a+8|0;break a}case 101:{d=a+20|0;break a}case 102:{d=a+32|0;break a}default:{f=14;break a}}case 1:switch(d|0){case 100:{d=a+12|0;break a}case 101:{d=a+24|0;break a}case 102:{d=a+36|0;break a}default:{f=14;break a}}case 2:switch(d|0){case 100:{d=a+16|0;break a}case 101:{d=a+28|0;break a}case 102:{d=a+40|0;break a}default:{f=14;break a}}default:f=14}while(0);if((f|0)==14){dA(1,96859,e)|0;d=0}a=c[d>>2]|0;if(!a){a=uC(b)|0;a=SD(a,18872,c[4599]|0)|0;c[d>>2]=a}l=g;return a|0}function IC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;e=d;f=MC(b)|0;b=e+8|0;c[b>>2]=f;c[b+4>>2]=D;b=eb[c[a>>2]&63](a,e,4)|0;l=d;return b|0}function JC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=aC(uC(d)|0,32)|0;c[f+20>>2]=d;g=MC(d)|0;d=f+8|0;c[d>>2]=g;c[d+4>>2]=D;c[f+16>>2]=b;if(e|0){g=aC(b,8)|0;c[f+24>>2]=g;c[g>>2]=e}eb[c[a>>2]&63](a,f,1)|0;return f|0}function KC(a,b,d){a=a|0;b=b|0;d=d|0;a=b+24|0;while(1){a=c[a>>2]|0;if(!a)break;if((c[a>>2]|0)==(d|0))break;else a=a+4|0}return}function LC(a,b){a=a|0;b=b|0;b=IC(a,b)|0;if(b|0)eb[c[a>>2]&63](a,b,2)|0;return}function MC(a){a=a|0;a=a+8|0;D=c[a+4>>2]|0;return c[a>>2]|0}function NC(a,b,d){a=a|0;b=b|0;d=d|0;OC(b);bC(c[b+16>>2]|0,b);return}function OC(a){a=a|0;var b=0,d=0;b=a+16|0;a=c[a+24>>2]|0;while(1){if(!a)break;d=c[a+4>>2]|0;bC(c[b>>2]|0,a);a=d}return}function PC(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;i=k;h=c[b+16>>2]|0;f=h;while(1){if(!f){f=0;break}g=c[f>>2]|0;if((g|0)==(d|0)){j=7;break}if((a[d>>0]|0)==(a[g>>0]|0)?(f2(d,g)|0)==0:0){j=7;break}f=c[f+4>>2]|0;if((f|0)==(h|0)){f=0;break}}do if((j|0)==7){if(!(c[b>>2]&4)){if((f|0)==(h|0)&(e|0)==0){f=h;break}QC(b,f,e);break}if(e)if((h|0)==(f|0))f=h;else dA(1,96884,i)|0}while(0);l=k;return f|0}function QC(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;c[a+16>>2]=b;e=c[a>>2]|0;d=d<<2&4;c[a>>2]=e&-5|d;if(e&2|0){e=(e&3|0)==3?-1:1;c[a+(e*48|0)+16>>2]=b;e=a+(e*48|0)|0;c[e>>2]=c[e>>2]&-5|d}return}function RC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=uC(a)|0;f=PC(a,b,0)|0;a:do if((d|0)!=0&(f|0)==0){d=aC(h,d)|0;c[d>>2]=dD(h,b)|0;switch(c[a>>2]&3){case 0:{SC(a,d);g=d;break a}case 1:{SC(a,d);g=d;break a}case 2:case 3:{SC(a,d);g=d;break a}default:{}}}else g=f;while(0);if(e|0)PC(a,b,1)|0;return g|0}function SC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+16>>2]|0;do if(d){e=d+4|0;f=c[e>>2]|0;if((f|0)==(d|0)){c[e>>2]=b;e=d;d=b;break}else{c[b+4>>2]=f;e=b;break}}else{e=b;d=b}while(0);c[d+4>>2]=e;if(!(c[a>>2]&4))QC(a,b,0);return}function TC(a,b){a=a|0;b=b|0;var d=0,e=0;e=uC(a)|0;d=PC(a,b,0)|0;if(!d)b=-1;else{UC(a,d);if(!(c[a>>2]&3)){VC(e,a,d);b=d}else{zE(vC(e)|0,a,60,d,0)|0;b=d}fD(e,c[d>>2]|0)|0;bC(e,b);b=0}return b|0}function UC(a,b){a=a|0;b=b|0;var d=0;a=c[a+16>>2]|0;do{d=a+4|0;a=c[d>>2]|0}while((a|0)!=(b|0));c[d>>2]=c[b+4>>2];return}function VC(a,b,d){a=a|0;b=b|0;d=d|0;if((c[b+16>>2]|0)==(d|0)){a=c[d+4>>2]|0;QC(b,(a|0)==(d|0)?0:a,0)}return}function WC(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=(d|0)>-1;g=f?d:0-d|0;a:do switch(b|0){case 0:{RC(a,c,g,e)|0;if(!f){b=MD(a)|0;while(1){if(!b)break a;WC(b,0,c,d,e);b=ND(b)|0}}break}case 3:case 2:case 1:{d=(b|0)==1;b=gC(a)|0;while(1){if(!b)break a;b:do if(d)RC(b,c,g,e)|0;else{f=UA(a,b)|0;while(1){if(!f)break b;RC(f,c,g,e)|0;f=WA(a,f)|0}}while(0);b=hC(a,b)|0}}default:{}}while(0);return}function XC(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;a:do switch(b|0){case 0:{zE(a,a,61,c,1)|0;break}case 3:case 2:case 1:{e=(b|0)==1;d=gC(a)|0;while(1){if(!d)break a;b:do if(e)TC(d,c)|0;else{b=UA(a,d)|0;while(1){if(!b)break b;TC(b,c)|0;b=WA(a,b)|0}}while(0);d=hC(a,d)|0}}default:{}}while(0);return}function YC(a,b,c){a=a|0;b=b|0;c=c|0;TC(b,c)|0;return}function ZC(a){a=a|0;var b=0,d=0,e=0;d=uC(a)|0;b=a+16|0;a=c[b>>2]|0;if(a|0)do{e=a;a=c[a+4>>2]|0;fD(d,c[e>>2]|0)|0;bC(d,e)}while((a|0)!=(c[b>>2]|0));c[b>>2]=0;return}function _C(a){a=a|0;return UD(a,$C(a)|0)|0}function $C(a){a=a|0;var b=0,d=0;if(!a)d=188016;else d=(c[a+64>>2]|0)+20|0;b=c[d>>2]|0;if(!b){b=SD(a,18908,c[4599]|0)|0;c[d>>2]=b;a=186480;c[a>>2]=-2147483648;c[a+4>>2]=0;a=186488;c[a>>2]=2147483647;c[a+4>>2]=-1}return b|0}function aD(a,b){a=a|0;b=b|0;return bD($C(a)|0,b)|0}function bD(a,b){a=a|0;b=b|0;a=cD(a,b)|0;if(!a)a=0;else a=c[a+16>>2]|0;return a|0}function cD(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+32|0;e=d;c[e+16>>2]=b;b=eb[c[a>>2]&63](a,e,4)|0;l=d;return b|0}function dD(a,b){a=a|0;b=b|0;var d=0,e=0;if(!b)d=0;else{e=$C(a)|0;d=cD(e,b)|0;if(!d){d=(D3(b)|0)+24|0;if(!a)d=k6(d)|0;else d=aC(a,d)|0;a=d+8|0;c[a>>2]=1;c[a+4>>2]=0;a=d+20|0;O3(a,b)|0;c[d+16>>2]=a;eb[c[e>>2]&63](e,d,1)|0}else{e=d+8|0;b=e;b=w6(c[b>>2]|0,c[b+4>>2]|0,1,0)|0;c[e>>2]=b;c[e+4>>2]=D}d=c[d+16>>2]|0}return d|0}function eD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if(!b)d=0;else{e=$C(a)|0;d=cD(e,b)|0;if(!d){d=(D3(b)|0)+24|0;if(!a)d=k6(d)|0;else d=aC(a,d)|0;g=186480;f=c[g+4>>2]|0;a=d+8|0;c[a>>2]=c[g>>2]|1;c[a+4>>2]=f;a=d+20|0;O3(a,b)|0;c[d+16>>2]=a;eb[c[e>>2]&63](e,d,1)|0}else{g=d+8|0;f=g;f=w6(c[f>>2]|0,c[f+4>>2]|0,1,0)|0;c[g>>2]=f;c[g+4>>2]=D}d=c[d+16>>2]|0}return d|0}function fD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if((b|0)!=0?(d=$C(a)|0,e=cD(d,b)|0,(e|0)!=0):0)if((c[e+16>>2]|0)==(b|0)?(b=e+8|0,g=b,g=w6(c[g>>2]|0,c[g+4>>2]|0,-1,-1)|0,f=D,b,c[b>>2]=g,c[b+4>>2]=f,b=186488,!(((g|0)!=0|(f|0)!=0)&((c[b>>2]|0)!=0|(c[b+4>>2]|0)!=0))):0){TD(a,d,e)|0;a=0}else a=0;else a=-1;return a|0}function gD(a){a=a|0;var b=0;if(!a)a=0;else{a=a+-12|0;b=186480;a=c[b>>2]&c[a>>2]}return a|0}function hD(a){a=a|0;var b=0,d=0,e=0;if(a|0){d=186480;a=a+-12|0;e=a;b=c[e+4>>2]|c[d+4>>2];c[a>>2]=c[e>>2]|c[d>>2];c[a+4>>2]=b}return}function iD(a){a=a|0;c[47009]=a;c[4736]=1;return}function jD(a,b){a=a|0;b=b|0;c[47010]=a;c[47011]=b;c[47012]=0;return}function kD(){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if(!(c[47013]|0)){c[47013]=1;if(!(c[47014]|0))c[47014]=1;if(!(c[47005]|0))c[47005]=c[15808];if(!(c[47006]|0))c[47006]=c[15840];k=c[47015]|0;if(!((k|0)!=0?(c[k+(c[47016]<<2)>>2]|0)!=0:0)){lD();k=mD(c[47005]|0,16384)|0;c[(c[47015]|0)+(c[47016]<<2)>>2]=k}nD()}a:while(1){h=c[47017]|0;a[h>>0]=a[195085]|0;e=(c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]|0)+(c[47014]|0)|0;f=h;b:while(1){i=f;while(1){f=c[18948+(d[i>>0]<<2)>>2]|0;if(b[64128+(e<<1)>>1]|0){c[47018]=e;c[47019]=i}c:while(1){g=f&255;do{f=(b[64314+(e<<1)>>1]|0)+g|0;if((b[64524+(f<<1)>>1]|0)==(e|0))break c;k=b[65060+(e<<1)>>1]|0;e=k<<16>>16}while(k<<16>>16<=92);f=c[19972+(g<<2)>>2]|0}e=b[65270+(f<<1)>>1]|0;f=i+1|0;if((b[64314+(e<<1)>>1]|0)==219)break;else i=f}d:while(1){k=h;e:while(1){e=b[64128+(e<<1)>>1]|0;if(!(e<<16>>16)){e=b[64128+(c[47018]<<1)>>1]|0;f=c[47019]|0}else e=e<<16>>16;c[47007]=h;j=f;c[47008]=j-k;a[195085]=a[f>>0]|0;a[f>>0]=0;c[47017]=f;f:while(1){switch(e|0){case 1:{m=27;break a}case 12:{m=53;break a}case 13:{m=55;break a}case 14:{m=57;break a}case 15:{m=61;break a}case 16:{m=65;break a}case 17:{m=67;break a}case 18:{m=69;break a}case 19:{m=72;break a}case 20:{m=75;break a}case 21:{m=78;break a}case 23:{m=86;break a}case 33:{m=118;break a}case 39:case 38:case 37:case 36:{l=0;break a}case 2:{m=29;break b}case 3:{m=32;break b}case 4:{m=35;break b}case 5:{m=37;break b}case 6:{m=39;break b}case 7:{m=42;break b}case 8:{m=44;break b}case 9:{m=47;break b}case 10:{m=49;break b}case 11:{m=51;break b}case 22:{m=83;break b}case 24:{m=89;break b}case 25:{m=92;break b}case 26:{m=95;break b}case 27:{m=98;break b}case 28:{m=101;break b}case 29:{m=104;break b}case 30:{m=109;break b}case 31:{m=112;break b}case 32:{m=115;break b}case 34:{m=121;break b}case 0:break f;case 35:break;default:{m=134;break a}}i=c[47007]|0;a[f>>0]=a[195085]|0;e=(c[47015]|0)+(c[47016]<<2)|0;g=c[e>>2]|0;if(!(c[g+44>>2]|0)){n=c[g+16>>2]|0;c[47021]=n;c[g>>2]=c[47005];g=c[e>>2]|0;c[g+44>>2]=1;e=n}else e=c[47021]|0;if((c[47017]|0)>>>0<=((c[g+4>>2]|0)+e|0)>>>0){m=128;break e}switch(wD()|0){case 0:{m=132;break d}case 2:{m=133;break e}case 1:break;default:continue a}c[47017]=c[47007];e=(((c[47014]|0)+-1|0)/2|0)+36|0}a[f>>0]=a[195085]|0;f=c[47019]|0;e=c[47018]|0}if((m|0)==128){m=0;g=(c[47007]|0)+(j-i+-1)|0;c[47017]=g;e=uD()|0;f=vD(e)|0;h=c[47007]|0;if(!f){f=g;continue}else{m=129;break}}else if((m|0)==133){m=0;f=(c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+4>>2]|0)+(c[47021]|0)|0;c[47017]=f;e=uD()|0;h=c[47007]|0;continue}}if((m|0)==129){m=0;n=g+1|0;c[47017]=n;e=f;f=n;continue}else if((m|0)==132){m=0;f=(c[47007]|0)+(j-i+-1)|0;c[47017]=f;e=uD()|0;h=c[47007]|0;continue}}switch(m|0){case 29:{m=0;e=c[47008]|0;if(e|0)c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;c[4736]=(c[4736]|0)+1;continue a}case 32:{m=0;e=c[47008]|0;if(e|0)c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;c[47014]=3;continue a}case 35:{m=0;e=c[47008]|0;if(!e)continue a;c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;continue a}case 37:{m=0;e=c[47008]|0;if(!e)continue a;c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;continue a}case 39:{m=0;e=c[47008]|0;if(e|0)c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;c[47014]=1;continue a}case 42:{m=0;e=c[47008]|0;if(!e)continue a;c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;continue a}case 44:{m=0;e=c[47008]|0;if(e|0)c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;oD();continue a}case 47:{m=0;e=c[47008]|0;if(!e)continue a;c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;continue a}case 49:{m=0;e=c[47008]|0;if(!e)continue a;c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;continue a}case 51:{m=0;e=c[47008]|0;if(!e)continue a;c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;continue a}case 83:{m=0;e=c[47008]|0;if(e|0)c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;c[47014]=5;qD();continue a}case 89:{m=0;e=c[47008]|0;if(e|0)c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;sD(99045);continue a}case 92:{m=0;e=c[47008]|0;if(e|0)c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;sD(96917);continue a}case 95:{m=0;e=c[47008]|0;if(e|0)c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;c[4736]=(c[4736]|0)+1;continue a}case 98:{m=0;e=c[47008]|0;f=c[47007]|0;if(e|0)c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[f+(e+-1)>>0]|0)==10&1;sD(f);continue a}case 101:{m=0;e=c[47008]|0;if(e|0)c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;c[47014]=7;c[47020]=1;qD();continue a}case 104:{m=0;e=c[47008]|0;if(e|0)c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;n=(c[47020]|0)+-1|0;c[47020]=n;if(!n){m=108;break a}sD(c[47007]|0);continue a}case 109:{m=0;e=c[47008]|0;f=c[47007]|0;if(e|0)c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[f+(e+-1)>>0]|0)==10&1;c[47020]=(c[47020]|0)+1;sD(f);continue a}case 112:{m=0;e=c[47008]|0;f=c[47007]|0;if(e|0)c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[f+(e+-1)>>0]|0)==10&1;sD(f);c[4736]=(c[4736]|0)+1;continue a}case 115:{m=0;e=c[47008]|0;f=c[47007]|0;if(e|0)c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[f+(e+-1)>>0]|0)==10&1;sD(f);continue a}case 121:{m=0;e=c[47008]|0;f=c[47007]|0;if(e|0)c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[f+(e+-1)>>0]|0)==10&1;_3(f,e,1,c[47006]|0)|0;continue a}}}switch(m|0){case 27:{e=c[47008]|0;if(!e)l=-1;else{c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;l=-1}break}case 53:{e=c[47008]|0;if(!e)l=259;else{c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;l=259}break}case 55:{e=c[47008]|0;if(!e)l=260;else{c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;l=260}break}case 57:{e=c[47008]|0;if(e|0)c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;if(!(c[47012]|0)){c[47012]=258;l=258}else l=258;break}case 61:{e=c[47008]|0;if(e|0)c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;if(!(c[47012]|0)){c[47012]=261;l=261}else l=261;break}case 65:{e=c[47008]|0;if(!e)l=263;else{c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;l=263}break}case 67:{e=c[47008]|0;if(!e)l=262;else{c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;l=262}break}case 69:{e=c[47008]|0;if(e|0)c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;l=(c[47012]|0)==261?264:45;break}case 72:{e=c[47008]|0;if(e|0)c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;l=(c[47012]|0)==258?264:45;break}case 75:{e=c[47008]|0;f=c[47007]|0;if(e|0)c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[f+(e+-1)>>0]|0)==10&1;c[47036]=dD(c[46985]|0,f)|0;l=267;break}case 78:{e=c[47008]|0;if(e|0)c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;if(pD()|0){m=(c[47008]|0)+-1|0;a[f>>0]=a[195085]|0;n=h+m|0;c[47017]=n;c[47007]=h;c[47008]=m;a[195085]=a[n>>0]|0;a[n>>0]=0;c[47017]=n}c[47036]=dD(c[46985]|0,c[47007]|0)|0;l=267;break}case 86:{e=c[47008]|0;if(e|0)c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[(c[47007]|0)+(e+-1)>>0]|0)==10&1;c[47014]=1;rD();l=268;break}case 108:{c[47014]=1;tD();l=268;break}case 118:{e=c[47008]|0;f=c[47007]|0;if(e|0)c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]=(a[f+(e+-1)>>0]|0)==10&1;l=a[f>>0]|0;break}case 134:{xD(96920);break}}return l|0}function lD(){var a=0,b=0,d=0;b=c[47015]|0;do if(!b){a=ED(4)|0;c[47015]=a;if(!a)xD(97278);else{c[a>>2]=0;c[47027]=1;c[47016]=0;break}}else{a=c[47027]|0;if((c[47016]|0)>>>0>=(a+-1|0)>>>0){d=a+8|0;a=yD(b,d<<2)|0;c[47015]=a;if(!a)xD(97278);else{b=a+(c[47027]<<2)|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;c[47027]=d;break}}}while(0);return}function mD(a,b){a=a|0;b=b|0;var d=0;d=ED(48)|0;if(!d)xD(97233);c[d+12>>2]=b;b=ED(b+2|0)|0;c[d+4>>2]=b;if(!b)xD(97233);else{c[d+20>>2]=1;AD(d,a);return d|0}return 0}function nD(){var b=0,d=0;d=(c[47015]|0)+(c[47016]<<2)|0;b=c[d>>2]|0;c[47021]=c[b+16>>2];b=c[b+8>>2]|0;c[47017]=b;c[47007]=b;c[47005]=c[c[d>>2]>>2];a[195085]=a[b>>0]|0;return}function oD(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0;g=l;l=l+32|0;f=g;d=g+16|0;e=g+12|0;h=c[47007]|0;b=h+1|0;i=(h2(b,97217,4)|0)==0;b=i?h+5|0:b;c[f>>2]=e;c[f+4>>2]=g+20;c[f+8>>2]=d;f=q4(b,97222,f)|0;if((f|0)>0?(c[4736]=(c[e>>2]|0)+-1,(f|0)!=1):0){d=b+(c[d>>2]|0)|0;b=d;a:while(1){e=a[b>>0]|0;switch(e<<24>>24){case 0:case 34:break a;default:{}}b=b+1|0}if((b|0)!=(d|0)&e<<24>>24==34){a[b>>0]=0;DD(d,b-d|0)}}l=g;return}function pD(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=l;l=l+2080|0;i=j+8|0;f=j;b=j+1056|0;d=j+32|0;h=j+16|0;k=a[(c[47007]|0)+((c[47008]|0)+-1)>>0]|0;e=k<<24>>24==46;if(e|((k&255)+-48|0)>>>0<10)if(e?(CD()|0)!=0:0)g=4;else b=0;else g=4;if((g|0)==4){k=c[47009]|0;hA(h,1024,b);kA(h,97128)|0;kA(h,c[47007]|0)|0;c[f>>2]=c[4736];i2(d,97172,f)|0;kA(h,d)|0;kA(h,(k|0)==0?97122:k)|0;kA(h,97189)|0;d=h+4|0;b=c[d>>2]|0;if(b>>>0>=(c[h+8>>2]|0)>>>0){iA(h,1)|0;b=c[d>>2]|0}a[b>>0]=0;b=c[h>>2]|0;c[d>>2]=b;c[i>>2]=b;dA(0,97214,i)|0;lA(h);b=1}l=j;return b|0}function qD(){var b=0;b=c[47022]|0;if(!b){b=k6(1024)|0;c[47022]=b;c[47024]=b+1024}c[47023]=b;a[b>>0]=0;return}function rD(){c[47036]=dD(c[46985]|0,c[47022]|0)|0;a[c[47022]>>0]=0;return}function sD(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=c[47023]|0;d=c[47022]|0;if(e>>>0>d>>>0){e=e+-1|0;f=3}a:while(1){if((f|0)==3)c[47023]=e;f=c[47024]|0;g=f;do{h=b;b=b+1|0;h=a[h>>0]|0;i=e;e=e+1|0;a[i>>0]=h;if(!(h<<24>>24))break a}while(e>>>0<f>>>0);c[47023]=e;f=d;i=g-f<<1;d=n6(d,i)|0;c[47022]=d;c[47024]=d+i;e=d+(e-f)|0;f=3}c[47023]=e;return}function tD(){c[47036]=eD(c[46985]|0,c[47022]|0)|0;a[c[47022]>>0]=0;return}function uD(){var d=0,e=0,f=0,g=0,h=0;h=c[47017]|0;g=c[47007]|0;e=(c[(c[(c[47015]|0)+(c[47016]<<2)>>2]|0)+28>>2]|0)+(c[47014]|0)|0;while(1){if(g>>>0>=h>>>0)break;d=a[g>>0]|0;if(!(d<<24>>24))d=1;else d=c[18948+((d&255)<<2)>>2]|0;if(b[64128+(e<<1)>>1]|0){c[47018]=e;c[47019]=g}a:while(1){f=d&255;do{d=(b[64314+(e<<1)>>1]|0)+f|0;if((b[64524+(d<<1)>>1]|0)==(e|0))break a;d=b[65060+(e<<1)>>1]|0;e=d<<16>>16}while(d<<16>>16<=92);d=c[19972+(f<<2)>>2]|0}g=g+1|0;e=b[65270+(d<<1)>>1]|0}return e|0}function vD(a){a=a|0;var d=0;if(b[64128+(a<<1)>>1]|0){d=c[47017]|0;c[47018]=a;c[47019]=d}while(1){d=(b[64314+(a<<1)>>1]|0)+1|0;if((b[64524+(d<<1)>>1]|0)==(a|0))break;a=b[65060+(a<<1)>>1]|0}d=b[65270+(d<<1)>>1]|0;return (d<<16>>16==92?0:d<<16>>16)|0}function wD(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;i=(c[47015]|0)+(c[47016]<<2)|0;g=c[i>>2]|0;h=c[g+4>>2]|0;e=c[47007]|0;l=c[47017]|0;j=l;if(l>>>0>(h+((c[47021]|0)+1)|0)>>>0)xD(96975);f=j-e|0;if(!(c[g+40>>2]|0))b=(f|0)==1?1:2;else{l=f+-1|0;g=h;f=0;while(1){if((f|0)>=(l|0))break;a[g>>0]=a[e>>0]|0;g=g+1|0;e=e+1|0;f=f+1|0}e=c[i>>2]|0;do if((c[e+44>>2]|0)==2){c[47021]=0;c[e+16>>2]=0;m=17}else{while(1){h=e+12|0;g=c[h>>2]|0;f=g-l+-1|0;if(f|0){m=16;break}f=e+4|0;i=c[f>>2]|0;if(!(c[e+20>>2]|0)){m=12;break}e=g<<1;e=(e|0)==0?(g>>>3)+g|0:e;c[h>>2]=e;e=yD(i,e+2|0)|0;c[f>>2]=e;if(!e)break;i=e+(j-i)|0;c[47017]=i;e=c[(c[47015]|0)+(c[47016]<<2)>>2]|0;j=i}if((m|0)==12)c[f>>2]=0;else if((m|0)==16){d=eb[c[c[(c[47010]|0)+8>>2]>>2]&63](c[47011]|0,(c[e+4>>2]|0)+l|0,f>>>0<8192?f:8192)|0;c[47021]=d;e=c[(c[47015]|0)+(c[47016]<<2)>>2]|0;c[e+16>>2]=d;if(!d){m=17;break}else{b=0;k=e;break}}xD(97031)}while(0);do if((m|0)==17)if(!l){zD(c[47005]|0);b=1;d=c[47021]|0;k=c[(c[47015]|0)+(c[47016]<<2)>>2]|0;break}else{c[e+44>>2]=2;b=2;d=0;k=e;break}while(0);e=d+l|0;do if(e>>>0>(c[k+12>>2]|0)>>>0){m=yD(c[k+4>>2]|0,e+(d>>>1)|0)|0;d=(c[47015]|0)+(c[47016]<<2)|0;c[(c[d>>2]|0)+4>>2]=m;d=c[(c[d>>2]|0)+4>>2]|0;if(!d)xD(97075);else{n=c[47021]|0;o=d;break}}else{n=d;o=c[k+4>>2]|0}while(0);n=n+l|0;c[47021]=n;a[o+n>>0]=0;o=(c[47015]|0)+(c[47016]<<2)|0;a[(c[(c[o>>2]|0)+4>>2]|0)+((c[47021]|0)+1)>>0]=0;c[47007]=c[(c[o>>2]|0)+4>>2]}return b|0}function xD(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=c[15715]|0;c[b>>2]=a;z4(d,96971,b)|0;$a(2)}function yD(a,b){a=a|0;b=b|0;return n6(a,b)|0}function zD(a){a=a|0;var b=0,d=0,e=0;d=c[47015]|0;if((d|0)!=0?(b=c[d+(c[47016]<<2)>>2]|0,(b|0)!=0):0)e=4;else{lD();b=mD(c[47005]|0,16384)|0;d=c[47015]|0;c[d+(c[47016]<<2)>>2]=b;if(!d)b=0;else e=4}AD(b,a);nD();return}function AD(a,b){a=a|0;b=b|0;var d=0;d=c[(L1()|0)>>2]|0;BD(a);c[a>>2]=b;c[a+40>>2]=1;b=c[47015]|0;if(!b)b=0;else b=c[b+(c[47016]<<2)>>2]|0;if((b|0)!=(a|0)){c[a+32>>2]=1;c[a+36>>2]=0}c[a+24>>2]=0;c[(L1()|0)>>2]=d;return}function BD(b){b=b|0;var d=0;if(b|0){c[b+16>>2]=0;d=b+4|0;a[c[d>>2]>>0]=0;a[(c[d>>2]|0)+1>>0]=0;c[b+8>>2]=c[d>>2];c[b+28>>2]=1;c[b+44>>2]=0;d=c[47015]|0;if(!d)d=0;else d=c[d+(c[47016]<<2)>>2]|0;if((d|0)==(b|0))nD()}return}function CD(){var b=0,d=0;d=c[47007]|0;b=(c[47008]|0)+-2|0;while(1){if((b|0)<=-1){b=0;break}if((a[d+b>>0]|0)==46){b=1;break}else b=b+-1|0}return b|0}function DD(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[47025]|0;if((d|0)<(b|0)){e=b+1|0;if(!d)d=k6(e)|0;else d=n6(c[47026]|0,e)|0;c[47026]=d;c[47025]=b}else d=c[47026]|0;O3(d,a)|0;c[47009]=c[47026];return}function ED(a){a=a|0;return k6(a)|0}function FD(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+2112|0;k=m+32|0;i=m+24|0;h=m+16|0;g=m+8|0;f=m;d=m+56|0;j=m+40|0;hA(j,1024,m+1080|0);e=c[47009]|0;if(e|0){kA(j,e)|0;kA(j,97328)|0}kA(j,b)|0;c[f>>2]=c[4736];i2(d,97331,f)|0;kA(j,d)|0;a:do if(!(a[c[47007]>>0]|0))switch(((c[47014]|0)+-1|0)/2|0|0){case 2:{c[g>>2]=16384;i2(d,97351,g)|0;kA(j,d)|0;b=c[47022]|0;if(!(a[b>>0]|0))break a;i=D3(b)|0;kA(j,97413)|0;b=c[47022]|0;if((i|0)>80)a[b+80>>0]=0;kA(j,b)|0;break a}case 3:{c[h>>2]=16384;i2(d,97432,h)|0;kA(j,d)|0;b=c[47022]|0;if(!(a[b>>0]|0))break a;i=D3(b)|0;kA(j,97500)|0;b=c[47022]|0;if((i|0)>80)a[b+80>>0]=0;kA(j,b)|0;break a}case 1:{c[i>>2]=16384;i2(d,97519,i)|0;kA(j,d)|0;break a}default:break a}else{kA(j,97343)|0;kA(j,c[47007]|0)|0;d=j+4|0;b=c[d>>2]|0;if(b>>>0>=(c[j+8>>2]|0)>>>0){iA(j,1)|0;b=c[d>>2]|0}c[d>>2]=b+1;a[b>>0]=39}while(0);e=j+4|0;b=c[e>>2]|0;d=j+8|0;if(b>>>0>=(c[d>>2]|0)>>>0){iA(j,1)|0;b=c[e>>2]|0}c[e>>2]=b+1;a[b>>0]=10;b=c[e>>2]|0;if(b>>>0>=(c[d>>2]|0)>>>0){iA(j,1)|0;b=c[e>>2]|0}a[b>>0]=0;i=c[j>>2]|0;c[e>>2]=i;c[k>>2]=i;dA(1,97214,k)|0;lA(j);l=m;return}function GD(){HD(c[47007]|0);return}function HD(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=c[47017]|0;a[j>>0]=a[195085]|0;i=(c[47015]|0)+(c[47016]<<2)|0;e=c[i>>2]|0;d=c[e+4>>2]|0;if(j>>>0<(d+2|0)>>>0){f=d+((c[47021]|0)+2)|0;g=d+((c[e+12>>2]|0)+2)|0;k=d;h=e;while(1){if(f>>>0<=k>>>0)break;e=f+-1|0;k=g+-1|0;a[k>>0]=a[e>>0]|0;h=c[i>>2]|0;f=e;g=k;k=c[h+4>>2]|0}e=g-f|0;d=j+e|0;j=c[h+12>>2]|0;c[47021]=j;c[h+16>>2]=j;if(d>>>0<(k+2|0)>>>0)xD(97578);else{l=b+e|0;m=d}}else{l=b;m=j}b=m+-1|0;a[b>>0]=64;c[47007]=l;a[195085]=a[b>>0]|0;c[47017]=b;return}function ID(){var a=0;a=c[47015]|0;if(!a)a=0;else a=c[a+(c[47016]<<2)>>2]|0;BD(a);return}function JD(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+80|0;f=e;g=a+52|0;VD(a,c[g>>2]|0,18592);a=f+8|0;c[a>>2]=b;c[a+4>>2]=d;d=c[g>>2]|0;d=eb[c[d>>2]&63](d,f,4)|0;l=e;return d|0}function KD(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=JD(b,d,e)|0;if(!f){f=aC(b,72)|0;c[f+64>>2]=c[b+64>>2];g=f+24|0;h=c[b+24>>2]|0;c[g>>2]=h;a[g>>0]=h&255&-9;c[f+56>>2]=b;c[f+60>>2]=c[b+60>>2];b=f+8|0;c[b>>2]=d;c[b+4>>2]=e;nB(f)|0}return f|0}function LD(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;f=g;if(!(((b|0)!=0?(EB(a,0,b,f,0)|0)!=0:0)?(e=f,e=JD(a,c[e>>2]|0,c[e+4>>2]|0)|0,(e|0)!=0):0))if((d|0)!=0?(EB(a,0,b,f,1)|0)!=0:0){e=f;e=KD(a,c[e>>2]|0,c[e+4>>2]|0)|0;IB(a,0,e)}else e=0;l=g;return e|0}function MD(a){a=a|0;a=c[a+52>>2]|0;return eb[c[a>>2]&63](a,0,128)|0}function ND(a){a=a|0;var b=0;b=OD(a)|0;if(!b)a=0;else{b=c[b+52>>2]|0;a=eb[c[b>>2]&63](b,a,8)|0}return a|0}function OD(a){a=a|0;return c[a+56>>2]|0}function PD(a,b){a=a|0;b=b|0;a=c[a+52>>2]|0;return eb[c[a>>2]&63](a,b,2)|0}function QD(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=c[47028]|0;e=(b|0)!=0;do if(!a)if(e){l6(b);a=0;break}else{a=k6(d)|0;break}else if(e){bC(a,b);a=0;break}else{a=aC(a,d)|0;break}while(0);return a|0}function RD(a,b,d){a=a|0;b=b|0;d=d|0;a=c[47028]|0;if(!a)l6(b);else bC(a,b);return}function SD(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=b+28|0;f=c[e>>2]|0;c[e>>2]=7;c[47028]=a;d=Sz(b,d)|0;c[e>>2]=f;c[47028]=0;return d|0}function TD(a,b,d){a=a|0;b=b|0;d=d|0;c[47028]=a;return eb[c[b>>2]&63](b,d,2)|0}function UD(a,b){a=a|0;b=b|0;var d=0,e=0;d=(_z(b,0,0)|0)+28|0;e=c[d>>2]|0;c[d>>2]=7;c[47028]=a;if(!(Oz(b)|0)){c[d>>2]=e;c[47028]=0;a=0}else a=1;return a|0}function VD(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0?(_z(b,0,0)|0)!=(c|0):0)_z(b,c,0)|0;return}function WD(a,b){a=a|0;b=b|0;if(!(gD(a)|0))b=YD(a,b)|0;else XD(a,b)|0;return b|0}function XD(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;a[c>>0]=60;f=c+1|0;while(1){d=a[b>>0]|0;e=f+1|0;if(!(d<<24>>24))break;a[f>>0]=d;f=e;b=b+1|0}a[f>>0]=62;a[e>>0]=0;return c|0}function YD(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;a:do if((b|0)!=0?(a[b>>0]|0)!=0:0){a[d>>0]=34;k=a[b>>0]|0;t=0;g=((k+-45&255)<2|((k&255)+-48|0)>>>0<10)&1;h=0;i=0;j=0;e=d+1|0;f=b+1|0;b:while(1){o=g;l=e;p=k;while(1){g=l+1|0;if(!(p<<24>>24))break b;e=p&255;c:do if(p<<24>>24==34){a[l>>0]=92;h=1}else{if(!o){g=p<<24>>24>-1&(p<<24>>24!=95&(O2(e)|0)==0);o=0;h=g?1:h;g=l;break}switch(p<<24>>24){case 45:{g=(j|0)==0;o=g?o:0;h=g?h:1;g=l;break c}case 46:{g=(i|0)==0;o=g?o:0;h=g?h:1;i=i+1|0;g=l;break c}default:{g=(e+-48|0)>>>0<10;o=g?o:0;h=g?h:1;g=l;break c}}}while(0);e=g+1|0;a[g>>0]=p;s=f+1|0;r=a[f>>0]|0;j=j+1|0;f=c[5042]|0;if(!f){l=e;f=s;p=r;continue}k=r&255;l=r<<24>>24!=0;m=g+2|0;n=r<<24>>24>-1;q=g+3|0;if((t&l?!(p<<24>>24==92|p<<24>>24>-1&((p+-45&255)>1&(O2(p<<24>>24)|0)==0)^1):0)?(r+-45&255)<2|(O2(k)|0)!=0|n^1:0)break;if((j|0)<(f|0)|l^1){l=e;f=s;p=r;continue}if(p<<24>>24==92|p<<24>>24>-1&((O2(p<<24>>24)|0)==0&(p+-45&255)>1)^1){t=1;g=o;k=r;f=s;continue b}if(!((r+-45&255)<2|(O2(k)|0)!=0|n^1)){t=1;g=o;k=r;f=s;continue b}a[e>>0]=92;a[m>>0]=10;h=1;j=0;l=q;f=s;p=r}a[e>>0]=92;a[m>>0]=10;t=0;g=o;h=1;j=0;k=r;e=q;f=s}a[l>>0]=34;a[g>>0]=0;if(!h){if((j|0)==1?((a[b>>0]|0)+-45&255)<2:0){b=d;break}else e=20172;while(1){f=c[e>>2]|0;if(!f)break a;if(!(C3(f,b)|0)){b=d;break}else e=e+4|0}}else b=d}else b=97610;while(0);return b|0}function ZD(a){a=a|0;return WD(a,_D(a)|0)|0}function _D(a){a=a|0;var b=0;b=((D3(a)|0)<<1)+2|0;b=b>>>0>1024?b:1024;a=c[47030]|0;if(b>>>0>(c[47029]|0)>>>0){if(!a)a=k6(b)|0;else a=n6(a,b)|0;c[47030]=a;c[47029]=b}return a|0}function $D(a,b){a=a|0;b=b|0;a=MD(a)|0;while(1){if(!a){a=0;break}if((aE(a)|0)==0?lC(a,b,0)|0:0){a=1;break}a=ND(a)|0}return a|0}function aE(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=HB(b)|0;if((h|0)!=0?(a[h>>0]|0)!=37:0)d=0;else e=3;a:do if((e|0)==3){d=tA(b)|0;b:do if(d|0?(f=tA(OD(b)|0)|0,f|0):0){h=Uz(c[(tA(vC(b)|0)|0)+8>>2]|0)|0;g=d+12|0;e=f+12|0;d=0;while(1){if((d|0)>=(h|0))break b;f=c[(c[g>>2]|0)+(d<<2)>>2]|0;if((f|0?(i=c[(c[e>>2]|0)+(d<<2)>>2]|0,i|0):0)?f2(f,i)|0:0){d=0;break a}d=d+1|0}}while(0);d=oA(b,0)|0;if(d)if((Uz(c[d+8>>2]|0)|0)>0)d=0;else return (Uz(c[d+12>>2]|0)|0)<1|0;else d=1}while(0);return d|0}function bE(b,d){b=b|0;d=d|0;var e=0,f=0;c[47031]=0;e=NA(b,97620)|0;if((e|0?((a[e>>0]|0)+-48|0)>>>0<10:0)?(f=$1(e,0,10)|0,(f|0)==0|(f|0)>59):0)c[5042]=f;cE(b,1);if(((dE(b,d,1)|0)!=-1?(eE(b,d)|0)!=-1:0)?(fE(b,d)|0)!=-1:0){c[5042]=128;b=pb[c[(c[(c[b+64>>2]|0)+8>>2]|0)+8>>2]&63](d)|0}else b=-1;return b|0}function cE(a,b){a=a|0;b=b|0;var d=0;c[a>>2]=c[a>>2]&-9;d=MD(a)|0;while(1){if(!d)break;cE(d,0);d=ND(d)|0}a:do if(b|0){b=gC(a)|0;while(1){if(!b)break a;c[b>>2]=c[b>>2]&-9;d=UA(a,b)|0;while(1){if(!d)break;c[d>>2]=c[d>>2]&-9;d=WA(a,d)|0}b=hC(a,b)|0}}while(0);return}function dE(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;if((e|0)==0?(OD(b)|0)!=0:0){i=0;g=195341;k=109815}else{k=(a[b+24>>0]&1)==0?195341:97664;g=(wB(b)|0)==0;c[47032]=DA(b,2,111756,0)|0;c[47033]=DA(b,2,111765,0)|0;i=1;g=g?195341:97667}f=HB(b)|0;if((f|0)!=0?(a[f>>0]|0)!=37:0){h=1;j=102905}else{h=0;j=195341;f=195341}do if((gE(b,d)|0)!=-1?(hE(b,d,g)|0)!=-1:0){g=(h|0)==0;if(h|i|0){if((hE(b,d,k)|0)==-1){f=-1;break}if((hE(b,d,102898)|0)==-1){f=-1;break}}if(!g?(sE(b,d,f)|0)==-1:0){f=-1;break}if(((hE(b,d,j)|0)!=-1?(hE(b,d,97675)|0)!=-1:0)?(c[47031]=(c[47031]|0)+1,(xE(b,d,e)|0)!=-1):0){c[b>>2]=c[b>>2]|8;f=0}else f=-1}else f=-1;while(0);return f|0}function eE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:do if((iE(a,b)|0)==-1)d=-1;else{k=oA(vC(a)|0,0)|0;i=(k|0)!=0;j=k+8|0;k=k+12|0;h=gC(a)|0;while(1){if(!h){d=0;break a}if(jE(a,h,(c[h>>2]|0)>>>4,0)|0){if(i)d=c[j>>2]|0;else d=0;if((kE(h,b,d)|0)==-1){d=-1;break a}}g=UA(a,h)|0;d=h;while(1){if(!g)break;f=g+-48|0;e=c[((c[g>>2]&3|0)==2?g:f)+40>>2]|0;if((d|0)!=(e|0)?(jE(a,e,(c[h>>2]|0)>>>4,0)|0)!=0:0){if(i)d=c[j>>2]|0;else d=0;if((kE(c[((c[g>>2]&3|0)==2?g:f)+40>>2]|0,b,d)|0)==-1){d=-1;break a}d=c[((c[g>>2]&3|0)==2?g:f)+40>>2]|0}if(lE(a,g)|0){if(i)e=c[k>>2]|0;else e=0;if((mE(g,b,e)|0)==-1){d=-1;break a}}g=WA(a,g)|0}h=hC(a,h)|0}}while(0);return d|0}function fE(a,b){a=a|0;b=b|0;c[47031]=(c[47031]|0)+-1;if((gE(a,b)|0)==-1)a=-1;else a=((hE(a,b,111309)|0)==-1)<<31>>31;return a|0}function gE(a,b){a=a|0;b=b|0;var d=0;d=c[47031]|0;while(1){if((d|0)<=0){d=0;break}if((hE(a,b,153746)|0)==-1){d=-1;break}else d=d+-1|0}return d|0}function hE(a,b,d){a=a|0;b=b|0;d=d|0;return vb[c[(c[(c[a+64>>2]|0)+8>>2]|0)+4>>2]&127](b,d)|0}function iE(a,b){a=a|0;b=b|0;a=MD(a)|0;while(1){if(!a){a=0;break}if(!(aE(a)|0)){if((dE(a,b,0)|0)==-1){a=-1;break}if((eE(a,b)|0)==-1){a=-1;break}if((fE(a,b)|0)==-1){a=-1;break}}else iE(a,b)|0;a=ND(a)|0}return a|0}function jE(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;if(($D(a,b)|0)==0?(uE(a,b,c,d)|0)!=0:0)if((vE(a,b)|0)==0?(wE(b)|0)==0:0)e=5;else a=1;else e=5;if((e|0)==5)a=0;return a|0}function kE(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=uC(a)|0;do if((gE(d,b)|0)!=-1?(nE(a,b)|0)!=-1:0){if((pE(a)|0)==0?(qE(a,b,c)|0)==-1:0){a=-1;break}a=hE(d,b,97631)|0}else a=-1;while(0);return a|0}function lE(a,b){a=a|0;b=b|0;a=MD(a)|0;while(1){if(!a){a=1;break}if((aE(a)|0)==0?jB(a,b,0)|0:0){a=0;break}a=ND(a)|0}return a|0}function mE(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=c[a>>2]&3;g=c[((e|0)==3?a:a+48|0)+40>>2]|0;e=c[((e|0)==2?a:a+-48|0)+40>>2]|0;f=uC(g)|0;do if((((((gE(f,b)|0)!=-1?(nE(g,b)|0)!=-1:0)?(oE(a,b,c[47032]|0)|0)!=-1:0)?(g=(uB(uC(g)|0)|0)!=0,(hE(f,b,g?100380:100385)|0)!=-1):0)?(nE(e,b)|0)!=-1:0)?(oE(a,b,c[47033]|0)|0)!=-1:0){if(!(pE(a)|0)){if((qE(a,b,d)|0)==-1){a=-1;break}}else if((rE(a,b,1)|0)==-1){a=-1;break}a=hE(f,b,97631)|0}else a=-1;while(0);return a|0}function nE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=l;l=l+32|0;g=i;d=i+8|0;e=HB(a)|0;f=uC(a)|0;if(!e){j=a+8|0;a=c[j+4>>2]|0;e=g;c[e>>2]=c[j>>2];c[e+4>>2]=a;i2(d,97651,g)|0;if((hE(f,b,d)|0)==-1)a=-1;else h=4}else if((sE(f,b,e)|0)==-1)a=-1;else h=4;if((h|0)==4)a=0;l=i;return a|0}function oE(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if((d|0)!=0?(e=uC(b)|0,f=OA(b,d)|0,(a[f>>0]|0)!=0):0)if((hE(e,c,108285)|0)==-1)b=-1;else{do if(gD(f)|0){if((sE(e,c,f)|0)==-1){b=-1;break a}}else{b=F3(f,58)|0;if(!b)if((tE(e,c,f,0)|0)==-1){b=-1;break a}else break;a[b>>0]=0;if((tE(e,c,f,0)|0)==-1){b=-1;break a}if((hE(e,c,108285)|0)==-1){b=-1;break a}if((tE(e,c,b+1|0,0)|0)==-1){b=-1;break a}a[b>>0]=58}while(0);b=0}else b=0;while(0);return b|0}function pE(a){a=a|0;return (c[a>>2]|0)>>>3&1|0}function qE(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:do if(!(c[a>>2]&2)){e=0;k=4}else{switch(rE(a,b,0)|0){case -1:{e=-1;break a}case 0:{e=0;k=4;break a}default:{}}e=1;k=4}while(0);b:do if((k|0)==4){f=tA(a)|0;j=uC(a)|0;c:do if(f){i=f+12|0;h=eb[c[d>>2]&63](d,0,128)|0;while(1){if(!h)break c;f=h+16|0;do if(c[a>>2]&2){g=c[47032]|0;if(g|0?(c[f>>2]|0)==(c[g+16>>2]|0):0)break;g=c[47033]|0;if(!((g|0)!=0?(c[f>>2]|0)==(c[g+16>>2]|0):0))k=12}else k=12;while(0);if((k|0)==12){k=0;if((c[(c[i>>2]|0)+(c[f>>2]<<2)>>2]|0)!=(c[h+12>>2]|0)){g=e+1|0;if(e){if((hE(j,b,97646)|0)==-1){e=-1;break b}if((gE(j,b)|0)==-1){e=-1;break b}}else{if((gE(j,b)|0)==-1){e=-1;break b}if((hE(j,b,97643)|0)==-1){e=-1;break b}c[47031]=(c[47031]|0)+1}if((sE(j,b,c[h+8>>2]|0)|0)==-1){e=-1;break b}if((hE(j,b,97649)|0)==-1){e=-1;break b}if((sE(j,b,c[(c[i>>2]|0)+(c[f>>2]<<2)>>2]|0)|0)==-1){e=-1;break b}else e=g}}h=eb[c[d>>2]&63](d,h,8)|0}}while(0);if((e|0)>0){if((hE(j,b,97641)|0)==-1){e=-1;break}c[47031]=(c[47031]|0)+-1}c[a>>2]=c[a>>2]|8;e=0}while(0);return e|0}function rE(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;e=HB(b)|0;b=uC(b)|0;if((e|0)!=0?(a[e>>0]|0)!=0:0)if((hE(b,c,97634)|0)!=-1?(sE(b,c,e)|0)!=-1:0)if((d|0)!=0?(hE(b,c,97641)|0)==-1:0)b=-1;else{b=1;f=7}else b=-1;else{b=0;f=7}return b|0}function sE(a,b,c){a=a|0;b=b|0;c=c|0;return tE(a,b,c,1)|0}function tE(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(!d)c=YD(c,_D(c)|0)|0;else c=ZD(c)|0;return hE(a,b,c)|0}function uE(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a:do if(0<e>>>0|(0==(e|0)?(c[b>>2]|0)>>>4>>>0<d>>>0:0))b=0;else{b=XA(a,b)|0;while(1){if(!b){b=1;break a}if(0<e>>>0|(0==(e|0)?(c[c[b+40>>2]>>2]|0)>>>4>>>0<d>>>0:0)){b=0;break a}b=YA(a,b)|0}}while(0);return b|0}function vE(a,b){a=a|0;b=b|0;if(!(XA(a,b)|0))a=(UA(a,b)|0)==0;else a=0;return a&1|0}function wE(a){a=a|0;var b=0,d=0,e=0;a=tA(a)|0;a:do if(!a)a=0;else{d=a+8|0;e=c[d>>2]|0;b=a+12|0;a=eb[c[e>>2]&63](e,0,128)|0;while(1){if(!a){a=0;break a}if((c[(c[b>>2]|0)+(c[a+16>>2]<<2)>>2]|0)!=(c[a+12>>2]|0)){a=1;break a}e=c[d>>2]|0;a=eb[c[e>>2]&63](e,a,8)|0}}while(0);return a|0}function xE(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=oA(a,0)|0;if(e)if(((yE(a,b,111795,c[e+16>>2]|0,d)|0)!=-1?(yE(a,b,111782,c[e+8>>2]|0,d)|0)!=-1:0)?(yE(a,b,111751,c[e+12>>2]|0,d)|0)!=-1:0)f=5;else a=-1;else f=5;if((f|0)==5)a=0;return a|0}function yE(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=(g|0)!=0;if(m)l=0;else l=Xz(f,0)|0;k=(l|0)==0;j=eb[c[f>>2]&63](f,0,128)|0;g=0;while(1){if(!j){n=23;break}i=j+12|0;n=c[i>>2]|0;if((n|0)!=0?(a[n>>0]|0)!=0:0)n=12;else n=7;do if((n|0)==7){n=0;if(!(a[j+22>>0]|0)){if(!k){h=eb[c[l>>2]&63](l,j,4)|0;o=c[h+12>>2]|0;if(o|0?a[o>>0]|0:0){n=12;break}if(!(a[h+22>>0]|0))n=12}}else n=12}while(0);if((n|0)==12){n=0;h=g+1|0;if(g){if((hE(b,d,97646)|0)==-1){g=-1;break}if((gE(b,d)|0)==-1){g=-1;break}}else{if((gE(b,d)|0)==-1){g=-1;break}if((hE(b,d,e)|0)==-1){g=-1;break}if((hE(b,d,97643)|0)==-1){g=-1;break}c[47031]=(c[47031]|0)+1}if((sE(b,d,c[j+8>>2]|0)|0)==-1){g=-1;break}if((hE(b,d,97649)|0)==-1){g=-1;break}if((sE(b,d,c[i>>2]|0)|0)==-1){g=-1;break}else g=h}j=eb[c[f>>2]&63](f,j,8)|0}do if((n|0)==23){if((g|0)>0){c[47031]=(c[47031]|0)+-1;if((g|0)!=1){if((hE(b,d,153748)|0)==-1){g=-1;break}if((gE(b,d)|0)==-1){g=-1;break}}g=(hE(b,d,97678)|0)==-1;if(m|g){g=g<<31>>31;break}}else if(m){g=0;break}Xz(f,l)|0;g=0}while(0);return g|0}function zE(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;switch(c[b>>2]&3){case 0:{g=82;break}case 1:{g=83;break}case 3:case 2:{g=84;break}default:{}}b=vb[g&127](a,b)|0;if(!b)b=-1;else{DE(a,b,d,e,g,f);b=0}return b|0}function AE(a,b){a=a|0;b=b|0;if((uC(b)|0)!=(a|0))b=jB(a,b,0)|0;return b|0}function BE(a,b){a=a|0;b=b|0;if((uC(b)|0)!=(a|0))b=lC(a,b,0)|0;return b|0}function CE(a,b){a=a|0;b=b|0;return a|0}function DE(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;h=(f|0)!=0;if(h)rb[c&127](a,b,d);g=MD(a)|0;while(1){if(!g)break;i=vb[e&127](g,b)|0;if(i|0)DE(g,i,c,d,e,f);g=ND(g)|0}if(!h)rb[c&127](a,b,d);return}function EE(){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+1200|0;s=u+800|0;h=u;c[47034]=0;c[47035]=-2;f=s;i=200;n=h;o=0;p=0;g=s;a:while(1){b[g>>1]=o;if((f+(i<<1)+-2|0)>>>0>g>>>0){q=i;r=f;k=h}else{m=(g-f>>1)+1|0;if(i>>>0>9999){t=76;break}j=i<<1;j=j>>>0<1e4?j:1e4;e=k6(j*6|3)|0;if(e){B6(e|0,f|0,m<<1|0)|0;i=e+(j>>>1<<2)|0;B6(i|0,n|0,m<<2|0)|0;if((f|0)==(s|0)){k=0;f=e}else{l6(f);k=0;f=e}}else{k=4;i=n}e=(k|0)==0;switch((e?((j|0)>(m|0)?0:9):k)&15){case 9:{e=1;t=77;break a}case 4:{t=76;break a}case 0:{q=j;r=f;k=e?i+(m<<2)+-4|0:h;n=i;g=e?f+(m<<1)+-2|0:g;break}default:{e=0;break a}}}if((o|0)==6){e=0;f=r;t=77;break}e=a[97682+o>>0]|0;i=e<<24>>24;j=(p|0)!=0;do if(e<<24>>24!=-18){f=c[47035]|0;if((f|0)==-2){f=kD()|0;c[47035]=f}if((f|0)>=1)if(f>>>0<269)h=d[97762+f>>0]|0;else h=2;else{c[47035]=0;h=0}f=h+i|0;if(f>>>0<=59?(d[98031+f>>0]|0)==(h|0):0){o=a[98091+f>>0]|0;e=o<<24>>24;if(o<<24>>24<1){f=0-e|0;t=23;break}else{c[47035]=-2;h=k+4|0;c[h>>2]=c[47036];j=j?p+-1|0:0;break}}else t=22}else t=22;while(0);if((t|0)==22){t=0;o=a[98151+o>>0]|0;f=o&255;if(!(o<<24>>24)){do if(j)if((p|0)==3){f=c[47035]|0;if((f|0)<1)if(!f){e=1;f=r;t=77;break a}else{f=k;break}else{c[47035]=-2;f=k;break}}else f=k;else{c[47034]=(c[47034]|0)+1;FD(142682);f=k}while(0);while(1){if(e<<24>>24==18)break;if((g|0)==(r|0)){e=1;f=r;t=77;break a}e=g+-2|0;f=f+-4|0;g=e;e=a[97682+(b[e>>1]|0)>>0]|0}h=f+4|0;c[h>>2]=c[47036];e=1;j=3}else t=23}do if((t|0)==23){t=0;j=d[98231+f>>0]|0;e=c[k+(1-j<<2)>>2]|0;h=k+-4|0;i=k+-8|0;b:do switch(f|0){case 2:{FE();GE();break}case 3:{if(c[47037]|0){FE();GE();pB(c[47037]|0)|0;c[46985]=0;c[47037]=0}break}case 6:{HE(c[k>>2]|0,c[h>>2]|0,c[i>>2]|0);break}case 7:{e=c[k>>2]|0;break}case 8:{e=0;break}case 9:{e=1;break}case 10:{e=0;break}case 11:{e=0;break}case 12:{e=1;break}case 21:if(!(c[h>>2]|0)){JE();break b}else{IE();break b}case 24:{KE();break}case 25:{KE();break}case 26:{e=1;break}case 27:{e=0;break}case 30:{LE(c[k>>2]|0,0,0);break}case 31:{LE(c[i>>2]|0,c[k>>2]|0,0);break}case 32:{LE(c[k+-16>>2]|0,c[i>>2]|0,c[k>>2]|0);break}case 33:{ME(c[i>>2]|0,c[h>>2]|0);break}case 34:{ME(258,0);break}case 35:{e=258;break}case 36:{e=259;break}case 37:{e=260;break}case 38:{e=c[h>>2]|0;break}case 39:{e=0;break}case 48:{NE(c[i>>2]|0,c[k>>2]|0);break}case 49:{NE(c[k>>2]|0,0);break}case 51:{OE(c[k>>2]|0);break}case 52:{PE();break}case 53:{e=c[k>>2]|0;break}case 54:{e=0;break}case 55:{e=0;break}case 59:{e=c[k>>2]|0;break}case 60:{e=c[k>>2]|0;break}case 61:{e=c[k>>2]|0;break}case 62:{e=QE(c[i>>2]|0,c[k>>2]|0)|0;break}default:{}}while(0);h=0-j|0;o=k+(h<<2)|0;g=g+(h<<1)|0;h=o+4|0;c[o+4>>2]=e;e=(d[98294+f>>0]|0)+-24|0;o=b[g>>1]|0;f=o+(a[98357+e>>0]|0)|0;if(f>>>0<60?(d[98031+f>>0]|0)==(o|0):0){e=a[98091+f>>0]|0;j=p;break}e=a[98392+e>>0]|0;j=p}while(0);f=r;i=q;o=e;p=j;g=g+2|0}if((t|0)==76){FD(140861);e=2;t=77}if((t|0)==77)if((f|0)!=(s|0))l6(f);l=u;return e|0}function FE(){var a=0,b=0;a=c[47038]|0;while(1){if(!a)break;YE(a+8|0);YE((c[47038]|0)+24|0);YE((c[47038]|0)+16|0);b=RE(c[47038]|0)|0;c[47038]=b;a=b}return}function GE(){GD();QB(c[47037]|0);return}function HE(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=l;l=l+16|0;g=h;f=c[47037]|0;if(!f){a[188156]=d&1|(e&255)<<1&2|a[188156]&-12|8;f=c[47040]|0;c[g>>2]=c[47039];f=lB(b,g,f)|0;c[47037]=f}c[46985]=f;c[47038]=SE(c[47038]|0,f)|0;fD(0,b)|0;l=h;return}function IE(){var b=0,d=0,e=0,f=0,g=0,h=0;XE(2);e=c[47038]|0;f=a[98427]|0;h=0;b=e+24|0;while(1){d=c[b>>2]|0;if(!d)break;if(((c[d>>2]|0)==267?(g=c[d+4>>2]|0,(a[g>>0]|0)==f<<24>>24):0)?(f2(g,98427)|0)==0:0)b=c[d+8>>2]|0;else b=h;h=b;b=d+12|0}b=e+16|0;a:while(1){e=c[b>>2]|0;b=e+12|0;if(!(c[b>>2]|0))break;d=e+4|0;if((c[e>>2]|0)==262){e=c[d>>2]|0;d=gC(e)|0;while(1){if(!d)continue a;g=lC(c[c[47038]>>2]|0,d,0)|0;dF(g,0,c[b>>2]|0,h);d=hC(e,d)|0}}else while(1){d=c[d>>2]|0;if(!d)continue a;dF(c[d+4>>2]|0,c[d+8>>2]|0,c[b>>2]|0,h);d=d+12|0}}YE((c[47038]|0)+8|0);YE((c[47038]|0)+16|0);YE((c[47038]|0)+24|0);c[(c[47038]|0)+4>>2]=0;return}function JE(){var a=0;XE(1);a=(c[47038]|0)+8|0;while(1){a=c[a>>2]|0;if(!a)break;cF(c[a+4>>2]|0);a=a+12|0}YE((c[47038]|0)+8|0);YE((c[47038]|0)+24|0);YE((c[47038]|0)+16|0);c[(c[47038]|0)+4>>2]=0;return}function KE(){var a=0,b=0;a=c[47038]|0;b=c[a+8>>2]|0;if(!b){b=c[a+4>>2]|0;if(!b)b=0;else{b=bF(b)|0;a=c[47038]|0}c[a+4>>2]=0}else{b=aF(b)|0;a=c[47038]|0;c[a+12>>2]=0;c[a+8>>2]=0}if(b|0)UE(a+16|0,b);return}function LE(a,b,d){a=a|0;b=b|0;d=d|0;if(d)b=_E(b,d)|0;d=$E(qC(c[c[47038]>>2]|0,a,1)|0,b)|0;UE((c[47038]|0)+8|0,d);fD(c[47037]|0,a)|0;return}function ME(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;if(d|0)WE();d=(c[47038]|0)+24|0;while(1){d=c[d>>2]|0;if(!d)break;if(!(c[d+8>>2]|0))WE();d=d+12|0}g=(b|0)==260?2:(b|0)==259&1;XE(g);b=c[47038]|0;d=b+24|0;while(1){f=c[d>>2]|0;if(!f)break;do if((c[f>>2]|0)!=267){d=c[f+4>>2]|0;e=c[b>>2]|0;if(!((a[d+21>>0]|0)!=0&(e|0)==(c[47037]|0))){d=DA(e,g,c[d+8>>2]|0,c[f+8>>2]|0)|0;b=c[47038]|0;if((c[b>>2]|0)!=(c[47037]|0))break}a[d+22>>0]=1}while(0);d=f+12|0}YE(b+24|0);return}function NE(a,b){a=a|0;b=b|0;b=TE(a,b)|0;UE((c[47038]|0)+24|0,b);return}function OE(a){a=a|0;var b=0;b=c[47038]|0;c[47038]=SE(b,LD(c[b>>2]|0,a,1)|0)|0;fD(c[47037]|0,a)|0;return}function PE(){var a=0,b=0;a=c[47038]|0;b=c[a>>2]|0;a=RE(a)|0;c[47038]=a;c[a+4>>2]=b;return}function QE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=l;l=l+1024|0;f=g;d=D3(a)|0;d=d+1+(D3(b)|0)|0;if(d>>>0<1025)d=f;else d=k6(d)|0;O3(d,a)|0;g6(d,b)|0;e=dD(c[47037]|0,d)|0;fD(c[47037]|0,a)|0;fD(c[47037]|0,b)|0;if((d|0)!=(f|0))l6(d);l=g;return e|0}function RE(a){a=a|0;var b=0;b=c[(c[47038]|0)+32>>2]|0;bC(c[47037]|0,a);return b|0}function SE(a,b){a=a|0;b=b|0;var d=0;d=aC(c[47037]|0,36)|0;c[d+32>>2]=a;c[d>>2]=b;return d|0}function TE(a,b){a=a|0;b=b|0;return VE(267,a,b)|0}function UE(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+4|0;e=c[d>>2]|0;if(e|0)c[e+12>>2]=b;c[d>>2]=b;if(!(c[a>>2]|0))c[a>>2]=b;return}function VE(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=aC(c[47037]|0,16)|0;c[e>>2]=a;c[e+4>>2]=b;c[e+8>>2]=d;return e|0}function WE(){var a=0;a=l;l=l+16|0;dA(0,98431,a)|0;l=a;return}function XE(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;g=(b|0)==2;d=(c[47038]|0)+24|0;while(1){d=c[d>>2]|0;if(!d)break;e=d+4|0;f=c[e>>2]|0;if(!((g?(a[f>>0]|0)==(a[98427]|0):0)?!(f2(f,98427)|0):0)){h=DA(c[c[47038]>>2]|0,b,f,0)|0;c[e>>2]=h;if(!h)c[e>>2]=DA(c[c[47038]>>2]|0,b,f,195341)|0;c[d>>2]=266;fD(c[47037]|0,f)|0}d=d+12|0}return}function YE(a){a=a|0;ZE(c[a>>2]|0);c[a+4>>2]=0;c[a>>2]=0;return}function ZE(a){a=a|0;var b=0;while(1){if(!a)break;b=c[a+12>>2]|0;switch(c[a>>2]|0){case 265:{ZE(c[a+4>>2]|0);break}case 266:case 267:{fD(c[47037]|0,c[a+8>>2]|0)|0;break}default:{}}bC(c[47037]|0,a);a=b}return}function _E(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=l;l=l+1040|0;f=h;g=h+8|0;d=D3(a)|0;d=d+2+(D3(b)|0)|0;if(d>>>0<1025)e=g;else e=k6(d)|0;c[f>>2]=a;c[f+4>>2]=b;i2(e,98464,f)|0;d=dD(c[47037]|0,e)|0;fD(c[47037]|0,a)|0;fD(c[47037]|0,b)|0;if((e|0)!=(g|0))l6(e);l=h;return d|0}function $E(a,b){a=a|0;b=b|0;return VE(259,a,b)|0}function aF(a){a=a|0;return VE(265,a,0)|0}function bF(a){a=a|0;return VE(262,a,0)|0}function cF(a){a=a|0;var b=0,d=0;b=(c[47038]|0)+24|0;while(1){b=c[b>>2]|0;if(!b)break;if((c[b>>2]|0)==266?(d=c[b+4>>2]|0,d|0):0)HA(a,d,c[b+8>>2]|0)|0;b=b+12|0}return}function dF(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=d+4|0;a:do if((c[d>>2]|0)==262){d=c[f>>2]|0;f=gC(d)|0;while(1){if(!f)break a;eF(a,b,lC(c[c[47038]>>2]|0,f,0)|0,0,e);f=hC(d,f)|0}}else while(1){f=c[f>>2]|0;if(!f)break a;d=lC(c[c[47038]>>2]|0,c[f+4>>2]|0,0)|0;eF(a,b,d,c[f+8>>2]|0,e);f=f+12|0}while(0);return}function eF(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;d=fB(c[c[47038]>>2]|0,a,d,f,1)|0;if(d|0){g=c[d>>2]&3;f=c[((g|0)==2?d:d+-48|0)+40>>2]|0;a=(f|0)==(a|0)?(c[((g|0)==3?d:d+48|0)+40>>2]|0)!=(f|0):0;fF(d,111756,a?e:b);fF(d,111765,a?b:e);cF(d)}return}function fF(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(d|0){e=DA(c[c[47038]>>2]|0,2,b,0)|0;if(!e)e=DA(c[c[47038]>>2]|0,2,b,195341)|0;HA(a,e,d)|0}return}function gF(a,b,d){a=a|0;b=b|0;d=d|0;c[47005]=b;c[47037]=a;c[46985]=0;a=d|0?d:18644;c[47040]=a;jD(a,b);EE()|0;a=c[46985]|0;if(!a){ID();a=c[46985]|0}return a|0}function hF(a,b){a=a|0;b=b|0;return gF(0,a,b)|0}function iF(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;k=m+8|0;j=m;d=c[b+76>>2]|0;f=c[b>>2]|0;i=b+12|0;if((d|0)!=0?(e=c[d>>2]|0,(e|0)!=0):0){db[e&127](b);g=12}else g=4;do if((g|0)==4)if((c[b+40>>2]|0)==0?(h=b+36|0,(c[h>>2]|0)==0):0){if(a[f+13>>0]|0)jF(b);d=b+32|0;e=c[d>>2]|0;if(!e){c[h>>2]=c[15840];g=12;break}f=f4(e,106813)|0;c[h>>2]=f;if(!f){k=c[(c[i>>2]|0)+16>>2]|0;i=c[d>>2]|0;d=v2(c[(L1()|0)>>2]|0)|0;c[j>>2]=i;c[j+4>>2]=d;lb[k&63](98470,j);d=1}else g=12}else g=12;while(0);if((g|0)==12)if(!(c[b+152>>2]&1024))d=0;else{lb[c[(c[i>>2]|0)+16>>2]&63](98508,k);d=1}l=m;return d|0}function jF(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=l;l=l+112|0;e=h;g=h+4|0;d=c[b+24>>2]|0;if(!d)a[g>>0]=0;else{c[e>>2]=d+1;i2(g,98526,e)|0}e=c[b+20>>2]|0;e=e|0?e:98530;d=D3(e)|0;i=D3(g)|0;f=b+52|0;i=d+1+i+(D3(c[f>>2]|0)|0)|0;d=i+11|0;if((c[47041]|0)>>>0<(i+1|0)>>>0){c[47041]=d;d=n6(c[47042]|0,d)|0;c[47042]=d}else d=c[47042]|0;O3(d,e)|0;g6(c[47042]|0,g)|0;d=c[47042]|0;d=d+(D3(d)|0)|0;a[d>>0]=46;a[d+1>>0]=0;d=Y3(c[f>>2]|0)|0;f=c[47042]|0;while(1){e=I4(d,58)|0;if(!e)break;g6(f,e+1|0)|0;i=c[47042]|0;g=i+(D3(i)|0)|0;a[g>>0]=46;a[g+1>>0]=0;a[e>>0]=0;f=i}g6(f,d)|0;l6(d);c[b+32>>2]=c[47042];l=h;return}function kF(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;h=i+8|0;g=i;if((b|0)!=0&(d|0)!=0){f=a+12|0;if(c[a+152>>2]&1024|0){lb[c[(c[f>>2]|0)+16>>2]&63](98508,g);$a(1)}if((lF(a,b,d)|0)==(d|0))e=d;else{g=c[(c[f>>2]|0)+16>>2]|0;c[h>>2]=d;lb[g&63](98540,h);$a(1)}}else e=0;l=i;return e|0}function lF(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;n=o;f=c[(c[b>>2]|0)+104>>2]|0;do if(!f){j=b+40|0;h=c[j>>2]|0;if(!h){e=_3(d,1,e,c[b+36>>2]|0)|0;break}f=b+44|0;i=b+48|0;g=c[i>>2]|0;do if(((c[f>>2]|0)+-1-g|0)>>>0<e>>>0){g=e+4096+g&-4096;c[f>>2]=g;f=n6(h,g)|0;c[j>>2]=f;if(!f){lb[c[(c[b+12>>2]|0)+16>>2]&63](98565,n);$a(1)}else{k=f;m=c[i>>2]|0;break}}else{k=h;m=g}while(0);B6(k+m|0,d|0,e|0)|0;n=(c[i>>2]|0)+e|0;c[i>>2]=n;a[(c[j>>2]|0)+n>>0]=0}else e=eb[f&63](b,d,e)|0;while(0);l=o;return e|0}function mF(a,b){a=a|0;b=b|0;var c=0;c=D3(b)|0;b=(kF(a,b,c)|0)==(c|0);return (b?1:-1)|0}function nF(b,c){b=b|0;c=c|0;var d=0,e=0;d=l;l=l+16|0;e=d;a[e>>0]=c;b=(kF(b,e,1)|0)==1;l=d;return (b?c:-1)|0}function oF(b){b=b|0;var d=0;d=c[b+36>>2]|0;if(((d|0)!=0?(a[b+144>>0]|0)==0:0)?(c[(c[b>>2]|0)+104>>2]|0)==0:0)b=m4(d)|0;else b=0;return b|0}function pF(a){a=a|0;var b=0,d=0;b=c[a+76>>2]|0;if(b|0?(d=c[b+4>>2]|0,d|0):0)db[d&127](a);oF(a)|0;return}function qF(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;d=c[a+76>>2]|0;if(c[a+152>>2]&1024|0){lb[c[(c[a+12>>2]|0)+16>>2]&63](98592,e);$a(1)}if((d|0)!=0?(b=c[d+8>>2]|0,(b|0)!=0):0)db[b&127](a);else{oF(a)|0;rF(a)}l=e;return}function rF(b){b=b|0;var d=0,e=0,f=0;d=b+32|0;if((c[d>>2]|0?(e=b+36|0,f=c[e>>2]|0,(f|0)!=(c[15840]|0)):0)?(a[b+144>>0]|0)==0:0){if(f|0){l4(f)|0;c[e>>2]=0}c[d>>2]=0}return}function sF(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+1056|0;f=i;h=i+24|0;g=i+8|0;c[g>>2]=d;e=k2(h,1024,b,g)|0;if((e|0)>=0){if((e|0)>1023){e=IK(e+1|0)|0;c[g>>2]=d;f=e;e=j2(e,b,g)|0}else f=h;kF(a,f,e)|0;if((f|0)!=(h|0))l6(f)}else{c[f>>2]=v2(c[(L1()|0)>>2]|0)|0;dA(1,98609,f)|0}l=i;return}function tF(a,b){a=a|0;b=+b;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=uF(e,b)|0;kF(a,f,c[e>>2]|0)|0;l=d;return}function uF(b,d){b=b|0;d=+d;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;if(!(d<-1.0e15))if(!(d>1.0e15)){d=d*1.0e4;f=~~(d+(d<0.0?-.5:.5));if(!f){f=138697;e=1}else{l=(f|0)<0;k=4;i=0;e=195106;f=l?0-f|0:f;while(1){h=e+-1|0;if(!((f|0)!=0|(k|0)>0))break;g=(f|0)%10|0;j=(f|0)/10|0;if((g|0)==0&i<<24>>24==0)f=0;else{a[h>>0]=g|48;f=1;e=h}if((k|0)==1)if(!(f<<24>>24))f=1;else{e=e+-1|0;a[e>>0]=46;f=1}k=k+-1|0;i=f;f=j}if(l){a[h>>0]=45;e=h}f=e;e=195106-e|0}}else{f=98624;e=18}else{f=98623;e=19}c[b>>2]=e;return f|0}function vF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=uF(e,+h[b>>3])|0;kF(a,f,c[e>>2]|0)|0;kF(a,102905,1)|0;b=uF(e,+h[b+8>>3])|0;kF(a,b,c[e>>2]|0)|0;l=d;return}function wF(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=l;l=l+16|0;f=g;e=0;while(1){h=b+(e<<4)|0;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[f+8>>2]=c[h+8>>2];c[f+12>>2]=c[h+12>>2];vF(a,f);e=e+1|0;if((e|0)>=(d|0))break;kF(a,102905,1)|0}l=g;return}function xF(a,b){a=a|0;b=b|0;var d=0;d=HK(392)|0;if(d|0){c[d>>2]=20200;c[d+16>>2]=23;c[d+32>>2]=a;c[d+36>>2]=b}return d|0}function yF(a){a=a|0;var b=0,d=0,e=0,f=0;b=HK(392)|0;d=b;e=a;f=d+40|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(f|0));f=b+60|0;e=a+60|0;c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];c[f+16>>2]=c[e+16>>2];f=b+80|0;e=a+80|0;c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];c[f+16>>2]=c[e+16>>2];return b|0}function zF(a){a=a|0;GF(a);l6(a);return}function AF(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+160|0;d=c[e>>2]|0;if(d){e=c[47043]|0;if(e){d=c[e+4>>2]|0;if(!d){d=HK(632)|0;c[(c[47043]|0)+4>>2]=d}}}else{d=HK(632)|0;c[e>>2]=d;c[a+164>>2]=d}c[47043]=d;c[d+32>>2]=b;c[d>>2]=a;return}function BF(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+160|0;d=c[e>>2]|0;if(d){e=c[47044]|0;if(e){d=c[e+4>>2]|0;if(!d){d=HK(632)|0;c[(c[47044]|0)+4>>2]=d}}}else{d=HK(632)|0;c[e>>2]=d;c[a+164>>2]=d}c[47044]=d;c[d+52>>2]=b;c[d>>2]=a;return (JF(a,3,b)|0)!=0|0}function CF(a){a=a|0;var b=0;b=c[a+160>>2]|0;c[a+164>>2]=b;return b|0}function DF(a){a=a|0;var b=0,d=0,e=0;a=a+164|0;b=c[a>>2]|0;d=c[b+4>>2]|0;if(d|0?(e=d+52|0,(c[e>>2]|0)==0):0)c[e>>2]=c[b+52>>2];c[a>>2]=d;return d|0}function EF(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+8|0;f=b+10|0;if((c[e>>2]|0)>(b|0))a=c[a>>2]|0;else{c[e>>2]=f;f=KK(c[a>>2]|0,f<<2)|0;c[a>>2]=f;a=f}c[a+(b<<2)>>2]=d;return}function FF(a){a=a|0;var b=0;b=c[a>>2]|0;if(b|0)l6(b);c[a>>2]=0;c[a+8>>2]=0;c[a+4>>2]=0;return}function GF(a){a=a|0;var b=0,d=0,e=0;d=a+160|0;b=c[d>>2]|0;while(1){if(!b)break;e=c[b+4>>2]|0;FF(b+604|0);FF(b+592|0);l6(c[b+584>>2]|0);l6(c[b+588>>2]|0);l6(b);b=e}c[47044]=0;c[47043]=0;c[a+192>>2]=0;c[a+164>>2]=0;c[d>>2]=0;c[a+28>>2]=0;return}function HF(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0;m=l;l=l+128|0;j=m+64|0;k=m;N4(j,e,63)|0;i=F3(j,58)|0;if(i|0)a[i>>0]=0;d=b+60+(d<<2)|0;while(1){b=c[d>>2]|0;if(!b)break;N4(k,c[b+4>>2]|0,63)|0;b=F3(k,58)|0;if(b|0)a[b>>0]=0;if((f2(j,k)|0)<1)break;d=c[d>>2]|0}while(1){b=c[d>>2]|0;if(!b)break;N4(k,c[b+4>>2]|0,63)|0;b=F3(k,58)|0;if(b|0)a[b>>0]=0;if(f2(j,k)|0)break;b=c[d>>2]|0;if((c[b+8>>2]|0)>(f|0))d=b;else break}k=IK(20)|0;c[k>>2]=c[d>>2];c[d>>2]=k;c[k+4>>2]=e;c[k+8>>2]=f;c[k+12>>2]=g;c[k+16>>2]=h;l=m;return 1}function IF(a,b){a=a|0;b=b|0;b=l;l=l+16|0;dA(1,98697,b)|0;l=b;return 0}function JF(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+144|0;r=s;o=s+80|0;p=s+16|0;n=(d+-3|0)>>>0<2?0:d;N4(o,e,63)|0;e=F3(o,58)|0;if(e){f=e+1|0;a[e>>0]=0;e=F3(f,58)|0;if(!e)m=0;else{a[e>>0]=0;m=e+1|0}}else{m=0;f=0}i=(f|0)!=0;j=(m|0)==0;k=(n|0)==(d|0);h=b+60+(d<<2)|0;a:while(1){e=c[h>>2]|0;if(!e){e=0;break}N4(p,c[e+4>>2]|0,63)|0;e=F3(p,58)|0;if(!e)e=0;else{a[e>>0]=0;e=e+1|0}do if(!(f2(p,o)|0)){g=(e|0)!=0;if(i&g?f2(e,f)|0:0)break;if(!j?f2(m,c[(c[(c[h>>2]|0)+12>>2]|0)+8>>2]|0)|0:0)break;if(k|g^1){q=16;break a}if(JF(b,n,e)|0){q=16;break a}}while(0);h=c[h>>2]|0}do if((q|0)==16){e=c[h>>2]|0;f=e+16|0;g=b+8|0;if(e){if((c[f>>2]|0)==0?(IF(0,0)|0,(c[f>>2]|0)==0):0){e=0;break}if((c[g>>2]|0)>0){q=c[15715]|0;o=c[e+4>>2]|0;p=c[(c[e+12>>2]|0)+8>>2]|0;c[r>>2]=c[20212+(d<<2)>>2];c[r+4>>2]=o;c[r+8>>2]=p;z4(q,98728,r)|0}}else e=0}while(0);c[b+80+(d<<2)>>2]=e;l=s;return e|0}function KF(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;do if(!e)e=0;else{if(c[5058]|0){hA(188180,0,0);c[5058]=0}h=Y3(e)|0;e=F3(h,58)|0;if(e){a[e>>0]=0;f=b+60+(d<<2)|0;e=1;g=f;while(1){b=c[g>>2]|0;if(!b)break;d=Y3(c[b+4>>2]|0)|0;b=F3(d,58)|0;if(b|0)a[b>>0]=0;if(!((a[h>>0]|0)!=0?(C3(h,d)|0)!=0:0)){e=c[47046]|0;if(e>>>0>=(c[47047]|0)>>>0){iA(188180,1)|0;e=c[47046]|0}c[47046]=e+1;a[e>>0]=32;kA(188180,c[(c[g>>2]|0)+4>>2]|0)|0;e=c[47046]|0;if(e>>>0>=(c[47047]|0)>>>0){iA(188180,1)|0;e=c[47046]|0}c[47046]=e+1;a[e>>0]=58;kA(188180,c[(c[(c[g>>2]|0)+12>>2]|0)+8>>2]|0)|0;e=0}l6(d);g=c[g>>2]|0}l6(h);if(e<<24>>24){g=0;i=19}}else{l6(h);g=0;f=b+60+(d<<2)|0;e=1;i=19}if((i|0)==19){while(1){b=c[f>>2]|0;if(!b)break;d=Y3(c[b+4>>2]|0)|0;b=F3(d,58)|0;if(b|0)a[b>>0]=0;if(!((g|0)!=0?(C3(g,d)|0)==0:0)){e=c[47046]|0;if(e>>>0>=(c[47047]|0)>>>0){iA(188180,1)|0;e=c[47046]|0}c[47046]=e+1;a[e>>0]=32;kA(188180,d)|0;e=0}g=d;f=c[f>>2]|0;i=19}if(e<<24>>24){e=195341;break}}e=c[47046]|0;if(e>>>0>=(c[47047]|0)>>>0){iA(188180,1)|0;e=c[47046]|0}a[e>>0]=0;e=c[47045]|0;c[47046]=e}while(0);return e|0}function LF(b){b=b|0;var d=0;if(!b)Aa(111509,98745,573,98759);if(!(a[b>>0]|0))Aa(111514,98745,574,98759);d=c[47049]|0;if(!d)b=0;else b=eb[c[d>>2]&63](d,b,512)|0;return b|0}function MF(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;j=k+8|0;i=k;if(!b)Aa(111613,98745,589,98776);g=b+8|0;e=c[g>>2]|0;if(!e)Aa(111616,98745,590,98776);if(!(a[e>>0]|0))Aa(111625,98745,591,98776);h=b+20|0;f=c[h>>2]|0;do if(!f){d=kP(e)|0;if(!d){c[i>>2]=c[g>>2];dA(0,98800,i)|0;d=0;break}i=f4(d,139124)|0;c[h>>2]=i;if(!i){c[j>>2]=v2(c[(L1()|0)>>2]|0)|0;c[j+4>>2]=d;dA(0,98825,j)|0;d=0;break}d=c[47050]|0;if((d|0)>49){a[b+17>>0]=1;d=1;break}else{c[47050]=d+1;d=1;break}}else{y4(f,0,0)|0;if(!(c[h>>2]|0))Aa(98846,98745,614,98776);else d=1}while(0);l=k;return d|0}function NF(b){b=b|0;var d=0,e=0;if(a[b+17>>0]|0?(d=b+20|0,e=c[d>>2]|0,e|0):0){l4(e)|0;c[d>>2]=0}return}function OF(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0.0,i=0;if(!b){e=-1;d=-1}else{i=c[b+48>>2]|0;e=d+8|0;f=+(i|0);if(!i){g=+h[d>>3];f=+h[e>>3]}else{h[e>>3]=f;h[d>>3]=f;g=f}e=~~(+((c[b+40>>2]|0)*72|0)/g);d=~~(+((c[b+44>>2]|0)*72|0)/f)}c[a>>2]=e;c[a+4>>2]=d;return}function PF(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0.0;n=l;l=l+48|0;f=n+16|0;j=n;k=n+32|0;m=b+4|0;if((e|0)!=0?(a[e>>0]|0)!=0:0){if(((c[47179]|0)==0?(g=c[47178]|0,(c[47051]|0)!=(g|0)):0)?(c[47051]=g,i=c[47049]|0,i|0):0){Oz(i)|0;c[47049]=0}o=+h[(c[(c[d+16>>2]|0)+8>>2]|0)+24>>3];o=!(o>=1.0)?96.0:o;h[j+8>>3]=o;h[j>>3]=o;d=QF(e)|0;c[f>>2]=c[j>>2];c[f+4>>2]=c[j+4>>2];c[f+8>>2]=c[j+8>>2];c[f+12>>2]=c[j+12>>2];OF(k,d,f);d=c[k+4>>2]|0;f=c[k>>2]|0}else{d=-1;f=-1}c[b>>2]=f;c[m>>2]=d;l=n;return}function QF(a){a=a|0;var b=0,d=0,e=0,f=0;f=l;l=l+16|0;e=f;if(!a)Aa(111509,98745,638,98852);if(!(c[47049]|0))c[47049]=Sz(20236,c[4599]|0)|0;b=LF(a)|0;a:do if(!b){b=HK(64)|0;if(!b)b=0;else{d=b+8|0;c[d>>2]=dD(0,a)|0;if(!((MF(b)|0)<<24>>24)){RF(b);b=0;break}if(!(c[b+20>>2]|0))Aa(98846,98745,653,98852);do switch(SF(b)|0){case 0:{a=gN(c[d>>2]|0)|0;c[b+52>>2]=a;if(!a){c[e>>2]=c[d>>2];dA(0,98869,e)|0;RF(b);b=0;break a}break}case 2:{TF(b);break}case 3:{UF(b);break}case 1:{VF(b);break}case 4:{WF(b);break}case 6:{XF(b);break}case 11:{YF(b);break}case 8:{ZF(b);break}case 5:{_F(b);break}case 12:{$F(b);break}default:{}}while(0);NF(b);e=c[47049]|0;eb[c[e>>2]&63](e,b,1)|0}}else NF(b);while(0);l=f;return b|0}function RF(a){a=a|0;var b=0;b=c[a+8>>2]|0;if(b|0)fD(0,b)|0;l6(a);return}function SF(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+224|0;e=j+200|0;f=j;g=a+20|0;b=c[g>>2]|0;h=a+24|0;d=a+28|0;a:do if((b|0)!=0?(X5(e,1,20,b)|0)==20:0){b=0;while(1){if(b>>>0>=10){i=13;break a}if(!(g2(e,c[20272+(b<<4)>>2]|0,c[20272+(b<<4)+4>>2]|0)|0))break;b=b+1|0}c[d>>2]=c[20272+(b<<4)+12>>2];a=c[20272+(b<<4)+8>>2]|0;c[h>>2]=a;switch(b|0){case 7:break;case 8:{if(g2(e+8|0,99085,4)|0)break a;c[d>>2]=99090;c[h>>2]=11;a=11;break a}default:break a}while(1){if(!(o4(f,200,c[g>>2]|0)|0)){i=11;break}if(!(g2(f,99080,4)|0)){i=8;break}}if((i|0)==8){c[d>>2]=102104;c[h>>2]=8;a=8;break}else if((i|0)==11){a=c[h>>2]|0;break}}else i=13;while(0);if((i|0)==13){c[d>>2]=99095;c[h>>2]=0;a=0}l=j;return a|0}function TF(a){a=a|0;var b=0,d=0,e=0,f=0;f=l;l=l+16|0;b=f+4|0;d=f;c[a+48>>2]=0;e=a+20|0;y4(c[e>>2]|0,6,0)|0;if((iG(c[e>>2]|0,2,b)|0)<<24>>24?(iG(c[e>>2]|0,2,d)|0)<<24>>24:0){c[a+40>>2]=c[b>>2];c[a+44>>2]=c[d>>2]}l=f;return}function UF(a){a=a|0;var b=0,d=0,e=0,f=0;f=l;l=l+16|0;b=f+4|0;d=f;c[a+48>>2]=0;e=a+20|0;y4(c[e>>2]|0,16,0)|0;if((aG(c[e>>2]|0,4,b)|0)<<24>>24?(aG(c[e>>2]|0,4,d)|0)<<24>>24:0){c[a+40>>2]=c[b>>2];c[a+44>>2]=c[d>>2]}l=f;return}function VF(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=l;l=l+16|0;b=h+12|0;d=h+8|0;e=h+4|0;f=h;c[a+48>>2]=0;g=a+20|0;y4(c[g>>2]|0,16,0)|0;if((((iG(c[g>>2]|0,2,b)|0)<<24>>24?(iG(c[g>>2]|0,2,d)|0)<<24>>24:0)?(iG(c[g>>2]|0,2,e)|0)<<24>>24:0)?(iG(c[g>>2]|0,2,f)|0)<<24>>24:0){c[a+40>>2]=c[b>>2]<<16|c[d>>2];c[a+44>>2]=c[e>>2]<<16|c[f>>2]}l=h;return}function WF(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+32|0;b=o+16|0;e=o+12|0;j=o+8|0;k=o+4|0;m=o;c[a+48>>2]=0;n=a+20|0;while(1){if(!((aG(c[n>>2]|0,1,b)|0)<<24>>24))break;d=c[b>>2]|0;if((d|0)==255)continue;if(F3(99068,d)|0)continue;if((d|0)==192){i=6;break}f=c[n>>2]|0;if((d|0)==194){i=11;break}if(!((aG(f,2,e)|0)<<24>>24))break;y4(c[n>>2]|0,(c[e>>2]|0)+-2|0,1)|0}if((i|0)==6){d=a+40|0;b=a+44|0;if(((aG(c[n>>2]|0,3,m)|0)<<24>>24?(aG(c[n>>2]|0,2,j)|0)<<24>>24:0)?(aG(c[n>>2]|0,2,k)|0)<<24>>24:0){c[b>>2]=c[j>>2];c[d>>2]=c[k>>2]}}else if((((i|0)==11?(g=a+40|0,h=a+44|0,(aG(f,3,m)|0)<<24>>24):0)?(aG(c[n>>2]|0,2,j)|0)<<24>>24:0)?(aG(c[n>>2]|0,2,k)|0)<<24>>24:0){c[h>>2]=c[j>>2];c[g>>2]=c[k>>2]}l=o;return}function XF(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+1056|0;j=m;b=m+32|0;e=m+28|0;f=m+24|0;g=m+20|0;h=m+16|0;c[a+48>>2]=72;i=a+20|0;y4(c[i>>2]|0,0,0)|0;while(1){if(!(o4(b,1024,c[i>>2]|0)|0))break;d=C4(b,99053)|0;if(!d)continue;c[j>>2]=e;c[j+4>>2]=f;c[j+8>>2]=g;c[j+12>>2]=h;if((q4(d,104612,j)|0)==4){k=5;break}}if((k|0)==5){j=c[e>>2]|0;c[a+32>>2]=j;k=c[f>>2]|0;c[a+36>>2]=k;c[a+40>>2]=(c[g>>2]|0)-j;c[a+44>>2]=(c[h>>2]|0)-k}l=m;return}function YF(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;h=l;l=l+16|0;b=h+4|0;e=h;c[a+48>>2]=0;f=a+20|0;y4(c[f>>2]|0,15,0)|0;i=(S5(c[f>>2]|0)|0)==88;g=c[f>>2]|0;d=a+40|0;a=a+44|0;if(i){y4(g,24,0)|0;if((iG(c[f>>2]|0,4,b)|0)<<24>>24?(iG(c[f>>2]|0,4,e)|0)<<24>>24:0){c[d>>2]=c[b>>2];c[a>>2]=c[e>>2]}}else{y4(g,26,0)|0;if((iG(c[f>>2]|0,2,b)|0)<<24>>24?(iG(c[f>>2]|0,2,e)|0)<<24>>24:0){c[d>>2]=c[b>>2];c[a>>2]=c[e>>2]}}l=h;return}function ZF(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=l;l=l+352|0;C=F+80|0;B=F+72|0;E=F+64|0;D=F+56|0;A=F+48|0;d=F+40|0;s=F+32|0;t=F+24|0;u=F+16|0;v=F+8|0;w=F;x=F+328|0;y=F+128|0;z=F+96|0;if(!(c[47052]|0)){if(X4(188212,98938,1)|0){c[d>>2]=98938;dA(1,98965,d)|0}c[47052]=188212}m=b+20|0;y4(c[m>>2]|0,0,0)|0;n=z+12|0;o=z+20|0;p=z+8|0;q=z+16|0;r=z+4|0;d=0;g=0;f=0;e=0;a:while(1){if(!(o4(y,200,c[m>>2]|0)|0))break;if(g<<24>>24==0|d<<24>>24==0){i=y;k=e}else break;b:while(1){j=f;c:while(1){while(1){if(M5(188212,i,4,z,0)|0){f=j;e=k;continue a}a[i+(c[n>>2]|0)>>0]=0;a[i+(c[o>>2]|0)>>0]=0;e=i+(c[p>>2]|0)|0;f=i+(c[q>>2]|0)|0;i=i+((c[r>>2]|0)+1)|0;if(!(f2(e,141419)|0))break;if(!(f2(e,141351)|0))break c;if(f2(e,99012)|0)continue;c[C>>2]=t;c[C+4>>2]=u;c[C+8>>2]=v;c[C+12>>2]=w;if((q4(f,99020,C)|0)==4)break b}c[A>>2]=s;c[A+4>>2]=x;if((q4(f,99002,A)|0)!=2){c[D>>2]=s;if((q4(f,101510,D)|0)==1){e=1;f=hG(+h[s>>3],99009)|0}else{e=g;f=j}}else{e=1;f=hG(+h[s>>3],x)|0}if(!(d<<24>>24)){d=0;g=e;j=f}else{g=e;e=k;continue a}}c[E>>2]=s;c[E+4>>2]=x;if((q4(f,99002,E)|0)!=2){c[B>>2]=s;if((q4(f,101510,B)|0)==1){d=1;e=hG(+h[s>>3],99009)|0}else e=k}else{d=1;e=hG(+h[s>>3],x)|0}if(!(g<<24>>24)){g=0;f=j;k=e}else{f=j;continue a}}d=1;g=1;f=~~(+h[v>>3]-+h[t>>3]+1.0)>>>0;e=~~(+h[w>>3]-+h[u>>3]+1.0)>>>0}c[b+48>>2]=0;c[b+40>>2]=f;c[b+44>>2]=e;l=F;return}function _F(a){a=a|0;var b=0,d=0,e=0,f=0.0,g=0.0;d=l;l=l+32|0;b=d;c[a+48>>2]=0;e=a+20|0;y4(c[e>>2]|0,0,0)|0;if(!(bG(c[e>>2]|0,b)|0)){g=+h[b>>3];c[a+32>>2]=~~g;f=+h[b+8>>3];c[a+36>>2]=~~f;c[a+40>>2]=~~(+h[b+16>>3]-g);c[a+44>>2]=~~(+h[b+24>>3]-f)}l=d;return}function $F(a){a=a|0;var b=0,d=0,e=0,f=0;f=l;l=l+16|0;b=f+4|0;d=f;c[a+48>>2]=0;e=a+20|0;y4(c[e>>2]|0,6,0)|0;if((aG(c[e>>2]|0,1,b)|0)<<24>>24?(aG(c[e>>2]|0,1,d)|0)<<24>>24:0){c[a+40>>2]=c[b>>2];c[a+44>>2]=c[d>>2]}l=f;return}function aG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;c[d>>2]=0;e=0;while(1){if(e>>>0>=b>>>0){e=1;break}f=S5(a)|0;if(p4(a)|0){e=0;break}c[d>>2]=c[d>>2]<<8|f;e=e+1|0}return e|0}function bG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=l;l=l+1040|0;d=h;e=h+16|0;while(1){if(!(o4(e,1024,a)|0)){a=1;break}f=C4(e,98928)|0;if(f|0){g=4;break}}if((g|0)==4){c[d+4>>2]=e;c[d>>2]=f+9;c[d+8>>2]=a;a=cG(d,b)|0}l=h;return a|0}function cG(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+1024|0;f=g;dG(b);e=a[c[b>>2]>>0]|0;if(!(e<<24>>24))e=(eG(b)|0)&255;else e=e<<24>>24;if((((e|0)==91?(c[b>>2]=(c[b>>2]|0)+1,fG(b,f),(gG(f,d)|0)==0):0)?(fG(b,f),(gG(f,d+8|0)|0)==0):0)?(fG(b,f),(gG(f,d+16|0)|0)==0):0){fG(b,f);e=(gG(f,d+24|0)|0)!=0&1}else e=1;l=g;return e|0}function dG(b){b=b|0;var d=0;d=c[b>>2]|0;while(1){d=a[d>>0]|0;if(!(d<<24>>24))d=(eG(b)|0)&255;else d=d<<24>>24;if(!((d&255)<<24>>24))break;if(!(X1(d&255)|0))break;d=(c[b>>2]|0)+1|0;c[b>>2]=d}return}function eG(b){b=b|0;var d=0;d=b+4|0;if(!(o4(c[d>>2]|0,1024,c[b+8>>2]|0)|0))b=0;else{d=c[d>>2]|0;c[b>>2]=d;b=a[d>>0]|0}return b|0}function fG(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;dG(b);e=0;f=c[b>>2]|0;while(1){f=a[f>>0]|0;if(!(f<<24>>24))g=(eG(b)|0)&255;else g=f<<24>>24;f=g<<24>>24;if(!f)break;if(!((f|0)==46|(f+-48|0)>>>0<10))break;a[d+e>>0]=g;e=e+1|0;f=(c[b>>2]|0)+1|0;c[b>>2]=f;if((e|0)==1023){e=1023;break}}a[d+e>>0]=0;return}function gG(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0;e=l;l=l+16|0;f=e;d=+b6(a,f);if((c[f>>2]|0)==(a|0))a=1;else{h[b>>3]=d;a=0}l=e;return a|0}function hG(a,b){a=+a;b=b|0;var c=0.0,d=0.0;d=a*72.0;do if(!(f2(b,99036)|0)){c=d;a=d>=0.0?.5:-.5}else{if(!(f2(b,99039)|0)){a=d/96.0;c=a;a=a>=0.0?.5:-.5;break}if(!(f2(b,99042)|0)){a=d/6.0;c=a;a=a>=0.0?.5:-.5;break}if(f2(b,99009)|0?f2(b,99045)|0:0)if(!(f2(b,99047)|0)){a=a*28.346456664;c=a;a=a>=0.0?.5:-.5;break}else{b=(f2(b,99050)|0)==0;d=a*2.8346456663999997;return (b?~~(d+(d>=0.0?.5:-.5)):0)|0}c=a>=0.0?.5:-.5}while(0);return ~~(a+c)|0}function iG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;c[d>>2]=0;e=0;while(1){if(e>>>0>=b>>>0){e=1;break}f=S5(a)|0;if(p4(a)|0){e=0;break}c[d>>2]=c[d>>2]|f<<(e<<3);e=e+1|0}return e|0}function jG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a=c[b+20>>2]|0;if(a|0)l4(a)|0;if(c[b+52>>2]|0?(e=c[b+60>>2]|0,e|0):0)db[e&127](b);l6(b);return}function kG(){var a=0;DA(0,1,108525,105794)|0;a=xF(0,1)|0;_S(a,0);return a|0}function lG(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0;m=l;l=l+304|0;k=m+24|0;j=m+8|0;f=m;i=m+40|0;if((tS(b,e)|0)!=999)if((uS(b,d)|0)==-1)b=-1;else{n=c[d+16>>2]|0;p=+h[n+32>>3];q=+h[n+16>>3];r=+h[n+24>>3];o=+h[n+40>>3];b=~~(r+(r>=0.0?.5:-.5));e=~~(q+(q>=0.0?.5:-.5));f=~~(p+(p>=0.0?.5:-.5));g=~~(o+(o>=0.0?.5:-.5));if(!(a[(c[n+8>>2]|0)+81>>0]|0)){c[k>>2]=e;c[k+4>>2]=b;c[k+8>>2]=f;c[k+12>>2]=g;i2(i,99200,k)|0}else{c[j>>2]=b;c[j+4>>2]=e;c[j+8>>2]=g;c[j+12>>2]=f;i2(i,99200,j)|0}QA(d,102972,i,195341)|0;b=0}else{b=KF(b,1,e)|0;c[f>>2]=e;c[f+4>>2]=b;dA(1,111534,f)|0;b=-1}l=m;return b|0}function mG(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l+16|0;g=i;f=c[b+60>>2]|0;BF(a,d)|0;d=c[a+164>>2]|0;c[d+56>>2]=HR(d,c[d+52>>2]|0)|0;b=d+152|0;if((RC(f,137786,0,1)|0)!=0?(c[(c[f+16>>2]|0)+8>>2]|0)!=0:0)h=5;else if(!(c[b>>2]&67108864)){gA(99212,g);b=-1}else h=5;if((h|0)==5){c[d+36>>2]=e;if(!e)c[b>>2]=c[b>>2]|134217728;b=QJ(a,f)|0;JR(d);GF(a)}l=i;return b|0}function nG(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l+16|0;g=i;f=c[b+60>>2]|0;BF(a,d)|0;b=c[a+164>>2]|0;c[b+56>>2]=HR(b,c[b+52>>2]|0)|0;if((RC(f,137786,0,1)|0)!=0?(c[(c[f+16>>2]|0)+8>>2]|0)!=0:0)h=5;else if(!(c[b+152>>2]&67108864)){gA(99212,g);b=-1}else h=5;if((h|0)==5){AF(a,e);h=QJ(a,f)|0;JR(b);qF(b);GF(a);b=h}l=i;return b|0}function oG(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;h=m+8|0;g=m;b=c[b+60>>2]|0;BF(a,d)|0;j=c[a+164>>2]|0;c[j+56>>2]=HR(j,c[j+52>>2]|0)|0;if((RC(b,137786,0,1)|0)!=0?(c[(c[b+16>>2]|0)+8>>2]|0)!=0:0)k=5;else if(!(c[j+152>>2]&67108864)){gA(99212,g);b=-1}else k=5;do if((k|0)==5){if(e|0?(i=k6(4096)|0,c[e>>2]=i,i|0):0){g=j+40|0;c[g>>2]=i;c[j+44>>2]=4096;d=j+48|0;c[d>>2]=0;b=QJ(a,b)|0;JR(j);if(!b){c[e>>2]=c[g>>2];c[f>>2]=c[d>>2]}GF(a);break}dA(1,99233,h)|0;b=-1}while(0);l=m;return b|0}function pG(a,b){a=a|0;b=b|0;YS(a,0,b);return}function qG(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0;G=l;l=l+4288|0;C=G+8|0;B=G;E=4;F=k6(40)|0;c[F>>2]=0;y=G+4152|0;z=G+4148|0;A=G+4128|0;j=G+4112|0;k=G+16|0;o=0;i=la(24,b|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){h=A6(c[g>>2]|0,F|0,E|0)|0;if(!h)Ca(g|0,p|0);D=p}else h=-1;a:do if((h|0)!=1){if(!i){c[d>>2]=0;g=0;break}o=0;n=aa(32,e|0,z|0,y|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){h=A6(c[g>>2]|0,F|0,E|0)|0;if(!h)Ca(g|0,p|0);D=p}else h=-1;if((h|0)!=1){o=0;m=la(23,40)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){h=A6(c[g>>2]|0,F|0,E|0)|0;if(!h)Ca(g|0,p|0);D=p}else h=-1;if((h|0)!=1){o=0;ba(16,A|0,j|0,k|0,24,85);g=o;o=0;if((g|0)!=0&(p|0)!=0){h=A6(c[g>>2]|0,F|0,E|0)|0;if(!h)Ca(g|0,p|0);D=p}else h=-1;if((h|0)!=1){o=0;e=la(25,b|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){h=A6(c[g>>2]|0,F|0,E|0)|0;if(!h)Ca(g|0,p|0);D=p}else h=-1;if((h|0)!=1){j=A+16|0;i=c[j>>2]|0;g=e;while(1){if(!g)break;o=0;ra(i|0,g|0,0)|0;h=o;o=0;if((h|0)!=0&(p|0)!=0){e=A6(c[h>>2]|0,F|0,E|0)|0;if(!e)Ca(h|0,p|0);D=p}else e=-1;if((e|0)==1){x=0;w=j;v=m;u=n;g=D;m=15;break a}o=0;g=ra(86,b|0,g|0)|0;h=o;o=0;if((h|0)!=0&(p|0)!=0){e=A6(c[h>>2]|0,F|0,E|0)|0;if(!e)Ca(h|0,p|0);D=p}else e=-1;if((e|0)==1){x=0;w=j;v=m;u=n;g=D;m=15;break a}}F=x6(188244,1,F|0,E|0)|0;E=D;o=0;g=o;o=0;if((g|0)!=0&(p|0)!=0){h=A6(c[g>>2]|0,F|0,E|0)|0;if(!h)Ca(g|0,p|0);D=p}else h=-1;if((h|0)==1){x=m;w=j;v=m;u=n;g=D;m=15}else{x=m;w=j;v=m;u=n;g=0;m=15}}else{x=0;w=0;v=m;u=n;g=D;m=15}}else{x=0;w=0;v=m;u=n;g=D;m=15}}else{x=0;w=0;v=m;u=n;g=D;m=15}}else{x=0;w=0;v=0;u=n;g=D;m=15}}else{x=0;w=0;v=0;u=0;g=D;m=15}while(0);do if((m|0)==15){b:while(1){c:do if(!g){o=0;e=la(25,b|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){h=A6(c[g>>2]|0,F|0,E|0)|0;if(!h)Ca(g|0,p|0);D=p}else h=-1;if((h|0)==1){r=u;s=v;t=w;m=x;g=D;u=r;v=s;w=t;x=m;m=15;continue b}t=u+(c[z>>2]|0)|0;k=0;m=0;j=0;while(1){if(!e)break;o=0;g=ra(c[w>>2]|0,e|0,-1)|0;h=o;o=0;if((h|0)!=0&(p|0)!=0){i=A6(c[h>>2]|0,F|0,E|0)|0;if(!i)Ca(h|0,p|0);D=p}else i=-1;if((i|0)==1){r=u;s=v;t=w;m=x;g=D;u=r;v=s;w=t;x=m;m=15;continue b}if((g|0)==0?(a[(c[e+16>>2]|0)+119>>0]|0)==3:0){if(!m){o=0;c[B>>2]=j;aa(33,t|0,137696,B|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){h=A6(c[g>>2]|0,F|0,E|0)|0;if(!h)Ca(g|0,p|0);D=p}else h=-1;if((h|0)==1){r=u;s=v;t=w;m=x;g=D;u=r;v=s;w=t;x=m;m=15;continue b}o=0;i=aa(34,b|0,u|0,1)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){h=A6(c[g>>2]|0,F|0,E|0)|0;if(!h)Ca(g|0,p|0);D=p}else h=-1;if((h|0)==1){r=u;s=v;t=w;m=x;g=D;u=r;v=s;w=t;x=m;m=15;continue b}o=0;pa(53,i|0,137786,280,1)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){h=A6(c[g>>2]|0,F|0,E|0)|0;if(!h)Ca(g|0,p|0);D=p}else h=-1;if((h|0)==1){r=u;s=v;t=w;m=x;g=D;u=r;v=s;w=t;x=m;m=15;continue b}c[x+(j<<2)>>2]=i;k=1;j=j+1|0}else i=m;o=0;pa(54,b|0,e|0,i|0,A|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){h=A6(c[g>>2]|0,F|0,E|0)|0;if(!h)Ca(g|0,p|0);D=p}else h=-1;if((h|0)==1){r=u;s=v;t=w;m=x;g=D;u=r;v=s;w=t;x=m;m=15;continue b}}else i=m;o=0;e=ra(86,b|0,e|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){h=A6(c[g>>2]|0,F|0,E|0)|0;if(!h)Ca(g|0,p|0);D=p}else h=-1;if((h|0)==1){r=u;s=v;t=w;m=x;g=D;u=r;v=s;w=t;x=m;m=15;continue b}m=i}o=0;e=la(25,b|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){h=A6(c[g>>2]|0,F|0,E|0)|0;if(!h)Ca(g|0,p|0);D=p}else h=-1;if((h|0)==1){r=u;s=v;t=w;m=x;g=D;u=r;v=s;w=t;x=m;m=15;continue b}i=10;q=x;n=v;s=v;while(1){if(!e){e=0;m=q;i=s;break c}o=0;g=ra(c[w>>2]|0,e|0,-1)|0;h=o;o=0;if((h|0)!=0&(p|0)!=0){m=A6(c[h>>2]|0,F|0,E|0)|0;if(!m)Ca(h|0,p|0);D=p}else m=-1;if((m|0)==1){r=u;s=v;t=w;m=x;g=D;u=r;v=s;w=t;x=m;m=15;continue b}if(!g){o=0;c[C>>2]=j;aa(33,t|0,137696,C|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){h=A6(c[g>>2]|0,F|0,E|0)|0;if(!h)Ca(g|0,p|0);D=p}else h=-1;if((h|0)==1){r=u;s=v;t=w;m=x;g=D;u=r;v=s;w=t;x=m;m=15;continue b}o=0;r=aa(34,b|0,u|0,1)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){h=A6(c[g>>2]|0,F|0,E|0)|0;if(!h)Ca(g|0,p|0);D=p}else h=-1;if((h|0)==1){r=u;s=v;t=w;m=x;g=D;u=r;v=s;w=t;x=m;m=15;continue b}o=0;pa(53,r|0,137786,280,1)|0;h=o;o=0;if((h|0)!=0&(p|0)!=0){g=A6(c[h>>2]|0,F|0,E|0)|0;if(!g)Ca(h|0,p|0);D=p}else g=-1;if((g|0)==1){r=u;s=v;t=w;m=x;g=D;u=r;v=s;w=t;x=m;m=15;continue b}o=0;pa(54,b|0,e|0,r|0,A|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){h=A6(c[g>>2]|0,F|0,E|0)|0;if(!h)Ca(g|0,p|0);D=p}else h=-1;if((h|0)==1){r=u;s=v;t=w;m=x;g=D;u=r;v=s;w=t;x=m;m=15;continue b}if((j|0)==(i|0)){i=j<<1;o=0;m=ra(87,n|0,j<<3|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){h=A6(c[g>>2]|0,F|0,E|0)|0;if(!h)Ca(g|0,p|0);D=p}else h=-1;if((h|0)==1){r=u;s=v;t=w;m=x;g=D;u=r;v=s;w=t;x=m;m=15;continue b}g=m;n=m;h=m}else{g=q;h=s}c[g+(j<<2)>>2]=r;q=g;j=j+1|0;m=h}else m=s;o=0;e=ra(86,b|0,e|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){h=A6(c[g>>2]|0,F|0,E|0)|0;if(!h)Ca(g|0,p|0);D=p}else h=-1;if((h|0)==1){r=u;s=v;t=w;m=x;g=D;u=r;v=s;w=t;x=m;m=15;continue b}s=m}}else{e=1;k=0;m=x;j=0;i=v}while(0);o=0;$(108,A|0);g=o;o=0;if((g|0)!=0&(p|0)!=0){h=A6(c[g>>2]|0,F|0,E|0)|0;if(!h)Ca(g|0,p|0);D=p}else h=-1;if((h|0)==1){r=u;s=v;t=w;m=x;g=D;u=r;v=s;w=t;x=m;m=15;continue}if((u|0)!=(y|0)){o=0;$(105,u|0);g=o;o=0;if((g|0)!=0&(p|0)!=0){h=A6(c[g>>2]|0,F|0,E|0)|0;if(!h)Ca(g|0,p|0);D=p}else h=-1;if((h|0)==1){r=u;s=v;t=w;m=x;g=D;u=r;v=s;w=t;x=m;m=15;continue}}if(!e){o=0;g=ra(87,i|0,j<<2|0)|0;h=o;o=0;if((h|0)!=0&(p|0)!=0){e=A6(c[h>>2]|0,F|0,E|0)|0;if(!e)Ca(h|0,p|0);D=p}else e=-1;if((e|0)==1){r=u;s=v;t=w;m=x;g=D;u=r;v=s;w=t;x=m;m=15;continue}else{m=58;break}}c[d>>2]=0;g=0;while(1){if((g|0)>=(j|0))break;o=0;la(26,c[m+(g<<2)>>2]|0)|0;h=o;o=0;if((h|0)!=0&(p|0)!=0){e=A6(c[h>>2]|0,F|0,E|0)|0;if(!e)Ca(h|0,p|0);D=p}else e=-1;if((e|0)==1){r=u;s=v;t=w;m=x;g=D;u=r;v=s;w=t;x=m;m=15;continue b}g=g+1|0}o=0;$(105,i|0);g=o;o=0;if((g|0)!=0&(p|0)!=0){h=A6(c[g>>2]|0,F|0,E|0)|0;if(!h)Ca(g|0,p|0);D=p}else h=-1;if((h|0)==1){r=u;s=v;t=w;m=x;g=D;u=r;v=s;w=t;x=m;m=15}else{m=56;break}}if((m|0)==56){g=0;break}else if((m|0)==58){c[d>>2]=j;a[f>>0]=k;break}}while(0);l6(F|0);l=G;return g|0}function rG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;if(!((a|0)!=0?(AG(a)|0)!=0:0))a=99289;f=D3(a)|0;e=f+25|0;if((e|0)>=129){d=IK(e)|0;if(!d)d=0;else g=6}else g=6;if((g|0)==6){O3(d,a)|0;c[b>>2]=f}return d|0}function sG(a,b){a=a|0;b=b|0;lC(b,a,1)|0;return}function tG(b,d){b=b|0;d=d|0;var e=0;b=(c[b+16>>2]|0)+157|0;e=a[b>>0]|0;if((d|0)>=0)a[b>>0]=d;return e|0}function uG(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;c[b>>2]=d;c[b+4>>2]=d+4096;c[b+12>>2]=0;c[b+8>>2]=0;c[a>>2]=b;c[a+4>>2]=b;c[a+8>>2]=d;c[a+12>>2]=e;c[a+16>>2]=f;return}function vG(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;yG(e,b);i=e+12|0;j=e+16|0;b=0;a:while(1){k=zG(e)|0;if(!k)break;b=b+1|0;f=c[i>>2]|0;if(f|0)lb[f&63](k,d);h=ZA(a,k)|0;while(1){if(!h)continue a;g=c[h>>2]&3;f=c[((g|0)==3?h:h+48|0)+40>>2]|0;if((f|0)==(k|0))f=c[((g|0)==2?h:h+-48|0)+40>>2]|0;if(!(vb[c[j>>2]&127](f,-1)|0))yG(e,f);h=_A(a,h,k)|0}}return b|0}function wG(a){a=a|0;var b=0;a=c[(c[a>>2]|0)+12>>2]|0;while(1){if(!a)break;b=c[a+12>>2]|0;xG(a);a=b}return}function xG(a){a=a|0;l6(c[a>>2]|0);l6(a);return}function yG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;j=k+8|0;f=k;g=a+8|0;i=a+4|0;d=c[i>>2]|0;if((c[g>>2]|0)==(c[d+4>>2]|0)){d=c[d+12>>2]|0;do if(!d){e=IK(16)|0;if(!e){dA(1,99270,f)|0;Ca(188244,1)}c[e+8>>2]=c[i>>2];c[e+12>>2]=0;d=IK(4e6)|0;c[e>>2]=d;if(!d){dA(1,99270,j)|0;Ca(188244,1)}else{c[e+4>>2]=d+4e6;c[(c[i>>2]|0)+12>>2]=e;h=e;break}}else h=d;while(0);c[i>>2]=h;c[g>>2]=c[h>>2]}vb[c[a+16>>2]&127](b,1)|0;j=c[g>>2]|0;c[g>>2]=j+4;c[j>>2]=b;l=k;return}function zG(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=a+8|0;b=c[f>>2]|0;d=a+4|0;e=c[d>>2]|0;if((b|0)==(c[e>>2]|0))if((e|0)==(c[a>>2]|0))b=0;else{b=c[e+8>>2]|0;c[d>>2]=b;b=c[b+4>>2]|0;c[f>>2]=b;g=4}else g=4;if((g|0)==4){b=b+-4|0;c[f>>2]=b;b=c[b>>2]|0}return b|0}function AG(b){b=b|0;var c=0;a:while(1){c=b;b=b+1|0;c=a[c>>0]|0;switch(c<<24>>24){case 95:continue a;case 0:{b=1;break a}default:{}}if(!(O2(c&255)|0)){b=0;break}}return b|0}function BG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=l;l=l+4272|0;w=z;x=4;y=k6(40)|0;c[y>>2]=0;t=z+4144|0;u=z+4140|0;v=z+4120|0;h=z+4104|0;i=z+8|0;o=0;f=la(24,a|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){e=A6(c[g>>2]|0,y|0,x|0)|0;if(!e)Ca(g|0,p|0);D=p}else e=-1;a:do if((e|0)!=1)if(f){o=0;k=aa(32,d|0,u|0,t|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){d=A6(c[e>>2]|0,y|0,x|0)|0;if(!d)Ca(e|0,p|0);D=p}else d=-1;if((d|0)!=1){o=0;j=la(23,40)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){d=A6(c[e>>2]|0,y|0,x|0)|0;if(!d)Ca(e|0,p|0);D=p}else d=-1;if((d|0)!=1){o=0;ba(16,v|0,h|0,i|0,24,85);e=o;o=0;if((e|0)!=0&(p|0)!=0){d=A6(c[e>>2]|0,y|0,x|0)|0;if(!d)Ca(e|0,p|0);D=p}else d=-1;if((d|0)!=1){o=0;f=la(25,a|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){d=A6(c[e>>2]|0,y|0,x|0)|0;if(!d)Ca(e|0,p|0);D=p}else d=-1;if((d|0)!=1){h=v+16|0;g=c[h>>2]|0;e=f;while(1){if(!e)break;o=0;ra(g|0,e|0,0)|0;d=o;o=0;if((d|0)!=0&(p|0)!=0){f=A6(c[d>>2]|0,y|0,x|0)|0;if(!f)Ca(d|0,p|0);D=p}else f=-1;if((f|0)==1){s=h;r=j;q=k;e=D;j=14;break a}o=0;e=ra(86,a|0,e|0)|0;d=o;o=0;if((d|0)!=0&(p|0)!=0){f=A6(c[d>>2]|0,y|0,x|0)|0;if(!f)Ca(d|0,p|0);D=p}else f=-1;if((f|0)==1){s=h;r=j;q=k;e=D;j=14;break a}}y=x6(188244,1,y|0,x|0)|0;x=D;o=0;e=o;o=0;if((e|0)!=0&(p|0)!=0){d=A6(c[e>>2]|0,y|0,x|0)|0;if(!d)Ca(e|0,p|0);D=p}else d=-1;if((d|0)==1){s=h;r=j;q=k;e=D;j=14}else{s=h;r=j;q=k;e=0;j=14}}else{s=0;r=j;q=k;e=D;j=14}}else{s=0;r=j;q=k;e=D;j=14}}else{s=0;r=j;q=k;e=D;j=14}}else{s=0;r=0;q=k;e=D;j=14}}else{d=0;e=0}else{s=0;r=0;q=0;e=D;j=14}while(0);b:do if((j|0)==14){c:while(1){if(e|0){o=0;$(108,v|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){d=A6(c[e>>2]|0,y|0,x|0)|0;if(!d)Ca(e|0,p|0);D=p}else d=-1;if((d|0)==1){m=q;n=r;j=s;e=D;q=m;r=n;s=j;j=14;continue}o=0;$(105,r|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){d=A6(c[e>>2]|0,y|0,x|0)|0;if(!d)Ca(e|0,p|0);D=p}else d=-1;if((d|0)==1){m=q;n=r;j=s;e=D;q=m;r=n;s=j;j=14;continue}if((q|0)==(t|0)){d=0;e=0;break b}o=0;$(105,q|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){d=A6(c[e>>2]|0,y|0,x|0)|0;if(!d)Ca(e|0,p|0);D=p}else d=-1;if((d|0)==1){m=q;n=r;j=s;e=D;q=m;r=n;s=j;j=14;continue}else{j=19;break}}o=0;f=la(25,a|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){d=A6(c[e>>2]|0,y|0,x|0)|0;if(!d)Ca(e|0,p|0);D=p}else d=-1;if((d|0)==1){m=q;n=r;j=s;e=D;q=m;r=n;s=j;j=14;continue}n=q+(c[u>>2]|0)|0;m=10;i=r;e=0;j=r;while(1){if(!f)break;o=0;d=ra(c[s>>2]|0,f|0,-1)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){h=A6(c[g>>2]|0,y|0,x|0)|0;if(!h)Ca(g|0,p|0);D=p}else h=-1;if((h|0)==1){m=q;n=r;j=s;e=D;q=m;r=n;s=j;j=14;continue c}if(!d){o=0;c[w>>2]=e;aa(33,n|0,137696,w|0)|0;d=o;o=0;if((d|0)!=0&(p|0)!=0){g=A6(c[d>>2]|0,y|0,x|0)|0;if(!g)Ca(d|0,p|0);D=p}else g=-1;if((g|0)==1){m=q;n=r;j=s;e=D;q=m;r=n;s=j;j=14;continue c}o=0;k=aa(34,a|0,q|0,1)|0;d=o;o=0;if((d|0)!=0&(p|0)!=0){g=A6(c[d>>2]|0,y|0,x|0)|0;if(!g)Ca(d|0,p|0);D=p}else g=-1;if((g|0)==1){m=q;n=r;j=s;e=D;q=m;r=n;s=j;j=14;continue c}o=0;pa(53,k|0,137786,280,1)|0;d=o;o=0;if((d|0)!=0&(p|0)!=0){g=A6(c[d>>2]|0,y|0,x|0)|0;if(!g)Ca(d|0,p|0);D=p}else g=-1;if((g|0)==1){m=q;n=r;j=s;e=D;q=m;r=n;s=j;j=14;continue c}o=0;pa(54,a|0,f|0,k|0,v|0)|0;d=o;o=0;if((d|0)!=0&(p|0)!=0){g=A6(c[d>>2]|0,y|0,x|0)|0;if(!g)Ca(d|0,p|0);D=p}else g=-1;if((g|0)==1){m=q;n=r;j=s;e=D;q=m;r=n;s=j;j=14;continue c}if((e|0)==(m|0)){h=e<<1;o=0;i=ra(87,j|0,e<<3|0)|0;d=o;o=0;if((d|0)!=0&(p|0)!=0){g=A6(c[d>>2]|0,y|0,x|0)|0;if(!g)Ca(d|0,p|0);D=p}else g=-1;if((g|0)==1){m=q;n=r;j=s;e=D;q=m;r=n;s=j;j=14;continue c}g=i;d=i}else{h=m;g=i;d=j}c[g+(e<<2)>>2]=k;e=e+1|0;i=g;j=d}else h=m;o=0;f=ra(86,a|0,f|0)|0;d=o;o=0;if((d|0)!=0&(p|0)!=0){g=A6(c[d>>2]|0,y|0,x|0)|0;if(!g)Ca(d|0,p|0);D=p}else g=-1;if((g|0)==1){m=q;n=r;j=s;e=D;q=m;r=n;s=j;j=14;continue c}m=h}o=0;$(108,v|0);d=o;o=0;if((d|0)!=0&(p|0)!=0){f=A6(c[d>>2]|0,y|0,x|0)|0;if(!f)Ca(d|0,p|0);D=p}else f=-1;if((f|0)==1){m=q;n=r;j=s;e=D;q=m;r=n;s=j;j=14;continue}o=0;d=ra(87,j|0,e<<2|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=A6(c[f>>2]|0,y|0,x|0)|0;if(!g)Ca(f|0,p|0);D=p}else g=-1;if((g|0)==1){m=q;n=r;j=s;e=D;q=m;r=n;s=j;j=14;continue}if((q|0)==(t|0))break b;o=0;$(105,q|0);f=o;o=0;if((f|0)!=0&(p|0)!=0){g=A6(c[f>>2]|0,y|0,x|0)|0;if(!g)Ca(f|0,p|0);D=p}else g=-1;if((g|0)==1){m=q;n=r;j=s;e=D;q=m;r=n;s=j;j=14}else{j=39;break}}if((j|0)==19){d=0;e=0;break}else if((j|0)==39)break}while(0);c[b>>2]=e;l6(y|0);l=z;return d|0}function CG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=0;f=gC(a)|0;while(1){if(!f)break;e=UA(b,f)|0;while(1){if(!e)break;if(lC(a,c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,0)|0){jB(a,e,1)|0;d=d+1|0}e=WA(b,e)|0}f=hC(a,f)|0}return d|0}function DG(a){a=a|0;a=PC(a,99294,0)|0;if(!a)Aa(99299,99302,529,99311);else return c[a+8>>2]|0;return 0}function EG(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;u=l;l=l+4320|0;s=u+24|0;r=u+8|0;q=u;t=u+4184|0;p=u+4160|0;f=u+40|0;if(qB(b)|0){WC(b,0,99320,-12,0);WC(b,1,99332,16,0);o=rG(e,f,t)|0;k=FG(b)|0;m=IK((qB(k)|0)<<2)|0;uG(p,u+4144|0,u+48|0,24,88);h=gC(k)|0;n=p+16|0;i=o+(c[f>>2]|0)|0;j=c[15715]|0;e=0;while(1){if(!h)break;if(!(vb[c[n>>2]&127](h,-1)|0)){c[q>>2]=e;i2(i,100234,q)|0;v=LD(k,o,1)|0;w=LD(b,o,1)|0;RC(w,99320,12,0)|0;a[(PC(w,99320,0)|0)+8>>0]=1;f=vG(k,h,v,p)|0;HG(v,w);g=IG(w)|0;JG(b,w);c[m+(e<<2)>>2]=w;tC(k,v)|0;if(a[195234]|0){c[r>>2]=e;c[r+4>>2]=f;c[r+8>>2]=g;z4(j,99344,r)|0}e=e+1|0}h=hC(k,h)|0}if(a[195234]|0){r=qB(b)|0;v=rB(b)|0;w=HB(b)|0;c[s>>2]=r;c[s+4>>2]=v;c[s+8>>2]=e;c[s+12>>2]=w;z4(j,99374,s)|0}pB(k)|0;XC(b,0,99320);XC(b,1,99332);wG(p);f=KK(m,e<<2)|0;if((o|0)!=(t|0))l6(o)}else{f=0;e=0}c[d>>2]=e;l=u;return f|0}function FG(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=l;l=l+16|0;g=h;c[g>>2]=c[4660];g=lB(99421,g,0)|0;MG(g,a);b=gC(a)|0;while(1){if(!b)break;if(!(c[(PC(b,99332,0)|0)+12>>2]|0)){f=qC(g,HB(b)|0,1)|0;RC(f,99332,16,1)|0;c[(c[f+16>>2]|0)+12>>2]=b;c[(PC(b,99332,0)|0)+12>>2]=f}b=hC(a,b)|0}d=gC(a)|0;while(1){if(!d)break;e=c[(PC(d,99332,0)|0)+12>>2]|0;b=UA(a,d)|0;while(1){if(!b)break;f=c[(PC(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0,99332,0)|0)+12>>2]|0;do if((f|0)!=(e|0))if(f>>>0>e>>>0){fB(g,e,f,0,1)|0;break}else{fB(g,f,e,0,1)|0;break}while(0);b=WA(a,b)|0}d=hC(a,d)|0}l=h;return g|0}function GG(b,d){b=b|0;d=d|0;var e=0;b=(c[b+16>>2]|0)+8|0;e=a[b>>0]|0;if((d|0)>=0)a[b>>0]=d;return e|0}function HG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=gC(a)|0;while(1){if(!e)break;f=c[(c[e+16>>2]|0)+12>>2]|0;a:do if((c[f>>2]&3|0)==1)lC(b,f,1)|0;else{d=gC(f)|0;while(1){if(!d)break a;lC(b,d,1)|0;d=hC(f,d)|0}}while(0);e=hC(a,e)|0}return}function IG(a){a=a|0;return CG(a,c[a+60>>2]|0)|0}function JG(a,b){a=a|0;b=b|0;KG(a,b,0);return}function KG(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;g=(d|0)==0;b=MD(b)|0;while(1){if(!b)break;if((a[(PC(b,99320,0)|0)+8>>0]|0)==0?(f=LG(b,c,d)|0,f|0):0){if(g)e=(h2(HB(b)|0,108307,7)|0)==0;else e=1;KG(b,f,e&1)}b=ND(b)|0}return}function LG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=0;h=gC(a)|0;while(1){f=(e|0)==0;if(!h)break;g=qC(b,HB(h)|0,0)|0;if(g){if(f)e=LD(b,HB(a)|0,1)|0;lC(e,g,1)|0}h=hC(a,h)|0}if((d|0)!=0&f)e=LD(b,HB(a)|0,1)|0;if(e|0?(CG(e,a)|0,RA(a,e)|0,(h2(HB(e)|0,108307,7)|0)==0):0)c[(RC(e,99294,12,0)|0)+8>>2]=a;return e|0}function MG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=l;l=l+16|0;g=h;d=MD(b)|0;e=c[15715]|0;while(1){if(!d)break;a:do if(!(h2(HB(d)|0,108307,7)|0)){f=qC(a,HB(d)|0,1)|0;RC(f,99332,16,1)|0;c[(c[f+16>>2]|0)+12>>2]=d;b=gC(d)|0;while(1){if(!b)break a;if(c[(PC(b,99332,0)|0)+12>>2]|0){k=HB(b)|0;j=HB(d)|0;i=HB(c[(PC(b,99332,0)|0)+12>>2]|0)|0;c[g>>2]=k;c[g+4>>2]=j;c[g+8>>2]=i;z4(e,99424,g)|0}c[(PC(b,99332,0)|0)+12>>2]=f;b=hC(d,b)|0}}else MG(a,d);while(0);d=ND(d)|0}l=h;return}function NG(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0.0;n=+h[a>>3];j=~~(n+(n>=0.0?.5:-.5));n=+h[a+8>>3];a=~~(n+(n>=0.0?.5:-.5));n=+h[b>>3];g=~~(n+(n>=0.0?.5:-.5));n=+h[b+8>>3];f=~~(n+(n>=0.0?.5:-.5));l=g-j|0;i=((l|0)>-1?l:0-l|0)<<1;l=l>>31|1;m=f-a|0;k=((m|0)>-1?m:0-m|0)<<1;m=m>>31|1;a:do if((i|0)>(k|0)){e=0-i|0;d=k-(i>>1)|0;b=j;while(1){OL(c,b,a);if((b|0)==(g|0))break a;j=(d|0)>-1;d=d+k+(j?e:0)|0;b=b+l|0;a=(j?m:0)+a|0}}else{e=0-k|0;d=j;b=i-(k>>1)|0;while(1){OL(c,d,a);if((a|0)==(f|0))break a;k=(b|0)>-1;d=(k?l:0)+d|0;b=b+i+(k?e:0)|0;a=a+m|0}}while(0);return}function OG(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+16|0;k=n;j=n+4|0;do if((a|0)<1)d=0;else{f=e+16|0;if((c[f>>2]|0)>>>0<4){d=PG(a,b,d,e)|0;break}m=IK(a<<5)|0;d=0;while(1){if((d|0)==(a|0))break;g=c[b+(d<<2)>>2]|0;zP(g);h=m+(d<<5)|0;g=(c[g+16>>2]|0)+16|0;c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];c[h+16>>2]=c[g+16>>2];c[h+20>>2]=c[g+20>>2];c[h+24>>2]=c[g+24>>2];c[h+28>>2]=c[g+28>>2];d=d+1|0}if((c[f>>2]|0)==4){h=e+28|0;a:do if(c[h>>2]&2|0){f=e+24|0;c[f>>2]=HK(a<<2)|0;d=0;while(1){if((d|0)==(a|0))break a;g=NA(c[b+(d<<2)>>2]|0,99491)|0;if(g|0?(c[k>>2]=j,g=(q4(g,137696,k)|0)>0,i=c[j>>2]|0,g&(i|0)>-1):0)c[(c[f>>2]|0)+(d<<2)>>2]=i;d=d+1|0}}while(0);d=QG(a,m,e)|0;if(c[h>>2]&2)l6(c[e+24>>2]|0)}else d=0;l6(m)}while(0);l=n;return d|0}function PG(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0.0,K=0.0,L=0.0;H=l;l=l+144|0;C=H+136|0;B=H+64|0;G=H+48|0;w=H+40|0;v=H;u=H+120|0;A=H+104|0;D=H+96|0;E=c[g+20>>2]|0;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[A+12>>2]=0;a:do if((b|0)>=1){x=A+12|0;y=A+8|0;z=A+4|0;p=(E|0)==0;F=c[15715]|0;q=u+4|0;r=u+8|0;s=u+12|0;o=0;i=0;while(1){if((o|0)==(b|0))break;t=c[e+(o<<2)>>2]|0;zP(t);if(!p?(a[E+o>>0]|0)!=0:0){n=c[t+16>>2]|0;I=+h[n+16>>3];j=~~(I+(I>=0.0?.5:-.5));c[u>>2]=j;I=+h[n+24>>3];k=~~(I+(I>=0.0?.5:-.5));c[q>>2]=k;I=+h[n+32>>3];m=~~(I+(I>=0.0?.5:-.5));c[r>>2]=m;I=+h[n+40>>3];n=~~(I+(I>=0.0?.5:-.5));c[s>>2]=n;if(!i){c[A>>2]=c[u>>2];c[A+4>>2]=c[u+4>>2];c[A+8>>2]=c[u+8>>2];c[A+12>>2]=c[u+12>>2]}else{c[A>>2]=c[((j|0)<(c[A>>2]|0)?u:A)>>2];c[z>>2]=c[((k|0)<(c[z>>2]|0)?u:A)+4>>2];c[y>>2]=c[((m|0)>(c[y>>2]|0)?u:A)+8>>2];c[x>>2]=c[((n|0)>(c[x>>2]|0)?u:A)+12>>2]}i=i+1|0}if((d[195234]|0)>2){n=HB(t)|0;t=c[t+16>>2]|0;L=+h[t+16>>3];K=+h[t+24>>3];J=+h[t+32>>3];I=+h[t+40>>3];c[v>>2]=n;h[v+8>>3]=L;h[v+16>>3]=K;h[v+24>>3]=J;h[v+32>>3]=I;z4(F,99558,v)|0}o=o+1|0}r=IK(b<<5)|0;i=0;while(1){if((i|0)==(b|0))break;v=r+(i<<5)|0;u=(c[(c[e+(i<<2)>>2]|0)+16>>2]|0)+16|0;c[v>>2]=c[u>>2];c[v+4>>2]=c[u+4>>2];c[v+8>>2]=c[u+8>>2];c[v+12>>2]=c[u+12>>2];c[v+16>>2]=c[u+16>>2];c[v+20>>2]=c[u+20>>2];c[v+24>>2]=c[u+24>>2];c[v+28>>2]=c[u+28>>2];i=i+1|0}p=g+8|0;q=TG(b,r,c[p>>2]|0)|0;if(a[195234]|0){c[w>>2]=q;z4(F,99586,w)|0}if((q|0)>=1){o=(E|0)!=0;i=D+4|0;if(o){c[D>>2]=((c[y>>2]|0)+(c[A>>2]|0)|0)/2|0;c[i>>2]=((c[x>>2]|0)+(c[z>>2]|0)|0)/2|0}else{c[i>>2]=0;c[D>>2]=0}n=HK(b<<4)|0;m=g+16|0;i=0;while(1){if((i|0)>=(b|0))break;j=c[e+(i<<2)>>2]|0;k=n+(i<<4)|0;c[n+(i<<4)+12>>2]=i;if((c[m>>2]|0)==3){y=(c[j+16>>2]|0)+16|0;z=c[p>>2]|0;A=HB(j)|0;c[B>>2]=c[y>>2];c[B+4>>2]=c[y+4>>2];c[B+8>>2]=c[y+8>>2];c[B+12>>2]=c[y+12>>2];c[B+16>>2]=c[y+16>>2];c[B+20>>2]=c[y+20>>2];c[B+24>>2]=c[y+24>>2];c[B+28>>2]=c[y+28>>2];c[C>>2]=c[D>>2];c[C+4>>2]=c[D+4>>2];UG(B,k,q,z,C,A)}else{c[C>>2]=c[D>>2];c[C+4>>2]=c[D+4>>2];VG(f,j,k,q,g,C)}i=i+1|0}k=HK(b<<2)|0;i=0;while(1){if((i|0)>=(b|0))break;c[k+(i<<2)>>2]=n+(i<<4);i=i+1|0}k3(k,b,4,89);m=IL()|0;i=HK(b<<3)|0;b:do if(o){j=0;while(1){if((j|0)>=(b|0)){j=0;break}if(a[E+j>>0]|0){f=c[k+(j<<2)>>2]|0;g=i+(c[f+12>>2]<<3)|0;c[C>>2]=c[D>>2];c[C+4>>2]=c[D+4>>2];XG(f,m,g,C)}j=j+1|0}while(1){if((j|0)>=(b|0))break b;if(!(a[E+j>>0]|0)){D=c[k+(j<<2)>>2]|0;YG(j,D,m,i+(c[D+12>>2]<<3)|0,q,c[p>>2]|0,r)}j=j+1|0}}else{j=0;while(1){if((j|0)>=(b|0))break b;E=c[k+(j<<2)>>2]|0;YG(j,E,m,i+(c[E+12>>2]<<3)|0,q,c[p>>2]|0,r);j=j+1|0}}while(0);l6(k);j=0;while(1){if((j|0)>=(b|0))break;l6(c[n+(j<<4)+4>>2]|0);j=j+1|0}l6(n);LL(m);l6(r);if((d[195234]|0)>1){j=0;while(1){if((j|0)>=(b|0))break a;D=c[i+(j<<3)>>2]|0;E=c[i+(j<<3)+4>>2]|0;c[G>>2]=j;c[G+4>>2]=D;c[G+8>>2]=E;z4(F,99602,G)|0;j=j+1|0}}}else i=0}else i=0;while(0);l=H;return i|0}function QG(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0,j=0,k=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=l;l=l+16|0;f=C;A=HK(b<<3)|0;y=c[e+4>>2]|0;B=e+28|0;z=(c[B>>2]&1|0)==0;v=(y|0)>0;w=b+-1|0;x=~~+R(+(+G(+(+(b|0)))));w=v?(w+y|0)/(y|0)|0:(w+x|0)/(x|0)|0;x=v?y:x;y=z?x:w;x=z?w:x;if(a[195234]|0){w=c[15715]|0;c[f>>2]=z?99497:99507;c[f+4>>2]=x;c[f+8>>2]=y;z4(w,99520,f)|0}u=HK((y<<3)+8|0)|0;v=HK((x<<3)+8|0)|0;w=HK(b*24|0)|0;j=e+8|0;f=0;i=w;while(1){if((f|0)>=(b|0))break;o=+h[d+(f<<5)+8>>3];n=+h[d+(f<<5)+24>>3];p=+((c[j>>2]|0)>>>0);h[i>>3]=+h[d+(f<<5)+16>>3]-+h[d+(f<<5)>>3]+p;h[i+8>>3]=n-o+p;c[i+16>>2]=f;f=f+1|0;i=i+24|0}t=HK(b<<2)|0;f=0;while(1){if((f|0)>=(b|0))break;c[t+(f<<2)>>2]=w+(f*24|0);f=f+1|0}f=c[e+24>>2]|0;if(!f)if(!(c[B>>2]&64)){k3(t,b,4,91);i=0;f=0;k=0}else{i=0;f=0;k=0}else{c[47100]=f;k3(t,b,4,90);i=0;f=0;k=0}while(1){if((k|0)>=(b|0)){g=0.0;f=0;break}e=c[t+(k<<2)>>2]|0;j=u+(f<<3)|0;p=+h[j>>3];o=+h[e>>3];h[j>>3]=p>o?p:o;j=v+(i<<3)|0;o=+h[j>>3];p=+h[e+8>>3];h[j>>3]=o>p?o:p;j=i+1|0;e=f+1|0;if(z){f=(e|0)==(y|0);i=f?j:i;f=f?0:e}else{s=(j|0)==(x|0);i=s?0:j;f=s?e:f}k=k+1|0}while(1){if((f|0)>(y|0)){g=0.0;f=x;break}s=u+(f<<3)|0;p=+h[s>>3];h[s>>3]=g;g=g+p;f=f+1|0}while(1){if((f|0)<=0)break;s=f+-1|0;p=+h[v+(s<<3)>>3];h[v+(f<<3)>>3]=g;g=g+p;f=s}h[v>>3]=g;i=0;f=0;s=0;while(1){if((s|0)>=(b|0))break;q=c[(c[t+(s<<2)>>2]|0)+16>>2]|0;g=+h[d+(q<<5)>>3];p=+h[d+(q<<5)+8>>3];m=+h[d+(q<<5)+16>>3];o=+h[d+(q<<5)+24>>3];k=c[B>>2]|0;j=u+(f<<3)|0;r=f+1|0;do if(!(k&4)){n=+h[u+(r<<3)>>3];if(!(k&8)){g=(n+ +h[j>>3]-m-g)*.5;break}else{g=n-(m-g);break}}else g=+h[j>>3];while(0);c[A+(q<<3)>>2]=~~g;j=v+(i<<3)|0;e=i+1|0;if(!(k&16)){g=+h[v+(e<<3)>>3];if(!(k&32))g=(g+ +h[j>>3]-o-p)*.5}else g=+h[j>>3]-(o-p);c[A+(q<<3)+4>>2]=~~g;if(z){f=(r|0)==(y|0);i=f?e:i;f=f?0:r}else{q=(e|0)==(x|0);i=q?0:e;f=q?r:f}s=s+1|0}l6(w);l6(t);l6(u);l6(v);l=C;return A|0}function RG(a,b){a=a|0;b=b|0;var d=0;d=c[47100]|0;a=c[d+(c[(c[a>>2]|0)+16>>2]<<2)>>2]|0;b=c[d+(c[(c[b>>2]|0)+16>>2]<<2)>>2]|0;return ((a|0)>(b|0)?1:((a|0)<(b|0))<<31>>31)|0}function SG(a,b){a=a|0;b=b|0;var d=0.0,e=0.0;a=c[a>>2]|0;b=c[b>>2]|0;e=+h[a+8>>3]+ +h[a>>3];d=+h[b+8>>3]+ +h[b>>3];return (e<d?1:(e>d)<<31>>31)|0}function TG(a,b,e){a=a|0;b=b|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0,k=0.0,m=0,n=0,o=0.0,p=0.0,q=0,r=0,s=0,t=0;t=l;l=l+96|0;r=t+80|0;s=t+48|0;q=t+8|0;n=t;m=(a*100|0)+-1|0;f=+(e<<1|0);o=0.0;p=0.0;e=0;while(1){if((e|0)>=(a|0))break;j=f+(+h[b+(e<<5)+16>>3]-+h[b+(e<<5)>>3]);k=f+(+h[b+(e<<5)+24>>3]-+h[b+(e<<5)+8>>3]);o=o-(j+k);p=p-j*k;e=e+1|0}j=+(m|0);k=o*o-j*4.0*p;if(!(k<0.0)){f=+G(+k);i=j*2.0;g=(f-o)/i;i=(-o-f)/i;e=~~g;e=(e|0)==0?1:e;if((d[195234]|0)>2){n=c[15715]|0;_3(99745,27,1,n)|0;h[q>>3]=j;h[q+8>>3]=o;h[q+16>>3]=p;h[q+24>>3]=k;h[q+32>>3]=f;z4(n,99773,q)|0;c[s>>2]=e;h[s+8>>3]=g;c[s+16>>2]=~~i;h[s+24>>3]=i;z4(n,99799,s)|0;h[r>>3]=p+(o*g+g*(j*g));h[r+8>>3]=p+(o*i+i*(j*i));z4(n,99821,r)|0}}else{h[n>>3]=k;dA(1,99718,n)|0;e=-1}l=t;return e|0}function UG(a,b,e,f,g,i){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0.0,x=0.0;v=l;l=l+32|0;u=v+16|0;t=v;q=+h[a>>3];r=+h[a+8>>3];o=+h[a+16>>3];p=+h[a+24>>3];s=IL()|0;k=c[g>>2]|0;a=k-f|0;m=c[g+4>>2]|0;j=m-f|0;k=f-~~(q+(q>=0.0?.5:-.5))+k+~~(o+(o>=0.0?.5:-.5))|0;m=f-~~(r+(r>=0.0?.5:-.5))+m+~~(p+(p>=0.0?.5:-.5))|0;if((a|0)>-1)g=(a|0)/(e|0)|0;else g=((a+1|0)/(e|0)|0)+-1|0;if((j|0)>-1)n=(j|0)/(e|0)|0;else n=((j+1|0)/(e|0)|0)+-1|0;if((k|0)>-1)k=(k|0)/(e|0)|0;else k=((k+1|0)/(e|0)|0)+-1|0;if((m|0)>-1)j=(m|0)/(e|0)|0;else j=((m+1|0)/(e|0)|0)+-1|0;while(1){if((g|0)>(k|0))break;else a=n;while(1){if((a|0)>(j|0))break;OL(s,g,a);a=a+1|0}g=g+1|0}m=b+4|0;c[m>>2]=SL(s)|0;k=RL(s)|0;n=b+8|0;c[n>>2]=k;x=+(f<<1|0);w=+(e|0);j=~~+R(+((x+(o-q))/w));a=~~+R(+((x+(p-r))/w));c[b>>2]=a+j;a:do if((d[195234]|0)>2){g=c[15715]|0;c[t>>2]=i;c[t+4>>2]=k;c[t+8>>2]=j;c[t+12>>2]=a;z4(g,99677,t)|0;a=0;while(1){if((a|0)>=(c[n>>2]|0))break a;i=c[m>>2]|0;t=c[i+(a<<3)+4>>2]|0;c[u>>2]=c[i+(a<<3)>>2];c[u+4>>2]=t;z4(g,99704,u)|0;a=a+1|0}}while(0);LL(s);l=v;return}function VG(a,b,e,f,g,i){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0.0,S=0.0;P=l;l=l+128|0;G=P+112|0;F=P+104|0;O=P+16|0;N=P;I=P+64|0;J=P+56|0;A=P+40|0;B=P+96|0;z=P+88|0;w=P+24|0;x=P+80|0;y=P+72|0;L=c[g+8>>2]|0;H=c[g+12>>2]|0;D=(a|0)==0?b:a;M=IL()|0;K=b+16|0;C=c[K>>2]|0;u=+h[C+16>>3];E=(c[i>>2]|0)-~~(u+(u>=0.0?.5:-.5))|0;u=+h[C+24>>3];C=(c[i+4>>2]|0)-~~(u+(u>=0.0?.5:-.5))|0;a:do if((c[g+16>>2]|0)==1){w=IK((qB(b)|0)<<2)|0;a=0;i=gC(b)|0;while(1){if(!i)break;y=i+16|0;c[w+(a<<2)>>2]=c[(c[y>>2]|0)+112>>2];c[(c[y>>2]|0)+112>>2]=0;a=a+1|0;i=hC(b,i)|0}p=E-L|0;q=C-L|0;r=E+L|0;s=C+L|0;o=1;while(1){a=c[K>>2]|0;if((o|0)>(c[a+180>>2]|0))break;n=c[(c[a+184>>2]|0)+(o<<2)>>2]|0;j=c[n+16>>2]|0;u=+h[j+16>>3];a=~~(u+(u>=0.0?.5:-.5));u=+h[j+24>>3];i=~~(u+(u>=0.0?.5:-.5));u=+h[j+32>>3];g=~~(u+(u>=0.0?.5:-.5));u=+h[j+40>>3];j=~~(u+(u>=0.0?.5:-.5));b:do if((g|0)>(a|0)&(j|0)>(i|0)){a=p+a|0;k=q+i|0;g=r+g|0;m=s+j|0;if((a|0)>-1)i=(a|0)/(f|0)|0;else i=((a+1|0)/(f|0)|0)+-1|0;if((k|0)>-1)k=(k|0)/(f|0)|0;else k=((k+1|0)/(f|0)|0)+-1|0;if((g|0)>-1)j=(g|0)/(f|0)|0;else j=((g+1|0)/(f|0)|0)+-1|0;if((m|0)>-1)g=(m|0)/(f|0)|0;else g=((m+1|0)/(f|0)|0)+-1|0;while(1){if((i|0)>(j|0))break;else a=k;while(1){if((a|0)>(g|0))break;OL(M,i,a);a=a+1|0}i=i+1|0}a=gC(n)|0;while(1){if(!a)break b;c[(c[a+16>>2]|0)+212>>2]=n;a=hC(n,a)|0}}while(0);o=o+1|0}s=A+8|0;t=I+4|0;u=+(L|0);v=J+4|0;r=B+4|0;q=z+4|0;p=gC(b)|0;while(1){if(!p)break;hP(A,p);S=+h[A>>3];Q=+h[s>>3];n=~~(S+(S>=0.0?.5:-.5))+E|0;c[I>>2]=n;o=~~(Q+(Q>=0.0?.5:-.5))+C|0;c[t>>2]=o;i=p+16|0;a=c[i>>2]|0;c:do if(!(c[a+212>>2]|0)){c[J>>2]=~~(u+(+h[a+88>>3]+ +h[a+96>>3])*.5);c[v>>2]=~~(u+ +h[a+80>>3]*.5);c[F>>2]=c[I>>2];c[F+4>>2]=c[I+4>>2];c[G>>2]=c[J>>2];c[G+4>>2]=c[J+4>>2];_G(B,F,G);a=c[B>>2]|0;g=c[r>>2]|0;c[F>>2]=c[I>>2];c[F+4>>2]=c[I+4>>2];c[G>>2]=c[J>>2];c[G+4>>2]=c[J+4>>2];$G(z,F,G);j=c[z>>2]|0;k=c[q>>2]|0;if((a|0)>-1)i=(a|0)/(f|0)|0;else i=((a+1|0)/(f|0)|0)+-1|0;if((g|0)>-1)m=(g|0)/(f|0)|0;else m=((g+1|0)/(f|0)|0)+-1|0;if((j|0)>-1)j=(j|0)/(f|0)|0;else j=((j+1|0)/(f|0)|0)+-1|0;if((k|0)>-1)g=(k|0)/(f|0)|0;else g=((k+1|0)/(f|0)|0)+-1|0;while(1){if((i|0)>(j|0))break;else a=m;while(1){if((a|0)>(g|0))break;OL(M,i,a);a=a+1|0}i=i+1|0}if((n|0)>-1)a=(n|0)/(f|0)|0;else a=((n+1|0)/(f|0)|0)+-1|0;c[I>>2]=a;if((o|0)>-1)a=(o|0)/(f|0)|0;else a=((o+1|0)/(f|0)|0)+-1|0;c[t>>2]=a;a=UA(D,p)|0;while(1){if(!a)break c;c[G>>2]=c[I>>2];c[G+4>>2]=c[I+4>>2];aH(a,G,M,E,C,f,H);a=WA(D,a)|0}}else{if((n|0)>-1)a=(n|0)/(f|0)|0;else a=((n+1|0)/(f|0)|0)+-1|0;c[I>>2]=a;if((o|0)>-1)a=(o|0)/(f|0)|0;else a=((o+1|0)/(f|0)|0)+-1|0;c[t>>2]=a;a=UA(D,p)|0;while(1){if(!a)break c;if((c[(c[i>>2]|0)+212>>2]|0)!=(c[(c[(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0)){c[G>>2]=c[I>>2];c[G+4>>2]=c[I+4>>2];aH(a,G,M,E,C,f,H)}a=WA(D,a)|0}}while(0);p=hC(b,p)|0}a=0;i=gC(b)|0;while(1){if(!i)break;c[(c[i+16>>2]|0)+112>>2]=c[w+(a<<2)>>2];a=a+1|0;i=hC(b,i)|0}l6(w)}else{s=w+8|0;t=I+4|0;u=+(L|0);v=J+4|0;r=x+4|0;q=y+4|0;p=gC(b)|0;while(1){if(!p)break a;hP(w,p);Q=+h[w>>3];S=+h[s>>3];n=~~(Q+(Q>=0.0?.5:-.5))+E|0;c[I>>2]=n;o=~~(S+(S>=0.0?.5:-.5))+C|0;c[t>>2]=o;a=c[p+16>>2]|0;c[J>>2]=~~(u+(+h[a+88>>3]+ +h[a+96>>3])*.5);c[v>>2]=~~(u+ +h[a+80>>3]*.5);c[F>>2]=c[I>>2];c[F+4>>2]=c[I+4>>2];c[G>>2]=c[J>>2];c[G+4>>2]=c[J+4>>2];_G(x,F,G);a=c[x>>2]|0;g=c[r>>2]|0;c[F>>2]=c[I>>2];c[F+4>>2]=c[I+4>>2];c[G>>2]=c[J>>2];c[G+4>>2]=c[J+4>>2];$G(y,F,G);j=c[y>>2]|0;k=c[q>>2]|0;if((a|0)>-1)i=(a|0)/(f|0)|0;else i=((a+1|0)/(f|0)|0)+-1|0;if((g|0)>-1)m=(g|0)/(f|0)|0;else m=((g+1|0)/(f|0)|0)+-1|0;if((j|0)>-1)j=(j|0)/(f|0)|0;else j=((j+1|0)/(f|0)|0)+-1|0;if((k|0)>-1)g=(k|0)/(f|0)|0;else g=((k+1|0)/(f|0)|0)+-1|0;while(1){if((i|0)>(j|0))break;else a=m;while(1){if((a|0)>(g|0))break;OL(M,i,a);a=a+1|0}i=i+1|0}if((n|0)>-1)a=(n|0)/(f|0)|0;else a=((n+1|0)/(f|0)|0)+-1|0;c[I>>2]=a;if((o|0)>-1)a=(o|0)/(f|0)|0;else a=((o+1|0)/(f|0)|0)+-1|0;c[t>>2]=a;a=UA(D,p)|0;while(1){if(!a)break;c[G>>2]=c[I>>2];c[G+4>>2]=c[I+4>>2];aH(a,G,M,E,C,f,H);a=WA(D,a)|0}p=hC(b,p)|0}}while(0);j=e+4|0;c[j>>2]=SL(M)|0;k=e+8|0;c[k>>2]=RL(M)|0;i=c[K>>2]|0;Q=+(L<<1|0);S=+(f|0);a=~~+R(+((Q+(+h[i+32>>3]-+h[i+16>>3]))/S));i=~~+R(+((Q+(+h[i+40>>3]-+h[i+24>>3]))/S));c[e>>2]=i+a;d:do if((d[195234]|0)>2){g=c[15715]|0;e=HB(b)|0;b=c[k>>2]|0;c[N>>2]=e;c[N+4>>2]=b;c[N+8>>2]=a;c[N+12>>2]=i;z4(g,99677,N)|0;a=0;while(1){if((a|0)>=(c[k>>2]|0))break d;b=c[j>>2]|0;N=c[b+(a<<3)+4>>2]|0;c[O>>2]=c[b+(a<<3)>>2];c[O+4>>2]=N;z4(g,99704,O)|0;a=a+1|0}}while(0);LL(M);l=P;return}function WG(a,b){a=a|0;b=b|0;return (c[c[b>>2]>>2]|0)-(c[c[a>>2]>>2]|0)|0}function XG(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;k=l;l=l+32|0;i=k+16|0;j=k;m=c[a+4>>2]|0;h=c[a+8>>2]|0;c[e>>2]=0-(c[f>>2]|0);g=e+4|0;c[g>>2]=0-(c[f+4>>2]|0);a=0;f=m;while(1){if((a|0)>=(h|0))break;c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];ML(b,i);a=a+1|0;f=f+8|0}if((d[195234]|0)>1){m=c[15715]|0;b=c[e>>2]|0;e=c[g>>2]|0;c[j>>2]=h;c[j+4>>2]=b;c[j+8>>2]=e;z4(m,99651,j)|0}l=k;return}function YG(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0.0,k=0.0,l=0,m=0,n=0.0,o=0.0;m=c[b+12>>2]|0;j=+h[i+(m<<5)+24>>3]-+h[i+(m<<5)+8>>3];k=+h[i+(m<<5)+16>>3]-+h[i+(m<<5)>>3];if(!((a|0)==0?(o=+(g<<1|0),n=+(f|0),(ZG((~~+R(+((o+k)/n))|0)/-2|0,(~~+R(+((o+j)/n))|0)/-2|0,b,d,e,f,i)|0)!=0):0))l=3;a:do if((l|0)==3?(ZG(0,0,b,d,e,f,i)|0)==0:0)if((~~+R(+k)|0)<(~~+R(+j)|0)){m=1;while(1){l=0-m|0;a=0;while(1){if((a|0)<=(l|0)){g=l;break}if(ZG(l,a,b,d,e,f,i)|0)break a;a=a+-1|0}while(1){if((g|0)>=(m|0))break;if(ZG(g,a,b,d,e,f,i)|0)break a;g=g+1|0}while(1){if((a|0)>=(m|0))break;if(ZG(g,a,b,d,e,f,i)|0)break a;a=a+1|0}while(1){if((g|0)<=(l|0))break;if(ZG(g,a,b,d,e,f,i)|0)break a;g=g+-1|0}while(1){if((a|0)<=0)break;if(!(ZG(g,a,b,d,e,f,i)|0))a=a+-1|0;else break a}m=m+1|0}}else{m=1;while(1){l=0-m|0;a=0;while(1){if((a|0)>=(m|0)){g=l;break}if(ZG(a,l,b,d,e,f,i)|0)break a;a=a+1|0}while(1){if((g|0)>=(m|0))break;if(ZG(a,g,b,d,e,f,i)|0)break a;g=g+1|0}while(1){if((a|0)<=(l|0))break;if(ZG(a,g,b,d,e,f,i)|0)break a;a=a+-1|0}while(1){if((g|0)<=(l|0))break;if(ZG(a,g,b,d,e,f,i)|0)break a;g=g+-1|0}while(1){if((a|0)>=0)break;if(!(ZG(a,g,b,d,e,f,i)|0))a=a+1|0;else break a}m=m+1|0}}while(0);return}function ZG(a,b,e,f,g,i,j){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0;u=l;l=l+48|0;s=u+32|0;t=u+8|0;r=u;n=e+4|0;p=c[e+8>>2]|0;q=r+4|0;k=c[n>>2]|0;m=0;while(1){if((m|0)>=(p|0)){o=5;break}w=k;v=c[w+4>>2]|0;c[r>>2]=(c[w>>2]|0)+a;c[q>>2]=v+b;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];if(PL(f,s)|0){k=0;break}k=k+8|0;m=m+1|0}if((o|0)==5){e=c[e+12>>2]|0;y=+h[j+(e<<5)>>3];x=+h[j+(e<<5)+8>>3];c[g>>2]=(S(i,a)|0)-~~(y+(y>=0.0?.5:-.5));e=g+4|0;c[e>>2]=(S(i,b)|0)-~~(x+(x>=0.0?.5:-.5));k=c[n>>2]|0;m=0;while(1){if((m|0)>=(p|0))break;v=k;w=c[v+4>>2]|0;c[r>>2]=(c[v>>2]|0)+a;c[q>>2]=w+b;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];ML(f,s);k=k+8|0;m=m+1|0}if((d[195234]|0)>1){k=c[15715]|0;v=c[g>>2]|0;w=c[e>>2]|0;c[t>>2]=p;c[t+4>>2]=a;c[t+8>>2]=b;c[t+12>>2]=v;c[t+16>>2]=w;z4(k,99617,t)|0;k=1}else k=1}l=u;return k|0}function _G(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=(c[b+4>>2]|0)-(c[d+4>>2]|0)|0;c[a>>2]=(c[b>>2]|0)-(c[d>>2]|0);c[a+4>>2]=e;return}function $G(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=(c[d+4>>2]|0)+(c[b+4>>2]|0)|0;c[a>>2]=(c[d>>2]|0)+(c[b>>2]|0);c[a+4>>2]=e;return}function aH(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0.0,k=0.0,m=0,n=0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0;A=l;l=l+112|0;x=A+96|0;w=A+80|0;q=A+48|0;r=A+32|0;y=A+16|0;z=A;n=A+64|0;h[y>>3]=+(c[b>>2]|0);s=y+8|0;h[s>>3]=+(c[b+4>>2]|0);v=+(g|0);a:do if((i|0)!=0?(t=a+16|0,m=c[(c[t>>2]|0)+8>>2]|0,(m|0)!=0):0){p=+(e|0);o=+(f|0);i=z+8|0;e=0;while(1){if((e|0)>=(c[m+4>>2]|0))break a;n=c[m>>2]|0;b=c[n+(e*48|0)>>2]|0;g=c[n+(e*48|0)+4>>2]|0;f=c[n+(e*48|0)+8>>2]|0;a=c[n+(e*48|0)+12>>2]|0;m=n+(e*48|0)+16|0;c[q>>2]=c[m>>2];c[q+4>>2]=c[m+4>>2];c[q+8>>2]=c[m+8>>2];c[q+12>>2]=c[m+12>>2];n=n+(e*48|0)+32|0;c[r>>2]=c[n>>2];c[r+4>>2]=c[n+4>>2];c[r+8>>2]=c[n+8>>2];c[r+12>>2]=c[n+12>>2];if(!f){c[y>>2]=c[b>>2];c[y+4>>2]=c[b+4>>2];c[y+8>>2]=c[b+8>>2];c[y+12>>2]=c[b+12>>2];m=b+16|0;c[z>>2]=c[m>>2];c[z+4>>2]=c[m+4>>2];c[z+8>>2]=c[m+8>>2];c[z+12>>2]=c[m+12>>2];m=2}else{c[y>>2]=c[q>>2];c[y+4>>2]=c[q+4>>2];c[y+8>>2]=c[q+8>>2];c[y+12>>2]=c[q+12>>2];c[z>>2]=c[b>>2];c[z+4>>2]=c[b+4>>2];c[z+8>>2]=c[b+8>>2];c[z+12>>2]=c[b+12>>2];m=1}j=p+ +h[y>>3];h[y>>3]=j;k=o+ +h[s>>3];h[s>>3]=k;if(!(j>=0.0))j=(j+1.0)/v+-1.0;else j=j/v;h[y>>3]=j;if(!(k>=0.0))j=(k+1.0)/v+-1.0;else j=k/v;h[s>>3]=j;j=p+ +h[z>>3];h[z>>3]=j;k=o+ +h[i>>3];h[i>>3]=k;if(!(j>=0.0))j=(j+1.0)/v+-1.0;else j=j/v;h[z>>3]=j;if(!(k>=0.0))j=(k+1.0)/v+-1.0;else j=k/v;h[i>>3]=j;c[w>>2]=c[y>>2];c[w+4>>2]=c[y+4>>2];c[w+8>>2]=c[y+8>>2];c[w+12>>2]=c[y+12>>2];c[x>>2]=c[z>>2];c[x+4>>2]=c[z+4>>2];c[x+8>>2]=c[z+8>>2];c[x+12>>2]=c[z+12>>2];NG(w,x,d);while(1){if((m|0)>=(g|0))break;c[y>>2]=c[z>>2];c[y+4>>2]=c[z+4>>2];c[y+8>>2]=c[z+8>>2];c[y+12>>2]=c[z+12>>2];f=b+(m<<4)|0;c[z>>2]=c[f>>2];c[z+4>>2]=c[f+4>>2];c[z+8>>2]=c[f+8>>2];c[z+12>>2]=c[f+12>>2];j=p+ +h[z>>3];h[z>>3]=j;k=o+ +h[i>>3];h[i>>3]=k;if(!(j>=0.0))j=(j+1.0)/v+-1.0;else j=j/v;h[z>>3]=j;if(!(k>=0.0))j=(k+1.0)/v+-1.0;else j=k/v;h[i>>3]=j;c[w>>2]=c[y>>2];c[w+4>>2]=c[y+4>>2];c[w+8>>2]=c[y+8>>2];c[w+12>>2]=c[y+12>>2];c[x>>2]=c[z>>2];c[x+4>>2]=c[z+4>>2];c[x+8>>2]=c[z+8>>2];c[x+12>>2]=c[z+12>>2];NG(w,x,d);m=m+1|0}if(a|0){c[y>>2]=c[z>>2];c[y+4>>2]=c[z+4>>2];c[y+8>>2]=c[z+8>>2];c[y+12>>2]=c[z+12>>2];c[z>>2]=c[r>>2];c[z+4>>2]=c[r+4>>2];c[z+8>>2]=c[r+8>>2];c[z+12>>2]=c[r+12>>2];j=p+ +h[z>>3];h[z>>3]=j;k=o+ +h[i>>3];h[i>>3]=k;if(!(j>=0.0))j=(j+1.0)/v+-1.0;else j=j/v;h[z>>3]=j;if(!(k>=0.0))j=(k+1.0)/v+-1.0;else j=k/v;h[i>>3]=j;c[w>>2]=c[y>>2];c[w+4>>2]=c[y+4>>2];c[w+8>>2]=c[y+8>>2];c[w+12>>2]=c[y+12>>2];c[x>>2]=c[z>>2];c[x+4>>2]=c[z+4>>2];c[x+8>>2]=c[z+8>>2];c[x+12>>2]=c[z+12>>2];NG(w,x,d)}e=e+1|0;m=c[(c[t>>2]|0)+8>>2]|0}}else u=4;while(0);if((u|0)==4){hP(n,c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0);c[z>>2]=c[n>>2];c[z+4>>2]=c[n+4>>2];c[z+8>>2]=c[n+8>>2];c[z+12>>2]=c[n+12>>2];j=+(e|0)+ +h[z>>3];h[z>>3]=j;m=z+8|0;k=+(f|0)+ +h[m>>3];h[m>>3]=k;if(!(j>=0.0))j=(j+1.0)/v+-1.0;else j=j/v;h[z>>3]=j;if(!(k>=0.0))j=(k+1.0)/v+-1.0;else j=k/v;h[m>>3]=j;c[w>>2]=c[y>>2];c[w+4>>2]=c[y+4>>2];c[w+8>>2]=c[y+8>>2];c[w+12>>2]=c[y+12>>2];c[x>>2]=c[z>>2];c[x+4>>2]=c[z+4>>2];c[x+8>>2]=c[z+8>>2];c[x+12>>2]=c[z+12>>2];NG(w,x,d)}l=A;return}function bH(a,b,d){a=a|0;b=b|0;d=d|0;a:do if((a|0)<1)a=0;else switch(c[d+16>>2]|0){case 4:{a=QG(a,b,d)|0;break a}case 3:{a=cH(a,b,d)|0;break a}default:{a=0;break a}}while(0);return a|0}function cH(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;p=l;l=l+80|0;i=p+64|0;h=p+24|0;o=p+8|0;g=p;j=p+56|0;m=f+8|0;n=TG(b,e,c[m>>2]|0)|0;if(a[195234]|0){k=c[15715]|0;c[g>>2]=n;z4(k,99586,g)|0}a:do if((n|0)>=1){c[j+4>>2]=0;c[j>>2]=0;k=HK(b<<4)|0;f=0;while(1){if((f|0)>=(b|0))break;c[k+(f<<4)+12>>2]=f;q=e+(f<<5)|0;g=c[m>>2]|0;c[h>>2]=c[q>>2];c[h+4>>2]=c[q+4>>2];c[h+8>>2]=c[q+8>>2];c[h+12>>2]=c[q+12>>2];c[h+16>>2]=c[q+16>>2];c[h+20>>2]=c[q+20>>2];c[h+24>>2]=c[q+24>>2];c[h+28>>2]=c[q+28>>2];c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];UG(h,k+(f<<4)|0,n,g,i,195341);f=f+1|0}h=HK(b<<2)|0;f=0;while(1){if((f|0)>=(b|0))break;c[h+(f<<2)>>2]=k+(f<<4);f=f+1|0}k3(h,b,4,89);i=IL()|0;f=HK(b<<3)|0;g=0;while(1){if((g|0)>=(b|0))break;q=c[h+(g<<2)>>2]|0;YG(g,q,i,f+(c[q+12>>2]<<3)|0,n,c[m>>2]|0,e);g=g+1|0}l6(h);g=0;while(1){if((g|0)>=(b|0))break;l6(c[k+(g<<4)+4>>2]|0);g=g+1|0}l6(k);LL(i);if((d[195234]|0)>1){h=c[15715]|0;g=0;while(1){if((g|0)>=(b|0))break a;e=c[f+(g<<3)>>2]|0;q=c[f+(g<<3)+4>>2]|0;c[o>>2]=g;c[o+4>>2]=e;c[o+8>>2]=q;z4(h,99602,o)|0;g=g+1|0}}}else f=0;while(0);l=p;return f|0}function dH(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0;a:do if((a|0)<1)f=0-a|0;else{s=(e|0)==0;q=(f|0)==0;j=0;while(1){if((j|0)==(a|0)){f=0;break a}r=c[b+(j<<2)>>2]|0;g=s?r:e;k=c[d+(j<<3)>>2]|0;l=c[d+(j<<3)+4>>2]|0;m=+(k|0);n=m/72.0;o=+(l|0);p=o/72.0;i=gC(r)|0;while(1){if(!i)break;f=c[i+16>>2]|0;t=c[f+132>>2]|0;h[t>>3]=n+ +h[t>>3];t=t+8|0;h[t>>3]=p+ +h[t>>3];t=f+16|0;h[t>>3]=m+ +h[t>>3];t=f+24|0;h[t>>3]=o+ +h[t>>3];f=c[f+108>>2]|0;if(f|0){t=f+56|0;h[t>>3]=m+ +h[t>>3];t=f+64|0;h[t>>3]=o+ +h[t>>3]}b:do if(!q){f=UA(g,i)|0;while(1){if(!f)break b;eH(f,k,l);f=WA(g,f)|0}}while(0);i=hC(r,i)|0}fH(r,k,l);j=j+1|0}}while(0);return f|0}function eH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0.0,m=0.0,n=0;e=c[a+16>>2]|0;a=c[e+96>>2]|0;m=+(b|0);l=+(d|0);if(a|0){k=a+56|0;h[k>>3]=m+ +h[k>>3];k=a+64|0;h[k>>3]=l+ +h[k>>3]}a=c[e+108>>2]|0;if(a|0){k=a+56|0;h[k>>3]=m+ +h[k>>3];k=a+64|0;h[k>>3]=l+ +h[k>>3]}a=c[e+100>>2]|0;if(a|0){k=a+56|0;h[k>>3]=m+ +h[k>>3];k=a+64|0;h[k>>3]=l+ +h[k>>3]}a=c[e+104>>2]|0;if(a|0){k=a+56|0;h[k>>3]=m+ +h[k>>3];k=a+64|0;h[k>>3]=l+ +h[k>>3]}j=c[e+8>>2]|0;a:do if(j|0){d=c[j+4>>2]|0;a=0;while(1){if((a|0)>=(d|0))break a;k=c[j>>2]|0;e=c[k+(a*48|0)>>2]|0;f=c[k+(a*48|0)+4>>2]|0;g=c[k+(a*48|0)+8>>2]|0;i=c[k+(a*48|0)+12>>2]|0;b=0;while(1){if((b|0)>=(f|0))break;n=e+(b<<4)|0;h[n>>3]=m+ +h[n>>3];n=e+(b<<4)+8|0;h[n>>3]=l+ +h[n>>3];b=b+1|0}if(g|0){n=k+(a*48|0)+16|0;h[n>>3]=m+ +h[n>>3];n=k+(a*48|0)+24|0;h[n>>3]=l+ +h[n>>3]}if(i|0){n=k+(a*48|0)+32|0;h[n>>3]=m+ +h[n>>3];n=k+(a*48|0)+40|0;h[n>>3]=l+ +h[n>>3]}a=a+1|0}}while(0);return}function fH(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0.0,j=0,k=0.0,l=0.0,m=0,n=0.0,o=0;j=b+16|0;b=c[j>>2]|0;o=b+16|0;m=b+24|0;f=b+32|0;b=b+40|0;g=+(d|0);l=g+ +h[f>>3];i=+(e|0);n=i+ +h[m>>3];k=i+ +h[b>>3];h[o>>3]=g+ +h[o>>3];h[m>>3]=n;h[f>>3]=l;h[b>>3]=k;b=c[j>>2]|0;f=c[b+12>>2]|0;if((f|0)!=0?(a[f+81>>0]|0)!=0:0){o=f+56|0;h[o>>3]=g+ +h[o>>3];f=f+64|0;h[f>>3]=i+ +h[f>>3];f=1}else f=1;while(1){if((f|0)>(c[b+180>>2]|0))break;fH(c[(c[b+184>>2]|0)+(f<<2)>>2]|0,d,e);f=f+1|0;b=c[j>>2]|0}return}function gH(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=OG(a,b,d,e)|0;if(!f)a=1;else{a=dH(a,b,f,d,c[e+12>>2]|0)|0;l6(f)}return a|0}function hH(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;p=l;l=l+32|0;o=p;n=gH(a,b,d,e)|0;if(!n){zP(d);m=(c[d+16>>2]|0)+16|0;c[o>>2]=c[m>>2];c[o+4>>2]=c[m+4>>2];c[o+8>>2]=c[m+8>>2];c[o+12>>2]=c[m+12>>2];c[o+16>>2]=c[m+16>>2];c[o+20>>2]=c[m+20>>2];c[o+24>>2]=c[m+24>>2];c[o+28>>2]=c[m+28>>2];f=o+8|0;g=o+16|0;i=o+24|0;e=0;while(1){if((e|0)>=(a|0))break;k=c[(c[b+(e<<2)>>2]|0)+16>>2]|0;j=c[k+180>>2]|0;k=k+184|0;d=1;while(1){if((d|0)>(j|0))break;r=c[(c[(c[k>>2]|0)+(d<<2)>>2]|0)+16>>2]|0;q=r+16|0;h[o>>3]=+h[(+h[o>>3]<+h[q>>3]?o:q)>>3];h[f>>3]=+h[(+h[f>>3]<+h[r+24>>3]?o:q)+8>>3];h[g>>3]=+h[(+h[g>>3]>+h[r+32>>3]?o:q)+16>>3];h[i>>3]=+h[(+h[i>>3]>+h[r+40>>3]?o:q)+24>>3];d=d+1|0}e=e+1|0}c[m>>2]=c[o>>2];c[m+4>>2]=c[o+4>>2];c[m+8>>2]=c[o+8>>2];c[m+12>>2]=c[o+12>>2];c[m+16>>2]=c[o+16>>2];c[m+20>>2]=c[o+20>>2];c[m+24>>2]=c[o+24>>2];c[m+28>>2]=c[o+28>>2]}l=p;return n|0}function iH(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;h=l;l=l+16|0;g=h;if(!f)Aa(99835,99841,1400,99848);e=jH(b,e,e)|0;c[f+8>>2]=e;if(a[195234]|0){i=c[15715]|0;c[g>>2]=e;z4(i,99860,g)|0}c[f+12>>2]=0;c[f+20>>2]=0;kH(b,d,f)|0;l=h;return c[f+16>>2]|0}function jH(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l+16|0;h=i;f=i+4|0;g=NA(b,99990)|0;a:do if(g){c[h>>2]=f;h=(q4(g,137696,h)|0)==1;b=c[f>>2]|0;if(h&(b|0)>-1)d=b;else{switch(a[g>>0]|0){case 84:case 116:break;default:break a}d=e}}while(0);l=i;return d|0}function kH(a,b,c){a=a|0;b=b|0;c=c|0;return lH(NA(a,99873)|0,b,c)|0}function lH(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0;u=l;l=l+64|0;r=u+40|0;q=u+32|0;t=u+24|0;s=u+16|0;m=u+8|0;k=u;i=u+48|0;j=u+44|0;if(!e)Aa(99835,99841,1292,99882);o=e+28|0;c[o>>2]=0;p=e+16|0;c[p>>2]=d;n=e+4|0;c[n>>2]=0;c[e+24>>2]=0;a:do if(b|0?(f=a[b>>0]|0,f<<24>>24):0)switch(f<<24>>24|0){case 97:{d=b+5|0;if(!(h2(b,99900,5)|0)){c[p>>2]=4;m=mH(d,e)|0;c[k>>2]=j;m=(q4(m,137696,k)|0)>0;d=c[j>>2]|0;if(!(m&(d|0)>0))break a;c[n>>2]=d;break a}else{if(h2(b,99906,6)|0)break a;c[p>>2]=5;c[m>>2]=i;m=(q4(d,99913,m)|0)>0;v=+g[i>>2];g[e>>2]=m&v>0.0?v:1.0;break a}}case 99:{if(f<<24>>24!=99)break a;if(f2(b,108307)|0)break a;c[p>>2]=1;break a}case 103:{if(f<<24>>24!=103)break a;if(f2(b,111795)|0)break a;c[p>>2]=3;break a}case 110:{if(f<<24>>24!=110)break a;if(f2(b,111782)|0)break a;c[p>>2]=2;break a}default:break a}while(0);if(a[195234]|0){d=c[15715]|0;_3(99916,11,1,d)|0;c[s>>2]=nH(c[p>>2]|0)|0;z4(d,99928,s)|0;if((c[p>>2]|0)==5){h[t>>3]=+g[e>>2];z4(d,99941,t)|0}c[q>>2]=c[n>>2];z4(d,99954,q)|0;c[r>>2]=c[o>>2];z4(d,99967,r)|0}l=u;return c[p>>2]|0}function mH(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;a:do if((a[b>>0]|0)==95){f=d+28|0;e=1;while(1){b=b+1|0;b:while(1){if(!e)break a;d=a[b>>0]|0;if(!(d<<24>>24))break a;switch(d<<24>>24|0){case 99:{g=10;break b}case 105:{g=9;break b}case 117:{g=11;break b}case 116:{g=12;break b}case 98:{d=32;break b}case 108:{g=7;break b}case 114:{g=8;break b}default:e=0}}if((g|0)==7){g=0;d=4}else if((g|0)==8){g=0;d=8}else if((g|0)==9){g=0;d=64}else if((g|0)==10){g=0;d=1}else if((g|0)==11){g=0;d=2}else if((g|0)==12){g=0;d=16}c[f>>2]=c[f>>2]|d}}while(0);return b|0}function nH(a){a=a|0;switch(a|0){case 1:{a=108307;break}case 2:{a=111782;break}case 3:{a=111795;break}case 4:{a=99900;break}case 5:{a=99906;break}default:a=99980}return a|0}function oH(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+96|0;k=n;m=n+80|0;do if(a){if(!e){e=m6(1,20)|0;c[e+4>>2]=d>>>0>80?d:80}d=c[e>>2]|0;j=c[e+4>>2]|0;if(!d){h=100;d=a;i=m6(100,j)|0}else{h=d+100|0;i=n6(c[e+8>>2]|0,S(h,j)|0)|0;u6(i+(S(j,d)|0)|0,0,j*100|0)|0;d=a}while(1){d=pH(k,d,b,m)|0;if(!d)break;a=c[e>>2]|0;f=h<<1;g=S(h,j)|0;if((a|0)==(h|0)){i=n6(i,S(f,j)|0)|0;u6(i+g|0,0,g|0)|0;a=c[e>>2]|0}else f=h;a=i+(S(a,j)|0)|0;g=k;h=a+80|0;do{c[a>>2]=c[g>>2];a=a+4|0;g=g+4|0}while((a|0)<(h|0));c[e>>2]=(c[e>>2]|0)+1;h=f}if(c[m>>2]|0){m=e+16|0;c[m>>2]=c[m>>2]|1}d=c[e>>2]|0;if(!d){l6(i);l6(e);e=0;break}else{c[e+8>>2]=n6(i,S(d,j)|0)|0;break}}while(0);l=n;return e|0}function pH(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+80|0;n=r+64|0;g=r;c[f>>2]=0;do{h=a[d>>0]|0;d=d+1|0}while((X1(h)|0)!=0);p=(e|0)!=0;j=e+4|0;k=g+8|0;q=b+72|0;m=e+8|0;o=e+40|0;i=b+8|0;a:do switch(h|0){case 69:{c[b>>2]=0;d=qH(d,i)|0;if(!d){c[f>>2]=1;d=0;break a}if(p)c[q>>2]=c[e>>2];break}case 101:{c[b>>2]=1;d=qH(d,i)|0;if(!d){c[f>>2]=1;d=0;break a}if(p)c[q>>2]=c[e>>2];break}case 80:{c[b>>2]=2;d=rH(d,i)|0;if(!d){c[f>>2]=1;d=0;break a}if(p)c[q>>2]=c[j>>2];break}case 112:{c[b>>2]=3;d=rH(d,i)|0;if(!d){c[f>>2]=1;d=0;break a}if(p)c[q>>2]=c[j>>2];break}case 98:{c[b>>2]=4;d=rH(d,i)|0;if(!d){c[f>>2]=1;d=0;break a}if(p)c[q>>2]=c[m>>2];break}case 66:{c[b>>2]=5;d=rH(d,i)|0;if(!d){c[f>>2]=1;d=0;break a}if(p)c[q>>2]=c[m>>2];break}case 99:{d=sH(d,n)|0;if(!d){c[f>>2]=1;d=0;break a}m=tH(c[n>>2]|0,g)|0;c[n>>2]=m;if(!m){c[f>>2]=1;d=0;break a}if(!(c[g>>2]|0)){c[b>>2]=9;c[i>>2]=c[k>>2];if(!p)break a;c[q>>2]=c[e+24>>2];break a}else{c[b>>2]=14;h=i+64|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));if(!p)break a;c[q>>2]=c[o>>2];break a}}case 67:{d=sH(d,n)|0;if(!d){c[f>>2]=1;d=0;break a}m=tH(c[n>>2]|0,g)|0;c[n>>2]=m;if(!m){c[f>>2]=1;d=0;break a}if(!(c[g>>2]|0)){c[b>>2]=8;c[i>>2]=c[k>>2];if(!p)break a;c[q>>2]=c[e+20>>2];break a}else{c[b>>2]=13;h=i+64|0;do{c[i>>2]=c[g>>2];i=i+4|0;g=g+4|0}while((i|0)<(h|0));if(!p)break a;c[q>>2]=c[o>>2];break a}}case 76:{c[b>>2]=6;d=rH(d,i)|0;if(!d){c[f>>2]=1;d=0;break a}if(p)c[q>>2]=c[e+12>>2];break}case 84:{c[b>>2]=7;d=uH(d,i)|0;if(!d){c[f>>2]=1;d=0;break a}d=uH(d,b+16|0)|0;if(!d){c[f>>2]=1;d=0;break a}d=vH(d,b+24|0)|0;if(!d){c[f>>2]=1;d=0;break a}d=uH(d,b+32|0)|0;if(!d){c[f>>2]=1;d=0;break a}d=sH(d,b+40|0)|0;if(!d){c[f>>2]=1;d=0;break a}if(p)c[q>>2]=c[e+16>>2];break}case 70:{c[b>>2]=10;d=uH(d,i)|0;if(!d){c[f>>2]=1;d=0;break a}d=sH(d,b+16|0)|0;if(!d){c[f>>2]=1;d=0;break a}if(p)c[q>>2]=c[e+28>>2];break}case 83:{c[b>>2]=11;d=sH(d,i)|0;if(!d){c[f>>2]=1;d=0;break a}if(p)c[q>>2]=c[e+32>>2];break}case 73:{c[b>>2]=12;d=qH(d,i)|0;if(!d){c[f>>2]=1;d=0;break a}d=sH(d,b+40|0)|0;if(!d){c[f>>2]=1;d=0;break a}if(p)c[q>>2]=c[e+36>>2];break}case 116:{c[b>>2]=15;d=wH(d,i)|0;if(!d){c[f>>2]=1;d=0;break a}if(p)c[q>>2]=c[e+44>>2];break}case 0:{d=0;break}default:{c[f>>2]=1;d=0}}while(0);l=r;return d|0}function qH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0;i=l;l=l+16|0;e=i;h[b>>3]=+b6(a,e);f=c[e>>2]|0;if(((f|0)!=(a|0)?(h[b+8>>3]=+b6(f,e),g=c[e>>2]|0,(f|0)!=(g|0)):0)?(h[b+16>>3]=+b6(g,e),d=c[e>>2]|0,(g|0)!=(d|0)):0){h[b+24>>3]=+b6(d,e);a=c[e>>2]|0;a=(d|0)==(a|0)?0:a}else a=0;l=i;return a|0}function rH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0;k=l;l=l+16|0;j=k+4|0;g=k;a=xH(a,j)|0;do if(a){d=c[j>>2]|0;i=m6(d,24)|0;c[b>>2]=d;e=i;f=0;while(1){if((f|0)>=(d|0)){d=9;break}h[e>>3]=+b6(a,g);d=c[g>>2]|0;if((a|0)==(d|0)){d=5;break}h[e+8>>3]=+b6(d,g);a=c[g>>2]|0;if((d|0)==(a|0)){d=7;break}h[e+16>>3]=0.0;e=e+24|0;d=c[b>>2]|0;f=f+1|0}if((d|0)==5){c[j>>2]=f;l6(i);a=0;break}else if((d|0)==7){c[j>>2]=f;l6(i);a=0;break}else if((d|0)==9){c[j>>2]=f;c[b+4>>2]=i;break}}else a=0;while(0);l=k;return a|0}function sH(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+16|0;i=j;b=xH(b,i)|0;f=c[i>>2]|0;do if(!((b|0)==0|(f|0)<1)){do{h=a[b>>0]|0;e=h<<24>>24==0;b=b+1|0}while(h<<24>>24!=45&(e^1));if(!e){h=m6(f+1|0,1)|0;g=h;e=f;while(1){if((e|0)<=0){e=9;break}e=a[b>>0]|0;if(!(e<<24>>24)){e=8;break}a[g>>0]=e;e=(c[i>>2]|0)+-1|0;c[i>>2]=e;g=g+1|0;b=b+1|0}if((e|0)==8){l6(h);b=0;break}else if((e|0)==9){a[g>>0]=0;c[d>>2]=h;break}}else b=0}else b=0;while(0);l=j;return b|0}function tH(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=a[b>>0]|0;f=d+8|0;g=b+1|0;switch(e|0){case 91:{b=yH(g,d)|0;break}case 40:{b=zH(g,d)|0;break}case 47:case 35:{c[d>>2]=0;c[f>>2]=b;break}default:if(!(O2(e)|0))b=0;else{c[d>>2]=0;c[f>>2]=b}}return b|0}function uH(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0;f=l;l=l+16|0;d=f;e=+b6(a,d);d=c[d>>2]|0;if((d|0)==(a|0))d=0;else h[b>>3]=e;l=f;return d|0}function vH(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;a=xH(a,e)|0;e=c[e>>2]|0;c[b>>2]=(e|0)<0?0:e|0?2:1;l=d;return a|0}function wH(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[b>>2]=_1(a,e,10)|0;b=c[e>>2]|0;l=d;return ((b|0)==(a|0)?0:b)|0}function xH(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[b>>2]=$1(a,e,10)|0;b=c[e>>2]|0;l=d;return ((b|0)==(a|0)?0:b)|0}function yH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;m=o;c[b>>2]=1;n=b+8|0;i=uH(a,n)|0;do if(((((i|0)!=0?(j=uH(i,b+16|0)|0,(j|0)!=0):0)?(e=uH(j,b+24|0)|0,(e|0)!=0):0)?(f=uH(e,b+32|0)|0,(f|0)!=0):0)?(k=b+40|0,d=xH(f,k)|0,(d|0)!=0):0){b=c[k>>2]|0;f=m6(b,8)|0;e=0;while(1){if((e|0)>=(b|0)){d=13;break}d=uH(d,m)|0;if(!d){d=9;break}g[f+(e<<3)>>2]=+h[m>>3];d=sH(d,f+(e<<3)+4|0)|0;if(!d){d=12;break}e=e+1|0;b=c[k>>2]|0}if((d|0)==9){l6(f);a=0;break}else if((d|0)==12){l6(f);a=0;break}else if((d|0)==13){c[n+36>>2]=f;break}}else a=0;while(0);l=o;return a|0}function zH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+16|0;n=p;c[b>>2]=2;k=uH(a,b+8|0)|0;do if(((((((k|0)!=0?(m=uH(k,b+16|0)|0,(m|0)!=0):0)?(e=uH(m,b+24|0)|0,(e|0)!=0):0)?(f=uH(e,b+32|0)|0,(f|0)!=0):0)?(i=uH(f,b+40|0)|0,(i|0)!=0):0)?(j=uH(i,b+48|0)|0,(j|0)!=0):0)?(o=b+56|0,d=xH(j,o)|0,(d|0)!=0):0){e=c[o>>2]|0;i=m6(e,8)|0;f=0;while(1){if((f|0)>=(e|0)){d=15;break}d=uH(d,n)|0;if(!d){d=11;break}g[i+(f<<3)>>2]=+h[n>>3];d=sH(d,i+(f<<3)+4|0)|0;if(!d){d=14;break}f=f+1|0;e=c[o>>2]|0}if((d|0)==11){l6(i);a=0;break}else if((d|0)==14){l6(i);a=0;break}else if((d|0)==15){c[b+60>>2]=i;break}}else a=0;while(0);l=p;return a|0}function AH(a,b,c){a=a|0;b=b|0;c=c|0;return oH(a,b,c,0)|0}function BH(a){a=a|0;return AH(a,0,0)|0}function CH(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;e=c[a+12>>2]|0;if(a|0){f=c[a+8>>2]|0;g=a+4|0;h=(e|0)==0;b=0;while(1){if((b|0)>=(c[a>>2]|0))break;d=f+(S(c[g>>2]|0,b)|0)|0;if(!h)db[e&127](d);DH(d);b=b+1|0}l6(f);l6(a)}return}function DH(a){a=a|0;var b=0,d=0;b=a+8|0;d=b+4|0;switch(c[a>>2]|0){case 3:case 2:{l6(c[d>>2]|0);break}case 5:case 4:{l6(c[d>>2]|0);break}case 6:{l6(c[d>>2]|0);break}case 7:{l6(c[a+40>>2]|0);break}case 9:case 8:{l6(c[b>>2]|0);break}case 14:case 13:{EH(b);break}case 10:{l6(c[a+16>>2]|0);break}case 11:{l6(c[b>>2]|0);break}case 12:{l6(c[a+40>>2]|0);break}default:{}}return}function EH(a){a=a|0;var b=0,d=0,e=0;switch(c[a>>2]|0){case 1:{e=a+40|0;b=a+8+36|0;a=0;while(1){d=c[b>>2]|0;if((a|0)>=(c[e>>2]|0))break;l6(c[d+(a<<3)+4>>2]|0);a=a+1|0}l6(d);break}case 2:{e=a+56|0;d=a+60|0;a=0;while(1){b=c[d>>2]|0;if((a|0)>=(c[e>>2]|0))break;l6(c[b+(a<<3)+4>>2]|0);a=a+1|0}l6(b);break}default:{}}return}function FH(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;k=o+4|0;n=o;c[d>>2]=0;c[e>>2]=(uB(uC(b)|0)|0)!=0&1;f=c[47253]|0;a:do if(f|0?(h=OA(b,f)|0,i=a[h>>0]|0,i<<24>>24):0){f=20432;while(1){g=c[f>>2]|0;if(!g)break a;if(i<<24>>24==(a[g>>0]|0)?(f2(h,g)|0)==0:0)break;f=f+12|0}c[d>>2]=c[f+4>>2];c[e>>2]=c[f+8>>2]}while(0);f=c[47264]|0;if((f|0?(c[e>>2]|0)==1:0)?(j=OA(b,f)|0,a[j>>0]|0):0)GH(j,e);f=c[47265]|0;if((f|0?(c[d>>2]|0)==1:0)?(m=OA(b,f)|0,a[m>>0]|0):0)GH(m,d);if(a[(c[b+16>>2]|0)+153>>0]|0){j=b+-48|0;i=uC(c[((c[b>>2]&3|0)==2?b:j)+40>>2]|0)|0;m=c[b>>2]&3;FH(fB(i,c[((m|0)==2?b:j)+40>>2]|0,c[((m|0)==3?b:b+48|0)+40>>2]|0,0,0)|0,k,n);c[e>>2]=c[k>>2]|c[e>>2];c[d>>2]=c[n>>2]|c[d>>2]}l=o;return}function GH(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;m=o;k=o+4|0;j=0;e=0;a:while(1){c[d>>2]=e;f=(j|0)<4;g=(j|0)==3;h=(j|0)==0;while(1){if(!(f&(a[b>>0]|0)!=0))break a;c[k>>2]=0;i=HH(b,k)|0;e=c[k>>2]|0;if(!e){n=5;break a}b=(e|0)==8;if(!(g&b)){if(!(h&b)){b=e;break}if(a[i>>0]|0){b=8;break}}c[k>>2]=0;b=i}e=c[d>>2]|b<<(j<<3);j=j+1|0;b=i}if((n|0)==5){c[m>>2]=b;dA(0,99995,m)|0}l=o;return}function HH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;c[e>>2]=0;d=IH(a,20492,e)|0;if((d|0)==(a|0)){while(1){d=IH(a,20508,e)|0;if((a|0)==(d|0))break;else a=d}d=IH(a,20556,e)|0}a=c[e>>2]|0;if((a|0)!=0&(a&15|0)==0){a=a|1;c[e>>2]=a}c[b>>2]=c[b>>2]|a;l=f;return d|0}function IH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;while(1){e=c[b>>2]|0;if(!e)break;f=D3(e)|0;if(!(h2(a,e,f)|0)){g=4;break}b=b+8|0}if((g|0)==4){c[d>>2]=c[d>>2]|c[b+4>>2];a=a+f|0}return a|0}function JH(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,g=0,i=0;g=0;d=0.0;while(1){if((g|0)==4)break;f=b>>(g<<3)&15;e=1400;while(1){if(!(c[e+16>>2]|0))break;if((f|0)==(c[e>>2]|0)){i=6;break}e=e+24|0}if((i|0)==6){i=0;d=d+ +h[e+8>>3]}g=g+1|0}return +(d*10.0*+YO(a,c[47257]|0,1.0,0.0))}function KH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var i=0.0,j=0,k=0.0,m=0.0,n=0,o=0.0,p=0,q=0,r=0,s=0;s=l;l=l+96|0;n=s+80|0;r=s;m=f>4.0?f*.25*.35:.35;k=+h[d+8>>3];o=m*k;i=+h[d>>3];m=m*i;f=+h[b>>3];i=i+f;h[n>>3]=i;e=+h[b+8>>3];k=k+e;h[n+8>>3]=k;d=r+64|0;p=r+32|0;q=r+16|0;j=r+24|0;if(!(g&32)){c[d>>2]=c[n>>2];c[d+4>>2]=c[n+4>>2];c[d+8>>2]=c[n+8>>2];c[d+12>>2]=c[n+12>>2];c[r>>2]=c[n>>2];c[r+4>>2]=c[n+4>>2];c[r+8>>2]=c[n+8>>2];c[r+12>>2]=c[n+12>>2];h[q>>3]=o+i;h[j>>3]=k-m;c[p>>2]=c[b>>2];c[p+4>>2]=c[b+4>>2];c[p+8>>2]=c[b+8>>2];c[p+12>>2]=c[b+12>>2];f=i;e=k}else{c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];c[r>>2]=c[b>>2];c[r+4>>2]=c[b+4>>2];c[r+8>>2]=c[b+8>>2];c[r+12>>2]=c[b+12>>2];h[q>>3]=o+f;h[j>>3]=e-m;c[p>>2]=c[n>>2];c[p+4>>2]=c[n+4>>2];c[p+8>>2]=c[n+8>>2];c[p+12>>2]=c[n+12>>2]}h[r+48>>3]=f-o;h[r+56>>3]=m+e;d=g>>>4&1^1;do if(!(g&64))if(!(g&128)){lS(a,q,3,d);break}else{lS(a,p,3,d);break}else lS(a,r,3,d);while(0);l=s;return}function LH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var i=0.0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0,A=0,B=0.0,C=0,D=0,E=0;D=l;l=l+160|0;A=D+144|0;C=D;u=e*4.0;E=(g&32|0)!=0;z=E^1;u=!(u<f)|z?.45:f/u*.45;w=!(f>1.0)|z?0.0:(f+-1.0)*.05/e;y=+h[d+8>>3];v=-y;B=u*v;x=+h[d>>3];u=u*x;v=w*v;w=w*x;f=+h[b>>3];s=x+f;h[A>>3]=s;t=+h[b+8>>3];e=y+t;h[A+8>>3]=e;x=f+x*.5;y=y*.5+t;d=C+128|0;i=x-v;j=y-w;z=C+48|0;k=C+64|0;m=C+40|0;n=C+32|0;o=C+24|0;p=C+16|0;q=C+80|0;r=C+56|0;if(E){c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];c[C>>2]=c[b>>2];c[C+4>>2]=c[b+4>>2];c[C+8>>2]=c[b+8>>2];c[C+12>>2]=c[b+12>>2];h[p>>3]=s-B;h[o>>3]=e-u;h[n>>3]=i;h[m>>3]=j;h[z>>3]=s-v;h[r>>3]=e-w;c[k>>2]=c[A>>2];c[k+4>>2]=c[A+4>>2];c[k+8>>2]=c[A+8>>2];c[k+12>>2]=c[A+12>>2];h[q>>3]=v+s;i=w+e;f=s}else{c[d>>2]=c[A>>2];c[d+4>>2]=c[A+4>>2];c[d+8>>2]=c[A+8>>2];c[d+12>>2]=c[A+12>>2];c[C>>2]=c[A>>2];c[C+4>>2]=c[A+4>>2];c[C+8>>2]=c[A+8>>2];c[C+12>>2]=c[A+12>>2];h[p>>3]=f-B;h[o>>3]=t-u;h[n>>3]=i;h[m>>3]=j;h[z>>3]=f;h[r>>3]=t;c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];c[k+12>>2]=c[b+12>>2];h[q>>3]=f;i=t;e=t}h[C+88>>3]=i;h[C+96>>3]=v+x;h[C+104>>3]=w+y;h[C+112>>3]=B+f;h[C+120>>3]=u+e;do if(!(g&64))if(!(g&128)){lS(a,C,9,1);break}else{lS(a,z,6,1);break}else lS(a,C,6,1);while(0);l=D;return}function MH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var i=0.0,j=0.0,k=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0;q=l;l=l+64|0;p=q;t=+h[d+8>>3];s=+h[d>>3];k=+h[b>>3];e=s+k;m=+h[b+8>>3];f=t+m;i=k+s*.2;j=t*.2+m;k=k+s*.6;m=t*.6+m;h[p>>3]=i-t;h[p+8>>3]=s+j;n=p+16|0;h[n>>3]=t+i;o=p+24|0;h[o>>3]=j-s;h[p+32>>3]=t+k;h[p+40>>3]=m-s;h[p+48>>3]=k-t;h[p+56>>3]=s+m;if(!(g&64)){if(g&128|0){d=2;g=1;r=3}}else{d=3;g=0;r=3}if((r|0)==3){h[p+(g<<4)>>3]=i;h[p+(g<<4)+8>>3]=j;h[p+(d<<4)>>3]=k;h[p+(d<<4)+8>>3]=m}lS(a,p,4,1);c[p>>2]=c[b>>2];c[p+4>>2]=c[b+4>>2];c[p+8>>2]=c[b+8>>2];c[p+12>>2]=c[b+12>>2];h[n>>3]=e;h[o>>3]=f;oS(a,p,2);l=q;return}function NH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var i=0.0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0;o=l;l=l+64|0;n=o;j=+h[d+8>>3];r=j*-.4;i=+h[d>>3];q=i*.4;t=+h[b>>3];e=t+i*.8;s=+h[b+8>>3];f=j*.8+s;i=i+t;j=j+s;h[n>>3]=r+t;k=n+8|0;h[k>>3]=q+s;d=n+16|0;h[d>>3]=t-r;m=n+24|0;h[m>>3]=s-q;h[n+32>>3]=e-r;h[n+40>>3]=f-q;h[n+48>>3]=r+e;h[n+56>>3]=q+f;if(!(g&64)){if(g&128|0){c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];d=2;p=5}}else{c[n>>2]=c[b>>2];c[n+4>>2]=c[b+4>>2];c[n+8>>2]=c[b+8>>2];c[n+12>>2]=c[b+12>>2];d=3;p=5}if((p|0)==5){h[n+(d<<4)>>3]=e;h[n+(d<<4)+8>>3]=f}lS(a,n,4,g>>>4&1^1);h[n>>3]=e;h[k>>3]=f;h[n+16>>3]=i;h[m>>3]=j;oS(a,n,2);l=o;return}function OH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var i=0,j=0,k=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0;k=l;l=l+80|0;j=k;p=+h[d+8>>3];m=-p/3.0;r=+h[d>>3];f=r/3.0;q=+h[b>>3];n=q+r*.5;o=+h[b+8>>3];e=p*.5+o;i=j+64|0;h[j+64>>3]=r+q;h[j+72>>3]=p+o;c[j>>2]=c[i>>2];c[j+4>>2]=c[i+4>>2];c[j+8>>2]=c[i+8>>2];c[j+12>>2]=c[i+12>>2];h[j+16>>3]=m+n;h[j+24>>3]=f+e;i=j+32|0;c[i>>2]=c[b>>2];c[i+4>>2]=c[b+4>>2];c[i+8>>2]=c[b+8>>2];c[i+12>>2]=c[b+12>>2];h[j+48>>3]=n-m;h[j+56>>3]=e-f;d=g>>>4&1^1;do if(!(g&64))if(!(g&128)){lS(a,j,4,d);break}else{lS(a,j,3,d);break}else lS(a,i,3,d);while(0);l=k;return}function PH(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=+d;e=+e;f=f|0;var g=0,i=0,j=0.0;g=l;l=l+32|0;i=g;j=+h[c>>3];e=+h[c+8>>3];d=+G(+(j*j+e*e))*.5;j=j*.5+ +h[b>>3];h[i>>3]=j-d;e=e*.5+ +h[b+8>>3];h[i+8>>3]=e-d;h[i+16>>3]=d+j;h[i+24>>3]=d+e;kS(a,i,2,f>>>4&1^1);l=g;return}function QH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var i=0.0,j=0.0,k=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0;r=l;l=l+112|0;o=r+48|0;p=r+16|0;q=r;t=f>4.0?f*.5*.25:.5;s=+h[b>>3];m=+h[d>>3];f=+h[b+8>>3];e=+h[d+8>>3];k=t*e;t=t*m;c[p>>2]=c[b>>2];c[p+4>>2]=c[b+4>>2];c[p+8>>2]=c[b+8>>2];c[p+12>>2]=c[b+12>>2];h[p+16>>3]=s+m;h[p+24>>3]=f+e;h[o>>3]=t+(s-k);e=f+t+k;h[o+8>>3]=e;h[o+48>>3]=t+(s+k);f=f-t+k;h[o+56>>3]=f;m=k*-.95;i=t+(s+m);j=t*4.0/3.0;b=o+32|0;k=k*4.0/3.0;m=t+(s-m);d=o+16|0;n=o+24|0;if(!(g&32)){h[d>>3]=i-j;h[n>>3]=e-k;h[b>>3]=m-j;e=f-k}else{h[d>>3]=j+i;h[n>>3]=k+e;h[b>>3]=j+m;e=f+k}h[o+40>>3]=e;oS(a,p,2);if(!(g&64)){if(g&128|0)iP(q,o,3,.5,o,0)}else iP(q,o,3,.5,0,o);nS(a,o,4,0,0,0);l=r;return}function RH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var i=0;g=l;l=l+32|0;i=g;e=+h[b>>3]+ +h[d>>3];f=+h[b+8>>3]+ +h[d+8>>3];c[i>>2]=c[b>>2];c[i+4>>2]=c[b+4>>2];c[i+8>>2]=c[b+8>>2];c[i+12>>2]=c[b+12>>2];h[i+16>>3]=e;h[i+24>>3]=f;oS(a,i,2);l=g;return}function SH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0.0,j=0,k=0,m=0,n=0,o=0.0,p=0.0,q=0,r=0,s=0;n=l;l=l+80|0;j=n+72|0;k=n+8|0;m=n;i=+JH(a,g);i=i*i;h[m>>3]=i;c[f+12>>2]=g;g=f+32|0;a=e+3|0;f=b+(a<<4)|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];c[g+8>>2]=c[f+8>>2];c[g+12>>2]=c[f+12>>2];if((e|0)>(d|0)?(p=+h[b+(e<<4)>>3]-+h[f>>3],o=+h[b+(e<<4)+8>>3]-+h[b+(a<<4)+8>>3],p*p+o*o<i):0)e=e+-3|0;s=k+48|0;r=b+(e<<4)|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];q=k+32|0;a=b+(e+1<<4)|0;c[q>>2]=c[a>>2];c[q+4>>2]=c[a+4>>2];c[q+8>>2]=c[a+8>>2];c[q+12>>2]=c[a+12>>2];f=k+16|0;d=b+(e+2<<4)|0;c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];c[k>>2]=c[g>>2];c[k+4>>2]=c[g+4>>2];c[k+8>>2]=c[g+8>>2];c[k+12>>2]=c[g+12>>2];c[j>>2]=k;c[j+4>>2]=m;ZN(j,92,k,1);c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];c[r+8>>2]=c[s+8>>2];c[r+12>>2]=c[s+12>>2];c[a>>2]=c[q>>2];c[a+4>>2]=c[q+4>>2];c[a+8>>2]=c[q+8>>2];c[a+12>>2]=c[q+12>>2];c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];m=b+(e+3<<4)|0;c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];c[m+12>>2]=c[k+12>>2];l=n;return e|0}function TH(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0;f=c[a>>2]|0;e=+h[b>>3]-+h[f>>3];d=+h[b+8>>3]-+h[f+8>>3];return e*e+d*d<=+h[c[a+4>>2]>>3]|0}function UH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0.0,k=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0;o=l;l=l+80|0;k=o+72|0;m=o+8|0;n=o;j=+JH(a,g);j=j*j;h[n>>3]=j;c[f+8>>2]=g;f=f+16|0;a=b+(d<<4)|0;c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];if(!((e|0)>(d|0)?(i=d+3|0,q=+h[a>>3]-+h[b+(i<<4)>>3],p=+h[b+(d<<4)+8>>3]-+h[b+(i<<4)+8>>3],q*q+p*p<j):0))i=d;e=b+(i+3<<4)|0;c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];g=m+16|0;d=b+(i+2<<4)|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];c[g+8>>2]=c[d+8>>2];c[g+12>>2]=c[d+12>>2];r=m+32|0;a=b+(i+1<<4)|0;c[r>>2]=c[a>>2];c[r+4>>2]=c[a+4>>2];c[r+8>>2]=c[a+8>>2];c[r+12>>2]=c[a+12>>2];s=m+48|0;c[s>>2]=c[f>>2];c[s+4>>2]=c[f+4>>2];c[s+8>>2]=c[f+8>>2];c[s+12>>2]=c[f+12>>2];c[k>>2]=s;c[k+4>>2]=n;ZN(k,92,m,0);n=b+(i<<4)|0;c[n>>2]=c[s>>2];c[n+4>>2]=c[s+4>>2];c[n+8>>2]=c[s+8>>2];c[n+12>>2]=c[s+12>>2];c[a>>2]=c[r>>2];c[a+4>>2]=c[r+4>>2];c[a+8>>2]=c[r+8>>2];c[a+12>>2]=c[r+12>>2];c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];c[d+12>>2]=c[g+12>>2];c[e>>2]=c[m>>2];c[e+4>>2]=c[m+4>>2];c[e+8>>2]=c[m+8>>2];c[e+12>>2]=c[m+12>>2];l=o;return i|0}function VH(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,H=0;t=(g|0)!=0;p=(i|0)!=0;F=f+24|0;D=f+12|0;A=e+3|0;B=b+(A<<4)|0;x=e+1|0;E=f+16|0;A=b+(A<<4)+8|0;C=b+(x<<4)|0;z=f+32|0;v=b+(e<<4)|0;H=f+8|0;w=f+40|0;y=b+(e+2<<4)|0;x=b+(x<<4)+8|0;f=b+(e<<4)+8|0;if(!((e|0)==(d|0)&(t&p))){if(p){j=+JH(a,i);o=+h[v>>3];n=+h[f>>3];l=+h[B>>3];m=+h[A>>3];r=o-l;s=n-m;s=+G(+(r*r+s*s))*.9;j=j>=s?s:j;if(n==m){k=l+(o<l?-j:j);j=n}else{k=o;j=m+(n<m?-j:j)}h[C>>3]=o;h[x>>3]=n;h[B>>3]=k;h[A>>3]=j;c[y>>2]=c[B>>2];c[y+4>>2]=c[B+4>>2];c[y+8>>2]=c[B+8>>2];c[y+12>>2]=c[B+12>>2];c[D>>2]=i;h[z>>3]=l;h[w>>3]=m}if(t){l=+JH(a,g);f=b+(d<<4)|0;k=+h[f>>3];j=+h[b+(d<<4)+8>>3];D=d+3|0;n=+h[b+(D<<4)>>3];o=+h[b+(D<<4)+8>>3];r=k-n;s=j-o;s=+G(+(r*r+s*s))*.9;l=l>=s?s:l;if(j==o){m=k+(k<n?l:-l);l=j}else{m=k;l=j+(j<o?l:-l)}D=d+1|0;u=b+(D<<4)|0;h[u>>3]=m;h[b+(D<<4)+8>>3]=l;c[f>>2]=c[u>>2];c[f+4>>2]=c[u+4>>2];c[f+8>>2]=c[u+8>>2];c[f+12>>2]=c[u+12>>2];u=d+2|0;h[b+(u<<4)>>3]=n;h[b+(u<<4)+8>>3]=o;u=16}}else{s=+h[v>>3];r=+h[f>>3];k=+h[B>>3];j=+h[A>>3];l=+JH(a,g);q=+JH(a,i);o=s-k;m=r-j;m=+G(+(o*o+m*m));d=!(l+q>=m);m=m/3.0;l=d?l:m;m=d?q:m;if(r==j){d=s<k;o=k+(d?-m:m);q=s+(d?l:-l);n=r;l=r}else{d=r<j;o=s;q=s;n=r+(d?l:-l);l=j+(d?-m:m)}h[C>>3]=q;h[x>>3]=n;c[v>>2]=c[C>>2];c[v+4>>2]=c[C+4>>2];c[v+8>>2]=c[C+8>>2];c[v+12>>2]=c[C+12>>2];h[B>>3]=o;h[A>>3]=l;c[y>>2]=c[B>>2];c[y+4>>2]=c[B+4>>2];c[y+8>>2]=c[B+8>>2];c[y+12>>2]=c[B+12>>2];c[D>>2]=i;h[z>>3]=s;h[w>>3]=r;u=16}if((u|0)==16){c[H>>2]=g;h[E>>3]=k;h[F>>3]=j}return}function WH(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;m=+h[b>>3];k=+h[c>>3]-m;o=+h[b+8>>3];j=+h[c+8>>3]-o;l=d*10.0/(+G(+(j*j+k*k))+.0001);k=(k+(k>=0.0?.0001:-.0001))*l;j=l*(j+(j>=0.0?.0001:-.0001));l=k*.5;n=j*.5;i=m-n;f=o-l;n=m+n;l=o+l;o=k+i;m=f+j;k=k+n;j=l+j;g=o>k?o:k;g=n>g?n:g;d=m>j?m:j;d=l>d?l:d;k=o<k?o:k;k=n<k?n:k;j=m<j?m:j;j=l<j?l:j;h[a>>3]=i<k?i:k;h[a+8>>3]=f<j?f:j;h[a+16>>3]=i>g?i:g;h[a+24>>3]=f>d?f:d;return}function XH(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;g=+g;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0;q=l;l=l+48|0;m=q+32|0;k=q+16|0;p=q;n=(c[a+16>>2]|0)+12|0;o=c[n>>2]|0;c[n>>2]=b;jS(a,c[(c[a>>2]|0)+336>>2]|0);sS(a,g);t=+h[e>>3]-+h[d>>3];b=e+8|0;r=+h[b>>3]-+h[d+8>>3];s=10.0/(+G(+(r*r+t*t))+.0001);h[e>>3]=(t+(t>=0.0?.0001:-.0001))*s;h[b>>3]=s*(r+(r>=0.0?.0001:-.0001));b=0;while(1){if((b|0)>=4)break;j=i>>(b<<3)&255;if(!j)break;c[k>>2]=c[d>>2];c[k+4>>2]=c[d+4>>2];c[k+8>>2]=c[d+8>>2];c[k+12>>2]=c[d+12>>2];c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];YH(p,a,k,m,f,g,j);c[d>>2]=c[p>>2];c[d+4>>2]=c[p+4>>2];c[d+8>>2]=c[p+8>>2];c[d+12>>2]=c[p+12>>2];b=b+1|0}c[n>>2]=o;l=q;return}function YH(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;g=+g;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0;q=l;l=l+32|0;m=q+16|0;k=q;n=i&15;j=1400;while(1){o=c[j>>2]|0;if(!o)break;if((n|0)==(o|0)){p=4;break}j=j+24|0}if((p|0)==4){r=+h[j+8>>3]*f;h[e>>3]=+h[e>>3]*r;o=e+8|0;h[o>>3]=r*+h[o>>3];p=c[j+16>>2]|0;c[k>>2]=c[d>>2];c[k+4>>2]=c[d+4>>2];c[k+8>>2]=c[d+8>>2];c[k+12>>2]=c[d+12>>2];c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];nb[p&15](b,k,m,f,g,i);h[d>>3]=+h[d>>3]+ +h[e>>3];p=d+8|0;h[p>>3]=+h[p>>3]+ +h[o>>3]};c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];l=q;return}function ZH(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;g=i+8|0;f=i;d=NA(b,100097)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0){e=d;h=5}else{d=NA(b,100109)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0){e=d;h=5}else d=0}if((h|0)==5){d=AH(e,0,120)|0;if(!d){c[f>>2]=HB(b)|0;dA(0,100116,f)|0;c[g>>2]=e;dA(3,100169,g)|0}}l=i;return d|0}function _H(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0,k=0;k=l;l=l+16|0;j=HK(304)|0;if(!j)dA(1,100177,k)|0;b=a+16|0;a=c[b>>2]|0;c[j>>2]=a;c[b>>2]=j;b=j+152|0;d=j+144|0;e=j+148|0;if(!a){c[d>>2]=3;c[e>>2]=0;h[b>>3]=1.0}else{f=j+16|0;g=a+16|0;i=f+40|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(i|0));f=j+56|0;g=a+56|0;i=f+40|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(i|0));c[d>>2]=c[a+144>>2];c[e>>2]=c[a+148>>2];h[b>>3]=+h[a+152>>3];c[j+136>>2]=c[a+136>>2];f=j+96|0;g=a+96|0;i=f+40|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(i|0))}l=k;return j|0}function $H(a){a=a|0;var b=0;a=a+16|0;b=c[a>>2]|0;if(!b)Aa(100203,100207,117,100214);else{l6(c[b+212>>2]|0);l6(c[b+208>>2]|0);l6(c[b+216>>2]|0);l6(c[b+220>>2]|0);l6(c[b+224>>2]|0);l6(c[b+228>>2]|0);l6(c[b+232>>2]|0);l6(c[b+236>>2]|0);l6(c[b+240>>2]|0);l6(c[b+244>>2]|0);l6(c[b+248>>2]|0);l6(c[b+252>>2]|0);l6(c[b+256>>2]|0);l6(c[b+272>>2]|0);l6(c[b+284>>2]|0);l6(c[b+280>>2]|0);c[a>>2]=c[b>>2];l6(b);return}}function aI(d,e,f,g,h,i,j){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0;m=c[d+16>>2]|0;l=c[d+152>>2]|0;k=m+192|0;if((e|0)!=0&(l&32768|0)!=0)c[k>>2]=e;if(((l&65536|0)!=0?(c[m+212>>2]=CK(i,j)|0,(f|0)!=0):0)?(a[f>>0]|0)!=0:0){c[m+208>>2]=CK(f,j)|0;d=1}else d=0;do if(l&4194304){if(g|0?a[g>>0]|0:0){c[m+228>>2]=CK(g,j)|0;d=m+260|0;b[d>>1]=b[d>>1]|1;d=1;break}e=c[k>>2]|0;if(e){c[m+228>>2]=Y3(e)|0;d=1}}while(0);if((h|0)!=0&(l&8388608|0)!=0?(a[h>>0]|0)!=0:0){c[m+244>>2]=CK(h,j)|0;d=1}return d|0}function bI(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=l;l=l+80|0;i=j;h=j+8|0;g=c[(c[b>>2]|0)+168>>2]|0;f=c[(c[(c[g+16>>2]|0)+8>>2]|0)+92>>2]|0;cI(b,e);b=NA(d,141363)|0;if((b|0)!=0?(a[b>>0]|0)!=0:0){kA(e,b)|0;f=e+4|0;b=c[f>>2]|0;if(b>>>0>=(c[e+8>>2]|0)>>>0){iA(e,1)|0;b=c[f>>2]|0}a[b>>0]=0;b=c[e>>2]|0;c[f>>2]=b}else{if((g|0)!=(d|0)&(f|0)!=0){kA(e,f)|0;f=e+4|0;b=c[f>>2]|0;if(b>>>0>=(c[e+8>>2]|0)>>>0){iA(e,1)|0;b=c[f>>2]|0}c[f>>2]=b+1;a[b>>0]=95}switch(FC(d)|0){case 0:{f=(g|0)==(d|0)?111795:100228;b=(c[d>>2]|0)>>>4;break}case 1:{f=111782;b=(c[d>>2]|0)>>>4;break}case 2:{f=111751;b=(c[d>>2]|0)>>>4;break}default:{f=0;b=0}}kA(e,f)|0;c[i>>2]=b;i2(h,100234,i)|0;kA(e,h)|0;f=e+4|0;b=c[f>>2]|0;if(b>>>0>=(c[e+8>>2]|0)>>>0){iA(e,1)|0;b=c[f>>2]|0}a[b>>0]=0;b=c[e>>2]|0;c[f>>2]=b}l=j;return b|0}function cI(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+144|0;h=i;g=i+8|0;e=c[b+160>>2]|0;if((e|0)>1?c[b+152>>2]&64|0:0){kA(d,c[(c[(c[b>>2]|0)+308>>2]|0)+(e<<2)>>2]|0)|0;f=d+4|0;e=c[f>>2]|0;if(e>>>0>=(c[d+8>>2]|0)>>>0){iA(d,1)|0;e=c[f>>2]|0}c[f>>2]=e+1;a[e>>0]=95}f=c[b+196>>2]|0;e=c[b+200>>2]|0;if((f|0)>0|(e|0)>0){c[h>>2]=f;c[h+4>>2]=e;i2(g,100238,h)|0;kA(d,g)|0}l=i;return}function dI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,i=0.0,j=0,k=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0.0,s=0;s=l;l=l+48|0;p=s+16|0;f=s+32|0;q=s;r=+h[(c[a+16>>2]|0)+152>>3];o=eI(d,0,f)|0;if((o+-1|0)>>>0>=2){e=+h[b+16>>3];k=(+h[b>>3]+e)*.5;h[q>>3]=k;i=+h[b+24>>3];m=(+h[b+8>>3]+i)*.5;h[q+8>>3]=m;k=e-k;m=i-m;n=r>.5;if(n)sS(a,.5);j=c[f>>2]|0;i=0.0;f=c[j+8>>2]|0;while(1){d=c[f>>2]|0;if(!d)break;b=f+4|0;if(+g[b>>2]==0.0)e=i;else{hS(a,d);if(!(c[f+12>>2]|0))e=6.283185307179586;else e=i+ +g[b>>2]*6.283185307179586;c[p>>2]=c[q>>2];c[p+4>>2]=c[q+4>>2];c[p+8>>2]=c[q+8>>2];c[p+12>>2]=c[q+12>>2];b=GT(p,k,m,i,e)|0;nS(a,c[b>>2]|0,c[b+4>>2]|0,0,0,1);CY(b)}i=e;f=f+12|0}if(n)sS(a,r);fI(j)}l=s;return o|0}function eI(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0.0,k=0.0,m=0.0,n=0,o=0,p=0,q=0;q=l;l=l+16|0;n=q+8|0;i=q;p=HK(12)|0;h=Y3(b)|0;a:do if(!d){d=1;f=h;while(1){switch(a[f>>0]|0){case 0:break a;case 58:{d=d+1|0;break}default:{}}f=f+1|0}}while(0);c[p+4>>2]=h;o=HK((d*12|0)+12|0)|0;c[p+8>>2]=o;j=1.0;f=0;d=0;while(1){h=i6(h,108285)|0;if(!h){h=20;break}k=+gI(h);if(!(k>=0.0)){h=17;break}m=k-j;if(m>0.0)if((c[5167]|0)!=0?!(m<1.0e-05&m>-1.0e-05):0){c[i>>2]=b;dA(0,100249,i)|0;c[5167]=0;k=j;d=3}else k=j;j=j-k;if(k>0.0)a[o+(f*12|0)+8>>0]=1;if(a[h>>0]|0)c[o+(f*12|0)>>2]=h;g[o+(f*12|0)+4>>2]=k;if(j<1.0e-05&j>-1.0e-05){h=30;break}else{f=f+1|0;h=0}}b:do if((h|0)==17){if(!(c[5167]|0))d=1;else{c[n>>2]=b;dA(1,100284,n)|0;c[5167]=0;d=2}fI(p)}else if((h|0)==20){b=f+-1|0;if(j>0.0){h=0;i=0;while(1){if((h|0)>=(f|0))break;n=(+g[o+(h*12|0)+4>>2]==0.0&1)+i|0;h=h+1|0;i=n}if((i|0)<=0){f=o+(b*12|0)+4|0;g[f>>2]=j+ +g[f>>2];f=b;h=30;break}j=j/+(i|0);h=0;while(1){if((h|0)>=(f|0)){f=b;h=30;break b}i=o+(h*12|0)+4|0;if(+g[i>>2]==0.0)g[i>>2]=j;h=h+1|0}}else{f=b;h=30}}while(0);if((h|0)==30){while(1){if((f|0)<=-1)break;if(+g[o+(f*12|0)+4>>2]>0.0)break;f=f+-1|0}n=f+1|0;c[o+(n*12|0)>>2]=0;c[p>>2]=n;c[e>>2]=p}l=q;return d|0}function fI(a){a=a|0;l6(c[a+4>>2]|0);l6(c[a+8>>2]|0);l6(a);return}function gI(b){b=b|0;var d=0.0,e=0,f=0,g=0;f=l;l=l+16|0;e=f;b=F3(b,59)|0;if(!b)d=0.0;else{g=b+1|0;a[b>>0]=0;d=+b6(g,e);d=(d>=0.0?(c[e>>2]|0)!=(g|0):0)?d:-1.0}l=f;return +d}function hI(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,i=0,j=0,k=0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0;u=l;l=l+80|0;o=u+64|0;s=u;t=+h[(c[a+16>>2]|0)+152>>3];p=eI(d,0,o)|0;if((p+-1|0)>>>0>=2){q=s+16|0;d=s+48|0;i=b+48|0;r=s+32|0;j=b+32|0;k=b+16|0;if(!e){c[s>>2]=c[b>>2];c[s+4>>2]=c[b+4>>2];c[s+8>>2]=c[b+8>>2];c[s+12>>2]=c[b+12>>2];c[q>>2]=c[k>>2];c[q+4>>2]=c[k+4>>2];c[q+8>>2]=c[k+8>>2];c[q+12>>2]=c[k+12>>2];c[r>>2]=c[j>>2];c[r+4>>2]=c[j+4>>2];c[r+8>>2]=c[j+8>>2];c[r+12>>2]=c[j+12>>2];c[d>>2]=c[i>>2];c[d+4>>2]=c[i+4>>2];c[d+8>>2]=c[i+8>>2];c[d+12>>2]=c[i+12>>2]}else{c[s>>2]=c[j>>2];c[s+4>>2]=c[j+4>>2];c[s+8>>2]=c[j+8>>2];c[s+12>>2]=c[j+12>>2];c[q>>2]=c[i>>2];c[q+4>>2]=c[i+4>>2];c[q+8>>2]=c[i+8>>2];c[q+12>>2]=c[i+12>>2];c[r>>2]=c[b>>2];c[r+4>>2]=c[b+4>>2];c[r+8>>2]=c[b+8>>2];c[r+12>>2]=c[b+12>>2];c[d>>2]=c[k>>2];c[d+4>>2]=c[k+4>>2];c[d+8>>2]=c[k+8>>2];c[d+12>>2]=c[k+12>>2]}m=+h[q>>3];f=+h[s>>3];n=m-f;h[r>>3]=f;h[q>>3]=f;e=t>.5;if(e)sS(a,.5);k=c[o>>2]|0;b=s+48|0;j=c[k+8>>2]|0;while(1){d=c[j>>2]|0;if(!d)break;i=j+4|0;if(!(+g[i>>2]==0.0)){hS(a,d);if(!(c[j+12>>2]|0))f=m;else f=+h[s>>3]+n*+g[i>>2];h[r>>3]=f;h[q>>3]=f;lS(a,s,4,1);f=+h[q>>3];h[b>>3]=f;h[s>>3]=f}j=j+12|0}if(e)sS(a,t);fI(k)}l=u;return p|0}function iI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[a+16>>2]|0;e=c[a+152>>2]|0;if(e&4259840|0){f=e&131072;g=f>>>16^2;c[d+264>>2]=g;h=d+268|0;c[h>>2]=g+2;g=d+272|0;l6(c[g>>2]|0);d=HK(c[h>>2]<<4)|0;c[g>>2]=d;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];g=d+16|0;b=b+16|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];if(!(e&8192))LR(a,d,d,2)|0;if(!f)hK(d)}return}function jI(a,b){a=a|0;b=b|0;var c=0,d=0.0,e=0,f=0.0,g=0.0,i=0.0,j=0,k=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+144|0;c=r+80|0;e=r+16|0;j=r;k=+h[b>>3];o=a+16|0;m=+h[o>>3];p=a+24|0;n=a+8|0;if(!(((((((((!(k>m)?(d=+h[a>>3],!(k<d)):0)?(f=+h[b+8>>3],g=+h[p>>3],!(f>g)):0)?(i=+h[n>>3],!(f<i)):0)?(k=+h[b+16>>3],!(k>m|k<d)):0)?(k=+h[b+24>>3],!(k>g|k<i)):0)?(k=+h[b+32>>3],!(k>m|k<d)):0)?(k=+h[b+40>>3],!(k>g|k<i)):0)?(k=+h[b+48>>3],!(k>m|k<d)):0)?(m=+h[b+56>>3],!(m>g|m<i)):0))q=11;a:do if((q|0)==11){if(!(kI(b)|0)){iP(j,b,3,.5,c,e);jI(a,c);jI(a,e);break}else e=0;while(1){if((e|0)==4)break a;d=+h[b+(e<<4)>>3];if(!(d>+h[o>>3])){if(d<+h[a>>3]){c=a;q=15}}else{c=o;q=15}if((q|0)==15){q=0;h[c>>3]=d}d=+h[b+(e<<4)+8>>3];if(!(d>+h[p>>3])){if(d<+h[n>>3]){c=a;q=18}}else{c=o;q=18}if((q|0)==18){q=0;h[c+8>>3]=d}e=e+1|0}}while(0);l=r;return}function kI(a){a=a|0;var b=0,d=0,e=0,f=0,g=0.0,h=0,i=0;b=l;l=l+48|0;d=b+32|0;e=b+16|0;f=b;i=a+48|0;h=a+16|0;c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[e>>2]=c[i>>2];c[e+4>>2]=c[i+4>>2];c[e+8>>2]=c[i+8>>2];c[e+12>>2]=c[i+12>>2];c[d>>2]=c[h>>2];c[d+4>>2]=c[h+4>>2];c[d+8>>2]=c[h+8>>2];c[d+12>>2]=c[h+12>>2];g=+mK(f,e,d);h=a+32|0;c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[e>>2]=c[i>>2];c[e+4>>2]=c[i+4>>2];c[e+8>>2]=c[i+8>>2];c[e+12>>2]=c[i+12>>2];c[d>>2]=c[h>>2];c[d+4>>2]=c[h+4>>2];c[d+8>>2]=c[h+8>>2];c[d+12>>2]=c[h+12>>2];a=g<4.0&+mK(f,e,d)<4.0&1;l=b;return a|0}function lI(b,d){b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0.0,I=0.0,J=0.0,K=0.0,L=0,M=0;G=l;l=l+272|0;x=G+256|0;y=G+224|0;z=G+192|0;A=G+160|0;B=G+64|0;C=G;D=G+128|0;E=G+96|0;F=G+32|0;w=c[d+16>>2]|0;v=c[w+144>>2]|0;u=w+16|0;c[A>>2]=c[u>>2];c[A+4>>2]=c[u+4>>2];c[A+8>>2]=c[u+8>>2];c[A+12>>2]=c[u+12>>2];c[A+16>>2]=c[u+16>>2];c[A+20>>2]=c[u+20>>2];c[A+24>>2]=c[u+24>>2];c[A+28>>2]=c[u+28>>2];w=c[(c[w+8>>2]|0)+88>>2]|0;c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;c[C+12>>2]=0;c[C+16>>2]=0;c[C+20>>2]=0;c[C+24>>2]=0;c[C+28>>2]=0;if(!w){c[b>>2]=c[A>>2];c[b+4>>2]=c[A+4>>2];c[b+8>>2]=c[A+8>>2];c[b+12>>2]=c[A+12>>2];c[b+16>>2]=c[A+16>>2];c[b+20>>2]=c[A+20>>2];c[b+24>>2]=c[A+24>>2];c[b+28>>2]=c[A+28>>2]}else{d=A+16|0;if(+h[A>>3]==+h[d>>3]?(e=A+8|0,f=A+24|0,+h[e>>3]==+h[f>>3]):0){h[e>>3]=1797693134862315708145274.0e284;h[A>>3]=1797693134862315708145274.0e284;h[f>>3]=-1797693134862315708145274.0e284;h[d>>3]=-1797693134862315708145274.0e284}n=y+8|0;o=y+16|0;p=y+24|0;q=B+16|0;r=B+24|0;s=v+144|0;t=z+16|0;u=w+12|0;d=0;k=c[w+8>>2]|0;e=0;g=0.0;m=0;while(1){if((m|0)>=(c[w>>2]|0))break;c[B>>2]=c[C>>2];c[B+4>>2]=c[C+4>>2];c[B+8>>2]=c[C+8>>2];c[B+12>>2]=c[C+12>>2];c[B+16>>2]=c[C+16>>2];c[B+20>>2]=c[C+20>>2];c[B+24>>2]=c[C+24>>2];c[B+28>>2]=c[C+28>>2];j=k+8|0;f=k+80|0;i=j+4|0;switch(c[k>>2]|0){case 1:case 0:{K=+h[j>>3];J=+h[k+24>>3];h[y>>3]=K-J;I=+h[k+16>>3];H=+h[k+32>>3];h[n>>3]=I-H;h[o>>3]=K+J;h[p>>3]=I+H;c[f>>2]=c[y>>2];c[f+4>>2]=c[y+4>>2];c[f+8>>2]=c[y+8>>2];c[f+12>>2]=c[y+12>>2];j=k+96|0;c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];c[j+12>>2]=c[o+12>>2];c[x>>2]=c[y>>2];c[x+4>>2]=c[y+4>>2];c[x+8>>2]=c[y+8>>2];c[x+12>>2]=c[y+12>>2];mI(A,x);c[x>>2]=c[o>>2];c[x+4>>2]=c[o+4>>2];c[x+8>>2]=c[o+8>>2];c[x+12>>2]=c[o+12>>2];mI(A,x);break}case 3:case 2:{nI(D,c[i>>2]|0,c[j>>2]|0,A);c[f>>2]=c[D>>2];c[f+4>>2]=c[D+4>>2];c[f+8>>2]=c[D+8>>2];c[f+12>>2]=c[D+12>>2];c[f+16>>2]=c[D+16>>2];c[f+20>>2]=c[D+20>>2];c[f+24>>2]=c[D+24>>2];c[f+28>>2]=c[D+28>>2];break}case 5:case 4:{nI(E,c[i>>2]|0,c[j>>2]|0,A);c[f>>2]=c[E>>2];c[f+4>>2]=c[E+4>>2];c[f+8>>2]=c[E+8>>2];c[f+12>>2]=c[E+12>>2];c[f+16>>2]=c[E+16>>2];c[f+20>>2]=c[E+20>>2];c[f+24>>2]=c[E+24>>2];c[f+28>>2]=c[E+28>>2];break}case 6:{nI(F,c[i>>2]|0,c[j>>2]|0,A);c[f>>2]=c[F>>2];c[f+4>>2]=c[F+4>>2];c[f+8>>2]=c[F+8>>2];c[f+12>>2]=c[F+12>>2];c[f+16>>2]=c[F+16>>2];c[f+20>>2]=c[F+20>>2];c[f+24>>2]=c[F+24>>2];c[f+28>>2]=c[F+28>>2];break}case 7:{i=k+112|0;c[i>>2]=HK(56)|0;L=Y3(c[k+40>>2]|0)|0;M=c[i>>2]|0;c[M>>2]=L;a[M+48>>0]=a[100330+(c[k+24>>2]|0)>>0]|0;c[B>>2]=e;h[q>>3]=g;c[r>>2]=c[r>>2]&-128|d&127;M=c[s>>2]|0;M=eb[c[M>>2]&63](M,B,1)|0;L=c[i>>2]|0;c[L+4>>2]=M;JO(x,v,L);oI(z,+h[j>>3],+h[k+16>>3],c[i>>2]|0);c[f>>2]=c[z>>2];c[f+4>>2]=c[z+4>>2];c[f+8>>2]=c[z+8>>2];c[f+12>>2]=c[z+12>>2];c[f+16>>2]=c[z+16>>2];c[f+20>>2]=c[z+20>>2];c[f+24>>2]=c[z+24>>2];c[f+28>>2]=c[z+28>>2];c[x>>2]=c[z>>2];c[x+4>>2]=c[z+4>>2];c[x+8>>2]=c[z+8>>2];c[x+12>>2]=c[z+12>>2];mI(A,x);c[x>>2]=c[t>>2];c[x+4>>2]=c[t+4>>2];c[x+8>>2]=c[t+8>>2];c[x+12>>2]=c[t+12>>2];mI(A,x);if(!(c[u>>2]|0))c[u>>2]=109;break}case 10:{e=c[k+16>>2]|0;g=+h[j>>3];break}case 15:{d=c[j>>2]|0;break}default:{}}k=k+120|0;m=m+1|0}c[b>>2]=c[A>>2];c[b+4>>2]=c[A+4>>2];c[b+8>>2]=c[A+8>>2];c[b+12>>2]=c[A+12>>2];c[b+16>>2]=c[A+16>>2];c[b+20>>2]=c[A+20>>2];c[b+24>>2]=c[A+24>>2];c[b+28>>2]=c[A+28>>2]}l=G;return}function mI(a,b){a=a|0;b=b|0;var c=0.0,d=0;c=+h[b>>3];d=a+16|0;if(c>+h[d>>3])h[d>>3]=c;if(c<+h[a>>3])h[a>>3]=c;c=+h[b+8>>3];b=a+24|0;if(c>+h[b>>3])h[b>>3]=c;b=a+8|0;if(c<+h[b>>3])h[b>>3]=c;return}function nI(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+48|0;k=r+32|0;n=r;f=+h[b>>3];o=n+16|0;h[o>>3]=f;h[n>>3]=f;f=+h[b+8>>3];p=n+24|0;h[p>>3]=f;m=n+8|0;h[m>>3]=f;j=1;while(1){if((j|0)>=(d|0))break;i=b+24|0;f=+h[i>>3];if(!(f<+h[n>>3])){if(f>+h[o>>3]){g=o;q=5}}else{g=n;q=5}if((q|0)==5){q=0;h[g>>3]=f}f=+h[b+32>>3];if(!(f<+h[m>>3])){if(f>+h[p>>3]){b=o;q=8}}else{b=n;q=8}if((q|0)==8){q=0;h[b+8>>3]=f}j=j+1|0;b=i}c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];c[k+12>>2]=c[n+12>>2];mI(e,k);c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];c[k+12>>2]=c[o+12>>2];mI(e,k);c[a>>2]=c[n>>2];c[a+4>>2]=c[n+4>>2];c[a+8>>2]=c[n+8>>2];c[a+12>>2]=c[n+12>>2];c[a+16>>2]=c[n+16>>2];c[a+20>>2]=c[n+20>>2];c[a+24>>2]=c[n+24>>2];c[a+28>>2]=c[n+28>>2];l=r;return}function oI(b,c,d,e){b=b|0;c=+c;d=+d;e=e|0;var f=0.0,g=0,i=0,j=0,k=0.0,m=0,n=0;n=l;l=l+16|0;i=n+8|0;j=n;f=+h[e+32>>3];k=+h[e+40>>3];switch(a[e+48>>0]|0){case 108:{h[i>>3]=c;f=f+c;g=j;m=5;break}case 110:{f=f*.5;h[i>>3]=c-f;f=f+c;g=j;m=5;break}case 114:{h[j>>3]=c;f=c-f;g=i;m=5;break}default:{c=0.0;f=0.0}}if((m|0)==5){h[g>>3]=f;c=+h[i>>3];f=+h[j>>3]}d=+h[e+16>>3]+d;h[b>>3]=c;h[b+8>>3]=d-k;h[b+16>>3]=f;h[b+24>>3]=d;l=n;return}function pI(a){a=a|0;if((c[a>>2]|0)==7)zK(c[a+112>>2]|0,1);return}function qI(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0.0,i=0.0,j=0,k=0,m=0,n=0.0,o=0,p=0;m=l;l=l+16|0;k=m;j=c[b+152>>2]|0;g=+h[b+352>>3];n=+h[b+432>>3];f=g*n/72.0;h[b+488>>3]=f;i=+h[b+440>>3];g=g*i/72.0;h[b+496>>3]=g;h[b+520>>3]=n/72.0;i=i/72.0;e=b+528|0;h[e>>3]=i;if(c[47187]|j&4096|0)h[e>>3]=-i;p=(c[b+360>>2]|0)==0;o=b+376|0;n=+((c[b+452>>2]|0)>>>0);e=b+368|0;h[(p?e:o)>>3]=+((c[b+448>>2]|0)>>>0)/(p?f:g);h[(p?o:e)>>3]=n/(p?g:f);pS(b,_O(d,DA(d,0,101823,0)|0,195341)|0);c[b+160>>2]=0;rI(b,d);if(j&2|0)sI(b,d);e=gC(d)|0;while(1){if(!e)break;a[(c[e+16>>2]|0)+116>>0]=0;e=hC(d,e)|0}tI(b,k);while(1){if(!((uI(b)|0)<<24>>24))break;if((vI(b)|0)>1)QR(b);wI(b);while(1){if(!((xI(b)|0)<<24>>24))break;yI(b,d);zI(b)}if((vI(b)|0)>1)RR(b);AI(b,k)}BI(b);l=m;return}function rI(a,b){a=a|0;b=b|0;var d=0;d=_H(a)|0;c[d+4>>2]=0;c[d+8>>2]=b;c[d+12>>2]=0;AJ(a,c[(c[b+16>>2]|0)+12>>2]|0,b);MR(a,b);return}function sI(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;hS(b,135101);d=NA(c,141280)|0;if(d|0?a[d>>0]|0:0)hS(b,d);d=NA(c,101747)|0;if(d|0?a[d>>0]|0:0)fS(b,d);MJ(b,c);g=gC(c)|0;while(1){if(!g)break;d=NA(g,141126)|0;if(d|0?a[d>>0]|0:0)fS(b,d);d=NA(g,138032)|0;if(d|0?a[d>>0]|0:0)hS(b,d);d=NA(g,101719)|0;do if(d|0?a[d>>0]|0:0){if(!(F3(d,58)|0)){fS(b,d);break}e=Y3(d)|0;d=e;while(1){d=i6(d,108285)|0;if(!d)break;if(!(a[d>>0]|0)){d=0;continue}fS(b,d);d=0}l6(e)}while(0);d=NA(g,101747)|0;if(d|0?a[d>>0]|0:0)fS(b,d);f=UA(c,g)|0;while(1){if(!f)break;d=NA(f,141126)|0;do if(d|0?a[d>>0]|0:0){if(!(F3(d,58)|0)){fS(b,d);break}e=Y3(d)|0;d=e;while(1){d=i6(d,108285)|0;if(!d)break;if(!(a[d>>0]|0)){d=0;continue}fS(b,d);d=0}l6(e)}while(0);d=NA(f,101747)|0;if(d|0?a[d>>0]|0:0)fS(b,d);f=WA(c,f)|0}g=hC(c,g)|0}return}function tI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;e=m+8|0;j=m;h=c[a>>2]|0;d=c[h+312>>2]|0;g=a+156|0;c[g>>2]=d;h=c[h+316>>2]|0;i=a+152|0;f=a+52|0;k=a+160|0;if(!h)if((d|0)>1?(c[i>>2]&64|0)==0:0){c[e>>2]=c[f>>2];dA(0,100868,e)|0;c[g>>2]=1;d=0;a=1}else{d=0;a=1}else{a=h+4|0;if((c[h>>2]|0)>1?(c[i>>2]&64|0)==0:0){c[j>>2]=c[f>>2];dA(0,100868,j)|0;c[h+8>>2]=(c[g>>2]|0)+1}d=h+8|0;a=c[a>>2]|0}c[k>>2]=a;c[b>>2]=d;l=m;return}function uI(a){a=a|0;return (c[a+160>>2]|0)<=(c[a+156>>2]|0)|0}function vI(a){a=a|0;var b=0;b=c[(c[a>>2]|0)+316>>2]|0;return c[((b|0)==0?a+156|0:b)>>2]|0}function wI(a){a=a|0;var b=0,d=0;d=a+172|0;b=c[d+4>>2]|0;a=a+196|0;c[a>>2]=c[d>>2];c[a+4>>2]=b;return}function xI(a){a=a|0;var b=0,d=0;d=c[a+196>>2]|0;if(((d|0)>-1?(d|0)<(c[a+164>>2]|0):0)?(b=c[a+200>>2]|0,(b|0)>-1):0)a=(b|0)<(c[a+168>>2]|0)&1;else a=0;return a|0}function yI(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;q=l;l=l+176|0;m=q;f=q+48|0;n=q+32|0;o=c[d+16>>2]|0;p=c[d+152>>2]|0;if((c[d+160>>2]|0)<=1?(c[d+196>>2]|0)<=0:0)h=0;else{hA(n,128,f);g=o+212|0;h=c[g>>2]|0;cI(d,n);kA(n,h)|0;i=n+4|0;f=c[i>>2]|0;if(f>>>0>=(c[n+8>>2]|0)>>>0){iA(n,1)|0;f=c[i>>2]|0}a[f>>0]=0;j=c[n>>2]|0;c[i>>2]=j;c[g>>2]=j}FT(NA(e,100333)|0);DI(d);OR(d);fS(d,137615);hS(d,135101);i=o+208|0;j=o+260|0;do if(p&4259840|0){if((c[i>>2]|0)==0?(b[j>>1]&1)==0:0)break;if(p&655360){g=p&131072;c[o+264>>2]=g>>>16^2;f=HK((g>>>12^32)+32|0)|0;r=d+288|0;c[f>>2]=c[r>>2];c[f+4>>2]=c[r+4>>2];c[f+8>>2]=c[r+8>>2];c[f+12>>2]=c[r+12>>2];r=f+16|0;s=d+304|0;c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];c[r+8>>2]=c[s+8>>2];c[r+12>>2]=c[s+12>>2];if(!g){hK(f);g=4}else g=2}else{f=0;g=0}if(!(p&8192))LR(d,f,f,g)|0;c[o+272>>2]=f;c[o+268>>2]=g}while(0);f=e+16|0;if(p&32768|0?(k=c[(c[f>>2]|0)+12>>2]|0,k|0):0)c[o+192>>2]=c[k>>2];g=(p&4|0)!=0;do if(!g){if((c[i>>2]|0)==0?(b[j>>1]&1)==0:0)break;s=d+256|0;c[m>>2]=c[s>>2];c[m+4>>2]=c[s+4>>2];c[m+8>>2]=c[s+8>>2];c[m+12>>2]=c[s+12>>2];c[m+16>>2]=c[s+16>>2];c[m+20>>2]=c[s+20>>2];c[m+24>>2]=c[s+24>>2];c[m+28>>2]=c[s+28>>2];iI(d,m);aS(d,c[i>>2]|0,c[o+228>>2]|0,c[o+244>>2]|0,c[o+212>>2]|0)}while(0);EI(d,e);f=c[(c[f>>2]|0)+12>>2]|0;if(f|0)BK(d,4,f);do if(!g){if((c[i>>2]|0)==0?(b[j>>1]&1)==0:0)break;bS(d)}while(0);FI(d,e,p);PR(d);if(h|0){lA(n);c[o+212>>2]=h}l=q;return}function zI(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;h=l;l=l+32|0;d=h+24|0;b=h+16|0;j=h+8|0;f=h;g=a+196|0;i=a+188|0;c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[d>>2]=c[i>>2];c[d+4>>2]=c[i+4>>2];CI(j,b,d);i=c[j+4>>2]|0;e=g;c[e>>2]=c[j>>2];c[e+4>>2]=i;if(!((xI(a)|0)<<24>>24)){e=a+180|0;if(!(c[a+184>>2]|0))c[a+200>>2]=c[a+176>>2];else c[g>>2]=c[a+172>>2];c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];CI(f,b,d);i=c[f+4>>2]|0;j=g;c[j>>2]=c[f>>2];c[j+4>>2]=i}l=h;return}function AI(a,b){a=a|0;b=b|0;var d=0;d=c[b>>2]|0;a=a+160|0;if(!d)c[a>>2]=(c[a>>2]|0)+1;else{c[a>>2]=c[d>>2];c[b>>2]=d+4}return}function BI(a){a=a|0;NR(a);$H(a);return}function CI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=(c[d+4>>2]|0)+(c[b+4>>2]|0)|0;c[a>>2]=(c[d>>2]|0)+(c[b>>2]|0);c[a+4>>2]=e;return}function DI(a){a=a|0;var b=0.0,d=0,e=0,f=0.0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0;v=l;l=l+48|0;n=v+32|0;g=v+24|0;j=v+8|0;k=v+16|0;m=v;e=a+196|0;d=c[e>>2]|0;e=c[e+4>>2]|0;o=g;c[o>>2]=d;c[o+4>>2]=e;o=a+164|0;i=c[o>>2]|0;o=c[o+4>>2]|0;u=j;c[u>>2]=i;c[u+4>>2]=o;u=a+360|0;if(c[u>>2]|0){c[n>>2]=c[g>>2];c[n+4>>2]=c[g+4>>2];LJ(k,n);e=k;d=c[e>>2]|0;e=c[e+4>>2]|0;o=g;c[o>>2]=d;c[o+4>>2]=e;c[n>>2]=c[j>>2];c[n+4>>2]=c[j+4>>2];LJ(m,n);o=m;i=c[o>>2]|0;o=c[o+4>>2]|0;n=j;c[n>>2]=i;c[n+4>>2]=o}r=+(d|0);s=+h[a+320>>3];f=r*s-+h[a+240>>3];h[a+288>>3]=f;p=+(e|0);q=+h[a+328>>3];t=p*q-+h[a+248>>3];h[a+296>>3]=t;h[a+304>>3]=s+f;h[a+312>>3]=q+t;d=a+472|0;e=a+456|0;if(!(c[(c[a+12>>2]|0)+28>>2]|0)){c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];c[d+12>>2]=c[e+12>>2]}else{c[d>>2]=c[((c[d>>2]|0)<(c[e>>2]|0)?d:e)>>2];n=a+476|0;c[n>>2]=c[((c[n>>2]|0)<(c[a+460>>2]|0)?d:e)+4>>2];n=a+480|0;c[n>>2]=c[((c[n>>2]|0)>(c[a+464>>2]|0)?d:e)+8>>2];n=a+484|0;c[n>>2]=c[((c[n>>2]|0)>(c[a+468>>2]|0)?d:e)+12>>2]}j=c[a+152>>2]|0;b=+h[a+336>>3];d=a+256|0;e=a+264|0;f=+h[a+344>>3];g=a+272|0;if(!(j&128)){b=b+s*(r-+(i|0)*.5);h[d>>3]=b;t=f+q*(p-+(o|0)*.5);h[e>>3]=t;r=s+b;h[g>>3]=r;f=q+t;s=b;q=r}else{q=+h[a+368>>3]*.5;s=b-q;h[d>>3]=s;r=+h[a+376>>3]*.5;t=f-r;h[e>>3]=t;q=b+q;h[g>>3]=q;f=f+r}h[a+280>>3]=f;b=+h[a+352>>3];d=a+512|0;e=a+504|0;g=(c[47187]|j&4096|0)!=0;r=+h[a+384>>3]/b;b=+h[a+392>>3]/b;if(!(c[u>>2]|0)){h[e>>3]=r-s;p=b;b=b-t}else{h[d>>3]=-f-b;p=r;f=q;d=e;b=r-s}h[d>>3]=g?-f-p:b;l=v;return}
function EI(b,d){b=b|0;d=d|0;var e=0,f=0.0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+48|0;q=s;o=s+40|0;p=s+36|0;r=s+32|0;e=NA(d,141280)|0;if(!e){j=1;e=137499}else{i=(a[e>>0]|0)==0;j=i&1;e=i?137499:e}h=c[b+152>>2]|0;i=(a[e>>0]|0)==116;if(!(h&256))if(i){m=(f2(e,137680)|0)==0;k=m?137499:e;m=m?1:j;n=8}else{k=e;m=j;n=8}else if(!(i?!(f2(e,137680)|0):0)){k=e;m=j;n=8}if((n|0)==8?!((m|0)!=0&(h&33554432|0)!=0):0)if(!((HJ(k,o,p)|0)<<24>>24)){hS(b,k);fS(b,137680);r=b+256|0;c[q>>2]=c[r>>2];c[q+4>>2]=c[r+4>>2];c[q+8>>2]=c[r+8>>2];c[q+12>>2]=c[r+12>>2];c[q+16>>2]=c[r+16>>2];c[q+20>>2]=c[r+20>>2];c[q+24>>2]=c[r+24>>2];c[q+28>>2]=c[r+28>>2];mS(b,q,1)}else{c[r>>2]=0;i=c[o>>2]|0;hS(b,i);fS(b,137680);GJ(d,r)|0;e=c[o+4>>2]|0;h=XO(d,c[47197]|0,0,0)|0;f=+g[p>>2];if(!e)iS(b,137615,h,f);else iS(b,e,h,f);r=(c[r>>2]|0)>>>1&1|2;p=b+256|0;c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2];c[q+16>>2]=c[p+16>>2];c[q+20>>2]=c[p+20>>2];c[q+24>>2]=c[p+24>>2];c[q+28>>2]=c[p+28>>2];mS(b,q,r);l6(i)}e=c[(c[(c[d+16>>2]|0)+8>>2]|0)+88>>2]|0;if(e|0)JJ(b,e);l=s;return}function FI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=(c[a>>2]|0)+28|0;c[g>>2]=(c[g>>2]|0)+1;g=(d&4|0)!=0;if(!g)GI(a,b,d);a:do if(!(d&1)){if(d&16|0){WR(a);f=gC(b)|0;while(1){if(!f)break;e=UA(b,f)|0;while(1){if(!e)break;II(a,e);e=WA(b,e)|0}f=hC(b,f)|0}XR(a);UR(a);e=gC(b)|0;while(1){if(!e)break;HI(a,e);e=hC(b,e)|0}VR(a);break}if(!(d&8)){f=gC(b)|0;while(1){if(!f)break a;HI(a,f);e=UA(b,f)|0;while(1){if(!e)break;HI(a,c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0);II(a,e);e=WA(b,e)|0}f=hC(b,f)|0}}UR(a);e=gC(b)|0;while(1){if(!e)break;if((JI(b,e)|0)<<24>>24)HI(a,e);e=hC(b,e)|0}VR(a);WR(a);f=gC(b)|0;while(1){if(!f)break;e=UA(b,f)|0;while(1){if(!e)break;if((KI(b,e)|0)<<24>>24)II(a,e);e=WA(b,e)|0}f=hC(b,f)|0}XR(a)}else{UR(a);e=gC(b)|0;while(1){if(!e)break;HI(a,e);e=hC(b,e)|0}VR(a);WR(a);f=gC(b)|0;while(1){if(!f)break;e=UA(b,f)|0;while(1){if(!e)break;II(a,e);e=WA(b,e)|0}f=hC(b,f)|0}XR(a)}while(0);if(g)GI(a,b,d);return}function GI(e,f,i){e=e|0;f=f|0;i=i|0;var j=0,k=0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;R=l;l=l+128|0;y=R+72|0;P=R+64|0;J=R+112|0;K=R;L=R+104|0;M=f+16|0;N=(i&4|0)!=0;O=e+16|0;z=K+24|0;A=K+56|0;C=K+8|0;D=K+16|0;E=K+32|0;F=K+40|0;G=K+48|0;H=(i&8|0)==0;I=L+4|0;x=1;while(1){j=c[M>>2]|0;if((x|0)>(c[j+180>>2]|0))break;w=c[(c[j+184>>2]|0)+(x<<2)>>2]|0;if((EJ(e,w)|0)<<24>>24){if(N)GI(e,w,i);FJ(e,w);j=c[O>>2]|0;s=j+208|0;if(!(c[s>>2]|0))v=(b[j+260>>1]&1)!=0;else v=1;FT(NA(w,100333)|0);t=j+212|0;u=j+228|0;q=j+244|0;r=w+16|0;if(!(N|v^1)){p=(c[r>>2]|0)+16|0;c[y>>2]=c[p>>2];c[y+4>>2]=c[p+4>>2];c[y+8>>2]=c[p+8>>2];c[y+12>>2]=c[p+12>>2];c[y+16>>2]=c[p+16>>2];c[y+20>>2]=c[p+20>>2];c[y+24>>2]=c[p+24>>2];c[y+28>>2]=c[p+28>>2];iI(e,y);aS(e,c[s>>2]|0,c[u>>2]|0,c[q>>2]|0,c[t>>2]|0)}c[J>>2]=0;j=GJ(w,J)|0;if(!j)o=0;else{jS(e,j);o=c[J>>2]&1}j=d[(c[r>>2]|0)+112>>0]|0;do if(!(j&1)){if(j&2|0){j=$O(w,c[47188]|0,106557)|0;k=$O(w,c[47189]|0,106565)|0;Q=29;break}if(j&8|0){j=$O(w,c[47192]|0,106573)|0;k=$O(w,c[47193]|0,106581)|0;Q=29;break}if(j&4|0){j=$O(w,c[47190]|0,106589)|0;k=$O(w,c[47191]|0,106597)|0;Q=29;break}j=NA(w,141126)|0;if(!j)k=0;else k=(a[j>>0]|0)==0?0:j;j=NA(w,138032)|0;if(!j)j=k;else j=(a[j>>0]|0)==0?k:j;m=NA(w,101719)|0;if(m)k=(a[m>>0]|0)==0?k:m;if(!((o|0)!=0&(k|0)!=0)){m=NA(w,141280)|0;if(m|0?a[m>>0]|0:0){k=m;Q=29;break}j=(j|0)==0?137615:j;m=(k|0)==0?135101:k;c[L>>2]=0;if(!o){k=0;o=m}else{o=m;Q=31}}else Q=29}else{j=$O(w,c[47188]|0,106541)|0;k=$O(w,c[47189]|0,106549)|0;Q=29}while(0);if((Q|0)==29){c[L>>2]=0;j=(j|0)==0?137615:j;o=(k|0)==0?135101:k;Q=31}if((Q|0)==31){Q=0;if(!((HJ(o,L,y)|0)<<24>>24)){hS(e,o);k=1}else{hS(e,c[L>>2]|0);k=c[I>>2]|0;m=XO(w,c[47197]|0,0,0)|0;n=+g[y>>2];if(!k)iS(e,137615,m,n);else iS(e,k,m,n);k=(c[J>>2]|0)>>>1&1|2}}m=c[47196]|0;if((m|0?(B=OA(w,m)|0,B|0):0)?a[B>>0]|0:0)sS(e,+YO(w,c[47196]|0,1.0,0.0));p=c[J>>2]|0;m=c[47195]|0;do if(p&4){m=XO(w,m,1,0)|0;if(m|k|0){o=c[r>>2]|0;S=o+16|0;c[K>>2]=c[S>>2];c[K+4>>2]=c[S+4>>2];c[K+8>>2]=c[S+8>>2];c[K+12>>2]=c[S+12>>2];o=o+32|0;c[E>>2]=c[o>>2];c[E+4>>2]=c[o+4>>2];c[E+8>>2]=c[o+8>>2];c[E+12>>2]=c[o+12>>2];h[D>>3]=+h[E>>3];h[z>>3]=+h[C>>3];h[G>>3]=+h[K>>3];h[A>>3]=+h[F>>3];if(!m)fS(e,137680);else fS(e,j);RM(e,K,4,p,k)}}else{if(!(p&64)){if(XO(w,m,1,0)|0){fS(e,j);S=(c[r>>2]|0)+16|0;c[y>>2]=c[S>>2];c[y+4>>2]=c[S+4>>2];c[y+8>>2]=c[S+8>>2];c[y+12>>2]=c[S+12>>2];c[y+16>>2]=c[S+16>>2];c[y+20>>2]=c[S+20>>2];c[y+24>>2]=c[S+24>>2];c[y+28>>2]=c[S+28>>2];mS(e,y,k);break}if(!k)break;fS(e,137680);S=(c[r>>2]|0)+16|0;c[y>>2]=c[S>>2];c[y+4>>2]=c[S+4>>2];c[y+8>>2]=c[S+8>>2];c[y+12>>2]=c[S+12>>2];c[y+16>>2]=c[S+16>>2];c[y+20>>2]=c[S+20>>2];c[y+24>>2]=c[S+24>>2];c[y+28>>2]=c[S+28>>2];mS(e,y,k);break}S=c[r>>2]|0;p=S+16|0;c[K>>2]=c[p>>2];c[K+4>>2]=c[p+4>>2];c[K+8>>2]=c[p+8>>2];c[K+12>>2]=c[p+12>>2];S=S+32|0;c[E>>2]=c[S>>2];c[E+4>>2]=c[S+4>>2];c[E+8>>2]=c[S+8>>2];c[E+12>>2]=c[S+12>>2];h[D>>3]=+h[E>>3];h[z>>3]=+h[C>>3];h[G>>3]=+h[K>>3];h[A>>3]=+h[F>>3];if(!(XO(w,m,1,0)|0))fS(e,137680);else fS(e,j);if((hI(e,K,o,0)|0)>1){c[P>>2]=HB(w)|0;dA(3,100701,P)|0}S=(c[r>>2]|0)+16|0;c[y>>2]=c[S>>2];c[y+4>>2]=c[S+4>>2];c[y+8>>2]=c[S+8>>2];c[y+12>>2]=c[S+12>>2];c[y+16>>2]=c[S+16>>2];c[y+20>>2]=c[S+20>>2];c[y+24>>2]=c[S+24>>2];c[y+28>>2]=c[S+28>>2];mS(e,y,0)}while(0);l6(c[L>>2]|0);j=c[(c[r>>2]|0)+12>>2]|0;if(j|0)BK(e,5,j);if(v){if(N){S=(c[r>>2]|0)+16|0;c[y>>2]=c[S>>2];c[y+4>>2]=c[S+4>>2];c[y+8>>2]=c[S+8>>2];c[y+12>>2]=c[S+12>>2];c[y+16>>2]=c[S+16>>2];c[y+20>>2]=c[S+20>>2];c[y+24>>2]=c[S+24>>2];c[y+28>>2]=c[S+28>>2];iI(e,y);aS(e,c[s>>2]|0,c[u>>2]|0,c[q>>2]|0,c[t>>2]|0)}bS(e)}a:do if(!H){k=gC(w)|0;while(1){if(!k)break a;HI(e,k);j=UA(w,k)|0;while(1){if(!j)break;II(e,j);j=WA(w,j)|0}k=hC(w,k)|0}}while(0);IJ(e,f);if(!N)GI(e,w,i)}x=x+1|0}l=R;return}function HI(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=l;l=l+32|0;e=j;h=c[b>>2]|0;i=d+16|0;a:do if(((c[(c[i>>2]|0)+8>>2]|0?(wJ(b,uC(d)|0,d)|0)<<24>>24:0)?(k=b+256|0,c[e>>2]=c[k>>2],c[e+4>>2]=c[k+4>>2],c[e+8>>2]=c[k+8>>2],c[e+12>>2]=c[k+12>>2],c[e+16>>2]=c[k+16>>2],c[e+20>>2]=c[k+20>>2],c[e+24>>2]=c[k+24>>2],c[e+28>>2]=c[k+28>>2],(xJ(d,e)|0)<<24>>24):0)?(f=(c[i>>2]|0)+116|0,g=c[h+28>>2]|0,(a[f>>0]|0)!=(g|0)):0){a[f>>0]=g;pS(b,HB(d)|0);e=_O(d,c[47231]|0,195341)|0;if(a[e>>0]|0)pS(b,e);e=_O(d,c[47219]|0,195341)|0;b:do if(a[e>>0]|0){NI(e)|0;e=188404;while(1){f=e;e=e+4|0;f=c[f>>2]|0;if(!f)break b;if((a[f>>0]|0)!=105)continue;if(!(f2(f,134636)|0))break a}}while(0);yJ(b,d);lb[c[(c[(c[(c[i>>2]|0)+8>>2]|0)+4>>2]|0)+20>>2]&63](b,d);e=c[(c[i>>2]|0)+108>>2]|0;if(e|0?a[e+81>>0]|0:0)BK(b,10,e);zJ(b)}while(0);l=j;return}function II(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=l;l=l+32|0;g=h;e=b+256|0;c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[g+16>>2]=c[e+16>>2];c[g+20>>2]=c[e+20>>2];c[g+24>>2]=c[e+24>>2];c[g+28>>2]=c[e+28>>2];a:do if((LI(d,g)|0)<<24>>24?(f=d+-48|0,(MI(b,d)|0)<<24>>24):0){i=d+48|0;e=D3(HB(c[((c[d>>2]&3|0)==3?d:i)+40>>2]|0)|0)|0;e=k6(e+3+(D3(HB(c[((c[d>>2]&3|0)==2?d:f)+40>>2]|0)|0)|0)|0)|0;O3(e,HB(c[((c[d>>2]&3|0)==3?d:i)+40>>2]|0)|0)|0;i=(uB(uC(c[((c[d>>2]&3|0)==2?d:f)+40>>2]|0)|0)|0)==0;g=e+(D3(e)|0)|0;if(i){a[g>>0]=a[142050]|0;a[g+1>>0]=a[142051]|0;a[g+2>>0]=a[142052]|0}else{a[g>>0]=a[138041]|0;a[g+1>>0]=a[138042]|0;a[g+2>>0]=a[138043]|0}g6(e,HB(c[((c[d>>2]&3|0)==2?d:f)+40>>2]|0)|0)|0;pS(b,e);l6(e);e=_O(d,c[47260]|0,195341)|0;if(a[e>>0]|0)pS(b,e);e=_O(d,c[47254]|0,195341)|0;b:do if(!(a[e>>0]|0))e=0;else{NI(e)|0;e=188404;while(1){f=e;e=e+4|0;f=c[f>>2]|0;if(!f){e=188404;break b}if((a[f>>0]|0)!=105)continue;if(!(f2(f,134636)|0))break a}}while(0);OI(b,d,e);PI(b,d,e);QI(b)}while(0);l=h;return}function JI(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+16|0;a=1;while(1){e=c[d>>2]|0;if((a|0)>(c[e+180>>2]|0)){a=1;break}if(!(EC(c[(c[e+184>>2]|0)+(a<<2)>>2]|0,b)|0))a=a+1|0;else{a=0;break}}return a|0}function KI(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+16|0;a=1;while(1){e=c[d>>2]|0;if((a|0)>(c[e+180>>2]|0)){a=1;break}if(!(EC(c[(c[e+184>>2]|0)+(a<<2)>>2]|0,b)|0))a=a+1|0;else{a=0;break}}return a|0}function LI(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+64|0;i=j+32|0;f=j;g=b+16|0;b=c[g>>2]|0;e=c[b+8>>2]|0;if((e|0)!=0?(e=e+8|0,c[f>>2]=c[e>>2],c[f+4>>2]=c[e+4>>2],c[f+8>>2]=c[e+8>>2],c[f+12>>2]=c[e+12>>2],c[f+16>>2]=c[e+16>>2],c[f+20>>2]=c[e+20>>2],c[f+24>>2]=c[e+24>>2],c[f+28>>2]=c[e+28>>2],c[i>>2]=c[d>>2],c[i+4>>2]=c[d+4>>2],c[i+8>>2]=c[d+8>>2],c[i+12>>2]=c[d+12>>2],c[i+16>>2]=c[d+16>>2],c[i+20>>2]=c[d+20>>2],c[i+24>>2]=c[d+24>>2],c[i+28>>2]=c[d+28>>2],(vJ(f,i)|0)!=0):0)b=1;else h=3;do if((h|0)==3){e=c[b+96>>2]|0;if(e){c[i>>2]=c[d>>2];c[i+4>>2]=c[d+4>>2];c[i+8>>2]=c[d+8>>2];c[i+12>>2]=c[d+12>>2];c[i+16>>2]=c[d+16>>2];c[i+20>>2]=c[d+20>>2];c[i+24>>2]=c[d+24>>2];c[i+28>>2]=c[d+28>>2];if((gQ(e,i)|0)<<24>>24){b=1;break}b=c[g>>2]|0}b=c[b+108>>2]|0;if((b|0?a[b+81>>0]|0:0)?(c[i>>2]=c[d>>2],c[i+4>>2]=c[d+4>>2],c[i+8>>2]=c[d+8>>2],c[i+12>>2]=c[d+12>>2],c[i+16>>2]=c[d+16>>2],c[i+20>>2]=c[d+20>>2],c[i+24>>2]=c[d+24>>2],c[i+28>>2]=c[d+28>>2],(gQ(b,i)|0)<<24>>24):0){b=1;break}b=0}while(0);l=j;return b|0}function MI(b,d){b=b|0;d=d|0;var e=0,f=0;a:do if((c[b+156>>2]|0)>=2?(e=_O(d,c[47259]|0,195341)|0,(rJ(b,e)|0)<<24>>24==0):0)if(!(a[e>>0]|0)){e=0;while(1){if((e|0)>=2){e=0;break a}f=(e|0)==1;f=_O(c[((c[d>>2]&3|0)==((f?2:3)|0)?d:d+((f?-1:1)*48|0)|0)+40>>2]|0,c[47229]|0,195341)|0;if(!(a[f>>0]|0)){e=1;break a}if(!((rJ(b,f)|0)<<24>>24))e=e+1|0;else{e=1;break}}}else e=0;else e=1;while(0);return e|0}function NI(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+192|0;q=r+24|0;p=r+16|0;o=r+8|0;n=r;i=r+48|0;m=r+32|0;if(a[100583]|0){hA(188668,128,195106);a[100583]=0}hA(m,128,r+56|0);c[i>>2]=b;j=m+4|0;k=m+8|0;d=0;h=0;a:while(1){b:while(1){e=pJ(i,m)|0;f=d<<24>>24!=0;if(!e){d=22;break a}g=d<<24>>24==0;switch(e|0){case 40:if(f){d=8;break a}else{d=1;continue b}case 41:if(g){d=10;break a}else{d=0;continue b}default:break b}}f=188404+(h<<2)|0;if(g){if((h|0)==63){d=13;break}e=c[47168]|0;if(e>>>0>=(c[47169]|0)>>>0){iA(188668,1)|0;e=c[47168]|0}c[47168]=e+1;a[e>>0]=0;c[f>>2]=c[47168];f=h+1|0}else f=h;e=c[j>>2]|0;if(e>>>0>=(c[k>>2]|0)>>>0){iA(m,1)|0;e=c[j>>2]|0}a[e>>0]=0;e=c[m>>2]|0;c[j>>2]=e;kA(188668,e)|0;e=c[47168]|0;if(e>>>0>=(c[47169]|0)>>>0){iA(188668,1)|0;e=c[47168]|0}c[47168]=e+1;a[e>>0]=0;h=f}do if((d|0)==8){c[n>>2]=b;dA(1,100584,n)|0;c[47101]=0;lA(m)}else if((d|0)==10){c[o>>2]=b;dA(1,100618,o)|0;c[47101]=0;lA(m)}else if((d|0)==13){c[p>>2]=b;dA(0,100646,p)|0;c[f>>2]=0;lA(m)}else if((d|0)==22){if(f){c[q>>2]=b;dA(1,100669,q)|0;c[47101]=0;lA(m);break}c[188404+(h<<2)>>2]=0;lA(m);d=c[47168]|0;if(d>>>0>=(c[47169]|0)>>>0){iA(188668,1)|0;d=c[47168]|0}a[d>>0]=0;c[47168]=c[47167]}while(0);l=r;return 188404}function OI(d,f,g){d=d|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=l;l=l+160|0;B=E+24|0;z=E+20|0;y=E+16|0;k=E;n=E+32|0;A=c[d+152>>2]|0;c[B>>2]=0;c[z>>2]=0;c[y>>2]=0;C=_H(d)|0;c[C+4>>2]=3;c[C+8>>2]=f;c[C+12>>2]=9;w=f+16|0;t=c[(c[w>>2]|0)+96>>2]|0;D=C+260|0;if((t|0?(a[t+82>>0]|0)==0:0)?(cP(NA(f,100406)|0,0)|0)<<24>>24:0)b[D>>1]=b[D>>1]|512;if(g|0?c[(c[w>>2]|0)+8>>2]|0:0)jS(d,g);g=c[47275]|0;if((g|0?(i=OA(f,g)|0,i|0):0)?a[i>>0]|0:0)sS(d,+YO(f,c[47275]|0,1.0,0.0));do if(A&16777216|0){g=f+48|0;i=C+176|0;if((e[(c[(uC(c[((c[f>>2]&3|0)==3?f:g)+40>>2]|0)|0)+16>>2]|0)+178>>1]|0)>2){m=+h[(c[(c[(c[((c[f>>2]&3|0)==3?f:g)+40>>2]|0)+16>>2]|0)+132>>2]|0)+16>>3]*72.0;h[i>>3]=+(~~(m+(m>=0.0?.5:-.5))|0);m=+h[(c[(c[(c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0)+16>>2]|0)+132>>2]|0)+16>>3]*72.0;h[C+184>>3]=+(~~(m+(m>=0.0?.5:-.5))|0);break}else{c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;c[i+12>>2]=0;break}}while(0);r=C+200|0;s=C+204|0;q=C+192|0;if(A&32768|0){j=c[w>>2]|0;g=c[j+96>>2]|0;if(!g)g=c[q>>2]|0;else{g=c[g>>2]|0;c[q>>2]=g}i=C+196|0;c[i>>2]=g;c[s>>2]=g;c[r>>2]=g;g=c[j+108>>2]|0;if(g|0)c[i>>2]=c[g>>2];g=c[j+104>>2]|0;if(g|0)c[r>>2]=c[g>>2];g=c[j+100>>2]|0;if(g|0)c[s>>2]=c[g>>2]}t=C+208|0;if(!(A&65536))k=0;else{hA(k,128,n);c[C+212>>2]=CK(bI(d,f,k)|0,f)|0;lA(k);g=NA(f,141358)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0)p=31;else{g=NA(f,111778)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0)p=31;else j=0}if((p|0)==31)j=CK(g,f)|0;g=NA(f,100419)|0;i=(j|0)!=0;if((g|0)!=0?(a[g>>0]|0)!=0:0)p=36;else p=34;do if((p|0)==34){g=NA(f,100428)|0;if(g|0?a[g>>0]|0:0){p=36;break}if(i){g=Y3(j)|0;p=39}}while(0);if((p|0)==36){g=CK(g,f)|0;p=39}if((p|0)==39)c[t>>2]=g;g=NA(f,100436)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0)p=44;else p=42;do if((p|0)==42){g=NA(f,100446)|0;if(g|0?a[g>>0]|0:0){p=44;break}if(i){g=Y3(j)|0;p=47}}while(0);if((p|0)==44){g=CK(g,f)|0;p=47}if((p|0)==47)c[C+216>>2]=g;g=NA(f,100455)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0)p=52;else p=50;do if((p|0)==50){g=NA(f,100464)|0;if(g|0?a[g>>0]|0:0){p=52;break}if(i)c[C+220>>2]=Y3(j)|0}while(0);if((p|0)==52){c[C+220>>2]=CK(g,f)|0;b[D>>1]=b[D>>1]|128}g=NA(f,100472)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0)p=59;else p=57;do if((p|0)==57){g=NA(f,100481)|0;if(g|0?a[g>>0]|0:0){p=59;break}if(i)c[C+224>>2]=Y3(j)|0}while(0);if((p|0)==59){c[C+224>>2]=CK(g,f)|0;b[D>>1]=b[D>>1]|256}k=j}o=C+244|0;do if(A&8388608){g=NA(f,141391)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0)i=CK(g,f)|0;else i=0;g=NA(f,100489)|0;j=(i|0)!=0;if((g|0)!=0?(a[g>>0]|0)!=0:0){b[D>>1]=b[D>>1]|64;g=CK(g,f)|0;p=72}else p=70;if((p|0)==70?j:0){g=Y3(i)|0;p=72}if((p|0)==72)c[o>>2]=g;g=NA(f,100500)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0){g=CK(g,f)|0;p=78}else p=76;if((p|0)==76?j:0){g=Y3(i)|0;p=78}if((p|0)==78)c[C+248>>2]=g;g=NA(f,100512)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0){c[C+252>>2]=CK(g,f)|0;b[D>>1]=b[D>>1]|16}else p=82;if((p|0)==82?j:0)c[C+252>>2]=Y3(i)|0;g=NA(f,100523)|0;if(g|0?a[g>>0]|0:0){b[D>>1]=b[D>>1]|32;c[C+256>>2]=CK(g,f)|0;break}if(j)c[C+256>>2]=Y3(i)|0;else i=0}else i=0;while(0);do if(A&4194304|0){g=NA(f,141404)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0)p=94;else p=92;do if((p|0)==92){g=NA(f,100534)|0;if(g|0?a[g>>0]|0:0){p=94;break}g=c[q>>2]|0;if(g|0)c[C+228>>2]=Y3(g)|0}while(0);if((p|0)==94){n=hJ(g,f)|0;c[C+228>>2]=CK(n,f)|0;l6(n);b[D>>1]=b[D>>1]|1}g=NA(f,100546)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0){n=hJ(g,f)|0;c[C+232>>2]=CK(n,f)|0;l6(n);b[D>>1]=b[D>>1]|8}else p=100;if((p|0)==100?(u=c[q>>2]|0,u|0):0)c[C+232>>2]=Y3(u)|0;g=NA(f,100559)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0){u=hJ(g,f)|0;c[C+236>>2]=CK(u,f)|0;l6(u);b[D>>1]=b[D>>1]|2}else p=105;if((p|0)==105?(v=c[r>>2]|0,v|0):0)c[C+236>>2]=Y3(v)|0;g=NA(f,100571)|0;if(g|0?a[g>>0]|0:0){v=hJ(g,f)|0;c[C+240>>2]=CK(v,f)|0;l6(v);b[D>>1]=b[D>>1]|4;break}g=c[s>>2]|0;if(g|0)c[C+240>>2]=Y3(g)|0}while(0);l6(k);l6(i);n=C+228|0;do if(A&4259840|0?(x=c[(c[w>>2]|0)+8>>2]|0,x|0):0){if(!(c[t>>2]|0)){if((A&524288|0)==0|(c[n>>2]|0)==0)break}else if(!(A&524288))break;m=+h[(c[d+16>>2]|0)+152>>3]*.5;m=m>2.0?m:2.0;i=c[x+4>>2]|0;g=0;while(1){if((g|0)>=(i|0))break;iJ(B,z,y,(c[x>>2]|0)+(g*48|0)|0,m);g=g+1|0}j=c[y>>2]|0;c[C+276>>2]=j;k=c[z>>2]|0;c[C+280>>2]=k;if(!(A&8192)){g=0;i=0;while(1){if((i|0)>=(j|0))break;g=(c[k+(i<<2)>>2]|0)+g|0;i=i+1|0}B=c[B>>2]|0;LR(d,B,B,g)|0;g=B}else g=c[B>>2]|0;c[C+284>>2]=g;c[C+264>>2]=2;c[C+272>>2]=g;c[C+268>>2]=c[k>>2]}while(0);_R(d,f);g=c[t>>2]|0;if(!((g|0)==0?!(b[D>>1]&1):0))aS(d,g,c[n>>2]|0,c[o>>2]|0,c[C+212>>2]|0);l=E;return}function PI(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0.0,R=0.0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0;T=l;l=l+240|0;P=T+224|0;O=T+208|0;z=T+144|0;y=T+112|0;S=T+64|0;C=T+48|0;D=T+32|0;E=T+16|0;F=T;G=T+192|0;H=T+176|0;A=T+160|0;B=T+128|0;c[E>>2]=0;c[E+4>>2]=0;c[E+8>>2]=0;c[E+12>>2]=0;Q=+h[(c[b+16>>2]|0)+152>>3];FT(NA(e,100333)|0);N=e+16|0;a:do if(c[(c[N>>2]|0)+8>>2]|0){R=+YO(e,c[47257]|0,1.0,0.0);k=_O(e,c[47238]|0,195341)|0;r=(f|0)!=0;b:do if(r){g=f;while(1){i=g;g=g+4|0;i=c[i>>2]|0;if(!i){p=0;break b}if((a[i>>0]|0)!=116)continue;if(!(f2(i,111418)|0)){p=1;break}}}else p=0;while(0);j=k;q=0;i=0;c:while(1){g=q+1|0;switch(a[j>>0]|0){case 0:break c;case 58:break;case 59:{g=q;i=i+1|0;break}default:g=q}j=j+1|0;q=g}o=(q|0)!=0;if((i|0)!=0&o)if(!(XI(b,e,f,k,g,R,Q)|0))break;else m=137615;else m=k;g=d[(c[N>>2]|0)+115>>0]|0;if(!(g&1))if(!(g&2))if(!(g&8))if(!(g&4)){u=m;g=$O(e,c[47239]|0,m)|0}else{j=106597;g=106589;k=188980;i=188976;n=18}else{j=106581;g=106573;k=188988;i=188984;n=18}else{j=106565;g=106557;k=188972;i=188968;n=18}else{j=106549;g=106541;k=188964;i=188960;n=18}if((n|0)==18){i=c[i>>2]|0;i=$O(e,i,YI(m,g)|0)|0;g=$O(e,c[k>>2]|0,j)|0;if((i|0)==(m|0))u=m;else{fS(b,i);u=i}}if((g|0)!=(m|0))hS(b,g);J=S+16|0;L=S+4|0;M=S+32|0;K=S+12|0;I=S+8|0;if(p<<24>>24){i=(a[u>>0]|0)==0?137615:u;g=(a[g>>0]|0)==0?137615:g;fS(b,137680);hS(b,i);o=S;m=c[c[(c[N>>2]|0)+8>>2]>>2]|0;n=o+48|0;do{c[o>>2]=c[m>>2];o=o+4|0;m=m+4|0}while((o|0)<(n|0));N=xO(S,ZI(e)|0,Q,0,0)|0;lS(b,c[N+8>>2]|0,c[N>>2]|0,1);_I(N);fS(b,i);if((g|0)!=(i|0))hS(b,g);g=c[I>>2]|0;if(g|0){N=c[S>>2]|0;c[O>>2]=c[J>>2];c[O+4>>2]=c[J+4>>2];c[O+8>>2]=c[J+8>>2];c[O+12>>2]=c[J+12>>2];c[P>>2]=c[N>>2];c[P+4>>2]=c[N+4>>2];c[P+8>>2]=c[N+8>>2];c[P+12>>2]=c[N+12>>2];XH(b,2,O,P,R,Q,g)}g=c[K>>2]|0;if(!g)break;S=(c[S>>2]|0)+((c[L>>2]|0)+-1<<4)|0;c[O>>2]=c[M>>2];c[O+4>>2]=c[M+4>>2];c[O+8>>2]=c[M+8>>2];c[O+12>>2]=c[M+12>>2];c[P>>2]=c[S>>2];c[P+4>>2]=c[S+4>>2];c[P+8>>2]=c[S+8>>2];c[P+12>>2]=c[S+12>>2];XH(b,3,O,P,R,Q,g);break}i=c[N>>2]|0;if(!o){do if(!(a[i+115>>0]&3)){if(a[u>>0]|0){fS(b,u);hS(b,g);break}fS(b,137615);if(!(a[g>>0]|0)){hS(b,137615);break}else{hS(b,g);break}}while(0);k=b+152|0;j=0;while(1){g=c[(c[N>>2]|0)+8>>2]|0;if((j|0)>=(c[g+4>>2]|0))break a;o=S;m=(c[g>>2]|0)+(j*48|0)|0;n=o+48|0;do{c[o>>2]=c[m>>2];o=o+4|0;m=m+4|0}while((o|0)<(n|0));g=c[S>>2]|0;i=c[L>>2]|0;do if(!(c[k>>2]&16384)){nS(b,g,i,0,0,0);g=c[I>>2]|0;if(g|0){H=c[S>>2]|0;c[O>>2]=c[J>>2];c[O+4>>2]=c[J+4>>2];c[O+8>>2]=c[J+8>>2];c[O+12>>2]=c[J+12>>2];c[P>>2]=c[H>>2];c[P+4>>2]=c[H+4>>2];c[P+8>>2]=c[H+8>>2];c[P+12>>2]=c[H+12>>2];XH(b,2,O,P,R,Q,g)}g=c[K>>2]|0;if(g|0){H=(c[S>>2]|0)+((c[L>>2]|0)+-1<<4)|0;c[O>>2]=c[M>>2];c[O+4>>2]=c[M+4>>2];c[O+8>>2]=c[M+8>>2];c[O+12>>2]=c[M+12>>2];c[P>>2]=c[H>>2];c[P+4>>2]=c[H+4>>2];c[P+8>>2]=c[H+8>>2];c[P+12>>2]=c[H+12>>2];XH(b,3,O,P,R,Q,g)}if((c[(c[(c[N>>2]|0)+8>>2]|0)+4>>2]|0)>1){if(!(c[I>>2]|0)){if(!(r&(c[K>>2]|0)!=0))break}else if(!r)break;jS(b,f)}}else nS(b,g,i,c[I>>2]|0,c[K>>2]|0,0);while(0);j=j+1|0}}w=c[(c[i+8>>2]|0)+4>>2]|0;v=w*48|0;x=k6(v)|0;v=k6(v)|0;t=+(q+2|0)*.5;e=C+8|0;f=D+8|0;r=E+8|0;s=F+8|0;q=0;while(1){if((q|0)>=(w|0))break;o=S;m=(c[c[(c[N>>2]|0)+8>>2]>>2]|0)+(q*48|0)|0;n=o+48|0;do{c[o>>2]=c[m>>2];o=o+4|0;m=m+4|0}while((o|0)<(n|0));g=c[L>>2]|0;c[x+(q*48|0)+4>>2]=g;c[v+(q*48|0)+4>>2]=g;k=g<<4;j=k6(k)|0;c[x+(q*48|0)>>2]=j;k=k6(k)|0;c[v+(q*48|0)>>2]=k;i=c[S>>2]|0;c[F>>2]=c[i>>2];c[F+4>>2]=c[i+4>>2];c[F+8>>2]=c[i+8>>2];c[F+12>>2]=c[i+12>>2];i=0;while(1){m=j+(i<<4)|0;n=k+(i<<4)+8|0;o=k+(i<<4)|0;p=j+(i<<4)+8|0;if((i|0)>=(g+-1|0))break;c[C>>2]=c[F>>2];c[C+4>>2]=c[F+4>>2];c[C+8>>2]=c[F+8>>2];c[C+12>>2]=c[F+12>>2];g=i+1|0;U=(c[S>>2]|0)+(g<<4)|0;c[D>>2]=c[U>>2];c[D+4>>2]=c[U+4>>2];c[D+8>>2]=c[U+8>>2];c[D+12>>2]=c[U+12>>2];if(!i){c[O>>2]=c[C>>2];c[O+4>>2]=c[C+4>>2];c[O+8>>2]=c[C+8>>2];c[O+12>>2]=c[C+12>>2];c[P>>2]=c[D>>2];c[P+4>>2]=c[D+4>>2];c[P+8>>2]=c[D+8>>2];c[P+12>>2]=c[D+12>>2];$I(G,O,P);c[m>>2]=c[G>>2];c[m+4>>2]=c[G+4>>2];c[m+8>>2]=c[G+8>>2];c[m+12>>2]=c[G+12>>2]}else{c[O>>2]=c[E>>2];c[O+4>>2]=c[E+4>>2];c[O+8>>2]=c[E+8>>2];c[O+12>>2]=c[E+12>>2];c[P>>2]=c[D>>2];c[P+4>>2]=c[D+4>>2];c[P+8>>2]=c[D+8>>2];c[P+12>>2]=c[D+12>>2];$I(H,O,P);c[m>>2]=c[H>>2];c[m+4>>2]=c[H+4>>2];c[m+8>>2]=c[H+8>>2];c[m+12>>2]=c[H+12>>2]}Y=c[S>>2]|0;V=i+2|0;Z=Y+(V<<4)|0;c[E>>2]=c[Z>>2];c[E+4>>2]=c[Z+4>>2];c[E+8>>2]=c[Z+8>>2];c[E+12>>2]=c[Z+12>>2];U=i+3|0;Y=Y+(U<<4)|0;c[F>>2]=c[Y>>2];c[F+4>>2]=c[Y+4>>2];c[F+8>>2]=c[Y+8>>2];c[F+12>>2]=c[Y+12>>2];X=j+(g<<4)|0;W=j+(V<<4)|0;c[y>>2]=c[C>>2];c[y+4>>2]=c[C+4>>2];c[y+8>>2]=c[C+8>>2];c[y+12>>2]=c[C+12>>2];c[z>>2]=c[D>>2];c[z+4>>2]=c[D+4>>2];c[z+8>>2]=c[D+8>>2];c[z+12>>2]=c[D+12>>2];c[O>>2]=c[Z>>2];c[O+4>>2]=c[Z+4>>2];c[O+8>>2]=c[Z+8>>2];c[O+12>>2]=c[Z+12>>2];c[P>>2]=c[Y>>2];c[P+4>>2]=c[Y+4>>2];c[P+8>>2]=c[Y+8>>2];c[P+12>>2]=c[Y+12>>2];aJ(A,y,z,O,P);c[W>>2]=c[A>>2];c[W+4>>2]=c[A+4>>2];c[W+8>>2]=c[A+8>>2];c[W+12>>2]=c[A+12>>2];c[X>>2]=c[A>>2];c[X+4>>2]=c[A+4>>2];c[X+8>>2]=c[A+8>>2];c[X+12>>2]=c[A+12>>2];h[o>>3]=+h[C>>3]-t*+h[m>>3];h[n>>3]=+h[e>>3]-t*+h[p>>3];h[k+(g<<4)>>3]=+h[D>>3]-t*+h[X>>3];h[k+(g<<4)+8>>3]=+h[f>>3]-t*+h[j+(g<<4)+8>>3];h[k+(V<<4)>>3]=+h[E>>3]-t*+h[W>>3];h[k+(V<<4)+8>>3]=+h[r>>3]-t*+h[j+(V<<4)+8>>3];i=U;g=c[L>>2]|0}c[O>>2]=c[E>>2];c[O+4>>2]=c[E+4>>2];c[O+8>>2]=c[E+8>>2];c[O+12>>2]=c[E+12>>2];c[P>>2]=c[F>>2];c[P+4>>2]=c[F+4>>2];c[P+8>>2]=c[F+8>>2];c[P+12>>2]=c[F+12>>2];$I(B,O,P);c[m>>2]=c[B>>2];c[m+4>>2]=c[B+4>>2];c[m+8>>2]=c[B+8>>2];c[m+12>>2]=c[B+12>>2];h[o>>3]=+h[F>>3]-t*+h[m>>3];h[n>>3]=+h[s>>3]-t*+h[p>>3];q=q+1|0}s=Y3(u)|0;f=0;r=u;i=u;j=u;g=s;while(1){g=i6(g,108285)|0;if(!g)break;e=(a[g>>0]|0)==0?137615:g;if((e|0)!=(j|0))if(!(a[(c[N>>2]|0)+115>>0]&3)){fS(b,e);hS(b,e);j=e}else j=e;m=(f|0)==0;n=(f|1|0)==1;g=0;while(1){if((g|0)>=(w|0))break;o=c[v+(g*48|0)>>2]|0;p=c[x+(g*48|0)>>2]|0;q=c[v+(g*48|0)+4>>2]|0;k=0;while(1){if((k|0)>=(q|0))break;Z=o+(k<<4)|0;h[Z>>3]=+h[p+(k<<4)>>3]+ +h[Z>>3];Z=o+(k<<4)+8|0;h[Z>>3]=+h[p+(k<<4)+8>>3]+ +h[Z>>3];k=k+1|0}nS(b,o,q,0,0,0);g=g+1|0}f=f+1|0;r=m?e:r;i=n?e:i;g=0}g=c[I>>2]|0;if(!g)i=0;else{if(i){if(!(a[(c[N>>2]|0)+115>>0]&3)){fS(b,i);hS(b,i)}}else i=0;Z=c[S>>2]|0;c[O>>2]=c[J>>2];c[O+4>>2]=c[J+4>>2];c[O+8>>2]=c[J+8>>2];c[O+12>>2]=c[J+12>>2];c[P>>2]=c[Z>>2];c[P+4>>2]=c[Z+4>>2];c[P+8>>2]=c[Z+8>>2];c[P+12>>2]=c[Z+12>>2];XH(b,2,O,P,R,Q,g)}g=c[K>>2]|0;if(g|0){if((i|0)!=(r|0)?(a[(c[N>>2]|0)+115>>0]&3)==0:0){fS(b,r);hS(b,r);g=c[K>>2]|0}Z=(c[S>>2]|0)+((c[L>>2]|0)+-1<<4)|0;c[O>>2]=c[M>>2];c[O+4>>2]=c[M+4>>2];c[O+8>>2]=c[M+8>>2];c[O+12>>2]=c[M+12>>2];c[P>>2]=c[Z>>2];c[P+4>>2]=c[Z+4>>2];c[P+8>>2]=c[Z+8>>2];c[P+12>>2]=c[Z+12>>2];XH(b,3,O,P,R,Q,g)}l6(s);g=0;while(1){if((g|0)>=(w|0))break;l6(c[x+(g*48|0)>>2]|0);l6(c[v+(g*48|0)>>2]|0);g=g+1|0}l6(x);l6(v)}while(0);l=T;return}function QI(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=l;l=l+64|0;q=D+48|0;t=D+32|0;s=D+16|0;r=D;z=c[a+16>>2]|0;A=c[z+8>>2]|0;p=z+208|0;C=z+212|0;m=z+268|0;B=z+260|0;n=z+272|0;if(!((c[p>>2]|0)==0?!(b[B>>1]&1):0))d=3;a:do if((d|0)==3?(bS(a),o=z+276|0,e=c[o>>2]|0,e|0):0){h=z+280|0;d=c[h>>2]|0;i=z+284|0;j=z+228|0;k=z+244|0;f=c[d>>2]|0;g=1;while(1){if((g|0)>=(e|0))break a;c[m>>2]=c[d+(g<<2)>>2];c[n>>2]=(c[i>>2]|0)+(f<<4);aS(a,c[p>>2]|0,c[j>>2]|0,c[k>>2]|0,c[C>>2]|0);bS(a);y=c[h>>2]|0;f=(c[y+(g<<2)>>2]|0)+f|0;g=g+1|0;e=c[o>>2]|0;d=y}}while(0);c[m>>2]=0;c[n>>2]=0;o=A+16|0;d=c[o>>2]|0;e=c[d+8>>2]|0;p=z+236|0;u=z+240|0;v=z+224|0;w=z+256|0;x=z+220|0;y=z+252|0;if(e){m=c[e>>2]|0;d=c[m>>2]|0;n=c[m+8>>2]|0;k=m+16|0;c[s>>2]=c[k>>2];c[s+4>>2]=c[k+4>>2];c[s+8>>2]=c[k+8>>2];c[s+12>>2]=c[k+12>>2];m=m+32|0;c[r>>2]=c[m>>2];c[r+4>>2]=c[m+4>>2];c[r+8>>2]=c[m+8>>2];c[r+12>>2]=c[m+12>>2];if(!n){c[t>>2]=c[d>>2];c[t+4>>2]=c[d+4>>2];c[t+8>>2]=c[d+8>>2];c[t+12>>2]=c[d+12>>2]}else{c[t>>2]=c[s>>2];c[t+4>>2]=c[s+4>>2];c[t+8>>2]=c[s+8>>2];c[t+12>>2]=c[s+12>>2]}m=b[B>>1]|0;k=c[x>>2]|0;c[q>>2]=c[t>>2];c[q+4>>2]=c[t+4>>2];c[q+8>>2]=c[t+8>>2];c[q+12>>2]=c[t+12>>2];RI(a,q,(m<<8&65535)<<16>>16>>15&255,k,(m<<14&65535)<<16>>16>>15&255);m=c[(c[o>>2]|0)+8>>2]|0;k=c[m>>2]|0;m=(c[m+4>>2]|0)+-1|0;d=c[k+(m*48|0)>>2]|0;e=c[k+(m*48|0)+4>>2]|0;n=c[k+(m*48|0)+12>>2]|0;j=k+(m*48|0)+16|0;c[s>>2]=c[j>>2];c[s+4>>2]=c[j+4>>2];c[s+8>>2]=c[j+8>>2];c[s+12>>2]=c[j+12>>2];s=k+(m*48|0)+32|0;c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];c[r+8>>2]=c[s+8>>2];c[r+12>>2]=c[s+12>>2];if(!n){s=d+(e+-1<<4)|0;c[t>>2]=c[s>>2];c[t+4>>2]=c[s+4>>2];c[t+8>>2]=c[s+8>>2];c[t+12>>2]=c[s+12>>2]}else{c[t>>2]=c[r>>2];c[t+4>>2]=c[r+4>>2];c[t+8>>2]=c[r+8>>2];c[t+12>>2]=c[r+12>>2]}d=b[B>>1]|0;s=c[v>>2]|0;c[q>>2]=c[t>>2];c[q+4>>2]=c[t+4>>2];c[q+8>>2]=c[t+8>>2];c[q+12>>2]=c[t+12>>2];RI(a,q,(d<<7&65535)<<16>>16>>15&255,s,(d<<13&65535)<<16>>16>>15&255);d=c[o>>2]|0}g=c[d+96>>2]|0;h=(b[B>>1]<<12&65535)<<16>>16>>15<<16>>16;k=z+216|0;i=c[k>>2]|0;m=z+232|0;j=c[m>>2]|0;n=z+248|0;e=c[n>>2]|0;f=c[C>>2]|0;if(!((bP(_O(A,c[47255]|0,137609)|0)|0)<<24>>24))d=0;else d=c[(c[o>>2]|0)+8>>2]|0;SI(a,g,11,h,i,j,e,f,d);i=c[(c[o>>2]|0)+108>>2]|0;j=(b[B>>1]<<12&65535)<<16>>16>>15<<16>>16;h=c[k>>2]|0;g=c[m>>2]|0;e=c[n>>2]|0;f=c[C>>2]|0;if(!((bP(_O(A,c[47255]|0,137609)|0)|0)<<24>>24))d=0;else d=c[(c[o>>2]|0)+8>>2]|0;SI(a,i,11,j,h,g,e,f,d);SI(a,c[(c[o>>2]|0)+100>>2]|0,7,(b[B>>1]<<13&65535)<<16>>16>>15<<16>>16,c[v>>2]|0,c[u>>2]|0,c[w>>2]|0,c[C>>2]|0,0);SI(a,c[(c[o>>2]|0)+104>>2]|0,6,(b[B>>1]<<14&65535)<<16>>16>>15<<16>>16,c[x>>2]|0,c[p>>2]|0,c[y>>2]|0,c[C>>2]|0,0);$R(a);$H(a);l=D;return}function RI(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;j=l;l=l+16|0;h=j;i=c[a+16>>2]|0;if(!(e<<24>>24))f=c[i+208>>2]|0;if(!(g<<24>>24==0?((f|0)==0?(b[i+260>>1]&1)==0:0):0)){c[h>>2]=c[d>>2];c[h+4>>2]=c[d+4>>2];c[h+8>>2]=c[d+8>>2];c[h+12>>2]=c[d+12>>2];WI(a,h)}l=j;return}function SI(b,d,e,f,g,h,i,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+16|0;o=s;r=c[b+152>>2]|0;if(d|0?a[d+81>>0]|0:0){if(!j)n=0;else{n=HK((D3(j)|0)+11|0)|0;switch(e|0){case 11:{m=108525;break}case 7:{m=101884;break}case 6:{m=101894;break}default:Aa(138697,100207,2730,100345)}c[o>>2]=j;c[o+4>>2]=m;i2(n,100361,o)|0}o=b+16|0;q=(c[o>>2]|0)+12|0;p=c[q>>2]|0;c[q>>2]=e;q=(g|0)!=0;j=(f|0)!=0;m=(r&4|0)!=0;if(!(m|(j|q)^1)){TI(b,d);aS(b,g,h,i,n)}BK(b,e,d);if(k|0)UI(b,d,k);if(j|q){if(m){TI(b,d);aS(b,g,h,i,n)}bS(b)}l6(n);c[(c[o>>2]|0)+12>>2]=p}l=s;return}function TI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0;d=c[a+16>>2]|0;e=c[a+152>>2]|0;if(e&4259840|0){f=e&131072;j=f>>>16^2;c[d+264>>2]=j;i=d+268|0;c[i>>2]=j+2;j=d+272|0;l6(c[j>>2]|0);d=HK(c[i>>2]<<4)|0;c[j>>2]=d;j=b+56|0;i=b+24|0;h[d>>3]=+h[j>>3]-+h[i>>3]*.5;g=b+64|0;b=b+32|0;h[d+8>>3]=+h[g>>3]-+h[b>>3]*.5;h[d+16>>3]=+h[j>>3]+ +h[i>>3]*.5;h[d+24>>3]=+h[g>>3]+ +h[b>>3]*.5;if(!(e&8192))LR(a,d,d,2)|0;if(!f)hK(d)}return}function UI(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0.0;o=l;l=l+96|0;g=o+80|0;i=o+32|0;j=o+16|0;k=o;f=c[d>>2]|0;while(1){m=a[f>>0]|0;if(!(m<<24>>24))break;if(!(X1(m&255)|0)){n=4;break}else f=f+1|0}if((n|0)==4){p=+h[d+24>>3];m=d+56|0;VI(i,p*.5+ +h[m>>3],+h[d+64>>3]-+h[d+32>>3]*.5);n=i+16|0;VI(j,+h[i>>3]-p,+h[i+8>>3]);c[n>>2]=c[j>>2];c[n+4>>2]=c[j+4>>2];c[n+8>>2]=c[j+8>>2];c[n+12>>2]=c[j+12>>2];n=i+32|0;c[g>>2]=c[m>>2];c[g+4>>2]=c[m+4>>2];c[g+8>>2]=c[m+8>>2];c[g+12>>2]=c[m+12>>2];oP(k,e,g);c[n>>2]=c[k>>2];c[n+4>>2]=c[k+4>>2];c[n+8>>2]=c[k+8>>2];c[n+12>>2]=c[k+12>>2];jS(b,c[(c[b>>2]|0)+336>>2]|0);fS(b,c[d+8>>2]|0);oS(b,i,3)}l=o;return}function VI(a,b,c){a=a|0;b=+b;c=+c;h[a>>3]=b;h[a+8>>3]=c;return}function WI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0.0,i=0.0,j=0,k=0;d=c[a+16>>2]|0;e=c[a+152>>2]|0;if(e&4259840|0){f=e&131072;j=f>>>16^2;c[d+264>>2]=j;k=d+268|0;c[k>>2]=j+2;j=d+272|0;l6(c[j>>2]|0);d=HK(c[k>>2]<<4)|0;c[j>>2]=d;i=+h[b>>3];h[d>>3]=i+-3.0;g=+h[b+8>>3];h[d+8>>3]=g+-3.0;h[d+16>>3]=i+3.0;h[d+24>>3]=g+3.0;if(!(e&8192))LR(a,d,d,2)|0;if(!f)hK(d)}return}function XI(a,b,d,e,f,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=+h;i=+i;var j=0,k=0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;I=l;l=l+256|0;C=I+224|0;B=I+208|0;j=I+192|0;E=I+144|0;F=I+96|0;G=I+48|0;D=I;k=I+240|0;e=eI(e,f,k)|0;if((e|0)>1){y=b+48|0;z=uC(c[((c[b>>2]&3|0)==3?b:y)+40>>2]|0)|0;y=HB(c[((c[b>>2]&3|0)==3?b:y)+40>>2]|0)|0;z=(uB(z)|0)!=0;A=HB(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0;c[j>>2]=y;c[j+4>>2]=z?100380:100385;c[j+8>>2]=A;dA(3,100390,j)|0;if((e|0)==2)e=1;else H=4}else if((e|0)==1)e=1;else H=4;if((H|0)==4){A=b+16|0;r=c[k>>2]|0;s=r+8|0;t=G+4|0;u=E+8|0;v=E+12|0;q=(d|0)!=0;w=E+32|0;x=E+4|0;y=E+16|0;z=D+4|0;e=0;p=0;while(1){f=c[(c[A>>2]|0)+8>>2]|0;if((p|0)>=(c[f+4>>2]|0))break;j=E;f=(c[f>>2]|0)+(p*48|0)|0;b=j+48|0;do{c[j>>2]=c[f>>2];j=j+4|0;f=f+4|0}while((j|0)<(b|0));b=1;m=1.0;o=c[s>>2]|0;a:while(1){f=c[o>>2]|0;if(!f)break;k=o+4|0;n=+g[k>>2];do if(n<1.0e-05&n>-1.0e-05)f=b;else{fS(a,f);n=+g[k>>2];m=m-n;e=c[o>>2]|0;if(b|0){fJ(E,n,G,D);k=c[G>>2]|0;nS(a,k,c[t>>2]|0,0,0,0);l6(k);if(m<1.0e-05&m>-1.0e-05){H=11;break a}else{f=0;break}}if(m<1.0e-05&m>-1.0e-05){H=13;break a}j=F;f=D;b=j+48|0;do{c[j>>2]=c[f>>2];j=j+4|0;f=f+4|0}while((j|0)<(b|0));n=+g[k>>2];fJ(F,n/(m+n),G,D);l6(c[F>>2]|0);f=c[G>>2]|0;nS(a,f,c[t>>2]|0,0,0,0);l6(f);f=0}while(0);b=f;o=o+12|0}if((H|0)==11){H=0;l6(c[D>>2]|0)}else if((H|0)==13){H=0;o=c[D>>2]|0;nS(a,o,c[z>>2]|0,0,0,0);l6(o)}if(c[u>>2]|0){fS(a,c[c[s>>2]>>2]|0);hS(a,c[c[s>>2]>>2]|0);k=c[E>>2]|0;o=c[u>>2]|0;c[B>>2]=c[y>>2];c[B+4>>2]=c[y+4>>2];c[B+8>>2]=c[y+8>>2];c[B+12>>2]=c[y+12>>2];c[C>>2]=c[k>>2];c[C+4>>2]=c[k+4>>2];c[C+8>>2]=c[k+8>>2];c[C+12>>2]=c[k+12>>2];XH(a,2,B,C,h,i,o)}if(c[v>>2]|0){fS(a,e);hS(a,e);k=(c[E>>2]|0)+((c[x>>2]|0)+-1<<4)|0;o=c[v>>2]|0;c[B>>2]=c[w>>2];c[B+4>>2]=c[w+4>>2];c[B+8>>2]=c[w+8>>2];c[B+12>>2]=c[w+12>>2];c[C>>2]=c[k>>2];c[C+4>>2]=c[k+4>>2];c[C+8>>2]=c[k+8>>2];c[C+12>>2]=c[k+12>>2];XH(a,3,B,C,h,i,o)}do if((c[(c[(c[A>>2]|0)+8>>2]|0)+4>>2]|0)>1){if(!(c[u>>2]|0)){if(!(q&(c[v>>2]|0)!=0))break}else if(!q)break;jS(a,d)}while(0);p=p+1|0}fI(r);e=0}l=I;return e|0}function YI(b,d){b=b|0;d=d|0;var e=0,f=0;e=1;a:while(1){switch(a[b>>0]|0){case 0:break a;case 58:{e=e+1|0;break}default:{}}b=b+1|0}f=S((D3(d)|0)+1|0,e)|0;b=f+10|0;if((c[47165]|0)<(f|0)){c[47165]=b;b=n6(c[47166]|0,b)|0;c[47166]=b}else b=c[47166]|0;O3(b,d)|0;while(1){e=e+-1|0;b=c[47166]|0;if(!e)break;f=b+(D3(b)|0)|0;a[f>>0]=58;a[f+1>>0]=0;g6(b,d)|0}return b|0}function ZI(b){b=b|0;var d=0,e=0;d=c[47253]|0;a:do if(!d)e=7;else{d=OA(b,d)|0;switch(a[d>>0]|0){case 110:if(!(f2(d,136010)|0)){d=2;break a}else{e=7;break a}case 102:if(!(f2(d,100367)|0)){d=1;break a}else{e=7;break a}case 98:{if(!(f2(d,100375)|0)){d=3;break a}if(!(f2(d,111522)|0)){d=4;break a}else{e=7;break a}}default:{e=7;break a}}}while(0);if((e|0)==7){d=(uB(uC(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0)|0)!=0;d=d?1:2}return d|0}function _I(a){a=a|0;if(a|0){l6(c[a+8>>2]|0);l6(a)}return}function $I(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0;e=+h[b>>3]-+h[c>>3];f=+h[b+8>>3]-+h[c+8>>3];d=2.0/+G(+(e*e+f*f+.0001));h[a>>3]=f*d;h[a+8>>3]=-(e*d);return}function aJ(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0;g=+h[c>>3]-+h[d>>3];i=+h[c+8>>3]-+h[d+8>>3];f=+G(+(g*g+i*i));if(f<.0001){j=+h[b>>3]-+h[e>>3];f=+h[b+8>>3]-+h[e+8>>3];i=f;g=j;f=+G(+(j*j+f*f+.0001))}j=2.0/f;h[a>>3]=j*i;h[a+8>>3]=-(g*j);return}function bJ(a,b,c){a=+a;b=+b;c=+c;return +((1.0-a/b)*c*.5)}function cJ(a,b,c){a=+a;b=+b;c=+c;return +(c*.5)}function dJ(a,b,c){a=+a;b=+b;c=+c;return +(a/b*c*.5)}function eJ(a,b,c){a=+a;b=+b;c=+c;b=a/b;return +((!(b<=.5)?1.0-b:b)*c)}function fJ(a,b,d,e){a=a|0;b=+b;d=d|0;e=e|0;var f=0,g=0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0;r=l;l=l+16|0;q=r;p=c[a+4>>2]|0;j=(p+-1|0)/3|0;k=d+4|0;if((p+-4|0)>>>0<3){c[k>>2]=4;c[d>>2]=HK(64)|0;c[e+4>>2]=4;p=HK(64)|0;c[e>>2]=p;iP(q,c[a>>2]|0,3,b,c[d>>2]|0,p)}else{p=HK(j<<3)|0;f=0;g=c[a>>2]|0;i=0.0;while(1){if((f|0)>=(j|0))break;s=+gJ(g);h[p+(f<<3)>>3]=s;f=f+1|0;g=g+48|0;i=i+s}b=b*i;n=0;i=0.0;while(1){f=n+1|0;o=p+(n<<3)|0;if((j|0)<=(n|0))break;i=i+ +h[o>>3];if(!(i>=b))n=f;else break}f=(f*3|0)+1|0;c[k>>2]=f;c[d>>2]=HK(f<<4)|0;f=((j-n|0)*3|0)+1|0;m=e+4|0;c[m>>2]=f;c[e>>2]=HK(f<<4)|0;f=0;while(1){if((f|0)>=(c[k>>2]|0))break;j=(c[d>>2]|0)+(f<<4)|0;g=(c[a>>2]|0)+(f<<4)|0;c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];c[j+12>>2]=c[g+12>>2];f=f+1|0}f=f+-4|0;g=0;while(1){j=c[a>>2]|0;k=c[e>>2]|0;if((g|0)>=(c[m>>2]|0))break;k=k+(g<<4)|0;j=j+(f<<4)|0;c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];f=f+1|0;g=g+1|0}s=+h[o>>3];e=n*3|0;iP(q,j+(e<<4)|0,3,(b-(i-s))/s,(c[d>>2]|0)+(e<<4)|0,k);l6(p)}l=r;return}function gJ(a){a=a|0;var b=0.0,c=0.0,d=0.0,e=0.0,f=0.0;e=+h[a+16>>3];c=+h[a>>3]-e;d=+h[a+24>>3];f=+h[a+8>>3]-d;f=+G(+(c*c+f*f));c=+h[a+32>>3];e=e-c;b=+h[a+40>>3];d=d-b;d=f+ +G(+(e*e+d*d));c=c-+h[a+48>>3];b=b-+h[a+56>>3];return +(d+ +G(+(c*c+b*b)))}function hJ(b,d){b=b|0;d=d|0;d=vC(d)|0;if((a[(c[d+16>>2]|0)+115>>0]|0)==1)d=cQ(b)|0;else d=$P(b,d)|0;return oJ(d)|0}function iJ(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;q=l;l=l+1664|0;m=q+1600|0;n=q+800|0;o=q;p=IK(24)|0;c[p+16>>2]=1;j=((c[e+4>>2]|0)+-1|0)/3|0;h=0;i=p;while(1){if((h|0)>=(j|0))break;k=h*3|0;g=0;while(1){if((g|0)==4)break;r=m+(g<<4)|0;s=(c[e>>2]|0)+(g+k<<4)|0;c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];c[r+8>>2]=c[s+8>>2];c[r+12>>2]=c[s+12>>2];g=g+1|0}h=h+1|0;i=jJ(m,i)|0}g=0;h=0;i=p;while(1){if(!i){h=p;g=p;break}j=c[i+16>>2]|0;k=n+(g<<4)|0;e=o+(g<<4)|0;kJ(h,i,j,k,e,f);g=g+1|0;if(!((g|0)==50|(j|0)==0)){h=i;i=j;continue}lJ(a,b,d,g,n,o);c[n>>2]=c[k>>2];c[n+4>>2]=c[k+4>>2];c[n+8>>2]=c[k+8>>2];c[n+12>>2]=c[k+12>>2];c[o>>2]=c[e>>2];c[o+4>>2]=c[e+4>>2];c[o+8>>2]=c[e+8>>2];c[o+12>>2]=c[e+12>>2];h=i;g=1;i=j}while(1){if(!h)break;s=c[h+16>>2]|0;l6(g);h=s;g=s}l=q;return}function jJ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=l;l=l+144|0;f=g+128|0;d=g+64|0;e=g;if(!(kI(a)|0)){iP(f,a,3,.5,d,e);d=jJ(e,jJ(d,b)|0)|0}else{d=b+16|0;if((c[d>>2]|0)==1){c[d>>2]=0;c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];c[b+12>>2]=c[a+12>>2]}d=a+48|0;c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];d=nJ(f,b)|0}l=g;return d|0}function kJ(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=+g;var i=0.0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0.0;t=l;l=l+96|0;p=t+80|0;o=t+64|0;n=t+48|0;q=t+32|0;r=t+16|0;s=t;c[q>>2]=c[b>>2];c[q+4>>2]=c[b+4>>2];c[q+8>>2]=c[b+8>>2];c[q+12>>2]=c[b+12>>2];m=q+8|0;b=s+8|0;k=r+8|0;do if(a){c[r>>2]=c[a>>2];c[r+4>>2]=c[a+4>>2];c[r+8>>2]=c[a+8>>2];c[r+12>>2]=c[a+12>>2];if(!d){j=+h[q>>3];h[s>>3]=j*2.0-+h[r>>3];i=+h[m>>3];h[b>>3]=i*2.0-+h[k>>3];break}else{c[s>>2]=c[d>>2];c[s+4>>2]=c[d+4>>2];c[s+8>>2]=c[d+8>>2];c[s+12>>2]=c[d+12>>2];j=+h[q>>3];i=+h[m>>3];break}}else{c[s>>2]=c[d>>2];c[s+4>>2]=c[d+4>>2];c[s+8>>2]=c[d+8>>2];c[s+12>>2]=c[d+12>>2];j=+h[q>>3];h[r>>3]=j*2.0-+h[s>>3];i=+h[m>>3];h[k>>3]=i*2.0-+h[b>>3]}while(0);c[n>>2]=c[r>>2];c[n+4>>2]=c[r+4>>2];c[n+8>>2]=c[r+8>>2];c[n+12>>2]=c[r+12>>2];c[o>>2]=c[q>>2];c[o+4>>2]=c[q+4>>2];c[o+8>>2]=c[q+8>>2];c[o+12>>2]=c[q+12>>2];c[p>>2]=c[s>>2];c[p+4>>2]=c[s+4>>2];c[p+8>>2]=c[s+8>>2];c[p+12>>2]=c[s+12>>2];v=+mJ(n,o,p);u=+I(+v)*g;g=+J(+v)*g;h[e>>3]=u+j;h[e+8>>3]=g+i;h[f>>3]=j-u;h[f+8>>3]=i-g;l=t;return}function lJ(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;i=e<<1;j=c[d>>2]|0;k=c[b>>2]|0;h=0;l=0;while(1){if((h|0)>=(j|0))break;m=(c[k+(h<<2)>>2]|0)+l|0;h=h+1|0;l=m}m=j+1|0;c[d>>2]=m;m=KK(k,m<<2)|0;c[b>>2]=m;c[m+(h<<2)>>2]=i;c[a>>2]=KK(c[a>>2]|0,l+i<<4)|0;b=i+-1+l|0;h=0;while(1){if((h|0)>=(e|0))break;m=(c[a>>2]|0)+(h+l<<4)|0;k=f+(h<<4)|0;c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];c[m+12>>2]=c[k+12>>2];m=(c[a>>2]|0)+(b-h<<4)|0;k=g+(h<<4)|0;c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];c[m+12>>2]=c[k+12>>2];h=h+1|0}return}function mJ(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0;f=+h[b+8>>3];e=+h[b>>3];d=+O(+(+h[c+8>>3]-f),+(+h[c>>3]-e));e=+O(+(+h[a+8>>3]-f),+(+h[a>>3]-e));d=d-e;return +(e+(d>0.0?d+-6.283185307179586:d)*.5)}function nJ(a,b){a=a|0;b=b|0;var d=0;d=IK(24)|0;c[d+16>>2]=0;c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];c[d+12>>2]=c[a+12>>2];c[b+16>>2]=d;return d|0}function oJ(b){b=b|0;var c=0,d=0,e=0,f=0,g=0;c=b;g=b;a:while(1){d=0;while(1){e=c;c=c+1|0;e=a[e>>0]|0;if(!(e<<24>>24))break a;if(d<<24>>24){f=5;break}if(e<<24>>24!=92){f=10;break}else d=1}b:do if((f|0)==5){d=g+1|0;switch(e<<24>>24|0){case 114:{e=13;break b}case 108:case 110:{e=10;break b}default:break b}}else if((f|0)==10)d=g+1|0;while(0);a[g>>0]=e;g=d}a[g>>0]=0;return b|0}function pJ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=c[b>>2]|0;while(1){j=a[e>>0]|0;f=j<<24>>24;if(!(j<<24>>24)){h=3;break}g=e+1|0;if(j<<24>>24==44|(X1(f)|0)!=0)e=g;else break}if((h|0)==3)g=e+1|0;a:do switch(f|0){case 0:{f=0;break}case 41:case 40:{e=g;break}default:{h=d+4|0;i=d+8|0;g=j;while(1){if((qJ(g<<24>>24)|0)<<24>>24){f=1;break a}f=c[h>>2]|0;if(f>>>0>=(c[i>>2]|0)>>>0){iA(d,1)|0;f=c[h>>2]|0}c[h>>2]=f+1;a[f>>0]=g;j=e+1|0;e=j;g=a[j>>0]|0}}}while(0);c[b>>2]=e;return f|0}function qJ(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 rJ(a,b){a=a|0;b=b|0;return sJ(c[a>>2]|0,c[a+160>>2]|0,c[a+156>>2]|0,b)|0}function sJ(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+160|0;k=o+20|0;m=o+16|0;n=o;c[k>>2]=0;c[m>>2]=0;hA(n,128,o+24|0);kA(n,f)|0;g=n+4|0;f=c[g>>2]|0;if(f>>>0>=(c[n+8>>2]|0)>>>0){iA(n,1)|0;f=c[g>>2]|0}a[f>>0]=0;h=c[n>>2]|0;c[g>>2]=h;i=b+300|0;j=b+296|0;f=0;g=h;a:while(1){if(f){f=1;break}f=j6(g,c[i>>2]|0,k)|0;if(!f){f=0;break}g=j6(f,c[j>>2]|0,m)|0;h=(g|0)!=0;if(h)f=j6(0,c[j>>2]|0,m)|0;else f=0;switch(((f|0)!=0&1)+(h&1)&3){case 2:{g=tJ(b,g,0)|0;f=tJ(b,f,e)|0;h=(g|0)>(f|0);f=(f&g|0)>-1&(((h?g:f)|0)>=(d|0)&((h?f:g)|0)<=(d|0));g=0;continue a}case 1:{f=(tJ(b,g,d)|0)==(d|0);g=0;continue a}default:{f=0;g=0;continue a}}}lA(n);l=o;return f|0}function tJ(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=a[d>>0]|0;if(!(h<<24>>24==97?(f2(d,100697)|0)==0:0))f=3;a:do if((f|0)==3){if((uJ(d)|0)<<24>>24){e=d6(d)|0;break}g=c[b+308>>2]|0;if(!g)e=-1;else{b=c[b+312>>2]|0;e=1;while(1){if((e|0)>(b|0)){e=-1;break a}f=c[g+(e<<2)>>2]|0;if(h<<24>>24==(a[f>>0]|0)?(f2(d,f)|0)==0:0)break a;e=e+1|0}}}while(0);return e|0}function uJ(b){b=b|0;var c=0;while(1){c=a[b>>0]|0;if(!(c<<24>>24)){b=1;break}if(((c&255)+-48|0)>>>0<10)b=b+1|0;else{b=0;break}}return b|0}function vJ(a,b){a=a|0;b=b|0;if((+h[a+16>>3]>=+h[b>>3]?+h[b+16>>3]>=+h[a>>3]:0)?+h[a+24>>3]>=+h[b+8>>3]:0)a=+h[b+24>>3]>=+h[a+8>>3];else a=0;return a&1|0}function wJ(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;a:do if((c[b+156>>2]|0)>=2?(f=_O(e,c[47229]|0,195341)|0,(rJ(b,f)|0)<<24>>24==0):0)if(!(a[f>>0]|0))if(!(ZA(d,e)|0))f=1;else{f=ZA(d,e)|0;while(1){if(!f){f=0;break a}g=_O(f,c[47259]|0,195341)|0;if(!(a[g>>0]|0)){f=1;break a}if((rJ(b,g)|0)<<24>>24){f=1;break a}f=_A(d,f,e)|0}}else f=0;else f=1;while(0);return f|0}function xJ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+64|0;e=d+32|0;f=d;a=(c[a+16>>2]|0)+48|0;c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];c[f+20>>2]=c[a+20>>2];c[f+24>>2]=c[a+24>>2];c[f+28>>2]=c[a+28>>2];c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];c[e+24>>2]=c[b+24>>2];c[e+28>>2]=c[b+28>>2];b=(vJ(f,e)|0)&255;l=d;return b|0}function yJ(a,d){a=a|0;d=d|0;var f=0,g=0.0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0.0,w=0.0;s=c[a+152>>2]|0;t=_H(a)|0;c[t+4>>2]=2;c[t+8>>2]=d;c[t+12>>2]=8;n=d+16|0;if(s&16777216|0){if((e[(c[(uC(d)|0)+16>>2]|0)+178>>1]|0)>2){g=+h[(c[(c[n>>2]|0)+132>>2]|0)+16>>3]*72.0;g=+(~~(g+(g>=0.0?.5:-.5))|0)}else g=0.0;h[t+168>>3]=g}AJ(a,c[(c[n>>2]|0)+104>>2]|0,d);do if(s&4259840|0){if((c[t+208>>2]|0)==0?(b[t+260>>1]&1)==0:0)break;q=UM(d)|0;l=c[n>>2]|0;g=+h[l+16>>3];r=+h[l+24>>3];l=BJ(d)|0;a:do if((q|2|0)==3){m=c[(c[n>>2]|0)+12>>2]|0;if(!((CJ(m)|0)<<24>>24))f=0;else f=(c[m+4>>2]|l|0)!=0;o=t+264|0;if(!((s&524288|0)==0|((m|0)==0|f))){i=m+8|0;p=c[i>>2]|0;p=(p|0)<3?1:p;j=m+4|0;k=c[j>>2]|0;k=(k|0)>1?k:1;q=c[m+44>>2]|0;f=NA(d,103006)|0;if(!f)f=0;else f=d6(f)|0;f=(f+-4|0)>>>0>56?20:f;if(!(c[j>>2]|l)){c[o>>2]=0;i=HK(32)|0;f=c[n>>2]|0;w=+h[f+88>>3];h[i>>3]=g-w;v=+h[f+80>>3]*.5;h[i+8>>3]=r-v;h[i+16>>3]=g+w;h[i+24>>3]=r+v;f=2;break}i=c[i>>2]|0;if(((i|0)<3?+h[m+32>>3]==0.0:0)?+h[m+24>>3]==0.0:0){if(c[m>>2]|0){c[o>>2]=1;i=HK(32)|0;h[i>>3]=g;h[i+8>>3]=r;f=(k<<1)+-1|0;h[i+16>>3]=g+ +h[q+(f<<4)>>3];h[i+24>>3]=r+ +h[q+(f<<4)+8>>3];f=2;break}c[o>>2]=2;i=(k<<1)+-1|0;i=DJ(+h[q+(i<<4)>>3],+h[q+(i<<4)+8>>3],f)|0;j=0;while(1){if((j|0)>=(f|0))break a;q=i+(j<<4)|0;h[q>>3]=g+ +h[q>>3];q=i+(j<<4)+8|0;h[q>>3]=r+ +h[q>>3];j=j+1|0}}m=S(i,k+-1|0)|0;c[o>>2]=2;if((i|0)<(f|0)){i=HK(p<<4)|0;f=0;while(1){if((f|0)>=(p|0)){f=p;break a}o=f+m|0;h[i+(f<<4)>>3]=g+ +h[q+(o<<4)>>3];h[i+(f<<4)+8>>3]=r+ +h[q+(o<<4)+8>>3];f=f+1|0}}else{l=(i|0)/(f|0)|0;i=HK(f<<4)|0;j=0;k=0;while(1){if((j|0)>=(f|0))break a;p=k+m|0;h[i+(j<<4)>>3]=g+ +h[q+(p<<4)>>3];h[i+(j<<4)+8>>3]=r+ +h[q+(p<<4)+8>>3];j=j+1|0;k=k+l|0}}}else{f=o;u=32}}else{f=t+264|0;u=32}while(0);if((u|0)==32){c[f>>2]=0;i=HK(32)|0;f=c[n>>2]|0;h[i>>3]=g-+h[f+88>>3];w=+h[f+80>>3]*.5;h[i+8>>3]=r-w;h[i+16>>3]=g+ +h[f+96>>3];h[i+24>>3]=r+w;f=2}if(!(s&8192))LR(a,i,i,f)|0;c[t+272>>2]=i;c[t+268>>2]=f}while(0);FT(NA(d,100333)|0);YR(a,d);return}function zJ(a){a=a|0;ZR(a);$H(a);return}function AJ(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+144|0;j=m;f=NA(e,141358)|0;i=NA(e,141404)|0;k=NA(e,141391)|0;hA(j,128,m+16|0);if(!d)h=0;else h=c[d>>2]|0;if(!((f|0)!=0?(a[f>>0]|0)!=0:0))f=NA(e,111778)|0;g=bI(b,e,j)|0;if(!i)d=0;else d=hJ(i,e)|0;aI(b,h,f,d,k,g,e)|0;l6(d);lA(j);l=m;return}function BJ(b){b=b|0;var d=0,e=0;b=$O(b,c[47219]|0,195341)|0;a:do if(!(a[b>>0]|0))b=0;else{NI(b)|0;b=0;d=188404;while(1){e=c[d>>2]|0;if(!e)break a;e=(f2(e,111402)|0)==0;b=e?1:b;d=d+4|0}}while(0);return b|0}function CJ(a){a=a|0;var b=0.0;if(((c[a+8>>2]|0)==4?(b=+h[a+16>>3],((~~(b+(b>=0.0?.5:-.5))|0)%90|0|0)==0):0)?+h[a+24>>3]==0.0:0)a=+h[a+32>>3]==0.0&1;else a=0;return a|0}function DJ(a,b,c){a=+a;b=+b;c=c|0;var d=0.0,e=0,f=0.0,g=0;f=6.283185307179586/+(c|0);g=HK(c<<4)|0;d=0.0;e=0;while(1){if((e|0)>=(c|0))break;h[g+(e<<4)>>3]=+I(+d)*a;h[g+(e<<4)+8>>3]=+J(+d)*b;d=f+d;e=e+1|0}return g|0}function EJ(b,d){b=b|0;d=d|0;var e=0;a:do if((c[b+156>>2]|0)>=2?(e=_O(d,DA(d,0,101811,0)|0,195341)|0,(rJ(b,e)|0)<<24>>24==0):0)if(!(a[e>>0]|0)){e=gC(d)|0;while(1){if(!e){e=0;break a}if((wJ(b,d,e)|0)<<24>>24){e=1;break a}e=hC(d,e)|0}}else e=0;else e=1;while(0);return e|0}function FJ(a,b){a=a|0;b=b|0;var d=0;d=_H(a)|0;c[d+4>>2]=1;c[d+8>>2]=b;c[d+12>>2]=1;AJ(a,c[(c[b+16>>2]|0)+12>>2]|0,b);SR(a,b);return}function GJ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;b=NA(b,141385)|0;a:do if((b|0)!=0?(a[b>>0]|0)!=0:0){NI(b)|0;e=188404;b=0;while(1){g=e;while(1){f=c[g>>2]|0;if(!f){e=188404;break a}e=g+4|0;if(!(f2(f,111402)|0)){f=1;break}if(!(f2(f,106635)|0)){e=g;h=9;break}if(!(f2(f,106642)|0)){e=g;h=11;break}if(!(f2(f,106617)|0)){e=g;h=13;break}else g=e}if((h|0)==9)while(1){h=0;i=e;e=e+4|0;f=c[e>>2]|0;c[i>>2]=f;if(!f){e=g;f=3;break}else h=9}else if((h|0)==11)while(1){h=0;f=e;e=e+4|0;i=c[e>>2]|0;c[f>>2]=i;if(!i){e=g;f=64;break}else h=11}else if((h|0)==13)while(1){h=0;f=e;e=e+4|0;i=c[e>>2]|0;c[f>>2]=i;if(!i){e=g;f=4;break}else h=13}b=b|f}}else{e=0;b=0}while(0);c[d>>2]=b;return e|0}function HJ(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,m=0;k=l;l=l+16|0;i=k;j=k+4|0;c[j>>2]=0;m=(eI(b,0,j)|0)==0;j=c[j>>2]|0;if((m?(f=c[j>>2]|0,(f|0)>=2):0)?(h=j+8|0,(c[c[h>>2]>>2]|0)!=0):0){if((f|0)>2)dA(0,100716,i)|0;m=IK((D3(b)|0)+1|0)|0;c[d>>2]=m;O3(m,c[c[h>>2]>>2]|0)|0;if(!(c[(c[h>>2]|0)+12>>2]|0))c[d+4>>2]=0;else{m=c[d>>2]|0;m=m+((D3(m)|0)+1)|0;c[d+4>>2]=m;O3(m,c[(c[h>>2]|0)+12>>2]|0)|0}b=c[h>>2]|0;do if(!(a[b+8>>0]|0))if(!(a[b+20>>0]|0)){g[e>>2]=0.0;break}else{g[e>>2]=1.0-+g[b+16>>2];break}else c[e>>2]=c[b+4>>2];while(0);fI(j);b=1}else{c[d>>2]=0;fI(j);b=0}l=k;return b|0}function IJ(a,b){a=a|0;b=b|0;TR(a,b);$H(a);return}function JJ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,i=0,j=0.0,k=0,m=0,n=0,o=0.0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0;A=l;l=l+96|0;s=A+48|0;v=A+16|0;z=A+8|0;y=A;w=A+80|0;c[w>>2]=1e3;f=IK(16e3)|0;x=a+256|0;e=1;d=1;i=0;t=0;u=c[b+8>>2]|0;while(1){if((t|0)>=(c[b>>2]|0))break;p=c[u>>2]|0;k=u+80|0;m=f+8|0;q=u+8|0;n=q+4|0;a:do switch(p|0){case 1:case 0:{c[v>>2]=c[k>>2];c[v+4>>2]=c[k+4>>2];c[v+8>>2]=c[k+8>>2];c[v+12>>2]=c[k+12>>2];c[v+16>>2]=c[k+16>>2];c[v+20>>2]=c[k+20>>2];c[v+24>>2]=c[k+24>>2];c[v+28>>2]=c[k+28>>2];c[s>>2]=c[x>>2];c[s+4>>2]=c[x+4>>2];c[s+8>>2]=c[x+8>>2];c[s+12>>2]=c[x+12>>2];c[s+16>>2]=c[x+16>>2];c[s+20>>2]=c[x+20>>2];c[s+24>>2]=c[x+24>>2];c[s+28>>2]=c[x+28>>2];if(vJ(v,s)|0){B=+h[q>>3];j=+h[u+24>>3];h[f>>3]=B-j;o=+h[u+16>>3];r=+h[u+32>>3];h[m>>3]=o-r;h[f+16>>3]=B+j;h[f+24>>3]=o+r;kS(a,f,2,(p|0)==0?d:0)}break}case 3:case 2:{c[v>>2]=c[k>>2];c[v+4>>2]=c[k+4>>2];c[v+8>>2]=c[k+8>>2];c[v+12>>2]=c[k+12>>2];c[v+16>>2]=c[k+16>>2];c[v+20>>2]=c[k+20>>2];c[v+24>>2]=c[k+24>>2];c[v+28>>2]=c[k+28>>2];c[s>>2]=c[x>>2];c[s+4>>2]=c[x+4>>2];c[s+8>>2]=c[x+8>>2];c[s+12>>2]=c[x+12>>2];c[s+16>>2]=c[x+16>>2];c[s+20>>2]=c[x+20>>2];c[s+24>>2]=c[x+24>>2];c[s+28>>2]=c[x+28>>2];if(vJ(v,s)|0){f=KJ(f,w,c[n>>2]|0,c[q>>2]|0)|0;lS(a,f,c[q>>2]|0,(c[u>>2]|0)==2?d:0)}break}case 5:case 4:{c[v>>2]=c[k>>2];c[v+4>>2]=c[k+4>>2];c[v+8>>2]=c[k+8>>2];c[v+12>>2]=c[k+12>>2];c[v+16>>2]=c[k+16>>2];c[v+20>>2]=c[k+20>>2];c[v+24>>2]=c[k+24>>2];c[v+28>>2]=c[k+28>>2];c[s>>2]=c[x>>2];c[s+4>>2]=c[x+4>>2];c[s+8>>2]=c[x+8>>2];c[s+12>>2]=c[x+12>>2];c[s+16>>2]=c[x+16>>2];c[s+20>>2]=c[x+20>>2];c[s+24>>2]=c[x+24>>2];c[s+28>>2]=c[x+28>>2];if(vJ(v,s)|0){f=KJ(f,w,c[n>>2]|0,c[q>>2]|0)|0;nS(a,f,c[q>>2]|0,0,0,(c[u>>2]|0)==4?d&255:0)}break}case 6:{c[v>>2]=c[k>>2];c[v+4>>2]=c[k+4>>2];c[v+8>>2]=c[k+8>>2];c[v+12>>2]=c[k+12>>2];c[v+16>>2]=c[k+16>>2];c[v+20>>2]=c[k+20>>2];c[v+24>>2]=c[k+24>>2];c[v+28>>2]=c[k+28>>2];c[s>>2]=c[x>>2];c[s+4>>2]=c[x+4>>2];c[s+8>>2]=c[x+8>>2];c[s+12>>2]=c[x+12>>2];c[s+16>>2]=c[x+16>>2];c[s+20>>2]=c[x+20>>2];c[s+24>>2]=c[x+24>>2];c[s+28>>2]=c[x+28>>2];if(vJ(v,s)|0){f=KJ(f,w,c[n>>2]|0,c[q>>2]|0)|0;oS(a,f,c[q>>2]|0)}break}case 7:{c[v>>2]=c[k>>2];c[v+4>>2]=c[k+4>>2];c[v+8>>2]=c[k+8>>2];c[v+12>>2]=c[k+12>>2];c[v+16>>2]=c[k+16>>2];c[v+20>>2]=c[k+20>>2];c[v+24>>2]=c[k+24>>2];c[v+28>>2]=c[k+28>>2];c[s>>2]=c[x>>2];c[s+4>>2]=c[x+4>>2];c[s+8>>2]=c[x+8>>2];c[s+12>>2]=c[x+12>>2];c[s+16>>2]=c[x+16>>2];c[s+20>>2]=c[x+20>>2];c[s+24>>2]=c[x+24>>2];c[s+28>>2]=c[x+28>>2];if(vJ(v,s)|0){h[f>>3]=+h[q>>3];h[m>>3]=+h[u+16>>3];q=c[u+112>>2]|0;c[s>>2]=c[f>>2];c[s+4>>2]=c[f+4>>2];c[s+8>>2]=c[f+8>>2];c[s+12>>2]=c[f+12>>2];eS(a,s,q)}break}case 8:{hS(a,c[q>>2]|0);d=1;break}case 9:{fS(a,c[q>>2]|0);d=1;break}case 13:{d=u+16|0;if((c[q>>2]|0)!=2){p=c[d+36>>2]|0;q=c[p+12>>2]|0;B=+g[p+8>>2];d=~~(+O(+(+h[u+40>>3]-+h[u+24>>3]),+(+h[u+32>>3]-+h[d>>3]))*180.0/3.141592653589793);hS(a,c[p+4>>2]|0);iS(a,q,d,B);d=2;break a}q=c[u+68>>2]|0;k=c[q+4>>2]|0;m=c[q+12>>2]|0;r=+g[q+8>>2];o=+h[u+40>>3];j=+h[d>>3];if(o==j?+h[u+48>>3]==+h[u+24>>3]:0)d=0;else d=~~(+L(+((j-o)/+h[u+32>>3]))*180.0/3.141592653589793);hS(a,k);iS(a,m,d,r);d=3;break}case 14:{dA(0,100782,y)|0;break}case 12:{if(!e)e=0;else{dA(0,100822,z)|0;e=0}break}case 11:{NI(c[q>>2]|0)|0;jS(a,188404);i=188404;break}default:{}}while(0);t=t+1|0;u=u+120|0}if(i|0)jS(a,c[(c[a>>2]|0)+336>>2]|0);l6(f);l=A;return}function KJ(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=c[b>>2]|0;f=g<<1;f=(f|0)>(e|0)?f:e;if((g|0)<(e|0)){a=KK(a,f<<4)|0;c[b>>2]=f}b=0;while(1){if((b|0)>=(e|0))break;h[a+(b<<4)>>3]=+h[d+(b*24|0)>>3];h[a+(b<<4)+8>>3]=+h[d+(b*24|0)+8>>3];b=b+1|0}return a|0}function LJ(a,b){a=a|0;b=b|0;var d=0;d=c[b>>2]|0;c[a>>2]=c[b+4>>2];c[a+4>>2]=d;return}function MJ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=d+16|0;f=1;while(1){d=c[g>>2]|0;if((f|0)>(c[d+180>>2]|0))break;e=c[(c[d+184>>2]|0)+(f<<2)>>2]|0;MJ(b,e);d=NA(e,141126)|0;if(d|0?a[d>>0]|0:0)fS(b,d);d=NA(e,138032)|0;if(d|0?a[d>>0]|0:0)fS(b,d);d=NA(e,141280)|0;if(d|0?a[d>>0]|0:0)fS(b,d);d=NA(e,101719)|0;if(d|0?a[d>>0]|0:0)hS(b,d);d=NA(e,101747)|0;if(d|0?a[d>>0]|0:0)fS(b,d);f=f+1|0}return}function NJ(a){a=a|0;var b=0,d=0,e=0;b=c[47171]|0;if(!b){b=Sz(20672,c[4591]|0)|0;c[47171]=b}if(!(eb[c[b>>2]&63](b,a,4)|0)){d=c[47171]|0;e=c[d>>2]|0;b=Y3(a)|0;eb[e&63](d,b,1)|0;b=1}else b=0;return b|0}function OJ(a,b,c){a=a|0;b=b|0;c=c|0;l6(b);return}function PJ(a){a=a|0;var b=0;b=c[47172]|0;if(!a){if((b|0)>0?(b=b+-1|0,c[47172]=b,(b|0)==0):0){L3(1,c[47173]|0)|0;l6(c[47173]|0)}}else{c[47172]=b+1;if(!b){c[47173]=Y3(L3(1,0)|0)|0;L3(1,153740)|0}}return}function QJ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0;v=l;l=l+96|0;s=v+72|0;r=v+56|0;q=v+48|0;u=v+32|0;t=v+24|0;f=v+8|0;e=v;if(a[195234]|0)RO();do if((RC(d,137786,0,1)|0)!=0?(p=d+16|0,(c[(c[p>>2]|0)+8>>2]|0)!=0):0){RJ(d);SJ(b,d);TJ(b,d);PJ(1);k=b+56|0;m=b+184|0;n=b+192|0;o=b+28|0;j=CF(b)|0;a:while(1){if(!j){i=33;break}e=c[k>>2]|0;f=j+20|0;if(!e){c[f>>2]=0;e=0}else{c[f>>2]=c[e+8>>2];e=c[e+12>>2]|0}c[j+24>>2]=e;c[j+12>>2]=b;c[j+28>>2]=c[m>>2];c[j+620>>2]=25812;c[j+624>>2]=c[6481];if(!(c[(c[p>>2]|0)+8>>2]|0)){i=13;break}f=j+52|0;i=HR(j,c[f>>2]|0)|0;c[j+56>>2]=i;switch(i|0){case 999:{i=16;break a}case 21:{e=1;break}case 24:{e=520;break}default:e=UJ(d)|0}g=j+152|0;c[g>>2]=c[g>>2]|e;e=c[n>>2]|0;do if(!e)i=24;else{if(c[e+152>>2]&32|0?(f2(c[f>>2]|0,c[e+52>>2]|0)|0)==0:0){e=c[47174]|0;if(!e){i=27;break}c[e+8>>2]=j;c[j+36>>2]=c[e+36>>2];i=29;break}JR(e);c[n>>2]=0;c[o>>2]=0;i=24}while(0);if((i|0)==24){c[47174]=0;i=27}if((i|0)==27?(i=0,(IR(j)|0)==0):0){c[n>>2]=j;i=29}if((i|0)==29){c[j+8>>2]=0;c[j+104>>2]=25928;VJ(j);WJ(j);XJ(j,d);YJ(j,d);ZJ(j,d);if(!(c[g>>2]&128))qI(j,d);c[47174]=j}j=DF(b)|0}if((i|0)==13){dA(1,100980,t)|0;PJ(0);if(!(a[195234]|0)){e=-1;break}e=c[15715]|0;t=HB(d)|0;w=+SO();c[u>>2]=t;h[u+8>>3]=w;z4(e,100951,u)|0;e=-1;break}else if((i|0)==16){c[q>>2]=c[f>>2];dA(1,101001,q)|0;PJ(0);if(!(a[195234]|0)){e=-1;break}e=c[15715]|0;u=HB(d)|0;w=+SO();c[r>>2]=u;h[r+8>>3]=w;z4(e,100951,r)|0;e=-1;break}else if((i|0)==33){PJ(0);if(!(a[195234]|0)){e=0;break}e=c[15715]|0;u=HB(d)|0;w=+SO();c[s>>2]=u;h[s+8>>3]=w;z4(e,100951,s)|0;e=0;break}}else i=5;while(0);if((i|0)==5){dA(1,100903,e)|0;if(!(a[195234]|0))e=-1;else{e=c[15715]|0;u=HB(d)|0;w=+SO();c[f>>2]=u;h[f+8>>3]=w;z4(e,100951,f)|0;e=-1}}l=v;return e|0}function RJ(a){a=a|0;var b=0;b=gC(a)|0;while(1){if(!b)break;cK(a,b);b=hC(a,b)|0}return}function SJ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0.0;o=l;l=l+32|0;k=o+24|0;f=o+16|0;j=o+8|0;n=o;c[b+168>>2]=d;g=b+293|0;a[g>>0]=0;e=NA(d,105797)|0;if(e|0?(c[f>>2]=j,c[f+4>>2]=n,i=q4(e,105804,f)|0,(i|0)>0):0){p=+h[j>>3]*72.0;e=b+208|0;h[e>>3]=p;h[b+200>>3]=p;if((i|0)!=1)h[e>>3]=+h[n>>3]*72.0;a[g>>0]=1}f=b+292|0;a[f>>0]=0;e=NA(d,101403)|0;if(e|0?(c[k>>2]=j,c[k+4>>2]=n,m=q4(e,105804,k)|0,(m|0)>0):0){p=+h[j>>3]*72.0;e=b+224|0;h[e>>3]=p;h[b+216>>3]=p;if((m|0)!=1)h[e>>3]=+h[n>>3]*72.0;a[f>>0]=1}e=b+294|0;a[e>>0]=0;f=b+232|0;g=d+16|0;n=(c[(c[g>>2]|0)+8>>2]|0)+48|0;c[f>>2]=c[n>>2];c[f+4>>2]=c[n+4>>2];c[f+8>>2]=c[n+8>>2];c[f+12>>2]=c[n+12>>2];f=c[(c[g>>2]|0)+8>>2]|0;if(+h[f+48>>3]>.001?+h[f+56>>3]>.001:0)a[e>>0]=1;c[b+288>>2]=a[f+81>>0]|0?90:0;e=b+196|0;c[e>>2]=101407;f=NA(d,101410)|0;if(f|0?a[f>>0]|0:0)c[e>>2]=f;n=b+256|0;m=(c[g>>2]|0)+16|0;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];c[n+8>>2]=c[m+8>>2];c[n+12>>2]=c[m+12>>2];c[n+16>>2]=c[m+16>>2];c[n+20>>2]=c[m+20>>2];c[n+24>>2]=c[m+24>>2];c[n+28>>2]=c[m+28>>2];c[47195]=DA(d,0,101773,0)|0;c[47196]=DA(d,0,101764,0)|0;c[b+320>>2]=$O(0,c[47213]|0,108295)|0;h[b+328>>3]=+YO(0,c[47212]|0,14.0,1.0);c[b+336>>2]=20708;c[b+188>>2]=HB(d)|0;l=o;return}function TJ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=b+304|0;f=c[e>>2]|0;if(f|0){l6(f);c[e>>2]=0}g=b+308|0;e=c[g>>2]|0;if(e|0){l6(e);c[g>>2]=0}h=b+316|0;e=c[h>>2]|0;if(e|0){l6(e);c[h>>2]=0}e=NA(d,101154)|0;f=b+312|0;if(e){c[f>>2]=aK(b,d,e)|0;e=NA(d,101161)|0;if(e|0?a[e>>0]|0:0)c[h>>2]=bK(b,e)|0}else{c[g>>2]=0;c[f>>2]=1}return}function UJ(b){b=b|0;var c=0;b=NA(b,101122)|0;a:do if(!b)b=0;else{c=b+1|0;switch(a[b>>0]|0){case 110:{if(!(f2(c,101134)|0))b=1;else{b=0;break a}break}case 101:{if(!(f2(c,101144)|0))b=16;else{b=0;break a}break}default:{b=0;break a}}}while(0);return b|0}function VJ(b){b=b|0;var d=0,e=0.0,f=0;d=c[b>>2]|0;f=b+240|0;if(!(a[d+292>>0]|0)){if((c[b+56>>2]|0)==300)e=+h[(c[b+68>>2]|0)+8>>3];else e=4.0;h[b+248>>3]=e;h[f>>3]=e}else{b=d+216|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2]}return}function WJ(b){b=b|0;var d=0,e=0;d=c[b>>2]|0;e=b+416|0;a:do if(!(a[d+293>>0]|0))switch(c[b+56>>2]|0){case 300:{d=(c[b+84>>2]|0)+8|0;c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];c[e+12>>2]=c[d+12>>2];break a}case 30:case 21:case 22:case 4:case 3:case 2:{h[b+424>>3]=36.0;h[e>>3]=36.0;break a}default:{c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;break a}}else{d=d+200|0;c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];c[e+12>>2]=c[d+12>>2]}while(0);return}function XJ(b,d){b=b|0;d=d|0;var e=0.0,f=0,g=0;g=c[(c[b>>2]|0)+192>>2]|0;e=+h[(c[(c[d+16>>2]|0)+8>>2]|0)+24>>3];d=b+432|0;f=b+440|0;do if(!(e!=0.0)){if(g|0?a[g+128>>0]|0:0){g=g+112|0;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];c[d+12>>2]=c[g+12>>2];break}if((c[b+56>>2]|0)==300){g=(c[b+84>>2]|0)+40|0;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];c[d+12>>2]=c[g+12>>2];break}else{h[f>>3]=96.0;h[d>>3]=96.0;break}}else{h[f>>3]=e;h[d>>3]=e}while(0);return}function YJ(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,g=0,i=0.0,j=0.0,k=0.0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=l;l=l+112|0;u=B+80|0;v=B+56|0;t=B+40|0;w=B+32|0;x=B+24|0;y=B+16|0;z=B+8|0;A=B;m=c[b>>2]|0;p=+h[m+272>>3];r=+h[m+280>>3];q=+h[m+256>>3];s=+h[m+264>>3];f=+h[b+240>>3];e=q-f;h[b+208>>3]=e;i=+h[b+248>>3];j=s-i;h[b+216>>3]=j;f=p+f;h[b+224>>3]=f;i=r+i;h[b+232>>3]=i;e=f-e;j=i-j;h[y>>3]=1.0;g=c[(c[d+16>>2]|0)+8>>2]|0;i=+h[g+64>>3];do if(i>.001?(k=+h[g+72>>3],k>.001):0){e=e==0.0?i:e;f=j==0.0?k:j;if(!(i<e|k<f)?!(k>f&(i>e&(a[g+80>>0]|0)!=0)):0){k=e;j=f;i=1.0;break}o=i/e<k/f;i=(o?i:k)/(o?e:f);h[y>>3]=i;k=e;j=f}else{k=e;i=1.0}while(0);f=(p+q)*.5;h[z>>3]=f;e=(r+s)*.5;h[A>>3]=e;c[b+360>>2]=c[m+288>>2];k=k*i;h[w>>3]=k;j=j*i;h[x>>3]=j;o=NA(d,101053)|0;if(o){m=k6((D3(o)|0)+1|0)|0;n=k6((D3(o)|0)+1|0)|0;c[t>>2]=w;c[t+4>>2]=x;c[t+8>>2]=y;c[t+12>>2]=m;g=d+60|0;do if((q4(o,101062,t)|0)==4){g=qC(c[g>>2]|0,m,0)|0;if(g|0){v=c[g+16>>2]|0;h[z>>3]=+h[v+16>>3];h[A>>3]=+h[v+24>>3]}}else{c[v>>2]=w;c[v+4>>2]=x;c[v+8>>2]=y;c[v+12>>2]=m;c[v+16>>2]=n;if((q4(o,101082,v)|0)!=4){c[u>>2]=w;c[u+4>>2]=x;c[u+8>>2]=y;c[u+12>>2]=z;c[u+16>>2]=A;q4(o,101102,u)|0;break}g=qC(c[g>>2]|0,m,0)|0;if(g|0){v=c[g+16>>2]|0;h[z>>3]=+h[v+16>>3];h[A>>3]=+h[v+24>>3]}}while(0);l6(m);l6(n);k=+h[w>>3];j=+h[x>>3];i=+h[y>>3];f=+h[z>>3];e=+h[A>>3]}h[b+368>>3]=k;h[b+376>>3]=j;h[b+352>>3]=i;h[b+336>>3]=f;h[b+344>>3]=e;l=B;return}function ZJ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0,j=0.0,k=0.0,m=0.0,n=0.0,o=0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0.0;M=l;l=l+224|0;J=M+200|0;x=M+176|0;C=M+152|0;G=M+120|0;D=M+96|0;F=M+80|0;e=M+184|0;t=M+168|0;u=M+144|0;w=M+136|0;v=M+112|0;y=M+64|0;z=M+48|0;A=M+32|0;B=M+16|0;K=M+8|0;L=M;s=c[b>>2]|0;c[F>>2]=0;c[F+4>>2]=0;c[F+8>>2]=0;c[F+12>>2]=0;H=b+368|0;c[G>>2]=c[H>>2];c[G+4>>2]=c[H+4>>2];c[G+8>>2]=c[H+8>>2];c[G+12>>2]=c[H+12>>2];H=b+360|0;if(c[H>>2]|0){c[J>>2]=c[G>>2];c[J+4>>2]=c[G+4>>2];c[J+8>>2]=c[G+8>>2];c[J+12>>2]=c[G+12>>2];_J(e,J);c[G>>2]=c[e>>2];c[G+4>>2]=c[e+4>>2];c[G+8>>2]=c[e+8>>2];c[G+12>>2]=c[e+12>>2]}E=b+416|0;c[D>>2]=c[E>>2];c[D+4>>2]=c[E+4>>2];c[D+8>>2]=c[E+8>>2];c[D+12>>2]=c[E+12>>2];E=D+8|0;I=G+8|0;q=C+8|0;o=b+204|0;f=b+164|0;i=b+168|0;if((a[s+294>>0]|0)!=0?(c[b+152>>2]&32|0)!=0:0){m=+h[s+232>>3]-+h[D>>3]*2.0;h[C>>3]=m;k=+h[s+240>>3]-+h[E>>3]*2.0;h[q>>3]=k;if(!(m<.0001)){p=+h[G>>3];e=~~(p/m);c[f>>2]=e;if(p-m*+(e|0)>.0001){e=e+1|0;r=8}}else{e=1;r=8}if((r|0)==8)c[f>>2]=e;j=+h[I>>3];if(!(k<.0001)){f=~~(j/k);c[i>>2]=f;if(j-k*+(f|0)>.0001){f=f+1|0;r=12}}else{f=1;r=12}if((r|0)==12)c[i>>2]=f;c[o>>2]=S(f,e)|0;g=+h[(+h[G>>3]<m?G:C)>>3];h[G>>3]=g;e=G;j=+h[(j<k?G:C)+8>>3];r=21}else{if(c[b+68>>2]|0){e=c[b+84>>2]|0;g=+h[e+24>>3]-+h[D>>3]*2.0;g=g<0.0?0.0:g;h[C>>3]=g;p=+h[e+32>>3]-+h[E>>3]*2.0;h[q>>3]=p;if(p<0.0){e=q;r=17}else j=g}else{h[q>>3]=0.0;e=C;r=17}if((r|0)==17){h[e>>3]=0.0;j=+h[C>>3]}c[o>>2]=1;c[i>>2]=1;c[f>>2]=1;g=+h[G>>3];if(j<g){h[C>>3]=g;m=g}else m=j;j=+h[q>>3];k=+h[I>>3];if(j<k){e=C;j=k;r=21}else p=j}if((r|0)==21){h[e+8>>3]=j;p=+h[q>>3]}n=+h[D>>3];q=b+432|0;k=+h[q>>3]*(m+n*2.0)/72.0;c[b+448>>2]=~~(k+(k>=0.0?.5:-.5));k=+h[E>>3];r=b+440|0;j=+h[r>>3]*(p+k*2.0)/72.0;c[b+452>>2]=~~(j+(j>=0.0?.5:-.5));i=b+188|0;o=b+180|0;e=b+172|0;f=s+196|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;$J(t,b,a[c[f>>2]>>0]|0);s=t;t=c[s+4>>2]|0;e=o;c[e>>2]=c[s>>2];c[e+4>>2]=t;$J(u,b,a[(c[f>>2]|0)+1>>0]|0);e=u;u=c[e>>2]|0;e=c[e+4>>2]|0;t=i;c[t>>2]=u;c[t+4>>2]=e;u=u+(c[o>>2]|0)|0;if(!((((u|0)>-1?u:0-u|0)|0)==1?(u=e+(c[b+184>>2]|0)|0,(((u|0)>-1?u:0-u|0)|0)==1):0)){$J(w,b,66);t=w;w=c[t+4>>2]|0;u=o;c[u>>2]=c[t>>2];c[u+4>>2]=w;$J(v,b,76);u=v;v=c[u+4>>2]|0;w=i;c[w>>2]=c[u>>2];c[w+4>>2]=v;c[x>>2]=c[f>>2];dA(0,101033,x)|0}e=F+8|0;if(a[(c[(c[d+16>>2]|0)+8>>2]|0)+82>>0]|0){if(m>g){m=(m-g)*.5;h[F>>3]=m}else m=0.0;j=+h[I>>3];if(p>j){j=(p-j)*.5;h[e>>3]=j}else j=0.0}else{j=0.0;m=0.0}if(!(c[H>>2]|0))i=1;else{c[J>>2]=c[G>>2];c[J+4>>2]=c[G+4>>2];c[J+8>>2]=c[G+8>>2];c[J+12>>2]=c[G+12>>2];_J(y,J);c[G>>2]=c[y>>2];c[G+4>>2]=c[y+4>>2];c[G+8>>2]=c[y+8>>2];c[G+12>>2]=c[y+12>>2];c[J>>2]=c[C>>2];c[J+4>>2]=c[C+4>>2];c[J+8>>2]=c[C+8>>2];c[J+12>>2]=c[C+12>>2];_J(z,J);c[C>>2]=c[z>>2];c[C+4>>2]=c[z+4>>2];c[C+8>>2]=c[z+8>>2];c[C+12>>2]=c[z+12>>2];c[J>>2]=c[D>>2];c[J+4>>2]=c[D+4>>2];c[J+8>>2]=c[D+8>>2];c[J+12>>2]=c[D+12>>2];_J(A,J);c[D>>2]=c[A>>2];c[D+4>>2]=c[A+4>>2];c[D+8>>2]=c[A+8>>2];c[D+12>>2]=c[A+12>>2];c[J>>2]=c[F>>2];c[J+4>>2]=c[F+4>>2];c[J+8>>2]=c[F+8>>2];c[J+12>>2]=c[F+12>>2];_J(B,J);c[F>>2]=c[B>>2];c[F+4>>2]=c[B+4>>2];c[F+8>>2]=c[B+8>>2];c[F+12>>2]=c[B+12>>2];n=+h[D>>3];m=+h[F>>3];k=+h[E>>3];j=+h[e>>3];g=+h[G>>3];i=(c[H>>2]|0)==0}n=n+m;h[b+384>>3]=n;j=k+j;h[b+392>>3]=j;m=n+g;h[b+400>>3]=m;N=+h[I>>3];p=j+N;h[b+408>>3]=p;k=+h[b+352>>3];h[b+320>>3]=g/k;h[b+328>>3]=N/k;k=+h[q>>3];n=n*k/72.0;f=b+456|0;c[f>>2]=~~(n+(n>=0.0?.5:-.5));n=+h[r>>3];j=j*n/72.0;c[b+460>>2]=~~(j+(j>=0.0?.5:-.5));m=k*m/72.0;e=b+464|0;c[e>>2]=~~(m+(m>=0.0?.5:-.5));p=n*p/72.0;c[b+468>>2]=~~(p+(p>=0.0?.5:-.5));if(!i){c[J>>2]=c[f>>2];c[J+4>>2]=c[f+4>>2];LJ(K,J);I=K;K=c[I+4>>2]|0;b=f;c[b>>2]=c[I>>2];c[b+4>>2]=K;c[J>>2]=c[e>>2];c[J+4>>2]=c[e+4>>2];LJ(L,J);b=L;K=c[b+4>>2]|0;L=e;c[L>>2]=c[b>>2];c[L+4>>2]=K}l=M;return}function _J(a,b){a=a|0;b=b|0;var c=0.0;c=+h[b>>3];h[a>>3]=+h[b+8>>3];h[a+8>>3]=c;return}function $J(a,b,d){a=a|0;b=b|0;d=d|0;d=(d<<24>>24)+-66|0;switch(d>>>1|d<<31|0){case 9:{c[b+176>>2]=(c[b+168>>2]|0)+-1;b=0;d=-1;break}case 0:{b=0;d=1;break}case 5:{b=1;d=0;break}case 8:{c[b+172>>2]=(c[b+164>>2]|0)+-1;b=-1;d=0;break}default:{b=0;d=0}}c[a>>2]=b;c[a+4>>2]=d;return}function aK(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=l;l=l+16|0;g=j;f=NA(d,101274)|0;i=b+296|0;c[i>>2]=(f|0)==0?101283:f;d=NA(d,101287)|0;f=b+300|0;d=(d|0)==0?101300:d;c[f>>2]=d;d=h6(c[i>>2]|0,d)|0;if(d|0){c[g>>2]=a[d>>0];dA(0,101302,g)|0;c[f>>2]=195341}d=Y3(e)|0;c[b+304>>2]=d;h=b+308|0;f=0;b=0;while(1){e=i6(d,c[i>>2]|0)|0;if(!e)break;g=b+1|0;if((b|0)<(f|0))d=c[h>>2]|0;else{f=f+128|0;d=c[h>>2]|0;b=f<<2;if(!d)d=IK(b)|0;else d=KK(d,b)|0;c[h>>2]=d}c[d+(g<<2)>>2]=e;b=g;d=0}if(b|0){i=KK(c[h>>2]|0,(b<<2)+8|0)|0;c[h>>2]=i;c[i>>2]=0;c[(c[h>>2]|0)+(b+1<<2)>>2]=0}l=j;return b|0}function bK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;k=m;j=a+312|0;d=IK((c[j>>2]<<2)+8|0)|0;e=0;i=1;while(1){g=c[j>>2]|0;h=e+1|0;f=d+(h<<2)|0;if((i|0)>(g|0))break;if((sJ(a,i,g,b)|0)<<24>>24){c[f>>2]=i;e=h}i=i+1|0}if(!e){c[k>>2]=b;dA(0,101173,k)|0;l6(d);d=0}else{c[d>>2]=e;c[f>>2]=(c[j>>2]|0)+1}l=m;return d|0}function cK(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,g=0.0;d=c[b+16>>2]|0;g=+h[d+16>>3];h[d+48>>3]=g-+h[d+88>>3];f=+h[d+24>>3];e=+h[d+80>>3]*.5;h[d+56>>3]=f-e;h[d+64>>3]=g+ +h[d+96>>3];h[d+72>>3]=f+e;b=UA(a,b)|0;while(1){if(!b)break;dK(b);b=WA(a,b)|0}return}function dK(a){a=a|0;a=c[(c[a+16>>2]|0)+8>>2]|0;if(a|0)eK(a);return}function eK(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=l;l=l+240|0;v=C+192|0;u=C+176|0;w=C+64|0;x=C+32|0;y=C;z=C+144|0;A=C+112|0;B=a+4|0;if((c[B>>2]|0)<=0)Aa(101441,100207,3994,101455);b=c[a>>2]|0;d=w;e=b;f=d+48|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(f|0));d=v;e=b;f=d+48|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(f|0));fK(x,v);i=x+8|0;j=y+8|0;k=x+16|0;m=y+16|0;n=x+24|0;o=y+24|0;p=w+8|0;q=w+12|0;r=w+32|0;s=w+4|0;t=w+16|0;g=0;while(1){if((g|0)>=(c[B>>2]|0))break;if((g|0)>0){b=(c[a>>2]|0)+(g*48|0)|0;d=w;e=b;f=d+48|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(f|0));d=v;e=b;f=d+48|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(f|0));fK(y,v);h[x>>3]=+h[(+h[x>>3]<+h[y>>3]?x:y)>>3];h[i>>3]=+h[(+h[i>>3]<+h[j>>3]?x:y)+8>>3];h[k>>3]=+h[(+h[k>>3]>+h[m>>3]?x:y)+16>>3];h[n>>3]=+h[(+h[n>>3]>+h[o>>3]?x:y)+24>>3]}b=c[p>>2]|0;if(b|0){f=c[w>>2]|0;c[u>>2]=c[t>>2];c[u+4>>2]=c[t+4>>2];c[u+8>>2]=c[t+8>>2];c[u+12>>2]=c[t+12>>2];c[v>>2]=c[f>>2];c[v+4>>2]=c[f+4>>2];c[v+8>>2]=c[f+8>>2];c[v+12>>2]=c[f+12>>2];WH(z,u,v,1.0,b);c[y>>2]=c[z>>2];c[y+4>>2]=c[z+4>>2];c[y+8>>2]=c[z+8>>2];c[y+12>>2]=c[z+12>>2];c[y+16>>2]=c[z+16>>2];c[y+20>>2]=c[z+20>>2];c[y+24>>2]=c[z+24>>2];c[y+28>>2]=c[z+28>>2];h[x>>3]=+h[(+h[x>>3]<+h[y>>3]?x:y)>>3];h[i>>3]=+h[(+h[i>>3]<+h[j>>3]?x:y)+8>>3];h[k>>3]=+h[(+h[k>>3]>+h[m>>3]?x:y)+16>>3];h[n>>3]=+h[(+h[n>>3]>+h[o>>3]?x:y)+24>>3]}b=c[q>>2]|0;if(b|0){f=(c[w>>2]|0)+((c[s>>2]|0)+-1<<4)|0;c[u>>2]=c[r>>2];c[u+4>>2]=c[r+4>>2];c[u+8>>2]=c[r+8>>2];c[u+12>>2]=c[r+12>>2];c[v>>2]=c[f>>2];c[v+4>>2]=c[f+4>>2];c[v+8>>2]=c[f+8>>2];c[v+12>>2]=c[f+12>>2];WH(A,u,v,1.0,b);c[y>>2]=c[A>>2];c[y+4>>2]=c[A+4>>2];c[y+8>>2]=c[A+8>>2];c[y+12>>2]=c[A+12>>2];c[y+16>>2]=c[A+16>>2];c[y+20>>2]=c[A+20>>2];c[y+24>>2]=c[A+24>>2];c[y+28>>2]=c[A+28>>2];h[x>>3]=+h[(+h[x>>3]<+h[y>>3]?x:y)>>3];h[i>>3]=+h[(+h[i>>3]<+h[j>>3]?x:y)+8>>3];h[k>>3]=+h[(+h[k>>3]>+h[m>>3]?x:y)+16>>3];h[n>>3]=+h[(+h[n>>3]>+h[o>>3]?x:y)+24>>3]}g=g+1|0}B=a+8|0;c[B>>2]=c[x>>2];c[B+4>>2]=c[x+4>>2];c[B+8>>2]=c[x+8>>2];c[B+12>>2]=c[x+12>>2];c[B+16>>2]=c[x+16>>2];c[B+20>>2]=c[x+20>>2];c[B+24>>2]=c[x+24>>2];c[B+28>>2]=c[x+28>>2];l=C;return}function fK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0;n=l;l=l+48|0;i=n+32|0;j=n;k=c[b+4>>2]|0;if((k|0)<=0)Aa(101471,100207,3968,101483);if(((k>>>0)%3|0|0)!=1)Aa(101493,100207,3969,101483);m=j+16|0;d=c[b>>2]|0;c[m>>2]=c[d>>2];c[m+4>>2]=c[d+4>>2];c[m+8>>2]=c[d+8>>2];c[m+12>>2]=c[d+12>>2];c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];e=i+8|0;f=j+8|0;g=j+24|0;b=1;while(1){if((b|0)>=(k|0))break;o=+h[d+(b<<4)+8>>3];t=b+1|0;p=+h[d+(t<<4)+8>>3];r=(+h[d+(b<<4)>>3]+ +h[d+(t<<4)>>3])*.5;h[i>>3]=r;p=(o+p)*.5;h[e>>3]=p;o=+h[(+h[j>>3]<r?j:i)>>3];h[j>>3]=o;s=+h[(+h[f>>3]<p?j:i)+8>>3];h[f>>3]=s;r=+h[(+h[m>>3]>r?m:i)>>3];h[m>>3]=r;p=+h[(+h[g>>3]>p?m:i)+8>>3];h[g>>3]=p;t=d+(b+2<<4)|0;c[i>>2]=c[t>>2];c[i+4>>2]=c[t+4>>2];c[i+8>>2]=c[t+8>>2];c[i+12>>2]=c[t+12>>2];q=+h[i>>3];h[j>>3]=+h[(o<q?j:i)>>3];o=+h[e>>3];h[f>>3]=+h[(s<o?j:i)+8>>3];h[m>>3]=+h[(r>q?m:i)>>3];h[g>>3]=+h[(p>o?m:i)+8>>3];b=b+3|0}c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];c[a+12>>2]=c[j+12>>2];c[a+16>>2]=c[j+16>>2];c[a+20>>2]=c[j+20>>2];c[a+24>>2]=c[j+24>>2];c[a+28>>2]=c[j+28>>2];l=n;return}function gK(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0,i=0.0,j=0,k=0.0,l=0.0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0;t=+h[a>>3];u=+h[c>>3];o=t>=u;q=c+8|0;r=c+16|0;m=a+8|0;s=c+24|0;if((o?t<=+h[r>>3]:0)?(d=+h[m>>3],d>=+h[q>>3]):0)c=d<=+h[s>>3];else c=0;d=+h[b>>3];j=d>=u;a=b+8|0;if((j?d<=+h[r>>3]:0)?(e=+h[a>>3],e>=+h[q>>3]):0){a=e<=+h[s>>3];if(!(c^a))if(c&a)a=1;else{n=e;p=12}else a=0}else if(c)a=0;else{n=+h[a>>3];p=12}a:do if((p|0)==12){l=+h[m>>3];do if(t==d){u=+h[q>>3];if(o&(l>=u^n>=u)?t<=+h[r>>3]:0){a=0;break a}}else{if(l==n){if(!(o^j))break;if(!(l>=+h[q>>3]))break;if(!(l<=+h[s>>3]))break;else{a=0;break a}}k=(n-l)/(d-t);p=t<d;f=p?t:d;d=p?d:t;e=l+(u-t)*k;i=+h[q>>3];if(!(!(u>=f)|!(u<=d)|!(e>=i))?e<=+h[s>>3]:0){a=0;break a}g=+h[r>>3];e=e+k*(g-u);if(e>=i?!(!(g<=d)|(g>=f?!(e<=+h[s>>3]):1)):0){a=0;break a}r=l<n;f=r?l:n;e=r?n:l;d=t+(i-l)/k;if(!(!(i<=e)|(!(i>=f)|(!(d>=u)|!(d<=g))))){a=0;break a}n=+h[s>>3];t=d+(n-i)/k;if(!(!(n<=e)|(!(n>=f)|(!(t>=u)|!(t<=g))))){a=0;break a}}while(0);a=-1}while(0);return a|0}function hK(a){a=a|0;var b=0,c=0.0;b=a+16|0;c=+h[b>>3];h[a+32>>3]=c;h[a+48>>3]=c;h[a+40>>3]=+h[a+24>>3];h[a+56>>3]=+h[a+8>>3];h[b>>3]=+h[a>>3];return}function iK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,g=0.0,i=0.0;if((c[47175]|0)!=(d|0)){X3(+(d|0)/6.283185307179586,186496,186504);c[47175]=d}f=+h[b>>3];i=+h[23313];g=+h[b+8>>3];e=+h[23312];h[a>>3]=f*i-g*e;h[a+8>>3]=i*g+f*e;return}function jK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0.0,i=0,j=0,k=0;k=l;l=l+16|0;f=k;e=+h[b>>3];i=b+8|0;g=+h[i>>3];a:do switch(d|0){case 0:{j=11;break}case 90:{h[b>>3]=g;e=-e;j=10;break}case 180:{e=-g;j=10;break}case 270:{h[b>>3]=g;j=10;break}default:{if((d|0)<0){c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];kK(a,f,0-d|0);break a}if((d|0)>360){c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];jK(a,f,(d>>>0)%360|0);break a}else{c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];iK(a,f,d);break a}}}while(0);if((j|0)==10){h[i>>3]=e;j=11}if((j|0)==11){c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2]}l=k;return}function kK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,g=0,i=0.0,j=0,k=0,m=0;m=l;l=l+16|0;g=m;e=+h[b>>3];j=b+8|0;f=+h[j>>3];i=-f;a:do switch(d|0){case 0:{k=10;break}case 90:{f=i;k=8;break}case 180:{e=i;k=9;break}case 270:{k=8;break}default:{if((d|0)<0){c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];jK(a,g,0-d|0);break a}if((d|0)>360){c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];kK(a,g,(d>>>0)%360|0);break a}else{c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];iK(a,g,360-d|0);break a}}}while(0);if((k|0)==8){h[b>>3]=f;k=9}if((k|0)==9){h[j>>3]=e;k=10}if((k|0)==10){c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2]}l=m;return}function lK(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0;g=+h[c>>3];d=+h[c+8>>3];f=+h[b>>3]+d;e=+h[b+24>>3]+g;d=+h[b+16>>3]+d;h[a>>3]=+h[b+8>>3]+g;h[a+8>>3]=f;h[a+16>>3]=e;h[a+24>>3]=d;return}function mK(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0;f=+h[a>>3];e=+h[b>>3]-f;g=+h[a+8>>3];d=+h[b+8>>3]-g;f=e*(+h[c+8>>3]-g)-d*(+h[c>>3]-f);f=f*f;return +(f<1.0e-10?0.0:f/(e*e+d*d))}function nK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=l;l=l+16|0;f=g+8|0;e=g;a=NA(a,b)|0;if(a|0?(c[f>>2]=e,(q4(a,101510,f)|0)>0):0)h[d>>3]=+h[e>>3];l=g;return}function oK(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+16|0;g=n+8|0;i=n;e=HK(96)|0;m=b+16|0;c[(c[m>>2]|0)+8>>2]=e;e=NA(b,101514)|0;if(!e){e=Na(101523)|0;if(e|0)k=3}else k=3;if((k|0)==3)za(101535,e|0,1)|0;e=(pK(b)|0)&255;a[(c[m>>2]|0)+115>>0]=e;if((c[47179]|0)==0?(e=NA(b,101546)|0,c[47178]=e,(e|0)==0):0)c[47178]=c[47177];f=+YO(b,DA(b,0,101556,0)|0,0.0,0.0);h[c[(c[m>>2]|0)+8>>2]>>3]=f;e=NA(b,101564)|0;a:do if(!e)e=0;else{switch(a[e>>0]|0){case 76:{if(!(f2(e,101572)|0)){e=1;break a}break}case 66:{if(!(f2(e,101575)|0)){e=2;break a}break}case 82:{e=(f2(e,101578)|0)==0;e=e?3:0;break a}default:{e=0;break a}}e=0}while(0);c[(c[m>>2]|0)+116>>2]=e<<2|(d<<24>>24==0?0:e);f=+YO(b,DA(b,0,101581,0)|0,.25,.02);h[i>>3]=f;f=f*72.0;c[(c[m>>2]|0)+248>>2]=~~(f+(f>=0.0?.5:-.5));e=_O(b,DA(b,0,101589,0)|0,0)|0;if(e){c[g>>2]=i;if(q4(e,101510,g)|0){f=+h[i>>3];if(f<.02){h[i>>3]=.02;f=.02}}else{h[i>>3]=.5;f=.5}if(C4(e,101597)|0)a[(c[m>>2]|0)+276>>0]=1}else{h[i>>3]=.5;f=.5}f=f*72.0;c[(c[m>>2]|0)+252>>2]=~~(f+(f>=0.0?.5:-.5));i=(XO(b,DA(b,0,101605,0)|0,0,0)|0)&255;a[(c[m>>2]|0)+243>>0]=i;i=nP(_O(b,DA(b,0,101615,0)|0,0)|0,20724,20740)|0;c[(c[m>>2]|0)+244>>2]=i;qK(b);i=rK(b,101625,(c[(c[m>>2]|0)+8>>2]|0)+64|0)|0;e=c[(c[m>>2]|0)+8>>2]|0;a[e+80>>0]=i;rK(b,101630,e+48|0)|0;e=bP(NA(b,101635)|0)|0;a[(c[(c[m>>2]|0)+8>>2]|0)+82>>0]=e;e=NA(b,101642)|0;do if(!e){e=NA(b,101649)|0;if(e|0){e=(a[e>>0]|32)<<24>>24==108&1;k=27;break}e=NA(b,101661)|0;if(e|0){e=bP(e)|0;k=27}}else{e=(d6(e)|0)==90&1;k=27}while(0);if((k|0)==27)a[(c[(c[m>>2]|0)+8>>2]|0)+81>>0]=e;c[47182]=nP(NA(b,101671)|0,20756,20772)|0;a[195236]=bP(NA(b,101683)|0)|0;c[47185]=0;c[47186]=0;h[(c[(c[m>>2]|0)+8>>2]|0)+24>>3]=0.0;e=NA(b,101695)|0;if((e|0)!=0?(a[e>>0]|0)!=0:0)k=32;else k=30;if(((k|0)==30?(j=NA(b,101699)|0,j|0):0)?a[j>>0]|0:0){e=j;k=32}if((k|0)==32){f=+a6(e);h[(c[(c[m>>2]|0)+8>>2]|0)+24>>3]=f}sK(b);h[23316]=1.e+37;c[47194]=DA(b,0,101710,0)|0;c[47197]=DA(b,0,141337,0)|0;c[47198]=DA(b,0,105797,0)|0;c[47199]=DA(b,1,141351,0)|0;c[47200]=DA(b,1,141419,0)|0;c[47201]=DA(b,1,108531,0)|0;c[47202]=DA(b,1,141126,0)|0;c[47203]=DA(b,1,101719,0)|0;c[47219]=DA(b,1,141385,0)|0;c[47212]=DA(b,1,101729,0)|0;c[47213]=DA(b,1,101738,0)|0;c[47214]=DA(b,1,101747,0)|0;k=DA(b,1,108525,0)|0;c[47216]=k;if(!k)c[47216]=DA(b,1,108525,105794)|0;c[47217]=DA(b,1,101757,0)|0;c[47220]=DA(b,1,101605,0)|0;c[47234]=DA(b,1,101764,0)|0;c[47223]=DA(b,1,101710,0)|0;c[47215]=DA(b,1,105797,0)|0;c[47221]=DA(b,1,141379,0)|0;c[47222]=DA(b,1,101773,0)|0;c[47225]=DA(b,1,101785,0)|0;c[47224]=DA(b,1,101649,0)|0;c[47226]=DA(b,1,101790,0)|0;c[47227]=DA(b,1,141327,0)|0;c[47228]=DA(b,1,137598,0)|0;c[47218]=DA(b,1,101801,0)|0;c[47229]=DA(b,1,101811,0)|0;c[47230]=DA(b,1,101817,0)|0;c[47231]=DA(b,1,101823,0)|0;c[47232]=DA(b,1,101831,0)|0;c[47233]=DA(b,1,101840,0)|0;c[47235]=DA(b,1,141337,0)|0;c[47236]=DA(b,2,101842,0)|0;c[47238]=DA(b,2,141126,0)|0;c[47239]=DA(b,2,101719,0)|0;c[47248]=DA(b,2,101729,0)|0;c[47249]=DA(b,2,101738,0)|0;c[47250]=DA(b,2,101747,0)|0;c[47251]=DA(b,2,108525,0)|0;c[47252]=DA(b,2,101757,0)|0;c[47261]=DA(b,2,101849,0)|0;c[47253]=DA(b,2,101860,0)|0;c[47264]=DA(b,2,101864,0)|0;c[47265]=DA(b,2,101874,0)|0;c[47266]=DA(b,2,101884,0)|0;c[47267]=DA(b,2,101894,0)|0;c[47268]=DA(b,2,101904,0)|0;c[47269]=DA(b,2,101918,0)|0;c[47270]=DA(b,2,101932,0)|0;c[47271]=DA(b,2,101947,0)|0;c[47272]=DA(b,2,101961,0)|0;c[47237]=DA(b,2,101972,0)|0;c[47256]=DA(b,2,101605,0)|0;c[47254]=DA(b,2,141385,0)|0;c[47255]=DA(b,2,101979,0)|0;c[47257]=DA(b,2,101988,0)|0;c[47258]=DA(b,2,101998,0)|0;c[47259]=DA(b,2,101811,0)|0;c[47260]=DA(b,2,101823,0)|0;c[47273]=DA(b,2,102009,0)|0;c[47274]=DA(b,2,102018,0)|0;c[47275]=DA(b,2,101764,0)|0;e=ZH(b)|0;c[(c[(c[m>>2]|0)+8>>2]|0)+88>>2]=e;e=NA(b,141363)|0;if(e|0?a[e>>0]|0:0){b=CK(e,b)|0;c[(c[(c[m>>2]|0)+8>>2]|0)+92>>2]=b}l=n;return}function pK(a){a=a|0;var b=0,d=0;d=l;l=l+16|0;b=d;a=$O(a,DA(a,0,102108,0)|0,102116)|0;if(((((((C3(a,102122)|0)!=0?(C3(a,102130)|0)!=0:0)?(C3(a,102137)|0)!=0:0)?(C3(a,102140)|0)!=0:0)?(C3(a,102151)|0)!=0:0)?(C3(a,102162)|0)!=0:0)?(C3(a,102172)|0)!=0:0)if((C3(a,102183)|0)!=0?(C3(a,102189)|0)!=0:0)if((C3(a,102116)|0)!=0?(C3(a,102194)|0)!=0:0){c[b>>2]=a;dA(0,102199,b)|0;a=0}else a=0;else a=2;else a=1;l=d;return a|0}function qK(b){b=b|0;var d=0.0,e=0,f=0;e=NA(b,102066)|0;a:do if(e|0?(f=a[e>>0]|0,f<<24>>24):0){b=b+16|0;switch(f<<24>>24|0){case 97:{if(f<<24>>24!=97)break a;if(f2(e,102072)|0)break a;c[(c[(c[b>>2]|0)+8>>2]|0)+84>>2]=4;break a}case 99:{if(f<<24>>24!=99)break a;if(f2(e,102077)|0)break a;c[(c[(c[b>>2]|0)+8>>2]|0)+84>>2]=3;break a}case 101:{if(f<<24>>24!=101)break a;if(f2(e,102086)|0)break a;c[(c[(c[b>>2]|0)+8>>2]|0)+84>>2]=5;break a}case 102:{if(f<<24>>24!=102)break a;if(f2(e,102093)|0)break a;c[(c[(c[b>>2]|0)+8>>2]|0)+84>>2]=2;break a}default:{d=+a6(e);if(!(d>0.0))break a;f=c[(c[b>>2]|0)+8>>2]|0;c[f+84>>2]=1;h[f+16>>3]=d;break a}}}while(0);return}function rK(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+48|0;m=o+32|0;i=o+16|0;k=o+8|0;j=o;n=o+40|0;a[n>>0]=0;d=NA(b,d)|0;do if(d){c[i>>2]=k;c[i+4>>2]=j;c[i+8>>2]=n;i=(q4(d,102050,i)|0)>1;g=+h[k>>3];f=+h[j>>3];b=e+8|0;if(i&g>0.0&f>0.0){g=g*72.0;h[e>>3]=+(~~(g+(g>=0.0?.5:-.5))|0);g=f*72.0;h[b>>3]=+(~~(g+(g>=0.0?.5:-.5))|0);b=(a[n>>0]|0)==33;break}a[n>>0]=0;c[m>>2]=k;c[m+4>>2]=n;m=(q4(d,102060,m)|0)>0;f=+h[k>>3];if(m&f>0.0){g=f*72.0;g=+(~~(g+(g>=0.0?.5:-.5))|0);h[e>>3]=g;h[b>>3]=g;b=(a[n>>0]|0)==33}else b=0}else b=0;while(0);l=o;return b&1|0}function sK(b){b=b|0;var d=0,e=0,f=0,g=0.0,i=0.0,j=0;d=NA(b,108525)|0;do if(d|0?a[d>>0]|0:0){e=(c[(c[b+60>>2]|0)+16>>2]|0)+113|0;a[e>>0]=a[e>>0]|8;e=(gD(d)|0)!=0;i=+YO(b,DA(b,0,101729,0)|0,14.0,1.0);j=$O(b,DA(b,0,101738,0)|0,108295)|0;d=xK(b,d,e?2:0,i,j,$O(b,DA(b,0,101747,0)|0,137615)|0)|0;j=b+16|0;c[(c[j>>2]|0)+12>>2]=d;d=NA(b,105929)|0;e=(d|0)!=0;do if((vC(b)|0)==(b|0)){if(e?(a[d>>0]|0)==116:0){d=1;break}d=0}else{if(e?(a[d>>0]|0)==98:0){d=0;break}d=1}while(0);e=NA(b,102027)|0;a:do if(e){f=d&255;switch(a[e>>0]|0){case 108:{d=(f|2)&255;break a}case 114:{d=(f|4)&255;break a}default:break a}}while(0);a[(c[j>>2]|0)+275>>0]=d;if((vC(b)|0)!=(b|0)){d=c[(c[j>>2]|0)+12>>2]|0;g=+h[d+24>>3]+16.0;i=+h[d+32>>3]+8.0;b=(c[(c[(vC(b)|0)+16>>2]|0)+116>>2]&1|0)==0;d=c[j>>2]|0;e=a[d+275>>0]<<1&2;if(b){b=e&255;h[d+48+(b<<4)>>3]=g;h[d+48+(b<<4)+8>>3]=i;break}else{b=(e^3)&255;h[d+48+(b<<4)>>3]=i;h[d+48+(b<<4)+8>>3]=g;break}}}while(0);return}function tK(a){a=a|0;var b=0,d=0,e=0;e=a+16|0;d=c[e>>2]|0;b=c[d+8>>2]|0;do if(!b)b=d;else{d=c[b+88>>2]|0;if(d){CH(d);d=c[e>>2]|0;b=c[d+8>>2]|0;if(!b){b=d;break}}l6(c[b+92>>2]|0);b=c[e>>2]|0}while(0);l6(c[b+8>>2]|0);e=c[e>>2]|0;c[e+8>>2]=0;AK(c[e+12>>2]|0);XC(a,0,137786);return}function uK(a){a=a|0;var b=0,d=0;d=l;l=l+16|0;b=d;switch(a|0){case 0:{a=102272;break}case 1:{a=102140;break}case 2:{a=102278;break}default:{c[b>>2]=a;dA(1,102242,b)|0;a=102272}}l=d;return a|0}function vK(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=c[d>>2]|0;m=d+24|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;if(a[f>>0]|0){g=IK((D3(f)|0)+1|0)|0;a[g>>0]=0;k=d+12|0;e=g;a:while(1){b:while(1){i=f+1|0;h=a[f>>0]|0;if(!(h<<24>>24))break a;j=e+1|0;f=f+2|0;if(!(h<<24>>24==-1|((h&255)<161|(c[k>>2]|0)!=2))){a[e>>0]=h;i=a[i>>0]|0;e=e+2|0;a[j>>0]=i;if(!(i<<24>>24))break a;else continue}switch(h<<24>>24){case 92:break b;case 10:{l=12;break b}default:{}}a[e>>0]=h;e=j;f=i}if((l|0)==12){l=0;a[e>>0]=0;wK(b,d,g,110);e=j;g=j;f=i;continue}h=a[i>>0]|0;switch(h<<24>>24|0){case 114:case 108:case 110:{a[e>>0]=0;wK(b,d,g,a[i>>0]|0);g=j;break}default:a[e>>0]=h}e=j;f=(a[i>>0]|0)==0?i:f}if((g|0)!=(e|0)){a[e>>0]=0;wK(b,d,g,110)}d=d+40|0;c[d>>2]=c[m>>2];c[d+4>>2]=c[m+4>>2];c[d+8>>2]=c[m+8>>2];c[d+12>>2]=c[m+12>>2]}return}function wK(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0.0,k=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+32|0;r=t+16|0;q=t;s=e+76|0;m=b[s>>1]|0;o=e+72|0;n=c[o>>2]|0;i=m+2|0;if(!n)p=HK(i*56|0)|0;else p=JK(n,i,56,m+1|0)|0;c[o>>2]=p;i=b[s>>1]|0;m=i<<16>>16;n=p+(m*56|0)|0;c[n>>2]=f;a[p+(m*56|0)+48>>0]=g;j=+h[e+16>>3];if((f|0)!=0?(a[f>>0]|0)!=0:0){c[46636]=c[e+4>>2];h[23320]=j;i=c[d+144>>2]|0;c[p+(m*56|0)+4>>2]=eb[c[i>>2]&63](i,186544,1)|0;JO(q,d,n);k=+h[q>>3];h[r>>3]=k;j=+h[q+8>>3];i=b[s>>1]|0}else{h[r>>3]=0.0;j=+(~~(j*1.2)|0);h[p+(m*56|0)+40>>3]=j;k=0.0}b[s>>1]=i+1<<16>>16;s=e+24|0;h[s>>3]=+h[(+h[s>>3]>k?s:r)>>3];s=e+32|0;h[s>>3]=j+ +h[s>>3];l=t;return}function xK(b,e,f,g,i,j){b=b|0;e=e|0;f=f|0;g=+g;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+32|0;r=u+16|0;q=u+8|0;p=u;t=HK(88)|0;switch(FC(b)|0){case 0:{m=0;s=c[b+60>>2]|0;n=b;o=0;break}case 1:{m=0;s=vC(uC(b)|0)|0;n=0;o=b;break}case 2:{m=b;s=vC(uC(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0)|0;n=0;o=0;break}default:{m=0;s=0;n=0;o=0}}c[t+4>>2]=i;c[t+8>>2]=j;h[t+16>>3]=g;k=s+16|0;j=t+12|0;c[j>>2]=d[(c[k>>2]|0)+115>>0];a:do if(f&4){c[t>>2]=Y3(e)|0;if(f&2|0)a[t+82>>0]=1}else switch(f|0){case 2:{c[t>>2]=Y3(e)|0;a[t+82>>0]=1;if(!(zU(b,t)|0))break a;switch(FC(b)|0){case 0:{c[p>>2]=HB(n)|0;dA(3,102284,p)|0;break a}case 1:{c[q>>2]=HB(o)|0;dA(3,102306,q)|0;break a}case 2:{p=HB(c[((c[m>>2]&3|0)==3?m:m+48|0)+40>>2]|0)|0;q=(uB(s)|0)!=0;s=HB(c[((c[m>>2]&3|0)==2?m:m+-48|0)+40>>2]|0)|0;c[r>>2]=p;c[r+4>>2]=q?138041:142050;c[r+8>>2]=s;dA(3,102327,r)|0;break a}default:break a}}case 0:{i=yK(e,b,0)|0;c[t>>2]=i;if((c[j>>2]|0)==1)i=cQ(i)|0;else i=$P(i,s)|0;l6(c[t>>2]|0);c[t>>2]=i;vK(c[(c[k>>2]|0)+144>>2]|0,t);break a}default:Aa(102354,102370,166,102379)}while(0);l=u;return t|0}function yK(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;m=(b|0)!=0;switch(FC(d)|0){case 0:{i=HB(d)|0;g=D3(i)|0;f=c[(c[d+16>>2]|0)+12>>2]|0;if(f){f=c[f>>2]|0;if(m){v=0;t=2;u=2;s=2;h=2;y=102402;n=102399;j=105794;o=195341;r=195341;q=0;p=0;m=D3(f)|0;w=f;x=102396}else{v=0;t=2;u=2;s=2;h=2;y=102402;n=102399;j=105794;o=195341;r=195341;q=0;p=0;m=2;w=f;x=102396}}else{v=0;t=2;u=2;s=2;h=2;y=102402;n=102399;j=105794;o=195341;r=195341;q=0;p=0;m=2;w=102390;x=102396}break}case 1:{i=HB(uC(d)|0)|0;g=D3(i)|0;j=HB(d)|0;h=D3(j)|0;f=c[(c[d+16>>2]|0)+104>>2]|0;if(f){f=c[f>>2]|0;if(m){v=0;t=2;u=2;s=2;y=102402;n=102399;o=195341;r=195341;q=0;p=0;m=D3(f)|0;w=f;x=102396}else{v=0;t=2;u=2;s=2;y=102402;n=102399;o=195341;r=195341;q=0;p=0;m=2;w=f;x=102396}}else{v=0;t=2;u=2;s=2;y=102402;n=102399;o=195341;r=195341;q=0;p=0;m=2;w=102390;x=102396}break}case 2:{h=d+48|0;i=HB(vC(uC(c[((c[d>>2]&3|0)==3?d:h)+40>>2]|0)|0)|0)|0;g=D3(i)|0;l=HB(c[((c[d>>2]&3|0)==3?d:h)+40>>2]|0)|0;k=D3(l)|0;f=d+16|0;r=c[(c[f>>2]|0)+52>>2]|0;if(!r)p=0;else p=D3(r)|0;n=HB(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)|0;f=c[f>>2]|0;o=c[f+92>>2]|0;if(!o)q=0;else q=D3(o)|0;j=D3(n)|0;f=c[f+96>>2]|0;if(f){f=c[f>>2]|0;if(m)m=D3(f)|0;else m=2}else{m=2;f=102390}x=(uB(vC(uC(c[((c[d>>2]&3|0)==3?d:h)+40>>2]|0)|0)|0)|0)==0;v=1;t=k;u=j;s=k+2+(p|0?p+1|0:0)+j+(q|0?q+1|0:0)|0;h=2;y=l;j=105794;w=f;x=x?142050:138041;break}default:{v=0;t=2;u=2;s=2;h=2;g=2;y=102402;n=102399;j=105794;i=102393;o=195341;r=195341;q=0;p=0;m=2;w=102390;x=102396}}e=(e|0)!=0;k=0;f=b;a:while(1){d=f+1|0;l=k+1|0;switch(a[f>>0]|0){case 0:break a;case 92:break;default:{k=l;f=d;continue a}}f=f+2|0;switch(a[d>>0]|0){case 71:{k=k+g|0;continue a}case 78:{k=k+h|0;continue a}case 69:{k=k+s|0;continue a}case 72:{k=k+u|0;continue a}case 84:{k=k+t|0;continue a}case 76:{k=k+m|0;continue a}case 92:{if(e){k=l;continue a}break}default:{}}k=k+2|0}t=IK(l)|0;s=(v|0)==0;p=(p|0)==0;m=(q|0)==0;f=t;g=b;b:while(1){k=g+1|0;h=a[g>>0]|0;if(!(h<<24>>24))break;d=f+1|0;if(h<<24>>24!=92){a[f>>0]=h;f=d;g=k;continue}l=g+2|0;g=a[k>>0]|0;switch(g<<24>>24|0){case 71:{g=i;while(1){b=a[g>>0]|0;a[f>>0]=b;if(!(b<<24>>24)){g=l;continue b}g=g+1|0;f=f+1|0}}case 78:{g=j;while(1){b=a[g>>0]|0;a[f>>0]=b;if(!(b<<24>>24)){g=l;continue b}g=g+1|0;f=f+1|0}}case 69:{if(s){g=l;continue b}else g=y;while(1){b=a[g>>0]|0;a[f>>0]=b;h=f+1|0;if(!(b<<24>>24))break;else{g=g+1|0;f=h}}c:do if(p)g=x;else{a[f>>0]=58;g=r;f=h;while(1){b=a[g>>0]|0;a[f>>0]=b;if(!(b<<24>>24)){g=x;break c}g=g+1|0;f=f+1|0}}while(0);while(1){b=a[g>>0]|0;a[f>>0]=b;if(!(b<<24>>24)){g=n;break}g=g+1|0;f=f+1|0}while(1){b=a[g>>0]|0;a[f>>0]=b;h=f+1|0;if(!(b<<24>>24))break;else{g=g+1|0;f=h}}if(m){g=l;continue b}a[f>>0]=58;g=o;f=h;while(1){b=a[g>>0]|0;a[f>>0]=b;if(!(b<<24>>24)){g=l;continue b}g=g+1|0;f=f+1|0}}case 84:{g=y;while(1){b=a[g>>0]|0;a[f>>0]=b;if(!(b<<24>>24)){g=l;continue b}g=g+1|0;f=f+1|0}}case 72:{g=n;while(1){b=a[g>>0]|0;a[f>>0]=b;if(!(b<<24>>24)){g=l;continue b}f=f+1|0;g=g+1|0}}case 76:{g=w;while(1){b=a[g>>0]|0;a[f>>0]=b;if(!(b<<24>>24)){g=l;continue b}f=f+1|0;g=g+1|0}}case 92:{if(e){a[f>>0]=92;f=d;g=l;continue b}break}default:{}}a[f>>0]=92;a[d>>0]=g;f=f+2|0;g=l}a[f>>0]=0;return t|0}function zK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if(a|0){d=a;e=0;while(1){if((e|0)>=(b|0))break;if(!e)l6(c[d>>2]|0);g=c[d+8>>2]|0;if(g|0?(f=c[d+12>>2]|0,f|0):0)db[f&127](g);d=d+56|0;e=e+1|0}l6(a)}return}function AK(d){d=d|0;var e=0;if(d|0){l6(c[d>>2]|0);e=d+72|0;if(a[d+82>>0]|0){e=c[e>>2]|0;if(e|0)kU(e,1)}else zK(c[e>>2]|0,b[d+76>>1]|0);l6(d)}return}function BK(d,e,f){d=d|0;e=e|0;f=f|0;var g=0.0,i=0,j=0,k=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+32|0;q=u+16|0;r=u;m=c[d+16>>2]|0;s=m+12|0;t=c[s>>2]|0;c[s>>2]=e;o=f+72|0;if(!(a[f+82>>0]|0)){p=f+76|0;if((b[p>>1]|0)>=1){cS(d,0);fS(d,c[f+8>>2]|0);e=f+64|0;i=f+48|0;j=f+32|0;switch(a[f+80>>0]|0){case 116:{k=+h[e>>3];g=k+ +h[i>>3]*.5;break}case 98:{k=+h[e>>3];g=+h[j>>3]+(k-+h[i>>3]*.5);break}default:{k=+h[e>>3];g=k+ +h[j>>3]*.5}}g=g-+h[f+16>>3];n=r+8|0;h[n>>3]=g;if(b[m+260>>1]&512)h[n>>3]=g-k;m=f+40|0;i=f+56|0;e=0;while(1){if((e|0)>=(b[p>>1]|0))break;f=c[o>>2]|0;j=f+(e*56|0)|0;switch(a[f+(e*56|0)+48>>0]|0){case 108:{g=+h[i>>3]-+h[m>>3]*.5;break}case 114:{g=+h[i>>3]+ +h[m>>3]*.5;break}default:g=+h[i>>3]}h[r>>3]=g;c[q>>2]=c[r>>2];c[q+4>>2]=c[r+4>>2];c[q+8>>2]=c[r+8>>2];c[q+12>>2]=c[r+12>>2];eS(d,q,j);h[n>>3]=+h[n>>3]-+h[(c[o>>2]|0)+(e*56|0)+40>>3];e=e+1|0}dS(d);i=18}}else{RT(d,c[o>>2]|0,f);i=18}if((i|0)==18)c[s>>2]=t;l=u;return}function CK(a,b){a=a|0;b=b|0;return yK(a,b,1)|0}function DK(a){a=a|0;return EK(a,0)|0}function EK(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=c[47276]|0;if(!e){c[47277]=64;e=IK(64)|0;c[47276]=e}j=d<<24>>24!=0;i=0;f=0;h=b;while(1){if(!h)break;d=a[h>>0]|0;if(!(d<<24>>24))break;b=c[47277]|0;if((i|0)>(b+-8|0)){e=b<<1;c[47277]=e;e=KK(c[47276]|0,e)|0;c[47276]=e;e=e+i|0;d=a[h>>0]|0}a:do switch(d<<24>>24){case 38:{if(!j?(FK(h)|0)!=0:0)k=19;else{f=5;d=102431}break}case 60:{f=4;d=102454;break}case 62:{f=4;d=102437;break}case 45:{f=5;d=102448;break}default:{if((f|0)!=0&d<<24>>24==32)if((a[f>>0]|0)==32){f=6;d=102424;break a}else{k=19;break a}switch(d<<24>>24){case 34:{f=6;d=102411;break a}case 39:{f=5;d=102442;break a}case 10:if(j){f=5;d=102418;break a}else{k=19;break a}case 13:if(j){f=5;d=102405;break a}else{k=19;break a}default:{k=19;break a}}}}while(0);if((k|0)==19){k=0;f=1;d=h}g=e+f|0;b=f;while(1){if(!b)break;a[e>>0]=a[d>>0]|0;b=b+-1|0;d=d+1|0;e=e+1|0}b=h;i=f+i|0;e=g;h=h+1|0;f=b}a[e>>0]=0;return c[47276]|0}function FK(b){b=b|0;var c=0,d=0;d=b+1|0;c=a[d>>0]|0;a:do if(c<<24>>24==35){d=b+2|0;c=a[d>>0]|0;switch(c<<24>>24){case 88:case 120:break;default:{b=d;while(1){d=b+1|0;if((c+-48&255)>=10)break a;b=d;c=a[d>>0]|0}}}d=b+3|0;while(1){c=a[d>>0]|0;if((c+-48&255)>=10)switch(c<<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}d=d+1|0}}else while(1){b=d+1|0;if(((c&-33)+-65&255)>=26)break a;d=b;c=a[b>>0]|0}while(0);return c<<24>>24==59|0}function GK(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=c[47278]|0;if(!d){c[47279]=64;d=IK(64)|0;c[47278]=d;i=0;h=b}else{i=0;h=b}while(1){if(!h)break;b=a[h>>0]|0;if(!(b<<24>>24))break;e=c[47279]|0;if((i|0)>(e+-8|0)){d=e<<1;c[47279]=d;d=KK(c[47278]|0,d)|0;c[47278]=d;d=d+i|0;b=a[h>>0]|0}switch(b<<24>>24){case 38:{if(!(FK(h)|0)){f=5;b=102431}else j=12;break}case 60:{f=4;b=102454;break}case 62:{f=4;b=102437;break}case 34:{f=6;b=102411;break}case 39:{f=5;b=102442;break}default:j=12}if((j|0)==12){j=0;f=1;b=h}g=d+f|0;e=f;while(1){if(!e)break;a[d>>0]=a[b>>0]|0;e=e+-1|0;b=b+1|0;d=d+1|0}i=f+i|0;d=g;h=h+1|0}a[d>>0]=0;return c[47278]|0}function HK(a){a=a|0;var b=0;if(!a)a=0;else{b=IK(a)|0;u6(b|0,0,a|0)|0;a=b}return a|0}function IK(a){a=a|0;if(a){a=k6(a)|0;if(!a){_3(112041,14,1,c[15715]|0)|0;a=0}}else a=0;return a|0}function JK(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=n6(a,S(d,b)|0)|0;if(!((b|0)!=0&(a|0)==0)){if(b>>>0>e>>>0)u6(a+(S(e,d)|0)|0,0,S(b-e|0,d)|0)|0}else _3(112041,14,1,c[15715]|0)|0;return a|0}function KK(a,b){a=a|0;b=b|0;a=n6(a,b)|0;if((b|0)!=0&(a|0)==0)_3(112041,14,1,c[15715]|0)|0;return a|0}function LK(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0.0,n=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+80|0;s=v+40|0;r=v+32|0;q=v+24|0;n=v;t=4;u=k6(40)|0;c[u>>2]=0;g=v+68|0;i=v+64|0;if(a[195234]|0){o=0;na(62,b|0,g|0,i|0);j=o;o=0;if((j|0)!=0&(p|0)!=0){k=A6(c[j>>2]|0,u|0,t|0)|0;if(!k)Ca(j|0,p|0);D=p}else k=-1;if((k|0)!=1){k=c[15715]|0;j=c[g>>2]|0;g=c[i>>2]|0;o=0;c[n>>2]=102503;c[n+4>>2]=j;c[n+8>>2]=g;c[n+12>>2]=e;c[n+16>>2]=d;aa(35,k|0,102459,n|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){i=A6(c[g>>2]|0,u|0,t|0)|0;if(!i)Ca(g|0,p|0);D=p}else i=-1;if((i|0)!=1){o=0;oa(1);g=o;o=0;if((g|0)!=0&(p|0)!=0){i=A6(c[g>>2]|0,u|0,t|0)|0;if(!i)Ca(g|0,p|0);D=p}else i=-1;if((i|0)!=1)k=6;else{g=D;k=15}}else{g=D;k=15}}else{g=D;k=15}}else k=6;do if((k|0)==6){o=0;g=la(27,b|0)|0;i=o;o=0;if((i|0)!=0&(p|0)!=0){j=A6(c[i>>2]|0,u|0,t|0)|0;if(!j)Ca(i|0,p|0);D=p}else j=-1;if((j|0)!=1){if(!g){o=0;oa(2);g=o;o=0;if((g|0)!=0&(p|0)!=0){i=A6(c[g>>2]|0,u|0,t|0)|0;if(!i)Ca(g|0,p|0);D=p}else i=-1;if((i|0)==1){g=D;k=15;break}}if((e|0)<1){o=0;oa(3);g=o;o=0;if((g|0)!=0&(p|0)!=0){i=A6(c[g>>2]|0,u|0,t|0)|0;if(!i)Ca(g|0,p|0);D=p}else i=-1;if((i|0)==1){g=D;k=15;break}g=0;break}else{c[47280]=(f|0)>-1?f:30;u=x6(189124,1,u|0,t|0)|0;t=D;o=0;g=o;o=0;if((g|0)!=0&(p|0)!=0){i=A6(c[g>>2]|0,u|0,t|0)|0;if(!i)Ca(g|0,p|0);D=p}else i=-1;if((i|0)==1){g=D;k=15;break}g=0;k=15;break}}else{g=D;k=15}}while(0);a:do if((k|0)==15){b:while(1){if(g|0){g=2;break a}o=0;oa(4);g=o;o=0;if((g|0)!=0&(p|0)!=0){i=A6(c[g>>2]|0,u|0,t|0)|0;if(!i)Ca(g|0,p|0);D=p}else i=-1;if((i|0)==1){g=D;k=15;continue}b=c[15715]|0;n=0;while(1){o=0;k=ea(2)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){i=A6(c[g>>2]|0,u|0,t|0)|0;if(!i)Ca(g|0,p|0);D=p}else i=-1;if((i|0)==1){g=D;k=15;continue b}if(!k)break;o=0;g=la(28,k|0)|0;i=o;o=0;if((i|0)!=0&(p|0)!=0){j=A6(c[i>>2]|0,u|0,t|0)|0;if(!j)Ca(i|0,p|0);D=p}else j=-1;if((j|0)==1){g=D;k=15;continue b}o=0;ha(25,k|0,g|0);g=o;o=0;if((g|0)!=0&(p|0)!=0){i=A6(c[g>>2]|0,u|0,t|0)|0;if(!i)Ca(g|0,p|0);D=p}else i=-1;if((i|0)==1){g=D;k=15;continue b}n=n+1|0;do if(((n|0)%100|0|0)==0&(a[195234]|0)!=0){g=(n|0)%1e3|0;if((g|0)==100){o=0;ra(93,102503,b|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){i=A6(c[g>>2]|0,u|0,t|0)|0;if(!i)Ca(g|0,p|0);D=p}else i=-1;if((i|0)==1){g=D;k=15;continue b}o=0;c[q>>2]=n;aa(35,b|0,102521,q|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){i=A6(c[g>>2]|0,u|0,t|0)|0;if(!i)Ca(g|0,p|0);D=p}else i=-1;if((i|0)==1){g=D;k=15;continue b}break}o=0;c[r>>2]=n;aa(35,b|0,102521,r|0)|0;i=o;o=0;if((i|0)!=0&(p|0)!=0){j=A6(c[i>>2]|0,u|0,t|0)|0;if(!j)Ca(i|0,p|0);D=p}else j=-1;if((j|0)==1){g=D;k=15;continue b}if(!g){o=0;ra(94,10,b|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){i=A6(c[g>>2]|0,u|0,t|0)|0;if(!i)Ca(g|0,p|0);D=p}else i=-1;if((i|0)==1){g=D;k=15;continue b}}}while(0);if((n|0)>=(e|0))break}switch(d|0){case 1:{o=0;oa(5);g=o;o=0;if((g|0)!=0&(p|0)!=0){i=A6(c[g>>2]|0,u|0,t|0)|0;if(!i)Ca(g|0,p|0);D=p}else i=-1;if((i|0)==1){g=D;k=15;continue b}break}case 2:{o=0;oa(6);g=o;o=0;if((g|0)!=0&(p|0)!=0){i=A6(c[g>>2]|0,u|0,t|0)|0;if(!i)Ca(g|0,p|0);D=p}else i=-1;if((i|0)==1){g=D;k=15;continue b}break}default:{o=0;oa(7);g=o;o=0;if((g|0)!=0&(p|0)!=0){i=A6(c[g>>2]|0,u|0,t|0)|0;if(!i)Ca(g|0,p|0);D=p}else i=-1;if((i|0)==1){g=D;k=15;continue b}o=0;oa(3);g=o;o=0;if((g|0)!=0&(p|0)!=0){i=A6(c[g>>2]|0,u|0,t|0)|0;if(!i)Ca(g|0,p|0);D=p}else i=-1;if((i|0)==1){g=D;k=15;continue b}}}if(!(a[195234]|0)){g=0;break a}if((n|0)>99){o=0;ra(94,10,b|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){i=A6(c[g>>2]|0,u|0,t|0)|0;if(!i)Ca(g|0,p|0);D=p}else i=-1;if((i|0)==1){g=D;k=15;continue}}g=c[47320]|0;i=c[47321]|0;o=0;m=+ca(1);j=o;o=0;if((j|0)!=0&(p|0)!=0){k=A6(c[j>>2]|0,u|0,t|0)|0;if(!k)Ca(j|0,p|0);D=p}else k=-1;if((k|0)==1){g=D;k=15;continue}o=0;c[s>>2]=102503;c[s+4>>2]=g;c[s+8>>2]=i;c[s+12>>2]=n;h[s+16>>3]=m;aa(35,b|0,102525,s|0)|0;g=o;o=0;if((g|0)!=0&(p|0)!=0){i=A6(c[g>>2]|0,u|0,t|0)|0;if(!i)Ca(g|0,p|0);D=p}else i=-1;if((i|0)==1){g=D;k=15}else break}g=0}while(0);l6(u|0);l=v;return g|0}function MK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;a=(c[a+16>>2]|0)+192|0;e=0;h=0;while(1){a=c[a>>2]|0;if(!a)break;g=c[a+16>>2]|0;f=c[g+180>>2]|0;a=0;while(1){if(!(c[f+(a<<2)>>2]|0))break;a=a+1|0;e=e+1|0}a=g+164|0;h=h+1|0}c[b>>2]=h;c[d>>2]=e;return}function NK(b){b=b|0;var d=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;c[47324]=b;c[47331]=0;c[47321]=0;c[47320]=0;i=b+16|0;b=(c[i>>2]|0)+192|0;h=0;f=0;while(1){b=c[b>>2]|0;if(!b)break;g=c[b+16>>2]|0;a[g+157>>0]=0;h=h+1|0;c[47320]=h;d=c[g+180>>2]|0;b=0;while(1){if(!(c[d+(b<<2)>>2]|0))break;k=f+1|0;c[47321]=k;b=b+1|0;f=k}b=g+164|0}b=c[47332]|0;if(!b)b=IK(h<<2)|0;else b=KK(b,h<<2)|0;c[47332]=b;c[47333]=0;b=c[47326]|0;d=c[47320]<<2;if(!b)b=IK(d)|0;else b=KK(b,d)|0;c[47326]=b;c[47325]=0;d=1;b=(c[i>>2]|0)+192|0;while(1){b=c[b>>2]|0;if(!b)break;k=b+16|0;h=c[k>>2]|0;i=h+292|0;c[i>>2]=0;h=c[h+172>>2]|0;j=d;b=0;d=0;while(1){g=c[h+(b<<2)>>2]|0;b=b+1|0;if(!g)break;d=d+1|0;c[i>>2]=d;f=c[g+16>>2]|0;c[f+160>>2]=0;c[f+164>>2]=-1;if(!j){j=0;continue}l=c[g>>2]&3;j=((c[(c[(c[((l|0)==2?g:g+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((l|0)==3?g:g+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0)<(e[f+170>>1]|0|0)?0:j}b=HK(b<<2)|0;d=c[k>>2]|0;c[d+264>>2]=b;c[d+268>>2]=0;d=c[d+180>>2]|0;b=0;do{l=b;b=b+1|0}while((c[d+(l<<2)>>2]|0)!=0);d=HK(b<<2)|0;b=c[k>>2]|0;c[b+272>>2]=d;c[b+276>>2]=0;d=j;b=b+164|0}return d|0}function OK(){var a=0,b=0,d=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;n=o+8|0;k=o;m=TO(c[47320]|0)|0;a=(c[(c[47324]|0)+16>>2]|0)+192|0;while(1){b=c[a>>2]|0;if(!b){j=0;break}d=b+16|0;a=c[d>>2]|0;if(!(c[a+292>>2]|0)){VO(m,b);a=c[d>>2]|0}a=a+164|0}while(1){a=WO(m)|0;if(!a)break;i=a+16|0;a=c[i>>2]|0;f=a+232|0;c[f>>2]=0;d=c[a+172>>2]|0;b=0;h=0;while(1){g=c[d+(b<<2)>>2]|0;if(!g){f=0;break}g=(e[(c[g+16>>2]|0)+170>>1]|0)+(c[(c[(c[((c[g>>2]&3|0)==3?g:g+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0;g=(h|0)>(g|0)?h:g;c[f>>2]=g;b=b+1|0;h=g}while(1){b=c[(c[a+180>>2]|0)+(f<<2)>>2]|0;if(!b)break;d=b+-48|0;g=(c[(c[((c[b>>2]&3|0)==2?b:d)+40>>2]|0)+16>>2]|0)+292|0;h=c[g>>2]|0;c[g>>2]=h+-1;if((h|0)<2){VO(m,c[((c[b>>2]&3|0)==2?b:d)+40>>2]|0);a=c[i>>2]|0}f=f+1|0}j=j+1|0}a:do if((j|0)!=(c[47320]|0)){dA(1,102857,k)|0;a=(c[(c[47324]|0)+16>>2]|0)+192|0;while(1){b=c[a>>2]|0;if(!b)break a;d=b+16|0;a=c[d>>2]|0;if(c[a+292>>2]|0){k=HB(b)|0;a=c[(c[d>>2]|0)+292>>2]|0;c[n>>2]=k;c[n+4>>2]=a;dA(3,102879,n)|0;a=c[d>>2]|0}a=a+164|0}}while(0);UO(m);l=o;return}function PK(){var b=0,d=0,e=0;b=(c[(c[47324]|0)+16>>2]|0)+192|0;while(1){b=c[b>>2]|0;if(!b)break;e=b+16|0;b=c[e>>2]|0;d=c[b+264>>2]|0;if(d){l6(d);b=c[e>>2]|0}d=c[b+272>>2]|0;if(d){l6(d);b=c[e>>2]|0}a[b+157>>0]=0;b=b+164|0}return}function QK(){var a=0,b=0,d=0,e=0,f=0;a=(c[(c[47324]|0)+16>>2]|0)+192|0;while(1){a=c[a>>2]|0;if(!a)break;a=c[a+16>>2]|0;c[a+280>>2]=0;a=a+164|0}f=HK(c[47320]<<2)|0;e=0;a=(c[(c[47324]|0)+16>>2]|0)+192|0;while(1){b=c[a>>2]|0;if(!b)break;d=b+16|0;a=c[d>>2]|0;if(!(c[a+280>>2]|0)){c[f+(e<<2)>>2]=bL(b)|0;b=e+1|0;a=c[d>>2]|0}else b=e;e=b;a=a+164|0}a=cL(f,e)|0;while(1){if((dL(a)|0)<=1)break;hL(a,c[(gL(fL(eL(a)|0)|0)|0)+8>>2]|0)}l6(a);a=0;while(1){if((a|0)>=(e|0))break;l6(c[f+(a<<2)>>2]|0);a=a+1|0}l6(f);if((c[47325]|0)==((c[47320]|0)+-1|0)){iL();return}else Aa(102602,102632,523,102637)}function RK(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=c[47331]|0;f=c[47325]|0;j=c[47326]|0;k=c[47280]|0;b=0;a=0;g=i;while(1){if((g|0)>=(f|0)){h=8;break}e=c[j+(g<<2)>>2]|0;d=c[(c[e+16>>2]|0)+160>>2]|0;if((d|0)<0){if(!a)a=e;else a=(c[(c[a+16>>2]|0)+160>>2]|0)>(d|0)?e:a;b=b+1|0;if((b|0)>=(k|0))break}e=g+1|0;c[47331]=e;g=e}if((h|0)==8)if((i|0)>0){f=0;while(1){if((f|0)>=(i|0))break;d=c[j+(f<<2)>>2]|0;e=c[(c[d+16>>2]|0)+160>>2]|0;if((e|0)<0){if(!a)a=d;else a=(c[(c[a+16>>2]|0)+160>>2]|0)>(e|0)?d:a;b=b+1|0;if((b|0)>=(k|0))break}f=f+1|0}c[47331]=f}return a|0}function SK(a){a=a|0;var b=0,d=0;b=c[a>>2]&3;d=c[((b|0)==3?a:a+48|0)+40>>2]|0;a=c[((b|0)==2?a:a+-48|0)+40>>2]|0;b=(c[(c[d+16>>2]|0)+288>>2]|0)<(c[(c[a+16>>2]|0)+288>>2]|0);a=b?d:a;c[47327]=0;c[47328]=2147483647;d=c[a+16>>2]|0;c[47329]=c[d+284>>2];c[47330]=c[d+288>>2];if(b)aL(a);else $K(a);return c[47327]|0}function TK(a,b){a=a|0;b=b|0;var d=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+16|0;o=p;h=c[b>>2]&3;n=b+-48|0;k=b+48|0;m=b+16|0;h=(c[(c[(c[((h|0)==2?b:n)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((h|0)==3?b:k)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[m>>2]|0)+170>>1]|0)|0;do if((h|0)>0){d=c[a>>2]&3;i=c[((d|0)==3?a:a+48|0)+40>>2]|0;j=c[i+16>>2]|0;if(((c[j+276>>2]|0)+(c[j+268>>2]|0)|0)==1){XK(i,h);break}d=c[((d|0)==2?a:a+-48|0)+40>>2]|0;f=c[d+16>>2]|0;g=0-h|0;if(((c[f+276>>2]|0)+(c[f+268>>2]|0)|0)==1){XK(d,g);break}if((c[j+288>>2]|0)<(c[f+288>>2]|0)){XK(i,h);break}else{XK(d,g);break}}while(0);d=a+16|0;f=c[(c[d>>2]|0)+160>>2]|0;g=c[b>>2]&3;g=YK(c[((g|0)==3?b:k)+40>>2]|0,c[((g|0)==2?b:n)+40>>2]|0,f,1)|0;j=c[b>>2]&3;if((YK(c[((j|0)==2?b:n)+40>>2]|0,c[((j|0)==3?b:k)+40>>2]|0,f,0)|0)==(g|0)){c[(c[m>>2]|0)+160>>2]=0-f;c[(c[d>>2]|0)+160>>2]=0;ZK(a,b);o=c[g+16>>2]|0;_K(g,c[o+280>>2]|0,c[o+284>>2]|0)|0;l=p;return}else{dA(1,102563,o)|0;Ca(189124,1)}}function UK(){var b=0,d=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;WK();n=HK((c[47323]<<2)+4|0)|0;d=c[47323]|0;b=0;while(1){if((b|0)>(d|0))break;c[n+(b<<2)>>2]=0;b=b+1|0}b=c[(c[(c[47324]|0)+16>>2]|0)+192>>2]|0;d=b;while(1){if(!d)break;d=c[d+16>>2]|0;if(!(a[d+156>>0]|0)){m=n+(c[d+232>>2]<<2)|0;c[m>>2]=(c[m>>2]|0)+1}d=c[d+164>>2]|0}while(1){if(!b)break;m=b+16|0;b=c[m>>2]|0;if(!(a[b+156>>0]|0)){h=c[47323]|0;f=c[b+172>>2]|0;k=0;j=0;d=0;while(1){g=c[f+(d<<2)>>2]|0;if(!g)break;i=c[g+16>>2]|0;l=(e[i+170>>1]|0)+(c[(c[(c[((c[g>>2]&3|0)==3?g:g+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0;k=(c[i+156>>2]|0)+k|0;j=(j|0)>(l|0)?j:l;d=d+1|0}g=c[b+180>>2]|0;i=0;l=h;d=0;while(1){f=c[g+(d<<2)>>2]|0;if(!f)break;o=c[f+16>>2]|0;h=(c[(c[(c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[o+170>>1]|0)|0;i=(c[o+156>>2]|0)+i|0;l=(l|0)<(h|0)?l:h;d=d+1|0}d=(j|0)>0?j:0;if((k|0)==(i|0)){h=d;f=d;while(1){d=f+1|0;g=n+(h<<2)|0;if((f|0)>=(l|0))break;h=(c[n+(d<<2)>>2]|0)<(c[g>>2]|0)?d:h;f=d}o=b+232|0;l=n+(c[o>>2]<<2)|0;c[l>>2]=(c[l>>2]|0)+-1;c[g>>2]=(c[g>>2]|0)+1;c[o>>2]=h}d=c[b+264>>2]|0;if(d){l6(d);b=c[m>>2]|0}d=c[b+272>>2]|0;if(d){l6(d);b=c[m>>2]|0}a[b+157>>0]=0}b=c[b+164>>2]|0}l6(n);return}function VK(){var a=0,b=0,d=0,f=0,g=0,h=0;b=0;while(1){if((b|0)>=(c[47325]|0))break;a=c[(c[47326]|0)+(b<<2)>>2]|0;do if(((c[(c[a+16>>2]|0)+160>>2]|0)==0?(d=SK(a)|0,d|0):0)?(f=c[d>>2]&3,f=(c[(c[(c[((f|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((f|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[d+16>>2]|0)+170>>1]|0)|0,(f|0)>=2):0){h=c[a>>2]&3;g=c[((h|0)==3?a:a+48|0)+40>>2]|0;a=c[((h|0)==2?a:a+-48|0)+40>>2]|0;if((c[(c[g+16>>2]|0)+288>>2]|0)<(c[(c[a+16>>2]|0)+288>>2]|0)){XK(g,f>>>1);break}else{XK(a,(f|0)/-2|0);break}}while(0);b=b+1|0}PK();return}function WK(){var b=0,d=0,e=0,f=0,g=0;c[47322]=2147483647;c[47323]=-2147483647;b=c[(c[(c[47324]|0)+16>>2]|0)+192>>2]|0;e=b;d=2147483647;f=-2147483647;while(1){if(!e)break;e=c[e+16>>2]|0;if(!(a[e+156>>0]|0)){g=c[e+232>>2]|0;d=(d|0)<(g|0)?d:g;c[47322]=d;f=(f|0)>(g|0)?f:g;c[47323]=f}e=c[e+164>>2]|0}if(d|0){while(1){if(!b)break;g=c[b+16>>2]|0;e=g+232|0;c[e>>2]=(c[e>>2]|0)-d;b=c[g+164>>2]|0}c[47323]=f-d;c[47322]=0}return}function XK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+16|0;a=c[f>>2]|0;e=a+232|0;c[e>>2]=(c[e>>2]|0)-b;e=0;while(1){d=c[(c[a+272>>2]|0)+(e<<2)>>2]|0;if(!d){e=0;break}if((d|0)!=(c[a+280>>2]|0)){XK(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0,b);a=c[f>>2]|0}e=e+1|0}while(1){d=c[(c[a+264>>2]|0)+(e<<2)>>2]|0;if(!d)break;if((d|0)!=(c[a+280>>2]|0)){XK(c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0,b);a=c[f>>2]|0}e=e+1|0}return}function YK(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;g=(e|0)==0&1;h=0-d|0;f=c[(c[b+16>>2]|0)+288>>2]|0;b=a;while(1){a=c[b+16>>2]|0;if((c[a+284>>2]|0)<=(f|0)?(f|0)<=(c[a+288>>2]|0):0)break;a=c[a+280>>2]|0;i=a+48|0;j=(c[a+16>>2]|0)+160|0;c[j>>2]=(((b|0)==(c[((c[a>>2]&3|0)==3?a:i)+40>>2]|0)?e:g)|0?d:h)+(c[j>>2]|0);j=c[a>>2]&3;i=c[((j|0)==3?a:i)+40>>2]|0;a=c[((j|0)==2?a:a+-48|0)+40>>2]|0;b=(c[(c[i+16>>2]|0)+288>>2]|0)>(c[(c[a+16>>2]|0)+288>>2]|0)?i:a}return b|0}function ZK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=a+16|0;h=(c[e>>2]|0)+164|0;c[(c[b+16>>2]|0)+164>>2]=c[h>>2];c[(c[47326]|0)+(c[h>>2]<<2)>>2]=b;c[(c[e>>2]|0)+164>>2]=-1;e=(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)+16|0;h=c[e>>2]|0;d=h+276|0;f=c[d>>2]|0;g=f+-1|0;c[d>>2]=g;h=c[h+272>>2]|0;d=0;while(1){i=h+(d<<2)|0;if((d|0)>=(f|0))break;if((c[i>>2]|0)==(a|0))break;else d=d+1|0}c[i>>2]=c[h+(g<<2)>>2];c[(c[(c[e>>2]|0)+272>>2]|0)+(g<<2)>>2]=0;e=(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0)+16|0;h=c[e>>2]|0;d=h+268|0;f=c[d>>2]|0;g=f+-1|0;c[d>>2]=g;h=c[h+264>>2]|0;d=0;while(1){i=h+(d<<2)|0;if((d|0)>=(f|0))break;if((c[i>>2]|0)==(a|0))break;else d=d+1|0}c[i>>2]=c[h+(g<<2)>>2];c[(c[(c[e>>2]|0)+264>>2]|0)+(g<<2)>>2]=0;a=(c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)+16|0;i=c[a>>2]|0;h=c[i+272>>2]|0;i=i+276|0;g=c[i>>2]|0;c[i>>2]=g+1;c[h+(g<<2)>>2]=b;a=c[a>>2]|0;c[(c[a+272>>2]|0)+(c[a+276>>2]<<2)>>2]=0;a=(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)+16|0;g=c[a>>2]|0;h=c[g+264>>2]|0;g=g+268|0;i=c[g>>2]|0;c[g>>2]=i+1;c[h+(i<<2)>>2]=b;b=c[a>>2]|0;c[(c[b+264>>2]|0)+(c[b+268>>2]<<2)>>2]=0;return}function _K(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=a+16|0;a=c[g>>2]|0;c[a+280>>2]=b;c[a+284>>2]=d;f=0;while(1){e=c[(c[a+272>>2]|0)+(f<<2)>>2]|0;if(!e){f=0;break}if((e|0)!=(b|0)){d=_K(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,e,d)|0;a=c[g>>2]|0}f=f+1|0}while(1){e=c[(c[a+264>>2]|0)+(f<<2)>>2]|0;if(!e)break;if((e|0)!=(b|0)){d=_K(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0,e,d)|0;a=c[g>>2]|0}f=f+1|0}c[a+288>>2]=d;return d+1|0}function $K(a){a=a|0;var b=0,d=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=a+16|0;b=0;while(1){a=c[l>>2]|0;i=c[(c[a+180>>2]|0)+(b<<2)>>2]|0;if(!i){d=0;break}j=c[i+16>>2]|0;d=c[i>>2]&3;f=c[((d|0)==2?i:i+-48|0)+40>>2]|0;g=c[f+16>>2]|0;h=c[g+288>>2]|0;if((c[j+164>>2]|0)<0){if((c[47329]|0)>(h|0)|(h|0)>(c[47330]|0)?(k=(c[g+232>>2]|0)-(c[(c[(c[((d|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[j+170>>1]|0)|0,(k|0)<(c[47328]|0)|(c[47327]|0)==0):0){c[47327]=i;c[47328]=k}}else if((h|0)<(c[a+288>>2]|0))$K(f);b=b+1|0}while(1){b=c[(c[a+264>>2]|0)+(d<<2)>>2]|0;if(!((b|0)!=0&(c[47328]|0)>0))break;b=c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0;if((c[(c[b+16>>2]|0)+288>>2]|0)<(c[a+288>>2]|0)){$K(b);a=c[l>>2]|0}d=d+1|0}return}function aL(a){a=a|0;var b=0,d=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=a+16|0;b=0;while(1){a=c[l>>2]|0;i=c[(c[a+172>>2]|0)+(b<<2)>>2]|0;if(!i){d=0;break}j=c[i+16>>2]|0;d=c[i>>2]&3;f=c[((d|0)==3?i:i+48|0)+40>>2]|0;g=c[f+16>>2]|0;h=c[g+288>>2]|0;if((c[j+164>>2]|0)<0){if((c[47329]|0)>(h|0)|(h|0)>(c[47330]|0)?(k=(c[(c[(c[((d|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[g+232>>2]|0)-(e[j+170>>1]|0)|0,(k|0)<(c[47328]|0)|(c[47327]|0)==0):0){c[47327]=i;c[47328]=k}}else if((h|0)<(c[a+288>>2]|0))aL(f);b=b+1|0}while(1){b=c[(c[a+272>>2]|0)+(d<<2)>>2]|0;if(!((b|0)!=0&(c[47328]|0)>0))break;b=c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0;if((c[(c[b+16>>2]|0)+288>>2]|0)<(c[a+288>>2]|0)){aL(b);a=c[l>>2]|0}d=d+1|0}return}function bL(a){a=a|0;var b=0;b=HK(16)|0;c[b>>2]=a;c[b+4>>2]=rL(a,b)|0;c[b+12>>2]=b;return b|0}function cL(a,b){a=a|0;b=b|0;var d=0,e=0;e=HK(8)|0;c[e>>2]=a;c[e+4>>2]=b;d=0;while(1){if((d|0)>=(b|0))break;c[(c[a+(d<<2)>>2]|0)+8>>2]=d;d=d+1|0}d=(b|0)/2|0;while(1){if((d|0)<=-1)break;hL(e,d);d=d+-1|0}return e|0}function dL(a){a=a|0;return c[a+4>>2]|0}function eL(a){a=a|0;var b=0,d=0,e=0,f=0;f=c[a>>2]|0;b=c[f>>2]|0;c[b+8>>2]=-1;d=a+4|0;e=(c[d>>2]|0)+-1|0;c[f>>2]=c[f+(e<<2)>>2];f=c[a>>2]|0;c[(c[f>>2]|0)+8>>2]=0;c[f+(e<<2)>>2]=b;c[d>>2]=e;hL(a,0);return b|0}function fL(a){a=a|0;return qL(c[a>>2]|0,0,0)|0}function gL(a){a=a|0;var b=0,d=0,f=0,g=0,h=0,i=0;b=a+16|0;if((c[(c[b>>2]|0)+164>>2]|0)>-1)Aa(102651,102632,463,102665);g=a+48|0;d=mL(c[((c[a>>2]&3|0)==3?a:g)+40>>2]|0)|0;i=a+-48|0;f=mL(c[((c[a>>2]&3|0)==2?a:i)+40>>2]|0)|0;h=c[a>>2]&3;b=(c[(c[(c[((h|0)==2?a:i)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((h|0)==3?a:g)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[b>>2]|0)+170>>1]|0)|0;if((c[d+8>>2]|0)==-1)nL(c[d>>2]|0,0,b);else nL(c[f>>2]|0,0,0-b|0);oL(a);return pL(d,f)|0}function hL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=c[a>>2]|0;h=c[a+4>>2]|0;while(1){a=b<<1;f=a+2|0;a=a|1;g=i+(b<<2)|0;if(!((a|0)<(h|0)?(c[(c[i+(a<<2)>>2]|0)+4>>2]|0)<(c[(c[g>>2]|0)+4>>2]|0):0))a=b;if((f|0)>=(h|0))break;d=i+(f<<2)|0;e=c[d>>2]|0;if((f|0)==(b|0)?1:(c[e+4>>2]|0)>=(c[(c[i+(a<<2)>>2]|0)+4>>2]|0))break;a=c[g>>2]|0;c[g>>2]=e;c[d>>2]=a;c[(c[g>>2]|0)+8>>2]=b;c[a+8>>2]=f;b=f}return}function iL(){_K(c[(c[(c[47324]|0)+16>>2]|0)+192>>2]|0,0,1)|0;jL(c[(c[(c[47324]|0)+16>>2]|0)+192>>2]|0,0);return}function jL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+16|0;d=0;while(1){a=c[f>>2]|0;e=c[(c[a+272>>2]|0)+(d<<2)>>2]|0;if(!e){e=0;break}if((e|0)!=(b|0))jL(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,e);d=d+1|0}while(1){d=c[(c[a+264>>2]|0)+(e<<2)>>2]|0;if(!d)break;if((d|0)!=(b|0)){jL(c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0,d);a=c[f>>2]|0}e=e+1|0}if(b|0)kL(b);return}function kL(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=c[a>>2]&3;d=c[((b|0)==3?a:a+48|0)+40>>2]|0;e=c[d+16>>2]|0;if((c[e+280>>2]|0)==(a|0))i=1;else{e=c[((b|0)==2?a:a+-48|0)+40>>2]|0;i=-1;d=e;e=c[e+16>>2]|0}g=c[e+180>>2]|0;b=0;f=0;while(1){h=c[g+(f<<2)>>2]|0;if(!h)break;b=(lL(h,d,i)|0)+b|0;f=f+1|0}g=c[e+172>>2]|0;e=0;while(1){f=c[g+(e<<2)>>2]|0;if(!f)break;b=(lL(f,d,i)|0)+b|0;e=e+1|0}c[(c[a+16>>2]|0)+160>>2]=b;return}function lL(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=c[a>>2]&3;f=c[((h|0)==3?a:a+48|0)+40>>2]|0;e=(f|0)==(b|0);h=((h|0)==2?a:a+-48|0)+40|0;if(e)f=c[h>>2]|0;g=c[b+16>>2]|0;i=c[(c[f+16>>2]|0)+288>>2]|0;f=c[a+16>>2]|0;a=c[f+156>>2]|0;if((c[g+284>>2]|0)<=(i|0)?(i|0)<=(c[g+288>>2]|0):0){if((c[f+164>>2]|0)>-1)f=c[f+160>>2]|0;else f=0;g=0;f=f-a|0}else{g=1;f=a}if((d|0)>0)e=(c[h>>2]|0)==(b|0);i=e?1:-1;return ((((g|0)==0?i:0-i|0)|0)<0?0-f|0:f)|0}function mL(a){a=a|0;var b=0,d=0;a=c[(c[a+16>>2]|0)+280>>2]|0;while(1){b=a+12|0;d=c[b>>2]|0;if(!((d|0)!=(a|0)&(d|0)!=0))break;a=c[d+12>>2]|0;if(!a){a=d;continue}c[b>>2]=a}return a|0}function nL(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=a+16|0;e=c[h>>2]|0;g=e+232|0;c[g>>2]=(c[g>>2]|0)+d;g=0;while(1){f=c[(c[e+264>>2]|0)+(g<<2)>>2]|0;if(!f){g=0;break}f=c[((c[f>>2]&3|0)==3?f:f+48|0)+40>>2]|0;if((f|0)!=(b|0)){nL(f,a,d);e=c[h>>2]|0}g=g+1|0}while(1){f=c[(c[e+272>>2]|0)+(g<<2)>>2]|0;if(!f)break;f=c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0;if((f|0)!=(b|0)){nL(f,a,d);e=c[h>>2]|0}g=g+1|0}return}function oL(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=l;l=l+32|0;d=(c[b+16>>2]|0)+164|0;if((c[d>>2]|0)>-1){dA(1,102754,h)|0;Ca(189124,1)}g=c[47325]|0;c[d>>2]=g;d=c[47326]|0;c[47325]=g+1;c[d+(g<<2)>>2]=b;d=c[b>>2]|0;g=b+48|0;e=c[((d&3|0)==3?b:g)+40>>2]|0;if(!(a[(c[e+16>>2]|0)+157>>0]|0)){f=c[47332]|0;d=c[47333]|0;c[47333]=d+1;c[f+(d<<2)>>2]=e;d=c[b>>2]|0}f=b+-48|0;e=c[((d&3|0)==2?b:f)+40>>2]|0;if(!(a[(c[e+16>>2]|0)+157>>0]|0)){i=c[47332]|0;d=c[47333]|0;c[47333]=d+1;c[i+(d<<2)>>2]=e;d=c[b>>2]|0}i=(c[((d&3|0)==3?b:g)+40>>2]|0)+16|0;d=c[i>>2]|0;a[d+157>>0]=1;e=c[d+272>>2]|0;d=d+276|0;g=c[d>>2]|0;c[d>>2]=g+1;c[e+(g<<2)>>2]=b;g=c[i>>2]|0;c[(c[g+272>>2]|0)+(c[g+276>>2]<<2)>>2]=0;i=c[i>>2]|0;if(!(c[(c[i+180>>2]|0)+((c[i+276>>2]|0)+-1<<2)>>2]|0)){dA(1,102788,h+8|0)|0;Ca(189124,1)}i=(c[((c[b>>2]&3|0)==2?b:f)+40>>2]|0)+16|0;e=c[i>>2]|0;a[e+157>>0]=1;f=c[e+264>>2]|0;e=e+268|0;g=c[e>>2]|0;c[e>>2]=g+1;c[f+(g<<2)>>2]=b;b=c[i>>2]|0;c[(c[b+264>>2]|0)+(c[b+268>>2]<<2)>>2]=0;i=c[i>>2]|0;if(!(c[(c[i+172>>2]|0)+((c[i+268>>2]|0)+-1<<2)>>2]|0)){dA(1,102823,h+16|0)|0;Ca(189124,1)}else{l=h;return}}function pL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;while(1){i=a+12|0;d=c[i>>2]|0;if((d|0)==0|(d|0)==(a|0))break;else a=d}while(1){h=b+12|0;d=c[h>>2]|0;if((d|0)==0|(d|0)==(b|0))break;else b=d}if((a|0)!=(b|0)){d=c[a+8>>2]|0;e=c[b+8>>2]|0;if((e&d|0)<=-1)Aa(102677,102632,327,102724);f=c[a+4>>2]|0;g=c[b+4>>2]|0;if((e|0)!=-1){d=(d|0)==-1?b:(g|0)<(f|0)?a:b;a=d;d=c[d+8>>2]|0}c[h>>2]=a;c[i>>2]=a;c[a+4>>2]=g+f;if((d|0)>-1)j=a;else Aa(102735,102632,335,102724)}else j=a;return j|0}function qL(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=mL(a)|0;if(d){k=c[d>>2]&3;if(((c[(c[(c[((k|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((k|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0)!=(e[(c[d+16>>2]|0)+170>>1]|0|0))f=3}else{d=0;f=3}a:do if((f|0)==3){k=a+16|0;j=0;while(1){f=c[k>>2]|0;i=c[(c[f+180>>2]|0)+(j<<2)>>2]|0;if(!i){j=0;break}f=i+16|0;g=i+-48|0;h=c[((c[i>>2]&3|0)==2?i:g)+40>>2]|0;do if((c[(c[f>>2]|0)+164>>2]|0)>-1){if((h|0)!=(b|0))d=qL(h,a,d)|0}else if((mL(h)|0)!=(l|0)){if(d|0?(m=c[i>>2]&3,h=c[d>>2]&3,((c[(c[(c[((m|0)==2?i:g)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((m|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[f>>2]|0)+170>>1]|0)|0)>=((c[(c[(c[((h|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((h|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[d+16>>2]|0)+170>>1]|0)|0)):0)break;d=i}while(0);j=j+1|0}while(1){f=c[(c[f+172>>2]|0)+(j<<2)>>2]|0;if(!f)break a;g=f+16|0;h=f+48|0;i=c[((c[f>>2]&3|0)==3?f:h)+40>>2]|0;do if((c[(c[g>>2]|0)+164>>2]|0)>-1){if((i|0)!=(b|0))d=qL(i,a,d)|0}else if((mL(i)|0)!=(l|0)){if(d|0?(i=c[f>>2]&3,m=c[d>>2]&3,((c[(c[(c[((i|0)==2?f:f+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((i|0)==3?f:h)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[g>>2]|0)+170>>1]|0)|0)>=((c[(c[(c[((m|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((m|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[d+16>>2]|0)+170>>1]|0)|0)):0)break;d=f}while(0);j=j+1|0;f=c[k>>2]|0}}while(0);return d|0}function rL(a,b){a=a|0;b=b|0;var d=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;l=a+16|0;d=c[l>>2]|0;c[d+280>>2]=b;a=1;h=0;while(1){g=c[(c[d+172>>2]|0)+(h<<2)>>2]|0;if(!g){h=0;break}f=c[g+16>>2]|0;if(((c[f+164>>2]|0)<=-1?(i=c[g>>2]&3,j=g+48|0,k=c[(c[((i|0)==3?g:j)+40>>2]|0)+16>>2]|0,(c[k+280>>2]|0)==0):0)?((c[(c[(c[((i|0)==2?g:g+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[k+232>>2]|0)|0)==(e[f+170>>1]|0|0):0){oL(g);a=(rL(c[((c[g>>2]&3|0)==3?g:j)+40>>2]|0,b)|0)+a|0;d=c[l>>2]|0}h=h+1|0}while(1){f=c[(c[d+180>>2]|0)+(h<<2)>>2]|0;if(!f)break;g=c[f+16>>2]|0;if(((c[g+164>>2]|0)<=-1?(m=c[f>>2]&3,n=f+-48|0,o=c[(c[((m|0)==2?f:n)+40>>2]|0)+16>>2]|0,(c[o+280>>2]|0)==0):0)?((c[o+232>>2]|0)-(c[(c[(c[((m|0)==3?f:f+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0)==(e[g+170>>1]|0|0):0){oL(f);a=(rL(c[((c[f>>2]&3|0)==2?f:n)+40>>2]|0,b)|0)+a|0;d=c[l>>2]|0}h=h+1|0}return a|0}function sL(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=NA(a,102887)|0;if(!d)d=30;else d=d6(d)|0;return LK(a,b,c,d)|0}function tL(a){a=+a;return +((c[47187]|0)==0?a:+h[23322]-a)}function uL(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0;s=l;l=l+16|0;r=s;c[47334]=c[(c[(c[d+64>>2]|0)+8>>2]|0)+4>>2];vL(d);i=c[d+16>>2]|0;u=+h[i+32>>3];t=+h[i+40>>3];wL(e,102898,+h[b+352>>3]);wL(e,102905,u/72.0);wL(e,102905,t/72.0);xL(e);i=gC(d)|0;while(1){if(!i)break;g=i+16|0;if(!(a[(c[g>>2]|0)+118>>0]|0)){yL(e,102907,ZD(HB(i)|0)|0);q=(c[g>>2]|0)+16|0;c[r>>2]=c[q>>2];c[r+4>>2]=c[q+4>>2];c[r+8>>2]=c[q+8>>2];c[r+12>>2]=c[q+12>>2];zL(e,r);if(!(a[(c[(c[g>>2]|0)+104>>2]|0)+82>>0]|0)){b=uC(i)|0;b=AL(b,c[c[(c[g>>2]|0)+104>>2]>>2]|0)|0}else b=ZD(OA(i,c[47216]|0)|0)|0;wL(e,102905,+h[(c[g>>2]|0)+32>>3]);wL(e,102905,+h[(c[g>>2]|0)+40>>3]);yL(e,102905,b);yL(e,102905,$O(i,c[47219]|0,111368)|0);yL(e,102905,c[c[(c[g>>2]|0)+8>>2]>>2]|0);yL(e,102905,$O(i,c[47202]|0,137615)|0);b=$O(i,c[47203]|0,195341)|0;if(!(a[b>>0]|0))b=$O(i,c[47202]|0,135101)|0;yL(e,102905,b);xL(e)}i=hC(d,i)|0}o=f<<24>>24==0;n=gC(d)|0;while(1){if(!n)break;m=UA(d,n)|0;while(1){if(!m)break;if(o){f=195341;j=195341}else{j=NA(m,111756)|0;f=NA(m,111765)|0;f=f|0?f:195341;j=j|0?j:195341}p=m+16|0;b=c[p>>2]|0;k=c[b+8>>2]|0;q=m+48|0;a:do if(k){i=c[k+4>>2]|0;b=0;g=0;while(1){if((b|0)>=(i|0))break;v=(c[(c[k>>2]|0)+(b*48|0)+4>>2]|0)+g|0;b=b+1|0;g=v}yL(e,0,111751);BL(e,c[((c[m>>2]&3|0)==3?m:q)+40>>2]|0,j);BL(e,c[((c[m>>2]&3|0)==2?m:m+-48|0)+40>>2]|0,f);CL(e,g);f=0;while(1){b=c[p>>2]|0;g=c[b+8>>2]|0;if((f|0)>=(c[g+4>>2]|0))break a;i=c[g>>2]|0;g=c[i+(f*48|0)>>2]|0;i=c[i+(f*48|0)+4>>2]|0;b=0;while(1){if((b|0)>=(i|0))break;v=g+(b<<4)|0;c[r>>2]=c[v>>2];c[r+4>>2]=c[v+4>>2];c[r+8>>2]=c[v+8>>2];c[r+12>>2]=c[v+12>>2];zL(e,r);b=b+1|0}f=f+1|0}}while(0);if(c[b+96>>2]|0){v=uC(c[((c[m>>2]&3|0)==3?m:q)+40>>2]|0)|0;yL(e,102905,AL(v,c[c[(c[p>>2]|0)+96>>2]>>2]|0)|0);v=(c[(c[p>>2]|0)+96>>2]|0)+56|0;c[r>>2]=c[v>>2];c[r+4>>2]=c[v+4>>2];c[r+8>>2]=c[v+8>>2];c[r+12>>2]=c[v+12>>2];zL(e,r)}yL(e,102905,$O(m,c[47254]|0,111368)|0);yL(e,102905,$O(m,c[47238]|0,137615)|0);xL(e);m=WA(d,m)|0}n=hC(d,n)|0}DL(102913,e);l=s;return}function vL(a){a=a|0;var b=0.0;if(c[47187]|0){a=c[a+16>>2]|0;b=+h[a+40>>3]+ +h[a+24>>3];h[23322]=b;h[23323]=b/72.0}return}function wL(a,b,c){a=a|0;b=b|0;c=+c;var d=0,e=0,f=0;f=l;l=l+1040|0;e=f;d=f+8|0;if(b|0)DL(b,a);h[e>>3]=c;i2(d,102919,e)|0;DL(d,a);l=f;return}function xL(b){b=b|0;a[195237]=10;vb[c[47334]&127](b,195237)|0;return}function yL(a,b,c){a=a|0;b=b|0;c=c|0;if(b|0)DL(b,a);DL(c,a);return}function zL(a,b){a=a|0;b=b|0;var d=0.0;wL(a,102905,+h[b>>3]/72.0);d=+h[b+8>>3];wL(a,102905,((c[47187]|0)==0?d:+h[23322]-d)/72.0);return}function AL(a,b){a=a|0;b=b|0;var c=0;c=dD(a,b)|0;b=ZD(c)|0;fD(a,c)|0;return b|0}function BL(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if(!(a[(c[d+16>>2]|0)+118>>0]|0))d=ZD(HB(d)|0)|0;else{f=uC(d)|0;d=AL(f,(F3(HB(d)|0,58)|0)+1|0)|0}yL(b,102905,d);if(e|0?a[e>>0]|0:0)yL(b,108285,ZD(e)|0);return}function CL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+1040|0;f=d;e=d+8|0;DL(102905,a);c[f>>2]=b;i2(e,137696,f)|0;DL(e,a);l=d;return}function DL(a,b){a=a|0;b=b|0;vb[c[47334]&127](b,a)|0;return}function EL(d,f,g){d=d|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0.0,Z=0;X=l;l=l+2288|0;V=X+208|0;U=X+192|0;T=X+176|0;S=X+160|0;R=X+144|0;Q=X+128|0;O=X+112|0;N=X+96|0;M=X+80|0;L=X+64|0;K=X+56|0;H=X+48|0;W=X+32|0;P=X+24|0;G=X;D=X+1264|0;E=X+224|0;F=d+16|0;B=(e[(c[F>>2]|0)+178>>1]|0)>2;PJ(1);vL(d);hA(E,1024,X+240|0);YP(d,1,102924,195341)|0;YP(d,1,102928,195341)|0;c[47200]=YP(d,1,141419,195341)|0;c[47199]=YP(d,1,141351,195341)|0;YP(d,2,102924,195341)|0;i=a[(c[F>>2]|0)+113>>0]|0;if(i&16){YP(d,1,102934,195341)|0;i=a[(c[F>>2]|0)+113>>0]|0}if(i&1){YP(d,2,102938,195341)|0;i=a[(c[F>>2]|0)+113>>0]|0}if(i&32){YP(d,2,102934,195341)|0;i=a[(c[F>>2]|0)+113>>0]|0}if(i&2){YP(d,2,102941,195341)|0;i=a[(c[F>>2]|0)+113>>0]|0}if(i&4){YP(d,2,102949,195341)|0;i=a[(c[F>>2]|0)+113>>0]|0}if(!(i&8)){u=0;v=0;w=0}else{w=YP(d,0,102938,195341)|0;v=YP(d,0,102957,195341)|0;u=YP(d,0,102964,195341)|0}y=YP(d,0,102972,195341)|0;z=E+4|0;A=E+8|0;t=0;i=0;x=gC(d)|0;while(1){if(!x)break;s=x+16|0;j=c[s>>2]|0;n=+h[j+16>>3];o=+h[j+24>>3];o=(c[47187]|0)==0?o:+h[23322]-o;if(B){Y=+h[(c[j+132>>2]|0)+16>>3]*72.0;h[G>>3]=n;h[G+8>>3]=o;h[G+16>>3]=Y;i2(D,102975,G)|0;kA(E,D)|0;j=3;while(1){if((j|0)>=(e[(c[F>>2]|0)+178>>1]|0))break;h[P>>3]=+h[(c[(c[s>>2]|0)+132>>2]|0)+(j<<3)>>3]*72.0;i2(D,102990,P)|0;kA(E,D)|0;j=j+1|0}j=c[z>>2]|0;if(j>>>0>=(c[A>>2]|0)>>>0){iA(E,1)|0;j=c[z>>2]|0}a[j>>0]=0;r=c[E>>2]|0;c[z>>2]=r;PA(x,102924,r)|0;r=x}else{h[W>>3]=n;h[W+8>>3]=o;i2(D,102996,W)|0;PA(x,102924,D)|0;r=x}h[H>>3]=+h[(c[s>>2]|0)+80>>3]/72.0;i2(D,102919,H)|0;HA(r,c[47199]|0,D)|0;j=c[s>>2]|0;h[K>>3]=(+h[j+88>>3]+ +h[j+96>>3])/72.0;i2(D,102919,K)|0;HA(r,c[47200]|0,D)|0;j=c[s>>2]|0;k=c[j+108>>2]|0;if((k|0)!=0?(a[k+81>>0]|0)!=0:0){Y=+h[k+64>>3];Y=(c[47187]|0)==0?Y:+h[23322]-Y;h[L>>3]=+h[k+56>>3];h[L+8>>3]=Y;i2(D,102996,L)|0;PA(r,102934,D)|0;j=c[s>>2]|0}if(f2(c[c[j+8>>2]>>2]|0,106521)|0){if(c[47232]|0?(fN(x)|0)<<24>>24:0){k=c[(c[s>>2]|0)+12>>2]|0;q=k+8|0;j=c[q>>2]|0;if((j|0)<3){j=NA(r,103006)|0;if(!j)j=8;else j=d6(j)|0;j=(j|0)<3?8:j}p=k+44|0;n=+(j|0);m=0;while(1){if((m|0)>=(j|0))break;if((m|0)>0){k=c[z>>2]|0;if(k>>>0>=(c[A>>2]|0)>>>0){iA(E,1)|0;k=c[z>>2]|0}c[z>>2]=k+1;a[k>>0]=32}k=(c[47187]|0)!=0;if((c[q>>2]|0)>2){Z=c[p>>2]|0;Y=+h[Z+(m<<4)+8>>3]/72.0;Y=k?+h[23323]-Y:Y;h[M>>3]=+h[Z+(m<<4)>>3]/72.0;h[M+8>>3]=Y;i2(D,103019,M)|0}else{Z=c[s>>2]|0;Y=+(m|0)/n*3.141592653589793*2.0;o=+h[Z+32>>3]*.5*+I(+Y);Y=+h[Z+40>>3]*.5*+J(+Y);Y=k?+h[23323]-Y:Y;h[N>>3]=o;h[N+8>>3]=Y;i2(D,103019,N)|0}kA(E,D)|0;m=m+1|0}k=c[47232]|0;j=c[z>>2]|0;if(j>>>0>=(c[A>>2]|0)>>>0){iA(E,1)|0;j=c[z>>2]|0}a[j>>0]=0;Z=c[E>>2]|0;c[z>>2]=Z;HA(r,k,Z)|0}}else{FL(x,c[j+12>>2]|0,E);mA(E)|0;j=c[z>>2]|0;if(j>>>0>=(c[A>>2]|0)>>>0){iA(E,1)|0;j=c[z>>2]|0}a[j>>0]=0;Z=c[E>>2]|0;c[z>>2]=Z;PA(r,102928,Z)|0}a:do if((c[47185]|0)>0){s=UA(d,x)|0;j=t;while(1){if(!s)break a;r=s+16|0;k=c[r>>2]|0;do if((a[k+112>>0]|0)!=6?(C=c[k+8>>2]|0,(C|0)!=0):0){q=0;k=C;while(1){if((q|0)>=(c[k+4>>2]|0))break;if((q|0)>0){k=c[z>>2]|0;if(k>>>0>=(c[A>>2]|0)>>>0){iA(E,1)|0;k=c[z>>2]|0}c[z>>2]=k+1;a[k>>0]=59;k=c[(c[r>>2]|0)+8>>2]|0}k=c[k>>2]|0;if(c[k+(q*48|0)+8>>2]|0){Y=+h[k+(q*48|0)+24>>3];Y=(c[47187]|0)==0?Y:+h[23322]-Y;h[O>>3]=+h[k+(q*48|0)+16>>3];h[O+8>>3]=Y;i2(D,103029,O)|0;kA(E,D)|0;i=1;k=c[c[(c[r>>2]|0)+8>>2]>>2]|0}if(c[k+(q*48|0)+12>>2]|0){Y=+h[k+(q*48|0)+40>>3];Y=(c[47187]|0)==0?Y:+h[23322]-Y;h[Q>>3]=+h[k+(q*48|0)+32>>3];h[Q+8>>3]=Y;i2(D,103042,Q)|0;kA(E,D)|0;j=1}p=0;while(1){k=c[(c[r>>2]|0)+8>>2]|0;m=c[k>>2]|0;if((p|0)>=(c[m+(q*48|0)+4>>2]|0))break;if((p|0)>0){k=c[z>>2]|0;if(k>>>0>=(c[A>>2]|0)>>>0){iA(E,1)|0;k=c[z>>2]|0}c[z>>2]=k+1;a[k>>0]=32;k=c[c[(c[r>>2]|0)+8>>2]>>2]|0}else k=m;Z=c[k+(q*48|0)>>2]|0;Y=+h[Z+(p<<4)+8>>3];Y=(c[47187]|0)==0?Y:+h[23322]-Y;h[R>>3]=+h[Z+(p<<4)>>3];h[R+8>>3]=Y;i2(D,102996,R)|0;kA(E,D)|0;p=p+1|0}q=q+1|0}k=c[z>>2]|0;if(k>>>0>=(c[A>>2]|0)>>>0){iA(E,1)|0;k=c[z>>2]|0}a[k>>0]=0;k=c[E>>2]|0;c[z>>2]=k;PA(s,102924,k)|0;k=c[r>>2]|0;m=c[k+96>>2]|0;if(m){Y=+h[m+64>>3];Y=(c[47187]|0)==0?Y:+h[23322]-Y;h[S>>3]=+h[m+56>>3];h[S+8>>3]=Y;i2(D,102996,S)|0;PA(s,102938,D)|0;k=c[r>>2]|0}m=c[k+108>>2]|0;do if(m){if(!(a[m+81>>0]|0))break;Y=+h[m+64>>3];Y=(c[47187]|0)==0?Y:+h[23322]-Y;h[T>>3]=+h[m+56>>3];h[T+8>>3]=Y;i2(D,102996,T)|0;PA(s,102934,D)|0;k=c[r>>2]|0}while(0);m=c[k+100>>2]|0;if(m){Y=+h[m+64>>3];Y=(c[47187]|0)==0?Y:+h[23322]-Y;h[U>>3]=+h[m+56>>3];h[U+8>>3]=Y;i2(D,102996,U)|0;PA(s,102941,D)|0;k=c[r>>2]|0}k=c[k+104>>2]|0;if(!k)break;Y=+h[k+64>>3];Y=(c[47187]|0)==0?Y:+h[23322]-Y;h[V>>3]=+h[k+56>>3];h[V+8>>3]=Y;i2(D,102996,V)|0;PA(s,102949,D)|0}while(0);s=WA(d,s)|0}}else j=t;while(0);t=j;x=hC(d,x)|0}GL(d,y,w,v,u);lA(E);if(b[(c[F>>2]|0)+136>>1]&1)SP(d);c[f>>2]=i;c[g>>2]=t;PJ(0);l=X;return}function FL(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0.0,k=0.0,m=0,n=0.0,o=0.0,p=0.0,q=0;i=l;l=l+1056|0;f=i;e=i+32|0;g=b+48|0;if(!(c[g>>2]|0)){q=c[a+16>>2]|0;p=+h[q+16>>3];m=(c[47187]|0)!=0;j=+h[q+24>>3];o=j+ +h[b+24>>3];k=+h[23322];n=p+ +h[b+32>>3];j=j+ +h[b+40>>3];h[f>>3]=+h[b+16>>3]+p;h[f+8>>3]=m?k-o:o;h[f+16>>3]=n;h[f+24>>3]=m?k-j:j;i2(e,103080,f)|0;kA(d,e)|0}e=b+56|0;b=0;while(1){if((b|0)>=(c[g>>2]|0))break;FL(a,c[(c[e>>2]|0)+(b<<2)>>2]|0,d);b=b+1|0}l=i;return}function GL(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0,t=0.0,u=0.0,v=0;p=l;l=l+1088|0;k=p+56|0;n=p+48|0;m=p+32|0;i=p;j=p+64|0;o=b+16|0;v=c[o>>2]|0;s=(c[47187]|0)!=0;u=+h[v+24>>3];r=+h[23322];t=+h[v+32>>3];q=+h[v+40>>3];h[i>>3]=+h[v+16>>3];h[i+8>>3]=s?r-u:u;h[i+16>>3]=t;h[i+24>>3]=s?r-q:q;i2(j,103055,i)|0;HA(b,d,j)|0;i=c[(c[o>>2]|0)+12>>2]|0;if((i|0)!=0?(a[c[i>>2]>>0]|0)!=0:0){u=+h[i+64>>3];u=(c[47187]|0)==0?u:+h[23322]-u;h[m>>3]=+h[i+56>>3];h[m+8>>3]=u;i2(j,102996,m)|0;HA(b,e,j)|0;v=c[(c[o>>2]|0)+12>>2]|0;u=+h[v+32>>3];h[n>>3]=+h[v+24>>3]/72.0;i2(j,103075,n)|0;HA(b,f,j)|0;h[k>>3]=u/72.0;i2(j,103075,k)|0;HA(b,g,j)|0;b=1}else b=1;while(1){i=c[o>>2]|0;if((b|0)>(c[i+180>>2]|0))break;GL(c[(c[i+184>>2]|0)+(b<<2)>>2]|0,d,e,f,g);b=b+1|0}l=p;return}function HL(a){a=a|0;var b=0;b=l;l=l+16|0;EL(a,b,b+4|0);l=b;return}function IL(){return Sz(20788,c[4591]|0)|0}function JL(a,b,c){a=a|0;b=b|0;c=c|0;l6(b);return}function KL(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=c[b>>2]|0;e=c[d>>2]|0;if((a|0)<=(e|0))if((a|0)<(e|0))a=-1;else{b=c[b+4>>2]|0;d=c[d+4>>2]|0;return ((b|0)>(d|0)?1:((b|0)<(d|0))<<31>>31)|0}else a=1;return a|0}function LL(a){a=a|0;Oz(a)|0;return}function ML(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];b=NL(e)|0;if((eb[c[a>>2]&63](a,b,1)|0)!=(b|0))l6(b);l=d;return}function NL(a){a=a|0;var b=0,d=0,e=0;b=HK(16)|0;e=a;d=c[e+4>>2]|0;a=b+8|0;c[a>>2]=c[e>>2];c[a+4>>2]=d;return b|0}function OL(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e+8|0;g=e;c[g>>2]=b;c[g+4>>2]=d;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];b=NL(f)|0;if((eb[c[a>>2]&63](a,b,1)|0)!=(b|0))l6(b);l=e;return}function PL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d;g=b;f=c[g+4>>2]|0;b=e+8|0;c[b>>2]=c[g>>2];c[b+4>>2]=f;b=(eb[c[a>>2]&63](a,e,4)|0)!=0&1;l=d;return b|0}function QL(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;c[f+8>>2]=b;c[f+12>>2]=d;d=(eb[c[a>>2]&63](a,f,4)|0)!=0&1;l=e;return d|0}function RL(a){a=a|0;return Uz(a)|0}function SL(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=HK((Uz(a)|0)<<3)|0;b=d;a=Qz(a)|0;while(1){if(!a)break;g=a+8|0;f=c[g+4>>2]|0;e=b;c[e>>2]=c[g>>2];c[e+4>>2]=f;b=b+8|0;a=c[a>>2]|0}return d|0}function TL(){var a=0,b=0,d=0,e=0;a=IK(40)|0;b=a;d=20824;e=b+36|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));c[a+36>>2]=0;return Sz(a,c[4591]|0)|0}function UL(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;d=d+36|0;a=c[d>>2]|0;if(!a)a=IK(20)|0;else c[d>>2]=c[a>>2];f=b+8|0;e=c[f+4>>2]|0;d=a+8|0;c[d>>2]=c[f>>2];c[d+4>>2]=e;c[a+16>>2]=c[b+16>>2];return a|0}function VL(a,b,d){a=a|0;b=b|0;d=d|0;d=d+36|0;c[b>>2]=c[d>>2];c[d>>2]=b;return}function WL(a){a=a|0;eb[c[a>>2]&63](a,0,64)|0;return}function XL(a){a=a|0;var b=0,d=0;b=c[a+4>>2]|0;Oz(a)|0;a=c[b+36>>2]|0;while(1){if(!a)break;d=c[a>>2]|0;l6(a);a=d}l6(b);return}function YL(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+32|0;g=f;c[g+8>>2]=b;c[g+12>>2]=d;c[g+16>>2]=e;e=c[(eb[c[a>>2]&63](a,g,1)|0)+16>>2]|0;l=f;return e|0}function ZL(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,g=0.0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+160|0;q=t+144|0;d=t+64|0;j=t+128|0;k=t+112|0;m=t+96|0;n=t+48|0;o=t+32|0;p=t+16|0;r=t;s=a+16|0;a=c[s>>2]|0;e=+h[a+16>>3];f=+h[a+24>>3];g=+h[a+32>>3];i=+h[a+40>>3];a=d+16|0;if((b+-1|0)>>>0<2){_L(j,e,i);c[q>>2]=c[j>>2];c[q+4>>2]=c[j+4>>2];c[q+8>>2]=c[j+8>>2];c[q+12>>2]=c[j+12>>2];$L(d,q);_L(k,g,f);c[q>>2]=c[k>>2];c[q+4>>2]=c[k+4>>2];c[q+8>>2]=c[k+8>>2];c[q+12>>2]=c[k+12>>2];$L(m,q);c[a>>2]=c[m>>2];c[a+4>>2]=c[m+4>>2];c[a+8>>2]=c[m+8>>2];c[a+12>>2]=c[m+12>>2]}else{_L(n,e,f);c[q>>2]=c[n>>2];c[q+4>>2]=c[n+4>>2];c[q+8>>2]=c[n+8>>2];c[q+12>>2]=c[n+12>>2];$L(d,q);_L(o,g,i);c[q>>2]=c[o>>2];c[q+4>>2]=c[o+4>>2];c[q+8>>2]=c[o+8>>2];c[q+12>>2]=c[o+12>>2];$L(p,q);c[a>>2]=c[p>>2];c[a+4>>2]=c[p+4>>2];c[a+8>>2]=c[p+8>>2];c[a+12>>2]=c[p+12>>2]}a=(c[s>>2]|0)+16|0;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];c[a+16>>2]=c[d+16>>2];c[a+20>>2]=c[d+20>>2];c[a+24>>2]=c[d+24>>2];c[a+28>>2]=c[d+28>>2];a=c[(c[s>>2]|0)+12>>2]|0;if(!a)a=1;else{a=a+56|0;c[q>>2]=c[a>>2];c[q+4>>2]=c[a+4>>2];c[q+8>>2]=c[a+8>>2];c[q+12>>2]=c[a+12>>2];$L(r,q);c[a>>2]=c[r>>2];c[a+4>>2]=c[r+4>>2];c[a+8>>2]=c[r+8>>2];c[a+12>>2]=c[r+12>>2];a=1}while(1){d=c[s>>2]|0;if((a|0)>(c[d+180>>2]|0))break;ZL(c[(c[d+184>>2]|0)+(a<<2)>>2]|0,b);a=a+1|0}l=t;return}function _L(a,b,c){a=a|0;b=+b;c=+c;h[a>>3]=b;h[a+8>>3]=c;return}function $L(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+32|0;g=d+16|0;e=d;f=(c[47335]|0)*90|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];kK(e,g,f);c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[b+12>>2]=c[e+12>>2];h[b>>3]=+h[b>>3]-+h[23324];e=b+8|0;h[e>>3]=+h[e>>3]-+h[23325];c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];l=d;return}function aM(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,g=0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0;A=l;l=l+1168|0;x=A+144|0;z=A+96|0;y=A+64|0;w=A+48|0;s=A+32|0;t=A+16|0;u=A;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;v=b+16|0;q=c[(c[v>>2]|0)+116>>2]|0;c[47335]=q&3;q=q&1;a[195239]=q;if(!(q<<24>>24))cM(b);else bM(b);dM(b);q=c[v>>2]|0;g=c[q+12>>2]|0;do if(g|0?(a[g+81>>0]|0)==0:0){j=g+24|0;c[w>>2]=c[j>>2];c[w+4>>2]=c[j+4>>2];c[w+8>>2]=c[j+8>>2];c[w+12>>2]=c[j+12>>2];r=+h[w>>3]+16.0;h[w>>3]=r;j=w+8|0;e=+h[j>>3]+8.0;h[j>>3]=e;j=(a[q+275>>0]&1)!=0;m=q+16|0;n=q+40|0;o=q+24|0;p=q+32|0;if(a[195239]|0){if(j)h[p>>3]=e+ +h[p>>3];else h[m>>3]=+h[m>>3]-e;e=+h[n>>3];f=+h[o>>3];B=e-f;i=(r-B)*.5;if(!(r>B))break;h[o>>3]=f-i;h[n>>3]=e+i;break}k=(c[47335]|0)==0;do if(j)if(k){h[n>>3]=e+ +h[n>>3];break}else{h[o>>3]=+h[o>>3]-e;break}else if(k){h[o>>3]=+h[o>>3]-e;break}else{h[n>>3]=e+ +h[n>>3];break}while(0);e=+h[p>>3];f=+h[m>>3];B=e-f;i=(r-B)*.5;if(r>B){h[m>>3]=f-i;h[p>>3]=e+i}}while(0);if(d){switch(c[47335]|0){case 0:{u=q+16|0;c[46648]=c[u>>2];c[46649]=c[u+4>>2];c[46650]=c[u+8>>2];c[46651]=c[u+12>>2];break}case 1:{_L(s,-+h[q+40>>3],+h[q+16>>3]);c[46648]=c[s>>2];c[46649]=c[s+4>>2];c[46650]=c[s+8>>2];c[46651]=c[s+12>>2];break}case 2:{_L(t,+h[q+16>>3],-+h[q+40>>3]);c[46648]=c[t>>2];c[46649]=c[t+4>>2];c[46650]=c[t+8>>2];c[46651]=c[t+12>>2];break}case 3:{_L(u,+h[q+24>>3],+h[q+16>>3]);c[46648]=c[u>>2];c[46649]=c[u+4>>2];c[46650]=c[u+8>>2];c[46651]=c[u+12>>2];break}default:{}}eM(b);g=c[(c[v>>2]|0)+12>>2]|0}if(g|0?(a[g+81>>0]|0)==0:0){c[x>>2]=c[w>>2];c[x+4>>2]=c[w+4>>2];c[x+8>>2]=c[w+8>>2];c[x+12>>2]=c[w+12>>2];fM(b,x)}if(c[47181]|0){e=+h[23324];f=+h[23325];if(!(a[195239]|0)){h[z>>3]=f;h[z+8>>3]=e;h[z+16>>3]=f;h[z+24>>3]=e;h[z+32>>3]=-e;h[z+40>>3]=-f;i2(x,103316,z)|0}else{h[y>>3]=e;h[y+8>>3]=f;h[y+16>>3]=e;h[y+24>>3]=f;i2(x,103101,y)|0}z=Y3(x)|0;c[c[47181]>>2]=z}l=A;return}function bM(b){b=b|0;var d=0,e=0.0,f=0.0,g=0,i=0,j=0.0,k=0,l=0;l=b+16|0;if(((vC(b)|0)!=(b|0)?(i=c[l>>2]|0,k=c[i+12>>2]|0,(k|0)!=0):0)?(a[k+81>>0]|0)==0:0){b=a[i+275>>0]|0;if(!(b&1)){j=+h[i+16>>3]+ +h[i+96>>3]*.5;d=i+104|0}else{j=+h[i+32>>3]-+h[i+64>>3]*.5;d=i+72|0}g=b<<24>>24;f=+h[d>>3]*.5;b=i+24|0;do if(!(g&4)){e=+h[i+40>>3];if(!(g&2)){e=(e+ +h[b>>3])*.5;break}else{e=e-f;break}}else e=f+ +h[b>>3];while(0);h[k+56>>3]=j;h[k+64>>3]=e;a[(c[(c[l>>2]|0)+12>>2]|0)+81>>0]=1;b=1}else b=1;while(1){d=c[l>>2]|0;if((b|0)>(c[d+180>>2]|0))break;bM(c[(c[d+184>>2]|0)+(b<<2)>>2]|0);b=b+1|0}return}function cM(b){b=b|0;var d=0,e=0.0,f=0.0,g=0,i=0,j=0.0,k=0,l=0;l=b+16|0;if(((vC(b)|0)!=(b|0)?(i=c[l>>2]|0,k=c[i+12>>2]|0,(k|0)!=0):0)?(a[k+81>>0]|0)==0:0){b=a[i+275>>0]|0;if(!(b&1)){j=+h[i+24>>3]+ +h[i+56>>3]*.5;d=i+48|0}else{j=+h[i+40>>3]-+h[i+88>>3]*.5;d=i+80|0}g=b<<24>>24;f=+h[d>>3]*.5;b=i+32|0;do if(!(g&4)){e=+h[i+16>>3];if(!(g&2)){e=(e+ +h[b>>3])*.5;break}else{e=f+e;break}}else e=+h[b>>3]-f;while(0);h[k+56>>3]=e;h[k+64>>3]=j;a[(c[(c[l>>2]|0)+12>>2]|0)+81>>0]=1;b=1}else b=1;while(1){d=c[l>>2]|0;if((b|0)>(c[d+180>>2]|0))break;cM(c[(c[d+184>>2]|0)+(b<<2)>>2]|0);b=b+1|0}return}function dM(e){e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;S=l;l=l+544|0;L=S+504|0;R=S+448|0;Q=S+408|0;K=S+352|0;J=S+312|0;I=S+304|0;H=S+248|0;M=S+200|0;B=S+184|0;O=S+96|0;q=S+488|0;C=S+456|0;D=S+416|0;E=S+376|0;F=S+360|0;G=S+320|0;w=S+288|0;x=S+256|0;y=S+232|0;z=S+152|0;A=S+136|0;f=S+56|0;N=S+16|0;P=S;p=e+16|0;u=c[p>>2]|0;g=b[u+136>>1]&14;u=d[u+113>>0]|0;if(!((u&54|0)==0?(u&1|0)==0|(c[47186]|0)!=0:0)){u=g<<16>>16!=0;o=gC(e)|0;h=0;j=0;i=0;while(1){if(!o)break;g=c[(c[o+16>>2]|0)+108>>2]|0;do if(g)if(!(a[g+81>>0]|0)){i=i+1|0;break}else{h=h+1|0;break}while(0);n=UA(e,o)|0;g=j;while(1){if(!n)break;k=c[n+16>>2]|0;j=c[k+108>>2]|0;m=k+8|0;do if(j){if(a[j+81>>0]|0){h=h+1|0;break}if(u)g=((c[m>>2]|0)!=0&1)+g|0}while(0);j=c[k+100>>2]|0;do if(j){if(a[j+81>>0]|0){h=h+1|0;break}if(u)g=((c[m>>2]|0)!=0&1)+g|0}while(0);j=c[k+104>>2]|0;do if(j){if(a[j+81>>0]|0){h=h+1|0;break}if(u)g=((c[m>>2]|0)!=0&1)+g|0}while(0);j=c[k+96>>2]|0;do if(j){if(a[j+81>>0]|0){h=h+1|0;break}if(u)g=((c[m>>2]|0)!=0&1)+g|0}while(0);n=WA(e,n)|0}o=hC(e,o)|0;j=g}if(!(a[(c[p>>2]|0)+113>>0]&8))o=0;else o=hM(e)|0;t=j+i|0;if(t|0){p=h+j+o+(qB(e)|0)|0;r=HK(p*40|0)|0;s=HK(t*40|0)|0;_L(M,2147483647.0,2147483647.0);g=M+16|0;_L(q,-2147483647.0,-2147483647.0);c[g>>2]=c[q>>2];c[g+4>>2]=c[q+4>>2];c[g+8>>2]=c[q+8>>2];c[g+12>>2]=c[q+12>>2];g=s;i=r;n=gC(e)|0;while(1){if(!n)break;c[L>>2]=c[M>>2];c[L+4>>2]=c[M+4>>2];c[L+8>>2]=c[M+8>>2];c[L+12>>2]=c[M+12>>2];c[L+16>>2]=c[M+16>>2];c[L+20>>2]=c[M+20>>2];c[L+24>>2]=c[M+24>>2];c[L+28>>2]=c[M+28>>2];iM(C,n,i,L);c[M>>2]=c[C>>2];c[M+4>>2]=c[C+4>>2];c[M+8>>2]=c[C+8>>2];c[M+12>>2]=c[C+12>>2];c[M+16>>2]=c[C+16>>2];c[M+20>>2]=c[C+20>>2];c[M+24>>2]=c[C+24>>2];c[M+28>>2]=c[C+28>>2];h=c[(c[n+16>>2]|0)+108>>2]|0;do if(h)if(!(a[h+81>>0]|0)){c[L>>2]=c[B>>2];c[L+4>>2]=c[B+4>>2];c[L+8>>2]=c[B+8>>2];c[L+12>>2]=c[B+12>>2];kM(h,i,g,0,L);g=g+40|0;break}else{i=i+40|0;c[L>>2]=c[M>>2];c[L+4>>2]=c[M+4>>2];c[L+8>>2]=c[M+8>>2];c[L+12>>2]=c[M+12>>2];c[L+16>>2]=c[M+16>>2];c[L+20>>2]=c[M+20>>2];c[L+24>>2]=c[M+24>>2];c[L+28>>2]=c[M+28>>2];jM(D,h,i,L);c[M>>2]=c[D>>2];c[M+4>>2]=c[D+4>>2];c[M+8>>2]=c[D+8>>2];c[M+12>>2]=c[D+12>>2];c[M+16>>2]=c[D+16>>2];c[M+20>>2]=c[D+20>>2];c[M+24>>2]=c[D+24>>2];c[M+28>>2]=c[D+28>>2];break}while(0);m=UA(e,n)|0;i=i+40|0;while(1){if(!m)break;k=m+16|0;h=c[k>>2]|0;j=c[h+96>>2]|0;a:do if(!j)v=52;else{do if(!(a[j+81>>0]|0)){if(u?c[h+8>>2]|0:0){tO(F,e,m);c[L>>2]=c[F>>2];c[L+4>>2]=c[F+4>>2];c[L+8>>2]=c[F+8>>2];c[L+12>>2]=c[F+12>>2];kM(j,i,g,1,L);g=g+40|0;break}c[H>>2]=c[j>>2];dA(0,104128,H)|0;break a}else{c[L>>2]=c[M>>2];c[L+4>>2]=c[M+4>>2];c[L+8>>2]=c[M+8>>2];c[L+12>>2]=c[M+12>>2];c[L+16>>2]=c[M+16>>2];c[L+20>>2]=c[M+20>>2];c[L+24>>2]=c[M+24>>2];c[L+28>>2]=c[M+28>>2];jM(E,j,i,L);c[M>>2]=c[E>>2];c[M+4>>2]=c[E+4>>2];c[M+8>>2]=c[E+8>>2];c[M+12>>2]=c[E+12>>2];c[M+16>>2]=c[E+16>>2];c[M+20>>2]=c[E+20>>2];c[M+24>>2]=c[E+24>>2];c[M+28>>2]=c[E+28>>2]}while(0);i=i+40|0;h=c[k>>2]|0;v=52}while(0);b:do if((v|0)==52){v=0;j=c[h+104>>2]|0;if(j){do if(!(a[j+81>>0]|0)){if(u?c[h+8>>2]|0:0){lM(w,m);c[L>>2]=c[w>>2];c[L+4>>2]=c[w+4>>2];c[L+8>>2]=c[w+8>>2];c[L+12>>2]=c[w+12>>2];kM(j,i,g,1,L);g=g+40|0;break}c[I>>2]=c[j>>2];dA(0,104163,I)|0;break b}else{c[L>>2]=c[M>>2];c[L+4>>2]=c[M+4>>2];c[L+8>>2]=c[M+8>>2];c[L+12>>2]=c[M+12>>2];c[L+16>>2]=c[M+16>>2];c[L+20>>2]=c[M+20>>2];c[L+24>>2]=c[M+24>>2];c[L+28>>2]=c[M+28>>2];jM(G,j,i,L);c[M>>2]=c[G>>2];c[M+4>>2]=c[G+4>>2];c[M+8>>2]=c[G+8>>2];c[M+12>>2]=c[G+12>>2];c[M+16>>2]=c[G+16>>2];c[M+20>>2]=c[G+20>>2];c[M+24>>2]=c[G+24>>2];c[M+28>>2]=c[G+28>>2]}while(0);i=i+40|0;h=c[k>>2]|0}j=c[h+100>>2]|0;if(j){do if(!(a[j+81>>0]|0)){if(u?c[h+8>>2]|0:0){mM(y,m);c[L>>2]=c[y>>2];c[L+4>>2]=c[y+4>>2];c[L+8>>2]=c[y+8>>2];c[L+12>>2]=c[y+12>>2];kM(j,i,g,1,L);g=g+40|0;break}c[J>>2]=c[j>>2];dA(0,104203,J)|0;break b}else{c[L>>2]=c[M>>2];c[L+4>>2]=c[M+4>>2];c[L+8>>2]=c[M+8>>2];c[L+12>>2]=c[M+12>>2];c[L+16>>2]=c[M+16>>2];c[L+20>>2]=c[M+20>>2];c[L+24>>2]=c[M+24>>2];c[L+28>>2]=c[M+28>>2];jM(x,j,i,L);c[M>>2]=c[x>>2];c[M+4>>2]=c[x+4>>2];c[M+8>>2]=c[x+8>>2];c[M+12>>2]=c[x+12>>2];c[M+16>>2]=c[x+16>>2];c[M+20>>2]=c[x+20>>2];c[M+24>>2]=c[x+24>>2];c[M+28>>2]=c[x+28>>2]}while(0);i=i+40|0;h=c[k>>2]|0}j=c[h+108>>2]|0;if(j){do if(!(a[j+81>>0]|0)){if(u?c[h+8>>2]|0:0){tO(A,e,m);c[L>>2]=c[A>>2];c[L+4>>2]=c[A+4>>2];c[L+8>>2]=c[A+8>>2];c[L+12>>2]=c[A+12>>2];kM(j,i,g,1,L);g=g+40|0;break}c[K>>2]=c[j>>2];dA(0,104243,K)|0;break b}else{c[L>>2]=c[M>>2];c[L+4>>2]=c[M+4>>2];c[L+8>>2]=c[M+8>>2];c[L+12>>2]=c[M+12>>2];c[L+16>>2]=c[M+16>>2];c[L+20>>2]=c[M+20>>2];c[L+24>>2]=c[M+24>>2];c[L+28>>2]=c[M+28>>2];jM(z,j,i,L);c[M>>2]=c[z>>2];c[M+4>>2]=c[z+4>>2];c[M+8>>2]=c[z+8>>2];c[M+12>>2]=c[z+12>>2];c[M+16>>2]=c[z+16>>2];c[M+20>>2]=c[z+20>>2];c[M+24>>2]=c[z+24>>2];c[M+28>>2]=c[z+28>>2]}while(0);i=i+40|0}}while(0);m=WA(e,m)|0}n=hC(e,n)|0}if(o|0){c[f>>2]=c[M>>2];c[f+4>>2]=c[M+4>>2];c[f+8>>2]=c[M+8>>2];c[f+12>>2]=c[M+12>>2];c[f+16>>2]=c[M+16>>2];c[f+20>>2]=c[M+20>>2];c[f+24>>2]=c[M+24>>2];c[f+28>>2]=c[M+28>>2];c[f+32>>2]=i;h=L;g=h+40|0;do{c[h>>2]=c[f>>2];h=h+4|0;f=f+4|0}while((h|0)<(g|0));nM(N,e,L);c[M>>2]=c[N>>2];c[M+4>>2]=c[N+4>>2];c[M+8>>2]=c[N+8>>2];c[M+12>>2]=c[N+12>>2];c[M+16>>2]=c[N+16>>2];c[M+20>>2]=c[N+20>>2];c[M+24>>2]=c[N+24>>2];c[M+28>>2]=c[N+28>>2]}a[O+32>>0]=aP(e,DA(e,0,104279,0)|0,1)|0;c[O>>2]=c[M>>2];c[O+4>>2]=c[M+4>>2];c[O+8>>2]=c[M+8>>2];c[O+12>>2]=c[M+12>>2];c[O+16>>2]=c[M+16>>2];c[O+20>>2]=c[M+20>>2];c[O+24>>2]=c[M+24>>2];c[O+28>>2]=c[M+28>>2];fT(r,p,s,t,O)|0;if(a[195234]|0)oM(r,p,s,t,O);f=0;g=0;h=s;while(1){if((g|0)>=(t|0))break;if(a[h+36>>0]|0){O=c[h+32>>2]|0;a[O+81>>0]=1;N=O+56|0;pM(P,h);c[N>>2]=c[P>>2];c[N+4>>2]=c[P+4>>2];c[N+8>>2]=c[P+8>>2];c[N+12>>2]=c[P+12>>2];xP(e,O);f=f+1|0}g=g+1|0;h=h+40|0}if(!(a[195234]|0)){if((f|0)!=(t|0)){c[R>>2]=f;c[R+4>>2]=t;dA(0,104324,R)|0}}else{R=c[15715]|0;c[Q>>2]=f;c[Q+4>>2]=t;z4(R,104291,Q)|0}l6(r);l6(s)}}l=S;return}function eM(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0;i=l;l=l+48|0;e=i+32|0;f=i+16|0;g=i;if(+h[23324]!=0.0|+h[23325]!=0.0|(c[47335]|0)!=0){d=gC(a)|0;while(1){if(!d)break;if(c[47335]|0)oQ(d,0);b=d+16|0;j=(c[b>>2]|0)+16|0;c[e>>2]=c[j>>2];c[e+4>>2]=c[j+4>>2];c[e+8>>2]=c[j+8>>2];c[e+12>>2]=c[j+12>>2];$L(f,e);c[j>>2]=c[f>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];c[j+12>>2]=c[f+12>>2];b=c[(c[b>>2]|0)+108>>2]|0;if(b|0){j=b+56|0;c[e>>2]=c[j>>2];c[e+4>>2]=c[j+4>>2];c[e+8>>2]=c[j+8>>2];c[e+12>>2]=c[j+12>>2];$L(g,e);c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];c[j+12>>2]=c[g+12>>2]}a:do if((c[47185]|0)==1){b=UA(a,d)|0;while(1){if(!b)break a;gM(b);b=WA(a,b)|0}}while(0);d=hC(a,d)|0}ZL(a,c[(c[a+16>>2]|0)+116>>2]&3)}l=i;return}function fM(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,g=0,i=0,j=0;i=b+16|0;j=c[i>>2]|0;g=a[j+275>>0]|0;b=j+32|0;do if(!(g&4)){e=+h[j+16>>3];if(!(g&2)){f=(e+ +h[b>>3])*.5;break}else{f=e+ +h[d>>3]*.5;break}}else f=+h[b>>3]-+h[d>>3]*.5;while(0);e=+h[d+8>>3]*.5;if(!(g&1))e=e+ +h[j+24>>3];else e=+h[j+40>>3]-e;j=c[j+12>>2]|0;h[j+56>>3]=f;h[j+64>>3]=e;a[(c[(c[i>>2]|0)+12>>2]|0)+81>>0]=1;return}function gM(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=l;l=l+144|0;q=s+120|0;e=s+16|0;i=s+104|0;j=s+88|0;k=s+72|0;m=s+56|0;n=s+40|0;o=s+24|0;r=s;p=b+16|0;d=c[p>>2]|0;f=c[d+8>>2]|0;if(!f){if((a[195236]|0)==0?(a[d+112>>0]|0)!=6:0){q=HB(c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0;r=HB(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0;c[e>>2]=q;c[e+4>>2]=r;dA(1,104111,e)|0}}else{h=0;b=f;while(1){if((h|0)>=(c[b+4>>2]|0))break;g=c[b>>2]|0;b=c[g+(h*48|0)>>2]|0;e=c[g+(h*48|0)+4>>2]|0;f=c[g+(h*48|0)+8>>2]|0;g=c[g+(h*48|0)+12>>2]|0;d=0;while(1){if((d|0)>=(e|0))break;t=b+(d<<4)|0;c[q>>2]=c[t>>2];c[q+4>>2]=c[t+4>>2];c[q+8>>2]=c[t+8>>2];c[q+12>>2]=c[t+12>>2];$L(i,q);c[t>>2]=c[i>>2];c[t+4>>2]=c[i+4>>2];c[t+8>>2]=c[i+8>>2];c[t+12>>2]=c[i+12>>2];d=d+1|0}if(f|0){t=(c[c[(c[p>>2]|0)+8>>2]>>2]|0)+(h*48|0)+16|0;c[q>>2]=c[t>>2];c[q+4>>2]=c[t+4>>2];c[q+8>>2]=c[t+8>>2];c[q+12>>2]=c[t+12>>2];$L(j,q);c[t>>2]=c[j>>2];c[t+4>>2]=c[j+4>>2];c[t+8>>2]=c[j+8>>2];c[t+12>>2]=c[j+12>>2]}if(g|0){t=(c[c[(c[p>>2]|0)+8>>2]>>2]|0)+(h*48|0)+32|0;c[q>>2]=c[t>>2];c[q+4>>2]=c[t+4>>2];c[q+8>>2]=c[t+8>>2];c[q+12>>2]=c[t+12>>2];$L(k,q);c[t>>2]=c[k>>2];c[t+4>>2]=c[k+4>>2];c[t+8>>2]=c[k+8>>2];c[t+12>>2]=c[k+12>>2]}d=c[p>>2]|0;h=h+1|0;b=c[d+8>>2]|0}b=c[d+96>>2]|0;if(b){d=b+56|0;c[q>>2]=c[d>>2];c[q+4>>2]=c[d+4>>2];c[q+8>>2]=c[d+8>>2];c[q+12>>2]=c[d+12>>2];$L(m,q);c[d>>2]=c[m>>2];c[d+4>>2]=c[m+4>>2];c[d+8>>2]=c[m+8>>2];c[d+12>>2]=c[m+12>>2];d=c[p>>2]|0}b=c[d+108>>2]|0;if(b){d=b+56|0;c[q>>2]=c[d>>2];c[q+4>>2]=c[d+4>>2];c[q+8>>2]=c[d+8>>2];c[q+12>>2]=c[d+12>>2];$L(n,q);c[d>>2]=c[n>>2];c[d+4>>2]=c[n+4>>2];c[d+8>>2]=c[n+8>>2];c[d+12>>2]=c[n+12>>2];d=c[p>>2]|0}b=c[d+100>>2]|0;if(b){d=b+56|0;c[q>>2]=c[d>>2];c[q+4>>2]=c[d+4>>2];c[q+8>>2]=c[d+8>>2];c[q+12>>2]=c[d+12>>2];$L(o,q);c[d>>2]=c[o>>2];c[d+4>>2]=c[o+4>>2];c[d+8>>2]=c[o+8>>2];c[d+12>>2]=c[o+12>>2];d=c[p>>2]|0}d=c[d+104>>2]|0;if(d|0){t=d+56|0;c[q>>2]=c[t>>2];c[q+4>>2]=c[t+4>>2];c[q+8>>2]=c[t+8>>2];c[q+12>>2]=c[t+12>>2];$L(r,q);c[t>>2]=c[r>>2];c[t+4>>2]=c[r+4>>2];c[t+8>>2]=c[r+8>>2];c[t+12>>2]=c[r+12>>2]}}l=s;return}function hM(b){b=b|0;var d=0,e=0,f=0;f=b+16|0;if((vC(b)|0)!=(b|0)?(d=c[(c[f>>2]|0)+12>>2]|0,(d|0)!=0):0){e=1;b=(a[d+81>>0]|0)!=0&1}else{e=1;b=0}while(1){d=c[f>>2]|0;if((e|0)>(c[d+180>>2]|0))break;d=(hM(c[(c[d+184>>2]|0)+(e<<2)>>2]|0)|0)+b|0;e=e+1|0;b=d}return b|0}function iM(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0.0,k=0.0,m=0.0,n=0;g=l;l=l+32|0;i=g;n=(a[195239]|0)==0;d=c[d+16>>2]|0;m=+h[d+40>>3]*72.0;j=+h[d+32>>3]*72.0;k=n?j:m;j=n?m:j;h[e+16>>3]=k;h[e+24>>3]=j;d=d+16|0;c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];c[e+12>>2]=c[d+12>>2];h[e>>3]=+h[e>>3]-k*.5;d=e+8|0;h[d>>3]=+h[d>>3]-j*.5;c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];c[i+20>>2]=c[f+20>>2];c[i+24>>2]=c[f+24>>2];c[i+28>>2]=c[f+28>>2];qM(b,e,i);l=g;return}function jM(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0.0,k=0.0,m=0.0,n=0;g=l;l=l+32|0;i=g;n=(a[195239]|0)==0;j=+h[d+24>>3];m=+h[d+32>>3];k=n?j:m;j=n?m:j;h[e+16>>3]=k;h[e+24>>3]=j;d=d+56|0;c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];c[e+12>>2]=c[d+12>>2];h[e>>3]=+h[e>>3]-k*.5;d=e+8|0;h[d>>3]=+h[d>>3]-j*.5;c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];c[i+20>>2]=c[f+20>>2];c[i+24>>2]=c[f+24>>2];c[i+28>>2]=c[f+28>>2];qM(b,e,i);l=g;return}function kM(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if(f|0){f=d+16|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];c[d+12>>2]=c[g+12>>2]}f=b+24|0;if(!(a[195239]|0)){c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];c[e+8>>2]=c[f+8>>2];c[e+12>>2]=c[f+12>>2]}else{h[e>>3]=+h[b+32>>3];h[e+8>>3]=+h[f>>3]}c[e+32>>2]=b;a[e+36>>0]=0;c[d+32>>2]=e;return}function lM(a,b){a=a|0;b=b|0;b=sO(b)|0;do if(b){b=c[b>>2]|0;if(!(c[b+8>>2]|0)){b=c[b>>2]|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];break}else{b=b+16|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];break}}else{c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0}while(0);return}function mM(a,b){a=a|0;b=b|0;var d=0;b=sO(b)|0;do if(b){d=c[b>>2]|0;b=(c[b+4>>2]|0)+-1|0;if(!(c[d+(b*48|0)+12>>2]|0)){d=(c[d+(b*48|0)>>2]|0)+((c[d+(b*48|0)+4>>2]|0)+-1<<4)|0;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];break}else{d=d+(b*48|0)+32|0;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];break}}else{c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0}while(0);return}function nM(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+112|0;k=q+72|0;n=q+32|0;o=q;p=d+16|0;j=1;while(1){f=c[p>>2]|0;if((j|0)>(c[f+180>>2]|0))break;f=c[(c[f+184>>2]|0)+(j<<2)>>2]|0;g=k;h=e;i=g+40|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));nM(n,f,k);g=e;h=n;i=g+40|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));j=j+1|0}if(((vC(d)|0)!=(d|0)?(m=c[(c[p>>2]|0)+12>>2]|0,m|0):0)?a[m+81>>0]|0:0){p=e+32|0;n=c[p>>2]|0;c[k>>2]=c[e>>2];c[k+4>>2]=c[e+4>>2];c[k+8>>2]=c[e+8>>2];c[k+12>>2]=c[e+12>>2];c[k+16>>2]=c[e+16>>2];c[k+20>>2]=c[e+20>>2];c[k+24>>2]=c[e+24>>2];c[k+28>>2]=c[e+28>>2];jM(o,m,n,k);c[e>>2]=c[o>>2];c[e+4>>2]=c[o+4>>2];c[e+8>>2]=c[o+8>>2];c[e+12>>2]=c[o+12>>2];c[e+16>>2]=c[o+16>>2];c[e+20>>2]=c[o+20>>2];c[e+24>>2]=c[o+24>>2];c[e+28>>2]=c[o+28>>2];c[p>>2]=(c[p>>2]|0)+40}g=b;h=e;i=g+40|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));l=q;return}function oM(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var i=0.0,j=0.0,k=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+160|0;r=s+96|0;p=s+48|0;o=s;q=c[15715]|0;n=d[g+32>>0]|0;i=+h[g>>3];j=+h[g+8>>3];k=+h[g+16>>3];m=+h[g+24>>3];c[o>>2]=b;c[o+4>>2]=f;c[o+8>>2]=n;h[o+16>>3]=i;h[o+24>>3]=j;h[o+32>>3]=k;h[o+40>>3]=m;z4(q,104366,o)|0;a:do if((d[195234]|0)>=2){_3(104426,8,1,q)|0;o=0;while(1){if((o|0)>=(b|0))break;g=c[a+32>>2]|0;i=+h[a>>3];j=+h[a+8>>3];k=+h[a+16>>3];m=+h[a+24>>3];if(!g)n=195341;else n=c[c[g+32>>2]>>2]|0;c[p>>2]=o;h[p+8>>3]=i;h[p+16>>3]=j;h[p+24>>3]=k;h[p+32>>3]=m;c[p+40>>2]=g;c[p+44>>2]=n;z4(q,104435,p)|0;o=o+1|0;a=a+40|0}_3(104478,8,1,q)|0;g=0;while(1){if((g|0)>=(f|0))break a;b=d[e+36>>0]|0;i=+h[e+16>>3];j=+h[e+24>>3];k=+h[e>>3];m=+h[e+8>>3];p=c[c[e+32>>2]>>2]|0;c[r>>2]=g;c[r+4>>2]=e;c[r+8>>2]=b;h[r+16>>3]=i;h[r+24>>3]=j;h[r+32>>3]=k;h[r+40>>3]=m;c[r+48>>2]=p;z4(q,104487,r)|0;e=e+40|0;g=g+1|0}}while(0);l=s;return}function pM(a,b){a=a|0;b=b|0;var c=0.0;c=+h[b+24>>3]+ +h[b+8>>3]*.5;h[a>>3]=+h[b+16>>3]+ +h[b>>3]*.5;h[a+8>>3]=c;return}function qM(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0.0,j=0.0;e=l;l=l+16|0;f=e;j=+h[b>>3];h[d>>3]=+h[(+h[d>>3]<j?d:b)>>3];g=d+8|0;i=+h[b+8>>3];h[g>>3]=+h[(+h[g>>3]<i?d:b)+8>>3];j=j+ +h[b+16>>3];h[f>>3]=j;i=i+ +h[b+24>>3];h[f+8>>3]=i;g=d+16|0;h[g>>3]=+h[(+h[g>>3]>j?g:f)>>3];b=d+24|0;h[b>>3]=+h[(+h[b>>3]>i?g:f)+8>>3];c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];c[a+16>>2]=c[d+16>>2];c[a+20>>2]=c[d+20>>2];c[a+24>>2]=c[d+24>>2];c[a+28>>2]=c[d+28>>2];l=e;return}function rM(a){a=a|0;aM(a,1);return}function sM(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;e=l;l=l+16|0;d=e;b=kP(NA(a,105827)|0)|0;if(b){b=tM(b)|0;if(b|0){f=c[b+40>>2]|0;d=c[b+44>>2]|0;g=a+16|0;a=c[g>>2]|0;h[a+32>>3]=+(f|0)/72.0;h[a+40>>3]=+(d|0)/72.0;a=HK(12)|0;c[(c[g>>2]|0)+12>>2]=a;c[a>>2]=c[b+12>>2];c[a+4>>2]=((f|0)/-2|0)-(c[b+32>>2]|0);c[a+8>>2]=((d|0)/-2|0)-(c[b+36>>2]|0)}}else{c[d>>2]=HB(a)|0;dA(0,104535,d)|0}l=e;return}function tM(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;p=l;l=l+1152|0;i=p+24|0;h=p+8|0;e=p;f=p+120|0;j=p+44|0;k=p+40|0;m=p+36|0;n=p+32|0;o=p+28|0;d=c[47336]|0;if(!d){d=Sz(20860,c[4591]|0)|0;c[47336]=d}d=eb[c[d>>2]&63](d,b,512)|0;do if(!d){g=f4(b,139124)|0;if(!g){c[e>>2]=b;dA(0,104584,e)|0;d=0;break}else{d=0;e=0}while(1){if(!(o4(f,1024,g)|0)){f=11;break}c[h>>2]=k;c[h+4>>2]=m;c[h+8>>2]=n;c[h+12>>2]=o;q=(q4(f,104612,h)|0)==4;e=q?1:e;if((a[f>>0]|0)!=37){q=(C4(f,104641)|0)==0;d=q?d:1}if((e|0)!=0&(d|0)!=0){f=12;break}}if((f|0)==11)if(!e){c[i>>2]=b;dA(0,104646,i)|0;d=0}else f=12;if((f|0)==12){q=IK(64)|0;k=c[k>>2]|0;c[q+32>>2]=k;m=c[m>>2]|0;c[q+40>>2]=(c[n>>2]|0)-k;c[q+36>>2]=(c[o>>2]|0)-m;c[q+8>>2]=b;o=c[47337]|0;c[47337]=o+1;c[q+12>>2]=o;i3(V5(g)|0,j)|0;o=c[j+36>>2]|0;n=IK(o+1|0)|0;c[q+52>>2]=n;y4(g,0,0)|0;X5(n,o,1,g)|0;a[n+o>>0]=0;o=c[47336]|0;eb[c[o>>2]&63](o,q,1)|0;a[q+16>>0]=d;d=q}l4(g)|0}while(0);l=p;return d|0}function uM(a,b,d){a=a|0;b=b|0;d=d|0;l6(c[b+52>>2]|0);return}function vM(a){a=a|0;l6(c[(c[a+16>>2]|0)+12>>2]|0);return}function wM(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+16|0;m=n+8|0;k=n;j=(d|0)!=0;a:do if(j){h=0;f=0;b:while(1)while(1){if(h)break a;g=c[d+(f<<2)>>2]|0;if(!g){i=6;break a}f=f+1|0;if(!(a[g>>0]|0)){h=1;continue b}}}else i=6;while(0);c:do if((i|0)==6)while(1){f=c[e>>2]|0;if(!f)break c;mF(b,f)|0;mF(b,153748)|0;e=e+4|0;i=6}while(0);d:do if(j){h=0;while(1){f=c[d+(h<<2)>>2]|0;if(!f)break d;do if(a[f>>0]|0){e=kP(f)|0;if(!e){c[k>>2]=f;dA(0,104685,k)|0;break}g=f4(e,139124)|0;if(!g){c[m>>2]=e;dA(0,104713,m)|0;break}while(1){f=jP(g)|0;if(!f)break;mF(b,f)|0}mF(b,153748)|0;l4(g)|0}while(0);h=h+1|0}}while(0);l=n;return}function xM(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;d=c[d+52>>2]|0;a:while(1){e=a[d>>0]|0;b:do switch(e<<24>>24){case 0:break a;case 37:{if((a[d+1>>0]|0)==37){f=d+2|0;if((((N3(f,104741,3)|0)!=0?(N3(f,104745,5)|0)!=0:0)?(N3(f,104751,3)|0)!=0:0)?(N3(f,104755,7)|0)!=0:0)break b;else f=37;while(1){if((f&255)<14){e=d+1|0;if(!(7166>>>(f&255)&1))break}else e=d+1|0;d=e;f=a[e>>0]|0}switch(f<<24>>24){case 0:continue a;case 13:{if((a[e>>0]|0)==10){d=d+2|0;continue a}break}default:{}}d=e;continue a}else e=37;break}default:{}}while(0);c:while(1){switch(e<<24>>24){case 10:case 13:case 0:break c;default:{}}nF(b,e<<24>>24)|0;f=d+1|0;d=f;e=a[f>>0]|0}f=d+1|0;switch(e<<24>>24){case 13:{if((a[f>>0]|0)==10)d=d+2|0;else g=21;break}case 0:break;default:g=21}if((g|0)==21){g=0;d=f}nF(b,10)|0}return}function yM(b){b=b|0;var d=0,e=0,f=0,g=0;f=l;l=l+16|0;e=f;d=c[47336]|0;a:do if(d|0){d=eb[c[d>>2]&63](d,0,128)|0;while(1){if(!d)break a;if(!(a[d+16>>0]|0)){c[e>>2]=c[d+12>>2];sF(b,104763,e);mF(b,104781)|0;xM(b,d);mF(b,104799)|0;mF(b,104814)|0}g=c[47336]|0;d=eb[c[g>>2]&63](g,d,8)|0}}while(0);l=f;return}function zM(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=l;l=l+16|0;e=g;a:do switch(d|0){case 0:{f=b;break}case 1:{f=dQ(b)|0;break}default:{switch(AM(b)|0){case 2:break;case 1:{f=dQ(b)|0;break a}default:{f=b;break a}}if(!(c[47338]|0)){dA(0,104826,e)|0;c[47338]=1;f=b}else f=b}}while(0);if(!(c[47339]|0))hA(189356,0,0);d=c[47340]|0;if(d>>>0>=(c[47341]|0)>>>0){iA(189356,1)|0;d=c[47340]|0}c[47340]=d+1;a[d>>0]=40;e=f;b:while(1){switch(a[e>>0]|0){case 0:break b;case 92:case 41:case 40:{d=c[47340]|0;if(d>>>0>=(c[47341]|0)>>>0){iA(189356,1)|0;d=c[47340]|0}c[47340]=d+1;a[d>>0]=92;break}default:{}}d=c[47340]|0;if(d>>>0>=(c[47341]|0)>>>0){iA(189356,1)|0;d=c[47340]|0}h=a[e>>0]|0;c[47340]=d+1;a[d>>0]=h;e=e+1|0}d=c[47340]|0;if(d>>>0>=(c[47341]|0)>>>0){iA(189356,1)|0;d=c[47340]|0}c[47340]=d+1;a[d>>0]=41;if((f|0)!=(b|0))l6(f);d=c[47340]|0;if(d>>>0>=(c[47341]|0)>>>0){iA(189356,1)|0;d=c[47340]|0}a[d>>0]=0;h=c[47339]|0;c[47340]=h;l=g;return h|0}function AM(b){b=b|0;var c=0,d=0;c=0;a:while(1){while(1){d=a[b>>0]|0;if(!(d<<24>>24))break a;if((d&255)<127)b=b+1|0;else break}if((d&-4)<<24>>24==-64){c=1;b=b+2|0}else{c=2;break}}return c|0}function BM(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;n=l;l=l+96|0;i=n+80|0;j=n+72|0;m=n+64|0;g=n+32|0;k=n;h[g>>3]=+h[a>>3];h[g+8>>3]=+h[a+8>>3];h[g+16>>3]=+h[b>>3];h[g+24>>3]=+h[b+8>>3];do if((gY(d,g,j)|0)>=0){if(!f){b=d+4|0;a=c[b>>2]|0;f=c[47344]|0;if((a|0)>(c[47343]|0)){a=a<<5;if(!f)a=IK(a)|0;else a=KK(f,a)|0;c[47344]=a;g=c[b>>2]|0;c[47343]=g;f=a}else g=a;b=c[d>>2]|0;a=0;while(1){if((a|0)>=(g|0))break;o=f+(a<<5)|0;d=b+(a<<4)|0;c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];c[o+8>>2]=c[d+8>>2];c[o+12>>2]=c[d+12>>2];o=f+(a<<5)+16|0;d=a+1|0;p=b+(((d|0)%(g|0)|0)<<4)|0;c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];c[o+12>>2]=c[p+12>>2];a=d}c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;c[k+20>>2]=0;c[k+24>>2]=0;c[k+28>>2]=0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];if((MX(f,g,i,k,m)|0)<0){a=0;break}}else{c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];DY(i,m)}a=m+4|0;if(!(CM(c[a>>2]|0)|0)){g=c[a>>2]|0;a=c[47345]|0;f=c[m>>2]|0;b=0;while(1){if((b|0)>=(g|0))break;p=a+(b<<4)|0;o=f+(b<<4)|0;c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2];b=b+1|0}c[e>>2]=g}else a=0}else a=0;while(0);l=n;return a|0}function CM(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;d=e;b=c[47346]|0;do if((b|0)<(a|0)){a=a+300-((a|0)%300|0)+b|0;b=KK(c[47345]|0,a<<4)|0;c[47345]=b;if(!b){dA(1,104916,d)|0;a=1;break}else{c[47346]=a;a=0;break}}else a=0;while(0);l=e;return a|0}function DM(){var b=0,d=0,e=0;d=l;l=l+16|0;b=d;e=c[47347]|0;c[47347]=e+1;do if((e|0)<=0){e=IK(4800)|0;c[47345]=e;if(!e){dA(1,104939,b)|0;b=1;break}c[47346]=300;c[47348]=0;c[47349]=0;if(a[195234]|0){RO();b=0}else b=0}else b=0;while(0);l=d;return b|0}function EM(){var b=0,d=0,e=0,f=0.0,g=0,i=0;d=l;l=l+16|0;b=d;e=c[47347]|0;c[47347]=e+-1;if((e|0)<=1?(l6(c[47345]|0),a[195234]|0):0){e=c[15715]|0;i=c[47348]|0;g=c[47349]|0;f=+SO();c[b>>2]=i;c[b+4>>2]=g;h[b+8>>3]=f;z4(e,104977,b)|0}l=d;return}function FM(a,b){a=a|0;b=b|0;return GM(a,b,0)|0}function GM(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0.0;P=l;l=l+176|0;K=P+168|0;O=P+128|0;B=P+120|0;z=P+112|0;j=P+104|0;w=P+88|0;s=P+72|0;g=P+64|0;x=P+160|0;M=P+152|0;C=P+144|0;y=P+32|0;A=P;N=P+136|0;c[47348]=(c[47348]|0)+1;L=c[b+80>>2]|0;c[47349]=(c[47349]|0)+L;f=b+88|0;while(1){G=c[f>>2]|0;if(!G){H=4;break}f=c[G+16>>2]|0;if(!(a[f+112>>0]|0)){H=5;break}else f=f+116|0}do if((H|0)==4){dA(1,105020,g)|0;f=0}else if((H|0)==5){F=c[b+84>>2]|0;if(!(HM(L,F,b)|0)){i=L<<3;if((i|0)>(c[47350]|0)){f=c[47351]|0;g=L<<7;if(!f)f=IK(g)|0;else f=KK(f,g)|0;c[47351]=f;c[47350]=i}a:do if((L|0)>1?+h[F+8>>3]>+h[F+40>>3]:0){f=0;while(1){if((f|0)==(L|0)){u=1;break a}D=F+(f<<5)+24|0;Q=+h[D>>3];E=F+(f<<5)+8|0;h[D>>3]=-+h[E>>3];h[E>>3]=-Q;f=f+1|0}}else u=0;while(0);v=c[G>>2]&3;D=G+48|0;f=c[((v|0)==3?G:D)+40>>2]|0;E=G+-48|0;if((f|0)==(c[((v|0)==2?G:E)+40>>2]|0)){c[j>>2]=HB(f)|0;dA(1,105127,j)|0;f=0;break}t=L+-1|0;v=c[47351]|0;j=0;f=0;b:while(1){c:while(1){if((f|0)>=(L|0)){s=t;break b}i=F+(f<<5)+8|0;if((f|0)>0)k=+h[i>>3]>+h[F+(f+-1<<5)+8>>3]?-1:1;else k=0;r=f+1|0;if((f|0)<(t|0))m=+h[F+(r<<5)+8>>3]>+h[i>>3]?1:-1;else m=0;if((k|0)!=(m|0)){H=24;break}switch(k|0){case -1:{f=r;break}case 0:{H=28;break c}default:{H=29;break b}}}do if((H|0)==24){H=0;q=j+2|0;n=F+(f<<5)|0;o=F+(f<<5)+24|0;g=v+(j+1<<4)|0;p=v+(j<<4)+8|0;j=v+(j<<4)|0;if((k|0)==1|(m|0)==-1){h[j>>3]=+h[n>>3];h[p>>3]=+h[o>>3];h[g>>3]=+h[n>>3];f=q;break}else{f=F+(f<<5)+16|0;h[j>>3]=+h[f>>3];h[p>>3]=+h[i>>3];h[g>>3]=+h[f>>3];i=o;f=q;break}}else if((H|0)==28){H=0;q=F+(f<<5)|0;h[v+(j<<4)>>3]=+h[q>>3];h[v+(j<<4)+8>>3]=+h[F+(f<<5)+24>>3];g=v+(j+1<<4)|0;h[g>>3]=+h[q>>3];f=j+2|0}while(0);h[g+8>>3]=+h[i>>3];j=f;f=r}if((H|0)==29){c[s>>2]=k;c[s+4>>2]=k;c[s+8>>2]=480;dA(1,105062,s)|0;f=0;break}d:while(1){if((s|0)<=-1)break;g=F+(s<<5)+8|0;if((s|0)<(t|0))k=+h[g>>3]>+h[F+(s+1<<5)+8>>3]?-1:1;else k=0;if((s|0)>0)m=+h[F+(s+-1<<5)+8>>3]>+h[g>>3]?1:-1;else m=0;n=F+(s<<5)|0;f=j+1|0;i=j+2|0;o=F+(s<<5)+16|0;r=F+(s<<5)+24|0;e:do if((k|0)!=(m|0)){p=v+(f<<4)|0;q=v+(j<<4)|0;j=v+(j<<4)+8|0;if((k|0)==1|(m|0)==-1){h[q>>3]=+h[n>>3];h[j>>3]=+h[r>>3];h[p>>3]=+h[n>>3];break}else{h[q>>3]=+h[o>>3];h[j>>3]=+h[g>>3];h[p>>3]=+h[o>>3];g=r;break}}else switch(k|0){case 0:{h[v+(j<<4)>>3]=+h[o>>3];h[v+(j<<4)+8>>3]=+h[g>>3];h[v+(f<<4)>>3]=+h[o>>3];g=r;break e}case -1:{h[v+(j<<4)>>3]=+h[o>>3];h[v+(j<<4)+8>>3]=+h[g>>3];h[v+(f<<4)>>3]=+h[o>>3];h[v+(f<<4)+8>>3]=+h[r>>3];h[v+(i<<4)>>3]=+h[n>>3];f=j+3|0;h[v+(i<<4)+8>>3]=+h[r>>3];h[v+(f<<4)>>3]=+h[n>>3];i=j+4|0;break e}default:{H=42;break d}}while(0);h[v+(f<<4)+8>>3]=+h[g>>3];s=s+-1|0;j=i}if((H|0)==42){c[w>>2]=k;c[w+4>>2]=k;c[w+8>>2]=513;dA(1,105062,w)|0;f=0;break}f:do if(!u)f=0;else{f=0;while(1){if((f|0)>=(L|0)){f=0;break}u=F+(f<<5)+24|0;Q=+h[u>>3];w=F+(f<<5)+8|0;h[u>>3]=-+h[w>>3];h[w>>3]=-Q;f=f+1|0}while(1){if((f|0)>=(j|0)){f=0;break f}w=v+(f<<4)+8|0;h[w>>3]=-+h[w>>3];f=f+1|0}}while(0);while(1){if((f|0)>=(L|0))break;h[F+(f<<5)>>3]=2147483647.0;h[F+(f<<5)+16>>3]=-2147483648.0;f=f+1|0}c[x>>2]=v;i=x+4|0;c[i>>2]=j;h[y>>3]=+h[b>>3];h[y+8>>3]=+h[b+8>>3];h[y+16>>3]=+h[b+40>>3];h[y+24>>3]=+h[b+48>>3];if((gY(x,y,M)|0)<0){dA(1,105166,z)|0;f=0;break}if(!e){g=c[i>>2]|0;f=c[47344]|0;if((g|0)>(c[47343]|0)){g=g<<5;if(!f)f=IK(g)|0;else f=KK(f,g)|0;c[47344]=f;g=c[i>>2]|0;c[47343]=g}j=c[47351]|0;i=0;while(1){if((i|0)>=(g|0))break;y=f+(i<<5)|0;z=j+(i<<4)|0;c[y>>2]=c[z>>2];c[y+4>>2]=c[z+4>>2];c[y+8>>2]=c[z+8>>2];c[y+12>>2]=c[z+12>>2];y=f+(i<<5)+16|0;z=i+1|0;x=j+(((z|0)%(g|0)|0)<<4)|0;c[y>>2]=c[x>>2];c[y+4>>2]=c[x+4>>2];c[y+8>>2]=c[x+8>>2];c[y+12>>2]=c[x+12>>2];i=z}if(!(a[b+29>>0]|0)){c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[A+12>>2]=0}else{Q=+h[b+16>>3];h[A>>3]=+I(+Q);h[A+8>>3]=+J(+Q)}i=A+16|0;if(!(a[b+69>>0]|0)){c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;c[i+12>>2]=0}else{Q=+h[b+56>>3];h[i>>3]=-+I(+Q);h[A+24>>3]=-+J(+Q)};c[K>>2]=c[M>>2];c[K+4>>2]=c[M+4>>2];if((MX(f,g,K,A,C)|0)<0){dA(1,105205,B)|0;f=0;break}}else{c[K>>2]=c[M>>2];c[K+4>>2]=c[M+4>>2];DY(K,C)}k=C+4|0;if(!(CM(c[k>>2]|0)|0)){f=0;while(1){if((f|0)>=(L|0))break;h[F+(f<<5)>>3]=2147483647.0;h[F+(f<<5)+16>>3]=-2147483648.0;f=f+1|0}i=c[k>>2]|0;j=c[47345]|0;g=c[C>>2]|0;f=0;while(1){if((f|0)>=(i|0)){i=1;f=10;g=0;break}C=j+(f<<4)|0;B=g+(f<<4)|0;c[C>>2]=c[B>>2];c[C+4>>2]=c[B+4>>2];c[C+8>>2]=c[B+8>>2];c[C+12>>2]=c[B+12>>2];f=f+1|0}while(1){if(!((g|0)<15&i<<24>>24!=0))break;IM(F,L,c[47345]|0,c[k>>2]|0,f);j=0;while(1){if((j|0)>=(L|0))break;if(+h[F+(j<<5)>>3]==2147483647.0){H=84;break}if(+h[F+(j<<5)+16>>3]==-2147483648.0){H=84;break}j=j+1|0}if((H|0)==84){H=0;C=f<<1;f=C;g=(C|0)>(2147483647/(L|0)|0|0)?15:g}i=(j|0)==(L|0)?0:i;g=g+1|0}if(i<<24>>24){D=HB(c[((c[G>>2]&3|0)==3?G:D)+40>>2]|0)|0;H=HB(c[((c[G>>2]&3|0)==2?G:E)+40>>2]|0)|0;c[O>>2]=D;c[O+4>>2]=H;dA(0,105243,O)|0;c[K>>2]=c[M>>2];c[K+4>>2]=c[M+4>>2];DY(K,N);IM(F,L,c[N>>2]|0,c[N+4>>2]|0,10);l6(c[N>>2]|0)}c[d>>2]=c[k>>2];f=c[47345]|0}else f=0}else f=0}while(0);l=P;return f|0}function HM(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0.0,j=0,k=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0.0,M=0,N=0,O=0,P=0,Q=0.0,R=0,S=0;S=l;l=l+32|0;J=S+16|0;I=S+8|0;m=S;f=0;k=0;while(1){if((k|0)>=(b|0))break;j=d+(k<<5)|0;t=+h[d+(k<<5)+8>>3]-+h[d+(k<<5)+24>>3];if(!((t>=0.0?t:-t)<.01)?(t=+h[j>>3]-+h[d+(k<<5)+16>>3],!((t>=0.0?t:-t)<.01)):0){if((f|0)!=(k|0)){P=d+(f<<5)|0;c[P>>2]=c[j>>2];c[P+4>>2]=c[j+4>>2];c[P+8>>2]=c[j+8>>2];c[P+12>>2]=c[j+12>>2];c[P+16>>2]=c[j+16>>2];c[P+20>>2]=c[j+20>>2];c[P+24>>2]=c[j+24>>2];c[P+28>>2]=c[j+28>>2]}f=f+1|0}k=k+1|0}K=d+16|0;do if(!(+h[d>>3]>+h[K>>3])?(M=d+8|0,N=d+24|0,!(+h[M>>3]>+h[N>>3])):0){O=f+-1|0;P=c[15715]|0;x=0;while(1){if((x|0)>=(O|0))break;E=x+1|0;F=d+(E<<5)|0;g=+h[F>>3];G=d+(E<<5)+16|0;i=+h[G>>3];if(g>i){R=16;break}B=d+(E<<5)+8|0;o=+h[B>>3];C=d+(E<<5)+24|0;p=+h[C>>3];if(o>p){R=16;break}H=d+(x<<5)+16|0;w=+h[H>>3]<g;f=w&1;D=d+(x<<5)|0;v=+h[D>>3]>i;b=v&1;A=d+(x<<5)+24|0;u=+h[A>>3]<o;k=u&1;z=d+(x<<5)+8|0;m=+h[z>>3]>p;j=m&1;y=b+f+k+j|0;n=(y|0)!=0;if(!((a[195234]|0)==0|n^1)){c[J>>2]=x;c[J+4>>2]=E;z4(P,105443,J)|0;JM(e)}a:do if(n){if(!w)if(!v)if(!u){if(m){m=0;n=f;f=C;j=z;R=24}}else{m=j;k=0;n=f;f=B;j=A;R=24}else{m=j;b=0;n=f;f=G;j=D;R=24}else{m=j;n=0;f=F;j=H;R=24}if((R|0)==24){R=0;x=~~+h[j>>3];h[j>>3]=+h[f>>3];h[f>>3]=+(x|0);j=m;f=n}n=y+-1|0;m=0;while(1){if((m|0)>=(n|0))break a;do if((f|0)!=1){if((b|0)==1){t=+(~~((+h[D>>3]+ +h[G>>3])*.5+.5)|0);h[G>>3]=t;h[D>>3]=t;b=0;break}if((k|0)==1){t=+(~~((+h[A>>3]+ +h[B>>3])*.5+.5)|0);h[B>>3]=t;h[A>>3]=t;k=0;break}if((j|0)==1){t=+(~~((+h[z>>3]+ +h[C>>3])*.5+.5)|0);h[C>>3]=t;h[z>>3]=t;j=0}}else{t=+(~~((+h[H>>3]+ +h[F>>3])*.5+.5)|0);h[F>>3]=t;h[H>>3]=t;f=0}while(0);m=m+1|0}}while(0);q=+h[D>>3];r=+h[H>>3];s=+h[F>>3];t=+h[G>>3];j=KM(~~q,~~r,~~s,~~t)|0;p=+h[z>>3];o=+h[A>>3];i=+h[B>>3];g=+h[C>>3];f=KM(~~p,~~o,~~i,~~g)|0;if(!((j|0)!=0&(f|0)!=0)){x=E;continue}if((j|0)<(f|0)){C=r-q>t-s;x=r<t;h[(C?(x?H:D):x?F:G)>>3]=C?(x?s:t):x?r:q;x=E;continue}else{C=o-p>g-i;x=o<g;h[(C?(x?H:D):x?F:G)+8>>3]=C?(x?i:g):x?o:p;x=E;continue}}if((R|0)==16){c[I>>2]=E;dA(1,105397,I)|0;JM(e);f=1;break}i=+h[e>>3];g=+h[d>>3];f=e+8|0;if(!(((!(i<g)?!(i>+h[K>>3]):0)?(L=+h[f>>3],!(L<+h[M>>3])):0)?!(L>+h[N>>3]):0)){if(a[195234]|0){_3(105486,42,1,P)|0;JM(e);i=+h[e>>3];g=+h[d>>3]}if(i<g){h[e>>3]=g;i=g}g=+h[K>>3];if(i>g)h[e>>3]=g;i=+h[f>>3];g=+h[M>>3];if(i<g){h[f>>3]=g;i=g}g=+h[N>>3];if(i>g)h[f>>3]=g}k=e+40|0;i=+h[k>>3];f=d+(O<<5)|0;g=+h[f>>3];n=e+48|0;b=d+(O<<5)+8|0;m=d+(O<<5)+24|0;j=d+(O<<5)+16|0;if(((!(i<g)?!(i>+h[j>>3]):0)?(Q=+h[n>>3],!(Q<+h[b>>3])):0)?!(Q>+h[m>>3]):0){f=0;break}if(a[195234]|0){_3(105529,39,1,P)|0;JM(e);i=+h[k>>3];g=+h[f>>3]}if(i<g){h[k>>3]=g;i=g}g=+h[j>>3];if(i>g)h[k>>3]=g;i=+h[n>>3];g=+h[b>>3];if(i<g){h[n>>3]=g;i=g}g=+h[m>>3];if(i>g){h[n>>3]=g;f=0}else f=0}else R=12;while(0);if((R|0)==12){dA(1,105352,m)|0;JM(e);f=1}l=S;return f|0}function IM(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0;s=S(e,b)|0;t=+(s|0);e=0;a:while(1){u=e+3|0;if((u|0)>=(d|0))break;o=c+(e<<4)|0;p=c+(e<<4)+8|0;r=e+1|0;q=c+(r<<4)|0;r=c+(r<<4)+8|0;j=e+2|0;i=c+(j<<4)|0;j=c+(j<<4)+8|0;k=c+(u<<4)|0;l=c+(u<<4)+8|0;g=0;while(1){if((g|0)>(s|0)){e=u;continue a}x=+(g|0)/t;m=+h[o>>3];n=+h[p>>3];y=+h[q>>3];v=+h[r>>3];z=+h[i>>3];w=+h[j>>3];m=m+x*(y-m);n=n+x*(v-n);y=y+x*(z-y);v=v+x*(w-v);m=m+x*(y-m);n=n+x*(v-n);m=m+x*(y+x*(z+x*(+h[k>>3]-z)-y)-m);n=n+x*(v+x*(w+x*(+h[l>>3]-w)-v)-n);f=0;while(1){if((f|0)>=(b|0))break;if(n<=+h[a+(f<<5)+24>>3]+.0001?n>=+h[a+(f<<5)+8>>3]+-.0001:0){e=a+(f<<5)|0;if(+h[e>>3]>m)h[e>>3]=m;e=a+(f<<5)+16|0;if(+h[e>>3]<m)h[e>>3]=m}f=f+1|0}g=g+1|0}}return}function JM(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0;m=l;l=l+112|0;j=m+80|0;k=m+48|0;i=m+8|0;g=m;e=c[15715]|0;f=b+80|0;c[g>>2]=c[f>>2];z4(e,105569,g)|0;g=b+84|0;d=0;while(1){if((d|0)>=(c[f>>2]|0))break;r=c[g>>2]|0;q=+h[r+(d<<5)>>3];p=+h[r+(d<<5)+8>>3];o=+h[r+(d<<5)+16>>3];n=+h[r+(d<<5)+24>>3];c[i>>2]=d;h[i+8>>3]=q;h[i+16>>3]=p;h[i+24>>3]=o;h[i+32>>3]=n;z4(e,105580,i)|0;d=d+1|0}q=+h[b+8>>3];p=+h[b+16>>3];r=a[b+29>>0]|0?105611:105623;h[k>>3]=+h[b>>3];h[k+8>>3]=q;h[k+16>>3]=p;c[k+24>>2]=r;z4(e,105639,k)|0;p=+h[b+48>>3];q=+h[b+56>>3];r=a[b+69>>0]|0?105611:105623;h[j>>3]=+h[b+40>>3];h[j+8>>3]=p;h[j+16>>3]=q;c[j+24>>2]=r;z4(e,105690,j)|0;l=m;return}function KM(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;do if((b|0)>(c|0)&(d|0)>(a|0)){if(!((c|0)>(a|0)|(d|0)<(a|0))){a=d-a|0;break}if((b|0)<(c|0)|(b|0)>(d|0)){b=b-a|0;a=d-c|0;a=(b|0)<(a|0)?b:a;break}else{a=b-c|0;break}}else a=0;while(0);return a|0}function LM(a,b){a=a|0;b=b|0;return GM(a,b,1)|0}function MM(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=l;l=l+80|0;g=j;i=1;f=b;while(1){h=f;f=c[(c[f+16>>2]|0)+172>>2]|0;if(!((f|0)!=0&(h|0)!=(f|0)))break;else i=i+1|0}if((i|0)>=21)g=HK(i<<2)|0;h=0;f=b;while(1){if((h|0)>=(i|0))break;c[g+(h<<2)>>2]=f;h=h+1|0;f=c[(c[f+16>>2]|0)+172>>2]|0}NM(a,g,i,d,e);if((i|0)>20)l6(g);l=j;return}
function aQ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=l;l=l+16|0;g=j;a[g>>0]=b;a[g+1>>0]=0;g=cQ(g)|0;h=d+4|0;i=d+8|0;e=D3(g)|0;f=g;while(1){if((e|0)<=1)break;b=c[h>>2]|0;if(b>>>0>=(c[i>>2]|0)>>>0){iA(d,1)|0;b=c[h>>2]|0}k=a[f>>0]|0;c[h>>2]=b+1;a[b>>0]=k;e=e+-1|0;f=f+1|0}k=a[f>>0]|0;l6(g);l=j;return k|0}function bQ(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+32|0;h=i;d=i+8|0;e=c[b>>2]|0;a:do if((a[e>>0]|0)!=35){c[h>>2]=d;f=0;while(1){if((f|0)>=8){d=0;break a}g=a[e+f>>0]|0;if(!(g<<24>>24)){d=0;break a}f=f+1|0;if(g<<24>>24==59)break;a[d>>0]=g;d=d+1|0}a[d>>0]=0;d=e6(h,23712,252,8,96)|0;if(!d)d=0;else{e=e+f|0;d=c[d+4>>2]|0}}else{h=a[e+1>>0]|0;d=h&255;b:do if((h|32)<<24>>24==120){h=0;g=2;while(1){if((g|0)>=8){f=h;break b}f=a[e+g>>0]|0;d=f&255;if((f+-65&255)>=6)if((f+-97&255)>=6)if((f+-48&255)<10)f=-48;else{f=h;break b}else f=-87;else f=-55;d=f+d|0;h=d+(h<<4)|0;g=g+1|0}}else{f=0;g=1;while(1){if((g|0)>=8)break b;h=a[e+g>>0]|0;d=h&255;if((h+-48&255)>=10)break b;f=(f*10|0)+-48+d|0;g=g+1|0}}while(0);d=(d|0)==59;e=d?e+(g+1)|0:e;d=d?f:0}while(0);c[b>>2]=e;l=i;return d|0}function cQ(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+1056|0;i=n;k=n+8|0;c[i>>2]=b;hA(k,1024,n+24|0);j=k+8|0;m=k+4|0;while(1){c[i>>2]=b+1;d=a[b>>0]|0;if(!(d<<24>>24))break;b=d&255;if(d<<24>>24==38){b=bQ(i)|0;if(!b){b=38;e=c[j>>2]|0;h=7}else h=6}else h=6;do if((h|0)==6){h=0;e=c[j>>2]|0;if(b>>>0<127)h=7;else{d=c[m>>2]|0;e=d>>>0>=e>>>0;f=b>>>6;g=(b&63|128)&255;if(b>>>0<2047){if(e){iA(k,1)|0;b=c[m>>2]|0}else b=d;c[m>>2]=b+1;a[b>>0]=f|192;b=c[m>>2]|0;if(b>>>0>=(c[j>>2]|0)>>>0){iA(k,1)|0;b=c[m>>2]|0}c[m>>2]=b+1;a[b>>0]=g;break}if(e){iA(k,1)|0;d=c[m>>2]|0}c[m>>2]=d+1;a[d>>0]=b>>>12|224;b=c[m>>2]|0;if(b>>>0>=(c[j>>2]|0)>>>0){iA(k,1)|0;b=c[m>>2]|0}c[m>>2]=b+1;a[b>>0]=f&63|128;b=c[m>>2]|0;if(b>>>0>=(c[j>>2]|0)>>>0){iA(k,1)|0;b=c[m>>2]|0}c[m>>2]=b+1;a[b>>0]=g}}while(0);if((h|0)==7){d=c[m>>2]|0;if(d>>>0>=e>>>0){iA(k,1)|0;d=c[m>>2]|0}c[m>>2]=d+1;a[d>>0]=b}b=c[i>>2]|0}b=c[m>>2]|0;if(b>>>0>=(c[j>>2]|0)>>>0){iA(k,1)|0;b=c[m>>2]|0}a[b>>0]=0;j=c[k>>2]|0;c[m>>2]=j;m=Y3(j)|0;lA(k);l=n;return m|0}function dQ(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+1040|0;h=j;hA(h,1024,j+16|0);i=h+4|0;g=h+8|0;while(1){d=b+1|0;e=a[b>>0]|0;f=c[g>>2]|0;if(!(e<<24>>24))break;if((e&255)<127){b=c[i>>2]|0;if(b>>>0>=f>>>0){iA(h,1)|0;b=c[i>>2]|0}c[i>>2]=b+1;a[b>>0]=e;b=d;continue}else{e=a[d>>0]&63|e<<6&255;d=c[i>>2]|0;if(d>>>0>=f>>>0){iA(h,1)|0;d=c[i>>2]|0}c[i>>2]=d+1;a[d>>0]=e;b=b+2|0;continue}}b=c[i>>2]|0;if(b>>>0>=f>>>0){iA(h,1)|0;b=c[i>>2]|0}a[b>>0]=0;g=c[h>>2]|0;c[i>>2]=g;i=Y3(g)|0;lA(h);l=j;return i|0}function eQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+80|0;e=n+48|0;d=n+32|0;f=n+64|0;g=n+16|0;i=n;j=b+16|0;k=a+16|0;m=c[k>>2]|0;if(((+h[j>>3]>=+h[m+48>>3]?+h[m+64>>3]>=+h[b>>3]:0)?+h[b+24>>3]>=+h[m+56>>3]:0)?+h[m+72>>3]>=+h[b+8>>3]:0){m=m+16|0;c[d>>2]=c[j>>2];c[d+4>>2]=c[j+4>>2];c[d+8>>2]=c[j+8>>2];c[d+12>>2]=c[j+12>>2];c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];fQ(g,d,e);c[d>>2]=c[m>>2];c[d+4>>2]=c[m+4>>2];c[d+8>>2]=c[m+8>>2];c[d+12>>2]=c[m+12>>2];c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];c[e+8>>2]=c[g+8>>2];c[e+12>>2]=c[g+12>>2];BP(i,d,e);c[f>>2]=a;c[f+4>>2]=0;d=c[(c[(c[(c[k>>2]|0)+8>>2]|0)+4>>2]|0)+12>>2]|0;c[e>>2]=c[i>>2];c[e+4>>2]=c[i+4>>2];c[e+8>>2]=c[i+8>>2];c[e+12>>2]=c[i+12>>2];d=vb[d&127](f,e)|0}else d=0;l=n;return d|0}function fQ(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=(+h[b+8>>3]+ +h[c+8>>3])*.5;h[a>>3]=(+h[b>>3]+ +h[c>>3])*.5;h[a+8>>3]=d;return}function gQ(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0.0,g=0,i=0.0,j=0,k=0,m=0,n=0;e=l;l=l+80|0;j=e+64|0;k=e+48|0;m=e;n=e+32|0;g=e+16|0;h[m>>3]=+h[a+24>>3]*.5;h[m+8>>3]=+h[a+32>>3]*.5;a=a+56|0;c[k>>2]=c[a>>2];c[k+4>>2]=c[a+4>>2];c[k+8>>2]=c[a+8>>2];c[k+12>>2]=c[a+12>>2];c[j>>2]=c[m>>2];c[j+4>>2]=c[m+4>>2];c[j+8>>2]=c[m+8>>2];c[j+12>>2]=c[m+12>>2];BP(n,k,j);i=+h[n>>3];f=+h[n+8>>3];c[k>>2]=c[a>>2];c[k+4>>2]=c[a+4>>2];c[k+8>>2]=c[a+8>>2];c[k+12>>2]=c[a+12>>2];c[j>>2]=c[m>>2];c[j+4>>2]=c[m+4>>2];c[j+8>>2]=c[m+8>>2];c[j+12>>2]=c[m+12>>2];CP(g,k,j);d=+h[g+8>>3];if((+h[b+16>>3]>=i?+h[g>>3]>=+h[b>>3]:0)?+h[b+24>>3]>=f:0)a=d>=+h[b+8>>3]&1;else a=0;l=e;return a|0}function hQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+80|0;k=n+48|0;j=n;h=a+16|0;a=c[h>>2]|0;i=c[a+8>>2]|0;a:do if((i|0)!=0?(g=i+8|0,c[j>>2]=c[g>>2],c[j+4>>2]=c[g+4>>2],c[j+8>>2]=c[g+8>>2],c[j+12>>2]=c[g+12>>2],c[j+16>>2]=c[g+16>>2],c[j+20>>2]=c[g+20>>2],c[j+24>>2]=c[g+24>>2],c[j+28>>2]=c[g+28>>2],c[k>>2]=c[b>>2],c[k+4>>2]=c[b+4>>2],c[k+8>>2]=c[b+8>>2],c[k+12>>2]=c[b+12>>2],c[k+16>>2]=c[b+16>>2],c[k+20>>2]=c[b+20>>2],c[k+24>>2]=c[b+24>>2],c[k+28>>2]=c[b+28>>2],(iQ(j,k)|0)!=0):0){d=i+4|0;a=0;while(1){if((a|0)>=(c[d>>2]|0))break;e=j;f=(c[i>>2]|0)+(a*48|0)|0;g=e+48|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];c[k+12>>2]=c[b+12>>2];c[k+16>>2]=c[b+16>>2];c[k+20>>2]=c[b+20>>2];c[k+24>>2]=c[b+24>>2];c[k+28>>2]=c[b+28>>2];if(!((jQ(j,k)|0)<<24>>24))a=a+1|0;else{a=1;break a}}a=c[h>>2]|0;m=7}else m=7;while(0);do if((m|0)==7){a=c[a+96>>2]|0;if(a|0?(c[k>>2]=c[b>>2],c[k+4>>2]=c[b+4>>2],c[k+8>>2]=c[b+8>>2],c[k+12>>2]=c[b+12>>2],c[k+16>>2]=c[b+16>>2],c[k+20>>2]=c[b+20>>2],c[k+24>>2]=c[b+24>>2],c[k+28>>2]=c[b+28>>2],(gQ(a,k)|0)<<24>>24):0){a=1;break}a=0}while(0);l=n;return a|0}function iQ(a,b){a=a|0;b=b|0;if((+h[a+16>>3]>=+h[b>>3]?+h[b+16>>3]>=+h[a>>3]:0)?+h[a+24>>3]>=+h[b+8>>3]:0)a=+h[b+24>>3]>=+h[a+8>>3];else a=0;return a&1|0}function jQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+96|0;k=n+64|0;j=n+48|0;i=n+32|0;f=n+16|0;g=n;m=a+4|0;d=c[m>>2]|0;if(!d)Aa(110238,107962,1637,110246);e=c[a>>2]|0;c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];e=1;while(1){if((e|0)>=(d|0)){h=7;break}d=(c[a>>2]|0)+(e<<4)|0;c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];c[i>>2]=c[d>>2];c[i+4>>2]=c[d+4>>2];c[i+8>>2]=c[d+8>>2];c[i+12>>2]=c[d+12>>2];c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];c[j+12>>2]=c[g+12>>2];c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];c[k+12>>2]=c[b+12>>2];c[k+16>>2]=c[b+16>>2];c[k+20>>2]=c[b+20>>2];c[k+24>>2]=c[b+24>>2];c[k+28>>2]=c[b+28>>2];if((gK(i,j,k)|0)!=-1){d=1;break};c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];c[g+8>>2]=c[f+8>>2];c[g+12>>2]=c[f+12>>2];e=e+1|0;d=c[m>>2]|0}do if((h|0)==7){d=c[a+8>>2]|0;if(d|0?(g=a+16|0,h=c[a>>2]|0,c[i>>2]=c[g>>2],c[i+4>>2]=c[g+4>>2],c[i+8>>2]=c[g+8>>2],c[i+12>>2]=c[g+12>>2],c[j>>2]=c[h>>2],c[j+4>>2]=c[h+4>>2],c[j+8>>2]=c[h+8>>2],c[j+12>>2]=c[h+12>>2],c[k>>2]=c[b>>2],c[k+4>>2]=c[b+4>>2],c[k+8>>2]=c[b+8>>2],c[k+12>>2]=c[b+12>>2],c[k+16>>2]=c[b+16>>2],c[k+20>>2]=c[b+20>>2],c[k+24>>2]=c[b+24>>2],c[k+28>>2]=c[b+28>>2],(kQ(i,j,d,k)|0)<<24>>24):0){d=1;break}d=c[a+12>>2]|0;if(d|0?(h=a+32|0,m=(c[a>>2]|0)+((c[m>>2]|0)+-1<<4)|0,c[i>>2]=c[h>>2],c[i+4>>2]=c[h+4>>2],c[i+8>>2]=c[h+8>>2],c[i+12>>2]=c[h+12>>2],c[j>>2]=c[m>>2],c[j+4>>2]=c[m+4>>2],c[j+8>>2]=c[m+8>>2],c[j+12>>2]=c[m+12>>2],c[k>>2]=c[b>>2],c[k+4>>2]=c[b+4>>2],c[k+8>>2]=c[b+8>>2],c[k+12>>2]=c[b+12>>2],c[k+16>>2]=c[b+16>>2],c[k+20>>2]=c[b+20>>2],c[k+24>>2]=c[b+24>>2],c[k+28>>2]=c[b+28>>2],(kQ(i,j,d,k)|0)<<24>>24):0){d=1;break}d=0}while(0);l=n;return d|0}function kQ(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0.0;m=l;l=l+160|0;g=m+144|0;f=m+128|0;n=m+96|0;i=m+64|0;j=m+32|0;k=m;o=+h[e+16>>3];c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];WH(n,f,g,1.0,d);if(((o>=+h[n>>3]?(c[f>>2]=c[a>>2],c[f+4>>2]=c[a+4>>2],c[f+8>>2]=c[a+8>>2],c[f+12>>2]=c[a+12>>2],c[g>>2]=c[b>>2],c[g+4>>2]=c[b+4>>2],c[g+8>>2]=c[b+8>>2],c[g+12>>2]=c[b+12>>2],WH(i,f,g,1.0,d),+h[i+16>>3]>=+h[e>>3]):0)?(o=+h[e+24>>3],c[f>>2]=c[a>>2],c[f+4>>2]=c[a+4>>2],c[f+8>>2]=c[a+8>>2],c[f+12>>2]=c[a+12>>2],c[g>>2]=c[b>>2],c[g+4>>2]=c[b+4>>2],c[g+8>>2]=c[b+8>>2],c[g+12>>2]=c[b+12>>2],WH(j,f,g,1.0,d),o>=+h[j+8>>3]):0)?(c[f>>2]=c[a>>2],c[f+4>>2]=c[a+4>>2],c[f+8>>2]=c[a+8>>2],c[f+12>>2]=c[a+12>>2],c[g>>2]=c[b>>2],c[g+4>>2]=c[b+4>>2],c[g+8>>2]=c[b+8>>2],c[g+12>>2]=c[b+12>>2],WH(k,f,g,1.0,d),+h[k+24>>3]>=+h[e+8>>3]):0)f=1;else f=0;l=m;return f|0}function lQ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+16|0;g=h;a:do if((b|0)!=0?(e=a[b>>0]|0,e<<24>>24!=0):0){f=b+1|0;do switch(e<<24>>24|0){case 48:{d=2;break a}case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:{d=10;break a}case 67:case 99:{if(!(C3(f,110261)|0)){d=4;break a}if(!(C3(f,110267)|0)){d=12;break a}break}case 70:case 102:{if(!(C3(f,110275)|0)){d=2;break a}break}case 76:case 108:{if(!(C3(f,110280)|0)){d=2;break a}break}case 78:case 110:{if(!(C3(f,110284)|0)){d=0;break a}if(!(C3(f,110288)|0)){d=2;break a}break}case 79:case 111:{if(!(C3(f,110290)|0)){d=8;break a}break}case 80:case 112:{if(!(C3(f,110295)|0)){d=6;break a}break}case 83:case 115:{if(!(C3(f,110303)|0)){d=10;break a}break}case 84:case 116:{if(!(C3(f,110309)|0)){d=10;break a}break}case 89:case 121:{if(!(C3(f,110313)|0)){d=10;break a}break}default:{}}while(0);c[g>>2]=b;dA(0,110316,g)|0}while(0);l=h;return d|0}function mQ(d,f){d=d|0;f=f|0;var g=0;g=NA(d,110357)|0;if(g)if(!(a[g>>0]|0))f=0;else f=lQ(g,f)|0;d=(c[d+16>>2]|0)+136|0;b[d>>1]=e[d>>1]|f;return}function nQ(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;var f=0.0,g=0.0,i=0.0,j=0,k=0,m=0.0,n=0,o=0.0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0;w=l;l=l+32|0;n=w+16|0;p=w;v=e&1;u=e&2;j=n+8|0;k=p+8|0;g=+h[a>>3];i=+h[a+8>>3];a:do if((c|0)==2){t=+h[a+16>>3]-g;q=+h[a+24>>3]-i;s=g-t;h[n>>3]=s;t=g+t;h[p>>3]=t;f=i-q;h[j>>3]=f;q=i+q;h[k>>3]=q;g=s}else{h[p>>3]=g;h[n>>3]=g;h[k>>3]=i;h[j>>3]=i;e=0;m=g;f=i;while(1){if((e|0)>=(c|0)){t=g;g=m;q=i;break a}x=a+(e<<4)|0;s=+h[x>>3];q=+h[(s<m?x:n)>>3];h[n>>3]=q;t=+h[a+(e<<4)+8>>3];r=+h[(t<f?x:n)+8>>3];h[j>>3]=r;s=+h[(s>g?x:p)>>3];h[p>>3]=s;t=+h[(t>i?x:p)+8>>3];h[k>>3]=t;e=e+1|0;m=q;f=r;g=s;i=t}}while(0);s=g+(t-g)*.5;r=f+(q-f)*.5;e=(u|0)!=0;o=-r;j=b+8|0;a=b+24|0;m=r-f;k=b+16|0;if(!v){i=d;g=+J(+i);i=+I(+i);f=(q-r)*g;if(e){h[j>>3]=r-f;f=r+f}else{h[j>>3]=f-r;f=o-m*g}h[a>>3]=f;d=(t-s)*i;h[b>>3]=s-d;h[k>>3]=s+d}else{d=s-g;d=+G(+(d*d+m*m));h[j>>3]=e?r:o;h[b>>3]=s;h[k>>3]=d*.25;h[a>>3]=d}l=w;return}function oQ(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0,g=0.0;f=b<<24>>24==0;b=c[a+16>>2]|0;d=+h[b+32>>3]*72.0;e=+h[b+40>>3]*72.0;g=(f?d:e)*.5;h[b+96>>3]=g;h[b+88>>3]=g;h[b+80>>3]=f?e:d;return}function pQ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;y=l;l=l+16|0;j=y+8|0;x=4;w=k6(40)|0;c[w>>2]=0;s=y;o=0;e=la(29,b|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=A6(c[f>>2]|0,w|0,x|0)|0;if(!g)Ca(f|0,p|0);D=p}else g=-1;a:do if((g|0)!=1){o=0;v=la(23,e<<3|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){e=A6(c[f>>2]|0,w|0,x|0)|0;if(!e)Ca(f|0,p|0);D=p}else e=-1;if((e|0)!=1){if(!(a[195236]|0))t=0;else{o=0;e=ea(3)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=A6(c[f>>2]|0,w|0,x|0)|0;if(!g)Ca(f|0,p|0);D=p}else g=-1;if((g|0)==1){n=0;k=0;m=0;j=0;i=0;d=v;h=v;e=D;g=0;u=74;break}t=e}o=0;e=ra(97,b|0,110365)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=A6(c[f>>2]|0,w|0,x|0)|0;if(!g)Ca(f|0,p|0);D=p}else g=-1;if((g|0)!=1){c[47394]=0;b:do if(e|0?(i=a[e>>0]|0,i<<24>>24):0){h=e;f=i;g=0;while(1){i=h+1|0;if(!(f<<24>>24))break b;switch(f<<24>>24|0){case 99:{e=8;u=15;break}case 105:{e=18;u=15;break}case 109:{e=1;u=15;break}case 114:{e=4;u=15;break}case 115:{e=2;u=15;break}default:e=g}if((u|0)==15){u=0;e=g|e;c[47394]=e}h=i;f=a[i>>0]|0;g=e}}while(0);if(d|0){o=0;aa(23,0,110369,j|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,x|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){n=0;k=t;m=0;j=0;i=0;d=v;h=v;e=D;g=0;u=74;break}}o=0;r=ra(98,b|0,0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,x|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)!=1){m=c[r+16>>2]|0;if(c[47394]&2|0){o=0;ha(26,c[15715]|0,m|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,x|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){n=0;k=t;m=0;j=0;i=r;d=v;h=v;e=D;g=0;u=74;break}}o=0;g=la(25,b|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,x|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)!=1){n=0;while(1){if(!g)break;o=0;e=ra(99,b|0,g|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){h=A6(c[f>>2]|0,w|0,x|0)|0;if(!h)Ca(f|0,p|0);D=p}else h=-1;if((h|0)==1){k=t;m=0;j=0;i=r;d=v;h=v;e=D;g=0;u=74;break a}i=n;while(1){if(!e)break;if(!((c[47180]|0)==2?(c[(c[e+16>>2]|0)+8>>2]|0)!=0:0))u=32;c:do if((u|0)==32){u=0;do if(a[195236]|0){k=c[e>>2]&3;j=(c[c[((k|0)==3?e:e+48|0)+40>>2]>>2]|0)>>>4;k=(c[c[((k|0)==2?e:e+-48|0)+40>>2]>>2]|0)>>>4;if(j>>>0>k>>>0){o=0;f=aa(37,t|0,k|0,j|0)|0;h=o;o=0;if((h|0)!=0&(p|0)!=0){d=A6(c[h>>2]|0,w|0,x|0)|0;if(!d)Ca(h|0,p|0);D=p}else d=-1;if((d|0)==1){k=t;m=0;j=0;i=r;d=v;h=v;e=D;g=0;u=74;break a}if(f|0)break c;o=0;na(64,t|0,k|0,j|0);f=o;o=0;if((f|0)!=0&(p|0)!=0){h=A6(c[f>>2]|0,w|0,x|0)|0;if(!h)Ca(f|0,p|0);D=p}else h=-1;if((h|0)==1){k=t;m=0;j=0;i=r;d=v;h=v;e=D;g=0;u=74;break a}break}else{o=0;f=aa(37,t|0,j|0,k|0)|0;h=o;o=0;if((h|0)!=0&(p|0)!=0){d=A6(c[h>>2]|0,w|0,x|0)|0;if(!d)Ca(h|0,p|0);D=p}else d=-1;if((d|0)==1){k=t;m=0;j=0;i=r;d=v;h=v;e=D;g=0;u=74;break a}if(f|0)break c;o=0;na(64,t|0,j|0,k|0);f=o;o=0;if((f|0)!=0&(p|0)!=0){h=A6(c[f>>2]|0,w|0,x|0)|0;if(!h)Ca(f|0,p|0);D=p}else h=-1;if((h|0)==1){k=t;m=0;j=0;i=r;d=v;h=v;e=D;g=0;u=74;break a}break}}while(0);c[v+(i<<3)+4>>2]=e;o=0;d=la(30,e|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){h=A6(c[f>>2]|0,w|0,x|0)|0;if(!h)Ca(f|0,p|0);D=p}else h=-1;if((h|0)==1){k=t;m=0;j=0;i=r;d=v;h=v;e=D;g=0;u=74;break a}c[v+(i<<3)>>2]=d;i=i+1|0}while(0);o=0;e=ra(100,b|0,e|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){h=A6(c[f>>2]|0,w|0,x|0)|0;if(!h)Ca(f|0,p|0);D=p}else h=-1;if((h|0)==1){k=t;m=0;j=0;i=r;d=v;h=v;e=D;g=0;u=74;break a}}o=0;g=ra(86,b|0,g|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,x|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){k=t;m=0;j=0;i=r;d=v;h=v;e=D;g=0;u=74;break a}n=i}o=0;j=la(31,n<<3|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,x|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)!=1){o=0;ta(28,v|0,n|0,8,101);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,x|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)!=1){g=c[m>>2]|0;o=0;$(110,g+2|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,x|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)!=1){i=c[m+16>>2]|0;d=i+(g*40|0)|0;i=i+((g+1|0)*40|0)|0;q=c[15715]|0;h=0;while(1){if((h|0)>=(n|0))break;if((h|0)>0?c[47394]&16|0:0){o=0;ha(26,q|0,m|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,x|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){k=t;m=j;i=r;d=v;h=v;e=D;g=q;u=74;break a}}e=c[v+(h<<3)+4>>2]|0;k=c[e>>2]&3;g=c[(c[(c[((k|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0;e=c[(c[(c[((k|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0;if((g|0)==(e|0)){o=0;ta(29,m|0,g|0,i|0,d|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,x|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){k=t;m=j;i=r;d=v;h=v;e=D;g=q;u=74;break a}}else{o=0;na(65,m|0,e|0,i|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,x|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){k=t;m=j;i=r;d=v;h=v;e=D;g=q;u=74;break a}o=0;na(65,m|0,g|0,d|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,x|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){k=t;m=j;i=r;d=v;h=v;e=D;g=q;u=74;break a}}o=0;e=aa(38,m|0,i|0,d|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=A6(c[f>>2]|0,w|0,x|0)|0;if(!g)Ca(f|0,p|0);D=p}else g=-1;if((g|0)==1){k=t;m=j;i=r;d=v;h=v;e=D;g=q;u=74;break a}if(e|0){k=t;m=j;i=r;d=v;h=v;break a}e=j+(h<<3)|0;o=0;ta(30,s|0,m|0,d|0,i|0);f=o;o=0;if((f|0)!=0&(p|0)!=0){g=A6(c[f>>2]|0,w|0,x|0)|0;if(!g)Ca(f|0,p|0);D=p}else g=-1;if((g|0)==1){k=t;m=j;i=r;d=v;h=v;e=D;g=q;u=74;break a}g=s;k=c[g+4>>2]|0;c[e>>2]=c[g>>2];c[e+4>>2]=k;o=0;$(111,m|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,x|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){k=t;m=j;i=r;d=v;h=v;e=D;g=q;u=74;break a}h=h+1|0}o=0;oa(8);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,x|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)!=1){o=0;e=la(32,r|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=A6(c[f>>2]|0,w|0,x|0)|0;if(!g)Ca(f|0,p|0);D=p}else g=-1;if((g|0)!=1){c[r+20>>2]=e;o=0;e=la(33,r|0)|0;f=o;o=0;if((f|0)!=0&(p|0)!=0){g=A6(c[f>>2]|0,w|0,x|0)|0;if(!g)Ca(f|0,p|0);D=p}else g=-1;if((g|0)!=1){c[r+24>>2]=e;o=0;na(66,n|0,j|0,r|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,x|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)!=1){w=x6(189580,1,w|0,x|0)|0;x=D;o=0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,x|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)!=1){k=t;m=j;i=r;d=v;h=v;e=0;g=q;u=74}else{k=t;m=j;i=r;d=v;h=v;e=D;g=q;u=74}}else{k=t;m=j;i=r;d=v;h=v;e=D;g=q;u=74}}else{k=t;m=j;i=r;d=v;h=v;e=D;g=q;u=74}}else{k=t;m=j;i=r;d=v;h=v;e=D;g=q;u=74}}else{k=t;m=j;i=r;d=v;h=v;e=D;g=q;u=74}}else{k=t;m=j;i=r;d=v;h=v;e=D;g=0;u=74}}else{k=t;m=j;i=r;d=v;h=v;e=D;g=0;u=74}}else{k=t;m=0;i=r;d=v;h=v;e=D;g=0;u=74}}else{n=0;k=t;m=0;j=0;i=r;d=v;h=v;e=D;g=0;u=74}}else{n=0;k=t;m=0;j=0;i=r;d=v;h=v;e=D;g=0;u=74}}else{n=0;k=t;m=0;j=0;i=0;d=v;h=v;e=D;g=0;u=74}}else{n=0;k=0;m=0;j=0;i=0;d=0;h=v;e=D;g=0;u=74}}else{n=0;k=0;m=0;j=0;i=0;d=0;h=0;e=D;g=0;u=74}while(0);d:while(1){if((u|0)==74){u=0;if(e|0){q=g;continue}o=0;$(112,i|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,x|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){z=g;f=h;q=d;r=i;s=j;t=m;v=k;u=n;e=D;g=z;h=f;d=q;i=r;j=s;m=t;k=v;n=u;u=74;continue}if(c[47394]&4|0){o=0;ba(17,g|0,i|0,n|0,m|0,d|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,x|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){f=g;q=h;r=d;s=i;t=j;v=m;z=k;u=n;e=D;g=f;h=q;d=r;i=s;j=t;m=v;k=z;n=u;u=74;continue}}o=0;qa(10,b|0,i|0,n|0,m|0,d|0,0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,x|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){f=g;q=h;r=d;s=i;t=j;v=m;z=k;u=n;e=D;g=f;h=q;d=r;i=s;j=t;m=v;k=z;n=u;u=74;continue}q=g}if(!(a[195236]|0))e=0;else{o=0;$(113,k|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,x|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){e=D;g=q;u=74;continue}e=0}while(1){if((e|0)>=(n|0))break;o=0;$(105,c[m+(e<<3)+4>>2]|0);f=o;o=0;if((f|0)!=0&(p|0)!=0){g=A6(c[f>>2]|0,w|0,x|0)|0;if(!g)Ca(f|0,p|0);D=p}else g=-1;if((g|0)==1){e=D;g=q;u=74;continue d}e=e+1|0}o=0;$(105,j|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,x|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){e=D;g=q;u=74;continue}o=0;$(114,i|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,x|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){e=D;g=q;u=74;continue}o=0;$(105,h|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,x|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){e=D;g=q;u=74}else break}l6(w|0);l=y;return}function qQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0;q=l;l=l+64|0;p=q+32|0;o=q+16|0;j=q;k=q+48|0;Z3(111236,a)|0;Z3(111247,a)|0;m=b+16|0;n=j+8|0;i=k+4|0;g=0;while(1){if((g|0)>=(c[b>>2]|0))break;d=c[m>>2]|0;e=c[d+(g*40|0)+20>>2]|0;f=c[d+(g*40|0)+24>>2]|0;if((e|0)==(f|0)){jR(j,e);d=~~+h[j>>3];e=~~+h[n>>3]}else{lR(k,(c[e>>2]&1|0)==0?e:f,d+(g*40|0)|0);d=c[k>>2]|0;e=c[i>>2]|0}c[o>>2]=g;c[o+4>>2]=d;c[o+8>>2]=e;z4(a,111267,o)|0;g=g+1|0}f=b+4|0;e=b+20|0;d=0;while(1){if((d|0)>=(c[f>>2]|0))break;o=c[e>>2]|0;b=c[o+(d*24|0)+16>>2]|0;r=+h[o+(d*24|0)>>3];c[p>>2]=c[o+(d*24|0)+12>>2];c[p+4>>2]=b;h[p+8>>3]=r;z4(a,111287,p)|0;d=d+1|0}Z3(111309,a)|0;l=q;return}function rQ(a){a=a|0;var b=0.0,d=0.0,e=0,f=0;f=c[a>>2]&3;e=c[(c[((f|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0;a=c[(c[((f|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0;d=+h[e+16>>3]-+h[a+16>>3];b=+h[e+24>>3]-+h[a+24>>3];return ~~(d*d+b*b)|0}function sQ(a,b){a=a|0;b=b|0;return (c[a>>2]|0)-(c[b>>2]|0)|0}function tQ(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;j=n;jR(n+16|0,d);k=d+32|0;m=d+36|0;g=0;while(1){if((g|0)>=(c[k>>2]|0))break;h=c[(c[m>>2]|0)+(g<<2)>>2]|0;do if(!(a[h+36>>0]|0)){i=c[h+20>>2]|0;if((i|0)==(d|0)){hR(j,h,c[h+24>>2]|0);CR(b,f,h,0.0)|0;break}else{hR(j,h,i);CR(b,e,h,0.0)|0;break}}while(0);g=g+1|0}c[b>>2]=(c[b>>2]|0)+2;l=n;return}function uQ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+32|0;h=k;jR(k+16|0,b);i=b+32|0;j=b+36|0;f=0;while(1){if((f|0)>=(c[i>>2]|0))break;g=c[(c[j>>2]|0)+(f<<2)>>2]|0;e=c[g+20>>2]|0;if((e|0)==(b|0))e=c[g+24>>2]|0;hR(h,g,e);CR(a,d,g,0.0)|0;f=f+1|0}c[a>>2]=(c[a>>2]|0)+1;c[d+24>>2]=b;c[d+20>>2]=b;l=k;return}function vQ(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0.0,m=0.0,n=0,o=0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;K=l;l=l+128|0;F=K+64|0;n=K+48|0;G=K+32|0;H=K+16|0;I=K;g=0;i=e;while(1){if(!i)break;g=g+1|0;i=c[i+8>>2]|0}E=HK((g*56|0)+-112|0)|0;c[F+52>>2]=0;c[F+48>>2]=0;D=e+8|0;e=c[D>>2]|0;i=c[e+8>>2]|0;g=c[e+20>>2]|0;if(c[g>>2]&1)g=c[e+24>>2]|0;hR(n,e,g);j=e;o=e;q=0.0;p=+h[n>>3];C=0;m=0.0;A=+h[n+8>>3];while(1){B=i+8|0;if(!(c[B>>2]|0))break;y=iR(j,i)|0;aV(d,y,c[o+12>>2]|0);w=o+36|0;x=i+36|0;if((a[w>>0]|0)==(a[x>>0]|0))if((c[B>>2]|0)==(f|0)){hR(H,i,y);e=H;J=12}else{n=o;e=C;k=A}else{jR(G,y);e=G;J=12}if((J|0)==12){J=0;z=+h[e>>3];k=+h[e+8>>3];n=a[w>>0]|0;t=n<<24>>24!=0;e=(o|0)==(c[D>>2]|0);j=g+40|0;v=y+48|0;s=i+20|0;r=g+48|0;u=y+40|0;if(t){g=e?0:m>A?1:3;if(n<<24>>24==(a[x>>0]|0)){n=u;o=j;j=r;e=0}else{n=u;o=j;j=r;e=(c[s>>2]|0)==(y|0)?1:3}}else{g=e?0:q>p?4:2;if(!(a[x>>0]|0)){n=v;o=r;e=0}else{n=v;o=r;e=(c[s>>2]|0)==(y|0)?4:2}}kR(F,(t^1)&1,+h[j>>3],+h[o>>3],+h[n>>3],g,e);e=C+1|0;g=E+(C*56|0)|0;n=F;o=g+56|0;do{c[g>>2]=c[n>>2];g=g+4|0;n=n+4|0}while((g|0)<(o|0));if((a[w>>0]|0)!=(a[x>>0]|0)?(c[B>>2]|0)==(f|0):0){hR(I,i,y);j=(a[x>>0]|0)!=0;q=+h[(j?u:v)>>3];kR(F,(j^1)&1,+h[(j?v:u)>>3],q,q,j?(A>k?1:3):p>z?4:2,0);j=C+2|0;g=E+(e*56|0)|0;n=F;o=g+56|0;do{c[g>>2]=c[n>>2];g=g+4|0;n=n+4|0}while((g|0)<(o|0));g=y;n=i;q=p;p=z;e=j;m=A}else{g=y;n=i;q=p;p=z;m=A}}j=i;i=c[B>>2]|0;o=n;C=e;A=k}i=n6(E,C*56|0)|0;e=C+-1|0;g=0;while(1){if((g|0)>=(C|0))break;if((g|0)>0)c[i+(g*56|0)+48>>2]=i+((g+-1|0)*56|0);j=g+1|0;if((g|0)>=(e|0)){g=j;continue}c[i+(g*56|0)+52>>2]=i+(j*56|0);g=j}c[b>>2]=C;c[b+4>>2]=i;l=K;return}function wQ(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0,k=0;j=Sz(25740,c[4591]|0)|0;k=a+8|0;i=0;while(1){if((i|0)>=(c[a>>2]|0))break;b=(c[k>>2]|0)+(i*72|0)|0;if(!(c[b>>2]&4)){while(1){d=c[(c[b+36>>2]|0)+8>>2]|0;if(!d)break;d=c[d+20>>2]|0;if(!d)break;if(!(c[d>>2]&1))b=d;else break}g=HK(40)|0;c[g+36>>2]=b;h[g+8>>3]=+h[b+40>>3];f=b;d=c[b>>2]|0;while(1){c[f>>2]=d|4;d=c[c[f+36>>2]>>2]|0;if(!d)break;e=c[d+24>>2]|0;if(!e)break;d=c[e>>2]|0;if(d&1|0)break;else f=e}h[g+16>>3]=+h[f+56>>3];cR(j,g,+h[b+48>>3])}i=i+1|0}return j|0}function xQ(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0,k=0;j=Sz(25740,c[4591]|0)|0;k=a+8|0;i=0;while(1){if((i|0)>=(c[a>>2]|0))break;b=(c[k>>2]|0)+(i*72|0)|0;if(!(c[b>>2]&2)){while(1){d=c[(c[b+36>>2]|0)+12>>2]|0;if(!d)break;d=c[d+20>>2]|0;if(!d)break;if(!(c[d>>2]&1))b=d;else break}g=HK(40)|0;c[g+36>>2]=b;h[g+8>>3]=+h[b+48>>3];f=b;d=c[b>>2]|0;while(1){c[f>>2]=d|2;d=c[(c[f+36>>2]|0)+4>>2]|0;if(!d)break;e=c[d+24>>2]|0;if(!e)break;d=c[e>>2]|0;if(d&1|0)break;else f=e}h[g+16>>3]=+h[f+64>>3];cR(j,g,+h[b+40>>3])}i=i+1|0}return j|0}function yQ(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;j=e+20|0;i=e+24|0;e=0;while(1){if((e|0)>=(b|0))break;g=c[d+(e<<3)>>2]|0;h=c[d+(e<<3)+4>>2]|0;f=0;while(1){if((f|0)>=(g|0))break;k=h+(f*56|0)|0;bR(HQ(c[((a[k>>0]|0)==0?j:i)>>2]|0,k)|0,k);f=f+1|0}e=e+1|0}return}function zQ(a){a=a|0;var b=0,d=0;d=a+20|0;JQ(c[d>>2]|0);b=a+24|0;JQ(c[b>>2]|0);KQ(c[d>>2]|0);KQ(c[b>>2]|0);LQ(c[d>>2]|0,a);LQ(c[b>>2]|0,a);MQ(c[d>>2]|0);MQ(c[b>>2]|0);return}function AQ(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0.0,C=0.0,D=0,E=0.0;z=l;l=l+224|0;n=z+176|0;m=z+208|0;x=z+160|0;y=z+128|0;k=z+96|0;t=z+64|0;u=z+32|0;o=z;v=u+8|0;h[v>>3]=1797693134862315708145274.0e284;h[u>>3]=1797693134862315708145274.0e284;w=u+24|0;h[w>>3]=-1797693134862315708145274.0e284;p=u+16|0;h[p>>3]=-1797693134862315708145274.0e284;Z3(110484,a)|0;c[n>>2]=10;c[n+4>>2]=10;z4(a,110890,n)|0;Z3(138568,a)|0;i=b+4|0;q=t+16|0;r=t+8|0;s=t+24|0;j=b+12|0;g=0;while(1){if((g|0)>=(c[i>>2]|0))break;D=(c[j>>2]|0)+(g*72|0)+40|0;c[t>>2]=c[D>>2];c[t+4>>2]=c[D+4>>2];c[t+8>>2]=c[D+8>>2];c[t+12>>2]=c[D+12>>2];c[t+16>>2]=c[D+16>>2];c[t+20>>2]=c[D+20>>2];c[t+24>>2]=c[D+24>>2];c[t+28>>2]=c[D+28>>2];C=+h[r>>3];B=+h[q>>3];A=+h[s>>3];h[k>>3]=+h[t>>3];h[k+8>>3]=C;h[k+16>>3]=B;h[k+24>>3]=A;z4(a,138587,k)|0;g=g+1|0}g=0;while(1){if((g|0)>=(d|0))break;D=c[f+(g<<3)+4>>2]|0;k=e+(g<<3)|0;c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[n>>2]=c[u>>2];c[n+4>>2]=c[u+4>>2];c[n+8>>2]=c[u+8>>2];c[n+12>>2]=c[u+12>>2];c[n+16>>2]=c[u+16>>2];c[n+20>>2]=c[u+20>>2];c[n+24>>2]=c[u+24>>2];c[n+28>>2]=c[u+28>>2];IQ(o,a,D,m,b,n);c[u>>2]=c[o>>2];c[u+4>>2]=c[o+4>>2];c[u+8>>2]=c[o+8>>2];c[u+12>>2]=c[o+12>>2];c[u+16>>2]=c[o+16>>2];c[u+20>>2]=c[o+20>>2];c[u+24>>2]=c[o+24>>2];c[u+28>>2]=c[o+28>>2];g=g+1|0}Z3(110907,a)|0;i=b+8|0;g=0;while(1){if((g|0)>=(c[b>>2]|0))break;D=(c[i>>2]|0)+(g*72|0)+40|0;c[t>>2]=c[D>>2];c[t+4>>2]=c[D+4>>2];c[t+8>>2]=c[D+8>>2];c[t+12>>2]=c[D+12>>2];c[t+16>>2]=c[D+16>>2];c[t+20>>2]=c[D+20>>2];c[t+24>>2]=c[D+24>>2];c[t+28>>2]=c[D+28>>2];E=+h[t>>3];A=+h[r>>3];B=+h[q>>3];C=+h[s>>3];h[y>>3]=E;h[y+8>>3]=A;h[y+16>>3]=B;h[y+24>>3]=C;z4(a,138624,y)|0;h[u>>3]=+h[(+h[u>>3]<E?u:t)>>3];h[v>>3]=+h[(+h[v>>3]<A?u:t)+8>>3];h[p>>3]=+h[(+h[p>>3]>B?u:t)+16>>3];h[w>>3]=+h[(+h[w>>3]>C?u:t)+24>>3];g=g+1|0}v=~~(+h[v>>3]+10.0);y=~~(+h[p>>3]+10.0);D=~~(+h[w>>3]+10.0);c[x>>2]=~~(+h[u>>3]+10.0);c[x+4>>2]=v;c[x+8>>2]=y;c[x+12>>2]=D;z4(a,110932,x)|0;l=z;return}function BQ(b,e,f,g,i,j){b=b|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;var k=0,m=0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;Q=l;l=l+112|0;I=Q+88|0;H=Q+72|0;P=Q+32|0;L=Q+16|0;M=Q;N=Q+56|0;O=Q+40|0;J=c[15715]|0;z=(j|0)==0;A=M+8|0;B=L+8|0;y=0;k=0;m=0;p=0;j=0;while(1){if((y|0)>=(f|0))break;C=c[i+(y<<3)+4>>2]|0;D=C+48|0;x=(c[(c[((c[C>>2]&3|0)==3?C:D)+40>>2]|0)+16>>2]|0)+16|0;E=C+16|0;F=(c[E>>2]|0)+16|0;c[H>>2]=c[x>>2];c[H+4>>2]=c[x+4>>2];c[H+8>>2]=c[x+8>>2];c[H+12>>2]=c[x+12>>2];c[I>>2]=c[F>>2];c[I+4>>2]=c[F+4>>2];c[I+8>>2]=c[F+8>>2];c[I+12>>2]=c[F+12>>2];CQ(N,H,I);c[L>>2]=c[N>>2];c[L+4>>2]=c[N+4>>2];c[L+8>>2]=c[N+8>>2];c[L+12>>2]=c[N+12>>2];F=C+-48|0;x=(c[(c[((c[C>>2]&3|0)==2?C:F)+40>>2]|0)+16>>2]|0)+16|0;w=(c[E>>2]|0)+56|0;c[H>>2]=c[x>>2];c[H+4>>2]=c[x+4>>2];c[H+8>>2]=c[x+8>>2];c[H+12>>2]=c[x+12>>2];c[I>>2]=c[w>>2];c[I+4>>2]=c[w+4>>2];c[I+8>>2]=c[w+8>>2];c[I+12>>2]=c[w+12>>2];CQ(O,H,I);c[M>>2]=c[O>>2];c[M+4>>2]=c[O+4>>2];c[M+8>>2]=c[O+8>>2];c[M+12>>2]=c[O+12>>2];w=c[g+(y<<3)>>2]|0;x=c[g+(y<<3)+4>>2]|0;v=w*3|0;G=v+1|0;if((v|0)>=(m|0)){if(k|0)l6(j);p=IK(G<<4)|0;k=p;m=G;j=p}if(!(a[x>>0]|0)){o=+(EQ(x,e)|0);n=+h[L>>3]}else{n=+DQ(x,e);o=+h[B>>3]}s=k+16|0;h[k+16>>3]=n;h[k+24>>3]=o;c[p>>2]=c[s>>2];c[p+4>>2]=c[s+4>>2];c[p+8>>2]=c[s+8>>2];c[p+12>>2]=c[s+12>>2];s=1;q=x;t=2;while(1){r=t+1|0;u=k+(r<<4)|0;v=k+(t<<4)|0;if((s|0)>=(w|0))break;q=x+(s*56|0)|0;if(!(a[q>>0]|0))o=+(EQ(q,e)|0);else n=+DQ(q,e);r=k+(t+2<<4)|0;h[v>>3]=n;h[k+(t<<4)+8>>3]=o;c[u>>2]=c[v>>2];c[u+4>>2]=c[v+4>>2];c[u+8>>2]=c[v+8>>2];c[u+12>>2]=c[v+12>>2];c[r>>2]=c[v>>2];c[r+4>>2]=c[v+4>>2];c[r+8>>2]=c[v+8>>2];c[r+12>>2]=c[v+12>>2];s=s+1|0;t=t+3|0}if(!(a[q>>0]|0)){o=+(EQ(q,e)|0);n=+h[M>>3]}else{n=+DQ(q,e);o=+h[A>>3]}h[u>>3]=n;h[k+(r<<4)+8>>3]=o;c[v>>2]=c[u>>2];c[v+4>>2]=c[u+4>>2];c[v+8>>2]=c[u+8>>2];c[v+12>>2]=c[u+12>>2];if((d[195234]|0)>1){x=HB(c[((c[C>>2]&3|0)==3?C:D)+40>>2]|0)|0;D=HB(c[((c[C>>2]&3|0)==2?C:F)+40>>2]|0)|0;c[P>>2]=x;c[P+4>>2]=D;z4(J,110443,P)|0}bO(C,c[((c[C>>2]&3|0)==2?C:F)+40>>2]|0,k,G,25728);if((!z?(K=c[(c[E>>2]|0)+96>>2]|0,K|0):0)?(a[K+81>>0]|0)==0:0){c[H>>2]=c[L>>2];c[H+4>>2]=c[L+4>>2];c[H+8>>2]=c[L+8>>2];c[H+12>>2]=c[L+12>>2];c[I>>2]=c[M>>2];c[I+4>>2]=c[M+4>>2];c[I+8>>2]=c[M+8>>2];c[I+12>>2]=c[M+12>>2];wO(b,C,H,I)}y=y+1|0}l6(j);l=Q;return}function CQ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;h[b>>3]=+h[d>>3]+ +h[b>>3];e=b+8|0;h[e>>3]=+h[d+8>>3]+ +h[e>>3];c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];return}function DQ(a,b){a=a|0;b=b|0;var d=0.0,e=0;e=HQ(c[b+24>>2]|0,a)|0;b=c[e+36>>2]|0;d=+h[b+40>>3];return +(d+ +(c[a+44>>2]|0)/+((c[e+24>>2]|0)+1|0)*(+h[b+56>>3]-d))}function EQ(a,b){a=a|0;b=b|0;var d=0.0,e=0;e=HQ(c[b+20>>2]|0,a)|0;b=c[e+36>>2]|0;d=+h[b+48>>3];return ~~(d+(1.0-+(c[a+44>>2]|0)/+((c[e+24>>2]|0)+1|0))*(+h[b+64>>3]-d))|0}function FQ(a){a=a|0;return 0}function GQ(a){a=a|0;return 0}function HQ(a,b){a=a|0;b=b|0;a=eb[c[a>>2]&63](a,b+8|0,512)|0;if(!a)Aa(110456,110462,423,110470);a=c[a+16>>2]|0;a=eb[c[a>>2]&63](a,b+16|0,512)|0;if(!a)Aa(110481,110462,425,110470);else return a|0;return 0}function IQ(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0.0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0.0,D=0.0;z=l;l=l+32|0;y=z+16|0;u=z+8|0;m=z;j=c[(c[(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0;t=c[f+4>>2]|0;if(!(a[t>>0]|0)){s=+h[j+56>>3];k=+h[j+40>>3];j=EQ(t,g)|0;k=(s+k)*.5}else{s=+h[j+64>>3];k=+h[j+48>>3];j=~~((s+k)*.5);k=+DQ(t,g)}A=~~k;p=+h[i>>3];r=+(A|0);p=p<r?p:r;h[i>>3]=p;v=i+8|0;q=+h[v>>3];s=+(j|0);q=q<s?q:s;h[v>>3]=q;w=i+16|0;k=+h[w>>3];r=k>r?k:r;h[w>>3]=r;x=i+24|0;k=+h[x>>3];s=k>s?k:s;h[x>>3]=s;c[m>>2]=A;c[m+4>>2]=j;z4(d,110983,m)|0;o=c[f>>2]|0;m=t;n=1;f=A;while(1){if((n|0)>=(o|0))break;m=t+(n*56|0)|0;if(!(a[m>>0]|0))j=EQ(m,g)|0;else f=~~+DQ(m,g);B=+(f|0);D=p<B?p:B;h[i>>3]=D;k=+(j|0);C=q<k?q:k;h[v>>3]=C;B=r>B?r:B;h[w>>3]=B;k=s>k?s:k;h[x>>3]=k;c[u>>2]=f;c[u+4>>2]=j;z4(d,111005,u)|0;n=n+1|0;p=D;q=C;r=B;s=k}j=c[(c[(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0;if(!(a[m>>0]|0)){D=+h[j+56>>3];k=+h[j+40>>3];j=EQ(m,g)|0;k=(D+k)*.5}else{D=+h[j+64>>3];k=+h[j+48>>3];j=~~((D+k)*.5);k=+DQ(m,g)}A=~~k;C=+(A|0);h[i>>3]=p<C?p:C;D=+(j|0);h[v>>3]=q<D?q:D;h[w>>3]=r>C?r:C;h[x>>3]=s>D?s:D;c[y>>2]=A;c[y+4>>2]=j;z4(d,111019,y)|0;c[b>>2]=c[i>>2];c[b+4>>2]=c[i+4>>2];c[b+8>>2]=c[i+8>>2];c[b+12>>2]=c[i+12>>2];c[b+16>>2]=c[i+16>>2];c[b+20>>2]=c[i+20>>2];c[b+24>>2]=c[i+24>>2];c[b+28>>2]=c[i+28>>2];l=z;return}function JQ(a){a=a|0;var b=0;a=Qz(a)|0;while(1){if(!a)break;b=Qz(c[a+16>>2]|0)|0;while(1){if(!b)break;c[b+32>>2]=mR(c[b+24>>2]|0)|0;b=c[b>>2]|0}a=c[a>>2]|0}return}function KQ(a){a=a|0;var b=0;a=Qz(a)|0;while(1){if(!a)break;b=Qz(c[a+16>>2]|0)|0;while(1){if(!b)break;if(c[b+24>>2]|0)aR(b);b=c[b>>2]|0}a=c[a>>2]|0}return}function LQ(a,b){a=a|0;b=b|0;var d=0;d=Qz(a)|0;while(1){if(!d)break;a=Qz(c[d+16>>2]|0)|0;while(1){if(!a)break;QQ(a,b);a=c[a>>2]|0}d=c[d>>2]|0}return}function MQ(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0;e=Qz(a)|0;while(1){if(!e)break;i=e+8|0;f=Qz(c[e+16>>2]|0)|0;while(1){if(!f)break;a=f+24|0;a:do if(c[a>>2]|0){if(c[47394]&8|0)NQ(f,~~+h[i>>3]);g=f+32|0;rR(c[g>>2]|0);b=c[a>>2]|0;d=f+28|0;a=0;while(1){if((a|0)>=(b|0))break a;c[(c[(c[d>>2]|0)+(a<<2)>>2]|0)+44>>2]=(c[(c[(c[g>>2]|0)+4>>2]|0)+(a*12|0)+4>>2]|0)+1;a=a+1|0}}while(0);f=c[f>>2]|0}e=c[e>>2]|0}return}function NQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0.0,m=0.0;j=l;l=l+32|0;d=j;g=a+24|0;a:do if((c[g>>2]|0)>=2){i=c[15715]|0;m=+h[a+8>>3];k=+h[a+16>>3];c[d>>2]=b;h[d+8>>3]=m;h[d+16>>3]=k;z4(i,111040,d)|0;f=a+32|0;a=a+28|0;b=0;while(1){if((b|0)>=(c[g>>2]|0))break a;e=c[(c[(c[f>>2]|0)+4>>2]|0)+(b*12|0)+8>>2]|0;b:do if(Uz(e)|0){OQ(i,c[(c[a>>2]|0)+(b<<2)>>2]|0);Z3(111060,i)|0;d=eb[c[e>>2]&63](e,0,128)|0;while(1){if(!d)break b;Z3(111065,i)|0;OQ(i,c[(c[a>>2]|0)+(c[d>>2]<<2)>>2]|0);Z3(153748,i)|0;d=eb[c[e>>2]&63](e,d,8)|0}}while(0);b=b+1|0}}while(0);l=j;return}function OQ(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,g=0,i=0.0,j=0,k=0,m=0,n=0;m=l;l=l+80|0;k=m+40|0;j=m;n=(a[d>>0]|0)==0;i=+h[d+8>>3];e=+h[d+24>>3];f=+h[d+16>>3];g=PQ(c[d+32>>2]|0)|0;d=PQ(c[d+36>>2]|0)|0;if(n){h[k>>3]=f;h[k+8>>3]=i;h[k+16>>3]=e;h[k+24>>3]=i;c[k+32>>2]=g;c[k+36>>2]=d;z4(b,111071,k)|0}else{h[j>>3]=i;h[j+8>>3]=f;h[j+16>>3]=i;h[j+24>>3]=e;c[j+32>>2]=g;c[j+36>>2]=d;z4(b,111071,j)|0}l=m;return}function PQ(a){a=a|0;switch(a|0){case 0:{a=111122;break}case 1:{a=111117;break}case 2:{a=111110;break}case 3:{a=111103;break}case 4:{a=111095;break}default:a=0}return a|0}function QQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=l;l=l+16|0;r=w+8|0;t=w;u=c[a+32>>2]|0;v=c[a+28>>2]|0;p=a+24|0;m=r+4|0;n=t+4|0;j=0;a=c[p>>2]|0;a:while(1){q=j+1|0;if((q|0)>=(a|0))break;o=v+(j<<2)|0;k=q;while(1){if((k|0)>=(a|0)){j=q;continue a}b:do if(((qR(u,j,k)|0)==0?(qR(u,k,j)|0)==0:0)?(s=v+(k<<2)|0,RQ(c[o>>2]|0,c[s>>2]|0)|0):0){f=c[o>>2]|0;a=c[f+48>>2]|0;i=c[s>>2]|0;d=c[i+48>>2]|0;e=(d|0)==0;if(a)if(e)a=1;else a=+h[a+8>>3]!=+h[d+8>>3];else a=e^1;g=a&1;SQ(r,f,i,0,g);a=c[r>>2]|0;i=c[m>>2]|0;f=g^1;SQ(t,c[o>>2]|0,c[s>>2]|0,1,f);d=c[t>>2]|0;e=c[n>>2]|0;switch(i|0){case -1:{TQ(c[s>>2]|0,c[o>>2]|0,g,0,a,b);TQ(c[s>>2]|0,c[o>>2]|0,f,1,d,b);if((e|0)!=1)break b;UQ(c[o>>2]|0,c[s>>2]|0,f,b);break b}case 0:switch(e|0){case -1:{TQ(c[s>>2]|0,c[o>>2]|0,g,0,a,b);TQ(c[s>>2]|0,c[o>>2]|0,f,1,d,b);break b}case 0:{TQ(c[o>>2]|0,c[s>>2]|0,0,g,a,b);TQ(c[o>>2]|0,c[s>>2]|0,1,f,d,b);break b}case 1:{TQ(c[o>>2]|0,c[s>>2]|0,0,g,a,b);TQ(c[o>>2]|0,c[s>>2]|0,1,f,d,b);break b}default:break b}case 1:{TQ(c[o>>2]|0,c[s>>2]|0,0,g,a,b);TQ(c[o>>2]|0,c[s>>2]|0,1,f,d,b);if((e|0)!=-1)break b;UQ(c[o>>2]|0,c[s>>2]|0,f,b);break b}default:break b}}while(0);k=k+1|0;a=c[p>>2]|0}}l=w;return}function RQ(a,b){a=a|0;b=b|0;if(!(+h[a+8>>3]==+h[b+8>>3]))Aa(111193,110462,843,111224);if((+h[a+16>>3]==+h[b+16>>3]?+h[a+24>>3]==+h[b+24>>3]:0)?(c[a+32>>2]|0)==(c[b+32>>2]|0):0)a=(c[a+36>>2]|0)==(c[b+36>>2]|0);else a=0;return a&1|0}function SQ(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;g=0;while(1){b=VQ(b,e)|0;h=g+1|0;if(!b){i=0;break}d=VQ(d,f)|0;if(!d){j=5;break}if(!(RQ(b,d)|0)){j=6;break}else g=h}if((j|0)==5)Aa(138697,110462,871,111142);else if((j|0)==6)i=XQ(b,WQ(b,d)|0,h,1-e|0)|0;c[a>>2]=g;c[a+4>>2]=i;return}function TQ(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i+24|0;v=i+20|0;i=HQ(c[((a[b>>0]|0)==0?v:w)>>2]|0,b)|0;oR(c[i+32>>2]|0,c[b+40>>2]|0,c[d+40>>2]|0);s=1;while(1){if((s|0)>(g|0))break;t=VQ(b,e)|0;u=VQ(d,f)|0;j=i+32|0;k=b+40|0;l=d+40|0;m=t+8|0;n=b+36|0;o=b+32|0;p=b+16|0;q=u+40|0;r=t+40|0;do if(!(a[b>>0]|0)){i=HQ(c[w>>2]|0,t)|0;j=c[j>>2]|0;d=c[k>>2]|0;b=c[l>>2]|0;if(+h[m>>3]==+h[p>>3]){p=(c[o>>2]|0)==1;j=(qR(j,d,b)|0)!=0;k=c[i+32>>2]|0;d=c[q>>2]|0;b=c[r>>2]|0;if(p)if(j){oR(k,d,b);break}else{oR(k,b,d);break}else if(j){oR(k,b,d);break}else{oR(k,d,b);break}}else{p=(c[n>>2]|0)==1;j=(qR(j,d,b)|0)!=0;k=c[i+32>>2]|0;d=c[q>>2]|0;b=c[r>>2]|0;if(p)if(j){oR(k,b,d);break}else{oR(k,d,b);break}else if(j){oR(k,d,b);break}else{oR(k,b,d);break}}}else{i=HQ(c[v>>2]|0,t)|0;j=c[j>>2]|0;d=c[k>>2]|0;b=c[l>>2]|0;if(+h[m>>3]==+h[p>>3]){p=(c[o>>2]|0)==2;j=(qR(j,d,b)|0)!=0;k=c[i+32>>2]|0;d=c[q>>2]|0;b=c[r>>2]|0;if(p)if(j){oR(k,b,d);break}else{oR(k,d,b);break}else if(j){oR(k,d,b);break}else{oR(k,b,d);break}}else{p=(c[n>>2]|0)==2;j=(qR(j,d,b)|0)!=0;k=c[i+32>>2]|0;d=c[q>>2]|0;b=c[r>>2]|0;if(p)if(j){oR(k,d,b);break}else{oR(k,b,d);break}else if(j){oR(k,b,d);break}else{oR(k,d,b);break}}}while(0);b=t;d=u;s=s+1|0}return}function UQ(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;while(1){if(!(RQ(b,d)|0))break;g=VQ(b,1)|0;d=VQ(d,e)|0;b=g}g=c[(HQ(c[((a[b>>0]|0)==0?f+20|0:f+24|0)>>2]|0,b)|0)+32>>2]|0;pR(g,c[b+40>>2]|0,c[d+40>>2]|0);return}function VQ(a,b){a=a|0;b=b|0;if(!a)Aa(111129,110462,798,111133);else return c[((b|0)==0?a+48|0:a+52|0)>>2]|0;return 0}function WQ(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=a[b>>0]|0;if(d<<24>>24==(a[c>>0]|0)?!(+h[b+8>>3]!=+h[c+8>>3]):0){if(!(d<<24>>24))b=YQ(b,c,3,1)|0;else b=YQ(b,c,4,2)|0;l=f;return b|0}dA(1,111155,e)|0;Ca(189580,1);return 0}function XQ(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,l=0,m=0;m=1;while(1){if((m|0)>(e|0))break;l=VQ(b,f)|0;g=+h[l+8>>3]==+h[b+16>>3];k=0-d|0;i=b+36|0;j=b+32|0;do if(!(a[b>>0]|0))if(g){g=(c[j>>2]|0)==1;break}else{g=(c[i>>2]|0)==3;break}else if(g){g=(c[j>>2]|0)==4;break}else{g=(c[i>>2]|0)==2;break}while(0);b=l;m=m+1|0;d=g?k:d}return d|0}function YQ(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0,i=0.0,j=0,k=0,l=0,m=0.0,n=0,o=0,p=0.0,q=0,r=0,s=0;p=+h[a+24>>3];i=+h[b+16>>3];do if(!(p<i)?(f=+h[a+16>>3],m=+h[b+24>>3],!(f>m)):0){if(i<p&f<i){b=ZQ(a,b,d,e)|0;break}if(i<f&f<m){b=0-(ZQ(b,a,d,e)|0)|0;break}g=b+36|0;s=a+36|0;b=b+32|0;a=a+32|0;if(!(f==i))if(p==i){d=c[s>>2]|0;return ((d|0)==(c[b>>2]|0)?0:(d|0)==(e|0)?1:-1)|0}else{b=c[a>>2]|0;b=(b|0)==(c[g>>2]|0)?0:(b|0)==(e|0)?1:-1;break}q=c[b>>2]|0;r=c[a>>2]|0;if(!(p==m))if(p<m){s=(c[s>>2]|0)==(d|0);b=$Q(q,r,d,e)|0;b=s?b:0-b|0;break}else{s=(c[g>>2]|0)==(e|0);b=$Q(r,q,d,e)|0;b=s?b:0-b|0;break}n=c[g>>2]|0;if((r|0)==(q|0)?(c[s>>2]|0)==(n|0):0){b=0;break}o=(q|0)==(d|0);j=(r|0)!=(e|0);b=(r|0)!=(d|0);k=(q|0)==(e|0);if((q|0)==(n|0)){if(o|k){b=o?1:-1;break}if(b?(c[s>>2]|0)!=(d|0):0){b=1;break}if(j?(c[s>>2]|0)!=(e|0):0){b=-1;break}b=0;break}l=(n|0)!=(e|0);if(!(l|o^1)){if(b?(c[s>>2]|0)==(e|0):0){b=1;break}if((r|0)==(d|0)?(c[s>>2]|0)!=(e|0):0){b=-1;break}b=0;break}g=c[s>>2]|0;a=(n|0)!=(d|0);if(!(a|k^1)){if((r|0)==(e|0)&(g|0)!=(d|0)){b=1;break}return (j&(g|0)==(d|0))<<31>>31|0}b=(q|0)!=0;if(!(b|a)){b=_Q(r,g,d)|0;break}if(!(b|l)){b=0-(_Q(r,g,e)|0)|0;break}if(o&(n|0)==0){b=_Q(g,r,d)|0;break}else{b=0-(_Q(g,r,e)|0)|0;break}}else b=0;while(0);return b|0}function ZQ(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0.0,j=0.0,k=0;i=+h[a+24>>3];j=+h[b+24>>3];k=a+36|0;f=b+32|0;do if(i<j){a=c[k>>2]|0;if((a|0)==(d|0)?(c[f>>2]|0)==(e|0):0){a=-1;break}if((a|0)==(e|0)?(c[f>>2]|0)==(d|0):0){a=1;break}a=0}else{f=c[f>>2]|0;g=(f|0)==(e|0);a=b+36|0;if(i==j){f=c[a>>2]|0;a=c[k>>2]|0;if(g){a=$Q(a,f,d,e)|0;break}else{a=0-($Q(f,a,d,e)|0)|0;break}}if(g?(c[a>>2]|0)==(e|0):0){a=-1;break}if((f|0)==(d|0)?(c[a>>2]|0)==(d|0):0){a=1;break}a=0}while(0);return a|0}function _Q(a,b,c){a=a|0;b=b|0;c=c|0;return ((a|0)==(c|0)?((b|0)==(c|0))<<31>>31:1)|0}function $Q(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((a|0)==(d|0)){b=(a|0)==0;if(b)return 0;else b=b&1}return ((a|0)!=0|(b|0)!=(c|0))<<31>>31|0}function aR(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;g=c[a+28>>2]|0;h=c[a+24>>2]|0;d=c[a+32>>2]|0;a=0;a:while(1){e=a+1|0;if((e|0)>=(h|0))break;f=g+(a<<2)|0;b=e;while(1){if((b|0)==(h|0)){a=e;continue a}switch(WQ(c[f>>2]|0,c[g+(b<<2)>>2]|0)|0){case 1:{oR(d,a,b);break}case -1:{oR(d,b,a);break}default:{}}b=b+1|0}}return}function bR(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+24|0;e=c[f>>2]|0;d=e+1|0;c[f>>2]=d;c[b+40>>2]=e;e=a+28|0;a=c[e>>2]|0;if(!a)a=IK(d<<2)|0;else a=KK(a,d<<2)|0;c[e>>2]=a;c[a+((c[f>>2]|0)+-1<<2)>>2]=b;return}function cR(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,g=0;g=l;l=l+16|0;f=g;h[f>>3]=d;e=eb[c[a>>2]&63](a,f,512)|0;if(!e){e=HK(24)|0;h[e+8>>3]=+h[f>>3];c[e+16>>2]=Sz(25776,c[4591]|0)|0;eb[c[a>>2]&63](a,e,1)|0}f=c[e+16>>2]|0;eb[c[f>>2]&63](f,b,1)|0;l=g;return}function dR(a,b,d){a=a|0;b=b|0;d=d|0;nR(c[b+32>>2]|0);l6(c[b+28>>2]|0);l6(b);return}function eR(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0;e=+h[b>>3];f=+h[c>>3];d=c+8|0;a=b+8|0;if(!(e>f))if(e<f)a=!(+h[a>>3]>=+h[d>>3])<<31>>31;else a=0;else a=!(+h[a>>3]<=+h[d>>3])&1;return a|0}function fR(a,b,d){a=a|0;b=b|0;d=d|0;Oz(c[b+16>>2]|0)|0;l6(b);return}function gR(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0;f=+h[b>>3];e=+h[c>>3];return (f>e?1:(f<e)<<31>>31)|0}function hR(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0,j=0,k=0,l=0,m=0;m=(a[d+36>>0]|0)!=0;k=e+40|0;j=e+48|0;i=e+64|0;l=e+56|0;do if((c[d+24>>2]|0)==(e|0)){f=+h[k>>3];g=+h[j>>3];if(m){g=(g+ +h[i>>3])*.5;break}else{f=(f+ +h[l>>3])*.5;break}}else{g=+h[i>>3];f=+h[l>>3];if(m){g=(g+ +h[j>>3])*.5;break}else{f=(f+ +h[k>>3])*.5;break}}while(0);h[b>>3]=f;h[b+8>>3]=g;return}function iR(a,b){a=a|0;b=b|0;var d=0;d=c[a+20>>2]|0;if((d|0)!=(c[b+20>>2]|0)?(d|0)!=(c[b+24>>2]|0):0)d=c[a+24>>2]|0;return d|0}function jR(a,b){a=a|0;b=b|0;var c=0.0;c=(+h[b+48>>3]+ +h[b+64>>3])*.5;h[a>>3]=(+h[b+40>>3]+ +h[b+56>>3])*.5;h[a+8>>3]=c;return}function kR(b,d,e,f,g,i,j){b=b|0;d=d|0;e=+e;f=+f;g=+g;i=i|0;j=j|0;var k=0,l=0,m=0;a[b>>0]=d;h[b+8>>3]=e;d=b+16|0;k=b+32|0;l=b+36|0;m=b+24|0;if(f<g){h[d>>3]=f;h[m>>3]=g;c[k>>2]=i;c[l>>2]=j;d=0}else{h[m>>3]=f;h[d>>3]=g;c[l>>2]=i;c[k>>2]=j;d=1}a[b+1>>0]=d;return}function lR(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0;f=c[b+36>>2]|0;i=b+64|0;g=b+56|0;e=b+40|0;do if((c[f+4>>2]|0)!=(d|0)){b=b+48|0;if((c[f+12>>2]|0)==(d|0)){e=~~((+h[e>>3]+ +h[g>>3])*.5);b=~~+h[b>>3];break}if((c[f+8>>2]|0)==(d|0)){e=~~+h[e>>3];b=~~((+h[b>>3]+ +h[i>>3])*.5);break}if((c[f>>2]|0)==(d|0)){e=~~+h[g>>3];b=~~((+h[b>>3]+ +h[i>>3])*.5)}else{e=0;b=0}}else{e=~~((+h[e>>3]+ +h[g>>3])*.5);b=~~+h[i>>3]}while(0);c[a>>2]=e;c[a+4>>2]=b;return}function mR(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=HK(8)|0;c[d>>2]=a;e=d+4|0;c[e>>2]=HK(a*12|0)|0;b=0;while(1){if((b|0)>=(a|0))break;g=NU()|0;f=c[e>>2]|0;c[f+(b*12|0)+8>>2]=g;c[f+(b*12|0)>>2]=0;b=b+1|0}return d|0}function nR(a){a=a|0;var b=0,d=0,e=0;d=a+4|0;b=0;while(1){e=c[d>>2]|0;if((b|0)>=(c[a>>2]|0))break;Oz(c[e+(b*12|0)+8>>2]|0)|0;b=b+1|0}l6(e);l6(a);return}function oR(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;c[f>>2]=d;d=c[(c[a+4>>2]|0)+(b*12|0)+8>>2]|0;eb[c[d>>2]&63](d,f,1)|0;l=e;return}function pR(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;c[f>>2]=d;a=a+4|0;g=c[(c[a>>2]|0)+(b*12|0)+8>>2]|0;eb[c[g>>2]&63](g,f,2)|0;c[f>>2]=b;d=c[(c[a>>2]|0)+(d*12|0)+8>>2]|0;eb[c[d>>2]&63](d,f,2)|0;l=e;return}function qR(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;c[f>>2]=d;d=c[(c[a+4>>2]|0)+(b*12|0)+8>>2]|0;d=(eb[c[d>>2]&63](d,f,512)|0)!=0&1;l=e;return d|0}function rR(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a>>2]|0;do if(b|0){f=a+4|0;if((b|0)==1){c[(c[f>>2]|0)+4>>2]=0;break}e=sR(b)|0;d=0;b=0;while(1){if((d|0)>=(c[a>>2]|0)){b=0;break}if(!(c[(c[f>>2]|0)+(d*12|0)>>2]|0))b=tR(a,d,b,e)|0;d=d+1|0}while(1){d=uR(e)|0;if((d|0)<=-1)break;c[(c[f>>2]|0)+(d*12|0)+4>>2]=b;b=b+1|0}vR(e)}while(0);return}function sR(a){a=a|0;var b=0;b=HK(8)|0;c[b+4>>2]=HK(a<<2)|0;c[b>>2]=-1;return b|0}function tR(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;i=a+4|0;g=c[i>>2]|0;j=g+(b*12|0)|0;c[j>>2]=1;g=c[g+(b*12|0)+8>>2]|0;h=g+4|0;d=d+1|0;g=Qz(g)|0;while(1){if(!g)break;f=c[(c[h>>2]|0)+8>>2]|0;if((f|0)<0)f=c[g+8>>2]|0;else f=g+(0-f)|0;f=c[f>>2]|0;if(!(c[(c[i>>2]|0)+(f*12|0)>>2]|0))d=tR(a,f,d,e)|0;g=c[g>>2]|0}c[j>>2]=2;wR(e,b);return d+1|0}function uR(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;if((b|0)==-1)a=-1;else{d=c[(c[a+4>>2]|0)+(b<<2)>>2]|0;c[a>>2]=b+-1;a=d}return a|0}function vR(a){a=a|0;l6(c[a+4>>2]|0);l6(a);return}function wR(a,b){a=a|0;b=b|0;var d=0;d=(c[a>>2]|0)+1|0;c[a>>2]=d;c[(c[a+4>>2]|0)+(d<<2)>>2]=b;return}function xR(a){a=a|0;var d=0,e=0,f=0;e=c[a>>2]|0;c[a+8>>2]=e;c[a+12>>2]=c[a+4>>2];d=a+16|0;a=0;while(1){if((a|0)>=(e|0))break;f=c[d>>2]|0;b[f+(a*40|0)+18>>1]=b[f+(a*40|0)+16>>1]|0;a=a+1|0}return}function yR(a){a=a|0;var d=0,e=0,f=0;d=c[a+8>>2]|0;c[a>>2]=d;c[a+4>>2]=c[a+12>>2];e=a+16|0;a=0;while(1){if((a|0)>=(d|0))break;f=c[e>>2]|0;b[f+(a*40|0)+16>>1]=b[f+(a*40|0)+18>>1]|0;a=a+1|0}d=d+2|0;while(1){if((a|0)>=(d|0))break;b[(c[e>>2]|0)+(a*40|0)+16>>1]=0;a=a+1|0}return}function zR(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=HK(((c[a>>2]|0)*6|0)+(b<<1)<<2)|0;c[a+20>>2]=HK((((c[a>>2]|0)*3|0)+b|0)*24|0)|0;e=c[a>>2]|0;f=a+16|0;a=0;while(1){if((a|0)>=(e|0))break;c[(c[f>>2]|0)+(a*40|0)+28>>2]=d;d=d+24|0;a=a+1|0}e=e+2|0;while(1){if((a|0)>=(e|0))break;c[(c[f>>2]|0)+(a*40|0)+28>>2]=d;d=d+(b<<2)|0;a=a+1|0}return}function AR(a){a=a|0;var b=0;b=HK(24)|0;c[b>>2]=0;c[b+16>>2]=HK(a*40|0)|0;return b|0}function BR(a){a=a|0;var b=0,d=0;d=c[a+16>>2]|0;b=c[a>>2]|0;c[d+(b*40|0)+32>>2]=b;c[a>>2]=b+1;return d+(b*40|0)|0}function CR(a,b,d,e){a=a|0;b=b|0;d=d|0;e=+e;var f=0,g=0;g=a+4|0;f=c[g>>2]|0;c[g>>2]=f+1;g=c[a+20>>2]|0;a=g+(f*24|0)|0;c[g+(f*24|0)+12>>2]=c[b+32>>2];c[g+(f*24|0)+16>>2]=c[d+32>>2];h[a>>3]=e;c[g+(f*24|0)+8>>2]=0;DR(b,f);DR(d,f);return a|0}function DR(a,d){a=a|0;d=d|0;var e=0,f=0;e=a+16|0;f=b[e>>1]|0;c[(c[a+28>>2]|0)+(f<<16>>16<<2)>>2]=d;b[e>>1]=f+1<<16>>16;return}function ER(a){a=a|0;var b=0;b=a+16|0;l6(c[(c[b>>2]|0)+28>>2]|0);l6(c[b>>2]|0);l6(c[a+20>>2]|0);l6(a);return}function FR(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;g=c[a>>2]|0;i=a+16|0;f=0;while(1){if((f|0)>=(g|0))break;c[(c[i>>2]|0)+(f*40|0)>>2]=-2147483648;f=f+1|0}VU();a:do if(!(YU(d)|0)){c[d+8>>2]=0;c[d>>2]=0;d=a+20|0;b:while(1){g=_U()|0;if(!g){f=0;break a}c[g>>2]=0-(c[g>>2]|0);if((g|0)==(e|0)){f=0;break a}i=g+16|0;j=g+28|0;f=0;while(1){if((f|0)>=(b[i>>1]|0))continue b;k=(c[d>>2]|0)+((c[(c[j>>2]|0)+(f<<2)>>2]|0)*24|0)|0;l=GR(a,k,g)|0;m=c[l>>2]|0;do if((m|0)<0){n=~~-(+(c[g>>2]|0)+ +h[k>>3]);if((m|0)==-2147483648){c[l>>2]=n;if(YU(l)|0){f=1;break a}c[l+8>>2]=g;c[l+12>>2]=k;break}else{if((m|0)>=(n|0))break;$U(l,n);c[l+8>>2]=g;c[l+12>>2]=k;break}}while(0);f=f+1|0}}}else f=1;while(0);return f|0}function GR(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[b+12>>2]|0;if((e|0)==(c[d+32>>2]|0))e=c[b+16>>2]|0;return (c[a+16>>2]|0)+(e*40|0)|0}function HR(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=c[a>>2]|0;JF(d,3,b)|0;b=c[d+92>>2]|0;do if(b){e=c[b+16>>2]|0;h=c[e+12>>2]|0;c[a+76>>2]=h;f=c[e+16>>2]|0;c[a+84>>2]=f;g=a+80|0;c[g>>2]=c[e>>2];c[a+88>>2]=c[b+4>>2];e=a+152|0;f=c[e>>2]|c[f>>2];c[e>>2]=f;b=c[d+80>>2]|0;d=a+60|0;if(!b){c[d>>2]=0;b=999;break}else{i=c[b+16>>2]|0;c[d>>2]=c[i+12>>2];d=c[i+16>>2]|0;c[a+68>>2]=d;c[a+72>>2]=c[b+4>>2];c[e>>2]=f|c[d>>2];c[a+64>>2]=c[((h|0)==0?g:i)>>2];b=300;break}}else b=999;while(0);return b|0}function IR(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(!(iF(a)|0))if((b|0)!=0?(d=c[b>>2]|0,(d|0)!=0):0){db[d&127](a);a=0}else a=0;else a=1;return a|0}function JR(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+4>>2]|0,d|0):0)db[d&127](a);c[(c[a>>2]|0)+24>>2]=0;qF(a);return}function KR(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,g=0.0,i=0.0,j=0.0,k=0,l=0.0;j=+h[b+504>>3];g=+h[b+512>>3];l=+h[b+352>>3];k=(c[b+360>>2]|0)==0;i=+h[d>>3];f=+h[d+8>>3];e=l*+h[b+528>>3]*((k?g:j)+(k?f:i));h[a>>3]=l*+h[b+520>>3]*(k?j+i:-(g+f));h[a+8>>3]=e;return}function LR(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0,k=0.0;f=+h[a+504>>3];g=+h[a+512>>3];i=+h[a+352>>3];j=i*+h[a+520>>3];i=i*+h[a+528>>3];a:do if(!(c[a+360>>2]|0)){a=0;while(1){if((a|0)>=(e|0))break a;h[d+(a<<4)>>3]=j*(f+ +h[b+(a<<4)>>3]);h[d+(a<<4)+8>>3]=i*(g+ +h[b+(a<<4)+8>>3]);a=a+1|0}}else{a=0;while(1){if((a|0)>=(e|0))break a;k=-(j*(g+ +h[b+(a<<4)+8>>3]));h[d+(a<<4)+8>>3]=i*(f+ +h[b+(a<<4)>>3]);h[d+(a<<4)>>3]=k;a=a+1|0}}while(0);return d|0}function MR(a,b){a=a|0;b=b|0;var d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+8>>2]|0,d|0):0)db[d&127](a);return}function NR(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+12>>2]|0,d|0):0)db[d&127](a);pF(a);return}function OR(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+24>>2]|0,d|0):0)db[d&127](a);return}function PR(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+28>>2]|0,d|0):0)db[d&127](a);return}function QR(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+16>>2]|0,d|0):0){b=c[a+160>>2]|0;xb[d&31](a,c[(c[(c[a>>2]|0)+308>>2]|0)+(b<<2)>>2]|0,b,c[a+156>>2]|0)}return}function RR(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+20>>2]|0,d|0):0)db[d&127](a);return}function SR(a,b){a=a|0;b=b|0;var d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+32>>2]|0,d|0):0)db[d&127](a);return}function TR(a,b){a=a|0;b=b|0;var d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+36>>2]|0,d|0):0)db[d&127](a);return}function UR(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+40>>2]|0,d|0):0)db[d&127](a);return}function VR(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+44>>2]|0,d|0):0)db[d&127](a);return}function WR(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+48>>2]|0,d|0):0)db[d&127](a);return}function XR(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+52>>2]|0,d|0):0)db[d&127](a);return}function YR(a,b){a=a|0;b=b|0;var d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+56>>2]|0,d|0):0)db[d&127](a);return}function ZR(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+60>>2]|0,d|0):0)db[d&127](a);return}function _R(a,b){a=a|0;b=b|0;var d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+64>>2]|0,d|0):0)db[d&127](a);return}function $R(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+68>>2]|0,d|0):0)db[d&127](a);return}function aS(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=c[a+60>>2]|0;if(g|0?(h=c[g+72>>2]|0,h|0):0)fb[h&31](a,b,d,e,f);return}function bS(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+76>>2]|0,d|0):0)db[d&127](a);return}function cS(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a+60>>2]|0;if(d|0?(e=c[d+80>>2]|0,e|0):0)lb[e&63](a,b);return}function dS(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(b|0?(d=c[b+84>>2]|0,d|0):0)db[d&127](a);return}function eS(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;k=l;l=l+48|0;f=k+32|0;h=k;i=k+16|0;j=c[b+60>>2]|0;m=c[e>>2]|0;do if(m|0?a[m>>0]|0:0){m=c[b+16>>2]|0;if(m|0?(c[m+144>>2]|0)==0:0)break;if(!(c[b+152>>2]&8192)){c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];KR(i,b,f);c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];c[h+12>>2]=c[i+12>>2]}else{c[h>>2]=c[d>>2];c[h+4>>2]=c[d+4>>2];c[h+8>>2]=c[d+8>>2];c[h+12>>2]=c[d+12>>2]}if(j|0?(g=c[j+88>>2]|0,g|0):0){c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[f+8>>2]=c[h+8>>2];c[f+12>>2]=c[h+12>>2];rb[g&127](b,f,e)}}while(0);l=k;return}function fS(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;f=c[b+60>>2]|0;g=(c[b+16>>2]|0)+16|0;i=F3(d,58)|0;h=(i|0)!=0;if(h)a[i>>0]=0;if(f|0?(gS(c[b+68>>2]|0,d,g),e=c[f+92>>2]|0,e|0):0)lb[e&63](b,g);if(h)a[i>>0]=58;return}function gS(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+32|0;g=k+16|0;j=k+8|0;i=k;c[d>>2]=b;c[d+32>>2]=5;e=xT(b)|0;f=c[a+16>>2]|0;if(!((f|0)!=0?(e6(e,f,c[a+20>>2]|0,4,102)|0)!=0:0))h=3;a:do if((h|0)==3){switch(yT(b,d,c[a+24>>2]|0)|0){case 0:break a;case 1:break;default:{dA(1,111347,g)|0;break a}}a=IK((D3(b)|0)+16|0)|0;c[i>>2]=b;i2(a,111312,i)|0;if(NJ(a)|0){c[j>>2]=b;dA(0,111321,j)|0}l6(a)}while(0);l=k;return}function hS(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;f=c[b+60>>2]|0;g=(c[b+16>>2]|0)+56|0;i=F3(d,58)|0;h=(i|0)!=0;if(h)a[i>>0]=0;if(f|0?(gS(c[b+68>>2]|0,d,g),e=c[f+92>>2]|0,e|0):0)lb[e&63](b,g);if(h)a[i>>0]=58;return}function iS(a,b,d,e){a=a|0;b=b|0;d=d|0;e=+e;var f=0,h=0,i=0,j=0;h=c[a+60>>2]|0;i=a+16|0;j=(c[i>>2]|0)+96|0;if(h|0?(gS(c[a+68>>2]|0,b,j),f=c[h+92>>2]|0,f|0):0)lb[f&63](a,j);j=c[i>>2]|0;c[j+136>>2]=d;g[j+140>>2]=e;return}function jS(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;k=m;j=c[b+60>>2]|0;b=c[b+16>>2]|0;c[b+160>>2]=d;a:do if((d|0)!=0&(j|0)!=0){j=b+144|0;i=b+152|0;g=b+148|0;b=d;b:while(1){f=b+4|0;b=c[b>>2]|0;if(!b)break a;c:do switch(a[b>>0]|0){case 115:{if(!(f2(b,111368)|0)){c[j>>2]=3;b=f;continue b}if(!(f2(b,111389)|0)){d=115;while(1){e=b+1|0;if(!(d<<24>>24))break;b=e;d=a[e>>0]|0}h[i>>3]=+a6(e);b=f;continue b}break}case 100:{if(!(f2(b,137628)|0)){c[j>>2]=1;b=f;continue b}if(!(f2(b,137621)|0)){c[j>>2]=2;b=f;continue b}break}case 105:{if(f2(b,134636)|0?f2(b,111374)|0:0)break c;c[j>>2]=0;b=f;continue b}case 98:{if(!(f2(b,111384)|0)){h[i>>3]=2.0;b=f;continue b}break}case 102:{if(!(f2(b,111402)|0)){c[g>>2]=1;b=f;continue b}break}case 117:{if(!(f2(b,111409)|0)){c[g>>2]=0;b=f;continue b}break}case 116:{if(!(f2(b,111418)|0)){b=f;continue b}break}default:{}}while(0);c[k>>2]=b;dA(0,111426,k)|0;b=f}}while(0);l=m;return}function kS(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0;j=l;l=l+32|0;g=j;d=c[a+60>>2]|0;if((d|0?(i=d+96|0,f=c[i>>2]|0,f|0):0)?c[(c[a+16>>2]|0)+144>>2]|0:0){d=b+16|0;h[g>>3]=(+h[b>>3]+ +h[d>>3])*.5;h[g+8>>3]=(+h[b+8>>3]+ +h[b+24>>3])*.5;b=g+16|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];if(!(c[a+152>>2]&8192)){LR(a,g,g,2)|0;f=c[i>>2]|0}rb[f&127](a,g,e)}l=j;return}function lS(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+48|0;m=o;f=c[a+60>>2]|0;if((f|0?(n=f+100|0,c[n>>2]|0):0)?(k=a+16|0,g=c[k>>2]|0,c[g+144>>2]|0):0){j=g+16|0;if(!(e&4))g=0;else{i=g+56|0;e=e&-5;f=m;g=j;h=f+40|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));f=j;g=i;h=f+40|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));g=1}if(!(c[a+152>>2]&8192)){f=d+10|0;if((c[47434]|0)<(d|0)){c[47434]=f;f=KK(c[47435]|0,f<<4)|0;c[47435]=f}else f=c[47435]|0;LR(a,b,f,d)|0;xb[c[n>>2]&31](a,f,d,e)}else xb[c[n>>2]&31](a,b,d,e);if(g|0){f=(c[k>>2]|0)+16|0;g=m;h=f+40|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0))}}l=o;return}function mS(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+64|0;f=e;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];g=f+32|0;b=b+16|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];h[f+16>>3]=+h[f>>3];h[f+24>>3]=+h[f+40>>3];h[f+48>>3]=+h[g>>3];h[f+56>>3]=+h[f+8>>3];lS(a,f,4,d);l=e;return}function nS(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=c[a+60>>2]|0;do if((h|0?(j=h+104|0,i=c[j>>2]|0,i|0):0)?c[(c[a+16>>2]|0)+144>>2]|0:0){h=g&255;if(c[a+152>>2]&8192|0){ub[i&15](a,b,d,e,f,h);break}g=d+10|0;if((c[47434]|0)<(d|0)){c[47434]=g;g=KK(c[47435]|0,g<<4)|0;c[47435]=g}else g=c[47435]|0;LR(a,b,g,d)|0;ub[c[j>>2]&15](a,g,d,e,f,h)}while(0);return}function oS(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=c[a+60>>2]|0;do if((e|0?(g=e+108|0,f=c[g>>2]|0,f|0):0)?c[(c[a+16>>2]|0)+144>>2]|0:0){if(c[a+152>>2]&8192|0){rb[f&127](a,b,d);break}e=d+10|0;if((c[47434]|0)<(d|0)){c[47434]=e;e=KK(c[47435]|0,e<<4)|0;c[47435]=e}else e=c[47435]|0;LR(a,b,e,d)|0;rb[c[g>>2]&127](a,e,d)}while(0);return}function pS(b,d){b=b|0;d=d|0;var e=0,f=0;e=c[b+60>>2]|0;if((d|0?!((e|0)==0|(a[d>>0]|0)==0):0)?(f=c[e+112>>2]|0,f|0):0)lb[f&63](b,d);return}function qS(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0.0,k=0.0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;H=l;l=l+112|0;D=H+64|0;G=H;n=H+96|0;z=H+48|0;A=H+32|0;E=c[b+60>>2]|0;if(!b)Aa(111583,111479,691,111490);if(!d)Aa(111509,111479,692,111490);if(!(a[d>>0]|0))Aa(111514,111479,693,111490);F=LF(d)|0;if(!F){if((E|0)!=0&(gN(d)|0)!=0?(m=c[E+116>>2]|0,m|0):0)fb[m&31](b,d,e,f,g&255)}else{s=b+432|0;c[D>>2]=c[s>>2];c[D+4>>2]=c[s+4>>2];c[D+8>>2]=c[s+8>>2];c[D+12>>2]=c[s+12>>2];OF(n,F,D);s=c[n>>2]|0;m=c[n+4>>2]|0;if(!((s|0)<1&(m|0)<1)){n=G+16|0;c[n>>2]=c[e>>2];c[n+4>>2]=c[e+4>>2];c[n+8>>2]=c[e+8>>2];c[n+12>>2]=c[e+12>>2];c[G>>2]=c[e>>2];c[G+4>>2]=c[e+4>>2];c[G+8>>2]=c[e+8>>2];c[G+12>>2]=c[e+12>>2];B=G+24|0;C=G+8|0;d=1;k=+h[G>>3];x=+h[C>>3];j=+h[n>>3];y=+h[B>>3];while(1){if((d|0)>=(f|0))break;I=e+(d<<4)|0;v=+h[I>>3];t=+h[(k<v?G:I)>>3];h[G>>3]=t;w=+h[e+(d<<4)+8>>3];u=+h[(x<w?G:I)+8>>3];h[C>>3]=u;v=+h[(j>v?n:I)>>3];h[n>>3]=v;w=+h[(y>w?n:I)+8>>3];h[B>>3]=w;d=d+1|0;k=t;x=u;j=v;y=w}v=j-k;w=y-x;o=+(m|0);p=+(s|0);t=v/p;q=w/o;u=o*q;r=p*t;a:do switch(rS(i)|0){case 1:if(t<q){p=r;o=o*t;break a}else{p=p*q;o=u;break a}case 2:{p=r;break}case 3:{o=u;break}case 4:{p=r;o=u;break}default:{}}while(0);if(p<v){v=(v-p)*.5;k=v+k;h[G>>3]=k;j=j-v;h[n>>3]=j}if(o<w){w=(w-o)*.5;h[C>>3]=w+x;h[B>>3]=y-w}if(!(c[b+152>>2]&8192)){c[D>>2]=c[G>>2];c[D+4>>2]=c[G+4>>2];c[D+8>>2]=c[G+8>>2];c[D+12>>2]=c[G+12>>2];KR(z,b,D);c[G>>2]=c[z>>2];c[G+4>>2]=c[z+4>>2];c[G+8>>2]=c[z+8>>2];c[G+12>>2]=c[z+12>>2];c[D>>2]=c[n>>2];c[D+4>>2]=c[n+4>>2];c[D+8>>2]=c[n+8>>2];c[D+12>>2]=c[n+12>>2];KR(A,b,D);c[n>>2]=c[A>>2];c[n+4>>2]=c[A+4>>2];c[n+8>>2]=c[A+8>>2];c[n+12>>2]=c[A+12>>2];k=+h[G>>3];j=+h[n>>3]}if(k>j){h[G>>3]=j;h[n>>3]=k}j=+h[C>>3];k=+h[B>>3];if(j>k){h[C>>3]=k;h[B>>3]=j}if(E|0){I=c[b+72>>2]|0;c[D>>2]=c[G>>2];c[D+4>>2]=c[G+4>>2];c[D+8>>2]=c[G+8>>2];c[D+12>>2]=c[G+12>>2];c[D+16>>2]=c[G+16>>2];c[D+20>>2]=c[G+20>>2];c[D+24>>2]=c[G+24>>2];c[D+28>>2]=c[G+28>>2];vS(b,F,D,g,I)}}}l=H;return}function rS(b){b=b|0;if(a[b>>0]|0)if(C3(b,141419)|0)if(C3(b,141351)|0)if(!(C3(b,111522)|0))b=4;else b=(bP(b)|0)<<24>>24!=0&1;else b=3;else b=2;else b=0;return b|0}function sS(a,b){a=a|0;b=+b;if(c[a+60>>2]|0)h[(c[a+16>>2]|0)+152>>3]=b;return}function tS(a,b){a=a|0;b=b|0;b=JF(a,1,b)|0;if(!b)b=999;else{b=c[b+16>>2]|0;c[a+184>>2]=c[b+4>>2];c[a+172>>2]=c[b+12>>2];c[a+176>>2]=c[b>>2];c[a+180>>2]=c[b+16>>2];b=300}return b|0}function uS(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;f=i;RC(b,137786,280,1)|0;g=b+16|0;c[(c[g>>2]|0)+144>>2]=a;if((vC(b)|0)!=(b|0))c[(c[(vC(b)|0)+16>>2]|0)+144>>2]=a;d=NA(b,111527)|0;e=a+172|0;if((d|0)!=0?(c[e>>2]=0,(tS(a,d)|0)==999):0){h=KF(a,1,d)|0;c[f>>2]=d;c[f+4>>2]=h;dA(1,111534,f)|0;d=-1}else{e=c[e>>2]|0;if(!e)d=-1;else{PJ(1);oK(b,c[c[a+180>>2]>>2]&1);d=c[(c[g>>2]|0)+8>>2]|0;c[(c[(vC(b)|0)+16>>2]|0)+8>>2]=d;YN();d=c[e>>2]|0;if(d|0?(db[d&127](b),h=c[e+4>>2]|0,h|0):0)c[(c[g>>2]|0)+148>>2]=h;PJ(0);d=0}}l=i;return d|0}function vS(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+176|0;k=n+8|0;j=n;h=n+40|0;if(!b)Aa(111583,111587,52,111601);if(!d)Aa(111613,111587,53,111601);i=c[d+8>>2]|0;if(!i)Aa(111616,111587,54,111601);if(!(a[i>>0]|0))Aa(111625,111587,55,111601);O3(h,c[d+28>>2]|0)|0;i=h+(D3(h)|0)|0;a[i>>0]=58;a[i+1>>0]=0;g6(h,g)|0;if((wS(b,h)|0)==999){c[j>>2]=h;dA(0,111637,j)|0}g=c[b+92>>2]|0;if(g|0?(m=c[g>>2]|0,m|0):0){c[k>>2]=c[e>>2];c[k+4>>2]=c[e+4>>2];c[k+8>>2]=c[e+8>>2];c[k+12>>2]=c[e+12>>2];c[k+16>>2]=c[e+16>>2];c[k+20>>2]=c[e+20>>2];c[k+24>>2]=c[e+24>>2];c[k+28>>2]=c[e+28>>2];xb[m&31](b,d,k,f)}l=n;return}function wS(a,b){a=a|0;b=b|0;b=JF(c[a>>2]|0,4,b)|0;if(!b)b=999;else{b=c[b+16>>2]|0;c[a+92>>2]=c[b+12>>2];c[a+96>>2]=c[b>>2];b=300}return b|0}function xS(a){a=a|0;return 1}function yS(b){b=b|0;var c=0;a[b+536>>0]=0;c=b+336|0;h[c>>3]=+h[c>>3]+10.0/+h[b+352>>3];a[b+537>>0]=1;return 0}function zS(b){b=b|0;var c=0;a[b+536>>0]=0;c=b+336|0;h[c>>3]=+h[c>>3]-10.0/+h[b+352>>3];a[b+537>>0]=1;return 0}function AS(b){b=b|0;var c=0;a[b+536>>0]=0;c=b+344|0;h[c>>3]=+h[c>>3]-10.0/+h[b+352>>3];a[b+537>>0]=1;return 0}function BS(b){b=b|0;var c=0;a[b+536>>0]=0;c=b+344|0;h[c>>3]=+h[c>>3]+10.0/+h[b+352>>3];a[b+537>>0]=1;return 0}function CS(b){b=b|0;var c=0;a[b+536>>0]=0;c=b+352|0;h[c>>3]=+h[c>>3]*1.1;a[b+537>>0]=1;return 0}function DS(b){b=b|0;var c=0;a[b+536>>0]=0;c=b+352|0;h[c>>3]=+h[c>>3]/1.1;a[b+537>>0]=1;return 0}function ES(b){b=b|0;var d=0,e=0,f=0,g=0.0,i=0.0;e=b+536|0;d=(a[e>>0]|0)==0;a[e>>0]=d&1;if(d){d=c[b+448>>2]|0;e=c[b+452>>2]|0;i=+(d>>>0);g=+(e>>>0);f=i/+(d|0)<g/+(e|0);h[b+352>>3]=(f?i:g)/+((f?d:e)|0);e=b+336|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;a[b+537>>0]=1}return 0}function FS(b){b=b|0;var d=0,e=0;d=c[(c[b>>2]|0)+168>>2]|0;e=b+580|0;if(!(c[e>>2]|0)){c[e>>2]=d;e=(c[d+16>>2]|0)+112|0;a[e>>0]=a[e>>0]|2;VS(b,d)}qI(b,d);a[b+540>>0]=1;return}function GS(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0,k=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=l;l=l+16|0;m=C;x=b+452|0;t=b+448|0;y=e+8|0;o=b+536|0;A=b+360|0;p=b+541|0;q=b+538|0;z=b+336|0;n=d&255;B=b+344|0;u=b+352|0;v=b+528|0;w=b+520|0;switch(d|0){case 1:{c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];OS(b,m);US(b);a[q>>0]=1;a[p>>0]=n;r=13;break}case 2:{a[q>>0]=1;a[p>>0]=n;r=13;break}case 3:{c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];OS(b,m);a[q>>0]=1;a[p>>0]=n;r=13;break}case 4:{a[o>>0]=0;j=+h[z>>3];k=+h[u>>3];i=+((c[t>>2]|0)>>>0)*.5;g=k*+h[w>>3];f=(+h[y>>3]-+((c[x>>2]|0)>>>0)*.5)*.10000000000000009/(k*+h[v>>3]);if(!(c[A>>2]|0))h[z>>3]=j+(+h[e>>3]-i)*.10000000000000009/g;else{h[z>>3]=j-f;f=(+h[e>>3]-i)*.10000000000000009/g}h[B>>3]=f+ +h[B>>3];h[u>>3]=k*1.1;r=13;break}case 5:{a[o>>0]=0;s=+h[u>>3]/1.1;h[u>>3]=s;k=+h[z>>3];j=+((c[t>>2]|0)>>>0)*.5;f=+h[v>>3];i=+h[w>>3];g=(+h[y>>3]-+((c[x>>2]|0)>>>0)*.5)*.10000000000000009;if(!(c[A>>2]|0))h[z>>3]=k-(+h[e>>3]-j)*.10000000000000009/(s*i);else{h[z>>3]=k+g/(s*f);g=(+h[e>>3]-j)*.10000000000000009;f=i}h[B>>3]=+h[B>>3]-g/(s*f);r=13;break}default:{}}if((r|0)==13)a[b+537>>0]=1;B=b+560|0;c[B>>2]=c[e>>2];c[B+4>>2]=c[e+4>>2];c[B+8>>2]=c[e+8>>2];c[B+12>>2]=c[e+12>>2];l=C;return}function HS(b,c,d){b=b|0;c=c|0;d=d|0;a[b+538>>0]=0;a[b+541>>0]=0;return}function IS(b,d){b=b|0;d=d|0;var e=0.0,f=0,g=0.0,i=0.0,j=0.0,k=0,m=0,n=0,o=0.0;n=l;l=l+16|0;f=n;m=b+560|0;e=(+h[d>>3]-+h[m>>3])/+h[b+520>>3];g=(+h[d+8>>3]-+h[b+568>>3])/+h[b+528>>3];if(!(+F(+e)<.0001?+F(+g)<.0001:0)){switch(a[b+541>>0]|0){case 0:{c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];OS(b,f);break}case 2:{f=b+336|0;o=+h[b+352>>3];j=+h[f>>3];i=e/o;k=b+344|0;e=g/o;g=+h[k>>3];if(!(c[b+360>>2]|0)){h[f>>3]=j-i;e=g-e}else{h[f>>3]=j-e;e=i+g}h[k>>3]=e;a[b+537>>0]=1;break}default:{}}c[m>>2]=c[d>>2];c[m+4>>2]=c[d+4>>2];c[m+8>>2]=c[d+8>>2];c[m+12>>2]=c[d+12>>2]}l=n;return}function JS(a,b,c){a=a|0;b=b|0;c=c|0;return}function KS(a){a=a|0;return}function LS(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=c[b>>2]|0;if(d){d=f4(d,139124)|0;if(d|0){i=hF(d,0)|0;l4(d)|0;f=5}}else{i=hF(c[15808]|0,0)|0;f=5}if((f|0)==5?i|0:0){g=j+168|0;d=c[g>>2]|0;if(d|0){f=c[j+172>>2]|0;if((f|0)!=0?(h=c[f+4>>2]|0,(h|0)!=0):0){db[h&127](d);d=c[g>>2]|0}tK(d);pB(c[g>>2]|0)|0}WC(i,0,137786,280,1);WC(i,1,137750,304,1);WC(i,2,137763,176,1);c[g>>2]=i;c[(c[i+16>>2]|0)+144>>2]=j;if((lG(j,i,e)|0)!=-1){c[b+580>>2]=0;c[b+576>>2]=0;a[b+537>>0]=1}}return}function MS(a,b){a=a|0;b=b|0;a=c[a>>2]|0;lG(a,c[a+168>>2]|0,b)|0;return}function NS(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=c[a>>2]|0;f=g+160|0;e=c[f>>2]|0;if((e|0)!=0?(c[g+164>>2]|0)==0:0){i=g+192|0;h=c[i>>2]|0;c[f>>2]=0;c[i>>2]=0;f=h}else{f=0;e=0}nG(g,c[g+168>>2]|0,b,d)|0;if(e|0){i=c[a>>2]|0;c[i+160>>2]=e;c[i+192>>2]=f}return}function OS(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,i=0.0,j=0.0,k=0.0,m=0;f=l;l=l+80|0;e=f+48|0;g=f;m=f+32|0;c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];c[e+12>>2]=c[d+12>>2];PS(m,b,e);k=+h[m>>3];j=+h[m+8>>3];i=1.0/+h[b+352>>3];h[g+16>>3]=k+i;h[g+24>>3]=j+i;h[g>>3]=k-i;h[g+8>>3]=j-i;d=c[(c[b>>2]|0)+168>>2]|0;c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];c[e+8>>2]=c[g+8>>2];c[e+12>>2]=c[g+12>>2];c[e+16>>2]=c[g+16>>2];c[e+20>>2]=c[g+20>>2];c[e+24>>2]=c[g+24>>2];c[e+28>>2]=c[g+28>>2];d=QS(d,e)|0;e=b+576|0;if((d|0)!=(c[e>>2]|0)){RS(b);c[e>>2]=d;SS(b);a[b+537>>0]=1}l=f;return}function PS(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,g=0.0,i=0.0;e=+h[b+352>>3];g=+h[d>>3];i=e*+h[b+520>>3];e=+h[d+8>>3]/(e*+h[b+528>>3]);if(!(c[b+360>>2]|0))f=g/i;else{f=e;e=-g/i}i=e-+h[b+512>>3];h[a>>3]=f-+h[b+504>>3];h[a+8>>3]=i;return}function QS(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=l;l=l+32|0;f=g;e=gC(a)|0;a:while(1){if(!e){e=9;break}d=UA(a,e)|0;while(1){if(!d)break;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];c[f+16>>2]=c[b+16>>2];c[f+20>>2]=c[b+20>>2];c[f+24>>2]=c[b+24>>2];c[f+28>>2]=c[b+28>>2];if((hQ(d,f)|0)<<24>>24){e=6;break a}d=WA(a,d)|0}e=hC(a,e)|0}do if((e|0)!=6)if((e|0)==9){d=iC(a)|0;while(1){if(!d)break;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];c[f+16>>2]=c[b+16>>2];c[f+20>>2]=c[b+20>>2];c[f+24>>2]=c[b+24>>2];c[f+28>>2]=c[b+28>>2];if((eQ(d,f)|0)<<24>>24){e=12;break}d=jC(a,d)|0}if((e|0)==12)break;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];c[f+16>>2]=c[b+16>>2];c[f+20>>2]=c[b+20>>2];c[f+24>>2]=c[b+24>>2];c[f+28>>2]=c[b+28>>2];d=TS(a,f)|0;if(!d){d=a;break}else break}while(0);l=g;return d|0}function RS(b){b=b|0;var d=0;d=c[b+576>>2]|0;a:do if(d|0)switch(FC(d)|0){case 0:{d=(c[d+16>>2]|0)+112|0;a[d>>0]=a[d>>0]&-2;break a}case 1:{d=(c[d+16>>2]|0)+117|0;a[d>>0]=a[d>>0]&-2;break a}case 2:{d=(c[d+16>>2]|0)+115|0;a[d>>0]=a[d>>0]&-2;break a}default:break a}while(0);c[b+584>>2]=0;return}function SS(b){b=b|0;var d=0,e=0;e=b+584|0;d=c[e>>2]|0;if(d|0){l6(d);c[e>>2]=0}d=c[b+576>>2]|0;a:do if(d|0)switch(FC(d)|0){case 0:{b=(c[d+16>>2]|0)+112|0;a[b>>0]=a[b>>0]|1;b=DA(d,0,141404,0)|0;if(!b)break a;c[e>>2]=CK(OA(d,b)|0,d)|0;break a}case 1:{b=(c[d+16>>2]|0)+117|0;a[b>>0]=a[b>>0]|1;b=DA(uC(d)|0,1,141404,0)|0;if(!b)break a;c[e>>2]=CK(OA(d,b)|0,d)|0;break a}case 2:{b=(c[d+16>>2]|0)+115|0;a[b>>0]=a[b>>0]|1;b=DA(uC(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)|0,2,141404,0)|0;if(!b)break a;c[e>>2]=CK(OA(d,b)|0,d)|0;break a}default:break a}while(0);return}function TS(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0.0,o=0.0;m=l;l=l+32|0;e=m;g=c[a+16>>2]|0;i=c[g+180>>2]|0;j=g+184|0;d=1;while(1){if((d|0)>(i|0)){k=4;break}f=c[(c[j>>2]|0)+(d<<2)>>2]|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[e+20>>2]=c[b+20>>2];c[e+24>>2]=c[b+24>>2];c[e+28>>2]=c[b+28>>2];f=TS(f,e)|0;if(!f)d=d+1|0;else{a=f;break}}do if((k|0)==4){o=+h[g+24>>3];n=+h[g+40>>3];if(((+h[b+16>>3]>=+h[g+16>>3]?+h[g+32>>3]>=+h[b>>3]:0)?+h[b+24>>3]>=o:0)?n>=+h[b+8>>3]:0)break;a=0}while(0);l=m;return a|0}function US(b){b=b|0;var d=0,e=0,f=0;f=b+580|0;d=c[f>>2]|0;a:do if(d|0)switch(FC(d)|0){case 0:{e=(c[d+16>>2]|0)+112|0;a[e>>0]=a[e>>0]&-7|4;break a}case 1:{e=(c[d+16>>2]|0)+117|0;a[e>>0]=a[e>>0]&-7|4;break a}case 2:{e=(c[d+16>>2]|0)+115|0;a[e>>0]=a[e>>0]&-7|4;break a}default:break a}while(0);d=b+588|0;e=c[d>>2]|0;if(e|0){l6(e);c[d>>2]=0}d=c[b+576>>2]|0;c[f>>2]=d;b:do if(d|0)switch(FC(d)|0){case 0:{f=(c[d+16>>2]|0)+112|0;a[f>>0]=a[f>>0]|2;VS(b,d);break b}case 1:{f=(c[d+16>>2]|0)+117|0;a[f>>0]=a[f>>0]|2;WS(b,d);break b}case 2:{f=(c[d+16>>2]|0)+115|0;a[f>>0]=a[f>>0]|2;XS(b,d);break b}default:break b}while(0);return}function VS(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=a+592|0;do if((vC(b)|0)==(b|0))if(!(uB(b)|0)){EF(d,0,111795);break}else{EF(d,0,111787);break}else EF(d,0,111801);while(0);EF(d,1,HB(b)|0);c[a+596>>2]=2;f=a+604|0;d=0;e=2;while(1){d=IA(b,0,d)|0;if(!d)break;EF(f,e,c[d+8>>2]|0);EF(f,e+1|0,OA(b,d)|0);EF(f,e+2|0,0);e=e+3|0}c[a+608>>2]=e;d=DA(b,0,141358,0)|0;if(!d){d=DA(b,0,111778,0)|0;if(d|0)g=11}else g=11;if((g|0)==11)c[a+588>>2]=CK(OA(b,d)|0,b)|0;return}function WS(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=a+592|0;EF(f,0,111782);EF(f,1,HB(b)|0);c[a+596>>2]=2;f=a+604|0;g=vC(uC(b)|0)|0;e=2;d=0;while(1){d=IA(g,1,d)|0;if(!d)break;EF(f,e,c[d+8>>2]|0);EF(f,e|1,OA(b,d)|0);e=e+2|0}c[a+608>>2]=e;d=DA(uC(b)|0,1,141358,0)|0;if(!d){d=DA(uC(b)|0,1,111778,0)|0;if(d|0)h=6}else h=6;if((h|0)==6)c[a+588>>2]=CK(OA(b,d)|0,b)|0;return}function XS(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=a+592|0;EF(h,0,111751);k=b+48|0;EF(h,1,HB(c[((c[b>>2]&3|0)==3?b:k)+40>>2]|0)|0);k=(uB(uC(c[((c[b>>2]&3|0)==3?b:k)+40>>2]|0)|0)|0)!=0;EF(h,3,k?138041:142050);k=b+-48|0;EF(h,4,HB(c[((c[b>>2]&3|0)==2?b:k)+40>>2]|0)|0);c[a+596>>2]=7;i=a+604|0;j=vC(uC(c[((c[b>>2]&3|0)==2?b:k)+40>>2]|0)|0)|0;g=7;d=0;a:while(1){while(1){d=IA(j,2,d)|0;if(!d)break a;e=d+8|0;f=c[e>>2]|0;if(!(f2(f,111756)|0)){l=5;break}if(!(f2(f,111765)|0)){l=7;break}if(f2(f,111774)|0)break;EF(h,6,OA(b,d)|0)}if((l|0)==5){l=0;EF(h,2,OA(b,d)|0)}else if((l|0)==7){l=0;EF(h,5,OA(b,d)|0)}EF(i,g,c[e>>2]|0);EF(i,g+1|0,OA(b,d)|0);g=g+2|0}c[a+608>>2]=g;d=DA(uC(c[((c[b>>2]&3|0)==2?b:k)+40>>2]|0)|0,2,141358,0)|0;if(!d){d=DA(uC(c[((c[b>>2]&3|0)==2?b:k)+40>>2]|0)|0,2,111778,0)|0;if(d|0)l=13}else l=13;if((l|0)==13)c[a+588>>2]=CK(OA(b,d)|0,b)|0;return}function YS(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=ZS(a,b,c[d>>2]|0)|0;d=c[d+4>>2]|0;while(1){f=c[d+4>>2]|0;if(!f)break;b=0;while(1){e=c[f+(b*20|0)+4>>2]|0;if(!e)break;HF(a,c[d>>2]|0,e,c[f+(b*20|0)+8>>2]|0,g,f+(b*20|0)|0)|0;b=b+1|0}d=d+8|0}return}function ZS(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=IK(12)|0;if(!b)b=0;else b=Y3(b)|0;c[e+4>>2]=b;c[e+8>>2]=Y3(d)|0;d=a+100|0;c[e>>2]=c[d>>2];c[d>>2]=e;return e|0}function _S(b,c){b=b|0;c=c|0;$S(b);a[b+44>>0]=0;aT(b)|0;NO(b)|0;return}function $S(b){b=b|0;var d=0,e=0;d=c[b+32>>2]|0;a:do if(d|0)while(1){e=c[d>>2]|0;if(!e)break a;if((a[e>>0]|0)==103?C4(e,111810)|0:0)YS(b,0,c[d+4>>2]|0);d=d+8|0}while(0);return}function aT(a){a=a|0;var b=0;b=JF(a,2,111823)|0;if(!b)a=999;else{c[a+148>>2]=c[(c[b+16>>2]|0)+12>>2];a=300}return a|0}function bT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a=c[a+148>>2]|0;if((a|0)!=0?(e=c[a>>2]|0,(e|0)!=0):0)a=vb[e&127](b,d)|0;else a=0;return a|0}function cT(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;return (c[b>>2]|0)-(c[d>>2]|0)|0}function dT(a){a=a|0;var b=0.0,d=0.0;a=c[a+16>>2]|0;d=+h[a+16>>3];b=+h[a+24>>3];return (eT(~~(d>b?d:b)>>>0)|0)+1|0}function eT(a){a=a|0;var b=0,c=0;if(!a)a=-1;else{b=a>>>0>65535;c=b?a>>>16:a;a=b?16:0;b=c>>>0>255;c=b?c>>>8:c;a=b?a|8:a;b=c>>>0>15;c=b?c>>>4:c;a=b?a|4:a;b=c>>>0>3;a=((b?c>>>2:c)>>>0>1&1)+(b?a|2:a)|0}return a|0}function fT(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0.0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+32|0;q=r;p=gT(b,d,e,f,g)|0;e=hT(p)|0;if((e|0)>=0){n=q+16|0;o=q+24|0;m=q+8|0;k=g+32|0;e=0;g=0;while(1){if((g|0)>=(d|0))break;f=b+(g*40|0)+32|0;do if(c[f>>2]|0){iT(q,p,b+(g*40|0)|0);i=+h[n>>3];j=+h[o>>3];if(!(c[q>>2]|0)){a[(c[f>>2]|0)+36>>0]=1;break}if(+h[m>>3]==0.0){f=c[f>>2]|0;h[f+16>>3]=i;h[f+24>>3]=j;a[f+36>>0]=1;break}if((a[k>>0]|0)==1){f=c[f>>2]|0;h[f+16>>3]=i;h[f+24>>3]=j;a[f+36>>0]=1}else e=1}while(0);g=g+1|0}jT(p)}l=r;return e|0}function gT(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;g=HK(28)|0;j=Sz(25964,c[4594]|0)|0;h=g+20|0;c[h>>2]=j;do if(j){j=RV()|0;c[g+24>>2]=j;if(!j){_3(112041,14,1,c[15715]|0)|0;i=6;break}else{c[g>>2]=a;c[g+4>>2]=b;c[g+8>>2]=d;c[g+12>>2]=e;c[g+16>>2]=f;break}}else{_3(112041,14,1,c[15715]|0)|0;i=6}while(0);if((i|0)==6){a=c[h>>2]|0;if(a|0)Oz(a)|0;a=c[g+24>>2]|0;if(a|0)TV(a)|0;l6(g);g=0}return g|0}function hT(a){a=a|0;var b=0;b=sT(a)|0;if((b|0)>=0){tT(a);uT(a);b=Oz(c[a+20>>2]|0)|0}return b|0}function iT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,i=0.0,j=0,k=0.0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0.0,N=0,O=0;O=l;l=l+464|0;L=O+416|0;N=O+400|0;I=O+384|0;j=O+352|0;n=O+320|0;o=O+288|0;p=O+256|0;r=O+224|0;s=O+192|0;t=O+160|0;u=O+128|0;v=O+96|0;w=O+64|0;x=O+32|0;J=O;y=c[d+32>>2]|0;e=+h[y>>3];B=d+16|0;z=(e*2.0+ +h[B>>3])*.125;C=y+8|0;K=d+24|0;i=+h[K>>3];M=(+h[C>>3]*2.0+i)*.5;if(!y)Aa(111834,111844,445,111854);f=L;g=f+36|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));A=y+16|0;h[A>>3]=+h[d>>3]-e;D=d+8|0;E=y+24|0;h[E>>3]=i+ +h[D>>3];kT(j,b,d,L);m=c[j>>2]|0;f=c[j+4>>2]|0;e=+h[j+8>>3];H=j+16|0;c[N>>2]=c[H>>2];c[N+4>>2]=c[H+4>>2];c[N+8>>2]=c[H+8>>2];c[N+12>>2]=c[H+12>>2];H=a+16|0;G=a+8|0;F=a+4|0;a:do if(!m){c[a>>2]=0;c[F>>2]=f;h[G>>3]=e;c[H>>2]=c[N>>2];c[H+4>>2]=c[N+4>>2];c[H+8>>2]=c[N+8>>2];c[H+12>>2]=c[N+12>>2]}else{h[E>>3]=+h[D>>3];kT(n,b,d,L);g=c[n>>2]|0;j=c[n+4>>2]|0;i=+h[n+8>>3];n=n+16|0;c[I>>2]=c[n>>2];c[I+4>>2]=c[n+4>>2];c[I+8>>2]=c[n+8>>2];c[I+12>>2]=c[n+12>>2];if(!g){c[a>>2]=0;c[F>>2]=j;h[G>>3]=i;c[H>>2]=c[I>>2];c[H+4>>2]=c[I+4>>2];c[H+8>>2]=c[I+8>>2];c[H+12>>2]=c[I+12>>2];break}if(i<e){c[N>>2]=c[I>>2];c[N+4>>2]=c[I+4>>2];c[N+8>>2]=c[I+8>>2];c[N+12>>2]=c[I+12>>2];f=j;e=i}else g=m;h[E>>3]=+h[D>>3]-+h[C>>3];kT(o,b,d,L);m=c[o>>2]|0;j=c[o+4>>2]|0;i=+h[o+8>>3];o=o+16|0;c[I>>2]=c[o>>2];c[I+4>>2]=c[o+4>>2];c[I+8>>2]=c[o+8>>2];c[I+12>>2]=c[o+12>>2];if(!m){c[a>>2]=0;c[F>>2]=j;h[G>>3]=i;c[H>>2]=c[I>>2];c[H+4>>2]=c[I+4>>2];c[H+8>>2]=c[I+8>>2];c[H+12>>2]=c[I+12>>2];break}if(i<e){c[N>>2]=c[I>>2];c[N+4>>2]=c[I+4>>2];c[N+8>>2]=c[I+8>>2];c[N+12>>2]=c[I+12>>2];f=j;e=i}else m=g;h[A>>3]=+h[d>>3];h[E>>3]=+h[D>>3]+ +h[K>>3];kT(p,b,d,L);g=c[p>>2]|0;j=c[p+4>>2]|0;i=+h[p+8>>3];p=p+16|0;c[I>>2]=c[p>>2];c[I+4>>2]=c[p+4>>2];c[I+8>>2]=c[p+8>>2];c[I+12>>2]=c[p+12>>2];if(!g){c[a>>2]=0;c[F>>2]=j;h[G>>3]=i;c[H>>2]=c[I>>2];c[H+4>>2]=c[I+4>>2];c[H+8>>2]=c[I+8>>2];c[H+12>>2]=c[I+12>>2];break}if(i<e){c[N>>2]=c[I>>2];c[N+4>>2]=c[I+4>>2];c[N+8>>2]=c[I+8>>2];c[N+12>>2]=c[I+12>>2];m=g;f=j;e=i}h[E>>3]=+h[D>>3]-+h[C>>3];kT(r,b,d,L);g=c[r>>2]|0;j=c[r+4>>2]|0;i=+h[r+8>>3];r=r+16|0;c[I>>2]=c[r>>2];c[I+4>>2]=c[r+4>>2];c[I+8>>2]=c[r+8>>2];c[I+12>>2]=c[r+12>>2];if(!g){c[a>>2]=0;c[F>>2]=j;h[G>>3]=i;c[H>>2]=c[I>>2];c[H+4>>2]=c[I+4>>2];c[H+8>>2]=c[I+8>>2];c[H+12>>2]=c[I+12>>2];break}if(i<e){c[N>>2]=c[I>>2];c[N+4>>2]=c[I+4>>2];c[N+8>>2]=c[I+8>>2];c[N+12>>2]=c[I+12>>2];m=g;f=j;e=i}h[A>>3]=+h[d>>3]+ +h[B>>3];h[E>>3]=+h[D>>3]+ +h[K>>3];kT(s,b,d,L);g=c[s>>2]|0;j=c[s+4>>2]|0;i=+h[s+8>>3];s=s+16|0;c[I>>2]=c[s>>2];c[I+4>>2]=c[s+4>>2];c[I+8>>2]=c[s+8>>2];c[I+12>>2]=c[s+12>>2];if(!g){c[a>>2]=0;c[F>>2]=j;h[G>>3]=i;c[H>>2]=c[I>>2];c[H+4>>2]=c[I+4>>2];c[H+8>>2]=c[I+8>>2];c[H+12>>2]=c[I+12>>2];break}if(i<e){c[N>>2]=c[I>>2];c[N+4>>2]=c[I+4>>2];c[N+8>>2]=c[I+8>>2];c[N+12>>2]=c[I+12>>2];m=g;f=j;e=i}h[E>>3]=+h[D>>3];kT(t,b,d,L);g=c[t>>2]|0;j=c[t+4>>2]|0;i=+h[t+8>>3];t=t+16|0;c[I>>2]=c[t>>2];c[I+4>>2]=c[t+4>>2];c[I+8>>2]=c[t+8>>2];c[I+12>>2]=c[t+12>>2];if(!g){c[a>>2]=0;c[F>>2]=j;h[G>>3]=i;c[H>>2]=c[I>>2];c[H+4>>2]=c[I+4>>2];c[H+8>>2]=c[I+8>>2];c[H+12>>2]=c[I+12>>2];break}if(i<e){c[N>>2]=c[I>>2];c[N+4>>2]=c[I+4>>2];c[N+8>>2]=c[I+8>>2];c[N+12>>2]=c[I+12>>2];m=g;f=j;e=i}h[E>>3]=+h[D>>3]-+h[C>>3];kT(u,b,d,L);g=c[u>>2]|0;j=c[u+4>>2]|0;i=+h[u+8>>3];u=u+16|0;c[I>>2]=c[u>>2];c[I+4>>2]=c[u+4>>2];c[I+8>>2]=c[u+8>>2];c[I+12>>2]=c[u+12>>2];if(!g){c[a>>2]=0;c[F>>2]=j;h[G>>3]=i;c[H>>2]=c[I>>2];c[H+4>>2]=c[I+4>>2];c[H+8>>2]=c[I+8>>2];c[H+12>>2]=c[I+12>>2];break}if(i<e){c[N>>2]=c[I>>2];c[N+4>>2]=c[I+4>>2];c[N+8>>2]=c[I+8>>2];c[N+12>>2]=c[I+12>>2];f=j;e=i}else g=m;t=L+12|0;u=L+32|0;n=(c[L+28>>2]|0)!=0;o=(c[u>>2]|0)==0;j=c[t>>2]|0;m=c[L>>2]|0;do if(!(o&(((c[L+24>>2]|0)!=0|n)^1)&(j|0)==0&(m|0)==0)){do if(o&(n^1)){h[A>>3]=+h[d>>3]-+h[y>>3];p=v+4|0;r=v+8|0;s=v+16|0;m=E;j=D;i=+h[K>>3];b:while(1){while(1){h[m>>3]=i+ +h[j>>3];if(!(+h[A>>3]<=+h[d>>3]+ +h[B>>3])){n=42;break b}kT(v,b,d,L);n=c[v>>2]|0;o=c[p>>2]|0;k=+h[r>>3];c[I>>2]=c[s>>2];c[I+4>>2]=c[s+4>>2];c[I+8>>2]=c[s+8>>2];c[I+12>>2]=c[s+12>>2];if(!n){n=39;break b}if(k<e)break;else{m=A;j=A;i=z}}c[N>>2]=c[I>>2];c[N+4>>2]=c[I+4>>2];c[N+8>>2]=c[I+8>>2];c[N+12>>2]=c[I+12>>2];m=A;j=A;i=z;g=n;f=o;e=k}if((n|0)==39){c[a>>2]=0;c[F>>2]=o;h[G>>3]=k;c[H>>2]=c[I>>2];c[H+4>>2]=c[I+4>>2];c[H+8>>2]=c[I+8>>2];c[H+12>>2]=c[I+12>>2];break a}else if((n|0)==42){j=c[t>>2]|0;m=c[L>>2]|0;break}}while(0);if(!((j|0)==0&(m|0)==0))break;h[A>>3]=+h[d>>3]-+h[y>>3];k=+h[D>>3];n=w+4|0;o=w+8|0;p=w+16|0;i=k;k=k+ +h[K>>3];while(1){h[E>>3]=k;if(!(k>=i-+h[C>>3])){n=51;break}kT(w,b,d,L);j=c[w>>2]|0;m=c[n>>2]|0;i=+h[o>>3];c[I>>2]=c[p>>2];c[I+4>>2]=c[p+4>>2];c[I+8>>2]=c[p+8>>2];c[I+12>>2]=c[p+12>>2];if(!j){n=47;break}if(i<e){c[N>>2]=c[I>>2];c[N+4>>2]=c[I+4>>2];c[N+8>>2]=c[I+8>>2];c[N+12>>2]=c[I+12>>2];g=j;f=m;e=i}i=+h[D>>3];k=+h[E>>3]-M}if((n|0)==47){c[a>>2]=0;c[F>>2]=m;h[G>>3]=i;c[H>>2]=c[I>>2];c[H+4>>2]=c[I+4>>2];c[H+8>>2]=c[I+8>>2];c[H+12>>2]=c[I+12>>2];break a}else if((n|0)==51){m=c[L>>2]|0;break}}else m=0;while(0);i=+h[d>>3];k=i+ +h[B>>3];h[A>>3]=k;q=+h[C>>3];h[E>>3]=+h[D>>3]-q;t=L+20|0;o=(c[L+4>>2]|0)!=0;n=(m|0)==0;m=c[t>>2]|0;j=c[u>>2]|0;c:do if(!(n&(((c[L+8>>2]|0)!=0|o)^1)&(m|0)==0&(j|0)==0)){do if(n&(o^1)){h[A>>3]=k;p=x+4|0;r=x+8|0;s=x+16|0;m=E;j=D;i=q;d:while(1){while(1){h[m>>3]=+h[j>>3]-i;i=+h[d>>3];if(!(+h[A>>3]>=i-+h[y>>3])){n=61;break d}kT(x,b,d,L);n=c[x>>2]|0;o=c[p>>2]|0;k=+h[r>>3];c[I>>2]=c[s>>2];c[I+4>>2]=c[s+4>>2];c[I+8>>2]=c[s+8>>2];c[I+12>>2]=c[s+12>>2];if(!n){n=58;break d}if(k<e)break;else{m=A;j=A;i=z}}c[N>>2]=c[I>>2];c[N+4>>2]=c[I+4>>2];c[N+8>>2]=c[I+8>>2];c[N+12>>2]=c[I+12>>2];m=A;j=A;i=z;g=n;f=o;e=k}if((n|0)==58){c[a>>2]=0;c[F>>2]=o;h[G>>3]=k;c[H>>2]=c[I>>2];c[H+4>>2]=c[I+4>>2];c[H+8>>2]=c[I+8>>2];c[H+12>>2]=c[I+12>>2];break a}else if((n|0)==61){m=c[t>>2]|0;j=c[u>>2]|0;break}}while(0);if(!((m|0)==0&(j|0)==0))break;h[A>>3]=i+ +h[B>>3];i=+h[D>>3];n=J+4|0;o=J+8|0;p=J+16|0;k=i;i=i-+h[C>>3];while(1){h[E>>3]=i;if(!(i<=k+ +h[K>>3]))break c;kT(J,b,d,L);j=c[J>>2]|0;m=c[n>>2]|0;i=+h[o>>3];c[I>>2]=c[p>>2];c[I+4>>2]=c[p+4>>2];c[I+8>>2]=c[p+8>>2];c[I+12>>2]=c[p+12>>2];if(!j)break;if(i<e){c[N>>2]=c[I>>2];c[N+4>>2]=c[I+4>>2];c[N+8>>2]=c[I+8>>2];c[N+12>>2]=c[I+12>>2];g=j;f=m;e=i}k=+h[D>>3];i=M+ +h[E>>3]}c[a>>2]=0;c[F>>2]=m;h[G>>3]=i;c[H>>2]=c[I>>2];c[H+4>>2]=c[I+4>>2];c[H+8>>2]=c[I+8>>2];c[H+12>>2]=c[I+12>>2];break a}while(0);c[a>>2]=g;c[F>>2]=f;h[G>>3]=e;c[H>>2]=c[N>>2];c[H+4>>2]=c[N+4>>2];c[H+8>>2]=c[N+8>>2];c[H+12>>2]=c[N+12>>2]}while(0);l=O;return}function jT(a){a=a|0;TV(c[a+24>>2]|0)|0;l6(a);return}function kT(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0.0,j=0,k=0,m=0,n=0.0,o=0,p=0,q=0,r=0.0,s=0,t=0;t=l;l=l+48|0;q=t+32|0;s=t+16|0;p=t;g=c[e+32>>2]|0;if(!g)Aa(111834,111844,382,111863);o=g+16|0;c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2];o=d+4|0;m=0;g=0;while(1){if((m|0)>=(c[o>>2]|0))break;j=c[d>>2]|0;k=j+(m*40|0)|0;do if((k|0)!=(e|0)){if(+h[j+(m*40|0)+16>>3]>0.0?+h[j+(m*40|0)+24>>3]>0.0:0)break;g=((lT(e,k)|0)!=0&1)+g|0}while(0);m=m+1|0}mT(e,q);m=c[d+24>>2]|0;m=VV(m,c[m>>2]|0,q)|0;if(!m){c[b>>2]=g;h[b+8>>3]=0.0;s=b+16|0;c[s>>2]=c[p>>2];c[s+4>>2]=c[p+4>>2];c[s+8>>2]=c[p+8>>2];c[s+12>>2]=c[p+12>>2]}else{k=m;i=0.0;while(1){if(!k)break;j=c[(c[k+4>>2]|0)+16>>2]|0;if((j|0)!=(e|0)){nT(j,s);n=+oT(q,s);if(n>0.0){g=g+1|0;i=i+ +pT(e,j,q,n,f)}d=c[j+32>>2]|0;if(((d|0)!=0?(a[d+36>>0]|0)!=0:0)?(mT(j,s),r=+oT(q,s),r>0.0):0){g=g+1|0;i=i+ +qT(e,j,q,r,f)}}k=c[k>>2]|0}QV(m);c[b>>2]=g;h[b+8>>3]=i;s=b+16|0;c[s>>2]=c[p>>2];c[s+4>>2]=c[p+4>>2];c[s+8>>2]=c[p+8>>2];c[s+12>>2]=c[p+12>>2]}l=t;return}function lT(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,g=0.0;a=c[a+32>>2]|0;if(+h[b+16>>3]==0.0?+h[b+24>>3]==0.0:0){if(!a)a=0;else{g=+h[b>>3];f=+h[a+16>>3];if((g>f?g<f+ +h[a>>3]:0)?(d=+h[b+8>>3],e=+h[a+24>>3],d>e):0)a=d<e+ +h[a+8>>3];else a=0;a=a&1}return a|0}Aa(111900,111844,219,111937);return 0}function mT(a,b){a=a|0;b=b|0;var d=0.0,e=0.0;a=c[a+32>>2]|0;e=+h[a+16>>3];c[b>>2]=~~e;d=+h[a+24>>3];c[b+4>>2]=~~d;c[b+8>>2]=~~(e+ +h[a>>3]);c[b+12>>2]=~~(d+ +h[a+8>>3]);return}function nT(a,b){a=a|0;b=b|0;var d=0.0,e=0.0;e=+h[a>>3];c[b>>2]=~~e;d=+h[a+8>>3];c[b+4>>2]=~~d;c[b+8>>2]=~~(e+ +h[a+16>>3]);c[b+12>>2]=~~(d+ +h[a+24>>3]);return}function oT(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=c[a+8>>2]|0;j=c[b>>2]|0;if((((i|0)>=(j|0)?(k=c[a>>2]|0,l=c[b+8>>2]|0,(k|0)<=(l|0)):0)?(e=c[a+12>>2]|0,f=c[b+4>>2]|0,(e|0)>=(f|0)):0)?(g=c[a+4>>2]|0,h=c[b+12>>2]|0,(g|0)<=(h|0)):0)d=(+(c[((i|0)<(l|0)?a:b)+8>>2]|0)-+(c[((k|0)>(j|0)?a:b)>>2]|0))*(+(c[((e|0)<(h|0)?a:b)+12>>2]|0)-+(c[((g|0)>(f|0)?a:b)+4>>2]|0));else d=0.0;return +d}function pT(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;var g=0.0,h=0.0,i=0,j=0;j=l;l=l+16|0;i=j;a=rT(a,b)|0;f=f+(((a|0)<0?5:a)<<2)|0;a=c[f>>2]|0;if(!a){c[f>>2]=b;g=e}else{nT(a,i);g=+oT(d,i);g=g>e?g:0.0;a=c[f>>2]|0;if((c[a+32>>2]|0)!=0?(mT(a,i),h=+oT(d,i),h>e):0)g=h>g?h:g;if(!(g>0.0)){c[f>>2]=b;g=e}}l=j;return +g}function qT(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;var g=0.0,h=0.0,i=0,j=0;j=l;l=l+16|0;i=j;a=rT(a,b)|0;f=f+(((a|0)<0?5:a)<<2)|0;a=c[f>>2]|0;if(!a){c[f>>2]=b;g=e}else{nT(a,i);g=+oT(d,i);g=g>e?g:0.0;a=c[f>>2]|0;if((c[a+32>>2]|0)!=0?(mT(a,i),h=+oT(d,i),h>e):0)g=h>g?h:g;if(!(g>0.0)){c[f>>2]=b;g=e}}l=j;return +g}function rT(b,d){b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0.0,j=0.0,k=0.0;e=c[b+32>>2]|0;f=c[d+32>>2]|0;if((e|0)==(f|0))Aa(111879,111844,276,111889);do if((a[e+36>>0]|0)!=0?(a[f+36>>0]|0)!=0:0){k=+h[b>>3];e=b+8|0;if(k==0.0?+h[e>>3]==0.0:0){e=-1;break}i=+h[d>>3];j=+h[d+8>>3];if(!(i==0.0&j==0.0)){g=+h[e>>3];f=i<k;e=i>k;if(j<g){if(f){e=0;break}e=e?2:1;break}if(!(j>g))return (f|e^1?(f?3:-1):5)|0;if(f)e=6;else e=e?8:7}else e=-1}else e=-1;while(0);return e|0}function sT(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;k=l;l=l+32|0;d=k+24|0;e=k+16|0;f=k;g=dT(a)|0;h=a+4|0;i=e+4|0;j=a+20|0;b=0;while(1){if((b|0)>=(c[h>>2]|0)){b=0;break}m=HK(32)|0;o=(c[a>>2]|0)+(b*40|0)|0;n=m+12|0;c[m+28>>2]=o;vT(f,o);c[n>>2]=c[f>>2];c[n+4>>2]=c[f+4>>2];c[n+8>>2]=c[f+8>>2];c[n+12>>2]=c[f+12>>2];n=c[n>>2]|0;c[e>>2]=(((c[m+20>>2]|0)-n|0)/2|0)+n;n=c[m+16>>2]|0;c[i>>2]=(((c[m+24>>2]|0)-n|0)/2|0)+n;c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[m+8>>2]=wT(d,g)|0;n=c[j>>2]|0;if(!(eb[c[n>>2]&63](n,m,1)|0)){b=-1;break}else b=b+1|0}l=k;return b|0}function tT(a){a=a|0;var b=0,d=0,e=0;d=a+20|0;e=c[d>>2]|0;b=a+24|0;a=eb[c[e>>2]&63](e,0,128)|0;while(1){if(!a)break;e=c[b>>2]|0;WV(e,a+12|0,c[a+28>>2]|0,e,0)|0;e=c[d>>2]|0;a=eb[c[e>>2]&63](e,a,8)|0}return}function uT(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;e=a+20|0;f=Uz(c[e>>2]|0)|0;d=0;while(1){if(!(Uz(c[e>>2]|0)|0))break;g=c[e>>2]|0;a=c[(c[g+8>>2]|0)+4>>2]|0;if(!a){h=8;break}b=c[(c[g+4>>2]|0)+8>>2]|0;if((b|0)<0)a=c[a+8>>2]|0;else a=a+(0-b)|0;if(!a){h=8;break}eb[c[g>>2]&63](g,a,4096)|0;l6(a);d=d+1|0}if((h|0)==8)Aa(111950,111844,616,111953);if((f|0)==(d|0))return;else Aa(111965,111844,623,111953)}function vT(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,g=0.0,i=0,j=0,k=0,l=0.0;d=c[b+32>>2]|0;if(!d){e=0.0;f=0.0}else{e=+h[d>>3];f=+h[d+8>>3]}l=+h[b>>3];k=~~+E(+(l-e));g=+h[b+8>>3];j=~~+E(+(g-f));i=~~+R(+(e+(l+ +h[b+16>>3])));if((i|0)==2147483647)Aa(111977,111844,264,112004);d=~~+R(+(f+(g+ +h[b+24>>3])));if((d|0)==2147483647)Aa(112014,111844,266,112004);else{c[a>>2]=k;c[a+4>>2]=j;c[a+8>>2]=i;c[a+12>>2]=d;return}}function wT(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=0;e=c[a>>2]|0;d=c[a+4>>2]|0;while(1){a=b+-1|0;if((b|0)<=0)break;i=e>>>a&1;b=d>>>a&1;g=b+-1|0;h=g&(e^d);g=g&0-i;f=i<<1|f<<2|i^b;b=a;e=h^e^g;d=h^d^g}return f|0}function xT(b){b=b|0;var d=0,e=0,f=0,g=0;d=D3(b)|0;if(d>>>0>=(c[47436]|0)>>>0){d=d+11|0;c[47436]=d;d=KK(c[47437]|0,d)|0;c[47437]=d;if(!d)d=0;else e=4}else{d=c[47437]|0;e=4}if((e|0)==4){g=d;while(1){e=a[b>>0]|0;if(!(e<<24>>24))break;f=e&255;if(S1(f)|0)e=(R1(f)|0)&255;a[g>>0]=e;g=g+1|0;b=b+1|0}a[g>>0]=0}return d|0}function yT(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,i=0.0,j=0.0,k=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0.0;N=l;l=l+144|0;s=N+96|0;q=N+80|0;v=N+124|0;t=N+72|0;w=N+64|0;x=N+56|0;K=N+48|0;L=N+40|0;M=N+32|0;G=N+24|0;H=N+16|0;I=N+8|0;J=N;k=N+120|0;n=N+116|0;o=N+112|0;p=N+108|0;c[e+32>>2]=f;while(1)if((a[b>>0]|0)==32)b=b+1|0;else break;c[p>>2]=255;g=a[b>>0]|0;y=e+12|0;z=e+8|0;A=e+4|0;B=e+24|0;C=e+16|0;D=e+1|0;E=e+2|0;F=e+3|0;a:do if(g<<24>>24==35){c[q>>2]=k;c[q+4>>2]=n;c[q+8>>2]=o;c[q+12>>2]=p;if((q4(b,112056,q)|0)<=2){g=a[b>>0]|0;r=12;break}switch(f|0){case 0:{O=+((c[k>>2]|0)>>>0)/255.0;h[K>>3]=O;i=+((c[n>>2]|0)>>>0)/255.0;h[L>>3]=i;j=+((c[o>>2]|0)>>>0)/255.0;h[M>>3]=j;m=+((c[p>>2]|0)>>>0)/255.0;zT(O,i,j,t,w,x);h[e>>3]=+h[t>>3];h[z>>3]=+h[w>>3];h[C>>3]=+h[x>>3];h[B>>3]=m;b=0;break a}case 1:{a[e>>0]=c[k>>2];a[D>>0]=c[n>>2];a[E>>0]=c[o>>2];a[F>>0]=c[p>>2];b=0;break a}case 3:{j=+((c[k>>2]|0)>>>0)/255.0;h[K>>3]=j;m=+((c[n>>2]|0)>>>0)/255.0;h[L>>3]=m;O=+((c[o>>2]|0)>>>0)/255.0;h[M>>3]=O;AT(j,m,O,G,H,I,J);a[e>>0]=~~+h[G>>3]*255;a[D>>0]=~~+h[H>>3]*255;a[E>>0]=~~+h[I>>3]*255;a[F>>0]=~~+h[J>>3]*255;b=0;break a}case 2:{c[e>>2]=(((c[k>>2]|0)*65535|0)>>>0)/255|0;c[A>>2]=(((c[n>>2]|0)*65535|0)>>>0)/255|0;c[z>>2]=(((c[o>>2]|0)*65535|0)>>>0)/255|0;c[y>>2]=(((c[p>>2]|0)*65535|0)>>>0)/255|0;b=0;break a}case 4:{h[e>>3]=+((c[k>>2]|0)>>>0)/255.0;h[z>>3]=+((c[n>>2]|0)>>>0)/255.0;h[C>>3]=+((c[o>>2]|0)>>>0)/255.0;h[B>>3]=+((c[p>>2]|0)>>>0)/255.0;b=0;break a}default:{b=0;break a}}}else r=12;while(0);b:do if((r|0)==12){if(!(g<<24>>24!=46?((g&255)+-48|0)>>>0>=10:0)){g=D3(b)|0;if(g>>>0>=(c[47438]|0)>>>0){g=g+11|0;c[47438]=g;g=KK(c[47439]|0,g)|0;c[47439]=g;if(!g){b=-1;break}}else g=c[47439]|0;n=g;k=b;c:while(1){o=k+1|0;k=a[k>>0]|0;switch(k<<24>>24){case 0:break c;case 44:{k=32;break}default:{}}a[n>>0]=k;n=n+1|0;k=o}a[n>>0]=0;c[s>>2]=t;c[s+4>>2]=w;c[s+8>>2]=x;if((q4(g,112070,s)|0)==3){m=+h[t>>3];m=m<1.0?m:1.0;m=m>0.0?m:0.0;h[t>>3]=m;j=+h[w>>3];j=j<1.0?j:1.0;j=j>0.0?j:0.0;h[w>>3]=j;i=+h[x>>3];i=i<1.0?i:1.0;i=i>0.0?i:0.0;h[x>>3]=i;switch(f|0){case 0:{h[e>>3]=m;h[z>>3]=j;h[C>>3]=i;h[B>>3]=1.0;b=0;break b}case 1:{BT(m,j,i,K,L,M);a[e>>0]=~~(+h[K>>3]*255.0);a[D>>0]=~~(+h[L>>3]*255.0);a[E>>0]=~~(+h[M>>3]*255.0);a[F>>0]=-1;b=0;break b}case 3:{BT(m,j,i,K,L,M);AT(+h[K>>3],+h[L>>3],+h[M>>3],G,H,I,J);a[e>>0]=~~+h[G>>3]*255;a[D>>0]=~~+h[H>>3]*255;a[E>>0]=~~+h[I>>3]*255;a[F>>0]=~~+h[J>>3]*255;b=0;break b}case 2:{BT(m,j,i,K,L,M);c[e>>2]=~~(+h[K>>3]*65535.0);c[A>>2]=~~(+h[L>>3]*65535.0);c[z>>2]=~~(+h[M>>3]*65535.0);c[y>>2]=65535;b=0;break b}case 4:{BT(m,j,i,K,L,M);h[e>>3]=+h[K>>3];h[z>>3]=+h[L>>3];h[C>>3]=+h[M>>3];h[B>>3]=1.0;b=0;break b}default:{b=0;break b}}}}b=CT(b)|0;c[v>>2]=b;if(!b)b=-1;else{g=c[47440]|0;if(((g|0)!=0?(u=c[g>>2]|0,(a[u>>0]|0)==(a[b>>0]|0)):0)?(f2(u,b)|0)==0:0)k=g;else{b=e6(v,26e3,2491,12,103)|0;c[47440]=b;if(!b)switch(f|0){case 0:{c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;h[B>>3]=1.0;b=1;break b}case 1:{a[E>>0]=0;a[D>>0]=0;a[e>>0]=0;a[F>>0]=-1;b=1;break b}case 3:{c[e>>2]=0;b=1;break b}case 2:{c[z>>2]=0;c[A>>2]=0;c[e>>2]=0;c[y>>2]=65535;b=1;break b}case 4:{c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;h[B>>3]=1.0;b=1;break b}default:{b=1;break b}}else{k=b;g=b}}b=k+7|0;switch(f|0){case 0:{h[e>>3]=+(d[k+4>>0]|0)/255.0;h[z>>3]=+(d[k+5>>0]|0)/255.0;h[C>>3]=+(d[k+6>>0]|0)/255.0;h[B>>3]=+(d[k+10>>0]|0)/255.0;b=0;break b}case 1:{a[e>>0]=a[b>>0]|0;a[D>>0]=a[g+8>>0]|0;a[E>>0]=a[g+9>>0]|0;a[F>>0]=a[g+10>>0]|0;b=0;break b}case 3:{j=+(d[b>>0]|0)/255.0;h[K>>3]=j;m=+(d[g+8>>0]|0)/255.0;h[L>>3]=m;O=+(d[g+9>>0]|0)/255.0;h[M>>3]=O;AT(j,m,O,G,H,I,J);a[e>>0]=~~+h[G>>3]*255;a[D>>0]=~~+h[H>>3]*255;a[E>>0]=~~+h[I>>3]*255;a[F>>0]=~~+h[J>>3]*255;b=0;break b}case 2:{c[e>>2]=(d[b>>0]|0)*257;c[A>>2]=(d[g+8>>0]|0)*257;c[z>>2]=(d[g+9>>0]|0)*257;c[y>>2]=(d[g+10>>0]|0)*257;b=0;break b}case 4:{h[e>>3]=+(d[b>>0]|0)/255.0;h[z>>3]=+(d[g+8>>0]|0)/255.0;h[C>>3]=+(d[g+9>>0]|0)/255.0;h[B>>3]=+(d[g+10>>0]|0)/255.0;b=0;break b}default:{b=0;break b}}}}while(0);l=N;return b|0}function zT(a,b,c,d,e,f){a=+a;b=+b;c=+c;d=d|0;e=e|0;f=f|0;var g=0.0,i=0.0,j=0.0,k=0.0,l=0.0;g=b<c?b:c;l=b>c?b:c;l=l<a?a:l;g=l-(g>a?a:g);k=l>0.0?g/l:0.0;if(k>0.0){i=(l-a)/g;j=(l-b)/g;g=(l-c)/g;do if(!(l==a)){if(l==b){g=i+2.0-g;break}if(l==c)g=j+4.0-i;else g=0.0}else g=g-j;while(0);g=g*60.0;if(g<0.0)g=g+360.0}else g=0.0;h[d>>3]=g/360.0;h[f>>3]=l;h[e>>3]=k;return}function AT(a,b,c,d,e,f,g){a=+a;b=+b;c=+c;d=d|0;e=e|0;f=f|0;g=g|0;h[d>>3]=1.0-a;h[e>>3]=1.0-b;h[f>>3]=1.0-c;b=+h[d>>3];c=+h[e>>3];c=b<c?b:c;h[g>>3]=c;b=+h[f>>3];c=b<c?b:c;h[g>>3]=c;h[d>>3]=+h[d>>3]-c;h[e>>3]=+h[e>>3]-+h[g>>3];h[f>>3]=+h[f>>3]-+h[g>>3];return}function BT(a,b,c,d,e,f){a=+a;b=+b;c=+c;d=d|0;e=e|0;f=f|0;var g=0.0,i=0.0,j=0.0,k=0,l=0;a:do if(!(b<=0.0)){i=!(a>=1.0)?a*6.0:0.0;l=~~i;i=i-+(l|0);a=(1.0-b)*c;j=(1.0-i*b)*c;b=(1.0-(1.0-i)*b)*c;switch(l|0){case 0:{g=a;i=b;a=c;k=8;break a}case 1:{g=a;i=c;a=j;k=8;break a}case 2:{g=b;i=c;k=8;break a}case 3:{g=c;i=j;k=8;break a}case 4:{g=c;i=a;a=b;k=8;break a}case 5:{g=j;i=a;a=c;k=8;break a}default:break a}}else{g=c;i=c;a=c;k=8}while(0);if((k|0)==8){h[d>>3]=a;h[e>>3]=i;h[f>>3]=g}return}function CT(b){b=b|0;var d=0,e=0;d=a[b>>0]|0;if(((d<<24>>24!=98?(e=b+1|0,!(d<<24>>24==119|(h2(e,137567,4)|0)==0)):0)?!(d<<24>>24==108|(h2(e,137572,4)|0)==0):0)?(h2(e,137577,8)|0)!=0:0){do if(d<<24>>24==47){d=F3(e,47)|0;if(d){if((a[e>>0]|0)!=47){e=(N3(137586,e,4)|0)==0;b=e?d+1|0:b;break}d=c[47441]|0;b=b+2|0;if(((d|0)!=0?(a[d>>0]|0)!=0:0)?(N3(137586,d,3)|0)!=0:0)b=ET(d,b)|0}else b=e}else{d=c[47441]|0;if(((d|0)!=0?(a[d>>0]|0)!=0:0)?(N3(137586,d,3)|0)!=0:0)b=ET(d,b)|0}while(0);b=xT(b)|0}return b|0}function DT(a,b){a=a|0;b=b|0;return C3(c[a>>2]|0,c[b>>2]|0)|0}function ET(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=l;l=l+16|0;e=f;g=D3(a)|0;g=(D3(b)|0)+g|0;d=g+13|0;if((g+3|0)>>>0<(c[47442]|0)>>>0)d=c[47443]|0;else{c[47442]=d;d=KK(c[47443]|0,d)|0;c[47443]=d}c[e>>2]=a;c[e+4>>2]=b;i2(d,137591,e)|0;l=f;return c[47443]|0}function FT(a){a=a|0;c[47441]=a;return}function GT(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0,g=0;f=l;l=l+208|0;g=f;HT(g,+h[a>>3],+h[a+8>>3],b,c,d,e);a=IT(g)|0;l=f;return a|0}function HT(a,b,c,d,e,f,g){a=a|0;b=+b;c=+c;d=+d;e=+e;f=+f;g=+g;var i=0,j=0;h[a>>3]=b;h[a+8>>3]=c;j=a+16|0;h[j>>3]=d;i=a+24|0;h[i>>3]=e;h[a+32>>3]=0.0;c=+O(+(+J(+f)/e),+(+I(+f)/d));h[a+56>>3]=c;e=+O(+(+J(+g)/e),+(+I(+g)/d));h[a+40>>3]=1.0;h[a+48>>3]=0.0;e=e-+E(+((e-c)/6.283185307179586))*6.283185307179586;h[a+64>>3]=g-f>3.141592653589793&e-c<3.141592653589793?e+6.283185307179586:e;OT(a);PT(a);QT(a);g=+h[j>>3];g=(g-+h[i>>3])/g;h[a+168>>3]=g;h[a+176>>3]=g*(2.0-g);g=1.0-g;h[a+184>>3]=g;h[a+192>>3]=g*g;return}function IT(a){a=a|0;var b=0,c=0.0,d=0,e=0.0,f=0.0,g=0.0,i=0.0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0;q=HK(8)|0;f=+h[a+56>>3];e=+h[a+64>>3]-f;p=1;b=0;while(1){o=e/+(p|0);if(!(b<<24>>24==0&(p|0)<1024))break;a:do if(!(o<=1.5707963267948966))b=0;else{c=f;d=0;b=1;while(1){if(!(b<<24>>24!=0&(d|0)<(p|0)))break a;n=o+c;b=+JT(a,c,n)<=1.0e-05&1;c=n;d=d+1|0}}while(0);p=p<<1}c=+I(+f);u=+J(+f);d=a+16|0;s=+h[d>>3];g=c*s;j=a+24|0;r=+h[j>>3];v=u*r;r=c*r;c=+h[a>>3];k=a+40|0;t=+h[k>>3];l=a+48|0;i=+h[l>>3];e=c+g*t-v*i;m=a+8|0;n=+h[m>>3];g=v*t+(n+g*i);s=-(u*s);KT(q,c,n);LT(q,e,g);n=+K(+(o*.5));n=+J(+o)*(+G(+(n*(n*3.0)+4.0))+-1.0)/3.0;c=f;f=g;g=r*t+i*s;i=t*s-r*i;b=0;while(1){if((b|0)>=(p|0))break;r=o+c;x=+I(+r);v=+J(+r);u=+h[d>>3];t=x*u;y=+h[j>>3];z=v*y;y=x*y;x=+h[k>>3];w=+h[l>>3];s=+h[a>>3]+t*x-z*w;t=z*x+(+h[m>>3]+t*w);u=-(v*u);v=x*u-y*w;u=y*x+w*u;MT(q,n*i+e,f+n*g,s-n*v,t-n*u,s,t);c=r;e=s;f=t;g=u;i=v;b=b+1|0}NT(q);return q|0}function JT(a,b,c){a=a|0;b=+b;c=+c;var d=0.0,e=0.0,f=0.0,g=0.0,i=0.0;e=(b+c)*.5;i=+h[a+16>>3];d=+h[a+24>>3]/i;g=+I(+(e*2.0));f=+I(+(e*4.0));e=+I(+(e*6.0));a=d<.25?10440:10696;return +(i*((d*(d*.001+4.98)+.207)/(d+.0067))*+P(+((+h[a+16>>3]+d*(d*+h[a>>3]+ +h[a+8>>3]))/(d+ +h[a+24>>3])+g*((+h[a+48>>3]+d*(d*+h[a+32>>3]+ +h[a+40>>3]))/(d+ +h[a+56>>3]))+f*((+h[a+80>>3]+d*(d*+h[a+64>>3]+ +h[a+72>>3]))/(d+ +h[a+88>>3]))+e*((+h[a+112>>3]+d*(d*+h[a+96>>3]+ +h[a+104>>3]))/(d+ +h[a+120>>3]))+(c-b)*((+h[a+144>>3]+d*(d*+h[a+128>>3]+ +h[a+136>>3]))/(d+ +h[a+152>>3])+g*((+h[a+176>>3]+d*(d*+h[a+160>>3]+ +h[a+168>>3]))/(d+ +h[a+184>>3]))+f*((+h[a+208>>3]+d*(d*+h[a+192>>3]+ +h[a+200>>3]))/(d+ +h[a+216>>3]))+e*((+h[a+240>>3]+d*(d*+h[a+224>>3]+ +h[a+232>>3]))/(d+ +h[a+248>>3]))))))}function KT(a,b,d){a=a|0;b=+b;d=+d;var e=0;c[47444]=100;e=HK(1600)|0;c[a>>2]=e;h[e>>3]=b;h[e+8>>3]=d;c[a+4>>2]=1;return}function LT(a,b,d){a=a|0;b=+b;d=+d;var e=0,f=0;f=c[a>>2]|0;e=(c[a+4>>2]|0)+-1|0;MT(a,+h[f+(e<<4)>>3],+h[f+(e<<4)+8>>3],b,d,b,d);return}function MT(a,b,d,e,f,g,i){a=a|0;b=+b;d=+d;e=+e;f=+f;g=+g;i=+i;var j=0,k=0,l=0,m=0;l=a+4|0;j=c[l>>2]|0;k=c[47444]|0;if((j+3|0)<(k|0))a=c[a>>2]|0;else{c[47444]=k<<1;j=n6(c[a>>2]|0,k<<5)|0;c[a>>2]=j;a=j;j=c[l>>2]|0}h[a+(j<<4)>>3]=b;m=j+1|0;h[a+(j<<4)+8>>3]=d;h[a+(m<<4)>>3]=e;k=j+2|0;h[a+(m<<4)+8>>3]=f;h[a+(k<<4)>>3]=g;c[l>>2]=j+3;h[a+(k<<4)+8>>3]=i;return}function NT(a){a=a|0;var b=0;b=c[a>>2]|0;LT(a,+h[b>>3],+h[b+8>>3]);c[a>>2]=n6(c[a>>2]|0,c[a+4>>2]<<4)|0;c[47444]=0;return}function OT(a){a=a|0;var b=0.0,c=0.0,d=0.0,e=0.0;e=+h[a+16>>3];c=+h[a+24>>3];c=+G(+(e*e-c*c));e=c*+h[a+40>>3];c=c*+h[a+48>>3];d=+h[a>>3];h[a+104>>3]=d-e;b=+h[a+8>>3];h[a+112>>3]=b-c;h[a+120>>3]=e+d;h[a+128>>3]=c+b;return}function PT(a){a=a|0;var b=0.0,c=0.0,d=0.0,e=0.0,f=0.0,g=0.0,i=0.0,j=0.0;d=+h[a+16>>3];j=+h[a+56>>3];i=d*+I(+j);g=+h[a+24>>3];j=g*+J(+j);f=+h[a+64>>3];d=d*+I(+f);f=g*+J(+f);g=+h[a>>3];e=+h[a+40>>3];c=+h[a+48>>3];h[a+72>>3]=g+i*e-j*c;b=+h[a+8>>3];h[a+80>>3]=j*e+(i*c+b);h[a+88>>3]=g+d*e-f*c;h[a+96>>3]=f*e+(d*c+b);return}function QT(a){a=a|0;var b=0.0,c=0.0,d=0.0,e=0.0,f=0,g=0,i=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0;p=+h[a+24>>3];q=+h[a+16>>3];c=p/q;r=+h[a+48>>3];k=+F(+r)<.1;o=+h[a+40>>3];do if(k){n=r/o;d=+N(+(c*n));b=-d;c=1.5707963267948966-+N(+(n/c));if(o<0.0){e=b;b=3.141592653589793-d;d=c+3.141592653589793;break}else{e=-3.141592653589793-d;d=c;c=c+-3.141592653589793;break}}else{n=o/r;b=+N(+(n/c))+1.5707963267948966;c=+N(+(c*n));if(r<0.0){e=b+-3.141592653589793;d=c+3.141592653589793;break}else{e=b;b=b+3.141592653589793;d=c;c=c+-3.141592653589793;break}}while(0);m=+h[a+56>>3];e=e-+E(+((e-m)/6.283185307179586))*6.283185307179586;l=c-+E(+((c-m)/6.283185307179586))*6.283185307179586;b=b-+E(+((b-m)/6.283185307179586))*6.283185307179586;m=d-+E(+((d-m)/6.283185307179586))*6.283185307179586;n=+h[a+64>>3];f=a+88|0;g=a+72|0;if(!(e<=n)){e=+h[g>>3];c=+h[f>>3];c=e<c?e:c}else c=+h[a>>3]+q*+I(+e)*o-r*(p*+J(+e));h[a+136>>3]=c;i=a+96|0;j=a+80|0;k=a+8|0;if(!(l<=n)){l=+h[j>>3];d=+h[i>>3];d=l<d?l:d}else d=+h[k>>3]+r*(q*+I(+l))+p*+J(+l)*o;h[a+144>>3]=d;if(!(b<=n)){l=+h[g>>3];b=+h[f>>3];b=l>b?l:b}else b=+h[a>>3]+q*+I(+b)*o-r*(p*+J(+b));h[a+152>>3]=b-c;if(!(m<=n)){r=+h[j>>3];b=+h[i>>3];b=r>b?r:b}else b=+h[k>>3]+r*(q*+I(+m))+p*+J(+m)*o;h[a+160>>3]=b-d;return}function RT(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0,j=0,k=0.0,m=0,n=0;n=l;l=l+80|0;m=n;ST(b);k=+h[e+56>>3];g=+h[e+64>>3];f=e+48|0;switch(a[e+80>>0]|0){case 116:{g=g+(+h[f>>3]-+TT(d))*.5;i=4;break}case 98:{g=g-(+h[f>>3]-+TT(d))*.5;i=4;break}default:{}}if((i|0)==4)g=g+-1.0;h[m>>3]=k;h[m+8>>3]=g;c[m+20>>2]=c[e+8>>2];c[m+16>>2]=c[e+4>>2];h[m+32>>3]=+h[e+16>>3];j=b+16|0;e=NA(c[(c[j>>2]|0)+8>>2]|0,137598)|0;f=m+56|0;c[f>>2]=e;i=m+60|0;c[i>>2]=c[(c[j>>2]|0)+212>>2];j=m+64|0;a[j>>0]=0;if(!((e|0)!=0?(a[e>>0]|0)!=0:0))c[f>>2]=137609;if((a[d+4>>0]|0)==1){f=c[d>>2]|0;jS(b,c[(c[b>>2]|0)+336>>2]|0);e=c[f+24>>2]|0;if(!e)fS(b,137615);else fS(b,e);VT(b,f,m);if(a[j>>0]|0)l6(c[i>>2]|0)}else UT(b,c[d>>2]|0,m);WT(b);l=n;return}function ST(a){a=a|0;var d=0,e=0;a=_H(a)|0;d=c[a>>2]|0;e=c[d+4>>2]|0;c[a+4>>2]=e;c[a+12>>2]=c[d+12>>2];if(e>>>0<4)c[a+8>>2]=c[d+8>>2];c[a+208>>2]=c[d+208>>2];c[a+228>>2]=c[d+228>>2];c[a+244>>2]=c[d+244>>2];e=a+260|0;b[e>>1]=b[e>>1]&-2|b[d+260>>1]&1;return}function TT(b){b=b|0;var d=0.0,e=0,f=0;switch(a[b+4>>0]|0){case 1:{e=c[b>>2]|0;b=e+72|0;e=e+56|0;f=5;break}case 3:{e=c[b>>2]|0;b=e+24|0;e=e+8|0;f=5;break}case 2:{e=c[b>>2]|0;b=e+32|0;e=e+16|0;f=5;break}default:d=0.0}if((f|0)==5)d=+h[b>>3]-+h[e>>3];return +d}function UT(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0,n=0,o=0.0,p=0.0,q=0,r=0,s=0;n=l;l=l+96|0;j=n+64|0;i=n+32|0;g=n+16|0;k=n;m=b[e+4>>1]|0;if(m<<16>>16>=1){r=e+8|0;p=+h[e+24>>3];o=+h[r>>3];h[k>>3]=+h[f>>3]+(p+o)*.5;h[k+8>>3]=+h[f+8>>3]+(+h[e+32>>3]+ +h[e+16>>3])*.5;q=c[e>>2]|0;s=f+16|0;f=a[e+6>>0]|0;c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];c[g+8>>2]=c[k+8>>2];c[g+12>>2]=c[k+12>>2];c[i>>2]=c[s>>2];c[i+4>>2]=c[s+4>>2];c[i+8>>2]=c[s+8>>2];c[i+12>>2]=c[s+12>>2];c[i+16>>2]=c[s+16>>2];c[i+20>>2]=c[s+20>>2];c[i+24>>2]=c[s+24>>2];c[i+28>>2]=c[s+28>>2];c[j>>2]=c[r>>2];c[j+4>>2]=c[r+4>>2];c[j+8>>2]=c[r+8>>2];c[j+12>>2]=c[r+12>>2];c[j+16>>2]=c[r+16>>2];c[j+20>>2]=c[r+20>>2];c[j+24>>2]=c[r+24>>2];c[j+28>>2]=c[r+28>>2];gU(d,m<<16>>16,q,g,(p-o)*.5,i,j,f)}l=n;return}function VT(f,g,i){f=f|0;g=g|0;i=i|0;var j=0,k=0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=l;l=l+176|0;w=B+96|0;y=B+64|0;z=B+136|0;q=B;r=B+128|0;s=g+48|0;c[y>>2]=c[s>>2];c[y+4>>2]=c[s+4>>2];c[y+8>>2]=c[s+8>>2];c[y+12>>2]=c[s+12>>2];c[y+16>>2]=c[s+16>>2];c[y+20>>2]=c[s+20>>2];c[y+24>>2]=c[s+24>>2];c[y+28>>2]=c[s+28>>2];m=+h[i>>3];n=+h[i+8>>3];s=g+84|0;j=c[s>>2]|0;if(!(c[g>>2]|0))A=(c[g+8>>2]|0)!=0;else A=1;x=g+108|0;k=c[x>>2]|0;if(k|0)XT(i,k,186712);h[y>>3]=m+ +h[y>>3];u=y+16|0;h[u>>3]=m+ +h[u>>3];u=y+8|0;h[u>>3]=n+ +h[u>>3];u=y+24|0;h[u>>3]=n+ +h[u>>3];u=f+152|0;if(A?(c[u>>2]&4|0)==0:0){c[w>>2]=c[y>>2];c[w+4>>2]=c[y+4>>2];c[w+8>>2]=c[y+8>>2];c[w+12>>2]=c[y+12>>2];c[w+16>>2]=c[y+16>>2];c[w+20>>2]=c[y+20>>2];c[w+24>>2]=c[y+24>>2];c[w+28>>2]=c[y+28>>2];t=YT(f,i,g,w,z)|0}else t=0;p=g+42|0;k=e[p>>1]|0;if(!(k&32)){o=c[g+20>>2]|0;v=g+33|0;if(o){k=ZT(f,o,c[g+28>>2]|0,k,r)|0;if(!(b[p>>1]&4)){c[w>>2]=c[y>>2];c[w+4>>2]=c[y+4>>2];c[w+8>>2]=c[y+8>>2];c[w+12>>2]=c[y+12>>2];c[w+16>>2]=c[y+16>>2];c[w+20>>2]=c[y+20>>2];c[w+24>>2]=c[y+24>>2];c[w+28>>2]=c[y+28>>2];mS(f,w,k)}else{p=d[v>>0]|0;c[w>>2]=c[y>>2];c[w+4>>2]=c[y+4>>2];c[w+8>>2]=c[y+8>>2];c[w+12>>2]=c[y+12>>2];c[w+16>>2]=c[y+16>>2];c[w+20>>2]=c[y+20>>2];c[w+24>>2]=c[y+24>>2];c[w+28>>2]=c[y+28>>2];RM(f,_T(q,w,p)|0,4,4,k)}l6(c[r>>2]|0)}while(1){k=c[j>>2]|0;if(!k)break;$T(f,k,i);j=j+4|0}j=c[s>>2]|0;sS(f,1.0);k=g+24|0;while(1){o=j+4|0;j=c[j>>2]|0;if(!j)break;if(!(a[j+100>>0]|0)){j=o;continue}aU(f,j,i,c[k>>2]|0,c[o>>2]|0);j=o}if(a[v>>0]|0){c[w>>2]=c[y>>2];c[w+4>>2]=c[y+4>>2];c[w+8>>2]=c[y+8>>2];c[w+12>>2]=c[y+12>>2];c[w+16>>2]=c[y+16>>2];c[w+20>>2]=c[y+20>>2];c[w+24>>2]=c[y+24>>2];c[w+28>>2]=c[y+28>>2];bU(f,g,w)}}if(t|0)cU(f,z);if((A?c[u>>2]&4|0:0)?(c[w>>2]=c[y>>2],c[w+4>>2]=c[y+4>>2],c[w+8>>2]=c[y+8>>2],c[w+12>>2]=c[y+12>>2],c[w+16>>2]=c[y+16>>2],c[w+20>>2]=c[y+20>>2],c[w+24>>2]=c[y+24>>2],c[w+28>>2]=c[y+28>>2],YT(f,i,g,w,z)|0):0)cU(f,z);if(c[x>>2]|0)dU(i,186712);l=B;return}function WT(a){a=a|0;var b=0;b=c[a+16>>2]|0;c[b+208>>2]=0;c[b+228>>2]=0;c[b+244>>2]=0;c[b+212>>2]=0;$H(a);return}function XT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,i=0;i=a+16|0;f=c[i>>2]|0;if(f|0){if(!(c[b>>2]|0)){f=0;g=d}else{c[d>>2]=f;f=c[b>>2]|0;g=i}c[g>>2]=f}f=c[a+20>>2]|0;if(f|0){g=b+4|0;if(!(c[g>>2]|0)){f=0;g=d}else{c[d+4>>2]=f;f=c[g>>2]|0;g=i}c[g+4>>2]=f}e=+h[a+32>>3];if(e>=0.0){f=b+16|0;if(!(+h[f>>3]>=0.0))e=-1.0;else{h[d+16>>3]=e;e=+h[f>>3];d=i}h[d+16>>3]=e}return}function YT(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+224|0;n=u+8|0;k=u;t=u+40|0;j=u+184|0;i=u+56|0;m=c[d+16>>2]|0;o=m+208|0;c[h>>2]=c[o>>2];p=m+228|0;c[h+4>>2]=c[p>>2];q=m+244|0;c[h+8>>2]=c[q>>2];r=m+212|0;c[h+12>>2]=c[r>>2];s=m+260|0;a[h+16>>0]=(b[s>>1]<<15&65535)<<16>>16>>15;h=c[f+16>>2]|0;m=m+8|0;if((h|0)!=0?(a[h>>0]|0)!=0:0)i=0;else{hA(t,128,i);i=e+60|0;h=c[i>>2]|0;if(!h){h=Y3(bI(d,c[m>>2]|0,t)|0)|0;c[i>>2]=h;a[e+64>>0]=1}kA(t,h)|0;i=c[47445]|0;c[47445]=i+1;c[k>>2]=i;i2(j,137692,k)|0;kA(t,j)|0;i=t+4|0;h=c[i>>2]|0;if(h>>>0>=(c[t+8>>2]|0)>>>0){iA(t,1)|0;h=c[i>>2]|0}a[h>>0]=0;h=c[t>>2]|0;c[i>>2]=h;i=1}h=aI(d,0,c[f>>2]|0,c[f+12>>2]|0,c[f+8>>2]|0,h,c[m>>2]|0)|0;if(i)lA(t);do if(h|0){if((c[o>>2]|0)==0?(b[s>>1]&1)==0:0)break;c[n>>2]=c[g>>2];c[n+4>>2]=c[g+4>>2];c[n+8>>2]=c[g+8>>2];c[n+12>>2]=c[g+12>>2];c[n+16>>2]=c[g+16>>2];c[n+20>>2]=c[g+20>>2];c[n+24>>2]=c[g+24>>2];c[n+28>>2]=c[g+28>>2];iI(d,n);aS(d,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0)}while(0);l=u;return h|0}function ZT(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0,j=0;j=l;l=l+16|0;i=j;if(!((HJ(b,f,i)|0)<<24>>24)){hS(a,b);b=1}else{hS(a,c[f>>2]|0);b=c[f+4>>2]|0;h=+g[i>>2];if(!b)iS(a,137615,d,h);else iS(a,b,d,h);b=e>>>1&1|2}fS(a,137680);l=j;return b|0}function _T(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,g=0.0,i=0,j=0.0,k=0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];i=a+32|0;k=b+16|0;c[i>>2]=c[k>>2];c[i+4>>2]=c[k+4>>2];c[i+8>>2]=c[k+8>>2];c[i+12>>2]=c[k+12>>2];k=a+40|0;b=a+8|0;if((d|0)>1){e=+(d|0)*.5;g=e+ +h[a>>3];h[a>>3]=g;f=e+ +h[b>>3];h[b>>3]=f;j=+h[i>>3]-e;h[i>>3]=j;e=+h[k>>3]-e;h[k>>3]=e}else{j=+h[i>>3];f=+h[b>>3];g=+h[a>>3];e=+h[k>>3]}h[a+16>>3]=j;h[a+24>>3]=f;h[a+48>>3]=g;h[a+56>>3]=e;return a|0}function $T(f,g,i){f=f|0;g=g|0;i=i|0;var j=0,k=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=l;l=l+176|0;u=y+96|0;v=y+136|0;w=y+64|0;s=y;t=y+128|0;x=g+48|0;c[w>>2]=c[x>>2];c[w+4>>2]=c[x+4>>2];c[w+8>>2]=c[x+8>>2];c[w+12>>2]=c[x+12>>2];c[w+16>>2]=c[x+16>>2];c[w+20>>2]=c[x+20>>2];c[w+24>>2]=c[x+24>>2];c[w+28>>2]=c[x+28>>2];k=+h[i>>3];m=+h[i+8>>3];if(!(c[g>>2]|0))x=(c[g+8>>2]|0)!=0;else x=1;h[w>>3]=k+ +h[w>>3];r=w+16|0;h[r>>3]=k+ +h[r>>3];r=w+8|0;h[r>>3]=m+ +h[r>>3];r=w+24|0;h[r>>3]=m+ +h[r>>3];r=f+152|0;if(x?(c[r>>2]&4|0)==0:0){c[u>>2]=c[w>>2];c[u+4>>2]=c[w+4>>2];c[u+8>>2]=c[w+8>>2];c[u+12>>2]=c[w+12>>2];c[u+16>>2]=c[w+16>>2];c[u+20>>2]=c[w+20>>2];c[u+24>>2]=c[w+24>>2];c[u+28>>2]=c[w+28>>2];q=YT(f,i,g,u,v)|0}else q=0;o=g+42|0;j=e[o>>1]|0;a:do if(!(j&32)){n=c[g+20>>2]|0;p=g+33|0;if(n|0){j=ZT(f,n,c[g+28>>2]|0,j,t)|0;if(!(b[o>>1]&4)){c[u>>2]=c[w>>2];c[u+4>>2]=c[w+4>>2];c[u+8>>2]=c[w+8>>2];c[u+12>>2]=c[w+12>>2];c[u+16>>2]=c[w+16>>2];c[u+20>>2]=c[w+20>>2];c[u+24>>2]=c[w+24>>2];c[u+28>>2]=c[w+28>>2];mS(f,u,j)}else{o=d[p>>0]|0;c[u>>2]=c[w>>2];c[u+4>>2]=c[w+4>>2];c[u+8>>2]=c[w+8>>2];c[u+12>>2]=c[w+12>>2];c[u+16>>2]=c[w+16>>2];c[u+20>>2]=c[w+20>>2];c[u+24>>2]=c[w+24>>2];c[u+28>>2]=c[w+28>>2];RM(f,_T(s,u,o)|0,4,4,j)}l6(c[t>>2]|0)}if(a[p>>0]|0){c[u>>2]=c[w>>2];c[u+4>>2]=c[w+4>>2];c[u+8>>2]=c[w+8>>2];c[u+12>>2]=c[w+12>>2];c[u+16>>2]=c[w+16>>2];c[u+20>>2]=c[w+20>>2];c[u+24>>2]=c[w+24>>2];c[u+28>>2]=c[w+28>>2];bU(f,g,u)}j=g+88|0;switch(a[g+92>>0]|0){case 1:{VT(f,c[j>>2]|0,i);break a}case 3:{fU(f,c[j>>2]|0,i);break a}default:{UT(f,c[j>>2]|0,i);break a}}}while(0);if(q|0)cU(f,v);if((x?c[r>>2]&4|0:0)?(c[u>>2]=c[w>>2],c[u+4>>2]=c[w+4>>2],c[u+8>>2]=c[w+8>>2],c[u+12>>2]=c[w+12>>2],c[u+16>>2]=c[w+16>>2],c[u+20>>2]=c[w+20>>2],c[u+24>>2]=c[w+24>>2],c[u+28>>2]=c[w+28>>2],YT(f,i,g,u,v)|0):0)cU(f,v);l=y;return}function aU(f,g,i,j,k){f=f|0;g=g|0;i=i|0;j=j|0;k=k|0;var m=0.0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0,A=0,B=0.0,C=0.0,D=0.0,E=0,F=0,G=0,H=0;G=l;l=l+32|0;E=G+16|0;F=G;y=+h[i>>3];s=+h[i+8>>3];p=(j|0)==0?137615:j;hS(f,p);fS(f,p);B=y+ +h[g+48>>3];C=y+ +h[g+64>>3];D=s+ +h[g+56>>3];s=s+ +h[g+72>>3];p=g+100|0;i=a[p>>0]|0;q=g+86|0;z=F+8|0;t=g+84|0;u=g+82|0;v=g+96|0;w=g+80|0;if((i&1)!=0?(o=c[v>>2]|0,((e[w>>1]|0)+(e[t>>1]|0)|0)<(c[o+104>>2]|0)):0){j=b[q>>1]|0;g=o+33|0;n=a[o+32>>0]|0;H=(n<<24>>24)/2|0;i=H<<24>>24;r=+(H<<24>>24);if(j<<16>>16)if(((e[u>>1]|0)+(j&65535)|0)==(c[o+100>>2]|0)){i=(d[g>>0]|0)+i|0;j=i;i=i&255;m=D-r}else{j=0;m=D}else{j=(d[g>>0]|0)+i|0;m=D}h[z>>3]=m-+(i|0);h[F>>3]=C+r;c[E>>2]=c[F>>2];c[E+4>>2]=c[F+4>>2];c[E+8>>2]=c[F+8>>2];c[E+12>>2]=c[F+12>>2];eU(f,E,0.0,+(n<<24>>24)+(s+ +(j&255|0)-D));i=a[p>>0]|0}if(i&2?(A=b[q>>1]|0,x=c[v>>2]|0,((e[u>>1]|0)+(A&65535)|0)<(c[x+100>>2]|0)):0){H=b[t>>1]|0;q=(k|0)!=0;o=k+86|0;g=x+33|0;i=x+32|0;p=x+64|0;n=((e[w>>1]|0)+(H&65535)|0)==(c[x+104>>2]|0);do if(!(H<<16>>16)){i=a[i>>0]|0;H=(i<<24>>24)/2|0;g=(H<<24>>24)+(d[g>>0]|0)|0;j=g&255;g=g&255;m=+(H<<24>>24);h[F>>3]=B-+(g|0)-m;if(n){j=g<<1&255;break}if(q?(b[o>>1]|0)!=A<<16>>16:0)j=~~(+(j&255)+(y+ +h[p>>3]-(C+m)))&255}else{i=a[i>>0]|0;j=(i<<24>>24)/2|0;m=+(j<<24>>24);h[F>>3]=B-m;if(n){j=(d[g>>0]|0)+(j&255)&255;break}if(q?(b[o>>1]|0)!=A<<16>>16:0)j=~~(y+ +h[p>>3]-(C+m)+0.0)&255;else j=0}while(0);h[z>>3]=D-+(((i<<24>>24)/2|0)<<24>>24);c[E>>2]=c[F>>2];c[E+4>>2]=c[F+4>>2];c[E+8>>2]=c[F+8>>2];c[E+12>>2]=c[F+12>>2];eU(f,E,+(i<<24>>24)+(C+ +(j&255)-B),0.0)}l=G;return}function bU(e,f,g){e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0;q=l;l=l+160|0;o=q+112|0;p=q;j=q+144|0;m=c[f+24>>2]|0;fS(e,(m|0)==0?137615:m);m=f+42|0;i=b[m>>1]|0;if(!(i&384))jS(e,c[(c[e>>2]|0)+336>>2]|0);else{c[j+4>>2]=0;c[j>>2]=0;i=i&65535;if(!(i&256)){if(i&128|0){i=137621;k=4}}else{i=137628;k=4}if((k|0)==4)c[j>>2]=i;jS(e,j)}i=f+33|0;sS(e,+(d[i>>0]|0));i=a[i>>0]|0;j=i&255;a:do if(!(b[m>>1]&4)){n=b[f+36>>1]&15360;if(!(n<<16>>16)){if((i&255)>1){r=+(i&255)*.5;h[g>>3]=r+ +h[g>>3];p=g+8|0;h[p>>3]=r+ +h[p>>3];p=g+16|0;h[p>>3]=+h[p>>3]-r;p=g+24|0;h[p>>3]=+h[p>>3]-r};c[o>>2]=c[g>>2];c[o+4>>2]=c[g+4>>2];c[o+8>>2]=c[g+8>>2];c[o+12>>2]=c[g+12>>2];c[o+16>>2]=c[g+16>>2];c[o+20>>2]=c[g+20>>2];c[o+24>>2]=c[g+24>>2];c[o+28>>2]=c[g+28>>2];mS(e,o,0);break}m=p+16|0;c[o>>2]=c[g>>2];c[o+4>>2]=c[g+4>>2];c[o+8>>2]=c[g+8>>2];c[o+12>>2]=c[g+12>>2];c[o+16>>2]=c[g+16>>2];c[o+20>>2]=c[g+20>>2];c[o+24>>2]=c[g+24>>2];c[o+28>>2]=c[g+28>>2];_T(m,o,j)|0;i=p+32|0;j=p+64|0;k=p+48|0;f=p+80|0;do switch(((n&65535)+-1024|0)>>>10&4194303|0){case 7:{oS(e,m,2);break a}case 3:{oS(e,i,2);break a}case 1:{oS(e,k,2);break a}case 0:{c[p>>2]=c[j>>2];c[p+4>>2]=c[j+4>>2];c[p+8>>2]=c[j+8>>2];c[p+12>>2]=c[j+12>>2];oS(e,p,2);break a}case 11:{oS(e,m,3);break a}case 5:{oS(e,i,3);break a}case 2:{c[f>>2]=c[m>>2];c[f+4>>2]=c[m+4>>2];c[f+8>>2]=c[m+8>>2];c[f+12>>2]=c[m+12>>2];oS(e,k,3);break a}case 8:{c[p>>2]=c[j>>2];c[p+4>>2]=c[j+4>>2];c[p+8>>2]=c[j+8>>2];c[p+12>>2]=c[j+12>>2];oS(e,p,3);break a}case 13:{oS(e,m,4);break a}case 6:{c[f>>2]=c[m>>2];c[f+4>>2]=c[m+4>>2];c[f+8>>2]=c[m+8>>2];c[f+12>>2]=c[m+12>>2];oS(e,i,4);break a}case 10:{c[f>>2]=c[m>>2];c[f+4>>2]=c[m+4>>2];c[f+8>>2]=c[m+8>>2];c[f+12>>2]=c[m+12>>2];p=p+96|0;c[p>>2]=c[i>>2];c[p+4>>2]=c[i+4>>2];c[p+8>>2]=c[i+8>>2];c[p+12>>2]=c[i+12>>2];oS(e,k,4);break a}case 12:{c[p>>2]=c[j>>2];c[p+4>>2]=c[j+4>>2];c[p+8>>2]=c[j+8>>2];c[p+12>>2]=c[j+12>>2];oS(e,p,4);break a}case 9:{oS(e,m,2);oS(e,k,2);break a}case 4:{c[p>>2]=c[j>>2];c[p+4>>2]=c[j+4>>2];c[p+8>>2]=c[j+8>>2];c[p+12>>2]=c[j+12>>2];oS(e,p,2);oS(e,i,2);break a}default:break a}while(0)}else{c[o>>2]=c[g>>2];c[o+4>>2]=c[g+4>>2];c[o+8>>2]=c[g+8>>2];c[o+12>>2]=c[g+12>>2];c[o+16>>2]=c[g+16>>2];c[o+20>>2]=c[g+20>>2];c[o+24>>2]=c[g+24>>2];c[o+28>>2]=c[g+28>>2];RM(e,_T(p,o,j)|0,4,4,0)}while(0);l=q;return}function cU(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=c[d+16>>2]|0;f=h+208|0;i=h+260|0;if((c[f>>2]|0)==0?(b[i>>1]&1)==0:0)d=0;else{bS(d);d=c[f>>2]|0}if((d|0)!=(c[e>>2]|0)){l6(d);c[f>>2]=c[e>>2]}d=h+228|0;f=c[d>>2]|0;g=e+4|0;if((f|0)!=(c[g>>2]|0)){l6(f);c[d>>2]=c[g>>2]}d=h+244|0;f=c[d>>2]|0;g=e+8|0;if((f|0)!=(c[g>>2]|0)){l6(f);c[d>>2]=c[g>>2]}d=h+212|0;f=c[d>>2]|0;g=e+12|0;if((f|0)!=(c[g>>2]|0)){l6(f);c[d>>2]=c[g>>2]}b[i>>1]=b[i>>1]&-2|a[e+16>>0]&1;return}function dU(a,b){a=a|0;b=b|0;var d=0.0,e=0;e=c[b>>2]|0;if(e|0)c[a+16>>2]=e;e=c[b+4>>2]|0;if(e|0)c[a+20>>2]=e;d=+h[b+16>>3];if(d>=0.0)h[a+32>>3]=d;return}function eU(a,b,d,e){a=a|0;b=b|0;d=+d;e=+e;var f=0,g=0,i=0;f=l;l=l+64|0;g=f+32|0;i=f;c[i>>2]=c[b>>2];c[i+4>>2]=c[b+4>>2];c[i+8>>2]=c[b+8>>2];c[i+12>>2]=c[b+12>>2];h[i+16>>3]=+h[b>>3]+d;h[i+24>>3]=+h[b+8>>3]+e;c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];c[g+12>>2]=c[i+12>>2];c[g+16>>2]=c[i+16>>2];c[g+20>>2]=c[i+20>>2];c[g+24>>2]=c[i+24>>2];c[g+28>>2]=c[i+28>>2];mS(a,g,1);l=f;return}function fU(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0.0,k=0.0,m=0.0,n=0.0;i=l;l=l+64|0;g=i;k=+h[e>>3];n=+h[d>>3]+k;m=+h[e+8>>3];j=+h[d+8>>3]+m;k=+h[d+16>>3]+k;m=+h[d+24>>3]+m;h[g>>3]=k;h[g+8>>3]=m;h[g+32>>3]=n;h[g+40>>3]=j;h[g+16>>3]=n;h[g+24>>3]=m;h[g+48>>3]=k;h[g+56>>3]=j;f=c[d+36>>2]|0;if(!f)f=c[e+56>>2]|0;e=c[d+32>>2]|0;if(!e)Aa(137635,137643,623,137655);if(!(a[e>>0]|0))Aa(137669,137643,624,137655);else{qS(b,e,g,4,1,f);l=i;return}}function gU(d,e,f,g,i,j,k,m){d=d|0;e=e|0;f=f|0;g=g|0;i=+i;j=j|0;k=k|0;m=m|0;var n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0,K=0,L=0,M=0.0,N=0.0,O=0,P=0,Q=0;Q=l;l=l+128|0;K=Q+104|0;O=Q+48|0;P=Q+16|0;L=Q;J=L;c[J>>2]=0;c[J+4>>2]=0;M=+h[g>>3];N=M-i;I=M+i;J=L+8|0;h[J>>3]=+h[g+8>>3]+(+h[k+24>>3]-+h[k+8>>3])*.5;cS(d,1);D=P+16|0;E=P+4|0;F=P+24|0;G=O+4|0;H=O+16|0;u=(m|0)==0;v=O+24|0;w=O+8|0;x=O+32|0;y=O+40|0;z=O+48|0;A=j+16|0;B=P+8|0;C=j+4|0;t=0;while(1){if((t|0)>=(e|0))break;k=f+(t*24|0)+8|0;switch(a[f+(t*24|0)+6>>0]|0){case 108:{i=N;break}case 114:{i=I-+h[k>>3];break}default:i=M-+h[k>>3]*.5}h[g>>3]=i;r=f+(t*24|0)+16|0;h[J>>3]=+h[J>>3]-+h[r>>3];s=f+(t*24|0)+4|0;p=c[f+(t*24|0)>>2]|0;q=0;while(1){if((q|0)>=(b[s>>1]|0))break;o=p+4|0;k=c[o>>2]|0;if(!k){h[D>>3]=+h[A>>3];c[P>>2]=c[j>>2];m=c[C>>2]|0;c[E>>2]=m;k=c[F>>2]&-128}else{h[D>>3]=+h[(+h[k+16>>3]>0.0?k:j)+16>>3];c[P>>2]=c[((c[k>>2]|0)==0?j:k)>>2];m=c[((c[k+4>>2]|0)==0?j:k)+4>>2]|0;c[E>>2]=m;k=c[k+24>>2]&127|c[F>>2]&-128}c[F>>2]=k;fS(d,m);c[O>>2]=c[p>>2];c[G>>2]=P;h[H>>3]=+h[p+16>>3];if(u)n=1.0;else n=+h[p+24>>3];h[v>>3]=n;c[B>>2]=c[(c[o>>2]|0)+8>>2];c[w>>2]=c[p+8>>2];o=p+32|0;h[x>>3]=+h[o>>3];h[y>>3]=+h[r>>3];a[z>>0]=108;h[L>>3]=i;c[K>>2]=c[L>>2];c[K+4>>2]=c[L+4>>2];c[K+8>>2]=c[L+8>>2];c[K+12>>2]=c[L+12>>2];eS(d,K,O);n=i+ +h[o>>3];h[g>>3]=n;p=p+56|0;q=q+1|0;i=n}t=t+1|0}dS(d);l=Q;return}function hU(a){a=a|0;l6(c[a>>2]|0);l6(c[a+4>>2]|0);l6(c[a+8>>2]|0);l6(c[a+16>>2]|0);l6(c[a+12>>2]|0);l6(c[a+20>>2]|0);l6(c[a+24>>2]|0);return}function iU(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(a|0){j=a+4|0;e=0;g=c[a>>2]|0;while(1){if((e|0)>=(b[j>>1]|0))break;k=g+4|0;d=0;f=c[g>>2]|0;while(1){if((d|0)>=(b[k>>1]|0))break;l6(c[f>>2]|0);h=c[f+8>>2]|0;if(h|0?(i=c[f+12>>2]|0,i|0):0)db[i&127](h);d=d+1|0;f=f+56|0}e=e+1|0;g=g+24|0}d=c[a>>2]|0;if(d|0)l6(d);l6(a)}return}function jU(a){a=a|0;l6(c[a+32>>2]|0);l6(a);return}function kU(b,d){b=b|0;d=d|0;switch(a[b+4>>0]|0){case 1:{lU(c[b>>2]|0);break}case 3:{jU(c[b>>2]|0);break}default:iU(c[b>>2]|0)}if(d|0)l6(b);return}function lU(a){a=a|0;var b=0,d=0,e=0;e=a+84|0;if((c[a+100>>2]|0)==-1)Oz(c[e>>2]|0)|0;else{b=c[e>>2]|0;l6(c[a+92>>2]|0);l6(c[a+96>>2]|0);while(1){d=c[b>>2]|0;if(!d)break;mU(d);b=b+4|0}l6(c[e>>2]|0)}hU(a);l6(a);return}function mU(a){a=a|0;kU(a+88|0,0);hU(a);l6(a);return}function nU(b,e,f){b=b|0;e=e|0;f=f|0;var g=0;b=c[(c[(c[b+16>>2]|0)+104>>2]|0)+72>>2]|0;if((a[b+4>>0]|0)!=2?(g=oU(c[b>>2]|0,e)|0,(g|0)!=0):0){c[f>>2]=d[g+35>>0];b=g+48|0}else b=0;return b|0}function oU(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a+4>>2]|0;if(!((d|0)!=0?(C3(d,b)|0)==0:0))e=3;a:do if((e|0)==3){d=c[a+84>>2]|0;while(1){a=c[d>>2]|0;if(!a){a=0;break a}a=pU(a,b)|0;if(!a)d=d+4|0;else break}}while(0);return a|0}function pU(b,d){b=b|0;d=d|0;var e=0;e=c[b+4>>2]|0;if(!((e|0)!=0?(C3(e,d)|0)==0:0))if((a[b+92>>0]|0)==1)b=oU(c[b+88>>2]|0,d)|0;else b=0;return b|0}function qU(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 0}function rU(d){d=d|0;var f=0,g=0.0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;p=d+92|0;c[p>>2]=HK((c[d+100>>2]<<2)+4|0)|0;n=HK((c[d+104>>2]<<2)+4|0)|0;c[d+96>>2]=n;o=d+32|0;m=c[d+84>>2]|0;while(1){l=c[m>>2]|0;if(!l)break;d=b[l+82>>1]|0;f=d&65535;g=+h[l+72>>3];if(d<<16>>16==1)j=~~g;else{j=~~((g-+(S((a[o>>0]|0)+-1|0,f+-1|0)|0))/+(d&65535));j=(j|0)>1?j:1}d=b[l+80>>1]|0;k=d&65535;g=+h[l+64>>3];if(d<<16>>16==1)i=~~g;else{i=~~((g-+(S((a[o>>0]|0)+-1|0,k+-1|0)|0))/+(d&65535));i=(i|0)>1?i:1}d=e[l+86>>1]|0;f=d+f|0;while(1){if((d|0)>=(f|0))break;q=(c[p>>2]|0)+(d<<2)|0;r=c[q>>2]|0;c[q>>2]=(r|0)>(j|0)?r:j;d=d+1|0}d=e[l+84>>1]|0;f=d+k|0;while(1){if((d|0)>=(f|0))break;r=n+(d<<2)|0;q=c[r>>2]|0;c[r>>2]=(q|0)>(i|0)?q:i;d=d+1|0}m=m+4|0}return}function sU(a){a=a|0;var b=0,d=0;d=l;l=l+16|0;b=d;if(a>>>0<21)a=c[55892+(a<<2)>>2]|0;else{c[b>>2]=a;i2(195241,137696,b)|0;a=195241}l=d;return a|0}function tU(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=a+104|0;l=a+100|0;j=d+16|0;f=0;g=0;while(1){if((f|0)>(c[k>>2]|0))break;i=qC(d,sU(f)|0,1)|0;RC(i,137750,304,1)|0;m=i+16|0;c[(c[m>>2]|0)+176>>2]=0;o=HK((c[l>>2]<<2)+4|0)|0;n=c[m>>2]|0;c[n+172>>2]=o;c[n+184>>2]=0;n=HK((c[l>>2]<<2)+4|0)|0;c[(c[m>>2]|0)+180>>2]=n;if(!g)c[(c[j>>2]|0)+192>>2]=i;else c[(c[g+16>>2]|0)+164>>2]=i;f=f+1|0;g=i}j=b+16|0;f=0;g=0;while(1){if((f|0)>(c[l>>2]|0))break;i=qC(b,sU(f)|0,1)|0;RC(i,137750,304,1)|0;o=i+16|0;c[(c[o>>2]|0)+176>>2]=0;m=HK((c[k>>2]<<2)+4|0)|0;n=c[o>>2]|0;c[n+172>>2]=m;c[n+184>>2]=0;n=HK((c[k>>2]<<2)+4|0)|0;c[(c[o>>2]|0)+180>>2]=n;if(!g)c[(c[j>>2]|0)+192>>2]=i;else c[(c[g+16>>2]|0)+164>>2]=i;f=f+1|0;g=i}f=c[a+84>>2]|0;while(1){g=c[f>>2]|0;if(!g)break;o=g+84|0;n=qC(d,sU(e[o>>1]|0)|0,0)|0;o=qC(d,sU((e[g+80>>1]|0)+(e[o>>1]|0)|0)|0,0)|0;uU(d,n,o,~~+h[g+64>>3]);o=g+86|0;n=qC(b,sU(e[o>>1]|0)|0,0)|0;o=qC(b,sU((e[g+82>>1]|0)+(e[o>>1]|0)|0)|0,0)|0;uU(b,n,o,~~+h[g+72>>3]);f=f+4|0}vU(d);vU(b);return}function uU(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,i=0;h=fB(a,d,f,0,0)|0;if(!h){i=fB(a,d,f,0,1)|0;RC(i,137763,176,1)|0;b[(c[i+16>>2]|0)+170>>1]=g;d=d+16|0;h=c[d>>2]|0;a=c[h+180>>2]|0;h=(c[h+184>>2]<<2)+8|0;if(!a)a=IK(h)|0;else a=KK(a,h)|0;g=c[d>>2]|0;c[g+180>>2]=a;g=g+184|0;h=c[g>>2]|0;c[g>>2]=h+1;c[a+(h<<2)>>2]=i;d=c[d>>2]|0;c[(c[d+180>>2]|0)+(c[d+184>>2]<<2)>>2]=0;d=f+16|0;h=c[d>>2]|0;a=c[h+172>>2]|0;h=(c[h+176>>2]<<2)+8|0;if(!a)a=IK(h)|0;else a=KK(a,h)|0;g=c[d>>2]|0;c[g+172>>2]=a;g=g+176|0;f=c[g>>2]|0;c[g>>2]=f+1;c[a+(f<<2)>>2]=i;i=c[d>>2]|0;c[(c[i+172>>2]|0)+(c[i+176>>2]<<2)>>2]=0}else{i=(c[h+16>>2]|0)+170|0;f=e[i>>1]|0;b[i>>1]=(f|0)>(g|0)?f:g}return}function vU(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=c[(c[a+16>>2]|0)+192>>2]|0;e=d;d=d+16|0;while(1){h=c[(c[d>>2]|0)+164>>2]|0;if(!h)break;d=h+16|0;if(fB(a,e,h,0,0)|0){e=h;continue}i=fB(a,e,h,0,1)|0;RC(i,137763,176,1)|0;b[(c[i+16>>2]|0)+170>>1]=0;g=e+16|0;f=c[g>>2]|0;e=c[f+180>>2]|0;f=(c[f+184>>2]<<2)+8|0;if(!e)e=IK(f)|0;else e=KK(e,f)|0;j=c[g>>2]|0;c[j+180>>2]=e;j=j+184|0;f=c[j>>2]|0;c[j>>2]=f+1;c[e+(f<<2)>>2]=i;f=c[g>>2]|0;c[(c[f+180>>2]|0)+(c[f+184>>2]<<2)>>2]=0;f=c[d>>2]|0;e=c[f+172>>2]|0;f=(c[f+176>>2]<<2)+8|0;if(!e)e=IK(f)|0;else e=KK(e,f)|0;g=c[d>>2]|0;c[g+172>>2]=e;g=g+176|0;j=c[g>>2]|0;c[g>>2]=j+1;c[e+(j<<2)>>2]=i;e=c[d>>2]|0;c[(c[e+172>>2]|0)+(c[e+176>>2]<<2)>>2]=0;e=h}return}function wU(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=a+92|0;e=0;f=0;b=c[(c[(c[b+16>>2]|0)+192>>2]|0)+16>>2]|0;while(1){b=c[b+164>>2]|0;if(!b)break;b=c[b+16>>2]|0;h=b+232|0;c[(c[g>>2]|0)+(f<<2)>>2]=(c[h>>2]|0)-e;e=c[h>>2]|0;f=f+1|0}a=a+96|0;e=0;f=0;b=c[(c[(c[d+16>>2]|0)+192>>2]|0)+16>>2]|0;while(1){b=c[b+164>>2]|0;if(!b)break;b=c[b+16>>2]|0;h=b+232|0;c[(c[a>>2]|0)+(f<<2)>>2]=(c[h>>2]|0)-e;e=c[h>>2]|0;f=f+1|0}return}function xU(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=l;l=l+16|0;f=g+4|0;b=g;c[b>>2]=c[4658];d=c[a+100>>2]|0;if((d|0)!=1?(e=a+104|0,(c[e>>2]|0)!=1):0){c[a+92>>2]=HK((d<<2)+4|0)|0;c[a+96>>2]=HK((c[e>>2]<<2)+4|0)|0;c[f>>2]=c[b>>2];e=lB(137776,f,0)|0;c[f>>2]=c[b>>2];f=lB(137781,f,0)|0;RC(e,137786,280,1)|0;RC(f,137786,280,1)|0;tU(a,e,f);sL(e,2,2147483647)|0;sL(f,2,2147483647)|0;wU(a,e,f);yU(e,f)}else rU(a);l=g;return}function yU(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=(c[b+16>>2]|0)+192|0;while(1){d=c[d>>2]|0;if(!d)break;f=d+16|0;d=c[f>>2]|0;e=c[d+172>>2]|0;if(e){l6(e);d=c[f>>2]|0}e=c[d+180>>2]|0;if(e){l6(e);d=c[f>>2]|0}d=d+164|0}pB(a)|0;pB(b)|0;return}function zU(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0;r=l;l=l+272|0;p=r+104|0;q=r+136|0;n=r+72|0;o=r;g=r+144|0;c[o+48>>2]=b;i=o+52|0;switch(FC(b)|0){case 0:{e=c[b+60>>2]|0;f=5;break}case 1:{e=uC(b)|0;f=5;break}case 2:{e=uC(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0;f=5;break}default:e=0}if((f|0)==5)c[i>>2]=e;m=c[e+60>>2]|0;h[o+32>>3]=+h[d+16>>3];c[o+16>>2]=c[d+4>>2];c[o+20>>2]=c[d+8>>2];c[o+40>>2]=0;k=JW(c[d>>2]|0,q,o)|0;if(!k){hA(p,128,g);a[d+82>>0]=0;e=Y3(AU(b,p)|0)|0;c[d>>2]=e;if((c[d+12>>2]|0)==1)e=cQ(e)|0;else e=$P(e,c[i>>2]|0)|0;l6(c[d>>2]|0);c[d>>2]=e;vK(c[(c[m+16>>2]|0)+144>>2]|0,d);lA(p);e=c[q>>2]|0}else{e=k+4|0;f=d+24|0;g=n+8|0;i=n+24|0;j=n+16|0;if((a[e>>0]|0)==1){if((c[(c[k>>2]|0)+24>>2]|0)==0?BU(b)|0:0){b=Y3(BU(b)|0)|0;c[(c[k>>2]|0)+24>>2]=b}o=CU(m,c[k>>2]|0,0,o)|0;c[q>>2]=c[q>>2]|o;o=c[k>>2]|0;t=+h[o+64>>3]*.5;s=+h[o+72>>3]*.5;DU(n,-t,-s,t,s);o=c[k>>2]|0;c[p>>2]=c[n>>2];c[p+4>>2]=c[n+4>>2];c[p+8>>2]=c[n+8>>2];c[p+12>>2]=c[n+12>>2];c[p+16>>2]=c[n+16>>2];c[p+20>>2]=c[n+20>>2];c[p+24>>2]=c[n+24>>2];c[p+28>>2]=c[n+28>>2];EU(o,p,15)}else{FU(c[(c[m+16>>2]|0)+144>>2]|0,c[k>>2]|0,o);p=c[k>>2]|0;s=+h[p+24>>3]*.5;t=+h[p+32>>3]*.5;DU(n,-s,-t,s,t);p=(c[k>>2]|0)+8|0;c[p>>2]=c[n>>2];c[p+4>>2]=c[n+4>>2];c[p+8>>2]=c[n+8>>2];c[p+12>>2]=c[n+12>>2];c[p+16>>2]=c[n+16>>2];c[p+20>>2]=c[n+20>>2];c[p+24>>2]=c[n+24>>2];c[p+28>>2]=c[n+28>>2]}h[f>>3]=+h[j>>3]-+h[n>>3];h[d+32>>3]=+h[i>>3]-+h[g>>3];c[d+72>>2]=k;if((a[e>>0]|0)==1){l6(c[d>>2]|0);c[d>>2]=Y3(141914)|0}e=c[q>>2]|0}l=r;return e|0}function AU(b,d){b=b|0;d=d|0;var e=0;a:do switch(FC(b)|0){case 0:{kA(d,HB(b)|0)|0;break}case 1:{kA(d,HB(b)|0)|0;break}case 2:{kA(d,HB(c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0)|0;e=b+-48|0;kA(d,HB(c[((c[b>>2]&3|0)==2?b:e)+40>>2]|0)|0)|0;if(!(uB(uC(c[((c[b>>2]&3|0)==2?b:e)+40>>2]|0)|0)|0)){kA(d,142050)|0;break a}else{kA(d,138041)|0;break a}}default:{}}while(0);e=d+4|0;b=c[e>>2]|0;if(b>>>0>=(c[d+8>>2]|0)>>>0){iA(d,1)|0;b=c[e>>2]|0}a[b>>0]=0;d=c[d>>2]|0;c[e>>2]=d;return d|0}function BU(b){b=b|0;var c=0,d=0;c=NA(b,138032)|0;if(!((c|0)!=0?(a[c>>0]|0)!=0:0))d=3;do if((d|0)==3){c=NA(b,141126)|0;if(c|0?a[c>>0]|0:0)break;c=0}while(0);return c|0}function CU(f,g,i,j){f=f|0;g=g|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=l;l=l+16|0;u=w+8|0;t=w;v=g+108|0;k=c[v>>2]|0;if(k|0)XT(j,k,186744);c[g+80>>2]=i;k=JU(f,g,j)|0;r=g+36|0;f=e[r>>1]|0;i=g+32|0;if(!(f&128))a[i>>0]=2;m=g+33|0;if(!(f&32))a[m>>0]=1;xU(g);n=c[g+104>>2]|0;p=a[i>>0]|0;f=S(p,n+1|0)|0;o=d[m>>0]<<1;q=c[g+100>>2]|0;p=S(q+1|0,p)|0;m=g+96|0;f=o+f|0;i=0;while(1){if((i|0)>=(n|0))break;f=(c[(c[m>>2]|0)+(i<<2)>>2]|0)+f|0;i=i+1|0}n=g+92|0;i=p+o|0;m=0;while(1){if((m|0)>=(q|0))break;i=(c[(c[n>>2]|0)+(m<<2)>>2]|0)+i|0;m=m+1|0}n=g+38|0;o=g+40|0;do if(b[r>>1]&1){r=b[n>>1]|0;m=r&65535;if(r<<16>>16?(s=b[o>>1]|0,s<<16>>16):0){if(!((m|0)<(f|0)|(s&65535|0)<(i|0))){i=0;f=0;break}dA(0,137832,t)|0;k=1;i=0;f=0;break}dA(0,137866,u)|0;k=1}while(0);u=e[n>>1]|0;h[g+64>>3]=+(((f|0)>(u|0)?f:u)|0);u=e[o>>1]|0;h[g+72>>3]=+(((i|0)>(u|0)?i:u)|0);if(c[v>>2]|0)dU(j,186744);l=w;return k|0}function DU(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;h[a>>3]=b;h[a+8>>3]=c;h[a+16>>3]=d;h[a+24>>3]=e;return}function EU(f,g,i){f=f|0;g=g|0;i=i|0;var j=0,k=0,m=0,n=0.0,o=0.0,p=0,q=0.0,r=0.0,s=0,t=0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0.0;J=l;l=l+64|0;H=J+32|0;I=J;w=c[f+84>>2]|0;m=c[f+80>>2]|0;if((m|0?(j=c[m+24>>2]|0,j|0):0)?(k=f+24|0,(c[k>>2]|0)==0):0)c[k>>2]=Y3(j)|0;G=f+48|0;j=g+16|0;o=+h[j>>3];n=+h[g>>3];k=~~(o-n-+(~~+h[f+64>>3]|0));if((k|0)<=-1)Aa(137799,137643,1761,137809);m=g+24|0;u=+h[m>>3];p=g+8|0;q=+h[p>>3];r=+(~~+h[f+72>>3]|0);s=~~(u-q-r);if((s|0)<=-1)Aa(137822,137643,1764,137809);t=e[f+36>>1]|0;a:do if(t&1){b:do if((k|0)>0)switch(t&6){case 4:{h[j>>3]=n+r;break b}case 2:{K=+(k|0);h[j>>3]=o+K;n=K+n;h[g>>3]=n;break b}default:{K=+(k>>>1|0);n=n+K;h[g>>3]=n;h[j>>3]=o-K;break b}}while(0);if((s|0)>0)switch(t&24){case 16:{u=q+r;h[m>>3]=u;s=0;j=0;break a}case 8:{K=+(s|0);u=K+u;h[m>>3]=u;h[p>>3]=q+K;s=0;j=0;break a}default:{K=+(s>>>1|0);h[p>>3]=q+K;u=u-K;h[m>>3]=u;s=0;j=0;break a}}else{s=0;j=0}}else j=k;while(0);o=+(d[f+33>>0]|0);E=f+32|0;F=a[E>>0]|0;v=F<<24>>24;q=+(F<<24>>24);F=f+104|0;m=c[F>>2]|0;t=(j|0)/(m|0)|0;p=j-(S(t,m)|0)|0;p=~~(+(p|0)+((p|0)>-1?.5:-.5));D=f+96|0;t=t+v|0;j=~~(n+o+q);k=0;while(1){if((k|0)>(m|0))break;C=(c[D>>2]|0)+(k<<2)|0;m=c[C>>2]|0;c[C>>2]=j;j=t+j+((k|0)<(p|0)&1)+m|0;k=k+1|0;m=c[F>>2]|0}C=f+100|0;m=c[C>>2]|0;p=(s|0)/(m|0)|0;s=s-(S(p,m)|0)|0;s=~~(+(s|0)+((s|0)>-1?.5:-.5));B=f+92|0;p=p+v|0;j=~~(u-o-q);k=0;while(1){if((k|0)>(m|0))break;A=(c[B>>2]|0)+(k<<2)|0;m=c[A>>2]|0;c[A>>2]=j;j=j-p+(((k|0)<(s|0))<<31>>31)-m|0;k=k+1|0;m=c[C>>2]|0}x=(i|0)==0;y=I+16|0;z=I+24|0;A=I+8|0;m=w;while(1){p=c[m>>2]|0;if(!p)break;j=b[p+84>>1]|0;k=b[p+86>>1]|0;s=k&65535;t=j&65535;v=(e[p+80>>1]|0)+t|0;w=(e[p+82>>1]|0)+s|0;if(x)j=0;else{j=j<<16>>16==0?8:0;j=k<<16>>16==0?j|4:j;j=(w|0)==(c[C>>2]|0)|((v|0)==(c[F>>2]|0)?j|2:j)}k=c[D>>2]|0;h[I>>3]=+(c[k+(t<<2)>>2]|0);t=a[E>>0]|0;h[y>>3]=+((c[k+(v<<2)>>2]|0)-t|0);v=c[B>>2]|0;h[z>>3]=+(c[v+(s<<2)>>2]|0);h[A>>3]=+((c[v+(w<<2)>>2]|0)+t|0);c[H>>2]=c[I>>2];c[H+4>>2]=c[I+4>>2];c[H+8>>2]=c[I+8>>2];c[H+12>>2]=c[I+12>>2];c[H+16>>2]=c[I+16>>2];c[H+20>>2]=c[I+20>>2];c[H+24>>2]=c[I+24>>2];c[H+28>>2]=c[I+28>>2];GU(p,H,j&i);m=m+4|0}a[f+35>>0]=i;c[G>>2]=c[g>>2];c[G+4>>2]=c[g+4>>2];c[G+8>>2]=c[g+8>>2];c[G+12>>2]=c[g+12>>2];c[G+16>>2]=c[g+16>>2];c[G+20>>2]=c[g+20>>2];c[G+24>>2]=c[g+24>>2];c[G+28>>2]=c[g+28>>2];l=J;return}function FU(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0.0,k=0.0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0.0,R=0.0,S=0.0;P=l;l=l+112|0;I=P+48|0;J=P+16|0;K=P;c[J>>2]=0;c[J+4>>2]=0;c[J+8>>2]=0;c[J+12>>2]=0;c[J+16>>2]=0;c[J+20>>2]=0;c[J+24>>2]=0;c[J+28>>2]=0;L=e+4|0;M=J+16|0;N=f+16|0;O=f+32|0;r=b[L>>1]|0;n=r<<16>>16;g=0;j=-1.0;m=0;while(1){if((m|0)>=(n|0)){g=1;break}i=c[e>>2]|0;if((b[i+(m*24|0)+4>>1]|0)>1){g=0;break}i=c[(c[i+(m*24|0)>>2]|0)+4>>2]|0;if(!i){k=+h[O>>3];h[M>>3]=k;i=N}else{if(c[i+24>>2]&127|0){g=0;break}k=+h[(+h[i+16>>3]>0.0?i:N)+16>>3];h[M>>3]=k;i=(c[i>>2]|0)==0?N:i}i=c[i>>2]|0;c[J>>2]=i;if(!(j==-1.0)){if(k!=j){g=0;break}}else j=k;if(g){if(f2(i,g)|0){g=0;break}}else g=i;m=m+1|0}a[e+6>>0]=g;E=f+48|0;F=J+4|0;G=J+24|0;H=f+40|0;x=f+20|0;y=d+144|0;z=I+4|0;w=K+8|0;A=I+16|0;B=I+24|0;C=I+8|0;D=I+12|0;v=(g|0)==0;j=0.0;s=0.0;t=0.0;u=0.0;f=0;g=r;while(1){if((f|0)>=(g<<16>>16|0))break;k=0.0;q=0.0;n=0;p=0.0;j=0.0;i=c[e>>2]|0;while(1){if((n|0)>=(b[i+(f*24|0)+4>>1]|0))break;c[I>>2]=CK(c[(c[i+(f*24|0)>>2]|0)+(n*56|0)>>2]|0,c[E>>2]|0)|0;i=(c[e>>2]|0)+(f*24|0)|0;g=c[(c[i>>2]|0)+(n*56|0)+4>>2]|0;m=c[G>>2]&-128;if(!g){h[M>>3]=+h[O>>3];c[J>>2]=c[N>>2];c[F>>2]=c[x>>2];c[G>>2]=c[H>>2]&127|m}else{g=c[g+24>>2]&127;if(!g)g=c[H>>2]&127;c[G>>2]=g|m;r=c[(c[i>>2]|0)+(n*56|0)+4>>2]|0;h[M>>3]=+h[(+h[r+16>>3]>0.0?r:N)+16>>3];c[J>>2]=c[((c[r>>2]|0)==0?N:r)>>2];c[F>>2]=c[((c[r+4>>2]|0)==0?N:r)+4>>2]}i=c[y>>2]|0;c[z>>2]=eb[c[i>>2]&63](i,J,1)|0;JO(K,d,I);R=+h[K>>3];o=+h[w>>3];l6(c[(c[(c[e>>2]|0)+(f*24|0)>>2]|0)+(n*56|0)>>2]|0);i=c[e>>2]|0;r=c[i+(f*24|0)>>2]|0;c[r+(n*56|0)>>2]=c[I>>2];h[r+(n*56|0)+32>>3]=R;h[r+(n*56|0)+16>>3]=+h[A>>3];h[r+(n*56|0)+24>>3]=+h[B>>3];c[r+(n*56|0)+4>>2]=c[z>>2];c[r+(n*56|0)+8>>2]=c[C>>2];c[r+(n*56|0)+12>>2]=c[D>>2];Q=+h[M>>3];S=+h[B>>3];k=S>k?S:k;q=q+R;n=n+1|0;p=Q>p?Q:p;j=o>j?o:j}h[i+(f*24|0)+8>>3]=q;g=(f|0)==0;do if(v)if(g){o=p;k=p-k;break}else{o=p;k=t+p-u-k;break}else{o=j;k=g?p:j}while(0);h[i+(f*24|0)+16>>3]=k;s=q>s?q:s;t=t+o;u=u+k;f=f+1|0;g=b[L>>1]|0}h[e+24>>3]=s;h[e+32>>3]=g<<16>>16==1?j:t;l=P;return}function GU(f,g,i){f=f|0;g=g|0;i=i|0;var j=0,k=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0.0;z=l;l=l+64|0;v=z+32|0;y=z;k=f+24|0;if((c[k>>2]|0)==0?(j=c[(c[f+96>>2]|0)+24>>2]|0,j|0):0)c[k>>2]=Y3(j)|0;u=f+36|0;t=e[u>>1]|0;k=g+8|0;j=g+16|0;w=t&6;s=g+24|0;x=t&24;a:do if(t&1){m=+h[f+64>>3];r=+h[f+72>>3];n=+h[j>>3];p=+h[g>>3];o=n-p-m;b:do if(o>0.0)switch(w&7){case 4:{n=m+p;h[j>>3]=n;m=p;break b}case 2:{n=n+o;h[j>>3]=n;m=o+p;h[g>>3]=m;break b}default:{q=o*.5;m=p+q;h[g>>3]=m;n=n-q;h[j>>3]=n;break b}}else m=p;while(0);q=+h[s>>3];p=+h[k>>3];o=q-p-r;if(o>0.0)switch(x&31){case 16:{o=r+p;h[s>>3]=o;break a}case 8:{r=q+o;h[s>>3]=r;p=o+p;h[k>>3]=p;o=r;break a}default:{o=o*.5;p=p+o;h[k>>3]=p;o=q-o;h[s>>3]=o;break a}}else o=q}else{m=+h[g>>3];p=+h[k>>3];n=+h[j>>3];o=+h[s>>3]}while(0);t=f+48|0;c[t>>2]=c[g>>2];c[t+4>>2]=c[g+4>>2];c[t+8>>2]=c[g+8>>2];c[t+12>>2]=c[g+12>>2];c[t+16>>2]=c[g+16>>2];c[t+20>>2]=c[g+20>>2];c[t+24>>2]=c[g+24>>2];c[t+28>>2]=c[g+28>>2];a[f+35>>0]=i;B=+(d[f+33>>0]|0);A=+(d[f+34>>0]|0);q=m+B+A;h[y>>3]=q;r=A+(B+p);t=y+8|0;h[t>>3]=r;p=n-B-A;s=y+16|0;h[s>>3]=p;o=o-B-A;g=y+24|0;h[g>>3]=o;j=a[f+92>>0]|0;k=f+88|0;do if(j<<24>>24==1){x=c[k>>2]|0;c[v>>2]=c[y>>2];c[v+4>>2]=c[y+4>>2];c[v+8>>2]=c[y+8>>2];c[v+12>>2]=c[y+12>>2];c[v+16>>2]=c[y+16>>2];c[v+20>>2]=c[y+20>>2];c[v+24>>2]=c[y+24>>2];c[v+28>>2]=c[y+28>>2];EU(x,v,i)}else{m=p-q;if(j<<24>>24==3){j=c[k>>2]|0;n=+h[j+24>>3];m=m-+h[j+16>>3];c:do if(m>0.0)switch(w&7){case 4:{h[s>>3]=p-m;break c}case 2:{h[y>>3]=q+m;break c}default:break c}while(0);m=o-r-n;d:do if(m>0.0)switch(x&31){case 16:{h[g>>3]=o-m;break d}case 8:{h[t>>3]=r+m;break d}default:break d}while(0);c[v>>2]=c[y>>2];c[v+4>>2]=c[y+4>>2];c[v+8>>2]=c[y+8>>2];c[v+12>>2]=c[y+12>>2];c[v+16>>2]=c[y+16>>2];c[v+20>>2]=c[y+20>>2];c[v+24>>2]=c[y+24>>2];c[v+28>>2]=c[y+28>>2];HU(j,v);break}j=c[k>>2]|0;n=+h[j+32>>3];m=m-+h[j+24>>3];e:do if(!((w|0)==6|!(m>0.0)))switch(w&7){case 4:{h[s>>3]=p-m;break e}case 2:{h[y>>3]=q+m;break e}default:{B=m*.5;h[y>>3]=q+B;h[s>>3]=p-B;break e}}while(0);m=o-r-n;f:do if(m>0.0)switch(x&31){case 16:{h[g>>3]=o-m;break f}case 8:{h[t>>3]=r+m;break f}default:{B=m*.5;h[t>>3]=r+B;h[g>>3]=o-B;break f}}while(0);x=j+8|0;c[x>>2]=c[y>>2];c[x+4>>2]=c[y+4>>2];c[x+8>>2]=c[y+8>>2];c[x+12>>2]=c[y+12>>2];c[x+16>>2]=c[y+16>>2];c[x+20>>2]=c[y+20>>2];c[x+24>>2]=c[y+24>>2];c[x+28>>2]=c[y+28>>2];y=b[u>>1]&768;IU(c[k>>2]|0,(y&1023)==512?108:(y&1023)==256?114:110)}while(0);l=z;return}function HU(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];c[a+28>>2]=c[b+28>>2];return}function IU(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;g=b[d+4>>1]|0;f=0;while(1){if((f|0)>=(g|0))break;h=(c[d>>2]|0)+(f*24|0)+6|0;if(!(a[h>>0]|0))a[h>>0]=e;f=f+1|0}return}function JU(d,f,g){d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;l=f+84|0;t=c[l>>2]|0;u=IL()|0;v=NU()|0;i=0;h=0;k=Qz(t)|0;while(1){if(!k)break;j=Qz(c[k+8>>2]|0)|0;while(1){if(!j)break;j=c[j>>2]|0;i=i+1|0}h=h+1|0;if(a[k+12>>0]|0)RU(v,h);k=c[k>>2]|0}h=HK((i<<2)+4|0)|0;c[l>>2]=h;i=0;j=0;k=0;q=0;r=Qz(t)|0;while(1){if(!r)break;s=q&65535;p=0;o=Qz(c[r+8>>2]|0)|0;while(1){if(!o)break;n=c[o+8>>2]|0;c[h>>2]=n;k=KU(d,n,f,g)|0|k;l=LU(u,q,p,n)|0;b[n+86>>1]=s;b[n+84>>1]=l;l=(e[n+80>>1]|0)+l|0;m=(e[n+82>>1]|0)+q|0;if(SU(v,m)|0){p=n+100|0;a[p>>0]=a[p>>0]|2}p=l;h=h+4|0;o=c[o>>2]|0;i=(l|0)>(i|0)?l:i;j=(m|0)>(j|0)?m:j}q=q+1|0;r=c[r>>2]|0}c[f+100>>2]=j;c[f+104>>2]=i;Oz(t)|0;Oz(v)|0;LL(u);return k|0}function KU(f,g,i,j){f=f|0;g=g|0;i=i|0;j=j|0;var k=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0;x=l;l=l+16|0;w=x+8|0;v=x;c[g+96>>2]=i;t=g+36|0;o=e[t>>1]|0;s=g+34|0;p=i+36|0;if(!(o&64)){if(!(b[p>>1]&64))n=2;else n=a[i+34>>0]|0;a[s>>0]=n}q=g+33|0;if(!(o&32)){n=a[i+88>>0]|0;if(n<<24>>24<=-1)if(!(b[p>>1]&32))n=1;else n=a[i+33>>0]|0;a[q>>0]=n}r=g+92|0;n=g+88|0;switch(a[r>>0]|0){case 1:{o=CU(f,c[n>>2]|0,g,j)|0;p=c[n>>2]|0;n=o;o=p+64|0;p=p+72|0;break}case 3:{o=MU(c[n>>2]|0,j)|0;p=c[n>>2]|0;n=o;o=p+16|0;p=p+24|0;break}default:{FU(c[(c[f+16>>2]|0)+144>>2]|0,c[n>>2]|0,j);p=c[n>>2]|0;n=0;o=p+24|0;p=p+32|0}}k=+((d[q>>0]|0)+(d[s>>0]|0)<<1|0);m=+h[o>>3]+k;k=+h[p>>3]+k;p=g+38|0;i=g+40|0;do if(b[t>>1]&1){o=b[p>>1]|0;if(o<<16>>16?(u=b[i>>1]|0,u<<16>>16):0){if(!(+(o&65535)<m|+(u&65535)<k)){m=0.0;k=0.0;break}if((a[r>>0]|0)==3){m=0.0;k=0.0;break}dA(0,137917,v)|0;n=1;m=0.0;k=0.0;break}dA(0,137950,w)|0;n=1}while(0);y=+(e[p>>1]|0);h[g+64>>3]=m>y?m:y;m=+(e[i>>1]|0);h[g+72>>3]=k>m?k:m;l=x;return n|0}function LU(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var f=0,g=0,h=0,i=0,j=0;j=d+80|0;i=(e[j>>1]|0)+-1|0;h=0;a:while(1){f=c;while(1){if(h)break a;g=i+f|0;while(1){if((g|0)<(f|0)){c=f;h=1;continue a}if(QL(a,g,b)|0)break;g=g+-1|0}f=g+1|0}}h=d+82|0;f=c;while(1){if((f|0)<((e[j>>1]|0)+c|0))g=b;else break;while(1){if((g|0)>=((e[h>>1]|0)+b|0))break;OL(a,f,g);g=g+1|0}f=f+1|0}return c|0}function MU(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,g=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;j=m;i=m+8|0;d=d+52|0;g=b+32|0;PF(i,c[d>>2]|0,c[g>>2]|0);k=c[i>>2]|0;i=c[i+4>>2]|0;if((i&k|0)==-1){c[j>>2]=c[g>>2];dA(1,138e3,j)|0;d=1;f=0.0;e=0.0}else{a[(c[(c[d>>2]|0)+16>>2]|0)+114>>0]=1;d=0;f=+(i|0);e=+(k|0)}c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;h[b+16>>3]=e;h[b+24>>3]=f;l=m;return d|0}function NU(){return Sz(55976,c[4591]|0)|0}function OU(a,b,d){a=a|0;b=b|0;d=d|0;d=HK(12)|0;c[d>>2]=c[b>>2];return d|0}function PU(a,b,c){a=a|0;b=b|0;c=c|0;l6(b);return}function QU(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=c[b>>2]|0;e=c[d>>2]|0;return ((b|0)>(e|0)?1:((b|0)<(e|0))<<31>>31)|0}function RU(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;eb[c[a>>2]&63](a,e,1)|0;l=d;return}function SU(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;b=(eb[c[a>>2]&63](a,e,512)|0)!=0&1;l=d;return b|0}function TU(a){a=a|0;var b=0;if(!(c[47446]|0)){b=HK((a<<2)+4|0)|0;c[47446]=b;c[b>>2]=189788;c[47457]=a}c[47458]=0;return}function UU(){l6(c[47446]|0);c[47446]=0;c[47458]=0;return}function VU(){c[47458]=0;return}function WU(){var a=0,b=0,d=0;b=c[47458]|0;d=c[47446]|0;a=1;while(1){if((a|0)>(b|0)){a=5;break}if((c[(c[d+(a<<2)>>2]|0)+4>>2]|0)==(a|0))a=a+1|0;else{a=4;break}}if((a|0)==4)Aa(138697,138044,59,138050);else if((a|0)==5)return}function XU(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;f=c[47446]|0;g=c[f+(a<<2)>>2]|0;h=c[g>>2]|0;while(1){b=(a|0)/2|0;d=c[f+(b<<2)>>2]|0;e=f+(a<<2)|0;if((c[d>>2]|0)>=(h|0))break;c[e>>2]=d;c[d+4>>2]=a;a=b}c[e>>2]=g;c[g+4>>2]=a;return}function YU(a){a=a|0;var b=0,d=0;d=l;l=l+16|0;b=c[47458]|0;if((b|0)==(c[47457]|0)){dA(1,138058,d)|0;a=1}else{b=b+1|0;c[47458]=b;c[(c[47446]|0)+(b<<2)>>2]=a;XU(b);WU();a=0}l=d;return a|0}function ZU(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=c[47446]|0;g=c[f+(a<<2)>>2]|0;h=c[g>>2]|0;i=c[47458]|0;j=(i|0)/2|0;while(1){e=f+(a<<2)|0;if((a|0)>(j|0))break;d=a<<1;b=c[f+(d<<2)>>2]|0;if((d|0)<(i|0)){m=d|1;k=c[f+(m<<2)>>2]|0;l=(c[b>>2]|0)<(c[k>>2]|0);d=l?m:d;b=l?k:b}if((h|0)>=(c[b>>2]|0))break;c[e>>2]=b;c[b+4>>2]=a;a=d}c[e>>2]=g;c[g+4>>2]=a;return}function _U(){var a=0,b=0,d=0,e=0;b=c[47458]|0;if(!b)a=0;else{e=c[47446]|0;d=e+4|0;a=c[d>>2]|0;c[d>>2]=c[e+(b<<2)>>2];b=b+-1|0;c[47458]=b;if(b|0)ZU(1);WU()}return a|0}function $U(a,b){a=a|0;b=b|0;c[a>>2]=b;XU(c[a+4>>2]|0);WU();return}function aV(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=b+16|0;j=c[m>>2]|0;j=(a[j+((c[e+12>>2]|0)*40|0)+36>>0]|0)!=(a[j+((c[e+16>>2]|0)*40|0)+36>>0]|0);k=~~((+h[d+64>>3]-+h[d+48>>3]+-3.0)*.5);l=~~((+h[d+56>>3]-+h[d+40>>3]+-3.0)*.5);g=(k|0)<(l|0)?k:l;n=d+4|0;f=0;while(1){b=c[n>>2]|0;if((f|0)>=(b|0)){g=f;break}i=c[d+8+(f<<2)>>2]|0;o=c[m>>2]|0;if((a[o+((c[i+12>>2]|0)*40|0)+36>>0]|0)==(a[o+((c[i+16>>2]|0)*40|0)+36>>0]|0)){g=f;break}bV(i,g);f=f+1|0}while(1){if((g|0)>=(b|0))break;f=c[d+8+(g<<2)>>2]|0;if(j|(f|0)==(e|0)){bV(f,a[(c[m>>2]|0)+((c[f+12>>2]|0)*40|0)+36>>0]|0?k:l);b=c[n>>2]|0}g=g+1|0}return}function bV(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+8|0;e=c[d>>2]|0;c[d>>2]=e+1;if((e|0)>=(b|0)){c[d>>2]=0;h[a>>3]=+h[a>>3]+16384.0}return}function cV(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0.0,C=0,D=0,E=0.0;x=l;l=l+112|0;u=x+64|0;t=x+96|0;m=x+32|0;v=x;w=HK(28)|0;b=qB(a)|0;s=w+4|0;c[s>>2]=b;b=HK(b*72|0)|0;r=w+12|0;c[r>>2]=b;e=v+8|0;h[e>>3]=1797693134862315708145274.0e284;h[v>>3]=1797693134862315708145274.0e284;f=v+24|0;h[f>>3]=-1797693134862315708145274.0e284;g=v+16|0;h[g>>3]=-1797693134862315708145274.0e284;i=m+16|0;j=m+8|0;k=m+24|0;d=gC(a)|0;n=1797693134862315708145274.0e284;o=1797693134862315708145274.0e284;p=-1797693134862315708145274.0e284;q=-1797693134862315708145274.0e284;while(1){if(!d)break;C=d+16|0;D=c[C>>2]|0;z=(+h[D+88>>3]+ +h[D+96>>3])*.5;z=z<1.0?1.0:z;E=+h[D+80>>3]*.5;E=E<1.0?1.0:E;y=+h[D+16>>3];B=y-z;h[m>>3]=B;z=y+z;h[i>>3]=z;y=+h[D+24>>3];A=y-E;h[j>>3]=A;y=E+y;h[k>>3]=y;B=+h[(n<B?v:m)>>3];h[v>>3]=B;A=+h[(o<A?v:m)+8>>3];h[e>>3]=A;z=+h[(p>z?v:m)+16>>3];h[g>>3]=z;y=+h[(q>y?v:m)+24>>3];h[f>>3]=y;D=b+40|0;c[D>>2]=c[m>>2];c[D+4>>2]=c[m+4>>2];c[D+8>>2]=c[m+8>>2];c[D+12>>2]=c[m+12>>2];c[D+16>>2]=c[m+16>>2];c[D+20>>2]=c[m+20>>2];c[D+24>>2]=c[m+24>>2];c[D+28>>2]=c[m+28>>2];c[b>>2]=c[b>>2]|1;c[(c[C>>2]|0)+112>>2]=b;b=b+72|0;d=hC(a,d)|0;n=B;o=A;p=z;q=y}h[v>>3]=n+-36.0;h[e>>3]=o+-36.0;h[g>>3]=p+36.0;h[f>>3]=q+36.0;D=c[r>>2]|0;f=c[s>>2]|0;c[u>>2]=c[v>>2];c[u+4>>2]=c[v+4>>2];c[u+8>>2]=c[v+8>>2];c[u+12>>2]=c[v+12>>2];c[u+16>>2]=c[v+16>>2];c[u+20>>2]=c[v+20>>2];c[u+24>>2]=c[v+24>>2];c[u+28>>2]=c[v+28>>2];f=mV(D,f,t,u)|0;if(c[47394]&1|0){r=c[r>>2]|0;C=c[s>>2]|0;D=c[t>>2]|0;c[u>>2]=c[v>>2];c[u+4>>2]=c[v+4>>2];c[u+8>>2]=c[v+8>>2];c[u+12>>2]=c[v+12>>2];c[u+16>>2]=c[v+16>>2];c[u+20>>2]=c[v+20>>2];c[u+24>>2]=c[v+24>>2];c[u+28>>2]=c[v+28>>2];dV(r,C,u,f,D)}e=w+8|0;c[e>>2]=HK((c[t>>2]|0)*72|0)|0;c[w>>2]=c[t>>2];d=c[t>>2]|0;b=0;while(1){if((b|0)>=(d|0))break;D=(c[e>>2]|0)+(b*72|0)+40|0;C=f+(b<<5)|0;c[D>>2]=c[C>>2];c[D+4>>2]=c[C+4>>2];c[D+8>>2]=c[C+8>>2];c[D+12>>2]=c[C+12>>2];c[D+16>>2]=c[C+16>>2];c[D+20>>2]=c[C+20>>2];c[D+24>>2]=c[C+24>>2];c[D+28>>2]=c[C+28>>2];b=b+1|0}l6(f);c[u>>2]=c[v>>2];c[u+4>>2]=c[v+4>>2];c[u+8>>2]=c[v+8>>2];c[u+12>>2]=c[v+12>>2];c[u+16>>2]=c[v+16>>2];c[u+20>>2]=c[v+20>>2];c[u+24>>2]=c[v+24>>2];c[u+28>>2]=c[v+28>>2];c[w+16>>2]=eV(w,u)|0;l=x;return w|0}function dV(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,i=0,j=0,k=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0.0;q=l;l=l+128|0;p=q+96|0;o=q+64|0;j=q+32|0;r=q+16|0;s=q;m=+h[d+16>>3];n=+h[d>>3];k=+h[d+24>>3];g=+h[d+8>>3];i=c[15715]|0;Z3(c[14003]|0,i)|0;c[s>>2]=10;c[s+4>>2]=10;c[s+8>>2]=~~(m+10.0-n);c[s+12>>2]=~~(k+10.0-g);z4(i,138503,s)|0;h[r>>3]=10.0-n;h[r+8>>3]=10.0-g;z4(i,138551,r)|0;Z3(138568,i)|0;d=0;while(1){if((d|0)>=(b|0))break;v=+h[a+(d*72|0)+48>>3];u=+h[a+(d*72|0)+56>>3];t=+h[a+(d*72|0)+64>>3];h[j>>3]=+h[a+(d*72|0)+40>>3];h[j+8>>3]=v;h[j+16>>3]=u;h[j+24>>3]=t;z4(i,138587,j)|0;d=d+1|0}Z3(138605,i)|0;d=0;while(1){if((d|0)>=(f|0))break;t=+h[e+(d<<5)+8>>3];u=+h[e+(d<<5)+16>>3];v=+h[e+(d<<5)+24>>3];h[o>>3]=+h[e+(d<<5)>>3];h[o+8>>3]=t;h[o+16>>3]=u;h[o+24>>3]=v;z4(i,138624,o)|0;d=d+1|0}Z3(138642,i)|0;h[p>>3]=n;h[p+8>>3]=g;h[p+16>>3]=m;h[p+24>>3]=k;z4(i,138624,p)|0;Z3(c[14004]|0,i)|0;l=q;return}function eV(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;z=l;l=l+32|0;t=z+16|0;m=z;v=c[a>>2]|0;x=AR(v<<2|2)|0;y=Sz(56020,c[4591]|0)|0;u=Sz(56056,c[4591]|0)|0;v=HK(v<<7)|0;g=HK(c[a>>2]<<4)|0;w=a+8|0;i=b+16|0;j=m+8|0;k=b+24|0;n=b+8|0;e=0;while(1){if((e|0)>=(c[a>>2]|0))break;d=c[w>>2]|0;o=d+(e*72|0)|0;c[d+(e*72|0)+32>>2]=4;p=d+(e*72|0)+36|0;c[p>>2]=g+(e<<2<<2);f=+h[d+(e*72|0)+56>>3];q=d+(e*72|0)+40|0;r=d+(e*72|0)+48|0;if(f<+h[i>>3]){h[m>>3]=f;h[j>>3]=+h[r>>3];c[t>>2]=c[m>>2];c[t+4>>2]=c[m+4>>2];c[t+8>>2]=c[m+8>>2];c[t+12>>2]=c[m+12>>2];s=fV(x,y,t,v,1)|0;c[s+20>>2]=o;c[c[p>>2]>>2]=s}f=+h[d+(e*72|0)+64>>3];if(f<+h[k>>3]){h[m>>3]=+h[q>>3];h[j>>3]=f;c[t>>2]=c[m>>2];c[t+4>>2]=c[m+4>>2];c[t+8>>2]=c[m+8>>2];c[t+12>>2]=c[m+12>>2];s=fV(x,u,t,v,0)|0;c[s+20>>2]=o;c[(c[p>>2]|0)+4>>2]=s}if(+h[q>>3]>+h[b>>3]){c[t>>2]=c[q>>2];c[t+4>>2]=c[q+4>>2];c[t+8>>2]=c[q+8>>2];c[t+12>>2]=c[q+12>>2];s=fV(x,y,t,v,1)|0;c[s+24>>2]=o;c[(c[p>>2]|0)+8>>2]=s}if(+h[r>>3]>+h[n>>3]){c[t>>2]=c[q>>2];c[t+4>>2]=c[q+4>>2];c[t+8>>2]=c[q+8>>2];c[t+12>>2]=c[q+12>>2];s=fV(x,u,t,v,0)|0;c[s+24>>2]=o;c[(c[p>>2]|0)+12>>2]=s}e=e+1|0}o=HK(c[x>>2]<<2)|0;r=a+4|0;s=a+12|0;p=t+8|0;m=0;q=0;n=0;while(1){d=c[r>>2]|0;if((n|0)>=(d|0)){e=0;break}e=c[s>>2]|0;i=e+(n*72|0)|0;j=e+(n*72|0)+36|0;c[j>>2]=o+(m<<2);b=e+(n*72|0)+40|0;c[t>>2]=c[b>>2];c[t+4>>2]=c[b+4>>2];c[t+8>>2]=c[b+8>>2];c[t+12>>2]=c[b+12>>2];b=e+(n*72|0)+56|0;k=e+(n*72|0)+32|0;d=eb[c[u>>2]&63](u,t,512)|0;while(1){if(!d)break;if(!(+h[d+8>>3]<+h[b>>3]))break;B=c[d>>2]|0;A=c[j>>2]|0;g=c[k>>2]|0;c[k>>2]=g+1;c[A+(g<<2)>>2]=B;c[(c[d>>2]|0)+24>>2]=i;d=eb[c[u>>2]&63](u,d,8)|0}g=e+(n*72|0)+64|0;d=eb[c[y>>2]&63](y,t,512)|0;while(1){f=+h[g>>3];if(!d)break;if(!(+h[d+16>>3]<f))break;C=c[d>>2]|0;A=c[j>>2]|0;B=c[k>>2]|0;c[k>>2]=B+1;c[A+(B<<2)>>2]=C;c[(c[d>>2]|0)+24>>2]=i;d=eb[c[y>>2]&63](y,d,8)|0}h[p>>3]=f;d=eb[c[u>>2]&63](u,t,512)|0;while(1){f=+h[b>>3];if(!d)break;if(!(+h[d+8>>3]<f))break;A=c[d>>2]|0;B=c[j>>2]|0;C=c[k>>2]|0;c[k>>2]=C+1;c[B+(C<<2)>>2]=A;c[(c[d>>2]|0)+20>>2]=i;d=eb[c[u>>2]&63](u,d,8)|0}h[t>>3]=f;h[p>>3]=+h[e+(n*72|0)+48>>3];d=eb[c[y>>2]&63](y,t,512)|0;while(1){e=c[k>>2]|0;if(!d)break;if(!(+h[d+16>>3]<+h[g>>3]))break;B=c[d>>2]|0;C=c[j>>2]|0;c[k>>2]=e+1;c[C+(e<<2)>>2]=B;c[(c[d>>2]|0)+20>>2]=i;d=eb[c[y>>2]&63](y,d,8)|0}m=e+m|0;q=(e|0)>(q|0)?e:q;n=n+1|0}while(1){if((e|0)>=(d|0))break;gV((c[s>>2]|0)+(e*72|0)|0);e=e+1|0;d=c[r>>2]|0}d=c[x>>2]|0;C=c[x+16>>2]|0;c[C+(d*40|0)+32>>2]=d;d=d+1|0;c[C+(d*40|0)+32>>2]=d;zR(x,q);d=0;while(1){if((d|0)>=(c[a>>2]|0))break;hV((c[w>>2]|0)+(d*72|0)|0,x);d=d+1|0}Oz(y)|0;Oz(u)|0;l6(v);iV(x);xR(x);l=z;return x|0}function fV(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=eb[c[d>>2]&63](d,e,512)|0;do if(!h){b=BR(b)|0;if(!f)Aa(138486,138434,291,138493);else{h=c[b+32>>2]|0;i=f+(h<<5)|0;f=f+(h<<5)+8|0;c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];c[i>>2]=b;a[b+36>>0]=g;eb[c[d>>2]&63](d,i,1)|0;break}}else i=h;while(0);return c[i>>2]|0}function gV(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0;j=b+32|0;k=b+36|0;a:do if((+h[b+64>>3]-+h[b+48>>3]+-3.0)*.5<2.0){i=c[j>>2]|0;g=0;while(1){if((g|0)>=(i|0))break a;d=c[(c[k>>2]|0)+(g<<2)>>2]|0;b:do if(a[d+36>>0]|0){f=c[d+20>>2]|0;if((f|0)==(b|0)){e=c[d+24>>2]|0;d=e;e=c[e>>2]|0;do{c[d>>2]=e|8;d=c[c[d+36>>2]>>2]|0;if(!d)break b;d=c[d+24>>2]|0;e=c[d>>2]|0}while(!(e&1|0))}else{e=f;d=c[f>>2]|0;do{c[e>>2]=d|8;d=c[(c[e+36>>2]|0)+8>>2]|0;if(!d)break b;e=c[d+20>>2]|0;d=c[e>>2]|0}while(!(d&1|0))}}while(0);g=g+1|0}}while(0);c:do if((+h[b+56>>3]-+h[b+40>>3]+-3.0)*.5<2.0){i=c[j>>2]|0;g=0;while(1){if((g|0)>=(i|0))break c;d=c[(c[k>>2]|0)+(g<<2)>>2]|0;d:do if(!(a[d+36>>0]|0)){f=c[d+20>>2]|0;if((f|0)==(b|0)){e=c[d+24>>2]|0;d=e;e=c[e>>2]|0;do{c[d>>2]=e|16;d=c[(c[d+36>>2]|0)+4>>2]|0;if(!d)break d;d=c[d+24>>2]|0;e=c[d>>2]|0}while(!(e&1|0))}else{e=f;d=c[f>>2]|0;do{c[e>>2]=d|16;d=c[(c[e+36>>2]|0)+12>>2]|0;if(!d)break d;e=c[d+20>>2]|0;d=c[e>>2]|0}while(!(d&1|0))}}while(0);g=g+1|0}}while(0);return}function hV(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,g=0.0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0;g=+h[a+56>>3]-+h[a+40>>3];i=+h[a+64>>3]-+h[a+48>>3];f=(g+i)*.5+500.0;if((i+-3.0)*.5<2.0){l=(c[a>>2]&8|0)==0;f=l?16384.0:f;p=l?16384.0:g}else p=g;if((g+-3.0)*.5<2.0){l=(c[a>>2]&16|0)==0;i=l?16384.0:i;f=l?16384.0:f}l=a+36|0;d=c[l>>2]|0;e=c[d+8>>2]|0;if((e|0)!=0?(j=c[d+4>>2]|0,(j|0)!=0):0){j=CR(b,e,j,f)|0;e=a+4|0;d=c[e>>2]|0;c[e>>2]=d+1;c[a+8+(d<<2)>>2]=j;d=c[l>>2]|0}e=c[d+4>>2]|0;if((e|0)!=0?(k=c[d>>2]|0,(k|0)!=0):0){k=CR(b,e,k,f)|0;j=a+4|0;d=c[j>>2]|0;c[j>>2]=d+1;c[a+8+(d<<2)>>2]=k;d=c[l>>2]|0}e=c[d+8>>2]|0;if((e|0)!=0?(m=c[d+12>>2]|0,(m|0)!=0):0){m=CR(b,e,m,f)|0;k=a+4|0;d=c[k>>2]|0;c[k>>2]=d+1;c[a+8+(d<<2)>>2]=m;d=c[l>>2]|0}e=c[d+12>>2]|0;if((e|0)!=0?(n=c[d>>2]|0,(n|0)!=0):0){n=CR(b,e,n,f)|0;m=a+4|0;d=c[m>>2]|0;c[m>>2]=d+1;c[a+8+(d<<2)>>2]=n;d=c[l>>2]|0}e=c[d+4>>2]|0;if((e|0)!=0?(o=c[d+12>>2]|0,(o|0)!=0):0){o=CR(b,e,o,i)|0;n=a+4|0;d=c[n>>2]|0;c[n>>2]=d+1;c[a+8+(d<<2)>>2]=o;d=c[l>>2]|0}e=c[d+8>>2]|0;if(e|0?(q=c[d>>2]|0,q|0):0){b=CR(b,e,q,p)|0;o=a+4|0;q=c[o>>2]|0;c[o>>2]=q+1;c[a+8+(q<<2)>>2]=b}return}function iV(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+16|0;i=j+8|0;h=j;f=a+16|0;g=c[15715]|0;e=0;while(1){if((e|0)>=(c[a>>2]|0)){b=10;break}b=c[f>>2]|0;d=b+(e*40|0)+20|0;if((c[d>>2]|0)==0?(c[h>>2]=e,z4(g,138399,h)|0,(c[d>>2]|0)==0):0){b=5;break}b=b+(e*40|0)+24|0;if((c[b>>2]|0)==0?(c[i>>2]=e,z4(g,138451,i)|0,(c[b>>2]|0)==0):0){b=8;break}e=e+1|0}if((b|0)==5)Aa(138421,138434,311,138441);else if((b|0)==8)Aa(138473,138434,313,138441);else if((b|0)==10){l=j;return}}function jV(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0;e=+h[b+8>>3];f=+h[c+8>>3];if(!(e>f))if(!(e<f)){f=+h[b>>3];e=+h[c>>3];if(f>e)a=1;else a=(f<e)<<31>>31}else a=-1;else a=1;return a|0}function kV(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0;e=+h[b>>3];f=+h[c>>3];if(!(e>f))if(!(e<f)){f=+h[b+8>>3];e=+h[c+8>>3];if(f>e)a=1;else a=(f<e)<<31>>31}else a=-1;else a=1;return a|0}function lV(a){a=a|0;var b=0,d=0;d=a+8|0;l6(c[(c[d>>2]|0)+36>>2]|0);b=a+12|0;l6(c[(c[b>>2]|0)+36>>2]|0);l6(c[d>>2]|0);l6(c[b>>2]|0);ER(c[a+16>>2]|0);Oz(c[a+20>>2]|0)|0;Oz(c[a+24>>2]|0)|0;l6(a);return}function mV(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;p=l;l=l+32|0;h=p;i=b<<2;f=i+4|0;i=i+5|0;o=IK(i*56|0)|0;i=HK(i<<2)|0;g=f*5|1;j=IK(g*72|0)|0;m=g<<5;k=HK(m)|0;m=HK(m)|0;c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[h+12>>2]=c[e+12>>2];c[h+16>>2]=c[e+16>>2];c[h+20>>2]=c[e+20>>2];c[h+24>>2]=c[e+24>>2];c[h+28>>2]=c[e+28>>2];nV(a,b,h,o,0);W4(173);oV(f,i);yV(f,o,i,g,j)|0;n=pV(f,o,j,0,k)|0;c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[h+12>>2]=c[e+12>>2];c[h+16>>2]=c[e+16>>2];c[h+20>>2]=c[e+20>>2];c[h+24>>2]=c[e+24>>2];c[h+28>>2]=c[e+28>>2];nV(a,b,h,o,1);oV(f,i);yV(f,o,i,g,j)|0;f=pV(f,o,j,1,m)|0;g=HK(S(n<<5,f)|0)|0;b=0;a=0;while(1){if((b|0)>=(f|0))break;h=m+(b<<5)|0;e=0;while(1){if((e|0)>=(n|0))break;q=((qV(g+(a<<5)|0,h,k+(e<<5)|0)|0)!=0&1)+a|0;e=e+1|0;a=q}b=b+1|0}q=KK(g,a<<5)|0;l6(o);l6(i);l6(j);l6(k);l6(m);c[d>>2]=a;l=p;return q|0}function nV(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;j=l;l=l+96|0;h=j+64|0;i=j;c[h>>2]=c[d>>2];c[h+4>>2]=c[d+4>>2];c[h+8>>2]=c[d+8>>2];c[h+12>>2]=c[d+12>>2];c[h+16>>2]=c[d+16>>2];c[h+20>>2]=c[d+20>>2];c[h+24>>2]=c[d+24>>2];c[h+28>>2]=c[d+28>>2];wV(h,f,1,i);d=xV(e,1,i)|0;g=0;while(1){if((g|0)>=(b|0))break;k=a+(g*72|0)+40|0;c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];c[h+8>>2]=c[k+8>>2];c[h+12>>2]=c[k+12>>2];c[h+16>>2]=c[k+16>>2];c[h+20>>2]=c[k+20>>2];c[h+24>>2]=c[k+24>>2];c[h+28>>2]=c[k+28>>2];wV(h,f,0,i);d=xV(e,d,i)|0;g=g+1|0}l=j;return}function oV(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=0;while(1){if((d|0)>(a|0))break;c[b+(d<<2)>>2]=d;d=d+1|0}g=a+1|0;d=1;while(1){if((d|0)>(a|0))break;h=~~(+(d|0)+ +(g-d|0)*+S4());e=b+(d<<2)|0;f=b+(h<<2)|0;if((h|0)!=(d|0)){h=c[e>>2]|0;c[e>>2]=c[f>>2];c[f>>2]=h}d=d+1|0}return}function pV(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=a*5|0;j=g+1|0;l=HK(j<<2)|0;c[47459]=HK(j<<4)|0;c[47460]=HK((a*56|0)+56|0)|0;j=HK(a<<2)|0;c[47461]=j;k=0;while(1){if((k|0)>(g|0))break;if(rV(d+(k*72|0)|0,b)|0)break;k=k+1|0}h=c[47459]|0;i=c[47460]|0;g=1;while(1){if((g|0)>(a|0))break;c[h+(g<<4)+8>>2]=c[b+(g*56|0)+48>>2];m=b+(g*56|0)+44|0;c[h+(g<<4)+4>>2]=c[m>>2];c[h+(g<<4)>>2]=g;n=i+(g*56|0)|0;o=b+(g*56|0)|0;c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];c[i+(g*56|0)+16>>2]=c[m>>2];c[i+(g*56|0)+32>>2]=g;c[i+(g*56|0)+48>>2]=1;g=g+1|0}c[47462]=a;c[47463]=0;c[j>>2]=1;g=c[d+(k*72|0)+40>>2]|0;if((g|0)<=0){g=c[d+(k*72|0)+48>>2]|0;if((g|0)>0)g=sV(l,f,0,b,d,0,k,g,e,2)|0;else g=0}else g=sV(l,f,0,b,d,0,k,g,e,1)|0;l6(l);l6(c[47459]|0);l6(c[47460]|0);l6(c[47461]|0);return g|0}function qV(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0;g=+h[(+h[b>>3]>+h[c>>3]?b:c)>>3];f=+h[(+h[b+16>>3]<+h[c+16>>3]?b:c)+16>>3];h[a+16>>3]=f;h[a>>3]=g;e=+h[(+h[b+8>>3]>+h[c+8>>3]?b:c)+8>>3];d=+h[(+h[b+24>>3]<+h[c+24>>3]?b:c)+24>>3];h[a+24>>3]=d;h[a+8>>3]=e;return !(g>=f)&!(e>=d)&1|0}function rV(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0;f=c[a+4>>2]|0;do if((c[a+68>>2]|0)!=2?!((f|0)<1|(c[a>>2]|0)<1):0){if(!((c[a+40>>2]|0)<1?(c[a+44>>2]|0)<1:0)){if((c[a+48>>2]|0)>=1){a=0;break}if((c[a+52>>2]|0)>=1){a=0;break}}d=+h[b+(f*56|0)+24>>3];e=+h[b+(f*56|0)+8>>3];if(!(d>e+1.0e-07))if(d<e+-1.0e-07)a=0;else a=+h[b+(f*56|0)+16>>3]>+h[b+(f*56|0)>>3]&1;else a=1}else a=0;while(0);return a|0}function sV(a,b,d,e,f,g,i,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0.0,I=0.0,J=0,K=0,L=0,M=0;E=(k|0)==0;D=g;a:while(1){if((i|0)<1)break;g=a+(i<<2)|0;if(c[g>>2]|0)break;c[g>>2]=1;r=f+(i*72|0)+16|0;n=+h[r>>3];x=f+(i*72|0)+32|0;o=+h[x>>3];v=f+(i*72|0)|0;y=f+(i*72|0)+4|0;if((n>o?(C=c[v>>2]|0,H=+h[e+(C*56|0)>>3],H==+h[e+(C*56|0)+16>>3]):0)?(C=c[y>>2]|0,I=+h[e+(C*56|0)>>3],I==+h[e+(C*56|0)+16>>3]):0){g=b+(d<<5)+16|0;m=b+(d<<5)+8|0;p=b+(d<<5)|0;if(E){h[p>>3]=H;h[m>>3]=o;h[g>>3]=I}else{h[p>>3]=o;h[m>>3]=-I;h[g>>3]=n;n=-H}h[b+(d<<5)+24>>3]=n;d=d+1|0}g=f+(i*72|0)+40|0;w=c[g>>2]|0;A=f+(i*72|0)+48|0;B=f+(i*72|0)+52|0;C=f+(i*72|0)+44|0;do if((w|0)<1?(c[C>>2]|0)<1:0){if((c[A>>2]|0)>0?(J=c[B>>2]|0,(J|0)>0):0){l=c[f+(J*72|0)>>2]|0;g=c[v>>2]|0;if((J|0)==(j|0)){j=tV(D,g,l)|0;d=sV(a,b,d,e,f,D,c[B>>2]|0,i,k,1)|0;g=A;l=1;break}else{j=tV(D,l,g)|0;d=sV(a,b,d,e,f,D,c[A>>2]|0,i,k,1)|0;g=B;l=1;break}}d=sV(a,b,d,e,f,D,w,i,k,2)|0;d=sV(a,b,d,e,f,D,c[C>>2]|0,i,k,2)|0;d=sV(a,b,d,e,f,D,c[A>>2]|0,i,k,1)|0;j=D;g=B;l=1}else M=19;while(0);do if((M|0)==19){M=0;s=c[A>>2]|0;if((s|0)<1?(c[B>>2]|0)<1:0){if((w|0)>0?(K=c[C>>2]|0,(K|0)>0):0){m=c[y>>2]|0;l=c[f+(w*72|0)+4>>2]|0;if((K|0)==(j|0)){j=tV(D,l,m)|0;d=sV(a,b,d,e,f,D,c[C>>2]|0,i,k,2)|0;l=2;break}else{j=tV(D,m,l)|0;d=sV(a,b,d,e,f,D,c[g>>2]|0,i,k,2)|0;g=C;l=2;break}}d=sV(a,b,d,e,f,D,w,i,k,2)|0;d=sV(a,b,d,e,f,D,c[C>>2]|0,i,k,2)|0;d=sV(a,b,d,e,f,D,c[A>>2]|0,i,k,1)|0;j=D;g=B;l=1;break}z=(l|0)==1;u=(l|0)==2;t=f+(i*72|0)+24|0;p=c[C>>2]|0;l=(p|0)>0;if((w|0)>0){if(l){if((s|0)>0?(L=c[B>>2]|0,(L|0)>0):0){m=c[f+(L*72|0)>>2]|0;l=c[f+(w*72|0)+4>>2]|0;if(z&(p|0)==(j|0)|u&(L|0)==(j|0)){j=tV(D,l,m)|0;d=sV(a,b,d,e,f,D,c[C>>2]|0,i,k,2)|0;d=sV(a,b,d,e,f,D,c[B>>2]|0,i,k,1)|0;d=sV(a,b,d,e,f,j,c[g>>2]|0,i,k,2)|0;g=A;l=1;break}else{j=tV(D,m,l)|0;d=sV(a,b,d,e,f,D,c[g>>2]|0,i,k,2)|0;d=sV(a,b,d,e,f,D,c[A>>2]|0,i,k,1)|0;d=sV(a,b,d,e,f,j,c[C>>2]|0,i,k,2)|0;g=B;l=1;break}}l=c[v>>2]|0;if(+F(+(+h[x>>3]-+h[e+(l*56|0)+24>>3]))<=1.0e-07?+F(+(+h[t>>3]-+h[e+(l*56|0)+16>>3]))<=1.0e-07:0){m=c[f+(w*72|0)+4>>2]|0;l=c[e+(l*56|0)+44>>2]|0;if(z&(w|0)==(j|0)){j=tV(D,l,m)|0;d=sV(a,b,d,e,f,D,c[g>>2]|0,i,k,2)|0;d=sV(a,b,d,e,f,j,c[A>>2]|0,i,k,1)|0;d=sV(a,b,d,e,f,j,c[C>>2]|0,i,k,2)|0;g=B;l=1;break}else{j=tV(D,m,l)|0;d=sV(a,b,d,e,f,D,c[C>>2]|0,i,k,2)|0;d=sV(a,b,d,e,f,D,c[A>>2]|0,i,k,1)|0;d=sV(a,b,d,e,f,D,c[B>>2]|0,i,k,1)|0;l=2;break}}m=c[y>>2]|0;l=c[f+(w*72|0)+4>>2]|0;if(z&(p|0)==(j|0)){j=tV(D,l,m)|0;d=sV(a,b,d,e,f,D,c[C>>2]|0,i,k,2)|0;d=sV(a,b,d,e,f,j,c[B>>2]|0,i,k,1)|0;d=sV(a,b,d,e,f,j,c[A>>2]|0,i,k,1)|0;l=2;break}else{j=tV(D,m,l)|0;d=sV(a,b,d,e,f,D,c[g>>2]|0,i,k,2)|0;d=sV(a,b,d,e,f,D,c[A>>2]|0,i,k,1)|0;d=sV(a,b,d,e,f,D,c[B>>2]|0,i,k,1)|0;g=C;l=2;break}}}else if(!l)break a;q=f+(i*72|0)+8|0;n=+h[r>>3];r=c[v>>2]|0;m=e+(r*56|0)|0;p=+F(+(n-+h[e+(r*56|0)+8>>3]))<=1.0e-07;if((s|0)>0?(G=c[B>>2]|0,(G|0)>0):0){if(p?+F(+(+h[q>>3]-+h[m>>3]))<=1.0e-07:0){l=c[f+(G*72|0)>>2]|0;if(u&(s|0)==(j|0)){j=tV(D,l,r)|0;d=sV(a,b,d,e,f,D,c[A>>2]|0,i,k,1)|0;d=sV(a,b,d,e,f,j,c[g>>2]|0,i,k,2)|0;d=sV(a,b,d,e,f,j,c[C>>2]|0,i,k,2)|0;g=B;l=1;break}else{j=tV(D,r,l)|0;d=sV(a,b,d,e,f,D,c[C>>2]|0,i,k,2)|0;d=sV(a,b,d,e,f,D,c[B>>2]|0,i,k,1)|0;d=sV(a,b,d,e,f,D,c[g>>2]|0,i,k,2)|0;g=A;l=1;break}}m=c[f+(G*72|0)>>2]|0;l=c[e+((c[y>>2]|0)*56|0)+44>>2]|0;if(u&(G|0)==(j|0)){j=tV(D,l,m)|0;d=sV(a,b,d,e,f,D,c[B>>2]|0,i,k,1)|0;d=sV(a,b,d,e,f,j,c[C>>2]|0,i,k,2)|0;d=sV(a,b,d,e,f,j,c[g>>2]|0,i,k,2)|0;g=A;l=1;break}else{j=tV(D,m,l)|0;d=sV(a,b,d,e,f,D,c[g>>2]|0,i,k,2)|0;d=sV(a,b,d,e,f,D,c[A>>2]|0,i,k,1)|0;d=sV(a,b,d,e,f,D,c[C>>2]|0,i,k,2)|0;g=B;l=1;break}}l=c[y>>2]|0;if(((p?+F(+(+h[q>>3]-+h[m>>3]))<=1.0e-07:0)?+F(+(+h[x>>3]-+h[e+(l*56|0)+8>>3]))<=1.0e-07:0)?+F(+(+h[t>>3]-+h[e+(l*56|0)>>3]))<=1.0e-07:0)if(z){j=tV(D,r,l)|0;d=sV(a,b,d,e,f,D,c[g>>2]|0,i,k,2)|0;d=sV(a,b,d,e,f,D,c[C>>2]|0,i,k,2)|0;d=sV(a,b,d,e,f,j,c[B>>2]|0,i,k,1)|0;g=A;l=1;break}else{j=tV(D,l,r)|0;d=sV(a,b,d,e,f,D,c[B>>2]|0,i,k,1)|0;d=sV(a,b,d,e,f,D,c[A>>2]|0,i,k,1)|0;d=sV(a,b,d,e,f,j,c[g>>2]|0,i,k,2)|0;g=C;l=2;break}if(((+F(+(n-+h[e+(l*56|0)+24>>3]))<=1.0e-07?+F(+(+h[q>>3]-+h[e+(l*56|0)+16>>3]))<=1.0e-07:0)?+F(+(+h[x>>3]-+h[e+(r*56|0)+24>>3]))<=1.0e-07:0)?+F(+(+h[t>>3]-+h[e+(r*56|0)+16>>3]))<=1.0e-07:0){j=c[e+(l*56|0)+44>>2]|0;l=c[e+(r*56|0)+44>>2]|0;if(z){j=tV(D,l,j)|0;d=sV(a,b,d,e,f,D,c[g>>2]|0,i,k,2)|0;d=sV(a,b,d,e,f,D,c[C>>2]|0,i,k,2)|0;d=sV(a,b,d,e,f,j,c[B>>2]|0,i,k,1)|0;g=A;l=1;break}else{j=tV(D,j,l)|0;d=sV(a,b,d,e,f,D,c[B>>2]|0,i,k,1)|0;d=sV(a,b,d,e,f,D,c[A>>2]|0,i,k,1)|0;d=sV(a,b,d,e,f,j,c[g>>2]|0,i,k,2)|0;g=C;l=2;break}}d=sV(a,b,d,e,f,D,w,i,k,2)|0;d=sV(a,b,d,e,f,D,c[A>>2]|0,i,k,1)|0;d=sV(a,b,d,e,f,D,c[C>>2]|0,i,k,2)|0;j=D;g=B;l=1}while(0);C=i;D=j;i=c[g>>2]|0;j=C}return d|0}function tV(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;f=l;l=l+16|0;r=f+4|0;i=f;e=(c[47463]|0)+1|0;c[47463]=e;m=c[47460]|0;uV(b,d,r,i);r=c[r>>2]|0;h=c[m+(b*56|0)+32+(r<<2)>>2]|0;i=c[m+(d*56|0)+32+(c[i>>2]<<2)>>2]|0;n=c[47462]|0;g=n+1|0;n=n+2|0;c[47462]=n;q=c[47459]|0;c[q+(g<<4)>>2]=b;c[q+(n<<4)>>2]=d;o=q+(h<<4)+4|0;p=q+(g<<4)+4|0;c[p>>2]=c[o>>2];c[q+(c[o>>2]<<4)+8>>2]=g;c[q+(g<<4)+8>>2]=n;c[q+(n<<4)+4>>2]=g;j=q+(i<<4)+8|0;c[q+(n<<4)+8>>2]=c[j>>2];c[q+(c[j>>2]<<4)+4>>2]=n;c[o>>2]=i;c[j>>2]=h;j=m+(b*56|0)+48|0;o=c[j>>2]|0;i=m+(d*56|0)+48|0;k=c[i>>2]|0;c[m+(b*56|0)+16+(r<<2)>>2]=d;c[m+(b*56|0)+32+(o<<2)>>2]=g;c[m+(b*56|0)+16+(o<<2)>>2]=c[q+(c[p>>2]<<4)>>2];c[m+(d*56|0)+32+(k<<2)>>2]=n;c[m+(d*56|0)+16+(k<<2)>>2]=b;c[j>>2]=(c[j>>2]|0)+1;c[i>>2]=(c[i>>2]|0)+1;d=c[47461]|0;c[d+(a<<2)>>2]=h;c[d+(e<<2)>>2]=g;l=f;return e|0}function uV(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0.0,h=0,i=0,j=0.0,k=0.0,l=0,m=0,n=0;l=c[47460]|0;m=l+(b*56|0)|0;n=l+(a*56|0)|0;f=0;g=-4.0;i=0;while(1){if((i|0)==4)break;h=c[l+(a*56|0)+16+(i<<2)>>2]|0;if((h|0)>=1?(j=+vV(n,l+(h*56|0)|0,m),j>g):0){f=i;g=j}i=i+1|0}c[d>>2]=f;f=0;i=0;g=-4.0;while(1){if((i|0)==4)break;h=c[l+(b*56|0)+16+(i<<2)>>2]|0;if((h|0)>=1?(k=+vV(m,l+(h*56|0)|0,n),k>g):0){f=i;g=k}i=i+1|0}c[e>>2]=f;return}function vV(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0,i=0.0,j=0.0,k=0.0;g=+h[a>>3];k=+h[b>>3]-g;j=+h[a+8>>3];i=+h[b+8>>3]-j;g=+h[c>>3]-g;j=+h[c+8>>3]-j;d=k*g+i*j;e=+G(+(k*k+i*i));f=+G(+(g*g+j*j));if(!(k*j-i*g>=0.0))d=-d/e/f+-2.0;else d=d/e/f;return +d}function wV(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0,k=0,l=0;c[e>>2]=c[a>>2];c[e+4>>2]=c[a+4>>2];c[e+8>>2]=c[a+8>>2];c[e+12>>2]=c[a+12>>2];l=e+32|0;k=a+16|0;c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];c[l+8>>2]=c[k+8>>2];c[l+12>>2]=c[k+12>>2];d=(d|0)==0;g=+h[a+8>>3];j=+h[k>>3];i=+h[a>>3];f=+h[a+24>>3];h[e+16>>3]=d?i:j;h[e+24>>3]=d?f:g;h[e+48>>3]=d?j:i;h[e+56>>3]=d?g:f;a:do if(b|0){a=0;while(1){if((a|0)==4)break a;k=e+(a<<4)+8|0;j=+h[k>>3];l=e+(a<<4)|0;h[k>>3]=+h[l>>3];h[l>>3]=-j;a=a+1|0}}while(0);return}function xV(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=b+3|0;i=b+1|0;j=b+2|0;f=0;g=b;while(1){if((g|0)>(h|0))break;k=g+1|0;e=a+(g*56|0)+44|0;do if((g|0)!=(b|0))if((g|0)==(h|0)){c[e>>2]=b;e=j;break}else{c[e>>2]=k;e=g+-1|0;break}else{c[e>>2]=i;e=h}while(0);c[a+(g*56|0)+48>>2]=e;c[a+(g*56|0)+32>>2]=0;m=a+(g*56|0)|0;l=d+(f<<4)|0;c[m>>2]=c[l>>2];c[m+4>>2]=c[l+4>>2];c[m+8>>2]=c[l+8>>2];c[m+12>>2]=c[l+12>>2];I6(a+(e*56|0)+16|0,l|0,16)|0;f=f+1|0;g=k}return b+4|0}function yV(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;c[47464]=e<<1;c[47465]=e;k=HK(e*80|0)|0;c[47466]=1;c[47467]=1;u6(f|0,0,e*72|0)|0;g=zV(c[d+4>>2]|0,b,f,k)|0;e=1;while(1){if((e|0)>(a|0))break;c[b+(e*56|0)+40>>2]=g;c[b+(e*56|0)+36>>2]=g;e=e+1|0}j=AV(a)|0;g=2;i=1;while(1){if((i|0)>(j|0))break;e=BV(a,i+-1|0)|0;h=BV(a,i)|0;while(1){if((e|0)>=(h|0)){e=1;break}CV(c[d+(g<<2)>>2]|0,b,f,k);e=e+1|0;g=g+1|0}while(1){if((e|0)>(a|0))break;DV(e,b,f,k);e=e+1|0}i=i+1|0}e=BV(a,j)|0;while(1){if((e|0)>=(a|0))break;CV(c[d+(g<<2)>>2]|0,b,f,k);g=g+1|0;e=e+1|0}l6(k);return c[47466]|0}function zV(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=IV()|0;c[e+(f*40|0)>>2]=2;s=e+(f*40|0)+8|0;k=b+(a*56|0)|0;l=b+(a*56|0)+16|0;MV(s,k,l);n=IV()|0;c[e+(f*40|0)+36>>2]=n;c[e+(n*40|0)>>2]=3;c[e+(n*40|0)+28>>2]=f;j=IV()|0;c[e+(f*40|0)+32>>2]=j;c[e+(j*40|0)>>2]=2;r=e+(j*40|0)+8|0;NV(r,k,l);c[e+(j*40|0)+28>>2]=f;l=IV()|0;c[e+(j*40|0)+32>>2]=l;c[e+(l*40|0)>>2]=3;c[e+(l*40|0)+28>>2]=j;k=IV()|0;c[e+(j*40|0)+36>>2]=k;c[e+(k*40|0)>>2]=1;c[e+(k*40|0)+4>>2]=a;c[e+(k*40|0)+28>>2]=j;j=IV()|0;c[e+(k*40|0)+32>>2]=j;c[e+(j*40|0)>>2]=3;c[e+(j*40|0)+28>>2]=k;g=IV()|0;c[e+(k*40|0)+36>>2]=g;c[e+(g*40|0)>>2]=3;c[e+(g*40|0)+28>>2]=k;k=HV(d)|0;i=HV(d)|0;m=HV(d)|0;o=HV(d)|0;p=d+(k*72|0)+8|0;q=d+(i*72|0)+8|0;t=d+(o*72|0)+24|0;c[t>>2]=c[s>>2];c[t+4>>2]=c[s+4>>2];c[t+8>>2]=c[s+8>>2];c[t+12>>2]=c[s+12>>2];I6(q|0,s|0,16)|0;c[p>>2]=c[q>>2];c[p+4>>2]=c[q+4>>2];c[p+8>>2]=c[q+8>>2];c[p+12>>2]=c[q+12>>2];p=d+(k*72|0)+24|0;q=d+(i*72|0)+24|0;s=d+(m*72|0)+8|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];I6(q|0,r|0,16)|0;c[p>>2]=c[q>>2];c[p+4>>2]=c[q+4>>2];c[p+8>>2]=c[q+8>>2];c[p+12>>2]=c[q+12>>2];h[d+(o*72|0)+16>>3]=1073741824.0;h[d+(o*72|0)+8>>3]=1073741824.0;h[d+(m*72|0)+32>>3]=-1073741824.0;h[d+(m*72|0)+24>>3]=-1073741824.0;c[d+(i*72|0)>>2]=a;c[d+(k*72|0)+4>>2]=a;c[d+(i*72|0)+40>>2]=o;c[d+(k*72|0)+40>>2]=o;c[d+(i*72|0)+48>>2]=m;c[d+(k*72|0)+48>>2]=m;c[d+(m*72|0)+40>>2]=k;c[d+(o*72|0)+48>>2]=k;c[d+(m*72|0)+44>>2]=i;c[d+(o*72|0)+52>>2]=i;c[d+(k*72|0)+56>>2]=j;c[d+(i*72|0)+56>>2]=g;c[d+(m*72|0)+56>>2]=l;c[d+(o*72|0)+56>>2]=n;c[d+(i*72|0)+68>>2]=1;c[d+(k*72|0)+68>>2]=1;c[d+(o*72|0)+68>>2]=1;c[d+(m*72|0)+68>>2]=1;c[e+(n*40|0)+24>>2]=o;c[e+(l*40|0)+24>>2]=m;c[e+(j*40|0)+24>>2]=k;c[e+(g*40|0)+24>>2]=i;c[b+(a*56|0)+32>>2]=1;return f|0}function AV(a){a=a|0;var b=0.0;b=+(a|0);a=0;while(1){if(!(b>=1.0))break;b=+W3(b);a=a+1|0}return a+-1|0}function BV(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;d=+(a|0);c=d;a=0;while(1){if((a|0)>=(b|0))break;c=+W3(c);a=a+1|0}return ~~+R(+(d/c))|0}
function pq(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,m=0,n=0.0,o=0.0,p=0,q=0.0,r=0,s=0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0,B=0.0,C=0,D=0,E=0,F=0,I=0,J=0.0,K=0.0,L=0,M=0,N=0,O=0.0,P=0.0,Q=0,R=0,T=0,U=0,V=0,W=0,X=0,Y=0.0,Z=0,_=0.0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;ha=l;l=l+32|0;ba=ha+24|0;ca=ha+20|0;da=ha+16|0;fa=ha+12|0;ga=ha+8|0;X=ha;q=+h[e>>3];p=e+24|0;o=+h[p>>3];r=e+32|0;n=+h[r>>3];Y=+h[e+72>>3];Z=c[e+80>>2]|0;_=+h[e+88>>3];t=+h[e+96>>3];$=c[e+104>>2]|0;c[ba>>2]=0;c[ca>>2]=10;c[da>>2]=0;c[fa>>2]=0;c[ga>>2]=0;h[X>>3]=0.0;if(!((b|0)==0|(Z|0)<1)?(aa=c[b>>2]|0,m=c[b+4>>2]|0,!((a|0)<1|(m|0)<1)):0){if((m|0)<(c[e+52>>2]|0)){s=0;j=0;k=0}else{k=IK(a*80|0)|0;c[da>>2]=k;c[fa>>2]=IK(80)|0;c[ga>>2]=IK(80)|0;s=1;j=k}c[i>>2]=0;if((aa|0)==(m|0)){R=sw(b,1)|0;T=c[R+20>>2]|0;U=c[R+24>>2]|0;V=c[d+20>>2]|0;W=c[d+24>>2]|0;Q=c[d+28>>2]|0;a:do if(c[e+16>>2]|0){T4(c[e+108>>2]|0);k=S(aa,a)|0;j=0;while(1){if((j|0)>=(k|0))break a;h[g+(j<<3)>>3]=+Pw();j=j+1|0}}while(0);if(o<0.0){o=+aq(R,a,g);h[p>>3]=o}if(n<0.0){h[r>>3]=.2;n=.2}if(q>=0.0){h[e>>3]=-1.0;q=-1.0}O=1.0-q;P=+H(+o,+O);K=+H(+n,+((2.0-q)/3.0))/o;M=a<<3;L=IK(M)|0;M=S(aa,M)|0;N=IK(M)|0;F=(s|0)!=0;I=e+116|0;J=K*.2;C=q==-1.0;D=e+64|0;E=(f|0)!=0;j=0;A=0;B=0.0;z=t;b:while(1){A=A+1|0;B6(N|0,g|0,M|0)|0;if(F)j=ew(a,aa,10,g,(c[I>>2]|0)==0?0:f)|0;s=0;o=0.0;c:while(1){if((s|0)<(aa|0))k=0;else break;while(1){if((k|0)>=(a|0))break;h[L+(k<<3)>>3]=0.0;k=k+1|0}x=s+1|0;d=T+(x<<2)|0;y=S(s,a)|0;m=c[T+(s<<2)>>2]|0;while(1){if((m|0)>=(c[d>>2]|0))break;p=U+(m<<2)|0;k=c[p>>2]|0;d:do if((k|0)!=(s|0)){n=+Xw(g,a,s,k);k=0;while(1){if((k|0)>=(a|0))break d;t=n*(K*(+h[g+(k+y<<3)>>3]-+h[g+((S(c[p>>2]|0,a)|0)+k<<3)>>3]));w=L+(k<<3)|0;h[w>>3]=+h[w>>3]-t;k=k+1|0}}while(0);m=m+1|0}p=V+(x<<2)|0;d=c[V+(s<<2)>>2]|0;while(1){if((d|0)>=(c[p>>2]|0))break;r=W+(d<<2)|0;k=c[r>>2]|0;e:do if((k|0)!=(s|0)){n=+Ww(g,a,s,k);m=Q+(d<<3)|0;k=0;while(1){if((k|0)>=(a|0))break e;q=+h[m>>3];t=n-q;t=t*(t*(J*(+h[g+(k+y<<3)>>3]-+h[g+((S(c[r>>2]|0,a)|0)+k<<3)>>3])))/n;w=L+(k<<3)|0;h[w>>3]=+h[w>>3]+(n<q?t:-t);k=k+1|0}}while(0);d=d+1|0}f:do if(!F)if(E&(c[I>>2]|0)!=0){k=0;while(1){if((k|0)==(aa|0)){n=0.0;k=0;break f}g:do if((k|0)!=(s|0)){q=+Ww(g,a,s,k);d=f+(k<<3)|0;p=S(k,a)|0;t=q*q;m=0;while(1){if((m|0)>=(a|0))break g;r=L+(m<<3)|0;if(C)n=t;else n=+H(+q,+O);h[r>>3]=+h[r>>3]+P*+h[d>>3]*(+h[g+(m+y<<3)>>3]-+h[g+(m+p<<3)>>3])/n;m=m+1|0}}while(0);k=k+1|0}}else{k=0;while(1){if((k|0)==(aa|0)){n=0.0;k=0;break f}h:do if((k|0)!=(s|0)){q=+Ww(g,a,s,k);d=S(k,a)|0;t=q*q;m=0;while(1){if((m|0)>=(a|0))break h;p=L+(m<<3)|0;if(C)n=t;else n=+H(+q,+O);h[p>>3]=+h[p>>3]+P*(+h[g+(m+y<<3)>>3]-+h[g+(m+d<<3)>>3])/n;m=m+1|0}}while(0);k=k+1|0}}else{_v(j,+h[D>>3],g+(y<<3)|0,s,ba,ca,da,fa,ga,X,i);d=c[ba>>2]|0;if(c[i>>2]|0)break b;p=c[ga>>2]|0;r=c[fa>>2]|0;s=c[da>>2]|0;k=0;while(1){if((k|0)>=(d|0)){n=0.0;k=0;break f}q=+h[p+(k<<3)>>3];q=q>1.0e-15?q:1.0e-15;u=r+(k<<3)|0;v=S(k,a)|0;t=q*q;m=0;while(1){if((m|0)>=(a|0))break;w=L+(m<<3)|0;if(C)n=t;else n=+H(+q,+O);h[w>>3]=+h[w>>3]+P*+h[u>>3]*(+h[g+(m+y<<3)>>3]-+h[s+(m+v<<3)>>3])/n;m=m+1|0}k=k+1|0}}while(0);while(1){if((k|0)>=(a|0))break;t=+h[L+(k<<3)>>3];n=n+t*t;k=k+1|0}n=+G(+n);o=o+n;i:do if(n>0.0){k=0;while(1){if((k|0)>=(a|0)){k=0;break i}w=L+(k<<3)|0;h[w>>3]=+h[w>>3]/n;k=k+1|0}}else k=0;while(0);while(1){if((k|0)>=(a|0)){s=x;continue c}w=g+(k+y<<3)|0;h[w>>3]=+h[w>>3]+z*+h[L+(k<<3)>>3];k=k+1|0}}if(j|0)lw(j);z=+gq($,z,o,B,_);if(!((A|0)<(Z|0)&z>Y)){ea=75;break}else B=o}if((ea|0)==75?c[e+112>>2]|0:0)hq(a,R,g);l6(N);if((R|0)!=(b|0))nw(R);l6(L);j=c[da>>2]|0;k=j}else c[i>>2]=-100;if(k|0)l6(j);j=c[fa>>2]|0;if(j|0)l6(j);j=c[ga>>2]|0;if(j|0)l6(j)}l=ha;return}function qq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;n=c[b+20>>2]|0;o=c[b+24>>2]|0;p=IK(a<<3)|0;m=c[b>>2]|0;k=0;a:while(1){if((k|0)<(m|0))b=0;else break;while(1){if((b|0)>=(a|0))break;h[p+(b<<3)>>3]=0.0;b=b+1|0}l=k+1|0;j=c[n+(l<<2)>>2]|0;i=c[n+(k<<2)>>2]|0;b=0;while(1){if((i|0)>=(j|0))break;e=c[o+(i<<2)>>2]|0;if((e|0)!=(k|0)){g=S(e,a)|0;e=0;while(1){if((e|0)>=(a|0))break;q=p+(e<<3)|0;h[q>>3]=+h[d+(e+g<<3)>>3]+ +h[q>>3];e=e+1|0}b=b+1|0}i=i+1|0}if((b|0)<=0){k=l;continue}f=.5/+(b|0);e=S(k,a)|0;b=0;while(1){if((b|0)>=(a|0)){k=l;continue a}q=d+(b+e<<3)|0;h[q>>3]=+h[q>>3]*.5+f*+h[p+(b<<3)>>3];b=b+1|0}}l6(p);return}function rq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0.0;i=c[a+20>>2]|0;j=c[a+24>>2]|0;h=c[a>>2]|0;k=IK((h<<2)+4|0)|0;a=0;while(1){if((a|0)>(h|0)){d=0;e=0;break}c[k+(a<<2)>>2]=0;a=a+1|0}while(1){if((e|0)>=(h|0))break;f=e+1|0;g=c[i+(f<<2)>>2]|0;a=0;b=c[i+(e<<2)>>2]|0;while(1){if((b|0)>=(g|0))break;a=((e|0)!=(c[j+(b<<2)>>2]|0)&1)+a|0;b=b+1|0}g=k+(a<<2)|0;e=(c[g>>2]|0)+1|0;c[g>>2]=e;d=(d|0)>(e|0)?d:e;e=f}l=+(c[k+4>>2]|0);if(l>+(d|0)*.8?l>+(h|0)*.3:0)a=1;else a=0;l6(k);return a|0}function sq(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,f=0.0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0;o=l;l=l+48|0;n=o+16|0;j=o;g=S(b,b)|0;e=0;while(1){if((e|0)>=(g|0)){e=0;break}h[n+(e<<3)>>3]=0.0;e=e+1|0}while(1){if((e|0)>=(b|0)){g=0;break}h[j+(e<<3)>>3]=0.0;e=e+1|0}while(1){if((g|0)>=(a|0))break;i=S(g,b)|0;e=0;while(1){if((e|0)>=(b|0))break;m=j+(e<<3)|0;h[m>>3]=+h[c+(e+i<<3)>>3]+ +h[m>>3];e=e+1|0}g=g+1|0}d=+(a|0);e=0;while(1){if((e|0)>=(b|0)){g=0;break}m=j+(e<<3)|0;h[m>>3]=+h[m>>3]/d;e=e+1|0}while(1){if((g|0)>=(a|0)){i=0;break}i=S(g,b)|0;e=0;while(1){if((e|0)>=(b|0))break;m=c+(e+i<<3)|0;h[m>>3]=+h[m>>3]-+h[j+(e<<3)>>3];e=e+1|0}g=g+1|0}while(1){if((i|0)>=(a|0))break;j=S(i,b)|0;g=0;while(1){if((g|0)>=(b|0))break;k=c+(g+j<<3)|0;m=S(g,b)|0;e=0;while(1){if((e|0)==(b|0))break;p=n+(e+m<<3)|0;h[p>>3]=+h[p>>3]+ +h[k>>3]*+h[c+(e+j<<3)>>3];e=e+1|0}g=g+1|0}i=i+1|0}d=+h[n+8>>3];if(d==0.0)d=0.0;else{q=+h[n>>3];f=+h[n+24>>3];d=-(f-q-+G(+(f*f+(d*(d*4.0)+q*q-q*2.0*f))))/(d*2.0)}f=+G(+(d*d+1.0));d=d/f;f=1.0/f;e=0;while(1){if((e|0)>=(a|0))break;p=S(e,b)|0;n=c+(p<<3)|0;q=+h[n>>3];p=c+(p+1<<3)|0;r=+h[p>>3];h[n>>3]=d*q+f*r;h[p>>3]=d*r-f*q;e=e+1|0}l=o;return}function tq(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;uq(a,b,c,d,e,f,g,h,i,j);return}function uq(b,d,e,f,g,i,j,k,m,n){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;var o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;H=l;l=l+192|0;D=H+176|0;B=H+168|0;F=H;B6(F|0,f|0,168)|0;c[n>>2]=0;do if(d|0?(G=c[d+4>>2]|0,!((b|0)<1|(G|0)<1)):0){A=f+136|0;if((tw(d,0)|0)!=0?(c[d+16>>2]|0)==1:0){if((c[A>>2]|0)==1)p=yw(e)|0;else p=e;E=yw(d)|0}else t=5;do if((t|0)==5)if((c[A>>2]|0)==1){E=xw(d,0)|0;p=xw(e,0)|0;break}else{E=Nw(d)|0;p=e;break}while(0);C=f+160|0;r=c[C>>2]|0;q=(k|0)>0;if((r|0)==3){if(q)t=14}else if(q&(r|0)==4)t=14;if((t|0)==14){e=IK(S(b<<3,c[E>>2]|0)|0)|0;G=vq(E,k,m)|0;tq(b,G,0,f,0,0,e,0,0,n);wq(b,E,k,m,j,e);iu(b,E,j,i,c[f+124>>2]|0,+h[f+144>>3],c[C>>2]|0,k,m);nw(G);l6(e);if((E|0)==(d|0))break;nw(E);break}y=cx(c[f+44>>2]|0,c[f+48>>2]|0)|0;c[y+16>>2]=c[f+40>>2];z=qx(E,p,g,y)|0;r=tx(z)|0;if(!(c[r+32>>2]|0))s=j;else s=IK(S(b<<3,c[r+4>>2]|0)|0)|0;q=rq(E)|0;if(+h[f>>3]==-1.0001234){h[f>>3]=-1.0;o=(q|0)==0?-1.0:-1.8;q=f;t=20}while(1){if((t|0)==20){t=0;h[q>>3]=o}v=r+24|0;q=f+96|0;w=r+32|0;x=r+8|0;a:do switch(c[A>>2]|0){case 0:{u=c[f+132>>2]|0;switch(u|0){case 0:{kq(b,c[x>>2]|0,f,c[v>>2]|0,s,n);break a}case 2:break;default:t=24}do if((t|0)==24){t=c[x>>2]|0;if((u|0)==3?(c[t>>2]|0)>1e4:0){if(!(a[195234]|0))break;u=c[15715]|0;c[B>>2]=1e4;z4(u,92600,B)|0;break}lq(b,t,f,c[v>>2]|0,s,n);break a}while(0);fq(b,c[x>>2]|0,f,c[v>>2]|0,s,n);break}case 1:{h[q>>3]=1.0;t=f+104|0;c[t>>2]=1;I=(c[r+28>>2]|0)==0;o=I?.5:.05;c[f+80>>2]=I?500:100;I=(c[w>>2]|0)==0;u=r+12|0;mq(b,c[x>>2]|0,c[u>>2]|0,f,c[v>>2]|0,s,o,n);if(I){c[f+16>>2]=0;h[q>>3]=.05;c[t>>2]=0;mq(b,c[x>>2]|0,c[u>>2]|0,f,c[v>>2]|0,s,o*.5,n);mq(b,c[x>>2]|0,c[u>>2]|0,f,c[v>>2]|0,s,o*.125,n);mq(b,c[x>>2]|0,c[u>>2]|0,f,c[v>>2]|0,s,o*.03125,n)}break}default:{}}while(0);v=c[w>>2]|0;if(!v){t=38;break}if(c[n>>2]|0){t=34;break}t=c[r+16>>2]|0;r=c[r+40>>2]|0;if(!(c[v+32>>2]|0))u=j;else u=IK(S(b<<3,c[v+4>>2]|0)|0)|0;I=f+24|0;xq(b,c[v+8>>2]|0,t,c[v+20>>2]|0,s,u,r,+h[I>>3]*.001);l6(s);c[f+16>>2]=0;h[I>>3]=+h[I>>3]*.75;c[f+104>>2]=0;o=((c[(c[v+28>>2]|0)+40>>2]|0)+-9|0)>>>0<2?1.0:.1;r=v;s=u;t=20}if((t|0)==34)l6(s);else if((t|0)==38){Rx(b,E,f,g,j,n);q=f+124|0;if(a[195234]|0){I=c[15715]|0;c[D>>2]=c[q>>2];z4(I,92663,D)|0}if((b|0)==2)sq(G,2,j);o=+h[f+152>>3];if(o!=0.0)yq(G,b,j,o);iu(b,E,j,i,c[q>>2]|0,+h[f+144>>3],c[C>>2]|0,k,m)}B6(f|0,F|0,168)|0;if((E|0)!=(d|0))nw(E);if(!((p|0)==0|(p|0)==(e|0)))nw(p);dx(y);ex(z)}while(0);l=H;return}function vq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=l;l=l+16|0;x=y;u=c[a+20>>2]|0;v=c[a+24>>2]|0;w=IK(c[a>>2]<<2)|0;e=0;while(1){if((e|0)>=(c[a>>2]|0)){e=0;break}c[w+(e<<2)>>2]=1;e=e+1|0}while(1){if((e|0)>=(b|0)){e=0;d=0;break}c[w+(c[d+(e<<2)>>2]<<2)>>2]=-1;e=e+1|0}while(1){m=c[a>>2]|0;if((d|0)>=(m|0)){d=0;b=0;break}b=w+(d<<2)|0;if((c[b>>2]|0)>0){c[b>>2]=e;e=e+1|0}d=d+1|0}a:while(1){while(1){if((b|0)>=(m|0))break a;j=b+1|0;if((c[w+(b<<2)>>2]|0)<0)b=j;else break}k=c[u+(j<<2)>>2]|0;i=c[u+(b<<2)>>2]|0;while(1){if((i|0)>=(k|0)){b=j;continue a}f=c[v+(i<<2)>>2]|0;b:do if((c[w+(f<<2)>>2]|0)>-1)d=d+1|0;else{h=c[u+(f+1<<2)>>2]|0;g=c[u+(f<<2)>>2]|0;while(1){if((g|0)>=(h|0))break b;f=c[v+(g<<2)>>2]|0;if((f|0)!=(b|0))d=((c[w+(f<<2)>>2]|0)>>>31^1)+d|0;g=g+1|0}}while(0);i=i+1|0}}b=d<<2;if((d|0)>0){r=IK(b)|0;s=IK(b)|0;p=s;q=r}else{p=0;q=0;r=0;s=0}t=c[15715]|0;b=0;d=0;c:while(1){f=c[a>>2]|0;while(1){if((b|0)>=(f|0))break c;n=w+(b<<2)|0;o=b+1|0;if((c[n>>2]|0)<0)b=o;else break}m=u+(o<<2)|0;k=c[u+(b<<2)>>2]|0;while(1){if((k|0)>=(c[m>>2]|0)){b=o;continue c}f=v+(k<<2)|0;g=c[f>>2]|0;d:do if((c[w+(g<<2)>>2]|0)>-1){c[q+(d<<2)>>2]=c[n>>2];c[p+(d<<2)>>2]=c[w+(c[f>>2]<<2)>>2];d=d+1|0}else{j=u+(g+1<<2)|0;i=c[u+(g<<2)>>2]|0;while(1){if((i|0)>=(c[j>>2]|0))break d;g=v+(i<<2)|0;h=c[g>>2]|0;if((h|0)!=(b|0)?(c[w+(h<<2)>>2]|0)>-1:0){c[q+(d<<2)>>2]=c[n>>2];h=d+1|0;c[p+(d<<2)>>2]=c[w+(c[g>>2]<<2)>>2];f=c[n>>2]|0;d=c[w+(c[g>>2]<<2)>>2]|0;if((f|0)==68|(d|0)==68){c[x>>2]=f;c[x+4>>2]=d;z4(t,92681,x)|0;d=h}else d=h}i=i+1|0}}while(0);k=k+1|0}}x=Aw(d,e,e,q,p,0,8,8)|0;l6(r);l6(s);l6(w);l=y;return x|0}function wq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0;p=IK(c[b>>2]<<2)|0;i=0;while(1){if((i|0)>=(c[b>>2]|0)){i=0;break}c[p+(i<<2)>>2]=1;i=i+1|0}while(1){if((i|0)>=(d|0)){i=0;l=0;break}j=c[e+(i<<2)>>2]|0;if((j|0)>-1?(j|0)<(c[b>>2]|0):0)c[p+(j<<2)>>2]=-1;i=i+1|0}while(1){n=c[b>>2]|0;if((l|0)>=(n|0)){m=0;break}j=p+(l<<2)|0;if((c[j>>2]|0)>-1){c[j>>2]=i;i=i+1|0}l=l+1|0}while(1){if((m|0)>=(n|0))break;i=c[p+(m<<2)>>2]|0;a:do if((i|0)>-1){j=S(i,a)|0;l=S(m,a)|0;i=0;while(1){if((i|0)>=(a|0))break a;h[f+(i+l<<3)>>3]=+h[g+(i+j<<3)>>3];i=i+1|0}}while(0);m=m+1|0}o=b+20|0;g=b+24|0;n=0;while(1){if((n|0)>=(d|0))break;b=c[e+(n<<2)>>2]|0;i=c[o>>2]|0;l=c[i+(b+1<<2)>>2]|0;i=c[i+(b<<2)>>2]|0;m=l-i|0;b=S(b,a)|0;j=0;while(1){if((j|0)>=(a|0))break;h[f+(j+b<<3)>>3]=0.0;j=j+1|0}while(1){if((i|0)<(l|0))j=0;else break;while(1){if((j|0)>=(a|0))break;k=+h[f+((S(c[(c[g>>2]|0)+(i<<2)>>2]|0,a)|0)+j<<3)>>3];q=f+(j+b<<3)|0;h[q>>3]=k+ +h[q>>3];j=j+1|0}i=i+1|0}k=+(m|0);i=0;while(1){if((i|0)>=(a|0))break;q=f+(i+b<<3)|0;h[q>>3]=+h[q>>3]/k;i=i+1|0}n=n+1|0}l6(p);return}function xq(a,b,d,e,f,g,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=+j;var k=0,m=0,n=0,o=0,p=0,q=0.0;o=l;l=l+16|0;n=o;c[n>>2]=g;Dw(d,0,f,0,n,0,a);a:do if((i+-1|0)>>>0<6){qq(a,b,c[n>>2]|0);k=c[e>>2]|0;m=c[e+20>>2]|0;g=c[e+24>>2]|0;b=0;b:while(1){if((b|0)>=(k|0))break a;i=b+1|0;e=m+(i<<2)|0;b=c[m+(b<<2)>>2]|0;c:while(1){b=b+1|0;if((b|0)>=(c[e>>2]|0)){b=i;continue b}f=g+(b<<2)|0;d=0;while(1){if((d|0)>=(a|0))continue c;q=(+Pw()+-.5)*j;p=(c[n>>2]|0)+((S(c[f>>2]|0,a)|0)+d<<3)|0;h[p>>3]=q+ +h[p>>3];d=d+1|0}}}}while(0);l=o;return}function yq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;var e=0,f=0.0,g=0,i=0,j=0,k=0,m=0,n=0.0,o=0.0;k=l;l=l+16|0;j=k;e=0;while(1){if((e|0)>=(b|0)){g=0;break}h[j+(e<<3)>>3]=0.0;e=e+1|0}while(1){if((g|0)>=(a|0))break;i=S(g,b)|0;e=0;while(1){if((e|0)>=(b|0))break;m=j+(e<<3)|0;h[m>>3]=+h[c+(e+i<<3)>>3]+ +h[m>>3];e=e+1|0}g=g+1|0}f=+(a|0);e=0;while(1){if((e|0)>=(b|0)){g=0;break}m=j+(e<<3)|0;h[m>>3]=+h[m>>3]/f;e=e+1|0}while(1){if((g|0)>=(a|0))break;i=S(g,b)|0;e=0;while(1){if((e|0)>=(b|0))break;m=c+(e+i<<3)|0;h[m>>3]=+h[m>>3]-+h[j+(e<<3)>>3];e=e+1|0}g=g+1|0}d=d*-.017453277777777776;f=+I(+d);d=+J(+d);e=0;while(1){if((e|0)>=(a|0))break;m=S(e,b)|0;j=c+(m<<3)|0;n=+h[j>>3];m=c+(m+1<<3)|0;o=+h[m>>3];h[j>>3]=f*n+d*o;h[m>>3]=f*o-d*n;e=e+1|0}l=k;return}function zq(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=+g;i=i|0;var j=0,k=0,l=0,m=0;m=(tw(b,0)|0)!=0;j=(c[b+16>>2]|0)==1;do if(!(m&j))if(j){j=yw(sw(b,0)|0)|0;break}else{j=Nw(b)|0;break}else j=b;while(0);l=yw(j)|0;c[i>>2]=0;j=c[l>>2]|0;m=S(j,a)|0;if(!d){IK(S(a<<3,j)|0)|0;_a()}k=Dx(l,a,0.0,c[d>>2]|0,(e|0)==0?0:2,1)|0;if(!k)c[i>>2]=-1;else{h[k+40>>3]=.1;c[k+24>>2]=5;+Fx(k,a,c[d>>2]|0,f,g);e=k+32|0;j=0;while(1){if((j|0)>=(m|0))break;i=(c[d>>2]|0)+(j<<3)|0;h[i>>3]=+h[i>>3]/+h[e>>3];j=j+1|0}Ex(k)}if((l|0)!=(b|0))nw(l);return}function Aq(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=+g;h=h|0;zq(a,c,d,e,f,g,h);return}function Bq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0.0;A=c[b>>2]|0;B=c[b+20>>2]|0;y=c[b+24>>2]|0;z=c[b+28>>2]|0;if(!(tw(b,0)|0))Aa(96096,92688,37,92705);a=IK(56)|0;p=a+20|0;c[p>>2]=0;c[a+24>>2]=2;c[a+12>>2]=0;o=IK(16)|0;c[p>>2]=o;h[o>>3]=e;h[o+8>>3]=f;c[a+16>>2]=105;h[a+40>>3]=.01;c[a+48>>2]=~~+G(+(+(c[b>>2]|0)));o=b+8|0;p=a+4|0;c[p>>2]=ow(A,A,(c[o>>2]|0)+A|0,1,1)|0;o=ow(A,A,(c[o>>2]|0)+A|0,1,1)|0;c[a+8>>2]=o;p=c[p>>2]|0;q=c[p+28>>2]|0;r=c[o+28>>2]|0;if((o|0)==0|(p|0)==0){Cx(a);a=0}else{s=c[p+20>>2]|0;t=c[p+24>>2]|0;u=c[o+20>>2]|0;v=c[o+24>>2]|0;c[u>>2]=0;c[s>>2]=0;m=0;d=0;while(1){if((m|0)>=(A|0))break;w=m+1|0;x=B+(w<<2)|0;e=0.0;f=0.0;n=c[B+(m<<2)>>2]|0;while(1){l=d+1|0;g=t+(d<<2)|0;b=q+(d<<3)|0;i=v+(d<<2)|0;j=r+(d<<3)|0;if((n|0)>=(c[x>>2]|0))break;k=c[y+(n<<2)>>2]|0;if((k|0)!=(m|0)){C=+h[z+(n<<3)>>3];C=C>=0.0?C:-C;C=C>.01?C:.01;c[g>>2]=k;c[i>>2]=k;h[b>>3]=-1.0;h[j>>3]=-C;e=e+ +h[b>>3];f=f-C;d=l}n=n+1|0}c[g>>2]=m;c[i>>2]=m;h[b>>3]=-e;h[j>>3]=-f;c[s+(w<<2)>>2]=l;c[u+(w<<2)>>2]=l;m=w;d=l}c[p+8>>2]=d;c[o+8>>2]=d}return a|0}function Cq(a){a=a|0;Cx(a);return}function Dq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +(+Gx(a,b,c,d,.001))}function Eq(a,b){a=a|0;b=+b;var d=0,e=0,f=0,g=0;if((c[a+16>>2]|0)==1)d=sw(a,0)|0;else d=Nw(a)|0;f=c[d+28>>2]|0;a:do if(b!=1.0){e=c[d+8>>2]|0;a=0;while(1){if((a|0)>=(e|0))break a;g=f+(a<<3)|0;h[g>>3]=+h[g>>3]*b;a=a+1|0}}while(0);return d|0}function Fq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,l=0.0;j=c[b>>2]|0;c[e>>2]=0;k=S(j,a)|0;e=0;while(1){if((e|0)>=(k|0)){e=1;f=1;break}h[d+(e<<3)>>3]=+Pw()*100.0;e=e+1|0}while(1){if((f|0)>=(j|0))break;i=S(f,a)|0;g=0;while(1){if((g|0)>=(a|0))break;l=+h[d+(g<<3)>>3]-+h[d+(g+i<<3)>>3];if((l>=0.0?l:-l)>1.0e-16){e=0;f=j;break}else g=g+1|0}f=f+1|0}a:do if(e|0){T4(1);e=0;while(1){if((e|0)>=(k|0))break a;h[d+(e<<3)>>3]=+Pw()*100.0;e=e+1|0}}while(0);e=Eq(b,1.0)|0;if(!(tw(e,0)|0))Aa(92731,92688,164,92767);else{k=Bq(0,e,0,101.0e5,100.0,0)|0;+Dq(k,a,d,300);Cq(k);k=Bq(0,e,0,101.0e3,100.0,0)|0;+Dq(k,a,d,300);Cq(k);k=Bq(0,e,0,1010.0,100.0,0)|0;+Dq(k,a,d,300);Cq(k);k=Bq(0,e,0,10.1,100.0,0)|0;+Dq(k,a,d,300);Cq(k);Zw(0.0,0.0,490.0,700.0,c[b>>2]|0,a,d);nw(e);return}}function Gq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,l=0,m=0;k=IK((qB(a)|0)<<4)|0;i=(e|0)!=0;j=b+8|0;g=gC(a)|0;f=0;while(1){if(!g)break;if(i)f=((h2(HB(g)|0,92782,11)|0)==0&1)+f|0;m=c[g+16>>2]|0;l=c[m+120>>2]<<1;h[k+(l<<3)>>3]=+h[m+32>>3]*.5+ +h[b>>3];h[k+((l|1)<<3)>>3]=+h[m+40>>3]*.5+ +h[j>>3];g=hC(a,g)|0}if(i&(f|0)!=0){b=IK(f<<2)|0;g=gC(a)|0;f=0;while(1){if(!g)break;if(!(h2(HB(g)|0,92782,11)|0)){c[b+(f<<2)>>2]=c[(c[g+16>>2]|0)+120>>2];f=f+1|0}g=hC(a,g)|0}c[e>>2]=b;c[d>>2]=f}return k|0}function Hq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=l;l=l+32|0;w=z+16|0;v=z+8|0;u=z;if(a){x=qB(a)|0;y=rB(a)|0;b=gC(a)|0;e=0;while(1){if(!b)break;c[(c[b+16>>2]|0)+120>>2]=e;b=hC(a,b)|0;e=e+1|0}r=y<<2;q=IK(r)|0;r=IK(r)|0;b=y<<3;s=IK(b)|0;o=DA(a,2,101842,0)|0;t=(d|0)!=0;if(t){e=DA(a,2,92794,0)|0;p=HK(b)|0;n=p}else{n=0;e=0;p=0}j=(o|0)==0;k=(e|0)==0;i=gC(a)|0;b=0;while(1){if(!i)break;m=c[(c[i+16>>2]|0)+120>>2]|0;g=UA(a,i)|0;while(1){if(!g)break;c[q+(b<<2)>>2]=m;c[r+(b<<2)>>2]=c[(c[(c[((c[g>>2]&3|0)==2?g:g+-48|0)+40>>2]|0)+16>>2]|0)+120>>2];if(!j?(A=OA(g,o)|0,c[v>>2]=u,(q4(A,101510,v)|0)==1):0)f=+h[u>>3];else{h[u>>3]=1.0;f=1.0}h[s+(b<<3)>>3]=f;if(!k){A=OA(g,e)|0;c[w>>2]=u;if((q4(A,101510,w)|0)==1)f=+h[u>>3];else{h[u>>3]=1.0;f=1.0}h[n+(b<<3)>>3]=f}g=WA(a,g)|0;b=b+1|0}i=hC(a,i)|0}b=Aw(y,x,x,q,r,s,1,8)|0;if(t)c[d>>2]=Aw(y,x,x,q,r,p,1,8)|0;l6(q);l6(r);l6(s);if(n)l6(p)}else b=0;l=z;return b|0}function Iq(a){a=a|0;var b=0,d=0,e=0.0,f=0,g=0.0,i=0.0,j=0.0,k=0,m=0,n=0,o=0.0,p=0.0;m=l;l=l+16|0;k=m;a:do if(Jq(a,k)|0){b=c[(c[(gC(a)|0)+16>>2]|0)+132>>2]|0;g=+h[b>>3];e=+h[b+8>>3];b=gC(a)|0;while(1){if(!b)break;f=c[(c[b+16>>2]|0)+132>>2]|0;h[f>>3]=+h[f>>3]-g;f=f+8|0;h[f>>3]=+h[f>>3]-e;b=hC(a,b)|0}b=(g!=0.0|e!=0.0)&1;d=gC(a)|0;while(1){if(!d)break a;f=UA(a,d)|0;if(f|0)break;d=hC(a,d)|0}n=c[f>>2]&3;d=c[(c[(c[((n|0)==2?f:f+-48|0)+40>>2]|0)+16>>2]|0)+132>>2]|0;f=c[(c[(c[((n|0)==3?f:f+48|0)+40>>2]|0)+16>>2]|0)+132>>2]|0;i=+h[f+8>>3];j=+h[f>>3];e=+O(+(+h[d+8>>3]-i),+(+h[d>>3]-j));e=+h[k>>3]-e;h[k>>3]=e;if(e!=0.0){g=+I(+e);e=+J(+e);b=gC(a)|0;while(1){if(!b){b=1;break a}k=c[(c[b+16>>2]|0)+132>>2]|0;p=+h[k>>3]-j;n=k+8|0;o=+h[n>>3]-i;h[k>>3]=j+(g*p-e*o);h[n>>3]=i+(e*p+g*o);b=hC(a,b)|0}}}else b=0;while(0);l=m;return b|0}function Jq(b,d){b=b|0;d=d|0;var e=0.0,f=0,g=0;g=l;l=l+16|0;f=g;b=NA(b,92798)|0;do if((b|0)!=0?(a[b>>0]|0)!=0:0){e=+b6(b,f);if((c[f>>2]|0)==(b|0))if(!((bP(b)|0)<<24>>24)){b=0;break}else e=0.0;while(1){if(!(e>180.0))break;e=e+-360.0}while(1){if(!(e<=-180.0))break;e=e+360.0}h[d>>3]=e/180.0*3.141592653589793;b=1}else b=0;while(0);l=g;return b|0}function Kq(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=NA(a,92808)|0;return Lq(a,(d|0)==0?(c|0?c:195341):d,b)|0}function Lq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0.0;o=l;l=l+32|0;n=o+16|0;j=o+8|0;i=o;m=e+4|0;if((d|0)!=0?(a[d>>0]|0)!=0:0){f=17936;while(1){g=c[f+4>>2]|0;if(!g)break;if(!(N3(d,g,c[f+8>>2]|0)|0)){k=5;break}f=f+16|0}if((k|0)==5){if(!(c[f+12>>2]|0)){c[i>>2]=g;dA(0,92816,i)|0;f=17936}i=c[f>>2]|0;c[e>>2]=i;c[m>>2]=c[f+12>>2];if((i|0)==18)Mq(b,d+(c[f+8>>2]|0)|0,e)}if(!(c[f+4>>2]|0)){f=cP(d,63)|0;if(f<<24>>24==63){c[j>>2]=d;dA(0,92858,j)|0;f=0}else f=f&255;g=(f|0)==0;f=g&1;g=g?92905:136010;k=14}}else{f=0;g=136010;k=14}if((k|0)==14){c[e>>2]=f;c[m>>2]=g}if(a[195234]|0){k=c[15715]|0;j=c[e+8>>2]|0;p=+h[e+16>>3];c[n>>2]=c[m>>2];c[n+4>>2]=j;h[n+8>>3]=p;z4(k,92913,n)|0}l=o;return e|0}function Mq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;g=e+4|0;c[f>>2]=g;f=(q4(b,137696,f)|0)>0;b=c[g>>2]|0;c[d+8>>2]=f&(b|0)>-1?b:1e3;h[d+16>>3]=+YO(a,DA(a,0,92949,0)|0,-4.0,-1.0e10);l=e;return}function Nq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=l;l=l+16|0;h=i+8|0;g=i;do if((qB(b)|0)>=2){e=Iq(b)|0;e=(Oq(b)|0)+e|0;f=c[d>>2]|0;if(f){if(a[195234]|0){f=c[15715]|0;k=HB(b)|0;j=c[d+4>>2]|0;c[g>>2]=k;c[g+4>>2]=j;z4(f,93278,g)|0;f=c[d>>2]|0}if(f>>>0>2){switch(f|0){case 3:{f=Pr(b,1)|0;break}case 4:{f=Pr(b,0)|0;break}case 6:case 5:{f=0;break}case 10:case 9:case 7:case 8:case 14:case 13:case 11:case 12:{zr(b,f)|0;f=0;break}case 15:{f=Pr(b,-1)|0;break}default:{c[h>>2]=c[d+4>>2];dA(0,93301,h)|0;f=0}}e=f+e|0;break}if(Pq(b)|0){Qq();l6(c[46887]|0);c[46887]=0;break}Rq(b);if((c[d>>2]|0)==2)f=Sq()|0;else f=Tq()|0;if(f|0)Uq();Qq();l6(c[46887]|0);c[46887]=0;e=f+e|0}}else e=0;while(0);l=i;return e|0}function Oq(b){b=b|0;var d=0,e=0.0,f=0,g=0,i=0.0,j=0,k=0,m=0,n=0;n=l;l=l+48|0;j=n+24|0;g=n+16|0;k=n;d=NA(b,141045)|0;a:do if(((d|0)!=0?(m=k+8|0,c[g>>2]=k,c[g+4>>2]=m,f=q4(d,105804,g)|0,(f|0)!=0):0)?(i=+h[k>>3],!(+F(+i)<1.0e-09)):0){if((f|0)!=1){e=+h[m>>3];if(+F(+e)<1.0e-09){d=0;break}}else{h[m>>3]=i;e=i}if(!(i==1.0&e==1.0)){if(a[195234]|0){g=c[15715]|0;h[j>>3]=i;h[j+8>>3]=e;z4(g,93461,j)|0}d=gC(b)|0;while(1){if(!d){d=1;break a}j=c[(c[d+16>>2]|0)+132>>2]|0;h[j>>3]=+h[k>>3]*+h[j>>3];j=j+8|0;h[j>>3]=+h[m>>3]*+h[j>>3];d=hC(b,d)|0}}else d=0}else d=0;while(0);l=n;return d|0}function Pq(b){b=b|0;var d=0,e=0.0,f=0.0,i=0,j=0,k=0,m=0,n=0,o=0;n=l;l=l+16|0;k=n;c[46896]=qB(b)|0;qs();c[46911]=IK((c[46896]|0)*96|0)|0;d=gC(b)|0;i=c[46911]|0;ir(k,b);e=+g[k>>2];f=+g[k+4>>2];if(!(a[k+8>>0]|0))k=1;else{k=2;e=e/72.0;f=f/72.0}j=0;while(1){if((j|0)>=(c[46896]|0)){d=0;break}o=c[(c[d+16>>2]|0)+132>>2]|0;h[i+8>>3]=+h[o>>3];h[i+16>>3]=+h[o+8>>3];if(kb[k&3](i+40|0,d,e,f)|0){m=6;break}c[i+24>>2]=j;c[i+28>>2]=1;c[i>>2]=d;c[i+88>>2]=0;i=i+96|0;j=j+1|0;d=hC(b,d)|0}if((m|0)==6){l6(c[46911]|0);c[46911]=0;d=1}l=n;return d|0}function Qq(){var a=0,b=0;a=c[46911]|0;b=0;while(1){if((b|0)>=(c[46896]|0))break;mu(a+40|0);a=a+96|0;b=b+1|0}lu();Ss();l6(c[46911]|0);return}function Rq(b){b=b|0;var d=0,e=0,f=0,g=0.0,i=0.0,j=0.0,k=0.0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0;o=l;l=l+32|0;m=o+16|0;n=o;p=c[46911]|0;i=+h[p+8>>3];k=+h[p+16>>3];f=c[46896]|0;d=p;e=1;g=i+ +h[p+40>>3];i=i+ +h[p+56>>3];j=k+ +h[p+48>>3];k=k+ +h[p+64>>3];while(1){if((e|0)>=(f|0))break;s=+h[d+104>>3];q=+h[d+112>>3];t=s+ +h[d+136>>3];r=q+ +h[d+144>>3];s=s+ +h[d+152>>3];q=q+ +h[d+160>>3];d=d+96|0;e=e+1|0;g=t<g?t:g;i=s>i?s:i;j=r<j?r:j;k=q>k?q:k}d=NA(b,93401)|0;if(d|0?a[d>>0]|0:0)h[173]=+a6(d);s=+h[173];t=(k-j)*s;s=(i-g)*s;h[m>>3]=g-s;h[m+8>>3]=j-t;h[n>>3]=i+s;h[n+8>>3]=k+t;ar(m,n);l=o;return}function Sq(){var b=0,d=0,e=0,f=0;e=l;l=l+16|0;d=e;if(Vq(0)|0){Wq();b=0;do{hr();b=b+1|0}while((Vq(b)|0)!=0);if(!(a[195234]|0))b=1;else{f=c[15715]|0;c[d>>2]=b;z4(f,93329,d)|0;b=1}}else b=0;l=e;return b|0}function Tq(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+16|0;i=j+8|0;h=j;d=Vq(0)|0;if(!d)b=0;else{Wq();Xq(0);Vu(0,1);b=0;f=0;e=0;while(1){Zq();e=e+1|0;g=Vq(e)|0;if(!g)break;d=(g|0)<(d|0)?0:f+1|0;c[46888]=1;if(d){_q();b=b+1|0}Xq(1);Vu(0,1);f=d;d=g}if(a[195234]|0){g=c[15715]|0;c[h>>2]=e;z4(g,93329,h)|0;c[i>>2]=b;z4(g,93356,i)|0}$q();b=1}l=j;return b|0}function Uq(){var a=0,b=0,d=0,e=0;d=c[46896]|0;a=c[46911]|0;b=0;while(1){if((b|0)>=(d|0))break;e=c[(c[(c[a>>2]|0)+16>>2]|0)+132>>2]|0;h[e>>3]=+h[a+8>>3];h[e+8>>3]=+h[a+16>>3];a=a+96|0;b=b+1|0}return}function Vq(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+48|0;p=r+24|0;o=r+8|0;q=r;e=c[46911]|0;f=c[46896]|0;b=0;while(1){if((b|0)>=(f|0)){g=0;b=0;break}c[e+(b*96|0)+32>>2]=0;b=b+1|0}a:while(1){if((b|0)>=(f+-1|0))break;n=e+96|0;b=b+1|0;k=e+8|0;m=e+40|0;j=e+32|0;h=n;i=b;while(1){if((i|0)>=(f|0)){e=n;continue a}f=h+8|0;c[o>>2]=c[k>>2];c[o+4>>2]=c[k+4>>2];c[o+8>>2]=c[k+8>>2];c[o+12>>2]=c[k+12>>2];c[p>>2]=c[f>>2];c[p+4>>2]=c[f+4>>2];c[p+8>>2]=c[f+8>>2];c[p+12>>2]=c[f+12>>2];if(!(vu(o,m,p,h+40|0)|0))e=g;else{c[j>>2]=1;c[h+32>>2]=1;e=g+1|0}h=h+96|0;i=i+1|0;g=e;f=c[46896]|0}}if((d[195234]|0)>1){p=c[15715]|0;c[q>>2]=a;c[q+4>>2]=g;z4(p,93382,q)|0}l=r;return g|0}function Wq(){var a=0,b=0,d=0,e=0.0,f=0,g=0.0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0;fr();l=c[46890]|0;m=c[46911]|0;a=c[46887]|0;a:while(1){k=a;if(a>>>0>=l>>>0)break;b=a+4|0;if(b>>>0>=l>>>0){a=b;continue}f=c[b>>2]|0;d=c[a>>2]|0;j=+h[d>>3];if(+h[f>>3]!=j){a=b;continue}i=+h[d+8>>3];if(+h[f+8>>3]!=i){a=b;continue}f=a+8|0;d=2;while(1){if(f>>>0>=l>>>0)break;o=c[f>>2]|0;e=+h[o>>3];g=+h[o+8>>3];if(!(e==j&g==i)){n=10;break}f=f+4|0;d=d+1|0}if((n|0)==10){n=0;if(g==i){e=(e-j)/+(d|0);d=(((f>>>0>b>>>0?f:b)+-1+(0-k)|0)>>>2)+1|0;a=1;while(1){if((a|0)==(d|0)){a=f;continue a}o=c[b>>2]|0;h[o>>3]=e*+(a|0)+ +h[o>>3];a=a+1|0;b=b+4|0}}}while(1){if(b>>>0>=f>>>0){a=f;continue a}p=c[a>>2]|0;d=c[p+16>>2]|0;o=c[b>>2]|0;k=c[o+16>>2]|0;h[o>>3]=+h[p>>3]+(+h[m+(d*96|0)+56>>3]-+h[m+(d*96|0)+40>>3]+(+h[m+(k*96|0)+56>>3]-+h[m+(k*96|0)+40>>3]))*.5;b=b+4|0;a=a+4|0}}return}function Xq(a){a=a|0;var b=0.0,d=0.0,e=0.0,f=0.0,g=0,i=0,j=0,k=0;if(a|0)fr();i=c[46887]|0;j=c[i>>2]|0;e=+h[j>>3];h[23291]=e;f=+h[j>>3];h[23292]=f;k=c[46896]|0;g=1;while(1){if((g|0)>=(k|0))break;a=c[i+(g<<2)>>2]|0;d=+h[a>>3];if(d<e){h[23291]=d;b=+h[a>>3]}else{b=d;d=e}if(b>f)h[23292]=b;else b=f;g=g+1|0;e=d;f=b}d=+h[j+8>>3];h[23293]=d;b=+h[(c[i+(k+-1<<2)>>2]|0)+8>>3];h[23294]=b;h[23296]=b-d;h[23295]=f-e;return}function Yq(){var a=0;a=c[46889]|0;if(a>>>0<(c[46890]|0)>>>0){c[46889]=a+4;a=c[a>>2]|0}else a=0;return a|0}function Zq(){var a=0,b=0,d=0;a=c[46911]|0;br();d=(c[46888]|0)==0;b=0;while(1){if((b|0)>=(c[46896]|0))break;if(!(d?!(c[a+32>>2]|0):0))cr(a);a=a+96|0;b=b+1|0}return}function _q(){var a=0,b=0,c=0,d=0.0,e=0.0,f=0.0,g=0.0,i=0.0,j=0.0;a=l;l=l+32|0;c=a+16|0;b=a;j=+h[23287];i=+h[23285];g=+h[23288];e=+h[23286];d=(i-e)*.05;f=(j-g)*.05;h[b>>3]=j+f;h[b+8>>3]=i+d;h[c>>3]=g-f;h[c+8>>3]=e-d;ar(c,b);l=a;return}function $q(){Ds();Fs();Hu();js();return}function ar(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,f=0.0;f=+h[a>>3];h[23288]=f;e=+h[b>>3];h[23287]=e;c=+h[a+8>>3];h[23286]=c;d=+h[b+8>>3];h[23285]=d;h[23277]=f;h[23279]=f;h[23281]=e;h[23283]=e;h[23284]=d;h[23280]=d;h[23282]=c;h[23278]=c;return}function br(){var a=0,b=0.0,d=0.0,e=0.0,f=0.0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0;m=c[46911]|0;g=m+8|0;f=+rs(g,186216);e=+rs(g,186232);d=+rs(g,186248);a=1;b=+rs(g,186264);g=m;i=m;j=m;k=m;while(1){l=m+96|0;if((a|0)>=(c[46896]|0))break;q=m+104|0;r=+rs(q,186216);n=r<f;t=+rs(q,186248);p=t<d;s=+rs(q,186232);o=s<e;u=+rs(q,186264);q=u<b;a=a+1|0;b=q?u:b;d=p?t:d;e=o?s:e;f=n?r:f;g=q?l:g;i=p?l:i;j=o?l:j;k=n?l:k;m=l}Ts(k+8|0,+h[23277],+h[23278]);Ts(i+8|0,+h[23281],+h[23282]);Ts(j+8|0,+h[23279],+h[23280]);Ts(g+8|0,+h[23283],+h[23284]);return}function cr(a){a=a|0;var b=0.0,d=0.0,e=0.0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0;p=l;l=l+64|0;j=p+48|0;i=p+32|0;g=p+16|0;m=p+8|0;n=p;k=c[a+88>>2]|0;o=k+8|0;b=0.0;d=0.0;e=0.0;k=c[k>>2]|0;while(1){f=c[k>>2]|0;if(!f)break;s=k+8|0;r=f+8|0;c[g>>2]=c[o>>2];c[g+4>>2]=c[o+4>>2];c[g+8>>2]=c[o+8>>2];c[g+12>>2]=c[o+12>>2];c[i>>2]=c[s>>2];c[i+4>>2]=c[s+4>>2];c[i+8>>2]=c[s+8>>2];c[i+12>>2]=c[s+12>>2];c[j>>2]=c[r>>2];c[j+4>>2]=c[r+4>>2];c[j+8>>2]=c[r+8>>2];c[j+12>>2]=c[r+12>>2];q=+dr(g,i,j);c[g>>2]=c[o>>2];c[g+4>>2]=c[o+4>>2];c[g+8>>2]=c[o+8>>2];c[g+12>>2]=c[o+12>>2];c[i>>2]=c[s>>2];c[i+4>>2]=c[s+4>>2];c[i+8>>2]=c[s+8>>2];c[i+12>>2]=c[s+12>>2];c[j>>2]=c[r>>2];c[j+4>>2]=c[r+4>>2];c[j+8>>2]=c[r+8>>2];c[j+12>>2]=c[r+12>>2];er(g,i,j,m,n);b=b+q*+h[n>>3];d=d+q*+h[m>>3];e=e+q;k=f}h[a+8>>3]=d/e;h[a+16>>3]=b/e;l=p;return}function dr(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0;f=+h[b+8>>3];e=+h[c+8>>3];d=+h[a+8>>3];return +(+F(+(+h[c>>3]*(d-f)+(+h[a>>3]*(f-e)+ +h[b>>3]*(e-d))))*.5)}function er(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;h[d>>3]=(+h[a>>3]+ +h[b>>3]+ +h[c>>3])/3.0;h[e>>3]=(+h[a+8>>3]+ +h[b+8>>3]+ +h[c+8>>3])/3.0;return}function fr(){var a=0,b=0,d=0,e=0;a=c[46887]|0;if(!a){a=IK(c[46896]<<2)|0;c[46887]=a;c[46890]=a+(c[46896]<<2)}d=c[46911]|0;Ss();e=c[46896]|0;b=0;while(1){if((b|0)>=(e|0))break;c[a>>2]=d+8;c[d+88>>2]=0;c[d+28>>2]=1;d=d+96|0;a=a+4|0;b=b+1|0}k3(c[46887]|0,e,4,69);c[46889]=c[46887];return}function gr(a,b){a=a|0;b=b|0;var d=0.0,e=0.0;a=c[a>>2]|0;b=c[b>>2]|0;d=+h[a+8>>3];e=+h[b+8>>3];if(!(d<e))if(!(d>e)){e=+h[a>>3];d=+h[b>>3];if(e<d)a=-1;else a=e>d&1}else a=1;else a=-1;return a|0}function hr(){var a=0,b=0,d=0,e=0;d=c[46896]|0;a=0;b=c[46911]|0;while(1){if((a|0)>=(d|0))break;e=b+8|0;h[e>>3]=+h[e>>3]*1.05;e=b+16|0;h[e>>3]=+h[e>>3]*1.05;a=a+1|0;b=b+96|0}return}function ir(b,e){b=b|0;e=e|0;var f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0.0,q=0.0;o=l;l=l+48|0;n=o;j=o+24|0;f=NA(e,93413)|0;k=j+8|0;m=j+4|0;if(!((f|0)!=0?(jr(f,j,1.0,0.0)|0)!=0:0))i=3;do if((i|0)==3){e=NA(e,93417)|0;if(e|0?jr(e,j,.800000011920929,4.0)|0:0)break;g[m>>2]=4.0;g[j>>2]=4.0;a[k>>0]=1}while(0);if(a[195234]|0){i=c[15715]|0;q=+g[j>>2];p=+g[m>>2];c[n>>2]=d[k>>0];h[n+8>>3]=q;h[n+16>>3]=p;z4(i,93422,n)|0};c[b>>2]=c[j>>2];c[b+4>>2]=c[j+4>>2];c[b+8>>2]=c[j+8>>2];l=o;return}function jr(b,d,e,f){b=b|0;d=d|0;e=+e;f=+f;var h=0.0,i=0.0,j=0.0,k=0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0;r=l;l=l+16|0;o=r;p=r+12|0;q=r+8|0;while(1){k=a[b>>0]|0;m=b+1|0;if(!(X1(k<<24>>24)|0))break;else b=m}s=k<<24>>24==43;k=d+8|0;a[k>>0]=s&1;c[o>>2]=p;c[o+4>>2]=q;b=q4(s?m:b,93455,o)|0;if(!b)b=0;else{n=+g[p>>2];if((b|0)==1){g[q>>2]=n;h=n}else h=+g[q>>2];i=n/e;j=h/e;do if(a[k>>0]|0){if(e>1.0){g[d>>2]=i>f?f:i;h=j>f?f:j;break}if(e<1.0){g[d>>2]=i<f?f:i;h=j<f?f:j;break}else{g[d>>2]=n;break}}else{g[d>>2]=i+1.0;h=j+1.0}while(0);g[d+4>>2]=h;b=1}l=r;return b|0}function kr(a,b){a=a|0;b=b|0;var c=0,d=0;d=l;l=l+32|0;c=d;if((qB(a)|0)<2)a=0;else{Lq(a,b,c)|0;a=Nq(a,c)|0}l=d;return a|0}function lr(a){a=a|0;return kr(a,NA(a,92808)|0)|0}function mr(b,e){b=b|0;e=e|0;var f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0.0,q=0.0;o=l;l=l+48|0;n=o;j=o+24|0;f=NA(e,93417)|0;k=j+8|0;m=j+4|0;if(!((f|0)!=0?(jr(f,j,1.0,0.0)|0)!=0:0))i=3;do if((i|0)==3){e=NA(e,93413)|0;if(e|0?jr(e,j,1.25,3.200000047683716)|0:0)break;g[m>>2]=3.200000047683716;g[j>>2]=3.200000047683716;a[k>>0]=1}while(0);if(a[195234]|0){i=c[15715]|0;q=+g[j>>2];p=+g[m>>2];c[n>>2]=d[k>>0];h[n+8>>3]=q;h[n+16>>3]=p;z4(i,93484,n)|0};c[b>>2]=c[j>>2];c[b+4>>2]=c[j+4>>2];c[b+8>>2]=c[j+8>>2];l=o;return}function nr(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+16|0;o=p;h=0;while(1){if((h|0)>=(d|0))break;c[e+(h<<2)>>2]=-1;h=h+1|0}c[e+(a<<2)>>2]=0;or(f,a);a:do if(!(c[b+8>>2]|0)){h=2147483647;b:while(1){if(!((pr(f,o)|0)<<24>>24))break a;j=c[o>>2]|0;h=c[e+(j<<2)>>2]|0;i=b+(j*20|0)|0;j=b+(j*20|0)+4|0;k=h+1|0;a=1;while(1){if((a|0)>=(c[i>>2]|0))continue b;m=c[(c[j>>2]|0)+(a<<2)>>2]|0;n=e+(m<<2)|0;if((c[n>>2]|0)<0){c[n>>2]=k;qr(f,m)|0}a=a+1|0}}}else{h=2147483647;c:while(1){if(!((pr(f,o)|0)<<24>>24))break a;k=c[o>>2]|0;h=c[e+(k<<2)>>2]|0;i=b+(k*20|0)|0;j=b+(k*20|0)+4|0;k=b+(k*20|0)+8|0;a=1;while(1){if((a|0)>=(c[i>>2]|0))continue c;m=c[(c[j>>2]|0)+(a<<2)>>2]|0;n=e+(m<<2)|0;if((c[n>>2]|0)<0){c[n>>2]=~~+g[(c[k>>2]|0)+(a<<2)>>2]+h;qr(f,m)|0}a=a+1|0}}}while(0);a=h+10|0;h=0;while(1){if((h|0)>=(d|0))break;i=e+(h<<2)|0;if((c[i>>2]|0)<0)c[i>>2]=a;h=h+1|0}l=p;return}function or(a,b){a=a|0;b=b|0;c[c[a>>2]>>2]=b;c[a+12>>2]=0;c[a+8>>2]=1;return}function pr(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+12|0;e=c[d>>2]|0;if((e|0)<(c[a+8>>2]|0)){a=c[a>>2]|0;c[d>>2]=e+1;c[b>>2]=c[a+(e<<2)>>2];a=1}else a=0;return a|0}function qr(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+8|0;e=c[d>>2]|0;if((e|0)<(c[a+4>>2]|0)){a=c[a>>2]|0;c[d>>2]=e+1;c[a+(e<<2)>>2]=b;a=1}else a=0;return a|0}function rr(a,b){a=a|0;b=b|0;c[a>>2]=IK(b<<2)|0;c[a+4>>2]=b;c[a+8>>2]=0;c[a+12>>2]=0;return}function sr(a){a=a|0;l6(c[a>>2]|0);return}function tr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0,i=0,j=0;if(!(a[195234]|0))i=0;else{_3(93517,25,1,c[15715]|0)|0;i=0}while(1){if((i|0)>=(b|0))break;j=d+(i<<2)|0;g=0;f=0.0;while(1){if((g|0)==(b|0))break;if((i|0)!=(g|0))f=f+ +h[(c[j>>2]|0)+(g<<3)>>3];g=g+1|0}h[(c[j>>2]|0)+(i<<3)>>3]=-f;i=i+1|0}return tt(d,e,b+-1|0)|0}function ur(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0.0;j=rn(b,b,0.0)|0;k=rn(b,b,0.0)|0;e=gC(a)|0;while(1){if(!e)break;d=ZA(a,e)|0;while(1){if(!d)break;g=c[d>>2]&3;f=(c[c[((g|0)==3?d:d+48|0)+40>>2]>>2]|0)>>>4;g=(c[c[((g|0)==2?d:d+-48|0)+40>>2]>>2]|0)>>>4;if((f|0)!=(g|0)){l=-1.0/+h[(c[d+16>>2]|0)+136>>3];h[(c[j+(g<<2)>>2]|0)+(f<<3)>>3]=l;h[(c[j+(f<<2)>>2]|0)+(g<<3)>>3]=l}d=_A(a,d,e)|0}e=hC(a,e)|0}i=tr(b,j,k)|0;a:do if(i|0){f=a+16|0;e=0;while(1){if((e|0)>=(b|0))break a;g=k+(e<<2)|0;d=0;while(1){if((d|0)==(b|0))break;a=c[g>>2]|0;h[(c[(c[(c[f>>2]|0)+160>>2]|0)+(e<<2)>>2]|0)+(d<<3)>>3]=+h[a+(e<<3)>>3]+ +h[(c[k+(d<<2)>>2]|0)+(d<<3)>>3]-+h[a+(d<<3)>>3]*2.0;d=d+1|0}e=e+1|0}}while(0);sn(j);sn(k);return i|0}function vr(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=f|0;var g=0.0,h=0.0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+16|0;j=s;n=d<<3;o=IK(n)|0;p=IK(n)|0;q=IK(n)|0;k=IK(n)|0;m=IK(n)|0;n=IK(n)|0;Lt(d,c,n);Et(d,n);Et(d,b);Gt(a,d,b,k);It(d,n,k,o);Lt(d,o,p);i=f+-1|0;c=0;g=+Mt(d,o,o);while(1){if((c|0)>=(f|0)){c=0;break}if(!(+Nt(d,o)>e)){c=0;break}Gt(a,d,p,q);h=+Mt(d,p,q);if(h==0.0){c=0;break}h=g/h;Kt(d,p,h,m);Jt(d,b,m,b);if((c|0)<(i|0)){Kt(d,q,h,q);It(d,o,q,o);h=+Mt(d,o,o);if(g==0.0){r=7;break}Kt(d,p,h/g,p);Jt(d,o,p,p);g=h}c=c+1|0}if((r|0)==7){dA(1,93543,j)|0;c=1}l6(o);l6(p);l6(q);l6(k);l6(m);l6(n);l=s;return c|0}function wr(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=f|0;g=g|0;var h=0.0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+16|0;j=s;o=d<<3;p=IK(o)|0;q=IK(o)|0;k=IK(o)|0;m=IK(o)|0;n=IK(o)|0;o=IK(o)|0;Lt(d,c,o);if(g<<24>>24){Et(d,o);Et(d,b)}Ht(a,d,b,m);It(d,o,m,p);Lt(d,p,q);g=f+-1|0;c=0;h=+Mt(d,p,p);while(1){if((c|0)>=(f|0)){c=0;break}if(!(+Nt(d,p)>e)){c=0;break}Ht(a,d,q,k);i=+Mt(d,q,k);if(i==0.0){c=0;break}i=h/i;Kt(d,q,i,n);Jt(d,b,n,b);if((c|0)<(g|0)){Kt(d,k,i,k);It(d,p,k,p);i=+Mt(d,p,p);if(h==0.0){r=9;break}Kt(d,q,i/h,q);Jt(d,p,q,q);h=i}c=c+1|0}if((r|0)==9){dA(1,93543,j)|0;c=1}l6(p);l6(q);l6(k);l6(m);l6(n);l6(o);l=s;return c|0}function xr(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=f|0;var g=0.0,h=0.0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+16|0;j=q;k=d<<2;m=HK(k)|0;n=HK(k)|0;o=HK(k)|0;k=HK(k)|0;Pt(d,b);Pt(d,c);Qt(a,d,b,k);Pt(d,k);Rt(d,c,k,m);Vt(d,m,n);i=f+-1|0;c=0;g=+Wt(d,m,m);while(1){if((c|0)>=(f|0)){c=0;break}if(!(+Zt(d,m)>e)){c=0;break}Pt(d,n);Pt(d,b);Pt(d,m);Qt(a,d,n,o);Pt(d,o);h=+Wt(d,n,o);if(h==0.0){c=0;break}h=g/h;Tt(d,b,h,n);if((c|0)<(i|0)){Tt(d,m,-h,o);h=+Wt(d,m,m);if(g==0.0){p=7;break}Ut(d,n,h/g,n);St(d,m,n,n);g=h}c=c+1|0}if((p|0)==7){dA(1,93543,j)|0;c=1}l6(m);l6(n);l6(o);l6(k);l=q;return c|0}function yr(b,d,e,f,i,j,k,m,n,o){b=b|0;d=d|0;e=e|0;f=f|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=+o;var p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0,B=0,C=0,D=0,E=0,G=0,H=0.0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0.0;P=l;l=l+48|0;I=P+24|0;D=P+16|0;C=P+8|0;B=P;M=P+40|0;N=P+36|0;K=P+32|0;t=k&4;c[M>>2]=0;c[N>>2]=0;a:do if(c[b+16>>2]|0){q=0;p=0;while(1){if((q|0)>=(d|0))break;u=c[b+(q*20|0)>>2]|0;v=b+(q*20|0)+16|0;s=1;while(1){if((s|0)>=(u|0))break;if(!(p<<24>>24))p=+g[(c[v>>2]|0)+(s<<2)>>2]!=0.0;else p=1;s=s+1|0;p=p&1}q=q+1|0}if(p<<24>>24){A=(t|0)!=0;G=f+4|0;E=o>0.0;if(A){b:do if((j|0)>2){p=j+-1|0;if((ln(b,d,e,G,i,p,k,m,15)|0)<0){p=-1;break a}q=f+(p<<2)|0;p=0;while(1){if((p|0)>=(d|0))break b;h[(c[q>>2]|0)+(p<<3)>>3]=+h[(c[G>>2]|0)+(p<<3)>>3];p=p+1|0}}while(0);w=c[f>>2]|0;x=c[G>>2]|0;if((gu(b,d,x,d)|0)==0?(qy(b,d,.01,.1,x,M,N,K)|0)==0:0){y=c[K>>2]|0;if((y|0)<1){p=ln(b,d,e,f,i,j,k,m,n)|0;break}c:do if(E){s=c[M>>2]|0;t=c[N>>2]|0;u=y+-1|0;r=0.0;q=0;d:while(1){if((q|0)==(y|0))break c;p=c[t+(q<<2)>>2]|0;H=o-(r+ +h[x+(c[s+(p<<2)>>2]<<3)>>3]-+h[x+(c[s+(p+-1<<2)>>2]<<3)>>3]);r=r+(H<0.0?0.0:H);v=q+1|0;if((q|0)<(u|0))q=c[t+(v<<2)>>2]|0;else q=d;while(1){if((p|0)>=(q|0)){q=v;continue d}L=x+(c[s+(p<<2)>>2]<<3)|0;h[L>>3]=r+ +h[L>>3];p=p+1|0}}}while(0);if((j|0)==2?(Nu(b,d,x,w,+h[23315])|0)!=0:0){q=0;p=-1}else O=32}else{q=0;p=-1}}else{en(b,d,j,f,i)|0;if(!(qy(b,d,.01,.1,0,M,N,K)|0))O=32;else{q=0;p=-1}}e:do if((O|0)==32){if((d|0)==1){p=0;break a}L=IK(c[K>>2]<<2)|0;if(!n){p=0;break a}if(a[195234]|0)RO();switch(m|0){case 2:{if(a[195234]|0)_3(93591,24,1,c[15715]|0)|0;p=kn(b,d)|0;O=45;break}case 1:{p=fn(b,d)|0;if(!p){dA(0,93616,B)|0;dA(3,93665,C)|0;O=46}else J=p;break}case 3:{if(a[195234]|0)_3(93718,21,1,c[15715]|0)|0;p=gn(b,d)|0;O=45;break}default:O=46}if((O|0)==45)if(!p)O=46;else J=p;if((O|0)==46){if(a[195234]|0)_3(93740,26,1,c[15715]|0)|0;J=jn(b,d)|0}if(a[195234]|0){b=c[15715]|0;h[D>>3]=+SO();z4(b,93767,D)|0;_3(93779,25,1,b)|0;RO()}C=d+-1|0;t=(S(C,d)|0)/2|0;b=t+d|0;f:do if(!A){r=1.0;q=0;while(1){if((q|0)>=(j|0))break;s=f+(q<<2)|0;p=0;while(1){if((p|0)>=(d|0))break;H=+F(+(+h[(c[s>>2]|0)+(p<<3)>>3]));r=H>r?H:r;p=p+1|0}q=q+1|0}r=10.0/r;q=0;while(1){if((q|0)>=(j|0))break f;s=f+(q<<2)|0;p=0;while(1){if((p|0)>=(d|0))break;D=(c[s>>2]|0)+(p<<3)|0;h[D>>3]=r*+h[D>>3];p=p+1|0}q=q+1|0}}while(0);H=+(t|0);g:do if(E){p=0;r=0.0;t=0;h:while(1){if((t|0)>=(C|0))break;u=t+1|0;s=p;q=u;while(1){p=s+1|0;if((q|0)>=(d|0)){t=u;continue h}z=+ct(f,j,t,q);s=p;r=r+z/+g[J+(p<<2)>>2];q=q+1|0}}r=r/H;p=0;while(1){if((p|0)>=(b|0)){p=0;break g}E=J+(p<<2)|0;g[E>>2]=r*+g[E>>2];p=p+1|0}}else p=0;while(0);while(1){if((p|0)>=(j|0))break;Et(d,c[f+(p<<2)>>2]|0);p=p+1|0}q=c[G>>2]|0;r=+h[q>>3];p=0;while(1){if((p|0)>=(d|0))break;G=q+(p<<3)|0;h[G>>3]=+h[G>>3]-r;p=p+1|0}v=j<<2;B=IK(v)|0;x=d<<2;w=S(x,j)|0;s=IK(w)|0;p=0;while(1){if((p|0)>=(j|0))break;t=s+((S(p,d)|0)<<2)|0;c[B+(p<<2)>>2]=t;u=f+(p<<2)|0;q=0;while(1){if((q|0)>=(d|0))break;g[t+(q<<2)>>2]=+h[(c[u>>2]|0)+(q<<3)>>3];q=q+1|0}p=p+1|0}if(a[195234]|0){G=c[15715]|0;h[I>>3]=+SO();z4(G,93805,I)|0}_t(b,J);$t(b,J);m=IK(d<<3)|0;Xt(d,0.0,m);p=0;s=0;while(1){if((s|0)>=(C|0)){p=d;q=0;s=0;break}t=d-s|0;r=0.0;q=1;while(1){p=p+1|0;if((q|0)>=(t|0))break;z=+g[J+(p<<2)>>2];I=m+(q+s<<3)|0;h[I>>3]=+h[I>>3]-z;r=r+z;q=q+1|0}I=m+(s<<3)|0;h[I>>3]=+h[I>>3]-r;s=s+1|0}while(1){if((q|0)>=(d|0))break;g[J+(s<<2)>>2]=+h[m+(q<<3)>>3];I=p+s|0;p=p+-1|0;q=q+1|0;s=I}A=IK(v)|0;c[A>>2]=IK(w)|0;p=1;while(1){if((p|0)>=(j|0))break;c[A+(p<<2)>>2]=(c[A>>2]|0)+((S(p,d)|0)<<2);p=p+1|0}k=IK(x)|0;e=IK(x)|0;i=IK(b<<2)|0;q=Bu(J,d)|0;y=Gu(J,d,c[M>>2]|0,c[N>>2]|0,c[K>>2]|0)|0;s=0;z=1797693134862315708145274.0e284;p=0;while(1){if(!(s<<24>>24==0&(p|0)<(n|0)))break;Xt(d,0.0,m);au(b,J,i);w=0;u=0;while(1){if((w|0)>=(C|0)){s=0;t=d;u=0;break}x=d-w+-1|0;Yt(d,0.0,e);s=0;while(1){if((s|0)>=(j|0))break;K=B+(s<<2)|0;Yt(x,+g[(c[K>>2]|0)+(w<<2)>>2],k);Tt(x,k,-1.0,(c[K>>2]|0)+(w<<2)+4|0);_t(x,k);St(x,k,e,e);s=s+1|0}bu(x,e);s=0;while(1){if((s|0)>=(x|0))break;t=e+(s<<2)|0;r=+g[t>>2];if(r>=3402823466385288598117041.0e14|r<0.0)g[t>>2]=0.0;s=s+1|0}v=w+1|0;r=0.0;s=u;t=0;while(1){s=s+1|0;if((t|0)>=(x|0))break;K=i+(s<<2)|0;Q=+g[e+(t<<2)>>2]*+g[K>>2];g[K>>2]=Q;K=m+(v+t<<3)|0;h[K>>3]=+h[K>>3]-Q;r=r+Q;t=t+1|0}u=m+(w<<3)|0;h[u>>3]=+h[u>>3]-r;w=v;u=s}while(1){if((s|0)>=(d|0)){s=0;break}g[i+(u<<2)>>2]=+h[m+(s<<3)>>3];K=t+u|0;s=s+1|0;t=t+-1|0;u=K}while(1){if((s|0)>=(j|0)){r=0.0;s=0;break}Qt(i,d,c[B+(s<<2)>>2]|0,c[A+(s<<2)>>2]|0);s=s+1|0}while(1){if((s|0)>=(j|0))break;r=r+ +Wt(d,c[B+(s<<2)>>2]|0,c[A+(s<<2)>>2]|0);s=s+1|0}r=H+r*2.0;s=0;while(1){if((s|0)>=(j|0))break;K=B+(s<<2)|0;Qt(J,d,c[K>>2]|0,k);r=r-+Wt(d,c[K>>2]|0,k);s=s+1|0}Q=+F(+(r-z))/+F(+(z+1.0e-10));s=((p|0)>1&r>z|Q<+h[23315])&1;t=0;while(1){if((t|0)>=(j|0))break;u=c[A+(t<<2)>>2]|0;if((t|0)!=1){if(xr(J,c[B+(t<<2)>>2]|0,u,d,.001,d)|0){p=-1;break e}}else Cu(y,u,B,j,1,15,L,o)|0;t=t+1|0}z=r;p=p+1|0}l6(L);Fu(y);if(B|0){s=0;while(1){if((s|0)>=(j|0))break;u=B+(s<<2)|0;v=f+(s<<2)|0;t=0;while(1){if((t|0)>=(d|0))break;h[(c[v>>2]|0)+(t<<3)>>3]=+g[(c[u>>2]|0)+(t<<2)>>2];t=t+1|0}s=s+1|0}l6(c[B>>2]|0);l6(B)}if(A|0){l6(c[A>>2]|0);l6(A)}l6(k);l6(e);l6(m);l6(J);l6(i)}while(0);l6(c[M>>2]|0);l6(c[N>>2]|0);if(q){l6(c[q>>2]|0);l6(q)}}else O=10}else O=10;while(0);if((O|0)==10)p=ln(b,d,e,f,i,j,k,m,n)|0;l=P;return p|0}function zr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0;m=l;l=l+48|0;f=m+24|0;g=m+12|0;d=m;i=qB(a)|0;k=IK(i*48|0)|0;ir(d,a);c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];c[g+8>>2]=c[d+8>>2];d=gC(a)|0;e=k;while(1){if(!d)break;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];Ar(d,e,f);d=hC(a,d)|0;e=e+48|0}a:do if(!(Br(k,i)|0))d=0;else{switch(b|0){case 9:{Dr(a,k,i,70,1);Fr(a,k,i,71,1);d=0;e=k;break}case 10:{Fr(a,k,i,71,1);Dr(a,k,i,70,1);d=0;e=k;break}case 7:{Dr(a,k,i,72,1);Fr(a,k,i,71,1);j=9;break}case 8:{j=9;break}case 13:{j=10;break}case 14:{Fr(a,k,i,71,0);Dr(a,k,i,70,0);d=0;e=k;break}case 12:{Fr(a,k,i,73,0);Dr(a,k,i,70,0);d=0;e=k;break}default:{Dr(a,k,i,72,0);Fr(a,k,i,71,0);d=0;e=k}}if((j|0)==9){Fr(a,k,i,73,1);Dr(a,k,i,70,1);j=10}if((j|0)==10){Dr(a,k,i,70,0);Fr(a,k,i,71,0);d=0;e=k}while(1){if((d|0)>=(i|0)){d=1;break a}g=c[e+16>>2]|0;j=c[(c[(c[e+20>>2]|0)+16>>2]|0)+132>>2]|0;h[j>>3]=+(c[e+12>>2]|0)/72.0/10.0;h[j+8>>3]=+(g|0)/72.0/10.0;d=d+1|0;e=e+48|0}}while(0);l6(k);l=m;return d|0}function Ar(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0;f=c[b+16>>2]|0;n=c[f+132>>2]|0;l=+h[n>>3]*10.0*72.0;m=~~(l+(l>=0.0?.5:-.5));l=+h[n+8>>3]*10.0*72.0;n=~~(l+(l>=0.0?.5:-.5));l=+g[e+4>>2];i=+g[e>>2];j=+h[f+32>>3];k=+h[f+40>>3];if(!(a[e+8>>0]|0)){j=j*(i*5.0)*72.0;l=l*5.0*k*72.0;f=~~(j+(j>=0.0?.5:-.5));e=~~(l+(l>=0.0?.5:-.5))}else{j=j*.5*72.0;k=k*.5*72.0;f=~~((i+ +(~~(j+(j>=0.0?.5:-.5))|0))*10.0);e=~~((l+ +(~~(k+(k>=0.0?.5:-.5))|0))*10.0)}c[d+12>>2]=m;c[d+16>>2]=n;c[d+20>>2]=b;c[d+32>>2]=m-f;c[d+36>>2]=n-e;c[d+40>>2]=f+m;c[d+44>>2]=e+n;return}function Br(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=b+-1|0;d=0;a:while(1){if((d|0)>=(k|0)){a=0;break}j=a+48|0;d=d+1|0;g=a+32|0;h=a+40|0;i=a+36|0;f=a+44|0;a=j;e=d;while(1){if((e|0)>=(b|0)){a=j;continue a}if((((c[g>>2]|0)<=(c[a+40>>2]|0)?(c[a+32>>2]|0)<=(c[h>>2]|0):0)?(c[i>>2]|0)<=(c[a+44>>2]|0):0)?(c[a+36>>2]|0)<=(c[f>>2]|0):0){a=1;break a}a=a+48|0;e=e+1|0}}return a|0}function Cr(a,b){a=a|0;b=b|0;if((c[a+36>>2]|0)>(c[b+44>>2]|0))a=0;else a=(c[b+36>>2]|0)<=(c[a+44>>2]|0);return a&1|0}function Dr(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;i=Sz(18208,c[4594]|0)|0;g=b;h=0;while(1){if((h|0)>=(d|0))break;c[g+8>>2]=c[g+12>>2];eb[c[i>>2]&63](i,g,1)|0;g=g+48|0;h=h+1|0}if(!f)h=Lr(a,i,e,74)|0;else h=Kr(i,e,74)|0;sL(h,2,2147483647)|0;g=0;while(1){if((g|0)>=(d|0))break;f=b+12|0;a=c[(c[(c[b+24>>2]|0)+16>>2]|0)+232>>2]|0;e=a-(c[f>>2]|0)|0;c[f>>2]=a;f=b+32|0;c[f>>2]=(c[f>>2]|0)+e;f=b+40|0;c[f>>2]=(c[f>>2]|0)+e;b=b+48|0;g=g+1|0}Mr(h);Oz(i)|0;return}function Er(a,b){a=a|0;b=b|0;if((c[a+32>>2]|0)>(c[b+40>>2]|0))a=0;else a=(c[b+32>>2]|0)<=(c[a+40>>2]|0);return a&1|0}function Fr(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;i=Sz(18208,c[4594]|0)|0;g=b;h=0;while(1){if((h|0)>=(d|0))break;c[g+8>>2]=c[g+16>>2];eb[c[i>>2]&63](i,g,1)|0;g=g+48|0;h=h+1|0}if(!f)h=Lr(a,i,e,75)|0;else h=Kr(i,e,75)|0;sL(h,2,2147483647)|0;g=0;while(1){if((g|0)>=(d|0))break;f=b+16|0;a=c[(c[(c[b+24>>2]|0)+16>>2]|0)+232>>2]|0;e=a-(c[f>>2]|0)|0;c[f>>2]=a;f=b+36|0;c[f>>2]=(c[f>>2]|0)+e;f=b+44|0;c[f>>2]=(c[f>>2]|0)+e;b=b+48|0;g=g+1|0}Mr(h);Oz(i)|0;return}function Gr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=a+32|0;e=b+32|0;if((c[a+36>>2]|0)<=(c[b+44>>2]|0)?(c[b+36>>2]|0)<=(c[a+44>>2]|0):0)if((c[a+40>>2]|0)<(c[e>>2]|0))a=1;else{g=Jr(d,e)|0;g=g-(c[b+12>>2]|0)+(c[a+12>>2]|0)|0;b=c[b+16>>2]|0;f=c[a+16>>2]|0;a=Ir(d,e)|0;a=(g|0)<=(((b|0)<(f|0)?b-f|0:f-b|0)+a|0)&1}else a=0;return a|0}function Hr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=a+32|0;e=b+32|0;if((c[d>>2]|0)<=(c[b+40>>2]|0)?(c[e>>2]|0)<=(c[a+40>>2]|0):0)if((c[a+44>>2]|0)<(c[b+36>>2]|0))a=1;else{g=Ir(d,e)|0;g=g-(c[b+16>>2]|0)+(c[a+16>>2]|0)|0;b=c[b+12>>2]|0;f=c[a+12>>2]|0;a=Jr(d,e)|0;a=(g|0)<=(((b|0)<(f|0)?b-f|0:f-b|0)+a|0)&1}else a=0;return a|0}function Ir(a,b){a=a|0;b=b|0;return ((c[a+12>>2]|0)-(c[a+4>>2]|0)+(c[b+12>>2]|0)-(c[b+4>>2]|0)|0)/2|0|0}function Jr(a,b){a=a|0;b=b|0;return ((c[a+8>>2]|0)-(c[a>>2]|0)+(c[b+8>>2]|0)-(c[b>>2]|0)|0)/2|0|0}function Kr(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=l;l=l+16|0;v=x;c[v>>2]=c[4658];w=lB(93816,v,0)|0;RC(w,137786,280,1)|0;f=Qz(a)|0;g=-2147483647;u=0;while(1){if(!f)break;s=c[f+8>>2]|0;t=((g|0)!=(s|0)&1)+u|0;f=c[f>>2]|0;g=s;u=t}s=w+16|0;t=(u<<3)+-4|0;f=0;j=0;i=0;m=0;k=0;r=Qz(a)|0;h=-2147483647;while(1){n=k+16|0;if(!r)break;q=c[r+8>>2]|0;if((h|0)!=(q|0)){p=qC(w,HB(c[r+20>>2]|0)|0,1)|0;RC(p,137750,304,1)|0;o=p+16|0;g=c[o>>2]|0;c[g+112>>2]=r;if(!m){c[(c[s>>2]|0)+192>>2]=p;m=p}else c[(c[f+16>>2]|0)+164>>2]=p;c[g+176>>2]=0;i=j+1|0;h=HK(i<<2)|0;c[(c[o>>2]|0)+172>>2]=h;if(!k){j=i;i=p;k=p;f=p;g=m;h=q}else{c[(c[n>>2]|0)+184>>2]=0;h=HK((k|0)==(m|0)?t:u-j<<2)|0;c[(c[n>>2]|0)+180>>2]=h;h=fB(w,k,p,0,1)|0;RC(h,137763,176,1)|0;g=c[h+16>>2]|0;b[g+170>>1]=10;c[g+156>>2]=1;g=c[n>>2]|0;f=c[g+180>>2]|0;g=(c[g+184>>2]<<2)+8|0;if(!f)f=IK(g)|0;else f=KK(f,g)|0;k=c[n>>2]|0;c[k+180>>2]=f;k=k+184|0;g=c[k>>2]|0;c[k>>2]=g+1;c[f+(g<<2)>>2]=h;g=c[n>>2]|0;c[(c[g+180>>2]|0)+(c[g+184>>2]<<2)>>2]=0;g=c[o>>2]|0;f=c[g+172>>2]|0;g=(c[g+176>>2]<<2)+8|0;if(!f)f=IK(g)|0;else f=KK(f,g)|0;k=c[o>>2]|0;c[k+172>>2]=f;k=k+176|0;j=c[k>>2]|0;c[k>>2]=j+1;c[f+(j<<2)>>2]=h;j=c[o>>2]|0;c[(c[j+172>>2]|0)+(c[j+176>>2]<<2)>>2]=0;j=i;i=p;k=p;f=p;g=m;h=q}}else g=m;c[r+24>>2]=i;m=g;r=c[r>>2]|0}c[(c[n>>2]|0)+184>>2]=0;k=HK(4)|0;c[(c[n>>2]|0)+180>>2]=k;c[v>>2]=c[4658];k=lB(93863,v,0)|0;f=Qz(a)|0;while(1){if(!f)break;v=qC(k,HB(c[f+20>>2]|0)|0,1)|0;RC(v,137750,304,1)|0;c[f+28>>2]=v;c[(c[v+16>>2]|0)+112>>2]=f;f=c[f>>2]|0}f=0;j=Qz(a)|0;g=-2147483647;a:while(1){if(!j)break;i=c[j+8>>2]|0;b:do if((g|0)==(i|0))i=g;else{f=j;while(1){f=c[f>>2]|0;if(!f)break a;if((c[f+8>>2]|0)!=(i|0))break b}}while(0);h=j+28|0;g=f;while(1){if(!g)break;if(vb[d&127](j,g)|0)fB(k,c[h>>2]|0,c[g+28>>2]|0,0,1)|0;g=c[g>>2]|0}j=c[j>>2]|0;g=i}Nr(k,w,e);pB(k)|0;l=x;return w|0}function Lr(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=l;l=l+16|0;q=r;c[q>>2]=c[4658];q=lB(93816,q,0)|0;RC(q,137786,280,1)|0;j=q+16|0;g=Qz(d)|0;h=0;while(1){if(!g)break;i=qC(q,HB(c[g+20>>2]|0)|0,1)|0;RC(i,137750,304,1)|0;o=i+16|0;m=c[o>>2]|0;c[m+112>>2]=g;c[g+24>>2]=i;c[m+176>>2]=0;m=HK(4)|0;n=c[o>>2]|0;c[n+172>>2]=m;c[n+184>>2]=0;n=HK(4)|0;c[(c[o>>2]|0)+180>>2]=n;if(!h)c[(c[j>>2]|0)+192>>2]=i;else c[(c[h+16>>2]|0)+164>>2]=i;g=c[g>>2]|0;h=i}k=Qz(d)|0;a:while(1){if(!k)break;m=k+32|0;n=k+24|0;o=k+20|0;g=k;while(1){g=c[g>>2]|0;if(!g)break;if(vb[e&127](k,g)|0){h=vb[f&127](m,g+32|0)|0;i=fB(q,c[n>>2]|0,c[g+24>>2]|0,0,1)|0;RC(i,137763,176,1)|0;if((h|0)>=65536){p=13;break a}j=i+16|0;s=c[j>>2]|0;b[s+170>>1]=h;c[s+156>>2]=1;if(i|0?fB(a,c[o>>2]|0,c[g+20>>2]|0,0,0)|0:0)c[(c[j>>2]|0)+156>>2]=100}}k=c[k>>2]|0}if((p|0)==13)Aa(93819,93835,254,93848);k=Qz(d)|0;while(1){if(!k)break;j=c[k+24>>2]|0;m=j+16|0;j=UA(q,j)|0;while(1){if(!j)break;h=c[m>>2]|0;g=c[h+180>>2]|0;h=(c[h+184>>2]<<2)+8|0;if(!g)g=IK(h)|0;else g=KK(g,h)|0;h=c[m>>2]|0;c[h+180>>2]=g;h=h+184|0;i=c[h>>2]|0;c[h>>2]=i+1;c[g+(i<<2)>>2]=j;i=c[m>>2]|0;c[(c[i+180>>2]|0)+(c[i+184>>2]<<2)>>2]=0;i=j+-48|0;g=c[(c[((c[j>>2]&3|0)==2?j:i)+40>>2]|0)+16>>2]|0;h=c[g+172>>2]|0;g=(c[g+176>>2]<<2)+8|0;if(!h)g=IK(g)|0;else g=KK(h,g)|0;c[(c[(c[((c[j>>2]&3|0)==2?j:i)+40>>2]|0)+16>>2]|0)+172>>2]=g;f=c[(c[((c[j>>2]&3|0)==2?j:i)+40>>2]|0)+16>>2]|0;p=c[f+172>>2]|0;f=f+176|0;s=c[f>>2]|0;c[f>>2]=s+1;c[p+(s<<2)>>2]=j;s=c[(c[((c[j>>2]&3|0)==2?j:i)+40>>2]|0)+16>>2]|0;c[(c[s+172>>2]|0)+(c[s+176>>2]<<2)>>2]=0;j=WA(q,j)|0}k=c[k>>2]|0}l=r;return q|0}function Mr(a){a=a|0;var b=0,d=0,e=0,f=0;f=gC(a)|0;while(1){if(!f)break;d=f+16|0;b=c[d>>2]|0;e=c[b+172>>2]|0;if(e){l6(e);b=c[d>>2]|0}b=c[b+180>>2]|0;if(b|0)l6(b);f=hC(a,f)|0}pB(a)|0;return}function Nr(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;k=gC(a)|0;while(1){if(!k)break;n=c[(c[k+16>>2]|0)+112>>2]|0;m=c[n+24>>2]|0;n=n+32|0;o=m+16|0;l=UA(a,k)|0;while(1){if(!l)break;h=c[(c[(c[((c[l>>2]&3|0)==2?l:l+-48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0;p=vb[e&127](n,h+32|0)|0;h=c[h+24>>2]|0;i=fB(d,m,h,0,1)|0;RC(i,137763,176,1)|0;j=i+16|0;f=c[j>>2]|0;c[f+156>>2]=1;g=b[f+170>>1]|0;if((g&65535|0)<(p|0)){if(!(g<<16>>16)){g=c[o>>2]|0;f=c[g+180>>2]|0;g=(c[g+184>>2]<<2)+8|0;if(!f)f=IK(g)|0;else f=KK(f,g)|0;q=c[o>>2]|0;c[q+180>>2]=f;q=q+184|0;g=c[q>>2]|0;c[q>>2]=g+1;c[f+(g<<2)>>2]=i;g=c[o>>2]|0;c[(c[g+180>>2]|0)+(c[g+184>>2]<<2)>>2]=0;h=h+16|0;g=c[h>>2]|0;f=c[g+172>>2]|0;g=(c[g+176>>2]<<2)+8|0;if(!f)f=IK(g)|0;else f=KK(f,g)|0;g=c[h>>2]|0;c[g+172>>2]=f;g=g+176|0;q=c[g>>2]|0;c[g>>2]=q+1;c[f+(q<<2)>>2]=i;f=c[h>>2]|0;c[(c[f+172>>2]|0)+(c[f+176>>2]<<2)>>2]=0;f=c[j>>2]|0}b[f+170>>1]=p}l=WA(a,l)|0}k=hC(a,k)|0}return}function Or(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;return (c[b>>2]|0)-(c[d>>2]|0)|0}function Pr(b,d){b=b|0;d=d|0;var e=0,f=0,i=0.0,j=0.0,k=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0;x=l;l=l+64|0;t=x+24|0;r=x+16|0;q=x+52|0;p=x+40|0;s=x;v=qB(b)|0;w=IK(v*72|0)|0;ir(p,b);i=+g[p>>2];j=+g[p+4>>2];p=(a[p+8>>0]|0)!=0;if(p){i=i/72.0;j=j/72.0}e=w;f=gC(b)|0;while(1){if(!f)break;o=c[f+16>>2]|0;k=+h[o+40>>3];n=+h[o+32>>3];if(p){m=j+k*.5;k=i+n*.5}else{m=j*k*.5;k=i*n*.5}o=c[o+132>>2]|0;y=+h[o>>3];h[e>>3]=y;n=+h[o+8>>3];h[e+8>>3]=n;h[e+16>>3]=y-k;h[e+24>>3]=n-m;h[e+32>>3]=k+y;h[e+40>>3]=m+n;h[e+48>>3]=k;h[e+56>>3]=m;c[e+64>>2]=f;e=e+72|0;f=hC(b,f)|0}do if((d|0)<0){i=+Qr(w,v);if(i==0.0){l6(w);e=0;break}if(!(a[195234]|0)){k=i;j=i;u=21}else{u=c[15715]|0;h[r>>3]=i;z4(u,93866,r)|0;k=i;j=i;u=21}}else{f=Rr(w,v,q)|0;e=c[q>>2]|0;if(!e){l6(f);l6(w);e=0;break}if(!d){Tr(s,f,e);i=+h[s>>3];j=+h[s+8>>3]}else{j=+Sr(f,e);i=j}l6(f);if(!(a[195234]|0)){k=i;u=21}else{u=c[15715]|0;h[t>>3]=i;h[t+8>>3]=j;z4(u,93880,t)|0;k=i;u=21}}while(0);if((u|0)==21){e=0;f=w;while(1){if((e|0)>=(v|0))break;u=c[(c[(c[f+64>>2]|0)+16>>2]|0)+132>>2]|0;h[u>>3]=k*+h[f>>3];h[u+8>>3]=j*+h[f+8>>3];e=e+1|0;f=f+72|0}l6(w);e=1}l=x;return e|0}function Qr(a,b){a=a|0;b=b|0;var c=0.0,d=0,e=0.0,f=0.0,g=0.0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;c=0.0;d=0;a:while(1){if((d|0)>=(b|0))break;r=a+72|0;d=d+1|0;m=a+16|0;n=a+8|0;o=a+56|0;p=a+48|0;q=a+32|0;k=a+24|0;l=a+40|0;i=d;j=r;while(1){if((i|0)>=(b|0)){a=r;continue a}if(((+h[m>>3]<=+h[j+32>>3]?+h[j+16>>3]<=+h[q>>3]:0)?+h[k>>3]<=+h[j+40>>3]:0)?+h[j+24>>3]<=+h[l>>3]:0){c=0.0;break a}e=+h[a>>3];f=+h[j>>3];if(e==f)g=t;else g=(+h[p>>3]+ +h[j+48>>3])/+F(+(e-f));e=+h[n>>3];f=+h[j+8>>3];if(e==f)e=t;else e=(+h[o>>3]+ +h[j+56>>3])/+F(+(e-f));g=e<g?e:g;i=i+1|0;j=j+72|0;c=g>c?g:c}}return +c}function Rr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0.0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;k=IK((b<<4)+16|0)|0;m=0;e=0;n=k;o=b;i=k;a:while(1){if((e|0)>=(b|0))break;z=a+72|0;e=e+1|0;y=a+16|0;r=a+32|0;s=a+24|0;u=a+40|0;v=a+8|0;w=a+56|0;x=a+48|0;p=e;q=z;l=i;while(1){if((p|0)==(b|0)){a=z;i=l;continue a}if(((+h[y>>3]<=+h[q+32>>3]?+h[q+16>>3]<=+h[r>>3]:0)?+h[s>>3]<=+h[q+40>>3]:0)?+h[q+24>>3]<=+h[u>>3]:0){i=o+b|0;if((m|0)==(o|0)){k=KK(k,(i<<4)+16|0)|0;n=k;l=k}else i=o;f=+h[a>>3];g=+h[q>>3];if(!(f==g)){f=(+h[x>>3]+ +h[q+48>>3])/+F(+(f-g));if(f<1.0){f=1.0;A=13}}else{f=t;A=13}if((A|0)==13)A=0;g=+h[v>>3];j=+h[q+8>>3];if(!(g==j)){g=(+h[w>>3]+ +h[q+56>>3])/+F(+(g-j));if(g<1.0){g=1.0;A=16}}else{g=t;A=16}if((A|0)==16)A=0;m=m+1|0;h[n+(m<<4)>>3]=f;h[n+(m<<4)+8>>3]=g}else i=o;p=p+1|0;q=q+72|0;o=i}}A=KK(i,(m<<4)+16|0)|0;c[d>>2]=m;return A|0}function Sr(a,b){a=a|0;b=b|0;var c=0,d=0,e=0.0,f=0.0,g=0.0;d=1;e=0.0;while(1){c=a+16|0;if((d|0)>(b|0))break;g=+h[c>>3];f=+h[a+24>>3];f=g<f?g:f;d=d+1|0;e=f>e?f:e;a=c}return +e}function Tr(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,f=0,g=0,i=0.0;h[b>>3]=1.0;h[b+8>>3]=t;k3(b+16|0,c,16,76);g=IK((c<<4)+16|0)|0;h[g+(c<<4)>>3]=+h[b+(c<<4)>>3];f=c;d=1.0;while(1){h[g+(f<<4)+8>>3]=d;e=f+-1|0;if((f|0)<=0){d=t;e=0;f=0;break}h[g+(e<<4)>>3]=+h[b+(e<<4)>>3];i=+h[(+h[b+(f<<4)+8>>3]>d?b:g)+(f<<4)+8>>3];f=e;d=i}while(1){if((f|0)>(c|0))break;i=+h[g+(f<<4)>>3]*+h[g+(f<<4)+8>>3];b=i<d;d=b?i:d;e=b?f:e;f=f+1|0}if(d<t){i=+h[g+(e<<4)+8>>3];h[a>>3]=+h[g+(e<<4)>>3];h[a+8>>3]=i;return}else Aa(93897,93835,832,93917)}function Ur(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;c=+h[a>>3];d=+h[b>>3];if(!(c<d))if(!(c>d)){d=+h[a+8>>3];c=+h[b+8>>3];if(d<c)a=-1;else a=d>c&1}else a=1;else a=-1;return a|0}function Vr(a,b,d){a=a|0;b=b|0;d=d|0;d=l;l=l+16|0;b=d;c[b>>2]=93932;dA(1,93982,b)|0;l=d;return 0}function Wr(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;e=l;l=l+16|0;d=e;c[d>>2]=93932;dA(1,94010,d)|0;l=e;return 0}function Xr(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;a:do switch(d|0){case 2:{e=IK(16)|0;f=IK(24)|0;c[f+8>>2]=0;c[f+4>>2]=e;c[f>>2]=2;c[e>>2]=0;c[e+4>>2]=1;d=e+8|0;c[f+16>>2]=d;c[f+20>>2]=0;c[f+12>>2]=2;c[d>>2]=1;c[e+12>>2]=0;break}case 1:{e=IK(4)|0;f=IK(12)|0;c[f+8>>2]=0;c[f+4>>2]=e;c[f>>2]=1;c[e>>2]=0;break}default:{Vr(0,0,0)|0;a=(d|0)>0;if(!e){if(!a){f=0;break a}_a()}else{if(!a){f=0;break a}_a()}}}while(0);return f|0}function Yr(a){a=a|0;var b=0;if(a|0){b=c[a+4>>2]|0;if(b|0)l6(b);b=c[a+8>>2]|0;if(b|0)l6(b);l6(a)}return}function Zr(a){a=a|0;var b=0;if(a|0){b=c[a+4>>2]|0;if(b|0)l6(b);b=c[a+8>>2]|0;if(b|0)l6(b);b=c[a+16>>2]|0;if(b|0)l6(b);l6(a)}return}function _r(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;n=o+8|0;m=o;k=n6(c[46891]|0,d<<2)|0;c[46891]=k;f=0;while(1){if((f|0)>=(d|0))break;c[e+(f<<2)>>2]=2147483647;f=f+1|0}c[e+(a<<2)>>2]=0;h=b+(a*20|0)|0;i=b+(a*20|0)+8|0;j=b+(a*20|0)+4|0;f=1;while(1){if((f|0)>=(c[h>>2]|0))break;c[e+(c[(c[j>>2]|0)+(f<<2)>>2]<<2)>>2]=~~+g[(c[i>>2]|0)+(f<<2)>>2];f=f+1|0}$r(n,a,k,e,d);i=-2147483639;while(1){if(!((as(n,m,c[46891]|0,e)|0)<<24>>24)){f=0;break}f=c[m>>2]|0;a=c[e+(f<<2)>>2]|0;if((a|0)==2147483647){f=0;break}i=b+(f*20|0)|0;j=b+(f*20|0)+4|0;h=b+(f*20|0)+8|0;f=1;while(1){if((f|0)>=(c[i>>2]|0))break;bs(n,c[(c[j>>2]|0)+(f<<2)>>2]|0,~~+g[(c[h>>2]|0)+(f<<2)>>2]+a|0,c[46891]|0,e);f=f+1|0}i=a+10|0}while(1){if((f|0)>=(d|0))break;h=e+(f<<2)|0;if((c[h>>2]|0)==2147483647)c[h>>2]=i;f=f+1|0}cs(n);l=o;return}function $r(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=f+-1|0;if((f|0)==1)i=0;else i=IK(j<<2)|0;c[a>>2]=i;c[a+4>>2]=j;g=0;h=0;while(1){if((h|0)>=(f|0))break;if((h|0)!=(b|0)){c[i+(g<<2)>>2]=h;c[d+(h<<2)>>2]=g;g=g+1|0}h=h+1|0}g=(j|0)/2|0;while(1){if((g|0)<=-1)break;ds(a,g,d,e);g=g+-1|0}return}function as(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=a+4|0;if(!(c[f>>2]|0))a=0;else{g=c[a>>2]|0;c[b>>2]=c[g>>2];b=c[g+((c[f>>2]|0)+-1<<2)>>2]|0;c[g>>2]=b;c[d+(b<<2)>>2]=0;c[f>>2]=(c[f>>2]|0)+-1;ds(a,0,d,e);a=1}return a|0}function bs(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;g=f+(b<<2)|0;if((c[g>>2]|0)>(d|0)){k=e+(b<<2)|0;j=c[k>>2]|0;c[g>>2]=d;g=c[a>>2]|0;a=j;while(1){h=g+(a<<2)|0;if((a|0)<=0)break;i=a>>>1;j=c[g+(i<<2)>>2]|0;if((c[f+(j<<2)>>2]|0)<=(d|0))break;c[h>>2]=j;c[e+(j<<2)>>2]=a;a=i}c[h>>2]=b;c[k>>2]=a}return}function cs(a){a=a|0;a=c[a>>2]|0;if(a|0)l6(a);return}function ds(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;i=a+4|0;while(1){f=b<<1;g=f|1;h=c[i>>2]|0;if(!((f|0)<(h|0)?(j=c[a>>2]|0,(c[e+(c[j+(f<<2)>>2]<<2)>>2]|0)<(c[e+(c[j+(b<<2)>>2]<<2)>>2]|0)):0))f=b;if((g|0)<(h|0)){j=c[a>>2]|0;f=(c[e+(c[j+(g<<2)>>2]<<2)>>2]|0)<(c[e+(c[j+(f<<2)>>2]<<2)>>2]|0)?g:f}if((f|0)==(b|0))break;j=c[a>>2]|0;h=j+(f<<2)|0;g=c[h>>2]|0;j=j+(b<<2)|0;c[h>>2]=c[j>>2];c[j>>2]=g;c[d+(c[h>>2]<<2)>>2]=f;c[d+(c[j>>2]<<2)>>2]=b;b=f}return}function es(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0.0,m=0,n=0,o=0,p=0;p=l;l=l+16|0;m=p+8|0;n=p;c[n>>2]=0;o=IK(d<<2)|0;f=0;while(1){if((f|0)>=(d|0))break;g[e+(f<<2)>>2]=3402823466385288598117041.0e14;f=f+1|0}g[e+(a<<2)>>2]=0.0;h=c[b+(a*20|0)>>2]|0;i=b+(a*20|0)+8|0;j=b+(a*20|0)+4|0;f=1;while(1){if((f|0)>=(h|0))break;c[e+(c[(c[j>>2]|0)+(f<<2)>>2]<<2)>>2]=c[(c[i>>2]|0)+(f<<2)>>2];f=f+1|0}fs(m,a,o,e,d);a:while(1){if(!((gs(m,n,o,e)|0)<<24>>24))break;f=c[n>>2]|0;k=+g[e+(f<<2)>>2];if(k==3402823466385288598117041.0e14)break;i=b+(f*20|0)|0;j=b+(f*20|0)+4|0;h=b+(f*20|0)+8|0;f=1;while(1){if((f|0)>=(c[i>>2]|0))continue a;hs(m,c[(c[j>>2]|0)+(f<<2)>>2]|0,k+ +g[(c[h>>2]|0)+(f<<2)>>2],o,e);f=f+1|0}}cs(m);l6(o);l=p;return}function fs(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;i=f+-1|0;j=IK(i<<2)|0;c[a>>2]=j;c[a+4>>2]=i;g=0;h=0;while(1){if((h|0)>=(f|0))break;if((h|0)!=(b|0)){c[j+(g<<2)>>2]=h;c[d+(h<<2)>>2]=g;g=g+1|0}h=h+1|0}g=(i|0)/2|0;while(1){if((g|0)<=-1)break;is(a,g,d,e);g=g+-1|0}return}function gs(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=a+4|0;if(!(c[f>>2]|0))a=0;else{g=c[a>>2]|0;c[b>>2]=c[g>>2];b=c[g+((c[f>>2]|0)+-1<<2)>>2]|0;c[g>>2]=b;c[d+(b<<2)>>2]=0;c[f>>2]=(c[f>>2]|0)+-1;is(a,0,d,e);a=1}return a|0}function hs(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,l=0;h=f+(b<<2)|0;if(!(+g[h>>2]<=d)){l=e+(b<<2)|0;k=c[l>>2]|0;g[h>>2]=d;h=c[a>>2]|0;a=k;while(1){i=h+(a<<2)|0;if((a|0)<=0)break;j=a>>>1;k=c[h+(j<<2)>>2]|0;if(!(+g[f+(k<<2)>>2]>d))break;c[i>>2]=k;c[e+(k<<2)>>2]=a;a=j}c[i>>2]=b;c[l>>2]=a}return}function is(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0;j=a+4|0;while(1){f=b<<1;h=f|1;i=c[j>>2]|0;if(!((f|0)<(i|0)?(k=c[a>>2]|0,+g[e+(c[k+(f<<2)>>2]<<2)>>2]<+g[e+(c[k+(b<<2)>>2]<<2)>>2]):0))f=b;if((h|0)<(i|0)?(k=c[a>>2]|0,+g[e+(c[k+(h<<2)>>2]<<2)>>2]<+g[e+(c[k+(f<<2)>>2]<<2)>>2]):0)f=h;if((f|0)==(b|0))break;k=c[a>>2]|0;i=k+(f<<2)|0;h=c[i>>2]|0;k=k+(b<<2)|0;c[i>>2]=c[k>>2];c[k>>2]=h;c[d+(c[i>>2]<<2)>>2]=f;c[d+(c[k>>2]<<2)>>2]=b;b=f}return}function js(){cu(187568,48);c[46895]=0;return}function ks(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,g=0,i=0.0;g=eu(187568)|0;c[g+32>>2]=a;c[g+36>>2]=b;Mu(a);Mu(b);c[g+24>>2]=0;c[g+28>>2]=0;i=+h[a>>3];f=+h[b>>3]-i;e=+h[a+8>>3];d=+h[b+8>>3]-e;b=g+16|0;h[b>>3]=i*f+e*d+(f*f+d*d)*.5;a=g+8|0;if((f>0.0?f:-f)>(d>0.0?d:-d)){h[g>>3]=1.0;e=d/f;d=f}else{h[a>>3]=1.0;e=f/d;a=g}h[a>>3]=e;h[b>>3]=+h[b>>3]/d;b=c[46895]|0;c[g+40>>2]=b;c[46895]=b+1;return g|0}function ls(a){a=a|0;var b=0.0,d=0.0,e=0,f=0,g=0.0,i=0.0,j=0.0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0;r=+h[a>>3];l=r==1.0;q=a+8|0;e=c[a+28>>2]|0;f=c[a+24>>2]|0;if(l?+h[q>>3]>=0.0:0)p=f;else{p=e;e=f}f=(e|0)!=0;n=(p|0)!=0;t=a+16|0;o=p+8|0;k=e+8|0;a:do if(l){do if(f){d=+h[k>>3];if(d>+h[23285])break a;g=+h[23286];if(!(d>=g)){d=g;b=+h[t>>3]-g*+h[q>>3];break}else{b=+h[e>>3];break}}else{g=+h[23286];d=g;b=+h[t>>3]-g*+h[q>>3]}while(0);do if(n){i=+h[o>>3];if(i<g)break a;g=+h[23285];if(!(i<=g)){i=g;g=+h[t>>3]-g*+h[q>>3];break}else{g=+h[p>>3];break}}else{g=+h[23285];i=g;g=+h[t>>3]-g*+h[q>>3]}while(0);j=+h[23287];e=b>j;f=g>j;m=+h[23288];if(!(e&f|b<m&g<m)){if(e){d=(+h[t>>3]-j)/+h[q>>3];b=j}if(b<m){d=(+h[t>>3]-m)/+h[q>>3];b=m}if(f){i=(+h[t>>3]-j)/+h[q>>3];g=j}if(g<m){i=(+h[t>>3]-m)/+h[q>>3];g=m;s=47}else s=47}}else{do if(f){b=+h[e>>3];if(b>+h[23287])break a;i=+h[23288];if(!(b>=i)){d=+h[t>>3]-r*i;b=i;break}else{d=+h[k>>3];break}}else{i=+h[23288];d=+h[t>>3]-r*i;b=i}while(0);do if(n){g=+h[p>>3];if(g<i)break a;j=+h[23287];if(!(g<=j)){i=+h[t>>3]-r*j;g=j;break}else{i=+h[o>>3];break}}else{g=+h[23287];i=+h[t>>3]-r*g}while(0);j=+h[23285];e=d>j;f=i>j;m=+h[23286];if(!(e&f|d<m&i<m)){if(e){d=j;b=(+h[t>>3]-j)/r}if(d<m){d=m;b=(+h[t>>3]-m)/r}if(f){i=j;g=(+h[t>>3]-j)/r}if(i<m){i=m;g=(+h[t>>3]-m)/r;s=47}else s=47}}while(0);if((s|0)==47)ms(a,b,d,g,i);return}function ms(a,b,d,e,f){a=a|0;b=+b;d=+d;e=+e;f=+f;var g=0;g=a+32|0;Ts(c[g>>2]|0,b,d);Ts(c[g>>2]|0,e,f);a=a+36|0;Ts(c[a>>2]|0,b,d);Ts(c[a>>2]|0,e,f);return}function ns(a,b,d){a=a|0;b=b|0;d=d|0;c[a+24+(b<<2)>>2]=d;Mu(d);if(c[a+24+(1-b<<2)>>2]|0){ls(a);Lu(c[a+32>>2]|0);Lu(c[a+36>>2]|0);fu(a,187568)}return}function os(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;p=l;l=l+16|0;o=p;m=b<<2;h=IK(S(m,d)|0)|0;g=c[e>>2]|0;m=IK(m)|0;n=c[a+8>>2]|0;if(g|0){l6(c[g>>2]|0);l6(g)}k=IK(d<<2)|0;c[e>>2]=k;g=0;while(1){if((g|0)>=(d|0))break;c[k+(g<<2)>>2]=h+((S(g,b)|0)<<2);g=g+1|0}j=(f|0)!=0;if(j)at(a,b);e=(U4()|0)%(b|0)|0;rr(o,b);g=c[k>>2]|0;if(j){_r(e,a,b,g);f=0;g=0}else{nr(e,a,b,g,o);f=0;g=0}while(1){if((g|0)>=(b|0)){i=1;break}h=c[(c[k>>2]|0)+(g<<2)>>2]|0;c[m+(g<<2)>>2]=h;i=(h|0)>(f|0);f=i?h:f;e=i?g:e;g=g+1|0}while(1){if((i|0)>=(d|0))break;h=k+(i<<2)|0;g=c[h>>2]|0;if(j){_r(e,a,b,g);g=0;f=0}else{nr(e,a,b,g,o);g=0;f=0}while(1){if((g|0)>=(b|0))break;s=m+(g<<2)|0;q=c[s>>2]|0;r=c[(c[h>>2]|0)+(g<<2)>>2]|0;r=(q|0)<(r|0)?q:r;c[s>>2]=r;s=(r|0)>(f|0);q=s?g:e;g=g+1|0;f=s?r:f;e=q}i=i+1|0}l6(m);if(j)bt(a,b,n);l=p;return}function ps(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,i=0.0,j=0,k=0;i=+(b|0);h=0;while(1){if((h|0)>=(d|0))break;j=a+(h<<2)|0;e=0.0;f=0;while(1){if((f|0)>=(b|0))break;e=e+ +(c[(c[j>>2]|0)+(f<<2)>>2]|0);f=f+1|0}g=~~(e/i);f=0;while(1){if((f|0)>=(b|0))break;k=(c[j>>2]|0)+(f<<2)|0;c[k>>2]=(c[k>>2]|0)-g;f=f+1|0}h=h+1|0}return}function qs(){c[46897]=~~+G(+(+((c[46896]|0)+4|0)));return}function rs(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;d=+h[a>>3]-+h[b>>3];c=+h[a+8>>3]-+h[b+8>>3];return +(d*d+c*c)}function ss(a,b,c){a=a|0;b=b|0;c=c|0;h[a>>3]=+h[b>>3]-+h[c>>3];h[a+8>>3]=+h[b+8>>3]-+h[c+8>>3];return}function ts(a,b,c){a=a|0;b=b|0;c=c|0;h[a>>3]=+h[b>>3]+ +h[c>>3];h[a+8>>3]=+h[b+8>>3]+ +h[c+8>>3];return}function us(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0;e=+h[b+8>>3];d=+h[b>>3];return +((+h[a+8>>3]-e)*(+h[c>>3]-d)-(+h[c+8>>3]-e)*(+h[a>>3]-d))}function vs(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+48|0;f=e+32|0;g=e+16|0;h=e;c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];d=+us(h,g,f)>0.0&1;l=e;return d|0}function ws(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0;o=+h[a>>3];p=+h[d+8>>3];q=+h[c+8>>3];m=o*(p-q);n=+h[b>>3];l=+h[d>>3];k=+h[b+8>>3];i=+h[a+8>>3];j=k-i;f=+h[c>>3];g=f*(i-k)+(m+n*(q-p)+l*j);if(g==0.0)d=0;else{p=(l*(q-i)+(m+f*(i-p)))/g;q=-(f*j+(o*(q-k)+n*(i-q)))/g;h[e>>3]=o+(n-o)*p;h[e+8>>3]=i+j*p;d=q<=1.0&(q>=0.0&(p>=0.0&p<=1.0))&1}return d|0}function xs(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0.0,g=0,i=0;c[a+20>>2]=b;Mu(b);i=a+24|0;h[i>>3]=+h[b+8>>3]+d;e=c[46898]|0;e=e+((ys(a)|0)*40|0)|0;while(1){g=e+32|0;e=c[g>>2]|0;if(!e){e=0;break}d=+h[i>>3];f=+h[e+24>>3];if(d>f)continue;if(!(d==f))break;if(!(+h[b>>3]>+h[c[e+20>>2]>>3]))break}c[a+32>>2]=e;c[g>>2]=a;c[46899]=(c[46899]|0)+1;return}function ys(a){a=a|0;var b=0.0,d=0,e=0.0;d=c[46900]|0;e=+(d|0);b=(+h[a+24>>3]-+h[23293])/+h[23296]*e;do if(!(b<0.0))if(!(b>=e)){a=~~b;break}else{a=d+-1|0;break}else a=0;while(0);if((a|0)<(c[46901]|0))c[46901]=a;return a|0}function zs(a){a=a|0;var b=0,d=0,e=0;d=a+20|0;if(c[d>>2]|0){b=c[46898]|0;b=b+((ys(a)|0)*40|0)|0;do{e=b+32|0;b=c[e>>2]|0}while((b|0)!=(a|0));c[e>>2]=c[a+32>>2];c[46899]=(c[46899]|0)+-1;Lu(c[d>>2]|0);c[d>>2]=0}return}function As(){return (c[46899]|0)==0|0}function Bs(a){a=a|0;var b=0,d=0,e=0,f=0.0;b=c[46898]|0;d=c[46901]|0;while(1){e=c[b+(d*40|0)+32>>2]|0;if(e|0)break;e=d+1|0;c[46901]=e;d=e}f=+h[e+24>>3];h[a>>3]=+h[c[e+20>>2]>>3];h[a+8>>3]=f;return}function Cs(){var a=0,b=0;b=(c[46898]|0)+((c[46901]|0)*40|0)+32|0;a=c[b>>2]|0;c[b>>2]=c[a+32>>2];c[46899]=(c[46899]|0)+-1;return a|0}function Ds(){l6(c[46898]|0);c[46898]=0;return}function Es(){var a=0,b=0,d=0;c[46899]=0;c[46901]=0;a=c[46897]|0;b=a<<2;c[46900]=b;d=c[46898]|0;if(!d){d=IK(a*160|0)|0;c[46898]=d;b=c[46900]|0}a=0;while(1){if((a|0)>=(b|0))break;c[d+(a*40|0)+32>>2]=0;a=a+1|0}return}function Fs(){cu(187616,40);l6(c[46907]|0);c[46907]=0;return}function Gs(){var a=0,b=0,d=0;cu(187616,40);a=c[46897]|0;b=a<<1;c[46908]=b;d=c[46907]|0;if(!d){d=IK(a<<3)|0;c[46907]=d;b=c[46908]|0}a=0;while(1){if((a|0)>=(b|0))break;c[d+(a<<2)>>2]=0;a=a+1|0}c[46902]=Hs(0,0)|0;c[46903]=Hs(0,0)|0;c[c[46902]>>2]=0;d=c[46903]|0;b=c[46902]|0;c[b+4>>2]=d;c[d>>2]=b;c[(c[46903]|0)+4>>2]=0;d=c[46907]|0;c[d>>2]=c[46902];c[d+((c[46908]|0)+-1<<2)>>2]=c[46903];return}function Hs(b,d){b=b|0;d=d|0;var e=0;e=eu(187616)|0;c[e+8>>2]=b;a[e+16>>0]=d;c[e+32>>2]=0;c[e+20>>2]=0;c[e+12>>2]=0;return e|0}function Is(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0.0,i=0,j=0.0,k=0,l=0.0,m=0.0,n=0.0,o=0,p=0.0,q=0.0;i=c[b+8>>2]|0;k=c[d+8>>2]|0;do if((!((i|0)==0|(k|0)==0)?(o=c[i+36>>2]|0,e=c[k+36>>2]|0,(o|0)!=(e|0)):0)?(j=+h[i>>3],f=+h[k+8>>3],g=+h[i+8>>3],l=+h[k>>3],m=j*f-g*l,!(m>-1.0e-10&m<1.0e-10)):0){p=+h[i+16>>3];q=+h[k+16>>3];n=(f*p-g*q)/m;j=(j*q-l*p)/m;f=+h[o+8>>3];g=+h[e+8>>3];do if(f<g)e=o;else{if(f==g?+h[o>>3]<+h[e>>3]:0){e=o;break}b=d}while(0);b=a[b+16>>0]|0;if(!(n>=+h[e>>3])){if(b<<24>>24==1){b=0;break}}else if(!(b<<24>>24)){b=0;break}b=Iu()|0;c[b+20>>2]=0;h[b>>3]=n;h[b+8>>3]=j}else b=0;while(0);return b|0}function Js(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0.0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0.0,q=0;o=c[b+8>>2]|0;i=c[o+36>>2]|0;m=+h[d>>3];p=+h[i>>3];n=m>p;e=a[b+16>>0]|0;b=n^1;q=e<<24>>24!=0;if(q|b)if(e<<24>>24==1&b)b=0;else{g=+h[o>>3];b=o+16|0;j=+h[d+8>>3];f=+h[i+8>>3];k=m-p;l=k*k;do if(g==1.0){f=j-f;g=+h[o+8>>3];e=g<0.0;if(n?g>=0.0:e){b=f>=k*g;if(b){b=b&1;break}}else{b=e^m+j*g>+h[b>>3];if(!b){b=b&1;break}}p=p-+h[c[o+32>>2]>>3];b=(l-f*f)*g<f*p*(g*g+(k*2.0/p+1.0));if(e)b=(b^1)&1;else b=b&1}else{p=+h[b>>3]-m*g;m=j-p;p=p-f;b=m*m>l+p*p&1}while(0);b=b^q&1}else b=1;return b|0}function Ks(a,b){a=a|0;b=b|0;c[b>>2]=a;a=a+4|0;c[b+4>>2]=c[a>>2];c[c[a>>2]>>2]=b;c[a>>2]=b;return}function Ls(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=c[46908]|0;b=~~((+h[a>>3]-+h[23291])/+h[23295]*+(f|0));b=(b|0)>0?b:0;f=(b|0)<(f|0)?b:f+-1|0;b=Ms(f)|0;if(!b){d=1;while(1){b=Ms(f-d|0)|0;if(b|0)break;b=Ms(d+f|0)|0;if(b|0)break;d=d+1|0}c[46909]=(c[46909]|0)+d}c[46910]=(c[46910]|0)+1;e=c[46902]|0;d=c[46903]|0;a:do if((b|0)==(e|0))g=9;else{if((b|0)!=(d|0)?(Js(b,a)|0)!=0:0){g=9;break}while(1){b=c[b>>2]|0;if((b|0)==(e|0))break a;if(Js(b,a)|0){e=b;break}}}while(0);if((g|0)==9){while(1){b=c[b+4>>2]|0;if((b|0)==(d|0))break;if(!(Js(b,a)|0))break;else g=9}e=c[b>>2]|0}if((f|0)>0?(f|0)<((c[46908]|0)+-1|0):0){b=(c[46907]|0)+(f<<2)|0;d=c[b>>2]|0;if(d|0){g=d+12|0;c[g>>2]=(c[g>>2]|0)+-1}c[b>>2]=e;g=e+12|0;c[g>>2]=(c[g>>2]|0)+1}return e|0}function Ms(a){a=a|0;var b=0,d=0;if((a|0)>-1&(c[46908]|0)>(a|0)?(d=(c[46907]|0)+(a<<2)|0,b=c[d>>2]|0,(b|0)!=0):0){if((c[b+8>>2]|0)==(-2|0)){c[d>>2]=0;a=b+12|0;d=(c[a>>2]|0)+-1|0;c[a>>2]=d;if(!d){fu(b,187616);b=0}else b=0}}else b=0;return b|0}function Ns(a){a=a|0;var b=0,d=0;b=a+4|0;d=c[a>>2]|0;c[d+4>>2]=c[b>>2];c[c[b>>2]>>2]=d;c[a+8>>2]=-2;return}function Os(a){a=a|0;return c[a+4>>2]|0}function Ps(a){a=a|0;return c[a>>2]|0}function Qs(b){b=b|0;var d=0;d=c[b+8>>2]|0;if(!d)b=187840;else b=d+32+(((a[b+16>>0]|0)!=0&1)<<2)|0;return c[b>>2]|0}function Rs(b){b=b|0;var d=0;d=c[b+8>>2]|0;if(!d)b=187840;else b=d+32+(((a[b+16>>0]|0)==0&1)<<2)|0;return c[b>>2]|0}function Ss(){cu(187648,24);return}function Ts(a,b,d){a=a|0;b=+b;d=+d;var e=0,f=0,g=0,i=0,j=0;j=l;l=l+32|0;i=j;g=(c[46911]|0)+((c[a+16>>2]|0)*96|0)+88|0;f=c[g>>2]|0;h[i+8>>3]=b;h[i+16>>3]=d;e=Us(a,i,f)|0;do if(e|0){if((e|0)<0){i=eu(187648)|0;h[i+8>>3]=b;h[i+16>>3]=d;c[i>>2]=f;c[g>>2]=i;break}while(1){e=c[f>>2]|0;g=Us(a,i,e)|0;if((g|0)>0)f=e;else break}if(g|0){i=eu(187648)|0;h[i+8>>3]=b;h[i+16>>3]=d;c[f>>2]=i;c[i>>2]=e}}while(0);l=j;return}function Us(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0,i=0.0,j=0.0,k=0.0;do if(c){e=+h[b+8>>3];g=+h[c+8>>3];d=+h[b+16>>3];f=+h[c+16>>3];if(!(e==g&d==f)){k=+h[a>>3];j=e-k;e=+h[a+8>>3];i=d-e;g=g-k;f=f-e;d=f/g;e=i/j;b=e<d;if(!(j>=0.0)){a=g>=0.0;b=a|b;b=e>d|b?(b?(a?1:-1):1):j>g?-1:1;break}if(!(g<0.0)){c=g>0.0;if(j>0.0)if(c)return (e==e&d==d&e!=d?(b?-1:1):j<g?-1:1)|0;else{b=f>0.0?-1:1;break}b=i<=0.0;if(c){b=b?-1:1;break}if(i<f){b=!(f<=0.0)?-1:1;break}else{b=b?-1:1;break}}else b=-1}else b=0}else b=-1;while(0);return b|0}function Vs(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=c[a+(d*20|0)>>2]|0;d=a+(d*20|0)+4|0;b=1;a=0;while(1){if((b|0)>=(f|0))break;g=((c[e+(c[(c[d>>2]|0)+(b<<2)>>2]<<2)>>2]|0)>0&1)+a|0;b=b+1|0;a=g}return a|0}function Ws(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=a+(b*20|0)|0;b=a+(b*20|0)+4|0;a=1;while(1){if((a|0)>=(c[e>>2]|0))break;c[d+(c[(c[b>>2]|0)+(a<<2)>>2]<<2)>>2]=1;a=a+1|0}return}function Xs(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=a+(b*20|0)|0;b=a+(b*20|0)+4|0;a=1;while(1){if((a|0)>=(c[e>>2]|0))break;c[d+(c[(c[b>>2]|0)+(a<<2)>>2]<<2)>>2]=0;a=a+1|0}return}function Ys(a,b){a=a|0;b=b|0;if(!(c[a+8>>2]|0))a=_s(a,b)|0;else a=Zs(a,b)|0;return a|0}function Zs(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=b<<2;e=IK(S(f,b)|0)|0;f=IK(f)|0;d=0;while(1){if((d|0)>=(b|0)){d=0;break}c[f+(d<<2)>>2]=e+((S(d,b)|0)<<2);d=d+1|0}while(1){if((d|0)>=(b|0))break;_r(d,a,b,c[f+(d<<2)>>2]|0);d=d+1|0}return f|0}function _s(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=l;l=l+16|0;f=h;g=b<<2;e=IK(S(g,b)|0)|0;g=IK(g)|0;d=0;while(1){if((d|0)>=(b|0))break;c[g+(d<<2)>>2]=e+((S(d,b)|0)<<2);d=d+1|0}rr(f,b);d=0;while(1){if((d|0)>=(b|0))break;nr(d,a,b,c[g+(d<<2)>>2]|0,f);d=d+1|0}sr(f);l=h;return g|0}function $s(a,b){a=a|0;b=b|0;var d=0,e=0;e=c[a+8>>2]|0;at(a,b);d=Zs(a,b)|0;bt(a,b,e);return d|0}function at(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=IK(b<<2)|0;d=0;e=0;while(1){if((d|0)>=(b|0))break;k=(c[a+(d*20|0)>>2]|0)+e|0;d=d+1|0;e=k}e=IK(e<<2)|0;d=0;while(1){if((d|0)>=(b|0))break;c[l+(d<<2)>>2]=0;d=d+1|0}f=0;while(1){if((f|0)>=(b|0))break;c[a+(f*20|0)+8>>2]=e;Ws(a,f,l);h=a+(f*20|0)|0;i=c[h>>2]|0;j=a+(f*20|0)+4|0;k=i+-2|0;d=1;while(1){if((d|0)>=(i|0))break;m=c[(c[j>>2]|0)+(d<<2)>>2]|0;n=c[a+(m*20|0)>>2]|0;g[e+(d<<2)>>2]=+(k+n-((Vs(a,0,m,l)|0)<<1)|0);d=d+1|0}Xs(a,f,l);e=e+(c[h>>2]<<2)|0;f=f+1|0}l6(l);return}function bt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+8|0;l6(c[e>>2]|0);c[e>>2]=0;a:do if(d|0){e=0;while(1){if((e|0)>=(b|0))break a;c[a+(e*20|0)+8>>2]=d;f=d+(c[a+(e*20|0)>>2]<<2)|0;e=e+1|0;d=f}}while(0);return}function ct(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0.0,j=0;f=0;g=0.0;while(1){if((f|0)>=(b|0))break;j=c[a+(f<<2)>>2]|0;i=+h[j+(d<<3)>>3]-+h[j+(e<<3)>>3];f=f+1|0;g=g+i*i}return +(+G(+g))}function dt(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((e|0)>(d|0)){c[46915]=a;k3(b+(d<<2)|0,1-d+e|0,4,77)}return}function et(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0;f=c[46915]|0;e=+g[f+(c[a>>2]<<2)>>2];d=+g[f+(c[b>>2]<<2)>>2];return (e<d?-1:e>d&1)|0}function ft(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=l;l=l+16|0;f=h;if((d|0)<(e|0)){gt(a,b,d,e,f);g=c[f>>2]|0;f=g+-1|0;ft(a,b,d,f);g=g+1|0;ft(a,b,g,e);if(!(ht(a,b,d,f)|0))ft(a,b,d,f);if(!(ht(a,b,g,e)|0))ft(a,b,g,e)}l=h;return}function gt(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,l=0,m=0,n=0.0;k=U4()|0;k=b+(((((U4()|0)<<16|k)>>>0)%((1-d+e|0)>>>0)|0)+d<<2)|0;l=c[k>>2]|0;m=b+(d<<2)|0;c[k>>2]=c[m>>2];c[m>>2]=l;n=+h[a+(l<<3)>>3];d=d+1|0;a:while(1){if((d|0)>=(e|0))break;while(1){j=d+1|0;k=b+(d<<2)|0;if((d|0)>=(e|0))break;if(!(+h[a+(c[k>>2]<<3)>>3]<=n))break;else d=j}while(1){i=b+(e<<2)|0;g=e;e=e+-1|0;if((d|0)>=(g|0)){e=g;continue a}g=c[i>>2]|0;if(!(+h[a+(g<<3)>>3]>n))break}d=c[k>>2]|0;c[k>>2]=g;c[i>>2]=d;d=j}a=((+h[a+(c[b+(d<<2)>>2]<<3)>>3]>n)<<31>>31)+d|0;c[f>>2]=a;f=b+(a<<2)|0;c[m>>2]=c[f>>2];c[f>>2]=l;return}function ht(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=1;while(1){f=d+1|0;if(!((d|0)<(e|0)&(g|0)!=0))break;g=+h[a+(c[b+(d<<2)>>2]<<3)>>3]>+h[a+(c[b+(f<<2)>>2]<<3)>>3]?0:g;d=f}return g|0}function it(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0.0,i=0.0,j=0.0,k=0.0,m=0,n=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0;x=l;l=l+16|0;v=4;w=k6(40)|0;c[w>>2]=0;t=x;o=0;u=la(23,b*40|0)|0;d=o;o=0;if((d|0)!=0&(p|0)!=0){e=A6(c[d>>2]|0,w|0,v|0)|0;if(!e)Ca(d|0,p|0);D=p}else e=-1;if((e|0)!=1){d=0;r=0;while(1){if((d|0)>=(b|0))break;s=(c[(c[a+(d<<2)>>2]|0)+4>>2]|0)+r|0;d=d+1|0;r=s}o=0;s=la(23,r*24|0)|0;d=o;o=0;if((d|0)!=0&(p|0)!=0){e=A6(c[d>>2]|0,w|0,v|0)|0;if(!e)Ca(d|0,p|0);D=p}else e=-1;if((e|0)!=1){d=0;m=0;while(1){if((m|0)>=(b|0))break;n=u+(m*40|0)|0;c[n>>2]=s+(d*24|0);q=a+(m<<2)|0;f=0;g=1797693134862315708145274.0e284;i=-1797693134862315708145274.0e284;j=-1797693134862315708145274.0e284;k=1797693134862315708145274.0e284;while(1){e=c[q>>2]|0;if((f|0)>=(c[e+4>>2]|0))break;e=c[e>>2]|0;z=+h[e+(f<<4)>>3];y=+h[e+(f<<4)+8>>3];h[s+(d*24|0)>>3]=z;h[s+(d*24|0)+8>>3]=y;c[s+(d*24|0)+16>>2]=n;c[s+(d*24|0)+20>>2]=0;f=f+1|0;d=d+1|0;g=g<z?g:z;i=i>z?i:z;j=j>y?j:y;k=k<y?k:y}c[u+(m*40|0)+4>>2]=s+((d+-1|0)*24|0);h[u+(m*40|0)+8>>3]=g;h[u+(m*40|0)+16>>3]=k;h[u+(m*40|0)+24>>3]=i;h[u+(m*40|0)+32>>3]=j;m=m+1|0}c[t>>2]=r;c[t+4>>2]=b;w=x6(187664,1,w|0,v|0)|0;v=D;o=0;d=o;o=0;if((d|0)!=0&(p|0)!=0){e=A6(c[d>>2]|0,w|0,v|0)|0;if(!e)Ca(d|0,p|0);D=p}else e=-1;if((e|0)==1){d=D;q=s;m=s;n=u}else{d=0;q=s;m=s;n=u}}else{d=D;q=0;m=s;n=u}}else{d=D;q=0;m=0;n=0}while(1){if(d|0){o=0;$(105,u|0);d=o;o=0;if((d|0)!=0&(p|0)!=0){e=A6(c[d>>2]|0,w|0,v|0)|0;if(!e)Ca(d|0,p|0);D=p}else e=-1;if((e|0)==1){f=n;r=m;s=q;d=D;n=f;m=r;q=s;continue}o=0;$(105,m|0);d=o;o=0;if((d|0)!=0&(p|0)!=0){e=A6(c[d>>2]|0,w|0,v|0)|0;if(!e)Ca(d|0,p|0);D=p}else e=-1;if((e|0)==1){f=n;r=m;s=q;d=D;n=f;m=r;q=s;continue}else{e=17;break}}o=0;d=ra(78,q|0,t|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,v|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){f=n;r=m;s=q;d=D;n=f;m=r;q=s;continue}if(!d){o=0;d=aa(27,a|0,b|0,n|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,v|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){f=n;r=m;s=q;d=D;n=f;m=r;q=s;continue}}o=0;$(105,u|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,v|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){f=n;r=m;s=q;d=D;n=f;m=r;q=s;continue}o=0;$(105,m|0);e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,w|0,v|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){f=n;r=m;s=q;d=D;n=f;m=r;q=s}else{e=24;break}}if((e|0)==17)d=0;else if((e|0)==24)d=(d|0)==0&1;l6(w|0);l=x;return d|0}function jt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=l;l=l+16|0;r=w;p=w+8|0;q=w+4|0;c[b+8>>2]=0;v=IK(c[b>>2]<<2)|0;f=c[b>>2]|0;e=0;while(1){if((e|0)>=(f|0))break;c[v+(e<<2)>>2]=a+(e*24|0);e=e+1|0}k3(v,f,4,79);n=0;g=0;f=0;h=0;a:while(1){if((n|0)>=(c[b>>2]|0)){t=0;d=g;u=h;break}o=v+(n<<2)|0;e=c[o>>2]|0;c[p>>2]=e;a=c[e+16>>2]|0;if((e|0)==(c[a>>2]|0))e=c[a+4>>2]|0;else e=e+-24|0;c[q>>2]=e;m=0;a=g;k=h;while(1){if((m|0)>=2)break;j=e+20|0;switch(lt(p,q)|0){case -1:{g=0;h=a;while(1){if((g|0)>=(k|0))break;i=mt(c[h>>2]|0,e)|0;if(i|0){t=i;d=a;u=k;break a}g=g+1|0;h=c[h+4>>2]|0}g=IK(12)|0;if(!k){f=0;a=g}else c[f+4>>2]=g;c[g+8>>2]=f;c[g>>2]=e;c[g+4>>2]=0;c[j>>2]=g;h=a;f=g;g=k+1|0;break}case 1:{g=c[j>>2]|0;if(!g){s=19;break a}do if((k|0)!=1){if((g|0)==(a|0)){a=c[a+4>>2]|0;c[a+8>>2]=0;e=f;break}if((g|0)==(f|0)){e=c[f+8>>2]|0;c[e+4>>2]=0;break}else{e=g+4|0;i=c[g+8>>2]|0;c[i+4>>2]=c[e>>2];c[(c[e>>2]|0)+8>>2]=i;e=f;break}}else{a=0;e=0}while(0);l6(g);c[j>>2]=0;h=a;f=e;g=k+-1|0;break}default:{h=a;g=k}}e=c[o>>2]|0;a=c[e+16>>2]|0;if((e|0)==(c[a+4>>2]|0))a=c[a>>2]|0;else a=e+24|0;c[q>>2]=a;m=m+1|0;a=h;k=g}n=n+1|0;g=a;h=k}if((s|0)==19){dA(1,94028,r)|0;Ca(187664,1)}e=0;while(1){if((e|0)>=(u|0))break;s=c[d+4>>2]|0;l6(d);e=e+1|0;d=s}l6(v);l=w;return t|0}function kt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0.0,k=0.0,m=0,n=0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0.0,x=0.0,y=0,z=0.0,A=0.0,B=0.0,C=0,D=0,E=0,F=0,G=0,H=0.0;G=l;l=l+48|0;s=G+16|0;r=G+32|0;y=G;e=0;a:while(1){if((e|0)>=(b|0)){e=0;break}C=c[a+(e<<2)>>2]|0;D=c[C>>2]|0;c[y>>2]=c[D>>2];c[y+4>>2]=c[D+4>>2];c[y+8>>2]=c[D+8>>2];c[y+12>>2]=c[D+12>>2];D=e+1|0;E=d+(e*40|0)+8|0;t=d+(e*40|0)+16|0;u=d+(e*40|0)+32|0;g=d+(e*40|0)+24|0;e=D;while(1){if((e|0)>=(b|0)){e=D;continue a}i=c[a+(e<<2)>>2]|0;j=+h[E>>3];k=+h[d+(e*40|0)+24>>3];m=d+(e*40|0)+32|0;n=d+(e*40|0)+16|0;o=+h[d+(e*40|0)+8>>3];p=+h[g>>3];q=p>=o;f=!(j<=k);if(((!(f|!(j>=o))?(v=+h[t>>3],w=+h[m>>3],v<=w):0)?(x=+h[n>>3],!(!(p<=k)|!(v>=x)|q^1)):0)?(H=+h[u>>3],!(!(H<=w)|!(H>=x))):0){c[r>>2]=c[i>>2];c[r+4>>2]=c[i+4>>2];c[s>>2]=c[y>>2];c[s+4>>2]=c[y+4>>2];c[s+8>>2]=c[y+8>>2];c[s+12>>2]=c[y+12>>2];if(LX(r,s)|0){e=1;break a}}else F=10;if((((((F|0)==10?(F=0,!(!(o>=j)|q^1)):0)?(z=+h[n>>3],A=+h[u>>3],z<=A):0)?(B=+h[t>>3],!(f|(!(k<=p)|!(z>=B)))):0)?(H=+h[m>>3],!(!(H<=A)|!(H>=B))):0)?(q=c[i>>2]|0,c[r>>2]=c[C>>2],c[r+4>>2]=c[C+4>>2],c[s>>2]=c[q>>2],c[s+4>>2]=c[q+4>>2],c[s+8>>2]=c[q+8>>2],c[s+12>>2]=c[q+12>>2],LX(r,s)|0):0){e=1;break a}e=e+1|0}}l=G;return e|0}function lt(a,b){a=a|0;b=b|0;var d=0.0,e=0;e=c[a>>2]|0;a=c[b>>2]|0;d=+h[e>>3]-+h[a>>3];if(!(d!=0.0)){d=+h[e+8>>3]-+h[a+8>>3];if(d==0.0)a=0;else a=d>0.0?1:-1}else a=d>0.0?1:-1;return a|0}function mt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0;m=l;l=l+64|0;g=m+32|0;i=m+24|0;j=m+16|0;k=m;f=m+48|0;nt(a,b,f);d=f+8|0;e=c[d>>2]|0;do if((e|0)>0)d=0;else{if((e|0)<0){nt(b,a,f);d=c[d>>2]|0;if((d|0)>0){d=0;break}if((d|0)<0)d=3;else{d=c[f>>2]|0;d=ot(b,a,(d|0)>-1?d:0-d|0)|0}if(!(pt(a,b,i,j,d)|0)){d=0;break}}else{d=c[f>>2]|0;if((d|0)==(c[f+4>>2]|0)){d=ot(a,b,0)|0;d=(ot(a,b,(d|0)<=(ot(a,b,1)|0)&1)|0)<<1}else d=ot(a,b,(d|0)>-1?d:0-d|0)|0;if(!(pt(a,b,i,j,d)|0)){d=0;break}}h[k>>3]=+h[i>>3];h[k+8>>3]=+h[j>>3];c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];c[g+8>>2]=c[k+8>>2];c[g+12>>2]=c[k+12>>2];d=qt(a,b,g)|0}while(0);l=m;return d|0}function nt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0.0,i=0.0,j=0.0,k=0.0,l=0.0;i=+h[a>>3];j=+h[a+8>>3];e=c[a+16>>2]|0;if((c[e+4>>2]|0)==(a|0))a=c[e>>2]|0;else a=a+24|0;g=+h[a>>3]-i;f=+h[a+8>>3]-j;a=c[b+16>>2]|0;if((c[a+4>>2]|0)==(b|0))a=c[a>>2]|0;else a=b+24|0;k=+h[a>>3]-i;l=+h[a+8>>3]-j;j=g*(+h[b+8>>3]-j)-f*(+h[b>>3]-i);b=j==0.0?0:j>0.0?1:-1;c[d>>2]=b;j=g*l-f*k;e=j==0.0?0:j>0.0?1:-1;c[d+4>>2]=e;c[d+8>>2]=S(e,b)|0;return}function ot(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0.0,i=0.0,j=0.0,k=0.0,l=0.0;k=+h[a>>3];l=+h[a+8>>3];f=c[a+16>>2]|0;if((c[f+4>>2]|0)==(a|0))a=c[f>>2]|0;else a=a+24|0;j=+h[a>>3];i=+h[a+8>>3];do if(d){a=c[b+16>>2]|0;if((c[a+4>>2]|0)==(b|0)){b=c[a>>2]|0;break}else{b=b+24|0;break}}while(0);g=+h[b>>3];e=+h[b+8>>3];if(k==j){if(k==g)b=(st(l,e,i)|0)!=-1;else b=0;b=b&1}else b=st(k,g,j)|0;return b|0}function pt(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0;a:do if((f|0)<1)g=0;else{q=+h[a>>3];s=+h[a+8>>3];g=c[a+16>>2]|0;if((c[g+4>>2]|0)==(a|0))g=c[g>>2]|0;else g=a+24|0;l=+h[g>>3];j=+h[g+8>>3];p=+h[b>>3];r=+h[b+8>>3];g=c[b+16>>2]|0;if((c[g+4>>2]|0)==(b|0))g=c[g>>2]|0;else g=b+24|0;k=+h[g>>3];i=+h[g+8>>3];n=s-j;o=q-l;b:do switch(f|0){case 3:{m=(r-i)/(p-k);if(q==l){h[d>>3]=q;i=i+(q-k)*m;break b}i=n/o;if(p==k){h[d>>3]=p;i=j+i*(p-l);break b}else{r=r-p*m;q=s-q*i;s=m-i;h[d>>3]=(q-r)/s;i=(q*m-i*r)/s;break b}}case 2:{if((ot(a,b,0)|0)==-1)if((ot(b,a,1)|0)==-1){f=(ot(b,a,0)|0)==-1;l=f?l:q;k=p;j=f?j:s;i=r}else{l=k;k=p;j=i;i=r}else if((ot(a,b,1)|0)!=-1)if((ot(b,a,0)|0)==-1){k=q;i=s}else{g=0;break a}else{l=p;j=r}h[d>>3]=(l+k)*.5;i=(j+i)*.5;break}case 1:if(o*(r-s)==n*(p-q)){h[d>>3]=p;i=r;break b}else{h[d>>3]=k;break b}default:{g=1;break a}}while(0);h[e>>3]=i;g=1}while(0);return g|0}function qt(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0.0,i=0.0,j=0.0,k=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0;t=l;l=l+16|0;r=t;p=+h[a>>3];q=+h[a+8>>3];f=c[a+16>>2]|0;if((c[f+4>>2]|0)==(a|0))f=c[f>>2]|0;else f=a+24|0;n=+h[f>>3];k=+h[f+8>>3];m=+h[b>>3];o=+h[b+8>>3];f=c[b+16>>2]|0;if((c[f+4>>2]|0)==(b|0))f=c[f>>2]|0;else f=b+24|0;j=+h[f>>3];i=+h[f+8>>3];f=e+8|0;a:do if(!(p!=n&m!=j)){do if(p==n){g=+h[e>>3];if(p==g?q==+h[f>>3]:0)break;if(!(n==g)){s=18;break a}if(!(k==+h[f>>3])){s=18;break a}}while(0);if(m==j){g=+h[e>>3];if(m==g?o==+h[f>>3]:0){f=0;break}if(j==g?i==+h[f>>3]:0)f=0;else s=18}else f=0}else s=18;while(0);if((s|0)==18)if((d[195234]|0)>1){s=c[15715]|0;q=+h[f>>3];h[r>>3]=+h[e>>3];h[r+8>>3]=q;z4(s,94057,r)|0;rt(1,a);rt(2,b);f=1}else f=1;l=t;return f|0}function rt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,g=0.0,i=0,j=0,k=0.0,m=0.0;j=l;l=l+48|0;i=j;e=c[15715]|0;f=+h[b>>3];g=+h[b+8>>3];d=c[b+16>>2]|0;if((c[d+4>>2]|0)==(b|0))b=c[d>>2]|0;else b=b+24|0;m=+h[b>>3];k=+h[b+8>>3];c[i>>2]=a;h[i+8>>3]=f;h[i+16>>3]=g;h[i+24>>3]=m;h[i+32>>3]=k;z4(e,94085,i)|0;l=j;return}function st(a,b,c){a=+a;b=+b;c=+c;return (a==b|b==c?0:(a<b?b<c:c<b)?1:-1)|0}function tt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0.0,j=0;a:do if(!(ry(a,d)|0))a=0;else{f=HK(d<<3)|0;a=0;while(1){if((a|0)<(d|0))e=0;else break;while(1){if((e|0)==(d|0))break;h[f+(e<<3)>>3]=0.0;e=e+1|0}h[f+(a<<3)>>3]=1.0;sy(c[b+(a<<2)>>2]|0,f,d);a=a+1|0}l6(f);f=0;while(1){if((f|0)>=(d|0)){a=1;break a}e=b+(f<<2)|0;a=0;while(1){if((a|0)==(f|0))break;j=(c[e>>2]|0)+(a<<3)|0;i=+h[j>>3];g=(c[b+(a<<2)>>2]|0)+(f<<3)|0;h[j>>3]=+h[g>>3];h[g>>3]=i;a=a+1|0}f=f+1|0}}while(0);return a|0}function ut(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0.0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;q=b<<3;p=IK(q)|0;q=IK(q)|0;r=b*30|0;n=(d|0)<(b|0)?d:b;o=b+-1|0;m=(g|0)==0;d=0;i=0;a:while(1){if((i|0)>=(n|0))break;k=c[e+(i<<2)>>2]|0;do{b:do if(m)d=0;else{d=0;while(1){if((d|0)==(b|0)){d=0;break b}h[k+(d<<3)>>3]=+((U4()|0)%100|0|0);d=d+1|0}}while(0);while(1){if((d|0)==(i|0))break;g=c[e+(d<<2)>>2]|0;wt(k,0,o,-+vt(g,0,o,k),g);d=d+1|0}j=+xt(k,0,o)}while(j<1.0e-10);yt(k,0,o,1.0/j,k);d=0;do{zt(q,0,o,k);At(a,b,b,k,p);zt(k,0,o,p);g=0;while(1){if((g|0)==(i|0))break;s=c[e+(g<<2)>>2]|0;wt(k,0,o,-+vt(s,0,o,k),s);g=g+1|0}s=d;d=d+1|0;j=+xt(k,0,o);if(!((s|0)<(r|0)&!(j<1.0e-10)))break a;yt(k,0,o,1.0/j,k);l=+vt(k,0,o,q)}while(+F(+l)<.999);h[f+(i<<3)>>3]=j*l;i=i+1|0}while(1){if((i|0)>=(n|0))break;k=c[e+(i<<2)>>2]|0;g=0;while(1){if((g|0)>=(b|0)){g=0;break}h[k+(g<<3)>>3]=+((U4()|0)%100|0|0);g=g+1|0}while(1){if((g|0)>=(i|0))break;s=c[e+(g<<2)>>2]|0;wt(k,0,o,-+vt(s,0,o,k),s);g=g+1|0}yt(k,0,o,1.0/+xt(k,0,o),k);h[f+(i<<3)>>3]=0.0;i=i+1|0}m=n+-1|0;i=0;while(1){if((i|0)>=(m|0))break;a=f+(i<<3)|0;b=i+1|0;j=+h[a>>3];g=i;k=b;while(1){if((k|0)>=(n|0))break;l=+h[f+(k<<3)>>3];s=j<l;j=s?l:j;g=s?k:g;k=k+1|0}if((g|0)==(i|0)){i=b;continue}k=e+(i<<2)|0;zt(p,0,o,c[k>>2]|0);s=e+(g<<2)|0;zt(c[k>>2]|0,0,o,c[s>>2]|0);zt(c[s>>2]|0,0,o,p);h[f+(g<<3)>>3]=+h[a>>3];h[a>>3]=j;i=b}l6(p);l6(q);return (d|0)<=(r|0)|0}function vt(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0.0;f=0.0;e=1-b+c|0;d=d+(b<<3)|0;c=a+(b<<3)|0;while(1){if(!e)break;f=f+ +h[c>>3]*+h[d>>3];e=e+-1|0;d=d+8|0;c=c+8|0}return +f}function wt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;var f=0;f=1-b+c|0;e=e+(b<<3)|0;c=a+(b<<3)|0;while(1){if(!f)break;h[c>>3]=+h[c>>3]+ +h[e>>3]*d;f=f+-1|0;e=e+8|0;c=c+8|0}return}function xt(a,b,c){a=a|0;b=b|0;c=c|0;return +(+G(+(+vt(a,b,c,a))))}function yt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;var f=0;f=1-b+c|0;e=e+(b<<3)|0;c=a+(b<<3)|0;while(1){if(!f)break;h[c>>3]=+h[e>>3]*d;f=f+-1|0;e=e+8|0;c=c+8|0}return}function zt(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=1-b+c|0;d=d+(b<<3)|0;c=a+(b<<3)|0;while(1){if(!e)break;h[c>>3]=+h[d>>3];e=e+-1|0;d=d+8|0;c=c+8|0}return}function At(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,i=0,j=0,k=0;j=0;while(1){if((j|0)>=(b|0))break;k=a+(j<<2)|0;g=0.0;i=0;while(1){if((i|0)>=(d|0))break;g=g+ +h[(c[k>>2]|0)+(i<<3)>>3]*+h[e+(i<<3)>>3];i=i+1|0}h[f+(j<<3)>>3]=g;j=j+1|0}return}function Bt(a,b,d,e,f,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;i=i|0;var j=0,k=0,l=0,m=0.0,n=0,o=0,p=0.0;k=c[i>>2]|0;l=d<<2;j=S(l,f)|0;if(!k){j=k6(j)|0;o=k6(l)|0}else{j=n6(c[k>>2]|0,j)|0;o=n6(k,l)|0}c[i>>2]=o;k=0;while(1){if((k|0)>=(d|0)){l=0;break}c[o+(k<<2)>>2]=j;k=k+1|0;j=j+(f<<2)|0}while(1){if((l|0)>=(d|0))break;i=a+(l<<2)|0;n=o+(l<<2)|0;k=0;while(1){if((k|0)<(f|0)){j=0;m=0.0}else break;while(1){if((j|0)>=(e|0))break;p=m+ +h[(c[i>>2]|0)+(j<<3)>>3]*+g[(c[b+(j<<2)>>2]|0)+(k<<2)>>2];j=j+1|0;m=p}g[(c[n>>2]|0)+(k<<2)>>2]=m;k=k+1|0}l=l+1|0}return}function Ct(a,b,d,e,f,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;i=i|0;var j=0,k=0,l=0.0,m=0,n=0,o=0;k=c[i>>2]|0;j=S(d<<3,f)|0;if(!k){j=k6(j)|0;o=k6(d<<2)|0}else{j=n6(c[k>>2]|0,j)|0;o=n6(k,d<<2)|0}c[i>>2]=o;k=0;while(1){if((k|0)>=(d|0)){i=0;break}c[o+(k<<2)>>2]=j;k=k+1|0;j=j+(f<<3)|0}while(1){if((i|0)>=(d|0))break;m=a+(i<<2)|0;n=o+(i<<2)|0;k=0;while(1){if((k|0)<(f|0)){l=0.0;j=0}else break;while(1){if((j|0)>=(e|0))break;l=l+ +h[(c[m>>2]|0)+(j<<3)>>3]*+g[(c[b+(j<<2)>>2]|0)+(k<<2)>>2];j=j+1|0}h[(c[n>>2]|0)+(k<<3)>>3]=l;k=k+1|0}i=i+1|0}return}function Dt(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var i=0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0;j=c[f>>2]|0;i=S(d*20|0,e)|0;if(!j){i=k6(i)|0;q=k6(d<<2)|0}else{i=n6(c[j>>2]|0,i)|0;q=n6(j,d<<2)|0}c[f>>2]=q;j=0;while(1){if((j|0)>=(d|0)){f=0;break}c[q+(j<<2)>>2]=i;j=j+1|0;i=i+(e<<2)|0}while(1){if((f|0)>=(d|0))break;l=c[a+(f*20|0)+4>>2]|0;m=c[a+(f*20|0)+8>>2]|0;n=c[a+(f*20|0)>>2]|0;o=q+(f<<2)|0;i=0;while(1){if((i|0)>=(e|0))break;p=b+(i<<2)|0;k=0.0;j=0;while(1){if((j|0)>=(n|0))break;k=k+ +g[m+(j<<2)>>2]*+h[(c[p>>2]|0)+(c[l+(j<<2)>>2]<<3)>>3];j=j+1|0}g[(c[o>>2]|0)+(i<<2)>>2]=k;i=i+1|0}f=f+1|0}return}function Et(a,b){a=a|0;b=b|0;var c=0.0,d=0,e=0;c=0.0;d=b;e=a;while(1){if(!e)break;c=c+ +h[d>>3];d=d+8|0;e=e+-1|0}c=c/+(a|0);while(1){if(!a)break;h[b>>3]=+h[b>>3]-c;b=b+8|0;a=a+-1|0}return}function Ft(a,b){a=a|0;b=b|0;var c=0;c=0;while(1){if((c|0)>=(a|0))break;h[b+(c<<3)>>3]=+((U4()|0)%500|0|0);c=c+1|0}Et(a,b);return}function Gt(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,i=0,j=0,k=0,l=0,m=0;j=0;while(1){if((j|0)>=(b|0))break;k=c[a+(j*20|0)>>2]|0;l=a+(j*20|0)+8|0;m=a+(j*20|0)+4|0;f=0.0;i=0;while(1){if((i|0)>=(k|0))break;f=f+ +g[(c[l>>2]|0)+(i<<2)>>2]*+h[d+(c[(c[m>>2]|0)+(i<<2)>>2]<<3)>>3];i=i+1|0}h[e+(j<<3)>>3]=f;j=j+1|0}return}function Ht(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,i=0,j=0,k=0;j=0;while(1){if((j|0)>=(b|0))break;k=a+(j<<2)|0;f=0.0;i=0;while(1){if((i|0)==(b|0))break;f=f+ +g[(c[k>>2]|0)+(i<<2)>>2]*+h[d+(i<<3)>>3];i=i+1|0}h[e+(j<<3)>>3]=f;j=j+1|0}return}function It(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=0;while(1){if((e|0)>=(a|0))break;h[d+(e<<3)>>3]=+h[b+(e<<3)>>3]-+h[c+(e<<3)>>3];e=e+1|0}return}function Jt(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=0;while(1){if((e|0)>=(a|0))break;h[d+(e<<3)>>3]=+h[b+(e<<3)>>3]+ +h[c+(e<<3)>>3];e=e+1|0}return}function Kt(a,b,c,d){a=a|0;b=b|0;c=+c;d=d|0;var e=0;e=0;while(1){if((e|0)>=(a|0))break;h[d+(e<<3)>>3]=+h[b+(e<<3)>>3]*c;e=e+1|0}return}function Lt(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=0;while(1){if((d|0)>=(a|0))break;h[c+(d<<3)>>3]=+h[b+(d<<3)>>3];d=d+1|0}return}function Mt(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0;d=0.0;e=0;while(1){if((e|0)>=(a|0))break;d=d+ +h[b+(e<<3)>>3]*+h[c+(e<<3)>>3];e=e+1|0}return +d}function Nt(a,b){a=a|0;b=b|0;var c=0,d=0.0,e=0.0;c=0;d=-1.e+50;while(1){if((c|0)>=(a|0))break;e=+F(+(+h[b+(c<<3)>>3]));c=c+1|0;d=e>d?e:d}return +d}function Ot(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,i=0,j=0;j=0;while(1){if((j|0)<(b|0)){g=0.0;i=0}else break;while(1){if((i|0)>=(d|0))break;g=g+ +h[(c[a+(i<<2)>>2]|0)+(j<<3)>>3]*+h[e+(i<<3)>>3];i=i+1|0}h[f+(j<<3)>>3]=g;j=j+1|0}return}function Pt(a,b){a=a|0;b=b|0;var c=0.0,d=0,e=0;c=0.0;d=b;e=a;while(1){if(!e)break;c=c+ +g[d>>2];d=d+4|0;e=e+-1|0}c=c/+(a|0);while(1){if(!a)break;g[b>>2]=+g[b>>2]-c;b=b+4|0;a=a+-1|0}return}function Qt(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0.0,h=0,i=0,j=0,k=0,l=0.0,m=0,n=0.0,o=0,p=0.0;e=0;while(1){if((e|0)>=(b|0)){h=0;j=0;m=b;break}g[d+(e<<2)>>2]=0.0;e=e+1|0}while(1){if((j|0)>=(b|0))break;l=+g[c+(j<<2)>>2];k=j+1|0;f=l*+g[a+(h<<2)>>2]+0.0;i=k;e=h;while(1){e=e+1|0;if((i|0)==(b|0))break;p=+g[a+(e<<2)>>2];n=f+p*+g[c+(i<<2)>>2];o=d+(i<<2)|0;g[o>>2]=l*p+ +g[o>>2];f=n;i=i+1|0}o=d+(j<<2)|0;g[o>>2]=f+ +g[o>>2];h=h+m|0;j=k;m=m+-1|0}return}function Rt(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=0;while(1){if((e|0)>=(a|0))break;g[d+(e<<2)>>2]=+g[b+(e<<2)>>2]-+g[c+(e<<2)>>2];e=e+1|0}return}function St(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=0;while(1){if((e|0)>=(a|0))break;g[d+(e<<2)>>2]=+g[b+(e<<2)>>2]+ +g[c+(e<<2)>>2];e=e+1|0}return}function Tt(a,b,c,d){a=a|0;b=b|0;c=+c;d=d|0;var e=0,f=0;e=0;while(1){if((e|0)>=(a|0))break;f=b+(e<<2)|0;g[f>>2]=+g[f>>2]+ +g[d+(e<<2)>>2]*c;e=e+1|0}return}function Ut(a,b,c,d){a=a|0;b=b|0;c=+c;d=d|0;var e=0;e=0;while(1){if((e|0)>=(a|0))break;g[d+(e<<2)>>2]=+g[b+(e<<2)>>2]*c;e=e+1|0}return}function Vt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=0;while(1){if((e|0)>=(a|0))break;c[d+(e<<2)>>2]=c[b+(e<<2)>>2];e=e+1|0}return}function Wt(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0;d=0.0;e=0;while(1){if((e|0)>=(a|0))break;d=d+ +g[b+(e<<2)>>2]*+g[c+(e<<2)>>2];e=e+1|0}return +d}function Xt(a,b,c){a=a|0;b=+b;c=c|0;var d=0;d=0;while(1){if((d|0)>=(a|0))break;h[c+(d<<3)>>3]=b;d=d+1|0}return}function Yt(a,b,c){a=a|0;b=+b;c=c|0;var d=0;d=0;while(1){if((d|0)>=(a|0))break;g[c+(d<<2)>>2]=b;d=d+1|0}return}function Zt(a,b){a=a|0;b=b|0;var c=0.0,d=0,e=0.0;c=-1000000015047466219876688.0e6;d=0;while(1){if((d|0)>=(a|0))break;e=+F(+(+g[b+(d<<2)>>2]));c=e>c?e:c;d=d+1|0}return +c}function _t(a,b){a=a|0;b=b|0;var c=0,d=0,e=0.0;c=0;while(1){if((c|0)>=(a|0))break;d=b+(c<<2)|0;e=+g[d>>2];g[d>>2]=e*e;c=c+1|0}return}function $t(a,b){a=a|0;b=b|0;var c=0,d=0,e=0.0;c=0;while(1){if((c|0)>=(a|0))break;d=b+(c<<2)|0;e=+g[d>>2];if(e!=0.0)g[d>>2]=1.0/e;c=c+1|0}return}function au(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0.0;d=0;while(1){if((d|0)>=(a|0))break;e=+g[b+(d<<2)>>2];if(e>=0.0)g[c+(d<<2)>>2]=+G(+e);d=d+1|0}return}function bu(a,b){a=a|0;b=b|0;var c=0,d=0,e=0.0;c=0;while(1){if((c|0)>=(a|0))break;d=b+(c<<2)|0;e=+g[d>>2];if(e>0.0)g[d>>2]=1.0/+G(+e);c=c+1|0}return}function cu(a,b){a=a|0;b=b|0;var d=0;c[a>>2]=0;if(b&3)if(!(4%(b>>>0)|0))b=4;else b=S(4/((du(b)|0)>>>0)|0,b)|0;c[a+8>>2]=b;a=a+4|0;b=c[a>>2]|0;a:do if(b|0)while(1){if(!b)break a;d=c[b>>2]|0;l6(c[b+4>>2]|0);l6(b);b=d}while(0);c[a>>2]=0;return}function du(a){a=a|0;var b=0,c=0;c=4;a:while(1){b=c;while(1){if((b|0)==(a|0))break a;if((b|0)<=(a|0))break;b=b-a|0}c=b;a=a-b|0}return a|0}function eu(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a>>2]|0;if(!b){d=c[a+8>>2]|0;e=IK(8)|0;f=IK(S(c[46897]|0,d)|0)|0;c[e+4>>2]=f;b=0;while(1){if((b|0)>=(c[46897]|0))break;fu(f+(S(b,d)|0)|0,a);b=b+1|0}b=a+4|0;c[e>>2]=c[b>>2];c[b>>2]=e;b=c[a>>2]|0}c[a>>2]=c[b>>2];return b|0}function fu(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];c[b>>2]=a;return}function gu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,l=0,m=0;m=HK(b<<3)|0;l=a+8|0;f=c[l>>2]|0;hu(a,b,m);Ft(b,d);h=0;i=0;while(1){if((i|0)>=(b|0))break;h=(c[a+(i*20|0)>>2]|0)+h|0;i=i+1|0}h=IK(h<<2)|0;j=0;while(1){if((j|0)>=(b|0))break;c[a+(j*20|0)+8>>2]=h;k=c[a+(j*20|0)>>2]|0;g[h>>2]=+(1-k|0);i=1;while(1){if((i|0)>=(k|0))break;g[h+(i<<2)>>2]=1.0;i=i+1|0}h=h+(k<<2)|0;j=j+1|0}i=vr(a,d,m,b,.001,e)|0;l6(c[l>>2]|0);h=0;while(1){if((h|0)>=(b|0))break;c[a+(h*20|0)+8>>2]=f;f=f+(c[a+(h*20|0)>>2]<<2)|0;h=h+1|0}l6(m);return i>>>31|0}function hu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,i=0,j=0,k=0,l=0,m=0;k=a+16|0;i=0;while(1){if((i|0)>=(b|0))break;if(c[k>>2]|0){l=c[a+(i*20|0)>>2]|0;m=a+(i*20|0)+8|0;j=a+(i*20|0)+16|0;e=0.0;f=1;while(1){if((f|0)>=(l|0))break;e=e+ +g[(c[m>>2]|0)+(f<<2)>>2]*+g[(c[j>>2]|0)+(f<<2)>>2];f=f+1|0}h[d+(i<<3)>>3]=e}i=i+1|0}return}function iu(a,b,d,e,f,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=+h;i=i|0;j=j|0;a=l;l=l+16|0;if(!(c[46955]|0)){c[46955]=1;dA(1,94121,a)|0}l=a;return}function ju(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0;r=IK(f<<2)|0;i=b<<3;g=0;while(1){if((g|0)>=(f|0))break;c[r+(g<<2)>>2]=IK(i)|0;g=g+1|0}p=IK(f<<3)|0;q=IK(b<<2)|0;g=IK(S(i,b)|0)|0;i=0;while(1){if((i|0)>=(b|0))break;c[q+(i<<2)>>2]=g;g=g+(b<<3)|0;i=i+1|0}k=0;o=1;while(1){if((k|0)>=(b|0))break;l=a+(k<<2)|0;m=q+(k<<2)|0;i=0;while(1){if((i|0)==(o|0))break;n=a+(i<<2)|0;g=0;j=0.0;while(1){if((g|0)>=(d|0))break;s=j+ +(S(c[(c[n>>2]|0)+(g<<2)>>2]|0,c[(c[l>>2]|0)+(g<<2)>>2]|0)|0);g=g+1|0;j=s}h[(c[q+(i<<2)>>2]|0)+(k<<3)>>3]=j;h[(c[m>>2]|0)+(i<<3)>>3]=j;i=i+1|0}k=k+1|0;o=o+1|0}ut(q,b,f,r,p,1)|0;i=0;while(1){if((i|0)>=(f|0)){g=0;break}l=r+(i<<2)|0;m=e+(i<<2)|0;k=0;while(1){if((k|0)<(d|0)){g=0;j=0.0}else break;while(1){if((g|0)>=(b|0))break;s=j+ +(c[(c[a+(g<<2)>>2]|0)+(k<<2)>>2]|0)*+h[(c[l>>2]|0)+(g<<3)>>3];g=g+1|0;j=s}h[(c[m>>2]|0)+(k<<3)>>3]=j;k=k+1|0}i=i+1|0}while(1){if((g|0)>=(f|0))break;l6(c[r+(g<<2)>>2]|0);g=g+1|0}l6(r);l6(p);l6(c[q>>2]|0);l6(q);return}function ku(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+32|0;g=f+16|0;j=f+20|0;i=f+12|0;h=f+8|0;c[g>>2]=e;c[i>>2]=0;c[h>>2]=0;fy(c[a>>2]|0,d,d<<2,j);Dt(c[j>>2]|0,a,d,b,i);Ct(a,c[i>>2]|0,b,d,b,h);l6(c[c[i>>2]>>2]|0);l6(c[i>>2]|0);e=(ut(c[h>>2]|0,b,1,g,f,1)|0)&255;l=f;return e|0}function lu(){c[46956]=0;l6(c[46957]|0);l6(c[46958]|0);l6(c[46959]|0);c[46957]=0;c[46958]=0;c[46959]=0;return}function mu(a){a=a|0;l6(c[a+36>>2]|0);return}function nu(b,d,e,f){b=b|0;d=d|0;e=+e;f=+f;var g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0,u=0,v=0.0,w=0.0;u=l;l=l+80|0;o=u+64|0;t=u+68|0;i=u+48|0;j=u+32|0;k=u+16|0;m=u;n=d+16|0;g=c[n>>2]|0;p=b+40|0;r=f;s=e;a:do if(!(c[g+212>>2]|0))switch(UM(d)|0){case 1:{g=c[n>>2]|0;i=c[g+12>>2]|0;j=c[i+8>>2]|0;c[t>>2]=j;g=c[c[g+8>>2]>>2]|0;k=i+44|0;switch(a[g>>0]|0){case 98:{if(!(f2(g,108537)|0))q=11;else q=8;break}case 112:{if((f2(g,106022)|0)==0?(ou(c[k>>2]|0,j)|0)!=0:0)q=11;else q=8;break}default:q=8}do if((q|0)==8)if((j|0)<3){c[p>>2]=(c[i>>2]|0)==0?0:2;q=16;break}else{c[p>>2]=0;break}else if((q|0)==11?(c[p>>2]=1,(j|0)<=2):0)q=16;while(0);if((q|0)==16){i=pu(d,t,e,f)|0;q=20;break a}i=IK(j<<4)|0;if((c[p>>2]|0)==1){q=c[k>>2]|0;h[i>>3]=s+ +h[q>>3]/72.0;h[i+8>>3]=r+ +h[q+8>>3]/72.0;h[i+16>>3]=+h[q+16>>3]/72.0-s;h[i+24>>3]=r+ +h[q+24>>3]/72.0;h[i+32>>3]=+h[q+32>>3]/72.0-s;h[i+40>>3]=+h[q+40>>3]/72.0-r;h[i+48>>3]=s+ +h[q+48>>3]/72.0;h[i+56>>3]=+h[q+56>>3]/72.0-r;q=20;break a}else g=0;while(1){if((g|0)>=(j|0)){q=20;break a}q=c[k>>2]|0;v=+h[q+(g<<4)>>3];e=+h[q+(g<<4)+8>>3];f=+G(+(v*v+e*e));h[i+(g<<4)>>3]=v*(s/f+1.0)/72.0;h[i+(g<<4)+8>>3]=e*(r/f+1.0)/72.0;g=g+1|0}}case 2:{c[t>>2]=4;q=IK(64)|0;d=c[(c[n>>2]|0)+12>>2]|0;w=+h[d+32>>3];s=+h[d+40>>3];o=~~+h[d+16>>3];d=~~+h[d+24>>3];v=-e;r=-f;qu(i,o,d,v,r);c[q>>2]=c[i>>2];c[q+4>>2]=c[i+4>>2];c[q+8>>2]=c[i+8>>2];c[q+12>>2]=c[i+12>>2];i=q+16|0;n=~~w;qu(j,n,d,e,r);c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];i=q+32|0;d=~~s;qu(k,n,d,e,f);c[i>>2]=c[k>>2];c[i+4>>2]=c[k+4>>2];c[i+8>>2]=c[k+8>>2];c[i+12>>2]=c[k+12>>2];i=q+48|0;qu(m,o,d,v,f);c[i>>2]=c[m>>2];c[i+4>>2]=c[m+4>>2];c[i+8>>2]=c[m+8>>2];c[i+12>>2]=c[m+12>>2];c[p>>2]=1;i=q;q=20;break a}case 3:{c[p>>2]=2;i=pu(d,t,e,f)|0;q=20;break a}default:{c[o>>2]=c[c[(c[n>>2]|0)+8>>2]>>2];dA(1,94184,o)|0;g=1;break a}}else{c[t>>2]=4;v=s+ +h[g+32>>3]*.5;w=r+ +h[g+40>>3]*.5;c[p>>2]=1;i=IK(64)|0;h[i>>3]=v;h[i+8>>3]=w;s=-v;h[i+16>>3]=s;h[i+24>>3]=w;h[i+32>>3]=s;w=-w;h[i+40>>3]=w;h[i+48>>3]=v;h[i+56>>3]=w;q=20}while(0);if((q|0)==20){c[b+36>>2]=i;g=c[t>>2]|0;c[b+32>>2]=g;ru(i,g,b,b+16|0);if((g|0)>(c[46956]|0)){c[46956]=g;g=0}else g=0}l=u;return g|0}function ou(a,b){a=a|0;b=b|0;var c=0,d=0,e=0.0,f=0.0,g=0,i=0;do if((b|0)==4){e=+h[a+8>>3];f=+h[a+24>>3];g=a+56|0;i=a+48|0;b=a+16|0;c=a+32|0;d=a+40|0;if(e==f){if(!(+h[d>>3]==+h[g>>3])){b=0;break}if(!(+h[a>>3]==+h[i>>3])){b=0;break}b=+h[b>>3]==+h[c>>3];break}if((+h[a>>3]==+h[b>>3]?+h[c>>3]==+h[i>>3]:0)?e==+h[g>>3]:0)b=f==+h[d>>3];else b=0}else b=0;while(0);return b&1|0}function pu(a,b,d,e){a=a|0;b=b|0;d=+d;e=+e;var f=0,g=0.0,i=0,j=0,k=0,l=0.0;f=NA(a,103006)|0;if(!f)f=0;else f=d6(f)|0;i=(f|0)<3?20:f;j=IK(i<<4)|0;a=a+16|0;g=+(i|0);f=0;while(1){if((f|0)>=(i|0))break;k=c[a>>2]|0;l=+(f|0)/g*3.141592653589793*2.0;h[j+(f<<4)>>3]=+I(+l)*(d+ +h[k+32>>3]*.5);h[j+(f<<4)+8>>3]=+J(+l)*(e+ +h[k+40>>3]*.5);f=f+1|0}c[b>>2]=i;return j|0}function qu(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=+e;h[a>>3]=+(b|0)/72.0+d;h[a+8>>3]=+(c|0)/72.0+e;return}function ru(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0.0,g=0.0,i=0.0,j=0.0,k=0,l=0.0,m=0.0;j=+h[a>>3];i=+h[a+8>>3];e=1;f=i;g=j;while(1){if((e|0)>=(b|0))break;k=a+16|0;l=+h[k>>3];m=+h[a+24>>3];e=e+1|0;f=m>f?m:f;g=l>g?l:g;i=m<i?m:i;j=l<j?l:j;a=k}h[c>>3]=j;h[c+8>>3]=i;h[d>>3]=g;h[d+8>>3]=f;return}function su(b,d,e,f){b=b|0;d=d|0;e=+e;f=+f;var g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0.0;s=l;l=l+80|0;n=s+64|0;q=s+68|0;i=s+48|0;j=s+32|0;k=s+16|0;m=s;o=d+16|0;g=c[o>>2]|0;p=b+40|0;a:do if(!(c[g+212>>2]|0))switch(UM(d)|0){case 1:{m=c[(c[o>>2]|0)+12>>2]|0;n=m+8|0;k=c[n>>2]|0;c[q>>2]=k;b:do if((k|0)>2){i=IK(k<<4)|0;j=m+44|0;g=0;while(1){if((g|0)>=(k|0))break b;d=c[j>>2]|0;h[i+(g<<4)>>3]=+h[d+(g<<4)>>3]/72.0;h[i+(g<<4)+8>>3]=+h[d+(g<<4)+8>>3]/72.0;g=g+1|0}}else i=pu(d,q,0.0,0.0)|0;while(0);g=c[c[(c[o>>2]|0)+8>>2]>>2]|0;switch(a[g>>0]|0){case 98:{if(!(f2(g,108537)|0))g=1;else r=13;break}case 112:{if((f2(g,106022)|0)==0?(ou(i,c[q>>2]|0)|0)!=0:0)g=1;else r=13;break}default:r=13}do if((r|0)==13){if((c[n>>2]|0)<3?c[m>>2]|0:0){g=2;break}g=0}while(0);c[p>>2]=g;r=20;break a}case 2:{c[q>>2]=4;r=IK(64)|0;o=c[(c[o>>2]|0)+12>>2]|0;u=+h[o+16>>3];w=+h[o+24>>3];v=+h[o+32>>3];t=+h[o+40>>3];tu(i,u,w);c[r>>2]=c[i>>2];c[r+4>>2]=c[i+4>>2];c[r+8>>2]=c[i+8>>2];c[r+12>>2]=c[i+12>>2];i=r+16|0;tu(j,v,w);c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];i=r+32|0;tu(k,v,t);c[i>>2]=c[k>>2];c[i+4>>2]=c[k+4>>2];c[i+8>>2]=c[k+8>>2];c[i+12>>2]=c[k+12>>2];i=r+48|0;tu(m,u,t);c[i>>2]=c[m>>2];c[i+4>>2]=c[m+4>>2];c[i+8>>2]=c[m+8>>2];c[i+12>>2]=c[m+12>>2];c[p>>2]=1;i=r;r=20;break a}case 3:{c[p>>2]=2;i=pu(d,q,0.0,0.0)|0;r=20;break a}default:{c[n>>2]=c[c[(c[o>>2]|0)+8>>2]>>2];dA(1,94220,n)|0;g=1;break a}}else{c[q>>2]=4;v=+h[g+32>>3]*.5;w=+h[g+40>>3]*.5;c[p>>2]=1;i=IK(64)|0;h[i>>3]=v;h[i+8>>3]=w;u=-v;h[i+16>>3]=u;h[i+24>>3]=w;h[i+32>>3]=u;w=-w;h[i+40>>3]=w;h[i+48>>3]=v;h[i+56>>3]=w;r=20}while(0);if((r|0)==20){g=c[q>>2]|0;if(e!=1.0|f!=1.0)uu(i,g,e,f);c[b+36>>2]=i;c[b+32>>2]=g;ru(i,g,b,b+16|0);if((g|0)>(c[46956]|0)){c[46956]=g;g=0}else g=0}l=s;return g|0}function tu(a,b,c){a=a|0;b=+b;c=+c;h[a>>3]=b/72.0;h[a+8>>3]=c/72.0;return}function uu(a,b,c,d){a=a|0;b=b|0;c=+c;d=+d;var e=0,f=0;e=0;while(1){if((e|0)>=(b|0))break;h[a>>3]=c*+h[a>>3];f=a+8|0;h[f>>3]=d*+h[f>>3];a=a+16|0;e=e+1|0}return}function vu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0;s=l;l=l+128|0;p=s+112|0;o=s+96|0;n=s+80|0;g=s+64|0;q=s+48|0;r=s+32|0;k=s+16|0;m=s;c[o>>2]=c[a>>2];c[o+4>>2]=c[a+4>>2];c[o+8>>2]=c[a+8>>2];c[o+12>>2]=c[a+12>>2];c[p>>2]=c[b>>2];c[p+4>>2]=c[b+4>>2];c[p+8>>2]=c[b+8>>2];c[p+12>>2]=c[b+12>>2];ts(q,o,p);i=b+16|0;c[o>>2]=c[a>>2];c[o+4>>2]=c[a+4>>2];c[o+8>>2]=c[a+8>>2];c[o+12>>2]=c[a+12>>2];c[p>>2]=c[i>>2];c[p+4>>2]=c[i+4>>2];c[p+8>>2]=c[i+8>>2];c[p+12>>2]=c[i+12>>2];ts(r,o,p);c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];c[o+8>>2]=c[d+8>>2];c[o+12>>2]=c[d+12>>2];c[p>>2]=c[e>>2];c[p+4>>2]=c[e+4>>2];c[p+8>>2]=c[e+8>>2];c[p+12>>2]=c[e+12>>2];ts(k,o,p);j=e+16|0;c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];c[o+8>>2]=c[d+8>>2];c[o+12>>2]=c[d+12>>2];c[p>>2]=c[j>>2];c[p+4>>2]=c[j+4>>2];c[p+8>>2]=c[j+8>>2];c[p+12>>2]=c[j+12>>2];ts(m,o,p);c[g>>2]=c[q>>2];c[g+4>>2]=c[q+4>>2];c[g+8>>2]=c[q+8>>2];c[g+12>>2]=c[q+12>>2];c[n>>2]=c[r>>2];c[n+4>>2]=c[r+4>>2];c[n+8>>2]=c[r+8>>2];c[n+12>>2]=c[r+12>>2];c[o>>2]=c[k>>2];c[o+4>>2]=c[k+4>>2];c[o+8>>2]=c[k+8>>2];c[o+12>>2]=c[k+12>>2];c[p>>2]=c[m>>2];c[p+4>>2]=c[m+4>>2];c[p+8>>2]=c[m+8>>2];c[p+12>>2]=c[m+12>>2];do if(wu(g,n,o,p)|0){f=c[b+40>>2]|0;g=e+40|0;if(f&1|0?c[g>>2]&1|0:0){f=1;break}if(f&2|0?c[g>>2]&2|0:0){t=+h[i>>3]-+h[b>>3]+ +h[j>>3]-+h[e>>3];v=+h[a>>3]-+h[d>>3];u=+h[a+8>>3]-+h[d+8>>3];f=!(v*v+u*u>t*t*.25);break}f=c[46957]|0;if(!f){c[46957]=IK(c[46956]<<4)|0;i=IK(c[46956]<<4)|0;c[46958]=i;f=c[46957]|0}else i=c[46958]|0;w=c[b+36>>2]|0;j=b+32|0;g=c[j>>2]|0;c[p>>2]=c[a>>2];c[p+4>>2]=c[a+4>>2];c[p+8>>2]=c[a+8>>2];c[p+12>>2]=c[a+12>>2];xu(w,g,p,f);a=c[e+36>>2]|0;g=e+32|0;e=c[g>>2]|0;c[p>>2]=c[d>>2];c[p+4>>2]=c[d+4>>2];c[p+8>>2]=c[d+8>>2];c[p+12>>2]=c[d+12>>2];xu(a,e,p,i);if(!(yu(c[46957]|0,i,c[j>>2]|0,c[g>>2]|0)|0)){f=c[46957]|0;c[n>>2]=c[f>>2];c[n+4>>2]=c[f+4>>2];c[n+8>>2]=c[f+8>>2];c[n+12>>2]=c[f+12>>2];c[o>>2]=c[k>>2];c[o+4>>2]=c[k+4>>2];c[o+8>>2]=c[k+8>>2];c[o+12>>2]=c[k+12>>2];c[p>>2]=c[m>>2];c[p+4>>2]=c[m+4>>2];c[p+8>>2]=c[m+8>>2];c[p+12>>2]=c[m+12>>2];if(zu(n,o,p)|0?(m=c[46958]|0,w=c[g>>2]|0,c[p>>2]=c[f>>2],c[p+4>>2]=c[f+4>>2],c[p+8>>2]=c[f+8>>2],c[p+12>>2]=c[f+12>>2],Au(m,w,p)|0):0){f=1;break}f=c[46958]|0;c[n>>2]=c[f>>2];c[n+4>>2]=c[f+4>>2];c[n+8>>2]=c[f+8>>2];c[n+12>>2]=c[f+12>>2];c[o>>2]=c[q>>2];c[o+4>>2]=c[q+4>>2];c[o+8>>2]=c[q+8>>2];c[o+12>>2]=c[q+12>>2];c[p>>2]=c[r>>2];c[p+4>>2]=c[r+4>>2];c[p+8>>2]=c[r+8>>2];c[p+12>>2]=c[r+12>>2];if(!(zu(n,o,p)|0))f=0;else{r=c[46957]|0;w=c[j>>2]|0;c[p>>2]=c[f>>2];c[p+4>>2]=c[f+4>>2];c[p+8>>2]=c[f+8>>2];c[p+12>>2]=c[f+12>>2];f=(Au(r,w,p)|0)!=0}}else f=1}else f=0;while(0);l=s;return f&1|0}function wu(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((+h[a>>3]<=+h[d>>3]?+h[c>>3]<=+h[b>>3]:0)?+h[a+8>>3]<=+h[d+8>>3]:0)a=+h[c+8>>3]<=+h[b+8>>3];else a=0;return a&1|0}function xu(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;f=c+8|0;e=0;while(1){if((e|0)>=(b|0))break;h[d>>3]=+h[a>>3]+ +h[c>>3];h[d+8>>3]=+h[a+8>>3]+ +h[f>>3];e=e+1|0;a=a+16|0;d=d+16|0}return}function yu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=l;l=l+112|0;w=E+96|0;v=E+80|0;u=E+64|0;t=E+48|0;y=E+32|0;z=E+16|0;A=E;B=d+-1|0;C=e+-1|0;D=d<<1;x=e<<1;i=0;h=0;g=0;f=0;while(1){q=a+(i<<4)|0;p=a+(((B+i|0)%(d|0)|0)<<4)|0;c[v>>2]=c[q>>2];c[v+4>>2]=c[q+4>>2];c[v+8>>2]=c[q+8>>2];c[v+12>>2]=c[q+12>>2];c[w>>2]=c[p>>2];c[w+4>>2]=c[p+4>>2];c[w+8>>2]=c[p+8>>2];c[w+12>>2]=c[p+12>>2];ss(y,v,w);s=b+(h<<4)|0;r=b+(((C+h|0)%(e|0)|0)<<4)|0;c[v>>2]=c[s>>2];c[v+4>>2]=c[s+4>>2];c[v+8>>2]=c[s+8>>2];c[v+12>>2]=c[s+12>>2];c[w>>2]=c[r>>2];c[w+4>>2]=c[r+4>>2];c[w+8>>2]=c[r+8>>2];c[w+12>>2]=c[r+12>>2];ss(z,v,w);c[u>>2]=c[46578];c[u+4>>2]=c[46579];c[u+8>>2]=c[46580];c[u+12>>2]=c[46581];c[v>>2]=c[y>>2];c[v+4>>2]=c[y+4>>2];c[v+8>>2]=c[y+8>>2];c[v+12>>2]=c[y+12>>2];c[w>>2]=c[z>>2];c[w+4>>2]=c[z+4>>2];c[w+8>>2]=c[z+8>>2];c[w+12>>2]=c[z+12>>2];j=+us(u,v,w);c[u>>2]=c[p>>2];c[u+4>>2]=c[p+4>>2];c[u+8>>2]=c[p+8>>2];c[u+12>>2]=c[p+12>>2];c[v>>2]=c[q>>2];c[v+4>>2]=c[q+4>>2];c[v+8>>2]=c[q+8>>2];c[v+12>>2]=c[q+12>>2];c[w>>2]=c[s>>2];c[w+4>>2]=c[s+4>>2];c[w+8>>2]=c[s+8>>2];c[w+12>>2]=c[s+12>>2];k=vs(u,v,w)|0;c[u>>2]=c[r>>2];c[u+4>>2]=c[r+4>>2];c[u+8>>2]=c[r+8>>2];c[u+12>>2]=c[r+12>>2];c[v>>2]=c[s>>2];c[v+4>>2]=c[s+4>>2];c[v+8>>2]=c[s+8>>2];c[v+12>>2]=c[s+12>>2];c[w>>2]=c[q>>2];c[w+4>>2]=c[q+4>>2];c[w+8>>2]=c[q+8>>2];c[w+12>>2]=c[q+12>>2];m=vs(u,v,w)|0;c[t>>2]=c[p>>2];c[t+4>>2]=c[p+4>>2];c[t+8>>2]=c[p+8>>2];c[t+12>>2]=c[p+12>>2];c[u>>2]=c[q>>2];c[u+4>>2]=c[q+4>>2];c[u+8>>2]=c[q+8>>2];c[u+12>>2]=c[q+12>>2];c[v>>2]=c[r>>2];c[v+4>>2]=c[r+4>>2];c[v+8>>2]=c[r+8>>2];c[v+12>>2]=c[r+12>>2];c[w>>2]=c[s>>2];c[w+4>>2]=c[s+4>>2];c[w+8>>2]=c[s+8>>2];c[w+12>>2]=c[s+12>>2];if(ws(t,u,v,w,A)|0){f=1;break}q=(k|0)==0;r=(m|0)==0;n=(i+1|0)%(d|0)|0;s=f+1|0;o=(h+1|0)%(e|0)|0;p=g+1|0;do if(j!=0.0|(m|k|0)!=0)if(!(j>=0.0)){i=r?n:i;h=r?h:o;g=r?p:g;f=r?f:s;break}else{i=q?i:n;h=q?o:h;g=q?g:p;f=q?s:f;break}else{i=n;g=p}while(0);if(!((f|0)<(x|0)&((g|0)<(D|0)&((f|0)<(e|0)|(g|0)<(d|0))))){f=0;break}}l=E;return f|0}function zu(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0;e=+h[a>>3];if((e<=+h[c>>3]?e>=+h[b>>3]:0)?(d=+h[a+8>>3],d<=+h[c+8>>3]):0)a=d>=+h[b+8>>3];else a=0;return a&1|0}function Au(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0,i=0,j=0.0,k=0.0,l=0,m=0,n=0;e=c[46959]|0;if(!e){e=IK(c[46956]<<4)|0;c[46959]=e}i=d+8|0;g=0;while(1){if((g|0)>=(b|0))break;h[e+(g<<4)>>3]=+h[a+(g<<4)>>3]-+h[d>>3];h[e+(g<<4)+8>>3]=+h[a+(g<<4)+8>>3]-+h[i>>3];g=g+1|0}m=b+-1|0;f=0.0;l=0;a:while(1){if((l|0)>=(b|0)){n=18;break}d=(m+l|0)%(b|0)|0;j=+h[e+(l<<4)+8>>3];a=j==0.0;g=e+(l<<4)|0;i=e+(d<<4)|0;k=+h[e+(d<<4)+8>>3];d=k==0.0;do if(a&d){if(+h[g>>3]*+h[i>>3]<0.0){e=1;break a}}else{if(!(j>=0.0)|!(k<=0.0)?!(j<=0.0)|!(k>=0.0):0)break;j=(k*+h[g>>3]-j*+h[i>>3])/(k-j);if(j==0.0){e=1;break a}if(j>0.0)if(a|d){f=f+.5;break}else{f=f+1.0;break}}while(0);l=l+1|0}if((n|0)==18)e=((~~f|0)%2|0|0)==1&1;return e|0}function Bu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=IK(b<<2)|0;i=S(b,b)|0;d=IK(i<<2)|0;c[j>>2]=d;Yt(i,0.0,d);d=1;while(1){if((d|0)>=(b|0)){d=0;g=0;i=b;break}c[j+(d<<2)>>2]=(c[j>>2]|0)+((S(d,b)|0)<<2);d=d+1|0}while(1){if((g|0)>=(b|0))break;h=j+(g<<2)|0;e=g;f=d;while(1){if((e|0)==(b|0))break;k=c[a+(f<<2)>>2]|0;c[(c[h>>2]|0)+(e<<2)>>2]=k;c[(c[j+(e<<2)>>2]|0)+(g<<2)>>2]=k;e=e+1|0;f=f+1|0}d=d+i|0;g=g+1|0;i=i+-1|0}return j|0}function Cu(a,b,d,e,f,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=+j;var k=0.0,l=0.0,m=0.0,n=0,o=0.0,p=0,q=0,r=0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;N=c[d+(f<<2)>>2]|0;C=c[a+4>>2]|0;D=c[a>>2]|0;E=c[a+48>>2]|0;G=c[a+52>>2]|0;H=c[a+56>>2]|0;a:do if((h|0)<1)d=0;else{Eu(N,C,E,G,H,j);I=c[a+28>>2]|0;J=c[a+32>>2]|0;K=c[a+36>>2]|0;L=c[a+12>>2]|0;M=c[a+16>>2]|0;f=0;e=0;d=-1;while(1){if((f|0)>=(C|0))break;if((f|0)>=(e|0)){d=d+1|0;if((d|0)==(H|0)){e=C;d=H}else e=c[G+(d<<2)>>2]|0}c[M+(c[E+(f<<2)>>2]<<2)>>2]=d;f=f+1|0}A=c[a+40>>2]|0;B=J+(C+-1<<2)|0;d=0;e=0;while(1){if(e<<24>>24==0&(d|0)<(h|0)){k=-1.0e9;f=0;e=1}else break a;b:while(1){y=f;while(1){if((y|0)>=(C|0))break b;f=c[E+(y<<2)>>2]|0;z=+g[N+(f<<2)>>2];o=z;x=y;l=0.0;while(1){g[A+(f<<2)>>2]=l;f=x+1|0;w=E+(f<<2)|0;if((f|0)>=(C|0)){v=0;break}l=(c[M+(f<<2)>>2]|0)>(c[M+(x<<2)>>2]|0)?o+j:o;a=c[w>>2]|0;m=+g[N+(a<<2)>>2];if(+F(+(m-l))>1.0e-09){v=1;break}o=l;x=f;l=m-z;f=a}n=y;while(1){if((n|0)>(x|0)){a=0;p=y;break}p=c[E+(n<<2)>>2]|0;q=c[D+(p<<2)>>2]|0;a=0;l=-+g[b+(p<<2)>>2];while(1){if((a|0)>=(C|0))break;if((a|0)!=(p|0))l=l+ +g[q+(a<<2)>>2]*+g[N+(a<<2)>>2];a=a+1|0}g[I+(p<<2)>>2]=l/-+g[q+(p<<2)>>2]-+g[A+(p<<2)>>2];n=n+1|0}c:while(1){if((p|0)>(x|0)){m=0.0;o=0.0;r=0;break}n=c[M+(c[E+(p<<2)>>2]<<2)>>2]|0;if((n|0)==(H|0))r=f;else{r=c[G+(n<<2)>>2]|0;r=(f|0)<(r|0)?f:r}q=p;while(1){if((q|0)>=(r|0)){q=p;break}n=c[E+(q<<2)>>2]|0;if(+g[I+(n<<2)>>2]<z){c[L+(a<<2)>>2]=n;a=a+1|0}q=q+1|0}while(1){if((q|0)>=(r|0))break;n=c[E+(q<<2)>>2]|0;if(+g[I+(n<<2)>>2]==z){c[L+(a<<2)>>2]=n;a=a+1|0}q=q+1|0}while(1){if((p|0)>=(r|0)){p=r;continue c}n=c[E+(p<<2)>>2]|0;if(+g[I+(n<<2)>>2]>z){c[L+(a<<2)>>2]=n;a=a+1|0}p=p+1|0}}while(1){if((r|0)>=(a|0))break;p=c[L+(r<<2)>>2]|0;q=c[D+(p<<2)>>2]|0;l=0.0;n=0;while(1){if((n|0)==(r|0))break;l=l-+g[q+(c[L+(n<<2)>>2]<<2)>>2];n=n+1|0}l=l*2.0;u=q+(p<<2)|0;s=+g[u>>2];s=(z*l+(o*m-s*+g[I+(p<<2)>>2]))/(l+(m-s));g[J+(r<<2)>>2]=s;m=m+(l-+g[u>>2]);o=s;r=r+1|0}q=(a|0)==(C|0);if(q)g[B>>2]=z;u=a+-1|0;m=0.0;o=0.0;p=u;while(1){if((p|0)<=-1)break;r=c[L+(p<<2)>>2]|0;t=c[D+(r<<2)>>2]|0;l=0.0;n=p;while(1){n=n+1|0;if((n|0)>=(a|0))break;l=l-+g[t+(c[L+(n<<2)>>2]<<2)>>2]}l=l*2.0;t=t+(r<<2)|0;s=+g[t>>2];s=(z*l+(o*m-s*+g[I+(r<<2)>>2]))/(l+(m-s));g[K+(p<<2)>>2]=s;m=m+(l-+g[t>>2]);o=s;p=p+-1|0}if(q){g[K>>2]=z;s=0.0;n=-1;q=0}else{s=0.0;n=-1;q=0}while(1){if((a|0)<=(q|0))break;o=+g[K+(q<<2)>>2];if((q|0)>0)l=+g[J+(q+-1<<2)>>2];else l=o;do if(o<l){p=l>z;if(o<z){l=p?z:l;m=l;break}if(p){m=o;l=o}else m=o}else m=o;while(0);o=+(a-q|0)*+F(+(m-z))+ +(q|0)*+F(+(l-z));t=o>s;s=t?o:s;n=t?q:n;q=q+1|0}r=E+(x<<2)|0;p=c[L+(u<<2)>>2]|0;q=N+(p<<2)|0;if((n|0)>-1)break;k=+g[q>>2];if(!v){y=f;continue}k=(c[M+(c[w>>2]<<2)>>2]|0)>(c[M+(c[r>>2]<<2)>>2]|0)?k+j:k;y=f}o=+g[K+(n<<2)>>2];if(!n)s=o;else s=+g[J+(n+-1<<2)>>2];do if(v){u=c[w>>2]|0;m=+g[N+(u<<2)>>2];l=+g[A+(p<<2)>>2];if((c[M+(u<<2)>>2]|0)>(c[M+(c[r>>2]<<2)>>2]|0)){l=m-j-l;break}else{l=m-l;break}}else l=1.0e9;while(0);l=o<l?o:l;k=s>k?s:k;do if(l<k){p=k>z;if(l<z){l=p?z:k;m=l;break}if(p)m=l;else{m=l;l=k}}else{m=l;l=k}while(0);p=0;while(1){if((p|0)>=(n|0))break;u=c[L+(p<<2)>>2]|0;g[N+(u<<2)>>2]=l+ +g[A+(u<<2)>>2];p=p+1|0}while(1){if((n|0)>=(a|0))break;u=c[L+(n<<2)>>2]|0;g[N+(u<<2)>>2]=m+ +g[A+(u<<2)>>2];n=n+1|0}k=+g[q>>2];if(v)k=(c[M+(c[w>>2]<<2)>>2]|0)>(c[M+(c[r>>2]<<2)>>2]|0)?k+j:k;a=y;while(1){if((a|0)>(x|0))break;c[E+(a<<2)>>2]=c[L+(a-y<<2)>>2];a=a+1|0}if(e<<24>>24!=0?+F(+(l-z))<.01:0)e=+F(+(m-z))<.01;else e=0;e=e&1}Pt(C,N);Du(N,E,G,H,i);d=d+1|0}}while(0);return d|0}function Du(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=0;while(1){if((g|0)>=(e|0))break;c[f+(g<<2)>>2]=c[a+(c[b+((c[d+(g<<2)>>2]|0)+-1<<2)>>2]<<2)>>2];g=g+1|0}return}function Eu(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=+h;var i=0.0,j=0,k=0,l=0,m=0;i=-1.0e9;k=0;j=-1;m=0;while(1){if((m|0)>=(b|0))break;if((m|0)<(k|0))l=k;else{j=j+1|0;if((j|0)==(f|0))k=b;else k=c[e+(j<<2)>>2]|0;if((m|0)>0)i=+g[a+(c[d+(m+-1<<2)>>2]<<2)>>2]+h;else i=-1.0e9;dt(a,d,m,k+-1|0);l=k}k=a+(c[d+(m<<2)>>2]<<2)|0;if(+g[k>>2]<i)g[k>>2]=i;k=l;m=m+1|0}return}function Fu(a){a=a|0;l6(c[c[a>>2]>>2]|0);l6(c[a>>2]|0);l6(c[a+8>>2]|0);l6(c[a+28>>2]|0);l6(c[a+32>>2]|0);l6(c[a+36>>2]|0);l6(c[a+40>>2]|0);l6(c[a+12>>2]|0);l6(c[a+16>>2]|0);l6(c[a+20>>2]|0);l6(c[a+24>>2]|0);l6(a);return}function Gu(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;k=IK(60)|0;c[k>>2]=0;l=k+4|0;c[l>>2]=b;c[k+48>>2]=d;c[k+52>>2]=e;c[k+56>>2]=f;c[k>>2]=Bu(a,b)|0;i=b<<2;j=IK(i)|0;c[k+8>>2]=j;h=0;b=0;a=-1;while(1){if((h|0)>=(c[l>>2]|0))break;g=a+1|0;if((h|0)>=(b|0)){b=c[((g|0)==(f|0)?l:e+(g<<2)|0)>>2]|0;a=g}c[j+(c[d+(h<<2)>>2]<<2)>>2]=a;h=h+1|0}c[k+28>>2]=IK(i)|0;c[k+32>>2]=IK(i)|0;c[k+36>>2]=IK(i)|0;c[k+40>>2]=IK(i)|0;c[k+12>>2]=IK(i)|0;c[k+16>>2]=IK(i)|0;c[k+20>>2]=IK(i)|0;c[k+24>>2]=IK(i)|0;return k|0}function Hu(){cu(187844,24);c[46964]=0;return}function Iu(){return eu(187844)|0}function Ju(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;d=+h[a>>3]-+h[b>>3];c=+h[a+8>>3]-+h[b+8>>3];return +(+G(+(d*d+c*c)))}function Ku(a){a=a|0;var b=0;b=c[46964]|0;c[a+16>>2]=b;c[46964]=b+1;return}function Lu(a){a=a|0;var b=0,d=0;d=a+20|0;b=(c[d>>2]|0)+-1|0;c[d>>2]=b;if(!b)fu(a,187844);return}function Mu(a){a=a|0;a=a+20|0;c[a>>2]=(c[a>>2]|0)+1;return}function Nu(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var i=0,j=0,k=0,m=0.0,n=0.0,o=0,p=0.0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;x=l;l=l+16|0;o=x;c[o>>2]=e;q=b<<2;u=IK(q)|0;k=b<<3;v=IK(k)|0;t=Ys(a,b)|0;a=0;while(1){if((a|0)>=(b|0))break;j=t+(a<<2)|0;i=0;while(1){if((i|0)==(b|0))break;s=(c[j>>2]|0)+(i<<2)|0;c[s>>2]=c[s>>2]<<8;i=i+1|0}a=a+1|0}if(!d)Aa(94253,94261,283,94275);s=IK(k)|0;a=0;while(1){if((a|0)>=(b|0))break;h[s+(a<<3)>>3]=+h[d+(a<<3)>>3];a=a+1|0}Ou(s,b);m=0.0;n=0.0;k=1;while(1){if((k|0)>=(b|0))break;i=t+(k<<2)|0;j=d+(k<<3)|0;a=0;while(1){if((a|0)==(k|0))break;y=c[(c[i>>2]|0)+(a<<2)>>2]|0;r=+F(+(+h[j>>3]-+h[d+(a<<3)>>3]));m=m+r*(1.0/+(S(y,y)|0)*r);n=n+1.0/+(y|0)*r;a=a+1|0}k=k+1|0}r=n/m;a=0;while(1){if((a|0)>=(b|0))break;y=d+(a<<3)|0;h[y>>3]=r*+h[y>>3];a=a+1|0}Pu(b,o,f,d,t);j=IK(S(q,b)|0)|0;i=0;while(1){if((i|0)>=(b|0)){o=1;break}k=j+((S(i,b)|0)<<2)|0;c[u+(i<<2)>>2]=k;o=t+(i<<2)|0;m=0.0;a=0;while(1){if((a|0)==(b|0))break;if((a|0)!=(i|0)){p=+(c[(c[o>>2]|0)+(a<<2)>>2]|0);p=-1.0/(p*p);g[k+(a<<2)>>2]=p;m=m-p}a=a+1|0}g[k+(i<<2)>>2]=m;i=i+1|0}while(1){if((o|0)>=(b|0)){i=0;break}n=+h[d+(o<<3)>>3];j=t+(o<<2)|0;i=0;while(1){if((i|0)==(o|0))break;k=(c[j>>2]|0)+(i<<2)|0;p=+(c[k>>2]|0);m=n-+h[d+(i<<3)>>3];m=p*p-m*m;if(m>0.0)a=~~+G(+m);else a=0;c[(c[t+(i<<2)>>2]|0)+(o<<2)>>2]=a;c[k>>2]=a;i=i+1|0}o=o+1|0}while(1){if((i|0)>=(b|0)){q=0;a=0;break}n=+h[e+(i<<3)>>3];k=v+(i<<3)|0;h[k>>3]=0.0;o=t+(i<<2)|0;j=u+(i<<2)|0;a=0;m=0.0;while(1){if((a|0)==(b|0))break;if((a|0)!=(i|0)){p=+(c[(c[o>>2]|0)+(a<<2)>>2]|0)*+g[(c[j>>2]|0)+(a<<2)>>2];m=m+(n>=+h[e+(a<<3)>>3]?-p:p);h[k>>3]=m}a=a+1|0}i=i+1|0}while(1){if(!(a<<24>>24==0&(q|0)<200)){a=0;w=58;break}if((wr(u,e,v,b,f,b,1)|0)<0){a=1;break}else{a=1;o=0}while(1){if((o|0)>=(b|0))break;p=+h[e+(o<<3)>>3];j=t+(o<<2)|0;k=u+(o<<2)|0;m=0.0;i=0;while(1){if((i|0)==(b|0))break;do if((i|0)!=(o|0)){n=+(c[(c[j>>2]|0)+(i<<2)>>2]|0)*+g[(c[k>>2]|0)+(i<<2)>>2];if(!(p>=+h[e+(i<<3)>>3])){m=m+n;break}else{m=m+-n;break}}while(0);i=i+1|0}i=v+(o<<3)|0;p=+h[i>>3];if(m!=p?+F(+(1.0-m/p))>1.0e-05:0){h[i>>3]=m;a=0}o=o+1|0}q=q+1|0}a:do if((w|0)==58)while(1){if((a|0)>=(b|0)){a=0;break a}w=d+(a<<3)|0;h[w>>3]=+h[w>>3]/r;w=e+(a<<3)|0;h[w>>3]=+h[w>>3]/r;a=a+1|0;w=58}while(0);l6(c[t>>2]|0);l6(t);l6(c[u>>2]|0);l6(u);l6(s);l6(v);l=x;return a|0}function Ou(a,b){a=a|0;b=b|0;var c=0,d=0.0,e=0.0,f=0;c=0;d=0.0;while(1){if((c|0)>=(b|0))break;e=d+ +h[a+(c<<3)>>3];c=c+1|0;d=e}d=d/+(b|0);c=0;while(1){if((c|0)>=(b|0))break;f=a+(c<<3)|0;h[f>>3]=+h[f>>3]-d;c=c+1|0}f=b+-1|0;yt(a,0,f,1.0/+xt(a,0,f),a);return}function Pu(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,l=0,m=0;k=Qu(f,a)|0;l=IK(8)|0;if(!e){f=0;j=0}else{g=IK(a<<3)|0;f=0;while(1){if((f|0)>=(a|0))break;h[g+(f<<3)>>3]=+h[e+(f<<3)>>3];f=f+1|0}Ou(g,a);f=g;j=g}Ru(k,a,b,l,f,d);e=0;while(1){if((e|0)==1)break;g=l+(e<<3)|0;i=b+(e<<2)|0;f=0;while(1){if((f|0)>=(a|0))break;d=+G(+(+F(+(+h[g>>3]))));m=(c[i>>2]|0)+(f<<3)|0;h[m>>3]=d*+h[m>>3];f=f+1|0}e=e+1|0}l6(c[k>>2]|0);l6(k);l6(l);l6(j);return}function Qu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0,j=0,k=0,m=0,n=0,o=0,p=0.0;o=l;l=l+16|0;f=o;n=b<<2;e=IK(S(n,b)|0)|0;n=IK(n)|0;d=0;while(1){if((d|0)>=(b|0))break;c[n+(d<<2)>>2]=e+((S(d,b)|0)<<2);d=d+1|0}m=Tu(a,b,f)|0;h=+g[f>>2];e=0;k=1;while(1){if((e|0)>=(b|0))break;f=a+(e<<2)|0;i=m+(e<<2)|0;j=n+(e<<2)|0;d=0;while(1){if((d|0)==(k|0))break;p=+(c[(c[f>>2]|0)+(d<<2)>>2]|0);p=+g[m+(d<<2)>>2]+(+g[i>>2]-p*p)-h;g[(c[j>>2]|0)+(d<<2)>>2]=p;g[(c[n+(d<<2)>>2]|0)+(e<<2)>>2]=p;d=d+1|0}e=e+1|0;k=k+1|0}l6(m);l=o;return n|0}function Ru(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=+g;var i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0;r=b<<3;q=IK(r)|0;r=IK(r)|0;n=1.0-g;o=(b|0)<1?b:1;p=b+-1|0;k=(f|0)==0;j=0;a:while(1){if((j|0)>=(o|0))break;l=c[d+(j<<2)>>2]|0;do{i=0;while(1){if((i|0)==(b|0))break;h[l+(i<<3)>>3]=+((U4()|0)%100|0|0);i=i+1|0}if(k)i=0;else{wt(l,0,p,-+vt(f,0,p,l),f);i=0}while(1){if((i|0)==(j|0))break;s=d+(i<<2)|0;m=-+vt(c[s>>2]|0,0,p,l);wt(l,0,p,m,c[s>>2]|0);i=i+1|0}g=+xt(l,0,p)}while(g<1.0e-10);yt(l,0,p,1.0/g,l);do{zt(r,0,p,l);Su(a,b,b,l,q,f);zt(l,0,p,q);i=0;while(1){if((i|0)==(j|0))break;s=d+(i<<2)|0;m=-+vt(c[s>>2]|0,0,p,l);wt(l,0,p,m,c[s>>2]|0);i=i+1|0}g=+xt(l,0,p);if(g<1.0e-10)break a;yt(l,0,p,1.0/g,l);m=+vt(l,0,p,r)}while(+F(+m)<n);h[e+(j<<3)>>3]=g*m;j=j+1|0}while(1){if((j|0)>=(o|0))break;k=c[d+(j<<2)>>2]|0;i=0;while(1){if((i|0)>=(b|0)){i=0;break}h[k+(i<<3)>>3]=+((U4()|0)%100|0|0);i=i+1|0}while(1){if((i|0)>=(j|0))break;s=d+(i<<2)|0;n=-+vt(c[s>>2]|0,0,p,k);wt(k,0,p,n,c[s>>2]|0);i=i+1|0}yt(k,0,p,1.0/+xt(k,0,p),k);h[e+(j<<3)>>3]=0.0;j=j+1|0}l=o+-1|0;j=0;while(1){if((j|0)>=(l|0))break;a=e+(j<<3)|0;f=j+1|0;g=+h[a>>3];i=j;k=f;while(1){if((k|0)>=(o|0))break;n=+h[e+(k<<3)>>3];s=g<n;g=s?n:g;i=s?k:i;k=k+1|0}if((i|0)==(j|0)){j=f;continue}b=d+(j<<2)|0;zt(q,0,p,c[b>>2]|0);s=d+(i<<2)|0;zt(c[b>>2]|0,0,p,c[s>>2]|0);zt(c[s>>2]|0,0,p,q);h[e+(i<<3)>>3]=+h[a>>3];h[a>>3]=g;j=f}l6(q);l6(r);return}function Su(a,b,d,e,f,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;i=i|0;var j=0,k=0.0,l=0,m=0;j=0;while(1){if((j|0)>=(b|0))break;m=a+(j<<2)|0;k=0.0;l=0;while(1){if((l|0)>=(d|0))break;k=k+ +g[(c[m>>2]|0)+(l<<2)>>2]*+h[e+(l<<3)>>3];l=l+1|0}h[f+(j<<3)>>3]=k;j=j+1|0}j=b+-1|0;if(i|0)wt(f,0,j,-+vt(f,0,j,i),i);return}function Tu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,i=0,j=0,k=0.0,l=0,m=0.0;j=IK(b<<2)|0;k=+(b|0);e=0.0;i=0;while(1){if((i|0)>=(b|0))break;l=a+(i<<2)|0;f=0.0;h=0;while(1){if((h|0)==(b|0))break;m=+(c[(c[l>>2]|0)+(h<<2)>>2]|0);m=m*m;f=f+m;h=h+1|0;e=e+m}g[j+(i<<2)>>2]=f/k;i=i+1|0}g[d>>2]=e/+(S(b,b)|0);return j|0}function Uu(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0.0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0;q=S(d,d)|0;r=IK(q<<3)|0;s=IK(d<<3)|0;e=0;while(1){if((e|0)>=(d|0))break;h[s+(e<<3)>>3]=+h[c+(e<<3)>>3];e=e+1|0}e=0;while(1){if((e|0)>=(q|0))break;h[r+(e<<3)>>3]=+h[a+(e<<3)>>3];e=e+1|0}p=d+-1|0;g=0;o=0;a:while(1){if((o|0)<(p|0)){f=0.0;e=o}else{l=21;break}while(1){if((e|0)>=(d|0))break;t=+F(+(+h[a+((S(e,d)|0)+o<<3)>>3]));m=t<f;n=m?g:e;f=m?f:t;e=e+1|0;g=n}if(f<1.0e-10){l=33;break}n=S(o,d)|0;i=S(g,d)|0;e=o;while(1){if((e|0)>=(d|0))break;l=a+(e+i<<3)|0;t=+h[l>>3];m=a+(e+n<<3)|0;h[l>>3]=+h[m>>3];h[m>>3]=t;e=e+1|0}m=c+(g<<3)|0;t=+h[m>>3];j=c+(o<<3)|0;h[m>>3]=+h[j>>3];h[j>>3]=t;m=o+1|0;k=a+(n+o<<3)|0;e=m;while(1){if((e|0)>=(d|0)){o=m;continue a}l=S(e,d)|0;f=+h[a+(l+o<<3)>>3]/+h[k>>3];i=c+(e<<3)|0;h[i>>3]=+h[i>>3]-f*+h[j>>3];i=0;while(1){if((i|0)>=(d|0))break;u=a+(i+l<<3)|0;h[u>>3]=+h[u>>3]-f*+h[a+(i+n<<3)>>3];i=i+1|0}e=e+1|0}}if((l|0)==21){f=+h[a+(q+-1<<3)>>3];if(+F(+f)<1.0e-10)l=33;else{h[b+(p<<3)>>3]=+h[c+(p<<3)>>3]/f;e=0;while(1){if((e|0)>=(p|0)){e=0;break}g=d-e|0;i=g+-2|0;f=+h[c+(i<<3)>>3];j=b+(i<<3)|0;h[j>>3]=f;k=S(i,d)|0;g=g+-1|0;while(1){if((g|0)>=(d|0))break;t=f-+h[a+(g+k<<3)>>3]*+h[b+(g<<3)>>3];h[j>>3]=t;g=g+1|0;f=t}h[j>>3]=f/+h[a+(k+i<<3)>>3];e=e+1|0}while(1){if((e|0)>=(d|0)){e=0;break}h[c+(e<<3)>>3]=+h[s+(e<<3)>>3];e=e+1|0}while(1){if((e|0)>=(q|0))break;h[a+(e<<3)>>3]=+h[r+(e<<3)>>3];e=e+1|0}l6(r);l6(s)}}if((l|0)==33){Z5(94290)|0;l6(r);l6(s)}return}function Vu(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,g=0.0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;s=l;l=l+16|0;r=s;js();Hu();Es();c[46960]=ib[d&3]()|0;Gs();q=r+8|0;p=ib[d&3]()|0;e=0.0;f=0.0;a:while(1){n=(p|0)==0;o=p+8|0;while(1){if(!(As()|0)){Bs(r);e=+h[r>>3];f=+h[q>>3]}if(!n){if(As()|0)break;g=+h[o>>3];if(g<f)break;if(g==f?+h[p>>3]<e:0)break}if(As()|0)break a;t=Cs()|0;b=Ps(t)|0;v=Os(t)|0;i=Os(v)|0;m=Qs(t)|0;u=Rs(v)|0;j=c[t+20>>2]|0;Ku(j);ns(c[t+8>>2]|0,a[t+16>>0]|0,j);ns(c[v+8>>2]|0,a[v+16>>0]|0,j);Ns(t);zs(v);Ns(v);v=+h[m+8>>3]>+h[u+8>>3];t=v&1;k=v?u:m;u=ks(k,v?m:u)|0;m=Hs(u,t)|0;Ks(b,m);ns(u,(t^1)&255,j);Lu(j);j=Is(b,m)|0;if(j|0){zs(b);xs(b,j,+Ju(j,k))}b=Is(m,i)|0;if(!b)continue;xs(m,b,+Ju(b,k))}b=Ls(p)|0;k=Os(b)|0;i=ks(Rs(b)|0,p)|0;m=Hs(i,0)|0;Ks(b,m);j=Is(b,m)|0;if(j|0){zs(b);xs(b,j,+Ju(j,p))}i=Hs(i,1)|0;Ks(m,i);b=Is(i,k)|0;if(b|0)xs(i,b,+Ju(b,p));p=ib[d&3]()|0}b=c[46902]|0;while(1){b=Os(b)|0;if((b|0)==(c[46903]|0))break;ls(c[b+8>>2]|0)}l=s;return}function Wu(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=l;l=l+16|0;g=h+8|0;f=h;do if((qB(b)|0)!=1){Xu(b);if(!d)d=Yu(b)|0;e=Zu(b,d)|0;if(a[195234]|0){i=c[15715]|0;c[f>>2]=HB(d)|0;c[f+4>>2]=e;z4(i,94306,f)|0}if((e|0)<0){dA(1,94340,g)|0;break}else{_u(b);$u(b,d);av(b,d);bv(b,e);break}}else{i=c[(c[(gC(b)|0)+16>>2]|0)+132>>2]|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;c[i+12>>2]=0}while(0);l=h;return d|0}function Xu(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=qB(a)|0;d=S(d,d)|0;b=gC(a)|0;while(1){if(!b)break;e=b+16|0;f=c[(c[e>>2]|0)+112>>2]|0;g=f+24|0;c[g>>2]=d;c[g+4>>2]=0;h[f+48>>3]=10.0;f=(jv(a,b)|0)==0;e=c[(c[e>>2]|0)+112>>2]|0;c[e>>2]=f?d:0;c[e+4>>2]=f?0:0;b=hC(a,b)|0}return}function Yu(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;e=(qB(a)|0)<3;b=gC(a)|0;a:do if(!e){while(1){if(!b)break;e=c[(c[b+16>>2]|0)+112>>2]|0;if((c[e>>2]|0)==0&(c[e+4>>2]|0)==0)iv(a,b,0);b=hC(a,b)|0}d=0;b=0;e=gC(a)|0;while(1){if(!e)break a;h=c[(c[e+16>>2]|0)+112>>2]|0;g=c[h>>2]|0;h=c[h+4>>2]|0;f=((d|0)<0)<<31>>31;f=h>>>0>f>>>0|(h|0)==(f|0)&g>>>0>d>>>0;d=f?g:d;b=f?e:b;e=hC(a,e)|0}}while(0);return b|0}function Zu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=c[(c[b+16>>2]|0)+112>>2]|0;f=d+24|0;e=c[f>>2]|0;c[f>>2]=0;c[f+4>>2]=0;c[d+32>>2]=0;fv(a,b);d=gC(a)|0;e=y6(0,e|0,32)|0;f=D;b=0;while(1){if(!d)break;h=(c[(c[d+16>>2]|0)+112>>2]|0)+24|0;g=c[h>>2]|0;h=c[h+4>>2]|0;if((g|0)==(e|0)&(h|0)==(f|0)){b=-1;break}i=((b|0)<0)<<31>>31;b=h>>>0>i>>>0|(h|0)==(i|0)&g>>>0>b>>>0?g:b;d=hC(a,d)|0}return b|0}function _u(a){a=a|0;var b=0,d=0,e=0,f=0;d=gC(a)|0;while(1){if(!d)break;b=c[(c[d+16>>2]|0)+112>>2]|0;e=b+16|0;a:do if((c[e>>2]|0)==0&(c[e+4>>2]|0)==0)while(1){e=b+8|0;f=e;f=w6(c[f>>2]|0,c[f+4>>2]|0,1,0)|0;c[e>>2]=f;c[e+4>>2]=D;b=c[b+32>>2]|0;if(!b)break a;b=c[(c[b+16>>2]|0)+112>>2]|0}while(0);d=hC(a,d)|0}return}function $u(a,b){a=a|0;b=b|0;h[(c[(c[b+16>>2]|0)+112>>2]|0)+40>>3]=6.283185307179586;ev(a,b);return}function av(a,b){a=a|0;b=b|0;h[(c[(c[b+16>>2]|0)+112>>2]|0)+48>>3]=0.0;dv(a,b);return}function bv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0.0,m=0.0;j=l;l=l+16|0;g=j;i=cv(b,d)|0;if(a[195234]|0){f=c[15715]|0;Z3(94396,f)|0;e=0;while(1){if((e|0)>(d|0))break;h[g>>3]=+h[i+(e<<3)>>3];z4(f,94415,g)|0;e=e+1|0}Z3(153748,f)|0}e=gC(b)|0;while(1){if(!e)break;g=c[e+16>>2]|0;f=c[g+112>>2]|0;k=+h[i+(c[f+24>>2]<<3)>>3];f=f+48|0;m=k*+I(+(+h[f>>3]));g=c[g+132>>2]|0;h[g>>3]=m;h[g+8>>3]=k*+J(+(+h[f>>3]));e=hC(b,e)|0}l6(i);l=j;return}function cv(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,g=0,i=0.0,j=0,k=0,m=0,n=0;n=l;l=l+16|0;k=n;m=HK((d<<3)+8|0)|0;b=_O(b,DA(c[b+60>>2]|0,0,101589,0)|0,0)|0;a:do if(!b){f=1.0;e=0.0;b=1}else{i=0.0;e=0.0;g=1;b:while(1){if((g|0)>(d|0)){f=i;b=g;break a}f=+b6(b,k);if(!(f>0.0)){f=i;b=g;break a}i=f>.02?f:.02;e=e+i;j=g+1|0;h[m+(g<<3)>>3]=e;b=c[k>>2]|0;while(1){g=a[b>>0]|0;if(!(g<<24>>24)){g=j;continue b}if(!(g<<24>>24==58|(X1(g<<24>>24)|0)!=0)){g=j;continue b}b=b+1|0}}}while(0);while(1){if((b|0)>(d|0))break;i=f+e;h[m+(b<<3)>>3]=i;b=b+1|0;e=i}l=n;return m|0}function dv(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0,g=0,i=0,j=0.0;d=c[(c[b+16>>2]|0)+112>>2]|0;if(!(c[d+32>>2]|0))e=0.0;else e=+h[d+48>>3]-+h[d+40>>3]*.5;g=ZA(a,b)|0;while(1){if(!g)break;d=c[g>>2]&3;f=c[((d|0)==3?g:g+48|0)+40>>2]|0;if((f|0)==(b|0))f=c[((d|0)==2?g:g+-48|0)+40>>2]|0;d=c[(c[f+16>>2]|0)+112>>2]|0;if((c[d+32>>2]|0)==(b|0)?(i=d+48|0,!(+h[i>>3]!=10.0)):0){j=+h[d+40>>3];h[i>>3]=e+j*.5;e=e+j;d=d+16|0;if(!((c[d>>2]|0)==0&(c[d+4>>2]|0)==0))dv(a,f)}g=_A(a,g,b)|0}return}function ev(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0.0,i=0,j=0;e=c[(c[b+16>>2]|0)+112>>2]|0;f=e+8|0;g=+h[e+40>>3]/(+((c[f>>2]|0)>>>0)+4294967296.0*+((c[f+4>>2]|0)>>>0));f=ZA(a,b)|0;while(1){if(!f)break;e=c[f>>2]&3;d=c[((e|0)==3?f:f+48|0)+40>>2]|0;if((d|0)==(b|0))d=c[((e|0)==2?f:f+-48|0)+40>>2]|0;e=c[(c[d+16>>2]|0)+112>>2]|0;if(((c[e+32>>2]|0)==(b|0)?(i=e+40|0,!(+h[i>>3]!=0.0)):0)?(j=e+8|0,h[i>>3]=g*(+((c[j>>2]|0)>>>0)+4294967296.0*+((c[j+4>>2]|0)>>>0)),e=e+16|0,!((c[e>>2]|0)==0&(c[e+4>>2]|0)==0)):0)ev(a,d);f=_A(a,f,b)|0}return}function fv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;p=l;l=l+16|0;n=p;o=DA(b,2,101842,0)|0;c[n+4>>2]=0;c[n>>2]=0;gv(n,d);j=(o|0)==0;a:while(1){k=hv(n)|0;if(!k)break;m=k+16|0;h=c[(c[(c[m>>2]|0)+112>>2]|0)+24>>2]|0;g=ZA(b,k)|0;h=w6(0,h|0,0,1)|0;h=y6(h|0,D|0,32)|0;i=D;while(1){if(!g)continue a;if(!((!j?(a[(OA(g,o)|0)>>0]|0)==48:0)?!(f2(OA(g,o)|0,138697)|0):0)){d=c[g>>2]&3;e=c[((d|0)==3?g:g+48|0)+40>>2]|0;if((e|0)==(k|0))e=c[((d|0)==2?g:g+-48|0)+40>>2]|0;d=c[(c[e+16>>2]|0)+112>>2]|0;f=d+24|0;q=f;r=c[q+4>>2]|0;if(i>>>0<r>>>0|((i|0)==(r|0)?h>>>0<(c[q>>2]|0)>>>0:0)){r=f;c[r>>2]=h;c[r+4>>2]=i;c[d+32>>2]=k;r=(c[(c[m>>2]|0)+112>>2]|0)+16|0;q=r;q=w6(c[q>>2]|0,c[q+4>>2]|0,1,0)|0;c[r>>2]=q;c[r+4>>2]=D;gv(n,e)}}g=_A(b,g,k)|0}}l=p;return}function gv(a,b){a=a|0;b=b|0;var d=0,e=0;d=HK(8)|0;c[d>>2]=b;b=a+4|0;e=c[b>>2]|0;c[((e|0)==0?a:e+4|0)>>2]=d;c[b>>2]=d;return}function hv(a){a=a|0;var b=0,d=0;d=c[a>>2]|0;if(d){b=c[d>>2]|0;c[a>>2]=c[d+4>>2];l6(d);if(!(c[a>>2]|0))c[a+4>>2]=0}else b=0;return b|0}function iv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=c[c[(c[b+16>>2]|0)+112>>2]>>2]|0;g=ZA(a,b)|0;h=w6(0,h|0,0,1)|0;h=y6(h|0,D|0,32)|0;i=D;while(1){if(!g)break;f=c[g>>2]&3;e=c[((f|0)==3?g:g+48|0)+40>>2]|0;if((e|0)==(b|0))e=c[((f|0)==2?g:g+-48|0)+40>>2]|0;if((e|0)!=(d|0)?(j=c[(c[e+16>>2]|0)+112>>2]|0,f=j,k=c[f+4>>2]|0,i>>>0<k>>>0|((i|0)==(k|0)?h>>>0<(c[f>>2]|0)>>>0:0)):0){k=j;c[k>>2]=h;c[k+4>>2]=i;iv(a,e,b)}g=_A(a,g,b)|0}return}function jv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=0;g=ZA(a,b)|0;while(1){if(!g){d=1;break}e=c[g>>2]&3;d=c[((e|0)==3?g:g+48|0)+40>>2]|0;if((d|0)==(b|0))d=c[((e|0)==2?g:g+-48|0)+40>>2]|0;if((d|0)!=(b|0)){if(f)if((f|0)==(d|0))d=f;else{d=0;break}}else d=f;f=d;g=_A(a,g,b)|0}return d|0}function kv(a){a=a|0;var b=0,d=0,e=0,f=0.0,g=0;b=l;l=l+32|0;e=b;d=DA(a,1,94423,0)|0;g=DA(a,0,94423,0)|0;a=lv(a,g,d,DA(a,0,94428,0)|0)|0;d=a+16|0;f=+G(+(+h[a>>3]+.1));wv(e,0.0,0.0,f,f);c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];c[d+12>>2]=c[e+12>>2];c[d+16>>2]=c[e+16>>2];c[d+20>>2]=c[e+20>>2];c[d+24>>2]=c[e+24>>2];c[d+28>>2]=c[e+28>>2];mv(a);nv(a);ov(a);l=b;return}function lv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=HK(72)|0;c[o+60>>2]=0;c[o+56>>2]=a;k=a+16|0;f=0.0;l=0;i=1;j=0;m=0;while(1){g=c[k>>2]|0;if((i|0)>(c[g+180>>2]|0))break;g=lv(c[(c[g+184>>2]|0)+(i<<2)>>2]|0,b,d,e)|0;f=f+ +h[g>>3];if(j|0)c[j+52>>2]=g;l=l+1|0;i=i+1|0;j=g;m=(m|0)==0?g:m}n=gC(a)|0;g=m;while(1){if(!n)break;i=n+16|0;if(!(c[c[(c[i>>2]|0)+112>>2]>>2]|0)){k=rv(n,d)|0;f=f+ +h[k>>3];if(j|0)c[j+52>>2]=k;c[c[(c[i>>2]|0)+112>>2]>>2]=a;i=l+1|0;j=k;g=(g|0)==0?k:g}else i=l;n=hC(a,n)|0;l=i}c[o+64>>2]=l;if(!l)f=+tv(a,b);else{h[o+8>>3]=f;f=+sv(o,e)}h[o>>3]=f;c[o+48>>2]=g;return o|0}function mv(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0;s=l;l=l+176|0;i=s+144|0;q=s+64|0;o=s+32|0;m=s;r=c[b+64>>2]|0;a:do if(r|0){p=HK(r<<2)|0;d=b+48|0;f=0;e=d;while(1){e=c[e>>2]|0;if((f|0)>=(r|0))break;c[p+(f<<2)>>2]=e;f=f+1|0;e=e+52|0}k3(p,r,4,80);n=HK(r<<3)|0;e=0;while(1){if((e|0)>=(r|0))break;h[n+(e<<3)>>3]=+h[c[p+(e<<2)>>2]>>3];e=e+1|0}j=+h[b+8>>3];e=b+16|0;f=b+32|0;g=b+40|0;k=b+24|0;if(+h[b>>3]==j){c[i>>2]=c[e>>2];c[i+4>>2]=c[e+4>>2];c[i+8>>2]=c[e+8>>2];c[i+12>>2]=c[e+12>>2];c[i+16>>2]=c[e+16>>2];c[i+20>>2]=c[e+20>>2];c[i+24>>2]=c[e+24>>2];c[i+28>>2]=c[e+28>>2];i=uv(r,n,i)|0}else{t=+h[g>>3];u=+h[f>>3];h[m>>3]=+h[e>>3];h[m+8>>3]=+h[k>>3];v=t-u;j=(t+u-+G(+(j*4.0+v*v)))*.5;h[m+16>>3]=u-j;h[m+24>>3]=t-j;c[i>>2]=c[m>>2];c[i+4>>2]=c[m+4>>2];c[i+8>>2]=c[m+8>>2];c[i+12>>2]=c[m+12>>2];c[i+16>>2]=c[m+16>>2];c[i+20>>2]=c[m+20>>2];c[i+24>>2]=c[m+24>>2];c[i+28>>2]=c[m+28>>2];i=uv(r,n,i)|0}if(a[195234]|0){m=c[15715]|0;t=+h[k>>3];u=+h[f>>3];v=+h[g>>3];h[o>>3]=+h[e>>3];h[o+8>>3]=t;h[o+16>>3]=u;h[o+24>>3]=v;z4(m,94475,o)|0}f=c[15715]|0;e=0;while(1){if((e|0)>=(r|0))break;o=(c[p+(e<<2)>>2]|0)+16|0;g=i+(e<<5)|0;c[o>>2]=c[g>>2];c[o+4>>2]=c[g+4>>2];c[o+8>>2]=c[g+8>>2];c[o+12>>2]=c[g+12>>2];c[o+16>>2]=c[g+16>>2];c[o+20>>2]=c[g+20>>2];c[o+24>>2]=c[g+24>>2];c[o+28>>2]=c[g+28>>2];if(a[195234]|0){j=+h[g>>3];u=+h[i+(e<<5)+16>>3];x=u*.5;t=+h[i+(e<<5)+8>>3];v=+h[i+(e<<5)+24>>3];w=v*.5;h[q>>3]=+h[n+(e<<3)>>3];h[q+8>>3]=j-x;h[q+16>>3]=t-w;h[q+24>>3]=j+x;h[q+32>>3]=t+w;h[q+40>>3]=u*v;h[q+48>>3]=j;h[q+56>>3]=t;h[q+64>>3]=u;h[q+72>>3]=v;z4(f,94492,q)|0}e=e+1|0}l6(p);l6(n);l6(i);e=0;while(1){d=c[d>>2]|0;if((e|0)>=(r|0))break a;if(!(c[d+60>>2]|0))mv(d);d=d+52|0;e=e+1|0}}while(0);l=s;return}function nv(b){b=b|0;var d=0,e=0,f=0,g=0,i=0.0,j=0.0,k=0,m=0.0,n=0.0;g=l;l=l+48|0;f=g;e=b+56|0;if(c[b+60>>2]|0){m=+h[b+24>>3];j=+h[b+32>>3];i=+h[b+40>>3];d=c[e>>2]|0;e=d+16|0;k=c[e>>2]|0;h[k+16>>3]=+h[b+16>>3];h[k+24>>3]=m;b=c[e>>2]|0;h[b+32>>3]=j/72.0;h[b+40>>3]=i/72.0;oQ(d,c[(c[(uC(d)|0)+16>>2]|0)+116>>2]&1);pv(d);if(a[195234]|0){k=c[15715]|0;b=HB(d)|0;e=c[e>>2]|0;n=+h[e+16>>3];i=+h[e+24>>3];j=+h[e+80>>3];m=+h[e+88>>3]+ +h[e+96>>3];c[f>>2]=b;h[f+8>>3]=n;h[f+16>>3]=i;h[f+24>>3]=j;h[f+32>>3]=m;z4(k,94434,f)|0}}else{d=b+48|0;while(1){d=c[d>>2]|0;if(!d)break;nv(d);d=d+52|0}i=+h[b+32>>3];m=+h[b+40>>3];j=+h[b+16>>3]-i*.5;n=+h[b+24>>3]-m*.5;k=c[(c[e>>2]|0)+16>>2]|0;h[k+16>>3]=j;h[k+24>>3]=n;h[k+32>>3]=i+j;h[k+40>>3]=m+n}l=g;return}function ov(a){a=a|0;var b=0,d=0,e=0;e=c[a+64>>2]|0;b=a+48|0;d=0;while(1){b=c[b>>2]|0;if((d|0)>=(e|0))break;ov(b);b=b+52|0;d=d+1|0}l6(a);return}function pv(b){b=b|0;var d=0,e=0,f=0,g=0;g=l;l=l+48|0;f=g;d=g+8|0;e=c[47212]|0;if(e|0?(a[(OA(b,e)|0)>>0]|0)==0:0){h[f>>3]=+h[(c[b+16>>2]|0)+80>>3]*.7;i2(d,94469,f)|0;HA(b,c[47212]|0,d)|0}qP(b);l=g;return}function qv(a,b){a=a|0;b=b|0;var d=0.0;d=+h[c[a>>2]>>3]-+h[c[b>>2]>>3];return (d<0.0?1:(d>0.0)<<31>>31)|0}function rv(a,b){a=a|0;b=b|0;var d=0;d=HK(72)|0;h[d>>3]=+tv(a,b);c[d+60>>2]=1;c[d+56>>2]=a;return d|0}function sv(a,b){a=a|0;b=b|0;var d=0.0,e=0.0;e=+YO(c[a+56>>2]|0,b,0.0,0.0);d=+h[a+8>>3];if(!(e==0.0)){d=e*2.0+ +G(+d);d=d*d}return +d}function tv(a,b){a=a|0;b=b|0;var c=0.0;c=+YO(a,b,1.0,0.0);return +(c==0.0?1.0e3:c*1.0e3)}function uv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0,i=0,j=0.0;i=l;l=l+32|0;g=i;e=0;f=0.0;while(1){if((e|0)>=(a|0))break;j=f+ +h[b+(e<<3)>>3];e=e+1|0;f=j}if(f>+h[d+16>>3]*+h[d+24>>3]+.001)e=0;else{e=HK(a<<5)|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];c[g+8>>2]=c[d+8>>2];c[g+12>>2]=c[d+12>>2];c[g+16>>2]=c[d+16>>2];c[g+20>>2]=c[d+20>>2];c[g+24>>2]=c[d+24>>2];c[g+28>>2]=c[d+28>>2];vv(a,b,e,0,0.0,1.0,0.0,1.0,g)}l=i;return e|0}function vv(b,d,e,f,g,i,j,k,m){b=b|0;d=d|0;e=e|0;f=f|0;g=+g;i=+i;j=+j;k=+k;m=m|0;var n=0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0.0,u=0.0,v=0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0;B=l;l=l+112|0;A=B+72|0;v=B+40|0;r=B+32|0;n=B;z=m+16|0;o=+h[z>>3];x=m+24|0;p=+h[x>>3];w=+h[m+16+((!(o<p)&1)<<3)>>3];do if((b|0)>=1){y=m+8|0;if(a[195234]|0){C=c[15715]|0;D=+h[y>>3];h[n>>3]=+h[m>>3];h[n+8>>3]=o;h[n+16>>3]=D;h[n+24>>3]=p;z4(C,94529,n)|0;c[r>>2]=f;z4(C,94575,r)|0}if(!f){j=+h[d>>3];D=w*w;w=j/D;D=D/j;c[A>>2]=c[m>>2];c[A+4>>2]=c[m+4>>2];c[A+8>>2]=c[m+8>>2];c[A+12>>2]=c[m+12>>2];c[A+16>>2]=c[m+16>>2];c[A+20>>2]=c[m+20>>2];c[A+24>>2]=c[m+24>>2];c[A+28>>2]=c[m+28>>2];vv(b,d,e,1,j,j,j,w>D?w:D,A);break}r=d+(f<<3)|0;if((b|0)>(f|0)?(u=+h[r>>3],q=u<g?g:u,t=u>i?i:u,u=u+j,s=u/w,D=s/(t/s),s=q/s/s,s=D>s?D:s,s<=k):0){c[A>>2]=c[m>>2];c[A+4>>2]=c[m+4>>2];c[A+8>>2]=c[m+8>>2];c[A+12>>2]=c[m+12>>2];c[A+16>>2]=c[m+16>>2];c[A+20>>2]=c[m+20>>2];c[A+24>>2]=c[m+24>>2];c[A+28>>2]=c[m+28>>2];vv(b,d,e,f+1|0,q,t,u,s,A);break}q=j/w;if(a[195234]|0){C=c[15715]|0;c[v>>2]=f;h[v+8>>3]=j;h[v+16>>3]=w;h[v+24>>3]=q;z4(C,94600,v)|0}o=+h[z>>3];p=q*.5;if(w==o){o=+h[m>>3]-o*.5;n=0;while(1){if((n|0)>=(f|0))break;h[e+(n<<5)+24>>3]=q;D=+h[d+(n<<3)>>3]/q;h[e+(n<<5)+16>>3]=D;h[e+(n<<5)+8>>3]=+h[y>>3]+ +h[x>>3]*.5-p;h[e+(n<<5)>>3]=o+D*.5;o=o+D;n=n+1|0}h[y>>3]=+h[y>>3]-p;n=1}else{o=+h[y>>3]+ +h[x>>3]*.5;n=0;while(1){if((n|0)>=(f|0))break;h[e+(n<<5)+16>>3]=q;D=+h[d+(n<<3)>>3]/q;h[e+(n<<5)+24>>3]=D;h[e+(n<<5)>>3]=p+(+h[m>>3]-+h[z>>3]*.5);h[e+(n<<5)+8>>3]=o-D*.5;o=o-D;n=n+1|0}h[m>>3]=p+ +h[m>>3];n=0}C=m+16+(n<<3)|0;h[C>>3]=+h[C>>3]-q;c[A>>2]=c[m>>2];c[A+4>>2]=c[m+4>>2];c[A+8>>2]=c[m+8>>2];c[A+12>>2]=c[m+12>>2];c[A+16>>2]=c[m+16>>2];c[A+20>>2]=c[m+20>>2];c[A+24>>2]=c[m+24>>2];c[A+28>>2]=c[m+28>>2];vv(b-f|0,r,e+(f<<5)|0,0,0.0,0.0,0.0,1.0,A)}while(0);l=B;return}function wv(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;h[a>>3]=b;h[a+8>>3]=c;h[a+16>>3]=d;h[a+24>>3]=e;return}function xv(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,i=0,j=0,k=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;E=l;l=l+96|0;D=E+48|0;C=E+24|0;B=E+16|0;A=E+8|0;v=E+80|0;w=E;x=d+4|0;y=v+4|0;z=a+16|0;t=gC(a)|0;e=0;f=0;i=0;j=0;while(1){if(!t)break;u=UA(a,t)|0;r=e;s=j;while(1){if(!u)break;e=(b[(c[u+16>>2]|0)+168>>1]|0)==0;do if((t|0)!=(c[((c[u>>2]&3|0)==2?u:u+-48|0)+40>>2]|0)|e)if(!e){i=yv(u,d)|0;j=i+8|0;if(it(c[j>>2]|0,c[i>>2]|0)|0){k=HX(c[j>>2]|0,c[i>>2]|0)|0;if(!k){dA(0,94653,A)|0;j=1;e=s;break}else e=u;while(1){if(!e)break;F=e+16|0;G=(c[F>>2]|0)+144|0;Nm(w,e,k,0,c[j>>2]|0,c[i>>2]|0);I=w;H=c[I+4>>2]|0;c[G>>2]=c[I>>2];c[G+4>>2]=H;Pm(a,e,c[j>>2]|0,c[i>>2]|0,0);e=c[(c[F>>2]|0)+172>>2]|0}zv(i);j=r;e=s;break}if(!r){ir(v,a);e=jH(a,8,8)|0;dA(0,94737,B)|0;n=+(e|0);o=+g[d>>2];p=+g[x>>2];q=p;if(!(n<=o)&!(n<=p)){m=+g[v>>2];n=+g[y>>2];if(!(!(m<=o)&!(n<=p))){h[D>>3]=m;h[D+8>>3]=n;h[D+16>>3]=o;h[D+24>>3]=q;dA(3,94853,D)|0}}else{c[C>>2]=e;h[C+8>>3]=o;h[C+16>>3]=q;dA(3,94803,C)|0}j=1;e=s}else{j=r;e=s}}else{j=r;e=s}else{if(!f){e=HK(96)|0;c[e+84>>2]=HK(((qB(a)|0)<<5)+11520|0)|0;f=e}else e=s;Hm(f,u,c[(c[z>>2]|0)+248>>2]|0);j=r}while(0);u=WA(a,u)|0;r=j;s=e}t=hC(a,t)|0;e=r;j=s}Av(i);if(f|0){l6(c[f+84>>2]|0);l6(j)}l=E;return e|0}function yv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;p=l;l=l+16|0;m=p+4|0;n=p;e=c[b>>2]&3;f=c[((e|0)==2?b:b+-48|0)+40>>2]|0;e=c[((e|0)==3?b:b+48|0)+40>>2]|0;q=f+16|0;h=c[(c[q>>2]|0)+212>>2]|0;c[m>>2]=h;i=e+16|0;g=c[(c[i>>2]|0)+212>>2]|0;c[n>>2]=g;k=HK(12)|0;b=h;j=g;if(a[(c[q>>2]|0)+118>>0]|0){b=c[(c[(c[b+16>>2]|0)+140>>2]|0)+48>>2]|0;c[m>>2]=b;f=h;h=b}if(!(a[(c[i>>2]|0)+118>>0]|0))i=j;else{i=c[(c[(c[j+16>>2]|0)+140>>2]|0)+48>>2]|0;c[n>>2]=i;e=g;g=i}h=c[(c[(c[h+16>>2]|0)+140>>2]|0)+44>>2]|0;g=c[(c[(c[g+16>>2]|0)+140>>2]|0)+44>>2]|0;if((h|0)<=(g|0))if((g|0)>(h|0)){Bv(k,g,e,h,n,d);b=c[n>>2]|0;g=b;e=n;o=11}else h=i;else{Bv(k,h,f,g,m,d);b=c[m>>2]|0;f=b;g=e;e=m;o=11}while(1){if((o|0)==11){c[e>>2]=c[(c[(c[b+16>>2]|0)+140>>2]|0)+48>>2];e=g;b=c[m>>2]|0;h=c[n>>2]|0}if((b|0)==(h|0))break;Cv(k,b,0,f,d);Cv(k,h,e,0,d);c[m>>2]=c[(c[(c[b+16>>2]|0)+140>>2]|0)+48>>2];f=b;g=h;e=n;b=h;o=11}Cv(k,h,e,f,d);l=p;return k|0}function zv(a){a=a|0;c[a>>2]=0;return}function Av(a){a=a|0;if(a|0){l6(c[a+8>>2]|0);l6(a)}return}function Bv(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;i=f;while(1){h=c[i>>2]|0;if((b|0)<=(e|0))break;Cv(a,h,d,0,g);b=b+-1|0;i=(c[(c[h+16>>2]|0)+140>>2]|0)+48|0;d=h}c[f>>2]=d;return}function Cv(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=gC(d)|0;while(1){if(!h)break;i=c[h+16>>2]|0;if(!((h|0)==(f|0)|((h|0)==(e|0)?1:(c[i+212>>2]|0)!=(d|0)))?(a[i+118>>0]|0)==0:0)Dv(b,Km(h,g,0)|0);h=hC(d,h)|0}i=d+16|0;d=1;while(1){h=c[i>>2]|0;if((d|0)>(c[h+180>>2]|0))break;h=c[(c[h+184>>2]|0)+(d<<2)>>2]|0;if(!((h|0)==(e|0)|(h|0)==(f|0)))Dv(b,Ev(h,g)|0);d=d+1|0}return}function Dv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=a+4|0;f=c[e>>2]|0;g=a+8|0;d=c[g>>2]|0;do if((f|0)==(c[a>>2]|0))if(!d){d=IK(400)|0;c[g>>2]=d;c[e>>2]=100;break}else{c[e>>2]=f<<1;d=KK(d,f<<3)|0;c[g>>2]=d;break}while(0);g=c[a>>2]|0;c[a>>2]=g+1;c[d+(g<<2)>>2]=b;return}function Ev(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0.0,p=0.0;n=HK(8)|0;b=c[b+16>>2]|0;e=+h[b+16>>3];l=+h[b+24>>3];f=+h[b+32>>3];k=+h[b+40>>3];c[n+4>>2]=4;b=HK(64)|0;c[n>>2]=b;i=+g[d>>2];m=+g[d+4>>2];if(!(a[d+8>>0]|0)){p=(e+f)*.5*(i+-1.0);o=(l+k)*.5*(m+-1.0);j=e*i-p;i=f*i-p;f=k*m-o;e=l*m-o}else{j=e-i;i=f+i;f=k+m;e=l-m}h[b>>3]=j;h[b+8>>3]=e;h[b+16>>3]=j;h[b+24>>3]=f;h[b+32>>3]=i;h[b+40>>3]=f;h[b+48>>3]=i;h[b+56>>3]=e;return n|0}function Fv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;p=l;l=l+160|0;o=p+16|0;k=p+8|0;g=p;m=p+24|0;n=HK(qB(b)|0)|0;h=b+16|0;f=c[c[(c[h>>2]|0)+140>>2]>>2]|0;a:do if(!f){g=0;f=0}else{j=HB(b)|0;i=c[46965]|0;c[g>>2]=j;c[g+4>>2]=i;i2(m,94913,g)|0;i=LD(b,m,1)|0;RC(i,137786,280,1)|0;j=HK(56)|0;c[(c[i+16>>2]|0)+140>>2]=j;c[j>>2]=f;c[j+4>>2]=c[(c[(c[h>>2]|0)+140>>2]|0)+4>>2];while(1){g=c[f+4>>2]|0;if(!g){g=i;f=1;break a}if(!(a[n+(c[(c[g+16>>2]|0)+120>>2]|0)>>0]|0))Gv(b,g,i,n);f=f+16|0}}while(0);i=0;j=gC(b)|0;while(1){h=(g|0)!=0;if(!j)break;q=c[j+16>>2]|0;if((a[n+(c[q+120>>2]|0)>>0]|0)==0?(a[q+119>>0]|0)==3:0){if(!h){q=HB(b)|0;g=(c[46965]|0)+f|0;c[k>>2]=q;c[k+4>>2]=g;i2(m,94913,k)|0;g=LD(b,m,1)|0;RC(g,137786,280,1)|0;q=HK(56)|0;c[(c[g+16>>2]|0)+140>>2]=q;f=f+1|0}Gv(b,j,g,n);h=1}else h=i;i=h;j=hC(b,j)|0}if(h)IG(g)|0;g=gC(b)|0;while(1){if(!g)break;if(!(a[n+(c[(c[g+16>>2]|0)+120>>2]|0)>>0]|0)){k=HB(b)|0;q=(c[46965]|0)+f|0;c[o>>2]=k;c[o+4>>2]=q;i2(m,94921,o)|0;q=LD(b,m,1)|0;RC(q,137786,280,1)|0;k=HK(56)|0;c[(c[q+16>>2]|0)+140>>2]=k;Gv(b,g,q,n);IG(q)|0;f=f+1|0}g=hC(b,g)|0}l6(n);c[46965]=(c[46965]|0)+f;if(d|0)c[d>>2]=f;if(e|0)c[e>>2]=i;i=HK((f<<2)+4|0)|0;h=i;g=MD(b)|0;while(1){if(!g)break;c[h>>2]=g;h=h+4|0;g=ND(g)|0;f=f+-1|0}if(!f){c[h>>2]=0;l=p;return i|0}else Aa(94929,94940,134,94947);return 0}function Gv(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;a[f+(c[(c[d+16>>2]|0)+120>>2]|0)>>0]=1;lC(e,d,1)|0;i=ZA(b,d)|0;while(1){if(!i)break;h=c[i>>2]&3;g=c[((h|0)==3?i:i+48|0)+40>>2]|0;if((g|0)==(d|0))g=c[((h|0)==2?i:i+-48|0)+40>>2]|0;if(!(a[f+(c[(c[g+16>>2]|0)+120>>2]|0)>>0]|0))Gv(b,g,e,f);i=_A(b,i,d)|0}return}function Hv(a){a=a|0;var b=0;b=IK(24)|0;c[46966]=b;c[b>>2]=Sz(18244,c[4591]|0)|0;c[b+16>>2]=0;c[b+12>>2]=0;c[b+4>>2]=Iv(a)|0;return b|0}function Iv(a){a=a|0;var b=0,d=0;b=IK(16)|0;c[b+12>>2]=0;d=IK(a*20|0)|0;c[b>>2]=d;c[b+8>>2]=d+(a*20|0);c[b+4>>2]=d;return b|0}function Jv(a,b,d){a=a|0;b=b|0;d=d|0;d=Lv(c[46966]|0)|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=0;return d|0}function Kv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=(c[b>>2]|0)-(c[d>>2]|0)|0;if(!a)a=(c[b+4>>2]|0)-(c[d+4>>2]|0)|0;return a|0}function Lv(a){a=a|0;var b=0,d=0,e=0,f=0;f=a+8|0;a=c[f>>2]|0;b=c[a+4>>2]|0;if((b|0)==(c[a+8>>2]|0)){d=a+12|0;e=c[d>>2]|0;if(!e){a=Iv(((b-(c[a>>2]|0)|0)/20|0)<<1)|0;c[d>>2]=a}else a=e;c[f>>2]=a;b=c[a>>2]|0;c[a+4>>2]=b}c[a+4>>2]=b+20;return b|0}function Mv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+12|0;d=c[f>>2]|0;if((d|0)<(b|0)){e=d<<1;e=(e|0)<(b|0)?b:e;b=a+16|0;d=c[b>>2]|0;if(d|0)l6(d);c[b>>2]=IK(e<<3)|0;c[f>>2]=e}return}function Nv(a){a=a|0;var b=0;b=c[a>>2]|0;eb[c[b>>2]&63](b,0,64)|0;c[a+20>>2]=c[a+16>>2];b=c[a+4>>2]|0;c[a+8>>2]=b;c[b+4>>2]=c[b>>2];return}function Ov(a){a=a|0;Oz(c[a>>2]|0)|0;Pv(c[a+4>>2]|0);l6(c[a+16>>2]|0);l6(a);return}function Pv(a){a=a|0;var b=0;while(1){if(!a)break;b=c[a+12>>2]|0;l6(c[a>>2]|0);l6(a);a=b}return}function Qv(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;h=l;l=l+32|0;g=h;i=h+12|0;c[i>>2]=b;c[i+4>>2]=e;j=c[a>>2]|0;i=(eb[c[j>>2]&63](j,i,1)|0)+8|0;c[i>>2]=Rv(a,f,c[i>>2]|0)|0;if((d[195234]|0)>2){j=c[15715]|0;i=HB(f)|0;c[g>>2]=b;c[g+4>>2]=e;c[g+8>>2]=i;z4(j,94957,g)|0}l=h;return}function Rv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=a+20|0;a=c[e>>2]|0;c[e>>2]=a+8;c[a>>2]=b;c[a+4>>2]=d;return a|0}function Sv(a,b){a=a|0;b=b|0;Zz(c[a>>2]|0,b,a)|0;return}function Tv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+32|0;f=e;c[f>>2]=b;c[f+4>>2]=d;d=c[a>>2]|0;d=eb[c[d>>2]&63](d,f,4)|0;l=e;return d|0}function Uv(a){a=a|0;l6(c[a+8>>2]|0);l6(a);return}function Vv(a){a=a|0;return +(+h[a>>3])}function Wv(a){a=a|0;return c[a+8>>2]|0}function Xv(a){a=a|0;return ~~+h[a+16>>3]|0}function Yv(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;b=c[b>>2]|0;if((b|0)>=(c[d>>2]|0)){b=b+10|0;c[d>>2]=b;c[e>>2]=KK(c[e>>2]|0,S(a<<3,b)|0)|0;c[f>>2]=KK(c[f>>2]|0,c[d>>2]<<3)|0;c[g>>2]=KK(c[g>>2]|0,c[d>>2]<<3)|0}return}function Zv(a,b,d,e,f,g,i,j,k,l,m){a=a|0;b=+b;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0.0;h[l>>3]=+h[l>>3]+1.0;a:do if(a|0){q=c[a+16>>2]|0;n=c[a+40>>2]|0;if(n|0)do{Yv(q,f,g,i,j,k);if((Xv(wy(n)|0)|0)!=(e|0)){p=Wv(wy(n)|0)|0;o=0;while(1){if((o|0)>=(q|0))break;h[(c[i>>2]|0)+((S(c[f>>2]|0,q)|0)+o<<3)>>3]=+h[p+(o<<3)>>3];o=o+1|0}r=+Vv(wy(n)|0);h[(c[j>>2]|0)+(c[f>>2]<<3)>>3]=r;r=+Yw(d,p,q);p=c[f>>2]|0;h[(c[k>>2]|0)+(p<<3)>>3]=r;c[f>>2]=p+1}n=xy(n)|0}while((n|0)!=0);p=a+36|0;if(c[p>>2]|0){r=+Yw(c[a+20>>2]|0,d,q);if(!(+h[a+24>>3]<r*b)){o=1<<q;n=0;while(1){if((n|0)>=(o|0))break a;Zv(c[(c[p>>2]|0)+(n<<2)>>2]|0,b,d,e,f,g,i,j,k,l,m);n=n+1|0}}Yv(q,f,g,i,j,k);o=c[a+32>>2]|0;p=c[f>>2]|0;m=S(p,q)|0;n=0;while(1){if((n|0)>=(q|0))break;h[(c[i>>2]|0)+(m+n<<3)>>3]=+h[o+(n<<3)>>3];n=n+1|0}h[(c[j>>2]|0)+(p<<3)>>3]=+h[a+8>>3];r=+Yw(o,d,q);j=c[f>>2]|0;h[(c[k>>2]|0)+(j<<3)>>3]=r;c[f>>2]=j+1}}while(0);return}function _v(a,b,d,e,f,g,i,j,k,l,m){a=a|0;b=+b;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0;n=c[a+16>>2]|0;h[l>>3]=0.0;c[f>>2]=0;c[m>>2]=0;c[g>>2]=10;if(!(c[i>>2]|0))c[i>>2]=IK(n*80|0)|0;if(!(c[j>>2]|0))c[j>>2]=IK(c[g>>2]<<3)|0;if(!(c[k>>2]|0))c[k>>2]=IK(c[g>>2]<<3)|0;Zv(a,b,d,e,f,g,i,j,k,l,m);return}function $v(a,b,d,e,f,g,i,j){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=+g;i=i|0;j=j|0;var k=0,l=0,m=0;m=c[a>>2]|0;l=c[a+16>>2]|0;k=0;while(1){if((k|0)==4)break;h[i+(k<<3)>>3]=0.0;k=k+1|0}c[j>>2]=0;l=S(l,m)|0;k=0;while(1){if((k|0)>=(l|0))break;h[b+(k<<3)>>3]=0.0;k=k+1|0}aw(a,a,d,b,e,f,g,i);bw(a,b,i);e=+(m|0);k=0;while(1){if((k|0)==4)break;m=i+(k<<3)|0;h[m>>3]=+h[m>>3]/e;k=k+1|0}return}function aw(a,b,d,e,f,g,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;g=+g;i=+i;j=j|0;var k=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0;a:do if((a|0)!=0&(b|0)!=0){if((c[a>>2]|0)>0?(c[b>>2]|0)>0:0){v=c[a+16>>2]|0;p=c[a+40>>2]|0;u=b+40|0;l=c[u>>2]|0;k=a+32|0;m=b+32|0;r=+Yw(c[k>>2]|0,c[m>>2]|0,v);n=+h[a+24>>3];o=+h[b+24>>3];w=g==-1.0;x=1.0-g;if(n+o<r*f){h[j>>3]=+h[j>>3]+1.0;q=c[k>>2]|0;o=+h[a+8>>3];p=cw(a,v)|0;m=c[m>>2]|0;n=+h[b+8>>3];l=cw(b,v)|0;if(!(r>0.0))Aa(95099,94982,191,95065);o=o*n*i;f=r*r;k=0;while(1){if((k|0)>=(v|0))break a;if(w)n=f;else n=+H(+r,+x);i=o*(+h[q+(k<<3)>>3]-+h[m+(k<<3)>>3])/n;e=p+(k<<3)|0;h[e>>3]=+h[e>>3]+i;e=l+(k<<3)|0;h[e>>3]=+h[e>>3]-i;k=k+1|0}}m=(p|0)!=0;k=(l|0)!=0;t=(a|0)==(b|0);if(m&k){b=j+8|0;l=p;while(1){if(!l)break a;p=Wv(wy(l)|0)|0;g=+Vv(wy(l)|0);q=Xv(wy(l)|0)|0;s=dw(e,q,l,v)|0;m=c[u>>2]|0;while(1){if(!m)break;a=Wv(wy(m)|0)|0;n=+Vv(wy(m)|0);k=Xv(wy(m)|0)|0;j=dw(e,k,m,v)|0;b:do if(!((q|0)==(k|0)|t&(k|0)<(q|0))){h[b>>3]=+h[b>>3]+1.0;r=+Ww(d,v,q,k);o=g*n*i;f=r*r;k=0;while(1){if((k|0)>=(v|0))break b;if(w)n=f;else n=+H(+r,+x);n=o*(+h[p+(k<<3)>>3]-+h[a+(k<<3)>>3])/n;y=s+(k<<3)|0;h[y>>3]=+h[y>>3]+n;y=j+(k<<3)|0;h[y>>3]=+h[y>>3]-n;k=k+1|0}}while(0);m=xy(m)|0}l=xy(l)|0}}q=1<<v;p=a+36|0;if(t){l=0;while(1){if((l|0)>=(q|0))break a;m=c[(c[p>>2]|0)+(l<<2)>>2]|0;k=l;while(1){if((k|0)==(q|0))break;aw(m,c[(c[p>>2]|0)+(k<<2)>>2]|0,d,e,f,g,i,j);k=k+1|0}l=l+1|0}}if(!(m|!(n>o))){k=0;while(1){if((k|0)>=(q|0))break a;aw(c[(c[p>>2]|0)+(k<<2)>>2]|0,b,d,e,f,g,i,j);k=k+1|0}}l=b+36|0;if(!(k|!(o>n))){k=0;while(1){if((k|0)>=(q|0))break a;aw(c[(c[l>>2]|0)+(k<<2)>>2]|0,a,d,e,f,g,i,j);k=k+1|0}}if(!m){k=0;while(1){if((k|0)>=(q|0))break a;aw(c[(c[p>>2]|0)+(k<<2)>>2]|0,b,d,e,f,g,i,j);k=k+1|0}}if(k)Aa(138697,94982,273,95065);else s=0;while(1){if((s|0)>=(q|0))break a;aw(c[(c[l>>2]|0)+(s<<2)>>2]|0,a,d,e,f,g,i,j);s=s+1|0}}Aa(95040,94982,175,95065)}while(0);return}function bw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0,j=0,k=0,l=0,m=0.0,n=0,o=0;e=c[a+40>>2]|0;l=c[a+16>>2]|0;m=+h[a+8>>3];n=cw(a,l)|0;if(!(m>0.0))Aa(94974,94982,289,94993);k=d+16|0;h[k>>3]=+h[k>>3]+1.0;a:do if(!e){k=1<<l;f=a+36|0;e=0;while(1){if((e|0)>=(k|0))break a;i=c[(c[f>>2]|0)+(e<<2)>>2]|0;if(i|0){if((c[i>>2]|0)<=0)break;j=cw(i,l)|0;g=+h[i+8>>3]/m;a=0;while(1){if((a|0)>=(l|0))break;o=j+(a<<3)|0;h[o>>3]=+h[o>>3]+g*+h[n+(a<<3)>>3];a=a+1|0}bw(i,b,d)}e=e+1|0}Aa(95029,94982,307,94993)}else while(1){if(!e)break a;f=dw(b,Xv(wy(e)|0)|0,e,l)|0;g=+Vv(wy(e)|0)/m;a=0;while(1){if((a|0)>=(l|0))break;o=f+(a<<3)|0;h[o>>3]=+h[o>>3]+g*+h[n+(a<<3)>>3];a=a+1|0}e=xy(e)|0}while(0);return}function cw(a,b){a=a|0;b=b|0;var d=0;d=a+48|0;a=c[d>>2]|0;a:do if(!a){a=IK(b<<3)|0;c[d>>2]=a;d=0;while(1){if((d|0)>=(b|0))break a;h[a+(d<<3)>>3]=0.0;d=d+1|0}}while(0);return a|0}function dw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[(wy(d)|0)+24>>2]|0;if(!f){f=a+((S(e,b)|0)<<3)|0;c[(wy(d)|0)+24>>2]=f;f=c[(wy(d)|0)+24>>2]|0}return f|0}function ew(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0;m=a<<3;k=IK(m)|0;l=IK(m)|0;m=IK(m)|0;if((k|0)!=0&(l|0)!=0&(m|0)!=0){f=0;while(1){if((f|0)>=(a|0)){f=0;break}h[k+(f<<3)>>3]=+h[d+(f<<3)>>3];f=f+1|0}while(1){if((f|0)>=(a|0)){g=1;break}h[l+(f<<3)>>3]=+h[d+(f<<3)>>3];f=f+1|0}while(1){if((g|0)>=(b|0))break;j=S(g,a)|0;f=0;while(1){if((f|0)>=(a|0))break;n=k+(f<<3)|0;i=+h[n>>3];p=d+(f+j<<3)|0;o=+h[p>>3];h[n>>3]=i<o?i:o;n=l+(f<<3)|0;o=+h[n>>3];i=+h[p>>3];h[n>>3]=o>i?o:i;f=f+1|0}g=g+1|0}i=+h[l>>3]-+h[k>>3];f=0;while(1){if((f|0)>=(a|0))break;p=k+(f<<3)|0;n=l+(f<<3)|0;h[m+(f<<3)>>3]=(+h[p>>3]+ +h[n>>3])*.5;o=+h[n>>3]-+h[p>>3];i=i>o?i:o;f=f+1|0}f=fw(a,m,i==0.0?5.2e-06:i*.52,c)|0;a:do if(!e){g=0;while(1){if((g|0)>=(b|0))break a;f=gw(f,d+((S(g,a)|0)<<3)|0,1.0,g)|0;g=g+1|0}}else{g=0;while(1){if((g|0)>=(b|0))break a;p=d+((S(g,a)|0)<<3)|0;f=gw(f,p,+h[e+(g<<3)>>3],g)|0;g=g+1|0}}while(0);l6(k);l6(l);l6(m)}else{l6(k);l6(l);l6(m);f=0}return f|0}function fw(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0,g=0,i=0;g=IK(56)|0;c[g+16>>2]=a;c[g>>2]=0;i=IK(a<<3)|0;c[g+20>>2]=i;f=0;while(1){if((f|0)>=(a|0))break;h[i+(f<<3)>>3]=+h[b+(f<<3)>>3];f=f+1|0}if(d>0.0){h[g+24>>3]=d;h[g+8>>3]=0.0;c[g+32>>2]=0;c[g+36>>2]=0;c[g+40>>2]=0;c[g+44>>2]=e;c[g+48>>2]=0;return g|0}else Aa(95197,94982,410,95207);return 0}function gw(a,b,c,d){a=a|0;b=b|0;c=+c;d=d|0;if(!a)a=0;else hw(a,b,c,d,0)|0;return a|0}function hw(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=e|0;f=f|0;var g=0,i=0,j=0,k=0.0,l=0.0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;w=a+16|0;s=c[w>>2]|0;u=c[a+44>>2]|0;r=a+20|0;t=a+24|0;j=c[a>>2]|0;m=a+8|0;x=a+40|0;do if(!j){c[a>>2]=1;h[m>>3]=d;j=IK(s<<3)|0;c[a+32>>2]=j;i=c[w>>2]|0;g=0;while(1){if((g|0)>=(i|0))break;h[j+(g<<3)>>3]=+h[b+(g<<3)>>3];g=g+1|0}g=iw(i,d,b,e)|0;if(!(c[x>>2]|0)){c[x>>2]=ty(g)|0;break}else Aa(95108,94982,502,95116)}else{v=a+36|0;p=a+32|0;o=+h[m>>3]+d;n=j+1|0;if((u|0)<=(f|0)){if(c[v>>2]|0)Aa(95182,94982,541,95116);c[a>>2]=n;h[m>>3]=o;k=+(n|0);l=+(j+2|0);g=0;while(1){if((g|0)>=(s|0))break;q=(c[p>>2]|0)+(g<<3)|0;h[q>>3]=(+h[b+(g<<3)>>3]+ +h[q>>3]*k)/l;g=g+1|0}g=iw(s,d,b,e)|0;i=c[x>>2]|0;if(!i)Aa(95192,94982,547,95116);else{c[x>>2]=vy(i,g)|0;break}}h[m>>3]=o;l=+(j|0);k=+(n|0);g=0;while(1){if((g|0)>=(s|0))break;q=(c[p>>2]|0)+(g<<3)|0;h[q>>3]=(l*+h[q>>3]+ +h[b+(g<<3)>>3])/k;g=g+1|0}q=1<<s;a:do if(!(c[v>>2]|0)){c[v>>2]=IK(q<<2)|0;g=0;while(1){if((g|0)>=(q|0))break a;c[(c[v>>2]|0)+(g<<2)>>2]=0;g=g+1|0}}while(0);g=c[r>>2]|0;j=jw(s,g,b)|0;if(!((j|0)<(q|0)&(j|0)>-1))Aa(95138,94982,515,95116);i=c[(c[v>>2]|0)+(j<<2)>>2]|0;if(!i){i=kw(c[w>>2]|0,g,+h[t>>3]*.5,u,j)|0;c[(c[v>>2]|0)+(j<<2)>>2]=i;i=c[(c[v>>2]|0)+(j<<2)>>2]|0}p=f+1|0;e=hw(i,b,d,e,p)|0;c[(c[v>>2]|0)+(j<<2)>>2]=e;if(!(c[(c[v>>2]|0)+(j<<2)>>2]|0))Aa(95161,94982,519,95116);g=c[x>>2]|0;do if(g|0){m=Xv(wy(g)|0)|0;if((c[a>>2]|0)!=1)Aa(95172,94982,523,95116);n=Wv(wy(c[x>>2]|0)|0)|0;k=+Vv(wy(c[x>>2]|0)|0);i=c[r>>2]|0;j=jw(s,i,n)|0;if(!((j|0)<(q|0)&(j|0)>-1))Aa(95138,94982,527,95116);g=c[(c[v>>2]|0)+(j<<2)>>2]|0;if(!g){g=kw(c[w>>2]|0,i,+h[t>>3]*.5,u,j)|0;c[(c[v>>2]|0)+(j<<2)>>2]=g;g=c[(c[v>>2]|0)+(j<<2)>>2]|0}w=hw(g,n,k,m,p)|0;c[(c[v>>2]|0)+(j<<2)>>2]=w;if(!(c[(c[v>>2]|0)+(j<<2)>>2]|0))Aa(95161,94982,532,95116);else{uy(c[x>>2]|0,106);c[x>>2]=0;break}}while(0);c[a>>2]=(c[a>>2]|0)+1}while(0);return a|0}function iw(a,b,d,e){a=a|0;b=+b;d=d|0;e=e|0;var f=0,g=0;g=IK(32)|0;h[g>>3]=b;f=IK(a<<3)|0;c[g+8>>2]=f;h[g+16>>3]=+(e|0);e=0;while(1){if((e|0)>=(a|0))break;h[f+(e<<3)>>3]=+h[d+(e<<3)>>3];e=e+1|0}c[g+24>>2]=0;return g|0}function jw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=0;while(1){d=a+-1|0;if((a|0)<=0)break;a=d;e=!(+h[c+(d<<3)>>3]-+h[b+(d<<3)>>3]<0.0)&1|e<<1}return e|0}function kw(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=e|0;f=f|0;var g=0,i=0,j=0.0;g=fw(a,b,d,e)|0;i=c[g+20>>2]|0;j=-d;e=0;b=f;while(1){if((e|0)>=(a|0))break;f=i+(e<<3)|0;h[f>>3]=((b&1|0)==0?j:d)+ +h[f>>3];e=e+1|0;b=(b|0)/2|0}return g|0}function lw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;if(a|0){b=c[a+16>>2]|0;l6(c[a+20>>2]|0);l6(c[a+32>>2]|0);l6(c[a+48>>2]|0);g=a+36|0;e=c[g>>2]|0;if(e|0){f=1<<b;d=0;b=e;while(1){if((d|0)>=(f|0))break;lw(c[b+(d<<2)>>2]|0);d=d+1|0;b=c[g>>2]|0}l6(b)}uy(c[a+40>>2]|0,106);l6(a)}return}function mw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0;a:do if(!a)b=0;else{l=c[a+20>>2]|0;m=c[a+24>>2]|0;d=c[a+8>>2]|0;n=c[a>>2]|0;e=c[a+4>>2]|0;i=a+16|0;if((c[a+32>>2]|0)!=1)Aa(95220,95244,76,95259);b=ow(e,n,d,c[i>>2]|0,1)|0;c[b+8>>2]=d;o=c[b+20>>2]|0;k=c[b+24>>2]|0;d=0;while(1){if((d|0)>(e|0)){d=0;break}c[o+(d<<2)>>2]=0;d=d+1|0}b:while(1){if((d|0)>=(n|0)){d=0;break}f=d+1|0;g=l+(f<<2)|0;d=c[l+(d<<2)>>2]|0;while(1){if((d|0)>=(c[g>>2]|0)){d=f;continue b}j=o+((c[m+(d<<2)>>2]|0)+1<<2)|0;c[j>>2]=(c[j>>2]|0)+1;d=d+1|0}}while(1){if((d|0)>=(e|0))break;j=d+1|0;g=o+(j<<2)|0;c[g>>2]=(c[g>>2]|0)+(c[o+(d<<2)>>2]|0);d=j}d=a+28|0;f=b+28|0;c:do switch(c[i>>2]|0){case 1:{j=c[d>>2]|0;g=c[f>>2]|0;f=0;d:while(1){if((f|0)>=(n|0))break c;a=f+1|0;i=l+(a<<2)|0;d=c[l+(f<<2)>>2]|0;while(1){if((d|0)>=(c[i>>2]|0)){f=a;continue d}r=m+(d<<2)|0;c[k+(c[o+(c[r>>2]<<2)>>2]<<2)>>2]=f;q=+h[j+(d<<3)>>3];r=o+(c[r>>2]<<2)|0;p=c[r>>2]|0;c[r>>2]=p+1;h[g+(p<<3)>>3]=q;d=d+1|0}}}case 2:{j=c[d>>2]|0;g=c[f>>2]|0;f=0;e:while(1){if((f|0)>=(n|0))break c;a=f+1|0;i=l+(a<<2)|0;d=c[l+(f<<2)>>2]|0;while(1){if((d|0)>=(c[i>>2]|0)){f=a;continue e}r=m+(d<<2)|0;c[k+(c[o+(c[r>>2]<<2)>>2]<<2)>>2]=f;t=d<<1;r=o+(c[r>>2]<<2)|0;p=c[r>>2]|0;s=p<<1;h[g+(s<<3)>>3]=+h[j+(t<<3)>>3];h[g+((s|1)<<3)>>3]=+h[j+((t|1)<<3)>>3];c[r>>2]=p+1;d=d+1|0}}}case 4:{j=c[d>>2]|0;g=c[f>>2]|0;f=0;f:while(1){if((f|0)>=(n|0))break c;a=f+1|0;i=l+(a<<2)|0;d=c[l+(f<<2)>>2]|0;while(1){if((d|0)>=(c[i>>2]|0)){f=a;continue f}r=m+(d<<2)|0;c[k+(c[o+(c[r>>2]<<2)>>2]<<2)>>2]=f;s=c[j+(d<<2)>>2]|0;r=o+(c[r>>2]<<2)|0;t=c[r>>2]|0;c[r>>2]=t+1;c[g+(t<<2)>>2]=s;d=d+1|0}}}case 8:{f=0;g:while(1){if((f|0)>=(n|0))break c;g=f+1|0;a=l+(g<<2)|0;d=c[l+(f<<2)>>2]|0;while(1){if((d|0)>=(c[a>>2]|0)){f=g;continue g}s=o+(c[m+(d<<2)>>2]<<2)|0;t=c[s>>2]|0;c[s>>2]=t+1;c[k+(t<<2)>>2]=f;d=d+1|0}}}case 16:{nw(b);b=0;break a}default:{nw(b);b=0;break a}}while(0);while(1){d=e+-1|0;if((e|0)<=0)break;c[o+(e<<2)>>2]=c[o+(d<<2)>>2];e=d}c[o>>2]=0}while(0);return b|0}function nw(a){a=a|0;var b=0;if(a|0){b=c[a+20>>2]|0;if(b|0)l6(b);b=c[a+24>>2]|0;if(b|0)l6(b);l6(c[a+28>>2]|0);l6(a)}return}function ow(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;a=qw(a,b,d,pw(d)|0,e)|0;if((c|0)>0)rw(a,c)|0;return a|0}function pw(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 qw(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=IK(44)|0;c[g>>2]=a;c[g+4>>2]=b;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=d;c[g+40>>2]=e;if((f|0)==2)a=0;else a=IK((a<<2)+4|0)|0;c[g+20>>2]=a;c[g+24>>2]=0;c[g+28>>2]=0;c[g+32>>2]=f;c[g+36>>2]=0;return g|0}function rw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=c[a+32>>2]|0;f=a+28|0;c[f>>2]=0;d=b<<2;e=IK(d)|0;if((h|0)!=2){c[a+24>>2]=e;d=c[a+40>>2]|0;if((b|0)!=0&(d|0)>0)g=4}else{c[a+20>>2]=e;c[a+24>>2]=IK(d)|0;d=c[a+40>>2]|0;g=4}if((g|0)==4)c[f>>2]=IK(S(d,b)|0)|0;c[a+12>>2]=b;return a|0}function sw(a,b){a=a|0;b=b|0;if(!(tw(a,b)|0)){b=mw(a)|0;if(!b)b=0;else{a=vw(a,b)|0;nw(b);b=a+36|0;c[b>>2]=c[b>>2]|3;b=a}}else b=uw(a)|0;return b|0}
function NM(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,H=0,I=0,J=0,K=0,L=0.0,M=0.0,N=0.0,O=0,P=0;K=l;l=l+304|0;A=K+272|0;z=K+208|0;F=K+96|0;H=K+32|0;I=K+16|0;J=K;r=K+192|0;y=K+176|0;i=K+160|0;B=K+296|0;C=K+288|0;j=c[d>>2]|0;w=c[j>>2]&3;k=j+-48|0;D=c[((w|0)==2?j:k)+40>>2]|0;t=F+16|0;w=(c[(c[((w|0)==3?j:j+48|0)+40>>2]|0)+16>>2]|0)+16|0;x=j+16|0;E=(c[x>>2]|0)+16|0;c[z>>2]=c[w>>2];c[z+4>>2]=c[w+4>>2];c[z+8>>2]=c[w+8>>2];c[z+12>>2]=c[w+12>>2];c[A>>2]=c[E>>2];c[A+4>>2]=c[E+4>>2];c[A+8>>2]=c[E+8>>2];c[A+12>>2]=c[E+12>>2];OM(r,z,A);c[F>>2]=c[r>>2];c[F+4>>2]=c[r+4>>2];c[F+8>>2]=c[r+8>>2];c[F+12>>2]=c[r+12>>2];c[t>>2]=c[r>>2];c[t+4>>2]=c[r+4>>2];c[t+8>>2]=c[r+8>>2];c[t+12>>2]=c[r+12>>2];c[I>>2]=c[r>>2];c[I+4>>2]=c[r+4>>2];c[I+8>>2]=c[r+8>>2];c[I+12>>2]=c[r+12>>2];r=F+32|0;E=F+48|0;w=(c[D+16>>2]|0)+16|0;x=(c[x>>2]|0)+56|0;c[z>>2]=c[w>>2];c[z+4>>2]=c[w+4>>2];c[z+8>>2]=c[w+8>>2];c[z+12>>2]=c[w+12>>2];c[A>>2]=c[x>>2];c[A+4>>2]=c[x+4>>2];c[A+8>>2]=c[x+8>>2];c[A+12>>2]=c[x+12>>2];OM(y,z,A);c[E>>2]=c[y>>2];c[E+4>>2]=c[y+4>>2];c[E+8>>2]=c[y+8>>2];c[E+12>>2]=c[y+12>>2];c[r>>2]=c[y>>2];c[r+4>>2]=c[y+4>>2];c[r+8>>2]=c[y+8>>2];c[r+12>>2]=c[y+12>>2];c[J>>2]=c[y>>2];c[J+4>>2]=c[y+4>>2];c[J+8>>2]=c[y+8>>2];c[J+12>>2]=c[y+12>>2];a:do if((e|0)!=1&(a[195236]|0)==0){m=+h[F>>3];n=+h[E>>3];L=m-n;o=+h[F+8>>3];p=+h[F+56>>3];s=o-p;q=s*s;if(L*L+q<1.0e-06){c[t>>2]=c[F>>2];c[t+4>>2]=c[F+4>>2];c[t+8>>2]=c[F+8>>2];c[t+12>>2]=c[F+12>>2];c[r>>2]=c[E>>2];c[r+4>>2]=c[E+4>>2];c[r+8>>2]=c[E+8>>2];c[r+12>>2]=c[E+12>>2];y=F+24|0;x=F+40|0;n=0.0;m=0.0}else{M=n-m;L=+G(+(M*M+q));w=c[(c[(c[b+60>>2]|0)+16>>2]|0)+248>>2]|0;N=+((S(w,e+-1|0)|0)/2|0|0);q=s*N/L;h[t>>3]=m+q;m=M*N/L;y=F+24|0;h[y>>3]=o+m;h[r>>3]=n+q;x=F+40|0;h[x>>3]=p+m;m=+(0-w|0);n=M*m/L;m=s*m/L}f=(f|0)==6;u=C+4|0;v=B+4|0;j=0;while(1){if((j|0)>=(e|0))break a;w=c[d+(j<<2)>>2]|0;k=w+-48|0;b:do if((c[((c[w>>2]&3|0)==2?w:k)+40>>2]|0)==(D|0)){c[I>>2]=c[F>>2];c[I+4>>2]=c[F+4>>2];c[I+8>>2]=c[F+8>>2];c[I+12>>2]=c[F+12>>2];c[J>>2]=c[E>>2];c[J+4>>2]=c[E+4>>2];c[J+8>>2]=c[E+8>>2];c[J+12>>2]=c[E+12>>2];i=0;while(1){if((i|0)==4)break b;O=H+(i<<4)|0;P=F+(i<<4)|0;c[O>>2]=c[P>>2];c[O+4>>2]=c[P+4>>2];c[O+8>>2]=c[P+8>>2];c[O+12>>2]=c[P+12>>2];i=i+1|0}}else{c[I>>2]=c[E>>2];c[I+4>>2]=c[E+4>>2];c[I+8>>2]=c[E+8>>2];c[I+12>>2]=c[E+12>>2];c[J>>2]=c[F>>2];c[J+4>>2]=c[F+4>>2];c[J+8>>2]=c[F+8>>2];c[J+12>>2]=c[F+12>>2];i=0;while(1){if((i|0)==4)break b;P=H+(3-i<<4)|0;O=F+(i<<4)|0;c[P>>2]=c[O>>2];c[P+4>>2]=c[O+4>>2];c[P+8>>2]=c[O+8>>2];c[P+12>>2]=c[O+12>>2];i=i+1|0}}while(0);if(f){c[u>>2]=4;c[C>>2]=z;i=0;while(1){if((i|0)==4)break;P=z+(i<<4)|0;O=H+(i<<4)|0;c[P>>2]=c[O>>2];c[P+4>>2]=c[O+4>>2];c[P+8>>2]=c[O+8>>2];c[P+12>>2]=c[O+12>>2];i=i+1|0}c[A>>2]=c[C>>2];c[A+4>>2]=c[C+4>>2];DY(A,B);bO(w,c[((c[w>>2]&3|0)==2?w:k)+40>>2]|0,c[B>>2]|0,c[v>>2]|0,g)}else bO(w,c[((c[w>>2]&3|0)==2?w:k)+40>>2]|0,H,4,g);c[z>>2]=c[I>>2];c[z+4>>2]=c[I+4>>2];c[z+8>>2]=c[I+8>>2];c[z+12>>2]=c[I+12>>2];c[A>>2]=c[J>>2];c[A+4>>2]=c[J+4>>2];c[A+8>>2]=c[J+8>>2];c[A+12>>2]=c[J+12>>2];wO(b,w,z,A);h[t>>3]=m+ +h[t>>3];h[y>>3]=n+ +h[y>>3];h[r>>3]=m+ +h[r>>3];h[x>>3]=n+ +h[x>>3];j=j+1|0}}else{if((f|0)==4){PM(i,b);c[A>>2]=c[i>>2];c[A+4>>2]=c[i+4>>2];c[A+8>>2]=c[i+8>>2];c[A+12>>2]=c[i+12>>2];QM(F,A)}bO(j,c[((c[j>>2]&3|0)==2?j:k)+40>>2]|0,F,4,g);c[z>>2]=c[I>>2];c[z+4>>2]=c[I+4>>2];c[z+8>>2]=c[I+8>>2];c[z+12>>2]=c[I+12>>2];c[A>>2]=c[J>>2];c[A+4>>2]=c[J+4>>2];c[A+8>>2]=c[J+8>>2];c[A+12>>2]=c[J+12>>2];wO(b,j,z,A)}while(0);l=K;return}function OM(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=+h[b+8>>3]+ +h[c+8>>3];h[a>>3]=+h[b>>3]+ +h[c>>3];h[a+8>>3]=d;return}function PM(a,b){a=a|0;b=b|0;b=c[b+16>>2]|0;h[23326]=(+h[b+16>>3]+ +h[b+32>>3])*.5;h[23327]=(+h[b+24>>3]+ +h[b+40>>3])*.5;c[a>>2]=c[46652];c[a+4>>2]=c[46653];c[a+8>>2]=c[46654];c[a+12>>2]=c[46655];return}function QM(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,f=0.0,g=0.0,i=0.0;g=+h[a>>3];d=+h[a+48>>3];i=(g+d)*.5;f=+h[a+8>>3];c=+h[a+56>>3];e=(f+c)*.5;g=d-g;f=c-f;f=+G(+(g*g+f*f))/5.0;g=+h[b>>3]-i;c=+h[b+8>>3]-e;d=+G(+(g*g+c*c));if(!(d==0.0)){g=i-f*(g/d);i=e-f*(c/d);h[a+32>>3]=g;h[a+16>>3]=g;h[a+40>>3]=i;h[a+24>>3]=i}return}function RM(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0,C=0,D=0,E=0,F=0,H=0,I=0,J=0.0,K=0.0,L=0.0;I=l;l=l+208|0;t=I+192|0;s=I+176|0;F=I+48|0;w=I+16|0;x=I;B=I+160|0;C=I+144|0;u=I+128|0;v=I+32|0;i=e&2130706432;D=(e&8|0)==0?((i|0)==0?4:i):8;if((D|0)==436207616)SM(a,b,d,f);else{H=HK((d<<6)+64|0)|0;E=d+-1|0;q=w+8|0;r=x+8|0;A=12.0;e=0;while(1){if((e|0)>=(d|0))break;g=b+(e<<4)|0;c[w>>2]=c[g>>2];c[w+4>>2]=c[g+4>>2];c[w+8>>2]=c[g+8>>2];c[w+12>>2]=c[g+12>>2];g=e+1|0;if((e|0)<(E|0)){p=b+(g<<4)|0;c[x>>2]=c[p>>2];c[x+4>>2]=c[p+4>>2];c[x+8>>2]=c[p+8>>2];c[x+12>>2]=c[p+12>>2]}else{c[x>>2]=c[b>>2];c[x+4>>2]=c[b+4>>2];c[x+8>>2]=c[b+8>>2];c[x+12>>2]=c[b+12>>2]}y=+h[x>>3]-+h[w>>3];z=+h[r>>3]-+h[q>>3];z=+G(+(y*y+z*z))/3.0;A=A<z?A:z;e=g}n=(i|16777216|0)==83886080;o=(D|0)==4;j=(i|0)==16777216;i=0;e=0;while(1){g=H+(i<<4)|0;k=H+(i+1<<4)|0;p=H+(i+2<<4)|0;if((e|0)>=(d|0))break;m=b+(e<<4)|0;c[w>>2]=c[m>>2];c[w+4>>2]=c[m+4>>2];c[w+8>>2]=c[m+8>>2];c[w+12>>2]=c[m+12>>2];m=e+1|0;if((e|0)<(E|0)){e=b+(m<<4)|0;c[x>>2]=c[e>>2];c[x+4>>2]=c[e+4>>2];c[x+8>>2]=c[e+8>>2];c[x+12>>2]=c[e+12>>2]}else{c[x>>2]=c[b>>2];c[x+4>>2]=c[b+4>>2];c[x+8>>2]=c[b+8>>2];c[x+12>>2]=c[b+12>>2]}z=+h[x>>3]-+h[w>>3];y=+h[r>>3]-+h[q>>3];y=A/+G(+(z*z+y*y));y=n?y/3.0:j?y*.5:y;z=y*.5;if(o){c[s>>2]=c[w>>2];c[s+4>>2]=c[w+4>>2];c[s+8>>2]=c[w+8>>2];c[s+12>>2]=c[w+12>>2];c[t>>2]=c[x>>2];c[t+4>>2]=c[x+4>>2];c[t+8>>2]=c[x+8>>2];c[t+12>>2]=c[x+12>>2];TM(B,z,s,t);c[g>>2]=c[B>>2];c[g+4>>2]=c[B+4>>2];c[g+8>>2]=c[B+8>>2];c[g+12>>2]=c[B+12>>2]}else{c[g>>2]=c[w>>2];c[g+4>>2]=c[w+4>>2];c[g+8>>2]=c[w+8>>2];c[g+12>>2]=c[w+12>>2]};c[s>>2]=c[w>>2];c[s+4>>2]=c[w+4>>2];c[s+8>>2]=c[w+8>>2];c[s+12>>2]=c[w+12>>2];c[t>>2]=c[x>>2];c[t+4>>2]=c[x+4>>2];c[t+8>>2]=c[x+8>>2];c[t+12>>2]=c[x+12>>2];TM(C,y,s,t);c[k>>2]=c[C>>2];c[k+4>>2]=c[C+4>>2];c[k+8>>2]=c[C+8>>2];c[k+12>>2]=c[C+12>>2];e=i+3|0;c[s>>2]=c[w>>2];c[s+4>>2]=c[w+4>>2];c[s+8>>2]=c[w+8>>2];c[s+12>>2]=c[w+12>>2];c[t>>2]=c[x>>2];c[t+4>>2]=c[x+4>>2];c[t+8>>2]=c[x+8>>2];c[t+12>>2]=c[x+12>>2];TM(u,1.0-y,s,t);c[p>>2]=c[u>>2];c[p+4>>2]=c[u+4>>2];c[p+8>>2]=c[u+8>>2];c[p+12>>2]=c[u+12>>2];if(!o){i=e;e=m;continue}e=H+(e<<4)|0;c[s>>2]=c[w>>2];c[s+4>>2]=c[w+4>>2];c[s+8>>2]=c[w+8>>2];c[s+12>>2]=c[w+12>>2];c[t>>2]=c[x>>2];c[t+4>>2]=c[x+4>>2];c[t+8>>2]=c[x+8>>2];c[t+12>>2]=c[x+12>>2];TM(v,1.0-z,s,t);c[e>>2]=c[v>>2];c[e+4>>2]=c[v+4>>2];c[e+8>>2]=c[v+8>>2];c[e+12>>2]=c[v+12>>2];i=i+4|0;e=m}c[g>>2]=c[H>>2];c[g+4>>2]=c[H+4>>2];c[g+8>>2]=c[H+8>>2];c[g+12>>2]=c[H+12>>2];v=H+16|0;c[k>>2]=c[v>>2];c[k+4>>2]=c[v+4>>2];c[k+8>>2]=c[v+8>>2];c[k+12>>2]=c[v+12>>2];x=H+32|0;c[p>>2]=c[x>>2];c[p+4>>2]=c[x+4>>2];c[p+8>>2]=c[x+8>>2];c[p+12>>2]=c[x+12>>2];g=d+4|0;t=d+3|0;i=d<<4;u=d+1|0;j=g<<4;k=(d|0)==4;w=d+2|0;m=d+12|0;n=w<<4;o=d+5|0;p=u<<4;q=t<<4;r=m<<4;s=o<<4;e=D&2147483647;a:do if((e|0)<201326592){if((e|0)>=83886080){if((e|0)<134217728){if((e|0)<100663296){switch(e|0){case 83886080:break;default:break a}if(k){d=HK(192)|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];p=d+16|0;t=b+16|0;c[p>>2]=c[t>>2];c[p+4>>2]=c[t+4>>2];c[p+8>>2]=c[t+8>>2];c[p+12>>2]=c[t+12>>2];p=H+48|0;L=+h[p>>3];t=H+64|0;L=L+(+h[t>>3]-L);o=d+32|0;h[o>>3]=L;q=H+56|0;z=+h[q>>3];r=H+72|0;z=z+(+h[r>>3]-z);C=d+40|0;h[C>>3]=z;A=L+(+h[p>>3]-+h[x>>3]);u=d+48|0;h[u>>3]=A;K=z+(+h[q>>3]-+h[H+40>>3]);x=d+56|0;h[x>>3]=K;y=A+(+h[t>>3]-+h[p>>3]);p=d+64|0;h[p>>3]=y;J=K+(+h[r>>3]-+h[q>>3]);q=d+72|0;h[q>>3]=J;r=d+80|0;h[r>>3]=y+(L-A);h[d+88>>3]=J+(z-K);t=H+96|0;K=+h[t>>3];v=H+80|0;K=K+(+h[v>>3]-K);E=d+144|0;h[E>>3]=K;w=H+104|0;z=+h[w>>3];s=H+88|0;z=z+(+h[s>>3]-z);h[d+152>>3]=z;J=K+(+h[t>>3]-+h[H+112>>3]);B=d+128|0;h[B>>3]=J;A=z+(+h[w>>3]-+h[H+120>>3]);D=d+136|0;h[D>>3]=A;L=J+(+h[v>>3]-+h[t>>3]);t=d+112|0;h[t>>3]=L;y=A+(+h[s>>3]-+h[w>>3]);w=d+120|0;h[w>>3]=y;s=d+96|0;h[s>>3]=L+(K-J);v=d+104|0;h[v>>3]=y+(z-A);n=d+160|0;m=b+32|0;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];c[n+8>>2]=c[m+8>>2];c[n+12>>2]=c[m+12>>2];n=d+176|0;b=b+48|0;c[n>>2]=c[b>>2];c[n+4>>2]=c[b+4>>2];c[n+8>>2]=c[b+8>>2];c[n+12>>2]=c[b+12>>2];lS(a,d,12,f);c[F>>2]=c[o>>2];c[F+4>>2]=c[o+4>>2];c[F+8>>2]=c[o+8>>2];c[F+12>>2]=c[o+12>>2];A=+h[o>>3];z=+h[u>>3];A=A-(z-A);u=F+16|0;h[u>>3]=A;y=+h[C>>3];J=+h[x>>3];y=y-(J-y);x=F+24|0;h[x>>3]=y;C=F+32|0;h[C>>3]=A+(+h[p>>3]-z);b=F+40|0;h[b>>3]=y+(+h[q>>3]-J);f=F+48|0;c[f>>2]=c[r>>2];c[f+4>>2]=c[r+4>>2];c[f+8>>2]=c[r+8>>2];c[f+12>>2]=c[r+12>>2];oS(a,F,4);c[F>>2]=c[s>>2];c[F+4>>2]=c[s+4>>2];c[F+8>>2]=c[s+8>>2];c[F+12>>2]=c[s+12>>2];J=+h[s>>3];y=+h[t>>3];J=J-(y-J);h[u>>3]=J;z=+h[v>>3];A=+h[w>>3];z=z-(A-z);h[x>>3]=z;h[C>>3]=J+(+h[B>>3]-y);h[b>>3]=z+(+h[D>>3]-A);c[f>>2]=c[E>>2];c[f+4>>2]=c[E+4>>2];c[f+8>>2]=c[E+8>>2];c[f+12>>2]=c[E+12>>2];oS(a,F,4);l6(d);break}else Aa(105739,105750,737,105759)}if((e|0)<117440512){switch(e|0){case 100663296:break;default:break a}d=HK(s)|0;C=b+16|0;L=+h[C>>3];J=+h[b>>3]-L;J=J*.125+(L+J*.5);h[d>>3]=J;D=b+40|0;L=+h[D>>3];E=b+24|0;v=H+48|0;w=H+56|0;B=H+72|0;L=L+(+h[E>>3]-L)*.5+(+h[w>>3]-+h[B>>3])*3.0*.5;h[d+8>>3]=L;A=+h[C>>3];K=+h[b>>3]-A;K=A+K*.5-K*.25;h[d+16>>3]=K;h[d+24>>3]=L;h[d+32>>3]=K;A=+h[D>>3];h[d+40>>3]=A+(+h[E>>3]-A)*.5;K=K+(+h[x>>3]-+h[v>>3])*.5;h[d+48>>3]=K;A=+h[D>>3];h[d+56>>3]=A+(+h[E>>3]-A)*.5;h[d+64>>3]=K;K=+h[D>>3];K=K+(+h[E>>3]-K)*.5+(+h[w>>3]-+h[B>>3]);h[d+72>>3]=K;h[d+80>>3]=J;h[d+88>>3]=K;h[d+96>>3]=J;K=K-(+h[w>>3]-+h[B>>3])*.25;h[d+104>>3]=K;h[d+112>>3]=J+(+h[x>>3]-+h[v>>3]);h[d+120>>3]=K+(+h[w>>3]-+h[B>>3])*.5;h[d+128>>3]=+h[d>>3];h[d+136>>3]=L+(+h[w>>3]-+h[B>>3])*.25;lS(a,d,o,f);h[F>>3]=+h[C>>3];L=+h[D>>3];h[F+8>>3]=L+(+h[E>>3]-L)*.5;h[F+16>>3]=+h[b>>3];h[F+24>>3]=L+(+h[b+8>>3]-+h[b+56>>3])*.5;oS(a,F,2);l6(d);break}else{switch(e|0){case 117440512:break;default:break a}d=HK(p)|0;h[d>>3]=+h[v>>3];E=H+56|0;F=H+72|0;h[d+8>>3]=+h[H+24>>3]-(+h[E>>3]-+h[F>>3])*.5;h[d+16>>3]=+h[H+48>>3];L=+h[E>>3];h[d+24>>3]=L-(L-+h[F>>3])*.5;h[d+32>>3]=+h[b+32>>3];D=b+40|0;h[d+40>>3]=+h[D>>3]+(+h[E>>3]-+h[F>>3])*.5;h[d+48>>3]=+h[v>>3];h[d+56>>3]=+h[D>>3]+(+h[E>>3]-+h[F>>3])*.5;L=+h[b+8>>3];h[d+72>>3]=L-(L-+h[b+56>>3])*.5;h[d+64>>3]=+h[b>>3];lS(a,d,u,f);l6(d);break}}if((e|0)<167772160)if((e|0)<150994944){switch(e|0){case 134217728:break;default:break a}d=HK(j)|0;C=b+16|0;A=+h[C>>3];B=H+48|0;A=A+(+h[b>>3]-A)*.5+(+h[x>>3]-+h[B>>3])*.25;h[d>>3]=A;D=b+40|0;L=+h[D>>3];E=b+24|0;L=L+(+h[E>>3]-L)*.5;h[d+8>>3]=L;h[d+16>>3]=A;v=H+56|0;w=H+72|0;J=L+(+h[v>>3]-+h[w>>3])*.5;h[d+24>>3]=J;A=A+(+h[x>>3]-+h[B>>3])*.5;h[d+32>>3]=A;h[d+40>>3]=J;h[d+48>>3]=A;A=J+(+h[v>>3]-+h[w>>3])*.5;h[d+56>>3]=A;K=+h[C>>3];K=K+(+h[b>>3]-K)*.5-(+h[x>>3]-+h[B>>3])*3.0*.25;h[d+64>>3]=K;h[d+72>>3]=A;h[d+80>>3]=K;h[d+88>>3]=J;K=+h[C>>3];K=K+(+h[b>>3]-K)*.5-(+h[x>>3]-+h[B>>3])*.25;h[d+96>>3]=K;h[d+104>>3]=J;h[d+112>>3]=K;h[d+120>>3]=L;lS(a,d,g,f);h[F>>3]=+h[C>>3];L=+h[D>>3];h[F+8>>3]=L+(+h[E>>3]-L)*.5;h[F+16>>3]=+h[b>>3];h[F+24>>3]=L+(+h[b+8>>3]-+h[b+56>>3])*.5;oS(a,F,2);l6(d);break}else{switch(e|0){case 150994944:break;default:break a}d=HK(n)|0;C=b+16|0;J=+h[C>>3];B=H+48|0;J=J+(+h[b>>3]-J)*.5+(+h[x>>3]-+h[B>>3])*3.0*.25;h[d>>3]=J;D=b+40|0;L=+h[D>>3];E=b+24|0;L=L+(+h[E>>3]-L)*.5;h[d+8>>3]=L;h[d+16>>3]=J;u=H+56|0;v=H+72|0;J=L+(+h[u>>3]-+h[v>>3])*.25;h[d+24>>3]=J;K=+h[C>>3];h[d+32>>3]=K+(+h[b>>3]-K)*.5+(+h[x>>3]-+h[B>>3])*.25;K=J+(+h[u>>3]-+h[v>>3])*.5;h[d+40>>3]=K;A=+h[C>>3];h[d+48>>3]=A+(+h[b>>3]-A)*.5-(+h[x>>3]-+h[B>>3])*.25;h[d+56>>3]=K;K=+h[C>>3];K=K+(+h[b>>3]-K)*.5-(+h[x>>3]-+h[B>>3])*3.0*.25;h[d+64>>3]=K;h[d+72>>3]=J;h[d+80>>3]=K;h[d+88>>3]=L;lS(a,d,w,f);h[F>>3]=+h[C>>3];L=+h[D>>3];h[F+8>>3]=L+(+h[E>>3]-L)*.5;h[F+16>>3]=+h[b>>3];h[F+24>>3]=L+(+h[b+8>>3]-+h[b+56>>3])*.5;oS(a,F,2);l6(d);break}else if((e|0)<184549376){switch(e|0){case 167772160:break;default:break a}d=HK(p)|0;C=b+16|0;J=+h[C>>3];v=H+48|0;J=J+(+h[b>>3]-J)*.5+(+h[x>>3]-+h[v>>3]);h[d>>3]=J;D=b+40|0;L=+h[D>>3];E=b+24|0;w=H+56|0;B=H+72|0;L=L+(+h[E>>3]-L)*.5+(+h[w>>3]-+h[B>>3])*.25;h[d+8>>3]=L;J=J-(+h[x>>3]-+h[v>>3]);h[d+16>>3]=J;h[d+24>>3]=L+(+h[w>>3]-+h[B>>3]);h[d+32>>3]=J;J=L+(+h[w>>3]-+h[B>>3])*.5;h[d+40>>3]=J;A=+h[C>>3];K=+h[b>>3]-A;K=A+K*.5-K*.25;h[d+48>>3]=K;h[d+56>>3]=J;h[d+64>>3]=K;h[d+72>>3]=L;lS(a,d,u,f);h[F>>3]=+h[C>>3];L=+h[D>>3];h[F+8>>3]=L+(+h[E>>3]-L)*.5;h[F+16>>3]=+h[b>>3];h[F+24>>3]=L+(+h[b+8>>3]-+h[b+56>>3])*.5;oS(a,F,2);l6(d);break}else{switch(e|0){case 184549376:break;default:break a}d=HK(j)|0;B=b+16|0;J=+h[B>>3];K=+h[b>>3]-J;u=H+48|0;K=K*.125+(J+K*.5)+(+h[x>>3]-+h[u>>3])*.5;h[d>>3]=K;v=b+40|0;J=+h[v>>3];w=b+24|0;E=H+56|0;C=H+72|0;J=J+(+h[w>>3]-J)*.5+(+h[E>>3]-+h[C>>3])*.25;h[d+8>>3]=J;A=+h[B>>3];L=+h[b>>3]-A;L=A+L*.5-L*.125;h[d+16>>3]=L;h[d+24>>3]=J;h[d+32>>3]=L;J=J+(+h[E>>3]-+h[C>>3])*.5;h[d+40>>3]=J;L=L-(+h[x>>3]-+h[u>>3])*.5;h[d+48>>3]=L;h[d+56>>3]=J;D=d+64|0;h[D>>3]=L;L=+h[v>>3];L=L+(+h[w>>3]-L)*.5-(+h[E>>3]-+h[C>>3])*.25;h[d+72>>3]=L;J=K-(+h[x>>3]-+h[u>>3])*.5;h[d+80>>3]=J;h[d+88>>3]=L;h[d+96>>3]=J;L=L-(+h[E>>3]-+h[C>>3])*.5;h[d+104>>3]=L;x=d+112|0;h[x>>3]=K;h[d+120>>3]=L;lS(a,d,g,f);h[F>>3]=+h[B>>3];L=+h[v>>3];B=F+8|0;h[B>>3]=L+(+h[w>>3]-L)*.5;C=F+16|0;h[C>>3]=+h[D>>3];D=b+8|0;E=b+56|0;f=F+24|0;h[f>>3]=L+(+h[D>>3]-+h[E>>3])*.5;oS(a,F,2);h[F>>3]=+h[x>>3];L=+h[v>>3];h[B>>3]=L+(+h[w>>3]-L)*.5;h[C>>3]=+h[b>>3];h[f>>3]=L+(+h[D>>3]-+h[E>>3])*.5;oS(a,F,2);l6(d);break}}if((e|0)<33554432){if((e|0)<8){switch(e|0){case 4:break;default:break a}i=IK((d*96|0)+32|0)|0;e=0;g=0;while(1){j=g|1;k=i+(g<<4)|0;m=i+(j<<4)|0;if((e|0)>=(d|0))break;b=e<<2;E=H+(b<<4)|0;c[k>>2]=c[E>>2];c[k+4>>2]=c[E+4>>2];c[k+8>>2]=c[E+8>>2];c[k+12>>2]=c[E+12>>2];E=H+((b|1)<<4)|0;c[m>>2]=c[E>>2];c[m+4>>2]=c[E+4>>2];c[m+8>>2]=c[E+8>>2];c[m+12>>2]=c[E+12>>2];F=i+(g+2<<4)|0;c[F>>2]=c[E>>2];c[F+4>>2]=c[E+4>>2];c[F+8>>2]=c[E+8>>2];c[F+12>>2]=c[E+12>>2];F=i+(g+3<<4)|0;E=H+((b|2)<<4)|0;c[F>>2]=c[E>>2];c[F+4>>2]=c[E+4>>2];c[F+8>>2]=c[E+8>>2];c[F+12>>2]=c[E+12>>2];F=i+(g+4<<4)|0;c[F>>2]=c[E>>2];c[F+4>>2]=c[E+4>>2];c[F+8>>2]=c[E+8>>2];c[F+12>>2]=c[E+12>>2];F=i+(g+5<<4)|0;b=H+((b|3)<<4)|0;c[F>>2]=c[b>>2];c[F+4>>2]=c[b+4>>2];c[F+8>>2]=c[b+8>>2];c[F+12>>2]=c[b+12>>2];e=e+1|0;g=g+6|0}c[k>>2]=c[i>>2];c[k+4>>2]=c[i+4>>2];c[k+8>>2]=c[i+8>>2];c[k+12>>2]=c[i+12>>2];d=i+16|0;c[m>>2]=c[d>>2];c[m+4>>2]=c[d+4>>2];c[m+8>>2]=c[d+8>>2];c[m+12>>2]=c[d+12>>2];nS(a,d,j,0,0,f&255);l6(i);break}if((e|0)<16777216){switch(e|0){case 8:break;default:break a}lS(a,b,d,f);g=F+16|0;e=0;while(1){if((e|0)>=(d|0))break a;f=e*3|0;b=H+(f+2<<4)|0;c[F>>2]=c[b>>2];c[F+4>>2]=c[b+4>>2];c[F+8>>2]=c[b+8>>2];c[F+12>>2]=c[b+12>>2];f=H+(f+4<<4)|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];c[g+8>>2]=c[f+8>>2];c[g+12>>2]=c[f+12>>2];oS(a,F,2);e=e+1|0}}switch(e|0){case 16777216:break;default:break a}g=HK(p)|0;e=1;while(1){if((e|0)>=(d|0))break;D=g+(e<<4)|0;C=b+(e<<4)|0;c[D>>2]=c[C>>2];c[D+4>>2]=c[C+4>>2];c[D+8>>2]=c[C+8>>2];c[D+12>>2]=c[C+12>>2];e=e+1|0}b=E*3|0;E=H+(b+4<<4)|0;c[g>>2]=c[E>>2];c[g+4>>2]=c[E+4>>2];c[g+8>>2]=c[E+8>>2];c[g+12>>2]=c[E+12>>2];D=g+(d<<4)|0;d=H+(b+2<<4)|0;c[D>>2]=c[d>>2];c[D+4>>2]=c[d+4>>2];c[D+8>>2]=c[d+8>>2];c[D+12>>2]=c[d+12>>2];lS(a,g,u,f);l6(g);c[F>>2]=c[d>>2];c[F+4>>2]=c[d+4>>2];c[F+8>>2]=c[d+8>>2];c[F+12>>2]=c[d+12>>2];f=F+16|0;c[f>>2]=c[E>>2];c[f+4>>2]=c[E+4>>2];c[f+8>>2]=c[E+8>>2];c[f+12>>2]=c[E+12>>2];b=b+3|0;d=F+32|0;h[d>>3]=+h[f>>3]+(+h[F>>3]-+h[H+(b<<4)>>3]);h[F+40>>3]=+h[F+24>>3]+(+h[F+8>>3]-+h[H+(b<<4)+8>>3]);oS(a,f,2);c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];oS(a,F,2);break}else{if((e|0)<50331648){switch(e|0){case 33554432:break;default:break a}g=HK(n)|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];i=g+16|0;c[i>>2]=c[x>>2];c[i+4>>2]=c[x+4>>2];c[i+8>>2]=c[x+8>>2];c[i+12>>2]=c[x+12>>2];i=H+48|0;E=H+64|0;h[g+32>>3]=+h[x>>3]+(+h[i>>3]-+h[E>>3])/3.0;d=H+56|0;e=H+72|0;h[g+40>>3]=+h[H+40>>3]+(+h[d>>3]-+h[e>>3])/3.0;L=+h[i>>3];h[g+48>>3]=L+(L-+h[E>>3])/3.0;L=+h[d>>3];h[g+56>>3]=L+(L-+h[e>>3])/3.0;e=4;while(1){if((e|0)>=(w|0))break;d=g+(e<<4)|0;E=b+(e+-2<<4)|0;c[d>>2]=c[E>>2];c[d+4>>2]=c[E+4>>2];c[d+8>>2]=c[E+8>>2];c[d+12>>2]=c[E+12>>2];e=e+1|0}lS(a,g,w,f);l6(g);c[F>>2]=c[i>>2];c[F+4>>2]=c[i+4>>2];c[F+8>>2]=c[i+8>>2];c[F+12>>2]=c[i+12>>2];f=F+16|0;c[f>>2]=c[x>>2];c[f+4>>2]=c[x+4>>2];c[f+8>>2]=c[x+8>>2];c[f+12>>2]=c[x+12>>2];oS(a,F,2);break}if((e|0)>=67108864){switch(e|0){case 67108864:break;default:break a}if(k){D=HK(n)|0;c[D>>2]=c[b>>2];c[D+4>>2]=c[b+4>>2];c[D+8>>2]=c[b+8>>2];c[D+12>>2]=c[b+12>>2];d=D+16|0;c[d>>2]=c[x>>2];c[d+4>>2]=c[x+4>>2];c[d+8>>2]=c[x+8>>2];c[d+12>>2]=c[x+12>>2];d=D+32|0;E=H+64|0;c[d>>2]=c[E>>2];c[d+4>>2]=c[E+4>>2];c[d+8>>2]=c[E+8>>2];c[d+12>>2]=c[E+12>>2];d=D+48|0;b=b+32|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];b=D+64|0;d=H+128|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];b=D+80|0;C=H+160|0;c[b>>2]=c[C>>2];c[b+4>>2]=c[C+4>>2];c[b+8>>2]=c[C+8>>2];c[b+12>>2]=c[C+12>>2];lS(a,D,w,f);l6(D);h[F>>3]=+h[v>>3]+(+h[H+176>>3]-+h[H>>3]);h[F+8>>3]=+h[H+24>>3]+(+h[H+184>>3]-+h[H+8>>3]);f=F+16|0;c[f>>2]=c[E>>2];c[f+4>>2]=c[E+4>>2];c[f+8>>2]=c[E+8>>2];c[f+12>>2]=c[E+12>>2];oS(a,F,2);c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];oS(a,F,2);c[f>>2]=c[H>>2];c[f+4>>2]=c[H+4>>2];c[f+8>>2]=c[H+8>>2];c[f+12>>2]=c[H+12>>2];oS(a,F,2);break}else Aa(105739,105750,714,105759)}switch(e|0){case 50331648:break;default:break a}g=HK(q)|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];L=+h[b>>3];h[g+16>>3]=L-(L-+h[v>>3])*.25;e=H+56|0;L=+h[b+8>>3]+(+h[e>>3]-+h[H+72>>3])/3.0;h[g+24>>3]=L;K=+h[b>>3];h[g+32>>3]=K-(K-+h[v>>3])*2.0;h[g+40>>3]=L;L=+h[b>>3];h[g+48>>3]=L-(L-+h[v>>3])*2.25;h[g+56>>3]=+h[e>>3];h[g+64>>3]=+h[H+48>>3];h[g+72>>3]=+h[e>>3];e=4;while(1){if((e|0)>=(t|0))break;d=g+(e<<4)|0;F=b+(e+-3<<4)|0;c[d>>2]=c[F>>2];c[d+4>>2]=c[F+4>>2];c[d+8>>2]=c[F+8>>2];c[d+12>>2]=c[F+12>>2];e=e+1|0}lS(a,g,t,f);l6(g);break}}else if((e|0)<318767104){if((e|0)<251658240){if((e|0)<218103808){switch(e|0){case 201326592:break;default:break a}E=HK(i)|0;u=b+16|0;L=+h[u>>3];h[E>>3]=L;C=b+40|0;K=+h[C>>3];D=b+24|0;B=H+48|0;v=H+56|0;w=H+72|0;K=K+(+h[D>>3]-K)*.5+(+h[v>>3]-+h[w>>3])*.125;h[E+8>>3]=K;J=L+(+h[x>>3]-+h[B>>3])*2.0;h[E+16>>3]=J;h[E+24>>3]=K;h[E+32>>3]=J;K=K+(+h[v>>3]-+h[w>>3])*.5;h[E+40>>3]=K;h[E+48>>3]=L;h[E+56>>3]=K;lS(a,E,d,f);l6(E);E=HK(i)|0;K=+h[u>>3]+(+h[x>>3]-+h[B>>3]);h[E>>3]=K;L=+h[C>>3];L=L+(+h[D>>3]-L)*.5-(+h[v>>3]-+h[w>>3])*5.0*.125;h[E+8>>3]=L;J=K+(+h[x>>3]-+h[B>>3]);B=E+16|0;h[B>>3]=J;h[E+24>>3]=L;h[E+32>>3]=J;L=L+(+h[v>>3]-+h[w>>3])*.5;h[E+40>>3]=L;h[E+48>>3]=K;h[E+56>>3]=L;lS(a,E,d,f);h[F>>3]=+h[B>>3];L=+h[C>>3];h[F+8>>3]=L+(+h[D>>3]-L)*.5;h[F+16>>3]=+h[b>>3];h[F+24>>3]=L+(+h[b+8>>3]-+h[b+56>>3])*.5;oS(a,F,2);l6(E);break}if((e|0)<234881024){switch(e|0){case 218103808:break;default:break a}E=HK(i)|0;L=+h[b>>3];h[E>>3]=L;B=b+40|0;K=+h[B>>3];C=b+24|0;w=H+56|0;D=H+72|0;K=K+(+h[C>>3]-K)*.5+(+h[w>>3]-+h[D>>3])*.125;h[E+8>>3]=K;h[E+16>>3]=L;J=K+(+h[w>>3]-+h[D>>3])*.5;h[E+24>>3]=J;L=L-(+h[w>>3]-+h[D>>3])*2.0;h[E+32>>3]=L;h[E+40>>3]=J;h[E+48>>3]=L;h[E+56>>3]=K;lS(a,E,d,f);l6(E);E=HK(i)|0;K=+h[b>>3]-(+h[x>>3]-+h[H+48>>3]);h[E>>3]=K;L=+h[B>>3];L=L+(+h[C>>3]-L)*.5-(+h[w>>3]-+h[D>>3])*5.0*.125;h[E+8>>3]=L;h[E+16>>3]=K;J=L+(+h[w>>3]-+h[D>>3])*.5;h[E+24>>3]=J;K=K-(+h[w>>3]-+h[D>>3]);h[E+32>>3]=K;h[E+40>>3]=J;D=E+48|0;h[D>>3]=K;h[E+56>>3]=L;lS(a,E,d,f);h[F>>3]=+h[b+16>>3];L=+h[B>>3];h[F+8>>3]=L+(+h[C>>3]-L)*.5;h[F+16>>3]=+h[D>>3];h[F+24>>3]=L+(+h[b+8>>3]-+h[b+56>>3])*.5;oS(a,F,2);l6(E);break}else{switch(e|0){case 234881024:break;default:break a}E=HK(i)|0;t=b+16|0;K=+h[t>>3];u=H+48|0;K=K+(+h[b>>3]-K)*.5-(+h[x>>3]-+h[u>>3])*9.0*.125;h[E>>3]=K;v=b+40|0;L=+h[v>>3];w=b+24|0;D=H+56|0;C=H+72|0;L=L+(+h[w>>3]-L)*.5+(+h[D>>3]-+h[C>>3])*.125;h[E+8>>3]=L;J=K+(+h[x>>3]-+h[u>>3]);h[E+16>>3]=J;h[E+24>>3]=L;h[E+32>>3]=J;L=L+(+h[D>>3]-+h[C>>3])*.5;h[E+40>>3]=L;h[E+48>>3]=K;h[E+56>>3]=L;lS(a,E,d,f);l6(E);E=HK(i)|0;L=+h[t>>3];L=L+(+h[b>>3]-L)*.5-(+h[x>>3]-+h[u>>3])*9.0*.125;h[E>>3]=L;K=+h[v>>3];K=K+(+h[w>>3]-K)*.5-(+h[D>>3]-+h[C>>3])*5.0*.125;h[E+8>>3]=K;J=L+(+h[x>>3]-+h[u>>3]);h[E+16>>3]=J;h[E+24>>3]=K;h[E+32>>3]=J;K=K+(+h[D>>3]-+h[C>>3])*.5;h[E+40>>3]=K;h[E+48>>3]=L;h[E+56>>3]=K;lS(a,E,d,f);l6(E);E=HK(i)|0;K=+h[t>>3];K=K+(+h[b>>3]-K)*.5+(+h[x>>3]-+h[u>>3])*.125;h[E>>3]=K;L=+h[v>>3];L=L+(+h[w>>3]-L)*.5-(+h[D>>3]-+h[C>>3])*5.0*.125;h[E+8>>3]=L;J=K+(+h[x>>3]-+h[u>>3]);h[E+16>>3]=J;h[E+24>>3]=L;h[E+32>>3]=J;L=L+(+h[D>>3]-+h[C>>3])*.5;h[E+40>>3]=L;h[E+48>>3]=K;h[E+56>>3]=L;lS(a,E,d,f);l6(E);E=HK(i)|0;L=+h[t>>3];L=L+(+h[b>>3]-L)*.5+(+h[x>>3]-+h[u>>3])*.125;h[E>>3]=L;K=+h[v>>3];K=K+(+h[w>>3]-K)*.5+(+h[D>>3]-+h[C>>3])*.125;h[E+8>>3]=K;J=L+(+h[x>>3]-+h[u>>3]);B=E+16|0;h[B>>3]=J;h[E+24>>3]=K;h[E+32>>3]=J;K=K+(+h[D>>3]-+h[C>>3])*.5;h[E+40>>3]=K;h[E+48>>3]=L;h[E+56>>3]=K;lS(a,E,d,f);h[F>>3]=+h[B>>3];K=+h[v>>3];B=F+8|0;h[B>>3]=K+(+h[w>>3]-K)*.5;C=F+16|0;h[C>>3]=+h[b>>3];D=b+8|0;d=b+56|0;f=F+24|0;h[f>>3]=K+(+h[D>>3]-+h[d>>3])*.5;oS(a,F,2);K=+h[t>>3];h[F>>3]=K+(+h[b>>3]-K)*.5-(+h[x>>3]-+h[u>>3])*9.0*.125;L=+h[v>>3];h[B>>3]=L+(+h[w>>3]-L)*.5;h[C>>3]=K;h[f>>3]=L+(+h[D>>3]-+h[d>>3])*.5;oS(a,F,2);l6(E);break}}if((e|0)<285212672)if((e|0)<268435456){switch(e|0){case 251658240:break;default:break a}E=HK(i)|0;u=b+16|0;L=+h[u>>3];B=H+48|0;L=L+(+h[b>>3]-L)*.5-(+h[x>>3]-+h[B>>3]);h[E>>3]=L;v=b+40|0;K=+h[v>>3];w=b+24|0;D=H+56|0;C=H+72|0;K=K+(+h[w>>3]-K)*.5+(+h[D>>3]-+h[C>>3])*.125;h[E+8>>3]=K;J=L+(+h[x>>3]-+h[B>>3])*2.0;h[E+16>>3]=J;h[E+24>>3]=K;h[E+32>>3]=J;K=K+(+h[D>>3]-+h[C>>3])*.5;h[E+40>>3]=K;h[E+48>>3]=L;h[E+56>>3]=K;lS(a,E,d,f);l6(E);E=HK(i)|0;K=+h[u>>3];K=K+(+h[b>>3]-K)*.5-(+h[x>>3]-+h[B>>3]);h[E>>3]=K;L=+h[v>>3];L=L+(+h[w>>3]-L)*.5-(+h[D>>3]-+h[C>>3])*5.0*.125;h[E+8>>3]=L;J=K+(+h[x>>3]-+h[B>>3])*2.0;B=E+16|0;h[B>>3]=J;h[E+24>>3]=L;h[E+32>>3]=J;L=L+(+h[D>>3]-+h[C>>3])*.5;h[E+40>>3]=L;h[E+48>>3]=K;h[E+56>>3]=L;lS(a,E,d,f);h[F>>3]=+h[B>>3];L=+h[v>>3];B=F+8|0;h[B>>3]=L+(+h[w>>3]-L)*.5;C=F+16|0;h[C>>3]=+h[b>>3];D=b+8|0;d=b+56|0;f=F+24|0;h[f>>3]=L+(+h[D>>3]-+h[d>>3])*.5;oS(a,F,2);h[F>>3]=+h[u>>3];L=+h[v>>3];h[B>>3]=L+(+h[w>>3]-L)*.5;h[C>>3]=+h[E>>3];h[f>>3]=L+(+h[D>>3]-+h[d>>3])*.5;oS(a,F,2);l6(E);break}else{switch(e|0){case 268435456:break;default:break a}E=HK(i)|0;h[E>>3]=+h[b>>3];u=H+48|0;B=H+56|0;C=H+72|0;h[E+8>>3]=+h[H+24>>3]-(+h[B>>3]-+h[C>>3])*.5;h[E+16>>3]=+h[u>>3];L=+h[B>>3];h[E+24>>3]=L-(L-+h[C>>3])*.5;h[E+32>>3]=+h[b+32>>3];w=b+40|0;h[E+40>>3]=+h[w>>3]+(+h[B>>3]-+h[C>>3])*.5;h[E+48>>3]=+h[b>>3];h[E+56>>3]=+h[w>>3]+(+h[B>>3]-+h[C>>3])*.5;lS(a,E,d,f);v=b+16|0;L=(+h[x>>3]-+h[u>>3])*.25;K=+h[v>>3]+L;h[F>>3]=K;A=+h[w>>3];t=b+24|0;J=+h[B>>3]-+h[C>>3];A=A+(+h[t>>3]-A)*.5+J*.125;D=F+8|0;h[D>>3]=A;d=F+16|0;h[d>>3]=K+L;f=F+24|0;h[f>>3]=A-J*.25;oS(a,F,2);J=(+h[x>>3]-+h[u>>3])*.25;A=+h[v>>3]+J;h[F>>3]=A;L=+h[w>>3];K=+h[B>>3]-+h[C>>3];L=L+(+h[t>>3]-L)*.5-K*.125;h[D>>3]=L;h[d>>3]=A+J;h[f>>3]=L+K*.25;oS(a,F,2);K=(+h[x>>3]-+h[u>>3])*.25;h[F>>3]=+h[v>>3]+K;L=+h[w>>3]+(+h[B>>3]-+h[C>>3])*3.0*.25;h[D>>3]=L;h[d>>3]=+h[b>>3]-K;h[f>>3]=L;oS(a,F,2);l6(E);break}else if((e|0)<301989888){switch(e|0){case 285212672:break;default:break a}B=HK(i)|0;u=b+16|0;z=+h[u>>3];C=H+48|0;z=z+(+h[b>>3]-z)*.5+(+h[x>>3]-+h[C>>3])*.5;h[B>>3]=z;v=b+40|0;A=+h[v>>3];w=b+24|0;A=A+(+h[w>>3]-A)*.5+(+h[x>>3]-+h[C>>3])*.5;h[B+8>>3]=A;h[B+16>>3]=z;z=+h[v>>3];L=(+h[x>>3]-+h[C>>3])*.5;z=z+(+h[w>>3]-z)*.5-L;h[B+24>>3]=z;J=+h[u>>3];L=J+(+h[b>>3]-J)*.5-L;h[B+32>>3]=L;h[B+40>>3]=z;h[B+48>>3]=L;h[B+56>>3]=A;lS(a,B,d,f);l6(B);A=+h[u>>3];A=A+(+h[b>>3]-A)*.5;L=(+h[x>>3]-+h[C>>3])*3.0*.25;z=A+L;h[F>>3]=z;J=+h[v>>3];J=J+(+h[w>>3]-J)*.5;K=J+L;B=F+8|0;h[B>>3]=K;D=F+16|0;h[D>>3]=z;J=J-L;f=F+24|0;h[f>>3]=J;L=A-L;h[F+32>>3]=L;h[F+40>>3]=J;h[F+48>>3]=L;h[F+56>>3]=K;E=F+64|0;c[E>>2]=c[F>>2];c[E+4>>2]=c[F+4>>2];c[E+8>>2]=c[F+8>>2];c[E+12>>2]=c[F+12>>2];oS(a,F,5);K=+h[u>>3];L=+h[b>>3];h[F>>3]=K+(L-K)*.5+(+h[x>>3]-+h[C>>3])*3.0*.25;K=+h[v>>3];h[B>>3]=K+(+h[w>>3]-K)*.5;h[D>>3]=L;E=b+8|0;d=b+56|0;h[f>>3]=K+(+h[E>>3]-+h[d>>3])*.5;oS(a,F,2);K=+h[u>>3];h[F>>3]=K;L=+h[v>>3];h[B>>3]=L+(+h[w>>3]-L)*.5;h[D>>3]=K+(+h[b>>3]-K)*.5-(+h[x>>3]-+h[C>>3])*3.0*.25;h[f>>3]=L+(+h[E>>3]-+h[d>>3])*.5;oS(a,F,2);break}else{switch(e|0){case 301989888:break;default:break a}d=HK(r)|0;w=b+16|0;y=+h[w>>3];s=H+48|0;y=y+(+h[b>>3]-y)*.5+(+h[x>>3]-+h[s>>3])*.25;h[d>>3]=y;B=b+40|0;A=+h[B>>3];C=b+24|0;u=H+56|0;v=H+72|0;A=A+(+h[C>>3]-A)*.5+(+h[u>>3]-+h[v>>3])*.5;t=d+8|0;h[t>>3]=A;h[d+16>>3]=y;A=A+(+h[u>>3]-+h[v>>3])*.125;E=d+24|0;h[E>>3]=A;J=y-(+h[x>>3]-+h[s>>3])*.125;D=d+32|0;h[D>>3]=J;z=A+(+h[u>>3]-+h[v>>3])*.125;h[d+40>>3]=z;h[d+48>>3]=y;L=z+(+h[u>>3]-+h[v>>3])*.125;h[d+56>>3]=L;h[d+64>>3]=y;y=L+(+h[u>>3]-+h[v>>3])*.125;h[d+72>>3]=y;h[d+80>>3]=J;h[d+88>>3]=y;J=+h[w>>3];J=J+(+h[b>>3]-J)*.5;h[d+96>>3]=J;h[d+104>>3]=L;K=J-(+h[x>>3]-+h[s>>3])*.125;h[d+112>>3]=K;h[d+120>>3]=y;K=K-(+h[x>>3]-+h[s>>3])*.125;h[d+128>>3]=K;h[d+136>>3]=y;h[d+144>>3]=K;h[d+152>>3]=L;L=K+(+h[x>>3]-+h[s>>3])*.125;h[d+160>>3]=L;h[d+168>>3]=z;h[d+176>>3]=K;h[d+184>>3]=A;h[d+192>>3]=K;K=+h[t>>3];h[d+200>>3]=K;h[d+208>>3]=L;h[d+216>>3]=K;x=d+224|0;h[x>>3]=J;h[d+232>>3]=+h[E>>3];h[d+240>>3]=+h[D>>3];h[d+248>>3]=K;lS(a,d,m,f);K=+h[x>>3];h[F>>3]=K;J=+h[B>>3];J=J+(+h[C>>3]-J)*.5;D=F+8|0;h[D>>3]=J;E=F+16|0;h[E>>3]=K;f=F+24|0;h[f>>3]=J+(+h[u>>3]-+h[v>>3])*.125;oS(a,F,2);J=+h[x>>3];h[F>>3]=J;K=+h[B>>3];L=+h[u>>3]-+h[v>>3];K=K+(+h[C>>3]-K)*.5+L*.25;h[D>>3]=K;h[E>>3]=J;h[f>>3]=K+L*.125;oS(a,F,2);h[F>>3]=+h[w>>3];L=+h[B>>3];h[D>>3]=L+(+h[C>>3]-L)*.5;h[E>>3]=+h[b>>3];h[f>>3]=L+(+h[b+8>>3]-+h[b+56>>3])*.5;oS(a,F,2);l6(d);break}}else{if((e|0)<369098752){if((e|0)<335544320){switch(e|0){case 318767104:break;default:break a}d=HK(j)|0;w=b+16|0;J=+h[w>>3];D=H+48|0;J=J+(+h[b>>3]-J)*.5+(+h[x>>3]-+h[D>>3])*.125;h[d>>3]=J;B=b+40|0;K=+h[B>>3];C=b+24|0;u=H+56|0;v=H+72|0;K=K+(+h[C>>3]-K)*.5+(+h[u>>3]-+h[v>>3])*.5;h[d+8>>3]=K;z=J+(+h[x>>3]-+h[D>>3])*.125;h[d+16>>3]=z;L=K+(+h[u>>3]-+h[v>>3])*.125;h[d+24>>3]=L;h[d+32>>3]=z;z=L+(+h[u>>3]-+h[v>>3])*.25;h[d+40>>3]=z;h[d+48>>3]=J;A=z+(+h[u>>3]-+h[v>>3])*.125;h[d+56>>3]=A;J=J-(+h[x>>3]-+h[D>>3])*.25;h[d+64>>3]=J;h[d+72>>3]=A;A=J-(+h[x>>3]-+h[D>>3])*.125;h[d+80>>3]=A;h[d+88>>3]=z;h[d+96>>3]=A;h[d+104>>3]=L;h[d+112>>3]=J;h[d+120>>3]=K;lS(a,d,g,f);K=+h[w>>3];K=K+(+h[b>>3]-K)*.5;h[F>>3]=K;J=+h[B>>3];J=J+(+h[C>>3]-J)*.5;D=F+8|0;h[D>>3]=J;E=F+16|0;h[E>>3]=K;f=F+24|0;h[f>>3]=J+(+h[u>>3]-+h[v>>3])*.125;oS(a,F,2);J=+h[w>>3];J=J+(+h[b>>3]-J)*.5;h[F>>3]=J;K=+h[B>>3];L=+h[u>>3]-+h[v>>3];K=K+(+h[C>>3]-K)*.5+L*.25;h[D>>3]=K;h[E>>3]=J;h[f>>3]=K+L*.125;oS(a,F,2);h[F>>3]=+h[w>>3];L=+h[B>>3];h[D>>3]=L+(+h[C>>3]-L)*.5;h[E>>3]=+h[b>>3];h[f>>3]=L+(+h[b+8>>3]-+h[b+56>>3])*.5;oS(a,F,2);l6(d);break}if((e|0)<352321536){switch(e|0){case 335544320:break;default:break a}d=HK(r)|0;B=b+16|0;y=+h[B>>3];u=H+48|0;y=y+(+h[b>>3]-y)*.5+(+h[x>>3]-+h[u>>3])*.25;h[d>>3]=y;C=b+40|0;A=+h[C>>3];D=b+24|0;s=H+56|0;t=H+72|0;A=A+(+h[D>>3]-A)*.5+(+h[s>>3]-+h[t>>3])*.5;E=d+8|0;h[E>>3]=A;h[d+16>>3]=y;A=A+(+h[s>>3]-+h[t>>3])*.125;v=d+24|0;h[v>>3]=A;K=y-(+h[x>>3]-+h[u>>3])*.125;w=d+32|0;h[w>>3]=K;z=A+(+h[s>>3]-+h[t>>3])*.125;h[d+40>>3]=z;h[d+48>>3]=y;J=z+(+h[s>>3]-+h[t>>3])*.125;h[d+56>>3]=J;h[d+64>>3]=y;y=J+(+h[s>>3]-+h[t>>3])*.125;h[d+72>>3]=y;h[d+80>>3]=K;h[d+88>>3]=y;K=+h[B>>3];K=K+(+h[b>>3]-K)*.5;h[d+96>>3]=K;h[d+104>>3]=J;L=K-(+h[x>>3]-+h[u>>3])*.125;h[d+112>>3]=L;h[d+120>>3]=y;L=L-(+h[x>>3]-+h[u>>3])*.125;h[d+128>>3]=L;h[d+136>>3]=y;h[d+144>>3]=L;h[d+152>>3]=J;J=L+(+h[x>>3]-+h[u>>3])*.125;h[d+160>>3]=J;h[d+168>>3]=z;h[d+176>>3]=L;h[d+184>>3]=A;h[d+192>>3]=L;L=+h[E>>3];h[d+200>>3]=L;h[d+208>>3]=J;h[d+216>>3]=L;E=d+224|0;h[E>>3]=K;h[d+232>>3]=+h[v>>3];h[d+240>>3]=+h[w>>3];h[d+248>>3]=L;lS(a,d,m,f);c[F>>2]=c[E>>2];c[F+4>>2]=c[E+4>>2];c[F+8>>2]=c[E+8>>2];c[F+12>>2]=c[E+12>>2];E=F+16|0;h[E>>3]=+h[F>>3];L=+h[C>>3];f=F+24|0;h[f>>3]=L+(+h[D>>3]-L)*.5;oS(a,F,2);h[F>>3]=+h[B>>3];L=+h[C>>3];h[F+8>>3]=L+(+h[D>>3]-L)*.5;h[E>>3]=+h[b>>3];h[f>>3]=L+(+h[b+8>>3]-+h[b+56>>3])*.5;oS(a,F,2);l6(d);break}else{switch(e|0){case 352321536:break;default:break a}d=HK(j)|0;w=b+16|0;K=+h[w>>3];D=H+48|0;K=K+(+h[b>>3]-K)*.5+(+h[x>>3]-+h[D>>3])*.125;h[d>>3]=K;B=b+40|0;L=+h[B>>3];C=b+24|0;u=H+56|0;v=H+72|0;L=L+(+h[C>>3]-L)*.5+(+h[u>>3]-+h[v>>3])*.5;E=d+8|0;h[E>>3]=L;z=K+(+h[x>>3]-+h[D>>3])*.125;h[d+16>>3]=z;J=L+(+h[u>>3]-+h[v>>3])*.125;h[d+24>>3]=J;h[d+32>>3]=z;z=J+(+h[u>>3]-+h[v>>3])*.25;h[d+40>>3]=z;h[d+48>>3]=K;A=z+(+h[u>>3]-+h[v>>3])*.125;h[d+56>>3]=A;K=K-(+h[x>>3]-+h[D>>3])*.25;h[d+64>>3]=K;h[d+72>>3]=A;A=K-(+h[x>>3]-+h[D>>3])*.125;h[d+80>>3]=A;h[d+88>>3]=z;h[d+96>>3]=A;h[d+104>>3]=J;h[d+112>>3]=K;h[d+120>>3]=L;lS(a,d,g,f);L=+h[w>>3];L=L+(+h[b>>3]-L)*.5;h[F>>3]=L;D=F+8|0;h[D>>3]=+h[E>>3];E=F+16|0;h[E>>3]=L;L=+h[B>>3];f=F+24|0;h[f>>3]=L+(+h[C>>3]-L)*.5;oS(a,F,2);h[F>>3]=+h[w>>3];L=+h[B>>3];h[D>>3]=L+(+h[C>>3]-L)*.5;h[E>>3]=+h[b>>3];h[f>>3]=L+(+h[b+8>>3]-+h[b+56>>3])*.5;oS(a,F,2);l6(d);break}}if((e|0)<402653184)if((e|0)<385875968){switch(e|0){case 369098752:break;default:break a}d=HK(s)|0;F=H+48|0;h[d>>3]=+h[v>>3]-(+h[x>>3]-+h[F>>3])*.5;E=H+56|0;D=H+72|0;h[d+8>>3]=+h[H+24>>3]-(+h[E>>3]-+h[D>>3])*.5;h[d+16>>3]=+h[F>>3];L=+h[E>>3];h[d+24>>3]=L-(L-+h[D>>3])*.5;h[d+32>>3]=+h[b+32>>3];C=b+40|0;h[d+40>>3]=+h[C>>3];L=+h[x>>3];h[d+48>>3]=L+(L-+h[F>>3])*.5;h[d+56>>3]=+h[C>>3];L=+h[x>>3];h[d+64>>3]=L+(L-+h[F>>3])*.5;h[d+72>>3]=+h[C>>3]+(+h[E>>3]-+h[D>>3])*.5;h[d+80>>3]=+h[v>>3]-(+h[x>>3]-+h[F>>3])*.5;h[d+88>>3]=+h[C>>3]+(+h[E>>3]-+h[D>>3])*.5;h[d+96>>3]=+h[v>>3]-(+h[x>>3]-+h[F>>3])*.5;D=b+56|0;h[d+104>>3]=+h[D>>3];E=b+8|0;L=+h[E>>3];h[d+120>>3]=L-(L-+h[D>>3])*.5;h[d+112>>3]=+h[b>>3];h[d+136>>3]=+h[E>>3];h[d+128>>3]=+h[v>>3]-(+h[x>>3]-+h[F>>3])*.5;lS(a,d,o,f);l6(d);break}else{switch(e|0){case 385875968:break;default:break a}d=HK(q)|0;F=H+48|0;h[d>>3]=+h[v>>3]-(+h[x>>3]-+h[F>>3])*.5;E=H+56|0;D=H+72|0;h[d+8>>3]=+h[H+24>>3]-(+h[E>>3]-+h[D>>3])*.5;h[d+16>>3]=+h[F>>3];L=+h[E>>3];h[d+24>>3]=L-(L-+h[D>>3])*.5;h[d+32>>3]=+h[b+32>>3];C=b+40|0;h[d+40>>3]=+h[C>>3]+(+h[E>>3]-+h[D>>3])*.5;h[d+48>>3]=+h[v>>3]-(+h[x>>3]-+h[F>>3])*.5;h[d+56>>3]=+h[C>>3]+(+h[E>>3]-+h[D>>3])*.5;h[d+64>>3]=+h[v>>3]-(+h[x>>3]-+h[F>>3])*.5;D=b+56|0;h[d+72>>3]=+h[D>>3];E=b+8|0;L=+h[E>>3];h[d+88>>3]=L-(L-+h[D>>3])*.5;h[d+80>>3]=+h[b>>3];h[d+104>>3]=+h[E>>3];h[d+96>>3]=+h[v>>3]-(+h[x>>3]-+h[F>>3])*.5;lS(a,d,t,f);l6(d);break}else if((e|0)<419430400){switch(e|0){case 402653184:break;default:break a}d=HK(q)|0;h[d>>3]=+h[b>>3];C=b+8|0;D=H+48|0;E=H+56|0;F=H+72|0;h[d+8>>3]=+h[C>>3]-(+h[E>>3]-+h[F>>3])*.5;L=+h[x>>3];h[d+16>>3]=L+(L-+h[D>>3])*.5;h[d+24>>3]=+h[C>>3]-(+h[E>>3]-+h[F>>3])*.5;L=+h[x>>3];h[d+32>>3]=L+(L-+h[D>>3])*.5;h[d+40>>3]=+h[H+40>>3];h[d+48>>3]=+h[b+16>>3];L=+h[b+24>>3];C=b+40|0;h[d+56>>3]=L-(L-+h[C>>3])*.5;L=+h[x>>3];h[d+64>>3]=L+(L-+h[D>>3])*.5;h[d+72>>3]=+h[C>>3];h[d+88>>3]=+h[C>>3]+(+h[E>>3]-+h[F>>3])*.5;L=+h[x>>3];h[d+80>>3]=L+(L-+h[D>>3])*.5;h[d+104>>3]=+h[b+56>>3]+(+h[E>>3]-+h[F>>3])*.5;h[d+96>>3]=+h[b>>3];lS(a,d,t,f);l6(d);break}else{switch(e|0){case 419430400:break;default:break a}d=HK(s)|0;h[d>>3]=+h[b>>3];F=b+8|0;E=H+48|0;C=H+56|0;D=H+72|0;h[d+8>>3]=+h[F>>3]-(+h[C>>3]-+h[D>>3])*.5;L=+h[x>>3];h[d+16>>3]=L+(L-+h[E>>3])*.5;h[d+24>>3]=+h[F>>3]-(+h[C>>3]-+h[D>>3])*.5;L=+h[x>>3];h[d+32>>3]=L+(L-+h[E>>3])*.5;h[d+40>>3]=+h[H+40>>3];h[d+48>>3]=+h[b+16>>3];L=+h[b+24>>3];F=b+40|0;h[d+56>>3]=L-(L-+h[F>>3])*.5;L=+h[x>>3];h[d+64>>3]=L+(L-+h[E>>3])*.5;h[d+72>>3]=+h[F>>3];h[d+88>>3]=+h[F>>3]+(+h[C>>3]-+h[D>>3])*.5;L=+h[x>>3];h[d+80>>3]=L+(L-+h[E>>3])*.5;F=b+56|0;h[d+104>>3]=+h[F>>3]+(+h[C>>3]-+h[D>>3])*.5;h[d+96>>3]=+h[v>>3]-(+h[x>>3]-+h[E>>3])*.5;h[d+112>>3]=+h[v>>3]-(+h[x>>3]-+h[E>>3])*.5;h[d+120>>3]=+h[F>>3];h[d+128>>3]=+h[b+48>>3];h[d+136>>3]=+h[F>>3];lS(a,d,o,f);l6(d);break}}while(0);l6(H)}l=I;return}function SM(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0.0;f=l;l=l+112|0;g=f;k=+h[b+8>>3];k=k+k;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];h[g+16>>3]=+h[b+16>>3];h[g+24>>3]=k-+h[b+24>>3];h[g+32>>3]=+h[b+32>>3];h[g+40>>3]=k-+h[b+40>>3];h[g+48>>3]=+h[b+48>>3];h[g+56>>3]=k-+h[b+56>>3];h[g+64>>3]=+h[b+64>>3];h[g+72>>3]=k-+h[b+72>>3];h[g+80>>3]=+h[b+80>>3];h[g+88>>3]=k-+h[b+88>>3];i=g+96|0;j=b+96|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];nS(a,b,d,0,0,e&255);nS(a,g,7,0,0,0);l=f;return}function TM(a,b,c,d){a=a|0;b=+b;c=c|0;d=d|0;var e=0.0,f=0.0;f=+h[c>>3];e=+h[c+8>>3];e=e+(+h[d+8>>3]-e)*b;h[a>>3]=f+(+h[d>>3]-f)*b;h[a+8>>3]=e;return}function UM(a){a=a|0;a=c[(c[a+16>>2]|0)+8>>2]|0;if(a){a=c[c[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 VM(b){b=b|0;var d=0.0,e=0,f=0.0,g=0,i=0,j=0,k=0.0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0.0,z=0.0,A=0,B=0,C=0,D=0,E=0,H=0,K=0,L=0,M=0,N=0,P=0,Q=0.0,R=0.0,T=0,U=0,V=0.0,W=0.0,X=0.0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0.0;ca=l;l=l+144|0;K=ca+112|0;N=ca+104|0;D=ca+96|0;E=ca+88|0;j=ca+80|0;$=ca+64|0;aa=ca+48|0;T=ca+40|0;U=ca+32|0;o=ca+24|0;x=ca+16|0;B=ca+136|0;A=ca+128|0;L=ca;ba=HK(48)|0;Z=b+16|0;P=c[(c[(c[Z>>2]|0)+8>>2]|0)+8>>2]|0;i=(P|0)==1664;_=c[P>>2]|0;e=c[P+4>>2]|0;g=c[P+8>>2]|0;f=+h[P+16>>3];k=+h[P+32>>3];m=+h[P+24>>3];_=(bP(NA(b,105812)|0)|0)&255|_;P=(_|0)!=0;do if(!i){if(!P){Y=c[Z>>2]|0;d=+h[Y+32>>3]*72.0;r=+h[Y+40>>3]*72.0;r=+(~~(r+(r>=0.0?.5:-.5))|0);d=+(~~(d+(d>=0.0?.5:-.5))|0);break}d=+dN(b);if(d>0.0)r=d;else{Y=c[Z>>2]|0;r=+h[Y+32>>3];d=+h[Y+40>>3];d=(r<d?r:d)*72.0;d=+(~~(d+(d>=0.0?.5:-.5))|0);r=d}}else{r=0.0;d=0.0}while(0);Y=XO(b,c[47222]|0,e,0)|0;X=f+ +YO(b,c[47224]|0,0.0,-360.0);if(!g){W=+YO(b,c[47225]|0,0.0,-100.0);H=XO(b,c[47221]|0,4,0)|0;V=+YO(b,c[47226]|0,0.0,-100.0)}else{H=g;W=k;V=m}e=c[(c[Z>>2]|0)+104>>2]|0;C=e+24|0;c[$>>2]=c[C>>2];c[$+4>>2]=c[C+4>>2];c[$+8>>2]=c[C+8>>2];c[$+12>>2]=c[C+12>>2];n=+h[$>>3];C=$+8|0;if(n>0.0)if(i)k=n;else M=11;else if(i|!(+h[C>>3]>0.0))k=n;else M=11;if((M|0)==11){e=NA(b,105797)|0;f=n+16.0;do if(e){h[x>>3]=0.0;h[o>>3]=0.0;c[j>>2]=o;c[j+4>>2]=x;e=q4(e,105804,j)|0;k=+h[o>>3];if(k<0.0){h[o>>3]=0.0;k=0.0}m=+h[x>>3];if(m<0.0){h[x>>3]=0.0;m=0.0}if((e|0)<=0){h[$>>3]=f;k=8.0;break}k=k*72.0;k=+(~~(k+(k>=0.0?.5:-.5))<<1|0);f=n+k;h[$>>3]=f;if((e|0)!=1){k=m*72.0;k=+(~~(k+(k>=0.0?.5:-.5))<<1|0)}}else{h[$>>3]=f;k=8.0}while(0);h[C>>3]=k+ +h[C>>3];e=c[(c[Z>>2]|0)+104>>2]|0;k=f}q=k-+h[e+24>>3];f=+h[c[(c[(uC(b)|0)+16>>2]|0)+8>>2]>>3];if(f>0.0){Q=f*72.0;Q=+(~~(Q+(Q>=0.0?.5:-.5))|0);R=+eN(k,Q);h[$>>3]=R;h[C>>3]=+eN(+h[C>>3],Q)}else R=k;e=c[(c[Z>>2]|0)+8>>2]|0;do if(!(a[e+12>>0]|0)){g=NA(b,109326)|0;if((g|0)!=0?(a[g>>0]|0)!=0:0){PF(A,uC(b)|0,g);e=c[A>>2]|0;i=c[A+4>>2]|0;if((i&e|0)==-1){e=HB(b)|0;c[D>>2]=g;c[D+4>>2]=e;dA(0,105888,D)|0;g=0;e=0;break}else{a[(c[(uC(b)|0)+16>>2]|0)+114>>0]=1;g=e+2|0;e=i+2|0;break}}else{g=0;e=0}}else{e=c[e>>2]|0;if((a[e>>0]|0)==99?(f2(e,105820)|0)==0:0){g=NA(b,105827)|0;PF(B,uC(b)|0,g);e=c[B>>2]|0;i=c[B+4>>2]|0;if((i&e|0)==-1){e=HB(b)|0;c[E>>2]=g|0?g:105837;c[E+4>>2]=e;dA(0,105843,E)|0;g=0;e=0;break}else{a[(c[(uC(b)|0)+16>>2]|0)+114>>0]=1;g=e+2|0;e=i+2|0;break}}else{g=0;e=0}}while(0);Q=+(g|0);h[aa>>3]=R>Q?R:Q;Q=+h[C>>3];p=+(e|0);A=aa+8|0;h[A>>3]=Q>p?Q:p;e=(H|0)<3&(V!=0.0|W!=0.0)?120:H;g=NA(b,105929)|0;if(!g)i=99;else{i=a[g>>0]|0;i=i<<24>>24==116?116:i<<24>>24==98?98:99}g=c[Z>>2]|0;a[(c[g+104>>2]|0)+80>>0]=i;if((e|0)==4)if((V==0.0?((~~(X+(X>=0.0?.5:-.5))|0)%90|0|0)==0:0)&W==0.0){n=4.0;o=1}else{n=4.0;M=40}else{n=+(e|0);M=40}do if((M|0)==40){g=c[(c[(c[g+8>>2]|0)+8>>2]|0)+44>>2]|0;if(g|0){o=c[g>>2]|0;c[K>>2]=c[aa>>2];c[K+4>>2]=c[aa+4>>2];c[K+8>>2]=c[aa+8>>2];c[K+12>>2]=c[aa+12>>2];lb[o&63](L,K);c[aa>>2]=c[L>>2];c[aa+4>>2]=c[L+4>>2];c[aa+8>>2]=c[L+8>>2];c[aa+12>>2]=c[L+12>>2];o=0;break}f=+h[A>>3];k=f*1.4142135623730951;if(r>k&i<<24>>24==99){m=f/r;m=+G(+(1.0/(1.0-m*m)));m=m*+h[aa>>3];h[aa>>3]=m}else{m=+h[aa>>3]*1.4142135623730951;h[aa>>3]=m;h[A>>3]=k;f=k}if((e|0)>2){z=+I(+(3.141592653589793/n));h[aa>>3]=m/z;h[A>>3]=f/z;o=0}else o=0}while(0);k=+h[A>>3];g=_O(b,c[47227]|0,137609)|0;x=ba+40|0;if((a[g>>0]|0)==115?(f2(g,108531)|0)==0:0){h[aa>>3]=d;h[A>>3]=r;c[x>>2]=c[x>>2]|2048;f=r}else{if(!((bP(g)|0)<<24>>24)){f=+h[aa>>3];d=d>f?d:f;h[aa>>3]=d;f=+h[A>>3];f=r>f?r:f}else{M=c[(c[Z>>2]|0)+104>>2]|0;if(!(!(d<+h[M+24>>3])?!(r<+h[M+32>>3]):0)){L=HB(b)|0;M=HB(uC(b)|0)|0;c[N>>2]=L;c[N+4>>2]=M;dA(0,105938,N)|0}h[aa>>3]=d;f=r}h[A>>3]=f}if(P){y=d>f?d:f;h[A>>3]=y;h[aa>>3]=y;z=y}else{z=f;y=d}d=R-q;do if(!((bP(_O(b,c[47218]|0,137609)|0)|0)<<24>>24)){if(o){d=+h[(R>+h[aa>>3]?$:aa)>>3]-q;break}f=+h[A>>3];if(Q<f){d=+h[aa>>3]*+G(+(1.0-Q*Q/(f*f)));d=(R>d?R:d)-q}}while(0);g=c[(c[Z>>2]|0)+104>>2]|0;h[g+40>>3]=d;if(!(c[x>>2]&2048)){w=+h[A>>3]-k;h[g+48>>3]=Q+(Q<p?p-Q+w:w)}j=(Y|0)>1;g=j?Y:1;a:do if((e|0)<3){g=HK(g<<5)|0;f=+h[aa>>3]*.5;d=+h[A>>3]*.5;h[g>>3]=-f;h[g+8>>3]=-d;h[g+16>>3]=f;h[g+24>>3]=d;if(j){e=1;i=2;while(1){if((e|0)==(Y|0))break;y=f+4.0;z=d+4.0;h[g+(i<<4)>>3]=-y;h[g+(i<<4)+8>>3]=-z;U=i|1;h[g+(U<<4)>>3]=y;h[g+(U<<4)+8>>3]=z;e=e+1|0;i=i+2|0;f=y;d=z}h[aa>>3]=f*2.0;h[A>>3]=d*2.0;e=2}else e=2}else{g=HK(S(g<<4,e)|0)|0;i=c[(c[(c[(c[Z>>2]|0)+8>>2]|0)+8>>2]|0)+44>>2]|0;b:do if(!i){p=6.283185307179586/n;s=p*.5;q=+J(+s);r=+c2(+F(+V)+ +F(+W),1.0);s=V*1.4142135623730951/+I(+s);t=W*.5;k=(p+-3.141592653589793)*.5;X3(k,T,U);u=X/180.0*3.141592653589793;f=0.0;d=0.0;k=k+(3.141592653589793-p)*.5;i=0;m=+h[U>>3]*.5;n=+h[T>>3]*.5;while(1){if((i|0)>=(e|0))break b;k=p+k;X3(k,T,U);m=m+q*+h[U>>3];n=n+q*+h[T>>3];w=t*n+m*(r+s*n);X3(u+ +O(+n,+w),T,U);w=+c2(w,n);v=w*+h[U>>3]*+h[aa>>3];w=w*+h[T>>3]*+h[A>>3];da=+F(+v);d=da>d?da:d;da=+F(+w);f=da>f?da:f;h[g+(i<<4)>>3]=v;h[g+(i<<4)+8>>3]=w;if(o)break;else i=i+1|0}da=-v;h[g+16>>3]=da;h[g+24>>3]=w;h[g+32>>3]=da;da=-w;h[g+40>>3]=da;h[g+48>>3]=v;h[g+56>>3]=da}else{lb[c[i+4>>2]&63](g,aa);f=+h[A>>3]*.5;d=+h[aa>>3]*.5}while(0);d=d*2.0;f=f*2.0;y=y>d?y:d;h[aa>>3]=y;da=z>f?z:f;h[A>>3]=da;d=y/d;f=da/f;i=0;while(1){if((i|0)>=(e|0))break;P=g+(i<<4)|0;b=g+(i<<4)+8|0;da=f*+h[b>>3];h[P>>3]=d*+h[P>>3];h[b>>3]=da;i=i+1|0}if(j){j=e+-1|0;f=+h[g>>3];k=+h[g+8>>3];d=+O(+(k-+h[g+(j<<4)+8>>3]),+(f-+h[g+(j<<4)>>3]));j=0;c:while(1){if((j|0)>=(e|0))break;o=j+1|0;i=(o|0)%(e|0)|0;m=+h[g+(i<<4)>>3];n=+h[g+(i<<4)+8>>3];p=+O(+(n-k),+(m-f));z=(d+3.141592653589793-p)*.5;da=4.0/+J(+z);X3(d-z,T,U);h[T>>3]=da*+h[T>>3];h[U>>3]=da*+h[U>>3];i=1;d=k;while(1){if((i|0)==(Y|0)){d=p;j=o;f=m;k=n;continue c}z=f+ +h[U>>3];da=d+ +h[T>>3];b=(S(i,e)|0)+j|0;h[g+(b<<4)>>3]=z;h[g+(b<<4)+8>>3]=da;i=i+1|0;f=z;d=da}}j=S(e,Y+-1|0)|0;i=0;while(1){if((i|0)>=(e|0))break a;U=i+j|0;z=+h[g+(U<<4)+8>>3];y=+F(+(+h[g+(U<<4)>>3]))*2.0;da=+h[aa>>3];h[aa>>3]=y>da?y:da;z=+F(+z)*2.0;da=+h[A>>3];h[A>>3]=z>da?z:da;i=i+1|0}}}while(0);c[ba>>2]=_;c[ba+4>>2]=Y;c[ba+8>>2]=e;h[ba+16>>3]=X;h[ba+32>>3]=W;h[ba+24>>3]=V;c[ba+44>>2]=g;g=c[Z>>2]|0;f=+h[aa>>3];d=+h[A>>3];e=g+32|0;if(!(c[x>>2]&2048))h[e>>3]=f/72.0;else{h[e>>3]=+h[(R>f?$:aa)>>3]/72.0;d=+h[(Q>d?$:aa)+8>>3]}h[g+40>>3]=d/72.0;c[g+12>>2]=ba;l=ca;return}function WM(a){a=a|0;var b=0,d=0,e=0,f=0,g=0.0,i=0.0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+64|0;j=o+40|0;e=o+32|0;k=o+16|0;n=o;d=(c[(c[(uC(a)|0)+16>>2]|0)+116>>2]|0)>>>2&1^1;m=a+16|0;f=c[c[(c[m>>2]|0)+104>>2]>>2]|0;c[47352]=f;f=D3(f)|0;f=HK(((f|0)>1?f:1)+1|0)|0;b=YM(a,d,1,f)|0;if(!b){c[e>>2]=c[c[(c[m>>2]|0)+104>>2]>>2];dA(1,105773,e)|0;c[47352]=105794;b=YM(a,d,1,f)|0}l6(f);ZM(j,a,b);d=c[m>>2]|0;i=+h[d+32>>3]*72.0;i=+(~~(i+(i>=0.0?.5:-.5))|0);h[n>>3]=i;g=+h[d+40>>3]*72.0;g=+(~~(g+(g>=0.0?.5:-.5))|0);d=n+8|0;h[d>>3]=g;if(!((bP(_O(a,c[47227]|0,137609)|0)|0)<<24>>24)){i=+h[(+h[b>>3]>i?b:n)>>3];h[n>>3]=i;e=b+8|0;g=+h[(+h[e>>3]>g?b:n)+8>>3];h[d>>3]=g;d=e;e=b}else{d=b+8|0;e=b}a=(bP(_O(a,c[47218]|0,137609)|0)|0)&255;c[j>>2]=c[n>>2];c[j+4>>2]=c[n+4>>2];c[j+8>>2]=c[n+8>>2];c[j+12>>2]=c[n+12>>2];_M(b,j,a);$M(k,i*-.5,g*.5);c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];aN(b,j,15);n=c[m>>2]|0;h[n+32>>3]=+h[e>>3]/72.0;h[n+40>>3]=(+h[d>>3]+1.0)/72.0;c[n+12>>2]=b;l=o;return}function XM(a){a=a|0;var b=0.0,d=0,e=0.0,f=0.0,g=0,i=0,j=0,k=0,l=0.0,m=0;j=HK(48)|0;k=a+16|0;g=c[(c[(c[(c[k>>2]|0)+8>>2]|0)+8>>2]|0)+4>>2]|0;b=+YO(a,c[47200]|0,1797693134862315708145274.0e284,0.0);f=+YO(a,c[47199]|0,1797693134862315708145274.0e284,0.0);b=b<f?b:f;i=c[k>>2]|0;b=f==1797693134862315708145274.0e284&b==1797693134862315708145274.0e284?.05:b>0.0?(b>.0003?b:.0003):b;h[i+40>>3]=b;h[i+32>>3]=b;b=b*72.0;g=XO(a,c[47222]|0,g,0)|0;i=HK((g|0)<1?32:g<<5)|0;f=b*.5;e=-f;h[i>>3]=e;h[i+8>>3]=e;h[i+16>>3]=f;h[i+24>>3]=f;if((g|0)>1){a=1;d=2;e=f;b=f;while(1){if((a|0)==(g|0))break;l=e+4.0;f=b+4.0;h[i+(d<<4)>>3]=-l;h[i+(d<<4)+8>>3]=-f;m=d|1;h[i+(m<<4)>>3]=l;h[i+(m<<4)+8>>3]=f;a=a+1|0;d=d+2|0;e=l;b=f}b=e*2.0}c[j>>2]=1;c[j+4>>2]=g;c[j+8>>2]=2;m=j+16|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m+16>>2]=0;c[m+20>>2]=0;c[j+44>>2]=i;l=b/72.0;m=c[k>>2]|0;h[m+32>>3]=l;h[m+40>>3]=l;c[m+12>>2]=j;return}function YM(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;g=HK(72)|0;n=c[(c[b+16>>2]|0)+104>>2]|0;m=0;i=1;j=c[47352]|0;a:while(1){k=a[j>>0]|0;switch(k<<24>>24){case 0:break a;case 92:{j=j+1|0;k=a[j>>0]|0;switch(k<<24>>24){case 124:case 125:case 123:case 92:{l=m;break}default:E=4}break}default:E=4}if((E|0)==4){E=0;switch(k<<24>>24){case 123:{l=m+1|0;break}case 125:{l=m+-1|0;break}default:{l=m;i=((m|0)==0&k<<24>>24==124&1)+i|0}}if((l|0)<0)break}m=l;j=j+1|0}C=g+56|0;c[C>>2]=HK(i<<2)|0;a[g+64>>0]=d;z=(d|0)==0&1;A=f+1|0;B=n+82|0;y=(e|0)==0;w=n+16|0;x=n+4|0;v=n+8|0;l=0;m=0;d=0;u=0;k=0;e=0;n=f;i=0;j=0;b:while(1){p=l;l=0;c:while(1){r=n;d:while(1){t=e;e:while(1){s=i;f:while(1){q=m;o=k;g:while(1){while(1){if(u){E=79;break b}i=c[47352]|0;k=a[i>>0]|0;e=i+1|0;if((k+-1&255)>=31)break;c[47352]=e}switch(k<<24>>24|0){case 92:{E=52;break d}case 0:case 124:case 125:break e;case 60:break f;case 62:break g;case 123:break;default:{E=56;break d}}c[47352]=e;if(o|0){E=32;break b}if(!(a[e>>0]|0)){E=32;break b}o=YM(b,z,0,f)|0;c[(c[C>>2]|0)+(q<<2)>>2]=o;if(!o){E=34;break b}else{q=q+1|0;o=4}}n=s+-1|0;if(a[B>>0]|0){k=o;break d}if(!(o&16)){E=26;break b}if(s>>>0<=A>>>0|(n|0)==(t|0))i=s;else i=(a[n>>0]|0)==32?n:s;a[i>>0]=0;l=Y3(f)|0;c[47352]=(c[47352]|0)+1;m=q;k=o&-17;s=i}if(o&6|0){E=21;break b}if(a[B>>0]|0){E=57;break d}c[47352]=e;m=q;k=o|18;t=f;i=f}if((o&16|0)!=0|y&k<<24>>24==0){E=36;break b}if(!(o&4)){e=HK(72)|0;c[(c[C>>2]|0)+(q<<2)>>2]=e;m=q+1|0}else{e=p;m=q}if(l|0)c[e+60>>2]=l;if(!(o&5)){a[f+j>>0]=32;o=o|1;j=j+1|0}i=f+j|0;if(!(o&1))n=r;else{if((j|0)>1?(D=i+-1|0,(D|0)!=(r|0)):0)i=(a[D>>0]|0)==32?D:i;a[i>>0]=0;n=Y3(f)|0;c[e+52>>2]=xK(b,n,a[B>>0]|0?2:0,+h[w>>3],c[x>>2]|0,c[v>>2]|0)|0;a[e+64>>0]=1;n=f;j=0}i=c[47352]|0;k=a[i>>0]|0;if(!(k<<24>>24)){l=e;u=1;k=o;e=t;i=s;continue b}c[47352]=i+1;if(k<<24>>24==125){E=51;break b}else{p=e;k=0;l=0;e=t;r=n;i=s}}h:do if((E|0)==52){E=0;k=f+j|0;n=s+-1|0;m=j+1|0;switch(a[e>>0]|0){case 0:{k=o;break h}case 62:case 60:case 124:case 125:case 123:{i=d;k=o;break}case 32:{if(!(a[B>>0]|0)){i=1;k=o}else E=54;break}default:E=54}if((E|0)==54){E=0;a[k>>0]=92;i=d;k=o|9;j=m}c[47352]=e;d=i;i=e}else if((E|0)==56){E=0;k=o;n=s+-1|0}else if((E|0)==57){E=0;k=o;n=s+-1|0}while(0);e=f+j|0;if(k&4|0?(a[i>>0]|0)!=32:0){E=60;break b}if(!(k&24))k=(a[i>>0]|0)==32?k:k|9;o=(d|0)!=0;if(!(k&8))if(!(k&16)){e=t;n=r;o=s}else{m=a[i>>0]|0;if(!(o|m<<24>>24!=32))if((s|0)!=(f|0))if((a[n>>0]|0)==32)m=s;else E=74;else m=f;else E=74;if((E|0)==74){E=0;a[s>>0]=m;m=s+1|0;i=c[47352]|0}e=o?m+-1|0:t;n=r;o=m}else{m=a[i>>0]|0;if(!((!(o|m<<24>>24!=32)?(a[e+-1>>0]|0)==32:0)?(a[B>>0]|0)==0:0)){a[e>>0]=m;j=j+1|0}if(o){e=t;n=f+j+-1|0;o=s}else{e=t;n=r;o=s}}i=i+1|0;c[47352]=i;while(1){if((a[i>>0]|0)>=0){m=q;i=o;continue c}t=i+1|0;c[47352]=t;a[f+j>>0]=a[i>>0]|0;j=j+1|0;i=t}}}if((E|0)==21){bN(g,l);g=0}else if((E|0)==26){bN(g,l);g=0}else if((E|0)==32){bN(g,l);g=0}else if((E|0)==34){bN(g,l);g=0}else if((E|0)==36){bN(g,l);g=0}else if((E|0)==51)c[g+48>>2]=m;else if((E|0)==60){bN(g,l);g=0}else if((E|0)==79)c[g+48>>2]=q;return g|0}function ZM(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0,k=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+64|0;n=v+48|0;k=v+40|0;p=v+32|0;u=v+16|0;s=v;j=c[e+52>>2]|0;t=u+8|0;a:do if(!j){o=e+48|0;p=e+56|0;q=e+64|0;r=s+8|0;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;n=0;while(1){if((n|0)>=(c[o>>2]|0))break a;ZM(s,d,c[(c[p>>2]|0)+(n<<2)>>2]|0);f=+h[t>>3];g=+h[u>>3];i=+h[s>>3];m=+h[r>>3];if(!(a[q>>0]|0)){h[t>>3]=f+m;j=g>i?u:s;k=u}else{h[u>>3]=g+i;j=(f>m?u:s)+8|0;k=t}h[k>>3]=+h[j>>3];n=n+1|0}}else{g=+h[j+24>>3];f=+h[j+32>>3];if(g>0.0|f>0.0){j=NA(d,105797)|0;m=g+16.0;if((j|0)!=0?(c[n>>2]=k,c[n+4>>2]=p,o=q4(j,105804,n)|0,(o|0)>0):0){i=+h[k>>3]*72.0;i=+(~~(i+(i>=0.0?.5:-.5))<<1|0);g=g+i;if((o|0)!=1){i=+h[p>>3]*72.0;i=+(~~(i+(i>=0.0?.5:-.5))<<1|0)}}else{i=8.0;g=m}f=f+i}h[u>>3]=g;h[t>>3]=f}while(0);c[e>>2]=c[u>>2];c[e+4>>2]=c[u+4>>2];c[e+8>>2]=c[u+8>>2];c[e+12>>2]=c[u+12>>2];c[b>>2]=c[u>>2];c[b+4>>2]=c[u+4>>2];c[b+8>>2]=c[u+8>>2];c[b+12>>2]=c[u+12>>2];l=v;return}function _M(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0,j=0,k=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0;r=l;l=l+32|0;n=r+16|0;o=r;p=+h[d>>3];g=p-+h[b>>3];q=+h[d+8>>3];f=q-+h[b+8>>3];c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];d=c[b+52>>2]|0;if(!((e|0)!=0|(d|0)==0)){m=d+40|0;h[m>>3]=g+ +h[m>>3];m=d+48|0;h[m>>3]=f+ +h[m>>3]}k=b+48|0;d=c[k>>2]|0;a:do if(d|0){m=b+64|0;g=((a[m>>0]|0)==0?f:g)/+(d|0);j=b+56|0;i=0;while(1){if((i|0)>=(d|0))break a;d=c[(c[j>>2]|0)+(i<<2)>>2]|0;b=i+1|0;f=+(~~(g*+(b|0))-~~(g*+(i|0))|0);if(!(a[m>>0]|0))$M(o,p,f+ +h[d+8>>3]);else $M(o,f+ +h[d>>3],q);c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];_M(d,n,e);i=b;d=c[k>>2]|0}}while(0);l=r;return}function $M(a,b,c){a=a|0;b=+b;c=+c;h[a>>3]=b;h[a+8>>3]=c;return}function aN(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0;q=l;l=l+48|0;j=q+32|0;n=q+16|0;m=q;a[b+65>>0]=e;k=b+16|0;s=+h[d>>3];p=d+8|0;r=+h[p>>3];$M(n,s,r-+h[b+8>>3]);c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];c[k+12>>2]=c[n+12>>2];k=b+32|0;$M(m,s+ +h[b>>3],r);c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];c[k+12>>2]=c[m+12>>2];k=c[b+48>>2]|0;m=k+-1|0;n=(e|0)==0;o=b+64|0;i=b+56|0;g=0;while(1){if((g|0)>=(k|0))break;do if(!n){b=(g|0)==0;f=(g|0)==(m|0);if(!(a[o>>0]|0))if(b){b=f?15:14;break}else{b=f?11:10;break}else if(b){b=f?15:13;break}else{b=f?7:5;break}}else b=0;while(0);f=c[(c[i>>2]|0)+(g<<2)>>2]|0;c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];aN(f,j,b&e);b=c[(c[i>>2]|0)+(g<<2)>>2]|0;if(!(a[o>>0]|0))h[p>>3]=+h[p>>3]-+h[b+8>>3];else h[d>>3]=+h[d>>3]+ +h[b>>3];g=g+1|0}l=q;return}function bN(a,b){a=a|0;b=b|0;cN(a);l6(b);return}function cN(a){a=a|0;var b=0,d=0,e=0;d=a+48|0;e=a+56|0;b=0;while(1){if((b|0)>=(c[d>>2]|0))break;cN(c[(c[e>>2]|0)+(b<<2)>>2]|0);b=b+1|0}l6(c[a+60>>2]|0);AK(c[a+52>>2]|0);l6(c[e>>2]|0);l6(a);return}function dN(a){a=a|0;var b=0.0,d=0.0;d=+YO(a,c[47200]|0,0.0,.01);b=+YO(a,c[47199]|0,0.0,.02);b=(d>b?d:b)*72.0;return +(+(~~(b+(b>=0.0?.5:-.5))|0))}function eN(a,b){a=+a;b=+b;var c=0;c=~~(a/b);return +(+((+(c|0)*b+1.0e-05<a&1)+c|0)*b)}function fN(a){a=a|0;a=c[(c[a+16>>2]|0)+8>>2]|0;if(!a)a=0;else a=(c[c[a+4>>2]>>2]|0)==91&1;return a|0}function gN(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;f=c[47353]|0;a:do if(!f)d=0;else{g=c[47354]|0;e=0;while(1){if((e|0)>=(g|0)){d=0;break a}d=c[f+(e<<2)>>2]|0;h=c[d>>2]|0;if((a[h>>0]|0)==(a[b>>0]|0)?(f2(h,b)|0)==0:0)break a;e=e+1|0}}while(0);return d|0}function hN(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;do if(!(kP(NA(d,105827)|0)|0))d=b;else{if((a[b>>0]|0)==101?(f2(b,105986)|0)==0:0){d=b;break}d=105820}while(0);f=a[d>>0]|0;if(f<<24>>24==99?(f2(d,105820)|0)==0:0)g=11;else{b=20896;g=7}a:do if((g|0)==7)while(1){g=0;e=c[b>>2]|0;if(!e){g=11;break a}if((a[e>>0]|0)==f<<24>>24?(f2(e,d)|0)==0:0)break a;b=b+16|0;g=7}while(0);if((g|0)==11)b=iN(d)|0;return b|0}function iN(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=l;l=l+16|0;g=h;d=gN(b)|0;if(!d){f=c[47354]|0;e=f+1|0;c[47354]=e;d=c[47353]|0;e=e<<2;if(!d)d=IK(e)|0;else d=KK(d,e)|0;c[47353]=d;d=HK(16)|0;c[(c[47353]|0)+(f<<2)>>2]=d;c[d>>2]=c[5224];c[d+4>>2]=c[5225];c[d+8>>2]=c[5226];c[d+12>>2]=c[5227];e=Y3(b)|0;c[d>>2]=e;do if(!(c[47176]|0)){if((a[b>>0]|0)==99?(f2(b,105820)|0)==0:0){e=1;break}c[g>>2]=c[5224];c[g+4>>2]=e;dA(0,105991,g)|0;e=0}else e=1;while(0);a[d+12>>0]=e}l=h;return d|0}function jN(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;d=+h[b>>3]/1.902113032590307;c=+h[b+8>>3]/1.1180339887498947;c=(d>c?d:c)*.9510565162951535*.8090169943749475/.29389262614623657;h[a>>3]=c*2.0*.9510565162951535;h[a+8>>3]=c*1.8090169943749475;return}function kN(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,f=0,g=0.0,i=0.0,j=0.0,k=0,l=0.0,m=0;d=+h[b>>3];k=b+8|0;e=+h[k>>3];c=e/d;if(!(c>.9510565162951536))if(c<.9510565162951536){j=d;e=d*.9510565162951536}else j=d;else j=e/.9510565162951536;i=j/1.902113032590307;d=i*.9510565162951535*.30901699437494745/.7694208842938134;g=i*.19098300562505266*.5;c=.3141592653589793;f=0;while(1){if((f|0)>=10)break;h[a+(f<<4)>>3]=i*+I(+c);h[a+(f<<4)+8>>3]=i*+J(+c)-g;l=c+.6283185307179586;m=f|1;h[a+(m<<4)>>3]=d*+I(+l);h[a+(m<<4)+8>>3]=d*+J(+l)-g;c=l+.6283185307179586;f=f+2|0}h[b>>3]=j;h[k>>3]=e;return}function lN(a){a=a|0;a=c[(c[a+16>>2]|0)+12>>2]|0;if(a|0){l6(c[a+44>>2]|0);l6(a)}return}function mN(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+80|0;k=o+40|0;g=o;n=o+64|0;h=o+56|0;if(!(a[e>>0]|0)){g=4256;h=b+40|0;do{c[b>>2]=c[g>>2];b=b+4|0;g=g+4|0}while((b|0)<(h|0))}else{i=(f|0)==0?106657:f;c[n>>2]=15;j=d+16|0;f=c[j>>2]|0;do if(a[(c[f+104>>2]|0)+82>>0]|0){f=nU(d,e,n)|0;if(!f){f=c[j>>2]|0;m=8;break}if(AN(d,f,g,i,c[n>>2]|0,0)|0){c[k>>2]=HB(d)|0;c[k+4>>2]=e;c[k+8>>2]=i;dA(0,106659,k)|0}}else m=8;while(0);if((m|0)==8){if((c[(c[f+8>>2]|0)+8>>2]|0)==1712)h=0;else{c[h>>2]=d;c[h+4>>2]=0}if(AN(d,0,g,e,c[n>>2]|0,h)|0)BN(d,e)}c[g+36>>2]=0;h=b+40|0;do{c[b>>2]=c[g>>2];b=b+4|0;g=g+4|0}while((b|0)<(h|0))}l=o;return}function nN(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0,g=0,i=0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0;r=l;l=l+112|0;n=r+96|0;m=r+80|0;p=r+64|0;k=r+48|0;q=r+32|0;o=r+16|0;f=r;if(!a){c[47357]=0;a=0}else{g=c[a+4>>2]|0;a=c[a>>2]|0;i=(c[(c[(uC(a)|0)+16>>2]|0)+116>>2]&3)*90|0;c[n>>2]=c[b>>2];c[n+4>>2]=c[b+4>>2];c[n+8>>2]=c[b+8>>2];c[n+12>>2]=c[b+12>>2];kK(f,n,i);c[q>>2]=c[f>>2];c[q+4>>2]=c[f+4>>2];c[q+8>>2]=c[f+8>>2];c[q+12>>2]=c[f+12>>2];a:do if(g){d=+h[g+8>>3];e=+h[g+24>>3];s=+h[q>>3];if((+h[g>>3]<=s?s<=+h[g+16>>3]:0)?(j=+h[q+8>>3],d<=j):0)a=j<=e&1;else a=0}else{if((a|0)==(c[47357]|0)){f=c[47358]|0;g=c[47360]|0;i=c[47359]|0}else{g=c[(c[a+16>>2]|0)+12>>2]|0;c[47361]=g;i=c[g+44>>2]|0;c[47359]=i;f=c[g+8>>2]|0;c[47358]=f;g=S((c[g+4>>2]|0)+-1|0,f)|0;g=(g|0)>0?g:0;c[47360]=g;c[47357]=a}a=0;b=0;while(1){if((a|0)>=(f|0)){a=1;break a}t=i+(g+a<<4)|0;c[o>>2]=c[t>>2];c[o+4>>2]=c[t+4>>2];c[o+8>>2]=c[t+8>>2];c[o+12>>2]=c[t+12>>2];t=i+(((a+4|0)%(f|0)|0)+g<<4)|0;c[k>>2]=c[q>>2];c[k+4>>2]=c[q+4>>2];c[k+8>>2]=c[q+8>>2];c[k+12>>2]=c[q+12>>2];c[p>>2]=c[46656];c[p+4>>2]=c[46657];c[p+8>>2]=c[46658];c[p+12>>2]=c[46659];c[m>>2]=c[o>>2];c[m+4>>2]=c[o+4>>2];c[m+8>>2]=c[o+8>>2];c[m+12>>2]=c[o+12>>2];c[n>>2]=c[t>>2];c[n+4>>2]=c[t+4>>2];c[n+8>>2]=c[t+8>>2];c[n+12>>2]=c[t+12>>2];b=((zN(k,p,m,n)|0)==0&1)+b|0;if((b|0)==2){a=0;break}else a=a+2|0}}while(0)}l=r;return a|0}function oN(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;e=c[b+16>>2]|0;if((a[(c[e+104>>2]|0)+82>>0]|0)!=0?(a[e+145>>0]|0)!=0:0)b=qU(b,d,0,f,g)|0;else b=0;return b|0}function pN(e,f){e=e|0;f=f|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0,G=0.0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,T=0,U=0,V=0,W=0,X=0;V=l;l=l+48|0;R=V+24|0;Q=V+16|0;N=V+8|0;M=V;T=V+32|0;q=V+28|0;n=c[e+16>>2]|0;U=n+208|0;o=c[U>>2]|0;if(!o){i=e+152|0;j=n+228|0;k=n+212|0;m=n+244|0;if(!(b[n+260>>1]&1)){O=i;J=0}else P=4}else{i=e+152|0;j=n+228|0;m=n+244|0;k=n+212|0;P=4}if((P|0)==4)if(!(c[i>>2]&4)){aS(e,o,c[j>>2]|0,c[m>>2]|0,c[k>>2]|0);O=i;J=1}else{O=i;J=1}K=f+16|0;i=c[K>>2]|0;y=c[i+12>>2]|0;I=c[y+44>>2]|0;L=c[y+8>>2]|0;y=c[y+4>>2]|0;if((c[47355]|0)<(L|0)){n=L+5|0;c[47355]=n;i=c[47356]|0;n=n<<4;if(!i)i=IK(n)|0;else i=KK(i,n)|0;c[47356]=i;i=c[K>>2]|0}H=(c[i+104>>2]|0)+56|0;i=i+16|0;c[H>>2]=c[i>>2];c[H+4>>2]=c[i+4>>2];c[H+8>>2]=c[i+8>>2];c[H+12>>2]=c[i+12>>2];H=c[K>>2]|0;F=+h[H+32>>3]*72.0;F=(+h[H+88>>3]+ +h[H+96>>3])/+(~~(F+(F>=0.0?.5:-.5))|0);G=+h[H+40>>3]*72.0;G=+h[H+80>>3]/+(~~(G+(G>=0.0?.5:-.5))|0);H=qN(e,f)|0;c[T>>2]=0;i=d[(c[K>>2]|0)+117>>0]|0;do if(!(i&1)){if(i&2|0){B=$O(f,c[47206]|0,106557)|0;fS(e,B);hS(e,$O(f,c[47207]|0,106565)|0);n=0;i=1;break}if(i&8|0){B=$O(f,c[47210]|0,106573)|0;fS(e,B);hS(e,$O(f,c[47211]|0,106581)|0);n=0;i=1;break}if(i&4|0){B=$O(f,c[47208]|0,106589)|0;fS(e,B);hS(e,$O(f,c[47209]|0,106597)|0);n=0;i=1;break}if(!(H&1))if(!(H&576)){n=0;i=0}else{n=rN(f)|0;i=1}else{n=rN(f)|0;if(!((HJ(n,T,q)|0)<<24>>24)){hS(e,n);i=1}else{hS(e,c[T>>2]|0);i=c[T+4>>2]|0;o=XO(f,c[47235]|0,0,0)|0;p=+g[q>>2];if(!i)iS(e,137615,o,p);else iS(e,i,o,p);i=(H&2)>>>1|2}}B=sN(e,f)|0}else{B=$O(f,c[47204]|0,106541)|0;fS(e,B);hS(e,$O(f,c[47205]|0,106549)|0);n=0;i=1}while(0);o=c[(c[K>>2]|0)+8>>2]|0;if(a[o+12>>0]|0){o=c[o>>2]|0;if((a[o>>0]|0)==99){o=(f2(o,105820)|0)==0;P=33}else o=1}else{o=1;P=33}if((P|0)==33){o=o^1;if(!((y|0)!=0|i<<24>>24==0|o)){fS(e,137680);y=1;o=0}}C=(L|0)<3;D=(H&64|0)!=0;v=(H&512|0)!=0;E=(H&8|0)==0;w=(H&1024|0)==0;x=(H&2130706444|0)==0;u=0;while(1){r=(u|0)==0;z=i&255;A=v&r;if((u|0)>=(y|0))break;s=S(u,L)|0;t=c[47356]|0;q=0;while(1){if((q|0)>=(L|0))break;X=q+s|0;p=+h[I+(X<<4)+8>>3];W=c[K>>2]|0;h[t+(q<<4)>>3]=F*+h[I+(X<<4)>>3]+ +h[W+16>>3];h[t+(q<<4)+8>>3]=G*p+ +h[W+24>>3];q=q+1|0}do if(C){if(A?(F3(n,58)|0)!=0:0)if((dI(e,t,n)|0)>1){c[M>>2]=HB(f)|0;dA(3,106605,M)|0;i=0}else i=0;kS(e,c[47356]|0,L,i&255);if(!E)tN(e,f)}else{if(D){if(r?(hI(e,t,n,1)|0)>1:0){c[N>>2]=HB(f)|0;dA(3,106605,N)|0}lS(e,c[47356]|0,L,0);break}if(!w){fS(e,137680);lS(e,c[47356]|0,L,z);fS(e,B);oS(e,(c[47356]|0)+32|0,2);break}if(x){lS(e,t,L,z);break}else{RM(e,t,L,H,z);break}}while(0);u=u+1|0;i=0}q=c[(c[K>>2]|0)+8>>2]|0;if(!(a[q+12>>0]|0)){q=NA(f,109326)|0;if(q|0?a[q>>0]|0:0)P=65}else{q=c[q>>2]|0;if((a[q>>0]|0)==99?(f2(q,105820)|0)==0:0){q=NA(f,105827)|0;if(q|0?a[q>>0]|0:0)P=65}else P=65}if((P|0)==65){s=c[47356]|0;r=0;while(1){if((r|0)>=(L|0))break;p=+h[I+(r<<4)+8>>3];X=c[K>>2]|0;h[s+(r<<4)>>3]=F*+h[I+(r<<4)>>3]+ +h[X+16>>3];h[s+(r<<4)+8>>3]=G*p+ +h[X+24>>3];r=r+1|0}do if(!(o|i<<24>>24==0)){if(C){if(A?(F3(n,58)|0)!=0:0)if((dI(e,s,n)|0)>1){c[Q>>2]=HB(f)|0;dA(3,106605,Q)|0;i=0}else i=0;kS(e,c[47356]|0,L,i&255);if(E)break;tN(e,f);break}if(!D)if(!(H&12)){lS(e,s,L,z);break}else{RM(e,s,L,H,z);break}else{if((hI(e,s,n,1)|0)>1){c[R>>2]=HB(f)|0;dA(3,106605,R)|0}lS(e,c[47356]|0,L,0);break}}while(0);X=c[47356]|0;qS(e,q,X,L,i,_O(f,c[47228]|0,137609)|0)}l6(c[T>>2]|0);BK(e,10,c[(c[K>>2]|0)+104>>2]|0);if(J){if(c[O>>2]&4|0)aS(e,c[U>>2]|0,c[j>>2]|0,c[m>>2]|0,c[k>>2]|0);bS(e)}l=V;return}function qN(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+16|0;f=h;e=wN(d,f)|0;if(e|0)jS(b,e);e=c[47234]|0;if((e|0?(g=OA(d,e)|0,g|0):0)?a[g>>0]|0:0)sS(b,+YO(d,c[47234]|0,1.0,0.0));l=h;return c[f>>2]|0}function rN(a){a=a|0;return vN(a,135101)|0}function sN(b,d){b=b|0;d=d|0;d=$O(d,c[47202]|0,195341)|0;d=a[d>>0]|0?d:137615;fS(b,d);return d|0}function tN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,g=0,i=0.0,j=0,k=0,m=0;d=l;l=l+96|0;j=d+80|0;k=d+64|0;e=d+32|0;m=d+16|0;g=d;b=c[b+16>>2]|0;f=+h[b+80>>3]*.75*.5;h[m+8>>3]=f;i=+h[b+96>>3]*.6614;h[m>>3]=i;b=b+16|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];c[k+12>>2]=c[m+12>>2];c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];uN(g,k,j);c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];c[e+8>>2]=c[g+8>>2];c[e+12>>2]=c[g+12>>2];g=e+8|0;b=e+24|0;h[b>>3]=+h[g>>3];h[e+16>>3]=+h[e>>3]-i*2.0;oS(a,e,2);f=+h[g>>3]-f*2.0;h[g>>3]=f;h[b>>3]=f;oS(a,e,2);l=d;return}function uN(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=+h[b+8>>3]+ +h[c+8>>3];h[a>>3]=+h[b>>3]+ +h[c>>3];h[a+8>>3]=d;return}function vN(b,d){b=b|0;d=d|0;var e=0;e=$O(b,c[47203]|0,195341)|0;if(!(a[e>>0]|0)){e=$O(b,c[47202]|0,195341)|0;return ((a[e>>0]|0)==0?d:e)|0}else return e|0;return 0}function wN(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=$O(b,c[47219]|0,195341)|0;a:do if(!(a[e>>0]|0)){g=0;e=0}else{g=NI(e)|0;i=g;e=0;b:while(1){f=c[i>>2]|0;if(!f)break a;h=i+4|0;switch(a[f>>0]|0){case 102:{i=h;e=e|(f2(f,111402)|0)==0;continue b}case 114:{if(!(f2(f,106617)|0)){f=i;do{j=f;f=f+4|0;h=c[f>>2]|0;c[j>>2]=h}while((h|0)!=0);j=i;e=e|4;i=j;continue b}if(!(f2(f,106635)|0))f=i;else{j=e;i=h;e=j;continue b}do{h=f;f=f+4|0;j=c[f>>2]|0;c[h>>2]=j}while((j|0)!=0);j=i;e=e|3;i=j;continue b}case 100:{if(!(f2(f,106625)|0))f=i;else{j=e;i=h;e=j;continue b}do{h=f;f=f+4|0;j=c[f>>2]|0;c[h>>2]=j}while((j|0)!=0);j=i;e=e|8;i=j;continue b}case 105:{j=(f2(f,134636)|0)==0;i=h;e=j?e|32:e;continue b}case 115:{if(f2(f,106642)|0){j=e;i=h;e=j;continue b}if(!(xN(b)|0)){j=e;i=h;e=j;continue b}else f=i;do{h=f;f=f+4|0;j=c[f>>2]|0;c[h>>2]=j}while((j|0)!=0);j=i;e=e|64;i=j;continue b}case 119:{if(f2(f,106650)|0){j=e;i=h;e=j;continue b}if(!(yN(b)|0)){j=e;i=h;e=j;continue b}else f=i;do{h=f;f=f+4|0;j=c[f>>2]|0;c[h>>2]=j}while((j|0)!=0);j=i;e=e|512;i=j;continue b}default:{j=e;i=h;e=j;continue b}}}}while(0);f=c[(c[(c[b+16>>2]|0)+8>>2]|0)+8>>2]|0;if(f)e=c[f+40>>2]|e;c[d>>2]=e;return g|0}function xN(a){a=a|0;var b=0.0;a=c[(c[(c[a+16>>2]|0)+8>>2]|0)+8>>2]|0;if(!a)a=0;else{if(((c[a+8>>2]|0)==4?(b=+h[a+16>>3],((~~(b+(b>=0.0?.5:-.5))|0)%90|0|0)==0):0)?+h[a+24>>3]==0.0:0)a=+h[a+32>>3]==0.0;else a=0;a=a&1}return a|0}function yN(a){a=a|0;a=c[(c[(c[a+16>>2]|0)+8>>2]|0)+8>>2]|0;if(!a)a=0;else a=(c[a+8>>2]|0)<3&1;return a|0}function zN(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0,g=0.0,i=0.0;e=+h[c+8>>3];g=-(+h[d+8>>3]-e);i=+h[c>>3];f=+h[d>>3]-i;e=i*g+e*f;return (+h[a>>3]*g+f*+h[a+8>>3]-e>=0.0^+h[b>>3]*g+f*+h[b+8>>3]-e>=0.0^1)&1|0}function AN(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0.0,k=0.0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;H=l;l=l+192|0;D=H+176|0;F=H+160|0;m=H+144|0;B=H+128|0;C=H+112|0;o=H+96|0;p=H+80|0;w=H+64|0;x=H+48|0;y=H+32|0;z=H+16|0;E=H;G=F+8|0;if(!d){c[F>>2]=0;c[F+4>>2]=0;c[F+8>>2]=0;c[F+12>>2]=0;n=(c[(c[(uC(b)|0)+16>>2]|0)+116>>2]&1|0)==0;m=c[b+16>>2]|0;t=+h[m+80>>3]*.5;v=-t;s=+h[m+88>>3];u=-s;m=0;k=0.0;q=n?u:v;r=n?s:t;s=n?t:s;t=0.0;u=n?v:u}else{q=+h[d>>3];u=+h[d+8>>3];r=+h[d+16>>3];s=+h[d+24>>3];$M(m,(q+r)*.5,(u+s)*.5);c[F>>2]=c[m>>2];c[F+4>>2]=c[m+4>>2];c[F+8>>2]=c[m+8>>2];c[F+12>>2]=c[m+12>>2];m=1;k=+h[F>>3];t=+h[G>>3]}v=(r>s?r:s)*4.0;a:do if((f|0)!=0?(A=a[f>>0]|0,A<<24>>24!=0):0){f=f+1|0;n=(i|0)!=0;j=-v;switch(A<<24>>24|0){case 99:{p=1;g=0;f=0;n=0;j=0.0;o=0;break a}case 101:{if(a[f>>0]|0){p=1;g=0;f=0;n=0;j=0.0;o=1;break a}if(n){CN(B,i,t,v);c[F>>2]=c[B>>2];c[F+4>>2]=c[B+4>>2];c[F+8>>2]=c[B+8>>2];c[F+12>>2]=c[B+12>>2]}else h[F>>3]=r;p=0;g=g&2;f=0;n=1;j=0.0;o=0;m=1;break a}case 115:{h[G>>3]=u;switch(a[f>>0]|0){case 0:{if(n){CN(C,i,j,k);c[F>>2]=c[C>>2];c[F+4>>2]=c[C+4>>2];c[F+8>>2]=c[C+8>>2];c[F+12>>2]=c[C+12>>2]}else h[F>>3]=k;p=0;g=g&1;f=0;n=1;j=-1.5707963267948966;o=0;m=1;break a}case 101:{if(n){CN(o,i,j,v);c[F>>2]=c[o>>2];c[F+4>>2]=c[o+4>>2];c[F+8>>2]=c[o+8>>2];c[F+12>>2]=c[o+12>>2]}else h[F>>3]=r;p=0;g=g&3;f=0;n=1;j=-.7853981633974483;o=0;m=1;break a}case 119:{if(n){CN(p,i,j,j);c[F>>2]=c[p>>2];c[F+4>>2]=c[p+4>>2];c[F+8>>2]=c[p+8>>2];c[F+12>>2]=c[p+12>>2]}else h[F>>3]=q;p=0;g=g&9;f=0;n=1;j=-2.356194490192345;o=0;m=1;break a}default:{h[G>>3]=t;p=1;g=0;f=0;n=0;j=0.0;o=1;break a}}}case 119:{if(a[f>>0]|0){p=1;g=0;f=0;n=0;j=0.0;o=1;break a}if(n){CN(w,i,t,j);c[F>>2]=c[w>>2];c[F+4>>2]=c[w+4>>2];c[F+8>>2]=c[w+8>>2];c[F+12>>2]=c[w+12>>2]}else h[F>>3]=q;p=0;g=g&8;f=0;n=1;j=3.141592653589793;o=0;m=1;break a}case 110:{h[G>>3]=s;switch(a[f>>0]|0){case 0:{if(n){CN(x,i,v,k);c[F>>2]=c[x>>2];c[F+4>>2]=c[x+4>>2];c[F+8>>2]=c[x+8>>2];c[F+12>>2]=c[x+12>>2]}else h[F>>3]=k;p=0;g=g&4;f=0;n=1;j=1.5707963267948966;o=0;m=1;break a}case 101:{if(n){CN(y,i,v,v);c[F>>2]=c[y>>2];c[F+4>>2]=c[y+4>>2];c[F+8>>2]=c[y+8>>2];c[F+12>>2]=c[y+12>>2]}else h[F>>3]=r;p=0;g=g&6;f=0;n=1;j=.7853981633974483;o=0;m=1;break a}case 119:{if(n){CN(z,i,v,j);c[F>>2]=c[z>>2];c[F+4>>2]=c[z+4>>2];c[F+8>>2]=c[z+8>>2];c[F+12>>2]=c[z+12>>2]}else h[F>>3]=q;p=0;g=g&12;f=0;n=1;j=2.356194490192345;o=0;m=1;break a}default:{h[G>>3]=t;p=1;g=0;f=0;n=0;j=0.0;o=1;break a}}}case 95:{p=1;f=1;n=0;j=0.0;o=0;break a}default:{p=1;g=0;f=0;n=0;j=0.0;o=1;break a}}}else{p=1;g=0;f=0;n=0;j=0.0;o=0}while(0);C=(c[(c[(uC(b)|0)+16>>2]|0)+116>>2]&3)*90|0;c[D>>2]=c[F>>2];c[D+4>>2]=c[F+4>>2];c[D+8>>2]=c[F+8>>2];c[D+12>>2]=c[F+12>>2];jK(E,D,C);c[F>>2]=c[E>>2];c[F+4>>2]=c[E+4>>2];c[F+8>>2]=c[E+8>>2];c[F+12>>2]=c[E+12>>2];if(!(f<<24>>24))g=DN(g,c[(c[(uC(b)|0)+16>>2]|0)+116>>2]&3)|0;a[e+33>>0]=g;c[e+24>>2]=d;k=+h[F>>3];h[e>>3]=+(~~(k+(k>=0.0?.5:-.5))|0);k=+h[G>>3];h[e+8>>3]=+(~~(k+(k>=0.0?.5:-.5))|0);h[e+16>>3]=+EN(j,c[(c[(uC(b)|0)+16>>2]|0)+116>>2]&3);k=+h[F>>3];j=+h[G>>3];if(k==0.0&j==0.0)g=-128;else{v=+O(+j,+k)+4.71238898038469;g=~~((!(v>=6.283185307179586)?v:v+-6.283185307179586)*256.0/6.283185307179586)&255}a[e+32>>0]=g;a[e+29>>0]=n;a[e+28>>0]=m;a[e+30>>0]=p;a[e+31>>0]=f;l=H;return o|0}function BN(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=HB(a)|0;c[e+4>>2]=b;dA(0,106720,e)|0;l=d;return}function CN(a,b,d,e){a=a|0;b=b|0;d=+d;e=+e;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;p=l;l=l+128|0;i=p+112|0;j=p+48|0;k=p+16|0;m=p+32|0;n=p;o=c[b>>2]|0;g=c[(c[(uC(o)|0)+16>>2]|0)+116>>2]&3;h[k>>3]=e;h[k+8>>3]=d;f=(g|0)!=0;g=g*90|0;if(f){c[i>>2]=c[k>>2];c[i+4>>2]=c[k+4>>2];c[i+8>>2]=c[k+8>>2];c[i+12>>2]=c[k+12>>2];jK(m,i,g);c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];c[k+12>>2]=c[m+12>>2]}m=j+48|0;q=j+32|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;c[j+20>>2]=0;c[j+24>>2]=0;c[j+28>>2]=0;c[q>>2]=c[k>>2];c[q+4>>2]=c[k+4>>2];c[q+8>>2]=c[k+8>>2];c[q+12>>2]=c[k+12>>2];c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];c[m+12>>2]=c[k+12>>2];ZN(b,c[(c[(c[(c[o+16>>2]|0)+8>>2]|0)+4>>2]|0)+12>>2]|0,j,1);if(f){c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];kK(n,i,g);c[j>>2]=c[n>>2];c[j+4>>2]=c[n+4>>2];c[j+8>>2]=c[n+8>>2];c[j+12>>2]=c[n+12>>2]};c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];c[a+12>>2]=c[j+12>>2];l=p;return}function DN(a,b){a=a|0;b=b|0;a:do switch(b|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 EN(a,b){a=+a;b=b|0;switch(b|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 FN(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0.0,g=0.0,i=0,j=0,k=0;e=l;l=l+32|0;k=e+16|0;i=e;a=c[a>>2]|0;j=(c[(c[(uC(a)|0)+16>>2]|0)+116>>2]&3)*90|0;c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];c[k+12>>2]=c[b+12>>2];kK(i,k,j);d=+h[i>>3];g=+h[i+8>>3];a=c[a+16>>2]|0;f=+h[a+80>>3]*.5;if(!(!(g>=-f)|!(g<=f))?d>=-+h[a+88>>3]:0)a=d<=+h[a+96>>3]&1;else a=0;l=e;return a|0}function GN(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0;q=l;l=l+32|0;p=q;e=c[a+16>>2]|0;n=e+208|0;m=c[n>>2]|0;if(!m)o=(b[e+260>>1]&1)!=0;else o=1;g=d+16|0;d=c[g>>2]|0;i=c[d+12>>2]|0;if(i|0){j=e+212|0;k=e+244|0;e=e+228|0;f=a+152|0;if(o?(c[f>>2]&4|0)==0:0){aS(a,m,c[e>>2]|0,c[k>>2]|0,c[j>>2]|0);d=c[g>>2]|0}m=c[a+36>>2]|0;s=+h[d+24>>3]+ +(c[i+8>>2]|0);r=c[i>>2]|0;h[p>>3]=+h[d+16>>3]+ +(c[i+4>>2]|0);h[p+8>>3]=s;c[p+16>>2]=r;z4(m,106751,p)|0;m=c[g>>2]|0;p=(c[m+104>>2]|0)+56|0;m=m+16|0;c[p>>2]=c[m>>2];c[p+4>>2]=c[m+4>>2];c[p+8>>2]=c[m+8>>2];c[p+12>>2]=c[m+12>>2];BK(a,10,c[(c[g>>2]|0)+104>>2]|0);if(o){if(c[f>>2]&4|0)aS(a,c[n>>2]|0,c[e>>2]|0,c[k>>2]|0,c[j>>2]|0);bS(a)}}l=q;return}function HN(a){a=a|0;cN(c[(c[a+16>>2]|0)+12>>2]|0);return}function IN(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0;m=l;l=l+64|0;k=m+40|0;h=m;if(!(a[f>>0]|0)){h=4256;g=b+40|0;do{c[b>>2]=c[h>>2];b=b+4|0;h=h+4|0}while((b|0)<(g|0))}else{g=(g|0)==0?106657:g;i=c[(c[e+16>>2]|0)+12>>2]|0;j=ON(i,f)|0;if(!j){if(AN(e,i+16|0,h,f,15,0)|0)BN(e,f)}else if(AN(e,j+16|0,h,g,d[j+65>>0]|0,0)|0){c[k>>2]=HB(e)|0;c[k+4>>2]=f;c[k+8>>2]=g;dA(0,106659,k)|0}g=b+40|0;do{c[b>>2]=c[h>>2];b=b+4|0;h=h+4|0}while((b|0)<(g|0))}l=m;return}function JN(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0,g=0,i=0,j=0.0,k=0,m=0,n=0.0;k=l;l=l+32|0;m=k+16|0;i=k;f=c[a+4>>2]|0;a=c[a>>2]|0;g=(c[(c[(uC(a)|0)+16>>2]|0)+116>>2]&3)*90|0;c[m>>2]=c[b>>2];c[m+4>>2]=c[b+4>>2];c[m+8>>2]=c[b+8>>2];c[m+12>>2]=c[b+12>>2];kK(i,m,g);c[b>>2]=c[i>>2];c[b+4>>2]=c[i+4>>2];c[b+8>>2]=c[i+8>>2];c[b+12>>2]=c[i+12>>2];if(!f){f=c[(c[a+16>>2]|0)+12>>2]|0;g=f+16|0;a=f+24|0;i=f+32|0;f=f+40|0}else{g=f;a=f+8|0;i=f+16|0;f=f+24|0}e=+h[a>>3];d=+h[f>>3];n=+h[b>>3];if((+h[g>>3]<=n?n<=+h[i>>3]:0)?(j=+h[b+8>>3],e<=j):0)a=j<=d&1;else a=0;l=k;return a|0}function KN(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0.0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0,u=0,v=0.0;u=l;l=l+80|0;r=u+64|0;q=u+32|0;t=u;a:do if(!(a[d+28>>0]|0))e=0;else{i=+h[d>>3];p=b+16|0;m=c[(c[p>>2]|0)+12>>2]|0;k=m+48|0;m=m+56|0;d=0;while(1){if((d|0)>=(c[k>>2]|0))break a;n=(c[(c[(uC(b)|0)+16>>2]|0)+116>>2]&1|0)==0;o=c[(c[m>>2]|0)+(d<<2)>>2]|0;j=+(~~+h[(n?o+16|0:o+24|0)>>3]|0);if(j<=i?(s=+(~~+h[(n?o+32|0:o+40|0)>>3]|0),i<=s):0)break;d=d+1|0}if(!(c[(c[(uC(b)|0)+16>>2]|0)+116>>2]&1)){t=c[p>>2]|0;v=+h[t+16>>3];h[f>>3]=j+v;j=+h[t+24>>3];i=+h[t+80>>3];h[f+8>>3]=j-i*.5;h[f+16>>3]=s+v}else{o=(c[(c[m>>2]|0)+(d<<2)>>2]|0)+16|0;b=(c[p>>2]|0)+16|0;c[q>>2]=c[o>>2];c[q+4>>2]=c[o+4>>2];c[q+8>>2]=c[o+8>>2];c[q+12>>2]=c[o+12>>2];c[q+16>>2]=c[o+16>>2];c[q+20>>2]=c[o+20>>2];c[q+24>>2]=c[o+24>>2];c[q+28>>2]=c[o+28>>2];c[r>>2]=c[b>>2];c[r+4>>2]=c[b+4>>2];c[r+8>>2]=c[b+8>>2];c[r+12>>2]=c[b+12>>2];lK(t,q,r);c[f>>2]=c[t>>2];c[f+4>>2]=c[t+4>>2];c[f+8>>2]=c[t+8>>2];c[f+12>>2]=c[t+12>>2];c[f+16>>2]=c[t+16>>2];c[f+20>>2]=c[t+20>>2];c[f+24>>2]=c[t+24>>2];c[f+28>>2]=c[t+28>>2];t=c[p>>2]|0;i=+h[t+80>>3];j=+h[t+24>>3]}h[f+24>>3]=j+i*.5;c[g>>2]=1}while(0);l=u;return e|0}function LN(d,e){d=d|0;e=e|0;var f=0,i=0,j=0,k=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0;z=l;l=l+144|0;p=z+96|0;r=z+64|0;t=z;w=z+128|0;f=c[d+16>>2]|0;x=f+208|0;i=c[x>>2]|0;if(!i)y=(b[f+260>>1]&1)!=0;else y=1;m=e+16|0;s=c[m>>2]|0;q=c[s+12>>2]|0;u=q+16|0;c[r>>2]=c[u>>2];c[r+4>>2]=c[u+4>>2];c[r+8>>2]=c[u+8>>2];c[r+12>>2]=c[u+12>>2];c[r+16>>2]=c[u+16>>2];c[r+20>>2]=c[u+20>>2];c[r+24>>2]=c[u+24>>2];c[r+28>>2]=c[u+28>>2];A=+h[s+16>>3];h[r>>3]=A+ +h[r>>3];k=+h[s+24>>3];s=r+8|0;h[s>>3]=k+ +h[s>>3];s=r+16|0;h[s>>3]=A+ +h[s>>3];u=r+24|0;h[u>>3]=k+ +h[u>>3];u=f+228|0;v=f+212|0;n=f+244|0;o=d+152|0;if(y?(c[o>>2]&4|0)==0:0)aS(d,i,c[u>>2]|0,c[n>>2]|0,c[v>>2]|0);f=qN(d,e)|0;sN(d,e)|0;c[w>>2]=0;if(!(f&1))i=0;else{i=rN(e)|0;if(!((HJ(i,w,p)|0)<<24>>24)){hS(d,i);i=1}else{hS(d,c[w>>2]|0);i=c[w+4>>2]|0;j=XO(e,c[47235]|0,0,0)|0;k=+g[p>>2];if(!i)iS(d,137615,j,k);else iS(d,i,j,k);i=f>>>1&1|2}}j=c[c[(c[m>>2]|0)+8>>2]>>2]|0;if((a[j>>0]|0)==77){m=(f2(j,106528)|0)==0;f=m?f|4:f}if(!(f&2130706444)){c[p>>2]=c[r>>2];c[p+4>>2]=c[r+4>>2];c[p+8>>2]=c[r+8>>2];c[p+12>>2]=c[r+12>>2];c[p+16>>2]=c[r+16>>2];c[p+20>>2]=c[r+20>>2];c[p+24>>2]=c[r+24>>2];c[p+28>>2]=c[r+28>>2];mS(d,p,i)}else{c[t>>2]=c[r>>2];c[t+4>>2]=c[r+4>>2];c[t+8>>2]=c[r+8>>2];c[t+12>>2]=c[r+12>>2];r=t+32|0;c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];c[r+8>>2]=c[s+8>>2];c[r+12>>2]=c[s+12>>2];h[t+16>>3]=+h[r>>3];h[t+24>>3]=+h[t+8>>3];h[t+48>>3]=+h[t>>3];h[t+56>>3]=+h[t+40>>3];RM(d,t,4,f,i)}MN(d,e,q);l6(c[w>>2]|0);if(y){if(c[o>>2]&4|0)aS(d,c[x>>2]|0,c[u>>2]|0,c[n>>2]|0,c[v>>2]|0);bS(d)}l=z;return}function MN(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+144|0;p=u+128|0;o=u+112|0;q=u+16|0;r=u;i=u+96|0;j=u+80|0;s=u+64|0;t=u+48|0;k=e+52|0;g=c[k>>2]|0;f=d+16|0;if(g){n=g+56|0;g=e+16|0;m=e+32|0;c[o>>2]=c[g>>2];c[o+4>>2]=c[g+4>>2];c[o+8>>2]=c[g+8>>2];c[o+12>>2]=c[g+12>>2];c[p>>2]=c[m>>2];c[p+4>>2]=c[m+4>>2];c[p+8>>2]=c[m+8>>2];c[p+12>>2]=c[m+12>>2];NN(i,o,p);m=(c[f>>2]|0)+16|0;c[o>>2]=c[i>>2];c[o+4>>2]=c[i+4>>2];c[o+8>>2]=c[i+8>>2];c[o+12>>2]=c[i+12>>2];c[p>>2]=c[m>>2];c[p+4>>2]=c[m+4>>2];c[p+8>>2]=c[m+8>>2];c[p+12>>2]=c[m+12>>2];uN(j,o,p);c[n>>2]=c[j>>2];c[n+4>>2]=c[j+4>>2];c[n+8>>2]=c[j+8>>2];c[n+12>>2]=c[j+12>>2];BK(b,10,c[k>>2]|0);sN(b,d)|0}m=(c[f>>2]|0)+16|0;c[r>>2]=c[m>>2];c[r+4>>2]=c[m+4>>2];c[r+8>>2]=c[m+8>>2];c[r+12>>2]=c[m+12>>2];m=e+48|0;n=e+56|0;j=e+64|0;k=q+16|0;i=0;while(1){if((i|0)>=(c[m>>2]|0))break;if((i|0)>0){f=(c[n>>2]|0)+(i<<2)|0;g=c[f>>2]|0;if(!(a[j>>0]|0)){g=g+32|0;c[k>>2]=c[g>>2];c[k+4>>2]=c[g+4>>2];c[k+8>>2]=c[g+8>>2];c[k+12>>2]=c[g+12>>2];h[q>>3]=+h[(c[f>>2]|0)+16>>3];f=k;g=0}else{g=g+16|0;c[q>>2]=c[g>>2];c[q+4>>2]=c[g+4>>2];c[q+8>>2]=c[g+8>>2];c[q+12>>2]=c[g+12>>2];h[k>>3]=+h[q>>3];f=(c[f>>2]|0)+32|0;g=1}h[q+(g<<4)+8>>3]=+h[f+8>>3];c[o>>2]=c[q>>2];c[o+4>>2]=c[q+4>>2];c[o+8>>2]=c[q+8>>2];c[o+12>>2]=c[q+12>>2];c[p>>2]=c[r>>2];c[p+4>>2]=c[r+4>>2];c[p+8>>2]=c[r+8>>2];c[p+12>>2]=c[r+12>>2];uN(s,o,p);c[q>>2]=c[s>>2];c[q+4>>2]=c[s+4>>2];c[q+8>>2]=c[s+8>>2];c[q+12>>2]=c[s+12>>2];c[o>>2]=c[k>>2];c[o+4>>2]=c[k+4>>2];c[o+8>>2]=c[k+8>>2];c[o+12>>2]=c[k+12>>2];c[p>>2]=c[r>>2];c[p+4>>2]=c[r+4>>2];c[p+8>>2]=c[r+8>>2];c[p+12>>2]=c[r+12>>2];uN(t,o,p);c[k>>2]=c[t>>2];c[k+4>>2]=c[t+4>>2];c[k+8>>2]=c[t+8>>2];c[k+12>>2]=c[t+12>>2];oS(b,q,2)}MN(b,d,c[(c[n>>2]|0)+(i<<2)>>2]|0);i=i+1|0}l=u;return}function NN(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=(+h[b+8>>3]+ +h[c+8>>3])*.5;h[a>>3]=(+h[b>>3]+ +h[c>>3])*.5;h[a+8>>3]=d;return}function ON(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=c[b+60>>2]|0;if(!(((e|0)!=0?(a[e>>0]|0)==(a[d>>0]|0):0)?(f2(e,d)|0)==0:0))f=4;a:do if((f|0)==4){g=b+56|0;f=c[b+48>>2]|0;e=0;while(1){if((e|0)>=(f|0)){b=0;break a}b=ON(c[(c[g>>2]|0)+(e<<2)>>2]|0,d)|0;if(!b)e=e+1|0;else break}}while(0);return b|0}function PN(a,b){a=a|0;b=b|0;var d=0;d=b+8|0;h[d>>3]=+h[d>>3]*1.375;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];return}function QN(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,g=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0;f=+h[b>>3]*.5;m=+h[b+8>>3];i=m*.5;m=m/11.0;h[a>>3]=f;e=i-m;h[a+8>>3]=e;h[a+16>>3]=f;g=i-m*.44821599999999995;h[a+24>>3]=g;j=f*.551784;h[a+32>>3]=j;h[a+40>>3]=i;h[a+48>>3]=0.0;h[a+56>>3]=i;k=f*-.551784;h[a+64>>3]=k;h[a+72>>3]=i;l=-f;h[a+80>>3]=l;h[a+88>>3]=g;d=a+96|0;h[d>>3]=l;h[a+104>>3]=e;b=a+112|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];b=a+128|0;h[b>>3]=l;h[a+136>>3]=m-i;d=a+144|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];h[a+160>>3]=l;g=-g;h[a+168>>3]=g;h[a+176>>3]=k;i=-i;h[a+184>>3]=i;h[a+192>>3]=0.0;h[a+200>>3]=i;h[a+208>>3]=j;h[a+216>>3]=i;h[a+224>>3]=f;h[a+232>>3]=g;d=a+240|0;h[d>>3]=f;h[a+248>>3]=-e;b=a+256|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];b=a+288|0;d=a+272|0;c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];c[d+12>>2]=c[a+12>>2];c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];c[b+12>>2]=c[a+12>>2];return}function RN(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0,g=0.0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=l;l=l+144|0;u=x+112|0;t=x+96|0;w=x+80|0;s=x+64|0;v=x+32|0;q=x+16|0;r=x;f=x+48|0;do if(a){j=c[a+4>>2]|0;k=c[a>>2]|0;o=(c[(c[(uC(k)|0)+16>>2]|0)+116>>2]&3)*90|0;c[u>>2]=c[b>>2];c[u+4>>2]=c[b+4>>2];c[u+8>>2]=c[b+8>>2];c[u+12>>2]=c[b+12>>2];kK(f,u,o);c[v>>2]=c[f>>2];c[v+4>>2]=c[f+4>>2];c[v+8>>2]=c[f+8>>2];c[v+12>>2]=c[f+12>>2];f=v+8|0;if(j|0){d=+h[v>>3];if(!(+h[j>>3]<=d)){a=0;break}if(!(d<=+h[j+16>>3])){a=0;break}d=+h[f>>3];if(!(+h[j+8>>3]<=d)){a=0;break}a=d<=+h[j+24>>3];break}if((k|0)==(c[47362]|0)){d=+h[23330];e=+h[23331];i=+h[23332]}else{a=k+16|0;b=c[(c[a>>2]|0)+12>>2]|0;c[47363]=b;c[47364]=c[b+44>>2];c[47365]=c[b+8>>2];if(!(c[b+40>>2]&2048)){n=(c[(c[(uC(k)|0)+16>>2]|0)+116>>2]&1|0)==0;o=c[a>>2]|0;h[(n?186664:186672)>>3]=+h[o+88>>3]+ +h[o+96>>3];h[(n?186672:186664)>>3]=+h[o+80>>3];i=+h[o+32>>3]*72.0;g=+h[o+40>>3]*72.0;g=+(~~(g+(g>=0.0?.5:-.5))|0);i=+(~~(i+(i>=0.0?.5:-.5))|0)}else{wP(u,b);i=+h[u+16>>3]-+h[u>>3];g=+h[u+24>>3]-+h[u+8>>3];o=(c[(c[(uC(k)|0)+16>>2]|0)+116>>2]&1|0)==0;h[(o?186664:186672)>>3]=i;h[(o?186672:186664)>>3]=g}d=+h[23333];if(d==0.0){h[23333]=1.0;d=1.0}e=+h[23334];if(e==0.0){h[23334]=1.0;e=1.0}d=i/d;h[23330]=d;e=g/e;h[23331]=e;i=i*.5;h[23332]=i;h[23335]=g*.5;o=S((c[(c[47363]|0)+4>>2]|0)+-1|0,c[47365]|0)|0;c[47366]=(o|0)>0?o:0;c[47362]=k}g=d*+h[v>>3];h[v>>3]=g;d=e*+h[f>>3];h[f>>3]=d;if(!(+F(+g)>i)?(e=+F(+d),p=+h[23335],!(e>p)):0){o=c[47365]|0;if((o|0)<3){a=+c2(g/i,d/p)<1.0;break}b=(c[47367]|0)%(o|0)|0;a=(b+1|0)%(o|0)|0;k=c[47364]|0;m=c[47366]|0;n=k+(m+b<<4)|0;c[q>>2]=c[n>>2];c[q+4>>2]=c[n+4>>2];c[q+8>>2]=c[n+8>>2];c[q+12>>2]=c[n+12>>2];n=k+(m+a<<4)|0;c[r>>2]=c[n>>2];c[r+4>>2]=c[n+4>>2];c[r+8>>2]=c[n+8>>2];c[r+12>>2]=c[n+12>>2];c[s>>2]=c[v>>2];c[s+4>>2]=c[v+4>>2];c[s+8>>2]=c[v+8>>2];c[s+12>>2]=c[v+12>>2];c[w>>2]=c[46672];c[w+4>>2]=c[46673];c[w+8>>2]=c[46674];c[w+12>>2]=c[46675];c[t>>2]=c[q>>2];c[t+4>>2]=c[q+4>>2];c[t+8>>2]=c[q+8>>2];c[t+12>>2]=c[q+12>>2];c[u>>2]=c[n>>2];c[u+4>>2]=c[n+4>>2];c[u+8>>2]=c[n+8>>2];c[u+12>>2]=c[n+12>>2];if(zN(s,w,t,u)|0){c[s>>2]=c[v>>2];c[s+4>>2]=c[v+4>>2];c[s+8>>2]=c[v+8>>2];c[s+12>>2]=c[v+12>>2];c[w>>2]=c[q>>2];c[w+4>>2]=c[q+4>>2];c[w+8>>2]=c[q+8>>2];c[w+12>>2]=c[q+12>>2];c[t>>2]=c[r>>2];c[t+4>>2]=c[r+4>>2];c[t+8>>2]=c[r+8>>2];c[t+12>>2]=c[r+12>>2];c[u>>2]=c[46672];c[u+4>>2]=c[46673];c[u+8>>2]=c[46674];c[u+12>>2]=c[46675];n=(zN(s,w,t,u)|0)!=0;if(n?(c[s>>2]=c[v>>2],c[s+4>>2]=c[v+4>>2],c[s+8>>2]=c[v+8>>2],c[s+12>>2]=c[v+12>>2],c[w>>2]=c[r>>2],c[w+4>>2]=c[r+4>>2],c[w+8>>2]=c[r+8>>2],c[w+12>>2]=c[r+12>>2],c[t>>2]=c[46672],c[t+4>>2]=c[46673],c[t+8>>2]=c[46674],c[t+12>>2]=c[46675],c[u>>2]=c[q>>2],c[u+4>>2]=c[q+4>>2],c[u+8>>2]=c[q+8>>2],c[u+12>>2]=c[q+12>>2],(zN(s,w,t,u)|0)!=0):0){a=1;break}else{j=b;b=1}while(1){if((b|0)>=(o|0)){b=31;break}if(n){f=a;a=(a+1|0)%(o|0)|0}else{f=(j+-1+o|0)%(o|0)|0;a=j}q=k+(m+f<<4)|0;r=k+(m+a<<4)|0;c[s>>2]=c[v>>2];c[s+4>>2]=c[v+4>>2];c[s+8>>2]=c[v+8>>2];c[s+12>>2]=c[v+12>>2];c[w>>2]=c[46672];c[w+4>>2]=c[46673];c[w+8>>2]=c[46674];c[w+12>>2]=c[46675];c[t>>2]=c[q>>2];c[t+4>>2]=c[q+4>>2];c[t+8>>2]=c[q+8>>2];c[t+12>>2]=c[q+12>>2];c[u>>2]=c[r>>2];c[u+4>>2]=c[r+4>>2];c[u+8>>2]=c[r+8>>2];c[u+12>>2]=c[r+12>>2];if(!(zN(s,w,t,u)|0)){b=30;break}else{j=f;b=b+1|0}}if((b|0)==30){c[47367]=f;a=0;break}else if((b|0)==31){c[47367]=j;a=1;break}}else a=0}else a=0}else{c[47362]=0;a=0}while(0);l=x;return a&1|0}function SN(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0,g=0.0,i=0,j=0,k=0;j=l;l=l+32|0;f=j+16|0;i=j;if(a){a=c[a>>2]|0;k=(c[(c[(uC(a)|0)+16>>2]|0)+116>>2]&3)*90|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];kK(i,f,k);g=+h[i>>3];e=+h[i+8>>3];if((a|0)==(c[47370]|0))d=+h[23338];else{i=c[(c[a+16>>2]|0)+12>>2]|0;k=(c[i+4>>2]<<1)+-2|0;d=+h[(c[i+44>>2]|0)+((((k|0)>0?k:0)|1)<<4)>>3];h[23338]=d;c[47370]=a}if(!(+F(+g)>d)?!(+F(+e)>d):0)a=+c2(g,e)<=d&1;else a=0}else{c[47370]=0;a=0}l=j;return a|0}function TN(e,f){e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0;w=l;l=l+16|0;p=w;m=c[e+16>>2]|0;v=m+208|0;n=c[v>>2]|0;if(!n){i=m+228|0;j=m+212|0;k=m+244|0;g=e+152|0;if(!(b[m+260>>1]&1)){u=i;t=0}else o=4}else{g=e+152|0;i=m+228|0;k=m+244|0;j=m+212|0;o=4}if((o|0)==4)if(!(c[g>>2]&4)){aS(e,n,c[i>>2]|0,c[k>>2]|0,c[j>>2]|0);u=i;t=1}else{u=i;t=1}q=f+16|0;n=c[(c[q>>2]|0)+12>>2]|0;r=c[n+44>>2]|0;s=c[n+8>>2]|0;n=c[n+4>>2]|0;if((c[47368]|0)<(s|0)){m=s+2|0;c[47368]=m;i=c[47369]|0;m=m<<4;if(!i)i=IK(m)|0;else i=KK(i,m)|0;c[47369]=i}wN(f,p)|0;if(!(c[p>>2]&32))jS(e,22068);else jS(e,22064);i=c[47234]|0;if(i|0)sS(e,+YO(f,i,1.0,0.0));i=d[(c[q>>2]|0)+117>>0]|0;do if(!(i&1)){if(i&2|0){fS(e,$O(f,c[47206]|0,106557)|0);i=$O(f,c[47207]|0,106565)|0;hS(e,i);break}if(i&8|0){fS(e,$O(f,c[47210]|0,106573)|0);i=$O(f,c[47211]|0,106581)|0;hS(e,i);break}if(!(i&4)){i=vN(f,137615)|0;hS(e,i);sN(e,f)|0;break}else{fS(e,$O(f,c[47208]|0,106589)|0);i=$O(f,c[47209]|0,106597)|0;hS(e,i);break}}else{fS(e,$O(f,c[47204]|0,106541)|0);i=$O(f,c[47205]|0,106549)|0;hS(e,i)}while(0);if(!n)if(!(a[i>>0]|0))m=1;else{fS(e,i);m=1}else m=n;n=1;o=0;while(1){if((o|0)>=(m|0))break;p=c[47369]|0;f=S(o,s)|0;i=0;while(1){if((i|0)>=(s|0))break;z=i+f|0;y=+h[r+(z<<4)+8>>3];x=c[q>>2]|0;h[p+(i<<4)>>3]=+h[r+(z<<4)>>3]+ +h[x+16>>3];h[p+(i<<4)+8>>3]=y+ +h[x+24>>3];i=i+1|0}kS(e,p,s,n);n=0;o=o+1|0}if(t){if(c[g>>2]&4|0)aS(e,c[v>>2]|0,c[u>>2]|0,c[k>>2]|0,c[j>>2]|0);bS(e)}l=w;return}function UN(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0;g=l;l=l+48|0;h=g;e=VN(b,e,f)|0;c[h+36>>2]=c[f+36>>2];AN(b,c[f+24>>2]|0,h,e,d[f+33>>0]|0,0)|0;b=h;e=a+40|0;do{c[a>>2]=c[b>>2];a=a+4|0;b=b+4|0}while((a|0)<(e|0));l=g;return}function VN(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0.0,j=0,k=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0.0,C=0;z=l;l=l+32|0;y=z;j=z+24|0;n=z+16|0;x=c[(c[(c[(uC(b)|0)+60>>2]|0)+16>>2]|0)+116>>2]&3;f=b+16|0;w=(c[f>>2]|0)+16|0;c[y>>2]=c[w>>2];c[y+4>>2]=c[w+4>>2];c[y+8>>2]=c[w+8>>2];c[y+12>>2]=c[w+12>>2];WN(j,y,x);w=(c[d+16>>2]|0)+16|0;c[y>>2]=c[w>>2];c[y+4>>2]=c[w+4>>2];c[y+8>>2]=c[w+8>>2];c[y+12>>2]=c[w+12>>2];WN(n,y,x);x=a[e+33>>0]|0;y=x&255;a:do switch(x<<24>>24){case 0:case 15:{d=0;break}default:{d=c[e+24>>2]|0;if(!d){x=(c[(c[(uC(b)|0)+16>>2]|0)+116>>2]&1|0)==0;w=c[f>>2]|0;B=+h[w+80>>3]*.5;A=-B;k=+h[w+88>>3];g=-k;m=x?g:A;i=x?k:B;k=x?B:k;g=x?A:g}else{m=+h[d>>3];i=+h[d+16>>3];k=+h[d+24>>3];g=+h[d+8>>3]}v=~~((g+k)*.5);w=~~((m+i)*.5);x=c[j>>2]|0;t=c[j+4>>2]|0;u=c[n>>2]|0;s=c[n+4>>2]|0;r=~~g;q=~~i;p=~~k;o=~~m;j=0;n=0;d=0;e=0;b=0;while(1){if((n|0)==4)break a;if(1<<n&y){switch(n|0){case 0:{e=w;b=r;break}case 1:{e=q;b=v;break}case 2:{e=w;b=p;break}case 3:{e=o;b=v;break}default:{}}e=x+e|0;b=t+b|0;f=e-u|0;C=b-s|0;f=(S(C,C)|0)+(S(f,f)|0)|0;if((d|0)==0|(f|0)<(j|0))d=c[22076+(n<<2)>>2]|0;else f=j}else f=j;j=f;n=n+1|0}}}while(0);l=z;return d|0}function WN(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,g=0;g=b+8|0;switch(d|0){case 0:{f=+h[b>>3];e=+h[g>>3];break}case 2:{f=+h[b>>3];e=-+h[g>>3];break}case 1:{f=-+h[g>>3];e=+h[b>>3];break}case 3:{f=+h[g>>3];e=+h[b>>3];break}default:{f=0.0;e=0.0}}c[a>>2]=~~(f+(f>=0.0?.5:-.5));c[a+4>>2]=~~(e+(e>=0.0?.5:-.5));return}function XN(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+80|0;f=k+40|0;i=k;g=b+16|0;e=c[g>>2]|0;d=e+16|0;j=b+-48|0;h=b+48|0;if(a[e+47>>0]|0){e=c[b>>2]&3;UN(f,c[((e|0)==3?b:h)+40>>2]|0,c[((e|0)==2?b:j)+40>>2]|0,d);e=f;f=d+40|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(f|0));e=c[g>>2]|0}d=e+56|0;if(a[e+87>>0]|0){e=c[b>>2]&3;UN(i,c[((e|0)==2?b:j)+40>>2]|0,c[((e|0)==3?b:h)+40>>2]|0,d);e=i;f=d+40|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(f|0))}l=k;return}function YN(){var a=0,b=0,d=0;a=l;l=l+32|0;b=a+16|0;d=a;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];RN(0,b)|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];SN(0,b)|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];nN(0,b)|0;l=a;return}function ZN(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0.0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=l;l=l+192|0;s=z+176|0;x=z+112|0;y=z+48|0;t=z+32|0;u=z+24|0;v=z+16|0;w=z;if(!(e<<24>>24)){k=d+48|0;c[t>>2]=c[k>>2];c[t+4>>2]=c[k+4>>2];c[t+8>>2]=c[k+8>>2];c[t+12>>2]=c[k+12>>2];k=u;m=v;n=x;o=0}else{c[t>>2]=c[d>>2];c[t+4>>2]=c[d+4>>2];c[t+8>>2]=c[d+8>>2];c[t+12>>2]=c[d+12>>2];k=v;m=u;n=0;o=x}h[u>>3]=0.0;h[v>>3]=1.0;q=t+8|0;f=0.0;g=1.0;j=0;p=+h[t>>3];while(1){r=+h[q>>3];f=(g+f)*.5;iP(w,d,3,f,n,o);c[t>>2]=c[w>>2];c[t+4>>2]=c[w+4>>2];c[t+8>>2]=c[w+8>>2];c[t+12>>2]=c[w+12>>2];c[s>>2]=c[w>>2];c[s+4>>2]=c[w+4>>2];c[s+8>>2]=c[w+8>>2];c[s+12>>2]=c[w+12>>2];a:do if(!((vb[b&127](a,s)|0)<<24>>24)){e=0;while(1){if((e|0)==4){e=k;j=1;break a}j=y+(e<<4)|0;A=x+(e<<4)|0;c[j>>2]=c[A>>2];c[j+4>>2]=c[A+4>>2];c[j+8>>2]=c[A+8>>2];c[j+12>>2]=c[A+12>>2];e=e+1|0}}else e=m;while(0);h[e>>3]=f;i=+h[t>>3];p=p-i;if(!((p>=0.0?p:-p)>.5)?(r=r-+h[q>>3],!((r>=0.0?r:-r)>.5)):0)break;f=+h[u>>3];g=+h[v>>3];p=i}b:do if(!(j<<24>>24)){e=0;while(1){if((e|0)==4)break b;A=d+(e<<4)|0;y=x+(e<<4)|0;c[A>>2]=c[y>>2];c[A+4>>2]=c[y+4>>2];c[A+8>>2]=c[y+8>>2];c[A+12>>2]=c[y+12>>2];e=e+1|0}}else{e=0;while(1){if((e|0)==4)break b;A=d+(e<<4)|0;x=y+(e<<4)|0;c[A>>2]=c[x>>2];c[A+4>>2]=c[x+4>>2];c[A+8>>2]=c[x+8>>2];c[A+12>>2]=c[x+12>>2];e=e+1|0}}while(0);l=z;return}function _N(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0.0;m=l;l=l+48|0;d=m+16|0;f=m;g=m+32|0;i=a+16|0;j=c[i>>2]|0;k=c[j+8>>2]|0;if(k|0?(e=c[(c[k+4>>2]|0)+12>>2]|0,e|0):0){c[g>>2]=a;c[g+4>>2]=0;n=+h[j+96>>3];h[f>>3]=+h[b>>3]-+h[j+16>>3];h[f+8>>3]=+h[b+8>>3]-+h[j+24>>3];c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];k=vb[e&127](g,d)|0;h[(c[i>>2]|0)+96>>3]=n;$N(g,a,b,k)}l=m;return}function $N(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0.0,m=0,n=0;n=l;l=l+64|0;m=n;g=b+16|0;i=c[g>>2]|0;k=+h[i+96>>3];j=i+16|0;f=i+24|0;b=0;while(1){if((b|0)==4)break;h[m+(b<<4)>>3]=+h[d+(b<<4)>>3]-+h[j>>3];h[m+(b<<4)+8>>3]=+h[d+(b<<4)+8>>3]-+h[f>>3];b=b+1|0}ZN(a,c[(c[(c[i+8>>2]|0)+4>>2]|0)+12>>2]|0,m,e);f=c[g>>2]|0;g=f+16|0;i=f+24|0;b=0;while(1){if((b|0)==4)break;h[d+(b<<4)>>3]=+h[m+(b<<4)>>3]+ +h[g>>3];h[d+(b<<4)+8>>3]=+h[m+(b<<4)+8>>3]+ +h[i>>3];b=b+1|0}h[f+96>>3]=k;l=n;return}function aO(b,d){b=b|0;d=d|0;var e=0,f=0;while(1){f=b+16|0;b=c[f>>2]|0;if(!(a[b+112>>0]|0))break;b=c[b+116>>2]|0}b=c[b+8>>2]|0;if(!b){b=HK(40)|0;c[(c[f>>2]|0)+8>>2]=b}e=c[b>>2]|0;b=((c[b+4>>2]|0)*48|0)+48|0;if(!e)b=IK(b)|0;else b=KK(e,b)|0;f=c[(c[f>>2]|0)+8>>2]|0;c[f>>2]=b;f=f+4|0;e=c[f>>2]|0;c[f>>2]=e+1;f=b+(e*48|0)|0;c[f>>2]=HK(d<<4)|0;c[b+(e*48|0)+4>>2]=d;b=b+(e*48|0)+8|0;e=b+40|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(e|0));return f|0}function bO(b,e,f,g,i){b=b|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0,H=0.0;D=l;l=l+96|0;A=D+16|0;t=D;x=D+92|0;y=D+88|0;u=D+80|0;m=c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0;z=uC(m)|0;B=aO(b,g)|0;n=b;while(1){o=c[n+16>>2]|0;if(!(a[o+112>>0]|0))break;n=c[o+116>>2]|0}if((a[i+8>>0]|0)==0?(j=c[m+16>>2]|0,k=c[e+16>>2]|0,(c[j+232>>2]|0)==(c[k+232>>2]|0)):0){p=(c[j+236>>2]|0)>(c[k+236>>2]|0);w=p?m:e;m=p?e:m}else w=e;F=(m|0)==(c[((c[n>>2]&3|0)==3?n:n+48|0)+40>>2]|0);p=c[o+40>>2]|0;e=c[o+80>>2]|0;k=d[o+86>>0]|0;E=d[o+46>>0]|0;n=F?k:E;j=F?p:e;o=F?e:p;p=g+-4|0;g=t+8|0;e=u+4|0;if((((F?E:k)|0)!=0?(r=m+16|0,q=c[(c[r>>2]|0)+8>>2]|0,(q|0)!=0):0)?(c[(c[q+4>>2]|0)+12>>2]|0)!=0:0){c[u>>2]=m;c[e>>2]=j;k=0;while(1){if((k|0)>=(p|0))break;j=k+3|0;F=c[r>>2]|0;h[t>>3]=+h[f+(j<<4)>>3]-+h[F+16>>3];h[g>>3]=+h[f+(j<<4)+8>>3]-+h[F+24>>3];F=c[(c[(c[F+8>>2]|0)+4>>2]|0)+12>>2]|0;c[A>>2]=c[t>>2];c[A+4>>2]=c[t+4>>2];c[A+8>>2]=c[t+8>>2];c[A+12>>2]=c[t+12>>2];if(!((vb[F&127](u,A)|0)<<24>>24))break;else k=j}c[x>>2]=k;$N(u,m,f+(k<<4)|0,1)}else{c[x>>2]=0;k=0}if(((n|0)!=0?(v=w+16|0,s=c[(c[v>>2]|0)+8>>2]|0,(s|0)!=0):0)?(c[(c[s+4>>2]|0)+12>>2]|0)!=0:0){c[u>>2]=w;c[e>>2]=o;j=p;while(1){if((j|0)<=0)break;F=c[v>>2]|0;h[t>>3]=+h[f+(j<<4)>>3]-+h[F+16>>3];h[g>>3]=+h[f+(j<<4)+8>>3]-+h[F+24>>3];F=c[(c[(c[F+8>>2]|0)+4>>2]|0)+12>>2]|0;c[A>>2]=c[t>>2];c[A+4>>2]=c[t+4>>2];c[A+8>>2]=c[t+8>>2];c[A+12>>2]=c[t+12>>2];if(!((vb[F&127](u,A)|0)<<24>>24))break;j=j+-3|0}c[y>>2]=j;$N(u,w,f+(j<<4)|0,0)}else{c[y>>2]=p;j=p}while(1){if((k|0)>=(p|0))break;e=k+3|0;H=+h[f+(k<<4)>>3]-+h[f+(e<<4)>>3];G=+h[f+(k<<4)+8>>3]-+h[f+(e<<4)+8>>3];if(H*H+G*G<1.0e-06)k=e;else break}c[x>>2]=k;while(1){if((j|0)<=0)break;F=j+3|0;G=+h[f+(j<<4)>>3]-+h[f+(F<<4)>>3];H=+h[f+(j<<4)+8>>3]-+h[f+(F<<4)+8>>3];if(!(G*G+H*H<1.0e-06))break;j=j+-3|0}c[y>>2]=j;cO(b,w,f,x,y,B,i);p=c[x>>2]|0;m=(c[y>>2]|0)+4|0;n=A+16|0;o=A+32|0;g=A+48|0;k=z+16|0;j=p;while(1){if((j|0)>=(m|0))break;F=(c[B>>2]|0)+(j-p<<4)|0;e=f+(j<<4)|0;c[F>>2]=c[e>>2];c[F+4>>2]=c[e+4>>2];c[F+8>>2]=c[e+8>>2];c[F+12>>2]=c[e+12>>2];c[A>>2]=c[e>>2];c[A+4>>2]=c[e+4>>2];c[A+8>>2]=c[e+8>>2];c[A+12>>2]=c[e+12>>2];e=j+1|0;if((e|0)>=(m|0)){C=35;break}E=(c[B>>2]|0)+(e-p<<4)|0;F=f+(e<<4)|0;c[E>>2]=c[F>>2];c[E+4>>2]=c[F+4>>2];c[E+8>>2]=c[F+8>>2];c[E+12>>2]=c[F+12>>2];c[n>>2]=c[F>>2];c[n+4>>2]=c[F+4>>2];c[n+8>>2]=c[F+8>>2];c[n+12>>2]=c[F+12>>2];F=j+2|0;E=(c[B>>2]|0)+(F-p<<4)|0;F=f+(F<<4)|0;c[E>>2]=c[F>>2];c[E+4>>2]=c[F+4>>2];c[E+8>>2]=c[F+8>>2];c[E+12>>2]=c[F+12>>2];c[o>>2]=c[F>>2];c[o+4>>2]=c[F+4>>2];c[o+8>>2]=c[F+8>>2];c[o+12>>2]=c[F+12>>2];F=j+3|0;E=f+(F<<4)|0;c[g>>2]=c[E>>2];c[g+4>>2]=c[E+4>>2];c[g+8>>2]=c[E+8>>2];c[g+12>>2]=c[E+12>>2];jI((c[k>>2]|0)+16|0,A);j=F}c[B+4>>2]=m-p;l=D;return}function cO(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+16|0;m=p+4|0;n=p;o=b;while(1){j=c[(c[o+16>>2]|0)+116>>2]|0;if(!j)break;else o=j}if(!(a[i+8>>0]|0))k=(pb[c[i>>2]&63](o)|0)&255;else k=0;FH(o,m,n);j=i+4|0;if((pb[c[j>>2]&63](d)|0)<<24>>24)c[n>>2]=0;if(!((pb[c[j>>2]&63](c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0)<<24>>24))b=c[m>>2]|0;else{c[m>>2]=0;b=0}if(k){d=c[n>>2]|0;c[m>>2]=d;c[n>>2]=b;b=d}if(!(a[i+9>>0]|0)){if(b|0)c[f>>2]=UH(o,e,c[f>>2]|0,c[g>>2]|0,h,b)|0;j=c[n>>2]|0;if(j|0)c[g>>2]=SH(o,e,c[f>>2]|0,c[g>>2]|0,h,j)|0}else{j=c[n>>2]|0;if(j|b|0)VH(o,e,c[f>>2]|0,c[g>>2]|0,h,b,j)}l=p;return}function dO(a,b){a=a|0;b=b|0;var d=0,e=0;if(+h[b>>3]<+h[b+16>>3]?+h[b+8>>3]<+h[b+24>>3]:0){d=c[a+84>>2]|0;e=a+80|0;a=c[e>>2]|0;c[e>>2]=a+1;a=d+(a<<5)|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];c[a+28>>2]=c[b+28>>2]}return}function eO(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0.0,k=0.0,m=0.0,n=0,o=0.0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0;D=l;l=l+112|0;A=D+72|0;r=D+56|0;p=D+16|0;s=D;n=c[d>>2]&3;t=d+48|0;B=c[((n|0)==3?d:t)+40>>2]|0;u=d+16|0;z=c[u>>2]|0;i=z+16|0;if(a[z+47>>0]|0){UN(p,B,c[((n|0)==2?d:d+-48|0)+40>>2]|0,i);n=p;p=i+40|0;do{c[i>>2]=c[n>>2];i=i+4|0;n=n+4|0}while((i|0)<(p|0))}w=B+16|0;n=c[w>>2]|0;i=c[n+8>>2]|0;if(!i)p=0;else p=c[(c[i+4>>2]|0)+16>>2]|0;z=n+16|0;n=(c[u>>2]|0)+16|0;c[r>>2]=c[z>>2];c[r+4>>2]=c[z+4>>2];c[r+8>>2]=c[z+8>>2];c[r+12>>2]=c[z+12>>2];c[A>>2]=c[n>>2];c[A+4>>2]=c[n+4>>2];c[A+8>>2]=c[n+8>>2];c[A+12>>2]=c[n+12>>2];fO(s,r,A);c[b>>2]=c[s>>2];c[b+4>>2]=c[s+4>>2];c[b+8>>2]=c[s+8>>2];c[b+12>>2]=c[s+12>>2];n=b+16|0;if(!(g<<24>>24)){i=c[u>>2]|0;if(!(a[i+45>>0]|0))i=0;else{j=+h[i+32>>3];C=9}}else{j=+gO(c[((c[d>>2]&3|0)==3?d:t)+40>>2]|0);C=9}if((C|0)==9){h[n>>3]=j;i=1}a[b+29>>0]=i;c[b+80>>2]=0;c[b+88>>2]=d;y=f+32|0;c[y>>2]=c[b>>2];c[y+4>>2]=c[b+4>>2];c[y+8>>2]=c[b+8>>2];c[y+12>>2]=c[b+12>>2];y=f+48|0;z=f+52|0;t=b+8|0;g=f+56|0;switch(e|0){case 1:{i=c[w>>2]|0;if((a[i+156>>0]|0)==0?(s=a[(c[u>>2]|0)+49>>0]|0,x=s&255,s<<24>>24!=0):0){c[A>>2]=c[f>>2];c[A+4>>2]=c[f+4>>2];c[A+8>>2]=c[f+8>>2];c[A+12>>2]=c[f+12>>2];c[A+16>>2]=c[f+16>>2];c[A+20>>2]=c[f+20>>2];c[A+24>>2]=c[f+24>>2];c[A+28>>2]=c[f+28>>2];s=A+16|0;r=i+80|0;o=+h[t>>3];p=i+24|0;do if(!(x&4)){i=A+24|0;if(x&1|0){c[y>>2]=1;h[i>>3]=+h[(+h[i>>3]>o?s:b)+8>>3];c[g>>2]=c[A>>2];c[g+4>>2]=c[A+4>>2];c[g+8>>2]=c[A+8>>2];c[g+12>>2]=c[A+12>>2];c[g+16>>2]=c[A+16>>2];c[g+20>>2]=c[A+20>>2];c[g+24>>2]=c[A+24>>2];c[g+28>>2]=c[A+28>>2];i=1;break}n=A+8|0;k=+h[b>>3];j=+h[p>>3]-+h[r>>3]*.5;if(!(x&8)){c[y>>2]=2;h[A>>3]=k;h[n>>3]=j;h[i>>3]=o;c[g>>2]=c[A>>2];c[g+4>>2]=c[A+4>>2];c[g+8>>2]=c[A+8>>2];c[g+12>>2]=c[A+12>>2];c[g+16>>2]=c[A+16>>2];c[g+20>>2]=c[A+20>>2];c[g+24>>2]=c[A+24>>2];c[g+28>>2]=c[A+28>>2];i=1;break}else{c[y>>2]=8;h[s>>3]=k;h[n>>3]=j;h[i>>3]=o;c[g>>2]=c[A>>2];c[g+4>>2]=c[A+4>>2];c[g+8>>2]=c[A+8>>2];c[g+12>>2]=c[A+12>>2];c[g+16>>2]=c[A+16>>2];c[g+20>>2]=c[A+20>>2];c[g+24>>2]=c[A+24>>2];c[g+28>>2]=c[A+28>>2];i=1;break}}else{c[y>>2]=4;m=+h[A>>3];j=+h[p>>3]+ +h[r>>3]*.5;k=+h[s>>3];if(+h[b>>3]<+h[i+16>>3]){m=m+-1.0;q=j+ +((c[(c[(uC(B)|0)+16>>2]|0)+252>>2]|0)/2|0|0);i=c[w>>2]|0;h[s>>3]=+h[i+16>>3]-+h[i+88>>3];h[A+24>>3]=o;h[A+8>>3]=+h[i+24>>3]-+h[i+80>>3]*.5;h[A>>3]=m;h[f+56>>3]=m;h[f+64>>3]=o;h[f+72>>3]=k;h[f+80>>3]=q;i=f+88|0;c[i>>2]=c[A>>2];c[i+4>>2]=c[A+4>>2];c[i+8>>2]=c[A+8>>2];c[i+12>>2]=c[A+12>>2];c[i+16>>2]=c[A+16>>2];c[i+20>>2]=c[A+20>>2];c[i+24>>2]=c[A+24>>2];c[i+28>>2]=c[A+28>>2];i=2;break}else{k=k+1.0;q=j+ +((c[(c[(uC(B)|0)+16>>2]|0)+252>>2]|0)/2|0|0);i=c[w>>2]|0;h[A>>3]=+h[i+16>>3]+ +h[i+96>>3]+0.0;h[A+24>>3]=o;h[A+8>>3]=+h[i+24>>3]-+h[i+80>>3]*.5;h[s>>3]=k;h[f+56>>3]=m;h[f+64>>3]=o;h[f+72>>3]=k;h[f+80>>3]=q;i=f+88|0;c[i>>2]=c[A>>2];c[i+4>>2]=c[A+4>>2];c[i+8>>2]=c[A+8>>2];c[i+12>>2]=c[A+12>>2];c[i+16>>2]=c[A+16>>2];c[i+20>>2]=c[A+20>>2];c[i+24>>2]=c[A+24>>2];c[i+28>>2]=c[A+28>>2];i=2;break}}while(0);c[z>>2]=i;while(1){i=c[d+16>>2]|0;if(!(a[i+112>>0]|0))break;d=c[i+116>>2]|0}a[((B|0)==(c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0)?i+16|0:i+56|0)+30>>0]=0}else{d=1;C=47}break}case 2:{x=a[(c[u>>2]|0)+49>>0]|0;s=x&255;if(!(x<<24>>24))C=46;else{c[A>>2]=c[f>>2];c[A+4>>2]=c[f+4>>2];c[A+8>>2]=c[f+8>>2];c[A+12>>2]=c[f+12>>2];c[A+16>>2]=c[f+16>>2];c[A+20>>2]=c[f+20>>2];c[A+24>>2]=c[f+24>>2];c[A+28>>2]=c[f+28>>2];n=A+8|0;do if(!(s&4)){i=A+16|0;p=A+24|0;r=(c[y>>2]|0)==4;if(s&1|0)if(r){x=c[w>>2]|0;q=+h[x+24>>3]-+h[x+80>>3]*.5;o=+h[i>>3]+1.0;k=+h[b>>3];m=q-+((c[(c[(uC(B)|0)+16>>2]|0)+252>>2]|0)/2|0|0);b=c[w>>2]|0;h[A>>3]=+h[b+16>>3]+ +h[b+96>>3]+0.0;h[n>>3]=q;h[p>>3]=+h[b+24>>3]+ +h[b+80>>3]*.5;h[i>>3]=o;h[f+56>>3]=k;h[f+64>>3]=m;h[f+72>>3]=o;h[f+80>>3]=q;i=f+88|0;c[i>>2]=c[A>>2];c[i+4>>2]=c[A+4>>2];c[i+8>>2]=c[A+8>>2];c[i+12>>2]=c[A+12>>2];c[i+16>>2]=c[A+16>>2];c[i+20>>2]=c[A+20>>2];c[i+24>>2]=c[A+24>>2];c[i+28>>2]=c[A+28>>2];i=2;break}else{h[p>>3]=+h[(+h[p>>3]>+h[t>>3]?i:b)+8>>3];c[g>>2]=c[A>>2];c[g+4>>2]=c[A+4>>2];c[g+8>>2]=c[A+8>>2];c[g+12>>2]=c[A+12>>2];c[g+16>>2]=c[A+16>>2];c[g+20>>2]=c[A+20>>2];c[g+24>>2]=c[A+24>>2];c[g+28>>2]=c[A+28>>2];i=1;break}q=+h[b>>3];b=c[w>>2]|0;k=+h[t>>3];o=+h[b+80>>3]*.5;j=k+1.0;E=+h[b+24>>3];m=E-o;o=E+o;if(!(s&8)){h[A>>3]=q;if(r){h[p>>3]=o;j=k;i=A}else h[n>>3]=m;h[i+8>>3]=j;c[g>>2]=c[A>>2];c[g+4>>2]=c[A+4>>2];c[g+8>>2]=c[A+8>>2];c[g+12>>2]=c[A+12>>2];c[g+16>>2]=c[A+16>>2];c[g+20>>2]=c[A+20>>2];c[g+24>>2]=c[A+24>>2];c[g+28>>2]=c[A+28>>2];i=1;break}else{h[i>>3]=q+1.0;if(r){h[p>>3]=o;j=k+-1.0;i=A}else h[n>>3]=m;h[i+8>>3]=j;c[g>>2]=c[A>>2];c[g+4>>2]=c[A+4>>2];c[g+8>>2]=c[A+8>>2];c[g+12>>2]=c[A+12>>2];c[g+16>>2]=c[A+16>>2];c[g+20>>2]=c[A+20>>2];c[g+24>>2]=c[A+24>>2];c[g+28>>2]=c[A+28>>2];i=1;break}}else{h[n>>3]=+h[(+h[n>>3]<+h[t>>3]?A:b)+8>>3];c[g>>2]=c[A>>2];c[g+4>>2]=c[A+4>>2];c[g+8>>2]=c[A+8>>2];c[g+12>>2]=c[A+12>>2];c[g+16>>2]=c[A+16>>2];c[g+20>>2]=c[A+20>>2];c[g+24>>2]=c[A+24>>2];c[g+28>>2]=c[A+28>>2];i=1}while(0);c[z>>2]=i;while(1){i=c[d+16>>2]|0;if(!(a[i+112>>0]|0))break;d=c[i+116>>2]|0}a[((B|0)==(c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0)?i+16|0:i+56|0)+30>>0]=0;c[y>>2]=s}break}default:C=46}if((C|0)==46){d=c[y>>2]|0;C=47}a:do if((C|0)==47){if(p|0?(v=wb[p&63](B,(c[u>>2]|0)+16|0,d,g,z)|0,v|0):0){c[y>>2]=v;break};c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];c[g+8>>2]=c[f+8>>2];c[g+12>>2]=c[f+12>>2];c[g+16>>2]=c[f+16>>2];c[g+20>>2]=c[f+20>>2];c[g+24>>2]=c[f+24>>2];c[g+28>>2]=c[f+28>>2];c[z>>2]=1;switch(e|0){case 8:{Aa(138697,106815,569,106825);break}case 2:{h[((c[y>>2]|0)==4?g:f+72|0)+8>>3]=+h[t>>3];break a}case 1:{h[f+80>>3]=+h[t>>3];c[y>>2]=1;break a}default:break a}}while(0);l=D;return}function fO(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=+h[b+8>>3]+ +h[c+8>>3];h[a>>3]=+h[b>>3]+ +h[c>>3];h[a+8>>3]=d;return}function gO(a){a=a|0;var b=0.0,d=0,e=0,f=0.0,g=0,i=0,j=0,k=0.0,l=0.0;i=c[a+16>>2]|0;j=c[i+172>>2]|0;f=0.0;g=0;while(1){a=c[j+(g<<2)>>2]|0;if(!a)break;f=f+ +h[(c[(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+16>>3];g=g+1|0}e=c[i+180>>2]|0;b=0.0;a=0;while(1){d=c[e+(a<<2)>>2]|0;if(!d)break;b=b+ +h[(c[(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+16>>3];a=a+1|0}k=+h[i+16>>3];l=+h[i+24>>3];j=c[j>>2]|0;f=+O(+(l-+h[(c[(c[((c[j>>2]&3|0)==3?j:j+48|0)+40>>2]|0)+16>>2]|0)+24>>3]),+(k-f/+(g|0)));j=c[e>>2]|0;return +((f+ +O(+(+h[(c[(c[((c[j>>2]&3|0)==2?j:j+-48|0)+40>>2]|0)+16>>2]|0)+24>>3]-l),+(b/+(a|0)-k)))*.5)}function hO(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0.0,k=0.0,m=0.0,n=0.0,o=0,p=0,q=0.0,r=0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=l;l=l+112|0;C=F+72|0;r=F+56|0;p=F+16|0;t=F;o=c[d>>2]&3;v=d+-48|0;D=c[((o|0)==2?d:v)+40>>2]|0;x=d+16|0;B=c[x>>2]|0;i=B+56|0;if(a[B+87>>0]|0){UN(p,D,c[((o|0)==3?d:d+48|0)+40>>2]|0,i);o=p;p=i+40|0;do{c[i>>2]=c[o>>2];i=i+4|0;o=o+4|0}while((i|0)<(p|0))}z=D+16|0;o=c[z>>2]|0;i=c[o+8>>2]|0;if(!i)p=0;else p=c[(c[i+4>>2]|0)+16>>2]|0;w=b+40|0;B=o+16|0;o=(c[x>>2]|0)+56|0;c[r>>2]=c[B>>2];c[r+4>>2]=c[B+4>>2];c[r+8>>2]=c[B+8>>2];c[r+12>>2]=c[B+12>>2];c[C>>2]=c[o>>2];c[C+4>>2]=c[o+4>>2];c[C+8>>2]=c[o+8>>2];c[C+12>>2]=c[o+12>>2];fO(t,r,C);c[w>>2]=c[t>>2];c[w+4>>2]=c[t+4>>2];c[w+8>>2]=c[t+8>>2];c[w+12>>2]=c[t+12>>2];o=b+56|0;if(!(g<<24>>24)){i=c[x>>2]|0;if(!(a[i+85>>0]|0))u=0;else{h[o>>3]=+h[i+72>>3];u=1}}else{s=+gO(c[((c[d>>2]&3|0)==2?d:v)+40>>2]|0)+3.141592653589793;h[o>>3]=s;if(s<6.283185307179586)u=1;else Aa(106835,106815,606,106859)}a[b+69>>0]=u;B=f+32|0;c[B>>2]=c[w>>2];c[B+4>>2]=c[w+4>>2];c[B+8>>2]=c[w+8>>2];c[B+12>>2]=c[w+12>>2];B=f+48|0;g=f+52|0;v=f+56|0;t=b+48|0;switch(e|0){case 1:{i=c[z>>2]|0;if((a[i+156>>0]|0)==0?(b=a[(c[x>>2]|0)+89>>0]|0,A=b&255,b<<24>>24!=0):0){c[C>>2]=c[f>>2];c[C+4>>2]=c[f+4>>2];c[C+8>>2]=c[f+8>>2];c[C+12>>2]=c[f+12>>2];c[C+16>>2]=c[f+16>>2];c[C+20>>2]=c[f+20>>2];c[C+24>>2]=c[f+24>>2];c[C+28>>2]=c[f+28>>2];p=C+8|0;s=+h[t>>3];do if(!(A&4)){o=C+16|0;q=+h[w>>3];j=+h[i+80>>3]*.5;n=+h[i+24>>3];if(!(A&1)){i=C+24|0;j=n+j;if(!(A&8)){c[B>>2]=2;h[C>>3]=q;h[i>>3]=j;h[p>>3]=s;c[v>>2]=c[C>>2];c[v+4>>2]=c[C+4>>2];c[v+8>>2]=c[C+8>>2];c[v+12>>2]=c[C+12>>2];c[v+16>>2]=c[C+16>>2];c[v+20>>2]=c[C+20>>2];c[v+24>>2]=c[C+24>>2];c[v+28>>2]=c[C+28>>2];i=1;break}else{c[B>>2]=8;h[o>>3]=q;h[i>>3]=j;h[p>>3]=s;c[v>>2]=c[C>>2];c[v+4>>2]=c[C+4>>2];c[v+8>>2]=c[C+8>>2];c[v+12>>2]=c[C+12>>2];c[v+16>>2]=c[C+16>>2];c[v+20>>2]=c[C+20>>2];c[v+24>>2]=c[C+24>>2];c[v+28>>2]=c[C+28>>2];i=1;break}}else{c[B>>2]=1;k=+h[C>>3];m=+h[o>>3];j=n-j;if(q<+h[i+16>>3]){n=k+-1.0;q=j-+((c[(c[(uC(D)|0)+16>>2]|0)+252>>2]|0)/2|0|0);i=c[z>>2]|0;h[o>>3]=+h[i+16>>3]-+h[i+88>>3];h[p>>3]=s;h[C+24>>3]=+h[i+24>>3]+ +h[i+80>>3]*.5;h[C>>3]=n;h[f+56>>3]=n;h[f+64>>3]=q;h[f+72>>3]=m;h[f+80>>3]=s;i=f+88|0;c[i>>2]=c[C>>2];c[i+4>>2]=c[C+4>>2];c[i+8>>2]=c[C+8>>2];c[i+12>>2]=c[C+12>>2];c[i+16>>2]=c[C+16>>2];c[i+20>>2]=c[C+20>>2];c[i+24>>2]=c[C+24>>2];c[i+28>>2]=c[C+28>>2];i=2;break}else{q=m+1.0;n=j-+((c[(c[(uC(D)|0)+16>>2]|0)+252>>2]|0)/2|0|0);i=c[z>>2]|0;h[C>>3]=+h[i+16>>3]+ +h[i+96>>3]+0.0;h[p>>3]=s;h[C+24>>3]=+h[i+24>>3]+ +h[i+80>>3]*.5;h[o>>3]=q;h[f+56>>3]=k;h[f+64>>3]=n;h[f+72>>3]=q;h[f+80>>3]=s;i=f+88|0;c[i>>2]=c[C>>2];c[i+4>>2]=c[C+4>>2];c[i+8>>2]=c[C+8>>2];c[i+12>>2]=c[C+12>>2];c[i+16>>2]=c[C+16>>2];c[i+20>>2]=c[C+20>>2];c[i+24>>2]=c[C+24>>2];c[i+28>>2]=c[C+28>>2];i=2;break}}}else{c[B>>2]=4;h[p>>3]=+h[(+h[p>>3]<s?C:w)+8>>3];c[v>>2]=c[C>>2];c[v+4>>2]=c[C+4>>2];c[v+8>>2]=c[C+8>>2];c[v+12>>2]=c[C+12>>2];c[v+16>>2]=c[C+16>>2];c[v+20>>2]=c[C+20>>2];c[v+24>>2]=c[C+24>>2];c[v+28>>2]=c[C+28>>2];i=1}while(0);c[g>>2]=i;while(1){i=c[d+16>>2]|0;if(!(a[i+112>>0]|0))break;d=c[i+116>>2]|0}a[((D|0)==(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)?i+56|0:i+16|0)+30>>0]=0;c[B>>2]=A}else{d=4;E=47}break}case 2:{A=a[(c[x>>2]|0)+89>>0]|0;u=A&255;if(!(A<<24>>24))E=46;else{c[C>>2]=c[f>>2];c[C+4>>2]=c[f+4>>2];c[C+8>>2]=c[f+8>>2];c[C+12>>2]=c[f+12>>2];c[C+16>>2]=c[f+16>>2];c[C+20>>2]=c[f+20>>2];c[C+24>>2]=c[f+24>>2];c[C+28>>2]=c[f+28>>2];o=C+8|0;do if(!(u&4)){i=C+16|0;p=C+24|0;r=(c[B>>2]|0)==4;if(u&1|0)if(r){m=+h[C>>3]+-1.0;i=c[z>>2]|0;s=+h[i+24>>3]-+h[i+80>>3]*.5;q=+h[w>>3];n=s-+((c[(c[(uC(D)|0)+16>>2]|0)+252>>2]|0)/2|0|0);i=c[z>>2]|0;h[C+16>>3]=+h[i+16>>3]-+h[i+88>>3]+-2.0;h[o>>3]=s;h[p>>3]=+h[i+24>>3]+ +h[i+80>>3]*.5;h[C>>3]=m;h[f+56>>3]=m;h[f+64>>3]=n;h[f+72>>3]=q;h[f+80>>3]=s;i=f+88|0;c[i>>2]=c[C>>2];c[i+4>>2]=c[C+4>>2];c[i+8>>2]=c[C+8>>2];c[i+12>>2]=c[C+12>>2];c[i+16>>2]=c[C+16>>2];c[i+20>>2]=c[C+20>>2];c[i+24>>2]=c[C+24>>2];c[i+28>>2]=c[C+28>>2];i=2;break}else{h[p>>3]=+h[(+h[p>>3]>+h[b+8>>3]?i:b)+8>>3];c[v>>2]=c[C>>2];c[v+4>>2]=c[C+4>>2];c[v+8>>2]=c[C+8>>2];c[v+12>>2]=c[C+12>>2];c[v+16>>2]=c[C+16>>2];c[v+20>>2]=c[C+20>>2];c[v+24>>2]=c[C+24>>2];c[v+28>>2]=c[C+28>>2];i=1;break}q=+h[w>>3];f=c[z>>2]|0;k=+h[t>>3];j=k+-1.0;s=+h[f+24>>3];n=+h[f+80>>3]*.5;m=s-n;n=s+n;if(!(u&8)){h[C>>3]=q+-1.0;if(r){h[p>>3]=n;i=C}else{h[o>>3]=m;j=k}h[i+8>>3]=j;c[v>>2]=c[C>>2];c[v+4>>2]=c[C+4>>2];c[v+8>>2]=c[C+8>>2];c[v+12>>2]=c[C+12>>2];c[v+16>>2]=c[C+16>>2];c[v+20>>2]=c[C+20>>2];c[v+24>>2]=c[C+24>>2];c[v+28>>2]=c[C+28>>2];i=1;break}else{h[i>>3]=q+1.0;if(r){h[p>>3]=n;i=C}else{h[o>>3]=m;j=k+1.0}h[i+8>>3]=j;c[v>>2]=c[C>>2];c[v+4>>2]=c[C+4>>2];c[v+8>>2]=c[C+8>>2];c[v+12>>2]=c[C+12>>2];c[v+16>>2]=c[C+16>>2];c[v+20>>2]=c[C+20>>2];c[v+24>>2]=c[C+24>>2];c[v+28>>2]=c[C+28>>2];i=1;break}}else{h[o>>3]=+h[(+h[o>>3]<+h[t>>3]?C:w)+8>>3];c[v>>2]=c[C>>2];c[v+4>>2]=c[C+4>>2];c[v+8>>2]=c[C+8>>2];c[v+12>>2]=c[C+12>>2];c[v+16>>2]=c[C+16>>2];c[v+20>>2]=c[C+20>>2];c[v+24>>2]=c[C+24>>2];c[v+28>>2]=c[C+28>>2];i=1}while(0);c[g>>2]=i;while(1){i=c[d+16>>2]|0;if(!(a[i+112>>0]|0))break;d=c[i+116>>2]|0}a[((D|0)==(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)?i+56|0:i+16|0)+30>>0]=0;c[B>>2]=u}break}default:E=46}if((E|0)==46){d=c[B>>2]|0;E=47}a:do if((E|0)==47){if(p|0?(y=wb[p&63](D,(c[x>>2]|0)+56|0,d,v,g)|0,y|0):0){c[B>>2]=y;break};c[v>>2]=c[f>>2];c[v+4>>2]=c[f+4>>2];c[v+8>>2]=c[f+8>>2];c[v+12>>2]=c[f+12>>2];c[v+16>>2]=c[f+16>>2];c[v+20>>2]=c[f+20>>2];c[v+24>>2]=c[f+24>>2];c[v+28>>2]=c[f+28>>2];c[g>>2]=1;switch(e|0){case 8:{Aa(138697,106815,765,106859);break}case 2:{h[((c[B>>2]|0)==4?v:f+72|0)+8>>3]=+h[t>>3];break a}case 1:{h[f+64>>3]=+h[t>>3];c[B>>2]=4;break a}default:break a}}while(0);l=F;return}function iO(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0;g=c[b+16>>2]|0;i=c[g+96>>2]|0;if((a[g+44>>0]|0)==0?(a[g+84>>0]|0)==0:0)j=6;else{d=a[g+49>>0]|0;e=d&255;if(((e&8|0)==0?(f=a[g+89>>0]|0,(f&8)==0):0)?((e&5|0)==0?1:d<<24>>24!=f<<24>>24):0)j=6;else b=0}if((j|0)==6)if(!i)b=18;else{b=(c[(c[(uC(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)!=0;b=~~(+h[(b?i+32|0:i+24|0)>>3]+18.0)}return b|0}function jO(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=+g;h=+h;i=i|0;var j=0,k=0,l=0,m=0;b=c[(c[d+(e<<2)>>2]|0)+16>>2]|0;if((a[b+44>>0]|0)==0?(a[b+84>>0]|0)==0:0)l=6;else l=3;do if((l|0)==3){j=a[b+49>>0]|0;k=j&255;b=b+89|0;if((k&8|0)==0?(m=a[b>>0]|0,(m&8)==0):0){if((k&5|0)==0?1:j<<24>>24!=m<<24>>24){l=6;break}if(k&4|0){lO(d,e,f,g,h,i);break}if(!(k&1))Aa(138697,106815,1231,106867);else{nO(d,e,f,g,h,i);break}}if((k&2|0)==0?(a[b>>0]&2)==0:0){mO(d,e,f,g,h,i);break}lO(d,e,f,g,h,i)}while(0);if((l|0)==6)kO(d,e,f,g,h,i);return}function kO(b,e,f,g,i,j){b=b|0;e=e|0;f=f|0;g=+g;i=+i;j=j|0;var k=0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0,w=0,x=0,y=0.0,z=0,A=0,B=0.0,C=0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0.0,Q=0.0,R=0;O=l;l=l+16080|0;K=O+80|0;L=O+64|0;M=O+48|0;N=O+32|0;I=O+16|0;J=O;A=c[b+(e<<2)>>2]|0;i=i*.5/+(f|0);i=i>2.0?i:2.0;C=(c[((c[A>>2]&3|0)==3?A:A+48|0)+40>>2]|0)+16|0;z=c[C>>2]|0;B=+h[z+16>>3];G=+h[z+24>>3];A=c[A+16>>2]|0;D=B+ +h[A+16>>3];E=G+ +h[A+24>>3];F=B+ +h[A+56>>3];G=G+ +h[A+64>>3];k=!(E>=G)?-1:1;m=+h[z+96>>3];switch(oO(d[A+49>>0]|0,d[A+89>>0]|0)|0){case 65:case 32:{if(E==G)k=0-k|0;break}default:{}}P=B+m;o=(P-D)*3.0;P=(P-F)*3.0;u=i*+(k|0);t=K+8|0;v=K+16|0;w=K+32|0;x=K+48|0;y=(E+G)*.5;z=K+64|0;A=K+80|0;r=K+96|0;s=K+104|0;q=0;n=0.0;i=m;o=m<o?m:o;m=m<P?m:P;while(1){if((q|0)>=(f|0))break;p=e+1|0;e=c[b+(e<<2)>>2]|0;i=i+g;o=o+g;m=m+g;n=u+n;h[K>>3]=D;h[t>>3]=E;P=E+n;pO(L,D+o/3.0,P);c[v>>2]=c[L>>2];c[v+4>>2]=c[L+4>>2];c[v+8>>2]=c[L+8>>2];c[v+12>>2]=c[L+12>>2];Q=B+i;pO(M,Q,P);c[w>>2]=c[M>>2];c[w+4>>2]=c[M+4>>2];c[w+8>>2]=c[M+8>>2];c[w+12>>2]=c[M+12>>2];pO(N,Q,y);c[x>>2]=c[N>>2];c[x+4>>2]=c[N+4>>2];c[x+8>>2]=c[N+8>>2];c[x+12>>2]=c[N+12>>2];P=G-n;pO(I,Q,P);c[z>>2]=c[I>>2];c[z+4>>2]=c[I+4>>2];c[z+8>>2]=c[I+8>>2];c[z+12>>2]=c[I+12>>2];pO(J,F+m/3.0,P);c[A>>2]=c[J>>2];c[A+4>>2]=c[J+4>>2];c[A+8>>2]=c[J+8>>2];c[A+12>>2]=c[J+12>>2];h[r>>3]=F;h[s>>3]=G;k=e+16|0;if((c[(c[k>>2]|0)+96>>2]|0)!=0?(R=(c[(c[(uC(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)==0,k=c[(c[k>>2]|0)+96>>2]|0,H=+h[(R?k+24|0:k+32|0)>>3],R=c[C>>2]|0,h[k+56>>3]=H*.5+(i+ +h[R+16>>3]),h[k+64>>3]=+h[R+24>>3],a[k+81>>0]=1,H>g):0)i=i+(H-g);bO(e,c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,K,7,j);e=p;q=q+1|0}l=O;return}function lO(b,e,f,g,i,j){b=b|0;e=e|0;f=f|0;g=+g;i=+i;j=j|0;var k=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0.0,D=0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0.0,R=0;P=l;l=l+16080|0;L=P+80|0;M=P+64|0;N=P+48|0;O=P+32|0;J=P+16|0;K=P;B=c[b+(e<<2)>>2]|0;q=g*.5/+(f|0);q=q>2.0?q:2.0;D=(c[((c[B>>2]&3|0)==3?B:B+48|0)+40>>2]|0)+16|0;k=c[D>>2]|0;g=+h[k+16>>3];C=+h[k+24>>3];B=c[B+16>>2]|0;E=g+ +h[B+16>>3];F=C+ +h[B+24>>3];G=g+ +h[B+56>>3];H=C+ +h[B+64>>3];p=!(E>=G)?-1.0:1.0;s=+h[k+80>>3]*.5;m=E-g;n=G-g;o=g-E;switch(oO(d[B+49>>0]|0,d[B+89>>0]|0)|0){case 15:{m=p*(q+(+h[k+96>>3]-n));break}case 38:{m=p*(q+(+h[k+88>>3]-(g-G)));break}case 41:{m=p*(q+(+h[k+96>>3]-m));break}case 48:{m=p*(q+(+h[k+96>>3]-m));break}case 58:case 57:case 51:case 47:case 37:case 14:{m=p*((+h[k+88>>3]-o+(+h[k+96>>3]-n))/3.0);break}case 73:{m=p*(q+(+h[k+88>>3]-o));break}case 83:{m=p*(+h[k+88>>3]-o);break}case 84:{m=p*(q+(+h[k+88>>3]-o+(+h[k+96>>3]-n))*.5);break}case 85:case 75:case 74:{m=p*(q*2.0+(+h[k+88>>3]-o+(+h[k+96>>3]-n))*.5);break}default:m=0.0}n=C+s;o=(n-F)*3.0;n=(n-H)*3.0;p=q*p;w=L+8|0;x=L+16|0;y=L+32|0;z=L+48|0;q=(E+G)*.5;A=L+64|0;B=L+80|0;u=L+96|0;v=L+104|0;t=0;g=s;o=s<o?s:o;n=s<n?s:n;while(1){if((t|0)>=(f|0))break;r=e+1|0;e=c[b+(e<<2)>>2]|0;g=g+i;o=o+i;n=n+i;m=p+m;h[L>>3]=E;h[w>>3]=F;s=E+m;pO(M,s,F+o/3.0);c[x>>2]=c[M>>2];c[x+4>>2]=c[M+4>>2];c[x+8>>2]=c[M+8>>2];c[x+12>>2]=c[M+12>>2];Q=C+g;pO(N,s,Q);c[y>>2]=c[N>>2];c[y+4>>2]=c[N+4>>2];c[y+8>>2]=c[N+8>>2];c[y+12>>2]=c[N+12>>2];pO(O,q,Q);c[z>>2]=c[O>>2];c[z+4>>2]=c[O+4>>2];c[z+8>>2]=c[O+8>>2];c[z+12>>2]=c[O+12>>2];s=G-m;pO(J,s,Q);c[A>>2]=c[J>>2];c[A+4>>2]=c[J+4>>2];c[A+8>>2]=c[J+8>>2];c[A+12>>2]=c[J+12>>2];pO(K,s,H+n/3.0);c[B>>2]=c[K>>2];c[B+4>>2]=c[K+4>>2];c[B+8>>2]=c[K+8>>2];c[B+12>>2]=c[K+12>>2];h[u>>3]=G;h[v>>3]=H;k=e+16|0;if((c[(c[k>>2]|0)+96>>2]|0)!=0?(R=(c[(c[(uC(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)==0,k=c[(c[k>>2]|0)+96>>2]|0,I=+h[(R?k+32|0:k+24|0)>>3],R=c[D>>2]|0,h[k+64>>3]=I*.5+(g+ +h[R+24>>3]),h[k+56>>3]=+h[R+16>>3],a[k+81>>0]=1,I>i):0)g=g+(I-i);bO(e,c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,L,7,j);e=r;t=t+1|0}l=P;return}function mO(b,e,f,g,i,j){b=b|0;e=e|0;f=f|0;g=+g;i=+i;j=j|0;var k=0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0,w=0,x=0,y=0.0,z=0,A=0,B=0.0,C=0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0.0,Q=0.0,R=0;O=l;l=l+16080|0;K=O+80|0;L=O+64|0;M=O+48|0;N=O+32|0;I=O+16|0;J=O;A=c[b+(e<<2)>>2]|0;i=i*.5/+(f|0);i=i>2.0?i:2.0;C=(c[((c[A>>2]&3|0)==3?A:A+48|0)+40>>2]|0)+16|0;z=c[C>>2]|0;B=+h[z+16>>3];G=+h[z+24>>3];A=c[A+16>>2]|0;D=B+ +h[A+16>>3];E=G+ +h[A+24>>3];F=B+ +h[A+56>>3];G=G+ +h[A+64>>3];k=!(E>=G)?-1:1;m=+h[z+88>>3];switch(oO(d[A+49>>0]|0,d[A+89>>0]|0)|0){case 67:case 12:{if(E==G)k=0-k|0;break}default:{}}o=(D+m-B)*3.0;P=(F+m-B)*3.0;u=i*+(k|0);t=K+8|0;v=K+16|0;w=K+32|0;x=K+48|0;y=(E+G)*.5;z=K+64|0;A=K+80|0;r=K+96|0;s=K+104|0;q=0;n=0.0;i=m;o=m<o?m:o;m=m<P?m:P;while(1){if((q|0)>=(f|0))break;p=e+1|0;e=c[b+(e<<2)>>2]|0;i=i+g;o=o+g;m=m+g;n=u+n;h[K>>3]=D;h[t>>3]=E;P=E+n;pO(L,D-o/3.0,P);c[v>>2]=c[L>>2];c[v+4>>2]=c[L+4>>2];c[v+8>>2]=c[L+8>>2];c[v+12>>2]=c[L+12>>2];Q=B-i;pO(M,Q,P);c[w>>2]=c[M>>2];c[w+4>>2]=c[M+4>>2];c[w+8>>2]=c[M+8>>2];c[w+12>>2]=c[M+12>>2];pO(N,Q,y);c[x>>2]=c[N>>2];c[x+4>>2]=c[N+4>>2];c[x+8>>2]=c[N+8>>2];c[x+12>>2]=c[N+12>>2];P=G-n;pO(I,Q,P);c[z>>2]=c[I>>2];c[z+4>>2]=c[I+4>>2];c[z+8>>2]=c[I+8>>2];c[z+12>>2]=c[I+12>>2];pO(J,F-m/3.0,P);c[A>>2]=c[J>>2];c[A+4>>2]=c[J+4>>2];c[A+8>>2]=c[J+8>>2];c[A+12>>2]=c[J+12>>2];h[r>>3]=F;h[s>>3]=G;k=e+16|0;if((c[(c[k>>2]|0)+96>>2]|0)!=0?(R=(c[(c[(uC(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)==0,k=c[(c[k>>2]|0)+96>>2]|0,H=+h[(R?k+24|0:k+32|0)>>3],R=c[C>>2]|0,h[k+56>>3]=+h[R+16>>3]-i-H*.5,h[k+64>>3]=+h[R+24>>3],a[k+81>>0]=1,H>g):0)i=i+(H-g);bO(e,c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,K,7,j);e=p;q=q+1|0}l=O;return}function nO(b,e,f,g,i,j){b=b|0;e=e|0;f=f|0;g=+g;i=+i;j=j|0;var k=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0,C=0,D=0,E=0.0,F=0,G=0,H=0.0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0.0,Q=0.0,R=0;O=l;l=l+16080|0;K=O+80|0;L=O+64|0;M=O+48|0;N=O+32|0;I=O+16|0;J=O;B=c[b+(e<<2)>>2]|0;A=g*.5/+(f|0);v=(c[((c[B>>2]&3|0)==3?B:B+48|0)+40>>2]|0)+16|0;C=c[v>>2]|0;y=+h[C+16>>3];u=+h[C+24>>3];B=c[B+16>>2]|0;w=y+ +h[B+16>>3];x=u+ +h[B+24>>3];y=y+ +h[B+56>>3];z=u+ +h[B+64>>3];t=!(w>=y)?-1:1;P=+h[C+80>>3]*.5;B=(oO(d[B+49>>0]|0,d[B+89>>0]|0)|0)==67;m=(x+P-u)*3.0;n=(z+P-u)*3.0;A=(A>2.0?A:2.0)*+((B?0-t|0:t)|0);t=K+8|0;B=K+16|0;C=K+32|0;D=K+48|0;E=(w+y)*.5;F=K+64|0;G=K+80|0;r=K+96|0;s=K+104|0;g=P;k=0.0;m=P<m?P:m;n=P<n?P:n;p=0;while(1){if((p|0)>=(f|0))break;q=e+1|0;o=c[b+(e<<2)>>2]|0;g=g+i;m=m+i;n=n+i;k=A+k;h[K>>3]=w;h[t>>3]=x;P=w+k;pO(L,P,x-m/3.0);c[B>>2]=c[L>>2];c[B+4>>2]=c[L+4>>2];c[B+8>>2]=c[L+8>>2];c[B+12>>2]=c[L+12>>2];Q=u-g;pO(M,P,Q);c[C>>2]=c[M>>2];c[C+4>>2]=c[M+4>>2];c[C+8>>2]=c[M+8>>2];c[C+12>>2]=c[M+12>>2];pO(N,E,Q);c[D>>2]=c[N>>2];c[D+4>>2]=c[N+4>>2];c[D+8>>2]=c[N+8>>2];c[D+12>>2]=c[N+12>>2];P=y-k;pO(I,P,Q);c[F>>2]=c[I>>2];c[F+4>>2]=c[I+4>>2];c[F+8>>2]=c[I+8>>2];c[F+12>>2]=c[I+12>>2];pO(J,P,z-n/3.0);c[G>>2]=c[J>>2];c[G+4>>2]=c[J+4>>2];c[G+8>>2]=c[J+8>>2];c[G+12>>2]=c[J+12>>2];h[r>>3]=y;h[s>>3]=z;e=o+16|0;if((c[(c[e>>2]|0)+96>>2]|0)!=0?(R=(c[(c[(uC(c[((c[o>>2]&3|0)==3?o:o+48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)==0,e=c[(c[e>>2]|0)+96>>2]|0,H=+h[(R?e+32|0:e+24|0)>>3],R=c[v>>2]|0,h[e+64>>3]=+h[R+24>>3]-g-H*.5,h[e+56>>3]=+h[R+16>>3],a[e+81>>0]=1,H>i):0)g=g+(H-i);bO(o,c[((c[o>>2]&3|0)==2?o:o+-48|0)+40>>2]|0,K,7,j);e=q;p=p+1|0}l=O;return}function oO(a,b){a=a|0;b=b|0;var d=0;d=0;while(1){if((d|0)>=8){b=-1;break}if((c[22092+(d<<2)>>2]|0)==(b|0)){b=d;break}d=d+1|0}d=0;while(1){if((d|0)>=8){d=-1;break}if((c[22092+(d<<2)>>2]|0)==(a|0))break;d=d+1|0}if((d|b|0)<0)d=0;else d=c[22124+(d<<5)+(b<<2)>>2]|0;return d|0}function pO(a,b,c){a=a|0;b=+b;c=+c;h[a>>3]=b;h[a+8>>3]=c;return}function qO(b){b=b|0;var d=0,e=0,f=0;if((c[47272]|0)!=0|(c[47271]|0)!=0){e=b+16|0;f=c[(c[e>>2]|0)+100>>2]|0;d=b+48|0;if((f|0?(a[f+81>>0]|0)==0:0)?rO(b,1)|0:0){f=uC(c[((c[b>>2]&3|0)==3?b:d)+40>>2]|0)|0;xP(f,c[(c[e>>2]|0)+100>>2]|0)}f=c[(c[e>>2]|0)+104>>2]|0;if((f|0?(a[f+81>>0]|0)==0:0)?rO(b,0)|0:0){f=uC(c[((c[b>>2]&3|0)==3?b:d)+40>>2]|0)|0;xP(f,c[(c[e>>2]|0)+104>>2]|0)}}return}function rO(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0.0,i=0,j=0.0,k=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=l;l=l+96|0;p=r+32|0;m=r+16|0;o=r;i=b+16|0;do if((a[(c[i>>2]|0)+112>>0]|0)!=6){e=c[47272]|0;if(!((e|0)!=0?(a[(OA(b,e)|0)>>0]|0)!=0:0)){e=c[47271]|0;if(!e){e=0;break}if(!(a[(OA(b,e)|0)>>0]|0)){e=0;break}}d=d<<24>>24==0;q=c[i>>2]|0;q=c[(d?q+104|0:q+100|0)>>2]|0;e=sO(b)|0;if(e){n=c[e>>2]|0;do if(d){o=c[n>>2]|0;g=+h[o>>3];f=+h[o+8>>3];if(!(c[n+8>>2]|0))e=0;else{k=g;g=+h[n+16>>3];j=f;f=+h[n+24>>3];break}while(1){if((e|0)==4)break;o=p+(e<<4)|0;i=(c[n>>2]|0)+(e<<4)|0;c[o>>2]=c[i>>2];c[o+4>>2]=c[i+4>>2];c[o+8>>2]=c[i+8>>2];c[o+12>>2]=c[i+12>>2];e=e+1|0}iP(m,p,3,.1,0,0);k=+h[m>>3];j=+h[m+8>>3]}else{e=(c[e+4>>2]|0)+-1|0;d=n+(e*48|0)+4|0;i=n+(e*48|0)|0;s=c[i>>2]|0;m=(c[d>>2]|0)+-1|0;f=+h[s+(m<<4)+8>>3];g=+h[s+(m<<4)>>3];if(!(c[n+(e*48|0)+12>>2]|0))e=0;else{k=g;g=+h[n+(e*48|0)+32>>3];j=f;f=+h[n+(e*48|0)+40>>3];break}while(1){if((e|0)==4)break;s=p+(e<<4)|0;n=(c[i>>2]|0)+(e+-4+(c[d>>2]|0)<<4)|0;c[s>>2]=c[n>>2];c[s+4>>2]=c[n+4>>2];c[s+8>>2]=c[n+8>>2];c[s+12>>2]=c[n+12>>2];e=e+1|0}iP(o,p,3,.9,0,0);k=+h[o>>3];j=+h[o+8>>3]}while(0);k=+O(+(j-f),+(k-g));k=k+ +YO(b,c[47272]|0,-25.0,-180.0)/180.0*3.141592653589793;j=+YO(b,c[47271]|0,1.0,0.0)*10.0;h[q+56>>3]=g+j*+I(+k);h[q+64>>3]=f+j*+J(+k);a[q+81>>0]=1;e=1}else e=0}else e=0;while(0);l=r;return e|0}function sO(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=l;l=l+16|0;f=h;d=b;while(1){e=c[d+16>>2]|0;d=c[e+8>>2]|0;if(d|0)break;if(!(a[e+112>>0]|0)){g=5;break}d=c[e+116>>2]|0}if((g|0)==5){g=HB(c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0;d=HB(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0;c[f>>2]=g;c[f+4>>2]=d;dA(1,106880,f)|0;d=0}l=h;return d|0}function tO(a,d,e){a=a|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0;s=l;l=l+96|0;m=s+80|0;n=s+64|0;o=s+48|0;p=s+32|0;q=s+16|0;r=s;k=b[(c[d+16>>2]|0)+136>>1]|0;d=e+16|0;uO(c[(c[d>>2]|0)+8>>2]|0,p,q);f=+h[p>>3];g=+h[q>>3];u=f-g;i=+h[p+8>>3];j=+h[q+8>>3];t=i-j;a:do if(u*u+t*t<1.0e-06){c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];c[o+12>>2]=c[p+12>>2]}else{d=c[(c[d>>2]|0)+8>>2]|0;switch(k&14){case 4:case 10:{h[n>>3]=(f+g)*.5;h[n+8>>3]=(i+j)*.5;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];oP(r,d,m);c[o>>2]=c[r>>2];c[o+4>>2]=c[r+4>>2];c[o+8>>2]=c[r+8>>2];c[o+12>>2]=c[r+12>>2];break a}default:{vO(o,d,p,q);break a}}}while(0);c[a>>2]=c[o>>2];c[a+4>>2]=c[o+4>>2];c[a+8>>2]=c[o+8>>2];c[a+12>>2]=c[o+12>>2];l=s;return}function uO(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=l;l=l+32|0;g=h+16|0;f=h;j=c[a>>2]|0;e=c[j>>2]|0;i=c[j+8>>2]|0;k=j+16|0;c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];c[g+8>>2]=c[k+8>>2];c[g+12>>2]=c[k+12>>2];j=j+32|0;c[f>>2]=c[j>>2];c[f+4>>2]=c[j+4>>2];c[f+8>>2]=c[j+8>>2];c[f+12>>2]=c[j+12>>2];if(!i){c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[b+12>>2]=c[e+12>>2]}else{c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2]}i=c[a>>2]|0;j=(c[a+4>>2]|0)+-1|0;e=c[i+(j*48|0)>>2]|0;a=c[i+(j*48|0)+4>>2]|0;k=c[i+(j*48|0)+12>>2]|0;b=i+(j*48|0)+16|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];j=i+(j*48|0)+32|0;c[f>>2]=c[j>>2];c[f+4>>2]=c[j+4>>2];c[f+8>>2]=c[j+8>>2];c[f+12>>2]=c[j+12>>2];if(!k){k=e+(a+-1<<4)|0;c[d>>2]=c[k>>2];c[d+4>>2]=c[k+4>>2];c[d+8>>2]=c[k+8>>2];c[d+12>>2]=c[k+12>>2]}else{c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2]}l=h;return}function vO(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0.0;r=c[b+4>>2]|0;g=0.0;f=0;while(1){if((f|0)>=(r|0))break;l=c[b>>2]|0;k=c[l+(f*48|0)>>2]|0;l=c[l+(f*48|0)+4>>2]|0;i=3;j=0;while(1){if((i|0)>=(l|0))break;p=+h[k+(j<<4)>>3]-+h[k+(i<<4)>>3];q=+h[k+(j<<4)+8>>3]-+h[k+(i<<4)+8>>3];i=i+3|0;j=j+3|0;g=g+ +G(+(p*p+q*q))}f=f+1|0}l=0;g=g*.5;a:while(1){if((l|0)>=(r|0)){f=15;break}k=c[b>>2]|0;j=c[k+(l*48|0)>>2]|0;k=c[k+(l*48|0)+4>>2]|0;f=3;i=0;while(1){if((f|0)>=(k|0))break;m=+h[j+(i<<4)>>3];p=+h[j+(i<<4)+8>>3];n=+h[j+(f<<4)>>3];o=+h[j+(f<<4)+8>>3];s=m-n;q=p-o;q=+G(+(s*s+q*q));if(q>=g){f=12;break a}f=f+3|0;i=i+3|0;g=g-q}l=l+1|0}if((f|0)==12){h[d>>3]=m;h[d+8>>3]=p;h[e>>3]=n;h[e+8>>3]=o;s=q-g;h[a>>3]=(g*n+m*s)/q;h[a+8>>3]=(g*o+p*s)/q;return}else if((f|0)==15)Aa(139015,106815,1316,106942)}function wO(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;qO(b);return}function xO(b,d,e,f,g){b=b|0;d=d|0;e=+e;f=f|0;g=g|0;var i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=0.0,F=0,G=0,H=0,K=0,L=0,M=0,N=0;L=yO(b)|0;K=c[L+4>>2]|0;M=c[L>>2]|0;H=K+-1|0;D=+h[M+(H<<6)+16>>3];E=+(K|0);F=(g|0)==2;G=(f|0)!=0;n=0;j=0.0;i=0.0;l=0.0;m=0.0;while(1){if((n|0)>=(K|0))break;b=~~+zO(+(n+-1|0),E);C=n+1|0;N=~~+zO(+(C|0),E);o=M+(n<<6)|0;m=+h[o>>3];B=M+(n<<6)+8|0;l=+h[B>>3];u=M+(n<<6)+16|0;v=+h[u>>3];w=M+(n<<6)+24|0;x=M+(n<<6)+32|0;y=M+(n<<6)+40|0;z=M+(n<<6)+48|0;A=M+(n<<6)+56|0;k=+AO(+h[M+(N<<6)+8>>3]-l,+h[M+(N<<6)>>3]-m);p=+AO(+h[M+(b<<6)+8>>3]-l,+h[M+(b<<6)>>3]-m);t=+qb[d&7](v,D,e);b=(n|0)==0;q=k+1.5707963267948966;r=p+-1.5707963267948966;do if(b|(n|0)==(H|0))if(b){if(!F){b=0;s=q;j=t;i=q;break}b=0;s=q;j=t;i=q;l=l-t*+J(+k);m=m-t*+I(+k);break}else{if(!F){b=0;s=r;j=t;i=r;break}b=0;s=r;j=t;i=r;l=l-t*+J(+p);m=m-t*+I(+p);break}else{i=k-p;i=1.5707963267948966-(i<0.0?i+6.283185307179586:i)*.5;j=+I(+i);j=j==0.0?0.0:t/j;i=q+i;if(G|j>t*10.0){i=+zO(r,6.283185307179586);b=1;s=+zO(q,6.283185307179586);j=t}else{b=0;s=i}}while(0);h[o>>3]=m;h[B>>3]=l;h[u>>3]=v;a[w>>0]=108;h[x>>3]=i;h[y>>3]=j;c[z>>2]=b;h[A>>3]=s;n=C}o=HK(12)|0;b=0;while(1){if((b|0)>=(K|0))break;m=+h[M+(b<<6)>>3];l=+h[M+(b<<6)+8>>3];i=+h[M+(b<<6)+32>>3];j=+h[M+(b<<6)+40>>3];N=c[M+(b<<6)+48>>2]|0;k=+h[M+(b<<6)+56>>3];BO(o,m+j*+I(+i),l+j*+J(+i));if(N|0)CO(m,l,j,1,i,k,f,o);b=b+1|0}n=(g|0)==1;k=i+3.141592653589793;if(n)DO(o,m,l,j,i,k);else{BO(o,m+j*+I(+k),l+j*+J(+k));i=k}b=K+-2|0;k=m;while(1){if((b|0)<=-1)break;m=+h[M+(b<<6)>>3];l=+h[M+(b<<6)+8>>3];j=+h[M+(b<<6)+40>>3];N=c[M+(b<<6)+48>>2]|0;i=+h[M+(b<<6)+32>>3]+3.141592653589793;k=+h[M+(b<<6)+56>>3]+3.141592653589793;BO(o,m+j*+I(+k),l+j*+J(+k));if(N|0)CO(m,l,j,0,i,k,f,o);b=b+-1|0;k=m}if(n)DO(o,k,l,j,i,i+3.141592653589793);EO(L);return o|0}function yO(a){a=a|0;var b=0.0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;q=l;l=l+144|0;i=q+128|0;h=q+112|0;j=q+96|0;k=q+64|0;m=q;n=q+80|0;o=FO()|0;p=c[a+4>>2]|0;f=c[a>>2]|0;c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];GO(o,i,0.0);g=m+48|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];c[g+8>>2]=c[f+8>>2];c[g+12>>2]=c[f+12>>2];d=0;b=0.0;a:while(1){e=d+3|0;if((e|0)>=(p|0))break;c[m>>2]=c[g>>2];c[m+4>>2]=c[g+4>>2];c[m+8>>2]=c[g+8>>2];c[m+12>>2]=c[g+12>>2];a=1;while(1){if((a|0)==4)break;r=m+(a<<4)|0;s=f+(a+d<<4)|0;c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];c[r+8>>2]=c[s+8>>2];c[r+12>>2]=c[s+12>>2];a=a+1|0}c[j>>2]=c[m>>2];c[j+4>>2]=c[m+4>>2];c[j+8>>2]=c[m+8>>2];c[j+12>>2]=c[m+12>>2];a=1;while(1){if((a|0)==21){d=e;continue a}iP(n,m,3,+(a|0)/20.0,0,0);c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];c[k+12>>2]=c[n+12>>2];c[h>>2]=c[j>>2];c[h+4>>2]=c[j+4>>2];c[h+8>>2]=c[j+8>>2];c[h+12>>2]=c[j+12>>2];c[i>>2]=c[n>>2];c[i+4>>2]=c[n+4>>2];c[i+8>>2]=c[n+8>>2];c[i+12>>2]=c[n+12>>2];t=b+ +HO(h,i);c[i>>2]=c[k>>2];c[i+4>>2]=c[k+4>>2];c[i+8>>2]=c[k+8>>2];c[i+12>>2]=c[k+12>>2];GO(o,i,t);c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];a=a+1|0;b=t}}IO(o);l=q;return o|0}function zO(a,b){a=+a;b=+b;if(!(!(a<0.0)&!(a>=b)))a=a-+E(+(a/b))*b;return +a}function AO(a,b){a=+a;b=+b;if(!(a==0.0&b==0.0)){a=+O(+a,+b);if(!(a>=0.0))a=a+6.283185307179586}else a=0.0;return +a}function BO(a,b,d){a=a|0;b=+b;d=+d;var e=0,f=0,g=0;f=c[a>>2]|0;e=a+4|0;g=a+8|0;if((f|0)<(c[e>>2]|0))e=c[g>>2]|0;else{c[e>>2]=2e3;e=KK(c[g>>2]|0,32e3)|0;c[g>>2]=e;f=c[a>>2]|0}c[a>>2]=f+1;h[e+(f<<4)>>3]=b;h[e+(f<<4)+8>>3]=d;return}function CO(a,b,c,d,e,f,g,h){a=+a;b=+b;c=+c;d=d|0;e=+e;f=+f;g=g|0;h=h|0;var i=0.0,j=0.0,k=0.0;d=(d|0)==0;i=d?e:f;j=+I(+i)*c+a;k=+J(+i)*c+a;do if((g|0)==1){e=(d?f:e)-i;e=!(e<=1.7453292519943296e-03)?e:e+6.283185307179586;if(e<3.141592653589793){DO(h,a,b,c,i+e,i);break}else{BO(h,j,k);break}}else BO(h,j,k);while(0);return}function DO(a,b,c,d,e,f){a=a|0;b=+b;c=+c;d=+d;e=+e;f=+f;var g=0,h=0.0;BO(a,+I(+e)*d+b,+J(+e)*d+c);a:do if(!(d==0.0)){while(1){if(!(f>e))break;f=f+-6.283185307179586}f=e-f;while(1){if(!(f>6.283185307179586))break;f=f+-6.283185307179586}f=f/19.0;g=1;while(1){if((g|0)==20)break a;h=e-f*+(g|0);BO(a,+I(+h)*d+b,+J(+h)*d+c);g=g+1|0}}while(0);return}function EO(a){a=a|0;l6(c[a>>2]|0);l6(a);return}function FO(){var a=0;a=HK(12)|0;c[a+4>>2]=0;c[a+8>>2]=2e3;c[a>>2]=HK(128e3)|0;return a|0}function GO(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,g=0,i=0;i=a+4|0;e=c[i>>2]|0;f=a+8|0;g=c[f>>2]|0;if((e|0)<(g|0))a=c[a>>2]|0;else{c[f>>2]=g<<1;e=KK(c[a>>2]|0,g<<7)|0;c[a>>2]=e;a=e;e=c[i>>2]|0}h[a+(e<<6)>>3]=+h[b>>3];h[a+(e<<6)+8>>3]=+h[b+8>>3];c[i>>2]=e+1;h[a+(e<<6)+16>>3]=d;return}function HO(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;d=+h[a>>3]-+h[b>>3];c=+h[a+8>>3]-+h[b+8>>3];return +(+G(+(d*d+c*c)))}function IO(a){a=a|0;var b=0;b=c[a+4>>2]|0;if((c[a+8>>2]|0)>(b|0))c[a>>2]=KK(c[a>>2]|0,b<<6)|0;return}function JO(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;k=m+8|0;j=m;h=m+12|0;c[h>>2]=0;i=c[e+4>>2]|0;if(!i)Aa(106959,106970,203,106981);f=c[i>>2]|0;if(!f)Aa(106995,106970,206,106981);g=i+8|0;if(!(c[g>>2]|0))c[g>>2]=KO(f)|0;if(!(a[195234]|0))f=0;else{f=(NJ(c[i>>2]|0)|0)==0;f=f?0:h}if(!((bT(d,e,f)|0)<<24>>24))LO(e,f);do if(f|0){g=c[h>>2]|0;d=c[15715]|0;f=c[i>>2]|0;if(!g){c[k>>2]=f;z4(d,107038,k)|0;break}else{c[j>>2]=f;c[j+4>>2]=g;z4(d,107006,j)|0;break}}while(0);k=e+32|0;c[b>>2]=c[k>>2];c[b+4>>2]=c[k+4>>2];c[b+8>>2]=c[k+8>>2];c[b+12>>2]=c[k+12>>2];l=m;return}function KO(a){a=a|0;var b=0;b=c[47371]|0;if((b|0)!=0?(C3(b,a)|0)==0:0)a=c[47380]|0;else{l6(b);c[47371]=Y3(a)|0;a=e6(189484,22380,35,36,95)|0;c[47380]=a}return a|0}function LO(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0,i=0.0,j=0,k=0.0;j=c[b+4>>2]|0;e=c[j>>2]|0;i=+h[j+16>>3];j=b+32|0;h[j>>3]=0.0;h[b+40>>3]=i*1.2;h[b+16>>3]=0.0;h[b+24>>3]=i*.1;c[b+8>>2]=0;c[b+12>>2]=0;if(N3(e,107072,4)|0)if((N3(e,107077,5)|0)!=0?(N3(e,107083,9)|0)!=0:0){g=4296;e=107093}else{g=8392;e=107129}else{g=6344;e=107110}if(d|0)c[d>>2]=e;e=c[b>>2]|0;if(e|0){f=0.0;while(1){b=a[e>>0]|0;if(!(b<<24>>24))break;k=f+ +h[g+((b&255)<<3)>>3];h[j>>3]=k;e=e+1|0;f=k}h[j>>3]=i*f}return}function MO(a,b){a=a|0;b=b|0;return C3(c[a>>2]|0,c[b>>2]|0)|0}function NO(a){a=a|0;var b=0;b=a+108|0;c[b>>2]=0;c[a+112>>2]=32;c[a+116>>2]=-1;c[a+120>>2]=36;c[a+124>>2]=63;c[a+128>>2]=55;c[a+132>>2]=0;c[a+136>>2]=0;c[a+140>>2]=0;b=Sz(b,c[4591]|0)|0;c[a+144>>2]=b;return b|0}function OO(a,b,d){a=a|0;b=b|0;d=d|0;d=m6(1,32)|0;a=c[b>>2]|0;if(a|0)c[d>>2]=Y3(a)|0;a=c[b+4>>2]|0;if(a|0)c[d+4>>2]=Y3(a)|0;c[d+24>>2]=c[b+24>>2]&127;h[d+16>>3]=+h[b+16>>3];c[d+8>>2]=c[b+8>>2];return d|0}function PO(a,b,d){a=a|0;b=b|0;d=d|0;l6(c[b>>2]|0);l6(c[b+4>>2]|0);l6(b);return}function QO(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0,j=0;a=c[b>>2]|0;e=c[d>>2]|0;i=(e|0)==0;if(!a)if(i)j=5;else a=-1;else if(!i){a=f2(a,e)|0;if(!a)j=5}else a=1;do if((j|0)==5){a=c[b+4>>2]|0;e=c[d+4>>2]|0;i=(e|0)==0;if(!a){if(!i){a=-1;break}}else{if(i){a=1;break}a=f2(a,e)|0;if(a|0)break}a=(c[b+24>>2]&127)-(c[d+24>>2]&127)|0;if(!a){g=+h[b+16>>3];f=+h[d+16>>3];if(g<f)a=-1;else a=g>f&1}}while(0);return a|0}function RO(){Ea(189524)|0;return}function SO(){var a=0,b=0;b=l;l=l+16|0;a=b;Ea(a|0)|0;l=b;return +(+((c[a+4>>2]|0)+(c[a>>2]|0)-(c[47381]|0)-(c[47382]|0)|0)/60.0)}function TO(a){a=a|0;var b=0,d=0;b=HK(16)|0;a=(a|0)>2?a:2;d=HK(a<<2)|0;c[b>>2]=d;c[b+12>>2]=d;c[b+8>>2]=d;c[b+4>>2]=d+(a<<2);return b|0}function UO(a){a=a|0;l6(c[a>>2]|0);l6(a);return}function VO(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+12|0;e=c[d>>2]|0;c[d>>2]=e+4;c[e>>2]=b;if((c[d>>2]|0)>>>0>=(c[a+4>>2]|0)>>>0)c[d>>2]=c[a>>2];return}function WO(a){a=a|0;var b=0,d=0,e=0;d=a+8|0;b=c[d>>2]|0;if((b|0)!=(c[a+12>>2]|0)){e=b+4|0;c[d>>2]=e;b=c[b>>2]|0;if(e>>>0>=(c[a+4>>2]|0)>>>0)c[d>>2]=c[a>>2]}else b=0;return b|0}function XO(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;i=l;l=l+16|0;g=i;if(((d|0)!=0?(h=OA(b,d)|0,(h|0)!=0):0)?(a[h>>0]|0)!=0:0){d=$1(h,g,10)|0;e=(h|0)==(c[g>>2]|0)?e:(d|0)<(f|0)?f:d}l=i;return e|0}function YO(b,d,e,f){b=b|0;d=d|0;e=+e;f=+f;var g=0,h=0,i=0,j=0.0;i=l;l=l+16|0;g=i;if(((b|0)!=0&(d|0)!=0?(h=OA(b,d)|0,(h|0)!=0):0)?(a[h>>0]|0)!=0:0){j=+b6(h,g);e=(h|0)==(c[g>>2]|0)?e:j<f?f:j}l=i;return +e}function ZO(a){a=a|0;var b=0.0;b=+h[23314];if(!(b>0.0)){b=+YO(a,DA(a,0,107939,0)|0,-1.0,0.0);b=b==0.0?72.0:b}return +b}function _O(a,b,c){a=a|0;b=b|0;c=c|0;if((a|0)!=0&(b|0)!=0)c=OA(a,b)|0;return c|0}function $O(b,c,d){b=b|0;c=c|0;d=d|0;b=_O(b,c,d)|0;if((b|0)!=0?(a[b>>0]|0)!=0:0)d=b;return d|0}function aP(a,b,c){a=a|0;b=b|0;c=c|0;if(!b)a=c&255;else a=bP(OA(a,b)|0)|0;return a|0}function bP(a){a=a|0;return cP(a,0)|0}function cP(b,c){b=b|0;c=c|0;var d=0;if((b|0)!=0?(d=a[b>>0]|0,d<<24>>24!=0):0)if((C3(b,137609)|0)!=0?(C3(b,107950)|0)!=0:0)if((C3(b,107953)|0)!=0?(C3(b,107958)|0)!=0:0){if(((d<<24>>24)+-48|0)>>>0<10)c=(d6(b)|0)&255}else c=1;else c=0;return c|0}function dP(a){a=a|0;var b=0,d=0;while(1){b=(c[a+16>>2]|0)+220|0;d=c[b>>2]|0;if(!((d|0)!=(a|0)&(d|0)!=0))break;a=c[(c[d+16>>2]|0)+220>>2]|0;if(!a){a=d;continue}c[b>>2]=a}return a|0}function eP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;if((a|0)!=(b|0)){d=c[a+16>>2]|0;e=d+220|0;if(!(c[e>>2]|0)){c[e>>2]=a;c[d+216>>2]=1}else a=dP(a)|0;e=c[b+16>>2]|0;d=e+220|0;if(!(c[d>>2]|0)){c[d>>2]=b;c[e+216>>2]=1;d=e;e=1}else{b=dP(b)|0;e=c[b+16>>2]|0;d=e;e=c[e+216>>2]|0}h=c[a+16>>2]|0;g=(c[h+120>>2]|0)>(c[d+120>>2]|0);f=h+216|0;e=e+(c[f>>2]|0)|0;a=g?b:a;c[(g?h:d)+220>>2]=a;c[(g?d+216|0:f)>>2]=e}return a|0}function fP(b){b=b|0;b=c[b+16>>2]|0;c[b+216>>2]=1;c[b+220>>2]=0;a[b+159>>0]=0;return}function gP(a,b){a=a|0;b=b|0;if((dP(a)|0)==(a|0)){a=c[a+16>>2]|0;c[a+220>>2]=b;b=(c[b+16>>2]|0)+216|0;c[b>>2]=(c[b>>2]|0)+(c[a+216>>2]|0);return}else Aa(107970,107962,194,107986)}function hP(a,b){a=a|0;b=b|0;var d=0.0;b=c[(c[b+16>>2]|0)+132>>2]|0;d=+h[b+8>>3]*72.0;h[a>>3]=+h[b>>3]*72.0;h[a+8>>3]=d;return}function iP(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;g=g|0;var i=0,j=0,k=0,m=0.0,n=0,o=0,p=0;o=l;l=l+576|0;n=o;i=0;while(1){if((i|0)>(d|0))break;k=n+(i<<4)|0;j=b+(i<<4)|0;c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];i=i+1|0}m=1.0-e;i=1;while(1){if((i|0)>(d|0))break;j=d-i|0;k=i+-1|0;b=0;while(1){if((b|0)>(j|0))break;p=b+1|0;h[n+(i*96|0)+(b<<4)>>3]=m*+h[n+(k*96|0)+(b<<4)>>3]+ +h[n+(k*96|0)+(p<<4)>>3]*e;h[n+(i*96|0)+(b<<4)+8>>3]=m*+h[n+(k*96|0)+(b<<4)+8>>3]+ +h[n+(k*96|0)+(p<<4)+8>>3]*e;b=p}i=i+1|0}a:do if(f|0){i=0;while(1){if((i|0)>(d|0))break a;p=f+(i<<4)|0;k=n+(i*96|0)|0;c[p>>2]=c[k>>2];c[p+4>>2]=c[k+4>>2];c[p+8>>2]=c[k+8>>2];c[p+12>>2]=c[k+12>>2];i=i+1|0}}while(0);b:do if(g|0){i=0;while(1){if((i|0)>(d|0))break b;p=g+(i<<4)|0;f=n+((d-i|0)*96|0)+(i<<4)|0;c[p>>2]=c[f>>2];c[p+4>>2]=c[f+4>>2];c[p+8>>2]=c[f+8>>2];c[p+12>>2]=c[f+12>>2];i=i+1|0}}while(0);p=n+(d*96|0)|0;c[a>>2]=c[p>>2];c[a+4>>2]=c[p+4>>2];c[a+8>>2]=c[p+8>>2];c[a+12>>2]=c[p+12>>2];l=o;return}function jP(b){b=b|0;var d=0,e=0,f=0,g=0;e=0;do{d=c[47385]|0;f=d+1024|0;if((d-e|0)<1024){c[47385]=f;f=KK(c[47386]|0,f)|0;c[47386]=f;d=c[47385]|0}else f=c[47386]|0;d=o4(f+e|0,d-e|0,b)|0;if(!d){g=6;break}e=(D3(d)|0)+e|0;d=c[47386]|0}while((a[d+(e+-1)>>0]|0)!=10);if((g|0)==6)d=c[47386]|0;return ((e|0)>0?d:0)|0}function kP(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=l;l=l+16|0;g=h+8|0;f=h;do if((b|0)!=0?(a[b>>0]|0)!=0:0){d=c[47179]|0;if(!d){d=c[47178]|0;e=c[47388]|0;if((c[47387]|0)==(d|0))d=e;else{if(e){l6(c[e>>2]|0);l6(c[47388]|0);c[47388]=0;d=c[47178]|0}c[47387]=d;if(!d)break;if(!(a[d>>0]|0))break;d=lP(d)|0;c[47388]=d}if(!((a[b>>0]|0)!=47&(d|0)!=0))break;b=mP(d,c[47389]|0,b)|0;break}e=c[47177]|0;if(e|0?a[e>>0]|0:0){if(!(c[47387]|0)){c[47388]=lP(e)|0;e=c[47177]|0;c[47387]=e}d=I4(b,47)|0;d=(d|0)==0?b:d+1|0;f=I4(d,92)|0;f=(f|0)==0?d:f+1|0;d=I4(f,58)|0;d=(d|0)==0?f:d+1|0;if(!((a[107997]|0)==0|(d|0)==(b|0))){c[g>>2]=b;c[g+4>>2]=e;dA(0,108123,g)|0;a[107997]=0}b=mP(c[47388]|0,c[47389]|0,d)|0;break}if(a[107997]|0){c[f>>2]=d;dA(0,107998,f)|0;a[107997]=0;b=0}else b=0}else b=0;while(0);l=h;return b|0}function lP(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;e=0;f=0;g=0;b=Y3(a)|0;d=0;while(1){b=i6(b,108285)|0;if(!b)break;a=(g<<2)+8|0;if(!f)a=IK(a)|0;else a=KK(d,a)|0;c[a+(g<<2)>>2]=b;f=D3(b)|0;e=e>>>0>f>>>0?e:f;f=a;g=g+1|0;b=0;d=a}c[f+(g<<2)>>2]=0;c[47389]=e;return f|0}function mP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=l;l=l+16|0;e=g;h=c[47390]|0;c[47390]=n6(h,b+2+(D3(d)|0)|0)|0;while(1){b=c[a>>2]|0;if(!b){a=0;break}h=c[47390]|0;c[e>>2]=b;c[e+4>>2]=108283;c[e+8>>2]=d;i2(h,108276,e)|0;if(!(H4(c[47390]|0,4)|0)){f=4;break}else a=a+4|0}if((f|0)==4)a=c[47390]|0;l=g;return a|0}function nP(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=(b|0)==0;f=0;while(1){h=c[d+(f<<2)>>2]|0;if(!h)break;if((!g?(a[b>>0]|0)==(a[h>>0]|0):0)?(f2(b,h)|0)==0:0)break;f=f+1|0}return c[e+(f<<2)>>2]|0}function oP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0.0,j=0.0,k=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;z=l;l=l+80|0;x=z+16|0;y=z;u=c[b+4>>2]|0;v=c[b>>2]|0;w=d+8|0;f=0;e=-1;g=1.e+38;b=-1;while(1){if((f|0)>=(u|0))break;s=c[v+(f*48|0)>>2]|0;t=c[v+(f*48|0)+4>>2]|0;r=0;while(1){if((r|0)>=(t|0))break;p=+h[s+(r<<4)>>3]-+h[d>>3];q=+h[s+(r<<4)+8>>3]-+h[w>>3];q=p*p+q*q;A=(e|0)==-1|q<g;B=A?r:e;r=r+1|0;b=A?f:b;e=B;g=A?q:g}f=f+1|0}f=c[v+(b*48|0)>>2]|0;e=(((e|0)==((c[v+(b*48|0)+4>>2]|0)+-1|0))<<31>>31)+e|0;e=e-((e|0)%3|0)|0;b=0;while(1){if((b|0)==4)break;B=b+e|0;h[x+(b<<4)>>3]=+h[f+(B<<4)>>3];h[x+(b<<4)+8>>3]=+h[f+(B<<4)+8>>3];b=b+1|0}q=+h[d>>3];p=+h[x>>3]-q;o=+h[w>>3];k=+h[x+8>>3]-o;n=+h[x+48>>3]-q;j=+h[x+56>>3]-o;b=y+8|0;g=1.0;i=0.0;j=n*n+j*j;k=p*p+k*k;while(1){p=(i+g)*.5;iP(y,x,3,p,0,0);m=+h[y>>3];n=+h[b>>3];if(+F(+(k-j))<1.0)break;if(+F(+(g-i))<1.0e-05)break;B=k<j;n=n-o;m=m-q;n=m*m+n*n;g=B?p:g;i=B?i:p;j=B?n:j;k=B?k:n}h[a>>3]=m;h[a+8>>3]=n;l=z;return}function pP(){return c[47391]|0}function qP(b){b=b|0;var d=0.0,e=0,f=0,g=0,i=0,j=0,k=0,l=0;d=+YO(b,c[47200]|0,.75,.01);g=b+16|0;h[(c[g>>2]|0)+32>>3]=d;d=+YO(b,c[47199]|0,.5,.02);h[(c[g>>2]|0)+40>>3]=d;l=hN($O(b,c[47201]|0,108287)|0,b)|0;c[(c[g>>2]|0)+8>>2]=l;l=OA(b,c[47216]|0)|0;d=+YO(b,c[47212]|0,14.0,1.0);e=$O(b,c[47213]|0,108295)|0;f=$O(b,c[47214]|0,137615)|0;i=(gD(l)|0)!=0;k=(UM(b)|0)==2;i=xK(b,l,(k?4:0)|(i?2:0),d,e,f)|0;c[(c[g>>2]|0)+104>>2]=i;i=c[47217]|0;if((i|0?(j=OA(b,i)|0,j|0):0)?a[j>>0]|0:0){l=(gD(j)|0)!=0;l=xK(b,j,l?2:0,d,e,f)|0;c[(c[g>>2]|0)+108>>2]=l;l=(c[(uC(b)|0)+16>>2]|0)+113|0;a[l>>0]=a[l>>0]|16}k=(XO(b,c[47220]|0,0,0)|0)&255;l=c[g>>2]|0;a[l+144>>0]=k;db[c[c[(c[l+8>>2]|0)+4>>2]>>2]&127](b);return}function rP(b){b=b|0;var d=0,e=0,f=0,g=0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+112|0;m=v+96|0;n=v+80|0;s=v+40|0;u=v;r=b+48|0;p=uC(c[((c[b>>2]&3|0)==3?b:r)+40>>2]|0)|0;g=m+8|0;c[g>>2]=0;o=n+8|0;c[o>>2]=0;d=c[47251]|0;if(((d|0)!=0?(e=OA(b,d)|0,(e|0)!=0):0)?(a[e>>0]|0)!=0:0){sP(b,m);t=(gD(e)|0)!=0;i=+h[m>>3];f=c[g>>2]|0;d=c[m+12>>2]|0;e=xK(b,e,t?2:0,i,f,d)|0;t=b+16|0;c[(c[t>>2]|0)+96>>2]=e;e=(c[p+16>>2]|0)+113|0;a[e>>0]=a[e>>0]|1;e=bP(_O(b,c[47261]|0,137609)|0)|0;a[(c[t>>2]|0)+114>>0]=e;t=1;e=f}else{t=0;d=0;i=0.0;e=0}f=c[47252]|0;if((f|0?(j=OA(b,f)|0,j|0):0)?a[j>>0]|0:0){if(!e){sP(b,m);i=+h[m>>3];e=c[g>>2]|0;d=c[m+12>>2]|0}g=(gD(j)|0)!=0;j=xK(b,j,g?2:0,i,e,d)|0;c[(c[b+16>>2]|0)+108>>2]=j;j=(c[p+16>>2]|0)+113|0;a[j>>0]=a[j>>0]|32}d=c[47266]|0;if(((d|0)!=0?(k=OA(b,d)|0,(k|0)!=0):0)?(a[k>>0]|0)!=0:0){tP(b,m,n);j=(gD(k)|0)!=0;i=+h[n>>3];d=c[o>>2]|0;e=c[n+12>>2]|0;k=xK(b,k,j?2:0,i,d,e)|0;c[(c[b+16>>2]|0)+100>>2]=k;k=(c[p+16>>2]|0)+113|0;a[k>>0]=a[k>>0]|2}else{e=0;i=0.0;d=0}f=c[47267]|0;if((f|0?(q=OA(b,f)|0,q|0):0)?a[q>>0]|0:0){if(!d){tP(b,m,n);e=c[n+12>>2]|0;i=+h[n>>3];d=c[o>>2]|0}o=(gD(q)|0)!=0;q=xK(b,q,o?2:0,i,d,e)|0;c[(c[b+16>>2]|0)+104>>2]=q;q=(c[p+16>>2]|0)+113|0;a[q>>0]=a[q>>0]|4}d=NA(b,111756)|0;d=d|0?d:195341;if(a[d>>0]|0)a[(c[(c[((c[b>>2]&3|0)==3?b:r)+40>>2]|0)+16>>2]|0)+145>>0]=1;g=b+16|0;f=(c[g>>2]|0)+16|0;e=c[((c[b>>2]&3|0)==3?b:r)+40>>2]|0;uP(s,c[(c[(c[(c[e+16>>2]|0)+8>>2]|0)+4>>2]|0)+8>>2]|0,e,d);d=s;e=f+40|0;do{c[f>>2]=c[d>>2];f=f+4|0;d=d+4|0}while((f|0)<(e|0));if((vP(b,c[47273]|0)|0)<<24>>24)a[(c[g>>2]|0)+46>>0]=0;d=NA(b,111765)|0;d=d|0?d:195341;e=b+-48|0;if(a[d>>0]|0)a[(c[(c[((c[b>>2]&3|0)==2?b:e)+40>>2]|0)+16>>2]|0)+145>>0]=1;f=(c[g>>2]|0)+56|0;e=c[((c[b>>2]&3|0)==2?b:e)+40>>2]|0;uP(u,c[(c[(c[(c[e+16>>2]|0)+8>>2]|0)+4>>2]|0)+8>>2]|0,e,d);d=u;e=f+40|0;do{c[f>>2]=c[d>>2];f=f+4|0;d=d+4|0}while((f|0)<(e|0));if((vP(b,c[47274]|0)|0)<<24>>24)a[(c[g>>2]|0)+86>>0]=0;l=v;return t|0}function sP(a,b){a=a|0;b=b|0;h[b>>3]=+YO(a,c[47248]|0,14.0,1.0);c[b+8>>2]=$O(a,c[47249]|0,108295)|0;c[b+12>>2]=$O(a,c[47250]|0,137615)|0;return}function tP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=b+8|0;if(!(c[e>>2]|0))sP(a,b);h[d>>3]=+YO(a,c[47268]|0,+h[b>>3],1.0);c[d+8>>2]=$O(a,c[47269]|0,c[e>>2]|0)|0;c[d+12>>2]=$O(a,c[47270]|0,c[b+12>>2]|0)|0;return}function uP(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+128|0;k=m+80|0;h=m+40|0;g=m;if((f|0)!=0?(j=F3(f,58)|0,(j|0)!=0):0){a[j>>0]=0;i=j+1|0;xb[d&31](h,e,f,i);e=k;g=h;d=e+36|0;do{c[e>>2]=c[g>>2];e=e+4|0;g=g+4|0}while((e|0)<(d|0));a[j>>0]=58;f=i}else{xb[d&31](g,e,f,0);e=k;d=e+36|0;do{c[e>>2]=c[g>>2];e=e+4|0;g=g+4|0}while((e|0)<(d|0))}e=b;g=k;d=e+36|0;do{c[e>>2]=c[g>>2];e=e+4|0;g=g+4|0}while((e|0)<(d|0));c[b+36>>2]=f;l=m;return}function vP(b,c){b=b|0;c=c|0;var d=0;if(((c|0)!=0?(d=OA(b,c)|0,(d|0)!=0):0)?(a[d>>0]|0)!=0:0)b=(bP(d)|0)<<24>>24==0&1;else b=0;return b|0}function wP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0.0,o=0.0;k=l;l=l+32|0;i=k;j=c[b+8>>2]|0;d=c[b+4>>2]|0;d=(c[b+44>>2]|0)+((S((d|0)>1?d+-1|0:0,j)|0)<<4)|0;e=i+16|0;c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];c[e+12>>2]=c[d+12>>2];c[i>>2]=c[d>>2];c[i+4>>2]=c[d+4>>2];c[i+8>>2]=c[d+8>>2];c[i+12>>2]=c[d+12>>2];f=i+8|0;g=i+24|0;b=1;while(1){if((b|0)>=(j|0))break;m=d+(b<<4)|0;o=+h[m>>3];h[i>>3]=+h[(+h[i>>3]<o?i:m)>>3];n=+h[m+8>>3];h[f>>3]=+h[(+h[f>>3]<n?i:m)+8>>3];h[e>>3]=+h[(+h[e>>3]>o?e:m)>>3];h[g>>3]=+h[(+h[g>>3]>n?e:m)+8>>3];b=b+1|0}c[a>>2]=c[i>>2];c[a+4>>2]=c[i+4>>2];c[a+8>>2]=c[i+8>>2];c[a+12>>2]=c[i+12>>2];c[a+16>>2]=c[i+16>>2];c[a+20>>2]=c[i+20>>2];c[a+24>>2]=c[i+24>>2];c[a+28>>2]=c[i+28>>2];l=k;return}function xP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+64|0;g=d+32|0;e=d;f=c[a+16>>2]|0;a=f+16|0;f=c[f+116>>2]&1;c[g>>2]=c[a>>2];c[g+4>>2]=c[a+4>>2];c[g+8>>2]=c[a+8>>2];c[g+12>>2]=c[a+12>>2];c[g+16>>2]=c[a+16>>2];c[g+20>>2]=c[a+20>>2];c[g+24>>2]=c[a+24>>2];c[g+28>>2]=c[a+28>>2];yP(e,g,b,f);c[a>>2]=c[e>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];c[a+12>>2]=c[e+12>>2];c[a+16>>2]=c[e+16>>2];c[a+20>>2]=c[e+20>>2];c[a+24>>2]=c[e+24>>2];c[a+28>>2]=c[e+28>>2];l=d;return}function yP(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0,k=0.0,l=0.0,m=0.0;m=+h[d+56>>3];l=+h[d+64>>3];j=e<<24>>24==0;k=+h[d+24>>3];i=+h[d+32>>3];g=(j?k:i)*.5;f=m-g;g=m+g;if(f<+h[b>>3])h[b>>3]=f;e=b+16|0;if(g>+h[e>>3])h[e>>3]=g;g=(j?i:k)*.5;f=l-g;g=l+g;e=b+8|0;if(f<+h[e>>3])h[e>>3]=f;e=b+24|0;if(g>+h[e>>3])h[e>>3]=g;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];c[a+28>>2]=c[b+28>>2];return}function zP(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0.0,O=0.0,P=0,Q=0.0,R=0.0;M=l;l=l+432|0;I=M+400|0;u=M+384|0;v=M+288|0;L=M+224|0;H=M+192|0;B=M+144|0;C=M+64|0;d=M+368|0;e=M+352|0;f=M+336|0;D=M+320|0;w=M+256|0;x=M+160|0;y=M+112|0;z=M+80|0;A=M+32|0;J=M;G=L+16|0;K=b+16|0;if((qB(b)|0)==0?(c[(c[K>>2]|0)+180>>2]|0)==0:0){AP(L,0.0,0.0);AP(d,0.0,0.0);c[G>>2]=c[d>>2];c[G+4>>2]=c[d+4>>2];c[G+8>>2]=c[d+8>>2];c[G+12>>2]=c[d+12>>2]}else{AP(e,2147483647.0,2147483647.0);c[L>>2]=c[e>>2];c[L+4>>2]=c[e+4>>2];c[L+8>>2]=c[e+8>>2];c[L+12>>2]=c[e+12>>2];AP(f,-2147483647.0,-2147483647.0);c[G>>2]=c[f>>2];c[G+4>>2]=c[f+4>>2];c[G+8>>2]=c[f+8>>2];c[G+12>>2]=c[f+12>>2];E=L+24|0;F=L+8|0;p=C+8|0;q=v+16|0;r=v+8|0;s=v+24|0;t=B+8|0;o=gC(b)|0;while(1){if(!o)break;hP(B,o);d=o+16|0;n=c[d>>2]|0;h[C>>3]=(+h[n+88>>3]+ +h[n+96>>3])*.5;h[p>>3]=+h[n+80>>3]*.5;c[u>>2]=c[B>>2];c[u+4>>2]=c[B+4>>2];c[u+8>>2]=c[B+8>>2];c[u+12>>2]=c[B+12>>2];c[I>>2]=c[C>>2];c[I+4>>2]=c[C+4>>2];c[I+8>>2]=c[C+8>>2];c[I+12>>2]=c[C+12>>2];BP(v,u,I);c[u>>2]=c[B>>2];c[u+4>>2]=c[B+4>>2];c[u+8>>2]=c[B+8>>2];c[u+12>>2]=c[B+12>>2];c[I>>2]=c[C>>2];c[I+4>>2]=c[C+4>>2];c[I+8>>2]=c[C+8>>2];c[I+12>>2]=c[C+12>>2];CP(D,u,I);c[q>>2]=c[D>>2];c[q+4>>2]=c[D+4>>2];c[q+8>>2]=c[D+8>>2];c[q+12>>2]=c[D+12>>2];h[L>>3]=+h[(+h[L>>3]<+h[v>>3]?L:v)>>3];h[F>>3]=+h[(+h[F>>3]<+h[r>>3]?L:v)+8>>3];h[G>>3]=+h[(+h[G>>3]>+h[q>>3]?L:v)+16>>3];h[E>>3]=+h[(+h[E>>3]>+h[s>>3]?L:v)+24>>3];d=c[(c[d>>2]|0)+108>>2]|0;if(d|0?a[d+81>>0]|0:0){n=c[(c[K>>2]|0)+116>>2]&1;c[I>>2]=c[L>>2];c[I+4>>2]=c[L+4>>2];c[I+8>>2]=c[L+8>>2];c[I+12>>2]=c[L+12>>2];c[I+16>>2]=c[L+16>>2];c[I+20>>2]=c[L+20>>2];c[I+24>>2]=c[L+24>>2];c[I+28>>2]=c[L+28>>2];yP(w,I,d,n);c[L>>2]=c[w>>2];c[L+4>>2]=c[w+4>>2];c[L+8>>2]=c[w+8>>2];c[L+12>>2]=c[w+12>>2];c[L+16>>2]=c[w+16>>2];c[L+20>>2]=c[w+20>>2];c[L+24>>2]=c[w+24>>2];c[L+28>>2]=c[w+28>>2]}n=UA(b,o)|0;while(1){if(!n)break;m=n+16|0;d=c[m>>2]|0;g=c[d+8>>2]|0;if(g|0){i=c[g+4>>2]|0;f=0;while(1){if((f|0)>=(i|0))break;k=c[g>>2]|0;j=c[k+(f*48|0)+4>>2]|0;k=k+(f*48|0)|0;e=0;while(1){if((e|0)>=(j|0))break;P=(c[k>>2]|0)+(e<<4)|0;c[B>>2]=c[P>>2];c[B+4>>2]=c[P+4>>2];c[B+8>>2]=c[P+8>>2];c[B+12>>2]=c[P+12>>2];O=+h[B>>3];h[L>>3]=+h[(+h[L>>3]<O?L:B)>>3];N=+h[t>>3];h[F>>3]=+h[(+h[F>>3]<N?L:B)+8>>3];h[G>>3]=+h[(+h[G>>3]>O?G:B)>>3];h[E>>3]=+h[(+h[E>>3]>N?G:B)+8>>3];e=e+1|0}f=f+1|0}e=c[d+96>>2]|0;if((e|0)!=0?(a[e+81>>0]|0)!=0:0){d=c[(c[K>>2]|0)+116>>2]&1;c[I>>2]=c[L>>2];c[I+4>>2]=c[L+4>>2];c[I+8>>2]=c[L+8>>2];c[I+12>>2]=c[L+12>>2];c[I+16>>2]=c[L+16>>2];c[I+20>>2]=c[L+20>>2];c[I+24>>2]=c[L+24>>2];c[I+28>>2]=c[L+28>>2];yP(x,I,e,d);c[L>>2]=c[x>>2];c[L+4>>2]=c[x+4>>2];c[L+8>>2]=c[x+8>>2];c[L+12>>2]=c[x+12>>2];c[L+16>>2]=c[x+16>>2];c[L+20>>2]=c[x+20>>2];c[L+24>>2]=c[x+24>>2];c[L+28>>2]=c[x+28>>2];d=c[m>>2]|0}e=c[d+100>>2]|0;if((e|0)!=0?(a[e+81>>0]|0)!=0:0){d=c[(c[K>>2]|0)+116>>2]&1;c[I>>2]=c[L>>2];c[I+4>>2]=c[L+4>>2];c[I+8>>2]=c[L+8>>2];c[I+12>>2]=c[L+12>>2];c[I+16>>2]=c[L+16>>2];c[I+20>>2]=c[L+20>>2];c[I+24>>2]=c[L+24>>2];c[I+28>>2]=c[L+28>>2];yP(y,I,e,d);c[L>>2]=c[y>>2];c[L+4>>2]=c[y+4>>2];c[L+8>>2]=c[y+8>>2];c[L+12>>2]=c[y+12>>2];c[L+16>>2]=c[y+16>>2];c[L+20>>2]=c[y+20>>2];c[L+24>>2]=c[y+24>>2];c[L+28>>2]=c[y+28>>2];d=c[m>>2]|0}e=c[d+104>>2]|0;if((e|0)!=0?(a[e+81>>0]|0)!=0:0){d=c[(c[K>>2]|0)+116>>2]&1;c[I>>2]=c[L>>2];c[I+4>>2]=c[L+4>>2];c[I+8>>2]=c[L+8>>2];c[I+12>>2]=c[L+12>>2];c[I+16>>2]=c[L+16>>2];c[I+20>>2]=c[L+20>>2];c[I+24>>2]=c[L+24>>2];c[I+28>>2]=c[L+28>>2];yP(z,I,e,d);c[L>>2]=c[z>>2];c[L+4>>2]=c[z+4>>2];c[L+8>>2]=c[z+8>>2];c[L+12>>2]=c[z+12>>2];c[L+16>>2]=c[z+16>>2];c[L+20>>2]=c[z+20>>2];c[L+24>>2]=c[z+24>>2];c[L+28>>2]=c[z+28>>2];d=c[m>>2]|0}d=c[d+108>>2]|0;if(d|0?a[d+81>>0]|0:0){P=c[(c[K>>2]|0)+116>>2]&1;c[I>>2]=c[L>>2];c[I+4>>2]=c[L+4>>2];c[I+8>>2]=c[L+8>>2];c[I+12>>2]=c[L+12>>2];c[I+16>>2]=c[L+16>>2];c[I+20>>2]=c[L+20>>2];c[I+24>>2]=c[L+24>>2];c[I+28>>2]=c[L+28>>2];yP(A,I,d,P);c[L>>2]=c[A>>2];c[L+4>>2]=c[A+4>>2];c[L+8>>2]=c[A+8>>2];c[L+12>>2]=c[A+12>>2];c[L+16>>2]=c[A+16>>2];c[L+20>>2]=c[A+20>>2];c[L+24>>2]=c[A+24>>2];c[L+28>>2]=c[A+28>>2]}}n=WA(b,n)|0}o=hC(b,o)|0}d=c[K>>2]|0;f=c[d+180>>2]|0;g=d+184|0;i=H+8|0;j=H+16|0;k=H+24|0;e=1;while(1){if((e|0)>(f|0))break;P=c[(c[(c[g>>2]|0)+(e<<2)>>2]|0)+16>>2]|0;R=+h[P+16>>3];h[H>>3]=R;Q=+h[P+24>>3];h[i>>3]=Q;N=+h[P+32>>3];h[j>>3]=N;O=+h[P+40>>3];h[k>>3]=O;h[L>>3]=+h[(+h[L>>3]<R?L:H)>>3];h[F>>3]=+h[(+h[F>>3]<Q?L:H)+8>>3];h[G>>3]=+h[(+h[G>>3]>N?L:H)+16>>3];h[E>>3]=+h[(+h[E>>3]>O?L:H)+24>>3];e=e+1|0}e=c[d+12>>2]|0;if((e|0)!=0?(a[e+81>>0]|0)!=0:0){d=c[d+116>>2]&1;c[I>>2]=c[L>>2];c[I+4>>2]=c[L+4>>2];c[I+8>>2]=c[L+8>>2];c[I+12>>2]=c[L+12>>2];c[I+16>>2]=c[L+16>>2];c[I+20>>2]=c[L+20>>2];c[I+24>>2]=c[L+24>>2];c[I+28>>2]=c[L+28>>2];yP(J,I,e,d);c[L>>2]=c[J>>2];c[L+4>>2]=c[J+4>>2];c[L+8>>2]=c[J+8>>2];c[L+12>>2]=c[J+12>>2];c[L+16>>2]=c[J+16>>2];c[L+20>>2]=c[J+20>>2];c[L+24>>2]=c[J+24>>2];c[L+28>>2]=c[J+28>>2];d=c[K>>2]|0}P=d+16|0;c[P>>2]=c[L>>2];c[P+4>>2]=c[L+4>>2];c[P+8>>2]=c[L+8>>2];c[P+12>>2]=c[L+12>>2];c[P+16>>2]=c[L+16>>2];c[P+20>>2]=c[L+20>>2];c[P+24>>2]=c[L+24>>2];c[P+28>>2]=c[L+28>>2]}l=M;return}function AP(a,b,c){a=a|0;b=+b;c=+c;h[a>>3]=b;h[a+8>>3]=c;return}function BP(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=+h[b+8>>3]-+h[c+8>>3];h[a>>3]=+h[b>>3]-+h[c>>3];h[a+8>>3]=d;return}function CP(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=+h[b+8>>3]+ +h[c+8>>3];h[a>>3]=+h[b>>3]+ +h[c>>3];h[a+8>>3]=d;return}function DP(a){a=a|0;if((c[a+60>>2]|0)==(a|0))a=1;else a=(N3(HB(a)|0,108307,7)|0)==0;return a&1|0}function EP(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;a:do if(!e)switch(FC(b)|0){case 0:{e=DA(a,0,c,195341)|0;break a}case 1:{e=DA(a,1,c,195341)|0;break a}case 2:{e=DA(a,2,c,195341)|0;break a}default:{e=0;break a}}while(0);HA(b,e,d)|0;return e|0}function FP(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+144|0;g=k;i=GP(d)|0;h=Sz(23640,c[4591]|0)|0;j=LD(d,108315,1)|0;RC(j,137786,280,1)|0;hA(g,128,k+16|0);e=gC(d)|0;while(1){if(!e)break;a:do if(!(a[(c[e+16>>2]|0)+118>>0]|0)){f=UA(d,e)|0;while(1){if(!f)break a;HP(f,j,g,h,i);f=WA(d,f)|0}}while(0);e=hC(d,e)|0}lA(g);Oz(h)|0;f=qB(j)|0;e=gC(j)|0;while(1){if(!e)break;h=hC(j,e)|0;tC(d,e)|0;e=h}pB(j)|0;if(f|0){j=(c[d+16>>2]|0)+136|0;b[j>>1]=b[j>>1]|1}Oz(i)|0;l=k;return f|0}function GP(a){a=a|0;var b=0;b=Sz(23676,c[4591]|0)|0;QP(a,b);return b|0}function HP(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+48|0;q=t+32|0;p=t+24|0;s=t+16|0;r=t+8|0;k=t;n=c[b>>2]&3;m=c[((n|0)==3?b:b+48|0)+40>>2]|0;n=c[((n|0)==2?b:b+-48|0)+40>>2]|0;do if(!(a[(c[n+16>>2]|0)+118>>0]|0)){if(!(h2(HB(m)|0,108307,7)|0))o=IP(g,HB(m)|0)|0;else o=0;if(!(h2(HB(n)|0,108307,7)|0))j=IP(g,HB(n)|0)|0;else j=0;h=(o|0)!=0;i=(j|0)!=0;if(h|i){if((o|0)==(j|0)){r=HB(m)|0;s=HB(m)|0;c[k>>2]=r;c[k+4>>2]=s;dA(0,108330,k)|0;break}g=JP(f,b)|0;if(g|0){KP(b,c[g+16>>2]|0,c[g+20>>2]|0)|0;break}if(!i)if(!(EC(o,n)|0)){MP(f,m,n,KP(b,LP(m,o,e,d)|0,n)|0);break}else{r=HB(n)|0;s=HB(o)|0;c[q>>2]=r;c[q+4>>2]=s;dA(0,108485,q)|0;break}if(!h)if(!(EC(j,m)|0)){MP(f,m,n,KP(b,m,LP(n,j,e,d)|0)|0);break}else{r=HB(m)|0;s=HB(j)|0;c[p>>2]=r;c[p+4>>2]=s;dA(0,108448,p)|0;break}if(EC(j,o)|0){q=HB(o)|0;s=HB(j)|0;c[r>>2]=q;c[r+4>>2]=s;dA(0,108368,r)|0;break}if(!(EC(o,j)|0)){s=LP(m,o,e,d)|0;MP(f,m,n,KP(b,s,LP(n,j,e,d)|0)|0);break}else{q=HB(j)|0;r=HB(o)|0;c[s>>2]=q;c[s+4>>2]=r;dA(0,108408,s)|0;break}}}while(0);l=t;return}function IP(a,b){a=a|0;b=b|0;a=eb[c[a>>2]&63](a,b,512)|0;if(!a)a=0;else a=c[a+12>>2]|0;return a|0}function JP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d;f=c[b>>2]&3;c[e>>2]=c[((f|0)==3?b:b+48|0)+40>>2];c[e+4>>2]=c[((f|0)==2?b:b+-48|0)+40>>2];b=eb[c[a>>2]&63](a,e,512)|0;l=d;return b|0}function KP(a,b,c){a=a|0;b=b|0;c=c|0;c=fB(uC(b)|0,b,c,0,1)|0;RC(c,137763,176,1)|0;RA(a,c)|0;return c|0}function LP(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;k=l;l=l+112|0;g=k;j=k+4|0;kA(e,108522)|0;i=c[47392]|0;c[47392]=i+1;c[g>>2]=i;i2(j,137696,g)|0;kA(e,j)|0;j=e+4|0;g=c[j>>2]|0;i=e+8|0;if(g>>>0>=(c[i>>2]|0)>>>0){iA(e,1)|0;g=c[j>>2]|0}c[j>>2]=g+1;a[g>>0]=58;kA(e,HB(d)|0)|0;h=vC(d)|0;g=c[j>>2]|0;if(g>>>0>=(c[i>>2]|0)>>>0){iA(e,1)|0;g=c[j>>2]|0}a[g>>0]=0;e=c[e>>2]|0;c[j>>2]=e;j=qC(h,e,1)|0;RC(j,137750,304,1)|0;a[(c[j+16>>2]|0)+118>>0]=1;lC(d,j,1)|0;lC(f,b,1)|0;f=uC(j)|0;c[47216]=EP(f,j,108525,195341,c[47216]|0)|0;f=uC(j)|0;c[47219]=EP(f,j,141385,134636,c[47219]|0)|0;f=uC(j)|0;c[47201]=EP(f,j,108531,108537,c[47201]|0)|0;l=k;return j|0}function MP(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+32|0;g=f;n=g+8|0;c[n>>2]=b;m=g+12|0;c[m>>2]=d;o=c[e>>2]&3;i=e+48|0;j=g+16|0;c[j>>2]=c[((o|0)==3?e:i)+40>>2];k=e+-48|0;h=g+20|0;c[h>>2]=c[((o|0)==2?e:k)+40>>2];eb[c[a>>2]&63](a,g,1)|0;c[n>>2]=d;c[m>>2]=b;d=c[e>>2]&3;c[j>>2]=c[((d|0)==2?e:k)+40>>2];c[h>>2]=c[((d|0)==3?e:i)+40>>2];eb[c[a>>2]&63](a,g,1)|0;l=f;return}function NP(a,b,d){a=a|0;b=b|0;d=d|0;d=HK(24)|0;c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];c[d+16>>2]=c[b+16>>2];c[d+20>>2]=c[b+20>>2];return d|0}function OP(a,b,c){a=a|0;b=b|0;c=c|0;l6(b);return}function PP(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=c[b>>2]|0;e=c[d>>2]|0;if(a>>>0>=e>>>0)if(a>>>0>e>>>0)a=1;else{b=c[b+4>>2]|0;d=c[d+4>>2]|0;return (b>>>0<d>>>0?-1:b>>>0>d>>>0&1)|0}else a=-1;return a|0}function QP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=l;l=l+16|0;g=h;f=a+16|0;e=1;while(1){a=c[f>>2]|0;if((e|0)>(c[a+180>>2]|0))break;a=c[(c[a+184>>2]|0)+(e<<2)>>2]|0;d=HB(a)|0;if(!(eb[c[b>>2]&63](b,d,512)|0)){i=HK(16)|0;c[i+8>>2]=d;c[i+12>>2]=a;eb[c[b>>2]&63](b,i,1)|0}else{c[g>>2]=d;dA(0,108541,g)|0}QP(a,b);e=e+1|0}l=h;return}function RP(a,b,c){a=a|0;b=b|0;c=c|0;l6(b);return}function SP(a){a=a|0;var b=0,c=0,d=0;d=LD(a,108315,1)|0;RC(d,137786,280,1)|0;b=gC(a)|0;while(1){if(!b)break;c=UA(a,b)|0;while(1){if(!c)break;TP(c,d);c=WA(a,c)|0}b=hC(a,b)|0}b=gC(d)|0;while(1){if(!b)break;c=hC(d,b)|0;UP(b);tC(a,b)|0;b=c}pB(d)|0;return}function TP(b,d){b=b|0;d=d|0;var e=0,f=0;e=c[b>>2]&3;f=c[((e|0)==3?b:b+48|0)+40>>2]|0;e=c[((e|0)==2?b:b+-48|0)+40>>2]|0;if(!((a[(c[f+16>>2]|0)+118>>0]|0)==0?!(a[(c[e+16>>2]|0)+118>>0]|0):0)){f=VP(f,d)|0;e=KP(b,f,VP(e,d)|0)|0;f=c[b+16>>2]|0;d=f+8|0;e=c[e+16>>2]|0;c[e+8>>2]=c[d>>2];c[d>>2]=0;d=f+96|0;c[e+96>>2]=c[d>>2];c[d>>2]=0;d=f+108|0;c[e+108>>2]=c[d>>2];c[d>>2]=0;d=f+100|0;c[e+100>>2]=c[d>>2];c[d>>2]=0;f=f+104|0;c[e+104>>2]=c[f>>2];c[f>>2]=0;WP(b)}return}function UP(a){a=a|0;var b=0,d=0,e=0;e=a+16|0;b=c[e>>2]|0;d=c[b+132>>2]|0;if(d){l6(d);b=c[e>>2]|0}d=c[b+8>>2]|0;if(d){db[c[(c[d+4>>2]|0)+4>>2]&127](a);b=c[e>>2]|0}AK(c[b+104>>2]|0);AK(c[(c[e>>2]|0)+108>>2]|0);TC(a,137750)|0;return}function VP(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=uC(b)|0;a:do if(a[(c[b+16>>2]|0)+118>>0]|0){lC(d,b,1)|0;b=F3(HB(b)|0,58)|0;if(!b)Aa(111509,107962,1225,108593);d=b+1|0;b=qC(f,d,0)|0;if(!b){b=qC(f,d,1)|0;RC(b,137750,304,1)|0;d=IA(f,1,0)|0;while(1){if(!d)break a;g=OA(b,d)|0;e=c[d+12>>2]|0;if((g|0)!=(e|0))HA(b,d,e)|0;d=IA(f,1,d)|0}}}while(0);return b|0}function WP(a){a=a|0;var b=0;b=a+16|0;l6(c[(c[b>>2]|0)+144>>2]|0);XP(a);AK(c[(c[b>>2]|0)+96>>2]|0);AK(c[(c[b>>2]|0)+108>>2]|0);AK(c[(c[b>>2]|0)+100>>2]|0);AK(c[(c[b>>2]|0)+104>>2]|0);TC(a,137763)|0;return}function XP(a){a=a|0;var b=0,d=0,e=0;e=a+16|0;a=c[e>>2]|0;b=c[a+8>>2]|0;if(b){d=0;while(1){a=c[b>>2]|0;if((d|0)>=(c[b+4>>2]|0))break;l6(c[a+(d*48|0)>>2]|0);d=d+1|0;b=c[(c[e>>2]|0)+8>>2]|0}l6(a);l6(c[(c[e>>2]|0)+8>>2]|0);a=c[e>>2]|0}c[a+8>>2]=0;return}function YP(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=DA(a,b,c,0)|0;if(!e)e=DA(a,b,c,d)|0;return e|0}function ZP(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+32|0;i=o;h=o+8|0;j=o+16|0;m=F3(b,59)|0;n=d+4|0;e=c[n>>2]|0;k=d+8|0;if(e>>>0>=(c[k>>2]|0)>>>0){iA(d,1)|0;e=c[n>>2]|0}c[n>>2]=e+1;a[e>>0]=38;if(((m|0)!=0?(f=m-b|0,(f+-2|0)>>>0<=6):0)?(N4(j,b,f)|0,a[j+f>>0]=0,c[h>>2]=j,g=e6(h,23712,252,8,96)|0,(g|0)!=0):0){c[i>>2]=c[g+4>>2];i2(j,137696,i)|0;b=c[n>>2]|0;if(b>>>0>=(c[k>>2]|0)>>>0){iA(d,1)|0;b=c[n>>2]|0}c[n>>2]=b+1;a[b>>0]=35;kA(d,j)|0;b=c[n>>2]|0;if(b>>>0>=(c[k>>2]|0)>>>0){iA(d,1)|0;b=c[n>>2]|0}c[n>>2]=b+1;a[b>>0]=59;b=m+1|0}l=o;return b|0}function _P(a,b){a=a|0;b=b|0;return f2(c[a>>2]|0,c[b>>2]|0)|0}function $P(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+1072|0;k=q+8|0;j=q;i=q+16|0;o=q+24|0;c[i>>2]=b;if((c[47393]|0)!=(d|0)){c[47393]=d;a[195240]=0}hA(o,1024,q+40|0);n=o+8|0;p=o+4|0;while(1){f=b+1|0;c[i>>2]=f;e=a[b>>0]|0;if(!(e<<24>>24))break;do if((e&255)<192)if(e<<24>>24==38){g=bQ(i)|0;if(!g)e=38;else{if(g>>>0<127){e=g&255;break}b=c[p>>2]|0;f=b>>>0>=(c[n>>2]|0)>>>0;h=g>>>6;e=(g&63|128)&255;if(g>>>0<2047){if(f){iA(o,1)|0;b=c[p>>2]|0}c[p>>2]=b+1;a[b>>0]=h|192;break}if(f){iA(o,1)|0;b=c[p>>2]|0}c[p>>2]=b+1;a[b>>0]=g>>>12|224;b=c[p>>2]|0;if(b>>>0>=(c[n>>2]|0)>>>0){iA(o,1)|0;b=c[p>>2]|0}c[p>>2]=b+1;a[b>>0]=h&63|128}}else{h=0;m=9}else if((e&255)>=224)if((e&255)>=240)if((e&255)<248){h=3;m=9}else{if(!(a[195240]|0)){c[j>>2]=HB(d)|0;dA(0,110008,j)|0;a[195240]=1}h=-1;e=aQ(e,o)|0;m=9}else{h=2;m=9}else{h=1;m=9}while(0);do if((m|0)==9){m=0;g=0;while(1){if((g|0)>=(h|0)){m=34;break}if((a[f>>0]&-64)<<24>>24!=-128)break;b=c[p>>2]|0;if(b>>>0>=(c[n>>2]|0)>>>0){iA(o,1)|0;b=c[p>>2]|0}c[p>>2]=b+1;a[b>>0]=e;g=g+1|0;e=a[f>>0]|0;f=f+1|0}if((m|0)==34){m=0;c[i>>2]=f;break}c[i>>2]=f;if(!(a[195240]|0)){g=HB(d)|0;c[k>>2]=h+1;c[k+4>>2]=g;dA(0,110129,k)|0;a[195240]=1}e=aQ(e,o)|0}while(0);b=c[p>>2]|0;if(b>>>0>=(c[n>>2]|0)>>>0){iA(o,1)|0;b=c[p>>2]|0}c[p>>2]=b+1;a[b>>0]=e;b=c[i>>2]|0}b=c[p>>2]|0;if(b>>>0>=(c[n>>2]|0)>>>0){iA(o,1)|0;b=c[p>>2]|0}a[b>>0]=0;n=c[o>>2]|0;c[p>>2]=n;p=Y3(n)|0;lA(o);l=q;return p|0}
function tw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0;if(a){if((c[a+32>>2]|0)!=1)Aa(95220,95244,187,95375);s=a+36|0;d=c[s>>2]|0;if((d&2|0)==0?(p=(b|0)!=0,(d&1|0)==0|p^1):0)if((c[a>>2]|0)==(c[a+4>>2]|0)?(t=mw(a)|0,(t|0)!=0):0){k=c[a+20>>2]|0;l=c[a+24>>2]|0;m=c[t+20>>2]|0;n=c[t+24>>2]|0;o=c[a>>2]|0;q=IK(o<<2)|0;b=0;while(1){if((b|0)>=(o|0))break;c[q+(b<<2)>>2]=-1;b=b+1|0}b=a+28|0;d=t+28|0;a:do switch((p?8:c[a+16>>2]|0)|0){case 1:{i=c[b>>2]|0;g=c[d>>2]|0;b=0;while(1){if((b|0)>(o|0)){d=0;break}if((c[k+(b<<2)>>2]|0)==(c[m+(b<<2)>>2]|0))b=b+1|0;else{b=0;break a}}b:while(1){if((d|0)>=(o|0)){r=54;break a}e=k+(d<<2)|0;f=d+1|0;a=k+(f<<2)|0;b=c[e>>2]|0;while(1){if((b|0)>=(c[a>>2]|0))break;c[q+(c[l+(b<<2)>>2]<<2)>>2]=b;b=b+1|0}b=c[m+(d<<2)>>2]|0;a=c[m+(f<<2)>>2]|0;d=b;while(1){if((d|0)>=(a|0))break;if((c[q+(c[n+(d<<2)>>2]<<2)>>2]|0)<(c[e>>2]|0)){b=0;break a}else d=d+1|0}while(1){if((b|0)>=(a|0)){d=f;continue b}u=+h[g+(b<<3)>>3]-+h[i+(c[q+(c[n+(b<<2)>>2]<<2)>>2]<<3)>>3];if((u>=0.0?u:-u)>1.0e-07){b=0;break a}else b=b+1|0}}}case 2:{j=c[b>>2]|0;i=c[d>>2]|0;b=0;while(1){if((b|0)>(o|0)){d=0;break}if((c[k+(b<<2)>>2]|0)==(c[m+(b<<2)>>2]|0))b=b+1|0;else{b=0;break a}}c:while(1){if((d|0)>=(o|0)){r=54;break a}f=k+(d<<2)|0;g=d+1|0;a=k+(g<<2)|0;b=c[f>>2]|0;while(1){if((b|0)>=(c[a>>2]|0))break;c[q+(c[l+(b<<2)>>2]<<2)>>2]=b;b=b+1|0}d=c[m+(d<<2)>>2]|0;e=c[m+(g<<2)>>2]|0;b=d;while(1){if((b|0)>=(e|0)){b=d;break}if((c[q+(c[n+(b<<2)>>2]<<2)>>2]|0)<(c[f>>2]|0)){b=0;break a}else b=b+1|0}while(1){if((b|0)>=(e|0)){d=g;continue c}d=b<<1;a=c[q+(c[n+(b<<2)>>2]<<2)>>2]<<1;u=+h[i+(d<<3)>>3]-+h[j+(a<<3)>>3];if((u>=0.0?u:-u)>1.0e-07){b=0;break a}u=+h[i+((d|1)<<3)>>3]-+h[j+((a|1)<<3)>>3];if((u>=0.0?u:-u)>1.0e-07){b=0;break a}else b=b+1|0}}}case 4:{i=c[b>>2]|0;f=c[d>>2]|0;b=0;d:while(1){if((b|0)>=(o|0)){r=54;break a}e=k+(b<<2)|0;g=b+1|0;a=k+(g<<2)|0;d=c[e>>2]|0;while(1){if((d|0)>=(c[a>>2]|0))break;c[q+(c[l+(d<<2)>>2]<<2)>>2]=d;d=d+1|0}b=c[m+(b<<2)>>2]|0;a=c[m+(g<<2)>>2]|0;d=b;while(1){if((d|0)>=(a|0))break;if((c[q+(c[n+(d<<2)>>2]<<2)>>2]|0)<(c[e>>2]|0)){b=0;break a}else d=d+1|0}while(1){if((b|0)>=(a|0)){b=g;continue d}if((c[f+(b<<2)>>2]|0)==(c[i+(c[q+(c[n+(b<<2)>>2]<<2)>>2]<<2)>>2]|0))b=b+1|0;else{b=0;break a}}}}case 8:{a=0;e:while(1){if((a|0)>=(o|0)){r=54;break a}e=k+(a<<2)|0;f=a+1|0;d=k+(f<<2)|0;b=c[e>>2]|0;while(1){if((b|0)>=(c[d>>2]|0))break;c[q+(c[l+(b<<2)>>2]<<2)>>2]=b;b=b+1|0}d=c[m+(f<<2)>>2]|0;b=c[m+(a<<2)>>2]|0;while(1){if((b|0)>=(d|0)){a=f;continue e}if((c[q+(c[n+(b<<2)>>2]<<2)>>2]|0)<(c[e>>2]|0)){b=0;break a}else b=b+1|0}}}default:b=0}while(0);if((r|0)==54){d=c[s>>2]|0;if(p)b=1;else{c[s>>2]=d|2;b=3}c[s>>2]=b|d;b=1}l6(q);nw(t)}else b=0;else b=1}else b=0;return b|0}function uw(a){a=a|0;var b=0,d=0,e=0,f=0;if(!a)b=0;else{e=a+8|0;f=a+40|0;b=ww(c[a>>2]|0,c[a+4>>2]|0,c[e>>2]|0,c[a+16>>2]|0,c[f>>2]|0,c[a+32>>2]|0)|0;d=a+20|0;B6(c[b+20>>2]|0,c[d>>2]|0,(c[a>>2]<<2)+4|0)|0;B6(c[b+24>>2]|0,c[a+24>>2]|0,c[(c[d>>2]|0)+(c[a>>2]<<2)>>2]<<2|0)|0;d=c[a+28>>2]|0;if(d|0)B6(c[b+28>>2]|0,d|0,S(c[e>>2]|0,c[f>>2]|0)|0)|0;c[b+36>>2]=c[a+36>>2];c[b+8>>2]=c[e>>2]}return b|0}function vw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;r=c[a+20>>2]|0;t=c[a+24>>2]|0;u=c[b+20>>2]|0;v=c[b+24>>2]|0;if(!((a|0)!=0&(b|0)!=0))Aa(95282,95244,973,95289);s=c[a+32>>2]|0;if(!((s|0)==1?(s|0)==(c[b+32>>2]|0):0))Aa(95306,95244,974,95289);f=a+16|0;d=c[f>>2]|0;if((d|0)!=(c[b+16>>2]|0))Aa(95356,95244,975,95289);q=c[a>>2]|0;e=c[a+4>>2]|0;if(((q|0)==(c[b>>2]|0)?(e|0)==(c[b+4>>2]|0):0)?(w=ow(q,e,(c[b+8>>2]|0)+(c[a+8>>2]|0)|0,d,1)|0,w|0):0){o=c[w+20>>2]|0;p=c[w+24>>2]|0;s=IK(e<<2)|0;d=0;while(1){if((d|0)>=(e|0))break;c[s+(d<<2)>>2]=-1;d=d+1|0}c[o>>2]=0;d=a+28|0;a=b+28|0;e=w+28|0;a:do switch(c[f>>2]|0){case 1:{m=c[d>>2]|0;l=c[a>>2]|0;j=c[e>>2]|0;d=0;b=0;while(1){if((b|0)>=(q|0))break a;k=b+1|0;e=r+(k<<2)|0;a=c[r+(b<<2)>>2]|0;while(1){if((a|0)>=(c[e>>2]|0))break;n=t+(a<<2)|0;c[s+(c[n>>2]<<2)>>2]=d;c[p+(d<<2)>>2]=c[n>>2];h[j+(d<<3)>>3]=+h[m+(a<<3)>>3];a=a+1|0;d=d+1|0}f=u+(k<<2)|0;g=o+(b<<2)|0;b=c[u+(b<<2)>>2]|0;while(1){if((b|0)>=(c[f>>2]|0))break;a=c[v+(b<<2)>>2]|0;e=c[s+(a<<2)>>2]|0;i=+h[l+(b<<3)>>3];if((e|0)<(c[g>>2]|0)){c[p+(d<<2)>>2]=a;h[j+(d<<3)>>3]=i;d=d+1|0}else{n=j+(e<<3)|0;h[n>>3]=i+ +h[n>>3]}b=b+1|0}c[o+(k<<2)>>2]=d;b=k}}case 2:{n=c[d>>2]|0;m=c[a>>2]|0;k=c[e>>2]|0;b=0;d=0;while(1){if((b|0)>=(q|0))break a;l=b+1|0;e=r+(l<<2)|0;a=c[r+(b<<2)>>2]|0;while(1){if((a|0)>=(c[e>>2]|0))break;g=t+(a<<2)|0;c[s+(c[g>>2]<<2)>>2]=d;c[p+(d<<2)>>2]=c[g>>2];g=a<<1;j=d<<1;h[k+(j<<3)>>3]=+h[n+(g<<3)>>3];h[k+((j|1)<<3)>>3]=+h[n+((g|1)<<3)>>3];a=a+1|0;d=d+1|0}g=u+(l<<2)|0;j=o+(b<<2)|0;f=c[u+(b<<2)>>2]|0;while(1){if((f|0)>=(c[g>>2]|0))break;a=c[v+(f<<2)>>2]|0;e=c[s+(a<<2)>>2]|0;x=f<<1;b=m+((x|1)<<3)|0;i=+h[m+(x<<3)>>3];if((e|0)<(c[j>>2]|0)){c[p+(d<<2)>>2]=a;x=d<<1;h[k+(x<<3)>>3]=i;h[k+((x|1)<<3)>>3]=+h[b>>3];d=d+1|0}else{x=e<<1;e=k+(x<<3)|0;h[e>>3]=i+ +h[e>>3];x=k+((x|1)<<3)|0;h[x>>3]=+h[b>>3]+ +h[x>>3]}f=f+1|0}c[o+(l<<2)>>2]=d;b=l}}case 4:{n=c[d>>2]|0;m=c[a>>2]|0;k=c[e>>2]|0;b=0;d=0;while(1){if((b|0)>=(q|0))break a;l=b+1|0;e=r+(l<<2)|0;a=c[r+(b<<2)>>2]|0;while(1){if((a|0)>=(c[e>>2]|0))break;x=t+(a<<2)|0;c[s+(c[x>>2]<<2)>>2]=d;c[p+(d<<2)>>2]=c[x>>2];c[k+(d<<2)>>2]=c[n+(a<<2)>>2];a=a+1|0;d=d+1|0}g=u+(l<<2)|0;j=o+(b<<2)|0;f=c[u+(b<<2)>>2]|0;while(1){if((f|0)>=(c[g>>2]|0))break;a=c[v+(f<<2)>>2]|0;e=c[s+(a<<2)>>2]|0;b=m+(f<<2)|0;if((e|0)<(c[j>>2]|0)){c[p+(d<<2)>>2]=a;c[k+(d<<2)>>2]=c[b>>2];d=d+1|0}else{x=k+(e<<2)|0;c[x>>2]=(c[x>>2]|0)+(c[b>>2]|0)}f=f+1|0}c[o+(l<<2)>>2]=d;b=l}}case 8:{d=0;b=0;while(1){if((b|0)>=(q|0))break a;j=b+1|0;e=r+(j<<2)|0;a=c[r+(b<<2)>>2]|0;while(1){if((a|0)>=(c[e>>2]|0))break;x=t+(a<<2)|0;c[s+(c[x>>2]<<2)>>2]=d;c[p+(d<<2)>>2]=c[x>>2];d=d+1|0;a=a+1|0}f=u+(j<<2)|0;g=o+(b<<2)|0;e=c[u+(b<<2)>>2]|0;while(1){if((e|0)>=(c[f>>2]|0))break;a=c[v+(e<<2)>>2]|0;if((c[s+(a<<2)>>2]|0)<(c[g>>2]|0)){c[p+(d<<2)>>2]=a;d=d+1|0}e=e+1|0}c[o+(j<<2)>>2]=d;b=j}}default:d=0}while(0);c[w+8>>2]=d;l6(s);return w|0}return 0}function ww(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;a=qw(a,b,d,e,f)|0;if((c|0)>0)rw(a,c)|0;return a|0}function xw(a,b){a=a|0;b=b|0;var d=0;if(!(tw(a,b)|0)){b=mw(a)|0;if(!b)b=0;else{d=vw(a,b)|0;nw(b);b=d+36|0;c[b>>2]=c[b>>2]|3;b=d;d=5}}else{b=uw(a)|0;d=5}if((d|0)==5)b=yw(b)|0;return b|0}function yw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;a:do if(!a)a=0;else{k=c[a+20>>2]|0;l=c[a+24>>2]|0;d=c[k>>2]|0;m=a+8|0;b=a+28|0;b:do switch(c[a+16>>2]|0){case 1:{j=c[b>>2]|0;i=0;b=0;while(1){if((i|0)>=(c[a>>2]|0))break b;f=i+1|0;g=k+(f<<2)|0;while(1){e=c[g>>2]|0;if((d|0)>=(e|0))break;e=c[l+(d<<2)>>2]|0;if((e|0)!=(i|0)){c[l+(b<<2)>>2]=e;h[j+(b<<3)>>3]=+h[j+(d<<3)>>3];b=b+1|0}d=d+1|0}c[g>>2]=b;i=f;d=e}}case 2:{j=c[b>>2]|0;i=0;b=0;while(1){if((i|0)>=(c[a>>2]|0))break b;f=i+1|0;g=k+(f<<2)|0;while(1){e=c[g>>2]|0;if((d|0)>=(e|0))break;e=c[l+(d<<2)>>2]|0;if((e|0)!=(i|0)){c[l+(b<<2)>>2]=e;n=d<<1;e=b<<1;h[j+(e<<3)>>3]=+h[j+(n<<3)>>3];h[j+((e|1)<<3)>>3]=+h[j+((n|1)<<3)>>3];b=b+1|0}d=d+1|0}c[g>>2]=b;i=f;d=e}}case 4:{j=c[b>>2]|0;i=0;b=0;while(1){if((i|0)>=(c[a>>2]|0))break b;f=i+1|0;g=k+(f<<2)|0;while(1){e=c[g>>2]|0;if((d|0)>=(e|0))break;e=c[l+(d<<2)>>2]|0;if((e|0)!=(i|0)){c[l+(b<<2)>>2]=e;c[j+(b<<2)>>2]=c[j+(d<<2)>>2];b=b+1|0}d=d+1|0}c[g>>2]=b;i=f;d=e}}case 8:{i=0;b=0;while(1){if((i|0)>=(c[a>>2]|0))break b;f=i+1|0;g=k+(f<<2)|0;while(1){e=c[g>>2]|0;if((d|0)>=(e|0))break;e=c[l+(d<<2)>>2]|0;if((e|0)!=(i|0)){c[l+(b<<2)>>2]=e;b=b+1|0}d=d+1|0}c[g>>2]=b;i=f;d=e}}default:{a=0;break a}}while(0);c[m>>2]=b}while(0);return a|0}function zw(a){a=a|0;if((c[a+32>>2]|0)==2)return Aw(c[a+8>>2]|0,c[a>>2]|0,c[a+4>>2]|0,c[a+20>>2]|0,c[a+24>>2]|0,c[a+28>>2]|0,c[a+16>>2]|0,c[a+40>>2]|0)|0;else Aa(95401,95244,803,95427);return 0}function Aw(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;return Bw(a,b,c,d,e,f,g,h,1)|0}function Bw(a,b,d,e,f,g,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;if(!((a|0)>-1&((b|0)>0&(d|0)>0)))Aa(95463,95244,843,95489);j=ww(b,d,a,i,j,1)|0;if(!j)Aa(95534,95244,847,95489);v=c[j+20>>2]|0;u=c[j+24>>2]|0;m=b+1|0;l=0;while(1){if((l|0)==(m|0))break;c[v+(l<<2)>>2]=0;l=l+1|0}n=j+28|0;a:do switch(i|0){case 1:{n=c[n>>2]|0;l=0;while(1){if((l|0)>=(a|0)){r=0;break}m=c[e+(l<<2)>>2]|0;if(!((m|0)>-1&(m|0)<(b|0))){t=13;break}s=c[f+(l<<2)>>2]|0;if(!((s|0)>-1&(s|0)<(d|0))){t=13;break}s=v+(m+1<<2)|0;c[s>>2]=(c[s>>2]|0)+1;l=l+1|0}if((t|0)==13)Aa(138697,95244,862,95489);while(1){if((r|0)==(b|0)){l=0;break}t=r+1|0;d=v+(t<<2)|0;c[d>>2]=(c[d>>2]|0)+(c[v+(r<<2)>>2]|0);r=t}while(1){if((l|0)==(a|0))break;s=v+(c[e+(l<<2)>>2]<<2)|0;t=c[s>>2]|0;h[n+(t<<3)>>3]=+h[g+(l<<3)>>3];d=c[f+(l<<2)>>2]|0;c[s>>2]=t+1;c[u+(t<<2)>>2]=d;l=l+1|0}while(1){if((b|0)<=0)break a;f=b+-1|0;c[v+(b<<2)>>2]=c[v+(f<<2)>>2];b=f}}case 2:{n=c[n>>2]|0;l=0;while(1){if((l|0)>=(a|0)){s=0;break}m=c[e+(l<<2)>>2]|0;if(!((m|0)>-1&(m|0)<(b|0))){t=25;break}r=c[f+(l<<2)>>2]|0;if(!((r|0)>-1&(r|0)<(d|0))){t=25;break}r=v+(m+1<<2)|0;c[r>>2]=(c[r>>2]|0)+1;l=l+1|0}if((t|0)==25)Aa(138697,95244,880,95489);while(1){if((s|0)==(b|0)){l=0;break}t=s+1|0;d=v+(t<<2)|0;c[d>>2]=(c[d>>2]|0)+(c[v+(s<<2)>>2]|0);s=t}while(1){if((l|0)==(a|0))break;s=v+(c[e+(l<<2)>>2]<<2)|0;t=c[s>>2]|0;d=t<<1;h[n+(d<<3)>>3]=+h[g>>3];h[n+((d|1)<<3)>>3]=+h[g+8>>3];d=c[f+(l<<2)>>2]|0;c[s>>2]=t+1;c[u+(t<<2)>>2]=d;g=g+16|0;l=l+1|0}while(1){if((b|0)<=0)break a;f=b+-1|0;c[v+(b<<2)>>2]=c[v+(f<<2)>>2];b=f}}case 4:{n=c[n>>2]|0;l=0;while(1){if((l|0)>=(a|0)){q=0;break}m=c[e+(l<<2)>>2]|0;if(!((m|0)>-1&(m|0)<(b|0))){t=37;break}s=c[f+(l<<2)>>2]|0;if(!((s|0)>-1&(s|0)<(d|0))){t=37;break}s=v+(m+1<<2)|0;c[s>>2]=(c[s>>2]|0)+1;l=l+1|0}if((t|0)==37)Aa(138697,95244,899,95489);while(1){if((q|0)==(b|0)){l=0;break}t=q+1|0;d=v+(t<<2)|0;c[d>>2]=(c[d>>2]|0)+(c[v+(q<<2)>>2]|0);q=t}while(1){if((l|0)==(a|0))break;s=e+(l<<2)|0;c[n+(c[v+(c[s>>2]<<2)>>2]<<2)>>2]=c[g+(l<<2)>>2];d=c[f+(l<<2)>>2]|0;s=v+(c[s>>2]<<2)|0;t=c[s>>2]|0;c[s>>2]=t+1;c[u+(t<<2)>>2]=d;l=l+1|0}while(1){if((b|0)<=0)break a;f=b+-1|0;c[v+(b<<2)>>2]=c[v+(f<<2)>>2];b=f}}case 8:{g=0;while(1){if((g|0)>=(a|0)){o=0;break}l=c[e+(g<<2)>>2]|0;if(!((l|0)>-1&(l|0)<(b|0))){t=48;break}s=c[f+(g<<2)>>2]|0;if(!((s|0)>-1&(s|0)<(d|0))){t=48;break}s=v+(l+1<<2)|0;c[s>>2]=(c[s>>2]|0)+1;g=g+1|0}if((t|0)==48)Aa(138697,95244,915,95489);while(1){if((o|0)==(b|0)){g=0;break}t=o+1|0;d=v+(t<<2)|0;c[d>>2]=(c[d>>2]|0)+(c[v+(o<<2)>>2]|0);o=t}while(1){if((g|0)==(a|0))break;d=c[f+(g<<2)>>2]|0;s=v+(c[e+(g<<2)>>2]<<2)|0;t=c[s>>2]|0;c[s>>2]=t+1;c[u+(t<<2)>>2]=d;g=g+1|0}while(1){if((b|0)<=0)break a;f=b+-1|0;c[v+(b<<2)>>2]=c[v+(f<<2)>>2];b=f}}case 16:{l=0;while(1){if((l|0)>=(a|0)){p=0;break}m=c[e+(l<<2)>>2]|0;if(!((m|0)>-1&(m|0)<(b|0))){t=59;break}s=c[f+(l<<2)>>2]|0;if(!((s|0)>-1&(s|0)<(d|0))){t=59;break}s=v+(m+1<<2)|0;c[s>>2]=(c[s>>2]|0)+1;l=l+1|0}if((t|0)==59)Aa(138697,95244,930,95489);while(1){if((p|0)==(b|0))break;t=p+1|0;d=v+(t<<2)|0;c[d>>2]=(c[d>>2]|0)+(c[v+(p<<2)>>2]|0);p=t}B6(c[n>>2]|0,g|0,S(c[j+40>>2]|0,a)|0)|0;g=0;while(1){if((g|0)==(a|0))break;d=c[f+(g<<2)>>2]|0;s=v+(c[e+(g<<2)>>2]<<2)|0;t=c[s>>2]|0;c[s>>2]=t+1;c[u+(t<<2)>>2]=d;g=g+1|0}while(1){if((b|0)<=0)break a;f=b+-1|0;c[v+(b<<2)>>2]=c[v+(f<<2)>>2];b=f}}default:Aa(138697,95244,944,95489)}while(0);c[v>>2]=0;c[j+8>>2]=a;if(k)j=Cw(j,k)|0;return j|0}function Cw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;v=c[a+20>>2]|0;w=c[a+24>>2]|0;e=c[a+16>>2]|0;s=c[a+4>>2]|0;a:do if(b){r=s<<2;u=IK(r)|0;d=0;while(1){if((d|0)>=(s|0))break;c[u+(d<<2)>>2]=-1;d=d+1|0}d=a+28|0;b:do switch(e|0){case 1:{k=c[d>>2]|0;f=0;e=c[v>>2]|0;d=0;c:while(1){if((d|0)>=(c[a>>2]|0)){x=f;y=u;break b}m=d+1|0;n=v+(m<<2)|0;j=v+(d<<2)|0;d=f;while(1){b=c[n>>2]|0;if((e|0)>=(b|0))break;b=w+(e<<2)|0;f=c[b>>2]|0;g=c[u+(f<<2)>>2]|0;i=k+(e<<3)|0;if((g|0)<(c[j>>2]|0)){c[w+(d<<2)>>2]=f;h[k+(d<<3)>>3]=+h[i>>3];c[u+(c[b>>2]<<2)>>2]=d;d=d+1|0}else{if((c[w+(g<<2)>>2]|0)!=(f|0))break c;t=k+(g<<3)|0;h[t>>3]=+h[i>>3]+ +h[t>>3]}e=e+1|0}c[n>>2]=d;f=d;e=b;d=m}Aa(95536,95244,1792,95561);break}case 2:{t=c[d>>2]|0;switch(b|0){case 1:{b=c[v>>2]|0;e=0;d=0;d:while(1){if((e|0)>=(c[a>>2]|0)){x=d;y=u;break b}m=e+1|0;n=v+(m<<2)|0;k=v+(e<<2)|0;while(1){e=c[n>>2]|0;if((b|0)>=(e|0))break;e=w+(b<<2)|0;f=c[e>>2]|0;g=c[u+(f<<2)>>2]|0;j=b<<1;i=t+(j<<3)|0;j=t+((j|1)<<3)|0;if((g|0)<(c[k>>2]|0)){c[w+(d<<2)>>2]=f;s=d<<1;h[t+(s<<3)>>3]=+h[i>>3];h[t+((s|1)<<3)>>3]=+h[j>>3];c[u+(c[e>>2]<<2)>>2]=d;d=d+1|0}else{if((c[w+(g<<2)>>2]|0)!=(f|0))break d;s=g<<1;r=t+(s<<3)|0;h[r>>3]=+h[i>>3]+ +h[r>>3];s=t+((s|1)<<3)|0;h[s>>3]=+h[j>>3]+ +h[s>>3]}b=b+1|0}c[n>>2]=d;b=e;e=m}Aa(95536,95244,1815,95561);break}case 4:{b=c[v>>2]|0;e=0;d=0;e:while(1){if((e|0)>=(c[a>>2]|0)){x=d;y=u;break b}m=e+1|0;n=v+(m<<2)|0;k=v+(e<<2)|0;while(1){e=c[n>>2]|0;if((b|0)>=(e|0))break;i=w+(b<<2)|0;j=c[i>>2]|0;e=c[u+(j<<2)>>2]|0;g=b<<1;f=t+(g<<3)|0;g=t+((g|1)<<3)|0;if((e|0)<(c[k>>2]|0)){c[w+(d<<2)>>2]=j;s=d<<1;h[t+(s<<3)>>3]=+h[f>>3];h[t+((s|1)<<3)>>3]=+h[g>>3];c[u+(c[i>>2]<<2)>>2]=d;d=d+1|0}else{if((c[w+(e<<2)>>2]|0)!=(j|0))break e;s=e<<1;r=t+(s<<3)|0;h[r>>3]=+h[f>>3]+ +h[r>>3];h[t+((s|1)<<3)>>3]=+h[g>>3]}b=b+1|0}c[n>>2]=d;b=e;e=m}Aa(95536,95244,1835,95561);break}default:{p=t+8|0;switch(b|0){case 2:break;case 3:{f=~~+h[p>>3];i=c[a>>2]|0;d=f;e=0;g=0;f:while(1){if((g|0)>=(i|0))break;j=g+1|0;k=c[v+(j<<2)>>2]|0;b=d;d=c[v+(g<<2)>>2]|0;while(1){if((d|0)>=(k|0)){d=b;g=j;continue f}q=~~+h[t+(e<<1<<3)>>3];b=(b|0)>(q|0)?b:q;f=(f|0)>(q|0)?f:q;e=e+1|0;d=d+1|0}}l6(u);e=d-f+1|0;o=IK(S(e,r)|0)|0;e=S(e,s)|0;d=0;while(1){if((d|0)>=(e|0))break;c[o+(d<<2)>>2]=-1;d=d+1|0}d=0;b=c[v>>2]|0;e=0;g:while(1){if((e|0)>=(c[a>>2]|0)){x=d;y=o;break b}m=e+1|0;n=v+(m<<2)|0;k=v+(e<<2)|0;while(1){e=c[n>>2]|0;if((b|0)>=(e|0))break;e=c[w+(b<<2)>>2]|0;j=b<<1;l=+h[t+(j<<3)>>3];g=o+((S(~~l-f|0,s)|0)+e<<2)|0;i=c[g>>2]|0;j=t+((j|1)<<3)|0;if((i|0)<(c[k>>2]|0)){c[w+(d<<2)>>2]=e;q=d<<1;h[t+(q<<3)>>3]=l;h[t+((q|1)<<3)>>3]=+h[j>>3];c[g>>2]=d;d=d+1|0}else{if((c[w+(i<<2)>>2]|0)!=(e|0))break g;q=i<<1;h[t+(q<<3)>>3]=l;q=t+((q|1)<<3)|0;h[q>>3]=+h[j>>3]+ +h[q>>3]}b=b+1|0}c[n>>2]=d;b=e;e=m}Aa(95614,95244,1905,95561);break}default:{x=0;y=u;break b}}q=~~+h[p>>3];i=c[a>>2]|0;e=q;g=0;d=0;h:while(1){if((g|0)>=(i|0))break;j=g+1|0;k=c[v+(j<<2)>>2]|0;f=d;b=q;d=c[v+(g<<2)>>2]|0;while(1){if((d|0)>=(k|0)){q=b;g=j;d=f;continue h}q=~~+h[t+((f<<1|1)<<3)>>3];f=f+1|0;e=(e|0)>(q|0)?e:q;b=(b|0)<(q|0)?b:q;d=d+1|0}}l6(u);p=e-q+1|0;o=IK(S(p,r)|0)|0;p=S(p,s)|0;d=0;while(1){if((d|0)>=(p|0))break;c[o+(d<<2)>>2]=-1;d=d+1|0}d=0;b=c[v>>2]|0;e=0;i:while(1){if((e|0)>=(c[a>>2]|0)){x=d;y=o;break b}m=e+1|0;n=v+(m<<2)|0;k=v+(e<<2)|0;while(1){e=c[n>>2]|0;if((b|0)>=(e|0))break;e=c[w+(b<<2)>>2]|0;j=b<<1;l=+h[t+((j|1)<<3)>>3];f=(S(~~l-q|0,s)|0)+e|0;g=o+(f<<2)|0;i=c[g>>2]|0;j=t+(j<<3)|0;if((i|0)<(c[k>>2]|0)){c[w+(d<<2)>>2]=e;u=d<<1;h[t+(u<<3)>>3]=+h[j>>3];h[t+((u|1)<<3)>>3]=l;c[g>>2]=d;d=d+1|0}else{if((f|0)>=(p|0)){d=56;break i}if((c[w+(i<<2)>>2]|0)!=(e|0)){d=58;break i}u=i<<1;r=t+(u<<3)|0;h[r>>3]=+h[j>>3]+ +h[r>>3];h[t+((u|1)<<3)>>3]=l}b=b+1|0}c[n>>2]=d;b=e;e=m}if((d|0)==56)Aa(95593,95244,1869,95561);else if((d|0)==58)Aa(95614,95244,1870,95561)}}break}case 4:{k=c[d>>2]|0;e=0;d=0;b=c[v>>2]|0;j:while(1){if((e|0)>=(c[a>>2]|0)){x=d;y=u;break b}m=e+1|0;n=v+(m<<2)|0;j=v+(e<<2)|0;while(1){f=c[n>>2]|0;if((b|0)>=(f|0))break;e=w+(b<<2)|0;f=c[e>>2]|0;g=c[u+(f<<2)>>2]|0;i=k+(b<<2)|0;if((g|0)<(c[j>>2]|0)){c[w+(d<<2)>>2]=f;c[k+(d<<2)>>2]=c[i>>2];c[u+(c[e>>2]<<2)>>2]=d;d=d+1|0}else{if((c[w+(g<<2)>>2]|0)!=(f|0))break j;t=k+(g<<2)|0;c[t>>2]=(c[t>>2]|0)+(c[i>>2]|0)}b=b+1|0}c[n>>2]=d;e=m;b=f}Aa(95536,95244,1929,95561);break}case 8:{e=0;d=0;b=c[v>>2]|0;k:while(1){if((e|0)>=(c[a>>2]|0)){x=d;y=u;break b}j=e+1|0;k=v+(j<<2)|0;i=v+(e<<2)|0;while(1){f=c[k>>2]|0;if((b|0)>=(f|0))break;e=w+(b<<2)|0;f=c[e>>2]|0;g=c[u+(f<<2)>>2]|0;if((g|0)>=(c[i>>2]|0)){if((c[w+(g<<2)>>2]|0)!=(f|0))break k}else{c[w+(d<<2)>>2]=f;c[u+(c[e>>2]<<2)>>2]=d;d=d+1|0}b=b+1|0}c[k>>2]=d;e=j;b=f}Aa(95536,95244,1948,95561);break}default:{a=0;break a}}while(0);c[a+8>>2]=x;l6(y)}while(0);return a|0}function Dw(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;if(!d)Ew(a,c,e,g,b,f);else Fw(a,c,e,g,b,f);return}function Ew(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0;if((c[a+32>>2]|0)!=1)Aa(95220,95244,1121,95784);if((c[a+16>>2]|0)!=1)Aa(95665,95244,1122,95784);p=c[a+28>>2]|0;q=c[a+20>>2]|0;r=c[a+24>>2]|0;s=c[a>>2]|0;n=c[a+4>>2]|0;a=c[d>>2]|0;i=(a|0)!=0;o=(g|0)!=0;if(!f){if(!i)a=IK(S(e<<3,s)|0)|0;g=0;a:while(1){if((g|0)>=(s|0))break;m=S(g,e)|0;i=0;while(1){if((i|0)>=(e|0))break;h[a+(i+m<<3)>>3]=0.0;i=i+1|0}k=g+1|0;l=c[q+(k<<2)>>2]|0;i=c[q+(g<<2)>>2]|0;while(1){if((i|0)>=(l|0)){g=k;continue a}f=p+(i<<3)|0;j=r+(i<<2)|0;g=0;while(1){if((g|0)>=(e|0))break;t=+h[f>>3]*+h[b+((S(c[j>>2]|0,e)|0)+g<<3)>>3];n=a+(g+m<<3)|0;h[n>>3]=+h[n>>3]+t;g=g+1|0}i=i+1|0}}if(o)Hw(a,s,e)}else{if(!i)a=IK(S(e<<3,n)|0)|0;g=S(n,e)|0;i=0;while(1){if((i|0)>=(g|0)){i=0;break}h[a+(i<<3)>>3]=0.0;i=i+1|0}b:while(1){if((i|0)>=(s|0))break;k=i+1|0;l=c[q+(k<<2)>>2]|0;m=S(i,e)|0;i=c[q+(i<<2)>>2]|0;while(1){if((i|0)>=(l|0)){i=k;continue b}f=p+(i<<3)|0;j=r+(i<<2)|0;g=0;while(1){if((g|0)>=(e|0))break;u=a+((S(c[j>>2]|0,e)|0)+g<<3)|0;h[u>>3]=+h[f>>3]*+h[b+(g+m<<3)>>3]+ +h[u>>3];g=g+1|0}i=i+1|0}}if(o)Hw(a,n,e)}c[d>>2]=a;return}function Fw(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;n=o;if((c[a+32>>2]|0)!=1)Aa(95220,95244,1163,95636);if((c[a+16>>2]|0)!=1)Aa(95665,95244,1164,95636);h=c[d>>2]|0;k=c[a>>2]|0;m=c[a+4>>2]|0;i=(h|0)!=0;j=(g|0)!=0;if(!f){if(!i)h=IK(S(e<<3,k)|0)|0;g=0;while(1){if((g|0)>=(e|0))break;c[n>>2]=h+((S(g,k)|0)<<3);Gw(a,b+((S(g,m)|0)<<3)|0,n,0);g=g+1|0}if(!j)Hw(h,e,k)}else{if(!i)h=IK(S(e<<3,m)|0)|0;g=0;while(1){if((g|0)>=(e|0))break;c[n>>2]=h+((S(g,m)|0)<<3);Gw(a,b+((S(g,k)|0)<<3)|0,n,f);g=g+1|0}if(!j)Hw(h,e,m)}c[d>>2]=h;l=o;return}function Gw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;if((c[a+32>>2]|0)!=1)Aa(95220,95244,1222,95693);n=c[a+16>>2]|0;switch(n|0){case 4:case 1:break;default:Aa(95722,95244,1223,95693)}r=c[a+20>>2]|0;p=c[a+24>>2]|0;s=c[a>>2]|0;o=c[a+4>>2]|0;i=c[d>>2]|0;l=s<<3;m=(i|0)!=0;e=(e|0)!=0;j=(b|0)!=0;k=o<<3;q=c[a+28>>2]|0;a:do switch(n|0){case 1:if(j){if(!e){if(m)g=i;else g=IK(l)|0;e=0;b:while(1){if((e|0)>=(s|0))break a;a=g+(e<<3)|0;h[a>>3]=0.0;i=e+1|0;j=c[r+(i<<2)>>2]|0;e=c[r+(e<<2)>>2]|0;f=0.0;while(1){if((e|0)>=(j|0)){e=i;continue b}t=f+ +h[q+(e<<3)>>3]*+h[b+(c[p+(e<<2)>>2]<<3)>>3];h[a>>3]=t;e=e+1|0;f=t}}}if(m)g=i;else g=IK(k)|0;e=0;while(1){if((e|0)>=(o|0)){e=0;break}h[g+(e<<3)>>3]=0.0;e=e+1|0}c:while(1){if((e|0)>=(s|0))break a;a=e+1|0;i=c[r+(a<<2)>>2]|0;j=b+(e<<3)|0;e=c[r+(e<<2)>>2]|0;while(1){if((e|0)>=(i|0)){e=a;continue c}o=g+(c[p+(e<<2)>>2]<<3)|0;h[o>>3]=+h[q+(e<<3)>>3]*+h[j>>3]+ +h[o>>3];e=e+1|0}}}else{if(!e){if(m)g=i;else g=IK(l)|0;e=0;d:while(1){if((e|0)>=(s|0))break a;a=g+(e<<3)|0;h[a>>3]=0.0;i=e+1|0;j=c[r+(i<<2)>>2]|0;e=c[r+(e<<2)>>2]|0;f=0.0;while(1){if((e|0)>=(j|0)){e=i;continue d}t=+h[q+(e<<3)>>3]+f;h[a>>3]=t;e=e+1|0;f=t}}}if(!m)i=IK(k)|0;e=0;while(1){if((e|0)>=(o|0)){e=0;break}h[i+(e<<3)>>3]=0.0;e=e+1|0}e:while(1){if((e|0)>=(s|0)){g=i;break a}g=e+1|0;a=c[r+(g<<2)>>2]|0;e=c[r+(e<<2)>>2]|0;while(1){if((e|0)>=(a|0)){e=g;continue e}b=i+(c[p+(e<<2)>>2]<<3)|0;h[b>>3]=+h[q+(e<<3)>>3]+ +h[b>>3];e=e+1|0}}}case 4:if(j){if(!e){if(m)g=i;else g=IK(l)|0;e=0;f:while(1){if((e|0)>=(s|0))break a;a=g+(e<<3)|0;h[a>>3]=0.0;i=e+1|0;j=c[r+(i<<2)>>2]|0;e=c[r+(e<<2)>>2]|0;f=0.0;while(1){if((e|0)>=(j|0)){e=i;continue f}t=f+ +(c[q+(e<<2)>>2]|0)*+h[b+(c[p+(e<<2)>>2]<<3)>>3];h[a>>3]=t;e=e+1|0;f=t}}}if(m)g=i;else g=IK(k)|0;e=0;while(1){if((e|0)>=(o|0)){e=0;break}h[g+(e<<3)>>3]=0.0;e=e+1|0}g:while(1){if((e|0)>=(s|0))break a;a=e+1|0;i=c[r+(a<<2)>>2]|0;j=b+(e<<3)|0;e=c[r+(e<<2)>>2]|0;while(1){if((e|0)>=(i|0)){e=a;continue g}o=g+(c[p+(e<<2)>>2]<<3)|0;h[o>>3]=+(c[q+(e<<2)>>2]|0)*+h[j>>3]+ +h[o>>3];e=e+1|0}}}else{if(!e){if(m)g=i;else g=IK(l)|0;e=0;h:while(1){if((e|0)>=(s|0))break a;a=g+(e<<3)|0;h[a>>3]=0.0;i=e+1|0;j=c[r+(i<<2)>>2]|0;e=c[r+(e<<2)>>2]|0;f=0.0;while(1){if((e|0)>=(j|0)){e=i;continue h}t=f+ +(c[q+(e<<2)>>2]|0);h[a>>3]=t;e=e+1|0;f=t}}}if(!m)i=IK(k)|0;e=0;while(1){if((e|0)>=(o|0)){e=0;break}h[i+(e<<3)>>3]=0.0;e=e+1|0}i:while(1){if((e|0)>=(s|0)){g=i;break a}g=e+1|0;a=c[r+(g<<2)>>2]|0;e=c[r+(e<<2)>>2]|0;while(1){if((e|0)>=(a|0)){e=g;continue i}b=i+(c[p+(e<<2)>>2]<<3)|0;h[b>>3]=+(c[q+(e<<2)>>2]|0)+ +h[b>>3];e=e+1|0}}}default:Aa(138697,95244,1315,95693)}while(0);c[d>>2]=g;return}function Hw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=S(b<<3,c)|0;f=IK(d)|0;B6(f|0,a|0,d|0)|0;d=0;while(1){if((d|0)>=(b|0))break;g=S(d,c)|0;e=0;while(1){if((e|0)>=(c|0))break;h[a+((S(e,b)|0)+d<<3)>>3]=+h[f+(e+g<<3)>>3];e=e+1|0}d=d+1|0}l6(f);return}function Iw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;z=c[a+20>>2]|0;A=c[a+24>>2]|0;B=c[b+20>>2]|0;C=c[b+24>>2]|0;y=c[a+32>>2]|0;if(!((y|0)==1?(y|0)==(c[b+32>>2]|0):0))Aa(95306,95244,1408,95813);y=c[a>>2]|0;if(((c[a+4>>2]|0)==(c[b>>2]|0)?(n=c[a+16>>2]|0,(n|0)==(c[b+16>>2]|0)):0)?(m=b+4|0,D=IK(c[m>>2]<<2)|0,(D|0)!=0):0){d=0;while(1){if((d|0)>=(c[m>>2]|0)){e=0;d=0;break}c[D+(d<<2)>>2]=-1;d=d+1|0}a:while(1){if((d|0)>=(y|0))break;j=d+1|0;k=z+(j<<2)|0;l=-2-d|0;i=c[z+(d<<2)>>2]|0;while(1){if((i|0)>=(c[k>>2]|0)){d=j;continue a}f=c[A+(i<<2)>>2]|0;g=B+(f+1<<2)|0;f=c[B+(f<<2)>>2]|0;while(1){if((f|0)>=(c[g>>2]|0))break;d=D+(c[C+(f<<2)>>2]<<2)|0;if((c[d>>2]|0)!=(l|0)){c[d>>2]=l;e=e+1|0}f=f+1|0}i=i+1|0}}d=ow(y,c[m>>2]|0,e,n,1)|0;b:do if(!d)d=0;else{v=c[d+20>>2]|0;w=c[d+24>>2]|0;f=b+28|0;g=d+28|0;e=a+28|0;c:do switch(n|0){case 1:{s=c[e>>2]|0;r=c[f>>2]|0;n=c[g>>2]|0;c[v>>2]=0;e=0;f=0;d:while(1){if((e|0)>=(y|0)){x=f;break c}o=e+1|0;p=z+(o<<2)|0;q=v+(e<<2)|0;a=c[z+(e<<2)>>2]|0;while(1){if((a|0)>=(c[p>>2]|0))break;l=c[A+(a<<2)>>2]|0;m=B+(l+1<<2)|0;b=s+(a<<3)|0;l=c[B+(l<<2)>>2]|0;while(1){if((l|0)>=(c[m>>2]|0))break;e=C+(l<<2)|0;g=c[e>>2]|0;i=D+(g<<2)|0;j=c[i>>2]|0;k=r+(l<<3)|0;if((j|0)<(c[q>>2]|0)){c[i>>2]=f;c[w+(f<<2)>>2]=c[e>>2];h[n+(f<<3)>>3]=+h[b>>3]*+h[k>>3];f=f+1|0}else{if((c[w+(j<<2)>>2]|0)!=(g|0))break d;u=n+(j<<3)|0;h[u>>3]=+h[u>>3]+ +h[b>>3]*+h[k>>3]}l=l+1|0}a=a+1|0}c[v+(o<<2)>>2]=f;e=o}Aa(95835,95244,1468,95813);break}case 2:{u=c[e>>2]|0;t=c[f>>2]|0;p=c[g>>2]|0;c[v>>2]=0;e=0;f=0;e:while(1){if((e|0)>=(y|0)){x=f;break c}q=e+1|0;r=z+(q<<2)|0;s=v+(e<<2)|0;o=c[z+(e<<2)>>2]|0;while(1){if((o|0)>=(c[r>>2]|0))break;m=c[A+(o<<2)>>2]|0;b=B+(m+1<<2)|0;n=o<<1;a=u+(n<<3)|0;n=u+((n|1)<<3)|0;m=c[B+(m<<2)>>2]|0;while(1){if((m|0)>=(c[b>>2]|0))break;e=C+(m<<2)|0;g=c[e>>2]|0;i=D+(g<<2)|0;j=c[i>>2]|0;l=m<<1;k=t+(l<<3)|0;l=t+((l|1)<<3)|0;if((j|0)<(c[s>>2]|0)){c[i>>2]=f;c[w+(f<<2)>>2]=c[e>>2];j=f<<1;h[p+(j<<3)>>3]=+h[a>>3]*+h[k>>3]-+h[n>>3]*+h[l>>3];h[p+((j|1)<<3)>>3]=+h[a>>3]*+h[l>>3]+ +h[n>>3]*+h[k>>3];f=f+1|0}else{if((c[w+(j<<2)>>2]|0)!=(g|0))break e;j=j<<1;i=p+(j<<3)|0;h[i>>3]=+h[i>>3]+(+h[a>>3]*+h[k>>3]-+h[n>>3]*+h[l>>3]);j=p+((j|1)<<3)|0;h[j>>3]=+h[a>>3]*+h[l>>3]+ +h[n>>3]*+h[k>>3]+ +h[j>>3]}m=m+1|0}o=o+1|0}c[v+(q<<2)>>2]=f;e=q}Aa(95835,95244,1497,95813);break}case 4:{s=c[e>>2]|0;r=c[f>>2]|0;n=c[g>>2]|0;c[v>>2]=0;e=0;f=0;f:while(1){if((f|0)>=(y|0)){x=e;break c}o=f+1|0;p=z+(o<<2)|0;q=v+(f<<2)|0;m=c[z+(f<<2)>>2]|0;while(1){if((m|0)>=(c[p>>2]|0))break;l=c[A+(m<<2)>>2]|0;b=B+(l+1<<2)|0;a=s+(m<<2)|0;l=c[B+(l<<2)>>2]|0;while(1){if((l|0)>=(c[b>>2]|0))break;f=C+(l<<2)|0;g=c[f>>2]|0;i=D+(g<<2)|0;j=c[i>>2]|0;k=r+(l<<2)|0;if((j|0)<(c[q>>2]|0)){c[i>>2]=e;c[w+(e<<2)>>2]=c[f>>2];c[n+(e<<2)>>2]=S(c[k>>2]|0,c[a>>2]|0)|0;e=e+1|0}else{if((c[w+(j<<2)>>2]|0)!=(g|0))break f;t=S(c[k>>2]|0,c[a>>2]|0)|0;u=n+(j<<2)|0;c[u>>2]=(c[u>>2]|0)+t}l=l+1|0}m=m+1|0}c[v+(o<<2)>>2]=e;f=o}Aa(95835,95244,1523,95813);break}case 8:{c[v>>2]=0;e=0;f=0;g:while(1){if((f|0)>=(y|0)){x=e;break c}b=f+1|0;a=z+(b<<2)|0;n=v+(f<<2)|0;l=c[z+(f<<2)>>2]|0;while(1){if((l|0)>=(c[a>>2]|0))break;k=c[A+(l<<2)>>2]|0;m=B+(k+1<<2)|0;k=c[B+(k<<2)>>2]|0;while(1){if((k|0)>=(c[m>>2]|0))break;f=C+(k<<2)|0;g=c[f>>2]|0;i=D+(g<<2)|0;j=c[i>>2]|0;if((j|0)>=(c[n>>2]|0)){if((c[w+(j<<2)>>2]|0)!=(g|0))break g}else{c[i>>2]=e;c[w+(e<<2)>>2]=c[f>>2];e=e+1|0}k=k+1|0}l=l+1|0}c[v+(b<<2)>>2]=e;f=b}Aa(95835,95244,1543,95813);break}default:{nw(d);d=0;break b}}while(0);c[d+8>>2]=x}while(0);l6(D)}else d=0;return d|0}function Jw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0.0,M=0.0,N=0.0,O=0.0;H=c[a+20>>2]|0;I=c[a+24>>2]|0;J=c[b+20>>2]|0;D=c[b+24>>2]|0;E=c[d+20>>2]|0;F=c[d+24>>2]|0;G=c[a+32>>2]|0;if(!((G|0)==1?(G|0)==(c[b+32>>2]|0):0))Aa(95306,95244,1574,95860);G=c[a>>2]|0;if(((((c[a+4>>2]|0)==(c[b>>2]|0)?(c[b+4>>2]|0)==(c[d>>2]|0):0)?(q=c[a+16>>2]|0,(q|0)==(c[b+16>>2]|0)):0)?(q|0)==(c[d+16>>2]|0):0)?(p=d+4|0,K=IK(c[p>>2]<<2)|0,(K|0)!=0):0){e=0;while(1){if((e|0)>=(c[p>>2]|0)){f=0;e=0;break}c[K+(e<<2)>>2]=-1;e=e+1|0}a:while(1){if((e|0)>=(G|0))break;m=e+1|0;n=H+(m<<2)|0;o=-2-e|0;l=c[H+(e<<2)>>2]|0;while(1){if((l|0)>=(c[n>>2]|0)){e=m;continue a}j=c[I+(l<<2)>>2]|0;k=J+(j+1<<2)|0;j=c[J+(j<<2)>>2]|0;while(1){if((j|0)>=(c[k>>2]|0))break;g=c[D+(j<<2)>>2]|0;i=E+(g+1<<2)|0;g=c[E+(g<<2)>>2]|0;while(1){if((g|0)>=(c[i>>2]|0))break;e=K+(c[F+(g<<2)>>2]<<2)|0;if((c[e>>2]|0)!=(o|0)){c[e>>2]=o;f=f+1|0}g=g+1|0}j=j+1|0}l=l+1|0}}e=ow(G,c[p>>2]|0,f,q,1)|0;b:do if(!e)e=0;else{A=c[e+20>>2]|0;B=c[e+24>>2]|0;g=b+28|0;f=a+28|0;j=e+28|0;i=d+28|0;c:do switch(q|0){case 1:{w=c[f>>2]|0;v=c[g>>2]|0;u=c[i>>2]|0;r=c[j>>2]|0;c[A>>2]=0;f=0;g=0;d:while(1){if((f|0)>=(G|0)){C=g;break c}s=f+1|0;t=H+(s<<2)|0;q=A+(f<<2)|0;d=c[H+(f<<2)>>2]|0;while(1){if((d|0)>=(c[t>>2]|0))break;p=c[I+(d<<2)>>2]|0;b=J+(p+1<<2)|0;a=w+(d<<3)|0;p=c[J+(p<<2)>>2]|0;while(1){if((p|0)>=(c[b>>2]|0))break;m=c[D+(p<<2)>>2]|0;n=E+(m+1<<2)|0;o=v+(p<<3)|0;m=c[E+(m<<2)>>2]|0;while(1){if((m|0)>=(c[n>>2]|0))break;f=F+(m<<2)|0;i=c[f>>2]|0;j=K+(i<<2)|0;k=c[j>>2]|0;l=u+(m<<3)|0;if((k|0)<(c[q>>2]|0)){c[j>>2]=g;c[B+(g<<2)>>2]=c[f>>2];h[r+(g<<3)>>3]=+h[a>>3]*+h[o>>3]*+h[l>>3];g=g+1|0}else{if((c[B+(k<<2)>>2]|0)!=(i|0))break d;z=r+(k<<3)|0;h[z>>3]=+h[z>>3]+ +h[a>>3]*+h[o>>3]*+h[l>>3]}m=m+1|0}p=p+1|0}d=d+1|0}c[A+(s<<2)>>2]=g;f=s}Aa(95883,95244,1642,95860);break}case 2:{z=c[f>>2]|0;y=c[g>>2]|0;x=c[i>>2]|0;t=c[j>>2]|0;c[A>>2]=0;f=0;g=0;e:while(1){if((g|0)>=(G|0)){C=f;break c}u=g+1|0;v=H+(u<<2)|0;w=A+(g<<2)|0;d=c[H+(g<<2)>>2]|0;while(1){if((d|0)>=(c[v>>2]|0))break;o=c[I+(d<<2)>>2]|0;q=J+(o+1<<2)|0;s=d<<1;r=z+(s<<3)|0;s=z+((s|1)<<3)|0;o=c[J+(o<<2)>>2]|0;while(1){if((o|0)>=(c[q>>2]|0))break;n=c[D+(o<<2)>>2]|0;p=E+(n+1<<2)|0;a=o<<1;b=y+(a<<3)|0;a=y+((a|1)<<3)|0;n=c[E+(n<<2)>>2]|0;while(1){if((n|0)>=(c[p>>2]|0))break;g=F+(n<<2)|0;i=c[g>>2]|0;j=K+(i<<2)|0;k=c[j>>2]|0;m=n<<1;l=x+(m<<3)|0;m=x+((m|1)<<3)|0;if((k|0)<(c[w>>2]|0)){c[j>>2]=f;c[B+(f<<2)>>2]=c[g>>2];M=+h[r>>3];N=+h[b>>3];L=+h[s>>3];O=+h[a>>3];k=f<<1;h[t+(k<<3)>>3]=+h[l>>3]*(M*N-L*O)-(N*L+M*O)*+h[m>>3];O=+h[r>>3];M=+h[a>>3];L=+h[s>>3];N=+h[b>>3];h[t+((k|1)<<3)>>3]=+h[l>>3]*(O*M+L*N)+(O*N-M*L)*+h[m>>3];f=f+1|0}else{if((c[B+(k<<2)>>2]|0)!=(i|0))break e;N=+h[r>>3];M=+h[b>>3];O=+h[s>>3];L=+h[a>>3];k=k<<1;j=t+(k<<3)|0;h[j>>3]=+h[j>>3]+(+h[l>>3]*(N*M-O*L)-(M*O+N*L)*+h[m>>3]);L=+h[r>>3];N=+h[a>>3];O=+h[s>>3];M=+h[b>>3];k=t+((k|1)<<3)|0;h[k>>3]=+h[l>>3]*(L*N+O*M)+(L*M-N*O)*+h[m>>3]+ +h[k>>3]}n=n+1|0}o=o+1|0}d=d+1|0}c[A+(u<<2)>>2]=f;g=u}Aa(95883,95244,1674,95860);break}case 4:{w=c[f>>2]|0;v=c[g>>2]|0;u=c[i>>2]|0;q=c[j>>2]|0;c[A>>2]=0;f=0;g=0;f:while(1){if((g|0)>=(G|0)){C=f;break c}r=g+1|0;s=H+(r<<2)|0;t=A+(g<<2)|0;b=c[H+(g<<2)>>2]|0;while(1){if((b|0)>=(c[s>>2]|0))break;n=c[I+(b<<2)>>2]|0;a=J+(n+1<<2)|0;d=w+(b<<2)|0;n=c[J+(n<<2)>>2]|0;while(1){if((n|0)>=(c[a>>2]|0))break;m=c[D+(n<<2)>>2]|0;o=E+(m+1<<2)|0;p=v+(n<<2)|0;m=c[E+(m<<2)>>2]|0;while(1){if((m|0)>=(c[o>>2]|0))break;g=F+(m<<2)|0;i=c[g>>2]|0;j=K+(i<<2)|0;k=c[j>>2]|0;l=u+(m<<2)|0;if((k|0)<(c[t>>2]|0)){c[j>>2]=f;c[B+(f<<2)>>2]=c[g>>2];y=S(c[p>>2]|0,c[d>>2]|0)|0;y=S(y,c[l>>2]|0)|0;z=q+(f<<2)|0;c[z>>2]=(c[z>>2]|0)+y;f=f+1|0}else{if((c[B+(k<<2)>>2]|0)!=(i|0))break f;y=S(c[p>>2]|0,c[d>>2]|0)|0;y=S(y,c[l>>2]|0)|0;z=q+(k<<2)|0;c[z>>2]=(c[z>>2]|0)+y}m=m+1|0}n=n+1|0}b=b+1|0}c[A+(r<<2)>>2]=f;g=r}Aa(95883,95244,1706,95860);break}case 8:{c[A>>2]=0;f=0;g=0;g:while(1){if((g|0)>=(G|0)){C=f;break c}b=g+1|0;a=H+(b<<2)|0;d=A+(g<<2)|0;o=c[H+(g<<2)>>2]|0;while(1){if((o|0)>=(c[a>>2]|0))break;m=c[I+(o<<2)>>2]|0;p=J+(m+1<<2)|0;m=c[J+(m<<2)>>2]|0;while(1){if((m|0)>=(c[p>>2]|0))break;l=c[D+(m<<2)>>2]|0;n=E+(l+1<<2)|0;l=c[E+(l<<2)>>2]|0;while(1){if((l|0)>=(c[n>>2]|0))break;g=F+(l<<2)|0;i=c[g>>2]|0;j=K+(i<<2)|0;k=c[j>>2]|0;if((k|0)>=(c[d>>2]|0)){if((c[B+(k<<2)>>2]|0)!=(i|0))break g}else{c[j>>2]=f;c[B+(f<<2)>>2]=c[g>>2];f=f+1|0}l=l+1|0}m=m+1|0}o=o+1|0}c[A+(b<<2)>>2]=f;g=b}Aa(95883,95244,1729,95860);break}default:{nw(e);e=0;break b}}while(0);c[e+8>>2]=C}while(0);l6(K)}else e=0;return e|0}function Kw(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;if((c[a+32>>2]|0)!=2)Aa(95401,95244,1971,95908);if((b|0)>=1){h=c[a+8>>2]|0;g=h+b|0;if((g|0)>=(c[a+12>>2]|0))Lw(a,g+10|0)|0;i=h<<2;g=b<<2;B6((c[a+20>>2]|0)+i|0,d|0,g|0)|0;B6((c[a+24>>2]|0)+i|0,e|0,g|0)|0;g=c[a+40>>2]|0;if(g|0){i=S(g,b)|0;h=S(g,h)|0;B6((c[a+28>>2]|0)+h|0,f|0,i|0)|0}f=a+4|0;h=0;while(1){if((h|0)>=(b|0))break;g=c[d+(h<<2)>>2]|0;if((g|0)>=(c[a>>2]|0))c[a>>2]=g+1;g=c[e+(h<<2)>>2]|0;if((g|0)>=(c[f>>2]|0))c[f>>2]=g+1;h=h+1|0}i=a+8|0;c[i>>2]=(c[i>>2]|0)+b}return a|0}function Lw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=b<<2;f=a+28|0;if((c[a+32>>2]|0)==2){e=a+20|0;c[e>>2]=KK(c[e>>2]|0,d)|0;e=a+24|0;c[e>>2]=KK(c[e>>2]|0,d)|0;d=c[a+40>>2]|0;if((d|0)>0){e=c[f>>2]|0;d=S(d,b)|0;if(!e)d=IK(d)|0;else d=KK(e,d)|0;c[f>>2]=d}}else{e=a+24|0;c[e>>2]=KK(c[e>>2]|0,d)|0;d=c[a+40>>2]|0;if((d|0)>0){e=c[f>>2]|0;d=S(d,b)|0;if(!e)d=IK(d)|0;else d=KK(e,d)|0;c[f>>2]=d}}c[a+12>>2]=b;return a|0}function Mw(a){a=a|0;var b=0,d=0.0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;a:do if(!a)a=0;else{l=c[a+20>>2]|0;k=c[a+24>>2]|0;b=a+28|0;b:do switch(c[a+16>>2]|0){case 1:{i=c[b>>2]|0;e=c[a>>2]|0;b=0;c:while(1){if((b|0)>=(e|0))break b;f=b+1|0;g=c[l+(f<<2)>>2]|0;b=c[l+(b<<2)>>2]|0;d=+(g-b|0);while(1){if((b|0)>=(g|0)){b=f;continue c}k=i+(b<<3)|0;h[k>>3]=+h[k>>3]/d;b=b+1|0}}}case 2:{f=c[b>>2]|0;g=c[a>>2]|0;b=0;d:while(1){if((b|0)>=(g|0))break b;i=b+1|0;j=c[l+(i<<2)>>2]|0;e=c[l+(b<<2)>>2]|0;d=+(j-e|0);while(1){if((e|0)>=(j|0)){b=i;continue d}if((c[k+(e<<2)>>2]|0)!=(b|0)){m=e<<1;n=f+(m<<3)|0;h[n>>3]=+h[n>>3]/d;m=f+((m|1)<<3)|0;h[m>>3]=+h[m>>3]/d}e=e+1|0}}}case 4:{Aa(138697,95244,2192,95949);break}case 8:break;default:{a=0;break a}}while(0)}while(0);return a|0}function Nw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;if((a|0)!=0?(b=a+8|0,d=c[b>>2]|0,e=c[a+4>>2]|0,(e|0)==(c[a>>2]|0)):0){g=c[a+24>>2]|0;a=c[a+20>>2]|0;f=ow(e,e,d,8,1)|0;B6(c[f+20>>2]|0,a|0,(e<<2)+4|0)|0;B6(c[f+24>>2]|0,g|0,d<<2|0)|0;c[f+8>>2]=c[b>>2];a=sw(f,1)|0;nw(f);a=yw(a)|0;e=a+8|0;d=IK(c[e>>2]<<3)|0;c[a+28>>2]=d;e=c[e>>2]|0;b=0;while(1){if((b|0)>=(e|0))break;h[d+(b<<3)>>3]=1.0;b=b+1|0}c[a+16>>2]=1;c[a+40>>2]=8}else a=0;return a|0}function Ow(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;q=c[a+20>>2]|0;r=c[a+24>>2]|0;w=c[a+4>>2]|0;o=c[a>>2]|0;s=w<<2;t=IK(s)|0;u=IK(s+4|0)|0;v=IK(s)|0;s=IK(s)|0;p=u+4|0;a=0;while(1){if((a|0)>=(w|0))break;c[t+(a<<2)>>2]=0;a=a+1|0}c[p>>2]=w;a=0;while(1){if((a|0)>=(w|0)){h=1;l=0;break}c[v+(a<<2)>>2]=-1;a=a+1|0}a:while(1){if((l|0)>=(o|0))break;g=q+(l<<2)|0;m=l+1|0;n=q+(m<<2)|0;a=c[g>>2]|0;while(1){f=c[n>>2]|0;if((a|0)>=(f|0))break;k=p+(c[t+(c[r+(a<<2)>>2]<<2)>>2]<<2)|0;c[k>>2]=(c[k>>2]|0)+-1;a=a+1|0}a=h;k=c[g>>2]|0;while(1){if((k|0)>=(f|0)){h=a;l=m;continue a}j=r+(k<<2)|0;g=t+(c[j>>2]<<2)|0;i=c[g>>2]|0;h=v+(i<<2)|0;f=s+(i<<2)|0;if((c[h>>2]|0)<(l|0)){c[h>>2]=l;g=p+(i<<2)|0;if(!(c[g>>2]|0)){c[g>>2]=1;g=a;a=i}else{c[f>>2]=a;c[p+(a<<2)>>2]=1;g=a+1|0;f=t+(c[j>>2]<<2)|0}c[f>>2]=a;a=g}else{c[g>>2]=c[f>>2];j=p+(c[f>>2]<<2)|0;c[j>>2]=(c[j>>2]|0)+1}k=k+1|0;f=c[n>>2]|0}}c[u>>2]=0;a=0;f=0;while(1){if((a|0)>=(h|0))break;q=a+1|0;p=u+(q<<2)|0;r=(c[p>>2]|0)+f|0;c[p>>2]=r;a=q;f=r}c[d>>2]=s;a=0;while(1){if((a|0)>=(w|0)){a=h;break}r=u+(c[t+(a<<2)>>2]<<2)|0;d=c[r>>2]|0;c[r>>2]=d+1;c[s+(d<<2)>>2]=a;a=a+1|0}while(1){if((a|0)<=0)break;w=a+-1|0;c[u+(a<<2)>>2]=c[u+(w<<2)>>2];a=w}c[u>>2]=0;c[e>>2]=u;c[b>>2]=h;l6(v);l6(t);return}function Pw(){return +(+(U4()|0)/2147483647.0)}function Qw(a){a=a|0;if((a|0)>1)return (U4()|0)%(a|0)|0|0;else Aa(95983,95989,58,95999);return 0}function Rw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;a:do if((a|0)<1)b=0;else{b=IK(a<<2)|0;d=0;while(1){if((d|0)==(a|0))break;c[b+(d<<2)>>2]=d;d=d+1|0}while(1){if((a|0)<=1)break a;e=Qw(a)|0;d=a+-1|0;g=b+(d<<2)|0;f=c[g>>2]|0;e=b+(e<<2)|0;c[g>>2]=c[e>>2];c[e>>2]=f;a=d}}while(0);return b|0}function Sw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=0;while(1){if((d|0)>=(a|0))break;e=c+(d<<3)|0;h[e>>3]=+h[b+(d<<3)>>3]-+h[e>>3];d=d+1|0}return c|0}function Tw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0.0,f=0.0;d=0;e=0.0;while(1){if((d|0)>=(a|0))break;f=e+ +h[b+(d<<3)>>3]*+h[c+(d<<3)>>3];d=d+1|0;e=f}return +e}function Uw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;var e=0,f=0;e=0;while(1){if((e|0)>=(a|0))break;f=c+(e<<3)|0;h[f>>3]=+h[b+(e<<3)>>3]+ +h[f>>3]*d;e=e+1|0}return c|0}function Vw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;var e=0,f=0;e=0;while(1){if((e|0)>=(a|0))break;f=b+(e<<3)|0;h[f>>3]=+h[f>>3]+ +h[c+(e<<3)>>3]*d;e=e+1|0}return b|0}function Ww(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0,g=0.0;f=S(c,b)|0;d=S(d,b)|0;e=0.0;c=0;while(1){if((c|0)>=(b|0))break;g=+h[a+(c+f<<3)>>3]-+h[a+(c+d<<3)>>3];e=e+g*g;c=c+1|0}g=+G(+e);return +(g>1.0e-15?g:1.0e-15)}function Xw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0,g=0.0;f=S(c,b)|0;d=S(d,b)|0;e=0.0;c=0;while(1){if((c|0)>=(b|0))break;g=+h[a+(c+f<<3)>>3]-+h[a+(c+d<<3)>>3];e=e+g*g;c=c+1|0}return +(+G(+e))}function Yw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,f=0.0;d=0.0;e=0;while(1){if((e|0)>=(c|0))break;f=+h[a+(e<<3)>>3]-+h[b+(e<<3)>>3];d=d+f*f;e=e+1|0}return +(+G(+d))}function Zw(a,b,c,d,e,f,g){a=+a;b=+b;c=+c;d=+d;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0.0;p=l;l=l+80|0;n=p+48|0;m=p+24|0;o=p;i=0;while(1){if((i|0)>=(f|0)){j=0;break}q=+h[g+(i<<3)>>3];h[n+(i<<3)>>3]=q;h[m+(i<<3)>>3]=q;i=i+1|0}while(1){if((j|0)>=(e|0))break;k=S(j,f)|0;i=0;while(1){if((i|0)>=(f|0))break;s=+h[g+(i+k<<3)>>3];r=n+(i<<3)|0;q=+h[r>>3];h[r>>3]=s<q?s:q;r=m+(i<<3)|0;q=+h[r>>3];h[r>>3]=s>q?s:q;i=i+1|0}j=j+1|0}q=+h[m>>3]-+h[n>>3];c=q!=0.0?(c-a)/q:1.0;q=+h[m+8>>3]-+h[n+8>>3];s=(d-b)/q;c=q!=0.0?(c<s?c:s):c;h[o>>3]=a;h[o+8>>3]=b;h[o+16>>3]=0.0;j=0;while(1){if((j|0)>=(e|0))break;k=S(j,f)|0;i=0;while(1){if((i|0)>=(f|0))break;r=g+(i+k<<3)|0;h[r>>3]=+h[o+(i<<3)>>3]+c*(+h[r>>3]-+h[n+(i<<3)>>3]);i=i+1|0}j=j+1|0}l=p;return}function _w(a,b){a=a|0;b=b|0;if((qB(a)|0)==1){a=c[(c[(gC(a)|0)+16>>2]|0)+132>>2]|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0}else{$w(a);if(!((bP(NA(b,96005)|0)|0)<<24>>24))b=Jy(a,186376)|0;else b=ax(a)|0;Sy(a,b,186376);bx(b)}return}function $w(a){a=a|0;var b=0;b=uC(c[c[(c[(gC(a)|0)+16>>2]|0)+112>>2]>>2]|0)|0;a=c[46967]|0;if((b|0)!=(a|0)){c[46597]=0;c[46967]=b;c[46968]=DA(b,0,96014,0)|0;c[46969]=DA(c[46967]|0,1,96022,0)|0;c[46970]=DA(c[46967]|0,1,96039,0)|0;a=c[46967]|0}c[46971]=NA(a,96039)|0;Dy(186376);c[46596]=1;h[23301]=+YO(c[46967]|0,c[46968]|0,1.0,0.0);c[46598]=c[46969];c[46599]=c[46970];c[46600]=c[46971];return}function ax(a){a=a|0;var b=0,d=0,e=0,f=0;f=l;l=l+144|0;e=f;d=f+8|0;b=c[46597]|0;c[46597]=b+1;c[e>>2]=b;i2(d,96535,e)|0;d=Ey(LD(a,d,1)|0)|0;e=d+8|0;b=gC(a)|0;while(1){if(!b)break;lC(c[e>>2]|0,b,1)|0;c[(c[(c[b+16>>2]|0)+112>>2]|0)+12>>2]=d;b=hC(a,b)|0}l=f;return d|0}function bx(a){a=a|0;Ry(a);return}function cx(a,b){a=a|0;b=b|0;var d=0;d=IK(32)|0;c[d>>2]=4;h[d+8>>3]=.75;c[d+16>>2]=1073741824;c[d+20>>2]=1;c[d+24>>2]=a;c[d+28>>2]=b;return d|0}function dx(a){a=a|0;l6(a);return}function ex(a){a=a|0;var b=0,d=0;if(!a)return;d=c[a+8>>2]|0;do if(d|0){if(c[a>>2]|0){nw(d);b=c[a+12>>2]|0;if(!b)break;nw(b);break}if(c[a+36>>2]|0?(nw(d),b=c[a+12>>2]|0,b|0):0)nw(b)}while(0);nw(c[a+16>>2]|0);nw(c[a+20>>2]|0);b=c[a+24>>2]|0;if(b|0?(c[a>>2]|0)>0:0)l6(b);ex(c[a+28>>2]|0);l6(a);return}function fx(a,b,d,e,f,g,i,j,k,m){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0;v=l;l=l+32|0;n=v+16|0;o=v+12|0;p=v+8|0;q=v+4|0;r=v;c[n>>2]=a;c[o>>2]=0;c[p>>2]=0;c[q>>2]=0;c[r>>2]=0;c[i>>2]=0;c[j>>2]=0;c[b>>2]=0;c[g>>2]=0;c[e>>2]=0;s=k+28|0;t=k+8|0;u=+(c[a+4>>2]|0);f=d;do{gx(a,n,f,o,0,r,p,q,k,m);f=c[n>>2]|0;if(!f)break;d=c[f+4>>2]|0;f=c[i>>2]|0;a=c[p>>2]|0;if(!f){c[i>>2]=a;c[j>>2]=c[q>>2]}else{a=Iw(f,a)|0;nw(c[i>>2]|0);nw(c[p>>2]|0);c[i>>2]=a;a=Iw(c[q>>2]|0,c[j>>2]|0)|0;nw(c[j>>2]|0);nw(c[q>>2]|0);c[j>>2]=a}f=c[b>>2]|0;if(f|0)nw(f);c[b>>2]=c[n>>2];f=c[e>>2]|0;if(f|0)nw(f);f=c[o>>2]|0;c[e>>2]=f;a=c[g>>2]|0;if(a){l6(a);f=c[o>>2]|0}c[g>>2]=c[r>>2];a=c[n>>2]|0;c[r>>2]=0;if(!(+(d|0)>u*+h[t>>3]))break}while((c[s>>2]|0)==1);l=v;return}function gx(a,b,d,e,f,g,i,j,k,m){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;I=l;l=l+32|0;E=I+28|0;p=I+24|0;C=I+20|0;F=I+16|0;s=I+12|0;G=I+8|0;H=I+4|0;n=I;c[E>>2]=0;c[p>>2]=0;c[F>>2]=0;c[G>>2]=0;c[H>>2]=0;c[b>>2]=0;c[e>>2]=0;c[i>>2]=0;c[j>>2]=0;D=c[a>>2]|0;o=k+24|0;c[m>>2]=c[o>>2];q=c[o>>2]|0;v=k+8|0;t=D<<2;x=k+28|0;r=k+20|0;w=+(D|0);a:do switch(q|0){case 12:{c[o>>2]=3;c[m>>2]=3;gx(a,b,d,e,f,g,i,j,k,m);if((((c[b>>2]|0)==0?(c[o>>2]=4,c[m>>2]=4,gx(a,b,d,e,f,g,i,j,k,m),(c[b>>2]|0)==0):0)?(c[o>>2]=6,c[m>>2]=6,gx(a,b,d,e,f,g,i,j,k,m),(c[b>>2]|0)==0):0)?(c[o>>2]=9,c[m>>2]=9,gx(a,b,d,e,f,g,i,j,k,m),(c[b>>2]|0)==0):0){c[o>>2]=2;c[m>>2]=2;gx(a,b,d,e,f,g,i,j,k,m)}c[o>>2]=12;p=0;q=0;r=0;o=0;n=0;m=0;break}case 3:case 6:case 4:{d=c[r>>2]|0;switch(q|0){case 3:{hx(a,d,G,H,n);break}case 4:{ix(a,d,G,H,n);break}default:jx(a,G,H,n)}u=c[n>>2]|0;if(!(c[x>>2]|0)){if((u|0)==(D|0)?1:+(u|0)>w*+h[v>>3]){p=0;q=0;r=0;o=0;n=0;m=0;break a}}else if((u|0)==(D|0)){p=0;q=0;r=0;o=0;n=0;m=0;break a}if((u|0)>=(c[k>>2]|0)){s=IK(t)|0;t=IK(t)|0;v=IK(D<<3)|0;c[C>>2]=0;o=c[H>>2]|0;p=c[G>>2]|0;n=0;d=0;b:while(1){if((n|0)>=(u|0))break;q=n+1|0;r=o+(q<<2)|0;m=c[o+(n<<2)>>2]|0;while(1){if((m|0)>=(c[r>>2]|0)){n=q;continue b}c[s+(d<<2)>>2]=c[p+(m<<2)>>2];c[t+(c[C>>2]<<2)>>2]=n;z=c[C>>2]|0;A=z+1|0;c[C>>2]=A;h[v+(z<<3)>>3]=1.0;m=m+1|0;d=A}}D=Aw(d,D,u,s,t,v,1,8)|0;c[i>>2]=D;c[j>>2]=mw(D)|0;c[e>>2]=0;i=Jw(c[j>>2]|0,a,c[i>>2]|0)|0;c[b>>2]=i;if(!i){p=v;q=t;r=s;o=s;n=t;m=v}else{Gw(c[j>>2]|0,f,g,0);c[j>>2]=Mw(c[j>>2]|0)|0;p=c[b>>2]|0;q=p+36|0;c[q>>2]=c[q>>2]|3;c[b>>2]=yw(p)|0;p=v;q=t;r=s;o=s;n=t;m=v}}else{p=0;q=0;r=0;o=0;n=0;m=0}break}case 1:{kx(a,c[r>>2]|0,E,p);d=c[o>>2]|0;if((d|0)==2)B=24;else B=25;break}case 2:{B=24;break}case 5:{B=26;break}case 10:case 9:{d=c[r>>2]|0;if((q|0)==9)nx(a,d,F,s,C);else ox(a,d,F,s,C);z=c[a+20>>2]|0;A=c[a+24>>2]|0;y=c[s>>2]|0;if(!(c[x>>2]|0)){if((y|0)==(D|0)?1:+(y|0)>w*+h[v>>3]){p=0;q=0;r=0;o=0;n=0;m=0;break a}}else if((y|0)==(D|0)){p=0;q=0;r=0;o=0;n=0;m=0;break a}if((y|0)>=(c[k>>2]|0)){x=c[C>>2]|0;v=x<<2;u=IK(v)|0;v=IK(v)|0;x=IK(x<<3)|0;c[C>>2]=0;s=c[F>>2]|0;r=0;o=0;c:while(1){if((r|0)>=(D|0))break;d=s+(r<<2)|0;t=r+1|0;if((c[d>>2]|0)!=-1){c[u+(o<<2)>>2]=r;c[v+(c[C>>2]<<2)>>2]=c[d>>2];q=c[C>>2]|0;k=q+1|0;c[C>>2]=k;h[x+(q<<3)>>3]=1.0;r=t;o=k;continue}n=c[z+(r<<2)>>2]|0;q=z+(t<<2)|0;p=c[q>>2]|0;d=0;m=n;while(1){if((m|0)>=(p|0))break;d=((c[s+(c[A+(m<<2)>>2]<<2)>>2]|0)>>>31^1)+d|0;m=m+1|0}w=1.0/+(d|0);d=p;while(1){if((n|0)>=(d|0)){r=t;continue c}m=A+(n<<2)|0;if((c[s+(c[m>>2]<<2)>>2]|0)>-1){c[u+(o<<2)>>2]=r;c[v+(c[C>>2]<<2)>>2]=c[s+(c[m>>2]<<2)>>2];d=c[C>>2]|0;m=d+1|0;c[C>>2]=m;h[x+(d<<3)>>3]=w;d=c[q>>2]|0}else m=o;n=n+1|0;o=m}}D=Aw(o,D,y,u,v,x,1,8)|0;c[i>>2]=D;D=mw(D)|0;c[j>>2]=D;i=Jw(D,a,c[i>>2]|0)|0;c[b>>2]=i;if(!i){p=x;q=v;r=u;o=u;n=v;m=x}else{Gw(c[j>>2]|0,f,g,0);p=c[b>>2]|0;q=p+36|0;c[q>>2]=c[q>>2]|3;c[b>>2]=yw(p)|0;c[e>>2]=0;p=x;q=v;r=u;o=u;n=v;m=x}}else{p=0;q=0;r=0;o=0;n=0;m=0}break}default:{p=0;q=0;r=0;o=0;n=0;m=0}}while(0);if((B|0)==24){lx(a,c[r>>2]|0,E,p);d=c[o>>2]|0;B=25}if((B|0)==25)if((d|0)==5)B=26;else B=27;if((B|0)==26){mx(a,c[r>>2]|0,E,p);B=27}do if((B|0)==27){d=c[p>>2]|0;if(!(c[x>>2]|0)){if((d|0)==(D|0)?1:+(d|0)>w*+h[v>>3]){p=0;q=0;r=0;o=0;n=0;m=0;break}}else if((d|0)==(D|0)){p=0;q=0;r=0;o=0;n=0;m=0;break}if((d|0)>=(c[k>>2]|0)){s=IK(t)|0;t=IK(t)|0;u=IK(D<<3)|0;c[C>>2]=0;q=c[E>>2]|0;d=0;p=0;while(1){if((p|0)>=(D|0))break;m=q+(p<<2)|0;n=c[m>>2]|0;if((n|0)>-1){c[s+(c[C>>2]<<2)>>2]=p;c[t+(c[C>>2]<<2)>>2]=d;B=c[C>>2]|0;o=B+1|0;c[C>>2]=o;h[u+(B<<3)>>3]=1.0;if((n|0)!=(p|0)){c[s+(o<<2)>>2]=c[m>>2];c[t+(c[C>>2]<<2)>>2]=d;B=c[C>>2]|0;c[C>>2]=B+1;h[u+(B<<3)>>3]=1.0;c[q+(c[m>>2]<<2)>>2]=-1}c[m>>2]=-1;d=d+1|0}p=p+1|0}D=Aw(c[C>>2]|0,D,d,s,t,u,1,8)|0;c[i>>2]=D;D=mw(D)|0;c[j>>2]=D;i=Jw(D,a,c[i>>2]|0)|0;c[b>>2]=i;if(!i){p=u;q=t;r=s;o=s;n=t;m=u}else{Gw(c[j>>2]|0,f,g,0);c[j>>2]=Mw(c[j>>2]|0)|0;p=c[b>>2]|0;q=p+36|0;c[q>>2]=c[q>>2]|3;c[b>>2]=yw(p)|0;c[e>>2]=0;p=u;q=t;r=s;o=s;n=t;m=u}}else{p=0;q=0;r=0;o=0;n=0;m=0}}while(0);d=c[E>>2]|0;if(d|0)l6(d);d=c[F>>2]|0;if(d|0)l6(d);if(r|0)l6(o);if(q|0)l6(n);if(p|0)l6(m);d=c[G>>2]|0;if(d|0)l6(d);d=c[H>>2]|0;if(d|0)l6(d);l=I;return}function hx(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;t=c[a+20>>2]|0;u=c[a+24>>2]|0;w=c[a>>2]|0;v=w<<2;c[d>>2]=IK(v)|0;c[e>>2]=IK(v+4|0)|0;v=IK(v)|0;g=0;while(1){if((g|0)>=(w|0))break;c[v+(g<<2)>>2]=g;g=g+1|0}c[f>>2]=0;r=c[e>>2]|0;c[r>>2]=0;s=c[a+28>>2]|0;a:do if(!b){g=0;a=0;b:while(1){while(1){if((a|0)>=(w|0)){b=0;j=0.0;a=0;break b}b=a;a=a+1|0;if((c[v+(b<<2)>>2]|0)==-1)continue;b=c[t+(b<<2)>>2]|0;if(((c[t+(a<<2)>>2]|0)-b|0)==1)break}l=c[u+(b<<2)>>2]|0;c[v+(l<<2)>>2]=-1;m=c[d>>2]|0;c[m+(g<<2)>>2]=l;n=t+(l+1<<2)|0;k=c[t+(l<<2)>>2]|0;g=g+1|0;while(1){if((k|0)>=(c[n>>2]|0))break;b=u+(k<<2)|0;i=c[b>>2]|0;if((l|0)!=(i|0)?((c[t+(i+1<<2)>>2]|0)-(c[t+(i<<2)>>2]|0)|0)==1:0){c[v+(i<<2)>>2]=-1;c[m+(g<<2)>>2]=c[b>>2];g=g+1|0}k=k+1|0}i=c[f>>2]|0;b=c[r+(i<<2)>>2]|0;i=i+1|0;c[f>>2]=i;i=r+(i<<2)|0;if((g-b|0)<5){c[i>>2]=g;continue}e=b+1|0;c[i>>2]=e;b=e;i=e;while(1){if(!((i|0)<(g|0)&(b|0)<(g|0)))continue b;e=i+3|0;e=(g|0)<(e|0)?g:e;q=(c[f>>2]|0)+1|0;c[f>>2]=q;c[r+(q<<2)>>2]=e;b=b+1|0;i=e}}c:while(1){while(1){while(1){if((a|0)>=(w|0)){a=0;break c}n=v+(a<<2)|0;q=a+1|0;if((c[n>>2]|0)==-1)a=q;else break}p=c[t+(q<<2)>>2]|0;l=1;m=c[t+(a<<2)>>2]|0;while(1){i=(l|0)!=0;if((m|0)>=(p|0))break;k=c[u+(m<<2)>>2]|0;if((a|0)!=(k|0)?(c[v+(k<<2)>>2]|0)!=-1:0){o=+h[s+(m<<3)>>3];if(!i?!(o>j):0)i=0;else{i=0;b=k;j=o}}else i=l;l=i;m=m+1|0}if(i)a=q;else break}c[v+(b<<2)>>2]=-1;c[n>>2]=-1;p=c[d>>2]|0;c[p+(g<<2)>>2]=a;e=g+2|0;c[p+(g+1<<2)>>2]=b;a=(c[f>>2]|0)+1|0;c[f>>2]=a;c[r+(a<<2)>>2]=e;a=q;g=e}while(1){if((a|0)>=(w|0))break a;if((c[v+(a<<2)>>2]|0)==(a|0)){u=g+1|0;c[(c[d>>2]|0)+(g<<2)>>2]=a;g=(c[f>>2]|0)+1|0;c[f>>2]=g;c[r+(g<<2)>>2]=u;g=u}a=a+1|0}}else{r=Rw(w)|0;n=0;g=0;while(1){if((n|0)>=(w|0)){q=0;a=0;j=0.0;break}a=c[r+(n<<2)>>2]|0;d:do if((c[v+(a<<2)>>2]|0)!=-1?(p=c[t+(a<<2)>>2]|0,((c[t+(a+1<<2)>>2]|0)-p|0)==1):0){k=c[u+(p<<2)>>2]|0;c[v+(k<<2)>>2]=-1;l=c[d>>2]|0;c[l+(g<<2)>>2]=k;m=t+(k+1<<2)|0;i=c[t+(k<<2)>>2]|0;g=g+1|0;while(1){if((i|0)>=(c[m>>2]|0))break;a=u+(i<<2)|0;b=c[a>>2]|0;if((k|0)!=(b|0)?((c[t+(b+1<<2)>>2]|0)-(c[t+(b<<2)>>2]|0)|0)==1:0){c[v+(b<<2)>>2]=-1;c[l+(g<<2)>>2]=c[a>>2];g=g+1|0}i=i+1|0}i=c[e>>2]|0;q=c[f>>2]|0;a=c[i+(q<<2)>>2]|0;q=q+1|0;b=i+(q<<2)|0;c[f>>2]=q;if((g-a|0)<5){c[b>>2]=g;break}q=a+1|0;c[b>>2]=q;a=q;b=q;while(1){if(!((b|0)<(g|0)&(a|0)<(g|0)))break d;q=b+3|0;q=(g|0)<(q|0)?g:q;m=(c[f>>2]|0)+1|0;c[f>>2]=m;c[i+(m<<2)>>2]=q;a=a+1|0;b=q}}while(0);n=n+1|0}while(1){if((q|0)>=(w|0)){a=0;break}m=c[r+(q<<2)>>2]|0;n=v+(m<<2)|0;if((c[n>>2]|0)!=-1){p=c[t+(m+1<<2)>>2]|0;k=1;l=c[t+(m<<2)>>2]|0;while(1){b=(k|0)!=0;if((l|0)>=(p|0))break;i=c[u+(l<<2)>>2]|0;if((m|0)!=(i|0)?(c[v+(i<<2)>>2]|0)!=-1:0){o=+h[s+(l<<3)>>3];if(!b?!(o>j):0)b=0;else{b=0;a=i;j=o}}else b=k;k=b;l=l+1|0}if(!b){c[v+(a<<2)>>2]=-1;c[n>>2]=-1;n=c[d>>2]|0;c[n+(g<<2)>>2]=m;p=g+2|0;c[n+(g+1<<2)>>2]=a;n=c[e>>2]|0;g=(c[f>>2]|0)+1|0;c[f>>2]=g;c[n+(g<<2)>>2]=p;g=p}}q=q+1|0}while(1){if((a|0)>=(w|0))break;if((c[v+(a<<2)>>2]|0)==(a|0)){u=g+1|0;c[(c[d>>2]|0)+(g<<2)>>2]=a;t=c[e>>2]|0;g=(c[f>>2]|0)+1|0;c[f>>2]=g;c[t+(g<<2)>>2]=u;g=u}a=a+1|0}l6(r)}while(0);l6(v);return}function ix(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0.0,k=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=l;l=l+16|0;q=A+8|0;y=A+4|0;z=A;c[y>>2]=0;c[z>>2]=0;v=c[a+20>>2]|0;u=c[a+24>>2]|0;w=c[a>>2]|0;x=w<<2;c[d>>2]=IK(x)|0;c[e>>2]=IK(x+4|0)|0;x=IK(x)|0;g=0;while(1){if((g|0)>=(w|0))break;c[x+(g<<2)>>2]=g;g=g+1|0}Ow(a,q,y,z);c[f>>2]=0;s=c[e>>2]|0;c[s>>2]=0;t=c[a+28>>2]|0;g=0;a=0;a:while(1){k=c[q>>2]|0;m=c[z>>2]|0;do{if((a|0)>=(k|0))break a;n=a;a=a+1|0;p=m+(a<<2)|0;i=c[p>>2]|0;n=c[m+(n<<2)>>2]|0}while((i-n|0)<2);m=c[y>>2]|0;k=c[s+(c[f>>2]<<2)>>2]|0;while(1){if((n|0)>=(i|0))break;r=m+(n<<2)|0;c[x+(c[r>>2]<<2)>>2]=-1;i=g+1|0;c[(c[d>>2]|0)+(g<<2)>>2]=c[r>>2];if((i-k|0)>3){g=(c[f>>2]|0)+1|0;c[f>>2]=g;c[s+(g<<2)>>2]=i;g=i}else g=k;k=g;n=n+1|0;g=i;i=c[p>>2]|0}if((g|0)<=(k|0))continue;r=(c[f>>2]|0)+1|0;c[f>>2]=r;c[s+(r<<2)>>2]=g}b:do if(!b){i=0;j=0.0;a=0;c:while(1){while(1){while(1){if((a|0)>=(w|0)){a=0;break c}b=x+(a<<2)|0;r=a+1|0;if((c[b>>2]|0)==-1)a=r;else break}q=c[v+(r<<2)>>2]|0;n=1;p=c[v+(a<<2)>>2]|0;while(1){k=(n|0)!=0;if((p|0)>=(q|0))break;m=c[u+(p<<2)>>2]|0;if((a|0)!=(m|0)?(c[x+(m<<2)>>2]|0)!=-1:0){o=+h[t+(p<<3)>>3];if(!k?!(o>j):0)k=0;else{k=0;i=m;j=o}}else k=n;n=k;p=p+1|0}if(k)a=r;else break}c[x+(i<<2)>>2]=-1;c[b>>2]=-1;q=c[d>>2]|0;c[q+(g<<2)>>2]=a;e=g+2|0;c[q+(g+1<<2)>>2]=i;a=(c[f>>2]|0)+1|0;c[f>>2]=a;c[s+(a<<2)>>2]=e;a=r;g=e}while(1){if((a|0)>=(w|0))break b;if((c[x+(a<<2)>>2]|0)==(a|0)){v=g+1|0;c[(c[d>>2]|0)+(g<<2)>>2]=a;g=(c[f>>2]|0)+1|0;c[f>>2]=g;c[s+(g<<2)>>2]=v;g=v}a=a+1|0}}else{s=Rw(w)|0;r=0;a=0;j=0.0;while(1){if((r|0)>=(w|0)){a=0;break}p=c[s+(r<<2)>>2]|0;b=x+(p<<2)|0;if((c[b>>2]|0)!=-1){q=c[v+(p+1<<2)>>2]|0;m=1;n=c[v+(p<<2)>>2]|0;while(1){i=(m|0)!=0;if((n|0)>=(q|0))break;k=c[u+(n<<2)>>2]|0;if((p|0)!=(k|0)?(c[x+(k<<2)>>2]|0)!=-1:0){o=+h[t+(n<<3)>>3];if(!i?!(o>j):0)i=0;else{i=0;a=k;j=o}}else i=m;m=i;n=n+1|0}if(!i){c[x+(a<<2)>>2]=-1;c[b>>2]=-1;b=c[d>>2]|0;c[b+(g<<2)>>2]=p;q=g+2|0;c[b+(g+1<<2)>>2]=a;b=c[e>>2]|0;g=(c[f>>2]|0)+1|0;c[f>>2]=g;c[b+(g<<2)>>2]=q;g=q}}r=r+1|0}while(1){if((a|0)>=(w|0))break;if((c[x+(a<<2)>>2]|0)==(a|0)){v=g+1|0;c[(c[d>>2]|0)+(g<<2)>>2]=a;u=c[e>>2]|0;g=(c[f>>2]|0)+1|0;c[f>>2]=g;c[u+(g<<2)>>2]=v;g=v}a=a+1|0}l6(s)}while(0);l6(c[y>>2]|0);l6(c[z>>2]|0);l6(x);l=A;return}function jx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;r=c[a+20>>2]|0;s=c[a+24>>2]|0;v=c[a>>2]|0;u=v<<2;c[b>>2]=IK(u)|0;c[d>>2]=IK(u+4|0)|0;u=IK(u)|0;q=IK(v<<4)|0;f=0;while(1){if((f|0)>=(v|0))break;c[u+(f<<2)>>2]=f;f=f+1|0}c[e>>2]=0;c[c[d>>2]>>2]=0;o=c[a+28>>2]|0;t=Rw(v)|0;f=0;m=0;while(1){if((m|0)>=(v|0)){m=0;break}a=c[t+(m<<2)>>2]|0;a:do if((c[u+(a<<2)>>2]|0)!=-1?(n=c[r+(a<<2)>>2]|0,((c[r+(a+1<<2)>>2]|0)-n|0)==1):0){j=c[s+(n<<2)>>2]|0;c[u+(j<<2)>>2]=-1;k=c[b>>2]|0;c[k+(f<<2)>>2]=j;l=r+(j+1<<2)|0;i=c[r+(j<<2)>>2]|0;f=f+1|0;while(1){if((i|0)>=(c[l>>2]|0))break;a=s+(i<<2)|0;g=c[a>>2]|0;if((j|0)!=(g|0)?((c[r+(g+1<<2)>>2]|0)-(c[r+(g<<2)>>2]|0)|0)==1:0){c[u+(g<<2)>>2]=-1;c[k+(f<<2)>>2]=c[a>>2];f=f+1|0}i=i+1|0}i=c[d>>2]|0;l=c[e>>2]|0;a=c[i+(l<<2)>>2]|0;l=l+1|0;g=i+(l<<2)|0;c[e>>2]=l;if((f-a|0)<5){c[g>>2]=f;break}l=a+1|0;c[g>>2]=l;a=l;g=l;while(1){if(!((g|0)<(f|0)&(a|0)<(f|0)))break a;l=g+3|0;l=(f|0)<(l|0)?f:l;k=(c[e>>2]|0)+1|0;c[e>>2]=k;c[i+(k<<2)>>2]=l;a=a+1|0;g=l}}while(0);m=m+1|0}while(1){if((m|0)>=(v|0)){a=0;break}k=c[t+(m<<2)>>2]|0;l=u+(k<<2)|0;if((c[l>>2]|0)!=-1){j=c[r+(k+1<<2)>>2]|0;a=0;i=c[r+(k<<2)>>2]|0;while(1){if((i|0)>=(j|0))break;g=c[s+(i<<2)>>2]|0;if((k|0)!=(g|0)?(p=a<<1,(c[u+(g<<2)>>2]|0)!=-1):0){h[q+(p<<3)>>3]=+(g|0);h[q+((p|1)<<3)>>3]=+h[o+(i<<3)>>3];a=a+1|0}i=i+1|0}if((a|0)>0){k3(q,a,16,81);i=(a|0)<3?a:3;j=c[b>>2]|0;g=0;while(1){a=f+1|0;f=j+(f<<2)|0;if((g|0)>=(i|0))break;n=~~+h[q+(g<<1<<3)>>3];c[u+(n<<2)>>2]=-1;c[f>>2]=n;g=g+1|0;f=a}c[l>>2]=-1;c[f>>2]=k;n=c[d>>2]|0;f=(c[e>>2]|0)+1|0;c[e>>2]=f;c[n+(f<<2)>>2]=a;f=a}}m=m+1|0}while(1){if((a|0)>=(v|0))break;if((c[u+(a<<2)>>2]|0)==(a|0)){s=f+1|0;c[(c[b>>2]|0)+(f<<2)>>2]=a;r=c[d>>2]|0;f=(c[e>>2]|0)+1|0;c[e>>2]=f;c[r+(f<<2)>>2]=s;f=s}a=a+1|0}l6(t);l6(u);return}function kx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;p=c[a+20>>2]|0;q=c[a+24>>2]|0;r=c[a>>2]|0;f=c[a+4>>2]|0;k=IK(r<<2)|0;c[d>>2]=k;a=0;while(1){if((a|0)>=(r|0))break;c[k+(a<<2)>>2]=a;a=a+1|0}c[e>>2]=f;a:do if(!b){f=0;b:while(1){if((f|0)>=(r|0))break a;b=f+1|0;g=p+(b<<2)|0;h=k+(f<<2)|0;a=c[p+(f<<2)>>2]|0;while(1){if((a|0)>=(c[g>>2]|0)){f=b;continue b}i=q+(a<<2)|0;j=c[i>>2]|0;if(((f|0)!=(j|0)?(l=k+(j<<2)|0,(c[l>>2]|0)==(j|0)):0)?(c[h>>2]|0)==(f|0):0){c[l>>2]=f;c[h>>2]=c[i>>2];c[e>>2]=(c[e>>2]|0)+-1}a=a+1|0}}}else{b=Rw(r)|0;a=0;while(1){if((a|0)>=(r|0))break;g=c[b+(a<<2)>>2]|0;h=p+(g+1<<2)|0;f=c[p+(g<<2)>>2]|0;while(1){if((f|0)>=(c[h>>2]|0))break;i=q+(f<<2)|0;j=c[i>>2]|0;if(((g|0)!=(j|0)?(m=c[d>>2]|0,n=m+(j<<2)|0,(c[n>>2]|0)==(j|0)):0)?(o=m+(g<<2)|0,(c[o>>2]|0)==(g|0)):0){c[n>>2]=g;c[o>>2]=c[i>>2];c[e>>2]=(c[e>>2]|0)+-1}f=f+1|0}a=a+1|0}l6(b)}while(0);return}function lx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;s=c[a+20>>2]|0;t=c[a+24>>2]|0;u=c[a>>2]|0;g=c[a+4>>2]|0;p=IK(u<<2)|0;c[d>>2]=p;f=0;while(1){if((f|0)>=(u|0))break;c[p+(f<<2)>>2]=f;f=f+1|0}c[e>>2]=g;r=c[a+28>>2]|0;a:do if(!b){f=0;i=0.0;l=0;while(1){if((l|0)>=(u|0))break a;m=l+1|0;n=c[s+(m<<2)>>2]|0;o=p+(l<<2)|0;b=1;k=c[s+(l<<2)>>2]|0;while(1){a=(b|0)!=0;if((k|0)>=(n|0))break;g=c[t+(k<<2)>>2]|0;if(((l|0)!=(g|0)?(c[p+(g<<2)>>2]|0)==(g|0):0)?(c[o>>2]|0)==(l|0):0){j=+h[r+(k<<3)>>3];if(!a?!(j>i):0)a=0;else{a=0;f=g;i=j}}else a=b;b=a;k=k+1|0}if(a){l=m;continue}c[p+(f<<2)>>2]=l;c[p+(l<<2)>>2]=f;c[e>>2]=(c[e>>2]|0)+-1;l=m}}else{q=Rw(u)|0;p=0;f=0;i=0.0;while(1){if((p|0)>=(u|0))break;l=c[q+(p<<2)>>2]|0;m=c[d>>2]|0;n=m+(l<<2)|0;if((c[n>>2]|0)==(l|0)){o=c[s+(l+1<<2)>>2]|0;k=c[s+(l<<2)>>2]|0;b=1;while(1){a=(b|0)!=0;if((k|0)>=(o|0))break;g=c[t+(k<<2)>>2]|0;if((l|0)!=(g|0)?(c[m+(g<<2)>>2]|0)==(g|0):0){j=+h[r+(k<<3)>>3];if(!a?!(j>i):0)a=0;else{a=0;f=g;i=j}}else a=b;k=k+1|0;b=a}if(!a){c[m+(f<<2)>>2]=l;c[n>>2]=f;c[e>>2]=(c[e>>2]|0)+-1}}p=p+1|0}l6(q)}while(0);return}function mx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;t=c[a+20>>2]|0;u=c[a+24>>2]|0;v=c[a>>2]|0;g=c[a+4>>2]|0;q=IK(v<<2)|0;c[d>>2]=q;f=0;while(1){if((f|0)>=(v|0))break;c[q+(f<<2)>>2]=f;f=f+1|0}c[e>>2]=g;s=c[a+28>>2]|0;a:do if(!b){f=0;i=0.0;l=0;while(1){if((l|0)>=(v|0))break a;k=c[t+(l<<2)>>2]|0;m=l+1|0;n=c[t+(m<<2)>>2]|0;o=+(n-k|0);p=q+(l<<2)|0;b=1;while(1){a=(b|0)!=0;if((k|0)>=(n|0))break;g=c[u+(k<<2)>>2]|0;if(((l|0)!=(g|0)?(c[q+(g<<2)>>2]|0)==(g|0):0)?(c[p>>2]|0)==(l|0):0){j=+h[s+(k<<3)>>3]/o/+((c[t+(g+1<<2)>>2]|0)-(c[t+(g<<2)>>2]|0)|0);if(!a?!(j>i):0)a=0;else{a=0;f=g;i=j}}else a=b;b=a;k=k+1|0}if(a){l=m;continue}c[q+(f<<2)>>2]=l;c[q+(l<<2)>>2]=f;c[e>>2]=(c[e>>2]|0)+-1;l=m}}else{r=Rw(v)|0;q=0;f=0;i=0.0;while(1){if((q|0)>=(v|0))break;l=c[r+(q<<2)>>2]|0;m=c[d>>2]|0;n=m+(l<<2)|0;if((c[n>>2]|0)==(l|0)){k=c[t+(l<<2)>>2]|0;p=c[t+(l+1<<2)>>2]|0;o=+(p-k|0);b=1;while(1){a=(b|0)!=0;if((k|0)>=(p|0))break;g=c[u+(k<<2)>>2]|0;if((l|0)!=(g|0)?(c[m+(g<<2)>>2]|0)==(g|0):0){j=+h[s+(k<<3)>>3]/o/+((c[t+(g+1<<2)>>2]|0)-(c[t+(g<<2)>>2]|0)|0);if(!a?!(j>i):0)a=0;else{a=0;f=g;i=j}}else a=b;k=k+1|0;b=a}if(!a){c[m+(f<<2)>>2]=l;c[n>>2]=f;c[e>>2]=(c[e>>2]|0)+-1}}q=q+1|0}l6(r)}while(0);return}function nx(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=c[a+20>>2]|0;n=c[a+24>>2]|0;l=c[a>>2]|0;j=IK(l<<2)|0;c[d>>2]=j;a=0;while(1){if((a|0)>=(l|0))break;c[j+(a<<2)>>2]=-100;a=a+1|0}c[e>>2]=0;c[f>>2]=0;a:do if(!b){h=0;b:while(1){if((h|0)>=(l|0))break a;a=j+(h<<2)|0;i=h+1|0;if((c[a>>2]|0)!=-100){h=i;continue}b=c[e>>2]|0;c[e>>2]=b+1;c[a>>2]=b;b=m+(i<<2)|0;a=c[m+(h<<2)>>2]|0;while(1){if((a|0)>=(c[b>>2]|0)){h=i;continue b}g=c[n+(a<<2)>>2]|0;if((h|0)!=(g|0)){c[j+(g<<2)>>2]=-1;c[f>>2]=(c[f>>2]|0)+1}a=a+1|0}}}else{i=Rw(l)|0;h=0;while(1){if((h|0)>=(l|0))break;j=c[i+(h<<2)>>2]|0;k=c[d>>2]|0;a=k+(j<<2)|0;c:do if((c[a>>2]|0)==-100){b=c[e>>2]|0;c[e>>2]=b+1;c[a>>2]=b;b=m+(j+1<<2)|0;a=c[m+(j<<2)>>2]|0;while(1){if((a|0)>=(c[b>>2]|0))break c;g=c[n+(a<<2)>>2]|0;if((j|0)!=(g|0)){c[k+(g<<2)>>2]=-1;c[f>>2]=(c[f>>2]|0)+1}a=a+1|0}}while(0);h=h+1|0}l6(i)}while(0);c[f>>2]=(c[f>>2]|0)+(c[e>>2]|0);return}function ox(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+16|0;n=q+4|0;o=q;p=c[a+20>>2]|0;m=c[a+24>>2]|0;h=c[a>>2]|0;a=IK(h<<2)|0;c[d>>2]=a;g=0;while(1){c[n>>2]=g;if((g|0)>=(h|0))break;c[a+(g<<2)>>2]=-100;g=(c[n>>2]|0)+1|0}c[e>>2]=0;c[f>>2]=0;k=ux(h,(h<<1)+-2|0)|0;a:do if(!b){a=0;while(1){c[n>>2]=a;if((a|0)>=(h|0))break a;j=a+1|0;wx(k,a,(c[p+(j<<2)>>2]|0)-(c[p+(a<<2)>>2]|0)|0)|0;a=j}}else{g=Rw(h)|0;a=0;while(1){if((a|0)>=(h|0))break;j=c[g+(a<<2)>>2]|0;c[n>>2]=j;wx(k,j,(c[p+(j+1<<2)>>2]|0)-(c[p+(j<<2)>>2]|0)|0)|0;a=a+1|0}l6(g)}while(0);b:while(1){j=(xx(k,n,o)|0)==0;a=c[e>>2]|0;if(j)break;c[e>>2]=a+1;c[(c[d>>2]|0)+(c[n>>2]<<2)>>2]=a;a=c[n>>2]|0;j=c[p+(a<<2)>>2]|0;while(1){if((j|0)>=(c[p+(a+1<<2)>>2]|0))continue b;i=c[m+(j<<2)>>2]|0;if((a|0)!=(i|0)){c:do if((c[(c[d>>2]|0)+(i<<2)>>2]|0)==-100){zx(k,i)|0;c[(c[d>>2]|0)+(i<<2)>>2]=-1;g=p+(i+1<<2)|0;a=c[p+(i<<2)>>2]|0;while(1){if((a|0)>=(c[g>>2]|0))break c;b=m+(a<<2)|0;h=c[b>>2]|0;if((i|0)!=(h|0)?(c[(c[d>>2]|0)+(h<<2)>>2]|0)==-100:0){h=yx(k,h)|0;c[o>>2]=h;wx(k,c[b>>2]|0,h+1|0)|0}a=a+1|0}}while(0);c[f>>2]=(c[f>>2]|0)+1;a=c[n>>2]|0}j=j+1|0}}c[f>>2]=(c[f>>2]|0)+a;vx(k);l=q;return}function px(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;d=+h[a+8>>3];c=+h[b+8>>3];return (d>c?-1:d<c&1)|0}function qx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if((tw(a,0)|0)!=0?(c[a+16>>2]|0)==1:0)f=a;else f=Nw(a)|0;do if(!b)b=0;else{if(tw(b,0)|0?(c[b+16>>2]|0)==1:0)break;b=xw(b,0)|0}while(0);d=rx(f,b,d)|0;b=sx(d,e)|0;if((f|0)!=(a|0))c[d+36>>2]=1;return b|0}function rx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(!a)a=0;else{e=IK(44)|0;c[e>>2]=0;c[e+4>>2]=c[a+4>>2];c[e+8>>2]=a;c[e+12>>2]=b;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=d;c[e+28>>2]=0;c[e+32>>2]=0;c[e+36>>2]=0;a=e}return a|0}function sx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+32|0;e=k+20|0;f=k+16|0;g=k+12|0;h=k+8|0;i=k+4|0;j=k;c[f>>2]=0;if((c[a>>2]|0)<((c[b+16>>2]|0)+-1|0)?(fx(c[a+8>>2]|0,i,c[a+12>>2]|0,j,0,f,g,h,b,e),d=c[i>>2]|0,d|0):0){i=c[j>>2]|0;j=rx(d,i,c[f>>2]|0)|0;c[a+28>>2]=j;c[j+40>>2]=c[e>>2];c[j>>2]=(c[a>>2]|0)+1;c[j+4>>2]=c[d>>2];c[j+8>>2]=d;c[j+12>>2]=i;c[j+16>>2]=c[g>>2];c[a+20>>2]=c[h>>2];c[j+32>>2]=a;sx(j,b)|0}l=k;return a|0}function tx(a){a=a|0;var b=0;while(1){b=c[a+28>>2]|0;if(!b)break;else a=b}return a|0}function ux(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=IK(28)|0;c[f>>2]=0;c[f+4>>2]=a;c[f+8>>2]=b;c[f+12>>2]=-1;e=f+16|0;c[e>>2]=IK((b<<2)+4|0)|0;d=0;while(1){if((d|0)>(b|0))break;c[(c[e>>2]|0)+(d<<2)>>2]=0;d=d+1|0}b=(a<<2)+4|0;e=f+20|0;c[e>>2]=IK(b)|0;d=0;while(1){if((d|0)>(a|0))break;c[(c[e>>2]|0)+(d<<2)>>2]=0;d=d+1|0}b=IK(b)|0;c[f+24>>2]=b;d=0;while(1){if((d|0)>(a|0))break;c[b+(d<<2)>>2]=-999;d=d+1|0}return f|0}function vx(a){a=a|0;var b=0,d=0,e=0,f=0;if(a|0){e=a+16|0;b=c[e>>2]|0;if(b|0){f=a+8|0;d=0;while(1){if((d|0)>(c[f>>2]|0))break;zy(c[b+(d<<2)>>2]|0,105);d=d+1|0;b=c[e>>2]|0}l6(b)}b=c[a+20>>2]|0;if(b|0)l6(b);l6(c[a+24>>2]|0);l6(a)}return}function wx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=a+8|0;l=a+20|0;i=a+24|0;m=a+16|0;if(!a)Aa(139256,96044,69,96060);while(1){if((c[h>>2]|0)<(d|0)){j=4;break}e=(c[l>>2]|0)+(b<<2)|0;f=c[e>>2]|0;g=c[a>>2]|0;k=(c[i>>2]|0)+(b<<2)|0;if(!f)break;n=c[k>>2]|0;c[e>>2]=0;c[a>>2]=g+-1;Cy(f,105,(c[m>>2]|0)+(n<<2)|0)}if((j|0)==4)Aa(96079,96044,70,96060);c[a>>2]=g+1;e=a+12|0;if((c[e>>2]|0)<(d|0))c[e>>2]=d;c[k>>2]=d;e=IK(4)|0;c[e>>2]=b;f=c[(c[m>>2]|0)+(d<<2)>>2]|0;if(!f)e=yy(e)|0;else e=Ay(f,e)|0;c[(c[l>>2]|0)+(b<<2)>>2]=e;c[(c[m>>2]|0)+(d<<2)>>2]=e;return a|0}function xx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;if((a|0)!=0?(c[a>>2]|0)>=1:0){f=a+12|0;e=c[f>>2]|0;c[d>>2]=e;c[a>>2]=(c[a>>2]|0)+-1;d=a+16|0;g=c[(c[d>>2]|0)+(e<<2)>>2]|0;c[b>>2]=c[(By(g)|0)>>2];Cy(g,105,(c[d>>2]|0)+(e<<2)|0);d=c[d>>2]|0;if(!(c[d+(e<<2)>>2]|0)){while(1){if((e|0)<=-1)break;if(c[d+(e<<2)>>2]|0)break;e=e+-1|0}c[f>>2]=e}e=c[b>>2]|0;c[(c[a+20>>2]|0)+(e<<2)>>2]=0;c[(c[a+24>>2]|0)+(e<<2)>>2]=-999;e=1}else e=0;return e|0}function yx(a,b){a=a|0;b=b|0;return c[(c[a+24>>2]|0)+(b<<2)>>2]|0}function zx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;if((a|0)!=0?(e=c[a>>2]|0,(e|0)>=1):0){h=a+24|0;d=c[(c[h>>2]|0)+(b<<2)>>2]|0;c[a>>2]=e+-1;f=a+20|0;e=a+16|0;Cy(c[(c[f>>2]|0)+(b<<2)>>2]|0,105,(c[e>>2]|0)+(d<<2)|0);a=a+12|0;if((d|0)==(c[a>>2]|0)?(g=c[e>>2]|0,(c[g+(d<<2)>>2]|0)==0):0){while(1){if((d|0)<=-1)break;if(c[g+(d<<2)>>2]|0)break;d=d+-1|0}c[a>>2]=d}c[(c[f>>2]|0)+(b<<2)>>2]=0;c[(c[h>>2]|0)+(b<<2)>>2]=-999;d=1}else d=0;return d|0}function Ax(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0,j=0,k=0.0,l=0.0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;if(!(tw(a,0)|0))Aa(96096,96132,260,96147);w=uw(a)|0;x=c[w+20>>2]|0;y=c[w+24>>2]|0;a=w+16|0;e=w+28|0;if((c[a>>2]|0)==1)v=c[e>>2]|0;else{l6(c[e>>2]|0);c[a>>2]=1;v=IK(c[w+8>>2]<<3)|0;c[e>>2]=v}r=IK(c[w>>2]<<2)|0;a=0;while(1){e=c[w>>2]|0;if((a|0)>=(e|0)){q=0;a=e;break}c[r+(a<<2)>>2]=-1;a=a+1|0}a:while(1){if((q|0)>=(a|0)){g=0.0;k=0.0;f=0;u=0;t=a;break}p=q+1|0;i=x+(p<<2)|0;m=x+(q<<2)|0;j=(c[i>>2]|0)-(c[m>>2]|0)|0;c[r+(q<<2)>>2]=q;e=c[m>>2]|0;while(1){o=c[i>>2]|0;if((e|0)>=(o|0))break;a=c[y+(e<<2)>>2]|0;if((q|0)!=(a|0))c[r+(a<<2)>>2]=q;e=e+1|0}n=+(j|0);e=c[m>>2]|0;while(1){if((e|0)>=(o|0))break;a=c[y+(e<<2)>>2]|0;if((q|0)!=(a|0)){i=c[x+(a+1<<2)>>2]|0;a=c[x+(a<<2)>>2]|0;l=n+ +(i-a|0);while(1){if((a|0)>=(i|0))break;l=(c[r+(c[y+(a<<2)>>2]<<2)>>2]|0)==(q|0)?l+-1.0:l;a=a+1|0}h[v+(e<<3)>>3]=l;if(!(l>0.0)){s=23;break a}}e=e+1|0}q=p;a=c[w>>2]|0}if((s|0)==23)Aa(96169,96132,290,96147);while(1){if((u|0)>=(t|0))break;i=u+1|0;j=x+(i<<2)|0;e=c[x+(u<<2)>>2]|0;while(1){if((e|0)>=(c[j>>2]|0))break;a=c[y+(e<<2)>>2]|0;if((u|0)==(a|0))a=f;else{k=k+ +Xw(d,b,u,a);g=g+ +h[v+(e<<3)>>3];a=f+1|0}f=a;e=e+1|0}u=i;t=c[w>>2]|0}n=+(f|0);g=k/n/(g/n);a=0;b:while(1){if((a|0)>=(t|0))break;i=a+1|0;j=c[x+(i<<2)>>2]|0;e=c[x+(a<<2)>>2]|0;while(1){if((e|0)>=(j|0)){a=i;continue b}f=v+(e<<3)|0;if((a|0)!=(c[y+(e<<2)>>2]|0))h[f>>3]=g*+h[f>>3];e=e+1|0}}return w|0}function Bx(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0.0,U=0.0;N=c[a>>2]|0;O=c[a+20>>2]|0;P=c[a+24>>2]|0;if(!(tw(a,0)|0))Aa(96096,96132,333,96177);Q=Ax(a,b,e)|0;R=IK(56)|0;S=R+32|0;h[S>>3]=1.0;c[R+20>>2]=0;c[R+24>>2]=0;h[R+40>>3]=.01;c[R+48>>2]=~~+G(+(+(c[a>>2]|0)));g=N<<3;K=IK(g)|0;c[R+12>>2]=K;a=0;while(1){if((a|0)>=(N|0))break;h[K+(a<<3)>>3]=d;a=a+1|0}L=IK(N<<2)|0;J=IK(g)|0;j=0;while(1){if((j|0)>=(N|0)){n=0;break}k=J+(j<<3)|0;h[k>>3]=0.0;l=j+1|0;m=O+(l<<2)|0;i=c[O+(j<<2)>>2]|0;a=0;d=0.0;while(1){if((i|0)>=(c[m>>2]|0))break;g=c[P+(i<<2)>>2]|0;if((j|0)!=(g|0)){d=+Xw(e,b,j,g);d=d+ +h[k>>3];h[k>>3]=d;a=a+1|0}i=i+1|0}if((a|0)<=0){o=14;break}h[k>>3]=d/+(a|0);j=l}if((o|0)==14)Aa(96209,96132,358,96177);while(1){if((n|0)>=(N|0)){a=0;l=0;break}c[L+(n<<2)>>2]=-1;n=n+1|0}a:while(1){if((l|0)>=(N|0))break;c[L+(l<<2)>>2]=l;j=O+(l<<2)|0;m=l+1|0;n=O+(m<<2)|0;i=c[j>>2]|0;while(1){g=c[n>>2]|0;if((i|0)>=(g|0))break;g=L+(c[P+(i<<2)>>2]<<2)|0;if((c[g>>2]|0)!=(l|0)){c[g>>2]=l;a=a+1|0}i=i+1|0}k=c[j>>2]|0;while(1){if((k|0)>=(g|0)){l=m;continue a}i=c[P+(k<<2)>>2]|0;j=O+(i+1<<2)|0;i=c[O+(i<<2)>>2]|0;while(1){if((i|0)>=(c[j>>2]|0))break;g=L+(c[P+(i<<2)>>2]<<2)|0;if((c[g>>2]|0)!=(l|0)){c[g>>2]=l;a=a+1|0}i=i+1|0}k=k+1|0;g=c[n>>2]|0}}g=a+N|0;F=R+4|0;c[F>>2]=ow(N,N,g,1,1)|0;g=ow(N,N,g,1,1)|0;I=R+8|0;c[I>>2]=g;a=c[F>>2]|0;do if(!((g|0)==0|(a|0)==0)){D=c[a+20>>2]|0;C=c[a+24>>2]|0;A=c[a+28>>2]|0;E=c[g+28>>2]|0;B=c[g+20>>2]|0;x=c[g+24>>2]|0;c[B>>2]=0;c[D>>2]=0;y=(f|0)==0;z=(f|0)==2;f=(f|0)==1;d=0.0;p=0.0;o=0;i=0;b:while(1){if((o|0)>=(N|0)){o=62;break}t=o+N|0;c[L+(o<<2)>>2]=t;k=O+(o<<2)|0;u=o+1|0;v=O+(u<<2)|0;w=J+(o<<3)|0;q=0.0;r=0.0;j=c[k>>2]|0;while(1){a=c[v>>2]|0;if((j|0)>=(a|0))break;g=c[P+(j<<2)>>2]|0;a=L+(g<<2)|0;if((c[a>>2]|0)!=(t|0)){c[a>>2]=t;c[C+(i<<2)>>2]=g;do if(y)s=1.0;else{if(f){s=(+h[w>>3]+ +h[J+(g<<3)>>3])*.5;break}if(!z){o=44;break b}s=+H(+(+Ww(e,b,o,g)),.4)}while(0);U=-1.0/(s*s);h[A+(i<<3)>>3]=U;c[x+(i<<2)>>2]=g;T=s*U;n=E+(i<<3)|0;h[n>>3]=T;p=p+T*+Xw(e,b,o,g);T=+h[n>>3];i=i+1|0;q=q+U;r=r+T;d=d+s*T}j=j+1|0}n=c[k>>2]|0;while(1){if((n|0)>=(a|0))break;k=c[P+(n<<2)>>2]|0;l=O+(k+1<<2)|0;m=J+(k<<3)|0;j=c[O+(k<<2)>>2]|0;while(1){if((j|0)>=(c[l>>2]|0))break;g=P+(j<<2)|0;a=L+(c[g>>2]<<2)|0;if((c[a>>2]|0)!=(t|0)){c[a>>2]=t;do if(y)s=2.0;else{if(f){s=(+h[w>>3]+ +h[m>>3]*2.0+ +h[J+(c[g>>2]<<3)>>3])*.5;break}if(!z){o=57;break b}s=+H(+(+Ww(e,b,o,c[g>>2]|0)),.4)}while(0);c[C+(i<<2)>>2]=c[g>>2];T=-1.0/(s*s);h[A+(i<<3)>>3]=T;c[x+(i<<2)>>2]=c[g>>2];U=s*T;a=E+(i<<3)|0;h[a>>3]=U;p=p+U*+Xw(e,b,c[g>>2]|0,k);U=+h[a>>3];i=i+1|0;q=q+T;r=r+U;d=d+s*U}j=j+1|0}n=n+1|0;a=c[v>>2]|0}c[C+(i<<2)>>2]=o;w=K+(o<<3)|0;U=-(q*+h[w>>3]);h[w>>3]=U;h[A+(i<<3)>>3]=U-q;c[x+(i<<2)>>2]=o;h[E+(i<<3)>>3]=-r;i=i+1|0;c[D+(u<<2)>>2]=i;c[B+(u<<2)>>2]=i;o=u}if((o|0)==44){_3(96216,29,1,c[15715]|0)|0;Aa(138697,96132,418,96177)}else if((o|0)==57){_3(96216,29,1,c[15715]|0)|0;Aa(138697,96132,460,96177)}else if((o|0)==62){d=p/d;a=0;while(1){if((a|0)>=(i|0))break;P=E+(a<<3)|0;h[P>>3]=d*+h[P>>3];a=a+1|0}h[S>>3]=d;c[(c[F>>2]|0)+8>>2]=i;c[(c[I>>2]|0)+8>>2]=i;l6(L);l6(J);nw(Q);M=R;break}}else{Cx(R);M=0}while(0);return M|0}function Cx(a){a=a|0;var b=0;if(a|0){b=c[a+4>>2]|0;if(b|0)nw(b);b=c[a+8>>2]|0;if(b|0)nw(b);b=c[a+12>>2]|0;if(b|0)l6(b);b=c[a+20>>2]|0;if(b|0)db[c[a+16>>2]&127](b);l6(a)}return}function Dx(a,b,d,e,f,g){a=a|0;b=b|0;d=+d;e=e|0;f=f|0;g=g|0;var i=0,j=0.0,k=0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0.0;O=c[a>>2]|0;if(tw(a,0)|0?(c[a+16>>2]|0)==1:0){k=S(O,b)|0;j=0.0;i=0;while(1){if((i|0)>=(k|0))break;u=+h[e+(i<<3)>>3];j=j+u*u;i=i+1|0}a:do if(j==0.0){i=0;while(1){if((i|0)>=(k|0))break a;h[e+(i<<3)>>3]=+Pw()*72.0;i=i+1|0}}while(0);J=c[a+20>>2]|0;K=c[a+24>>2]|0;L=c[a+28>>2]|0;i=IK(56)|0;N=i+32|0;h[N>>3]=1.0;c[i+20>>2]=0;c[i+24>>2]=0;c[i>>2]=a;h[i+40>>3]=.01;c[i+48>>2]=~~+G(+(+(c[a>>2]|0)));M=IK(O<<3)|0;c[i+12>>2]=M;k=0;while(1){if((k|0)>=(O|0))break;h[M+(k<<3)>>3]=d;k=k+1|0}a=(c[a+8>>2]|0)+O|0;H=i+4|0;c[H>>2]=ow(O,O,a,1,1)|0;a=ow(O,O,a,1,1)|0;I=i+8|0;c[I>>2]=a;k=c[H>>2]|0;if(!((a|0)==0|(k|0)==0)){B=c[k+20>>2]|0;C=c[k+24>>2]|0;D=c[a+20>>2]|0;E=c[a+24>>2]|0;z=c[k+28>>2]|0;F=c[a+28>>2]|0;c[D>>2]=0;c[B>>2]=0;t=0.0;u=0.0;A=0;w=0;b:while(1){if((w|0)>=(O|0))break;x=w+1|0;y=J+(x<<2)|0;l=0.0;m=0.0;v=c[J+(w<<2)>>2]|0;j=t;d=u;k=A;while(1){o=z+(k<<3)|0;a=C+(k<<2)|0;p=F+(k<<3)|0;q=E+(k<<2)|0;if((v|0)>=(c[y>>2]|0))break;r=c[K+(v<<2)>>2]|0;if((r|0)!=(w|0)){c[a>>2]=r;s=+h[L+(v<<3)>>3];n=s*s;a=n==0.0;switch(f|0){case 2:{n=a?-1.0e5:-1.0/n;break}case 1:{n=a?-1.0e5:-1.0/s;break}case 0:{n=-1.0;break}default:{P=23;break b}}h[o>>3]=n;c[q>>2]=r;Q=s*n;h[p>>3]=Q;d=d+Q*+Xw(e,b,w,r);Q=+h[p>>3];l=l+n;m=m+Q;j=j+s*Q;k=k+1|0}v=v+1|0}c[a>>2]=w;A=M+(w<<3)|0;t=-(l*+h[A>>3]);h[A>>3]=t;h[o>>3]=t-l;c[q>>2]=w;h[p>>3]=-m;A=k+1|0;c[B+(x<<2)>>2]=A;c[D+(x<<2)>>2]=A;t=j;u=d;w=x}if((P|0)==23)Aa(138697,96132,591,96313);j=(g|0)==0?1.0:u/t;if(j==0.0)i=0;else{k=0;while(1){if((k|0)>=(A|0))break;P=F+(k<<3)|0;h[P>>3]=j*+h[P>>3];k=k+1|0}h[N>>3]=j;c[(c[H>>2]|0)+8>>2]=A;c[(c[I>>2]|0)+8>>2]=A}}else{Cx(i);i=0}return i|0}Aa(96246,96132,525,96313);return 0}function Ex(a){a=a|0;Cx(a);return}function Fx(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;return +(+Gx(a,b,c,d,e))}function Gx(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0,i=0,j=0.0,k=0,m=0,n=0,o=0,p=0.0,q=0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0.0,D=0,E=0,F=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,T=0,U=0,V=0;U=l;l=l+16|0;Q=U+12|0;T=U+8|0;n=U+4|0;k=U;m=c[a+4>>2]|0;i=c[a+8>>2]|0;c[Q>>2]=0;c[T>>2]=0;c[n>>2]=0;L=c[a+12>>2]|0;c[k>>2]=0;M=uw(i)|0;N=c[m>>2]|0;O=S(N,b)|0;g=O<<3;R=IK(g)|0;if((R|0)!=0?(P=S(b<<3,N)|0,B6(R|0,d|0,P|0)|0,K=IK(g)|0,c[T>>2]=K,(K|0)!=0):0){J=c[i+20>>2]|0;K=c[i+24>>2]|0;E=c[i+28>>2]|0;F=c[M+28>>2]|0;H=c[m+28>>2]|0;I=a+24|0;g=a+20|0;switch(c[I>>2]|0){case 1:{Hx(c[g>>2]|0,N,b,d,k,n);g=c[k>>2]|0;if(!g){B=0.0;C=0.0;g=0}else{m=vw(m,g)|0;B=0.0;C=0.0}break}case 2:{g=c[g>>2]|0;B=+h[g+8>>3];C=+h[g>>3];g=0;break}default:{B=0.0;C=0.0;g=0}}z=(L|0)==0;A=a+48|0;y=a+40|0;i=c[n>>2]|0;j=1.0;k=0;a:while(1){x=k+1|0;if(!((k|0)<(e|0)&j>f))break;b:do if((c[I>>2]|0)==4){n=c[T>>2]|0;k=0;while(1){if((k|0)>=(N|0))break b;o=S(k,b)|0;a=0;while(1){if((a|0)>=(b|0))break;h[n+(a+o<<3)>>3]=0.0;a=a+1|0}k=k+1|0}}else{t=0;while(1){if((t|0)>=(N|0))break;v=t+1|0;w=J+(v<<2)|0;p=0.0;u=c[J+(t<<2)>>2]|0;k=-1;while(1){if((u|0)>=(c[w>>2]|0))break;n=K+(u<<2)|0;a=c[n>>2]|0;if((t|0)==(a|0))k=u;else{s=+Xw(d,b,t,a);o=E+(u<<3)|0;r=+h[o>>3];q=F+(u<<3)|0;if(r==0.0)r=0.0;else{if(s==0.0){r=r/+h[H+(u<<3)>>3];a=0;while(1){if((a|0)>=(b|0))break;s=r*((+Pw()+.0001)*.0001);V=d+((S(c[n>>2]|0,b)|0)+a<<3)|0;h[V>>3]=+h[V>>3]+s;a=a+1|0}s=+Xw(d,b,t,c[n>>2]|0);r=+h[o>>3]}r=r/s}h[q>>3]=r;p=p+r}u=u+1|0}if((k|0)<=-1){D=25;break a}h[F+(k<<3)>>3]=-p;t=v}Dw(M,0,d,0,T,0,b)}while(0);c:do if(!z){n=c[T>>2]|0;k=0;while(1){if((k|0)>=(N|0))break c;o=L+(k<<3)|0;q=S(k,b)|0;a=0;while(1){if((a|0)>=(b|0))break;w=a+q|0;V=n+(w<<3)|0;h[V>>3]=+h[o>>3]*+h[R+(w<<3)>>3]+ +h[V>>3];a=a+1|0}k=k+1|0}}while(0);switch(c[I>>2]|0){case 1:{n=c[T>>2]|0;k=0;while(1){if((k|0)>=(N|0))break;o=S(k,b)|0;a=0;while(1){if((a|0)>=(b|0))break;D=a+o|0;V=n+(D<<3)|0;h[V>>3]=+h[i+(D<<3)>>3]+ +h[V>>3];a=a+1|0}k=k+1|0}k=n;p=+h[y>>3];a=c[A>>2]|0;D=51;break}case 2:{Ix(N,b,d,c[T>>2]|0,C,B);k=c[T>>2]|0;p=+h[y>>3];a=c[A>>2]|0;if((c[I>>2]|0)==2)Jx(m,C,b,d,k,p,a,Q);else D=51;break}default:{k=c[T>>2]|0;p=+h[y>>3];a=c[A>>2]|0;D=51}}if((D|0)==51){D=0;+cy(m,b,d,k,p,a,0,Q)}if(c[Q>>2]|0)break;j=+Kx(N,b,d,c[T>>2]|0);j=j/+G(+(+Tw(O,d,d)));B6(d|0,c[T>>2]|0,P|0)|0;k=x}if((D|0)==25)Aa(96350,96132,895,96361);nw(M);if(g){nw(g);nw(m)}}else{nw(M);j=1.0;i=0}l6(R);g=c[T>>2]|0;if(g|0)l6(g);if(i|0)l6(i);l=U;return +j}function Hx(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0,C=0.0;q=c[a+8>>2]|0;B=c[a+12>>2]|0;y=c[a+16>>2]|0;A=c[a+32>>2]|0;z=c[A+20>>2]|0;A=c[A+24>>2]|0;m=a+20|0;s=c[m>>2]|0;n=a+24|0;r=c[n>>2]|0;o=a+28|0;p=c[o>>2]|0;x=+h[a>>3];a=(s|0)!=0;i=(r|0)!=0|(p|0)!=0;a:do if((q|2|0)==3){if(!a){if(i)Aa(96395,96132,692,96412);else{j=0;l=0}while(1){if((j|0)>=(B|0))break;w=c[y+(j<<2)>>2]|0;t=+((c[z+(w+1<<2)>>2]|0)-(c[z+(w<<2)>>2]|0)|0)+1.0;j=j+1|0;l=~~(t*t)+l|0}r=l<<2;s=IK(r)|0;c[m>>2]=s;r=IK(r)|0;c[n>>2]=r;p=IK(l<<3)|0;c[o>>2]=p}u=0;a=0;while(1){if((u|0)>=(B|0))break;o=c[y+(u<<2)>>2]|0;q=z+(o<<2)|0;j=c[q>>2]|0;i=c[A+(j<<2)>>2]|0;j=c[A+(j+1<<2)>>2]|0;b:do if((i|0)!=(j|0)){C=+Ww(e,d,i,j);C=C*C;n=z+(o+1<<2)|0;t=+((c[n>>2]|0)-(c[q>>2]|0)|0);c[s+(a<<2)>>2]=o;c[r+(a<<2)>>2]=o;h[p+(a<<3)>>3]=x/C;k=C*(t*t);t=-(x/(C*t));j=c[q>>2]|0;while(1){a=a+1|0;i=c[n>>2]|0;if((j|0)>=(i|0))break;c[s+(a<<2)>>2]=o;c[r+(a<<2)>>2]=c[A+(j<<2)>>2];h[p+(a<<3)>>3]=t;j=j+1|0}k=x/k;m=c[q>>2]|0;while(1){if((m|0)>=(i|0))break b;l=c[A+(m<<2)>>2]|0;c[s+(a<<2)>>2]=l;c[r+(a<<2)>>2]=o;h[p+(a<<3)>>3]=t;j=c[q>>2]|0;while(1){a=a+1|0;i=c[n>>2]|0;if((j|0)>=(i|0))break;w=c[A+(j<<2)>>2]|0;c[s+(a<<2)>>2]=l;c[r+(a<<2)>>2]=w;h[p+(a<<3)>>3]=k;j=j+1|0}m=m+1|0}}while(0);u=u+1|0}i=Aw(a,b,b,s,r,p,1,8)|0;a=0}else{switch(q|0){case 2:case 4:break;default:{i=0;a=0;break a}}do if(!a)if(i)Aa(96395,96132,734,96412);else{v=B<<2;w=IK(v)|0;c[m>>2]=w;v=IK(v)|0;c[n>>2]=v;u=IK(B<<3)|0;c[o>>2]=u;break}else{u=p;v=r;w=s}while(0);a=IK(S(b<<3,d)|0)|0;j=S(d,b)|0;i=0;while(1){if((i|0)>=(j|0)){o=0;break}h[a+(i<<3)>>3]=0.0;i=i+1|0}while(1){if((o|0)>=(B|0))break;p=c[y+(o<<2)>>2]|0;l=z+(p<<2)|0;m=c[l>>2]|0;k=+Ww(e,d,c[A+(m<<2)>>2]|0,c[A+(m+1<<2)>>2]|0);c[w+(o<<2)>>2]=p;c[v+(o<<2)>>2]=p;k=x/k;h[u+(o<<3)>>3]=k;l=c[l>>2]|0;m=c[z+(p+1<<2)>>2]|0;p=S(p,d)|0;j=l;while(1){if((j|0)>=(m|0))break;n=S(c[A+(j<<2)>>2]|0,d)|0;i=0;while(1){if((i|0)>=(d|0))break;s=a+(i+p<<3)|0;h[s>>3]=+h[e+(i+n<<3)>>3]+ +h[s>>3];i=i+1|0}j=j+1|0}k=k/+(m-l|0);i=0;while(1){if((i|0)>=(d|0))break;s=a+(i+p<<3)|0;h[s>>3]=+h[s>>3]*k;i=i+1|0}o=o+1|0}i=Aw(o,b,b,w,v,u,1,8)|0}while(0);c[f>>2]=i;c[g>>2]=a;return}function Ix(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=+f;var g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0;f=e*f;g=0;a:while(1){if((g|0)>=(a|0))break;l=g+1|0;m=S(g,b)|0;i=l;while(1){if((i|0)==(a|0)){g=l;continue a}e=+Ww(c,b,g,i);k=S(i,b)|0;j=0;while(1){if((j|0)>=(b|0))break;p=j+m|0;n=j+k|0;o=f*((+h[c+(p<<3)>>3]-+h[c+(n<<3)>>3])/e);p=d+(p<<3)|0;h[p>>3]=+h[p>>3]+o;n=d+(n<<3)|0;h[n>>3]=+h[n>>3]-o;j=j+1|0}i=i+1|0}}return}function Jx(a,b,d,e,f,g,h,i){a=a|0;b=+b;d=d|0;e=e|0;f=f|0;g=+g;h=h|0;i=i|0;var j=0,k=0;k=Tx(a,b)|0;j=Yx(a,b)|0;+$x(k,j,c[a>>2]|0,d,e,f,g,h,i);return}function Kx(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0.0,i=0.0,j=0,k=0.0,l=0;f=0;i=0.0;while(1){if((f|0)>=(a|0))break;j=S(f,b)|0;e=0;g=0.0;while(1){if((e|0)>=(b|0))break;l=e+j|0;k=+h[d+(l<<3)>>3]-+h[c+(l<<3)>>3];e=e+1|0;g=g+k*k}f=f+1|0;i=i+ +G(+g)}return +i}function Lx(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=e|0;f=f|0;var g=0,i=0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0.0,D=0.0;A=c[a>>2]|0;p=c[a+20>>2]|0;q=c[a+24>>2]|0;if(!(tw(a,0)|0))Aa(96096,96132,1034,96434);r=A<<3;B=IK(r)|0;j=0;while(1){if((j|0)>=(A|0))break;m=B+(j<<3)|0;h[m>>3]=0.0;n=j+1|0;o=p+(n<<2)|0;l=c[p+(j<<2)>>2]|0;g=0;k=0.0;while(1){if((l|0)>=(c[o>>2]|0))break;i=c[q+(l<<2)>>2]|0;if((j|0)!=(i|0)){k=+Xw(e,b,j,i);k=k+ +h[m>>3];h[m>>3]=k;g=g+1|0}l=l+1|0}if((g|0)<=0){z=11;break}h[m>>3]=k/+(g|0);j=n}if((z|0)==11)Aa(96209,96132,1046,96434);g=IK(56)|0;y=g+32|0;h[y>>3]=1.0;c[g+20>>2]=0;c[g+24>>2]=0;h[g+40>>3]=.01;c[g+48>>2]=~~+G(+(+(c[a>>2]|0)));x=IK(r)|0;c[g+12>>2]=x;i=0;while(1){if((i|0)>=(A|0))break;h[x+(i<<3)>>3]=d;i=i+1|0}do if((A|0)>2)if(!f){i=ey(A,b,e)|0;break}else{i=dy(A,b,e)|0;break}else i=uw(a)|0;while(0);f=g+4|0;c[f>>2]=vw(a,i)|0;nw(i);j=uw(c[f>>2]|0)|0;c[g+8>>2]=j;i=c[f>>2]|0;if((j|0)==0|(i|0)==0){Mx(g);g=0}else{r=c[i+20>>2]|0;q=c[i+24>>2]|0;p=c[i+28>>2]|0;f=c[j+28>>2]|0;v=0.0;w=0.0;m=0;while(1){if((m|0)>=(A|0))break;o=m+1|0;n=r+(o<<2)|0;u=0.0;d=0.0;j=-1;s=v;t=w;l=c[r+(m<<2)>>2]|0;while(1){if((l|0)>=(c[n>>2]|0))break;i=c[q+(l<<2)>>2]|0;if((i|0)==(m|0)){k=u;i=l}else{D=+H(+(+Ww(e,b,m,i)),.6);k=1.0/(D*D);h[p+(l<<3)>>3]=k;C=D*k;a=f+(l<<3)|0;h[a>>3]=C;t=t+C*+Xw(e,b,m,i);C=+h[a>>3];k=u+k;d=d+C;i=j;s=s+D*C}u=k;j=i;l=l+1|0}a=x+(m<<3)|0;k=-(u*+h[a>>3]);h[a>>3]=k;if((j|0)<=-1){z=31;break}h[p+(j<<3)>>3]=k-u;h[f+(j<<3)>>3]=-d;v=s;w=t;m=o}if((z|0)==31)Aa(96455,96132,1112,96434);k=w/v;j=c[r+(A<<2)>>2]|0;i=0;while(1){if((i|0)>=(j|0))break;A=f+(i<<3)|0;h[A>>3]=k*+h[A>>3];i=i+1|0}h[y>>3]=k;l6(B)}return g|0}function Mx(a){a=a|0;Cx(a);return}function Nx(a,b,c){a=a|0;b=b|0;c=c|0;+Gx(a,b,c,50,.001);return}function Ox(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;z=c[a>>2]|0;A=c[a+20>>2]|0;B=c[a+24>>2]|0;if(!(tw(a,0)|0))Aa(96096,96132,1149,96466);v=Ax(a,b,e)|0;w=c[v+28>>2]|0;a=IK(8)|0;x=IK(z<<2)|0;y=IK(z<<3)|0;i=0;while(1){if((i|0)>=(z|0)){o=0;break}l=y+(i<<3)|0;h[l>>3]=0.0;m=i+1|0;n=A+(m<<2)|0;j=c[A+(i<<2)>>2]|0;f=0;k=0.0;while(1){if((j|0)>=(c[n>>2]|0))break;g=c[B+(j<<2)>>2]|0;if((i|0)!=(g|0)){k=+Xw(e,b,i,g);k=k+ +h[l>>3];h[l>>3]=k;f=f+1|0}j=j+1|0}if((f|0)<=0){p=11;break}h[l>>3]=k/+(f|0);i=m}if((p|0)==11)Aa(96209,96132,1167,96466);while(1){if((o|0)>=(z|0)){m=0;f=0;break}c[x+(o<<2)>>2]=-1;o=o+1|0}a:while(1){if((m|0)>=(z|0))break;c[x+(m<<2)>>2]=m;j=A+(m<<2)|0;n=m+1|0;o=A+(n<<2)|0;i=c[j>>2]|0;while(1){g=c[o>>2]|0;if((i|0)>=(g|0))break;g=x+(c[B+(i<<2)>>2]<<2)|0;if((c[g>>2]|0)!=(m|0)){c[g>>2]=m;f=f+1|0}i=i+1|0}l=c[j>>2]|0;while(1){if((l|0)>=(g|0)){m=n;continue a}i=c[B+(l<<2)>>2]|0;j=A+(i+1<<2)|0;i=c[A+(i<<2)>>2]|0;while(1){if((i|0)>=(c[j>>2]|0))break;g=x+(c[B+(i<<2)>>2]<<2)|0;if((c[g>>2]|0)!=(m|0)){c[g>>2]=m;f=f+1|0}i=i+1|0}l=l+1|0;g=c[o>>2]|0}}e=ow(z,z,f,1,1)|0;c[a>>2]=e;if(!e){Px(a);a=0}else{p=c[e+20>>2]|0;q=c[e+24>>2]|0;r=c[e+28>>2]|0;c[p>>2]=0;g=0;f=0;while(1){if((g|0)>=(z|0))break;s=g+z|0;c[x+(g<<2)>>2]=s;l=A+(g<<2)|0;t=g+1|0;u=A+(t<<2)|0;b=y+(g<<3)|0;j=c[l>>2]|0;while(1){g=c[u>>2]|0;if((j|0)>=(g|0))break;g=c[B+(j<<2)>>2]|0;i=x+(g<<2)|0;if((c[i>>2]|0)!=(s|0)){c[i>>2]=s;c[q+(f<<2)>>2]=g;o=r+(f<<3)|0;h[o>>3]=(+h[b>>3]+ +h[y+(g<<3)>>3])*.5;h[o>>3]=+h[w+(j<<3)>>3];f=f+1|0}j=j+1|0}o=c[l>>2]|0;while(1){if((o|0)>=(g|0))break;j=c[B+(o<<2)>>2]|0;l=A+(j+1<<2)|0;m=y+(j<<3)|0;n=w+(o<<3)|0;j=c[A+(j<<2)>>2]|0;while(1){if((j|0)>=(c[l>>2]|0))break;g=B+(j<<2)|0;i=x+(c[g>>2]<<2)|0;if((c[i>>2]|0)!=(s|0)){c[i>>2]=s;c[q+(f<<2)>>2]=c[g>>2];i=r+(f<<3)|0;h[i>>3]=(+h[b>>3]+ +h[m>>3]*2.0+ +h[y+(c[g>>2]<<3)>>3])*.5;h[i>>3]=+h[n>>3]+ +h[w+(j<<3)>>3];f=f+1|0}j=j+1|0}o=o+1|0;g=c[u>>2]|0}c[p+(t<<2)>>2]=f;g=t}c[e+8>>2]=f;A=Vp()|0;B=a+4|0;c[B>>2]=A;B6(A|0,d|0,168)|0;B=c[B>>2]|0;c[B+16>>2]=0;c[B+40>>2]=1;A=B+96|0;h[A>>3]=+h[A>>3]*.5;c[B+80>>2]=20;l6(x);l6(y);nw(v)}return a|0}function Px(a){a=a|0;var b=0;if(a|0){b=c[a>>2]|0;if(b|0)nw(b);a=c[a+4>>2]|0;if(a|0)Wp(a)}return}function Qx(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=l;l=l+16|0;h=g;c[h>>2]=0;pq(e,b,c[a>>2]|0,c[a+4>>2]|0,d,f,h);if(!(c[h>>2]|0)){l=g;return}else Aa(96485,96132,1262,96491)}function Rx(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;c[g>>2]=0;g=c[d+120>>2]|0;a:do switch(g|0){case 5:case 6:{if((c[b>>2]|0)>2){b=Lx(b,a,0.0,f,(g|0)!=6&1)|0;Nx(b,a,f);Mx(b)}break}case 4:{g=0;while(1){if((g|0)==1)break a;i=Ox(b,a,d,f)|0;Qx(i,b,e,a,f);Px(i);g=g+1|0}}case 1:{d=0;h=6;break}case 2:{d=1;h=6;break}case 3:{d=2;h=6;break}default:{}}while(0);b:do if((h|0)==6){g=0;while(1){if((g|0)==1)break b;i=Bx(b,a,.05,f,d)|0;+Gx(i,a,f,50,.001);Cx(i);g=g+1|0}}while(0);return}function Sx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0.0,i=0.0,j=0,k=0;k=l;l=l+16|0;f=k;c[f>>2]=d;j=c[a>>2]|0;a=c[j+8>>2]|0;i=+h[j>>3];j=c[a>>2]|0;Gw(a,b,f,0);a=0;g=0.0;while(1){if((a|0)>=(j|0))break;e=g+ +h[b+(a<<3)>>3];a=a+1|0;g=e}d=c[f>>2]|0;e=+(j|0);a=0;while(1){if((a|0)>=(j|0))break;f=d+(a<<3)|0;h[f>>3]=+h[f>>3]+i*(e*+h[b+(a<<3)>>3]-g);a=a+1|0}l=k;return d|0}function Tx(a,b){a=a|0;b=+b;var d=0,e=0;d=IK(8)|0;e=IK(16)|0;c[d>>2]=e;h[e>>3]=b;c[e+8>>2]=a;c[d+4>>2]=28;return d|0}function Ux(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=l;l=l+16|0;e=f;c[e>>2]=d;Gw(c[a>>2]|0,b,e,0);l=f;return c[e>>2]|0}function Vx(a){a=a|0;var b=0;b=IK(8)|0;c[b>>2]=a;c[b+4>>2]=29;return b|0}function Wx(a){a=a|0;if(a|0)l6(a);return}function Xx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=c[a>>2]|0;e=~~+h[f>>3];f=f+8|0;a=0;while(1){if((a|0)>=(e|0))break;h[d+(a<<3)>>3]=+h[b+(a<<3)>>3]*+h[f+(a<<3)>>3];a=a+1|0}return d|0}function Yx(a,b){a=a|0;b=+b;var d=0,e=0,f=0,g=0,i=0,j=0.0,k=0,l=0,m=0,n=0.0,o=0,p=0,q=0.0;m=c[a>>2]|0;o=c[a+20>>2]|0;p=c[a+24>>2]|0;k=c[a+28>>2]|0;l=IK(8)|0;i=IK((m<<3)+8|0)|0;c[l>>2]=i;h[i>>3]=+(m|0);i=i+8|0;q=+(m+-1|0);j=1.0/q;b=q*b;a=0;a:while(1){if((a|0)>=(m|0))break;e=i+(a<<3)|0;h[e>>3]=j;f=a+1|0;g=c[o+(f<<2)>>2]|0;d=c[o+(a<<2)>>2]|0;while(1){if((d|0)>=(g|0)){a=f;continue a}if((a|0)==(c[p+(d<<2)>>2]|0)?(n=+h[k+(d<<3)>>3],(n>=0.0?n:-n)>0.0):0)h[e>>3]=1.0/(b+n);d=d+1|0}}c[l+4>>2]=30;return l|0}function Zx(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0.0,k=0,l=0,m=0,n=0;i=c[a>>2]|0;k=c[a+20>>2]|0;l=c[a+24>>2]|0;m=c[a+28>>2]|0;n=IK(8)|0;d=IK((c[a>>2]<<3)+8|0)|0;c[n>>2]=d;h[d>>3]=+(i|0);d=d+8|0;a=0;a:while(1){if((a|0)>=(i|0))break;e=d+(a<<3)|0;h[e>>3]=1.0;f=a+1|0;g=c[k+(f<<2)>>2]|0;b=c[k+(a<<2)>>2]|0;while(1){if((b|0)>=(g|0)){a=f;continue a}if((a|0)==(c[l+(b<<2)>>2]|0)?(j=+h[m+(b<<3)>>3],(j>=0.0?j:-j)>0.0):0)h[e>>3]=1.0/j;b=b+1|0}}c[n+4>>2]=30;return n|0}function _x(a){a=a|0;l6(c[a>>2]|0);if(a|0)l6(a);return}function $x(a,b,c,d,e,f,g,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=+g;i=i|0;j=j|0;var k=0.0,l=0,m=0.0,n=0,o=0,p=0;o=c<<3;n=IK(o)|0;o=IK(o)|0;l=0;m=0.0;while(1){if((l|0)<(d|0))j=0;else break;while(1){if((j|0)>=(c|0))break;p=(S(j,d)|0)+l|0;h[n+(j<<3)>>3]=+h[e+(p<<3)>>3];h[o+(j<<3)>>3]=+h[f+(p<<3)>>3];j=j+1|0}k=+ay(a,b,c,n,o,g,i);j=0;while(1){if((j|0)>=(c|0))break;h[f+((S(j,d)|0)+l<<3)>>3]=+h[n+(j<<3)>>3];j=j+1|0}l=l+1|0;m=m+k}l6(n);l6(o);return +m}function ay(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=+g;h=h|0;var i=0,j=0.0,k=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0,r=0,s=0.0,t=0,u=0;r=c[a+4>>2]|0;p=c[b+4>>2]|0;q=d<<3;i=IK(q)|0;k=IK(q)|0;t=IK(q)|0;l=IK(q)|0;k=eb[r&63](a,e,k)|0;m=Sw(d,f,k)|0;o=+(d|0);s=+G(+(+Tw(d,m,m)))/o;n=s*g;m=0;f=t;j=1.0;g=s;while(1){if(!(g>n&(m|0)<(h|0)))break;i=eb[p&63](b,k,i)|0;g=+Tw(d,k,i);if((m|0)>0)Uw(d,i,f,g/j)|0;else B6(f|0,i|0,q|0)|0;u=eb[r&63](a,f,l)|0;j=g/+Tw(d,f,u);Vw(d,e,f,j)|0;t=Vw(d,k,u,-j)|0;m=m+1|0;j=g;l=u;g=+G(+(+Tw(d,t,t)))/o}l6(i);l6(k);l6(f);l6(l);return +g}function by(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0.0,j=0.0,k=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=l;l=l+16|0;B=C;y=c[a+4>>2]|0;z=y<<3;A=IK(z)|0;u=IK(z)|0;v=IK(z)|0;w=c[a+20>>2]|0;x=c[a+24>>2]|0;s=c[a+28>>2]|0;t=c[15715]|0;r=0;while(1){if((r|0)<(b|0))g=0;else break;while(1){if((g|0)>=(y|0)){a=0;break}q=(S(g,b)|0)+r|0;h[A+(g<<3)>>3]=+h[d+(q<<3)>>3];h[v+(g<<3)>>3]=+h[e+(q<<3)>>3];g=g+1|0}while(1){if((a|0)<(f|0))n=0;else{g=0;break}while(1){if((n|0)>=(y|0))break;o=c[w+(n<<2)>>2]|0;p=n+1|0;q=c[w+(p<<2)>>2]|0;m=o;j=0.0;i=0.0;while(1){if((m|0)>=(q|0))break;g=c[x+(m<<2)>>2]|0;k=+h[s+(m<<3)>>3];if((g|0)==(n|0))i=k;else j=j+k*+h[A+(g<<3)>>3];m=m+1|0}if(j==0.0){c[B>>2]=q-o;z4(t,96513,B)|0}h[u+(n<<3)>>3]=(+h[v+(n<<3)>>3]-j)/i;n=p}B6(A|0,u|0,z|0)|0;a=a+1|0}while(1){if((g|0)>=(y|0))break;h[e+((S(g,b)|0)+r<<3)>>3]=+h[A+(g<<3)>>3];g=g+1|0}r=r+1|0}l6(A);l6(u);l6(v);l=C;return e|0}function cy(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;g=g|0;h=h|0;i=i|0;var j=0;j=c[a>>2]|0;c[i>>2]=0;switch(h|0){case 0:{h=Vx(a)|0;i=Zx(a)|0;f=+$x(h,i,j,b,d,e,f,g,0);Wx(h);_x(i);break}case 1:{by(a,b,d,e,g,0)|0;f=0.0;break}default:f=0.0}return +f}function dy(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;o=l;l=l+32|0;k=o;m=o+20|0;f=o+16|0;g=o+12|0;i=o+8|0;h[k>>3]=1.0;j=a<<3;n=IK(j)|0;j=IK(j)|0;b=0;while(1){if((b|0)>=(a|0))break;e=b<<1;h[n+(b<<3)>>3]=+h[d+(e<<3)>>3];h[j+(b<<3)>>3]=+h[d+((e|1)<<3)>>3];b=b+1|0}c[m>>2]=b;if((a|0)>2)d=Wr(n,j,a,i)|0;else{c[i>>2]=0;d=0}e=ow(a,a,1,1,2)|0;b=0;while(1){c[m>>2]=b;if((b|0)>=(c[i>>2]|0))break;p=b<<1;c[f>>2]=c[d+(p<<2)>>2];c[g>>2]=c[d+((p|1)<<2)>>2];Kw(e,1,f,g,k)|0;b=(c[m>>2]|0)+1|0}if((a|0)==2){c[f>>2]=0;c[g>>2]=1;Kw(e,1,f,g,k)|0;b=0}else b=0;while(1){c[m>>2]=b;if((b|0)>=(a|0))break;Kw(e,1,m,m,k)|0;b=(c[m>>2]|0)+1|0}a=zw(e)|0;nw(e);p=sw(a,0)|0;nw(a);l6(d);l6(n);l6(j);l=o;return p|0}function ey(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;g=m+8|0;i=m;h[i>>3]=1.0;k=a<<3;j=IK(k)|0;k=IK(k)|0;e=0;while(1){if((e|0)>=(a|0))break;f=S(e,b)|0;h[j+(e<<3)>>3]=+h[d+(f<<3)>>3];h[k+(e<<3)>>3]=+h[d+(f+1<<3)>>3];e=e+1|0}c[g>>2]=e;e=Xr(j,k,a,0)|0;f=ow(a,a,1,1,2)|0;b=0;while(1){c[g>>2]=b;if((b|0)<(a|0))d=1;else{b=0;break}while(1){if((d|0)>=(c[e+(b*12|0)>>2]|0))break;Kw(f,1,g,(c[e+(b*12|0)+4>>2]|0)+(d<<2)|0,i)|0;d=d+1|0;b=c[g>>2]|0}b=b+1|0}while(1){c[g>>2]=b;if((b|0)>=(a|0))break;Kw(f,1,g,g,i)|0;b=(c[g>>2]|0)+1|0}i=sw(zw(f)|0,0)|0;nw(f);l6(j);l6(k);Yr(e);l=m;return i|0}function fy(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;gy(f,c);hy(a,b,c,f);iy(b,f,d);jy(f);l=e;return}function gy(a,b){a=a|0;b=b|0;c[a>>2]=IK(b<<4)|0;c[a+4>>2]=b;c[a+8>>2]=0;return}function hy(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=l;l=l+64|0;r=D+32|0;u=D+48|0;v=D+16|0;w=D;t=b<<2;A=IK(t)|0;C=IK(t)|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;s=IK(t)|0;t=IK(t)|0;f=0;while(1){if((f|0)>=(b|0))break;c[s+(f<<2)>>2]=f;f=f+1|0}q=b+-1|0;ft(a,s,0,q);f=0;while(1){if((f|0)>=(b|0))break;c[t+(c[s+(f<<2)>>2]<<2)>>2]=f;f=f+1|0}ly(u,a,s,b);f=1;while(1){if((f|0)>=(b|0)){f=0;break}c[A+(c[s+(f<<2)>>2]<<2)>>2]=c[s+(f+-1<<2)>>2];f=f+1|0}while(1){if((f|0)>=(q|0))break;p=f+1|0;c[C+(c[s+(f<<2)>>2]<<2)>>2]=c[s+(p<<2)>>2];f=p}k=e+8|0;m=e+4|0;n=v+4|0;o=w+4|0;p=w+8|0;j=0;while(1){if((j|0)>=(d|0))break;if(!((my(u,v)|0)<<24>>24))break;f=c[k>>2]|0;b=c[m>>2]|0;if((f|0)<(b|0))b=c[e>>2]|0;else{c[m>>2]=b<<1;b=n6(c[e>>2]|0,b<<5)|0;c[e>>2]=b;f=c[k>>2]|0}c[k>>2]=f+1;f=b+(f<<4)|0;c[f>>2]=c[v>>2];c[f+4>>2]=c[v+4>>2];c[f+8>>2]=c[v+8>>2];c[f+12>>2]=c[v+12>>2];f=c[v>>2]|0;b=c[t+(f<<2)>>2]|0;g=c[n>>2]|0;i=c[t+(g<<2)>>2]|0;if((b|0)>0?(x=c[s+(b+-1<<2)>>2]|0,y=C+(x<<2)|0,(c[t+(c[y>>2]<<2)>>2]|0)<(i|0)):0){c[w>>2]=x;c[o>>2]=g;h[p>>3]=+h[a+(g<<3)>>3]-+h[a+(x<<3)>>3];c[r>>2]=c[w>>2];c[r+4>>2]=c[w+4>>2];c[r+8>>2]=c[w+8>>2];c[r+12>>2]=c[w+12>>2];ny(u,r);c[y>>2]=g;c[A+(g<<2)>>2]=x}if((i|0)<(q|0)?(z=c[s+(i+1<<2)>>2]|0,B=A+(z<<2)|0,(c[t+(c[B>>2]<<2)>>2]|0)>(b|0)):0){c[w>>2]=f;c[o>>2]=z;h[p>>3]=+h[a+(z<<3)>>3]-+h[a+(f<<3)>>3];c[r>>2]=c[w>>2];c[r+4>>2]=c[w+4>>2];c[r+8>>2]=c[w+8>>2];c[r+12>>2]=c[w+12>>2];ny(u,r);c[B>>2]=f;c[C+(f<<2)>>2]=z}j=j+1|0}l6(A);l6(C);l6(s);l6(t);oy(u);l=D;return}function iy(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=IK(a<<2)|0;l=b+8|0;i=c[l>>2]|0;j=(i<<1)+a|0;h=j<<2;e=IK(h)|0;h=IK(h)|0;f=0;while(1){if((f|0)>=(a|0))break;c[k+(f<<2)>>2]=1;f=f+1|0}f=0;while(1){if((f|0)>=(i|0)){f=0;break}n=c[b>>2]|0;m=c[n+(f<<4)+4>>2]|0;n=k+(c[n+(f<<4)>>2]<<2)|0;c[n>>2]=(c[n>>2]|0)+1;m=k+(m<<2)|0;c[m>>2]=(c[m>>2]|0)+1;f=f+1|0}while(1){if((f|0)>=(j|0))break;g[h+(f<<2)>>2]=1.0;f=f+1|0}i=IK(a*20|0)|0;c[d>>2]=i;f=0;while(1){if((f|0)>=(a|0))break;c[i+(f*20|0)>>2]=1;c[i+(f*20|0)+8>>2]=h;c[i+(f*20|0)+4>>2]=e;c[e>>2]=f;g[h>>2]=0.0;n=c[k+(f<<2)>>2]|0;h=h+(n<<2)|0;e=e+(n<<2)|0;f=f+1|0}l6(k);while(1){e=c[l>>2]|0;if(!e)break;n=e+-1|0;c[l>>2]=n;m=c[b>>2]|0;ky(i,c[m+(n<<4)>>2]|0,c[m+(n<<4)+4>>2]|0)}return}function jy(a){a=a|0;l6(c[a>>2]|0);return}function ky(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0;f=a+(b*20|0)|0;h=c[f>>2]|0;i=c[a+(b*20|0)+4>>2]|0;e=0;while(1){if((e|0)>=(h|0)){j=4;break}if((c[i+(e<<2)>>2]|0)==(d|0))break;else e=e+1|0}if((j|0)==4?(c[f>>2]=h+1,c[i+(h<<2)>>2]=d,i=c[a+(d*20|0)+4>>2]|0,h=a+(d*20|0)|0,j=c[h>>2]|0,c[h>>2]=j+1,c[i+(j<<2)>>2]=b,c[a+8>>2]|0):0){j=c[a+(b*20|0)+8>>2]|0;g[j>>2]=+g[j>>2]+-1.0;j=c[a+(d*20|0)+8>>2]|0;g[j>>2]=+g[j>>2]+-1.0}return}function ly(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0.0,k=0,l=0;f=e+-1|0;c[a+4>>2]=f;c[a+8>>2]=f;c[a>>2]=IK(f<<4)|0;e=0;while(1){if((e|0)>=(f|0))break;l=c[d+(e<<2)>>2]|0;g=e+1|0;k=c[d+(g<<2)>>2]|0;j=+h[b+(k<<3)>>3]-+h[b+(l<<3)>>3];i=c[a>>2]|0;c[i+(e<<4)>>2]=l;c[i+(e<<4)+4>>2]=k;h[i+(e<<4)+8>>3]=j;e=g}e=(f|0)/2|0;while(1){if((e|0)<=-1)break;py(a,e);e=e+-1|0}return}function my(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+4|0;if(!(c[d>>2]|0))a=0;else{e=c[a>>2]|0;c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[b+12>>2]=c[e+12>>2];b=c[a>>2]|0;e=b+((c[d>>2]|0)+-1<<4)|0;c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[b+12>>2]=c[e+12>>2];c[d>>2]=(c[d>>2]|0)+-1;py(a,0);a=1}return a|0}function ny(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,g=0.0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;k=m;i=a+4|0;j=c[i>>2]|0;d=a+8|0;if((j|0)==(c[d>>2]|0)){c[d>>2]=j<<1;e=n6(c[a>>2]|0,j<<5)|0;c[a>>2]=e;d=c[i>>2]|0}else{d=j;e=c[a>>2]|0}c[i>>2]=d+1;e=e+(j<<4)|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];e=j;while(1){if((e|0)<=0)break;d=c[a>>2]|0;f=+h[d+(e<<4)+8>>3];b=e>>>1;g=+h[d+(b<<4)+8>>3];if(!(f<g)){if(!(f==g))break;if(!((U4()|0)&1))break;d=c[a>>2]|0}j=d+(e<<4)|0;c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];i=d+(b<<4)|0;c[j>>2]=c[i>>2];c[j+4>>2]=c[i+4>>2];c[j+8>>2]=c[i+8>>2];c[j+12>>2]=c[i+12>>2];j=(c[a>>2]|0)+(b<<4)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];e=b}l=m;return}function oy(a){a=a|0;l6(c[a>>2]|0);return}function py(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,g=0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+16|0;i=m;j=a+4|0;while(1){d=b<<1;g=d|1;if((d|0)<(c[j>>2]|0)){n=c[a>>2]|0;e=+h[n+(d<<4)+8>>3];f=+h[n+(b<<4)+8>>3];if(!(e<f))if(!(e==f?((U4()|0)&1|0)!=0:0))k=6}else k=6;if((k|0)==6){k=0;d=b}do if((g|0)<(c[j>>2]|0)){n=c[a>>2]|0;e=+h[n+(g<<4)+8>>3];f=+h[n+(d<<4)+8>>3];if(!(e<f)){if(!(e==f))break;if(!((U4()|0)&1))break}d=g}while(0);if((d|0)==(b|0))break;g=c[a>>2]|0;n=g+(d<<4)|0;c[i>>2]=c[n>>2];c[i+4>>2]=c[n+4>>2];c[i+8>>2]=c[n+8>>2];c[i+12>>2]=c[n+12>>2];g=g+(b<<4)|0;c[n>>2]=c[g>>2];c[n+4>>2]=c[g+4>>2];c[n+8>>2]=c[g+8>>2];c[n+12>>2]=c[g+12>>2];n=(c[a>>2]|0)+(b<<4)|0;c[n>>2]=c[i>>2];c[n+4>>2]=c[i+4>>2];c[n+8>>2]=c[i+8>>2];c[n+12>>2]=c[i+12>>2];b=d}l=m;return}function qy(a,b,d,e,f,g,i,j){a=a|0;b=b|0;d=+d;e=+e;f=f|0;g=g|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0.0;l=(f|0)!=0;if(!l){f=IK(b<<3)|0;if(!(gu(a,b,f,b)|0))m=3;else{a=1;m=17}}else m=3;if((m|0)==3){k=HK(b<<2)|0;c[g>>2]=k;a=0;while(1){if((a|0)>=(b|0))break;c[k+(a<<2)>>2]=a;a=a+1|0}a=b+-1|0;ft(f,k,0,a);n=+h[f+(c[k>>2]<<3)>>3];e=(+h[f+(c[k+(a<<2)>>2]<<3)>>3]-n)*e/+(a|0);e=e<d?d:e;a=0;g=1;d=n;while(1){if((g|0)>=(b|0))break;n=+h[f+(c[k+(g<<2)>>2]<<3)>>3];a=(n-d>e&1)+a|0;g=g+1|0;d=n}c[j>>2]=a;a:do if(!a){k=IK(4)|0;c[i>>2]=k;c[k>>2]=b}else{j=IK(a<<2)|0;c[i>>2]=j;a=0;g=1;while(1){if((g|0)>=(b|0))break a;if(+h[f+(c[k+(g<<2)>>2]<<3)>>3]-+h[f+(c[k+(g+-1<<2)>>2]<<3)>>3]>e){c[j+(a<<2)>>2]=g;a=a+1|0}g=g+1|0}}while(0);if(l)a=0;else{a=0;m=17}}if((m|0)==17)l6(f);return a|0}function ry(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,g=0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=c[46972]|0;if(d|0)sn(d);c[46972]=rn(b,b,0.0)|0;d=c[46973]|0;if(d|0)l6(d);c[46973]=HK(b<<2)|0;d=c[46974]|0;if(d|0)l6(d);n=HK(b<<3)|0;c[46974]=n;o=c[46972]|0;p=c[46973]|0;i=0;while(1){if((i|0)>=(b|0)){e=10;break}e=a+(i<<2)|0;g=o+(i<<2)|0;f=0.0;d=0;while(1){if((d|0)==(b|0))break;j=+h[(c[e>>2]|0)+(d<<3)>>3];h[(c[g>>2]|0)+(d<<3)>>3]=j;j=+F(+j);f=f<j?j:f;d=d+1|0}d=n+(i<<3)|0;if(!(f!=0.0)){e=15;break}h[d>>3]=1.0/f;c[p+(i<<2)>>2]=i;i=i+1|0}a:do if((e|0)==10){m=b+-1|0;d=0;l=0;b:while(1){if((l|0)<(m|0)){e=l;f=0.0}else break;while(1){if((e|0)>=(b|0))break;k=c[p+(e<<2)>>2]|0;j=+F(+(+h[(c[o+(k<<2)>>2]|0)+(l<<3)>>3]));j=j*+h[n+(k<<3)>>3];k=f<j;a=k?e:d;e=e+1|0;d=a;f=k?j:f}if(f==0.0){d=0;break a}e=p+(l<<2)|0;g=p+(d<<2)|0;if((d|0)!=(l|0)){k=c[e>>2]|0;c[e>>2]=c[g>>2];c[g>>2]=k}i=c[o+(c[e>>2]<<2)>>2]|0;f=+h[i+(l<<3)>>3];k=l+1|0;g=k;while(1){if((g|0)>=(b|0)){l=k;continue b}a=c[o+(c[p+(g<<2)>>2]<<2)>>2]|0;e=a+(l<<3)|0;j=+h[e>>3]/f;h[e>>3]=j;c:do if(j!=0.0){e=k;while(1){if((e|0)>=(b|0))break c;q=a+(e<<3)|0;h[q>>3]=+h[q>>3]-j*+h[i+(e<<3)>>3];e=e+1|0}}while(0);g=g+1|0}}d=+h[(c[o+(c[p+(m<<2)>>2]<<2)>>2]|0)+(m<<3)>>3]!=0.0&1}else if((e|0)==15){h[d>>3]=0.0;d=0}while(0);return d|0}function sy(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0,i=0,j=0,k=0,l=0;k=c[46973]|0;l=c[46972]|0;j=0;while(1){if((j|0)>=(d|0)){e=d;break}g=c[k+(j<<2)>>2]|0;i=l+(g<<2)|0;f=0.0;e=0;while(1){if((e|0)==(j|0))break;f=f+ +h[(c[i>>2]|0)+(e<<3)>>3]*+h[a+(e<<3)>>3];e=e+1|0}h[a+(j<<3)>>3]=+h[b+(g<<3)>>3]-f;j=j+1|0}while(1){b=e+-1|0;if((e|0)<=0)break;g=c[l+(c[k+(b<<2)>>2]<<2)>>2]|0;f=0.0;while(1){if((e|0)>=(d|0))break;f=f+ +h[g+(e<<3)>>3]*+h[a+(e<<3)>>3];e=e+1|0}e=a+(b<<3)|0;h[e>>3]=(+h[e>>3]-f)/+h[g+(b<<3)>>3];e=b}return}function ty(a){a=a|0;var b=0;b=IK(8)|0;c[b>>2]=a;c[b+4>>2]=0;return b|0}function uy(a,b){a=a|0;b=b|0;var d=0,e=0;if(a|0)do{d=a;a=c[a+4>>2]|0;e=c[d>>2]|0;if(e|0)db[b&127](e);l6(d)}while((a|0)!=0);return}function vy(a,b){a=a|0;b=b|0;b=ty(b)|0;c[b+4>>2]=a;return b|0}function wy(a){a=a|0;return c[a>>2]|0}function xy(a){a=a|0;return c[a+4>>2]|0}function yy(a){a=a|0;var b=0;b=IK(12)|0;c[b>>2]=a;c[b+4>>2]=0;c[b+8>>2]=0;return b|0}function zy(a,b){a=a|0;b=b|0;var d=0,e=0;if(a|0)do{d=a;a=c[a+4>>2]|0;e=c[d>>2]|0;if(e|0)db[b&127](e);l6(d)}while((a|0)!=0);return}function Ay(a,b){a=a|0;b=b|0;b=yy(b)|0;if(a|0){c[b+4>>2]=a;c[a+8>>2]=b}return b|0}function By(a){a=a|0;return c[a>>2]|0}function Cy(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;if(a|0){e=c[a+4>>2]|0;f=c[a+8>>2]|0;g=c[a>>2]|0;if(g|0)db[b&127](g);l6(a);if(e|0)c[e+8>>2]=f;c[(f|0?f+4|0:d)>>2]=e}return}function Dy(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;return}function Ey(a){a=a|0;var b=0;b=HK(64)|0;Dy(b+36|0);c[b+8>>2]=a;return b|0}function Fy(a){a=a|0;if(a|0){$y(c[a+32>>2]|0);l6(a)}return}function Gy(a){a=a|0;return qB(c[a+8>>2]|0)|0}function Hy(a,b){a=a|0;b=b|0;var d=0,e=0;c[b+4>>2]=0;d=a+4|0;e=c[d>>2]|0;c[((e|0)==0?a:e+4|0)>>2]=b;c[d>>2]=b;return}function Iy(a,b){a=a|0;b=b|0;var d=0;d=c[a>>2]|0;if(!d){c[a>>2]=b;a=a+4|0}else c[b+4>>2]=d;c[a>>2]=b;return}function Jy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;Ky(a,b);j=c[b>>2]|0;h=c[j+4>>2]|0;while(1){if(!h)break;k=c[h+8>>2]|0;i=gC(k)|0;d=c[(c[i+16>>2]|0)+112>>2]|0;a=c[d+16+4>>2]|0;d=c[d+8>>2]|0;f=i;i=hC(k,i)|0;while(1){if(!i)break;e=c[(c[i+16>>2]|0)+112>>2]|0;g=c[e+16+4>>2]|0;if((g|0)<(a|0)){f=i;d=c[e+8>>2]|0;a=g}i=hC(k,i)|0}i=c[(c[d+16>>2]|0)+112>>2]|0;k=i+4|0;c[k>>2]=c[k>>2]|8;c[h>>2]=f;k=c[h+4>>2]|0;Hy((c[i+12>>2]|0)+36|0,h);h=k}Dy(b);return j|0}function Ky(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+16|0;i=j;h=j+8|0;f=c[d+24>>2]|0;if(!((f|0)!=0?(e=qC(b,f,0)|0,(e|0)!=0):0))g=3;a:do if((g|0)==3){f=d+20|0;b:do if(c[f>>2]|0){e=gC(b)|0;while(1){if(!e)break b;if((aP(c[c[(c[e+16>>2]|0)+112>>2]>>2]|0,c[f>>2]|0,0)|0)<<24>>24)break a;e=hC(b,e)|0}}while(0);e=gC(b)|0}while(0);if(a[195234]|0){g=c[15715]|0;c[i>>2]=HB(e)|0;z4(g,96524,i)|0}c[h+4>>2]=0;c[h>>2]=0;Ly(b,e,d,1,h);l=j;return}function Ly(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=d+8|0;j=c[l>>2]|0;c[l>>2]=j+1;l=b+16|0;k=c[(c[l>>2]|0)+112>>2]|0;c[k+16+4>>2]=j;c[k+24>>2]=j;k=(e|0)!=0;j=ZA(a,b)|0;while(1){if(!j)break;e=c[j>>2]&3;g=c[((e|0)==2?j:j+-48|0)+40>>2]|0;h=c[(c[j+16>>2]|0)+120>>2]|0;i=(c[h>>2]|0)!=0;if((g|0)==(b|0)){e=c[((e|0)==3?j:j+48|0)+40>>2]|0;if(i)g=e;else{c[h>>2]=-1;g=e}}else if(!i)c[h>>2]=1;e=g+16|0;h=c[(c[e>>2]|0)+112>>2]|0;i=c[h+16+4>>2]|0;do if(!i){c[h+8>>2]=b;My(f,j);Ly(a,g,d,0,f);i=c[(c[l>>2]|0)+112>>2]|0;m=i+24|0;h=(c[(c[e>>2]|0)+112>>2]|0)+24|0;c[m>>2]=c[(c[(c[((c[m>>2]|0)<(c[h>>2]|0)?b:g)+16>>2]|0)+112>>2]|0)+24>>2];if((c[h>>2]|0)>=(c[i+16+4>>2]|0)){e=0;do{h=Ny(f)|0;g=(c[c[(c[h+16>>2]|0)+120>>2]>>2]|0)==1;g=c[((c[h>>2]&3|0)==((g?2:3)|0)?h:h+((g?-1:1)*48|0)|0)+40>>2]|0;if(!(c[(c[(c[g+16>>2]|0)+112>>2]|0)+12>>2]|0)){if(!e)e=Oy(a,d)|0;Py(e,g)}}while((h|0)!=(j|0));if(e|0){if((c[(c[(c[l>>2]|0)+112>>2]|0)+12>>2]|0)==0?(Gy(e)|0)>1:0)Py(e,b);if(k?(c[(c[(c[l>>2]|0)+112>>2]|0)+12>>2]|0)==(e|0):0){Iy(d,e);break}Hy(d,e)}}}else{e=c[(c[l>>2]|0)+112>>2]|0;if((c[e+8>>2]|0)!=(g|0)){m=e+24|0;h=c[m>>2]|0;c[m>>2]=(h|0)<(i|0)?h:i}}while(0);j=_A(a,j,b)|0}if(k?(c[(c[(c[l>>2]|0)+112>>2]|0)+12>>2]|0)==0:0){m=Oy(a,d)|0;Py(m,b);Iy(d,m)}return}function My(a,b){a=a|0;b=b|0;c[(c[(c[b+16>>2]|0)+120>>2]|0)+4>>2]=c[a>>2];c[a>>2]=b;b=a+4|0;c[b>>2]=(c[b>>2]|0)+1;return}function Ny(a){a=a|0;var b=0,d=0,e=0;b=c[a>>2]|0;if(!b)Aa(138697,96555,65,96567);d=a+4|0;e=c[d>>2]|0;if((e|0)>0){c[a>>2]=c[(c[(c[b+16>>2]|0)+120>>2]|0)+4>>2];c[d>>2]=e+-1;return b|0}else Aa(96545,96555,61,96567);return 0}function Oy(a,b){a=a|0;b=b|0;return Ey(Qy(a,b)|0)|0}function Py(a,b){a=a|0;b=b|0;lC(c[a+8>>2]|0,b,1)|0;c[(c[(c[b+16>>2]|0)+112>>2]|0)+12>>2]=a;return}function Qy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+144|0;f=d;e=d+8|0;g=b+12|0;b=c[g>>2]|0;c[g>>2]=b+1;c[f>>2]=b;i2(e,96535,f)|0;b=LD(a,e,1)|0;RC(b,137786,280,1)|0;l=d;return b|0}function Ry(a){a=a|0;var b=0,d=0;b=c[a+36>>2]|0;while(1){if(!b)break;d=c[b+4>>2]|0;Ry(b);b=d}Fy(a);return}function Sy(a,b,c){a=a|0;b=b|0;c=c|0;Ty(a,b,+h[c+32>>3]);return}function Ty(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,g=0,i=0;e=b+36|0;f=0;while(1){e=c[e>>2]|0;if(!e)break;Ty(a,e,d);e=e+4|0;f=f+1|0}e=jz(a,b,d)|0;c[b+32>>2]=e;a=gz(e)|0;if((f|0)>0)d=+Uy(f,a,e,b,d);else d=3.141592653589793;if((((a|0)==1?(g=c[b>>2]|0,g|0):0)?c[(c[(c[g+16>>2]|0)+112>>2]|0)+8>>2]|0:0)?(i=b+48|0,h[i>>3]=d,d<0.0):0)h[i>>3]=d+6.283185307179586;return}function Uy(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0.0,i=0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+48|0;t=v;u=HK(a*56|0)|0;c[t+40>>2]=c[e+36>>2];p=e+16|0;j=+h[p>>3];q=t+8|0;h[q>>3]=j;h[t>>3]=j;c[t+44>>2]=c[e>>2];j=6.283185307179586/+(b|0);h[t+16>>3]=j;r=t+24|0;h[r>>3]=-1.0;s=t+32|0;h[s>>3]=-1.0;k=0;o=0;g=0.0;while(1){i=c[d>>2]|0;if(!i)break;d=c[i>>2]|0;if(!(c[(c[(c[d+16>>2]|0)+112>>2]|0)+4>>2]&8))d=o;else{n=u+(o*56|0)|0;c[n>>2]=d;h[u+(o*56|0)+8>>3]=+(k|0)*j;d=o+1|0;g=+Vy(n,t,f)}k=k+1|0;o=d;d=i+4|0}a:do if((o|0)==1){h[u+40>>3]=1.0;d=0}else{n=u+8|0;if((o|0)==2){j=+h[u+64>>3]-+h[n>>3];Wy(u,u+56|0,j>3.141592653589793?6.283185307179586-j:j);d=0;break}else{m=u;d=0}while(1){if((d|0)>=(o|0)){d=0;break a}d=d+1|0;k=m+56|0;j=+h[m+8>>3];if((d|0)==(o|0)){i=u;j=+h[n>>3]-j+6.283185307179586}else{i=k;j=+h[m+64>>3]-j}Wy(m,i,j);m=k}}while(0);while(1){if((d|0)>=(o|0))break;Xy(u+(d*56|0)|0,t,b,f);d=d+1|0}l6(u);if((a|0)==1){f=f*.5+g;Yy(e,-f,0.0,0.0);h[p>>3]=f+ +h[p>>3];u=e+56|0;c[u>>2]=c[u>>2]|1}else h[p>>3]=+h[q>>3];l=v;return +((+h[r>>3]+ +h[s>>3])*.5+-3.141592653589793)}function Vy(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0.0,g=0.0,i=0,j=0,k=0.0;i=0;f=0.0;g=0.0;e=b+40|0;while(1){j=c[e>>2]|0;if(!j)break;e=c[j>>2]|0;if(!e)e=0;else e=c[(c[(c[e+16>>2]|0)+112>>2]|0)+8>>2]|0;if((e|0)==(c[a>>2]|0)){k=+h[j+16>>3];e=i+1|0;f=f+(k*2.0+d);g=g<k?k:g}else e=i;i=e;e=j+4|0}h[a+32>>3]=f;c[a+48>>2]=i;h[a+16>>3]=g+(+h[b>>3]+d);h[a+24>>3]=g;return +g}function Wy(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0,e=0.0;e=+h[b+16>>3];d=+h[a+16>>3];c=(+h[a+32>>3]*e+ +h[b+32>>3]*d)/(e*(c*2.0*d));c=c<1.0?1.0:c;a=a+40|0;if(c>+h[a>>3])h[a>>3]=c;a=b+40|0;if(c>+h[a>>3])h[a>>3]=c;return}function Xy(a,b,d,e){a=a|0;b=b|0;d=d|0;e=+e;var f=0.0,g=0.0,i=0.0,j=0,k=0.0,l=0.0,m=0,n=0,o=0.0,p=0.0,q=0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0,C=0.0,D=0.0;y=b+8|0;x=+h[y>>3];z=b+24|0;l=+h[z>>3];A=b+32|0;k=+h[A>>3];f=+h[a+40>>3]*+h[a+16>>3];u=(d|0)==1;v=a+48|0;w=a+8|0;g=+h[a+32>>3];if(u){i=g/6.283185307179586;i=f>i?f:i;f=i*6.283185307179586-g;if(f>0.0){e=f/+(c[v>>2]|0)+e;g=0.0;f=i}else{g=0.0;f=i}}else g=+h[w>>3]-g/(f*2.0);s=f+ +h[a+24>>3];t=s>x;p=e/f;q=((c[v>>2]|0)+1|0)/2|0;r=p*.5;m=b+40|0;i=k;e=l;n=0;o=0.0;while(1){m=c[m>>2]|0;if(!m)break;j=c[m>>2]|0;if(!j)j=0;else j=c[(c[(c[j+16>>2]|0)+112>>2]|0)+8>>2]|0;if((j|0)==(c[a>>2]|0)?(gz(c[m+32>>2]|0)|0)>=1:0){k=+h[m+16>>3]/f;l=r+k;do if(!u)if((c[v>>2]|0)==1){g=+h[w>>3];break}else{g=g+l;break}else{if(g!=0.0)g=(c[v>>2]|0)==2?3.141592653589793:g+k;i=g;e=e<0.0?g:e}while(0);D=f*+I(+g);C=f*+J(+g);Yy(m,D,C,+Zy(m,D,C,g));g=(u?p+k:l)+g;n=n+1|0;j=n;k=(n|0)==(q|0)?g:o}else{j=n;k=o}m=m+4|0;n=j;o=k}f=t?s:x;if((d|0)>1?(B=c[a>>2]|0,(B|0)==(c[b+44>>2]|0)):0)h[(c[(c[B+16>>2]|0)+112>>2]|0)+24>>3]=o;h[y>>3]=f;h[z>>3]=e;h[A>>3]=i;return}function Yy(a,b,d,e){a=a|0;b=+b;d=+d;e=+e;var f=0,g=0.0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0.0,p=0.0;m=c[a+8>>2]|0;n=e!=0.0;f=gC(m)|0;while(1){if(!f)break;k=c[(c[f+16>>2]|0)+132>>2]|0;l=k+8|0;i=+h[k>>3];g=+h[l>>3];if(n){p=+I(+e);o=+J(+e);j=i*p-g*o;g=g*p+i*o}else j=i;h[k>>3]=j+b;h[l>>3]=g+d;f=hC(m,f)|0}f=a+36|0;while(1){f=c[f>>2]|0;if(!f)break;Yy(f,b,d,e);f=f+4|0}return}function Zy(a,b,d,e){a=a|0;b=+b;d=+d;e=+e;var f=0.0,g=0,i=0.0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0;n=c[a+8>>2]|0;f=+h[a+48>>3];do if(!(f>=0.0)){if((gz(c[a+32>>2]|0)|0)==2){f=e+-1.5707963267948966;break}m=c[a>>2]|0;o=m+16|0;l=c[(c[o>>2]|0)+132>>2]|0;k=+h[l>>3]+b;f=+h[l+8>>3]+d;f=k*k+f*f;l=gC(n)|0;g=m;while(1){if(!l)break;if((l|0)!=(m|0)?(p=c[(c[l+16>>2]|0)+132>>2]|0,k=+h[p>>3]+b,i=+h[p+8>>3]+d,i=k*k+i*i,i<f):0){f=i;g=l}l=hC(n,l)|0}if((m|0)!=(g|0)){j=+h[a+24>>3];k=+h[a+16>>3]-j;g=c[o>>2]|0;p=c[g+132>>2]|0;f=+h[p>>3];i=+h[p+8>>3];if(f>-k?(c[a+56>>2]&1|0)!=0:0){i=+O(+i,+(k+f));f=+I(+i);f=1.5707963267948966-i-+M(+(f*((k-j/f)/+G(+(b*b+d*d)))))+e;break}else{f=3.141592653589793-+O(+i,+f);f=f-+h[(c[g+112>>2]|0)+24>>3]+e;f=f>6.283185307179586?f+-6.283185307179586:f;break}}else f=0.0}else{f=3.141592653589793-f+e;f=f<0.0?f+6.283185307179586:f}while(0);return +f}function _y(){return HK(12)|0}function $y(a){a=a|0;var b=0,d=0;if(a|0){b=c[a>>2]|0;while(1){if(!b)break;d=c[b+4>>2]|0;l6(b);b=d}l6(a)}return}function az(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=bz(d)|0;h=a+8|0;c[h>>2]=(c[h>>2]|0)+1;h=a+4|0;i=c[h>>2]|0;d=(b|0)==0?i:b;b=d+4|0;e=g+4|0;f=g+8|0;if((d|0)==(i|0)){c[(i|0?b:a)>>2]=g;c[f>>2]=i;c[e>>2]=0;c[h>>2]=g}else{a=c[b>>2]|0;c[b>>2]=g;c[f>>2]=d;c[a+8>>2]=g;c[e>>2]=a}return}function bz(a){a=a|0;var b=0;b=HK(12)|0;c[b>>2]=a;return b|0}function cz(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=c[a>>2]|0;b=d;while(1){if(!b)break;g=b+4|0;e=c[g>>2]|0;f=b+8|0;c[g>>2]=c[f>>2];c[f>>2]=e;b=e}f=a+4|0;g=c[f>>2]|0;c[f>>2]=d;c[a>>2]=g;return a|0}function dz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a>>2]|0;if((d|0)!=(b|0)){f=b+8|0;e=c[f>>2]|0;c[a>>2]=b;c[f>>2]=0;b=a+4|0;a=c[b>>2]|0;c[a+4>>2]=d;c[d+8>>2]=a;c[b>>2]=e;c[e+4>>2]=0}return}function ez(a){a=a|0;var b=0,d=0,e=0;d=_y()|0;e=d+4|0;b=0;while(1){a=c[a>>2]|0;if(!a)break;az(d,b,c[a>>2]|0);b=c[e>>2]|0;a=a+4|0}return d|0}function fz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=c[a>>2]|0;while(1){if(!m){k=4;break}l=m+4|0;f=c[l>>2]|0;if((c[m>>2]|0)==(b|0))break;else m=f}if((k|0)==4)Aa(96571,96578,217,96589);h=a+4|0;j=m+8|0;i=c[j>>2]|0;c[(i|0?i+4|0:a)>>2]=f;c[(f|0?f+8|0:h)>>2]=i;i=c[a>>2]|0;f=0;g=i;while(1){if(!g)break;b=g+4|0;if((c[g>>2]|0)==(d|0)){k=8;break}f=g;g=c[b>>2]|0}if((k|0)==8){do if(!e){b=g+8|0;if((g|0)==(i|0)){c[a>>2]=m;c[l>>2]=i;c[j>>2]=0;break}else{c[f+4>>2]=m;c[j>>2]=f;c[l>>2]=g;break}}else if((g|0)==(c[h>>2]|0)){c[h>>2]=m;c[l>>2]=0;c[j>>2]=g;break}else{c[j>>2]=g;c[l>>2]=c[b>>2];c[(c[b>>2]|0)+8>>2]=m;break}while(0);c[b>>2]=m}return}function gz(a){a=a|0;return c[a+8>>2]|0}function hz(a,b){a=a|0;b=b|0;iz(a,cz(b)|0);l6(b);return}function iz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[b>>2]|0;if(d|0){e=a+4|0;f=c[e>>2]|0;c[f+4>>2]=d;c[d+8>>2]=f;c[e>>2]=c[b+4>>2];d=a+8|0;c[d>>2]=(c[d>>2]|0)+(c[b+8>>2]|0)}return}function jz(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0.0,g=0.0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0.0,p=0;m=c[b+8>>2]|0;kz(a,b);l=lz(m)|0;a=nz(mz(l)|0)|0;oz(m,a);m=pz(a,m)|0;a=gz(m)|0;j=+qz(m);k=(a|0)==1;f=+(a|0);i=f*(j+d)/6.283185307179586;g=k?0.0:i;a=m;while(1){a=c[a>>2]|0;if(!a)break;if(c[(c[(c[(c[a>>2]|0)+16>>2]|0)+112>>2]|0)+4>>2]&8|0){e=4;break}a=a+4|0}if((e|0)==4)dz(m,a);d=6.283185307179586/f;e=0;a=m;while(1){a=c[a>>2]|0;if(!a)break;n=c[(c[a>>2]|0)+16>>2]|0;p=c[n+112>>2]|0;c[p+16>>2]=e;h[p+24>>3]=0.0;f=d*+(e|0);o=g*+I(+f);n=c[n+132>>2]|0;h[n>>3]=o;h[n+8>>3]=g*+J(+f);e=e+1|0;a=a+4|0}o=k?j*.5:i;h[b+16>>3]=o;h[b+24>>3]=o;h[b+48>>3]=-1.0;pB(l)|0;return m|0}function kz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=c[b+8>>2]|0;d=gC(f)|0;while(1){if(!d)break;e=UA(a,d)|0;while(1){if(!e)break;if((c[(c[(c[(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0)+12>>2]|0)==(b|0))jB(f,e,1)|0;e=WA(a,e)|0}d=hC(f,d)|0}return}function lz(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;g=k;f=wz(a,g)|0;g=c[g>>2]|0;i=qB(g)|0;h=xz(g)|0;i=i+-3|0;e=0;while(1){if((e|0)>=(i|0))break;j=Gz(h)|0;d=ZA(g,j)|0;while(1){if(!d)break;b=c[d>>2]&3;a=c[((b|0)==2?d:d+-48|0)+40>>2]|0;if((j|0)==(a|0))a=c[((b|0)==3?d:d+48|0)+40>>2]|0;Fz(h,a);d=_A(g,d,j)|0}yz(g,j,f);d=ZA(g,j)|0;while(1){if(!d)break;b=c[d>>2]&3;a=c[((b|0)==2?d:d+-48|0)+40>>2]|0;if((j|0)==(a|0))a=c[((b|0)==3?d:d+48|0)+40>>2]|0;b=(c[a+16>>2]|0)+236|0;c[b>>2]=(c[b>>2]|0)+-1;Ez(h,a);d=_A(g,d,j)|0}tC(g,j)|0;e=e+1|0}pB(g)|0;Dz(h);l=k;return f|0}function mz(a){a=a|0;var b=0,d=0,e=0,f=0;f=l;l=l+144|0;b=f;e=f+8|0;d=c[46975]|0;c[46975]=d+1;c[b>>2]=d;i2(e,96604,b)|0;e=LD(a,e,1)|0;RC(e,137786,280,1)|0;b=gC(a)|0;while(1){if(!b)break;lC(e,b,1)|0;d=c[(c[b+16>>2]|0)+112>>2]|0;c[d+16+12>>2]=0;c[d+32>>2]=0;d=d+4|0;c[d>>2]=c[d>>2]&-2;b=hC(a,b)|0}b=gC(a)|0;while(1){if(!b)break;d=c[(c[b+16>>2]|0)+112>>2]|0;if(!(c[d+4>>2]&1)){c[d+16>>2]=0;vz(a,b,e)}b=hC(a,b)|0}l=f;return e|0}function nz(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;if((qB(a)|0)!=1){d=gC(a)|0;while(1){if(!d)break;b=0;e=ZA(a,d)|0;while(1){if(!e)break;b=b+1|0;e=_A(a,e,d)|0}if((b|0)==1)uz(d,d,0,0);d=hC(a,d)|0}b=0;f=0;d=gC(a)|0;while(1){if(!d)break;g=c[(c[d+16>>2]|0)+112>>2]|0;g=(c[g+32>>2]|0)+(c[g+16+12>>2]|0)|0;e=(g|0)>(b|0);b=e?g:b;f=e?d:f;d=hC(a,d)|0}b=_y()|0;e=f+16|0;d=(c[(c[e>>2]|0)+112>>2]|0)+16+4|0;while(1){d=c[d>>2]|0;if((d|0)==(f|0))break;az(b,0,d);d=c[(c[d+16>>2]|0)+112>>2]|0;g=d+4|0;c[g>>2]=c[g>>2]|16;d=d+16|0}az(b,0,f);g=c[(c[e>>2]|0)+112>>2]|0;a=g+4|0;c[a>>2]=c[a>>2]|16;if(c[g+32>>2]|0){a=_y()|0;d=(c[(c[e>>2]|0)+112>>2]|0)+24|0;while(1){d=c[d>>2]|0;if((d|0)==(f|0))break;az(a,0,d);d=c[(c[d+16>>2]|0)+112>>2]|0;g=d+4|0;c[g>>2]=c[g>>2]|16;d=d+16|0}hz(b,a)}}else{b=_y()|0;g=gC(a)|0;az(b,0,g);g=(c[(c[g+16>>2]|0)+112>>2]|0)+4|0;c[g>>2]=c[g>>2]|16}return b|0}function oz(a,b){a=a|0;b=b|0;var d=0;d=gC(a)|0;while(1){if(!d)break;if(!(c[(c[(c[d+16>>2]|0)+112>>2]|0)+4>>2]&16))tz(a,d,b);d=hC(a,d)|0}return}function pz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=l;l=l+16|0;f=g;d=rz(a,b)|0;c[f>>2]=d;a:do if(d){e=0;while(1){if((e|0)>=10)break a;a=sz(a,b,f)|0;h=d;d=c[f>>2]|0;if((h|0)==(d|0)|(d|0)==0)break;else e=e+1|0}}while(0);l=g;return a|0}function qz(a){a=a|0;var b=0.0,d=0.0,e=0.0,f=0;b=0.0;while(1){a=c[a>>2]|0;if(!a)break;f=c[(c[c[(c[(c[a>>2]|0)+16>>2]|0)+112>>2]>>2]|0)+16>>2]|0;d=+h[f+32>>3];d=d>b?d:b;e=+h[f+40>>3];b=e>d?e:d;a=a+4|0}return +b}function rz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=Hz()|0;e=gC(b)|0;while(1){if(!e)break;d=UA(b,e)|0;while(1){if(!d)break;c[c[(c[d+16>>2]|0)+120>>2]>>2]=0;d=WA(b,d)|0}e=hC(b,e)|0}j=1;d=0;while(1){h=c[a>>2]|0;if(!h)break;i=c[h>>2]|0;g=ZA(b,i)|0;while(1){if(!g)break;f=g+16|0;if((c[c[(c[f>>2]|0)+120>>2]>>2]|0)>0){a=eb[c[k>>2]&63](k,0,128)|0;while(1){if(!a)break;e=c[a+8>>2]|0;if((c[c[(c[e+16>>2]|0)+120>>2]>>2]|0)>(c[c[(c[f>>2]|0)+120>>2]>>2]|0)?(l=c[e>>2]&3,(c[((l|0)==2?e:e+-48|0)+40>>2]|0)!=(i|0)):0)d=((c[((l|0)==3?e:e+48|0)+40>>2]|0)!=(i|0)&1)+d|0;a=eb[c[k>>2]&63](k,a,8)|0}Nz(k,g)}g=_A(b,g,i)|0}e=ZA(b,i)|0;while(1){if(!e)break;a=c[(c[e+16>>2]|0)+120>>2]|0;if(!(c[a>>2]|0)){c[a>>2]=j;Mz(k,e)}e=_A(b,e,i)|0}a=h+4|0;j=j+1|0}Lz(k);return d|0}function sz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=c[d>>2]|0;k=gC(b)|0;a:while(1){if(!k)break;j=ZA(b,k)|0;while(1){if(!j)break;g=c[j>>2]&3;f=c[((g|0)==3?j:j+48|0)+40>>2]|0;if((f|0)==(k|0))f=c[((g|0)==2?j:j+-48|0)+40>>2]|0;i=0;while(1){if((i|0)>=2)break;h=ez(a)|0;fz(a,k,f,i);g=rz(a,b)|0;if((g|0)<(e|0)){$y(h);if(!g){e=0;break a}else e=g}else{$y(a);a=h}i=i+1|0}j=_A(b,j,k)|0}k=hC(b,k)|0}c[d>>2]=e;return a|0}function tz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=_y()|0;e=UA(a,b)|0;while(1){if(!e)break;h=e+-48|0;az(j,0,c[((c[e>>2]&3|0)==2?e:h)+40>>2]|0);h=(c[(c[(c[((c[e>>2]&3|0)==2?e:h)+40>>2]|0)+16>>2]|0)+112>>2]|0)+4|0;c[h>>2]=c[h>>2]|32;e=WA(a,e)|0}e=XA(a,b)|0;while(1){if(!e)break;h=e+48|0;az(j,0,c[((c[e>>2]&3|0)==3?e:h)+40>>2]|0);h=(c[(c[(c[((c[e>>2]&3|0)==3?e:h)+40>>2]|0)+16>>2]|0)+112>>2]|0)+4|0;c[h>>2]=c[h>>2]|32;e=YA(a,e)|0}a:do if((gz(j)|0)>1){f=c[d>>2]|0;g=d+4|0;a=f;while(1){if(!a){i=16;break a}h=a+4|0;if((a|0)==(c[g>>2]|0))e=f;else e=c[h>>2]|0;if(c[(c[(c[(c[a>>2]|0)+16>>2]|0)+112>>2]|0)+4>>2]&32|0?c[(c[(c[(c[e>>2]|0)+16>>2]|0)+112>>2]|0)+4>>2]&32|0:0)break;a=c[h>>2]|0}az(d,a,b)}else i=16;while(0);b:do if((i|0)==16){c:do if((gz(j)|0)>0){e=d;while(1){e=c[e>>2]|0;if(!e)break c;if(c[(c[(c[(c[e>>2]|0)+16>>2]|0)+112>>2]|0)+4>>2]&32|0)break;e=e+4|0}az(d,e,b);break b}while(0);az(d,0,b)}while(0);e=j;while(1){e=c[e>>2]|0;if(!e)break;d=(c[(c[(c[e>>2]|0)+16>>2]|0)+112>>2]|0)+4|0;c[d>>2]=c[d>>2]&-33;e=e+4|0}$y(j);return}function uz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=e;e=c[(c[b+16>>2]|0)+112>>2]|0;while(1){e=c[e+16>>2]|0;if(!e)break;k=d+1|0;e=c[(c[e+16>>2]|0)+112>>2]|0;h=e+16|0;g=h+12|0;b=c[g>>2]|0;h=h+4|0;if(b){i=e+24|0;j=e+32|0;if((b|0)>(d|0)){l=10;break}d=c[h>>2]|0;if((d|0)!=(f|0)){if(!((c[j>>2]|0)!=0?(c[i>>2]|0)==(f|0):0))f=d;c[i>>2]=d;c[j>>2]=b}}c[h>>2]=a;c[g>>2]=k;d=k}if((l|0)==10?(c[j>>2]|0)<=(d|0):0){c[i>>2]=a;c[j>>2]=k}return}function vz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=(c[(c[b+16>>2]|0)+112>>2]|0)+4|0;c[g>>2]=c[g>>2]|1;g=ZA(a,b)|0;while(1){if(!g)break;f=c[g>>2]&3;e=c[((f|0)==2?g:g+-48|0)+40>>2]|0;if((e|0)==(b|0))e=c[((f|0)==3?g:g+48|0)+40>>2]|0;f=e+16|0;if(!(c[(c[(c[f>>2]|0)+112>>2]|0)+4>>2]&1)){jB(d,g,1)|0;c[(c[(c[f>>2]|0)+112>>2]|0)+16>>2]=b;vz(a,e,d)}g=_A(a,g,b)|0}return}function wz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;j=l;l=l+144|0;i=j+8|0;h=j;d=j+16|0;g=c[46976]|0;c[46976]=g+1;c[h>>2]=g;i2(d,96613,h)|0;h=LD(a,d,1)|0;RC(h,137786,280,1)|0;g=c[46976]|0;c[46976]=g+1;c[i>>2]=g;i2(d,96613,i)|0;c[i>>2]=c[a+24>>2];i=lB(d,i,0)|0;d=gC(a)|0;while(1){if(!d)break;lC(h,d,1)|0;g=qC(i,HB(d)|0,1)|0;RC(g,137750,304,1)|0;c[(c[(c[d+16>>2]|0)+112>>2]|0)+16>>2]=g;d=hC(a,d)|0}e=gC(a)|0;while(1){if(!e)break;f=c[(c[(c[e+16>>2]|0)+112>>2]|0)+16>>2]|0;g=f+16|0;d=UA(a,e)|0;while(1){if(!d)break;jB(h,d,1)|0;k=c[(c[(c[(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0)+16>>2]|0;m=fB(i,f,k,0,1)|0;RC(m,137763,176,1)|0;c[(c[m+16>>2]|0)+116>>2]=d;m=(c[g>>2]|0)+236|0;c[m>>2]=(c[m>>2]|0)+1;k=(c[k+16>>2]|0)+236|0;c[k>>2]=(c[k>>2]|0)+1;d=WA(a,d)|0}e=hC(a,e)|0}c[b>>2]=i;l=j;return h|0}function xz(a){a=a|0;var b=0,c=0;c=zz()|0;b=gC(a)|0;while(1){if(!b)break;Ez(c,b);b=hC(a,b)|0}return c|0}function yz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=c[(c[b+16>>2]|0)+236>>2]|0;p=m<<2;o=IK(p)|0;p=IK(p)|0;i=0;l=ZA(a,b)|0;n=0;f=0;while(1){if(!l)break;e=c[l>>2]&3;g=c[((e|0)==2?l:l+-48|0)+40>>2]|0;if((g|0)==(b|0))g=c[((e|0)==3?l:l+48|0)+40>>2]|0;h=0;k=ZA(a,b)|0;j=i;while(1){if(!k)break;if((k|0)!=(l|0)){i=c[k>>2]&3;e=c[((i|0)==2?k:k+-48|0)+40>>2]|0;if((e|0)==(b|0))e=c[((i|0)==3?k:k+48|0)+40>>2]|0;i=fB(a,g,e,0,0)|0;if(i)if(g>>>0<e>>>0){e=j+1|0;h=i+16|0;i=c[(c[h>>2]|0)+116>>2]|0;if(!i)h=1;else{tC(d,i)|0;c[(c[h>>2]|0)+116>>2]=0;h=1}}else{h=1;e=j}else e=j}else e=j;k=_A(a,k,b)|0;j=e}if(!h){c[p+(n<<2)>>2]=g;e=n+1|0}else{c[o+(f<<2)>>2]=g;e=n;f=f+1|0}i=j;l=_A(a,l,b)|0;n=e}e=m+-1-i|0;a:do if((e|0)>0){if((e|0)<(n|0))g=0;else{if((e|0)!=(n|0))break;f=c[o>>2]|0;g=f+16|0;e=0;while(1){if((e|0)>=(n|0))break a;m=c[p+(e<<2)>>2]|0;RC(fB(a,f,m,0,1)|0,137763,176,1)|0;d=(c[g>>2]|0)+236|0;c[d>>2]=(c[d>>2]|0)+1;m=(c[m+16>>2]|0)+236|0;c[m>>2]=(c[m>>2]|0)+1;e=e+1|0}}while(1){if((g|0)>=(n|0)){f=2;break}f=g|1;if((f|0)>=(n|0)){f=2;break}d=c[p+(g<<2)>>2]|0;m=c[p+(f<<2)>>2]|0;RC(fB(a,d,m,0,1)|0,137763,176,1)|0;d=(c[d+16>>2]|0)+236|0;c[d>>2]=(c[d>>2]|0)+1;m=(c[m+16>>2]|0)+236|0;c[m>>2]=(c[m>>2]|0)+1;g=g+2|0;e=e+-1|0}while(1){if((e|0)<=0)break a;m=c[p>>2]|0;n=c[p+(f<<2)>>2]|0;RC(fB(a,m,n,0,1)|0,137763,176,1)|0;m=(c[m+16>>2]|0)+236|0;c[m>>2]=(c[m>>2]|0)+1;n=(c[n+16>>2]|0)+236|0;c[n>>2]=(c[n>>2]|0)+1;f=f+1|0;e=e+-1|0}}while(0);l6(p);l6(o);return}function zz(){return Sz(18280,c[4591]|0)|0}function Az(a,b,d){a=a|0;b=b|0;d=d|0;d=IK(16)|0;c[d+12>>2]=0;c[d+8>>2]=c[b+8>>2];return d|0}function Bz(a,b,c){a=a|0;b=b|0;c=c|0;l6(b);return}function Cz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=c[b>>2]|0;e=c[d>>2]|0;return ((b|0)<(e|0)?-1:(b|0)>(e|0)&1)|0}function Dz(a){a=a|0;Oz(a)|0;return}function Ez(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;f=d;e=b+16|0;c[f+8>>2]=c[(c[e>>2]|0)+236>>2];a=(eb[c[a>>2]&63](a,f,1)|0)+12|0;c[(c[e>>2]|0)+164>>2]=c[a>>2];c[a>>2]=b;l=d;return}function Fz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=l;l=l+16|0;f=h;e=b+16|0;c[f+8>>2]=c[(c[e>>2]|0)+236>>2];f=eb[c[a>>2]&63](a,f,4)|0;if(!f)Aa(96623,96626,107,96636);d=f+12|0;g=c[d>>2]|0;if((g|0)==(b|0)){b=c[(c[e>>2]|0)+164>>2]|0;c[d>>2]=b;if(!b)eb[c[a>>2]&63](a,f,2)|0}else{f=g;d=g+16|0;while(1){a=c[(c[d>>2]|0)+164>>2]|0;e=(a|0)!=0;d=a+16|0;if(!(e&(a|0)!=(b|0)))break;else f=a}if(e)c[(c[f+16>>2]|0)+164>>2]=c[(c[d>>2]|0)+164>>2]}l=h;return}function Gz(a){a=a|0;var b=0,d=0,e=0,f=0;d=eb[c[a>>2]&63](a,0,128)|0;if(d){f=d+12|0;b=c[f>>2]|0;e=c[(c[b+16>>2]|0)+164>>2]|0;c[f>>2]=e;if(!e)eb[c[a>>2]&63](a,d,2)|0}else b=0;return b|0}function Hz(){return Sz(18316,c[4591]|0)|0}function Iz(a,b,d){a=a|0;b=b|0;d=d|0;d=IK(12)|0;c[d+8>>2]=c[b+8>>2];return d|0}function Jz(a,b,c){a=a|0;b=b|0;c=c|0;l6(b);return}function Kz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=c[b>>2]|0;e=c[d>>2]|0;return (b>>>0>e>>>0?1:(b>>>0<e>>>0)<<31>>31)|0}function Lz(a){a=a|0;Oz(a)|0;return}function Mz(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e+8>>2]=b;eb[c[a>>2]&63](a,e,1)|0;l=d;return}function Nz(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e+8>>2]=b;eb[c[a>>2]&63](a,e,2)|0;l=d;return}function Oz(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;do if((a|0)!=0?(c[a+24>>2]|0)<=0:0){h=c[a+4>>2]|0;g=h+32|0;b=c[g>>2]|0;if(b){b=tb[b&127](a,2,0,h)|0;if((b|0)<0){b=-1;break}}else b=0;if(c[a+28>>2]|0)Xz(a,0)|0;e=(b|0)==0;f=a+12|0;if(e){eb[c[c[a+16>>2]>>2]&63](a,0,64)|0;if((Uz(a)|0)>0){b=-1;break}d=a+8|0;b=c[d>>2]|0;if((c[b+12>>2]|0)>0){tb[c[f>>2]&127](a,c[b+8>>2]|0,0,h)|0;b=c[d>>2]|0}tb[c[f>>2]&127](a,b,0,h)|0}b=c[a+20>>2]|0;if(b){if(e&(b|0)==1)tb[c[f>>2]&127](a,a,0,h)|0}else l6(a);b=c[g>>2]|0;if(!b)b=0;else{tb[b&127](a,6,0,h)|0;b=0}}else b=-1;while(0);return b|0}function Pz(a){a=a|0;var b=0,d=0,e=0;e=a+8|0;b=c[e>>2]|0;d=c[b>>2]|0;a:do if(!(d&12)){if(!(d&3)){d=b+8|0;a=c[d>>2]|0;c[d>>2]=0;break}a=Qz(a)|0;d=c[e>>2]|0;b=c[d+8>>2]|0;d=b+(c[d+12>>2]<<2)|0;while(1){if(b>>>0>=d>>>0)break a;c[b>>2]=0;b=b+4|0}}else a=c[b+4>>2]|0;while(0);e=c[e>>2]|0;c[e>>2]=c[e>>2]&-4097;c[e+16>>2]=0;c[e+4>>2]=0;return a|0}function Qz(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=a+8|0;b=c[g>>2]|0;d=c[b>>2]|0;e=b+4|0;if(!(d&4096)){a=b+8|0;a:do if(!(d&3)){if(d&112|0){a=c[a>>2]|0;break}a=c[e>>2]|0;if(!a)a=0;else{while(1){b=a+4|0;d=c[b>>2]|0;if(!d){e=a;break}c[b>>2]=c[d>>2];c[d>>2]=a;a=d}while(1){b=c[e>>2]|0;if(!b)break a;d=c[b+4>>2]|0;if(!d){e=b;continue}while(1){c[b+4>>2]=c[d>>2];c[d>>2]=b;b=c[d+4>>2]|0;if(!b)break;else{f=d;d=b;b=f}}c[e>>2]=d;e=d}}}else{e=c[a>>2]|0;f=e+(c[b+12>>2]<<2)|0;b=0;a=0;while(1){if(e>>>0>=f>>>0)break a;d=c[e>>2]|0;if(d){if(!b){b=d;a=d}else c[b>>2]=d;while(1){d=c[b>>2]|0;if(!d)break;else b=d}c[e>>2]=b}e=e+4|0}}while(0);g=c[g>>2]|0;c[g+4>>2]=a;c[g>>2]=c[g>>2]|4096}else a=c[e>>2]|0;return a|0}function Rz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;t=a+8|0;if(c[c[t>>2]>>2]&4096|0)Tz(a,0)|0;s=c[a+4>>2]|0;k=c[s>>2]|0;l=c[s+4>>2]|0;p=s+8|0;i=c[p>>2]|0;m=c[s+20>>2]|0;n=a+20|0;f=c[n>>2]&-32769;c[n>>2]=f;q=s+16|0;v=0-i|0;r=a+12|0;w=(i|0)<0;o=(d&4098|0)!=0;a:do if(!b){if(d&384|0){f=c[t>>2]|0;e=c[f+8>>2]|0;if(!e){e=0;break}if(d&256){e=c[e+4>>2]|0;c[f+4>>2]=e;if(!e){e=0;break}}else c[f+4>>2]=e;if(w){e=c[e+8>>2]|0;break}else{e=e+v|0;break}}if(o){e=c[t>>2]|0;if(c[e>>2]&144|0){e=0;break}e=c[e+8>>2]|0;if(!e){e=0;break}else{i=e;u=86;break}}if(!(d&64))e=0;else{b:do if((c[q>>2]|0)!=0|w){e=c[(c[t>>2]|0)+8>>2]|0;while(1){if(!e)break b;f=c[e>>2]|0;g=c[q>>2]|0;if(g|0){if(w)h=c[e+8>>2]|0;else h=e+v|0;rb[g&127](a,h,s)}if((c[p>>2]|0)>=0){e=f;continue}tb[c[r>>2]&127](a,e,0,s)|0;e=f}}while(0);e=c[t>>2]|0;c[e+4>>2]=0;c[e+8>>2]=0;c[(c[t>>2]|0)+16>>2]=0;e=0}}else{if(d&2049|0){g=s+12|0;e=c[g>>2]|0;h=(d&1|0)==0;if(!(h|(e|0)==0)){e=eb[e&63](a,b,s)|0;if(!e){e=0;break}else f=e}else f=b;do if((i|0)>-1)b=f+i|0;else{e=tb[c[r>>2]&127](a,0,12,s)|0;if(e|0){c[e+8>>2]=f;b=e;break}if(!(c[g>>2]|0)){e=0;break a}e=c[q>>2]|0;if(h|(e|0)==0){e=0;break a}rb[e&127](a,f,s);e=0;break a}while(0);e=c[t>>2]|0;f=c[e>>2]|0;g=(d&8192|0)!=0;i=b+4|0;h=e+8|0;do if(!(f&128)){if(!(f&16))if(!(f&32)){u=52;break}else{u=48;break}f=c[e+4>>2]|0;e=(f|0)!=0;if(g){if(!e){u=52;break}e=c[f>>2]|0;if(!e){u=52;break}c[b>>2]=e;c[e+4>>2]=b;c[i>>2]=f;c[f>>2]=b;break}else{if(!e){u=48;break}e=c[h>>2]|0;if((f|0)==(e|0)){u=49;break}d=f+4|0;s=c[d>>2]|0;c[i>>2]=s;c[s>>2]=b;c[b>>2]=f;c[d>>2]=b;break}}else if(g)u=52;else u=48;while(0);if((u|0)==48){e=c[h>>2]|0;u=49}else if((u|0)==52){e=c[h>>2]|0;if(!e){c[h>>2]=b;e=b}else{d=e+4|0;c[c[d>>2]>>2]=b;c[i>>2]=c[d>>2]}c[e+4>>2]=b;c[b>>2]=0}if((u|0)==49){c[b>>2]=e;if(!e)e=b;else c[i>>2]=c[e+4>>2];c[e+4>>2]=b;c[(c[t>>2]|0)+8>>2]=b}e=c[t>>2]|0;f=e+16|0;g=c[f>>2]|0;if((g|0)>-1)c[f>>2]=g+1;c[e+4>>2]=b;if(w){e=c[b+8>>2]|0;break}else{e=b+v|0;break}}do if(!(d&512)){h=c[t>>2]|0;e=c[h+4>>2]|0;if(e|0){if(w)g=c[e+8>>2]|0;else g=e+v|0;if((g|0)==(b|0))break}e=b+k|0;if((l|0)<0){b=c[e>>2]|0;j=1;u=70}else{b=e;j=0;u=70}}else{h=c[t>>2]|0;j=(l|0)<0;u=70}while(0);if((u|0)==70){g=(m|0)==0;i=(l|0)<1;e=h+8|0;do{e=c[e>>2]|0;if(!e){e=0;break a}if(w)f=c[e+8>>2]|0;else f=e+v|0;f=f+k|0;if(j)f=c[f>>2]|0;do if(g)if(i){f=f2(b,f)|0;break}else{f=g2(b,f,l)|0;break}else f=tb[m&127](a,b,f,s)|0;while(0)}while((f|0)!=0);f=c[n>>2]|0}c[n>>2]=f|32768;if(!o){f=c[t>>2]|0;do if(!(d&8)){if(!(d&16)){c[f+4>>2]=e;break}if((e|0)==(c[f+8>>2]|0)){c[f+4>>2]=0;e=0;break a}else{e=e+4|0;u=110;break}}else u=110;while(0);if((u|0)==110){e=c[e>>2]|0;c[f+4>>2]=e;if(!e){e=0;break}}if(w){e=c[e+8>>2]|0;break}else{e=e+v|0;break}}else{i=e;u=86}}while(0);if((u|0)==86){e=c[i>>2]|0;g=i+4|0;if(e){c[e+4>>2]=c[g>>2];e=c[i>>2]|0}f=(c[t>>2]|0)+8|0;u=c[f>>2]|0;h=u+4|0;if((i|0)==(u|0)){c[f>>2]=e;e=c[(c[t>>2]|0)+8>>2]|0;if(e|0)c[e+4>>2]=c[h>>2]}else{c[c[g>>2]>>2]=e;if((i|0)==(c[h>>2]|0))c[h>>2]=c[g>>2]}e=c[t>>2]|0;f=e+4|0;if((i|0)==(c[f>>2]|0))g=c[i>>2]|0;else g=0;c[f>>2]=g;u=e+16|0;c[u>>2]=(c[u>>2]|0)+-1;if(w)e=c[i+8>>2]|0;else e=i+v|0;f=c[q>>2]|0;if(!((d&2|0)==0|(f|0)==0))rb[f&127](a,e,s);if((c[p>>2]|0)<0)tb[c[r>>2]&127](a,i,0,s)|0}return e|0}function Sz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;h=k;a:do if((a|0)!=0&(b|0)!=0?(f=k6(40)|0,(f|0)!=0):0){c[f>>2]=0;c[f+16>>2]=0;c[f+4>>2]=0;_z(f,a,0)|0;d=f+20|0;j=a+32|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;d=c[j>>2]|0;g=b+4|0;do if(d){c[h>>2]=0;d=tb[d&127](f,1,h,a)|0;if((d|0)>=0)if(d){e=c[h>>2]|0;if(e|0)if(!(c[g>>2]&c[e>>2])){d=f;i=12;break}else{d=f;break}d=a+28|0;if(!(c[d>>2]|0)){d=f;i=12}else{l6(f);e=tb[c[d>>2]&127](0,0,40,a)|0;if(!e){d=0;break a}c[e>>2]=0;c[e+16>>2]=0;c[e+4>>2]=0;_z(e,a,0)|0;c[e+20>>2]=1;c[e+24>>2]=0;c[e+32>>2]=0;c[e+28>>2]=0;d=e;f=e;i=11}}else{d=f;i=11}else{d=f;i=12}}else{d=f;i=11}while(0);if((i|0)==11){e=tb[c[d+12>>2]&127](d,0,28,a)|0;c[h>>2]=e;if(!e){d=f;i=12}else{c[e>>2]=c[g>>2];h=e+4|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0}}if((i|0)==12){l6(d);d=0;break}c[d+8>>2]=e;c[d>>2]=c[b>>2];c[d+16>>2]=b;e=c[j>>2]|0;if(e)tb[e&127](d,5,f,a)|0}else d=0;while(0);l=k;return d|0}function Tz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=c[c[a+16>>2]>>2]|0;j=a+8|0;f=c[j>>2]|0;g=c[f>>2]|0;d=f+4|0;e=f+16|0;if(!b)if(!(g&4096))b=-1;else{h=1;b=c[d>>2]|0;k=5}else if(!(c[e>>2]|0)){h=0;k=5}else b=-1;a:do if((k|0)==5){c[f>>2]=g&-4097;if(!(g&3)){if(!(g&12)){c[d>>2]=0;d=f+8|0}c[d>>2]=b;if(h){b=0;break}c[(c[j>>2]|0)+16>>2]=-1;b=0;break}c[d>>2]=0;if(!h){c[e>>2]=0;while(1){if(!b){b=0;break a}k=c[b>>2]|0;eb[i&63](a,b,32)|0;b=k}}e=c[f+8>>2]|0;f=e+(c[f+12>>2]<<2)|0;while(1){if(e>>>0>=f>>>0){b=0;break a}d=c[e>>2]|0;if(d){c[e>>2]=b;b=c[d>>2]|0;c[d>>2]=0}e=e+4|0}}while(0);return b|0}function Uz(a){a=a|0;var b=0,d=0,e=0;b=a+8|0;d=c[b>>2]|0;if(c[d>>2]&4096){Tz(a,0)|0;d=c[b>>2]|0}e=d+16|0;a=c[e>>2]|0;do if((a|0)<0){b=c[d>>2]|0;if(b&12|0){a=Vz(c[d+4>>2]|0)|0;c[e>>2]=a;break}if(b&112){a=0;b=d+8|0;while(1){b=c[b>>2]|0;if(!b)break;a=a+1|0}c[e>>2]=a}}while(0);return a|0}function Vz(a){a=a|0;var b=0;if(!a)return 0;else{b=Vz(c[a+4>>2]|0)|0;return b+1+(Vz(c[a>>2]|0)|0)|0}return 0}function Wz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;Q=l;l=l+128|0;F=Q+120|0;p=Q;P=a+8|0;e=c[P>>2]|0;if(c[e>>2]&4096){Tz(a,0)|0;e=c[P>>2]|0}M=c[a+4>>2]|0;J=c[M>>2]|0;K=c[M+4>>2]|0;y=M+8|0;v=c[y>>2]|0;L=c[M+20>>2]|0;t=a+20|0;c[t>>2]=c[t>>2]&-32769;h=c[e+4>>2]|0;B=a+12|0;A=M+16|0;N=0-v|0;O=(v|0)<0;j=(h|0)!=0;a:do if(!b)if((d&448|0)==0|j^1)e=0;else{if(!(d&64)){b:do if(!(d&256)){e=h;while(1){f=e+4|0;g=c[f>>2]|0;if(!g)break b;c[f>>2]=c[g>>2];c[g>>2]=e;e=g}}else{e=h;while(1){f=c[e>>2]|0;if(!f)break b;a=f+4|0;c[e>>2]=c[a>>2];c[a>>2]=e;e=f}}while(0);c[(c[P>>2]|0)+4>>2]=e;if(O){e=c[e+8>>2]|0;break}else{e=e+N|0;break}}if((c[A>>2]|0)!=0|O){e=h;do{h=e;while(1){e=h+4|0;f=c[e>>2]|0;if(!f)break;c[e>>2]=c[f>>2];c[f>>2]=h;h=f}e=c[h>>2]|0;f=c[A>>2]|0;if(f|0){if(O)g=c[h+8>>2]|0;else g=h+N|0;rb[f&127](a,g,M)}if((c[y>>2]|0)<0)tb[c[B>>2]&127](a,h,0,M)|0}while((e|0)!=0);e=c[P>>2]|0}c[e+16>>2]=0;c[e+4>>2]=0;e=0}else{D=a+16|0;G=(K|0)<0;E=F+4|0;u=(d&4098|0)!=0;H=(L|0)!=0;C=(d&2|0)!=0;I=(K|0)<1;i=b+J|0;c:do if((c[(c[D>>2]|0)+4>>2]|0)!=8|u^1)x=44;else{if(G)g=c[i>>2]|0;else g=i;f=eb[c[a>>2]&63](a,b,4)|0;while(1){if(!f){x=44;break c}e=f+J|0;if(G)e=c[e>>2]|0;do if(!H)if(I){e=f2(g,e)|0;break}else{e=g2(g,e,K)|0;break}else e=tb[L&127](a,g,e,M)|0;while(0);if(e|0){x=44;break c}if((f|0)==(b|0))break;f=eb[c[a>>2]&63](a,f,8)|0}h=c[(c[P>>2]|0)+4>>2]|0;c[F>>2]=c[h+4>>2];c[E>>2]=c[h>>2];e=F;x=174}while(0);d:do if((x|0)==44){z=(d&516|0)!=0;s=(d&32|0)!=0;do if(!(d&2565)){if(s){if(O)g=c[b+8>>2]|0;else g=b+N|0;e=g+J|0;if(G)e=c[e>>2]|0;if(j){r=b;q=e;m=b;x=62;break}else{e=b;o=F;n=F;h=0;m=b;break}}if(j){if(O)e=c[h+8>>2]|0;else e=h+N|0;if((e|0)!=(b|0))if(G){g=b;r=0;q=c[i>>2]|0;m=0;x=62}else{g=b;r=0;q=i;m=0;x=62}else{g=b;e=0;o=F;n=F;m=0}}else{g=b;e=0;o=F;n=F;h=0;m=0}}else{e=(d&512|0)!=0;if(e|G^1)e=e?b:i;else e=c[i>>2]|0;if(j){g=b;r=0;q=e;m=0;x=62}else{g=b;e=0;o=F;n=F;h=0;m=0}}while(0);e:do if((x|0)==62){f:do if((c[(c[D>>2]|0)+4>>2]|0)==4?(o=c[(c[P>>2]|0)+24>>2]|0,!((o|0)==0|z^1)):0){i=0;j=h;while(1){if((i|0)>=(o|0)){f=F;n=F;k=0;break}b=j+8|0;e=j+N|0;if(O)f=c[b>>2]|0;else f=e;f=f+J|0;if(G)f=c[f>>2]|0;do if(!H)if(I){f=f2(q,f)|0;break}else{f=g2(q,f,K)|0;break}else f=tb[L&127](a,q,f,M)|0;while(0);if(!f){x=75;break}c[p+(i<<2)>>2]=f;j=c[((f|0)<0?j+4|0:j)>>2]|0;if(!j){e=0;break a}else i=i+1|0}if((x|0)==75){if(!O)break a;e=c[b>>2]|0;break a}while(1){if((k|0)>=(o|0)){e=h;break f}j=f+4|0;b=c[p+((k|1)<<2)>>2]|0;do if((c[p+(k<<2)>>2]|0)<0){e=h+4|0;i=c[e>>2]|0;if((b|0)<0){c[e>>2]=c[i>>2];c[i>>2]=h;c[j>>2]=i;f=i;h=n;e=i+4|0;break}else{c[n>>2]=i;c[j>>2]=h;f=h;h=i;e=i;break}}else{i=c[h>>2]|0;e=i+4|0;if((b|0)>0){c[h>>2]=c[e>>2];c[e>>2]=h;c[n>>2]=i;h=i;e=i;break}else{c[j>>2]=i;c[n>>2]=h;f=i;break}}while(0);n=h;k=k+2|0;h=c[e>>2]|0}}else{f=F;n=F;e=h}while(0);g:while(1){i=f;h=e;while(1){if(O)e=c[h+8>>2]|0;else e=h+N|0;e=e+J|0;if(G)e=c[e>>2]|0;do if(!H)if(I){e=f2(q,e)|0;break}else{e=g2(q,e,K)|0;break}else e=tb[L&127](a,q,e,M)|0;while(0);if(!e){e=r;o=i;break e}j=i+4|0;if((e|0)>=0)break;f=h+4|0;i=c[f>>2]|0;if(!i){x=115;break g}if(O)e=c[i+8>>2]|0;else e=i+N|0;e=e+J|0;if(G)e=c[e>>2]|0;do if(!H)if(I){e=f2(q,e)|0;break}else{e=g2(q,e,K)|0;break}else e=tb[L&127](a,q,e,M)|0;while(0);if((e|0)>=0){x=112;break}c[f>>2]=c[i>>2];c[i>>2]=h;c[j>>2]=i;h=c[i+4>>2]|0;if(!h){e=r;o=i;h=0;break e}}if((x|0)==112){x=0;if(!e){x=113;break}c[n>>2]=i;c[j>>2]=h;e=c[i>>2]|0;if(!e){e=r;o=h;n=i;h=0;break e}else{f=h;n=i;continue}}b=c[h>>2]|0;if(!b){x=133;break}if(O)e=c[b+8>>2]|0;else e=b+N|0;e=e+J|0;if(G)e=c[e>>2]|0;do if(!H)if(I){e=f2(q,e)|0;break}else{e=g2(q,e,K)|0;break}else e=tb[L&127](a,q,e,M)|0;while(0);f=b+4|0;if((e|0)>0){c[h>>2]=c[f>>2];c[f>>2]=h;c[n>>2]=b;e=c[b>>2]|0;if(!e){e=r;o=i;n=b;h=0;break e}else{f=i;n=b;continue}}if(!e){x=131;break}c[j>>2]=b;c[n>>2]=h;e=c[f>>2]|0;if(!e){e=r;o=b;n=h;h=0;break e}else{f=b;n=h}}if((x|0)==113){c[j>>2]=h;e=r;o=h;h=i;break}else if((x|0)==115){c[j>>2]=h;e=r;o=h;h=0;break}else if((x|0)==131){c[n>>2]=h;e=r;o=i;n=h;h=b;break}else if((x|0)==133){c[n>>2]=h;e=r;o=i;n=h;h=0;break}}while(0);i=o+4|0;j=(d&8|0)!=0;b=(d&2049|0)!=0;k=(d&16|0)!=0;do if(!h){c[i>>2]=0;c[n>>2]=0;if(!j)if(!k){if(z){e=o;break d}if(b)x=199;else{if(!s){g=0;e=o;break d}C=(c[P>>2]|0)+16|0;c[C>>2]=(c[C>>2]|0)+1}}else x=169;else x=163}else{c[t>>2]=c[t>>2]|32768;f=h+4|0;c[n>>2]=c[f>>2];c[i>>2]=c[h>>2];if(!z){if(j){c[f>>2]=c[F>>2];c[h>>2]=0;c[F>>2]=h;x=163;break}if(k){c[h>>2]=c[E>>2];c[f>>2]=0;c[E>>2]=h;x=169;break}if(u){e=o;x=174;break d}if(b){if(c[(c[D>>2]|0)+4>>2]&4|0){e=h;break}c[f>>2]=0;c[h>>2]=c[E>>2];c[E>>2]=h;x=199;break}if(!s){e=0;break a}if(!(c[(c[D>>2]|0)+4>>2]&4)){c[e+4>>2]=0;c[e>>2]=c[E>>2];c[E>>2]=m;e=(c[P>>2]|0)+16|0;c[e>>2]=(c[e>>2]|0)+1;e=h;break}e=c[A>>2]|0;if(e|0)rb[e&127](a,g,M);if((c[y>>2]|0)<0){tb[c[B>>2]&127](a,m,0,M)|0;e=h}else e=h}else e=h}while(0);if((x|0)==163){e=c[E>>2]|0;if(!e){e=o;break}while(1){f=e+4|0;g=c[f>>2]|0;if(!g)break;c[f>>2]=c[g>>2];c[g>>2]=e;e=g}c[E>>2]=c[e>>2]}else if((x|0)==169){e=c[F>>2]|0;if(!e){e=o;break}while(1){f=c[e>>2]|0;if(!f)break;C=f+4|0;c[e>>2]=c[C>>2];c[C>>2]=e;e=f}c[F>>2]=c[e+4>>2]}else if((x|0)==199){i=M+12|0;e=c[i>>2]|0;f=(d&1|0)==0;if(!(f|(e|0)==0))g=eb[e&63](a,g,M)|0;do if(g){if((v|0)>-1){e=g+v|0;x=209;break}e=tb[c[B>>2]&127](a,0,12,M)|0;if(e|0){c[e+8>>2]=g;break}if((c[i>>2]|0)!=0?(w=c[A>>2]|0,!(f|(w|0)==0)):0){rb[w&127](a,g,M);x=209}else x=209}else{e=h;x=209}while(0);if((x|0)==209)if(!e){e=o;break}f=(c[P>>2]|0)+16|0;g=c[f>>2]|0;if((g|0)>-1)c[f>>2]=g+1}c[e+4>>2]=c[F>>2];c[e>>2]=c[E>>2];h:do if(!((c[(c[D>>2]|0)+4>>2]&8|0)==0|z^1)){if(O)f=c[e+8>>2]|0;else f=e+N|0;f=f+J|0;if(G)f=c[f>>2]|0;while(1){i=e+4|0;g=c[i>>2]|0;if(!g)break h;while(1){h=c[g>>2]|0;if(!h)break;F=h+4|0;c[g>>2]=c[F>>2];c[F>>2]=g;g=h}c[i>>2]=g;if(O)h=c[g+8>>2]|0;else h=g+N|0;h=h+J|0;if(G)h=c[h>>2]|0;do if(!H)if(I){h=f2(f,h)|0;break}else{h=g2(f,h,K)|0;break}else h=tb[L&127](a,f,h,M)|0;while(0);if(h|0)break h;c[i>>2]=c[g>>2];c[g>>2]=e;e=g}}while(0);c[(c[P>>2]|0)+4>>2]=e;if(O){e=c[e+8>>2]|0;break a}else{e=e+N|0;break a}}while(0);if((x|0)==174){if(O)g=c[h+8>>2]|0;else g=h+N|0;f=c[A>>2]|0;if(!((f|0)==0|C^1))rb[f&127](a,g,M);if((c[y>>2]|0)<0)tb[c[B>>2]&127](a,h,0,M)|0;O=(c[P>>2]|0)+16|0;N=c[O>>2]|0;c[O>>2]=(N|0)<1?-1:N+-1|0}do{f=e+4|0;e=c[f>>2]|0}while((e|0)!=0);c[f>>2]=c[F>>2];c[(c[P>>2]|0)+4>>2]=c[E>>2];e=C?g:0}while(0);l=Q;return e|0}function Xz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;if(c[c[a+8>>2]>>2]&4096|0)Tz(a,0)|0;f=(b|0)!=0;g=a+16|0;if(f){if(c[c[b+8>>2]>>2]&4096|0)Tz(b,0)|0;if((c[b+16>>2]|0)==(c[g>>2]|0)){d=b;e=7}else b=0}else{d=0;e=7}a:do if((e|0)==7){while(1){if(!d)break;if((d|0)==(a|0)){b=0;break a}d=c[d+28>>2]|0;e=7}d=a+28|0;e=c[d>>2]|0;if(e|0){h=e+24|0;c[h>>2]=(c[h>>2]|0)+-1}c[a+32>>2]=0;c[d>>2]=0;if(f){c[d>>2]=b;c[a>>2]=31;h=b+24|0;c[h>>2]=(c[h>>2]|0)+1;break}else{c[a>>2]=c[c[g>>2]>>2];b=e;break}}while(0);return b|0}function Yz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;f=a+16|0;a:do if(!(d&99)){p=a+32|0;if((d&516|0)==0?(e=(c[(c[f>>2]|0)+4>>2]&12|0)!=0,(d&384|0)==0|e):0){if(e){if(!(d&408)){e=0;break}n=(d&136|0)!=0;o=(d&272|0)!=0;m=0;f=0;e=0;while(1){if(!a)break;l=eb[c[c[a+16>>2]>>2]&63](a,b,d)|0;do if(!l)g=m;else{h=c[a+4>>2]|0;i=c[h+4>>2]|0;j=c[h+20>>2]|0;g=l+(c[h>>2]|0)|0;if((i|0)<0)k=c[g>>2]|0;else k=g;if(e|0){do if(!j)if((i|0)<1){g=f2(k,f)|0;break}else{g=g2(k,f,i)|0;break}else g=tb[j&127](a,k,f,h)|0;while(0);if(!(n&(g|0)<0|o&(g|0)>0)){g=m;break}}g=a;f=k;e=l}while(0);m=g;a=c[a+28>>2]|0}c[p>>2]=m;break}if(!(d&24)){e=0;break}f=c[p>>2]|0;if(f){e=c[(c[f+4>>2]|0)+8>>2]|0;g=c[(c[f+8>>2]|0)+4>>2]|0;if((e|0)<0)e=c[g+8>>2]|0;else e=g+(0-e)|0;if((e|0)==(b|0))e=b;else{f=a;h=32}}else{f=a;h=32}do if((h|0)==32){while(1){if(!f){h=33;break}e=eb[c[c[f+16>>2]>>2]&63](f,b,4)|0;if(e|0){h=36;break}f=c[f+28>>2]|0;h=32}if((h|0)==33){c[p>>2]=0;e=0;break a}else if((h|0)==36){c[p>>2]=f;break}}while(0);i=(d<<4&128^128)+128|0;e=eb[c[c[f+16>>2]>>2]&63](f,e,d)|0;while(1){h=f+16|0;while(1){if(!e)break;else g=a;while(1){if((g|0)==(f|0))break a;if(eb[c[c[g+16>>2]>>2]&63](g,e,4)|0)break;g=c[g+28>>2]|0}e=eb[c[c[h>>2]>>2]&63](f,e,d)|0}f=c[f+28>>2]|0;c[p>>2]=f;if(!f){e=0;break a}e=eb[c[c[f+16>>2]>>2]&63](f,0,i)|0}}while(1){if(!a){a=0;e=0;break}e=eb[c[c[a+16>>2]>>2]&63](a,b,d)|0;if(e|0)break;a=c[a+28>>2]|0}c[p>>2]=a}else e=eb[c[c[f>>2]>>2]&63](a,b,d)|0;while(0);return e|0}function Zz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=a+32|0;f=eb[c[a>>2]&63](a,0,128)|0;do{if(!f){e=0;break}h=c[g>>2]|0;e=f;f=eb[c[a>>2]&63](a,f,8)|0;e=eb[b&63]((h|0)==0?a:h,e,d)|0}while((e|0)>=0);return e|0}function _z(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=a+4|0;n=c[f>>2]|0;g=b+28|0;h=a+12|0;a:do if(n)if(b){m=c[c[a+16>>2]>>2]|0;i=a+8|0;if(c[c[i>>2]>>2]&4096|0)Tz(a,0)|0;e=c[n+32>>2]|0;if(e|0?(tb[e&127](a,3,b,n)|0)<0:0){b=0;break}c[f>>2]=b;e=c[g>>2]|0;c[h>>2]=(e|0)==0?52:e;e=c[c[i>>2]>>2]|0;if(!(e&112)){l=(d&2|0)!=0;do if(!(e&2))if(!(e&3))if(!(d&1))break;else{b=n;break a}else if((d&3|0)==3){b=n;break a}else break;else if(l){b=n;break a}while(0);g=Qz(a)|0;e=c[i>>2]|0;k=c[e>>2]|0;c[e>>2]=k&-4097;c[e+4>>2]=0;c[e+16>>2]=0;b:do if(k&3|0){k=c[e+8>>2]|0;f=k+(c[e+12>>2]<<2)|0;e=k;while(1){if(e>>>0>=f>>>0)break b;c[e>>2]=0;e=e+4|0}}while(0);i=b+8|0;j=b+4|0;k=b+24|0;while(1){if(!g){b=n;break a}d=c[g>>2]|0;if(!l){e=c[i>>2]|0;if((e|0)<0)e=c[g+8>>2]|0;else e=g+(0-e)|0;h=c[j>>2]|0;e=e+(c[b>>2]|0)|0;if((h|0)<0)e=c[e>>2]|0;f=c[k>>2]|0;if(!f)e=aA(0,e,h)|0;else e=eb[f&63](a,e,b)|0;c[g+4>>2]=e}eb[m&63](a,g,32)|0;g=d}}else b=n}else b=n;else{c[f>>2]=b;n=c[g>>2]|0;c[h>>2]=(n|0)==0?52:n}while(0);return b|0}function $z(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=(c|0)==0;do if(!b)if(a)a=0;else a=k6(c)|0;else if(a){l6(b);a=0;break}else{a=n6(b,c)|0;break}while(0);return a|0}function aA(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0,h=0;g=c;if((e|0)>=1){h=c+e+-1|0;g=(h>>>0<c>>>0?c:h)+(1-g)&-2;f=c;while(1){if(f>>>0>=h>>>0)break;b=S(((d[f>>0]|0)<<8)+b+(d[f+1>>0]|0)|0,17109811)|0;f=f+2|0}f=c+g|0;if(f>>>0>h>>>0)c=e;else{c=e;b=S(((d[f>>0]|0)<<8)+b|0,17109811)|0}}else{while(1){f=a[c>>0]|0;if(!(f<<24>>24))break;h=a[c+1>>0]|0;e=S(((f&255)<<8)+b+(h&255)|0,17109811)|0;b=e;c=c+(h<<24>>24?2:1)|0}c=c-g|0}return S(b+c|0,17109811)|0}function bA(a){a=a|0;var b=0;b=c[46977]|0;c[46977]=a;return b|0}function cA(a){a=a|0;var b=0;b=c[46978]|0;c[46978]=a;return b|0}function dA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;c[f>>2]=d;d=eA(a,b,f)|0;l=e;return d|0}function eA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+16|0;f=h;e=(a|0)==3?c[46981]|0:(a|0)==2?1:a;c[46981]=e;g=c[46982]|0;c[46982]=g>>>0>e>>>0?g:e;g=(a|0)!=3;do if(e>>>0<(c[46978]|0)>>>0){a=c[46979]|0;if(!a){a=$5()|0;c[46979]=a;if(!a){a=1;break}}if(g){c[46980]=Y5(a)|0;a=c[46979]|0}l2(a,b,d)|0;a=0}else{if(c[46977]|0){fA(a,b,d);a=0;break}e=c[15715]|0;if(g){c[f>>2]=(a|0)==1?96650:96656;z4(e,96664,f)|0}l2(e,b,d)|0;a=0}while(0);l=h;return a|0}function fA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;if((c[46983]|0)==0?(f=k6(c[4600]|0)|0,c[46983]=f,(f|0)==0):0)Z3(96669,c[15715]|0)|0;else e=4;do if((e|0)==4){if((a|0)!=3){pb[c[46977]&63]((a|0)==1?96650:96656)|0;pb[c[46977]&63](97328)|0}while(1){a=k2(c[46983]|0,c[4600]|0,b,d)|0;f=c[46983]|0;e=c[4600]|0;if((a|0)>-1&(a|0)<(e|0)){e=7;break}g=e<<1;e=a+1|0;e=(g|0)>(e|0)?g:e;c[4600]=e;if(!(n6(f,e)|0)){e=9;break}}if((e|0)==7){pb[c[46977]&63](f)|0;break}else if((e|0)==9){Z3(96669,c[15715]|0)|0;break}}while(0);return}function gA(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;eA(1,a,e)|0;l=d;return}function hA(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=b+12|0;if(!e){d=(d|0)==0?1024:d;c[f>>2]=1;e=k6(d)|0;c[b>>2]=e}else{c[b>>2]=e;c[f>>2]=0}c[b+8>>2]=e+d;c[b+4>>2]=e;a[e>>0]=0;return}function iA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=a+8|0;g=c[a>>2]|0;f=g;e=(c[h>>2]|0)-f|0;d=e<<1;e=e+b|0;d=e>>>0>d>>>0?e:d;e=a+4|0;f=(c[e>>2]|0)-f|0;b=a+12|0;if(!(c[b>>2]|0)){i=k6(d)|0;B6(i|0,g|0,f|0)|0;c[b>>2]=1;b=i}else b=n6(g,d)|0;c[a>>2]=b;c[e>>2]=b+f;c[h>>2]=b+d;return 0}function jA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=a+4|0;e=c[f>>2]|0;if((e+d|0)>>>0>(c[a+8>>2]|0)>>>0){iA(a,d)|0;e=c[f>>2]|0}B6(e|0,b|0,d|0)|0;c[f>>2]=(c[f>>2]|0)+d;return d|0}function kA(a,b){a=a|0;b=b|0;return jA(a,b,D3(b)|0)|0}function lA(a){a=a|0;if(c[a+12>>2]|0)l6(c[a>>2]|0);return}function mA(a){a=a|0;var b=0,e=0;b=a+4|0;e=c[b>>2]|0;if(e>>>0>(c[a>>2]|0)>>>0){c[b>>2]=e+-1;a=d[e>>0]|0}else a=-1;return a|0}function nA(a,b,d){a=a|0;b=b|0;d=d|0;fD(c[46985]|0,c[b+8>>2]|0)|0;fD(c[46985]|0,c[b+12>>2]|0)|0;bC(c[46985]|0,b);return}function oA(a,b){a=a|0;b=b|0;var c=0;c=PC(a,96717,0)|0;if((b|0)!=0&(c|0)==0){pA(a);c=PC(a,96717,0)|0}return c|0}function pA(a){a=a|0;var b=0,c=0,d=0;d=vC(a)|0;zE(d,d,107,0,1)|0;c=gC(d)|0;while(1){if(!c)break;rA(a,c);b=UA(d,c)|0;while(1){if(!b)break;sA(a,b);b=WA(d,b)|0}c=hC(d,c)|0}return}function qA(b){b=b|0;var c=0;c=b+24|0;a[c>>0]=a[c>>0]|64;xA(b);c=OD(b)|0;uA((c|0)==0?b:c,b);return}function rA(a,b){a=a|0;b=b|0;var d=0;d=tA(b)|0;if(!((d|0)!=0?(c[d+8>>2]|0)!=0:0))uA(a,b);return}function sA(a,b){a=a|0;b=b|0;var d=0;d=tA(b)|0;if(!((d|0)!=0?(c[d+8>>2]|0)!=0:0))uA(a,b);return}function tA(a){a=a|0;return PC(a,c[4610]|0,0)|0}function uA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=RC(b,c[4610]|0,16,0)|0;f=vA(a,c[b>>2]&3)|0;e=d+8|0;a:do if(!(c[e>>2]|0)){a=vC(a)|0;c[e>>2]=vA(a,c[b>>2]&3)|0;a=wA(b)|0;d=d+12|0;c[d>>2]=aC(uC(b)|0,((a|0)>4?a:4)<<2)|0;a=eb[c[f>>2]&63](f,0,128)|0;while(1){if(!a)break a;e=uC(b)|0;e=dD(e,c[a+12>>2]|0)|0;c[(c[d>>2]|0)+(c[a+16>>2]<<2)>>2]=e;a=eb[c[f>>2]&63](f,a,8)|0}}while(0);return}function vA(a,b){a=a|0;b=b|0;var d=0,e=0;e=l;l=l+16|0;d=e;a=oA(a,0)|0;a:do if(!a)a=0;else switch(b|0){case 0:{a=c[a+16>>2]|0;break a}case 1:{a=c[a+8>>2]|0;break a}case 2:case 3:{a=c[a+12>>2]|0;break a}default:{c[d>>2]=b;dA(1,96730,d)|0;a=0;break a}}while(0);l=e;return a|0}function wA(a){a=a|0;var b=0;b=vC(uC(a)|0)|0;a=vA(b,c[a>>2]&3)|0;if(!a)a=0;else a=Uz(a)|0;return a|0}function xA(a){a=a|0;var b=0,d=0,e=0,f=0;d=RC(a,96717,20,0)|0;e=d+8|0;c[e>>2]=SD(a,18404,c[4599]|0)|0;f=d+12|0;c[f>>2]=SD(a,18404,c[4599]|0)|0;d=d+16|0;c[d>>2]=SD(a,18404,c[4599]|0)|0;b=OD(a)|0;if(!b){b=c[46984]|0;if(!((b|0)==0|(b|0)==(a|0))){b=oA(b,0)|0;yA(c[b+8>>2]|0,c[e>>2]|0,a,1);yA(c[b+12>>2]|0,c[f>>2]|0,a,2);yA(c[b+16>>2]|0,c[d>>2]|0,a,0)}}else{a=oA(b,0)|0;Xz(c[e>>2]|0,c[a+8>>2]|0)|0;Xz(c[f>>2]|0,c[a+12>>2]|0)|0;Xz(c[d>>2]|0,c[a+16>>2]|0)|0}return}function yA(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=eb[c[b>>2]&63](b,0,128)|0;while(1){if(!g)break;h=zA(e,c[g+8>>2]|0,c[g+12>>2]|0,c[g+16>>2]|0,f)|0;a[h+22>>0]=a[g+22>>0]|0;a[h+21>>0]=a[g+21>>0]|0;eb[c[d>>2]&63](d,h,1)|0;g=eb[c[b>>2]&63](b,g,8)|0}return}function zA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=aC(b,24)|0;a[h+20>>0]=g;c[h+8>>2]=dD(b,d)|0;c[h+12>>2]=dD(b,e)|0;c[h+16>>2]=f;return h|0}function AA(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+32|0;e=d;c[e+8>>2]=b;b=eb[c[a>>2]&63](a,e,4)|0;l=d;return b|0}function BA(a,b){a=a|0;b=b|0;var c=0;c=Xz(a,0)|0;b=AA(a,b)|0;Xz(a,c)|0;return b|0}function CA(a,b){a=a|0;b=b|0;a=tA(a)|0;if(!a)a=0;else a=AA(c[a+8>>2]|0,b)|0;return a|0}function DA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=l;l=l+16|0;f=g;if(!a){a=c[46984]|0;if(!a){c[f>>2]=c[4611];a=lB(0,f,0)|0;c[46984]=a}}if(!e)a=FA(a,b,d)|0;else a=EA(a,b,d,e)|0;l=g;return a|0}function EA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=vC(a)|0;oA(a,1)|0;g=vA(a,b)|0;f=BA(g,d)|0;a:do if(!f){f=AA(g,d)|0;if(f|0){f=zA(a,d,e,c[f+16>>2]|0,b)|0;eb[c[g>>2]&63](g,f,1)|0;h=16;break}g=vA(i,b)|0;f=zA(a,d,e,Uz(g)|0,b)|0;eb[c[g>>2]&63](g,f,1)|0;switch(b|0){case 0:{zE(i,i,57,f,1)|0;h=16;break a}case 1:{d=gC(i)|0;while(1){if(!d){h=16;break a}GA(a,d,f);d=hC(i,d)|0}}case 2:case 3:{g=gC(i)|0;while(1){if(!g){h=16;break a}d=UA(i,g)|0;while(1){if(!d)break;GA(a,d,f);d=WA(i,d)|0}g=hC(i,g)|0}}default:break a}}else{h=f+12|0;fD(a,c[h>>2]|0)|0;c[h>>2]=dD(a,e)|0;h=16}while(0);if((h|0)==16)if((b|0)==0&(f|0)!=0)HA(a,f,e)|0;yC(a,a,f);return f|0}function FA(a,b,c){a=a|0;b=b|0;c=c|0;a=vA(a,b)|0;if(!a)a=0;else a=AA(a,c)|0;return a|0}function GA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;b=tA(b)|0;f=d+16|0;e=c[f>>2]|0;if((e|0)>3){g=c[a+64>>2]|0;b=b+12|0;e=e<<2;c[b>>2]=tb[c[(c[g>>2]|0)+8>>2]&127](c[g+12>>2]|0,c[b>>2]|0,e,e+4|0)|0}else b=b+12|0;g=dD(a,c[d+12>>2]|0)|0;c[(c[b>>2]|0)+(c[f>>2]<<2)>>2]=g;return}function HA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=uC(a)|0;g=(tA(a)|0)+12|0;i=b+16|0;fD(h,c[(c[g>>2]|0)+(c[i>>2]<<2)>>2]|0)|0;f=dD(h,d)|0;c[(c[g>>2]|0)+(c[i>>2]<<2)>>2]=f;do if(!(c[a>>2]&3)){e=c[(oA(h,0)|0)+16>>2]|0;f=b+8|0;g=BA(e,c[f>>2]|0)|0;if(!g){i=zA(h,c[f>>2]|0,d,c[i>>2]|0,c[a>>2]&3)|0;eb[c[e>>2]&63](e,i,1)|0;break}else{i=g+12|0;fD(h,c[i>>2]|0)|0;c[i>>2]=dD(h,d)|0;break}}while(0);yC(h,a,b);return 0}function IA(a,b,d){a=a|0;b=b|0;d=d|0;a=vA(a,b)|0;do if(a){b=c[a>>2]|0;if(!d){a=eb[b&63](a,0,128)|0;break}else{a=eb[b&63](a,d,8)|0;break}}else a=0;while(0);return a|0}function JA(a){a=a|0;var b=0;c[46985]=a;b=tA(a)|0;if(b|0){KA(a,b);TC(a,c[b>>2]|0)|0}b=oA(a,0)|0;if(b)if(((UD(a,c[b+8>>2]|0)|0)==0?(UD(a,c[b+12>>2]|0)|0)==0:0)?(UD(a,c[b+16>>2]|0)|0)==0:0){TC(a,c[b>>2]|0)|0;b=0}else b=1;else b=0;return b|0}function KA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=uC(a)|0;e=wA(a)|0;b=b+12|0;a=0;while(1){d=c[b>>2]|0;if((a|0)>=(e|0))break;fD(f,c[d+(a<<2)>>2]|0)|0;a=a+1|0}bC(f,d);return}function LA(a){a=a|0;var b=0;b=tA(a)|0;if(b|0){KA(a,b);TC(a,c[4610]|0)|0}return}function MA(a){a=a|0;var b=0;b=tA(a)|0;if(b|0){KA(a,b);TC(a,c[4610]|0)|0}return}function NA(a,b){a=a|0;b=b|0;b=CA(a,b)|0;if(!b)b=0;else{a=c[(tA(a)|0)+12>>2]|0;b=c[a+(c[b+16>>2]<<2)>>2]|0}return b|0}function OA(a,b){a=a|0;b=b|0;a=c[(tA(a)|0)+12>>2]|0;return c[a+(c[b+16>>2]<<2)>>2]|0}function PA(a,b,c){a=a|0;b=b|0;c=c|0;b=CA(a,b)|0;if(!b)b=-1;else{HA(a,b,c)|0;b=0}return b|0}function QA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=uC(a)|0;f=DA(f,c[a>>2]&3,b,0)|0;if(!f){f=uC(a)|0;f=DA(f,c[a>>2]&3,b,e)|0}HA(a,f,d)|0;return 0}function RA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=uC(a)|0;f=c[a>>2]|0;a:do if(!((c[b>>2]^f)&3)){d=1;e=0;while(1){e=IA(g,f&3,e)|0;if(!e)break a;d=CA(b,c[e+8>>2]|0)|0;if(!d){d=1;break a}f=OA(a,e)|0;HA(b,d,f)|0;if(gD(f)|0)hD(OA(b,d)|0);d=0;f=c[a>>2]|0}}else d=1;while(0);return d|0}function SA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;a=c[b+40>>2]|0;f=c[d+40>>2]|0;if((a|0)==(f|0)){e=(c[b>>2]|0)>>>4;a=(c[d>>2]|0)>>>4;if(e>>>0>=a>>>0)if(e>>>0>a>>>0)a=1;else g=6;else a=-1}else{e=(c[a>>2]|0)>>>4;a=(c[f>>2]|0)>>>4;if(e>>>0>=a>>>0)if(e>>>0>a>>>0)a=1;else g=6;else a=-1}if((g|0)==6)a=0;return a|0}function TA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;a=(c[b+40>>2]|0)+8|0;g=c[a>>2]|0;a=c[a+4>>2]|0;f=(c[d+40>>2]|0)+8|0;e=c[f>>2]|0;f=c[f+4>>2]|0;do if(!(a>>>0<f>>>0|(a|0)==(f|0)&g>>>0<e>>>0))if(a>>>0>f>>>0|(a|0)==(f|0)&g>>>0>e>>>0)a=1;else{e=b+8|0;a=c[e>>2]|0;e=c[e+4>>2]|0;if(!((a|0)==0&(e|0)==0)?(i=d+8|0,h=c[i>>2]|0,i=c[i+4>>2]|0,!((h|0)==0&(i|0)==0)):0){if(e>>>0<i>>>0|(e|0)==(i|0)&a>>>0<h>>>0){a=-1;break}if(e>>>0>i>>>0|(e|0)==(i|0)&a>>>0>h>>>0){a=1;break}}a=0}else a=-1;while(0);return a|0}function UA(a,b){a=a|0;b=b|0;var d=0;b=VA(a,b)|0;if(!b)b=0;else{d=a+44|0;a=b+32|0;Tz(c[d>>2]|0,c[a>>2]|0)|0;b=c[d>>2]|0;b=eb[c[b>>2]&63](b,0,128)|0;c[a>>2]=Pz(c[d>>2]|0)|0}return b|0}function VA(a,b){a=a|0;b=b|0;var d=0,e=0;e=l;l=l+48|0;d=e;if((c[b+24>>2]|0)==(a|0))a=b+28|0;else{c[d+16>>2]=b;a=c[a+40>>2]|0;a=eb[c[a>>2]&63](a,d,4)|0}l=e;return a|0}function WA(a,b){a=a|0;b=b|0;var d=0,e=0;d=VA(a,c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0;if(!d)a=0;else{e=a+44|0;d=d+32|0;Tz(c[e>>2]|0,c[d>>2]|0)|0;a=c[e>>2]|0;a=eb[c[a>>2]&63](a,b,8)|0;c[d>>2]=Pz(c[e>>2]|0)|0}return a|0}function XA(a,b){a=a|0;b=b|0;var d=0;b=VA(a,b)|0;if(!b)b=0;else{d=a+44|0;a=b+28|0;Tz(c[d>>2]|0,c[a>>2]|0)|0;b=c[d>>2]|0;b=eb[c[b>>2]&63](b,0,128)|0;c[a>>2]=Pz(c[d>>2]|0)|0}return b|0}function YA(a,b){a=a|0;b=b|0;var d=0,e=0;d=VA(a,c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0;if(!d)a=0;else{e=a+44|0;d=d+28|0;Tz(c[e>>2]|0,c[d>>2]|0)|0;a=c[e>>2]|0;a=eb[c[a>>2]&63](a,b,8)|0;c[d>>2]=Pz(c[e>>2]|0)|0}return a|0}function ZA(a,b){a=a|0;b=b|0;var c=0;c=UA(a,b)|0;if(!c)c=XA(a,b)|0;return c|0}function _A(a,b,d){a=a|0;b=b|0;d=d|0;a:do if((c[b>>2]&3|0)==2){b=WA(a,b)|0;if(!b){b=0;do{if(!b)b=XA(a,d)|0;else b=YA(a,b)|0;if(!b){b=0;break a}}while((c[b+40>>2]|0)==(d|0))}}else do{b=YA(a,b)|0;if(!b){b=0;break a}}while((c[b+40>>2]|0)==(d|0));while(0);return b|0}function $A(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0;h=l;l=l+32|0;f=h+16|0;g=h;if((wB(a)|0)!=0?(c[g>>2]=0,c[g+4>>2]=0,c[g+8>>2]=0,c[g+12>>2]=0,c[f>>2]=c[g>>2],c[f+4>>2]=c[g+4>>2],c[f+8>>2]=c[g+8>>2],c[f+12>>2]=c[g+12>>2],(dB(a,b,e,f)|0)!=0):0)f=0;else f=((d[a+24>>0]|0)>>>2&1^1)&255|(b|0)!=(e|0);l=h;return f|0}function aB(a,b){a=a|0;b=b|0;cB(a,b);return}function bB(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;lC(b,d,1)|0;lC(b,e,1)|0;h=aC(b,96)|0;i=h+48|0;l=oB(b,2)|0;j=c[i>>2]|0;k=c[h>>2]|0;m=h+8|0;c[m>>2]=f;c[m+4>>2]=g;m=h+56|0;c[m>>2]=f;c[m+4>>2]=g;g=l<<4;c[h>>2]=k&12|g|2;c[i>>2]=j&12|g|3;c[h+88>>2]=d;c[h+40>>2]=e;cB(b,h);if(a[b+24>>0]&64){RC(h,c[4610]|0,16,0)|0;sA(b,h)}wC(b,h);return h|0}function cB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;i=l;l=l+16|0;d=i;h=c[b>>2]&3;g=(h|0)==2?b:b+-48|0;h=(h|0)==3?b:b+48|0;e=c[h+40>>2]|0;f=c[g+40>>2]|0;while(1){if(!a)break;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];if(dB(a,e,f,d)|0)break;j=VA(a,e)|0;m=a+44|0;eB(c[m>>2]|0,j+32|0,g);k=a+48|0;eB(c[k>>2]|0,j+24|0,g);j=VA(a,f)|0;eB(c[m>>2]|0,j+28|0,h);eB(c[k>>2]|0,j+20|0,h);a=OD(a)|0}l=i;return}function dB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=l;l=l+48|0;f=h;if(!((b|0)==0|(d|0)==0)?(c[f>>2]=c[e>>2],c[f+4>>2]=c[e+4>>2],c[f+8>>2]=c[e+8>>2],c[f+12>>2]=c[e+12>>2],c[f+40>>2]=b,g=VA(a,d)|0,(g|0)!=0):0){e=a+48|0;g=g+20|0;Tz(c[e>>2]|0,c[g>>2]|0)|0;a=c[e>>2]|0;a=eb[c[a>>2]&63](a,f,4)|0;c[g>>2]=Pz(c[e>>2]|0)|0}else a=0;l=h;return a|0}function eB(a,b,d){a=a|0;b=b|0;d=d|0;Tz(a,c[b>>2]|0)|0;eb[c[a>>2]&63](a,d,1)|0;c[b>>2]=Pz(a)|0;return}function fB(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+48|0;i=o+24|0;m=o+16|0;j=o;h=(f|0)!=0;do if(!(EB(a,2,e,m,0)|0)){if(e|0)if(h){n=18;break}else{f=0;break}if(h?(wB(a)|0)==0:0){n=18;break}n=j;c[n>>2]=0;c[n+4>>2]=0;c[j>>2]=0;n=j+8|0;c[n>>2]=0;c[n+4>>2]=0;n=7}else{g=j;c[g>>2]=0;c[g+4>>2]=0;g=m;k=c[g+4>>2]|0;n=j+8|0;c[n>>2]=c[g>>2];c[n+4>>2]=k;c[j>>2]=2;n=7}while(0);a:do if((n|0)==7){c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];f=dB(a,b,d,i)|0;if(f|0)break;if(!(vB(a)|0))k=0;else{c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];k=dB(a,d,b,i)|0}g=(k|0)!=0;f=h^1;do if(g|f)g=g^1;else{f=vC(a)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];f=dB(f,b,d,i)|0;if(!f){if(!(vB(a)|0)){g=1;f=0;break}f=vC(a)|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];f=dB(f,d,b,i)|0;if(!f){g=1;f=0;break}}aB(a,f);break a}while(0);if(f|g^1)f=g?0:k;else n=18}while(0);if((n|0)==18)if(($A(a,b,d)|0)!=0?(EB(a,2,e,m,1)|0)!=0:0){f=m;f=bB(a,b,d,c[f>>2]|0,c[f+4>>2]|0)|0;IB(a,2,f)}else f=0;l=o;return f|0}function gB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;d=(c[b>>2]&3|0)==3;g=d?b+-48|0:b;d=d?b:b+48|0;b=c[g+40>>2]|0;h=VA(a,c[d+40>>2]|0)|0;f=a+44|0;hB(c[f>>2]|0,h+32|0,g);e=a+48|0;hB(c[e>>2]|0,h+24|0,g);b=VA(a,b)|0;hB(c[f>>2]|0,b+28|0,d);hB(c[e>>2]|0,b+20|0,d);return}function hB(a,b,d){a=a|0;b=b|0;d=d|0;Tz(a,c[b>>2]|0)|0;eb[c[a>>2]&63](a,d,2)|0;c[b>>2]=Pz(a)|0;return}function iB(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+16|0;f=e;d=(c[d>>2]&3|0)==2?d:d+-48|0;g=c[d>>2]&3;h=c[((g|0)==3?d:d+48|0)+40>>2]|0;g=c[((g|0)==2?d:d+-48|0)+40>>2]|0;c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];if(dB(b,h,g,f)|0){if((vC(b)|0)==(b|0)){if(a[b+24>>0]&64)MA(d);AC(b,d);ZC(d);h=d+8|0;GB(b,2,c[h>>2]|0,c[h+4>>2]|0)}if(!(zE(b,d,58,0,0)|0))if((vC(b)|0)==(b|0)){bC(b,d);d=0}else d=0;else d=-1}else d=-1;l=e;return d|0}function jB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+16|0;e=h;f=lC(a,c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0,d)|0;g=lC(a,c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0,d)|0;do if((f|0)!=0&(g|0)!=0){c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];e=dB(a,f,g,e)|0;f=(e|0)==0;if(!((d|0)!=0&f)){if(f)break}else{cB(a,b);e=b}d=c[e>>2]&3;l=h;return ((d|0)==(c[b>>2]&3|0)?e:e+(((d|0)==3?-1:1)*48|0)|0)|0}while(0);l=h;return 0}function kB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=b+8|0;e=d+8|0;e=t6(c[b>>2]|0,c[b+4>>2]|0,c[e>>2]|0,c[e+4>>2]|0)|0;return ((e|0)==0?0:e>>31|1)|0}function lB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;h=l;l=l+16|0;g=h;j=mB(e)|0;f=vb[c[(c[j>>2]|0)+4>>2]&127](c[j+12>>2]|0,72)|0;c[f>>2]=c[f>>2]&-4;i=f+64|0;c[i>>2]=j;k=f+24|0;d=c[d>>2]|0;c[k>>2]=d;a[k>>0]=d&255|8;c[f+60>>2]=f;e=vb[c[c[j+4>>2]>>2]&127](f,e)|0;c[(c[i>>2]|0)+16>>2]=e;if(EB(f,0,b,g,1)|0){i=g;j=c[i+4>>2]|0;k=f+8|0;c[k>>2]=c[i>>2];c[k+4>>2]=j}k=nB(f)|0;IB(k,0,f);l=h;return k|0}function mB(b){b=b|0;var d=0,e=0,f=0,g=0;d=(b|0)!=0;if(d){e=c[b>>2]|0;e=(e|0)==0?18780:e}else e=18780;g=pb[c[e>>2]&63](b)|0;f=vb[c[e+4>>2]&127](g,80)|0;c[f>>2]=e;c[f+12>>2]=g;if(d){g=c[b+4>>2]|0;c[f+4>>2]=(g|0)==0?18656:g;b=c[b+8>>2]|0;b=(b|0)==0?18756:b}else{c[f+4>>2]=18656;b=18756}c[f+8>>2]=b;a[f+52>>0]=1;return f|0}function nB(b){b=b|0;var d=0,e=0;c[b+36>>2]=SD(b,18836,c[4599]|0)|0;c[b+40>>2]=SD(b,18800,c[4599]|0)|0;d=(vC(b)|0)==(b|0);c[b+44>>2]=SD(b,d?18448:18484,c[4599]|0)|0;d=(vC(b)|0)==(b|0);c[b+48>>2]=SD(b,d?18520:18556,c[4599]|0)|0;c[b+52>>2]=SD(b,18592,c[4599]|0)|0;d=OD(b)|0;if(!((d|0)!=0?(e=oB(d,0)|0,c[b>>2]=c[b>>2]&15|e<<4,e=c[d+52>>2]|0,eb[c[e>>2]&63](e,b,1)|0,!(a[d+24>>0]&64)):0))qA(b);wC(b,b);return b|0}function oB(a,b){a=a|0;b=b|0;var d=0;d=(c[a+64>>2]|0)+24+(b<<3)|0;b=d;b=w6(c[b>>2]|0,c[b+4>>2]|0,1,0)|0;a=D;c[d>>2]=b;c[d+4>>2]=a;D=a;return b|0}function pB(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;f=OD(b)|0;g=(f|0)==0;h=b+64|0;if(g?(c[(c[c[h>>2]>>2]|0)+16>>2]|0)!=0:0){AC(b,b);d=b+8|0;GB(b,0,c[d>>2]|0,c[d+4>>2]|0);d=c[h>>2]|0;db[c[(c[d>>2]|0)+16>>2]&127](c[d+12>>2]|0);d=0}else e=4;do if((e|0)==4){d=MD(b)|0;while(1){if(!d)break;e=ND(d)|0;pB(d)|0;d=e}d=gC(b)|0;while(1){if(!d)break;e=hC(b,d)|0;sC(b,d)|0;d=e}RB(b);AC(b,b);if(((((UD(b,c[b+40>>2]|0)|0)==0?(UD(b,c[b+36>>2]|0)|0)==0:0)?(UD(b,c[b+48>>2]|0)|0)==0:0)?(UD(b,c[b+44>>2]|0)|0)==0:0)?(UD(b,c[b+52>>2]|0)|0)==0:0){if(a[b+24>>0]&64?JA(b)|0:0){d=-1;break}ZC(b);e=b+8|0;GB(b,0,c[e>>2]|0,c[e+4>>2]|0);if(!g){PD(f,b)|0;bC(f,b);d=0;break}while(1){d=c[h>>2]|0;e=c[d+48>>2]|0;if(!e)break;DC(b,c[e>>2]|0)|0}db[c[(c[d+4>>2]|0)+20>>2]&127](c[d+16>>2]|0);if(!(_C(b)|0)){d=c[h>>2]|0;h=c[d+12>>2]|0;g=(c[d>>2]|0)+12|0;lb[c[g>>2]&63](h,b);lb[c[g>>2]&63](h,d);d=0}else d=-1}else d=-1}while(0);return d|0}function qB(a){a=a|0;return Uz(c[a+40>>2]|0)|0}function rB(a){a=a|0;var b=0,c=0,d=0;b=0;c=gC(a)|0;while(1){if(!c)break;d=(sB(a,c,0,1)|0)+b|0;b=d;c=hC(a,c)|0}return b|0}function sB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=VA(a,b)|0;if(f){a=a+44|0;if(!e)b=0;else b=tB(c[a>>2]|0,f+32|0)|0;if(d)b=(tB(c[a>>2]|0,f+28|0)|0)+b|0}else b=0;return b|0}function tB(a,b){a=a|0;b=b|0;var d=0;Tz(a,c[b>>2]|0)|0;d=Uz(a)|0;c[b>>2]=Pz(a)|0;return d|0}function uB(b){b=b|0;return a[b+24>>0]&1|0}function vB(a){a=a|0;return (uB(a)|0)==0|0}function wB(a){a=a|0;return (d[a+24>>0]|0)>>>1&1|0}function xB(a,b){a=a|0;b=b|0;return a|0}function yB(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;if(!d){f=1392;d=c[f>>2]|0;f=c[f+4>>2]|0;c[e>>2]=d;c[e+4>>2]=f;f=w6(d|0,f|0,2,0)|0;e=1392;c[e>>2]=f;c[e+4>>2]=D}else{if(!f)a=aD(a,d)|0;else a=dD(a,d)|0;c[e>>2]=a;c[e+4>>2]=0}return 1}function zB(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return 0}function AB(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((c&1|0)==0&0==0)fD(a,c)|0;return}function BB(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ((c&1|0)==0&0==0?c:0)|0}function CB(a){a=a|0;return}function DB(a,b,c){a=a|0;b=b|0;c=c|0;return}
function Ol(a){a=a|0;var d=0,e=0,f=0,g=0;g=a+16|0;a=c[g>>2]|0;if(b[a+236>>1]|0)Aa(88706,88689,190,88725);d=c[a+196>>2]|0;a=(b[a+238>>1]<<6)+192|0;if(!d)a=IK(a)|0;else a=KK(d,a)|0;e=a+64|0;a=c[g>>2]|0;c[a+196>>2]=e;a=b[a+238>>1]|0;while(1){d=e+(a<<6)|0;if((a|0)<=-1)break;a=a+-1|0;e=e+(a<<6)|0;f=d+64|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(f|0));e=c[(c[g>>2]|0)+196>>2]|0}c[e+(a<<6)+8>>2]=0;c[d>>2]=0;e=HK(8)|0;g=c[g>>2]|0;f=c[g+196>>2]|0;c[f+(a<<6)+12>>2]=e;c[f+(a<<6)+4>>2]=e;c[f+(a<<6)+56>>2]=0;h[f+(a<<6)+24>>3]=1.0;h[f+(a<<6)+16>>3]=1.0;h[f+(a<<6)+40>>3]=1.0;h[f+(a<<6)+32>>3]=1.0;g=g+236|0;b[g>>1]=(b[g>>1]|0)+-1<<16>>16;return}function Pl(b){b=b|0;var d=0,e=0,f=0.0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0;j=b+16|0;if(c[(c[j>>2]|0)+96>>2]|0){m=b+48|0;k=dg(c[((c[b>>2]&3|0)==3?b:m)+40>>2]|0)|0;d=c[(c[(c[((c[b>>2]&3|0)==3?b:m)+40>>2]|0)+16>>2]|0)+232>>2]|0;l=Ql(k,b)|0;n=k+16|0;e=c[n>>2]|0;g=c[e+196>>2]|0;o=d+-1|0;i=c[c[g+(o<<6)+4>>2]>>2]|0;if(!i)f=+h[(c[(c[c[g+(d<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]+ +h[g+(d<<6)+24>>3]+ +(c[e+252>>2]|0);else f=+h[(c[i+16>>2]|0)+24>>3]-+h[g+(o<<6)+16>>3];d=Rl(k,o,l)|0;k=c[(c[j>>2]|0)+96>>2]|0;q=+h[k+24>>3];p=+h[k+32>>3];j=(c[(c[n>>2]|0)+116>>2]&1|0)==0;r=j?p:q;g=d+16|0;e=c[g>>2]|0;h[e+80>>3]=r;l=~~(r*.5);p=(j?q:p)*.5;h[e+96>>3]=p;h[e+88>>3]=p;c[e+104>>2]=k;h[e+24>>3]=+(l+~~f|0);e=kh(d,c[((c[b>>2]&3|0)==3?b:m)+40>>2]|0,b)|0;e=c[e+16>>2]|0;h[e+16>>3]=-+h[(c[g>>2]|0)+88>>3];h[e+56>>3]=+h[(c[(c[((c[b>>2]&3|0)==3?b:m)+40>>2]|0)+16>>2]|0)+96>>3];a[e+112>>0]=4;e=b+-48|0;d=kh(d,c[((c[b>>2]&3|0)==2?b:e)+40>>2]|0,b)|0;g=c[g>>2]|0;d=c[d+16>>2]|0;h[d+16>>3]=+h[g+96>>3];h[d+56>>3]=+h[(c[(c[((c[b>>2]&3|0)==2?b:e)+40>>2]|0)+16>>2]|0)+88>>3];a[d+112>>0]=4;d=c[(c[n>>2]|0)+196>>2]|0;e=d+(o<<6)+16|0;f=+(l|0);if(+h[e>>3]<f)h[e>>3]=f;d=d+(o<<6)+24|0;if(+h[d>>3]<f)h[d>>3]=f;c[g+112>>2]=b}return}function Ql(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+32|0;j=n+8|0;f=n+4|0;g=n;d=c[b>>2]&3;e=c[((d|0)==3?b:b+48|0)+40>>2]|0;k=(c[(c[e+16>>2]|0)+232>>2]|0)+-1|0;a=c[(c[a+16>>2]|0)+196>>2]|0;h=c[a+(k<<6)+4>>2]|0;a=c[a+(k<<6)>>2]|0;k=j+8|0;c[k>>2]=-1;c[j>>2]=-1;m=j+12|0;c[m>>2]=a;i=j+4|0;c[i>>2]=a;Sl(e,c[((d|0)==2?b:b+-48|0)+40>>2]|0,f,g);f=c[f>>2]|0;g=c[g>>2]|0;d=0;e=a;b=-1;while(1){if((d|0)>=(e|0))break;e=e+-1|0;Tl(c[h+(d<<2)>>2]|0,j,f,g);if((d|0)!=(e|0))Tl(c[h+(e<<2)>>2]|0,j,f,g);a=c[i>>2]|0;b=c[j>>2]|0;if((a-b|0)<2)break;else d=d+1|0}if((b|0)>(a|0))a=(c[m>>2]|0)+(c[k>>2]|0)|0;else a=a+b|0;l=n;return (a+1|0)/2|0|0}function Rl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=a+16|0;e=c[(c[g>>2]|0)+196>>2]|0;f=c[e+(b<<6)+4>>2]|0;e=(c[e+(b<<6)>>2]<<2)+8|0;if(!f)f=IK(e)|0;else f=KK(f,e)|0;e=c[(c[g>>2]|0)+196>>2]|0;c[e+(b<<6)+4>>2]=f;e=c[e+(b<<6)>>2]|0;while(1){if((e|0)<=(d|0))break;h=e+-1|0;i=c[f+(h<<2)>>2]|0;c[f+(e<<2)>>2]=i;i=(c[i+16>>2]|0)+236|0;c[i>>2]=(c[i>>2]|0)+1;e=h}h=ph(a)|0;i=f+(d<<2)|0;c[i>>2]=h;h=c[h+16>>2]|0;c[h+236>>2]=d;c[h+232>>2]=b;g=(c[(c[g>>2]|0)+196>>2]|0)+(b<<6)|0;h=(c[g>>2]|0)+1|0;c[g>>2]=h;c[f+(h<<2)>>2]=0;return c[i>>2]|0}function Sl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;a=c[(c[a+16>>2]|0)+236>>2]|0;b=c[(c[b+16>>2]|0)+236>>2]|0;f=(a|0)>(b|0);c[d>>2]=f?b:a;c[e>>2]=f?a:b;return}function Tl(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;h=o+4|0;g=o;b=c[b+16>>2]|0;do if((a[b+156>>0]|0)==1){n=c[b+236>>2]|0;m=d+4|0;j=c[b+180>>2]|0;if(c[b+176>>2]|0){b=0;g=0;h=0;while(1){i=c[j+(h<<2)>>2]|0;if(!i)break;i=c[(c[(c[((c[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;k=(i|0)>(e|0);b=k?((i|0)<(f|0)?b:1):b;g=k?g:1;h=h+1|0}if(g<<24>>24!=0&b<<24>>24==0){c[d>>2]=n+1;break}if(!(g<<24>>24==0&b<<24>>24!=0))break;c[m>>2]=n+-1;break}if((c[b+184>>2]|0)!=2)Aa(88669,88689,63,88696);k=c[j>>2]|0;j=c[j+4>>2]|0;Sl(c[((c[k>>2]&3|0)==2?k:k+-48|0)+40>>2]|0,c[((c[j>>2]&3|0)==2?j:j+-48|0)+40>>2]|0,h,g);j=c[g>>2]|0;k=d+8|0;if((j|0)<=(e|0)){c[d>>2]=n;c[k>>2]=n;break}i=c[h>>2]|0;h=d+12|0;if((i|0)>=(f|0)){c[m>>2]=n;c[h>>2]=n;break}b=(i|0)<(e|0);g=(j|0)>(f|0);if(!(g&b)){if(!(!b?!((j|0)<(f|0)&(i|0)==(e|0)):0))c[k>>2]=n;if(!g?!((j|0)==(f|0)&(i|0)>(e|0)):0)break;c[h>>2]=n}}while(0);l=o;return}function Ul(a){a=a|0;c[47180]=1;mm(a);c[47180]=0;return}function Vl(a){a=a|0;c[47180]=2;mm(a);c[47180]=0;return}function Wl(a){a=a|0;var b=0;RC(a,137750,304,1)|0;qP(a);b=HK((e[(c[(uC(a)|0)+16>>2]|0)+176>>1]|0)<<3)|0;c[(c[a+16>>2]|0)+132>>2]=b;oQ(a,c[(c[(uC(a)|0)+16>>2]|0)+116>>2]&1);return}function Xl(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0.0;u=l;l=l+64|0;j=u+48|0;p=u+40|0;k=u+24|0;i=u+8|0;s=u+56|0;n=u;do if((b|0)!=0?(t=e+16|0,q=c[(c[t>>2]|0)+132>>2]|0,g=OA(e,b)|0,(a[g>>0]|0)!=0):0){a[s>>0]=0;m=q+16|0;r=(d|0)!=0;b=q+8|0;if((c[47184]|0)>2?(c[i>>2]=q,c[i+4>>2]=b,c[i+8>>2]=m,c[i+12>>2]=s,(q4(g,88807,i)|0)>2):0){a[(c[t>>2]|0)+119>>0]=1;g=c[47184]|0;a:do if(+h[23314]>0.0){b=0;while(1){if((b|0)>=(g|0))break a;p=q+(b<<3)|0;h[p>>3]=+h[p>>3]/+h[23314];b=b+1|0}}while(0);if((g|0)>3)Cn(e,f,3);if((a[s>>0]|0)!=33){if(!r){b=1;break}if(!((bP(OA(e,d)|0)|0)<<24>>24)){b=1;break}}a[(c[t>>2]|0)+119>>0]=3;b=1;break}c[k>>2]=q;c[k+4>>2]=b;c[k+8>>2]=s;if((q4(g,102050,k)|0)<=1){c[j>>2]=HB(e)|0;c[j+4>>2]=g;dA(1,88821,j)|0;b=0;break}a[(c[t>>2]|0)+119>>0]=1;g=c[47184]|0;b:do if(+h[23314]>0.0){b=0;while(1){if((b|0)>=(g|0))break b;k=q+(b<<3)|0;h[k>>3]=+h[k>>3]/+h[23314];b=b+1|0}}while(0);do if((g|0)>2){b=c[47233]|0;if((b|0?(o=OA(e,b)|0,o|0):0)?(c[p>>2]=n,(q4(o,101510,p)|0)==1):0){w=+h[23314];v=+h[n>>3];h[m>>3]=w>0.0?v/w:v;Cn(e,f,3);break}Dn(e,f)}while(0);if((a[s>>0]|0)!=33){if(!r){b=1;break}if(!((bP(OA(e,d)|0)|0)<<24>>24)){b=1;break}}a[(c[t>>2]|0)+119>>0]=3;b=1}else b=0;while(0);l=u;return b|0}function Yl(a){a=a|0;var b=0,c=0;c=gC(a)|0;while(1){if(!c)break;b=UA(a,c)|0;while(1){if(!b)break;WP(b);b=WA(a,b)|0}UP(c);c=hC(a,c)|0}Zl(a);return}function Zl(a){a=a|0;if((c[47180]|0)!=0|(c[46837]|0)<0)An(a);if((vC(a)|0)!=(a|0))XC(a,0,137786);return}function _l(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+48|0;m=q+32|0;o=q;k=DA(b,0,102938,0)|0;e=DA(b,0,102972,0)|0;p=cP(NA(b,88865)|0,0)|0;if(!e)e=DA(b,0,102972,195341)|0;zn(b)|0;n=b+16|0;i=0;while(1){j=c[(c[(c[n>>2]|0)+152>>2]|0)+(i<<2)>>2]|0;if(!j){f=12;break}g=j+16|0;f=c[g>>2]|0;if(!(a[f+119>>0]|0)){if(h2(HB(j)|0,108307,7)|0){f=8;break}f=c[g>>2]|0}f=c[f+108>>2]|0;if(f|0)$l(j,f,102934);i=i+1|0}a:do if((f|0)==8){p=HB(j)|0;e=HB(b)|0;c[m>>2]=p;c[m+4>>2]=e;dA(1,88877,m)|0;e=-1}else if((f|0)==12){am(b,k,e);j=bm(b)|0;e=c[(c[n>>2]|0)+8>>2]|0;if(!(c[e+88>>2]|0))e=0;else{c[e+84>>2]=0;e=1}g=(d|0)!=0;i=(e|0)!=0;if(!(i|g&(c[47180]|0)==1^1)?(lr(b)|0)!=0:0){f=c[(c[n>>2]|0)+12>>2]|0;if(!f)f=1;else{a[f+81>>0]=0;f=1}}else f=0;zP(b);if(i){d=(c[n>>2]|0)+16|0;lI(o,b);c[d>>2]=c[o>>2];c[d+4>>2]=c[o+4>>2];c[d+8>>2]=c[o+8>>2];c[d+12>>2]=c[o+12>>2];c[d+16>>2]=c[o+16>>2];c[d+20>>2]=c[o+20>>2];c[d+24>>2]=c[o+24>>2];c[d+28>>2]=c[o+28>>2]}if(!g){c[47185]=1;f=gC(b)|0;while(1){if(!f)break a;p=c[f+16>>2]|0;o=c[p+132>>2]|0;h[p+16>>3]=+h[o>>3]*72.0;h[p+24>>3]=+h[o+8>>3]*72.0;f=hC(b,f)|0}}do if(!(p<<24>>24!=0|i)){p=c[n>>2]|0;if(!(+h[p+16>>3]!=0.0)?!(+h[p+24>>3]!=0.0):0)break;Zm(b)}while(0);if(!((j|0)!=0&(f|(Xm(b)|0)<<24>>24!=0))){if((j|0)==2){c[47185]=1;break}}else cm(b);Wm(b,0)}while(0);l=q;return e|0}function $l(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0;k=l;l=l+48|0;j=k+32|0;f=k+24|0;g=k+16|0;i=k;b=NA(b,e)|0;if(b|0?(c[j>>2]=f,c[j+4>>2]=g,(q4(b,105804,j)|0)==2):0){j=d+56|0;fm(i,+h[f>>3],+h[g>>3]);c[j>>2]=c[i>>2];c[j+4>>2]=c[i+4>>2];c[j+8>>2]=c[i+8>>2];c[j+12>>2]=c[i+12>>2];a[d+81>>0]=1}l=k;return}function am(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+48|0;k=m+32|0;f=m+24|0;g=m+16|0;i=m;j=b+16|0;if((d|0?(c[(c[j>>2]|0)+12>>2]|0)!=0:0)?(n=OA(b,d)|0,c[k>>2]=f,c[k+4>>2]=g,(q4(n,105804,k)|0)==2):0){n=(c[(c[j>>2]|0)+12>>2]|0)+56|0;fm(i,+h[f>>3],+h[g>>3]);c[n>>2]=c[i>>2];c[n+4>>2]=c[i+4>>2];c[n+8>>2]=c[i+8>>2];c[n+12>>2]=c[i+12>>2];a[(c[(c[j>>2]|0)+12>>2]|0)+81>>0]=1}a:do if(e|0){f=MD(b)|0;while(1){if(!f)break a;gm(f,b,d,e);f=ND(f)|0}}while(0);l=m;return}function bm(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;if(rB(a)|0){f=DA(a,2,102924,0)|0;if(!((f|0)==0|(c[47180]|0)<2)){b=0;e=gC(a)|0;while(1){if(!e)break;d=UA(a,e)|0;while(1){if(!d)break;g=((dm(f,d)|0)!=0&1)+b|0;d=WA(a,d)|0;b=g}e=hC(a,e)|0}if(b){b=(b|0)==(rB(a)|0);b=b?2:1}else b=0}else b=0}else b=2;return b|0}function cm(a){a=a|0;var b=0,d=0,e=0;d=gC(a)|0;while(1){if(!d)break;b=UA(a,d)|0;while(1){if(!b)break;XP(b);e=b+16|0;AK(c[(c[e>>2]|0)+96>>2]|0);AK(c[(c[e>>2]|0)+108>>2]|0);AK(c[(c[e>>2]|0)+100>>2]|0);AK(c[(c[e>>2]|0)+104>>2]|0);b=WA(a,b)|0}d=hC(a,d)|0}return}function dm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0.0,j=0.0,k=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;B=l;l=l+96|0;z=B+72|0;x=B+56|0;A=B+48|0;y=B+32|0;w=B+16|0;r=B+88|0;s=B+8|0;t=B;u=B+84|0;v=B+80|0;b=OA(d,b)|0;do if(a[b>>0]|0){FH(d,u,v);q=1;f=0;e=0;j=0.0;i=0.0;k=0.0;g=0.0;a:while(1){c[w>>2]=s;c[w+4>>2]=t;c[w+8>>2]=r;if((q4(b,88914,w)|0)==2){p=1;b=b+(c[r>>2]|0)|0;i=+h[s>>3];g=+h[t>>3]}else p=e;c[y>>2]=s;c[y+4>>2]=t;c[y+8>>2]=r;if((q4(b,88926,y)|0)==2){o=1;b=b+(c[r>>2]|0)|0;j=+h[s>>3];k=+h[t>>3]}else o=f;m=em(b)|0;if(!((m|0)>3&((m|0)%3|0|0)==1)){e=8;break}n=IK(m<<4)|0;e=n;f=m;while(1){if(!f)break;c[x>>2]=s;c[x+4>>2]=t;c[x+8>>2]=r;if((q4(b,88996,x)|0)<2){e=13;break a}C=b+(c[r>>2]|0)|0;h[e>>3]=+h[s>>3];h[e+8>>3]=+h[t>>3];e=e+16|0;f=f+-1|0;b=C}while(1){e=a[b>>0]|0;f=b+1|0;if(!(X1(e<<24>>24)|0))break;else b=f}C=e<<24>>24==0;b=C?b:f;q=C?0:q;f=aO(d,m)|0;if(p|0){c[f+8>>2]=c[u>>2];h[f+16>>3]=i;h[f+24>>3]=g}if(o|0){c[f+12>>2]=c[v>>2];h[f+32>>3]=j;h[f+40>>3]=k}e=0;while(1){if((e|0)>=(m|0))break;C=(c[f>>2]|0)+(e<<4)|0;D=n+(e<<4)|0;c[C>>2]=c[D>>2];c[C+4>>2]=c[D+4>>2];c[C+8>>2]=c[D+8>>2];c[C+12>>2]=c[D+12>>2];e=e+1|0}l6(n);if(!q){e=26;break}else{f=o;e=p}}if((e|0)==8){XP(d);if(a[194051]|0){b=0;break}a[194051]=1;D=HB(c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0)|0;b=HB(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)|0;c[A>>2]=D;c[A+4>>2]=b;dA(0,88939,A)|0;b=0;break}else if((e|0)==13){if(!(a[194051]|0)){a[194051]=1;C=HB(c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0)|0;D=HB(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)|0;c[z>>2]=C;c[z+4>>2]=D;dA(0,89006,z)|0}l6(n);XP(d);b=0;break}else if((e|0)==26){f=d+16|0;b=c[f>>2]|0;e=c[b+96>>2]|0;if(e){$l(d,e,102938);b=c[f>>2]|0}e=c[b+108>>2]|0;if(e){$l(d,e,102934);b=c[f>>2]|0}e=c[b+100>>2]|0;if(e){$l(d,e,102941);b=c[f>>2]|0}b=c[b+104>>2]|0;if(!b){b=1;break}$l(d,b,102949);b=1;break}}else b=0;while(0);l=B;return b|0}function em(b){b=b|0;var c=0,d=0;d=0;do{while(1){c=a[b>>0]|0;if(!(X1(c&255)|0))break;else b=b+1|0}a:do if(!(c<<24>>24))c=0;else{d=d+1|0;while(1){if(!(c<<24>>24)){c=0;break a}if(c<<24>>24==59|(X1(c&255)|0)!=0)break a;c=b+1|0;b=c;c=a[c>>0]|0}}while(0)}while((X1(c&255)|0)!=0);return d|0}function fm(a,b,c){a=a|0;b=+b;c=+c;h[a>>3]=b;h[a+8>>3]=c;return}function gm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=l;l=l+32|0;f=h;if((h2(HB(a)|0,108307,7)|0)==0?(hm(a,e,f)|0)!=0:0){RC(a,137786,280,1)|0;i=(c[a+16>>2]|0)+16|0;c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[i+16>>2]=c[f+16>>2];c[i+20>>2]=c[f+20>>2];c[i+24>>2]=c[f+24>>2];c[i+28>>2]=c[f+28>>2];im(b,a);am(a,d,e)}else g=4;a:do if((g|0)==4){a=MD(a)|0;while(1){if(!a)break a;gm(a,b,d,e);a=ND(a)|0}}while(0);l=h;return}function hm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,g=0,i=0,j=0,k=0;i=l;l=l+48|0;j=i+32|0;g=i;k=OA(a,b)|0;a=g+8|0;b=g+24|0;c[j>>2]=g;c[j+4>>2]=a;c[j+8>>2]=g+16;c[j+12>>2]=b;if((q4(k,89054,j)|0)==4){e=+h[a>>3];f=+h[b>>3];if(e>f){h[a>>3]=f;h[b>>3]=e};c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];c[d+12>>2]=c[g+12>>2];c[d+16>>2]=c[g+16>>2];c[d+20>>2]=c[g+20>>2];c[d+24>>2]=c[g+24>>2];c[d+28>>2]=c[g+28>>2];a=1}else a=0;l=i;return a|0}function im(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=a+16|0;d=c[e>>2]|0;g=d+180|0;a=c[g>>2]|0;f=a+1|0;c[g>>2]=f;d=c[d+184>>2]|0;a=a+2|0;if(!d)a=HK(a<<2)|0;else a=JK(d,a,4,f)|0;c[(c[e>>2]|0)+184>>2]=a;c[a+(f<<2)>>2]=b;sK(b);return}function jm(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+48|0;m=n+8|0;k=n;i=n+16|0;j=n+12|0;h=NA(b,89070)|0;do if((h|0)!=0?(g=a[h>>0]|0,g<<24>>24!=0):0){g=g&255;if(!(P2(g)|0))if((e|0)==2|(g+-48|0)>>>0<10)e=h;else break;else{if(!(h2(h,89076,4)|0)){e=0;break}if(!(h2(h,105812,7)|0)){e=1;break}if(h2(h,89081,6)|0)if((e|0)==2)e=h;else break;else e=h+6|0}if(!(((d[e>>0]|0)+-48|0)>>>0<10?(c[k>>2]=j,(q4(e,100234,k)|0)>=1):0)){k=e4()|0;k=(Ya(0)|0)^k;c[j>>2]=k;c[m>>2]=k;i2(i,100234,m)|0;PA(b,89070,i)|0}c[f>>2]=c[j>>2];e=2}while(0);l=n;return e|0}function km(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=l;l=l+16|0;e=f+4|0;c[e>>2]=1;d=jm(a,d,e)|0;if((d|0)!=2&(c[46838]|0)!=0)dA(0,89088,f)|0;if((d|0)==1)lm(a,b);W4(c[e>>2]|0);l=f;return d|0}function lm(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0.0,i=0.0,j=0,k=0,l=0.0;g=+(d|0);i=6.283185307179586/g;e=gC(b)|0;f=0.0;while(1){if(!e)break;l=g*+I(+f);j=c[e+16>>2]|0;k=c[j+132>>2]|0;h[k>>3]=l;h[k+8>>3]=g*+J(+f);a[j+119>>0]=1;if((c[47184]|0)>2)Dn(e,d);e=hC(b,e)|0;f=i+f}return}function mm(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0.0,r=0;r=l;l=l+80|0;d=r+24|0;n=r+32|0;k=r;p=r+28|0;m=r+64|0;q=+h[23314];do if(c[47180]|0){h[23314]=72.0;nm(b);om(b);if((_l(b,1)|0)<0){dA(3,89136,d)|0;break}else{aM(b,0);f=32;break}}else{o=cP(NA(b,88865)|0,0)|0;h[23314]=+ZO(b);nm(b);g=pm(b)|0;Kq(b,k,0)|0;i=qm(b)|0;j=kH(b,0,n)|0;d=jH(b,-1,8)|0;c[46837]=d;e=(d|0)<0;do if(!j){if((g|0)!=0&e){c[46837]=8;c[n+16>>2]=2;f=11;break}c[n+16>>2]=2;if((d|0)<=-1){rm(b,g,i);Nq(b,k)|0;om(b);if(!(o<<24>>24)){cn(b);break}else{sm(b);break}}else f=11}else if(e){c[46837]=8;f=11}else f=11;while(0);if((f|0)==11){j=qG(b,p,89164,m)|0;d=c[p>>2]|0;do if((d|0)<=1){rm(b,g,i);Nq(b,k)|0;if(!(o<<24>>24)){cn(b);break}else{sm(b);break}}else{f=o<<24>>24==0;e=0;while(1){if((e|0)>=(d|0))break;d=c[j+(e<<2)>>2]|0;IG(d)|0;rm(d,g,i);Nq(d,k)|0;mQ(d,2);if(f)cn(d);else sm(d);e=e+1|0;d=c[p>>2]|0}if(!(a[m>>0]|0))e=0;else{e=HK(d)|0;a[e>>0]=1;d=c[p>>2]|0}c[n+8>>2]=c[46837];c[n+20>>2]=e;c[n+12>>2]=1;gH(d,j,b,n)|0;l6(e)}while(0);zP(b);om(b);d=0;while(1){if((d|0)>=(c[p>>2]|0))break;n=c[j+(d<<2)>>2]|0;An(n);TC(n,137786)|0;tC(b,n)|0;d=d+1|0}l6(j)}aM(b,o<<24>>24==0&1);f=32}while(0);if((f|0)==32)h[23314]=q;l=r;return}function nm(a){a=a|0;var d=0,e=0,f=0,g=0;mQ(a,2);f=XO(a,DA(a,0,91669,0)|0,2,2)|0;d=(XO(a,DA(a,0,91675,0)|0,f,2)|0)&65535;b[(c[(vC(a)|0)+16>>2]|0)+176>>1]=d;d=c[(c[a+60>>2]|0)+16>>2]|0;g=d+176|0;e=b[g>>1]|0;e=(e&65535)<10?e:10;b[g>>1]=e;e=e&65535;c[47184]=e;b[d+178>>1]=(f|0)<(e|0)?f:e;Cm(a);return}function om(a){a=a|0;var b=0,d=0,e=0,f=0;f=l;l=l+1040|0;e=f;d=f+8|0;a:do if((c[47184]|0)>2&(c[47233]|0)!=0){b=gC(a)|0;while(1){if(!b)break a;h[e>>3]=+h[(c[(c[b+16>>2]|0)+132>>2]|0)+16>>3]*72.0;i2(d,101510,e)|0;HA(b,c[47233]|0,d)|0;b=hC(a,b)|0}}while(0);l=f;return}function pm(b){b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=NA(b,89849)|0;a:do if(!d)b=1;else{switch(a[d>>0]|0){case 0:{b=1;break a}case 75:{if(!(f2(d,89854)|0)){b=0;break a}break}case 109:{if(!(f2(d,89857)|0)){b=1;break a}break}case 104:{if(!(f2(d,89863)|0)){b=2;break a}break}default:{}}b=HB(b)|0;c[e>>2]=d;c[e+4>>2]=b;dA(0,89868,e)|0;b=1}while(0);l=f;return b|0}function qm(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=l;l=l+32|0;g=h+16|0;f=h+8|0;e=h;d=NA(b,89632)|0;a:do if(!d)b=0;else{switch(a[d>>0]|0){case 0:{b=0;break a}case 99:{if(!(f2(d,89638)|0)){b=1;break a}break}case 115:{if(!(f2(d,89646)|0)){b=2;break a}if(!(f2(d,89653)|0)){b=0;break a}break}case 109:{if(!(f2(d,89663)|0)){if(DA(b,2,92794,0)|0){b=3;break a}c[e>>2]=HB(b)|0;dA(0,89667,e)|0;dA(3,89730,f)|0;b=0;break a}break}default:{}}b=HB(b)|0;c[g>>2]=d;c[g+4>>2]=b;dA(0,89787,g)|0;b=0}while(0);l=h;return b|0}function rm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=NA(a,91362)|0;if(!e)if((b|0)==1)e=200;else e=(qB(a)|0)*100|0;else e=d6(e)|0;c[47183]=e;e=tn(a,b)|0;do if(!((e|0)<2|(c[47183]|0)<0))if(!b){um(a,e,d);break}else{tm(a,e,b,d,c[47184]|0);break}while(0);return}function sm(a){a=a|0;zP(a);Wm(a,1);return}function tm(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+64|0;s=v+40|0;p=v+24|0;o=v;q=v+48|0;u=v+44|0;r=(e|0)==2;j=km(b,d,r?0:2)|0;k=Bm(b)|0;m=k|4;t=IK(g<<2)|0;c[t>>2]=IK(S(d<<3,g)|0)|0;i=c[47184]|0;g=1;while(1){if((g|0)>=(i|0))break;c[t+(g<<2)>>2]=(c[t>>2]|0)+((S(g,d)|0)<<3);g=g+1|0}i=(j|0)==0;g=i?m:k;if(a[195234]|0){m=c[15715]|0;k=c[47183]|0;n=+h[23315];c[o>>2]=f;c[o+4>>2]=i&1;c[o+8>>2]=g&3;c[o+12>>2]=k;h[o+16>>3]=n;z4(m,89445,o)|0;_3(89502,15,1,m)|0;RO();_3(89518,13,1,m)|0}o=xm(b,d,q,e,f,u)|0;if(a[195234]|0){m=c[15715]|0;n=+SO();c[p>>2]=d;h[p+8>>3]=n;z4(m,89532,p)|0}if((e|0)!=1){n=+YO(b,DA(b,0,89551,0)|0,0.0,-1797693134862315708145274.0e284);if(r){g=yr(o,d,c[q>>2]|0,t,c[u>>2]|0,c[47184]|0,g,f,c[47183]|0,n)|0;i=12}else i=14}else{g=ln(o,d,c[q>>2]|0,t,c[u>>2]|0,c[47184]|0,g,f,c[47183]|0)|0;i=12}if((i|0)==12)if((g|0)<0)dA(3,89561,s)|0;else i=14;a:do if((i|0)==14){i=gC(b)|0;while(1){if(!i)break a;m=c[i+16>>2]|0;j=c[m+120>>2]|0;k=c[47184]|0;m=m+132|0;g=0;while(1){if((g|0)>=(k|0))break;h[(c[m>>2]|0)+(g<<3)>>3]=+h[(c[t+(g<<2)>>2]|0)+(j<<3)>>3];g=g+1|0}i=hC(b,i)|0}}while(0);Zr(o);l6(c[t>>2]|0);l6(t);l6(c[u>>2]|0);l=v;return}function um(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0.0,k=0;i=l;l=l+48|0;g=i+32|0;f=i;switch(e|0){case 2:{vm(b,d);break}case 1:{if(!(ur(b,d)|0)){c[f>>2]=HB(b)|0;dA(0,89174,f)|0;dA(3,93665,i+8|0)|0;dA(3,89226,i+16|0)|0;dA(3,89298,i+24|0)|0;Rn(b,d)}break}default:{Rn(b,d);if((e|0)==3)wm(b)}}Fn(b,d);Gn(b,d);if(a[195234]|0){f=c[15715]|0;k=c[47183]|0;j=+h[23315];c[g>>2]=e;c[g+4>>2]=k;h[g+8>>3]=j;z4(f,89336,g)|0;RO()}Hn(b,d);l=i;return}function vm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0;j=l;l=l+16|0;g=xm(a,b,j,0,2,0)|0;i=$s(g,b)|0;e=a+16|0;a=0;while(1){if((a|0)>=(b|0))break;f=i+(a<<2)|0;d=0;while(1){if((d|0)==(b|0))break;h[(c[(c[(c[e>>2]|0)+160>>2]|0)+(a<<2)>>2]|0)+(d<<3)>>3]=+(c[(c[f>>2]|0)+(d<<2)>>2]|0);d=d+1|0}a=a+1|0}l6(c[i>>2]|0);l6(i);Zr(g);l=j;return}function wm(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0.0;f=a+16|0;d=gC(a)|0;while(1){if(!d)break;b=UA(a,d)|0;while(1){if(!b)break;g=c[b>>2]&3;e=(c[c[((g|0)==3?b:b+48|0)+40>>2]>>2]|0)>>>4;g=(c[c[((g|0)==2?b:b+-48|0)+40>>2]>>2]|0)>>>4;if((e|0)!=(g|0)){j=+h[(c[b+16>>2]|0)+136>>3];i=c[(c[f>>2]|0)+160>>2]|0;h[(c[i+(g<<2)>>2]|0)+(e<<3)>>3]=j;h[(c[i+(e<<2)>>2]|0)+(g<<3)>>3]=j}b=WA(a,b)|0}d=hC(a,d)|0}return}function xm(a,b,d,e,f,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0;j=rB(a)|0;H=TL()|0;if((f|0)==2){k=0;E=0}else{E=DA(a,2,92794,0)|0;k=(c[47236]|0)!=0&1;E=(E|0)!=0}B=(e|1|0)==3;F=IK(b*20|0)|0;G=IK(b<<2)|0;l=(j<<1)+b<<2;m=IK(l)|0;A=B|E;if(A)f=IK(l)|0;else f=0;D=(k|0)!=0;if(D)j=IK(l)|0;else j=0;if(B)k=IK(l)|0;else k=0;l=0;y=gC(a)|0;z=0;while(1){if(!y)break;WL(H);if((c[(c[y+16>>2]|0)+120>>2]|0)!=(z|0)){C=12;break}c[G+(z<<2)>>2]=y;v=F+(z*20|0)+4|0;c[v>>2]=m;w=F+(z*20|0)+8|0;c[w>>2]=A?f:0;x=F+(z*20|0)+12|0;c[x>>2]=D?j:0;c[F+(z*20|0)+16>>2]=B?k:0;s=1;u=ZA(a,y)|0;t=1;r=l;m=m+4|0;f=A?f+4|0:f;j=D?j+4|0:j;k=B?k+4|0:k;while(1){if(!u)break;p=c[u>>2]&3;q=u+-48|0;l=u+48|0;do if((c[((p|0)==2?u:q)+40>>2]|0)==(c[((p|0)==3?u:l)+40>>2]|0)){n=s;p=t;l=r}else{n=ym(H,u,s)|0;p=u+16|0;if((n|0)!=(s|0)){if(D){q=(c[x>>2]|0)+(n<<2)|0;g[q>>2]=+h[(c[p>>2]|0)+128>>3]+ +g[q>>2]}if(!E){n=s;p=t;l=r;break}n=(c[w>>2]|0)+(n<<2)|0;I=+h[(c[p>>2]|0)+136>>3];o=+(~~+g[n>>2]|0);g[n>>2]=I>o?I:o;n=s;p=t;l=r;break}J=c[u>>2]&3;l=(J|0)==3?u:l;r=r+1|0;n=s+1|0;s=m+4|0;c[m>>2]=c[(c[(c[((c[l+40>>2]|0)==(y|0)?((J|0)==2?u:q):l)+40>>2]|0)+16>>2]|0)+120>>2];if(D){g[j>>2]=+h[(c[p>>2]|0)+128>>3];j=j+4|0}m=f+4|0;if(E){g[f>>2]=+h[(c[p>>2]|0)+136>>3];if(B)C=27;else f=m}else if(B){g[f>>2]=1.0;C=27}if((C|0)==27){C=0;f=NA(u,101860)|0;l=k+4|0;if((f|0)!=0?(h2(f,136010,4)|0)==0:0)o=0.0;else o=(y|0)==(c[((c[u>>2]&3|0)==2?u:q)+40>>2]|0)?1.0:-1.0;g[k>>2]=o;f=m;k=l}p=t+1|0;l=r;m=s}while(0);s=n;u=_A(a,u,y)|0;t=p;r=l}c[F+(z*20|0)>>2]=t;c[c[v>>2]>>2]=z;l=r;y=hC(a,y)|0;z=z+1|0}if((C|0)==12)Aa(89375,89390,819,89402);if(B)zm(F,b,e,G);n=(l|0)/2|0;a:do if((n|0)!=(rB(a)|0)){l=(n<<1)+b<<2;k=KK(c[F+4>>2]|0,l)|0;if(E)f=KK(c[F+8>>2]|0,l)|0;if(D){m=0;j=KK(c[F+12>>2]|0,l)|0}else m=0;while(1){if((m|0)>=(b|0))break a;l=c[F+(m*20|0)>>2]|0;c[F+(m*20|0)+4>>2]=k;if(E){c[F+(m*20|0)+8>>2]=f;f=f+(l<<2)|0}if(D){c[F+(m*20|0)+12>>2]=j;j=j+(l<<2)|0}m=m+1|0;k=k+(l<<2)|0}}while(0);c[d>>2]=n;if(!i)l6(G);else c[i>>2]=G;XL(H);return F|0}function ym(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=c[b>>2]&3;e=c[(c[(c[((f|0)==3?b:b+48|0)+40>>2]|0)+16>>2]|0)+120>>2]|0;b=c[(c[(c[((f|0)==2?b:b+-48|0)+40>>2]|0)+16>>2]|0)+120>>2]|0;f=(e|0)>(b|0);return YL(a,f?b:e,f?e:b,d)|0}function zm(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=0;while(1){if((g|0)>=(d|0)){g=0;break}h=c[(c[f+(g<<2)>>2]|0)+16>>2]|0;a[h+157>>0]=0;a[h+158>>0]=0;g=g+1|0}while(1){if((g|0)>=(d|0))break;if(!(a[(c[(c[f+(g<<2)>>2]|0)+16>>2]|0)+157>>0]|0))Am(b,g,e,f);g=g+1|0}return}function Am(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0;q=(c[f+(d<<2)>>2]|0)+16|0;l=c[q>>2]|0;a[l+157>>0]=1;a[l+158>>0]=1;l=b+(d*20|0)|0;m=b+(d*20|0)+16|0;n=b+(d*20|0)+4|0;o=(e|0)==3?-1.0:1.0;k=1;a:while(1){if((k|0)>=(c[l>>2]|0)){h=14;break}h=(c[m>>2]|0)+(k<<2)|0;do if(!(+g[h>>2]==1.0)){p=c[(c[n>>2]|0)+(k<<2)>>2]|0;i=c[(c[f+(p<<2)>>2]|0)+16>>2]|0;if(!(a[i+158>>0]|0)){if(a[i+157>>0]|0)break;Am(b,p,e,f);break}g[h>>2]=o;i=c[b+(p*20|0)>>2]|0;j=b+(p*20|0)+4|0;h=1;while(1){if((h|0)>=(i|0)){h=9;break a}if((c[(c[j>>2]|0)+(h<<2)>>2]|0)==(d|0))break;h=h+1|0}g[(c[b+(p*20|0)+16>>2]|0)+(h<<2)>>2]=-1.0}while(0);k=k+1|0}if((h|0)==9)Aa(89416,89390,721,89436);else if((h|0)==14){a[(c[q>>2]|0)+158>>0]=0;return}}function Bm(a){a=a|0;var b=0,d=0;d=l;l=l+16|0;b=d;a=XO(a,DA(a,0,89577,0)|0,2,0)|0;if((a|0)==0|(a|0)>2){c[b>>2]=89577;dA(0,89586,b)|0;a=2}l=d;return a|0}function Cm(a){a=a|0;var b=0,d=0,e=0;d=qB(a)|0;c[46838]=DA(a,1,102924,0)|0;e=DA(a,1,90961,0)|0;b=gC(a)|0;while(1){if(!b)break;Wl(b);Xl(c[46838]|0,e,b,d)|0;b=hC(a,b)|0}d=gC(a)|0;while(1){if(!d)break;b=UA(a,d)|0;while(1){if(!b)break;Dm(b);b=WA(a,b)|0}d=hC(a,d)|0}return}function Dm(a){a=a|0;var b=0.0;RC(a,137763,176,1)|0;rP(a)|0;b=+YO(a,c[47236]|0,1.0,1.0);h[(c[a+16>>2]|0)+128>>3]=b;return}function Em(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0;a=HK(64)|0;e=a+8|0;f=d+8|0;g=e+48|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));d=c[d+56>>2]|0;c[a+56>>2]=d;b[(c[d+16>>2]|0)+168>>1]=1;return a|0}function Fm(a,b,c){a=a|0;b=b|0;c=c|0;l6(b);return}function Gm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=c[b>>2]|0;e=c[d>>2]|0;if(a>>>0<=e>>>0)if(a>>>0>=e>>>0){e=c[b+24>>2]|0;a=c[d+24>>2]|0;if(e>>>0<=a>>>0)if(e>>>0>=a>>>0){a=~~(+h[b+8>>3]-+h[d+8>>3]);if(!a){a=~~(+h[b+16>>3]-+h[d+16>>3]);if(!a){a=~~(+h[b+32>>3]-+h[d+32>>3]);if(!a)a=~~(+h[b+40>>3]-+h[d+40>>3])}}}else a=-1;else a=1}else a=-1;else a=1;return a|0}function Hm(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0.0,j=0,k=0,m=0;k=l;l=l+16|0;g=k;h=e+16|0;m=b[(c[h>>2]|0)+168>>1]|0;j=m<<16>>16;i=+(f|0);if(m<<16>>16!=1&(a[195236]|0)==0){h=IK(j<<2)|0;f=0;while(1){if((f|0)>=(j|0))break;c[h+(f<<2)>>2]=e;e=c[(c[e+16>>2]|0)+172>>2]|0;f=f+1|0}jO(d,h,0,j,i,i,17832);e=0;while(1){if((e|0)>=(j|0))break;f=c[h+(e<<2)>>2]|0;g=f+16|0;if(c[(c[g>>2]|0)+96>>2]|0){m=uC(c[((c[f>>2]&3|0)==3?f:f+48|0)+40>>2]|0)|0;xP(m,c[(c[g>>2]|0)+96>>2]|0)}qO(f);e=e+1|0}l6(h)}else{c[g>>2]=e;jO(d,g,0,1,i,i,17832);if(c[(c[h>>2]|0)+96>>2]|0){m=uC(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)|0;xP(m,c[(c[h>>2]|0)+96>>2]|0)}qO(e)}l=k;return}function Im(a){a=a|0;return 0}function Jm(a){a=a|0;return 0}function Km(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,i=0,j=0.0,k=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,H=0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0,Q=0,R=0.0,S=0,T=0,U=0;U=l;l=l+384|0;P=U+368|0;Q=U+112|0;y=U+32|0;q=U+336|0;D=U+320|0;E=U+304|0;F=U+288|0;H=U+272|0;z=U+256|0;A=U+240|0;B=U+224|0;C=U+208|0;i=U+192|0;r=U+176|0;s=U+160|0;t=U+144|0;u=U+128|0;v=U+96|0;w=U+16|0;x=U;S=d+4|0;T=b+16|0;a:do switch(UM(b)|0){case 3:case 1:{b=HK(8)|0;f=c[T>>2]|0;i=c[f+12>>2]|0;do if(!(e<<24>>24)){f=c[i+8>>2]|0;if((f|0)>2){R=0.0;y=c[i+44>>2]|0;q=0;K=+g[d>>2];L=+g[S>>2];break}else{R=+S4()*.01;f=8;y=0;q=1;K=0.0;L=0.0;break}}else if(!(c[i+40>>2]&2048)){L=+h[f+88>>3];K=-L;R=+h[f+80>>3];O=R*-.5;h[y>>3]=K;h[y+8>>3]=O;h[y+16>>3]=L;h[y+24>>3]=O;R=R*.5;h[y+32>>3]=L;h[y+40>>3]=R;h[y+48>>3]=K;h[y+56>>3]=R;R=0.0;f=4;q=0;K=0.0;L=0.0;break}else{wP(q,i);K=+h[q>>3];O=+h[q+8>>3];L=+h[q+16>>3];R=+h[q+24>>3];h[y>>3]=K;h[y+8>>3]=O;h[y+16>>3]=L;h[y+24>>3]=O;h[y+32>>3]=L;h[y+40>>3]=R;h[y+48>>3]=K;h[y+56>>3]=R;R=0.0;f=4;q=0;K=0.0;L=0.0;break}while(0);c[b+4>>2]=f;r=HK(f<<4)|0;c[b>>2]=r;s=d+8|0;M=+(f|0);t=(f|0)==4;N=-K;O=-L;e=0;while(1){if((f|0)<=(e|0))break a;i=(a[s>>0]|0)!=0;u=c[T>>2]|0;do if(q){k=R+ +(e|0)*6.283185307179586/M;o=+I(+k);k=+J(+k);p=+g[d>>2];m=+g[S>>2];j=+h[u+80>>3];n=+h[u+96>>3]+ +h[u+88>>3];if(i){k=k*(m+j);j=o*(p+n)}else{k=k*m*j;j=o*p*n}m=j*.5;j=k*.5}else{n=+h[y+(e<<4)+8>>3];m=+h[y+(e<<4)>>3];if(!i){m=K*m;j=L*n;break}if(!t){j=+G(+(n*n+m*m));m=m*(K/j+1.0);j=n*(L/j+1.0);break}switch(e|0){case 0:{k=L;j=K;break}case 1:{k=L;j=N;break}case 2:{k=O;j=N;break}case 3:{k=O;j=K;break}default:{k=0.0;j=0.0}}m=m+j;j=n+k}while(0);Q=f-e+-1|0;h[r+(Q<<4)>>3]=m+ +h[u+16>>3];h[r+(Q<<4)+8>>3]=j+ +h[u+24>>3];e=e+1|0}}case 2:{b=c[(c[T>>2]|0)+12>>2]|0;j=+h[b+16>>3];n=+h[b+24>>3];k=+h[b+32>>3];m=+h[b+40>>3];b=HK(8)|0;c[b+4>>2]=4;f=HK(64)|0;c[b>>2]=f;T=(c[T>>2]|0)+16|0;c[Q>>2]=c[T>>2];c[Q+4>>2]=c[T+4>>2];c[Q+8>>2]=c[T+8>>2];c[Q+12>>2]=c[T+12>>2];if(!(a[d+8>>0]|0)){c[P>>2]=c[Q>>2];c[P+4>>2]=c[Q+4>>2];c[P+8>>2]=c[Q+8>>2];c[P+12>>2]=c[Q+12>>2];Mm(z,j,n,P,d);c[f>>2]=c[z>>2];c[f+4>>2]=c[z+4>>2];c[f+8>>2]=c[z+8>>2];c[f+12>>2]=c[z+12>>2];T=(c[b>>2]|0)+16|0;c[P>>2]=c[Q>>2];c[P+4>>2]=c[Q+4>>2];c[P+8>>2]=c[Q+8>>2];c[P+12>>2]=c[Q+12>>2];Mm(A,j,m,P,d);c[T>>2]=c[A>>2];c[T+4>>2]=c[A+4>>2];c[T+8>>2]=c[A+8>>2];c[T+12>>2]=c[A+12>>2];T=(c[b>>2]|0)+32|0;c[P>>2]=c[Q>>2];c[P+4>>2]=c[Q+4>>2];c[P+8>>2]=c[Q+8>>2];c[P+12>>2]=c[Q+12>>2];Mm(B,k,m,P,d);c[T>>2]=c[B>>2];c[T+4>>2]=c[B+4>>2];c[T+8>>2]=c[B+8>>2];c[T+12>>2]=c[B+12>>2];T=(c[b>>2]|0)+48|0;c[P>>2]=c[Q>>2];c[P+4>>2]=c[Q+4>>2];c[P+8>>2]=c[Q+8>>2];c[P+12>>2]=c[Q+12>>2];Mm(C,k,n,P,d);c[T>>2]=c[C>>2];c[T+4>>2]=c[C+4>>2];c[T+8>>2]=c[C+8>>2];c[T+12>>2]=c[C+12>>2];break a}else{R=j-+g[d>>2];O=n-+g[S>>2];c[P>>2]=c[Q>>2];c[P+4>>2]=c[Q+4>>2];c[P+8>>2]=c[Q+8>>2];c[P+12>>2]=c[Q+12>>2];Lm(D,R,O,P);c[f>>2]=c[D>>2];c[f+4>>2]=c[D+4>>2];c[f+8>>2]=c[D+8>>2];c[f+12>>2]=c[D+12>>2];T=(c[b>>2]|0)+16|0;O=j-+g[d>>2];R=m+ +g[S>>2];c[P>>2]=c[Q>>2];c[P+4>>2]=c[Q+4>>2];c[P+8>>2]=c[Q+8>>2];c[P+12>>2]=c[Q+12>>2];Lm(E,O,R,P);c[T>>2]=c[E>>2];c[T+4>>2]=c[E+4>>2];c[T+8>>2]=c[E+8>>2];c[T+12>>2]=c[E+12>>2];T=(c[b>>2]|0)+32|0;R=k+ +g[d>>2];O=m+ +g[S>>2];c[P>>2]=c[Q>>2];c[P+4>>2]=c[Q+4>>2];c[P+8>>2]=c[Q+8>>2];c[P+12>>2]=c[Q+12>>2];Lm(F,R,O,P);c[T>>2]=c[F>>2];c[T+4>>2]=c[F+4>>2];c[T+8>>2]=c[F+8>>2];c[T+12>>2]=c[F+12>>2];T=(c[b>>2]|0)+48|0;O=k+ +g[d>>2];R=n-+g[S>>2];c[P>>2]=c[Q>>2];c[P+4>>2]=c[Q+4>>2];c[P+8>>2]=c[Q+8>>2];c[P+12>>2]=c[Q+12>>2];Lm(H,O,R,P);c[T>>2]=c[H>>2];c[T+4>>2]=c[H+4>>2];c[T+8>>2]=c[H+8>>2];c[T+12>>2]=c[H+12>>2];break a}}case 4:{b=HK(8)|0;c[b+4>>2]=4;f=HK(64)|0;c[b>>2]=f;H=c[T>>2]|0;F=H+16|0;c[Q>>2]=c[F>>2];c[Q+4>>2]=c[F+4>>2];c[Q+8>>2]=c[F+8>>2];c[Q+12>>2]=c[F+12>>2];j=-+h[H+88>>3];k=-+h[H+80>>3];if(!(a[d+8>>0]|0)){c[P>>2]=c[Q>>2];c[P+4>>2]=c[Q+4>>2];c[P+8>>2]=c[Q+8>>2];c[P+12>>2]=c[Q+12>>2];Mm(u,j,k,P,d);c[f>>2]=c[u>>2];c[f+4>>2]=c[u+4>>2];c[f+8>>2]=c[u+8>>2];c[f+12>>2]=c[u+12>>2];S=(c[b>>2]|0)+16|0;H=c[T>>2]|0;O=-+h[H+88>>3];R=+h[H+80>>3];c[P>>2]=c[Q>>2];c[P+4>>2]=c[Q+4>>2];c[P+8>>2]=c[Q+8>>2];c[P+12>>2]=c[Q+12>>2];Mm(v,O,R,P,d);c[S>>2]=c[v>>2];c[S+4>>2]=c[v+4>>2];c[S+8>>2]=c[v+8>>2];c[S+12>>2]=c[v+12>>2];S=(c[b>>2]|0)+32|0;H=c[T>>2]|0;R=+h[H+96>>3];O=+h[H+80>>3];c[P>>2]=c[Q>>2];c[P+4>>2]=c[Q+4>>2];c[P+8>>2]=c[Q+8>>2];c[P+12>>2]=c[Q+12>>2];Mm(w,R,O,P,d);c[S>>2]=c[w>>2];c[S+4>>2]=c[w+4>>2];c[S+8>>2]=c[w+8>>2];c[S+12>>2]=c[w+12>>2];S=(c[b>>2]|0)+48|0;T=c[T>>2]|0;O=+h[T+96>>3];R=-+h[T+80>>3];c[P>>2]=c[Q>>2];c[P+4>>2]=c[Q+4>>2];c[P+8>>2]=c[Q+8>>2];c[P+12>>2]=c[Q+12>>2];Mm(x,O,R,P,d);c[S>>2]=c[x>>2];c[S+4>>2]=c[x+4>>2];c[S+8>>2]=c[x+8>>2];c[S+12>>2]=c[x+12>>2];break a}else{R=j-+g[d>>2];O=k-+g[S>>2];c[P>>2]=c[Q>>2];c[P+4>>2]=c[Q+4>>2];c[P+8>>2]=c[Q+8>>2];c[P+12>>2]=c[Q+12>>2];Lm(i,R,O,P);c[f>>2]=c[i>>2];c[f+4>>2]=c[i+4>>2];c[f+8>>2]=c[i+8>>2];c[f+12>>2]=c[i+12>>2];H=(c[b>>2]|0)+16|0;F=c[T>>2]|0;O=-+h[F+88>>3]-+g[d>>2];R=+h[F+80>>3]+ +g[S>>2];c[P>>2]=c[Q>>2];c[P+4>>2]=c[Q+4>>2];c[P+8>>2]=c[Q+8>>2];c[P+12>>2]=c[Q+12>>2];Lm(r,O,R,P);c[H>>2]=c[r>>2];c[H+4>>2]=c[r+4>>2];c[H+8>>2]=c[r+8>>2];c[H+12>>2]=c[r+12>>2];H=(c[b>>2]|0)+32|0;F=c[T>>2]|0;R=+h[F+96>>3]+ +g[d>>2];O=+h[F+80>>3]+ +g[S>>2];c[P>>2]=c[Q>>2];c[P+4>>2]=c[Q+4>>2];c[P+8>>2]=c[Q+8>>2];c[P+12>>2]=c[Q+12>>2];Lm(s,R,O,P);c[H>>2]=c[s>>2];c[H+4>>2]=c[s+4>>2];c[H+8>>2]=c[s+8>>2];c[H+12>>2]=c[s+12>>2];H=(c[b>>2]|0)+48|0;T=c[T>>2]|0;O=+h[T+96>>3]+ +g[d>>2];R=-+h[T+80>>3]-+g[S>>2];c[P>>2]=c[Q>>2];c[P+4>>2]=c[Q+4>>2];c[P+8>>2]=c[Q+8>>2];c[P+12>>2]=c[Q+12>>2];Lm(t,O,R,P);c[H>>2]=c[t>>2];c[H+4>>2]=c[t+4>>2];c[H+8>>2]=c[t+8>>2];c[H+12>>2]=c[t+12>>2];break a}}default:b=0}while(0);l=U;return b|0}function Lm(a,b,c,d){a=a|0;b=+b;c=+c;d=d|0;c=+h[d+8>>3]+c;h[a>>3]=+h[d>>3]+b;h[a+8>>3]=c;return}function Mm(a,b,c,d,e){a=a|0;b=+b;c=+c;d=d|0;e=e|0;c=+h[d+8>>3]+ +g[e+4>>2]*c;h[a>>3]=+h[d>>3]+ +g[e>>2]*b;h[a+8>>3]=c;return}function Nm(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;o=l;l=l+112|0;j=o+88|0;i=o+72|0;k=o+32|0;m=o+16|0;n=o;f=o+56|0;g=o+40|0;h=b+48|0;r=(c[(c[((c[b>>2]&3|0)==3?b:h)+40>>2]|0)+16>>2]|0)+16|0;p=b+16|0;q=(c[p>>2]|0)+16|0;c[i>>2]=c[r>>2];c[i+4>>2]=c[r+4>>2];c[i+8>>2]=c[r+8>>2];c[i+12>>2]=c[r+12>>2];c[j>>2]=c[q>>2];c[j+4>>2]=c[q+4>>2];c[j+8>>2]=c[q+8>>2];c[j+12>>2]=c[q+12>>2];Om(f,i,j);c[m>>2]=c[f>>2];c[m+4>>2]=c[f+4>>2];c[m+8>>2]=c[f+8>>2];c[m+12>>2]=c[f+12>>2];f=b+-48|0;q=(c[(c[((c[b>>2]&3|0)==2?b:f)+40>>2]|0)+16>>2]|0)+16|0;p=(c[p>>2]|0)+56|0;c[i>>2]=c[q>>2];c[i+4>>2]=c[q+4>>2];c[i+8>>2]=c[q+8>>2];c[i+12>>2]=c[q+12>>2];c[j>>2]=c[p>>2];c[j+4>>2]=c[p+4>>2];c[j+8>>2]=c[p+8>>2];c[j+12>>2]=c[p+12>>2];Om(g,i,j);c[n>>2]=c[g>>2];c[n+4>>2]=c[g+4>>2];c[n+8>>2]=c[g+8>>2];c[n+12>>2]=c[g+12>>2];if(!e){g=-1111;f=-1111}else{r=c[b>>2]&3;g=c[(c[(c[((r|0)==2?b:f)+40>>2]|0)+16>>2]|0)+288>>2]|0;f=c[(c[(c[((r|0)==3?b:h)+40>>2]|0)+16>>2]|0)+288>>2]|0};c[i>>2]=c[m>>2];c[i+4>>2]=c[m+4>>2];c[i+8>>2]=c[m+8>>2];c[i+12>>2]=c[m+12>>2];c[j>>2]=c[n>>2];c[j+4>>2]=c[n+4>>2];c[j+8>>2]=c[n+8>>2];c[j+12>>2]=c[n+12>>2];KX(d,i,f,j,g,k)|0;p=k;q=c[p+4>>2]|0;r=a;c[r>>2]=c[p>>2];c[r+4>>2]=q;l=o;return}function Om(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=+h[b+8>>3]+ +h[c+8>>3];h[a>>3]=+h[b>>3]+ +h[c>>3];h[a+8>>3]=d;return}function Pm(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=l;l=l+144|0;r=w+104|0;s=w+88|0;q=w+80|0;p=w+72|0;m=w+64|0;u=w+128|0;o=w+32|0;n=w+124|0;v=w+16|0;t=w;k=w+120|0;j=(c[b+16>>2]|0)+144|0;i=c[j>>2]|0;j=c[j+4>>2]|0;h=m;c[h>>2]=i;c[h+4>>2]=j;h=i;c[v>>2]=c[h>>2];c[v+4>>2]=c[h+4>>2];c[v+8>>2]=c[h+8>>2];c[v+12>>2]=c[h+12>>2];j=i+(j+-1<<4)|0;c[t>>2]=c[j>>2];c[t+4>>2]=c[j+4>>2];c[t+8>>2]=c[j+8>>2];c[t+12>>2]=c[j+12>>2];a:do if(!(g<<24>>24)){h=-1111;g=-1111}else{h=-1111;g=-1111;j=0;while(1){if((j|0)>=(f|0))break a;i=e+(j<<2)|0;if((g|0)==-1111){g=c[i>>2]|0;c[s>>2]=c[g>>2];c[s+4>>2]=c[g+4>>2];c[r>>2]=c[v>>2];c[r+4>>2]=c[v+4>>2];c[r+8>>2]=c[v+8>>2];c[r+12>>2]=c[v+12>>2];g=(LX(s,r)|0)==0;g=g?-1111:j}if((h|0)==-1111){h=c[i>>2]|0;c[s>>2]=c[h>>2];c[s+4>>2]=c[h+4>>2];c[r>>2]=c[t>>2];c[r+4>>2]=c[t+4>>2];c[r+8>>2]=c[t+8>>2];c[r+12>>2]=c[t+12>>2];h=(LX(s,r)|0)==0;h=h?-1111:j}j=j+1|0}}while(0);Qm(e,f,g,h,k,n);c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[o+16>>2]=0;c[o+20>>2]=0;c[o+24>>2]=0;c[o+28>>2]=0;h=c[k>>2]|0;n=c[n>>2]|0;c[r>>2]=c[m>>2];c[r+4>>2]=c[m+4>>2];g=b+48|0;if((MX(h,n,r,o,u)|0)<0){u=HB(c[((c[b>>2]&3|0)==3?b:g)+40>>2]|0)|0;v=HB(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0;c[p>>2]=u;c[p+4>>2]=v;dA(1,89929,p)|0}else{if((d[195234]|0)>1){p=c[15715]|0;n=HB(c[((c[b>>2]&3|0)==3?b:g)+40>>2]|0)|0;g=b+-48|0;o=HB(c[((c[b>>2]&3|0)==2?b:g)+40>>2]|0)|0;c[q>>2]=n;c[q+4>>2]=o;z4(p,89977,q)|0}else g=b+-48|0;bO(b,c[((c[b>>2]&3|0)==2?b:g)+40>>2]|0,c[u>>2]|0,c[u+4>>2]|0,17832);l6(h);c[s>>2]=c[v>>2];c[s+4>>2]=c[v+4>>2];c[s+8>>2]=c[v+8>>2];c[s+12>>2]=c[v+12>>2];c[r>>2]=c[t>>2];c[r+4>>2]=c[t+4>>2];c[r+8>>2]=c[t+8>>2];c[r+12>>2]=c[t+12>>2];wO(a,b,s,r)}l=w;return}function Qm(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;i=0;h=0;while(1){if((i|0)>=(b|0))break;if(!((i|0)==(d|0)|(i|0)==(e|0)))h=(c[(c[a+(i<<2)>>2]|0)+4>>2]|0)+h|0;i=i+1|0}o=IK(h<<5)|0;i=0;n=0;while(1){if((n|0)>=(b|0))break;a:do if(!((n|0)==(d|0)|(n|0)==(e|0))){m=a+(n<<2)|0;l=0;while(1){j=c[m>>2]|0;k=c[j+4>>2]|0;if((l|0)>=(k|0))break a;p=l+1|0;q=o+(i<<5)|0;j=(c[j>>2]|0)+(l<<4)|0;c[q>>2]=c[j>>2];c[q+4>>2]=c[j+4>>2];c[q+8>>2]=c[j+8>>2];c[q+12>>2]=c[j+12>>2];j=o+(i<<5)+16|0;k=(c[c[m>>2]>>2]|0)+(((p|0)<(k|0)?p:0)<<4)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];l=p;i=i+1|0}}while(0);n=n+1|0}if((i|0)==(h|0)){c[f>>2]=o;c[g>>2]=h;return}else Aa(89991,89998,77,90013)}function Rm(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;o=l;l=l+32|0;m=o+12|0;f=o;mr(f,a);c[m>>2]=c[f>>2];c[m+4>>2]=c[f+4>>2];c[m+8>>2]=c[f+8>>2];f=gC(a)|0;while(1){if(!f)break;g=UA(a,f)|0;while(1){if(!g)break;XN(g);g=WA(a,g)|0}f=hC(a,f)|0}h=Sz(17796,c[4591]|0)|0;f=gC(a)|0;while(1){if(!f)break;g=UA(a,f)|0;while(1){if(!g)break;i=g+16|0;if((c[47180]|0)>1?(j=c[i>>2]|0,(c[j+8>>2]|0)!=0):0){p=j+168|0;b[p>>1]=(b[p>>1]|0)+1<<16>>16}else n=14;if((n|0)==14?(n=0,k=Sm(h,g)|0,(k|0)!=(g|0)):0){p=c[k+16>>2]|0;q=p+168|0;b[q>>1]=(b[q>>1]|0)+1<<16>>16;p=p+172|0;c[(c[i>>2]|0)+172>>2]=c[p>>2];c[p>>2]=g}g=WA(a,g)|0}f=hC(a,f)|0}Oz(h)|0;if(!(eb[d&63](a,m,e)|0)){c[47185]=1;f=0}else f=1;l=o;return f|0}function Sm(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,g=0.0,i=0,j=0,k=0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0,s=0,t=0;t=l;l=l+64|0;s=t;e=c[b>>2]&3;k=c[((e|0)==3?b:b+48|0)+40>>2]|0;e=c[((e|0)==2?b:b+-48|0)+40>>2]|0;j=c[b+16>>2]|0;o=j+24|0;f=j+56|0;i=j+64|0;j=j+16|0;do if(k>>>0>=e>>>0){if(k>>>0>e>>>0){r=e;e=k;p=+h[j>>3];q=+h[o>>3];g=+h[f>>3];d=+h[i>>3];break}m=+h[f>>3];n=+h[i>>3];g=+h[j>>3];d=+h[o>>3];if(!(g<m))if(!(g>m)){f=d>n;if(d<n){r=k;e=k;p=m;q=n}else{r=k;e=k;p=g;q=d;g=f?m:g;d=f?n:d}}else{r=k;e=k;p=g;q=d;g=m;d=n}else{r=k;e=k;p=m;q=n}}else{r=k;p=+h[f>>3];q=+h[i>>3];g=+h[j>>3];d=+h[o>>3]}while(0);c[s+8>>2]=r;h[s+16>>3]=g;h[s+24>>3]=d;c[s+32>>2]=e;h[s+40>>3]=p;h[s+48>>3]=q;c[s+56>>2]=b;s=c[(eb[c[a>>2]&63](a,s,1)|0)+56>>2]|0;l=t;return s|0}function Tm(a,b){a=a|0;b=b|0;return Rm(a,24,b)|0}function Um(d,e,f){d=d|0;e=e|0;f=f|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0.0;G=l;l=l+112|0;C=G+88|0;B=G+72|0;t=G+56|0;p=G+24|0;o=G;u=G+64|0;D=G+40|0;E=G+8|0;i=(c[47180]|0)>1&1;s=(f|0)==8;do if((f|0)>5){r=HK((qB(d)|0)<<2)|0;n=s&1;m=gC(d)|0;q=0;while(1){if(!m)break;j=Km(m,e,n)|0;k=(c[m+16>>2]|0)+288|0;if(!j){c[k>>2]=-1111;j=q}else{c[k>>2]=q;c[r+(q<<2)>>2]=j;j=q+1|0}m=hC(d,m)|0;q=j}if(r){j=it(r,q)|0;if(j|0){if(s){z=0;A=r;y=r;v=1;break}z=HX(r,q)|0;A=r;y=r;v=1;break}if(s){dA(0,90027,o)|0;j=0;z=0;A=r;y=r;v=1;break}else{H=+g[e+4>>2];h[p>>3]=+g[e>>2];h[p+8>>3]=H;dA(0,90105,p)|0;j=0;z=0;A=r;y=r;v=1;break}}else{j=0;z=0;A=0;y=0;v=0}}else{j=0;z=0;A=0;q=0;y=0;v=0}while(0);w=(f|0)==10;x=(z|0)!=0;j=s&(j|0)!=0;if(a[195234]|0){s=c[15715]|0;c[t>>2]=j|x^1?(j?90187:90204):w?110357:90218;z4(s,90228,t)|0}a:do if(!x){if(j){pQ(d,0);i=1}}else{k=gC(d)|0;while(1){if(!k)break a;j=UA(d,k)|0;while(1){if(!j)break;t=(c[j+16>>2]|0)+144|0;Nm(u,j,z,1,0,0);r=u;s=c[r+4>>2]|0;c[t>>2]=c[r>>2];c[t+4>>2]=s;j=WA(d,j)|0}k=hC(d,k)|0}}while(0);p=(i|0)==0;r=d+60|0;i=0;o=gC(d)|0;j=0;while(1){if(!o)break;s=o+16|0;e=UA(d,o)|0;while(1){if(!e)break;n=c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0;m=e+16|0;k=c[m>>2]|0;if(!p?(c[k+8>>2]|0)!=0:0){u=(c[s>>2]|0)+16|0;t=k+16|0;c[B>>2]=c[u>>2];c[B+4>>2]=c[u+4>>2];c[B+8>>2]=c[u+8>>2];c[B+12>>2]=c[u+12>>2];c[C>>2]=c[t>>2];c[C+4>>2]=c[t+4>>2];c[C+8>>2]=c[t+8>>2];c[C+12>>2]=c[t+12>>2];Om(D,B,C);t=(c[n+16>>2]|0)+16|0;u=(c[m>>2]|0)+56|0;c[B>>2]=c[t>>2];c[B+4>>2]=c[t+4>>2];c[B+8>>2]=c[t+8>>2];c[B+12>>2]=c[t+12>>2];c[C>>2]=c[u>>2];c[C+4>>2]=c[u+4>>2];c[C+8>>2]=c[u+8>>2];c[C+12>>2]=c[u+12>>2];Om(E,B,C);c[B>>2]=c[D>>2];c[B+4>>2]=c[D+4>>2];c[B+8>>2]=c[D+8>>2];c[B+12>>2]=c[D+12>>2];c[C>>2]=c[E>>2];c[C+4>>2]=c[E+4>>2];c[C+8>>2]=c[E+8>>2];c[C+12>>2]=c[E+12>>2];wO(d,e,B,C)}else F=33;b:do if((F|0)==33){F=0;u=b[k+168>>1]|0;k=u<<16>>16;if(u<<16>>16){if((o|0)==(n|0)){if(!i){j=HK(96)|0;c[j+84>>2]=HK(((qB(d)|0)<<5)+11520|0)|0;i=j}Hm(i,e,c[(c[(c[r>>2]|0)+16>>2]|0)+248>>2]|0);break}if(!x){MM(d,e,f,17832);break}k=a[195236]|0?1:k;m=e;n=0;while(1){if((n|0)>=(k|0))break b;if(w)Pm(d,m,A,q,1);else Vm(d,m);m=c[(c[m+16>>2]|0)+172>>2]|0;n=n+1|0}}}while(0);e=WA(d,e)|0}o=hC(d,o)|0}if(x)JX(z);if(i|0){l6(c[i+84>>2]|0);l6(j)}if(v){i=0;while(1){if((i|0)>=(q|0))break;l6(c[A+(i<<2)>>2]|0);i=i+1|0}l6(y)}l=G;return 0}function Vm(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;k=l;l=l+96|0;g=k+64|0;f=k+48|0;e=k+40|0;h=k+80|0;m=k+32|0;i=k+16|0;j=k;n=(c[b+16>>2]|0)+144|0;o=c[n>>2]|0;n=c[n+4>>2]|0;p=m;c[p>>2]=o;c[p+4>>2]=n;p=o;c[i>>2]=c[p>>2];c[i+4>>2]=c[p+4>>2];c[i+8>>2]=c[p+8>>2];c[i+12>>2]=c[p+12>>2];n=o+(n+-1<<4)|0;c[j>>2]=c[n>>2];c[j+4>>2]=c[n+4>>2];c[j+8>>2]=c[n+8>>2];c[j+12>>2]=c[n+12>>2];c[g>>2]=c[m>>2];c[g+4>>2]=c[m+4>>2];DY(g,h);if((d[195234]|0)>1){o=c[15715]|0;m=HB(c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0;p=b+-48|0;n=HB(c[((c[b>>2]&3|0)==2?b:p)+40>>2]|0)|0;c[e>>2]=m;c[e+4>>2]=n;z4(o,90253,e)|0;e=p}else e=b+-48|0;bO(b,c[((c[b>>2]&3|0)==2?b:e)+40>>2]|0,c[h>>2]|0,c[h+4>>2]|0,17832);c[f>>2]=c[i>>2];c[f+4>>2]=c[i+4>>2];c[f+8>>2]=c[i+8>>2];c[f+12>>2]=c[i+12>>2];c[g>>2]=c[j>>2];c[g+4>>2]=c[j+4>>2];c[g+8>>2]=c[j+8>>2];c[g+12>>2]=c[j+12>>2];wO(a,b,f,g);l=k;return}function Wm(a,d){a=a|0;d=d|0;var e=0;e=b[(c[a+16>>2]|0)+136>>1]&14;if(d<<24>>24)Xm(a)|0;if(e<<16>>16)Tm(a,e&65535)|0;return}function Xm(a){a=a|0;var b=0,d=0,e=0,f=0;d=Ym(a)|0;b=gC(a)|0;while(1){if(!b)break;e=c[b+16>>2]|0;f=c[e+132>>2]|0;h[e+16>>3]=+h[f>>3]*72.0;h[e+24>>3]=+h[f+8>>3]*72.0;b=hC(a,b)|0}return d|0}function Ym(a){a=a|0;var b=0,d=0,e=0,f=0.0,g=0.0,i=0.0,j=0,k=0,l=0,m=0;a:do if((c[a+60>>2]|0)==(a|0)?(d=a+16|0,e=c[d>>2]|0,(c[(c[e+8>>2]|0)+84>>2]|0)!=0):0){if(!(+h[e+16>>3]!=0.0)?!(+h[e+24>>3]!=0.0):0)b=0;else{Zm(a);b=1;e=c[d>>2]|0}m=(c[e+116>>2]&1|0)!=0;l=e+40|0;j=e+32|0;if(m){i=+h[j>>3];h[j>>3]=+h[l>>3];h[l>>3]=i}d=c[e+8>>2]|0;e=d+64|0;k=d+72|0;b:do switch(c[d+84>>2]|0){case 2:{f=+h[e>>3];if(f<=0.0)break a;g=f/+h[j>>3];f=+h[k>>3]/+h[l>>3];if(g<1.0|f<1.0)if(g<f){i=1.0;f=f/g;break b}else{i=g/f;f=1.0;break b}else i=g;break}case 5:{f=+h[e>>3];if(f<=0.0)break a;g=f/+h[j>>3];f=+h[k>>3]/+h[l>>3];if(!(g>1.0&f>1.0))break a;f=g<f?g:f;i=f;break}case 1:{g=+h[d+16>>3];f=+h[l>>3]/+h[j>>3];if(f<g){i=1.0;f=g/f;break b}else{i=f/g;f=1.0;break b}}default:break a}while(0);g=m?i:f;f=m?f:i;c:do if((c[47180]|0)>1){d=gC(a)|0;while(1){if(!d)break c;b=UA(a,d)|0;while(1){if(!b)break;if(c[(c[b+16>>2]|0)+8>>2]|0)_m(b,f,g);b=WA(a,b)|0}d=hC(a,d)|0}}while(0);b=gC(a)|0;while(1){if(!b)break;m=c[(c[b+16>>2]|0)+132>>2]|0;h[m>>3]=f*+h[m>>3];m=m+8|0;h[m>>3]=g*+h[m>>3];b=hC(a,b)|0}$m(a,f,g);b=1}else b=0;while(0);return b|0}function Zm(b){b=b|0;var d=0,e=0,f=0.0,g=0.0,i=0.0,j=0.0,k=0,m=0,n=0,o=0;n=l;l=l+32|0;k=n+16|0;m=n;d=(c[b+16>>2]|0)+16|0;c[m>>2]=c[d>>2];c[m+4>>2]=c[d+4>>2];c[m+8>>2]=c[d+8>>2];c[m+12>>2]=c[d+12>>2];f=+h[m>>3];g=f/72.0;i=+h[m+8>>3];j=i/72.0;d=gC(b)|0;while(1){if(!d)break;e=c[d+16>>2]|0;o=c[e+132>>2]|0;h[o>>3]=+h[o>>3]-g;o=o+8|0;h[o>>3]=+h[o>>3]-j;e=c[e+108>>2]|0;if(e|0?a[e+81>>0]|0:0){o=e+56|0;h[o>>3]=+h[o>>3]-f;o=e+64|0;h[o>>3]=+h[o>>3]-i}d=hC(b,d)|0}e=gC(b)|0;while(1){if(!e)break;d=UA(b,e)|0;while(1){if(!d)break;if(c[(c[d+16>>2]|0)+8>>2]|0){c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];c[k+12>>2]=c[m+12>>2];an(d,k)}d=WA(b,d)|0}e=hC(b,e)|0}c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];c[k+12>>2]=c[m+12>>2];bn(b,k);l=n;return}function _m(b,d,e){b=b|0;d=+d;e=+e;var f=0.0,g=0.0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0.0;r=c[b>>2]&3;k=c[(c[(c[((r|0)==2?b:b+-48|0)+40>>2]|0)+16>>2]|0)+132>>2]|0;u=d+-1.0;s=u*+h[k>>3]*72.0;v=e+-1.0;t=v*+h[k+8>>3]*72.0;r=c[(c[(c[((r|0)==3?b:b+48|0)+40>>2]|0)+16>>2]|0)+132>>2]|0;u=u*+h[r>>3]*72.0;v=v*+h[r+8>>3]*72.0;r=c[b+16>>2]|0;k=c[r+8>>2]|0;l=c[k+4>>2]|0;m=l+-1|0;b=0;k=c[k>>2]|0;while(1){if((b|0)>=(l|0))break;n=c[k+4>>2]|0;o=(b|0)==(m|0);p=n+-1|0;i=0;j=c[k>>2]|0;while(1){if((i|0)>=(n|0))break;q=j+8|0;f=+h[j>>3];g=+h[q>>3];do if(i|b)if(o&(i|0)==(p|0)){h[j>>3]=s+f;f=t+g;break}else{h[j>>3]=f*d;f=g*e;break}else{h[j>>3]=u+f;f=v+g}while(0);h[q>>3]=f;i=i+1|0;j=j+16|0}if(c[k+8>>2]|0){q=k+16|0;h[q>>3]=u+ +h[q>>3];q=k+24|0;h[q>>3]=v+ +h[q>>3]}if(c[k+12>>2]|0){q=k+32|0;h[q>>3]=s+ +h[q>>3];q=k+40|0;h[q>>3]=t+ +h[q>>3]}b=b+1|0;k=k+48|0}b=c[r+96>>2]|0;if(b|0?a[b+81>>0]|0:0){q=b+56|0;h[q>>3]=+h[q>>3]*d;q=b+64|0;h[q>>3]=+h[q>>3]*e}b=c[r+100>>2]|0;if(b|0?a[b+81>>0]|0:0){q=b+56|0;h[q>>3]=s+ +h[q>>3];q=b+64|0;h[q>>3]=t+ +h[q>>3]}b=c[r+104>>2]|0;if(b|0?a[b+81>>0]|0:0){r=b+56|0;h[r>>3]=u+ +h[r>>3];r=b+64|0;h[r>>3]=v+ +h[r>>3]}return}function $m(b,d,e){b=b|0;d=+d;e=+e;var f=0,g=0,i=0;i=b+16|0;g=c[i>>2]|0;b=g+32|0;h[b>>3]=+h[b>>3]*d;b=g+40|0;h[b>>3]=+h[b>>3]*e;b=g+16|0;h[b>>3]=+h[b>>3]*d;b=g+24|0;h[b>>3]=+h[b>>3]*e;b=c[g+12>>2]|0;if((b|0)!=0?(a[b+81>>0]|0)!=0:0){f=b+56|0;h[f>>3]=+h[f>>3]*d;f=b+64|0;h[f>>3]=+h[f>>3]*e;f=1;b=g}else{f=1;b=g}while(1){if((f|0)>(c[b+180>>2]|0))break;$m(c[(c[b+184>>2]|0)+(f<<2)>>2]|0,d,e);f=f+1|0;b=c[i>>2]|0}return}function an(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0;k=c[b+16>>2]|0;b=c[k+8>>2]|0;j=c[b+4>>2]|0;l=d+8|0;b=c[b>>2]|0;g=0;while(1){if((g|0)>=(j|0))break;i=c[b+4>>2]|0;e=c[b>>2]|0;f=0;while(1){if((f|0)>=(i|0))break;h[e>>3]=+h[e>>3]-+h[d>>3];m=e+8|0;h[m>>3]=+h[m>>3]-+h[l>>3];e=e+16|0;f=f+1|0}if(c[b+8>>2]|0){m=b+16|0;h[m>>3]=+h[m>>3]-+h[d>>3];m=b+24|0;h[m>>3]=+h[m>>3]-+h[l>>3]}if(c[b+12>>2]|0){m=b+32|0;h[m>>3]=+h[m>>3]-+h[d>>3];m=b+40|0;h[m>>3]=+h[m>>3]-+h[l>>3]}b=b+48|0;g=g+1|0}b=c[k+96>>2]|0;if(b|0?a[b+81>>0]|0:0){m=b+56|0;h[m>>3]=+h[m>>3]-+h[d>>3];m=b+64|0;h[m>>3]=+h[m>>3]-+h[l>>3]}b=c[k+108>>2]|0;if(b|0?a[b+81>>0]|0:0){m=b+56|0;h[m>>3]=+h[m>>3]-+h[d>>3];m=b+64|0;h[m>>3]=+h[m>>3]-+h[l>>3]}b=c[k+100>>2]|0;if(b|0?a[b+81>>0]|0:0){m=b+56|0;h[m>>3]=+h[m>>3]-+h[d>>3];m=b+64|0;h[m>>3]=+h[m>>3]-+h[l>>3]}b=c[k+104>>2]|0;if(b|0?a[b+81>>0]|0:0){m=b+56|0;h[m>>3]=+h[m>>3]-+h[d>>3];m=b+64|0;h[m>>3]=+h[m>>3]-+h[l>>3]}return}function bn(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0.0,i=0,j=0,k=0,m=0;k=l;l=l+16|0;j=k;g=+h[d>>3];i=b+16|0;b=c[i>>2]|0;e=b+32|0;h[e>>3]=+h[e>>3]-g;f=+h[d+8>>3];e=b+40|0;h[e>>3]=+h[e>>3]-f;e=b+16|0;h[e>>3]=+h[e>>3]-g;e=b+24|0;h[e>>3]=+h[e>>3]-f;e=c[b+12>>2]|0;if((e|0)!=0?(a[e+81>>0]|0)!=0:0){m=e+56|0;h[m>>3]=+h[m>>3]-g;e=e+64|0;h[e>>3]=+h[e>>3]-f;e=1}else e=1;while(1){if((e|0)>(c[b+180>>2]|0))break;m=c[(c[b+184>>2]|0)+(e<<2)>>2]|0;c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];bn(m,j);e=e+1|0;b=c[i>>2]|0}l=k;return}function cn(a){a=a|0;var b=0,d=0,e=0,f=0.0,g=0.0,i=0,j=0;i=l;l=l+16|0;d=i;zP(a);e=a+16|0;b=c[e>>2]|0;f=+h[b+16>>3]/72.0;g=+h[b+24>>3]/72.0;b=gC(a)|0;while(1){if(!b)break;j=c[(c[b+16>>2]|0)+132>>2]|0;h[j>>3]=+h[j>>3]-f;j=j+8|0;h[j>>3]=+h[j>>3]-g;b=hC(a,b)|0}j=(c[e>>2]|0)+16|0;c[d>>2]=c[j>>2];c[d+4>>2]=c[j+4>>2];c[d+8>>2]=c[j+8>>2];c[d+12>>2]=c[j+12>>2];dn(a,d);Wm(a,1);l=i;return}function dn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0.0,j=0.0;g=l;l=l+16|0;f=g;d=a+16|0;a=1;while(1){e=c[d>>2]|0;if((a|0)>(c[e+180>>2]|0))break;e=c[(c[e+184>>2]|0)+(a<<2)>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];dn(e,f);a=a+1|0}j=+h[b>>3];f=e+32|0;h[f>>3]=+h[f>>3]-j;i=+h[b+8>>3];b=e+40|0;h[b>>3]=+h[b>>3]-i;b=e+16|0;h[b>>3]=+h[b>>3]-j;b=e+24|0;h[b>>3]=+h[b>>3]-i;l=g;return}function en(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0;p=(e|0)>2;n=0;o=0;j=c[f+4>>2]|0;b=c[f>>2]|0;while(1){if((o|0)>=(d|0)){b=0;break}i=c[(c[g+(o<<2)>>2]|0)+16>>2]|0;l=a[i+119>>0]|0;a:do if(!(l<<24>>24)){k=b+8|0;h[b>>3]=+S4();i=j+8|0;h[j>>3]=+S4();if(p){b=2;while(1){if((b|0)==(e|0)){j=n;b=k;break a}q=+S4();h[(c[f+(b<<2)>>2]|0)+(o<<3)>>3]=q;b=b+1|0}}else{j=n;b=k}}else{k=c[i+132>>2]|0;m=b+8|0;h[b>>3]=+h[k>>3];i=j+8|0;h[j>>3]=+h[k+8>>3];b:do if(p){j=2;b=k+16|0;while(1){if((j|0)==(e|0))break b;h[(c[f+(j<<2)>>2]|0)+(o<<3)>>3]=+h[b>>3];j=j+1|0;b=b+8|0}}while(0);j=(l&255)>1?1:n;b=m}while(0);n=j;o=o+1|0;j=i}while(1){if((b|0)>=(e|0))break;Et(d,c[f+(b<<2)>>2]|0);b=b+1|0}return n|0}function fn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,i=0,j=0,k=0,l=0.0,m=0,n=0,o=0,p=0;d=HK(((S(b+1|0,b)|0)/2|0)<<2)|0;n=rn(b,b,0.0)|0;o=rn(b,b,0.0)|0;a:do if(!(c[a+8>>2]|0)){e=0;while(1){if((e|0)>=(b|0))break a;i=c[a+(e*20|0)>>2]|0;j=a+(e*20|0)+4|0;k=n+(e<<2)|0;f=1;while(1){if((f|0)>=(i|0))break;m=c[(c[j>>2]|0)+(f<<2)>>2]|0;h[(c[n+(m<<2)>>2]|0)+(e<<3)>>3]=-1.0;h[(c[k>>2]|0)+(m<<3)>>3]=-1.0;f=f+1|0}e=e+1|0}}else{e=0;while(1){if((e|0)>=(b|0))break a;i=c[a+(e*20|0)>>2]|0;j=a+(e*20|0)+4|0;k=a+(e*20|0)+8|0;m=n+(e<<2)|0;f=1;while(1){if((f|0)>=(i|0))break;p=c[(c[j>>2]|0)+(f<<2)>>2]|0;l=-1.0/+g[(c[k>>2]|0)+(f<<2)>>2];h[(c[n+(p<<2)>>2]|0)+(e<<3)>>3]=l;h[(c[m>>2]|0)+(p<<3)>>3]=l;f=f+1|0}e=e+1|0}}while(0);b:do if(!(tr(b,n,o)|0)){l6(d);d=0}else{f=0;j=0;m=b;while(1){if((j|0)>=(b|0))break b;k=o+(j<<2)|0;e=j;i=f;while(1){if((e|0)==(b|0))break;if((j|0)==(e|0))l=0.0;else{p=c[k>>2]|0;l=+h[p+(j<<3)>>3]+ +h[(c[o+(e<<2)>>2]|0)+(e<<3)>>3]-+h[p+(e<<3)>>3]*2.0}g[d+(i<<2)>>2]=l;e=e+1|0;i=i+1|0}f=f+m|0;j=j+1|0;m=m+-1|0}}while(0);sn(n);sn(o);return d|0}function gn(b,d){b=b|0;d=d|0;var e=0,f=0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;s=l;l=l+16|0;r=s;if(c[b+8>>2]|0){e=hn(b,d)|0;i=0.0;f=0;q=0;while(1){if((q|0)>=(d|0))break;f=f+q|0;p=c[b+(q*20|0)>>2]|0;m=b+(q*20|0)+4|0;n=(S(q,d)|0)-f|0;o=b+(q*20|0)+8|0;k=1;while(1){if((k|0)>=(p|0))break;j=c[(c[m>>2]|0)+(k<<2)>>2]|0;if((j|0)>=(q|0)){j=e+(n+j<<2)|0;t=+g[(c[o>>2]|0)+(k<<2)>>2];i=i+ +F(+(+g[j>>2]-t));g[j>>2]=t}k=k+1|0}q=q+1|0}if(a[195234]|0){d=c[15715]|0;h[r>>3]=i;z4(d,90269,r)|0}}else e=0;l=s;return e|0}function hn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;h=m;i=HK(((S(b+1|0,b)|0)/2|0)<<2)|0;j=HK(b<<2)|0;rr(h,b);d=0;f=0;k=b;while(1){if((d|0)>=(b|0))break;es(d,a,b,j);e=d;g=f;while(1){if((e|0)==(b|0))break;c[i+(g<<2)>>2]=c[j+(e<<2)>>2];e=e+1|0;g=g+1|0}d=d+1|0;f=f+k|0;k=k+-1|0}l6(j);sr(h);l=m;return i|0}function jn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+16|0;i=n;j=HK(((S(b+1|0,b)|0)/2|0)<<2)|0;k=HK(b<<2)|0;rr(i,b);d=0;f=0;m=b;while(1){if((d|0)>=(b|0))break;nr(d,a,b,k,i);e=d;h=f;while(1){if((e|0)==(b|0))break;g[j+(h<<2)>>2]=+(c[k+(e<<2)>>2]|0);e=e+1|0;h=h+1|0}d=d+1|0;f=f+m|0;m=m+-1|0}l6(k);sr(i);l=n;return j|0}function kn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0;r=a+8|0;d=c[r>>2]|0;e=0;f=0;while(1){if((f|0)>=(b|0))break;e=(c[a+(f*20|0)>>2]|0)+e|0;f=f+1|0}f=HK(e<<2)|0;q=HK(b<<2)|0;e=0;while(1){if((e|0)>=(b|0))break;c[q+(e<<2)>>2]=0;e=e+1|0}if(!(c[r>>2]|0)){h=0;while(1){if((h|0)>=(b|0))break;c[a+(h*20|0)+8>>2]=f;Ws(a,h,q);i=a+(h*20|0)|0;j=c[i>>2]|0;k=a+(h*20|0)+4|0;l=+(j+-1|0);e=1;while(1){if((e|0)>=(j|0))break;p=c[(c[k>>2]|0)+(e<<2)>>2]|0;s=l+ +((c[a+(p*20|0)>>2]|0)+-1|0);g[f+(e<<2)>>2]=s-+((Vs(a,h,p,q)|0)<<1|0);e=e+1|0}Xs(a,h,q);f=f+(c[i>>2]<<2)|0;h=h+1|0}f=jn(a,b)|0}else{j=0;while(1){if((j|0)>=(b|0))break;Ws(a,j,q);k=a+(j*20|0)|0;m=c[k>>2]|0;n=a+(j*20|0)+4|0;o=m+-2|0;p=a+(j*20|0)+8|0;i=1;while(1){if((i|0)>=(m|0))break;e=c[(c[n>>2]|0)+(i<<2)>>2]|0;h=o+(c[a+(e*20|0)>>2]|0)|0;s=+(h-((Vs(a,j,e,q)|0)<<1)|0);l=+g[(c[p>>2]|0)+(i<<2)>>2];if(s>l)l=+(h-((Vs(a,j,e,q)|0)<<1)|0);g[f+(i<<2)>>2]=l;i=i+1|0}Xs(a,j,q);c[p>>2]=f;f=f+(c[k>>2]<<2)|0;j=j+1|0}f=hn(a,b)|0}l6(q);l6(c[r>>2]|0);c[r>>2]=0;a:do if(d|0){e=0;while(1){if((e|0)>=(b|0))break a;c[a+(e*20|0)+8>>2]=d;d=d+(c[a+(e*20|0)>>2]<<2)|0;e=e+1|0}}while(0);return f|0}function ln(b,e,f,i,j,k,m,n,o){b=b|0;e=e|0;f=f|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0.0,v=0,w=0.0,x=0,y=0.0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0.0,P=0.0;N=l;l=l+80|0;M=N+56|0;L=N+48|0;A=N+40|0;v=N+32|0;t=N+24|0;s=N+16|0;q=N+8|0;p=N;r=m&4;K=m&3;a:do if((o|0)<0)f=0;else{if(a[195234]|0)RO();m=(n|0)==2;b:do if(m){if(a[195234]|0)_3(93591,24,1,c[15715]|0)|0;f=kn(b,e)|0;x=14}else{switch(n|0){case 1:{f=fn(b,e)|0;if(f|0){J=f;break b}dA(0,93616,p)|0;dA(3,93665,q)|0;x=15;break b}case 3:break;default:{x=15;break b}}if(a[195234]|0)_3(93718,21,1,c[15715]|0)|0;f=gn(b,e)|0;x=14}while(0);if((x|0)==14)if(!f)x=15;else J=f;do if((x|0)==15){if(a[195234]|0)_3(93740,26,1,c[15715]|0)|0;if(!(c[b+8>>2]|0)){J=jn(b,e)|0;break}else{J=hn(b,e)|0;break}}while(0);if(a[195234]|0){I=c[15715]|0;h[s>>3]=+SO();z4(I,93767,s)|0;_3(93779,25,1,I)|0;RO()}c:do if((e|0)>1&(r|0)!=0)if((mn(b,e,i,k,r,K,m&1)|0)<0){v=0;t=0;f=-1;b=0;s=0;r=0;q=0;p=0;n=0;m=0}else{m=0;while(1){if((m|0)>=(k|0)){z=0;x=34;break c}n=i+(m<<2)|0;u=1.0;f=0;while(1){if((f|0)==(e|0)){f=0;break}y=+F(+(+h[(c[n>>2]|0)+(f<<3)>>3]));u=y>u?y:u;f=f+1|0}while(1){if((f|0)==(e|0)){f=0;break}I=(c[n>>2]|0)+(f<<3)|0;h[I>>3]=+h[I>>3]/u;f=f+1|0}while(1){if((f|0)==(e|0))break;y=(+S4()+-.5)*1.0e-06;I=(c[n>>2]|0)+(f<<3)|0;h[I>>3]=+h[I>>3]+y;f=f+1|0}Et(e,c[n>>2]|0);m=m+1|0}}else{z=en(0,e,k,i,j)|0;x=34}while(0);d:do if((x|0)==34){if(a[195234]|0){I=c[15715]|0;h[t>>3]=+SO();z4(I,93805,t)|0}if((e|0)==1|(o|0)==0){f=0;break a}if(a[195234]|0){I=c[15715]|0;h[v>>3]=+SO();z4(I,93767,v)|0;_3(90291,26,1,I)|0;RO()}r=k<<2;I=HK(r)|0;b=e<<2;s=S(b,k)|0;H=HK(s)|0;f=0;while(1){if((f|0)>=(k|0))break;n=H+((S(f,e)|0)<<2)|0;c[I+(f<<2)>>2]=n;p=i+(f<<2)|0;m=0;while(1){if((m|0)>=(e|0))break;g[n+(m<<2)>>2]=+h[(c[p>>2]|0)+(m<<3)>>3];m=m+1|0}f=f+1|0}G=e+-1|0;e:do if(!K){f=0;u=0.0;p=0;while(1){if((p|0)>=(G|0))break e;q=e-p|0;n=f;m=1;while(1){f=n+1|0;if((m|0)>=(q|0))break;n=f;u=u+ +g[J+(f<<2)>>2];m=m+1|0}p=p+1|0}}else u=+(e|0)*+(G|0)*.5;while(0);C=(S(e+1|0,e)|0)/2|0;D=(K|0)==2;if(D)_t(C,J);$t(C,J);E=e<<3;n=HK(E)|0;u6(n|0,0,E|0)|0;f=0;p=0;while(1){if((p|0)>=(G|0)){f=e;m=0;p=0;break}q=e-p|0;w=0.0;m=1;while(1){f=f+1|0;if((m|0)>=(q|0))break;y=+g[J+(f<<2)>>2];B=n+(m+p<<3)|0;h[B>>3]=+h[B>>3]-y;w=w+y;m=m+1|0}B=n+(p<<3)|0;h[B>>3]=+h[B>>3]-w;p=p+1|0}while(1){if((m|0)>=(e|0))break;g[J+(p<<2)>>2]=+h[n+(m<<3)>>3];B=f+p|0;f=f+-1|0;m=m+1|0;p=B}B=HK(r)|0;c[B>>2]=HK(s)|0;f=1;while(1){if((f|0)>=(k|0))break;c[B+(f<<2)>>2]=(c[B>>2]|0)+((S(f,e)|0)<<2);f=f+1|0}q=HK(b)|0;p=HK(b)|0;m=HK(C<<2)|0;if(a[195234]|0){x=c[15715]|0;h[A>>3]=+SO();z4(x,93767,A)|0;_3(90318,15,1,x)|0;RO()}x=(z|0)==0;z=c[15715]|0;f=0;r=0;y=1797693134862315708145274.0e284;while(1){if(!(r<<24>>24==0&(f|0)<(o|0)))break;u6(n|0,0,E|0)|0;if(D){au(C,J,m);v=0;b=0}else{v=0;b=0}while(1){if((v|0)>=(G|0)){r=e;s=0;b=0;break}t=e-v+-1|0;Yt(t,0.0,p);r=0;while(1){if((r|0)>=(k|0))break;A=I+(r<<2)|0;Yt(t,+g[(c[A>>2]|0)+(v<<2)>>2],q);Tt(t,q,-1.0,(c[A>>2]|0)+(v<<2)+4|0);_t(t,q);St(t,q,p,p);r=r+1|0}bu(t,p);r=0;while(1){if((r|0)>=(t|0))break;s=p+(r<<2)|0;w=+g[s>>2];if(w>=3402823466385288598117041.0e14|w<0.0)g[s>>2]=0.0;r=r+1|0}r=b+1|0;b=v+1|0;f:do if(D){w=0.0;s=0;while(1){if((s|0)>=(t|0))break f;A=m+(r<<2)|0;O=+g[p+(s<<2)>>2]*+g[A>>2];g[A>>2]=O;A=n+(b+s<<3)|0;h[A>>3]=+h[A>>3]-O;w=w+O;r=r+1|0;s=s+1|0}}else{w=0.0;s=0;while(1){if((s|0)>=(t|0))break f;O=+g[p+(s<<2)>>2];g[m+(r<<2)>>2]=O;A=n+(b+s<<3)|0;h[A>>3]=+h[A>>3]-O;w=w+O;r=r+1|0;s=s+1|0}}while(0);A=n+(v<<3)|0;h[A>>3]=+h[A>>3]-w;v=b;b=r}while(1){if((s|0)>=(e|0)){r=0;break}g[m+(b<<2)>>2]=+h[n+(s<<3)>>3];A=r+b|0;r=r+-1|0;s=s+1|0;b=A}while(1){if((r|0)>=(k|0)){w=0.0;r=0;break}Qt(m,e,c[I+(r<<2)>>2]|0,c[B+(r<<2)>>2]|0);r=r+1|0}while(1){if((r|0)>=(k|0))break;w=w+ +Wt(e,c[I+(r<<2)>>2]|0,c[B+(r<<2)>>2]|0);r=r+1|0}w=u+w*2.0;r=0;while(1){if((r|0)>=(k|0))break;A=I+(r<<2)|0;Qt(J,e,c[A>>2]|0,q);w=w-+Wt(e,c[A>>2]|0,q);r=r+1|0}P=y-w;O=+h[23315];r=(w<O?1:(P>=0.0?P:-P)/y<O)&1;b=0;while(1){if((b|0)>=(k|0))break;t=I+(b<<2)|0;s=c[t>>2]|0;g:do if(x){if((xr(J,s,c[B+(b<<2)>>2]|0,e,.001,e)|0)<0){v=B;t=J;f=-1;b=H;s=I;r=B;break d}}else{Vt(e,s,q);if((xr(J,q,c[B+(b<<2)>>2]|0,e,.001,e)|0)<0){v=B;t=J;f=-1;b=H;s=I;r=B;break d}else s=0;while(1){if((s|0)>=(e|0))break g;if((d[(c[(c[j+(s<<2)>>2]|0)+16>>2]|0)+119>>0]|0)<=1)c[(c[t>>2]|0)+(s<<2)>>2]=c[q+(s<<2)>>2];s=s+1|0}}while(0);b=b+1|0}if(((f|0)%5|0|0)==0&(a[195234]|0)!=0?(h[L>>3]=w,z4(z,90672,L)|0,((f+5|0)%50|0|0)==0):0)W5(10,z)|0;f=f+1|0;y=w}if(!(a[195234]|0))r=0;else{O=+nn(I,J,k,e,K);P=+SO();h[M>>3]=O;c[M+8>>2]=f;h[M+16>>3]=P;z4(z,90334,M)|0;r=0}while(1){if((r|0)>=(k|0)){v=B;t=J;b=H;s=I;r=B;break d}b=I+(r<<2)|0;t=i+(r<<2)|0;s=0;while(1){if((s|0)>=(e|0))break;h[(c[t>>2]|0)+(s<<3)>>3]=+g[(c[b>>2]|0)+(s<<2)>>2];s=s+1|0}r=r+1|0}}while(0);l6(b);l6(s);l6(t);if(v|0){l6(c[v>>2]|0);l6(r)}l6(q);l6(p);l6(n);l6(m)}while(0);l=N;return f|0}function mn(b,d,e,f,i,j,k){b=b|0;d=d|0;e=e|0;f=f|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0.0,q=0,r=0,s=0.0,t=0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;Q=l;l=l+32|0;o=Q+24|0;P=Q+8|0;H=Q+4|0;N=Q;M=(d|0)<50?d:50;O=IK(M<<2)|0;G=d<<3;n=IK(S(G,M)|0)|0;m=0;while(1){if((m|0)>=(M|0))break;c[O+(m<<2)>>2]=n+((S(m,d)|0)<<3);m=m+1|0}D=M<<1;D=(D|0)>50?D:50;D=(D|0)>(d|0)?d:D;c[o>>2]=0;os(b,d,D,o,k);ps(c[o>>2]|0,d,D);ju(c[o>>2]|0,D,d,O,M);l6(c[c[o>>2]>>2]|0);l6(c[o>>2]|0);D=d<<2;L=IK(D)|0;m=0;while(1){if((m|0)>=(d|0))break;c[L+(m<<2)>>2]=-1;m=m+1|0}rr(P,d);J=c[b+8>>2]|0;I=(k|0)!=0;if(I)at(b,d);B=IK(D)|0;K=IK(160)|0;n=IK(d*160|0)|0;C=IK(160)|0;m=0;while(1){if((m|0)==40)break;c[C+(m<<2)>>2]=n+((S(m,d)|0)<<2);m=m+1|0}m=(U4()|0)%(d|0)|0;c[L+(m<<2)>>2]=0;c[K>>2]=m;n=c[C>>2]|0;if(I){_r(m,b,d,n);n=0;o=0}else{nr(m,b,d,n,P);n=0;o=0}while(1){if((o|0)>=(d|0)){r=1;break}E=c[(c[C>>2]|0)+(o<<2)>>2]|0;c[B+(o<<2)>>2]=E;A=(E|0)>(n|0);m=A?o:m;n=A?E:n;o=o+1|0}while(1){if((r|0)==40){m=0;break}c[L+(m<<2)>>2]=r;c[K+(r<<2)>>2]=m;t=C+(r<<2)|0;n=c[t>>2]|0;if(I){_r(m,b,d,n);q=0;n=0}else{nr(m,b,d,n,P);q=0;n=0}while(1){if((q|0)>=(d|0))break;o=B+(q<<2)|0;E=c[o>>2]|0;k=c[(c[t>>2]|0)+(q<<2)>>2]|0;k=(E|0)<(k|0)?E:k;c[o>>2]=k;if((k|0)<=(n|0)){if((k|0)==(n|0)?((U4()|0)%(q+1|0)|0|0)==0:0){n=c[o>>2]|0;m=q}}else{n=k;m=q}q=q+1|0}r=r+1|0}while(1){if((m|0)>=(d|0))break;c[B+(m<<2)>>2]=-1;m=m+1|0}w=IK(D)|0;E=IK(d<<4)|0;x=d+-1|0;y=x<<2;A=0;k=0;o=0;n=0;v=0;while(1){if((v|0)>=(d|0))break;m=L+(v<<2)|0;z=v+1|0;a:do if((c[m>>2]|0)>-1){r=E+(v<<4)+4|0;c[r>>2]=IK(y)|0;t=IK(y)|0;c[E+(v<<4)+8>>2]=t;c[E+(v<<4)>>2]=x;a[E+(v<<4)+12>>0]=1;q=C+(c[m>>2]<<2)|0;m=0;while(1){if((m|0)==(v|0)){m=z;break}c[(c[r>>2]|0)+(m<<2)>>2]=m;c[t+(m<<2)>>2]=c[(c[q>>2]|0)+(m<<2)>>2];m=m+1|0}while(1){if((m|0)==(d|0)){m=x;break a}v=m+-1|0;c[(c[r>>2]|0)+(v<<2)>>2]=m;c[t+(v<<2)>>2]=c[(c[q>>2]|0)+(m<<2)>>2];m=m+1|0}}else{if((n|0)<40){o=IK(D)|0;k=IK(D)|0;n=d;m=1}else m=0;a[E+(v<<4)+12>>0]=m;c[E+(v<<4)+4>>2]=o;c[E+(v<<4)+8>>2]=k;c[E+(v<<4)>>2]=40;m=0;while(1){if((m|0)==40)break;c[o+(m<<2)>>2]=c[K+(m<<2)>>2];c[k+(m<<2)>>2]=c[(c[C+(m<<2)>>2]|0)+(v<<2)>>2];m=m+1|0}k=k+160|0;o=o+160|0;n=n+-40|0;m=40}while(0);A=m+A|0;v=z}l6(B);l6(w);if(C|0){l6(c[C>>2]|0);l6(C)}C=IK(d*20|0)|0;q=A+d<<2;r=IK(q)|0;v=(j|0)==2;q=IK(q)|0;t=0;while(1){if((t|0)>=(d|0))break;c[C+(t*20|0)+4>>2]=r;c[C+(t*20|0)+8>>2]=q;m=(c[E+(t<<4)>>2]|0)+1|0;w=C+(t*20|0)|0;c[w>>2]=m;o=(c[E+(t<<4)+8>>2]|0)+-4|0;k=E+(t<<4)+4|0;b:do if(v){p=0.0;n=1;while(1){if((n|0)>=(m|0))break b;c[r+(n<<2)>>2]=c[(c[k>>2]|0)+(n+-1<<2)>>2];u=+(c[o+(n<<2)>>2]|0);u=-1.0/(u*u);g[q+(n<<2)>>2]=u;p=p-u;n=n+1|0;m=c[w>>2]|0}}else{p=0.0;n=1;while(1){if((n|0)>=(m|0))break b;c[r+(n<<2)>>2]=c[(c[k>>2]|0)+(n+-1<<2)>>2];u=-1.0/+(c[o+(n<<2)>>2]|0);g[q+(n<<2)>>2]=u;p=p-u;n=n+1|0;m=c[w>>2]|0}}while(0);c[r>>2]=t;g[q>>2]=p;D=c[w>>2]|0;q=q+(D<<2)|0;r=r+(D<<2)|0;t=t+1|0}B=IK(f<<2)|0;c[B>>2]=IK(S(f<<3,M)|0)|0;m=1;while(1){if((m|0)>=(f|0))break;c[B+(m<<2)>>2]=(c[B>>2]|0)+((S(m,M)|0)<<3);m=m+1|0}c:do if(i){m=0;while(1){if((m|0)>=(f|0))break;o=B+(m<<2)|0;n=0;while(1){if((n|0)>=(M|0))break;h[(c[o>>2]|0)+(n<<3)>>3]=0.0;n=n+1|0}m=m+1|0}if((f|0)!=2){m=0;while(1){if((m|0)>=(f|0)){m=0;break c}h[(c[B+(m<<2)>>2]|0)+(m<<3)>>3]=1.0;m=m+1|0}}h[c[B>>2]>>3]=1.0;m=B+4|0;if(!((ku(O,M,d,c[m>>2]|0)|0)<<24>>24)){n=c[m>>2]|0;m=0;while(1){if((m|0)>=(M|0))break;h[n+(m<<3)>>3]=0.0;m=m+1|0}h[n+8>>3]=1.0;m=0}else m=0}else{n=0;while(1){if((n|0)>=(f|0)){m=0;break c}o=B+(n<<2)|0;m=0;while(1){if((m|0)>=(M|0))break;u=+(U4()|0)/2147483647.0;h[(c[o>>2]|0)+(m<<3)>>3]=u;m=m+1|0}n=n+1|0}}while(0);while(1){if((m|0)>=(f|0))break;Ot(O,d,M,c[B+(m<<2)>>2]|0,c[e+(m<<2)>>2]|0);m=m+1|0}c[H>>2]=0;c[N>>2]=0;Dt(C,O,d,M,H);Bt(O,c[H>>2]|0,M,d,M,N);l6(c[c[H>>2]>>2]|0);l6(c[H>>2]|0);z=IK(G)|0;A=IK(M<<3)|0;m=0;n=0;p=+on(e,E,f,d,j);d:while(1){if((n|0)<50&m<<24>>24==0)x=0;else break;while(1){if((x|0)>=(f|0))break;y=e+(x<<2)|0;o=0;while(1){if((o|0)>=(d|0))break;q=z+(o<<3)|0;h[q>>3]=0.0;r=(c[E+(o<<4)+8>>2]|0)+-4|0;t=c[C+(o*20|0)+4>>2]|0;v=c[C+(o*20|0)+8>>2]|0;w=C+(o*20|0)|0;s=0.0;k=1;while(1){if((k|0)>=(c[w>>2]|0))break;m=c[t+(k<<2)>>2]|0;u=+ct(e,f,o,m);if(u>1.0e-30){u=-(+g[v+(k<<2)>>2]*+(c[r+(k<<2)>>2]|0))/u;h[q>>3]=+h[q>>3]+ +h[(c[y>>2]|0)+(m<<3)>>3]*u;s=s-u}k=k+1|0}h[q>>3]=+h[q>>3]+s*+h[(c[y>>2]|0)+(o<<3)>>3];o=o+1|0}At(O,M,d,z,A);m=B+(x<<2)|0;if(wr(c[N>>2]|0,c[m>>2]|0,A,M,.001,M,0)|0){n=-1;break d}Ot(O,d,M,c[m>>2]|0,c[y>>2]|0);x=x+1|0}if(!(n&1)){u=+on(e,E,f,d,j);p=+F(+(u-p))/(u+1.0e-10);m=p<+h[23315]&1;p=u}else m=0;n=n+1|0}l6(A);l6(z);if(I){bt(b,d,J);m=0}else m=0;while(1){if((m|0)>=(d|0))break;if(a[E+(m<<4)+12>>0]|0){l6(c[E+(m<<4)+4>>2]|0);l6(c[E+(m<<4)+8>>2]|0)}m=m+1|0}l6(E);l6(c[C+4>>2]|0);l6(c[C+8>>2]|0);l6(C);l6(L);l6(K);l6(c[B>>2]|0);l6(B);m=c[N>>2]|0;if(m|0){l6(c[m>>2]|0);l6(c[N>>2]|0)}l6(c[O>>2]|0);l6(O);sr(P);l=Q;return n|0}function nn(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0.0,j=0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0;q=e+-1|0;o=(f|0)==2;h=0.0;f=0;m=0;while(1){if((m|0)>=(q|0))break;p=e-m|0;n=1;while(1){f=f+1|0;if((n|0)>=(p|0))break;k=n+m|0;i=0.0;j=0;while(1){if((j|0)>=(d|0))break;r=c[a+(j<<2)>>2]|0;l=+g[r+(m<<2)>>2]-+g[r+(k<<2)>>2];i=i+l*l;j=j+1|0}i=+G(+i);l=+g[b+(f<<2)>>2];if(o){i=1.0/+G(+l)-i;i=i*i}else{i=1.0/l-i;i=i*i}n=n+1|0;h=h+l*i}m=m+1|0}return +h}function on(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0;a:do if((f|0)==2){g=0.0;l=0;while(1){if((l|0)>=(e|0))break a;n=c[b+(l<<4)>>2]|0;o=b+(l<<4)+4|0;m=b+(l<<4)+8|0;k=0;while(1){if((k|0)>=(n|0))break;j=c[(c[o>>2]|0)+(k<<2)>>2]|0;if((j|0)>(l|0)){i=0.0;f=0;while(1){if((f|0)>=(d|0))break;q=c[a+(f<<2)>>2]|0;p=+h[q+(l<<3)>>3]-+h[q+(j<<3)>>3];i=i+p*p;f=f+1|0}i=+G(+i);p=+(c[(c[m>>2]|0)+(k<<2)>>2]|0);i=p-i;g=g+i*i/(p*p)}k=k+1|0}l=l+1|0}}else{l=0;g=0.0;while(1){if((l|0)>=(e|0))break a;m=c[b+(l<<4)>>2]|0;n=b+(l<<4)+4|0;o=b+(l<<4)+8|0;k=0;while(1){if((k|0)>=(m|0))break;j=c[(c[n>>2]|0)+(k<<2)>>2]|0;if((j|0)>(l|0)){i=0.0;f=0;while(1){if((f|0)>=(d|0))break;q=c[a+(f<<2)>>2]|0;p=+h[q+(l<<3)>>3]-+h[q+(j<<3)>>3];i=i+p*p;f=f+1|0}i=+G(+i);p=+(c[(c[o>>2]|0)+(k<<2)>>2]|0);i=p-i;g=g+i*i/p}k=k+1|0}l=l+1|0}}while(0);return +g}function pn(a){a=+a;a=+G(+a);return +(a*(a*a))}function qn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,i=0.0;g=c[47184]|0;e=0.0;f=0;while(1){if((f|0)>=(g|0))break;i=+h[a+(f<<3)>>3]-+h[b+(f<<3)>>3];h[d+(f<<3)>>3]=i;e=e+i*i;f=f+1|0}return +(+G(+e))}function rn(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,g=0,i=0;i=HK(a<<2)|0;f=0;g=HK(S(a<<3,b)|0)|0;while(1){if((f|0)>=(a|0))break;c[i+(f<<2)>>2]=g;e=0;while(1){if((e|0)>=(b|0))break;h[g+(e<<3)>>3]=d;e=e+1|0}f=f+1|0;g=g+(b<<3)|0}return i|0}function sn(a){a=a|0;if(a|0){l6(c[a>>2]|0);l6(a)}return}function tn(b,d){b=b|0;d=d|0;var e=0.0,f=0,g=0.0,i=0,j=0,k=0,m=0,n=0,o=0,p=0.0,q=0;o=l;l=l+16|0;f=o;k=o+8|0;if(a[195234]|0){n=c[15715]|0;j=HB(b)|0;m=qB(b)|0;c[f>>2]=j;c[f+4>>2]=m;z4(n,90372,f)|0}a:do if(a[195235]|0){i=b+60|0;f=gC(b)|0;b:while(1){if(!f)break a;j=hC(b,f)|0;switch(un(b,f,k)|0){case 0:{tC(c[i>>2]|0,f)|0;f=j;continue b}case 1:{tC(c[i>>2]|0,f)|0;f=vn(b,c[k>>2]|0,j)|0;continue b}default:{f=j;continue b}}}}while(0);n=qB(b)|0;m=rB(b)|0;k=DA(b,2,92794,0)|0;g=+(n|0);c:do if(!d){h[23315]=g*.0001;nK(b,109187,186520);f=NA(c[b+60>>2]|0,90401)|0;if(!f)e=.99;else e=+a6(f);h[23317]=e;f=HK((n<<2)+4|0)|0;j=b+16|0;c[(c[j>>2]|0)+152>>2]=f;f=0;e=0.0;i=gC(b)|0;while(1){if(!i)break c;c[(c[(c[j>>2]|0)+152>>2]|0)+(f<<2)>>2]=i;q=c[i+16>>2]|0;c[q+120>>2]=f;c[q+124>>2]=-1;p=e+ +wn(b,i,k);f=f+1|0;e=p;i=hC(b,i)|0}}else{h[23315]=.0001;nK(b,109187,186520);f=0;e=0.0;i=gC(b)|0;while(1){if(!i)break c;c[(c[i+16>>2]|0)+120>>2]=f;p=e+ +wn(b,i,k);f=f+1|0;e=p;i=hC(b,i)|0}}while(0);f=NA(b,90409)|0;if((f|0)!=0?(a[f>>0]|0)!=0:0){e=+h[23315];g=+a6(f);if(!(e>g))e=g}else e=e/+(((m|0)>1?m:1)|0)*+G(+g)+1.0;h[23316]=e;if(!(c[47180]|d)){d=rn(n,n,e)|0;q=b+16|0;c[(c[q>>2]|0)+160>>2]=d;d=rn(n,n,1.0)|0;c[(c[q>>2]|0)+164>>2]=d;d=rn(n,c[47184]|0,1.0)|0;c[(c[q>>2]|0)+168>>2]=d;d=xn(n,n,c[47184]|0)|0;c[(c[q>>2]|0)+172>>2]=d}l=o;return n|0}function un(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;f=0;e=0;j=ZA(a,b)|0;a:while(1){if(!j)break;h=c[j>>2]&3;g=c[((h|0)==2?j:j+-48|0)+40>>2]|0;h=c[((h|0)==3?j:j+48|0)+40>>2]|0;do if((g|0)!=(h|0)){i=(h|0)==(b|0);if((e|0)!=1){f=i?g:h;c[d>>2]=f;e=e+1|0;break}if(!((g|0)==(f|0)&i)?!((g|0)==(b|0)&(h|0)==(f|0)):0){e=2;break a}else e=1}while(0);j=_A(a,j,b)|0}return e|0}function vn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+16|0;f=h;g=a+60|0;a:while(1){b:while(1){if(!b)break a;switch(un(a,b,f)|0){case 0:{e=5;break b}case 1:{e=8;break b}default:b=0}}if((e|0)==5){if((d|0)==(b|0))d=hC(a,d)|0;tC(c[g>>2]|0,b)|0;b=0;continue}else if((e|0)==8){if((d|0)==(b|0))d=hC(a,d)|0;tC(c[g>>2]|0,b)|0;b=c[f>>2]|0;continue}}l=h;return d|0}function wn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,g=0,i=0,j=0,k=0;k=l;l=l+32|0;i=k+8|0;g=k;b=UA(a,b)|0;e=0.0;while(1){if(!b)break;switch(yn(b,d,g)|0){case 0:{f=+h[g>>3];break}case 2:{c[i>>2]=HB(a)|0;h[i+8>>3]=1.0;dA(3,90421,i)|0;j=6;break}default:j=6}if((j|0)==6){j=0;h[g>>3]=1.0;f=1.0}h[(c[b+16>>2]|0)+136>>3]=f;b=WA(a,b)|0;e=e+f}l=k;return +e}function xn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0;j=HK((a<<2)+4|0)|0;k=(b<<2)+4|0;l=d<<3;g=0;while(1){if((g|0)>=(a|0))break;i=j+(g<<2)|0;c[i>>2]=HK(k)|0;f=0;while(1){if((f|0)>=(b|0))break;e=HK(l)|0;c[(c[i>>2]|0)+(f<<2)>>2]=e;e=0;while(1){if((e|0)>=(d|0))break;h[(c[(c[i>>2]|0)+(f<<2)>>2]|0)+(e<<3)>>3]=0.0;e=e+1|0}f=f+1|0}c[(c[i>>2]|0)+(f<<2)>>2]=0;g=g+1|0}c[j+(g<<2)>>2]=0;return j|0}function yn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0,j=0,k=0;k=l;l=l+16|0;j=k+8|0;i=k;do if((d|0)!=0?(f=OA(b,d)|0,(a[f>>0]|0)!=0):0){c[i>>2]=e;if(((q4(f,101510,i)|0)>=1?(g=+h[e>>3],!(g<0.0)):0)?g!=0.0|(c[47180]|0)!=0:0){b=0;break}c[j>>2]=f;dA(0,90448,j)|0;b=2}else b=1;while(0);l=k;return b|0}function zn(a){a=a|0;return tn(a,0)|0}function An(a){a=a|0;a=a+16|0;l6(c[(c[a>>2]|0)+152>>2]|0);if(!(c[47180]|0)){sn(c[(c[a>>2]|0)+160>>2]|0);sn(c[(c[a>>2]|0)+164>>2]|0);sn(c[(c[a>>2]|0)+168>>2]|0);Bn(c[(c[a>>2]|0)+172>>2]|0);c[(c[a>>2]|0)+172>>2]=0}return}function Bn(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;if(a|0){f=0;while(1){g=a+(f<<2)|0;b=c[g>>2]|0;if(!b)break;else e=0;while(1){d=c[b+(e<<2)>>2]|0;if(!d)break;l6(d);e=e+1|0;b=c[g>>2]|0}l6(b);f=f+1|0}l6(a)}return}function Cn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0;e=+(b|0);b=a+16|0;while(1){if((d|0)>=(c[47184]|0))break;f=e*+S4();h[(c[(c[b>>2]|0)+132>>2]|0)+(d<<3)>>3]=f;d=d+1|0}return}function Dn(a,b){a=a|0;b=b|0;Cn(a,b,2);return}function En(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0;e=+(b|0);f=e*+S4();d=a+16|0;h[c[(c[d>>2]|0)+132>>2]>>3]=f;e=e*+S4();h[(c[(c[d>>2]|0)+132>>2]|0)+8>>3]=e;if((c[47184]|0)>2)Dn(a,b);return}function Fn(b,d){b=b|0;d=d|0;var e=0,f=0;f=l;l=l+16|0;e=f;if(a[195234]|0)_3(90466,26,1,c[15715]|0)|0;d=km(b,d,2)|0;a:do if((d|0)!=1){if(!(c[46839]|d)){dA(0,90493,e)|0;c[46839]=1}b=b+16|0;d=0;while(1){e=c[(c[(c[b>>2]|0)+152>>2]|0)+(d<<2)>>2]|0;if(!e)break a;if(!(a[(c[e+16>>2]|0)+119>>0]|0))En(e,1);d=d+1|0}}while(0);l=f;return}function Gn(b,d){b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0;r=l;l=l+96|0;q=r+80|0;o=r;if(a[195234]|0){_3(90542,25,1,c[15715]|0)|0;RO()}p=b+16|0;i=c[p>>2]|0;m=c[i+164>>2]|0;i=c[i+160>>2]|0;n=0;while(1){if((n|0)>=(d|0))break;j=i+(n<<2)|0;k=m+(n<<2)|0;f=0;while(1){if((f|0)==(n|0))break;g=+h[(c[j>>2]|0)+(f<<3)>>3];g=1.0/(g*g);e=c[(c[p>>2]|0)+152>>2]|0;e=fB(b,c[e+(n<<2)>>2]|0,c[e+(f<<2)>>2]|0,0,0)|0;if(e)g=g*+h[(c[e+16>>2]|0)+128>>3];h[(c[m+(f<<2)>>2]|0)+(n<<3)>>3]=g;h[(c[k>>2]|0)+(f<<3)>>3]=g;f=f+1|0}n=n+1|0}b=c[47184]|0;f=0;while(1){if((f|0)<(d|0))e=0;else break;while(1){if((e|0)>=(b|0))break;h[(c[(c[(c[p>>2]|0)+168>>2]|0)+(f<<2)>>2]|0)+(e<<3)>>3]=0.0;e=e+1|0}f=f+1|0}j=0;while(1){e=c[(c[(c[p>>2]|0)+152>>2]|0)+(j<<2)>>2]|0;if(!e)break;b=e+16|0;e=0;while(1){if((e|0)>=(d|0))break;a:do if((j|0)!=(e|0)){g=+qn(c[(c[b>>2]|0)+132>>2]|0,c[(c[(c[(c[(c[p>>2]|0)+152>>2]|0)+(e<<2)>>2]|0)+16>>2]|0)+132>>2]|0,o);i=c[47184]|0;f=0;while(1){if((f|0)>=(i|0))break a;n=c[p>>2]|0;s=+h[o+(f<<3)>>3];s=+h[(c[(c[n+164>>2]|0)+(j<<2)>>2]|0)+(e<<3)>>3]*(s-s*+h[(c[(c[n+160>>2]|0)+(j<<2)>>2]|0)+(e<<3)>>3]/g);h[(c[(c[(c[n+172>>2]|0)+(j<<2)>>2]|0)+(e<<2)>>2]|0)+(f<<3)>>3]=s;n=(c[(c[n+168>>2]|0)+(j<<2)>>2]|0)+(f<<3)|0;h[n>>3]=s+ +h[n>>3];f=f+1|0}}while(0);e=e+1|0}j=j+1|0}if(a[195234]|0){p=c[15715]|0;h[q>>3]=+SO();z4(p,90568,q)|0}l=r;return}function Hn(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0.0,m=0;j=l;l=l+32|0;i=j+24|0;g=j+8|0;f=j;k=+h[23315];h[23235]=k*k;while(1){e=In(b,d)|0;if(!e)break;Jn(b,d,e)}if(!(a[195234]|0))d=b+16|0;else{e=c[15715]|0;h[f>>3]=+Kn(b,d);z4(e,90578,f)|0;d=b+16|0;m=c[(c[d>>2]|0)+156>>2]|0;f=(m|0)==(c[47183]|0)?90592:195341;k=+SO();c[g>>2]=m;c[g+4>>2]=f;h[g+8>>3]=k;z4(e,90594,g)|0}d=c[(c[d>>2]|0)+156>>2]|0;if((d|0)==(c[47183]|0)){m=HB(b)|0;c[i>>2]=d;c[i+4>>2]=m;dA(0,90621,i)|0}l=j;return}function In(b,e){b=b|0;e=e|0;var f=0.0,g=0,i=0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;s=l;l=l+16|0;r=s;p=(c[46841]|0)+1|0;c[46841]=p;b=c[b+16>>2]|0;if((c[b+156>>2]|0)<(c[47183]|0)){n=b+152|0;o=c[47184]|0;m=b+168|0;b=0;f=0.0;k=0;while(1){if((k|0)>=(e|0))break;i=c[(c[n>>2]|0)+(k<<2)>>2]|0;if((d[(c[i+16>>2]|0)+119>>0]|0)<=1){j=0.0;g=0;while(1){if((g|0)>=(o|0))break;t=+h[(c[(c[m>>2]|0)+(k<<2)>>2]|0)+(g<<3)>>3];j=j+t*t;g=g+1|0}if(j>f){b=i;f=j}}k=k+1|0}if(!(f<+h[23235])){if((a[195234]|0)!=0&((p|0)%100|0|0)==0?(q=c[15715]|0,h[r>>3]=+G(+f),z4(q,90672,r)|0,((c[46841]|0)%1e3|0|0)==0):0)W5(10,q)|0}else b=0}else b=0;l=s;return b|0}function Jn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;n=o;k=d+16|0;m=c[(c[k>>2]|0)+120>>2]|0;f=c[46840]|0;if(!f){g=c[47184]|0;g=IK(S(g<<3,g)|0)|0}else{g=c[47184]|0;g=KK(f,S(g<<3,g)|0)|0}c[46840]=g;Ln(a,b,m,g);i=c[47184]|0;j=a+16|0;f=0;while(1){if((f|0)>=(i|0))break;h[185888+(f<<3)>>3]=-+h[(c[(c[(c[j>>2]|0)+168>>2]|0)+(m<<2)>>2]|0)+(f<<3)>>3];f=f+1|0}Uu(g,185968,185888,i);f=0;while(1){if((f|0)>=(c[47184]|0))break;e=+h[23317];e=e+ +S4()*((1.0-e)*2.0);i=185968+(f<<3)|0;e=+h[i>>3]*e;h[i>>3]=e;i=(c[(c[k>>2]|0)+132>>2]|0)+(f<<3)|0;h[i>>3]=e+ +h[i>>3];f=f+1|0}k=(c[j>>2]|0)+156|0;c[k>>2]=(c[k>>2]|0)+1;Mn(a,b,m);if(pP()|0){g=c[47184]|0;e=0.0;f=0;while(1){if((f|0)>=(g|0))break;e=e+ +F(+(+h[185968+(f<<3)>>3]));f=f+1|0}e=+G(+e);m=c[15715]|0;c[n>>2]=HB(d)|0;h[n+8>>3]=e;z4(m,90663,n)|0}l=o;return}function Kn(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0;q=b+-1|0;n=a+16|0;o=c[47184]|0;g=0;d=0.0;a:while(1){if((g|0)>=(q|0))break;m=c[n>>2]|0;p=c[m+152>>2]|0;j=g+1|0;k=(c[p+(g<<2)>>2]|0)+16|0;l=m+164|0;m=m+160|0;i=j;while(1){if((i|0)>=(b|0)){g=j;continue a}f=(c[p+(i<<2)>>2]|0)+16|0;a=0;e=0.0;while(1){if((a|0)>=(o|0))break;r=+h[(c[(c[k>>2]|0)+132>>2]|0)+(a<<3)>>3]-+h[(c[(c[f>>2]|0)+132>>2]|0)+(a<<3)>>3];a=a+1|0;e=e+r*r}r=+h[(c[(c[m>>2]|0)+(g<<2)>>2]|0)+(i<<3)>>3];r=d+ +h[(c[(c[l>>2]|0)+(g<<2)>>2]|0)+(i<<3)>>3]*(e+r*r-r*2.0*+G(+e));i=i+1|0;d=r}}return +d}function Ln(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0;x=l;l=l+80|0;w=x;v=c[a+16>>2]|0;k=c[v+164>>2]|0;m=c[v+160>>2]|0;v=c[v+152>>2]|0;j=c[v+(d<<2)>>2]|0;g=c[47184]|0;a=0;while(1){if((a|0)>=(g|0))break;i=S(g,a)|0;f=0;while(1){if((f|0)==(g|0))break;h[e+(f+i<<3)>>3]=0.0;f=f+1|0}a=a+1|0}u=c[47184]|0;t=j+16|0;s=k+(d<<2)|0;k=m+(d<<2)|0;j=0;while(1){if((j|0)>=(b|0))break;a:do if((j|0)!=(d|0)){f=(c[v+(j<<2)>>2]|0)+16|0;r=0.0;a=0;while(1){if((a|0)>=(u|0))break;q=+h[(c[(c[t>>2]|0)+132>>2]|0)+(a<<3)>>3]-+h[(c[(c[f>>2]|0)+132>>2]|0)+(a<<3)>>3];h[w+(a<<3)>>3]=q;r=r+q*q;a=a+1|0}n=1.0/+pn(r);i=0;while(1){if((i|0)>=(u|0))break a;f=(c[s>>2]|0)+(j<<3)|0;g=(c[k>>2]|0)+(j<<3)|0;o=+h[w+(i<<3)>>3];a=0;while(1){p=+h[f>>3];q=+h[g>>3];if((a|0)==(i|0))break;m=e+((S(a,u)|0)+i<<3)|0;h[m>>3]=+h[m>>3]+n*(p*q*o*+h[w+(a<<3)>>3]);a=a+1|0}m=e+((S(u,i)|0)+i<<3)|0;h[m>>3]=p*(1.0-n*(q*(r-o*o)))+ +h[m>>3];i=i+1|0}}while(0);j=j+1|0}f=c[47184]|0;i=1;while(1){if((i|0)>=(f|0))break;g=S(f,i)|0;a=0;while(1){if((a|0)==(i|0))break;h[e+(a+g<<3)>>3]=+h[e+((S(a,f)|0)+i<<3)>>3];a=a+1|0}i=i+1|0}l=x;return}function Mn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0.0,j=0,k=0,m=0,n=0,o=0.0,p=0.0,q=0,r=0,s=0;m=l;l=l+80|0;k=m;j=a+16|0;f=c[j>>2]|0;g=c[(c[f+152>>2]|0)+(d<<2)>>2]|0;e=c[47184]|0;f=f+168|0;a=0;while(1){if((a|0)>=(e|0))break;h[(c[(c[f>>2]|0)+(d<<2)>>2]|0)+(a<<3)>>3]=0.0;a=a+1|0}f=g+16|0;a=0;while(1){if((a|0)>=(b|0))break;a:do if((a|0)!=(d|0)){i=+qn(c[(c[f>>2]|0)+132>>2]|0,c[(c[(c[(c[(c[j>>2]|0)+152>>2]|0)+(a<<2)>>2]|0)+16>>2]|0)+132>>2]|0,k);g=c[47184]|0;e=0;while(1){if((e|0)>=(g|0))break a;n=c[j>>2]|0;q=c[n+172>>2]|0;r=(c[(c[q+(d<<2)>>2]|0)+(a<<2)>>2]|0)+(e<<3)|0;o=+h[k+(e<<3)>>3];o=+h[(c[(c[n+164>>2]|0)+(d<<2)>>2]|0)+(a<<3)>>3]*(o-o*+h[(c[(c[n+160>>2]|0)+(d<<2)>>2]|0)+(a<<3)>>3]/i);h[r>>3]=o;n=c[n+168>>2]|0;s=(c[n+(d<<2)>>2]|0)+(e<<3)|0;h[s>>3]=+h[s>>3]+o;q=(c[(c[q+(a<<2)>>2]|0)+(d<<2)>>2]|0)+(e<<3)|0;o=+h[q>>3];p=-+h[r>>3];h[q>>3]=p;n=(c[n+(a<<2)>>2]|0)+(e<<3)|0;h[n>>3]=p-o+ +h[n>>3];e=e+1|0}}while(0);a=a+1|0}l=m;return}function Nn(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0;d=a+16|0;g=c[46842]|0;b=c[(c[d>>2]|0)+124>>2]|0;while(1){if((b|0)<=0)break;i=(b+-1|0)/2|0;j=g+(i<<2)|0;e=c[j>>2]|0;f=e+16|0;if(+h[(c[f>>2]|0)+136>>3]<=+h[(c[d>>2]|0)+136>>3])break;c[j>>2]=a;c[(c[d>>2]|0)+124>>2]=i;c[g+(b<<2)>>2]=e;c[(c[f>>2]|0)+124>>2]=b;b=i}return}function On(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0;i=a+16|0;j=c[46843]|0;k=c[46842]|0;g=c[(c[i>>2]|0)+124>>2]|0;while(1){e=g<<1|1;if((e|0)>=(j|0))break;d=e+1|0;if((d|0)<(j|0)){f=c[k+(d<<2)>>2]|0;b=c[k+(e<<2)>>2]|0;if(+h[(c[f+16>>2]|0)+136>>3]<+h[(c[b+16>>2]|0)+136>>3]){e=d;b=f}else l=6}else{b=c[k+(e<<2)>>2]|0;l=6}if((l|0)==6)l=0;d=b+16|0;if(+h[(c[i>>2]|0)+136>>3]<=+h[(c[d>>2]|0)+136>>3])break;c[k+(e<<2)>>2]=a;c[(c[i>>2]|0)+124>>2]=e;c[k+(g<<2)>>2]=b;c[(c[d>>2]|0)+124>>2]=g;g=e}return}function Pn(a){a=a|0;var b=0,d=0;b=(c[a+16>>2]|0)+124|0;if((c[b>>2]|0)>=0)Aa(90678,90698,643,90706);d=c[46843]|0;c[46843]=d+1;c[b>>2]=d;c[(c[46842]|0)+(d<<2)>>2]=a;if((d|0)>0)Nn(a);return}function Qn(){var a=0,b=0,d=0,e=0;b=c[46843]|0;if(!b)a=0;else{e=c[46842]|0;a=c[e>>2]|0;d=b+-1|0;c[46843]=d;b=c[e+(d<<2)>>2]|0;c[e>>2]=b;c[(c[b+16>>2]|0)+124>>2]=0;if((d|0)>1)On(b);c[(c[a+16>>2]|0)+124>>2]=-1}return a|0}function Rn(b,d){b=b|0;d=d|0;var e=0,f=0;f=l;l=l+16|0;e=f;c[46842]=HK((d<<2)+4|0)|0;if(a[195234]|0){_3(90720,28,1,c[15715]|0)|0;RO()}d=gC(b)|0;while(1){if(!d)break;Sn(b,d);d=hC(b,d)|0}if(a[195234]|0){b=c[15715]|0;h[e>>3]=+SO();z4(b,90568,e)|0}l6(c[46842]|0);l=f;return}function Sn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,g=0,i=0,j=0,k=0;e=c[(c[a+16>>2]|0)+152>>2]|0;f=+h[23316];d=0;while(1){g=c[e+(d<<2)>>2]|0;if(!g)break;h[(c[g+16>>2]|0)+136>>3]=f;d=d+1|0}c[46844]=b;k=c[b+16>>2]|0;h[k+136>>3]=0.0;c[k+128>>2]=0;Pn(b);a:while(1){j=Qn()|0;if(!j)break;d=c[46844]|0;k=j+16|0;if((j|0)!=(d|0))Tn(a,d,j,+h[(c[k>>2]|0)+136>>3]);i=ZA(a,j)|0;while(1){if(!i)continue a;d=c[i>>2]&3;b=c[((d|0)==3?i:i+48|0)+40>>2]|0;if((b|0)==(j|0))b=c[((d|0)==2?i:i+-48|0)+40>>2]|0;d=c[k>>2]|0;f=+h[d+136>>3]+ +h[(c[i+16>>2]|0)+136>>3];e=c[b+16>>2]|0;g=e+136|0;do if(+h[g>>3]>f){h[g>>3]=f;if((c[e+124>>2]|0)>-1){Nn(b);break}else{c[e+128>>2]=(c[d+128>>2]|0)+1;Pn(b);break}}while(0);i=_A(a,i,j)|0}}return}function Tn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=+e;b=c[(c[b+16>>2]|0)+120>>2]|0;d=c[(c[d+16>>2]|0)+120>>2]|0;a=c[(c[a+16>>2]|0)+160>>2]|0;h[(c[a+(d<<2)>>2]|0)+(b<<3)>>3]=e;h[(c[a+(b<<2)>>2]|0)+(d<<3)>>3]=e;return}function Un(a){a=a|0;mQ(a,2);b[(c[a+16>>2]|0)+176>>1]=2;c[47184]=2;Vn(a);return}function Vn(a){a=a|0;var b=0,d=0,e=0,f=0;b=qB(a)|0;e=HK(b*56|0)|0;b=HK((b<<2)+4|0)|0;f=a+16|0;c[(c[f>>2]|0)+152>>2]=b;b=gC(a)|0;d=0;while(1){if(!b)break;Wl(b);c[(c[b+16>>2]|0)+112>>2]=e+(d*56|0);c[(c[(c[f>>2]|0)+152>>2]|0)+(d<<2)>>2]=b;b=hC(a,b)|0;d=d+1|0}d=gC(a)|0;while(1){if(!d)break;b=UA(a,d)|0;while(1){if(!b)break;Wn(b);b=WA(a,b)|0}d=hC(a,d)|0}return}function Wn(a){a=a|0;var b=0.0;RC(a,137763,176,1)|0;rP(a)|0;b=+YO(a,c[47236]|0,1.0,0.0);h[(c[a+16>>2]|0)+128>>3]=b;return}function Xn(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+80|0;m=u+32|0;i=u+24|0;g=u+16|0;j=u;t=u+72|0;p=u+40|0;if(qB(b)|0){Un(b);f=NA(b,96039)|0;if(f)if(a[f>>0]|0){d=qC(b,f,0)|0;if(!d){c[g>>2]=f;dA(0,90749,g)|0;dA(3,90789,i)|0;d=0;s=1}else s=0}else{d=0;s=1}else{d=0;s=0}n=DA(b,1,96039,0)|0;o=(n|0)!=0;f=NA(b,141045)|0;if((f|0?a[f>>0]|0:0)?(k=j+8|0,c[m>>2]=j,c[m+4>>2]=k,(q4(f,105804,m)|0)==1):0)h[k>>3]=+h[j>>3];if(qB(b)|0){m=BG(b,t,0)|0;if((c[t>>2]|0)==1){g=(d|0)!=0;do if(g)e=d;else{if(o?(e=Yn(b,n)|0,e|0):0)break;e=0}while(0);f=Wu(b,e)|0;if(!((e|0)!=0|o^1))HA(f,n,137699)|0;r=(gC(b)|0)+16|0;l6(c[(c[r>>2]|0)+112>>2]|0);c[(c[r>>2]|0)+112>>2]=0;lr(b)|0;cn(b);d=(s|0)==0|g?d:f}else{iH(b,2,8,p)|0;c[p+12>>2]=0;k=(s|0)==0;j=0;while(1){if((j|0)>=(c[t>>2]|0))break;g=c[m+(j<<2)>>2]|0;e=(d|0)!=0;if(e?(EC(g,d)|0)!=0:0)f=d;else r=23;do if((r|0)==23){r=0;if(o?(q=Yn(g,n)|0,q|0):0){f=q;break}f=0}while(0);IG(g)|0;i=Wu(g,f)|0;d=k|e?d:i;if(o?(f|0)==0|(f|0)==(d|0):0)HA(i,n,137699)|0;lr(g)|0;j=j+1|0}r=(gC(b)|0)+16|0;l6(c[(c[r>>2]|0)+112>>2]|0);c[(c[r>>2]|0)+112>>2]=0;hH(c[t>>2]|0,m,b,p)|0;cn(b)}e=0;while(1){if((e|0)>=(c[t>>2]|0))break;tC(b,c[m+(e<<2)>>2]|0)|0;e=e+1|0}l6(m)}if(s|0)PA(b,96039,HB(d)|0)|0;rM(b)}l=u;return}function Yn(a,b){a=a|0;b=b|0;var c=0;c=gC(a)|0;while(1){if(!c){c=0;break}if((bP(OA(c,b)|0)|0)<<24>>24)break;c=hC(a,c)|0}return c|0}function Zn(a){a=a|0;var b=0,c=0;b=gC(a)|0;if(b|0){while(1){if(!b)break;c=UA(a,b)|0;while(1){if(!c)break;WP(c);c=WA(a,c)|0}UP(b);b=hC(a,b)|0}_n(a)}return}function _n(a){a=a|0;l6(c[(c[a+16>>2]|0)+152>>2]|0);if((vC(a)|0)!=(a|0))XC(a,0,137786);return}function $n(a){a=a|0;ao(a);if(!((qB(a)|0)==0?!(c[(c[a+16>>2]|0)+180>>2]|0):0)){kv(a);rM(a)}return}function ao(a){a=a|0;c[47201]=DA(a,1,108531,108537)|0;mQ(a,2);b[(c[a+16>>2]|0)+176>>1]=2;c[47184]=2;bo(a,0);co(a);return}function bo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;g=i;h=(b|0)==0;if(h){go(g);b=g}d=MD(a)|0;while(1){if(!d)break;if(!(h2(HB(d)|0,108307,7)|0)){RC(d,137786,280,1)|0;ho(b,d);bo(d,0)}else bo(d,b);d=ND(d)|0}if(h?(e=c[g+8>>2]|0,f=a+16|0,c[(c[f>>2]|0)+180>>2]=e,e|0):0){h=KK(c[g>>2]|0,(e<<2)+4|0)|0;c[(c[f>>2]|0)+184>>2]=h}l=i;return}function co(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=HK((qB(a)|0)<<2)|0;b=HK(((qB(a)|0)<<2)+4|0)|0;g=a+16|0;c[(c[g>>2]|0)+152>>2]=b;b=gC(a)|0;d=0;while(1){if(!b)break;RC(b,137750,304,1)|0;c[(c[b+16>>2]|0)+112>>2]=f+(d<<2);c[(c[(c[g>>2]|0)+152>>2]|0)+(d<<2)>>2]=b;eo(b);e=UA(a,b)|0;while(1){if(!e)break;fo(e);e=WA(a,e)|0}b=hC(a,b)|0;d=d+1|0}return}function eo(a){a=a|0;PA(a,108531,108537)|0;return}function fo(a){a=a|0;RC(a,137763,304,1)|0;return}function go(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function ho(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=a+8|0;d=(c[g>>2]|0)+1|0;c[g>>2]=d;e=a+4|0;h=c[e>>2]|0;f=h+10|0;if((d|0)<(h|0))a=c[a>>2]|0;else{c[e>>2]=f;d=KK(c[a>>2]|0,f<<2)|0;c[a>>2]=d;a=d;d=c[g>>2]|0}c[a+(d<<2)>>2]=b;return}function io(a){a=a|0;var b=0,d=0;b=gC(a)|0;if(b|0){l6(c[(c[b+16>>2]|0)+112>>2]|0);while(1){if(!b)break;d=UA(a,b)|0;while(1){if(!d)break;WP(d);d=WA(a,d)|0}UP(b);b=hC(a,b)|0}jo(a)}return}function jo(a){a=a|0;l6(c[(c[a+16>>2]|0)+152>>2]|0);if((vC(a)|0)!=(a|0))XC(a,0,137786);return}function ko(a){a=a|0;var d=0,e=0,f=0;lo(a);mo(a,0);no(a,0);oo(a,0);d=c[a+16>>2]|0;if(!(c[(c[d+8>>2]|0)+84>>2]|0)){d=b[d+136>>1]&14;if(d<<16>>16)Tm(a,d&65535)|0}else{d=gC(a)|0;while(1){if(!d)break;f=c[d+16>>2]|0;e=c[f+132>>2]|0;h[e>>3]=+h[f+16>>3]/72.0;h[e+8>>3]=+h[f+24>>3]/72.0;d=hC(a,d)|0}Wm(a,1)}rM(a);return}function lo(a){a=a|0;var d=0,e=0;mQ(a,2);b[(c[a+16>>2]|0)+176>>1]=2;c[47184]=2;d=gC(a)|0;while(1){if(!d)break;Wl(d);d=hC(a,d)|0}e=gC(a)|0;while(1){if(!e)break;d=UA(a,e)|0;while(1){if(!d)break;RC(d,137763,176,1)|0;rP(d)|0;d=WA(a,d)|0}e=hC(a,e)|0}return}function mo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;g=i;h=(b|0)==0;if(h){to(g);b=g}d=MD(a)|0;while(1){if(!d)break;if(!(h2(HB(d)|0,108307,7)|0)){RC(d,137786,280,1)|0;sK(d);uo(b,d);mo(d,0)}else mo(d,b);d=ND(d)|0}if(h?(e=c[g+8>>2]|0,f=a+16|0,c[(c[f>>2]|0)+180>>2]=e,e|0):0){h=KK(c[g>>2]|0,(e<<2)+4|0)|0;c[(c[f>>2]|0)+184>>2]=h}l=i;return}function no(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,i=0,j=0.0,k=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0;T=l;l=l+448|0;J=T+400|0;I=T+384|0;S=T+344|0;R=T+320|0;Q=T+248|0;G=T+208|0;A=T+152|0;B=T+96|0;p=T+88|0;e=T+64|0;L=T+32|0;M=T;E=T+416|0;u=T+304|0;z=T+288|0;N=T+192|0;O=T+176|0;P=T+136|0;K=T+72|0;o=c[a+60>>2]|0;if((d[195234]|0)>1){po(b);H=c[15715]|0;c[e>>2]=HB(a)|0;z4(H,91024,e)|0}H=a+16|0;g=b+1|0;e=1;f=0;while(1){i=c[H>>2]|0;if((e|0)>(c[i+180>>2]|0))break;F=c[(c[i+184>>2]|0)+(e<<2)>>2]|0;no(F,g);e=e+1|0;f=(qB(F)|0)+f|0}r=(qB(a)|0)-f|0;e=c[H>>2]|0;F=(c[e+180>>2]|0)+r|0;v=(F|0)==0;if(v?(c[e+12>>2]|0)==0:0){S=e+16|0;c[S>>2]=0;c[S+4>>2]=0;c[S+8>>2]=0;c[S+12>>2]=0;h[e+40>>3]=18.0;h[e+32>>3]=18.0}else{e=E+16|0;do if((iH(a,4,4,E)|0)>>>0>=3)if((c[e>>2]|0)==4?(c[E+28>>2]&2|0)!=0:0){f=DA(o,0,99491,0)|0;e=DA(o,1,99491,0)|0;if((f|0)!=0|(e|0)!=0){c[E+24>>2]=HK(F<<2)|0;break}else{c[p>>2]=HB(a)|0;dA(0,90878,p)|0;e=0;f=0;break}}else{e=0;f=0}else{c[e>>2]=3;e=0;f=0}while(0);C=HK(F<<5)|0;D=HK(F<<2)|0;s=E+24|0;o=(f|0)!=0;q=0;i=1;while(1){g=c[H>>2]|0;if((i|0)>(c[g+180>>2]|0))break;g=c[(c[g+184>>2]|0)+(i<<2)>>2]|0;y=C+(q<<5)|0;x=(c[g+16>>2]|0)+16|0;c[y>>2]=c[x>>2];c[y+4>>2]=c[x+4>>2];c[y+8>>2]=c[x+8>>2];c[y+12>>2]=c[x+12>>2];c[y+16>>2]=c[x+16>>2];c[y+20>>2]=c[x+20>>2];c[y+24>>2]=c[x+24>>2];c[y+28>>2]=c[x+28>>2];if(o&(c[s>>2]|0)!=0){y=XO(g,f,0,0)|0;c[(c[s>>2]|0)+(q<<2)>>2]=y}c[D+(q<<2)>>2]=g;q=q+1|0;i=i+1|0}w=L+16|0;x=L+8|0;y=L+24|0;a:do if((r|0)>0){p=(e|0)!=0;o=gC(a)|0;f=q;while(1){if(!o)break a;g=c[o+16>>2]|0;i=g+112|0;if(!(c[i>>2]|0)){c[i>>2]=a;c[L>>2]=0;c[L+4>>2]=0;c[L+8>>2]=0;c[L+12>>2]=0;h[w>>3]=+h[g+88>>3]+ +h[g+96>>3];h[y>>3]=+h[g+80>>3];t=C+(f<<5)|0;c[t>>2]=c[L>>2];c[t+4>>2]=c[L+4>>2];c[t+8>>2]=c[L+8>>2];c[t+12>>2]=c[L+12>>2];c[t+16>>2]=c[L+16>>2];c[t+20>>2]=c[L+20>>2];c[t+24>>2]=c[L+24>>2];c[t+28>>2]=c[L+28>>2];if(p&(c[s>>2]|0)!=0){t=XO(o,e,0,0)|0;c[(c[s>>2]|0)+(f<<2)>>2]=t}c[D+(f<<2)>>2]=o;f=f+1|0}o=hC(a,o)|0}}while(0);t=bH(F,C,E)|0;e=c[s>>2]|0;if(e|0)l6(e);qo(M,2147483647.0,2147483647.0);r=M+16|0;qo(u,-2147483647.0,-2147483647.0);c[r>>2]=c[u>>2];c[r+4>>2]=c[u+4>>2];c[r+8>>2]=c[u+8>>2];c[r+12>>2]=c[u+12>>2];o=M+24|0;p=M+8|0;q=c[15715]|0;e=0;while(1){i=c[H>>2]|0;if((e|0)>=(F|0))break;k=+(c[t+(e<<3)>>2]|0);n=+(c[t+(e<<3)+4>>2]|0);f=C+(e<<5)|0;c[L>>2]=c[f>>2];c[L+4>>2]=c[f+4>>2];c[L+8>>2]=c[f+8>>2];c[L+12>>2]=c[f+12>>2];c[L+16>>2]=c[f+16>>2];c[L+20>>2]=c[f+20>>2];c[L+24>>2]=c[f+24>>2];c[L+28>>2]=c[f+28>>2];j=k+ +h[L>>3];h[L>>3]=j;k=k+ +h[w>>3];h[w>>3]=k;m=n+ +h[x>>3];h[x>>3]=m;n=n+ +h[y>>3];h[y>>3]=n;h[M>>3]=+h[(+h[M>>3]<j?M:L)>>3];h[p>>3]=+h[(+h[p>>3]<m?M:L)+8>>3];h[r>>3]=+h[(+h[r>>3]>k?M:L)+16>>3];h[o>>3]=+h[(+h[o>>3]>n?M:L)+24>>3];f=c[D+(e<<2)>>2]|0;g=f+16|0;if((e|0)<(c[i+180>>2]|0)){u=(c[g>>2]|0)+16|0;c[u>>2]=c[L>>2];c[u+4>>2]=c[L+4>>2];c[u+8>>2]=c[L+8>>2];c[u+12>>2]=c[L+12>>2];c[u+16>>2]=c[L+16>>2];c[u+20>>2]=c[L+20>>2];c[u+24>>2]=c[L+24>>2];c[u+28>>2]=c[L+28>>2];if((d[195234]|0)>1){po(b);c[B>>2]=HB(f)|0;h[B+8>>3]=j;h[B+16>>3]=m;h[B+24>>3]=k;h[B+32>>3]=n;z4(q,90857,B)|0}}else{u=(c[g>>2]|0)+16|0;c[I>>2]=c[L>>2];c[I+4>>2]=c[L+4>>2];c[I+8>>2]=c[L+8>>2];c[I+12>>2]=c[L+12>>2];c[J>>2]=c[w>>2];c[J+4>>2]=c[w+4>>2];c[J+8>>2]=c[w+8>>2];c[J+12>>2]=c[w+12>>2];ro(z,I,J);c[u>>2]=c[z>>2];c[u+4>>2]=c[z+4>>2];c[u+8>>2]=c[z+8>>2];c[u+12>>2]=c[z+12>>2];if((d[195234]|0)>1){po(b);u=HB(f)|0;s=c[g>>2]|0;m=+h[s+16>>3];n=+h[s+24>>3];c[A>>2]=u;h[A+8>>3]=m;h[A+16>>3]=n;z4(q,90845,A)|0}}e=e+1|0}e=c[i+12>>2]|0;if(e|0){j=+h[e+24>>3];if(v){k=+h[e+32>>3];c[M>>2]=0;c[M+4>>2]=0;c[M+8>>2]=0;c[M+12>>2]=0;h[r>>3]=j;h[o>>3]=k;k=j;m=0.0}else{k=+h[r>>3];m=+h[M>>3]}n=j-(k-m);j=n*.5;if(n>0.0){h[M>>3]=m-j;h[r>>3]=k+j}}if((b|0)>0)j=+((c[E+8>>2]|0)>>>0)*.5;else j=0.0;k=+h[M>>3]-j;h[M>>3]=k;m=j+ +h[r>>3];h[r>>3]=m;n=+h[p>>3]-(j+ +h[i+56>>3]);h[p>>3]=n;j=+h[o>>3]+(j+ +h[i+88>>3]);h[o>>3]=j;if((d[195234]|0)>1){po(b);c[G>>2]=HB(a)|0;h[G+8>>3]=k;h[G+16>>3]=n;h[G+24>>3]=m;h[G+32>>3]=j;z4(q,90857,G)|0}e=0;while(1){if((e|0)>=(F|0))break;f=c[D+(e<<2)>>2]|0;g=f+16|0;if((e|0)<(c[(c[H>>2]|0)+180>>2]|0)){G=(c[g>>2]|0)+16|0;c[L>>2]=c[G>>2];c[L+4>>2]=c[G+4>>2];c[L+8>>2]=c[G+8>>2];c[L+12>>2]=c[G+12>>2];c[L+16>>2]=c[G+16>>2];c[L+20>>2]=c[G+20>>2];c[L+24>>2]=c[G+24>>2];c[L+28>>2]=c[G+28>>2];c[I>>2]=c[G>>2];c[I+4>>2]=c[G+4>>2];c[I+8>>2]=c[G+8>>2];c[I+12>>2]=c[G+12>>2];c[J>>2]=c[M>>2];c[J+4>>2]=c[M+4>>2];c[J+8>>2]=c[M+8>>2];c[J+12>>2]=c[M+12>>2];so(L,I,J);c[I>>2]=c[w>>2];c[I+4>>2]=c[w+4>>2];c[I+8>>2]=c[w+8>>2];c[I+12>>2]=c[w+12>>2];c[J>>2]=c[M>>2];c[J+4>>2]=c[M+4>>2];c[J+8>>2]=c[M+8>>2];c[J+12>>2]=c[M+12>>2];so(N,I,J);c[w>>2]=c[N>>2];c[w+4>>2]=c[N+4>>2];c[w+8>>2]=c[N+8>>2];c[w+12>>2]=c[N+12>>2];G=(c[g>>2]|0)+16|0;c[G>>2]=c[L>>2];c[G+4>>2]=c[L+4>>2];c[G+8>>2]=c[L+8>>2];c[G+12>>2]=c[L+12>>2];c[G+16>>2]=c[L+16>>2];c[G+20>>2]=c[L+20>>2];c[G+24>>2]=c[L+24>>2];c[G+28>>2]=c[L+28>>2];if((d[195234]|0)>1){po(b);G=HB(f)|0;j=+h[L>>3];k=+h[x>>3];m=+h[w>>3];n=+h[y>>3];c[Q>>2]=G;h[Q+8>>3]=j;h[Q+16>>3]=k;h[Q+24>>3]=m;h[Q+32>>3]=n;z4(q,90857,Q)|0}}else{G=(c[g>>2]|0)+16|0;c[I>>2]=c[G>>2];c[I+4>>2]=c[G+4>>2];c[I+8>>2]=c[G+8>>2];c[I+12>>2]=c[G+12>>2];c[J>>2]=c[M>>2];c[J+4>>2]=c[M+4>>2];c[J+8>>2]=c[M+8>>2];c[J+12>>2]=c[M+12>>2];so(O,I,J);c[G>>2]=c[O>>2];c[G+4>>2]=c[O+4>>2];c[G+8>>2]=c[O+8>>2];c[G+12>>2]=c[O+12>>2];if((d[195234]|0)>1){po(b);G=HB(f)|0;E=c[g>>2]|0;m=+h[E+16>>3];n=+h[E+24>>3];c[R>>2]=G;h[R+8>>3]=m;h[R+16>>3]=n;z4(q,90845,R)|0}}e=e+1|0}c[I>>2]=c[r>>2];c[I+4>>2]=c[r+4>>2];c[I+8>>2]=c[r+8>>2];c[I+12>>2]=c[r+12>>2];c[J>>2]=c[M>>2];c[J+4>>2]=c[M+4>>2];c[J+8>>2]=c[M+8>>2];c[J+12>>2]=c[M+12>>2];so(P,I,J);c[r>>2]=c[P>>2];c[r+4>>2]=c[P+4>>2];c[r+8>>2]=c[P+8>>2];c[r+12>>2]=c[P+12>>2];c[I>>2]=c[M>>2];c[I+4>>2]=c[M+4>>2];c[I+8>>2]=c[M+8>>2];c[I+12>>2]=c[M+12>>2];c[J>>2]=c[M>>2];c[J+4>>2]=c[M+4>>2];c[J+8>>2]=c[M+8>>2];c[J+12>>2]=c[M+12>>2];so(K,I,J);c[M>>2]=c[K>>2];c[M+4>>2]=c[K+4>>2];c[M+8>>2]=c[K+8>>2];c[M+12>>2]=c[K+12>>2];R=(c[H>>2]|0)+16|0;c[R>>2]=c[M>>2];c[R+4>>2]=c[M+4>>2];c[R+8>>2]=c[M+8>>2];c[R+12>>2]=c[M+12>>2];c[R+16>>2]=c[M+16>>2];c[R+20>>2]=c[M+20>>2];c[R+24>>2]=c[M+24>>2];c[R+28>>2]=c[M+28>>2];if((d[195234]|0)>1){po(b);R=HB(a)|0;j=+h[M>>3];k=+h[p>>3];m=+h[r>>3];n=+h[o>>3];c[S>>2]=R;h[S+8>>3]=j;h[S+16>>3]=k;h[S+24>>3]=m;h[S+32>>3]=n;z4(q,90857,S)|0}l6(C);l6(D);l6(t)}l=T;return}function oo(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,i=0,j=0,k=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0.0,r=0.0,s=0,t=0,u=0,v=0;u=l;l=l+80|0;t=u+32|0;j=u+8|0;e=u;s=a+16|0;p=c[s>>2]|0;q=+h[p+16>>3];r=+h[p+24>>3];if((d[195234]|0)>1){po(b);p=c[15715]|0;c[e>>2]=HB(a)|0;z4(p,90830,e)|0}p=(b|0)!=0;a:do if(p){e=gC(a)|0;f=c[15715]|0;while(1){if(!e)break a;g=e+16|0;i=c[g>>2]|0;if((c[i+112>>2]|0)==(a|0)?(v=i+16|0,h[v>>3]=q+ +h[v>>3],i=i+24|0,h[i>>3]=r+ +h[i>>3],(d[195234]|0)>1):0){po(b);v=HB(e)|0;i=c[g>>2]|0;n=+h[i+16>>3];o=+h[i+24>>3];c[j>>2]=v;h[j+8>>3]=n;h[j+16>>3]=o;z4(f,90845,j)|0}e=hC(a,e)|0}}else f=c[15715]|0;while(0);j=b+1|0;a=1;while(1){e=c[s>>2]|0;if((a|0)>(c[e+180>>2]|0))break;i=c[(c[e+184>>2]|0)+(a<<2)>>2]|0;if(p){g=i+16|0;e=c[g>>2]|0;k=q+ +h[e+16>>3];m=r+ +h[e+24>>3];n=q+ +h[e+32>>3];o=r+ +h[e+40>>3];if((d[195234]|0)>1){po(b);c[t>>2]=HB(i)|0;h[t+8>>3]=k;h[t+16>>3]=m;h[t+24>>3]=n;h[t+32>>3]=o;z4(f,90857,t)|0;e=c[g>>2]|0}h[e+16>>3]=k;h[e+24>>3]=m;h[e+32>>3]=n;h[e+40>>3]=o}oo(i,j);a=a+1|0}l=u;return}function po(a){a=a|0;var b=0;b=c[15715]|0;while(1){if((a|0)<=0)break;Z3(90875,b)|0;a=a+-1|0}return}function qo(a,b,c){a=a|0;b=+b;c=+c;h[a>>3]=b;h[a+8>>3]=c;return}function ro(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=(+h[b+8>>3]+ +h[c+8>>3])*.5;h[a>>3]=(+h[b>>3]+ +h[c>>3])*.5;h[a+8>>3]=d;return}function so(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=+h[b+8>>3]-+h[c+8>>3];h[a>>3]=+h[b>>3]-+h[c>>3];h[a+8>>3]=d;return}function to(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function uo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=a+8|0;d=(c[g>>2]|0)+1|0;c[g>>2]=d;e=a+4|0;h=c[e>>2]|0;f=h+10|0;if((d|0)<(h|0))a=c[a>>2]|0;else{c[e>>2]=f;d=KK(c[a>>2]|0,f<<2)|0;c[a>>2]=d;a=d;d=c[g>>2]|0}c[a+(d<<2)>>2]=b;return}function vo(a){a=a|0;var b=0;b=gC(a)|0;while(1){if(!b)break;UP(b);b=hC(a,b)|0}wo(a);return}function wo(a){a=a|0;var b=0,d=0,e=0;b=a+16|0;a=1;while(1){e=c[b>>2]|0;d=c[e+184>>2]|0;if((a|0)>(c[e+180>>2]|0))break;e=c[d+(a<<2)>>2]|0;AK(c[(c[e+16>>2]|0)+12>>2]|0);wo(e);a=a+1|0}l6(d);return}function xo(a){a=a|0;var b=0,d=0,e=0;WC(a,1,137750,304,1);FP(a)|0;b=HK(((qB(a)|0)<<2)+4|0)|0;e=a+16|0;c[(c[e>>2]|0)+152>>2]=b;b=0;d=gC(a)|0;while(1){if(!d)break;yo(d);c[(c[(c[e>>2]|0)+152>>2]|0)+(b<<2)>>2]=d;c[(c[d+16>>2]|0)+120>>2]=b;b=b+1|0;d=hC(a,d)|0}e=DA(a,2,92794,0)|0;d=gC(a)|0;while(1){if(!d)break;b=UA(a,d)|0;while(1){if(!b)break;zo(b,e);b=WA(a,b)|0}d=hC(a,d)|0}Ao(a);return}function yo(a){a=a|0;var b=0;qP(a);b=HK((e[(c[(uC(a)|0)+16>>2]|0)+176>>1]|0)<<3)|0;c[(c[a+16>>2]|0)+132>>2]=b;oQ(a,c[(c[(uC(a)|0)+16>>2]|0)+116>>2]&1);return}function zo(a,b){a=a|0;b=b|0;var d=0,e=0.0;RC(a,137763,176,1)|0;e=+YO(a,c[47236]|0,1.0,0.0);d=a+16|0;h[(c[d>>2]|0)+128>>3]=e;e=+YO(a,b,+h[(c[5180]|0)+32>>3],0.0);h[(c[d>>2]|0)+136>>3]=e;rP(a)|0;return}function Ao(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=l;l=l+32|0;q=r+16|0;p=r;m=r+24|0;n=DA(b,1,102924,0)|0;a:do if(n|0){o=DA(b,1,90961,0)|0;i=b+16|0;j=(o|0)==0;k=c[15715]|0;g=0;while(1){e=c[(c[(c[i>>2]|0)+152>>2]|0)+(g<<2)>>2]|0;if(!e)break a;b=OA(e,n)|0;do if(a[b>>0]|0){f=e+16|0;d=c[(c[f>>2]|0)+132>>2]|0;a[m>>0]=0;c[p>>2]=d;c[p+4>>2]=d+8;c[p+8>>2]=m;if((q4(b,102050,p)|0)<=1){c[q>>2]=HB(e)|0;c[q+4>>2]=b;z4(k,90965,q)|0;break}b:do if(+h[23314]>0.0){b=0;while(1){if((b|0)==2)break b;s=d+(b<<3)|0;h[s>>3]=+h[s>>3]/+h[23314];b=b+1|0}}while(0);b=c[f>>2]|0;a[b+119>>0]=1;if((a[m>>0]|0)!=33){if(j)break;if(!((bP(OA(e,o)|0)|0)<<24>>24))break;b=c[f>>2]|0}a[b+119>>0]=3}while(0);g=g+1|0}}while(0);l=r;return}function Bo(a){a=a|0;var b=0,c=0;c=gC(a)|0;while(1){if(!c)break;b=UA(a,c)|0;while(1){if(!b)break;WP(b);b=WA(a,b)|0}UP(c);c=hC(a,c)|0}Co(a);return}function Co(a){a=a|0;Do(a);a=a+16|0;l6(c[(c[a>>2]|0)+152>>2]|0);l6(c[(c[a>>2]|0)+140>>2]|0);return}function Do(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=a+16|0;f=1;while(1){e=c[g>>2]|0;b=c[e+184>>2]|0;if((f|0)>(c[e+180>>2]|0))break;e=c[b+(f<<2)>>2]|0;b=e+16|0;AK(c[(c[b>>2]|0)+12>>2]|0);d=c[(c[b>>2]|0)+140>>2]|0;if(d|0){l6(c[d>>2]|0);l6(c[(c[b>>2]|0)+140>>2]|0)}Do(e);f=f+1|0}l6(b);if((vC(a)|0)!=(a|0))TC(a,137786)|0;return}function Eo(a,b){a=a|0;b=b|0;c[b+4>>2]=DA(a,0,91017,0)|0;c[b+8>>2]=DA(a,0,141419,0)|0;c[b+12>>2]=DA(a,0,141351,0)|0;c[b>>2]=a;c[b+16>>2]=0;c[b+36>>2]=iH(a,2,4,b+20|0)|0;return}function Fo(a){a=a|0;var d=0,e=0;mQ(a,2);d=HK(56)|0;e=a+16|0;c[(c[e>>2]|0)+140>>2]=d;d=(XO(a,DA(a,0,91675,0)|0,2,2)|0)&65535;d=(d&65535)<10?d:10;b[(c[e>>2]|0)+176>>1]=d;c[47184]=d&65535;Go(a,0,a);cp(a);xo(a);return}function Go(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;m=l;l=l+16|0;j=m;k=(d|0)==0;if(k){Ho(j);d=j}g=e+16|0;f=MD(a)|0;while(1){if(!f)break;if(!(h2(HB(f)|0,108307,7)|0)){RC(f,137786,280,1)|0;n=HK(56)|0;p=c[f+16>>2]|0;c[p+140>>2]=n;o=c[g>>2]|0;b[p+176>>1]=b[o+176>>1]|0;c[n+44>>2]=(c[(c[o+140>>2]|0)+44>>2]|0)+1;c[n+48>>2]=e;Io(d,f);Go(f,0,f)}else Go(f,d,e);f=ND(f)|0}if(k?(h=c[j+8>>2]|0,i=a+16|0,c[(c[i>>2]|0)+180>>2]=h,h|0):0){p=KK(c[j>>2]|0,(h<<2)+4|0)|0;c[(c[i>>2]|0)+184>>2]=p}l=m;return}function Ho(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function Io(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=a+8|0;d=(c[g>>2]|0)+1|0;c[g>>2]=d;e=a+4|0;h=c[e>>2]|0;f=h+10|0;if((d|0)<(h|0))a=c[a>>2]|0;else{c[e>>2]=f;d=KK(c[a>>2]|0,f<<2)|0;c[a>>2]=d;a=d;d=c[g>>2]|0}c[a+(d<<2)>>2]=b;return}function Jo(a){a=a|0;var b=0,c=0;b=l;l=l+64|0;c=b;Eo(a,c);Ko(a,c);Lo(a);Mo(a,a);No(a);l=b;return}function Ko(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0,w=0.0,x=0.0;s=l;l=l+64|0;r=s+48|0;e=s+40|0;o=s+56|0;n=s+52|0;m=s;if(a[195234]|0){q=c[15715]|0;c[e>>2]=HB(b)|0;z4(q,91024,e)|0}e=gC(b)|0;while(1){if(!e)break;c[(c[e+16>>2]|0)+164>>2]=0;e=hC(b,e)|0}p=Oo(b,d)|0;q=Fv(p,o,n)|0;e=q;while(1){k=e+4|0;f=c[e>>2]|0;if(!f)break;dp(f,m);e=gC(f)|0;while(1){if(!e)break;g=hC(f,e)|0;i=e+16|0;j=c[i>>2]|0;if(c[j+212>>2]|0){v=Po(e,f)|0;Ko(v,d);v=c[(c[v+16>>2]|0)+140>>2]|0;u=+h[v+24>>3];j=c[i>>2]|0;h[j+32>>3]=u;t=+h[v+32>>3];h[j+40>>3]=t;u=u*72.0*.5;h[j+88>>3]=u;h[j+96>>3]=u;h[j+80>>3]=t*72.0;e=g;continue}if(c[(c[j+112>>2]|0)+8>>2]|0){e=g;continue}tC(f,e)|0;e=g}if((qB(f)|0)<=1){e=k;continue}if((c[d>>2]|0)==(b|0))Iq(f)|0;qp(f,m);e=k}e=c[o>>2]|0;if((e|0)<=1)if((e|0)==1){zP(c[q>>2]|0);e=0}else e=0;else{if(!(c[n>>2]|0))f=0;else{f=HK(e)|0;a[f>>0]=1;e=c[o>>2]|0}c[d+40>>2]=f;e=OG(e,q,0,d+20|0)|0;l6(f)}Qo(p,c[o>>2]|0,q,e,b,d);l6(e);g=gC(p)|0;while(1){if(!g)break;e=c[g+16>>2]|0;f=c[e+212>>2]|0;i=e+132|0;if(!f){e=c[(c[e+112>>2]|0)+8>>2]|0;if(e|0){o=c[i>>2]|0;v=c[(c[e+16>>2]|0)+132>>2]|0;h[v>>3]=+h[o>>3];h[v+8>>3]=+h[o+8>>3]}}else{o=c[i>>2]|0;x=+h[e+32>>3];w=+h[o>>3]-x*.5;v=c[(c[f+16>>2]|0)+140>>2]|0;h[v+8>>3]=w;t=+h[e+40>>3];u=+h[o+8>>3]-t*.5;h[v+16>>3]=u;h[v+24>>3]=x+w;h[v+32>>3]=t+u}g=hC(p,g)|0}v=(c[(c[b+16>>2]|0)+140>>2]|0)+8|0;o=(c[(c[p+16>>2]|0)+140>>2]|0)+8|0;c[v>>2]=c[o>>2];c[v+4>>2]=c[o+4>>2];c[v+8>>2]=c[o+8>>2];c[v+12>>2]=c[o+12>>2];c[v+16>>2]=c[o+16>>2];c[v+20>>2]=c[o+20>>2];c[v+24>>2]=c[o+24>>2];c[v+28>>2]=c[o+28>>2];Ro(p,q);l6(q);if(a[195234]|0){v=c[15715]|0;c[r>>2]=HB(b)|0;z4(v,91035,r)|0}l=s;return}function Lo(b){b=b|0;var d=0,e=0,f=0.0,g=0.0,i=0.0,j=0.0,k=0,l=0.0,m=0.0;d=gC(b)|0;while(1){if(!d)break;e=c[d+16>>2]|0;if(a[e+118>>0]|0){k=c[(c[(c[e+212>>2]|0)+16>>2]|0)+140>>2]|0;j=+h[k+24>>3]-+h[k+8>>3];i=+h[k+32>>3]-+h[k+16>>3];m=j*.5;l=i*.5;g=m*72.0;f=l*72.0;k=c[e+132>>2]|0;h[k>>3]=m;h[k+8>>3]=l;h[e+32>>3]=j;h[e+40>>3]=i;h[e+96>>3]=g;h[e+88>>3]=g;h[e+80>>3]=i*72.0;e=c[(c[e+12>>2]|0)+44>>2]|0;h[e>>3]=g;h[e+8>>3]=f;i=-g;h[e+16>>3]=i;h[e+24>>3]=f;h[e+32>>3]=i;f=-f;h[e+40>>3]=f;h[e+48>>3]=g;h[e+56>>3]=f}d=hC(b,d)|0}return}function Mo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,g=0.0,i=0,j=0,k=0.0,l=0,m=0.0,n=0,o=0.0,p=0;i=a+16|0;j=c[(c[i>>2]|0)+140>>2]|0;f=+h[j+8>>3];g=+h[j+16>>3];j=(a|0)!=(b|0);a:do if(j){d=gC(a)|0;while(1){if(!d){a=1;break a}e=c[d+16>>2]|0;if((c[e+212>>2]|0)==(a|0)){e=c[e+132>>2]|0;h[e>>3]=f+ +h[e>>3];e=e+8|0;h[e>>3]=g+ +h[e>>3]}d=hC(a,d)|0}}else a=1;while(0);while(1){d=c[i>>2]|0;if((a|0)>(c[d+180>>2]|0))break;d=c[(c[d+184>>2]|0)+(a<<2)>>2]|0;if(j){e=c[(c[d+16>>2]|0)+140>>2]|0;p=e+8|0;n=e+16|0;l=e+24|0;e=e+32|0;o=g+ +h[n>>3];m=f+ +h[l>>3];k=g+ +h[e>>3];h[p>>3]=f+ +h[p>>3];h[n>>3]=o;h[l>>3]=m;h[e>>3]=k}Mo(d,b);a=a+1|0}return}function No(a){a=a|0;var b=0,d=0,e=0.0,f=0.0,g=0.0;b=a+16|0;a=c[b>>2]|0;d=c[a+140>>2]|0;g=+h[d+16>>3]*72.0;f=+h[d+24>>3]*72.0;e=+h[d+32>>3]*72.0;h[a+16>>3]=+h[d+8>>3]*72.0;h[a+24>>3]=g;h[a+32>>3]=f;h[a+40>>3]=e;a=1;while(1){d=c[b>>2]|0;if((a|0)>(c[d+180>>2]|0))break;No(c[(c[d+184>>2]|0)+(a<<2)>>2]|0);a=a+1|0}return}function Oo(e,f){e=e|0;f=f|0;var g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=l;l=l+160|0;t=z+24|0;u=z+8|0;i=z;g=z+56|0;x=f+16|0;y=c[x>>2]|0;c[x>>2]=y+1;c[t>>2]=y;i2(g,91097,t)|0;if((d[195234]|0)>1){y=c[15715]|0;x=HB(e)|0;c[i>>2]=g;c[i+4>>2]=x;z4(y,91104,i)|0};c[t>>2]=c[4658];x=lB(91457,t,0)|0;RC(x,137786,280,1)|0;w=HK(56)|0;y=x+16|0;p=c[y>>2]|0;c[p+140>>2]=w;w=e+16|0;b[p+176>>1]=b[(c[w>>2]|0)+176>>1]|0;Xo(e,x,92808);Xo(e,x,93413);Xo(e,x,91503);p=f+4|0;q=t+16|0;r=t+8|0;s=t+24|0;k=0;o=1;while(1){g=c[w>>2]|0;if((o|0)>(c[g+180>>2]|0))break;c[t>>2]=c[332];c[t+4>>2]=c[333];c[t+8>>2]=c[334];c[t+12>>2]=c[335];c[t+16>>2]=c[336];c[t+20>>2]=c[337];c[t+24>>2]=c[338];c[t+28>>2]=c[339];i=c[(c[g+184>>2]|0)+(o<<2)>>2]|0;sK(i);j=Yo(x,HB(i)|0)|0;m=j+16|0;g=c[m>>2]|0;c[g+212>>2]=i;n=k+1|0;c[g+120>>2]=k;if(c[p>>2]|0)Zo(i,j,f,t);g=gC(i)|0;while(1){if(!g)break;c[(c[g+16>>2]|0)+164>>2]=j;g=hC(i,g)|0}g=c[m>>2]|0;if(a[g+119>>0]|0){m=c[g+132>>2]|0;h[m>>3]=(+h[t>>3]+ +h[q>>3])*.5;h[m+8>>3]=(+h[r>>3]+ +h[s>>3])*.5}k=n;o=o+1|0}m=gC(e)|0;while(1){if(!m)break;g=m+16|0;i=c[g>>2]|0;if(!(c[i+164>>2]|0)){j=i+212|0;t=c[j>>2]|0;if(t|0?(t|0)!=(c[(c[(c[w>>2]|0)+140>>2]|0)+48>>2]|0):0){v=18;break}c[j>>2]=e;if(!(a[i+118>>0]|0)){j=Yo(x,HB(m)|0)|0;i=c[g>>2]|0;c[i+164>>2]=j;j=c[j+16>>2]|0;c[j+120>>2]=k;h[j+32>>3]=+h[i+32>>3];h[j+40>>3]=+h[i+40>>3];h[j+88>>3]=+h[i+88>>3];h[j+96>>3]=+h[i+96>>3];h[j+80>>3]=+h[i+80>>3];c[j+8>>2]=c[i+8>>2];c[j+12>>2]=c[i+12>>2];g=a[i+119>>0]|0;if(g<<24>>24){f=c[i+132>>2]|0;t=c[j+132>>2]|0;h[t>>3]=+h[f>>3];h[t+8>>3]=+h[f+8>>3];a[j+119>>0]=g}c[(c[j+112>>2]|0)+8>>2]=m;g=k+1|0}else g=k}else g=k;m=hC(e,m)|0;k=g}if((v|0)==18){f=HB(m)|0;t=HB(e)|0;v=HB(c[(c[g>>2]|0)+212>>2]|0)|0;c[u>>2]=f;c[u+4>>2]=t;c[u+8>>2]=v;dA(1,91127,u)|0;Ca(187380,1)}n=gC(e)|0;while(1){if(!n)break;o=c[(c[n+16>>2]|0)+164>>2]|0;p=o+16|0;j=UA(e,n)|0;while(1){if(!j)break;g=c[(c[(c[((c[j>>2]&3|0)==2?j:j+-48|0)+40>>2]|0)+16>>2]|0)+164>>2]|0;if((g|0)!=(o|0)){if(g>>>0>o>>>0)m=fB(x,o,g,0,1)|0;else m=fB(x,g,o,0,1)|0;RC(m,137763,176,1)|0;i=c[j+16>>2]|0;v=c[m+16>>2]|0;h[v+136>>3]=+h[i+136>>3];h[v+128>>3]=+h[i+128>>3];g=c[(c[g+16>>2]|0)+112>>2]|0;i=g+4|0;c[i>>2]=(c[i>>2]|0)+1;i=c[(c[p>>2]|0)+112>>2]|0;u=i+4|0;c[u>>2]=(c[u>>2]|0)+1;if(!(c[v+172>>2]|0)){c[g>>2]=(c[g>>2]|0)+1;c[i>>2]=(c[i>>2]|0)+1}_o(m,j)}j=WA(e,j)|0}n=hC(e,n)|0}g=c[(c[w>>2]|0)+140>>2]|0;i=c[g>>2]|0;if(i|0){j=HK((c[g+4>>2]<<4)+16|0)|0;c[c[(c[y>>2]|0)+140>>2]>>2]=j;g=0;while(1){if(!(c[i>>2]|0))break;n=c[(c[(c[i+4>>2]|0)+16>>2]|0)+164>>2]|0;if(n){$o(e,i);o=Yo(x,194052)|0;p=o+16|0;c[(c[p>>2]|0)+120>>2]=k;if(o>>>0>n>>>0)m=fB(x,n,o,0,1)|0;else m=fB(x,o,n,0,1)|0;RC(m,137763,176,1)|0;v=c[i>>2]|0;u=c[v+16>>2]|0;w=c[m+16>>2]|0;h[w+136>>3]=+h[u+136>>3];h[w+128>>3]=+h[u+128>>3];_o(m,v);v=c[(c[p>>2]|0)+112>>2]|0;w=v+4|0;c[w>>2]=(c[w>>2]|0)+1;w=c[(c[n+16>>2]|0)+112>>2]|0;u=w+4|0;c[u>>2]=(c[u>>2]|0)+1;c[v>>2]=(c[v>>2]|0)+1;c[w>>2]=(c[w>>2]|0)+1;c[j+4>>2]=o;h[j+8>>3]=+h[i+8>>3];c[j>>2]=m;g=g+1|0;j=j+16|0;k=k+1|0}i=i+16|0}c[(c[(c[y>>2]|0)+140>>2]|0)+4>>2]=g}l=z;return x|0}function Po(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,g=0,i=0,j=0,k=0,l=0;l=c[a+16>>2]|0;k=c[l+212>>2]|0;l=c[(c[l+112>>2]|0)+4>>2]|0;do if(l|0){j=HK((l<<4)+16|0)|0;f=Uo(a,b)|0;g=f+8|0;b=0;e=f;while(1){if(!(c[e>>2]|0))break;i=e+24|0;if(!(c[i>>2]|0))d=+h[g>>3]+6.283185307179586;else d=+h[e+32>>3];b=Vo(a,e,j,b,d)|0;e=i}if((b|0)==(l|0)){a=c[(c[k+16>>2]|0)+140>>2]|0;c[a>>2]=j;c[a+4>>2]=l;l6(f);break}else Aa(91043,91053,766,91062)}while(0);return k|0}function Qo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0.0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0,H=0.0;B=l;l=l+32|0;u=B+16|0;y=B;m=c[g+8>>2]|0;k=c[g+12>>2]|0;v=(c[g>>2]|0)==(f|0);z=(b|0)!=0;x=y+8|0;w=y+4|0;A=y+12|0;a:do if(z){n=c[(c[d>>2]|0)+16>>2]|0;j=+h[n+16>>3];m=~~(j+(j>=0.0?.5:-.5));c[y>>2]=m;j=+h[n+24>>3];g=~~(j+(j>=0.0?.5:-.5));c[w>>2]=g;j=+h[n+32>>3];k=~~(j+(j>=0.0?.5:-.5));c[x>>2]=k;j=+h[n+40>>3];n=~~(j+(j>=0.0?.5:-.5));c[A>>2]=n;if((b|0)>1){b=c[e>>2]|0;t=c[e+4>>2]|0;m=m+b|0;c[y>>2]=m;s=g+t|0;c[w>>2]=s;b=k+b|0;c[x>>2]=b;p=u+4|0;q=u+8|0;r=u+12|0;o=e;g=d;t=n+t|0;while(1){g=g+4|0;k=o+8|0;c[A>>2]=t;n=c[g>>2]|0;if(!n){p=0;break a}F=c[n+16>>2]|0;G=+h[F+16>>3];i=+h[F+24>>3];j=+h[F+32>>3];H=+h[F+40>>3];F=~~(H+(H>=0.0?.5:-.5));c[r>>2]=F;n=c[k>>2]|0;E=c[o+12>>2]|0;D=~~(G+(G>=0.0?.5:-.5))+n|0;c[u>>2]=D;C=~~(i+(i>=0.0?.5:-.5))+E|0;c[p>>2]=C;n=~~(j+(j>=0.0?.5:-.5))+n|0;c[q>>2]=n;E=F+E|0;c[r>>2]=E;D=c[((m|0)<(D|0)?y:u)>>2]|0;c[y>>2]=D;C=c[((s|0)<(C|0)?y:u)+4>>2]|0;c[w>>2]=C;n=c[((b|0)>(n|0)?y:u)+8>>2]|0;c[x>>2]=n;o=k;t=c[((t|0)>(E|0)?y:u)+12>>2]|0;m=D;s=C;b=n}}else{p=0;s=g;t=n;b=k}}else{c[y>>2]=0;c[w>>2]=0;b=XO(f,m,54,3)|0;c[x>>2]=b;t=XO(f,k,36,3)|0;c[A>>2]=t;p=1;s=0;m=0}while(0);n=f+16|0;o=c[n>>2]|0;g=c[o+12>>2]|0;if(g){H=+h[g+24>>3];g=~~(H+(H>=0.0?.5:-.5))+(m-b)|0;if((g|0)>0){g=g>>>1;m=m-g|0;c[y>>2]=m;b=g+b|0;c[x>>2]=b;g=0}else g=0}else g=p;if(v|(g|0)!=0){k=0;g=o}else{k=XO(a,c[47198]|0,8,0)|0;g=c[n>>2]|0}q=k-m|0;p=~~(+(k-s|0)+ +h[g+56>>3]);c[y>>2]=0;c[w>>2]=0;o=q+k+b|0;c[x>>2]=o;n=~~(+(p+k|0)+ +h[g+88>>3]+ +(t|0));c[A>>2]=n;b:do if(z){g=e;c:while(1){b=d+4|0;k=c[d>>2]|0;if(!k)break b;if(!g){m=0;d=q;g=p}else{m=g+8|0;d=(c[g>>2]|0)+q|0;g=(c[g+4>>2]|0)+p|0}j=+(d|0)/72.0;i=+(g|0)/72.0;d=gC(k)|0;while(1){if(!d){d=b;g=m;continue c}F=c[(c[d+16>>2]|0)+132>>2]|0;h[F>>3]=j+ +h[F>>3];F=F+8|0;h[F>>3]=i+ +h[F>>3];d=hC(k,d)|0}}}while(0);F=c[(c[a+16>>2]|0)+140>>2]|0;h[F+8>>3]=0.0;h[F+16>>3]=0.0;h[F+24>>3]=+(o|0)/72.0;h[F+32>>3]=+(n|0)/72.0;l=B;return}function Ro(a,b){a=a|0;b=b|0;var d=0,e=0;while(1){d=c[b>>2]|0;if(!d)break;So(d);TC(d,137786)|0;b=b+4|0}b=c[c[(c[a+16>>2]|0)+140>>2]>>2]|0;if(b|0)l6(b);So(a);TC(a,137786)|0;d=gC(a)|0;while(1){if(!d)break;e=hC(a,d)|0;b=UA(a,d)|0;while(1){if(!b)break;l6(c[(c[b+16>>2]|0)+172>>2]|0);TC(b,137763)|0;b=WA(a,b)|0}To(d);d=e}pB(a)|0;return}function So(a){a=a|0;l6(c[(c[a+16>>2]|0)+140>>2]|0);return}function To(a){a=a|0;var b=0;b=a+16|0;l6(c[(c[b>>2]|0)+112>>2]|0);l6(c[(c[b>>2]|0)+132>>2]|0);TC(a,137750)|0;return}function Uo(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0.0,g=0,i=0,j=0,k=0,l=0,m=0;k=a+16|0;l=c[c[(c[k>>2]|0)+112>>2]>>2]|0;m=HK((l*24|0)+24|0)|0;i=0;j=ZA(b,a)|0;while(1){if(!j)break;g=c[j>>2]&3;e=c[((g|0)==2?j:j+-48|0)+40>>2]|0;if((e|0)==(a|0))e=c[((g|0)==3?j:j+48|0)+40>>2]|0;e=c[(c[e+16>>2]|0)+132>>2]|0;g=c[(c[k>>2]|0)+132>>2]|0;d=+h[e>>3]-+h[g>>3];f=+h[e+8>>3]-+h[g+8>>3];c[m+(i*24|0)>>2]=j;h[m+(i*24|0)+8>>3]=+O(+f,+d);h[m+(i*24|0)+16>>3]=d*d+f*f;i=i+1|0;j=_A(b,j,a)|0}if((i|0)!=(l|0))Aa(91076,91053,642,91085);k3(m,l,24,67);a:do if((l|0)>1){a=l+-1|0;e=0;b:while(1){if((e|0)>=(a|0))break a;f=+h[m+(e*24|0)+8>>3];g=e+1|0;j=g;while(1){i=m+(j*24|0)+8|0;if((j|0)>=(l|0))break;if(!(+h[i>>3]==f))break;j=j+1|0}if((j|0)==(g|0)){e=g;continue}if((j|0)==(l|0))d=3.141592653589793;else d=+h[i>>3];d=(d-f)/+(j-e|0);d=d>.03490658503988659?.03490658503988659:d;f=0.0;while(1){if((e|0)>=(j|0))continue b;k=m+(e*24|0)+8|0;h[k>>3]=f+ +h[k>>3];f=d+f;e=e+1|0}}}while(0);return m|0}function Vo(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=+g;var i=0,j=0,k=0,l=0.0,m=0,n=0,o=0,p=0.0,q=0;k=c[d>>2]|0;n=c[k+16>>2]|0;m=b[n+168>>1]|0;o=m<<16>>16;j=c[k>>2]&3;i=c[((j|0)==2?k:k+-48|0)+40>>2]|0;if((i|0)==(a|0))i=c[((j|0)==3?k:k+48|0)+40>>2]|0;p=+h[d+8>>3];g=(g-p)/+(m<<16>>16);g=g>.03490658503988659?.03490658503988659:g;q=i>>>0>a>>>0;m=o+f|0;l=q?g:-g;d=q?1:-1;k=0;j=c[n+172>>2]|0;i=q?f:m+-1|0;g=q?p:p+ +(o+-1|0)*g;while(1){if((k|0)>=(o|0))break;q=c[j>>2]|0;c[e+(i<<4)>>2]=q;f=c[q>>2]&3;n=(f|0)==3?q:q+48|0;c[e+(i<<4)+4>>2]=c[((c[(c[(c[n+40>>2]|0)+16>>2]|0)+164>>2]|0)==(a|0)?n:(f|0)==2?q:q+-48|0)+40>>2];h[e+(i<<4)+8>>3]=g;k=k+1|0;j=j+4|0;i=i+d|0;g=l+g}return m|0}function Wo(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;c=+h[a+8>>3];d=+h[b+8>>3];if(!(c>d))if(!(c<d)){d=+h[a+16>>3];c=+h[b+16>>3];if(d>c)a=1;else a=(d<c)<<31>>31}else a=-1;else a=1;return a|0}function Xo(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=DA(a,0,c,0)|0;do if(d|0){a=OA(a,d)|0;d=DA(b,0,c,0)|0;if(!d){DA(b,0,c,a)|0;break}else{HA(b,d,a)|0;break}}while(0);return}function Yo(a,b){a=a|0;b=b|0;var d=0,f=0;b=qC(a,b,1)|0;RC(b,137750,304,1)|0;f=HK(32)|0;d=b+16|0;c[(c[d>>2]|0)+112>>2]=f;a=IK((e[(c[a+16>>2]|0)+176>>1]|0)<<3)|0;c[(c[d>>2]|0)+132>>2]=a;return b|0}function Zo(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+80|0;n=q+56|0;m=q+32|0;o=q;p=q+64|0;i=c[e+4>>2]|0;k=OA(b,i)|0;do if(a[k>>0]|0){if((c[e>>2]|0)!=(b|0)){e=OA(OD(b)|0,i)|0;if((e|0)==(k|0))break;if(!(f2(k,e)|0))break}a[p>>0]=0;e=o+8|0;i=o+16|0;j=o+24|0;c[m>>2]=o;c[m+4>>2]=e;c[m+8>>2]=i;c[m+12>>2]=j;c[m+16>>2]=p;if((q4(k,91238,m)|0)<=3){c[n>>2]=HB(b)|0;c[n+4>>2]=k;dA(0,91256,n)|0;break}g=+h[23314];if(g>0.0){h[o>>3]=+h[o>>3]/g;h[e>>3]=+h[e>>3]/g;h[i>>3]=+h[i>>3]/g;h[j>>3]=+h[j>>3]/g}p=a[p>>0]|0;a[(c[d+16>>2]|0)+119>>0]=p<<24>>24==33?3:p<<24>>24==63?2:1;c[f>>2]=c[o>>2];c[f+4>>2]=c[o+4>>2];c[f+8>>2]=c[o+8>>2];c[f+12>>2]=c[o+12>>2];c[f+16>>2]=c[o+16>>2];c[f+20>>2]=c[o+20>>2];c[f+24>>2]=c[o+24>>2];c[f+28>>2]=c[o+28>>2]}while(0);l=q;return}function _o(a,d){a=a|0;d=d|0;var e=0,f=0,g=0;f=a+16|0;g=c[f>>2]|0;e=c[g+172>>2]|0;g=b[g+168>>1]|0;a=(g<<2)+4|0;if(!e)a=IK(a)|0;else a=KK(e,a)|0;c[a+(g<<2)>>2]=d;d=c[f>>2]|0;c[d+172>>2]=a;d=d+168|0;b[d>>1]=(b[d>>1]|0)+1<<16>>16;return}function $o(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=l;l=l+48|0;h=i+24|0;g=i;e=c[b>>2]|0;d=c[e>>2]&3;f=c[((d|0)==2?e:e+-48|0)+40>>2]|0;d=c[((d|0)==3?e:e+48|0)+40>>2]|0;b=D3(HB(a)|0)|0;j=D3(HB(f)|0)|0;j=(b+8+j+(D3(HB(d)|0)|0)|0)>999;b=HB(a)|0;if(j){d=HB(d)|0;j=HB(f)|0;h=(c[e>>2]|0)>>>4;c[g>>2]=b;c[g+4>>2]=d;c[g+8>>2]=j;j=g+16|0;c[j>>2]=h;c[j+4>>2]=0;i2(194052,91196,g)|0}else{d=c[(c[d+16>>2]|0)+120>>2]|0;j=c[(c[f+16>>2]|0)+120>>2]|0;g=(c[e>>2]|0)>>>4;c[h>>2]=b;c[h+4>>2]=d;c[h+8>>2]=j;j=h+16|0;c[j>>2]=g;c[j+4>>2]=0;i2(194052,91215,h)|0}l=i;return}function ap(a){a=a|0;var d=0,e=0,f=0.0,g=0.0,i=0,j=0,k=0;j=4;i=k6(40)|0;c[i>>2]=0;g=+h[23314];o=0;f=+da(1,a|0);d=o;o=0;if((d|0)!=0&(p|0)!=0){e=A6(c[d>>2]|0,i|0,j|0)|0;if(!e)Ca(d|0,p|0);D=p}else e=-1;if((e|0)!=1){h[23314]=f;o=0;$(102,a|0);d=o;o=0;if((d|0)!=0&(p|0)!=0){e=A6(c[d>>2]|0,i|0,j|0)|0;if(!e)Ca(d|0,p|0);D=p}else e=-1;if((e|0)!=1){i=x6(187380,1,i|0,j|0)|0;j=D;o=0;e=o;o=0;if((e|0)!=0&(p|0)!=0){d=A6(c[e>>2]|0,i|0,j|0)|0;if(!d)Ca(e|0,p|0);D=p}else d=-1;if((d|0)!=1)d=0;else d=D}else d=D}else d=D;while(1){if(d|0)break;o=0;$(103,a|0);d=o;o=0;if((d|0)!=0&(p|0)!=0){e=A6(c[d>>2]|0,i|0,j|0)|0;if(!e)Ca(d|0,p|0);D=p}else e=-1;if((e|0)==1){d=D;continue}o=0;la(22,a|0)|0;d=o;o=0;if((d|0)!=0&(p|0)!=0){e=A6(c[d>>2]|0,i|0,j|0)|0;if(!e)Ca(d|0,p|0);D=p}else e=-1;if((e|0)==1){d=D;continue}if(b[(c[a+16>>2]|0)+136>>1]&14){o=0;$(104,a|0);d=o;o=0;if((d|0)!=0&(p|0)!=0){e=A6(c[d>>2]|0,i|0,j|0)|0;if(!e)Ca(d|0,p|0);D=p}else e=-1;if((e|0)==1){d=D;continue}}o=0;ha(22,a|0,0);d=o;o=0;if((d|0)!=0&(p|0)!=0){e=A6(c[d>>2]|0,i|0,j|0)|0;if(!e)Ca(d|0,p|0);D=p}else e=-1;if((e|0)==1)d=D;else{k=12;break}}if((k|0)==12)h[23314]=g;l6(i|0);return}function bp(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;g=i;e=a+16|0;f=b[(c[e>>2]|0)+136>>1]&14;d=f&65535;if((f&65535)>8){if(f<<16>>16==12){if(Rm(a,25,10)|0){c[47180]=2;h=5}}else h=5;do if((h|0)==5)if(!(b[(c[e>>2]|0)+136>>1]&1)){Tm(a,d)|0;break}else{dA(0,91299,g)|0;d=2;break}while(0);c[47180]=0}if((c[47185]|0)<1)Tm(a,d)|0;l=i;return}function cp(a){a=a|0;var b=0.0,d=0.0,e=0,f=0;e=l;l=l+16|0;f=c[5180]|0;c[46512]=c[f>>2];c[46513]=c[f+4>>2];c[46515]=c[f+8>>2];c[46517]=c[f+12>>2];h[23264]=0.0;h[23259]=+h[f+16>>3];h[23260]=+h[f+24>>3];c[46516]=XO(a,DA(a,0,91362,0)|0,600,0)|0;b=+YO(a,DA(a,0,91503,0)|0,.3,0.0);h[23261]=b;f=c[5180]|0;h[f+32>>3]=b;b=+h[f+40>>3];if(b==-1.0)b=+YO(a,DA(a,0,91370,0)|0,-1.0,0.0);h[23262]=b;c[46514]=1;f=jm(a,2,186056)|0;c[46526]=f;if(!f){dA(0,91373,e)|0;c[46514]=2}c[46542]=(S(c[46516]|0,c[46517]|0)|0)/100|0;d=+h[23261];h[23266]=d*d;if(c[46512]|0){b=+h[23264];if(b<=0.0){b=d*3.0;h[23264]=b}h[23265]=b*b}l=e;return}function dp(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,g=0,i=0,j=0;j=l;l=l+16|0;d=j;g=c[c[(c[a+16>>2]|0)+140>>2]>>2]|0;i=ep(a,b)|0;fp(d,a,g);e=+h[d>>3];f=+h[d+8>>3];a:do if(!(c[46512]|0)){b=0;while(1){if((b|0)>=(c[46543]|0))break a;ip(a,+gp(b),g);b=b+1|0}}else{d=Hv(qB(a)|0)|0;Mv(d,qB(a)|0);b=0;while(1){if((b|0)>=(c[46543]|0))break;hp(a,+gp(b),g,d);b=b+1|0}Ov(d)}while(0);b:do if(e!=0.0|f!=0.0){b=gC(a)|0;while(1){if(!b)break b;g=c[(c[b+16>>2]|0)+132>>2]|0;h[g>>3]=e+ +h[g>>3];g=g+8|0;h[g>>3]=f+ +h[g>>3];b=hC(a,b)|0}}while(0);if(i|0)jp();l=j;return}function ep(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,g=0,i=0,j=0;if(+h[23262]==-1.0){i=qB(a)|0;d=+h[23261];h[23262]=+h[23260]*d*+G(+(+(i|0)))/5.0;i=1}else{i=0;d=+h[23261]}g=c[46542]|0;h[b+8>>3]=+gp(g);h[b+16>>3]=d;h[b+24>>3]=+h[23259];e=c[46516]|0;a=e-g|0;c[b>>2]=a;f=c[46515]|0;do if((f|0)>-1){if((f|0)<=(g|0)){c[46543]=f;a=0;j=10;break}if((f|0)<=(e|0)){c[46543]=g;a=f-g|0;j=10}}else{c[46543]=g;j=10}while(0);if((j|0)==10)c[b+32>>2]=a;return i|0}function fp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0;w=qB(d)|0;x=c[(c[(c[d+16>>2]|0)+140>>2]|0)+4>>2]|0;u=gC(d)|0;v=0;n=0;f=0;g=0;o=0;while(1){l=+(f|0);k=+(n|0);y=(v|0)!=0;if(!u)break;p=c[u+16>>2]|0;if(!(a[p+119>>0]|0))p=v;else{p=c[p+132>>2]|0;j=+h[p>>3];i=+h[p+8>>3];if(y){t=+(g|0);s=+(o|0);o=~~(i>s?i:s);n=~~(j<k?j:k);f=~~(i<l?i:l);g=~~(j>t?j:t)}else{g=~~j;f=~~i;o=f;n=g}p=v+1|0}u=hC(d,u)|0;v=p}t=+h[23261]*(+G(+(+(w-x|0)))+1.0)*.5*1.2;h[23268]=t;h[23267]=t;if((v|0)!=1)if((v|0)>1){r=+(g+n|0)*.5;s=+(o+f|0)*.5;q=+(g-n|0)*1.2;k=+(o-f|0)*1.2;l=t*4.0*t;m=q*k/l;i=q*.5;j=k*.5;do if(!(m>=1.0)){if(m>0.0){j=+G(+m)*2.0;i=q/j;h[23267]=i;j=k/j;A=19;break}if(q>0.0){h[23267]=i;j=l/q*.5;A=19;break}if(k>0.0){i=l/k*.5;h[23267]=i;A=19}else{j=t;i=t}}else{h[23267]=i;A=19}while(0);if((A|0)==19)h[23268]=j;q=+O(+j,+i);t=i/+I(+q);h[23267]=t;i=j/+J(+q);h[23268]=i;j=t}else{r=0.0;s=0.0;j=t;i=t}else{r=k;s=l;j=t;i=t}h[23269]=j*j;h[23270]=i*i;if((c[46526]|0)==2)f=c[46514]|0;else{f=e4()|0;f=(Ya(0)|0)^f}W4(f);a:do if(!e){e=gC(d)|0;if(!y)while(1){if(!e)break a;t=+h[23267];t=t*(+S4()*2.0+-1.0);A=e+16|0;h[c[(c[A>>2]|0)+132>>2]>>3]=t;t=+h[23268];t=t*(+S4()*2.0+-1.0);h[(c[(c[A>>2]|0)+132>>2]|0)+8>>3]=t;e=hC(d,e)|0}while(1){if(!e)break a;f=e+16|0;g=c[f>>2]|0;if(!(a[g+119>>0]|0)){t=+h[23267];t=t*(+S4()*2.0+-1.0);h[c[(c[f>>2]|0)+132>>2]>>3]=t;t=+h[23268];t=t*(+S4()*2.0+-1.0);h[(c[(c[f>>2]|0)+132>>2]|0)+8>>3]=t}else{A=c[g+132>>2]|0;h[A>>3]=+h[A>>3]-r;A=A+8|0;h[A>>3]=+h[A>>3]-s}e=hC(d,e)|0}}else{while(1){if(!(c[e>>2]|0))break;w=e+8|0;t=r+ +h[23267]*+I(+(+h[w>>3]));y=c[(c[e+4>>2]|0)+16>>2]|0;x=c[y+132>>2]|0;h[x>>3]=t;h[x+8>>3]=s+ +h[23268]*+J(+(+h[w>>3]));a[y+119>>0]=1;e=e+16|0}m=r*.1;q=s*.1;u=gC(d)|0;while(1){if(!u)break a;p=u+16|0;e=c[p>>2]|0;if(!((c[(c[e+112>>2]|0)+8>>2]|0)==0?!(c[e+212>>2]|0):0))A=31;do if((A|0)==31){A=0;if(a[e+119>>0]|0){y=c[e+132>>2]|0;h[y>>3]=+h[y>>3]-r;y=y+8|0;h[y>>3]=+h[y>>3]-s;break}o=ZA(d,u)|0;n=0;j=0.0;i=0.0;while(1){if(!o)break;g=c[o>>2]&3;e=(g|0)==2?o:o+-48|0;f=c[e+40>>2]|0;g=(g|0)==3?o:o+48|0;if((f|0)!=(c[g+40>>2]|0)?(z=c[(c[((f|0)==(u|0)?g:e)+40>>2]|0)+16>>2]|0,(a[z+119>>0]|0)!=0):0){e=n+1|0;y=c[z+132>>2]|0;l=+h[y+8>>3];k=+h[y>>3];if(!n){j=k;i=l}else{B=+(n|0);t=+(e|0);j=(j*B+k)/t;i=(i*B+l)/t}}else e=n;o=_A(d,o,u)|0;n=e}do if((n|0)<=1)if((n|0)==1){f=c[p>>2]|0;e=c[f+132>>2]|0;h[e>>3]=m+j*.98;i=q+i*.9;break}else{i=+S4()*6.283185307179586;B=+S4()*.9;t=B*+h[23267]*+I(+i);f=c[p>>2]|0;e=c[f+132>>2]|0;h[e>>3]=t;i=B*+h[23268]*+J(+i);break}else{f=c[p>>2]|0;e=c[f+132>>2]|0;h[e>>3]=j}while(0);h[e+8>>3]=i;a[f+119>>0]=1}while(0);u=hC(d,u)|0}}while(0);h[b>>3]=r;h[b+8>>3]=s;return}function gp(a){a=a|0;var b=0;b=c[46516]|0;return +(+h[23262]*+(b-a|0)/+(b|0))}function hp(a,b,d,e){a=a|0;b=+b;d=d|0;e=e|0;var f=0,g=0,i=0,j=0.0;if(!(b<=0.0)){Nv(e);f=gC(a)|0;while(1){if(!f)break;i=c[f+16>>2]|0;g=(c[i+112>>2]|0)+16|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;i=c[i+132>>2]|0;j=+h[23264];g=~~+E(+(+h[i>>3]/j));Qv(e,g,~~+E(+(+h[i+8>>3]/j)),f);f=hC(a,f)|0}g=gC(a)|0;while(1){if(!g)break;f=UA(a,g)|0;while(1){if(!f)break;i=c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0;if((g|0)!=(i|0))lp(g,i,f);f=WA(a,f)|0}g=hC(a,g)|0}Sv(e,26);mp(a,b,d)}return}function ip(a,b,d){a=a|0;b=+b;d=d|0;var e=0,f=0,g=0;if(!(b<=0.0)){e=gC(a)|0;while(1){if(!e)break;g=(c[(c[e+16>>2]|0)+112>>2]|0)+16|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;e=hC(a,e)|0}g=gC(a)|0;while(1){if(!g)break;else e=g;while(1){e=hC(a,e)|0;if(!e)break;kp(g,e)}e=UA(a,g)|0;while(1){if(!e)break;f=c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0;if((g|0)!=(f|0))lp(g,f,e);e=WA(a,e)|0}g=hC(a,g)|0}mp(a,b,d)}return}function jp(){h[23262]=-1.0;return}function kp(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0,g=0;g=c[(c[b+16>>2]|0)+132>>2]|0;f=c[(c[a+16>>2]|0)+132>>2]|0;e=+h[g>>3]-+h[f>>3];d=+h[g+8>>3]-+h[f+8>>3];np(a,b,e,d,e*e+d*d);return}function lp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,g=0.0,i=0.0,j=0,k=0;j=b+16|0;k=c[(c[j>>2]|0)+132>>2]|0;b=a+16|0;a=c[(c[b>>2]|0)+132>>2]|0;e=+h[k>>3]-+h[a>>3];f=+h[k+8>>3]-+h[a+8>>3];g=e;i=f;e=e*e;f=f*f;while(1){e=f+e;if(!(e==0.0))break;e=+(5-((U4()|0)%10|0)|0);f=+(5-((U4()|0)%10|0)|0);g=e;i=f;e=e*e;f=f*f}f=+G(+e);k=(c[46513]|0)==0;d=c[d+16>>2]|0;e=+h[d+136>>3];f=+h[d+128>>3]*(k?f:f-e)/(k?e:f);g=g*f;k=c[(c[j>>2]|0)+112>>2]|0;d=k+16|0;h[d>>3]=+h[d>>3]-g;i=i*f;k=k+24|0;h[k>>3]=+h[k>>3]-i;k=c[(c[b>>2]|0)+112>>2]|0;d=k+16|0;h[d>>3]=g+ +h[d>>3];k=k+24|0;h[k>>3]=i+ +h[k>>3];return}function mp(b,d,e){b=b|0;d=+d;e=e|0;var f=0.0,g=0.0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0.0;o=d*d;n=(e|0)==0;l=gC(b)|0;while(1){if(!l)break;k=c[l+16>>2]|0;if(!(a[k+119>>0]&2)){e=c[k+112>>2]|0;f=+h[e+16>>3];g=+h[e+24>>3];i=f*f+g*g;j=c[k+132>>2]|0;m=j+8|0;if(!(i<o)){i=d/+G(+i);g=g*i;f=f*i}i=+h[j>>3]+f;f=+h[m>>3]+g;do if(!n){g=+G(+(i*i/+h[23269]+f*f/+h[23270]));if((c[e+8>>2]|0)==0?(c[k+212>>2]|0)==0:0){h[j>>3]=i/g;f=f/g;break}if(!(g>=1.0)){h[j>>3]=i;break}else{h[j>>3]=i*.95/g;f=f*.95/g;break}}else h[j>>3]=i;while(0);h[m>>3]=f}l=hC(b,l)|0}return}function np(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=+f;var g=0,i=0;while(1){if(!(f==0.0))break;f=+(5-((U4()|0)%10|0)|0);e=+(5-((U4()|0)%10|0)|0);d=f;f=f*f+e*e}if(c[46513]|0)f=f*+G(+f);f=+h[23266]/f;i=c[a+16>>2]|0;g=c[i+112>>2]|0;a=c[b+16>>2]|0;b=c[a+112>>2]|0;if(((c[g+8>>2]|0)==0?(c[i+212>>2]|0)==0:0)?(c[b+8>>2]|0)==0:0)f=(c[a+212>>2]|0)==0?f*10.0:f;d=d*f;i=b+16|0;h[i>>3]=+h[i>>3]+d;e=e*f;i=b+24|0;h[i>>3]=e+ +h[i>>3];i=g+16|0;h[i>>3]=+h[i>>3]-d;i=g+24|0;h[i>>3]=+h[i>>3]-e;return}function op(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=c[b+8>>2]|0;g=c[b>>2]|0;e=c[b+4>>2]|0;b=f;while(1){if(!b)break;a=f;while(1){if(!a)break;if((b|0)!=(a|0))kp(c[b>>2]|0,c[a>>2]|0);a=c[a+4>>2]|0}b=c[b+4>>2]|0}h=g+-1|0;a=e+-1|0;pp(d,h,a,f);pp(d,h,e,f);b=e+1|0;pp(d,h,b,f);pp(d,g,a,f);pp(d,g,b,f);g=g+1|0;pp(d,g,a,f);pp(d,g,e,f);pp(d,g,b,f);return 0}function pp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0,k=0,l=0,m=0;a=Tv(a,b,d)|0;if((e|0)!=0&(a|0)!=0){k=a+8|0;do{d=c[e>>2]|0;j=d+16|0;a=k;while(1){a=c[a>>2]|0;if(!a)break;b=c[a>>2]|0;m=c[(c[b+16>>2]|0)+132>>2]|0;l=c[(c[j>>2]|0)+132>>2]|0;f=+h[m>>3]-+h[l>>3];g=+h[m+8>>3]-+h[l+8>>3];i=f*f+g*g;if(i<+h[23265])np(d,b,f,g,i);a=a+4|0}e=c[e+4>>2]|0}while((e|0)!=0)}return}function qp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=l;l=l+16|0;g=h;e=NA(b,92808)|0;if(a[195234]|0)_3(91417,8,1,c[15715]|0)|0;if(!((e|0)!=0?(a[e>>0]|0)!=0:0))e=91426;f=F3(e,58)|0;do if(!f)f=0;else{if((f|0)!=(e|0)?((a[e>>0]|0)+-48|0)>>>0>=10:0){f=0;break}i=d6(e)|0;e=f+1|0;f=(i|0)>0?i:0}while(0);if(a[195234]|0){i=c[15715]|0;c[g>>2]=f;c[g+4>>2]=e;z4(i,91434,g)|0}if(!((f|0)!=0?!(rp(b,d,f)|0):0))kr(b,e)|0;l=h;return}function rp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,i=0,j=0,k=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0;t=l;l=l+64|0;r=t;j=t+40|0;s=qB(b)|0;k=rB(b)|0;ir(j,b);c[46884]=c[j>>2];c[46885]=c[j+4>>2];c[46886]=c[j+8>>2];if(a[187544]|0){g[46884]=+g[46884]/72.0;g[46885]=+g[46885]/72.0}f=sp(b)|0;a:do if(!f)f=0;else{j=r;i=j+40|0;do{c[j>>2]=c[d>>2];j=j+4|0;d=d+4|0}while((j|0)<(i|0));j=r+16|0;q=+h[j>>3];o=+(k|0);p=+(S(s+-1|0,s)|0);i=0;n=q;while(1){if(!((f|0)!=0&(i|0)<(e|0)))break a;tp(s,r);m=+h[170]*+h[23272];h[23273]=m;h[23274]=o*m*2.0/p;d=0;while(1){if((d|0)>=(c[46550]|0))break;m=+up(d);if(m<=0.0)break;f=vp(b,m)|0;if(!f){f=0;break}else d=d+1|0}m=q+n;h[j>>3]=m;i=i+1|0;n=m}}while(0);l=t;return f|0}function sp(a){a=a|0;var b=0,c=0,d=0,e=0;b=0;e=gC(a)|0;while(1){if(!e)break;else d=e;while(1){c=hC(a,d)|0;if(!c)break;d=c;b=(yp(e,c)|0)+b|0}e=hC(a,e)|0}return b|0}function tp(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0;e=+h[b+16>>3];h[171]=e;c[344]=c[b>>2];f=+h[b+8>>3];h[23276]=f;c[46550]=c[b+32>>2];d=+h[b+24>>3];if(d>0.0)h[170]=d;h[23272]=e*e;if(f==0.0)h[23276]=e*+G(+(+(a|0)))/5.0;return}function up(a){a=a|0;var b=0;b=c[344]|0;return +(+h[23276]*+(b-a|0)/+(b|0))}function vp(b,d){b=b|0;d=+d;var e=0,f=0,g=0,i=0.0,j=0,k=0.0,l=0.0,m=0.0,n=0.0;e=gC(b)|0;while(1){if(!e)break;j=(c[(c[e+16>>2]|0)+112>>2]|0)+16|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;e=hC(b,e)|0}e=0;j=gC(b)|0;while(1){if(!j)break;else g=j;while(1){f=hC(b,g)|0;if(!f)break;g=f;e=(wp(j,f)|0)+e|0}f=UA(b,j)|0;while(1){if(!f)break;xp(j,c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0);f=WA(b,f)|0}j=hC(b,j)|0}a:do if(!e)e=0;else{n=d*d;g=gC(b)|0;while(1){if(!g)break a;f=c[g+16>>2]|0;if((a[f+119>>0]|0)!=3){j=c[f+112>>2]|0;l=+h[j+16>>3];i=+h[j+24>>3];m=l*l+i*i;f=c[f+132>>2]|0;k=+h[f>>3];if(m<n)h[f>>3]=l+k;else{m=+G(+m);h[f>>3]=k+l*d/m;i=i*d/m}j=f+8|0;h[j>>3]=i+ +h[j>>3]}g=hC(b,g)|0}}while(0);return e|0}function wp(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0,g=0;g=c[(c[b+16>>2]|0)+132>>2]|0;f=c[(c[a+16>>2]|0)+132>>2]|0;e=+h[g>>3]-+h[f>>3];d=+h[g+8>>3]-+h[f+8>>3];return Ap(a,b,e,d,e*e+d*d)|0}function xp(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0,g=0.0,i=0,j=0.0,k=0.0,l=0,m=0;if(!(yp(a,b)|0)){i=c[b+16>>2]|0;m=c[i+132>>2]|0;f=c[a+16>>2]|0;l=c[f+132>>2]|0;e=+h[m>>3]-+h[l>>3];g=+h[m+8>>3]-+h[l+8>>3];j=+G(+(e*e+g*g));d=+zp(a);d=d+ +zp(b);k=j-d;d=k*k/(j*(+h[171]+d));e=e*d;b=c[i+112>>2]|0;a=b+16|0;h[a>>3]=+h[a>>3]-e;d=g*d;b=b+24|0;h[b>>3]=+h[b>>3]-d;b=c[f+112>>2]|0;a=b+16|0;h[a>>3]=e+ +h[a>>3];b=b+24|0;h[b>>3]=d+ +h[b>>3]}return}function yp(b,d){b=b|0;d=d|0;var e=0.0,f=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0;f=c[d+16>>2]|0;m=c[f+132>>2]|0;b=c[b+16>>2]|0;d=c[b+132>>2]|0;l=+h[m>>3]-+h[d>>3];e=+h[m+8>>3]-+h[d+8>>3];d=(a[187544]|0)!=0;k=+h[b+32>>3];i=+g[46884];j=+h[f+32>>3];if(!((l<0.0?-l:l)<=(d?k*.5+i:k*i*.5)+(d?i+j*.5:j*i*.5)))d=0;else{j=+h[b+40>>3];l=+g[46885];k=+h[f+40>>3];d=(e<0.0?-e:e)<=(d?j*.5+l:j*l*.5)+(d?l+k*.5:k*l*.5)}return d&1|0}function zp(b){b=b|0;var d=0.0,e=0.0,f=0.0,i=0;i=(a[187544]|0)!=0;b=c[b+16>>2]|0;f=+h[b+32>>3];e=+g[46884];e=i?f*.5+e:f*e*.5;f=+h[b+40>>3];d=+g[46885];d=i?f*.5+d:f*d*.5;return +(+G(+(e*e+d*d)))}function Ap(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=+f;var g=0,i=0;while(1){if(!(f==0.0))break;f=+(5-((U4()|0)%10|0)|0);e=+(5-((U4()|0)%10|0)|0);d=f;f=f*f+e*e}g=yp(a,b)|0;f=((g|0)==0?+h[23274]:+h[23273])/f;d=d*f;b=c[(c[b+16>>2]|0)+112>>2]|0;i=b+16|0;h[i>>3]=+h[i>>3]+d;f=e*f;b=b+24|0;h[b>>3]=f+ +h[b>>3];b=c[(c[a+16>>2]|0)+112>>2]|0;a=b+16|0;h[a>>3]=+h[a>>3]-d;b=b+24|0;h[b>>3]=+h[b>>3]-f;return g|0}function Bp(a){a=a|0;mQ(a,2);b[(c[a+16>>2]|0)+176>>1]=2;c[47184]=2;Cp(a);return}function Cp(a){a=a|0;var b=0,d=0,e=0,f=0;e=HK((qB(a)|0)<<2)|0;b=HK(((qB(a)|0)<<2)+4|0)|0;f=a+16|0;c[(c[f>>2]|0)+152>>2]=b;b=gC(a)|0;d=0;while(1){if(!b)break;Wl(b);c[(c[b+16>>2]|0)+112>>2]=e+(d<<2);c[(c[(c[f>>2]|0)+152>>2]|0)+(d<<2)>>2]=b;b=hC(a,b)|0;d=d+1|0}d=gC(a)|0;while(1){if(!d)break;b=UA(a,d)|0;while(1){if(!b)break;Dp(b);b=WA(a,b)|0}d=hC(a,d)|0}return}function Dp(a){a=a|0;var b=0.0;RC(a,137763,176,1)|0;rP(a)|0;b=+YO(a,c[47236]|0,1.0,0.0);h[(c[a+16>>2]|0)+128>>3]=b;return}function Ep(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;k=m+4|0;j=m;c[k>>2]=c[4660];k=lB(91457,k,0)|0;RC(k,91465,280,1)|0;c[(c[a+16>>2]|0)+140>>2]=k;d=gC(a)|0;while(1){if(!d)break;e=d+16|0;if(!(c[c[(c[e>>2]|0)+112>>2]>>2]|0)){i=Fp(k,HB(d)|0,d)|0;c[c[(c[e>>2]|0)+112>>2]>>2]=i}d=hC(a,d)|0}e=gC(a)|0;while(1){if(!e)break;d=UA(a,e)|0;while(1){if(!d)break;g=c[d>>2]&3;f=c[c[(c[(c[((g|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+112>>2]>>2]|0;g=c[c[(c[(c[((g|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+112>>2]>>2]|0;if((f|0)!=(g|0))RC(fB(k,f,g,0,1)|0,137763,176,1)|0;d=WA(a,d)|0}e=hC(a,e)|0}i=BG(k,j,0)|0;e=0;while(1){if((e|0)>=(c[j>>2]|0))break;g=c[i+(e<<2)>>2]|0;d=gC(g)|0;while(1){if(!d)break;f=UA(a,c[c[(c[d+16>>2]|0)+112>>2]>>2]|0)|0;while(1){if(!f)break;h=c[c[(c[(c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0)+16>>2]|0)+112>>2]>>2]|0;if((d|0)!=(h|0)){h=fB(k,d,h,0,1)|0;RC(h,137763,176,1)|0;jB(g,h,1)|0}f=WA(a,f)|0}d=hC(g,d)|0}e=e+1|0}d=gC(k)|0;while(1){if(!d)break;e=UA(k,d)|0;while(1){if(!e)break;a=HK(8)|0;c[(c[e+16>>2]|0)+120>>2]=a;e=WA(k,e)|0}d=hC(k,d)|0}c[b>>2]=c[j>>2];l=m;return i|0}function Fp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;b=qC(a,b,1)|0;RC(b,137750,304,1)|0;e=HK(40)|0;a=b+16|0;c[(c[a>>2]|0)+112>>2]=e;e=HK(c[47184]<<3)|0;a=c[a>>2]|0;c[a+132>>2]=e;e=c[d+16>>2]|0;h[a+88>>3]=+h[e+88>>3];h[a+96>>3]=+h[e+96>>3];h[a+80>>3]=+h[e+80>>3];c[c[a+112>>2]>>2]=d;return b|0}function Gp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;h=l;l=l+48|0;b=h+32|0;e=h;if(qB(a)|0){g=Ep(a,b)|0;f=c[b>>2]|0;b=c[g>>2]|0;if((f|0)==1){_w(b,a);Hp(c[g>>2]|0);lr(a)|0}else{d=c[b+60>>2]|0;iH(a,2,8,e)|0;b=0;while(1){if((b|0)>=(f|0))break;i=c[g+(b<<2)>>2]|0;_w(i,a);lr(i)|0;b=b+1|0}hH(f,g,d,e)|0;b=0;while(1){if((b|0)>=(f|0))break;Hp(c[g+(b<<2)>>2]|0);b=b+1|0}}l6(g)}l=h;return}function Hp(a){a=a|0;var b=0,d=0,e=0;b=gC(a)|0;while(1){if(!b)break;d=c[b+16>>2]|0;e=c[d+132>>2]|0;d=c[(c[(c[c[d+112>>2]>>2]|0)+16>>2]|0)+132>>2]|0;h[d>>3]=+h[e>>3];h[d+8>>3]=+h[e+8>>3];b=hC(a,b)|0}return}function Ip(a){a=a|0;if(qB(a)|0){Bp(a);Gp(a);l6(c[(c[(gC(a)|0)+16>>2]|0)+112>>2]|0);cn(a);rM(a)}return}function Jp(a){a=a|0;var b=0,d=0,e=0;b=gC(a)|0;if(b|0){e=a+16|0;Kp(c[(c[e>>2]|0)+140>>2]|0);while(1){if(!b)break;d=UA(a,b)|0;while(1){if(!d)break;WP(d);d=WA(a,d)|0}UP(b);b=hC(a,b)|0}l6(c[(c[e>>2]|0)+152>>2]|0);if((vC(a)|0)!=(a|0))XC(a,0,137786)}return}function Kp(a){a=a|0;var b=0,d=0;d=gC(a)|0;while(1){if(!d)break;b=UA(a,d)|0;while(1){if(!b)break;l6(c[(c[b+16>>2]|0)+120>>2]|0);b=WA(a,b)|0}b=d+16|0;l6(c[(c[b>>2]|0)+112>>2]|0);l6(c[(c[b>>2]|0)+132>>2]|0);d=hC(a,d)|0}pB(a)|0;return}function Lp(b){b=b|0;var d=0,e=0.0,f=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+112|0;k=r+40|0;m=r+16|0;q=r+100|0;n=r;i=r+88|0;o=r+56|0;Mp(b);j=(c[47184]|0)==2;d=j&1;if(qB(b)|0){p=Vp()|0;Np(b,p);Kq(b,m,0)|0;f=p+124|0;if(j&(c[m>>2]|0)==18){c[f>>2]=c[m+8>>2];h[p+144>>3]=+h[m+16>>3];ir(i,b);if(!(a[i+8>>0]|0)){h[n>>3]=.05555555555555555;e=.05555555555555555}else{e=+g[i+4>>2];h[n>>3]=+g[i>>2]/72.0;e=e/72.0}h[n+8>>3]=e;d=0}else c[f>>2]=-1;if(a[195234]|0)Xp(p);j=BG(b,q,0)|0;if((c[q>>2]|0)==1){c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];c[k+12>>2]=c[n+12>>2];Op(b,p,k);if(d|0)Nq(b,m)|0;cn(b);d=0}else{iH(b,2,8,o)|0;c[o+12>>2]=1;i=(d|0)==0;f=0;while(1){d=c[q>>2]|0;if((f|0)>=(d|0))break;d=c[j+(f<<2)>>2]|0;IG(d)|0;c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];c[k+12>>2]=c[n+12>>2];Op(d,p,k);if(!i)Nq(d,m)|0;mQ(d,2);cn(d);f=f+1|0}hH(d,j,b,o)|0;d=0}while(1){if((d|0)>=(c[q>>2]|0))break;tC(b,c[j+(d<<2)>>2]|0)|0;d=d+1|0}l6(j);Wp(p)}rM(b);l=r;return}function Mp(a){a=a|0;var d=0,f=0;mQ(a,2);d=XO(a,DA(a,0,91669,0)|0,2,2)|0;f=(XO(a,DA(a,0,91675,0)|0,d,2)|0)&65535;b[(c[(vC(a)|0)+16>>2]|0)+176>>1]=f;if((e[(c[(vC(a)|0)+16>>2]|0)+176>>1]|0)<10)f=b[(c[(vC(a)|0)+16>>2]|0)+176>>1]|0;else f=10;b[(c[(vC(a)|0)+16>>2]|0)+176>>1]=f;f=f&65535;c[47184]=f;b[(c[(vC(a)|0)+16>>2]|0)+178>>1]=(d|0)<(f|0)?d:f;Sp(a);return}function Np(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=l;l=l+16|0;f=g+8|0;d=g+12|0;e=b+108|0;c[d>>2]=c[e>>2];if((jm(a,2,d)|0)!=2)dA(0,91470,g)|0;c[e>>2]=c[d>>2];h[b+24>>3]=+YO(a,DA(a,0,91503,0)|0,-1.0,0.0);h[b>>3]=-+YO(a,DA(a,0,91505,0)|0,1.0001234,0.0);c[b+40>>2]=XO(a,DA(a,0,91520,0)|0,2147483647,0)|0;c[b+120>>2]=Qp(a,DA(a,0,91527,0)|0)|0;c[b+132>>2]=Rp(a,DA(a,0,91537,0)|0)|0;c[b+136>>2]=0;c[b+112>>2]=(cP(NA(a,91546)|0,0)|0)&255;c[b+128>>2]=(cP(NA(a,91555)|0,1)|0)&255;h[b+152>>3]=+YO(a,DA(a,0,91570,0)|0,0.0,-1797693134862315708145274.0e284);d=XO(a,DA(a,0,91579,0)|0,0,0)|0;a=b+160|0;c[a>>2]=d;if((d|0)>4){c[f>>2]=d;dA(0,91592,f)|0;c[a>>2]=0}l=g;return}function Op(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+48|0;f=q;n=q+32|0;j=q+28|0;g=q+24|0;p=q+20|0;o=q+16|0;c[g>>2]=0;c[p>>2]=0;c[o>>2]=0;i=b+136|0;e=c[47184]|0;if((c[i>>2]|0)==1)m=Hq(a,e,o)|0;else m=Hq(a,e,0)|0;do if((c[b+124>>2]|0)>-1)if((c[b+160>>2]|0)>0){c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];k=Gq(a,f,g,p)|0;break}else{c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];k=Gq(a,f,0,0)|0;break}else k=0;while(0);e=Pp(a)|0;c[n>>2]=e;switch(c[i>>2]|0){case 1:case 0:{tq(c[47184]|0,m,c[o>>2]|0,b,0,k,e,c[g>>2]|0,c[p>>2]|0,j);break}case 5:{Fq(c[47184]|0,m,e,j);break}case 4:{e=c[o>>2]|0;if(!e)e=Nw(m)|0;else e=xw(e,0)|0;c[o>>2]=e;Aq(c[47184]|0,m,e,n,1,200,.001,j);break}default:{}}e=gC(a)|0;while(1){if(!e)break;d=c[47184]|0;g=c[e+16>>2]|0;b=(c[n>>2]|0)+((S(c[g+120>>2]|0,d)|0)<<3)|0;g=g+132|0;f=0;while(1){if((f|0)>=(d|0))break;h[(c[g>>2]|0)+(f<<3)>>3]=+h[b+(f<<3)>>3];f=f+1|0}e=hC(a,e)|0}l6(k);l6(c[n>>2]|0);nw(m);e=c[o>>2]|0;if(e|0)nw(e);e=c[p>>2]|0;if(e|0)l6(e);l=q;return}function Pp(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0;j=c[47184]|0;j=HK(S(j<<3,qB(b)|0)|0)|0;a:do if(DA(b,1,102924,0)|0){f=gC(b)|0;while(1){if(!f)break a;d=c[f+16>>2]|0;b:do if(a[d+119>>0]|0){g=c[47184]|0;i=d+132|0;e=S(g,c[d+120>>2]|0)|0;d=0;while(1){if((d|0)>=(g|0))break b;h[j+(e+d<<3)>>3]=+h[(c[i>>2]|0)+(d<<3)>>3];d=d+1|0}}while(0);f=hC(b,f)|0}}while(0);return j|0}function Qp(b,c){b=b|0;c=c|0;do if(c){b=OA(b,c)|0;c=a[b>>0]|0;if((c+-48|0)>>>0<10){b=d6(b)|0;b=(b|0)<5?b:0;break}if(P2(c)|0)if(C3(b,91631)|0)if(C3(b,91640)|0)if(C3(b,136010)|0)if(!(C3(b,91651)|0))b=3;else{b=(C3(b,91662)|0)==0;b=b?4:0}else b=0;else b=1;else b=2;else b=0}else b=0;while(0);return b|0}function Rp(b,c){b=b|0;c=c|0;do if(c){b=OA(b,c)|0;c=a[b>>0]|0;if((c+-48|0)>>>0<10){b=d6(b)|0;b=b>>>0<3?b:1;break}if(P2(c)|0)if((C3(b,136010)|0)!=0?(C3(b,137609)|0)!=0:0)if(((C3(b,100031)|0)!=0?(C3(b,107953)|0)!=0:0)?(C3(b,107958)|0)!=0:0){b=(C3(b,91626)|0)==0;b=b?2:1}else b=1;else b=0;else b=1}else b=1;while(0);return b|0}function Sp(a){a=a|0;var b=0,c=0;b=gC(a)|0;while(1){if(!b)break;Wl(b);b=hC(a,b)|0}c=gC(a)|0;while(1){if(!c)break;b=UA(a,c)|0;while(1){if(!b)break;Tp(b);b=WA(a,b)|0}c=hC(a,c)|0}return}function Tp(a){a=a|0;RC(a,137763,176,1)|0;rP(a)|0;return}function Up(a){a=a|0;var b=0,c=0;c=gC(a)|0;while(1){if(!c)break;b=UA(a,c)|0;while(1){if(!b)break;WP(b);b=WA(a,b)|0}UP(c);c=hC(a,c)|0}return}function Vp(){var a=0,b=0;a=IK(168)|0;h[a>>3]=-1.0001234;h[a+8>>3]=1.0;c[a+16>>2]=1;h[a+24>>3]=-1.0;h[a+32>>3]=.2;c[a+40>>2]=0;c[a+44>>2]=4;c[a+48>>2]=1;c[a+52>>2]=45;c[a+56>>2]=10;h[a+64>>3]=.6;h[a+72>>3]=.001;c[a+80>>2]=500;h[a+88>>3]=.9;h[a+96>>3]=.1;c[a+104>>2]=1;c[a+108>>2]=123;b=a+112|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[a+128>>2]=1;c[a+132>>2]=3;c[a+136>>2]=0;h[a+144>>3]=-4.0;h[a+152>>3]=0.0;c[a+160>>2]=0;return a|0}function Wp(a){a=a|0;l6(a);return}function Xp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;b=l;l=l+176|0;d=b+160|0;f=b+152|0;g=b+128|0;k=b+112|0;j=b+88|0;m=b+64|0;n=b+56|0;o=b+40|0;q=b+24|0;p=b+16|0;r=b;e=c[15715]|0;_3(91679,27,1,e)|0;i=+h[a+8>>3];h[r>>3]=+h[a>>3];h[r+8>>3]=i;z4(e,91707,r)|0;r=c[a+108>>2]|0;c[p>>2]=c[a+16>>2];c[p+4>>2]=r;z4(e,91758,p)|0;i=+h[a+32>>3];h[q>>3]=+h[a+24>>3];h[q+8>>3]=i;z4(e,91785,q)|0;q=c[a+44>>2]|0;p=c[a+48>>2]|0;c[o>>2]=c[a+40>>2];c[o+4>>2]=q;c[o+8>>2]=p;z4(e,91808,o)|0;o=c[a+56>>2]|0;c[n>>2]=c[a+52>>2];c[n+4>>2]=o;z4(e,91859,n)|0;i=+h[a+72>>3];n=c[a+80>>2]|0;h[m>>3]=+h[a+64>>3];h[m+8>>3]=i;c[m+16>>2]=n;z4(e,91892,m)|0;i=+h[a+96>>3];m=c[a+104>>2]|0;h[j>>3]=+h[a+88>>3];h[j+8>>3]=i;c[j+16>>2]=m;z4(e,91950,j)|0;j=c[a+116>>2]|0;i=+h[a+152>>3];c[k>>2]=c[a+112>>2];c[k+4>>2]=j;h[k+8>>3]=i;z4(e,91996,k)|0;k=c[a+124>>2]|0;j=c[a+128>>2]|0;i=+h[a+144>>3];c[g>>2]=c[17844+(c[a+120>>2]<<2)>>2];c[g+4>>2]=k;c[g+8>>2]=j;h[g+16>>3]=i;z4(e,92049,g)|0;g=c[17888+(c[a+136>>2]<<2)>>2]|0;c[f>>2]=c[17872+(c[a+132>>2]<<2)>>2];c[f+4>>2]=g;z4(e,92114,f)|0;c[d>>2]=c[a+160>>2];z4(e,92144,d)|0;l=b;return}function Yp(a){a=a|0;l6(a);return}function Zp(a){a=a|0;var b=0;b=IK(184)|0;c[b>>2]=a;c[b+176>>2]=0;return b|0}function _p(a,b){a=a|0;b=+b;var d=0,e=0,f=0,g=0,i=0,j=0;e=c[a>>2]|0;h[a+8+(e<<3)>>3]=b;f=a+176|0;g=c[a>>2]|0;i=g+1|0;d=g+-1|0;j=(g|0)>19;a:do switch(c[f>>2]|0){case 0:{if((g|0)==20)c[f>>2]=-1;else{c[f>>2]=1;d=j?20:i}c[a>>2]=d;break}case 1:if((g|0)<20?+h[a+8+(e+-1<<3)>>3]>b:0){c[a>>2]=j?20:i;break a}else{c[a>>2]=d;c[f>>2]=-1;break a}default:if((g|0)>0?+h[a+8+(e+1<<3)>>3]>b:0){c[a>>2]=d;break a}else{c[a>>2]=i;c[f>>2]=1;break a}}while(0);return}function $p(a){a=a|0;return c[a>>2]|0}function aq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0;o=c[a+20>>2]|0;p=c[a+24>>2]|0;m=c[a>>2]|0;n=c[o+(m<<2)>>2]|0;if(!n)e=1.0;else{a=0;e=0.0;a:while(1){if((a|0)>=(m|0))break;j=a+1|0;k=c[o+(j<<2)>>2]|0;l=S(a,b)|0;i=c[o+(a<<2)>>2]|0;while(1){if((i|0)>=(k|0)){a=j;continue a}g=p+(i<<2)|0;a=0;f=0.0;while(1){if((a|0)>=(b|0))break;q=+h[d+(a+l<<3)>>3]-+h[d+((S(c[g>>2]|0,b)|0)<<3)>>3];a=a+1|0;f=f+q*q}i=i+1|0;e=e+ +G(+f)}}e=e/+(n|0)}return +e}function bq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=b+10|0;if((c[d>>2]|0)<=(b|0)){c[d>>2]=e;c[a>>2]=KK(c[a>>2]|0,e<<3)|0}return}function cq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=b+10|0;if((c[d>>2]|0)<=(b|0)){c[d>>2]=e;c[a>>2]=KK(c[a>>2]|0,e<<2)|0}return}function dq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0,g=0.0,i=0,j=0,k=0;k=l;l=l+16|0;j=k;i=S(d,b)|0;b=S(c,b)|0;d=0;while(1){if((d|0)==2)break;h[j+(d<<3)>>3]=+h[a+(d+i<<3)>>3]-+h[a+(d+b<<3)>>3];d=d+1|0}g=+h[j>>3];f=+h[j+8>>3];do if(!((g>=0.0?g:-g)<=(f>=0.0?f:-f)*1.0e-05)){e=+N(+(f/g));if(g>0.0){if(!(f<0.0))break;e=e+6.283185307179586;break}else{if(!(g<0.0))break;e=e+3.141592653589793;break}}else e=f>0.0?1.5707963267948966:4.71238898038469;while(0);l=k;return +e}function eq(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;d=+h[a>>3];c=+h[b>>3];return (d>c?1:(d<c)<<31>>31)|0}function fq(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0.0,m=0,n=0,o=0.0,p=0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0.0,x=0,y=0,z=0,A=0.0,B=0.0,C=0,D=0,E=0,F=0,I=0,J=0,K=0,L=0,M=0,N=0.0,O=0,P=0,Q=0,R=0.0,T=0,U=0.0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0.0;$=l;l=l+80|0;_=$+32|0;Z=$;q=+h[e>>3];n=e+24|0;o=+h[n>>3];p=e+32|0;k=+h[p>>3];R=+h[e+72>>3];T=c[e+80>>2]|0;U=+h[e+88>>3];r=+h[e+96>>3];V=c[e+104>>2]|0;W=e+56|0;j=c[W>>2]|0;do if(!((d|0)==0|(T|0)<1)?(X=c[d+4>>2]|0,!((b|0)<1|(X|0)<1)):0){Q=c[d>>2]|0;Y=Zp(j)|0;c[i>>2]=0;if((Q|0)!=(X|0)){c[i>>2]=-100;Yp(Y);c[W>>2]=j;break}O=sw(d,1)|0;P=c[O+20>>2]|0;Q=c[O+24>>2]|0;a:do if(c[e+16>>2]|0){T4(c[e+108>>2]|0);m=S(X,b)|0;j=0;while(1){if((j|0)>=(m|0))break a;h[g+(j<<3)>>3]=+Pw();j=j+1|0}}while(0);if(o<0.0){o=+aq(O,b,g);h[n>>3]=o}if(k<0.0){h[p>>3]=.2;k=.2}if(q>=0.0){h[e>>3]=-1.0;q=-1.0}N=+H(+o,+(1.0-q));B=+H(+k,+((2.0-q)/3.0))/o;C=S(X,b<<3)|0;D=IK(C)|0;E=IK(C)|0;F=e+116|0;I=e+64|0;J=c[15715]|0;K=O+8|0;L=Z+8|0;M=Z+16|0;z=0;A=0.0;w=r;while(1){B6(D|0,g|0,C|0)|0;x=$p(Y)|0;y=ew(b,X,x,g,(c[F>>2]|0)==0?0:f)|0;$v(y,E,g,+h[I>>3],q,N,Z,i);n=0;b:while(1){if((n|0)>=(X|0)){r=0.0;m=0;break}p=S(n,b)|0;s=E+(p<<3)|0;t=n+1|0;u=P+(t<<2)|0;m=c[P+(n<<2)>>2]|0;while(1){if((m|0)>=(c[u>>2]|0)){n=t;continue b}v=Q+(m<<2)|0;j=c[v>>2]|0;c:do if((j|0)!=(n|0)){k=+Xw(g,b,n,j);j=0;while(1){if((j|0)>=(b|0))break c;r=k*(B*(+h[g+(j+p<<3)>>3]-+h[g+((S(c[v>>2]|0,b)|0)+j<<3)>>3]));aa=s+(j<<3)|0;h[aa>>3]=+h[aa>>3]-r;j=j+1|0}}while(0);m=m+1|0}}while(1){if((m|0)>=(X|0))break;n=S(m,b)|0;p=E+(n<<3)|0;k=0.0;j=0;while(1){if((j|0)>=(b|0))break;ba=+h[p+(j<<3)>>3];k=k+ba*ba;j=j+1|0}k=+G(+k);r=r+k;d:do if(k>0.0){j=0;while(1){if((j|0)>=(b|0)){j=0;break d}aa=p+(j<<3)|0;h[aa>>3]=+h[aa>>3]/k;j=j+1|0}}else j=0;while(0);while(1){if((j|0)>=(b|0))break;aa=g+(j+n<<3)|0;h[aa>>3]=+h[aa>>3]+w*+h[p+(j<<3)>>3];j=j+1|0}m=m+1|0}z=z+1|0;if(!y){if(a[195234]|0){aa=c[K>>2]|0;c[_>>2]=z;h[_+8>>3]=w;h[_+16>>3]=r;c[_+24>>2]=aa;h[_+32>>3]=o;z4(J,92400,_)|0}}else{lw(y);_p(Y,+h[Z>>3]+ +h[L>>3]*.85+ +h[M>>3]*3.3)}w=+gq(V,w,r,A,U);if(!((z|0)<(T|0)&w>R))break;else A=r}if(c[e+112>>2]|0)hq(b,O,g);Yp(Y);c[W>>2]=x;l6(D);if((O|0)!=(d|0))nw(O);l6(E)}while(0);l=$;return}function gq(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0.0;f=b*e;if((a|0)!=0&!(c>=d)){if(!(d*.95<c))b=b*.99/e}else b=f;return +b}function hq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0.0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=l;l=l+16|0;v=D+12|0;y=D+8|0;z=D+4|0;A=D;B=c[b>>2]|0;C=c[b+20>>2]|0;t=c[b+24>>2]|0;c[v>>2]=10;c[A>>2]=10;u=IK(B<<2)|0;f=IK(80)|0;c[y>>2]=f;e=IK(40)|0;c[z>>2]=e;b=0;while(1){if((b|0)>=(B|0)){n=0;r=f;k=e;o=e;m=f;break}c[u+(b<<2)>>2]=0;b=b+1|0}while(1){if((n|0)>=(B|0))break;b=c[C+(n<<2)>>2]|0;a:do if((((c[C+(n+1<<2)>>2]|0)-b|0)==1?(c[u+(n<<2)>>2]|0)==0:0)?(w=c[t+(b<<2)>>2]|0,x=u+(w<<2)|0,(c[x>>2]|0)==0):0){c[x>>2]=1;q=C+(w+1<<2)|0;n=0;s=0;g=0.0;p=c[C+(w<<2)>>2]|0;k=o;b=r;while(1){if((p|0)>=(c[q>>2]|0))break;e=t+(p<<2)|0;f=c[e>>2]|0;if(((c[C+(f+1<<2)>>2]|0)-(c[C+(f<<2)>>2]|0)|0)==1){c[u+(f<<2)>>2]=1;cq(z,s,v);g=g+ +Xw(d,a,w,c[e>>2]|0);k=c[z>>2]|0;c[k+(s<<2)>>2]=c[e>>2];e=n;f=s+1|0}else{bq(y,n,A);j=+dq(d,a,w,c[e>>2]|0);b=c[y>>2]|0;h[b+(n<<3)>>3]=j;e=n+1|0;f=s;m=b}n=e;s=f;p=p+1|0}j=g/+(s|0);if((n|0)>0){iq(n,m);b=m}g=(s|0)>1?6.283185307179586/+(s+-1|0):0.0;e=0;i=0.0;while(1){if((e|0)>=(s|0)){o=k;f=k;break a}jq(d,a,j,i,w,c[k+(e<<2)>>2]|0);e=e+1|0;i=g+i}}else{e=n;f=k;b=r}while(0);n=e+1|0;r=b;k=f}l6(u);l6(r);l6(k);l=D;return}function iq(a,b){a=a|0;b=b|0;k3(b,a,8,68);return}function jq(a,b,c,d,e,f){a=a|0;b=b|0;c=+c;d=+d;e=e|0;f=f|0;var g=0.0;g=+I(+d)*c;e=S(e,b)|0;f=S(f,b)|0;h[a+(f<<3)>>3]=g+ +h[a+(e<<3)>>3];d=+J(+d)*c;h[a+(f+1<<3)>>3]=d+ +h[a+(e+1<<3)>>3];return}function kq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0.0,l=0.0,m=0,n=0.0,o=0,p=0,q=0,r=0.0,s=0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0,B=0.0,C=0.0,D=0,E=0,F=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0.0,Q=0,R=0.0,T=0,U=0,V=0,W=0;n=+h[d>>3];m=d+24|0;l=+h[m>>3];o=d+32|0;k=+h[o>>3];P=+h[d+72>>3];Q=c[d+80>>2]|0;R=+h[d+88>>3];r=+h[d+96>>3];T=c[d+104>>2]|0;i=c[d+56>>2]|0;_3(92499,32,1,c[15715]|0)|0;if(!((b|0)==0|(Q|0)<1)?(U=c[b>>2]|0,j=c[b+4>>2]|0,!((a|0)<1|(j|0)<1)):0){p=a<<3;V=IK(S(p,j)|0)|0;if((j|0)<(c[d+52>>2]|0)){J=0;K=0;L=0;M=0;N=0;O=0}else{Zp(i)|0;M=IK(a*80|0)|0;N=IK(80)|0;O=IK(80)|0;J=O;K=N;L=M}c[g>>2]=0;if((U|0)==(j|0)){D=sw(b,1)|0;E=c[D+20>>2]|0;F=c[D+24>>2]|0;I=S(U,a)|0;a:do if(c[d+16>>2]|0){T4(c[d+108>>2]|0);i=0;while(1){if((i|0)>=(I|0))break a;h[f+(i<<3)>>3]=+Pw();i=i+1|0}}while(0);if(l<0.0){l=+aq(D,a,f);h[m>>3]=l}if(k<0.0){h[o>>3]=.2;k=.2}if(n>=0.0){h[d>>3]=-1.0;n=-1.0}B=1.0-n;C=+H(+l,+B);z=+H(+k,+((2.0-n)/3.0))/l;A=IK(p)|0;w=S(U,p)|0;x=IK(w)|0;y=d+116|0;u=n==-1.0;v=(e|0)!=0;s=0;t=0.0;while(1){i=0;while(1){if((i|0)>=(I|0))break;h[V+(i<<3)>>3]=0.0;i=i+1|0}B6(x|0,f|0,w|0)|0;q=0;while(1){if((q|0)<(U|0))i=0;else{o=0;break}while(1){if((i|0)>=(a|0))break;h[A+(i<<3)>>3]=0.0;i=i+1|0}p=S(q,a)|0;b:do if(v&(c[y>>2]|0)!=0){i=0;while(1){if((i|0)==(U|0)){i=0;break b}c:do if((i|0)!=(q|0)){l=+Ww(f,a,q,i);g=e+(i<<3)|0;m=S(i,a)|0;n=l*l;j=0;while(1){if((j|0)>=(a|0))break c;o=A+(j<<3)|0;if(u)k=n;else k=+H(+l,+B);h[o>>3]=+h[o>>3]+C*+h[g>>3]*(+h[f+(j+p<<3)>>3]-+h[f+(j+m<<3)>>3])/k;j=j+1|0}}while(0);i=i+1|0}}else{i=0;while(1){if((i|0)==(U|0)){i=0;break b}d:do if((i|0)!=(q|0)){l=+Ww(f,a,q,i);g=S(i,a)|0;n=l*l;j=0;while(1){if((j|0)>=(a|0))break d;m=A+(j<<3)|0;if(u)k=n;else k=+H(+l,+B);h[m>>3]=+h[m>>3]+C*(+h[f+(j+p<<3)>>3]-+h[f+(j+g<<3)>>3])/k;j=j+1|0}}while(0);i=i+1|0}}while(0);while(1){if((i|0)>=(a|0))break;o=V+(i+p<<3)|0;h[o>>3]=+h[A+(i<<3)>>3]+ +h[o>>3];i=i+1|0}q=q+1|0}e:while(1){if((o|0)<(U|0))i=0;else{l=0.0;j=0;break}while(1){if((i|0)>=(a|0))break;h[A+(i<<3)>>3]=0.0;i=i+1|0}p=o+1|0;g=E+(p<<2)|0;q=S(o,a)|0;j=c[E+(o<<2)>>2]|0;while(1){if((j|0)>=(c[g>>2]|0)){i=0;break}m=F+(j<<2)|0;i=c[m>>2]|0;f:do if((i|0)!=(o|0)){k=+Xw(f,a,o,i);i=0;while(1){if((i|0)>=(a|0))break f;n=k*(z*(+h[f+(i+q<<3)>>3]-+h[f+((S(c[m>>2]|0,a)|0)+i<<3)>>3]));W=A+(i<<3)|0;h[W>>3]=+h[W>>3]-n;i=i+1|0}}while(0);j=j+1|0}while(1){if((i|0)>=(a|0)){o=p;continue e}W=V+(i+q<<3)|0;h[W>>3]=+h[A+(i<<3)>>3]+ +h[W>>3];i=i+1|0}}while(1){if((j|0)>=(U|0))break;g=S(j,a)|0;i=0;while(1){if((i|0)>=(a|0)){k=0.0;i=0;break}h[A+(i<<3)>>3]=+h[V+(i+g<<3)>>3];i=i+1|0}while(1){if((i|0)>=(a|0))break;n=+h[A+(i<<3)>>3];k=k+n*n;i=i+1|0}k=+G(+k);l=l+k;g:do if(k>0.0){i=0;while(1){if((i|0)>=(a|0)){i=0;break g}W=A+(i<<3)|0;h[W>>3]=+h[W>>3]/k;i=i+1|0}}else i=0;while(0);while(1){if((i|0)>=(a|0))break;W=f+(i+g<<3)|0;h[W>>3]=+h[W>>3]+r*+h[A+(i<<3)>>3];i=i+1|0}j=j+1|0}s=s+1|0;r=+gq(T,r,l,t,R);if(!((s|0)<(Q|0)&r>P))break;else t=l}if(c[d+112>>2]|0)hq(a,D,f);l6(x);if((D|0)!=(b|0))nw(D);l6(A)}else c[g>>2]=-100;if(L|0)l6(M);if(K|0)l6(N);if(J|0)l6(O);l6(V)}return}function lq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0,I=0,J=0,K=0,L=0.0,M=0.0,N=0,O=0,P=0.0,Q=0.0,R=0,T=0,U=0,V=0,W=0,X=0.0,Y=0,Z=0.0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0;ia=l;l=l+32|0;aa=ia+24|0;ba=ia+20|0;fa=ia+16|0;ga=ia+12|0;ha=ia+8|0;W=ia;s=+h[d>>3];k=d+24|0;r=+h[k>>3];m=d+32|0;q=+h[m>>3];X=+h[d+72>>3];Y=c[d+80>>2]|0;Z=+h[d+88>>3];t=+h[d+96>>3];_=c[d+104>>2]|0;c[aa>>2]=0;c[ba>>2]=10;c[fa>>2]=0;c[ga>>2]=0;c[ha>>2]=0;h[W>>3]=0.0;ea=d+56|0;n=c[ea>>2]|0;if(!((b|0)==0|(Y|0)<1)?($=c[b>>2]|0,i=c[b+4>>2]|0,!((a|0)<1|(i|0)<1)):0){if((i|0)<(c[d+52>>2]|0)){da=0;ca=0}else{da=Zp(n)|0;c[fa>>2]=IK(a*80|0)|0;c[ga>>2]=IK(80)|0;c[ha>>2]=IK(80)|0;ca=1}c[g>>2]=0;a:do if(($|0)==(i|0)){o=sw(b,1)|0;R=c[o+20>>2]|0;T=c[o+24>>2]|0;b:do if(c[d+16>>2]|0){T4(c[d+108>>2]|0);j=S($,a)|0;i=0;while(1){if((i|0)>=(j|0))break b;h[f+(i<<3)>>3]=+Pw();i=i+1|0}}while(0);if(r<0.0){r=+aq(o,a,f);h[k>>3]=r}if(q<0.0){h[m>>3]=.2;q=.2}if(s>=0.0){h[d>>3]=-1.0;s=-1.0}P=1.0-s;Q=+H(+r,+P);M=+H(+q,+((2.0-s)/3.0))/r;N=a<<3;U=IK(N)|0;N=S($,N)|0;V=IK(N)|0;O=d+116|0;I=s==-1.0;J=d+64|0;K=(e|0)!=0;L=+($|0);i=0;E=0;F=0.0;while(1){E=E+1|0;B6(V|0,f|0,N|0)|0;if(ca){i=$p(da)|0;n=i;i=ew(a,$,i,f,(c[O>>2]|0)==0?0:e)|0}u=0.0;s=0.0;y=0;r=0.0;c:while(1){if((y|0)<($|0))j=0;else break;while(1){if((j|0)>=(a|0))break;h[U+(j<<3)>>3]=0.0;j=j+1|0}C=y+1|0;m=R+(C<<2)|0;D=S(y,a)|0;k=c[R+(y<<2)>>2]|0;while(1){if((k|0)>=(c[m>>2]|0))break;p=T+(k<<2)|0;j=c[p>>2]|0;d:do if((j|0)!=(y|0)){q=+Xw(f,a,y,j);j=0;while(1){if((j|0)>=(a|0))break d;w=q*(M*(+h[f+(j+D<<3)>>3]-+h[f+((S(c[p>>2]|0,a)|0)+j<<3)>>3]));B=U+(j<<3)|0;h[B>>3]=+h[B>>3]-w;j=j+1|0}}while(0);k=k+1|0}e:do if(!ca)if(K&(c[O>>2]|0)!=0){j=0;while(1){if((j|0)==($|0))break e;f:do if((j|0)!=(y|0)){v=+Ww(f,a,y,j);m=e+(j<<3)|0;p=S(j,a)|0;w=v*v;k=0;while(1){if((k|0)>=(a|0))break f;x=U+(k<<3)|0;if(I)q=w;else q=+H(+v,+P);h[x>>3]=+h[x>>3]+Q*+h[m>>3]*(+h[f+(k+D<<3)>>3]-+h[f+(k+p<<3)>>3])/q;k=k+1|0}}while(0);j=j+1|0}}else{j=0;while(1){if((j|0)==($|0))break e;g:do if((j|0)!=(y|0)){v=+Ww(f,a,y,j);m=S(j,a)|0;w=v*v;k=0;while(1){if((k|0)>=(a|0))break g;p=U+(k<<3)|0;if(I)q=w;else q=+H(+v,+P);h[p>>3]=+h[p>>3]+Q*(+h[f+(k+D<<3)>>3]-+h[f+(k+m<<3)>>3])/q;k=k+1|0}}while(0);j=j+1|0}}else{_v(i,+h[J>>3],f+(D<<3)|0,y,aa,ba,fa,ga,ha,W,g);u=u+ +h[W>>3];B=c[aa>>2]|0;s=s+ +(B|0);if(c[g>>2]|0){m=U;k=V;i=U;j=V;p=72;break a}m=c[ha>>2]|0;p=c[ga>>2]|0;x=c[fa>>2]|0;j=0;while(1){if((j|0)>=(B|0))break e;v=+h[m+(j<<3)>>3];v=v>1.0e-15?v:1.0e-15;y=p+(j<<3)|0;z=S(j,a)|0;w=v*v;k=0;while(1){if((k|0)>=(a|0))break;A=U+(k<<3)|0;if(I)q=w;else q=+H(+v,+P);h[A>>3]=+h[A>>3]+Q*+h[y>>3]*(+h[f+(k+D<<3)>>3]-+h[x+(k+z<<3)>>3])/q;k=k+1|0}j=j+1|0}}while(0);q=0.0;j=0;while(1){if((j|0)>=(a|0))break;w=+h[U+(j<<3)>>3];q=q+w*w;j=j+1|0}q=+G(+q);r=r+q;h:do if(q>0.0){j=0;while(1){if((j|0)>=(a|0)){j=0;break h}B=U+(j<<3)|0;h[B>>3]=+h[B>>3]/q;j=j+1|0}}else j=0;while(0);while(1){if((j|0)>=(a|0)){y=C;continue c}B=f+(j+D<<3)|0;h[B>>3]=+h[B>>3]+t*+h[U+(j<<3)>>3];j=j+1|0}}if(i|0){lw(i);_p(da,s/L*5.0+u/L)}t=+gq(_,t,r,F,Z);if(!((E|0)<(Y|0)&t>X))break;else F=r}if(!(c[d+112>>2]|0)){m=U;k=V;j=V;i=U;p=71}else{hq(a,o,f);m=U;k=V;j=V;i=U;p=71}}else{c[g>>2]=-100;o=b;m=0;k=0;j=0;i=0;p=71}while(0);if((p|0)==71)if(ca)p=72;if((p|0)==72){Yp(da);c[ea>>2]=n}if(k|0)l6(j);if((o|0)!=(b|0))nw(o);if(m|0)l6(i);i=c[fa>>2]|0;if(i|0)l6(i);i=c[ga>>2]|0;if(i|0)l6(i);i=c[ha>>2]|0;if(i|0)l6(i)}l=ia;return}function mq(a,b,d,e,f,g,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=+i;j=j|0;var k=0,m=0,n=0,o=0.0,p=0,q=0.0,r=0,s=0.0,t=0,u=0.0,v=0.0,w=0,x=0,y=0,z=0.0,A=0,B=0,C=0.0,D=0,E=0.0,F=0.0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0.0,_=0,$=0.0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;ha=l;l=l+48|0;p=ha+8|0;ca=ha+40|0;da=ha+36|0;X=ha+32|0;fa=ha+28|0;ga=ha+24|0;Y=ha;q=+h[e>>3];r=e+32|0;s=+h[r>>3];Z=+h[e+72>>3];_=c[e+80>>2]|0;$=+h[e+88>>3];u=+h[e+96>>3];aa=c[e+104>>2]|0;c[ca>>2]=0;c[da>>2]=10;c[X>>2]=0;c[fa>>2]=0;c[ga>>2]=0;h[Y>>3]=0.0;if(!((b|0)==0|(_|0)<1)?(ba=c[b>>2]|0,n=c[b+4>>2]|0,!((a|0)<1|(n|0)<1)):0){if((c[e+132>>2]|0)!=0?(n|0)>=(c[e+52>>2]|0):0){m=IK(a*80|0)|0;c[X>>2]=m;c[fa>>2]=IK(80)|0;c[ga>>2]=IK(80)|0;t=1;k=m}else{t=0;k=0;m=0}c[j>>2]=0;if((ba|0)==(n|0)){W=sw(b,1)|0;if(!d){V=0;k=W}else{V=c[d+28>>2]|0;k=d}U=c[k+24>>2]|0;T=c[k+20>>2]|0;o=+(ba|0);if(i<0.0){F=+nq(ba,T,V);E=+(c[T+(ba<<2)>>2]|0);i=E/(o*o-E)*i/+H(+F,+(q+1.0));R=c[15715]|0;h[p>>3]=F;h[p+8>>3]=i;z4(R,92532,p)|0}a:do if(c[e+16>>2]|0){_3(92554,24,1,c[15715]|0)|0;T4(c[e+108>>2]|0);m=S(ba,a)|0;k=0;while(1){if((k|0)>=(m|0))break a;h[g+(k<<3)>>3]=+Pw();k=k+1|0}}while(0);oq(ba,a,g,T,U,V);if(s<0.0)h[r>>3]=.2;if(!(q>=0.0))o=q;else{h[e>>3]=-1.0;o=-1.0}Q=a<<3;P=IK(Q)|0;Q=S(ba,Q)|0;R=IK(Q)|0;M=(t|0)!=0;N=e+116|0;O=o==-1.0;F=1.0-o;I=(f|0)!=0;J=(V|0)==0;K=e+8|0;L=e+64|0;k=0;D=0;E=0.0;o=1.0;C=u;b:while(1){D=D+1|0;B6(R|0,g|0,Q|0)|0;if(M)k=ew(a,ba,10,g,(c[N>>2]|0)==0?0:f)|0;t=0;s=0.0;c:while(1){if((t|0)<(ba|0))m=0;else break;while(1){if((m|0)>=(a|0))break;h[P+(m<<3)>>3]=0.0;m=m+1|0}B=t+1|0;r=T+(B<<2)|0;A=S(t,a)|0;p=c[T+(t<<2)>>2]|0;while(1){if((p|0)>=(c[r>>2]|0))break;d=U+(p<<2)|0;m=c[d>>2]|0;d:do if((m|0)!=(t|0)){z=+Ww(g,a,t,m);if(!J)o=+h[V+(p<<3)>>3];q=+h[K>>3];v=z-o;u=o*o;e:do if(!(q==2.0))if(q==1.0){q=1.0/u;m=0;while(1){if((m|0)>=(a|0))break e;u=-(v*(q*(+h[g+(m+A<<3)>>3]-+h[g+((S(c[d>>2]|0,a)|0)+m<<3)>>3])))/z;y=P+(m<<3)|0;h[y>>3]=+h[y>>3]+u;m=m+1|0}}else{q=1.0/+H(+o,+(q+1.0));m=0;while(1){if((m|0)>=(a|0))break e;u=q*(+h[g+(m+A<<3)>>3]-+h[g+((S(c[d>>2]|0,a)|0)+m<<3)>>3]);u=-(u*+H(+v,+(+h[K>>3])))/z;y=P+(m<<3)|0;h[y>>3]=+h[y>>3]+u;m=m+1|0}}else{q=1.0/(o*u);m=0;while(1){if((m|0)>=(a|0))break e;u=-(v*(v*(q*(+h[g+(m+A<<3)>>3]-+h[g+((S(c[d>>2]|0,a)|0)+m<<3)>>3]))))/z;y=P+(m<<3)|0;h[y>>3]=+h[y>>3]+u;m=m+1|0}}while(0);u=z*z;q=+H(+z,+F);if(I&(c[N>>2]|0)!=0){n=f+(p<<3)|0;q=O?u:q;m=0;while(1){if((m|0)>=(a|0))break d;y=P+(m<<3)|0;z=i*+h[n>>3]*(+h[g+(m+A<<3)>>3]-+h[g+((S(c[d>>2]|0,a)|0)+m<<3)>>3])/q;h[y>>3]=+h[y>>3]-z;m=m+1|0}}else{q=O?u:q;m=0;while(1){if((m|0)>=(a|0))break d;y=P+(m<<3)|0;z=i*(+h[g+(m+A<<3)>>3]-+h[g+((S(c[d>>2]|0,a)|0)+m<<3)>>3])/q;h[y>>3]=+h[y>>3]-z;m=m+1|0}}}while(0);p=p+1|0}f:do if(!M)if(I&(c[N>>2]|0)!=0){m=0;while(1){if((m|0)==(ba|0)){q=0.0;m=0;break f}g:do if((m|0)!=(t|0)){u=+Ww(g,a,t,m);d=f+(m<<3)|0;p=S(m,a)|0;v=u*u;n=0;while(1){if((n|0)>=(a|0))break g;r=P+(n<<3)|0;if(O)q=v;else q=+H(+u,+F);h[r>>3]=+h[r>>3]+i*+h[d>>3]*(+h[g+(n+A<<3)>>3]-+h[g+(n+p<<3)>>3])/q;n=n+1|0}}while(0);m=m+1|0}}else{m=0;while(1){if((m|0)==(ba|0)){q=0.0;m=0;break f}h:do if((m|0)!=(t|0)){u=+Ww(g,a,t,m);d=S(m,a)|0;v=u*u;n=0;while(1){if((n|0)>=(a|0))break h;p=P+(n<<3)|0;if(O)q=v;else q=+H(+u,+F);h[p>>3]=+h[p>>3]+i*(+h[g+(n+A<<3)>>3]-+h[g+(n+d<<3)>>3])/q;n=n+1|0}}while(0);m=m+1|0}}else{_v(k,+h[L>>3],g+(A<<3)|0,t,ca,da,X,fa,ga,Y,j);d=c[ca>>2]|0;if(c[j>>2]|0)break b;p=c[ga>>2]|0;r=c[fa>>2]|0;t=c[X>>2]|0;m=0;while(1){if((m|0)>=(d|0)){q=0.0;m=0;break f}u=+h[p+(m<<3)>>3];u=u>1.0e-15?u:1.0e-15;w=r+(m<<3)|0;x=S(m,a)|0;v=u*u;n=0;while(1){if((n|0)>=(a|0))break;y=P+(n<<3)|0;if(O)q=v;else q=+H(+u,+F);h[y>>3]=+h[y>>3]+i*+h[w>>3]*(+h[g+(n+A<<3)>>3]-+h[t+(n+x<<3)>>3])/q;n=n+1|0}m=m+1|0}}while(0);while(1){if((m|0)>=(a|0))break;z=+h[P+(m<<3)>>3];q=q+z*z;m=m+1|0}q=+G(+q);s=s+q;i:do if(q>0.0){m=0;while(1){if((m|0)>=(a|0)){m=0;break i}y=P+(m<<3)|0;h[y>>3]=+h[y>>3]/q;m=m+1|0}}else m=0;while(0);while(1){if((m|0)>=(a|0)){t=B;continue c}y=g+(m+A<<3)|0;h[y>>3]=+h[y>>3]+C*+h[P+(m<<3)>>3];m=m+1|0}}if(k|0)lw(k);C=+gq(aa,C,s,E,$);if(!((D|0)<(_|0)&C>Z)){ea=88;break}else E=s}if((ea|0)==88?c[e+112>>2]|0:0)hq(a,W,g);l6(R);if((W|0)!=(b|0))nw(W);l6(P);k=c[X>>2]|0;m=k}else c[j>>2]=-100;if(m|0)l6(k);k=c[fa>>2]|0;if(k|0)l6(k);k=c[ga>>2]|0;if(k|0)l6(k)}l=ha;return}function nq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,i=0,j=0.0;if(!d)e=1.0;else{f=0;e=0.0;a:while(1){if((f|0)>=(a|0))break;g=f+1|0;i=c[b+(g<<2)>>2]|0;f=c[b+(f<<2)>>2]|0;while(1){if((f|0)>=(i|0)){f=g;continue a}j=e+ +h[d+(f<<3)>>3];f=f+1|0;e=j}}e=e/+(c[b+(a<<2)>>2]|0)}return +e}function oq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0;v=l;l=l+16|0;u=v;t=(g|0)==0;k=0.0;m=0.0;n=1.0;j=0;a:while(1){if((j|0)>=(a|0))break;r=j+1|0;s=e+(r<<2)|0;q=c[e+(j<<2)>>2]|0;while(1){if((q|0)>=(c[s>>2]|0)){j=r;continue a}i=c[f+(q<<2)>>2]|0;b:do if((i|0)!=(j|0)){o=+Ww(d,b,j,i);if(!t)n=+h[g+(q<<3)>>3];w=1.0/(n*n);p=o*(n*w);o=o*(o*w);i=0;while(1){if((i|0)>=(b|0))break b;i=i+1|0;k=o+k;m=p+m}}while(0);q=q+1|0}}k=m/k;j=S(b,a)|0;i=0;while(1){if((i|0)>=(j|0))break;b=d+(i<<3)|0;h[b>>3]=k*+h[b>>3];i=i+1|0}d=c[15715]|0;h[u>>3]=k;z4(d,92579,u)|0;l=v;return}
function $g(a){a=a|0;var b=0,d=0,e=0;while(1){b=c[(c[a+16>>2]|0)+116>>2]|0;if(!b)break;else a=b}b=c[a>>2]&3;d=c[(c[((b|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0;e=c[d+232>>2]|0;a=c[(c[((b|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0;b=c[a+232>>2]|0;if((e|0)<=(b|0))if((e|0)<(b|0))a=1;else a=(c[d+236>>2]|0)<(c[a+236>>2]|0)&1;else a=0;return a|0}function ah(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d+8|0;f=d;h=(c[a+16>>2]|0)+180|0;g=(c[b+16>>2]|0)+172|0;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];b=bh(a,f,b,e)|0;l=d;return b|0}function bh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=c[b+4>>2]|0;a:do if((f|0)>0?(g=c[e+4>>2]|0,(g|0)>0):0)if((f|0)<(g|0)){f=c[b>>2]|0;e=0;while(1){b=c[f+(e<<2)>>2]|0;if(!b){b=0;break a}if((c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)==(d|0))break;else e=e+1|0}}else{f=c[e>>2]|0;e=0;while(1){b=c[f+(e<<2)>>2]|0;if(!b){b=0;break a}if((c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)==(a|0))break;else e=e+1|0}}else b=0;while(0);return b|0}function ch(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=l;l=l+16|0;e=d+8|0;f=d;h=(c[a+16>>2]|0)+188|0;g=(c[b+16>>2]|0)+196|0;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];b=bh(a,f,b,e)|0;l=d;return b|0}function dh(a){a=a|0;var b=0,d=0,e=0,f=0;e=a+48|0;d=c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0;b=c[d+180>>2]|0;d=(c[d+184>>2]<<2)+8|0;if(!b)b=IK(d)|0;else b=KK(b,d)|0;c[(c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0)+180>>2]=b;f=c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0;b=c[f+180>>2]|0;f=f+184|0;d=c[f>>2]|0;c[f>>2]=d+1;c[b+(d<<2)>>2]=a;e=c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0;c[(c[e+180>>2]|0)+(c[e+184>>2]<<2)>>2]=0;e=a+-48|0;d=c[(c[((c[a>>2]&3|0)==2?a:e)+40>>2]|0)+16>>2]|0;b=c[d+172>>2]|0;d=(c[d+176>>2]<<2)+8|0;if(!b)b=IK(d)|0;else b=KK(b,d)|0;c[(c[(c[((c[a>>2]&3|0)==2?a:e)+40>>2]|0)+16>>2]|0)+172>>2]=b;b=c[(c[((c[a>>2]&3|0)==2?a:e)+40>>2]|0)+16>>2]|0;d=c[b+172>>2]|0;b=b+176|0;f=c[b>>2]|0;c[b>>2]=f+1;c[d+(f<<2)>>2]=a;f=c[(c[((c[a>>2]&3|0)==2?a:e)+40>>2]|0)+16>>2]|0;c[(c[f+172>>2]|0)+(c[f+176>>2]<<2)>>2]=0;return a|0}function eh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=a+4|0;f=c[e>>2]|0;d=0;while(1){if((d|0)>=(f|0))break;g=c[a>>2]|0;h=g+(d<<2)|0;if((c[h>>2]|0)==(b|0)){i=4;break}else d=d+1|0}if((i|0)==4){i=f+-1|0;c[e>>2]=i;c[h>>2]=c[g+(i<<2)>>2];c[(c[a>>2]|0)+(i<<2)>>2]=0}return}function fh(a){a=a|0;if(!a)Aa(85823,85833,117,85842);else{eh((c[(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+180|0,a);eh((c[(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+172|0,a);return}}function gh(a){a=a|0;var b=0,d=0,e=0,f=0;e=a+48|0;d=c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0;b=c[d+204>>2]|0;d=(c[d+208>>2]<<2)+8|0;if(!b)b=IK(d)|0;else b=KK(b,d)|0;c[(c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0)+204>>2]=b;f=c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0;b=c[f+204>>2]|0;f=f+208|0;d=c[f>>2]|0;c[f>>2]=d+1;c[b+(d<<2)>>2]=a;e=c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0;c[(c[e+204>>2]|0)+(c[e+208>>2]<<2)>>2]=0;return}function hh(a){a=a|0;ih(a,(c[(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+204|0);return}function ih(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=b+4|0;e=c[h>>2]|0;g=c[b>>2]|0;d=0;while(1){if((d|0)>=(e|0)){f=4;break}if((c[g+(d<<2)>>2]|0)==(a|0))break;else d=d+1|0}if((f|0)==4){d=(e<<2)+8|0;if(!g)d=IK(d)|0;else d=KK(g,d)|0;c[b>>2]=d;f=c[h>>2]|0;g=f+1|0;c[h>>2]=g;c[d+(f<<2)>>2]=a;c[(c[b>>2]|0)+(g<<2)>>2]=0}return}function jh(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=HK(96)|0;g=o+48|0;c[g>>2]=c[g>>2]|3;c[o>>2]=c[o>>2]&-4|2;i=HK(176)|0;n=o+16|0;c[n>>2]=i;c[((c[o>>2]&3|0)==3?o:g)+40>>2]=d;j=o+-48|0;c[((c[o>>2]&3|0)==2?o:j)+40>>2]=e;a[i+112>>0]=1;if(!f){c[i+156>>2]=1;b[i+154>>1]=1;b[i+168>>1]=1;b[i+170>>1]=1}else{c[o>>2]=c[o>>2]&15|c[f>>2]&-16;c[g>>2]=c[g>>2]&15|c[f>>2]&-16;m=f+16|0;h=c[m>>2]|0;b[i+168>>1]=b[h+168>>1]|0;b[i+154>>1]=b[h+154>>1]|0;c[i+156>>2]=c[h+156>>2];b[i+170>>1]=b[h+170>>1]|0;d=c[((c[o>>2]&3|0)==3?o:g)+40>>2]|0;e=c[f>>2]&3;k=f+48|0;l=f+-48|0;if((d|0)!=(c[((e|0)==3?f:k)+40>>2]|0)){if((d|0)==(c[((e|0)==2?f:l)+40>>2]|0)){g=i+16|0;d=h+56|0;e=g+40|0;do{c[g>>2]=c[d>>2];g=g+4|0;d=d+4|0}while((g|0)<(e|0))}}else{g=i+16|0;d=h+16|0;e=g+40|0;do{c[g>>2]=c[d>>2];g=g+4|0;d=d+4|0}while((g|0)<(e|0))}d=c[((c[o>>2]&3|0)==2?o:j)+40>>2]|0;e=c[f>>2]&3;if((d|0)!=(c[((e|0)==2?f:l)+40>>2]|0)){if((d|0)==(c[((e|0)==3?f:k)+40>>2]|0)){g=(c[n>>2]|0)+56|0;d=(c[m>>2]|0)+16|0;e=g+40|0;do{c[g>>2]=c[d>>2];g=g+4|0;d=d+4|0}while((g|0)<(e|0))}}else{g=(c[n>>2]|0)+56|0;d=(c[m>>2]|0)+56|0;e=g+40|0;do{c[g>>2]=c[d>>2];g=g+4|0;d=d+4|0}while((g|0)<(e|0))}d=(c[m>>2]|0)+172|0;if(!(c[d>>2]|0))c[d>>2]=o;c[(c[n>>2]|0)+116>>2]=f}return o|0}function kh(a,b,c){a=a|0;b=b|0;c=c|0;return dh(jh(a,b,c)|0)|0}function lh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=(c[a+16>>2]|0)+192|0;f=c[d>>2]|0;e=c[b+16>>2]|0;c[e+164>>2]=f;a=f;if(f|0)c[(c[a+16>>2]|0)+168>>2]=b;c[d>>2]=b;c[e+168>>2]=0;if((a|0)==(b|0))Aa(85859,85833,215,85875);else return}function mh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if((a|0)==(b|0))Aa(85885,85833,220,85892);f=c[b+16>>2]|0;d=f+164|0;if(c[d>>2]|0)Aa(85905,85833,221,85892);e=(c[a+16>>2]|0)+164|0;c[d>>2]=c[e>>2];d=c[e>>2]|0;if(d|0)c[(c[d+16>>2]|0)+168>>2]=b;c[f+168>>2]=a;c[e>>2]=b;return}function nh(a,b){a=a|0;b=b|0;var d=0;if(!(oh(a,b)|0))Aa(85924,85833,231,85945);b=c[b+16>>2]|0;d=c[b+164>>2]|0;b=b+168|0;if(d|0)c[(c[d+16>>2]|0)+168>>2]=c[b>>2];b=c[b>>2]|0;if(!b)c[(c[a+16>>2]|0)+192>>2]=d;else c[(c[b+16>>2]|0)+164>>2]=d;return}function oh(a,b){a=a|0;b=b|0;a=(c[a+16>>2]|0)+192|0;while(1){a=c[a>>2]|0;if((a|0)==0|(a|0)==(b|0))break;a=(c[a+16>>2]|0)+164|0}return a|0}function ph(b){b=b|0;var d=0,e=0,f=0,g=0;d=HK(64)|0;c[d>>2]=c[d>>2]&-4|1;e=d+16|0;c[e>>2]=HK(304)|0;c[d+24>>2]=vC(b)|0;g=c[e>>2]|0;a[g+156>>0]=1;h[g+96>>3]=1.0;h[g+88>>3]=1.0;h[g+80>>3]=1.0;c[g+216>>2]=1;c[g+176>>2]=0;g=HK(20)|0;f=c[e>>2]|0;c[f+172>>2]=g;c[f+184>>2]=0;f=HK(20)|0;c[(c[e>>2]|0)+180>>2]=f;lh(b,d);b=(c[b+16>>2]|0)+232|0;c[b>>2]=(c[b>>2]|0)+1;return d|0}function qh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=d+48|0;f=c[(c[((c[d>>2]&3|0)==3?d:g)+40>>2]|0)+16>>2]|0;e=c[f+188>>2]|0;f=(c[f+192>>2]<<2)+8|0;if(!e)e=IK(f)|0;else e=KK(e,f)|0;c[(c[(c[((c[d>>2]&3|0)==3?d:g)+40>>2]|0)+16>>2]|0)+188>>2]=e;h=c[(c[((c[d>>2]&3|0)==3?d:g)+40>>2]|0)+16>>2]|0;e=c[h+188>>2]|0;h=h+192|0;f=c[h>>2]|0;c[h>>2]=f+1;c[e+(f<<2)>>2]=d;g=c[(c[((c[d>>2]&3|0)==3?d:g)+40>>2]|0)+16>>2]|0;c[(c[g+188>>2]|0)+(c[g+192>>2]<<2)>>2]=0;g=d+-48|0;f=c[(c[((c[d>>2]&3|0)==2?d:g)+40>>2]|0)+16>>2]|0;e=c[f+196>>2]|0;f=(c[f+200>>2]<<2)+8|0;if(!e)e=IK(f)|0;else e=KK(e,f)|0;c[(c[(c[((c[d>>2]&3|0)==2?d:g)+40>>2]|0)+16>>2]|0)+196>>2]=e;e=c[(c[((c[d>>2]&3|0)==2?d:g)+40>>2]|0)+16>>2]|0;f=c[e+196>>2]|0;e=e+200|0;h=c[e>>2]|0;c[e>>2]=h+1;c[f+(h<<2)>>2]=d;h=c[(c[((c[d>>2]&3|0)==2?d:g)+40>>2]|0)+16>>2]|0;c[(c[h+196>>2]|0)+(c[h+200>>2]<<2)>>2]=0;a[(c[b+16>>2]|0)+240>>0]=1;a[(c[(dg(b)|0)+16>>2]|0)+240>>0]=1;return}function rh(a){a=a|0;var b=0,d=0;if(!a)Aa(85823,85833,269,85962);b=c[(c[a+16>>2]|0)+116>>2]|0;if(b|0?(d=(c[b+16>>2]|0)+172|0,(c[d>>2]|0)==(a|0)):0)c[d>>2]=0;eh((c[(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+188|0,a);eh((c[(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+196|0,a);return}function sh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;d=(c[a+16>>2]|0)+172|0;e=c[d>>2]|0;do if((e|0)!=(b|0))if(!e){c[d>>2]=b;th(a,b);break}else Aa(87865,85833,340,86e3);else dA(0,85979,f)|0;while(0);l=f;return}function th(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,i=0;f=(c[d+16>>2]|0)+170|0;i=c[a+16>>2]|0;a=b[i+170>>1]|0;if((e[f>>1]|0)<(a&65535))b[f>>1]=a;g=i+168|0;h=i+154|0;f=i+156|0;a=d;while(1){if(!a)break;d=c[a+16>>2]|0;i=d+168|0;b[i>>1]=(e[i>>1]|0)+(e[g>>1]|0);i=d+154|0;b[i>>1]=(e[i>>1]|0)+(e[h>>1]|0);i=d+156|0;c[i>>2]=(c[i>>2]|0)+(c[f>>2]|0);a=c[d+172>>2]|0}return}function uh(d){d=d|0;var e=0,f=0,g=0,h=0;f=d+16|0;e=c[(c[f>>2]|0)+172>>2]|0;a:while(1){if(!e)break;vh(e,d);h=c[e+16>>2]|0;g=c[h+172>>2]|0;if(!(b[h+168>>1]|0))wh(e);while(1){if((a[(c[e+16>>2]|0)+112>>0]|0)!=1){e=g;continue a}e=c[(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0;if((a[e+156>>0]|0)!=1){e=g;continue a}if((c[e+184>>2]|0)!=1){e=g;continue a}e=c[c[e+180>>2]>>2]|0;vh(e,d)}}c[(c[f>>2]|0)+172>>2]=0;return}function vh(a,d){a=a|0;d=d|0;var f=0;f=c[d+16>>2]|0;d=c[a+16>>2]|0;a=d+168|0;b[a>>1]=(e[a>>1]|0)-(e[f+168>>1]|0);a=d+154|0;b[a>>1]=(e[a>>1]|0)-(e[f+154>>1]|0);d=d+156|0;c[d>>2]=(c[d>>2]|0)-(c[f+156>>2]|0);return}function wh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;if(!a)Aa(85823,85833,128,86013);g=a+48|0;d=0;while(1){b=c[a>>2]|0;e=(c[(c[((b&3|0)==3?a:g)+40>>2]|0)+16>>2]|0)+180|0;f=c[(c[e>>2]|0)+(d<<2)>>2]|0;if(!f)break;if((f|0)==(a|0))eh(e,a);d=d+1|0}g=a+-48|0;f=0;while(1){d=(c[(c[((b&3|0)==2?a:g)+40>>2]|0)+16>>2]|0)+172|0;e=c[(c[d>>2]|0)+(f<<2)>>2]|0;if(!e)break;if((e|0)==(a|0)){eh(d,a);b=c[a>>2]|0}f=f+1|0}return}function xh(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;p=l;l=l+1040|0;n=p+4|0;o=p;m=p+8|0;k=a+16|0;a=c[k>>2]|0;j=b[a+236>>1]|0;while(1){if((j|0)>(b[a+238>>1]|0))break;i=c[a+196>>2]|0;h=i+(j<<6)|0;i=i+(j<<6)+4|0;g=0;a=0;while(1){d=(a|0)!=0;if((g|0)>=(c[h>>2]|0))break;e=c[(c[i>>2]|0)+(g<<2)>>2]|0;f=e+16|0;if(c[(c[f>>2]|0)+112>>2]|0){if(!d){c[n>>2]=c[4658];a=lB(86035,n,0)|0}c[o>>2]=g;i2(m,137696,o)|0;s=qC(a,m,1)|0;RC(s,91465,24,1)|0;d=c[(c[f>>2]|0)+180>>2]|0;q=c[d>>2]|0;q=c[(c[(c[((c[q>>2]&3|0)==2?q:q+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;d=c[d+4>>2]|0;d=c[(c[(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;r=(q|0)>(d|0);f=c[s+16>>2]|0;c[f+12>>2]=r?d:q;c[f+16>>2]=r?q:d;c[f+20>>2]=e}g=g+1|0}if(d){if((qB(a)|0)>1)yh(a,h);pB(a)|0}j=j+1|0;a=c[k>>2]|0}l=p;return}function yh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=0;h=gC(a)|0;a:while(1){if(!h)break;i=hC(a,h)|0;j=h+16|0;g=i;while(1){if(!g){h=i;continue a}f=c[g+16>>2]|0;e=c[j>>2]|0;if((c[f+16>>2]|0)>(c[e+12>>2]|0)){if((c[e+16>>2]|0)<=(c[f+12>>2]|0))fB(a,h,g,0,1)|0}else{fB(a,g,h,0,1)|0;d=1}g=hC(a,g)|0}}do if(d|0){h=LD(a,86038,1)|0;j=HK((qB(a)|0)<<2)|0;i=HK((qB(a)|0)<<2)|0;f=b+4|0;e=gC(a)|0;b:while(1){if(!e){d=23;break}if((c[(c[e+16>>2]|0)+8>>2]|0)==0?sB(a,e,1,1)|0:0){c:do if(zh(a,e,h,i)|0){g=qB(h)|0;if((Ah(a,h,j)|0)!=(g|0)){d=17;break b}k3(i,g,4,60);d=0;while(1){if((d|0)>=(g|0))break c;b=i+(d<<2)|0;k=c[j+(d<<2)>>2]|0;c[(c[k+16>>2]|0)+236>>2]=c[b>>2];c[(c[f>>2]|0)+(c[b>>2]<<2)>>2]=k;d=d+1|0}}while(0);Ch(h)}e=hC(a,e)|0}if((d|0)==17)Aa(86043,86053,265,86064);else if((d|0)==23){l6(j);break}}while(0);return}function zh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;h=c[b+16>>2]|0;c[h+8>>2]=1;h=c[(c[(c[h+20>>2]|0)+16>>2]|0)+236>>2]|0;c[e+((qB(d)|0)<<2)>>2]=h;lC(d,b,1)|0;h=UA(a,b)|0;f=0;while(1){if(!h)break;j=c[h>>2]&3;g=c[((j|0)==2?h:h+-48|0)+40>>2]|0;i=c[g+16>>2]|0;f=((c[(c[(c[i+20>>2]|0)+16>>2]|0)+236>>2]|0)>(c[(c[(c[(c[(c[((j|0)==3?h:h+48|0)+40>>2]|0)+16>>2]|0)+20>>2]|0)+16>>2]|0)+236>>2]|0)&1)+f|0;if(!(c[i+8>>2]|0))f=(zh(a,g,d,e)|0)+f|0;h=WA(a,h)|0}h=XA(a,b)|0;while(1){if(!h)break;i=c[h>>2]&3;g=c[((i|0)==3?h:h+48|0)+40>>2]|0;j=c[g+16>>2]|0;f=((c[(c[(c[(c[(c[((i|0)==2?h:h+-48|0)+40>>2]|0)+16>>2]|0)+20>>2]|0)+16>>2]|0)+236>>2]|0)>(c[(c[(c[j+20>>2]|0)+16>>2]|0)+236>>2]|0)&1)+f|0;if(!(c[j+8>>2]|0))f=(zh(a,g,d,e)|0)+f|0;h=YA(a,h)|0}return f|0}function Ah(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=0;while(1){e=Dh(a,b)|0;if(!e)break;c[d+(f<<2)>>2]=c[(c[e+16>>2]|0)+20>>2];sC(b,e)|0;e=UA(a,e)|0;while(1){if(!e)break;g=WA(a,e)|0;iB(a,e)|0;e=g}f=f+1|0}return f|0}function Bh(a,b){a=a|0;b=b|0;return (c[a>>2]|0)-(c[b>>2]|0)|0}function Ch(a){a=a|0;var b=0,c=0;b=gC(a)|0;while(1){if(!b)break;c=hC(a,b)|0;sC(a,b)|0;b=c}return}function Dh(a,b){a=a|0;b=b|0;var c=0;c=gC(b)|0;while(1){if(!c){c=0;break}if(!(sB(a,c,1,0)|0))break;c=hC(b,c)|0}return c|0}function Eh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;Fh(b);i=b+16|0;f=0;e=0;while(1){if((f|0)>=(c[(c[i>>2]|0)+220>>2]|0))break;Gh(b,f);f=f+1|0;e=(Hh(b,0,d)|0)+e|0}Ih(b);h=1;while(1){f=c[i>>2]|0;g=c[f+180>>2]|0;if((h|0)>(g|0))break;g=(Jh(c[(c[f+184>>2]|0)+(h<<2)>>2]|0,d)|0)+e|0;h=h+1|0;e=g}do if((g|0)>0){f=NA(b,86078)|0;if(f|0?(bP(f)|0)<<24>>24==0:0)break;gl(b);a[194049]=1;e=Hh(b,2,d)|0}while(0);Kh(b,e);return}function Fh(d){d=d|0;var e=0;if(a[195234]|0)RO();a[194049]=0;c[46783]=d;e=((rB(dg(d)|0)|0)<<2)+4|0;c[46782]=HK(e)|0;c[46781]=HK(e)|0;Ai(d);e=d+16|0;if(b[(c[e>>2]|0)+136>>1]&16)Bi(d);Pk(d);Dl(d,1);Ci(d);Rh(d);e=c[e>>2]|0;c[46784]=b[e+236>>1];c[46785]=b[e+238>>1];return}function Gh(a,d){a=a|0;d=d|0;var e=0,f=0,g=0;a=c[a+16>>2]|0;c[a+192>>2]=c[(c[a+216>>2]|0)+(d<<2)>>2];a:do if((d|0)>0){d=b[a+238>>1]|0;e=a+196|0;a=b[a+236>>1]|0;while(1){if((a|0)>(d|0))break a;f=c[e>>2]|0;g=f+(a<<6)+4|0;f=f+(a<<6)|0;c[g>>2]=(c[g>>2]|0)+(c[f>>2]<<2);c[f>>2]=0;a=a+1|0}}while(0);return}function Hh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+32|0;p=q;if((d|0)>1){f=fi(0)|0;gi(b)}else f=2147483647;o=c[15715]|0;n=d;g=0;d=f;while(1){if((n|0)>=3)break;g=c[47183]|0;if((n|0)==2)if((f|0)>(d|0)){ii(b);f=d}else f=d;else{f=(g|0)<4?g:4;if((dg(b)|0)==(b|0))hi(b,n);if(!n)Sh(b);Th(b);i=fi(0)|0;if((i|0)>(d|0)){g=f;f=i}else{gi(b);g=f;f=i;d=i}}i=0;m=0;while(1){j=(f|0)==0;if((m|0)>=(g|0))break;if(a[195234]|0){c[p>>2]=n;c[p+4>>2]=m;c[p+8>>2]=i;c[p+12>>2]=f;c[p+16>>2]=d;z4(o,86471,p)|0}k=i+1|0;if(j|(i|0)>=(c[46786]|0))break;ji(b,m);f=fi(0)|0;if((f|0)>(d|0))i=k;else{gi(b);i=+(f|0)<+(d|0)*+h[23234]?0:k;d=f}m=m+1|0}if(j){f=0;break}else n=n+1|0}if((f|0)>(d|0))ii(b);if((d|0)>0){ki(b,0);f=fi(0)|0}else f=d;a:do if(e|0){d=0;while(1){if((d|0)>=(g|0))break a;li(b);d=d+1|0}}while(0);l=q;return f|0}function Ih(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+16|0;o=q;ei(d);m=d+16|0;e=c[m>>2]|0;n=c[15715]|0;k=b[e+236>>1]|0;while(1){if((k|0)>(b[e+238>>1]|0))break;f=c[e+196>>2]|0;g=c[f+(k<<6)+8>>2]|0;c[f+(k<<6)>>2]=g;h=c[f+(k<<6)+12>>2]|0;c[f+(k<<6)+4>>2]=h;j=0;while(1){if((j|0)>=(g|0))break;i=c[h+(j<<2)>>2]|0;if(!i){p=6;break}c[(c[i+16>>2]|0)+236>>2]=j;j=j+1|0}if((p|0)==6){p=0;if(a[195234]|0){f=HB(d)|0;e=c[(c[(c[m>>2]|0)+196>>2]|0)+(k<<6)>>2]|0;c[o>>2]=f;c[o+4>>2]=k;c[o+8>>2]=j;c[o+12>>2]=e;z4(n,86421,o)|0;e=c[m>>2]|0;f=c[e+196>>2]|0}c[f+(k<<6)>>2]=j}k=k+1|0}l=q;return}function Jh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;al(a);Rh(a);Sh(a);Th(a);f=a+16|0;d=Hh(a,2,b)|0;e=1;while(1){g=c[f>>2]|0;if((e|0)>(c[g+180>>2]|0))break;d=(Jh(c[(c[g+184>>2]|0)+(e<<2)>>2]|0,b)|0)+d|0;e=e+1|0}Uh(a);return d|0}function Kh(d,e){d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0;q=l;l=l+16|0;p=q;f=c[46781]|0;if(f|0){l6(f);c[46781]=0}f=c[46782]|0;if(f|0){l6(f);c[46782]=0}o=d+16|0;f=1;while(1){g=c[o>>2]|0;if((f|0)>(c[g+180>>2]|0))break;Lh(c[(c[g+184>>2]|0)+(f<<2)>>2]|0);f=f+1|0}n=b[g+236>>1]|0;f=g;while(1){if((n|0)>(b[f+238>>1]|0))break;else m=0;while(1){f=c[f+196>>2]|0;if((m|0)>=(c[f+(n<<6)>>2]|0))break;k=(c[(c[f+(n<<6)+4>>2]|0)+(m<<2)>>2]|0)+16|0;f=c[k>>2]|0;c[f+236>>2]=m;f=c[f+188>>2]|0;a:do if(f|0){g=0;while(1){i=c[f+(g<<2)>>2]|0;if(!i)break a;j=i+16|0;if((a[(c[j>>2]|0)+112>>0]|0)==4){rh(i);l6(c[j>>2]|0);l6(i);g=g+-1|0;f=c[(c[k>>2]|0)+188>>2]|0}g=g+1|0}}while(0);m=m+1|0;f=c[o>>2]|0}Mh(c[f+(n<<6)+56>>2]|0);n=n+1|0;f=c[o>>2]|0}if(a[195234]|0){o=c[15715]|0;d=HB(d)|0;r=+SO();c[p>>2]=d;c[p+4>>2]=e;h[p+8>>3]=r;z4(o,86089,p)|0}l=q;return}function Lh(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;g=a+16|0;d=1;while(1){f=c[g>>2]|0;if((d|0)>(c[f+180>>2]|0))break;Lh(c[(c[f+184>>2]|0)+(d<<2)>>2]|0);d=d+1|0}a:do if(c[f+268>>2]|0){e=b[f+236>>1]|0;d=f;while(1){if((e|0)>(b[d+238>>1]|0))break a;j=c[(c[d+268>>2]|0)+(e<<2)>>2]|0;i=Nh(a,j,-1)|0;j=Nh(a,j,1)|0;c[(c[(c[g>>2]|0)+268>>2]|0)+(e<<2)>>2]=i;k=c[(c[(c[(dg(a)|0)+16>>2]|0)+196>>2]|0)+(e<<6)+4>>2]|0;i=c[(c[i+16>>2]|0)+236>>2]|0;f=c[g>>2]|0;h=c[f+196>>2]|0;c[h+(e<<6)+4>>2]=k+(i<<2);c[h+(e<<6)>>2]=(c[(c[j+16>>2]|0)+236>>2]|0)+1-i;e=e+1|0;d=f}}while(0);return}function Mh(a){a=a|0;if(a|0){l6(c[a+8>>2]|0);l6(a)}return}function Nh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=b;while(1){b=Oh(b,c)|0;if(!b)break;if(Ph(a,b)|0){d=b;continue}e=(Qh(a,b)|0)==0;d=e?d:b}return d|0}function Oh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if(!a)Aa(86128,86053,1023,86130);a=a+16|0;if((b|0)<0){a=c[a>>2]|0;e=c[a+236>>2]|0;if((e|0)>0){a=(c[(c[(c[46783]|0)+16>>2]|0)+196>>2]|0)+(c[a+232>>2]<<6)+4|0;d=e+-1|0;f=7}else g=0}else{a=c[a>>2]|0;e=c[a+236>>2]|0;a=(c[(c[(c[46783]|0)+16>>2]|0)+196>>2]|0)+(c[a+232>>2]<<6)+4|0;d=e+1|0;f=7}if((f|0)==7){a=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(a)if((S((c[(c[a+16>>2]|0)+236>>2]|0)-e|0,b)|0)>0)g=a;else Aa(86139,86053,1029,86130);else g=0}return g|0}function Ph(b,d){b=b|0;d=d|0;if(!(a[(c[d+16>>2]|0)+156>>0]|0))b=(EC(b,d)|0)!=0;else b=0;return b&1|0}function Qh(b,d){b=b|0;d=d|0;var e=0,f=0;d=c[d+16>>2]|0;if(((a[d+156>>0]|0)==1?(c[d+176>>2]|0)==1:0)?(c[d+184>>2]|0)==1:0){d=c[d+180>>2]|0;while(1){d=c[d>>2]|0;e=c[d+16>>2]|0;if(!(a[e+112>>0]|0))break;else d=e+116|0}if(EC(b,d)|0)d=1;else f=7}else f=7;if((f|0)==7)d=0;return d|0}function Rh(b){b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;d=c[47194]|0;a:do if((d|0)!=0|(c[47223]|0)!=0){d=_O(b,d,0)|0;if(d|0){switch(a[d>>0]|0){case 0:break a;case 111:{if(!(f2(d,86341)|0)){$h(b,1);break a}break}case 105:{if(!(f2(d,99036)|0)){$h(b,0);break a}break}default:{}}c[e>>2]=d;dA(1,86345,e)|0;break}d=MD(b)|0;while(1){if(!d)break;if(!(Mj(d)|0))Rh(d);d=ND(d)|0}if(c[47223]|0)ai(b)}while(0);l=f;return}function Sh(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=d+16|0;e=c[k>>2]|0;j=b[e+236>>1]|0;while(1){if((j|0)>(b[e+238>>1]|0))break;else{f=0;i=0}while(1){g=c[e+196>>2]|0;h=c[g+(j<<6)>>2]|0;if((i|0)>=(h|0))break;g=c[(c[(c[g+(j<<6)+4>>2]|0)+(i<<2)>>2]|0)+16>>2]|0;a[g+158>>0]=0;a[g+157>>0]=0;c[g+284>>2]=i;if((f|0)==0&(c[g+192>>2]|0)>0){f=Zh(h,h)|0;e=c[k>>2]|0;c[(c[e+196>>2]|0)+(j<<6)+56>>2]=f;f=1}i=i+1|0}a:do if(f){i=0;f=h;while(1){if((i|0)>=(f|0))break a;h=c[(c[g+(j<<6)+4>>2]|0)+(i<<2)>>2]|0;if(!(a[(c[h+16>>2]|0)+157>>0]|0)){_h(d,h);e=c[k>>2]|0;f=c[e+196>>2]|0;g=f;f=c[f+(j<<6)>>2]|0}i=i+1|0}}while(0);j=j+1|0}return}function Th(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=d+16|0;e=c[t>>2]|0;if(a[e+240>>0]|0){h=0;s=b[e+236>>1]|0;f=0;a:while(1){r=(h|0)!=0;if((s|0)>(b[e+238>>1]|0))break;g=c[e+196>>2]|0;i=c[g+(s<<6)>>2]|0;if(!i)g=h;else{g=c[g+(s<<6)+4>>2]|0;p=c[(c[(c[g>>2]|0)+16>>2]|0)+236>>2]|0;e=0;while(1){h=e+1|0;if((e|0)>=(i|0))break;a[(c[(c[g+(e<<2)>>2]|0)+16>>2]|0)+157>>0]=0;e=h}e=h<<2;if(r)q=KK(f,e)|0;else q=IK(e)|0;m=0;n=0;while(1){e=c[t>>2]|0;g=c[e+196>>2]|0;h=c[g+(s<<6)>>2]|0;i=e+116|0;o=q+(m<<2)|0;if((h|0)<=(n|0))break;j=c[(c[g+(s<<6)+4>>2]|0)+(((c[i>>2]&1|0)==0?h+~n|0:n)<<2)>>2]|0;l=j+16|0;e=0;k=0;while(1){i=c[l>>2]|0;if((e|0)>=(c[i+200>>2]|0)){g=0;h=0;e=i;break}i=((Vh(d,c[(c[i+196>>2]|0)+(e<<2)>>2]|0)|0)!=0&1)+k|0;e=e+1|0;k=i}while(1){if((h|0)>=(c[e+192>>2]|0))break;i=((Vh(d,c[(c[e+188>>2]|0)+(h<<2)>>2]|0)|0)!=0&1)+g|0;g=i;h=h+1|0;e=c[l>>2]|0}if(g|k)if((k|0)==0&(a[e+157>>0]|0)==0)e=(Wh(d,j,o,s)|0)+m|0;else e=m;else{c[o>>2]=j;e=m+1|0}m=e;n=n+1|0}b:do if(m){c:do if(!(c[i>>2]&1)){g=q;e=o;while(1){e=e+-4|0;if(g>>>0>=e>>>0){h=0;break c}o=c[g>>2]|0;c[g>>2]=c[e>>2];c[e>>2]=o;g=g+4|0}}else h=0;while(0);while(1){e=c[t>>2]|0;i=c[e+196>>2]|0;g=c[i+(s<<6)>>2]|0;if((h|0)>=(g|0)){m=0;h=i;break}o=c[q+(h<<2)>>2]|0;c[(c[i+(s<<6)+4>>2]|0)+(h<<2)>>2]=o;c[(c[o+16>>2]|0)+236>>2]=h+p;h=h+1|0}while(1){if((m|0)>=(g|0))break b;l=(c[(c[h+(s<<6)+4>>2]|0)+(m<<2)>>2]|0)+16|0;i=c[(c[l>>2]|0)+188>>2]|0;if(i){k=0;g=i;while(1){h=c[g+(k<<2)>>2]|0;e=c[t>>2]|0;if(!h)break;j=c[h>>2]&3;i=c[(c[(c[((j|0)==2?h:h+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;j=c[(c[(c[((j|0)==3?h:h+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;if(!(c[e+116>>2]&1))if((i|0)<(j|0))u=35;else e=k;else if((i|0)>(j|0))u=35;else e=k;if((u|0)==35){u=0;if(Vh(d,h)|0){u=36;break a}rh(h);Xh(d,h);e=k+-1|0;g=c[(c[l>>2]|0)+188>>2]|0}k=e+1|0}g=c[e+196>>2]|0;h=g;g=c[g+(s<<6)>>2]|0}m=m+1|0}}while(0);a[(c[(c[(c[46783]|0)+16>>2]|0)+196>>2]|0)+(s<<6)+49>>0]=0;g=q;f=q}h=g;s=s+1|0}if((u|0)==36)Aa(86187,86053,1561,86226);if(r)l6(f)}return}function Uh(a){a=a|0;var d=0,e=0;e=a+16|0;a=c[e>>2]|0;a:do if(c[a+268>>2]|0){d=b[a+236>>1]|0;while(1){if((d|0)>(b[a+238>>1]|0))break a;c[(c[a+268>>2]|0)+(d<<2)>>2]=c[c[(c[a+196>>2]|0)+(d<<6)+4>>2]>>2];d=d+1|0;a=c[e>>2]|0}}while(0);return}function Vh(a,b){a=a|0;b=b|0;if((c[(c[b+16>>2]|0)+156>>2]|0)!=0?(Yh(a,c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0)!=0:0)a=(Yh(a,c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0)!=0&1;else a=0;return a|0}function Wh(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;l=d+16|0;g=c[l>>2]|0;a[g+157>>0]=1;a:do if((c[g+192>>2]|0)>0){h=0;j=0;while(1){i=c[(c[g+188>>2]|0)+(j<<2)>>2]|0;if(!i)break a;if((Vh(b,i)|0)!=0?(k=c[((c[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0,(a[(c[k+16>>2]|0)+157>>0]|0)==0):0)h=(Wh(b,k,e+(h<<2)|0,f)|0)+h|0;j=j+1|0;g=c[l>>2]|0}}else h=0;while(0);if((c[g+232>>2]|0)==(f|0)){c[e+(h<<2)>>2]=d;return h+1|0}else Aa(86239,86053,1490,86255);return 0}function Xh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=c[d>>2]&3;i=c[((h|0)==2?d:d+-48|0)+40>>2]|0;f=c[(c[i+16>>2]|0)+188>>2]|0;l=d+48|0;a:do if(!f)m=14;else{g=((h|0)==3?d:l)+40|0;e=0;while(1){j=c[f+(e<<2)>>2]|0;if(!j){m=14;break a}if((c[((c[j>>2]&3|0)==2?j:j+-48|0)+40>>2]|0)==(c[g>>2]|0))break;else e=e+1|0}sh(d,j);e=(c[d+16>>2]|0)+172|0;if(!(c[e>>2]|0))c[e>>2]=j;e=c[j+16>>2]|0;if((a[e+112>>0]|0)==4?(k=e+116|0,(c[k>>2]|0)==0):0)c[k>>2]=d;b=c[(c[((c[d>>2]&3|0)==3?d:l)+40>>2]|0)+16>>2]|0;e=c[b+204>>2]|0;b=(c[b+208>>2]<<2)+8|0;if(!e)e=IK(b)|0;else e=KK(e,b)|0;c[(c[(c[((c[d>>2]&3|0)==3?d:l)+40>>2]|0)+16>>2]|0)+204>>2]=e;i=c[(c[((c[d>>2]&3|0)==3?d:l)+40>>2]|0)+16>>2]|0;j=c[i+204>>2]|0;i=i+208|0;k=c[i>>2]|0;c[i>>2]=k+1;c[j+(k<<2)>>2]=d;l=c[(c[((c[d>>2]&3|0)==3?d:l)+40>>2]|0)+16>>2]|0;c[(c[l+204>>2]|0)+(c[l+208>>2]<<2)>>2]=0}while(0);if((m|0)==14){m=jh(i,c[((h|0)==3?d:l)+40>>2]|0,d)|0;d=c[d+16>>2]|0;l=c[m+16>>2]|0;a[l+112>>0]=(a[d+112>>0]|0)==4?4:3;c[l+96>>2]=c[d+96>>2];qh(b,m)}return}function Yh(a,b){a=a|0;b=b|0;var c=0;c=Ph(a,b)|0;return Qh(a,b)|0|c|0}function Zh(a,b){a=a|0;b=b|0;var d=0;d=HK(12)|0;c[d>>2]=a;c[d+4>>2]=b;c[d+8>>2]=HK(S(b,a)|0)|0;return d|0}function _h(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;o=d+16|0;l=c[o>>2]|0;k=c[(c[(c[b+16>>2]|0)+196>>2]|0)+(c[l+232>>2]<<6)+56>>2]|0;a[l+157>>0]=1;a[l+158>>0]=1;l=(c[(c[(dg(b)|0)+16>>2]|0)+180>>2]|0)>0;e=c[o>>2]|0;f=c[e+188>>2]|0;a:do if(f){m=k+4|0;n=k+8|0;d=0;b:while(1){j=c[f+(d<<2)>>2]|0;if(!j){p=e;break a}g=j+-48|0;e=j+48|0;if(l){if((EC(b,c[((c[j>>2]&3|0)==3?j:e)+40>>2]|0)|0)!=0?(EC(b,c[((c[j>>2]&3|0)==2?j:g)+40>>2]|0)|0)!=0:0)q=7}else q=7;do if((q|0)==7){q=0;h=j+16|0;if(c[(c[h>>2]|0)+156>>2]|0){s=c[j>>2]&3;r=c[(c[((s|0)==2?j:g)+40>>2]|0)+16>>2]|0;i=c[r+284>>2]|0;f=(i|0)<(c[k>>2]|0);e=((s|0)==3?j:e)+40|0;if((a[r+158>>0]|0)==1){if(!f){q=10;break b}e=c[(c[(c[e>>2]|0)+16>>2]|0)+284>>2]|0;f=c[m>>2]|0;if((e|0)>=(f|0)){q=12;break b}a[(c[n>>2]|0)+((S(f,i)|0)+e)>>0]=1;rh(j);d=d+-1|0;if((a[(c[h>>2]|0)+112>>0]|0)==4)break;Xh(b,j);break}else{if(!f){q=16;break b}e=c[(c[(c[e>>2]|0)+16>>2]|0)+284>>2]|0;f=c[m>>2]|0;if((e|0)>=(f|0)){q=18;break b}a[(c[n>>2]|0)+((S(f,e)|0)+i)>>0]=1;e=c[((c[j>>2]&3|0)==2?j:g)+40>>2]|0;if(a[(c[e+16>>2]|0)+157>>0]|0)break;_h(b,e);break}}}while(0);f=c[o>>2]|0;d=d+1|0;e=f;f=c[f+188>>2]|0}if((q|0)==10)Aa(86265,86053,1251,86297);else if((q|0)==12)Aa(86309,86053,1252,86297);else if((q|0)==16)Aa(86265,86053,1260,86297);else if((q|0)==18)Aa(86309,86053,1261,86297)}else p=e;while(0);a[p+158>>0]=0;return}function $h(a,b){a=a|0;b=b|0;var c=0;c=gC(a)|0;while(1){if(!c)break;bi(a,c,b);c=hC(a,c)|0}return}function ai(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;g=l;l=l+16|0;f=g;d=gC(b)|0;while(1){if(!d)break;e=_O(d,c[47223]|0,0)|0;a:do if(e|0){switch(a[e>>0]|0){case 0:break a;case 111:{if(!(f2(e,86341)|0)){bi(b,d,1);break a}break}case 105:{if(!(f2(e,99036)|0)){bi(b,d,0);break a}break}default:{}}h=HB(d)|0;c[f>>2]=e;c[f+4>>2]=h;dA(1,86376,f)|0}while(0);d=hC(b,d)|0}l=g;return}function bi(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=c[46782]|0;h=d+16|0;f=c[h>>2]|0;a:do if(!(c[f+212>>2]|0)){i=(e|0)!=0;b:do if(i){g=0;d=0;e=f;while(1){f=c[(c[e+180>>2]|0)+(g<<2)>>2]|0;if(!f)break b;if(!(ci(f)|0)){c[j+(d<<2)>>2]=f;d=d+1|0;e=c[h>>2]|0}g=g+1|0}}else{g=0;d=0;e=f;while(1){f=c[(c[e+172>>2]|0)+(g<<2)>>2]|0;if(!f)break b;if(!(ci(f)|0)){c[j+(d<<2)>>2]=f;d=d+1|0;e=c[h>>2]|0}g=g+1|0}}while(0);if((d|0)>=2){c[j+(d<<2)>>2]=0;k3(j,d,4,61);h=i?2:3;g=i?-1:1;f=1;while(1){d=c[j+(f<<2)>>2]|0;if(!d)break a;e=c[j+(f+-1<<2)>>2]|0;e=c[((c[e>>2]&3|0)==(h|0)?e:e+(g*48|0)|0)+40>>2]|0;d=c[((c[d>>2]&3|0)==(h|0)?d:d+(g*48|0)|0)+40>>2]|0;if(ch(e,d)|0)break a;i=jh(e,d,0)|0;a[(c[i+16>>2]|0)+112>>0]=4;qh(b,i);f=f+1|0}}}while(0);return}function ci(a){a=a|0;var b=0;while(1){b=c[(c[a+16>>2]|0)+116>>2]|0;if(!b)break;else a=b}b=c[a>>2]&3;return (c[(c[(c[((b|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0)!=(c[(c[(c[((b|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0)|0}function di(a,b){a=a|0;b=b|0;return ((c[c[a>>2]>>2]|0)>>>4)-((c[c[b>>2]>>2]|0)>>>4)|0}function ei(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;g=c[a+16>>2]|0;h=g+220|0;i=c[h>>2]|0;if((i|0)>=2){f=c[g+216>>2]|0;a=0;e=0;while(1){if((e|0)==(i|0))break;d=c[f+(e<<2)>>2]|0;if(a|0)c[(c[a+16>>2]|0)+164>>2]=d;j=c[d+16>>2]|0;c[j+168>>2]=a;a=d;d=j;while(1){d=c[d+164>>2]|0;if(!d)break;a=d;d=c[d+16>>2]|0}e=e+1|0}c[h>>2]=1;c[g+192>>2]=c[f>>2];b[g+236>>1]=c[46784];b[g+238>>1]=c[46785]}return}function fi(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=c[46783]|0;j=i+16|0;f=c[j>>2]|0;g=0;h=b[f+236>>1]|0;while(1){if((h|0)>=(b[f+238>>1]|0))break;d=c[f+196>>2]|0;if(!(a[d+(h<<6)+49>>0]|0)){e=yi(i,h)|0;d=c[j>>2]|0;f=c[d+196>>2]|0;c[f+(h<<6)+52>>2]=e;a[f+(h<<6)+49>>0]=1}else{e=c[d+(h<<6)+52>>2]|0;d=f}g=e+g|0;h=h+1|0;f=d}return g|0}function gi(a){a=a|0;var d=0,e=0,f=0,g=0,i=0,j=0;a=c[a+16>>2]|0;g=b[a+238>>1]|0;i=a+196|0;a=b[a+236>>1]|0;while(1){if((a|0)>(g|0))break;f=c[i>>2]|0;e=c[f+(a<<6)>>2]|0;f=f+(a<<6)+4|0;d=0;while(1){if((d|0)>=(e|0))break;j=c[(c[(c[f>>2]|0)+(d<<2)>>2]|0)+16>>2]|0;h[j+16>>3]=+(c[j+236>>2]|0);d=d+1|0}a=a+1|0}return}function hi(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+16|0;m=r;n=d+16|0;o=TO(c[(c[n>>2]|0)+232>>2]|0)|0;j=c[n>>2]|0;f=j+192|0;g=f;while(1){g=c[g>>2]|0;if(!g)break;g=c[g+16>>2]|0;a[g+157>>0]=0;g=g+164|0}h=b[j+238>>1]|0;i=j+196|0;g=b[j+236>>1]|0;while(1){if((g|0)>(h|0))break;c[(c[i>>2]|0)+(g<<6)>>2]=0;g=g+1|0}i=(e|0)==0;while(1){g=c[f>>2]|0;if(!g)break;h=g+16|0;f=c[h>>2]|0;if((c[c[(i?f+172|0:f+180|0)>>2]>>2]|0)==0?(k=f+157|0,(a[k>>0]|0)==0):0){a[k>>0]=1;VO(o,g);while(1){f=WO(o)|0;if(!f)break;if((a[(c[f+16>>2]|0)+159>>0]|0)==7){fl(d,f,e,o);continue}else{wi(d,f);xi(o,f,e);continue}}f=c[h>>2]|0}f=f+164|0}if(WO(o)|0)dA(1,86584,m)|0;f=c[n>>2]|0;j=b[f+236>>1]|0;while(1){if((j|0)>(b[f+238>>1]|0))break;a[(c[(c[(c[46783]|0)+16>>2]|0)+196>>2]|0)+(j<<6)+49>>0]=0;if((c[f+116>>2]&1|0)!=0?(p=c[f+196>>2]|0,q=c[p+(j<<6)>>2]|0,(q|0)>0):0){g=c[p+(j<<6)+4>>2]|0;h=q+-1|0;i=(h|0)/2|0;f=0;while(1){if((f|0)>(i|0))break;qi(c[g+(f<<2)>>2]|0,c[g+(h-f<<2)>>2]|0);f=f+1|0}f=c[n>>2]|0}j=j+1|0}if((dg(d)|0)==(d|0)?(fi(0)|0)>0:0)ki(d,0);UO(o);l=r;return}function ii(d){d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=d+16|0;d=c[n>>2]|0;f=b[d+236>>1]|0;e=b[d+238>>1]|0;l=e<<16>>16;m=d+196|0;g=f;while(1){if((g|0)>(l|0))break;k=c[m>>2]|0;j=c[k+(g<<6)>>2]|0;k=k+(g<<6)+4|0;i=0;while(1){if((i|0)>=(j|0))break;o=c[(c[(c[k>>2]|0)+(i<<2)>>2]|0)+16>>2]|0;c[o+236>>2]=~~+h[o+16>>3];i=i+1|0}g=g+1|0}while(1){if((f|0)>(e<<16>>16|0))break;a[(c[(c[(c[46783]|0)+16>>2]|0)+196>>2]|0)+(f<<6)+49>>0]=0;o=c[d+196>>2]|0;k3(c[o+(f<<6)+4>>2]|0,c[o+(f<<6)>>2]|0,4,62);o=c[n>>2]|0;f=f+1|0;e=b[o+238>>1]|0;d=o}return}function ji(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=((d|0)%4|0|0)<2&1;f=c[a+16>>2]|0;i=b[f+238>>1]|0;j=i<<16>>16;f=b[f+236>>1]|0;g=f<<16>>16;h=c[(c[46783]|0)+16>>2]|0;if(!(d&1)){k=1;e=j;d=(f<<16>>16<=(b[h+236>>1]|0)&1)+g|0}else{k=-1;e=g;d=((i<<16>>16>=(b[h+238>>1]|0))<<31>>31)+j|0}e=k+e|0;while(1){if((d|0)==(e|0))break;ti(a,d,l,(si(a,d,d-k|0)|0)&255);d=d+k|0}ki(a,l^1);return}function ki(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=d+16|0;g=c[k>>2]|0;i=b[g+236>>1]|0;j=b[g+238>>1]|0;h=g+196|0;f=i<<16>>16;while(1){if((f|0)>(j|0)){h=i;break}a[(c[h>>2]|0)+(f<<6)+48>>0]=1;f=f+1|0}while(1){f=0;h=h<<16>>16;while(1){if((h|0)>(b[g+238>>1]|0))break;if(a[(c[g+196>>2]|0)+(h<<6)+48>>0]|0){f=(ri(d,h,e)|0)+f|0;g=c[k>>2]|0}h=h+1|0}if((f|0)<=0)break;h=b[g+236>>1]|0}return}function li(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;o=d+16|0;e=c[o>>2]|0;n=b[e+238>>1]|0;a:while(1){if((n|0)<(b[e+236>>1]|0)){e=16;break}f=c[e+196>>2]|0;a[f+(n<<6)+48>>0]=0;p=(n|0)>0;q=n+1|0;g=0;b:while(1){l=(c[f+(n<<6)>>2]|0)+-1|0;m=f+(n<<6)+4|0;k=f+(q<<6)|0;while(1){if((g|0)>=(l|0))break b;j=c[m>>2]|0;i=c[j+(g<<2)>>2]|0;g=g+1|0;j=c[j+(g<<2)>>2]|0;if((c[(c[i+16>>2]|0)+236>>2]|0)>=(c[(c[j+16>>2]|0)+236>>2]|0)){e=7;break a}if(mi(d,i,j)|0)continue;if(p){f=ni(i,j)|0;h=ni(j,i)|0}else{f=0;h=0}if((c[k>>2]|0)>0){f=(oi(i,j)|0)+f|0;h=(oi(j,i)|0)+h|0}if((h|0)<=(f|0))break}pi(d,n,i,j);e=c[o>>2]|0;f=c[e+196>>2]|0}n=n+-1|0}if((e|0)==7)Aa(86535,86053,721,86561);else if((e|0)==16)return}function mi(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;j=c[d+16>>2]|0;i=c[j+212>>2]|0;f=c[e+16>>2]|0;g=c[f+212>>2]|0;h=(i|0)!=(g|0);do if(!(a[194049]|0))if((g|0)==0|((i|0)==0|h^1))k=9;else{if((a[j+159>>0]|0)==7?(a[j+156>>0]|0)==1:0){b=0;break}if((a[f+159>>0]|0)==7?(a[f+156>>0]|0)==1:0){b=0;break}b=1}else if(h)b=1;else k=9;while(0);if((k|0)==9){f=c[b+16>>2]|0;b=c[(c[f+196>>2]|0)+(c[j+232>>2]<<6)+56>>2]|0;if(!b)b=0;else{j=(c[f+116>>2]&1|0)==0;k=S(c[b+4>>2]|0,c[(c[(j?d:e)+16>>2]|0)+284>>2]|0)|0;b=a[(c[b+8>>2]|0)+((c[(c[(j?e:d)+16>>2]|0)+284>>2]|0)+k)>>0]|0}}return b|0}function ni(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;l=a+16|0;j=c[(c[d+16>>2]|0)+172>>2]|0;d=0;while(1){a=c[j>>2]|0;if(!a)break;i=c[a+16>>2]|0;k=b[i+154>>1]|0;g=c[(c[(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;i=i+16|0;f=c[(c[l>>2]|0)+172>>2]|0;a=d;while(1){d=c[f>>2]|0;if(!d)break;e=(c[(c[(c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-g|0;d=d+16|0;if((e|0)<=0){if((e|0)==0?(m=c[d>>2]|0,+h[m+16>>3]>+h[i>>3]):0){d=m;n=9}}else{d=c[d>>2]|0;n=9}if((n|0)==9){n=0;a=(S(b[d+154>>1]|0,k)|0)+a|0}f=f+4|0}j=j+4|0;d=a}return d|0}function oi(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;l=a+16|0;j=c[(c[d+16>>2]|0)+180>>2]|0;d=0;while(1){a=c[j>>2]|0;if(!a)break;i=c[a+16>>2]|0;k=b[i+154>>1]|0;g=c[(c[(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;i=i+56|0;f=c[(c[l>>2]|0)+180>>2]|0;a=d;while(1){d=c[f>>2]|0;if(!d)break;e=(c[(c[(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-g|0;d=d+16|0;if((e|0)<=0){if((e|0)==0?(m=c[d>>2]|0,+h[m+56>>3]>+h[i>>3]):0){d=m;n=9}}else{d=c[d>>2]|0;n=9}if((n|0)==9){n=0;a=(S(b[d+154>>1]|0,k)|0)+a|0}f=f+4|0}j=j+4|0;d=a}return d|0}function pi(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;i=a[(c[e+16>>2]|0)+156>>0]|0;if(i<<24>>24!=(a[(c[f+16>>2]|0)+156>>0]|0)){j=b+16|0;l=c[(c[j>>2]|0)+196>>2]|0;k=c[l+(d<<6)>>2]|0;l=l+(d<<6)+4|0;b=0;g=0;h=0;while(1){if((b|0)>=(k|0))break;o=(a[(c[(c[(c[l>>2]|0)+(b<<2)>>2]|0)+16>>2]|0)+156>>0]|0)==0;b=b+1|0;g=(o&1)+g|0;h=((o^1)&1)+h|0}i=i<<24>>24==0;h=(g|0)<(h|0)?(i?e:f):i?f:e;i=0;b=0;while(1){if((b|0)>=(k|0))break;i=(c[(c[l>>2]|0)+(b<<2)>>2]|0)==(h|0)?b:i;b=b+1|0}o=(a[(c[h+16>>2]|0)+156>>0]|0)==0&1;n=0;g=i;while(1){b=g+-1|0;if((g|0)<=0){m=0;b=i;break}if((a[(c[(c[(c[l>>2]|0)+(b<<2)>>2]|0)+16>>2]|0)+156>>0]|0)!=(o|0)){m=0;b=i;break}n=n+1|0;g=b}while(1){b=b+1|0;if((b|0)>=(k|0))break;if((a[(c[(c[(c[l>>2]|0)+(b<<2)>>2]|0)+16>>2]|0)+156>>0]|0)!=(o|0))break;m=m+1|0}qi(e,f);j=c[(c[j>>2]|0)+196>>2]|0;k=c[j+(d<<6)>>2]|0;j=j+(d<<6)+4|0;b=0;while(1){if((b|0)>=(k|0)){h=0;g=i;break}i=(c[(c[j>>2]|0)+(b<<2)>>2]|0)==(h|0)?b:i;b=b+1|0}while(1){b=g+-1|0;if((g|0)<=0){g=0;b=i;break}if((a[(c[(c[(c[j>>2]|0)+(b<<2)>>2]|0)+16>>2]|0)+156>>0]|0)!=(o|0)){g=0;b=i;break}h=h+1|0;g=b}while(1){b=b+1|0;if((b|0)>=(k|0))break;if((a[(c[(c[(c[j>>2]|0)+(b<<2)>>2]|0)+16>>2]|0)+156>>0]|0)!=(o|0))break;g=g+1|0}d=h-g|0;o=n-m|0;if((((d|0)>-1?d:0-d|0)|0)>(((o|0)>-1?o:0-o|0)|0))qi(e,f)}return}function qi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=c[a+16>>2]|0;e=c[f+232>>2]|0;f=f+236|0;d=c[f>>2]|0;g=b+16|0;h=c[(c[g>>2]|0)+236>>2]|0;c[f>>2]=h;f=(c[46783]|0)+16|0;c[(c[(c[(c[f>>2]|0)+196>>2]|0)+(e<<6)+4>>2]|0)+(h<<2)>>2]=a;c[(c[g>>2]|0)+236>>2]=d;c[(c[(c[(c[f>>2]|0)+196>>2]|0)+(e<<6)+4>>2]|0)+(d<<2)>>2]=b;return}function ri(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;q=d+16|0;n=c[(c[q>>2]|0)+196>>2]|0;a[n+(e<<6)+48>>0]=0;r=(e|0)>0;s=e+1|0;o=(f|0)!=0;p=e+-1|0;g=0;i=0;f=n;a:while(1){l=(c[f+(e<<6)>>2]|0)+-1|0;m=f+(e<<6)+4|0;h=f+(s<<6)|0;n=g;while(1){if((n|0)>=(l|0)){f=17;break a}k=c[m>>2]|0;j=c[k+(n<<2)>>2]|0;n=n+1|0;k=c[k+(n<<2)>>2]|0;if((c[(c[j+16>>2]|0)+236>>2]|0)>=(c[(c[k+16>>2]|0)+236>>2]|0)){f=5;break a}if(mi(d,j,k)|0)continue;if(r){f=ni(j,k)|0;g=ni(k,j)|0}else{f=0;g=0}if((c[h>>2]|0)>0){f=(oi(j,k)|0)+f|0;g=(oi(k,j)|0)+g|0}if((f|0)>(g|0))break;if((f|0)==(g|0)&(o&(f|0)>0)){f=g;break}}qi(j,k);i=f-g+i|0;g=c[(c[(c[46783]|0)+16>>2]|0)+196>>2]|0;a[g+(e<<6)+49>>0]=0;h=c[q>>2]|0;f=c[h+196>>2]|0;a[f+(e<<6)+48>>0]=1;if((b[h+236>>1]|0)<(e|0)){a[g+(p<<6)+49>>0]=0;a[f+(p<<6)+48>>0]=1}if((b[h+238>>1]|0)<=(e|0)){g=n;continue}a[g+(s<<6)+49>>0]=0;a[f+(s<<6)+48>>0]=1;g=n}if((f|0)==5)Aa(86535,86053,770,86569);else if((f|0)==17)return i|0;return 0}function si(a,e,f){a=a|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;p=c[46781]|0;q=a+16|0;a=c[(c[q>>2]|0)+196>>2]|0;r=c[a+(e<<6)+4>>2]|0;n=(f|0)>(e|0);o=p+4|0;m=0;while(1){f=c[a+(e<<6)>>2]|0;if((m|0)>=(f|0)){a=0;i=0;break}l=(c[r+(m<<2)>>2]|0)+16|0;k=c[l>>2]|0;a:do if(n){j=c[k+180>>2]|0;a=0;i=0;while(1){f=c[j+(i<<2)>>2]|0;if(!f)break a;g=c[f+16>>2]|0;if((b[g+154>>1]|0)>0){c[p+(a<<2)>>2]=d[g+88>>0]|c[(c[(c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]<<8;a=a+1|0}i=i+1|0}}else{j=c[k+172>>2]|0;i=0;a=0;while(1){f=c[j+(i<<2)>>2]|0;if(!f)break a;g=c[f+16>>2]|0;if((b[g+154>>1]|0)>0){c[p+(a<<2)>>2]=d[g+48>>0]|c[(c[(c[((c[f>>2]&3|0)==3?f:f+48|0)+40>>2]|0)+16>>2]|0)+236>>2]<<8;a=a+1|0}i=i+1|0}}while(0);b:do switch(a|0){case 0:{h[k+240>>3]=-1.0;break}case 1:{h[k+240>>3]=+(c[p>>2]|0);break}case 2:{h[k+240>>3]=+(((c[o>>2]|0)+(c[p>>2]|0)|0)/2|0|0);break}default:{k3(p,a,4,60);f=(a|0)/2|0;j=c[p+(f<<2)>>2]|0;i=(c[l>>2]|0)+240|0;if(a&1|0){h[i>>3]=+(j|0);break b}g=(c[p+(a+-1<<2)>>2]|0)-j|0;a=c[p+(f+-1<<2)>>2]|0;f=a-(c[p>>2]|0)|0;if((f|0)==(g|0)){h[i>>3]=+((a+j|0)/2|0|0);break b}else{h[i>>3]=+(((S(f,j)|0)+(S(a,g)|0)|0)/(f+g|0)|0|0);break b}}}while(0);m=m+1|0;a=c[(c[q>>2]|0)+196>>2]|0}while(1){if((i|0)>=(f|0))break;g=c[r+(i<<2)>>2]|0;p=c[g+16>>2]|0;if((c[p+184>>2]|0)==0?(c[p+176>>2]|0)==0:0){a=(ui(g)|0|a&255)&255;f=c[(c[(c[q>>2]|0)+196>>2]|0)+(e<<6)>>2]|0}i=i+1|0}return a|0}function ti(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;m=c[(c[b+16>>2]|0)+196>>2]|0;q=c[m+(d<<6)+4>>2]|0;m=c[m+(d<<6)>>2]|0;o=(e|0)!=0;n=(f|e|0)==0;f=0;e=m;m=q+(m<<2)|0;while(1){l=e+-1|0;if((e|0)>0)e=q;else break;a:while(1){b:while(1){if(e>>>0>=m>>>0)break a;do{if(e>>>0>=m>>>0)break a;k=c[e>>2]|0;e=e+4|0}while(+h[(c[k+16>>2]|0)+240>>3]<0.0);g=0;while(1){if(e>>>0>=m>>>0)break a;i=c[e>>2]|0;if(!(g<<24>>24!=0?(c[(c[i+16>>2]|0)+212>>2]|0)!=0:0)){if(mi(b,k,i)|0)continue b;j=c[i+16>>2]|0;if(+h[j+240>>3]>=0.0)break;g=(c[j+212>>2]|0)==0?g:1}e=e+4|0}g=~~+h[(c[k+16>>2]|0)+240>>3];j=~~+h[(c[i+16>>2]|0)+240>>3];if((g|0)>(j|0)|o&(g|0)==(j|0))break}qi(k,i);f=f+1|0}e=l;m=n?m+-4|0:m}if(f|0?(p=c[(c[(c[46783]|0)+16>>2]|0)+196>>2]|0,a[p+(d<<6)+49>>0]=0,(d|0)>0):0)a[p+(d+-1<<6)+49>>0]=0;return}function ui(a){a=a|0;var b=0.0,d=0,e=0,f=0,g=0,i=0;a=c[a+16>>2]|0;i=a+240|0;if((c[a+200>>2]|0)>0){g=c[a+196>>2]|0;a=c[g>>2]|0;a=c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0;d=1;while(1){e=c[g+(d<<2)>>2]|0;f=c[a+16>>2]|0;if(!e)break;e=c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0;a=(c[(c[e+16>>2]|0)+236>>2]|0)>(c[f+236>>2]|0)?e:a;d=d+1|0}b=+h[f+240>>3];if(!(b>=0.0))a=1;else{h[i>>3]=b+1.0;a=0}}else if((c[a+192>>2]|0)>0){e=c[a+188>>2]|0;d=c[e>>2]|0;a=1;d=c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0;while(1){f=c[e+(a<<2)>>2]|0;g=c[d+16>>2]|0;if(!f)break;f=c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0;a=a+1|0;d=(c[(c[f+16>>2]|0)+236>>2]|0)<(c[g+236>>2]|0)?f:d}b=+h[g+240>>3];if(b>0.0){h[i>>3]=b+-1.0;a=0}else a=1}else a=1;return a|0}function vi(a,b){a=a|0;b=b|0;return (c[(c[(c[a>>2]|0)+16>>2]|0)+236>>2]|0)-(c[(c[(c[b>>2]|0)+16>>2]|0)+236>>2]|0)|0}function wi(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+96|0;o=p+64|0;n=p+48|0;h=p+24|0;f=p;j=d+16|0;k=c[(c[j>>2]|0)+232>>2]|0;m=a+16|0;e=c[(c[m>>2]|0)+196>>2]|0;i=c[e+(k<<6)>>2]|0;do if((c[e+(k<<6)+8>>2]|0)>=1){c[(c[e+(k<<6)+4>>2]|0)+(i<<2)>>2]=d;c[(c[j>>2]|0)+236>>2]=i;a=c[m>>2]|0;f=c[a+196>>2]|0;e=f+(k<<6)|0;g=c[e>>2]|0;c[e>>2]=g+1;if((g|0)>=(c[f+(k<<6)+8>>2]|0))Aa(86649,86053,1346,86685);g=c[(c[(c[(c[46783]|0)+16>>2]|0)+196>>2]|0)+(k<<6)+8>>2]|0;if((i|0)>(g|0)){m=HB(d)|0;n=c[(c[j>>2]|0)+236>>2]|0;o=c[(c[(c[(c[46783]|0)+16>>2]|0)+196>>2]|0)+(k<<6)+8>>2]|0;c[h>>2]=1359;c[h+4>>2]=m;c[h+8>>2]=n;c[h+12>>2]=k;c[h+16>>2]=o;dA(1,86701,h)|0;break}e=b[a+236>>1]|0;a=b[a+238>>1]|0;if((k|0)<(e|0)|(k|0)>(a|0)){c[n>>2]=1364;c[n+4>>2]=k;c[n+8>>2]=e;c[n+12>>2]=a;dA(1,86774,n)|0;break}if(((c[f+(k<<6)+4>>2]|0)+(i<<2)|0)>>>0>((c[f+(k<<6)+12>>2]|0)+(g<<2)|0)>>>0){i=HB(d)|0;n=c[(c[m>>2]|0)+196>>2]|0;m=(c[n+(k<<6)+4>>2]|0)+(c[(c[j>>2]|0)+236>>2]<<2)|0;n=(c[n+(k<<6)+12>>2]|0)+(c[(c[(c[(c[46783]|0)+16>>2]|0)+196>>2]|0)+(k<<6)+8>>2]<<2)|0;c[o>>2]=1370;c[o+4>>2]=k;c[o+8>>2]=i;c[o+12>>2]=m;c[o+16>>2]=k;c[o+20>>2]=k;c[o+24>>2]=n;dA(1,86835,o)|0}}else{n=HB(a)|0;o=HB(d)|0;c[f>>2]=1339;c[f+4>>2]=n;c[f+8>>2]=o;c[f+12>>2]=k;c[f+16>>2]=i;dA(1,86594,f)|0}while(0);l=p;return}function xi(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=d+16|0;a:do if(!e){g=0;while(1){d=c[h>>2]|0;if((g|0)>=(c[d+184>>2]|0))break a;d=c[(c[d+180>>2]|0)+(g<<2)>>2]|0;e=d+-48|0;f=(c[(c[((c[d>>2]&3|0)==2?d:e)+40>>2]|0)+16>>2]|0)+157|0;if(!(a[f>>0]|0)){a[f>>0]=1;VO(b,c[((c[d>>2]&3|0)==2?d:e)+40>>2]|0)}g=g+1|0}}else{g=0;while(1){d=c[h>>2]|0;if((g|0)>=(c[d+176>>2]|0))break a;d=c[(c[d+172>>2]|0)+(g<<2)>>2]|0;e=d+48|0;f=(c[(c[((c[d>>2]&3|0)==3?d:e)+40>>2]|0)+16>>2]|0)+157|0;if(!(a[f>>0]|0)){a[f>>0]=1;VO(b,c[((c[d>>2]&3|0)==3?d:e)+40>>2]|0)}g=g+1|0}}while(0);return}function yi(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+16|0;t=u;g=d+16|0;f=c[(c[g>>2]|0)+196>>2]|0;r=c[f+(e<<6)+4>>2]|0;s=e+1|0;d=c[(c[(c[(c[46783]|0)+16>>2]|0)+196>>2]|0)+(s<<6)>>2]|0;if((c[46787]|0)>(d|0))d=c[46788]|0;else{f=d+1|0;c[46787]=f;d=c[46788]|0;f=f<<2;if(!d)d=IK(f)|0;else d=KK(d,f)|0;c[46788]=d;f=c[(c[g>>2]|0)+196>>2]|0}q=f+(s<<6)|0;g=0;while(1){if((g|0)>=(c[q>>2]|0))break;c[d+(g<<2)>>2]=0;g=g+1|0}p=f+(e<<6)|0;o=0;g=0;d=0;while(1){j=c[p>>2]|0;if((o|0)>=(j|0))break;n=c[(c[(c[r+(o<<2)>>2]|0)+16>>2]|0)+180>>2]|0;a:do if((g|0)>0){m=c[46788]|0;k=0;while(1){h=c[n+(k<<2)>>2]|0;if(!h)break a;j=h+16|0;i=c[(c[(c[((c[h>>2]&3|0)==2?h:h+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;while(1){h=i+1|0;if((i|0)>=(g|0))break;i=h;d=(S(b[(c[j>>2]|0)+154>>1]|0,c[m+(h<<2)>>2]|0)|0)+d|0}k=k+1|0}}while(0);h=0;while(1){i=c[n+(h<<2)>>2]|0;if(!i)break;m=c[(c[(c[((c[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;k=(c[46788]|0)+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(b[(c[i+16>>2]|0)+154>>1]|0);g=(m|0)>(g|0)?m:g;h=h+1|0}o=o+1|0}i=f+(e<<6)+4|0;h=0;while(1){if((h|0)>=(j|0))break;g=c[(c[(c[i>>2]|0)+(h<<2)>>2]|0)+16>>2]|0;if(a[g+145>>0]|0){e=g+180|0;c[t>>2]=c[e>>2];c[t+4>>2]=c[e+4>>2];d=(zi(t,1)|0)+d|0}h=h+1|0}i=c[q>>2]|0;h=f+(s<<6)+4|0;g=0;while(1){if((g|0)>=(i|0))break;f=c[(c[(c[h>>2]|0)+(g<<2)>>2]|0)+16>>2]|0;if(a[f+145>>0]|0){s=f+172|0;c[t>>2]=c[s>>2];c[t+4>>2]=c[s+4>>2];d=(zi(t,-1)|0)+d|0}g=g+1|0}l=u;return d|0}function zi(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;n=(d|0)>0;l=c[a>>2]|0;d=0;a=0;a:while(1){m=c[l+(d<<2)>>2]|0;if(!m)break;d=d+1|0;k=m+16|0;if(n){j=m+-48|0;i=d;while(1){e=c[l+(i<<2)>>2]|0;if(!e)continue a;f=c[e+16>>2]|0;g=c[k>>2]|0;if(+((c[(c[(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-(c[(c[(c[((c[m>>2]&3|0)==2?m:j)+40>>2]|0)+16>>2]|0)+236>>2]|0)|0)*(+h[f+16>>3]-+h[g+16>>3])<0.0)a=(S(b[f+154>>1]|0,b[g+154>>1]|0)|0)+a|0;i=i+1|0}}else{j=m+48|0;i=d;while(1){e=c[l+(i<<2)>>2]|0;if(!e)continue a;f=c[e+16>>2]|0;g=c[k>>2]|0;if(+((c[(c[(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-(c[(c[(c[((c[m>>2]&3|0)==3?m:j)+40>>2]|0)+16>>2]|0)+236>>2]|0)|0)*(+h[f+56>>3]-+h[g+56>>3])<0.0)a=(S(b[f+154>>1]|0,b[g+154>>1]|0)|0)+a|0;i=i+1|0}}}return a|0}function Ai(a){a=a|0;var b=0.0,d=0.0;c[46786]=8;c[47183]=24;h[23234]=.995;a=NA(a,86957)|0;if(a|0?(b=+a6(a),b>0.0):0){d=b*+(c[46786]|0);c[46786]=~~(d<=1.0?1.0:d);b=b*+(c[47183]|0);c[47183]=~~(b<=1.0?1.0:b)}return}function Bi(a){a=a|0;var d=0,e=0;e=(b[(c[a+16>>2]|0)+238>>1]|0)+2|0;d=HK(e<<2)|0;Di(a,d,e,0)|0;l6(d);return}function Ci(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=a+16|0;i=HK((b[(c[h>>2]|0)+238>>1]<<2)+8|0)|0;g=gC(a)|0;while(1){if(!g)break;f=i+(c[(c[g+16>>2]|0)+232>>2]<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=UA(a,g)|0;while(1){if(!f)break;j=c[f>>2]&3;d=c[(c[(c[((j|0)==3?f:f+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;j=c[(c[(c[((j|0)==2?f:f+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;k=(d|0)>(j|0);e=k?d:j;d=k?j:d;while(1){d=d+1|0;if((d|0)>=(e|0))break;k=i+(d<<2)|0;c[k>>2]=(c[k>>2]|0)+1}f=WA(a,f)|0}g=hC(a,g)|0}f=HK((b[(c[h>>2]|0)+238>>1]<<6)+128|0)|0;e=c[h>>2]|0;c[e+196>>2]=f;d=b[e+236>>1]|0;while(1){if((d|0)>(b[e+238>>1]|0))break;j=i+(d<<2)|0;e=c[j>>2]|0;c[f+(d<<6)>>2]=e;c[f+(d<<6)+8>>2]=e;j=HK((c[j>>2]<<2)+4|0)|0;e=c[h>>2]|0;k=c[e+196>>2]|0;c[k+(d<<6)+4>>2]=j;c[k+(d<<6)+12>>2]=j;d=d+1|0;f=k}l6(i);return}function Di(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,l=0,m=0;m=a+16|0;i=1;while(1){g=c[m>>2]|0;if((i|0)>(c[g+180>>2]|0))break;l=Di(c[(c[g+184>>2]|0)+(i<<2)>>2]|0,d,e,f)|0;i=i+1|0;f=l}a:do if((dg(a)|0)!=(a|0)){u6(d|0,0,e<<2|0)|0;g=gC(a)|0;while(1){if(!g)break;k=g+16|0;c[d+(c[(c[k>>2]|0)+232>>2]<<2)>>2]=1;i=UA(a,g)|0;while(1){if(!i)break;l=i+-48|0;j=c[(c[k>>2]|0)+232>>2]|0;while(1){e=j+1|0;if((j|0)>=(c[(c[(c[((c[i>>2]&3|0)==2?i:l)+40>>2]|0)+16>>2]|0)+232>>2]|0))break;c[d+(e<<2)>>2]=1;j=e}i=WA(a,i)|0}g=hC(a,g)|0}g=c[m>>2]|0;i=b[g+236>>1]|0;while(1){if((i|0)>(b[g+238>>1]|0))break a;if(!(c[d+(i<<2)>>2]|0)){if(!f)f=LD(dg(a)|0,86947,1)|0;g=qC(f,0,1)|0;RC(g,137750,304,1)|0;l=g+16|0;j=c[l>>2]|0;c[j+232>>2]=i;h[j+96>>3]=.5;h[j+88>>3]=.5;h[j+80>>3]=1.0;c[j+216>>2]=1;c[j+176>>2]=0;j=HK(20)|0;k=c[l>>2]|0;c[k+172>>2]=j;c[k+184>>2]=0;k=HK(20)|0;c[(c[l>>2]|0)+180>>2]=k;lC(a,g,1)|0;g=c[m>>2]|0}i=i+1|0}}while(0);return f|0}function Ei(a){a=a|0;var b=0,d=0;Uh(a);b=a+16|0;a=1;while(1){d=c[b>>2]|0;if((a|0)>(c[d+180>>2]|0))break;Ei(c[(c[d+184>>2]|0)+(a<<2)>>2]|0);a=a+1|0}return}function Fi(a){a=a|0;var b=0,d=0;b=c[a>>2]&3;d=Gi(c[((b|0)==3?a:a+48|0)+40>>2]|0)|0;b=c[17348+(d*12|0)+((Gi(c[((b|0)==2?a:a+-48|0)+40>>2]|0)|0)<<2)>>2]|0;a=(c[a+16>>2]|0)+156|0;c[a>>2]=S(c[a>>2]|0,b)|0;return}function Gi(b){b=b|0;b=c[b+16>>2]|0;if((a[b+156>>0]|0)==1)b=2;else b=(a[b+160>>0]|0)<2&1;return b|0}function Hi(b,d){b=b|0;d=d|0;if(c[(c[b+16>>2]|0)+192>>2]|0){gl(b);Ii(b);if(a[195236]|0)ul(b);Ji(b);if(Ml(b)|0)Ii(b);Ki(b);if(sL(b,2,Li(b)|0)|0?(Mi(b),sL(b,2,Li(b)|0)|0):0)Aa(86965,86993,134,87004);Ni(b);Oi(b,d);Pi(b)}return}function Ii(d){d=d|0;var e=0,f=0,g=0,i=0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0;v=d+16|0;e=c[v>>2]|0;w=c[e+196>>2]|0;t=b[e+236>>1]|0;while(1){if((t|0)>(b[e+238>>1]|0))break;n=w+(t<<6)|0;o=w+(t<<6)+4|0;p=w+(t<<6)+40|0;q=w+(t<<6)+24|0;r=w+(t<<6)+32|0;s=w+(t<<6)+16|0;m=0;while(1){if((m|0)>=(c[n>>2]|0))break;l=(c[(c[o>>2]|0)+(m<<2)>>2]|0)+16|0;e=c[l>>2]|0;j=+h[e+80>>3]*.5;i=c[e+204>>2]|0;a:do if(i){g=0;while(1){f=c[i+(g<<2)>>2]|0;if(!f)break a;x=c[f>>2]&3;if((c[((x|0)==3?f:f+48|0)+40>>2]|0)==(c[((x|0)==2?f:f+-48|0)+40>>2]|0)?(u=c[(c[f+16>>2]|0)+96>>2]|0,(u|0)!=0):0){k=+h[u+32>>3]*.5;j=j>k?j:k}g=g+1|0}}while(0);if(+h[p>>3]<j){h[q>>3]=j;h[p>>3]=j}if(+h[r>>3]<j){h[s>>3]=j;h[r>>3]=j}i=c[e+212>>2]|0;if(i|0){if((i|0)==(d|0))g=0;else{g=XO(i,c[47198]|0,8,0)|0;e=c[l>>2]|0}f=c[e+232>>2]|0;e=c[i+16>>2]|0;j=j+ +(g|0);if((f|0)==(b[e+236>>1]|0)){x=e+128|0;k=+h[x>>3];h[x>>3]=k>j?k:j}if((f|0)==(b[e+238>>1]|0)){x=e+120|0;k=+h[x>>3];h[x>>3]=k>j?k:j}}m=m+1|0}t=t+1|0;e=c[v>>2]|0}m=oj(d)|0;g=c[v>>2]|0;e=b[g+238>>1]|0;h[(c[(c[c[w+(e<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]=+h[w+(e<<6)+16>>3];f=b[g+236>>1]|0;i=g+252|0;k=0.0;while(1){l=e+-1|0;if((e|0)<=(f|0))break;y=+h[w+(e<<6)+40>>3]+ +h[w+(l<<6)+32>>3]+ +(c[i>>2]|0);j=+h[w+(e<<6)+24>>3]+ +h[w+(l<<6)+16>>3]+8.0;j=y>j?y:j;if((c[w+(l<<6)>>2]|0)>0)h[(c[(c[c[w+(l<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]=j+ +h[(c[(c[c[w+(e<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3];k=k>j?k:j;e=l}b:do if((m|0)!=0?(c[g+116>>2]&1|0)!=0:0){pj(d,0);g=c[v>>2]|0;if(a[g+276>>0]|0){e=b[g+238>>1]|0;f=b[g+236>>1]|0;j=+h[(c[(c[c[w+(e<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3];k=0.0;while(1){i=e+-1|0;if((e|0)<=(f|0))break b;z=+h[(c[(c[c[w+(i<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3];y=z-j;j=z;k=k>y?k:y;e=i}}}while(0);c:do if(a[g+276>>0]|0){i=b[g+236>>1]|0;f=b[g+238>>1]|0;while(1){e=f+-1|0;if((f|0)<=(i|0))break c;if((c[w+(e<<6)>>2]|0)<=0){f=e;continue}h[(c[(c[c[w+(e<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]=k+ +h[(c[(c[c[w+(f<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3];f=e}}while(0);e=g+192|0;while(1){e=c[e>>2]|0;if(!e)break;e=c[e+16>>2]|0;h[e+24>>3]=+h[(c[(c[c[w+(c[e+232>>2]<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3];e=e+164|0}return}function Ji(a){a=a|0;var b=0,d=0,e=0;kj(a);b=(c[a+16>>2]|0)+192|0;while(1){b=c[b>>2]|0;if(!b)break;e=b+16|0;b=c[e>>2]|0;d=c[b+224>>2]|0;if(d){lj(a,d);b=c[e>>2]|0}d=c[b+228>>2]|0;if(!d)d=b;else{lj(a,d);d=c[e>>2]|0}e=c[d+204>>2]|0;if(e|0){b=0;while(1)if(!(c[e+(b<<2)>>2]|0))break;else b=b+1|0}b=d+164|0}return}function Ki(a){a=a|0;Yi(a);Zi(a);_i(a);$i(a);aj(a);return}function Li(a){a=a|0;var b=0,c=0.0;b=NA(a,87193)|0;if(!b)a=2147483647;else{c=+a6(b);a=~~(c*+(qB(a)|0))}return a|0}function Mi(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=d+16|0;e=c[r>>2]|0;q=b[e+236>>1]|0;while(1){p=b[e+238>>1]|0;if((q|0)>(p|0)){s=19;break}n=c[e+196>>2]|0;o=n+(q<<6)|0;m=c[o>>2]|0;n=n+(q<<6)+4|0;l=0;f=0;a:while(1){if((l|0)>=(m|0)){s=14;break}f=c[(c[n>>2]|0)+(l<<2)>>2]|0;h=c[f+16>>2]|0;i=c[h+256>>2]|0;b:do if(i|0){g=0;while(1){j=c[i+(g<<2)>>2]|0;if(!j)break b;k=c[j>>2]&3;if((c[(c[(c[((k|0)==2?j:j+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(q|0))break a;if((c[(c[(c[((k|0)==3?j:j+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(q|0))break a;else g=g+1|0}}while(0);h=c[h+248>>2]|0;c:do if(h|0){g=0;while(1){i=c[h+(g<<2)>>2]|0;if(!i)break c;j=c[i>>2]&3;if((c[(c[(c[((j|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(q|0))break a;if((c[(c[(c[((j|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(q|0))break a;else g=g+1|0}}while(0);l=l+1|0}if((s|0)==14){s=0;if(f){f=c[c[n>>2]>>2]|0;e=c[c[o+(((q|0)<(p|0)?1:-1)<<6)+4>>2]>>2]|0;if(!e){s=16;break}o=ph(d)|0;p=o+16|0;a[(c[p>>2]|0)+156>>0]=2;Wi(o,f,0.0,0)|0;Wi(o,e,0.0,0)|0;c[(c[p>>2]|0)+232>>2]=c[(c[((c[(c[f+16>>2]|0)+232>>2]|0)<(c[(c[e+16>>2]|0)+232>>2]|0)?f:e)+16>>2]|0)+232>>2];e=c[r>>2]|0}}q=q+1|0}if((s|0)==16)Aa(87101,86993,111,87104);else if((s|0)==19)return}function Ni(a){a=a|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0;a=c[a+16>>2]|0;i=c[a+196>>2]|0;e=b[a+238>>1]|0;a=b[a+236>>1]|0;while(1){if((a|0)>(e|0))break;f=c[i+(a<<6)>>2]|0;g=i+(a<<6)+4|0;d=0;while(1){if((d|0)>=(f|0))break;k=c[(c[(c[g>>2]|0)+(d<<2)>>2]|0)+16>>2]|0;j=k+232|0;h[k+16>>3]=+(c[j>>2]|0);c[j>>2]=a;d=d+1|0}a=a+1|0}return}function Oi(a,d){a=a|0;d=d|0;var e=0,f=0.0,g=0.0,i=0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0.0;Qi(a,a);i=a+16|0;l=c[i>>2]|0;a:do if((b[l+238>>1]|0)>0?(j=c[l+8>>2]|0,e=c[j+84>>2]|0,e|0):0){m=~~(+h[l+32>>3]-+h[l+16>>3]);n=~~(+h[l+40>>3]-+h[l+24>>3]);o=(c[l+116>>2]&1|0)==0;if((e|0)==4){p=Ri(a)|0;l=c[i>>2]|0;j=c[l+8>>2]|0}else p=(e|0)==2&1;q=+((o?m:n)|0);k=+((o?n:m)|0);i=j+72|0;e=j+64|0;b:do if(!(p<<24>>24)){switch(c[j+84>>2]|0){case 5:{f=+h[e>>3];if(f<=0.0)break a;k=f/+h[l+32>>3];q=+h[i>>3]/+h[l+40>>3];f=k<q?k:q;if(k>1.0&q>1.0){k=f;break b}else break a}case 1:break;default:break a}g=+h[j+16>>3];f=k/q;if(f<g){k=1.0;f=g/f;break}else{k=f/g;f=1.0;break}}else{f=+h[e>>3];if(f<=0.0)break a;g=f/q;f=+h[i>>3]/k;if(g<1.0|f<1.0)if(g<f){k=1.0;f=f/g;break}else{k=g/f;f=1.0;break}else k=g}while(0);e=(c[l+116>>2]&1|0)==0;g=e?f:k;f=e?k:f;e=l+192|0;while(1){e=c[e>>2]|0;if(!e)break;e=c[e+16>>2]|0;p=e+16|0;q=f*+h[p>>3];h[p>>3]=+(~~(q+(q>=0.0?.5:-.5))|0);p=e+24|0;q=g*+h[p>>3];h[p>>3]=+(~~(q+(q>=0.0?.5:-.5))|0);e=e+164|0}Si(a,f,g)}while(0);if(d|0)Ti(a,d);return}function Pi(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=b+16|0;b=(c[h>>2]|0)+192|0;while(1){b=c[b>>2]|0;if(!b)break;g=b+16|0;d=0;while(1){b=c[g>>2]|0;f=c[b+180>>2]|0;e=c[f+(d<<2)>>2]|0;if(!e)break;l6(c[e+16>>2]|0);l6(e);d=d+1|0}if(f){l6(f);b=c[g>>2]|0}d=c[b+172>>2]|0;if(d){l6(d);b=c[g>>2]|0}f=b+256|0;e=c[f+4>>2]|0;b=b+180|0;c[b>>2]=c[f>>2];c[b+4>>2]=e;b=c[g>>2]|0;e=b+248|0;f=c[e+4>>2]|0;b=b+172|0;c[b>>2]=c[e>>2];c[b+4>>2]=f;b=(c[g>>2]|0)+164|0}b=0;d=c[(c[h>>2]|0)+192>>2]|0;a:while(1){g=(b|0)==0;f=b+16|0;b=d;while(1){if(!b)break a;e=c[b+16>>2]|0;d=c[e+164>>2]|0;if((a[e+156>>0]|0)!=2)continue a;if(g)c[(c[h>>2]|0)+192>>2]=d;else c[(c[f>>2]|0)+164>>2]=d;l6(e);l6(b);b=d}}c[(c[(c[(c[h>>2]|0)+192>>2]|0)+16>>2]|0)+168>>2]=0;return}function Qi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=a+16|0;d=1;while(1){f=c[e>>2]|0;if((d|0)>(c[f+180>>2]|0))break;Qi(c[(c[f+184>>2]|0)+(d<<2)>>2]|0,b);d=d+1|0}Vi(a,b);return}function Ri(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0.0,k=0.0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0;s=l;l=l+80|0;e=s+64|0;d=s+48|0;f=s+16|0;m=s;r=s+32|0;a=a+16|0;b=c[(c[a>>2]|0)+8>>2]|0;t=b+48|0;c[f>>2]=c[t>>2];c[f+4>>2]=c[t+4>>2];c[f+8>>2]=c[t+8>>2];c[f+12>>2]=c[t+12>>2];if((!(+h[f>>3]<.001)?(g=f+8|0,!(+h[g>>3]<.001)):0)?(i=b+32|0,c[m>>2]=c[i>>2],c[m+4>>2]=c[i+4>>2],c[m+8>>2]=c[i+8>>2],c[m+12>>2]=c[i+12>>2],c[d>>2]=c[f>>2],c[d+4>>2]=c[f+4>>2],c[d+8>>2]=c[f+8>>2],c[d+12>>2]=c[f+12>>2],c[e>>2]=c[i>>2],c[e+4>>2]=c[i+4>>2],c[e+8>>2]=c[i+8>>2],c[e+12>>2]=c[i+12>>2],Ui(r,d,e),c[f>>2]=c[r>>2],c[f+4>>2]=c[r+4>>2],c[f+8>>2]=c[r+8>>2],c[f+12>>2]=c[r+12>>2],c[d>>2]=c[r>>2],c[d+4>>2]=c[r+4>>2],c[d+8>>2]=c[r+8>>2],c[d+12>>2]=c[r+12>>2],c[e>>2]=c[m>>2],c[e+4>>2]=c[m+4>>2],c[e+8>>2]=c[m+8>>2],c[e+12>>2]=c[m+12>>2],Ui(f,d,e),i=c[a>>2]|0,j=+h[i+32>>3],k=+h[i+40>>3],n=+h[f>>3],o=n/j,p=+h[g>>3],q=p/k,!(o>=1.0&q>=1.0)):0){o=o<q?o:q;o=o>.5?o:.5;q=p*+R(+(k*o/p))/k;p=j*(n*+R(+(j*o/n))/j);a=c[i+8>>2]|0;h[a+64>>3]=p;h[a+72>>3]=k*q;a=1}else a=0;l=s;return a|0}function Si(a,b,d){a=a|0;b=+b;d=+d;var e=0,f=0;e=a+16|0;a=1;while(1){f=c[e>>2]|0;if((a|0)>(c[f+180>>2]|0))break;Si(c[(c[f+184>>2]|0)+(a<<2)>>2]|0,b,d);a=a+1|0}e=f+16|0;h[e>>3]=+h[e>>3]*b;e=f+24|0;h[e>>3]=+h[e>>3]*d;e=f+32|0;h[e>>3]=+h[e>>3]*b;f=f+40|0;h[f>>3]=+h[f>>3]*d;return}function Ti(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,g=0,i=0,j=0.0,k=0,m=0,n=0,o=0;n=l;l=l+32|0;k=n+24|0;i=n+16|0;g=n;o=c[b+16>>2]|0;f=+h[o+32>>3]-+h[o+16>>3];e=+h[o+40>>3]-+h[o+24>>3];j=f/e;if(a[195234]|0){o=c[15715]|0;h[g>>3]=j;h[g+8>>3]=f*e/1.0e4;z4(o,87017,g)|0;c[i>>2]=uk(b)|0;z4(o,87042,i)|0}e=+h[d>>3];b=d+24|0;do if(!(j>e*1.1)){if(!(j<=e*.8)){c[b>>2]=0;m=9;break}c[b>>2]=-1;if(a[195234]|0){_3(87052,34,1,c[15715]|0)|0;m=9}}else{c[b>>2]=~~(e*+((c[d+20>>2]|0)-(c[d+16>>2]|0)|0)/j);m=9}while(0);if((m|0)==9?a[195234]|0:0){o=c[15715]|0;c[k>>2]=c[b>>2];z4(o,87087,k)|0}l=n;return}function Ui(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=+h[b+8>>3]-+h[c+8>>3];h[a>>3]=+h[b>>3]-+h[c>>3];h[a+8>>3]=d;return}function Vi(d,e){d=d|0;e=e|0;var f=0.0,g=0.0,i=0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0;n=(dg(d)|0)==(d|0);s=d+16|0;t=c[s>>2]|0;q=b[t+236>>1]|0;r=b[t+238>>1]|0;a:do if(n){n=t+196|0;m=q;g=-2147483647.0;f=2147483647.0;while(1){if((m|0)>(r|0))break;d=c[n>>2]|0;l=c[d+(m<<6)>>2]|0;if((l|0)!=0?(o=c[d+(m<<6)+4>>2]|0,p=c[o>>2]|0,(p|0)!=0):0){j=1;d=p;while(1){d=c[d+16>>2]|0;i=a[d+156>>0]|0;if(!((j|0)<(l|0)&i<<24>>24!=0))break;d=c[o+(j<<2)>>2]|0;j=j+1|0}if(!(i<<24>>24)){k=+h[d+16>>3]-+h[d+88>>3];j=f<k;i=l+-2|0;d=l+-1|0;while(1){d=c[(c[o+(d<<2)>>2]|0)+16>>2]|0;if(!(a[d+156>>0]|0))break;else{d=i;i=i+-1|0}}u=+h[d+16>>3]+ +h[d+96>>3];g=g>u?g:u;f=j?f:k}}m=m+1|0}i=c[t+180>>2]|0;j=t+184|0;d=1;while(1){if((d|0)>(i|0))break a;p=c[(c[(c[j>>2]|0)+(d<<2)>>2]|0)+16>>2]|0;u=+h[p+16>>3]+-8.0;k=+h[p+32>>3]+8.0;d=d+1|0;g=g>k?g:k;f=f<u?f:u}}else{g=+(c[(c[(c[t+260>>2]|0)+16>>2]|0)+232>>2]|0);f=+(c[(c[(c[t+256>>2]|0)+16>>2]|0)+232>>2]|0)}while(0);e=c[(c[e+16>>2]|0)+196>>2]|0;k=+h[(c[(c[c[e+(r<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+h[t+120>>3];u=+h[(c[(c[c[e+(q<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]+ +h[t+128>>3];h[t+16>>3]=f;h[t+24>>3]=k;e=c[s>>2]|0;h[e+32>>3]=g;h[e+40>>3]=u;return}function Wi(a,d,e,f){a=a|0;d=d|0;e=+e;f=f|0;var g=0,h=0,i=0,j=0;i=HK(96)|0;j=i+48|0;c[j>>2]=c[j>>2]|3;c[i>>2]=c[i>>2]&-4|2;g=HK(176)|0;h=i+16|0;c[h>>2]=g;c[((c[i>>2]&3|0)==3?i:j)+40>>2]=a;c[((c[i>>2]&3|0)==2?i:i+-48|0)+40>>2]=d;if(e>65535.0){Xi(e);e=65535.0;g=c[h>>2]|0}b[g+170>>1]=~~(e+(e>=0.0?.5:-.5));c[g+156>>2]=f;dh(i)|0;return i|0}function Xi(a){a=+a;var b=0,d=0;b=l;l=l+16|0;d=b;h[d>>3]=a;c[d+8>>2]=65535;dA(1,87117,d)|0;l=b;return}function Yi(a){a=a|0;var b=0,d=0,e=0,f=0;a=(c[a+16>>2]|0)+192|0;while(1){a=c[a>>2]|0;if(!a)break;f=a+16|0;e=c[f>>2]|0;a=e+172|0;d=c[a+4>>2]|0;e=e+248|0;c[e>>2]=c[a>>2];c[e+4>>2]=d;e=c[f>>2]|0;d=e+180|0;a=c[d+4>>2]|0;e=e+256|0;c[e>>2]=c[d>>2];c[e+4>>2]=a;e=c[f>>2]|0;a=c[e+180>>2]|0;d=0;while(1)if(!(c[a+(d<<2)>>2]|0))break;else d=d+1|0;b=c[e+172>>2]|0;a=0;while(1)if(!(c[b+(a<<2)>>2]|0))break;else a=a+1|0;c[e+176>>2]=0;a=HK((a+d<<2)+16|0)|0;e=c[f>>2]|0;c[e+172>>2]=a;c[e+184>>2]=0;e=HK(16)|0;a=c[f>>2]|0;c[a+180>>2]=e;a=a+164|0}return}function Zi(d){d=d|0;var f=0,g=0,i=0.0,j=0,k=0,m=0.0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0;z=l;l=l+16|0;w=z;x=d+16|0;u=c[x>>2]|0;y=c[u+196>>2]|0;d=(a[(c[(c[d+60>>2]|0)+16>>2]|0)+113>>0]&1)!=0;v=c[u+248>>2]|0;c[w>>2]=v;c[w+4>>2]=d?5:v;v=b[u+236>>1]|0;d=u;while(1){if((v|0)>(b[d+238>>1]|0))break;r=y+(v<<6)+4|0;c[(c[(c[c[r>>2]>>2]|0)+16>>2]|0)+232>>2]=0;s=y+(v<<6)|0;t=+(c[w+((v&1)<<2)>>2]|0);m=0.0;k=0;a:while(1){if((k|0)>=(c[s>>2]|0))break;f=c[r>>2]|0;n=c[f+(k<<2)>>2]|0;u=n+16|0;d=c[u>>2]|0;i=+h[d+96>>3];h[d+240>>3]=i;if((c[d+208>>2]|0)>0){j=0;f=0;while(1){g=c[(c[d+204>>2]|0)+(j<<2)>>2]|0;if(!g)break;q=c[g>>2]&3;if((c[((q|0)==3?g:g+48|0)+40>>2]|0)==(c[((q|0)==2?g:g+-48|0)+40>>2]|0)){f=(iO(g)|0)+f|0;d=c[u>>2]|0}j=j+1|0}q=d+96|0;i=+(f|0)+ +h[q>>3];h[q>>3]=i;f=c[r>>2]|0}q=k+1|0;f=c[f+(q<<2)>>2]|0;if(!f)p=m;else{o=f+16|0;p=t+(i+ +h[(c[o>>2]|0)+88>>3]);Wi(n,f,p,0)|0;d=~~(m+p);c[(c[o>>2]|0)+232>>2]=d;p=+(d|0);d=c[u>>2]|0}f=c[d+112>>2]|0;if(f){j=c[d+256>>2]|0;k=c[j>>2]|0;j=c[j+4>>2]|0;d=(c[(c[(c[((c[k>>2]&3|0)==2?k:k+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)>(c[(c[(c[((c[j>>2]&3|0)==2?j:j+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0);g=d?j:k;j=d?k:j;k=f+16|0;d=c[k>>2]|0;i=+((S(c[(c[x>>2]|0)+248>>2]|0,e[d+170>>1]|0)|0)/2|0|0);o=c[g>>2]&3;f=c[((o|0)==2?g:g+-48|0)+40>>2]|0;g=c[((o|0)==3?g:g+48|0)+40>>2]|0;if(!(ij(g,f)|0))Wi(f,g,+(~~(i+ +h[(c[f+16>>2]|0)+96>>3]+ +h[(c[g+16>>2]|0)+88>>3])|0),c[d+156>>2]|0)|0;d=c[j>>2]&3;f=c[((d|0)==3?j:j+48|0)+40>>2]|0;d=c[((d|0)==2?j:j+-48|0)+40>>2]|0;if(!(ij(d,f)|0)){Wi(f,d,+(~~(i+ +h[(c[f+16>>2]|0)+96>>3]+ +h[(c[d+16>>2]|0)+88>>3])|0),c[(c[k>>2]|0)+156>>2]|0)|0;o=0}else o=0}else o=0;while(1){d=c[u>>2]|0;if((o|0)>=(c[d+192>>2]|0)){m=p;k=q;continue a}k=c[(c[d+188>>2]|0)+(o<<2)>>2]|0;j=c[k>>2]&3;g=c[((j|0)==3?k:k+48|0)+40>>2]|0;j=c[((j|0)==2?k:k+-48|0)+40>>2]|0;d=(c[(c[g+16>>2]|0)+236>>2]|0)<(c[(c[j+16>>2]|0)+236>>2]|0);f=d?g:j;g=d?j:g;i=+h[(c[f+16>>2]|0)+96>>3]+ +h[(c[g+16>>2]|0)+88>>3];j=k+16|0;d=~~(i+ +(S(c[(c[x>>2]|0)+248>>2]|0,e[(c[j>>2]|0)+170>>1]|0)|0));n=ah(f,g)|0;m=+(d|0);if(!n){d=c[j>>2]|0;if(!(c[d+96>>2]|0))Wi(f,g,m,c[d+156>>2]|0)|0}else{d=c[j>>2]|0;A=+h[d+136>>3];i=i+ +(c[(c[x>>2]|0)+248>>2]|0)+ +(~~(A+(A>=0.0?.5:-.5))|0);f=~~(m>i?m:i);if((f|0)>65535){Xi(+(f|0));f=65535;d=c[j>>2]|0}j=c[n+16>>2]|0;g=j+170|0;B=e[g>>1]|0;b[g>>1]=(B|0)>(f|0)?B:f;j=j+156|0;c[j>>2]=c[(c[((c[j>>2]|0)>(c[d+156>>2]|0)?n:k)+16>>2]|0)+156>>2]}o=o+1|0}}v=v+1|0;d=c[x>>2]|0}l=z;return}function _i(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;d=(c[b+16>>2]|0)+192|0;while(1){d=c[d>>2]|0;if(!d)break;g=d+16|0;d=c[g>>2]|0;e=c[d+256>>2]|0;a:do if(e){f=0;while(1){e=c[e+(f<<2)>>2]|0;if(!e)break a;n=ph(b)|0;d=n+16|0;a[(c[d>>2]|0)+156>>0]=2;l=e+16|0;k=c[l>>2]|0;i=~~(+h[k+56>>3]-+h[k+16>>3]);m=(i|0)>0;j=m?0:0-i|0;i=m?i:0;m=e+48|0;Wi(n,c[((c[e>>2]&3|0)==3?e:m)+40>>2]|0,+(i+1|0),c[k+156>>2]|0)|0;k=e+-48|0;Wi(n,c[((c[e>>2]&3|0)==2?e:k)+40>>2]|0,+(j+1|0),c[(c[l>>2]|0)+156>>2]|0)|0;l=c[e>>2]&3;i=(c[(c[(c[((l|0)==3?e:m)+40>>2]|0)+16>>2]|0)+232>>2]|0)-i|0;e=(c[(c[(c[((l|0)==2?e:k)+40>>2]|0)+16>>2]|0)+232>>2]|0)-j|0;c[(c[d>>2]|0)+232>>2]=((i|0)<(e|0)?i:e)+-1;d=c[g>>2]|0;f=f+1|0;e=c[d+256>>2]|0}}while(0);d=d+164|0}return}function $i(a){a=a|0;if((c[(c[a+16>>2]|0)+180>>2]|0)>0){dj(a);ej(a);fj(a);gj(a)}return}function aj(a){a=a|0;var b=0.0,d=0.0,e=0,f=0;e=a+16|0;f=c[(c[e>>2]|0)+8>>2]|0;if((c[f+84>>2]|0)==3?(b=+h[f+64>>3],d=+h[f+72>>3],!(b*d<=1.0)):0){bj(a);f=c[e>>2]|0;d=(c[f+116>>2]&1|0)==0?b:d;Wi(c[f+256>>2]|0,c[f+260>>2]|0,d<65535.0?d:65535.0,1e3)|0}return}function bj(a){a=a|0;var d=0,e=0,f=0.0,g=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+16|0;m=n;e=XO(a,c[47198]|0,8,0)|0;cj(a);i=a+16|0;g=c[i>>2]|0;j=c[g+256>>2]|0;k=c[g+260>>2]|0;f=+(e|0);e=b[g+236>>1]|0;while(1){if((e|0)>(b[g+238>>1]|0))break;d=c[g+196>>2]|0;do if(c[d+(e<<6)>>2]|0){d=c[c[d+(e<<6)+4>>2]>>2]|0;if(!d){c[m>>2]=HB(a)|0;c[m+4>>2]=e;dA(1,87201,m)|0;break}else{Wi(j,d,f+ +h[(c[d+16>>2]|0)+88>>3]+ +h[g+96>>3],0)|0;g=c[i>>2]|0;d=c[g+196>>2]|0;d=c[(c[d+(e<<6)+4>>2]|0)+((c[d+(e<<6)>>2]|0)+-1<<2)>>2]|0;Wi(d,k,f+ +h[(c[d+16>>2]|0)+96>>3]+ +h[g+64>>3],0)|0;break}}while(0);e=e+1|0;g=c[i>>2]|0}l=n;return}function cj(b){b=b|0;var d=0,e=0,f=0;d=b+16|0;if(!(c[(c[d>>2]|0)+256>>2]|0)){f=ph(dg(b)|0)|0;a[(c[f+16>>2]|0)+156>>0]=2;e=ph(dg(b)|0)|0;a[(c[e+16>>2]|0)+156>>0]=2;if((c[(c[d>>2]|0)+12>>2]|0?(dg(b)|0)!=(b|0):0)?(c[(c[(vC(b)|0)+16>>2]|0)+116>>2]&1|0)==0:0){b=c[d>>2]|0;Wi(f,e,+(~~+h[b+48+((+h[b+48>>3]>+h[b+80>>3]?0:2)<<4)>>3]|0),0)|0}d=c[d>>2]|0;c[d+256>>2]=f;c[d+260>>2]=e}return}function dj(a){a=a|0;var b=0,d=0;b=a+16|0;do if((dg(a)|0)!=(a|0)){bj(a);a=c[b>>2]|0;a=ah(c[a+256>>2]|0,c[a+260>>2]|0)|0;if(!a){d=c[b>>2]|0;Wi(c[d+256>>2]|0,c[d+260>>2]|0,1.0,128)|0;break}else{d=(c[a+16>>2]|0)+156|0;c[d>>2]=(c[d>>2]|0)+128;break}}while(0);a=1;while(1){d=c[b>>2]|0;if((a|0)>(c[d+180>>2]|0))break;dj(c[(c[d+184>>2]|0)+(a<<2)>>2]|0);a=a+1|0}return}function ej(d){d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0.0,n=0,o=0;k=XO(d,c[47198]|0,8,0)|0;o=d+16|0;e=c[o>>2]|0;m=+(k|0);k=b[e+236>>1]|0;while(1){if((k|0)>(b[e+238>>1]|0)){f=1;break}e=c[e+196>>2]|0;a:do if(c[e+(k<<6)>>2]|0?(l=c[c[e+(k<<6)+4>>2]>>2]|0,l|0):0){i=l+16|0;f=c[(c[i>>2]|0)+236>>2]|0;while(1){if((f|0)<=0)break;f=f+-1|0;j=c[(c[(c[(c[(dg(d)|0)+16>>2]|0)+196>>2]|0)+(k<<6)+4>>2]|0)+(f<<2)>>2]|0;g=j+16|0;e=c[g>>2]|0;if(!(a[e+156>>0]|0)){n=10;break}if(hj(d,j)|0){n=9;break}}if((n|0)==9){e=c[g>>2]|0;n=10}if((n|0)==10){n=0;Wi(j,c[(c[o>>2]|0)+256>>2]|0,m+ +h[e+96>>3],0)|0}f=(c[(c[(c[o>>2]|0)+196>>2]|0)+(k<<6)>>2]|0)+(c[(c[i>>2]|0)+236>>2]|0)|0;while(1){if((f|0)>=(c[(c[(c[(dg(d)|0)+16>>2]|0)+196>>2]|0)+(k<<6)>>2]|0))break a;i=c[(c[(c[(c[(dg(d)|0)+16>>2]|0)+196>>2]|0)+(k<<6)+4>>2]|0)+(f<<2)>>2]|0;g=i+16|0;e=c[g>>2]|0;if(!(a[e+156>>0]|0))break;if(!(hj(d,i)|0))f=f+1|0;else{n=15;break}}if((n|0)==15){n=0;e=c[g>>2]|0}Wi(c[(c[o>>2]|0)+260>>2]|0,i,m+ +h[e+88>>3],0)|0}while(0);k=k+1|0;e=c[o>>2]|0}while(1){if((f|0)>(c[e+180>>2]|0))break;ej(c[(c[e+184>>2]|0)+(f<<2)>>2]|0);f=f+1|0;e=c[o>>2]|0}return}function fj(a){a=a|0;var b=0,d=0.0,e=0,f=0,g=0;e=XO(a,c[47198]|0,8,0)|0;cj(a);b=a+16|0;d=+(e|0);a=1;while(1){e=c[b>>2]|0;if((a|0)>(c[e+180>>2]|0))break;e=c[(c[e+184>>2]|0)+(a<<2)>>2]|0;cj(e);f=c[b>>2]|0;g=e+16|0;Wi(c[f+256>>2]|0,c[(c[g>>2]|0)+256>>2]|0,d+ +h[f+96>>3],0)|0;f=c[b>>2]|0;Wi(c[(c[g>>2]|0)+260>>2]|0,c[f+260>>2]|0,d+ +h[f+64>>3],0)|0;fj(e);a=a+1|0}return}function gj(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0,o=0;d=XO(a,c[47198]|0,8,0)|0;n=a+16|0;a=1;while(1){f=c[n>>2]|0;e=c[f+180>>2]|0;if((a|0)>(e|0))break;cj(c[(c[f+184>>2]|0)+(a<<2)>>2]|0);a=a+1|0}m=+(d|0);l=1;a=e;d=f;while(1){if((l|0)>(a|0))break;k=l+1|0;j=k;while(1){e=c[d+184>>2]|0;f=c[e+(l<<2)>>2]|0;if((j|0)>(a|0))break;e=c[e+(j<<2)>>2]|0;g=(b[(c[f+16>>2]|0)+236>>1]|0)>(b[(c[e+16>>2]|0)+236>>1]|0);i=g?e:f;e=g?f:e;f=c[i+16>>2]|0;g=c[e+16>>2]|0;o=b[g+236>>1]|0;h=o<<16>>16;if((b[f+238>>1]|0)>=o<<16>>16){a=(c[(c[(c[c[(c[f+196>>2]|0)+(h<<6)+4>>2]>>2]|0)+16>>2]|0)+236>>2]|0)<(c[(c[(c[c[(c[g+196>>2]|0)+(h<<6)+4>>2]>>2]|0)+16>>2]|0)+236>>2]|0);Wi(c[(c[(a?i:e)+16>>2]|0)+260>>2]|0,c[(c[(a?e:i)+16>>2]|0)+256>>2]|0,m,0)|0;a=c[n>>2]|0;d=a;a=c[a+180>>2]|0}j=j+1|0}gj(f);d=c[n>>2]|0;l=k;a=c[d+180>>2]|0}return}function hj(b,d){b=b|0;d=d|0;var e=0;d=c[d+16>>2]|0;if((a[d+156>>0]|0)==1){d=c[c[d+256>>2]>>2]|0;while(1){e=c[(c[d+16>>2]|0)+116>>2]|0;if(!e)break;else d=e}if(!(EC(b,c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0)|0))d=(EC(b,c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)|0)==0&1;else d=0}else d=0;return d|0}function ij(a,b){a=a|0;b=b|0;return jj(a,b)|0}function jj(a,b){a=a|0;b=b|0;var d=0,e=0;a:do if((a|0)==(b|0))a=1;else{d=c[(c[a+16>>2]|0)+180>>2]|0;a=0;while(1){e=c[d+(a<<2)>>2]|0;if(!e){a=0;break a}if(!(jj(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,b)|0))a=a+1|0;else{a=1;break}}}while(0);return a|0}function kj(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=d+16|0;d=c[l>>2]|0;k=b[d+236>>1]|0;while(1){if((k|0)>(b[d+238>>1]|0))break;h=c[d+196>>2]|0;g=c[h+(k<<6)>>2]|0;h=h+(k<<6)+4|0;j=0;f=0;while(1){i=j+1|0;if((f|0)>=(g|0))break;e=c[(c[(c[h>>2]|0)+(f<<2)>>2]|0)+16>>2]|0;c[e+236>>2]=j;if((a[e+159>>0]|0)==6)e=(c[e+216>>2]|0)+j|0;else e=i;j=e;f=f+1|0}if((j|0)>(g|0)){e=c[h>>2]|0;d=i<<2;if(!e)d=IK(d)|0;else d=KK(e,d)|0;f=c[(c[l>>2]|0)+196>>2]|0;c[f+(k<<6)+4>>2]=d;g=c[f+(k<<6)>>2]|0;while(1){e=g+-1|0;if((g|0)<=0)break;f=c[d+(e<<2)>>2]|0;c[d+(c[(c[f+16>>2]|0)+236>>2]<<2)>>2]=f;f=c[(c[l>>2]|0)+196>>2]|0;g=e;d=c[f+(k<<6)+4>>2]|0}c[f+(k<<6)>>2]=j;c[d+(j<<2)>>2]=0;d=c[l>>2]|0}k=k+1|0}return}function lj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;o=l;l=l+48|0;n=o+32|0;m=o+8|0;d=o+24|0;k=o+16|0;j=o;e=b+16|0;f=c[e>>2]|0;a:do if((c[f+216>>2]|0)>=2){c[m>>2]=~~(+h[f+16>>3]-+h[f+88>>3]);c[m+4>>2]=~~+h[f+24>>3];c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];mj(d,b,n);g=d;i=c[g+4>>2]|0;d=m;c[d>>2]=c[g>>2];c[d+4>>2]=i;e=c[e>>2]|0;d=(c[e+236>>2]|0)+1|0;if((c[e+184>>2]|0)>0){j=c[c[e+180>>2]>>2]|0;j=XA(a,c[((c[j>>2]&3|0)==2?j:j+-48|0)+40>>2]|0)|0;while(1){if(!j)break a;i=(c[j>>2]&3|0)==2?j:j+-48|0;e=i+48|0;f=c[((c[i>>2]&3|0)==3?i:e)+40>>2]|0;if((f|0)!=(b|0)?(dP(f)|0)==(b|0):0){e=c[((c[i>>2]&3|0)==3?i:e)+40>>2]|0;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];nj(k,a,e,n,d);e=k;f=c[e+4>>2]|0;g=m;c[g>>2]=c[e>>2];c[g+4>>2]=f;uh(i);g=i+-48|0;f=c[(c[((c[i>>2]&3|0)==2?i:g)+40>>2]|0)+16>>2]|0;e=c[f+172>>2]|0;f=(c[f+176>>2]<<2)+8|0;if(!e)e=IK(f)|0;else e=KK(e,f)|0;c[(c[(c[((c[i>>2]&3|0)==2?i:g)+40>>2]|0)+16>>2]|0)+172>>2]=e;p=c[(c[((c[i>>2]&3|0)==2?i:g)+40>>2]|0)+16>>2]|0;e=c[p+172>>2]|0;p=p+176|0;f=c[p>>2]|0;c[p>>2]=f+1;c[e+(f<<2)>>2]=i;i=c[(c[((c[i>>2]&3|0)==2?i:g)+40>>2]|0)+16>>2]|0;c[(c[i+172>>2]|0)+(c[i+176>>2]<<2)>>2]=0;d=d+1|0}j=YA(a,j)|0}}else{i=c[c[e+172>>2]>>2]|0;i=UA(a,c[((c[i>>2]&3|0)==3?i:i+48|0)+40>>2]|0)|0;while(1){if(!i)break a;e=i+-48|0;f=c[((c[i>>2]&3|0)==2?i:e)+40>>2]|0;if((f|0)!=(b|0)?(dP(f)|0)==(b|0):0){e=c[((c[i>>2]&3|0)==2?i:e)+40>>2]|0;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];nj(j,a,e,n,d);e=j;f=c[e+4>>2]|0;g=m;c[g>>2]=c[e>>2];c[g+4>>2]=f;uh(i);g=i+48|0;f=c[(c[((c[i>>2]&3|0)==3?i:g)+40>>2]|0)+16>>2]|0;e=c[f+180>>2]|0;f=(c[f+184>>2]<<2)+8|0;if(!e)e=IK(f)|0;else e=KK(e,f)|0;c[(c[(c[((c[i>>2]&3|0)==3?i:g)+40>>2]|0)+16>>2]|0)+180>>2]=e;f=c[(c[((c[i>>2]&3|0)==3?i:g)+40>>2]|0)+16>>2]|0;k=c[f+180>>2]|0;f=f+184|0;p=c[f>>2]|0;c[f>>2]=p+1;c[k+(p<<2)>>2]=i;p=c[(c[((c[i>>2]&3|0)==3?i:g)+40>>2]|0)+16>>2]|0;c[(c[p+180>>2]|0)+(c[p+184>>2]<<2)>>2]=0;d=d+1|0}i=WA(a,i)|0}}}while(0);l=o;return}function mj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0;oQ(b,c[(c[(uC(b)|0)+16>>2]|0)+116>>2]&1);e=c[b+16>>2]|0;h[e+24>>3]=+(c[d+4>>2]|0);f=+(c[d>>2]|0)+ +h[e+88>>3];h[e+16>>3]=f;f=f+ +h[e+96>>3];c[d>>2]=~~(f+ +(c[(c[(uC(b)|0)+16>>2]|0)+248>>2]|0));e=d;b=c[e+4>>2]|0;d=a;c[d>>2]=c[e>>2];c[d+4>>2]=b;return}function nj(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;i=l;l=l+16|0;h=i;b=dg(b)|0;g=dP(d)|0;if((g|0)!=(d|0))mh(g,d);j=c[d+16>>2]|0;c[j+236>>2]=f;g=c[(c[g+16>>2]|0)+232>>2]|0;c[j+232>>2]=g;c[(c[(c[(c[b+16>>2]|0)+196>>2]|0)+(g<<6)+4>>2]|0)+(f<<2)>>2]=d;c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];mj(a,d,h);l=i;return}function oj(a){a=a|0;var d=0.0,e=0.0,f=0,g=0,i=0,j=0.0,k=0,l=0,m=0,n=0.0;m=c[(c[(dg(a)|0)+16>>2]|0)+196>>2]|0;if((dg(a)|0)==(a|0))j=8.0;else j=+(XO(a,c[47198]|0,8,0)|0);l=a+16|0;g=c[l>>2]|0;f=0;k=1;e=+h[g+120>>3];d=+h[g+128>>3];while(1){if((k|0)>(c[g+180>>2]|0))break;i=c[(c[g+184>>2]|0)+(k<<2)>>2]|0;f=oj(i)|0|f;i=c[i+16>>2]|0;g=c[l>>2]|0;if((b[i+238>>1]|0)==(b[g+238>>1]|0)){n=j+ +h[i+120>>3];e=e>n?e:n}if((b[i+236>>1]|0)==(b[g+236>>1]|0)){n=j+ +h[i+128>>3];d=d>n?d:n}k=k+1|0}if((dg(a)|0)!=(a|0)?(c[(c[l>>2]|0)+12>>2]|0)!=0:0)if(!(c[(c[(vC(a)|0)+16>>2]|0)+116>>2]&1)){k=c[l>>2]|0;f=1;e=e+ +h[k+56>>3];d=d+ +h[k+88>>3]}else f=1;k=c[l>>2]|0;h[k+120>>3]=e;h[k+128>>3]=d;if((dg(a)|0)!=(a|0)){l=c[l>>2]|0;a=m+(b[l+236>>1]<<6)+24|0;n=+h[a>>3];h[a>>3]=n>d?n:d;m=m+(b[l+238>>1]<<6)+16|0;n=+h[m>>3];h[m>>3]=n>e?n:e}return f|0}function pj(a,d){a=a|0;d=d|0;var e=0,f=0.0,g=0.0,i=0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0.0,q=0.0;o=c[(c[(dg(a)|0)+16>>2]|0)+196>>2]|0;if((dg(a)|0)==(a|0))e=0;else e=XO(a,c[47198]|0,8,0)|0;l=a+16|0;i=c[l>>2]|0;m=e+d|0;k=+(e|0);j=1;f=+h[i+128>>3];g=+h[i+120>>3];e=i;while(1){if((j|0)>(c[e+180>>2]|0))break;i=c[(c[e+184>>2]|0)+(j<<2)>>2]|0;pj(i,m);i=c[i+16>>2]|0;e=c[l>>2]|0;if((b[i+238>>1]|0)==(b[e+238>>1]|0)){q=k+ +h[i+120>>3];g=g>q?g:q}if((b[i+236>>1]|0)==(b[e+236>>1]|0)){q=k+ +h[i+128>>3];f=f>q?f:q}j=j+1|0}h[e+120>>3]=g;h[e+128>>3]=f;if(((dg(a)|0)!=(a|0)?(n=c[l>>2]|0,c[n+12>>2]|0):0)?(p=+h[n+48+((+h[n+104>>3]>+h[n+72>>3]?3:1)<<4)+8>>3]-(f+(g+(+h[(c[(c[c[o+(b[n+236>>1]<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+h[(c[(c[c[o+(b[n+238>>1]<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]))),p>0.0):0)qj(a,~~p,d);if((dg(a)|0)!=(a|0)){n=c[l>>2]|0;m=o+(b[n+236>>1]<<6)+24|0;q=+h[m>>3];p=+h[n+128>>3];h[m>>3]=q>p?q:p;o=o+(b[n+238>>1]<<6)+16|0;p=+h[o>>3];q=+h[n+120>>3];h[o>>3]=p>q?p:q}return}function qj(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0.0,i=0.0,j=0,k=0.0,l=0,m=0,n=0.0,o=0,p=0;j=c[(dg(a)|0)+16>>2]|0;o=c[j+196>>2]|0;l=c[a+16>>2]|0;a=b[l+238>>1]|0;f=b[l+236>>1]|0;p=(d+1|0)/2|0;m=l+120|0;n=+(p|0)+ +h[m>>3];i=+(e|0);e=~~(n-(+h[o+(a<<6)+16>>3]-i));l=l+128|0;i=+h[o+(f<<6)+24>>3]-i;k=+(d-p|0)+ +h[l>>3];if((e|0)>0){g=+(e|0);while(1){if((a|0)<(f|0))break;if((c[o+(a<<6)>>2]|0)>0){p=(c[(c[c[o+(a<<6)+4>>2]>>2]|0)+16>>2]|0)+24|0;h[p>>3]=g+ +h[p>>3]}a=a+-1|0}g=k+g}else g=k;a=~~(g-i);a:do if((a|0)>0){e=b[j+236>>1]|0;g=+(a|0);while(1){a=f+-1|0;if((f|0)<=(e|0))break a;if((c[o+(a<<6)>>2]|0)<=0){f=a;continue}f=(c[(c[c[o+(a<<6)+4>>2]>>2]|0)+16>>2]|0)+24|0;h[f>>3]=g+ +h[f>>3];f=a}}while(0);h[l>>3]=k;h[m>>3]=n;return}function rj(b,d){b=b|0;d=d|0;var e=0,f=0;e=c[b+16>>2]|0;f=a[e+84>>0]|0;b=c[d+16>>2]|0;do if(f<<24>>24==(a[b+84>>0]|0)){if(+h[e+56>>3]==+h[b+56>>3]){if(!(f<<24>>24==0?1:+h[e+64>>3]==+h[b+64>>3])){b=0;break}}else if(f<<24>>24){b=0;break}if(+h[e+16>>3]==+h[b+16>>3]?+h[e+24>>3]==+h[b+24>>3]:0){b=1;break}b=(a[e+44>>0]|0)==0}else b=0;while(0);return b&1|0}function sj(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=a+16|0;d=c[j>>2]|0;b[d+236>>1]=32767;b[d+238>>1]=-1;d=0;i=gC(a)|0;while(1){e=c[j>>2]|0;if(!i)break;f=e+238|0;g=c[(c[i+16>>2]|0)+232>>2]|0;h=g&65535;if((b[f>>1]|0)<(g|0))b[f>>1]=h;e=e+236|0;if((b[e>>1]|0)>(g|0))b[e>>1]=h;if(!d)d=i;else d=(g|0)<(c[(c[d+16>>2]|0)+232>>2]|0)?i:d;i=hC(a,i)|0}c[e+264>>2]=d;return}function tj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0.0;b=NA(a,87246)|0;if(!b)b=2147483647;else{g=+a6(b);b=~~(g*+(qB(a)|0))}e=a+16|0;d=0;while(1){f=c[e>>2]|0;if((d|0)>=(c[f+220>>2]|0))break;c[f+192>>2]=c[(c[f+216>>2]|0)+(d<<2)>>2];sL(a,(c[f+180>>2]|0)==0&1,b)|0;d=d+1|0}return}function uj(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=l;l=l+16|0;g=h;f=d+16|0;if(!(NA(d,87255)|0))wj(d,e);else{i=(c[f>>2]|0)+136|0;b[i>>1]=b[i>>1]|16;vj(d,e)}if(a[195234]|0){i=c[15715]|0;e=c[f>>2]|0;f=b[e+236>>1]|0;c[g>>2]=b[e+238>>1];c[g+4>>2]=f;z4(i,87263,g)|0}l=h;return}function vj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0.0;h=l;l=l+16|0;g=h;c[46789]=0;c[g>>2]=c[4658];g=lB(87473,g,0)|0;RC(g,87502,280,1)|0;CC(g,17444,17384);xj(a);d=NA(a,87246)|0;if(!d)e=2147483647;else{i=+a6(d);e=~~(i*+(qB(a)|0))}Nj(a,0);Oj(a,g);Pj(a,g);Qj(a,g,0,0);Rj(g);f=Sj(g)|0;Tj(g);if(b|0){Hk(g);vk(g)}d=NA(a,102887)|0;if(!d)d=-1;else d=d6(d)|0;LK(g,1,e,d)|0;Uj(a,g,f);pB(g)|0;l=h;return}function wj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;g=l;l=l+32|0;f=g+16|0;e=g+8|0;d=g;xj(a);do if(!b){yj(a,a);Kk(a);zj(d,a);h=d;d=c[h+4>>2]|0;b=e;c[b>>2]=c[h>>2];c[b+4>>2]=d;Dl(a,0);b=0}else{Hk(a);vk(a);yj(a,a);Kk(a);zj(d,a);i=d;d=c[i+4>>2]|0;h=e;c[h>>2]=c[i>>2];c[h+4>>2]=d;Dl(a,0);h=c[a+16>>2]|0;if((c[h+220>>2]|0)<=1?(c[h+180>>2]|0)<=0:0)break;c[b+32>>2]=1;b=0}while(0);sk(a);c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];if(Aj(a,f)|0)Dl(a,0);if(!b)tj(a);else wk(a,b);Bj(a,b);Cj(a);l=g;return}function xj(d){d=d|0;var f=0,g=0,h=0;if(a[(c[(c[d+60>>2]|0)+16>>2]|0)+113>>0]&1){g=gC(d)|0;while(1){if(!g)break;f=UA(d,g)|0;while(1){if(!f)break;h=(c[f+16>>2]|0)+170|0;b[h>>1]=(e[h>>1]|0)<<1;f=WA(d,f)|0}g=hC(d,g)|0}h=(c[d+16>>2]|0)+252|0;c[h>>2]=((c[h>>2]|0)+1|0)/2|0}return}function yj(a,b){a=a|0;b=b|0;var d=0;b=MD(b)|0;while(1){if(!b)break;d=Kj(b)|0;do if(d)if((d|0)==7&(c[47182]|0)==100){Gj(a,b);break}else{Lj(a,b,d);break}else yj(a,b);while(0);b=ND(b)|0}return}function zj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=d+16|0;d=c[h>>2]|0;e=c[d+228>>2]|0;j=b+4|0;f=c[d+224>>2]|0;g=(f|0)==0;a:do if(!((e|0)==0&g)){if(!g){e=dP(f)|0;d=c[h>>2]|0;c[d+224>>2]=e;e=c[d+228>>2]|0}do if(e){d=dP(e)|0;e=c[h>>2]|0;c[e+228>>2]=d;if(d){e=d+16|0;d=c[e>>2]|0;f=(a[d+159>>0]|0)==5&1;while(1){d=c[c[d+180>>2]>>2]|0;if(!d){d=11;break}g=c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0;if((g|0)!=(dP(g)|0)){d=9;break}rk(d);d=c[e>>2]|0}if((d|0)==9)Aa(87366,87306,346,87398);else if((d|0)==11){k=f;i=c[h>>2]|0;break}}else{k=0;i=e}}else{k=0;i=d}while(0);d=c[i+224>>2]|0;if(!d){l=k;m=0}else{e=d+16|0;d=c[e>>2]|0;f=(a[d+159>>0]|0)==3&1;while(1){d=c[c[d+172>>2]>>2]|0;if(!d){l=k;m=f;break a}i=c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0;if((i|0)!=(dP(i)|0))break;rk(d);d=c[e>>2]|0}Aa(87411,87306,353,87398)}}else{l=0;m=0}while(0);c[b>>2]=m;c[j>>2]=l;return}function Aj(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;j=a+16|0;i=c[j>>2]|0;if((c[i+228>>2]|0)==0?(c[i+224>>2]|0)==0:0)d=0;else e=3;a:do if((e|0)==3){g=gC(a)|0;i=d+4|0;h=c[d>>2]&65535;d=0;while(1){if(!g)break a;if((g|0)==(dP(g)|0)){f=g+16|0;e=c[f>>2]|0;if((c[e+184>>2]|0)==0?(k=c[(c[j>>2]|0)+228>>2]|0,!((k|0)==0|(g|0)==(k|0))):0){d=kh(g,k,0)|0;e=c[d+16>>2]|0;b[e+170>>1]=c[i>>2];c[e+156>>2]=0;e=c[f>>2]|0}if((c[e+176>>2]|0)==0?(l=c[(c[j>>2]|0)+224>>2]|0,!((l|0)==0|(g|0)==(l|0))):0){d=kh(l,g,0)|0;f=c[d+16>>2]|0;b[f+170>>1]=h;c[f+156>>2]=0}}g=hC(a,g)|0}}while(0);return (d|0)!=0|0}function Bj(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;g=gC(d)|0;l=d+16|0;f=c[l>>2]|0;a:do if(g){b[f+236>>1]=32767;b[f+238>>1]=-1;k=(e|0)==0;while(1){if(!g)break;f=dP(g)|0;j=c[g+16>>2]|0;h=j+232|0;e=c[h>>2]|0;if((f|0)!=(g|0)&(k|(e|0)==0)){e=(c[(c[f+16>>2]|0)+232>>2]|0)+e|0;c[h>>2]=e}f=c[l>>2]|0;h=f+238|0;i=e&65535;if((b[h>>1]|0)<(e|0))b[h>>1]=i;f=f+236|0;if((b[f>>1]|0)>(e|0))b[f>>1]=i;switch(a[j+159>>0]|0){case 6:case 0:break;default:fP(g)}g=hC(d,g)|0}if((dg(d)|0)==(d|0)){if((c[47182]|0)==100)e=1;else{Fj(d);break}while(1){f=c[l>>2]|0;if((e|0)>(c[f+180>>2]|0))break a;Ej(c[(c[f+184>>2]|0)+(e<<2)>>2]|0);e=e+1|0}}}else{b[f+238>>1]=0;b[f+236>>1]=0}while(0);return}function Cj(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=b+16|0;e=0;while(1){d=c[j>>2]|0;if((e|0)>=(c[d+220>>2]|0))break;i=c[(c[d+216>>2]|0)+(e<<2)>>2]|0;c[d+192>>2]=i;d=i;while(1){if(!d)break;i=d+16|0;Dj((c[i>>2]|0)+172|0);Dj((c[i>>2]|0)+180|0);i=c[i>>2]|0;a[i+157>>0]=0;d=c[i+164>>2]|0}e=e+1|0}i=gC(b)|0;while(1){if(!i)break;h=UA(b,i)|0;while(1){if(!h)break;f=h+16|0;d=c[f>>2]|0;g=c[d+172>>2]|0;if((g|0)!=0?(k=g+16|0,(h|0)==(c[(c[k>>2]|0)+116>>2]|0)):0){d=gC(b)|0;while(1){if(!d)break;e=UA(b,d)|0;while(1){if(!e)break;if((h|0)!=(e|0)?(l=(c[e+16>>2]|0)+172|0,m=c[l>>2]|0,(m|0)!=0&(g|0)==(m|0)):0)c[l>>2]=0;e=WA(b,e)|0}d=hC(b,d)|0}l6(c[k>>2]|0);l6(g);d=c[f>>2]|0}c[d+172>>2]=0;h=WA(b,h)|0}i=hC(b,i)|0}l6(c[(c[j>>2]|0)+216>>2]|0);m=c[j>>2]|0;c[m+216>>2]=0;c[m+220>>2]=0;return}function Dj(a){a=a|0;var b=0,d=0;d=a+4|0;b=c[d>>2]|0;while(1){if((b|0)<=-1)break;c[(c[a>>2]|0)+(b<<2)>>2]=0;b=b+-1|0}c[d>>2]=0;return}function Ej(a){a=a|0;var d=0,f=0,g=0;d=a+16|0;f=c[d>>2]|0;g=c[(c[(c[f+264>>2]|0)+16>>2]|0)+232>>2]|0;a=f+236|0;b[a>>1]=(e[a>>1]|0)+g;a=f+238|0;b[a>>1]=(e[a>>1]|0)+g;a=1;while(1){if((a|0)>(c[f+180>>2]|0))break;Ej(c[(c[f+184>>2]|0)+(a<<2)>>2]|0);a=a+1|0;f=c[d>>2]|0}return}function Fj(b){b=b|0;var d=0;d=MD(dg(b)|0)|0;while(1){if(!d)break;if((a[(c[d+16>>2]|0)+274>>0]|0)==7)Gj(b,d);d=ND(d)|0}return}function Gj(a,b){a=a|0;b=b|0;var d=0;d=(c[b+16>>2]|0)+200|0;do if((c[d>>2]|0)==0?(c[d>>2]=a,Hj(a,b),gC(b)|0):0){Ij(a,b);if((c[47182]|0)==100){wj(b,0);Jj(b);break}else{sj(b);break}}while(0);return}function Hj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=b+16|0;g=gC(d)|0;while(1){if(!g)break;i=hC(d,g)|0;j=g+16|0;if(!(a[(c[j>>2]|0)+159>>0]|0))f=1;else{tC(d,g)|0;g=i;continue}while(1){e=c[h>>2]|0;b=c[e+180>>2]|0;if((f|0)>=(b|0))break;if(EC(c[(c[e+184>>2]|0)+(f<<2)>>2]|0,g)|0){k=7;break}f=f+1|0}if((k|0)==7){k=0;b=c[(c[h>>2]|0)+180>>2]|0}if((f|0)<(b|0))tC(d,g)|0;c[(c[j>>2]|0)+212>>2]=0;g=i}e=gC(d)|0;while(1){if(!e)break;b=UA(dg(d)|0,e)|0;while(1){if(!b)break;if(EC(d,c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0)jB(d,b,1)|0;b=WA(dg(d)|0,b)|0}e=hC(d,e)|0}return}function Ij(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=a+16|0;d=c[e>>2]|0;g=d+180|0;a=c[g>>2]|0;f=a+1|0;c[g>>2]=f;d=c[d+184>>2]|0;a=a+2|0;if(!d)a=HK(a<<2)|0;else a=JK(d,a,4,f)|0;c[(c[e>>2]|0)+184>>2]=a;c[a+(f<<2)>>2]=b;sK(b);return}function Jj(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;g=c[b+16>>2]|0;d=g+192|0;h=0;while(1){d=c[d>>2]|0;if(!d)break;f=c[d+16>>2]|0;if(!(c[f+232>>2]|0))e=(a[f+156>>0]|0)==0?d:h;else e=h;d=f+164|0;h=e}if(!h)Aa(87291,87306,238,87313);c[g+264>>2]=h;d=gC(b)|0;while(1){if(!d){d=13;break}e=d+16|0;if(!((d|0)==(h|0)?1:(c[(c[e>>2]|0)+216>>2]|0)<2)){d=11;break}eP(d,h)|0;a[(c[e>>2]|0)+159>>0]=7;d=hC(b,d)|0}if((d|0)==11)Aa(87328,87306,242,87313);else if((d|0)==13)return}function Kj(b){b=b|0;var d=0;if(!(Mj(b)|0)){d=nP(NA(b,87443)|0,17396,17420)|0;a[(c[b+16>>2]|0)+274>>0]=d;b=d}else b=7;return b|0}function Lj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;g=gC(d)|0;a:do if(g|0){j=e&255;i=g+16|0;f=g;h=j;while(1){a[(c[f+16>>2]|0)+159>>0]=h;f=hC(d,f)|0;if(!f)break;eP(g,f)|0;h=a[(c[i>>2]|0)+159>>0]|0}b=b+16|0;switch(e|0){case 3:case 2:{f=c[b>>2]|0;h=c[f+224>>2]|0;if(h){g=eP(h,g)|0;f=c[b>>2]|0}c[f+224>>2]=g;break}case 5:case 4:{f=c[b>>2]|0;h=c[f+228>>2]|0;if(h){g=eP(h,g)|0;f=c[b>>2]|0}c[f+228>>2]=g;break}default:break a}switch(e|0){case 3:{f=f+224|0;break}case 5:{f=f+228|0;break}default:break a}a[(c[(c[f>>2]|0)+16>>2]|0)+159>>0]=j}while(0);return}function Mj(a){a=a|0;return (h2(HB(a)|0,108307,7)|0)==0|0}function Nj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;g=m;if(!(gk(b)|0)){j=b+16|0;do if(DP(b)|0)if(!d){c[(c[j>>2]|0)+204>>2]=0;d=b;break}else{c[(c[j>>2]|0)+204>>2]=(c[(c[d+16>>2]|0)+204>>2]|0)+1;hk(b,d);d=b;break}while(0);e=MD(b)|0;while(1){if(!e)break;Nj(e,d);e=ND(e)|0}a:do if(DP(b)|0){e=gC(b)|0;while(1){if(!e)break a;f=(c[e+16>>2]|0)+212|0;if(!(c[f>>2]|0))c[f>>2]=b;e=hC(b,e)|0}}while(0);d=d+16|0;switch(ik(b)|0){case 3:{a[(c[d>>2]|0)+241>>0]=1;k=19;break}case 2:{k=19;break}case 5:{a[(c[d>>2]|0)+242>>0]=1;k=21;break}case 4:{k=21;break}case 1:{jk(b)|0;break}case 6:break;default:{e=HB(b)|0;f=NA(b,87443)|0;c[g>>2]=e;c[g+4>>2]=f;dA(0,87626,g)|0}}if((k|0)==19){k=jk(b)|0;k=kk(k,c[(c[d>>2]|0)+208>>2]|0)|0;c[(c[d>>2]|0)+208>>2]=k}else if((k|0)==21){k=jk(b)|0;k=kk(k,c[(c[d>>2]|0)+212>>2]|0)|0;c[(c[d>>2]|0)+212>>2]=k}if((DP(b)|0?(h=c[j>>2]|0,i=c[h+208>>2]|0,i|0):0)?(i|0)==(c[h+212>>2]|0):0){i=jk(b)|0;k=c[j>>2]|0;c[k+208>>2]=i;c[k+212>>2]=i}}l=m;return}function Oj(a,b){a=a|0;b=b|0;var d=0,e=0;c[46789]=0;d=gC(a)|0;while(1){if(!d)break;if((Vj(d)|0)==(d|0)){e=Yj(b,HB(d)|0)|0;c[(c[d+16>>2]|0)+148>>2]=e}d=hC(a,d)|0}d=gC(a)|0;while(1){if(!d)break;b=d+16|0;if(!(c[(c[b>>2]|0)+148>>2]|0)){e=c[(c[(Vj(d)|0)+16>>2]|0)+148>>2]|0;c[(c[b>>2]|0)+148>>2]=e}d=hC(a,d)|0}return}function Pj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=gC(a)|0;while(1){if(!h)break;d=c[(c[h+16>>2]|0)+148>>2]|0;i=UA(a,h)|0;while(1){if(!i)break;do if((bk(i)|0)==0?(j=i+-48|0,k=c[(c[(Vj(c[((c[i>>2]&3|0)==2?i:j)+40>>2]|0)|0)+16>>2]|0)+148>>2]|0,(d|0)!=(k|0)):0){f=c[i>>2]&3;g=i+48|0;e=((f|0)==3?i:g)+40|0;f=c[(c[(c[((f|0)==2?i:j)+40>>2]|0)+16>>2]|0)+212>>2]|0;if(!(ck(i)|0)){if((ak(c[(c[(c[e>>2]|0)+16>>2]|0)+212>>2]|0)|0)==0?(ak(f)|0)==0:0){dk(b,d,k,i);break}ek(b,d,k,i);break}else{f=Vj(c[e>>2]|0)|0;e=c[i>>2]&3;if((f|0)!=(c[(c[(c[(c[(c[((e|0)==3?i:g)+40>>2]|0)+16>>2]|0)+212>>2]|0)+16>>2]|0)+212>>2]|0)?(g=Vj(c[((e|0)==2?i:j)+40>>2]|0)|0,(g|0)!=(c[(c[(c[(c[(c[((c[i>>2]&3|0)==2?i:j)+40>>2]|0)+16>>2]|0)+212>>2]|0)+16>>2]|0)+208>>2]|0)):0)e=k;else{e=d;d=k}dk(b,d,e,i);break}}while(0);i=WA(a,i)|0}h=hC(a,h)|0}return}function Qj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;if((DP(a)|0)!=0?(ak(a)|0)!=0:0){i=gC(a)|0;while(1){f=(d|0)!=0;h=(e|0)!=0;if(!i)break;if(!(XA(a,i)|0)){g=c[(c[(Vj(i)|0)+16>>2]|0)+148>>2]|0;if(!f)d=Yj(b,87524)|0;fB(b,d,g,0,1)|0}if(!(UA(a,i)|0)){f=c[(c[(Vj(i)|0)+16>>2]|0)+148>>2]|0;if(!h)e=Yj(b,87529)|0;fB(b,f,e,0,1)|0}i=hC(a,i)|0}if(h&f){$j(fB(b,d,e,0,1)|0,0,1e3);f=d}else f=d}else f=d;d=MD(a)|0;while(1){if(!d)break;Qj(d,b,f,e);d=ND(d)|0}return}function Rj(b){b=b|0;var d=0,e=0;d=gC(b)|0;while(1){if(!d)break;e=c[d+16>>2]|0;a[e+158>>0]=0;a[e+157>>0]=0;d=hC(b,d)|0}d=gC(b)|0;while(1){if(!d)break;Zj(b,d);d=hC(b,d)|0}return}function Sj(a){a=a|0;var b=0,d=0,e=0,f=0;b=gC(a)|0;while(1){if(!b)break;c[(c[b+16>>2]|0)+128>>2]=0;b=hC(a,b)|0}b=0;e=gC(a)|0;while(1){if(!e)break;d=b+1|0;if(!(c[(c[e+16>>2]|0)+128>>2]|0)){Xj(a,e,d);b=d}e=hC(a,e)|0}a:do if((b|0)>1){f=Yj(a,87518)|0;d=1;e=gC(a)|0;while(1){if(!e)break a;if((c[(c[e+16>>2]|0)+128>>2]|0)==(d|0)){fB(a,f,e,0,1)|0;d=d+1|0}e=hC(a,e)|0}}while(0);return b|0}function Tj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;g=gC(a)|0;while(1){if(!g)break;h=g+16|0;f=UA(a,g)|0;while(1){if(!f)break;b=c[h>>2]|0;d=c[b+180>>2]|0;b=(c[b+184>>2]<<2)+8|0;if(!d)b=IK(b)|0;else b=KK(d,b)|0;d=c[h>>2]|0;c[d+180>>2]=b;d=d+184|0;e=c[d>>2]|0;c[d>>2]=e+1;c[b+(e<<2)>>2]=f;e=c[h>>2]|0;c[(c[e+180>>2]|0)+(c[e+184>>2]<<2)>>2]=0;e=f+-48|0;d=c[(c[((c[f>>2]&3|0)==2?f:e)+40>>2]|0)+16>>2]|0;b=c[d+172>>2]|0;d=(c[d+176>>2]<<2)+8|0;if(!b)b=IK(d)|0;else b=KK(b,d)|0;c[(c[(c[((c[f>>2]&3|0)==2?f:e)+40>>2]|0)+16>>2]|0)+172>>2]=b;i=c[(c[((c[f>>2]&3|0)==2?f:e)+40>>2]|0)+16>>2]|0;b=c[i+172>>2]|0;i=i+176|0;d=c[i>>2]|0;c[i>>2]=d+1;c[b+(d<<2)>>2]=f;e=c[(c[((c[f>>2]&3|0)==2?f:e)+40>>2]|0)+16>>2]|0;c[(c[e+172>>2]|0)+(c[e+176>>2]<<2)>>2]=0;f=WA(a,f)|0}g=hC(a,g)|0}return}function Uj(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;n=a+16|0;p=c[n>>2]|0;b[p+236>>1]=32767;b[p+238>>1]=-1;a:do if((f|0)>1){h=HK((f<<2)+4|0)|0;g=f+1|0;f=1;while(1){if((f|0)==(g|0)){m=h;o=h;break a}c[h+(f<<2)>>2]=32767;f=f+1|0}}else{m=0;o=0}while(0);p=(m|0)!=0;h=gC(a)|0;while(1){if(!h)break;i=c[(c[(c[(Vj(h)|0)+16>>2]|0)+148>>2]|0)+16>>2]|0;j=c[i+232>>2]|0;k=c[h+16>>2]|0;c[k+232>>2]=j;f=c[n>>2]|0;g=f+238|0;l=j&65535;if((b[g>>1]|0)<(j|0))b[g>>1]=l;f=f+236|0;if((b[f>>1]|0)>(j|0))b[f>>1]=l;if(p){l=c[i+128>>2]|0;c[k+128>>2]=l;l=m+(l<<2)|0;k=c[l>>2]|0;c[l>>2]=(k|0)<(j|0)?k:j}h=hC(a,h)|0}b:do if(!p){m=b[(c[n>>2]|0)+236>>1]|0;g=m<<16>>16;if(m<<16>>16>0){f=gC(a)|0;while(1){if(!f)break;m=(c[f+16>>2]|0)+232|0;c[m>>2]=(c[m>>2]|0)-g;f=hC(a,f)|0}f=c[n>>2]|0;n=f+236|0;b[n>>1]=(e[n>>1]|0)-g;f=f+238|0;b[f>>1]=(e[f>>1]|0)-g;f=0}else f=0}else{f=gC(a)|0;while(1){if(!f){f=1;break b}l=c[f+16>>2]|0;n=l+232|0;c[n>>2]=(c[n>>2]|0)-(c[m+(c[l+128>>2]<<2)>>2]|0);f=hC(a,f)|0}}while(0);Wj(a,f);i=gC(d)|0;while(1){if(!i)break;g=i+16|0;f=c[g>>2]|0;h=c[f+172>>2]|0;if(h){l6(h);f=c[g>>2]|0}f=c[f+180>>2]|0;if(f|0)l6(f);i=hC(d,i)|0}l6(c[(c[(gC(a)|0)+16>>2]|0)+112>>2]|0);f=gC(a)|0;while(1){if(!f)break;c[(c[f+16>>2]|0)+112>>2]=0;f=hC(a,f)|0}if(p)l6(o);return}function Vj(a){a=a|0;var b=0,d=0,e=0;b=a+16|0;d=(c[b>>2]|0)+152|0;e=c[d>>2]|0;if(e){if((e|0)!=(a|0)){e=Vj(e)|0;c[(c[b>>2]|0)+152>>2]=e;return e|0}}else c[d>>2]=a;return a|0}function Wj(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=a+16|0;e=1;while(1){f=c[j>>2]|0;if((e|0)>(c[f+180>>2]|0))break;Wj(c[(c[f+184>>2]|0)+(e<<2)>>2]|0,0);e=e+1|0}if((d|0)!=0|(c[f+200>>2]|0)!=0){b[f+236>>1]=32767;b[f+238>>1]=-1;e=0;i=gC(a)|0;while(1){d=c[j>>2]|0;if(!i)break;g=c[(c[i+16>>2]|0)+232>>2]|0;f=d+238|0;h=g&65535;if((b[f>>1]|0)<(g|0))b[f>>1]=h;d=d+236|0;if((b[d>>1]|0)>(g|0)){b[d>>1]=h;e=i}i=hC(a,i)|0}c[d+264>>2]=e}return}function Xj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=(c[b+16>>2]|0)+128|0;a:do if(!(c[e>>2]|0)){c[e>>2]=d;e=UA(a,b)|0;while(1){if(!e)break;Xj(a,c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,d);e=WA(a,e)|0}e=XA(a,b)|0;while(1){if(!e)break a;Xj(a,c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0,d);e=YA(a,e)|0}}while(0);return}function Yj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=qC(a,b,1)|0;b=f+16|0;c[(c[b>>2]|0)+176>>2]=0;e=HK(20)|0;d=c[b>>2]|0;c[d+172>>2]=e;c[d+184>>2]=0;d=HK(20)|0;b=c[b>>2]|0;c[b+180>>2]=d;d=c[46789]|0;e=b+168|0;if(!d){c[e>>2]=0;c[(c[a+16>>2]|0)+192>>2]=f}else{c[e>>2]=d;c[(c[d+16>>2]|0)+164>>2]=f}c[46789]=f;c[b+164>>2]=0;return f|0}function Zj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=d+16|0;e=c[h>>2]|0;f=e+157|0;if(!(a[f>>0]|0)){a[f>>0]=1;a[e+158>>0]=1;d=UA(b,d)|0;while(1){if(!d)break;e=WA(b,d)|0;f=c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0;g=c[f+16>>2]|0;if(a[g+158>>0]|0){_j(b,d);d=e;continue}if(a[g+157>>0]|0){d=e;continue}Zj(b,f);d=e}a[(c[h>>2]|0)+158>>0]=0}return}function _j(a,b){a=a|0;b=b|0;var d=0,f=0,g=0;d=c[b>>2]&3;g=b+-48|0;f=b+48|0;d=fB(a,c[((d|0)==2?b:g)+40>>2]|0,c[((d|0)==3?b:f)+40>>2]|0,0,0)|0;if(!d){d=c[b>>2]&3;d=fB(a,c[((d|0)==2?b:g)+40>>2]|0,c[((d|0)==3?b:f)+40>>2]|0,0,1)|0}g=c[b+16>>2]|0;$j(d,e[g+170>>1]|0,c[g+156>>2]|0);tC(a,b)|0;return}function $j(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0;a=c[a+16>>2]|0;g=a+170|0;h=e[g>>1]|0;b[g>>1]=(h|0)>(d|0)?h:d;d=a+156|0;c[d>>2]=(c[d>>2]|0)+f;return}function ak(a){a=a|0;return (cP(NA(a,87534)|0,0)|0)&255|0}function bk(b){b=b|0;var d=0,e=0;d=c[47258]|0;if((((d|0)!=0?(e=OA(b,d)|0,(e|0)!=0):0)?(a[e>>0]|0)!=0:0)?(bP(e)|0)<<24>>24==0:0)b=1;else b=0;return b|0}function ck(a){a=a|0;var b=0,d=0;d=c[a>>2]&3;b=c[(c[(c[((d|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0;a=c[(c[(c[((d|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0;if((b|0)==(a|0))return 1;else{d=fk(b,a)|0;return ((d|0)==(b|0)|(d|0)==(a|0))&1|0}return 0}function dk(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l+16|0;h=j;g=fB(a,b,d,0,0)|0;if(!g){g=fB(a,d,b,0,0)|0;if(!g){g=fB(a,b,d,0,1)|0;if(!g){b=HB(b)|0;f=HB(d)|0;c[h>>2]=b;c[h+4>>2]=f;dA(1,87551,h)|0}else i=4}else i=4}else i=4;if((i|0)==4){i=c[f+16>>2]|0;$j(g,e[i+170>>1]|0,c[i+156>>2]|0)}l=j;return}function ek(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+112|0;j=m;i=m+4|0;h=XA(a,d)|0;while(1){if(!h){k=6;break}n=UA(a,c[((c[h>>2]&3|0)==3?h:h+48|0)+40>>2]|0)|0;if(n|0?(c[((c[n>>2]&3|0)==2?n:n+-48|0)+40>>2]|0)==(f|0):0)break;h=YA(a,h)|0}if((k|0)==6){n=c[46790]|0;c[46790]=n+1;c[j>>2]=n;i2(i,87542,j)|0;i=Yj(a,i)|0;n=fB(a,i,d,0,1)|0;i=fB(a,i,f,0,1)|0;f=c[g+16>>2]|0;k=f+156|0;n=(c[n+16>>2]|0)+156|0;c[n>>2]=(c[n>>2]|0)+((c[k>>2]|0)*1e3|0);n=c[i+16>>2]|0;j=n+170|0;b[j>>1]=b[(c[((e[j>>1]|0)>(e[f+170>>1]|0)?i:g)+16>>2]|0)+170>>1]|0;n=n+156|0;c[n>>2]=(c[n>>2]|0)+(c[k>>2]|0)}l=m;return}function fk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;a:while(1){e=a+16|0;while(1){if((a|0)==(b|0))break a;f=c[e>>2]|0;d=c[b+16>>2]|0;if((c[f+204>>2]|0)>=(c[d+204>>2]|0))break;b=c[d+200>>2]|0}a=c[f+200>>2]|0}return a|0}function gk(a){a=a|0;return (gC(a)|0)==0|0}function hk(a,b){a=a|0;b=b|0;c[(c[a+16>>2]|0)+200>>2]=b;Ij(b,a);Hj(b,a);return}function ik(b){b=b|0;var c=0;b=NA(b,87443)|0;if((b|0)!=0?(a[b>>0]|0)!=0:0)if(f2(b,87453)|0)if(f2(b,87457)|0)if(f2(b,87464)|0)if(f2(b,87468)|0)if(!(f2(b,87448)|0))b=1;else c=8;else b=5;else b=4;else b=3;else b=2;else c=8;if((c|0)==8)b=6;return b|0}function jk(a){a=a|0;var b=0,c=0;c=gC(a)|0;a:do if(!c)b=0;else{b=Vj(c)|0;while(1){c=hC(a,c)|0;if(!c)break a;kk(b,c)|0}}while(0);return b|0}function kk(a,b){a=a|0;b=b|0;if(b){a=Vj(a)|0;c[(c[(Vj(b)|0)+16>>2]|0)+152>>2]=a}return a|0}function lk(a,b,d){a=a|0;b=b|0;d=d|0;RC(b,87502,c[d>>2]|0,1)|0;return}function mk(a,b,d){a=a|0;b=b|0;d=d|0;RC(b,87669,c[d+4>>2]|0,1)|0;return}function nk(a,b,d){a=a|0;b=b|0;d=d|0;RC(b,87654,c[d+8>>2]|0,1)|0;return}function ok(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+240|0;m=p+120|0;n=p;c[47262]=DA(b,2,87684,0)|0;k=DA(b,2,87693,0)|0;c[47263]=k;a:do if((k|0)!=0|(c[47262]|0)!=0){k=gC(b)|0;while(1){if(!k)break a;j=0;d=0;i=ZA(b,k)|0;while(1){if(!i){f=0;break}e=c[i>>2]|0;g=e&3;f=c[((g|0)==2?i:i+-48|0)+40>>2]|0;h=i+48|0;b:do if((f|0)!=(c[((g|0)==3?i:h)+40>>2]|0)){g=c[47262]|0;do if((f|0)==(k|0)&(g|0)!=0){f=OA(i,g)|0;if(!(a[f>>0]|0)){e=c[i>>2]|0;break}else{e=j;d=pk(m,d,k,i,f)|0;break b}}while(0);f=c[47263]|0;if((f|0?(c[((e&3|0)==3?i:h)+40>>2]|0)==(k|0):0)?(o=OA(i,f)|0,(a[o>>0]|0)!=0):0)e=pk(n,j,k,i,o)|0;else e=j}else e=j;while(0);j=e;i=_A(b,i,k)|0}while(1){if((f|0)>=(d|0)){e=0;break}e=m+(f*24|0)+4|0;if((c[m+(f*24|0)+8>>2]|0)>1)qk(k,e);e=c[e>>2]|0;if(e|0)l6(e);f=f+1|0}while(1){if((e|0)>=(j|0))break;d=n+(e*24|0)+4|0;if((c[n+(e*24|0)+8>>2]|0)>1)qk(k,d);d=c[d>>2]|0;if(d|0)l6(d);e=e+1|0}k=hC(b,k)|0}}while(0);l=p;return}function pk(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=l;l=l+16|0;n=s;p=s+12|0;q=s+8|0;r=0;while(1){m=b+(r*24|0)|0;if((r|0)>=(d|0)){o=10;break}j=c[m>>2]|0;if((a[j>>0]|0)==(a[g>>0]|0)?(f2(j,g)|0)==0:0){o=5;break}r=r+1|0}do if((o|0)==5){k=b+(r*24|0)+4|0;m=b+(r*24|0)+8|0;j=c[k>>2]|0;if(!j)j=IK((c[m>>2]<<2)+8|0)|0;else j=KK(j,(c[m>>2]<<2)+8|0)|0;c[k>>2]=j;n=c[m>>2]|0;o=n+1|0;c[m>>2]=o;c[j+(n<<2)>>2]=f;c[(c[k>>2]|0)+(o<<2)>>2]=0;o=13}else if((o|0)==10){j=b+(r*24|0)+4|0;k=b+(r*24|0)+8|0;if((d|0)>4){b=HB(e)|0;c[n>>2]=5;c[n+4>>2]=b;dA(1,87702,n)|0;break}else{c[k>>2]=0;t=HK(8)|0;c[j>>2]=t;n=c[k>>2]|0;o=n+1|0;c[k>>2]=o;c[t+(n<<2)>>2]=f;c[(c[j>>2]|0)+(o<<2)>>2]=0;c[m>>2]=g;c[b+(r*24|0)+12>>2]=0;h[b+(r*24|0)+16>>3]=0.0;d=d+1|0;o=13;break}}while(0);if((o|0)==13){FH(f,p,q);j=(c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0)==(e|0)?c[q>>2]|0:c[p>>2]|0;if(j){q=b+(r*24|0)+12|0;t=c[q>>2]|0;c[q>>2]=t+1;if(!t)i=+JH(f,j);else i=0.0;h[b+(r*24|0)+16>>3]=i}}l=s;return d|0}function qk(b,d){b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0,j=0,k=0.0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0;x=l;l=l+80|0;t=x+68|0;u=x+64|0;s=x;v=d+4|0;m=c[v>>2]|0;w=b+16|0;n=c[w>>2]|0;q=+h[n+16>>3];r=+h[n+24>>3];j=0;o=0.0;p=0.0;while(1){if((j|0)>=(m|0))break;f=c[(c[d>>2]|0)+(j<<2)>>2]|0;i=c[f>>2]&3;e=c[((i|0)==2?f:f+-48|0)+40>>2]|0;if((e|0)==(b|0))e=c[((i|0)==3?f:f+48|0)+40>>2]|0;i=c[e+16>>2]|0;y=+h[i+16>>3]-q;g=+h[i+24>>3]-r;k=+c2(y,g);j=j+1|0;o=o+y/k;p=p+g/k}k=+c2(o,p);g=+h[n+88>>3]+ +h[n+96>>3];y=+h[n+80>>3];n=g>y+ +(c[(c[(uC(b)|0)+16>>2]|0)+252>>2]|0);e=c[w>>2]|0;if(n)g=+h[e+88>>3]+ +h[e+96>>3];else{g=+h[e+80>>3];g=g+ +(c[(c[(uC(b)|0)+16>>2]|0)+252>>2]|0);e=c[w>>2]|0}y=o/k*g+ +h[e+16>>3];g=p/k*g+ +h[e+24>>3];h[s>>3]=q;m=s+8|0;h[m>>3]=r;h[s+16>>3]=(q*2.0+y)/3.0;h[s+24>>3]=(r*2.0+g)/3.0;h[s+32>>3]=(q+y*2.0)/3.0;h[s+40>>3]=(r+g*2.0)/3.0;h[s+48>>3]=y;h[s+56>>3]=g;_N(b,s);n=c[w>>2]|0;g=+h[s>>3]-+h[n+16>>3];k=+h[m>>3]-+h[n+24>>3];g=+(~~(g+(g>=0.0?.5:-.5))|0);k=+(~~(k+(k>=0.0?.5:-.5))|0);y=+h[n+88>>3];s=~~((y+g)*256.0/(y+ +h[n+96>>3]))&255;n=0;while(1){if((n|0)>=(c[v>>2]|0))break;m=c[(c[d>>2]|0)+(n<<2)>>2]|0;FH(m,t,u);while(1){if(!m)break;else f=m;while(1){if(!f){i=m;break}e=c[f>>2]|0;i=f+-48|0;j=f+16|0;if((c[((e&3|0)==2?f:i)+40>>2]|0)==(b|0)){e=c[j>>2]|0;h[e+56>>3]=g;h[e+64>>3]=k;h[e+72>>3]=0.0;c[e+80>>2]=0;a[e+84>>0]=1;a[e+85>>0]=0;a[e+86>>0]=0;a[e+87>>0]=0;a[e+88>>0]=s;a[e+89>>0]=0;c[e+92>>2]=0;e=c[f>>2]|0}if((c[((e&3|0)==3?f:f+48|0)+40>>2]|0)==(b|0)){e=c[j>>2]|0;h[e+16>>3]=g;h[e+24>>3]=k;h[e+32>>3]=0.0;c[e+40>>2]=0;a[e+44>>0]=1;a[e+45>>0]=0;a[e+46>>0]=0;a[e+47>>0]=0;a[e+48>>0]=s;a[e+49>>0]=0;c[e+52>>2]=0}if((a[(c[j>>2]|0)+112>>0]|0)!=1){f=0;continue}e=c[(c[((c[f>>2]&3|0)==2?f:i)+40>>2]|0)+16>>2]|0;if((a[e+156>>0]|0)!=1){f=0;continue}if((c[e+184>>2]|0)!=1){f=0;continue}f=c[c[e+180>>2]>>2]|0}while(1){if(!i)break;e=c[i>>2]|0;j=i+16|0;if((c[((e&3|0)==2?i:i+-48|0)+40>>2]|0)==(b|0)){e=c[j>>2]|0;h[e+56>>3]=g;h[e+64>>3]=k;h[e+72>>3]=0.0;c[e+80>>2]=0;a[e+84>>0]=1;a[e+85>>0]=0;a[e+86>>0]=0;a[e+87>>0]=0;a[e+88>>0]=s;a[e+89>>0]=0;c[e+92>>2]=0;e=c[i>>2]|0}f=i+48|0;if((c[((e&3|0)==3?i:f)+40>>2]|0)==(b|0)){e=c[j>>2]|0;h[e+16>>3]=g;h[e+24>>3]=k;h[e+32>>3]=0.0;c[e+40>>2]=0;a[e+44>>0]=1;a[e+45>>0]=0;a[e+46>>0]=0;a[e+47>>0]=0;a[e+48>>0]=s;a[e+49>>0]=0;c[e+52>>2]=0}if((a[(c[j>>2]|0)+112>>0]|0)!=1){i=0;continue}e=c[(c[((c[i>>2]&3|0)==3?i:f)+40>>2]|0)+16>>2]|0;if((a[e+156>>0]|0)!=1){i=0;continue}if((c[e+176>>2]|0)!=1){i=0;continue}i=c[c[e+172>>2]>>2]|0}m=c[(c[m+16>>2]|0)+172>>2]|0}n=n+1|0}a[(c[w>>2]|0)+145>>0]=1;l=x;return}function rk(a){a=a|0;var b=0,d=0,e=0;fh(a);b=c[a>>2]&3;d=a+-48|0;e=a+48|0;b=ah(c[((b|0)==2?a:d)+40>>2]|0,c[((b|0)==3?a:e)+40>>2]|0)|0;if(!b){b=c[a>>2]&3;kh(c[((b|0)==2?a:d)+40>>2]|0,c[((b|0)==3?a:e)+40>>2]|0,a)|0}else sh(a,b);return}function sk(b){b=b|0;var d=0,e=0,f=0,g=0;f=b+16|0;e=0;while(1){b=c[f>>2]|0;if((e|0)>=(c[b+220>>2]|0))break;d=c[(c[b+216>>2]|0)+(e<<2)>>2]|0;c[b+192>>2]=d;b=d;d=b;while(1){if(!d)break;g=c[d+16>>2]|0;a[g+157>>0]=0;d=c[g+164>>2]|0}while(1){if(!b)break;tk(b);b=c[(c[b+16>>2]|0)+164>>2]|0}e=e+1|0}return}function tk(b){b=b|0;var d=0,e=0,f=0,g=0;g=b+16|0;d=c[g>>2]|0;b=d+157|0;if(!(a[b>>0]|0)){a[b>>0]=1;a[d+158>>0]=1;b=0;while(1){f=c[(c[d+180>>2]|0)+(b<<2)>>2]|0;if(!f)break;d=c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0;e=c[d+16>>2]|0;if(!(a[e+158>>0]|0)){if(!(a[e+157>>0]|0))tk(d)}else{rk(f);b=b+-1|0}b=b+1|0;d=c[g>>2]|0}a[d+158>>0]=0}return}function uk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;e=gC(a)|0;b=0;while(1){if(!e)break;d=UA(a,e)|0;while(1){if(!d)break;g=c[d>>2]&3;h=c[(c[(c[((g|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;g=c[(c[(c[((g|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;f=h-g|0;d=WA(a,d)|0;b=((h|0)==(g|0)?0:((f|0)>-1?f:0-f|0)+-1|0)+b|0}e=hC(a,e)|0}return b|0}function vk(b){b=b|0;var d=0,e=0,f=0,g=0;e=gC(b)|0;while(1){if(!e)break;g=c[e+16>>2]|0;f=c[g+176>>2]|0;g=g+172|0;d=0;while(1){if((d|0)>=(f|0))break;a[(c[(c[(c[g>>2]|0)+(d<<2)>>2]|0)+16>>2]|0)+112>>0]=0;d=d+1|0}e=hC(b,e)|0}return}function wk(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0.0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+16|0;p=r;k=c[d+24>>2]|0;xk(b);m=(k|0)==-1;n=d+8|0;j=m^1;o=c[15715]|0;g=1797693134862315708145274.0e284;i=0;while(1){if(!(m|(i|0)<(k|0)))break;e=gC(b)|0;while(1){if(!e)break;c[(c[e+16>>2]|0)+232>>2]=0;e=hC(b,e)|0}tj(b);f=+yk(b);h[n>>3]=f;if(a[195234]|0){h[p>>3]=f;z4(o,87754,p)|0;f=+h[n>>3]}if(!(!(f<=+h[d>>3])&(!(g<=f)|j))){q=9;break}zk(b);g=f;i=i+1|0}if((q|0)==9){q=d+20|0;c[d+16>>2]=c[q>>2];c[q>>2]=i}tj(b);Ak(b);Bk();h[n>>3]=+yk(b);l=r;return}function xk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0;c[46794]=IK((qB(a)|0)*24|0)|0;c[46793]=0;b=gC(a)|0;while(1){if(!b)break;c[(c[b+16>>2]|0)+120>>2]=-1;b=hC(a,b)|0}l=gC(a)|0;while(1){if(!l)break;f=l+16|0;do if(!(c[(c[f>>2]|0)+216>>2]|0)){j=HK(4)|0;i=c[46794]|0;k=c[46793]|0;c[i+(k*24|0)>>2]=j;c[j>>2]=l;c[i+(k*24|0)+4>>2]=1;j=c[f>>2]|0;h[i+(k*24|0)+8>>3]=+h[j+32>>3];h[i+(k*24|0)+16>>3]=+h[j+40>>3];c[j+120>>2]=k;c[46793]=k+1}else{g=dP(l)|0;i=g+16|0;b=c[i>>2]|0;d=c[b+120>>2]|0;if((d|0)>-1){j=c[46794]|0;i=c[j+(d*24|0)>>2]|0;g=j+(d*24|0)+4|0;k=c[g>>2]|0;c[g>>2]=k+1;c[i+(k<<2)>>2]=l;k=c[f>>2]|0;i=j+(d*24|0)+8|0;h[i>>3]=+h[k+32>>3]+ +h[i>>3];j=j+(d*24|0)+16|0;m=+h[j>>3];n=+h[k+40>>3];h[j>>3]=m<n?n:m;c[k+120>>2]=d;break}d=HK(c[b+216>>2]<<2)|0;j=c[46794]|0;k=c[46793]|0;b=j+(k*24|0)|0;c[b>>2]=d;c[d>>2]=g;d=j+(k*24|0)+4|0;e=j+(k*24|0)+8|0;if((g|0)==(l|0)){c[d>>2]=1;d=c[i>>2]|0;h[e>>3]=+h[d+32>>3];e=c[f>>2]|0;b=e}else{c[(c[b>>2]|0)+4>>2]=l;c[d>>2]=2;d=c[i>>2]|0;i=c[f>>2]|0;h[e>>3]=+h[d+32>>3]+ +h[i+32>>3];b=c[(+h[d+40>>3]<+h[i+40>>3]?l:g)+16>>2]|0;e=i}h[j+(k*24|0)+16>>3]=+h[b+40>>3];c[d+120>>2]=k;c[e+120>>2]=k;c[46793]=k+1}while(0);l=hC(a,l)|0}return}function yk(a){a=a|0;var b=0.0,d=0.0,e=0,f=0,g=0,i=0.0,j=0.0;Ak(a);g=c[46791]|0;e=c[a+16>>2]|0;b=+(S(c[e+252>>2]|0,g+-1|0)|0);f=c[46792]|0;e=e+248|0;a=0;d=0.0;while(1){if((a|0)>=(g|0))break;i=+h[f+(a*40|0)+24>>3]+ +(S(c[e>>2]|0,c[f+(a*40|0)+16>>2]|0)|0);j=b+ +h[f+(a*40|0)+32>>3];a=a+1|0;b=j;d=d<i?i:d}return +(d/b)}function zk(a){a=a|0;var b=0;c[46795]=HK((qB(a)|0)<<2)|0;b=0;while(1){if((b|0)>=(qB(a)|0))break;c[(c[46795]|0)+(b<<2)>>2]=b;b=b+1|0}Ak(a);Ck(a);Dk(a);return}function Ak(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0,j=0.0,k=0,l=0,m=0;c[46791]=0;b=c[46792]|0;if(b|0){e=0;while(1){if((e|0)>=(c[46793]|0))break;d=c[b+(e*40|0)+4>>2]|0;if(d){l6(d);b=c[46792]|0}d=c[b+(e*40|0)+8>>2]|0;if(d){l6(d);b=c[46792]|0}e=e+1|0}l6(b)}c[46792]=HK((c[46793]|0)*40|0)|0;b=0;while(1){d=c[46793]|0;if((b|0)>=(d|0))break;l=HK(d<<2)|0;c[(c[46792]|0)+(b*40|0)+4>>2]=l;l=HK(c[46793]<<2)|0;m=c[46792]|0;c[m+(b*40|0)+8>>2]=l;c[m+(b*40|0)>>2]=b;c[m+(b*40|0)+12>>2]=0;c[m+(b*40|0)+16>>2]=0;m=m+(b*40|0)+24|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;b=b+1|0}e=gC(a)|0;while(1){if(!e)break;d=UA(a,e)|0;while(1){if(!d)break;i=c[d>>2]|0;f=d+-48|0;g=c[46792]|0;b=c[(c[(c[((i&3|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;while(1){b=b+1|0;if((b|0)>=(c[(c[(c[((i&3|0)==2?d:f)+40>>2]|0)+16>>2]|0)+232>>2]|0))break;i=g+(b*40|0)+16|0;c[i>>2]=(c[i>>2]|0)+1;i=c[d>>2]|0}d=WA(a,d)|0}e=hC(a,e)|0}k=c[46793]|0;l=c[46794]|0;m=c[46792]|0;d=a+16|0;b=0;while(1){if((b|0)>=(k|0))break;e=l+(b*24|0)|0;f=(c[c[e>>2]>>2]|0)+16|0;g=c[(c[f>>2]|0)+232>>2]|0;if((g|0)>=(c[46791]|0))c[46791]=g+1;i=m+(g*40|0)+24|0;j=+h[i>>3];h[i>>3]=j+(+h[l+(b*24|0)+8>>3]*72.0+(j>0.0?+(c[(c[d>>2]|0)+248>>2]|0):0.0));i=m+(g*40|0)+32|0;j=+h[l+(b*24|0)+16>>3]*72.0;if(+h[i>>3]<j)h[i>>3]=j;c[(c[m+(g*40|0)+4>>2]|0)+(c[m+(g*40|0)+12>>2]<<2)>>2]=e;a=m+((c[(c[f>>2]|0)+232>>2]|0)*40|0)+12|0;c[a>>2]=(c[a>>2]|0)+1;b=b+1|0}return}function Bk(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=c[46791]|0;l=c[46792]|0;j=0;b=0;a=0;while(1){if((j|0)>=(k|0))break;i=c[l+(j*40|0)+12>>2]|0;d=l+(j*40|0)|0;e=(b|0)==0;a:do if(i)if(!e){if((c[d>>2]|0)>(a|0)){f=l+(j*40|0)+4|0;d=0;while(1){if((d|0)>=(i|0))break a;g=c[(c[f>>2]|0)+(d<<2)>>2]|0;h=c[g+4>>2]|0;e=0;while(1){if((e|0)>=(h|0))break;m=(c[(c[(c[g>>2]|0)+(e<<2)>>2]|0)+16>>2]|0)+232|0;c[m>>2]=(c[m>>2]|0)-b;e=e+1|0}d=d+1|0}}}else b=0;else{if(e)a=c[d>>2]|0;b=b+1|0}while(0);j=j+1|0}return}function Ck(a){a=a|0;var b=0;b=c[46795]|0;k3(b,qB(a)|0,4,63);return}function Dk(b){b=b|0;var d=0.0,e=0,f=0.0,g=0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0;k=c[46791]|0;l=c[46792]|0;i=c[46795]|0;j=0;while(1){if((j|0)>=(k|0)){e=0;f=0.0;break}e=c[i+(j<<2)>>2]|0;g=j+1|0;if((c[l+(e*40|0)+12>>2]|0)<2)j=g;else{m=4;break}}if((m|0)==4)if((k|0)>(g|0))f=+h[l+((c[i+(g<<2)>>2]|0)*40|0)+24>>3];else f=0.0;a:do if((j|0)!=(k|0)){k3(c[l+(e*40|0)+4>>2]|0,c[l+(e*40|0)+12>>2]|0,4,64);g=c[46792]|0;d=+h[g+(e*40|0)+24>>3];if(!(!(f<=d*.25)?!(f>=d*3.0*.25):0))f=d*.5;t=c[g+(e*40|0)+12>>2]|0;s=b+16|0;p=0;q=0;d=0.0;i=0;r=0;while(1){if((r|0)>=(i+t|0))break a;do if(!(c[(c[g+(e*40|0)+8>>2]|0)+(r<<2)>>2]|0)){m=c[(c[g+(e*40|0)+4>>2]|0)+(r<<2)>>2]|0;b=m+8|0;n=+h[b>>3]*72.0;o=d>0.0?+(c[(c[s>>2]|0)+248>>2]|0):0.0;j=(q|0)!=0;if(!(j&!(d+n+o<=f))){k=j?p:m;j=j?q:1;d=d+(n+o);break}k=p+4|0;l=m+4|0;j=0;while(1){if((j|0)<(c[k>>2]|0))g=0;else break;while(1){if((g|0)>=(c[l>>2]|0))break;a[(c[(kh(c[(c[p>>2]|0)+(j<<2)>>2]|0,c[(c[m>>2]|0)+(g<<2)>>2]|0,0)|0)+16>>2]|0)+112>>0]=1;g=g+1|0}j=j+1|0}g=c[46792]|0;c[(c[g+(e*40|0)+8>>2]|0)+(r<<2)>>2]=1;k=g+(e*40|0)+12|0;c[k>>2]=(c[k>>2]|0)+-1;k=g+(e*40|0)+16|0;c[k>>2]=(c[k>>2]|0)+1;k=g+(e*40|0)+24|0;h[k>>3]=+h[k>>3]-(+h[b>>3]*72.0+ +(c[(c[s>>2]|0)+248>>2]|0));k=p;j=q}else{k=p;j=q;i=i+1|0}while(0);p=k;q=j;r=r+1|0}}while(0);return}function Ek(a,b){a=a|0;b=b|0;a=Fk(c[a>>2]|0)|0;b=Fk(c[b>>2]|0)|0;return ((b|0)<(a|0)&1)-((b|0)>(a|0)&1)|0}function Fk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=a+4|0;d=0;b=0;while(1){if((d|0)>=(c[f>>2]|0))break;e=c[(c[a>>2]|0)+(d<<2)>>2]|0;g=uC(e)|0;e=UA(g,e)|0;while(1){if(!e)break;e=WA(g,e)|0;b=b+1|0}d=d+1|0}return b|0}function Gk(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0;f=c[46792]|0;e=+h[f+((c[b>>2]|0)*40|0)+24>>3];d=+h[f+((c[a>>2]|0)*40|0)+24>>3];return (e>d&1)-(e<d&1)|0}function Hk(a){a=a|0;var b=0;b=gC(a)|0;while(1){if(!b)break;c[(c[b+16>>2]|0)+216>>2]=0;b=hC(a,b)|0}return}function Ik(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=l;l=l+32|0;f=g+16|0;e=g+8|0;d=g+20|0;c[d>>2]=5;a=NA(a,99906)|0;if(a|0?(c[e>>2]=g,c[e+4>>2]=d,(q4(a,87769,e)|0)>=1):0)dA(0,87776,f)|0;c[b+24>>2]=0;c[b+32>>2]=0;l=g;return 0}function Jk(b){b=b|0;var d=0,e=0;d=c[47258]|0;if((((d|0)!=0?(e=OA(b,d)|0,(e|0)!=0):0)?(a[e>>0]|0)!=0:0)?(bP(e)|0)<<24>>24==0:0)b=1;else b=0;return b|0}function Kk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;dl(a);b=gC(a)|0;while(1){if(!b)break;d=UA(a,b)|0;while(1){if(!d)break;do if(((c[(c[d+16>>2]|0)+172>>2]|0)==0?(Jk(d)|0)==0:0)?(e=d+48|0,f=dP(c[((c[d>>2]&3|0)==3?d:e)+40>>2]|0)|0,g=d+-48|0,h=dP(c[((c[d>>2]&3|0)==2?d:g)+40>>2]|0)|0,(f|0)!=(h|0)):0){if((c[(c[f+16>>2]|0)+212>>2]|0)==0?(c[(c[h+16>>2]|0)+212>>2]|0)==0:0){i=ah(f,h)|0;if(!i){kh(f,h,d)|0;break}else{sh(d,i);break}}i=c[d>>2]&3;Lk(a,c[((i|0)==3?d:e)+40>>2]|0,c[((i|0)==2?d:g)+40>>2]|0,d)}while(0);d=WA(a,d)|0}b=hC(a,b)|0}return}function Lk(b,d,f,g){b=b|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;j=c[g>>2]&3;h=c[(c[((j|0)==3?g:g+48|0)+40>>2]|0)+16>>2]|0;i=c[h+212>>2]|0;if(!i)k=0;else k=(c[h+232>>2]|0)-(c[(c[(c[(c[i+16>>2]|0)+264>>2]|0)+16>>2]|0)+232>>2]|0)|0;h=c[(c[((j|0)==2?g:g+-48|0)+40>>2]|0)+16>>2]|0;i=c[h+212>>2]|0;if(!i)h=0;else h=(c[h+232>>2]|0)-(c[(c[(c[(c[i+16>>2]|0)+264>>2]|0)+16>>2]|0)+232>>2]|0)|0;j=g+16|0;k=k-h+(e[(c[j>>2]|0)+170>>1]|0)|0;b=ph(b)|0;a[(c[b+16>>2]|0)+156>>0]=2;i=dP(d)|0;d=dP(f)|0;f=Wi(b,i,(k|0)>0?0.0:+(0-k|0),(c[(c[j>>2]|0)+156>>2]|0)*10|0)|0;c[(c[(Wi(b,d,+(((k|0)>0?k:0)|0),c[(c[j>>2]|0)+156>>2]|0)|0)+16>>2]|0)+116>>2]=g;c[(c[f+16>>2]|0)+116>>2]=g;return}function Mk(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;k=c[d>>2]&3;j=(k|0)==3?d:d+48|0;k=(k|0)==2?d:d+-48|0;k=c[(c[(c[((c[(c[(c[j+40>>2]|0)+16>>2]|0)+232>>2]|0)>(c[(c[(c[k+40>>2]|0)+16>>2]|0)+232>>2]|0)?j:k)+40>>2]|0)+16>>2]|0)+232>>2]|0;j=d+16|0;h=c[j>>2]|0;d=h+172|0;if(c[d>>2]|0)Aa(87865,87887,148,87896);c[d>>2]=f;i=(g|0)==0;d=f;while(1){g=c[d+16>>2]|0;if(!i){f=g+168|0;b[f>>1]=(e[f>>1]|0)+(e[h+168>>1]|0)}f=g+154|0;b[f>>1]=(e[f>>1]|0)+(e[h+154>>1]|0);g=g+156|0;c[g>>2]=(c[g>>2]|0)+(c[h+156>>2]|0);g=d+-48|0;h=c[((c[d>>2]&3|0)==2?d:g)+40>>2]|0;if((c[(c[h+16>>2]|0)+232>>2]|0)==(k|0))break;Nk(a,h);d=c[c[(c[(c[((c[d>>2]&3|0)==2?d:g)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0;if(!d)break;h=c[j>>2]|0}return}function Nk(a,b){a=a|0;b=b|0;var d=0.0;d=+((c[(c[a+16>>2]|0)+248>>2]|0)/2|0|0);b=c[b+16>>2]|0;a=b+88|0;h[a>>3]=+h[a>>3]+d;b=b+96|0;h[b>>3]=d+ +h[b>>3];return}function Ok(a,b){a=a|0;b=b|0;var d=0,e=0;if(((((a|0)!=0&(b|0)!=0?(e=c[a>>2]&3,d=c[b>>2]&3,(c[((e|0)==3?a:a+48|0)+40>>2]|0)==(c[((d|0)==3?b:b+48|0)+40>>2]|0)):0)?(c[((e|0)==2?a:a+-48|0)+40>>2]|0)==(c[((d|0)==2?b:b+-48|0)+40>>2]|0):0)?(c[(c[a+16>>2]|0)+96>>2]|0)==(c[(c[b+16>>2]|0)+96>>2]|0):0)?(rj(a,b)|0)!=0:0)a=1;else a=0;return a|0}function Pk(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=b+16|0;d=c[t>>2]|0;c[d+192>>2]=0;c[d+232>>2]=0;dl(b);d=1;while(1){e=c[t>>2]|0;if((d|0)>(c[e+180>>2]|0))break;el(b,c[(c[e+184>>2]|0)+(d<<2)>>2]|0);d=d+1|0}h=gC(b)|0;while(1){if(!h)break;g=UA(b,h)|0;while(1){if(!g)break;d=c[g>>2]|0;e=(c[(c[((d&3|0)==2?g:g+-48|0)+40>>2]|0)+16>>2]|0)+160|0;f=a[e>>0]|0;if(f<<24>>24<3){a[e>>0]=f+1<<24>>24;d=c[g>>2]|0}d=(c[(c[((d&3|0)==3?g:g+48|0)+40>>2]|0)+16>>2]|0)+160|0;e=a[d>>0]|0;if(e<<24>>24<3)a[d>>0]=e+1<<24>>24;g=WA(b,g)|0}h=hC(b,h)|0}m=gC(b)|0;while(1){if(!m)break;if((c[(c[m+16>>2]|0)+212>>2]|0)==0?(m|0)==(dP(m)|0):0){lh(b,m);l=(c[t>>2]|0)+232|0;c[l>>2]=(c[l>>2]|0)+1}d=0;l=UA(b,m)|0;while(1){if(!l)break;i=l+16|0;e=c[i>>2]|0;a:do if(!(c[e+172>>2]|0)){j=l+48|0;k=l+-48|0;f=d+16|0;if(Qk(l)|0){if(!(Ok(d,l)|0)){Rk(b,l);d=l;break}e=c[(c[f>>2]|0)+172>>2]|0;if(e|0){Mk(b,l,e,0);gh(l);break}i=c[l>>2]&3;if((c[(c[(c[((i|0)==3?l:j)+40>>2]|0)+16>>2]|0)+232>>2]|0)!=(c[(c[(c[((i|0)==2?l:k)+40>>2]|0)+16>>2]|0)+232>>2]|0))break;sh(l,d);gh(l);break}if((d|0?(s=c[l>>2]&3,n=c[((s|0)==3?l:j)+40>>2]|0,o=c[d>>2]&3,(n|0)==(c[((o|0)==3?d:d+48|0)+40>>2]|0)):0)?(p=c[((s|0)==2?l:k)+40>>2]|0,(p|0)==(c[((o|0)==2?d:d+-48|0)+40>>2]|0)):0){if((c[(c[n+16>>2]|0)+232>>2]|0)==(c[(c[p+16>>2]|0)+232>>2]|0)){sh(l,d);gh(l);break}if(((c[e+96>>2]|0)==0?(c[(c[f>>2]|0)+96>>2]|0)==0:0)?rj(l,d)|0:0)if(!(a[195236]|0)){Mk(b,l,c[(c[f>>2]|0)+172>>2]|0,1);gh(l);break}else{a[(c[i>>2]|0)+112>>0]=6;break}}h=c[l>>2]&3;e=c[((h|0)==3?l:j)+40>>2]|0;if((e|0)==(c[((h|0)==2?l:k)+40>>2]|0)){gh(l);d=l;break}e=dP(e)|0;f=dP(c[((c[l>>2]&3|0)==2?l:k)+40>>2]|0)|0;h=c[l>>2]&3;if((c[((h|0)==3?l:j)+40>>2]|0)==(e|0)?(c[((h|0)==2?l:k)+40>>2]|0)==(f|0):0){g=c[(c[e+16>>2]|0)+232>>2]|0;h=c[(c[f+16>>2]|0)+232>>2]|0;if((g|0)==(h|0)){qh(b,l);d=l;break}if((h|0)>(g|0)){Sk(b,e,f,l);d=l;break}e=fB(b,f,e,0,0)|0;do if(e|0?(q=c[e>>2]&3,r=c[((q|0)==2?e:e+-48|0)+40>>2]|0,(r|0)!=(c[((c[l>>2]&3|0)==2?l:k)+40>>2]|0)):0){f=e+16|0;if(!(c[(c[f>>2]|0)+172>>2]|0))Sk(b,c[((q|0)==3?e:e+48|0)+40>>2]|0,r,e);if((c[(c[i>>2]|0)+96>>2]|0)==0?(c[(c[f>>2]|0)+96>>2]|0)==0:0){if(!(rj(l,e)|0))break;if(!(a[195236]|0)){gh(l);Mk(b,l,c[(c[f>>2]|0)+172>>2]|0,1);break a}else{a[(c[i>>2]|0)+112>>0]=6;a[(c[f>>2]|0)+153>>0]=1;break a}}}while(0);d=c[l>>2]&3;Sk(b,c[((d|0)==2?l:k)+40>>2]|0,c[((d|0)==3?l:j)+40>>2]|0,l);d=l}}else d=l;while(0);l=WA(b,l)|0}m=hC(b,m)|0}if((dg(b)|0)!=(b|0)){d=c[(c[t>>2]|0)+216>>2]|0;if(!d)d=IK(4)|0;else d=KK(d,4)|0;t=c[t>>2]|0;c[t+216>>2]=d;c[d>>2]=c[t+192>>2]}return}function Qk(b){b=b|0;var d=0;d=c[b>>2]&3;if((a[(c[(c[((d|0)==3?b:b+48|0)+40>>2]|0)+16>>2]|0)+159>>0]|0)==7)b=1;else b=(a[(c[(c[((d|0)==2?b:b+-48|0)+40>>2]|0)+16>>2]|0)+159>>0]|0)==7;return b&1|0}function Rk(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;f=Vk(c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0)|0;g=Vk(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)|0;i=(c[(c[f+16>>2]|0)+232>>2]|0)>(c[(c[g+16>>2]|0)+232>>2]|0);e=i?f:g;f=i?g:f;g=f+16|0;i=e+16|0;a:do if((c[(c[g>>2]|0)+212>>2]|0)!=(c[(c[i>>2]|0)+212>>2]|0)){h=ah(f,e)|0;if(h|0){Mk(b,d,h,1);break}if((c[(c[g>>2]|0)+232>>2]|0)!=(c[(c[i>>2]|0)+232>>2]|0)){Sk(b,f,e,d);e=(c[d+16>>2]|0)+172|0;while(1){e=c[e>>2]|0;if(!e)break a;f=e+-48|0;if((c[(c[(c[((c[e>>2]&3|0)==2?e:f)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(c[(c[i>>2]|0)+232>>2]|0))break a;a[(c[e+16>>2]|0)+112>>0]=5;e=c[(c[(c[((c[e>>2]&3|0)==2?e:f)+40>>2]|0)+16>>2]|0)+180>>2]|0}}}while(0);return}function Sk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=e+16|0;f=c[k>>2]|0;g=b+16|0;j=d+16|0;if(!(c[f+96>>2]|0))i=-1;else i=((c[(c[j>>2]|0)+232>>2]|0)+(c[(c[g>>2]|0)+232>>2]|0)|0)/2|0;if(c[f+172>>2]|0)Aa(87908,87887,89,87933);h=c[(c[g>>2]|0)+232>>2]|0;while(1){g=h+1|0;f=c[(c[j>>2]|0)+232>>2]|0;if((h|0)>=(f|0))break;if((g|0)<(f|0)){if((g|0)==(i|0))f=Tk(a,e)|0;else f=Uk(a)|0;c[(c[f+16>>2]|0)+232>>2]=g}else f=d;Fi(kh(b,f,e)|0);h=g;b=f}if(!(c[(c[k>>2]|0)+172>>2]|0))Aa(87944,87887,103,87933);else return}function Tk(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,g=0,i=0,j=0.0;i=d+16|0;g=c[(c[i>>2]|0)+96>>2]|0;e=+h[g+24>>3];f=+h[g+32>>3];g=ph(b)|0;d=g+16|0;c[(c[d>>2]|0)+104>>2]=c[(c[i>>2]|0)+96>>2];j=+(c[(c[(vC(g)|0)+16>>2]|0)+248>>2]|0);h[(c[d>>2]|0)+88>>3]=j;if(!(a[(c[i>>2]|0)+114>>0]|0)){b=(c[(c[(vC(b)|0)+16>>2]|0)+116>>2]&1|0)==0;i=c[d>>2]|0;h[i+80>>3]=b?f:e;h[i+96>>3]=b?e:f}return g|0}function Uk(a){a=a|0;var b=0;b=ph(a)|0;Nk(a,b);return b|0}function Vk(b){b=b|0;var d=0;d=c[b+16>>2]|0;if((a[d+159>>0]|0)==7)b=c[(c[(c[(c[d+212>>2]|0)+16>>2]|0)+268>>2]|0)+(c[d+232>>2]<<2)>>2]|0;else b=dP(b)|0;return b|0}function Wk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=dg(a)|0;h=gC(a)|0;while(1){if(!h)break;b=ZA(j,h)|0;i=0;while(1){if(!b)break;l=_A(j,b,h)|0;if(EC(a,b)|0){k=i;b=l;i=k;continue}k=(c[b>>2]&3|0)==2?b:b+-48|0;m=(Ok(i,k)|0)==0;e=c[k>>2]&3;b=c[((e|0)==3?k:k+48|0)+40>>2]|0;d=c[(c[b+16>>2]|0)+232>>2]|0;e=c[((e|0)==2?k:k+-48|0)+40>>2]|0;f=c[(c[e+16>>2]|0)+232>>2]|0;g=(d|0)==(f|0);if(!m){c[(c[k+16>>2]|0)+172>>2]=g?i:0;b=c[(c[i+16>>2]|0)+172>>2]|0;if(!b){m=i;b=l;i=m;continue}Mk(a,k,b,0);hh(k);m=i;b=l;i=m;continue}if(!g)if((f|0)>(d|0)){Xk(b,e,k);b=l;i=k;continue}else{Xk(e,b,k);b=l;i=k;continue}b=ch(b,e)|0;if(!b){qh(j,k);b=l;i=k;continue}if((k|0)==(b|0)){m=i;b=l;i=m;continue}hh(k);if(c[(c[k+16>>2]|0)+172>>2]|0){m=i;b=l;i=m;continue}sh(k,b);m=i;b=l;i=m}h=hC(a,h)|0}return}function Xk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=Yk(a)|0;e=Yk(b)|0;Zk(f,e,d,c[(c[d+16>>2]|0)+172>>2]|0,(f|0)==(a|0)&(e|0)==(b|0)?1:5);return}function Yk(b){b=b|0;var d=0,e=0,f=0;d=c[b+16>>2]|0;e=c[d+212>>2]|0;if((e|0)!=0?(f=c[e+16>>2]|0,(a[f+272>>0]|0)==0):0)b=c[(c[f+268>>2]|0)+(c[d+232>>2]<<2)>>2]|0;return b|0}function Zk(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=d+16|0;l=c[(c[n>>2]|0)+232>>2]|0;o=e+16|0;j=c[(c[o>>2]|0)+232>>2]|0;if((j|0)<=(l|0))Aa(87969,87997,81,88007);m=c[g>>2]&3;if(!((c[((m|0)==3?g:g+48|0)+40>>2]|0)==(d|0)?(c[((m|0)==2?g:g+-48|0)+40>>2]|0)==(e|0):0))i=5;a:do if((i|0)==5){i=f+16|0;if((b[(c[g+16>>2]|0)+168>>1]|0)>1){c[(c[i>>2]|0)+172>>2]=0;if(((j-l|0)==1?(k=ah(d,e)|0,k|0):0)?rj(f,k)|0:0){sh(f,k);if(a[(c[n>>2]|0)+156>>0]|0)break;if(a[(c[o>>2]|0)+156>>0]|0)break;gh(f);break}m=h&255;h=d;l=c[(c[n>>2]|0)+232>>2]|0;while(1){i=c[(c[o>>2]|0)+232>>2]|0;if((l|0)>=(i|0))break a;if((l|0)<(i+-1|0)){i=dg(d)|0;j=g+-48|0;i=_k(i,c[((c[g>>2]&3|0)==2?g:j)+40>>2]|0)|0;k=g}else{i=e;j=g+-48|0;k=g}a[(c[(kh(h,i,f)|0)+16>>2]|0)+112>>0]=m;n=(c[g+16>>2]|0)+168|0;b[n>>1]=(b[n>>1]|0)+-1<<16>>16;h=i;l=l+1|0;g=c[c[(c[(c[((c[k>>2]&3|0)==2?g:j)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}}do if((j-l|0)==1){g=ah(d,e)|0;if(g|0?rj(f,g)|0:0){c[(c[i>>2]|0)+172>>2]=g;m=c[g+16>>2]|0;a[m+112>>0]=h;m=m+168|0;b[m>>1]=(b[m>>1]|0)+1<<16>>16;if(a[(c[n>>2]|0)+156>>0]|0)break;if(a[(c[o>>2]|0)+156>>0]|0)break;gh(f);break}c[(c[i>>2]|0)+172>>2]=0;g=kh(d,e,f)|0;a[(c[g+16>>2]|0)+112>>0]=h}while(0);l=c[(c[o>>2]|0)+232>>2]|0;if((l-(c[(c[n>>2]|0)+232>>2]|0)|0)>1){if((c[((c[g>>2]&3|0)==3?g:g+48|0)+40>>2]|0)!=(d|0)){c[(c[i>>2]|0)+172>>2]=0;l=kh(d,c[((c[g>>2]&3|0)==2?g:g+-48|0)+40>>2]|0,f)|0;c[(c[i>>2]|0)+172>>2]=l;fh(g);g=l;l=c[(c[o>>2]|0)+232>>2]|0}while(1){i=c[g>>2]&3;j=c[((i|0)==2?g:g+-48|0)+40>>2]|0;k=c[j+16>>2]|0;if((c[k+232>>2]|0)==(l|0))break;g=c[c[k+180>>2]>>2]|0}if((j|0)!=(e|0)){a[(c[(kh(c[((i|0)==3?g:g+48|0)+40>>2]|0,e,f)|0)+16>>2]|0)+112>>0]=h;fh(g)}}}while(0);return}function _k(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=b+16|0;b=c[d>>2]|0;e=c[b+232>>2]|0;$k(a,e,c[b+236>>2]|0,2);b=ph(a)|0;d=c[d>>2]|0;f=c[b+16>>2]|0;h[f+88>>3]=+h[d+88>>3];h[f+96>>3]=+h[d+96>>3];c[f+232>>2]=c[d+232>>2];d=(c[d+236>>2]|0)+1|0;c[f+236>>2]=d;c[(c[(c[(c[a+16>>2]|0)+196>>2]|0)+(e<<6)+4>>2]|0)+(d<<2)>>2]=b;return b|0}function $k(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;h=a+16|0;f=c[(c[h>>2]|0)+196>>2]|0;i=c[f+(b<<6)+4>>2]|0;a:do if((e|0)<1){d=d-e|0;while(1){g=d+1|0;a=c[f+(b<<6)>>2]|0;if((g|0)>=(a|0))break;a=c[i+(g<<2)>>2]|0;f=d+e|0;c[(c[a+16>>2]|0)+236>>2]=f;c[i+(f<<2)>>2]=a;d=g;f=c[(c[h>>2]|0)+196>>2]|0}g=e+-1|0;d=g+a|0;while(1){if((d|0)>=(a|0))break a;c[i+(d<<2)>>2]=0;f=c[(c[h>>2]|0)+196>>2]|0;d=d+1|0;a=c[f+(b<<6)>>2]|0}}else{g=e+-1|0;a=c[f+(b<<6)>>2]|0;while(1){a=a+-1|0;if((a|0)<=(d|0))break;j=c[i+(a<<2)>>2]|0;f=g+a|0;c[(c[j+16>>2]|0)+236>>2]=f;c[i+(f<<2)>>2]=j}f=e+d|0;a=d;while(1){a=a+1|0;if((a|0)>=(f|0))break;c[i+(a<<2)>>2]=0}a=c[(c[h>>2]|0)+196>>2]|0;f=a;a=c[a+(b<<6)>>2]|0}while(0);c[f+(b<<6)>>2]=g+a;return}function al(a){a=a|0;var b=0;Pk(a);b=c[a+16>>2]|0;c[b+220>>2]=1;c[c[b+216>>2]>>2]=c[b+192>>2];Ci(a);hi(a,0);bl(a);Wk(a);cl(a);return}function bl(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=dg(d)|0;n=d+16|0;f=c[n>>2]|0;l=b[f+236>>1]|0;o=m+16|0;e=l<<16>>16;if(l<<16>>16>0)a[(c[(c[o>>2]|0)+196>>2]|0)+(e+-1<<6)+49>>0]=0;l=e;while(1){if((l|0)>(b[f+238>>1]|0))break;k=c[(c[(c[(c[f+268>>2]|0)+(l<<2)>>2]|0)+16>>2]|0)+236>>2]|0;$k(m,l,k,c[(c[f+196>>2]|0)+(l<<6)>>2]|0);i=0;j=k;e=c[o>>2]|0;while(1){f=c[n>>2]|0;p=c[f+196>>2]|0;g=p+(l<<6)+4|0;e=c[e+196>>2]|0;h=c[e+(l<<6)+4>>2]|0;if((i|0)>=(c[p+(l<<6)>>2]|0))break;e=c[(c[g>>2]|0)+(i<<2)>>2]|0;c[h+(j<<2)>>2]=e;p=c[e+16>>2]|0;c[p+236>>2]=j;if((a[p+156>>0]|0)==1)c[e+24>>2]=vC(m)|0;nh(d,e);lh(m,e);e=c[o>>2]|0;p=e+232|0;c[p>>2]=(c[p>>2]|0)+1;i=i+1|0;j=j+1|0}c[g>>2]=h+(k<<2);a[e+(l<<6)+49>>0]=0;l=l+1|0}e=c[o>>2]|0;if((l|0)<(b[e+238>>1]|0))a[(c[e+196>>2]|0)+(l<<6)+49>>0]=0;a[f+272>>0]=1;return}function cl(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=a+16|0;d=c[i>>2]|0;h=b[d+236>>1]|0;while(1){if((h|0)>(b[d+238>>1]|0))break;f=c[(c[d+268>>2]|0)+(h<<2)>>2]|0;g=f+16|0;while(1){d=c[g>>2]|0;e=c[c[d+180>>2]>>2]|0;if(!e)break;fh(e)}while(1){d=c[c[d+172>>2]>>2]|0;if(!d)break;fh(d);d=c[g>>2]|0}nh(dg(a)|0,f);c[(c[(c[i>>2]|0)+268>>2]|0)+(h<<2)>>2]=0;h=h+1|0;d=c[i>>2]|0}return}function dl(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;n=o;f=gC(b)|0;while(1){if(!f)break;e=f+16|0;d=c[e>>2]|0;if((a[d+159>>0]|0)==7){fP(f);d=c[e>>2]|0}c[d+212>>2]=0;f=hC(b,f)|0}m=b+16|0;k=1;while(1){d=c[m>>2]|0;if((k|0)>(c[d+180>>2]|0))break;h=c[(c[d+184>>2]|0)+(k<<2)>>2]|0;i=h+16|0;d=gC(h)|0;a:while(1){if(!d)break;j=hC(h,d)|0;e=d+16|0;if(a[(c[e>>2]|0)+159>>0]|0){f=HB(d)|0;g=HB(b)|0;c[n>>2]=f;c[n+4>>2]=g;dA(0,88016,n)|0;tC(h,d)|0;d=j;continue}gP(d,c[(c[i>>2]|0)+264>>2]|0);g=c[e>>2]|0;c[g+212>>2]=h;a[g+159>>0]=7;g=UA(h,d)|0;while(1){if(!g){d=j;continue a}d=c[(c[g+16>>2]|0)+172>>2]|0;b:do if(d|0)do{e=d+-48|0;f=c[(c[((c[d>>2]&3|0)==2?d:e)+40>>2]|0)+16>>2]|0;if((a[f+156>>0]|0)!=1)break b;c[f+212>>2]=h;d=c[c[(c[(c[((c[d>>2]&3|0)==2?d:e)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}while((d|0)!=0);while(0);g=WA(h,g)|0}}k=k+1|0}l=o;return}function el(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=e+16|0;g=HK((b[(c[k>>2]|0)+238>>1]<<2)+8|0)|0;f=c[k>>2]|0;c[f+268>>2]=g;g=0;h=b[f+236>>1]|0;while(1){if((h|0)>(b[f+238>>1]|0))break;f=ph(d)|0;c[(c[(c[k>>2]|0)+268>>2]|0)+(h<<2)>>2]=f;j=c[f+16>>2]|0;c[j+232>>2]=h;a[j+159>>0]=7;c[j+212>>2]=e;if(g|0){j=(c[(kh(g,f,0)|0)+16>>2]|0)+154|0;b[j>>1]=(b[j>>1]|0)*1e3}g=f;h=h+1|0;f=c[k>>2]|0}j=gC(e)|0;while(1){f=c[k>>2]|0;i=f+268|0;if(!j)break;h=(c[(c[i>>2]|0)+(c[(c[j+16>>2]|0)+232>>2]<<2)>>2]|0)+16|0;f=(c[h>>2]|0)+216|0;c[f>>2]=(c[f>>2]|0)+1;f=UA(e,j)|0;while(1){if(!f)break;i=c[f>>2]|0;d=f+-48|0;g=c[(c[(c[((i&3|0)==3?f:f+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;while(1){if((g|0)>=(c[(c[(c[((i&3|0)==2?f:d)+40>>2]|0)+16>>2]|0)+232>>2]|0))break;i=(c[(c[c[(c[h>>2]|0)+180>>2]>>2]|0)+16>>2]|0)+168|0;b[i>>1]=(b[i>>1]|0)+1<<16>>16;g=g+1|0;i=c[f>>2]|0}f=WA(e,f)|0}j=hC(e,j)|0}d=b[f+238>>1]|0;f=b[f+236>>1]|0;while(1){if((f|0)>(d|0))break;g=(c[(c[(c[i>>2]|0)+(f<<2)>>2]|0)+16>>2]|0)+216|0;h=c[g>>2]|0;if((h|0)>1)c[g>>2]=h+-1;f=f+1|0}return}function fl(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;k=(c[(c[e+16>>2]|0)+212>>2]|0)+16|0;e=c[k>>2]|0;j=f+1|0;if((a[e+273>>0]|0)!=(j|0)){i=b[e+236>>1]|0;while(1){h=b[e+238>>1]|0;if((i|0)>(h<<16>>16|0))break;wi(d,c[(c[e+268>>2]|0)+(i<<2)>>2]|0);i=i+1|0;e=c[k>>2]|0}i=b[e+236>>1]|0;while(1){if((i|0)>(h<<16>>16|0))break;xi(g,c[(c[e+268>>2]|0)+(i<<2)>>2]|0,f);d=c[k>>2]|0;i=i+1|0;h=b[d+238>>1]|0;e=d}a[e+273>>0]=j}return}function gl(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=gC(b)|0;while(1){if(!h)break;c[(c[h+16>>2]|0)+212>>2]=0;g=UA(b,h)|0;while(1){if(!g)break;d=c[(c[g+16>>2]|0)+172>>2]|0;a:do if(d|0)do{e=d+-48|0;f=c[(c[((c[d>>2]&3|0)==2?d:e)+40>>2]|0)+16>>2]|0;if((a[f+156>>0]|0)!=1)break a;c[f+212>>2]=0;d=c[c[(c[(c[((c[d>>2]&3|0)==2?d:e)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}while((d|0)!=0);while(0);g=WA(b,g)|0}h=hC(b,h)|0}hl(b);return}function hl(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=b+16|0;d=1;while(1){f=c[e>>2]|0;if((d|0)>(c[f+180>>2]|0))break;hl(c[(c[f+184>>2]|0)+(d<<2)>>2]|0);d=d+1|0}i=gC(b)|0;while(1){if(!i)break;d=(c[i+16>>2]|0)+212|0;if(!(c[d>>2]|0))c[d>>2]=b;h=UA(b,i)|0;while(1){if(!h)break;d=c[(c[h+16>>2]|0)+172>>2]|0;a:do if(d|0)do{e=c[d>>2]|0;g=d+-48|0;f=c[(c[((e&3|0)==2?d:g)+40>>2]|0)+16>>2]|0;if((a[f+156>>0]|0)!=1)break a;f=f+212|0;if(!(c[f>>2]|0)){c[f>>2]=b;e=c[d>>2]|0}d=c[c[(c[(c[((e&3|0)==2?d:g)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}while((d|0)!=0);while(0);h=WA(b,h)|0}i=hC(b,i)|0}return}function il(a){a=a|0;var b=0,c=0,d=0;d=GP(a)|0;c=gC(a)|0;while(1){if(!c)break;b=UA(a,c)|0;while(1){if(!b)break;jl(b,d);b=WA(a,b)|0}c=hC(a,c)|0}Oz(d)|0;return}function jl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;R=l;l=l+320|0;L=R+296|0;K=R+280|0;G=R+136|0;z=R+120|0;q=R+104|0;m=R+88|0;f=R+80|0;I=R+16|0;C=R;n=R+264|0;o=R+248|0;p=R+232|0;s=R+216|0;E=R+200|0;F=R+184|0;B=R+168|0;M=R+152|0;i=kl(NA(a,88070)|0,b)|0;u=kl(NA(a,88076)|0,b)|0;v=(u|0)!=0;h=(i|0)!=0;do if(h|v?(Q=a+16|0,e=c[(c[Q>>2]|0)+8>>2]|0,e|0):0){A=a+48|0;b=c[a>>2]&3;g=c[((b|0)==3?a:A)+40>>2]|0;if((c[e+4>>2]|0)>1){P=HB(g)|0;Q=HB(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0)|0;c[f>>2]=P;c[f+4>>2]=Q;dA(0,88082,f)|0;break}P=c[e>>2]|0;k=c[P+4>>2]|0;y=a+-48|0;t=c[((b|0)==2?a:y)+40>>2]|0;N=IK(48)|0;w=P+12|0;c[N+12>>2]=c[w>>2];D=P+8|0;c[N+8>>2]=c[D>>2];H=P+16|0;j=P+32|0;k=k+-1|0;x=N+32|0;r=g+16|0;t=t+16|0;do if(h){g=(c[i+16>>2]|0)+16|0;i=(c[t>>2]|0)+16|0;c[L>>2]=c[i>>2];c[L+4>>2]=c[i+4>>2];c[L+8>>2]=c[i+8>>2];c[L+12>>2]=c[i+12>>2];if(!(ll(L,g)|0)){s=HB(c[((c[a>>2]&3|0)==3?a:A)+40>>2]|0)|0;J=HB(c[((c[a>>2]&3|0)==2?a:y)+40>>2]|0)|0;O=NA(a,88070)|0;c[m>>2]=s;c[m+4>>2]=J;c[m+8>>2]=O;dA(0,88123,m)|0;O=25;break}b=c[P>>2]|0;c[L>>2]=c[b>>2];c[L+4>>2]=c[b+4>>2];c[L+8>>2]=c[b+8>>2];c[L+12>>2]=c[b+12>>2];if(!(ll(L,g)|0))b=0;else{J=(c[r>>2]|0)+16|0;c[L>>2]=c[J>>2];c[L+4>>2]=c[J+4>>2];c[L+8>>2]=c[J+8>>2];c[L+12>>2]=c[J+12>>2];if(ll(L,g)|0){s=HB(c[((c[a>>2]&3|0)==3?a:A)+40>>2]|0)|0;J=HB(c[((c[a>>2]&3|0)==2?a:y)+40>>2]|0)|0;O=NA(a,88070)|0;c[q>>2]=s;c[q+4>>2]=J;c[q+8>>2]=O;dA(0,88166,q)|0;O=25;break}if(!(c[D>>2]|0))Aa(88208,88219,369,88230);c[K>>2]=c[b>>2];c[K+4>>2]=c[b+4>>2];c[K+8>>2]=c[b+8>>2];c[K+12>>2]=c[b+12>>2];c[L>>2]=c[H>>2];c[L+4>>2]=c[H+4>>2];c[L+8>>2]=c[H+8>>2];c[L+12>>2]=c[H+12>>2];ml(C,K,L,g);J=(c[P>>2]|0)+48|0;c[J>>2]=c[C>>2];c[J+4>>2]=c[C+4>>2];c[J+8>>2]=c[C+8>>2];c[J+12>>2]=c[C+12>>2];J=(c[P>>2]|0)+16|0;c[K>>2]=c[C>>2];c[K+4>>2]=c[C+4>>2];c[K+8>>2]=c[C+8>>2];c[K+12>>2]=c[C+12>>2];c[L>>2]=c[H>>2];c[L+4>>2]=c[H+4>>2];c[L+8>>2]=c[H+8>>2];c[L+12>>2]=c[H+12>>2];nl(n,K,L);c[J>>2]=c[n>>2];c[J+4>>2]=c[n+4>>2];c[J+8>>2]=c[n+8>>2];c[J+12>>2]=c[n+12>>2];J=c[P>>2]|0;b=J+16|0;c[K>>2]=c[b>>2];c[K+4>>2]=c[b+4>>2];c[K+8>>2]=c[b+8>>2];c[K+12>>2]=c[b+12>>2];c[L>>2]=c[H>>2];c[L+4>>2]=c[H+4>>2];c[L+8>>2]=c[H+8>>2];c[L+12>>2]=c[H+12>>2];nl(o,K,L);c[J>>2]=c[o>>2];c[J+4>>2]=c[o+4>>2];c[J+8>>2]=c[o+8>>2];c[J+12>>2]=c[o+12>>2];J=c[P>>2]|0;b=J+32|0;J=J+16|0;c[K>>2]=c[J>>2];c[K+4>>2]=c[J+4>>2];c[K+8>>2]=c[J+8>>2];c[K+12>>2]=c[J+12>>2];c[L>>2]=c[C>>2];c[L+4>>2]=c[C+4>>2];c[L+8>>2]=c[C+8>>2];c[L+12>>2]=c[C+12>>2];nl(p,K,L);c[b>>2]=c[p>>2];c[b+4>>2]=c[p+4>>2];c[b+8>>2]=c[p+8>>2];c[b+12>>2]=c[p+12>>2];b=c[w>>2]|0;if(!b){J=3;break}J=(SH(a,c[P>>2]|0,0,0,N,b)|0)+3|0;break}while(1){if((b|0)>=(k|0))break;if(ol((c[P>>2]|0)+(b<<4)|0,g)|0)break;b=b+3|0}e=c[w>>2]|0;f=(e|0)!=0;if((b|0)==(k|0))if(f){J=(c[P>>2]|0)+(k<<4)|0;c[K>>2]=c[j>>2];c[K+4>>2]=c[j+4>>2];c[K+8>>2]=c[j+8>>2];c[K+12>>2]=c[j+12>>2];c[L>>2]=c[J>>2];c[L+4>>2]=c[J+4>>2];c[L+8>>2]=c[J+8>>2];c[L+12>>2]=c[J+12>>2];ml(s,K,L,g);c[x>>2]=c[s>>2];c[x+4>>2]=c[s+4>>2];c[x+8>>2]=c[s+8>>2];c[x+12>>2]=c[s+12>>2];J=k;break}else Aa(88247,88219,387,88230);else{if(f)b=SH(a,c[P>>2]|0,0,b,N,e)|0;J=b+3|0;break}}else O=25;while(0);if((O|0)==25)if(!(c[w>>2]|0))J=k;else{c[x>>2]=c[j>>2];c[x+4>>2]=c[j+4>>2];c[x+8>>2]=c[j+8>>2];c[x+12>>2]=c[j+12>>2];J=k}j=N+16|0;do if(v){i=(c[u+16>>2]|0)+16|0;v=(c[r>>2]|0)+16|0;c[L>>2]=c[v>>2];c[L+4>>2]=c[v+4>>2];c[L+8>>2]=c[v+8>>2];c[L+12>>2]=c[v+12>>2];if(!(ll(L,i)|0)){L=HB(c[((c[a>>2]&3|0)==3?a:A)+40>>2]|0)|0;M=HB(c[((c[a>>2]&3|0)==2?a:y)+40>>2]|0)|0;O=NA(a,88076)|0;c[z>>2]=L;c[z+4>>2]=M;c[z+8>>2]=O;dA(0,88258,z)|0;O=50;break}b=(c[P>>2]|0)+(J<<4)|0;c[L>>2]=c[b>>2];c[L+4>>2]=c[b+4>>2];c[L+8>>2]=c[b+8>>2];c[L+12>>2]=c[b+12>>2];h=J+-3|0;if(ll(L,i)|0){M=(c[t>>2]|0)+16|0;c[L>>2]=c[M>>2];c[L+4>>2]=c[M+4>>2];c[L+8>>2]=c[M+8>>2];c[L+12>>2]=c[M+12>>2];if(ll(L,i)|0){L=HB(c[((c[a>>2]&3|0)==3?a:A)+40>>2]|0)|0;M=HB(c[((c[a>>2]&3|0)==2?a:y)+40>>2]|0)|0;O=NA(a,88076)|0;c[G>>2]=L;c[G+4>>2]=M;c[G+8>>2]=O;dA(0,88301,G)|0;O=50;break}if(!(c[w>>2]|0))Aa(88247,88219,429,88230);c[K>>2]=c[b>>2];c[K+4>>2]=c[b+4>>2];c[K+8>>2]=c[b+8>>2];c[K+12>>2]=c[b+12>>2];c[L>>2]=c[x>>2];c[L+4>>2]=c[x+4>>2];c[L+8>>2]=c[x+8>>2];c[L+12>>2]=c[x+12>>2];ml(C,K,L,i);M=(c[P>>2]|0)+(h<<4)|0;c[M>>2]=c[C>>2];c[M+4>>2]=c[C+4>>2];c[M+8>>2]=c[C+8>>2];c[M+12>>2]=c[C+12>>2];M=J+-1|0;d=(c[P>>2]|0)+(M<<4)|0;c[K>>2]=c[C>>2];c[K+4>>2]=c[C+4>>2];c[K+8>>2]=c[C+8>>2];c[K+12>>2]=c[C+12>>2];c[L>>2]=c[x>>2];c[L+4>>2]=c[x+4>>2];c[L+8>>2]=c[x+8>>2];c[L+12>>2]=c[x+12>>2];nl(E,K,L);c[d>>2]=c[E>>2];c[d+4>>2]=c[E+4>>2];c[d+8>>2]=c[E+8>>2];c[d+12>>2]=c[E+12>>2];d=c[P>>2]|0;I=d+(J<<4)|0;d=d+(M<<4)|0;c[K>>2]=c[d>>2];c[K+4>>2]=c[d+4>>2];c[K+8>>2]=c[d+8>>2];c[K+12>>2]=c[d+12>>2];c[L>>2]=c[x>>2];c[L+4>>2]=c[x+4>>2];c[L+8>>2]=c[x+8>>2];c[L+12>>2]=c[x+12>>2];nl(F,K,L);c[I>>2]=c[F>>2];c[I+4>>2]=c[F+4>>2];c[I+8>>2]=c[F+8>>2];c[I+12>>2]=c[F+12>>2];I=c[P>>2]|0;d=I+(J+-2<<4)|0;M=I+(M<<4)|0;c[K>>2]=c[M>>2];c[K+4>>2]=c[M+4>>2];c[K+8>>2]=c[M+8>>2];c[K+12>>2]=c[M+12>>2];c[L>>2]=c[C>>2];c[L+4>>2]=c[C+4>>2];c[L+8>>2]=c[C+8>>2];c[L+12>>2]=c[C+12>>2];nl(B,K,L);c[d>>2]=c[B>>2];c[d+4>>2]=c[B+4>>2];c[d+8>>2]=c[B+8>>2];c[d+12>>2]=c[B+12>>2];d=c[D>>2]|0;if(!d){d=h;break}d=UH(a,c[P>>2]|0,h,h,N,d)|0;break}f=J;while(1){g=f+-3|0;if((f|0)>0)b=0;else break;while(1){if((b|0)==4)break;G=I+(b<<4)|0;F=(c[P>>2]|0)+(f-b<<4)|0;c[G>>2]=c[F>>2];c[G+4>>2]=c[F+4>>2];c[G+8>>2]=c[F+8>>2];c[G+12>>2]=c[F+12>>2];b=b+1|0}if(!(ol(I,i)|0))f=g;else{b=0;O=42;break}}a:do if((O|0)==42)while(1){O=0;if((b|0)==4)break a;O=(c[P>>2]|0)+(f-b<<4)|0;G=I+(b<<4)|0;c[O>>2]=c[G>>2];c[O+4>>2]=c[G+4>>2];c[O+8>>2]=c[G+8>>2];c[O+12>>2]=c[G+12>>2];b=b+1|0;O=42}while(0);b=c[D>>2]|0;e=(b|0)!=0;if(f|0){if(!e){d=g;break}d=UH(a,c[P>>2]|0,g,h,N,b)|0;break}if(e){d=c[P>>2]|0;c[K>>2]=c[H>>2];c[K+4>>2]=c[H+4>>2];c[K+8>>2]=c[H+8>>2];c[K+12>>2]=c[H+12>>2];c[L>>2]=c[d>>2];c[L+4>>2]=c[d+4>>2];c[L+8>>2]=c[d+8>>2];c[L+12>>2]=c[d+12>>2];ml(M,K,L,i);c[j>>2]=c[M>>2];c[j+4>>2]=c[M+4>>2];c[j+8>>2]=c[M+8>>2];c[j+12>>2]=c[M+12>>2];d=0;break}else Aa(88208,88219,452,88230)}else O=50;while(0);if((O|0)==50)if(!(c[D>>2]|0))d=0;else{c[j>>2]=c[H>>2];c[j+4>>2]=c[H+4>>2];c[j+8>>2]=c[H+8>>2];c[j+12>>2]=c[H+12>>2];d=0}b=J-d+1|0;f=N+4|0;c[f>>2]=b;c[N>>2]=IK(b<<4)|0;b=0;while(1){e=c[P>>2]|0;if((b|0)>=(c[f>>2]|0))break;O=(c[N>>2]|0)+(b<<4)|0;a=e+(d<<4)|0;c[O>>2]=c[a>>2];c[O+4>>2]=c[a+4>>2];c[O+8>>2]=c[a+8>>2];c[O+12>>2]=c[a+12>>2];d=d+1|0;b=b+1|0}l6(e);l6(P);c[c[(c[Q>>2]|0)+8>>2]>>2]=N}while(0);l=R;return}function kl(b,d){b=b|0;d=d|0;var e=0,f=0;f=l;l=l+16|0;e=f;if((b|0)!=0?(a[b>>0]|0)!=0:0){d=IP(d,b)|0;if(!d){c[e>>2]=b;dA(0,88421,e)|0;d=0}}else d=0;l=f;return d|0}function ll(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;d=+h[a>>3];if((+h[b>>3]<=d?d<=+h[b+16>>3]:0)?(c=+h[a+8>>3],+h[b+8>>3]<=c):0)a=c<=+h[b+24>>3];else a=0;return a&1|0}function ml(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0,j=0,k=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0,A=0.0,B=0,C=0,D=0,E=0,F=0;F=l;l=l+464|0;r=F+48|0;E=F+32|0;x=F+16|0;y=F;z=F+364|0;B=F+264|0;C=F+164|0;D=F+64|0;u=+h[b>>3];v=+h[b+8>>3];k=+h[d>>3];w=+h[d+8>>3];c[x>>2]=c[e>>2];c[x+4>>2]=c[e+4>>2];c[x+8>>2]=c[e+8>>2];c[x+12>>2]=c[e+12>>2];j=e+16|0;c[y>>2]=c[j>>2];c[y+4>>2]=c[j+4>>2];c[y+8>>2]=c[j+8>>2];c[y+12>>2]=c[j+12>>2];m=+h[x>>3];n=v-w;o=u-k;j=a+8|0;e=y+8|0;f=+h[x+8>>3];if(k<m?(g=v+ +(~~(n*(m-u)/o)|0),!(g>=f?!(g<=+h[e>>3]):1)):0){s=g;t=m}else i=3;do if((i|0)==3){g=+h[y>>3];if(k>g?(p=v+ +(~~(n*(g-u)/o)|0),!(p>=f?!(p<=+h[e>>3]):1)):0){s=p;t=g;break}if(w<f?(q=u+ +(~~(o*(f-v)/n)|0),!(!(q>=m)|!(q<=g))):0){s=f;t=q;break}f=+h[e>>3];if(w>f?(A=u+ +(~~(o*(f-v)/n)|0),!(!(A>=m)|!(A<=g))):0){s=f;t=A;break};c[r>>2]=c[b>>2];c[r+4>>2]=c[b+4>>2];c[r+8>>2]=c[b+8>>2];c[r+12>>2]=c[b+12>>2];z=tl(r,z)|0;c[r>>2]=c[d>>2];c[r+4>>2]=c[d+4>>2];c[r+8>>2]=c[d+8>>2];c[r+12>>2]=c[d+12>>2];B=tl(r,B)|0;c[r>>2]=c[x>>2];c[r+4>>2]=c[x+4>>2];c[r+8>>2]=c[x+8>>2];c[r+12>>2]=c[x+12>>2];C=tl(r,C)|0;c[r>>2]=c[y>>2];c[r+4>>2]=c[y+4>>2];c[r+8>>2]=c[y+8>>2];c[r+12>>2]=c[y+12>>2];D=tl(r,D)|0;c[E>>2]=z;c[E+4>>2]=B;c[E+8>>2]=C;c[E+12>>2]=D;dA(1,88343,E)|0;Aa(138697,88219,78,88395)}while(0);h[a>>3]=t;h[j>>3]=s;l=F;return}function nl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=(+h[b+8>>3]+ +h[c+8>>3])*.5;h[a>>3]=(+h[b>>3]+ +h[c>>3])*.5;h[a+8>>3]=d;return}function ol(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0.0,g=0,i=0,j=0,k=0,m=0;m=l;l=l+80|0;j=m+16|0;k=m;e=0;while(1){if((e|0)==4)break;i=j+(e<<4)|0;g=a+(e<<4)|0;c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];c[i+8>>2]=c[g+8>>2];c[i+12>>2]=c[g+12>>2];e=e+1|0}e=b+8|0;i=b+24|0;d=+pl(a,0.0,1.0,+h[b>>3],+h[e>>3],+h[i>>3]);if(d>=0.0&d<2.0)iP(k,j,3,d,a,0);else d=2.0;g=b+16|0;f=+pl(a,0.0,d>1.0?1.0:d,+h[g>>3],+h[e>>3],+h[i>>3]);if(f>=0.0&f<d){iP(k,j,3,f,a,0);d=f}f=+ql(a,0.0,d>1.0?1.0:d,+h[e>>3],+h[b>>3],+h[g>>3]);if(f>=0.0&f<d){iP(k,j,3,f,a,0);d=f}f=+ql(a,0.0,d>1.0?1.0:d,+h[i>>3],+h[b>>3],+h[g>>3]);if(f>=0.0&f<d){iP(k,j,3,f,a,0);d=f}l=m;return d<2.0|0}function pl(a,b,c,d,e,f){a=a|0;b=+b;c=+c;d=+d;e=+e;f=+f;var g=0.0,i=0,j=0,k=0,m=0;m=l;l=l+144|0;j=m+80|0;k=m+16|0;i=m;a:do if(!(b==c)){switch(sl(a,d)|0){case 0:{b=-1.0;break a}case 1:{if(+F(+(+h[a+48>>3]-d))<=.005){b=+h[a+56>>3];b=!(b>=e)|!(b<=f)?-1.0:c;break a}break}default:{}}iP(i,a,3,.5,j,k);g=(b+c)*.5;b=+pl(j,b,g,d,e,f);if(!(b>=0.0))b=+pl(k,g,c,d,e,f)}while(0);l=m;return +b}function ql(a,b,c,d,e,f){a=a|0;b=+b;c=+c;d=+d;e=+e;f=+f;var g=0.0,i=0,j=0,k=0,m=0;m=l;l=l+144|0;j=m+80|0;k=m+16|0;i=m;a:do if(!(b==c)){switch(rl(a,d)|0){case 0:{b=-1.0;break a}case 1:{if(+F(+(+h[a+56>>3]-d))<=.005){b=+h[a+48>>3];b=!(b>=e)|!(b<=f)?-1.0:c;break a}break}default:{}}iP(i,a,3,.5,j,k);g=(b+c)*.5;b=+ql(j,b,g,d,e,f);if(!(b>=0.0))b=+ql(k,g,c,d,e,f)}while(0);l=m;return +b}function rl(a,b){a=a|0;b=+b;var c=0,d=0,e=0,f=0.0,g=0,i=0;f=+h[a+8>>3];e=f<b?-1:f>b&1;c=1;d=e;e=(e|0)==0&1;while(1){if((c|0)==4)break;f=+h[a+(c<<4)+8>>3];i=f<b?-1:f>b&1;g=((d|0)!=0&(i|0)!=(d|0)&1)+e|0;c=c+1|0;d=i;e=g}return e|0}function sl(a,b){a=a|0;b=+b;var c=0,d=0,e=0,f=0.0,g=0,i=0;f=+h[a>>3];e=f<b?-1:f>b&1;c=1;d=e;e=(e|0)==0&1;while(1){if((c|0)==4)break;f=+h[a+(c<<4)>>3];i=f<b?-1:f>b&1;g=((d|0)!=0&(i|0)!=(d|0)&1)+e|0;c=c+1|0;d=i;e=g}return e|0}function tl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0.0;c=l;l=l+16|0;d=c;e=+h[a+8>>3];h[d>>3]=+h[a>>3];h[d+8>>3]=e;i2(b,88409,d)|0;l=c;return b|0}function ul(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+16|0;s=v;u=4;t=k6(40)|0;c[t>>2]=0;r=a+16|0;e=c[r>>2]|0;a:do if(((b[e+238>>1]|0)-(b[e+236>>1]|0)|0)>=2){m=1;d=e;e=c[e+196>>2]|0;b:while(1){n=m+1|0;if(!(c[e+(n<<6)>>2]|0)){q=15;break}else k=0;while(1){h=c[e+(m<<6)>>2]|0;if((k|0)>=(h|0)){m=n;continue b}i=c[(c[e+(m<<6)+4>>2]|0)+(k<<2)>>2]|0;o=0;g=la(20,i|0)|0;d=o;o=0;if((d|0)!=0&(p|0)!=0){f=A6(c[d>>2]|0,t|0,u|0)|0;if(!f)Ca(d|0,p|0);D=p}else f=-1;if((f|0)==1){d=D;break b}j=k+1|0;if(g<<24>>24){g=j;d=h;while(1){if((g|0)>=(d|0))break;o=0;d=ra(65,i|0,c[(c[e+(m<<6)+4>>2]|0)+(g<<2)>>2]|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,t|0,u|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){d=D;break b}if(!(d<<24>>24))break;d=c[(c[r>>2]|0)+196>>2]|0;g=g+1|0;e=d;d=c[d+(m<<6)>>2]|0}if((g-k|0)>1){o=0;ba(15,a|0,m|0,k|0,g+-1|0,1);d=o;o=0;if((d|0)!=0&(p|0)!=0){e=A6(c[d>>2]|0,t|0,u|0)|0;if(!e)Ca(d|0,p|0);D=p}else e=-1;if((e|0)==1){d=D;break b}}}e=c[r>>2]|0;k=j;d=e;e=c[e+196>>2]|0}}c:do if((q|0)==15){while(1){if((m|0)>0)k=0;else break;while(1){e=c[d+196>>2]|0;h=c[e+(m<<6)>>2]|0;if((k|0)>=(h|0))break;i=c[(c[e+(m<<6)+4>>2]|0)+(k<<2)>>2]|0;o=0;g=la(21,i|0)|0;d=o;o=0;if((d|0)!=0&(p|0)!=0){f=A6(c[d>>2]|0,t|0,u|0)|0;if(!f)Ca(d|0,p|0);D=p}else f=-1;if((f|0)==1){d=D;break c}j=k+1|0;if(g<<24>>24){g=j;d=h;while(1){if((g|0)>=(d|0))break;o=0;d=ra(66,i|0,c[(c[e+(m<<6)+4>>2]|0)+(g<<2)>>2]|0)|0;e=o;o=0;if((e|0)!=0&(p|0)!=0){f=A6(c[e>>2]|0,t|0,u|0)|0;if(!f)Ca(e|0,p|0);D=p}else f=-1;if((f|0)==1){d=D;break c}if(!(d<<24>>24))break;d=c[(c[r>>2]|0)+196>>2]|0;g=g+1|0;e=d;d=c[d+(m<<6)>>2]|0}if((g-k|0)>1){o=0;ba(15,a|0,m|0,k|0,g+-1|0,0);d=o;o=0;if((d|0)!=0&(p|0)!=0){e=A6(c[d>>2]|0,t|0,u|0)|0;if(!e)Ca(d|0,p|0);D=p}else e=-1;if((e|0)==1){d=D;break c}}}k=j;d=c[r>>2]|0}m=m+-1|0;q=15}t=x6(187184,1,t|0,u|0)|0;u=D;o=0;d=o;o=0;if((d|0)!=0&(p|0)!=0){e=A6(c[d>>2]|0,t|0,u|0)|0;if(!e)Ca(d|0,p|0);D=p}else e=-1;if((e|0)==1)d=D;else d=0}while(0);d:while(1){if(d){o=0;aa(23,3,88449,s|0)|0;d=o;o=0;if((d|0)!=0&(p|0)!=0){e=A6(c[d>>2]|0,t|0,u|0)|0;if(!e)Ca(d|0,p|0);D=p}else e=-1;if((e|0)==1){d=D;continue}else break}else f=1;while(1){d=c[r>>2]|0;if((f|0)>(c[d+180>>2]|0))break a;o=0;$(101,c[(c[d+184>>2]|0)+(f<<2)>>2]|0);d=o;o=0;if((d|0)!=0&(p|0)!=0){e=A6(c[d>>2]|0,t|0,u|0)|0;if(!e)Ca(d|0,p|0);D=p}else e=-1;if((e|0)==1){d=D;continue d}f=f+1|0}}}while(0);l6(t|0);l=v;return}function vl(b){b=b|0;b=c[b+16>>2]|0;if(((a[b+156>>0]|0)==1?(c[b+176>>2]|0)==1:0)?(c[b+184>>2]|0)==1:0)b=(c[b+104>>2]|0)==0&1;else b=0;return b|0}function wl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+80|0;h=i+40|0;g=i;e=c[c[(c[a+16>>2]|0)+172>>2]>>2]|0;a=c[c[(c[b+16>>2]|0)+172>>2]>>2]|0;if(((vl(b)|0)<<24>>24!=0?(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)==(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0):0)?(Cl(e,a)|0)<<24>>24!=0:0){d=(c[a+16>>2]|0)+16|0;f=g;a=(c[e+16>>2]|0)+16|0;b=f+40|0;do{c[f>>2]=c[a>>2];f=f+4|0;a=a+4|0}while((f|0)<(b|0));f=h;a=d;b=f+40|0;do{c[f>>2]=c[a>>2];f=f+4|0;a=a+4|0}while((f|0)<(b|0));a=(eg(g,h)|0)==0&1}else a=0;l=i;return a|0}function xl(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=a+16|0;q=c[(c[(c[(c[t>>2]|0)+196>>2]|0)+(b<<6)+4>>2]|0)+(d<<2)>>2]|0;p=d+1|0;m=(f|0)==1;n=q+16|0;l=p;while(1){if((l|0)>(e|0)){g=e;s=p;break}o=c[(c[(c[(c[t>>2]|0)+196>>2]|0)+(b<<6)+4>>2]|0)+(l<<2)>>2]|0;k=o+16|0;a:do if(m)while(1){d=c[k>>2]|0;j=c[c[d+180>>2]>>2]|0;if(!j)break a;h=c[(c[n>>2]|0)+180>>2]|0;i=j+-48|0;f=0;while(1){d=c[h+(f<<2)>>2]|0;if(!d){r=8;break}if((c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)==(c[((c[j>>2]&3|0)==2?j:i)+40>>2]|0))break;else f=f+1|0}if((r|0)==8){r=0;d=kh(q,c[((c[j>>2]&3|0)==2?j:i)+40>>2]|0,j)|0}while(1){f=c[c[(c[k>>2]|0)+172>>2]>>2]|0;if(!f)break;sh(f,d);fh(f)}fh(j)}else while(1){d=c[k>>2]|0;j=c[c[d+172>>2]>>2]|0;if(!j)break a;h=c[(c[n>>2]|0)+172>>2]|0;i=j+48|0;f=0;while(1){d=c[h+(f<<2)>>2]|0;if(!d){r=17;break}if((c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0)==(c[((c[j>>2]&3|0)==3?j:i)+40>>2]|0))break;else f=f+1|0}if((r|0)==17){r=0;d=kh(c[((c[j>>2]&3|0)==3?j:i)+40>>2]|0,q,j)|0}while(1){f=c[c[(c[k>>2]|0)+180>>2]>>2]|0;if(!f)break;sh(f,d);fh(f)}fh(j)}while(0);if((c[d+176>>2]|0)!=(0-(c[d+184>>2]|0)|0)){r=23;break}nh(a,o);l=l+1|0}if((r|0)==23)Aa(88585,88629,115,88636);while(1){g=g+1|0;f=c[(c[t>>2]|0)+196>>2]|0;d=f+(b<<6)|0;f=c[f+(b<<6)+4>>2]|0;h=f+(s<<2)|0;if((g|0)>=(c[d>>2]|0))break;r=c[f+(g<<2)>>2]|0;c[h>>2]=r;c[(c[r+16>>2]|0)+236>>2]=s;s=s+1|0}c[d>>2]=s;c[h>>2]=0;return}function yl(b){b=b|0;b=c[b+16>>2]|0;if(((a[b+156>>0]|0)==1?(c[b+184>>2]|0)==1:0)?(c[b+176>>2]|0)==1:0)b=(c[b+104>>2]|0)==0&1;else b=0;return b|0}function zl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=l;l=l+80|0;h=i+40|0;g=i;e=c[c[(c[a+16>>2]|0)+180>>2]>>2]|0;a=c[c[(c[b+16>>2]|0)+180>>2]>>2]|0;if(((yl(b)|0)<<24>>24!=0?(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)==(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0):0)?(Cl(e,a)|0)<<24>>24!=0:0){d=(c[a+16>>2]|0)+56|0;f=g;a=(c[e+16>>2]|0)+56|0;b=f+40|0;do{c[f>>2]=c[a>>2];f=f+4|0;a=a+4|0}while((f|0)<(b|0));f=h;a=d;b=f+40|0;do{c[f>>2]=c[a>>2];f=f+4|0;a=a+4|0}while((f|0)<(b|0));a=(eg(g,h)|0)==0&1}else a=0;l=i;return a|0}function Al(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+32|0;p=r+16|0;o=r;m=d+16|0;f=c[m>>2]|0;e=b[f+236>>1]|0;while(1){if((e|0)>(b[f+238>>1]|0))break;c[(c[f+268>>2]|0)+(e<<2)>>2]=0;e=e+1|0;f=c[m>>2]|0}sj(d);j=gC(d)|0;while(1){if(!j)break;Bl(d,j);i=UA(d,j)|0;while(1){if(!i)break;else f=i;while(1){e=c[(c[f+16>>2]|0)+172>>2]|0;if(!e)break;else f=e}h=i+-48|0;while(1){e=f+-48|0;g=c[((c[f>>2]&3|0)==2?f:e)+40>>2]|0;if((c[(c[g+16>>2]|0)+232>>2]|0)>=(c[(c[(c[((c[i>>2]&3|0)==2?i:h)+40>>2]|0)+16>>2]|0)+232>>2]|0))break;Bl(d,g);f=c[c[(c[(c[((c[f>>2]&3|0)==2?f:e)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}i=WA(d,i)|0}j=hC(d,j)|0}e=c[m>>2]|0;i=b[e+236>>1]|0;while(1){if((i|0)>(b[e+238>>1]|0)){k=1;n=e;break}e=c[(c[e+268>>2]|0)+(i<<2)>>2]|0;j=c[(c[(c[(dg(d)|0)+16>>2]|0)+196>>2]|0)+(i<<6)+4>>2]|0;f=e+16|0;if((c[j+(c[(c[f>>2]|0)+236>>2]<<2)>>2]|0)!=(e|0)){q=17;break}h=c[(c[(c[(dg(d)|0)+16>>2]|0)+196>>2]|0)+(i<<6)+4>>2]|0;e=c[m>>2]|0;f=c[e+196>>2]|0;c[f+(i<<6)+4>>2]=h+(c[(c[(c[(c[e+268>>2]|0)+(i<<2)>>2]|0)+16>>2]|0)+236>>2]<<2);e=-1;h=0;a:while(1){if((h|0)>=(c[f+(i<<6)>>2]|0))break;f=c[(c[f+(i<<6)+4>>2]|0)+(h<<2)>>2]|0;if(!f)break;g=c[f+16>>2]|0;b:do if(!(a[g+156>>0]|0))if(!(EC(d,f)|0))break a;else e=h;else{f=c[c[g+172>>2]>>2]|0;while(1){if(!f)break b;g=c[(c[f+16>>2]|0)+116>>2]|0;if(!g)break;else f=g}if(EC(d,c[((c[f>>2]&3|0)==3?f:f+48|0)+40>>2]|0)|0){j=(EC(d,c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0)|0)==0;e=j?e:h}}while(0);h=h+1|0;f=c[(c[m>>2]|0)+196>>2]|0}if((e|0)==-1){c[p>>2]=HB(d)|0;c[p+4>>2]=i;dA(0,88549,p)|0}j=c[m>>2]|0;c[(c[j+196>>2]|0)+(i<<6)>>2]=e+1;i=i+1|0;e=j}if((q|0)==17){p=HB(e)|0;q=c[(c[f>>2]|0)+236>>2]|0;c[o>>2]=p;c[o+4>>2]=q;c[o+8>>2]=i;dA(1,88491,o)|0;Ca(187184,1)}while(1){if((k|0)>(c[n+180>>2]|0))break;Al(c[(c[n+184>>2]|0)+(k<<2)>>2]|0);k=k+1|0;n=c[m>>2]|0}l=r;return}function Bl(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b+16>>2]|0;a=(c[(c[a+16>>2]|0)+268>>2]|0)+(c[d+232>>2]<<2)|0;e=c[a>>2]|0;if(!((e|0)!=0?(c[(c[e+16>>2]|0)+236>>2]|0)<=(c[d+236>>2]|0):0))c[a>>2]=b;return}function Cl(b,d){b=b|0;d=d|0;var e=0,f=0;while(1){f=c[b+16>>2]|0;if(!(a[f+112>>0]|0))break;b=c[f+116>>2]|0}while(1){e=c[d+16>>2]|0;if(!(a[e+112>>0]|0))break;d=c[e+116>>2]|0}if((a[f+153>>0]|0)==0?(a[e+153>>0]|0)==0:0){f=c[d>>2]&3;e=c[b>>2]&3;b=(S((c[(c[(c[((e|0)==3?b:b+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((e|0)==2?b:b+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0,(c[(c[(c[((f|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((f|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0)|0)>0&1}else b=0;return b|0}function Dl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+544|0;j=k+528|0;El(j,k+512|0,k);e=(a[194050]|0)+1<<24>>24;a[194050]=e<<24>>24==0?1:e;e=c[b+16>>2]|0;c[e+220>>2]=0;c[e+232>>2]=0;e=(d|0)>0;d=gC(b)|0;while(1){if(!d)break;if(e?(h=c[d+16>>2]|0,i=c[h+212>>2]|0,(i|0)!=0):0){g=c[(c[(c[i+16>>2]|0)+268>>2]|0)+(c[h+232>>2]<<2)>>2]|0;f=7}else f=6;if((f|0)==6?(f=0,(d|0)==(dP(d)|0)):0){g=d;f=7}if((f|0)==7?(0,(a[(c[g+16>>2]|0)+157>>0]|0)!=(a[194050]|0)):0){Fl(b);Gl(j,b,g);Hl(b)}d=hC(b,d)|0}Il(j);l=k;return}function El(a,b,d){a=a|0;b=b|0;d=d|0;c[b>>2]=d;c[b+4>>2]=d+512;c[b+12>>2]=0;c[b+8>>2]=0;c[a>>2]=b;c[a+4>>2]=b;c[a+8>>2]=d;return}function Fl(a){a=a|0;c[(c[a+16>>2]|0)+192>>2]=0;c[46835]=0;return}function Gl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;q=l;l=l+32|0;p=q;Jl(b,e);k=p+8|0;m=p+16|0;n=p+24|0;a:while(1){o=Kl(b)|0;if(!o)break;e=o+16|0;if((a[(c[e>>2]|0)+157>>0]|0)==(a[194050]|0))continue;Ll(d,o);h=c[e>>2]|0;g=h+180|0;j=c[g+4>>2]|0;i=p;c[i>>2]=c[g>>2];c[i+4>>2]=j;i=h+172|0;j=c[i+4>>2]|0;g=k;c[g>>2]=c[i>>2];c[g+4>>2]=j;g=h+188|0;j=c[g+4>>2]|0;i=m;c[i>>2]=c[g>>2];c[i+4>>2]=j;h=h+196|0;i=c[h+4>>2]|0;j=n;c[j>>2]=c[h>>2];c[j+4>>2]=i;j=3;while(1){if((j|0)<=-1)continue a;e=c[p+(j<<3)>>2]|0;b:do if(e|0){i=(c[p+(j<<3)+4>>2]|0)+-1|0;h=e+(i<<2)|0;while(1){if((i|0)<=-1)break b;f=c[h>>2]|0;g=c[f>>2]&3;e=c[((g|0)==2?f:f+-48|0)+40>>2]|0;if((e|0)==(o|0))e=c[((g|0)==3?f:f+48|0)+40>>2]|0;if((a[(c[e+16>>2]|0)+157>>0]|0)!=(a[194050]|0)?(e|0)==(dP(e)|0):0)Jl(b,e);h=h+-4|0;i=i+-1|0}}while(0);j=j+-1|0}}l=q;return}function Hl(a){a=a|0;var b=0,d=0,e=0,f=0;d=a+16|0;a=c[d>>2]|0;f=a+220|0;e=c[f>>2]|0;b=e+1|0;c[f>>2]=b;a=c[a+216>>2]|0;b=b<<2;if(!a)a=IK(b)|0;else a=KK(a,b)|0;f=c[d>>2]|0;c[f+216>>2]=a;c[a+(e<<2)>>2]=c[f+192>>2];return}function Il(a){a=a|0;var b=0;a=c[(c[a>>2]|0)+12>>2]|0;while(1){if(!a)break;b=c[a+12>>2]|0;l6(c[a>>2]|0);l6(a);a=b}return}function Jl(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;h=k+8|0;g=k;j=b+8|0;f=c[j>>2]|0;i=b+4|0;b=c[i>>2]|0;if((f|0)==(c[b+4>>2]|0)){f=c[b+12>>2]|0;if(!f){f=HK(16)|0;if(!f)dA(1,99270,g)|0;c[f+8>>2]=c[i>>2];c[f+12>>2]=0;b=HK(4e6)|0;c[f>>2]=b;if(!b){dA(1,88649,h)|0;b=c[f>>2]|0}c[f+4>>2]=b+4e6;c[(c[i>>2]|0)+12>>2]=f}c[i>>2]=f;f=c[f>>2]|0;c[j>>2]=f}a[(c[e+16>>2]|0)+157>>0]=(d[194050]|0)+1;c[j>>2]=f+4;c[f>>2]=e;l=k;return}function Kl(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=a+8|0;b=c[f>>2]|0;d=a+4|0;e=c[d>>2]|0;if((b|0)==(c[e>>2]|0))if((e|0)==(c[a>>2]|0))b=0;else{b=c[e+8>>2]|0;c[d>>2]=b;b=c[b+4>>2]|0;c[f>>2]=b;g=4}else g=4;if((g|0)==4){b=b+-4|0;c[f>>2]=b;b=c[b>>2]|0}return b|0}function Ll(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=c[b+16>>2]|0;g=f+232|0;c[g>>2]=(c[g>>2]|0)+1;g=c[d+16>>2]|0;a[g+157>>0]=a[194050]|0;b=c[46835]|0;e=g+168|0;if(!b){c[e>>2]=0;c[f+192>>2]=d}else{c[e>>2]=b;c[(c[b+16>>2]|0)+164>>2]=d}c[46835]=d;c[g+164>>2]=0;return}function Ml(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0;m=b+16|0;d=(c[m>>2]|0)+192|0;while(1){d=c[d>>2]|0;if(!d)break;g=d+16|0;d=c[g>>2]|0;e=c[d+188>>2]|0;a:do if(!e)f=0;else{f=0;while(1){e=c[e+(f<<2)>>2]|0;if(!e){f=0;break a}Nl(e);d=c[g>>2]|0;f=f+1|0;e=c[d+188>>2]|0}}while(0);while(1){if((f|0)>=(c[d+208>>2]|0))break;e=c[(c[d+204>>2]|0)+(f<<2)>>2]|0;l=c[e>>2]&3;if((c[(c[(c[((l|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)==(c[(c[(c[((l|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)){Nl(e);d=c[g>>2]|0}f=f+1|0}d=d+164|0}l=c[m>>2]|0;d=c[l+196>>2]|0;if(!((c[d+56>>2]|0)==0?(c[l+180>>2]|0)<=0:0))i=13;b:do if((i|0)==13){i=c[d+4>>2]|0;g=0;c:while(1){d=c[i+(g<<2)>>2]|0;if(!d)break b;e=c[(c[d+16>>2]|0)+196>>2]|0;d=0;while(1){f=c[e+(d<<2)>>2]|0;if(!f)break;l=c[f+16>>2]|0;if(c[l+96>>2]|0?(a[l+113>>0]|0)==0:0)break c;d=d+1|0}g=g+1|0}Ol(b)}while(0);Ei(b);e=0;d=(c[m>>2]|0)+192|0;while(1){d=c[d>>2]|0;if(!d)break;l=d+16|0;d=c[l>>2]|0;f=c[d+188>>2]|0;d:do if(f){k=0;while(1){g=c[f+(k<<2)>>2]|0;if(!g){k=0;break}i=c[g+16>>2]|0;j=c[i+96>>2]|0;do if(j)if(!(a[i+113>>0]|0)){Pl(g);f=c[l>>2]|0;e=1;d=f;f=c[f+188>>2]|0;break}else{h[i+136>>3]=+h[((c[(c[m>>2]|0)+116>>2]&1|0)==0?j+24|0:j+32|0)>>3];break}while(0);k=k+1|0}while(1){if((k|0)>=(c[d+208>>2]|0))break d;i=c[(c[d+204>>2]|0)+(k<<2)>>2]|0;j=c[i>>2]&3;g=c[((j|0)==3?i:i+48|0)+40>>2]|0;j=c[((j|0)==2?i:i+-48|0)+40>>2]|0;do if(!((g|0)==(j|0)?1:(c[(c[g+16>>2]|0)+232>>2]|0)!=(c[(c[j+16>>2]|0)+232>>2]|0))){f=i;do{j=c[f+16>>2]|0;f=c[j+172>>2]|0}while((f|0)!=0);f=a[j+113>>0]|0;g=c[i+16>>2]|0;a[g+113>>0]=f;g=c[g+96>>2]|0;if(g)if(!(f<<24>>24)){Pl(i);e=1;d=c[l>>2]|0;break}else{o=+h[((c[(c[m>>2]|0)+116>>2]&1|0)==0?g+24|0:g+32|0)>>3];j=j+136|0;n=+h[j>>3];h[j>>3]=o>n?o:n;break}}while(0);k=k+1|0}}while(0);d=d+164|0}if(e|0){xh(b);Lh(b)}return e|0}function Nl(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=c[b>>2]&3;i=c[((d|0)==3?b:b+48|0)+40>>2]|0;f=i+16|0;g=c[(c[f>>2]|0)+236>>2]|0;d=c[(c[(c[((d|0)==2?b:b+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;h=(g|0)<(d|0);e=h?d:g;i=c[(c[(dg(i)|0)+16>>2]|0)+196>>2]|0;f=i+(c[(c[f>>2]|0)+232>>2]<<6)+4|0;d=h?g:d;a:while(1){d=d+1|0;if((d|0)>=(e|0))break;g=c[(c[(c[f>>2]|0)+(d<<2)>>2]|0)+16>>2]|0;switch(a[g+156>>0]|0){case 0:break a;case 1:break;default:continue a}if(c[g+104>>2]|0)break}if((d|0)==(e|0))do{i=c[b+16>>2]|0;a[i+113>>0]=1;b=c[i+172>>2]|0}while((b|0)!=0);return}
function r3(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=l;l=l+256|0;e=h;a:do if((d|0)>=2?(g=b+(d<<2)|0,c[g>>2]=e,a|0):0)while(1){f=a>>>0<256?a:256;B6(e|0,c[b>>2]|0,f|0)|0;e=0;do{i=b+(e<<2)|0;e=e+1|0;B6(c[i>>2]|0,c[b+(e<<2)>>2]|0,f|0)|0;c[i>>2]=(c[i>>2]|0)+f}while((e|0)!=(d|0));a=a-f|0;if(!a)break a;e=c[g>>2]|0}while(0);l=h;return}function s3(b,e,f){b=b|0;e=e|0;f=f|0;var g=0.0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;switch(e|0){case 0:{l=-149;m=24;j=4;break}case 1:{l=-1074;m=53;j=4;break}case 2:{l=-1074;m=53;j=4;break}default:g=0.0}a:do if((j|0)==4){o=b+4|0;n=b+100|0;do{e=c[o>>2]|0;if(e>>>0<(c[n>>2]|0)>>>0){c[o>>2]=e+1;e=d[e>>0]|0}else e=W1(b)|0}while((X1(e)|0)!=0);b:do switch(e|0){case 43:case 45:{i=1-(((e|0)==45&1)<<1)|0;e=c[o>>2]|0;if(e>>>0<(c[n>>2]|0)>>>0){c[o>>2]=e+1;h=d[e>>0]|0;break b}else{h=W1(b)|0;break b}}default:{h=e;i=1}}while(0);e=0;do{if((h|32|0)!=(a[153600+e>>0]|0))break;do if(e>>>0<7){h=c[o>>2]|0;if(h>>>0<(c[n>>2]|0)>>>0){c[o>>2]=h+1;h=d[h>>0]|0;break}else{h=W1(b)|0;break}}while(0);e=e+1|0}while(e>>>0<8);c:do switch(e|0){case 8:break;case 3:{j=23;break}default:{k=(f|0)!=0;if(k&e>>>0>3)if((e|0)==8)break c;else{j=23;break c}d:do if(!e){e=0;do{if((h|32|0)!=(a[153609+e>>0]|0))break d;do if(e>>>0<2){h=c[o>>2]|0;if(h>>>0<(c[n>>2]|0)>>>0){c[o>>2]=h+1;h=d[h>>0]|0;break}else{h=W1(b)|0;break}}while(0);e=e+1|0}while(e>>>0<3)}while(0);switch(e|0){case 3:{e=c[o>>2]|0;if(e>>>0<(c[n>>2]|0)>>>0){c[o>>2]=e+1;e=d[e>>0]|0}else e=W1(b)|0;if((e|0)==40)e=1;else{if(!(c[n>>2]|0)){g=s;break a}c[o>>2]=(c[o>>2]|0)+-1;g=s;break a}while(1){h=c[o>>2]|0;if(h>>>0<(c[n>>2]|0)>>>0){c[o>>2]=h+1;h=d[h>>0]|0}else h=W1(b)|0;if(!((h+-48|0)>>>0<10|(h+-65|0)>>>0<26)?!((h|0)==95|(h+-97|0)>>>0<26):0)break;e=e+1|0}if((h|0)==41){g=s;break a}h=(c[n>>2]|0)==0;if(!h)c[o>>2]=(c[o>>2]|0)+-1;if(!k){c[(L1()|0)>>2]=22;U1(b,0);g=0.0;break a}if(!e){g=s;break a}while(1){e=e+-1|0;if(!h)c[o>>2]=(c[o>>2]|0)+-1;if(!e){g=s;break a}}}case 0:{if((h|0)==48){e=c[o>>2]|0;if(e>>>0<(c[n>>2]|0)>>>0){c[o>>2]=e+1;e=d[e>>0]|0}else e=W1(b)|0;if((e|32|0)==120){g=+t3(b,m,l,i,f);break a}if(!(c[n>>2]|0))e=48;else{c[o>>2]=(c[o>>2]|0)+-1;e=48}}else e=h;g=+u3(b,e,m,l,i,f);break a}default:{if(c[n>>2]|0)c[o>>2]=(c[o>>2]|0)+-1;c[(L1()|0)>>2]=22;U1(b,0);g=0.0;break a}}}}while(0);if((j|0)==23){h=(c[n>>2]|0)==0;if(!h)c[o>>2]=(c[o>>2]|0)+-1;if((f|0)!=0&e>>>0>3)do{if(!h)c[o>>2]=(c[o>>2]|0)+-1;e=e+-1|0}while(e>>>0>3)}g=+(i|0)*t}while(0);return +g}function t3(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0.0,i=0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=a+4|0;i=c[w>>2]|0;v=a+100|0;if(i>>>0<(c[v>>2]|0)>>>0){c[w>>2]=i+1;i=d[i>>0]|0;j=0}else{i=W1(a)|0;j=0}a:while(1){switch(i|0){case 46:{n=8;break a}case 48:break;default:{s=0;t=0;p=1.0;h=0.0;u=0;r=j;j=0;q=0;m=0;l=0;break a}}i=c[w>>2]|0;if(i>>>0<(c[v>>2]|0)>>>0){c[w>>2]=i+1;i=d[i>>0]|0;j=1;continue}else{i=W1(a)|0;j=1;continue}}if((n|0)==8){i=c[w>>2]|0;if(i>>>0<(c[v>>2]|0)>>>0){c[w>>2]=i+1;i=d[i>>0]|0}else i=W1(a)|0;if((i|0)==48){l=0;j=0;do{i=c[w>>2]|0;if(i>>>0<(c[v>>2]|0)>>>0){c[w>>2]=i+1;i=d[i>>0]|0}else i=W1(a)|0;l=w6(l|0,j|0,-1,-1)|0;j=D}while((i|0)==48);s=1;t=0;p=1.0;h=0.0;u=0;r=1;q=0;m=0}else{s=1;t=0;p=1.0;h=0.0;u=0;r=j;j=0;q=0;m=0;l=0}}while(1){n=i+-48|0;o=(i|0)==46;if(n>>>0>=10?!(o|((i|32)+-97|0)>>>0<6):0)break;if(o)if(!s){s=1;n=t;k=p;i=u;l=m;j=q}else{i=46;break}else{i=(i|0)>57?(i|32)+-87|0:n;do if(!((q|0)<0|(q|0)==0&m>>>0<8))if((q|0)<0|(q|0)==0&m>>>0<14){p=p*.0625;n=t;k=p;h=h+p*+(i|0);i=u;break}else{i=(t|0)!=0|(i|0)==0;n=i?t:1;k=p;h=i?h:h+p*.5;i=u;break}else{n=t;k=p;i=i+(u<<4)|0}while(0);m=w6(m|0,q|0,1,0)|0;r=1;q=D}o=c[w>>2]|0;if(o>>>0<(c[v>>2]|0)>>>0){c[w>>2]=o+1;t=n;p=k;u=i;i=d[o>>0]|0;continue}else{t=n;p=k;u=i;i=W1(a)|0;continue}}do if(!r){i=c[v>>2]|0;j=(i|0)!=0;if(j)c[w>>2]=(c[w>>2]|0)+-1;if(g){if(j)c[w>>2]=(c[w>>2]|0)+-1;if(!((s|0)==0|(i|0)==0))c[w>>2]=(c[w>>2]|0)+-1}else U1(a,0);h=+(f|0)*0.0}else{n=(s|0)==0;o=n?m:l;n=n?q:j;if((q|0)<0|(q|0)==0&m>>>0<8){j=u;l=q;do{j=j<<4;m=w6(m|0,l|0,1,0)|0;l=D}while((l|0)<0|(l|0)==0&m>>>0<8);m=j}else m=u;if((i|32|0)==112){j=v3(a,g)|0;i=D;if((j|0)==0&(i|0)==-2147483648){if(!g){U1(a,0);h=0.0;break}if(!(c[v>>2]|0)){j=0;i=0}else{c[w>>2]=(c[w>>2]|0)+-1;j=0;i=0}}}else if(!(c[v>>2]|0)){j=0;i=0}else{c[w>>2]=(c[w>>2]|0)+-1;j=0;i=0}l=v6(o|0,n|0,2)|0;l=w6(l|0,D|0,-32,-1)|0;l=w6(l|0,D|0,j|0,i|0)|0;i=D;if(!m){h=+(f|0)*0.0;break}w=0-e|0;g=((w|0)<0)<<31>>31;if((i|0)>(g|0)|(i|0)==(g|0)&l>>>0>w>>>0){c[(L1()|0)>>2]=34;h=+(f|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}w=e+-106|0;g=((w|0)<0)<<31>>31;if((i|0)<(g|0)|(i|0)==(g|0)&l>>>0<w>>>0){c[(L1()|0)>>2]=34;h=+(f|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if((m|0)>-1){j=m;do{w=!(h>=.5);j=j<<1|(w^1)&1;h=h+(w?h:h+-1.0);l=w6(l|0,i|0,-1,-1)|0;i=D}while((j|0)>-1);p=h;m=j}else p=h;w=((b|0)<0)<<31>>31;e=t6(32,0,e|0,((e|0)<0)<<31>>31|0)|0;i=w6(e|0,D|0,l|0,i|0)|0;e=D;if((w|0)>(e|0)|(w|0)==(e|0)&b>>>0>i>>>0)if((i|0)>0)n=59;else{j=0;i=84;n=61}else{i=b;n=59}if((n|0)==59)if((i|0)<53){j=i;i=84-i|0;n=61}else{k=0.0;h=+(f|0)}if((n|0)==61){h=+(f|0);k=+x3(+w3(1.0,i),h);i=j}f=(m&1|0)==0&(p!=0.0&(i|0)<32);h=h*(f?0.0:p)+(k+h*+(((f&1)+m|0)>>>0))-k;if(!(h!=0.0))c[(L1()|0)>>2]=34;h=+z3(h,l)}while(0);return +h}function u3(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0.0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,G=0,H=0,I=0,J=0,K=0.0;J=l;l=l+512|0;G=J;H=f+e|0;I=0-H|0;B=a+4|0;C=a+100|0;k=0;a:while(1){switch(b|0){case 46:{z=6;break a}case 48:break;default:{v=0;p=k;q=0;o=0;break a}}b=c[B>>2]|0;if(b>>>0<(c[C>>2]|0)>>>0){c[B>>2]=b+1;b=d[b>>0]|0;k=1;continue}else{b=W1(a)|0;k=1;continue}}if((z|0)==6){b=c[B>>2]|0;if(b>>>0<(c[C>>2]|0)>>>0){c[B>>2]=b+1;b=d[b>>0]|0}else b=W1(a)|0;if((b|0)==48){k=0;b=0;while(1){k=w6(k|0,b|0,-1,-1)|0;o=D;b=c[B>>2]|0;if(b>>>0<(c[C>>2]|0)>>>0){c[B>>2]=b+1;b=d[b>>0]|0}else b=W1(a)|0;if((b|0)==48)b=o;else{v=1;p=1;q=k;break}}}else{v=1;p=k;q=0;o=0}}c[G>>2]=0;n=b+-48|0;m=(b|0)==46;b:do if(m|n>>>0<10){A=G+496|0;w=0;k=0;u=0;x=v;y=p;z=n;p=0;n=0;c:while(1){do if(m)if(!x){x=1;q=p;o=n}else break c;else{p=w6(p|0,n|0,1,0)|0;n=D;v=(b|0)!=48;if((k|0)>=125){if(!v)break;c[A>>2]=c[A>>2]|1;break}m=G+(k<<2)|0;if(!w)b=z;else b=b+-48+((c[m>>2]|0)*10|0)|0;c[m>>2]=b;w=w+1|0;y=(w|0)==9;w=y?0:w;k=(y&1)+k|0;u=v?p:u;y=1}while(0);b=c[B>>2]|0;if(b>>>0<(c[C>>2]|0)>>>0){c[B>>2]=b+1;b=d[b>>0]|0}else b=W1(a)|0;z=b+-48|0;m=(b|0)==46;if(!(m|z>>>0<10)){v=x;m=y;z=29;break b}}b=w;m=(y|0)!=0;z=37}else{w=0;k=0;u=0;m=p;p=0;n=0;z=29}while(0);do if((z|0)==29){A=(v|0)==0;q=A?p:q;o=A?n:o;m=(m|0)!=0;if(!(m&(b|32|0)==101))if((b|0)>-1){b=w;z=37;break}else{b=w;z=39;break}m=v3(a,h)|0;b=D;if((m|0)==0&(b|0)==-2147483648){if(!h){U1(a,0);i=0.0;break}if(!(c[C>>2]|0)){m=0;b=0}else{c[B>>2]=(c[B>>2]|0)+-1;m=0;b=0}}y=w6(m|0,b|0,q|0,o|0)|0;b=w;o=D;z=41}while(0);if((z|0)==37)if(c[C>>2]|0){c[B>>2]=(c[B>>2]|0)+-1;if(m){y=q;z=41}else z=40}else z=39;if((z|0)==39)if(m){y=q;z=41}else z=40;do if((z|0)==40){c[(L1()|0)>>2]=22;U1(a,0);i=0.0}else if((z|0)==41){m=c[G>>2]|0;if(!m){i=+(g|0)*0.0;break}if(((n|0)<0|(n|0)==0&p>>>0<10)&((y|0)==(p|0)&(o|0)==(n|0))?(e|0)>30|(m>>>e|0)==0:0){i=+(g|0)*+(m>>>0);break}a=(f|0)/-2|0;C=((a|0)<0)<<31>>31;if((o|0)>(C|0)|(o|0)==(C|0)&y>>>0>a>>>0){c[(L1()|0)>>2]=34;i=+(g|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}a=f+-106|0;C=((a|0)<0)<<31>>31;if((o|0)<(C|0)|(o|0)==(C|0)&y>>>0<a>>>0){c[(L1()|0)>>2]=34;i=+(g|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if(b){if((b|0)<9){n=G+(k<<2)|0;m=c[n>>2]|0;do{m=m*10|0;b=b+1|0}while((b|0)!=9);c[n>>2]=m}k=k+1|0}if((u|0)<9?(u|0)<=(y|0)&(y|0)<18:0){b=c[G>>2]|0;if((y|0)==9){i=+(g|0)*+(b>>>0);break}if((y|0)<9){i=+(g|0)*+(b>>>0)/+(c[63704+(8-y<<2)>>2]|0);break}a=e+27+(S(y,-3)|0)|0;if((a|0)>30|(b>>>a|0)==0){i=+(g|0)*+(b>>>0)*+(c[63704+(y+-10<<2)>>2]|0);break}}b=(y|0)%9|0;if(!b){b=0;n=0}else{u=(y|0)>-1?b:b+9|0;p=c[63704+(8-u<<2)>>2]|0;if(k){q=1e9/(p|0)|0;n=0;o=0;m=y;b=0;do{B=G+(b<<2)|0;C=c[B>>2]|0;a=((C>>>0)/(p>>>0)|0)+n|0;c[B>>2]=a;n=S(q,(C>>>0)%(p>>>0)|0)|0;a=(b|0)==(o|0)&(a|0)==0;m=a?m+-9|0:m;o=a?o+1&127:o;b=b+1|0}while((b|0)!=(k|0));if(!n)n=o;else{c[G+(k<<2)>>2]=n;n=o;k=k+1|0}}else{n=0;k=0;m=y}b=0;y=9-u+m|0}d:while(1){u=(y|0)<18;v=(y|0)==18;w=G+(n<<2)|0;while(1){if(!u){if(!v){m=y;break d}if((c[w>>2]|0)>>>0>=9007199){m=18;break d}}m=0;x=k;k=k+127|0;while(1){o=k&127;p=G+(o<<2)|0;k=v6(c[p>>2]|0,0,29)|0;k=w6(k|0,D|0,m|0,0)|0;m=D;if(m>>>0>0|(m|0)==0&k>>>0>1e9){q=E6(k|0,m|0,1e9,0)|0;k=J6(k|0,m|0,1e9,0)|0}else q=0;c[p>>2]=k;a=(o|0)==(n|0);x=(k|0)==0&(((o|0)!=(x+127&127|0)|a)^1)?o:x;if(a)break;else{m=q;k=o+-1|0}}b=b+-29|0;if(q|0)break;else k=x}n=n+127&127;k=x+127&127;m=G+((x+126&127)<<2)|0;if((n|0)==(x|0))c[m>>2]=c[m>>2]|c[G+(k<<2)>>2];else k=x;c[G+(n<<2)>>2]=q;y=y+9|0}e:while(1){w=k+1&127;x=G+((k+127&127)<<2)|0;while(1){q=(m|0)==18;v=(m|0)>27?9:1;y=n;while(1){n=0;while(1){o=n+y&127;if((o|0)==(k|0)){E=2;z=88;break}o=c[G+(o<<2)>>2]|0;p=c[63736+(n<<2)>>2]|0;if(o>>>0<p>>>0){E=2;z=88;break}if(o>>>0>p>>>0)break;n=n+1|0;if((n|0)>=2){E=n;z=88;break}}if((z|0)==88?(z=0,q&(E|0)==2):0){i=0.0;o=0;break e}b=v+b|0;if((y|0)==(k|0))y=k;else break}q=(1<<v)+-1|0;u=1e9>>>v;p=0;n=y;o=y;do{B=G+(o<<2)|0;C=c[B>>2]|0;a=(C>>>v)+p|0;c[B>>2]=a;p=S(C&q,u)|0;a=(o|0)==(n|0)&(a|0)==0;m=a?m+-9|0:m;n=a?n+1&127:n;o=o+1&127}while((o|0)!=(k|0));if(!p)continue;if((w|0)!=(n|0))break;c[x>>2]=c[x>>2]|1}c[G+(k<<2)>>2]=p;k=w}do{n=o+y&127;m=k+1&127;if((n|0)==(k|0)){c[G+(m+-1<<2)>>2]=0;k=m}i=i*1.0e9+ +((c[G+(n<<2)>>2]|0)>>>0);o=o+1|0}while((o|0)!=2);t=+(g|0);j=t*i;o=b+53|0;p=o-f|0;q=(p|0)<(e|0);n=q?((p|0)>0?p:0):e;if((n|0)<53){K=+x3(+w3(1.0,105-n|0),j);r=+y3(j,+w3(1.0,53-n|0));s=K;i=r;r=K+(j-r)}else{s=0.0;i=0.0;r=j}m=y+2&127;if((m|0)!=(k|0)){m=c[G+(m<<2)>>2]|0;do if(m>>>0>=5e8){if((m|0)!=5e8){i=t*.75+i;break}if((y+3&127|0)==(k|0)){i=t*.5+i;break}else{i=t*.75+i;break}}else{if((m|0)==0?(y+3&127|0)==(k|0):0)break;i=t*.25+i}while(0);if((53-n|0)>1?!(+y3(i,1.0)!=0.0):0)j=i+1.0;else j=i}else j=i;i=r+j-s;do if((o&2147483647|0)>(-2-H|0)){H=!(+F(+i)>=9007199254740992.0);b=((H^1)&1)+b|0;i=H?i:i*.5;if((b+50|0)<=(I|0)?!(j!=0.0&(q&((n|0)!=(p|0)|H))):0)break;c[(L1()|0)>>2]=34}while(0);i=+z3(i,b)}while(0);l=J;return +i}function v3(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=a+4|0;e=c[k>>2]|0;j=a+100|0;if(e>>>0<(c[j>>2]|0)>>>0){c[k>>2]=e+1;e=d[e>>0]|0}else e=W1(a)|0;switch(e|0){case 43:case 45:{f=(e|0)==45&1;e=c[k>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[k>>2]=e+1;e=d[e>>0]|0}else e=W1(a)|0;if((b|0)!=0&(e+-48|0)>>>0>9?(c[j>>2]|0)!=0:0)c[k>>2]=(c[k>>2]|0)+-1;break}default:f=0}if((e+-48|0)>>>0>9)if(!(c[j>>2]|0)){f=-2147483648;e=0}else{c[k>>2]=(c[k>>2]|0)+-1;f=-2147483648;e=0}else{g=0;do{g=e+-48+(g*10|0)|0;e=c[k>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[k>>2]=e+1;e=d[e>>0]|0}else e=W1(a)|0}while((e+-48|0)>>>0<10&(g|0)<214748364);b=((g|0)<0)<<31>>31;if((e+-48|0)>>>0<10){do{b=G6(g|0,b|0,10,0)|0;g=D;e=w6(e|0,((e|0)<0)<<31>>31|0,-48,-1)|0;g=w6(e|0,D|0,b|0,g|0)|0;b=D;e=c[k>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[k>>2]=e+1;e=d[e>>0]|0}else e=W1(a)|0}while((e+-48|0)>>>0<10&((b|0)<21474836|(b|0)==21474836&g>>>0<2061584302));h=e;i=g}else{h=e;i=g}e=c[j>>2]|0;if((h+-48|0)>>>0<10)do{g=c[k>>2]|0;if(g>>>0<e>>>0){c[k>>2]=g+1;g=d[g>>0]|0}else{g=W1(a)|0;e=c[j>>2]|0}}while((g+-48|0)>>>0<10);if(e|0)c[k>>2]=(c[k>>2]|0)+-1;k=(f|0)!=0;e=t6(0,0,i|0,b|0)|0;f=k?D:b;e=k?e:i}D=f;return e|0}function w3(a,b){a=+a;b=b|0;var d=0,e=0;if((b|0)<=1023){if((b|0)<-1022){a=a*2.2250738585072014e-308;d=b+1022|0;e=(d|0)<-1022;b=b+2044|0;a=e?a*2.2250738585072014e-308:a;b=e?((b|0)>-1022?b:-1022):d}}else{a=a*8988465674311579538646525.0e283;e=b+-1023|0;d=(e|0)>1023;b=b+-2046|0;a=d?a*8988465674311579538646525.0e283:a;b=d?((b|0)<1023?b:1023):e}d=v6(b+1023|0,0,52)|0;e=D;c[j>>2]=d;c[j+4>>2]=e;return +(a*+h[j>>3])}function x3(a,b){a=+a;b=+b;return +(+e2(a,b))}function y3(a,b){a=+a;b=+b;return +(+A3(a,b))}function z3(a,b){a=+a;b=b|0;return +(+w3(a,b))}function A3(a,b){a=+a;b=+b;var d=0,e=0,f=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h[j>>3]=a;i=c[j>>2]|0;l=c[j+4>>2]|0;h[j>>3]=b;n=c[j>>2]|0;o=c[j+4>>2]|0;e=z6(i|0,l|0,52)|0;e=e&2047;m=z6(n|0,o|0,52)|0;m=m&2047;p=l&-2147483648;g=v6(n|0,o|0,1)|0;k=D;a:do if(!((g|0)==0&(k|0)==0)?(f=B3(b)|0,d=D&2147483647,!((e|0)==2047|(d>>>0>2146435072|(d|0)==2146435072&f>>>0>0))):0){d=v6(i|0,l|0,1)|0;f=D;if(!(f>>>0>k>>>0|(f|0)==(k|0)&d>>>0>g>>>0))return +((d|0)==(g|0)&(f|0)==(k|0)?a*0.0:a);if(!e){d=v6(i|0,l|0,12)|0;f=D;if((f|0)>-1|(f|0)==-1&d>>>0>4294967295){e=0;do{e=e+-1|0;d=v6(d|0,f|0,1)|0;f=D}while((f|0)>-1|(f|0)==-1&d>>>0>4294967295)}else e=0;i=v6(i|0,l|0,1-e|0)|0;g=D}else g=l&1048575|1048576;if(!m){f=v6(n|0,o|0,12)|0;k=D;if((k|0)>-1|(k|0)==-1&f>>>0>4294967295){d=0;do{d=d+-1|0;f=v6(f|0,k|0,1)|0;k=D}while((k|0)>-1|(k|0)==-1&f>>>0>4294967295)}else d=0;n=v6(n|0,o|0,1-d|0)|0;m=d;l=D}else l=o&1048575|1048576;f=t6(i|0,g|0,n|0,l|0)|0;d=D;k=(d|0)>-1|(d|0)==-1&f>>>0>4294967295;b:do if((e|0)>(m|0)){while(1){if(k){if((f|0)==0&(d|0)==0)break}else{f=i;d=g}i=v6(f|0,d|0,1)|0;g=D;e=e+-1|0;f=t6(i|0,g|0,n|0,l|0)|0;d=D;k=(d|0)>-1|(d|0)==-1&f>>>0>4294967295;if((e|0)<=(m|0))break b}b=a*0.0;break a}while(0);if(k){if((f|0)==0&(d|0)==0){b=a*0.0;break}}else{d=g;f=i}if(d>>>0<1048576|(d|0)==1048576&f>>>0<0)do{f=v6(f|0,d|0,1)|0;d=D;e=e+-1|0}while(d>>>0<1048576|(d|0)==1048576&f>>>0<0);if((e|0)>0){o=w6(f|0,d|0,0,-1048576)|0;d=D;e=v6(e|0,0,52)|0;d=d|D;e=o|e}else{e=z6(f|0,d|0,1-e|0)|0;d=D}c[j>>2]=e;c[j+4>>2]=d|p;b=+h[j>>3]}else q=3;while(0);if((q|0)==3){b=a*b;b=b/b}return +b}function B3(a){a=+a;var b=0;h[j>>3]=a;b=c[j>>2]|0;D=c[j+4>>2]|0;return b|0}function C3(b,c){b=b|0;c=c|0;var e=0,f=0,g=0;f=a[b>>0]|0;e=f&255;a:do if(f<<24>>24){g=f;do{f=a[c>>0]|0;if(!(f<<24>>24))break a;if(g<<24>>24!=f<<24>>24?(g=R1(e)|0,(g|0)!=(R1(f&255)|0)):0)break a;b=b+1|0;c=c+1|0;g=a[b>>0]|0;e=g&255}while(g<<24>>24!=0)}while(0);g=R1(e)|0;return g-(R1(d[c>>0]|0)|0)|0}function D3(b){b=b|0;var d=0,e=0,f=0;f=b;a:do if(!(f&3))e=4;else{d=f;while(1){if(!(a[b>>0]|0)){b=d;break a}b=b+1|0;d=b;if(!(d&3)){e=4;break}}}while(0);if((e|0)==4){while(1){d=c[b>>2]|0;if(!((d&-2139062144^-2139062144)&d+-16843009))b=b+4|0;else break}if((d&255)<<24>>24)do b=b+1|0;while((a[b>>0]|0)!=0)}return b-f|0}function E3(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;H3();c[e>>2]=a;c[e+4>>2]=b;b=K1(Ma(91,e|0)|0)|0;l=d;return b|0}function F3(b,c){b=b|0;c=c|0;b=G3(b,c)|0;return ((a[b>>0]|0)==(c&255)<<24>>24?b:0)|0}function G3(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=d&255;a:do if(!f)b=b+(D3(b)|0)|0;else{if(b&3){e=d&255;do{g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break a;b=b+1|0}while((b&3|0)!=0)}f=S(f,16843009)|0;e=c[b>>2]|0;b:do if(!((e&-2139062144^-2139062144)&e+-16843009))do{g=e^f;if((g&-2139062144^-2139062144)&g+-16843009|0)break b;b=b+4|0;e=c[b>>2]|0}while(!((e&-2139062144^-2139062144)&e+-16843009|0));while(0);e=d&255;while(1){g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break;else b=b+1|0}}while(0);return b|0}function H3(){return}function I3(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0;k=l;l=l+16|0;g=k;i=(f|0)==0?190424:f;f=c[i>>2]|0;a:do if(!d)if(!f)f=0;else j=17;else{h=(b|0)==0?g:b;if(!e)f=-2;else{if(!f){f=a[d>>0]|0;if(f<<24>>24>-1){c[h>>2]=f&255;f=f<<24>>24!=0&1;break}g=(c[c[(J3()|0)+188>>2]>>2]|0)==0;f=a[d>>0]|0;if(g){c[h>>2]=f<<24>>24&57343;f=1;break}f=(f&255)+-194|0;if(f>>>0>50){j=17;break}f=c[62656+(f<<2)>>2]|0;g=e+-1|0;if(g){d=d+1|0;j=11}}else{g=e;j=11}b:do if((j|0)==11){b=a[d>>0]|0;m=(b&255)>>>3;if((m+-16|m+(f>>26))>>>0>7){j=17;break a}while(1){d=d+1|0;f=(b&255)+-128|f<<6;g=g+-1|0;if((f|0)>=0)break;if(!g)break b;b=a[d>>0]|0;if((b&-64)<<24>>24!=-128){j=17;break a}}c[i>>2]=0;c[h>>2]=f;f=e-g|0;break a}while(0);c[i>>2]=f;f=-2}}while(0);if((j|0)==17){c[i>>2]=0;c[(L1()|0)>>2]=84;f=-1}l=k;return f|0}function J3(){return N1()|0}function K3(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+272|0;n=p+8|0;o=p;do if(!(a[d>>0]|0)){d=Na(153613)|0;if(d|0?a[d>>0]|0:0)break;d=Na(153620+(b*12|0)|0)|0;if(d|0?a[d>>0]|0:0)break;d=Na(153692)|0;if(d|0?a[d>>0]|0:0)break;d=153697}while(0);e=0;a:do{switch(a[d+e>>0]|0){case 47:case 0:break a;default:{}}e=e+1|0}while(e>>>0<15);f=a[d>>0]|0;if(f<<24>>24!=46?(a[d+e>>0]|0)==0:0)if(f<<24>>24==67)m=15;else{k=d;m=16}else{d=153697;m=15}if((m|0)==15)if(!(a[d+1>>0]|0))m=18;else{k=d;m=16}b:do if((m|0)==16)if((f2(k,153697)|0)!=0?(f2(k,153705)|0)!=0:0){d=c[47607]|0;if(d|0)do{if(!(f2(k,d+8|0)|0))break b;d=c[d+24>>2]|0}while((d|0)!=0);Ua(190432);d=c[47607]|0;c:do if(d|0){while(1){if(!(f2(k,d+8|0)|0))break;d=c[d+24>>2]|0;if(!d)break c}Ra(190432);break b}while(0);d:do if(((c[47592]|0)==0?(g=Na(153711)|0,(g|0)!=0):0)?(a[g>>0]|0)!=0:0){i=254-e|0;j=e+1|0;f=g;while(1){h=G3(f,58)|0;d=a[h>>0]|0;g=((d<<24>>24!=0)<<31>>31)+(h-f)|0;if(g>>>0<i>>>0){B6(n|0,f|0,g|0)|0;f=n+g|0;a[f>>0]=47;B6(f+1|0,k|0,e|0)|0;a[n+(j+g)>>0]=0;g=Oa(n|0,o|0)|0;if(g|0)break;d=a[h>>0]|0}f=h+(d<<24>>24!=0&1)|0;if(!(a[f>>0]|0)){m=41;break d}}d=k6(28)|0;f=c[o>>2]|0;if(!d){E3(g,f)|0;m=41;break}else{c[d>>2]=g;c[d+4>>2]=f;o=d+8|0;B6(o|0,k|0,e|0)|0;a[o+e>>0]=0;c[d+24>>2]=c[47607];c[47607]=d;break}}else m=41;while(0);if((m|0)==41){d=k6(28)|0;if(d){c[d>>2]=c[15652];c[d+4>>2]=c[15653];o=d+8|0;B6(o|0,k|0,e|0)|0;a[o+e>>0]=0;c[d+24>>2]=c[47607];c[47607]=d}}Ra(190432);d=(b|0)==0&(d|0)==0?62608:d}else{d=k;m=18}while(0);do if((m|0)==18){if((b|0)==0?(a[d+1>>0]|0)==46:0){d=62608;break}d=0}while(0);l=p;return d|0}function L3(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+16|0;g=h;do if(b>>>0>6)d=0;else{Ua(190440);if((b|0)!=6){d=M3(b,d)|0;Ra(190440);break}if(!d){d=197414;b=0}else{b=g;e=153724;f=b+16|0;do{a[b>>0]=a[e>>0]|0;b=b+1|0;e=e+1|0}while((b|0)<(f|0));f=0;do{b=G3(d,59)|0;e=b-d|0;if((e|0)<16){B6(g|0,d|0,e|0)|0;a[g+e>>0]=0;d=(a[b>>0]|0)==0?d:b+1|0}M3(f,g)|0;f=f+1|0}while((f|0)!=6);d=197414;b=0}do{f=c[190400+(b<<2)>>2]|0;f=f|0?f+8|0:153740;g=D3(f)|0;B6(d|0,f|0,g|0)|0;a[d+g>>0]=59;d=d+(g+1)|0;b=b+1|0}while((b|0)!=6);a[d+-1>>0]=0;Ra(190440);d=197414}while(0);l=h;return d|0}function M3(a,b){a=a|0;b=b|0;if(!b)a=c[190400+(a<<2)>>2]|0;else{b=K3(a,b)|0;c[190400+(a<<2)>>2]=b;a=b}return (a|0?a+8|0:153740)|0}function N3(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0,h=0;if(!e)f=0;else{g=a[b>>0]|0;f=g&255;a:do if(g<<24>>24){h=g;do{e=e+-1|0;g=a[c>>0]|0;if(!((e|0)!=0&g<<24>>24!=0))break a;if(h<<24>>24!=g<<24>>24?(h=R1(f)|0,(h|0)!=(R1(g&255)|0)):0)break a;b=b+1|0;c=c+1|0;h=a[b>>0]|0;f=h&255}while(h<<24>>24!=0)}while(0);f=R1(f)|0;f=f-(R1(d[c>>0]|0)|0)|0}return f|0}function O3(a,b){a=a|0;b=b|0;P3(a,b)|0;return a|0}function P3(b,d){b=b|0;d=d|0;var e=0,f=0;e=d;a:do if(!((e^b)&3)){if(e&3)do{e=a[d>>0]|0;a[b>>0]=e;if(!(e<<24>>24))break a;d=d+1|0;b=b+1|0}while((d&3|0)!=0);e=c[d>>2]|0;if(!((e&-2139062144^-2139062144)&e+-16843009)){f=b;while(1){d=d+4|0;b=f+4|0;c[f>>2]=e;e=c[d>>2]|0;if((e&-2139062144^-2139062144)&e+-16843009|0)break;else f=b}}f=8}else f=8;while(0);if((f|0)==8){f=a[d>>0]|0;a[b>>0]=f;if(f<<24>>24)do{d=d+1|0;b=b+1|0;f=a[d>>0]|0;a[b>>0]=f}while(f<<24>>24!=0)}return b|0}function Q3(a,b){a=+a;b=+b;var c=0.0,d=0.0,e=0.0,f=0.0;c=a*a;d=c*c;e=c*.5;f=1.0-e;return +(f+(1.0-f-e+(c*(c*(c*(c*2.480158728947673e-05+-.001388888888887411)+.0416666666666666)+d*d*(c*(2.087572321298175e-09-c*1.1359647557788195e-11)+-2.7557314351390663e-07))-a*b)))}function R3(a,b){a=+a;b=b|0;var d=0,e=0.0,f=0.0,g=0.0,i=0,k=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0;r=l;l=l+48|0;m=r+16|0;n=r;h[j>>3]=a;d=c[j>>2]|0;i=c[j+4>>2]|0;o=z6(d|0,i|0,63)|0;q=i&2147483647;do if(q>>>0<1074752123)if((i&1048575|0)!=598523){d=(o|0)!=0;if(q>>>0<1073928573)if(d){g=a+1.5707963267341256;k=g+6.077100506506192e-11;h[b>>3]=k;h[b+8>>3]=g-k+6.077100506506192e-11;d=-1;break}else{g=a+-1.5707963267341256;k=g+-6.077100506506192e-11;h[b>>3]=k;h[b+8>>3]=g-k+-6.077100506506192e-11;d=1;break}else if(d){g=a+3.1415926534682512;k=g+1.2154201013012384e-10;h[b>>3]=k;h[b+8>>3]=g-k+1.2154201013012384e-10;d=-2;break}else{g=a+-3.1415926534682512;k=g+-1.2154201013012384e-10;h[b>>3]=k;h[b+8>>3]=g-k+-1.2154201013012384e-10;d=2;break}}else p=21;else{if(q>>>0<1075594812)if(q>>>0<1075183037){if((q|0)==1074977148){p=21;break}if(!o){g=a+-4.712388980202377;k=g+-1.8231301519518578e-10;h[b>>3]=k;h[b+8>>3]=g-k+-1.8231301519518578e-10;d=3;break}else{g=a+4.712388980202377;k=g+1.8231301519518578e-10;h[b>>3]=k;h[b+8>>3]=g-k+1.8231301519518578e-10;d=-3;break}}else{if((q|0)==1075388923){p=21;break}if(!o){g=a+-6.2831853069365025;k=g+-2.430840202602477e-10;h[b>>3]=k;h[b+8>>3]=g-k+-2.430840202602477e-10;d=4;break}else{g=a+6.2831853069365025;k=g+2.430840202602477e-10;h[b>>3]=k;h[b+8>>3]=g-k+2.430840202602477e-10;d=-4;break}}if(q>>>0>=1094263291){if(q>>>0>2146435071){k=a-a;h[b+8>>3]=k;h[b>>3]=k;d=0;break}c[j>>2]=d;c[j+4>>2]=i&1048575|1096810496;a=+h[j>>3];d=0;do{k=+(~~a|0);h[m+(d<<3)>>3]=k;a=(a-k)*16777216.0;d=d+1|0}while((d|0)!=2);h[m+16>>3]=a;if(a==0.0){d=1;while(1)if(+h[m+(d<<3)>>3]==0.0)d=d+-1|0;else break}else d=2;d=S3(m,n,(q>>>20)+-1046|0,d+1|0,1)|0;e=+h[n>>3];a=+h[n+8>>3];if(!o){h[b>>3]=e;h[b+8>>3]=a;break}else{h[b>>3]=-e;h[b+8>>3]=-a;d=0-d|0;break}}else p=21}while(0);if((p|0)==21){g=a*.6366197723675814+6755399441055744.0+-6755399441055744.0;d=~~g;e=a-g*1.5707963267341256;f=g*6.077100506506192e-11;a=e-f;h[b>>3]=a;h[j>>3]=a;p=z6(c[j>>2]|0,c[j+4>>2]|0,52)|0;i=q>>>20;if((i-(p&2047)|0)>16){f=g*6.077100506303966e-11;k=e-f;f=g*2.0222662487959506e-21-(e-k-f);a=k-f;h[b>>3]=a;h[j>>3]=a;q=z6(c[j>>2]|0,c[j+4>>2]|0,52)|0;s=g*2.0222662487111665e-21;e=k-s;g=g*8.4784276603689e-32-(k-e-s);if((i-(q&2047)|0)>49){a=e-g;h[b>>3]=a;f=g}else e=k}h[b+8>>3]=e-a-f}l=r;return d|0}function S3(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,i=0.0,j=0,k=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0;I=l;l=l+560|0;C=I+480|0;A=I+320|0;H=I+160|0;F=I;D=c[63744+(f<<2)>>2]|0;q=e+-1|0;z=(d+-3|0)/24|0;z=(z|0)>0?z:0;B=S(z,-24)|0;j=d+-24+B|0;if((D+q|0)>=0){o=D+e|0;m=z-q|0;n=0;while(1){if((m|0)<0)g=0.0;else g=+(c[63760+(m<<2)>>2]|0);h[A+(n<<3)>>3]=g;n=n+1|0;if((n|0)==(o|0))break;else m=m+1|0}}p=(e|0)>0;o=0;while(1){if(p){n=o+q|0;g=0.0;m=0;do{g=g+ +h[a+(m<<3)>>3]*+h[A+(n-m<<3)>>3];m=m+1|0}while((m|0)!=(e|0))}else g=0.0;h[F+(o<<3)>>3]=g;if((o|0)<(D|0))o=o+1|0;else break}u=(j|0)>0;v=24-j|0;w=23-j|0;x=(e|0)>0;y=(j|0)==0;m=D;a:while(1){g=+h[F+(m<<3)>>3];p=(m|0)>0;if(p){n=m;o=0;while(1){k=+(~~(g*5.9604644775390625e-08)|0);c[C+(o<<2)>>2]=~~(g-k*16777216.0);t=n;n=n+-1|0;g=k+ +h[F+(n<<3)>>3];if((t|0)<=1)break;else o=o+1|0}}g=+w3(g,j);g=g-+E(+(g*.125))*8.0;n=~~g;g=g-+(n|0);do if(!u)if(!y)if(!(g>=.5)){q=0;t=n;break}else{o=2;G=20;break}else{o=c[C+(m+-1<<2)>>2]>>23;G=19;break}else{t=C+(m+-1<<2)|0;o=c[t>>2]|0;G=o>>v;o=o-(G<<v)|0;c[t>>2]=o;o=o>>w;n=G+n|0;G=19}while(0);if((G|0)==19){G=0;if((o|0)>0)G=20;else{q=o;t=n}}if((G|0)==20){G=0;t=n+1|0;if(p){n=0;s=0;do{q=C+(s<<2)|0;r=c[q>>2]|0;if(!n)if(!r)n=0;else{n=1;p=16777216;G=23}else{p=16777215;G=23}if((G|0)==23){G=0;c[q>>2]=p-r}s=s+1|0}while((s|0)!=(m|0))}else n=0;b:do if(u){switch(j|0){case 1:{p=8388607;break}case 2:{p=4194303;break}default:break b}s=C+(m+-1<<2)|0;c[s>>2]=c[s>>2]&p}while(0);if((o|0)==2){g=1.0-g;if(!n)q=2;else{q=2;g=g-+w3(1.0,j)}}else q=o}if(!(g==0.0)){G=42;break}if((m|0)>(D|0)){n=0;o=m;do{o=o+-1|0;n=c[C+(o<<2)>>2]|n}while((o|0)>(D|0));if(n){G=41;break}else n=1}else n=1;while(1)if(!(c[C+(D-n<<2)>>2]|0))n=n+1|0;else break;p=n+m|0;if((n|0)<=0){m=p;continue}while(1){o=m+1|0;n=m+e|0;h[A+(n<<3)>>3]=+(c[63760+(o+z<<2)>>2]|0);if(x){g=0.0;m=0;do{g=g+ +h[a+(m<<3)>>3]*+h[A+(n-m<<3)>>3];m=m+1|0}while((m|0)!=(e|0))}else g=0.0;h[F+(o<<3)>>3]=g;if((o|0)<(p|0))m=o;else{m=p;continue a}}}if((G|0)==41)while(1){G=0;j=j+-24|0;m=m+-1|0;if(!(c[C+(m<<2)>>2]|0))G=41;else{p=m;break}}else if((G|0)==42){g=+w3(g,0-j|0);if(g>=16777216.0){k=+(~~(g*5.9604644775390625e-08)|0);c[C+(m<<2)>>2]=~~(g-k*16777216.0);j=B+d|0;m=m+1|0;g=k}c[C+(m<<2)>>2]=~~g;p=m}o=(p|0)>-1;if(o){g=+w3(1.0,j);j=p;while(1){h[F+(j<<3)>>3]=g*+(c[C+(j<<2)>>2]|0);if((j|0)>0){g=g*5.9604644775390625e-08;j=j+-1|0}else break}if(o){m=p;while(1){n=p-m|0;j=0;g=0.0;while(1){g=g+ +h[10952+(j<<3)>>3]*+h[F+(j+m<<3)>>3];if((j|0)>=(D|0)|(j|0)>=(n|0))break;else j=j+1|0}h[H+(n<<3)>>3]=g;if((m|0)>0)m=m+-1|0;else break}}}switch(f|0){case 0:{if(o){g=0.0;j=p;while(1){g=g+ +h[H+(j<<3)>>3];if((j|0)>0)j=j+-1|0;else break}}else g=0.0;i=(q|0)==0?g:-g;G=73;break}case 2:case 1:{if(o){g=0.0;j=p;while(1){g=g+ +h[H+(j<<3)>>3];if((j|0)>0)j=j+-1|0;else break}}else g=0.0;m=(q|0)==0;h[b>>3]=m?g:-g;g=+h[H>>3]-g;if((p|0)>=1){j=1;while(1){g=g+ +h[H+(j<<3)>>3];if((j|0)==(p|0))break;else j=j+1|0}}i=m?g:-g;b=b+8|0;G=73;break}case 3:{if((p|0)>0){j=p;g=+h[H+(p<<3)>>3];do{G=j;j=j+-1|0;F=H+(j<<3)|0;k=+h[F>>3];i=g;g=k+g;h[H+(G<<3)>>3]=i+(k-g);h[F>>3]=g}while((G|0)>1);m=(p|0)>1;if(m){j=p;g=+h[H+(p<<3)>>3];do{F=j;j=j+-1|0;G=H+(j<<3)|0;k=+h[G>>3];i=g;g=k+g;h[H+(F<<3)>>3]=i+(k-g);h[G>>3]=g}while((j|0)>1);if(m){j=p;i=0.0;do{i=i+ +h[H+(j<<3)>>3];j=j+-1|0}while((j|0)>1)}else i=0.0}else i=0.0}else i=0.0;k=+h[H>>3];g=+h[H+8>>3];if(!q)h[b>>3]=k;else{h[b>>3]=-k;i=-i;g=-g}h[b+8>>3]=g;b=b+16|0;G=73;break}default:{}}if((G|0)==73)h[b>>3]=i;l=I;return t&7|0}function T3(a,b,c){a=+a;b=+b;c=c|0;var d=0.0,e=0.0,f=0.0;f=a*a;d=f*(f*f)*(f*1.58969099521155e-10+-2.5050760253406863e-08)+(f*(f*2.7557313707070068e-06+-1.984126982985795e-04)+.00833333333332249);e=f*a;if(!c)a=e*(f*d+-.16666666666666632)+a;else a=a-(e*.16666666666666632+(f*(b*.5-e*d)-b));return +a}function U3(a){a=+a;var b=0,d=0,e=0,f=0.0,g=0.0;h[j>>3]=a;d=c[j+4>>2]|0;b=d&2147483647;do if(b>>>0>2146435071)a=a+a;else{if(b>>>0<1048576){h[j>>3]=a*18014398509481984.0;d=c[j+4>>2]|0;b=d&2147483647;if(!b)break;else e=696219795}else e=715094163;c[j>>2]=0;c[j+4>>2]=((b>>>0)/3|0)+e|d&-2147483648;g=+h[j>>3];f=g*g*(g/a);h[j>>3]=g*(f*(f*f)*(f*.14599619288661245+-.758397934778766)+(f*(f*1.6214297201053545+-1.8849797954337717)+1.87595182427177));d=w6(c[j>>2]|0,c[j+4>>2]|0,-2147483648,0)|0;e=D;c[j>>2]=d&-1073741824;c[j+4>>2]=e;f=+h[j>>3];a=a/(f*f);a=f+f*((a-f)/(f+f+a))}while(0);return +a}function V3(a){a=+a;var b=0,d=0,e=0,f=0,g=0.0,i=0.0,k=0.0,l=0.0,m=0.0;h[j>>3]=a;b=c[j>>2]|0;d=c[j+4>>2]|0;e=(d|0)<0;do if(e|d>>>0<1048576){if((b|0)==0&(d&2147483647|0)==0){a=-1.0/(a*a);break}if(e){a=(a-a)/0.0;break}else{h[j>>3]=a*18014398509481984.0;d=c[j+4>>2]|0;e=-1077;b=c[j>>2]|0;f=9;break}}else if(d>>>0<=2146435071)if((b|0)==0&0==0&(d|0)==1072693248)a=0.0;else{e=-1023;f=9}while(0);if((f|0)==9){f=d+614242|0;c[j>>2]=b;c[j+4>>2]=(f&1048575)+1072079006;k=+h[j>>3]+-1.0;i=k*(k*.5);l=k/(k+2.0);m=l*l;a=m*m;h[j>>3]=k-i;d=c[j+4>>2]|0;c[j>>2]=0;c[j+4>>2]=d;g=+h[j>>3];a=k-g-i+l*(i+(a*(a*(a*.15313837699209373+.22222198432149784)+.3999999999940942)+m*(a*(a*(a*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)));m=g*.4342944818781689;i=+(e+(f>>>20)|0);l=i*.30102999566361177;k=l+m;a=k+(m+(l-k)+(a*.4342944818781689+(i*3.694239077158931e-13+(g+a)*2.5082946711645275e-11)))}return +a}function W3(a){a=+a;var b=0,d=0,e=0,f=0,g=0.0,i=0.0,k=0.0,l=0.0,m=0.0;h[j>>3]=a;b=c[j>>2]|0;d=c[j+4>>2]|0;e=(d|0)<0;do if(e|d>>>0<1048576){if((b|0)==0&(d&2147483647|0)==0){a=-1.0/(a*a);break}if(e){a=(a-a)/0.0;break}else{h[j>>3]=a*18014398509481984.0;d=c[j+4>>2]|0;e=-1077;b=c[j>>2]|0;f=9;break}}else if(d>>>0<=2146435071)if((b|0)==0&0==0&(d|0)==1072693248)a=0.0;else{e=-1023;f=9}while(0);if((f|0)==9){f=d+614242|0;c[j>>2]=b;c[j+4>>2]=(f&1048575)+1072079006;m=+h[j>>3]+-1.0;k=m*(m*.5);i=m/(m+2.0);l=i*i;a=l*l;h[j>>3]=m-k;d=c[j+4>>2]|0;c[j>>2]=0;c[j+4>>2]=d;g=+h[j>>3];a=m-g-k+i*(k+(a*(a*(a*.15313837699209373+.22222198432149784)+.3999999999940942)+l*(a*(a*(a*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)));l=g*1.4426950407214463;k=+(e+(f>>>20)|0);i=k+l;a=i+(l+(k-i)+(a*1.4426950407214463+(g+a)*1.6751713164886512e-10))}return +a}function X3(a,b,d){a=+a;b=b|0;d=d|0;var e=0.0,f=0,g=0,i=0.0,k=0,m=0;k=l;l=l+16|0;g=k;h[j>>3]=a;f=c[j+4>>2]&2147483647;do if(f>>>0<1072243196)if(f>>>0<1044816030){h[b>>3]=a;h[d>>3]=1.0;break}else{h[b>>3]=+T3(a,0.0,0);h[d>>3]=+Q3(a,0.0);break}else{if(f>>>0>2146435071){i=a-a;h[d>>3]=i;h[b>>3]=i;break}f=R3(a,g)|0;m=g+8|0;e=+T3(+h[g>>3],+h[m>>3],1);a=+Q3(+h[g>>3],+h[m>>3]);switch(f&3){case 0:{h[b>>3]=e;i=a;break}case 1:{h[b>>3]=a;i=-e;break}case 2:{h[b>>3]=-e;i=-a;break}case 3:{h[b>>3]=-a;i=e;break}default:{}}h[d>>3]=i}while(0);l=k;return}function Y3(a){a=a|0;var b=0,c=0;c=(D3(a)|0)+1|0;b=k6(c)|0;if(!b)b=0;else B6(b|0,a|0,c|0)|0;return b|0}function Z3(a,b){a=a|0;b=b|0;var c=0;c=D3(a)|0;return ((_3(a,1,c,b)|0)!=(c|0))<<31>>31|0}function _3(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=S(d,b)|0;d=(b|0)==0?0:d;if((c[e+76>>2]|0)>-1){g=(n2(e)|0)==0;a=L2(a,f,e)|0;if(!g)o2(e)}else a=L2(a,f,e)|0;if((a|0)!=(f|0))d=(a>>>0)/(b>>>0)|0;return d|0}function $3(a){a=a|0;var b=0;if(c[a+68>>2]|0){b=c[a+116>>2]|0;a=a+112|0;if(b|0)c[b+112>>2]=c[a>>2];a=c[a>>2]|0;if(!a)a=(a4()|0)+232|0;else a=a+116|0;c[a>>2]=b}return}function a4(){return N1()|0}function b4(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+16|0;j=m;k=e&255;a[j>>0]=k;g=b+16|0;h=c[g>>2]|0;if(!h)if(!(M2(b)|0)){h=c[g>>2]|0;i=4}else f=-1;else i=4;do if((i|0)==4){i=b+20|0;g=c[i>>2]|0;if(g>>>0<h>>>0?(f=e&255,(f|0)!=(a[b+75>>0]|0)):0){c[i>>2]=g+1;a[g>>0]=k;break}if((eb[c[b+36>>2]&63](b,j,1)|0)==1)f=d[j>>0]|0;else f=-1}while(0);l=m;return f|0}function c4(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l+16|0;g=j;a:do if(!e)b=0;else{do if(f|0){i=(b|0)==0?g:b;b=a[e>>0]|0;if(b<<24>>24>-1){c[i>>2]=b&255;b=b<<24>>24!=0&1;break a}h=(c[c[(d4()|0)+188>>2]>>2]|0)==0;b=a[e>>0]|0;if(h){c[i>>2]=b<<24>>24&57343;b=1;break a}b=(b&255)+-194|0;if(b>>>0<=50){g=e+1|0;h=c[62656+(b<<2)>>2]|0;if(f>>>0<4?h&-2147483648>>>((f*6|0)+-6|0)|0:0)break;b=d[g>>0]|0;f=b>>>3;if((f+-16|f+(h>>26))>>>0<=7){b=b+-128|h<<6;if((b|0)>=0){c[i>>2]=b;b=2;break a}g=(d[e+2>>0]|0)+-128|0;if(g>>>0<=63){g=g|b<<6;if((g|0)>=0){c[i>>2]=g;b=3;break a}b=(d[e+3>>0]|0)+-128|0;if(b>>>0<=63){c[i>>2]=b|g<<6;b=4;break a}}}}}while(0);c[(L1()|0)>>2]=84;b=-1}while(0);l=j;return b|0}function d4(){return N1()|0}function e4(){var a=0,b=0;b=l;l=l+16|0;a=ya(20,b|0)|0;l=b;return a|0}function f4(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+48|0;h=i+32|0;g=i+16|0;e=i;if(w2(153742,a[d>>0]|0,4)|0){f=g4(d)|0;c[e>>2]=b;c[e+4>>2]=f|32768;c[e+8>>2]=438;e=K1(Wa(5,e|0)|0)|0;if((e|0)>=0){if(f&524288|0){c[g>>2]=e;c[g+4>>2]=2;c[g+8>>2]=1;ua(221,g|0)|0}b=h4(e,d)|0;if(!b){c[h>>2]=e;xa(6,h|0)|0;b=0}}else b=0}else{c[(L1()|0)>>2]=22;b=0}l=i;return b|0}function g4(b){b=b|0;var c=0,d=0,e=0;d=(F3(b,43)|0)==0;c=a[b>>0]|0;d=d?c<<24>>24!=114&1:2;e=(F3(b,120)|0)==0;d=e?d:d|128;b=(F3(b,101)|0)==0;b=b?d:d|524288;b=c<<24>>24==114?b:b|64;b=c<<24>>24==119?b|512:b;return (c<<24>>24==97?b|1024:b)|0}function h4(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+64|0;n=o+40|0;k=o+24|0;j=o+16|0;g=o;m=o+56|0;f=a[d>>0]|0;if(w2(153742,f<<24>>24,4)|0){e=k6(1156)|0;if(!e)e=0;else{h=e;i=h+124|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(i|0));if(!(F3(d,43)|0))c[e>>2]=f<<24>>24==114?8:4;if(F3(d,101)|0){c[g>>2]=b;c[g+4>>2]=2;c[g+8>>2]=1;ua(221,g|0)|0;f=a[d>>0]|0}if(f<<24>>24==97){c[j>>2]=b;c[j+4>>2]=3;f=ua(221,j|0)|0;if(!(f&1024)){c[k>>2]=b;c[k+4>>2]=4;c[k+8>>2]=f|1024;ua(221,k|0)|0}d=c[e>>2]|128;c[e>>2]=d}else d=c[e>>2]|0;c[e+60>>2]=b;c[e+44>>2]=e+132;c[e+48>>2]=1024;f=e+75|0;a[f>>0]=-1;if((d&8|0)==0?(c[n>>2]=b,c[n+4>>2]=21523,c[n+8>>2]=m,(Qa(54,n|0)|0)==0):0)a[f>>0]=10;c[e+32>>2]=20;c[e+36>>2]=18;c[e+40>>2]=19;c[e+12>>2]=17;if(!(c[47591]|0))c[e+76>>2]=-1;i4(e)|0}}else{c[(L1()|0)>>2]=22;e=0}l=o;return e|0}function i4(a){a=a|0;var b=0,d=0;b=j4()|0;c[a+56>>2]=c[b>>2];d=c[b>>2]|0;if(d|0)c[d+52>>2]=a;c[b>>2]=a;k4();return a|0}function j4(){Ua(190448);return 190456}function k4(){Ra(190448);return}function l4(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;if((c[a+76>>2]|0)>-1)f=n2(a)|0;else f=0;$3(a);g=(c[a>>2]&1|0)!=0;if(!g){e=j4()|0;d=c[a+52>>2]|0;b=a+56|0;if(d|0)c[d+56>>2]=c[b>>2];b=c[b>>2]|0;if(b|0)c[b+52>>2]=d;if((c[e>>2]|0)==(a|0))c[e>>2]=b;k4()}b=m4(a)|0;b=pb[c[a+12>>2]&63](a)|0|b;d=c[a+92>>2]|0;if(d|0)l6(d);if(g){if(f|0)o2(a)}else l6(a);return b|0}function m4(a){a=a|0;var b=0,d=0;do if(a){if((c[a+76>>2]|0)<=-1){b=n4(a)|0;break}d=(n2(a)|0)==0;b=n4(a)|0;if(!d)o2(a)}else{if(!(c[15872]|0))b=0;else b=m4(c[15872]|0)|0;a=c[(j4()|0)>>2]|0;if(a)do{if((c[a+76>>2]|0)>-1)d=n2(a)|0;else d=0;if((c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0)b=n4(a)|0|b;if(d|0)o2(a);a=c[a+56>>2]|0}while((a|0)!=0);k4()}while(0);return b|0}function n4(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+20|0;h=a+28|0;if((c[b>>2]|0)>>>0>(c[h>>2]|0)>>>0?(eb[c[a+36>>2]&63](a,0,0)|0,(c[b>>2]|0)==0):0)a=-1;else{d=a+4|0;e=c[d>>2]|0;f=a+8|0;g=c[f>>2]|0;if(e>>>0<g>>>0)eb[c[a+40>>2]&63](a,e-g|0,1)|0;c[a+16>>2]=0;c[h>>2]=0;c[b>>2]=0;c[f>>2]=0;c[d>>2]=0;a=0}return a|0}function o4(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if((c[f+76>>2]|0)>-1)l=n2(f)|0;else l=0;h=e+-1|0;g=(h|0)!=0;if((e|0)<2){m=f+74|0;k=a[m>>0]|0;a[m>>0]=k+255|k;if(l|0)o2(f);if(g)b=0;else a[b>>0]=0}else{a:do if(g){j=f+4|0;k=f+8|0;e=b;while(1){g=c[j>>2]|0;o=g;p=(c[k>>2]|0)-o|0;n=w2(g,10,p)|0;i=(n|0)==0;n=i?p:1-o+n|0;n=n>>>0<h>>>0?n:h;B6(e|0,g|0,n|0)|0;g=(c[j>>2]|0)+n|0;c[j>>2]=g;e=e+n|0;h=h-n|0;if(!(i&(h|0)!=0)){m=17;break a}if(g>>>0>=(c[k>>2]|0)>>>0){g=Y1(f)|0;if((g|0)<0)break}else{c[j>>2]=g+1;g=d[g>>0]|0}h=h+-1|0;i=e+1|0;a[e>>0]=g;if(!((h|0)!=0&(g&255|0)!=10)){e=i;m=17;break a}else e=i}if((e|0)!=(b|0)?(c[f>>2]&16|0)!=0:0)m=17;else b=0}else{e=b;m=17}while(0);if((m|0)==17)if(!b)b=0;else a[e>>0]=0;if(l)o2(f)}return b|0}function p4(a){a=a|0;var b=0;if((c[a+76>>2]|0)>-1){b=(n2(a)|0)==0;a=(c[a>>2]|0)>>>4&1}else a=(c[a>>2]|0)>>>4&1;return a|0}function q4(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;c[f>>2]=d;d=r4(a,b,f)|0;l=e;return d|0}function r4(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=l;l=l+128|0;e=g;f=e;h=f+124|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(h|0));c[e+32>>2]=44;c[e+44>>2]=a;c[e+76>>2]=-1;c[e+84>>2]=a;h=t4(e,b,d)|0;l=g;return h|0}function s4(a,b,c){a=a|0;b=b|0;c=c|0;return x4(a,b,c)|0}function t4(b,e,f){b=b|0;e=e|0;f=f|0;var i=0,j=0,k=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;Q=l;l=l+288|0;K=Q+8|0;L=Q+17|0;M=Q;N=Q+16|0;if((c[b+76>>2]|0)>-1)P=n2(b)|0;else P=0;i=a[e>>0]|0;a:do if(i<<24>>24){z=b+4|0;A=b+100|0;B=b+108|0;C=b+8|0;E=L+10|0;F=L+33|0;y=K+4|0;G=L+46|0;H=L+94|0;I=L+1|0;J=L+1|0;m=e;u=0;e=0;k=0;j=0;b:while(1){c:do if(!(X1(i&255)|0)){i=i<<24>>24==37;d:do if(i){p=m+1|0;n=a[p>>0]|0;e:do switch(n<<24>>24){case 37:break d;case 42:{x=0;m=m+2|0;break}default:{i=(n&255)+-48|0;if(i>>>0<10?(a[m+2>>0]|0)==36:0){x=u4(f,i)|0;m=m+3|0;break e}m=(c[f>>2]|0)+(4-1)&~(4-1);x=c[m>>2]|0;c[f>>2]=m+4;m=p}}while(0);i=a[m>>0]|0;n=i&255;if((n+-48|0)>>>0<10){p=0;do{p=(p*10|0)+-48+n|0;m=m+1|0;i=a[m>>0]|0;n=i&255}while((n+-48|0)>>>0<10)}else p=0;i=i<<24>>24==109;w=(x|0)!=0;k=i?0:k;j=i?0:j;m=i?m+1|0:m;i=w&i;n=m+1|0;switch(a[m>>0]|0){case 104:{v=(a[n>>0]|0)==104;q=v?-2:-1;m=v?m+2|0:n;break}case 108:{v=(a[n>>0]|0)==108;q=v?3:1;m=v?m+2|0:n;break}case 106:{q=3;m=n;break}case 116:case 122:{q=1;m=n;break}case 76:{q=2;m=n;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:{q=0;break}default:{O=137;break b}}s=d[m>>0]|0;t=(s&47|0)==3;s=t?s|32:s;t=t?1:q;r=s&255;switch(r<<24>>24){case 99:{p=(p|0)>1?p:1;break}case 91:break;case 110:{v4(x,t,u,((u|0)<0)<<31>>31);n=u;break c}default:{U1(b,0);do{n=c[z>>2]|0;if(n>>>0<(c[A>>2]|0)>>>0){c[z>>2]=n+1;n=d[n>>0]|0}else n=W1(b)|0}while((X1(n)|0)!=0);if(!(c[A>>2]|0))n=c[z>>2]|0;else{n=(c[z>>2]|0)+-1|0;c[z>>2]=n}u=(c[B>>2]|0)+u+n-(c[C>>2]|0)|0}}U1(b,p);n=c[z>>2]|0;q=c[A>>2]|0;if(n>>>0<q>>>0)c[z>>2]=n+1;else{if((W1(b)|0)<0){O=137;break b}q=c[A>>2]|0}if(q|0)c[z>>2]=(c[z>>2]|0)+-1;f:do switch(r<<24>>24){case 91:case 99:case 115:{v=(s|0)==99;g:do if((s|16|0)==115){u6(I|0,-1,256)|0;a[L>>0]=0;if((s|0)==115){a[F>>0]=0;a[E>>0]=0;a[E+1>>0]=0;a[E+2>>0]=0;a[E+3>>0]=0;a[E+4>>0]=0}}else{n=m+1|0;s=(a[n>>0]|0)==94;r=s&1;m=s?m+2|0:n;u6(J|0,s&1|0,256)|0;a[L>>0]=0;switch(a[m>>0]|0){case 45:{n=G;O=64;break}case 93:{n=H;O=64;break}default:s=(r^1)&255}if((O|0)==64){O=0;s=(r^1)&255;a[n>>0]=s;m=m+1|0}while(1){n=a[m>>0]|0;h:do switch(n<<24>>24){case 0:{O=137;break b}case 93:break g;case 45:{r=m+1|0;n=a[r>>0]|0;switch(n<<24>>24){case 93:case 0:{n=45;break h}default:{}}m=a[m+-1>>0]|0;if((m&255)<(n&255)){m=m&255;do{m=m+1|0;a[L+m>>0]=s;n=a[r>>0]|0}while((m|0)<(n&255|0));m=r}else m=r;break}default:{}}while(0);a[L+((n&255)+1)>>0]=s;m=m+1|0}}while(0);n=v?p+1|0:31;s=(t|0)==1;i:do if(s){if(i){j=k6(n<<2)|0;if(!j){k=0;j=0;i=1;O=137;break b}}else j=x;c[K>>2]=0;c[y>>2]=0;r=n;k=0;j:while(1){q=(j|0)==0;do{k:while(1){n=c[z>>2]|0;if(n>>>0<(c[A>>2]|0)>>>0){c[z>>2]=n+1;n=d[n>>0]|0}else n=W1(b)|0;if(!(a[L+(n+1)>>0]|0))break j;a[N>>0]=n;switch(I3(M,N,1,K)|0){case -1:{k=0;O=137;break b}case -2:break;default:break k}}if(!q){c[j+(k<<2)>>2]=c[M>>2];k=k+1|0}}while(!(i&(k|0)==(r|0)));k=r<<1|1;n=n6(j,k<<2)|0;if(!n){k=0;i=1;O=137;break b}else{t=r;r=k;j=n;k=t}}if(!(w4(K)|0)){k=0;O=137;break b}else{n=k;k=0;r=j}}else{if(i){k=k6(n)|0;if(!k){k=0;j=0;i=1;O=137;break b}else{q=n;j=0}while(1){do{n=c[z>>2]|0;if(n>>>0<(c[A>>2]|0)>>>0){c[z>>2]=n+1;n=d[n>>0]|0}else n=W1(b)|0;if(!(a[L+(n+1)>>0]|0)){n=j;r=0;j=0;break i}a[k+j>>0]=n;j=j+1|0}while((j|0)!=(q|0));j=q<<1|1;n=n6(k,j)|0;if(!n){j=0;i=1;O=137;break b}else{t=q;q=j;k=n;j=t}}}if(!x){k=q;while(1){j=c[z>>2]|0;if(j>>>0<k>>>0){c[z>>2]=j+1;j=d[j>>0]|0}else j=W1(b)|0;if(!(a[L+(j+1)>>0]|0)){n=0;k=0;r=0;j=0;break i}k=c[A>>2]|0}}else{n=0;k=q;while(1){j=c[z>>2]|0;if(j>>>0<k>>>0){c[z>>2]=j+1;j=d[j>>0]|0}else j=W1(b)|0;if(!(a[L+(j+1)>>0]|0)){k=x;r=0;j=0;break i}a[x+n>>0]=j;n=n+1|0;k=c[A>>2]|0}}}while(0);if(!(c[A>>2]|0))q=c[z>>2]|0;else{q=(c[z>>2]|0)+-1|0;c[z>>2]=q}q=q-(c[C>>2]|0)+(c[B>>2]|0)|0;if(!q){O=139;break b}if(!((q|0)==(p|0)|v^1)){O=139;break b}do if(i)if(s){c[x>>2]=r;break}else{c[x>>2]=k;break}while(0);if(!v){if(r|0)c[r+(n<<2)>>2]=0;if(!k){k=0;break f}a[k+n>>0]=0}break}case 120:case 88:case 112:{n=16;O=125;break}case 111:{n=8;O=125;break}case 117:case 100:{n=10;O=125;break}case 105:{n=0;O=125;break}case 71:case 103:case 70:case 102:case 69:case 101:case 65:case 97:{o=+s3(b,t,0);if((c[B>>2]|0)==((c[C>>2]|0)-(c[z>>2]|0)|0)){O=139;break b}if(x)switch(t|0){case 0:{g[x>>2]=o;break f}case 1:{h[x>>3]=o;break f}case 2:{h[x>>3]=o;break f}default:break f}break}default:{}}while(0);do if((O|0)==125){O=0;n=V1(b,n,0,-1,-1)|0;if((c[B>>2]|0)==((c[C>>2]|0)-(c[z>>2]|0)|0)){O=139;break b}if(w&(s|0)==112){c[x>>2]=n;break}else{v4(x,t,n,D);break}}while(0);e=(w&1)+e|0;n=(c[B>>2]|0)+u+(c[z>>2]|0)-(c[C>>2]|0)|0;break c}while(0);m=m+(i&1)|0;U1(b,0);i=c[z>>2]|0;if(i>>>0<(c[A>>2]|0)>>>0){c[z>>2]=i+1;i=d[i>>0]|0}else i=W1(b)|0;if((i|0)!=(d[m>>0]|0)){O=22;break b}n=u+1|0}else{while(1){i=m+1|0;if(!(X1(d[i>>0]|0)|0))break;else m=i}U1(b,0);do{i=c[z>>2]|0;if(i>>>0<(c[A>>2]|0)>>>0){c[z>>2]=i+1;i=d[i>>0]|0}else i=W1(b)|0}while((X1(i)|0)!=0);if(!(c[A>>2]|0))i=c[z>>2]|0;else{i=(c[z>>2]|0)+-1|0;c[z>>2]=i}n=(c[B>>2]|0)+u+i-(c[C>>2]|0)|0}while(0);m=m+1|0;i=a[m>>0]|0;if(!(i<<24>>24))break a;else u=n}if((O|0)==22){if(c[A>>2]|0)c[z>>2]=(c[z>>2]|0)+-1;if((e|0)!=0|(i|0)>-1)break;else{i=0;O=138}}else if((O|0)==137){i=i&1;if(!e)O=138}else if((O|0)==139)i=i&1;if((O|0)==138)e=-1;if(i){l6(k);l6(j)}}else e=0;while(0);if(P|0)o2(b);l=Q;return e|0}function u4(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=l;l=l+16|0;d=e;c[d>>2]=c[a>>2];while(1){f=(c[d>>2]|0)+(4-1)&~(4-1);a=c[f>>2]|0;c[d>>2]=f+4;if(b>>>0>1)b=b+-1|0;else break}l=e;return a|0}function v4(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;a:do if(d|0)switch(e|0){case -2:{a[d>>0]=f;break a}case -1:{b[d>>1]=f;break a}case 0:{c[d>>2]=f;break a}case 1:{c[d>>2]=f;break a}case 3:{e=d;c[e>>2]=f;c[e+4>>2]=g;break a}default:break a}while(0);return}function w4(a){a=a|0;if(!a)a=1;else a=(c[a>>2]|0)==0;return a&1|0}function x4(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=a+84|0;g=c[e>>2]|0;h=d+256|0;f=w2(g,0,h)|0;f=(f|0)==0?h:f-g|0;d=f>>>0<d>>>0?f:d;B6(b|0,g|0,d|0)|0;c[a+4>>2]=g+d;b=g+f|0;c[a+8>>2]=b;c[e>>2]=b;return d|0}function y4(a,b,c){a=a|0;b=b|0;c=c|0;return A4(a,b,c)|0}function z4(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;c[f>>2]=d;d=l2(a,b,f)|0;l=e;return d|0}function A4(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((c[a+76>>2]|0)>-1){e=(n2(a)|0)==0;b=B4(a,b,d)|0;if(!e)o2(a)}else b=B4(a,b,d)|0;return b|0}function B4(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;if((d|0)==1)b=b-(c[a+8>>2]|0)+(c[a+4>>2]|0)|0;e=a+20|0;f=a+28|0;if((c[e>>2]|0)>>>0>(c[f>>2]|0)>>>0?(eb[c[a+36>>2]&63](a,0,0)|0,(c[e>>2]|0)==0):0)b=-1;else{c[a+16>>2]=0;c[f>>2]=0;c[e>>2]=0;if((eb[c[a+40>>2]&63](a,b,d)|0)<0)b=-1;else{c[a+8>>2]=0;c[a+4>>2]=0;c[a>>2]=c[a>>2]&-17;b=0}}return b|0}function C4(b,c){b=b|0;c=c|0;var d=0;d=a[c>>0]|0;do if(d<<24>>24){b=F3(b,d<<24>>24)|0;if(b){if(a[c+1>>0]|0)if(a[b+1>>0]|0){if(!(a[c+2>>0]|0)){b=D4(b,c)|0;break}if(a[b+2>>0]|0){if(!(a[c+3>>0]|0)){b=E4(b,c)|0;break}if(a[b+3>>0]|0)if(!(a[c+4>>0]|0)){b=F4(b,c)|0;break}else{b=G4(b,c)|0;break}else b=0}else b=0}else b=0}else b=0}while(0);return b|0}function D4(b,c){b=b|0;c=c|0;var e=0,f=0,g=0;g=(d[c>>0]|0)<<8|(d[c+1>>0]|0);f=d[b>>0]|0;while(1){c=b+1|0;e=a[c>>0]|0;if(!(e<<24>>24)){b=0;break}f=e&255|f<<8&65280;if((f|0)==(g|0))break;else b=c}return b|0}function E4(b,c){b=b|0;c=c|0;var e=0,f=0;f=(d[c+1>>0]|0)<<16|(d[c>>0]|0)<<24|(d[c+2>>0]|0)<<8;e=b+2|0;c=a[e>>0]|0;b=(d[b+1>>0]|0)<<16|(d[b>>0]|0)<<24|(c&255)<<8;c=c<<24>>24!=0;if(!((b|0)==(f|0)|c^1))do{e=e+1|0;c=a[e>>0]|0;b=(c&255|b)<<8;c=c<<24>>24!=0}while(!((b|0)==(f|0)|c^1));return (c?e+-2|0:0)|0}function F4(b,c){b=b|0;c=c|0;var e=0,f=0,g=0;f=(d[c+1>>0]|0)<<16|(d[c>>0]|0)<<24|(d[c+2>>0]|0)<<8|(d[c+3>>0]|0);c=b+3|0;g=a[c>>0]|0;e=g&255|((d[b+1>>0]|0)<<16|(d[b>>0]|0)<<24|(d[b+2>>0]|0)<<8);b=g<<24>>24!=0;if(!((e|0)==(f|0)|b^1))do{c=c+1|0;b=a[c>>0]|0;e=b&255|e<<8;b=b<<24>>24!=0}while(!((e|0)==(f|0)|b^1));return (b?c+-3|0:0)|0}function G4(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+1056|0;t=v+1024|0;u=v;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;c[t+16>>2]=0;c[t+20>>2]=0;c[t+24>>2]=0;c[t+28>>2]=0;e=a[d>>0]|0;a:do if(e<<24>>24){s=0;f=e;e=e&255;while(1){if(!(a[b+s>>0]|0)){e=0;break a}r=t+(((f&255)>>>5&255)<<2)|0;c[r>>2]=c[r>>2]|1<<(f&31);s=s+1|0;c[u+(e<<2)>>2]=s;e=a[d+s>>0]|0;if(!(e<<24>>24))break;else{f=e;e=e&255}}m=s>>>0>1;if(m){f=0;k=-1;g=1;b:while(1){h=1;e=f;while(1){f=g;c:while(1){j=1;while(1){g=a[d+(j+k)>>0]|0;i=a[d+f>>0]|0;if(g<<24>>24!=i<<24>>24)break c;if((j|0)==(h|0))break;j=j+1|0;f=j+e|0;if(f>>>0>=s>>>0){n=h;e=k;break b}}e=h+e|0;f=e+1|0;if(f>>>0>=s>>>0){n=h;e=k;break b}}h=f-k|0;if((g&255)<=(i&255))break;g=f+1|0;if(g>>>0>=s>>>0){n=h;e=k;break b}else e=f}g=e+2|0;if(g>>>0>=s>>>0){n=1;break}else{f=e+1|0;k=e}}if(m){h=0;m=-1;i=1;while(1){f=1;g=h;while(1){h=i;d:while(1){k=1;while(1){i=a[d+(k+m)>>0]|0;j=a[d+h>>0]|0;if(i<<24>>24!=j<<24>>24)break d;if((k|0)==(f|0))break;k=k+1|0;h=k+g|0;if(h>>>0>=s>>>0){h=n;g=m;i=27;break a}}g=f+g|0;h=g+1|0;if(h>>>0>=s>>>0){h=n;g=m;i=27;break a}}f=h-m|0;if((i&255)>=(j&255))break;i=h+1|0;if(i>>>0>=s>>>0){h=n;g=m;i=27;break a}else g=h}i=g+2|0;if(i>>>0>=s>>>0){h=n;f=1;i=27;break}else{h=g+1|0;m=g}}}else{h=n;f=1;g=-1;i=27}}else{h=1;e=-1;f=1;g=-1;i=27}}else{h=1;e=-1;s=0;f=1;g=-1;i=27}while(0);e:do if((i|0)==27){q=(g+1|0)>>>0>(e+1|0)>>>0;f=q?f:h;q=q?g:e;r=q+1|0;if(!(g2(d,d+f|0,r)|0))p=s-f|0;else{f=s-q+-1|0;p=0;f=(q>>>0>f>>>0?q:f)+1|0}k=s|63;m=s+-1|0;n=(p|0)!=0;o=s-f|0;e=b;j=0;g=b;while(1){h=e;do if((g-h|0)>>>0<s>>>0){i=w2(g,0,k)|0;if(i)if((i-h|0)>>>0<s>>>0){e=0;break e}else break;else{i=g+k|0;break}}else i=g;while(0);g=a[e+m>>0]|0;f:do if(!(1<<(g&31)&c[t+(((g&255)>>>5&255)<<2)>>2])){h=0;g=s}else{g=s-(c[u+((g&255)<<2)>>2]|0)|0;if(g|0){h=0;g=n&(j|0)!=0&g>>>0<f>>>0?o:g;break}g=r>>>0>j>>>0?r:j;h=a[d+g>>0]|0;g:do if(!(h<<24>>24))g=r;else{while(1){if(h<<24>>24!=(a[e+g>>0]|0))break;g=g+1|0;h=a[d+g>>0]|0;if(!(h<<24>>24)){g=r;break g}}h=0;g=g-q|0;break f}while(0);while(1){if(g>>>0<=j>>>0)break e;g=g+-1|0;if((a[d+g>>0]|0)!=(a[e+g>>0]|0)){h=p;g=f;break}}}while(0);e=e+g|0;j=h;g=i}}while(0);l=v;return e|0}function H4(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=a;c[e+4>>2]=b;b=K1(Pa(33,e|0)|0)|0;l=d;return b|0}function I4(a,b){a=a|0;b=b|0;return J4(a,b,(D3(a)|0)+1|0)|0}function J4(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;e=c&255;do{if(!d){c=0;break}d=d+-1|0;c=b+d|0}while((a[c>>0]|0)!=e<<24>>24);return c|0}function K4(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;j=l;l=l+32|0;i=j;h=((g|0)<0)<<31>>31;do if((g&4095|0)==0&(h&-4096|0)==0){if(b>>>0>2147483646){c[(L1()|0)>>2]=12;a=-1;break}if(e&16|0)H3();h=z6(g|0,h|0,12)|0;c[i>>2]=a;c[i+4>>2]=b;c[i+8>>2]=d;c[i+12>>2]=e;c[i+16>>2]=f;c[i+20>>2]=h;a=K1(Ga(192,i|0)|0)|0}else{c[(L1()|0)>>2]=22;a=-1}while(0);l=j;return a|0}function L4(a){a=a|0;return M4(a)|0}function M4(a){a=a|0;return L6(a|0)|0}function N4(a,b,c){a=a|0;b=b|0;c=c|0;O4(a,b,c)|0;return a|0}function O4(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=d;do if(!((g^b)&3)){f=(e|0)!=0;a:do if(f&(g&3|0)!=0)while(1){g=a[d>>0]|0;a[b>>0]=g;if(!(g<<24>>24))break a;e=e+-1|0;d=d+1|0;b=b+1|0;f=(e|0)!=0;if(!(f&(d&3|0)!=0)){h=5;break}}else h=5;while(0);if((h|0)==5)if(!f){e=0;break}if(a[d>>0]|0){b:do if(e>>>0>3){f=d;while(1){d=c[f>>2]|0;if((d&-2139062144^-2139062144)&d+-16843009|0){d=f;break b}c[b>>2]=d;e=e+-4|0;d=f+4|0;b=b+4|0;if(e>>>0>3)f=d;else break}}while(0);h=11}}else h=11;while(0);c:do if((h|0)==11)if(!e)e=0;else while(1){h=a[d>>0]|0;a[b>>0]=h;if(!(h<<24>>24))break c;e=e+-1|0;b=b+1|0;if(!e){e=0;break}else d=d+1|0}while(0);u6(b|0,0,e|0)|0;return b|0}function P4(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=l;l=l+32|0;f=g;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;c[f+24>>2]=0;c[f+28>>2]=0;e=a[d>>0]|0;do if(!(e<<24>>24))d=0;else{if(!(a[d+1>>0]|0)){d=b;while(1)if((a[d>>0]|0)==e<<24>>24)d=d+1|0;else break;d=d-b|0;break}do{h=f+(((e&255)>>>5&255)<<2)|0;c[h>>2]=c[h>>2]|1<<(e&31);d=d+1|0;e=a[d>>0]|0}while(e<<24>>24!=0);e=a[b>>0]|0;a:do if(!(e<<24>>24))d=b;else{d=b;do{if(!(c[f+(((e&255)>>>5&255)<<2)>>2]&1<<(e&31)))break a;d=d+1|0;e=a[d>>0]|0}while(e<<24>>24!=0)}while(0);d=d-b|0}while(0);l=g;return d|0}function Q4(a,c){a=a|0;c=c|0;var d=0,f=0,g=0;g=a+2|0;f=a+4|0;d=G6((e[c+2>>1]|0)<<16|(e[c>>1]|0)|0,e[c+4>>1]|0|0,(e[g>>1]|0)<<16|(e[a>>1]|0)|0,e[f>>1]|0|0)|0;c=w6(d|0,D|0,e[c+6>>1]|0|0,0)|0;d=D;b[a>>1]=c;a=z6(c|0,d|0,16)|0;b[g>>1]=a;b[f>>1]=d;D=d&65535;return c|0}function R4(a){a=a|0;var b=0;b=Q4(a,66122)|0;b=v6(b|0,D|0,4)|0;a=D|1072693248;c[j>>2]=b;c[j+4>>2]=a;return +(+h[j>>3]+-1.0)}function S4(){return +(+R4(66116))}function T4(a){a=a|0;var b=0;b=186776;c[b>>2]=a+-1;c[b+4>>2]=0;return}function U4(){var a=0,b=0,d=0;b=186776;b=G6(c[b>>2]|0,c[b+4>>2]|0,1284865837,1481765933)|0;b=w6(b|0,D|0,1,0)|0;a=D;d=186776;c[d>>2]=b;c[d+4>>2]=a;a=z6(b|0,a|0,33)|0;return a|0}function V4(a){a=a|0;b[97016]=b[33058]|0;b[97017]=b[33059]|0;b[97018]=b[33060]|0;b[33058]=b[a>>1]|0;b[33059]=b[a+2>>1]|0;b[33060]=b[a+4>>1]|0;return 194032}function W4(a){a=a|0;var c=0,d=0;c=l;l=l+16|0;d=c;b[d>>1]=13070;b[d+2>>1]=a;b[d+4>>1]=a>>>16;V4(d)|0;l=c;return}function X4(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=l;l=l+48|0;i=v;t=Y4()|0;a:do if(!t)b=12;else{u=Z4(0,0)|0;if(!u){_4(t);b=12;break}e=i+8|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[i>>2]=u;c[i+4>>2]=t;c[i+16>>2]=b;c[i+32>>2]=d;e=i+28|0;c[e>>2]=-1;b=$4(i)|0;b:do if(!b){h=i+20|0;f=c[h>>2]|0;c[a>>2]=f+-1;j=c[i+8>>2]|0;b=c[e>>2]|0;if((b|0)<(f|0)){g=m6(1,68)|0;if(g){r=b>>>31^1;c[g+60>>2]=r;c[g+28>>2]=f;if((d&8|0)==0|(r|0)!=0){b=a5(0,t,j,g)|0;if(b|0){h=0;i=0;f=0;e=0;break}f=c[g+40>>2]|0;if((f|0)>0){b=(f<<2)+4|0;e=k6(b)|0;if(!e){h=0;i=0;b=12;f=0;e=0;break}c[g+32>>2]=e;u6(e|0,-1,b|0)|0}else e=0;r=m6(f<<1|1,4)|0;c[g+36>>2]=r;if(!r){h=0;i=0;b=12;f=0;e=0;break}b=m6(c[h>>2]|0,12)|0;if(!b){h=0;i=0;b=12;f=0;e=0;break}c[g+16>>2]=b;b=a5(u,t,j,g)|0;if(!b)b=e;else{h=0;i=0;f=0;e=0;break}}else b=0;r=i+24|0;b=b5(u,t,j,r,b)|0;if(!b){b=c[r>>2]|0;c[r>>2]=b+1;b=c5(u,0,0,b)|0;if((b|0)!=0?(s=d5(u,j,b)|0,(s|0)!=0):0){b=e5(u,t,s)|0;if(!b){e=c[r>>2]|0;b=e<<2;p=k6(b)|0;if(p){q=k6(b)|0;if(q){if((e|0)>0)u6(p|0,0,e<<2|0)|0;f5(s,0,p,0)|0;f=c[r>>2]|0;if((f|0)>0){b=0;e=0;do{c[q+(e<<2)>>2]=b;o=p+(e<<2)|0;b=b+1+(c[o>>2]|0)|0;c[o>>2]=0;e=e+1|0}while((e|0)<(f|0));m=b}else m=0;n=m6(m+1|0,32)|0;if(n){c[g>>2]=n;o=g+4|0;c[o>>2]=m;b=f5(s,n,p,q)|0;if(!b){c[g+20>>2]=0;f=s+24|0;b=c[f>>2]|0;e=0;while(1){e=e+1|0;if((c[b>>2]|0)<=-1)break;else b=b+32|0}k=m6(e,32)|0;if(!k){h=p;i=q;b=12;f=p;e=q}else{c[g+8>>2]=k;b=c[f>>2]|0;e=c[b>>2]|0;if((e|0)>-1){j=b;b=0;do{c[k+(b<<5)+8>>2]=n+(c[q+(e<<2)>>2]<<5);c[k+(b<<5)+12>>2]=e;h=k+(b<<5)+16|0;c[h>>2]=0;i=j+12|0;f=c[i>>2]|0;if(f|0){e=0;do{w=e;e=e+1|0}while((c[f+(w<<2)>>2]|0)>-1);e=e<<2;f=k6(e)|0;c[h>>2]=f;if(!f){h=p;i=q;b=12;f=p;e=q;break b}B6(f|0,c[i>>2]|0,e|0)|0}c[k+(b<<5)+20>>2]=c[j+16>>2];b=b+1|0;j=j+32|0;e=c[j>>2]|0}while((e|0)>-1)}else b=0;c[k+(b<<5)+8>>2]=0;c[o>>2]=m;c[g+12>>2]=n+(c[q+(c[c[s+28>>2]>>2]<<2)>>2]<<5);c[g+52>>2]=c[r>>2];c[g+56>>2]=d;g5(u);_4(t);l6(p);l6(q);c[a+4>>2]=g;b=0;break a}}else{h=p;i=q;f=p;e=q}}else{h=p;i=q;b=12;f=p;e=q}}else{h=p;i=q;b=12;f=p;e=0}}else{h=p;i=0;b=12;f=0;e=0}}else{h=0;i=0;f=0;e=0}}else{h=0;i=0;b=12;f=0;e=0}}else{h=0;i=0;f=0;e=0}}else{h=0;i=0;b=12;f=0;e=0}}else{g=0;h=0;i=0;b=6;f=0;e=0}}else{g=0;h=0;i=0;f=0;e=0}while(0);g5(u);_4(t);if(h|0)l6(f);if(i|0)l6(e);c[a+4>>2]=g;h5(a)}while(0);l=v;return b|0}function Y4(){var a=0,b=0;a=k6(20)|0;do if(a){b=k6(2048)|0;c[a+16>>2]=b;if(!b){l6(a);a=0;break}else{c[a>>2]=512;c[a+4>>2]=1024e3;c[a+8>>2]=128;c[a+12>>2]=0;break}}while(0);return a|0}function Z4(a,b){a=a|0;b=b|0;if(!a)b=m6(1,24)|0;else{c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0}return b|0}function _4(a){a=a|0;l6(c[a+16>>2]|0);l6(a);return}function $4(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+16|0;q=v+4|0;r=v;s=c[b+32>>2]&1;t=b+16|0;e=c[t>>2]|0;u=c[b+4>>2]|0;d=l5(u,0)|0;a:do if(!d){n=(s|0)!=0;o=b+8|0;p=b+12|0;m=n^1;d=0;k=1;b:while(1){g=0;h=d;f=0;c:while(1){d=a[e>>0]|0;if(n){if(d<<24>>24==40)break;if((h|0)!=0&d<<24>>24==41)j=13;else j=14}else if(d<<24>>24==92)switch(a[e+1>>0]|0){case 40:break c;case 41:{j=13;break}default:j=14}else j=14;if((j|0)==13){j=0;i=c5(c[b>>2]|0,-1,-1,-1)|0;c[o>>2]=i;if(!i){d=12;break a}else i=f}else if((j|0)==14){j=0;d=B5(b,e)|0;if(d|0)break a;i=f;e=c[p>>2]|0}while(1){d:while(1){d=a[e>>0]|0;switch(d<<24>>24){case 42:case 92:break;default:{if(!n)break d;switch(d<<24>>24){case 123:case 63:case 43:break;default:break d}}}d=d<<24>>24==92;if(n&d)break;f=e+1|0;if(d)switch(a[f>>0]|0){case 123:case 63:case 43:break;default:break d}e=d?f:e;if((!n?(e|0)==((c[t>>2]|0)+1|0):0)?(a[e+-1>>0]|0)==94:0)break;if((a[e>>0]|0)==123){e=C5(e+1|0,s,q,r)|0;if(!e){j=28;break b}d=c[r>>2]|0;f=c[b>>2]|0;if(!d)d=c5(f,-1,-1,-1)|0;else j=36}else{c[q>>2]=0;c[r>>2]=-1;d=a[e>>0]|0;if(d<<24>>24==43){c[q>>2]=1;d=a[e>>0]|0}if(d<<24>>24==63){c[r>>2]=1;d=1}else d=-1;e=e+1|0;f=c[b>>2]|0;j=36}if((j|0)==36){j=0;d=w5(f,c[o>>2]|0,c[q>>2]|0,d,0)|0}c[o>>2]=d;if(!d){d=12;break a}}g=d5(c[b>>2]|0,g,c[o>>2]|0)|0;f=a[e>>0]|0;do if(!n)if(f<<24>>24==92)if((a[e+1>>0]|0)==41){d=x5(c[b>>2]|0,i,g)|0;j=49}else{d=92;j=44}else{d=f;j=46}else{if(f<<24>>24!=124)if((h|0)!=0&f<<24>>24==41)f=41;else{d=f;j=44;break}else f=124;d=x5(c[b>>2]|0,i,g)|0;j=50}while(0);if((j|0)==44)if(d<<24>>24==92&m)if((a[e+1>>0]|0)==124)j=48;else{f=i;continue c}else j=46;if((j|0)==46)if(!(d<<24>>24))j=48;else{f=i;continue c}if((j|0)==48){d=x5(c[b>>2]|0,i,g)|0;if(f<<24>>24==92)j=49;else j=50}if((j|0)==49){j=0;if((a[e+1>>0]|0)==124){f=2;break}if(!h){d=8;break a}e=e+2|0;f=92}else if((j|0)==50){j=0;if(f<<24>>24==124){f=1;break}e=f<<24>>24==41?e+1|0:e}d=D5(b,d,m5(u)|0)|0;if(d|0)break a;d=f<<24>>24==0;f=(h|0)<1;if(f&d){j=56;break b}if(f|d){d=8;break a}g=n5(u)|0;h=h+-1|0;i=n5(u)|0}g=0;e=e+f|0;f=d}d=k5(u,f)|0;if(d|0)break a;d=k5(u,g)|0;if(d|0)break a;d=l5(u,k)|0;if(d|0)break a;d=h+1|0;k=k+1|0;e=n?e+1|0:e+2|0}if((j|0)==28){d=10;break}else if((j|0)==56){c[b+20>>2]=k;d=0;break}}while(0);l=v;return d|0}function a5(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;x=j5(d)|0;y=(b|0)==0|(f|0)==0;if(!y){c[f+48>>2]=0;c[c[f+36>>2]>>2]=-1}h=c[f+28>>2]|0;z=k6((h<<3)+8|0)|0;do if(!z)g=12;else{c[z>>2]=-1;A=k6((h<<2)+4|0)|0;if(!A){l6(z);g=12;break}c[A>>2]=-1;g=0;while(1)if(g>>>0>h>>>0)break;else g=g+1|0;k5(d,e)|0;g=l5(d,0)|0;a:do if((g|0)!=0|(j5(d)|0)<=(x|0)){e=z;n=0;h=0;m=0;l=-1}else{u=f+32|0;v=f+36|0;w=f+16|0;e=z;n=0;h=0;m=0;t=1;l=-1;s=0;while(1){b:do switch(m5(d)|0){case 6:{i=m5(d)|0;g=0;do{j=e+(g<<2)|0;g=g+1|0}while((c[j>>2]|0)>-1);c[j>>2]=i<<1|1;c[e+(g<<2)>>2]=-1;g=0;while(1)if((c[A+(g<<2)>>2]|0)>-1)g=g+1|0;else break;c[A+(g+-1<<2)>>2]=-1;g=0;j=t;i=s;break}case 0:{q=n5(d)|0;r=q+12|0;j=c[r>>2]|0;if((j|0)>-1){g=0;do{i=e+(g<<2)|0;g=g+1|0}while((c[i>>2]|0)>-1);c[i>>2]=j<<1;c[e+(g<<2)>>2]=-1;if(!y){g=0;while(1)if((c[A+(g<<2)>>2]|0)>-1)g=g+1|0;else break;i=(c[w>>2]|0)+(j*12|0)+8|0;c[i>>2]=0;if((g|0)>0){g=k6((g<<2)+4|0)|0;if(!g){g=12;j=t;i=s;break b}c[i>>2]=g;i=c[A>>2]|0;if((i|0)>-1){k=0;j=g;do{c[j>>2]=i;k=k+1|0;i=c[A+(k<<2)>>2]|0;j=g+(k<<2)|0}while((i|0)>-1);g=j}c[g>>2]=-1}}g=l5(d,c[r>>2]|0)|0;if(g|0){j=t;i=s;break b}g=l5(d,6)|0;if(g|0){j=t;i=s;break b}}c:do switch(c[q>>2]|0){case 0:{p=c[c[q+4>>2]>>2]|0;if((p|0)>-1|(p|0)==-4?(c[e>>2]|0)>-1:0){if(y){c[q+20>>2]=1;g=0}else{g=y5(b,q,m)|0;c[(c[u>>2]|0)+(m<<2)>>2]=s;if((l|0)>-1){j=c[v>>2]|0;i=0;while(1){k=j+(i<<2)|0;o=i+1|0;if((c[k>>2]|0)>-1)i=o;else break}c[k>>2]=m;c[j+(o<<2)>>2]=l;c[j+(i+2<<2)>>2]=-1;h=h+1|0;l=-1}z5(e,f,m)}c[e>>2]=-1;p=t+1|0;o=s;n=n+1|0;m=t}else{p=t;g=0;o=s}break}case 1:{j=c[q+4>>2]|0;k=c[j>>2]|0;j=c[j+4>>2]|0;g=k5(d,q)|0;if(!g){g=l5(d,5)|0;if(!g){g=k5(d,j)|0;if(!g){g=l5(d,0)|0;if(!g){i=k+20|0;g=l5(d,(c[i>>2]|0)+t|0)|0;if(!g){if((c[i>>2]|0)>0){i=(c[j+20>>2]|0)>0;g=i?t:-1;i=(i&1)+t|0}else{g=-1;i=t}g=l5(d,g)|0;if(!g){g=l5(d,4)|0;if(!g){g=k5(d,k)|0;if(!g){p=i;g=l5(d,0)|0;o=s}else{p=i;o=s}}else{p=i;o=s}}else{p=i;o=s}}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}break}case 2:{i=c[q+4>>2]|0;if(y){if((c[e>>2]|0)>-1)g=1;else g=(a[i+12>>0]&1)!=0;g=l5(d,g&1)|0;if(g|0){p=t;o=s;break c}}else{g=l5(d,m)|0;if(g|0){p=t;o=s;break c}g=l5(d,a[i+12>>0]&1)|0;if(g|0){p=t;o=s;break c}}g=k5(d,q)|0;if(!g){g=l5(d,1)|0;if(!g){g=k5(d,c[i>>2]|0)|0;if(!g){g=l5(d,0)|0;if(!g){if((c[e>>2]|0)<=-1?(a[i+12>>0]&1)==0:0){p=t;g=0;o=0;break c}if(y)g=0;else{g=y5(b,q,m)|0;c[(c[u>>2]|0)+(m<<2)>>2]=(a[i+12>>0]&1)==0?s:1;if((l|0)>-1){j=c[v>>2]|0;i=0;while(1){k=j+(i<<2)|0;o=i+1|0;if((c[k>>2]|0)>-1)i=o;else break}c[k>>2]=m;c[j+(o<<2)>>2]=l;c[j+(i+2<<2)>>2]=-1;h=h+1|0;l=-1}z5(e,f,m)}c[e>>2]=-1;p=t+1|0;o=0;n=n+1|0;m=t}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}break}case 3:{j=c[q+4>>2]|0;k=c[j>>2]|0;j=c[j+4>>2]|0;i=(c[e>>2]|0)>-1;p=t+1|0;g=l5(d,i?p:t)|0;if(!g){g=l5(d,i?t:m)|0;if(!g){g=k5(d,e)|0;if(!g){g=l5(d,(c[e>>2]|0)>>>31^1)|0;if(!g){g=k5(d,q)|0;if(!g){g=k5(d,j)|0;if(!g){g=k5(d,k)|0;if(!g){g=l5(d,3)|0;if(!g){g=k5(d,j)|0;if(!g){g=l5(d,0)|0;if(!g){g=l5(d,2)|0;if(g|0){p=t;o=s;break c}g=k5(d,k)|0;if(g|0){p=t;o=s;break c}g=l5(d,0)|0;if(g|0){p=t;o=s;break c}if((c[e>>2]|0)>-1){if(y)g=0;else{g=y5(b,q,m)|0;c[(c[u>>2]|0)+(m<<2)>>2]=s;if((l|0)>-1){j=c[v>>2]|0;i=0;while(1){k=j+(i<<2)|0;o=i+1|0;if((c[k>>2]|0)>-1)i=o;else break}c[k>>2]=m;c[j+(o<<2)>>2]=l;c[j+(i+2<<2)>>2]=-1;h=h+1|0;l=-1}z5(e,f,m)}c[e>>2]=-1;n=n+1|0;m=t;i=p}else{g=0;i=t}t=(c[q+16>>2]|0)>0;p=t?i+2|0:i;o=s;m=t?i+1|0:m}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}}else{p=t;o=s}break}default:{p=t;g=0;o=s}}while(0);j=c[r>>2]|0;if((j|0)>-1){i=0;do{k=A+(i<<2)|0;i=i+1|0}while((c[k>>2]|0)>-1);c[k>>2]=j;c[A+(i<<2)>>2]=-1;j=p;i=o}else{j=p;i=o}break}case 1:{g=n5(d)|0;if(y){i=c[(c[c[g+4>>2]>>2]|0)+20>>2]|0;c[g+20>>2]=(m5(d)|0)+i;i=0;l=-1}else{q=m5(d)|0;r=m5(d)|0;i=q;l=(q|0)==0?l:r}g=0;j=t;i=y?s:(i|0)==0&1;break}case 4:{i=m5(d)|0;j=m5(d)|0;g=0;m=(i|0)>-1?i:m;i=s;break}case 5:{g=n5(d)|0;if(y){j=c[g+4>>2]|0;c[g+20>>2]=(c[(c[j+4>>2]|0)+20>>2]|0)+(c[(c[j>>2]|0)+20>>2]|0);g=0;j=t;i=s}else{g=0;j=t;i=s}break}case 2:{while(1)if((c[e>>2]|0)>-1)e=e+4|0;else{g=0;j=t;i=s;break}break}case 3:{j=n5(d)|0;o=n5(d)|0;g=n5(d)|0;e=m5(d)|0;if(y){r=c[g+4>>2]|0;s=g+16|0;c[g+20>>2]=(c[(c[r>>2]|0)+20>>2]|0)+e+(c[(c[r+4>>2]|0)+20>>2]|0)+((c[s>>2]|0)>0?2:0);g=s}else g=g+16|0;e=n5(d)|0;i=m5(d)|0;k=m5(d)|0;if((c[g>>2]|0)>0){if(y)g=0;else{g=A5(b,j,i)|0;c[(c[u>>2]|0)+(i<<2)>>2]=1;if(!g)g=A5(b,o,k)|0;c[(c[u>>2]|0)+(k<<2)>>2]=1}n=n+2|0;j=t;i=1}else{g=0;j=t;i=1}break}default:{g=0;j=t;i=s}}while(0);if((g|0)!=0|(j5(d)|0)<=(x|0))break a;else{t=j;s=i}}}while(0);if(!y?(z5(e,f,m),(l|0)>-1):0){i=c[f+36>>2]|0;e=0;while(1){j=i+(e<<2)|0;k=e+1|0;if((c[j>>2]|0)>-1)e=k;else break}c[j>>2]=m;c[i+(k<<2)>>2]=l;c[i+(e+2<<2)>>2]=-1;h=h+1|0}c[f+48>>2]=n;c[f+40>>2]=n;c[f+44>>2]=h;l6(z);l6(A)}while(0);return g|0}function b5(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=l;l=l+16|0;t=y+12|0;w=y+8|0;x=y+4|0;u=y;v=j5(b)|0;c[t>>2]=0;c[w>>2]=0;d=k5(b,d)|0;a:do if(!d){d=l5(b,0)|0;if(!d){b:do if((j5(b)|0)>(v|0)){g=0;i=0;j=0;c:while(1){q=m5(b)|0;r=n5(b)|0;d:do switch(q|0){case 0:{switch(c[r>>2]|0){case 0:{d=c[r+4>>2]|0;r=c[d>>2]|0;if(!((r|0)>-1|(r|0)==-4)){d=j;break d}r=d+8|0;d=(c[r>>2]|0)+j|0;c[r>>2]=d;if((d|0)<=(c[w>>2]|0)){d=j;break d}c[w>>2]=d;d=j;break d}case 3:{h=c[r+4>>2]|0;d=k5(b,c[h+4>>2]|0)|0;if(d|0)break b;d=l5(b,0)|0;if(d|0)break b;d=k5(b,c[h>>2]|0)|0;if(d|0)break b;break}case 1:{h=c[r+4>>2]|0;d=k5(b,c[h+4>>2]|0)|0;if(d|0)break b;d=l5(b,0)|0;if(d|0)break b;d=k5(b,c[h>>2]|0)|0;if(d|0)break b;break}case 2:{h=c[r+4>>2]|0;d=l5(b,j)|0;if(d|0)break b;d=k5(b,r)|0;if(d|0)break b;d=l5(b,1)|0;if(d|0)break b;d=k5(b,c[h>>2]|0)|0;if(d|0)break b;d=l5(b,0)|0;if(d|0)break b;if((c[h+4>>2]|0)<=1?(c[h+8>>2]|0)<=1:0)d=j;else{c[t>>2]=0;d=0}i=i+1|0;break d}default:{d=j;break d}}d=l5(b,0)|0;if(!d)d=j;else break b;break}case 1:{p=r+4|0;o=c[p>>2]|0;q=m5(b)|0;c[t>>2]=q;n=o+4|0;j=c[n>>2]|0;if((j|0)<=1)if((c[o+8>>2]|0)>1){c[x>>2]=0;if((j|0)>0)s=30;else{d=q;h=0;s=37}}else d=q;else{c[x>>2]=0;s=30}e:do if((s|0)==30){d=v5(a,b,c[o>>2]|0,(j|0)>1?1:2,t,f,u,w)|0;if(!d){h=0;k=q;m=1}else{s=34;break c}while(1){d=c[u>>2]|0;if(!h)h=d;else h=d5(a,h,d)|0;if(!h){d=12;s=34;break c}j=c[n>>2]|0;if((m|0)>=(j|0)){d=k;s=37;break e}k=c[t>>2]|0;m=m+1|0;d=v5(a,b,c[o>>2]|0,(m|0)<(j|0)?1:2,t,f,u,w)|0;if(d|0){s=34;break c}}}while(0);if((s|0)==37){s=0;n=o+8|0;k=c[n>>2]|0;if((k|0)==-1){k=c[t>>2]|0;d=v5(a,b,c[o>>2]|0,0,t,0,x,w)|0;if(d|0)break c;j=w5(a,c[x>>2]|0,0,-1,0)|0;c[x>>2]=j;if(!j){d=12;break c}else d=k}else if((j|0)<(k|0)){k=j;j=0;do{m=c[t>>2]|0;d=v5(a,b,c[o>>2]|0,0,t,0,u,w)|0;if(d|0){g=j;s=48;break c}d=c[u>>2]|0;if(!j)j=d;else j=d5(a,d,j)|0;if(!j){d=12;g=0;s=48;break c}d=c5(a,-1,-1,-1)|0;if(!d){d=12;g=j;s=48;break c}j=x5(a,d,j)|0;if(!j){d=12;g=0;s=48;break c}k=k+1|0}while((k|0)<(c[n>>2]|0));c[x>>2]=j;d=m}else j=0;c[t>>2]=d;if(h){if(j){h=d5(a,h,j)|0;s=54}}else{h=j;s=54}if((s|0)==54){s=0;if(!h){d=12;break c}}c[p>>2]=c[h+4>>2];c[r>>2]=c[h>>2]}i=i+-1|0;h=d-q+g|0;if(!i){c[t>>2]=h;g=h;i=0;d=h}else g=h;break}default:d=j}while(0);if((j5(b)|0)>(v|0))j=d;else{d=0;break b}}if((s|0)!=34)if((s|0)==48)c[x>>2]=g;break a}else{d=0;g=0}while(0);x=(c[e>>2]|0)+g|0;w=c[w>>2]|0;c[e>>2]=(w|0)>(x|0)?w:x}}while(0);l=y;return d|0}function c5(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=s5(a,0,0,1,20)|0;a=u5(a,0,f)|0;if(!a)a=0;else{c[f>>2]=b;c[f+4>>2]=d;c[f+8>>2]=e}return a|0}function d5(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(b){e=s5(a,0,0,1,8)|0;a=u5(a,1,e)|0;if(!a)d=0;else{c[e>>2]=b;c[e+4>>2]=d;c[a+16>>2]=(c[d+16>>2]|0)+(c[b+16>>2]|0);d=a}}return d|0}function e5(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;j=o+4|0;k=o;m=j5(b)|0;d=k5(b,d)|0;a:do if(!d){d=l5(b,0)|0;if(!d)if((j5(b)|0)>(m|0)){b:while(1){h=m5(b)|0;i=n5(b)|0;c:do switch(h|0){case 0:switch(c[i>>2]|0){case 0:{g=c[i+4>>2]|0;f=c[g>>2]|0;if((f|0)==-4){c[i+8>>2]=0;d=g+8|0;h=o5(a,c[d>>2]|0,0,1114111,0,0,-1)|0;c[i+24>>2]=h;if(!h){d=12;break a}h=o5(a,c[d>>2]|0,0,1114111,0,0,c[g+4>>2]|0)|0;c[i+28>>2]=h;if(!h){d=12;break a}else break c}d=i+8|0;if((f|0)<0){c[d>>2]=1;h=p5(a)|0;c[i+24>>2]=h;if(!h){d=12;break a}h=p5(a)|0;c[i+28>>2]=h;if(!h){d=12;break a}else break c}else{c[d>>2]=0;d=g+8|0;e=g+4|0;h=o5(a,c[d>>2]|0,f,c[e>>2]|0,0,0,-1)|0;c[i+24>>2]=h;if(!h){d=12;break a}h=o5(a,c[d>>2]|0,c[g>>2]|0,c[e>>2]|0,c[g+12>>2]|0,c[g+16>>2]|0,-1)|0;c[i+28>>2]=h;if(!h){d=12;break a}else break c}}case 3:{d=k5(b,i)|0;if(d|0)break a;d=l5(b,1)|0;if(d|0)break a;e=i+4|0;d=k5(b,c[(c[e>>2]|0)+4>>2]|0)|0;if(d|0)break a;d=l5(b,0)|0;if(d|0)break a;d=k5(b,c[c[e>>2]>>2]|0)|0;if(d|0)break a;d=l5(b,0)|0;if(!d)break c;else break a}case 1:{d=k5(b,i)|0;if(d|0)break a;d=l5(b,2)|0;if(d|0)break a;e=i+4|0;d=k5(b,c[(c[e>>2]|0)+4>>2]|0)|0;if(d|0)break a;d=l5(b,0)|0;if(d|0)break a;d=k5(b,c[c[e>>2]>>2]|0)|0;if(d|0)break a;d=l5(b,0)|0;if(!d)break c;else break a}case 2:{d=k5(b,i)|0;if(d|0)break a;d=l5(b,3)|0;if(d|0)break a;d=k5(b,c[c[i+4>>2]>>2]|0)|0;if(d|0)break a;d=l5(b,0)|0;if(!d)break c;else break a}default:break c}case 1:{d=c[i+4>>2]|0;e=c[d>>2]|0;f=d+4|0;g=c[f>>2]|0;if(!(c[e+8>>2]|0))h=(c[g+8>>2]|0)!=0;else h=1;c[i+8>>2]=h&1;h=q5(a,c[e+24>>2]|0,c[g+24>>2]|0,0,0)|0;c[i+24>>2]=h;if(!h){d=12;break a}h=q5(a,c[(c[d>>2]|0)+28>>2]|0,c[(c[f>>2]|0)+28>>2]|0,0,0)|0;c[i+28>>2]=h;if(!h){d=12;break a}break}case 3:{h=c[i+4>>2]|0;d=c[h>>2]|0;if(!(c[h+4>>2]|0))e=1;else e=(c[d+8>>2]|0)!=0&1;c[i+8>>2]=e;c[i+24>>2]=c[d+24>>2];c[i+28>>2]=c[d+28>>2];break}case 2:{g=c[i+4>>2]|0;d=c[g>>2]|0;e=d+8|0;if(!(c[e>>2]|0))f=0;else f=(c[(c[g+4>>2]|0)+8>>2]|0)!=0;c[i+8>>2]=f&1;if(c[e>>2]|0){d=r5(b,d,0,0,j)|0;if(d|0)break b;e=k6((c[j>>2]<<2)+4|0)|0;if(!e){d=12;break b}c[e>>2]=-1;c[k>>2]=0;d=r5(b,c[g>>2]|0,e,k,0)|0;if(d|0){n=45;break b}d=g+4|0;h=i+24|0;c[h>>2]=q5(a,c[(c[d>>2]|0)+24>>2]|0,c[(c[g>>2]|0)+24>>2]|0,e,c[k>>2]|0)|0;l6(e);if(!(c[h>>2]|0)){d=12;break b}else f=d}else{c[i+24>>2]=c[d+24>>2];f=g+4|0}d=c[f>>2]|0;if(c[d+8>>2]|0){d=r5(b,d,0,0,j)|0;if(d|0)break b;e=k6((c[j>>2]<<2)+4|0)|0;if(!e){d=12;break b}c[e>>2]=-1;c[k>>2]=0;d=r5(b,c[f>>2]|0,e,k,0)|0;if(d|0){n=52;break b}i=i+28|0;c[i>>2]=q5(a,c[(c[g>>2]|0)+28>>2]|0,c[(c[f>>2]|0)+28>>2]|0,e,c[k>>2]|0)|0;l6(e);if(!(c[i>>2]|0)){d=12;break b}}else c[i+28>>2]=c[d+28>>2];break}default:{}}while(0);if((j5(b)|0)<=(m|0)){d=0;break a}}if((n|0)==45)l6(e);else if((n|0)==52)l6(e)}else d=0}while(0);l=o;return d|0}function f5(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:while(1){switch(c[a>>2]|0){case 2:{a=c[a+4>>2]|0;if((c[a+8>>2]|0)==-1?(h=c[a>>2]|0,h=i5(c[h+28>>2]|0,c[h+24>>2]|0,b,d,e)|0,(h|0)!=0):0){a=h;break a}break}case 3:{f=c[a+4>>2]|0;a=f5(c[f>>2]|0,b,d,e)|0;if(a|0)break a;a=f+4|0;break}case 1:{f=c[a+4>>2]|0;g=f+4|0;a=i5(c[(c[f>>2]|0)+28>>2]|0,c[(c[g>>2]|0)+24>>2]|0,b,d,e)|0;if(a|0)break a;a=f5(c[f>>2]|0,b,d,e)|0;if(!a)a=g;else break a;break}default:{a=0;break a}}a=c[a>>2]|0}return a|0}function g5(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;if(b|0)do{l6(c[b>>2]|0);d=b;b=c[b+4>>2]|0;l6(d)}while((b|0)!=0);l6(a);return}function h5(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=c[a+4>>2]|0;if(h|0){e=h+4|0;a=c[h>>2]|0;if(c[e>>2]|0){d=0;do{if(c[a+(d<<5)+8>>2]|0){b=c[a+(d<<5)+16>>2]|0;if(b){l6(b);a=c[h>>2]|0}b=c[a+(d<<5)+28>>2]|0;if(b){l6(b);a=c[h>>2]|0}}d=d+1|0}while(d>>>0<(c[e>>2]|0)>>>0)}if(a|0)l6(a);d=h+8|0;a=c[d>>2]|0;if(a|0){if(c[a+8>>2]|0){while(1){b=c[a+16>>2]|0;if(b|0)l6(b);if(!(c[a+40>>2]|0))break;else a=a+32|0}a=c[d>>2]|0}l6(a)}f=h+16|0;a=c[f>>2]|0;if(a|0){g=h+28|0;b=c[g>>2]|0;if(b){e=0;do{d=c[a+(e*12|0)+8>>2]|0;if(d){l6(d);b=c[g>>2]|0;a=c[f>>2]|0}e=e+1|0}while(e>>>0<b>>>0)}l6(a)}a=c[h+32>>2]|0;if(a|0)l6(a);a=c[h+20>>2]|0;if(a|0)l6(a);a=c[h+36>>2]|0;if(a|0)l6(a);l6(h)}return}function i5(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;g=c[a>>2]|0;h=(g|0)>-1;a:do if(!d)if(h){h=b+32|0;do{if((c[b>>2]|0)>-1?(y=e+(g<<2)|0,c[y>>2]=(c[y>>2]|0)+1,(c[h>>2]|0)>-1):0){g=h;do{y=e+(c[a>>2]<<2)|0;c[y>>2]=(c[y>>2]|0)+1;g=g+32|0}while((c[g>>2]|0)>-1)}a=a+32|0;g=c[a>>2]|0}while((g|0)>-1);g=0}else g=0;else if(h)while(1){h=c[b>>2]|0;b:do if((h|0)>-1){p=a+4|0;q=a+8|0;r=a+16|0;s=a+20|0;t=a+24|0;u=a+28|0;v=a+12|0;e=-1;g=b;while(1){o=h;while(1){if((o|0)!=(e|0))break;g=g+32|0;h=c[g>>2]|0;if((h|0)>-1)o=h;else break b}n=d+(c[f+(c[a>>2]<<2)>>2]<<5)|0;while(1){h=n+8|0;if(!(c[h>>2]|0))break;else n=n+32|0}c[n+40>>2]=0;c[n>>2]=c[p>>2];c[n+4>>2]=c[q>>2];c[h>>2]=d+(c[f+(o<<2)>>2]<<5);c[n+12>>2]=o;h=c[s>>2]|0;m=c[t>>2]|0;e=(m|0)!=0;i=c[g+16>>2]|c[r>>2]|(h|0?4:0)|(e?8:0);j=n+20|0;c[j>>2]=i;k=c[u>>2]|0;l=n+24|0;if((k|0)>-1){c[l>>2]=k;c[j>>2]=i|256}else c[l>>2]=h;if(e){h=0;do{l=h;h=h+1|0}while((c[m+(l<<2)>>2]|0)!=0);h=k6(h<<2)|0;c[n+28>>2]=h;if(!h){g=12;break a}k=c[t>>2]|0;e=c[k>>2]|0;if(e){j=0;i=h;do{c[i>>2]=e;j=j+1|0;e=c[k+(j<<2)>>2]|0;i=h+(j<<2)|0}while((e|0)!=0);h=i}c[h>>2]=0}else c[n+28>>2]=0;e=c[v>>2]|0;if(!e)h=0;else{h=0;while(1)if((c[e+(h<<2)>>2]|0)>-1)h=h+1|0;else break}k=g+12|0;i=c[k>>2]|0;if(!i)e=0;else{e=0;while(1)if((c[i+(e<<2)>>2]|0)>-1)e=e+1|0;else break}j=n+16|0;i=c[j>>2]|0;if(i|0)l6(i);c[j>>2]=0;h=e+h|0;if((h|0)>0){n=k6((h<<2)+4|0)|0;c[j>>2]=n;if(!n){g=12;break a}i=c[v>>2]|0;if((i|0)!=0?(w=c[i>>2]|0,(w|0)>-1):0){h=0;e=w;do{c[n+(h<<2)>>2]=e;h=h+1|0;e=c[i+(h<<2)>>2]|0}while((e|0)>-1);m=h}else m=0;j=c[k>>2]|0;if((j|0)!=0?(x=c[j>>2]|0,(x|0)>-1):0){k=(m|0)>0;h=m;i=0;l=x;do{c:do if(k){e=0;while(1){if((c[n+(e<<2)>>2]|0)==(l|0))break c;e=e+1|0;if((e|0)>=(m|0)){y=40;break}}}else y=40;while(0);if((y|0)==40){y=0;c[n+(h<<2)>>2]=l;h=h+1|0}i=i+1|0;l=c[j+(i<<2)>>2]|0}while((l|0)>-1)}else h=m;c[n+(h<<2)>>2]=-1}g=g+32|0;h=c[g>>2]|0;if((h|0)<=-1)break;else e=o}}while(0);a=a+32|0;if((c[a>>2]|0)<=-1){g=0;break}}else g=0;while(0);return g|0}function j5(a){a=a|0;return c[a+12>>2]|0}function k5(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[f>>2]=b;c[e>>2]=c[f>>2];b=t5(a,e)|0;l=d;return b|0}function l5(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+16|0;e=d+4|0;f=d;c[f>>2]=b;c[e>>2]=c[f>>2];b=t5(a,e)|0;l=d;return b|0}function m5(a){a=a|0;var b=0,d=0;b=c[a+16>>2]|0;d=a+12|0;a=(c[d>>2]|0)+-1|0;c[d>>2]=a;return c[b+(a<<2)>>2]|0}function n5(a){a=a|0;var b=0,d=0;b=c[a+16>>2]|0;d=a+12|0;a=(c[d>>2]|0)+-1|0;c[d>>2]=a;return c[b+(a<<2)>>2]|0}function o5(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;a=s5(a,0,0,1,64)|0;if(!a)a=0;else{c[a>>2]=b;c[a+4>>2]=d;c[a+8>>2]=e;c[a+20>>2]=f;c[a+24>>2]=g;c[a+28>>2]=h;c[a+32>>2]=-1;c[a+36>>2]=-1;c[a+40>>2]=-1}return a|0}function p5(a){a=a|0;a=s5(a,0,0,1,32)|0;if(!a)a=0;else{c[a>>2]=-1;c[a+4>>2]=-1;c[a+8>>2]=-1}return a|0}function q5(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=(e|0)==0;if(o)n=0;else{g=0;while(1)if((c[e+(g<<2)>>2]|0)>-1)g=g+1|0;else{n=g;break}}h=0;while(1)if((c[b+(h<<5)>>2]|0)>-1)h=h+1|0;else{g=0;break}while(1)if((c[d+(g<<5)>>2]|0)>-1)g=g+1|0;else break;g=s5(a,0,0,1,(g+h<<5)+32|0)|0;a:do if(!g)g=0;else{h=c[b>>2]|0;if((h|0)>-1){m=(n|0)>0;i=0;while(1){c[g+(i<<5)>>2]=h;c[g+(i<<5)+4>>2]=c[b+(i<<5)+4>>2];c[g+(i<<5)+8>>2]=c[b+(i<<5)+8>>2];c[g+(i<<5)+16>>2]=c[b+(i<<5)+16>>2]|f;c[g+(i<<5)+20>>2]=c[b+(i<<5)+20>>2];c[g+(i<<5)+24>>2]=c[b+(i<<5)+24>>2];c[g+(i<<5)+28>>2]=c[b+(i<<5)+28>>2];l=b+(i<<5)+12|0;k=c[l>>2]|0;h=(k|0)==0;if(o&h)h=0;else{if(h)j=0;else{j=0;while(1)if((c[k+(j<<2)>>2]|0)>-1)j=j+1|0;else break}h=s5(a,0,0,0,(j+n<<2)+4|0)|0;if(!h){g=0;break a}if((j|0)>0){l=c[l>>2]|0;k=0;do{c[h+(k<<2)>>2]=c[l+(k<<2)>>2];k=k+1|0}while((k|0)!=(j|0))}else j=0;if(m){l=0;k=j;while(1){c[h+(k<<2)>>2]=c[e+(l<<2)>>2];k=l+1|0;if((k|0)==(n|0))break;else{l=k;k=k+j|0}}j=n+j|0}c[h+(j<<2)>>2]=-1}c[g+(i<<5)+12>>2]=h;i=i+1|0;h=c[b+(i<<5)>>2]|0;if((h|0)<=-1){n=i;break}}}else n=0;i=c[d>>2]|0;h=g+(n<<5)|0;if((i|0)>-1){m=0;l=n;do{c[h>>2]=i;c[g+(l<<5)+4>>2]=c[d+(m<<5)+4>>2];c[g+(l<<5)+8>>2]=c[d+(m<<5)+8>>2];c[g+(l<<5)+16>>2]=c[d+(m<<5)+16>>2];c[g+(l<<5)+20>>2]=c[d+(m<<5)+20>>2];c[g+(l<<5)+24>>2]=c[d+(m<<5)+24>>2];c[g+(l<<5)+28>>2]=c[d+(m<<5)+28>>2];k=d+(m<<5)+12|0;h=c[k>>2]|0;if(!h)h=0;else{i=0;while(1){j=i+1|0;if((c[h+(i<<2)>>2]|0)>-1)i=j;else break}h=s5(a,0,0,0,j<<2)|0;if(!h){g=0;break a}if((i|0)>0){k=c[k>>2]|0;j=0;do{c[h+(j<<2)>>2]=c[k+(j<<2)>>2];j=j+1|0}while((j|0)!=(i|0))}else i=0;c[h+(i<<2)>>2]=-1}c[g+(l<<5)+12>>2]=h;m=m+1|0;i=c[d+(m<<5)>>2]|0;l=m+n|0;h=g+(l<<5)|0}while((i|0)>-1)}c[h>>2]=-1}while(0);return g|0}function r5(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=j5(a)|0;p=(f|0)!=0;if(p)c[f>>2]=0;b=k5(a,b)|0;a:do if(!b){m=(d|0)==0;l=(e|0)==0;if((j5(a)|0)>(o|0))while(1){b=n5(a)|0;b:do switch(c[b>>2]|0){case 0:{b=c[b+4>>2]|0;switch(c[b>>2]|0){case -3:break;case -2:{if(l)break b;c[e>>2]=c[e>>2]|c[b+4>>2];break b}default:break b}h=c[b+4>>2]|0;if((h|0)>-1){c:do if(!m){b=0;while(1){i=d+(b<<2)|0;j=c[i>>2]|0;if((j|0)<=-1)break;if((j|0)==(h|0))break c;else b=b+1|0}c[i>>2]=h;c[d+(b+1<<2)>>2]=-1}while(0);if(p)c[f>>2]=(c[f>>2]|0)+1}break}case 3:{b=c[b+4>>2]|0;h=c[b>>2]|0;if(c[h+8>>2]|0){k=h;n=6;break b}b=c[b+4>>2]|0;if(c[b+8>>2]|0){k=b;n=6}break}case 1:{b=c[b+4>>2]|0;h=k5(a,c[b>>2]|0)|0;if(h|0){g=h;break a}k=c[b+4>>2]|0;n=6;break}case 2:{b=c[c[b+4>>2]>>2]|0;if(c[b+8>>2]|0){k=b;n=6}break}default:{}}while(0);if((n|0)==6?(n=0,g=k5(a,k)|0,g|0):0)break a;if((j5(a)|0)<=(o|0)){g=0;break a}}else g=0}else g=b;while(0);return g|0}function s5(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;h=a+16|0;a:do if(!(c[h>>2]|0)){j=a+12|0;g=c[j>>2]|0;if(g>>>0<f>>>0){do if(b)if(!d){c[h>>2]=1;d=0;break a}else{b=a+8|0;c[b>>2]=d;g=1024;break}else{g=f<<3;g=g>>>0>1024?g:1024;i=k6(8)|0;if(!i){c[h>>2]=1;d=0;break a}d=k6(g)|0;c[i>>2]=d;if(!d){l6(i);c[h>>2]=1;d=0;break a}c[i+4>>2]=0;b=a+4|0;h=c[b>>2]|0;if(h|0)c[h+4>>2]=i;if(!(c[a>>2]|0))c[a>>2]=i;c[b>>2]=i;b=a+8|0;c[b>>2]=d}while(0);c[j>>2]=g;h=b}else{d=a+8|0;h=d;d=c[d>>2]|0}b=d+f&3;b=((b|0)==0?0:4-b|0)+f|0;c[h>>2]=d+b;c[j>>2]=g-b;if(e)u6(d|0,0,b|0)|0}else d=0;while(0);return d|0}function t5(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;g=k;d=a+12|0;e=c[d>>2]|0;j=c[a>>2]|0;if((e|0)>=(j|0)){d=c[a+4>>2]|0;if((j|0)<(d|0)?(f=(c[a+8>>2]|0)+j|0,f=(f|0)>(d|0)?d:f,h=a+16|0,i=n6(c[h>>2]|0,f<<2)|0,(i|0)!=0):0){c[a>>2]=f;c[h>>2]=i;c[g>>2]=c[b>>2];t5(a,g)|0;d=0}else d=12}else{c[(c[a+16>>2]|0)+(e<<2)>>2]=c[b>>2];c[d>>2]=(c[d>>2]|0)+1;d=0}l=k;return d|0}function u5(a,b,d){a=a|0;b=b|0;d=d|0;a=s5(a,0,0,1,32)|0;if((d|0)!=0&(a|0)!=0){c[a+4>>2]=d;c[a>>2]=b;c[a+8>>2]=-1;c[a+12>>2]=-1}else a=0;return a|0}function v5(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=j5(d)|0;k5(d,e)|0;e=l5(d,0)|0;a:do if(!e){r=(f&1|0)==0;q=(f&2|0)!=0;o=0;p=1;e=i;while(1){if((j5(d)|0)>(s|0))n=e;else{f=o;e=0;break a}b:while(1){c:while(1){switch(m5(d)|0){case 1:{i=7;break c}case 0:{e=n5(d)|0;switch(c[e>>2]|0){case 0:{i=9;break b}case 3:{i=19;break b}case 1:{i=26;break b}case 2:{i=33;break c}default:{}}break}default:{}}if((j5(d)|0)<=(s|0)){f=o;e=0;break a}}if((i|0)==7)e=n5(d)|0;else if((i|0)==33){f=c[e+4>>2]|0;e=k5(d,c[f>>2]|0)|0;if(e|0){f=o;break a}e=l5(d,0)|0;if(e|0){f=o;break a}e=w5(b,c[f>>2]|0,c[f+4>>2]|0,c[f+8>>2]|0,a[f+12>>0]&1)|0;c[n>>2]=e;if(!e){f=o;e=12;break a}e=c[e+4>>2]|0}if((j5(d)|0)>(s|0))n=e;else{f=o;e=0;break a}}if((i|0)==9){m=c[e+4>>2]|0;k=c[m+8>>2]|0;i=c[m>>2]|0;e=c[m+4>>2]|0;if(!((i|0)>-1|(i|0)==-4)){f=(i|0)==-3;if(r|f^1)if(f)if(q&(p|0)!=0){c[h+(e<<2)>>2]=1;i=-3;l=k;f=o;k=0}else{i=-3;l=k;f=o;k=p}else{l=k;f=o;k=p}else{e=-1;i=-1;l=-1;f=o;k=p}}else{l=(c[g>>2]|0)+k|0;f=o+1|0;k=p}e=c5(b,i,e,l)|0;c[n>>2]=e;if(!e)e=12;else{e=c[e+4>>2]|0;c[e+12>>2]=c[m+12>>2];c[e+16>>2]=c[m+16>>2];e=0}if((l|0)>(c[j>>2]|0)){c[j>>2]=l;l=f;f=n}else{l=f;f=n}}else if((i|0)==19){i=c[e+4>>2]|0;f=i+4|0;e=x5(b,c[i>>2]|0,c[f>>2]|0)|0;c[n>>2]=e;if(!e){f=o;e=12;break a}m=c[e+4>>2]|0;e=k5(d,c[f>>2]|0)|0;if(e|0){f=o;break a}e=l5(d,0)|0;if(e|0){f=o;break a}e=k5(d,m+4|0)|0;if(e|0){f=o;break a}e=l5(d,1)|0;if(e|0){f=o;break a}e=k5(d,c[i>>2]|0)|0;if(e|0){f=o;break a}l=o;k=p;f=m;e=l5(d,0)|0}else if((i|0)==26){l=c[e+4>>2]|0;i=l+4|0;e=d5(b,c[l>>2]|0,c[i>>2]|0)|0;c[n>>2]=e;if(!e){f=o;e=12;break a}f=c[e+4>>2]|0;c[f>>2]=0;k=f+4|0;c[k>>2]=0;e=k5(d,c[i>>2]|0)|0;if(e|0){f=o;break a}e=l5(d,0)|0;if(e|0){f=o;break a}e=k5(d,k)|0;if(e|0){f=o;break a}e=l5(d,1)|0;if(e|0){f=o;break a}e=k5(d,c[l>>2]|0)|0;if(e|0){f=o;break a}l=o;k=p;e=l5(d,0)|0}if(!e){o=l;p=k;e=f}else{f=l;break}}}else f=0;while(0);c[g>>2]=(c[g>>2]|0)+f;return e|0}function w5(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=s5(b,0,0,1,16)|0;b=u5(b,2,h)|0;if(!b)b=0;else{c[h>>2]=d;c[h+4>>2]=e;c[h+8>>2]=f;h=h+12|0;a[h>>0]=a[h>>0]&-2|g&1;c[b+16>>2]=c[d+16>>2]}return b|0}function x5(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(b){e=s5(a,0,0,1,8)|0;a=u5(a,3,e)|0;if((d|0)!=0&(a|0)!=0){c[e>>2]=b;c[e+4>>2]=d;c[a+16>>2]=(c[d+16>>2]|0)+(c[b+16>>2]|0);d=a}else d=0}return d|0}function y5(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=s5(a,0,0,0,8)|0;if(((e|0)!=0?(d=c5(a,-3,d,-1)|0,c[e>>2]=d,(d|0)!=0):0)?(f=s5(a,0,0,0,32)|0,c[e+4>>2]=f,(f|0)!=0):0){a=b+4|0;c[f+4>>2]=c[a>>2];c[f>>2]=c[b>>2];c[f+8>>2]=-1;c[f+12>>2]=-1;f=f+16|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[a>>2]=e;c[b>>2]=1;a=0}else a=12;return a|0}function z5(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=c[a>>2]|0;if((f|0)>-1){g=c[b+16>>2]|0;e=0;b=f;do{f=b>>>1;c[((b&1|0)==0?g+(f*12|0)|0:g+(f*12|0)+4|0)>>2]=d;e=e+1|0;b=c[a+(e<<2)>>2]|0}while((b|0)>-1)}c[a>>2]=-1;return}function A5(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=s5(a,0,0,0,8)|0;if(((e|0)!=0?(d=c5(a,-3,d,-1)|0,c[e+4>>2]=d,(d|0)!=0):0)?(f=s5(a,0,0,0,32)|0,c[e>>2]=f,(f|0)!=0):0){a=b+4|0;c[f+4>>2]=c[a>>2];c[f>>2]=c[b>>2];c[f+8>>2]=-1;c[f+12>>2]=-1;f=f+16|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[a>>2]=e;c[b>>2]=1;a=0}else a=12;return a|0}function B5(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;m=l;l=l+16|0;j=m;i=b+32|0;h=c[i>>2]|0;g=h&1;a:do switch(a[d>>0]|0){case 91:{e=F5(b,d+1|0)|0;break}case 92:{e=d+1|0;f=G5(e)|0;if(f|0){e=B5(b,f)|0;c[b+12>>2]=d+2;break a}f=a[e>>0]|0;switch(f|0){case 0:{e=5;break a}case 98:{f=c5(c[b>>2]|0,-2,64,-1)|0;break}case 66:{f=c5(c[b>>2]|0,-2,128,-1)|0;break}case 60:{f=c5(c[b>>2]|0,-2,16,-1)|0;break}case 62:{f=c5(c[b>>2]|0,-2,32,-1)|0;break}case 120:{h=d+2|0;i=(a[h>>0]|0)==123;g=i?8:2;h=i?d+3|0:h;e=0;f=0;do{d=H5(a[h+e>>0]|0)|0;if((d|0)<0)break;f=d+(f<<4)|0;e=e+1|0}while((f|0)<1114112&(e|0)<(g|0));e=h+e|0;if(i){if((a[e>>0]|0)!=125){e=9;break a}e=e+1|0}j=c[b>>2]|0;i=b+24|0;k=c[i>>2]|0;c[i>>2]=k+1;f=c5(j,f,f,k)|0;e=e+-1|0;break}case 63:case 43:case 123:if(!g){e=13;break a}else{k=37;break a}case 124:{if(g|0){k=37;break a}e=c5(c[b>>2]|0,-1,-1,-1)|0;k=45;break a}default:{if(!((g|0)==0&(f+-49|0)>>>0<9)){k=37;break a}j=f+-48|0;k=c[b>>2]|0;i=b+24|0;f=c[i>>2]|0;c[i>>2]=f+1;f=c5(k,-4,j,f)|0;k=b+28|0;i=c[k>>2]|0;c[k>>2]=(j|0)<(i|0)?i:j}}d=e+1|0;e=f;k=45;break}case 46:{g=b+24|0;e=c[g>>2]|0;c[g>>2]=e+1;f=c[b>>2]|0;if(h&4){f=c5(f,0,9,e)|0;k=c[b>>2]|0;e=c[g>>2]|0;c[g>>2]=e+1;e=c5(k,11,1114111,e)|0;if((f|0)!=0&(e|0)!=0)e=x5(c[b>>2]|0,f,e)|0;else e=0}else e=c5(f,0,1114111,e)|0;d=d+1|0;k=45;break}case 94:{if((g|0)==0?(c[b+16>>2]|0)!=(d|0):0){e=d;k=37;break a}d=d+1|0;e=c5(c[b>>2]|0,-2,1,-1)|0;k=45;break}case 36:{e=d+1|0;if((g|0)==0?a[e>>0]|0:0){e=d;k=37;break a}d=e;e=c5(c[b>>2]|0,-2,2,-1)|0;k=45;break}case 63:case 43:case 123:case 42:{if(!g){e=d;k=37}else e=13;break}case 124:{if(!g){e=d;k=37}else k=36;break}case 0:{k=36;break}default:{e=d;k=37}}while(0);if((k|0)==36){e=c5(c[b>>2]|0,-1,-1,-1)|0;k=45}else if((k|0)==37){h=c4(j,e,-1)|0;if((h|0)<0)e=2;else{do if(c[i>>2]&2){if((a3(c[j>>2]|0)|0)==0?(Y2(c[j>>2]|0)|0)==0:0){k=43;break}i=c[b>>2]|0;n=g3(c[j>>2]|0)|0;g=g3(c[j>>2]|0)|0;f=b+24|0;g=c5(i,n,g,c[f>>2]|0)|0;n=c[b>>2]|0;i=c3(c[j>>2]|0)|0;d=c3(c[j>>2]|0)|0;d=c5(n,i,d,c[f>>2]|0)|0;if((g|0)!=0&(d|0)!=0)g=x5(c[b>>2]|0,g,d)|0;else g=0}else k=43;while(0);if((k|0)==43){g=c[j>>2]|0;f=b+24|0;g=c5(c[b>>2]|0,g,g,c[f>>2]|0)|0}c[f>>2]=(c[f>>2]|0)+1;d=e+h|0;e=g;k=45}}if((k|0)==45)if(!e)e=12;else{c[b+8>>2]=e;c[b+12>>2]=d;e=0}l=m;return e|0}function C5(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l+16|0;i=j+4|0;g=j;b=E5(b,i)|0;if((a[b>>0]|0)==44){b=E5(b+1|0,g)|0;h=c[g>>2]|0;g=c[i>>2]|0}else{i=c[i>>2]|0;c[g>>2]=i;h=i;g=i}do if(!(g>>>0>255|((h|0)>255|(h|0)>-1&(h|0)<(g|0)))){if(!d)if((a[b>>0]|0)==92)b=b+1|0;else{b=0;break}if((a[b>>0]|0)==125){c[e>>2]=g;c[f>>2]=h;b=b+1|0}else b=0}else b=0;while(0);l=j;return b|0}function D5(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;if((c[b+12>>2]|0)>-1){e=c5(c[a>>2]|0,-1,-1,-1)|0;if((e|0)!=0?(f=d5(c[a>>2]|0,e,b)|0,(f|0)!=0):0){e=c[b+16>>2]|0;c[f+16>>2]=e;g=6}else e=12}else{f=b;e=c[b+16>>2]|0;g=6}if((g|0)==6){c[f+12>>2]=d;c[f+16>>2]=e+1;c[a+8>>2]=f;e=0}return e|0}function E5(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;c[d>>2]=-1;if(((a[b>>0]|0)+-48|0)>>>0<10){c[d>>2]=0;e=b;g=0;f=a[b>>0]|0;while(1){g=(g*10|0)+-48+(f<<24>>24)|0;c[d>>2]=g;b=e+1|0;f=a[b>>0]|0;if((g|0)>255|((f<<24>>24)+-48|0)>>>0>9)break;else e=b}}return b|0}function F5(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+288|0;e=s+264|0;g=s;c[e>>2]=c[b>>2];h=e+8|0;c[h>>2]=0;c[e+12>>2]=32;p=k6(128)|0;r=e+4|0;c[r>>2]=p;if(!p)d=12;else{f=g+4|0;c[f>>2]=0;p=(a[d>>0]|0)==94;c[g>>2]=p&1;d=I5(b,p?d+1|0:d,e,g)|0;a:do if(!d){p=(c[g>>2]|0)==0;if(!p){k3(c[r>>2]|0,c[h>>2]|0,4,111);d=K5(e)|0;if(!d){d=12;e=0;break}c[d>>2]=1114112;c[d+4>>2]=1114112;c[d+8>>2]=-1;d=c[f>>2]|0;if(d){e=d<<2;f=s5(c[b>>2]|0,0,0,0,e+4|0)|0;if(!f){d=12;e=0;break}B6(f|0,g+8|0,e|0)|0;c[f+(d<<2)>>2]=0}else f=0}else f=0;m=c[h>>2]|0;if((m|0)>0){n=c[r>>2]|0;o=b+24|0;e=0;d=0;k=0;while(1){i=c[n+(k<<2)>>2]|0;g=c[i>>2]|0;h=i+4|0;do if(!p){j=(c[h>>2]|0)+1|0;if((g|0)>(d|0)){c[i>>2]=d;c[h>>2]=g+-1;d=j;q=14;break}else{d=(j|0)>=(d|0)?j:d;break}}else q=14;while(0);if((q|0)==14){q=0;c[i+8>>2]=c[o>>2];c[i+16>>2]=f;j=u5(c[b>>2]|0,0,i)|0;e=x5(c[b>>2]|0,e,j)|0;if(!e){d=12;e=0;break a}}k=k+1|0;if((k|0)>=(m|0)){d=0;break}}}else{d=0;e=0}}else e=0;while(0);l6(c[r>>2]|0);r=b+24|0;c[r>>2]=(c[r>>2]|0)+1;c[b+8>>2]=e}l=s;return d|0}function G5(b){b=b|0;var d=0;d=a[b>>0]|0;b=0;while(1){if((a[64024+(b<<3)>>0]|0)==d<<24>>24)break;b=b+1|0;if((b|0)==12){b=12;break}}return c[64024+(b<<3)+4>>2]|0}function H5(a){a=a|0;var b=0;b=a+-48|0;if(b>>>0<10)return b|0;else{b=a|32;return ((b+-97|0)>>>0<6?b+-87|0:-1)|0}return 0}function I5(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+32|0;o=t;q=t+4|0;i=c4(o,d,-1)|0;g=a[d>>0]|0;a:do if((i|0)>=1){r=f+4|0;n=b+32|0;h=d;j=i;b:while(1){i=(h|0)==(d|0);if(!(i|g<<24>>24!=93)){s=5;break}c:do if(!(i|g<<24>>24!=45)){switch(a[h+1>>0]|0){case 93:break c;case 45:break;default:{g=11;break a}}if((a[h+2>>0]|0)==93){g=11;break a}}while(0);d:do if(g<<24>>24==91){switch(a[h+1>>0]|0){case 61:case 46:{g=3;break a}case 58:break;default:{s=17;break d}}i=h+2|0;g=0;e:while(1){switch(a[i+g>>0]|0){case 0:{s=16;break b}case 58:break e;default:{}}g=g+1|0;if((g|0)>=14){s=16;break b}}B6(q|0,i|0,g|0)|0;a[q+g>>0]=0;j=h3(q)|0;if(!j){s=16;break b}h=i+(g+2)|0;if((a[i+(g+1)>>0]|0)!=93){s=16;break b}if(!(c[f>>2]|0)){g=1114111;m=0;k=1;s=25}else{g=c[r>>2]|0;if((g|0)>63){g=12;break a}c[r>>2]=g+1;c[f+8+(g<<2)>>2]=j}}else s=17;while(0);if((s|0)==17){s=0;i=c[o>>2]|0;h=h+j|0;if((a[h>>0]|0)==45?(p=h+1|0,(a[p>>0]|0)!=93):0){h=c4(o,p,-1)|0;g=c[o>>2]|0;if((h|0)<1|(i|0)>(g|0)){g=11;break a}j=0;m=i;h=p+h|0;k=0;s=25}else{j=0;g=i;m=i;k=0;s=25}}if((s|0)==25){s=0;i=K5(e)|0;if(!i){g=12;break a}c[i>>2]=m;c[i+4>>2]=g;c[i+12>>2]=j;c[i+8>>2]=-1;if(!(k|(c[n>>2]&2|0)==0)?(L5(e,m,g)|0)!=0:0){g=12;break a}}j=c4(o,h,-1)|0;g=a[h>>0]|0;if((j|0)<1){s=3;break a}}if((s|0)==5){c[b+12>>2]=h+1;g=0;break}else if((s|0)==16){g=4;break}}else s=3;while(0);if((s|0)==3)g=g<<24>>24?2:7;l=t;return g|0}function J5(a,b){a=a|0;b=b|0;return (c[c[a>>2]>>2]|0)-(c[c[b>>2]>>2]|0)|0}function K5(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;h=a+8|0;d=c[h>>2]|0;e=a+12|0;f=c[e>>2]|0;if((d|0)>=(f|0))if((f|0)<=32767?(c[e>>2]=f<<1,g=a+4|0,b=n6(c[g>>2]|0,f<<3)|0,(b|0)!=0):0){c[g>>2]=b;d=c[h>>2]|0;i=6}else b=0;else{b=c[a+4>>2]|0;i=6}if((i|0)==6){c[h>>2]=d+1;i=s5(c[a>>2]|0,0,0,1,20)|0;c[b+(d<<2)>>2]=i;b=i}return b|0}function L5(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;a:do if((b|0)>(d|0))b=0;else while(1){b:do if(!(Y2(b)|0)){if(!(a3(b)|0)){b=b+1|0;break}f=c3(b)|0;e=f;while(1){g=b+1|0;e=e+1|0;if((b|0)>=(d|0)){h=f;b=g;g=12;break b}if((c3(g)|0)==(e|0))b=g;else{h=f;b=g;g=12;break}}}else{f=g3(b)|0;e=f;while(1){g=b+1|0;e=e+1|0;if((b|0)>=(d|0)){h=f;b=g;g=12;break b}if((g3(g)|0)==(e|0))b=g;else{h=f;b=g;g=12;break}}}while(0);if((g|0)==12){g=0;f=K5(a)|0;if(!f){b=-1;break a}c[f>>2]=h;c[f+4>>2]=e+-1;c[f+8>>2]=-1}if((b|0)>(d|0)){b=0;break}}while(0);return b|0}function M5(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0;n=l;l=l+16|0;k=n;i=c[a+4>>2]|0;j=i+56|0;h=(c[j>>2]&8|0)==0?d:0;a=c[i+40>>2]|0;if((a|0)>0&(h|0)!=0){a=k6(a<<2)|0;if(!a)a=12;else{g=a;d=a;m=3}}else{g=0;d=0;m=3}if((m|0)==3){if(!(c[i+60>>2]|0))a=O5(i,b,g,f,k)|0;else a=N5(i,b,g,f,k)|0;if(!a)P5(h,e,c[j>>2]|0,i,g,c[k>>2]|0);if(g)l6(d)}l=n;return a|0}function N5(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;W=l;l=l+16|0;U=W;c[U>>2]=0;o=e&1;S=e&2;T=a+56|0;n=c[T>>2]&4;V=Z4(0,0)|0;a:do if(V){p=s5(V,0,0,0,32)|0;if(!p){g5(V);e=12;break}c[p+24>>2]=0;c[p+28>>2]=0;R=a+40|0;q=c[R>>2]|0;if(q){e=k6(q<<2)|0;if(!e){m=0;k=0;j=e;e=12;i=0;h=0;g=0}else{j=e;i=e;C=6}}else{j=0;i=0;C=6}b:do if((C|0)==6){e=c[a+28>>2]|0;if(e){e=k6(e<<3)|0;if(!e){m=e;k=0;e=12;h=0;g=0;break}else{m=e;h=e}}else{m=0;h=0}Q=a+52|0;e=c[Q>>2]|0;if(e){e=k6(e<<2)|0;if(!e){k=e;e=12;g=0;break}else{k=e;g=e}}else{k=0;g=0}M=a+8|0;N=a+12|0;O=(d|0)!=0;P=a+32|0;J=(n|0)!=0;K=(d|0)==0;L=(o|0)==0;I=(o|0)==0;s=b;e=1;r=-1;v=-1;n=q;B=0;c:while(1){if((n|0)>0){o=0;do{c[j+(o<<2)>>2]=-1;if(!K){c[d+(o<<2)>>2]=-1;n=c[R>>2]|0}o=o+1|0}while((o|0)<(n|0))}n=c[Q>>2]|0;if((n|0)>0)u6(g|0,0,n<<2|0)|0;G=e+r|0;e=c4(U,s,4)|0;if((e|0)<1)if((e|0)<0){e=1;break b}else e=1;F=s+e|0;H=c[U>>2]|0;n=c[M>>2]|0;o=n+8|0;if(c[o>>2]|0){w=(G|0)!=0;x=(B|0)==95;y=(G|0)==0;A=J&(B|0)==10;z=(G|0)<1&I;u=n;n=0;t=0;s=o;while(1){r=u+20|0;o=c[r>>2]|0;d:do if(o)if((o&1|0)==0|z|A){if(o&2|0?(E=c[U>>2]|0,!((E|S|0)==0|J&(E|0)==10)):0){q=t;break}do if(o&16|0){if(x){q=t;break d}if(R2(B)|0){q=t;break d}o=c[U>>2]|0;if((o|0)==95)break;if(!(R2(o)|0)){q=t;break d}}while(0);o=c[r>>2]|0;if(o&32){if(x){o=c[U>>2]|0;if((o|0)==95){q=t;break}}else{E=(R2(B)|0)==0;o=c[U>>2]|0;if(E|(o|0)==95){q=t;break}}if(R2(o)|0){q=t;break}o=c[r>>2]|0}q=c[U>>2]|0;do if((q|0)!=0&(w&(o&64|0)!=0)){if(x){o=q;q=1}else{q=(R2(B)|0)!=0;o=c[U>>2]|0}if((o|0)==95)if(q){q=t;break d}else break;else if(q^(R2(o)|0)!=0)break;else{q=t;break d}}while(0);if(!(c[r>>2]&128)){C=49;break}o=c[U>>2]|0;if(y|(o|0)==0){q=t;break}if(x)q=1;else{q=(R2(B)|0)!=0;o=c[U>>2]|0}if((o|0)==95)if(q){C=49;break}else{q=t;break}else if(q^(R2(o)|0)!=0){q=t;break}else{C=49;break}}else q=t;else C=49;while(0);do if((C|0)==49){C=0;if(!t){n=c[u+16>>2]|0;q=c[s>>2]|0;break}q=p+28|0;o=c[q>>2]|0;if(!o){o=s5(V,0,0,0,32)|0;if(!o){C=53;break c}c[o+24>>2]=p;c[o+28>>2]=0;E=s5(V,0,0,0,c[R>>2]<<2)|0;c[o+20>>2]=E;if(!E){C=60;break c}c[q>>2]=o;p=o}else p=o;c[p>>2]=G;c[p+4>>2]=F;c[p+8>>2]=c[s>>2];c[p+12>>2]=c[u+12>>2];c[p+16>>2]=c[U>>2];if((c[R>>2]|0)>0){q=c[p+20>>2]|0;o=0;do{c[q+(o<<2)>>2]=c[j+(o<<2)>>2];o=o+1|0}while((o|0)<(c[R>>2]|0))}o=c[u+16>>2]|0;if(!o)q=t;else{q=c[o>>2]|0;if((q|0)<=-1){q=t;break}r=c[p+20>>2]|0;do{o=o+4|0;c[r+(q<<2)>>2]=G;q=c[o>>2]|0}while((q|0)>-1);q=t}}while(0);s=u+40|0;if(!(c[s>>2]|0))break;else{u=u+32|0;t=q}}if(n){o=c[n>>2]|0;if((o|0)>-1)do{c[j+(o<<2)>>2]=G;n=n+4|0;o=c[n>>2]|0}while((o|0)>-1)}else n=0;if(!q)C=170;else{s=G;r=F;w=q;x=n;C=79}}else{n=0;C=170}e:while(1){if((C|0)==79){if((w|0)==(c[N>>2]|0)){if((v|0)>=(s|0)){if(!(O&(v|0)==(s|0))){n=x;C=170;continue}if(!(R5(c[R>>2]|0,c[P>>2]|0,j,d)|0)){n=x;C=170;continue}}if(!O){v=s;n=x;C=170;continue}if((c[R>>2]|0)>0)n=0;else{v=s;n=x;C=170;continue}while(1){c[d+(n<<2)>>2]=c[j+(n<<2)>>2];n=n+1|0;if((n|0)>=(c[R>>2]|0)){v=s;n=x;C=170;continue e}}}u=w+8|0;if((c[u>>2]|0)!=0?(c[w+20>>2]&256|0)!=0:0){o=c[w+24>>2]|0;P5(o+1|0,m,c[T>>2]&-9,a,j,s);E=c[m+(o<<3)>>2]|0;o=(c[m+(o<<3)+4>>2]|0)-E|0;if(h2(b+E|0,r+-1|0,o)|0){n=x;C=170;continue}E=(o|0)==0;n=E&1;q=k+(c[w+12>>2]<<2)|0;if(E?c[q>>2]|0:0){n=x;C=170;continue}c[q>>2]=n;o=o+-1|0;r=r+o|0;o=o+s|0;q=c[U>>2]|0;n=c4(U,r,4)|0;if((n|0)<1)if((n|0)<0){e=1;break b}else n=1;D=r+n|0;E=n}else{q=c[U>>2]|0;if(!q){n=x;C=170;continue}n=c4(U,r,4)|0;if((n|0)<1)if((n|0)<0){e=1;break b}else n=1;o=s;D=r+n|0;E=n}s=o+e|0;if(!(c[u>>2]|0)){e=E;n=x;C=170;continue}y=(s|0)!=0;z=(q|0)==95;A=(s|0)==0;C=J&(q|0)==10;B=(s|0)<1&L;t=0;n=x;while(1){f:do if((c[w>>2]|0)>>>0<=q>>>0){if((c[w+4>>2]|0)>>>0<q>>>0)break;r=w+20|0;e=c[r>>2]|0;do if(e|0){if(!((e&1|0)==0|B|C))break f;if(e&2|0?(x=c[U>>2]|0,!((x|S|0)==0|J&(x|0)==10)):0)break f;do if(e&16|0){if(z)break f;if(R2(q)|0)break f;e=c[U>>2]|0;if((e|0)==95)break;if(!(R2(e)|0))break f}while(0);e=c[r>>2]|0;if(e&32){if(z){e=c[U>>2]|0;if((e|0)==95)break f}else{x=(R2(q)|0)==0;e=c[U>>2]|0;if(x|(e|0)==95)break f}if(R2(e)|0)break f;e=c[r>>2]|0}o=c[U>>2]|0;do if((o|0)!=0&(y&(e&64|0)!=0)){if(z)e=1;else{e=(R2(q)|0)!=0;o=c[U>>2]|0}if((o|0)==95)if(e)break f;else break;else if(e^(R2(o)|0)!=0)break;else break f}while(0);do if(c[r>>2]&128|0){e=c[U>>2]|0;if(A|(e|0)==0)break f;if(z)o=1;else{o=(R2(q)|0)!=0;e=c[U>>2]|0}if((e|0)==95)if(o)break;else break f;else if(o^(R2(e)|0)!=0)break f;else break}while(0);e=c[r>>2]|0;do if(e&4){if(c[T>>2]&2|0)break;if(!(W2(q,c[w+24>>2]|0)|0))break f;e=c[r>>2]|0}while(0);do if(e&4|0){if(!(c[T>>2]&2))break;x=c3(q)|0;e=w+24|0;if(W2(x,c[e>>2]|0)|0)break;x=g3(q)|0;if(!(W2(x,c[e>>2]|0)|0))break f}while(0);if(!(c[r>>2]&8))break;if(Q5(c[w+28>>2]|0,q,c[T>>2]&2)|0)break f}while(0);if(!t){t=c[u>>2]|0;n=c[w+16>>2]|0;break}o=p+28|0;e=c[o>>2]|0;if(!e){e=s5(V,0,0,0,32)|0;if(!e){C=144;break c}c[e+24>>2]=p;c[e+28>>2]=0;x=s5(V,0,0,0,c[R>>2]<<2)|0;c[e+20>>2]=x;if(!x){C=151;break c}c[o>>2]=e;p=e}else p=e;c[p>>2]=s;c[p+4>>2]=D;c[p+8>>2]=c[u>>2];c[p+12>>2]=c[w+12>>2];c[p+16>>2]=c[U>>2];if((c[R>>2]|0)>0){o=c[p+20>>2]|0;e=0;do{c[o+(e<<2)>>2]=c[j+(e<<2)>>2];e=e+1|0}while((e|0)<(c[R>>2]|0))}e=c[w+16>>2]|0;if(!e)break;o=c[e>>2]|0;if((o|0)<=-1)break;r=c[p+20>>2]|0;do{c[r+(o<<2)>>2]=s;e=e+4|0;o=c[e>>2]|0}while((o|0)>-1)}while(0);u=w+40|0;if(!(c[u>>2]|0))break;else w=w+32|0}if(!t){e=E;C=170;continue}if(n){e=c[n>>2]|0;if((e|0)>-1){do{n=n+4|0;c[j+(e<<2)>>2]=s;e=c[n>>2]|0}while((e|0)>-1);q=v;o=D;e=E}else{q=v;o=D;e=E}}else{q=v;o=D;e=E;n=0}}else if((C|0)==170){C=0;r=c[p+24>>2]|0;if(!r)break;t=c[p+8>>2]|0;if(c[t+20>>2]&256|0)c[k+(c[p+12>>2]<<2)>>2]=0;s=c[p>>2]|0;u=c[p+4>>2]|0;c[U>>2]=c[p+16>>2];q=c[R>>2]|0;if((q|0)>0){p=c[p+20>>2]|0;o=0;do{c[j+(o<<2)>>2]=c[p+(o<<2)>>2];o=o+1|0}while((o|0)<(q|0));p=r;q=v;o=u}else{p=r;q=v;o=u}}r=o;v=q;w=t;x=n;C=79}n=(v|0)>-1;if(n|(c[U>>2]|0)==0){C=179;break}c[U>>2]=H;s=F;r=G;n=c[R>>2]|0;B=H}if((C|0)==53){g5(V);if(j|0)l6(i);if(m|0)l6(h);if(!k){e=12;break a}l6(g);e=12;break a}else if((C|0)==60){g5(V);if(j|0)l6(i);if(m|0)l6(h);if(!k){e=12;break a}l6(g);e=12;break a}else if((C|0)==144){g5(V);if(j|0)l6(i);if(m|0)l6(h);if(!k){e=12;break a}l6(g);e=12;break a}else if((C|0)==151){g5(V);if(j|0)l6(i);if(m|0)l6(h);if(!k){e=12;break a}l6(g);e=12;break a}else if((C|0)==179){c[f>>2]=v;e=(n^1)&1;break}}while(0);g5(V);if(j|0)l6(i);if(m|0)l6(h);if(k)l6(g)}else e=12;while(0);l=W;return e|0}function O5(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,T=0,U=0,V=0,W=0,X=0;X=l;l=l+16|0;U=X;c[U>>2]=0;k=e&1;Q=e&2;R=a+56|0;j=c[R>>2]&4;if(!d)O=0;else O=c[a+40>>2]|0;P=O<<2;i=c[a+52>>2]|0;h=i<<3;g=h+8|0;e=P+12+h+(g+(S(P,i)|0)<<1)|0;V=k6(e)|0;if(!V)e=12;else{u6(V|0,0,e|0)|0;e=V+P|0;m=e&3;m=e+((m|0)==0?0:4-m|0)|0;e=m+g|0;n=e&3;n=e+((n|0)==0?0:4-n|0)|0;e=n+g|0;N=e&3;N=e+((N|0)==0?0:4-N|0)|0;e=N+h|0;g=e&3;h=(i|0)>0;if(h){e=e+((g|0)==0?0:4-g|0)|0;g=0;while(1){c[n+(g<<3)+4>>2]=e;e=e+P|0;c[m+(g<<3)+4>>2]=e;g=g+1|0;if((g|0)>=(i|0))break;else e=e+P|0}if(h){e=0;do{c[N+(e<<3)>>2]=-1;e=e+1|0}while((e|0)<(i|0))}}e=c4(U,b,4)|0;if((e|0)<1)if((e|0)<0)e=1;else{i=1;W=11}else{i=e;W=11}a:do if((W|0)==11){M=a+8|0;H=(j|0)!=0;I=(O|0)>0;J=a+12|0;K=a+44|0;L=a+32|0;E=a+36|0;F=(O|0)==0;G=(k|0)==0;D=(O|0)<1;C=(k|0)==0;h=0;v=b+i|0;u=0;j=0;e=-1;g=m;A=V;x=m;w=n;while(1){if((e|0)<0){k=c[M>>2]|0;a=k+8|0;b:do if(c[a>>2]|0){p=(u|0)!=0;q=(h|0)==95;r=(u|0)==0;t=H&(h|0)==10;s=(u|0)<1&G;while(1){c:while(1){o=k+12|0;if((c[N+(c[o>>2]<<3)>>2]|0)>=(u|0))break;n=k+20|0;b=c[n>>2]|0;if(!b){W=46;break}d:do if((b&1|0)==0|s|t){if(b&2|0?(B=c[U>>2]|0,!((B|Q|0)==0|H&(B|0)==10)):0)break;do if(b&16|0){if(q)break d;if(R2(h)|0)break d;b=c[U>>2]|0;if((b|0)==95)break;if(!(R2(b)|0))break d}while(0);b=c[n>>2]|0;if(b&32){if(q){b=c[U>>2]|0;if((b|0)==95)break}else{B=(R2(h)|0)==0;b=c[U>>2]|0;if(B|(b|0)==95)break}if(R2(b)|0)break;b=c[n>>2]|0}m=c[U>>2]|0;do if((m|0)!=0&(p&(b&64|0)!=0)){if(q)b=1;else{b=(R2(h)|0)!=0;m=c[U>>2]|0}if((m|0)==95)if(b)break d;else break;else if(b^(R2(m)|0)!=0)break;else break d}while(0);if(!(c[n>>2]&128)){W=46;break c}b=c[U>>2]|0;if(r|(b|0)==0)break;if(q)m=1;else{m=(R2(h)|0)!=0;b=c[U>>2]|0}if((b|0)==95)if(m){W=46;break c}else break;else if(m^(R2(b)|0)!=0)break;else{W=46;break c}}while(0);a=k+40|0;if(!(c[a>>2]|0))break b;else k=k+32|0}if((W|0)==46){W=0;c[g>>2]=c[a>>2];if(I)u6(c[g+4>>2]|0,-1,P|0)|0;a=c[k+16>>2]|0;if(a|0?(T=c[a>>2]|0,(T|0)>-1):0){m=g+4|0;b=T;do{if((b|0)<(O|0))c[(c[m>>2]|0)+(b<<2)>>2]=u;a=a+4|0;b=c[a>>2]|0}while((b|0)>-1)}a=(c[g>>2]|0)!=(c[J>>2]|0);if(a|D){j=a?j:1;e=a?e:u;a=g+4|0}else{a=g+4|0;j=c[a>>2]|0;e=0;do{c[d+(e<<2)>>2]=c[j+(e<<2)>>2];e=e+1|0}while((e|0)!=(O|0));j=1;e=u}B=c[o>>2]|0;c[N+(B<<3)>>2]=u;c[N+(B<<3)+4>>2]=a;g=g+8|0}a=k+40|0;if(!(c[a>>2]|0))break;else k=k+32|0}}while(0);c[g>>2]=0;g=c[U>>2]|0;if(!g)break;else h=g}else{if(F)break;h=c[U>>2]|0;if(!((g|0)!=(x|0)&(h|0)!=0))break}B=u+i|0;g=c4(U,v,4)|0;if((g|0)<1)if((g|0)<0){e=1;break a}else i=1;else i=g;z=v+i|0;if((j|0)!=0&(c[K>>2]|0)!=0){if(!(c[x>>2]|0))g=w;else{o=c[E>>2]|0;p=c[o>>2]|0;q=(p|0)>-1;n=x;g=w;do{m=n+4|0;e:do if(q){a=0;b=p;do{k=c[o+((a|1)<<2)>>2]|0;if((b|0)>=(O|0))break e;j=c[m>>2]|0;if((c[j+(k<<2)>>2]|0)==(c[d+(k<<2)>>2]|0)?(c[j+(b<<2)>>2]|0)<(c[d+(b<<2)>>2]|0):0)break e;a=a+2|0;b=c[o+(a<<2)>>2]|0}while((b|0)>-1);a=m;W=75}else{a=m;j=c[m>>2]|0;W=75}while(0);if((W|0)==75){W=0;c[g>>2]=c[n>>2];v=g+4|0;y=c[v>>2]|0;c[v>>2]=j;c[a>>2]=y;g=g+8|0}n=n+8|0}while((c[n>>2]|0)!=0)}c[g>>2]=0;y=x;j=0}else{y=w;w=x}a=c[w>>2]|0;if(!a){a=A;g=y}else{r=(B|0)!=0;s=(h|0)==95;t=(B|0)==0;v=H&(h|0)==10;u=(B|0)<1&C;q=w;k=A;g=y;while(1){b=a+8|0;if(c[b>>2]|0){p=q+4|0;o=k;n=b;while(1){f:do if((c[a>>2]|0)>>>0<=h>>>0?(c[a+4>>2]|0)>>>0>=h>>>0:0){m=a+20|0;k=c[m>>2]|0;do if(k|0){if(!((k&1|0)==0|u|v)){k=o;break f}if(k&2|0?(A=c[U>>2]|0,!((A|Q|0)==0|H&(A|0)==10)):0){k=o;break f}do if(k&16|0){if(s){k=o;break f}if(R2(h)|0){k=o;break f}k=c[U>>2]|0;if((k|0)==95)break;if(!(R2(k)|0)){k=o;break f}}while(0);k=c[m>>2]|0;if(k&32){if(s){k=c[U>>2]|0;if((k|0)==95){k=o;break f}}else{A=(R2(h)|0)==0;k=c[U>>2]|0;if(A|(k|0)==95){k=o;break f}}if(R2(k)|0){k=o;break f}k=c[m>>2]|0}b=c[U>>2]|0;do if((b|0)!=0&(r&(k&64|0)!=0)){if(s)k=1;else{k=(R2(h)|0)!=0;b=c[U>>2]|0}if((b|0)==95)if(k){k=o;break f}else break;else if(k^(R2(b)|0)!=0)break;else{k=o;break f}}while(0);do if(c[m>>2]&128|0){k=c[U>>2]|0;if(t|(k|0)==0){k=o;break f}if(s)b=1;else{b=(R2(h)|0)!=0;k=c[U>>2]|0}if((k|0)==95)if(b)break;else{k=o;break f}else if(b^(R2(k)|0)!=0){k=o;break f}else break}while(0);k=c[m>>2]|0;do if(k&4){if(c[R>>2]&2|0)break;if(!(W2(h,c[a+24>>2]|0)|0)){k=o;break f}k=c[m>>2]|0}while(0);do if(k&4|0){if(!(c[R>>2]&2))break;A=c3(h)|0;k=a+24|0;if(W2(A,c[k>>2]|0)|0)break;A=g3(h)|0;if(!(W2(A,c[k>>2]|0)|0)){k=o;break f}}while(0);if(!(c[m>>2]&8))break;if(Q5(c[a+28>>2]|0,h,c[R>>2]&2)|0){k=o;break f}}while(0);if(I){b=c[p>>2]|0;k=0;do{c[o+(k<<2)>>2]=c[b+(k<<2)>>2];k=k+1|0}while((k|0)!=(O|0))}k=c[a+16>>2]|0;do if(k|0){b=c[k>>2]|0;if((b|0)<=-1)break;do{if((b|0)<(O|0))c[o+(b<<2)>>2]=B;k=k+4|0;b=c[k>>2]|0}while((b|0)>-1)}while(0);k=c[a+12>>2]|0;b=N+(k<<3)|0;if((c[b>>2]|0)>=(B|0)){k=c[N+(k<<3)+4>>2]|0;b=c[k>>2]|0;if(!(R5(O,c[L>>2]|0,o,b)|0)){k=o;break}c[k>>2]=o;if((c[n>>2]|0)!=(c[J>>2]|0)){k=b;break}if(I)e=0;else{j=1;k=b;e=B;break}while(1){c[d+(e<<2)>>2]=c[o+(e<<2)>>2];e=e+1|0;if((e|0)==(O|0)){j=1;k=b;e=B;break f}}}A=c[n>>2]|0;c[g>>2]=A;x=g+4|0;m=c[x>>2]|0;c[x>>2]=o;c[b>>2]=B;c[N+(k<<3)+4>>2]=x;do if((A|0)==(c[J>>2]|0)){if((e|0)==-1)if(I)e=0;else{e=B;j=1;break}else{if(!I)break;if((c[o>>2]|0)>(c[d>>2]|0))break;else e=0}do{c[d+(e<<2)>>2]=c[o+(e<<2)>>2];e=e+1|0}while((e|0)<(O|0));e=B;j=1}while(0);k=m;g=g+8|0}else k=o;while(0);n=a+40|0;if(!(c[n>>2]|0))break;else{a=a+32|0;o=k}}}q=q+8|0;a=c[q>>2]|0;if(!a){a=k;break}}}c[g>>2]=0;v=z;u=B;A=a;x=y}c[f>>2]=e;e=e>>>31}while(0);l6(V)}l=X;return e|0}function P5(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if((d&8|0)==0&(g|0)>-1?(m=c[e+16>>2]|0,n=c[e+28>>2]|0,l=(a|0)!=0&(n|0)!=0,l):0){k=c[e+48>>2]|0;j=0;do{d=c[m+(j*12|0)>>2]|0;if((d|0)==(k|0))i=g;else i=c[f+(d<<2)>>2]|0;h=b+(j<<3)|0;c[h>>2]=i;d=c[m+(j*12|0)+4>>2]|0;if((d|0)==(k|0))d=g;else d=c[f+(d<<2)>>2]|0;e=b+(j<<3)+4|0;c[e>>2]=d;if((d|0)==-1|(i|0)==-1){c[e>>2]=-1;c[h>>2]=-1}j=j+1|0}while(j>>>0<a>>>0&j>>>0<n>>>0);if(l){d=0;do{i=b+(d<<3)+4|0;j=c[m+(d*12|0)+8>>2]|0;if(j|0?(o=c[j>>2]|0,(o|0)>-1):0){k=b+(d<<3)|0;h=0;f=o;e=c[k>>2]|0;do{if(!((e|0)>=(c[b+(f<<3)>>2]|0)?(c[i>>2]|0)<=(c[b+(f<<3)+4>>2]|0):0)){c[i>>2]=-1;c[k>>2]=-1;e=-1}h=h+1|0;f=c[j+(h<<2)>>2]|0}while((f|0)>-1)}d=d+1|0}while(d>>>0<a>>>0&d>>>0<n>>>0)}else d=0}else d=0;if(d>>>0<a>>>0)u6(b+(d<<3)|0,-1,a-d<<3|0)|0;return}function Q5(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=c[a>>2]|0;a:do if(!e)d=0;else{f=(d|0)==0;d=e;while(1){if(f){if(W2(b,d)|0){d=1;break a}}else{e=g3(b)|0;if(W2(e,c[a>>2]|0)|0){d=1;break a}e=c3(b)|0;if(W2(e,c[a>>2]|0)|0){d=1;break a}}a=a+4|0;d=c[a>>2]|0;if(!d){d=0;break}}}while(0);return d|0}function R5(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:do if((a|0)>0){f=0;while(1){h=c[d+(f<<2)>>2]|0;g=c[e+(f<<2)>>2]|0;if(!(c[b+(f<<2)>>2]|0)){if((h|0)<(g|0)){f=1;break a}if((h|0)>(g|0)){f=0;break a}}else{if((h|0)>(g|0)){f=1;break a}if((h|0)<(g|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 S5(a){a=a|0;var b=0,e=0,f=0;if((c[a+76>>2]|0)>=0?(n2(a)|0)!=0:0){b=a+4|0;e=c[b>>2]|0;if(e>>>0<(c[a+8>>2]|0)>>>0){c[b>>2]=e+1;b=d[e>>0]|0}else b=Y1(a)|0}else f=3;do if((f|0)==3){b=a+4|0;e=c[b>>2]|0;if(e>>>0<(c[a+8>>2]|0)>>>0){c[b>>2]=e+1;b=d[e>>0]|0;break}else{b=Y1(a)|0;break}}while(0);return b|0}function T5(a){a=a|0;var b=0;if((c[a+76>>2]|0)>-1){b=(n2(a)|0)==0;a=U5(a)|0}else a=U5(a)|0;return a|0}function U5(a){a=a|0;var b=0;if(!(c[a>>2]&128))b=1;else b=(c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0?2:1;b=eb[c[a+40>>2]&63](a,0,b)|0;if((b|0)>=0)b=b-(c[a+8>>2]|0)+(c[a+4>>2]|0)+(c[a+20>>2]|0)-(c[a+28>>2]|0)|0;return b|0}function V5(a){a=a|0;(c[a+76>>2]|0)>-1?n2(a)|0:0;return c[a+60>>2]|0}function W5(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=b&255;e=b&255;if((c[d+76>>2]|0)>=0?(n2(d)|0)!=0:0){if((e|0)!=(a[d+75>>0]|0)?(h=d+20|0,i=c[h>>2]|0,i>>>0<(c[d+16>>2]|0)>>>0):0){c[h>>2]=i+1;a[i>>0]=j}else e=b4(d,b)|0;o2(d)}else k=3;do if((k|0)==3){if((e|0)!=(a[d+75>>0]|0)?(f=d+20|0,g=c[f>>2]|0,g>>>0<(c[d+16>>2]|0)>>>0):0){c[f>>2]=g+1;a[g>>0]=j;break}e=b4(d,b)|0}while(0);return e|0}function X5(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=S(e,d)|0;e=(d|0)==0?0:e;if((c[f+76>>2]|0)>-1)j=n2(f)|0;else j=0;g=f+74|0;h=a[g>>0]|0;a[g>>0]=h+255|h;g=f+4|0;h=c[g>>2]|0;m=(c[f+8>>2]|0)-h|0;i=m>>>0<k>>>0?m:k;if((m|0)>0){B6(b|0,h|0,i|0)|0;c[g>>2]=h+i;g=k-i|0;b=b+i|0}else g=k;a:do if(!g)l=13;else{i=f+32|0;while(1){if(Z1(f)|0)break;h=eb[c[i>>2]&63](f,b,g)|0;if((h+1|0)>>>0<2)break;g=g-h|0;if(!g){l=13;break a}else b=b+h|0}if(j|0)o2(f);e=((k-g|0)>>>0)/(d>>>0)|0}while(0);if((l|0)==13)if(j)o2(f);return e|0}function Y5(a){a=a|0;return T5(a)|0}function Z5(b){b=b|0;var d=0,e=0,f=0,g=0;f=c[15840]|0;if((c[f+76>>2]|0)>-1)g=n2(f)|0;else g=0;do if((Z3(b,f)|0)<0)b=1;else{if((a[f+75>>0]|0)!=10?(d=f+20|0,e=c[d>>2]|0,e>>>0<(c[f+16>>2]|0)>>>0):0){c[d>>2]=e+1;a[e>>0]=10;b=0;break}b=(b4(f,10)|0)<0}while(0);if(g|0)o2(f);return b<<31>>31|0}function _5(b){b=b|0;var d=0,e=0,f=0;f=l;l=l+16|0;e=f;Xa(0,e|0)|0;d=0;e=(c[e+4>>2]|0)*65537^(e>>>4)+b;while(1){a[b+d>>0]=(e&15)+65|e<<1&32;d=d+1|0;if((d|0)==6)break;else e=e>>>5}l=f;return b|0}function $5(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+48|0;i=k+24|0;h=k+16|0;g=k;d=k+28|0;b=d;e=153835;f=b+20|0;do{a[b>>0]=a[e>>0]|0;b=b+1|0;e=e+1|0}while((b|0)<(f|0));e=d+13|0;b=0;while(1){_5(e)|0;c[g>>2]=d;c[g+4>>2]=32962;c[g+8>>2]=384;f=K1(Wa(5,g|0)|0)|0;b=b+1|0;if((f|0)>-1){j=4;break}if((b|0)>=100){b=0;break}}if((j|0)==4){c[h>>2]=d;Ta(10,h|0)|0;b=h4(f,153855)|0;if(!b){c[i>>2]=f;xa(6,i|0)|0;b=0}}l=k;return b|0}function a6(a){a=a|0;return +(+b6(a,0))}function b6(a,b){a=a|0;b=b|0;return +(+c6(a,b,1))}function c6(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,i=0;i=l;l=l+128|0;h=i;f=h;g=f+124|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));f=h+4|0;c[f>>2]=a;g=h+8|0;c[g>>2]=-1;c[h+44>>2]=a;c[h+76>>2]=-1;U1(h,0);e=+s3(h,d,1);d=(c[f>>2]|0)-(c[g>>2]|0)+(c[h+108>>2]|0)|0;if(b|0)c[b>>2]=d|0?a+d|0:a;l=i;return +e}function d6(b){b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;while(1){e=a[b>>0]|0;c=e<<24>>24;f=b+1|0;if(!(X1(c)|0))break;else b=f}switch(c|0){case 45:{b=1;g=5;break}case 43:{b=0;g=5;break}default:{h=0;d=b;b=e}}if((g|0)==5){h=b;d=f;b=a[f>>0]|0}c=(b<<24>>24)+-48|0;if(c>>>0<10){b=0;do{d=d+1|0;b=(b*10|0)-c|0;c=(a[d>>0]|0)+-48|0}while(c>>>0<10)}else b=0;return (h|0?b:0-b|0)|0}function e6(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:do if(!c)b=0;else{h=b;while(1){g=c>>>1;b=h+(S(g,d)|0)|0;f=vb[e&127](a,b)|0;if(!f)break a;if((c|0)==1){b=0;break a}f=(f|0)<0;c=f?g:c-g|0;if(!c){b=0;break}else h=f?h:b}}while(0);return b|0}function f6(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=l;l=l+32|0;f=h;e=a[d>>0]|0;a:do if(e<<24>>24!=0?(a[d+1>>0]|0)!=0:0){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;c[f+24>>2]=0;c[f+28>>2]=0;do{i=f+(((e&255)>>>5&255)<<2)|0;c[i>>2]=c[i>>2]|1<<(e&31);d=d+1|0;e=a[d>>0]|0}while(e<<24>>24!=0);e=a[b>>0]|0;if(!(e<<24>>24))d=b;else{d=b;do{if(c[f+(((e&255)>>>5&255)<<2)>>2]&1<<(e&31)|0)break a;d=d+1|0;e=a[d>>0]|0}while(e<<24>>24!=0)}}else g=3;while(0);if((g|0)==3)d=G3(b,e<<24>>24)|0;l=h;return d-b|0}function g6(a,b){a=a|0;b=b|0;O3(a+(D3(a)|0)|0,b)|0;return a|0}function h6(b,c){b=b|0;c=c|0;c=b+(f6(b,c)|0)|0;return (a[c>>0]|0?c:0)|0}function i6(b,d){b=b|0;d=d|0;var e=0;if(!b){b=c[47615]|0;if(!b)b=0;else e=3}else e=3;do if((e|0)==3){b=b+(P4(b,d)|0)|0;if(!(a[b>>0]|0)){c[47615]=0;b=0;break}d=b+(f6(b,d)|0)|0;c[47615]=d;if(!(a[d>>0]|0)){c[47615]=0;break}else{c[47615]=d+1;a[d>>0]=0;break}}while(0);return b|0}function j6(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if(!b){b=c[e>>2]|0;if(!b)b=0;else f=3}else f=3;do if((f|0)==3){b=b+(P4(b,d)|0)|0;if(!(a[b>>0]|0)){c[e>>2]=0;b=0;break}d=b+(f6(b,d)|0)|0;c[e>>2]=d;if(!(a[d>>0]|0)){c[e>>2]=0;break}else{c[e>>2]=d+1;a[d>>0]=0;break}}while(0);return b|0}function k6(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;K=l;l=l+16|0;o=K;do if(a>>>0<245){p=a>>>0<11?16:a+11&-8;a=p>>>3;t=c[47616]|0;d=t>>>a;if(d&3|0){a=(d&1^1)+a|0;d=190504+(a<<1<<2)|0;e=d+8|0;f=c[e>>2]|0;g=f+8|0;h=c[g>>2]|0;do if((d|0)!=(h|0)){if(h>>>0<(c[47620]|0)>>>0)Va();b=h+12|0;if((c[b>>2]|0)==(f|0)){c[b>>2]=d;c[e>>2]=h;break}else Va()}else c[47616]=t&~(1<<a);while(0);J=a<<3;c[f+4>>2]=J|3;J=f+J+4|0;c[J>>2]=c[J>>2]|1;J=g;l=K;return J|0}s=c[47618]|0;if(p>>>0>s>>>0){if(d|0){i=2<<a;a=d<<a&(i|0-i);a=(a&0-a)+-1|0;i=a>>>12&16;a=a>>>i;e=a>>>5&8;a=a>>>e;g=a>>>2&4;a=a>>>g;d=a>>>1&2;a=a>>>d;b=a>>>1&1;b=(e|i|g|d|b)+(a>>>b)|0;a=190504+(b<<1<<2)|0;d=a+8|0;g=c[d>>2]|0;i=g+8|0;e=c[i>>2]|0;do if((a|0)!=(e|0)){if(e>>>0<(c[47620]|0)>>>0)Va();f=e+12|0;if((c[f>>2]|0)==(g|0)){c[f>>2]=a;c[d>>2]=e;j=t;break}else Va()}else{j=t&~(1<<b);c[47616]=j}while(0);h=(b<<3)-p|0;c[g+4>>2]=p|3;e=g+p|0;c[e+4>>2]=h|1;c[e+h>>2]=h;if(s|0){f=c[47621]|0;b=s>>>3;d=190504+(b<<1<<2)|0;b=1<<b;if(j&b){b=d+8|0;a=c[b>>2]|0;if(a>>>0<(c[47620]|0)>>>0)Va();else{k=a;m=b}}else{c[47616]=j|b;k=d;m=d+8|0}c[m>>2]=f;c[k+12>>2]=f;c[f+8>>2]=k;c[f+12>>2]=d}c[47618]=h;c[47621]=e;J=i;l=K;return J|0}k=c[47617]|0;if(k){a=(k&0-k)+-1|0;I=a>>>12&16;a=a>>>I;H=a>>>5&8;a=a>>>H;J=a>>>2&4;a=a>>>J;d=a>>>1&2;a=a>>>d;b=a>>>1&1;b=c[190768+((H|I|J|d|b)+(a>>>b)<<2)>>2]|0;a=(c[b+4>>2]&-8)-p|0;d=c[b+16+(((c[b+16>>2]|0)==0&1)<<2)>>2]|0;if(!d){j=b;h=a}else{do{I=(c[d+4>>2]&-8)-p|0;J=I>>>0<a>>>0;a=J?I:a;b=J?d:b;d=c[d+16+(((c[d+16>>2]|0)==0&1)<<2)>>2]|0}while((d|0)!=0);j=b;h=a}f=c[47620]|0;if(j>>>0<f>>>0)Va();i=j+p|0;if(j>>>0>=i>>>0)Va();g=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){a=j+20|0;b=c[a>>2]|0;if(!b){a=j+16|0;b=c[a>>2]|0;if(!b){n=0;break}}while(1){d=b+20|0;e=c[d>>2]|0;if(e|0){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}if(a>>>0<f>>>0)Va();else{c[a>>2]=0;n=b;break}}else{e=c[j+8>>2]|0;if(e>>>0<f>>>0)Va();b=e+12|0;if((c[b>>2]|0)!=(j|0))Va();a=d+8|0;if((c[a>>2]|0)==(j|0)){c[b>>2]=d;c[a>>2]=e;n=d;break}else Va()}while(0);a:do if(g|0){b=c[j+28>>2]|0;a=190768+(b<<2)|0;do if((j|0)==(c[a>>2]|0)){c[a>>2]=n;if(!n){c[47617]=k&~(1<<b);break a}}else if(g>>>0>=(c[47620]|0)>>>0){c[g+16+(((c[g+16>>2]|0)!=(j|0)&1)<<2)>>2]=n;if(!n)break a;else break}else Va();while(0);a=c[47620]|0;if(n>>>0<a>>>0)Va();c[n+24>>2]=g;b=c[j+16>>2]|0;do if(b|0)if(b>>>0<a>>>0)Va();else{c[n+16>>2]=b;c[b+24>>2]=n;break}while(0);b=c[j+20>>2]|0;if(b|0)if(b>>>0<(c[47620]|0)>>>0)Va();else{c[n+20>>2]=b;c[b+24>>2]=n;break}}while(0);if(h>>>0<16){J=h+p|0;c[j+4>>2]=J|3;J=j+J+4|0;c[J>>2]=c[J>>2]|1}else{c[j+4>>2]=p|3;c[i+4>>2]=h|1;c[i+h>>2]=h;if(s|0){e=c[47621]|0;b=s>>>3;d=190504+(b<<1<<2)|0;b=1<<b;if(t&b){b=d+8|0;a=c[b>>2]|0;if(a>>>0<(c[47620]|0)>>>0)Va();else{q=a;r=b}}else{c[47616]=t|b;q=d;r=d+8|0}c[r>>2]=e;c[q+12>>2]=e;c[e+8>>2]=q;c[e+12>>2]=d}c[47618]=h;c[47621]=i}J=j+8|0;l=K;return J|0}}}else if(a>>>0<=4294967231){a=a+11|0;p=a&-8;k=c[47617]|0;if(k){e=0-p|0;a=a>>>8;if(a)if(p>>>0>16777215)i=31;else{r=(a+1048320|0)>>>16&8;C=a<<r;q=(C+520192|0)>>>16&4;C=C<<q;i=(C+245760|0)>>>16&2;i=14-(q|r|i)+(C<<i>>>15)|0;i=p>>>(i+7|0)&1|i<<1}else i=0;d=c[190768+(i<<2)>>2]|0;b:do if(!d){d=0;a=0;C=81}else{a=0;h=p<<((i|0)==31?0:25-(i>>>1)|0);g=0;while(1){f=(c[d+4>>2]&-8)-p|0;if(f>>>0<e>>>0)if(!f){a=d;e=0;f=d;C=85;break b}else{a=d;e=f}f=c[d+20>>2]|0;d=c[d+16+(h>>>31<<2)>>2]|0;g=(f|0)==0|(f|0)==(d|0)?g:f;f=(d|0)==0;if(f){d=g;C=81;break}else h=h<<((f^1)&1)}}while(0);if((C|0)==81){if((d|0)==0&(a|0)==0){a=2<<i;a=k&(a|0-a);if(!a)break;r=(a&0-a)+-1|0;m=r>>>12&16;r=r>>>m;j=r>>>5&8;r=r>>>j;n=r>>>2&4;r=r>>>n;q=r>>>1&2;r=r>>>q;d=r>>>1&1;a=0;d=c[190768+((j|m|n|q|d)+(r>>>d)<<2)>>2]|0}if(!d){j=a;i=e}else{f=d;C=85}}if((C|0)==85)while(1){C=0;d=(c[f+4>>2]&-8)-p|0;r=d>>>0<e>>>0;d=r?d:e;a=r?f:a;f=c[f+16+(((c[f+16>>2]|0)==0&1)<<2)>>2]|0;if(!f){j=a;i=d;break}else{e=d;C=85}}if((j|0)!=0?i>>>0<((c[47618]|0)-p|0)>>>0:0){f=c[47620]|0;if(j>>>0<f>>>0)Va();h=j+p|0;if(j>>>0>=h>>>0)Va();g=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){a=j+20|0;b=c[a>>2]|0;if(!b){a=j+16|0;b=c[a>>2]|0;if(!b){s=0;break}}while(1){d=b+20|0;e=c[d>>2]|0;if(e|0){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}if(a>>>0<f>>>0)Va();else{c[a>>2]=0;s=b;break}}else{e=c[j+8>>2]|0;if(e>>>0<f>>>0)Va();b=e+12|0;if((c[b>>2]|0)!=(j|0))Va();a=d+8|0;if((c[a>>2]|0)==(j|0)){c[b>>2]=d;c[a>>2]=e;s=d;break}else Va()}while(0);c:do if(g){b=c[j+28>>2]|0;a=190768+(b<<2)|0;do if((j|0)==(c[a>>2]|0)){c[a>>2]=s;if(!s){t=k&~(1<<b);c[47617]=t;break c}}else if(g>>>0>=(c[47620]|0)>>>0){c[g+16+(((c[g+16>>2]|0)!=(j|0)&1)<<2)>>2]=s;if(!s){t=k;break c}else break}else Va();while(0);a=c[47620]|0;if(s>>>0<a>>>0)Va();c[s+24>>2]=g;b=c[j+16>>2]|0;do if(b|0)if(b>>>0<a>>>0)Va();else{c[s+16>>2]=b;c[b+24>>2]=s;break}while(0);b=c[j+20>>2]|0;if(b)if(b>>>0<(c[47620]|0)>>>0)Va();else{c[s+20>>2]=b;c[b+24>>2]=s;t=k;break}else t=k}else t=k;while(0);do if(i>>>0>=16){c[j+4>>2]=p|3;c[h+4>>2]=i|1;c[h+i>>2]=i;b=i>>>3;if(i>>>0<256){d=190504+(b<<1<<2)|0;a=c[47616]|0;b=1<<b;if(a&b){b=d+8|0;a=c[b>>2]|0;if(a>>>0<(c[47620]|0)>>>0)Va();else{x=a;y=b}}else{c[47616]=a|b;x=d;y=d+8|0}c[y>>2]=h;c[x+12>>2]=h;c[h+8>>2]=x;c[h+12>>2]=d;break}b=i>>>8;if(b)if(i>>>0>16777215)b=31;else{I=(b+1048320|0)>>>16&8;J=b<<I;H=(J+520192|0)>>>16&4;J=J<<H;b=(J+245760|0)>>>16&2;b=14-(H|I|b)+(J<<b>>>15)|0;b=i>>>(b+7|0)&1|b<<1}else b=0;d=190768+(b<<2)|0;c[h+28>>2]=b;a=h+16|0;c[a+4>>2]=0;c[a>>2]=0;a=1<<b;if(!(t&a)){c[47617]=t|a;c[d>>2]=h;c[h+24>>2]=d;c[h+12>>2]=h;c[h+8>>2]=h;break}a=i<<((b|0)==31?0:25-(b>>>1)|0);e=c[d>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(i|0)){C=139;break}d=e+16+(a>>>31<<2)|0;b=c[d>>2]|0;if(!b){C=136;break}else{a=a<<1;e=b}}if((C|0)==136)if(d>>>0<(c[47620]|0)>>>0)Va();else{c[d>>2]=h;c[h+24>>2]=e;c[h+12>>2]=h;c[h+8>>2]=h;break}else if((C|0)==139){b=e+8|0;a=c[b>>2]|0;J=c[47620]|0;if(a>>>0>=J>>>0&e>>>0>=J>>>0){c[a+12>>2]=h;c[b>>2]=h;c[h+8>>2]=a;c[h+12>>2]=e;c[h+24>>2]=0;break}else Va()}}else{J=i+p|0;c[j+4>>2]=J|3;J=j+J+4|0;c[J>>2]=c[J>>2]|1}while(0);J=j+8|0;l=K;return J|0}}}else p=-1;while(0);d=c[47618]|0;if(d>>>0>=p>>>0){b=d-p|0;a=c[47621]|0;if(b>>>0>15){J=a+p|0;c[47621]=J;c[47618]=b;c[J+4>>2]=b|1;c[J+b>>2]=b;c[a+4>>2]=p|3}else{c[47618]=0;c[47621]=0;c[a+4>>2]=d|3;J=a+d+4|0;c[J>>2]=c[J>>2]|1}J=a+8|0;l=K;return J|0}h=c[47619]|0;if(h>>>0>p>>>0){H=h-p|0;c[47619]=H;J=c[47622]|0;I=J+p|0;c[47622]=I;c[I+4>>2]=H|1;c[J+4>>2]=p|3;J=J+8|0;l=K;return J|0}if(!(c[47734]|0)){c[47736]=4096;c[47735]=4096;c[47737]=-1;c[47738]=-1;c[47739]=0;c[47727]=0;a=o&-16^1431655768;c[o>>2]=a;c[47734]=a;a=4096}else a=c[47736]|0;i=p+48|0;j=p+47|0;g=a+j|0;f=0-a|0;k=g&f;if(k>>>0<=p>>>0){J=0;l=K;return J|0}a=c[47726]|0;if(a|0?(x=c[47724]|0,y=x+k|0,y>>>0<=x>>>0|y>>>0>a>>>0):0){J=0;l=K;return J|0}d:do if(!(c[47727]&4)){d=c[47622]|0;e:do if(d){e=190912;while(1){a=c[e>>2]|0;if(a>>>0<=d>>>0?(w=e+4|0,(a+(c[w>>2]|0)|0)>>>0>d>>>0):0)break;a=c[e+8>>2]|0;if(!a){C=163;break e}else e=a}b=g-h&f;if(b>>>0<2147483647){a=H6(b|0)|0;if((a|0)==((c[e>>2]|0)+(c[w>>2]|0)|0)){if((a|0)!=(-1|0)){h=b;g=a;C=180;break d}}else{e=a;C=171}}else b=0}else C=163;while(0);do if((C|0)==163){d=H6(0)|0;if((d|0)!=(-1|0)?(b=d,u=c[47735]|0,v=u+-1|0,b=((v&b|0)==0?0:(v+b&0-u)-b|0)+k|0,u=c[47724]|0,v=b+u|0,b>>>0>p>>>0&b>>>0<2147483647):0){y=c[47726]|0;if(y|0?v>>>0<=u>>>0|v>>>0>y>>>0:0){b=0;break}a=H6(b|0)|0;if((a|0)==(d|0)){h=b;g=d;C=180;break d}else{e=a;C=171}}else b=0}while(0);do if((C|0)==171){d=0-b|0;if(!(i>>>0>b>>>0&(b>>>0<2147483647&(e|0)!=(-1|0))))if((e|0)==(-1|0)){b=0;break}else{h=b;g=e;C=180;break d}a=c[47736]|0;a=j-b+a&0-a;if(a>>>0>=2147483647){h=b;g=e;C=180;break d}if((H6(a|0)|0)==(-1|0)){H6(d|0)|0;b=0;break}else{h=a+b|0;g=e;C=180;break d}}while(0);c[47727]=c[47727]|4;C=178}else{b=0;C=178}while(0);if(((C|0)==178?k>>>0<2147483647:0)?(B=H6(k|0)|0,y=H6(0)|0,z=y-B|0,A=z>>>0>(p+40|0)>>>0,!((B|0)==(-1|0)|A^1|B>>>0<y>>>0&((B|0)!=(-1|0)&(y|0)!=(-1|0))^1)):0){h=A?z:b;g=B;C=180}if((C|0)==180){b=(c[47724]|0)+h|0;c[47724]=b;if(b>>>0>(c[47725]|0)>>>0)c[47725]=b;k=c[47622]|0;do if(k){b=190912;while(1){a=c[b>>2]|0;d=b+4|0;e=c[d>>2]|0;if((g|0)==(a+e|0)){C=190;break}f=c[b+8>>2]|0;if(!f)break;else b=f}if(((C|0)==190?(c[b+12>>2]&8|0)==0:0)?k>>>0<g>>>0&k>>>0>=a>>>0:0){c[d>>2]=e+h;J=k+8|0;J=(J&7|0)==0?0:0-J&7;I=k+J|0;J=(c[47619]|0)+(h-J)|0;c[47622]=I;c[47619]=J;c[I+4>>2]=J|1;c[I+J+4>>2]=40;c[47623]=c[47738];break}b=c[47620]|0;if(g>>>0<b>>>0){c[47620]=g;i=g}else i=b;d=g+h|0;b=190912;while(1){if((c[b>>2]|0)==(d|0)){C=198;break}a=c[b+8>>2]|0;if(!a)break;else b=a}if((C|0)==198?(c[b+12>>2]&8|0)==0:0){c[b>>2]=g;n=b+4|0;c[n>>2]=(c[n>>2]|0)+h;n=g+8|0;n=g+((n&7|0)==0?0:0-n&7)|0;b=d+8|0;b=d+((b&7|0)==0?0:0-b&7)|0;m=n+p|0;j=b-n-p|0;c[n+4>>2]=p|3;do if((b|0)!=(k|0)){if((b|0)==(c[47621]|0)){J=(c[47618]|0)+j|0;c[47618]=J;c[47621]=m;c[m+4>>2]=J|1;c[m+J>>2]=J;break}a=c[b+4>>2]|0;if((a&3|0)==1){h=a&-8;f=a>>>3;f:do if(a>>>0>=256){g=c[b+24>>2]|0;e=c[b+12>>2]|0;do if((e|0)==(b|0)){e=b+16|0;d=e+4|0;a=c[d>>2]|0;if(!a){a=c[e>>2]|0;if(!a){H=0;break}else d=e}while(1){e=a+20|0;f=c[e>>2]|0;if(f|0){a=f;d=e;continue}e=a+16|0;f=c[e>>2]|0;if(!f)break;else{a=f;d=e}}if(d>>>0<i>>>0)Va();else{c[d>>2]=0;H=a;break}}else{f=c[b+8>>2]|0;if(f>>>0<i>>>0)Va();a=f+12|0;if((c[a>>2]|0)!=(b|0))Va();d=e+8|0;if((c[d>>2]|0)==(b|0)){c[a>>2]=e;c[d>>2]=f;H=e;break}else Va()}while(0);if(!g)break;a=c[b+28>>2]|0;d=190768+(a<<2)|0;do if((b|0)!=(c[d>>2]|0))if(g>>>0>=(c[47620]|0)>>>0){c[g+16+(((c[g+16>>2]|0)!=(b|0)&1)<<2)>>2]=H;if(!H)break f;else break}else Va();else{c[d>>2]=H;if(H|0)break;c[47617]=c[47617]&~(1<<a);break f}while(0);e=c[47620]|0;if(H>>>0<e>>>0)Va();c[H+24>>2]=g;a=b+16|0;d=c[a>>2]|0;do if(d|0)if(d>>>0<e>>>0)Va();else{c[H+16>>2]=d;c[d+24>>2]=H;break}while(0);a=c[a+4>>2]|0;if(!a)break;if(a>>>0<(c[47620]|0)>>>0)Va();else{c[H+20>>2]=a;c[a+24>>2]=H;break}}else{d=c[b+8>>2]|0;e=c[b+12>>2]|0;a=190504+(f<<1<<2)|0;do if((d|0)!=(a|0)){if(d>>>0<i>>>0)Va();if((c[d+12>>2]|0)==(b|0))break;Va()}while(0);if((e|0)==(d|0)){c[47616]=c[47616]&~(1<<f);break}do if((e|0)==(a|0))E=e+8|0;else{if(e>>>0<i>>>0)Va();a=e+8|0;if((c[a>>2]|0)==(b|0)){E=a;break}Va()}while(0);c[d+12>>2]=e;c[E>>2]=d}while(0);b=b+h|0;f=h+j|0}else f=j;b=b+4|0;c[b>>2]=c[b>>2]&-2;c[m+4>>2]=f|1;c[m+f>>2]=f;b=f>>>3;if(f>>>0<256){d=190504+(b<<1<<2)|0;a=c[47616]|0;b=1<<b;do if(!(a&b)){c[47616]=a|b;I=d;J=d+8|0}else{b=d+8|0;a=c[b>>2]|0;if(a>>>0>=(c[47620]|0)>>>0){I=a;J=b;break}Va()}while(0);c[J>>2]=m;c[I+12>>2]=m;c[m+8>>2]=I;c[m+12>>2]=d;break}b=f>>>8;do if(!b)b=0;else{if(f>>>0>16777215){b=31;break}I=(b+1048320|0)>>>16&8;J=b<<I;H=(J+520192|0)>>>16&4;J=J<<H;b=(J+245760|0)>>>16&2;b=14-(H|I|b)+(J<<b>>>15)|0;b=f>>>(b+7|0)&1|b<<1}while(0);e=190768+(b<<2)|0;c[m+28>>2]=b;a=m+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[47617]|0;d=1<<b;if(!(a&d)){c[47617]=a|d;c[e>>2]=m;c[m+24>>2]=e;c[m+12>>2]=m;c[m+8>>2]=m;break}a=f<<((b|0)==31?0:25-(b>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(f|0)){C=265;break}d=e+16+(a>>>31<<2)|0;b=c[d>>2]|0;if(!b){C=262;break}else{a=a<<1;e=b}}if((C|0)==262)if(d>>>0<(c[47620]|0)>>>0)Va();else{c[d>>2]=m;c[m+24>>2]=e;c[m+12>>2]=m;c[m+8>>2]=m;break}else if((C|0)==265){b=e+8|0;a=c[b>>2]|0;J=c[47620]|0;if(a>>>0>=J>>>0&e>>>0>=J>>>0){c[a+12>>2]=m;c[b>>2]=m;c[m+8>>2]=a;c[m+12>>2]=e;c[m+24>>2]=0;break}else Va()}}else{J=(c[47619]|0)+j|0;c[47619]=J;c[47622]=m;c[m+4>>2]=J|1}while(0);J=n+8|0;l=K;return J|0}b=190912;while(1){a=c[b>>2]|0;if(a>>>0<=k>>>0?(D=a+(c[b+4>>2]|0)|0,D>>>0>k>>>0):0)break;b=c[b+8>>2]|0}f=D+-47|0;a=f+8|0;a=f+((a&7|0)==0?0:0-a&7)|0;f=k+16|0;a=a>>>0<f>>>0?k:a;b=a+8|0;d=g+8|0;d=(d&7|0)==0?0:0-d&7;J=g+d|0;d=h+-40-d|0;c[47622]=J;c[47619]=d;c[J+4>>2]=d|1;c[J+d+4>>2]=40;c[47623]=c[47738];d=a+4|0;c[d>>2]=27;c[b>>2]=c[47728];c[b+4>>2]=c[47729];c[b+8>>2]=c[47730];c[b+12>>2]=c[47731];c[47728]=g;c[47729]=h;c[47731]=0;c[47730]=b;b=a+24|0;do{J=b;b=b+4|0;c[b>>2]=7}while((J+8|0)>>>0<D>>>0);if((a|0)!=(k|0)){g=a-k|0;c[d>>2]=c[d>>2]&-2;c[k+4>>2]=g|1;c[a>>2]=g;b=g>>>3;if(g>>>0<256){d=190504+(b<<1<<2)|0;a=c[47616]|0;b=1<<b;if(a&b){b=d+8|0;a=c[b>>2]|0;if(a>>>0<(c[47620]|0)>>>0)Va();else{F=a;G=b}}else{c[47616]=a|b;F=d;G=d+8|0}c[G>>2]=k;c[F+12>>2]=k;c[k+8>>2]=F;c[k+12>>2]=d;break}b=g>>>8;if(b)if(g>>>0>16777215)d=31;else{I=(b+1048320|0)>>>16&8;J=b<<I;H=(J+520192|0)>>>16&4;J=J<<H;d=(J+245760|0)>>>16&2;d=14-(H|I|d)+(J<<d>>>15)|0;d=g>>>(d+7|0)&1|d<<1}else d=0;e=190768+(d<<2)|0;c[k+28>>2]=d;c[k+20>>2]=0;c[f>>2]=0;b=c[47617]|0;a=1<<d;if(!(b&a)){c[47617]=b|a;c[e>>2]=k;c[k+24>>2]=e;c[k+12>>2]=k;c[k+8>>2]=k;break}a=g<<((d|0)==31?0:25-(d>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(g|0)){C=292;break}d=e+16+(a>>>31<<2)|0;b=c[d>>2]|0;if(!b){C=289;break}else{a=a<<1;e=b}}if((C|0)==289)if(d>>>0<(c[47620]|0)>>>0)Va();else{c[d>>2]=k;c[k+24>>2]=e;c[k+12>>2]=k;c[k+8>>2]=k;break}else if((C|0)==292){b=e+8|0;a=c[b>>2]|0;J=c[47620]|0;if(a>>>0>=J>>>0&e>>>0>=J>>>0){c[a+12>>2]=k;c[b>>2]=k;c[k+8>>2]=a;c[k+12>>2]=e;c[k+24>>2]=0;break}else Va()}}}else{J=c[47620]|0;if((J|0)==0|g>>>0<J>>>0)c[47620]=g;c[47728]=g;c[47729]=h;c[47731]=0;c[47625]=c[47734];c[47624]=-1;b=0;do{J=190504+(b<<1<<2)|0;c[J+12>>2]=J;c[J+8>>2]=J;b=b+1|0}while((b|0)!=32);J=g+8|0;J=(J&7|0)==0?0:0-J&7;I=g+J|0;J=h+-40-J|0;c[47622]=I;c[47619]=J;c[I+4>>2]=J|1;c[I+J+4>>2]=40;c[47623]=c[47738]}while(0);b=c[47619]|0;if(b>>>0>p>>>0){H=b-p|0;c[47619]=H;J=c[47622]|0;I=J+p|0;c[47622]=I;c[I+4>>2]=H|1;c[J+4>>2]=p|3;J=J+8|0;l=K;return J|0}}c[(L1()|0)>>2]=12;J=0;l=K;return J|0}function l6(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if(!a)return;d=a+-8|0;h=c[47620]|0;if(d>>>0<h>>>0)Va();a=c[a+-4>>2]|0;b=a&3;if((b|0)==1)Va();e=a&-8;o=d+e|0;a:do if(!(a&1)){a=c[d>>2]|0;if(!b)return;k=d+(0-a)|0;j=a+e|0;if(k>>>0<h>>>0)Va();if((k|0)==(c[47621]|0)){a=o+4|0;b=c[a>>2]|0;if((b&3|0)!=3){r=k;f=j;m=k;break}c[47618]=j;c[a>>2]=b&-2;c[k+4>>2]=j|1;c[k+j>>2]=j;return}e=a>>>3;if(a>>>0<256){b=c[k+8>>2]|0;d=c[k+12>>2]|0;a=190504+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0<h>>>0)Va();if((c[b+12>>2]|0)!=(k|0))Va()}if((d|0)==(b|0)){c[47616]=c[47616]&~(1<<e);r=k;f=j;m=k;break}if((d|0)!=(a|0)){if(d>>>0<h>>>0)Va();a=d+8|0;if((c[a>>2]|0)==(k|0))g=a;else Va()}else g=d+8|0;c[b+12>>2]=d;c[g>>2]=b;r=k;f=j;m=k;break}g=c[k+24>>2]|0;d=c[k+12>>2]|0;do if((d|0)==(k|0)){d=k+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){i=0;break}else b=d}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<h>>>0)Va();else{c[b>>2]=0;i=a;break}}else{e=c[k+8>>2]|0;if(e>>>0<h>>>0)Va();a=e+12|0;if((c[a>>2]|0)!=(k|0))Va();b=d+8|0;if((c[b>>2]|0)==(k|0)){c[a>>2]=d;c[b>>2]=e;i=d;break}else Va()}while(0);if(g){a=c[k+28>>2]|0;b=190768+(a<<2)|0;do if((k|0)==(c[b>>2]|0)){c[b>>2]=i;if(!i){c[47617]=c[47617]&~(1<<a);r=k;f=j;m=k;break a}}else if(g>>>0>=(c[47620]|0)>>>0){c[g+16+(((c[g+16>>2]|0)!=(k|0)&1)<<2)>>2]=i;if(!i){r=k;f=j;m=k;break a}else break}else Va();while(0);d=c[47620]|0;if(i>>>0<d>>>0)Va();c[i+24>>2]=g;a=k+16|0;b=c[a>>2]|0;do if(b|0)if(b>>>0<d>>>0)Va();else{c[i+16>>2]=b;c[b+24>>2]=i;break}while(0);a=c[a+4>>2]|0;if(a)if(a>>>0<(c[47620]|0)>>>0)Va();else{c[i+20>>2]=a;c[a+24>>2]=i;r=k;f=j;m=k;break}else{r=k;f=j;m=k}}else{r=k;f=j;m=k}}else{r=d;f=e;m=d}while(0);if(m>>>0>=o>>>0)Va();a=o+4|0;b=c[a>>2]|0;if(!(b&1))Va();if(!(b&2)){a=c[47621]|0;if((o|0)==(c[47622]|0)){q=(c[47619]|0)+f|0;c[47619]=q;c[47622]=r;c[r+4>>2]=q|1;if((r|0)!=(a|0))return;c[47621]=0;c[47618]=0;return}if((o|0)==(a|0)){q=(c[47618]|0)+f|0;c[47618]=q;c[47621]=m;c[r+4>>2]=q|1;c[m+q>>2]=q;return}f=(b&-8)+f|0;e=b>>>3;b:do if(b>>>0>=256){g=c[o+24>>2]|0;a=c[o+12>>2]|0;do if((a|0)==(o|0)){d=o+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){n=0;break}else b=d}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<(c[47620]|0)>>>0)Va();else{c[b>>2]=0;n=a;break}}else{b=c[o+8>>2]|0;if(b>>>0<(c[47620]|0)>>>0)Va();d=b+12|0;if((c[d>>2]|0)!=(o|0))Va();e=a+8|0;if((c[e>>2]|0)==(o|0)){c[d>>2]=a;c[e>>2]=b;n=a;break}else Va()}while(0);if(g|0){a=c[o+28>>2]|0;b=190768+(a<<2)|0;do if((o|0)==(c[b>>2]|0)){c[b>>2]=n;if(!n){c[47617]=c[47617]&~(1<<a);break b}}else if(g>>>0>=(c[47620]|0)>>>0){c[g+16+(((c[g+16>>2]|0)!=(o|0)&1)<<2)>>2]=n;if(!n)break b;else break}else Va();while(0);d=c[47620]|0;if(n>>>0<d>>>0)Va();c[n+24>>2]=g;a=o+16|0;b=c[a>>2]|0;do if(b|0)if(b>>>0<d>>>0)Va();else{c[n+16>>2]=b;c[b+24>>2]=n;break}while(0);a=c[a+4>>2]|0;if(a|0)if(a>>>0<(c[47620]|0)>>>0)Va();else{c[n+20>>2]=a;c[a+24>>2]=n;break}}}else{b=c[o+8>>2]|0;d=c[o+12>>2]|0;a=190504+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0<(c[47620]|0)>>>0)Va();if((c[b+12>>2]|0)!=(o|0))Va()}if((d|0)==(b|0)){c[47616]=c[47616]&~(1<<e);break}if((d|0)!=(a|0)){if(d>>>0<(c[47620]|0)>>>0)Va();a=d+8|0;if((c[a>>2]|0)==(o|0))l=a;else Va()}else l=d+8|0;c[b+12>>2]=d;c[l>>2]=b}while(0);c[r+4>>2]=f|1;c[m+f>>2]=f;if((r|0)==(c[47621]|0)){c[47618]=f;return}}else{c[a>>2]=b&-2;c[r+4>>2]=f|1;c[m+f>>2]=f}a=f>>>3;if(f>>>0<256){d=190504+(a<<1<<2)|0;b=c[47616]|0;a=1<<a;if(b&a){a=d+8|0;b=c[a>>2]|0;if(b>>>0<(c[47620]|0)>>>0)Va();else{p=b;q=a}}else{c[47616]=b|a;p=d;q=d+8|0}c[q>>2]=r;c[p+12>>2]=r;c[r+8>>2]=p;c[r+12>>2]=d;return}a=f>>>8;if(a)if(f>>>0>16777215)a=31;else{p=(a+1048320|0)>>>16&8;q=a<<p;o=(q+520192|0)>>>16&4;q=q<<o;a=(q+245760|0)>>>16&2;a=14-(o|p|a)+(q<<a>>>15)|0;a=f>>>(a+7|0)&1|a<<1}else a=0;e=190768+(a<<2)|0;c[r+28>>2]=a;c[r+20>>2]=0;c[r+16>>2]=0;b=c[47617]|0;d=1<<a;do if(b&d){b=f<<((a|0)==31?0:25-(a>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(f|0)){a=124;break}d=e+16+(b>>>31<<2)|0;a=c[d>>2]|0;if(!a){a=121;break}else{b=b<<1;e=a}}if((a|0)==121)if(d>>>0<(c[47620]|0)>>>0)Va();else{c[d>>2]=r;c[r+24>>2]=e;c[r+12>>2]=r;c[r+8>>2]=r;break}else if((a|0)==124){a=e+8|0;b=c[a>>2]|0;q=c[47620]|0;if(b>>>0>=q>>>0&e>>>0>=q>>>0){c[b+12>>2]=r;c[a>>2]=r;c[r+8>>2]=b;c[r+12>>2]=e;c[r+24>>2]=0;break}else Va()}}else{c[47617]=b|d;c[e>>2]=r;c[r+24>>2]=e;c[r+12>>2]=r;c[r+8>>2]=r}while(0);r=(c[47624]|0)+-1|0;c[47624]=r;if(!r)a=190920;else return;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[47624]=-1;return}function m6(a,b){a=a|0;b=b|0;var d=0;if(a){d=S(b,a)|0;if((b|a)>>>0>65535)d=((d>>>0)/(a>>>0)|0|0)==(b|0)?d:-1}else d=0;a=k6(d)|0;if(!a)return a|0;if(!(c[a+-4>>2]&3))return a|0;u6(a|0,0,d|0)|0;return a|0}function n6(a,b){a=a|0;b=b|0;var d=0,e=0;if(!a){b=k6(b)|0;return b|0}if(b>>>0>4294967231){c[(L1()|0)>>2]=12;b=0;return b|0}d=o6(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(d|0){b=d+8|0;return b|0}d=k6(b)|0;if(!d){b=0;return b|0}e=c[a+-4>>2]|0;e=(e&-8)-((e&3|0)==0?8:4)|0;B6(d|0,a|0,(e>>>0<b>>>0?e:b)|0)|0;l6(a);b=d;return b|0}
function o6(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=a+4|0;n=c[o>>2]|0;d=n&-8;k=a+d|0;i=c[47620]|0;e=n&3;if(!((e|0)!=1&a>>>0>=i>>>0&a>>>0<k>>>0))Va();f=c[k+4>>2]|0;if(!(f&1))Va();if(!e){if(b>>>0<256){a=0;return a|0}if(d>>>0>=(b+4|0)>>>0?(d-b|0)>>>0<=c[47736]<<1>>>0:0)return a|0;a=0;return a|0}if(d>>>0>=b>>>0){d=d-b|0;if(d>>>0<=15)return a|0;m=a+b|0;c[o>>2]=n&1|b|2;c[m+4>>2]=d|3;o=m+d+4|0;c[o>>2]=c[o>>2]|1;p6(m,d);return a|0}if((k|0)==(c[47622]|0)){m=(c[47619]|0)+d|0;d=m-b|0;e=a+b|0;if(m>>>0<=b>>>0){a=0;return a|0}c[o>>2]=n&1|b|2;c[e+4>>2]=d|1;c[47622]=e;c[47619]=d;return a|0}if((k|0)==(c[47621]|0)){f=(c[47618]|0)+d|0;if(f>>>0<b>>>0){a=0;return a|0}d=f-b|0;e=n&1;if(d>>>0>15){n=a+b|0;m=n+d|0;c[o>>2]=e|b|2;c[n+4>>2]=d|1;c[m>>2]=d;e=m+4|0;c[e>>2]=c[e>>2]&-2;e=n}else{c[o>>2]=e|f|2;e=a+f+4|0;c[e>>2]=c[e>>2]|1;e=0;d=0}c[47618]=d;c[47621]=e;return a|0}if(f&2|0){a=0;return a|0}l=(f&-8)+d|0;if(l>>>0<b>>>0){a=0;return a|0}m=l-b|0;g=f>>>3;a:do if(f>>>0>=256){h=c[k+24>>2]|0;f=c[k+12>>2]|0;do if((f|0)==(k|0)){f=k+16|0;e=f+4|0;d=c[e>>2]|0;if(!d){d=c[f>>2]|0;if(!d){j=0;break}else e=f}while(1){f=d+20|0;g=c[f>>2]|0;if(g|0){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0<i>>>0)Va();else{c[e>>2]=0;j=d;break}}else{g=c[k+8>>2]|0;if(g>>>0<i>>>0)Va();d=g+12|0;if((c[d>>2]|0)!=(k|0))Va();e=f+8|0;if((c[e>>2]|0)==(k|0)){c[d>>2]=f;c[e>>2]=g;j=f;break}else Va()}while(0);if(h|0){d=c[k+28>>2]|0;e=190768+(d<<2)|0;do if((k|0)==(c[e>>2]|0)){c[e>>2]=j;if(!j){c[47617]=c[47617]&~(1<<d);break a}}else if(h>>>0>=(c[47620]|0)>>>0){c[h+16+(((c[h+16>>2]|0)!=(k|0)&1)<<2)>>2]=j;if(!j)break a;else break}else Va();while(0);f=c[47620]|0;if(j>>>0<f>>>0)Va();c[j+24>>2]=h;d=k+16|0;e=c[d>>2]|0;do if(e|0)if(e>>>0<f>>>0)Va();else{c[j+16>>2]=e;c[e+24>>2]=j;break}while(0);d=c[d+4>>2]|0;if(d|0)if(d>>>0<(c[47620]|0)>>>0)Va();else{c[j+20>>2]=d;c[d+24>>2]=j;break}}}else{e=c[k+8>>2]|0;f=c[k+12>>2]|0;d=190504+(g<<1<<2)|0;if((e|0)!=(d|0)){if(e>>>0<i>>>0)Va();if((c[e+12>>2]|0)!=(k|0))Va()}if((f|0)==(e|0)){c[47616]=c[47616]&~(1<<g);break}if((f|0)!=(d|0)){if(f>>>0<i>>>0)Va();d=f+8|0;if((c[d>>2]|0)==(k|0))h=d;else Va()}else h=f+8|0;c[e+12>>2]=f;c[h>>2]=e}while(0);d=n&1;if(m>>>0<16){c[o>>2]=l|d|2;o=a+l+4|0;c[o>>2]=c[o>>2]|1;return a|0}else{n=a+b|0;c[o>>2]=d|b|2;c[n+4>>2]=m|3;o=n+m+4|0;c[o>>2]=c[o>>2]|1;p6(n,m);return a|0}return 0}function p6(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;o=a+b|0;d=c[a+4>>2]|0;a:do if(!(d&1)){g=c[a>>2]|0;if(!(d&3))return;l=a+(0-g)|0;k=g+b|0;i=c[47620]|0;if(l>>>0<i>>>0)Va();if((l|0)==(c[47621]|0)){a=o+4|0;d=c[a>>2]|0;if((d&3|0)!=3){r=l;f=k;break}c[47618]=k;c[a>>2]=d&-2;c[l+4>>2]=k|1;c[l+k>>2]=k;return}e=g>>>3;if(g>>>0<256){d=c[l+8>>2]|0;b=c[l+12>>2]|0;a=190504+(e<<1<<2)|0;if((d|0)!=(a|0)){if(d>>>0<i>>>0)Va();if((c[d+12>>2]|0)!=(l|0))Va()}if((b|0)==(d|0)){c[47616]=c[47616]&~(1<<e);r=l;f=k;break}if((b|0)!=(a|0)){if(b>>>0<i>>>0)Va();a=b+8|0;if((c[a>>2]|0)==(l|0))h=a;else Va()}else h=b+8|0;c[d+12>>2]=b;c[h>>2]=d;r=l;f=k;break}g=c[l+24>>2]|0;b=c[l+12>>2]|0;do if((b|0)==(l|0)){b=l+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){j=0;break}else d=b}while(1){b=a+20|0;e=c[b>>2]|0;if(e|0){a=e;d=b;continue}b=a+16|0;e=c[b>>2]|0;if(!e)break;else{a=e;d=b}}if(d>>>0<i>>>0)Va();else{c[d>>2]=0;j=a;break}}else{e=c[l+8>>2]|0;if(e>>>0<i>>>0)Va();a=e+12|0;if((c[a>>2]|0)!=(l|0))Va();d=b+8|0;if((c[d>>2]|0)==(l|0)){c[a>>2]=b;c[d>>2]=e;j=b;break}else Va()}while(0);if(g){a=c[l+28>>2]|0;d=190768+(a<<2)|0;do if((l|0)==(c[d>>2]|0)){c[d>>2]=j;if(!j){c[47617]=c[47617]&~(1<<a);r=l;f=k;break a}}else if(g>>>0>=(c[47620]|0)>>>0){c[g+16+(((c[g+16>>2]|0)!=(l|0)&1)<<2)>>2]=j;if(!j){r=l;f=k;break a}else break}else Va();while(0);b=c[47620]|0;if(j>>>0<b>>>0)Va();c[j+24>>2]=g;a=l+16|0;d=c[a>>2]|0;do if(d|0)if(d>>>0<b>>>0)Va();else{c[j+16>>2]=d;c[d+24>>2]=j;break}while(0);a=c[a+4>>2]|0;if(a)if(a>>>0<(c[47620]|0)>>>0)Va();else{c[j+20>>2]=a;c[a+24>>2]=j;r=l;f=k;break}else{r=l;f=k}}else{r=l;f=k}}else{r=a;f=b}while(0);h=c[47620]|0;if(o>>>0<h>>>0)Va();a=o+4|0;d=c[a>>2]|0;if(!(d&2)){a=c[47621]|0;if((o|0)==(c[47622]|0)){q=(c[47619]|0)+f|0;c[47619]=q;c[47622]=r;c[r+4>>2]=q|1;if((r|0)!=(a|0))return;c[47621]=0;c[47618]=0;return}if((o|0)==(a|0)){q=(c[47618]|0)+f|0;c[47618]=q;c[47621]=r;c[r+4>>2]=q|1;c[r+q>>2]=q;return}f=(d&-8)+f|0;e=d>>>3;b:do if(d>>>0>=256){g=c[o+24>>2]|0;b=c[o+12>>2]|0;do if((b|0)==(o|0)){b=o+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){n=0;break}else d=b}while(1){b=a+20|0;e=c[b>>2]|0;if(e|0){a=e;d=b;continue}b=a+16|0;e=c[b>>2]|0;if(!e)break;else{a=e;d=b}}if(d>>>0<h>>>0)Va();else{c[d>>2]=0;n=a;break}}else{e=c[o+8>>2]|0;if(e>>>0<h>>>0)Va();a=e+12|0;if((c[a>>2]|0)!=(o|0))Va();d=b+8|0;if((c[d>>2]|0)==(o|0)){c[a>>2]=b;c[d>>2]=e;n=b;break}else Va()}while(0);if(g|0){a=c[o+28>>2]|0;d=190768+(a<<2)|0;do if((o|0)==(c[d>>2]|0)){c[d>>2]=n;if(!n){c[47617]=c[47617]&~(1<<a);break b}}else if(g>>>0>=(c[47620]|0)>>>0){c[g+16+(((c[g+16>>2]|0)!=(o|0)&1)<<2)>>2]=n;if(!n)break b;else break}else Va();while(0);b=c[47620]|0;if(n>>>0<b>>>0)Va();c[n+24>>2]=g;a=o+16|0;d=c[a>>2]|0;do if(d|0)if(d>>>0<b>>>0)Va();else{c[n+16>>2]=d;c[d+24>>2]=n;break}while(0);a=c[a+4>>2]|0;if(a|0)if(a>>>0<(c[47620]|0)>>>0)Va();else{c[n+20>>2]=a;c[a+24>>2]=n;break}}}else{d=c[o+8>>2]|0;b=c[o+12>>2]|0;a=190504+(e<<1<<2)|0;if((d|0)!=(a|0)){if(d>>>0<h>>>0)Va();if((c[d+12>>2]|0)!=(o|0))Va()}if((b|0)==(d|0)){c[47616]=c[47616]&~(1<<e);break}if((b|0)!=(a|0)){if(b>>>0<h>>>0)Va();a=b+8|0;if((c[a>>2]|0)==(o|0))m=a;else Va()}else m=b+8|0;c[d+12>>2]=b;c[m>>2]=d}while(0);c[r+4>>2]=f|1;c[r+f>>2]=f;if((r|0)==(c[47621]|0)){c[47618]=f;return}}else{c[a>>2]=d&-2;c[r+4>>2]=f|1;c[r+f>>2]=f}a=f>>>3;if(f>>>0<256){b=190504+(a<<1<<2)|0;d=c[47616]|0;a=1<<a;if(d&a){a=b+8|0;d=c[a>>2]|0;if(d>>>0<(c[47620]|0)>>>0)Va();else{p=d;q=a}}else{c[47616]=d|a;p=b;q=b+8|0}c[q>>2]=r;c[p+12>>2]=r;c[r+8>>2]=p;c[r+12>>2]=b;return}a=f>>>8;if(a)if(f>>>0>16777215)a=31;else{p=(a+1048320|0)>>>16&8;q=a<<p;o=(q+520192|0)>>>16&4;q=q<<o;a=(q+245760|0)>>>16&2;a=14-(o|p|a)+(q<<a>>>15)|0;a=f>>>(a+7|0)&1|a<<1}else a=0;e=190768+(a<<2)|0;c[r+28>>2]=a;c[r+20>>2]=0;c[r+16>>2]=0;d=c[47617]|0;b=1<<a;if(!(d&b)){c[47617]=d|b;c[e>>2]=r;c[r+24>>2]=e;c[r+12>>2]=r;c[r+8>>2]=r;return}d=f<<((a|0)==31?0:25-(a>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(f|0)){a=121;break}b=e+16+(d>>>31<<2)|0;a=c[b>>2]|0;if(!a){a=118;break}else{d=d<<1;e=a}}if((a|0)==118){if(b>>>0<(c[47620]|0)>>>0)Va();c[b>>2]=r;c[r+24>>2]=e;c[r+12>>2]=r;c[r+8>>2]=r;return}else if((a|0)==121){a=e+8|0;d=c[a>>2]|0;q=c[47620]|0;if(!(d>>>0>=q>>>0&e>>>0>=q>>>0))Va();c[d+12>>2]=r;c[a>>2]=r;c[r+8>>2]=d;c[r+12>>2]=e;c[r+24>>2]=0;return}}function q6(a,b){a=a|0;b=b|0;if(a>>>0<9){b=k6(b)|0;return b|0}else{b=r6(a,b)|0;return b|0}return 0}function r6(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;a=a>>>0>16?a:16;if(a+-1&a){d=16;while(1)if(d>>>0<a>>>0)d=d<<1;else{a=d;break}}if((-64-a|0)>>>0<=b>>>0){c[(L1()|0)>>2]=12;h=0;return h|0}g=b>>>0<11?16:b+11&-8;d=k6(g+12+a|0)|0;if(!d){h=0;return h|0}f=d+-8|0;do if(d&a+-1){e=(d+a+-1&0-a)+-8|0;b=f;e=(e-b|0)>>>0>15?e:e+a|0;b=e-b|0;a=d+-4|0;i=c[a>>2]|0;d=(i&-8)-b|0;if(!(i&3)){c[e>>2]=(c[f>>2]|0)+b;c[e+4>>2]=d;a=e;b=e;break}else{i=e+4|0;c[i>>2]=d|c[i>>2]&1|2;d=e+d+4|0;c[d>>2]=c[d>>2]|1;c[a>>2]=b|c[a>>2]&1|2;c[i>>2]=c[i>>2]|1;p6(f,b);a=e;b=e;break}}else{a=f;b=f}while(0);a=a+4|0;d=c[a>>2]|0;if(d&3|0?(h=d&-8,h>>>0>(g+16|0)>>>0):0){i=h-g|0;h=b+g|0;c[a>>2]=g|d&1|2;c[h+4>>2]=i|3;g=h+i+4|0;c[g>>2]=c[g>>2]|1;p6(h,i)}i=b+8|0;return i|0}function s6(){}function t6(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (D=d,a-c>>>0|0)|0}function u6(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}f=h&-4|0;g=f-64|0;i=d|d<<8|d<<16|d<<24;while((b|0)<=(g|0)){c[b>>2]=i;c[b+4>>2]=i;c[b+8>>2]=i;c[b+12>>2]=i;c[b+16>>2]=i;c[b+20>>2]=i;c[b+24>>2]=i;c[b+28>>2]=i;c[b+32>>2]=i;c[b+36>>2]=i;c[b+40>>2]=i;c[b+44>>2]=i;c[b+48>>2]=i;c[b+52>>2]=i;c[b+56>>2]=i;c[b+60>>2]=i;b=b+64|0}while((b|0)<(f|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}return h-e|0}function v6(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}D=a<<c-32;return 0}function w6(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (D=b+d+(c>>>0<a>>>0|0)>>>0,c|0)|0}function x6(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;q=q+1|0;c[a>>2]=q;while((f|0)<(e|0)){if(!(c[d+(f<<3)>>2]|0)){c[d+(f<<3)>>2]=q;c[d+((f<<3)+4)>>2]=b;c[d+((f<<3)+8)>>2]=0;D=e;return d|0}f=f+1|0}e=e*2|0;d=n6(d|0,8*(e+1|0)|0)|0;d=x6(a|0,b|0,d|0,e|0)|0;D=e;return d|0}function y6(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>c;return a>>>c|(b&(1<<c)-1)<<32-c}D=(b|0)<0?-1:0;return b>>c-32|0}function z6(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}D=0;return b>>>c-32|0}function A6(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;while((f|0)<(d|0)){e=c[b+(f<<3)>>2]|0;if(!e)break;if((e|0)==(a|0))return c[b+((f<<3)+4)>>2]|0;f=f+1|0}return 0}function B6(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192)return La(b|0,d|0,e|0)|0;h=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return h|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}e=g&-4|0;f=e-64|0;while((b|0)<=(f|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(e|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{e=g-4|0;while((b|0)<(e|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return h|0}function C6(b){b=b|0;var c=0;c=a[n+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[n+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[n+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (a[n+(b>>>24)>>0]|0)+24|0}function D6(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=a;j=b;k=j;h=d;n=e;i=n;if(!k){g=(f|0)!=0;if(!i){if(g){c[f>>2]=(l>>>0)%(h>>>0);c[f+4>>2]=0}n=0;f=(l>>>0)/(h>>>0)>>>0;return (D=n,f)|0}else{if(!g){n=0;f=0;return (D=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;f=0;return (D=n,f)|0}}g=(i|0)==0;do if(h){if(!g){g=(V(i|0)|0)-(V(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;b=g-31>>31;h=m;a=l>>>(m>>>0)&b|k<<i;b=k>>>(m>>>0)&b;g=0;i=l<<i;break}if(!f){n=0;f=0;return (D=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=j|b&0;n=0;f=0;return (D=n,f)|0}g=h-1|0;if(g&h|0){i=(V(h|0)|0)+33-(V(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;b=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<<m|l>>>(i>>>0))&b;b=b&k>>>(i>>>0);g=l<<p&j;i=(k<<p|l>>>(o>>>0))&j|l<<m&i-33>>31;break}if(f|0){c[f>>2]=g&l;c[f+4>>2]=0}if((h|0)==1){o=j|b&0;p=a|0|0;return (D=o,p)|0}else{p=C6(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (D=o,p)|0}}else{if(g){if(f|0){c[f>>2]=(k>>>0)%(h>>>0);c[f+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (D=o,p)|0}if(!l){if(f|0){c[f>>2]=0;c[f+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (D=o,p)|0}g=i-1|0;if(!(g&i)){if(f|0){c[f>>2]=a|0;c[f+4>>2]=g&k|b&0}o=0;p=k>>>((C6(i|0)|0)>>>0);return (D=o,p)|0}g=(V(i|0)|0)-(V(k|0)|0)|0;if(g>>>0<=30){b=g+1|0;i=31-g|0;h=b;a=k<<i|l>>>(b>>>0);b=k>>>(b>>>0);g=0;i=l<<i;break}if(!f){o=0;p=0;return (D=o,p)|0}c[f>>2]=a|0;c[f+4>>2]=j|b&0;o=0;p=0;return (D=o,p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=w6(m|0,l|0,-1,-1)|0;d=D;j=i;i=0;do{e=j;j=g>>>31|j<<1;g=i|g<<1;e=a<<1|e>>>31|0;n=a>>>31|b<<1|0;t6(k|0,d|0,e|0,n|0)|0;p=D;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=t6(e|0,n|0,o&m|0,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l|0)|0;b=D;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(f|0){c[f>>2]=a;c[f+4>>2]=b}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (D=o,p)|0}function E6(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return D6(a,b,c,d,0)|0}function F6(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=S(e,f)|0;d=a>>>16;a=(c>>>16)+(S(e,d)|0)|0;e=b>>>16;b=S(e,f)|0;return (D=(a>>>16)+(S(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function G6(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=F6(e,f)|0;a=D;return (D=(S(b,f)|0)+(S(d,e)|0)+a|a&0,c|0|0)|0}function H6(a){a=a|0;var b=0,d=0;d=a+15&-16|0;b=c[i>>2]|0;a=b+d|0;if((d|0)>0&(a|0)<(b|0)|(a|0)<0){_()|0;Fa(12);return -1}c[i>>2]=a;if((a|0)>(Z()|0)?(Y()|0)==0:0){Fa(12);c[i>>2]=b;return -1}return b|0}function I6(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else B6(b,c,d)|0;return b|0}function J6(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=l;l=l+16|0;f=g|0;D6(a,b,d,e,f)|0;l=g;return (D=c[f+4>>2]|0,c[f>>2]|0)|0}function K6(a){a=a|0;return (a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function L6(a){a=a|0;return (a&255)<<8|a>>8&255|0}function M6(a,b){a=a|0;b=b|0;db[a&127](b|0)}function N6(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return eb[a&63](b|0,c|0,d|0)|0}function O6(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;fb[a&31](b|0,c|0,d|0,e|0,f|0)}function P6(a){a=a|0;return +gb[a&1]()}function Q6(a,b){a=a|0;b=b|0;return +hb[a&1](b|0)}function R6(a){a=a|0;return ib[a&3]()|0}function S6(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;return jb[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0)|0}function T6(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=+e;return kb[a&3](b|0,c|0,+d,+e)|0}function U6(a,b,c){a=a|0;b=b|0;c=c|0;lb[a&63](b|0,c|0)}function V6(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return mb[a&1](b|0,c|0,d|0,e|0,f|0,g|0)|0}function W6(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=+f;g=g|0;nb[a&15](b|0,c|0,d|0,+e,+f,g|0)}function X6(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;ob[a&0](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0)}function Y6(a,b){a=a|0;b=b|0;return pb[a&63](b|0)|0}function Z6(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;return +qb[a&7](+b,+c,+d)}function _6(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;rb[a&127](b|0,c|0,d|0)}function $6(a){a=a|0;sb[a&15]()}function a7(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return tb[a&127](b|0,c|0,d|0,e|0)|0}function b7(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;ub[a&15](b|0,c|0,d|0,e|0,f|0,g|0)}function c7(a,b,c){a=a|0;b=b|0;c=c|0;return vb[a&127](b|0,c|0)|0}function d7(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return wb[a&63](b|0,c|0,d|0,e|0,f|0)|0}function e7(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;xb[a&31](b|0,c|0,d|0,e|0)}function f7(a){a=a|0;W(0)}function g7(a,b,c){a=a|0;b=b|0;c=c|0;W(1);return 0}function h7(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;W(2)}function i7(){W(3);return 0.0}function j7(a){a=a|0;W(4);return 0.0}function k7(){W(5);return 0}function l7(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;W(6);return 0}function m7(a,b,c,d){a=a|0;b=b|0;c=+c;d=+d;W(7);return 0}function n7(a,b){a=a|0;b=b|0;W(8)}function o7(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;W(9);return 0}function p7(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=+d;e=+e;f=f|0;W(10)}function q7(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;W(11)}function r7(a){a=a|0;W(12);return 0}function s7(a,b,c){a=+a;b=+b;c=+c;W(13);return 0.0}function t7(a,b,c){a=a|0;b=b|0;c=c|0;W(14)}function u7(){W(15)}function v7(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;W(16);return 0}function w7(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;W(17)}function x7(a,b){a=a|0;b=b|0;W(18);return 0}function y7(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;W(19);return 0}function z7(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;W(20)}

// EMSCRIPTEN_END_FUNCS
var db=[f7,Jb,Kb,Ob,Pb,Qb,ic,jc,Hc,Ic,Jc,Kc,Lc,Mc,Nc,Zc,_c,bd,cd,dd,ed,fd,gd,hd,td,ud,vd,xd,yd,zd,Ad,Bd,Cd,Dd,Ed,Pd,Qd,Rd,Td,Ud,Vd,Wd,Xd,Yd,Zd,_d,$d,be,oe,pe,qe,re,Ce,De,Ee,Ge,Te,Ue,Ve,Xe,Ye,Ze,_e,$e,af,bf,cf,df,nf,of,pf,qf,Tf,Of,mm,Yl,ap,Bo,Lp,Up,Xn,Zn,Ip,Jp,Ul,Vl,$n,io,ko,vo,CB,VM,lN,XM,WM,HN,sM,vM,FS,KS,Hf,Al,Fo,Jo,bp,l6,Uv,qA,wG,pI,TU,yR,zQ,LL,lV,OX,hY,iY,oY,f7,f7,f7,f7,f7,f7,f7,f7,f7];var eb=[g7,Em,Jv,Az,Iz,Rz,Wz,TB,XB,UL,NP,OU,w_,C_,W$,a0,k$,q$,I1,J1,P1,Q1,N2,dA,Um,xv,op,kt,Sx,Ux,Xx,Yz,rG,i2,LD,z4,OO,QL,FR,jY,C0,K$,w0,G0,s4,g7,g7,g7,g7,g7,g7,g7,g7,g7,g7,g7,g7,g7,g7,g7,g7,g7,g7,g7];var fb=[h7,$c,Fd,Md,ae,Fe,F_,G_,W_,X_,t0,d0,e0,t$,u$,xl,uG,AQ,o_,p_,h7,h7,h7,h7,h7,h7,h7,h7,h7,h7,h7,h7];var gb=[i7,SO];var hb=[j7,ZO];var ib=[k7,Yq,RK,IL];var jb=[l7,F0,v0,l7];var kb=[m7,su,nu,m7];var lb=[n7,Pc,Uc,jd,od,Ld,he,xe,Me,kf,wf,$B,pN,TN,LN,GN,jN,kN,PN,QN,IS,MS,aM,gA,sG,TK,qQ,PW,NX,kY,lY,pY,rY,n7,n7,n7,n7,n7,n7,n7,n7,n7,n7,n7,n7,n7,n7,n7,n7,n7,n7,n7,n7,n7,n7,n7,n7,n7,n7,n7,n7,n7,n7,n7];var mb=[o7,PX];var nb=[p7,KH,LH,MH,NH,OH,PH,QH,RH,p7,p7,p7,p7,p7,p7,p7];var ob=[q7];var pb=[r7,$g,ug,Im,Jm,VB,YB,FQ,GQ,xS,yS,zS,AS,BS,CS,DS,ES,H1,Fb,oF,vl,yl,Xm,IK,qB,gC,pB,NK,SK,rB,rQ,HK,wQ,xQ,qY,k6,r7,r7,r7,r7,r7,r7,r7,r7,r7,r7,r7,r7,r7,r7,r7,r7,r7,r7,r7,r7,r7,r7,r7,r7,r7,r7,r7,r7];var qb=[s7,bJ,cJ,dJ,eJ,s7,s7,s7];var rb=[t7,Rb,Sb,Vb,Gc,Oc,Qc,Tc,id,kd,nd,Gd,Hd,Kd,ce,de,ge,se,te,we,He,Ie,Le,ef,ff,jf,rf,sf,vf,lk,mk,nk,Fm,Bz,Jz,nA,DB,dC,NC,RD,jG,OJ,JL,VL,uM,OP,RP,fR,dR,GS,HS,JS,LS,NS,PU,CW,BW,GA,gB,rC,VC,YC,MK,PO,OL,uQ,yQ,DW,FW,GW,OW,QW,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7,t7];var sb=[u7,RO,OK,PK,QK,UK,VK,WK,UU,u7,u7,u7,u7,u7,u7,u7];var tb=[v7,Gm,Or,Kv,Cz,Kz,SA,QD,TA,kB,zB,BB,MB,LB,_B,cC,eC,KL,PP,gR,eR,cT,QU,kV,jV,q_,r_,s_,t_,u_,v_,x_,A_,E_,Q$,R$,S$,T$,U$,V$,X$,_$,c0,e$,f$,g$,h$,i$,j$,l$,o$,s$,$z,RC,vG,QO,dZ,hZ,oZ,yZ,HZ,MZ,KZ,NZ,H0,j_,a_,M$,N$,D0,E0,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7,v7];var ub=[w7,Ub,Sc,md,Jd,fe,ve,Ke,hf,uf,BQ,w7,w7,w7,w7,w7];var vb=[x7,xB,UB,ZB,RN,SN,JN,FN,nN,ZW,_W,$W,aX,bX,cX,eX,fX,gX,hX,iX,jX,kX,lX,mX,nX,oX,pX,qX,rX,sX,tX,uX,vX,wX,xX,yX,zX,AX,BX,CX,y_,z_,B_,Y_,Z_,__,$_,a$,b$,c$,d$,Y$,Z$,$$,m$,n$,p$,mF,kg,_g,Bh,di,vi,Gk,Ek,wl,zl,Wo,eq,gr,Cr,Er,Gr,Hr,Jr,Ir,Ur,et,jt,lt,qv,px,CE,BE,AE,tG,hC,KK,GG,WG,RG,SG,TH,Z3,W5,MO,_P,NA,cV,UA,WA,sQ,f2,DT,YW,mY,nY,n6,l_,m_,n_,J5,x7,x7,x7,x7,x7,x7,x7,x7,x7,x7,x7,x7,x7,x7,x7,x7];var wb=[y7,yB,oN,KN,J0,K0,L0,M0,O0,P0,Q0,R0,S0,U0,V0,W0,X0,Y0,T0,w1,x1,n1,g1,Z0,_0,$0,b1,a1,c1,d1,e1,f1,h1,i1,j1,k1,l1,m1,o1,p1,q1,r1,v1,t1,s1,u1,C1,y1,z1,A1,B1,D1,E1,F1,y7,y7,y7,y7,y7,y7,y7,y7,y7,y7];var xb=[z7,Tb,Rc,ld,wd,Id,Sd,ee,ue,Je,We,gf,tf,Kf,Jf,If,Gf,Ff,Ef,hc,Df,Cf,AB,mN,IN,D_,b0,r$,k3,tQ,vQ,O$];return{_i64Subtract:t6,_memset:u6,_bitshift64Lshr:z6,_bitshift64Shl:v6,_fflush:m4,_bitshift64Ashr:y6,_vizLastErrorMessage:Gb,_sbrk:H6,_memcpy:B6,_llvm_bswap_i32:K6,___muldi3:G6,___uremdi3:J6,_testSetjmp:A6,_llvm_cttz_i32:C6,_vizCreateFile:Hb,___udivmoddi4:D6,_realloc:n6,_i64Add:w6,_llvm_bswap_i16:L6,_emscripten_get_global_libc:G1,_htons:L4,___udivdi3:E6,___errno_location:L1,___muldsi3:F6,_vizRenderFromString:Ib,_saveSetjmp:x6,_free:l6,_dtextract:Pz,_memmove:I6,_malloc:k6,_memalign:q6,runPostSets:s6,stackAlloc:yb,stackSave:zb,stackRestore:Ab,establishStackSpace:Bb,setTempRet0:Db,getTempRet0:Eb,setThrew:Cb,stackAlloc:yb,stackSave:zb,stackRestore:Ab,establishStackSpace:Bb,setThrew:Cb,setTempRet0:Db,getTempRet0:Eb,dynCall_vi:M6,dynCall_iiii:N6,dynCall_viiiii:O6,dynCall_d:P6,dynCall_di:Q6,dynCall_i:R6,dynCall_iiiiiiiiiii:S6,dynCall_iiidd:T6,dynCall_vii:U6,dynCall_iiiiiii:V6,dynCall_viiiddi:W6,dynCall_viiiiiiiii:X6,dynCall_ii:Y6,dynCall_dddd:Z6,dynCall_viii:_6,dynCall_v:$6,dynCall_iiiii:a7,dynCall_viiiiii:b7,dynCall_iii:c7,dynCall_iiiiii:d7,dynCall_viiii:e7}})


// EMSCRIPTEN_END_ASM
(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var stackSave=Module["stackSave"]=asm["stackSave"];var _vizCreateFile=Module["_vizCreateFile"]=asm["_vizCreateFile"];var _vizLastErrorMessage=Module["_vizLastErrorMessage"]=asm["_vizLastErrorMessage"];var getTempRet0=Module["getTempRet0"]=asm["getTempRet0"];var _vizRenderFromString=Module["_vizRenderFromString"]=asm["_vizRenderFromString"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _fflush=Module["_fflush"]=asm["_fflush"];var _bitshift64Ashr=Module["_bitshift64Ashr"]=asm["_bitshift64Ashr"];var _memset=Module["_memset"]=asm["_memset"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var ___uremdi3=Module["___uremdi3"]=asm["___uremdi3"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var _llvm_cttz_i32=Module["_llvm_cttz_i32"]=asm["_llvm_cttz_i32"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var ___udivmoddi4=Module["___udivmoddi4"]=asm["___udivmoddi4"];var setTempRet0=Module["setTempRet0"]=asm["setTempRet0"];var _realloc=Module["_realloc"]=asm["_realloc"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _llvm_bswap_i16=Module["_llvm_bswap_i16"]=asm["_llvm_bswap_i16"];var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=asm["_emscripten_get_global_libc"];var _htons=Module["_htons"]=asm["_htons"];var ___udivdi3=Module["___udivdi3"]=asm["___udivdi3"];var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var ___muldsi3=Module["___muldsi3"]=asm["___muldsi3"];var _testSetjmp=Module["_testSetjmp"]=asm["_testSetjmp"];var _saveSetjmp=Module["_saveSetjmp"]=asm["_saveSetjmp"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var setThrew=Module["setThrew"]=asm["setThrew"];var _dtextract=Module["_dtextract"]=asm["_dtextract"];var _memmove=Module["_memmove"]=asm["_memmove"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var _malloc=Module["_malloc"]=asm["_malloc"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var _memalign=Module["_memalign"]=asm["_memalign"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_d=Module["dynCall_d"]=asm["dynCall_d"];var dynCall_di=Module["dynCall_di"]=asm["dynCall_di"];var dynCall_i=Module["dynCall_i"]=asm["dynCall_i"];var dynCall_iiiiiiiiiii=Module["dynCall_iiiiiiiiiii"]=asm["dynCall_iiiiiiiiiii"];var dynCall_iiidd=Module["dynCall_iiidd"]=asm["dynCall_iiidd"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=asm["dynCall_iiiiiii"];var dynCall_viiiddi=Module["dynCall_viiiddi"]=asm["dynCall_viiiddi"];var dynCall_viiiiiiiii=Module["dynCall_viiiiiiiii"]=asm["dynCall_viiiiiiiii"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_dddd=Module["dynCall_dddd"]=asm["dynCall_dddd"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=Module["stackAlloc"];Runtime.stackSave=Module["stackSave"];Runtime.stackRestore=Module["stackRestore"];Runtime.establishStackSpace=Module["establishStackSpace"];Runtime.setTempRet0=Module["setTempRet0"];Runtime.getTempRet0=Module["getTempRet0"];Module["asm"]=asm;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i<argc-1;i=i+1){argv.push(allocate(intArrayFromString(args[i]),"i8",ALLOC_NORMAL));pad()}argv.push(0);argv=allocate(argv,"i32",ALLOC_NORMAL);try{var ret=Module["_main"](argc,argv,0);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="SimulateInfiniteLoop"){Module["noExitRuntime"]=true;return}else{var toLog=e;if(e&&typeof e==="object"&&e.stack){toLog=[e,e.stack]}Module.printErr("exception thrown: "+toLog);Module["quit"](1,e)}}finally{calledMain=true}};function run(args){args=args||Module["arguments"];if(preloadStartTime===null)preloadStartTime=Date.now();if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}Module["quit"](status,new ExitStatus(status))}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run()





  return Module;
};
function Viz(src) {
  var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
  var format = options.format === undefined ? "svg" : options.format;
  var engine = options.engine === undefined ? "dot" : options.engine;
  var scale = options.scale;
  var totalMemory = options.totalMemory;
  var files = options.files === undefined ? [] : options.files;
  var images = options.images === undefined ? [] : options.images;
  var i;
  
  for (i = 0; i < images.length; i++) {
    files.push({ path: images[i].path, data: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<svg width=\"" + images[i].width + "\" height=\"" + images[i].height + "\"></svg>" });
  }

  if (format == "png-image-element") {
    return Viz.svgXmlToPngImageElement(render(src, "svg", engine, totalMemory, files), scale);
  } else {
    return render(src, format, engine, totalMemory, files);
  }
}

function render(src, format, engine, totalMemory, files) {
  var graphviz = Module({ TOTAL_MEMORY: totalMemory });
  var i;
  
  for (i = 0; i < files.length; i++) {
    graphviz["ccall"]("vizCreateFile", "number", ["string", "string"], [files[i].path, files[i].data]);
  }
  
  var resultPointer = graphviz["ccall"]("vizRenderFromString", "number", ["string", "string", "string"], [src, format, engine]);
  var resultString = graphviz["Pointer_stringify"](resultPointer);

  var errorMessagePointer = graphviz["ccall"]("vizLastErrorMessage", "number", [], []);
  var errorMessageString = graphviz["Pointer_stringify"](errorMessagePointer);
  
  if (errorMessageString != "") {
    throw new Error(errorMessageString);
  }
  
  return resultString;
}

// https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding
function b64EncodeUnicode(str) {
  return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) {
    return String.fromCharCode('0x' + p1);
  }));
}

Viz.svgXmlToPngImageElement = function(svgXml, scale, callback) {
  if (scale === undefined) {
    if ("devicePixelRatio" in window && window.devicePixelRatio > 1) {
      scale = window.devicePixelRatio;
    } else {
      scale = 1;
    }
  }
  
  var pngImage = new Image();

  try {
    if (typeof fabric === "object" && fabric.loadSVGFromString) {
      fabric.loadSVGFromString(svgXml, function(objects, options) {
        // If there's something wrong with the SVG, Fabric may return an empty array of objects. Graphviz appears to give us at least one <g> element back even given an empty graph, so we will assume an error in this case.
        if (objects.length == 0) {
          if (callback !== undefined) {
            callback(new Error("Error loading SVG with Fabric"));
            return;
          } else {
            throw new Error("Error loading SVG with Fabric");
          }
        }
      
        var element = document.createElement("canvas");
        element.width = options.width;
        element.height = options.height;
    
        var canvas = new fabric.Canvas(element, { enableRetinaScaling: false });
        var obj = fabric.util.groupSVGElements(objects, options);
        canvas.add(obj).renderAll();
    
        pngImage.src = canvas.toDataURL({ multiplier: scale });
        pngImage.width = options.width;
        pngImage.height = options.height;
      
        if (callback !== undefined) {
          callback(null, pngImage);
        }
      });
    } else {
      var svgImage = new Image();

      svgImage.onload = function() {
        var canvas = document.createElement("canvas");
        canvas.width = svgImage.width * scale;
        canvas.height = svgImage.height * scale;

        var context = canvas.getContext("2d");
        context.drawImage(svgImage, 0, 0, canvas.width, canvas.height);

        pngImage.src = canvas.toDataURL("image/png");
        pngImage.width = svgImage.width;
        pngImage.height = svgImage.height;
      
        if (callback !== undefined) {
          callback(null, pngImage);
        }
      }
    
      svgImage.onerror = function(e) {
        var error;
      
        if ('error' in e) {
          error = e.error;
        } else {
          error = new Error('Error loading SVG');
        }
      
        if (callback !== undefined) {
          callback(error);
        } else {
          throw error;
        }
      }
    
      svgImage.src = "data:image/svg+xml;base64," + b64EncodeUnicode(svgXml);
    }
  } catch (e) {
    if (callback !== undefined) {
      callback(e);
    } else {
      throw e;
    }
  }
  
  if (callback === undefined) {
    return pngImage;
  }
}

Viz.svgXmlToPngBase64 = function(svgXml, scale, callback) {
  Viz.svgXmlToPngImageElement(svgXml, scale, function(err, image) {
    if (err) {
      callback(err);
    } else {
      callback(null, image.src.slice("data:image/png;base64,".length));
    }
  });
}
if ( true && module.exports) {
  module.exports = Viz;
} else {
  global.Viz = Viz;
}
  
})(this);

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../process/browser.js */ "./node_modules/process/browser.js"), __webpack_require__(/*! ./../buffer/index.js */ "./node_modules/buffer/index.js").Buffer))

/***/ }),

/***/ "./node_modules/webpack/buildin/amd-define.js":
/*!***************************************!*\
  !*** (webpack)/buildin/amd-define.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = function() {
	throw new Error("define cannot be used indirect");
};


/***/ }),

/***/ "./node_modules/webpack/buildin/global.js":
/*!***********************************!*\
  !*** (webpack)/buildin/global.js ***!
  \***********************************/
/*! no static exports found */
/***/ (function(module, exports) {

var g;

// This works in non-strict mode
g = (function() {
	return this;
})();

try {
	// This works if eval is allowed (see CSP)
	g = g || new Function("return this")();
} catch (e) {
	// This works if the window reference is available
	if (typeof window === "object") g = window;
}

// g can still be undefined, but nothing to do about it...
// We return undefined, instead of nothing here, so it's
// easier to handle this case. if(!global) { ...}

module.exports = g;


/***/ }),

/***/ "./node_modules/webpack/buildin/harmony-module.js":
/*!*******************************************!*\
  !*** (webpack)/buildin/harmony-module.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = function(originalModule) {
	if (!originalModule.webpackPolyfill) {
		var module = Object.create(originalModule);
		// module.parent = undefined by default
		if (!module.children) module.children = [];
		Object.defineProperty(module, "loaded", {
			enumerable: true,
			get: function() {
				return module.l;
			}
		});
		Object.defineProperty(module, "id", {
			enumerable: true,
			get: function() {
				return module.i;
			}
		});
		Object.defineProperty(module, "exports", {
			enumerable: true
		});
		module.webpackPolyfill = 1;
	}
	return module;
};


/***/ }),

/***/ "./node_modules/whatwg-fetch/fetch.js":
/*!********************************************!*\
  !*** ./node_modules/whatwg-fetch/fetch.js ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

(function(self) {
  'use strict';

  if (self.fetch) {
    return
  }

  var support = {
    searchParams: 'URLSearchParams' in self,
    iterable: 'Symbol' in self && 'iterator' in Symbol,
    blob: 'FileReader' in self && 'Blob' in self && (function() {
      try {
        new Blob()
        return true
      } catch(e) {
        return false
      }
    })(),
    formData: 'FormData' in self,
    arrayBuffer: 'ArrayBuffer' in self
  }

  if (support.arrayBuffer) {
    var viewClasses = [
      '[object Int8Array]',
      '[object Uint8Array]',
      '[object Uint8ClampedArray]',
      '[object Int16Array]',
      '[object Uint16Array]',
      '[object Int32Array]',
      '[object Uint32Array]',
      '[object Float32Array]',
      '[object Float64Array]'
    ]

    var isDataView = function(obj) {
      return obj && DataView.prototype.isPrototypeOf(obj)
    }

    var isArrayBufferView = ArrayBuffer.isView || function(obj) {
      return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1
    }
  }

  function normalizeName(name) {
    if (typeof name !== 'string') {
      name = String(name)
    }
    if (/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(name)) {
      throw new TypeError('Invalid character in header field name')
    }
    return name.toLowerCase()
  }

  function normalizeValue(value) {
    if (typeof value !== 'string') {
      value = String(value)
    }
    return value
  }

  // Build a destructive iterator for the value list
  function iteratorFor(items) {
    var iterator = {
      next: function() {
        var value = items.shift()
        return {done: value === undefined, value: value}
      }
    }

    if (support.iterable) {
      iterator[Symbol.iterator] = function() {
        return iterator
      }
    }

    return iterator
  }

  function Headers(headers) {
    this.map = {}

    if (headers instanceof Headers) {
      headers.forEach(function(value, name) {
        this.append(name, value)
      }, this)
    } else if (Array.isArray(headers)) {
      headers.forEach(function(header) {
        this.append(header[0], header[1])
      }, this)
    } else if (headers) {
      Object.getOwnPropertyNames(headers).forEach(function(name) {
        this.append(name, headers[name])
      }, this)
    }
  }

  Headers.prototype.append = function(name, value) {
    name = normalizeName(name)
    value = normalizeValue(value)
    var oldValue = this.map[name]
    this.map[name] = oldValue ? oldValue+','+value : value
  }

  Headers.prototype['delete'] = function(name) {
    delete this.map[normalizeName(name)]
  }

  Headers.prototype.get = function(name) {
    name = normalizeName(name)
    return this.has(name) ? this.map[name] : null
  }

  Headers.prototype.has = function(name) {
    return this.map.hasOwnProperty(normalizeName(name))
  }

  Headers.prototype.set = function(name, value) {
    this.map[normalizeName(name)] = normalizeValue(value)
  }

  Headers.prototype.forEach = function(callback, thisArg) {
    for (var name in this.map) {
      if (this.map.hasOwnProperty(name)) {
        callback.call(thisArg, this.map[name], name, this)
      }
    }
  }

  Headers.prototype.keys = function() {
    var items = []
    this.forEach(function(value, name) { items.push(name) })
    return iteratorFor(items)
  }

  Headers.prototype.values = function() {
    var items = []
    this.forEach(function(value) { items.push(value) })
    return iteratorFor(items)
  }

  Headers.prototype.entries = function() {
    var items = []
    this.forEach(function(value, name) { items.push([name, value]) })
    return iteratorFor(items)
  }

  if (support.iterable) {
    Headers.prototype[Symbol.iterator] = Headers.prototype.entries
  }

  function consumed(body) {
    if (body.bodyUsed) {
      return Promise.reject(new TypeError('Already read'))
    }
    body.bodyUsed = true
  }

  function fileReaderReady(reader) {
    return new Promise(function(resolve, reject) {
      reader.onload = function() {
        resolve(reader.result)
      }
      reader.onerror = function() {
        reject(reader.error)
      }
    })
  }

  function readBlobAsArrayBuffer(blob) {
    var reader = new FileReader()
    var promise = fileReaderReady(reader)
    reader.readAsArrayBuffer(blob)
    return promise
  }

  function readBlobAsText(blob) {
    var reader = new FileReader()
    var promise = fileReaderReady(reader)
    reader.readAsText(blob)
    return promise
  }

  function readArrayBufferAsText(buf) {
    var view = new Uint8Array(buf)
    var chars = new Array(view.length)

    for (var i = 0; i < view.length; i++) {
      chars[i] = String.fromCharCode(view[i])
    }
    return chars.join('')
  }

  function bufferClone(buf) {
    if (buf.slice) {
      return buf.slice(0)
    } else {
      var view = new Uint8Array(buf.byteLength)
      view.set(new Uint8Array(buf))
      return view.buffer
    }
  }

  function Body() {
    this.bodyUsed = false

    this._initBody = function(body) {
      this._bodyInit = body
      if (!body) {
        this._bodyText = ''
      } else if (typeof body === 'string') {
        this._bodyText = body
      } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {
        this._bodyBlob = body
      } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {
        this._bodyFormData = body
      } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {
        this._bodyText = body.toString()
      } else if (support.arrayBuffer && support.blob && isDataView(body)) {
        this._bodyArrayBuffer = bufferClone(body.buffer)
        // IE 10-11 can't handle a DataView body.
        this._bodyInit = new Blob([this._bodyArrayBuffer])
      } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {
        this._bodyArrayBuffer = bufferClone(body)
      } else {
        throw new Error('unsupported BodyInit type')
      }

      if (!this.headers.get('content-type')) {
        if (typeof body === 'string') {
          this.headers.set('content-type', 'text/plain;charset=UTF-8')
        } else if (this._bodyBlob && this._bodyBlob.type) {
          this.headers.set('content-type', this._bodyBlob.type)
        } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {
          this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')
        }
      }
    }

    if (support.blob) {
      this.blob = function() {
        var rejected = consumed(this)
        if (rejected) {
          return rejected
        }

        if (this._bodyBlob) {
          return Promise.resolve(this._bodyBlob)
        } else if (this._bodyArrayBuffer) {
          return Promise.resolve(new Blob([this._bodyArrayBuffer]))
        } else if (this._bodyFormData) {
          throw new Error('could not read FormData body as blob')
        } else {
          return Promise.resolve(new Blob([this._bodyText]))
        }
      }

      this.arrayBuffer = function() {
        if (this._bodyArrayBuffer) {
          return consumed(this) || Promise.resolve(this._bodyArrayBuffer)
        } else {
          return this.blob().then(readBlobAsArrayBuffer)
        }
      }
    }

    this.text = function() {
      var rejected = consumed(this)
      if (rejected) {
        return rejected
      }

      if (this._bodyBlob) {
        return readBlobAsText(this._bodyBlob)
      } else if (this._bodyArrayBuffer) {
        return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))
      } else if (this._bodyFormData) {
        throw new Error('could not read FormData body as text')
      } else {
        return Promise.resolve(this._bodyText)
      }
    }

    if (support.formData) {
      this.formData = function() {
        return this.text().then(decode)
      }
    }

    this.json = function() {
      return this.text().then(JSON.parse)
    }

    return this
  }

  // HTTP methods whose capitalization should be normalized
  var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']

  function normalizeMethod(method) {
    var upcased = method.toUpperCase()
    return (methods.indexOf(upcased) > -1) ? upcased : method
  }

  function Request(input, options) {
    options = options || {}
    var body = options.body

    if (input instanceof Request) {
      if (input.bodyUsed) {
        throw new TypeError('Already read')
      }
      this.url = input.url
      this.credentials = input.credentials
      if (!options.headers) {
        this.headers = new Headers(input.headers)
      }
      this.method = input.method
      this.mode = input.mode
      if (!body && input._bodyInit != null) {
        body = input._bodyInit
        input.bodyUsed = true
      }
    } else {
      this.url = String(input)
    }

    this.credentials = options.credentials || this.credentials || 'omit'
    if (options.headers || !this.headers) {
      this.headers = new Headers(options.headers)
    }
    this.method = normalizeMethod(options.method || this.method || 'GET')
    this.mode = options.mode || this.mode || null
    this.referrer = null

    if ((this.method === 'GET' || this.method === 'HEAD') && body) {
      throw new TypeError('Body not allowed for GET or HEAD requests')
    }
    this._initBody(body)
  }

  Request.prototype.clone = function() {
    return new Request(this, { body: this._bodyInit })
  }

  function decode(body) {
    var form = new FormData()
    body.trim().split('&').forEach(function(bytes) {
      if (bytes) {
        var split = bytes.split('=')
        var name = split.shift().replace(/\+/g, ' ')
        var value = split.join('=').replace(/\+/g, ' ')
        form.append(decodeURIComponent(name), decodeURIComponent(value))
      }
    })
    return form
  }

  function parseHeaders(rawHeaders) {
    var headers = new Headers()
    // Replace instances of \r\n and \n followed by at least one space or horizontal tab with a space
    // https://tools.ietf.org/html/rfc7230#section-3.2
    var preProcessedHeaders = rawHeaders.replace(/\r?\n[\t ]+/g, ' ')
    preProcessedHeaders.split(/\r?\n/).forEach(function(line) {
      var parts = line.split(':')
      var key = parts.shift().trim()
      if (key) {
        var value = parts.join(':').trim()
        headers.append(key, value)
      }
    })
    return headers
  }

  Body.call(Request.prototype)

  function Response(bodyInit, options) {
    if (!options) {
      options = {}
    }

    this.type = 'default'
    this.status = options.status === undefined ? 200 : options.status
    this.ok = this.status >= 200 && this.status < 300
    this.statusText = 'statusText' in options ? options.statusText : 'OK'
    this.headers = new Headers(options.headers)
    this.url = options.url || ''
    this._initBody(bodyInit)
  }

  Body.call(Response.prototype)

  Response.prototype.clone = function() {
    return new Response(this._bodyInit, {
      status: this.status,
      statusText: this.statusText,
      headers: new Headers(this.headers),
      url: this.url
    })
  }

  Response.error = function() {
    var response = new Response(null, {status: 0, statusText: ''})
    response.type = 'error'
    return response
  }

  var redirectStatuses = [301, 302, 303, 307, 308]

  Response.redirect = function(url, status) {
    if (redirectStatuses.indexOf(status) === -1) {
      throw new RangeError('Invalid status code')
    }

    return new Response(null, {status: status, headers: {location: url}})
  }

  self.Headers = Headers
  self.Request = Request
  self.Response = Response

  self.fetch = function(input, init) {
    return new Promise(function(resolve, reject) {
      var request = new Request(input, init)
      var xhr = new XMLHttpRequest()

      xhr.onload = function() {
        var options = {
          status: xhr.status,
          statusText: xhr.statusText,
          headers: parseHeaders(xhr.getAllResponseHeaders() || '')
        }
        options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')
        var body = 'response' in xhr ? xhr.response : xhr.responseText
        resolve(new Response(body, options))
      }

      xhr.onerror = function() {
        reject(new TypeError('Network request failed'))
      }

      xhr.ontimeout = function() {
        reject(new TypeError('Network request failed'))
      }

      xhr.open(request.method, request.url, true)

      if (request.credentials === 'include') {
        xhr.withCredentials = true
      } else if (request.credentials === 'omit') {
        xhr.withCredentials = false
      }

      if ('responseType' in xhr && support.blob) {
        xhr.responseType = 'blob'
      }

      request.headers.forEach(function(value, name) {
        xhr.setRequestHeader(name, value)
      })

      xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)
    })
  }
  self.fetch.polyfill = true
})(typeof self !== 'undefined' ? self : this);


/***/ }),

/***/ "./src/APIController.react.js":
/*!************************************!*\
  !*** ./src/APIController.react.js ***!
  \************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/lib/index.js");
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ramda */ "./node_modules/ramda/es/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "prop-types");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _TreeContainer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./TreeContainer */ "./src/TreeContainer.js");
/* harmony import */ var _components_error_GlobalErrorContainer_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/error/GlobalErrorContainer.react */ "./src/components/error/GlobalErrorContainer.react.js");
/* harmony import */ var _actions_index__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./actions/index */ "./src/actions/index.js");
/* harmony import */ var _persistence__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./persistence */ "./src/persistence.js");
/* harmony import */ var _actions_api__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./actions/api */ "./src/actions/api.js");
/* harmony import */ var _reducers_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./reducers/constants */ "./src/reducers/constants.js");
/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./constants/constants */ "./src/constants/constants.js");
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }












/**
 * Fire off API calls for initialization
 */

var UnconnectedContainer =
/*#__PURE__*/
function (_Component) {
  _inherits(UnconnectedContainer, _Component);

  function UnconnectedContainer(props) {
    var _this;

    _classCallCheck(this, UnconnectedContainer);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(UnconnectedContainer).call(this, props));
    _this.initialization = _this.initialization.bind(_assertThisInitialized(_this));
    _this.state = {
      errorLoading: false
    };
    return _this;
  }

  _createClass(UnconnectedContainer, [{
    key: "componentDidMount",
    value: function componentDidMount() {
      this.initialization(this.props);
    }
  }, {
    key: "componentWillReceiveProps",
    value: function componentWillReceiveProps(props) {
      this.initialization(props);
    }
  }, {
    key: "initialization",
    value: function initialization(props) {
      var appLifecycle = props.appLifecycle,
          dependenciesRequest = props.dependenciesRequest,
          dispatch = props.dispatch,
          graphs = props.graphs,
          layout = props.layout,
          layoutRequest = props.layoutRequest,
          paths = props.paths;

      if (Object(ramda__WEBPACK_IMPORTED_MODULE_1__["isEmpty"])(layoutRequest)) {
        dispatch(Object(_actions_api__WEBPACK_IMPORTED_MODULE_8__["default"])('_dash-layout', 'GET', 'layoutRequest'));
      } else if (layoutRequest.status === _constants_constants__WEBPACK_IMPORTED_MODULE_10__["STATUS"].OK) {
        if (Object(ramda__WEBPACK_IMPORTED_MODULE_1__["isEmpty"])(layout)) {
          var finalLayout = Object(_persistence__WEBPACK_IMPORTED_MODULE_7__["applyPersistence"])(layoutRequest.content, dispatch);
          dispatch(Object(_actions_index__WEBPACK_IMPORTED_MODULE_6__["setLayout"])(finalLayout));
        } else if (Object(ramda__WEBPACK_IMPORTED_MODULE_1__["isNil"])(paths)) {
          dispatch(Object(_actions_index__WEBPACK_IMPORTED_MODULE_6__["computePaths"])({
            subTree: layout,
            startingPath: []
          }));
        }
      }

      if (Object(ramda__WEBPACK_IMPORTED_MODULE_1__["isEmpty"])(dependenciesRequest)) {
        dispatch(Object(_actions_api__WEBPACK_IMPORTED_MODULE_8__["default"])('_dash-dependencies', 'GET', 'dependenciesRequest'));
      } else if (dependenciesRequest.status === _constants_constants__WEBPACK_IMPORTED_MODULE_10__["STATUS"].OK && Object(ramda__WEBPACK_IMPORTED_MODULE_1__["isEmpty"])(graphs)) {
        dispatch(Object(_actions_index__WEBPACK_IMPORTED_MODULE_6__["computeGraphs"])(dependenciesRequest.content));
      }

      if ( // dependenciesRequest and its computed stores
      dependenciesRequest.status === _constants_constants__WEBPACK_IMPORTED_MODULE_10__["STATUS"].OK && !Object(ramda__WEBPACK_IMPORTED_MODULE_1__["isEmpty"])(graphs) && // LayoutRequest and its computed stores
      layoutRequest.status === _constants_constants__WEBPACK_IMPORTED_MODULE_10__["STATUS"].OK && !Object(ramda__WEBPACK_IMPORTED_MODULE_1__["isEmpty"])(layout) && !Object(ramda__WEBPACK_IMPORTED_MODULE_1__["isNil"])(paths) && // Hasn't already hydrated
      appLifecycle === Object(_reducers_constants__WEBPACK_IMPORTED_MODULE_9__["getAppState"])('STARTED')) {
        var errorLoading = false;

        try {
          dispatch(Object(_actions_index__WEBPACK_IMPORTED_MODULE_6__["hydrateInitialOutputs"])());
        } catch (err) {
          errorLoading = true;
        } finally {
          this.setState(function (state) {
            return state.errorLoading !== errorLoading ? {
              errorLoading: errorLoading
            } : null;
          });
        }
      }
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props = this.props,
          appLifecycle = _this$props.appLifecycle,
          dependenciesRequest = _this$props.dependenciesRequest,
          layoutRequest = _this$props.layoutRequest,
          layout = _this$props.layout,
          config = _this$props.config;
      var errorLoading = this.state.errorLoading;

      if (layoutRequest.status && !Object(ramda__WEBPACK_IMPORTED_MODULE_1__["includes"])(layoutRequest.status, [_constants_constants__WEBPACK_IMPORTED_MODULE_10__["STATUS"].OK, 'loading'])) {
        return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement("div", {
          className: "_dash-error"
        }, "Error loading layout");
      } else if (errorLoading || dependenciesRequest.status && !Object(ramda__WEBPACK_IMPORTED_MODULE_1__["includes"])(dependenciesRequest.status, [_constants_constants__WEBPACK_IMPORTED_MODULE_10__["STATUS"].OK, 'loading'])) {
        return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement("div", {
          className: "_dash-error"
        }, "Error loading dependencies");
      } else if (appLifecycle === Object(_reducers_constants__WEBPACK_IMPORTED_MODULE_9__["getAppState"])('HYDRATED') && config.ui === true) {
        return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_components_error_GlobalErrorContainer_react__WEBPACK_IMPORTED_MODULE_5__["default"], null, react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_TreeContainer__WEBPACK_IMPORTED_MODULE_4__["default"], {
          _dashprivate_layout: layout,
          _dashprivate_path: []
        }));
      } else if (appLifecycle === Object(_reducers_constants__WEBPACK_IMPORTED_MODULE_9__["getAppState"])('HYDRATED')) {
        return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_TreeContainer__WEBPACK_IMPORTED_MODULE_4__["default"], {
          _dashprivate_layout: layout,
          _dashprivate_path: []
        });
      }

      return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement("div", {
        className: "_dash-loading"
      }, "Loading...");
    }
  }]);

  return UnconnectedContainer;
}(react__WEBPACK_IMPORTED_MODULE_2__["Component"]);

UnconnectedContainer.propTypes = {
  appLifecycle: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf([Object(_reducers_constants__WEBPACK_IMPORTED_MODULE_9__["getAppState"])('STARTED'), Object(_reducers_constants__WEBPACK_IMPORTED_MODULE_9__["getAppState"])('HYDRATED')]),
  dispatch: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,
  dependenciesRequest: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,
  layoutRequest: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,
  layout: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,
  paths: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,
  history: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.any,
  error: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,
  config: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object
};
var Container = Object(react_redux__WEBPACK_IMPORTED_MODULE_0__["connect"])( // map state to props
function (state) {
  return {
    appLifecycle: state.appLifecycle,
    dependenciesRequest: state.dependenciesRequest,
    layoutRequest: state.layoutRequest,
    layout: state.layout,
    graphs: state.graphs,
    paths: state.paths,
    history: state.history,
    error: state.error,
    config: state.config
  };
}, function (dispatch) {
  return {
    dispatch: dispatch
  };
})(UnconnectedContainer);
/* harmony default export */ __webpack_exports__["default"] = (Container);

/***/ }),

/***/ "./src/AppContainer.react.js":
/*!***********************************!*\
  !*** ./src/AppContainer.react.js ***!
  \***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/lib/index.js");
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "prop-types");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _APIController_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./APIController.react */ "./src/APIController.react.js");
/* harmony import */ var _components_core_DocumentTitle_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/core/DocumentTitle.react */ "./src/components/core/DocumentTitle.react.js");
/* harmony import */ var _components_core_Loading_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/core/Loading.react */ "./src/components/core/Loading.react.js");
/* harmony import */ var _components_core_Toolbar_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/core/Toolbar.react */ "./src/components/core/Toolbar.react.js");
/* harmony import */ var _components_core_Reloader_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./components/core/Reloader.react */ "./src/components/core/Reloader.react.js");
/* harmony import */ var _actions_index__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./actions/index */ "./src/actions/index.js");
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ramda */ "./node_modules/ramda/es/index.js");
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

/* global document:true */











var UnconnectedAppContainer =
/*#__PURE__*/
function (_React$Component) {
  _inherits(UnconnectedAppContainer, _React$Component);

  function UnconnectedAppContainer(props) {
    var _this;

    _classCallCheck(this, UnconnectedAppContainer);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(UnconnectedAppContainer).call(this, props));

    if (props.hooks.request_pre !== null || props.hooks.request_post !== null) {
      props.dispatch(Object(_actions_index__WEBPACK_IMPORTED_MODULE_8__["setHooks"])(props.hooks));
    }

    return _this;
  }

  _createClass(UnconnectedAppContainer, [{
    key: "componentWillMount",
    value: function componentWillMount() {
      var dispatch = this.props.dispatch;
      var config = JSON.parse(document.getElementById('_dash-config').textContent); // preset common request params in the config

      config.fetch = {
        credentials: 'same-origin',
        headers: {
          Accept: 'application/json',
          'Content-Type': 'application/json'
        }
      };
      dispatch(Object(_actions_index__WEBPACK_IMPORTED_MODULE_8__["setConfig"])(config));
    }
  }, {
    key: "render",
    value: function render() {
      var config = this.props.config;

      if (Object(ramda__WEBPACK_IMPORTED_MODULE_9__["type"])(config) === 'Null') {
        return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
          className: "_dash-loading"
        }, "Loading...");
      }

      var show_undo_redo = config.show_undo_redo;
      return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_1___default.a.Fragment, null, show_undo_redo ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_components_core_Toolbar_react__WEBPACK_IMPORTED_MODULE_6__["default"], null) : null, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_APIController_react__WEBPACK_IMPORTED_MODULE_3__["default"], null), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_components_core_DocumentTitle_react__WEBPACK_IMPORTED_MODULE_4__["default"], null), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_components_core_Loading_react__WEBPACK_IMPORTED_MODULE_5__["default"], null), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_components_core_Reloader_react__WEBPACK_IMPORTED_MODULE_7__["default"], null));
    }
  }]);

  return UnconnectedAppContainer;
}(react__WEBPACK_IMPORTED_MODULE_1___default.a.Component);

UnconnectedAppContainer.propTypes = {
  hooks: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object,
  dispatch: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,
  config: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object
};
var AppContainer = Object(react_redux__WEBPACK_IMPORTED_MODULE_0__["connect"])(function (state) {
  return {
    history: state.history,
    config: state.config
  };
}, function (dispatch) {
  return {
    dispatch: dispatch
  };
})(UnconnectedAppContainer);
/* harmony default export */ __webpack_exports__["default"] = (AppContainer);

/***/ }),

/***/ "./src/AppProvider.react.js":
/*!**********************************!*\
  !*** ./src/AppProvider.react.js ***!
  \**********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/lib/index.js");
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./store */ "./src/store.js");
/* harmony import */ var _AppContainer_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./AppContainer.react */ "./src/AppContainer.react.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "prop-types");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);





var store = Object(_store__WEBPACK_IMPORTED_MODULE_2__["default"])();

var AppProvider = function AppProvider(_ref) {
  var hooks = _ref.hooks;
  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_redux__WEBPACK_IMPORTED_MODULE_1__["Provider"], {
    store: store
  }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_AppContainer_react__WEBPACK_IMPORTED_MODULE_3__["default"], {
    hooks: hooks
  }));
};

AppProvider.propTypes = {
  hooks: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.shape({
    request_pre: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,
    request_post: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func
  })
};
AppProvider.defaultProps = {
  hooks: {
    request_pre: null,
    request_post: null
  }
};
/* harmony default export */ __webpack_exports__["default"] = (AppProvider);

/***/ }),

/***/ "./src/DashRenderer.js":
/*!*****************************!*\
  !*** ./src/DashRenderer.js ***!
  \*****************************/
/*! exports provided: DashRenderer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DashRenderer", function() { return DashRenderer; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ "react-dom");
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _AppProvider_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppProvider.react */ "./src/AppProvider.react.js");
/* eslint-env browser */


function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }





var DashRenderer = function DashRenderer(hooks) {
  _classCallCheck(this, DashRenderer);

  // render Dash Renderer upon initialising!
  react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.render(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_AppProvider_react__WEBPACK_IMPORTED_MODULE_2__["default"], {
    hooks: hooks
  }), document.getElementById('react-entry-point'));
};



/***/ }),

/***/ "./src/TreeContainer.js":
/*!******************************!*\
  !*** ./src/TreeContainer.js ***!
  \******************************/
/*! exports provided: AugmentedTreeContainer, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AugmentedTreeContainer", function() { return AugmentedTreeContainer; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "prop-types");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _registry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./registry */ "./src/registry.js");
/* harmony import */ var _exceptions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./exceptions */ "./src/exceptions.js");
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/lib/index.js");
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ramda */ "./node_modules/ramda/es/index.js");
/* harmony import */ var _actions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./actions */ "./src/actions/index.js");
/* harmony import */ var _isSimpleComponent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./isSimpleComponent */ "./src/isSimpleComponent.js");
/* harmony import */ var _persistence__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./persistence */ "./src/persistence.js");
/* harmony import */ var _components_error_ComponentErrorBoundary_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./components/error/ComponentErrorBoundary.react */ "./src/components/error/ComponentErrorBoundary.react.js");
/* harmony import */ var check_prop_types__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! check-prop-types */ "./node_modules/check-prop-types/index.js");
/* harmony import */ var check_prop_types__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(check_prop_types__WEBPACK_IMPORTED_MODULE_10__);
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }

function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }

function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }

function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }

function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }













function validateComponent(componentDefinition) {
  if (Object(ramda__WEBPACK_IMPORTED_MODULE_5__["type"])(componentDefinition) === 'Array') {
    throw new Error('The children property of a component is a list of lists, instead ' + 'of just a list. ' + 'Check the component that has the following contents, ' + 'and remove of the levels of nesting: \n' + JSON.stringify(componentDefinition, null, 2));
  }

  if (Object(ramda__WEBPACK_IMPORTED_MODULE_5__["type"])(componentDefinition) === 'Object' && !(Object(ramda__WEBPACK_IMPORTED_MODULE_5__["has"])('namespace', componentDefinition) && Object(ramda__WEBPACK_IMPORTED_MODULE_5__["has"])('type', componentDefinition) && Object(ramda__WEBPACK_IMPORTED_MODULE_5__["has"])('props', componentDefinition))) {
    throw new Error('An object was provided as `children` instead of a component, ' + 'string, or number (or list of those). ' + 'Check the children property that looks something like:\n' + JSON.stringify(componentDefinition, null, 2));
  }
}

var createContainer = function createContainer(component, path) {
  return Object(_isSimpleComponent__WEBPACK_IMPORTED_MODULE_7__["default"])(component) ? component : react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(AugmentedTreeContainer, {
    key: component && component.props && component.props.id,
    _dashprivate_layout: component,
    _dashprivate_path: path
  });
};

function CheckedComponent(p) {
  var element = p.element,
      extraProps = p.extraProps,
      props = p.props,
      children = p.children,
      type = p.type;
  var errorMessage = check_prop_types__WEBPACK_IMPORTED_MODULE_10___default()(element.propTypes, props, 'component prop', element);

  if (errorMessage) {
    Object(_exceptions__WEBPACK_IMPORTED_MODULE_3__["propTypeErrorHandler"])(errorMessage, props, type);
  }

  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement.apply(react__WEBPACK_IMPORTED_MODULE_0___default.a, [element, Object(ramda__WEBPACK_IMPORTED_MODULE_5__["mergeRight"])(props, extraProps)].concat(_toConsumableArray(Array.isArray(children) ? children : [children])));
}

CheckedComponent.propTypes = {
  children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any,
  element: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any,
  layout: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any,
  props: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any,
  extraProps: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any,
  id: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string
};

var TreeContainer =
/*#__PURE__*/
function (_Component) {
  _inherits(TreeContainer, _Component);

  function TreeContainer(props) {
    var _this;

    _classCallCheck(this, TreeContainer);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(TreeContainer).call(this, props));
    _this.setProps = _this.setProps.bind(_assertThisInitialized(_this));
    return _this;
  }

  _createClass(TreeContainer, [{
    key: "setProps",
    value: function setProps(newProps) {
      var _this$props = this.props,
          _dashprivate_dependencies = _this$props._dashprivate_dependencies,
          _dashprivate_dispatch = _this$props._dashprivate_dispatch,
          _dashprivate_path = _this$props._dashprivate_path,
          _dashprivate_layout = _this$props._dashprivate_layout;
      var id = this.getLayoutProps().id; // Identify the modified props that are required for callbacks

      var watchedKeys = Object(ramda__WEBPACK_IMPORTED_MODULE_5__["filter"])(function (key) {
        return _dashprivate_dependencies && _dashprivate_dependencies.find(function (dependency) {
          return dependency.inputs.find(function (input) {
            return input.id === id && input.property === key;
          }) || dependency.state.find(function (state) {
            return state.id === id && state.property === key;
          });
        });
      })(Object(ramda__WEBPACK_IMPORTED_MODULE_5__["keysIn"])(newProps)); // setProps here is triggered by the UI - record these changes
      // for persistence

      Object(_persistence__WEBPACK_IMPORTED_MODULE_8__["recordUiEdit"])(_dashprivate_layout, newProps, _dashprivate_dispatch); // Always update this component's props

      _dashprivate_dispatch(Object(_actions__WEBPACK_IMPORTED_MODULE_6__["updateProps"])({
        props: newProps,
        itempath: _dashprivate_path
      })); // Only dispatch changes to Dash if a watched prop changed


      if (watchedKeys.length) {
        _dashprivate_dispatch(Object(_actions__WEBPACK_IMPORTED_MODULE_6__["notifyObservers"])({
          id: id,
          props: Object(ramda__WEBPACK_IMPORTED_MODULE_5__["pick"])(watchedKeys)(newProps)
        }));
      }
    }
  }, {
    key: "getChildren",
    value: function getChildren(components, path) {
      if (Object(ramda__WEBPACK_IMPORTED_MODULE_5__["isNil"])(components)) {
        return null;
      }

      return Array.isArray(components) ? Object(ramda__WEBPACK_IMPORTED_MODULE_5__["addIndex"])(ramda__WEBPACK_IMPORTED_MODULE_5__["map"])(function (component, i) {
        return createContainer(component, Object(ramda__WEBPACK_IMPORTED_MODULE_5__["concat"])(path, ['props', 'children', i]));
      }, components) : createContainer(components, Object(ramda__WEBPACK_IMPORTED_MODULE_5__["concat"])(path, ['props', 'children']));
    }
  }, {
    key: "getComponent",
    value: function getComponent(_dashprivate_layout, children, loading_state, setProps) {
      var _dashprivate_config = this.props._dashprivate_config;

      if (Object(ramda__WEBPACK_IMPORTED_MODULE_5__["isEmpty"])(_dashprivate_layout)) {
        return null;
      }

      if (Object(_isSimpleComponent__WEBPACK_IMPORTED_MODULE_7__["default"])(_dashprivate_layout)) {
        return _dashprivate_layout;
      }

      validateComponent(_dashprivate_layout);
      var element = _registry__WEBPACK_IMPORTED_MODULE_2__["default"].resolve(_dashprivate_layout);
      var props = Object(ramda__WEBPACK_IMPORTED_MODULE_5__["omit"])(['children'], _dashprivate_layout.props);
      return _dashprivate_config.props_check ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_error_ComponentErrorBoundary_react__WEBPACK_IMPORTED_MODULE_9__["default"], {
        componentType: _dashprivate_layout.type,
        componentId: _dashprivate_layout.props.id,
        key: element && element.props && element.props.id
      }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(CheckedComponent, {
        children: children,
        element: element,
        props: props,
        extraProps: {
          loading_state: loading_state,
          setProps: setProps
        },
        type: _dashprivate_layout.type
      })) : react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_error_ComponentErrorBoundary_react__WEBPACK_IMPORTED_MODULE_9__["default"], {
        componentType: _dashprivate_layout.type,
        componentId: _dashprivate_layout.props.id,
        key: element && element.props && element.props.id
      }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement.apply(react__WEBPACK_IMPORTED_MODULE_0___default.a, [element, Object(ramda__WEBPACK_IMPORTED_MODULE_5__["mergeRight"])(props, {
        loading_state: loading_state,
        setProps: setProps
      })].concat(_toConsumableArray(Array.isArray(children) ? children : [children]))));
    }
  }, {
    key: "shouldComponentUpdate",
    value: function shouldComponentUpdate(nextProps) {
      var _dashprivate_layout = nextProps._dashprivate_layout,
          _dashprivate_loadingState = nextProps._dashprivate_loadingState;
      return _dashprivate_layout !== this.props._dashprivate_layout || _dashprivate_loadingState.is_loading !== this.props._dashprivate_loadingState.is_loading;
    }
  }, {
    key: "getLayoutProps",
    value: function getLayoutProps() {
      return Object(ramda__WEBPACK_IMPORTED_MODULE_5__["propOr"])({}, 'props', this.props._dashprivate_layout);
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props2 = this.props,
          _dashprivate_layout = _this$props2._dashprivate_layout,
          _dashprivate_loadingState = _this$props2._dashprivate_loadingState,
          _dashprivate_path = _this$props2._dashprivate_path;
      var layoutProps = this.getLayoutProps();
      var children = this.getChildren(layoutProps.children, _dashprivate_path);
      return this.getComponent(_dashprivate_layout, children, _dashprivate_loadingState, this.setProps);
    }
  }]);

  return TreeContainer;
}(react__WEBPACK_IMPORTED_MODULE_0__["Component"]);

TreeContainer.propTypes = {
  _dashprivate_dependencies: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any,
  _dashprivate_dispatch: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,
  _dashprivate_layout: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object,
  _dashprivate_loadingState: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object,
  _dashprivate_requestQueue: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any,
  _dashprivate_config: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object,
  _dashprivate_path: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array
};

function isLoadingComponent(layout) {
  validateComponent(layout);
  return _registry__WEBPACK_IMPORTED_MODULE_2__["default"].resolve(layout)._dashprivate_isLoadingComponent;
}

function getNestedIds(layout) {
  var ids = [];
  var queue = [layout];

  while (queue.length) {
    var elementLayout = queue.shift();
    var props = elementLayout && elementLayout.props;

    if (!props) {
      continue;
    }

    var children = props.children,
        id = props.id;

    if (id) {
      ids.push(id);
    }

    if (children) {
      var filteredChildren = Object(ramda__WEBPACK_IMPORTED_MODULE_5__["filter"])(function (child) {
        return !Object(_isSimpleComponent__WEBPACK_IMPORTED_MODULE_7__["default"])(child) && !isLoadingComponent(child);
      }, Array.isArray(children) ? children : [children]);
      queue.push.apply(queue, _toConsumableArray(filteredChildren));
    }
  }

  return ids;
}

function getLoadingState(layout, requestQueue) {
  var ids = isLoadingComponent(layout) ? getNestedIds(layout) : layout && layout.props.id ? [layout.props.id] : [];
  var isLoading = false;
  var loadingProp;
  var loadingComponent;

  if (requestQueue) {
    Object(ramda__WEBPACK_IMPORTED_MODULE_5__["forEach"])(function (r) {
      var controllerId = Object(ramda__WEBPACK_IMPORTED_MODULE_5__["isNil"])(r.controllerId) ? '' : r.controllerId;

      if (r.status === 'loading' && Object(ramda__WEBPACK_IMPORTED_MODULE_5__["any"])(function (id) {
        return Object(ramda__WEBPACK_IMPORTED_MODULE_5__["includes"])(id, controllerId);
      }, ids)) {
        isLoading = true;

        var _r$controllerId$split = r.controllerId.split('.');

        var _r$controllerId$split2 = _slicedToArray(_r$controllerId$split, 2);

        loadingComponent = _r$controllerId$split2[0];
        loadingProp = _r$controllerId$split2[1];
      }
    }, requestQueue);
  } // Set loading state


  return {
    is_loading: isLoading,
    prop_name: loadingProp,
    component_name: loadingComponent
  };
}

var AugmentedTreeContainer = Object(react_redux__WEBPACK_IMPORTED_MODULE_4__["connect"])(function (state) {
  return {
    dependencies: state.dependenciesRequest.content,
    requestQueue: state.requestQueue,
    config: state.config
  };
}, function (dispatch) {
  return {
    dispatch: dispatch
  };
}, function (stateProps, dispatchProps, ownProps) {
  return {
    _dashprivate_dependencies: stateProps.dependencies,
    _dashprivate_dispatch: dispatchProps.dispatch,
    _dashprivate_layout: ownProps._dashprivate_layout,
    _dashprivate_path: ownProps._dashprivate_path,
    _dashprivate_loadingState: getLoadingState(ownProps._dashprivate_layout, stateProps.requestQueue),
    _dashprivate_requestQueue: stateProps.requestQueue,
    _dashprivate_config: stateProps.config
  };
})(TreeContainer);
/* harmony default export */ __webpack_exports__["default"] = (AugmentedTreeContainer);

/***/ }),

/***/ "./src/actions/api.js":
/*!****************************!*\
  !*** ./src/actions/api.js ***!
  \****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return apiThunk; });
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ramda */ "./node_modules/ramda/es/index.js");
/* harmony import */ var _actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../actions */ "./src/actions/index.js");
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils */ "./src/utils.js");
/* global fetch: true */




function GET(path, fetchConfig) {
  return fetch(path, Object(ramda__WEBPACK_IMPORTED_MODULE_0__["mergeDeepRight"])(fetchConfig, {
    method: 'GET',
    headers: Object(_actions__WEBPACK_IMPORTED_MODULE_1__["getCSRFHeader"])()
  }));
}

function POST(path, fetchConfig) {
  var body = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
  return fetch(path, Object(ramda__WEBPACK_IMPORTED_MODULE_0__["mergeDeepRight"])(fetchConfig, {
    method: 'POST',
    headers: Object(_actions__WEBPACK_IMPORTED_MODULE_1__["getCSRFHeader"])(),
    body: body ? JSON.stringify(body) : null
  }));
}

var request = {
  GET: GET,
  POST: POST
};
function apiThunk(endpoint, method, store, id, body) {
  return function (dispatch, getState) {
    var config = getState().config;
    var url = "".concat(Object(_utils__WEBPACK_IMPORTED_MODULE_2__["urlBase"])(config)).concat(endpoint);
    dispatch({
      type: store,
      payload: {
        id: id,
        status: 'loading'
      }
    });
    return request[method](url, config.fetch, body).then(function (res) {
      var contentType = res.headers.get('content-type');

      if (contentType && contentType.indexOf('application/json') !== -1) {
        return res.json().then(function (json) {
          dispatch({
            type: store,
            payload: {
              status: res.status,
              content: json,
              id: id
            }
          });
          return json;
        });
      }

      return dispatch({
        type: store,
        payload: {
          id: id,
          status: res.status
        }
      });
    })["catch"](function (err) {
      var message = 'Error from API call: ' + endpoint;
      Object(_actions__WEBPACK_IMPORTED_MODULE_1__["handleAsyncError"])(err, message, dispatch);
    });
  };
}

/***/ }),

/***/ "./src/actions/constants.js":
/*!**********************************!*\
  !*** ./src/actions/constants.js ***!
  \**********************************/
/*! exports provided: getAction */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAction", function() { return getAction; });
var actionList = {
  ON_PROP_CHANGE: 'ON_PROP_CHANGE',
  SET_REQUEST_QUEUE: 'SET_REQUEST_QUEUE',
  COMPUTE_GRAPHS: 'COMPUTE_GRAPHS',
  COMPUTE_PATHS: 'COMPUTE_PATHS',
  SET_LAYOUT: 'SET_LAYOUT',
  SET_APP_LIFECYCLE: 'SET_APP_LIFECYCLE',
  SET_CONFIG: 'SET_CONFIG',
  ON_ERROR: 'ON_ERROR',
  SET_HOOKS: 'SET_HOOKS'
};
var getAction = function getAction(action) {
  if (actionList[action]) {
    return actionList[action];
  }

  throw new Error("".concat(action, " is not defined."));
};

/***/ }),

/***/ "./src/actions/index.js":
/*!******************************!*\
  !*** ./src/actions/index.js ***!
  \******************************/
/*! exports provided: updateProps, setRequestQueue, computeGraphs, computePaths, setAppLifecycle, setConfig, setHooks, setLayout, onError, hydrateInitialOutputs, getCSRFHeader, redo, undo, revert, notifyObservers, handleAsyncError, serialize */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateProps", function() { return updateProps; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setRequestQueue", function() { return setRequestQueue; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "computeGraphs", function() { return computeGraphs; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "computePaths", function() { return computePaths; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAppLifecycle", function() { return setAppLifecycle; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConfig", function() { return setConfig; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setHooks", function() { return setHooks; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setLayout", function() { return setLayout; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onError", function() { return onError; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hydrateInitialOutputs", function() { return hydrateInitialOutputs; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCSRFHeader", function() { return getCSRFHeader; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "redo", function() { return redo; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "undo", function() { return undo; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "revert", function() { return revert; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "notifyObservers", function() { return notifyObservers; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "handleAsyncError", function() { return handleAsyncError; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serialize", function() { return serialize; });
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ramda */ "./node_modules/ramda/es/index.js");
/* harmony import */ var redux_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! redux-actions */ "./node_modules/redux-actions/lib/index.js");
/* harmony import */ var redux_actions__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(redux_actions__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _reducers_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../reducers/utils */ "./src/reducers/utils.js");
/* harmony import */ var _reducers_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../reducers/constants */ "./src/reducers/constants.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constants */ "./src/actions/constants.js");
/* harmony import */ var cookie__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! cookie */ "./node_modules/cookie/index.js");
/* harmony import */ var cookie__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(cookie__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils */ "./src/utils.js");
/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../constants/constants */ "./src/constants/constants.js");
/* harmony import */ var _persistence__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../persistence */ "./src/persistence.js");
/* harmony import */ var _isAppReady__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./isAppReady */ "./src/actions/isAppReady.js");
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }

function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }

function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }

function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }

function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }

function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

/* global fetch:true, Promise:true, document:true */










var updateProps = Object(redux_actions__WEBPACK_IMPORTED_MODULE_1__["createAction"])(Object(_constants__WEBPACK_IMPORTED_MODULE_4__["getAction"])('ON_PROP_CHANGE'));
var setRequestQueue = Object(redux_actions__WEBPACK_IMPORTED_MODULE_1__["createAction"])(Object(_constants__WEBPACK_IMPORTED_MODULE_4__["getAction"])('SET_REQUEST_QUEUE'));
var computeGraphs = Object(redux_actions__WEBPACK_IMPORTED_MODULE_1__["createAction"])(Object(_constants__WEBPACK_IMPORTED_MODULE_4__["getAction"])('COMPUTE_GRAPHS'));
var computePaths = Object(redux_actions__WEBPACK_IMPORTED_MODULE_1__["createAction"])(Object(_constants__WEBPACK_IMPORTED_MODULE_4__["getAction"])('COMPUTE_PATHS'));
var setAppLifecycle = Object(redux_actions__WEBPACK_IMPORTED_MODULE_1__["createAction"])(Object(_constants__WEBPACK_IMPORTED_MODULE_4__["getAction"])('SET_APP_LIFECYCLE'));
var setConfig = Object(redux_actions__WEBPACK_IMPORTED_MODULE_1__["createAction"])(Object(_constants__WEBPACK_IMPORTED_MODULE_4__["getAction"])('SET_CONFIG'));
var setHooks = Object(redux_actions__WEBPACK_IMPORTED_MODULE_1__["createAction"])(Object(_constants__WEBPACK_IMPORTED_MODULE_4__["getAction"])('SET_HOOKS'));
var setLayout = Object(redux_actions__WEBPACK_IMPORTED_MODULE_1__["createAction"])(Object(_constants__WEBPACK_IMPORTED_MODULE_4__["getAction"])('SET_LAYOUT'));
var onError = Object(redux_actions__WEBPACK_IMPORTED_MODULE_1__["createAction"])(Object(_constants__WEBPACK_IMPORTED_MODULE_4__["getAction"])('ON_ERROR'));
function hydrateInitialOutputs() {
  return function (dispatch, getState) {
    triggerDefaultState(dispatch, getState);
    dispatch(setAppLifecycle(Object(_reducers_constants__WEBPACK_IMPORTED_MODULE_3__["getAppState"])('HYDRATED')));
  };
}
function getCSRFHeader() {
  return {
    'X-CSRFToken': cookie__WEBPACK_IMPORTED_MODULE_5___default.a.parse(document.cookie)._csrf_token
  };
}

function triggerDefaultState(dispatch, getState) {
  var _getState = getState(),
      graphs = _getState.graphs;

  var InputGraph = graphs.InputGraph,
      MultiGraph = graphs.MultiGraph;
  var allNodes = InputGraph.overallOrder(); // overallOrder will assert circular dependencies for multi output.

  try {
    MultiGraph.overallOrder();
  } catch (err) {
    dispatch(onError({
      type: 'backEnd',
      error: {
        message: 'Circular Dependencies',
        html: err.toString()
      }
    }));
  }

  var inputNodeIds = [];
  allNodes.reverse();
  allNodes.forEach(function (nodeId) {
    var componentId = nodeId.split('.')[0];
    /*
     * Filter out the outputs,
     * inputs that aren't leaves,
     * and the invisible inputs
     */

    if (InputGraph.dependenciesOf(nodeId).length > 0 && InputGraph.dependantsOf(nodeId).length === 0 && Object(ramda__WEBPACK_IMPORTED_MODULE_0__["has"])(componentId, getState().paths)) {
      inputNodeIds.push(nodeId);
    }
  });
  reduceInputIds(inputNodeIds, InputGraph).forEach(function (inputOutput) {
    var _inputOutput$input$sp = inputOutput.input.split('.'),
        _inputOutput$input$sp2 = _slicedToArray(_inputOutput$input$sp, 2),
        componentId = _inputOutput$input$sp2[0],
        componentProp = _inputOutput$input$sp2[1]; // Get the initial property


    var propLens = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["lensPath"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["concat"])(getState().paths[componentId], ['props', componentProp]));
    var propValue = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["view"])(propLens, getState().layout);
    dispatch(notifyObservers({
      id: componentId,
      props: _defineProperty({}, componentProp, propValue),
      excludedOutputs: inputOutput.excludedOutputs
    }));
  });
}

function redo() {
  return function (dispatch, getState) {
    var history = getState().history;
    dispatch(Object(redux_actions__WEBPACK_IMPORTED_MODULE_1__["createAction"])('REDO')());
    var next = history.future[0]; // Update props

    dispatch(Object(redux_actions__WEBPACK_IMPORTED_MODULE_1__["createAction"])('REDO_PROP_CHANGE')({
      itempath: getState().paths[next.id],
      props: next.props
    })); // Notify observers

    dispatch(notifyObservers({
      id: next.id,
      props: next.props
    }));
  };
}
var UNDO = Object(redux_actions__WEBPACK_IMPORTED_MODULE_1__["createAction"])('UNDO')();
function undo() {
  return undo_revert(UNDO);
}
var REVERT = Object(redux_actions__WEBPACK_IMPORTED_MODULE_1__["createAction"])('REVERT')();
function revert() {
  return undo_revert(REVERT);
}

function undo_revert(undo_or_revert) {
  return function (dispatch, getState) {
    var history = getState().history;
    dispatch(undo_or_revert);
    var previous = history.past[history.past.length - 1]; // Update props

    dispatch(Object(redux_actions__WEBPACK_IMPORTED_MODULE_1__["createAction"])('UNDO_PROP_CHANGE')({
      itempath: getState().paths[previous.id],
      props: previous.props
    })); // Notify observers

    dispatch(notifyObservers({
      id: previous.id,
      props: previous.props
    }));
  };
}

function reduceInputIds(nodeIds, InputGraph) {
  /*
   * Create input-output(s) pairs,
   * sort by number of outputs,
   * and remove redundant inputs (inputs that update the same output)
   */
  var inputOutputPairs = nodeIds.map(function (nodeId) {
    return {
      input: nodeId,
      // TODO - Does this include grandchildren?
      outputs: InputGraph.dependenciesOf(nodeId),
      excludedOutputs: []
    };
  });
  var sortedInputOutputPairs = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["sort"])(function (a, b) {
    return b.outputs.length - a.outputs.length;
  }, inputOutputPairs);
  /*
   * In some cases, we may have unique outputs but inputs that could
   * trigger components to update multiple times.
   *
   * For example, [A, B] => C and [A, D] => E
   * The unique inputs might be [A, B, D] but that is redundant.
   * We only need to update B and D or just A.
   *
   * In these cases, we'll supply an additional list of outputs
   * to exclude.
   */

  sortedInputOutputPairs.forEach(function (pair, i) {
    var outputsThatWillBeUpdated = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["flatten"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["pluck"])('outputs', Object(ramda__WEBPACK_IMPORTED_MODULE_0__["slice"])(0, i, sortedInputOutputPairs)));
    pair.outputs.forEach(function (output) {
      if (Object(ramda__WEBPACK_IMPORTED_MODULE_0__["includes"])(output, outputsThatWillBeUpdated)) {
        pair.excludedOutputs.push(output);
      }
    });
  });
  return sortedInputOutputPairs;
}

function notifyObservers(payload) {
  return function _callee(dispatch, getState) {
    var id, props, excludedOutputs, _getState2, dependenciesRequest, graphs, layout, paths, requestQueue, InputGraph, outputObservers, changedProps, depOrder, queuedObservers, deps, ids, newRequestQueue, promises, i, outputIdAndProp, requestUid;

    return regeneratorRuntime.async(function _callee$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            id = payload.id, props = payload.props, excludedOutputs = payload.excludedOutputs;
            _getState2 = getState(), dependenciesRequest = _getState2.dependenciesRequest, graphs = _getState2.graphs, layout = _getState2.layout, paths = _getState2.paths, requestQueue = _getState2.requestQueue;
            InputGraph = graphs.InputGraph;
            /*
             * Figure out all of the output id's that depend on this input.
             * This includes id's that are direct children as well as
             * grandchildren.
             * grandchildren will get filtered out in a later stage.
             */

            outputObservers = [];
            changedProps = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["keys"])(props);
            changedProps.forEach(function (propName) {
              var node = "".concat(id, ".").concat(propName);

              if (!InputGraph.hasNode(node)) {
                return;
              }

              InputGraph.dependenciesOf(node).forEach(function (outputId) {
                /*
                 * Multiple input properties that update the same
                 * output can change at once.
                 * For example, `n_clicks` and `n_clicks_previous`
                 * on a button component.
                 * We only need to update the output once for this
                 * update, so keep outputObservers unique.
                 */
                if (!Object(ramda__WEBPACK_IMPORTED_MODULE_0__["includes"])(outputId, outputObservers)) {
                  outputObservers.push(outputId);
                }
              });
            });

            if (excludedOutputs) {
              outputObservers = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["reject"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["flip"])(ramda__WEBPACK_IMPORTED_MODULE_0__["includes"])(excludedOutputs), outputObservers);
            }

            if (!Object(ramda__WEBPACK_IMPORTED_MODULE_0__["isEmpty"])(outputObservers)) {
              _context.next = 9;
              break;
            }

            return _context.abrupt("return");

          case 9:
            /*
             * There may be several components that depend on this input.
             * And some components may depend on other components before
             * updating. Get this update order straightened out.
             */
            depOrder = InputGraph.overallOrder();
            outputObservers = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["sort"])(function (a, b) {
              return depOrder.indexOf(b) - depOrder.indexOf(a);
            }, outputObservers);
            queuedObservers = [];
            outputObservers.forEach(function filterObservers(outputIdAndProp) {
              var outputIds;

              if (Object(_utils__WEBPACK_IMPORTED_MODULE_6__["isMultiOutputProp"])(outputIdAndProp)) {
                outputIds = Object(_utils__WEBPACK_IMPORTED_MODULE_6__["parseMultipleOutputs"])(outputIdAndProp).map(function (e) {
                  return e.split('.')[0];
                });
              } else {
                outputIds = [outputIdAndProp.split('.')[0]];
              }
              /*
               * before we make the POST to update the output, check
               * that the output doesn't depend on any other inputs that
               * that depend on the same controller.
               * if the output has another input with a shared controller,
               * then don't update this output yet.
               * when each dependency updates, it'll dispatch its own
               * `notifyObservers` action which will allow this
               * component to update.
               *
               * for example, if A updates B and C (A -> [B, C]) and B updates C
               * (B -> C), then when A updates, this logic will
               * reject C from the queue since it will end up getting updated
               * by B.
               *
               * in this case, B will already be in queuedObservers by the time
               * this loop hits C because of the overallOrder sorting logic
               */


              var controllers = InputGraph.dependantsOf(outputIdAndProp);
              var controllersInFutureQueue = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["intersection"])(queuedObservers, controllers);
              /*
               * check that the output hasn't been triggered to update already
               * by a different input.
               *
               * for example:
               * Grandparent -> [Parent A, Parent B] -> Child
               *
               * when Grandparent changes, it will trigger Parent A and Parent B
               * to each update Child.
               * one of the components (Parent A or Parent B) will queue up
               * the change for Child. if this update has already been queued up,
               * then skip the update for the other component
               */

              var controllerIsInExistingQueue = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["any"])(function (r) {
                return Object(ramda__WEBPACK_IMPORTED_MODULE_0__["includes"])(r.controllerId, controllers) && r.status === 'loading';
              }, requestQueue);
              /*
               * TODO - Place throttling logic here?
               *
               * Only process the last two requests for a _single_ output
               * at a time.
               *
               * For example, if A -> B, and A is changed 10 times, then:
               * 1 - processing the first two requests
               * 2 - if more than 2 requests come in while the first two
               *     are being processed, then skip updating all of the
               *     requests except for the last 2
               */

              /*
               * also check that this observer is actually in the current
               * component tree.
               * observers don't actually need to be rendered at the moment
               * of a controller change.
               * for example, perhaps the user has hidden one of the observers
               */

              if (controllersInFutureQueue.length === 0 && Object(ramda__WEBPACK_IMPORTED_MODULE_0__["any"])(function (e) {
                return Object(ramda__WEBPACK_IMPORTED_MODULE_0__["has"])(e, getState().paths);
              })(outputIds) && !controllerIsInExistingQueue) {
                queuedObservers.push(outputIdAndProp);
              }
            });
            /**
             * Determine the id of all components used as input or state in the callbacks
             * triggered by the props change.
             *
             * Wait for all components associated to these ids to be ready before initiating
             * the callbacks.
             */

            deps = queuedObservers.map(function (output) {
              return dependenciesRequest.content.find(function (dependency) {
                return dependency.output === output;
              });
            });
            ids = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["uniq"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["flatten"])(deps.map(function (dep) {
              return [dep.inputs.map(function (input) {
                return input.id;
              }), dep.state.map(function (state) {
                return state.id;
              })];
            })));
            _context.next = 17;
            return regeneratorRuntime.awrap(Object(_isAppReady__WEBPACK_IMPORTED_MODULE_9__["default"])(layout, paths, ids));

          case 17:
            /*
             * record the set of output IDs that will eventually need to be
             * updated in a queue. not all of these requests will be fired in this
             * action
             */
            newRequestQueue = queuedObservers.map(function (i) {
              return {
                controllerId: i,
                status: 'loading',
                uid: Object(_utils__WEBPACK_IMPORTED_MODULE_6__["uid"])(),
                requestTime: Date.now()
              };
            });
            dispatch(setRequestQueue(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["concat"])(requestQueue, newRequestQueue)));
            promises = [];

            for (i = 0; i < queuedObservers.length; i++) {
              outputIdAndProp = queuedObservers[i];
              requestUid = newRequestQueue[i].uid;
              promises.push(updateOutput(outputIdAndProp, getState, requestUid, dispatch, changedProps.map(function (prop) {
                return "".concat(id, ".").concat(prop);
              })));
            }
            /* eslint-disable consistent-return */


            return _context.abrupt("return", Promise.all(promises));

          case 22:
          case "end":
            return _context.stop();
        }
      }
    });
  };
}

function updateOutput(outputIdAndProp, getState, requestUid, dispatch, changedPropIds) {
  var _getState3 = getState(),
      config = _getState3.config,
      layout = _getState3.layout,
      graphs = _getState3.graphs,
      dependenciesRequest = _getState3.dependenciesRequest,
      hooks = _getState3.hooks;

  var InputGraph = graphs.InputGraph;

  var getThisRequestIndex = function getThisRequestIndex() {
    var postRequestQueue = getState().requestQueue;
    var thisRequestIndex = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["findIndex"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["propEq"])('uid', requestUid), postRequestQueue);
    return thisRequestIndex;
  };

  var updateRequestQueue = function updateRequestQueue(rejected, status) {
    var postRequestQueue = getState().requestQueue;
    var thisRequestIndex = getThisRequestIndex();

    if (thisRequestIndex === -1) {
      // It was already pruned away
      return;
    }

    var updatedQueue = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["adjust"])(thisRequestIndex, Object(ramda__WEBPACK_IMPORTED_MODULE_0__["mergeLeft"])({
      status: status,
      responseTime: Date.now(),
      rejected: rejected
    }), postRequestQueue); // We don't need to store any requests before this one

    var thisControllerId = postRequestQueue[thisRequestIndex].controllerId;
    var prunedQueue = updatedQueue.filter(function (queueItem, index) {
      return queueItem.controllerId !== thisControllerId || index >= thisRequestIndex;
    });
    dispatch(setRequestQueue(prunedQueue));
  };
  /*
   * Construct a payload of the input and state.
   * For example:
   * {
   *      inputs: [{'id': 'input1', 'property': 'new value'}],
   *      state: [{'id': 'state1', 'property': 'existing value'}]
   * }
   */
  // eslint-disable-next-line no-unused-vars


  var _outputIdAndProp$spli = outputIdAndProp.split('.'),
      _outputIdAndProp$spli2 = _slicedToArray(_outputIdAndProp$spli, 2),
      outputComponentId = _outputIdAndProp$spli2[0],
      _ = _outputIdAndProp$spli2[1];

  var payload = {
    output: outputIdAndProp,
    changedPropIds: changedPropIds
  };

  var _dependenciesRequest$ = dependenciesRequest.content.find(function (dependency) {
    return dependency.output === outputIdAndProp;
  }),
      inputs = _dependenciesRequest$.inputs,
      state = _dependenciesRequest$.state,
      clientside_function = _dependenciesRequest$.clientside_function;

  var validKeys = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["keys"])(getState().paths);
  payload.inputs = inputs.map(function (inputObject) {
    // Make sure the component id exists in the layout
    if (!Object(ramda__WEBPACK_IMPORTED_MODULE_0__["includes"])(inputObject.id, validKeys)) {
      throw new ReferenceError('An invalid input object was used in an ' + '`Input` of a Dash callback. ' + 'The id of this object is `' + inputObject.id + '` and the property is `' + inputObject.property + '`. The list of ids in the current layout is ' + '`[' + validKeys.join(', ') + ']`');
    }

    var propLens = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["lensPath"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["concat"])(getState().paths[inputObject.id], ['props', inputObject.property]));
    return {
      id: inputObject.id,
      property: inputObject.property,
      value: Object(ramda__WEBPACK_IMPORTED_MODULE_0__["view"])(propLens, layout)
    };
  });
  var inputsPropIds = inputs.map(function (p) {
    return "".concat(p.id, ".").concat(p.property);
  });
  payload.changedPropIds = changedPropIds.filter(function (p) {
    return Object(ramda__WEBPACK_IMPORTED_MODULE_0__["includes"])(p, inputsPropIds);
  });

  if (state.length > 0) {
    payload.state = state.map(function (stateObject) {
      // Make sure the component id exists in the layout
      if (!Object(ramda__WEBPACK_IMPORTED_MODULE_0__["includes"])(stateObject.id, validKeys)) {
        throw new ReferenceError('An invalid input object was used in a ' + '`State` object of a Dash callback. ' + 'The id of this object is `' + stateObject.id + '` and the property is `' + stateObject.property + '`. The list of ids in the current layout is ' + '`[' + validKeys.join(', ') + ']`');
      }

      var propLens = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["lensPath"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["concat"])(getState().paths[stateObject.id], ['props', stateObject.property]));
      return {
        id: stateObject.id,
        property: stateObject.property,
        value: Object(ramda__WEBPACK_IMPORTED_MODULE_0__["view"])(propLens, layout)
      };
    });
  }

  function doUpdateProps(id, updatedProps) {
    var _getState4 = getState(),
        layout = _getState4.layout,
        paths = _getState4.paths;

    var itempath = paths[id];

    if (!itempath) {
      return false;
    } // This is a callback-generated update.
    // Check if this invalidates existing persisted prop values,
    // or if persistence changed, whether this updates other props.


    var updatedProps2 = Object(_persistence__WEBPACK_IMPORTED_MODULE_8__["prunePersistence"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["path"])(itempath, layout), updatedProps, dispatch); // In case the update contains whole components, see if any of
    // those components have props to update to persist user edits.

    var _applyPersistence = Object(_persistence__WEBPACK_IMPORTED_MODULE_8__["applyPersistence"])({
      props: updatedProps2
    }, dispatch),
        props = _applyPersistence.props;

    dispatch(updateProps({
      itempath: itempath,
      props: props,
      source: 'response'
    }));
    return props;
  } // Clientside hook


  if (clientside_function) {
    var updateClientsideOutput = function updateClientsideOutput(outputIdAndProp, outputValue) {
      var _outputIdAndProp$spli3 = outputIdAndProp.split('.'),
          _outputIdAndProp$spli4 = _slicedToArray(_outputIdAndProp$spli3, 2),
          outputId = _outputIdAndProp$spli4[0],
          outputProp = _outputIdAndProp$spli4[1];

      var updatedProps = _defineProperty({}, outputProp, outputValue);
      /*
       * Update the request queue by treating a successful clientside
       * like a successful serverside response (200 status code)
       */


      updateRequestQueue(false, _constants_constants__WEBPACK_IMPORTED_MODULE_7__["STATUS"].OK);
      /*
       * Prevent update.
       */

      if (outputValue === window.dash_clientside.no_update) {
        return;
      } // Update the layout with the new result


      var appliedProps = doUpdateProps(outputId, updatedProps);
      /*
       * This output could itself be a serverside or clientside input
       * to another function
       */

      if (appliedProps) {
        dispatch(notifyObservers({
          id: outputId,
          props: appliedProps
        }));
      }
    };

    var returnValue;
    /*
     * Create the dash_clientside namespace if it doesn't exist and inject
     * no_update and PreventUpdate.
     */

    if (!window.dash_clientside) {
      window.dash_clientside = {};
    }

    if (!window.dash_clientside.no_update) {
      Object.defineProperty(window.dash_clientside, 'no_update', {
        value: {
          description: 'Return to prevent updating an Output.'
        },
        writable: false
      });
      Object.defineProperty(window.dash_clientside, 'PreventUpdate', {
        value: {
          description: 'Throw to prevent updating all Outputs.'
        },
        writable: false
      });
    }

    try {
      var _window$dash_clientsi;

      returnValue = (_window$dash_clientsi = window.dash_clientside[clientside_function.namespace])[clientside_function.function_name].apply(_window$dash_clientsi, _toConsumableArray(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["pluck"])('value', payload.inputs)).concat(_toConsumableArray(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["has"])('state', payload) ? Object(ramda__WEBPACK_IMPORTED_MODULE_0__["pluck"])('value', payload.state) : [])));
    } catch (e) {
      /*
       * Prevent all updates.
       */
      if (e === window.dash_clientside.PreventUpdate) {
        updateRequestQueue(true, _constants_constants__WEBPACK_IMPORTED_MODULE_7__["STATUS"].PREVENT_UPDATE);
        return;
      }
      /* eslint-disable no-console */


      console.error("The following error occurred while executing ".concat(clientside_function.namespace, ".").concat(clientside_function.function_name, " ") + "in order to update component \"".concat(payload.output, "\" \u22C1\u22C1\u22C1"));
      console.error(e);
      /* eslint-enable no-console */

      /*
       * Update the request queue by treating an unsuccessful clientside
       * like a failed serverside response via same request queue
       * mechanism
       */

      updateRequestQueue(true, _constants_constants__WEBPACK_IMPORTED_MODULE_7__["STATUS"].CLIENTSIDE_ERROR);
      return;
    } // Returning promises isn't support atm


    if (Object(ramda__WEBPACK_IMPORTED_MODULE_0__["type"])(returnValue) === 'Promise') {
      /* eslint-disable no-console */
      console.error('The clientside function ' + "".concat(clientside_function.namespace, ".").concat(clientside_function.function_name, " ") + 'returned a Promise instead of a value. Promises are not ' + 'supported in Dash clientside right now, but may be in the ' + 'future.');
      /* eslint-enable no-console */

      updateRequestQueue(true, _constants_constants__WEBPACK_IMPORTED_MODULE_7__["STATUS"].CLIENTSIDE_ERROR);
      return;
    }

    if (Object(_utils__WEBPACK_IMPORTED_MODULE_6__["isMultiOutputProp"])(payload.output)) {
      Object(_utils__WEBPACK_IMPORTED_MODULE_6__["parseMultipleOutputs"])(payload.output).forEach(function (outputPropId, i) {
        updateClientsideOutput(outputPropId, returnValue[i]);
      });
    } else {
      updateClientsideOutput(payload.output, returnValue);
    }
    /*
     * Note that unlike serverside updates, we're not handling
     * children as components right now, so we don't need to
     * crawl the computed result to check for nested components
     * or properties that might trigger other inputs.
     * In the future, we could handle this case.
     */


    return;
  }

  if (hooks.request_pre !== null) {
    hooks.request_pre(payload);
  }
  /* eslint-disable consistent-return */


  return fetch("".concat(Object(_utils__WEBPACK_IMPORTED_MODULE_6__["urlBase"])(config), "_dash-update-component"), Object(ramda__WEBPACK_IMPORTED_MODULE_0__["mergeDeepRight"])(config.fetch, {
    /* eslint-enable consistent-return */
    method: 'POST',
    headers: getCSRFHeader(),
    body: JSON.stringify(payload)
  })).then(function handleResponse(res) {
    var isRejected = function isRejected() {
      var latestRequestIndex = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["findLastIndex"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["propEq"])('controllerId', outputIdAndProp), getState().requestQueue);
      /*
       * Note that if the latest request is still `loading`
       * or even if the latest request failed,
       * we still reject this response in favor of waiting
       * for the latest request to finish.
       */

      var rejected = latestRequestIndex > getThisRequestIndex();
      return rejected;
    };

    if (res.status !== _constants_constants__WEBPACK_IMPORTED_MODULE_7__["STATUS"].OK) {
      // update the status of this request
      updateRequestQueue(true, res.status);
      /*
       * This is a 204 response code, there's no content to process.
       */

      if (res.status === _constants_constants__WEBPACK_IMPORTED_MODULE_7__["STATUS"].PREVENT_UPDATE) {
        return;
      }
      /*
       * eject into `catch` handler below to display error
       * message in ui
       */


      throw res;
    }
    /*
     * Check to see if another request has already come back
     * _after_ this one.
     * If so, ignore this request.
     */


    if (isRejected()) {
      updateRequestQueue(true, res.status);
      return;
    }

    res.json().then(function handleJson(data) {
      /*
       * Even if the `res` was received in the correct order,
       * the remainder of the response (res.json()) could happen
       * at different rates causing the parsed responses to
       * get out of order
       */
      if (isRejected()) {
        updateRequestQueue(true, res.status);
        return;
      }

      updateRequestQueue(false, res.status); // Fire custom request_post hook if any

      if (hooks.request_post !== null) {
        hooks.request_post(payload, data.response);
      }
      /*
       * it's possible that this output item is no longer visible.
       * for example, the could still be request running when
       * the user switched the chapter
       *
       * if it's not visible, then ignore the rest of the updates
       * to the store
       */


      var multi = data.multi;

      var handleResponse = function handleResponse(_ref) {
        var _ref2 = _slicedToArray(_ref, 2),
            outputIdAndProp = _ref2[0],
            props = _ref2[1];

        // Backward compatibility
        var pathKey = multi ? outputIdAndProp : outputComponentId;
        var appliedProps = doUpdateProps(pathKey, props);

        if (!appliedProps) {
          return;
        }

        dispatch(notifyObservers({
          id: pathKey,
          props: appliedProps
        }));
        /*
         * If the response includes children, then we need to update our
         * paths store.
         * TODO - Do we need to wait for updateProps to finish?
         */

        if (Object(ramda__WEBPACK_IMPORTED_MODULE_0__["has"])('children', appliedProps)) {
          var newChildren = appliedProps.children;
          dispatch(computePaths({
            subTree: newChildren,
            startingPath: Object(ramda__WEBPACK_IMPORTED_MODULE_0__["concat"])(getState().paths[pathKey], ['props', 'children'])
          }));
          /*
           * if children contains objects with IDs, then we
           * need to dispatch a propChange for all of these
           * new children components
           */

          if (Object(ramda__WEBPACK_IMPORTED_MODULE_0__["includes"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["type"])(newChildren), ['Array', 'Object']) && !Object(ramda__WEBPACK_IMPORTED_MODULE_0__["isEmpty"])(newChildren)) {
            /*
             * TODO: We're just naively crawling
             * the _entire_ layout to recompute the
             * the dependency graphs.
             * We don't need to do this - just need
             * to compute the subtree
             */
            var newProps = {};
            Object(_reducers_utils__WEBPACK_IMPORTED_MODULE_2__["crawlLayout"])(newChildren, function appendIds(child) {
              if (Object(_reducers_utils__WEBPACK_IMPORTED_MODULE_2__["hasId"])(child)) {
                Object(ramda__WEBPACK_IMPORTED_MODULE_0__["keys"])(child.props).forEach(function (childProp) {
                  var componentIdAndProp = "".concat(child.props.id, ".").concat(childProp);

                  if (Object(ramda__WEBPACK_IMPORTED_MODULE_0__["has"])(componentIdAndProp, InputGraph.nodes)) {
                    newProps[componentIdAndProp] = {
                      id: child.props.id,
                      props: _defineProperty({}, childProp, child.props[childProp])
                    };
                  }
                });
              }
            });
            /*
             * Organize props by shared outputs so that we
             * only make one request per output component
             * (even if there are multiple inputs).
             *
             * For example, we might render 10 inputs that control
             * a single output. If that is the case, we only want
             * to make a single call, not 10 calls.
             */

            /*
             * In some cases, the new item will be an output
             * with its inputs already rendered (not rendered)
             * as part of this update.
             * For example, a tab with global controls that
             * renders different content containers without any
             * additional inputs.
             *
             * In that case, we'll call `updateOutput` with that output
             * and just "pretend" that one if its inputs changed.
             *
             * If we ever add logic that informs the user on
             * "which input changed", we'll have to account for this
             * special case (no input changed?)
             */

            var outputIds = [];
            Object(ramda__WEBPACK_IMPORTED_MODULE_0__["keys"])(newProps).forEach(function (idAndProp) {
              if ( // It's an output
              InputGraph.dependenciesOf(idAndProp).length === 0 &&
              /*
               * And none of its inputs are generated in this
               * request
               */
              Object(ramda__WEBPACK_IMPORTED_MODULE_0__["intersection"])(InputGraph.dependantsOf(idAndProp), Object(ramda__WEBPACK_IMPORTED_MODULE_0__["keys"])(newProps)).length === 0) {
                outputIds.push(idAndProp);
                delete newProps[idAndProp];
              }
            }); // Dispatch updates to inputs

            var reducedNodeIds = reduceInputIds(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["keys"])(newProps), InputGraph);
            var depOrder = InputGraph.overallOrder();
            var sortedNewProps = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["sort"])(function (a, b) {
              return depOrder.indexOf(a.input) - depOrder.indexOf(b.input);
            }, reducedNodeIds);
            sortedNewProps.forEach(function (inputOutput) {
              var payload = newProps[inputOutput.input];
              payload.excludedOutputs = inputOutput.excludedOutputs;
              dispatch(notifyObservers(payload));
            }); // Dispatch updates to lone outputs

            outputIds.forEach(function (idAndProp) {
              var requestUid = Object(_utils__WEBPACK_IMPORTED_MODULE_6__["uid"])();
              dispatch(setRequestQueue(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["append"])({
                // TODO - Are there any implications of doing this??
                controllerId: null,
                status: 'loading',
                uid: requestUid,
                requestTime: Date.now()
              }, getState().requestQueue)));
              updateOutput(idAndProp, getState, requestUid, dispatch, changedPropIds);
            });
          }
        }
      };

      if (multi) {
        Object.entries(data.response).forEach(handleResponse);
      } else {
        handleResponse([outputIdAndProp, data.response.props]);
      }
    });
  })["catch"](function (err) {
    var message = "Callback error updating ".concat(Object(_utils__WEBPACK_IMPORTED_MODULE_6__["isMultiOutputProp"])(payload.output) ? Object(_utils__WEBPACK_IMPORTED_MODULE_6__["parseMultipleOutputs"])(payload.output).join(', ') : payload.output);
    handleAsyncError(err, message, dispatch);
  });
}

function handleAsyncError(err, message, dispatch) {
  // Handle html error responses
  var errText = err && typeof err.text === 'function' ? err.text() : Promise.resolve(err);
  errText.then(function (text) {
    dispatch(onError({
      type: 'backEnd',
      error: {
        message: message,
        html: text
      }
    }));
  });
}
function serialize(state) {
  // Record minimal input state in the url
  var graphs = state.graphs,
      paths = state.paths,
      layout = state.layout;
  var InputGraph = graphs.InputGraph;
  var allNodes = InputGraph.nodes;
  var savedState = {};
  Object(ramda__WEBPACK_IMPORTED_MODULE_0__["keys"])(allNodes).forEach(function (nodeId) {
    var _nodeId$split = nodeId.split('.'),
        _nodeId$split2 = _slicedToArray(_nodeId$split, 2),
        componentId = _nodeId$split2[0],
        componentProp = _nodeId$split2[1];
    /*
     * Filter out the outputs,
     * and the invisible inputs
     */


    if (InputGraph.dependenciesOf(nodeId).length > 0 && Object(ramda__WEBPACK_IMPORTED_MODULE_0__["has"])(componentId, paths)) {
      // Get the property
      var propLens = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["lensPath"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["concat"])(paths[componentId], ['props', componentProp]));
      var propValue = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["view"])(propLens, layout);
      savedState[nodeId] = propValue;
    }
  });
  return savedState;
}

/***/ }),

/***/ "./src/actions/isAppReady.js":
/*!***********************************!*\
  !*** ./src/actions/isAppReady.js ***!
  \***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ramda */ "./node_modules/ramda/es/index.js");
/* harmony import */ var _plotly_dash_component_plugins__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @plotly/dash-component-plugins */ "./node_modules/@plotly/dash-component-plugins/dist/index.js");
/* harmony import */ var _plotly_dash_component_plugins__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_plotly_dash_component_plugins__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _registry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../registry */ "./src/registry.js");



/* harmony default export */ __webpack_exports__["default"] = (function (layout, paths, targets) {
  var promises = [];
  targets.forEach(function (id) {
    var pathOfId = paths[id];

    if (!pathOfId) {
      return;
    }

    var target = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["path"])(pathOfId, layout);

    if (!target) {
      return;
    }

    var component = _registry__WEBPACK_IMPORTED_MODULE_2__["default"].resolve(target);
    var ready = Object(_plotly_dash_component_plugins__WEBPACK_IMPORTED_MODULE_1__["isReady"])(component);

    if (ready && typeof ready.then === 'function') {
      promises.push(ready);
    }
  });
  return promises.length ? Promise.all(promises) : true;
});

/***/ }),

/***/ "./src/components/core/DocumentTitle.react.js":
/*!****************************************************!*\
  !*** ./src/components/core/DocumentTitle.react.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/lib/index.js");
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ramda */ "./node_modules/ramda/es/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "prop-types");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

/* global document:true */





var DocumentTitle =
/*#__PURE__*/
function (_Component) {
  _inherits(DocumentTitle, _Component);

  function DocumentTitle(props) {
    var _this;

    _classCallCheck(this, DocumentTitle);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(DocumentTitle).call(this, props));
    _this.state = {
      initialTitle: document.title
    };
    return _this;
  }

  _createClass(DocumentTitle, [{
    key: "componentWillReceiveProps",
    value: function componentWillReceiveProps(props) {
      if (Object(ramda__WEBPACK_IMPORTED_MODULE_1__["any"])(function (r) {
        return r.status === 'loading';
      }, props.requestQueue)) {
        document.title = 'Updating...';
      } else {
        document.title = this.state.initialTitle;
      }
    }
  }, {
    key: "shouldComponentUpdate",
    value: function shouldComponentUpdate() {
      return false;
    }
  }, {
    key: "render",
    value: function render() {
      return null;
    }
  }]);

  return DocumentTitle;
}(react__WEBPACK_IMPORTED_MODULE_2__["Component"]);

DocumentTitle.propTypes = {
  requestQueue: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.array.isRequired
};
/* harmony default export */ __webpack_exports__["default"] = (Object(react_redux__WEBPACK_IMPORTED_MODULE_0__["connect"])(function (state) {
  return {
    requestQueue: state.requestQueue
  };
})(DocumentTitle));

/***/ }),

/***/ "./src/components/core/Loading.react.js":
/*!**********************************************!*\
  !*** ./src/components/core/Loading.react.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/lib/index.js");
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ramda */ "./node_modules/ramda/es/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "prop-types");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);





function Loading(props) {
  if (Object(ramda__WEBPACK_IMPORTED_MODULE_1__["any"])(function (r) {
    return r.status === 'loading';
  }, props.requestQueue)) {
    return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement("div", {
      className: "_dash-loading-callback"
    });
  }

  return null;
}

Loading.propTypes = {
  requestQueue: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.array.isRequired
};
/* harmony default export */ __webpack_exports__["default"] = (Object(react_redux__WEBPACK_IMPORTED_MODULE_0__["connect"])(function (state) {
  return {
    requestQueue: state.requestQueue
  };
})(Loading));

/***/ }),

/***/ "./src/components/core/Reloader.react.js":
/*!***********************************************!*\
  !*** ./src/components/core/Reloader.react.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ramda */ "./node_modules/ramda/es/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "prop-types");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/lib/index.js");
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _actions_api__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../actions/api */ "./src/actions/api.js");
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

/* eslint-disable no-undef,react/no-did-update-set-state,no-magic-numbers */






var Reloader =
/*#__PURE__*/
function (_React$Component) {
  _inherits(Reloader, _React$Component);

  function Reloader(props) {
    var _this;

    _classCallCheck(this, Reloader);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(Reloader).call(this, props));

    if (props.config.hot_reload) {
      var _props$config$hot_rel = props.config.hot_reload,
          interval = _props$config$hot_rel.interval,
          max_retry = _props$config$hot_rel.max_retry;
      _this.state = {
        interval: interval,
        disabled: false,
        intervalId: null,
        packages: null,
        max_retry: max_retry
      };
    } else {
      _this.state = {
        disabled: true
      };
    }

    _this._retry = 0;
    _this._head = document.querySelector('head');
    _this.clearInterval = _this.clearInterval.bind(_assertThisInitialized(_this));
    return _this;
  }

  _createClass(Reloader, [{
    key: "clearInterval",
    value: function clearInterval() {
      window.clearInterval(this.state.intervalId);
      this.setState({
        intervalId: null
      });
    }
  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate(prevProps, prevState) {
      var reloadRequest = this.state.reloadRequest;
      var dispatch = this.props.dispatch; // In the beginning, reloadRequest won't be defined

      if (!reloadRequest) {
        return;
      }
      /*
       * When reloadRequest is first defined, prevState won't be defined
       * for one render loop.
       * The first reloadRequest defines the initial/baseline hash -
       * it doesn't require a reload
       */


      if (!Object(ramda__WEBPACK_IMPORTED_MODULE_0__["has"])('reloadRequest', prevState)) {
        return;
      }

      if (reloadRequest.status === 200 && Object(ramda__WEBPACK_IMPORTED_MODULE_0__["path"])(['content', 'reloadHash'], reloadRequest) !== Object(ramda__WEBPACK_IMPORTED_MODULE_0__["path"])(['reloadRequest', 'content', 'reloadHash'], prevState)) {
        // Check for CSS (!content.hard) or new package assets
        if (reloadRequest.content.hard || !Object(ramda__WEBPACK_IMPORTED_MODULE_0__["equals"])(reloadRequest.content.packages.length, Object(ramda__WEBPACK_IMPORTED_MODULE_0__["pathOr"])([], ['reloadRequest', 'content', 'packages'], prevState).length) || !Object(ramda__WEBPACK_IMPORTED_MODULE_0__["equals"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["sort"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["comparator"])(ramda__WEBPACK_IMPORTED_MODULE_0__["lt"]), reloadRequest.content.packages), Object(ramda__WEBPACK_IMPORTED_MODULE_0__["sort"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["comparator"])(ramda__WEBPACK_IMPORTED_MODULE_0__["lt"]), Object(ramda__WEBPACK_IMPORTED_MODULE_0__["pathOr"])([], ['reloadRequest', 'content', 'packages'], prevState)))) {
          // Look if it was a css file.
          var was_css = false; // eslint-disable-next-line prefer-const

          var _iteratorNormalCompletion = true;
          var _didIteratorError = false;
          var _iteratorError = undefined;

          try {
            for (var _iterator = reloadRequest.content.files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
              var a = _step.value;

              if (a.is_css) {
                was_css = true;
                var nodesToDisable = []; // Search for the old file by xpath.

                var it = document.evaluate("//link[contains(@href, \"".concat(a.url, "\")]"), this._head);
                var node = it.iterateNext();

                while (node) {
                  nodesToDisable.push(node);
                  node = it.iterateNext();
                }

                Object(ramda__WEBPACK_IMPORTED_MODULE_0__["forEach"])(function (n) {
                  return n.setAttribute('disabled', 'disabled');
                }, nodesToDisable);

                if (a.modified > 0) {
                  var link = document.createElement('link');
                  link.href = "".concat(a.url, "?m=").concat(a.modified);
                  link.type = 'text/css';
                  link.rel = 'stylesheet';

                  this._head.appendChild(link); // Else the file was deleted.

                }
              } else {
                // If there's another kind of file here do a hard reload.
                was_css = false;
                break;
              }
            }
          } catch (err) {
            _didIteratorError = true;
            _iteratorError = err;
          } finally {
            try {
              if (!_iteratorNormalCompletion && _iterator["return"] != null) {
                _iterator["return"]();
              }
            } finally {
              if (_didIteratorError) {
                throw _iteratorError;
              }
            }
          }

          if (!was_css) {
            // Assets file have changed
            // or a component lib has been added/removed -
            // Must do a hard reload
            window.top.location.reload();
          }
        } else {
          // Backend code changed - can do a soft reload in place
          dispatch({
            type: 'RELOAD'
          });
        }
      } else if (reloadRequest.status === 500) {
        if (this._retry > this.state.max_retry) {
          this.clearInterval(); // Integrate with dev tools ui?!

          window.alert("\n                    Reloader failed after ".concat(this._retry, " times.\n                    Please check your application for errors.\n                    "));
        }

        this._retry++;
      }
    }
  }, {
    key: "componentDidMount",
    value: function componentDidMount() {
      var _this$props = this.props,
          dispatch = _this$props.dispatch,
          reloadRequest = _this$props.reloadRequest;
      var _this$state = this.state,
          disabled = _this$state.disabled,
          interval = _this$state.interval;

      if (!disabled && !this.state.intervalId) {
        var intervalId = window.setInterval(function () {
          // Prevent requests from piling up - reloading can take
          // many seconds (10-30) and the interval is 3s by default
          if (reloadRequest.status !== 'loading') {
            dispatch(Object(_actions_api__WEBPACK_IMPORTED_MODULE_4__["default"])('_reload-hash', 'GET', 'reloadRequest'));
          }
        }, interval);
        this.setState({
          intervalId: intervalId
        });
      }
    }
  }, {
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      if (!this.state.disabled && this.state.intervalId) {
        this.clearInterval();
      }
    }
  }, {
    key: "render",
    value: function render() {
      return null;
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(props) {
      /*
       * Save the non-loading requests in the state in order to compare
       * current hashes with previous hashes.
       * Note that if there wasn't a "loading" state for the requests,
       * then we  could simply compare `props` with `prevProps` in
       * `componentDidUpdate`.
       */
      if (!Object(ramda__WEBPACK_IMPORTED_MODULE_0__["isEmpty"])(props.reloadRequest) && props.reloadRequest.status !== 'loading') {
        return {
          reloadRequest: props.reloadRequest
        };
      }

      return null;
    }
  }]);

  return Reloader;
}(react__WEBPACK_IMPORTED_MODULE_1___default.a.Component);

Reloader.defaultProps = {};
Reloader.propTypes = {
  id: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.string,
  config: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object,
  reloadRequest: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object,
  dispatch: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,
  interval: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number
};
/* harmony default export */ __webpack_exports__["default"] = (Object(react_redux__WEBPACK_IMPORTED_MODULE_3__["connect"])(function (state) {
  return {
    config: state.config,
    reloadRequest: state.reloadRequest
  };
}, function (dispatch) {
  return {
    dispatch: dispatch
  };
})(Reloader));

/***/ }),

/***/ "./src/components/core/Toolbar.react.js":
/*!**********************************************!*\
  !*** ./src/components/core/Toolbar.react.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/lib/index.js");
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "prop-types");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ramda */ "./node_modules/ramda/es/index.js");
/* harmony import */ var _actions_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../actions/index.js */ "./src/actions/index.js");
/* harmony import */ var radium__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! radium */ "./node_modules/radium/es/index.js");







function UnconnectedToolbar(props) {
  var dispatch = props.dispatch,
      history = props.history;
  var styles = {
    parentSpanStyle: {
      display: 'inline-block',
      opacity: '0.2',
      ':hover': {
        opacity: 1
      }
    },
    iconStyle: {
      fontSize: 20
    },
    labelStyle: {
      fontSize: 15
    }
  };
  var undoLink = react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", {
    key: "undoLink",
    style: Object(ramda__WEBPACK_IMPORTED_MODULE_3__["mergeRight"])({
      color: history.past.length ? '#0074D9' : 'grey',
      cursor: history.past.length ? 'pointer' : 'default'
    }, styles.parentSpanStyle),
    onClick: function onClick() {
      return dispatch(Object(_actions_index_js__WEBPACK_IMPORTED_MODULE_4__["undo"])());
    }
  }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
    style: Object(ramda__WEBPACK_IMPORTED_MODULE_3__["mergeRight"])({
      transform: 'rotate(270deg)'
    }, styles.iconStyle)
  }, "\u21BA"), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
    style: styles.labelStyle
  }, "undo"));
  var redoLink = react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", {
    key: "redoLink",
    style: Object(ramda__WEBPACK_IMPORTED_MODULE_3__["mergeRight"])({
      color: history.future.length ? '#0074D9' : 'grey',
      cursor: history.future.length ? 'pointer' : 'default',
      marginLeft: 10
    }, styles.parentSpanStyle),
    onClick: function onClick() {
      return dispatch(Object(_actions_index_js__WEBPACK_IMPORTED_MODULE_4__["redo"])());
    }
  }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
    style: Object(ramda__WEBPACK_IMPORTED_MODULE_3__["mergeRight"])({
      transform: 'rotate(90deg)'
    }, styles.iconStyle)
  }, "\u21BB"), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
    style: styles.labelStyle
  }, "redo"));
  return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
    className: "_dash-undo-redo",
    style: {
      position: 'fixed',
      bottom: '30px',
      left: '30px',
      fontSize: '20px',
      textAlign: 'center',
      zIndex: '9999',
      backgroundColor: 'rgba(255, 255, 255, 0.9)'
    }
  }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
    style: {
      position: 'relative'
    }
  }, history.past.length > 0 ? undoLink : null, history.future.length > 0 ? redoLink : null));
}

UnconnectedToolbar.propTypes = {
  history: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object,
  dispatch: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func
};
var Toolbar = Object(react_redux__WEBPACK_IMPORTED_MODULE_0__["connect"])(function (state) {
  return {
    history: state.history
  };
}, function (dispatch) {
  return {
    dispatch: dispatch
  };
})(Object(radium__WEBPACK_IMPORTED_MODULE_5__["default"])(UnconnectedToolbar));
/* harmony default export */ __webpack_exports__["default"] = (Toolbar);

/***/ }),

/***/ "./src/components/error/CallbackGraph/CallbackGraphContainer.css":
/*!***********************************************************************!*\
  !*** ./src/components/error/CallbackGraph/CallbackGraphContainer.css ***!
  \***********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js!./CallbackGraphContainer.css */ "./node_modules/css-loader/dist/cjs.js!./src/components/error/CallbackGraph/CallbackGraphContainer.css");

if (typeof content === 'string') {
  content = [[module.i, content, '']];
}

var options = {}

options.insert = "head";
options.singleton = false;

var update = __webpack_require__(/*! ../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js")(content, options);

if (content.locals) {
  module.exports = content.locals;
}


/***/ }),

/***/ "./src/components/error/CallbackGraph/CallbackGraphContainer.react.js":
/*!****************************************************************************!*\
  !*** ./src/components/error/CallbackGraph/CallbackGraphContainer.react.js ***!
  \****************************************************************************/
/*! exports provided: CallbackGraphContainer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CallbackGraphContainer", function() { return CallbackGraphContainer; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _CallbackGraphContainer_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CallbackGraphContainer.css */ "./src/components/error/CallbackGraph/CallbackGraphContainer.css");
/* harmony import */ var _CallbackGraphContainer_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_CallbackGraphContainer_css__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var viz_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! viz.js */ "./node_modules/viz.js/viz.js");
/* harmony import */ var viz_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(viz_js__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "prop-types");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }

function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }






var CallbackGraphContainer =
/*#__PURE__*/
function (_Component) {
  _inherits(CallbackGraphContainer, _Component);

  function CallbackGraphContainer(props) {
    _classCallCheck(this, CallbackGraphContainer);

    return _possibleConstructorReturn(this, _getPrototypeOf(CallbackGraphContainer).call(this, props));
  }

  _createClass(CallbackGraphContainer, [{
    key: "render",
    value: function render() {
      var dependenciesRequest = this.props.dependenciesRequest;
      var elements = {};
      var callbacks = [];
      var links = dependenciesRequest.content.map(function (_ref, i) {
        var inputs = _ref.inputs,
            output = _ref.output;
        callbacks.push("cb".concat(i, ";"));

        function recordAndReturn(_ref2) {
          var _ref3 = _slicedToArray(_ref2, 2),
              id = _ref3[0],
              property = _ref3[1];

          elements[id] = elements[id] || {};
          elements[id][property] = true;
          return "\"".concat(id, ".").concat(property, "\"");
        }

        var out_nodes = output.replace(/^\.\./, '').replace(/\.\.$/, '').split('...').map(function (o) {
          return recordAndReturn(o.split('.'));
        }).join(', ');
        var in_nodes = inputs.map(function (_ref4) {
          var id = _ref4.id,
              property = _ref4.property;
          return recordAndReturn([id, property]);
        }).join(', ');
        return "{".concat(in_nodes, "} -> cb").concat(i, " -> {").concat(out_nodes, "};");
      });
      var dot = "digraph G {\n            overlap = false; fontname=\"Arial\"; fontcolor=\"#333333\";\n            edge [color=\"#888888\"];\n            node [shape=box, fontname=\"Arial\", style=filled, color=\"#109DFF\", fontcolor=white];\n            graph [penwidth=0];\n            subgraph callbacks {\n                node [shape=circle, width=0.3, label=\"\", color=\"#00CC96\"];\n                ".concat(callbacks.join('\n'), " }\n\n            ").concat(Object.entries(elements).map(function (_ref5, i) {
        var _ref6 = _slicedToArray(_ref5, 2),
            id = _ref6[0],
            props = _ref6[1];

        return "\n                subgraph cluster_".concat(i, " {\n                    bgcolor=\"#B9C2CE\";\n                    ").concat(Object.keys(props).map(function (p) {
          return "\"".concat(id, ".").concat(p, "\" [label=\"").concat(p, "\"];");
        }).join('\n'), "\n                    label = \"").concat(id, "\"; }");
      }).join('\n'), "\n\n            ").concat(links.join('\n'), " }");
      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
        className: "dash-callback-dag--container",
        dangerouslySetInnerHTML: {
          __html: viz_js__WEBPACK_IMPORTED_MODULE_2___default()(dot, {
            format: 'svg'
          })
        }
      });
    }
  }]);

  return CallbackGraphContainer;
}(react__WEBPACK_IMPORTED_MODULE_0__["Component"]);

CallbackGraphContainer.propTypes = {
  dependenciesRequest: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object
};


/***/ }),

/***/ "./src/components/error/ComponentErrorBoundary.react.js":
/*!**************************************************************!*\
  !*** ./src/components/error/ComponentErrorBoundary.react.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/lib/index.js");
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "prop-types");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var radium__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! radium */ "./node_modules/radium/es/index.js");
/* harmony import */ var uniqid__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! uniqid */ "./node_modules/uniqid/index.js");
/* harmony import */ var uniqid__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(uniqid__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _actions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../actions */ "./src/actions/index.js");
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }








var UnconnectedComponentErrorBoundary =
/*#__PURE__*/
function (_Component) {
  _inherits(UnconnectedComponentErrorBoundary, _Component);

  function UnconnectedComponentErrorBoundary(props) {
    var _this;

    _classCallCheck(this, UnconnectedComponentErrorBoundary);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(UnconnectedComponentErrorBoundary).call(this, props));
    _this.state = {
      myID: props.componentId,
      myUID: uniqid__WEBPACK_IMPORTED_MODULE_4___default()(),
      oldChildren: null,
      hasError: false
    };
    return _this;
  }

  _createClass(UnconnectedComponentErrorBoundary, [{
    key: "componentDidCatch",
    value: function componentDidCatch(error, info) {
      var dispatch = this.props.dispatch;
      dispatch(Object(_actions__WEBPACK_IMPORTED_MODULE_5__["onError"])({
        myUID: this.state.myUID,
        myID: this.state.myID,
        type: 'frontEnd',
        error: error,
        info: info
      }));
      dispatch(_actions__WEBPACK_IMPORTED_MODULE_5__["revert"]);
    }
    /* eslint-disable react/no-did-update-set-state */

  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate(prevProps, prevState) {
      var prevChildren = prevProps.children;

      if (!this.state.hasError && prevChildren !== prevState.oldChildren && prevChildren !== this.props.children) {
        this.setState({
          oldChildren: prevChildren
        });
      }
    }
    /* eslint-enable react/no-did-update-set-state */

  }, {
    key: "render",
    value: function render() {
      var _this$state = this.state,
          hasError = _this$state.hasError,
          oldChildren = _this$state.oldChildren;
      return hasError ? oldChildren : this.props.children;
    }
  }], [{
    key: "getDerivedStateFromError",
    value: function getDerivedStateFromError(_) {
      return {
        hasError: true
      };
    }
  }]);

  return UnconnectedComponentErrorBoundary;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]);

UnconnectedComponentErrorBoundary.propTypes = {
  children: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object,
  componentId: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.string,
  error: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object,
  dispatch: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func
};
var ComponentErrorBoundary = Object(react_redux__WEBPACK_IMPORTED_MODULE_0__["connect"])(function (state) {
  return {
    error: state.error
  };
}, function (dispatch) {
  return {
    dispatch: dispatch
  };
})(Object(radium__WEBPACK_IMPORTED_MODULE_3__["default"])(UnconnectedComponentErrorBoundary));
/* harmony default export */ __webpack_exports__["default"] = (ComponentErrorBoundary);

/***/ }),

/***/ "./src/components/error/FrontEnd/FrontEndError.css":
/*!*********************************************************!*\
  !*** ./src/components/error/FrontEnd/FrontEndError.css ***!
  \*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js!./FrontEndError.css */ "./node_modules/css-loader/dist/cjs.js!./src/components/error/FrontEnd/FrontEndError.css");

if (typeof content === 'string') {
  content = [[module.i, content, '']];
}

var options = {}

options.insert = "head";
options.singleton = false;

var update = __webpack_require__(/*! ../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js")(content, options);

if (content.locals) {
  module.exports = content.locals;
}


/***/ }),

/***/ "./src/components/error/FrontEnd/FrontEndError.react.js":
/*!**************************************************************!*\
  !*** ./src/components/error/FrontEnd/FrontEndError.react.js ***!
  \**************************************************************/
/*! exports provided: FrontEndError */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FrontEndError", function() { return FrontEndError; });
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/lib/index.js");
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _FrontEndError_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FrontEndError.css */ "./src/components/error/FrontEnd/FrontEndError.css");
/* harmony import */ var _FrontEndError_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_FrontEndError_css__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _icons_CollapseIcon_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/CollapseIcon.svg */ "./src/components/error/icons/CollapseIcon.svg");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "prop-types");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _Percy_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Percy.css */ "./src/components/error/Percy.css");
/* harmony import */ var _Percy_css__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_Percy_css__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../utils */ "./src/utils.js");
/* harmony import */ var _werkzeug_css_txt__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../werkzeug.css.txt */ "./src/components/error/werkzeug.css.txt");
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }










var FrontEndError =
/*#__PURE__*/
function (_Component) {
  _inherits(FrontEndError, _Component);

  function FrontEndError(props) {
    var _this;

    _classCallCheck(this, FrontEndError);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(FrontEndError).call(this, props));
    _this.state = {
      collapsed: _this.props.isListItem
    };
    return _this;
  }

  _createClass(FrontEndError, [{
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$props = this.props,
          e = _this$props.e,
          inAlertsTray = _this$props.inAlertsTray;
      var collapsed = this.state.collapsed;
      var cardClasses = 'dash-error-card__content' + (inAlertsTray ? ' dash-error-card--alerts-tray' : '');
      /* eslint-disable no-inline-comments */

      var errorHeader = React.createElement("div", {
        className: "dash-fe-error-top test-devtools-error-toggle",
        onClick: function onClick() {
          return _this2.setState({
            collapsed: !collapsed
          });
        }
      }, React.createElement("span", {
        className: "dash-fe-error-top__group"
      }, "\u26D1\uFE0F", React.createElement("span", {
        className: "dash-fe-error__title"
      }, e.error.message || 'Error')), React.createElement("span", {
        className: "dash-fe-error-top__group"
      }, React.createElement("span", {
        className: "dash-fe-error__timestamp percy-hide"
      }, "".concat(e.timestamp.toLocaleTimeString())), React.createElement("span", {
        className: "dash-fe-error__timestamp percy-show"
      }, "00:00:00 PM"), React.createElement(_icons_CollapseIcon_svg__WEBPACK_IMPORTED_MODULE_3__["default"], {
        className: "dash-fe-error__collapse ".concat(collapsed ? 'dash-fe-error__collapse--flipped' : ''),
        onClick: function onClick() {
          return _this2.setState({
            collapsed: !collapsed
          });
        }
      })));
      /* eslint-enable no-inline-comments */

      return collapsed ? React.createElement("div", {
        className: "dash-error-card__list-item"
      }, errorHeader) : React.createElement("div", {
        className: cardClasses
      }, errorHeader, React.createElement(ErrorContent, {
        error: e.error
      }));
    }
  }]);

  return FrontEndError;
}(react__WEBPACK_IMPORTED_MODULE_2__["Component"]);
/* eslint-disable no-inline-comments, no-magic-numbers */


function UnconnectedErrorContent(_ref) {
  var error = _ref.error,
      base = _ref.base;
  return React.createElement("div", {
    className: "error-container"
  }, typeof error.message !== 'string' || error.message.length < 40 ? null : React.createElement("div", {
    className: "dash-fe-error__st"
  }, React.createElement("div", {
    className: "dash-fe-error__info dash-fe-error__curved"
  }, error.message)), typeof error.stack !== 'string' ? null : React.createElement("div", {
    className: "dash-fe-error__st"
  }, React.createElement("div", {
    className: "dash-fe-error__info"
  }, React.createElement("details", null, React.createElement("summary", null, React.createElement("i", null, "(This error originated from the built-in JavaScript code that runs Dash apps. Click to see the full stack trace or open your browser's console.)")), error.stack.split('\n').map(function (line) {
    return React.createElement("p", null, line);
  })))), typeof error.html !== 'string' ? null : React.createElement("div", {
    className: "dash-be-error__st"
  }, React.createElement("div", {
    className: "dash-backend-error"
  }, React.createElement("iframe", {
    srcDoc: error.html.replace('</head>', "<style type=\"text/css\">".concat(_werkzeug_css_txt__WEBPACK_IMPORTED_MODULE_7__["default"], "</style></head>")).replace('="?__debugger__', "=\"".concat(base, "?__debugger__")),
    style: {
      /*
       * 67px of padding and margin between this
       * iframe and the parent container.
       * 67 was determined manually in the
       * browser's dev tools.
       */
      width: 'calc(600px - 67px)',
      height: '75vh',
      border: 'none'
    }
  }))));
}
/* eslint-enable no-inline-comments, no-magic-numbers */


var errorPropTypes = prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.shape({
  message: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,

  /* front-end error messages */
  stack: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,

  /* backend error messages */
  html: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string
});
UnconnectedErrorContent.propTypes = {
  error: errorPropTypes,
  base: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string
};
var ErrorContent = Object(react_redux__WEBPACK_IMPORTED_MODULE_0__["connect"])(function (state) {
  return {
    base: Object(_utils__WEBPACK_IMPORTED_MODULE_6__["urlBase"])(state.config)
  };
})(UnconnectedErrorContent);
FrontEndError.propTypes = {
  e: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.shape({
    myUID: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,
    timestamp: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,
    error: errorPropTypes
  }),
  inAlertsTray: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,
  isListItem: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool
};
FrontEndError.defaultProps = {
  inAlertsTray: false,
  isListItem: false
};


/***/ }),

/***/ "./src/components/error/FrontEnd/FrontEndErrorContainer.react.js":
/*!***********************************************************************!*\
  !*** ./src/components/error/FrontEnd/FrontEndErrorContainer.react.js ***!
  \***********************************************************************/
/*! exports provided: FrontEndErrorContainer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FrontEndErrorContainer", function() { return FrontEndErrorContainer; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _FrontEndError_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FrontEndError.css */ "./src/components/error/FrontEnd/FrontEndError.css");
/* harmony import */ var _FrontEndError_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_FrontEndError_css__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "prop-types");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _FrontEndError_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./FrontEndError.react */ "./src/components/error/FrontEnd/FrontEndError.react.js");
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }






var FrontEndErrorContainer =
/*#__PURE__*/
function (_Component) {
  _inherits(FrontEndErrorContainer, _Component);

  function FrontEndErrorContainer(props) {
    _classCallCheck(this, FrontEndErrorContainer);

    return _possibleConstructorReturn(this, _getPrototypeOf(FrontEndErrorContainer).call(this, props));
  }

  _createClass(FrontEndErrorContainer, [{
    key: "render",
    value: function render() {
      var errorsLength = this.props.errors.length;

      if (errorsLength === 0) {
        return null;
      }

      var inAlertsTray = this.props.inAlertsTray;
      var cardClasses = 'dash-error-card dash-error-card--container';
      var errorElements = this.props.errors.map(function (error, i) {
        return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FrontEndError_react__WEBPACK_IMPORTED_MODULE_3__["FrontEndError"], {
          e: error,
          isListItem: true,
          key: i
        });
      });

      if (inAlertsTray) {
        cardClasses += ' dash-error-card--alerts-tray';
      }

      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
        className: cardClasses
      }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
        className: "dash-error-card__topbar"
      }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
        className: "dash-error-card__message"
      }, "\uD83D\uDED1 Errors (", react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("strong", {
        className: "test-devtools-error-count"
      }, errorsLength), ")")), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
        className: "dash-error-card__list"
      }, errorElements));
    }
  }]);

  return FrontEndErrorContainer;
}(react__WEBPACK_IMPORTED_MODULE_0__["Component"]);

FrontEndErrorContainer.propTypes = {
  errors: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.array,
  inAlertsTray: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.any
};
FrontEndErrorContainer.propTypes = {
  inAlertsTray: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.any
};


/***/ }),

/***/ "./src/components/error/GlobalErrorContainer.react.js":
/*!************************************************************!*\
  !*** ./src/components/error/GlobalErrorContainer.react.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/lib/index.js");
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "prop-types");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var radium__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! radium */ "./node_modules/radium/es/index.js");
/* harmony import */ var _menu_DebugMenu_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./menu/DebugMenu.react */ "./src/components/error/menu/DebugMenu.react.js");
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }







var UnconnectedGlobalErrorContainer =
/*#__PURE__*/
function (_Component) {
  _inherits(UnconnectedGlobalErrorContainer, _Component);

  function UnconnectedGlobalErrorContainer(props) {
    _classCallCheck(this, UnconnectedGlobalErrorContainer);

    return _possibleConstructorReturn(this, _getPrototypeOf(UnconnectedGlobalErrorContainer).call(this, props));
  }

  _createClass(UnconnectedGlobalErrorContainer, [{
    key: "render",
    value: function render() {
      var _this$props = this.props,
          error = _this$props.error,
          dependenciesRequest = _this$props.dependenciesRequest;
      return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
        id: "_dash-global-error-container"
      }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_menu_DebugMenu_react__WEBPACK_IMPORTED_MODULE_4__["DebugMenu"], {
        error: error,
        dependenciesRequest: dependenciesRequest
      }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
        id: "_dash-app-content"
      }, this.props.children)));
    }
  }]);

  return UnconnectedGlobalErrorContainer;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]);

UnconnectedGlobalErrorContainer.propTypes = {
  children: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object,
  error: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object,
  dependenciesRequest: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object
};
var GlobalErrorContainer = Object(react_redux__WEBPACK_IMPORTED_MODULE_0__["connect"])(function (state) {
  return {
    error: state.error,
    dependenciesRequest: state.dependenciesRequest
  };
})(Object(radium__WEBPACK_IMPORTED_MODULE_3__["default"])(UnconnectedGlobalErrorContainer));
/* harmony default export */ __webpack_exports__["default"] = (GlobalErrorContainer);

/***/ }),

/***/ "./src/components/error/GlobalErrorOverlay.css":
/*!*****************************************************!*\
  !*** ./src/components/error/GlobalErrorOverlay.css ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var content = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!./GlobalErrorOverlay.css */ "./node_modules/css-loader/dist/cjs.js!./src/components/error/GlobalErrorOverlay.css");

if (typeof content === 'string') {
  content = [[module.i, content, '']];
}

var options = {}

options.insert = "head";
options.singleton = false;

var update = __webpack_require__(/*! ../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js")(content, options);

if (content.locals) {
  module.exports = content.locals;
}


/***/ }),

/***/ "./src/components/error/GlobalErrorOverlay.react.js":
/*!**********************************************************!*\
  !*** ./src/components/error/GlobalErrorOverlay.react.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return GlobalErrorOverlay; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "prop-types");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ramda */ "./node_modules/ramda/es/index.js");
/* harmony import */ var _GlobalErrorOverlay_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./GlobalErrorOverlay.css */ "./src/components/error/GlobalErrorOverlay.css");
/* harmony import */ var _GlobalErrorOverlay_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_GlobalErrorOverlay_css__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _FrontEnd_FrontEndErrorContainer_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./FrontEnd/FrontEndErrorContainer.react */ "./src/components/error/FrontEnd/FrontEndErrorContainer.react.js");
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }







var GlobalErrorOverlay =
/*#__PURE__*/
function (_Component) {
  _inherits(GlobalErrorOverlay, _Component);

  function GlobalErrorOverlay(props) {
    _classCallCheck(this, GlobalErrorOverlay);

    return _possibleConstructorReturn(this, _getPrototypeOf(GlobalErrorOverlay).call(this, props));
  }

  _createClass(GlobalErrorOverlay, [{
    key: "render",
    value: function render() {
      var _this$props = this.props,
          visible = _this$props.visible,
          error = _this$props.error,
          toastsEnabled = _this$props.toastsEnabled;
      var frontEndErrors;

      if (toastsEnabled) {
        var errors = Object(ramda__WEBPACK_IMPORTED_MODULE_2__["concat"])(error.frontEnd, error.backEnd);
        frontEndErrors = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FrontEnd_FrontEndErrorContainer_react__WEBPACK_IMPORTED_MODULE_4__["FrontEndErrorContainer"], {
          errors: errors
        });
      }

      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", null, this.props.children), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
        className: "dash-error-menu"
      }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
        className: visible ? 'dash-fe-errors' : ''
      }, frontEndErrors)));
    }
  }]);

  return GlobalErrorOverlay;
}(react__WEBPACK_IMPORTED_MODULE_0__["Component"]);


GlobalErrorOverlay.propTypes = {
  children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object,
  visible: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,
  error: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object,
  toastsEnabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any
};

/***/ }),

/***/ "./src/components/error/Percy.css":
/*!****************************************!*\
  !*** ./src/components/error/Percy.css ***!
  \****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var content = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!./Percy.css */ "./node_modules/css-loader/dist/cjs.js!./src/components/error/Percy.css");

if (typeof content === 'string') {
  content = [[module.i, content, '']];
}

var options = {}

options.insert = "head";
options.singleton = false;

var update = __webpack_require__(/*! ../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js")(content, options);

if (content.locals) {
  module.exports = content.locals;
}


/***/ }),

/***/ "./src/components/error/icons/BellIcon.svg":
/*!*************************************************!*\
  !*** ./src/components/error/icons/BellIcon.svg ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }



var _ref =
/*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  d: "M8.107 2.44L6.2.533C3 2.973.893 6.733.707 11h2.666a11.26 11.26 0 014.734-8.56zM24.627 11h2.666c-.2-4.267-2.306-8.027-5.493-10.467L19.907 2.44a11.327 11.327 0 014.72 8.56zM22 11.667c0-4.094-2.187-7.52-6-8.427V.333h-4V3.24c-3.827.907-6 4.32-6 8.427v6.666L3.333 21v1.333h21.333V21L22 18.333v-6.666zm-8 14.666c.187 0 .36-.013.533-.053a2.705 2.705 0 001.92-1.573c.134-.32.2-.667.2-1.04H11.32A2.686 2.686 0 0014 26.333z",
  fill: "#fff"
});

var SvgBellIcon = function SvgBellIcon(props) {
  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", _extends({
    width: 28,
    height: 27,
    fill: "none"
  }, props), _ref);
};

/* harmony default export */ __webpack_exports__["default"] = (SvgBellIcon);

/***/ }),

/***/ "./src/components/error/icons/BellIconGrey.svg":
/*!*****************************************************!*\
  !*** ./src/components/error/icons/BellIconGrey.svg ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }



var _ref =
/*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  d: "M8.107 2.44L6.2.533C3 2.973.893 6.733.707 11h2.666a11.26 11.26 0 014.734-8.56zM24.627 11h2.666c-.2-4.267-2.306-8.027-5.493-10.467L19.907 2.44a11.327 11.327 0 014.72 8.56zM22 11.667c0-4.094-2.187-7.52-6-8.427V.333h-4V3.24c-3.827.907-6 4.32-6 8.427v6.666L3.333 21v1.333h21.333V21L22 18.333v-6.666zm-8 14.666c.187 0 .36-.013.533-.053a2.705 2.705 0 001.92-1.573c.134-.32.2-.667.2-1.04H11.32A2.686 2.686 0 0014 26.333z",
  fill: "#B9C2CE"
});

var SvgBellIconGrey = function SvgBellIconGrey(props) {
  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", _extends({
    width: 28,
    height: 27,
    fill: "none"
  }, props), _ref);
};

/* harmony default export */ __webpack_exports__["default"] = (SvgBellIconGrey);

/***/ }),

/***/ "./src/components/error/icons/CollapseIcon.svg":
/*!*****************************************************!*\
  !*** ./src/components/error/icons/CollapseIcon.svg ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }



var _ref =
/*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  d: "M1 1l4 4 4-4",
  stroke: "#A2B1C6"
});

var SvgCollapseIcon = function SvgCollapseIcon(props) {
  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", _extends({
    width: 10,
    height: 6,
    fill: "none"
  }, props), _ref);
};

/* harmony default export */ __webpack_exports__["default"] = (SvgCollapseIcon);

/***/ }),

/***/ "./src/components/error/icons/DebugIcon.svg":
/*!**************************************************!*\
  !*** ./src/components/error/icons/DebugIcon.svg ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }



var _ref =
/*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  d: "M14.85 21.197L5.616 12l9.225-9.197L12.028 0 0 12l12.037 12 2.813-2.803zm12.3 0L36.375 12 27.15 2.803 29.963 0 42 12 29.962 24l-2.812-2.803z",
  fill: "#fff"
});

var SvgDebugIcon = function SvgDebugIcon(props) {
  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", _extends({
    width: 42,
    height: 24,
    fill: "none"
  }, props), _ref);
};

/* harmony default export */ __webpack_exports__["default"] = (SvgDebugIcon);

/***/ }),

/***/ "./src/components/error/icons/ErrorIconWhite.svg":
/*!*******************************************************!*\
  !*** ./src/components/error/icons/ErrorIconWhite.svg ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }



var _ref =
/*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fillRule: "evenodd",
  clipRule: "evenodd",
  d: "M0 4a4 4 0 118 0 4 4 0 11-8 0zm5.44 2L6 5.44 4.56 4 6 2.56 5.44 2 4 3.44 2.56 2 2 2.56 3.44 4 2 5.44l.56.56L4 4.56 5.44 6z",
  fill: "#fff"
});

var SvgErrorIconWhite = function SvgErrorIconWhite(props) {
  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", _extends({
    viewBox: "0 0 8 8",
    fill: "none"
  }, props), _ref);
};

/* harmony default export */ __webpack_exports__["default"] = (SvgErrorIconWhite);

/***/ }),

/***/ "./src/components/error/icons/GraphIcon.svg":
/*!**************************************************!*\
  !*** ./src/components/error/icons/GraphIcon.svg ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }



var _ref =
/*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  d: "M18.103 17.005c-.908 0-1.756.302-2.362.905l-8.657-5.005c.06-.302.12-.543.12-.845 0-.301-.06-.543-.12-.844l8.537-4.944a3.644 3.644 0 002.482.964c1.998 0 3.633-1.628 3.633-3.618S20.1 0 18.103 0 14.47 1.628 14.47 3.618c0 .302.06.543.122.845L6.055 9.407a3.644 3.644 0 00-2.483-.965C1.574 8.442 0 10.071 0 12.06c0 1.99 1.635 3.618 3.633 3.618.968 0 1.816-.361 2.482-.964l8.598 5.005c-.061.24-.121.482-.121.784A3.507 3.507 0 0018.102 24a3.507 3.507 0 003.511-3.497 3.507 3.507 0 00-3.51-3.498z",
  fill: "#fff"
});

var SvgGraphIcon = function SvgGraphIcon(props) {
  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", _extends({
    width: 22,
    height: 24,
    fill: "none"
  }, props), _ref);
};

/* harmony default export */ __webpack_exports__["default"] = (SvgGraphIcon);

/***/ }),

/***/ "./src/components/error/icons/GraphIconGrey.svg":
/*!******************************************************!*\
  !*** ./src/components/error/icons/GraphIconGrey.svg ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }



var _ref =
/*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  d: "M18.103 17.005c-.908 0-1.756.302-2.362.905l-8.657-5.005c.06-.302.12-.543.12-.845 0-.301-.06-.543-.12-.844l8.537-4.944a3.644 3.644 0 002.482.964c1.998 0 3.633-1.628 3.633-3.618S20.1 0 18.103 0 14.47 1.628 14.47 3.618c0 .302.06.543.122.845L6.055 9.407a3.644 3.644 0 00-2.483-.965C1.574 8.442 0 10.071 0 12.06c0 1.99 1.635 3.618 3.633 3.618.968 0 1.816-.361 2.482-.964l8.598 5.005c-.061.24-.121.482-.121.784A3.507 3.507 0 0018.102 24a3.507 3.507 0 003.511-3.497 3.507 3.507 0 00-3.51-3.498z",
  fill: "#B9C2CE"
});

var SvgGraphIconGrey = function SvgGraphIconGrey(props) {
  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", _extends({
    width: 22,
    height: 24,
    fill: "none"
  }, props), _ref);
};

/* harmony default export */ __webpack_exports__["default"] = (SvgGraphIconGrey);

/***/ }),

/***/ "./src/components/error/icons/WhiteCloseIcon.svg":
/*!*******************************************************!*\
  !*** ./src/components/error/icons/WhiteCloseIcon.svg ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }



var _ref =
/*#__PURE__*/
react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  d: "M1 1l12 12m0-12L1 13",
  stroke: "#fff",
  strokeWidth: 2
});

var SvgWhiteCloseIcon = function SvgWhiteCloseIcon(props) {
  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", _extends({
    viewBox: "0 0 14 14",
    fill: "none"
  }, props), _ref);
};

/* harmony default export */ __webpack_exports__["default"] = (SvgWhiteCloseIcon);

/***/ }),

/***/ "./src/components/error/menu/DebugAlertContainer.css":
/*!***********************************************************!*\
  !*** ./src/components/error/menu/DebugAlertContainer.css ***!
  \***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js!./DebugAlertContainer.css */ "./node_modules/css-loader/dist/cjs.js!./src/components/error/menu/DebugAlertContainer.css");

if (typeof content === 'string') {
  content = [[module.i, content, '']];
}

var options = {}

options.insert = "head";
options.singleton = false;

var update = __webpack_require__(/*! ../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js")(content, options);

if (content.locals) {
  module.exports = content.locals;
}


/***/ }),

/***/ "./src/components/error/menu/DebugAlertContainer.react.js":
/*!****************************************************************!*\
  !*** ./src/components/error/menu/DebugAlertContainer.react.js ***!
  \****************************************************************/
/*! exports provided: DebugAlertContainer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DebugAlertContainer", function() { return DebugAlertContainer; });
/* harmony import */ var _DebugAlertContainer_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DebugAlertContainer.css */ "./src/components/error/menu/DebugAlertContainer.css");
/* harmony import */ var _DebugAlertContainer_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_DebugAlertContainer_css__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "prop-types");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _icons_ErrorIconWhite_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/ErrorIconWhite.svg */ "./src/components/error/icons/ErrorIconWhite.svg");
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }






var DebugAlertContainer =
/*#__PURE__*/
function (_Component) {
  _inherits(DebugAlertContainer, _Component);

  function DebugAlertContainer(props) {
    _classCallCheck(this, DebugAlertContainer);

    return _possibleConstructorReturn(this, _getPrototypeOf(DebugAlertContainer).call(this, props));
  }

  _createClass(DebugAlertContainer, [{
    key: "render",
    value: function render() {
      var alertsOpened = this.props.alertsOpened;
      return React.createElement("div", {
        className: "dash-debug-alert-container".concat(alertsOpened ? ' dash-debug-alert-container--opened' : ''),
        onClick: this.props.onClick
      }, React.createElement("div", {
        className: "dash-debug-alert"
      }, alertsOpened ? React.createElement(_icons_ErrorIconWhite_svg__WEBPACK_IMPORTED_MODULE_3__["default"], {
        className: "dash-debug-alert-container__icon"
      }) : '🛑 ', this.props.errors.length));
    }
  }]);

  return DebugAlertContainer;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]);

DebugAlertContainer.propTypes = {
  errors: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object,
  alertsOpened: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,
  onClick: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func
};


/***/ }),

/***/ "./src/components/error/menu/DebugMenu.css":
/*!*************************************************!*\
  !*** ./src/components/error/menu/DebugMenu.css ***!
  \*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

var content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js!./DebugMenu.css */ "./node_modules/css-loader/dist/cjs.js!./src/components/error/menu/DebugMenu.css");

if (typeof content === 'string') {
  content = [[module.i, content, '']];
}

var options = {}

options.insert = "head";
options.singleton = false;

var update = __webpack_require__(/*! ../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js")(content, options);

if (content.locals) {
  module.exports = content.locals;
}


/***/ }),

/***/ "./src/components/error/menu/DebugMenu.react.js":
/*!******************************************************!*\
  !*** ./src/components/error/menu/DebugMenu.react.js ***!
  \******************************************************/
/*! exports provided: DebugMenu */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DebugMenu", function() { return DebugMenu; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ramda */ "./node_modules/ramda/es/index.js");
/* harmony import */ var _DebugMenu_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./DebugMenu.css */ "./src/components/error/menu/DebugMenu.css");
/* harmony import */ var _DebugMenu_css__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_DebugMenu_css__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _icons_DebugIcon_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/DebugIcon.svg */ "./src/components/error/icons/DebugIcon.svg");
/* harmony import */ var _icons_WhiteCloseIcon_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/WhiteCloseIcon.svg */ "./src/components/error/icons/WhiteCloseIcon.svg");
/* harmony import */ var _icons_BellIcon_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../icons/BellIcon.svg */ "./src/components/error/icons/BellIcon.svg");
/* harmony import */ var _icons_BellIconGrey_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../icons/BellIconGrey.svg */ "./src/components/error/icons/BellIconGrey.svg");
/* harmony import */ var _icons_GraphIcon_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../icons/GraphIcon.svg */ "./src/components/error/icons/GraphIcon.svg");
/* harmony import */ var _icons_GraphIconGrey_svg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../icons/GraphIconGrey.svg */ "./src/components/error/icons/GraphIconGrey.svg");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! prop-types */ "prop-types");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var _DebugAlertContainer_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./DebugAlertContainer.react */ "./src/components/error/menu/DebugAlertContainer.react.js");
/* harmony import */ var _GlobalErrorOverlay_react__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../GlobalErrorOverlay.react */ "./src/components/error/GlobalErrorOverlay.react.js");
/* harmony import */ var _CallbackGraph_CallbackGraphContainer_react__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../CallbackGraph/CallbackGraphContainer.react */ "./src/components/error/CallbackGraph/CallbackGraphContainer.react.js");
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }















var DebugMenu =
/*#__PURE__*/
function (_Component) {
  _inherits(DebugMenu, _Component);

  function DebugMenu(props) {
    var _this;

    _classCallCheck(this, DebugMenu);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(DebugMenu).call(this, props));
    _this.state = {
      opened: false,
      alertsOpened: false,
      callbackGraphOpened: false,
      toastsEnabled: true
    };
    return _this;
  }

  _createClass(DebugMenu, [{
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$state = this.state,
          opened = _this$state.opened,
          alertsOpened = _this$state.alertsOpened,
          toastsEnabled = _this$state.toastsEnabled,
          callbackGraphOpened = _this$state.callbackGraphOpened;
      var _this$props = this.props,
          error = _this$props.error,
          dependenciesRequest = _this$props.dependenciesRequest;
      var menuClasses = opened ? 'dash-debug-menu dash-debug-menu--opened' : 'dash-debug-menu dash-debug-menu--closed';
      var menuContent = opened ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
        className: "dash-debug-menu__content"
      }, callbackGraphOpened ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_CallbackGraph_CallbackGraphContainer_react__WEBPACK_IMPORTED_MODULE_12__["CallbackGraphContainer"], {
        dependenciesRequest: dependenciesRequest
      }) : null, error.frontEnd.length > 0 || error.backEnd.length > 0 ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
        className: "dash-debug-menu__button-container"
      }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_DebugAlertContainer_react__WEBPACK_IMPORTED_MODULE_10__["DebugAlertContainer"], {
        errors: Object(ramda__WEBPACK_IMPORTED_MODULE_1__["concat"])(error.frontEnd, error.backEnd),
        alertsOpened: alertsOpened,
        onClick: function onClick() {
          return _this2.setState({
            alertsOpened: !alertsOpened
          });
        }
      })) : null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
        className: "dash-debug-menu__button-container"
      }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
        className: "dash-debug-menu__button ".concat(callbackGraphOpened ? 'dash-debug-menu__button--enabled' : ''),
        onClick: function onClick() {
          return _this2.setState({
            callbackGraphOpened: !callbackGraphOpened
          });
        }
      }, callbackGraphOpened ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_icons_GraphIcon_svg__WEBPACK_IMPORTED_MODULE_7__["default"], {
        className: "dash-debug-menu__icon dash-debug-menu__icon--graph"
      }) : react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_icons_GraphIconGrey_svg__WEBPACK_IMPORTED_MODULE_8__["default"], {
        className: "dash-debug-menu__icon dash-debug-menu__icon--bell"
      })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("label", {
        className: "dash-debug-menu__button-label"
      }, "Callback Graph")), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
        className: "dash-debug-menu__button-container"
      }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
        className: "dash-debug-menu__button ".concat(toastsEnabled ? 'dash-debug-menu__button--enabled' : ''),
        onClick: function onClick() {
          return _this2.setState({
            toastsEnabled: !toastsEnabled
          });
        }
      }, toastsEnabled ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_icons_BellIcon_svg__WEBPACK_IMPORTED_MODULE_5__["default"], {
        className: "dash-debug-menu__icon dash-debug-menu__icon--bell"
      }) : react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_icons_BellIconGrey_svg__WEBPACK_IMPORTED_MODULE_6__["default"], {
        className: "dash-debug-menu__icon dash-debug-menu__icon--bell"
      })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("label", {
        className: "dash-debug-menu__button-label"
      }, "Errors")), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
        className: "dash-debug-menu__button-container"
      }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
        className: "dash-debug-menu__button dash-debug-menu__button--small",
        onClick: function onClick(e) {
          e.stopPropagation();

          _this2.setState({
            opened: false
          });
        }
      }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_icons_WhiteCloseIcon_svg__WEBPACK_IMPORTED_MODULE_4__["default"], {
        className: "dash-debug-menu__icon--close"
      })))) : react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_icons_DebugIcon_svg__WEBPACK_IMPORTED_MODULE_3__["default"], {
        className: "dash-debug-menu__icon dash-debug-menu__icon--debug"
      });
      var alertsLabel = error.frontEnd.length + error.backEnd.length > 0 && !opened ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
        className: "dash-debug-alert-label"
      }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
        className: "dash-debug-alert"
      }, "\uD83D\uDED1 \xA0", error.frontEnd.length + error.backEnd.length)) : null;
      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", null, alertsLabel, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
        className: menuClasses,
        onClick: function onClick() {
          return _this2.setState({
            opened: true
          });
        }
      }, menuContent), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_GlobalErrorOverlay_react__WEBPACK_IMPORTED_MODULE_11__["default"], {
        error: error,
        visible: !(Object(ramda__WEBPACK_IMPORTED_MODULE_1__["isEmpty"])(error.backEnd) && Object(ramda__WEBPACK_IMPORTED_MODULE_1__["isEmpty"])(error.frontEnd)),
        toastsEnabled: toastsEnabled
      }, this.props.children));
    }
  }]);

  return DebugMenu;
}(react__WEBPACK_IMPORTED_MODULE_0__["Component"]);

DebugMenu.propTypes = {
  children: prop_types__WEBPACK_IMPORTED_MODULE_9___default.a.object,
  error: prop_types__WEBPACK_IMPORTED_MODULE_9___default.a.object,
  dependenciesRequest: prop_types__WEBPACK_IMPORTED_MODULE_9___default.a.object
};


/***/ }),

/***/ "./src/components/error/werkzeug.css.txt":
/*!***********************************************!*\
  !*** ./src/components/error/werkzeug.css.txt ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("body {\n    margin: 0px;\n    margin-top: 10px;\n}\n\n.error-container {\n    font-family: Roboto;\n}\n\n.traceback {\n    background-color: white;\n    border: 2px solid #dfe8f3;\n    border-radius: 0px 0px 4px 4px;\n    color: #506784;\n}\n\nh2.traceback {\n    background-color: #f3f6fa;\n    border: 2px solid #dfe8f3;\n    border-bottom: 0px;\n    box-sizing: border-box;\n    border-radius: 4px 4px 0px 0px;\n    color: #506784;\n}\n\nh2.traceback em {\n    color: #506784;\n    font-weight: 100;\n}\n\n.traceback pre, .debugger textarea {\n    background-color: #F3F6FA;\n}\n\n.debugger h1 {\n    color: #506784;\n    font-family: Roboto;\n}\n\n.explanation {\n    color: #A2B1C6;\n}\n\n/* Hide the Don't Panic! footer */\n.debugger .footer {\n    display: none;\n}\n\n/* Hide all of the Dash traceback stuff that leads up to the call */\n.line.before {\n    display: none;\n}\n\ndiv.debugger {\n    padding: 0px;\n}\n\n.debugger h1 {\n    display: none;\n}\n\n.debugger .errormsg {\n    margin: 0;\n    color: #506784;\n    font-size: 16px;\n    background-color: #f3f6fa;\n    border: 2px solid #dfe8f3;\n    box-sizing: border-box;\n    border-radius: 4px;\n    padding: 10px;\n}\n\n.debugger .pastemessage input {\n    display: none;\n}\n\n.debugger .explanation {\n    display: none;\n}\n\n.debugger div.plain {\n    border-radius: 4px;\n    border-width: 2px;\n    color: #506784;\n}\n\n.plain {\n    display: block !important;\n}\n.plain > form > p {\n    display: none;\n}\n.plain pre {\n    padding: 15px !important;\n    overflow-x: scroll;\n}\n\n.debugger div.traceback pre {\n    cursor: default;\n}\n\n.debugger .traceback .source pre.line img {\n    display: none;\n}\n");

/***/ }),

/***/ "./src/constants/constants.js":
/*!************************************!*\
  !*** ./src/constants/constants.js ***!
  \************************************/
/*! exports provided: REDIRECT_URI_PATHNAME, OAUTH_COOKIE_NAME, STATUS */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "REDIRECT_URI_PATHNAME", function() { return REDIRECT_URI_PATHNAME; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OAUTH_COOKIE_NAME", function() { return OAUTH_COOKIE_NAME; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "STATUS", function() { return STATUS; });
var REDIRECT_URI_PATHNAME = '/_oauth2/callback';
var OAUTH_COOKIE_NAME = 'plotly_oauth_token';
var STATUS = {
  OK: 200,
  PREVENT_UPDATE: 204,
  CLIENTSIDE_ERROR: 'CLIENTSIDE_ERROR'
};

/***/ }),

/***/ "./src/exceptions.js":
/*!***************************!*\
  !*** ./src/exceptions.js ***!
  \***************************/
/*! exports provided: propTypeErrorHandler */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "propTypeErrorHandler", function() { return propTypeErrorHandler; });
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ramda */ "./node_modules/ramda/es/index.js");

function propTypeErrorHandler(message, props, type) {
  /*
   * propType error messages are constructed in
   * https://github.com/facebook/prop-types/blob/v15.7.2/factoryWithTypeCheckers.js
   * (Version 15.7.2)
   *
   * Parse these exception objects to remove JS source code and improve
   * the clarity.
   *
   * If wrong prop type was passed in, message looks like:
   *
   * Error: "Failed component prop type: Invalid component prop `animate` of type `number` supplied to `function GraphWithDefaults(props) {
   *   var id = props.id ? props.id : generateId();
   *   return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(PlotlyGraph, _extends({}, props, {
   *     id: id
   *   }));
   * }`, expected `boolean`."
   *
   *
   * If a required prop type was omitted, message looks like:
   *
   * "Failed component prop type: The component prop `options[0].value` is marked as required in `function Checklist(props) {
   *    var _this;
   *
   *    _classCallCheck(this, Checklist);
   *
   *     _this = _possibleConstructorReturn(this, _getPrototypeOf(Checklist).call(this, props));
   *     _this.state = {
   *       values: props.values
   *     };
   *     return _this;
   *   }`, but its value is `undefined`."
   *
   */
  var messageParts = message.split('`');
  var errorMessage;

  if (Object(ramda__WEBPACK_IMPORTED_MODULE_0__["includes"])('is marked as required', message)) {
    var invalidPropPath = messageParts[1];
    errorMessage = "".concat(invalidPropPath, " in ").concat(type);

    if (props.id) {
      errorMessage += " with ID \"".concat(props.id, "\"");
    }

    errorMessage += " is required but it was not provided.";
  } else if (Object(ramda__WEBPACK_IMPORTED_MODULE_0__["includes"])('Bad object', message)) {
    /*
     * Handle .exact errors
     * https://github.com/facebook/prop-types/blob/v15.7.2/factoryWithTypeCheckers.js#L438-L442
     */
    errorMessage = message.split('supplied to ')[0] + "supplied to ".concat(type) + '.\nBad' + message.split('.\nBad')[1];
  } else if (Object(ramda__WEBPACK_IMPORTED_MODULE_0__["includes"])('Invalid ', message) && Object(ramda__WEBPACK_IMPORTED_MODULE_0__["includes"])(' supplied to ', message)) {
    var _invalidPropPath = messageParts[1];
    errorMessage = "Invalid argument `".concat(_invalidPropPath, "` passed into ").concat(type);

    if (props.id) {
      errorMessage += " with ID \"".concat(props.id, "\"");
    }

    errorMessage += '.';
    /*
     * Not all error messages include the expected value.
     * In particular, oneOfType.
     * https://github.com/facebook/prop-types/blob/v15.7.2/factoryWithTypeCheckers.js#L388
     */

    if (Object(ramda__WEBPACK_IMPORTED_MODULE_0__["includes"])(', expected ', message)) {
      var expectedPropType = message.split(', expected ')[1];
      errorMessage += "\nExpected ".concat(expectedPropType);
    }
    /*
     * Not all error messages include the type
     * In particular, oneOfType.
     * https://github.com/facebook/prop-types/blob/v15.7.2/factoryWithTypeCheckers.js#L388
     */


    if (Object(ramda__WEBPACK_IMPORTED_MODULE_0__["includes"])(' of type `', message)) {
      var invalidPropTypeProvided = message.split(' of type `')[1].split('`')[0];
      errorMessage += "\nWas supplied type `".concat(invalidPropTypeProvided, "`.");
    }

    if (Object(ramda__WEBPACK_IMPORTED_MODULE_0__["has"])(_invalidPropPath, props)) {
      /*
       * invalidPropPath may be nested like `options[0].value`.
       * For now, we won't try to unpack these nested options
       * but we could in the future.
       */
      var jsonSuppliedValue = JSON.stringify(props[_invalidPropPath], null, 2);

      if (jsonSuppliedValue) {
        if (Object(ramda__WEBPACK_IMPORTED_MODULE_0__["includes"])('\n', jsonSuppliedValue)) {
          errorMessage += "\nValue provided: \n".concat(jsonSuppliedValue);
        } else {
          errorMessage += "\nValue provided: ".concat(jsonSuppliedValue);
        }
      }
    }
  } else {
    /*
     * Not aware of other prop type warning messages.
     * But, if they exist, then at least throw the default
     * react prop types error
     */
    throw new Error(message);
  }

  throw new Error(errorMessage);
}

/***/ }),

/***/ "./src/index.js":
/*!**********************!*\
  !*** ./src/index.js ***!
  \**********************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _DashRenderer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DashRenderer */ "./src/DashRenderer.js");
 // make DashRenderer globally available

window.DashRenderer = _DashRenderer__WEBPACK_IMPORTED_MODULE_0__["DashRenderer"];

/***/ }),

/***/ "./src/isSimpleComponent.js":
/*!**********************************!*\
  !*** ./src/isSimpleComponent.js ***!
  \**********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ramda */ "./node_modules/ramda/es/index.js");

var SIMPLE_COMPONENT_TYPES = ['String', 'Number', 'Null', 'Boolean'];
/* harmony default export */ __webpack_exports__["default"] = (function (component) {
  return Object(ramda__WEBPACK_IMPORTED_MODULE_0__["includes"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["type"])(component), SIMPLE_COMPONENT_TYPES);
});

/***/ }),

/***/ "./src/persistence.js":
/*!****************************!*\
  !*** ./src/persistence.js ***!
  \****************************/
/*! exports provided: storePrefix, stores, recordUiEdit, applyPersistence, prunePersistence */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "storePrefix", function() { return storePrefix; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stores", function() { return stores; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recordUiEdit", function() { return recordUiEdit; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "applyPersistence", function() { return applyPersistence; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prunePersistence", function() { return prunePersistence; });
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ramda */ "./node_modules/ramda/es/index.js");
/* harmony import */ var redux_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! redux-actions */ "./node_modules/redux-actions/lib/index.js");
/* harmony import */ var redux_actions__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(redux_actions__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var uniqid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! uniqid */ "./node_modules/uniqid/index.js");
/* harmony import */ var uniqid__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(uniqid__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _registry__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./registry */ "./src/registry.js");
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }

function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

/**
 * Generalized persistence for component props
 *
 * When users input new prop values, they can be stored and reapplied later,
 * when the component is recreated (changing `Tab` for example) or when the
 * page is reloaded (depending on `persistence_type`) Storage is tied to
 * component ID and will not on with components without an ID.
 *
 * Renderer handles the mechanics, but components must define a few props:
 *
 * - `persistence`: boolean, string, or number. For simple usage, set to `true`
 *   to enable persistence, omit or set `false` to disable. For more complex
 *   scenarios, use any truthy value, and change to a *different* truthy value
 *   when you want the persisted values cleared. (modeled off `uirevision` in)
 *   plotly.js
 *   Typically should have no default, but the other persistence props should
 *   have defaults, so all a user needs to do to enable persistence is set this
 *   one prop.
 *
 * - `persisted_props`: array of prop names or "nested prop IDs" allowed to
 *   persist. Normally should default to the full list of supported props,
 *   so they can all be enabled at once. The main exception to this is if
 *   there's a prop that *can* be persisted but most users wouldn't want this.
 *   A nested prop ID describes *part* of a prop to store. It must be
 *   "<propName>.<piece>" where propName is the prop that has this info, and
 *   piece may or may not map to the exact substructure being stored but is
 *   meaningful to the user. For example, in `dash_table`, `columns.name`
 *   stores `columns[i].name` for all columns `i`. Nested props also need
 *   entries in `persistenceTransforms` - see below.
 *
 * - `persistence_type`: one of "local", "session", or "memory", just like
 *   `dcc.Store`. But the default here should be "local" because the main use
 *   case is to maintain settings across reloads.
 *
 * If any `persisted_props` are nested prop IDs, the component should define a
 * class property (not a React prop) `persistenceTransforms`, as an object:
 * {
 *   [propName]: {
 *     [piece]: {
 *       extract: propValue => valueToStore,
 *       apply: (storedValue, propValue) => newPropValue
 *     }
 *   }
 * }
 * - `extract` turns a prop value into a reduced value to store.
 * - `apply` puts an extracted value back into the prop. Make sure this creates
 *   a new object rather than mutating `proValue`, and that if there are
 *   multiple `piece` entries for one `propName`, their `apply` functions
 *   commute - which should not be an issue if they extract and apply
 *   non-intersecting parts of the full prop.
 * You only need to define these for the props that need them.
 * It's important that `extract` pulls out *only* the relevant pieces of the
 * prop, because persistence is only maintained if the extracted value of the
 * prop before applying persistence is the same as it was before the user's
 * changes.
 */




var storePrefix = '_dash_persistence.';

function err(e) {
  var error = typeof e === 'string' ? new Error(e) : e;
  /* eslint-disable no-console */
  // Send this to the console too, so it's still available with debug off

  console.error(e);
  /* eslint-disable no-console */

  return Object(redux_actions__WEBPACK_IMPORTED_MODULE_1__["createAction"])('ON_ERROR')({
    myUID: uniqid__WEBPACK_IMPORTED_MODULE_2___default()(),
    myID: storePrefix,
    type: 'frontEnd',
    error: error
  });
}
/*
 * Does a key fit this prefix? Must either be an exact match
 * or, if a separator is provided, a scoped match - exact prefix
 * followed by the separator (then anything else)
 */


function keyPrefixMatch(prefix, separator) {
  var fullStr = prefix + separator;
  var fullLen = fullStr.length;
  return function (key) {
    return key === prefix || key.substr(0, fullLen) === fullStr;
  };
}

var UNDEFINED = 'U';

var _parse = function _parse(val) {
  return val === UNDEFINED ? undefined : JSON.parse(val || null);
};

var _stringify = function _stringify(val) {
  return val === undefined ? UNDEFINED : JSON.stringify(val);
};

var WebStore =
/*#__PURE__*/
function () {
  function WebStore(backEnd) {
    _classCallCheck(this, WebStore);

    this._name = backEnd;
    this._storage = window[backEnd];
  }

  _createClass(WebStore, [{
    key: "hasItem",
    value: function hasItem(key) {
      return this._storage.getItem(storePrefix + key) !== null;
    }
  }, {
    key: "getItem",
    value: function getItem(key) {
      // note: _storage.getItem returns null on missing keys
      // and JSON.parse(null) returns null as well
      return _parse(this._storage.getItem(storePrefix + key));
    }
  }, {
    key: "_setItem",
    value: function _setItem(key, value) {
      // unprotected version of setItem, for use by tryGetWebStore
      this._storage.setItem(storePrefix + key, _stringify(value));
    }
    /*
     * In addition to the regular key->value to set, setItem takes
     * dispatch as a parameter, so it can report OOM to devtools
     */

  }, {
    key: "setItem",
    value: function setItem(key, value, dispatch) {
      try {
        this._setItem(key, value);
      } catch (e) {
        dispatch(err("".concat(key, " failed to save in ").concat(this._name, ". Persisted props may be lost."))); // TODO: at some point we may want to convert this to fall back
        // on memory, pulling out all persistence keys and putting them
        // in a MemStore that gets used from then onward.
      }
    }
  }, {
    key: "removeItem",
    value: function removeItem(key) {
      this._storage.removeItem(storePrefix + key);
    }
    /*
     * clear matching keys matching (optionally followed by a dot and more
     * characters) - or all keys associated with this store if no prefix.
     */

  }, {
    key: "clear",
    value: function clear(keyPrefix) {
      var _this = this;

      var fullPrefix = storePrefix + (keyPrefix || '');
      var keyMatch = keyPrefixMatch(fullPrefix, keyPrefix ? '.' : '');
      var keysToRemove = []; // 2-step process, so we don't depend on any particular behavior of
      // key order while removing some

      for (var i = 0; i < this._storage.length; i++) {
        var fullKey = this._storage.key(i);

        if (keyMatch(fullKey)) {
          keysToRemove.push(fullKey);
        }
      }

      Object(ramda__WEBPACK_IMPORTED_MODULE_0__["forEach"])(function (k) {
        return _this._storage.removeItem(k);
      }, keysToRemove);
    }
  }]);

  return WebStore;
}();

var MemStore =
/*#__PURE__*/
function () {
  function MemStore() {
    _classCallCheck(this, MemStore);

    this._data = {};
  }

  _createClass(MemStore, [{
    key: "hasItem",
    value: function hasItem(key) {
      return key in this._data;
    }
  }, {
    key: "getItem",
    value: function getItem(key) {
      // run this storage through JSON too so we know we get a fresh object
      // each retrieval
      return _parse(this._data[key]);
    }
  }, {
    key: "setItem",
    value: function setItem(key, value) {
      this._data[key] = _stringify(value);
    }
  }, {
    key: "removeItem",
    value: function removeItem(key) {
      delete this._data[key];
    }
  }, {
    key: "clear",
    value: function clear(keyPrefix) {
      var _this2 = this;

      if (keyPrefix) {
        Object(ramda__WEBPACK_IMPORTED_MODULE_0__["forEach"])(function (key) {
          return delete _this2._data[key];
        }, Object(ramda__WEBPACK_IMPORTED_MODULE_0__["filter"])(keyPrefixMatch(keyPrefix, '.'), Object(ramda__WEBPACK_IMPORTED_MODULE_0__["keys"])(this._data)));
      } else {
        this._data = {};
      }
    }
  }]);

  return MemStore;
}(); // Make a string 2^16 characters long (*2 bytes/char = 130kB), to test storage.
// That should be plenty for common persistence use cases,
// without getting anywhere near typical browser limits


var pow = 16;

function longString() {
  var s = 'Spam';

  for (var i = 2; i < pow; i++) {
    s += s;
  }

  return s;
}

var stores = {
  memory: new MemStore() // Defer testing & making local/session stores until requested.
  // That way if we have errors here they can show up in devtools.

};
var backEnds = {
  local: 'localStorage',
  session: 'sessionStorage'
};

function tryGetWebStore(backEnd, dispatch) {
  var store = new WebStore(backEnd);
  var fallbackStore = stores.memory;
  var storeTest = longString();
  var testKey = storePrefix + 'x.x';

  try {
    store._setItem(testKey, storeTest);

    if (store.getItem(testKey) !== storeTest) {
      dispatch(err("".concat(backEnd, " init failed set/get, falling back to memory")));
      return fallbackStore;
    }

    store.removeItem(testKey);
    return store;
  } catch (e) {
    dispatch(err("".concat(backEnd, " init first try failed; clearing and retrying")));
  }

  try {
    store.clear();

    store._setItem(testKey, storeTest);

    if (store.getItem(testKey) !== storeTest) {
      throw new Error('nope');
    }

    store.removeItem(testKey);
    dispatch(err("".concat(backEnd, " init set/get succeeded after clearing!")));
    return store;
  } catch (e) {
    dispatch(err("".concat(backEnd, " init still failed, falling back to memory")));
    return fallbackStore;
  }
}

function getStore(type, dispatch) {
  if (!stores[type]) {
    stores[type] = tryGetWebStore(backEnds[type], dispatch);
  }

  return stores[type];
}

var noopTransform = {
  extract: function extract(propValue) {
    return propValue;
  },
  apply: function apply(storedValue, _propValue) {
    return storedValue;
  }
};

var getTransform = function getTransform(element, propName, propPart) {
  return propPart ? element.persistenceTransforms[propName][propPart] : noopTransform;
};

var getValsKey = function getValsKey(id, persistedProp, persistence) {
  return "".concat(id, ".").concat(persistedProp, ".").concat(JSON.stringify(persistence));
};

var getProps = function getProps(layout) {
  var props = layout.props,
      type = layout.type,
      namespace = layout.namespace;

  if (!type || !namespace) {
    // not a real component - just need the props for recursion
    return {
      props: props
    };
  }

  var id = props.id,
      persistence = props.persistence;
  var element = _registry__WEBPACK_IMPORTED_MODULE_3__["default"].resolve(layout);

  var getVal = function getVal(prop) {
    return props[prop] || (element.defaultProps || {})[prop];
  };

  var persisted_props = getVal('persisted_props');
  var persistence_type = getVal('persistence_type');
  var canPersist = id && persisted_props && persistence_type;
  return {
    canPersist: canPersist,
    id: id,
    props: props,
    element: element,
    persistence: persistence,
    persisted_props: persisted_props,
    persistence_type: persistence_type
  };
};

function recordUiEdit(layout, newProps, dispatch) {
  var _getProps = getProps(layout),
      canPersist = _getProps.canPersist,
      id = _getProps.id,
      props = _getProps.props,
      element = _getProps.element,
      persistence = _getProps.persistence,
      persisted_props = _getProps.persisted_props,
      persistence_type = _getProps.persistence_type;

  if (!canPersist || !persistence) {
    return;
  }

  Object(ramda__WEBPACK_IMPORTED_MODULE_0__["forEach"])(function (persistedProp) {
    var _persistedProp$split = persistedProp.split('.'),
        _persistedProp$split2 = _slicedToArray(_persistedProp$split, 2),
        propName = _persistedProp$split2[0],
        propPart = _persistedProp$split2[1];

    if (newProps[propName]) {
      var storage = getStore(persistence_type, dispatch);

      var _getTransform = getTransform(element, propName, propPart),
          extract = _getTransform.extract;

      var valsKey = getValsKey(id, persistedProp, persistence);
      var originalVal = extract(props[propName]);
      var newVal = extract(newProps[propName]); // mainly for nested props with multiple persisted parts, it's
      // possible to have the same value as before - should not store
      // in this case.

      if (originalVal !== newVal) {
        if (storage.hasItem(valsKey)) {
          originalVal = storage.getItem(valsKey)[1];
        }

        var vals = originalVal === undefined ? [newVal] : [newVal, originalVal];
        storage.setItem(valsKey, vals, dispatch);
      }
    }
  }, persisted_props);
}
/*
 * Used for entire layouts (on load) or partial layouts (from children
 * callbacks) to apply previously-stored UI edits to components
 */

function applyPersistence(layout, dispatch) {
  if (Object(ramda__WEBPACK_IMPORTED_MODULE_0__["type"])(layout) !== 'Object' || !layout.props) {
    return layout;
  }

  return persistenceMods(layout, layout, [], dispatch);
}
var UNDO = true;

function modProp(key, storage, element, props, persistedProp, update, undo) {
  if (storage.hasItem(key)) {
    var _storage$getItem = storage.getItem(key),
        _storage$getItem2 = _slicedToArray(_storage$getItem, 2),
        newVal = _storage$getItem2[0],
        originalVal = _storage$getItem2[1];

    var fromVal = undo ? newVal : originalVal;
    var toVal = undo ? originalVal : newVal;

    var _persistedProp$split3 = persistedProp.split('.'),
        _persistedProp$split4 = _slicedToArray(_persistedProp$split3, 2),
        propName = _persistedProp$split4[0],
        propPart = _persistedProp$split4[1];

    var transform = getTransform(element, propName, propPart);

    if (Object(ramda__WEBPACK_IMPORTED_MODULE_0__["equals"])(fromVal, transform.extract(props[propName]))) {
      update[propName] = transform.apply(toVal, propName in update ? update[propName] : props[propName]);
    } else {
      // clear this saved edit - we've started with the wrong
      // value for this persistence ID
      storage.removeItem(key);
    }
  }
}

function persistenceMods(layout, component, path, dispatch) {
  var _getProps2 = getProps(component),
      canPersist = _getProps2.canPersist,
      id = _getProps2.id,
      props = _getProps2.props,
      element = _getProps2.element,
      persistence = _getProps2.persistence,
      persisted_props = _getProps2.persisted_props,
      persistence_type = _getProps2.persistence_type;

  var layoutOut = layout;

  if (canPersist && persistence) {
    var storage = getStore(persistence_type, dispatch);
    var update = {};
    Object(ramda__WEBPACK_IMPORTED_MODULE_0__["forEach"])(function (persistedProp) {
      return modProp(getValsKey(id, persistedProp, persistence), storage, element, props, persistedProp, update);
    }, persisted_props);

    for (var propName in update) {
      layoutOut = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["set"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["lensPath"])(path.concat('props', propName)), update[propName], layoutOut);
    }
  } // recurse inward


  var children = props.children;

  if (Array.isArray(children)) {
    children.forEach(function (child, i) {
      if (Object(ramda__WEBPACK_IMPORTED_MODULE_0__["type"])(child) === 'Object' && child.props) {
        layoutOut = persistenceMods(layoutOut, child, path.concat('props', 'children', i), dispatch);
      }
    });
  } else if (Object(ramda__WEBPACK_IMPORTED_MODULE_0__["type"])(children) === 'Object' && children.props) {
    layoutOut = persistenceMods(layoutOut, children, path.concat('props', 'children'), dispatch);
  }

  return layoutOut;
}
/*
 * When we receive new explicit props from a callback,
 * these override UI-driven edits of those exact props
 * but not for props nested inside children
 */


function prunePersistence(layout, newProps, dispatch) {
  var _getProps3 = getProps(layout),
      canPersist = _getProps3.canPersist,
      id = _getProps3.id,
      props = _getProps3.props,
      persistence = _getProps3.persistence,
      persisted_props = _getProps3.persisted_props,
      persistence_type = _getProps3.persistence_type,
      element = _getProps3.element;

  var getFinal = function getFinal(propName, prevVal) {
    return propName in newProps ? newProps[propName] : prevVal;
  };

  var finalPersistence = getFinal('persistence', persistence);

  if (!canPersist || !(persistence || finalPersistence)) {
    return newProps;
  }

  var finalPersistenceType = getFinal('persistence_type', persistence_type);
  var finalPersistedProps = getFinal('persisted_props', persisted_props);
  var persistenceChanged = finalPersistence !== persistence || finalPersistenceType !== persistence_type || finalPersistedProps !== persisted_props;

  var notInNewProps = function notInNewProps(persistedProp) {
    return !(persistedProp.split('.')[0] in newProps);
  };

  var update = {};
  var depersistedProps = props;

  if (persistenceChanged && persistence) {
    // clear previously-applied persistence
    var storage = getStore(persistence_type, dispatch);
    Object(ramda__WEBPACK_IMPORTED_MODULE_0__["forEach"])(function (persistedProp) {
      return modProp(getValsKey(id, persistedProp, persistence), storage, element, props, persistedProp, update, UNDO);
    }, Object(ramda__WEBPACK_IMPORTED_MODULE_0__["filter"])(notInNewProps, persisted_props));
    depersistedProps = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["mergeRight"])(props, update);
  }

  if (finalPersistence) {
    var finalStorage = getStore(finalPersistenceType, dispatch);

    if (persistenceChanged) {
      // apply new persistence
      Object(ramda__WEBPACK_IMPORTED_MODULE_0__["forEach"])(function (persistedProp) {
        return modProp(getValsKey(id, persistedProp, finalPersistence), finalStorage, element, depersistedProps, persistedProp, update);
      }, Object(ramda__WEBPACK_IMPORTED_MODULE_0__["filter"])(notInNewProps, finalPersistedProps));
    } // now the main point - clear any edit of a prop that changed
    // note that this is independent of the new prop value.


    var transforms = element.persistenceTransforms || {};

    for (var propName in newProps) {
      var propTransforms = transforms[propName];

      if (propTransforms) {
        for (var propPart in propTransforms) {
          finalStorage.removeItem(getValsKey(id, "".concat(propName, ".").concat(propPart), finalPersistence));
        }
      } else {
        finalStorage.removeItem(getValsKey(id, propName, finalPersistence));
      }
    }
  }

  return persistenceChanged ? Object(ramda__WEBPACK_IMPORTED_MODULE_0__["mergeRight"])(newProps, update) : newProps;
}

/***/ }),

/***/ "./src/reducers/api.js":
/*!*****************************!*\
  !*** ./src/reducers/api.js ***!
  \*****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return createApiReducer; });
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ramda */ "./node_modules/ramda/es/index.js");

function createApiReducer(store) {
  return function ApiReducer() {
    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    var action = arguments.length > 1 ? arguments[1] : undefined;
    var newState = state;

    if (action.type === store) {
      var _action$payload = action.payload,
          id = _action$payload.id,
          status = _action$payload.status,
          content = _action$payload.content;
      var newRequest = {
        status: status,
        content: content
      };

      if (Array.isArray(id)) {
        newState = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["assocPath"])(id, newRequest, state);
      } else if (id) {
        newState = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["assoc"])(id, newRequest, state);
      } else {
        newState = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["mergeRight"])(state, newRequest);
      }
    }

    return newState;
  };
}

/***/ }),

/***/ "./src/reducers/appLifecycle.js":
/*!**************************************!*\
  !*** ./src/reducers/appLifecycle.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _actions_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../actions/constants */ "./src/actions/constants.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ "./src/reducers/constants.js");



function appLifecycle() {
  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Object(_constants__WEBPACK_IMPORTED_MODULE_1__["getAppState"])('STARTED');
  var action = arguments.length > 1 ? arguments[1] : undefined;

  switch (action.type) {
    case Object(_actions_constants__WEBPACK_IMPORTED_MODULE_0__["getAction"])('SET_APP_LIFECYCLE'):
      return Object(_constants__WEBPACK_IMPORTED_MODULE_1__["getAppState"])(action.payload);

    default:
      return state;
  }
}

/* harmony default export */ __webpack_exports__["default"] = (appLifecycle);

/***/ }),

/***/ "./src/reducers/config.js":
/*!********************************!*\
  !*** ./src/reducers/config.js ***!
  \********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return config; });
/* harmony import */ var _actions_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../actions/constants */ "./src/actions/constants.js");

function config() {
  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
  var action = arguments.length > 1 ? arguments[1] : undefined;

  if (action.type === Object(_actions_constants__WEBPACK_IMPORTED_MODULE_0__["getAction"])('SET_CONFIG')) {
    return action.payload;
  }

  return state;
}

/***/ }),

/***/ "./src/reducers/constants.js":
/*!***********************************!*\
  !*** ./src/reducers/constants.js ***!
  \***********************************/
/*! exports provided: getAppState */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAppState", function() { return getAppState; });
function getAppState(state) {
  var stateList = {
    STARTED: 'STARTED',
    HYDRATED: 'HYDRATED'
  };

  if (stateList[state]) {
    return stateList[state];
  }

  throw new Error("".concat(state, " is not a valid app state."));
}

/***/ }),

/***/ "./src/reducers/dependencyGraph.js":
/*!*****************************************!*\
  !*** ./src/reducers/dependencyGraph.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ramda */ "./node_modules/ramda/es/index.js");
/* harmony import */ var dependency_graph__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dependency-graph */ "./node_modules/dependency-graph/lib/dep_graph.js");
/* harmony import */ var dependency_graph__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dependency_graph__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils */ "./src/utils.js");



var initialGraph = {};

var graphs = function graphs() {
  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialGraph;
  var action = arguments.length > 1 ? arguments[1] : undefined;

  switch (action.type) {
    case 'COMPUTE_GRAPHS':
      {
        var dependencies = action.payload;
        var inputGraph = new dependency_graph__WEBPACK_IMPORTED_MODULE_1__["DepGraph"]();
        var multiGraph = new dependency_graph__WEBPACK_IMPORTED_MODULE_1__["DepGraph"]();
        dependencies.forEach(function registerDependency(dependency) {
          var output = dependency.output,
              inputs = dependency.inputs; // Multi output supported will be a string already
          // Backward compatibility by detecting object.

          var outputId;

          if (Object(ramda__WEBPACK_IMPORTED_MODULE_0__["type"])(output) === 'Object') {
            outputId = "".concat(output.id, ".").concat(output.property);
          } else {
            outputId = output;

            if (Object(_utils__WEBPACK_IMPORTED_MODULE_2__["isMultiOutputProp"])(output)) {
              Object(_utils__WEBPACK_IMPORTED_MODULE_2__["parseMultipleOutputs"])(output).forEach(function (out) {
                multiGraph.addNode(out);
                inputs.forEach(function (i) {
                  var inputId = "".concat(i.id, ".").concat(i.property);

                  if (!multiGraph.hasNode(inputId)) {
                    multiGraph.addNode(inputId);
                  }

                  multiGraph.addDependency(inputId, out);
                });
              });
            } else {
              multiGraph.addNode(output);
              inputs.forEach(function (i) {
                var inputId = "".concat(i.id, ".").concat(i.property);

                if (!multiGraph.hasNode(inputId)) {
                  multiGraph.addNode(inputId);
                }

                multiGraph.addDependency(inputId, output);
              });
            }
          }

          inputs.forEach(function (inputObject) {
            var inputId = "".concat(inputObject.id, ".").concat(inputObject.property);
            inputGraph.addNode(outputId);

            if (!inputGraph.hasNode(inputId)) {
              inputGraph.addNode(inputId);
            }

            inputGraph.addDependency(inputId, outputId);
          });
        });
        return {
          InputGraph: inputGraph,
          MultiGraph: multiGraph
        };
      }

    default:
      return state;
  }
};

/* harmony default export */ __webpack_exports__["default"] = (graphs);

/***/ }),

/***/ "./src/reducers/error.js":
/*!*******************************!*\
  !*** ./src/reducers/error.js ***!
  \*******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return error; });
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ramda */ "./node_modules/ramda/es/index.js");
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }

function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }

function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }

function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }


var initialError = {
  frontEnd: [],
  backEnd: []
};
function error() {
  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialError;
  var action = arguments.length > 1 ? arguments[1] : undefined;

  switch (action.type) {
    case 'ON_ERROR':
      {
        if (action.payload.type === 'frontEnd') {
          return {
            frontEnd: [Object(ramda__WEBPACK_IMPORTED_MODULE_0__["mergeRight"])(action.payload, {
              timestamp: new Date()
            })].concat(_toConsumableArray(state.frontEnd)),
            backEnd: state.backEnd
          };
        } else if (action.payload.type === 'backEnd') {
          return {
            frontEnd: state.frontEnd,
            backEnd: [Object(ramda__WEBPACK_IMPORTED_MODULE_0__["mergeRight"])(action.payload, {
              timestamp: new Date()
            })].concat(_toConsumableArray(state.backEnd))
          };
        }

        return state;
      }

    default:
      {
        return state;
      }
  }
}

/***/ }),

/***/ "./src/reducers/history.js":
/*!*********************************!*\
  !*** ./src/reducers/history.js ***!
  \*********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }

function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }

function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }

function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }

var initialHistory = {
  past: [],
  present: {},
  future: []
};

function history() {
  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialHistory;
  var action = arguments.length > 1 ? arguments[1] : undefined;

  switch (action.type) {
    case 'UNDO':
      {
        var past = state.past,
            present = state.present,
            future = state.future;
        var previous = past[past.length - 1];
        var newPast = past.slice(0, past.length - 1);
        return {
          past: newPast,
          present: previous,
          future: [present].concat(_toConsumableArray(future))
        };
      }

    case 'REDO':
      {
        var _past = state.past,
            _present = state.present,
            _future = state.future;
        var next = _future[0];

        var newFuture = _future.slice(1);

        return {
          past: [].concat(_toConsumableArray(_past), [_present]),
          present: next,
          future: newFuture
        };
      }

    case 'REVERT':
      {
        var _past2 = state.past,
            _future2 = state.future;
        var _previous = _past2[_past2.length - 1];

        var _newPast = _past2.slice(0, _past2.length - 1);

        return {
          past: _newPast,
          present: _previous,
          future: _toConsumableArray(_future2)
        };
      }

    default:
      {
        return state;
      }
  }
}

/* harmony default export */ __webpack_exports__["default"] = (history);

/***/ }),

/***/ "./src/reducers/hooks.js":
/*!*******************************!*\
  !*** ./src/reducers/hooks.js ***!
  \*******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
var customHooks = function customHooks() {
  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
    request_pre: null,
    request_post: null,
    bear: false
  };
  var action = arguments.length > 1 ? arguments[1] : undefined;

  switch (action.type) {
    case 'SET_HOOKS':
      return action.payload;

    default:
      return state;
  }
};

/* harmony default export */ __webpack_exports__["default"] = (customHooks);

/***/ }),

/***/ "./src/reducers/layout.js":
/*!********************************!*\
  !*** ./src/reducers/layout.js ***!
  \********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ramda */ "./node_modules/ramda/es/index.js");
/* harmony import */ var _actions_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../actions/constants */ "./src/actions/constants.js");



var layout = function layout() {
  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  var action = arguments.length > 1 ? arguments[1] : undefined;

  if (action.type === Object(_actions_constants__WEBPACK_IMPORTED_MODULE_1__["getAction"])('SET_LAYOUT')) {
    return action.payload;
  } else if (Object(ramda__WEBPACK_IMPORTED_MODULE_0__["includes"])(action.type, ['UNDO_PROP_CHANGE', 'REDO_PROP_CHANGE', Object(_actions_constants__WEBPACK_IMPORTED_MODULE_1__["getAction"])('ON_PROP_CHANGE')])) {
    var propPath = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["append"])('props', action.payload.itempath);
    var existingProps = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["view"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["lensPath"])(propPath), state);
    var mergedProps = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["mergeRight"])(existingProps, action.payload.props);
    return Object(ramda__WEBPACK_IMPORTED_MODULE_0__["assocPath"])(propPath, mergedProps, state);
  }

  return state;
};

/* harmony default export */ __webpack_exports__["default"] = (layout);

/***/ }),

/***/ "./src/reducers/paths.js":
/*!*******************************!*\
  !*** ./src/reducers/paths.js ***!
  \*******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ "./src/reducers/utils.js");
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ramda */ "./node_modules/ramda/es/index.js");
/* harmony import */ var _actions_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../actions/constants */ "./src/actions/constants.js");



var initialPaths = null;

var paths = function paths() {
  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialPaths;
  var action = arguments.length > 1 ? arguments[1] : undefined;

  switch (action.type) {
    case Object(_actions_constants__WEBPACK_IMPORTED_MODULE_2__["getAction"])('COMPUTE_PATHS'):
      {
        var _action$payload = action.payload,
            subTree = _action$payload.subTree,
            startingPath = _action$payload.startingPath;
        var oldState = state;

        if (Object(ramda__WEBPACK_IMPORTED_MODULE_1__["isNil"])(state)) {
          oldState = {};
        }

        var newState; // if we're updating a subtree, clear out all of the existing items

        if (!Object(ramda__WEBPACK_IMPORTED_MODULE_1__["isEmpty"])(startingPath)) {
          var removeKeys = Object(ramda__WEBPACK_IMPORTED_MODULE_1__["filter"])(function (k) {
            return Object(ramda__WEBPACK_IMPORTED_MODULE_1__["equals"])(startingPath, Object(ramda__WEBPACK_IMPORTED_MODULE_1__["slice"])(0, startingPath.length, oldState[k]));
          }, Object(ramda__WEBPACK_IMPORTED_MODULE_1__["keys"])(oldState));
          newState = Object(ramda__WEBPACK_IMPORTED_MODULE_1__["omit"])(removeKeys, oldState);
        } else {
          newState = Object(ramda__WEBPACK_IMPORTED_MODULE_1__["mergeRight"])({}, oldState);
        }

        Object(_utils__WEBPACK_IMPORTED_MODULE_0__["crawlLayout"])(subTree, function assignPath(child, itempath) {
          if (Object(_utils__WEBPACK_IMPORTED_MODULE_0__["hasPropsId"])(child)) {
            newState[child.props.id] = Object(ramda__WEBPACK_IMPORTED_MODULE_1__["concat"])(startingPath, itempath);
          }
        });
        return newState;
      }

    default:
      {
        return state;
      }
  }
};

/* harmony default export */ __webpack_exports__["default"] = (paths);

/***/ }),

/***/ "./src/reducers/reducer.js":
/*!*********************************!*\
  !*** ./src/reducers/reducer.js ***!
  \*********************************/
/*! exports provided: apiRequests, createReducer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "apiRequests", function() { return apiRequests; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createReducer", function() { return createReducer; });
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ramda */ "./node_modules/ramda/es/index.js");
/* harmony import */ var redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! redux */ "./node_modules/redux/es/index.js");
/* harmony import */ var _layout__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./layout */ "./src/reducers/layout.js");
/* harmony import */ var _dependencyGraph__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dependencyGraph */ "./src/reducers/dependencyGraph.js");
/* harmony import */ var _paths__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./paths */ "./src/reducers/paths.js");
/* harmony import */ var _requestQueue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./requestQueue */ "./src/reducers/requestQueue.js");
/* harmony import */ var _appLifecycle__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./appLifecycle */ "./src/reducers/appLifecycle.js");
/* harmony import */ var _history__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./history */ "./src/reducers/history.js");
/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./error */ "./src/reducers/error.js");
/* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./hooks */ "./src/reducers/hooks.js");
/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./api */ "./src/reducers/api.js");
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./config */ "./src/reducers/config.js");


function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }

function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }

function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }

function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }













var apiRequests = ['dependenciesRequest', 'layoutRequest', 'reloadRequest', 'loginRequest'];

function mainReducer() {
  var parts = {
    appLifecycle: _appLifecycle__WEBPACK_IMPORTED_MODULE_6__["default"],
    layout: _layout__WEBPACK_IMPORTED_MODULE_2__["default"],
    graphs: _dependencyGraph__WEBPACK_IMPORTED_MODULE_3__["default"],
    paths: _paths__WEBPACK_IMPORTED_MODULE_4__["default"],
    requestQueue: _requestQueue__WEBPACK_IMPORTED_MODULE_5__["default"],
    config: _config__WEBPACK_IMPORTED_MODULE_11__["default"],
    history: _history__WEBPACK_IMPORTED_MODULE_7__["default"],
    error: _error__WEBPACK_IMPORTED_MODULE_8__["default"],
    hooks: _hooks__WEBPACK_IMPORTED_MODULE_9__["default"]
  };
  Object(ramda__WEBPACK_IMPORTED_MODULE_0__["forEach"])(function (r) {
    parts[r] = Object(_api__WEBPACK_IMPORTED_MODULE_10__["default"])(r);
  }, apiRequests);
  return Object(redux__WEBPACK_IMPORTED_MODULE_1__["combineReducers"])(parts);
}

function getInputHistoryState(itempath, props, state) {
  var graphs = state.graphs,
      layout = state.layout,
      paths = state.paths;
  var InputGraph = graphs.InputGraph;
  var keyObj = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["filter"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["equals"])(itempath), paths);
  var historyEntry;

  if (!Object(ramda__WEBPACK_IMPORTED_MODULE_0__["isEmpty"])(keyObj)) {
    var id = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["keys"])(keyObj)[0];
    historyEntry = {
      id: id,
      props: {}
    };
    Object(ramda__WEBPACK_IMPORTED_MODULE_0__["keys"])(props).forEach(function (propKey) {
      var inputKey = "".concat(id, ".").concat(propKey);

      if (InputGraph.hasNode(inputKey) && InputGraph.dependenciesOf(inputKey).length > 0) {
        historyEntry.props[propKey] = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["view"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["lensPath"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["concat"])(paths[id], ['props', propKey])), layout);
      }
    });
  }

  return historyEntry;
}

function recordHistory(reducer) {
  return function (state, action) {
    // Record initial state
    if (action.type === 'ON_PROP_CHANGE') {
      var _action$payload = action.payload,
          itempath = _action$payload.itempath,
          props = _action$payload.props;
      var historyEntry = getInputHistoryState(itempath, props, state);

      if (historyEntry && !Object(ramda__WEBPACK_IMPORTED_MODULE_0__["isEmpty"])(historyEntry.props)) {
        state.history.present = historyEntry;
      }
    }

    var nextState = reducer(state, action);

    if (action.type === 'ON_PROP_CHANGE' && action.payload.source !== 'response') {
      var _action$payload2 = action.payload,
          _itempath = _action$payload2.itempath,
          _props = _action$payload2.props;
      /*
       * if the prop change is an input, then
       * record it so that it can be played back
       */

      var _historyEntry = getInputHistoryState(_itempath, _props, nextState);

      if (_historyEntry && !Object(ramda__WEBPACK_IMPORTED_MODULE_0__["isEmpty"])(_historyEntry.props)) {
        nextState.history = {
          past: [].concat(_toConsumableArray(nextState.history.past), [state.history.present]),
          present: _historyEntry,
          future: []
        };
      }
    }

    return nextState;
  };
}

function reloaderReducer(reducer) {
  return function (state, action) {
    var _ref = state || {},
        history = _ref.history,
        config = _ref.config,
        hooks = _ref.hooks;

    var newState = state;

    if (action.type === 'RELOAD') {
      newState = {
        history: history,
        config: config,
        hooks: hooks
      };
    } else if (action.type === 'SET_CONFIG') {
      // new config also reloads, and even clears history,
      // in case there's a new user or even a totally different app!
      // hooks are set at an even higher level than config though.
      newState = {
        hooks: hooks
      };
    }

    return reducer(newState, action);
  };
}

function createReducer() {
  return reloaderReducer(recordHistory(mainReducer()));
}

/***/ }),

/***/ "./src/reducers/requestQueue.js":
/*!**************************************!*\
  !*** ./src/reducers/requestQueue.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ramda */ "./node_modules/ramda/es/index.js");


var requestQueue = function requestQueue() {
  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
  var action = arguments.length > 1 ? arguments[1] : undefined;

  switch (action.type) {
    case 'SET_REQUEST_QUEUE':
      return Object(ramda__WEBPACK_IMPORTED_MODULE_0__["clone"])(action.payload);

    default:
      return state;
  }
};

/* harmony default export */ __webpack_exports__["default"] = (requestQueue);

/***/ }),

/***/ "./src/reducers/utils.js":
/*!*******************************!*\
  !*** ./src/reducers/utils.js ***!
  \*******************************/
/*! exports provided: hasPropsId, hasPropsChildren, crawlLayout, hasId */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasPropsId", function() { return hasPropsId; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasPropsChildren", function() { return hasPropsChildren; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "crawlLayout", function() { return crawlLayout; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasId", function() { return hasId; });
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ramda */ "./node_modules/ramda/es/index.js");

var extend = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["reduce"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["flip"])(ramda__WEBPACK_IMPORTED_MODULE_0__["append"]));
var hasProps = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["allPass"])([Object(ramda__WEBPACK_IMPORTED_MODULE_0__["is"])(Object), Object(ramda__WEBPACK_IMPORTED_MODULE_0__["has"])('props')]);
var hasPropsId = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["allPass"])([hasProps, Object(ramda__WEBPACK_IMPORTED_MODULE_0__["compose"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["has"])('id'), Object(ramda__WEBPACK_IMPORTED_MODULE_0__["prop"])('props'))]);
var hasPropsChildren = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["allPass"])([hasProps, Object(ramda__WEBPACK_IMPORTED_MODULE_0__["compose"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["has"])('children'), Object(ramda__WEBPACK_IMPORTED_MODULE_0__["prop"])('props'))]); // crawl a layout object, apply a function on every object

var crawlLayout = function crawlLayout(object, func) {
  var path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
  func(object, path);
  /*
   * object may be a string, a number, or null
   * R.has will return false for both of those types
   */

  if (hasPropsChildren(object)) {
    var newPath = extend(path, ['props', 'children']);

    if (Array.isArray(object.props.children)) {
      object.props.children.forEach(function (child, i) {
        crawlLayout(child, func, Object(ramda__WEBPACK_IMPORTED_MODULE_0__["append"])(i, newPath));
      });
    } else {
      crawlLayout(object.props.children, func, newPath);
    }
  } else if (Object(ramda__WEBPACK_IMPORTED_MODULE_0__["is"])(Array, object)) {
    /*
     * Sometimes when we're updating a sub-tree
     * (like when we're responding to a callback)
     * that returns `{children: [{...}, {...}]}`
     * then we'll need to start crawling from
     * an array instead of an object.
     */
    object.forEach(function (child, i) {
      crawlLayout(child, func, Object(ramda__WEBPACK_IMPORTED_MODULE_0__["append"])(i, path));
    });
  }
};
function hasId(child) {
  return Object(ramda__WEBPACK_IMPORTED_MODULE_0__["type"])(child) === 'Object' && Object(ramda__WEBPACK_IMPORTED_MODULE_0__["has"])('props', child) && Object(ramda__WEBPACK_IMPORTED_MODULE_0__["has"])('id', child.props);
}

/***/ }),

/***/ "./src/registry.js":
/*!*************************!*\
  !*** ./src/registry.js ***!
  \*************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);


/* harmony default export */ __webpack_exports__["default"] = ({
  resolve: function resolve(component) {
    var type = component.type,
        namespace = component.namespace;
    var ns = window[namespace];
    /* global window: true */

    if (ns) {
      if (ns[type]) {
        return ns[type];
      }

      throw new Error("Component ".concat(type, " not found in ").concat(namespace));
    }

    throw new Error("".concat(namespace, " was not found."));
  }
});

/***/ }),

/***/ "./src/store.js":
/*!**********************!*\
  !*** ./src/store.js ***!
  \**********************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var redux__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! redux */ "./node_modules/redux/es/index.js");
/* harmony import */ var redux_thunk__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! redux-thunk */ "./node_modules/redux-thunk/es/index.js");
/* harmony import */ var _reducers_reducer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reducers/reducer */ "./src/reducers/reducer.js");
/* global module, require */



var store;
/**
 * Initialize a Redux store with thunk, plus logging (only in development mode) middleware
 *
 * @param {bool} reset: discard any previous store
 *
 * @returns {Store<GenericStoreEnhancer>}
 *  An initialized redux store with middleware and possible hot reloading of reducers
 */

var initializeStore = function initializeStore(reset) {
  if (store && !reset) {
    return store;
  }

  var reducer = Object(_reducers_reducer__WEBPACK_IMPORTED_MODULE_2__["createReducer"])(); // only attach logger to middleware in non-production mode

  store =  false // eslint-disable-line no-process-env
  ? undefined : Object(redux__WEBPACK_IMPORTED_MODULE_0__["createStore"])(reducer, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__(), Object(redux__WEBPACK_IMPORTED_MODULE_0__["applyMiddleware"])(redux_thunk__WEBPACK_IMPORTED_MODULE_1__["default"]));

  if (!reset) {
    // TODO - Protect this under a debug mode?
    window.store = store;
    /* global window:true */
  }

  if (false) {}

  return store;
};

/* harmony default export */ __webpack_exports__["default"] = (initializeStore);

/***/ }),

/***/ "./src/utils.js":
/*!**********************!*\
  !*** ./src/utils.js ***!
  \**********************/
/*! exports provided: urlBase, uid, isMultiOutputProp, parseMultipleOutputs */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "urlBase", function() { return urlBase; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "uid", function() { return uid; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isMultiOutputProp", function() { return isMultiOutputProp; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseMultipleOutputs", function() { return parseMultipleOutputs; });
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ramda */ "./node_modules/ramda/es/index.js");

/*
 * requests_pathname_prefix is the new config parameter introduced in
 * dash==0.18.0. The previous versions just had url_base_pathname
 */

function urlBase(config) {
  var hasUrlBase = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["has"])('url_base_pathname', config);
  var hasReqPrefix = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["has"])('requests_pathname_prefix', config);

  if (Object(ramda__WEBPACK_IMPORTED_MODULE_0__["type"])(config) !== 'Object' || !hasUrlBase && !hasReqPrefix) {
    throw new Error("\n            Trying to make an API request but neither\n            \"url_base_pathname\" nor \"requests_pathname_prefix\"\n            is in `config`. `config` is: ", config);
  }

  var base = hasReqPrefix ? config.requests_pathname_prefix : config.url_base_pathname;
  return base.charAt(base.length - 1) === '/' ? base : base + '/';
}
function uid() {
  function s4() {
    var h = 0x10000;
    return Math.floor((1 + Math.random()) * h).toString(16).substring(1);
  }

  return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();
}
function isMultiOutputProp(outputIdAndProp) {
  /*
   * If this update is for multiple outputs, then it has
   * starting & trailing `..` and each propId pair is separated
   * by `...`, e.g.
   * "..output-1.value...output-2.value...output-3.value...output-4.value.."
   */
  return outputIdAndProp.startsWith('..');
}
function parseMultipleOutputs(outputIdAndProp) {
  /*
   * If this update is for multiple outputs, then it has
   * starting & trailing `..` and each propId pair is separated
   * by `...`, e.g.
   * "..output-1.value...output-2.value...output-3.value...output-4.value.."
   */
  return outputIdAndProp.split('...').map(function (o) {
    return o.replace('..', '');
  });
}

/***/ }),

/***/ 0:
/*!*****************************************!*\
  !*** multi whatwg-fetch ./src/index.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__(/*! whatwg-fetch */"./node_modules/whatwg-fetch/fetch.js");
module.exports = __webpack_require__(/*! ./src/index.js */"./src/index.js");


/***/ }),

/***/ 1:
/*!********************!*\
  !*** fs (ignored) ***!
  \********************/
/*! no static exports found */
/***/ (function(module, exports) {

/* (ignored) */

/***/ }),

/***/ 2:
/*!**********************!*\
  !*** path (ignored) ***!
  \**********************/
/*! no static exports found */
/***/ (function(module, exports) {

/* (ignored) */

/***/ }),

/***/ 3:
/*!************************!*\
  !*** crypto (ignored) ***!
  \************************/
/*! no static exports found */
/***/ (function(module, exports) {

/* (ignored) */

/***/ }),

/***/ "prop-types":
/*!****************************!*\
  !*** external "PropTypes" ***!
  \****************************/
/*! no static exports found */
/***/ (function(module, exports) {

(function() { module.exports = window["PropTypes"]; }());

/***/ }),

/***/ "react":
/*!************************!*\
  !*** external "React" ***!
  \************************/
/*! no static exports found */
/***/ (function(module, exports) {

(function() { module.exports = window["React"]; }());

/***/ }),

/***/ "react-dom":
/*!***************************!*\
  !*** external "ReactDOM" ***!
  \***************************/
/*! no static exports found */
/***/ (function(module, exports) {

(function() { module.exports = window["ReactDOM"]; }());

/***/ })

/******/ });