[
  {
    "path": ".babelrc",
    "content": "{\n  \"presets\": [\"react\", \"es2015\"]\n}\n"
  },
  {
    "path": ".eslintrc.js",
    "content": "module.exports = {\n    \"extends\": \"airbnb\",\n    \"installedESLint\": true,\n    \"plugins\": [\n        \"react\"\n    ],\n    \"rules\": {\n        \"react/jsx-filename-extension\": [2, { extensions: ['.js','.jsx'] }],\n        \"func-names\": [0],\n        \"new-cap\": [2, { newIsCap: true ,capIsNew: true, capIsNewExceptions: ['List', 'Map']}],\n        \"linebreak-style\": [0]\n    },\n    \"env\": {\n        \"browser\": true\n    }\n};"
  },
  {
    "path": ".gitignore",
    "content": "### Node template\n# Logs\nlogs\n*.log\nnpm-debug.log*\n.DS_Store\n# Runtime data\npids\n*.pid\n*.seed\n\n# Directory for instrumented libs generated by jscoverage/JSCover\nlib-cov\n\n# Coverage directory used by tools like istanbul\ncoverage\n\n# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)\n.grunt\n\n# node-waf configuration\n.lock-wscript\n\n# Compiled binary addons (http://nodejs.org/api/addons.html)\nbuild/Release\n\n# Dependency directories\nnode_modules\njspm_packages\n\n# Optional npm cache directory\n.npm\n\n# Optional REPL history\n.node_repl_history\n\n# Created by .ignore support plugin (hsz.mobi)\n.idea\n.idea/workspace.xml\n.idea/encodings.xml\n.idea/jsLibraryMappings.xml\n.idea/misc.xml\n.idea/modules.xml\n.idea/react-tetris.iml\n.idea/vcs.xml\n.idea/watcherTasks.xml"
  },
  {
    "path": "README-EN.md",
    "content": "### 中文介绍\n请查看 [README.md](https://github.com/chvin/react-tetris/blob/master/README.md)\n\n----\n## Use React, Redux, Immutable to code Tetris.\n\n----\nTetris is a classic game that has always been enthusiastically implemented in various languages. There are many versions of it in Javascript, and using React to do Tetris has become my goal.\n\nOpen [https://chvin.github.io/react-tetris/?lan=en](https://chvin.github.io/react-tetris/?lan=en) to play!\n\n----\n### Interface preview\n![Interface review](https://img.alicdn.com/tps/TB1Ag7CNXXXXXaoXXXXXXXXXXXX-320-483.gif)\n\nThis is the normal speed of recording, you can see it has a smooth experience.\n\n### Responsive\n![Responsive](https://img.alicdn.com/tps/TB1AdjZNXXXXXcCapXXXXXXXXXX-480-343.gif)\n\nNot only refers to the screen adaptation, `but the change of input depending on your platform, use of the keyboard in the PC and in the phone using the touch as input`:\n\n![phone](https://img.alicdn.com/tps/TB1kvJyOVXXXXbhaFXXXXXXXXXX-320-555.gif)\n\n### Data persistence\n![Data persistence](https://img.alicdn.com/tps/TB1EY7cNXXXXXXraXXXXXXXXXXX-320-399.gif)\n\nWhat's the worst can happen when you're playing stand-alone games? Power outage. The state is stored in the `localStorage` by subscribing to `store.subscribe`, which records exactly all the state. Web page refreshes, the program crashes, the phone is dead, just re-open the connection and you can continue playing.\n\n### Redux state preview ([Redux DevTools extension](https://github.com/zalmoxisus/redux-devtools-extension))\n![Redux state preview](https://img.alicdn.com/tps/TB1hGQqNXXXXXX3XFXXXXXXXXXX-640-381.gif)\n\nRedux manages all the state that should be stored, which is a guarantee to be persisted as mentioned above.\n\n----\nThe Game framework is the use of [React](https://facebook.github.io/react/) + [Redux](http://redux.js.org/), together with [Immutable.js](https://facebook.github.io/immutable-js/).\n\n## 1. What is Immutable.js?\nImmutable is data that can not be changed once it is created. Any modification or addition to or deletion of an Immutable object returns a new Immutable object.\n\n### Acquaintance：\nLet's look at the following code:\n``` JavaScript\nfunction keyLog(touchFn) {\n  let data = { key: 'value' };\n  f(data);\n  console.log(data.key); // Guess what will be printed?\n}\n```\nIf we do not look at `f`, and do not know what it did to `data`, we can not confirm what will be printed. But if `data` is *Immutable*, you can be sure that `data` haven't changed and `value` is printed:\n``` JavaScript\nfunction keyLog(touchFn) {\n  let data = Immutable.Map({ key: 'value' });\n  f(data);\n  console.log(data.get('key'));  // value\n}\n```\n\nJavaScript uses a reference assignment, meaning that the new object simply refers to the original object, changing the new will also affect the old:\n``` JavaScript\nfoo = {a: 1};  bar = foo;  bar.a = 2;\nfoo.a // 2\n```\nAlthough this can save memory, when the application is complex, it can result in the state not being controllable, posing a big risk. The advantages of saving memory, in this case, become more harm than good.\n\nWith Immutable.js the same doesn't happen:\n``` JavaScript\nfoo = Immutable.Map({ a: 1 });  bar = foo.set('a', 2);\nfoo.get('a') // 1\n```\n\n### Concise：\nIn `Redux`, it's a good practice to return a new object (array) to each `reducer`, so we often see code like this:\n``` JavaScript\n// reducer\n...\nreturn [\n   ...oldArr.slice(0, 3),\n   newValue,\n   ...oldArr.slice(4)\n];\n```\nIn order modify one item in the array and return the new object (array), the code has this strange appearance above, and it becomes worse the deeper the data structure.\nLet's take a look at Immutable.js's approach:\n``` JavaScript\n// reducer\n...\nreturn oldArr.set(4, newValue);\n```\nIsn't it simpler?\n\n### About “===”：\nWe know that ```===``` operator for the `Object` and `Array` compares the reference to the address of the object rather than its \"value comparison\", such as:\n``` JavaScript\n{a:1, b:2, c:3} === {a:1, b:2, c:3}; // false\n[1, 2, [3, 4]] === [1, 2, [3, 4]]; // false\n```\n\nTo achieve the above we could only `deepCopy` and `deepCompare` to traverse the objects, but this is not only cumbersome it also harms performance.\n\nLet's check `Immutable.js` approach!\n``` JavaScript\nmap1 = Immutable.Map({a:1, b:2, c:3});\nmap2 = Immutable.Map({a:1, b:2, c:3});\nImmutable.is(map1, map2); // true\n\n// List1 = Immutable.List([1, 2, Immutable.List[3, 4]]);\nList1 = Immutable.fromJS([1, 2, [3, 4]]);\nList2 = Immutable.fromJS([1, 2, [3, 4]]);\nImmutable.is(List1, List2); // true\n```\nIt's smooth like a breeze blowing.\n\nReact has a big trick when it comes to performance tuning. It uses `shouldComponentUpdate()` to check (as the name says) if the component should be re-rendered, it returns `true` by default, which always executes the `render()` method followed by the Virtual DOM comparison.\n\nIf we don't return a new object when making state updates, we would have to use `deepCopy` and `deepCompare` to calculate if the new state is equal to the previous one, the consumption of the performance is not worth it. With Immutable.js, it's easy to compare deep structures using the method above.\n\nFor Tetris, imagine that the board is a `two-dimensional array`. The square that can be moved is `shape (also a two-dimensional array) + coordinates`. The superposition of the board and the box is composed of the final result of `Matrix`. The properties above are built by `Immutable.js`, through its comparison method, you can easily write `shouldComponentUpdate`. Source Code:[/src/components/matrix/index.js#L35](https://github.com/chvin/react-tetris/blob/master/src/components/matrix/index.js#L35)\n\nImmutable learning materials:\n* [Immutable.js](http://facebook.github.io/immutable-js/)\n* [Immutable Detailed and React in practice](https://github.com/camsong/blog/issues/3)\n\n\n----\n## 2. How to use Immutable.js in Redux\nGoal: `state` -> Immutable.\nImportant plug-ins: [gajus/redux-immutable](https://github.com/gajus/redux-immutable)\nWill be provided by the original Redux combineReducers provided by the above plug-ins:\n``` JavaScript\n// rootReducers.js\n// import { combineReducers } from 'redux'; // The old method\nimport { combineReducers } from 'redux-immutable'; // The new method\n\nimport prop1 from './prop1';\nimport prop2 from './prop2';\nimport prop3 from './prop3';\n\nconst rootReducer = combineReducers({\n  prop1, prop2, prop3,\n});\n\n\n// store.js\n// Create a store method and the same general\nimport { createStore } from 'redux';\nimport rootReducer from './reducers';\n\nconst store = createStore(rootReducer);\nexport default store;\n```\nThrough the new `combineReducers` the store object will be stored as an Immutable.js object, the container will be slightly different, but this is what we want:\n``` JavaScript\nconst mapStateToProps = (state) => ({\n  prop1: state.get('prop1'),\n  prop2: state.get('prop2'),\n  prop3: state.get('prop3'),\n  next: state.get('next'),\n});\nexport default connect(mapStateToProps)(App);\n```\n\n\n----\n## 3. Web Audio Api\nThere are many different sound effects in the game, but in fact we keep only a reference to a sound file: [/build/music.mp3](https://github.com/chvin/react-tetris/blob/master/build/music.mp3). With the help of `Web Audio Api`, you can play audio in millisecond precision, with a high frequency, which is not possible with the `<audio>` tag. Press the arrow keys to move the box while the game is in progress, you can hear high-frequency sound.\n\n![Web audio advanced](https://img.alicdn.com/tps/TB1fYgzNXXXXXXnXpXXXXXXXXXX-633-358.png)\n\n`WAA` is a new set of relatively independent interface system, the audio file has a higher processing power and more professional built-in audio effects, is the W3C recommended interface, can deal with professional \"sound speed, volume, environment, sound visualization, High-frequency, sound to \" and other needs. The following figure describes the use of WAA process.\n\n![Process](https://img.alicdn.com/tps/TB1nBf1NXXXXXagapXXXXXXXXXX-520-371.png)\n\nWhere `Source` represents an audio source, `Destination` represents the final output. Multiple Sources compose the Destination.\nSource Code:[/src/unit/music.js](https://github.com/chvin/react-tetris/blob/master/src/unit/music.js). To achieve ajax loading mp3, and to WAA, control the playback process.\n\n`WAA` is supported in the latest 2 versions of each browser([CanIUse](http://caniuse.com/#search=webaudio))\n\n![browser compatibility](https://img.alicdn.com/tps/TB15z4VOVXXXXahaXXXXXXXXXXX-679-133.png)\n\nIE and Android lack support though.\n\nWeb Audio Api learning materials:\n* [Web audio concepts and usage| MDN](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API)\n* [Getting Started with Web Audio API](http://www.html5rocks.com/en/tutorials/webaudio/intro/)\n\n\n----\n## 4. Game on the experience of optimization\n* Experience:\n\t* Press the arrow keys to move vertically and horizontally. The trigger frequency is different, the game can define the trigger frequency, instead of the original event frequency, the source code:[/src/unit/event.js](https://github.com/chvin/react-tetris/blob/master/src/unit/event.js) ;\n\t* Left and right to move the delay can drop the speed, but when moving in the wall smaller delay; in the speed of 6 through the delay will ensure a complete horizontal movement in a row;\n\t* The `touchstart` and `mousedown` events are also registered for the button for responsive games. When `touchstart` occurs, `mousedown` is not triggered, and when `mousedown` occurs, the `mouseup` simulator `mouseup` will also be listened to as `mouseup`, since the mouse-removed event element can not fire. Source Code:[/src/components/keyboard/index.js](https://github.com/chvin/react-tetris/blob/master/src/components/keyboard/index.js);\n\t* The `visibilitychange` event, when the page is hidden\\switch, the game will not proceed, switch back and it will continue, the `focus` state has also been written into the Redux. So when playing with the phone and the phone has a `call`, the progress of the game will be saved; PC open the game do not hear any other gameover, which is a bit like `ios` application switch;\n\t* In the game `any` time you refresh the page, (such as the closing the tab or the end of the game) can restore the current state;\n\t* The only pictures used in the game are ![image](https://img.alicdn.com/tps/TB1qq7kNXXXXXacXFXXXXXXXXXX-400-186.png), all the rest is CSS;\n\t* Game compatible with Chrome, Firefox, IE9 +, Edge, etc .;\n* Rules：\n\t* You can specify the initial board (ten levels) and speed (six levels) before the start of the game;\n\t* 100 points for 1 line, 300 points for 2 lines, 700 points for 3 lines, 1500 points for 4 lines;\n\t* The drop speed of the box increases with the number of rows eliminated (one level for every 20 lines);\n\n\n----\n## 5. Experience in Development\n* `shouldComponentUpdate` is written for all react components, which on the phone causes a significant performance improvement. For Large and medium-sized applications when facing performance problems, try writing your own  `shouldComponentUpdate`, it will most probably help you.\n* `Stateless Functional Components`([Stateless Functional Components](https://medium.com/@joshblack/stateless-components-in-react-0-14-f9798f8b992d#.xjqnbfx4e)) has no lifecycle hooks. And because all components need to write the life cycle hook `shouldComponentUpdate`, they are not used.\n* In the `webpack.config.js` `devServer` attribute is written `host: '0.0.0.0'`, but you can be use in the development any other ip, not limited to localhost;\n* Redux in the `store` not only connect to the method passed to `container`, you can jump out of the component, in other documents out to do flow control (dispatch), the source code:[/src/control/states.js](https://github.com/chvin/react-tetris/blob/master/src/control/states.js)；\n* Dealing with persistence in React + Redux is very convenient, as long as the redux state of storage, reducers do read in each of the initialization time.\n* By configuring `.eslintrc.js` and `webpack.config.js`, the `ESLint` test is integrated in the project. Using ESLint allows coding to be written to specifications, effectively controlling code quality. Code that does not conform to the specifications can be found through the IDE and the console at development time (or build time). reference:[Airbnb React/JSX Style Guide](https://github.com/airbnb/javascript/tree/master/react)；\n\n\n----\n## 6. Summary\n* As a React hand application, in the realization of the process found a small \"box\" or a lot of details can be optimized and polished, this time is a test of a front-end engineers and the skill of the time carefully.\n* Optimization of the direction of both React itself, such as what state is stored by the Redux, which states to the state of the component like; and out of the framework of the product can have a lot of features to play, in order to meet your needs, these will be natural propulsion technology development of.\n* An application from scratch, the function slowly accumulate bit by bit, it will build into a high-rise, do not fear it difficult to have the idea to knock on it. ^_^\n\n\n----\n## 7. Flowchart\n![Flowchart](https://img.alicdn.com/tfs/TB1B6ODRXXXXXXHaFXXXXXXXXXX-1920-1080.png)\n\n----\n## 8. Development\n### Install\n```\nnpm install\n```\n### Run\n```\nnpm start\n```\nThe browser will go to [http://127.0.0.1:8080/](http://127.0.0.1:8080/)\n### multi-language\nIn the [i18n.json](https://github.com/chvin/react-tetris/blob/master/i18n.json) is the configuration for the multi-language environment. You can change the language by passing the url parameter `lan` like this: `https://chvin.github.io/react-tetris/?lan=en`\n### Build\n```\nnpm run build\n```\n\nWill build the application in the build folder.\n\n\n\n"
  },
  {
    "path": "README.md",
    "content": "### English introduction\nPlease view [README-EN.md](https://github.com/chvin/react-tetris/blob/master/README-EN.md)\n\n----\n## 用React、Redux、Immutable做俄罗斯方块\n\n----\n俄罗斯方块是一直各类程序语言热衷实现的经典游戏，JavaScript的实现版本也有很多，用React 做好俄罗斯方块则成了我一个目标。\n\n戳：[https://chvin.github.io/react-tetris/](https://chvin.github.io/react-tetris/) 玩一玩！\n\n----\n### 效果预览\n![效果预览](https://img.alicdn.com/tps/TB1Ag7CNXXXXXaoXXXXXXXXXXXX-320-483.gif)\n\n正常速度的录制，体验流畅。\n\n### 响应式\n![响应式](https://img.alicdn.com/tps/TB1AdjZNXXXXXcCapXXXXXXXXXX-480-343.gif)\n\n不仅指屏幕的自适应，而是`在PC使用键盘、在手机使用手指的响应式操作`：\n\n![手机](https://img.alicdn.com/tps/TB1kvJyOVXXXXbhaFXXXXXXXXXX-320-555.gif)\n\n### 数据持久化\n![数据持久化](https://img.alicdn.com/tps/TB1EY7cNXXXXXXraXXXXXXXXXXX-320-399.gif)\n\n玩单机游戏最怕什么？断电。通过订阅 `store.subscribe`，将state储存在localStorage，精确记录所有状态。网页关了刷新了、程序崩溃了、手机没电了，重新打开连接，都可以继续。\n\n### Redux 状态预览（[Redux DevTools extension](https://github.com/zalmoxisus/redux-devtools-extension)）\n![Redux状态预览](https://img.alicdn.com/tps/TB1hGQqNXXXXXX3XFXXXXXXXXXX-640-381.gif)\n\nRedux设计管理了所有应存的状态，这是上面持久化的保证。\n\n----\n游戏框架使用的是 React + Redux，其中再加入了 Immutable，用它的实例来做来Redux的state。（有关React和Redux的介绍可以看：[React入门实例](http://www.ruanyifeng.com/blog/2015/03/react.html)、[Redux中文文档](https://camsong.github.io/redux-in-chinese/index.html)）\n\n## 1、什么是 Immutable？\nImmutable 是一旦创建，就不能再被更改的数据。对 Immutable 对象的任何修改或添加删除操作都会返回一个新的 Immutable 对象。\n\n### 初识：\n让我们看下面一段代码：\n``` JavaScript\nfunction keyLog(touchFn) {\n  let data = { key: 'value' };\n  f(data);\n  console.log(data.key); // 猜猜会打印什么？\n}\n```\n不查看f，不知道它对 `data` 做了什么，无法确认会打印什么。但如果 `data` 是 Immutable，你可以确定打印的是 `value`：\n``` JavaScript\nfunction keyLog(touchFn) {\n  let data = Immutable.Map({ key: 'value' });\n  f(data);\n  console.log(data.get('key'));  // value\n}\n```\n\nJavaScript 中的`Object`与`Array`等使用的是引用赋值，新的对象简单的引用了原始对象，改变新也将影响旧的：\n``` JavaScript\nfoo = {a: 1};  bar = foo;  bar.a = 2;\nfoo.a // 2\n```\n虽然这样做可以节约内存，但当应用复杂后，造成了状态不可控，是很大的隐患，节约的内存优点变得得不偿失。\n\nImmutable则不一样，相应的：\n``` JavaScript\nfoo = Immutable.Map({ a: 1 });  bar = foo.set('a', 2);\nfoo.get('a') // 1\n```\n\n### 简洁：\n在`Redux`中，它的最优做法是每个`reducer`都返回一个新的对象（数组），所以我们常常会看到这样的代码：\n``` JavaScript\n// reducer\n...\nreturn [\n   ...oldArr.slice(0, 3),\n   newValue,\n   ...oldArr.slice(4)\n];\n```\n为了返回新的对象（数组），不得不有上面奇怪的样子，而在使用更深的数据结构时会变的更棘手。\n让我们看看Immutable的做法：\n``` JavaScript\n// reducer\n...\nreturn oldArr.set(4, newValue);\n```\n是不是很简洁？\n\n### 关于 “===”：\n我们知道对于`Object`与`Array`的`===`比较，是对引用地址的比较而不是“值比较”，如：\n``` JavaScript\n{a:1, b:2, c:3} === {a:1, b:2, c:3}; // false\n[1, 2, [3, 4]] === [1, 2, [3, 4]]; // false\n```\n对于上面只能采用 `deepCopy`、`deepCompare`来遍历比较，不仅麻烦且好性能。\n\n我们感受来一下`Immutable`的做法！\n``` JavaScript\nmap1 = Immutable.Map({a:1, b:2, c:3});\nmap2 = Immutable.Map({a:1, b:2, c:3});\nImmutable.is(map1, map2); // true\n\n// List1 = Immutable.List([1, 2, Immutable.List[3, 4]]);\nList1 = Immutable.fromJS([1, 2, [3, 4]]);\nList2 = Immutable.fromJS([1, 2, [3, 4]]);\nImmutable.is(List1, List2); // true\n```\n似乎有阵清风吹过。\n\nReact 做性能优化时有一个`大招`，就是使用 `shouldComponentUpdate()`，但它默认返回 `true`，即始终会执行 `render()` 方法，后面做 Virtual DOM 比较。\n\n在使用原生属性时，为了得出shouldComponentUpdate正确的`true` or `false`，不得不用deepCopy、deepCompare来算出答案，消耗的性能很不划算。而在有了Immutable之后，使用上面的方法对深层结构的比较就变的易如反掌。\n\n对于「俄罗斯方块」，试想棋盘是一个`二维数组`，可以移动的方块则是`形状(也是二维数组)`+`坐标`。棋盘与方块的叠加则组成了最后的结果`Matrix`。游戏中上面的属性都由`Immutable`构建，通过它的比较方法，可以轻松写好`shouldComponentUpdate`。源代码：[/src/components/matrix/index.js#L35](https://github.com/chvin/react-tetris/blob/master/src/components/matrix/index.js#L35)\n\nImmutable学习资料：\n* [Immutable.js](http://facebook.github.io/immutable-js/)\n* [Immutable 详解及 React 中实践](https://github.com/camsong/blog/issues/3)\n\n\n----\n## 2、如何在Redux中使用Immutable\n目标：将`state` -> Immutable化。\n关键的库：[gajus/redux-immutable](https://github.com/gajus/redux-immutable)\n将原来 Redux提供的combineReducers改由上面的库提供：\n``` JavaScript\n// rootReducers.js\n// import { combineReducers } from 'redux'; // 旧的方法\nimport { combineReducers } from 'redux-immutable'; // 新的方法\n\nimport prop1 from './prop1';\nimport prop2 from './prop2';\nimport prop3 from './prop3';\n\nconst rootReducer = combineReducers({\n  prop1, prop2, prop3,\n});\n\n\n// store.js\n// 创建store的方法和常规一样\nimport { createStore } from 'redux';\nimport rootReducer from './reducers';\n\nconst store = createStore(rootReducer);\nexport default store;\n```\n通过新的`combineReducers`将把store对象转化成Immutable，在container中使用时也会略有不同（但这正是我们想要的）：\n\n``` JavaScript\nconst mapStateToProps = (state) => ({\n  prop1: state.get('prop1'),\n  prop2: state.get('prop2'),\n  prop3: state.get('prop3'),\n  next: state.get('next'),\n});\nexport default connect(mapStateToProps)(App);\n```\n\n----\n## 3、Web Audio Api\n游戏里有很多不同的音效，而实际上只引用了一个音效文件：[/build/music.mp3](https://github.com/chvin/react-tetris/blob/master/build/music.mp3)。借助`Web Audio Api`能够以毫秒级精确、高频率的播放音效，这是`<audio>`标签所做不到的。在游戏进行中按住方向键移动方块，便可以听到高频率的音效。\n\n![网页音效进阶](https://img.alicdn.com/tps/TB1fYgzNXXXXXXnXpXXXXXXXXXX-633-358.png)\n\n`WAA` 是一套全新的相对独立的接口系统，对音频文件拥有更高的处理权限以及更专业的内置音频效果，是W3C的推荐接口，能专业处理“音速、音量、环境、音色可视化、高频、音向”等需求，下图介绍了WAA的使用流程。\n\n![流程](https://img.alicdn.com/tps/TB1nBf1NXXXXXagapXXXXXXXXXX-520-371.png)\n\n其中Source代表一个音频源，Destination代表最终的输出，多个Source合成出了Destination。\n源代码：[/src/unit/music.js](https://github.com/chvin/react-tetris/blob/master/src/unit/music.js) 实现了ajax加载mp3，并转为WAA，控制播放的过程。\n\n`WAA` 在各个浏览器的最新2个版本下的支持情况（[CanIUse](http://caniuse.com/#search=webaudio)）\n\n![浏览器兼容](https://img.alicdn.com/tps/TB15z4VOVXXXXahaXXXXXXXXXXX-679-133.png)\n\n可以看到IE阵营与大部分安卓机不能使用，其他ok。\n\n\nWeb Audio Api 学习资料：\n* [Web API 接口| MDN](https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Audio_API)\n* [Getting Started with Web Audio API](http://www.html5rocks.com/en/tutorials/webaudio/intro/)\n\n----\n## 4、游戏在体验上的优化\n* 技术：\n\t* 按下方向键水平移动和竖直移动的触发频率是不同的，游戏可以定义触发频率，代替原生的事件频率，源代码：[/src/unit/event.js](https://github.com/chvin/react-tetris/blob/master/src/unit/event.js) ；\n\t* 左右移动可以 delay 掉落的速度，但在撞墙移动的时候 delay 的稍小；在速度为6级时 通过delay 会保证在一行内水平完整移动一次；\n\t* 对按钮同时注册`touchstart`和`mousedown`事件，以供响应式游戏。当`touchstart`发生时，不会触发`mousedown`，而当`mousedown`发生时，由于鼠标移开事件元素可以不触发`mouseup`，将同时监听`mouseout` 模拟 `mouseup`。源代码：[/src/components/keyboard/index.js](https://github.com/chvin/react-tetris/blob/master/src/components/keyboard/index.js)；\n\t* 监听了 `visibilitychange` 事件，当页面被隐藏\\切换的时候，游戏将不会进行，切换回来将继续，这个`focus`状态也被写进了Redux中。所以当用手机玩来`电话`时，游戏进度将保存；PC开着游戏干别的也不会听到gameover，这有点像 `ios` 应用的切换。\n\t* 在`任意`时刻刷新网页，（比如消除方块时、游戏结束时）也能还原当前状态；\n\t* 游戏中唯一用到的图片是![image](https://img.alicdn.com/tps/TB1qq7kNXXXXXacXFXXXXXXXXXX-400-186.png)，其他都是CSS；\n\t* 游戏兼容 Chrome、Firefox、IE9+、Edge等；\n* 玩法：\n\t* 可以在游戏未开始时制定初始的棋盘（十个级别）和速度（六个级别）；\n\t* 一次消除1行得100分、2行得300分、3行得700分、4行得1500分；\n\t* 方块掉落速度会随着消除的行数增加（每20行增加一个级别）；\n\n----\n## 5、开发中的经验梳理\n* 为所有的`component`都编写了`shouldComponentUpdate`，在手机上的性能相对有显著的提升。中大型应用在遇到性能上的问题的时候，写好shouldComponentUpdate 一定会帮你一把。\n* `无状态组件`（[Stateless Functional Components](https://medium.com/@joshblack/stateless-components-in-react-0-14-f9798f8b992d#.xjqnbfx4e)）是没有生命周期的。而因为上条因素，所有组件都需要生命周期 shouldComponentUpdate，所以未使用无状态组件。\n* 在 `webpack.config.js` 中的 devServer属性写入`host: '0.0.0.0'`，可以在开发时用ip访问，不局限在localhost；\n* redux中的`store`并非只能通过connect将方法传递给`container`，可以跳出组件，在别的文件拿出来做流程控制(dispatch)，源代码：[/src/control/states.js](https://github.com/chvin/react-tetris/blob/master/src/control/states.js)；\n* 用 react+redux 做持久化非常的方便，只要将redux状态储存，在每一个reduers做初始化的时候读取就好。\n* 通过配置 .eslintrc.js` 与 webpack.config.js` ，项目中集成了 `ESLint` 检验。使用 ESLint 可以使编码按规范编写，有效地控制代码质量。不符规范的代码在开发时（或build时）都能通过IDE与控制台发现错误。 参考：[Airbnb: React使用规范](https://github.com/dwqs/react-style-guide)；\n\n----\n## 6、总结\n* 作为一个 React 的练手应用，在实现的过程中发现小小的“方块”还是有很多的细节可以优化和打磨，这时就是考验一名前端工程师的细心和功力的时候。\n* 优化的方向既有 React 的本身，比如哪些状态由 Redux存，哪些状态给组件的state就好；而跳出框架又有产品的很多特点可以玩，为了达到你的需求，这些都将自然的推进技术的发展。\n* 一个项目从零开始，功能一点一滴慢慢累积，就会盖成高楼，不要畏难，有想法就敲起来吧。 ^_^\n\n----\n## 7、控制流程\n![控制流程](https://img.alicdn.com/tfs/TB1B6ODRXXXXXXHaFXXXXXXXXXX-1920-1080.png)\n\n----\n## 8、开发\n### 安装\n```\nnpm install\n```\n### 运行\n```\nnpm start\n```\n浏览自动打开 [http://127.0.0.1:8080/](http://127.0.0.1:8080/)\n### 多语言\n在 [i18n.json](https://github.com/chvin/react-tetris/blob/master/i18n.json) 配置多语言环境，使用\"lan\"参数匹配语言如：`https://chvin.github.io/react-tetris/?lan=en`\n### 打包编译\n```\nnpm run build\n```\n\n在build文件夹下生成结果。\n\n\n\n"
  },
  {
    "path": "docs/app-1.0.1.js",
    "content": "!function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p=\"\",e(0)}([function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}var o=n(1),i=r(o),a=n(33),u=n(172),s=n(203),c=r(s),l=n(242),f=r(l);n(214),n(313);var p=n(220);(0,p.subscribeRecord)(c.default),(0,a.render)(i.default.createElement(u.Provider,{store:c.default},i.default.createElement(f.default,null)),document.getElementById(\"root\"))},function(t,e,n){\"use strict\";t.exports=n(2)},function(t,e,n){\"use strict\";var r=n(3),o=n(4),i=n(13),a=n(21),u=n(15),s=n(22),c=n(29),l=n(30),f=n(32),p=u.createElement,d=u.createFactory,h=u.cloneElement,v=r,m=function(t){return t},y={Children:{map:i.map,forEach:i.forEach,count:i.count,toArray:i.toArray,only:f},Component:o.Component,PureComponent:o.PureComponent,createElement:p,cloneElement:h,isValidElement:u.isValidElement,PropTypes:s,createClass:l,createFactory:d,createMixin:m,DOM:a,version:c,__spread:v};t.exports=y},function(t,e){/*\n\tobject-assign\n\t(c) Sindre Sorhus\n\t@license MIT\n\t*/\n\"use strict\";function n(t){if(null===t||void 0===t)throw new TypeError(\"Object.assign cannot be called with null or undefined\");return Object(t)}function r(){try{if(!Object.assign)return!1;var t=new String(\"abc\");if(t[5]=\"de\",\"5\"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e[\"_\"+String.fromCharCode(n)]=n;var r=Object.getOwnPropertyNames(e).map(function(t){return e[t]});if(\"0123456789\"!==r.join(\"\"))return!1;var o={};return\"abcdefghijklmnopqrst\".split(\"\").forEach(function(t){o[t]=t}),\"abcdefghijklmnopqrst\"===Object.keys(Object.assign({},o)).join(\"\")}catch(t){return!1}}var o=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;t.exports=r()?Object.assign:function(t,e){for(var r,u,s=n(t),c=1;c<arguments.length;c++){r=Object(arguments[c]);for(var l in r)i.call(r,l)&&(s[l]=r[l]);if(o){u=o(r);for(var f=0;f<u.length;f++)a.call(r,u[f])&&(s[u[f]]=r[u[f]])}}return s}},function(t,e,n){\"use strict\";function r(t,e,n){this.props=t,this.context=e,this.refs=c,this.updater=n||s}function o(t,e,n){this.props=t,this.context=e,this.refs=c,this.updater=n||s}function i(){}var a=n(5),u=n(3),s=n(6),c=(n(9),n(10));n(11),n(12);r.prototype.isReactComponent={},r.prototype.setState=function(t,e){\"object\"!=typeof t&&\"function\"!=typeof t&&null!=t?a(\"85\"):void 0,this.updater.enqueueSetState(this,t),e&&this.updater.enqueueCallback(this,e,\"setState\")},r.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this),t&&this.updater.enqueueCallback(this,t,\"forceUpdate\")};i.prototype=r.prototype,o.prototype=new i,o.prototype.constructor=o,u(o.prototype,r.prototype),o.prototype.isPureReactComponent=!0,t.exports={Component:r,PureComponent:o}},function(t,e){\"use strict\";function n(t){for(var e=arguments.length-1,n=\"Minified React error #\"+t+\"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant=\"+t,r=0;r<e;r++)n+=\"&args[]=\"+encodeURIComponent(arguments[r+1]);n+=\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\";var o=new Error(n);throw o.name=\"Invariant Violation\",o.framesToPop=1,o}t.exports=n},function(t,e,n){\"use strict\";function r(t,e){}var o=(n(7),{isMounted:function(t){return!1},enqueueCallback:function(t,e){},enqueueForceUpdate:function(t){r(t,\"forceUpdate\")},enqueueReplaceState:function(t,e){r(t,\"replaceState\")},enqueueSetState:function(t,e){r(t,\"setState\")}});t.exports=o},function(t,e,n){\"use strict\";var r=n(8),o=r;t.exports=o},function(t,e){\"use strict\";function n(t){return function(){return t}}var r=function(){};r.thatReturns=n,r.thatReturnsFalse=n(!1),r.thatReturnsTrue=n(!0),r.thatReturnsNull=n(null),r.thatReturnsThis=function(){return this},r.thatReturnsArgument=function(t){return t},t.exports=r},function(t,e,n){\"use strict\";var r=!1;t.exports=r},function(t,e,n){\"use strict\";var r={};t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r,i,a,u,s){if(o(e),!t){var c;if(void 0===e)c=new Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");else{var l=[n,r,i,a,u,s],f=0;c=new Error(e.replace(/%s/g,function(){return l[f++]})),c.name=\"Invariant Violation\"}throw c.framesToPop=1,c}}var o=function(t){};t.exports=r},function(t,e,n){\"use strict\";var r=function(){};t.exports=r},function(t,e,n){\"use strict\";function r(t){return(\"\"+t).replace(b,\"$&/\")}function o(t,e){this.func=t,this.context=e,this.count=0}function i(t,e,n){var r=t.func,o=t.context;r.call(o,e,t.count++)}function a(t,e,n){if(null==t)return t;var r=o.getPooled(e,n);y(t,i,r),o.release(r)}function u(t,e,n,r){this.result=t,this.keyPrefix=e,this.func=n,this.context=r,this.count=0}function s(t,e,n){var o=t.result,i=t.keyPrefix,a=t.func,u=t.context,s=a.call(u,e,t.count++);Array.isArray(s)?c(s,o,n,m.thatReturnsArgument):null!=s&&(v.isValidElement(s)&&(s=v.cloneAndReplaceKey(s,i+(!s.key||e&&e.key===s.key?\"\":r(s.key)+\"/\")+n)),o.push(s))}function c(t,e,n,o,i){var a=\"\";null!=n&&(a=r(n)+\"/\");var c=u.getPooled(e,a,o,i);y(t,s,c),u.release(c)}function l(t,e,n){if(null==t)return t;var r=[];return c(t,r,null,e,n),r}function f(t,e,n){return null}function p(t,e){return y(t,f,null)}function d(t){var e=[];return c(t,e,null,m.thatReturnsArgument),e}var h=n(14),v=n(15),m=n(8),y=n(18),g=h.twoArgumentPooler,_=h.fourArgumentPooler,b=/\\/+/g;o.prototype.destructor=function(){this.func=null,this.context=null,this.count=0},h.addPoolingTo(o,g),u.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},h.addPoolingTo(u,_);var w={forEach:a,map:l,mapIntoWithKeyPrefixInternal:c,count:p,toArray:d};t.exports=w},function(t,e,n){\"use strict\";var r=n(5),o=(n(11),function(t){var e=this;if(e.instancePool.length){var n=e.instancePool.pop();return e.call(n,t),n}return new e(t)}),i=function(t,e){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,t,e),r}return new n(t,e)},a=function(t,e,n){var r=this;if(r.instancePool.length){var o=r.instancePool.pop();return r.call(o,t,e,n),o}return new r(t,e,n)},u=function(t,e,n,r){var o=this;if(o.instancePool.length){var i=o.instancePool.pop();return o.call(i,t,e,n,r),i}return new o(t,e,n,r)},s=function(t){var e=this;t instanceof e?void 0:r(\"25\"),t.destructor(),e.instancePool.length<e.poolSize&&e.instancePool.push(t)},c=10,l=o,f=function(t,e){var n=t;return n.instancePool=[],n.getPooled=e||l,n.poolSize||(n.poolSize=c),n.release=s,n},p={addPoolingTo:f,oneArgumentPooler:o,twoArgumentPooler:i,threeArgumentPooler:a,fourArgumentPooler:u};t.exports=p},function(t,e,n){\"use strict\";function r(t){return void 0!==t.ref}function o(t){return void 0!==t.key}var i=n(3),a=n(16),u=(n(7),n(9),Object.prototype.hasOwnProperty),s=n(17),c={key:!0,ref:!0,__self:!0,__source:!0},l=function(t,e,n,r,o,i,a){var u={$$typeof:s,type:t,key:e,ref:n,props:a,_owner:i};return u};l.createElement=function(t,e,n){var i,s={},f=null,p=null,d=null,h=null;if(null!=e){r(e)&&(p=e.ref),o(e)&&(f=\"\"+e.key),d=void 0===e.__self?null:e.__self,h=void 0===e.__source?null:e.__source;for(i in e)u.call(e,i)&&!c.hasOwnProperty(i)&&(s[i]=e[i])}var v=arguments.length-2;if(1===v)s.children=n;else if(v>1){for(var m=Array(v),y=0;y<v;y++)m[y]=arguments[y+2];s.children=m}if(t&&t.defaultProps){var g=t.defaultProps;for(i in g)void 0===s[i]&&(s[i]=g[i])}return l(t,f,p,d,h,a.current,s)},l.createFactory=function(t){var e=l.createElement.bind(null,t);return e.type=t,e},l.cloneAndReplaceKey=function(t,e){var n=l(t.type,e,t.ref,t._self,t._source,t._owner,t.props);return n},l.cloneElement=function(t,e,n){var s,f=i({},t.props),p=t.key,d=t.ref,h=t._self,v=t._source,m=t._owner;if(null!=e){r(e)&&(d=e.ref,m=a.current),o(e)&&(p=\"\"+e.key);var y;t.type&&t.type.defaultProps&&(y=t.type.defaultProps);for(s in e)u.call(e,s)&&!c.hasOwnProperty(s)&&(void 0===e[s]&&void 0!==y?f[s]=y[s]:f[s]=e[s])}var g=arguments.length-2;if(1===g)f.children=n;else if(g>1){for(var _=Array(g),b=0;b<g;b++)_[b]=arguments[b+2];f.children=_}return l(t.type,p,d,h,v,m,f)},l.isValidElement=function(t){return\"object\"==typeof t&&null!==t&&t.$$typeof===s},t.exports=l},function(t,e){\"use strict\";var n={current:null};t.exports=n},function(t,e){\"use strict\";var n=\"function\"==typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103;t.exports=n},function(t,e,n){\"use strict\";function r(t,e){return t&&\"object\"==typeof t&&null!=t.key?c.escape(t.key):e.toString(36)}function o(t,e,n,i){var p=typeof t;if(\"undefined\"!==p&&\"boolean\"!==p||(t=null),null===t||\"string\"===p||\"number\"===p||\"object\"===p&&t.$$typeof===u)return n(i,t,\"\"===e?l+r(t,0):e),1;var d,h,v=0,m=\"\"===e?l:e+f;if(Array.isArray(t))for(var y=0;y<t.length;y++)d=t[y],h=m+r(d,y),v+=o(d,h,n,i);else{var g=s(t);if(g){var _,b=g.call(t);if(g!==t.entries)for(var w=0;!(_=b.next()).done;)d=_.value,h=m+r(d,w++),v+=o(d,h,n,i);else for(;!(_=b.next()).done;){var E=_.value;E&&(d=E[1],h=m+c.escape(E[0])+f+r(d,0),v+=o(d,h,n,i))}}else if(\"object\"===p){var C=\"\",S=String(t);a(\"31\",\"[object Object]\"===S?\"object with keys {\"+Object.keys(t).join(\", \")+\"}\":S,C)}}return v}function i(t,e,n){return null==t?0:o(t,\"\",e,n)}var a=n(5),u=(n(16),n(17)),s=n(19),c=(n(11),n(20)),l=(n(7),\".\"),f=\":\";t.exports=i},function(t,e){\"use strict\";function n(t){var e=t&&(r&&t[r]||t[o]);if(\"function\"==typeof e)return e}var r=\"function\"==typeof Symbol&&Symbol.iterator,o=\"@@iterator\";t.exports=n},function(t,e){\"use strict\";function n(t){var e=/[=:]/g,n={\"=\":\"=0\",\":\":\"=2\"},r=(\"\"+t).replace(e,function(t){return n[t]});return\"$\"+r}function r(t){var e=/(=0|=2)/g,n={\"=0\":\"=\",\"=2\":\":\"},r=\".\"===t[0]&&\"$\"===t[1]?t.substring(2):t.substring(1);return(\"\"+r).replace(e,function(t){return n[t]})}var o={escape:n,unescape:r};t.exports=o},function(t,e,n){\"use strict\";var r=n(15),o=r.createFactory,i={a:o(\"a\"),abbr:o(\"abbr\"),address:o(\"address\"),area:o(\"area\"),article:o(\"article\"),aside:o(\"aside\"),audio:o(\"audio\"),b:o(\"b\"),base:o(\"base\"),bdi:o(\"bdi\"),bdo:o(\"bdo\"),big:o(\"big\"),blockquote:o(\"blockquote\"),body:o(\"body\"),br:o(\"br\"),button:o(\"button\"),canvas:o(\"canvas\"),caption:o(\"caption\"),cite:o(\"cite\"),code:o(\"code\"),col:o(\"col\"),colgroup:o(\"colgroup\"),data:o(\"data\"),datalist:o(\"datalist\"),dd:o(\"dd\"),del:o(\"del\"),details:o(\"details\"),dfn:o(\"dfn\"),dialog:o(\"dialog\"),div:o(\"div\"),dl:o(\"dl\"),dt:o(\"dt\"),em:o(\"em\"),embed:o(\"embed\"),fieldset:o(\"fieldset\"),figcaption:o(\"figcaption\"),figure:o(\"figure\"),footer:o(\"footer\"),form:o(\"form\"),h1:o(\"h1\"),h2:o(\"h2\"),h3:o(\"h3\"),h4:o(\"h4\"),h5:o(\"h5\"),h6:o(\"h6\"),head:o(\"head\"),header:o(\"header\"),hgroup:o(\"hgroup\"),hr:o(\"hr\"),html:o(\"html\"),i:o(\"i\"),iframe:o(\"iframe\"),img:o(\"img\"),input:o(\"input\"),ins:o(\"ins\"),kbd:o(\"kbd\"),keygen:o(\"keygen\"),label:o(\"label\"),legend:o(\"legend\"),li:o(\"li\"),link:o(\"link\"),main:o(\"main\"),map:o(\"map\"),mark:o(\"mark\"),menu:o(\"menu\"),menuitem:o(\"menuitem\"),meta:o(\"meta\"),meter:o(\"meter\"),nav:o(\"nav\"),noscript:o(\"noscript\"),object:o(\"object\"),ol:o(\"ol\"),optgroup:o(\"optgroup\"),option:o(\"option\"),output:o(\"output\"),p:o(\"p\"),param:o(\"param\"),picture:o(\"picture\"),pre:o(\"pre\"),progress:o(\"progress\"),q:o(\"q\"),rp:o(\"rp\"),rt:o(\"rt\"),ruby:o(\"ruby\"),s:o(\"s\"),samp:o(\"samp\"),script:o(\"script\"),section:o(\"section\"),select:o(\"select\"),small:o(\"small\"),source:o(\"source\"),span:o(\"span\"),strong:o(\"strong\"),style:o(\"style\"),sub:o(\"sub\"),summary:o(\"summary\"),sup:o(\"sup\"),table:o(\"table\"),tbody:o(\"tbody\"),td:o(\"td\"),textarea:o(\"textarea\"),tfoot:o(\"tfoot\"),th:o(\"th\"),thead:o(\"thead\"),time:o(\"time\"),title:o(\"title\"),tr:o(\"tr\"),track:o(\"track\"),u:o(\"u\"),ul:o(\"ul\"),var:o(\"var\"),video:o(\"video\"),wbr:o(\"wbr\"),circle:o(\"circle\"),clipPath:o(\"clipPath\"),defs:o(\"defs\"),ellipse:o(\"ellipse\"),g:o(\"g\"),image:o(\"image\"),line:o(\"line\"),linearGradient:o(\"linearGradient\"),mask:o(\"mask\"),path:o(\"path\"),pattern:o(\"pattern\"),polygon:o(\"polygon\"),polyline:o(\"polyline\"),radialGradient:o(\"radialGradient\"),rect:o(\"rect\"),stop:o(\"stop\"),svg:o(\"svg\"),text:o(\"text\"),tspan:o(\"tspan\")};t.exports=i},function(t,e,n){\"use strict\";var r=n(15),o=r.isValidElement,i=n(23);t.exports=i(o)},function(t,e,n){\"use strict\";var r=n(24);t.exports=function(t){var e=!1;return r(t,e)}},function(t,e,n){\"use strict\";function r(){return null}var o=n(25),i=n(3),a=n(27),u=n(28),s=Function.call.bind(Object.prototype.hasOwnProperty),c=function(){};t.exports=function(t,e){function n(t){var e=t&&(I&&t[I]||t[R]);if(\"function\"==typeof e)return e}function l(t,e){return t===e?0!==t||1/t===1/e:t!==t&&e!==e}function f(t){this.message=t,this.stack=\"\"}function p(t){function n(n,r,o,i,u,s,c){if(i=i||A,s=s||o,c!==a){if(e){var l=new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types\");throw l.name=\"Invariant Violation\",l}}return null==r[o]?n?new f(null===r[o]?\"The \"+u+\" `\"+s+\"` is marked as required \"+(\"in `\"+i+\"`, but its value is `null`.\"):\"The \"+u+\" `\"+s+\"` is marked as required in \"+(\"`\"+i+\"`, but its value is `undefined`.\")):null:t(r,o,i,u,s)}var r=n.bind(null,!1);return r.isRequired=n.bind(null,!0),r}function d(t){function e(e,n,r,o,i,a){var u=e[n],s=T(u);if(s!==t){var c=O(u);return new f(\"Invalid \"+o+\" `\"+i+\"` of type \"+(\"`\"+c+\"` supplied to `\"+r+\"`, expected \")+(\"`\"+t+\"`.\"))}return null}return p(e)}function h(){return p(r)}function v(t){function e(e,n,r,o,i){if(\"function\"!=typeof t)return new f(\"Property `\"+i+\"` of component `\"+r+\"` has invalid PropType notation inside arrayOf.\");var u=e[n];if(!Array.isArray(u)){var s=T(u);return new f(\"Invalid \"+o+\" `\"+i+\"` of type \"+(\"`\"+s+\"` supplied to `\"+r+\"`, expected an array.\"))}for(var c=0;c<u.length;c++){var l=t(u,c,r,o,i+\"[\"+c+\"]\",a);if(l instanceof Error)return l}return null}return p(e)}function m(){function e(e,n,r,o,i){var a=e[n];if(!t(a)){var u=T(a);return new f(\"Invalid \"+o+\" `\"+i+\"` of type \"+(\"`\"+u+\"` supplied to `\"+r+\"`, expected a single ReactElement.\"))}return null}return p(e)}function y(){function t(t,e,n,r,i){var a=t[e];if(!o.isValidElementType(a)){var u=T(a);return new f(\"Invalid \"+r+\" `\"+i+\"` of type \"+(\"`\"+u+\"` supplied to `\"+n+\"`, expected a single ReactElement type.\"))}return null}return p(t)}function g(t){function e(e,n,r,o,i){if(!(e[n]instanceof t)){var a=t.name||A,u=M(e[n]);return new f(\"Invalid \"+o+\" `\"+i+\"` of type \"+(\"`\"+u+\"` supplied to `\"+r+\"`, expected \")+(\"instance of `\"+a+\"`.\"))}return null}return p(e)}function _(t){function e(e,n,r,o,i){for(var a=e[n],u=0;u<t.length;u++)if(l(a,t[u]))return null;var s=JSON.stringify(t,function(t,e){var n=O(e);return\"symbol\"===n?String(e):e});return new f(\"Invalid \"+o+\" `\"+i+\"` of value `\"+String(a)+\"` \"+(\"supplied to `\"+r+\"`, expected one of \"+s+\".\"))}return Array.isArray(t)?p(e):r}function b(t){function e(e,n,r,o,i){if(\"function\"!=typeof t)return new f(\"Property `\"+i+\"` of component `\"+r+\"` has invalid PropType notation inside objectOf.\");var u=e[n],c=T(u);if(\"object\"!==c)return new f(\"Invalid \"+o+\" `\"+i+\"` of type \"+(\"`\"+c+\"` supplied to `\"+r+\"`, expected an object.\"));for(var l in u)if(s(u,l)){var p=t(u,l,r,o,i+\".\"+l,a);if(p instanceof Error)return p}return null}return p(e)}function w(t){function e(e,n,r,o,i){for(var u=0;u<t.length;u++){var s=t[u];if(null==s(e,n,r,o,i,a))return null}return new f(\"Invalid \"+o+\" `\"+i+\"` supplied to \"+(\"`\"+r+\"`.\"))}if(!Array.isArray(t))return r;for(var n=0;n<t.length;n++){var o=t[n];if(\"function\"!=typeof o)return c(\"Invalid argument supplied to oneOfType. Expected an array of check functions, but received \"+k(o)+\" at index \"+n+\".\"),r}return p(e)}function E(){function t(t,e,n,r,o){return x(t[e])?null:new f(\"Invalid \"+r+\" `\"+o+\"` supplied to \"+(\"`\"+n+\"`, expected a ReactNode.\"))}return p(t)}function C(t){function e(e,n,r,o,i){var u=e[n],s=T(u);if(\"object\"!==s)return new f(\"Invalid \"+o+\" `\"+i+\"` of type `\"+s+\"` \"+(\"supplied to `\"+r+\"`, expected `object`.\"));for(var c in t){var l=t[c];if(l){var p=l(u,c,r,o,i+\".\"+c,a);if(p)return p}}return null}return p(e)}function S(t){function e(e,n,r,o,u){var s=e[n],c=T(s);if(\"object\"!==c)return new f(\"Invalid \"+o+\" `\"+u+\"` of type `\"+c+\"` \"+(\"supplied to `\"+r+\"`, expected `object`.\"));var l=i({},e[n],t);for(var p in l){var d=t[p];if(!d)return new f(\"Invalid \"+o+\" `\"+u+\"` key `\"+p+\"` supplied to `\"+r+\"`.\\nBad object: \"+JSON.stringify(e[n],null,\"  \")+\"\\nValid keys: \"+JSON.stringify(Object.keys(t),null,\"  \"));var h=d(s,p,r,o,u+\".\"+p,a);if(h)return h}return null}return p(e)}function x(e){switch(typeof e){case\"number\":case\"string\":case\"undefined\":return!0;case\"boolean\":return!e;case\"object\":if(Array.isArray(e))return e.every(x);if(null===e||t(e))return!0;var r=n(e);if(!r)return!1;var o,i=r.call(e);if(r!==e.entries){for(;!(o=i.next()).done;)if(!x(o.value))return!1}else for(;!(o=i.next()).done;){var a=o.value;if(a&&!x(a[1]))return!1}return!0;default:return!1}}function P(t,e){return\"symbol\"===t||!!e&&(\"Symbol\"===e[\"@@toStringTag\"]||\"function\"==typeof Symbol&&e instanceof Symbol)}function T(t){var e=typeof t;return Array.isArray(t)?\"array\":t instanceof RegExp?\"object\":P(e,t)?\"symbol\":e}function O(t){if(\"undefined\"==typeof t||null===t)return\"\"+t;var e=T(t);if(\"object\"===e){if(t instanceof Date)return\"date\";if(t instanceof RegExp)return\"regexp\"}return e}function k(t){var e=O(t);switch(e){case\"array\":case\"object\":return\"an \"+e;case\"boolean\":case\"date\":case\"regexp\":return\"a \"+e;default:return e}}function M(t){return t.constructor&&t.constructor.name?t.constructor.name:A}var I=\"function\"==typeof Symbol&&Symbol.iterator,R=\"@@iterator\",A=\"<<anonymous>>\",N={array:d(\"array\"),bool:d(\"boolean\"),func:d(\"function\"),number:d(\"number\"),object:d(\"object\"),string:d(\"string\"),symbol:d(\"symbol\"),any:h(),arrayOf:v,element:m(),elementType:y(),instanceOf:g,node:E(),objectOf:b,oneOf:_,oneOfType:w,shape:C,exact:S};return f.prototype=Error.prototype,N.checkPropTypes=u,N.resetWarningCache=u.resetWarningCache,N.PropTypes=N,N}},function(t,e,n){\"use strict\";t.exports=n(26)},function(t,e){/** @license React v16.8.3\n\t * react-is.production.min.js\n\t *\n\t * Copyright (c) Facebook, Inc. and its affiliates.\n\t *\n\t * This source code is licensed under the MIT license found in the\n\t * LICENSE file in the root directory of this source tree.\n\t */\n\"use strict\";function n(t){if(\"object\"==typeof t&&null!==t){var e=t.$$typeof;switch(e){case i:switch(t=t.type){case p:case d:case u:case c:case s:case v:return t;default:switch(t=t&&t.$$typeof){case f:case h:case l:return t;default:return e}}case y:case m:case a:return e}}}function r(t){return n(t)===d}Object.defineProperty(e,\"__esModule\",{value:!0});var o=\"function\"==typeof Symbol&&Symbol.for,i=o?Symbol.for(\"react.element\"):60103,a=o?Symbol.for(\"react.portal\"):60106,u=o?Symbol.for(\"react.fragment\"):60107,s=o?Symbol.for(\"react.strict_mode\"):60108,c=o?Symbol.for(\"react.profiler\"):60114,l=o?Symbol.for(\"react.provider\"):60109,f=o?Symbol.for(\"react.context\"):60110,p=o?Symbol.for(\"react.async_mode\"):60111,d=o?Symbol.for(\"react.concurrent_mode\"):60111,h=o?Symbol.for(\"react.forward_ref\"):60112,v=o?Symbol.for(\"react.suspense\"):60113,m=o?Symbol.for(\"react.memo\"):60115,y=o?Symbol.for(\"react.lazy\"):60116;e.typeOf=n,e.AsyncMode=p,e.ConcurrentMode=d,e.ContextConsumer=f,e.ContextProvider=l,e.Element=i,e.ForwardRef=h,e.Fragment=u,e.Lazy=y,e.Memo=m,e.Portal=a,e.Profiler=c,e.StrictMode=s,e.Suspense=v,e.isValidElementType=function(t){return\"string\"==typeof t||\"function\"==typeof t||t===u||t===d||t===c||t===s||t===v||\"object\"==typeof t&&null!==t&&(t.$$typeof===y||t.$$typeof===m||t.$$typeof===l||t.$$typeof===f||t.$$typeof===h)},e.isAsyncMode=function(t){return r(t)||n(t)===p},e.isConcurrentMode=r,e.isContextConsumer=function(t){return n(t)===f},e.isContextProvider=function(t){return n(t)===l},e.isElement=function(t){return\"object\"==typeof t&&null!==t&&t.$$typeof===i},e.isForwardRef=function(t){return n(t)===h},e.isFragment=function(t){return n(t)===u},e.isLazy=function(t){return n(t)===y},e.isMemo=function(t){return n(t)===m},e.isPortal=function(t){return n(t)===a},e.isProfiler=function(t){return n(t)===c},e.isStrictMode=function(t){return n(t)===s},e.isSuspense=function(t){return n(t)===v}},function(t,e){\"use strict\";var n=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\";t.exports=n},function(t,e,n){\"use strict\";function r(t,e,n,r,o){}r.resetWarningCache=function(){},t.exports=r},function(t,e){\"use strict\";t.exports=\"15.6.2\"},function(t,e,n){\"use strict\";var r=n(4),o=r.Component,i=n(15),a=i.isValidElement,u=n(6),s=n(31);t.exports=s(o,a,u)},function(t,e,n){\"use strict\";function r(t){return t}function o(t,e,n){function o(t,e){var n=g.hasOwnProperty(e)?g[e]:null;C.hasOwnProperty(e)&&s(\"OVERRIDE_BASE\"===n,\"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.\",e),t&&s(\"DEFINE_MANY\"===n||\"DEFINE_MANY_MERGED\"===n,\"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.\",e)}function i(t,n){if(n){s(\"function\"!=typeof n,\"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object.\"),s(!e(n),\"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.\");var r=t.prototype,i=r.__reactAutoBindPairs;n.hasOwnProperty(c)&&b.mixins(t,n.mixins);for(var a in n)if(n.hasOwnProperty(a)&&a!==c){var u=n[a],l=r.hasOwnProperty(a);if(o(l,a),b.hasOwnProperty(a))b[a](t,u);else{var f=g.hasOwnProperty(a),h=\"function\"==typeof u,v=h&&!f&&!l&&n.autobind!==!1;if(v)i.push(a,u),r[a]=u;else if(l){var m=g[a];s(f&&(\"DEFINE_MANY_MERGED\"===m||\"DEFINE_MANY\"===m),\"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.\",m,a),\"DEFINE_MANY_MERGED\"===m?r[a]=p(r[a],u):\"DEFINE_MANY\"===m&&(r[a]=d(r[a],u))}else r[a]=u}}}else;}function l(t,e){if(e)for(var n in e){var r=e[n];if(e.hasOwnProperty(n)){var o=n in b;s(!o,'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it as an instance property instead; it will still be accessible on the constructor.',n);var i=n in t;if(i){var a=_.hasOwnProperty(n)?_[n]:null;return s(\"DEFINE_MANY_MERGED\"===a,\"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.\",n),void(t[n]=p(t[n],r))}t[n]=r}}}function f(t,e){s(t&&e&&\"object\"==typeof t&&\"object\"==typeof e,\"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.\");for(var n in e)e.hasOwnProperty(n)&&(s(void 0===t[n],\"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.\",n),t[n]=e[n]);return t}function p(t,e){return function(){var n=t.apply(this,arguments),r=e.apply(this,arguments);if(null==n)return r;if(null==r)return n;var o={};return f(o,n),f(o,r),o}}function d(t,e){return function(){t.apply(this,arguments),e.apply(this,arguments)}}function h(t,e){var n=e.bind(t);return n}function v(t){for(var e=t.__reactAutoBindPairs,n=0;n<e.length;n+=2){var r=e[n],o=e[n+1];t[r]=h(t,o)}}function m(t){var e=r(function(t,r,o){this.__reactAutoBindPairs.length&&v(this),this.props=t,this.context=r,this.refs=u,this.updater=o||n,this.state=null;var i=this.getInitialState?this.getInitialState():null;s(\"object\"==typeof i&&!Array.isArray(i),\"%s.getInitialState(): must return an object or null\",e.displayName||\"ReactCompositeComponent\"),this.state=i});e.prototype=new S,e.prototype.constructor=e,e.prototype.__reactAutoBindPairs=[],y.forEach(i.bind(null,e)),i(e,w),i(e,t),i(e,E),e.getDefaultProps&&(e.defaultProps=e.getDefaultProps()),s(e.prototype.render,\"createClass(...): Class specification must implement a `render` method.\");for(var o in g)e.prototype[o]||(e.prototype[o]=null);return e}var y=[],g={mixins:\"DEFINE_MANY\",statics:\"DEFINE_MANY\",propTypes:\"DEFINE_MANY\",contextTypes:\"DEFINE_MANY\",childContextTypes:\"DEFINE_MANY\",getDefaultProps:\"DEFINE_MANY_MERGED\",getInitialState:\"DEFINE_MANY_MERGED\",getChildContext:\"DEFINE_MANY_MERGED\",render:\"DEFINE_ONCE\",componentWillMount:\"DEFINE_MANY\",componentDidMount:\"DEFINE_MANY\",componentWillReceiveProps:\"DEFINE_MANY\",shouldComponentUpdate:\"DEFINE_ONCE\",componentWillUpdate:\"DEFINE_MANY\",componentDidUpdate:\"DEFINE_MANY\",componentWillUnmount:\"DEFINE_MANY\",UNSAFE_componentWillMount:\"DEFINE_MANY\",UNSAFE_componentWillReceiveProps:\"DEFINE_MANY\",UNSAFE_componentWillUpdate:\"DEFINE_MANY\",updateComponent:\"OVERRIDE_BASE\"},_={getDerivedStateFromProps:\"DEFINE_MANY_MERGED\"},b={displayName:function(t,e){t.displayName=e},mixins:function(t,e){if(e)for(var n=0;n<e.length;n++)i(t,e[n])},childContextTypes:function(t,e){t.childContextTypes=a({},t.childContextTypes,e)},contextTypes:function(t,e){t.contextTypes=a({},t.contextTypes,e)},getDefaultProps:function(t,e){t.getDefaultProps?t.getDefaultProps=p(t.getDefaultProps,e):t.getDefaultProps=e},propTypes:function(t,e){t.propTypes=a({},t.propTypes,e)},statics:function(t,e){l(t,e)},autobind:function(){}},w={componentDidMount:function(){this.__isMounted=!0}},E={componentWillUnmount:function(){this.__isMounted=!1}},C={replaceState:function(t,e){this.updater.enqueueReplaceState(this,t,e)},isMounted:function(){return!!this.__isMounted}},S=function(){};return a(S.prototype,t.prototype,C),m}var i,a=n(3),u=n(10),s=n(11),c=\"mixins\";i={},t.exports=o},function(t,e,n){\"use strict\";function r(t){return i.isValidElement(t)?void 0:o(\"143\"),t}var o=n(5),i=n(15);n(11);t.exports=r},function(t,e,n){\"use strict\";t.exports=n(34)},function(t,e,n){\"use strict\";var r=n(35),o=n(39),i=n(163),a=n(60),u=n(57),s=n(168),c=n(169),l=n(170),f=n(171);n(7);o.inject();var p={findDOMNode:c,render:i.render,unmountComponentAtNode:i.unmountComponentAtNode,version:s,unstable_batchedUpdates:u.batchedUpdates,unstable_renderSubtreeIntoContainer:f};\"undefined\"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&\"function\"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject&&__REACT_DEVTOOLS_GLOBAL_HOOK__.inject({ComponentTree:{getClosestInstanceFromNode:r.getClosestInstanceFromNode,getNodeFromInstance:function(t){return t._renderedComponent&&(t=l(t)),t?r.getNodeFromInstance(t):null}},Mount:i,Reconciler:a});t.exports=p},function(t,e,n){\"use strict\";function r(t,e){return 1===t.nodeType&&t.getAttribute(h)===String(e)||8===t.nodeType&&t.nodeValue===\" react-text: \"+e+\" \"||8===t.nodeType&&t.nodeValue===\" react-empty: \"+e+\" \"}function o(t){for(var e;e=t._renderedComponent;)t=e;return t}function i(t,e){var n=o(t);n._hostNode=e,e[m]=n}function a(t){var e=t._hostNode;e&&(delete e[m],t._hostNode=null)}function u(t,e){if(!(t._flags&v.hasCachedChildNodes)){var n=t._renderedChildren,a=e.firstChild;t:for(var u in n)if(n.hasOwnProperty(u)){var s=n[u],c=o(s)._domID;if(0!==c){for(;null!==a;a=a.nextSibling)if(r(a,c)){i(s,a);continue t}f(\"32\",c)}}t._flags|=v.hasCachedChildNodes}}function s(t){if(t[m])return t[m];for(var e=[];!t[m];){if(e.push(t),!t.parentNode)return null;t=t.parentNode}for(var n,r;t&&(r=t[m]);t=e.pop())n=r,e.length&&u(r,t);return n}function c(t){var e=s(t);return null!=e&&e._hostNode===t?e:null}function l(t){if(void 0===t._hostNode?f(\"33\"):void 0,t._hostNode)return t._hostNode;for(var e=[];!t._hostNode;)e.push(t),t._hostParent?void 0:f(\"34\"),t=t._hostParent;for(;e.length;t=e.pop())u(t,t._hostNode);return t._hostNode}var f=n(36),p=n(37),d=n(38),h=(n(11),p.ID_ATTRIBUTE_NAME),v=d,m=\"__reactInternalInstance$\"+Math.random().toString(36).slice(2),y={getClosestInstanceFromNode:s,getInstanceFromNode:c,getNodeFromInstance:l,precacheChildNodes:u,precacheNode:i,uncacheNode:a};t.exports=y},function(t,e){\"use strict\";function n(t){for(var e=arguments.length-1,n=\"Minified React error #\"+t+\"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant=\"+t,r=0;r<e;r++)n+=\"&args[]=\"+encodeURIComponent(arguments[r+1]);n+=\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\";var o=new Error(n);throw o.name=\"Invariant Violation\",o.framesToPop=1,o}t.exports=n},function(t,e,n){\"use strict\";function r(t,e){return(t&e)===e}var o=n(36),i=(n(11),{MUST_USE_PROPERTY:1,HAS_BOOLEAN_VALUE:4,HAS_NUMERIC_VALUE:8,HAS_POSITIVE_NUMERIC_VALUE:24,HAS_OVERLOADED_BOOLEAN_VALUE:32,injectDOMPropertyConfig:function(t){var e=i,n=t.Properties||{},a=t.DOMAttributeNamespaces||{},s=t.DOMAttributeNames||{},c=t.DOMPropertyNames||{},l=t.DOMMutationMethods||{};t.isCustomAttribute&&u._isCustomAttributeFunctions.push(t.isCustomAttribute);for(var f in n){u.properties.hasOwnProperty(f)?o(\"48\",f):void 0;var p=f.toLowerCase(),d=n[f],h={attributeName:p,attributeNamespace:null,propertyName:f,mutationMethod:null,mustUseProperty:r(d,e.MUST_USE_PROPERTY),hasBooleanValue:r(d,e.HAS_BOOLEAN_VALUE),hasNumericValue:r(d,e.HAS_NUMERIC_VALUE),hasPositiveNumericValue:r(d,e.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:r(d,e.HAS_OVERLOADED_BOOLEAN_VALUE)};if(h.hasBooleanValue+h.hasNumericValue+h.hasOverloadedBooleanValue<=1?void 0:o(\"50\",f),s.hasOwnProperty(f)){var v=s[f];h.attributeName=v}a.hasOwnProperty(f)&&(h.attributeNamespace=a[f]),c.hasOwnProperty(f)&&(h.propertyName=c[f]),l.hasOwnProperty(f)&&(h.mutationMethod=l[f]),u.properties[f]=h}}}),a=\":A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",u={ID_ATTRIBUTE_NAME:\"data-reactid\",ROOT_ATTRIBUTE_NAME:\"data-reactroot\",ATTRIBUTE_NAME_START_CHAR:a,ATTRIBUTE_NAME_CHAR:a+\"\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\",properties:{},getPossibleStandardName:null,_isCustomAttributeFunctions:[],isCustomAttribute:function(t){for(var e=0;e<u._isCustomAttributeFunctions.length;e++){var n=u._isCustomAttributeFunctions[e];if(n(t))return!0}return!1},injection:i};t.exports=u},function(t,e){\"use strict\";var n={hasCachedChildNodes:1};t.exports=n},function(t,e,n){\"use strict\";function r(){C||(C=!0,g.EventEmitter.injectReactEventListener(y),g.EventPluginHub.injectEventPluginOrder(u),g.EventPluginUtils.injectComponentTree(p),g.EventPluginUtils.injectTreeTraversal(h),g.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:E,EnterLeaveEventPlugin:s,ChangeEventPlugin:a,SelectEventPlugin:w,BeforeInputEventPlugin:i}),g.HostComponent.injectGenericComponentClass(f),g.HostComponent.injectTextComponentClass(v),g.DOMProperty.injectDOMPropertyConfig(o),g.DOMProperty.injectDOMPropertyConfig(c),g.DOMProperty.injectDOMPropertyConfig(b),g.EmptyComponent.injectEmptyComponentFactory(function(t){return new d(t)}),g.Updates.injectReconcileTransaction(_),g.Updates.injectBatchingStrategy(m),g.Component.injectEnvironment(l))}var o=n(40),i=n(41),a=n(56),u=n(69),s=n(70),c=n(75),l=n(76),f=n(89),p=n(35),d=n(134),h=n(135),v=n(136),m=n(137),y=n(138),g=n(141),_=n(142),b=n(150),w=n(151),E=n(152),C=!1;t.exports={inject:r}},function(t,e){\"use strict\";var n={Properties:{\"aria-current\":0,\"aria-details\":0,\"aria-disabled\":0,\"aria-hidden\":0,\"aria-invalid\":0,\"aria-keyshortcuts\":0,\"aria-label\":0,\"aria-roledescription\":0,\"aria-autocomplete\":0,\"aria-checked\":0,\"aria-expanded\":0,\"aria-haspopup\":0,\"aria-level\":0,\"aria-modal\":0,\"aria-multiline\":0,\"aria-multiselectable\":0,\"aria-orientation\":0,\"aria-placeholder\":0,\"aria-pressed\":0,\"aria-readonly\":0,\"aria-required\":0,\"aria-selected\":0,\"aria-sort\":0,\"aria-valuemax\":0,\"aria-valuemin\":0,\"aria-valuenow\":0,\"aria-valuetext\":0,\"aria-atomic\":0,\"aria-busy\":0,\"aria-live\":0,\"aria-relevant\":0,\"aria-dropeffect\":0,\"aria-grabbed\":0,\"aria-activedescendant\":0,\"aria-colcount\":0,\"aria-colindex\":0,\"aria-colspan\":0,\"aria-controls\":0,\"aria-describedby\":0,\"aria-errormessage\":0,\"aria-flowto\":0,\"aria-labelledby\":0,\"aria-owns\":0,\"aria-posinset\":0,\"aria-rowcount\":0,\"aria-rowindex\":0,\"aria-rowspan\":0,\"aria-setsize\":0},DOMAttributeNames:{},DOMPropertyNames:{}};t.exports=n},function(t,e,n){\"use strict\";function r(){var t=window.opera;return\"object\"==typeof t&&\"function\"==typeof t.version&&parseInt(t.version(),10)<=12}function o(t){return(t.ctrlKey||t.altKey||t.metaKey)&&!(t.ctrlKey&&t.altKey)}function i(t){switch(t){case\"topCompositionStart\":return P.compositionStart;case\"topCompositionEnd\":return P.compositionEnd;case\"topCompositionUpdate\":return P.compositionUpdate}}function a(t,e){return\"topKeyDown\"===t&&e.keyCode===_}function u(t,e){switch(t){case\"topKeyUp\":return g.indexOf(e.keyCode)!==-1;case\"topKeyDown\":return e.keyCode!==_;case\"topKeyPress\":case\"topMouseDown\":case\"topBlur\":return!0;default:return!1}}function s(t){var e=t.detail;return\"object\"==typeof e&&\"data\"in e?e.data:null}function c(t,e,n,r){var o,c;if(b?o=i(t):O?u(t,n)&&(o=P.compositionEnd):a(t,n)&&(o=P.compositionStart),!o)return null;C&&(O||o!==P.compositionStart?o===P.compositionEnd&&O&&(c=O.getData()):O=v.getPooled(r));var l=m.getPooled(o,e,n,r);if(c)l.data=c;else{var f=s(n);null!==f&&(l.data=f)}return d.accumulateTwoPhaseDispatches(l),l}function l(t,e){switch(t){case\"topCompositionEnd\":return s(e);case\"topKeyPress\":var n=e.which;return n!==S?null:(T=!0,x);case\"topTextInput\":var r=e.data;return r===x&&T?null:r;default:return null}}function f(t,e){if(O){if(\"topCompositionEnd\"===t||!b&&u(t,e)){var n=O.getData();return v.release(O),O=null,n}return null}switch(t){case\"topPaste\":return null;case\"topKeyPress\":return e.which&&!o(e)?String.fromCharCode(e.which):null;case\"topCompositionEnd\":return C?null:e.data;default:return null}}function p(t,e,n,r){var o;if(o=E?l(t,n):f(t,n),!o)return null;var i=y.getPooled(P.beforeInput,e,n,r);return i.data=o,d.accumulateTwoPhaseDispatches(i),i}var d=n(42),h=n(49),v=n(50),m=n(53),y=n(55),g=[9,13,27,32],_=229,b=h.canUseDOM&&\"CompositionEvent\"in window,w=null;h.canUseDOM&&\"documentMode\"in document&&(w=document.documentMode);var E=h.canUseDOM&&\"TextEvent\"in window&&!w&&!r(),C=h.canUseDOM&&(!b||w&&w>8&&w<=11),S=32,x=String.fromCharCode(S),P={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"topCompositionEnd\",\"topKeyPress\",\"topTextInput\",\"topPaste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:[\"topBlur\",\"topCompositionEnd\",\"topKeyDown\",\"topKeyPress\",\"topKeyUp\",\"topMouseDown\"]},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",captured:\"onCompositionStartCapture\"},dependencies:[\"topBlur\",\"topCompositionStart\",\"topKeyDown\",\"topKeyPress\",\"topKeyUp\",\"topMouseDown\"]},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:[\"topBlur\",\"topCompositionUpdate\",\"topKeyDown\",\"topKeyPress\",\"topKeyUp\",\"topMouseDown\"]}},T=!1,O=null,k={eventTypes:P,extractEvents:function(t,e,n,r){return[c(t,e,n,r),p(t,e,n,r)]}};t.exports=k},function(t,e,n){\"use strict\";function r(t,e,n){var r=e.dispatchConfig.phasedRegistrationNames[n];return y(t,r)}function o(t,e,n){var o=r(t,n,e);o&&(n._dispatchListeners=v(n._dispatchListeners,o),n._dispatchInstances=v(n._dispatchInstances,t))}function i(t){t&&t.dispatchConfig.phasedRegistrationNames&&h.traverseTwoPhase(t._targetInst,o,t)}function a(t){if(t&&t.dispatchConfig.phasedRegistrationNames){var e=t._targetInst,n=e?h.getParentInstance(e):null;h.traverseTwoPhase(n,o,t)}}function u(t,e,n){if(n&&n.dispatchConfig.registrationName){var r=n.dispatchConfig.registrationName,o=y(t,r);o&&(n._dispatchListeners=v(n._dispatchListeners,o),n._dispatchInstances=v(n._dispatchInstances,t))}}function s(t){t&&t.dispatchConfig.registrationName&&u(t._targetInst,null,t)}function c(t){m(t,i)}function l(t){m(t,a)}function f(t,e,n,r){h.traverseEnterLeave(n,r,u,t,e)}function p(t){m(t,s)}var d=n(43),h=n(45),v=n(47),m=n(48),y=(n(7),d.getListener),g={accumulateTwoPhaseDispatches:c,accumulateTwoPhaseDispatchesSkipTarget:l,accumulateDirectDispatches:p,accumulateEnterLeaveDispatches:f};t.exports=g},function(t,e,n){\"use strict\";function r(t){return\"button\"===t||\"input\"===t||\"select\"===t||\"textarea\"===t}function o(t,e,n){switch(t){case\"onClick\":case\"onClickCapture\":case\"onDoubleClick\":case\"onDoubleClickCapture\":case\"onMouseDown\":case\"onMouseDownCapture\":case\"onMouseMove\":case\"onMouseMoveCapture\":case\"onMouseUp\":case\"onMouseUpCapture\":return!(!n.disabled||!r(e));default:return!1}}var i=n(36),a=n(44),u=n(45),s=n(46),c=n(47),l=n(48),f=(n(11),{}),p=null,d=function(t,e){t&&(u.executeDispatchesInOrder(t,e),t.isPersistent()||t.constructor.release(t))},h=function(t){return d(t,!0)},v=function(t){return d(t,!1)},m=function(t){return\".\"+t._rootNodeID},y={injection:{injectEventPluginOrder:a.injectEventPluginOrder,injectEventPluginsByName:a.injectEventPluginsByName},putListener:function(t,e,n){\"function\"!=typeof n?i(\"94\",e,typeof n):void 0;var r=m(t),o=f[e]||(f[e]={});o[r]=n;var u=a.registrationNameModules[e];u&&u.didPutListener&&u.didPutListener(t,e,n)},getListener:function(t,e){var n=f[e];if(o(e,t._currentElement.type,t._currentElement.props))return null;var r=m(t);return n&&n[r]},deleteListener:function(t,e){var n=a.registrationNameModules[e];n&&n.willDeleteListener&&n.willDeleteListener(t,e);var r=f[e];if(r){var o=m(t);delete r[o]}},deleteAllListeners:function(t){var e=m(t);for(var n in f)if(f.hasOwnProperty(n)&&f[n][e]){var r=a.registrationNameModules[n];r&&r.willDeleteListener&&r.willDeleteListener(t,n),delete f[n][e]}},extractEvents:function(t,e,n,r){for(var o,i=a.plugins,u=0;u<i.length;u++){var s=i[u];if(s){var l=s.extractEvents(t,e,n,r);l&&(o=c(o,l))}}return o},enqueueEvents:function(t){t&&(p=c(p,t))},processEventQueue:function(t){var e=p;p=null,t?l(e,h):l(e,v),p?i(\"95\"):void 0,s.rethrowCaughtError()},__purge:function(){f={}},__getListenerBank:function(){return f}};t.exports=y},function(t,e,n){\"use strict\";function r(){if(u)for(var t in s){var e=s[t],n=u.indexOf(t);if(n>-1?void 0:a(\"96\",t),!c.plugins[n]){e.extractEvents?void 0:a(\"97\",t),c.plugins[n]=e;var r=e.eventTypes;for(var i in r)o(r[i],e,i)?void 0:a(\"98\",i,t)}}}function o(t,e,n){c.eventNameDispatchConfigs.hasOwnProperty(n)?a(\"99\",n):void 0,c.eventNameDispatchConfigs[n]=t;var r=t.phasedRegistrationNames;if(r){for(var o in r)if(r.hasOwnProperty(o)){var u=r[o];i(u,e,n)}return!0}return!!t.registrationName&&(i(t.registrationName,e,n),!0)}function i(t,e,n){c.registrationNameModules[t]?a(\"100\",t):void 0,c.registrationNameModules[t]=e,c.registrationNameDependencies[t]=e.eventTypes[n].dependencies}var a=n(36),u=(n(11),null),s={},c={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},possibleRegistrationNames:null,injectEventPluginOrder:function(t){u?a(\"101\"):void 0,u=Array.prototype.slice.call(t),r()},injectEventPluginsByName:function(t){var e=!1;for(var n in t)if(t.hasOwnProperty(n)){var o=t[n];s.hasOwnProperty(n)&&s[n]===o||(s[n]?a(\"102\",n):void 0,s[n]=o,e=!0)}e&&r()},getPluginModuleForEvent:function(t){var e=t.dispatchConfig;if(e.registrationName)return c.registrationNameModules[e.registrationName]||null;if(void 0!==e.phasedRegistrationNames){var n=e.phasedRegistrationNames;for(var r in n)if(n.hasOwnProperty(r)){var o=c.registrationNameModules[n[r]];if(o)return o}}return null},_resetEventPlugins:function(){u=null;for(var t in s)s.hasOwnProperty(t)&&delete s[t];c.plugins.length=0;var e=c.eventNameDispatchConfigs;for(var n in e)e.hasOwnProperty(n)&&delete e[n];var r=c.registrationNameModules;for(var o in r)r.hasOwnProperty(o)&&delete r[o]}};t.exports=c},function(t,e,n){\"use strict\";function r(t){return\"topMouseUp\"===t||\"topTouchEnd\"===t||\"topTouchCancel\"===t}function o(t){return\"topMouseMove\"===t||\"topTouchMove\"===t}function i(t){return\"topMouseDown\"===t||\"topTouchStart\"===t}function a(t,e,n,r){var o=t.type||\"unknown-event\";t.currentTarget=y.getNodeFromInstance(r),e?v.invokeGuardedCallbackWithCatch(o,n,t):v.invokeGuardedCallback(o,n,t),t.currentTarget=null}function u(t,e){var n=t._dispatchListeners,r=t._dispatchInstances;if(Array.isArray(n))for(var o=0;o<n.length&&!t.isPropagationStopped();o++)a(t,e,n[o],r[o]);else n&&a(t,e,n,r);t._dispatchListeners=null,t._dispatchInstances=null}function s(t){var e=t._dispatchListeners,n=t._dispatchInstances;if(Array.isArray(e)){for(var r=0;r<e.length&&!t.isPropagationStopped();r++)if(e[r](t,n[r]))return n[r]}else if(e&&e(t,n))return n;return null}function c(t){var e=s(t);return t._dispatchInstances=null,t._dispatchListeners=null,e}function l(t){var e=t._dispatchListeners,n=t._dispatchInstances;Array.isArray(e)?h(\"103\"):void 0,t.currentTarget=e?y.getNodeFromInstance(n):null;var r=e?e(t):null;return t.currentTarget=null,t._dispatchListeners=null,t._dispatchInstances=null,r}function f(t){return!!t._dispatchListeners}var p,d,h=n(36),v=n(46),m=(n(11),n(7),{injectComponentTree:function(t){p=t},injectTreeTraversal:function(t){d=t}}),y={isEndish:r,isMoveish:o,isStartish:i,executeDirectDispatch:l,executeDispatchesInOrder:u,executeDispatchesInOrderStopAtTrue:c,hasDispatches:f,getInstanceFromNode:function(t){return p.getInstanceFromNode(t)},getNodeFromInstance:function(t){return p.getNodeFromInstance(t)},isAncestor:function(t,e){return d.isAncestor(t,e)},getLowestCommonAncestor:function(t,e){return d.getLowestCommonAncestor(t,e)},getParentInstance:function(t){return d.getParentInstance(t)},traverseTwoPhase:function(t,e,n){return d.traverseTwoPhase(t,e,n)},traverseEnterLeave:function(t,e,n,r,o){return d.traverseEnterLeave(t,e,n,r,o)},injection:m};t.exports=y},function(t,e,n){\"use strict\";function r(t,e,n){try{e(n)}catch(t){null===o&&(o=t)}}var o=null,i={invokeGuardedCallback:r,invokeGuardedCallbackWithCatch:r,rethrowCaughtError:function(){if(o){var t=o;throw o=null,t}}};t.exports=i},function(t,e,n){\"use strict\";function r(t,e){return null==e?o(\"30\"):void 0,null==t?e:Array.isArray(t)?Array.isArray(e)?(t.push.apply(t,e),t):(t.push(e),t):Array.isArray(e)?[t].concat(e):[t,e]}var o=n(36);n(11);t.exports=r},function(t,e){\"use strict\";function n(t,e,n){Array.isArray(t)?t.forEach(e,n):t&&e.call(n,t)}t.exports=n},function(t,e){\"use strict\";var n=!(\"undefined\"==typeof window||!window.document||!window.document.createElement),r={canUseDOM:n,canUseWorkers:\"undefined\"!=typeof Worker,canUseEventListeners:n&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:n&&!!window.screen,isInWorker:!n};t.exports=r},function(t,e,n){\"use strict\";function r(t){this._root=t,this._startText=this.getText(),this._fallbackText=null}var o=n(3),i=n(51),a=n(52);o(r.prototype,{destructor:function(){this._root=null,this._startText=null,this._fallbackText=null},getText:function(){return\"value\"in this._root?this._root.value:this._root[a()]},getData:function(){if(this._fallbackText)return this._fallbackText;var t,e,n=this._startText,r=n.length,o=this.getText(),i=o.length;for(t=0;t<r&&n[t]===o[t];t++);var a=r-t;for(e=1;e<=a&&n[r-e]===o[i-e];e++);var u=e>1?1-e:void 0;return this._fallbackText=o.slice(t,u),this._fallbackText}}),i.addPoolingTo(r),t.exports=r},function(t,e,n){\"use strict\";var r=n(36),o=(n(11),function(t){var e=this;if(e.instancePool.length){var n=e.instancePool.pop();return e.call(n,t),n}return new e(t)}),i=function(t,e){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,t,e),r}return new n(t,e)},a=function(t,e,n){var r=this;if(r.instancePool.length){var o=r.instancePool.pop();return r.call(o,t,e,n),o}return new r(t,e,n)},u=function(t,e,n,r){var o=this;if(o.instancePool.length){var i=o.instancePool.pop();return o.call(i,t,e,n,r),i}return new o(t,e,n,r)},s=function(t){var e=this;t instanceof e?void 0:r(\"25\"),t.destructor(),e.instancePool.length<e.poolSize&&e.instancePool.push(t)},c=10,l=o,f=function(t,e){var n=t;return n.instancePool=[],n.getPooled=e||l,n.poolSize||(n.poolSize=c),n.release=s,n},p={addPoolingTo:f,oneArgumentPooler:o,twoArgumentPooler:i,threeArgumentPooler:a,fourArgumentPooler:u};t.exports=p},function(t,e,n){\"use strict\";function r(){return!i&&o.canUseDOM&&(i=\"textContent\"in document.documentElement?\"textContent\":\"innerText\"),i}var o=n(49),i=null;t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return o.call(this,t,e,n,r)}var o=n(54),i={data:null};o.augmentClass(r,i),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){this.dispatchConfig=t,this._targetInst=e,this.nativeEvent=n;var o=this.constructor.Interface;for(var i in o)if(o.hasOwnProperty(i)){var u=o[i];u?this[i]=u(n):\"target\"===i?this.target=r:this[i]=n[i]}var s=null!=n.defaultPrevented?n.defaultPrevented:n.returnValue===!1;return s?this.isDefaultPrevented=a.thatReturnsTrue:this.isDefaultPrevented=a.thatReturnsFalse,this.isPropagationStopped=a.thatReturnsFalse,this}var o=n(3),i=n(51),a=n(8),u=(n(7),\"function\"==typeof Proxy,[\"dispatchConfig\",\"_targetInst\",\"nativeEvent\",\"isDefaultPrevented\",\"isPropagationStopped\",\"_dispatchListeners\",\"_dispatchInstances\"]),s={type:null,target:null,currentTarget:a.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(t){return t.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};o(r.prototype,{preventDefault:function(){this.defaultPrevented=!0;var t=this.nativeEvent;t&&(t.preventDefault?t.preventDefault():\"unknown\"!=typeof t.returnValue&&(t.returnValue=!1),this.isDefaultPrevented=a.thatReturnsTrue)},stopPropagation:function(){var t=this.nativeEvent;t&&(t.stopPropagation?t.stopPropagation():\"unknown\"!=typeof t.cancelBubble&&(t.cancelBubble=!0),this.isPropagationStopped=a.thatReturnsTrue)},persist:function(){this.isPersistent=a.thatReturnsTrue},isPersistent:a.thatReturnsFalse,destructor:function(){var t=this.constructor.Interface;for(var e in t)this[e]=null;for(var n=0;n<u.length;n++)this[u[n]]=null}}),r.Interface=s,r.augmentClass=function(t,e){var n=this,r=function(){};r.prototype=n.prototype;var a=new r;o(a,t.prototype),t.prototype=a,t.prototype.constructor=t,t.Interface=o({},n.Interface,e),t.augmentClass=n.augmentClass,i.addPoolingTo(t,i.fourArgumentPooler)},i.addPoolingTo(r,i.fourArgumentPooler),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return o.call(this,t,e,n,r)}var o=n(54),i={data:null};o.augmentClass(r,i),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n){var r=P.getPooled(I.change,t,e,n);return r.type=\"change\",E.accumulateTwoPhaseDispatches(r),r}function o(t){var e=t.nodeName&&t.nodeName.toLowerCase();return\"select\"===e||\"input\"===e&&\"file\"===t.type}function i(t){var e=r(A,t,O(t));x.batchedUpdates(a,e)}function a(t){w.enqueueEvents(t),w.processEventQueue(!1)}function u(t,e){R=t,A=e,R.attachEvent(\"onchange\",i)}function s(){R&&(R.detachEvent(\"onchange\",i),R=null,A=null)}function c(t,e){var n=T.updateValueIfChanged(t),r=e.simulated===!0&&L._allowSimulatedPassThrough;if(n||r)return t}function l(t,e){if(\"topChange\"===t)return e}function f(t,e,n){\"topFocus\"===t?(s(),u(e,n)):\"topBlur\"===t&&s()}function p(t,e){R=t,A=e,R.attachEvent(\"onpropertychange\",h)}function d(){R&&(R.detachEvent(\"onpropertychange\",h),R=null,A=null)}function h(t){\"value\"===t.propertyName&&c(A,t)&&i(t)}function v(t,e,n){\"topFocus\"===t?(d(),p(e,n)):\"topBlur\"===t&&d()}function m(t,e,n){if(\"topSelectionChange\"===t||\"topKeyUp\"===t||\"topKeyDown\"===t)return c(A,n)}function y(t){var e=t.nodeName;return e&&\"input\"===e.toLowerCase()&&(\"checkbox\"===t.type||\"radio\"===t.type)}function g(t,e,n){if(\"topClick\"===t)return c(e,n)}function _(t,e,n){if(\"topInput\"===t||\"topChange\"===t)return c(e,n)}function b(t,e){if(null!=t){var n=t._wrapperState||e._wrapperState;if(n&&n.controlled&&\"number\"===e.type){var r=\"\"+e.value;e.getAttribute(\"value\")!==r&&e.setAttribute(\"value\",r)}}}var w=n(43),E=n(42),C=n(49),S=n(35),x=n(57),P=n(54),T=n(65),O=n(66),k=n(67),M=n(68),I={change:{phasedRegistrationNames:{bubbled:\"onChange\",captured:\"onChangeCapture\"},dependencies:[\"topBlur\",\"topChange\",\"topClick\",\"topFocus\",\"topInput\",\"topKeyDown\",\"topKeyUp\",\"topSelectionChange\"]}},R=null,A=null,N=!1;C.canUseDOM&&(N=k(\"change\")&&(!document.documentMode||document.documentMode>8));var D=!1;C.canUseDOM&&(D=k(\"input\")&&(!document.documentMode||document.documentMode>9));var L={eventTypes:I,_allowSimulatedPassThrough:!0,_isInputEventSupported:D,extractEvents:function(t,e,n,i){var a,u,s=e?S.getNodeFromInstance(e):window;if(o(s)?N?a=l:u=f:M(s)?D?a=_:(a=m,u=v):y(s)&&(a=g),a){var c=a(t,e,n);if(c){var p=r(c,n,i);return p}}u&&u(t,s,e),\"topBlur\"===t&&b(e,s)}};t.exports=L},function(t,e,n){\"use strict\";function r(){O.ReactReconcileTransaction&&E?void 0:l(\"123\")}function o(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=p.getPooled(),this.reconcileTransaction=O.ReactReconcileTransaction.getPooled(!0)}function i(t,e,n,o,i,a){return r(),E.batchedUpdates(t,e,n,o,i,a)}function a(t,e){return t._mountOrder-e._mountOrder}function u(t){var e=t.dirtyComponentsLength;e!==g.length?l(\"124\",e,g.length):void 0,g.sort(a),_++;for(var n=0;n<e;n++){var r=g[n],o=r._pendingCallbacks;r._pendingCallbacks=null;var i;if(h.logTopLevelRenders){var u=r;r._currentElement.type.isReactTopLevelWrapper&&(u=r._renderedComponent),i=\"React update: \"+u.getName(),console.time(i)}if(v.performUpdateIfNecessary(r,t.reconcileTransaction,_),i&&console.timeEnd(i),o)for(var s=0;s<o.length;s++)t.callbackQueue.enqueue(o[s],r.getPublicInstance())}}function s(t){return r(),E.isBatchingUpdates?(g.push(t),void(null==t._updateBatchNumber&&(t._updateBatchNumber=_+1))):void E.batchedUpdates(s,t)}function c(t,e){y(E.isBatchingUpdates,\"ReactUpdates.asap: Can't enqueue an asap callback in a context whereupdates are not being batched.\"),b.enqueue(t,e),w=!0}var l=n(36),f=n(3),p=n(58),d=n(51),h=n(59),v=n(60),m=n(64),y=n(11),g=[],_=0,b=p.getPooled(),w=!1,E=null,C={initialize:function(){this.dirtyComponentsLength=g.length},close:function(){this.dirtyComponentsLength!==g.length?(g.splice(0,this.dirtyComponentsLength),P()):g.length=0}},S={initialize:function(){this.callbackQueue.reset()},close:function(){this.callbackQueue.notifyAll()}},x=[C,S];f(o.prototype,m,{getTransactionWrappers:function(){return x},destructor:function(){this.dirtyComponentsLength=null,p.release(this.callbackQueue),this.callbackQueue=null,O.ReactReconcileTransaction.release(this.reconcileTransaction),this.reconcileTransaction=null},perform:function(t,e,n){return m.perform.call(this,this.reconcileTransaction.perform,this.reconcileTransaction,t,e,n)}}),d.addPoolingTo(o);var P=function(){for(;g.length||w;){if(g.length){\nvar t=o.getPooled();t.perform(u,null,t),o.release(t)}if(w){w=!1;var e=b;b=p.getPooled(),e.notifyAll(),p.release(e)}}},T={injectReconcileTransaction:function(t){t?void 0:l(\"126\"),O.ReactReconcileTransaction=t},injectBatchingStrategy:function(t){t?void 0:l(\"127\"),\"function\"!=typeof t.batchedUpdates?l(\"128\"):void 0,\"boolean\"!=typeof t.isBatchingUpdates?l(\"129\"):void 0,E=t}},O={ReactReconcileTransaction:null,batchedUpdates:i,enqueueUpdate:s,flushBatchedUpdates:P,injection:T,asap:c};t.exports=O},function(t,e,n){\"use strict\";function r(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}var o=n(36),i=n(51),a=(n(11),function(){function t(e){r(this,t),this._callbacks=null,this._contexts=null,this._arg=e}return t.prototype.enqueue=function(t,e){this._callbacks=this._callbacks||[],this._callbacks.push(t),this._contexts=this._contexts||[],this._contexts.push(e)},t.prototype.notifyAll=function(){var t=this._callbacks,e=this._contexts,n=this._arg;if(t&&e){t.length!==e.length?o(\"24\"):void 0,this._callbacks=null,this._contexts=null;for(var r=0;r<t.length;r++)t[r].call(e[r],n);t.length=0,e.length=0}},t.prototype.checkpoint=function(){return this._callbacks?this._callbacks.length:0},t.prototype.rollback=function(t){this._callbacks&&this._contexts&&(this._callbacks.length=t,this._contexts.length=t)},t.prototype.reset=function(){this._callbacks=null,this._contexts=null},t.prototype.destructor=function(){this.reset()},t}());t.exports=i.addPoolingTo(a)},function(t,e){\"use strict\";var n={logTopLevelRenders:!1};t.exports=n},function(t,e,n){\"use strict\";function r(){o.attachRefs(this,this._currentElement)}var o=n(61),i=(n(63),n(7),{mountComponent:function(t,e,n,o,i,a){var u=t.mountComponent(e,n,o,i,a);return t._currentElement&&null!=t._currentElement.ref&&e.getReactMountReady().enqueue(r,t),u},getHostNode:function(t){return t.getHostNode()},unmountComponent:function(t,e){o.detachRefs(t,t._currentElement),t.unmountComponent(e)},receiveComponent:function(t,e,n,i){var a=t._currentElement;if(e!==a||i!==t._context){var u=o.shouldUpdateRefs(a,e);u&&o.detachRefs(t,a),t.receiveComponent(e,n,i),u&&t._currentElement&&null!=t._currentElement.ref&&n.getReactMountReady().enqueue(r,t)}},performUpdateIfNecessary:function(t,e,n){t._updateBatchNumber===n&&t.performUpdateIfNecessary(e)}});t.exports=i},function(t,e,n){\"use strict\";function r(t,e,n){\"function\"==typeof t?t(e.getPublicInstance()):i.addComponentAsRefTo(e,t,n)}function o(t,e,n){\"function\"==typeof t?t(null):i.removeComponentAsRefFrom(e,t,n)}var i=n(62),a={};a.attachRefs=function(t,e){if(null!==e&&\"object\"==typeof e){var n=e.ref;null!=n&&r(n,t,e._owner)}},a.shouldUpdateRefs=function(t,e){var n=null,r=null;null!==t&&\"object\"==typeof t&&(n=t.ref,r=t._owner);var o=null,i=null;return null!==e&&\"object\"==typeof e&&(o=e.ref,i=e._owner),n!==o||\"string\"==typeof o&&i!==r},a.detachRefs=function(t,e){if(null!==e&&\"object\"==typeof e){var n=e.ref;null!=n&&o(n,t,e._owner)}},t.exports=a},function(t,e,n){\"use strict\";function r(t){return!(!t||\"function\"!=typeof t.attachRef||\"function\"!=typeof t.detachRef)}var o=n(36),i=(n(11),{addComponentAsRefTo:function(t,e,n){r(n)?void 0:o(\"119\"),n.attachRef(e,t)},removeComponentAsRefFrom:function(t,e,n){r(n)?void 0:o(\"120\");var i=n.getPublicInstance();i&&i.refs[e]===t.getPublicInstance()&&n.detachRef(e)}});t.exports=i},function(t,e,n){\"use strict\";var r=null;t.exports={debugTool:r}},function(t,e,n){\"use strict\";var r=n(36),o=(n(11),{}),i={reinitializeTransaction:function(){this.transactionWrappers=this.getTransactionWrappers(),this.wrapperInitData?this.wrapperInitData.length=0:this.wrapperInitData=[],this._isInTransaction=!1},_isInTransaction:!1,getTransactionWrappers:null,isInTransaction:function(){return!!this._isInTransaction},perform:function(t,e,n,o,i,a,u,s){this.isInTransaction()?r(\"27\"):void 0;var c,l;try{this._isInTransaction=!0,c=!0,this.initializeAll(0),l=t.call(e,n,o,i,a,u,s),c=!1}finally{try{if(c)try{this.closeAll(0)}catch(t){}else this.closeAll(0)}finally{this._isInTransaction=!1}}return l},initializeAll:function(t){for(var e=this.transactionWrappers,n=t;n<e.length;n++){var r=e[n];try{this.wrapperInitData[n]=o,this.wrapperInitData[n]=r.initialize?r.initialize.call(this):null}finally{if(this.wrapperInitData[n]===o)try{this.initializeAll(n+1)}catch(t){}}}},closeAll:function(t){this.isInTransaction()?void 0:r(\"28\");for(var e=this.transactionWrappers,n=t;n<e.length;n++){var i,a=e[n],u=this.wrapperInitData[n];try{i=!0,u!==o&&a.close&&a.close.call(this,u),i=!1}finally{if(i)try{this.closeAll(n+1)}catch(t){}}}this.wrapperInitData.length=0}};t.exports=i},function(t,e,n){\"use strict\";function r(t){var e=t.type,n=t.nodeName;return n&&\"input\"===n.toLowerCase()&&(\"checkbox\"===e||\"radio\"===e)}function o(t){return t._wrapperState.valueTracker}function i(t,e){t._wrapperState.valueTracker=e}function a(t){t._wrapperState.valueTracker=null}function u(t){var e;return t&&(e=r(t)?\"\"+t.checked:t.value),e}var s=n(35),c={_getTrackerFromNode:function(t){return o(s.getInstanceFromNode(t))},track:function(t){if(!o(t)){var e=s.getNodeFromInstance(t),n=r(e)?\"checked\":\"value\",u=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),c=\"\"+e[n];e.hasOwnProperty(n)||\"function\"!=typeof u.get||\"function\"!=typeof u.set||(Object.defineProperty(e,n,{enumerable:u.enumerable,configurable:!0,get:function(){return u.get.call(this)},set:function(t){c=\"\"+t,u.set.call(this,t)}}),i(t,{getValue:function(){return c},setValue:function(t){c=\"\"+t},stopTracking:function(){a(t),delete e[n]}}))}},updateValueIfChanged:function(t){if(!t)return!1;var e=o(t);if(!e)return c.track(t),!0;var n=e.getValue(),r=u(s.getNodeFromInstance(t));return r!==n&&(e.setValue(r),!0)},stopTracking:function(t){var e=o(t);e&&e.stopTracking()}};t.exports=c},function(t,e){\"use strict\";function n(t){var e=t.target||t.srcElement||window;return e.correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}t.exports=n},function(t,e,n){\"use strict\";/**\n\t * Checks if an event is supported in the current execution environment.\n\t *\n\t * NOTE: This will not work correctly for non-generic events such as `change`,\n\t * `reset`, `load`, `error`, and `select`.\n\t *\n\t * Borrows from Modernizr.\n\t *\n\t * @param {string} eventNameSuffix Event name, e.g. \"click\".\n\t * @param {?boolean} capture Check if the capture phase is supported.\n\t * @return {boolean} True if the event is supported.\n\t * @internal\n\t * @license Modernizr 3.0.0pre (Custom Build) | MIT\n\t */\nfunction r(t,e){if(!i.canUseDOM||e&&!(\"addEventListener\"in document))return!1;var n=\"on\"+t,r=n in document;if(!r){var a=document.createElement(\"div\");a.setAttribute(n,\"return;\"),r=\"function\"==typeof a[n]}return!r&&o&&\"wheel\"===t&&(r=document.implementation.hasFeature(\"Events.wheel\",\"3.0\")),r}var o,i=n(49);i.canUseDOM&&(o=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature(\"\",\"\")!==!0),t.exports=r},function(t,e){\"use strict\";function n(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return\"input\"===e?!!r[t.type]:\"textarea\"===e}var r={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};t.exports=n},function(t,e){\"use strict\";var n=[\"ResponderEventPlugin\",\"SimpleEventPlugin\",\"TapEventPlugin\",\"EnterLeaveEventPlugin\",\"ChangeEventPlugin\",\"SelectEventPlugin\",\"BeforeInputEventPlugin\"];t.exports=n},function(t,e,n){\"use strict\";var r=n(42),o=n(35),i=n(71),a={mouseEnter:{registrationName:\"onMouseEnter\",dependencies:[\"topMouseOut\",\"topMouseOver\"]},mouseLeave:{registrationName:\"onMouseLeave\",dependencies:[\"topMouseOut\",\"topMouseOver\"]}},u={eventTypes:a,extractEvents:function(t,e,n,u){if(\"topMouseOver\"===t&&(n.relatedTarget||n.fromElement))return null;if(\"topMouseOut\"!==t&&\"topMouseOver\"!==t)return null;var s;if(u.window===u)s=u;else{var c=u.ownerDocument;s=c?c.defaultView||c.parentWindow:window}var l,f;if(\"topMouseOut\"===t){l=e;var p=n.relatedTarget||n.toElement;f=p?o.getClosestInstanceFromNode(p):null}else l=null,f=e;if(l===f)return null;var d=null==l?s:o.getNodeFromInstance(l),h=null==f?s:o.getNodeFromInstance(f),v=i.getPooled(a.mouseLeave,l,n,u);v.type=\"mouseleave\",v.target=d,v.relatedTarget=h;var m=i.getPooled(a.mouseEnter,f,n,u);return m.type=\"mouseenter\",m.target=h,m.relatedTarget=d,r.accumulateEnterLeaveDispatches(v,m,l,f),[v,m]}};t.exports=u},function(t,e,n){\"use strict\";function r(t,e,n,r){return o.call(this,t,e,n,r)}var o=n(72),i=n(73),a=n(74),u={screenX:null,screenY:null,clientX:null,clientY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:a,button:function(t){var e=t.button;return\"which\"in t?e:2===e?2:4===e?1:0},buttons:null,relatedTarget:function(t){return t.relatedTarget||(t.fromElement===t.srcElement?t.toElement:t.fromElement)},pageX:function(t){return\"pageX\"in t?t.pageX:t.clientX+i.currentScrollLeft},pageY:function(t){return\"pageY\"in t?t.pageY:t.clientY+i.currentScrollTop}};o.augmentClass(r,u),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return o.call(this,t,e,n,r)}var o=n(54),i=n(66),a={view:function(t){if(t.view)return t.view;var e=i(t);if(e.window===e)return e;var n=e.ownerDocument;return n?n.defaultView||n.parentWindow:window},detail:function(t){return t.detail||0}};o.augmentClass(r,a),t.exports=r},function(t,e){\"use strict\";var n={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(t){n.currentScrollLeft=t.x,n.currentScrollTop=t.y}};t.exports=n},function(t,e){\"use strict\";function n(t){var e=this,n=e.nativeEvent;if(n.getModifierState)return n.getModifierState(t);var r=o[t];return!!r&&!!n[r]}function r(t){return n}var o={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};t.exports=r},function(t,e,n){\"use strict\";var r=n(37),o=r.injection.MUST_USE_PROPERTY,i=r.injection.HAS_BOOLEAN_VALUE,a=r.injection.HAS_NUMERIC_VALUE,u=r.injection.HAS_POSITIVE_NUMERIC_VALUE,s=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE,c={isCustomAttribute:RegExp.prototype.test.bind(new RegExp(\"^(data|aria)-[\"+r.ATTRIBUTE_NAME_CHAR+\"]*$\")),Properties:{accept:0,acceptCharset:0,accessKey:0,action:0,allowFullScreen:i,allowTransparency:0,alt:0,as:0,async:i,autoComplete:0,autoPlay:i,capture:i,cellPadding:0,cellSpacing:0,charSet:0,challenge:0,checked:o|i,cite:0,classID:0,className:0,cols:u,colSpan:0,content:0,contentEditable:0,contextMenu:0,controls:i,controlsList:0,coords:0,crossOrigin:0,data:0,dateTime:0,default:i,defer:i,dir:0,disabled:i,download:s,draggable:0,encType:0,form:0,formAction:0,formEncType:0,formMethod:0,formNoValidate:i,formTarget:0,frameBorder:0,headers:0,height:0,hidden:i,high:0,href:0,hrefLang:0,htmlFor:0,httpEquiv:0,icon:0,id:0,inputMode:0,integrity:0,is:0,keyParams:0,keyType:0,kind:0,label:0,lang:0,list:0,loop:i,low:0,manifest:0,marginHeight:0,marginWidth:0,max:0,maxLength:0,media:0,mediaGroup:0,method:0,min:0,minLength:0,multiple:o|i,muted:o|i,name:0,nonce:0,noValidate:i,open:i,optimum:0,pattern:0,placeholder:0,playsInline:i,poster:0,preload:0,profile:0,radioGroup:0,readOnly:i,referrerPolicy:0,rel:0,required:i,reversed:i,role:0,rows:u,rowSpan:a,sandbox:0,scope:0,scoped:i,scrolling:0,seamless:i,selected:o|i,shape:0,size:u,sizes:0,span:u,spellCheck:0,src:0,srcDoc:0,srcLang:0,srcSet:0,start:a,step:0,style:0,summary:0,tabIndex:0,target:0,title:0,type:0,useMap:0,value:0,width:0,wmode:0,wrap:0,about:0,datatype:0,inlist:0,prefix:0,property:0,resource:0,typeof:0,vocab:0,autoCapitalize:0,autoCorrect:0,autoSave:0,color:0,itemProp:0,itemScope:i,itemType:0,itemID:0,itemRef:0,results:0,security:0,unselectable:0},DOMAttributeNames:{acceptCharset:\"accept-charset\",className:\"class\",htmlFor:\"for\",httpEquiv:\"http-equiv\"},DOMPropertyNames:{},DOMMutationMethods:{value:function(t,e){return null==e?t.removeAttribute(\"value\"):void(\"number\"!==t.type||t.hasAttribute(\"value\")===!1?t.setAttribute(\"value\",\"\"+e):t.validity&&!t.validity.badInput&&t.ownerDocument.activeElement!==t&&t.setAttribute(\"value\",\"\"+e))}}};t.exports=c},function(t,e,n){\"use strict\";var r=n(77),o=n(88),i={processChildrenUpdates:o.dangerouslyProcessChildrenUpdates,replaceNodeWithMarkup:r.dangerouslyReplaceNodeWithMarkup};t.exports=i},function(t,e,n){\"use strict\";function r(t,e){return Array.isArray(e)&&(e=e[1]),e?e.nextSibling:t.firstChild}function o(t,e,n){l.insertTreeBefore(t,e,n)}function i(t,e,n){Array.isArray(e)?u(t,e[0],e[1],n):v(t,e,n)}function a(t,e){if(Array.isArray(e)){var n=e[1];e=e[0],s(t,e,n),t.removeChild(n)}t.removeChild(e)}function u(t,e,n,r){for(var o=e;;){var i=o.nextSibling;if(v(t,o,r),o===n)break;o=i}}function s(t,e,n){for(;;){var r=e.nextSibling;if(r===n)break;t.removeChild(r)}}function c(t,e,n){var r=t.parentNode,o=t.nextSibling;o===e?n&&v(r,document.createTextNode(n),o):n?(h(o,n),s(r,o,e)):s(r,t,e)}var l=n(78),f=n(84),p=(n(35),n(63),n(81)),d=n(80),h=n(82),v=p(function(t,e,n){t.insertBefore(e,n)}),m=f.dangerouslyReplaceNodeWithMarkup,y={dangerouslyReplaceNodeWithMarkup:m,replaceDelimitedText:c,processUpdates:function(t,e){for(var n=0;n<e.length;n++){var u=e[n];switch(u.type){case\"INSERT_MARKUP\":o(t,u.content,r(t,u.afterNode));break;case\"MOVE_EXISTING\":i(t,u.fromNode,r(t,u.afterNode));break;case\"SET_MARKUP\":d(t,u.content);break;case\"TEXT_CONTENT\":h(t,u.content);break;case\"REMOVE_NODE\":a(t,u.fromNode)}}}};t.exports=y},function(t,e,n){\"use strict\";function r(t){if(m){var e=t.node,n=t.children;if(n.length)for(var r=0;r<n.length;r++)y(e,n[r],null);else null!=t.html?f(e,t.html):null!=t.text&&d(e,t.text)}}function o(t,e){t.parentNode.replaceChild(e.node,t),r(e)}function i(t,e){m?t.children.push(e):t.node.appendChild(e.node)}function a(t,e){m?t.html=e:f(t.node,e)}function u(t,e){m?t.text=e:d(t.node,e)}function s(){return this.node.nodeName}function c(t){return{node:t,children:[],html:null,text:null,toString:s}}var l=n(79),f=n(80),p=n(81),d=n(82),h=1,v=11,m=\"undefined\"!=typeof document&&\"number\"==typeof document.documentMode||\"undefined\"!=typeof navigator&&\"string\"==typeof navigator.userAgent&&/\\bEdge\\/\\d/.test(navigator.userAgent),y=p(function(t,e,n){e.node.nodeType===v||e.node.nodeType===h&&\"object\"===e.node.nodeName.toLowerCase()&&(null==e.node.namespaceURI||e.node.namespaceURI===l.html)?(r(e),t.insertBefore(e.node,n)):(t.insertBefore(e.node,n),r(e))});c.insertTreeBefore=y,c.replaceChildWithTree=o,c.queueChild=i,c.queueHTML=a,c.queueText=u,t.exports=c},function(t,e){\"use strict\";var n={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};t.exports=n},function(t,e,n){\"use strict\";var r,o=n(49),i=n(79),a=/^[ \\r\\n\\t\\f]/,u=/<(!--|link|noscript|meta|script|style)[ \\r\\n\\t\\f\\/>]/,s=n(81),c=s(function(t,e){if(t.namespaceURI!==i.svg||\"innerHTML\"in t)t.innerHTML=e;else{r=r||document.createElement(\"div\"),r.innerHTML=\"<svg>\"+e+\"</svg>\";for(var n=r.firstChild;n.firstChild;)t.appendChild(n.firstChild)}});if(o.canUseDOM){var l=document.createElement(\"div\");l.innerHTML=\" \",\"\"===l.innerHTML&&(c=function(t,e){if(t.parentNode&&t.parentNode.replaceChild(t,t),a.test(e)||\"<\"===e[0]&&u.test(e)){t.innerHTML=String.fromCharCode(65279)+e;var n=t.firstChild;1===n.data.length?t.removeChild(n):n.deleteData(0,1)}else t.innerHTML=e}),l=null}t.exports=c},function(t,e){\"use strict\";var n=function(t){return\"undefined\"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,n,r,o){MSApp.execUnsafeLocalFunction(function(){return t(e,n,r,o)})}:t};t.exports=n},function(t,e,n){\"use strict\";var r=n(49),o=n(83),i=n(80),a=function(t,e){if(e){var n=t.firstChild;if(n&&n===t.lastChild&&3===n.nodeType)return void(n.nodeValue=e)}t.textContent=e};r.canUseDOM&&(\"textContent\"in document.documentElement||(a=function(t,e){return 3===t.nodeType?void(t.nodeValue=e):void i(t,o(e))})),t.exports=a},function(t,e){\"use strict\";function n(t){var e=\"\"+t,n=o.exec(e);if(!n)return e;var r,i=\"\",a=0,u=0;for(a=n.index;a<e.length;a++){switch(e.charCodeAt(a)){case 34:r=\"&quot;\";break;case 38:r=\"&amp;\";break;case 39:r=\"&#x27;\";break;case 60:r=\"&lt;\";break;case 62:r=\"&gt;\";break;default:continue}u!==a&&(i+=e.substring(u,a)),u=a+1,i+=r}return u!==a?i+e.substring(u,a):i}function r(t){return\"boolean\"==typeof t||\"number\"==typeof t?\"\"+t:n(t)}var o=/[\"'&<>]/;t.exports=r},function(t,e,n){\"use strict\";var r=n(36),o=n(78),i=n(49),a=n(85),u=n(8),s=(n(11),{dangerouslyReplaceNodeWithMarkup:function(t,e){if(i.canUseDOM?void 0:r(\"56\"),e?void 0:r(\"57\"),\"HTML\"===t.nodeName?r(\"58\"):void 0,\"string\"==typeof e){var n=a(e,u)[0];t.parentNode.replaceChild(n,t)}else o.replaceChildWithTree(t,e)}});t.exports=s},function(t,e,n){\"use strict\";function r(t){var e=t.match(l);return e&&e[1].toLowerCase()}function o(t,e){var n=c;c?void 0:s(!1);var o=r(t),i=o&&u(o);if(i){n.innerHTML=i[1]+t+i[2];for(var l=i[0];l--;)n=n.lastChild}else n.innerHTML=t;var f=n.getElementsByTagName(\"script\");f.length&&(e?void 0:s(!1),a(f).forEach(e));for(var p=Array.from(n.childNodes);n.lastChild;)n.removeChild(n.lastChild);return p}var i=n(49),a=n(86),u=n(87),s=n(11),c=i.canUseDOM?document.createElement(\"div\"):null,l=/^\\s*<(\\w+)/;t.exports=o},function(t,e,n){\"use strict\";function r(t){var e=t.length;if(Array.isArray(t)||\"object\"!=typeof t&&\"function\"!=typeof t?a(!1):void 0,\"number\"!=typeof e?a(!1):void 0,0===e||e-1 in t?void 0:a(!1),\"function\"==typeof t.callee?a(!1):void 0,t.hasOwnProperty)try{return Array.prototype.slice.call(t)}catch(t){}for(var n=Array(e),r=0;r<e;r++)n[r]=t[r];return n}function o(t){return!!t&&(\"object\"==typeof t||\"function\"==typeof t)&&\"length\"in t&&!(\"setInterval\"in t)&&\"number\"!=typeof t.nodeType&&(Array.isArray(t)||\"callee\"in t||\"item\"in t)}function i(t){return o(t)?Array.isArray(t)?t.slice():r(t):[t]}var a=n(11);t.exports=i},function(t,e,n){\"use strict\";function r(t){return a?void 0:i(!1),p.hasOwnProperty(t)||(t=\"*\"),u.hasOwnProperty(t)||(\"*\"===t?a.innerHTML=\"<link />\":a.innerHTML=\"<\"+t+\"></\"+t+\">\",u[t]=!a.firstChild),u[t]?p[t]:null}var o=n(49),i=n(11),a=o.canUseDOM?document.createElement(\"div\"):null,u={},s=[1,'<select multiple=\"true\">',\"</select>\"],c=[1,\"<table>\",\"</table>\"],l=[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"],f=[1,'<svg xmlns=\"http://www.w3.org/2000/svg\">',\"</svg>\"],p={\"*\":[1,\"?<div>\",\"</div>\"],area:[1,\"<map>\",\"</map>\"],col:[2,\"<table><tbody></tbody><colgroup>\",\"</colgroup></table>\"],legend:[1,\"<fieldset>\",\"</fieldset>\"],param:[1,\"<object>\",\"</object>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],optgroup:s,option:s,caption:c,colgroup:c,tbody:c,tfoot:c,thead:c,td:l,th:l},d=[\"circle\",\"clipPath\",\"defs\",\"ellipse\",\"g\",\"image\",\"line\",\"linearGradient\",\"mask\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"stop\",\"text\",\"tspan\"];d.forEach(function(t){p[t]=f,u[t]=!0}),t.exports=r},function(t,e,n){\"use strict\";var r=n(77),o=n(35),i={dangerouslyProcessChildrenUpdates:function(t,e){var n=o.getNodeFromInstance(t);r.processUpdates(n,e)}};t.exports=i},function(t,e,n){\"use strict\";function r(t){if(t){var e=t._currentElement._owner||null;if(e){var n=e.getName();if(n)return\" This DOM node was rendered by `\"+n+\"`.\"}}return\"\"}function o(t,e){e&&(Q[t._tag]&&(null!=e.children||null!=e.dangerouslySetInnerHTML?m(\"137\",t._tag,t._currentElement._owner?\" Check the render method of \"+t._currentElement._owner.getName()+\".\":\"\"):void 0),null!=e.dangerouslySetInnerHTML&&(null!=e.children?m(\"60\"):void 0,\"object\"==typeof e.dangerouslySetInnerHTML&&Y in e.dangerouslySetInnerHTML?void 0:m(\"61\")),null!=e.style&&\"object\"!=typeof e.style?m(\"62\",r(t)):void 0)}function i(t,e,n,r){if(!(r instanceof N)){var o=t._hostContainerInfo,i=o._node&&o._node.nodeType===K,u=i?o._node:o._ownerDocument;F(e,u),r.getReactMountReady().enqueue(a,{inst:t,registrationName:e,listener:n})}}function a(){var t=this;S.putListener(t.inst,t.registrationName,t.listener)}function u(){var t=this;k.postMountWrapper(t)}function s(){var t=this;R.postMountWrapper(t)}function c(){var t=this;M.postMountWrapper(t)}function l(){L.track(this)}function f(){var t=this;t._rootNodeID?void 0:m(\"63\");var e=B(t);switch(e?void 0:m(\"64\"),t._tag){case\"iframe\":case\"object\":t._wrapperState.listeners=[P.trapBubbledEvent(\"topLoad\",\"load\",e)];break;case\"video\":case\"audio\":t._wrapperState.listeners=[];for(var n in H)H.hasOwnProperty(n)&&t._wrapperState.listeners.push(P.trapBubbledEvent(n,H[n],e));break;case\"source\":t._wrapperState.listeners=[P.trapBubbledEvent(\"topError\",\"error\",e)];break;case\"img\":t._wrapperState.listeners=[P.trapBubbledEvent(\"topError\",\"error\",e),P.trapBubbledEvent(\"topLoad\",\"load\",e)];break;case\"form\":t._wrapperState.listeners=[P.trapBubbledEvent(\"topReset\",\"reset\",e),P.trapBubbledEvent(\"topSubmit\",\"submit\",e)];break;case\"input\":case\"select\":case\"textarea\":t._wrapperState.listeners=[P.trapBubbledEvent(\"topInvalid\",\"invalid\",e)]}}function p(){I.postUpdateWrapper(this)}function d(t){Z.call(G,t)||($.test(t)?void 0:m(\"65\",t),G[t]=!0)}function h(t,e){return t.indexOf(\"-\")>=0||null!=e.is}function v(t){var e=t.type;d(e),this._currentElement=t,this._tag=e.toLowerCase(),this._namespaceURI=null,this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._hostNode=null,this._hostParent=null,this._rootNodeID=0,this._domID=0,this._hostContainerInfo=null,this._wrapperState=null,this._topLevelWrapper=null,this._flags=0}var m=n(36),y=n(3),g=n(90),_=n(92),b=n(78),w=n(79),E=n(37),C=n(100),S=n(43),x=n(44),P=n(102),T=n(38),O=n(35),k=n(105),M=n(108),I=n(109),R=n(110),A=(n(63),n(111)),N=n(130),D=(n(8),n(83)),L=(n(11),n(67),n(119),n(65)),j=(n(133),n(7),T),U=S.deleteListener,B=O.getNodeFromInstance,F=P.listenTo,z=x.registrationNameModules,q={string:!0,number:!0},V=\"style\",Y=\"__html\",W={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null},K=11,H={topAbort:\"abort\",topCanPlay:\"canplay\",topCanPlayThrough:\"canplaythrough\",topDurationChange:\"durationchange\",topEmptied:\"emptied\",topEncrypted:\"encrypted\",topEnded:\"ended\",topError:\"error\",topLoadedData:\"loadeddata\",topLoadedMetadata:\"loadedmetadata\",topLoadStart:\"loadstart\",topPause:\"pause\",topPlay:\"play\",topPlaying:\"playing\",topProgress:\"progress\",topRateChange:\"ratechange\",topSeeked:\"seeked\",topSeeking:\"seeking\",topStalled:\"stalled\",topSuspend:\"suspend\",topTimeUpdate:\"timeupdate\",topVolumeChange:\"volumechange\",topWaiting:\"waiting\"},J={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},X={listing:!0,pre:!0,textarea:!0},Q=y({menuitem:!0},J),$=/^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/,G={},Z={}.hasOwnProperty,tt=1;v.displayName=\"ReactDOMComponent\",v.Mixin={mountComponent:function(t,e,n,r){this._rootNodeID=tt++,this._domID=n._idCounter++,this._hostParent=e,this._hostContainerInfo=n;var i=this._currentElement.props;switch(this._tag){case\"audio\":case\"form\":case\"iframe\":case\"img\":case\"link\":case\"object\":case\"source\":case\"video\":this._wrapperState={listeners:null},t.getReactMountReady().enqueue(f,this);break;case\"input\":k.mountWrapper(this,i,e),i=k.getHostProps(this,i),t.getReactMountReady().enqueue(l,this),t.getReactMountReady().enqueue(f,this);break;case\"option\":M.mountWrapper(this,i,e),i=M.getHostProps(this,i);break;case\"select\":I.mountWrapper(this,i,e),i=I.getHostProps(this,i),t.getReactMountReady().enqueue(f,this);break;case\"textarea\":R.mountWrapper(this,i,e),i=R.getHostProps(this,i),t.getReactMountReady().enqueue(l,this),t.getReactMountReady().enqueue(f,this)}o(this,i);var a,p;null!=e?(a=e._namespaceURI,p=e._tag):n._tag&&(a=n._namespaceURI,p=n._tag),(null==a||a===w.svg&&\"foreignobject\"===p)&&(a=w.html),a===w.html&&(\"svg\"===this._tag?a=w.svg:\"math\"===this._tag&&(a=w.mathml)),this._namespaceURI=a;var d;if(t.useCreateElement){var h,v=n._ownerDocument;if(a===w.html)if(\"script\"===this._tag){var m=v.createElement(\"div\"),y=this._currentElement.type;m.innerHTML=\"<\"+y+\"></\"+y+\">\",h=m.removeChild(m.firstChild)}else h=i.is?v.createElement(this._currentElement.type,i.is):v.createElement(this._currentElement.type);else h=v.createElementNS(a,this._currentElement.type);O.precacheNode(this,h),this._flags|=j.hasCachedChildNodes,this._hostParent||C.setAttributeForRoot(h),this._updateDOMProperties(null,i,t);var _=b(h);this._createInitialChildren(t,i,r,_),d=_}else{var E=this._createOpenTagMarkupAndPutListeners(t,i),S=this._createContentMarkup(t,i,r);d=!S&&J[this._tag]?E+\"/>\":E+\">\"+S+\"</\"+this._currentElement.type+\">\"}switch(this._tag){case\"input\":t.getReactMountReady().enqueue(u,this),i.autoFocus&&t.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case\"textarea\":t.getReactMountReady().enqueue(s,this),i.autoFocus&&t.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case\"select\":i.autoFocus&&t.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case\"button\":i.autoFocus&&t.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case\"option\":t.getReactMountReady().enqueue(c,this)}return d},_createOpenTagMarkupAndPutListeners:function(t,e){var n=\"<\"+this._currentElement.type;for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];if(null!=o)if(z.hasOwnProperty(r))o&&i(this,r,o,t);else{r===V&&(o&&(o=this._previousStyleCopy=y({},e.style)),o=_.createMarkupForStyles(o,this));var a=null;null!=this._tag&&h(this._tag,e)?W.hasOwnProperty(r)||(a=C.createMarkupForCustomAttribute(r,o)):a=C.createMarkupForProperty(r,o),a&&(n+=\" \"+a)}}return t.renderToStaticMarkup?n:(this._hostParent||(n+=\" \"+C.createMarkupForRoot()),n+=\" \"+C.createMarkupForID(this._domID))},_createContentMarkup:function(t,e,n){var r=\"\",o=e.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&(r=o.__html);else{var i=q[typeof e.children]?e.children:null,a=null!=i?null:e.children;if(null!=i)r=D(i);else if(null!=a){var u=this.mountChildren(a,t,n);r=u.join(\"\")}}return X[this._tag]&&\"\\n\"===r.charAt(0)?\"\\n\"+r:r},_createInitialChildren:function(t,e,n,r){var o=e.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&b.queueHTML(r,o.__html);else{var i=q[typeof e.children]?e.children:null,a=null!=i?null:e.children;if(null!=i)\"\"!==i&&b.queueText(r,i);else if(null!=a)for(var u=this.mountChildren(a,t,n),s=0;s<u.length;s++)b.queueChild(r,u[s])}},receiveComponent:function(t,e,n){var r=this._currentElement;this._currentElement=t,this.updateComponent(e,r,t,n)},updateComponent:function(t,e,n,r){var i=e.props,a=this._currentElement.props;switch(this._tag){case\"input\":i=k.getHostProps(this,i),a=k.getHostProps(this,a);break;case\"option\":i=M.getHostProps(this,i),a=M.getHostProps(this,a);break;case\"select\":i=I.getHostProps(this,i),a=I.getHostProps(this,a);break;case\"textarea\":i=R.getHostProps(this,i),a=R.getHostProps(this,a)}switch(o(this,a),this._updateDOMProperties(i,a,t),this._updateDOMChildren(i,a,t,r),this._tag){case\"input\":k.updateWrapper(this),L.updateValueIfChanged(this);break;case\"textarea\":R.updateWrapper(this);break;case\"select\":t.getReactMountReady().enqueue(p,this)}},_updateDOMProperties:function(t,e,n){var r,o,a;for(r in t)if(!e.hasOwnProperty(r)&&t.hasOwnProperty(r)&&null!=t[r])if(r===V){var u=this._previousStyleCopy;for(o in u)u.hasOwnProperty(o)&&(a=a||{},a[o]=\"\");this._previousStyleCopy=null}else z.hasOwnProperty(r)?t[r]&&U(this,r):h(this._tag,t)?W.hasOwnProperty(r)||C.deleteValueForAttribute(B(this),r):(E.properties[r]||E.isCustomAttribute(r))&&C.deleteValueForProperty(B(this),r);for(r in e){var s=e[r],c=r===V?this._previousStyleCopy:null!=t?t[r]:void 0;if(e.hasOwnProperty(r)&&s!==c&&(null!=s||null!=c))if(r===V)if(s?s=this._previousStyleCopy=y({},s):this._previousStyleCopy=null,c){for(o in c)!c.hasOwnProperty(o)||s&&s.hasOwnProperty(o)||(a=a||{},a[o]=\"\");for(o in s)s.hasOwnProperty(o)&&c[o]!==s[o]&&(a=a||{},a[o]=s[o])}else a=s;else if(z.hasOwnProperty(r))s?i(this,r,s,n):c&&U(this,r);else if(h(this._tag,e))W.hasOwnProperty(r)||C.setValueForAttribute(B(this),r,s);else if(E.properties[r]||E.isCustomAttribute(r)){var l=B(this);null!=s?C.setValueForProperty(l,r,s):C.deleteValueForProperty(l,r)}}a&&_.setValueForStyles(B(this),a,this)},_updateDOMChildren:function(t,e,n,r){var o=q[typeof t.children]?t.children:null,i=q[typeof e.children]?e.children:null,a=t.dangerouslySetInnerHTML&&t.dangerouslySetInnerHTML.__html,u=e.dangerouslySetInnerHTML&&e.dangerouslySetInnerHTML.__html,s=null!=o?null:t.children,c=null!=i?null:e.children,l=null!=o||null!=a,f=null!=i||null!=u;null!=s&&null==c?this.updateChildren(null,n,r):l&&!f&&this.updateTextContent(\"\"),null!=i?o!==i&&this.updateTextContent(\"\"+i):null!=u?a!==u&&this.updateMarkup(\"\"+u):null!=c&&this.updateChildren(c,n,r)},getHostNode:function(){return B(this)},unmountComponent:function(t){switch(this._tag){case\"audio\":case\"form\":case\"iframe\":case\"img\":case\"link\":case\"object\":case\"source\":case\"video\":var e=this._wrapperState.listeners;if(e)for(var n=0;n<e.length;n++)e[n].remove();break;case\"input\":case\"textarea\":L.stopTracking(this);break;case\"html\":case\"head\":case\"body\":m(\"66\",this._tag)}this.unmountChildren(t),O.uncacheNode(this),S.deleteAllListeners(this),this._rootNodeID=0,this._domID=0,this._wrapperState=null},getPublicInstance:function(){return B(this)}},y(v.prototype,v.Mixin,A.Mixin),t.exports=v},function(t,e,n){\"use strict\";var r=n(35),o=n(91),i={focusDOMComponent:function(){o(r.getNodeFromInstance(this))}};t.exports=i},function(t,e){\"use strict\";function n(t){try{t.focus()}catch(t){}}t.exports=n},function(t,e,n){\"use strict\";var r=n(93),o=n(49),i=(n(63),n(94),n(96)),a=n(97),u=n(99),s=(n(7),u(function(t){return a(t)})),c=!1,l=\"cssFloat\";if(o.canUseDOM){var f=document.createElement(\"div\").style;try{f.font=\"\"}catch(t){c=!0}void 0===document.documentElement.style.cssFloat&&(l=\"styleFloat\")}var p={createMarkupForStyles:function(t,e){var n=\"\";for(var r in t)if(t.hasOwnProperty(r)){var o=0===r.indexOf(\"--\"),a=t[r];null!=a&&(n+=s(r)+\":\",n+=i(r,a,e,o)+\";\")}return n||null},setValueForStyles:function(t,e,n){var o=t.style;for(var a in e)if(e.hasOwnProperty(a)){var u=0===a.indexOf(\"--\"),s=i(a,e[a],n,u);if(\"float\"!==a&&\"cssFloat\"!==a||(a=l),u)o.setProperty(a,s);else if(s)o[a]=s;else{var f=c&&r.shorthandPropertyExpansions[a];if(f)for(var p in f)o[p]=\"\";else o[a]=\"\"}}}};t.exports=p},function(t,e){\"use strict\";function n(t,e){return t+e.charAt(0).toUpperCase()+e.substring(1)}var r={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},o=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(r).forEach(function(t){o.forEach(function(e){r[n(e,t)]=r[t]})});var i={background:{backgroundAttachment:!0,backgroundColor:!0,backgroundImage:!0,backgroundPositionX:!0,backgroundPositionY:!0,backgroundRepeat:!0},backgroundPosition:{backgroundPositionX:!0,backgroundPositionY:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0},outline:{outlineWidth:!0,outlineStyle:!0,outlineColor:!0}},a={isUnitlessNumber:r,shorthandPropertyExpansions:i};t.exports=a},function(t,e,n){\"use strict\";function r(t){return o(t.replace(i,\"ms-\"))}var o=n(95),i=/^-ms-/;t.exports=r},function(t,e){\"use strict\";function n(t){return t.replace(r,function(t,e){return e.toUpperCase()})}var r=/-(.)/g;t.exports=n},function(t,e,n){\"use strict\";function r(t,e,n,r){var o=null==e||\"boolean\"==typeof e||\"\"===e;if(o)return\"\";var a=isNaN(e);if(r||a||0===e||i.hasOwnProperty(t)&&i[t])return\"\"+e;if(\"string\"==typeof e){e=e.trim()}return e+\"px\"}var o=n(93),i=(n(7),o.isUnitlessNumber);t.exports=r},function(t,e,n){\"use strict\";function r(t){return o(t).replace(i,\"-ms-\")}var o=n(98),i=/^ms-/;t.exports=r},function(t,e){\"use strict\";function n(t){return t.replace(r,\"-$1\").toLowerCase()}var r=/([A-Z])/g;t.exports=n},function(t,e){\"use strict\";function n(t){var e={};return function(n){return e.hasOwnProperty(n)||(e[n]=t.call(this,n)),e[n]}}t.exports=n},function(t,e,n){\"use strict\";function r(t){return!!c.hasOwnProperty(t)||!s.hasOwnProperty(t)&&(u.test(t)?(c[t]=!0,!0):(s[t]=!0,!1))}function o(t,e){return null==e||t.hasBooleanValue&&!e||t.hasNumericValue&&isNaN(e)||t.hasPositiveNumericValue&&e<1||t.hasOverloadedBooleanValue&&e===!1}var i=n(37),a=(n(35),n(63),n(101)),u=(n(7),new RegExp(\"^[\"+i.ATTRIBUTE_NAME_START_CHAR+\"][\"+i.ATTRIBUTE_NAME_CHAR+\"]*$\")),s={},c={},l={createMarkupForID:function(t){return i.ID_ATTRIBUTE_NAME+\"=\"+a(t)},setAttributeForID:function(t,e){t.setAttribute(i.ID_ATTRIBUTE_NAME,e)},createMarkupForRoot:function(){return i.ROOT_ATTRIBUTE_NAME+'=\"\"'},setAttributeForRoot:function(t){t.setAttribute(i.ROOT_ATTRIBUTE_NAME,\"\")},createMarkupForProperty:function(t,e){var n=i.properties.hasOwnProperty(t)?i.properties[t]:null;if(n){if(o(n,e))return\"\";var r=n.attributeName;return n.hasBooleanValue||n.hasOverloadedBooleanValue&&e===!0?r+'=\"\"':r+\"=\"+a(e)}return i.isCustomAttribute(t)?null==e?\"\":t+\"=\"+a(e):null},createMarkupForCustomAttribute:function(t,e){return r(t)&&null!=e?t+\"=\"+a(e):\"\"},setValueForProperty:function(t,e,n){var r=i.properties.hasOwnProperty(e)?i.properties[e]:null;if(r){var a=r.mutationMethod;if(a)a(t,n);else{if(o(r,n))return void this.deleteValueForProperty(t,e);if(r.mustUseProperty)t[r.propertyName]=n;else{var u=r.attributeName,s=r.attributeNamespace;s?t.setAttributeNS(s,u,\"\"+n):r.hasBooleanValue||r.hasOverloadedBooleanValue&&n===!0?t.setAttribute(u,\"\"):t.setAttribute(u,\"\"+n)}}}else if(i.isCustomAttribute(e))return void l.setValueForAttribute(t,e,n)},setValueForAttribute:function(t,e,n){if(r(e)){null==n?t.removeAttribute(e):t.setAttribute(e,\"\"+n)}},deleteValueForAttribute:function(t,e){t.removeAttribute(e)},deleteValueForProperty:function(t,e){var n=i.properties.hasOwnProperty(e)?i.properties[e]:null;if(n){var r=n.mutationMethod;if(r)r(t,void 0);else if(n.mustUseProperty){var o=n.propertyName;n.hasBooleanValue?t[o]=!1:t[o]=\"\"}else t.removeAttribute(n.attributeName)}else i.isCustomAttribute(e)&&t.removeAttribute(e)}};t.exports=l},function(t,e,n){\"use strict\";function r(t){return'\"'+o(t)+'\"'}var o=n(83);t.exports=r},function(t,e,n){\"use strict\";function r(t){return Object.prototype.hasOwnProperty.call(t,v)||(t[v]=d++,f[t[v]]={}),f[t[v]]}var o,i=n(3),a=n(44),u=n(103),s=n(73),c=n(104),l=n(67),f={},p=!1,d=0,h={topAbort:\"abort\",topAnimationEnd:c(\"animationend\")||\"animationend\",topAnimationIteration:c(\"animationiteration\")||\"animationiteration\",topAnimationStart:c(\"animationstart\")||\"animationstart\",topBlur:\"blur\",topCanPlay:\"canplay\",topCanPlayThrough:\"canplaythrough\",topChange:\"change\",topClick:\"click\",topCompositionEnd:\"compositionend\",topCompositionStart:\"compositionstart\",topCompositionUpdate:\"compositionupdate\",topContextMenu:\"contextmenu\",topCopy:\"copy\",topCut:\"cut\",topDoubleClick:\"dblclick\",topDrag:\"drag\",topDragEnd:\"dragend\",topDragEnter:\"dragenter\",topDragExit:\"dragexit\",topDragLeave:\"dragleave\",topDragOver:\"dragover\",topDragStart:\"dragstart\",topDrop:\"drop\",topDurationChange:\"durationchange\",topEmptied:\"emptied\",topEncrypted:\"encrypted\",topEnded:\"ended\",topError:\"error\",topFocus:\"focus\",topInput:\"input\",topKeyDown:\"keydown\",topKeyPress:\"keypress\",topKeyUp:\"keyup\",topLoadedData:\"loadeddata\",topLoadedMetadata:\"loadedmetadata\",topLoadStart:\"loadstart\",topMouseDown:\"mousedown\",topMouseMove:\"mousemove\",topMouseOut:\"mouseout\",topMouseOver:\"mouseover\",topMouseUp:\"mouseup\",topPaste:\"paste\",topPause:\"pause\",topPlay:\"play\",topPlaying:\"playing\",topProgress:\"progress\",topRateChange:\"ratechange\",topScroll:\"scroll\",topSeeked:\"seeked\",topSeeking:\"seeking\",topSelectionChange:\"selectionchange\",topStalled:\"stalled\",topSuspend:\"suspend\",topTextInput:\"textInput\",topTimeUpdate:\"timeupdate\",topTouchCancel:\"touchcancel\",topTouchEnd:\"touchend\",topTouchMove:\"touchmove\",topTouchStart:\"touchstart\",topTransitionEnd:c(\"transitionend\")||\"transitionend\",topVolumeChange:\"volumechange\",topWaiting:\"waiting\",topWheel:\"wheel\"},v=\"_reactListenersID\"+String(Math.random()).slice(2),m=i({},u,{ReactEventListener:null,injection:{injectReactEventListener:function(t){t.setHandleTopLevel(m.handleTopLevel),m.ReactEventListener=t}},setEnabled:function(t){m.ReactEventListener&&m.ReactEventListener.setEnabled(t)},isEnabled:function(){return!(!m.ReactEventListener||!m.ReactEventListener.isEnabled())},listenTo:function(t,e){for(var n=e,o=r(n),i=a.registrationNameDependencies[t],u=0;u<i.length;u++){var s=i[u];o.hasOwnProperty(s)&&o[s]||(\"topWheel\"===s?l(\"wheel\")?m.ReactEventListener.trapBubbledEvent(\"topWheel\",\"wheel\",n):l(\"mousewheel\")?m.ReactEventListener.trapBubbledEvent(\"topWheel\",\"mousewheel\",n):m.ReactEventListener.trapBubbledEvent(\"topWheel\",\"DOMMouseScroll\",n):\"topScroll\"===s?l(\"scroll\",!0)?m.ReactEventListener.trapCapturedEvent(\"topScroll\",\"scroll\",n):m.ReactEventListener.trapBubbledEvent(\"topScroll\",\"scroll\",m.ReactEventListener.WINDOW_HANDLE):\"topFocus\"===s||\"topBlur\"===s?(l(\"focus\",!0)?(m.ReactEventListener.trapCapturedEvent(\"topFocus\",\"focus\",n),m.ReactEventListener.trapCapturedEvent(\"topBlur\",\"blur\",n)):l(\"focusin\")&&(m.ReactEventListener.trapBubbledEvent(\"topFocus\",\"focusin\",n),m.ReactEventListener.trapBubbledEvent(\"topBlur\",\"focusout\",n)),o.topBlur=!0,o.topFocus=!0):h.hasOwnProperty(s)&&m.ReactEventListener.trapBubbledEvent(s,h[s],n),o[s]=!0)}},trapBubbledEvent:function(t,e,n){return m.ReactEventListener.trapBubbledEvent(t,e,n)},trapCapturedEvent:function(t,e,n){return m.ReactEventListener.trapCapturedEvent(t,e,n)},supportsEventPageXY:function(){if(!document.createEvent)return!1;var t=document.createEvent(\"MouseEvent\");return null!=t&&\"pageX\"in t},ensureScrollValueMonitoring:function(){if(void 0===o&&(o=m.supportsEventPageXY()),!o&&!p){var t=s.refreshScrollValues;m.ReactEventListener.monitorScrollValue(t),p=!0}}});t.exports=m},function(t,e,n){\"use strict\";function r(t){o.enqueueEvents(t),o.processEventQueue(!1)}var o=n(43),i={handleTopLevel:function(t,e,n,i){var a=o.extractEvents(t,e,n,i);r(a)}};t.exports=i},function(t,e,n){\"use strict\";function r(t,e){var n={};return n[t.toLowerCase()]=e.toLowerCase(),n[\"Webkit\"+t]=\"webkit\"+e,n[\"Moz\"+t]=\"moz\"+e,n[\"ms\"+t]=\"MS\"+e,n[\"O\"+t]=\"o\"+e.toLowerCase(),\nn}function o(t){if(u[t])return u[t];if(!a[t])return t;var e=a[t];for(var n in e)if(e.hasOwnProperty(n)&&n in s)return u[t]=e[n];return\"\"}var i=n(49),a={animationend:r(\"Animation\",\"AnimationEnd\"),animationiteration:r(\"Animation\",\"AnimationIteration\"),animationstart:r(\"Animation\",\"AnimationStart\"),transitionend:r(\"Transition\",\"TransitionEnd\")},u={},s={};i.canUseDOM&&(s=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete a.animationend.animation,delete a.animationiteration.animation,delete a.animationstart.animation),\"TransitionEvent\"in window||delete a.transitionend.transition),t.exports=o},function(t,e,n){\"use strict\";function r(){this._rootNodeID&&p.updateWrapper(this)}function o(t){var e=\"checkbox\"===t.type||\"radio\"===t.type;return e?null!=t.checked:null!=t.value}function i(t){var e=this._currentElement.props,n=c.executeOnChange(e,t);f.asap(r,this);var o=e.name;if(\"radio\"===e.type&&null!=o){for(var i=l.getNodeFromInstance(this),u=i;u.parentNode;)u=u.parentNode;for(var s=u.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+o)+'][type=\"radio\"]'),p=0;p<s.length;p++){var d=s[p];if(d!==i&&d.form===i.form){var h=l.getInstanceFromNode(d);h?void 0:a(\"90\"),f.asap(r,h)}}}return n}var a=n(36),u=n(3),s=n(100),c=n(106),l=n(35),f=n(57),p=(n(11),n(7),{getHostProps:function(t,e){var n=c.getValue(e),r=c.getChecked(e),o=u({type:void 0,step:void 0,min:void 0,max:void 0},e,{defaultChecked:void 0,defaultValue:void 0,value:null!=n?n:t._wrapperState.initialValue,checked:null!=r?r:t._wrapperState.initialChecked,onChange:t._wrapperState.onChange});return o},mountWrapper:function(t,e){var n=e.defaultValue;t._wrapperState={initialChecked:null!=e.checked?e.checked:e.defaultChecked,initialValue:null!=e.value?e.value:n,listeners:null,onChange:i.bind(t),controlled:o(e)}},updateWrapper:function(t){var e=t._currentElement.props,n=e.checked;null!=n&&s.setValueForProperty(l.getNodeFromInstance(t),\"checked\",n||!1);var r=l.getNodeFromInstance(t),o=c.getValue(e);if(null!=o)if(0===o&&\"\"===r.value)r.value=\"0\";else if(\"number\"===e.type){var i=parseFloat(r.value,10)||0;(o!=i||o==i&&r.value!=o)&&(r.value=\"\"+o)}else r.value!==\"\"+o&&(r.value=\"\"+o);else null==e.value&&null!=e.defaultValue&&r.defaultValue!==\"\"+e.defaultValue&&(r.defaultValue=\"\"+e.defaultValue),null==e.checked&&null!=e.defaultChecked&&(r.defaultChecked=!!e.defaultChecked)},postMountWrapper:function(t){var e=t._currentElement.props,n=l.getNodeFromInstance(t);switch(e.type){case\"submit\":case\"reset\":break;case\"color\":case\"date\":case\"datetime\":case\"datetime-local\":case\"month\":case\"time\":case\"week\":n.value=\"\",n.value=n.defaultValue;break;default:n.value=n.value}var r=n.name;\"\"!==r&&(n.name=\"\"),n.defaultChecked=!n.defaultChecked,n.defaultChecked=!n.defaultChecked,\"\"!==r&&(n.name=r)}});t.exports=p},function(t,e,n){\"use strict\";function r(t){null!=t.checkedLink&&null!=t.valueLink?u(\"87\"):void 0}function o(t){r(t),null!=t.value||null!=t.onChange?u(\"88\"):void 0}function i(t){r(t),null!=t.checked||null!=t.onChange?u(\"89\"):void 0}function a(t){if(t){var e=t.getName();if(e)return\" Check the render method of `\"+e+\"`.\"}return\"\"}var u=n(36),s=n(107),c=n(23),l=n(2),f=c(l.isValidElement),p=(n(11),n(7),{button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0}),d={value:function(t,e,n){return!t[e]||p[t.type]||t.onChange||t.readOnly||t.disabled?null:new Error(\"You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.\")},checked:function(t,e,n){return!t[e]||t.onChange||t.readOnly||t.disabled?null:new Error(\"You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.\")},onChange:f.func},h={},v={checkPropTypes:function(t,e,n){for(var r in d){if(d.hasOwnProperty(r))var o=d[r](e,r,t,\"prop\",null,s);if(o instanceof Error&&!(o.message in h)){h[o.message]=!0;a(n)}}},getValue:function(t){return t.valueLink?(o(t),t.valueLink.value):t.value},getChecked:function(t){return t.checkedLink?(i(t),t.checkedLink.value):t.checked},executeOnChange:function(t,e){return t.valueLink?(o(t),t.valueLink.requestChange(e.target.value)):t.checkedLink?(i(t),t.checkedLink.requestChange(e.target.checked)):t.onChange?t.onChange.call(void 0,e):void 0}};t.exports=v},function(t,e){\"use strict\";var n=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\";t.exports=n},function(t,e,n){\"use strict\";function r(t){var e=\"\";return i.Children.forEach(t,function(t){null!=t&&(\"string\"==typeof t||\"number\"==typeof t?e+=t:s||(s=!0))}),e}var o=n(3),i=n(2),a=n(35),u=n(109),s=(n(7),!1),c={mountWrapper:function(t,e,n){var o=null;if(null!=n){var i=n;\"optgroup\"===i._tag&&(i=i._hostParent),null!=i&&\"select\"===i._tag&&(o=u.getSelectValueContext(i))}var a=null;if(null!=o){var s;if(s=null!=e.value?e.value+\"\":r(e.children),a=!1,Array.isArray(o)){for(var c=0;c<o.length;c++)if(\"\"+o[c]===s){a=!0;break}}else a=\"\"+o===s}t._wrapperState={selected:a}},postMountWrapper:function(t){var e=t._currentElement.props;if(null!=e.value){var n=a.getNodeFromInstance(t);n.setAttribute(\"value\",e.value)}},getHostProps:function(t,e){var n=o({selected:void 0,children:void 0},e);null!=t._wrapperState.selected&&(n.selected=t._wrapperState.selected);var i=r(e.children);return i&&(n.children=i),n}};t.exports=c},function(t,e,n){\"use strict\";function r(){if(this._rootNodeID&&this._wrapperState.pendingUpdate){this._wrapperState.pendingUpdate=!1;var t=this._currentElement.props,e=u.getValue(t);null!=e&&o(this,Boolean(t.multiple),e)}}function o(t,e,n){var r,o,i=s.getNodeFromInstance(t).options;if(e){for(r={},o=0;o<n.length;o++)r[\"\"+n[o]]=!0;for(o=0;o<i.length;o++){var a=r.hasOwnProperty(i[o].value);i[o].selected!==a&&(i[o].selected=a)}}else{for(r=\"\"+n,o=0;o<i.length;o++)if(i[o].value===r)return void(i[o].selected=!0);i.length&&(i[0].selected=!0)}}function i(t){var e=this._currentElement.props,n=u.executeOnChange(e,t);return this._rootNodeID&&(this._wrapperState.pendingUpdate=!0),c.asap(r,this),n}var a=n(3),u=n(106),s=n(35),c=n(57),l=(n(7),!1),f={getHostProps:function(t,e){return a({},e,{onChange:t._wrapperState.onChange,value:void 0})},mountWrapper:function(t,e){var n=u.getValue(e);t._wrapperState={pendingUpdate:!1,initialValue:null!=n?n:e.defaultValue,listeners:null,onChange:i.bind(t),wasMultiple:Boolean(e.multiple)},void 0===e.value||void 0===e.defaultValue||l||(l=!0)},getSelectValueContext:function(t){return t._wrapperState.initialValue},postUpdateWrapper:function(t){var e=t._currentElement.props;t._wrapperState.initialValue=void 0;var n=t._wrapperState.wasMultiple;t._wrapperState.wasMultiple=Boolean(e.multiple);var r=u.getValue(e);null!=r?(t._wrapperState.pendingUpdate=!1,o(t,Boolean(e.multiple),r)):n!==Boolean(e.multiple)&&(null!=e.defaultValue?o(t,Boolean(e.multiple),e.defaultValue):o(t,Boolean(e.multiple),e.multiple?[]:\"\"))}};t.exports=f},function(t,e,n){\"use strict\";function r(){this._rootNodeID&&l.updateWrapper(this)}function o(t){var e=this._currentElement.props,n=u.executeOnChange(e,t);return c.asap(r,this),n}var i=n(36),a=n(3),u=n(106),s=n(35),c=n(57),l=(n(11),n(7),{getHostProps:function(t,e){null!=e.dangerouslySetInnerHTML?i(\"91\"):void 0;var n=a({},e,{value:void 0,defaultValue:void 0,children:\"\"+t._wrapperState.initialValue,onChange:t._wrapperState.onChange});return n},mountWrapper:function(t,e){var n=u.getValue(e),r=n;if(null==n){var a=e.defaultValue,s=e.children;null!=s&&(null!=a?i(\"92\"):void 0,Array.isArray(s)&&(s.length<=1?void 0:i(\"93\"),s=s[0]),a=\"\"+s),null==a&&(a=\"\"),r=a}t._wrapperState={initialValue:\"\"+r,listeners:null,onChange:o.bind(t)}},updateWrapper:function(t){var e=t._currentElement.props,n=s.getNodeFromInstance(t),r=u.getValue(e);if(null!=r){var o=\"\"+r;o!==n.value&&(n.value=o),null==e.defaultValue&&(n.defaultValue=o)}null!=e.defaultValue&&(n.defaultValue=e.defaultValue)},postMountWrapper:function(t){var e=s.getNodeFromInstance(t),n=e.textContent;n===t._wrapperState.initialValue&&(e.value=n)}});t.exports=l},function(t,e,n){\"use strict\";function r(t,e,n){return{type:\"INSERT_MARKUP\",content:t,fromIndex:null,fromNode:null,toIndex:n,afterNode:e}}function o(t,e,n){return{type:\"MOVE_EXISTING\",content:null,fromIndex:t._mountIndex,fromNode:p.getHostNode(t),toIndex:n,afterNode:e}}function i(t,e){return{type:\"REMOVE_NODE\",content:null,fromIndex:t._mountIndex,fromNode:e,toIndex:null,afterNode:null}}function a(t){return{type:\"SET_MARKUP\",content:t,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function u(t){return{type:\"TEXT_CONTENT\",content:t,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function s(t,e){return e&&(t=t||[],t.push(e)),t}function c(t,e){f.processChildrenUpdates(t,e)}var l=n(36),f=n(112),p=(n(113),n(63),n(16),n(60)),d=n(114),h=(n(8),n(129)),v=(n(11),{Mixin:{_reconcilerInstantiateChildren:function(t,e,n){return d.instantiateChildren(t,e,n)},_reconcilerUpdateChildren:function(t,e,n,r,o,i){var a,u=0;return a=h(e,u),d.updateChildren(t,a,n,r,o,this,this._hostContainerInfo,i,u),a},mountChildren:function(t,e,n){var r=this._reconcilerInstantiateChildren(t,e,n);this._renderedChildren=r;var o=[],i=0;for(var a in r)if(r.hasOwnProperty(a)){var u=r[a],s=0,c=p.mountComponent(u,e,this,this._hostContainerInfo,n,s);u._mountIndex=i++,o.push(c)}return o},updateTextContent:function(t){var e=this._renderedChildren;d.unmountChildren(e,!1);for(var n in e)e.hasOwnProperty(n)&&l(\"118\");var r=[u(t)];c(this,r)},updateMarkup:function(t){var e=this._renderedChildren;d.unmountChildren(e,!1);for(var n in e)e.hasOwnProperty(n)&&l(\"118\");var r=[a(t)];c(this,r)},updateChildren:function(t,e,n){this._updateChildren(t,e,n)},_updateChildren:function(t,e,n){var r=this._renderedChildren,o={},i=[],a=this._reconcilerUpdateChildren(r,t,i,o,e,n);if(a||r){var u,l=null,f=0,d=0,h=0,v=null;for(u in a)if(a.hasOwnProperty(u)){var m=r&&r[u],y=a[u];m===y?(l=s(l,this.moveChild(m,v,f,d)),d=Math.max(m._mountIndex,d),m._mountIndex=f):(m&&(d=Math.max(m._mountIndex,d)),l=s(l,this._mountChildAtIndex(y,i[h],v,f,e,n)),h++),f++,v=p.getHostNode(y)}for(u in o)o.hasOwnProperty(u)&&(l=s(l,this._unmountChild(r[u],o[u])));l&&c(this,l),this._renderedChildren=a}},unmountChildren:function(t){var e=this._renderedChildren;d.unmountChildren(e,t),this._renderedChildren=null},moveChild:function(t,e,n,r){if(t._mountIndex<r)return o(t,e,n)},createChild:function(t,e,n){return r(n,e,t._mountIndex)},removeChild:function(t,e){return i(t,e)},_mountChildAtIndex:function(t,e,n,r,o,i){return t._mountIndex=r,this.createChild(t,n,e)},_unmountChild:function(t,e){var n=this.removeChild(t,e);return t._mountIndex=null,n}}});t.exports=v},function(t,e,n){\"use strict\";var r=n(36),o=(n(11),!1),i={replaceNodeWithMarkup:null,processChildrenUpdates:null,injection:{injectEnvironment:function(t){o?r(\"104\"):void 0,i.replaceNodeWithMarkup=t.replaceNodeWithMarkup,i.processChildrenUpdates=t.processChildrenUpdates,o=!0}}};t.exports=i},function(t,e){\"use strict\";var n={remove:function(t){t._reactInternalInstance=void 0},get:function(t){return t._reactInternalInstance},has:function(t){return void 0!==t._reactInternalInstance},set:function(t,e){t._reactInternalInstance=e}};t.exports=n},function(t,e,n){(function(e){\"use strict\";function r(t,e,n,r){var o=void 0===t[n];null!=e&&o&&(t[n]=i(e,!0))}var o=n(60),i=n(116),a=(n(124),n(120)),u=n(125);n(7);\"undefined\"!=typeof e&&e.env,1;var s={instantiateChildren:function(t,e,n,o){if(null==t)return null;var i={};return u(t,r,i),i},updateChildren:function(t,e,n,r,u,s,c,l,f){if(e||t){var p,d;for(p in e)if(e.hasOwnProperty(p)){d=t&&t[p];var h=d&&d._currentElement,v=e[p];if(null!=d&&a(h,v))o.receiveComponent(d,v,u,l),e[p]=d;else{d&&(r[p]=o.getHostNode(d),o.unmountComponent(d,!1));var m=i(v,!0);e[p]=m;var y=o.mountComponent(m,u,s,c,l,f);n.push(y)}}for(p in t)!t.hasOwnProperty(p)||e&&e.hasOwnProperty(p)||(d=t[p],r[p]=o.getHostNode(d),o.unmountComponent(d,!1))}},unmountChildren:function(t,e){for(var n in t)if(t.hasOwnProperty(n)){var r=t[n];o.unmountComponent(r,e)}}};t.exports=s}).call(e,n(115))},function(t,e){function n(){throw new Error(\"setTimeout has not been defined\")}function r(){throw new Error(\"clearTimeout has not been defined\")}function o(t){if(l===setTimeout)return setTimeout(t,0);if((l===n||!l)&&setTimeout)return l=setTimeout,setTimeout(t,0);try{return l(t,0)}catch(e){try{return l.call(null,t,0)}catch(e){return l.call(this,t,0)}}}function i(t){if(f===clearTimeout)return clearTimeout(t);if((f===r||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(t);try{return f(t)}catch(e){try{return f.call(null,t)}catch(e){return f.call(this,t)}}}function a(){v&&d&&(v=!1,d.length?h=d.concat(h):m=-1,h.length&&u())}function u(){if(!v){var t=o(a);v=!0;for(var e=h.length;e;){for(d=h,h=[];++m<e;)d&&d[m].run();m=-1,e=h.length}d=null,v=!1,i(t)}}function s(t,e){this.fun=t,this.array=e}function c(){}var l,f,p=t.exports={};!function(){try{l=\"function\"==typeof setTimeout?setTimeout:n}catch(t){l=n}try{f=\"function\"==typeof clearTimeout?clearTimeout:r}catch(t){f=r}}();var d,h=[],v=!1,m=-1;p.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];h.push(new s(t,e)),1!==h.length||v||o(u)},s.prototype.run=function(){this.fun.apply(null,this.array)},p.title=\"browser\",p.browser=!0,p.env={},p.argv=[],p.version=\"\",p.versions={},p.on=c,p.addListener=c,p.once=c,p.off=c,p.removeListener=c,p.removeAllListeners=c,p.emit=c,p.prependListener=c,p.prependOnceListener=c,p.listeners=function(t){return[]},p.binding=function(t){throw new Error(\"process.binding is not supported\")},p.cwd=function(){return\"/\"},p.chdir=function(t){throw new Error(\"process.chdir is not supported\")},p.umask=function(){return 0}},function(t,e,n){\"use strict\";function r(t){if(t){var e=t.getName();if(e)return\" Check the render method of `\"+e+\"`.\"}return\"\"}function o(t){return\"function\"==typeof t&&\"undefined\"!=typeof t.prototype&&\"function\"==typeof t.prototype.mountComponent&&\"function\"==typeof t.prototype.receiveComponent}function i(t,e){var n;if(null===t||t===!1)n=c.create(i);else if(\"object\"==typeof t){var u=t,s=u.type;if(\"function\"!=typeof s&&\"string\"!=typeof s){var p=\"\";p+=r(u._owner),a(\"130\",null==s?s:typeof s,p)}\"string\"==typeof u.type?n=l.createInternalComponent(u):o(u.type)?(n=new u.type(u),n.getHostNode||(n.getHostNode=n.getNativeNode)):n=new f(u)}else\"string\"==typeof t||\"number\"==typeof t?n=l.createInstanceForText(t):a(\"131\",typeof t);return n._mountIndex=0,n._mountImage=null,n}var a=n(36),u=n(3),s=n(117),c=n(121),l=n(122),f=(n(123),n(11),n(7),function(t){this.construct(t)});u(f.prototype,s,{_instantiateReactComponent:i}),t.exports=i},function(t,e,n){\"use strict\";function r(t){}function o(t,e){}function i(t){return!(!t.prototype||!t.prototype.isReactComponent)}function a(t){return!(!t.prototype||!t.prototype.isPureReactComponent)}var u=n(36),s=n(3),c=n(2),l=n(112),f=n(16),p=n(46),d=n(113),h=(n(63),n(118)),v=n(60),m=n(10),y=(n(11),n(119)),g=n(120),_=(n(7),{ImpureClass:0,PureClass:1,StatelessFunctional:2});r.prototype.render=function(){var t=d.get(this)._currentElement.type,e=t(this.props,this.context,this.updater);return o(t,e),e};var b=1,w={construct:function(t){this._currentElement=t,this._rootNodeID=0,this._compositeType=null,this._instance=null,this._hostParent=null,this._hostContainerInfo=null,this._updateBatchNumber=null,this._pendingElement=null,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._renderedNodeType=null,this._renderedComponent=null,this._context=null,this._mountOrder=0,this._topLevelWrapper=null,this._pendingCallbacks=null,this._calledComponentWillUnmount=!1},mountComponent:function(t,e,n,s){this._context=s,this._mountOrder=b++,this._hostParent=e,this._hostContainerInfo=n;var l,f=this._currentElement.props,p=this._processContext(s),h=this._currentElement.type,v=t.getUpdateQueue(),y=i(h),g=this._constructComponent(y,f,p,v);y||null!=g&&null!=g.render?a(h)?this._compositeType=_.PureClass:this._compositeType=_.ImpureClass:(l=g,o(h,l),null===g||g===!1||c.isValidElement(g)?void 0:u(\"105\",h.displayName||h.name||\"Component\"),g=new r(h),this._compositeType=_.StatelessFunctional);g.props=f,g.context=p,g.refs=m,g.updater=v,this._instance=g,d.set(g,this);var w=g.state;void 0===w&&(g.state=w=null),\"object\"!=typeof w||Array.isArray(w)?u(\"106\",this.getName()||\"ReactCompositeComponent\"):void 0,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1;var E;return E=g.unstable_handleError?this.performInitialMountWithErrorHandling(l,e,n,t,s):this.performInitialMount(l,e,n,t,s),g.componentDidMount&&t.getReactMountReady().enqueue(g.componentDidMount,g),E},_constructComponent:function(t,e,n,r){return this._constructComponentWithoutOwner(t,e,n,r)},_constructComponentWithoutOwner:function(t,e,n,r){var o=this._currentElement.type;return t?new o(e,n,r):o(e,n,r)},performInitialMountWithErrorHandling:function(t,e,n,r,o){var i,a=r.checkpoint();try{i=this.performInitialMount(t,e,n,r,o)}catch(u){r.rollback(a),this._instance.unstable_handleError(u),this._pendingStateQueue&&(this._instance.state=this._processPendingState(this._instance.props,this._instance.context)),a=r.checkpoint(),this._renderedComponent.unmountComponent(!0),r.rollback(a),i=this.performInitialMount(t,e,n,r,o)}return i},performInitialMount:function(t,e,n,r,o){var i=this._instance,a=0;i.componentWillMount&&(i.componentWillMount(),this._pendingStateQueue&&(i.state=this._processPendingState(i.props,i.context))),void 0===t&&(t=this._renderValidatedComponent());var u=h.getType(t);this._renderedNodeType=u;var s=this._instantiateReactComponent(t,u!==h.EMPTY);this._renderedComponent=s;var c=v.mountComponent(s,r,e,n,this._processChildContext(o),a);return c},getHostNode:function(){return v.getHostNode(this._renderedComponent)},unmountComponent:function(t){if(this._renderedComponent){var e=this._instance;if(e.componentWillUnmount&&!e._calledComponentWillUnmount)if(e._calledComponentWillUnmount=!0,t){var n=this.getName()+\".componentWillUnmount()\";p.invokeGuardedCallback(n,e.componentWillUnmount.bind(e))}else e.componentWillUnmount();this._renderedComponent&&(v.unmountComponent(this._renderedComponent,t),this._renderedNodeType=null,this._renderedComponent=null,this._instance=null),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._pendingCallbacks=null,this._pendingElement=null,this._context=null,this._rootNodeID=0,this._topLevelWrapper=null,d.remove(e)}},_maskContext:function(t){var e=this._currentElement.type,n=e.contextTypes;if(!n)return m;var r={};for(var o in n)r[o]=t[o];return r},_processContext:function(t){var e=this._maskContext(t);return e},_processChildContext:function(t){var e,n=this._currentElement.type,r=this._instance;if(r.getChildContext&&(e=r.getChildContext()),e){\"object\"!=typeof n.childContextTypes?u(\"107\",this.getName()||\"ReactCompositeComponent\"):void 0;for(var o in e)o in n.childContextTypes?void 0:u(\"108\",this.getName()||\"ReactCompositeComponent\",o);return s({},t,e)}return t},_checkContextTypes:function(t,e,n){},receiveComponent:function(t,e,n){var r=this._currentElement,o=this._context;this._pendingElement=null,this.updateComponent(e,r,t,o,n)},performUpdateIfNecessary:function(t){null!=this._pendingElement?v.receiveComponent(this,this._pendingElement,t,this._context):null!==this._pendingStateQueue||this._pendingForceUpdate?this.updateComponent(t,this._currentElement,this._currentElement,this._context,this._context):this._updateBatchNumber=null},updateComponent:function(t,e,n,r,o){var i=this._instance;null==i?u(\"136\",this.getName()||\"ReactCompositeComponent\"):void 0;var a,s=!1;this._context===o?a=i.context:(a=this._processContext(o),s=!0);var c=e.props,l=n.props;e!==n&&(s=!0),s&&i.componentWillReceiveProps&&i.componentWillReceiveProps(l,a);var f=this._processPendingState(l,a),p=!0;this._pendingForceUpdate||(i.shouldComponentUpdate?p=i.shouldComponentUpdate(l,f,a):this._compositeType===_.PureClass&&(p=!y(c,l)||!y(i.state,f))),this._updateBatchNumber=null,p?(this._pendingForceUpdate=!1,this._performComponentUpdate(n,l,f,a,t,o)):(this._currentElement=n,this._context=o,i.props=l,i.state=f,i.context=a)},_processPendingState:function(t,e){var n=this._instance,r=this._pendingStateQueue,o=this._pendingReplaceState;if(this._pendingReplaceState=!1,this._pendingStateQueue=null,!r)return n.state;if(o&&1===r.length)return r[0];for(var i=s({},o?r[0]:n.state),a=o?1:0;a<r.length;a++){var u=r[a];s(i,\"function\"==typeof u?u.call(n,i,t,e):u)}return i},_performComponentUpdate:function(t,e,n,r,o,i){var a,u,s,c=this._instance,l=Boolean(c.componentDidUpdate);l&&(a=c.props,u=c.state,s=c.context),c.componentWillUpdate&&c.componentWillUpdate(e,n,r),this._currentElement=t,this._context=i,c.props=e,c.state=n,c.context=r,this._updateRenderedComponent(o,i),l&&o.getReactMountReady().enqueue(c.componentDidUpdate.bind(c,a,u,s),c)},_updateRenderedComponent:function(t,e){var n=this._renderedComponent,r=n._currentElement,o=this._renderValidatedComponent(),i=0;if(g(r,o))v.receiveComponent(n,o,t,this._processChildContext(e));else{var a=v.getHostNode(n);v.unmountComponent(n,!1);var u=h.getType(o);this._renderedNodeType=u;var s=this._instantiateReactComponent(o,u!==h.EMPTY);this._renderedComponent=s;var c=v.mountComponent(s,t,this._hostParent,this._hostContainerInfo,this._processChildContext(e),i);this._replaceNodeWithMarkup(a,c,n)}},_replaceNodeWithMarkup:function(t,e,n){l.replaceNodeWithMarkup(t,e,n)},_renderValidatedComponentWithoutOwnerOrContext:function(){var t,e=this._instance;return t=e.render()},_renderValidatedComponent:function(){var t;if(this._compositeType!==_.StatelessFunctional){f.current=this;try{t=this._renderValidatedComponentWithoutOwnerOrContext()}finally{f.current=null}}else t=this._renderValidatedComponentWithoutOwnerOrContext();return null===t||t===!1||c.isValidElement(t)?void 0:u(\"109\",this.getName()||\"ReactCompositeComponent\"),t},attachRef:function(t,e){var n=this.getPublicInstance();null==n?u(\"110\"):void 0;var r=e.getPublicInstance(),o=n.refs===m?n.refs={}:n.refs;o[t]=r},detachRef:function(t){var e=this.getPublicInstance().refs;delete e[t]},getName:function(){var t=this._currentElement.type,e=this._instance&&this._instance.constructor;return t.displayName||e&&e.displayName||t.name||e&&e.name||null},getPublicInstance:function(){var t=this._instance;return this._compositeType===_.StatelessFunctional?null:t},_instantiateReactComponent:null};t.exports=w},function(t,e,n){\"use strict\";var r=n(36),o=n(2),i=(n(11),{HOST:0,COMPOSITE:1,EMPTY:2,getType:function(t){return null===t||t===!1?i.EMPTY:o.isValidElement(t)?\"function\"==typeof t.type?i.COMPOSITE:i.HOST:void r(\"26\",t)}});t.exports=i},function(t,e){\"use strict\";function n(t,e){return t===e?0!==t||0!==e||1/t===1/e:t!==t&&e!==e}function r(t,e){if(n(t,e))return!0;if(\"object\"!=typeof t||null===t||\"object\"!=typeof e||null===e)return!1;var r=Object.keys(t),i=Object.keys(e);if(r.length!==i.length)return!1;for(var a=0;a<r.length;a++)if(!o.call(e,r[a])||!n(t[r[a]],e[r[a]]))return!1;return!0}var o=Object.prototype.hasOwnProperty;t.exports=r},function(t,e){\"use strict\";function n(t,e){var n=null===t||t===!1,r=null===e||e===!1;if(n||r)return n===r;var o=typeof t,i=typeof e;return\"string\"===o||\"number\"===o?\"string\"===i||\"number\"===i:\"object\"===i&&t.type===e.type&&t.key===e.key}t.exports=n},function(t,e){\"use strict\";var n,r={injectEmptyComponentFactory:function(t){n=t}},o={create:function(t){return n(t)}};o.injection=r,t.exports=o},function(t,e,n){\"use strict\";function r(t){return u?void 0:a(\"111\",t.type),new u(t)}function o(t){return new s(t)}function i(t){return t instanceof s}var a=n(36),u=(n(11),null),s=null,c={injectGenericComponentClass:function(t){u=t},injectTextComponentClass:function(t){s=t}},l={createInternalComponent:r,createInstanceForText:o,isTextComponent:i,injection:c};t.exports=l},function(t,e){\"use strict\";function n(){return r++}var r=1;t.exports=n},function(t,e){\"use strict\";function n(t){var e=/[=:]/g,n={\"=\":\"=0\",\":\":\"=2\"},r=(\"\"+t).replace(e,function(t){return n[t]});return\"$\"+r}function r(t){var e=/(=0|=2)/g,n={\"=0\":\"=\",\"=2\":\":\"},r=\".\"===t[0]&&\"$\"===t[1]?t.substring(2):t.substring(1);return(\"\"+r).replace(e,function(t){return n[t]})}var o={escape:n,unescape:r};t.exports=o},function(t,e,n){\"use strict\";function r(t,e){return t&&\"object\"==typeof t&&null!=t.key?c.escape(t.key):e.toString(36)}function o(t,e,n,i){var p=typeof t;if(\"undefined\"!==p&&\"boolean\"!==p||(t=null),null===t||\"string\"===p||\"number\"===p||\"object\"===p&&t.$$typeof===u)return n(i,t,\"\"===e?l+r(t,0):e),1;var d,h,v=0,m=\"\"===e?l:e+f;if(Array.isArray(t))for(var y=0;y<t.length;y++)d=t[y],h=m+r(d,y),v+=o(d,h,n,i);else{var g=s(t);if(g){var _,b=g.call(t);if(g!==t.entries)for(var w=0;!(_=b.next()).done;)d=_.value,h=m+r(d,w++),v+=o(d,h,n,i);else for(;!(_=b.next()).done;){var E=_.value;E&&(d=E[1],h=m+c.escape(E[0])+f+r(d,0),v+=o(d,h,n,i))}}else if(\"object\"===p){var C=\"\",S=String(t);a(\"31\",\"[object Object]\"===S?\"object with keys {\"+Object.keys(t).join(\", \")+\"}\":S,C)}}return v}function i(t,e,n){return null==t?0:o(t,\"\",e,n)}var a=n(36),u=(n(16),n(126)),s=n(127),c=(n(11),n(124)),l=(n(7),\".\"),f=\":\";t.exports=i},function(t,e){\"use strict\";var n=\"function\"==typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103;t.exports=n},function(t,e){\"use strict\";function n(t){var e=t&&(r&&t[r]||t[o]);if(\"function\"==typeof e)return e}var r=\"function\"==typeof Symbol&&Symbol.iterator,o=\"@@iterator\";t.exports=n},function(t,e,n){\"use strict\";function r(t){var e=Function.prototype.toString,n=Object.prototype.hasOwnProperty,r=RegExp(\"^\"+e.call(n).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\");try{var o=e.call(t);return r.test(o)}catch(t){return!1}}function o(t){var e=c(t);if(e){var n=e.childIDs;l(t),n.forEach(o)}}function i(t,e,n){return\"\\n    in \"+(t||\"Unknown\")+(e?\" (at \"+e.fileName.replace(/^.*[\\\\\\/]/,\"\")+\":\"+e.lineNumber+\")\":n?\" (created by \"+n+\")\":\"\")}function a(t){return null==t?\"#empty\":\"string\"==typeof t||\"number\"==typeof t?\"#text\":\"string\"==typeof t.type?t.type:t.type.displayName||t.type.name||\"Unknown\"}function u(t){var e,n=x.getDisplayName(t),r=x.getElement(t),o=x.getOwnerID(t);return o&&(e=x.getDisplayName(o)),i(n,r&&r._source,e)}var s,c,l,f,p,d,h,v=n(5),m=n(16),y=(n(11),n(7),\"function\"==typeof Array.from&&\"function\"==typeof Map&&r(Map)&&null!=Map.prototype&&\"function\"==typeof Map.prototype.keys&&r(Map.prototype.keys)&&\"function\"==typeof Set&&r(Set)&&null!=Set.prototype&&\"function\"==typeof Set.prototype.keys&&r(Set.prototype.keys));if(y){var g=new Map,_=new Set;s=function(t,e){g.set(t,e)},c=function(t){return g.get(t)},l=function(t){g.delete(t)},f=function(){return Array.from(g.keys())},p=function(t){_.add(t)},d=function(t){_.delete(t)},h=function(){return Array.from(_.keys())}}else{var b={},w={},E=function(t){return\".\"+t},C=function(t){return parseInt(t.substr(1),10)};s=function(t,e){var n=E(t);b[n]=e},c=function(t){var e=E(t);return b[e]},l=function(t){var e=E(t);delete b[e]},f=function(){return Object.keys(b).map(C)},p=function(t){var e=E(t);w[e]=!0},d=function(t){var e=E(t);delete w[e]},h=function(){return Object.keys(w).map(C)}}var S=[],x={onSetChildren:function(t,e){var n=c(t);n?void 0:v(\"144\"),n.childIDs=e;for(var r=0;r<e.length;r++){var o=e[r],i=c(o);i?void 0:v(\"140\"),null==i.childIDs&&\"object\"==typeof i.element&&null!=i.element?v(\"141\"):void 0,i.isMounted?void 0:v(\"71\"),null==i.parentID&&(i.parentID=t),i.parentID!==t?v(\"142\",o,i.parentID,t):void 0}},onBeforeMountComponent:function(t,e,n){var r={element:e,parentID:n,text:null,childIDs:[],isMounted:!1,updateCount:0};s(t,r)},onBeforeUpdateComponent:function(t,e){var n=c(t);n&&n.isMounted&&(n.element=e)},onMountComponent:function(t){var e=c(t);e?void 0:v(\"144\"),e.isMounted=!0;var n=0===e.parentID;n&&p(t)},onUpdateComponent:function(t){var e=c(t);e&&e.isMounted&&e.updateCount++},onUnmountComponent:function(t){var e=c(t);if(e){e.isMounted=!1;var n=0===e.parentID;n&&d(t)}S.push(t)},purgeUnmountedComponents:function(){if(!x._preventPurging){for(var t=0;t<S.length;t++){var e=S[t];o(e)}S.length=0}},isMounted:function(t){var e=c(t);return!!e&&e.isMounted},getCurrentStackAddendum:function(t){var e=\"\";if(t){var n=a(t),r=t._owner;e+=i(n,t._source,r&&r.getName())}var o=m.current,u=o&&o._debugID;return e+=x.getStackAddendumByID(u)},getStackAddendumByID:function(t){for(var e=\"\";t;)e+=u(t),t=x.getParentID(t);return e},getChildIDs:function(t){var e=c(t);return e?e.childIDs:[]},getDisplayName:function(t){var e=x.getElement(t);return e?a(e):null},getElement:function(t){var e=c(t);return e?e.element:null},getOwnerID:function(t){var e=x.getElement(t);return e&&e._owner?e._owner._debugID:null},getParentID:function(t){var e=c(t);return e?e.parentID:null},getSource:function(t){var e=c(t),n=e?e.element:null,r=null!=n?n._source:null;return r},getText:function(t){var e=x.getElement(t);return\"string\"==typeof e?e:\"number\"==typeof e?\"\"+e:null},getUpdateCount:function(t){var e=c(t);return e?e.updateCount:0},getRootIDs:h,getRegisteredIDs:f,pushNonStandardWarningStack:function(t,e){if(\"function\"==typeof console.reactStack){var n=[],r=m.current,o=r&&r._debugID;try{for(t&&n.push({name:o?x.getDisplayName(o):null,fileName:e?e.fileName:null,lineNumber:e?e.lineNumber:null});o;){var i=x.getElement(o),a=x.getParentID(o),u=x.getOwnerID(o),s=u?x.getDisplayName(u):null,c=i&&i._source;n.push({name:s,fileName:c?c.fileName:null,lineNumber:c?c.lineNumber:null}),o=a}}catch(t){}console.reactStack(n)}},popNonStandardWarningStack:function(){\"function\"==typeof console.reactStackEnd&&console.reactStackEnd()}};t.exports=x},function(t,e,n){(function(e){\"use strict\";function r(t,e,n,r){if(t&&\"object\"==typeof t){var o=t,i=void 0===o[n];i&&null!=e&&(o[n]=e)}}function o(t,e){if(null==t)return t;var n={};return i(t,r,n),n}var i=(n(124),n(125));n(7);\"undefined\"!=typeof e&&e.env,1,t.exports=o}).call(e,n(115))},function(t,e,n){\"use strict\";function r(t){this.reinitializeTransaction(),this.renderToStaticMarkup=t,this.useCreateElement=!1,this.updateQueue=new u(this)}var o=n(3),i=n(51),a=n(64),u=(n(63),n(131)),s=[],c={enqueue:function(){}},l={getTransactionWrappers:function(){return s},getReactMountReady:function(){return c},getUpdateQueue:function(){return this.updateQueue},destructor:function(){},checkpoint:function(){},rollback:function(){}};o(r.prototype,a,l),i.addPoolingTo(r),t.exports=r},function(t,e,n){\"use strict\";function r(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){}var i=n(132),a=(n(7),function(){function t(e){r(this,t),this.transaction=e}return t.prototype.isMounted=function(t){return!1},t.prototype.enqueueCallback=function(t,e,n){this.transaction.isInTransaction()&&i.enqueueCallback(t,e,n)},t.prototype.enqueueForceUpdate=function(t){this.transaction.isInTransaction()?i.enqueueForceUpdate(t):o(t,\"forceUpdate\")},t.prototype.enqueueReplaceState=function(t,e){this.transaction.isInTransaction()?i.enqueueReplaceState(t,e):o(t,\"replaceState\")},t.prototype.enqueueSetState=function(t,e){this.transaction.isInTransaction()?i.enqueueSetState(t,e):o(t,\"setState\")},t}());t.exports=a},function(t,e,n){\"use strict\";function r(t){s.enqueueUpdate(t)}function o(t){var e=typeof t;if(\"object\"!==e)return e;var n=t.constructor&&t.constructor.name||e,r=Object.keys(t);return r.length>0&&r.length<20?n+\" (keys: \"+r.join(\", \")+\")\":n}function i(t,e){var n=u.get(t);if(!n){return null}return n}var a=n(36),u=(n(16),n(113)),s=(n(63),n(57)),c=(n(11),n(7),{isMounted:function(t){var e=u.get(t);return!!e&&!!e._renderedComponent},enqueueCallback:function(t,e,n){c.validateCallback(e,n);var o=i(t);return o?(o._pendingCallbacks?o._pendingCallbacks.push(e):o._pendingCallbacks=[e],void r(o)):null},enqueueCallbackInternal:function(t,e){t._pendingCallbacks?t._pendingCallbacks.push(e):t._pendingCallbacks=[e],r(t)},enqueueForceUpdate:function(t){\nvar e=i(t,\"forceUpdate\");e&&(e._pendingForceUpdate=!0,r(e))},enqueueReplaceState:function(t,e,n){var o=i(t,\"replaceState\");o&&(o._pendingStateQueue=[e],o._pendingReplaceState=!0,void 0!==n&&null!==n&&(c.validateCallback(n,\"replaceState\"),o._pendingCallbacks?o._pendingCallbacks.push(n):o._pendingCallbacks=[n]),r(o))},enqueueSetState:function(t,e){var n=i(t,\"setState\");if(n){var o=n._pendingStateQueue||(n._pendingStateQueue=[]);o.push(e),r(n)}},enqueueElementInternal:function(t,e,n){t._pendingElement=e,t._context=n,r(t)},validateCallback:function(t,e){t&&\"function\"!=typeof t?a(\"122\",e,o(t)):void 0}});t.exports=c},function(t,e,n){\"use strict\";var r=(n(3),n(8)),o=(n(7),r);t.exports=o},function(t,e,n){\"use strict\";var r=n(3),o=n(78),i=n(35),a=function(t){this._currentElement=null,this._hostNode=null,this._hostParent=null,this._hostContainerInfo=null,this._domID=0};r(a.prototype,{mountComponent:function(t,e,n,r){var a=n._idCounter++;this._domID=a,this._hostParent=e,this._hostContainerInfo=n;var u=\" react-empty: \"+this._domID+\" \";if(t.useCreateElement){var s=n._ownerDocument,c=s.createComment(u);return i.precacheNode(this,c),o(c)}return t.renderToStaticMarkup?\"\":\"<!--\"+u+\"-->\"},receiveComponent:function(){},getHostNode:function(){return i.getNodeFromInstance(this)},unmountComponent:function(){i.uncacheNode(this)}}),t.exports=a},function(t,e,n){\"use strict\";function r(t,e){\"_hostNode\"in t?void 0:s(\"33\"),\"_hostNode\"in e?void 0:s(\"33\");for(var n=0,r=t;r;r=r._hostParent)n++;for(var o=0,i=e;i;i=i._hostParent)o++;for(;n-o>0;)t=t._hostParent,n--;for(;o-n>0;)e=e._hostParent,o--;for(var a=n;a--;){if(t===e)return t;t=t._hostParent,e=e._hostParent}return null}function o(t,e){\"_hostNode\"in t?void 0:s(\"35\"),\"_hostNode\"in e?void 0:s(\"35\");for(;e;){if(e===t)return!0;e=e._hostParent}return!1}function i(t){return\"_hostNode\"in t?void 0:s(\"36\"),t._hostParent}function a(t,e,n){for(var r=[];t;)r.push(t),t=t._hostParent;var o;for(o=r.length;o-- >0;)e(r[o],\"captured\",n);for(o=0;o<r.length;o++)e(r[o],\"bubbled\",n)}function u(t,e,n,o,i){for(var a=t&&e?r(t,e):null,u=[];t&&t!==a;)u.push(t),t=t._hostParent;for(var s=[];e&&e!==a;)s.push(e),e=e._hostParent;var c;for(c=0;c<u.length;c++)n(u[c],\"bubbled\",o);for(c=s.length;c-- >0;)n(s[c],\"captured\",i)}var s=n(36);n(11);t.exports={isAncestor:o,getLowestCommonAncestor:r,getParentInstance:i,traverseTwoPhase:a,traverseEnterLeave:u}},function(t,e,n){\"use strict\";var r=n(36),o=n(3),i=n(77),a=n(78),u=n(35),s=n(83),c=(n(11),n(133),function(t){this._currentElement=t,this._stringText=\"\"+t,this._hostNode=null,this._hostParent=null,this._domID=0,this._mountIndex=0,this._closingComment=null,this._commentNodes=null});o(c.prototype,{mountComponent:function(t,e,n,r){var o=n._idCounter++,i=\" react-text: \"+o+\" \",c=\" /react-text \";if(this._domID=o,this._hostParent=e,t.useCreateElement){var l=n._ownerDocument,f=l.createComment(i),p=l.createComment(c),d=a(l.createDocumentFragment());return a.queueChild(d,a(f)),this._stringText&&a.queueChild(d,a(l.createTextNode(this._stringText))),a.queueChild(d,a(p)),u.precacheNode(this,f),this._closingComment=p,d}var h=s(this._stringText);return t.renderToStaticMarkup?h:\"<!--\"+i+\"-->\"+h+\"<!--\"+c+\"-->\"},receiveComponent:function(t,e){if(t!==this._currentElement){this._currentElement=t;var n=\"\"+t;if(n!==this._stringText){this._stringText=n;var r=this.getHostNode();i.replaceDelimitedText(r[0],r[1],n)}}},getHostNode:function(){var t=this._commentNodes;if(t)return t;if(!this._closingComment)for(var e=u.getNodeFromInstance(this),n=e.nextSibling;;){if(null==n?r(\"67\",this._domID):void 0,8===n.nodeType&&\" /react-text \"===n.nodeValue){this._closingComment=n;break}n=n.nextSibling}return t=[this._hostNode,this._closingComment],this._commentNodes=t,t},unmountComponent:function(){this._closingComment=null,this._commentNodes=null,u.uncacheNode(this)}}),t.exports=c},function(t,e,n){\"use strict\";function r(){this.reinitializeTransaction()}var o=n(3),i=n(57),a=n(64),u=n(8),s={initialize:u,close:function(){p.isBatchingUpdates=!1}},c={initialize:u,close:i.flushBatchedUpdates.bind(i)},l=[c,s];o(r.prototype,a,{getTransactionWrappers:function(){return l}});var f=new r,p={isBatchingUpdates:!1,batchedUpdates:function(t,e,n,r,o,i){var a=p.isBatchingUpdates;return p.isBatchingUpdates=!0,a?t(e,n,r,o,i):f.perform(t,null,e,n,r,o,i)}};t.exports=p},function(t,e,n){\"use strict\";function r(t){for(;t._hostParent;)t=t._hostParent;var e=f.getNodeFromInstance(t),n=e.parentNode;return f.getClosestInstanceFromNode(n)}function o(t,e){this.topLevelType=t,this.nativeEvent=e,this.ancestors=[]}function i(t){var e=d(t.nativeEvent),n=f.getClosestInstanceFromNode(e),o=n;do t.ancestors.push(o),o=o&&r(o);while(o);for(var i=0;i<t.ancestors.length;i++)n=t.ancestors[i],v._handleTopLevel(t.topLevelType,n,t.nativeEvent,d(t.nativeEvent))}function a(t){var e=h(window);t(e)}var u=n(3),s=n(139),c=n(49),l=n(51),f=n(35),p=n(57),d=n(66),h=n(140);u(o.prototype,{destructor:function(){this.topLevelType=null,this.nativeEvent=null,this.ancestors.length=0}}),l.addPoolingTo(o,l.twoArgumentPooler);var v={_enabled:!0,_handleTopLevel:null,WINDOW_HANDLE:c.canUseDOM?window:null,setHandleTopLevel:function(t){v._handleTopLevel=t},setEnabled:function(t){v._enabled=!!t},isEnabled:function(){return v._enabled},trapBubbledEvent:function(t,e,n){return n?s.listen(n,e,v.dispatchEvent.bind(null,t)):null},trapCapturedEvent:function(t,e,n){return n?s.capture(n,e,v.dispatchEvent.bind(null,t)):null},monitorScrollValue:function(t){var e=a.bind(null,t);s.listen(window,\"scroll\",e)},dispatchEvent:function(t,e){if(v._enabled){var n=o.getPooled(t,e);try{p.batchedUpdates(i,n)}finally{o.release(n)}}}};t.exports=v},function(t,e,n){\"use strict\";var r=n(8),o={listen:function(t,e,n){return t.addEventListener?(t.addEventListener(e,n,!1),{remove:function(){t.removeEventListener(e,n,!1)}}):t.attachEvent?(t.attachEvent(\"on\"+e,n),{remove:function(){t.detachEvent(\"on\"+e,n)}}):void 0},capture:function(t,e,n){return t.addEventListener?(t.addEventListener(e,n,!0),{remove:function(){t.removeEventListener(e,n,!0)}}):{remove:r}},registerDefault:function(){}};t.exports=o},function(t,e){\"use strict\";function n(t){return t.Window&&t instanceof t.Window?{x:t.pageXOffset||t.document.documentElement.scrollLeft,y:t.pageYOffset||t.document.documentElement.scrollTop}:{x:t.scrollLeft,y:t.scrollTop}}t.exports=n},function(t,e,n){\"use strict\";var r=n(37),o=n(43),i=n(45),a=n(112),u=n(121),s=n(102),c=n(122),l=n(57),f={Component:a.injection,DOMProperty:r.injection,EmptyComponent:u.injection,EventPluginHub:o.injection,EventPluginUtils:i.injection,EventEmitter:s.injection,HostComponent:c.injection,Updates:l.injection};t.exports=f},function(t,e,n){\"use strict\";function r(t){this.reinitializeTransaction(),this.renderToStaticMarkup=!1,this.reactMountReady=i.getPooled(null),this.useCreateElement=t}var o=n(3),i=n(58),a=n(51),u=n(102),s=n(143),c=(n(63),n(64)),l=n(132),f={initialize:s.getSelectionInformation,close:s.restoreSelection},p={initialize:function(){var t=u.isEnabled();return u.setEnabled(!1),t},close:function(t){u.setEnabled(t)}},d={initialize:function(){this.reactMountReady.reset()},close:function(){this.reactMountReady.notifyAll()}},h=[f,p,d],v={getTransactionWrappers:function(){return h},getReactMountReady:function(){return this.reactMountReady},getUpdateQueue:function(){return l},checkpoint:function(){return this.reactMountReady.checkpoint()},rollback:function(t){this.reactMountReady.rollback(t)},destructor:function(){i.release(this.reactMountReady),this.reactMountReady=null}};o(r.prototype,c,v),a.addPoolingTo(r),t.exports=r},function(t,e,n){\"use strict\";function r(t){return i(document.documentElement,t)}var o=n(144),i=n(146),a=n(91),u=n(149),s={hasSelectionCapabilities:function(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(\"input\"===e&&\"text\"===t.type||\"textarea\"===e||\"true\"===t.contentEditable)},getSelectionInformation:function(){var t=u();return{focusedElem:t,selectionRange:s.hasSelectionCapabilities(t)?s.getSelection(t):null}},restoreSelection:function(t){var e=u(),n=t.focusedElem,o=t.selectionRange;e!==n&&r(n)&&(s.hasSelectionCapabilities(n)&&s.setSelection(n,o),a(n))},getSelection:function(t){var e;if(\"selectionStart\"in t)e={start:t.selectionStart,end:t.selectionEnd};else if(document.selection&&t.nodeName&&\"input\"===t.nodeName.toLowerCase()){var n=document.selection.createRange();n.parentElement()===t&&(e={start:-n.moveStart(\"character\",-t.value.length),end:-n.moveEnd(\"character\",-t.value.length)})}else e=o.getOffsets(t);return e||{start:0,end:0}},setSelection:function(t,e){var n=e.start,r=e.end;if(void 0===r&&(r=n),\"selectionStart\"in t)t.selectionStart=n,t.selectionEnd=Math.min(r,t.value.length);else if(document.selection&&t.nodeName&&\"input\"===t.nodeName.toLowerCase()){var i=t.createTextRange();i.collapse(!0),i.moveStart(\"character\",n),i.moveEnd(\"character\",r-n),i.select()}else o.setOffsets(t,e)}};t.exports=s},function(t,e,n){\"use strict\";function r(t,e,n,r){return t===n&&e===r}function o(t){var e=document.selection,n=e.createRange(),r=n.text.length,o=n.duplicate();o.moveToElementText(t),o.setEndPoint(\"EndToStart\",n);var i=o.text.length,a=i+r;return{start:i,end:a}}function i(t){var e=window.getSelection&&window.getSelection();if(!e||0===e.rangeCount)return null;var n=e.anchorNode,o=e.anchorOffset,i=e.focusNode,a=e.focusOffset,u=e.getRangeAt(0);try{u.startContainer.nodeType,u.endContainer.nodeType}catch(t){return null}var s=r(e.anchorNode,e.anchorOffset,e.focusNode,e.focusOffset),c=s?0:u.toString().length,l=u.cloneRange();l.selectNodeContents(t),l.setEnd(u.startContainer,u.startOffset);var f=r(l.startContainer,l.startOffset,l.endContainer,l.endOffset),p=f?0:l.toString().length,d=p+c,h=document.createRange();h.setStart(n,o),h.setEnd(i,a);var v=h.collapsed;return{start:v?d:p,end:v?p:d}}function a(t,e){var n,r,o=document.selection.createRange().duplicate();void 0===e.end?(n=e.start,r=n):e.start>e.end?(n=e.end,r=e.start):(n=e.start,r=e.end),o.moveToElementText(t),o.moveStart(\"character\",n),o.setEndPoint(\"EndToStart\",o),o.moveEnd(\"character\",r-n),o.select()}function u(t,e){if(window.getSelection){var n=window.getSelection(),r=t[l()].length,o=Math.min(e.start,r),i=void 0===e.end?o:Math.min(e.end,r);if(!n.extend&&o>i){var a=i;i=o,o=a}var u=c(t,o),s=c(t,i);if(u&&s){var f=document.createRange();f.setStart(u.node,u.offset),n.removeAllRanges(),o>i?(n.addRange(f),n.extend(s.node,s.offset)):(f.setEnd(s.node,s.offset),n.addRange(f))}}}var s=n(49),c=n(145),l=n(52),f=s.canUseDOM&&\"selection\"in document&&!(\"getSelection\"in window),p={getOffsets:f?o:i,setOffsets:f?a:u};t.exports=p},function(t,e){\"use strict\";function n(t){for(;t&&t.firstChild;)t=t.firstChild;return t}function r(t){for(;t;){if(t.nextSibling)return t.nextSibling;t=t.parentNode}}function o(t,e){for(var o=n(t),i=0,a=0;o;){if(3===o.nodeType){if(a=i+o.textContent.length,i<=e&&a>=e)return{node:o,offset:e-i};i=a}o=n(r(o))}}t.exports=o},function(t,e,n){\"use strict\";function r(t,e){return!(!t||!e)&&(t===e||!o(t)&&(o(e)?r(t,e.parentNode):\"contains\"in t?t.contains(e):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(e))))}var o=n(147);t.exports=r},function(t,e,n){\"use strict\";function r(t){return o(t)&&3==t.nodeType}var o=n(148);t.exports=r},function(t,e){\"use strict\";function n(t){var e=t?t.ownerDocument||t:document,n=e.defaultView||window;return!(!t||!(\"function\"==typeof n.Node?t instanceof n.Node:\"object\"==typeof t&&\"number\"==typeof t.nodeType&&\"string\"==typeof t.nodeName))}t.exports=n},function(t,e){\"use strict\";function n(t){if(t=t||(\"undefined\"!=typeof document?document:void 0),\"undefined\"==typeof t)return null;try{return t.activeElement||t.body}catch(e){return t.body}}t.exports=n},function(t,e){\"use strict\";var n={xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\"},r={accentHeight:\"accent-height\",accumulate:0,additive:0,alignmentBaseline:\"alignment-baseline\",allowReorder:\"allowReorder\",alphabetic:0,amplitude:0,arabicForm:\"arabic-form\",ascent:0,attributeName:\"attributeName\",attributeType:\"attributeType\",autoReverse:\"autoReverse\",azimuth:0,baseFrequency:\"baseFrequency\",baseProfile:\"baseProfile\",baselineShift:\"baseline-shift\",bbox:0,begin:0,bias:0,by:0,calcMode:\"calcMode\",capHeight:\"cap-height\",clip:0,clipPath:\"clip-path\",clipRule:\"clip-rule\",clipPathUnits:\"clipPathUnits\",colorInterpolation:\"color-interpolation\",colorInterpolationFilters:\"color-interpolation-filters\",colorProfile:\"color-profile\",colorRendering:\"color-rendering\",contentScriptType:\"contentScriptType\",contentStyleType:\"contentStyleType\",cursor:0,cx:0,cy:0,d:0,decelerate:0,descent:0,diffuseConstant:\"diffuseConstant\",direction:0,display:0,divisor:0,dominantBaseline:\"dominant-baseline\",dur:0,dx:0,dy:0,edgeMode:\"edgeMode\",elevation:0,enableBackground:\"enable-background\",end:0,exponent:0,externalResourcesRequired:\"externalResourcesRequired\",fill:0,fillOpacity:\"fill-opacity\",fillRule:\"fill-rule\",filter:0,filterRes:\"filterRes\",filterUnits:\"filterUnits\",floodColor:\"flood-color\",floodOpacity:\"flood-opacity\",focusable:0,fontFamily:\"font-family\",fontSize:\"font-size\",fontSizeAdjust:\"font-size-adjust\",fontStretch:\"font-stretch\",fontStyle:\"font-style\",fontVariant:\"font-variant\",fontWeight:\"font-weight\",format:0,from:0,fx:0,fy:0,g1:0,g2:0,glyphName:\"glyph-name\",glyphOrientationHorizontal:\"glyph-orientation-horizontal\",glyphOrientationVertical:\"glyph-orientation-vertical\",glyphRef:\"glyphRef\",gradientTransform:\"gradientTransform\",gradientUnits:\"gradientUnits\",hanging:0,horizAdvX:\"horiz-adv-x\",horizOriginX:\"horiz-origin-x\",ideographic:0,imageRendering:\"image-rendering\",in:0,in2:0,intercept:0,k:0,k1:0,k2:0,k3:0,k4:0,kernelMatrix:\"kernelMatrix\",kernelUnitLength:\"kernelUnitLength\",kerning:0,keyPoints:\"keyPoints\",keySplines:\"keySplines\",keyTimes:\"keyTimes\",lengthAdjust:\"lengthAdjust\",letterSpacing:\"letter-spacing\",lightingColor:\"lighting-color\",limitingConeAngle:\"limitingConeAngle\",local:0,markerEnd:\"marker-end\",markerMid:\"marker-mid\",markerStart:\"marker-start\",markerHeight:\"markerHeight\",markerUnits:\"markerUnits\",markerWidth:\"markerWidth\",mask:0,maskContentUnits:\"maskContentUnits\",maskUnits:\"maskUnits\",mathematical:0,mode:0,numOctaves:\"numOctaves\",offset:0,opacity:0,operator:0,order:0,orient:0,orientation:0,origin:0,overflow:0,overlinePosition:\"overline-position\",overlineThickness:\"overline-thickness\",paintOrder:\"paint-order\",panose1:\"panose-1\",pathLength:\"pathLength\",patternContentUnits:\"patternContentUnits\",patternTransform:\"patternTransform\",patternUnits:\"patternUnits\",pointerEvents:\"pointer-events\",points:0,pointsAtX:\"pointsAtX\",pointsAtY:\"pointsAtY\",pointsAtZ:\"pointsAtZ\",preserveAlpha:\"preserveAlpha\",preserveAspectRatio:\"preserveAspectRatio\",primitiveUnits:\"primitiveUnits\",r:0,radius:0,refX:\"refX\",refY:\"refY\",renderingIntent:\"rendering-intent\",repeatCount:\"repeatCount\",repeatDur:\"repeatDur\",requiredExtensions:\"requiredExtensions\",requiredFeatures:\"requiredFeatures\",restart:0,result:0,rotate:0,rx:0,ry:0,scale:0,seed:0,shapeRendering:\"shape-rendering\",slope:0,spacing:0,specularConstant:\"specularConstant\",specularExponent:\"specularExponent\",speed:0,spreadMethod:\"spreadMethod\",startOffset:\"startOffset\",stdDeviation:\"stdDeviation\",stemh:0,stemv:0,stitchTiles:\"stitchTiles\",stopColor:\"stop-color\",stopOpacity:\"stop-opacity\",strikethroughPosition:\"strikethrough-position\",strikethroughThickness:\"strikethrough-thickness\",string:0,stroke:0,strokeDasharray:\"stroke-dasharray\",strokeDashoffset:\"stroke-dashoffset\",strokeLinecap:\"stroke-linecap\",strokeLinejoin:\"stroke-linejoin\",strokeMiterlimit:\"stroke-miterlimit\",strokeOpacity:\"stroke-opacity\",strokeWidth:\"stroke-width\",surfaceScale:\"surfaceScale\",systemLanguage:\"systemLanguage\",tableValues:\"tableValues\",targetX:\"targetX\",targetY:\"targetY\",textAnchor:\"text-anchor\",textDecoration:\"text-decoration\",textRendering:\"text-rendering\",textLength:\"textLength\",to:0,transform:0,u1:0,u2:0,underlinePosition:\"underline-position\",underlineThickness:\"underline-thickness\",unicode:0,unicodeBidi:\"unicode-bidi\",unicodeRange:\"unicode-range\",unitsPerEm:\"units-per-em\",vAlphabetic:\"v-alphabetic\",vHanging:\"v-hanging\",vIdeographic:\"v-ideographic\",vMathematical:\"v-mathematical\",values:0,vectorEffect:\"vector-effect\",version:0,vertAdvY:\"vert-adv-y\",vertOriginX:\"vert-origin-x\",vertOriginY:\"vert-origin-y\",viewBox:\"viewBox\",viewTarget:\"viewTarget\",visibility:0,widths:0,wordSpacing:\"word-spacing\",writingMode:\"writing-mode\",x:0,xHeight:\"x-height\",x1:0,x2:0,xChannelSelector:\"xChannelSelector\",xlinkActuate:\"xlink:actuate\",xlinkArcrole:\"xlink:arcrole\",xlinkHref:\"xlink:href\",xlinkRole:\"xlink:role\",xlinkShow:\"xlink:show\",xlinkTitle:\"xlink:title\",xlinkType:\"xlink:type\",xmlBase:\"xml:base\",xmlns:0,xmlnsXlink:\"xmlns:xlink\",xmlLang:\"xml:lang\",xmlSpace:\"xml:space\",y:0,y1:0,y2:0,yChannelSelector:\"yChannelSelector\",z:0,zoomAndPan:\"zoomAndPan\"},o={Properties:{},DOMAttributeNamespaces:{xlinkActuate:n.xlink,xlinkArcrole:n.xlink,xlinkHref:n.xlink,xlinkRole:n.xlink,xlinkShow:n.xlink,xlinkTitle:n.xlink,xlinkType:n.xlink,xmlBase:n.xml,xmlLang:n.xml,xmlSpace:n.xml},DOMAttributeNames:{}};Object.keys(r).forEach(function(t){o.Properties[t]=0,r[t]&&(o.DOMAttributeNames[t]=r[t])}),t.exports=o},function(t,e,n){\"use strict\";function r(t){if(\"selectionStart\"in t&&s.hasSelectionCapabilities(t))return{start:t.selectionStart,end:t.selectionEnd};if(window.getSelection){var e=window.getSelection();return{anchorNode:e.anchorNode,anchorOffset:e.anchorOffset,focusNode:e.focusNode,focusOffset:e.focusOffset}}if(document.selection){var n=document.selection.createRange();return{parentElement:n.parentElement(),text:n.text,top:n.boundingTop,left:n.boundingLeft}}}function o(t,e){if(g||null==v||v!==l())return null;var n=r(v);if(!y||!p(y,n)){y=n;var o=c.getPooled(h.select,m,t,e);return o.type=\"select\",o.target=v,i.accumulateTwoPhaseDispatches(o),o}return null}var i=n(42),a=n(49),u=n(35),s=n(143),c=n(54),l=n(149),f=n(68),p=n(119),d=a.canUseDOM&&\"documentMode\"in document&&document.documentMode<=11,h={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:[\"topBlur\",\"topContextMenu\",\"topFocus\",\"topKeyDown\",\"topKeyUp\",\"topMouseDown\",\"topMouseUp\",\"topSelectionChange\"]}},v=null,m=null,y=null,g=!1,_=!1,b={eventTypes:h,extractEvents:function(t,e,n,r){if(!_)return null;var i=e?u.getNodeFromInstance(e):window;switch(t){case\"topFocus\":(f(i)||\"true\"===i.contentEditable)&&(v=i,m=e,y=null);break;case\"topBlur\":v=null,m=null,y=null;break;case\"topMouseDown\":g=!0;break;case\"topContextMenu\":case\"topMouseUp\":return g=!1,o(n,r);case\"topSelectionChange\":if(d)break;case\"topKeyDown\":case\"topKeyUp\":return o(n,r)}return null},didPutListener:function(t,e,n){\"onSelect\"===e&&(_=!0)}};t.exports=b},function(t,e,n){\"use strict\";function r(t){return\".\"+t._rootNodeID}function o(t){return\"button\"===t||\"input\"===t||\"select\"===t||\"textarea\"===t}var i=n(36),a=n(139),u=n(42),s=n(35),c=n(153),l=n(154),f=n(54),p=n(155),d=n(156),h=n(71),v=n(159),m=n(160),y=n(161),g=n(72),_=n(162),b=n(8),w=n(157),E=(n(11),{}),C={};[\"abort\",\"animationEnd\",\"animationIteration\",\"animationStart\",\"blur\",\"canPlay\",\"canPlayThrough\",\"click\",\"contextMenu\",\"copy\",\"cut\",\"doubleClick\",\"drag\",\"dragEnd\",\"dragEnter\",\"dragExit\",\"dragLeave\",\"dragOver\",\"dragStart\",\"drop\",\"durationChange\",\"emptied\",\"encrypted\",\"ended\",\"error\",\"focus\",\"input\",\"invalid\",\"keyDown\",\"keyPress\",\"keyUp\",\"load\",\"loadedData\",\"loadedMetadata\",\"loadStart\",\"mouseDown\",\"mouseMove\",\"mouseOut\",\"mouseOver\",\"mouseUp\",\"paste\",\"pause\",\"play\",\"playing\",\"progress\",\"rateChange\",\"reset\",\"scroll\",\"seeked\",\"seeking\",\"stalled\",\"submit\",\"suspend\",\"timeUpdate\",\"touchCancel\",\"touchEnd\",\"touchMove\",\"touchStart\",\"transitionEnd\",\"volumeChange\",\"waiting\",\"wheel\"].forEach(function(t){var e=t[0].toUpperCase()+t.slice(1),n=\"on\"+e,r=\"top\"+e,o={phasedRegistrationNames:{bubbled:n,captured:n+\"Capture\"},dependencies:[r]};E[t]=o,C[r]=o});var S={},x={eventTypes:E,extractEvents:function(t,e,n,r){var o=C[t];if(!o)return null;var a;switch(t){case\"topAbort\":case\"topCanPlay\":case\"topCanPlayThrough\":case\"topDurationChange\":case\"topEmptied\":case\"topEncrypted\":case\"topEnded\":case\"topError\":case\"topInput\":case\"topInvalid\":case\"topLoad\":case\"topLoadedData\":case\"topLoadedMetadata\":case\"topLoadStart\":case\"topPause\":case\"topPlay\":case\"topPlaying\":case\"topProgress\":case\"topRateChange\":case\"topReset\":case\"topSeeked\":case\"topSeeking\":case\"topStalled\":case\"topSubmit\":case\"topSuspend\":case\"topTimeUpdate\":case\"topVolumeChange\":case\"topWaiting\":a=f;break;case\"topKeyPress\":if(0===w(n))return null;case\"topKeyDown\":case\"topKeyUp\":a=d;break;case\"topBlur\":case\"topFocus\":a=p;break;case\"topClick\":if(2===n.button)return null;case\"topDoubleClick\":case\"topMouseDown\":case\"topMouseMove\":case\"topMouseUp\":case\"topMouseOut\":case\"topMouseOver\":case\"topContextMenu\":a=h;break;case\"topDrag\":case\"topDragEnd\":case\"topDragEnter\":case\"topDragExit\":case\"topDragLeave\":case\"topDragOver\":case\"topDragStart\":case\"topDrop\":a=v;break;case\"topTouchCancel\":case\"topTouchEnd\":case\"topTouchMove\":case\"topTouchStart\":a=m;break;case\"topAnimationEnd\":case\"topAnimationIteration\":case\"topAnimationStart\":a=c;break;case\"topTransitionEnd\":a=y;break;case\"topScroll\":a=g;break;case\"topWheel\":a=_;break;case\"topCopy\":case\"topCut\":case\"topPaste\":a=l}a?void 0:i(\"86\",t);var s=a.getPooled(o,e,n,r);return u.accumulateTwoPhaseDispatches(s),s},didPutListener:function(t,e,n){if(\"onClick\"===e&&!o(t._tag)){var i=r(t),u=s.getNodeFromInstance(t);S[i]||(S[i]=a.listen(u,\"click\",b))}},willDeleteListener:function(t,e){if(\"onClick\"===e&&!o(t._tag)){var n=r(t);S[n].remove(),delete S[n]}}};t.exports=x},function(t,e,n){\"use strict\";function r(t,e,n,r){return o.call(this,t,e,n,r)}var o=n(54),i={animationName:null,elapsedTime:null,pseudoElement:null};o.augmentClass(r,i),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return o.call(this,t,e,n,r)}var o=n(54),i={clipboardData:function(t){return\"clipboardData\"in t?t.clipboardData:window.clipboardData}};o.augmentClass(r,i),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return o.call(this,t,e,n,r)}var o=n(72),i={relatedTarget:null};o.augmentClass(r,i),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return o.call(this,t,e,n,r)}var o=n(72),i=n(157),a=n(158),u=n(74),s={key:a,location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:u,charCode:function(t){return\"keypress\"===t.type?i(t):0},keyCode:function(t){return\"keydown\"===t.type||\"keyup\"===t.type?t.keyCode:0},which:function(t){return\"keypress\"===t.type?i(t):\"keydown\"===t.type||\"keyup\"===t.type?t.keyCode:0}};o.augmentClass(r,s),t.exports=r},function(t,e){\"use strict\";function n(t){var e,n=t.keyCode;return\"charCode\"in t?(e=t.charCode,0===e&&13===n&&(e=13)):e=n,e>=32||13===e?e:0}t.exports=n},function(t,e,n){\"use strict\";function r(t){if(t.key){var e=i[t.key]||t.key;if(\"Unidentified\"!==e)return e}if(\"keypress\"===t.type){var n=o(t);return 13===n?\"Enter\":String.fromCharCode(n)}return\"keydown\"===t.type||\"keyup\"===t.type?a[t.keyCode]||\"Unidentified\":\"\"}var o=n(157),i={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},a={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"};t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return o.call(this,t,e,n,r)}var o=n(71),i={dataTransfer:null};o.augmentClass(r,i),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return o.call(this,t,e,n,r)}var o=n(72),i=n(74),a={touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:i};o.augmentClass(r,a),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return o.call(this,t,e,n,r)}var o=n(54),i={propertyName:null,elapsedTime:null,pseudoElement:null};o.augmentClass(r,i),t.exports=r},function(t,e,n){\"use strict\";function r(t,e,n,r){return o.call(this,t,e,n,r)}var o=n(71),i={deltaX:function(t){return\"deltaX\"in t?t.deltaX:\"wheelDeltaX\"in t?-t.wheelDeltaX:0},deltaY:function(t){return\"deltaY\"in t?t.deltaY:\"wheelDeltaY\"in t?-t.wheelDeltaY:\"wheelDelta\"in t?-t.wheelDelta:0},deltaZ:null,deltaMode:null};o.augmentClass(r,i),t.exports=r},function(t,e,n){\"use strict\";function r(t,e){for(var n=Math.min(t.length,e.length),r=0;r<n;r++)if(t.charAt(r)!==e.charAt(r))return r;return t.length===e.length?-1:n}function o(t){return t?t.nodeType===N?t.documentElement:t.firstChild:null}function i(t){return t.getAttribute&&t.getAttribute(I)||\"\"}function a(t,e,n,r,o){var i;if(w.logTopLevelRenders){var a=t._currentElement.props.child,u=a.type;i=\"React mount: \"+(\"string\"==typeof u?u:u.displayName||u.name),console.time(i)}var s=S.mountComponent(t,n,null,_(t,e),o,0);i&&console.timeEnd(i),t._renderedComponent._topLevelWrapper=t,B._mountImageIntoNode(s,e,t,r,n)}function u(t,e,n,r){var o=P.ReactReconcileTransaction.getPooled(!n&&b.useCreateElement);o.perform(a,null,t,e,o,n,r),P.ReactReconcileTransaction.release(o)}function s(t,e,n){for(S.unmountComponent(t,n),e.nodeType===N&&(e=e.documentElement);e.lastChild;)e.removeChild(e.lastChild)}function c(t){var e=o(t);if(e){var n=g.getInstanceFromNode(e);return!(!n||!n._hostParent)}}function l(t){return!(!t||t.nodeType!==A&&t.nodeType!==N&&t.nodeType!==D)}function f(t){var e=o(t),n=e&&g.getInstanceFromNode(e);return n&&!n._hostParent?n:null}function p(t){var e=f(t);return e?e._hostContainerInfo._topLevelWrapper:null}var d=n(36),h=n(78),v=n(37),m=n(2),y=n(102),g=(n(16),n(35)),_=n(164),b=n(165),w=n(59),E=n(113),C=(n(63),n(166)),S=n(60),x=n(132),P=n(57),T=n(10),O=n(116),k=(n(11),n(80)),M=n(120),I=(n(7),v.ID_ATTRIBUTE_NAME),R=v.ROOT_ATTRIBUTE_NAME,A=1,N=9,D=11,L={},j=1,U=function(){this.rootID=j++};U.prototype.isReactComponent={},U.prototype.render=function(){return this.props.child},U.isReactTopLevelWrapper=!0;var B={TopLevelWrapper:U,_instancesByReactRootID:L,scrollMonitor:function(t,e){e()},_updateRootComponent:function(t,e,n,r,o){return B.scrollMonitor(r,function(){x.enqueueElementInternal(t,e,n),o&&x.enqueueCallbackInternal(t,o)}),t},_renderNewRootComponent:function(t,e,n,r){l(e)?void 0:d(\"37\"),y.ensureScrollValueMonitoring();var o=O(t,!1);P.batchedUpdates(u,o,e,n,r);var i=o._instance.rootID;return L[i]=o,o},renderSubtreeIntoContainer:function(t,e,n,r){return null!=t&&E.has(t)?void 0:d(\"38\"),B._renderSubtreeIntoContainer(t,e,n,r)},_renderSubtreeIntoContainer:function(t,e,n,r){x.validateCallback(r,\"ReactDOM.render\"),m.isValidElement(e)?void 0:d(\"39\",\"string\"==typeof e?\" Instead of passing a string like 'div', pass React.createElement('div') or <div />.\":\"function\"==typeof e?\" Instead of passing a class like Foo, pass React.createElement(Foo) or <Foo />.\":null!=e&&void 0!==e.props?\" This may be caused by unintentionally loading two independent copies of React.\":\"\");var a,u=m.createElement(U,{child:e});if(t){var s=E.get(t);a=s._processChildContext(s._context)}else a=T;var l=p(n);if(l){var f=l._currentElement,h=f.props.child;if(M(h,e)){var v=l._renderedComponent.getPublicInstance(),y=r&&function(){r.call(v)};return B._updateRootComponent(l,u,a,n,y),v}B.unmountComponentAtNode(n)}var g=o(n),_=g&&!!i(g),b=c(n),w=_&&!l&&!b,C=B._renderNewRootComponent(u,n,w,a)._renderedComponent.getPublicInstance();return r&&r.call(C),C},render:function(t,e,n){return B._renderSubtreeIntoContainer(null,t,e,n)},unmountComponentAtNode:function(t){l(t)?void 0:d(\"40\");var e=p(t);if(!e){c(t),1===t.nodeType&&t.hasAttribute(R);return!1}return delete L[e._instance.rootID],P.batchedUpdates(s,e,t,!1),!0},_mountImageIntoNode:function(t,e,n,i,a){if(l(e)?void 0:d(\"41\"),i){var u=o(e);if(C.canReuseMarkup(t,u))return void g.precacheNode(n,u);var s=u.getAttribute(C.CHECKSUM_ATTR_NAME);u.removeAttribute(C.CHECKSUM_ATTR_NAME);var c=u.outerHTML;u.setAttribute(C.CHECKSUM_ATTR_NAME,s);var f=t,p=r(f,c),v=\" (client) \"+f.substring(p-20,p+20)+\"\\n (server) \"+c.substring(p-20,p+20);e.nodeType===N?d(\"42\",v):void 0}if(e.nodeType===N?d(\"43\"):void 0,a.useCreateElement){for(;e.lastChild;)e.removeChild(e.lastChild);h.insertTreeBefore(e,t,null)}else k(e,t),g.precacheNode(n,e.firstChild)}};t.exports=B},function(t,e,n){\"use strict\";function r(t,e){var n={_topLevelWrapper:t,_idCounter:1,_ownerDocument:e?e.nodeType===o?e:e.ownerDocument:null,_node:e,_tag:e?e.nodeName.toLowerCase():null,_namespaceURI:e?e.namespaceURI:null};return n}var o=(n(133),9);t.exports=r},function(t,e){\"use strict\";var n={useCreateElement:!0,useFiber:!1};t.exports=n},function(t,e,n){\"use strict\";var r=n(167),o=/\\/?>/,i=/^<\\!\\-\\-/,a={CHECKSUM_ATTR_NAME:\"data-react-checksum\",addChecksumToMarkup:function(t){var e=r(t);return i.test(t)?t:t.replace(o,\" \"+a.CHECKSUM_ATTR_NAME+'=\"'+e+'\"$&')},canReuseMarkup:function(t,e){var n=e.getAttribute(a.CHECKSUM_ATTR_NAME);n=n&&parseInt(n,10);var o=r(t);return o===n}};t.exports=a},function(t,e){\"use strict\";function n(t){for(var e=1,n=0,o=0,i=t.length,a=i&-4;o<a;){for(var u=Math.min(o+4096,a);o<u;o+=4)n+=(e+=t.charCodeAt(o))+(e+=t.charCodeAt(o+1))+(e+=t.charCodeAt(o+2))+(e+=t.charCodeAt(o+3));e%=r,n%=r}for(;o<i;o++)n+=e+=t.charCodeAt(o);return e%=r,n%=r,e|n<<16}var r=65521;t.exports=n},function(t,e){\"use strict\";t.exports=\"15.6.2\"},function(t,e,n){\"use strict\";function r(t){if(null==t)return null;if(1===t.nodeType)return t;var e=a.get(t);return e?(e=u(e),e?i.getNodeFromInstance(e):null):void(\"function\"==typeof t.render?o(\"44\"):o(\"45\",Object.keys(t)))}var o=n(36),i=(n(16),n(35)),a=n(113),u=n(170);n(11),n(7);t.exports=r},function(t,e,n){\"use strict\";function r(t){for(var e;(e=t._renderedNodeType)===o.COMPOSITE;)t=t._renderedComponent;return e===o.HOST?t._renderedComponent:e===o.EMPTY?null:void 0}var o=n(118);t.exports=r},function(t,e,n){\"use strict\";var r=n(163);t.exports=r.renderSubtreeIntoContainer},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0,e.connect=e.Provider=void 0;var o=n(173),i=r(o),a=n(178),u=r(a);e.Provider=i.default,e.connect=u.default},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function i(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function a(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}e.__esModule=!0,e.default=void 0;var u=n(1),s=n(174),c=r(s),l=n(176),f=r(l),p=n(177),d=(r(p),function(t){function e(n,r){o(this,e);var a=i(this,t.call(this,n,r));return a.store=n.store,a}return a(e,t),e.prototype.getChildContext=function(){return{store:this.store}},e.prototype.render=function(){return u.Children.only(this.props.children)},e}(u.Component));e.default=d,d.propTypes={store:f.default.isRequired,children:c.default.element.isRequired},d.childContextTypes={store:f.default.isRequired}},function(t,e,n){t.exports=n(175)()},function(t,e,n){\"use strict\";function r(){}function o(){}var i=n(27);o.resetWarningCache=r,t.exports=function(){function t(t,e,n,r,o,a){if(a!==i){var u=new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");throw u.name=\"Invariant Violation\",u}}function e(){return t}t.isRequired=t;var n={array:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,elementType:t,\ninstanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:o,resetWarningCache:r};return n.PropTypes=n,n}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var o=n(174),i=r(o);e.default=i.default.shape({subscribe:i.default.func.isRequired,dispatch:i.default.func.isRequired,getState:i.default.func.isRequired})},function(t,e){\"use strict\";function n(t){\"undefined\"!=typeof console&&\"function\"==typeof console.error&&console.error(t);try{throw new Error(t)}catch(t){}}e.__esModule=!0,e.default=n},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function i(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function a(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t){return t.displayName||t.name||\"Component\"}function s(t,e){try{return t.apply(e)}catch(t){return T.value=t,T}}function c(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},c=Boolean(t),p=t||S,h=void 0;h=\"function\"==typeof e?e:e?(0,y.default)(e):x;var m=n||P,g=r.pure,_=void 0===g||g,b=r.withRef,E=void 0!==b&&b,k=_&&m!==P,M=O++;return function(t){function e(t,e,n){var r=m(t,e,n);return r}var n=\"Connect(\"+u(t)+\")\",r=function(r){function u(t,e){o(this,u);var a=i(this,r.call(this,t,e));a.version=M,a.store=t.store||e.store,(0,C.default)(a.store,'Could not find \"store\" in either the context or '+('props of \"'+n+'\". ')+\"Either wrap the root component in a <Provider>, \"+('or explicitly pass \"store\" as a prop to \"'+n+'\".'));var s=a.store.getState();return a.state={storeState:s},a.clearCache(),a}return a(u,r),u.prototype.shouldComponentUpdate=function(){return!_||this.haveOwnPropsChanged||this.hasStoreStateChanged},u.prototype.computeStateProps=function(t,e){if(!this.finalMapStateToProps)return this.configureFinalMapState(t,e);var n=t.getState(),r=this.doStatePropsDependOnOwnProps?this.finalMapStateToProps(n,e):this.finalMapStateToProps(n);return r},u.prototype.configureFinalMapState=function(t,e){var n=p(t.getState(),e),r=\"function\"==typeof n;return this.finalMapStateToProps=r?n:p,this.doStatePropsDependOnOwnProps=1!==this.finalMapStateToProps.length,r?this.computeStateProps(t,e):n},u.prototype.computeDispatchProps=function(t,e){if(!this.finalMapDispatchToProps)return this.configureFinalMapDispatch(t,e);var n=t.dispatch,r=this.doDispatchPropsDependOnOwnProps?this.finalMapDispatchToProps(n,e):this.finalMapDispatchToProps(n);return r},u.prototype.configureFinalMapDispatch=function(t,e){var n=h(t.dispatch,e),r=\"function\"==typeof n;return this.finalMapDispatchToProps=r?n:h,this.doDispatchPropsDependOnOwnProps=1!==this.finalMapDispatchToProps.length,r?this.computeDispatchProps(t,e):n},u.prototype.updateStatePropsIfNeeded=function(){var t=this.computeStateProps(this.store,this.props);return(!this.stateProps||!(0,v.default)(t,this.stateProps))&&(this.stateProps=t,!0)},u.prototype.updateDispatchPropsIfNeeded=function(){var t=this.computeDispatchProps(this.store,this.props);return(!this.dispatchProps||!(0,v.default)(t,this.dispatchProps))&&(this.dispatchProps=t,!0)},u.prototype.updateMergedPropsIfNeeded=function(){var t=e(this.stateProps,this.dispatchProps,this.props);return!(this.mergedProps&&k&&(0,v.default)(t,this.mergedProps))&&(this.mergedProps=t,!0)},u.prototype.isSubscribed=function(){return\"function\"==typeof this.unsubscribe},u.prototype.trySubscribe=function(){c&&!this.unsubscribe&&(this.unsubscribe=this.store.subscribe(this.handleChange.bind(this)),this.handleChange())},u.prototype.tryUnsubscribe=function(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)},u.prototype.componentDidMount=function(){this.trySubscribe()},u.prototype.componentWillReceiveProps=function(t){_&&(0,v.default)(t,this.props)||(this.haveOwnPropsChanged=!0)},u.prototype.componentWillUnmount=function(){this.tryUnsubscribe(),this.clearCache()},u.prototype.clearCache=function(){this.dispatchProps=null,this.stateProps=null,this.mergedProps=null,this.haveOwnPropsChanged=!0,this.hasStoreStateChanged=!0,this.haveStatePropsBeenPrecalculated=!1,this.statePropsPrecalculationError=null,this.renderedElement=null,this.finalMapDispatchToProps=null,this.finalMapStateToProps=null},u.prototype.handleChange=function(){if(this.unsubscribe){var t=this.store.getState(),e=this.state.storeState;if(!_||e!==t){if(_&&!this.doStatePropsDependOnOwnProps){var n=s(this.updateStatePropsIfNeeded,this);if(!n)return;n===T&&(this.statePropsPrecalculationError=T.value),this.haveStatePropsBeenPrecalculated=!0}this.hasStoreStateChanged=!0,this.setState({storeState:t})}}},u.prototype.getWrappedInstance=function(){return(0,C.default)(E,\"To access the wrapped instance, you need to specify { withRef: true } as the fourth argument of the connect() call.\"),this.refs.wrappedInstance},u.prototype.render=function(){var e=this.haveOwnPropsChanged,n=this.hasStoreStateChanged,r=this.haveStatePropsBeenPrecalculated,o=this.statePropsPrecalculationError,i=this.renderedElement;if(this.haveOwnPropsChanged=!1,this.hasStoreStateChanged=!1,this.haveStatePropsBeenPrecalculated=!1,this.statePropsPrecalculationError=null,o)throw o;var a=!0,u=!0;_&&i&&(a=n||e&&this.doStatePropsDependOnOwnProps,u=e&&this.doDispatchPropsDependOnOwnProps);var s=!1,c=!1;r?s=!0:a&&(s=this.updateStatePropsIfNeeded()),u&&(c=this.updateDispatchPropsIfNeeded());var p=!0;return p=!!(s||c||e)&&this.updateMergedPropsIfNeeded(),!p&&i?i:(E?this.renderedElement=(0,f.createElement)(t,l({},this.mergedProps,{ref:\"wrappedInstance\"})):this.renderedElement=(0,f.createElement)(t,this.mergedProps),this.renderedElement)},u}(f.Component);return r.displayName=n,r.WrappedComponent=t,r.contextTypes={store:d.default},r.propTypes={store:d.default},(0,w.default)(r,t)}}e.__esModule=!0;var l=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t};e.default=c;var f=n(1),p=n(176),d=r(p),h=n(179),v=r(h),m=n(180),y=r(m),g=n(177),_=(r(g),n(183)),b=(r(_),n(201)),w=r(b),E=n(202),C=r(E),S=function(t){return{}},x=function(t){return{dispatch:t}},P=function(t,e,n){return l({},n,t,e)},T={value:null},O=0},function(t,e){\"use strict\";function n(t,e){if(t===e)return!0;var n=Object.keys(t),r=Object.keys(e);if(n.length!==r.length)return!1;for(var o=Object.prototype.hasOwnProperty,i=0;i<n.length;i++)if(!o.call(e,n[i])||t[n[i]]!==e[n[i]])return!1;return!0}e.__esModule=!0,e.default=n},function(t,e,n){\"use strict\";function r(t){return function(e){return(0,o.bindActionCreators)(t,e)}}e.__esModule=!0,e.default=r;var o=n(181)},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0,e.compose=e.applyMiddleware=e.bindActionCreators=e.combineReducers=e.createStore=void 0;var o=n(182),i=r(o),a=n(196),u=r(a),s=n(198),c=r(s),l=n(199),f=r(l),p=n(200),d=r(p),h=n(197);r(h);e.createStore=i.default,e.combineReducers=u.default,e.bindActionCreators=c.default,e.applyMiddleware=f.default,e.compose=d.default},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e,n){function r(){y===m&&(y=m.slice())}function i(){return v}function u(t){if(\"function\"!=typeof t)throw new Error(\"Expected listener to be a function.\");var e=!0;return r(),y.push(t),function(){if(e){e=!1,r();var n=y.indexOf(t);y.splice(n,1)}}}function l(t){if(!(0,a.default)(t))throw new Error(\"Actions must be plain objects. Use custom middleware for async actions.\");if(\"undefined\"==typeof t.type)throw new Error('Actions may not have an undefined \"type\" property. Have you misspelled a constant?');if(g)throw new Error(\"Reducers may not dispatch actions.\");try{g=!0,v=h(v,t)}finally{g=!1}for(var e=m=y,n=0;n<e.length;n++){var r=e[n];r()}return t}function f(t){if(\"function\"!=typeof t)throw new Error(\"Expected the nextReducer to be a function.\");h=t,l({type:c.INIT})}function p(){var t,e=u;return t={subscribe:function(t){function n(){t.next&&t.next(i())}if(\"object\"!=typeof t)throw new TypeError(\"Expected the observer to be an object.\");n();var r=e(n);return{unsubscribe:r}}},t[s.default]=function(){return this},t}var d;if(\"function\"==typeof e&&\"undefined\"==typeof n&&(n=e,e=void 0),\"undefined\"!=typeof n){if(\"function\"!=typeof n)throw new Error(\"Expected the enhancer to be a function.\");return n(o)(t,e)}if(\"function\"!=typeof t)throw new Error(\"Expected the reducer to be a function.\");var h=t,v=e,m=[],y=m,g=!1;return l({type:c.INIT}),d={dispatch:l,subscribe:u,getState:i,replaceReducer:f},d[s.default]=p,d}e.__esModule=!0,e.ActionTypes=void 0,e.default=o;var i=n(183),a=r(i),u=n(193),s=r(u),c=e.ActionTypes={INIT:\"@@redux/INIT\"}},function(t,e,n){function r(t){if(!a(t)||o(t)!=u)return!1;var e=i(t);if(null===e)return!0;var n=f.call(e,\"constructor\")&&e.constructor;return\"function\"==typeof n&&n instanceof n&&l.call(n)==p}var o=n(184),i=n(190),a=n(192),u=\"[object Object]\",s=Function.prototype,c=Object.prototype,l=s.toString,f=c.hasOwnProperty,p=l.call(Object);t.exports=r},function(t,e,n){function r(t){return null==t?void 0===t?s:u:c&&c in Object(t)?i(t):a(t)}var o=n(185),i=n(188),a=n(189),u=\"[object Null]\",s=\"[object Undefined]\",c=o?o.toStringTag:void 0;t.exports=r},function(t,e,n){var r=n(186),o=r.Symbol;t.exports=o},function(t,e,n){var r=n(187),o=\"object\"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function(\"return this\")();t.exports=i},function(t,e){(function(e){var n=\"object\"==typeof e&&e&&e.Object===Object&&e;t.exports=n}).call(e,function(){return this}())},function(t,e,n){function r(t){var e=a.call(t,s),n=t[s];try{t[s]=void 0;var r=!0}catch(t){}var o=u.call(t);return r&&(e?t[s]=n:delete t[s]),o}var o=n(185),i=Object.prototype,a=i.hasOwnProperty,u=i.toString,s=o?o.toStringTag:void 0;t.exports=r},function(t,e){function n(t){return o.call(t)}var r=Object.prototype,o=r.toString;t.exports=n},function(t,e,n){var r=n(191),o=r(Object.getPrototypeOf,Object);t.exports=o},function(t,e){function n(t,e){return function(n){return t(e(n))}}t.exports=n},function(t,e){function n(t){return null!=t&&\"object\"==typeof t}t.exports=n},function(t,e,n){(function(t,r){\"use strict\";function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var i,a=n(195),u=o(a);i=\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:\"undefined\"!=typeof t?t:r;var s=(0,u.default)(i);e.default=s}).call(e,function(){return this}(),n(194)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){\"use strict\";function n(t){var e,n=t.Symbol;return\"function\"==typeof n?n.observable?e=n.observable:(e=n(\"observable\"),n.observable=e):e=\"@@observable\",e}Object.defineProperty(e,\"__esModule\",{value:!0}),e.default=n},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){var n=e&&e.type,r=n&&'\"'+n.toString()+'\"'||\"an action\";return\"Given action \"+r+', reducer \"'+t+'\" 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 i(t){Object.keys(t).forEach(function(e){var n=t[e],r=n(void 0,{type:u.ActionTypes.INIT});if(\"undefined\"==typeof r)throw new Error('Reducer \"'+e+\"\\\" 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 o=\"@@redux/PROBE_UNKNOWN_ACTION_\"+Math.random().toString(36).substring(7).split(\"\").join(\".\");if(\"undefined\"==typeof n(void 0,{type:o}))throw new Error('Reducer \"'+e+'\" returned undefined when probed with a random type. '+(\"Don't try to handle \"+u.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.\")})}function a(t){for(var e=Object.keys(t),n={},r=0;r<e.length;r++){var a=e[r];\"function\"==typeof t[a]&&(n[a]=t[a])}var u=Object.keys(n),s=void 0;try{i(n)}catch(t){s=t}return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1];if(s)throw s;for(var r=!1,i={},a=0;a<u.length;a++){var c=u[a],l=n[c],f=t[c],p=l(f,e);if(\"undefined\"==typeof p){var d=o(c,e);throw new Error(d)}i[c]=p,r=r||p!==f}return r?i:t}}e.__esModule=!0,e.default=a;var u=n(182),s=n(183),c=(r(s),n(197));r(c)},function(t,e){\"use strict\";function n(t){\"undefined\"!=typeof console&&\"function\"==typeof console.error&&console.error(t);try{throw new Error(t)}catch(t){}}e.__esModule=!0,e.default=n},function(t,e){\"use strict\";function n(t,e){return function(){return e(t.apply(void 0,arguments))}}function r(t,e){if(\"function\"==typeof t)return n(t,e);if(\"object\"!=typeof t||null===t)throw new Error(\"bindActionCreators expected an object or a function, instead received \"+(null===t?\"null\":typeof t)+'. Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?');for(var r=Object.keys(t),o={},i=0;i<r.length;i++){var a=r[i],u=t[a];\"function\"==typeof u&&(o[a]=n(u,e))}return o}e.__esModule=!0,e.default=r},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(){for(var t=arguments.length,e=Array(t),n=0;n<t;n++)e[n]=arguments[n];return function(t){return function(n,r,o){var a=t(n,r,o),s=a.dispatch,c=[],l={getState:a.getState,dispatch:function(t){return s(t)}};return c=e.map(function(t){return t(l)}),s=u.default.apply(void 0,c)(a.dispatch),i({},a,{dispatch:s})}}}e.__esModule=!0;var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t};e.default=o;var a=n(200),u=r(a)},function(t,e){\"use strict\";function n(){for(var t=arguments.length,e=Array(t),n=0;n<t;n++)e[n]=arguments[n];return 0===e.length?function(t){return t}:1===e.length?e[0]:e.reduce(function(t,e){return function(){return t(e.apply(void 0,arguments))}})}e.__esModule=!0,e.default=n},function(t,e){\"use strict\";function n(t,e,f){if(\"string\"!=typeof e){if(l){var p=c(e);p&&p!==l&&n(t,p,f)}var d=a(e);u&&(d=d.concat(u(e)));for(var h=0;h<d.length;++h){var v=d[h];if(!(r[v]||o[v]||f&&f[v])){var m=s(e,v);try{i(t,v,m)}catch(t){}}}return t}return t}var r={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i=Object.defineProperty,a=Object.getOwnPropertyNames,u=Object.getOwnPropertySymbols,s=Object.getOwnPropertyDescriptor,c=Object.getPrototypeOf,l=c&&c(Object);t.exports=n},function(t,e,n){\"use strict\";var r=function(t,e,n,r,o,i,a,u){if(!t){var s;if(void 0===e)s=new Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");else{var c=[n,r,o,i,a,u],l=0;s=new Error(e.replace(/%s/g,function(){return c[l++]})),s.name=\"Invariant Violation\"}throw s.framesToPop=1,s}};t.exports=r},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(181),i=n(204),a=r(i),u=(0,o.createStore)(a.default,window.devToolsExtension&&window.devToolsExtension());e.default=u},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(205),i=n(212),a=r(i),u=n(216),s=r(u),c=n(218),l=r(c),f=n(219),p=r(f),d=n(221),h=r(d),v=n(223),m=r(v),y=n(224),g=r(y),_=n(225),b=r(_),w=n(226),E=r(w),C=n(227),S=r(C),x=n(228),P=r(x),T=n(229),O=r(T),k=n(230),M=r(k),I=n(231),R=r(I),A=n(232),N=r(A),D=n(241),L=r(D),j=(0,o.combineReducers)({pause:a.default,music:s.default,matrix:l.default,next:p.default,cur:h.default,startLines:m.default,max:g.default,points:b.default,speedStart:E.default,speedRun:S.default,lock:P.default,clearLines:O.default,reset:M.default,drop:R.default,keyboard:N.default,focus:L.default});e.default=j},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0}),e.combineReducers=void 0;var o=n(206),i=r(o);e.combineReducers=i.default},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(207),i=r(o),a=n(208);e.default=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.default.Map,n=Object.keys(t);return function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:e(),o=arguments[1];return r.withMutations(function(e){n.forEach(function(n){var r=t[n],i=e.get(n),u=r(i,o);(0,a.validateNextState)(u,n,o),e.set(n,u)})})}},t.exports=e.default},function(t,e,n){!function(e,n){t.exports=n()}(this,function(){\"use strict\";function t(t,e){e&&(t.prototype=Object.create(e.prototype)),t.prototype.constructor=t}function e(t){return i(t)?t:k(t)}function n(t){return a(t)?t:M(t)}function r(t){return u(t)?t:I(t)}function o(t){return i(t)&&!s(t)?t:R(t)}function i(t){return!(!t||!t[cn])}function a(t){return!(!t||!t[ln])}function u(t){return!(!t||!t[fn])}function s(t){return a(t)||u(t)}function c(t){return!(!t||!t[pn])}function l(t){return t.value=!1,t}function f(t){t&&(t.value=!0)}function p(){}function d(t,e){e=e||0;for(var n=Math.max(0,t.length-e),r=new Array(n),o=0;o<n;o++)r[o]=t[o+e];return r}function h(t){return void 0===t.size&&(t.size=t.__iterate(m)),t.size}function v(t,e){if(\"number\"!=typeof e){var n=e>>>0;if(\"\"+n!==e||4294967295===n)return NaN;e=n}return e<0?h(t)+e:e}function m(){return!0}function y(t,e,n){return(0===t||void 0!==n&&t<=-n)&&(void 0===e||void 0!==n&&e>=n)}function g(t,e){return b(t,e,0)}function _(t,e){return b(t,e,e)}function b(t,e,n){return void 0===t?n:t<0?Math.max(0,e+t):void 0===e?t:Math.min(e,t)}function w(t){this.next=t}function E(t,e,n,r){var o=0===t?e:1===t?n:[e,n];return r?r.value=o:r={value:o,done:!1},r}function C(){return{value:void 0,done:!0}}function S(t){return!!T(t)}function x(t){return t&&\"function\"==typeof t.next}function P(t){var e=T(t);return e&&e.call(t)}function T(t){var e=t&&(Cn&&t[Cn]||t[Sn]);if(\"function\"==typeof e)return e}function O(t){return t&&\"number\"==typeof t.length}function k(t){return null===t||void 0===t?U():i(t)?t.toSeq():z(t)}function M(t){return null===t||void 0===t?U().toKeyedSeq():i(t)?a(t)?t.toSeq():t.fromEntrySeq():B(t)}function I(t){return null===t||void 0===t?U():i(t)?a(t)?t.entrySeq():t.toIndexedSeq():F(t)}function R(t){return(null===t||void 0===t?U():i(t)?a(t)?t.entrySeq():t:F(t)).toSetSeq()}function A(t){this._array=t,this.size=t.length}function N(t){var e=Object.keys(t);this._object=t,this._keys=e,this.size=e.length}function D(t){this._iterable=t,this.size=t.length||t.size}function L(t){this._iterator=t,this._iteratorCache=[]}function j(t){return!(!t||!t[Pn])}function U(){return Tn||(Tn=new A([]))}function B(t){var e=Array.isArray(t)?new A(t).fromEntrySeq():x(t)?new L(t).fromEntrySeq():S(t)?new D(t).fromEntrySeq():\"object\"==typeof t?new N(t):void 0;if(!e)throw new TypeError(\"Expected Array or iterable object of [k, v] entries, or keyed object: \"+t);return e}function F(t){var e=q(t);if(!e)throw new TypeError(\"Expected Array or iterable object of values: \"+t);return e}function z(t){var e=q(t)||\"object\"==typeof t&&new N(t);if(!e)throw new TypeError(\"Expected Array or iterable object of values, or keyed object: \"+t);return e}function q(t){return O(t)?new A(t):x(t)?new L(t):S(t)?new D(t):void 0}function V(t,e,n,r){var o=t._cache;if(o){for(var i=o.length-1,a=0;a<=i;a++){var u=o[n?i-a:a];if(e(u[1],r?u[0]:a,t)===!1)return a+1}return a}return t.__iterateUncached(e,n)}function Y(t,e,n,r){var o=t._cache;if(o){var i=o.length-1,a=0;return new w(function(){var t=o[n?i-a:a];return a++>i?C():E(e,r?t[0]:a-1,t[1])})}return t.__iteratorUncached(e,n)}function W(t,e){return e?K(e,t,\"\",{\"\":t}):H(t)}function K(t,e,n,r){return Array.isArray(e)?t.call(r,n,I(e).map(function(n,r){return K(t,n,r,e)})):J(e)?t.call(r,n,M(e).map(function(n,r){return K(t,n,r,e)})):e}function H(t){return Array.isArray(t)?I(t).map(H).toList():J(t)?M(t).map(H).toMap():t}function J(t){return t&&(t.constructor===Object||void 0===t.constructor)}function X(t,e){if(t===e||t!==t&&e!==e)return!0;if(!t||!e)return!1;if(\"function\"==typeof t.valueOf&&\"function\"==typeof e.valueOf){if(t=t.valueOf(),e=e.valueOf(),t===e||t!==t&&e!==e)return!0;if(!t||!e)return!1}return!(\"function\"!=typeof t.equals||\"function\"!=typeof e.equals||!t.equals(e))}function Q(t,e){if(t===e)return!0;if(!i(e)||void 0!==t.size&&void 0!==e.size&&t.size!==e.size||void 0!==t.__hash&&void 0!==e.__hash&&t.__hash!==e.__hash||a(t)!==a(e)||u(t)!==u(e)||c(t)!==c(e))return!1;if(0===t.size&&0===e.size)return!0;var n=!s(t);if(c(t)){var r=t.entries();return e.every(function(t,e){var o=r.next().value;return o&&X(o[1],t)&&(n||X(o[0],e))})&&r.next().done}var o=!1;if(void 0===t.size)if(void 0===e.size)\"function\"==typeof t.cacheResult&&t.cacheResult();else{o=!0;var l=t;t=e,e=l}var f=!0,p=e.__iterate(function(e,r){if(n?!t.has(e):o?!X(e,t.get(r,yn)):!X(t.get(r,yn),e))return f=!1,!1});return f&&t.size===p}function $(t,e){if(!(this instanceof $))return new $(t,e);if(this._value=t,this.size=void 0===e?1/0:Math.max(0,e),0===this.size){if(On)return On;On=this}}function G(t,e){if(!t)throw new Error(e)}function Z(t,e,n){if(!(this instanceof Z))return new Z(t,e,n);if(G(0!==n,\"Cannot step a Range by 0\"),t=t||0,void 0===e&&(e=1/0),n=void 0===n?1:Math.abs(n),e<t&&(n=-n),this._start=t,this._end=e,this._step=n,this.size=Math.max(0,Math.ceil((e-t)/n-1)+1),0===this.size){if(kn)return kn;kn=this}}function tt(){throw TypeError(\"Abstract\")}function et(){}function nt(){}function rt(){}function ot(t){return t>>>1&1073741824|3221225471&t}function it(t){if(t===!1||null===t||void 0===t)return 0;if(\"function\"==typeof t.valueOf&&(t=t.valueOf(),t===!1||null===t||void 0===t))return 0;if(t===!0)return 1;var e=typeof t;if(\"number\"===e){if(t!==t||t===1/0)return 0;var n=0|t;for(n!==t&&(n^=4294967295*t);t>4294967295;)t/=4294967295,n^=t;return ot(n)}if(\"string\"===e)return t.length>jn?at(t):ut(t);if(\"function\"==typeof t.hashCode)return t.hashCode();if(\"object\"===e)return st(t);if(\"function\"==typeof t.toString)return ut(t.toString());throw new Error(\"Value type \"+e+\" cannot be hashed.\")}function at(t){var e=Fn[t];return void 0===e&&(e=ut(t),Bn===Un&&(Bn=0,Fn={}),Bn++,Fn[t]=e),e}function ut(t){for(var e=0,n=0;n<t.length;n++)e=31*e+t.charCodeAt(n)|0;return ot(e)}function st(t){var e;if(Nn&&(e=Mn.get(t),void 0!==e))return e;if(e=t[Ln],void 0!==e)return e;if(!An){if(e=t.propertyIsEnumerable&&t.propertyIsEnumerable[Ln],void 0!==e)return e;if(e=ct(t),void 0!==e)return e}if(e=++Dn,1073741824&Dn&&(Dn=0),Nn)Mn.set(t,e);else{if(void 0!==Rn&&Rn(t)===!1)throw new Error(\"Non-extensible objects are not allowed as keys.\");if(An)Object.defineProperty(t,Ln,{enumerable:!1,configurable:!1,writable:!1,value:e});else if(void 0!==t.propertyIsEnumerable&&t.propertyIsEnumerable===t.constructor.prototype.propertyIsEnumerable)t.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},t.propertyIsEnumerable[Ln]=e;else{if(void 0===t.nodeType)throw new Error(\"Unable to set a non-enumerable property on object.\");t[Ln]=e}}return e}function ct(t){if(t&&t.nodeType>0)switch(t.nodeType){case 1:return t.uniqueID;case 9:return t.documentElement&&t.documentElement.uniqueID}}function lt(t){G(t!==1/0,\"Cannot perform this action with an infinite size.\")}function ft(t){return null===t||void 0===t?Et():pt(t)&&!c(t)?t:Et().withMutations(function(e){var r=n(t);lt(r.size),r.forEach(function(t,n){return e.set(n,t)})})}function pt(t){return!(!t||!t[zn])}function dt(t,e){this.ownerID=t,this.entries=e}function ht(t,e,n){this.ownerID=t,this.bitmap=e,this.nodes=n}function vt(t,e,n){this.ownerID=t,this.count=e,this.nodes=n}function mt(t,e,n){this.ownerID=t,this.keyHash=e,this.entries=n}function yt(t,e,n){this.ownerID=t,this.keyHash=e,this.entry=n}function gt(t,e,n){this._type=e,this._reverse=n,this._stack=t._root&&bt(t._root)}function _t(t,e){return E(t,e[0],e[1])}function bt(t,e){return{node:t,index:0,__prev:e}}function wt(t,e,n,r){var o=Object.create(qn);return o.size=t,o._root=e,o.__ownerID=n,o.__hash=r,o.__altered=!1,o}function Et(){return Vn||(Vn=wt(0))}function Ct(t,e,n){var r,o;if(t._root){var i=l(gn),a=l(_n);if(r=St(t._root,t.__ownerID,0,void 0,e,n,i,a),!a.value)return t;o=t.size+(i.value?n===yn?-1:1:0)}else{if(n===yn)return t;o=1,r=new dt(t.__ownerID,[[e,n]])}return t.__ownerID?(t.size=o,t._root=r,t.__hash=void 0,t.__altered=!0,t):r?wt(o,r):Et()}function St(t,e,n,r,o,i,a,u){return t?t.update(e,n,r,o,i,a,u):i===yn?t:(f(u),f(a),new yt(e,r,[o,i]))}function xt(t){return t.constructor===yt||t.constructor===mt}function Pt(t,e,n,r,o){if(t.keyHash===r)return new mt(e,r,[t.entry,o]);var i,a=(0===n?t.keyHash:t.keyHash>>>n)&mn,u=(0===n?r:r>>>n)&mn,s=a===u?[Pt(t,e,n+hn,r,o)]:(i=new yt(e,r,o),a<u?[t,i]:[i,t]);return new ht(e,1<<a|1<<u,s)}function Tt(t,e,n,r){t||(t=new p);for(var o=new yt(t,it(n),[n,r]),i=0;i<e.length;i++){var a=e[i];o=o.update(t,0,void 0,a[0],a[1])}return o}function Ot(t,e,n,r){for(var o=0,i=0,a=new Array(n),u=0,s=1,c=e.length;u<c;u++,s<<=1){var l=e[u];void 0!==l&&u!==r&&(o|=s,a[i++]=l)}return new ht(t,o,a)}function kt(t,e,n,r,o){for(var i=0,a=new Array(vn),u=0;0!==n;u++,n>>>=1)a[u]=1&n?e[i++]:void 0;return a[r]=o,new vt(t,i+1,a)}function Mt(t,e,r){for(var o=[],a=0;a<r.length;a++){var u=r[a],s=n(u);i(u)||(s=s.map(function(t){return W(t)})),o.push(s)}return At(t,e,o)}function It(t,e,n){return t&&t.mergeDeep&&i(e)?t.mergeDeep(e):X(t,e)?t:e}function Rt(t){return function(e,n,r){if(e&&e.mergeDeepWith&&i(n))return e.mergeDeepWith(t,n);var o=t(e,n,r);return X(e,o)?e:o}}function At(t,e,n){return n=n.filter(function(t){return 0!==t.size}),0===n.length?t:0!==t.size||t.__ownerID||1!==n.length?t.withMutations(function(t){for(var r=e?function(n,r){t.update(r,yn,function(t){return t===yn?n:e(t,n,r)})}:function(e,n){t.set(n,e)},o=0;o<n.length;o++)n[o].forEach(r)}):t.constructor(n[0])}function Nt(t,e,n,r){var o=t===yn,i=e.next();if(i.done){var a=o?n:t,u=r(a);return u===a?t:u}G(o||t&&t.set,\"invalid keyPath\");var s=i.value,c=o?yn:t.get(s,yn),l=Nt(c,e,n,r);return l===c?t:l===yn?t.remove(s):(o?Et():t).set(s,l)}function Dt(t){return t-=t>>1&1431655765,t=(858993459&t)+(t>>2&858993459),t=t+(t>>4)&252645135,t+=t>>8,t+=t>>16,127&t}function Lt(t,e,n,r){var o=r?t:d(t);return o[e]=n,o}function jt(t,e,n,r){var o=t.length+1;if(r&&e+1===o)return t[e]=n,t;for(var i=new Array(o),a=0,u=0;u<o;u++)u===e?(i[u]=n,a=-1):i[u]=t[u+a];return i}function Ut(t,e,n){var r=t.length-1;if(n&&e===r)return t.pop(),t;for(var o=new Array(r),i=0,a=0;a<r;a++)a===e&&(i=1),o[a]=t[a+i];return o}function Bt(t){var e=Yt();if(null===t||void 0===t)return e;if(Ft(t))return t;var n=r(t),o=n.size;return 0===o?e:(lt(o),o>0&&o<vn?Vt(0,o,hn,null,new zt(n.toArray())):e.withMutations(function(t){t.setSize(o),n.forEach(function(e,n){return t.set(n,e)})}))}function Ft(t){return!(!t||!t[Hn])}function zt(t,e){this.array=t,this.ownerID=e}function qt(t,e){function n(t,e,n){return 0===e?r(t,n):o(t,e,n)}function r(t,n){var r=n===u?s&&s.array:t&&t.array,o=n>i?0:i-n,c=a-n;return c>vn&&(c=vn),function(){if(o===c)return Qn;var t=e?--c:o++;return r&&r[t]}}function o(t,r,o){var u,s=t&&t.array,c=o>i?0:i-o>>r,l=(a-o>>r)+1;return l>vn&&(l=vn),function(){for(;;){if(u){var t=u();if(t!==Qn)return t;u=null}if(c===l)return Qn;var i=e?--l:c++;u=n(s&&s[i],r-hn,o+(i<<r))}}}var i=t._origin,a=t._capacity,u=$t(a),s=t._tail;return n(t._root,t._level,0)}function Vt(t,e,n,r,o,i,a){var u=Object.create(Jn);return u.size=e-t,u._origin=t,u._capacity=e,u._level=n,u._root=r,u._tail=o,u.__ownerID=i,u.__hash=a,u.__altered=!1,u}function Yt(){return Xn||(Xn=Vt(0,0,hn))}function Wt(t,e,n){if(e=v(t,e),e!==e)return t;if(e>=t.size||e<0)return t.withMutations(function(t){e<0?Xt(t,e).set(0,n):Xt(t,0,e+1).set(e,n)});e+=t._origin;var r=t._tail,o=t._root,i=l(_n);return e>=$t(t._capacity)?r=Kt(r,t.__ownerID,0,e,n,i):o=Kt(o,t.__ownerID,t._level,e,n,i),i.value?t.__ownerID?(t._root=o,t._tail=r,t.__hash=void 0,t.__altered=!0,t):Vt(t._origin,t._capacity,t._level,o,r):t}function Kt(t,e,n,r,o,i){var a=r>>>n&mn,u=t&&a<t.array.length;if(!u&&void 0===o)return t;var s;if(n>0){var c=t&&t.array[a],l=Kt(c,e,n-hn,r,o,i);return l===c?t:(s=Ht(t,e),s.array[a]=l,s)}return u&&t.array[a]===o?t:(f(i),s=Ht(t,e),void 0===o&&a===s.array.length-1?s.array.pop():s.array[a]=o,s)}function Ht(t,e){return e&&t&&e===t.ownerID?t:new zt(t?t.array.slice():[],e)}function Jt(t,e){if(e>=$t(t._capacity))return t._tail;if(e<1<<t._level+hn){for(var n=t._root,r=t._level;n&&r>0;)n=n.array[e>>>r&mn],r-=hn;return n}}function Xt(t,e,n){void 0!==e&&(e|=0),void 0!==n&&(n|=0);var r=t.__ownerID||new p,o=t._origin,i=t._capacity,a=o+e,u=void 0===n?i:n<0?i+n:o+n;if(a===o&&u===i)return t;if(a>=u)return t.clear();for(var s=t._level,c=t._root,l=0;a+l<0;)c=new zt(c&&c.array.length?[void 0,c]:[],r),s+=hn,l+=1<<s;l&&(a+=l,o+=l,u+=l,i+=l);for(var f=$t(i),d=$t(u);d>=1<<s+hn;)c=new zt(c&&c.array.length?[c]:[],r),s+=hn;var h=t._tail,v=d<f?Jt(t,u-1):d>f?new zt([],r):h;if(h&&d>f&&a<i&&h.array.length){c=Ht(c,r);for(var m=c,y=s;y>hn;y-=hn){var g=f>>>y&mn;m=m.array[g]=Ht(m.array[g],r)}m.array[f>>>hn&mn]=h}if(u<i&&(v=v&&v.removeAfter(r,0,u)),a>=d)a-=d,u-=d,s=hn,c=null,v=v&&v.removeBefore(r,0,a);else if(a>o||d<f){for(l=0;c;){var _=a>>>s&mn;if(_!==d>>>s&mn)break;_&&(l+=(1<<s)*_),s-=hn,c=c.array[_]}c&&a>o&&(c=c.removeBefore(r,s,a-l)),c&&d<f&&(c=c.removeAfter(r,s,d-l)),l&&(a-=l,u-=l)}return t.__ownerID?(t.size=u-a,t._origin=a,t._capacity=u,t._level=s,t._root=c,t._tail=v,t.__hash=void 0,t.__altered=!0,t):Vt(a,u,s,c,v)}function Qt(t,e,n){for(var o=[],a=0,u=0;u<n.length;u++){var s=n[u],c=r(s);c.size>a&&(a=c.size),i(s)||(c=c.map(function(t){return W(t)})),o.push(c)}return a>t.size&&(t=t.setSize(a)),At(t,e,o)}function $t(t){return t<vn?0:t-1>>>hn<<hn}function Gt(t){return null===t||void 0===t?ee():Zt(t)?t:ee().withMutations(function(e){var r=n(t);lt(r.size),r.forEach(function(t,n){return e.set(n,t)})})}function Zt(t){return pt(t)&&c(t)}function te(t,e,n,r){var o=Object.create(Gt.prototype);return o.size=t?t.size:0,o._map=t,o._list=e,o.__ownerID=n,o.__hash=r,o}function ee(){return $n||($n=te(Et(),Yt()))}function ne(t,e,n){var r,o,i=t._map,a=t._list,u=i.get(e),s=void 0!==u;if(n===yn){if(!s)return t;a.size>=vn&&a.size>=2*i.size?(o=a.filter(function(t,e){return void 0!==t&&u!==e}),r=o.toKeyedSeq().map(function(t){return t[0]}).flip().toMap(),t.__ownerID&&(r.__ownerID=o.__ownerID=t.__ownerID)):(r=i.remove(e),o=u===a.size-1?a.pop():a.set(u,void 0))}else if(s){if(n===a.get(u)[1])return t;r=i,o=a.set(u,[e,n])}else r=i.set(e,a.size),o=a.set(a.size,[e,n]);return t.__ownerID?(t.size=r.size,t._map=r,t._list=o,t.__hash=void 0,t):te(r,o)}function re(t,e){this._iter=t,this._useKeys=e,this.size=t.size}function oe(t){this._iter=t,this.size=t.size}function ie(t){this._iter=t,this.size=t.size}function ae(t){this._iter=t,this.size=t.size}function ue(t){var e=Oe(t);return e._iter=t,e.size=t.size,e.flip=function(){return t},e.reverse=function(){var e=t.reverse.apply(this);return e.flip=function(){return t.reverse()},e},e.has=function(e){return t.includes(e)},e.includes=function(e){return t.has(e)},e.cacheResult=ke,e.__iterateUncached=function(e,n){\nvar r=this;return t.__iterate(function(t,n){return e(n,t,r)!==!1},n)},e.__iteratorUncached=function(e,n){if(e===En){var r=t.__iterator(e,n);return new w(function(){var t=r.next();if(!t.done){var e=t.value[0];t.value[0]=t.value[1],t.value[1]=e}return t})}return t.__iterator(e===wn?bn:wn,n)},e}function se(t,e,n){var r=Oe(t);return r.size=t.size,r.has=function(e){return t.has(e)},r.get=function(r,o){var i=t.get(r,yn);return i===yn?o:e.call(n,i,r,t)},r.__iterateUncached=function(r,o){var i=this;return t.__iterate(function(t,o,a){return r(e.call(n,t,o,a),o,i)!==!1},o)},r.__iteratorUncached=function(r,o){var i=t.__iterator(En,o);return new w(function(){var o=i.next();if(o.done)return o;var a=o.value,u=a[0];return E(r,u,e.call(n,a[1],u,t),o)})},r}function ce(t,e){var n=Oe(t);return n._iter=t,n.size=t.size,n.reverse=function(){return t},t.flip&&(n.flip=function(){var e=ue(t);return e.reverse=function(){return t.flip()},e}),n.get=function(n,r){return t.get(e?n:-1-n,r)},n.has=function(n){return t.has(e?n:-1-n)},n.includes=function(e){return t.includes(e)},n.cacheResult=ke,n.__iterate=function(e,n){var r=this;return t.__iterate(function(t,n){return e(t,n,r)},!n)},n.__iterator=function(e,n){return t.__iterator(e,!n)},n}function le(t,e,n,r){var o=Oe(t);return r&&(o.has=function(r){var o=t.get(r,yn);return o!==yn&&!!e.call(n,o,r,t)},o.get=function(r,o){var i=t.get(r,yn);return i!==yn&&e.call(n,i,r,t)?i:o}),o.__iterateUncached=function(o,i){var a=this,u=0;return t.__iterate(function(t,i,s){if(e.call(n,t,i,s))return u++,o(t,r?i:u-1,a)},i),u},o.__iteratorUncached=function(o,i){var a=t.__iterator(En,i),u=0;return new w(function(){for(;;){var i=a.next();if(i.done)return i;var s=i.value,c=s[0],l=s[1];if(e.call(n,l,c,t))return E(o,r?c:u++,l,i)}})},o}function fe(t,e,n){var r=ft().asMutable();return t.__iterate(function(o,i){r.update(e.call(n,o,i,t),0,function(t){return t+1})}),r.asImmutable()}function pe(t,e,n){var r=a(t),o=(c(t)?Gt():ft()).asMutable();t.__iterate(function(i,a){o.update(e.call(n,i,a,t),function(t){return t=t||[],t.push(r?[a,i]:i),t})});var i=Te(t);return o.map(function(e){return Se(t,i(e))})}function de(t,e,n,r){var o=t.size;if(void 0!==e&&(e|=0),void 0!==n&&(n===1/0?n=o:n|=0),y(e,n,o))return t;var i=g(e,o),a=_(n,o);if(i!==i||a!==a)return de(t.toSeq().cacheResult(),e,n,r);var u,s=a-i;s===s&&(u=s<0?0:s);var c=Oe(t);return c.size=0===u?u:t.size&&u||void 0,!r&&j(t)&&u>=0&&(c.get=function(e,n){return e=v(this,e),e>=0&&e<u?t.get(e+i,n):n}),c.__iterateUncached=function(e,n){var o=this;if(0===u)return 0;if(n)return this.cacheResult().__iterate(e,n);var a=0,s=!0,c=0;return t.__iterate(function(t,n){if(!s||!(s=a++<i))return c++,e(t,r?n:c-1,o)!==!1&&c!==u}),c},c.__iteratorUncached=function(e,n){if(0!==u&&n)return this.cacheResult().__iterator(e,n);var o=0!==u&&t.__iterator(e,n),a=0,s=0;return new w(function(){for(;a++<i;)o.next();if(++s>u)return C();var t=o.next();return r||e===wn?t:e===bn?E(e,s-1,void 0,t):E(e,s-1,t.value[1],t)})},c}function he(t,e,n){var r=Oe(t);return r.__iterateUncached=function(r,o){var i=this;if(o)return this.cacheResult().__iterate(r,o);var a=0;return t.__iterate(function(t,o,u){return e.call(n,t,o,u)&&++a&&r(t,o,i)}),a},r.__iteratorUncached=function(r,o){var i=this;if(o)return this.cacheResult().__iterator(r,o);var a=t.__iterator(En,o),u=!0;return new w(function(){if(!u)return C();var t=a.next();if(t.done)return t;var o=t.value,s=o[0],c=o[1];return e.call(n,c,s,i)?r===En?t:E(r,s,c,t):(u=!1,C())})},r}function ve(t,e,n,r){var o=Oe(t);return o.__iterateUncached=function(o,i){var a=this;if(i)return this.cacheResult().__iterate(o,i);var u=!0,s=0;return t.__iterate(function(t,i,c){if(!u||!(u=e.call(n,t,i,c)))return s++,o(t,r?i:s-1,a)}),s},o.__iteratorUncached=function(o,i){var a=this;if(i)return this.cacheResult().__iterator(o,i);var u=t.__iterator(En,i),s=!0,c=0;return new w(function(){var t,i,l;do{if(t=u.next(),t.done)return r||o===wn?t:o===bn?E(o,c++,void 0,t):E(o,c++,t.value[1],t);var f=t.value;i=f[0],l=f[1],s&&(s=e.call(n,l,i,a))}while(s);return o===En?t:E(o,i,l,t)})},o}function me(t,e){var r=a(t),o=[t].concat(e).map(function(t){return i(t)?r&&(t=n(t)):t=r?B(t):F(Array.isArray(t)?t:[t]),t}).filter(function(t){return 0!==t.size});if(0===o.length)return t;if(1===o.length){var s=o[0];if(s===t||r&&a(s)||u(t)&&u(s))return s}var c=new A(o);return r?c=c.toKeyedSeq():u(t)||(c=c.toSetSeq()),c=c.flatten(!0),c.size=o.reduce(function(t,e){if(void 0!==t){var n=e.size;if(void 0!==n)return t+n}},0),c}function ye(t,e,n){var r=Oe(t);return r.__iterateUncached=function(r,o){function a(t,c){var l=this;t.__iterate(function(t,o){return(!e||c<e)&&i(t)?a(t,c+1):r(t,n?o:u++,l)===!1&&(s=!0),!s},o)}var u=0,s=!1;return a(t,0),u},r.__iteratorUncached=function(r,o){var a=t.__iterator(r,o),u=[],s=0;return new w(function(){for(;a;){var t=a.next();if(t.done===!1){var c=t.value;if(r===En&&(c=c[1]),e&&!(u.length<e)||!i(c))return n?t:E(r,s++,c,t);u.push(a),a=c.__iterator(r,o)}else a=u.pop()}return C()})},r}function ge(t,e,n){var r=Te(t);return t.toSeq().map(function(o,i){return r(e.call(n,o,i,t))}).flatten(!0)}function _e(t,e){var n=Oe(t);return n.size=t.size&&2*t.size-1,n.__iterateUncached=function(n,r){var o=this,i=0;return t.__iterate(function(t,r){return(!i||n(e,i++,o)!==!1)&&n(t,i++,o)!==!1},r),i},n.__iteratorUncached=function(n,r){var o,i=t.__iterator(wn,r),a=0;return new w(function(){return(!o||a%2)&&(o=i.next(),o.done)?o:a%2?E(n,a++,e):E(n,a++,o.value,o)})},n}function be(t,e,n){e||(e=Me);var r=a(t),o=0,i=t.toSeq().map(function(e,r){return[r,e,o++,n?n(e,r,t):e]}).toArray();return i.sort(function(t,n){return e(t[3],n[3])||t[2]-n[2]}).forEach(r?function(t,e){i[e].length=2}:function(t,e){i[e]=t[1]}),r?M(i):u(t)?I(i):R(i)}function we(t,e,n){if(e||(e=Me),n){var r=t.toSeq().map(function(e,r){return[e,n(e,r,t)]}).reduce(function(t,n){return Ee(e,t[1],n[1])?n:t});return r&&r[0]}return t.reduce(function(t,n){return Ee(e,t,n)?n:t})}function Ee(t,e,n){var r=t(n,e);return 0===r&&n!==e&&(void 0===n||null===n||n!==n)||r>0}function Ce(t,n,r){var o=Oe(t);return o.size=new A(r).map(function(t){return t.size}).min(),o.__iterate=function(t,e){for(var n,r=this.__iterator(wn,e),o=0;!(n=r.next()).done&&t(n.value,o++,this)!==!1;);return o},o.__iteratorUncached=function(t,o){var i=r.map(function(t){return t=e(t),P(o?t.reverse():t)}),a=0,u=!1;return new w(function(){var e;return u||(e=i.map(function(t){return t.next()}),u=e.some(function(t){return t.done})),u?C():E(t,a++,n.apply(null,e.map(function(t){return t.value})))})},o}function Se(t,e){return j(t)?e:t.constructor(e)}function xe(t){if(t!==Object(t))throw new TypeError(\"Expected [K, V] tuple: \"+t)}function Pe(t){return lt(t.size),h(t)}function Te(t){return a(t)?n:u(t)?r:o}function Oe(t){return Object.create((a(t)?M:u(t)?I:R).prototype)}function ke(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):k.prototype.cacheResult.call(this)}function Me(t,e){return t>e?1:t<e?-1:0}function Ie(t){var n=P(t);if(!n){if(!O(t))throw new TypeError(\"Expected iterable or array-like: \"+t);n=P(e(t))}return n}function Re(t,e){var n,r=function(i){if(i instanceof r)return i;if(!(this instanceof r))return new r(i);if(!n){n=!0;var a=Object.keys(t);De(o,a),o.size=a.length,o._name=e,o._keys=a,o._defaultValues=t}this._map=ft(i)},o=r.prototype=Object.create(Gn);return o.constructor=r,r}function Ae(t,e,n){var r=Object.create(Object.getPrototypeOf(t));return r._map=e,r.__ownerID=n,r}function Ne(t){return t._name||t.constructor.name||\"Record\"}function De(t,e){try{e.forEach(Le.bind(void 0,t))}catch(t){}}function Le(t,e){Object.defineProperty(t,e,{get:function(){return this.get(e)},set:function(t){G(this.__ownerID,\"Cannot set on an immutable record.\"),this.set(e,t)}})}function je(t){return null===t||void 0===t?ze():Ue(t)&&!c(t)?t:ze().withMutations(function(e){var n=o(t);lt(n.size),n.forEach(function(t){return e.add(t)})})}function Ue(t){return!(!t||!t[Zn])}function Be(t,e){return t.__ownerID?(t.size=e.size,t._map=e,t):e===t._map?t:0===e.size?t.__empty():t.__make(e)}function Fe(t,e){var n=Object.create(tr);return n.size=t?t.size:0,n._map=t,n.__ownerID=e,n}function ze(){return er||(er=Fe(Et()))}function qe(t){return null===t||void 0===t?We():Ve(t)?t:We().withMutations(function(e){var n=o(t);lt(n.size),n.forEach(function(t){return e.add(t)})})}function Ve(t){return Ue(t)&&c(t)}function Ye(t,e){var n=Object.create(nr);return n.size=t?t.size:0,n._map=t,n.__ownerID=e,n}function We(){return rr||(rr=Ye(ee()))}function Ke(t){return null===t||void 0===t?Xe():He(t)?t:Xe().unshiftAll(t)}function He(t){return!(!t||!t[or])}function Je(t,e,n,r){var o=Object.create(ir);return o.size=t,o._head=e,o.__ownerID=n,o.__hash=r,o.__altered=!1,o}function Xe(){return ar||(ar=Je(0))}function Qe(t,e){var n=function(n){t.prototype[n]=e[n]};return Object.keys(e).forEach(n),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(e).forEach(n),t}function $e(t,e){return e}function Ge(t,e){return[e,t]}function Ze(t){return function(){return!t.apply(this,arguments)}}function tn(t){return function(){return-t.apply(this,arguments)}}function en(t){return\"string\"==typeof t?JSON.stringify(t):String(t)}function nn(){return d(arguments)}function rn(t,e){return t<e?1:t>e?-1:0}function on(t){if(t.size===1/0)return 0;var e=c(t),n=a(t),r=e?1:0,o=t.__iterate(n?e?function(t,e){r=31*r+un(it(t),it(e))|0}:function(t,e){r=r+un(it(t),it(e))|0}:e?function(t){r=31*r+it(t)|0}:function(t){r=r+it(t)|0});return an(o,r)}function an(t,e){return e=In(e,3432918353),e=In(e<<15|e>>>-15,461845907),e=In(e<<13|e>>>-13,5),e=(e+3864292196|0)^t,e=In(e^e>>>16,2246822507),e=In(e^e>>>13,3266489909),e=ot(e^e>>>16)}function un(t,e){return t^e+2654435769+(t<<6)+(t>>2)|0}var sn=Array.prototype.slice;t(n,e),t(r,e),t(o,e),e.isIterable=i,e.isKeyed=a,e.isIndexed=u,e.isAssociative=s,e.isOrdered=c,e.Keyed=n,e.Indexed=r,e.Set=o;var cn=\"@@__IMMUTABLE_ITERABLE__@@\",ln=\"@@__IMMUTABLE_KEYED__@@\",fn=\"@@__IMMUTABLE_INDEXED__@@\",pn=\"@@__IMMUTABLE_ORDERED__@@\",dn=\"delete\",hn=5,vn=1<<hn,mn=vn-1,yn={},gn={value:!1},_n={value:!1},bn=0,wn=1,En=2,Cn=\"function\"==typeof Symbol&&Symbol.iterator,Sn=\"@@iterator\",xn=Cn||Sn;w.prototype.toString=function(){return\"[Iterator]\"},w.KEYS=bn,w.VALUES=wn,w.ENTRIES=En,w.prototype.inspect=w.prototype.toSource=function(){return this.toString()},w.prototype[xn]=function(){return this},t(k,e),k.of=function(){return k(arguments)},k.prototype.toSeq=function(){return this},k.prototype.toString=function(){return this.__toString(\"Seq {\",\"}\")},k.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this},k.prototype.__iterate=function(t,e){return V(this,t,e,!0)},k.prototype.__iterator=function(t,e){return Y(this,t,e,!0)},t(M,k),M.prototype.toKeyedSeq=function(){return this},t(I,k),I.of=function(){return I(arguments)},I.prototype.toIndexedSeq=function(){return this},I.prototype.toString=function(){return this.__toString(\"Seq [\",\"]\")},I.prototype.__iterate=function(t,e){return V(this,t,e,!1)},I.prototype.__iterator=function(t,e){return Y(this,t,e,!1)},t(R,k),R.of=function(){return R(arguments)},R.prototype.toSetSeq=function(){return this},k.isSeq=j,k.Keyed=M,k.Set=R,k.Indexed=I;var Pn=\"@@__IMMUTABLE_SEQ__@@\";k.prototype[Pn]=!0,t(A,I),A.prototype.get=function(t,e){return this.has(t)?this._array[v(this,t)]:e},A.prototype.__iterate=function(t,e){for(var n=this._array,r=n.length-1,o=0;o<=r;o++)if(t(n[e?r-o:o],o,this)===!1)return o+1;return o},A.prototype.__iterator=function(t,e){var n=this._array,r=n.length-1,o=0;return new w(function(){return o>r?C():E(t,o,n[e?r-o++:o++])})},t(N,M),N.prototype.get=function(t,e){return void 0===e||this.has(t)?this._object[t]:e},N.prototype.has=function(t){return this._object.hasOwnProperty(t)},N.prototype.__iterate=function(t,e){for(var n=this._object,r=this._keys,o=r.length-1,i=0;i<=o;i++){var a=r[e?o-i:i];if(t(n[a],a,this)===!1)return i+1}return i},N.prototype.__iterator=function(t,e){var n=this._object,r=this._keys,o=r.length-1,i=0;return new w(function(){var a=r[e?o-i:i];return i++>o?C():E(t,a,n[a])})},N.prototype[pn]=!0,t(D,I),D.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e);var n=this._iterable,r=P(n),o=0;if(x(r))for(var i;!(i=r.next()).done&&t(i.value,o++,this)!==!1;);return o},D.prototype.__iteratorUncached=function(t,e){if(e)return this.cacheResult().__iterator(t,e);var n=this._iterable,r=P(n);if(!x(r))return new w(C);var o=0;return new w(function(){var e=r.next();return e.done?e:E(t,o++,e.value)})},t(L,I),L.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e);for(var n=this._iterator,r=this._iteratorCache,o=0;o<r.length;)if(t(r[o],o++,this)===!1)return o;for(var i;!(i=n.next()).done;){var a=i.value;if(r[o]=a,t(a,o++,this)===!1)break}return o},L.prototype.__iteratorUncached=function(t,e){if(e)return this.cacheResult().__iterator(t,e);var n=this._iterator,r=this._iteratorCache,o=0;return new w(function(){if(o>=r.length){var e=n.next();if(e.done)return e;r[o]=e.value}return E(t,o,r[o++])})};var Tn;t($,I),$.prototype.toString=function(){return 0===this.size?\"Repeat []\":\"Repeat [ \"+this._value+\" \"+this.size+\" times ]\"},$.prototype.get=function(t,e){return this.has(t)?this._value:e},$.prototype.includes=function(t){return X(this._value,t)},$.prototype.slice=function(t,e){var n=this.size;return y(t,e,n)?this:new $(this._value,_(e,n)-g(t,n))},$.prototype.reverse=function(){return this},$.prototype.indexOf=function(t){return X(this._value,t)?0:-1},$.prototype.lastIndexOf=function(t){return X(this._value,t)?this.size:-1},$.prototype.__iterate=function(t,e){for(var n=0;n<this.size;n++)if(t(this._value,n,this)===!1)return n+1;return n},$.prototype.__iterator=function(t,e){var n=this,r=0;return new w(function(){return r<n.size?E(t,r++,n._value):C()})},$.prototype.equals=function(t){return t instanceof $?X(this._value,t._value):Q(t)};var On;t(Z,I),Z.prototype.toString=function(){return 0===this.size?\"Range []\":\"Range [ \"+this._start+\"...\"+this._end+(1!==this._step?\" by \"+this._step:\"\")+\" ]\"},Z.prototype.get=function(t,e){return this.has(t)?this._start+v(this,t)*this._step:e},Z.prototype.includes=function(t){var e=(t-this._start)/this._step;return e>=0&&e<this.size&&e===Math.floor(e)},Z.prototype.slice=function(t,e){return y(t,e,this.size)?this:(t=g(t,this.size),e=_(e,this.size),e<=t?new Z(0,0):new Z(this.get(t,this._end),this.get(e,this._end),this._step))},Z.prototype.indexOf=function(t){var e=t-this._start;if(e%this._step===0){var n=e/this._step;if(n>=0&&n<this.size)return n}return-1},Z.prototype.lastIndexOf=function(t){return this.indexOf(t)},Z.prototype.__iterate=function(t,e){for(var n=this.size-1,r=this._step,o=e?this._start+n*r:this._start,i=0;i<=n;i++){if(t(o,i,this)===!1)return i+1;o+=e?-r:r}return i},Z.prototype.__iterator=function(t,e){var n=this.size-1,r=this._step,o=e?this._start+n*r:this._start,i=0;return new w(function(){var a=o;return o+=e?-r:r,i>n?C():E(t,i++,a)})},Z.prototype.equals=function(t){return t instanceof Z?this._start===t._start&&this._end===t._end&&this._step===t._step:Q(this,t)};var kn;t(tt,e),t(et,tt),t(nt,tt),t(rt,tt),tt.Keyed=et,tt.Indexed=nt,tt.Set=rt;var Mn,In=\"function\"==typeof Math.imul&&Math.imul(4294967295,2)===-2?Math.imul:function(t,e){t|=0,e|=0;var n=65535&t,r=65535&e;return n*r+((t>>>16)*r+n*(e>>>16)<<16>>>0)|0},Rn=Object.isExtensible,An=function(){try{return Object.defineProperty({},\"@\",{}),!0}catch(t){return!1}}(),Nn=\"function\"==typeof WeakMap;Nn&&(Mn=new WeakMap);var Dn=0,Ln=\"__immutablehash__\";\"function\"==typeof Symbol&&(Ln=Symbol(Ln));var jn=16,Un=255,Bn=0,Fn={};t(ft,et),ft.of=function(){var t=sn.call(arguments,0);return Et().withMutations(function(e){for(var n=0;n<t.length;n+=2){if(n+1>=t.length)throw new Error(\"Missing value for key: \"+t[n]);e.set(t[n],t[n+1])}})},ft.prototype.toString=function(){return this.__toString(\"Map {\",\"}\")},ft.prototype.get=function(t,e){return this._root?this._root.get(0,void 0,t,e):e},ft.prototype.set=function(t,e){return Ct(this,t,e)},ft.prototype.setIn=function(t,e){return this.updateIn(t,yn,function(){return e})},ft.prototype.remove=function(t){return Ct(this,t,yn)},ft.prototype.deleteIn=function(t){return this.updateIn(t,function(){return yn})},ft.prototype.update=function(t,e,n){return 1===arguments.length?t(this):this.updateIn([t],e,n)},ft.prototype.updateIn=function(t,e,n){n||(n=e,e=void 0);var r=Nt(this,Ie(t),e,n);return r===yn?void 0:r},ft.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):Et()},ft.prototype.merge=function(){return Mt(this,void 0,arguments)},ft.prototype.mergeWith=function(t){var e=sn.call(arguments,1);return Mt(this,t,e)},ft.prototype.mergeIn=function(t){var e=sn.call(arguments,1);return this.updateIn(t,Et(),function(t){return\"function\"==typeof t.merge?t.merge.apply(t,e):e[e.length-1]})},ft.prototype.mergeDeep=function(){return Mt(this,It,arguments)},ft.prototype.mergeDeepWith=function(t){var e=sn.call(arguments,1);return Mt(this,Rt(t),e)},ft.prototype.mergeDeepIn=function(t){var e=sn.call(arguments,1);return this.updateIn(t,Et(),function(t){return\"function\"==typeof t.mergeDeep?t.mergeDeep.apply(t,e):e[e.length-1]})},ft.prototype.sort=function(t){return Gt(be(this,t))},ft.prototype.sortBy=function(t,e){return Gt(be(this,e,t))},ft.prototype.withMutations=function(t){var e=this.asMutable();return t(e),e.wasAltered()?e.__ensureOwner(this.__ownerID):this},ft.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new p)},ft.prototype.asImmutable=function(){return this.__ensureOwner()},ft.prototype.wasAltered=function(){return this.__altered},ft.prototype.__iterator=function(t,e){return new gt(this,t,e)},ft.prototype.__iterate=function(t,e){var n=this,r=0;return this._root&&this._root.iterate(function(e){return r++,t(e[1],e[0],n)},e),r},ft.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?wt(this.size,this._root,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},ft.isMap=pt;var zn=\"@@__IMMUTABLE_MAP__@@\",qn=ft.prototype;qn[zn]=!0,qn[dn]=qn.remove,qn.removeIn=qn.deleteIn,dt.prototype.get=function(t,e,n,r){for(var o=this.entries,i=0,a=o.length;i<a;i++)if(X(n,o[i][0]))return o[i][1];return r},dt.prototype.update=function(t,e,n,r,o,i,a){for(var u=o===yn,s=this.entries,c=0,l=s.length;c<l&&!X(r,s[c][0]);c++);var p=c<l;if(p?s[c][1]===o:u)return this;if(f(a),(u||!p)&&f(i),!u||1!==s.length){if(!p&&!u&&s.length>=Yn)return Tt(t,s,r,o);var h=t&&t===this.ownerID,v=h?s:d(s);return p?u?c===l-1?v.pop():v[c]=v.pop():v[c]=[r,o]:v.push([r,o]),h?(this.entries=v,this):new dt(t,v)}},ht.prototype.get=function(t,e,n,r){void 0===e&&(e=it(n));var o=1<<((0===t?e:e>>>t)&mn),i=this.bitmap;return 0===(i&o)?r:this.nodes[Dt(i&o-1)].get(t+hn,e,n,r)},ht.prototype.update=function(t,e,n,r,o,i,a){void 0===n&&(n=it(r));var u=(0===e?n:n>>>e)&mn,s=1<<u,c=this.bitmap,l=0!==(c&s);if(!l&&o===yn)return this;var f=Dt(c&s-1),p=this.nodes,d=l?p[f]:void 0,h=St(d,t,e+hn,n,r,o,i,a);if(h===d)return this;if(!l&&h&&p.length>=Wn)return kt(t,p,c,u,h);if(l&&!h&&2===p.length&&xt(p[1^f]))return p[1^f];if(l&&h&&1===p.length&&xt(h))return h;var v=t&&t===this.ownerID,m=l?h?c:c^s:c|s,y=l?h?Lt(p,f,h,v):Ut(p,f,v):jt(p,f,h,v);return v?(this.bitmap=m,this.nodes=y,this):new ht(t,m,y)},vt.prototype.get=function(t,e,n,r){void 0===e&&(e=it(n));var o=(0===t?e:e>>>t)&mn,i=this.nodes[o];return i?i.get(t+hn,e,n,r):r},vt.prototype.update=function(t,e,n,r,o,i,a){void 0===n&&(n=it(r));var u=(0===e?n:n>>>e)&mn,s=o===yn,c=this.nodes,l=c[u];if(s&&!l)return this;var f=St(l,t,e+hn,n,r,o,i,a);if(f===l)return this;var p=this.count;if(l){if(!f&&(p--,p<Kn))return Ot(t,c,p,u)}else p++;var d=t&&t===this.ownerID,h=Lt(c,u,f,d);return d?(this.count=p,this.nodes=h,this):new vt(t,p,h)},mt.prototype.get=function(t,e,n,r){for(var o=this.entries,i=0,a=o.length;i<a;i++)if(X(n,o[i][0]))return o[i][1];return r},mt.prototype.update=function(t,e,n,r,o,i,a){void 0===n&&(n=it(r));var u=o===yn;if(n!==this.keyHash)return u?this:(f(a),f(i),Pt(this,t,e,n,[r,o]));for(var s=this.entries,c=0,l=s.length;c<l&&!X(r,s[c][0]);c++);var p=c<l;if(p?s[c][1]===o:u)return this;if(f(a),(u||!p)&&f(i),u&&2===l)return new yt(t,this.keyHash,s[1^c]);var h=t&&t===this.ownerID,v=h?s:d(s);return p?u?c===l-1?v.pop():v[c]=v.pop():v[c]=[r,o]:v.push([r,o]),h?(this.entries=v,this):new mt(t,this.keyHash,v)},yt.prototype.get=function(t,e,n,r){return X(n,this.entry[0])?this.entry[1]:r},yt.prototype.update=function(t,e,n,r,o,i,a){var u=o===yn,s=X(r,this.entry[0]);return(s?o===this.entry[1]:u)?this:(f(a),u?void f(i):s?t&&t===this.ownerID?(this.entry[1]=o,this):new yt(t,this.keyHash,[r,o]):(f(i),Pt(this,t,e,it(r),[r,o])))},dt.prototype.iterate=mt.prototype.iterate=function(t,e){for(var n=this.entries,r=0,o=n.length-1;r<=o;r++)if(t(n[e?o-r:r])===!1)return!1},ht.prototype.iterate=vt.prototype.iterate=function(t,e){for(var n=this.nodes,r=0,o=n.length-1;r<=o;r++){var i=n[e?o-r:r];if(i&&i.iterate(t,e)===!1)return!1}},yt.prototype.iterate=function(t,e){return t(this.entry)},t(gt,w),gt.prototype.next=function(){for(var t=this._type,e=this._stack;e;){var n,r=e.node,o=e.index++;if(r.entry){if(0===o)return _t(t,r.entry)}else if(r.entries){if(n=r.entries.length-1,o<=n)return _t(t,r.entries[this._reverse?n-o:o])}else if(n=r.nodes.length-1,o<=n){var i=r.nodes[this._reverse?n-o:o];if(i){if(i.entry)return _t(t,i.entry);e=this._stack=bt(i,e)}continue}e=this._stack=this._stack.__prev}return C()};var Vn,Yn=vn/4,Wn=vn/2,Kn=vn/4;t(Bt,nt),Bt.of=function(){return this(arguments)},Bt.prototype.toString=function(){return this.__toString(\"List [\",\"]\")},Bt.prototype.get=function(t,e){if(t=v(this,t),t>=0&&t<this.size){t+=this._origin;var n=Jt(this,t);return n&&n.array[t&mn]}return e},Bt.prototype.set=function(t,e){return Wt(this,t,e)},Bt.prototype.remove=function(t){return this.has(t)?0===t?this.shift():t===this.size-1?this.pop():this.splice(t,1):this},Bt.prototype.insert=function(t,e){return this.splice(t,0,e)},Bt.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=hn,this._root=this._tail=null,this.__hash=void 0,this.__altered=!0,this):Yt()},Bt.prototype.push=function(){var t=arguments,e=this.size;return this.withMutations(function(n){Xt(n,0,e+t.length);for(var r=0;r<t.length;r++)n.set(e+r,t[r])})},Bt.prototype.pop=function(){return Xt(this,0,-1)},Bt.prototype.unshift=function(){var t=arguments;return this.withMutations(function(e){Xt(e,-t.length);for(var n=0;n<t.length;n++)e.set(n,t[n])})},Bt.prototype.shift=function(){return Xt(this,1)},Bt.prototype.merge=function(){return Qt(this,void 0,arguments)},Bt.prototype.mergeWith=function(t){var e=sn.call(arguments,1);return Qt(this,t,e)},Bt.prototype.mergeDeep=function(){return Qt(this,It,arguments)},Bt.prototype.mergeDeepWith=function(t){var e=sn.call(arguments,1);return Qt(this,Rt(t),e)},Bt.prototype.setSize=function(t){return Xt(this,0,t)},Bt.prototype.slice=function(t,e){var n=this.size;return y(t,e,n)?this:Xt(this,g(t,n),_(e,n))},Bt.prototype.__iterator=function(t,e){var n=0,r=qt(this,e);return new w(function(){var e=r();return e===Qn?C():E(t,n++,e)})},Bt.prototype.__iterate=function(t,e){for(var n,r=0,o=qt(this,e);(n=o())!==Qn&&t(n,r++,this)!==!1;);return r},Bt.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?Vt(this._origin,this._capacity,this._level,this._root,this._tail,t,this.__hash):(this.__ownerID=t,this)},Bt.isList=Ft;var Hn=\"@@__IMMUTABLE_LIST__@@\",Jn=Bt.prototype;Jn[Hn]=!0,Jn[dn]=Jn.remove,Jn.setIn=qn.setIn,Jn.deleteIn=Jn.removeIn=qn.removeIn,Jn.update=qn.update,Jn.updateIn=qn.updateIn,Jn.mergeIn=qn.mergeIn,Jn.mergeDeepIn=qn.mergeDeepIn,Jn.withMutations=qn.withMutations,Jn.asMutable=qn.asMutable,Jn.asImmutable=qn.asImmutable,Jn.wasAltered=qn.wasAltered,zt.prototype.removeBefore=function(t,e,n){if(n===e?1<<e:0===this.array.length)return this;var r=n>>>e&mn;if(r>=this.array.length)return new zt([],t);var o,i=0===r;if(e>0){var a=this.array[r];if(o=a&&a.removeBefore(t,e-hn,n),o===a&&i)return this}if(i&&!o)return this;var u=Ht(this,t);if(!i)for(var s=0;s<r;s++)u.array[s]=void 0;return o&&(u.array[r]=o),u},zt.prototype.removeAfter=function(t,e,n){if(n===(e?1<<e:0)||0===this.array.length)return this;var r=n-1>>>e&mn;if(r>=this.array.length)return this;var o;if(e>0){var i=this.array[r];if(o=i&&i.removeAfter(t,e-hn,n),o===i&&r===this.array.length-1)return this}var a=Ht(this,t);return a.array.splice(r+1),o&&(a.array[r]=o),a};var Xn,Qn={};t(Gt,ft),Gt.of=function(){return this(arguments)},Gt.prototype.toString=function(){return this.__toString(\"OrderedMap {\",\"}\")},Gt.prototype.get=function(t,e){var n=this._map.get(t);return void 0!==n?this._list.get(n)[1]:e},Gt.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this):ee()},Gt.prototype.set=function(t,e){return ne(this,t,e)},Gt.prototype.remove=function(t){return ne(this,t,yn)},Gt.prototype.wasAltered=function(){return this._map.wasAltered()||this._list.wasAltered()},Gt.prototype.__iterate=function(t,e){var n=this;return this._list.__iterate(function(e){return e&&t(e[1],e[0],n)},e)},Gt.prototype.__iterator=function(t,e){return this._list.fromEntrySeq().__iterator(t,e)},Gt.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map.__ensureOwner(t),n=this._list.__ensureOwner(t);return t?te(e,n,t,this.__hash):(this.__ownerID=t,this._map=e,this._list=n,this)},Gt.isOrderedMap=Zt,Gt.prototype[pn]=!0,Gt.prototype[dn]=Gt.prototype.remove;var $n;t(re,M),re.prototype.get=function(t,e){return this._iter.get(t,e)},re.prototype.has=function(t){return this._iter.has(t)},re.prototype.valueSeq=function(){return this._iter.valueSeq()},re.prototype.reverse=function(){var t=this,e=ce(this,!0);return this._useKeys||(e.valueSeq=function(){return t._iter.toSeq().reverse()}),e},re.prototype.map=function(t,e){var n=this,r=se(this,t,e);return this._useKeys||(r.valueSeq=function(){return n._iter.toSeq().map(t,e)}),r},re.prototype.__iterate=function(t,e){var n,r=this;return this._iter.__iterate(this._useKeys?function(e,n){return t(e,n,r)}:(n=e?Pe(this):0,function(o){return t(o,e?--n:n++,r)}),e)},re.prototype.__iterator=function(t,e){if(this._useKeys)return this._iter.__iterator(t,e);var n=this._iter.__iterator(wn,e),r=e?Pe(this):0;return new w(function(){var o=n.next();return o.done?o:E(t,e?--r:r++,o.value,o)})},re.prototype[pn]=!0,t(oe,I),oe.prototype.includes=function(t){return this._iter.includes(t)},oe.prototype.__iterate=function(t,e){var n=this,r=0;return this._iter.__iterate(function(e){return t(e,r++,n)},e)},oe.prototype.__iterator=function(t,e){var n=this._iter.__iterator(wn,e),r=0;return new w(function(){var e=n.next();return e.done?e:E(t,r++,e.value,e)})},t(ie,R),ie.prototype.has=function(t){return this._iter.includes(t)},ie.prototype.__iterate=function(t,e){var n=this;return this._iter.__iterate(function(e){return t(e,e,n)},e)},ie.prototype.__iterator=function(t,e){var n=this._iter.__iterator(wn,e);return new w(function(){var e=n.next();return e.done?e:E(t,e.value,e.value,e)})},t(ae,M),ae.prototype.entrySeq=function(){return this._iter.toSeq()},ae.prototype.__iterate=function(t,e){var n=this;return this._iter.__iterate(function(e){if(e){xe(e);var r=i(e);return t(r?e.get(1):e[1],r?e.get(0):e[0],n)}},e)},ae.prototype.__iterator=function(t,e){var n=this._iter.__iterator(wn,e);return new w(function(){for(;;){var e=n.next();if(e.done)return e;var r=e.value;if(r){xe(r);var o=i(r);return E(t,o?r.get(0):r[0],o?r.get(1):r[1],e)}}})},oe.prototype.cacheResult=re.prototype.cacheResult=ie.prototype.cacheResult=ae.prototype.cacheResult=ke,t(Re,et),Re.prototype.toString=function(){return this.__toString(Ne(this)+\" {\",\"}\")},Re.prototype.has=function(t){return this._defaultValues.hasOwnProperty(t)},Re.prototype.get=function(t,e){if(!this.has(t))return e;var n=this._defaultValues[t];return this._map?this._map.get(t,n):n},Re.prototype.clear=function(){if(this.__ownerID)return this._map&&this._map.clear(),this;var t=this.constructor;return t._empty||(t._empty=Ae(this,Et()))},Re.prototype.set=function(t,e){if(!this.has(t))throw new Error('Cannot set unknown key \"'+t+'\" on '+Ne(this));if(this._map&&!this._map.has(t)){var n=this._defaultValues[t];if(e===n)return this}var r=this._map&&this._map.set(t,e);return this.__ownerID||r===this._map?this:Ae(this,r)},Re.prototype.remove=function(t){if(!this.has(t))return this;var e=this._map&&this._map.remove(t);return this.__ownerID||e===this._map?this:Ae(this,e)},Re.prototype.wasAltered=function(){return this._map.wasAltered()},Re.prototype.__iterator=function(t,e){var r=this;return n(this._defaultValues).map(function(t,e){return r.get(e)}).__iterator(t,e)},Re.prototype.__iterate=function(t,e){var r=this;return n(this._defaultValues).map(function(t,e){return r.get(e)}).__iterate(t,e)},Re.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map&&this._map.__ensureOwner(t);return t?Ae(this,e,t):(this.__ownerID=t,this._map=e,this)};var Gn=Re.prototype;Gn[dn]=Gn.remove,Gn.deleteIn=Gn.removeIn=qn.removeIn,Gn.merge=qn.merge,Gn.mergeWith=qn.mergeWith,Gn.mergeIn=qn.mergeIn,Gn.mergeDeep=qn.mergeDeep,Gn.mergeDeepWith=qn.mergeDeepWith,Gn.mergeDeepIn=qn.mergeDeepIn,Gn.setIn=qn.setIn,Gn.update=qn.update,Gn.updateIn=qn.updateIn,Gn.withMutations=qn.withMutations,Gn.asMutable=qn.asMutable,Gn.asImmutable=qn.asImmutable,t(je,rt),je.of=function(){return this(arguments)},je.fromKeys=function(t){return this(n(t).keySeq())},je.prototype.toString=function(){return this.__toString(\"Set {\",\"}\")},je.prototype.has=function(t){return this._map.has(t)},je.prototype.add=function(t){return Be(this,this._map.set(t,!0))},je.prototype.remove=function(t){return Be(this,this._map.remove(t))},je.prototype.clear=function(){return Be(this,this._map.clear())},je.prototype.union=function(){var t=sn.call(arguments,0);return t=t.filter(function(t){return 0!==t.size}),0===t.length?this:0!==this.size||this.__ownerID||1!==t.length?this.withMutations(function(e){for(var n=0;n<t.length;n++)o(t[n]).forEach(function(t){return e.add(t)})}):this.constructor(t[0])},je.prototype.intersect=function(){var t=sn.call(arguments,0);if(0===t.length)return this;t=t.map(function(t){return o(t)});var e=this;return this.withMutations(function(n){e.forEach(function(e){t.every(function(t){return t.includes(e)})||n.remove(e)})})},je.prototype.subtract=function(){var t=sn.call(arguments,0);if(0===t.length)return this;t=t.map(function(t){return o(t)});var e=this;return this.withMutations(function(n){e.forEach(function(e){t.some(function(t){return t.includes(e)})&&n.remove(e)})})},je.prototype.merge=function(){return this.union.apply(this,arguments)},je.prototype.mergeWith=function(t){var e=sn.call(arguments,1);return this.union.apply(this,e)},je.prototype.sort=function(t){return qe(be(this,t))},je.prototype.sortBy=function(t,e){return qe(be(this,e,t))},je.prototype.wasAltered=function(){return this._map.wasAltered()},je.prototype.__iterate=function(t,e){var n=this;return this._map.__iterate(function(e,r){return t(r,r,n)},e)},je.prototype.__iterator=function(t,e){return this._map.map(function(t,e){return e}).__iterator(t,e)},je.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map.__ensureOwner(t);return t?this.__make(e,t):(this.__ownerID=t,this._map=e,this)},je.isSet=Ue;var Zn=\"@@__IMMUTABLE_SET__@@\",tr=je.prototype;tr[Zn]=!0,tr[dn]=tr.remove,tr.mergeDeep=tr.merge,tr.mergeDeepWith=tr.mergeWith,tr.withMutations=qn.withMutations,tr.asMutable=qn.asMutable,tr.asImmutable=qn.asImmutable,tr.__empty=ze,tr.__make=Fe;var er;t(qe,je),qe.of=function(){return this(arguments)},qe.fromKeys=function(t){return this(n(t).keySeq())},qe.prototype.toString=function(){return this.__toString(\"OrderedSet {\",\"}\")},qe.isOrderedSet=Ve;var nr=qe.prototype;nr[pn]=!0,nr.__empty=We,nr.__make=Ye;var rr;t(Ke,nt),Ke.of=function(){return this(arguments);\n},Ke.prototype.toString=function(){return this.__toString(\"Stack [\",\"]\")},Ke.prototype.get=function(t,e){var n=this._head;for(t=v(this,t);n&&t--;)n=n.next;return n?n.value:e},Ke.prototype.peek=function(){return this._head&&this._head.value},Ke.prototype.push=function(){if(0===arguments.length)return this;for(var t=this.size+arguments.length,e=this._head,n=arguments.length-1;n>=0;n--)e={value:arguments[n],next:e};return this.__ownerID?(this.size=t,this._head=e,this.__hash=void 0,this.__altered=!0,this):Je(t,e)},Ke.prototype.pushAll=function(t){if(t=r(t),0===t.size)return this;lt(t.size);var e=this.size,n=this._head;return t.reverse().forEach(function(t){e++,n={value:t,next:n}}),this.__ownerID?(this.size=e,this._head=n,this.__hash=void 0,this.__altered=!0,this):Je(e,n)},Ke.prototype.pop=function(){return this.slice(1)},Ke.prototype.unshift=function(){return this.push.apply(this,arguments)},Ke.prototype.unshiftAll=function(t){return this.pushAll(t)},Ke.prototype.shift=function(){return this.pop.apply(this,arguments)},Ke.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):Xe()},Ke.prototype.slice=function(t,e){if(y(t,e,this.size))return this;var n=g(t,this.size),r=_(e,this.size);if(r!==this.size)return nt.prototype.slice.call(this,t,e);for(var o=this.size-n,i=this._head;n--;)i=i.next;return this.__ownerID?(this.size=o,this._head=i,this.__hash=void 0,this.__altered=!0,this):Je(o,i)},Ke.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?Je(this.size,this._head,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},Ke.prototype.__iterate=function(t,e){if(e)return this.reverse().__iterate(t);for(var n=0,r=this._head;r&&t(r.value,n++,this)!==!1;)r=r.next;return n},Ke.prototype.__iterator=function(t,e){if(e)return this.reverse().__iterator(t);var n=0,r=this._head;return new w(function(){if(r){var e=r.value;return r=r.next,E(t,n++,e)}return C()})},Ke.isStack=He;var or=\"@@__IMMUTABLE_STACK__@@\",ir=Ke.prototype;ir[or]=!0,ir.withMutations=qn.withMutations,ir.asMutable=qn.asMutable,ir.asImmutable=qn.asImmutable,ir.wasAltered=qn.wasAltered;var ar;e.Iterator=w,Qe(e,{toArray:function(){lt(this.size);var t=new Array(this.size||0);return this.valueSeq().__iterate(function(e,n){t[n]=e}),t},toIndexedSeq:function(){return new oe(this)},toJS:function(){return this.toSeq().map(function(t){return t&&\"function\"==typeof t.toJS?t.toJS():t}).__toJS()},toJSON:function(){return this.toSeq().map(function(t){return t&&\"function\"==typeof t.toJSON?t.toJSON():t}).__toJS()},toKeyedSeq:function(){return new re(this,!0)},toMap:function(){return ft(this.toKeyedSeq())},toObject:function(){lt(this.size);var t={};return this.__iterate(function(e,n){t[n]=e}),t},toOrderedMap:function(){return Gt(this.toKeyedSeq())},toOrderedSet:function(){return qe(a(this)?this.valueSeq():this)},toSet:function(){return je(a(this)?this.valueSeq():this)},toSetSeq:function(){return new ie(this)},toSeq:function(){return u(this)?this.toIndexedSeq():a(this)?this.toKeyedSeq():this.toSetSeq()},toStack:function(){return Ke(a(this)?this.valueSeq():this)},toList:function(){return Bt(a(this)?this.valueSeq():this)},toString:function(){return\"[Iterable]\"},__toString:function(t,e){return 0===this.size?t+e:t+\" \"+this.toSeq().map(this.__toStringMapper).join(\", \")+\" \"+e},concat:function(){var t=sn.call(arguments,0);return Se(this,me(this,t))},includes:function(t){return this.some(function(e){return X(e,t)})},entries:function(){return this.__iterator(En)},every:function(t,e){lt(this.size);var n=!0;return this.__iterate(function(r,o,i){if(!t.call(e,r,o,i))return n=!1,!1}),n},filter:function(t,e){return Se(this,le(this,t,e,!0))},find:function(t,e,n){var r=this.findEntry(t,e);return r?r[1]:n},forEach:function(t,e){return lt(this.size),this.__iterate(e?t.bind(e):t)},join:function(t){lt(this.size),t=void 0!==t?\"\"+t:\",\";var e=\"\",n=!0;return this.__iterate(function(r){n?n=!1:e+=t,e+=null!==r&&void 0!==r?r.toString():\"\"}),e},keys:function(){return this.__iterator(bn)},map:function(t,e){return Se(this,se(this,t,e))},reduce:function(t,e,n){lt(this.size);var r,o;return arguments.length<2?o=!0:r=e,this.__iterate(function(e,i,a){o?(o=!1,r=e):r=t.call(n,r,e,i,a)}),r},reduceRight:function(t,e,n){var r=this.toKeyedSeq().reverse();return r.reduce.apply(r,arguments)},reverse:function(){return Se(this,ce(this,!0))},slice:function(t,e){return Se(this,de(this,t,e,!0))},some:function(t,e){return!this.every(Ze(t),e)},sort:function(t){return Se(this,be(this,t))},values:function(){return this.__iterator(wn)},butLast:function(){return this.slice(0,-1)},isEmpty:function(){return void 0!==this.size?0===this.size:!this.some(function(){return!0})},count:function(t,e){return h(t?this.toSeq().filter(t,e):this)},countBy:function(t,e){return fe(this,t,e)},equals:function(t){return Q(this,t)},entrySeq:function(){var t=this;if(t._cache)return new A(t._cache);var e=t.toSeq().map(Ge).toIndexedSeq();return e.fromEntrySeq=function(){return t.toSeq()},e},filterNot:function(t,e){return this.filter(Ze(t),e)},findEntry:function(t,e,n){var r=n;return this.__iterate(function(n,o,i){if(t.call(e,n,o,i))return r=[o,n],!1}),r},findKey:function(t,e){var n=this.findEntry(t,e);return n&&n[0]},findLast:function(t,e,n){return this.toKeyedSeq().reverse().find(t,e,n)},findLastEntry:function(t,e,n){return this.toKeyedSeq().reverse().findEntry(t,e,n)},findLastKey:function(t,e){return this.toKeyedSeq().reverse().findKey(t,e)},first:function(){return this.find(m)},flatMap:function(t,e){return Se(this,ge(this,t,e))},flatten:function(t){return Se(this,ye(this,t,!0))},fromEntrySeq:function(){return new ae(this)},get:function(t,e){return this.find(function(e,n){return X(n,t)},void 0,e)},getIn:function(t,e){for(var n,r=this,o=Ie(t);!(n=o.next()).done;){var i=n.value;if(r=r&&r.get?r.get(i,yn):yn,r===yn)return e}return r},groupBy:function(t,e){return pe(this,t,e)},has:function(t){return this.get(t,yn)!==yn},hasIn:function(t){return this.getIn(t,yn)!==yn},isSubset:function(t){return t=\"function\"==typeof t.includes?t:e(t),this.every(function(e){return t.includes(e)})},isSuperset:function(t){return t=\"function\"==typeof t.isSubset?t:e(t),t.isSubset(this)},keyOf:function(t){return this.findKey(function(e){return X(e,t)})},keySeq:function(){return this.toSeq().map($e).toIndexedSeq()},last:function(){return this.toSeq().reverse().first()},lastKeyOf:function(t){return this.toKeyedSeq().reverse().keyOf(t)},max:function(t){return we(this,t)},maxBy:function(t,e){return we(this,e,t)},min:function(t){return we(this,t?tn(t):rn)},minBy:function(t,e){return we(this,e?tn(e):rn,t)},rest:function(){return this.slice(1)},skip:function(t){return this.slice(Math.max(0,t))},skipLast:function(t){return Se(this,this.toSeq().reverse().skip(t).reverse())},skipWhile:function(t,e){return Se(this,ve(this,t,e,!0))},skipUntil:function(t,e){return this.skipWhile(Ze(t),e)},sortBy:function(t,e){return Se(this,be(this,e,t))},take:function(t){return this.slice(0,Math.max(0,t))},takeLast:function(t){return Se(this,this.toSeq().reverse().take(t).reverse())},takeWhile:function(t,e){return Se(this,he(this,t,e))},takeUntil:function(t,e){return this.takeWhile(Ze(t),e)},valueSeq:function(){return this.toIndexedSeq()},hashCode:function(){return this.__hash||(this.__hash=on(this))}});var ur=e.prototype;ur[cn]=!0,ur[xn]=ur.values,ur.__toJS=ur.toArray,ur.__toStringMapper=en,ur.inspect=ur.toSource=function(){return this.toString()},ur.chain=ur.flatMap,ur.contains=ur.includes,Qe(n,{flip:function(){return Se(this,ue(this))},mapEntries:function(t,e){var n=this,r=0;return Se(this,this.toSeq().map(function(o,i){return t.call(e,[i,o],r++,n)}).fromEntrySeq())},mapKeys:function(t,e){var n=this;return Se(this,this.toSeq().flip().map(function(r,o){return t.call(e,r,o,n)}).flip())}});var sr=n.prototype;sr[ln]=!0,sr[xn]=ur.entries,sr.__toJS=ur.toObject,sr.__toStringMapper=function(t,e){return JSON.stringify(e)+\": \"+en(t)},Qe(r,{toKeyedSeq:function(){return new re(this,!1)},filter:function(t,e){return Se(this,le(this,t,e,!1))},findIndex:function(t,e){var n=this.findEntry(t,e);return n?n[0]:-1},indexOf:function(t){var e=this.keyOf(t);return void 0===e?-1:e},lastIndexOf:function(t){var e=this.lastKeyOf(t);return void 0===e?-1:e},reverse:function(){return Se(this,ce(this,!1))},slice:function(t,e){return Se(this,de(this,t,e,!1))},splice:function(t,e){var n=arguments.length;if(e=Math.max(0|e,0),0===n||2===n&&!e)return this;t=g(t,t<0?this.count():this.size);var r=this.slice(0,t);return Se(this,1===n?r:r.concat(d(arguments,2),this.slice(t+e)))},findLastIndex:function(t,e){var n=this.findLastEntry(t,e);return n?n[0]:-1},first:function(){return this.get(0)},flatten:function(t){return Se(this,ye(this,t,!1))},get:function(t,e){return t=v(this,t),t<0||this.size===1/0||void 0!==this.size&&t>this.size?e:this.find(function(e,n){return n===t},void 0,e)},has:function(t){return t=v(this,t),t>=0&&(void 0!==this.size?this.size===1/0||t<this.size:this.indexOf(t)!==-1)},interpose:function(t){return Se(this,_e(this,t))},interleave:function(){var t=[this].concat(d(arguments)),e=Ce(this.toSeq(),I.of,t),n=e.flatten(!0);return e.size&&(n.size=e.size*t.length),Se(this,n)},keySeq:function(){return Z(0,this.size)},last:function(){return this.get(-1)},skipWhile:function(t,e){return Se(this,ve(this,t,e,!1))},zip:function(){var t=[this].concat(d(arguments));return Se(this,Ce(this,nn,t))},zipWith:function(t){var e=d(arguments);return e[0]=this,Se(this,Ce(this,t,e))}}),r.prototype[fn]=!0,r.prototype[pn]=!0,Qe(o,{get:function(t,e){return this.has(t)?t:e},includes:function(t){return this.has(t)},keySeq:function(){return this.valueSeq()}}),o.prototype.has=ur.includes,o.prototype.contains=o.prototype.includes,Qe(M,n.prototype),Qe(I,r.prototype),Qe(R,o.prototype),Qe(et,n.prototype),Qe(nt,r.prototype),Qe(rt,o.prototype);var cr={Iterable:e,Seq:k,Collection:tt,Map:ft,OrderedMap:Gt,List:Bt,Stack:Ke,Set:je,OrderedSet:qe,Record:Re,Range:Z,Repeat:$,is:X,fromJS:W};return cr})},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0}),e.validateNextState=e.getUnexpectedInvocationParameterMessage=e.getStateName=void 0;var o=n(209),i=r(o),a=n(210),u=r(a),s=n(211),c=r(s);e.getStateName=i.default,e.getUnexpectedInvocationParameterMessage=u.default,e.validateNextState=c.default},function(t,e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default=function(t){return t&&\"@@redux/INIT\"===t.type?\"initialState argument passed to createStore\":\"previous state received by the reducer\"},t.exports=e.default},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(207),i=r(o),a=n(209),u=r(a);e.default=function(t,e,n){var r=Object.keys(e);if(!r.length)return\"Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.\";var o=(0,u.default)(n);if(!i.default.Iterable.isIterable(t))return\"The \"+o+' is of unexpected type. Expected argument to be an instance of Immutable.Iterable with the following properties: \"'+r.join('\", \"')+'\".';var a=t.keySeq().toArray().filter(function(t){return!e.hasOwnProperty(t)});return a.length>0?\"Unexpected \"+(1===a.length?\"property\":\"properties\")+' \"'+a.join('\", \"')+'\" found in '+o+'. Expected to find one of the known reducer property names instead: \"'+r.join('\", \"')+'\". Unexpected properties will be ignored.':null},t.exports=e.default},function(t,e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default=function(t,e,n){if(void 0===t)throw new Error('Reducer \"'+e+'\" returned undefined when handling \"'+n.type+'\" action. To ignore an action, you must explicitly return the previous state.')},t.exports=e.default},function(t,e,n){\"use strict\";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(213),i=r(o),a=n(214),u=!(!a.lastRecord||void 0===a.lastRecord.pause)&&!!a.lastRecord.pause,s=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u,e=arguments[1];switch(e.type){case i.PAUSE:return e.data;default:return t}};e.default=s},function(t,e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});e.PAUSE=\"PAUSE\",e.MUSIC=\"MUSIC\",e.MATRIX=\"MATRIX\",e.NEXT_BLOCK=\"NEXT_BLOCK\",e.MOVE_BLOCK=\"MOVE_BLOCK\",e.START_LINES=\"START_LINES\",e.MAX=\"MAX\",e.POINTS=\"POINTS\",e.SPEED_START=\"SPEED_START\",e.SPEED_RUN=\"SPEED_RUN\",e.LOCK=\"LOCK\",e.CLEAR_LINES=\"CLEAR_LINES\",e.RESET=\"RESET\",e.DROP=\"DROP\",e.KEY_DROP=\"KEY_DROP\",e.KEY_DOWN=\"KEY_DOWN\",e.KEY_LEFT=\"KEY_LEFT\",e.KEY_RIGHT=\"KEY_RIGHT\",e.KEY_ROTATE=\"KEY_ROTATE\",e.KEY_RESET=\"KEY_RESET\",e.KEY_MUSIC=\"KEY_MUSIC\",e.KEY_PAUSE=\"KEY_PAUSE\",e.FOCUS=\"FOCUS\"},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}var o=n(207),i=n(215),a=r(i),u={I:[[1,1,1,1]],L:[[0,0,1],[1,1,1]],J:[[1,0,0],[1,1,1]],Z:[[1,1,0],[0,1,1]],S:[[0,1,1],[1,1,0]],O:[[1,1],[1,1]],T:[[0,1,0],[1,1,1]]},s={I:[[-1,1],[1,-1]],L:[[0,0]],J:[[0,0]],Z:[[0,0]],S:[[0,0]],O:[[0,0]],T:[[0,0],[1,0],[-1,1],[0,-1]]},c=Object.keys(u),l=[800,650,500,370,250,160],f=[50,60,70,80,90,100],p=[1,1,1,1,1,1,1,1,1,1],d=[0,0,0,0,0,0,0,0,0,0],h=function(){for(var t=[],e=0;e<20;e++)t.push((0,o.List)(d));return(0,o.List)(t)}(),v=[100,300,700,1500],m=\"REACT_TETRIS\",y=function(){var t=localStorage.getItem(m);if(!t)return!1;try{window.btoa&&(t=atob(t)),t=decodeURIComponent(t),t=JSON.parse(t)}catch(t){return(window.console||window.console.error)&&window.console.error(\"读取记录错误:\",t),!1}return t}(),g=999999,_=function(){var t=[\"transform\",\"webkitTransform\",\"msTransform\",\"mozTransform\",\"oTransform\"],e=document.body;return t.filter(function(t){return void 0!==e.style[t]})[0]}(),b=20,w=function(t){var e=new RegExp(\"\\\\?(?:.+&)?\"+t+\"=(.*?)(?:&.*)?$\"),n=window.location.toString().match(e);return n?decodeURI(n[1]):\"\"},E=function(){var t=w(\"lan\").toLowerCase();return t=a.default.lan.indexOf(t)===-1?a.default.default:t}();document.title=a.default.data.title[E],t.exports={blockShape:u,origin:s,blockType:c,speeds:l,delays:f,fillLine:p,blankLine:d,blankMatrix:h,clearPoints:v,StorageKey:m,lastRecord:y,maxPoint:g,eachLines:b,transform:_,lan:E,i18n:a.default.data}},function(t,e){t.exports={lan:[\"cn\",\"en\",\"fr\",\"fa\"],default:\"cn\",data:{title:{cn:\"俄罗斯方块\",en:\"T E T R I S\",fr:\"T E T R I S\",fa:\"خانه سازی\"},github:{cn:\"GitHub\",en:\"GitHub\",fr:\"GitHub\",fa:\"گیت‌هاب\"},linkTitle:{cn:\"查看源代码\",en:\"View data source\",fr:\"Afficher la source des données\",fa:\"مشاهده سورس پروژه\"},QRCode:{cn:\"二维码\",en:\"QR code\",fr:\"QR code\",fa:\"کیوآر کد\"},titleCenter:{cn:\"俄罗斯方块<br />TETRIS\",en:\"TETRIS\",fr:\"TETRIS\",fa:\"خانه سازی\"},point:{cn:\"得分\",en:\"Point\",fr:\"Score\",fa:\"امتیاز\"},highestScore:{cn:\"最高分\",en:\"Max\",fr:\"Max\",fa:\"حداکثر\"},lastRound:{cn:\"上轮得分\",en:\"Last Round\",fr:\"Dernier Tour\",fa:\"آخرین دور\"},cleans:{cn:\"消除行\",en:\"Cleans\",fr:\"Lignes\",fa:\"پاک کرد\"},level:{cn:\"级别\",en:\"Level\",fr:\"Difficulté\",fa:\"سطح\"},startLine:{cn:\"起始行\",en:\"Start Line\",fr:\"Ligne Départ\",fa:\"خط شروع\"},next:{cn:\"下一个\",en:\"Next\",fr:\"Prochain\",fa:\"بعدی\"},pause:{cn:\"暂停\",en:\"Pause\",fr:\"Pause\",fa:\"مکث\"},sound:{cn:\"音效\",en:\"Sound\",fr:\"Sonore\",fa:\"صدا\"},reset:{cn:\"重玩\",en:\"Reset\",fr:\"Réinitialiser\",fa:\"ریست\"},rotation:{cn:\"旋转\",en:\"Rotation\",fr:\"Rotation\",fa:\"چرخش\"},left:{cn:\"左移\",en:\"Left\",fr:\"Gauche\",fa:\"چپ\"},right:{cn:\"右移\",en:\"Right\",fr:\"Droite\",fa:\"راست\"},down:{cn:\"下移\",en:\"Down\",fr:\"Bas\",fa:\"پایین\"},drop:{cn:\"掉落\",en:\"Drop\",fr:\"Tomber\",fa:\"سقوط\"}}}},function(t,e,n){\"use strict\";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(213),i=r(o),a=n(214),u=n(217),s=!a.lastRecord||void 0===a.lastRecord.music||!!a.lastRecord.music;u.hasWebAudioAPI.data||(s=!1);var c=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s,e=arguments[1];switch(e.type){case i.MUSIC:return!!u.hasWebAudioAPI.data&&e.data;default:return t}};e.default=c},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}var o=n(203),i=r(o),a=window.AudioContext||window.webkitAudioContext||window.mozAudioContext||window.oAudioContext||window.msAudioContext,u={data:!!a&&location.protocol.indexOf(\"http\")!==-1},s={};!function(){if(u.data){var t=\"./music.mp3\",e=new a,n=new XMLHttpRequest;n.open(\"GET\",t,!0),n.responseType=\"arraybuffer\",n.onload=function(){e.decodeAudioData(n.response,function(t){var n=function(){var n=e.createBufferSource();return n.buffer=t,n.connect(e.destination),n};s.killStart=function(){s.start=function(){}},s.start=function(){s.killStart(),i.default.getState().get(\"music\")&&n().start(0,3.7202,3.6224)},s.clear=function(){i.default.getState().get(\"music\")&&n().start(0,0,.7675)},s.fall=function(){i.default.getState().get(\"music\")&&n().start(0,1.2558,.3546)},s.gameover=function(){i.default.getState().get(\"music\")&&n().start(0,8.1276,1.1437)},s.rotate=function(){i.default.getState().get(\"music\")&&n().start(0,2.2471,.0807)},s.move=function(){i.default.getState().get(\"music\")&&n().start(0,2.9088,.1437)}},function(e){window.console&&window.console.error&&(window.console.error(\"音频: \"+t+\" 读取错误\",e),u.data=!1)})},n.send()}}(),t.exports={hasWebAudioAPI:u,music:s}},function(t,e,n){\"use strict\";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(207),i=n(213),a=r(i),u=n(214),s=u.lastRecord&&Array.isArray(u.lastRecord.matrix)?(0,o.List)(u.lastRecord.matrix.map(function(t){return(0,o.List)(t)})):u.blankMatrix,c=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s,e=arguments[1];switch(e.type){case a.MATRIX:return e.data;default:return t}};e.default=c},function(t,e,n){\"use strict\";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(220),i=n(213),a=r(i),u=n(214),s=u.lastRecord&&u.blockType.indexOf(u.lastRecord.next)!==-1?u.lastRecord.next:(0,o.getNextType)(),c=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s,e=arguments[1];switch(e.type){case a.NEXT_BLOCK:return e.data;default:return t}};e.default=c},function(t,e,n){\"use strict\";var r=n(214),o=function(){var t=[\"hidden\",\"webkitHidden\",\"mozHidden\",\"msHidden\"];return t=t.filter(function(t){return t in document}),t.length>0&&t[0]}(),i=function(){return!!o&&o.replace(/hidden/i,\"visibilitychange\")}(),a=function(){return!o||!document[o]},u={getNextType:function(){var t=r.blockType.length;return r.blockType[Math.floor(Math.random()*t)]},want:function(t,e){var n=t.xy,r=t.shape,o=r.get(0).size;return r.every(function(t,r){return t.every(function(t,i){return!(n[1]<0)&&(!(n[1]+o>10)&&(n[0]+r<0||!(n[0]+r>=20)&&(!t||!e.get(n[0]+r).get(n[1]+i))))})})},isClear:function(t){var e=[];return t.forEach(function(t,n){t.every(function(t){return!!t})&&e.push(n)}),0!==e.length&&e},isOver:function(t){return t.get(0).some(function(t){return!!t})},subscribeRecord:function(t){t.subscribe(function(){var e=t.getState().toJS();e.lock||(e=JSON.stringify(e),e=encodeURIComponent(e),window.btoa&&(e=btoa(e)),localStorage.setItem(r.StorageKey,e))})},isMobile:function(){var t=navigator.userAgent,e=/Android (\\d+\\.\\d+)/.test(t),n=t.indexOf(\"iPhone\")>-1,r=t.indexOf(\"iPod\")>-1,o=t.indexOf(\"iPad\")>-1,i=t.indexOf(\"NokiaN\")>-1;return e||n||r||o||i},visibilityChangeEvent:i,isFocus:a};t.exports=u},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}Object.defineProperty(e,\"__esModule\",{value:!0});var i=n(207),a=n(213),u=o(a),s=n(214),c=n(222),l=r(c),f=function(){if(!s.lastRecord||!s.lastRecord.cur)return null;var t=s.lastRecord.cur,e={type:t.type,rotateIndex:t.rotateIndex,shape:(0,i.List)(t.shape.map(function(t){return(0,i.List)(t)})),xy:t.xy};return new l.default(e)}(),p=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,e=arguments[1];switch(e.type){case u.MOVE_BLOCK:return e.data;default:return t}};e.default=p},function(t,e,n){\"use strict\";function r(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}Object.defineProperty(e,\"__esModule\",{value:!0});var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),i=n(207),a=n(214),u=function(){function t(e){if(r(this,t),this.type=e.type,e.rotateIndex?this.rotateIndex=e.rotateIndex:this.rotateIndex=0,e.timeStamp?this.timeStamp=e.timeStamp:this.timeStamp=Date.now(),e.shape?this.shape=e.shape:this.shape=(0,i.List)(a.blockShape[e.type].map(function(t){return(0,i.List)(t)})),e.xy)this.xy=(0,i.List)(e.xy);else switch(e.type){case\"I\":this.xy=(0,i.List)([0,3]);break;case\"L\":this.xy=(0,i.List)([-1,4]);break;case\"J\":this.xy=(0,i.List)([-1,4]);break;case\"Z\":this.xy=(0,i.List)([-1,4]);break;case\"S\":this.xy=(0,i.List)([-1,4]);break;case\"O\":this.xy=(0,i.List)([-1,4]);break;case\"T\":this.xy=(0,i.List)([-1,4])}}return o(t,[{key:\"rotate\",value:function(){var t=this.shape,e=(0,i.List)([]);t.forEach(function(t){return t.forEach(function(n,r){var o=t.size-r-1;void 0===e.get(o)&&(e=e.set(o,(0,i.List)([])));var a=e.get(o).push(n);e=e.set(o,a)})});var n=[this.xy.get(0)+a.origin[this.type][this.rotateIndex][0],this.xy.get(1)+a.origin[this.type][this.rotateIndex][1]],r=this.rotateIndex+1>=a.origin[this.type].length?0:this.rotateIndex+1;return{shape:e,type:this.type,xy:n,rotateIndex:r,timeStamp:this.timeStamp}}},{key:\"fall\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;return{shape:this.shape,type:this.type,xy:[this.xy.get(0)+t,this.xy.get(1)],rotateIndex:this.rotateIndex,timeStamp:Date.now()}}},{key:\"right\",value:function(){return{shape:this.shape,type:this.type,xy:[this.xy.get(0),this.xy.get(1)+1],rotateIndex:this.rotateIndex,timeStamp:this.timeStamp}}},{key:\"left\",value:function(){return{shape:this.shape,type:this.type,xy:[this.xy.get(0),this.xy.get(1)-1],rotateIndex:this.rotateIndex,timeStamp:this.timeStamp}}}]),t}();e.default=u},function(t,e,n){\"use strict\";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(213),i=r(o),a=n(214),u=a.lastRecord&&!isNaN(parseInt(a.lastRecord.startLines,10))?parseInt(a.lastRecord.startLines,10):0;(u<0||u>10)&&(u=0);var s=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u,e=arguments[1];switch(e.type){case i.START_LINES:return e.data;default:return t}};e.default=s},function(t,e,n){\"use strict\";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(213),i=r(o),a=n(214),u=a.lastRecord&&!isNaN(parseInt(a.lastRecord.max,10))?parseInt(a.lastRecord.max,10):0;u<0?u=0:u>a.maxPoint&&(u=a.maxPoint);var s=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u,e=arguments[1];switch(e.type){case i.MAX:return e.data>999999?999999:e.data;default:return t}};e.default=s},function(t,e,n){\"use strict\";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(213),i=r(o),a=n(214),u=a.lastRecord&&!isNaN(parseInt(a.lastRecord.points,10))?parseInt(a.lastRecord.points,10):0;u<0?u=0:u>a.maxPoint&&(u=a.maxPoint);var s=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u,e=arguments[1];switch(e.type){case i.POINTS:return e.data>a.maxPoint?a.maxPoint:e.data;default:return t}};e.default=s},function(t,e,n){\"use strict\";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(213),i=r(o),a=n(214),u=a.lastRecord&&!isNaN(parseInt(a.lastRecord.speedStart,10))?parseInt(a.lastRecord.speedStart,10):1;(u<1||u>6)&&(u=1);var s=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u,e=arguments[1];switch(e.type){case i.SPEED_START:return e.data;default:return t}};e.default=s},function(t,e,n){\"use strict\";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(213),i=r(o),a=n(214),u=a.lastRecord&&!isNaN(parseInt(a.lastRecord.speedRun,10))?parseInt(a.lastRecord.speedRun,10):1;(u<1||u>6)&&(u=1);var s=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u,e=arguments[1];switch(e.type){case i.SPEED_RUN:return e.data;default:return t}};e.default=s},function(t,e,n){\"use strict\";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(213),i=r(o),a=n(214),u=!(!a.lastRecord||void 0===a.lastRecord.lock)&&!!a.lastRecord.lock,s=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u,e=arguments[1];switch(e.type){case i.LOCK:return e.data;default:return t}};e.default=s},function(t,e,n){\"use strict\";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(213),i=r(o),a=n(214),u=a.lastRecord&&!isNaN(parseInt(a.lastRecord.clearLines,10))?parseInt(a.lastRecord.clearLines,10):0;u<0&&(u=0);var s=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u,e=arguments[1];switch(e.type){case i.CLEAR_LINES:return e.data;default:return t}};e.default=s},function(t,e,n){\"use strict\";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(213),i=r(o),a=n(214),u=!(!a.lastRecord||!a.lastRecord.reset)&&!!a.lastRecord.reset,s=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u,e=arguments[1];switch(e.type){case i.RESET:return e.data;default:return t}};e.default=s},function(t,e,n){\"use strict\";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(213),i=r(o),a=n(214),u=!(!a.lastRecord||void 0===a.lastRecord.drop)&&!!a.lastRecord.drop,s=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u,e=arguments[1];switch(e.type){case i.DROP:return e.data;default:return t}};e.default=s},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(205),i=n(233),a=r(i),u=n(234),s=r(u),c=n(235),l=r(c),f=n(236),p=r(f),d=n(237),h=r(d),v=n(238),m=r(v),y=n(239),g=r(y),_=n(240),b=r(_),w=(0,o.combineReducers)({drop:a.default,down:s.default,left:l.default,right:p.default,rotate:h.default,reset:m.default,music:g.default,pause:b.default});e.default=w},function(t,e,n){\"use strict\";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(213),i=r(o),a=!1,u=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a,e=arguments[1];switch(e.type){case i.KEY_DROP:return e.data;default:return t}};e.default=u},function(t,e,n){\"use strict\";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(213),i=r(o),a=!1,u=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a,e=arguments[1];switch(e.type){case i.KEY_DOWN:return e.data;default:return t}};e.default=u},function(t,e,n){\"use strict\";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(213),i=r(o),a=!1,u=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a,e=arguments[1];switch(e.type){case i.KEY_LEFT:return e.data;default:return t}};e.default=u},function(t,e,n){\"use strict\";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(213),i=r(o),a=!1,u=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a,e=arguments[1];switch(e.type){case i.KEY_RIGHT:return e.data;default:return t}};e.default=u},function(t,e,n){\"use strict\";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(213),i=r(o),a=!1,u=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a,e=arguments[1];switch(e.type){case i.KEY_ROTATE:return e.data;default:return t}};e.default=u},function(t,e,n){\"use strict\";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(213),i=r(o),a=!1,u=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a,e=arguments[1];switch(e.type){case i.KEY_RESET:return e.data;default:return t}};e.default=u},function(t,e,n){\"use strict\";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(213),i=r(o),a=!1,u=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a,e=arguments[1];switch(e.type){case i.KEY_MUSIC:return e.data;default:return t}};e.default=u},function(t,e,n){\"use strict\";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(213),i=r(o),a=!1,u=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a,e=arguments[1];switch(e.type){case i.KEY_PAUSE:return e.data;default:return t}};e.default=u},function(t,e,n){\"use strict\";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(213),i=r(o),a=n(220),u=(0,a.isFocus)(),s=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u,e=arguments[1];switch(e.type){case i.FOCUS:return e.data;default:return t}};e.default=s},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\");\n}function a(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function u(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,\"__esModule\",{value:!0});var s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),c=n(1),l=r(c),f=n(172),p=n(243),d=r(p),h=n(174),v=r(h),m=n(244),y=r(m),g=n(245),_=r(g),b=n(250),w=r(b),E=n(252),C=r(E),S=n(254),x=r(S),P=n(256),T=r(P),O=n(258),k=r(O),M=n(260),I=r(M),R=n(261),A=r(R),N=n(263),D=r(N),L=n(277),j=r(L),U=n(214),B=n(220),F=n(247),z=r(F),q=function(t){function e(){i(this,e);var t=a(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return t.state={w:document.documentElement.clientWidth,h:document.documentElement.clientHeight},t}return u(e,t),s(e,[{key:\"componentWillMount\",value:function(){window.addEventListener(\"resize\",this.resize.bind(this),!0)}},{key:\"componentDidMount\",value:function(){if(B.visibilityChangeEvent&&document.addEventListener(B.visibilityChangeEvent,function(){z.default.focus((0,B.isFocus)())},!1),U.lastRecord){if(U.lastRecord.cur&&!U.lastRecord.pause){var t=this.props.speedRun,e=U.speeds[t-1]/2;e=t<U.speeds[U.speeds.length-1]?U.speeds[U.speeds.length-1]:t,z.default.auto(e)}U.lastRecord.cur||z.default.overStart()}else z.default.overStart()}},{key:\"resize\",value:function(){this.setState({w:document.documentElement.clientWidth,h:document.documentElement.clientHeight})}},{key:\"render\",value:function(){var t,e=this,n=0,r=function(){var t=e.state.w,r=e.state.h,o=r/t,i=void 0,a={};return o<1.5?i=r/960:(i=t/640,n=(r-960*i)/i/3,a={paddingTop:Math.floor(n)+42,paddingBottom:Math.floor(n),marginTop:Math.floor(-480-1.5*n)}),a[U.transform]=\"scale(\"+i+\")\",a}();return l.default.createElement(\"div\",{className:y.default.app,style:r},l.default.createElement(\"div\",{className:(0,d.default)((t={},o(t,y.default.rect,!0),o(t,y.default.drop,this.props.drop),t))},l.default.createElement(w.default,null),l.default.createElement(\"div\",{className:y.default.screen},l.default.createElement(\"div\",{className:y.default.panel},l.default.createElement(_.default,{matrix:this.props.matrix,cur:this.props.cur,reset:this.props.reset}),l.default.createElement(A.default,{cur:!!this.props.cur,reset:this.props.reset}),l.default.createElement(\"div\",{className:y.default.state},l.default.createElement(I.default,{cur:!!this.props.cur,point:this.props.points,max:this.props.max}),l.default.createElement(\"p\",null,this.props.cur?U.i18n.cleans[U.lan]:U.i18n.startLine[U.lan]),l.default.createElement(C.default,{number:this.props.cur?this.props.clearLines:this.props.startLines}),l.default.createElement(\"p\",null,U.i18n.level[U.lan]),l.default.createElement(C.default,{number:this.props.cur?this.props.speedRun:this.props.speedStart,length:1}),l.default.createElement(\"p\",null,U.i18n.next[U.lan]),l.default.createElement(x.default,{data:this.props.next}),l.default.createElement(\"div\",{className:y.default.bottom},l.default.createElement(T.default,{data:this.props.music}),l.default.createElement(k.default,{data:this.props.pause}),l.default.createElement(C.default,{time:!0})))))),l.default.createElement(D.default,{filling:n,keyboard:this.props.keyboard}),l.default.createElement(j.default,null))}}]),e}(l.default.Component);q.propTypes={music:v.default.bool.isRequired,pause:v.default.bool.isRequired,matrix:v.default.object.isRequired,next:v.default.string.isRequired,cur:v.default.object,dispatch:v.default.func.isRequired,speedStart:v.default.number.isRequired,speedRun:v.default.number.isRequired,startLines:v.default.number.isRequired,clearLines:v.default.number.isRequired,points:v.default.number.isRequired,max:v.default.number.isRequired,reset:v.default.bool.isRequired,drop:v.default.bool.isRequired,keyboard:v.default.object.isRequired};var V=function(t){return{pause:t.get(\"pause\"),music:t.get(\"music\"),matrix:t.get(\"matrix\"),next:t.get(\"next\"),cur:t.get(\"cur\"),speedStart:t.get(\"speedStart\"),speedRun:t.get(\"speedRun\"),startLines:t.get(\"startLines\"),clearLines:t.get(\"clearLines\"),points:t.get(\"points\"),max:t.get(\"max\"),reset:t.get(\"reset\"),drop:t.get(\"drop\"),keyboard:t.get(\"keyboard\")}};e.default=(0,f.connect)(V)(q)},function(t,e,n){var r,o;/*!\n\t  Copyright (c) 2017 Jed Watson.\n\t  Licensed under the MIT License (MIT), see\n\t  http://jedwatson.github.io/classnames\n\t*/\n!function(){\"use strict\";function n(){for(var t=[],e=0;e<arguments.length;e++){var r=arguments[e];if(r){var o=typeof r;if(\"string\"===o||\"number\"===o)t.push(r);else if(Array.isArray(r)&&r.length){var a=n.apply(null,r);a&&t.push(a)}else if(\"object\"===o)for(var u in r)i.call(r,u)&&r[u]&&t.push(u)}}return t.join(\" \")}var i={}.hasOwnProperty;\"undefined\"!=typeof t&&t.exports?(n.default=n,t.exports=n):(r=[],o=function(){return n}.apply(e,r),!(void 0!==o&&(t.exports=o)))}()},function(t,e){t.exports={app:\"_3Lk6\",rect:\"_1fjB\",drop:\"_3YUe\",screen:\"_2iZA\",panel:\"_2lJh\",state:\"_1deS\",bottom:\"_8hag\"}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function i(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function a(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,\"__esModule\",{value:!0});var u=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=n(1),c=r(s),l=n(207),f=r(l),p=n(243),d=r(p),h=n(174),v=r(h),m=n(246),y=r(m),g=n(220),_=n(214),b=n(247),w=r(b),E=setTimeout,C=function(t){function e(){o(this,e);var t=i(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return t.state={clearLines:!1,animateColor:2,isOver:!1,overState:null},t}return a(e,t),u(e,[{key:\"componentWillReceiveProps\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=(0,g.isClear)(t.matrix),n=t.reset;this.setState({clearLines:e,isOver:n}),e&&!this.state.clearLines&&this.clearAnimate(e),e||!n||this.state.isOver||this.over(t)}},{key:\"shouldComponentUpdate\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.props;return!(f.default.is(t.matrix,e.matrix)&&f.default.is(t.cur&&t.cur.shape,e.cur&&e.cur.shape)&&f.default.is(t.cur&&t.cur.xy,e.cur&&e.cur.xy))||this.state.clearLines||this.state.isOver}},{key:\"getResult\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props,e=t.cur,n=e&&e.shape,r=e&&e.xy,o=t.matrix,i=this.state.clearLines;if(i){var a=this.state.animateColor;i.forEach(function(t){o=o.set(t,(0,l.List)([a,a,a,a,a,a,a,a,a,a]))})}else n&&n.forEach(function(t,e){return t.forEach(function(t,n){if(t&&r.get(0)+e>=0){var a=o.get(r.get(0)+e),u=void 0;u=1!==a.get(r.get(1)+n)||i?1:2,a=a.set(r.get(1)+n,u),o=o.set(r.get(0)+e,a)}})});return o}},{key:\"clearAnimate\",value:function(){var t=this,e=function(e){E(function(){t.setState({animateColor:0}),E(function(){t.setState({animateColor:2}),\"function\"==typeof e&&e()},100)},100)};e(function(){e(function(){e(function(){E(function(){w.default.clearLines(t.props.matrix,t.state.clearLines)},100)})})})}},{key:\"over\",value:function(t){var e=this,n=this.getResult(t);this.setState({overState:n});for(var r=function(t){if(t<=19)n=n.set(19-t,(0,l.List)(_.fillLine));else{if(!(t>=20&&t<=39))return void w.default.overEnd();n=n.set(t-20,(0,l.List)(_.blankLine))}e.setState({overState:n})},o=0;o<=40;o++)E(r.bind(null,o),40*(o+1))}},{key:\"render\",value:function(){var t=void 0;return t=this.state.isOver?this.state.overState:this.getResult(),c.default.createElement(\"div\",{className:y.default.matrix},t.map(function(t,e){return c.default.createElement(\"p\",{key:e},t.map(function(t,e){return c.default.createElement(\"b\",{className:(0,d.default)({c:1===t,d:2===t}),key:e})}))}))}}]),e}(c.default.Component);e.default=C,C.propTypes={matrix:v.default.object.isRequired,cur:v.default.object,reset:v.default.bool.isRequired}},function(t,e){t.exports={matrix:\"_6pVK\"}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(207),i=n(203),a=r(i),u=n(220),s=n(248),c=r(s),l=n(214),f=n(217),p=function(t){for(var e=function(t,e){for(var n=parseInt((e-t+1)*Math.random()+t,10),r=[],i=0;i<n;i++)r.push(1);for(var a=0,u=10-n;a<u;a++){var s=parseInt((r.length+1)*Math.random(),10);r.splice(s,0,0)}return(0,o.List)(r)},n=(0,o.List)([]),r=0;r<t;r++)n=r<=2?n.push(e(5,8)):r<=6?n.push(e(4,9)):n.push(e(3,9));for(var i=0,a=20-t;i<a;i++)n=n.unshift((0,o.List)(l.blankLine));return n},d={fallInterval:null,start:function(){f.music.start&&f.music.start();var t=a.default.getState();d.dispatchPoints(0),a.default.dispatch(c.default.speedRun(t.get(\"speedStart\")));var e=t.get(\"startLines\"),n=p(e);a.default.dispatch(c.default.matrix(n)),a.default.dispatch(c.default.moveBlock({type:t.get(\"next\")})),a.default.dispatch(c.default.nextBlock()),d.auto()},auto:function(t){var e=t<0?0:t,n=a.default.getState(),r=n.get(\"cur\"),o=function t(){n=a.default.getState(),r=n.get(\"cur\");var e=r.fall();if((0,u.want)(e,n.get(\"matrix\")))a.default.dispatch(c.default.moveBlock(e)),d.fallInterval=setTimeout(t,l.speeds[n.get(\"speedRun\")-1]);else{var o=n.get(\"matrix\"),i=r&&r.shape,s=r&&r.xy;i.forEach(function(t,e){return t.forEach(function(t,n){if(t&&s.get(0)+e>=0){var r=o.get(s.get(0)+e);r=r.set(s.get(1)+n,1),o=o.set(s.get(0)+e,r)}})}),d.nextAround(o)}};clearTimeout(d.fallInterval),d.fallInterval=setTimeout(o,void 0===e?l.speeds[n.get(\"speedRun\")-1]:e)},nextAround:function(t,e){clearTimeout(d.fallInterval),a.default.dispatch(c.default.lock(!0)),a.default.dispatch(c.default.matrix(t)),\"function\"==typeof e&&e();var n=a.default.getState().get(\"points\")+10+2*(a.default.getState().get(\"speedRun\")-1);return d.dispatchPoints(n),(0,u.isClear)(t)?void(f.music.clear&&f.music.clear()):(0,u.isOver)(t)?(f.music.gameover&&f.music.gameover(),void d.overStart()):void setTimeout(function(){a.default.dispatch(c.default.lock(!1)),a.default.dispatch(c.default.moveBlock({type:a.default.getState().get(\"next\")})),a.default.dispatch(c.default.nextBlock()),d.auto()},100)},focus:function(t){if(a.default.dispatch(c.default.focus(t)),!t)return void clearTimeout(d.fallInterval);var e=a.default.getState();!e.get(\"cur\")||e.get(\"reset\")||e.get(\"pause\")||d.auto()},pause:function(t){return a.default.dispatch(c.default.pause(t)),t?void clearTimeout(d.fallInterval):void d.auto()},clearLines:function t(e,n){var r=a.default.getState(),i=e;n.forEach(function(t){i=i.splice(t,1),i=i.unshift((0,o.List)(l.blankLine))}),a.default.dispatch(c.default.matrix(i)),a.default.dispatch(c.default.moveBlock({type:r.get(\"next\")})),a.default.dispatch(c.default.nextBlock()),d.auto(),a.default.dispatch(c.default.lock(!1));var t=r.get(\"clearLines\")+n.length;a.default.dispatch(c.default.clearLines(t));var u=a.default.getState().get(\"points\")+l.clearPoints[n.length-1];d.dispatchPoints(u);var s=Math.floor(t/l.eachLines),f=r.get(\"speedStart\")+s;f=f>6?6:f,a.default.dispatch(c.default.speedRun(f))},overStart:function(){clearTimeout(d.fallInterval),a.default.dispatch(c.default.lock(!0)),a.default.dispatch(c.default.reset(!0)),a.default.dispatch(c.default.pause(!1))},overEnd:function(){a.default.dispatch(c.default.matrix(l.blankMatrix)),a.default.dispatch(c.default.moveBlock({reset:!0})),a.default.dispatch(c.default.reset(!1)),a.default.dispatch(c.default.lock(!1)),a.default.dispatch(c.default.clearLines(0))},dispatchPoints:function(t){a.default.dispatch(c.default.points(t)),t>0&&t>a.default.getState().get(\"max\")&&a.default.dispatch(c.default.max(t))}};e.default=d},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function i(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:(0,b.getNextType)();return{type:E.NEXT_BLOCK,data:t}}function a(t){return{type:E.MOVE_BLOCK,data:t.reset===!0?null:new S.default(t)}}function u(t){return{type:E.SPEED_START,data:t}}function s(t){return{type:E.SPEED_RUN,data:t}}function c(t){return{type:E.START_LINES,data:t}}function l(t){return{type:E.MATRIX,data:t}}function f(t){return{type:E.LOCK,data:t}}function p(t){return{type:E.CLEAR_LINES,data:t}}function d(t){return{type:E.POINTS,data:t}}function h(t){return{type:E.MAX,data:t}}function v(t){return{type:E.RESET,data:t}}function m(t){return{type:E.DROP,data:t}}function y(t){return{type:E.PAUSE,data:t}}function g(t){return{type:E.MUSIC,data:t}}function _(t){return{type:E.FOCUS,data:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var b=n(220),w=n(213),E=o(w),C=n(222),S=r(C),x=n(249),P=r(x);e.default={nextBlock:i,moveBlock:a,speedStart:u,speedRun:s,startLines:c,matrix:l,lock:f,clearLines:p,points:d,reset:v,max:h,drop:m,pause:y,keyboard:P.default,music:g,focus:_}},function(t,e,n){\"use strict\";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function o(t){return{type:d.KEY_DROP,data:t}}function i(t){return{type:d.KEY_DOWN,data:t}}function a(t){return{type:d.KEY_LEFT,data:t}}function u(t){return{type:d.KEY_RIGHT,data:t}}function s(t){return{type:d.KEY_ROTATE,data:t}}function c(t){return{type:d.KEY_RESET,data:t}}function l(t){return{type:d.KEY_MUSIC,data:t}}function f(t){return{type:d.KEY_PAUSE,data:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var p=n(213),d=r(p);e.default={drop:o,down:i,left:a,right:u,rotate:s,reset:c,music:l,pause:f}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function i(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function a(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,\"__esModule\",{value:!0});var u=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=n(1),c=r(s),l=n(243),f=r(l),p=n(214),d=n(251),h=r(d),v=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return a(e,t),u(e,[{key:\"shouldComponentUpdate\",value:function(){return!1}},{key:\"render\",value:function(){return c.default.createElement(\"div\",{className:h.default.decorate},c.default.createElement(\"div\",{className:h.default.topBorder},c.default.createElement(\"span\",{className:(0,f.default)([\"l\",h.default.mr]),style:{width:40}}),c.default.createElement(\"span\",{className:(0,f.default)([\"l\",h.default.mr])}),c.default.createElement(\"span\",{className:(0,f.default)([\"l\",h.default.mr])}),c.default.createElement(\"span\",{className:(0,f.default)([\"l\",h.default.mr])}),c.default.createElement(\"span\",{className:(0,f.default)([\"l\",h.default.mr])}),c.default.createElement(\"span\",{className:(0,f.default)([\"r\",h.default.ml]),style:{width:40}}),c.default.createElement(\"span\",{className:(0,f.default)([\"r\",h.default.ml])}),c.default.createElement(\"span\",{className:(0,f.default)([\"r\",h.default.ml])}),c.default.createElement(\"span\",{className:(0,f.default)([\"r\",h.default.ml])}),c.default.createElement(\"span\",{className:(0,f.default)([\"r\",h.default.ml])})),c.default.createElement(\"h1\",null,p.i18n.title[p.lan]),c.default.createElement(\"div\",{className:h.default.view},c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"div\",{className:\"clear\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"div\",{className:\"clear\"}),c.default.createElement(\"em\",null),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"p\",null),c.default.createElement(\"em\",null),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"div\",{className:\"clear\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"div\",{className:\"clear\"}),c.default.createElement(\"em\",null),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"p\",null),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"p\",null),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"div\",{className:\"clear\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"div\",{className:\"clear\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"p\",null),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"div\",{className:\"clear\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"div\",{className:\"clear\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"p\",null),c.default.createElement(\"em\",null),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"div\",{className:\"clear\"}),c.default.createElement(\"em\",null),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"div\",{className:\"clear\"}),c.default.createElement(\"em\",null),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"div\",{className:\"clear\"}),c.default.createElement(\"em\",null),c.default.createElement(\"b\",{className:\"c\"})),c.default.createElement(\"div\",{className:(0,f.default)([h.default.view,h.default.l])},c.default.createElement(\"em\",null),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"div\",{className:\"clear\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"div\",{className:\"clear\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"p\",null),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"div\",{className:\"clear\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"div\",{className:\"clear\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"p\",null),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"p\",null),c.default.createElement(\"em\",null),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"div\",{className:\"clear\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"div\",{className:\"clear\"}),c.default.createElement(\"em\",null),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"p\",null),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"div\",{className:\"clear\"}),c.default.createElement(\"em\",null),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"div\",{className:\"clear\"}),c.default.createElement(\"em\",null),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"p\",null),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"div\",{className:\"clear\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"div\",{className:\"clear\"}),c.default.createElement(\"b\",{className:\"c\"}),c.default.createElement(\"div\",{className:\"clear\"}),c.default.createElement(\"b\",{className:\"c\"})))}}]),e}(c.default.Component);e.default=v},function(t,e){t.exports={decorate:\"_2OLA\",topBorder:\"DOXx\",mr:\"_1xND\",ml:\"_1cYd\",view:\"nVeA\",l:\"_395z\"}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function i(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function a(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,\"__esModule\",{value:!0});var u=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=n(1),c=r(s),l=n(243),f=r(l),p=n(174),d=r(p),h=n(253),v=r(h),m=function(t){return c.default.createElement(\"div\",{className:v.default.number},t.map(function(t,e){return c.default.createElement(\"span\",{className:(0,f.default)([\"bg\",v.default[\"s_\"+t]]),key:e})}))},y=function(t){return t<10?(\"0\"+t).split(\"\"):(\"\"+t).split(\"\")},g=function(t){function e(){o(this,e);var t=i(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return t.state={time_count:!1,time:new Date},t}return a(e,t),u(e,[{key:\"componentWillMount\",value:function(){var t=this;if(this.props.time){var n=function n(){var r=+e.timeInterval;e.timeInterval=setTimeout(function(){t.setState({time:new Date,time_count:r}),n()},1e3)};n()}}},{key:\"shouldComponentUpdate\",value:function(t){var n=t.number;return this.props.time?this.state.time_count!==e.time_count&&(this.state.time_count!==!1&&(e.time_count=this.state.time_count),!0):this.props.number!==n}},{key:\"componentWillUnmount\",value:function(){this.props.time&&clearTimeout(e.timeInterval)}},{key:\"render\",value:function(){if(this.props.time){var t=this.state.time,e=y(t.getHours()),n=y(t.getMinutes()),r=t.getSeconds()%2,o=e.concat(r?\"d\":\"d_c\",n);return m(o)}for(var i=(\"\"+this.props.number).split(\"\"),a=0,u=this.props.length-i.length;a<u;a++)i.unshift(\"n\");return m(i)}}]),e}(c.default.Component);e.default=g,g.statics={timeInterval:null,time_count:null},g.propTypes={number:d.default.number,length:d.default.number,time:d.default.bool},g.defaultProps={length:6}},function(t,e){t.exports={number:\"iHKP\",s_0:\"_2hru\",s_1:\"_2B-l\",s_2:\"ShGQ\",s_3:\"_2V1K\",s_4:\"_3bYF\",s_5:\"_1Z7B\",s_6:\"_1-BZ\",s_7:\"_3_id\",s_8:\"_3_Z_\",s_9:\"bNJM\",s_n:\"_2kln\",s_d:\"hOfM\",s_d_c:\"_2tuY\"}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function a(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function u(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,\"__esModule\",{value:!0});var s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),c=n(1),l=r(c),f=n(174),p=r(f),d=n(255),h=r(d),v=n(214),m={I:[1,0],L:[0,0],J:[0,0],Z:[0,0],S:[0,0],O:[0,1],T:[0,0]},y=[[0,0,0,0],[0,0,0,0]],g=function(t){function e(){i(this,e);var t=a(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return t.state={block:y},t}return u(e,t),s(e,[{key:\"componentWillMount\",value:function(){this.build(this.props.data)}},{key:\"componentWillReceiveProps\",value:function(t){this.build(t.data)}},{key:\"shouldComponentUpdate\",value:function(t){return t.data!==this.props.data}},{key:\"build\",value:function(t){var e=v.blockShape[t],n=y.map(function(t){return[].concat(o(t))});e.forEach(function(e,r){e.forEach(function(e,o){e&&(n[r+m[t][0]][o+m[t][1]]=1)})}),this.setState({block:n})}},{key:\"render\",value:function(){return l.default.createElement(\"div\",{className:h.default.next},this.state.block.map(function(t,e){return l.default.createElement(\"div\",{key:e},t.map(function(t,e){return l.default.createElement(\"b\",{className:t?\"c\":\"\",key:e})}))}))}}]),e}(l.default.Component);e.default=g,g.propTypes={data:p.default.string}},function(t,e){t.exports={next:\"_3Wmt\"}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function a(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function u(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,\"__esModule\",{value:!0});var s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),c=n(1),l=r(c),f=n(243),p=r(f),d=n(174),h=r(d),v=n(257),m=r(v),y=function(t){function e(){return i(this,e),a(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return u(e,t),s(e,[{key:\"shouldComponentUpdate\",value:function(t){var e=t.data;return e!==this.props.data}},{key:\"render\",value:function(){var t;return l.default.createElement(\"div\",{className:(0,p.default)((t={bg:!0},o(t,m.default.music,!0),o(t,m.default.c,!this.props.data),t))})}}]),e}(l.default.Component);e.default=y,y.propTypes={data:h.default.bool.isRequired}},function(t,e){t.exports={music:\"EHci\",c:\"TTF4\"}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function a(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function u(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,\"__esModule\",{value:!0});var s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),c=n(1),l=r(c),f=n(243),p=r(f),d=n(174),h=r(d),v=n(259),m=r(v),y=function(t){function e(){i(this,e);var t=a(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return t.state={showPause:!1},t}return u(e,t),s(e,[{key:\"componentDidMount\",value:function(){this.setShake(this.props.data)}},{key:\"componentWillReceiveProps\",value:function(t){var e=t.data;this.setShake(e)}},{key:\"shouldComponentUpdate\",value:function(t){var e=t.data;return!!e||e!==this.props.data}},{key:\"setShake\",value:function(t){var n=this;t&&!e.timeout&&(e.timeout=setInterval(function(){n.setState({showPause:!n.state.showPause})},250)),!t&&e.timeout&&(clearInterval(e.timeout),this.setState({showPause:!1}),e.timeout=null)}},{key:\"render\",value:function(){var t;return l.default.createElement(\"div\",{className:(0,p.default)((t={bg:!0},o(t,m.default.pause,!0),o(t,m.default.c,this.state.showPause),t))})}}]),e}(l.default.Component);e.default=y,y.statics={timeout:null},y.propTypes={data:h.default.bool.isRequired},y.defaultProps={data:!1}},function(t,e){t.exports={pause:\"_37mu\",c:\"_1vhq\"}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function i(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function a(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,\"__esModule\",{value:!0});var u=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=n(1),c=r(s),l=n(174),f=r(l),p=n(252),d=r(p),h=n(214),v=h.i18n.point[h.lan],m=h.i18n.highestScore[h.lan],y=h.i18n.lastRound[h.lan],g=function(t){function e(){o(this,e);var t=i(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return t.state={label:\"\",number:0},t}return a(e,t),u(e,[{key:\"componentWillMount\",value:function(){this.onChange(this.props)}},{key:\"componentWillReceiveProps\",value:function(t){this.onChange(t)}},{key:\"shouldComponentUpdate\",value:function(t){var e=t.cur,n=t.point,r=t.max,o=this.props;return e!==o.cur||n!==o.point||r!==o.max||!o.cur}},{key:\"onChange\",value:function(t){var n=this,r=t.cur,o=t.point,i=t.max;if(clearInterval(e.timeout),r)this.setState({label:o>=i?m:v,number:o});else{var a=function t(){n.setState({label:y,number:o}),e.timeout=setTimeout(function(){n.setState({label:m,number:i}),e.timeout=setTimeout(t,3e3)},3e3)};0!==o?a():this.setState({label:m,number:i})}}},{key:\"render\",value:function(){return c.default.createElement(\"div\",null,c.default.createElement(\"p\",null,this.state.label),c.default.createElement(d.default,{number:this.state.number}))}}]),e}(c.default.Component);e.default=g,g.statics={timeout:null},g.propTypes={cur:f.default.bool,max:f.default.number.isRequired,point:f.default.number.isRequired}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function a(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function u(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,\"__esModule\",{value:!0});var s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),c=n(1),l=r(c),f=n(243),p=r(f),d=n(174),h=r(d),v=n(262),m=r(v),y=n(214),g=function(t){function e(){i(this,e);var t=a(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return t.state={style:m.default.r1,display:\"none\"},t}return u(e,t),s(e,[{key:\"componentWillMount\",value:function(){this.animate(this.props)}},{key:\"componentWillReceiveProps\",value:function(t){([this.props.cur,t.cur].indexOf(!1)!==-1&&this.props.cur!==t.cur||this.props.reset!==t.reset)&&this.animate(t)}},{key:\"shouldComponentUpdate\",value:function(t){var e=t.cur,n=t.reset;return e!==this.props.cur||n!==this.props.reset||!e}},{key:\"animate\",value:function(t){var n=this,r=t.cur,o=t.reset;if(clearTimeout(e.timeout),this.setState({style:m.default.r1,display:\"none\"}),r||o)return void this.setState({display:\"none\"});var i=\"r\",a=0,u=function(t,n){t&&(e.timeout=setTimeout(t,n))},s=function(t){u(function(){n.setState({display:\"block\"}),t&&t()},150)},c=function(t){u(function(){n.setState({display:\"none\"}),t&&t()},150)},l=function(t,e,r){u(function(){n.setState({style:m.default[i+2]}),u(function(){n.setState({style:m.default[i+1]}),t&&t()},r)},e)},f=function t(e){u(function(){n.setState({style:m.default[i+4]}),u(function(){return n.setState({style:m.default[i+3]}),a++,10!==a&&20!==a&&30!==a||(i=\"r\"===i?\"l\":\"r\"),a<40?void t(e):(n.setState({style:m.default[i+1]}),void(e&&u(e,4e3)))},100)},100)},p=function t(){a=0,l(function(){l(function(){l(function(){n.setState({style:m.default[i+2]}),f(t)},150,150)},150,150)},1e3,1500)};s(function(){c(function(){s(function(){c(function(){s(function(){p()})})})})})}},{key:\"render\",value:function(){var t;return this.props.cur?null:l.default.createElement(\"div\",{className:m.default.logo,style:{display:this.state.display}},l.default.createElement(\"div\",{className:(0,p.default)((t={bg:!0},o(t,m.default.dragon,!0),o(t,this.state.style,!0),t))}),l.default.createElement(\"p\",{dangerouslySetInnerHTML:{__html:y.i18n.titleCenter[y.lan]}}))}}]),e}(l.default.Component);e.default=g,g.propTypes={cur:h.default.bool,reset:h.default.bool.isRequired},g.statics={timeout:null}},function(t,e){t.exports={logo:\"_20Jp\",dragon:\"AFTs\",r1:\"_3j_b\",l1:\"_26pe\",r2:\"_1Fxd\",l2:\"_7ELJ\",r3:\"_9lMe\",l3:\"_1JBw\",r4:\"_3aQ-\",l4:\"_2aGx\"}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function i(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function a(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,\"__esModule\",{value:!0});var u=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=n(1),c=r(s),l=n(207),f=r(l),p=n(174),d=r(p),h=n(264),v=r(h),m=n(265),y=r(m),g=n(203),_=r(g),b=n(267),w=r(b),E=n(214),C=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return a(e,t),u(e,[{key:\"componentDidMount\",value:function(){var t=this,e={},n={};document.addEventListener(\"touchstart\",function(t){t.preventDefault&&t.preventDefault()},!0),document.addEventListener(\"touchend\",function(t){t.preventDefault&&t.preventDefault()},!0),document.addEventListener(\"gesturestart\",function(t){t.preventDefault&&event.preventDefault()}),document.addEventListener(\"mousedown\",function(t){t.preventDefault&&t.preventDefault();\n},!0),Object.keys(w.default).forEach(function(r){t[\"dom_\"+r].dom.addEventListener(\"mousedown\",function(){e[r]!==!0&&(w.default[r].down(_.default),n[r]=!0)},!0),t[\"dom_\"+r].dom.addEventListener(\"mouseup\",function(){return e[r]===!0?void(e[r]=!1):(w.default[r].up(_.default),void(n[r]=!1))},!0),t[\"dom_\"+r].dom.addEventListener(\"mouseout\",function(){n[r]===!0&&w.default[r].up(_.default)},!0),t[\"dom_\"+r].dom.addEventListener(\"touchstart\",function(){e[r]=!0,w.default[r].down(_.default)},!0),t[\"dom_\"+r].dom.addEventListener(\"touchend\",function(){w.default[r].up(_.default)},!0)})}},{key:\"shouldComponentUpdate\",value:function(t){var e=t.keyboard,n=t.filling;return!f.default.is(e,this.props.keyboard)||n!==this.props.filling}},{key:\"render\",value:function(){var t=this,e=this.props.keyboard;return c.default.createElement(\"div\",{className:v.default.keyboard,style:{marginTop:20+this.props.filling}},c.default.createElement(y.default,{color:\"blue\",size:\"s1\",top:0,left:374,label:E.i18n.rotation[E.lan],arrow:\"translate(0, 63px)\",position:!0,active:e.get(\"rotate\"),ref:function(e){t.dom_rotate=e}}),c.default.createElement(y.default,{color:\"blue\",size:\"s1\",top:180,left:374,label:E.i18n.down[E.lan],arrow:\"translate(0,-71px) rotate(180deg)\",active:e.get(\"down\"),ref:function(e){t.dom_down=e}}),c.default.createElement(y.default,{color:\"blue\",size:\"s1\",top:90,left:284,label:E.i18n.left[E.lan],arrow:\"translate(60px, -12px) rotate(270deg)\",active:e.get(\"left\"),ref:function(e){t.dom_left=e}}),c.default.createElement(y.default,{color:\"blue\",size:\"s1\",top:90,left:464,label:E.i18n.right[E.lan],arrow:\"translate(-60px, -12px) rotate(90deg)\",active:e.get(\"right\"),ref:function(e){t.dom_right=e}}),c.default.createElement(y.default,{color:\"blue\",size:\"s0\",top:100,left:52,label:E.i18n.drop[E.lan]+\" (SPACE)\",active:e.get(\"drop\"),ref:function(e){t.dom_space=e}}),c.default.createElement(y.default,{color:\"red\",size:\"s2\",top:0,left:196,label:E.i18n.reset[E.lan]+\"(R)\",active:e.get(\"reset\"),ref:function(e){t.dom_r=e}}),c.default.createElement(y.default,{color:\"green\",size:\"s2\",top:0,left:106,label:E.i18n.sound[E.lan]+\"(S)\",active:e.get(\"music\"),ref:function(e){t.dom_s=e}}),c.default.createElement(y.default,{color:\"green\",size:\"s2\",top:0,left:16,label:E.i18n.pause[E.lan]+\"(P)\",active:e.get(\"pause\"),ref:function(e){t.dom_p=e}}))}}]),e}(c.default.Component);e.default=C,C.propTypes={filling:d.default.number.isRequired,keyboard:d.default.object.isRequired}},function(t,e){t.exports={keyboard:\"J9SA\"}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function a(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function u(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,\"__esModule\",{value:!0});var s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),c=n(1),l=r(c),f=n(243),p=r(f),d=n(174),h=r(d),v=n(266),m=r(v),y=n(214),g=function(t){function e(){return i(this,e),a(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return u(e,t),s(e,[{key:\"shouldComponentUpdate\",value:function(t){return t.active!==this.props.active}},{key:\"render\",value:function(){var t,e=this,n=this.props,r=n.active,i=n.color,a=n.size,u=n.top,s=n.left,c=n.label,f=n.position,d=n.arrow;return l.default.createElement(\"div\",{className:(0,p.default)((t={},o(t,m.default.button,!0),o(t,m.default[i],!0),o(t,m.default[a],!0),t)),style:{top:u,left:s}},l.default.createElement(\"i\",{className:(0,p.default)(o({},m.default.active,r)),ref:function(t){e.dom=t}}),\"s1\"===a&&l.default.createElement(\"em\",{style:o({},y.transform,d+\" scale(1,2)\")}),l.default.createElement(\"span\",{className:(0,p.default)(o({},m.default.position,f))},c))}}]),e}(l.default.Component);e.default=g,g.propTypes={color:h.default.string.isRequired,size:h.default.string.isRequired,top:h.default.number.isRequired,left:h.default.number.isRequired,label:h.default.string.isRequired,position:h.default.bool,arrow:h.default.string,active:h.default.bool.isRequired}},function(t,e){t.exports={button:\"_1pg0\",s2:\"oW6K\",position:\"_1zCL\",active:\"_23aw\",blue:\"_23pZ\",green:\"RBZg\",red:\"_3kg_\",s0:\"p4fG\",s1:\"_2TvZ\"}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(268),i=r(o),a=n(270),u=r(a),s=n(271),c=r(s),l=n(272),f=r(l),p=n(273),d=r(p),h=n(274),v=r(h),m=n(275),y=r(m),g=n(276),_=r(g);e.default={left:i.default,down:c.default,rotate:f.default,right:u.default,space:d.default,r:y.default,p:_.default,s:v.default}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(220),i=n(269),a=r(i),u=n(248),s=r(u),c=n(247),l=r(c),f=n(214),p=n(217),d=function(t){t.dispatch(s.default.keyboard.left(!0)),a.default.down({key:\"left\",begin:200,interval:100,callback:function(){var e=t.getState();if(!e.get(\"lock\")){p.music.move&&p.music.move();var n=e.get(\"cur\");if(null!==n){if(e.get(\"pause\"))return void l.default.pause(!1);var r=n.left(),i=f.delays[e.get(\"speedRun\")-1],a=void 0;(0,o.want)(r,e.get(\"matrix\"))?(r.timeStamp+=parseInt(i,10),t.dispatch(s.default.moveBlock(r)),a=r.timeStamp):(n.timeStamp+=parseInt(parseInt(i,10)/1.5,10),t.dispatch(s.default.moveBlock(n)),a=n.timeStamp);var u=f.speeds[e.get(\"speedRun\")-1]-(Date.now()-a);l.default.auto(u)}else{var c=e.get(\"speedStart\");c=c-1<1?6:c-1,t.dispatch(s.default.speedStart(c))}}}})},h=function(t){t.dispatch(s.default.keyboard.left(!1)),a.default.up({key:\"left\"})};e.default={down:d,up:h}},function(t,e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var n={},r=function(t){var e=Object.keys(n);if(e.forEach(function(t){clearTimeout(n[t]),n[t]=null}),t.callback){var r=function(){clearTimeout(n[t.key])};if(t.callback(r),t.once!==!0){var o=t.begin||100,i=t.interval||50,a=function e(){n[t.key]=setTimeout(function(){o=null,e(),t.callback(r)},o||i)};a()}}},o=function(t){clearTimeout(n[t.key]),n[t.key]=null,t.callback&&t.callback()},i=function(){var t=Object.keys(n);t.forEach(function(t){clearTimeout(n[t]),n[t]=null})};e.default={down:r,up:o,clearAll:i}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(220),i=n(269),a=r(i),u=n(248),s=r(u),c=n(247),l=r(c),f=n(214),p=n(217),d=function(t){t.dispatch(s.default.keyboard.right(!0)),a.default.down({key:\"right\",begin:200,interval:100,callback:function(){var e=t.getState();if(!e.get(\"lock\")){p.music.move&&p.music.move();var n=e.get(\"cur\");if(null!==n){if(e.get(\"pause\"))return void l.default.pause(!1);var r=n.right(),i=f.delays[e.get(\"speedRun\")-1],a=void 0;(0,o.want)(r,e.get(\"matrix\"))?(r.timeStamp+=parseInt(i,10),t.dispatch(s.default.moveBlock(r)),a=r.timeStamp):(n.timeStamp+=parseInt(parseInt(i,10)/1.5,10),t.dispatch(s.default.moveBlock(n)),a=n.timeStamp);var u=f.speeds[e.get(\"speedRun\")-1]-(Date.now()-a);l.default.auto(u)}else{var c=e.get(\"speedStart\");c=c+1>6?1:c+1,t.dispatch(s.default.speedStart(c))}}}})},h=function(t){t.dispatch(s.default.keyboard.right(!1)),a.default.up({key:\"right\"})};e.default={down:d,up:h}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(220),i=n(269),a=r(i),u=n(248),s=r(u),c=n(247),l=r(c),f=n(217),p=function(t){t.dispatch(s.default.keyboard.down(!0)),null!==t.getState().get(\"cur\")?a.default.down({key:\"down\",begin:40,interval:40,callback:function(e){var n=t.getState();if(!n.get(\"lock\")){f.music.move&&f.music.move();var r=n.get(\"cur\");if(null!==r){if(n.get(\"pause\"))return void l.default.pause(!1);var i=r.fall();if((0,o.want)(i,n.get(\"matrix\")))t.dispatch(s.default.moveBlock(i)),l.default.auto();else{var a=n.get(\"matrix\"),u=r.shape,c=r.xy;u.forEach(function(t,e){return t.forEach(function(t,n){if(t&&c.get(0)+e>=0){var r=a.get(c.get(0)+e);r=r.set(c.get(1)+n,1),a=a.set(c.get(0)+e,r)}})}),l.default.nextAround(a,e)}}}}}):a.default.down({key:\"down\",begin:200,interval:100,callback:function(){if(!t.getState().get(\"lock\")){var e=t.getState(),n=e.get(\"cur\");if(!n){f.music.move&&f.music.move();var r=e.get(\"startLines\");r=r-1<0?10:r-1,t.dispatch(s.default.startLines(r))}}}})},d=function(t){t.dispatch(s.default.keyboard.down(!1)),a.default.up({key:\"down\"})};e.default={down:p,up:d}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(220),i=n(269),a=r(i),u=n(248),s=r(u),c=n(247),l=r(c),f=n(217),p=function(t){t.dispatch(s.default.keyboard.rotate(!0)),null!==t.getState().get(\"cur\")?a.default.down({key:\"rotate\",once:!0,callback:function(){var e=t.getState();if(!e.get(\"lock\")){e.get(\"pause\")&&l.default.pause(!1);var n=e.get(\"cur\");if(null!==n){f.music.rotate&&f.music.rotate();var r=n.rotate();(0,o.want)(r,e.get(\"matrix\"))&&t.dispatch(s.default.moveBlock(r))}}}}):a.default.down({key:\"rotate\",begin:200,interval:100,callback:function(){if(!t.getState().get(\"lock\")){f.music.move&&f.music.move();var e=t.getState(),n=e.get(\"cur\");if(!n){var r=e.get(\"startLines\");r=r+1>10?0:r+1,t.dispatch(s.default.startLines(r))}}}})},d=function(t){t.dispatch(s.default.keyboard.rotate(!1)),a.default.up({key:\"rotate\"})};e.default={down:p,up:d}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(220),i=n(269),a=r(i),u=n(248),s=r(u),c=n(247),l=r(c),f=n(217),p=function(t){t.dispatch(s.default.keyboard.drop(!0)),a.default.down({key:\"space\",once:!0,callback:function(){var e=t.getState();if(!e.get(\"lock\")){var n=e.get(\"cur\");if(null!==n){if(e.get(\"pause\"))return void l.default.pause(!1);f.music.fall&&f.music.fall();for(var r=0,i=n.fall(r);(0,o.want)(i,e.get(\"matrix\"));)i=n.fall(r),r++;var a=e.get(\"matrix\");i=n.fall(r-2),t.dispatch(s.default.moveBlock(i));var u=i.shape,c=i.xy;u.forEach(function(t,e){return t.forEach(function(t,n){if(t&&c[0]+e>=0){var r=a.get(c[0]+e);r=r.set(c[1]+n,1),a=a.set(c[0]+e,r)}})}),t.dispatch(s.default.drop(!0)),setTimeout(function(){t.dispatch(s.default.drop(!1))},100),l.default.nextAround(a)}else l.default.start()}}})},d=function(t){t.dispatch(s.default.keyboard.drop(!1)),a.default.up({key:\"space\"})};e.default={down:p,up:d}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(269),i=r(o),a=n(248),u=r(a),s=function(t){t.dispatch(u.default.keyboard.music(!0)),t.getState().get(\"lock\")||i.default.down({key:\"s\",once:!0,callback:function(){t.getState().get(\"lock\")||t.dispatch(u.default.music(!t.getState().get(\"music\")))}})},c=function(t){t.dispatch(u.default.keyboard.music(!1)),i.default.up({key:\"s\"})};e.default={down:s,up:c}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(269),i=r(o),a=n(247),u=r(a),s=n(248),c=r(s),l=function(t){t.dispatch(c.default.keyboard.reset(!0)),t.getState().get(\"lock\")||(null!==t.getState().get(\"cur\")?i.default.down({key:\"r\",once:!0,callback:function(){u.default.overStart()}}):i.default.down({key:\"r\",once:!0,callback:function(){t.getState().get(\"lock\")||u.default.start()}}))},f=function(t){t.dispatch(c.default.keyboard.reset(!1)),i.default.up({key:\"r\"})};e.default={down:l,up:f}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(269),i=r(o),a=n(247),u=r(a),s=n(248),c=r(s),l=function(t){t.dispatch(c.default.keyboard.pause(!0)),i.default.down({key:\"p\",once:!0,callback:function(){var e=t.getState();if(!e.get(\"lock\")){var n=e.get(\"cur\"),r=e.get(\"pause\");null!==n?u.default.pause(!r):u.default.start()}}})},f=function(t){t.dispatch(c.default.keyboard.pause(!1)),i.default.up({key:\"p\"})};e.default={down:l,up:f}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function a(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function u(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,\"__esModule\",{value:!0});var s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),c=n(1),l=r(c),f=n(278),p=r(f),d=n(312),h=r(d),v=n(214),m=n(220),y=function(t){function e(){i(this,e);var t=a(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return t.state={isMobile:(0,m.isMobile)(),QRCode:\"\"},t}return u(e,t),s(e,[{key:\"componentWillMount\",value:function(){var t=this;this.state.isMobile||p.default.toDataURL(location.href,{margin:1}).then(function(e){return t.setState({QRCode:e})})}},{key:\"shouldComponentUpdate\",value:function(t){return t.QRCode!==this.state.QRCode}},{key:\"render\",value:function(){var t,e;return this.state.isMobile?null:l.default.createElement(\"div\",{style:{display:this.state.isMobile?\"none\":\"block\"}},l.default.createElement(\"div\",{className:h.default.guide+\" \"+h.default.right},l.default.createElement(\"div\",{className:h.default.up},l.default.createElement(\"em\",{style:o({},v.transform,\"translate(0,-3px) scale(1,2)\")})),l.default.createElement(\"div\",{className:h.default.left},l.default.createElement(\"em\",{style:o({},v.transform,\"translate(-7px,3px) rotate(-90deg) scale(1,2)\")})),l.default.createElement(\"div\",{className:h.default.down},l.default.createElement(\"em\",{style:o({},v.transform,\"translate(0,9px) rotate(180deg) scale(1,2)\")})),l.default.createElement(\"div\",{className:h.default.right},l.default.createElement(\"em\",{style:o({},v.transform,\"translate(7px,3px)rotate(90deg) scale(1,2)\")}))),l.default.createElement(\"div\",{className:h.default.guide+\" \"+h.default.left},l.default.createElement(\"p\",null,l.default.createElement(\"a\",{href:\"https://github.com/chvin/react-tetris\",rel:\"noopener noreferrer\",target:\"_blank\",title:v.i18n.linkTitle[v.lan]},v.i18n.github[v.lan]+\":\"),l.default.createElement(\"br\",null),l.default.createElement(\"iframe\",{src:\"https://ghbtns.com/github-btn.html?user=chvin&repo=react-tetris&type=star&count=true\",frameBorder:\"0\",scrolling:\"0\",width:\"170px\",height:\"20px\",style:(t={},o(t,v.transform,\"scale(1.68)\"),o(t,v.transform+\"Origin\",\"center left\"),t)}),l.default.createElement(\"br\",null),l.default.createElement(\"iframe\",{src:\"https://ghbtns.com/github-btn.html?user=chvin&repo=react-tetris&type=fork&count=true\",frameBorder:\"0\",scrolling:\"0\",width:\"170px\",height:\"20px\",style:(e={},o(e,v.transform,\"scale(1.68)\"),o(e,v.transform+\"Origin\",\"center left\"),e)})),l.default.createElement(\"div\",{className:h.default.space},\"SPACE\")),\"\"!==this.state.QRCode?l.default.createElement(\"div\",{className:h.default.guide+\" \"+h.default.qr},l.default.createElement(\"img\",{src:this.state.QRCode,alt:v.i18n.QRCode[v.lan]})):null)}}]),e}(l.default.Component);e.default=y},function(t,e,n){function r(t,e,n,r,a){var u=[].slice.call(arguments,1),s=u.length,c=\"function\"==typeof u[s-1];if(!c&&!o())throw new Error(\"Callback required as last argument\");if(!c){if(s<1)throw new Error(\"Too few arguments provided\");return 1===s?(n=e,e=r=void 0):2!==s||e.getContext||(r=n,n=e,e=void 0),new Promise(function(o,a){try{var u=i.create(n,r);o(t(u,e,r))}catch(t){a(t)}})}if(s<2)throw new Error(\"Too few arguments provided\");2===s?(a=n,n=e,e=r=void 0):3===s&&(e.getContext&&\"undefined\"==typeof a?(a=r,r=void 0):(a=r,r=n,n=e,e=void 0));try{var l=i.create(n,r);a(null,t(l,e,r))}catch(t){a(t)}}var o=n(279),i=n(280),a=n(309),u=n(311);e.create=i.create,e.toCanvas=r.bind(null,a.render),e.toDataURL=r.bind(null,a.renderToDataURL),e.toString=r.bind(null,function(t,e,n){return u.render(t,n)})},function(t,e){t.exports=function(){return\"function\"==typeof Promise&&Promise.prototype&&Promise.prototype.then}},function(t,e,n){function r(t,e){for(var n=t.size,r=g.getPositions(e),o=0;o<r.length;o++)for(var i=r[o][0],a=r[o][1],u=-1;u<=7;u++)if(!(i+u<=-1||n<=i+u))for(var s=-1;s<=7;s++)a+s<=-1||n<=a+s||(u>=0&&u<=6&&(0===s||6===s)||s>=0&&s<=6&&(0===u||6===u)||u>=2&&u<=4&&s>=2&&s<=4?t.set(i+u,a+s,!0,!0):t.set(i+u,a+s,!1,!0))}function o(t){for(var e=t.size,n=8;n<e-8;n++){var r=n%2===0;t.set(n,6,r,!0),t.set(6,n,r,!0)}}function i(t,e){for(var n=y.getPositions(e),r=0;r<n.length;r++)for(var o=n[r][0],i=n[r][1],a=-2;a<=2;a++)for(var u=-2;u<=2;u++)a===-2||2===a||u===-2||2===u||0===a&&0===u?t.set(o+a,i+u,!0,!0):t.set(o+a,i+u,!1,!0)}function a(t,e){for(var n,r,o,i=t.size,a=E.getEncodedBits(e),u=0;u<18;u++)n=Math.floor(u/3),r=u%3+i-8-3,o=1===(a>>u&1),t.set(n,r,o,!0),t.set(r,n,o,!0)}function u(t,e,n){var r,o,i=t.size,a=C.getEncodedBits(e,n);for(r=0;r<15;r++)o=1===(a>>r&1),r<6?t.set(r,8,o,!0):r<8?t.set(r+1,8,o,!0):t.set(i-15+r,8,o,!0),r<8?t.set(8,i-r-1,o,!0):r<9?t.set(8,15-r-1+1,o,!0):t.set(8,15-r-1,o,!0);t.set(i-8,8,1,!0)}function s(t,e){for(var n=t.size,r=-1,o=n-1,i=7,a=0,u=n-1;u>0;u-=2)for(6===u&&u--;;){for(var s=0;s<2;s++)if(!t.isReserved(o,u-s)){var c=!1;a<e.length&&(c=1===(e[a]>>>i&1)),t.set(o,u-s,c),i--,i===-1&&(a++,i=7)}if(o+=r,o<0||n<=o){o-=r,r=-r;break}}}function c(t,e,n){var r=new v;n.forEach(function(e){r.put(e.mode.bit,4),r.put(e.getLength(),S.getCharCountIndicator(e.mode,t)),e.write(r)});var o=d.getSymbolTotalCodewords(t),i=b.getTotalCodewordsCount(t,e),a=8*(o-i);for(r.getLengthInBits()+4<=a&&r.put(0,4);r.getLengthInBits()%8!==0;)r.putBit(0);for(var u=(a-r.getLengthInBits())/8,s=0;s<u;s++)r.put(s%2?17:236,8);return l(r,t,e)}function l(t,e,n){for(var r=d.getSymbolTotalCodewords(e),o=b.getTotalCodewordsCount(e,n),i=r-o,a=b.getBlocksCount(e,n),u=r%a,s=a-u,c=Math.floor(r/a),l=Math.floor(i/a),f=l+1,h=c-l,v=new w(h),m=0,y=new Array(a),g=new Array(a),_=0,E=new p(t.buffer),C=0;C<a;C++){var S=C<s?l:f;y[C]=E.slice(m,m+S),g[C]=v.encode(y[C]),m+=S,_=Math.max(_,S)}var x,P,T=new p(r),O=0;for(x=0;x<_;x++)for(P=0;P<a;P++)x<y[P].length&&(T[O++]=y[P][x]);for(x=0;x<h;x++)for(P=0;P<a;P++)T[O++]=g[P][x];return T}function f(t,e,n,l){var f;if(P(t))f=x.fromArray(t);else{if(\"string\"!=typeof t)throw new Error(\"Invalid data\");var p=e;if(!p){var h=x.rawSplit(t);p=E.getBestVersionForData(h,n)}f=x.fromString(t,p||40)}var v=E.getBestVersionForData(f,n);if(!v)throw new Error(\"The amount of data is too big to be stored in a QR Code\");if(e){if(e<v)throw new Error(\"\\nThe chosen QR Code version cannot contain this amount of data.\\nMinimum version required to store current data is: \"+v+\".\\n\")}else e=v;var y=c(e,n,f),g=d.getSymbolSize(e),b=new m(g);return r(b,e),o(b),i(b,e),u(b,n,0),e>=7&&a(b,e),s(b,y),isNaN(l)&&(l=_.getBestMask(b,u.bind(null,b,n))),_.applyMask(l,b),u(b,n,l),{modules:b,version:e,errorCorrectionLevel:n,maskPattern:l,segments:f}}var p=n(281),d=n(287),h=n(288),v=n(289),m=n(290),y=n(291),g=n(292),_=n(293),b=n(294),w=n(295),E=n(298),C=n(302),S=n(299),x=n(303),P=n(286);e.create=function(t,e){if(\"undefined\"==typeof t||\"\"===t)throw new Error(\"No input text\");var n,r,o=h.M;return\"undefined\"!=typeof e&&(o=h.from(e.errorCorrectionLevel,h.M),n=E.from(e.version),r=_.from(e.maskPattern),e.toSJISFunc&&d.setToSJISFunction(e.toSJISFunc)),f(t,n,o,r)}},function(t,e,n){(function(e){\"use strict\";function r(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()}catch(t){return!1}}function e(t,n,r){return e.TYPED_ARRAY_SUPPORT||this instanceof e?\"number\"==typeof t?u(this,t):m(this,t,n,r):new e(t,n,r)}function o(t){if(t>=g)throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+g.toString(16)+\" bytes\");return 0|t}function i(t){return t!==t}function a(t,n){var r;return e.TYPED_ARRAY_SUPPORT?(r=new Uint8Array(n),r.__proto__=e.prototype):(r=t,null===r&&(r=new e(n)),r.length=n),r}function u(t,n){var r=a(t,n<0?0:0|o(n));if(!e.TYPED_ARRAY_SUPPORT)for(var i=0;i<n;++i)r[i]=0;return r}function s(t,e){var n=0|d(e),r=a(t,n),o=r.write(e);return o!==n&&(r=r.slice(0,o)),r}function c(t,e){for(var n=e.length<0?0:0|o(e.length),r=a(t,n),i=0;i<n;i+=1)r[i]=255&e[i];return r}function l(t,n,r,o){if(r<0||n.byteLength<r)throw new RangeError(\"'offset' is out of bounds\");if(n.byteLength<r+(o||0))throw new RangeError(\"'length' is out of bounds\");var i;return i=void 0===r&&void 0===o?new Uint8Array(n):void 0===o?new Uint8Array(n,r):new Uint8Array(n,r,o),e.TYPED_ARRAY_SUPPORT?i.__proto__=e.prototype:i=c(t,i),i}function f(t,n){if(e.isBuffer(n)){var r=0|o(n.length),u=a(t,r);return 0===u.length?u:(n.copy(u,0,0,r),u)}if(n){if(\"undefined\"!=typeof ArrayBuffer&&n.buffer instanceof ArrayBuffer||\"length\"in n)return\"number\"!=typeof n.length||i(n.length)?a(t,0):c(t,n);if(\"Buffer\"===n.type&&Array.isArray(n.data))return c(t,n.data)}throw new TypeError(\"First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.\")}function p(t,e){e=e||1/0;for(var n,r=t.length,o=null,i=[],a=0;a<r;++a){if(n=t.charCodeAt(a),n>55295&&n<57344){if(!o){if(n>56319){(e-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(e-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(e-=3)>-1&&i.push(239,191,189),o=n;continue}n=(o-55296<<10|n-56320)+65536}else o&&(e-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((e-=1)<0)break;i.push(n)}else if(n<2048){if((e-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((e-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error(\"Invalid code point\");if((e-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function d(t){if(e.isBuffer(t))return t.length;if(\"undefined\"!=typeof ArrayBuffer&&\"function\"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;\"string\"!=typeof t&&(t=\"\"+t);var n=t.length;return 0===n?0:p(t).length}function h(t,e,n,r){for(var o=0;o<r&&!(o+n>=e.length||o>=t.length);++o)e[o+n]=t[o];return o}function v(t,e,n,r){return h(p(e,t.length-n),t,n,r)}function m(t,e,n,r){if(\"number\"==typeof e)throw new TypeError('\"value\" argument must not be a number');return\"undefined\"!=typeof ArrayBuffer&&e instanceof ArrayBuffer?l(t,e,n,r):\"string\"==typeof e?s(t,e,n):f(t,e)}var y=n(286);e.TYPED_ARRAY_SUPPORT=r();var g=e.TYPED_ARRAY_SUPPORT?2147483647:1073741823;e.TYPED_ARRAY_SUPPORT&&(e.prototype.__proto__=Uint8Array.prototype,e.__proto__=Uint8Array,\"undefined\"!=typeof Symbol&&Symbol.species&&e[Symbol.species]===e&&Object.defineProperty(e,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1})),e.prototype.write=function(t,e,n){void 0===e?(n=this.length,e=0):void 0===n&&\"string\"==typeof e?(n=this.length,e=0):isFinite(e)&&(e|=0,isFinite(n)?n|=0:n=void 0);var r=this.length-e;if((void 0===n||n>r)&&(n=r),t.length>0&&(n<0||e<0)||e>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");return v(this,t,e,n)},e.prototype.slice=function(t,n){var r=this.length;t=~~t,n=void 0===n?r:~~n,t<0?(t+=r,t<0&&(t=0)):t>r&&(t=r),n<0?(n+=r,n<0&&(n=0)):n>r&&(n=r),n<t&&(n=t);var o;if(e.TYPED_ARRAY_SUPPORT)o=this.subarray(t,n),o.__proto__=e.prototype;else{var i=n-t;o=new e(i,void 0);for(var a=0;a<i;++a)o[a]=this[a+t]}return o},e.prototype.copy=function(t,n,r,o){if(r||(r=0),o||0===o||(o=this.length),n>=t.length&&(n=t.length),n||(n=0),o>0&&o<r&&(o=r),o===r)return 0;if(0===t.length||0===this.length)return 0;if(n<0)throw new RangeError(\"targetStart out of bounds\");if(r<0||r>=this.length)throw new RangeError(\"sourceStart out of bounds\");if(o<0)throw new RangeError(\"sourceEnd out of bounds\");o>this.length&&(o=this.length),t.length-n<o-r&&(o=t.length-n+r);var i,a=o-r;if(this===t&&r<n&&n<o)for(i=a-1;i>=0;--i)t[i+n]=this[i+r];else if(a<1e3||!e.TYPED_ARRAY_SUPPORT)for(i=0;i<a;++i)t[i+n]=this[i+r];else Uint8Array.prototype.set.call(t,this.subarray(r,r+a),n);return a},e.prototype.fill=function(t,n,r){if(\"string\"==typeof t){if(\"string\"==typeof n?(n=0,r=this.length):\"string\"==typeof r&&(r=this.length),1===t.length){var o=t.charCodeAt(0);o<256&&(t=o)}}else\"number\"==typeof t&&(t&=255);if(n<0||this.length<n||this.length<r)throw new RangeError(\"Out of range index\");if(r<=n)return this;n>>>=0,r=void 0===r?this.length:r>>>0,t||(t=0);var i;if(\"number\"==typeof t)for(i=n;i<r;++i)this[i]=t;else{var a=e.isBuffer(t)?t:new e(t),u=a.length;for(i=0;i<r-n;++i)this[i+n]=a[i%u]}return this},e.concat=function(t,n){if(!y(t))throw new TypeError('\"list\" argument must be an Array of Buffers');if(0===t.length)return a(null,0);var r;if(void 0===n)for(n=0,r=0;r<t.length;++r)n+=t[r].length;var o=u(null,n),i=0;for(r=0;r<t.length;++r){var s=t[r];if(!e.isBuffer(s))throw new TypeError('\"list\" argument must be an Array of Buffers');s.copy(o,i),i+=s.length}return o},e.byteLength=d,e.prototype._isBuffer=!0,e.isBuffer=function(t){return!(null==t||!t._isBuffer)},t.exports=e}).call(e,n(282).Buffer)},function(t,e,n){(function(t){/*!\n\t * The buffer module from node.js, for the browser.\n\t *\n\t * @author   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n\t * @license  MIT\n\t */\n\"use strict\";function r(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()&&\"function\"==typeof t.subarray&&0===t.subarray(1,1).byteLength}catch(t){return!1}}function o(){return a.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function i(t,e){if(o()<e)throw new RangeError(\"Invalid typed array length\");return a.TYPED_ARRAY_SUPPORT?(t=new Uint8Array(e),t.__proto__=a.prototype):(null===t&&(t=new a(e)),t.length=e),t}function a(t,e,n){if(!(a.TYPED_ARRAY_SUPPORT||this instanceof a))return new a(t,e,n);if(\"number\"==typeof t){if(\"string\"==typeof e)throw new Error(\"If encoding is specified then the first argument must be a string\");return l(this,t)}return u(this,t,e,n)}function u(t,e,n,r){if(\"number\"==typeof e)throw new TypeError('\"value\" argument must not be a number');return\"undefined\"!=typeof ArrayBuffer&&e instanceof ArrayBuffer?d(t,e,n,r):\"string\"==typeof e?f(t,e,n):h(t,e)}function s(t){if(\"number\"!=typeof t)throw new TypeError('\"size\" argument must be a number');if(t<0)throw new RangeError('\"size\" argument must not be negative')}function c(t,e,n,r){return s(e),e<=0?i(t,e):void 0!==n?\"string\"==typeof r?i(t,e).fill(n,r):i(t,e).fill(n):i(t,e)}function l(t,e){if(s(e),t=i(t,e<0?0:0|v(e)),!a.TYPED_ARRAY_SUPPORT)for(var n=0;n<e;++n)t[n]=0;return t}function f(t,e,n){if(\"string\"==typeof n&&\"\"!==n||(n=\"utf8\"),!a.isEncoding(n))throw new TypeError('\"encoding\" must be a valid string encoding');var r=0|y(e,n);t=i(t,r);var o=t.write(e,n);return o!==r&&(t=t.slice(0,o)),t}function p(t,e){var n=e.length<0?0:0|v(e.length);t=i(t,n);for(var r=0;r<n;r+=1)t[r]=255&e[r];return t}function d(t,e,n,r){if(e.byteLength,n<0||e.byteLength<n)throw new RangeError(\"'offset' is out of bounds\");if(e.byteLength<n+(r||0))throw new RangeError(\"'length' is out of bounds\");return e=void 0===n&&void 0===r?new Uint8Array(e):void 0===r?new Uint8Array(e,n):new Uint8Array(e,n,r),a.TYPED_ARRAY_SUPPORT?(t=e,t.__proto__=a.prototype):t=p(t,e),t}function h(t,e){if(a.isBuffer(e)){var n=0|v(e.length);return t=i(t,n),0===t.length?t:(e.copy(t,0,0,n),t)}if(e){if(\"undefined\"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||\"length\"in e)return\"number\"!=typeof e.length||Q(e.length)?i(t,0):p(t,e);if(\"Buffer\"===e.type&&Z(e.data))return p(t,e.data)}throw new TypeError(\"First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.\")}function v(t){if(t>=o())throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+o().toString(16)+\" bytes\");return 0|t}function m(t){return+t!=t&&(t=0),a.alloc(+t)}function y(t,e){if(a.isBuffer(t))return t.length;if(\"undefined\"!=typeof ArrayBuffer&&\"function\"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;\"string\"!=typeof t&&(t=\"\"+t);var n=t.length;if(0===n)return 0;for(var r=!1;;)switch(e){case\"ascii\":case\"latin1\":case\"binary\":return n;case\"utf8\":case\"utf-8\":case void 0:return W(t).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*n;case\"hex\":return n>>>1;case\"base64\":return J(t).length;default:if(r)return W(t).length;e=(\"\"+e).toLowerCase(),r=!0}}function g(t,e,n){var r=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return\"\";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return\"\";if(n>>>=0,e>>>=0,n<=e)return\"\";for(t||(t=\"utf8\");;)switch(t){case\"hex\":return A(this,e,n);case\"utf8\":case\"utf-8\":return k(this,e,n);case\"ascii\":return I(this,e,n);case\"latin1\":case\"binary\":return R(this,e,n);case\"base64\":return O(this,e,n);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return N(this,e,n);default:if(r)throw new TypeError(\"Unknown encoding: \"+t);t=(t+\"\").toLowerCase(),r=!0}}function _(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}function b(t,e,n,r,o){if(0===t.length)return-1;if(\"string\"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(o)return-1;n=t.length-1}else if(n<0){if(!o)return-1;n=0}if(\"string\"==typeof e&&(e=a.from(e,r)),a.isBuffer(e))return 0===e.length?-1:w(t,e,n,r,o);if(\"number\"==typeof e)return e&=255,a.TYPED_ARRAY_SUPPORT&&\"function\"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):w(t,[e],n,r,o);throw new TypeError(\"val must be string, number or Buffer\")}function w(t,e,n,r,o){function i(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}var a=1,u=t.length,s=e.length;if(void 0!==r&&(r=String(r).toLowerCase(),\"ucs2\"===r||\"ucs-2\"===r||\"utf16le\"===r||\"utf-16le\"===r)){if(t.length<2||e.length<2)return-1;a=2,u/=2,s/=2,n/=2}var c;if(o){var l=-1;for(c=n;c<u;c++)if(i(t,c)===i(e,l===-1?0:c-l)){if(l===-1&&(l=c),c-l+1===s)return l*a}else l!==-1&&(c-=c-l),l=-1}else for(n+s>u&&(n=u-s),c=n;c>=0;c--){for(var f=!0,p=0;p<s;p++)if(i(t,c+p)!==i(e,p)){f=!1;break}if(f)return c}return-1}function E(t,e,n,r){n=Number(n)||0;var o=t.length-n;r?(r=Number(r),r>o&&(r=o)):r=o;var i=e.length;if(i%2!==0)throw new TypeError(\"Invalid hex string\");r>i/2&&(r=i/2);for(var a=0;a<r;++a){var u=parseInt(e.substr(2*a,2),16);if(isNaN(u))return a;t[n+a]=u}return a}function C(t,e,n,r){return X(W(e,t.length-n),t,n,r)}function S(t,e,n,r){return X(K(e),t,n,r)}function x(t,e,n,r){return S(t,e,n,r)}function P(t,e,n,r){return X(J(e),t,n,r)}function T(t,e,n,r){return X(H(e,t.length-n),t,n,r)}function O(t,e,n){return 0===e&&n===t.length?$.fromByteArray(t):$.fromByteArray(t.slice(e,n))}function k(t,e,n){n=Math.min(t.length,n);for(var r=[],o=e;o<n;){var i=t[o],a=null,u=i>239?4:i>223?3:i>191?2:1;if(o+u<=n){var s,c,l,f;switch(u){case 1:i<128&&(a=i);break;case 2:s=t[o+1],128===(192&s)&&(f=(31&i)<<6|63&s,f>127&&(a=f));break;case 3:s=t[o+1],c=t[o+2],128===(192&s)&&128===(192&c)&&(f=(15&i)<<12|(63&s)<<6|63&c,f>2047&&(f<55296||f>57343)&&(a=f));break;case 4:s=t[o+1],c=t[o+2],l=t[o+3],128===(192&s)&&128===(192&c)&&128===(192&l)&&(f=(15&i)<<18|(63&s)<<12|(63&c)<<6|63&l,f>65535&&f<1114112&&(a=f))}}null===a?(a=65533,u=1):a>65535&&(a-=65536,r.push(a>>>10&1023|55296),a=56320|1023&a),r.push(a),o+=u}return M(r)}function M(t){var e=t.length;if(e<=tt)return String.fromCharCode.apply(String,t);for(var n=\"\",r=0;r<e;)n+=String.fromCharCode.apply(String,t.slice(r,r+=tt));return n}function I(t,e,n){var r=\"\";n=Math.min(t.length,n);for(var o=e;o<n;++o)r+=String.fromCharCode(127&t[o]);return r}function R(t,e,n){var r=\"\";n=Math.min(t.length,n);for(var o=e;o<n;++o)r+=String.fromCharCode(t[o]);return r}function A(t,e,n){var r=t.length;(!e||e<0)&&(e=0),(!n||n<0||n>r)&&(n=r);for(var o=\"\",i=e;i<n;++i)o+=Y(t[i]);return o}function N(t,e,n){for(var r=t.slice(e,n),o=\"\",i=0;i<r.length;i+=2)o+=String.fromCharCode(r[i]+256*r[i+1]);return o}function D(t,e,n){if(t%1!==0||t<0)throw new RangeError(\"offset is not uint\");if(t+e>n)throw new RangeError(\"Trying to access beyond buffer length\")}function L(t,e,n,r,o,i){if(!a.isBuffer(t))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(e>o||e<i)throw new RangeError('\"value\" argument is out of bounds');if(n+r>t.length)throw new RangeError(\"Index out of range\")}function j(t,e,n,r){e<0&&(e=65535+e+1);for(var o=0,i=Math.min(t.length-n,2);o<i;++o)t[n+o]=(e&255<<8*(r?o:1-o))>>>8*(r?o:1-o)}function U(t,e,n,r){e<0&&(e=4294967295+e+1);for(var o=0,i=Math.min(t.length-n,4);o<i;++o)t[n+o]=e>>>8*(r?o:3-o)&255}function B(t,e,n,r,o,i){if(n+r>t.length)throw new RangeError(\"Index out of range\");if(n<0)throw new RangeError(\"Index out of range\")}function F(t,e,n,r,o){return o||B(t,e,n,4,3.4028234663852886e38,-3.4028234663852886e38),G.write(t,e,n,r,23,4),n+4}function z(t,e,n,r,o){return o||B(t,e,n,8,1.7976931348623157e308,-1.7976931348623157e308),G.write(t,e,n,r,52,8),n+8}function q(t){if(t=V(t).replace(et,\"\"),t.length<2)return\"\";for(;t.length%4!==0;)t+=\"=\";return t}function V(t){return t.trim?t.trim():t.replace(/^\\s+|\\s+$/g,\"\")}function Y(t){return t<16?\"0\"+t.toString(16):t.toString(16)}function W(t,e){e=e||1/0;for(var n,r=t.length,o=null,i=[],a=0;a<r;++a){if(n=t.charCodeAt(a),n>55295&&n<57344){if(!o){if(n>56319){(e-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(e-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(e-=3)>-1&&i.push(239,191,189),o=n;continue}n=(o-55296<<10|n-56320)+65536}else o&&(e-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((e-=1)<0)break;i.push(n)}else if(n<2048){if((e-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((e-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error(\"Invalid code point\");if((e-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function K(t){for(var e=[],n=0;n<t.length;++n)e.push(255&t.charCodeAt(n));return e}function H(t,e){for(var n,r,o,i=[],a=0;a<t.length&&!((e-=2)<0);++a)n=t.charCodeAt(a),r=n>>8,o=n%256,i.push(o),i.push(r);return i}function J(t){return $.toByteArray(q(t))}function X(t,e,n,r){for(var o=0;o<r&&!(o+n>=e.length||o>=t.length);++o)e[o+n]=t[o];return o}function Q(t){return t!==t}var $=n(283),G=n(284),Z=n(285);e.Buffer=a,e.SlowBuffer=m,e.INSPECT_MAX_BYTES=50,a.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:r(),e.kMaxLength=o(),a.poolSize=8192,a._augment=function(t){return t.__proto__=a.prototype,t},a.from=function(t,e,n){return u(null,t,e,n)},a.TYPED_ARRAY_SUPPORT&&(a.prototype.__proto__=Uint8Array.prototype,a.__proto__=Uint8Array,\"undefined\"!=typeof Symbol&&Symbol.species&&a[Symbol.species]===a&&Object.defineProperty(a,Symbol.species,{value:null,configurable:!0})),a.alloc=function(t,e,n){return c(null,t,e,n)},a.allocUnsafe=function(t){return l(null,t)},a.allocUnsafeSlow=function(t){return l(null,t)},a.isBuffer=function(t){return!(null==t||!t._isBuffer)},a.compare=function(t,e){if(!a.isBuffer(t)||!a.isBuffer(e))throw new TypeError(\"Arguments must be Buffers\");if(t===e)return 0;for(var n=t.length,r=e.length,o=0,i=Math.min(n,r);o<i;++o)if(t[o]!==e[o]){n=t[o],r=e[o];break}return n<r?-1:r<n?1:0},a.isEncoding=function(t){switch(String(t).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!0;default:return!1}},a.concat=function(t,e){if(!Z(t))throw new TypeError('\"list\" argument must be an Array of Buffers');if(0===t.length)return a.alloc(0);var n;if(void 0===e)for(e=0,n=0;n<t.length;++n)e+=t[n].length;var r=a.allocUnsafe(e),o=0;for(n=0;n<t.length;++n){var i=t[n];if(!a.isBuffer(i))throw new TypeError('\"list\" argument must be an Array of Buffers');i.copy(r,o),o+=i.length}return r},a.byteLength=y,a.prototype._isBuffer=!0,a.prototype.swap16=function(){var t=this.length;if(t%2!==0)throw new RangeError(\"Buffer size must be a multiple of 16-bits\");for(var e=0;e<t;e+=2)_(this,e,e+1);return this},a.prototype.swap32=function(){var t=this.length;if(t%4!==0)throw new RangeError(\"Buffer size must be a multiple of 32-bits\");for(var e=0;e<t;e+=4)_(this,e,e+3),_(this,e+1,e+2);return this},a.prototype.swap64=function(){var t=this.length;if(t%8!==0)throw new RangeError(\"Buffer size must be a multiple of 64-bits\");for(var e=0;e<t;e+=8)_(this,e,e+7),_(this,e+1,e+6),_(this,e+2,e+5),_(this,e+3,e+4);return this},a.prototype.toString=function(){var t=0|this.length;return 0===t?\"\":0===arguments.length?k(this,0,t):g.apply(this,arguments)},a.prototype.equals=function(t){if(!a.isBuffer(t))throw new TypeError(\"Argument must be a Buffer\");return this===t||0===a.compare(this,t)},a.prototype.inspect=function(){var t=\"\",n=e.INSPECT_MAX_BYTES;return this.length>0&&(t=this.toString(\"hex\",0,n).match(/.{2}/g).join(\" \"),this.length>n&&(t+=\" ... \")),\"<Buffer \"+t+\">\"},a.prototype.compare=function(t,e,n,r,o){if(!a.isBuffer(t))throw new TypeError(\"Argument must be a Buffer\");if(void 0===e&&(e=0),void 0===n&&(n=t?t.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),e<0||n>t.length||r<0||o>this.length)throw new RangeError(\"out of range index\");if(r>=o&&e>=n)return 0;if(r>=o)return-1;if(e>=n)return 1;if(e>>>=0,n>>>=0,r>>>=0,o>>>=0,this===t)return 0;for(var i=o-r,u=n-e,s=Math.min(i,u),c=this.slice(r,o),l=t.slice(e,n),f=0;f<s;++f)if(c[f]!==l[f]){i=c[f],u=l[f];break}return i<u?-1:u<i?1:0},a.prototype.includes=function(t,e,n){return this.indexOf(t,e,n)!==-1},a.prototype.indexOf=function(t,e,n){return b(this,t,e,n,!0)},a.prototype.lastIndexOf=function(t,e,n){return b(this,t,e,n,!1)},a.prototype.write=function(t,e,n,r){if(void 0===e)r=\"utf8\",n=this.length,e=0;else if(void 0===n&&\"string\"==typeof e)r=e,n=this.length,e=0;else{if(!isFinite(e))throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");e|=0,isFinite(n)?(n|=0,void 0===r&&(r=\"utf8\")):(r=n,n=void 0)}var o=this.length-e;if((void 0===n||n>o)&&(n=o),t.length>0&&(n<0||e<0)||e>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");r||(r=\"utf8\");for(var i=!1;;)switch(r){case\"hex\":return E(this,t,e,n);case\"utf8\":case\"utf-8\":return C(this,t,e,n);case\"ascii\":return S(this,t,e,n);case\"latin1\":case\"binary\":return x(this,t,e,n);case\"base64\":return P(this,t,e,n);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return T(this,t,e,n);default:if(i)throw new TypeError(\"Unknown encoding: \"+r);r=(\"\"+r).toLowerCase(),i=!0}},a.prototype.toJSON=function(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};var tt=4096;a.prototype.slice=function(t,e){var n=this.length;t=~~t,e=void 0===e?n:~~e,t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),e<t&&(e=t);var r;if(a.TYPED_ARRAY_SUPPORT)r=this.subarray(t,e),r.__proto__=a.prototype;else{var o=e-t;r=new a(o,void 0);for(var i=0;i<o;++i)r[i]=this[i+t]}return r},a.prototype.readUIntLE=function(t,e,n){t|=0,e|=0,n||D(t,e,this.length);for(var r=this[t],o=1,i=0;++i<e&&(o*=256);)r+=this[t+i]*o;return r},a.prototype.readUIntBE=function(t,e,n){t|=0,e|=0,n||D(t,e,this.length);for(var r=this[t+--e],o=1;e>0&&(o*=256);)r+=this[t+--e]*o;return r},a.prototype.readUInt8=function(t,e){return e||D(t,1,this.length),this[t]},a.prototype.readUInt16LE=function(t,e){return e||D(t,2,this.length),this[t]|this[t+1]<<8},a.prototype.readUInt16BE=function(t,e){return e||D(t,2,this.length),this[t]<<8|this[t+1]},a.prototype.readUInt32LE=function(t,e){return e||D(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},a.prototype.readUInt32BE=function(t,e){return e||D(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},a.prototype.readIntLE=function(t,e,n){t|=0,e|=0,n||D(t,e,this.length);for(var r=this[t],o=1,i=0;++i<e&&(o*=256);)r+=this[t+i]*o;return o*=128,r>=o&&(r-=Math.pow(2,8*e)),r},a.prototype.readIntBE=function(t,e,n){t|=0,e|=0,n||D(t,e,this.length);for(var r=e,o=1,i=this[t+--r];r>0&&(o*=256);)i+=this[t+--r]*o;return o*=128,i>=o&&(i-=Math.pow(2,8*e)),i},a.prototype.readInt8=function(t,e){return e||D(t,1,this.length),128&this[t]?(255-this[t]+1)*-1:this[t]},a.prototype.readInt16LE=function(t,e){e||D(t,2,this.length);var n=this[t]|this[t+1]<<8;return 32768&n?4294901760|n:n},a.prototype.readInt16BE=function(t,e){e||D(t,2,this.length);var n=this[t+1]|this[t]<<8;return 32768&n?4294901760|n:n},a.prototype.readInt32LE=function(t,e){return e||D(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},a.prototype.readInt32BE=function(t,e){return e||D(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},a.prototype.readFloatLE=function(t,e){return e||D(t,4,this.length),G.read(this,t,!0,23,4)},a.prototype.readFloatBE=function(t,e){return e||D(t,4,this.length),G.read(this,t,!1,23,4)},a.prototype.readDoubleLE=function(t,e){return e||D(t,8,this.length),G.read(this,t,!0,52,8)},a.prototype.readDoubleBE=function(t,e){return e||D(t,8,this.length),G.read(this,t,!1,52,8)},a.prototype.writeUIntLE=function(t,e,n,r){if(t=+t,e|=0,n|=0,!r){var o=Math.pow(2,8*n)-1;L(this,t,e,n,o,0)}var i=1,a=0;for(this[e]=255&t;++a<n&&(i*=256);)this[e+a]=t/i&255;return e+n},a.prototype.writeUIntBE=function(t,e,n,r){if(t=+t,e|=0,n|=0,!r){var o=Math.pow(2,8*n)-1;L(this,t,e,n,o,0)}var i=n-1,a=1;for(this[e+i]=255&t;--i>=0&&(a*=256);)this[e+i]=t/a&255;return e+n},a.prototype.writeUInt8=function(t,e,n){return t=+t,e|=0,n||L(this,t,e,1,255,0),a.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},a.prototype.writeUInt16LE=function(t,e,n){return t=+t,e|=0,n||L(this,t,e,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):j(this,t,e,!0),e+2},a.prototype.writeUInt16BE=function(t,e,n){return t=+t,e|=0,n||L(this,t,e,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):j(this,t,e,!1),e+2},a.prototype.writeUInt32LE=function(t,e,n){return t=+t,e|=0,n||L(this,t,e,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):U(this,t,e,!0),e+4},a.prototype.writeUInt32BE=function(t,e,n){return t=+t,e|=0,n||L(this,t,e,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):U(this,t,e,!1),e+4},a.prototype.writeIntLE=function(t,e,n,r){if(t=+t,e|=0,!r){var o=Math.pow(2,8*n-1);L(this,t,e,n,o-1,-o)}var i=0,a=1,u=0;for(this[e]=255&t;++i<n&&(a*=256);)t<0&&0===u&&0!==this[e+i-1]&&(u=1),this[e+i]=(t/a>>0)-u&255;return e+n},a.prototype.writeIntBE=function(t,e,n,r){if(t=+t,e|=0,!r){var o=Math.pow(2,8*n-1);L(this,t,e,n,o-1,-o)}var i=n-1,a=1,u=0;for(this[e+i]=255&t;--i>=0&&(a*=256);)t<0&&0===u&&0!==this[e+i+1]&&(u=1),this[e+i]=(t/a>>0)-u&255;return e+n},a.prototype.writeInt8=function(t,e,n){return t=+t,e|=0,n||L(this,t,e,1,127,-128),a.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},a.prototype.writeInt16LE=function(t,e,n){return t=+t,e|=0,n||L(this,t,e,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):j(this,t,e,!0),e+2},a.prototype.writeInt16BE=function(t,e,n){return t=+t,e|=0,n||L(this,t,e,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):j(this,t,e,!1),e+2},a.prototype.writeInt32LE=function(t,e,n){return t=+t,e|=0,n||L(this,t,e,4,2147483647,-2147483648),a.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):U(this,t,e,!0),e+4},a.prototype.writeInt32BE=function(t,e,n){return t=+t,e|=0,n||L(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):U(this,t,e,!1),e+4},a.prototype.writeFloatLE=function(t,e,n){return F(this,t,e,!0,n)},a.prototype.writeFloatBE=function(t,e,n){return F(this,t,e,!1,n)},a.prototype.writeDoubleLE=function(t,e,n){return z(this,t,e,!0,n)},a.prototype.writeDoubleBE=function(t,e,n){return z(this,t,e,!1,n)},a.prototype.copy=function(t,e,n,r){if(n||(n=0),r||0===r||(r=this.length),e>=t.length&&(e=t.length),e||(e=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError(\"targetStart out of bounds\");if(n<0||n>=this.length)throw new RangeError(\"sourceStart out of bounds\");if(r<0)throw new RangeError(\"sourceEnd out of bounds\");r>this.length&&(r=this.length),t.length-e<r-n&&(r=t.length-e+n);var o,i=r-n;if(this===t&&n<e&&e<r)for(o=i-1;o>=0;--o)t[o+e]=this[o+n];else if(i<1e3||!a.TYPED_ARRAY_SUPPORT)for(o=0;o<i;++o)t[o+e]=this[o+n];else Uint8Array.prototype.set.call(t,this.subarray(n,n+i),e);return i},a.prototype.fill=function(t,e,n,r){if(\"string\"==typeof t){if(\"string\"==typeof e?(r=e,e=0,n=this.length):\"string\"==typeof n&&(r=n,n=this.length),1===t.length){var o=t.charCodeAt(0);o<256&&(t=o)}if(void 0!==r&&\"string\"!=typeof r)throw new TypeError(\"encoding must be a string\");if(\"string\"==typeof r&&!a.isEncoding(r))throw new TypeError(\"Unknown encoding: \"+r)}else\"number\"==typeof t&&(t&=255);if(e<0||this.length<e||this.length<n)throw new RangeError(\"Out of range index\");if(n<=e)return this;e>>>=0,n=void 0===n?this.length:n>>>0,t||(t=0);var i;if(\"number\"==typeof t)for(i=e;i<n;++i)this[i]=t;else{var u=a.isBuffer(t)?t:W(new a(t,r).toString()),s=u.length;for(i=0;i<n-e;++i)this[i+e]=u[i%s]}return this};var et=/[^+\\/0-9A-Za-z-_]/g}).call(e,function(){return this}())},function(t,e){\"use strict\";function n(t){var e=t.length;if(e%4>0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var n=t.indexOf(\"=\");n===-1&&(n=e);var r=n===e?0:4-n%4;return[n,r]}function r(t){var e=n(t),r=e[0],o=e[1];return 3*(r+o)/4-o}function o(t,e,n){return 3*(e+n)/4-n}function i(t){for(var e,r=n(t),i=r[0],a=r[1],u=new f(o(t,i,a)),s=0,c=a>0?i-4:i,p=0;p<c;p+=4)e=l[t.charCodeAt(p)]<<18|l[t.charCodeAt(p+1)]<<12|l[t.charCodeAt(p+2)]<<6|l[t.charCodeAt(p+3)],u[s++]=e>>16&255,u[s++]=e>>8&255,u[s++]=255&e;return 2===a&&(e=l[t.charCodeAt(p)]<<2|l[t.charCodeAt(p+1)]>>4,u[s++]=255&e),1===a&&(e=l[t.charCodeAt(p)]<<10|l[t.charCodeAt(p+1)]<<4|l[t.charCodeAt(p+2)]>>2,u[s++]=e>>8&255,u[s++]=255&e),u}function a(t){return c[t>>18&63]+c[t>>12&63]+c[t>>6&63]+c[63&t]}function u(t,e,n){for(var r,o=[],i=e;i<n;i+=3)r=(t[i]<<16&16711680)+(t[i+1]<<8&65280)+(255&t[i+2]),o.push(a(r));return o.join(\"\")}function s(t){for(var e,n=t.length,r=n%3,o=[],i=16383,a=0,s=n-r;a<s;a+=i)o.push(u(t,a,a+i>s?s:a+i));return 1===r?(e=t[n-1],o.push(c[e>>2]+c[e<<4&63]+\"==\")):2===r&&(e=(t[n-2]<<8)+t[n-1],o.push(c[e>>10]+c[e>>4&63]+c[e<<2&63]+\"=\")),o.join(\"\")}e.byteLength=r,e.toByteArray=i,e.fromByteArray=s;for(var c=[],l=[],f=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,p=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",d=0,h=p.length;d<h;++d)c[d]=p[d],l[p.charCodeAt(d)]=d;l[\"-\".charCodeAt(0)]=62,l[\"_\".charCodeAt(0)]=63},function(t,e){e.read=function(t,e,n,r,o){var i,a,u=8*o-r-1,s=(1<<u)-1,c=s>>1,l=-7,f=n?o-1:0,p=n?-1:1,d=t[e+f];for(f+=p,i=d&(1<<-l)-1,d>>=-l,l+=u;l>0;i=256*i+t[e+f],f+=p,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+t[e+f],f+=p,l-=8);if(0===i)i=1-c;else{if(i===s)return a?NaN:(d?-1:1)*(1/0);a+=Math.pow(2,r),i-=c}return(d?-1:1)*a*Math.pow(2,i-r)},e.write=function(t,e,n,r,o,i){var a,u,s,c=8*i-o-1,l=(1<<c)-1,f=l>>1,p=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:i-1,h=r?1:-1,v=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(u=isNaN(e)?1:0,a=l):(a=Math.floor(Math.log(e)/Math.LN2),e*(s=Math.pow(2,-a))<1&&(a--,s*=2),e+=a+f>=1?p/s:p*Math.pow(2,1-f),e*s>=2&&(a++,s/=2),a+f>=l?(u=0,a=l):a+f>=1?(u=(e*s-1)*Math.pow(2,o),a+=f):(u=e*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;t[n+d]=255&u,d+=h,u/=256,o-=8);for(a=a<<o|u,c+=o;c>0;t[n+d]=255&a,d+=h,a/=256,c-=8);t[n+d-h]|=128*v}},function(t,e){var n={}.toString;t.exports=Array.isArray||function(t){return\"[object Array]\"==n.call(t)}},function(t,e){var n={}.toString;t.exports=Array.isArray||function(t){return\"[object Array]\"==n.call(t)}},function(t,e){var n,r=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];e.getSymbolSize=function(t){if(!t)throw new Error('\"version\" cannot be null or undefined');if(t<1||t>40)throw new Error('\"version\" should be in range from 1 to 40');return 4*t+17},e.getSymbolTotalCodewords=function(t){return r[t]},e.getBCHDigit=function(t){for(var e=0;0!==t;)e++,t>>>=1;return e},e.setToSJISFunction=function(t){if(\"function\"!=typeof t)throw new Error('\"toSJISFunc\" is not a valid function.');n=t},e.isKanjiModeEnabled=function(){return\"undefined\"!=typeof n},e.toSJIS=function(t){return n(t)}},function(t,e){function n(t){if(\"string\"!=typeof t)throw new Error(\"Param is not a string\");var n=t.toLowerCase();switch(n){case\"l\":case\"low\":return e.L;case\"m\":case\"medium\":return e.M;case\"q\":case\"quartile\":return e.Q;case\"h\":case\"high\":return e.H;default:throw new Error(\"Unknown EC Level: \"+t)}}e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2},e.isValid=function(t){return t&&\"undefined\"!=typeof t.bit&&t.bit>=0&&t.bit<4},e.from=function(t,r){if(e.isValid(t))return t;try{return n(t)}catch(t){return r}}},function(t,e){function n(){this.buffer=[],this.length=0}n.prototype={get:function(t){var e=Math.floor(t/8);return 1===(this.buffer[e]>>>7-t%8&1)},put:function(t,e){for(var n=0;n<e;n++)this.putBit(1===(t>>>e-n-1&1))},getLengthInBits:function(){return this.length},putBit:function(t){var e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}},t.exports=n},function(t,e,n){function r(t){if(!t||t<1)throw new Error(\"BitMatrix size must be defined and greater than 0\");this.size=t,this.data=new o(t*t),this.data.fill(0),this.reservedBit=new o(t*t),this.reservedBit.fill(0)}var o=n(281);r.prototype.set=function(t,e,n,r){var o=t*this.size+e;this.data[o]=n,r&&(this.reservedBit[o]=!0)},r.prototype.get=function(t,e){return this.data[t*this.size+e]},r.prototype.xor=function(t,e,n){this.data[t*this.size+e]^=n},r.prototype.isReserved=function(t,e){return this.reservedBit[t*this.size+e]},t.exports=r},function(t,e,n){var r=n(287).getSymbolSize;e.getRowColCoords=function(t){if(1===t)return[];for(var e=Math.floor(t/7)+2,n=r(t),o=145===n?26:2*Math.ceil((n-13)/(2*e-2)),i=[n-7],a=1;a<e-1;a++)i[a]=i[a-1]-o;return i.push(6),i.reverse()},e.getPositions=function(t){for(var n=[],r=e.getRowColCoords(t),o=r.length,i=0;i<o;i++)for(var a=0;a<o;a++)0===i&&0===a||0===i&&a===o-1||i===o-1&&0===a||n.push([r[i],r[a]]);return n}},function(t,e,n){var r=n(287).getSymbolSize,o=7;e.getPositions=function(t){var e=r(t);return[[0,0],[e-o,0],[0,e-o]]}},function(t,e){function n(t,n,r){switch(t){case e.Patterns.PATTERN000:return(n+r)%2===0;case e.Patterns.PATTERN001:return n%2===0;case e.Patterns.PATTERN010:return r%3===0;case e.Patterns.PATTERN011:return(n+r)%3===0;case e.Patterns.PATTERN100:return(Math.floor(n/2)+Math.floor(r/3))%2===0;case e.Patterns.PATTERN101:return n*r%2+n*r%3===0;case e.Patterns.PATTERN110:return(n*r%2+n*r%3)%2===0;case e.Patterns.PATTERN111:return(n*r%3+(n+r)%2)%2===0;default:throw new Error(\"bad maskPattern:\"+t)}}e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var r={N1:3,N2:3,N3:40,N4:10};e.isValid=function(t){return null!=t&&\"\"!==t&&!isNaN(t)&&t>=0&&t<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(t){for(var e=t.size,n=0,o=0,i=0,a=null,u=null,s=0;s<e;s++){o=i=0,a=u=null;for(var c=0;c<e;c++){var l=t.get(s,c);l===a?o++:(o>=5&&(n+=r.N1+(o-5)),a=l,o=1),l=t.get(c,s),l===u?i++:(i>=5&&(n+=r.N1+(i-5)),u=l,i=1)}o>=5&&(n+=r.N1+(o-5)),i>=5&&(n+=r.N1+(i-5))}return n},e.getPenaltyN2=function(t){for(var e=t.size,n=0,o=0;o<e-1;o++)for(var i=0;i<e-1;i++){var a=t.get(o,i)+t.get(o,i+1)+t.get(o+1,i)+t.get(o+1,i+1);4!==a&&0!==a||n++}return n*r.N2},e.getPenaltyN3=function(t){for(var e=t.size,n=0,o=0,i=0,a=0;a<e;a++){o=i=0;for(var u=0;u<e;u++)o=o<<1&2047|t.get(a,u),u>=10&&(1488===o||93===o)&&n++,i=i<<1&2047|t.get(u,a),u>=10&&(1488===i||93===i)&&n++}return n*r.N3},e.getPenaltyN4=function(t){for(var e=0,n=t.data.length,o=0;o<n;o++)e+=t.data[o];var i=Math.abs(Math.ceil(100*e/n/5)-10);return i*r.N4},e.applyMask=function(t,e){for(var r=e.size,o=0;o<r;o++)for(var i=0;i<r;i++)e.isReserved(i,o)||e.xor(i,o,n(t,i,o))},e.getBestMask=function(t,n){for(var r=Object.keys(e.Patterns).length,o=0,i=1/0,a=0;a<r;a++){n(a),e.applyMask(a,t);var u=e.getPenaltyN1(t)+e.getPenaltyN2(t)+e.getPenaltyN3(t)+e.getPenaltyN4(t);e.applyMask(a,t),u<i&&(i=u,o=a)}return o}},function(t,e,n){var r=n(288),o=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],i=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];e.getBlocksCount=function(t,e){switch(e){case r.L:return o[4*(t-1)+0];case r.M:return o[4*(t-1)+1];case r.Q:return o[4*(t-1)+2];case r.H:return o[4*(t-1)+3];default:return}},e.getTotalCodewordsCount=function(t,e){switch(e){case r.L:return i[4*(t-1)+0];case r.M:return i[4*(t-1)+1];case r.Q:return i[4*(t-1)+2];case r.H:return i[4*(t-1)+3];default:return}}},function(t,e,n){function r(t){this.genPoly=void 0,this.degree=t,this.degree&&this.initialize(this.degree)}var o=n(281),i=n(296);r.prototype.initialize=function(t){this.degree=t,this.genPoly=i.generateECPolynomial(this.degree)},r.prototype.encode=function(t){if(!this.genPoly)throw new Error(\"Encoder not initialized\");var e=new o(this.degree);e.fill(0);var n=o.concat([t,e],t.length+this.degree),r=i.mod(n,this.genPoly),a=this.degree-r.length;if(a>0){var u=new o(this.degree);return u.fill(0),r.copy(u,a),u}return r},t.exports=r},function(t,e,n){var r=n(281),o=n(297);e.mul=function(t,e){var n=new r(t.length+e.length-1);n.fill(0);for(var i=0;i<t.length;i++)for(var a=0;a<e.length;a++)n[i+a]^=o.mul(t[i],e[a]);return n},e.mod=function(t,e){for(var n=new r(t);n.length-e.length>=0;){for(var i=n[0],a=0;a<e.length;a++)n[a]^=o.mul(e[a],i);for(var u=0;u<n.length&&0===n[u];)u++;n=n.slice(u)}return n},e.generateECPolynomial=function(t){for(var n=new r([1]),i=0;i<t;i++)n=e.mul(n,[1,o.exp(i)]);return n}},function(t,e,n){var r=n(281);if(r.alloc)var o=r.alloc(512),i=r.alloc(256);else var o=new r(512),i=new r(256);!function(){for(var t=1,e=0;e<255;e++)o[e]=t,i[t]=e,t<<=1,256&t&&(t^=285);for(e=255;e<512;e++)o[e]=o[e-255]}(),e.log=function(t){if(t<1)throw new Error(\"log(\"+t+\")\");return i[t]},e.exp=function(t){return o[t]},e.mul=function(t,e){return 0===t||0===e?0:o[i[t]+i[e]]}},function(t,e,n){function r(t,n,r){for(var o=1;o<=40;o++)if(n<=e.getCapacity(o,r,t))return o}function o(t,e){return l.getCharCountIndicator(t,e)+4}function i(t,e){var n=0;return t.forEach(function(t){var r=o(t.mode,e);n+=r+t.getBitsLength()}),n}function a(t,n){for(var r=1;r<=40;r++){var o=i(t,r);if(o<=e.getCapacity(r,n,l.MIXED))return r}}var u=n(287),s=n(294),c=n(288),l=n(299),f=n(300),p=n(286),d=7973,h=u.getBCHDigit(d);e.from=function(t,e){return f.isValid(t)?parseInt(t,10):e},e.getCapacity=function(t,e,n){if(!f.isValid(t))throw new Error(\"Invalid QR Code version\");\"undefined\"==typeof n&&(n=l.BYTE);var r=u.getSymbolTotalCodewords(t),i=s.getTotalCodewordsCount(t,e),a=8*(r-i);if(n===l.MIXED)return a;var c=a-o(n,t);switch(n){case l.NUMERIC:return Math.floor(c/10*3);case l.ALPHANUMERIC:return Math.floor(c/11*2);case l.KANJI:return Math.floor(c/13);case l.BYTE:default:return Math.floor(c/8)}},e.getBestVersionForData=function(t,e){var n,o=c.from(e,c.M);if(p(t)){if(t.length>1)return a(t,o);if(0===t.length)return 1;n=t[0]}else n=t;return r(n.mode,n.getLength(),o)},e.getEncodedBits=function(t){if(!f.isValid(t)||t<7)throw new Error(\"Invalid QR Code version\");for(var e=t<<12;u.getBCHDigit(e)-h>=0;)e^=d<<u.getBCHDigit(e)-h;return t<<12|e}},function(t,e,n){function r(t){if(\"string\"!=typeof t)throw new Error(\"Param is not a string\");var n=t.toLowerCase();switch(n){case\"numeric\":return e.NUMERIC;case\"alphanumeric\":return e.ALPHANUMERIC;case\"kanji\":return e.KANJI;case\"byte\":return e.BYTE;default:throw new Error(\"Unknown mode: \"+t)}}var o=n(300),i=n(301);e.NUMERIC={id:\"Numeric\",bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:\"Alphanumeric\",bit:2,ccBits:[9,11,13]},e.BYTE={id:\"Byte\",bit:4,ccBits:[8,16,16]},e.KANJI={id:\"Kanji\",bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(t,e){if(!t.ccBits)throw new Error(\"Invalid mode: \"+t);if(!o.isValid(e))throw new Error(\"Invalid version: \"+e);return e>=1&&e<10?t.ccBits[0]:e<27?t.ccBits[1]:t.ccBits[2]},e.getBestModeForData=function(t){return i.testNumeric(t)?e.NUMERIC:i.testAlphanumeric(t)?e.ALPHANUMERIC:i.testKanji(t)?e.KANJI:e.BYTE;\n},e.toString=function(t){if(t&&t.id)return t.id;throw new Error(\"Invalid mode\")},e.isValid=function(t){return t&&t.bit&&t.ccBits},e.from=function(t,n){if(e.isValid(t))return t;try{return r(t)}catch(t){return n}}},function(t,e){e.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}},function(t,e){var n=\"[0-9]+\",r=\"[A-Z $%*+\\\\-./:]+\",o=\"(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+\";o=o.replace(/u/g,\"\\\\u\");var i=\"(?:(?![A-Z0-9 $%*+\\\\-./:]|\"+o+\")(?:.|[\\r\\n]))+\";e.KANJI=new RegExp(o,\"g\"),e.BYTE_KANJI=new RegExp(\"[^A-Z0-9 $%*+\\\\-./:]+\",\"g\"),e.BYTE=new RegExp(i,\"g\"),e.NUMERIC=new RegExp(n,\"g\"),e.ALPHANUMERIC=new RegExp(r,\"g\");var a=new RegExp(\"^\"+o+\"$\"),u=new RegExp(\"^\"+n+\"$\"),s=new RegExp(\"^[A-Z0-9 $%*+\\\\-./:]+$\");e.testKanji=function(t){return a.test(t)},e.testNumeric=function(t){return u.test(t)},e.testAlphanumeric=function(t){return s.test(t)}},function(t,e,n){var r=n(287),o=1335,i=21522,a=r.getBCHDigit(o);e.getEncodedBits=function(t,e){for(var n=t.bit<<3|e,u=n<<10;r.getBCHDigit(u)-a>=0;)u^=o<<r.getBCHDigit(u)-a;return(n<<10|u)^i}},function(t,e,n){function r(t){return unescape(encodeURIComponent(t)).length}function o(t,e,n){for(var r,o=[];null!==(r=t.exec(n));)o.push({data:r[0],index:r.index,mode:e,length:r[0].length});return o}function i(t){var e,n,r=o(m.NUMERIC,f.NUMERIC,t),i=o(m.ALPHANUMERIC,f.ALPHANUMERIC,t);y.isKanjiModeEnabled()?(e=o(m.BYTE,f.BYTE,t),n=o(m.KANJI,f.KANJI,t)):(e=o(m.BYTE_KANJI,f.BYTE,t),n=[]);var a=r.concat(i,e,n);return a.sort(function(t,e){return t.index-e.index}).map(function(t){return{data:t.data,mode:t.mode,length:t.length}})}function a(t,e){switch(e){case f.NUMERIC:return p.getBitsLength(t);case f.ALPHANUMERIC:return d.getBitsLength(t);case f.KANJI:return v.getBitsLength(t);case f.BYTE:return h.getBitsLength(t)}}function u(t){return t.reduce(function(t,e){var n=t.length-1>=0?t[t.length-1]:null;return n&&n.mode===e.mode?(t[t.length-1].data+=e.data,t):(t.push(e),t)},[])}function s(t){for(var e=[],n=0;n<t.length;n++){var o=t[n];switch(o.mode){case f.NUMERIC:e.push([o,{data:o.data,mode:f.ALPHANUMERIC,length:o.length},{data:o.data,mode:f.BYTE,length:o.length}]);break;case f.ALPHANUMERIC:e.push([o,{data:o.data,mode:f.BYTE,length:o.length}]);break;case f.KANJI:e.push([o,{data:o.data,mode:f.BYTE,length:r(o.data)}]);break;case f.BYTE:e.push([{data:o.data,mode:f.BYTE,length:r(o.data)}])}}return e}function c(t,e){for(var n={},r={start:{}},o=[\"start\"],i=0;i<t.length;i++){for(var u=t[i],s=[],c=0;c<u.length;c++){var l=u[c],p=\"\"+i+c;s.push(p),n[p]={node:l,lastCount:0},r[p]={};for(var d=0;d<o.length;d++){var h=o[d];n[h]&&n[h].node.mode===l.mode?(r[h][p]=a(n[h].lastCount+l.length,l.mode)-a(n[h].lastCount,l.mode),n[h].lastCount+=l.length):(n[h]&&(n[h].lastCount=l.length),r[h][p]=a(l.length,l.mode)+4+f.getCharCountIndicator(l.mode,e))}}o=s}for(d=0;d<o.length;d++)r[o[d]].end=0;return{map:r,table:n}}function l(t,e){var n,r=f.getBestModeForData(t);if(n=f.from(e,r),n!==f.BYTE&&n.bit<r.bit)throw new Error('\"'+t+'\" cannot be encoded with mode '+f.toString(n)+\".\\n Suggested mode is: \"+f.toString(r));switch(n!==f.KANJI||y.isKanjiModeEnabled()||(n=f.BYTE),n){case f.NUMERIC:return new p(t);case f.ALPHANUMERIC:return new d(t);case f.KANJI:return new v(t);case f.BYTE:return new h(t)}}var f=n(299),p=n(304),d=n(305),h=n(306),v=n(307),m=n(301),y=n(287),g=n(308);e.fromArray=function(t){return t.reduce(function(t,e){return\"string\"==typeof e?t.push(l(e,null)):e.data&&t.push(l(e.data,e.mode)),t},[])},e.fromString=function(t,n){for(var r=i(t,y.isKanjiModeEnabled()),o=s(r),a=c(o,n),l=g.find_path(a.map,\"start\",\"end\"),f=[],p=1;p<l.length-1;p++)f.push(a.table[l[p]].node);return e.fromArray(u(f))},e.rawSplit=function(t){return e.fromArray(i(t,y.isKanjiModeEnabled()))}},function(t,e,n){function r(t){this.mode=o.NUMERIC,this.data=t.toString()}var o=n(299);r.getBitsLength=function(t){return 10*Math.floor(t/3)+(t%3?t%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(t){var e,n,r;for(e=0;e+3<=this.data.length;e+=3)n=this.data.substr(e,3),r=parseInt(n,10),t.put(r,10);var o=this.data.length-e;o>0&&(n=this.data.substr(e),r=parseInt(n,10),t.put(r,3*o+1))},t.exports=r},function(t,e,n){function r(t){this.mode=o.ALPHANUMERIC,this.data=t}var o=n(299),i=[\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\" \",\"$\",\"%\",\"*\",\"+\",\"-\",\".\",\"/\",\":\"];r.getBitsLength=function(t){return 11*Math.floor(t/2)+6*(t%2)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(t){var e;for(e=0;e+2<=this.data.length;e+=2){var n=45*i.indexOf(this.data[e]);n+=i.indexOf(this.data[e+1]),t.put(n,11)}this.data.length%2&&t.put(i.indexOf(this.data[e]),6)},t.exports=r},function(t,e,n){function r(t){this.mode=i.BYTE,this.data=new o(t)}var o=n(281),i=n(299);r.getBitsLength=function(t){return 8*t},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(t){for(var e=0,n=this.data.length;e<n;e++)t.put(this.data[e],8)},t.exports=r},function(t,e,n){function r(t){this.mode=o.KANJI,this.data=t}var o=n(299),i=n(287);r.getBitsLength=function(t){return 13*t},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(t){var e;for(e=0;e<this.data.length;e++){var n=i.toSJIS(this.data[e]);if(n>=33088&&n<=40956)n-=33088;else{if(!(n>=57408&&n<=60351))throw new Error(\"Invalid SJIS character: \"+this.data[e]+\"\\nMake sure your charset is UTF-8\");n-=49472}n=192*(n>>>8&255)+(255&n),t.put(n,13)}},t.exports=r},function(t,e,n){\"use strict\";var r={single_source_shortest_paths:function(t,e,n){var o={},i={};i[e]=0;var a=r.PriorityQueue.make();a.push(e,0);for(var u,s,c,l,f,p,d,h,v;!a.empty();){u=a.pop(),s=u.value,l=u.cost,f=t[s]||{};for(c in f)f.hasOwnProperty(c)&&(p=f[c],d=l+p,h=i[c],v=\"undefined\"==typeof i[c],(v||h>d)&&(i[c]=d,a.push(c,d),o[c]=s))}if(\"undefined\"!=typeof n&&\"undefined\"==typeof i[n]){var m=[\"Could not find a path from \",e,\" to \",n,\".\"].join(\"\");throw new Error(m)}return o},extract_shortest_path_from_predecessor_list:function(t,e){for(var n,r=[],o=e;o;)r.push(o),n=t[o],o=t[o];return r.reverse(),r},find_path:function(t,e,n){var o=r.single_source_shortest_paths(t,e,n);return r.extract_shortest_path_from_predecessor_list(o,n)},PriorityQueue:{make:function(t){var e,n=r.PriorityQueue,o={};t=t||{};for(e in n)n.hasOwnProperty(e)&&(o[e]=n[e]);return o.queue=[],o.sorter=t.sorter||n.default_sorter,o},default_sorter:function(t,e){return t.cost-e.cost},push:function(t,e){var n={value:t,cost:e};this.queue.push(n),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};t.exports=r},function(t,e,n){function r(t,e,n){t.clearRect(0,0,e.width,e.height),e.style||(e.style={}),e.height=n,e.width=n,e.style.height=n+\"px\",e.style.width=n+\"px\"}function o(){try{return document.createElement(\"canvas\")}catch(t){throw new Error(\"You need to specify a canvas element\")}}var i=n(310);e.render=function(t,e,n){var a=n,u=e;\"undefined\"!=typeof a||e&&e.getContext||(a=e,e=void 0),e||(u=o()),a=i.getOptions(a);var s=i.getImageWidth(t.modules.size,a),c=u.getContext(\"2d\"),l=c.createImageData(s,s);return i.qrToImageData(l.data,t,a),r(c,u,s),c.putImageData(l,0,0),u},e.renderToDataURL=function(t,n,r){var o=r;\"undefined\"!=typeof o||n&&n.getContext||(o=n,n=void 0),o||(o={});var i=e.render(t,n,o),a=o.type||\"image/png\",u=o.rendererOpts||{};return i.toDataURL(a,u.quality)}},function(t,e){function n(t){if(\"string\"!=typeof t)throw new Error(\"Color should be defined as hex string\");var e=t.slice().replace(\"#\",\"\").split(\"\");if(e.length<3||5===e.length||e.length>8)throw new Error(\"Invalid hex color: \"+t);3!==e.length&&4!==e.length||(e=Array.prototype.concat.apply([],e.map(function(t){return[t,t]}))),6===e.length&&e.push(\"F\",\"F\");var n=parseInt(e.join(\"\"),16);return{r:n>>24&255,g:n>>16&255,b:n>>8&255,a:255&n,hex:\"#\"+e.slice(0,6).join(\"\")}}e.getOptions=function(t){t||(t={}),t.color||(t.color={});var e=\"undefined\"==typeof t.margin||null===t.margin||t.margin<0?4:t.margin,r=t.width&&t.width>=21?t.width:void 0,o=t.scale||4;return{width:r,scale:r?4:o,margin:e,color:{dark:n(t.color.dark||\"#000000ff\"),light:n(t.color.light||\"#ffffffff\")},type:t.type,rendererOpts:t.rendererOpts||{}}},e.getScale=function(t,e){return e.width&&e.width>=t+2*e.margin?e.width/(t+2*e.margin):e.scale},e.getImageWidth=function(t,n){var r=e.getScale(t,n);return Math.floor((t+2*n.margin)*r)},e.qrToImageData=function(t,n,r){for(var o=n.modules.size,i=n.modules.data,a=e.getScale(o,r),u=Math.floor((o+2*r.margin)*a),s=r.margin*a,c=[r.color.light,r.color.dark],l=0;l<u;l++)for(var f=0;f<u;f++){var p=4*(l*u+f),d=r.color.light;if(l>=s&&f>=s&&l<u-s&&f<u-s){var h=Math.floor((l-s)/a),v=Math.floor((f-s)/a);d=c[i[h*o+v]?1:0]}t[p++]=d.r,t[p++]=d.g,t[p++]=d.b,t[p]=d.a}}},function(t,e,n){function r(t,e){var n=t.a/255,r=e+'=\"'+t.hex+'\"';return n<1?r+\" \"+e+'-opacity=\"'+n.toFixed(2).slice(1)+'\"':r}function o(t,e,n){var r=t+e;return\"undefined\"!=typeof n&&(r+=\" \"+n),r}function i(t,e,n){for(var r=\"\",i=0,a=!1,u=0,s=0;s<t.length;s++){var c=Math.floor(s%e),l=Math.floor(s/e);c||a||(a=!0),t[s]?(u++,s>0&&c>0&&t[s-1]||(r+=a?o(\"M\",c+n,.5+l+n):o(\"m\",i,0),i=0,a=!1),c+1<e&&t[s+1]||(r+=o(\"h\",u),u=0)):i++}return r}var a=n(310);e.render=function(t,e,n){var o=a.getOptions(e),u=t.modules.size,s=t.modules.data,c=u+2*o.margin,l=o.color.light.a?\"<path \"+r(o.color.light,\"fill\")+' d=\"M0 0h'+c+\"v\"+c+'H0z\"/>':\"\",f=\"<path \"+r(o.color.dark,\"stroke\")+' d=\"'+i(s,u,o.margin)+'\"/>',p='viewBox=\"0 0 '+c+\" \"+c+'\"',d=o.width?'width=\"'+o.width+'\" height=\"'+o.width+'\" ':\"\",h='<svg xmlns=\"http://www.w3.org/2000/svg\" '+d+p+' shape-rendering=\"crispEdges\">'+l+f+\"</svg>\\n\";return\"function\"==typeof n&&n(null,h),h}},function(t,e){t.exports={guide:\"_2iIk\",right:\"_15Dj\",left:\"_I0Q\",qr:\"_111n\",up:\"_2fH-\",down:\"_1Pbk\",space:\"_3qj_\"}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}var o=n(203),i=r(o),a=n(267),u=r(a),s={37:\"left\",38:\"rotate\",39:\"right\",40:\"down\",32:\"space\",83:\"s\",82:\"r\",80:\"p\"},c=void 0,l=Object.keys(s).map(function(t){return parseInt(t,10)}),f=function(t){if(t.metaKey!==!0&&l.indexOf(t.keyCode)!==-1){var e=s[t.keyCode];e!==c&&(c=e,u.default[e].down(i.default))}},p=function(t){if(t.metaKey!==!0&&l.indexOf(t.keyCode)!==-1){var e=s[t.keyCode];e===c&&(c=\"\"),u.default[e].up(i.default)}};document.addEventListener(\"keydown\",f,!0),document.addEventListener(\"keyup\",p,!0)}]);\n//# sourceMappingURL=app-1.0.1.js.map"
  },
  {
    "path": "docs/css-1.0.1.css",
    "content": "body{background:#009688;padding:0;margin:0;font:20px/1 HanHei SC,PingHei,PingFang SC,STHeitiSC-Light,Helvetica Neue,Helvetica,Arial,sans-serif;overflow:hidden;cursor:default;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-font-feature-settings:\"liga\",\"kern\";direction:ltr;text-align:left}.r{float:right}.l{float:left}.clear{clear:both}.bg{background:url(\"//img.alicdn.com/tps/TB1qq7kNXXXXXacXFXXXXXXXXXX-400-186.png\") no-repeat;overflow:hidden}*{box-sizing:border-box;margin:0;padding:0;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}._3Lk6{width:640px;padding-top:42px;box-shadow:inset 0 0 10px #fff;border-radius:20px;position:absolute;top:50%;left:50%;margin:-480px 0 0 -320px;background:#efcc19}._3Lk6 b{display:block;width:20px;height:20px;padding:2px;border:2px solid #879372;margin:0 2px 2px 0;float:left}._3Lk6 b:after{content:\"\";display:block;width:12px;height:12px;background:#879372;overflow:hidden}._3Lk6 b.c{border-color:#000}._3Lk6 b.c:after{background:#000}._3Lk6 b.d{border-color:#560000}._3Lk6 b.d:after{background:#560000}._1fjB{width:480px;padding:45px 0 35px;border:solid #000;border-width:0 10px 10px;margin:0 auto;position:relative}._1fjB._3YUe{transform:translateY(5px)}._2iZA{width:390px;height:478px;border:5px solid;border-color:#987f0f #fae36c #fae36c #987f0f;margin:0 auto;position:relative}._2iZA ._2lJh{width:380px;height:468px;margin:0 auto;background:#9ead86;padding:8px;border:2px solid #494536}._1deS{width:108px;position:absolute;top:0;right:15px}._1deS p{line-height:47px;height:57px;padding:10px 0 0;white-space:nowrap;clear:both}._1deS ._8hag{position:absolute;width:114px;top:426px;left:0}._6pVK{border:2px solid #000;padding:3px 1px 1px 3px;width:228px}._6pVK p{width:220px;height:22px}._2OLA h1{text-align:center;font-weight:400;top:-12px;margin:0;padding:0;font-size:30px}._2OLA .DOXx,._2OLA h1{position:absolute;width:100%;left:0}._2OLA .DOXx{height:10px;top:0;overflow:hidden}._2OLA .DOXx span{display:block;width:10px;height:10px;overflow:hidden;background:#000}._2OLA .DOXx span._1xND{margin-right:10px}._2OLA .DOXx span._1cYd{margin-left:10px}._2OLA .nVeA{position:absolute;right:-70px;top:20px;width:44px}._2OLA .nVeA em{display:block;width:22px;height:22px;overflow:hidden;float:left}._2OLA .nVeA p{height:22px;clear:both}._2OLA .nVeA._395z{right:auto;left:-70px}.iHKP{height:24px;font-size:14px;float:right}.iHKP span{float:left;width:14px;height:24px}.iHKP ._2hru{background-position:-75px -25px}.iHKP ._2B-l{background-position:-89px -25px}.iHKP .ShGQ{background-position:-103px -25px}.iHKP ._2V1K{background-position:-117px -25px}.iHKP ._3bYF{background-position:-131px -25px}.iHKP ._1Z7B{background-position:-145px -25px}.iHKP ._1-BZ{background-position:-159px -25px}.iHKP ._3_id{background-position:-173px -25px}.iHKP ._3_Z_{background-position:-187px -25px}.iHKP .bNJM{background-position:-201px -25px}.iHKP ._2kln{background-position:-215px -25px}.iHKP .hOfM{background-position:-243px -25px}.iHKP ._2tuY{background-position:-229px -25px}._3Wmt div{height:22px;width:88px;float:right}.EHci{width:25px;height:21px;background-position:-175px -75px;position:absolute;top:2px;left:-12px}.EHci.TTF4{background-position:-150px -75px}._37mu{width:20px;height:18px;background-position:-100px -75px;position:absolute;top:3px;left:18px}._37mu._1vhq{background-position:-75px -75px}._20Jp{width:224px;height:200px;left:12px;text-align:center;overflow:hidden}._20Jp,._20Jp p{position:absolute;top:100px}._20Jp p{width:100%;line-height:1.4;left:0;font-family:initial;letter-spacing:6px;text-shadow:1px 1px 1px hsla(0,0%,100%,.35)}._20Jp .AFTs{width:80px;height:86px;margin:0 auto}._20Jp .AFTs,._20Jp .AFTs._3j_b,._20Jp .AFTs._26pe{background-position:0 -100px}._20Jp .AFTs._1Fxd,._20Jp .AFTs._7ELJ{background-position:-100px -100px}._20Jp .AFTs._1JBw,._20Jp .AFTs._9lMe{background-position:-200px -100px}._20Jp .AFTs._2aGx,._20Jp .AFTs._3aQ-{background-position:-300px -100px}._20Jp .AFTs._1JBw,._20Jp .AFTs._2aGx,._20Jp .AFTs._7ELJ,._20Jp .AFTs._26pe{transform:scaleX(-1);-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);-moz-transform:scaleX(-1);-o-transform:scaleX(-1)}.J9SA{width:580px;height:330px;margin:20px auto 0;position:relative}._1pg0{text-align:center;color:#111;position:absolute;white-space:nowrap;line-height:1.6}._1pg0.oW6K{font-size:16px}._1pg0 span._1zCL{position:absolute;top:5px;left:102px}._1pg0 i{display:block;position:relative;border:1px solid #000;border-radius:50%;box-shadow:0 3px 3px rgba(0,0,0,.2)}._1pg0 i:after,._1pg0 i:before{content:\"\";display:block;width:100%;height:100%;position:absolute;top:0;left:0;border-radius:50%;box-shadow:inset 0 5px 10px hsla(0,0%,100%,.8)}._1pg0 i:after{box-shadow:inset 0 -5px 10px rgba(0,0,0,.8)}._1pg0 i._23aw:before{box-shadow:inset 0 -3px 6px hsla(0,0%,100%,.6)}._1pg0 i._23aw:after{box-shadow:inset 0 5px 5px rgba(0,0,0,.6)}._1pg0._23pZ i{background:#5a65f1;background:-moz-linear-gradient(top,#6e77ef,#6e77ef)}._1pg0.RBZg i{background:#2dc421;background:-moz-linear-gradient(top,#4bc441,#4bc441)}._1pg0._3kg_ i{background:#dd1a1a;background:-moz-linear-gradient(top,#dc3333,#dc3333)}._1pg0.p4fG i{width:160px;height:160px}._1pg0._2TvZ i{width:100px;height:100px}._1pg0.oW6K i{width:52px;height:52px;box-shadow:1px 1px 1px rgba(0,0,0,.2)}._1pg0.oW6K i:after,._1pg0.oW6K i:before{box-shadow:inset 0 3px 6px hsla(0,0%,100%,.8)}._1pg0.oW6K i:after{box-shadow:inset 0 -3px 6px rgba(0,0,0,.8)}._1pg0.oW6K i._23aw:before{box-shadow:inset 0 -1px 2px hsla(0,0%,100%,.6)}._1pg0.oW6K i._23aw:after{box-shadow:inset 0 3px 3px rgba(0,0,0,.7)}._1pg0._2TvZ em{display:block;width:0;height:0;border:8px solid;border-color:transparent transparent #111;position:absolute;top:50%;left:50%;margin:-12px 0 0 -8px}._2iIk{position:absolute;left:115%;right:115%;text-align:center;line-height:1;white-space:nowrap}._2iIk._15Dj{right:auto;bottom:5%}._2iIk._I0Q{left:auto;bottom:5%}._2iIk p{text-align:left;margin-bottom:350px;opacity:.5}._2iIk p iframe{margin-top:20px}._2iIk a{color:#005850;font-size:30px;position:relative;z-index:1;cursor:alias;text-decoration:none}._2iIk._111n{left:auto;top:5%;width:250px;height:250px;opacity:.5;text-align:right;cursor:none}._2iIk._111n:hover img{width:100%;height:100%}._2iIk._111n img{width:38px;height:38px}._2iIk>div{width:100px;height:54px;background:#364d4b;display:inline-block;border-radius:4px;position:relative;color:#acc3c1;font-size:16px}._2iIk>div em{display:block;width:0;height:0;border:6px solid;border-color:transparent transparent #acc3c1;position:absolute;top:50%;left:50%;margin:-9px 0 0 -6px}._2iIk>div:after,._2iIk>div:before{content:\"\";display:block;width:100%;height:100%;position:absolute;top:0;left:0;border-radius:4px;box-shadow:inset 0 5px 10px hsla(0,0%,100%,.15)}._2iIk>div:before{box-shadow:inset 0 -5px 10px rgba(0,0,0,.15)}._2iIk ._2fH-{height:60px;display:block;margin:0 auto 2px}._2iIk ._1Pbk{margin:0 10px}._2iIk ._3qj_{left:auto;bottom:5%;height:80px;width:400px;line-height:80px;letter-spacing:2px}\n/*# sourceMappingURL=css-1.0.1.css.map*/"
  },
  {
    "path": "docs/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta name=\"renderer\" content=\"webkit\">\n    <meta name=\"description\" content=\"使用React、Redux、Immutable制作的俄罗斯方块\" />\n    <meta name=\"keywords\" content=\"俄罗斯方块,Tetris,React,Redux,Immuatble,JavaScript\">\n    <meta name=\"format-detection\" content=\"telephone=no\"/>\n    <script>;(function(){var w=parseInt(window.screen.width),s=w/640,u=navigator.userAgent.toLowerCase(),m='<meta name=\"viewport\" content=\"width=640,';if(/android (\\d+\\.\\d+)/.test(u)){if(parseFloat(RegExp.$1)>2.3)m+='minimum-scale='+s+',maximum-scale='+s+',';}else{m+='user-scalable=no,';}m+='target-densitydpi=device-dpi\">';document.write(m);}());</script>\n    <meta charset=\"UTF-8\">\n    <title>俄罗斯方块</title>\n    <link href=\"./loader.css\" rel=\"stylesheet\" />\n<link href=\"css-1.0.1.css\" rel=\"stylesheet\"></head>\n<body>\n<div id=\"root\">\n    <div class=\"load\">\n        <div class=\"loader\">加载中...</div>\n    </div>\n</div>\n<script type=\"text/javascript\" src=\"app-1.0.1.js\"></script></body>\n</html>"
  },
  {
    "path": "docs/loader.css",
    "content": "body{\n    background: #009688;\n    padding: 0;\n    margin: 0;\n}\n.load{\n    width:240px;\n    height:240px;\n    position:absolute;\n    top:50%;\n    left:50%;\n    margin:-120px 0 0 -120px;\n    color:#efcc19;\n    -webkit-animation:fadeIn 2s infinite ease-in-out;\n    animation:fadeIn 2s infinite ease-in-out;\n    -webkit-animation-delay:2s;\n    animation-delay:2s;\n    opacity:0;\n}\n.load .loader,.load .loader:before,.load .loader:after{\n    background:#efcc19;\n    -webkit-animation:load 1s infinite ease-in-out;\n    animation:load 1s infinite ease-in-out;\n    width:1em;\n    height:4em\n}\n.load .loader:before,.load .loader:after{\n    position:absolute;\n    top:0;\n    content:''\n}\n.load .loader:before{\n    left:-1.5em;\n    -webkit-animation-delay:-0.32s;\n    animation-delay:-0.32s\n}\n.load .loader{\n    text-indent:-9999em;\n    margin:8em auto;\n    position:relative;\n    font-size:11px;\n    -webkit-animation-delay:-0.16s;\n    animation-delay:-0.16s\n}\n.load .loader:after{\n    left:1.5em\n}\n@-webkit-keyframes load{\n    0%,80%,100%{\n        box-shadow:0 0 #efcc19;\n        height:4em\n    }\n    40%{\n        box-shadow:0 -2em #efcc19;height:5em\n    }\n}\n\n@keyframes load{\n    0%,80%,100%{\n        box-shadow:0 0 #efcc19;\n        height:4em\n    }\n    40%{\n        box-shadow:0 -2em #efcc19;\n        height:5em\n    }\n}\n\n@-webkit-keyframes fadeIn{\n    0%{\n        opacity:0;\n    }\n    100%{\n        opacity:1;\n    }\n}\n@keyframes fadeIn{\n    0%{\n        opacity:0;\n    }\n    100%{\n        opacity:1;\n    }\n}"
  },
  {
    "path": "i18n.json",
    "content": "{\n  \"lan\": [\"cn\", \"en\", \"fr\", \"fa\"],\n  \"default\": \"cn\",\n  \"data\": {\n    \"title\": {\n      \"cn\": \"俄罗斯方块\",\n      \"en\": \"T E T R I S\",\n      \"fr\": \"T E T R I S\",\n      \"fa\": \"خانه سازی\"\n    },\n    \"github\": {\n      \"cn\": \"GitHub\",\n      \"en\": \"GitHub\",\n      \"fr\": \"GitHub\",\n      \"fa\": \"گیت‌هاب\"\n    },\n    \"linkTitle\": {\n      \"cn\": \"查看源代码\",\n      \"en\": \"View data source\",\n      \"fr\": \"Afficher la source des données\",\n      \"fa\": \"مشاهده سورس پروژه\"\n    },\n    \"QRCode\":{\n      \"cn\": \"二维码\",\n      \"en\": \"QR code\",\n      \"fr\": \"QR code\",\n      \"fa\": \"کیوآر کد\"\n    },\n    \"titleCenter\": {\n      \"cn\": \"俄罗斯方块<br />TETRIS\",\n      \"en\": \"TETRIS\",\n      \"fr\": \"TETRIS\",\n      \"fa\": \"خانه سازی\"\n    },\n    \"point\": {\n      \"cn\": \"得分\",\n      \"en\": \"Point\",\n      \"fr\": \"Score\",\n      \"fa\": \"امتیاز\"\n    },\n    \"highestScore\": {\n      \"cn\": \"最高分\",\n      \"en\": \"Max\",\n      \"fr\": \"Max\",\n      \"fa\": \"حداکثر\"\n    },\n    \"lastRound\": {\n      \"cn\": \"上轮得分\",\n      \"en\": \"Last Round\",\n      \"fr\": \"Dernier Tour\",\n      \"fa\": \"آخرین دور\"\n    },\n    \"cleans\": {\n      \"cn\": \"消除行\",\n      \"en\": \"Cleans\",\n      \"fr\": \"Lignes\",\n      \"fa\": \"پاک کرد\"\n    },\n    \"level\": {\n      \"cn\": \"级别\",\n      \"en\": \"Level\",\n      \"fr\": \"Difficulté\",\n      \"fa\": \"سطح\"\n    },\n    \"startLine\": {\n      \"cn\": \"起始行\",\n      \"en\": \"Start Line\",\n      \"fr\": \"Ligne Départ\",\n      \"fa\": \"خط شروع\"\n    },\n    \"next\": {\n      \"cn\": \"下一个\",\n      \"en\": \"Next\",\n      \"fr\": \"Prochain\",\n      \"fa\": \"بعدی\"\n    },\n    \"pause\": {\n      \"cn\": \"暂停\",\n      \"en\": \"Pause\",\n      \"fr\": \"Pause\",\n      \"fa\": \"مکث\"\n    },\n    \"sound\": {\n      \"cn\": \"音效\",\n      \"en\": \"Sound\",\n      \"fr\": \"Sonore\",\n      \"fa\": \"صدا\"\n    },\n    \"reset\": {\n      \"cn\": \"重玩\",\n      \"en\": \"Reset\",\n      \"fr\": \"Réinitialiser\",\n      \"fa\": \"ریست\"\n    },\n    \"rotation\": {\n      \"cn\": \"旋转\",\n      \"en\": \"Rotation\",\n      \"fr\": \"Rotation\",\n      \"fa\": \"چرخش\"\n    },\n    \"left\": {\n      \"cn\": \"左移\",\n      \"en\": \"Left\",\n      \"fr\": \"Gauche\",\n      \"fa\": \"چپ\"\n    },\n    \"right\": {\n      \"cn\": \"右移\",\n      \"en\": \"Right\",\n      \"fr\": \"Droite\",\n      \"fa\": \"راست\"\n    },\n    \"down\": {\n      \"cn\": \"下移\",\n      \"en\": \"Down\",\n      \"fr\": \"Bas\",\n      \"fa\": \"پایین\"\n    },\n    \"drop\": {\n      \"cn\": \"掉落\",\n      \"en\": \"Drop\",\n      \"fr\": \"Tomber\",\n      \"fa\": \"سقوط\"\n    }\n  }\n}\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"react-tetris\",\n  \"version\": \"1.0.1\",\n  \"description\": \"使用React、Redux、Immutable编写「俄罗斯方块」。Use Tetact, Redux, Immutable to coding \\\"Tetris\\\".\",\n  \"scripts\": {\n    \"start\": \"webpack-dev-server --progress\",\n    \"build\": \"rm -rf ./docs/* && webpack --config ./webpack.production.config.js --progress && ls ./docs\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/chvin/react-tetris.git\"\n  },\n  \"keywords\": [\n    \"Tetris\",\n    \"React\",\n    \"Redux\",\n    \"Immutable\",\n    \"俄罗斯方块\"\n  ],\n  \"author\": \"Chvin\",\n  \"license\": \"Apache-2.0\",\n  \"bugs\": {\n    \"url\": \"https://github.com/chvin/react-tetris/issues\"\n  },\n  \"homepage\": \"https://github.com/chvin/react-tetris#readme\",\n  \"devDependencies\": {\n    \"autoprefixer\": \"^6.7.2\",\n    \"babel-core\": \"^6.13.2\",\n    \"babel-loader\": \"^6.2.4\",\n    \"babel-plugin-react-transform\": \"^2.0.2\",\n    \"babel-preset-es2015\": \"^6.13.2\",\n    \"babel-preset-react\": \"^6.16.0\",\n    \"copy-webpack-plugin\": \"^3.0.1\",\n    \"css-loader\": \"^0.23.1\",\n    \"eslint\": \"^3.3.1\",\n    \"eslint-config-airbnb\": \"^10.0.1\",\n    \"eslint-loader\": \"^1.6.1\",\n    \"eslint-plugin-import\": \"^1.13.0\",\n    \"eslint-plugin-jsx-a11y\": \"^2.1.0\",\n    \"eslint-plugin-react\": \"^6.1.1\",\n    \"extract-text-webpack-plugin\": \"^1.0.1\",\n    \"file-loader\": \"^0.9.0\",\n    \"html-webpack-plugin\": \"^2.22.0\",\n    \"json-loader\": \"^0.5.4\",\n    \"less\": \"^2.7.1\",\n    \"less-loader\": \"^2.2.3\",\n    \"open-browser-webpack-plugin\": \"0.0.3\",\n    \"postcss\": \"^5.2.12\",\n    \"postcss-loader\": \"^1.2.2\",\n    \"precss\": \"^1.4.0\",\n    \"react-transform-hmr\": \"^1.0.4\",\n    \"style-loader\": \"^0.13.1\",\n    \"url-loader\": \"^0.5.7\",\n    \"webpack\": \"^1.13.1\",\n    \"webpack-dev-server\": \"^1.14.1\"\n  },\n  \"dependencies\": {\n    \"classnames\": \"^2.2.5\",\n    \"immutable\": \"^3.8.1\",\n    \"prop-types\": \"^15.5.10\",\n    \"qrcode\": \"^1.2.0\",\n    \"react\": \"^15.3.0\",\n    \"react-dom\": \"^15.3.0\",\n    \"react-redux\": \"^4.4.5\",\n    \"redux\": \"^3.5.2\",\n    \"redux-immutable\": \"^3.0.8\"\n  }\n}\n"
  },
  {
    "path": "server/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta name=\"renderer\" content=\"webkit\">\n    <meta name=\"description\" content=\"使用React、Redux、Immutable制作的俄罗斯方块\" />\n    <meta name=\"keywords\" content=\"俄罗斯方块,Tetris,React,Redux,Immuatble,JavaScript\">\n    <meta name=\"format-detection\" content=\"telephone=no\"/>\n    <script>;(function(){var w=parseInt(window.screen.width),s=w/640,u=navigator.userAgent.toLowerCase(),m='<meta name=\"viewport\" content=\"width=640,';if(/android (\\d+\\.\\d+)/.test(u)){if(parseFloat(RegExp.$1)>2.3)m+='minimum-scale='+s+',maximum-scale='+s+',';}else{m+='user-scalable=no,';}m+='target-densitydpi=device-dpi\">';document.write(m);}());</script>\n    <meta charset=\"UTF-8\">\n    <title>俄罗斯方块</title>\n    <link href=\"./loader.css\" rel=\"stylesheet\" />\n    <link href=\"./css.css\" rel=\"stylesheet\">\n</head>\n<body>\n    <div id=\"root\">\n        <div class=\"load\">\n            <div class=\"loader\">加载中...</div>\n        </div>\n    </div>\n    <script src=\"app.js\"></script>\n</body>\n</html>"
  },
  {
    "path": "server/index.tmpl.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta name=\"renderer\" content=\"webkit\">\n    <meta name=\"description\" content=\"使用React、Redux、Immutable制作的俄罗斯方块\" />\n    <meta name=\"keywords\" content=\"俄罗斯方块,Tetris,React,Redux,Immuatble,JavaScript\">\n    <meta name=\"format-detection\" content=\"telephone=no\"/>\n    <script>;(function(){var w=parseInt(window.screen.width),s=w/640,u=navigator.userAgent.toLowerCase(),m='<meta name=\"viewport\" content=\"width=640,';if(/android (\\d+\\.\\d+)/.test(u)){if(parseFloat(RegExp.$1)>2.3)m+='minimum-scale='+s+',maximum-scale='+s+',';}else{m+='user-scalable=no,';}m+='target-densitydpi=device-dpi\">';document.write(m);}());</script>\n    <meta charset=\"UTF-8\">\n    <title>俄罗斯方块</title>\n    <link href=\"./loader.css\" rel=\"stylesheet\" />\n</head>\n<body>\n<div id=\"root\">\n    <div class=\"load\">\n        <div class=\"loader\">加载中...</div>\n    </div>\n</div>\n</body>\n</html>"
  },
  {
    "path": "src/actions/index.js",
    "content": "import { getNextType } from '../unit';\nimport * as reducerType from '../unit/reducerType';\nimport Block from '../unit/block';\nimport keyboard from './keyboard';\n\nfunction nextBlock(next = getNextType()) {\n  return {\n    type: reducerType.NEXT_BLOCK,\n    data: next,\n  };\n}\n\nfunction moveBlock(option) {\n  return {\n    type: reducerType.MOVE_BLOCK,\n    data: option.reset === true ? null : new Block(option),\n  };\n}\n\nfunction speedStart(n) {\n  return {\n    type: reducerType.SPEED_START,\n    data: n,\n  };\n}\n\nfunction speedRun(n) {\n  return {\n    type: reducerType.SPEED_RUN,\n    data: n,\n  };\n}\n\nfunction startLines(n) {\n  return {\n    type: reducerType.START_LINES,\n    data: n,\n  };\n}\n\nfunction matrix(data) {\n  return {\n    type: reducerType.MATRIX,\n    data,\n  };\n}\n\nfunction lock(data) {\n  return {\n    type: reducerType.LOCK,\n    data,\n  };\n}\n\nfunction clearLines(data) {\n  return {\n    type: reducerType.CLEAR_LINES,\n    data,\n  };\n}\n\nfunction points(data) {\n  return {\n    type: reducerType.POINTS,\n    data,\n  };\n}\n\nfunction max(data) {\n  return {\n    type: reducerType.MAX,\n    data,\n  };\n}\n\nfunction reset(data) {\n  return {\n    type: reducerType.RESET,\n    data,\n  };\n}\n\nfunction drop(data) {\n  return {\n    type: reducerType.DROP,\n    data,\n  };\n}\n\nfunction pause(data) {\n  return {\n    type: reducerType.PAUSE,\n    data,\n  };\n}\n\nfunction music(data) {\n  return {\n    type: reducerType.MUSIC,\n    data,\n  };\n}\n\nfunction focus(data) {\n  return {\n    type: reducerType.FOCUS,\n    data,\n  };\n}\n\nexport default {\n  nextBlock,\n  moveBlock,\n  speedStart,\n  speedRun,\n  startLines,\n  matrix,\n  lock,\n  clearLines,\n  points,\n  reset,\n  max,\n  drop,\n  pause,\n  keyboard,\n  music,\n  focus,\n};\n"
  },
  {
    "path": "src/actions/keyboard.js",
    "content": "import * as reducerType from '../unit/reducerType';\n\nfunction drop(data) {\n  return {\n    type: reducerType.KEY_DROP,\n    data,\n  };\n}\n\nfunction down(data) {\n  return {\n    type: reducerType.KEY_DOWN,\n    data,\n  };\n}\n\nfunction left(data) {\n  return {\n    type: reducerType.KEY_LEFT,\n    data,\n  };\n}\n\nfunction right(data) {\n  return {\n    type: reducerType.KEY_RIGHT,\n    data,\n  };\n}\n\nfunction rotate(data) {\n  return {\n    type: reducerType.KEY_ROTATE,\n    data,\n  };\n}\n\nfunction reset(data) {\n  return {\n    type: reducerType.KEY_RESET,\n    data,\n  };\n}\n\nfunction music(data) {\n  return {\n    type: reducerType.KEY_MUSIC,\n    data,\n  };\n}\n\nfunction pause(data) {\n  return {\n    type: reducerType.KEY_PAUSE,\n    data,\n  };\n}\n\nexport default {\n  drop,\n  down,\n  left,\n  right,\n  rotate,\n  reset,\n  music,\n  pause,\n};\n"
  },
  {
    "path": "src/components/decorate/index.js",
    "content": "import React from 'react';\nimport cn from 'classnames';\n\nimport { i18n, lan } from '../../unit/const';\nimport style from './index.less';\n\nexport default class Decorate extends React.Component {\n  shouldComponentUpdate() {\n    return false;\n  }\n  render() {\n    return (\n      <div className={style.decorate}>\n        <div className={style.topBorder}>\n          <span className={cn(['l', style.mr])} style={{ width: 40 }} />\n          <span className={cn(['l', style.mr])} />\n          <span className={cn(['l', style.mr])} />\n          <span className={cn(['l', style.mr])} />\n          <span className={cn(['l', style.mr])} />\n          <span className={cn(['r', style.ml])} style={{ width: 40 }} />\n          <span className={cn(['r', style.ml])} />\n          <span className={cn(['r', style.ml])} />\n          <span className={cn(['r', style.ml])} />\n          <span className={cn(['r', style.ml])} />\n        </div>\n        <h1>{i18n.title[lan]}</h1>\n        <div className={style.view}>\n          <b className=\"c\" />\n          <div className=\"clear\" />\n          <b className=\"c\" />\n          <b className=\"c\" />\n          <div className=\"clear\" />\n          <em />\n          <b className=\"c\" />\n          <p />\n          <em />\n          <b className=\"c\" />\n          <div className=\"clear\" />\n          <b className=\"c\" />\n          <b className=\"c\" />\n          <div className=\"clear\" />\n          <em />\n          <b className=\"c\" />\n          <p />\n          <b className=\"c\" />\n          <b className=\"c\" />\n          <b className=\"c\" />\n          <b className=\"c\" />\n          <p />\n          <b className=\"c\" />\n          <div className=\"clear\" />\n          <b className=\"c\" />\n          <b className=\"c\" />\n          <div className=\"clear\" />\n          <b className=\"c\" />\n          <p />\n          <b className=\"c\" />\n          <b className=\"c\" />\n          <div className=\"clear\" />\n          <b className=\"c\" />\n          <div className=\"clear\" />\n          <b className=\"c\" />\n          <p />\n          <em />\n          <b className=\"c\" />\n          <div className=\"clear\" />\n          <em />\n          <b className=\"c\" />\n          <div className=\"clear\" />\n          <em />\n          <b className=\"c\" />\n          <div className=\"clear\" />\n          <em />\n          <b className=\"c\" />\n        </div>\n        <div className={cn([style.view, style.l])}>\n          <em />\n          <b className=\"c\" />\n          <div className=\"clear\" />\n          <b className=\"c\" />\n          <b className=\"c\" />\n          <div className=\"clear\" />\n          <b className=\"c\" />\n          <p />\n          <b className=\"c\" />\n          <div className=\"clear\" />\n          <b className=\"c\" />\n          <b className=\"c\" />\n          <div className=\"clear\" />\n          <b className=\"c\" />\n          <p />\n          <b className=\"c\" />\n          <b className=\"c\" />\n          <b className=\"c\" />\n          <b className=\"c\" />\n          <p />\n          <em />\n          <b className=\"c\" />\n          <div className=\"clear\" />\n          <b className=\"c\" />\n          <b className=\"c\" />\n          <div className=\"clear\" />\n          <em />\n          <b className=\"c\" />\n          <p />\n          <b className=\"c\" />\n          <b className=\"c\" />\n          <div className=\"clear\" />\n          <em />\n          <b className=\"c\" />\n          <div className=\"clear\" />\n          <em />\n          <b className=\"c\" />\n          <p />\n          <b className=\"c\" />\n          <div className=\"clear\" />\n          <b className=\"c\" />\n          <div className=\"clear\" />\n          <b className=\"c\" />\n          <div className=\"clear\" />\n          <b className=\"c\" />\n        </div>\n      </div>\n    );\n  }\n}\n"
  },
  {
    "path": "src/components/decorate/index.less",
    "content": ".decorate{\n  h1{\n    position: absolute;\n    width: 100%;\n    text-align: center;\n    font-weight: normal;\n    top: -12px;\n    left: 0;\n    margin: 0;\n    padding: 0;\n    font-size: 30px;\n  }\n  .topBorder{\n    position:absolute;\n    height:10px;\n    width:100%;\n    position:absolute;\n    top:0px;\n    left:0px;\n    overflow:hidden;\n    span{\n      display:block;\n      width:10px;\n      height:10px;\n      overflow:hidden;\n      background:#000;\n      &.mr{\n        margin-right:10px;\n      }\n      &.ml{\n        margin-left:10px;\n      }\n    }\n  }\n  .view{\n    position: absolute;\n    right: -70px;\n    top: 20px;\n    width: 44px;\n    em {\n      display: block;\n      width: 22px;\n      height: 22px;\n      overflow: hidden;\n      float: left;\n    }\n    p {\n      height: 22px;\n      clear: both;\n    }\n    &.l{\n      right: auto;\n      left: -70px;\n    }\n  }\n}"
  },
  {
    "path": "src/components/guide/index.js",
    "content": "import React from 'react';\nimport QRCode from 'qrcode';\nimport style from './index.less';\nimport { transform, i18n, lan } from '../../unit/const';\nimport { isMobile } from '../../unit';\n\n\nexport default class Guide extends React.Component {\n  constructor() {\n    super();\n    this.state = {\n      isMobile: isMobile(),\n      QRCode: '',\n    };\n  }\n  componentWillMount() {\n    if (this.state.isMobile) {\n      return;\n    }\n    QRCode.toDataURL(location.href, { margin: 1 })\n        .then(dataUrl => this.setState({ QRCode: dataUrl }));\n  }\n  shouldComponentUpdate(state) {\n    if (state.QRCode === this.state.QRCode) {\n      return false;\n    }\n    return true;\n  }\n  render() {\n    if (this.state.isMobile) {\n      return (\n        null\n      );\n    }\n    return (\n      <div style={{ display: this.state.isMobile ? 'none' : 'block' }}>\n        <div className={`${style.guide} ${style.right}`}>\n          <div className={style.up}>\n            <em style={{ [transform]: 'translate(0,-3px) scale(1,2)' }} />\n          </div>\n          <div className={style.left}>\n            <em style={{ [transform]: 'translate(-7px,3px) rotate(-90deg) scale(1,2)' }} />\n          </div>\n          <div className={style.down}>\n            <em style={{ [transform]: 'translate(0,9px) rotate(180deg) scale(1,2)' }} /></div>\n          <div className={style.right}>\n            <em style={{ [transform]: 'translate(7px,3px)rotate(90deg) scale(1,2)' }} />\n          </div>\n        </div>\n        <div className={`${style.guide} ${style.left}`}>\n          <p>\n            <a href=\"https://github.com/chvin/react-tetris\" rel=\"noopener noreferrer\" target=\"_blank\" title={i18n.linkTitle[lan]}>{`${i18n.github[lan]}:`}</a><br />\n            <iframe\n              src=\"https://ghbtns.com/github-btn.html?user=chvin&repo=react-tetris&type=star&count=true\"\n              frameBorder=\"0\"\n              scrolling=\"0\"\n              width=\"170px\"\n              height=\"20px\"\n              style={{ [transform]: 'scale(1.68)', [`${transform}Origin`]: 'center left' }}\n            />\n            <br />\n            <iframe\n              src=\"https://ghbtns.com/github-btn.html?user=chvin&repo=react-tetris&type=fork&count=true\"\n              frameBorder=\"0\"\n              scrolling=\"0\"\n              width=\"170px\"\n              height=\"20px\"\n              style={{ [transform]: 'scale(1.68)', [`${transform}Origin`]: 'center left' }}\n            />\n          </p>\n          <div className={style.space}>SPACE</div>\n        </div>\n        { this.state.QRCode !== '' ? (\n          <div className={`${style.guide} ${style.qr}`}>\n            <img\n              src={this.state.QRCode}\n              alt={i18n.QRCode[lan]}\n            />\n          </div>\n        ) : null }\n      </div>\n    );\n  }\n}\n\n"
  },
  {
    "path": "src/components/guide/index.less",
    "content": ".background(@from, @to){\n  background: (@from + @to)/2;\n  background: -webkit-gradient(linear, left top, left bottom, from(@from), to(@to));\n  background: -moz-linear-gradient(top,  @from,  @from);\n  // IE9使用filter背景渐变, 但因为使用了borader-radius, 所以不兼容, IE9使用中和的背景色即可\n  //filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='@{from}', endColorstr='@{to}');\n}\n\n.guide {\n  position: absolute;\n  left: 115%;\n  right: 115%;\n  text-align:center;\n  line-height: 1;\n  white-space: nowrap;\n  &.right{\n    right: auto;\n    bottom: 5%;\n  }\n  &.left{\n    left: auto;\n    bottom: 5%;\n  }\n  p{\n    text-align: left;\n    margin-bottom: 350px;\n    opacity: .5;\n    iframe{\n      margin-top: 20px;\n    }\n  }\n\n  a{\n    color:#005850;\n    font-size:30px;\n    position:relative;\n    z-index:1;\n    cursor: alias;\n    text-decoration: none;\n  }\n  &.qr{\n    left: auto;\n    top: 5%;\n    width: 250px;\n    height:250px;\n    opacity: .5;\n    text-align: right;\n    cursor: none;\n    &:hover{\n      img{\n        width: 100%;\n        height: 100%;\n      }\n    }\n    img{\n      width: 38px;\n      height: 38px;\n    }\n  }\n\n  &>div{\n    width: 100px;\n    height: 54px;\n    background: /*#404040*/#364d4b;\n    display:inline-block;\n    border-radius: 4px;\n    position: relative;\n    color: #acc3c1;\n    font-size: 16px;\n    em {\n      display: block;\n      width: 0;\n      height: 0;\n      border: 6px solid;\n      border-color: transparent transparent /*#ccc*/#acc3c1;\n      position: absolute;\n      top: 50%;\n      left: 50%;\n      margin: -9px 0 0 -6px;\n    }\n    &:before, &:after{\n      content: '';\n      display: block;\n      width: 100%;\n      height: 100%;\n      position: absolute;\n      top: 0;\n      left: 0;\n      border-radius:4px;\n      box-shadow: 0 5px 10px rgba(255, 255, 255, .15) inset;\n    }\n    &:before{\n      box-shadow: 0 -5px 10px rgba(0, 0, 0, .15) inset;\n    }\n  }\n  .up{\n    height: 60px;\n    display:block;\n    margin:0 auto 2px;\n  }\n  .down{\n    margin:0 10px;\n  }\n  .space{\n    left: auto;\n    bottom: 5%;\n    height: 80px;\n    width: 400px;\n    line-height: 80px;\n    letter-spacing: 2px;\n  }\n}"
  },
  {
    "path": "src/components/keyboard/button/index.js",
    "content": "import React from 'react';\nimport cn from 'classnames';\nimport propTypes from 'prop-types';\n\nimport style from './index.less';\nimport { transform } from '../../../unit/const';\n\nexport default class Button extends React.Component {\n  shouldComponentUpdate(nextProps) {\n    return nextProps.active !== this.props.active;\n  }\n  render() {\n    const {\n      active, color, size, top, left, label, position, arrow,\n    } = this.props;\n    return (\n      <div\n        className={cn({ [style.button]: true, [style[color]]: true, [style[size]]: true })}\n        style={{ top, left }}\n      >\n        <i\n          className={cn({ [style.active]: active })}\n          ref={(c) => { this.dom = c; }}\n        />\n        { size === 's1' && <em\n          style={{\n            [transform]: `${arrow} scale(1,2)`,\n          }}\n        /> }\n        <span className={cn({ [style.position]: position })}>{label}</span>\n      </div>\n    );\n  }\n}\n\nButton.propTypes = {\n  color: propTypes.string.isRequired,\n  size: propTypes.string.isRequired,\n  top: propTypes.number.isRequired,\n  left: propTypes.number.isRequired,\n  label: propTypes.string.isRequired,\n  position: propTypes.bool,\n  arrow: propTypes.string,\n  active: propTypes.bool.isRequired,\n};\n\n"
  },
  {
    "path": "src/components/keyboard/button/index.less",
    "content": ".background(@from, @to){\n  background: (@from + @to)/2;\n  background: -webkit-gradient(linear, left top, left bottom, from(@from), to(@to));\n  background: -moz-linear-gradient(top,  @from,  @from);\n  // IE9使用filter背景渐变, 但因为使用了borader-radius, 所以不兼容, IE9使用中和的背景色即可\n  //filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='@{from}', endColorstr='@{to}');\n}\n\n.button{\n  position: absolute;\n  text-align: center;\n  color: #111;\n  position: absolute;\n  white-space: nowrap;\n  line-height: 1.6;\n  &.s2{\n    font-size: 16px;\n  }\n  span.position{\n    position: absolute;\n    top: 5px;\n    left: 102px;\n  }\n  i{\n    display: block;\n    position: relative;\n    border: 1px solid #000;\n    border-radius: 50%;\n    &:before, &:after{\n      content: '';\n      display: block;\n      width: 100%;\n      height: 100%;\n      position: absolute;\n      top: 0;\n      left: 0;\n      border-radius:50%;\n      box-shadow: 0 5px 10px rgba(255, 255, 255, .8) inset;\n    }\n    &:after{\n      box-shadow: 0 -5px 10px rgba(0, 0, 0, .8) inset;\n    }\n    &.active{\n      &:before{\n        box-shadow: 0 -3px 6px rgba(255, 255, 255, .6) inset;\n      }\n      &:after{\n        box-shadow: 0 5px 5px rgba(0, 0, 0, .6) inset;\n      }\n    }\n    box-shadow: 0 3px 3px rgba(0, 0, 0, .2);\n\n  }\n\n  &.blue i{\n    .background(#6e77ef, #4652f3);\n  }\n  &.green i{\n    .background(#4bc441, #0ec400);\n  }\n  &.red i{\n    .background(#dc3333, #de0000);\n  }\n  &.s0 i{\n    width: 160px;\n    height: 160px;\n\n  }\n  &.s1 i{\n    width: 100px;\n    height: 100px;\n  }\n  &.s2 i{\n    width: 52px;\n    height: 52px;\n    &:before, &:after{\n      box-shadow: 0px 3px 6px rgba(255, 255, 255, .8) inset;\n    }\n    &:after{\n      box-shadow: 0px -3px 6px rgba(0, 0, 0, .8) inset;\n    }\n    &.active{\n      &:before{\n        box-shadow: 0px -1px 2px rgba(255, 255, 255, .6) inset;\n      }\n      &:after{\n        box-shadow: 0px 3px 3px rgba(0, 0, 0, .7) inset;\n      }\n    }\n    box-shadow: 1px 1px 1px rgba(0, 0, 0, .2);\n  }\n\n  &.s1{\n    em{\n        display: block;\n        width: 0;\n        height: 0;\n        border: 8px solid;\n        border-color: transparent transparent #111;\n        position: absolute;\n        top: 50%;\n        left: 50%;\n        margin: -12px 0 0 -8px;\n    }\n  }\n}"
  },
  {
    "path": "src/components/keyboard/index.js",
    "content": "import React from 'react';\nimport Immutable from 'immutable';\nimport propTypes from 'prop-types';\n\nimport style from './index.less';\nimport Button from './button';\nimport store from '../../store';\nimport todo from '../../control/todo';\nimport { i18n, lan } from '../../unit/const';\n\nexport default class Keyboard extends React.Component {\n  componentDidMount() {\n    const touchEventCatch = {}; // 对于手机操作, 触发了touchstart, 将作出记录, 不再触发后面的mouse事件\n\n    // 在鼠标触发mousedown时, 移除元素时可以不触发mouseup, 这里做一个兼容, 以mouseout模拟mouseup\n    const mouseDownEventCatch = {};\n    document.addEventListener('touchstart', (e) => {\n      if (e.preventDefault) {\n        e.preventDefault();\n      }\n    }, true);\n\n    // 解决issue: https://github.com/chvin/react-tetris/issues/24\n    document.addEventListener('touchend', (e) => {\n      if (e.preventDefault) {\n        e.preventDefault();\n      }\n    }, true);\n\n    // 阻止双指放大\n    document.addEventListener('gesturestart', (e) => {\n      if (e.preventDefault) {\n        event.preventDefault();\n      }\n    });\n\n    document.addEventListener('mousedown', (e) => {\n      if (e.preventDefault) {\n        e.preventDefault();\n      }\n    }, true);\n\n    Object.keys(todo).forEach((key) => {\n      this[`dom_${key}`].dom.addEventListener('mousedown', () => {\n        if (touchEventCatch[key] === true) {\n          return;\n        }\n        todo[key].down(store);\n        mouseDownEventCatch[key] = true;\n      }, true);\n      this[`dom_${key}`].dom.addEventListener('mouseup', () => {\n        if (touchEventCatch[key] === true) {\n          touchEventCatch[key] = false;\n          return;\n        }\n        todo[key].up(store);\n        mouseDownEventCatch[key] = false;\n      }, true);\n      this[`dom_${key}`].dom.addEventListener('mouseout', () => {\n        if (mouseDownEventCatch[key] === true) {\n          todo[key].up(store);\n        }\n      }, true);\n      this[`dom_${key}`].dom.addEventListener('touchstart', () => {\n        touchEventCatch[key] = true;\n        todo[key].down(store);\n      }, true);\n      this[`dom_${key}`].dom.addEventListener('touchend', () => {\n        todo[key].up(store);\n      }, true);\n    });\n  }\n  shouldComponentUpdate({ keyboard, filling }) {\n    return !Immutable.is(keyboard, this.props.keyboard) || filling !== this.props.filling;\n  }\n  render() {\n    const keyboard = this.props.keyboard;\n    return (\n      <div\n        className={style.keyboard}\n        style={{\n          marginTop: 20 + this.props.filling,\n        }}\n      >\n        <Button\n          color=\"blue\"\n          size=\"s1\"\n          top={0}\n          left={374}\n          label={i18n.rotation[lan]}\n          arrow=\"translate(0, 63px)\"\n          position\n          active={keyboard.get('rotate')}\n          ref={(c) => { this.dom_rotate = c; }}\n        />\n        <Button\n          color=\"blue\"\n          size=\"s1\"\n          top={180}\n          left={374}\n          label={i18n.down[lan]}\n          arrow=\"translate(0,-71px) rotate(180deg)\"\n          active={keyboard.get('down')}\n          ref={(c) => { this.dom_down = c; }}\n        />\n        <Button\n          color=\"blue\"\n          size=\"s1\"\n          top={90}\n          left={284}\n          label={i18n.left[lan]}\n          arrow=\"translate(60px, -12px) rotate(270deg)\"\n          active={keyboard.get('left')}\n          ref={(c) => { this.dom_left = c; }}\n        />\n        <Button\n          color=\"blue\"\n          size=\"s1\"\n          top={90}\n          left={464}\n          label={i18n.right[lan]}\n          arrow=\"translate(-60px, -12px) rotate(90deg)\"\n          active={keyboard.get('right')}\n          ref={(c) => { this.dom_right = c; }}\n        />\n        <Button\n          color=\"blue\"\n          size=\"s0\"\n          top={100}\n          left={52}\n          label={`${i18n.drop[lan]} (SPACE)`}\n          active={keyboard.get('drop')}\n          ref={(c) => { this.dom_space = c; }}\n        />\n        <Button\n          color=\"red\"\n          size=\"s2\"\n          top={0}\n          left={196}\n          label={`${i18n.reset[lan]}(R)`}\n          active={keyboard.get('reset')}\n          ref={(c) => { this.dom_r = c; }}\n        />\n        <Button\n          color=\"green\"\n          size=\"s2\"\n          top={0}\n          left={106}\n          label={`${i18n.sound[lan]}(S)`}\n          active={keyboard.get('music')}\n          ref={(c) => { this.dom_s = c; }}\n        />\n        <Button\n          color=\"green\"\n          size=\"s2\"\n          top={0}\n          left={16}\n          label={`${i18n.pause[lan]}(P)`}\n          active={keyboard.get('pause')}\n          ref={(c) => { this.dom_p = c; }}\n        />\n      </div>\n    );\n  }\n}\n\nKeyboard.propTypes = {\n  filling: propTypes.number.isRequired,\n  keyboard: propTypes.object.isRequired,\n};\n"
  },
  {
    "path": "src/components/keyboard/index.less",
    "content": ".keyboard{\n  width: 580px;\n  height: 330px;\n  margin: 20px auto 0;\n  position:relative;\n}"
  },
  {
    "path": "src/components/logo/index.js",
    "content": "import React from 'react';\nimport cn from 'classnames';\nimport propTypes from 'prop-types';\n\nimport style from './index.less';\nimport { i18n, lan } from '../../unit/const';\n\nexport default class Logo extends React.Component {\n  constructor() {\n    super();\n    this.state = {\n      style: style.r1,\n      display: 'none',\n    };\n  }\n  componentWillMount() {\n    this.animate(this.props);\n  }\n  componentWillReceiveProps(nextProps) {\n    if ( // 只有在游戏进入开始, 或结束时 触发改变\n      (\n        [this.props.cur, nextProps.cur].indexOf(false) !== -1 &&\n        (this.props.cur !== nextProps.cur)\n      ) ||\n      (this.props.reset !== nextProps.reset)\n    ) {\n      this.animate(nextProps);\n    }\n  }\n  shouldComponentUpdate({ cur, reset }) {\n    return cur !== this.props.cur || reset !== this.props.reset || !cur;\n  }\n  animate({ cur, reset }) {\n    clearTimeout(Logo.timeout);\n    this.setState({\n      style: style.r1,\n      display: 'none',\n    });\n    if (cur || reset) {\n      this.setState({ display: 'none' });\n      return;\n    }\n\n    let m = 'r'; // 方向\n    let count = 0;\n\n    const set = (func, delay) => {\n      if (!func) {\n        return;\n      }\n      Logo.timeout = setTimeout(func, delay);\n    };\n\n    const show = (func) => { // 显示\n      set(() => {\n        this.setState({\n          display: 'block',\n        });\n        if (func) {\n          func();\n        }\n      }, 150);\n    };\n\n    const hide = (func) => { // 隐藏\n      set(() => {\n        this.setState({\n          display: 'none',\n        });\n        if (func) {\n          func();\n        }\n      }, 150);\n    };\n\n    const eyes = (func, delay1, delay2) => { // 龙在眨眼睛\n      set(() => {\n        this.setState({ style: style[m + 2] });\n        set(() => {\n          this.setState({ style: style[m + 1] });\n          if (func) {\n            func();\n          }\n        }, delay2);\n      }, delay1);\n    };\n\n    const run = (func) => { // 开始跑步啦！\n      set(() => {\n        this.setState({ style: style[m + 4] });\n        set(() => {\n          this.setState({ style: style[m + 3] });\n          count++;\n          if (count === 10 || count === 20 || count === 30) {\n            m = m === 'r' ? 'l' : 'r';\n          }\n          if (count < 40) {\n            run(func);\n            return;\n          }\n          this.setState({ style: style[m + 1] });\n          if (func) {\n            set(func, 4000);\n          }\n        }, 100);\n      }, 100);\n    };\n\n    const dra = () => {\n      count = 0;\n      eyes(() => {\n        eyes(() => {\n          eyes(() => {\n            this.setState({ style: style[m + 2] });\n            run(dra);\n          }, 150, 150);\n        }, 150, 150);\n      }, 1000, 1500);\n    };\n\n    show(() => { // 忽隐忽现\n      hide(() => {\n        show(() => {\n          hide(() => {\n            show(() => {\n              dra(); // 开始运动\n            });\n          });\n        });\n      });\n    });\n  }\n  render() {\n    if (this.props.cur) {\n      return null;\n    }\n    return (\n      <div className={style.logo} style={{ display: this.state.display }}>\n        <div className={cn({ bg: true, [style.dragon]: true, [this.state.style]: true })} />\n        <p dangerouslySetInnerHTML={{ __html: i18n.titleCenter[lan] }} />\n      </div>\n    );\n  }\n}\n\nLogo.propTypes = {\n  cur: propTypes.bool,\n  reset: propTypes.bool.isRequired,\n};\nLogo.statics = {\n  timeout: null,\n};\n"
  },
  {
    "path": "src/components/logo/index.less",
    "content": ".logo {\n  width: 224px;\n  height: 200px;\n  position: absolute;\n  top: 100px;\n  left: 12px;\n  text-align: center;\n  overflow: hidden;\n  p {\n    position: absolute;\n    width: 100%;\n    line-height: 1.4;\n    top: 100px;\n    left: 0;\n    font-family: initial;\n    letter-spacing: 6px;\n    text-shadow: 1px 1px 1px rgba(255, 255, 255,.35);\n  }\n  .dragon {\n    width: 80px;\n    height: 86px;\n    margin: 0 auto;\n    background-position: 0 -100px;\n    &.r1,&.l1 {\n      background-position: 0 -100px;\n    }\n    &.r2,&.l2 {\n      background-position: -100px -100px;\n    }\n    &.r3,&.l3 {\n      background-position: -200px -100px;\n    }\n    &.r4,&.l4 {\n      background-position: -300px -100px;\n    }\n    &.l1,&.l2,&.l3,&.l4{\n      transform: scale(-1, 1);\n      -webkit-transform: scale(-1, 1);\n      -ms-transform: scale(-1, 1);\n      -moz-transform: scale(-1, 1);\n      -o-transform: scale(-1, 1);\n    }\n  }\n}"
  },
  {
    "path": "src/components/matrix/index.js",
    "content": "import React from 'react';\nimport immutable, { List } from 'immutable';\nimport classnames from 'classnames';\nimport propTypes from 'prop-types';\n\nimport style from './index.less';\nimport { isClear } from '../../unit/';\nimport { fillLine, blankLine } from '../../unit/const';\nimport states from '../../control/states';\n\nconst t = setTimeout;\n\nexport default class Matrix extends React.Component {\n  constructor() {\n    super();\n    this.state = {\n      clearLines: false,\n      animateColor: 2,\n      isOver: false,\n      overState: null,\n    };\n  }\n  componentWillReceiveProps(nextProps = {}) {\n    const clears = isClear(nextProps.matrix);\n    const overs = nextProps.reset;\n    this.setState({\n      clearLines: clears,\n      isOver: overs,\n    });\n    if (clears && !this.state.clearLines) {\n      this.clearAnimate(clears);\n    }\n    if (!clears && overs && !this.state.isOver) {\n      this.over(nextProps);\n    }\n  }\n  shouldComponentUpdate(nextProps = {}) { // 使用Immutable 比较两个List 是否相等\n    const props = this.props;\n    return !(\n      immutable.is(nextProps.matrix, props.matrix) &&\n      immutable.is(\n        (nextProps.cur && nextProps.cur.shape),\n        (props.cur && props.cur.shape)\n      ) &&\n      immutable.is(\n        (nextProps.cur && nextProps.cur.xy),\n        (props.cur && props.cur.xy)\n      )\n    ) || this.state.clearLines\n    || this.state.isOver;\n  }\n  getResult(props = this.props) {\n    const cur = props.cur;\n    const shape = cur && cur.shape;\n    const xy = cur && cur.xy;\n\n    let matrix = props.matrix;\n    const clearLines = this.state.clearLines;\n    if (clearLines) {\n      const animateColor = this.state.animateColor;\n      clearLines.forEach((index) => {\n        matrix = matrix.set(index, List([\n          animateColor,\n          animateColor,\n          animateColor,\n          animateColor,\n          animateColor,\n          animateColor,\n          animateColor,\n          animateColor,\n          animateColor,\n          animateColor,\n        ]));\n      });\n    } else if (shape) {\n      shape.forEach((m, k1) => (\n        m.forEach((n, k2) => {\n          if (n && xy.get(0) + k1 >= 0) { // 竖坐标可以为负\n            let line = matrix.get(xy.get(0) + k1);\n            let color;\n            if (line.get(xy.get(1) + k2) === 1 && !clearLines) { // 矩阵与方块重合\n              color = 2;\n            } else {\n              color = 1;\n            }\n            line = line.set(xy.get(1) + k2, color);\n            matrix = matrix.set(xy.get(0) + k1, line);\n          }\n        })\n      ));\n    }\n    return matrix;\n  }\n  clearAnimate() {\n    const anima = (callback) => {\n      t(() => {\n        this.setState({\n          animateColor: 0,\n        });\n        t(() => {\n          this.setState({\n            animateColor: 2,\n          });\n          if (typeof callback === 'function') {\n            callback();\n          }\n        }, 100);\n      }, 100);\n    };\n    anima(() => {\n      anima(() => {\n        anima(() => {\n          t(() => {\n            states.clearLines(this.props.matrix, this.state.clearLines);\n          }, 100);\n        });\n      });\n    });\n  }\n  over(nextProps) {\n    let overState = this.getResult(nextProps);\n    this.setState({\n      overState,\n    });\n\n    const exLine = (index) => {\n      if (index <= 19) {\n        overState = overState.set(19 - index, List(fillLine));\n      } else if (index >= 20 && index <= 39) {\n        overState = overState.set(index - 20, List(blankLine));\n      } else {\n        states.overEnd();\n        return;\n      }\n      this.setState({\n        overState,\n      });\n    };\n\n    for (let i = 0; i <= 40; i++) {\n      t(exLine.bind(null, i), 40 * (i + 1));\n    }\n  }\n  render() {\n    let matrix;\n    if (this.state.isOver) {\n      matrix = this.state.overState;\n    } else {\n      matrix = this.getResult();\n    }\n    return (\n      <div className={style.matrix}>{\n          matrix.map((p, k1) => (<p key={k1}>\n            {\n              p.map((e, k2) => <b\n                className={classnames({\n                  c: e === 1,\n                  d: e === 2,\n                })}\n                key={k2}\n              />)\n            }\n          </p>))\n      }\n      </div>\n    );\n  }\n}\n\nMatrix.propTypes = {\n  matrix: propTypes.object.isRequired,\n  cur: propTypes.object,\n  reset: propTypes.bool.isRequired,\n};\n"
  },
  {
    "path": "src/components/matrix/index.less",
    "content": ".matrix{\n  border:2px solid #000;\n  padding:3px 1px 1px 3px;\n  width:228px;\n  p{\n    width:220px;\n    height:22px;\n  }\n}"
  },
  {
    "path": "src/components/music/index.js",
    "content": "import React from 'react';\nimport cn from 'classnames';\nimport propTypes from 'prop-types';\n\nimport style from './index.less';\n\nexport default class Music extends React.Component {\n  shouldComponentUpdate({ data }) {\n    return data !== this.props.data;\n  }\n  render() {\n    return (\n      <div\n        className={cn(\n          {\n            bg: true,\n            [style.music]: true,\n            [style.c]: !this.props.data,\n          }\n        )}\n      />\n    );\n  }\n}\n\nMusic.propTypes = {\n  data: propTypes.bool.isRequired,\n};\n"
  },
  {
    "path": "src/components/music/index.less",
    "content": ".music{\n  width: 25px;\n  height: 21px;\n  background-position: -175px -75px;\n  position: absolute;\n  top: 2px;\n  left: -12px;\n  &.c{\n    background-position: -150px -75px;\n  }\n}"
  },
  {
    "path": "src/components/next/index.js",
    "content": "import React from 'react';\nimport propTypes from 'prop-types';\n\nimport style from './index.less';\nimport { blockShape } from '../../unit/const';\n\nconst xy = { // 方块在下一个中的坐标\n  I: [1, 0],\n  L: [0, 0],\n  J: [0, 0],\n  Z: [0, 0],\n  S: [0, 0],\n  O: [0, 1],\n  T: [0, 0],\n};\n\nconst empty = [\n  [0, 0, 0, 0],\n  [0, 0, 0, 0],\n];\n\nexport default class Next extends React.Component {\n  constructor() {\n    super();\n    this.state = {\n      block: empty,\n    };\n  }\n  componentWillMount() {\n    this.build(this.props.data);\n  }\n  componentWillReceiveProps(nextProps) {\n    this.build(nextProps.data);\n  }\n  shouldComponentUpdate(nextProps) {\n    return nextProps.data !== this.props.data;\n  }\n  build(type) {\n    const shape = blockShape[type];\n    const block = empty.map(e => ([...e]));\n    shape.forEach((m, k1) => {\n      m.forEach((n, k2) => {\n        if (n) {\n          block[k1 + xy[type][0]][k2 + xy[type][1]] = 1;\n        }\n      });\n    });\n    this.setState({ block });\n  }\n  render() {\n    return (\n      <div className={style.next}>\n        {\n          this.state.block.map((arr, k1) => (\n            <div key={k1}>\n              {\n                arr.map((e, k2) => (\n                  <b className={e ? 'c' : ''} key={k2} />\n                ))\n              }\n            </div>\n          ))\n        }\n      </div>\n    );\n  }\n}\n\nNext.propTypes = {\n  data: propTypes.string,\n};\n"
  },
  {
    "path": "src/components/next/index.less",
    "content": ".next{\n  div{\n    height: 22px;\n    width: 88px;\n    float: right;\n  }\n}"
  },
  {
    "path": "src/components/number/index.js",
    "content": "import React from 'react';\nimport cn from 'classnames';\nimport propTypes from 'prop-types';\n\nimport style from './index.less';\n\nconst render = (data) => (\n  <div className={style.number}>\n    {\n      data.map((e, k) => (\n        <span className={cn(['bg', style[`s_${e}`]])} key={k} />\n      ))\n    }\n  </div>\n);\n\nconst formate = (num) => (\n  num < 10 ? `0${num}`.split('') : `${num}`.split('')\n);\n\n\nexport default class Number extends React.Component {\n  constructor() {\n    super();\n    this.state = {\n      time_count: false,\n      time: new Date(),\n    };\n  }\n  componentWillMount() {\n    if (!this.props.time) {\n      return;\n    }\n    const clock = () => {\n      const count = +Number.timeInterval;\n      Number.timeInterval = setTimeout(() => {\n        this.setState({\n          time: new Date(),\n          time_count: count, // 用来做 shouldComponentUpdate 优化\n        });\n        clock();\n      }, 1000);\n    };\n    clock();\n  }\n  shouldComponentUpdate({ number }) {\n    if (this.props.time) { // 右下角时钟\n      if (this.state.time_count !== Number.time_count) {\n        if (this.state.time_count !== false) {\n          Number.time_count = this.state.time_count; // 记录clock上一次的缓存\n        }\n        return true;\n      }\n      return false; // 经过判断这次的时间已经渲染, 返回false\n    }\n    return this.props.number !== number;\n  }\n  componentWillUnmount() {\n    if (!this.props.time) {\n      return;\n    }\n    clearTimeout(Number.timeInterval);\n  }\n  render() {\n    if (this.props.time) { // 右下角时钟\n      const now = this.state.time;\n      const hour = formate(now.getHours());\n      const min = formate(now.getMinutes());\n      const sec = now.getSeconds() % 2;\n      const t = hour.concat(sec ? 'd' : 'd_c', min);\n      return (render(t));\n    }\n\n    const num = `${this.props.number}`.split('');\n    for (let i = 0, len = this.props.length - num.length; i < len; i++) {\n      num.unshift('n');\n    }\n    return (render(num));\n  }\n}\n\nNumber.statics = {\n  timeInterval: null,\n  time_count: null,\n};\n\nNumber.propTypes = {\n  number: propTypes.number,\n  length: propTypes.number,\n  time: propTypes.bool,\n};\n\nNumber.defaultProps = {\n  length: 6,\n};\n"
  },
  {
    "path": "src/components/number/index.less",
    "content": ".number{\n  height:24px;\n  font-size:14px;\n  float:right;\n  span{\n    float:left;\n    width:14px;\n    height:24px;\n  }\n  .s_0{background-position:-75px -25px;}\n  .s_1{background-position:-89px -25px;}\n  .s_2{background-position:-103px -25px;}\n  .s_3{background-position:-117px -25px;}\n  .s_4{background-position:-131px -25px;}\n  .s_5{background-position:-145px -25px;}\n  .s_6{background-position:-159px -25px;}\n  .s_7{background-position:-173px -25px;}\n  .s_8{background-position:-187px -25px;}\n  .s_9{background-position:-201px -25px;}\n  .s_n{background-position:-215px -25px;}\n  .s_d{background-position:-243px -25px;}\n  .s_d_c{background-position:-229px -25px;}\n}"
  },
  {
    "path": "src/components/pause/index.js",
    "content": "import React from 'react';\nimport cn from 'classnames';\nimport propTypes from 'prop-types';\n\nimport style from './index.less';\n\nexport default class Pause extends React.Component {\n  constructor() {\n    super();\n    this.state = { // 控制显示状态\n      showPause: false,\n    };\n  }\n  componentDidMount() {\n    this.setShake(this.props.data);\n  }\n  componentWillReceiveProps({ data }) {\n    this.setShake(data);\n  }\n  shouldComponentUpdate({ data }) {\n    if (data) { // 如果暂停了, 不会有太多的dispatch, 考虑到闪烁效果, 直接返回true\n      return true;\n    }\n    return data !== this.props.data;\n  }\n  setShake(bool) {  // 根据props显示闪烁或停止闪烁\n    if (bool && !Pause.timeout) {\n      Pause.timeout = setInterval(() => {\n        this.setState({\n          showPause: !this.state.showPause,\n        });\n      }, 250);\n    }\n    if (!bool && Pause.timeout) {\n      clearInterval(Pause.timeout);\n      this.setState({\n        showPause: false,\n      });\n      Pause.timeout = null;\n    }\n  }\n  render() {\n    return (\n      <div\n        className={cn(\n          {\n            bg: true,\n            [style.pause]: true,\n            [style.c]: this.state.showPause,\n          }\n        )}\n      />\n    );\n  }\n}\n\nPause.statics = {\n  timeout: null,\n};\n\nPause.propTypes = {\n  data: propTypes.bool.isRequired,\n};\n\nPause.defaultProps = {\n  data: false,\n};\n"
  },
  {
    "path": "src/components/pause/index.less",
    "content": ".pause {\n  width: 20px;\n  height: 18px;\n  background-position: -100px -75px;\n  position: absolute;\n  top: 3px;\n  left: 18px;\n  &.c {\n    background-position: -75px -75px;\n  }\n}"
  },
  {
    "path": "src/components/point/index.js",
    "content": "import React from 'react';\nimport propTypes from 'prop-types';\n\nimport Number from '../number';\nimport { i18n, lan } from '../../unit/const';\n\nconst DF = i18n.point[lan];\nconst ZDF = i18n.highestScore[lan];\nconst SLDF = i18n.lastRound[lan];\n\nexport default class Point extends React.Component {\n  constructor() {\n    super();\n    this.state = {\n      label: '',\n      number: 0,\n    };\n  }\n  componentWillMount() {\n    this.onChange(this.props);\n  }\n  componentWillReceiveProps(nextProps) {\n    this.onChange(nextProps);\n  }\n  shouldComponentUpdate({ cur, point, max }) {\n    const props = this.props;\n    return cur !== props.cur || point !== props.point || max !== props.max || !props.cur;\n  }\n  onChange({ cur, point, max }) {\n    clearInterval(Point.timeout);\n    if (cur) { // 在游戏进行中\n      this.setState({\n        label: point >= max ? ZDF : DF,\n        number: point,\n      });\n    } else { // 游戏未开始\n      const toggle = () => { // 最高分与上轮得分交替出现\n        this.setState({\n          label: SLDF,\n          number: point,\n        });\n        Point.timeout = setTimeout(() => {\n          this.setState({\n            label: ZDF,\n            number: max,\n          });\n          Point.timeout = setTimeout(toggle, 3000);\n        }, 3000);\n      };\n\n      if (point !== 0) { // 如果为上轮没玩, 也不用提示了\n        toggle();\n      } else {\n        this.setState({\n          label: ZDF,\n          number: max,\n        });\n      }\n    }\n  }\n  render() {\n    return (\n      <div>\n        <p>{ this.state.label }</p>\n        <Number number={this.state.number} />\n      </div>\n    );\n  }\n}\n\nPoint.statics = {\n  timeout: null,\n};\n\nPoint.propTypes = {\n  cur: propTypes.bool,\n  max: propTypes.number.isRequired,\n  point: propTypes.number.isRequired,\n};\n\n"
  },
  {
    "path": "src/containers/index.js",
    "content": "import React from 'react';\nimport { connect } from 'react-redux';\nimport classnames from 'classnames';\nimport propTypes from 'prop-types';\n\nimport style from './index.less';\n\nimport Matrix from '../components/matrix';\nimport Decorate from '../components/decorate';\nimport Number from '../components/number';\nimport Next from '../components/next';\nimport Music from '../components/music';\nimport Pause from '../components/pause';\nimport Point from '../components/point';\nimport Logo from '../components/logo';\nimport Keyboard from '../components/keyboard';\nimport Guide from '../components/guide';\n\nimport { transform, lastRecord, speeds, i18n, lan } from '../unit/const';\nimport { visibilityChangeEvent, isFocus } from '../unit/';\nimport states from '../control/states';\n\nclass App extends React.Component {\n  constructor() {\n    super();\n    this.state = {\n      w: document.documentElement.clientWidth,\n      h: document.documentElement.clientHeight,\n    };\n  }\n  componentWillMount() {\n    window.addEventListener('resize', this.resize.bind(this), true);\n  }\n  componentDidMount() {\n    if (visibilityChangeEvent) { // 将页面的焦点变换写入store\n      document.addEventListener(visibilityChangeEvent, () => {\n        states.focus(isFocus());\n      }, false);\n    }\n\n    if (lastRecord) { // 读取记录\n      if (lastRecord.cur && !lastRecord.pause) { // 拿到上一次游戏的状态, 如果在游戏中且没有暂停, 游戏继续\n        const speedRun = this.props.speedRun;\n        let timeout = speeds[speedRun - 1] / 2; // 继续时, 给予当前下落速度一半的停留时间\n        // 停留时间不小于最快速的速度\n        timeout = speedRun < speeds[speeds.length - 1] ? speeds[speeds.length - 1] : speedRun;\n        states.auto(timeout);\n      }\n      if (!lastRecord.cur) {\n        states.overStart();\n      }\n    } else {\n      states.overStart();\n    }\n  }\n  resize() {\n    this.setState({\n      w: document.documentElement.clientWidth,\n      h: document.documentElement.clientHeight,\n    });\n  }\n  render() {\n    let filling = 0;\n    const size = (() => {\n      const w = this.state.w;\n      const h = this.state.h;\n      const ratio = h / w;\n      let scale;\n      let css = {};\n      if (ratio < 1.5) {\n        scale = h / 960;\n      } else {\n        scale = w / 640;\n        filling = (h - (960 * scale)) / scale / 3;\n        css = {\n          paddingTop: Math.floor(filling) + 42,\n          paddingBottom: Math.floor(filling),\n          marginTop: Math.floor(-480 - (filling * 1.5)),\n        };\n      }\n      css[transform] = `scale(${scale})`;\n      return css;\n    })();\n\n    return (\n      <div\n        className={style.app}\n        style={size}\n      >\n        <div className={classnames({ [style.rect]: true, [style.drop]: this.props.drop })}>\n          <Decorate />\n          <div className={style.screen}>\n            <div className={style.panel}>\n              <Matrix\n                matrix={this.props.matrix}\n                cur={this.props.cur}\n                reset={this.props.reset}\n              />\n              <Logo cur={!!this.props.cur} reset={this.props.reset} />\n              <div className={style.state}>\n                <Point cur={!!this.props.cur} point={this.props.points} max={this.props.max} />\n                <p>{ this.props.cur ? i18n.cleans[lan] : i18n.startLine[lan] }</p>\n                <Number number={this.props.cur ? this.props.clearLines : this.props.startLines} />\n                <p>{i18n.level[lan]}</p>\n                <Number\n                  number={this.props.cur ? this.props.speedRun : this.props.speedStart}\n                  length={1}\n                />\n                <p>{i18n.next[lan]}</p>\n                <Next data={this.props.next} />\n                <div className={style.bottom}>\n                  <Music data={this.props.music} />\n                  <Pause data={this.props.pause} />\n                  <Number time />\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n        <Keyboard filling={filling} keyboard={this.props.keyboard} />\n        <Guide />\n      </div>\n    );\n  }\n}\n\nApp.propTypes = {\n  music: propTypes.bool.isRequired,\n  pause: propTypes.bool.isRequired,\n  matrix: propTypes.object.isRequired,\n  next: propTypes.string.isRequired,\n  cur: propTypes.object,\n  dispatch: propTypes.func.isRequired,\n  speedStart: propTypes.number.isRequired,\n  speedRun: propTypes.number.isRequired,\n  startLines: propTypes.number.isRequired,\n  clearLines: propTypes.number.isRequired,\n  points: propTypes.number.isRequired,\n  max: propTypes.number.isRequired,\n  reset: propTypes.bool.isRequired,\n  drop: propTypes.bool.isRequired,\n  keyboard: propTypes.object.isRequired,\n};\n\nconst mapStateToProps = (state) => ({\n  pause: state.get('pause'),\n  music: state.get('music'),\n  matrix: state.get('matrix'),\n  next: state.get('next'),\n  cur: state.get('cur'),\n  speedStart: state.get('speedStart'),\n  speedRun: state.get('speedRun'),\n  startLines: state.get('startLines'),\n  clearLines: state.get('clearLines'),\n  points: state.get('points'),\n  max: state.get('max'),\n  reset: state.get('reset'),\n  drop: state.get('drop'),\n  keyboard: state.get('keyboard'),\n});\n\nexport default connect(mapStateToProps)(App);\n"
  },
  {
    "path": "src/containers/index.less",
    "content": "body{\n  background: #009688;\n  padding: 0;margin:0;\n  font: 20px/1 \"HanHei SC\",\"PingHei\",\"PingFang SC\",\"STHeitiSC-Light\",\"Helvetica Neue\",\"Helvetica\",\"Arial\",sans-serif;\n  overflow: hidden;\n  cursor: default;\n  text-rendering: optimizeLegibility;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  -moz-font-feature-settings: 'liga', 'kern';\n  direction: ltr;\n  text-align: left;\n}\n\n:global{\n\n  .r{\n    float: right;\n  }\n  .l{\n    float: left;\n  }\n\n  .clear{\n    clear: both;\n  }\n\n  .bg{\n    background:url('//img.alicdn.com/tps/TB1qq7kNXXXXXacXFXXXXXXXXXX-400-186.png') no-repeat;\n    overflow:hidden;\n  }\n}\n\n\n*{\n  box-sizing: border-box;\n  margin: 0;\n  padding: 0;\n  -moz-user-select: none;\n  -webkit-user-select: none;\n  -ms-user-select: none;\n  -khtml-user-select: none;\n  user-select: none;\n}\n\n\n.app{\n  width: 640px;\n  padding-top: 42px;\n  box-shadow: 0 0 10px #fff inset;\n  border-radius: 20px;\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  margin: -480px 0 0 -320px;\n  background: #efcc19;\n  :global{\n    b {\n      display: block;\n      width: 20px;\n      height: 20px;\n      padding: 2px;\n      border: 2px solid #879372;\n      margin: 0 2px 2px 0;\n      float: left;\n      &:after {\n        content: '';\n        display: block;\n        width: 12px;\n        height: 12px;\n        background: #879372;\n        overflow: hidden;\n      }\n      &.c {\n        border-color: #000;\n        &:after {\n          background: #000;\n        }\n      }\n      &.d {\n        border-color: #560000;\n        &:after {\n          background: #560000;\n        }\n      }\n    }\n  }\n}\n\n.rect{\n  width: 480px;\n  padding: 45px 0 35px;\n  border: #000 solid;\n  border-width: 0 10px 10px;\n  margin: 0 auto;\n  position: relative;\n  &.drop{ -webkit-transform:translateY(5px);transform:translateY(5px); }\n\n}\n\n.screen{\n  width: 390px;\n  height: 478px;\n  border: solid 5px;\n  border-color: #987f0f #fae36c #fae36c #987f0f;\n  margin: 0 auto;\n  position: relative;\n  .panel{\n    width: 380px;\n    height: 468px;\n    margin: 0 auto;\n    background: #9ead86;\n    padding: 8px;\n    border: 2px solid #494536;\n  }\n}\n\n.state {\n  width: 108px;\n  position: absolute;\n  top: 0;\n  right: 15px;\n  p {\n    line-height: 47px;\n    height: 57px;\n    padding: 10px 0 0;\n    white-space: nowrap;\n    clear: both;\n  }\n  .bottom {\n    position: absolute;\n    width: 114px;\n    top: 426px;\n    left: 0;\n  }\n}"
  },
  {
    "path": "src/containers/loader.less",
    "content": "\n.load{\n\n  @-webkit-keyframes loads{\n    0%,80%,100%{\n      box-shadow:0 0 #efcc19;\n      height:4em}\n    40%{\n      box-shadow:0 -2em #efcc19;\n      height:5em\n    }\n  }\n\n  @keyframes loads{\n    0%,80%,100%{\n      box-shadow:0 0 #efcc19;\n      height:4em\n    }\n    40%{\n      box-shadow:0 -2em #efcc19;\n      height:5em\n    }\n  }\n\n  width:240px;\n  height:240px;\n  float:left;\n  position:relative;\n  color:#fff;\n  text-align:center;\n  position:absolute;\n  top:50%;\n  left:50%;\n  margin:-120px 0 0 -120px;\n  p{\n    position:absolute;\n    bottom:0;\n    left:-25%;\n    width:150%;\n    white-space:nowrap;\n    display:none;\n  }\n  .loader{\n    &,&:before,&:after{\n      background:#efcc19;\n      -webkit-animation:loads 1s infinite ease-in-out;\n      animation:loads 1s infinite ease-in-out;\n      width:1em;\n      height:4em\n    }\n    &:before,&:after{\n      position:absolute;top:0;content:''\n    }\n    &:before{\n      left:-1.5em;\n      -webkit-animation-delay:-0.32s;\n      animation-delay:-0.32s\n    }\n    text-indent:-9999em;\n    margin:8em auto;\n    position:relative;\n    font-size:11px;\n    -webkit-animation-delay:-0.16s;\n    animation-delay:-0.16s;\n    &:after{\n      left:1.5em\n    }\n  }\n}\n\n"
  },
  {
    "path": "src/control/index.js",
    "content": "import store from '../store';\nimport todo from './todo';\n\nconst keyboard = {\n  37: 'left',\n  38: 'rotate',\n  39: 'right',\n  40: 'down',\n  32: 'space',\n  83: 's',\n  82: 'r',\n  80: 'p',\n};\n\nlet keydownActive;\n\nconst boardKeys = Object.keys(keyboard).map(e => parseInt(e, 10));\n\nconst keyDown = (e) => {\n  if (e.metaKey === true || boardKeys.indexOf(e.keyCode) === -1) {\n    return;\n  }\n  const type = keyboard[e.keyCode];\n  if (type === keydownActive) {\n    return;\n  }\n  keydownActive = type;\n  todo[type].down(store);\n};\n\nconst keyUp = (e) => {\n  if (e.metaKey === true || boardKeys.indexOf(e.keyCode) === -1) {\n    return;\n  }\n  const type = keyboard[e.keyCode];\n  if (type === keydownActive) {\n    keydownActive = '';\n  }\n  todo[type].up(store);\n};\n\ndocument.addEventListener('keydown', keyDown, true);\ndocument.addEventListener('keyup', keyUp, true);\n\n"
  },
  {
    "path": "src/control/states.js",
    "content": "import { List } from 'immutable';\nimport store from '../store';\nimport { want, isClear, isOver } from '../unit/';\nimport actions from '../actions';\nimport { speeds, blankLine, blankMatrix, clearPoints, eachLines } from '../unit/const';\nimport { music } from '../unit/music';\n\n\nconst getStartMatrix = (startLines) => { // 生成startLines\n  const getLine = (min, max) => { // 返回标亮个数在min~max之间一行方块, (包含边界)\n    const count = parseInt((((max - min) + 1) * Math.random()) + min, 10);\n    const line = [];\n    for (let i = 0; i < count; i++) { // 插入高亮\n      line.push(1);\n    }\n    for (let i = 0, len = 10 - count; i < len; i++) { // 在随机位置插入灰色\n      const index = parseInt(((line.length + 1) * Math.random()), 10);\n      line.splice(index, 0, 0);\n    }\n\n    return List(line);\n  };\n  let startMatrix = List([]);\n\n  for (let i = 0; i < startLines; i++) {\n    if (i <= 2) { // 0-3\n      startMatrix = startMatrix.push(getLine(5, 8));\n    } else if (i <= 6) { // 4-6\n      startMatrix = startMatrix.push(getLine(4, 9));\n    } else { // 7-9\n      startMatrix = startMatrix.push(getLine(3, 9));\n    }\n  }\n  for (let i = 0, len = 20 - startLines; i < len; i++) { // 插入上部分的灰色\n    startMatrix = startMatrix.unshift(List(blankLine));\n  }\n  return startMatrix;\n};\n\nconst states = {\n  // 自动下落setTimeout变量\n  fallInterval: null,\n\n  // 游戏开始\n  start: () => {\n    if (music.start) {\n      music.start();\n    }\n    const state = store.getState();\n    states.dispatchPoints(0);\n    store.dispatch(actions.speedRun(state.get('speedStart')));\n    const startLines = state.get('startLines');\n    const startMatrix = getStartMatrix(startLines);\n    store.dispatch(actions.matrix(startMatrix));\n    store.dispatch(actions.moveBlock({ type: state.get('next') }));\n    store.dispatch(actions.nextBlock());\n    states.auto();\n  },\n\n  // 自动下落\n  auto: (timeout) => {\n    const out = (timeout < 0 ? 0 : timeout);\n    let state = store.getState();\n    let cur = state.get('cur');\n    const fall = () => {\n      state = store.getState();\n      cur = state.get('cur');\n      const next = cur.fall();\n      if (want(next, state.get('matrix'))) {\n        store.dispatch(actions.moveBlock(next));\n        states.fallInterval = setTimeout(fall, speeds[state.get('speedRun') - 1]);\n      } else {\n        let matrix = state.get('matrix');\n        const shape = cur && cur.shape;\n        const xy = cur && cur.xy;\n        shape.forEach((m, k1) => (\n          m.forEach((n, k2) => {\n            if (n && xy.get(0) + k1 >= 0) { // 竖坐标可以为负\n              let line = matrix.get(xy.get(0) + k1);\n              line = line.set(xy.get(1) + k2, 1);\n              matrix = matrix.set(xy.get(0) + k1, line);\n            }\n          })\n        ));\n        states.nextAround(matrix);\n      }\n    };\n    clearTimeout(states.fallInterval);\n    states.fallInterval = setTimeout(fall,\n      out === undefined ? speeds[state.get('speedRun') - 1] : out);\n  },\n\n  // 一个方块结束, 触发下一个\n  nextAround: (matrix, stopDownTrigger) => {\n    clearTimeout(states.fallInterval);\n    store.dispatch(actions.lock(true));\n    store.dispatch(actions.matrix(matrix));\n    if (typeof stopDownTrigger === 'function') {\n      stopDownTrigger();\n    }\n\n    const addPoints = (store.getState().get('points') + 10) +\n      ((store.getState().get('speedRun') - 1) * 2); // 速度越快, 得分越高\n\n    states.dispatchPoints(addPoints);\n\n    if (isClear(matrix)) {\n      if (music.clear) {\n        music.clear();\n      }\n      return;\n    }\n    if (isOver(matrix)) {\n      if (music.gameover) {\n        music.gameover();\n      }\n      states.overStart();\n      return;\n    }\n    setTimeout(() => {\n      store.dispatch(actions.lock(false));\n      store.dispatch(actions.moveBlock({ type: store.getState().get('next') }));\n      store.dispatch(actions.nextBlock());\n      states.auto();\n    }, 100);\n  },\n\n  // 页面焦点变换\n  focus: (isFocus) => {\n    store.dispatch(actions.focus(isFocus));\n    if (!isFocus) {\n      clearTimeout(states.fallInterval);\n      return;\n    }\n    const state = store.getState();\n    if (state.get('cur') && !state.get('reset') && !state.get('pause')) {\n      states.auto();\n    }\n  },\n\n  // 暂停\n  pause: (isPause) => {\n    store.dispatch(actions.pause(isPause));\n    if (isPause) {\n      clearTimeout(states.fallInterval);\n      return;\n    }\n    states.auto();\n  },\n\n  // 消除行\n  clearLines: (matrix, lines) => {\n    const state = store.getState();\n    let newMatrix = matrix;\n    lines.forEach(n => {\n      newMatrix = newMatrix.splice(n, 1);\n      newMatrix = newMatrix.unshift(List(blankLine));\n    });\n    store.dispatch(actions.matrix(newMatrix));\n    store.dispatch(actions.moveBlock({ type: state.get('next') }));\n    store.dispatch(actions.nextBlock());\n    states.auto();\n    store.dispatch(actions.lock(false));\n    const clearLines = state.get('clearLines') + lines.length;\n    store.dispatch(actions.clearLines(clearLines)); // 更新消除行\n\n    const addPoints = store.getState().get('points') +\n      clearPoints[lines.length - 1]; // 一次消除的行越多, 加分越多\n    states.dispatchPoints(addPoints);\n\n    const speedAdd = Math.floor(clearLines / eachLines); // 消除行数, 增加对应速度\n    let speedNow = state.get('speedStart') + speedAdd;\n    speedNow = speedNow > 6 ? 6 : speedNow;\n    store.dispatch(actions.speedRun(speedNow));\n  },\n\n  // 游戏结束, 触发动画\n  overStart: () => {\n    clearTimeout(states.fallInterval);\n    store.dispatch(actions.lock(true));\n    store.dispatch(actions.reset(true));\n    store.dispatch(actions.pause(false));\n  },\n\n  // 游戏结束动画完成\n  overEnd: () => {\n    store.dispatch(actions.matrix(blankMatrix));\n    store.dispatch(actions.moveBlock({ reset: true }));\n    store.dispatch(actions.reset(false));\n    store.dispatch(actions.lock(false));\n    store.dispatch(actions.clearLines(0));\n  },\n\n  // 写入分数\n  dispatchPoints: (point) => { // 写入分数, 同时判断是否创造最高分\n    store.dispatch(actions.points(point));\n    if (point > 0 && point > store.getState().get('max')) {\n      store.dispatch(actions.max(point));\n    }\n  },\n};\n\nexport default states;\n"
  },
  {
    "path": "src/control/todo/down.js",
    "content": "import { want } from '../../unit/';\nimport event from '../../unit/event';\nimport actions from '../../actions';\nimport states from '../states';\nimport { music } from '../../unit/music';\n\nconst down = (store) => {\n  store.dispatch(actions.keyboard.down(true));\n  if (store.getState().get('cur') !== null) {\n    event.down({\n      key: 'down',\n      begin: 40,\n      interval: 40,\n      callback: (stopDownTrigger) => {\n        const state = store.getState();\n        if (state.get('lock')) {\n          return;\n        }\n        if (music.move) {\n          music.move();\n        }\n        const cur = state.get('cur');\n        if (cur === null) {\n          return;\n        }\n        if (state.get('pause')) {\n          states.pause(false);\n          return;\n        }\n        const next = cur.fall();\n        if (want(next, state.get('matrix'))) {\n          store.dispatch(actions.moveBlock(next));\n          states.auto();\n        } else {\n          let matrix = state.get('matrix');\n          const shape = cur.shape;\n          const xy = cur.xy;\n          shape.forEach((m, k1) => (\n            m.forEach((n, k2) => {\n              if (n && xy.get(0) + k1 >= 0) { // 竖坐标可以为负\n                let line = matrix.get(xy.get(0) + k1);\n                line = line.set(xy.get(1) + k2, 1);\n                matrix = matrix.set(xy.get(0) + k1, line);\n              }\n            })\n          ));\n          states.nextAround(matrix, stopDownTrigger);\n        }\n      },\n    });\n  } else {\n    event.down({\n      key: 'down',\n      begin: 200,\n      interval: 100,\n      callback: () => {\n        if (store.getState().get('lock')) {\n          return;\n        }\n        const state = store.getState();\n        const cur = state.get('cur');\n        if (cur) {\n          return;\n        }\n        if (music.move) {\n          music.move();\n        }\n        let startLines = state.get('startLines');\n        startLines = startLines - 1 < 0 ? 10 : startLines - 1;\n        store.dispatch(actions.startLines(startLines));\n      },\n    });\n  }\n};\n\nconst up = (store) => {\n  store.dispatch(actions.keyboard.down(false));\n  event.up({\n    key: 'down',\n  });\n};\n\n\nexport default {\n  down,\n  up,\n};\n"
  },
  {
    "path": "src/control/todo/index.js",
    "content": "import left from './left';\nimport right from './right';\nimport down from './down';\nimport rotate from './rotate';\nimport space from './space';\nimport s from './s';\nimport r from './r';\nimport p from './p';\n\nexport default {\n  left,\n  down,\n  rotate,\n  right,\n  space,\n  r,\n  p,\n  s,\n};\n"
  },
  {
    "path": "src/control/todo/left.js",
    "content": "import { want } from '../../unit/';\nimport event from '../../unit/event';\nimport actions from '../../actions';\nimport states from '../states';\nimport { speeds, delays } from '../../unit/const';\nimport { music } from '../../unit/music';\n\nconst down = (store) => {\n  store.dispatch(actions.keyboard.left(true));\n  event.down({\n    key: 'left',\n    begin: 200,\n    interval: 100,\n    callback: () => {\n      const state = store.getState();\n      if (state.get('lock')) {\n        return;\n      }\n      if (music.move) {\n        music.move();\n      }\n      const cur = state.get('cur');\n      if (cur !== null) {\n        if (state.get('pause')) {\n          states.pause(false);\n          return;\n        }\n        const next = cur.left();\n        const delay = delays[state.get('speedRun') - 1];\n        let timeStamp;\n        if (want(next, state.get('matrix'))) {\n          next.timeStamp += parseInt(delay, 10);\n          store.dispatch(actions.moveBlock(next));\n          timeStamp = next.timeStamp;\n        } else {\n          cur.timeStamp += parseInt(parseInt(delay, 10) / 1.5, 10); // 真实移动delay多一点，碰壁delay少一点\n          store.dispatch(actions.moveBlock(cur));\n          timeStamp = cur.timeStamp;\n        }\n        const remain = speeds[state.get('speedRun') - 1] - (Date.now() - timeStamp);\n        states.auto(remain);\n      } else {\n        let speed = state.get('speedStart');\n        speed = speed - 1 < 1 ? 6 : speed - 1;\n        store.dispatch(actions.speedStart(speed));\n      }\n    },\n  });\n};\n\nconst up = (store) => {\n  store.dispatch(actions.keyboard.left(false));\n  event.up({\n    key: 'left',\n  });\n};\n\nexport default {\n  down,\n  up,\n};\n"
  },
  {
    "path": "src/control/todo/p.js",
    "content": "import event from '../../unit/event';\nimport states from '../states';\nimport actions from '../../actions';\n\nconst down = (store) => {\n  store.dispatch(actions.keyboard.pause(true));\n  event.down({\n    key: 'p',\n    once: true,\n    callback: () => {\n      const state = store.getState();\n      if (state.get('lock')) {\n        return;\n      }\n      const cur = state.get('cur');\n      const isPause = state.get('pause');\n      if (cur !== null) { // 暂停\n        states.pause(!isPause);\n      } else { // 新的开始\n        states.start();\n      }\n    },\n  });\n};\n\nconst up = (store) => {\n  store.dispatch(actions.keyboard.pause(false));\n  event.up({\n    key: 'p',\n  });\n};\n\n\nexport default {\n  down,\n  up,\n};\n"
  },
  {
    "path": "src/control/todo/r.js",
    "content": "import event from '../../unit/event';\nimport states from '../states';\nimport actions from '../../actions';\n\nconst down = (store) => {\n  store.dispatch(actions.keyboard.reset(true));\n  if (store.getState().get('lock')) {\n    return;\n  }\n  if (store.getState().get('cur') !== null) {\n    event.down({\n      key: 'r',\n      once: true,\n      callback: () => {\n        states.overStart();\n      },\n    });\n  } else {\n    event.down({\n      key: 'r',\n      once: true,\n      callback: () => {\n        if (store.getState().get('lock')) {\n          return;\n        }\n        states.start();\n      },\n    });\n  }\n};\n\nconst up = (store) => {\n  store.dispatch(actions.keyboard.reset(false));\n  event.up({\n    key: 'r',\n  });\n};\n\nexport default {\n  down,\n  up,\n};\n"
  },
  {
    "path": "src/control/todo/right.js",
    "content": "import { want } from '../../unit/';\nimport event from '../../unit/event';\nimport actions from '../../actions';\nimport states from '../states';\nimport { speeds, delays } from '../../unit/const';\nimport { music } from '../../unit/music';\n\nconst down = (store) => {\n  store.dispatch(actions.keyboard.right(true));\n  event.down({\n    key: 'right',\n    begin: 200,\n    interval: 100,\n    callback: () => {\n      const state = store.getState();\n      if (state.get('lock')) {\n        return;\n      }\n      if (music.move) {\n        music.move();\n      }\n      const cur = state.get('cur');\n      if (cur !== null) {\n        if (state.get('pause')) {\n          states.pause(false);\n          return;\n        }\n        const next = cur.right();\n        const delay = delays[state.get('speedRun') - 1];\n        let timeStamp;\n        if (want(next, state.get('matrix'))) {\n          next.timeStamp += parseInt(delay, 10);\n          store.dispatch(actions.moveBlock(next));\n          timeStamp = next.timeStamp;\n        } else {\n          cur.timeStamp += parseInt(parseInt(delay, 10) / 1.5, 10); // 真实移动delay多一点，碰壁delay少一点\n          store.dispatch(actions.moveBlock(cur));\n          timeStamp = cur.timeStamp;\n        }\n        const remain = speeds[state.get('speedRun') - 1] - (Date.now() - timeStamp);\n        states.auto(remain);\n      } else {\n        let speed = state.get('speedStart');\n        speed = speed + 1 > 6 ? 1 : speed + 1;\n        store.dispatch(actions.speedStart(speed));\n      }\n    },\n  });\n};\n\nconst up = (store) => {\n  store.dispatch(actions.keyboard.right(false));\n  event.up({\n    key: 'right',\n  });\n};\n\nexport default {\n  down,\n  up,\n};\n"
  },
  {
    "path": "src/control/todo/rotate.js",
    "content": "import { want } from '../../unit/';\nimport event from '../../unit/event';\nimport actions from '../../actions';\nimport states from '../states';\nimport { music } from '../../unit/music';\n\nconst down = (store) => {\n  store.dispatch(actions.keyboard.rotate(true));\n  if (store.getState().get('cur') !== null) {\n    event.down({\n      key: 'rotate',\n      once: true,\n      callback: () => {\n        const state = store.getState();\n        if (state.get('lock')) {\n          return;\n        }\n        if (state.get('pause')) {\n          states.pause(false);\n        }\n        const cur = state.get('cur');\n        if (cur === null) {\n          return;\n        }\n        if (music.rotate) {\n          music.rotate();\n        }\n        const next = cur.rotate();\n        if (want(next, state.get('matrix'))) {\n          store.dispatch(actions.moveBlock(next));\n        }\n      },\n    });\n  } else {\n    event.down({\n      key: 'rotate',\n      begin: 200,\n      interval: 100,\n      callback: () => {\n        if (store.getState().get('lock')) {\n          return;\n        }\n        if (music.move) {\n          music.move();\n        }\n        const state = store.getState();\n        const cur = state.get('cur');\n        if (cur) {\n          return;\n        }\n        let startLines = state.get('startLines');\n        startLines = startLines + 1 > 10 ? 0 : startLines + 1;\n        store.dispatch(actions.startLines(startLines));\n      },\n    });\n  }\n};\n\nconst up = (store) => {\n  store.dispatch(actions.keyboard.rotate(false));\n  event.up({\n    key: 'rotate',\n  });\n};\n\nexport default {\n  down,\n  up,\n};\n"
  },
  {
    "path": "src/control/todo/s.js",
    "content": "import event from '../../unit/event';\nimport actions from '../../actions';\n\nconst down = (store) => {\n  store.dispatch(actions.keyboard.music(true));\n  if (store.getState().get('lock')) {\n    return;\n  }\n  event.down({\n    key: 's',\n    once: true,\n    callback: () => {\n      if (store.getState().get('lock')) {\n        return;\n      }\n      store.dispatch(actions.music(!store.getState().get('music')));\n    },\n  });\n};\n\nconst up = (store) => {\n  store.dispatch(actions.keyboard.music(false));\n  event.up({\n    key: 's',\n  });\n};\n\n\nexport default {\n  down,\n  up,\n};\n"
  },
  {
    "path": "src/control/todo/space.js",
    "content": "import { want } from '../../unit/';\nimport event from '../../unit/event';\nimport actions from '../../actions';\nimport states from '../states';\nimport { music } from '../../unit/music';\n\nconst down = (store) => {\n  store.dispatch(actions.keyboard.drop(true));\n  event.down({\n    key: 'space',\n    once: true,\n    callback: () => {\n      const state = store.getState();\n      if (state.get('lock')) {\n        return;\n      }\n      const cur = state.get('cur');\n      if (cur !== null) { // 置底\n        if (state.get('pause')) {\n          states.pause(false);\n          return;\n        }\n        if (music.fall) {\n          music.fall();\n        }\n        let index = 0;\n        let bottom = cur.fall(index);\n        while (want(bottom, state.get('matrix'))) {\n          bottom = cur.fall(index);\n          index++;\n        }\n        let matrix = state.get('matrix');\n        bottom = cur.fall(index - 2);\n        store.dispatch(actions.moveBlock(bottom));\n        const shape = bottom.shape;\n        const xy = bottom.xy;\n        shape.forEach((m, k1) => (\n          m.forEach((n, k2) => {\n            if (n && xy[0] + k1 >= 0) { // 竖坐标可以为负\n              let line = matrix.get(xy[0] + k1);\n              line = line.set(xy[1] + k2, 1);\n              matrix = matrix.set(xy[0] + k1, line);\n            }\n          })\n        ));\n        store.dispatch(actions.drop(true));\n        setTimeout(() => {\n          store.dispatch(actions.drop(false));\n        }, 100);\n        states.nextAround(matrix);\n      } else {\n        states.start();\n      }\n    },\n  });\n};\n\nconst up = (store) => {\n  store.dispatch(actions.keyboard.drop(false));\n  event.up({\n    key: 'space',\n  });\n};\n\nexport default {\n  down,\n  up,\n};\n"
  },
  {
    "path": "src/index.js",
    "content": "import React from 'react';\nimport { render } from 'react-dom';\nimport { Provider } from 'react-redux';\nimport store from './store';\nimport App from './containers/';\nimport './unit/const';\nimport './control';\nimport { subscribeRecord } from './unit';\n\nsubscribeRecord(store); // 将更新的状态记录到localStorage\n\nrender(\n  <Provider store={store}>\n    <App />\n  </Provider>\n    , document.getElementById('root')\n);\n\n"
  },
  {
    "path": "src/reducers/clearLines/index.js",
    "content": "import * as reducerType from '../../unit/reducerType';\nimport { lastRecord } from '../../unit/const';\n\nlet initState = lastRecord && !isNaN(parseInt(lastRecord.clearLines, 10)) ?\n  parseInt(lastRecord.clearLines, 10) : 0;\nif (initState < 0) {\n  initState = 0;\n}\n\nconst clearLines = (state = initState, action) => {\n  switch (action.type) {\n    case reducerType.CLEAR_LINES:\n      return action.data;\n    default:\n      return state;\n  }\n};\n\nexport default clearLines;\n"
  },
  {
    "path": "src/reducers/cur/index.js",
    "content": "import { List } from 'immutable';\nimport * as reducerType from '../../unit/reducerType';\nimport { lastRecord } from '../../unit/const';\nimport Block from '../../unit/block';\n\nconst initState = (() => {\n  if (!lastRecord || !lastRecord.cur) { // 无记录 或 有记录 但方块为空, 返回 null\n    return null;\n  }\n  const cur = lastRecord.cur;\n  const option = {\n    type: cur.type,\n    rotateIndex: cur.rotateIndex,\n    shape: List(cur.shape.map(e => List(e))),\n    xy: cur.xy,\n  };\n  return new Block(option);\n})();\n\nconst cur = (state = initState, action) => {\n  switch (action.type) {\n    case reducerType.MOVE_BLOCK:\n      return action.data;\n    default:\n      return state;\n  }\n};\n\nexport default cur;\n"
  },
  {
    "path": "src/reducers/drop/index.js",
    "content": "import * as reducerType from '../../unit/reducerType';\nimport { lastRecord } from '../../unit/const';\n\nconst initState = lastRecord && lastRecord.drop !== undefined ? !!lastRecord.drop : false;\n\nconst drop = (state = initState, action) => {\n  switch (action.type) {\n    case reducerType.DROP:\n      return action.data;\n    default:\n      return state;\n  }\n};\n\nexport default drop;\n"
  },
  {
    "path": "src/reducers/focus/index.js",
    "content": "import * as reducerType from '../../unit/reducerType';\nimport { isFocus } from '../../unit/';\n\nconst initState = isFocus();\nconst focus = (state = initState, action) => {\n  switch (action.type) {\n    case reducerType.FOCUS:\n      return action.data;\n    default:\n      return state;\n  }\n};\n\nexport default focus;\n"
  },
  {
    "path": "src/reducers/index.js",
    "content": "import { combineReducers } from 'redux-immutable';\nimport pause from './pause';\nimport music from './music';\nimport matrix from './matrix';\nimport next from './next';\nimport cur from './cur';\nimport startLines from './startLines';\nimport max from './max';\nimport points from './points';\nimport speedStart from './speedStart';\nimport speedRun from './speedRun';\nimport lock from './lock';\nimport clearLines from './clearLines';\nimport reset from './reset';\nimport drop from './drop';\nimport keyboard from './keyboard';\nimport focus from './focus';\n\n\nconst rootReducer = combineReducers({\n  pause,\n  music,\n  matrix,\n  next,\n  cur,\n  startLines,\n  max,\n  points,\n  speedStart,\n  speedRun,\n  lock,\n  clearLines,\n  reset,\n  drop,\n  keyboard,\n  focus,\n});\n\nexport default rootReducer;\n"
  },
  {
    "path": "src/reducers/keyboard/down.js",
    "content": "import * as reducerType from '../../unit/reducerType';\n\nconst initState = false;\n\nconst reducer = (state = initState, action) => {\n  switch (action.type) {\n    case reducerType.KEY_DOWN:\n      return action.data;\n    default:\n      return state;\n  }\n};\n\nexport default reducer;\n"
  },
  {
    "path": "src/reducers/keyboard/drop.js",
    "content": "import * as reducerType from '../../unit/reducerType';\n\nconst initState = false;\n\nconst reducer = (state = initState, action) => {\n  switch (action.type) {\n    case reducerType.KEY_DROP:\n      return action.data;\n    default:\n      return state;\n  }\n};\n\nexport default reducer;\n"
  },
  {
    "path": "src/reducers/keyboard/index.js",
    "content": "import { combineReducers } from 'redux-immutable';\nimport drop from './drop';\nimport down from './down';\nimport left from './left';\nimport right from './right';\nimport rotate from './rotate';\nimport reset from './reset';\nimport music from './music';\nimport pause from './pause';\n\nconst keyboardReducer = combineReducers({\n  drop,\n  down,\n  left,\n  right,\n  rotate,\n  reset,\n  music,\n  pause,\n});\n\nexport default keyboardReducer;\n"
  },
  {
    "path": "src/reducers/keyboard/left.js",
    "content": "import * as reducerType from '../../unit/reducerType';\n\nconst initState = false;\n\nconst reducer = (state = initState, action) => {\n  switch (action.type) {\n    case reducerType.KEY_LEFT:\n      return action.data;\n    default:\n      return state;\n  }\n};\n\nexport default reducer;\n"
  },
  {
    "path": "src/reducers/keyboard/music.js",
    "content": "import * as reducerType from '../../unit/reducerType';\n\nconst initState = false;\n\nconst reducer = (state = initState, action) => {\n  switch (action.type) {\n    case reducerType.KEY_MUSIC:\n      return action.data;\n    default:\n      return state;\n  }\n};\n\nexport default reducer;\n"
  },
  {
    "path": "src/reducers/keyboard/pause.js",
    "content": "import * as reducerType from '../../unit/reducerType';\n\nconst initState = false;\n\nconst reducer = (state = initState, action) => {\n  switch (action.type) {\n    case reducerType.KEY_PAUSE:\n      return action.data;\n    default:\n      return state;\n  }\n};\n\nexport default reducer;\n"
  },
  {
    "path": "src/reducers/keyboard/reset.js",
    "content": "import * as reducerType from '../../unit/reducerType';\n\nconst initState = false;\n\nconst reducer = (state = initState, action) => {\n  switch (action.type) {\n    case reducerType.KEY_RESET:\n      return action.data;\n    default:\n      return state;\n  }\n};\n\nexport default reducer;\n"
  },
  {
    "path": "src/reducers/keyboard/right.js",
    "content": "import * as reducerType from '../../unit/reducerType';\n\nconst initState = false;\n\nconst reducer = (state = initState, action) => {\n  switch (action.type) {\n    case reducerType.KEY_RIGHT:\n      return action.data;\n    default:\n      return state;\n  }\n};\n\nexport default reducer;\n"
  },
  {
    "path": "src/reducers/keyboard/rotate.js",
    "content": "import * as reducerType from '../../unit/reducerType';\n\nconst initState = false;\n\nconst reducer = (state = initState, action) => {\n  switch (action.type) {\n    case reducerType.KEY_ROTATE:\n      return action.data;\n    default:\n      return state;\n  }\n};\n\nexport default reducer;\n"
  },
  {
    "path": "src/reducers/lock/index.js",
    "content": "import * as reducerType from '../../unit/reducerType';\nimport { lastRecord } from '../../unit/const';\n\nconst initState = lastRecord && lastRecord.lock !== undefined ? !!lastRecord.lock : false;\n\nconst lock = (state = initState, action) => {\n  switch (action.type) {\n    case reducerType.LOCK:\n      return action.data;\n    default:\n      return state;\n  }\n};\n\nexport default lock;\n"
  },
  {
    "path": "src/reducers/matrix/index.js",
    "content": "import { List } from 'immutable';\nimport * as reducerType from '../../unit/reducerType';\nimport { blankMatrix, lastRecord } from '../../unit/const';\n\nconst initState = lastRecord && Array.isArray(lastRecord.matrix) ?\n  List(lastRecord.matrix.map(e => List(e))) : blankMatrix;\n\nconst matrix = (state = initState, action) => {\n  switch (action.type) {\n    case reducerType.MATRIX:\n      return action.data;\n    default:\n      return state;\n  }\n};\n\nexport default matrix;\n"
  },
  {
    "path": "src/reducers/max/index.js",
    "content": "import * as reducerType from '../../unit/reducerType';\nimport { lastRecord, maxPoint } from '../../unit/const';\n\nlet initState = lastRecord && !isNaN(parseInt(lastRecord.max, 10)) ?\n  parseInt(lastRecord.max, 10) : 0;\n\nif (initState < 0) {\n  initState = 0;\n} else if (initState > maxPoint) {\n  initState = maxPoint;\n}\n\nconst parse = (state = initState, action) => {\n  switch (action.type) {\n    case reducerType.MAX:\n      return action.data > 999999 ? 999999 : action.data; // 最大分数\n    default:\n      return state;\n  }\n};\n\nexport default parse;\n"
  },
  {
    "path": "src/reducers/music/index.js",
    "content": "import * as reducerType from '../../unit/reducerType';\nimport { lastRecord } from '../../unit/const';\nimport { hasWebAudioAPI } from '../../unit/music';\n\nlet initState = lastRecord && lastRecord.music !== undefined ? !!lastRecord.music : true;\nif (!hasWebAudioAPI.data) {\n  initState = false;\n}\nconst music = (state = initState, action) => {\n  switch (action.type) {\n    case reducerType.MUSIC:\n      if (!hasWebAudioAPI.data) { // 若浏览器不支持 WebAudioApi, 将无法播放音效\n        return false;\n      }\n      return action.data;\n    default:\n      return state;\n  }\n};\n\nexport default music;\n"
  },
  {
    "path": "src/reducers/next/index.js",
    "content": "import { getNextType } from '../../unit';\nimport * as reducerType from '../../unit/reducerType';\nimport { lastRecord, blockType } from '../../unit/const';\n\nconst initState = lastRecord && blockType.indexOf(lastRecord.next) !== -1 ?\n  lastRecord.next : getNextType();\nconst parse = (state = initState, action) => {\n  switch (action.type) {\n    case reducerType.NEXT_BLOCK:\n      return action.data;\n    default:\n      return state;\n  }\n};\n\nexport default parse;\n"
  },
  {
    "path": "src/reducers/pause/index.js",
    "content": "import * as reducerType from '../../unit/reducerType';\nimport { lastRecord } from '../../unit/const';\n\nconst initState = lastRecord && lastRecord.pause !== undefined ? !!lastRecord.pause : false;\nconst pause = (state = initState, action) => {\n  switch (action.type) {\n    case reducerType.PAUSE:\n      return action.data;\n    default:\n      return state;\n  }\n};\n\nexport default pause;\n"
  },
  {
    "path": "src/reducers/points/index.js",
    "content": "import * as reducerType from '../../unit/reducerType';\nimport { lastRecord, maxPoint } from '../../unit/const';\n\nlet initState = lastRecord && !isNaN(parseInt(lastRecord.points, 10)) ?\n  parseInt(lastRecord.points, 10) : 0;\n\nif (initState < 0) {\n  initState = 0;\n} else if (initState > maxPoint) {\n  initState = maxPoint;\n}\n\nconst points = (state = initState, action) => {\n  switch (action.type) {\n    case reducerType.POINTS:\n      return action.data > maxPoint ? maxPoint : action.data; // 最大分数\n    default:\n      return state;\n  }\n};\n\nexport default points;\n"
  },
  {
    "path": "src/reducers/reset/index.js",
    "content": "import * as reducerType from '../../unit/reducerType';\nimport { lastRecord } from '../../unit/const';\n\nconst initState = lastRecord && lastRecord.reset ? !!lastRecord.reset : false;\nconst reset = (state = initState, action) => {\n  switch (action.type) {\n    case reducerType.RESET:\n      return action.data;\n    default:\n      return state;\n  }\n};\n\nexport default reset;\n"
  },
  {
    "path": "src/reducers/speedRun/index.js",
    "content": "import * as reducerType from '../../unit/reducerType';\nimport { lastRecord } from '../../unit/const';\n\nlet initState = lastRecord && !isNaN(parseInt(lastRecord.speedRun, 10)) ?\n  parseInt(lastRecord.speedRun, 10) : 1;\nif (initState < 1 || initState > 6) {\n  initState = 1;\n}\n\nconst speedRun = (state = initState, action) => {\n  switch (action.type) {\n    case reducerType.SPEED_RUN:\n      return action.data;\n    default:\n      return state;\n  }\n};\n\nexport default speedRun;\n"
  },
  {
    "path": "src/reducers/speedStart/index.js",
    "content": "import * as reducerType from '../../unit/reducerType';\nimport { lastRecord } from '../../unit/const';\n\nlet initState = lastRecord && !isNaN(parseInt(lastRecord.speedStart, 10)) ?\n  parseInt(lastRecord.speedStart, 10) : 1;\nif (initState < 1 || initState > 6) {\n  initState = 1;\n}\n\nconst speedStart = (state = initState, action) => {\n  switch (action.type) {\n    case reducerType.SPEED_START:\n      return action.data;\n    default:\n      return state;\n  }\n};\n\nexport default speedStart;\n"
  },
  {
    "path": "src/reducers/startLines/index.js",
    "content": "import * as reducerType from '../../unit/reducerType';\nimport { lastRecord } from '../../unit/const';\n\nlet initState = lastRecord && !isNaN(parseInt(lastRecord.startLines, 10)) ?\n  parseInt(lastRecord.startLines, 10) : 0;\nif (initState < 0 || initState > 10) {\n  initState = 0;\n}\n\nconst startLines = (state = initState, action) => {\n  switch (action.type) {\n    case reducerType.START_LINES:\n      return action.data;\n    default:\n      return state;\n  }\n};\n\nexport default startLines;\n"
  },
  {
    "path": "src/resource/css/loader.css",
    "content": "body{\n    background: #009688;\n    padding: 0;\n    margin: 0;\n}\n.load{\n    width:240px;\n    height:240px;\n    position:absolute;\n    top:50%;\n    left:50%;\n    margin:-120px 0 0 -120px;\n    color:#efcc19;\n    -webkit-animation:fadeIn 2s infinite ease-in-out;\n    animation:fadeIn 2s infinite ease-in-out;\n    -webkit-animation-delay:2s;\n    animation-delay:2s;\n    opacity:0;\n}\n.load .loader,.load .loader:before,.load .loader:after{\n    background:#efcc19;\n    -webkit-animation:load 1s infinite ease-in-out;\n    animation:load 1s infinite ease-in-out;\n    width:1em;\n    height:4em\n}\n.load .loader:before,.load .loader:after{\n    position:absolute;\n    top:0;\n    content:''\n}\n.load .loader:before{\n    left:-1.5em;\n    -webkit-animation-delay:-0.32s;\n    animation-delay:-0.32s\n}\n.load .loader{\n    text-indent:-9999em;\n    margin:8em auto;\n    position:relative;\n    font-size:11px;\n    -webkit-animation-delay:-0.16s;\n    animation-delay:-0.16s\n}\n.load .loader:after{\n    left:1.5em\n}\n@-webkit-keyframes load{\n    0%,80%,100%{\n        box-shadow:0 0 #efcc19;\n        height:4em\n    }\n    40%{\n        box-shadow:0 -2em #efcc19;height:5em\n    }\n}\n\n@keyframes load{\n    0%,80%,100%{\n        box-shadow:0 0 #efcc19;\n        height:4em\n    }\n    40%{\n        box-shadow:0 -2em #efcc19;\n        height:5em\n    }\n}\n\n@-webkit-keyframes fadeIn{\n    0%{\n        opacity:0;\n    }\n    100%{\n        opacity:1;\n    }\n}\n@keyframes fadeIn{\n    0%{\n        opacity:0;\n    }\n    100%{\n        opacity:1;\n    }\n}"
  },
  {
    "path": "src/store/index.js",
    "content": "import { createStore } from 'redux';\nimport rootReducer from '../reducers';\n\nconst store = createStore(rootReducer, window.devToolsExtension && window.devToolsExtension());\n\nexport default store;\n"
  },
  {
    "path": "src/unit/block.js",
    "content": "import { List } from 'immutable';\nimport { blockShape, origin } from './const';\n\nclass Block {\n  constructor(option) {\n    this.type = option.type;\n\n    if (!option.rotateIndex) {\n      this.rotateIndex = 0;\n    } else {\n      this.rotateIndex = option.rotateIndex;\n    }\n\n    if (!option.timeStamp) {\n      this.timeStamp = Date.now();\n    } else {\n      this.timeStamp = option.timeStamp;\n    }\n\n    if (!option.shape) { // init\n      this.shape = List(blockShape[option.type].map(e => List(e)));\n    } else {\n      this.shape = option.shape;\n    }\n    if (!option.xy) {\n      switch (option.type) {\n        case 'I': // I\n          this.xy = List([0, 3]);\n          break;\n        case 'L': // L\n          this.xy = List([-1, 4]);\n          break;\n        case 'J': // J\n          this.xy = List([-1, 4]);\n          break;\n        case 'Z': // Z\n          this.xy = List([-1, 4]);\n          break;\n        case 'S': // S\n          this.xy = List([-1, 4]);\n          break;\n        case 'O': // O\n          this.xy = List([-1, 4]);\n          break;\n        case 'T': // T\n          this.xy = List([-1, 4]);\n          break;\n        default:\n          break;\n      }\n    } else {\n      this.xy = List(option.xy);\n    }\n  }\n  rotate() {\n    const shape = this.shape;\n    let result = List([]);\n    shape.forEach(m => m.forEach((n, k) => {\n      const index = m.size - k - 1;\n      if (result.get(index) === undefined) {\n        result = result.set(index, List([]));\n      }\n      const tempK = result.get(index).push(n);\n      result = result.set(index, tempK);\n    }));\n    const nextXy = [\n      this.xy.get(0) + origin[this.type][this.rotateIndex][0],\n      this.xy.get(1) + origin[this.type][this.rotateIndex][1],\n    ];\n    const nextRotateIndex = this.rotateIndex + 1 >= origin[this.type].length ?\n      0 : this.rotateIndex + 1;\n    return {\n      shape: result,\n      type: this.type,\n      xy: nextXy,\n      rotateIndex: nextRotateIndex,\n      timeStamp: this.timeStamp,\n    };\n  }\n  fall(n = 1) {\n    return {\n      shape: this.shape,\n      type: this.type,\n      xy: [this.xy.get(0) + n, this.xy.get(1)],\n      rotateIndex: this.rotateIndex,\n      timeStamp: Date.now(),\n    };\n  }\n  right() {\n    return {\n      shape: this.shape,\n      type: this.type,\n      xy: [this.xy.get(0), this.xy.get(1) + 1],\n      rotateIndex: this.rotateIndex,\n      timeStamp: this.timeStamp,\n    };\n  }\n  left() {\n    return {\n      shape: this.shape,\n      type: this.type,\n      xy: [this.xy.get(0), this.xy.get(1) - 1],\n      rotateIndex: this.rotateIndex,\n      timeStamp: this.timeStamp,\n    };\n  }\n}\n\nexport default Block;\n"
  },
  {
    "path": "src/unit/const.js",
    "content": "import { List } from 'immutable';\nimport i18n from '../../i18n.json';\n\nconst blockShape = {\n  I: [\n    [1, 1, 1, 1],\n  ],\n  L: [\n    [0, 0, 1],\n    [1, 1, 1],\n  ],\n  J: [\n    [1, 0, 0],\n    [1, 1, 1],\n  ],\n  Z: [\n    [1, 1, 0],\n    [0, 1, 1],\n  ],\n  S: [\n    [0, 1, 1],\n    [1, 1, 0],\n  ],\n  O: [\n    [1, 1],\n    [1, 1],\n  ],\n  T: [\n    [0, 1, 0],\n    [1, 1, 1],\n  ],\n};\n\nconst origin = {\n  I: [[-1, 1], [1, -1]],\n  L: [[0, 0]],\n  J: [[0, 0]],\n  Z: [[0, 0]],\n  S: [[0, 0]],\n  O: [[0, 0]],\n  T: [[0, 0], [1, 0], [-1, 1], [0, -1]],\n};\n\nconst blockType = Object.keys(blockShape);\n\nconst speeds = [800, 650, 500, 370, 250, 160];\n\nconst delays = [50, 60, 70, 80, 90, 100];\n\nconst fillLine = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\n\nconst blankLine = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\nconst blankMatrix = (() => {\n  const matrix = [];\n  for (let i = 0; i < 20; i++) {\n    matrix.push(List(blankLine));\n  }\n  return List(matrix);\n})();\n\nconst clearPoints = [100, 300, 700, 1500];\n\nconst StorageKey = 'REACT_TETRIS';\n\nconst lastRecord = (() => { // 上一把的状态\n  let data = localStorage.getItem(StorageKey);\n  if (!data) {\n    return false;\n  }\n  try {\n    if (window.btoa) {\n      data = atob(data);\n    }\n    data = decodeURIComponent(data);\n    data = JSON.parse(data);\n  } catch (e) {\n    if (window.console || window.console.error) {\n      window.console.error('读取记录错误:', e);\n    }\n    return false;\n  }\n  return data;\n})();\n\nconst maxPoint = 999999;\n\nconst transform = (function () {\n  const trans = ['transform', 'webkitTransform', 'msTransform', 'mozTransform', 'oTransform'];\n  const body = document.body;\n  return trans.filter((e) => body.style[e] !== undefined)[0];\n}());\n\nconst eachLines = 20; // 每消除eachLines行, 增加速度\n\nconst getParam = (param) => { // 获取浏览器参数\n  const r = new RegExp(`\\\\?(?:.+&)?${param}=(.*?)(?:&.*)?$`);\n  const m = window.location.toString().match(r);\n  return m ? decodeURI(m[1]) : '';\n};\n\nconst lan = (() => {\n  let l = getParam('lan').toLowerCase();\n  l = i18n.lan.indexOf(l) === -1 ? i18n.default : l;\n  return l;\n})();\n\ndocument.title = i18n.data.title[lan];\n\nmodule.exports = {\n  blockShape,\n  origin,\n  blockType,\n  speeds,\n  delays,\n  fillLine,\n  blankLine,\n  blankMatrix,\n  clearPoints,\n  StorageKey,\n  lastRecord,\n  maxPoint,\n  eachLines,\n  transform,\n  lan,\n  i18n: i18n.data,\n};\n"
  },
  {
    "path": "src/unit/event.js",
    "content": "const eventName = {};\n\nconst down = (o) => { // 键盘、手指按下\n  const keys = Object.keys(eventName);\n  keys.forEach(i => {\n    clearTimeout(eventName[i]);\n    eventName[i] = null;\n  });\n  if (!o.callback) {\n    return;\n  }\n  const clear = () => {\n    clearTimeout(eventName[o.key]);\n  };\n  o.callback(clear);\n  if (o.once === true) {\n    return;\n  }\n  let begin = o.begin || 100;\n  const interval = o.interval || 50;\n  const loop = () => {\n    eventName[o.key] = setTimeout(() => {\n      begin = null;\n      loop();\n      o.callback(clear);\n    }, begin || interval);\n  };\n  loop();\n};\n\nconst up = (o) => { // 键盘、手指松开\n  clearTimeout(eventName[o.key]);\n  eventName[o.key] = null;\n  if (!o.callback) {\n    return;\n  }\n  o.callback();\n};\n\nconst clearAll = () => {\n  const keys = Object.keys(eventName);\n  keys.forEach(i => {\n    clearTimeout(eventName[i]);\n    eventName[i] = null;\n  });\n};\n\nexport default {\n  down,\n  up,\n  clearAll,\n};\n"
  },
  {
    "path": "src/unit/index.js",
    "content": "import { blockType, StorageKey } from './const';\n\nconst hiddenProperty = (() => { // document[hiddenProperty] 可以判断页面是否失焦\n  let names = [\n    'hidden',\n    'webkitHidden',\n    'mozHidden',\n    'msHidden',\n  ];\n  names = names.filter((e) => (e in document));\n  return names.length > 0 ? names[0] : false;\n})();\n\nconst visibilityChangeEvent = (() => {\n  if (!hiddenProperty) {\n    return false;\n  }\n  return hiddenProperty.replace(/hidden/i, 'visibilitychange'); // 如果属性有前缀, 相应的事件也有前缀\n})();\n\nconst isFocus = () => {\n  if (!hiddenProperty) { // 如果不存在该特性, 认为一直聚焦\n    return true;\n  }\n  return !document[hiddenProperty];\n};\n\nconst unit = {\n  getNextType() { // 随机获取下一个方块类型\n    const len = blockType.length;\n    return blockType[Math.floor(Math.random() * len)];\n  },\n  want(next, matrix) { // 方块是否能移到到指定位置\n    const xy = next.xy;\n    const shape = next.shape;\n    const horizontal = shape.get(0).size;\n    return shape.every((m, k1) => (\n      m.every((n, k2) => {\n        if (xy[1] < 0) { // left\n          return false;\n        }\n        if (xy[1] + horizontal > 10) { // right\n          return false;\n        }\n        if (xy[0] + k1 < 0) { // top\n          return true;\n        }\n        if (xy[0] + k1 >= 20) { // bottom\n          return false;\n        }\n        if (n) {\n          if (matrix.get(xy[0] + k1).get(xy[1] + k2)) {\n            return false;\n          }\n          return true;\n        }\n        return true;\n      })\n    ));\n  },\n  isClear(matrix) { // 是否达到消除状态\n    const clearLines = [];\n    matrix.forEach((m, k) => {\n      if (m.every(n => !!n)) {\n        clearLines.push(k);\n      }\n    });\n    if (clearLines.length === 0) {\n      return false;\n    }\n    return clearLines;\n  },\n  isOver(matrix) { // 游戏是否结束, 第一行落下方块为依据\n    return matrix.get(0).some(n => !!n);\n  },\n  subscribeRecord(store) { // 将状态记录到 localStorage\n    store.subscribe(() => {\n      let data = store.getState().toJS();\n      if (data.lock) { // 当状态为锁定, 不记录\n        return;\n      }\n      data = JSON.stringify(data);\n      data = encodeURIComponent(data);\n      if (window.btoa) {\n        data = btoa(data);\n      }\n      localStorage.setItem(StorageKey, data);\n    });\n  },\n  isMobile() { // 判断是否为移动端\n    const ua = navigator.userAgent;\n    const android = /Android (\\d+\\.\\d+)/.test(ua);\n    const iphone = ua.indexOf('iPhone') > -1;\n    const ipod = ua.indexOf('iPod') > -1;\n    const ipad = ua.indexOf('iPad') > -1;\n    const nokiaN = ua.indexOf('NokiaN') > -1;\n    return android || iphone || ipod || ipad || nokiaN;\n  },\n  visibilityChangeEvent,\n  isFocus,\n};\n\nmodule.exports = unit;\n"
  },
  {
    "path": "src/unit/music.js",
    "content": "import store from '../store';\n\n// 使用 Web Audio API\nconst AudioContext = (\n  window.AudioContext ||\n  window.webkitAudioContext ||\n  window.mozAudioContext ||\n  window.oAudioContext ||\n  window.msAudioContext\n);\n\nconst hasWebAudioAPI = {\n  data: !!AudioContext && location.protocol.indexOf('http') !== -1,\n};\n\n\nconst music = {};\n\n(() => {\n  if (!hasWebAudioAPI.data) {\n    return;\n  }\n  const url = './music.mp3';\n  const context = new AudioContext();\n  const req = new XMLHttpRequest();\n  req.open('GET', url, true);\n  req.responseType = 'arraybuffer';\n\n  req.onload = () => {\n    context.decodeAudioData(req.response, (buf) => { // 将拿到的audio解码转为buffer\n      const getSource = () => { // 创建source源。\n        const source = context.createBufferSource();\n        source.buffer = buf;\n        source.connect(context.destination);\n        return source;\n      };\n\n      music.killStart = () => { // 游戏开始的音乐只播放一次\n        music.start = () => {};\n      };\n\n      music.start = () => { // 游戏开始\n        music.killStart();\n        if (!store.getState().get('music')) {\n          return;\n        }\n        getSource().start(0, 3.7202, 3.6224);\n      };\n\n      music.clear = () => { // 消除方块\n        if (!store.getState().get('music')) {\n          return;\n        }\n        getSource().start(0, 0, 0.7675);\n      };\n\n      music.fall = () => { // 立即下落\n        if (!store.getState().get('music')) {\n          return;\n        }\n        getSource().start(0, 1.2558, 0.3546);\n      };\n\n      music.gameover = () => { // 游戏结束\n        if (!store.getState().get('music')) {\n          return;\n        }\n        getSource().start(0, 8.1276, 1.1437);\n      };\n\n      music.rotate = () => { // 旋转\n        if (!store.getState().get('music')) {\n          return;\n        }\n        getSource().start(0, 2.2471, 0.0807);\n      };\n\n      music.move = () => { // 移动\n        if (!store.getState().get('music')) {\n          return;\n        }\n        getSource().start(0, 2.9088, 0.1437);\n      };\n    },\n    (error) => {\n      if (window.console && window.console.error) {\n        window.console.error(`音频: ${url} 读取错误`, error);\n        hasWebAudioAPI.data = false;\n      }\n    });\n  };\n\n  req.send();\n})();\n\nmodule.exports = {\n  hasWebAudioAPI,\n  music,\n};\n\n"
  },
  {
    "path": "src/unit/reducerType.js",
    "content": "export const PAUSE = 'PAUSE';\nexport const MUSIC = 'MUSIC';\nexport const MATRIX = 'MATRIX';\nexport const NEXT_BLOCK = 'NEXT_BLOCK';\nexport const MOVE_BLOCK = 'MOVE_BLOCK';\nexport const START_LINES = 'START_LINES';\nexport const MAX = 'MAX';\nexport const POINTS = 'POINTS';\nexport const SPEED_START = 'SPEED_START';\nexport const SPEED_RUN = 'SPEED_RUN';\nexport const LOCK = 'LOCK';\nexport const CLEAR_LINES = 'CLEAR_LINES';\nexport const RESET = 'RESET';\nexport const DROP = 'DROP';\nexport const KEY_DROP = 'KEY_DROP';\nexport const KEY_DOWN = 'KEY_DOWN';\nexport const KEY_LEFT = 'KEY_LEFT';\nexport const KEY_RIGHT = 'KEY_RIGHT';\nexport const KEY_ROTATE = 'KEY_ROTATE';\nexport const KEY_RESET = 'KEY_RESET';\nexport const KEY_MUSIC = 'KEY_MUSIC';\nexport const KEY_PAUSE = 'KEY_PAUSE';\nexport const FOCUS = 'FOCUS';\n"
  },
  {
    "path": "w.config.js",
    "content": "var webpack = require('webpack');\nvar OpenBrowserPlugin = require('open-browser-webpack-plugin');\nvar HtmlWebpackPlugin = require('html-webpack-plugin');\nvar ExtractTextPlugin = require('extract-text-webpack-plugin');\nvar precss = require('precss');\nvar autoprefixer = require('autoprefixer');\nvar CopyWebpackPlugin = require('copy-webpack-plugin');\nvar version = require('./package.json').version;\n\n\n// 程序入口\nvar entry =  __dirname + '/src/index.js';\n\n// 输出文件\nvar output =  {\n  filename: 'page/[name]/index.js',\n  chunkFilename: 'chunk/[name].[chunkhash:5].chunk.js',\n};\n\n// 生成source-map追踪js错误\nvar devtool = 'source-map';\n\n// eslint\nvar eslint =  {\n  configFile: __dirname + '/.eslintrc.js',\n}\n\n// loader\nvar loaders = [\n    {\n      test: /\\.(json)$/,\n      exclude: /node_modules/,\n      loader: 'json',\n    },\n    {\n      test: /\\.(js|jsx)$/,\n      exclude: /node_modules/,\n      loader: 'babel!eslint-loader',\n    },\n    {\n      test: /\\.(?:png|jpg|gif)$/,\n      loader: 'url?limit=8192', //小于8k,内嵌;大于8k生成文件\n    },\n    {\n      test: /\\.less/,\n      loader: ExtractTextPlugin.extract('style', 'css?modules&localIdentName=[hash:base64:4]!postcss!less'),\n    }\n];\n\n// dev plugin\nvar devPlugins =  [\n  new CopyWebpackPlugin([\n    { from: './src/resource/music/music.mp3' },\n    { from: './src/resource/css/loader.css' },\n  ]),\n  // 热更新\n  new webpack.HotModuleReplacementPlugin(),\n  // 允许错误不打断程序, 仅开发模式需要\n  new webpack.NoErrorsPlugin(),\n  // 打开浏览器页面\n  new OpenBrowserPlugin({\n    url: 'http://127.0.0.1:8080/'\n  }),\n  // css打包\n  new ExtractTextPlugin('css.css', {\n    allChunks: true\n  }),\n]\n\n// production plugin\nvar productionPlugins = [\n  // 定义生产环境\n  new webpack.DefinePlugin({\n    'process.env.NODE_ENV': '\"production\"',\n  }),\n  // 复制\n  new CopyWebpackPlugin([\n    { from: './src/resource/music/music.mp3' },\n    { from: './src/resource/css/loader.css' },\n  ]),\n  // HTML 模板\n  new HtmlWebpackPlugin({\n    template: __dirname + '/server/index.tmpl.html'\n  }),\n  // JS压缩\n  new webpack.optimize.UglifyJsPlugin({\n    compress: {\n      warnings: false\n    }}\n  ),\n  // css打包\n  new ExtractTextPlugin('css-' + version + '.css', {\n    allChunks: true\n  }),\n];\n\n// dev server\nvar devServer = {\n  contentBase: './server',\n  colors: true,\n  historyApiFallback: false,\n  port: 8080, // defaults to \"8080\"\n  hot: true, // Hot Module Replacement\n  inline: true, // Livereload\n  host: '0.0.0.0',\n  disableHostCheck: true\n};\n\nmodule.exports = {\n  entry: entry,\n  devtool: devtool,\n  output: output,\n  loaders: loaders,\n  devPlugins: devPlugins,\n  productionPlugins: productionPlugins,\n  devServer: devServer,\n  postcss: function () {\n    return [precss, autoprefixer];\n  },\n  version: version\n};\n"
  },
  {
    "path": "webpack.config.js",
    "content": "var config = require('./w.config');\n\n// dev环境配置\nmodule.exports = {\n  devtool: config.devtool,\n  entry: config.entry,\n  output: {\n    path: __dirname + '/server',\n    filename: 'app.js',\n  },\n  eslint: config.eslint,\n  module: {\n    loaders: config.loaders\n  },\n  plugins: config.devPlugins,\n  devServer: config.devServer,\n  postcss: config.postcss\n};\n"
  },
  {
    "path": "webpack.production.config.js",
    "content": "var config = require('./w.config');\n\n// production环境配置\nmodule.exports = {\n  devtool: config.devtool,\n  entry: config.entry,\n  output: {\n    path: __dirname + '/docs',\n    filename: 'app-' + config.version+'.js',\n  },\n  eslint: config.eslint,\n  module: {\n    loaders: config.loaders\n  },\n  plugins: config.productionPlugins,\n  postcss: config.postcss\n};\n"
  }
]