bundle.js 762 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538
  1. /******/ (function(modules) { // webpackBootstrap
  2. /******/ var parentHotUpdateCallback = this["webpackHotUpdate"];
  3. /******/ this["webpackHotUpdate"] =
  4. /******/ function webpackHotUpdateCallback(chunkId, moreModules) {
  5. /******/ hotAddUpdateChunk(chunkId, moreModules);
  6. /******/ if(parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules);
  7. /******/ }
  8. /******/
  9. /******/ function hotDownloadUpdateChunk(chunkId) {
  10. /******/ var head = document.getElementsByTagName('head')[0];
  11. /******/ var script = document.createElement('script');
  12. /******/ script.type = 'text/javascript';
  13. /******/ script.charset = 'utf-8';
  14. /******/ script.src = __webpack_require__.p + "" + chunkId + "." + hotCurrentHash + ".hot-update.js";
  15. /******/ head.appendChild(script);
  16. /******/ }
  17. /******/
  18. /******/ function hotDownloadManifest(callback) {
  19. /******/ if(typeof XMLHttpRequest === "undefined")
  20. /******/ return callback(new Error("No browser support"));
  21. /******/ try {
  22. /******/ var request = new XMLHttpRequest();
  23. /******/ var requestPath = __webpack_require__.p + "" + hotCurrentHash + ".hot-update.json";
  24. /******/ request.open("GET", requestPath, true);
  25. /******/ request.timeout = 10000;
  26. /******/ request.send(null);
  27. /******/ } catch(err) {
  28. /******/ return callback(err);
  29. /******/ }
  30. /******/ request.onreadystatechange = function() {
  31. /******/ if(request.readyState !== 4) return;
  32. /******/ if(request.status === 0) {
  33. /******/ // timeout
  34. /******/ callback(new Error("Manifest request to " + requestPath + " timed out."));
  35. /******/ } else if(request.status === 404) {
  36. /******/ // no update available
  37. /******/ callback();
  38. /******/ } else if(request.status !== 200 && request.status !== 304) {
  39. /******/ // other failure
  40. /******/ callback(new Error("Manifest request to " + requestPath + " failed."));
  41. /******/ } else {
  42. /******/ // success
  43. /******/ try {
  44. /******/ var update = JSON.parse(request.responseText);
  45. /******/ } catch(e) {
  46. /******/ callback(e);
  47. /******/ return;
  48. /******/ }
  49. /******/ callback(null, update);
  50. /******/ }
  51. /******/ };
  52. /******/ }
  53. /******/
  54. /******/
  55. /******/
  56. /******/
  57. /******/ var hotApplyOnUpdate = true;
  58. /******/ var hotCurrentHash = "7be54dcf76be60e83e08";
  59. /******/ var hotCurrentModuleData = {};
  60. /******/ var hotCurrentParents = [];
  61. /******/
  62. /******/ function hotCreateRequire(moduleId) {
  63. /******/ var me = installedModules[moduleId];
  64. /******/ if(!me) return __webpack_require__;
  65. /******/ var fn = function(request) {
  66. /******/ if(me.hot.active) {
  67. /******/ if(installedModules[request]) {
  68. /******/ if(installedModules[request].parents.indexOf(moduleId) < 0)
  69. /******/ installedModules[request].parents.push(moduleId);
  70. /******/ if(me.children.indexOf(request) < 0)
  71. /******/ me.children.push(request);
  72. /******/ } else hotCurrentParents = [moduleId];
  73. /******/ } else {
  74. /******/ console.warn("[HMR] unexpected require(" + request + ") from disposed module " + moduleId);
  75. /******/ hotCurrentParents = [];
  76. /******/ }
  77. /******/ return __webpack_require__(request);
  78. /******/ };
  79. /******/ for(var name in __webpack_require__) {
  80. /******/ if(Object.prototype.hasOwnProperty.call(__webpack_require__, name)) {
  81. /******/ fn[name] = __webpack_require__[name];
  82. /******/ }
  83. /******/ }
  84. /******/ fn.e = function(chunkId, callback) {
  85. /******/ if(hotStatus === "ready")
  86. /******/ hotSetStatus("prepare");
  87. /******/ hotChunksLoading++;
  88. /******/ __webpack_require__.e(chunkId, function() {
  89. /******/ try {
  90. /******/ callback.call(null, fn);
  91. /******/ } finally {
  92. /******/ finishChunkLoading();
  93. /******/ }
  94. /******/ function finishChunkLoading() {
  95. /******/ hotChunksLoading--;
  96. /******/ if(hotStatus === "prepare") {
  97. /******/ if(!hotWaitingFilesMap[chunkId]) {
  98. /******/ hotEnsureUpdateChunk(chunkId);
  99. /******/ }
  100. /******/ if(hotChunksLoading === 0 && hotWaitingFiles === 0) {
  101. /******/ hotUpdateDownloaded();
  102. /******/ }
  103. /******/ }
  104. /******/ }
  105. /******/ });
  106. /******/ }
  107. /******/ return fn;
  108. /******/ }
  109. /******/
  110. /******/ function hotCreateModule(moduleId) {
  111. /******/ var hot = {
  112. /******/ // private stuff
  113. /******/ _acceptedDependencies: {},
  114. /******/ _declinedDependencies: {},
  115. /******/ _selfAccepted: false,
  116. /******/ _selfDeclined: false,
  117. /******/ _disposeHandlers: [],
  118. /******/
  119. /******/ // Module API
  120. /******/ active: true,
  121. /******/ accept: function(dep, callback) {
  122. /******/ if(typeof dep === "undefined")
  123. /******/ hot._selfAccepted = true;
  124. /******/ else if(typeof dep === "function")
  125. /******/ hot._selfAccepted = dep;
  126. /******/ else if(typeof dep === "number")
  127. /******/ hot._acceptedDependencies[dep] = callback;
  128. /******/ else for(var i = 0; i < dep.length; i++)
  129. /******/ hot._acceptedDependencies[dep[i]] = callback;
  130. /******/ },
  131. /******/ decline: function(dep) {
  132. /******/ if(typeof dep === "undefined")
  133. /******/ hot._selfDeclined = true;
  134. /******/ else if(typeof dep === "number")
  135. /******/ hot._declinedDependencies[dep] = true;
  136. /******/ else for(var i = 0; i < dep.length; i++)
  137. /******/ hot._declinedDependencies[dep[i]] = true;
  138. /******/ },
  139. /******/ dispose: function(callback) {
  140. /******/ hot._disposeHandlers.push(callback);
  141. /******/ },
  142. /******/ addDisposeHandler: function(callback) {
  143. /******/ hot._disposeHandlers.push(callback);
  144. /******/ },
  145. /******/ removeDisposeHandler: function(callback) {
  146. /******/ var idx = hot._disposeHandlers.indexOf(callback);
  147. /******/ if(idx >= 0) hot._disposeHandlers.splice(idx, 1);
  148. /******/ },
  149. /******/
  150. /******/ // Management API
  151. /******/ check: hotCheck,
  152. /******/ apply: hotApply,
  153. /******/ status: function(l) {
  154. /******/ if(!l) return hotStatus;
  155. /******/ hotStatusHandlers.push(l);
  156. /******/ },
  157. /******/ addStatusHandler: function(l) {
  158. /******/ hotStatusHandlers.push(l);
  159. /******/ },
  160. /******/ removeStatusHandler: function(l) {
  161. /******/ var idx = hotStatusHandlers.indexOf(l);
  162. /******/ if(idx >= 0) hotStatusHandlers.splice(idx, 1);
  163. /******/ },
  164. /******/
  165. /******/ //inherit from previous dispose call
  166. /******/ data: hotCurrentModuleData[moduleId]
  167. /******/ };
  168. /******/ return hot;
  169. /******/ }
  170. /******/
  171. /******/ var hotStatusHandlers = [];
  172. /******/ var hotStatus = "idle";
  173. /******/
  174. /******/ function hotSetStatus(newStatus) {
  175. /******/ hotStatus = newStatus;
  176. /******/ for(var i = 0; i < hotStatusHandlers.length; i++)
  177. /******/ hotStatusHandlers[i].call(null, newStatus);
  178. /******/ }
  179. /******/
  180. /******/ // while downloading
  181. /******/ var hotWaitingFiles = 0;
  182. /******/ var hotChunksLoading = 0;
  183. /******/ var hotWaitingFilesMap = {};
  184. /******/ var hotRequestedFilesMap = {};
  185. /******/ var hotAvailibleFilesMap = {};
  186. /******/ var hotCallback;
  187. /******/
  188. /******/ // The update info
  189. /******/ var hotUpdate, hotUpdateNewHash;
  190. /******/
  191. /******/ function hotCheck(apply, callback) {
  192. /******/ if(hotStatus !== "idle") throw new Error("check() is only allowed in idle status");
  193. /******/ if(typeof apply === "function") {
  194. /******/ hotApplyOnUpdate = false;
  195. /******/ callback = apply;
  196. /******/ } else {
  197. /******/ hotApplyOnUpdate = apply;
  198. /******/ callback = callback || function(err) { if(err) throw err };
  199. /******/ }
  200. /******/ hotSetStatus("check");
  201. /******/ hotDownloadManifest(function(err, update) {
  202. /******/ if(err) return callback(err);
  203. /******/ if(!update) {
  204. /******/ hotSetStatus("idle");
  205. /******/ callback(null, null);
  206. /******/ return;
  207. /******/ }
  208. /******/
  209. /******/ hotRequestedFilesMap = {};
  210. /******/ hotAvailibleFilesMap = {};
  211. /******/ hotWaitingFilesMap = {};
  212. /******/ for(var i = 0; i < update.c.length; i++)
  213. /******/ hotAvailibleFilesMap[update.c[i]] = true;
  214. /******/ hotUpdateNewHash = update.h;
  215. /******/
  216. /******/ hotSetStatus("prepare");
  217. /******/ hotCallback = callback;
  218. /******/ hotUpdate = {};
  219. /******/ var chunkId = 0; {
  220. /******/ hotEnsureUpdateChunk(chunkId);
  221. /******/ }
  222. /******/ if(hotChunksLoading === 0 && hotWaitingFiles === 0) {
  223. /******/ hotUpdateDownloaded();
  224. /******/ }
  225. /******/ });
  226. /******/ }
  227. /******/
  228. /******/ function hotAddUpdateChunk(chunkId, moreModules) {
  229. /******/ if(!hotAvailibleFilesMap[chunkId] || !hotRequestedFilesMap[chunkId])
  230. /******/ return;
  231. /******/ hotRequestedFilesMap[chunkId] = false;
  232. /******/ for(var moduleId in moreModules) {
  233. /******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
  234. /******/ hotUpdate[moduleId] = moreModules[moduleId];
  235. /******/ }
  236. /******/ }
  237. /******/ if(--hotWaitingFiles === 0 && hotChunksLoading === 0) {
  238. /******/ hotUpdateDownloaded();
  239. /******/ }
  240. /******/ }
  241. /******/
  242. /******/ function hotEnsureUpdateChunk(chunkId) {
  243. /******/ if(!hotAvailibleFilesMap[chunkId]) {
  244. /******/ hotWaitingFilesMap[chunkId] = true;
  245. /******/ } else {
  246. /******/ hotRequestedFilesMap[chunkId] = true;
  247. /******/ hotWaitingFiles++;
  248. /******/ hotDownloadUpdateChunk(chunkId);
  249. /******/ }
  250. /******/ }
  251. /******/
  252. /******/ function hotUpdateDownloaded() {
  253. /******/ hotSetStatus("ready");
  254. /******/ var callback = hotCallback;
  255. /******/ hotCallback = null;
  256. /******/ if(!callback) return;
  257. /******/ if(hotApplyOnUpdate) {
  258. /******/ hotApply(hotApplyOnUpdate, callback);
  259. /******/ } else {
  260. /******/ var outdatedModules = [];
  261. /******/ for(var id in hotUpdate) {
  262. /******/ if(Object.prototype.hasOwnProperty.call(hotUpdate, id)) {
  263. /******/ outdatedModules.push(+id);
  264. /******/ }
  265. /******/ }
  266. /******/ callback(null, outdatedModules);
  267. /******/ }
  268. /******/ }
  269. /******/
  270. /******/ function hotApply(options, callback) {
  271. /******/ if(hotStatus !== "ready") throw new Error("apply() is only allowed in ready status");
  272. /******/ if(typeof options === "function") {
  273. /******/ callback = options;
  274. /******/ options = {};
  275. /******/ } else if(options && typeof options === "object") {
  276. /******/ callback = callback || function(err) { if(err) throw err };
  277. /******/ } else {
  278. /******/ options = {};
  279. /******/ callback = callback || function(err) { if(err) throw err };
  280. /******/ }
  281. /******/
  282. /******/ function getAffectedStuff(module) {
  283. /******/ var outdatedModules = [module];
  284. /******/ var outdatedDependencies = {};
  285. /******/
  286. /******/ var queue = outdatedModules.slice();
  287. /******/ while(queue.length > 0) {
  288. /******/ var moduleId = queue.pop();
  289. /******/ var module = installedModules[moduleId];
  290. /******/ if(!module || module.hot._selfAccepted)
  291. /******/ continue;
  292. /******/ if(module.hot._selfDeclined) {
  293. /******/ return new Error("Aborted because of self decline: " + moduleId);
  294. /******/ }
  295. /******/ if(moduleId === 0) {
  296. /******/ return;
  297. /******/ }
  298. /******/ for(var i = 0; i < module.parents.length; i++) {
  299. /******/ var parentId = module.parents[i];
  300. /******/ var parent = installedModules[parentId];
  301. /******/ if(parent.hot._declinedDependencies[moduleId]) {
  302. /******/ return new Error("Aborted because of declined dependency: " + moduleId + " in " + parentId);
  303. /******/ }
  304. /******/ if(outdatedModules.indexOf(parentId) >= 0) continue;
  305. /******/ if(parent.hot._acceptedDependencies[moduleId]) {
  306. /******/ if(!outdatedDependencies[parentId])
  307. /******/ outdatedDependencies[parentId] = [];
  308. /******/ addAllToSet(outdatedDependencies[parentId], [moduleId]);
  309. /******/ continue;
  310. /******/ }
  311. /******/ delete outdatedDependencies[parentId];
  312. /******/ outdatedModules.push(parentId);
  313. /******/ queue.push(parentId);
  314. /******/ }
  315. /******/ }
  316. /******/
  317. /******/ return [outdatedModules, outdatedDependencies];
  318. /******/ }
  319. /******/ function addAllToSet(a, b) {
  320. /******/ for(var i = 0; i < b.length; i++) {
  321. /******/ var item = b[i];
  322. /******/ if(a.indexOf(item) < 0)
  323. /******/ a.push(item);
  324. /******/ }
  325. /******/ }
  326. /******/
  327. /******/ // at begin all updates modules are outdated
  328. /******/ // the "outdated" status can propagate to parents if they don't accept the children
  329. /******/ var outdatedDependencies = {};
  330. /******/ var outdatedModules = [];
  331. /******/ var appliedUpdate = {};
  332. /******/ for(var id in hotUpdate) {
  333. /******/ if(Object.prototype.hasOwnProperty.call(hotUpdate, id)) {
  334. /******/ var moduleId = +id;
  335. /******/ var result = getAffectedStuff(moduleId);
  336. /******/ if(!result) {
  337. /******/ if(options.ignoreUnaccepted)
  338. /******/ continue;
  339. /******/ hotSetStatus("abort");
  340. /******/ return callback(new Error("Aborted because " + moduleId + " is not accepted"));
  341. /******/ }
  342. /******/ if(result instanceof Error) {
  343. /******/ hotSetStatus("abort");
  344. /******/ return callback(result);
  345. /******/ }
  346. /******/ appliedUpdate[moduleId] = hotUpdate[moduleId];
  347. /******/ addAllToSet(outdatedModules, result[0]);
  348. /******/ for(var moduleId in result[1]) {
  349. /******/ if(Object.prototype.hasOwnProperty.call(result[1], moduleId)) {
  350. /******/ if(!outdatedDependencies[moduleId])
  351. /******/ outdatedDependencies[moduleId] = [];
  352. /******/ addAllToSet(outdatedDependencies[moduleId], result[1][moduleId]);
  353. /******/ }
  354. /******/ }
  355. /******/ }
  356. /******/ }
  357. /******/
  358. /******/ // Store self accepted outdated modules to require them later by the module system
  359. /******/ var outdatedSelfAcceptedModules = [];
  360. /******/ for(var i = 0; i < outdatedModules.length; i++) {
  361. /******/ var moduleId = outdatedModules[i];
  362. /******/ if(installedModules[moduleId] && installedModules[moduleId].hot._selfAccepted)
  363. /******/ outdatedSelfAcceptedModules.push({
  364. /******/ module: moduleId,
  365. /******/ errorHandler: installedModules[moduleId].hot._selfAccepted
  366. /******/ });
  367. /******/ }
  368. /******/
  369. /******/ // Now in "dispose" phase
  370. /******/ hotSetStatus("dispose");
  371. /******/ var queue = outdatedModules.slice();
  372. /******/ while(queue.length > 0) {
  373. /******/ var moduleId = queue.pop();
  374. /******/ var module = installedModules[moduleId];
  375. /******/ if(!module) continue;
  376. /******/
  377. /******/ var data = {};
  378. /******/
  379. /******/ // Call dispose handlers
  380. /******/ var disposeHandlers = module.hot._disposeHandlers;
  381. /******/ for(var j = 0; j < disposeHandlers.length; j++) {
  382. /******/ var cb = disposeHandlers[j]
  383. /******/ cb(data);
  384. /******/ }
  385. /******/ hotCurrentModuleData[moduleId] = data;
  386. /******/
  387. /******/ // disable module (this disables requires from this module)
  388. /******/ module.hot.active = false;
  389. /******/
  390. /******/ // remove module from cache
  391. /******/ delete installedModules[moduleId];
  392. /******/
  393. /******/ // remove "parents" references from all children
  394. /******/ for(var j = 0; j < module.children.length; j++) {
  395. /******/ var child = installedModules[module.children[j]];
  396. /******/ if(!child) continue;
  397. /******/ var idx = child.parents.indexOf(moduleId);
  398. /******/ if(idx >= 0) {
  399. /******/ child.parents.splice(idx, 1);
  400. /******/ if(child.parents.length === 0 && child.hot && child.hot._disposeHandlers && child.hot._disposeHandlers.length > 0) {
  401. /******/ // Child has dispose handlers and no more references, dispose it too
  402. /******/ queue.push(child.id);
  403. /******/ }
  404. /******/ }
  405. /******/ }
  406. /******/ }
  407. /******/
  408. /******/ // remove outdated dependency from module children
  409. /******/ for(var moduleId in outdatedDependencies) {
  410. /******/ if(Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)) {
  411. /******/ var module = installedModules[moduleId];
  412. /******/ var moduleOutdatedDependencies = outdatedDependencies[moduleId];
  413. /******/ for(var j = 0; j < moduleOutdatedDependencies.length; j++) {
  414. /******/ var dependency = moduleOutdatedDependencies[j];
  415. /******/ var idx = module.children.indexOf(dependency);
  416. /******/ if(idx >= 0) module.children.splice(idx, 1);
  417. /******/ }
  418. /******/ }
  419. /******/ }
  420. /******/
  421. /******/ // Not in "apply" phase
  422. /******/ hotSetStatus("apply");
  423. /******/
  424. /******/ hotCurrentHash = hotUpdateNewHash;
  425. /******/
  426. /******/ // insert new code
  427. /******/ for(var moduleId in appliedUpdate) {
  428. /******/ if(Object.prototype.hasOwnProperty.call(appliedUpdate, moduleId)) {
  429. /******/ modules[moduleId] = appliedUpdate[moduleId];
  430. /******/ }
  431. /******/ }
  432. /******/
  433. /******/ // call accept handlers
  434. /******/ var error = null;
  435. /******/ for(var moduleId in outdatedDependencies) {
  436. /******/ if(Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)) {
  437. /******/ var module = installedModules[moduleId];
  438. /******/ var moduleOutdatedDependencies = outdatedDependencies[moduleId];
  439. /******/ var callbacks = [];
  440. /******/ for(var i = 0; i < moduleOutdatedDependencies.length; i++) {
  441. /******/ var dependency = moduleOutdatedDependencies[i];
  442. /******/ var cb = module.hot._acceptedDependencies[dependency];
  443. /******/ if(callbacks.indexOf(cb) >= 0) continue;
  444. /******/ callbacks.push(cb);
  445. /******/ }
  446. /******/ for(var i = 0; i < callbacks.length; i++) {
  447. /******/ var cb = callbacks[i];
  448. /******/ try {
  449. /******/ cb(outdatedDependencies);
  450. /******/ } catch(err) {
  451. /******/ if(!error)
  452. /******/ error = err;
  453. /******/ }
  454. /******/ }
  455. /******/ }
  456. /******/ }
  457. /******/
  458. /******/ // Load self accepted modules
  459. /******/ for(var i = 0; i < outdatedSelfAcceptedModules.length; i++) {
  460. /******/ var item = outdatedSelfAcceptedModules[i];
  461. /******/ var moduleId = item.module;
  462. /******/ hotCurrentParents = [moduleId];
  463. /******/ try {
  464. /******/ __webpack_require__(moduleId);
  465. /******/ } catch(err) {
  466. /******/ if(typeof item.errorHandler === "function") {
  467. /******/ try {
  468. /******/ item.errorHandler(err);
  469. /******/ } catch(err) {
  470. /******/ if(!error)
  471. /******/ error = err;
  472. /******/ }
  473. /******/ } else if(!error)
  474. /******/ error = err;
  475. /******/ }
  476. /******/ }
  477. /******/
  478. /******/ // handle errors in accept handlers and self accepted module load
  479. /******/ if(error) {
  480. /******/ hotSetStatus("fail");
  481. /******/ return callback(error);
  482. /******/ }
  483. /******/
  484. /******/ hotSetStatus("idle");
  485. /******/ callback(null, outdatedModules);
  486. /******/ }
  487. /******/
  488. /******/ // The module cache
  489. /******/ var installedModules = {};
  490. /******/
  491. /******/ // The require function
  492. /******/ function __webpack_require__(moduleId) {
  493. /******/
  494. /******/ // Check if module is in cache
  495. /******/ if(installedModules[moduleId])
  496. /******/ return installedModules[moduleId].exports;
  497. /******/
  498. /******/ // Create a new module (and put it into the cache)
  499. /******/ var module = installedModules[moduleId] = {
  500. /******/ exports: {},
  501. /******/ id: moduleId,
  502. /******/ loaded: false,
  503. /******/ hot: hotCreateModule(moduleId),
  504. /******/ parents: hotCurrentParents,
  505. /******/ children: []
  506. /******/ };
  507. /******/
  508. /******/ // Execute the module function
  509. /******/ modules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId));
  510. /******/
  511. /******/ // Flag the module as loaded
  512. /******/ module.loaded = true;
  513. /******/
  514. /******/ // Return the exports of the module
  515. /******/ return module.exports;
  516. /******/ }
  517. /******/
  518. /******/
  519. /******/ // expose the modules object (__webpack_modules__)
  520. /******/ __webpack_require__.m = modules;
  521. /******/
  522. /******/ // expose the module cache
  523. /******/ __webpack_require__.c = installedModules;
  524. /******/
  525. /******/ // __webpack_public_path__
  526. /******/ __webpack_require__.p = "/scripts/";
  527. /******/
  528. /******/ // __webpack_hash__
  529. /******/ __webpack_require__.h = function() { return hotCurrentHash; };
  530. /******/
  531. /******/ // Load entry module and return exports
  532. /******/ return hotCreateRequire(0)(0);
  533. /******/ })
  534. /************************************************************************/
  535. /******/ ([
  536. /* 0 */
  537. /***/ function(module, exports, __webpack_require__) {
  538. eval("__webpack_require__(2);\n__webpack_require__(1);\nmodule.exports = __webpack_require__(3);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** multi main\n ** module id = 0\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///multi_main?");
  539. /***/ },
  540. /* 1 */
  541. /***/ function(module, exports, __webpack_require__) {
  542. eval("if(true) {\r\n\tvar lastData;\r\n\tvar upToDate = function upToDate() {\r\n\t\treturn lastData.indexOf(__webpack_require__.h()) >= 0;\r\n\t};\r\n\tvar check = function check() {\r\n\t\tmodule.hot.check(function(err, updatedModules) {\r\n\t\t\tif(err) {\r\n\t\t\t\tif(module.hot.status() in {abort:1,fail:1}) {\r\n\t\t\t\t\tconsole.warn(\"[HMR] Cannot check for update. Need to do a full reload!\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.warn(\"[HMR] Update check failed: \" + err);\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif(!updatedModules) {\r\n\t\t\t\tconsole.warn(\"[HMR] Cannot find update. Need to do a full reload!\");\r\n\t\t\t\tconsole.warn(\"[HMR] (Propably because of restarting the webpack-dev-server)\")\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tmodule.hot.apply({\r\n\t\t\t\tignoreUnaccepted: true\r\n\t\t\t}, function(err, renewedModules) {\r\n\t\t\t\tif(err) {\r\n\t\t\t\t\tif(module.hot.status() in {abort:1,fail:1}) {\r\n\t\t\t\t\t\tconsole.warn(\"[HMR] Cannot apply update (Need to do a full reload!): \" + err);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconsole.warn(\"[HMR] Update failed: \" + err);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(!upToDate()) {\r\n\t\t\t\t\tcheck();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar unacceptedModules = updatedModules.filter(function(moduleId) {\r\n\t\t\t\t\treturn renewedModules.indexOf(moduleId) < 0;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif(unacceptedModules.length > 0) {\r\n\t\t\t\t\tconsole.warn(\"[HMR] The following modules couldn't be hot updated: (They would need a full reload!)\");\r\n\t\t\t\t\tunacceptedModules.forEach(function(moduleId) {\r\n\t\t\t\t\t\tconsole.warn(\"[HMR] - \" + moduleId);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(!renewedModules || renewedModules.length === 0) {\r\n\t\t\t\t\tconsole.log(\"[HMR] Nothing hot updated.\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.log(\"[HMR] Updated modules:\");\r\n\t\t\t\t\trenewedModules.forEach(function(moduleId) {\r\n\t\t\t\t\t\tconsole.log(\"[HMR] - \" + moduleId);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tif(upToDate()) {\r\n\t\t\t\t\tconsole.log(\"[HMR] App is up to date.\");\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\tvar addEventListener = window.addEventListener ? function(eventName, listener) {\r\n\t\twindow.addEventListener(eventName, listener, false);\r\n\t} : function (eventName, listener) {\r\n\t\twindow.attachEvent('on' + eventName, listener);\r\n\t};\r\n\taddEventListener(\"message\", function(event) {\r\n\t\tif(typeof event.data === \"string\" && event.data.indexOf(\"webpackHotUpdate\") === 0) {\r\n\t\t\tlastData = event.data;\r\n\t\t\tif(!upToDate() && module.hot.status() === \"idle\") {\r\n\t\t\t\tconsole.log(\"[HMR] Checking for updates on the server...\");\r\n\t\t\t\tcheck();\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tconsole.log(\"[HMR] Waiting for update signal from WDS...\");\r\n} else {\r\n\tthrow new Error(\"[HMR] Hot Module Replacement is disabled\");\r\n}\r\n\n\n/*****************\n ** WEBPACK FOOTER\n ** (webpack)/hot/only-dev-server.js\n ** module id = 1\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///(webpack)/hot/only-dev-server.js?");
  543. /***/ },
  544. /* 2 */
  545. /***/ function(module, exports, __webpack_require__) {
  546. eval("/* WEBPACK VAR INJECTION */(function(__resourceQuery) {var io = __webpack_require__(8);\r\nvar scriptElements = document.getElementsByTagName(\"script\");\r\nio = io.connect(true ?\r\n\t__resourceQuery.substr(1) :\r\n\tscriptElements[scriptElements.length-1].getAttribute(\"src\").replace(/\\/[^\\/]+$/, \"\")\r\n);\r\n\r\nvar hot = false;\r\nvar initial = true;\r\nvar currentHash = \"\";\r\n\r\nio.on(\"hot\", function() {\r\n\thot = true;\r\n\tconsole.log(\"[WDS] Hot Module Replacement enabled.\");\r\n});\r\n\r\nio.on(\"invalid\", function() {\r\n\tconsole.log(\"[WDS] App updated. Recompiling...\");\r\n});\r\n\r\nio.on(\"hash\", function(hash) {\r\n\tcurrentHash = hash;\r\n});\r\n\r\nio.on(\"ok\", function() {\r\n\tif(initial) return initial = false;\r\n\treloadApp();\r\n});\r\n\r\nio.on(\"warnings\", function(warnings) {\r\n\tconsole.log(\"[WDS] Warnings while compiling.\");\r\n\tfor(var i = 0; i < warnings.length; i++)\r\n\t\tconsole.warn(warnings[i]);\r\n\tif(initial) return initial = false;\r\n\treloadApp();\r\n});\r\n\r\nio.on(\"errors\", function(errors) {\r\n\tconsole.log(\"[WDS] Errors while compiling.\");\r\n\tfor(var i = 0; i < errors.length; i++)\r\n\t\tconsole.error(errors[i]);\r\n\tif(initial) return initial = false;\r\n\treloadApp();\r\n});\r\n\r\nio.on(\"proxy-error\", function(errors) {\r\n\tconsole.log(\"[WDS] Proxy error.\");\r\n\tfor(var i = 0; i < errors.length; i++)\r\n\t\tconsole.error(errors[i]);\r\n\tif(initial) return initial = false;\r\n\treloadApp();\r\n});\r\n\r\nio.on(\"disconnect\", function() {\r\n\tconsole.error(\"[WDS] Disconnected!\");\r\n});\r\n\r\nfunction reloadApp() {\r\n\tif(hot) {\r\n\t\tconsole.log(\"[WDS] App hot update...\");\r\n\t\twindow.postMessage(\"webpackHotUpdate\" + currentHash, \"*\");\r\n\t} else {\r\n\t\tconsole.log(\"[WDS] App updated. Reloading...\");\r\n\t\twindow.location.reload();\r\n\t}\r\n}\n/* WEBPACK VAR INJECTION */}.call(exports, \"?http://localhost:3000\"))\n\n/*****************\n ** WEBPACK FOOTER\n ** (webpack)-dev-server/client?http://localhost:3000\n ** module id = 2\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///(webpack)-dev-server/client?");
  547. /***/ },
  548. /* 3 */
  549. /***/ function(module, exports, __webpack_require__) {
  550. eval("/* WEBPACK VAR INJECTION */(function(module) {/* REACT HOT LOADER */ if (true) { (function () { var ReactHotAPI = __webpack_require__(10), RootInstanceProvider = __webpack_require__(4), ReactMount = __webpack_require__(9); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }); })(); }\n\n'use strict';\n\nvar React = __webpack_require__(11),\n App = __webpack_require__(7);\n\nReact.render(React.createElement(App, null), document.body);\n\n\n/* REACT HOT LOADER */ if (true) { (function () { module.hot.dispose(function (data) { data.makeHot = module.makeHot; }); if (module.exports && module.makeHot) { var makeExportsHot = __webpack_require__(5), foundReactClasses = false; if (makeExportsHot(module)) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"index.js\" + \": \" + err.message); } }); } } })(); }\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)(module)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./scripts/index.js\n ** module id = 3\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./scripts/index.js?");
  551. /***/ },
  552. /* 4 */
  553. /***/ function(module, exports, __webpack_require__) {
  554. eval("'use strict';\n\nvar getRootInstancesFromReactMount = __webpack_require__(12);\n\nvar injectedProvider = null,\n didWarn = false;\n\nfunction warnOnce() {\n if (!didWarn) {\n console.warn(\n 'It appears that React Hot Loader isn\\'t configured correctly. ' +\n 'If you\\'re using NPM, make sure your dependencies don\\'t drag duplicate React distributions into their node_modules and that require(\"react\") corresponds to the React instance you render your app with.',\n 'If you\\'re using a precompiled version of React, see https://github.com/gaearon/react-hot-loader/tree/master/docs#usage-with-external-react for integration instructions.'\n );\n }\n\n didWarn = true;\n}\n\nvar RootInstanceProvider = {\n injection: {\n injectProvider: function (provider) {\n injectedProvider = provider;\n }\n },\n\n getRootInstances: function (ReactMount) {\n if (injectedProvider) {\n return injectedProvider.getRootInstances();\n }\n\n var instances = ReactMount && getRootInstancesFromReactMount(ReactMount) || [];\n if (!Object.keys(instances).length) {\n warnOnce();\n }\n\n return instances;\n }\n};\n\nmodule.exports = RootInstanceProvider;\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react-hot-loader/RootInstanceProvider.js\n ** module id = 4\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react-hot-loader/RootInstanceProvider.js?");
  555. /***/ },
  556. /* 5 */
  557. /***/ function(module, exports, __webpack_require__) {
  558. eval("'use strict';\n\nvar isReactClassish = __webpack_require__(13),\n isReactElementish = __webpack_require__(14);\n\nfunction makeExportsHot(m) {\n if (isReactElementish(m.exports)) {\n return false;\n }\n\n var freshExports = m.exports,\n foundReactClasses = false;\n\n if (isReactClassish(m.exports)) {\n m.exports = m.makeHot(m.exports, '__MODULE_EXPORTS');\n foundReactClasses = true;\n }\n\n for (var key in m.exports) {\n if (freshExports.hasOwnProperty(key) &&\n isReactClassish(freshExports[key])) {\n\n m.exports[key] = m.makeHot(freshExports[key], '__MODULE_EXPORTS_' + key);\n foundReactClasses = true;\n }\n }\n\n return foundReactClasses;\n}\n\nmodule.exports = makeExportsHot;\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react-hot-loader/makeExportsHot.js\n ** module id = 5\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react-hot-loader/makeExportsHot.js?");
  559. /***/ },
  560. /* 6 */
  561. /***/ function(module, exports, __webpack_require__) {
  562. eval("module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tmodule.children = [];\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n}\r\n\n\n/*****************\n ** WEBPACK FOOTER\n ** (webpack)/buildin/module.js\n ** module id = 6\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///(webpack)/buildin/module.js?");
  563. /***/ },
  564. /* 7 */
  565. /***/ function(module, exports, __webpack_require__) {
  566. eval("/* WEBPACK VAR INJECTION */(function(module) {/* REACT HOT LOADER */ if (true) { (function () { var ReactHotAPI = __webpack_require__(10), RootInstanceProvider = __webpack_require__(4), ReactMount = __webpack_require__(9); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }); })(); }\n\n'use strict';\n\nvar React = __webpack_require__(11);\n\nvar App = React.createClass({displayName: \"App\",\n render:function() {\n return (\n React.createElement(\"div\", null, \n React.createElement(\"h1\", null, \"Hello, world.\"), \n React.createElement(\"ul\", null, \n \tReact.createElement(\"li\", null, \"1\"), \n \tReact.createElement(\"li\", null, \"2\"), \n \tReact.createElement(\"li\", null, \"3\")\n )\n )\n );\n }\n});\n\nmodule.exports = App;\n\n/* REACT HOT LOADER */ if (true) { (function () { module.hot.dispose(function (data) { data.makeHot = module.makeHot; }); if (module.exports && module.makeHot) { var makeExportsHot = __webpack_require__(5), foundReactClasses = false; if (makeExportsHot(module)) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"app.js\" + \": \" + err.message); } }); } } })(); }\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)(module)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./scripts/app.js\n ** module id = 7\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./scripts/app.js?");
  567. /***/ },
  568. /* 8 */
  569. /***/ function(module, exports, __webpack_require__) {
  570. eval("module.exports = __webpack_require__(15);\r\n\n\n/*****************\n ** WEBPACK FOOTER\n ** (webpack)-dev-server/client/web_modules/socket.io/index.js\n ** module id = 8\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///(webpack)-dev-server/client/web_modules/socket.io/index.js?");
  571. /***/ },
  572. /* 9 */
  573. /***/ function(module, exports, __webpack_require__) {
  574. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMount\n */\n\n\"use strict\";\n\nvar DOMProperty = __webpack_require__(16);\nvar ReactBrowserEventEmitter = __webpack_require__(17);\nvar ReactCurrentOwner = __webpack_require__(18);\nvar ReactElement = __webpack_require__(19);\nvar ReactLegacyElement = __webpack_require__(20);\nvar ReactInstanceHandles = __webpack_require__(21);\nvar ReactPerf = __webpack_require__(22);\n\nvar containsNode = __webpack_require__(23);\nvar deprecated = __webpack_require__(24);\nvar getReactRootElementInContainer = __webpack_require__(25);\nvar instantiateReactComponent = __webpack_require__(26);\nvar invariant = __webpack_require__(27);\nvar shouldUpdateReactComponent = __webpack_require__(28);\nvar warning = __webpack_require__(29);\n\nvar createElement = ReactLegacyElement.wrapCreateElement(\n ReactElement.createElement\n);\n\nvar SEPARATOR = ReactInstanceHandles.SEPARATOR;\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar nodeCache = {};\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOC_NODE_TYPE = 9;\n\n/** Mapping from reactRootID to React component instance. */\nvar instancesByReactRootID = {};\n\n/** Mapping from reactRootID to `container` nodes. */\nvar containersByReactRootID = {};\n\nif (\"production\" !== process.env.NODE_ENV) {\n /** __DEV__-only mapping from reactRootID to root elements. */\n var rootElementsByReactRootID = {};\n}\n\n// Used to store breadth-first search state in findComponentRoot.\nvar findComponentRootReusableArray = [];\n\n/**\n * @param {DOMElement} container DOM element that may contain a React component.\n * @return {?string} A \"reactRoot\" ID, if a React component is rendered.\n */\nfunction getReactRootID(container) {\n var rootElement = getReactRootElementInContainer(container);\n return rootElement && ReactMount.getID(rootElement);\n}\n\n/**\n * Accessing node[ATTR_NAME] or calling getAttribute(ATTR_NAME) on a form\n * element can return its control whose name or ID equals ATTR_NAME. All\n * DOM nodes support `getAttributeNode` but this can also get called on\n * other objects so just return '' if we're given something other than a\n * DOM node (such as window).\n *\n * @param {?DOMElement|DOMWindow|DOMDocument|DOMTextNode} node DOM node.\n * @return {string} ID of the supplied `domNode`.\n */\nfunction getID(node) {\n var id = internalGetID(node);\n if (id) {\n if (nodeCache.hasOwnProperty(id)) {\n var cached = nodeCache[id];\n if (cached !== node) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n !isValid(cached, id),\n 'ReactMount: Two valid but unequal nodes with the same `%s`: %s',\n ATTR_NAME, id\n ) : invariant(!isValid(cached, id)));\n\n nodeCache[id] = node;\n }\n } else {\n nodeCache[id] = node;\n }\n }\n\n return id;\n}\n\nfunction internalGetID(node) {\n // If node is something like a window, document, or text node, none of\n // which support attributes or a .getAttribute method, gracefully return\n // the empty string, as if the attribute were missing.\n return node && node.getAttribute && node.getAttribute(ATTR_NAME) || '';\n}\n\n/**\n * Sets the React-specific ID of the given node.\n *\n * @param {DOMElement} node The DOM node whose ID will be set.\n * @param {string} id The value of the ID attribute.\n */\nfunction setID(node, id) {\n var oldID = internalGetID(node);\n if (oldID !== id) {\n delete nodeCache[oldID];\n }\n node.setAttribute(ATTR_NAME, id);\n nodeCache[id] = node;\n}\n\n/**\n * Finds the node with the supplied React-generated DOM ID.\n *\n * @param {string} id A React-generated DOM ID.\n * @return {DOMElement} DOM node with the suppled `id`.\n * @internal\n */\nfunction getNode(id) {\n if (!nodeCache.hasOwnProperty(id) || !isValid(nodeCache[id], id)) {\n nodeCache[id] = ReactMount.findReactNodeByID(id);\n }\n return nodeCache[id];\n}\n\n/**\n * A node is \"valid\" if it is contained by a currently mounted container.\n *\n * This means that the node does not have to be contained by a document in\n * order to be considered valid.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @param {string} id The expected ID of the node.\n * @return {boolean} Whether the node is contained by a mounted container.\n */\nfunction isValid(node, id) {\n if (node) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n internalGetID(node) === id,\n 'ReactMount: Unexpected modification of `%s`',\n ATTR_NAME\n ) : invariant(internalGetID(node) === id));\n\n var container = ReactMount.findReactContainerForID(id);\n if (container && containsNode(container, node)) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Causes the cache to forget about one React-specific ID.\n *\n * @param {string} id The ID to forget.\n */\nfunction purgeID(id) {\n delete nodeCache[id];\n}\n\nvar deepestNodeSoFar = null;\nfunction findDeepestCachedAncestorImpl(ancestorID) {\n var ancestor = nodeCache[ancestorID];\n if (ancestor && isValid(ancestor, ancestorID)) {\n deepestNodeSoFar = ancestor;\n } else {\n // This node isn't populated in the cache, so presumably none of its\n // descendants are. Break out of the loop.\n return false;\n }\n}\n\n/**\n * Return the deepest cached node whose ID is a prefix of `targetID`.\n */\nfunction findDeepestCachedAncestor(targetID) {\n deepestNodeSoFar = null;\n ReactInstanceHandles.traverseAncestors(\n targetID,\n findDeepestCachedAncestorImpl\n );\n\n var foundNode = deepestNodeSoFar;\n deepestNodeSoFar = null;\n return foundNode;\n}\n\n/**\n * Mounting is the process of initializing a React component by creatings its\n * representative DOM elements and inserting them into a supplied `container`.\n * Any prior content inside `container` is destroyed in the process.\n *\n * ReactMount.render(\n * component,\n * document.getElementById('container')\n * );\n *\n * <div id=\"container\"> <-- Supplied `container`.\n * <div data-reactid=\".3\"> <-- Rendered reactRoot of React\n * // ... component.\n * </div>\n * </div>\n *\n * Inside of `container`, the first element rendered is the \"reactRoot\".\n */\nvar ReactMount = {\n /** Exposed for debugging purposes **/\n _instancesByReactRootID: instancesByReactRootID,\n\n /**\n * This is a hook provided to support rendering React components while\n * ensuring that the apparent scroll position of its `container` does not\n * change.\n *\n * @param {DOMElement} container The `container` being rendered into.\n * @param {function} renderCallback This must be called once to do the render.\n */\n scrollMonitor: function(container, renderCallback) {\n renderCallback();\n },\n\n /**\n * Take a component that's already mounted into the DOM and replace its props\n * @param {ReactComponent} prevComponent component instance already in the DOM\n * @param {ReactComponent} nextComponent component instance to render\n * @param {DOMElement} container container to render into\n * @param {?function} callback function triggered on completion\n */\n _updateRootComponent: function(\n prevComponent,\n nextComponent,\n container,\n callback) {\n var nextProps = nextComponent.props;\n ReactMount.scrollMonitor(container, function() {\n prevComponent.replaceProps(nextProps, callback);\n });\n\n if (\"production\" !== process.env.NODE_ENV) {\n // Record the root element in case it later gets transplanted.\n rootElementsByReactRootID[getReactRootID(container)] =\n getReactRootElementInContainer(container);\n }\n\n return prevComponent;\n },\n\n /**\n * Register a component into the instance map and starts scroll value\n * monitoring\n * @param {ReactComponent} nextComponent component instance to render\n * @param {DOMElement} container container to render into\n * @return {string} reactRoot ID prefix\n */\n _registerComponent: function(nextComponent, container) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n container && (\n container.nodeType === ELEMENT_NODE_TYPE ||\n container.nodeType === DOC_NODE_TYPE\n ),\n '_registerComponent(...): Target container is not a DOM element.'\n ) : invariant(container && (\n container.nodeType === ELEMENT_NODE_TYPE ||\n container.nodeType === DOC_NODE_TYPE\n )));\n\n ReactBrowserEventEmitter.ensureScrollValueMonitoring();\n\n var reactRootID = ReactMount.registerContainer(container);\n instancesByReactRootID[reactRootID] = nextComponent;\n return reactRootID;\n },\n\n /**\n * Render a new component into the DOM.\n * @param {ReactComponent} nextComponent component instance to render\n * @param {DOMElement} container container to render into\n * @param {boolean} shouldReuseMarkup if we should skip the markup insertion\n * @return {ReactComponent} nextComponent\n */\n _renderNewRootComponent: ReactPerf.measure(\n 'ReactMount',\n '_renderNewRootComponent',\n function(\n nextComponent,\n container,\n shouldReuseMarkup) {\n // Various parts of our code (such as ReactCompositeComponent's\n // _renderValidatedComponent) assume that calls to render aren't nested;\n // verify that that's the case.\n (\"production\" !== process.env.NODE_ENV ? warning(\n ReactCurrentOwner.current == null,\n '_renderNewRootComponent(): Render methods should be a pure function ' +\n 'of props and state; triggering nested component updates from ' +\n 'render is not allowed. If necessary, trigger nested updates in ' +\n 'componentDidUpdate.'\n ) : null);\n\n var componentInstance = instantiateReactComponent(nextComponent, null);\n var reactRootID = ReactMount._registerComponent(\n componentInstance,\n container\n );\n componentInstance.mountComponentIntoNode(\n reactRootID,\n container,\n shouldReuseMarkup\n );\n\n if (\"production\" !== process.env.NODE_ENV) {\n // Record the root element in case it later gets transplanted.\n rootElementsByReactRootID[reactRootID] =\n getReactRootElementInContainer(container);\n }\n\n return componentInstance;\n }\n ),\n\n /**\n * Renders a React component into the DOM in the supplied `container`.\n *\n * If the React component was previously rendered into `container`, this will\n * perform an update on it and only mutate the DOM as necessary to reflect the\n * latest React component.\n *\n * @param {ReactElement} nextElement Component element to render.\n * @param {DOMElement} container DOM element to render into.\n * @param {?function} callback function triggered on completion\n * @return {ReactComponent} Component instance rendered in `container`.\n */\n render: function(nextElement, container, callback) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n ReactElement.isValidElement(nextElement),\n 'renderComponent(): Invalid component element.%s',\n (\n typeof nextElement === 'string' ?\n ' Instead of passing an element string, make sure to instantiate ' +\n 'it by passing it to React.createElement.' :\n ReactLegacyElement.isValidFactory(nextElement) ?\n ' Instead of passing a component class, make sure to instantiate ' +\n 'it by passing it to React.createElement.' :\n // Check if it quacks like a element\n typeof nextElement.props !== \"undefined\" ?\n ' This may be caused by unintentionally loading two independent ' +\n 'copies of React.' :\n ''\n )\n ) : invariant(ReactElement.isValidElement(nextElement)));\n\n var prevComponent = instancesByReactRootID[getReactRootID(container)];\n\n if (prevComponent) {\n var prevElement = prevComponent._currentElement;\n if (shouldUpdateReactComponent(prevElement, nextElement)) {\n return ReactMount._updateRootComponent(\n prevComponent,\n nextElement,\n container,\n callback\n );\n } else {\n ReactMount.unmountComponentAtNode(container);\n }\n }\n\n var reactRootElement = getReactRootElementInContainer(container);\n var containerHasReactMarkup =\n reactRootElement && ReactMount.isRenderedByReact(reactRootElement);\n\n var shouldReuseMarkup = containerHasReactMarkup && !prevComponent;\n\n var component = ReactMount._renderNewRootComponent(\n nextElement,\n container,\n shouldReuseMarkup\n );\n callback && callback.call(component);\n return component;\n },\n\n /**\n * Constructs a component instance of `constructor` with `initialProps` and\n * renders it into the supplied `container`.\n *\n * @param {function} constructor React component constructor.\n * @param {?object} props Initial props of the component instance.\n * @param {DOMElement} container DOM element to render into.\n * @return {ReactComponent} Component instance rendered in `container`.\n */\n constructAndRenderComponent: function(constructor, props, container) {\n var element = createElement(constructor, props);\n return ReactMount.render(element, container);\n },\n\n /**\n * Constructs a component instance of `constructor` with `initialProps` and\n * renders it into a container node identified by supplied `id`.\n *\n * @param {function} componentConstructor React component constructor\n * @param {?object} props Initial props of the component instance.\n * @param {string} id ID of the DOM element to render into.\n * @return {ReactComponent} Component instance rendered in the container node.\n */\n constructAndRenderComponentByID: function(constructor, props, id) {\n var domNode = document.getElementById(id);\n (\"production\" !== process.env.NODE_ENV ? invariant(\n domNode,\n 'Tried to get element with id of \"%s\" but it is not present on the page.',\n id\n ) : invariant(domNode));\n return ReactMount.constructAndRenderComponent(constructor, props, domNode);\n },\n\n /**\n * Registers a container node into which React components will be rendered.\n * This also creates the \"reactRoot\" ID that will be assigned to the element\n * rendered within.\n *\n * @param {DOMElement} container DOM element to register as a container.\n * @return {string} The \"reactRoot\" ID of elements rendered within.\n */\n registerContainer: function(container) {\n var reactRootID = getReactRootID(container);\n if (reactRootID) {\n // If one exists, make sure it is a valid \"reactRoot\" ID.\n reactRootID = ReactInstanceHandles.getReactRootIDFromNodeID(reactRootID);\n }\n if (!reactRootID) {\n // No valid \"reactRoot\" ID found, create one.\n reactRootID = ReactInstanceHandles.createReactRootID();\n }\n containersByReactRootID[reactRootID] = container;\n return reactRootID;\n },\n\n /**\n * Unmounts and destroys the React component rendered in the `container`.\n *\n * @param {DOMElement} container DOM element containing a React component.\n * @return {boolean} True if a component was found in and unmounted from\n * `container`\n */\n unmountComponentAtNode: function(container) {\n // Various parts of our code (such as ReactCompositeComponent's\n // _renderValidatedComponent) assume that calls to render aren't nested;\n // verify that that's the case. (Strictly speaking, unmounting won't cause a\n // render but we still don't expect to be in a render call here.)\n (\"production\" !== process.env.NODE_ENV ? warning(\n ReactCurrentOwner.current == null,\n 'unmountComponentAtNode(): Render methods should be a pure function of ' +\n 'props and state; triggering nested component updates from render is ' +\n 'not allowed. If necessary, trigger nested updates in ' +\n 'componentDidUpdate.'\n ) : null);\n\n var reactRootID = getReactRootID(container);\n var component = instancesByReactRootID[reactRootID];\n if (!component) {\n return false;\n }\n ReactMount.unmountComponentFromNode(component, container);\n delete instancesByReactRootID[reactRootID];\n delete containersByReactRootID[reactRootID];\n if (\"production\" !== process.env.NODE_ENV) {\n delete rootElementsByReactRootID[reactRootID];\n }\n return true;\n },\n\n /**\n * Unmounts a component and removes it from the DOM.\n *\n * @param {ReactComponent} instance React component instance.\n * @param {DOMElement} container DOM element to unmount from.\n * @final\n * @internal\n * @see {ReactMount.unmountComponentAtNode}\n */\n unmountComponentFromNode: function(instance, container) {\n instance.unmountComponent();\n\n if (container.nodeType === DOC_NODE_TYPE) {\n container = container.documentElement;\n }\n\n // http://jsperf.com/emptying-a-node\n while (container.lastChild) {\n container.removeChild(container.lastChild);\n }\n },\n\n /**\n * Finds the container DOM element that contains React component to which the\n * supplied DOM `id` belongs.\n *\n * @param {string} id The ID of an element rendered by a React component.\n * @return {?DOMElement} DOM element that contains the `id`.\n */\n findReactContainerForID: function(id) {\n var reactRootID = ReactInstanceHandles.getReactRootIDFromNodeID(id);\n var container = containersByReactRootID[reactRootID];\n\n if (\"production\" !== process.env.NODE_ENV) {\n var rootElement = rootElementsByReactRootID[reactRootID];\n if (rootElement && rootElement.parentNode !== container) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n // Call internalGetID here because getID calls isValid which calls\n // findReactContainerForID (this function).\n internalGetID(rootElement) === reactRootID,\n 'ReactMount: Root element ID differed from reactRootID.'\n ) : invariant(// Call internalGetID here because getID calls isValid which calls\n // findReactContainerForID (this function).\n internalGetID(rootElement) === reactRootID));\n\n var containerChild = container.firstChild;\n if (containerChild &&\n reactRootID === internalGetID(containerChild)) {\n // If the container has a new child with the same ID as the old\n // root element, then rootElementsByReactRootID[reactRootID] is\n // just stale and needs to be updated. The case that deserves a\n // warning is when the container is empty.\n rootElementsByReactRootID[reactRootID] = containerChild;\n } else {\n console.warn(\n 'ReactMount: Root element has been removed from its original ' +\n 'container. New container:', rootElement.parentNode\n );\n }\n }\n }\n\n return container;\n },\n\n /**\n * Finds an element rendered by React with the supplied ID.\n *\n * @param {string} id ID of a DOM node in the React component.\n * @return {DOMElement} Root DOM node of the React component.\n */\n findReactNodeByID: function(id) {\n var reactRoot = ReactMount.findReactContainerForID(id);\n return ReactMount.findComponentRoot(reactRoot, id);\n },\n\n /**\n * True if the supplied `node` is rendered by React.\n *\n * @param {*} node DOM Element to check.\n * @return {boolean} True if the DOM Element appears to be rendered by React.\n * @internal\n */\n isRenderedByReact: function(node) {\n if (node.nodeType !== 1) {\n // Not a DOMElement, therefore not a React component\n return false;\n }\n var id = ReactMount.getID(node);\n return id ? id.charAt(0) === SEPARATOR : false;\n },\n\n /**\n * Traverses up the ancestors of the supplied node to find a node that is a\n * DOM representation of a React component.\n *\n * @param {*} node\n * @return {?DOMEventTarget}\n * @internal\n */\n getFirstReactDOM: function(node) {\n var current = node;\n while (current && current.parentNode !== current) {\n if (ReactMount.isRenderedByReact(current)) {\n return current;\n }\n current = current.parentNode;\n }\n return null;\n },\n\n /**\n * Finds a node with the supplied `targetID` inside of the supplied\n * `ancestorNode`. Exploits the ID naming scheme to perform the search\n * quickly.\n *\n * @param {DOMEventTarget} ancestorNode Search from this root.\n * @pararm {string} targetID ID of the DOM representation of the component.\n * @return {DOMEventTarget} DOM node with the supplied `targetID`.\n * @internal\n */\n findComponentRoot: function(ancestorNode, targetID) {\n var firstChildren = findComponentRootReusableArray;\n var childIndex = 0;\n\n var deepestAncestor = findDeepestCachedAncestor(targetID) || ancestorNode;\n\n firstChildren[0] = deepestAncestor.firstChild;\n firstChildren.length = 1;\n\n while (childIndex < firstChildren.length) {\n var child = firstChildren[childIndex++];\n var targetChild;\n\n while (child) {\n var childID = ReactMount.getID(child);\n if (childID) {\n // Even if we find the node we're looking for, we finish looping\n // through its siblings to ensure they're cached so that we don't have\n // to revisit this node again. Otherwise, we make n^2 calls to getID\n // when visiting the many children of a single node in order.\n\n if (targetID === childID) {\n targetChild = child;\n } else if (ReactInstanceHandles.isAncestorIDOf(childID, targetID)) {\n // If we find a child whose ID is an ancestor of the given ID,\n // then we can be sure that we only want to search the subtree\n // rooted at this child, so we can throw out the rest of the\n // search state.\n firstChildren.length = childIndex = 0;\n firstChildren.push(child.firstChild);\n }\n\n } else {\n // If this child had no ID, then there's a chance that it was\n // injected automatically by the browser, as when a `<table>`\n // element sprouts an extra `<tbody>` child as a side effect of\n // `.innerHTML` parsing. Optimistically continue down this\n // branch, but not before examining the other siblings.\n firstChildren.push(child.firstChild);\n }\n\n child = child.nextSibling;\n }\n\n if (targetChild) {\n // Emptying firstChildren/findComponentRootReusableArray is\n // not necessary for correctness, but it helps the GC reclaim\n // any nodes that were left at the end of the search.\n firstChildren.length = 0;\n\n return targetChild;\n }\n }\n\n firstChildren.length = 0;\n\n (\"production\" !== process.env.NODE_ENV ? invariant(\n false,\n 'findComponentRoot(..., %s): Unable to find element. This probably ' +\n 'means the DOM was unexpectedly mutated (e.g., by the browser), ' +\n 'usually due to forgetting a <tbody> when using tables, nesting tags ' +\n 'like <form>, <p>, or <a>, or using non-SVG elements in an <svg> ' +\n 'parent. ' +\n 'Try inspecting the child nodes of the element with React ID `%s`.',\n targetID,\n ReactMount.getID(ancestorNode)\n ) : invariant(false));\n },\n\n\n /**\n * React ID utilities.\n */\n\n getReactRootID: getReactRootID,\n\n getID: getID,\n\n setID: setID,\n\n getNode: getNode,\n\n purgeID: purgeID\n};\n\n// Deprecations (remove for 0.13)\nReactMount.renderComponent = deprecated(\n 'ReactMount',\n 'renderComponent',\n 'render',\n this,\n ReactMount.render\n);\n\nmodule.exports = ReactMount;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactMount.js\n ** module id = 9\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactMount.js?");
  575. /***/ },
  576. /* 10 */
  577. /***/ function(module, exports, __webpack_require__) {
  578. eval("'use strict';\n\nmodule.exports = __webpack_require__(30);\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react-hot-loader/~/react-hot-api/modules/index.js\n ** module id = 10\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react-hot-loader/~/react-hot-api/modules/index.js?");
  579. /***/ },
  580. /* 11 */
  581. /***/ function(module, exports, __webpack_require__) {
  582. eval("module.exports = __webpack_require__(31);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/react.js\n ** module id = 11\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/react.js?");
  583. /***/ },
  584. /* 12 */
  585. /***/ function(module, exports, __webpack_require__) {
  586. eval("'use strict';\n\nfunction getRootInstancesFromReactMount(ReactMount) {\n return ReactMount._instancesByReactRootID || ReactMount._instancesByContainerID || [];\n}\n\nmodule.exports = getRootInstancesFromReactMount;\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react-hot-loader/getRootInstancesFromReactMount.js\n ** module id = 12\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react-hot-loader/getRootInstancesFromReactMount.js?");
  587. /***/ },
  588. /* 13 */
  589. /***/ function(module, exports, __webpack_require__) {
  590. eval("function isReactClassish(obj) {\n if (!obj) {\n return false;\n }\n\n if (obj.prototype && typeof obj.prototype.render === 'function') {\n // React 0.13\n return true;\n }\n\n if (obj.type && obj.type.prototype && typeof obj.type.prototype.render === 'function') {\n // React 0.12 and earlier\n return true;\n }\n\n return false;\n}\n\nmodule.exports = isReactClassish;\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react-hot-loader/isReactClassish.js\n ** module id = 13\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react-hot-loader/isReactClassish.js?");
  591. /***/ },
  592. /* 14 */
  593. /***/ function(module, exports, __webpack_require__) {
  594. eval("var isReactClassish = __webpack_require__(13);\n\nfunction isReactElementish(obj) {\n if (!obj) {\n return false;\n }\n\n return Object.prototype.toString.call(obj.props) === '[object Object]' &&\n isReactClassish(obj.type);\n}\n\nmodule.exports = isReactElementish;\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react-hot-loader/isReactElementish.js\n ** module id = 14\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react-hot-loader/isReactElementish.js?");
  595. /***/ },
  596. /* 15 */
  597. /***/ function(module, exports, __webpack_require__) {
  598. eval("/* WEBPACK VAR INJECTION */(function(module) {/*! Socket.IO.js build:0.9.10, development. Copyright(c) 2011 LearnBoost <dev@learnboost.com> MIT Licensed */\r\n\r\nvar io = (false ? {} : module.exports);\r\n(function() {\r\n\r\n/**\r\n * socket.io\r\n * Copyright(c) 2011 LearnBoost <dev@learnboost.com>\r\n * MIT Licensed\r\n */\r\n\r\n(function (exports, global) {\r\n\r\n /**\r\n * IO namespace.\r\n *\r\n * @namespace\r\n */\r\n\r\n var io = exports;\r\n\r\n /**\r\n * Socket.IO version\r\n *\r\n * @api public\r\n */\r\n\r\n io.version = '0.9.10';\r\n\r\n /**\r\n * Protocol implemented.\r\n *\r\n * @api public\r\n */\r\n\r\n io.protocol = 1;\r\n\r\n /**\r\n * Available transports, these will be populated with the available transports\r\n *\r\n * @api public\r\n */\r\n\r\n io.transports = [];\r\n\r\n /**\r\n * Keep track of jsonp callbacks.\r\n *\r\n * @api private\r\n */\r\n\r\n io.j = [];\r\n\r\n /**\r\n * Keep track of our io.Sockets\r\n *\r\n * @api private\r\n */\r\n io.sockets = {};\r\n\r\n\r\n /**\r\n * Manages connections to hosts.\r\n *\r\n * @param {String} uri\r\n * @Param {Boolean} force creation of new socket (defaults to false)\r\n * @api public\r\n */\r\n\r\n io.connect = function (host, details) {\r\n var uri = io.util.parseUri(host)\r\n , uuri\r\n , socket;\r\n\r\n if (global && global.location) {\r\n uri.protocol = uri.protocol || global.location.protocol.slice(0, -1);\r\n uri.host = uri.host || (global.document\r\n ? global.document.domain : global.location.hostname);\r\n uri.port = uri.port || global.location.port;\r\n }\r\n\r\n uuri = io.util.uniqueUri(uri);\r\n\r\n var options = {\r\n host: uri.host\r\n , secure: 'https' == uri.protocol\r\n , port: uri.port || ('https' == uri.protocol ? 443 : 80)\r\n , query: uri.query || ''\r\n };\r\n\r\n io.util.merge(options, details);\r\n\r\n if (options['force new connection'] || !io.sockets[uuri]) {\r\n socket = new io.Socket(options);\r\n }\r\n\r\n if (!options['force new connection'] && socket) {\r\n io.sockets[uuri] = socket;\r\n }\r\n\r\n socket = socket || io.sockets[uuri];\r\n\r\n // if path is different from '' or /\r\n return socket.of(uri.path.length > 1 ? uri.path : '');\r\n };\r\n\r\n})(true ? module.exports : (this.io = {}), this);\r\n/**\r\n * socket.io\r\n * Copyright(c) 2011 LearnBoost <dev@learnboost.com>\r\n * MIT Licensed\r\n */\r\n\r\n(function (exports, global) {\r\n\r\n /**\r\n * Utilities namespace.\r\n *\r\n * @namespace\r\n */\r\n\r\n var util = exports.util = {};\r\n\r\n /**\r\n * Parses an URI\r\n *\r\n * @author Steven Levithan <stevenlevithan.com> (MIT license)\r\n * @api public\r\n */\r\n\r\n var re = /^(?:(?![^:@]+:[^:@\\/]*@)([^:\\/?#.]+):)?(?:\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\r\n\r\n var parts = ['source', 'protocol', 'authority', 'userInfo', 'user', 'password',\r\n 'host', 'port', 'relative', 'path', 'directory', 'file', 'query',\r\n 'anchor'];\r\n\r\n util.parseUri = function (str) {\r\n var m = re.exec(str || '')\r\n , uri = {}\r\n , i = 14;\r\n\r\n while (i--) {\r\n uri[parts[i]] = m[i] || '';\r\n }\r\n\r\n return uri;\r\n };\r\n\r\n /**\r\n * Produces a unique url that identifies a Socket.IO connection.\r\n *\r\n * @param {Object} uri\r\n * @api public\r\n */\r\n\r\n util.uniqueUri = function (uri) {\r\n var protocol = uri.protocol\r\n , host = uri.host\r\n , port = uri.port;\r\n\r\n if ('document' in global) {\r\n host = host || document.domain;\r\n port = port || (protocol == 'https'\r\n && document.location.protocol !== 'https:' ? 443 : document.location.port);\r\n } else {\r\n host = host || 'localhost';\r\n\r\n if (!port && protocol == 'https') {\r\n port = 443;\r\n }\r\n }\r\n\r\n return (protocol || 'http') + '://' + host + ':' + (port || 80);\r\n };\r\n\r\n /**\r\n * Mergest 2 query strings in to once unique query string\r\n *\r\n * @param {String} base\r\n * @param {String} addition\r\n * @api public\r\n */\r\n\r\n util.query = function (base, addition) {\r\n var query = util.chunkQuery(base || '')\r\n , components = [];\r\n\r\n util.merge(query, util.chunkQuery(addition || ''));\r\n for (var part in query) {\r\n if (query.hasOwnProperty(part)) {\r\n components.push(part + '=' + query[part]);\r\n }\r\n }\r\n\r\n return components.length ? '?' + components.join('&') : '';\r\n };\r\n\r\n /**\r\n * Transforms a querystring in to an object\r\n *\r\n * @param {String} qs\r\n * @api public\r\n */\r\n\r\n util.chunkQuery = function (qs) {\r\n var query = {}\r\n , params = qs.split('&')\r\n , i = 0\r\n , l = params.length\r\n , kv;\r\n\r\n for (; i < l; ++i) {\r\n kv = params[i].split('=');\r\n if (kv[0]) {\r\n query[kv[0]] = kv[1];\r\n }\r\n }\r\n\r\n return query;\r\n };\r\n\r\n /**\r\n * Executes the given function when the page is loaded.\r\n *\r\n * io.util.load(function () { console.log('page loaded'); });\r\n *\r\n * @param {Function} fn\r\n * @api public\r\n */\r\n\r\n var pageLoaded = false;\r\n\r\n util.load = function (fn) {\r\n if ('document' in global && document.readyState === 'complete' || pageLoaded) {\r\n return fn();\r\n }\r\n\r\n util.on(global, 'load', fn, false);\r\n };\r\n\r\n /**\r\n * Adds an event.\r\n *\r\n * @api private\r\n */\r\n\r\n util.on = function (element, event, fn, capture) {\r\n if (element.attachEvent) {\r\n element.attachEvent('on' + event, fn);\r\n } else if (element.addEventListener) {\r\n element.addEventListener(event, fn, capture);\r\n }\r\n };\r\n\r\n /**\r\n * Generates the correct `XMLHttpRequest` for regular and cross domain requests.\r\n *\r\n * @param {Boolean} [xdomain] Create a request that can be used cross domain.\r\n * @returns {XMLHttpRequest|false} If we can create a XMLHttpRequest.\r\n * @api private\r\n */\r\n\r\n util.request = function (xdomain) {\r\n\r\n if (xdomain && 'undefined' != typeof XDomainRequest) {\r\n return new XDomainRequest();\r\n }\r\n\r\n if ('undefined' != typeof XMLHttpRequest && (!xdomain || util.ua.hasCORS)) {\r\n return new XMLHttpRequest();\r\n }\r\n\r\n if (!xdomain) {\r\n try {\r\n return new window[(['Active'].concat('Object').join('X'))]('Microsoft.XMLHTTP');\r\n } catch(e) { }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n /**\r\n * XHR based transport constructor.\r\n *\r\n * @constructor\r\n * @api public\r\n */\r\n\r\n /**\r\n * Change the internal pageLoaded value.\r\n */\r\n\r\n if ('undefined' != typeof window) {\r\n util.load(function () {\r\n pageLoaded = true;\r\n });\r\n }\r\n\r\n /**\r\n * Defers a function to ensure a spinner is not displayed by the browser\r\n *\r\n * @param {Function} fn\r\n * @api public\r\n */\r\n\r\n util.defer = function (fn) {\r\n if (!util.ua.webkit || 'undefined' != typeof importScripts) {\r\n return fn();\r\n }\r\n\r\n util.load(function () {\r\n setTimeout(fn, 100);\r\n });\r\n };\r\n\r\n /**\r\n * Merges two objects.\r\n *\r\n * @api public\r\n */\r\n \r\n util.merge = function merge (target, additional, deep, lastseen) {\r\n var seen = lastseen || []\r\n , depth = typeof deep == 'undefined' ? 2 : deep\r\n , prop;\r\n\r\n for (prop in additional) {\r\n if (additional.hasOwnProperty(prop) && util.indexOf(seen, prop) < 0) {\r\n if (typeof target[prop] !== 'object' || !depth) {\r\n target[prop] = additional[prop];\r\n seen.push(additional[prop]);\r\n } else {\r\n util.merge(target[prop], additional[prop], depth - 1, seen);\r\n }\r\n }\r\n }\r\n\r\n return target;\r\n };\r\n\r\n /**\r\n * Merges prototypes from objects\r\n *\r\n * @api public\r\n */\r\n \r\n util.mixin = function (ctor, ctor2) {\r\n util.merge(ctor.prototype, ctor2.prototype);\r\n };\r\n\r\n /**\r\n * Shortcut for prototypical and static inheritance.\r\n *\r\n * @api private\r\n */\r\n\r\n util.inherit = function (ctor, ctor2) {\r\n function f() {};\r\n f.prototype = ctor2.prototype;\r\n ctor.prototype = new f;\r\n };\r\n\r\n /**\r\n * Checks if the given object is an Array.\r\n *\r\n * io.util.isArray([]); // true\r\n * io.util.isArray({}); // false\r\n *\r\n * @param Object obj\r\n * @api public\r\n */\r\n\r\n util.isArray = Array.isArray || function (obj) {\r\n return Object.prototype.toString.call(obj) === '[object Array]';\r\n };\r\n\r\n /**\r\n * Intersects values of two arrays into a third\r\n *\r\n * @api public\r\n */\r\n\r\n util.intersect = function (arr, arr2) {\r\n var ret = []\r\n , longest = arr.length > arr2.length ? arr : arr2\r\n , shortest = arr.length > arr2.length ? arr2 : arr;\r\n\r\n for (var i = 0, l = shortest.length; i < l; i++) {\r\n if (~util.indexOf(longest, shortest[i]))\r\n ret.push(shortest[i]);\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n /**\r\n * Array indexOf compatibility.\r\n *\r\n * @see bit.ly/a5Dxa2\r\n * @api public\r\n */\r\n\r\n util.indexOf = function (arr, o, i) {\r\n \r\n for (var j = arr.length, i = i < 0 ? i + j < 0 ? 0 : i + j : i || 0; \r\n i < j && arr[i] !== o; i++) {}\r\n\r\n return j <= i ? -1 : i;\r\n };\r\n\r\n /**\r\n * Converts enumerables to array.\r\n *\r\n * @api public\r\n */\r\n\r\n util.toArray = function (enu) {\r\n var arr = [];\r\n\r\n for (var i = 0, l = enu.length; i < l; i++)\r\n arr.push(enu[i]);\r\n\r\n return arr;\r\n };\r\n\r\n /**\r\n * UA / engines detection namespace.\r\n *\r\n * @namespace\r\n */\r\n\r\n util.ua = {};\r\n\r\n /**\r\n * Whether the UA supports CORS for XHR.\r\n *\r\n * @api public\r\n */\r\n\r\n util.ua.hasCORS = 'undefined' != typeof XMLHttpRequest && (function () {\r\n try {\r\n var a = new XMLHttpRequest();\r\n } catch (e) {\r\n return false;\r\n }\r\n\r\n return a.withCredentials != undefined;\r\n })();\r\n\r\n /**\r\n * Detect webkit.\r\n *\r\n * @api public\r\n */\r\n\r\n util.ua.webkit = 'undefined' != typeof navigator\r\n && /webkit/i.test(navigator.userAgent);\r\n\r\n /**\r\n * Detect iPad/iPhone/iPod.\r\n *\r\n * @api public\r\n */\r\n\r\n util.ua.iDevice = 'undefined' != typeof navigator\r\n && /iPad|iPhone|iPod/i.test(navigator.userAgent);\r\n\r\n})('undefined' != typeof io ? io : module.exports, this);\r\n/**\r\n * socket.io\r\n * Copyright(c) 2011 LearnBoost <dev@learnboost.com>\r\n * MIT Licensed\r\n */\r\n\r\n(function (exports, io) {\r\n\r\n /**\r\n * Expose constructor.\r\n */\r\n\r\n exports.EventEmitter = EventEmitter;\r\n\r\n /**\r\n * Event emitter constructor.\r\n *\r\n * @api public.\r\n */\r\n\r\n function EventEmitter () {};\r\n\r\n /**\r\n * Adds a listener\r\n *\r\n * @api public\r\n */\r\n\r\n EventEmitter.prototype.on = function (name, fn) {\r\n if (!this.$events) {\r\n this.$events = {};\r\n }\r\n\r\n if (!this.$events[name]) {\r\n this.$events[name] = fn;\r\n } else if (io.util.isArray(this.$events[name])) {\r\n this.$events[name].push(fn);\r\n } else {\r\n this.$events[name] = [this.$events[name], fn];\r\n }\r\n\r\n return this;\r\n };\r\n\r\n EventEmitter.prototype.addListener = EventEmitter.prototype.on;\r\n\r\n /**\r\n * Adds a volatile listener.\r\n *\r\n * @api public\r\n */\r\n\r\n EventEmitter.prototype.once = function (name, fn) {\r\n var self = this;\r\n\r\n function on () {\r\n self.removeListener(name, on);\r\n fn.apply(this, arguments);\r\n };\r\n\r\n on.listener = fn;\r\n this.on(name, on);\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Removes a listener.\r\n *\r\n * @api public\r\n */\r\n\r\n EventEmitter.prototype.removeListener = function (name, fn) {\r\n if (this.$events && this.$events[name]) {\r\n var list = this.$events[name];\r\n\r\n if (io.util.isArray(list)) {\r\n var pos = -1;\r\n\r\n for (var i = 0, l = list.length; i < l; i++) {\r\n if (list[i] === fn || (list[i].listener && list[i].listener === fn)) {\r\n pos = i;\r\n break;\r\n }\r\n }\r\n\r\n if (pos < 0) {\r\n return this;\r\n }\r\n\r\n list.splice(pos, 1);\r\n\r\n if (!list.length) {\r\n delete this.$events[name];\r\n }\r\n } else if (list === fn || (list.listener && list.listener === fn)) {\r\n delete this.$events[name];\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Removes all listeners for an event.\r\n *\r\n * @api public\r\n */\r\n\r\n EventEmitter.prototype.removeAllListeners = function (name) {\r\n if (name === undefined) {\r\n this.$events = {};\r\n return this;\r\n }\r\n\r\n if (this.$events && this.$events[name]) {\r\n this.$events[name] = null;\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Gets all listeners for a certain event.\r\n *\r\n * @api publci\r\n */\r\n\r\n EventEmitter.prototype.listeners = function (name) {\r\n if (!this.$events) {\r\n this.$events = {};\r\n }\r\n\r\n if (!this.$events[name]) {\r\n this.$events[name] = [];\r\n }\r\n\r\n if (!io.util.isArray(this.$events[name])) {\r\n this.$events[name] = [this.$events[name]];\r\n }\r\n\r\n return this.$events[name];\r\n };\r\n\r\n /**\r\n * Emits an event.\r\n *\r\n * @api public\r\n */\r\n\r\n EventEmitter.prototype.emit = function (name) {\r\n if (!this.$events) {\r\n return false;\r\n }\r\n\r\n var handler = this.$events[name];\r\n\r\n if (!handler) {\r\n return false;\r\n }\r\n\r\n var args = Array.prototype.slice.call(arguments, 1);\r\n\r\n if ('function' == typeof handler) {\r\n handler.apply(this, args);\r\n } else if (io.util.isArray(handler)) {\r\n var listeners = handler.slice();\r\n\r\n for (var i = 0, l = listeners.length; i < l; i++) {\r\n listeners[i].apply(this, args);\r\n }\r\n } else {\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n})(\r\n 'undefined' != typeof io ? io : module.exports\r\n , 'undefined' != typeof io ? io : module.parent.exports\r\n);\r\n\r\n/**\r\n * socket.io\r\n * Copyright(c) 2011 LearnBoost <dev@learnboost.com>\r\n * MIT Licensed\r\n */\r\n\r\n/**\r\n * Based on JSON2 (http://www.JSON.org/js.html).\r\n */\r\n\r\n(function (exports, nativeJSON) {\r\n \"use strict\";\r\n\r\n // use native JSON if it's available\r\n if (nativeJSON && nativeJSON.parse){\r\n return exports.JSON = {\r\n parse: nativeJSON.parse\r\n , stringify: nativeJSON.stringify\r\n }\r\n }\r\n\r\n var JSON = exports.JSON = {};\r\n\r\n function f(n) {\r\n // Format integers to have at least two digits.\r\n return n < 10 ? '0' + n : n;\r\n }\r\n\r\n function date(d, key) {\r\n return isFinite(d.valueOf()) ?\r\n d.getUTCFullYear() + '-' +\r\n f(d.getUTCMonth() + 1) + '-' +\r\n f(d.getUTCDate()) + 'T' +\r\n f(d.getUTCHours()) + ':' +\r\n f(d.getUTCMinutes()) + ':' +\r\n f(d.getUTCSeconds()) + 'Z' : null;\r\n };\r\n\r\n var cx = /[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\r\n escapable = /[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\r\n gap,\r\n indent,\r\n meta = { // table of character substitutions\r\n '\\b': '\\\\b',\r\n '\\t': '\\\\t',\r\n '\\n': '\\\\n',\r\n '\\f': '\\\\f',\r\n '\\r': '\\\\r',\r\n '\"' : '\\\\\"',\r\n '\\\\': '\\\\\\\\'\r\n },\r\n rep;\r\n\r\n\r\n function quote(string) {\r\n\r\n// If the string contains no control characters, no quote characters, and no\r\n// backslash characters, then we can safely slap some quotes around it.\r\n// Otherwise we must also replace the offending characters with safe escape\r\n// sequences.\r\n\r\n escapable.lastIndex = 0;\r\n return escapable.test(string) ? '\"' + string.replace(escapable, function (a) {\r\n var c = meta[a];\r\n return typeof c === 'string' ? c :\r\n '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\r\n }) + '\"' : '\"' + string + '\"';\r\n }\r\n\r\n\r\n function str(key, holder) {\r\n\r\n// Produce a string from holder[key].\r\n\r\n var i, // The loop counter.\r\n k, // The member key.\r\n v, // The member value.\r\n length,\r\n mind = gap,\r\n partial,\r\n value = holder[key];\r\n\r\n// If the value has a toJSON method, call it to obtain a replacement value.\r\n\r\n if (value instanceof Date) {\r\n value = date(key);\r\n }\r\n\r\n// If we were called with a replacer function, then call the replacer to\r\n// obtain a replacement value.\r\n\r\n if (typeof rep === 'function') {\r\n value = rep.call(holder, key, value);\r\n }\r\n\r\n// What happens next depends on the value's type.\r\n\r\n switch (typeof value) {\r\n case 'string':\r\n return quote(value);\r\n\r\n case 'number':\r\n\r\n// JSON numbers must be finite. Encode non-finite numbers as null.\r\n\r\n return isFinite(value) ? String(value) : 'null';\r\n\r\n case 'boolean':\r\n case 'null':\r\n\r\n// If the value is a boolean or null, convert it to a string. Note:\r\n// typeof null does not produce 'null'. The case is included here in\r\n// the remote chance that this gets fixed someday.\r\n\r\n return String(value);\r\n\r\n// If the type is 'object', we might be dealing with an object or an array or\r\n// null.\r\n\r\n case 'object':\r\n\r\n// Due to a specification blunder in ECMAScript, typeof null is 'object',\r\n// so watch out for that case.\r\n\r\n if (!value) {\r\n return 'null';\r\n }\r\n\r\n// Make an array to hold the partial results of stringifying this object value.\r\n\r\n gap += indent;\r\n partial = [];\r\n\r\n// Is the value an array?\r\n\r\n if (Object.prototype.toString.apply(value) === '[object Array]') {\r\n\r\n// The value is an array. Stringify every element. Use null as a placeholder\r\n// for non-JSON values.\r\n\r\n length = value.length;\r\n for (i = 0; i < length; i += 1) {\r\n partial[i] = str(i, value) || 'null';\r\n }\r\n\r\n// Join all of the elements together, separated with commas, and wrap them in\r\n// brackets.\r\n\r\n v = partial.length === 0 ? '[]' : gap ?\r\n '[\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + ']' :\r\n '[' + partial.join(',') + ']';\r\n gap = mind;\r\n return v;\r\n }\r\n\r\n// If the replacer is an array, use it to select the members to be stringified.\r\n\r\n if (rep && typeof rep === 'object') {\r\n length = rep.length;\r\n for (i = 0; i < length; i += 1) {\r\n if (typeof rep[i] === 'string') {\r\n k = rep[i];\r\n v = str(k, value);\r\n if (v) {\r\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\r\n }\r\n }\r\n }\r\n } else {\r\n\r\n// Otherwise, iterate through all of the keys in the object.\r\n\r\n for (k in value) {\r\n if (Object.prototype.hasOwnProperty.call(value, k)) {\r\n v = str(k, value);\r\n if (v) {\r\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\r\n }\r\n }\r\n }\r\n }\r\n\r\n// Join all of the member texts together, separated with commas,\r\n// and wrap them in braces.\r\n\r\n v = partial.length === 0 ? '{}' : gap ?\r\n '{\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + '}' :\r\n '{' + partial.join(',') + '}';\r\n gap = mind;\r\n return v;\r\n }\r\n }\r\n\r\n// If the JSON object does not yet have a stringify method, give it one.\r\n\r\n JSON.stringify = function (value, replacer, space) {\r\n\r\n// The stringify method takes a value and an optional replacer, and an optional\r\n// space parameter, and returns a JSON text. The replacer can be a function\r\n// that can replace values, or an array of strings that will select the keys.\r\n// A default replacer method can be provided. Use of the space parameter can\r\n// produce text that is more easily readable.\r\n\r\n var i;\r\n gap = '';\r\n indent = '';\r\n\r\n// If the space parameter is a number, make an indent string containing that\r\n// many spaces.\r\n\r\n if (typeof space === 'number') {\r\n for (i = 0; i < space; i += 1) {\r\n indent += ' ';\r\n }\r\n\r\n// If the space parameter is a string, it will be used as the indent string.\r\n\r\n } else if (typeof space === 'string') {\r\n indent = space;\r\n }\r\n\r\n// If there is a replacer, it must be a function or an array.\r\n// Otherwise, throw an error.\r\n\r\n rep = replacer;\r\n if (replacer && typeof replacer !== 'function' &&\r\n (typeof replacer !== 'object' ||\r\n typeof replacer.length !== 'number')) {\r\n throw new Error('JSON.stringify');\r\n }\r\n\r\n// Make a fake root object containing our value under the key of ''.\r\n// Return the result of stringifying the value.\r\n\r\n return str('', {'': value});\r\n };\r\n\r\n// If the JSON object does not yet have a parse method, give it one.\r\n\r\n JSON.parse = function (text, reviver) {\r\n // The parse method takes a text and an optional reviver function, and returns\r\n // a JavaScript value if the text is a valid JSON text.\r\n\r\n var j;\r\n\r\n function walk(holder, key) {\r\n\r\n // The walk method is used to recursively walk the resulting structure so\r\n // that modifications can be made.\r\n\r\n var k, v, value = holder[key];\r\n if (value && typeof value === 'object') {\r\n for (k in value) {\r\n if (Object.prototype.hasOwnProperty.call(value, k)) {\r\n v = walk(value, k);\r\n if (v !== undefined) {\r\n value[k] = v;\r\n } else {\r\n delete value[k];\r\n }\r\n }\r\n }\r\n }\r\n return reviver.call(holder, key, value);\r\n }\r\n\r\n\r\n // Parsing happens in four stages. In the first stage, we replace certain\r\n // Unicode characters with escape sequences. JavaScript handles many characters\r\n // incorrectly, either silently deleting them, or treating them as line endings.\r\n\r\n text = String(text);\r\n cx.lastIndex = 0;\r\n if (cx.test(text)) {\r\n text = text.replace(cx, function (a) {\r\n return '\\\\u' +\r\n ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\r\n });\r\n }\r\n\r\n // In the second stage, we run the text against regular expressions that look\r\n // for non-JSON patterns. We are especially concerned with '()' and 'new'\r\n // because they can cause invocation, and '=' because it can cause mutation.\r\n // But just to be safe, we want to reject all unexpected forms.\r\n\r\n // We split the second stage into 4 regexp operations in order to work around\r\n // crippling inefficiencies in IE's and Safari's regexp engines. First we\r\n // replace the JSON backslash pairs with '@' (a non-JSON character). Second, we\r\n // replace all simple value tokens with ']' characters. Third, we delete all\r\n // open brackets that follow a colon or comma or that begin the text. Finally,\r\n // we look to see that the remaining characters are only whitespace or ']' or\r\n // ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.\r\n\r\n if (/^[\\],:{}\\s]*$/\r\n .test(text.replace(/\\\\(?:[\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@')\r\n .replace(/\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g, ']')\r\n .replace(/(?:^|:|,)(?:\\s*\\[)+/g, ''))) {\r\n\r\n // In the third stage we use the eval function to compile the text into a\r\n // JavaScript structure. The '{' operator is subject to a syntactic ambiguity\r\n // in JavaScript: it can begin a block or an object literal. We wrap the text\r\n // in parens to eliminate the ambiguity.\r\n\r\n j = eval('(' + text + ')');\r\n\r\n // In the optional fourth stage, we recursively walk the new structure, passing\r\n // each name/value pair to a reviver function for possible transformation.\r\n\r\n return typeof reviver === 'function' ?\r\n walk({'': j}, '') : j;\r\n }\r\n\r\n // If the text is not JSON parseable, then a SyntaxError is thrown.\r\n\r\n throw new SyntaxError('JSON.parse');\r\n };\r\n\r\n})(\r\n 'undefined' != typeof io ? io : module.exports\r\n , typeof JSON !== 'undefined' ? JSON : undefined\r\n);\r\n\r\n/**\r\n * socket.io\r\n * Copyright(c) 2011 LearnBoost <dev@learnboost.com>\r\n * MIT Licensed\r\n */\r\n\r\n(function (exports, io) {\r\n\r\n /**\r\n * Parser namespace.\r\n *\r\n * @namespace\r\n */\r\n\r\n var parser = exports.parser = {};\r\n\r\n /**\r\n * Packet types.\r\n */\r\n\r\n var packets = parser.packets = [\r\n 'disconnect'\r\n , 'connect'\r\n , 'heartbeat'\r\n , 'message'\r\n , 'json'\r\n , 'event'\r\n , 'ack'\r\n , 'error'\r\n , 'noop'\r\n ];\r\n\r\n /**\r\n * Errors reasons.\r\n */\r\n\r\n var reasons = parser.reasons = [\r\n 'transport not supported'\r\n , 'client not handshaken'\r\n , 'unauthorized'\r\n ];\r\n\r\n /**\r\n * Errors advice.\r\n */\r\n\r\n var advice = parser.advice = [\r\n 'reconnect'\r\n ];\r\n\r\n /**\r\n * Shortcuts.\r\n */\r\n\r\n var JSON = io.JSON\r\n , indexOf = io.util.indexOf;\r\n\r\n /**\r\n * Encodes a packet.\r\n *\r\n * @api private\r\n */\r\n\r\n parser.encodePacket = function (packet) {\r\n var type = indexOf(packets, packet.type)\r\n , id = packet.id || ''\r\n , endpoint = packet.endpoint || ''\r\n , ack = packet.ack\r\n , data = null;\r\n\r\n switch (packet.type) {\r\n case 'error':\r\n var reason = packet.reason ? indexOf(reasons, packet.reason) : ''\r\n , adv = packet.advice ? indexOf(advice, packet.advice) : '';\r\n\r\n if (reason !== '' || adv !== '')\r\n data = reason + (adv !== '' ? ('+' + adv) : '');\r\n\r\n break;\r\n\r\n case 'message':\r\n if (packet.data !== '')\r\n data = packet.data;\r\n break;\r\n\r\n case 'event':\r\n var ev = { name: packet.name };\r\n\r\n if (packet.args && packet.args.length) {\r\n ev.args = packet.args;\r\n }\r\n\r\n data = JSON.stringify(ev);\r\n break;\r\n\r\n case 'json':\r\n data = JSON.stringify(packet.data);\r\n break;\r\n\r\n case 'connect':\r\n if (packet.qs)\r\n data = packet.qs;\r\n break;\r\n\r\n case 'ack':\r\n data = packet.ackId\r\n + (packet.args && packet.args.length\r\n ? '+' + JSON.stringify(packet.args) : '');\r\n break;\r\n }\r\n\r\n // construct packet with required fragments\r\n var encoded = [\r\n type\r\n , id + (ack == 'data' ? '+' : '')\r\n , endpoint\r\n ];\r\n\r\n // data fragment is optional\r\n if (data !== null && data !== undefined)\r\n encoded.push(data);\r\n\r\n return encoded.join(':');\r\n };\r\n\r\n /**\r\n * Encodes multiple messages (payload).\r\n *\r\n * @param {Array} messages\r\n * @api private\r\n */\r\n\r\n parser.encodePayload = function (packets) {\r\n var decoded = '';\r\n\r\n if (packets.length == 1)\r\n return packets[0];\r\n\r\n for (var i = 0, l = packets.length; i < l; i++) {\r\n var packet = packets[i];\r\n decoded += '\\ufffd' + packet.length + '\\ufffd' + packets[i];\r\n }\r\n\r\n return decoded;\r\n };\r\n\r\n /**\r\n * Decodes a packet\r\n *\r\n * @api private\r\n */\r\n\r\n var regexp = /([^:]+):([0-9]+)?(\\+)?:([^:]+)?:?([\\s\\S]*)?/;\r\n\r\n parser.decodePacket = function (data) {\r\n var pieces = data.match(regexp);\r\n\r\n if (!pieces) return {};\r\n\r\n var id = pieces[2] || ''\r\n , data = pieces[5] || ''\r\n , packet = {\r\n type: packets[pieces[1]]\r\n , endpoint: pieces[4] || ''\r\n };\r\n\r\n // whether we need to acknowledge the packet\r\n if (id) {\r\n packet.id = id;\r\n if (pieces[3])\r\n packet.ack = 'data';\r\n else\r\n packet.ack = true;\r\n }\r\n\r\n // handle different packet types\r\n switch (packet.type) {\r\n case 'error':\r\n var pieces = data.split('+');\r\n packet.reason = reasons[pieces[0]] || '';\r\n packet.advice = advice[pieces[1]] || '';\r\n break;\r\n\r\n case 'message':\r\n packet.data = data || '';\r\n break;\r\n\r\n case 'event':\r\n try {\r\n var opts = JSON.parse(data);\r\n packet.name = opts.name;\r\n packet.args = opts.args;\r\n } catch (e) { }\r\n\r\n packet.args = packet.args || [];\r\n break;\r\n\r\n case 'json':\r\n try {\r\n packet.data = JSON.parse(data);\r\n } catch (e) { }\r\n break;\r\n\r\n case 'connect':\r\n packet.qs = data || '';\r\n break;\r\n\r\n case 'ack':\r\n var pieces = data.match(/^([0-9]+)(\\+)?(.*)/);\r\n if (pieces) {\r\n packet.ackId = pieces[1];\r\n packet.args = [];\r\n\r\n if (pieces[3]) {\r\n try {\r\n packet.args = pieces[3] ? JSON.parse(pieces[3]) : [];\r\n } catch (e) { }\r\n }\r\n }\r\n break;\r\n\r\n case 'disconnect':\r\n case 'heartbeat':\r\n break;\r\n };\r\n\r\n return packet;\r\n };\r\n\r\n /**\r\n * Decodes data payload. Detects multiple messages\r\n *\r\n * @return {Array} messages\r\n * @api public\r\n */\r\n\r\n parser.decodePayload = function (data) {\r\n // IE doesn't like data[i] for unicode chars, charAt works fine\r\n if (data.charAt(0) == '\\ufffd') {\r\n var ret = [];\r\n\r\n for (var i = 1, length = ''; i < data.length; i++) {\r\n if (data.charAt(i) == '\\ufffd') {\r\n ret.push(parser.decodePacket(data.substr(i + 1).substr(0, length)));\r\n i += Number(length) + 1;\r\n length = '';\r\n } else {\r\n length += data.charAt(i);\r\n }\r\n }\r\n\r\n return ret;\r\n } else {\r\n return [parser.decodePacket(data)];\r\n }\r\n };\r\n\r\n})(\r\n 'undefined' != typeof io ? io : module.exports\r\n , 'undefined' != typeof io ? io : module.parent.exports\r\n);\r\n/**\r\n * socket.io\r\n * Copyright(c) 2011 LearnBoost <dev@learnboost.com>\r\n * MIT Licensed\r\n */\r\n\r\n(function (exports, io) {\r\n\r\n /**\r\n * Expose constructor.\r\n */\r\n\r\n exports.Transport = Transport;\r\n\r\n /**\r\n * This is the transport template for all supported transport methods.\r\n *\r\n * @constructor\r\n * @api public\r\n */\r\n\r\n function Transport (socket, sessid) {\r\n this.socket = socket;\r\n this.sessid = sessid;\r\n };\r\n\r\n /**\r\n * Apply EventEmitter mixin.\r\n */\r\n\r\n io.util.mixin(Transport, io.EventEmitter);\r\n\r\n\r\n /**\r\n * Indicates whether heartbeats is enabled for this transport\r\n *\r\n * @api private\r\n */\r\n\r\n Transport.prototype.heartbeats = function () {\r\n return true;\r\n }\r\n\r\n /**\r\n * Handles the response from the server. When a new response is received\r\n * it will automatically update the timeout, decode the message and\r\n * forwards the response to the onMessage function for further processing.\r\n *\r\n * @param {String} data Response from the server.\r\n * @api private\r\n */\r\n\r\n Transport.prototype.onData = function (data) {\r\n this.clearCloseTimeout();\r\n \r\n // If the connection in currently open (or in a reopening state) reset the close \r\n // timeout since we have just received data. This check is necessary so\r\n // that we don't reset the timeout on an explicitly disconnected connection.\r\n if (this.socket.connected || this.socket.connecting || this.socket.reconnecting) {\r\n this.setCloseTimeout();\r\n }\r\n\r\n if (data !== '') {\r\n // todo: we should only do decodePayload for xhr transports\r\n var msgs = io.parser.decodePayload(data);\r\n\r\n if (msgs && msgs.length) {\r\n for (var i = 0, l = msgs.length; i < l; i++) {\r\n this.onPacket(msgs[i]);\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Handles packets.\r\n *\r\n * @api private\r\n */\r\n\r\n Transport.prototype.onPacket = function (packet) {\r\n this.socket.setHeartbeatTimeout();\r\n\r\n if (packet.type == 'heartbeat') {\r\n return this.onHeartbeat();\r\n }\r\n\r\n if (packet.type == 'connect' && packet.endpoint == '') {\r\n this.onConnect();\r\n }\r\n\r\n if (packet.type == 'error' && packet.advice == 'reconnect') {\r\n this.isOpen = false;\r\n }\r\n\r\n this.socket.onPacket(packet);\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Sets close timeout\r\n *\r\n * @api private\r\n */\r\n \r\n Transport.prototype.setCloseTimeout = function () {\r\n if (!this.closeTimeout) {\r\n var self = this;\r\n\r\n this.closeTimeout = setTimeout(function () {\r\n self.onDisconnect();\r\n }, this.socket.closeTimeout);\r\n }\r\n };\r\n\r\n /**\r\n * Called when transport disconnects.\r\n *\r\n * @api private\r\n */\r\n\r\n Transport.prototype.onDisconnect = function () {\r\n if (this.isOpen) this.close();\r\n this.clearTimeouts();\r\n this.socket.onDisconnect();\r\n return this;\r\n };\r\n\r\n /**\r\n * Called when transport connects\r\n *\r\n * @api private\r\n */\r\n\r\n Transport.prototype.onConnect = function () {\r\n this.socket.onConnect();\r\n return this;\r\n }\r\n\r\n /**\r\n * Clears close timeout\r\n *\r\n * @api private\r\n */\r\n\r\n Transport.prototype.clearCloseTimeout = function () {\r\n if (this.closeTimeout) {\r\n clearTimeout(this.closeTimeout);\r\n this.closeTimeout = null;\r\n }\r\n };\r\n\r\n /**\r\n * Clear timeouts\r\n *\r\n * @api private\r\n */\r\n\r\n Transport.prototype.clearTimeouts = function () {\r\n this.clearCloseTimeout();\r\n\r\n if (this.reopenTimeout) {\r\n clearTimeout(this.reopenTimeout);\r\n }\r\n };\r\n\r\n /**\r\n * Sends a packet\r\n *\r\n * @param {Object} packet object.\r\n * @api private\r\n */\r\n\r\n Transport.prototype.packet = function (packet) {\r\n this.send(io.parser.encodePacket(packet));\r\n };\r\n\r\n /**\r\n * Send the received heartbeat message back to server. So the server\r\n * knows we are still connected.\r\n *\r\n * @param {String} heartbeat Heartbeat response from the server.\r\n * @api private\r\n */\r\n\r\n Transport.prototype.onHeartbeat = function (heartbeat) {\r\n this.packet({ type: 'heartbeat' });\r\n };\r\n \r\n /**\r\n * Called when the transport opens.\r\n *\r\n * @api private\r\n */\r\n\r\n Transport.prototype.onOpen = function () {\r\n this.isOpen = true;\r\n this.clearCloseTimeout();\r\n this.socket.onOpen();\r\n };\r\n\r\n /**\r\n * Notifies the base when the connection with the Socket.IO server\r\n * has been disconnected.\r\n *\r\n * @api private\r\n */\r\n\r\n Transport.prototype.onClose = function () {\r\n var self = this;\r\n\r\n /* FIXME: reopen delay causing a infinit loop\r\n this.reopenTimeout = setTimeout(function () {\r\n self.open();\r\n }, this.socket.options['reopen delay']);*/\r\n\r\n this.isOpen = false;\r\n this.socket.onClose();\r\n this.onDisconnect();\r\n };\r\n\r\n /**\r\n * Generates a connection url based on the Socket.IO URL Protocol.\r\n * See <https://github.com/learnboost/socket.io-node/> for more details.\r\n *\r\n * @returns {String} Connection url\r\n * @api private\r\n */\r\n\r\n Transport.prototype.prepareUrl = function () {\r\n var options = this.socket.options;\r\n\r\n return this.scheme() + '://'\r\n + options.host + ':' + options.port + '/'\r\n + options.resource + '/' + io.protocol\r\n + '/' + this.name + '/' + this.sessid;\r\n };\r\n\r\n /**\r\n * Checks if the transport is ready to start a connection.\r\n *\r\n * @param {Socket} socket The socket instance that needs a transport\r\n * @param {Function} fn The callback\r\n * @api private\r\n */\r\n\r\n Transport.prototype.ready = function (socket, fn) {\r\n fn.call(this);\r\n };\r\n})(\r\n 'undefined' != typeof io ? io : module.exports\r\n , 'undefined' != typeof io ? io : module.parent.exports\r\n);\r\n/**\r\n * socket.io\r\n * Copyright(c) 2011 LearnBoost <dev@learnboost.com>\r\n * MIT Licensed\r\n */\r\n\r\n(function (exports, io, global) {\r\n\r\n /**\r\n * Expose constructor.\r\n */\r\n\r\n exports.Socket = Socket;\r\n\r\n /**\r\n * Create a new `Socket.IO client` which can establish a persistent\r\n * connection with a Socket.IO enabled server.\r\n *\r\n * @api public\r\n */\r\n\r\n function Socket (options) {\r\n this.options = {\r\n port: 80\r\n , secure: false\r\n , document: 'document' in global ? document : false\r\n , resource: 'socket.io'\r\n , transports: io.transports\r\n , 'connect timeout': 10000\r\n , 'try multiple transports': true\r\n , 'reconnect': true\r\n , 'reconnection delay': 500\r\n , 'reconnection limit': Infinity\r\n , 'reopen delay': 3000\r\n , 'max reconnection attempts': 10\r\n , 'sync disconnect on unload': false\r\n , 'auto connect': true\r\n , 'flash policy port': 10843\r\n , 'manualFlush': false\r\n };\r\n\r\n io.util.merge(this.options, options);\r\n\r\n this.connected = false;\r\n this.open = false;\r\n this.connecting = false;\r\n this.reconnecting = false;\r\n this.namespaces = {};\r\n this.buffer = [];\r\n this.doBuffer = false;\r\n\r\n if (this.options['sync disconnect on unload'] &&\r\n (!this.isXDomain() || io.util.ua.hasCORS)) {\r\n var self = this;\r\n io.util.on(global, 'beforeunload', function () {\r\n self.disconnectSync();\r\n }, false);\r\n }\r\n\r\n if (this.options['auto connect']) {\r\n this.connect();\r\n }\r\n};\r\n\r\n /**\r\n * Apply EventEmitter mixin.\r\n */\r\n\r\n io.util.mixin(Socket, io.EventEmitter);\r\n\r\n /**\r\n * Returns a namespace listener/emitter for this socket\r\n *\r\n * @api public\r\n */\r\n\r\n Socket.prototype.of = function (name) {\r\n if (!this.namespaces[name]) {\r\n this.namespaces[name] = new io.SocketNamespace(this, name);\r\n\r\n if (name !== '') {\r\n this.namespaces[name].packet({ type: 'connect' });\r\n }\r\n }\r\n\r\n return this.namespaces[name];\r\n };\r\n\r\n /**\r\n * Emits the given event to the Socket and all namespaces\r\n *\r\n * @api private\r\n */\r\n\r\n Socket.prototype.publish = function () {\r\n this.emit.apply(this, arguments);\r\n\r\n var nsp;\r\n\r\n for (var i in this.namespaces) {\r\n if (this.namespaces.hasOwnProperty(i)) {\r\n nsp = this.of(i);\r\n nsp.$emit.apply(nsp, arguments);\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Performs the handshake\r\n *\r\n * @api private\r\n */\r\n\r\n function empty () { };\r\n\r\n Socket.prototype.handshake = function (fn) {\r\n var self = this\r\n , options = this.options;\r\n\r\n function complete (data) {\r\n if (data instanceof Error) {\r\n self.connecting = false;\r\n self.onError(data.message);\r\n } else {\r\n fn.apply(null, data.split(':'));\r\n }\r\n };\r\n\r\n var url = [\r\n 'http' + (options.secure ? 's' : '') + ':/'\r\n , options.host + ':' + options.port\r\n , options.resource\r\n , io.protocol\r\n , io.util.query(this.options.query, 't=' + +new Date)\r\n ].join('/');\r\n\r\n if (this.isXDomain() && !io.util.ua.hasCORS) {\r\n var insertAt = document.getElementsByTagName('script')[0]\r\n , script = document.createElement('script');\r\n\r\n script.src = url + '&jsonp=' + io.j.length;\r\n insertAt.parentNode.insertBefore(script, insertAt);\r\n\r\n io.j.push(function (data) {\r\n complete(data);\r\n script.parentNode.removeChild(script);\r\n });\r\n } else {\r\n var xhr = io.util.request();\r\n\r\n xhr.open('GET', url, true);\r\n if (this.isXDomain()) {\r\n xhr.withCredentials = true;\r\n }\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState == 4) {\r\n xhr.onreadystatechange = empty;\r\n\r\n if (xhr.status == 200) {\r\n complete(xhr.responseText);\r\n } else if (xhr.status == 403) {\r\n self.onError(xhr.responseText);\r\n } else {\r\n self.connecting = false; \r\n !self.reconnecting && self.onError(xhr.responseText);\r\n }\r\n }\r\n };\r\n xhr.send(null);\r\n }\r\n };\r\n\r\n /**\r\n * Find an available transport based on the options supplied in the constructor.\r\n *\r\n * @api private\r\n */\r\n\r\n Socket.prototype.getTransport = function (override) {\r\n var transports = override || this.transports, match;\r\n\r\n for (var i = 0, transport; transport = transports[i]; i++) {\r\n if (io.Transport[transport]\r\n && io.Transport[transport].check(this)\r\n && (!this.isXDomain() || io.Transport[transport].xdomainCheck(this))) {\r\n return new io.Transport[transport](this, this.sessionid);\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n /**\r\n * Connects to the server.\r\n *\r\n * @param {Function} [fn] Callback.\r\n * @returns {io.Socket}\r\n * @api public\r\n */\r\n\r\n Socket.prototype.connect = function (fn) {\r\n if (this.connecting) {\r\n return this;\r\n }\r\n\r\n var self = this;\r\n self.connecting = true;\r\n \r\n this.handshake(function (sid, heartbeat, close, transports) {\r\n self.sessionid = sid;\r\n self.closeTimeout = close * 1000;\r\n self.heartbeatTimeout = heartbeat * 1000;\r\n if(!self.transports)\r\n self.transports = self.origTransports = (transports ? io.util.intersect(\r\n transports.split(',')\r\n , self.options.transports\r\n ) : self.options.transports);\r\n\r\n self.setHeartbeatTimeout();\r\n\r\n function connect (transports){\r\n if (self.transport) self.transport.clearTimeouts();\r\n\r\n self.transport = self.getTransport(transports);\r\n if (!self.transport) return self.publish('connect_failed');\r\n\r\n // once the transport is ready\r\n self.transport.ready(self, function () {\r\n self.connecting = true;\r\n self.publish('connecting', self.transport.name);\r\n self.transport.open();\r\n\r\n if (self.options['connect timeout']) {\r\n self.connectTimeoutTimer = setTimeout(function () {\r\n if (!self.connected) {\r\n self.connecting = false;\r\n\r\n if (self.options['try multiple transports']) {\r\n var remaining = self.transports;\r\n\r\n while (remaining.length > 0 && remaining.splice(0,1)[0] !=\r\n self.transport.name) {}\r\n\r\n if (remaining.length){\r\n connect(remaining);\r\n } else {\r\n self.publish('connect_failed');\r\n }\r\n }\r\n }\r\n }, self.options['connect timeout']);\r\n }\r\n });\r\n }\r\n\r\n connect(self.transports);\r\n\r\n self.once('connect', function (){\r\n clearTimeout(self.connectTimeoutTimer);\r\n\r\n fn && typeof fn == 'function' && fn();\r\n });\r\n });\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Clears and sets a new heartbeat timeout using the value given by the\r\n * server during the handshake.\r\n *\r\n * @api private\r\n */\r\n\r\n Socket.prototype.setHeartbeatTimeout = function () {\r\n clearTimeout(this.heartbeatTimeoutTimer);\r\n if(this.transport && !this.transport.heartbeats()) return;\r\n\r\n var self = this;\r\n this.heartbeatTimeoutTimer = setTimeout(function () {\r\n self.transport.onClose();\r\n }, this.heartbeatTimeout);\r\n };\r\n\r\n /**\r\n * Sends a message.\r\n *\r\n * @param {Object} data packet.\r\n * @returns {io.Socket}\r\n * @api public\r\n */\r\n\r\n Socket.prototype.packet = function (data) {\r\n if (this.connected && !this.doBuffer) {\r\n this.transport.packet(data);\r\n } else {\r\n this.buffer.push(data);\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Sets buffer state\r\n *\r\n * @api private\r\n */\r\n\r\n Socket.prototype.setBuffer = function (v) {\r\n this.doBuffer = v;\r\n\r\n if (!v && this.connected && this.buffer.length) {\r\n if (!this.options['manualFlush']) {\r\n this.flushBuffer();\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Flushes the buffer data over the wire.\r\n * To be invoked manually when 'manualFlush' is set to true.\r\n *\r\n * @api public\r\n */\r\n\r\n Socket.prototype.flushBuffer = function() {\r\n this.transport.payload(this.buffer);\r\n this.buffer = [];\r\n };\r\n \r\n\r\n /**\r\n * Disconnect the established connect.\r\n *\r\n * @returns {io.Socket}\r\n * @api public\r\n */\r\n\r\n Socket.prototype.disconnect = function () {\r\n if (this.connected || this.connecting) {\r\n if (this.open) {\r\n this.of('').packet({ type: 'disconnect' });\r\n }\r\n\r\n // handle disconnection immediately\r\n this.onDisconnect('booted');\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Disconnects the socket with a sync XHR.\r\n *\r\n * @api private\r\n */\r\n\r\n Socket.prototype.disconnectSync = function () {\r\n // ensure disconnection\r\n var xhr = io.util.request();\r\n var uri = [\r\n 'http' + (this.options.secure ? 's' : '') + ':/'\r\n , this.options.host + ':' + this.options.port\r\n , this.options.resource\r\n , io.protocol\r\n , ''\r\n , this.sessionid\r\n ].join('/') + '/?disconnect=1';\r\n\r\n xhr.open('GET', uri, false);\r\n xhr.send(null);\r\n\r\n // handle disconnection immediately\r\n this.onDisconnect('booted');\r\n };\r\n\r\n /**\r\n * Check if we need to use cross domain enabled transports. Cross domain would\r\n * be a different port or different domain name.\r\n *\r\n * @returns {Boolean}\r\n * @api private\r\n */\r\n\r\n Socket.prototype.isXDomain = function () {\r\n\r\n var port = global.location.port ||\r\n ('https:' == global.location.protocol ? 443 : 80);\r\n\r\n return this.options.host !== global.location.hostname \r\n || this.options.port != port;\r\n };\r\n\r\n /**\r\n * Called upon handshake.\r\n *\r\n * @api private\r\n */\r\n\r\n Socket.prototype.onConnect = function () {\r\n if (!this.connected) {\r\n this.connected = true;\r\n this.connecting = false;\r\n if (!this.doBuffer) {\r\n // make sure to flush the buffer\r\n this.setBuffer(false);\r\n }\r\n this.emit('connect');\r\n }\r\n };\r\n\r\n /**\r\n * Called when the transport opens\r\n *\r\n * @api private\r\n */\r\n\r\n Socket.prototype.onOpen = function () {\r\n this.open = true;\r\n };\r\n\r\n /**\r\n * Called when the transport closes.\r\n *\r\n * @api private\r\n */\r\n\r\n Socket.prototype.onClose = function () {\r\n this.open = false;\r\n clearTimeout(this.heartbeatTimeoutTimer);\r\n };\r\n\r\n /**\r\n * Called when the transport first opens a connection\r\n *\r\n * @param text\r\n */\r\n\r\n Socket.prototype.onPacket = function (packet) {\r\n this.of(packet.endpoint).onPacket(packet);\r\n };\r\n\r\n /**\r\n * Handles an error.\r\n *\r\n * @api private\r\n */\r\n\r\n Socket.prototype.onError = function (err) {\r\n if (err && err.advice) {\r\n if (err.advice === 'reconnect' && (this.connected || this.connecting)) {\r\n this.disconnect();\r\n if (this.options.reconnect) {\r\n this.reconnect();\r\n }\r\n }\r\n }\r\n\r\n this.publish('error', err && err.reason ? err.reason : err);\r\n };\r\n\r\n /**\r\n * Called when the transport disconnects.\r\n *\r\n * @api private\r\n */\r\n\r\n Socket.prototype.onDisconnect = function (reason) {\r\n var wasConnected = this.connected\r\n , wasConnecting = this.connecting;\r\n\r\n this.connected = false;\r\n this.connecting = false;\r\n this.open = false;\r\n\r\n if (wasConnected || wasConnecting) {\r\n this.transport.close();\r\n this.transport.clearTimeouts();\r\n if (wasConnected) {\r\n this.publish('disconnect', reason);\r\n\r\n if ('booted' != reason && this.options.reconnect && !this.reconnecting) {\r\n this.reconnect();\r\n }\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Called upon reconnection.\r\n *\r\n * @api private\r\n */\r\n\r\n Socket.prototype.reconnect = function () {\r\n this.reconnecting = true;\r\n this.reconnectionAttempts = 0;\r\n this.reconnectionDelay = this.options['reconnection delay'];\r\n\r\n var self = this\r\n , maxAttempts = this.options['max reconnection attempts']\r\n , tryMultiple = this.options['try multiple transports']\r\n , limit = this.options['reconnection limit'];\r\n\r\n function reset () {\r\n if (self.connected) {\r\n for (var i in self.namespaces) {\r\n if (self.namespaces.hasOwnProperty(i) && '' !== i) {\r\n self.namespaces[i].packet({ type: 'connect' });\r\n }\r\n }\r\n self.publish('reconnect', self.transport.name, self.reconnectionAttempts);\r\n }\r\n\r\n clearTimeout(self.reconnectionTimer);\r\n\r\n self.removeListener('connect_failed', maybeReconnect);\r\n self.removeListener('connect', maybeReconnect);\r\n\r\n self.reconnecting = false;\r\n\r\n delete self.reconnectionAttempts;\r\n delete self.reconnectionDelay;\r\n delete self.reconnectionTimer;\r\n delete self.redoTransports;\r\n\r\n self.options['try multiple transports'] = tryMultiple;\r\n };\r\n\r\n function maybeReconnect () {\r\n if (!self.reconnecting) {\r\n return;\r\n }\r\n\r\n if (self.connected) {\r\n return reset();\r\n };\r\n\r\n if (self.connecting && self.reconnecting) {\r\n return self.reconnectionTimer = setTimeout(maybeReconnect, 1000);\r\n }\r\n\r\n if (self.reconnectionAttempts++ >= maxAttempts) {\r\n if (!self.redoTransports) {\r\n self.on('connect_failed', maybeReconnect);\r\n self.options['try multiple transports'] = true;\r\n self.transports = self.origTransports;\r\n self.transport = self.getTransport();\r\n self.redoTransports = true;\r\n self.connect();\r\n } else {\r\n self.publish('reconnect_failed');\r\n reset();\r\n }\r\n } else {\r\n if (self.reconnectionDelay < limit) {\r\n self.reconnectionDelay *= 2; // exponential back off\r\n }\r\n\r\n self.connect();\r\n self.publish('reconnecting', self.reconnectionDelay, self.reconnectionAttempts);\r\n self.reconnectionTimer = setTimeout(maybeReconnect, self.reconnectionDelay);\r\n }\r\n };\r\n\r\n this.options['try multiple transports'] = false;\r\n this.reconnectionTimer = setTimeout(maybeReconnect, this.reconnectionDelay);\r\n\r\n this.on('connect', maybeReconnect);\r\n };\r\n\r\n})(\r\n 'undefined' != typeof io ? io : module.exports\r\n , 'undefined' != typeof io ? io : module.parent.exports\r\n , this\r\n);\r\n/**\r\n * socket.io\r\n * Copyright(c) 2011 LearnBoost <dev@learnboost.com>\r\n * MIT Licensed\r\n */\r\n\r\n(function (exports, io) {\r\n\r\n /**\r\n * Expose constructor.\r\n */\r\n\r\n exports.SocketNamespace = SocketNamespace;\r\n\r\n /**\r\n * Socket namespace constructor.\r\n *\r\n * @constructor\r\n * @api public\r\n */\r\n\r\n function SocketNamespace (socket, name) {\r\n this.socket = socket;\r\n this.name = name || '';\r\n this.flags = {};\r\n this.json = new Flag(this, 'json');\r\n this.ackPackets = 0;\r\n this.acks = {};\r\n };\r\n\r\n /**\r\n * Apply EventEmitter mixin.\r\n */\r\n\r\n io.util.mixin(SocketNamespace, io.EventEmitter);\r\n\r\n /**\r\n * Copies emit since we override it\r\n *\r\n * @api private\r\n */\r\n\r\n SocketNamespace.prototype.$emit = io.EventEmitter.prototype.emit;\r\n\r\n /**\r\n * Creates a new namespace, by proxying the request to the socket. This\r\n * allows us to use the synax as we do on the server.\r\n *\r\n * @api public\r\n */\r\n\r\n SocketNamespace.prototype.of = function () {\r\n return this.socket.of.apply(this.socket, arguments);\r\n };\r\n\r\n /**\r\n * Sends a packet.\r\n *\r\n * @api private\r\n */\r\n\r\n SocketNamespace.prototype.packet = function (packet) {\r\n packet.endpoint = this.name;\r\n this.socket.packet(packet);\r\n this.flags = {};\r\n return this;\r\n };\r\n\r\n /**\r\n * Sends a message\r\n *\r\n * @api public\r\n */\r\n\r\n SocketNamespace.prototype.send = function (data, fn) {\r\n var packet = {\r\n type: this.flags.json ? 'json' : 'message'\r\n , data: data\r\n };\r\n\r\n if ('function' == typeof fn) {\r\n packet.id = ++this.ackPackets;\r\n packet.ack = true;\r\n this.acks[packet.id] = fn;\r\n }\r\n\r\n return this.packet(packet);\r\n };\r\n\r\n /**\r\n * Emits an event\r\n *\r\n * @api public\r\n */\r\n \r\n SocketNamespace.prototype.emit = function (name) {\r\n var args = Array.prototype.slice.call(arguments, 1)\r\n , lastArg = args[args.length - 1]\r\n , packet = {\r\n type: 'event'\r\n , name: name\r\n };\r\n\r\n if ('function' == typeof lastArg) {\r\n packet.id = ++this.ackPackets;\r\n packet.ack = 'data';\r\n this.acks[packet.id] = lastArg;\r\n args = args.slice(0, args.length - 1);\r\n }\r\n\r\n packet.args = args;\r\n\r\n return this.packet(packet);\r\n };\r\n\r\n /**\r\n * Disconnects the namespace\r\n *\r\n * @api private\r\n */\r\n\r\n SocketNamespace.prototype.disconnect = function () {\r\n if (this.name === '') {\r\n this.socket.disconnect();\r\n } else {\r\n this.packet({ type: 'disconnect' });\r\n this.$emit('disconnect');\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Handles a packet\r\n *\r\n * @api private\r\n */\r\n\r\n SocketNamespace.prototype.onPacket = function (packet) {\r\n var self = this;\r\n\r\n function ack () {\r\n self.packet({\r\n type: 'ack'\r\n , args: io.util.toArray(arguments)\r\n , ackId: packet.id\r\n });\r\n };\r\n\r\n switch (packet.type) {\r\n case 'connect':\r\n this.$emit('connect');\r\n break;\r\n\r\n case 'disconnect':\r\n if (this.name === '') {\r\n this.socket.onDisconnect(packet.reason || 'booted');\r\n } else {\r\n this.$emit('disconnect', packet.reason);\r\n }\r\n break;\r\n\r\n case 'message':\r\n case 'json':\r\n var params = ['message', packet.data];\r\n\r\n if (packet.ack == 'data') {\r\n params.push(ack);\r\n } else if (packet.ack) {\r\n this.packet({ type: 'ack', ackId: packet.id });\r\n }\r\n\r\n this.$emit.apply(this, params);\r\n break;\r\n\r\n case 'event':\r\n var params = [packet.name].concat(packet.args);\r\n\r\n if (packet.ack == 'data')\r\n params.push(ack);\r\n\r\n this.$emit.apply(this, params);\r\n break;\r\n\r\n case 'ack':\r\n if (this.acks[packet.ackId]) {\r\n this.acks[packet.ackId].apply(this, packet.args);\r\n delete this.acks[packet.ackId];\r\n }\r\n break;\r\n\r\n case 'error':\r\n if (packet.advice){\r\n this.socket.onError(packet);\r\n } else {\r\n if (packet.reason == 'unauthorized') {\r\n this.$emit('connect_failed', packet.reason);\r\n } else {\r\n this.$emit('error', packet.reason);\r\n }\r\n }\r\n break;\r\n }\r\n };\r\n\r\n /**\r\n * Flag interface.\r\n *\r\n * @api private\r\n */\r\n\r\n function Flag (nsp, name) {\r\n this.namespace = nsp;\r\n this.name = name;\r\n };\r\n\r\n /**\r\n * Send a message\r\n *\r\n * @api public\r\n */\r\n\r\n Flag.prototype.send = function () {\r\n this.namespace.flags[this.name] = true;\r\n this.namespace.send.apply(this.namespace, arguments);\r\n };\r\n\r\n /**\r\n * Emit an event\r\n *\r\n * @api public\r\n */\r\n\r\n Flag.prototype.emit = function () {\r\n this.namespace.flags[this.name] = true;\r\n this.namespace.emit.apply(this.namespace, arguments);\r\n };\r\n\r\n})(\r\n 'undefined' != typeof io ? io : module.exports\r\n , 'undefined' != typeof io ? io : module.parent.exports\r\n);\r\n\r\n/**\r\n * socket.io\r\n * Copyright(c) 2011 LearnBoost <dev@learnboost.com>\r\n * MIT Licensed\r\n */\r\n\r\n(function (exports, io, global) {\r\n\r\n /**\r\n * Expose constructor.\r\n */\r\n\r\n exports.websocket = WS;\r\n\r\n /**\r\n * The WebSocket transport uses the HTML5 WebSocket API to establish an\r\n * persistent connection with the Socket.IO server. This transport will also\r\n * be inherited by the FlashSocket fallback as it provides a API compatible\r\n * polyfill for the WebSockets.\r\n *\r\n * @constructor\r\n * @extends {io.Transport}\r\n * @api public\r\n */\r\n\r\n function WS (socket) {\r\n io.Transport.apply(this, arguments);\r\n };\r\n\r\n /**\r\n * Inherits from Transport.\r\n */\r\n\r\n io.util.inherit(WS, io.Transport);\r\n\r\n /**\r\n * Transport name\r\n *\r\n * @api public\r\n */\r\n\r\n WS.prototype.name = 'websocket';\r\n\r\n /**\r\n * Initializes a new `WebSocket` connection with the Socket.IO server. We attach\r\n * all the appropriate listeners to handle the responses from the server.\r\n *\r\n * @returns {Transport}\r\n * @api public\r\n */\r\n\r\n WS.prototype.open = function () {\r\n var query = io.util.query(this.socket.options.query)\r\n , self = this\r\n , Socket\r\n\r\n\r\n if (!Socket) {\r\n Socket = global.MozWebSocket || global.WebSocket;\r\n }\r\n\r\n this.websocket = new Socket(this.prepareUrl() + query);\r\n\r\n this.websocket.onopen = function () {\r\n self.onOpen();\r\n self.socket.setBuffer(false);\r\n };\r\n this.websocket.onmessage = function (ev) {\r\n self.onData(ev.data);\r\n };\r\n this.websocket.onclose = function () {\r\n self.onClose();\r\n self.socket.setBuffer(true);\r\n };\r\n this.websocket.onerror = function (e) {\r\n self.onError(e);\r\n };\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Send a message to the Socket.IO server. The message will automatically be\r\n * encoded in the correct message format.\r\n *\r\n * @returns {Transport}\r\n * @api public\r\n */\r\n\r\n // Do to a bug in the current IDevices browser, we need to wrap the send in a \r\n // setTimeout, when they resume from sleeping the browser will crash if \r\n // we don't allow the browser time to detect the socket has been closed\r\n if (io.util.ua.iDevice) {\r\n WS.prototype.send = function (data) {\r\n var self = this;\r\n setTimeout(function() {\r\n self.websocket.send(data);\r\n },0);\r\n return this;\r\n };\r\n } else {\r\n WS.prototype.send = function (data) {\r\n this.websocket.send(data);\r\n return this;\r\n };\r\n }\r\n\r\n /**\r\n * Payload\r\n *\r\n * @api private\r\n */\r\n\r\n WS.prototype.payload = function (arr) {\r\n for (var i = 0, l = arr.length; i < l; i++) {\r\n this.packet(arr[i]);\r\n }\r\n return this;\r\n };\r\n\r\n /**\r\n * Disconnect the established `WebSocket` connection.\r\n *\r\n * @returns {Transport}\r\n * @api public\r\n */\r\n\r\n WS.prototype.close = function () {\r\n this.websocket.close();\r\n return this;\r\n };\r\n\r\n /**\r\n * Handle the errors that `WebSocket` might be giving when we\r\n * are attempting to connect or send messages.\r\n *\r\n * @param {Error} e The error.\r\n * @api private\r\n */\r\n\r\n WS.prototype.onError = function (e) {\r\n this.socket.onError(e);\r\n };\r\n\r\n /**\r\n * Returns the appropriate scheme for the URI generation.\r\n *\r\n * @api private\r\n */\r\n WS.prototype.scheme = function () {\r\n return this.socket.options.secure ? 'wss' : 'ws';\r\n };\r\n\r\n /**\r\n * Checks if the browser has support for native `WebSockets` and that\r\n * it's not the polyfill created for the FlashSocket transport.\r\n *\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\n WS.check = function () {\r\n return ('WebSocket' in global && !('__addTask' in WebSocket))\r\n || 'MozWebSocket' in global;\r\n };\r\n\r\n /**\r\n * Check if the `WebSocket` transport support cross domain communications.\r\n *\r\n * @returns {Boolean}\r\n * @api public\r\n */\r\n\r\n WS.xdomainCheck = function () {\r\n return true;\r\n };\r\n\r\n /**\r\n * Add the transport to your public io.transports array.\r\n *\r\n * @api private\r\n */\r\n\r\n io.transports.push('websocket');\r\n\r\n})(\r\n 'undefined' != typeof io ? io.Transport : module.exports\r\n , 'undefined' != typeof io ? io : module.parent.exports\r\n , this\r\n);\r\n\r\n/**\r\n * socket.io\r\n * Copyright(c) 2011 LearnBoost <dev@learnboost.com>\r\n * MIT Licensed\r\n */\r\n\r\n(function (exports, io) {\r\n\r\n /**\r\n * Expose constructor.\r\n */\r\n\r\n exports.flashsocket = Flashsocket;\r\n\r\n /**\r\n * The FlashSocket transport. This is a API wrapper for the HTML5 WebSocket\r\n * specification. It uses a .swf file to communicate with the server. If you want\r\n * to serve the .swf file from a other server than where the Socket.IO script is\r\n * coming from you need to use the insecure version of the .swf. More information\r\n * about this can be found on the github page.\r\n *\r\n * @constructor\r\n * @extends {io.Transport.websocket}\r\n * @api public\r\n */\r\n\r\n function Flashsocket () {\r\n io.Transport.websocket.apply(this, arguments);\r\n };\r\n\r\n /**\r\n * Inherits from Transport.\r\n */\r\n\r\n io.util.inherit(Flashsocket, io.Transport.websocket);\r\n\r\n /**\r\n * Transport name\r\n *\r\n * @api public\r\n */\r\n\r\n Flashsocket.prototype.name = 'flashsocket';\r\n\r\n /**\r\n * Disconnect the established `FlashSocket` connection. This is done by adding a \r\n * new task to the FlashSocket. The rest will be handled off by the `WebSocket` \r\n * transport.\r\n *\r\n * @returns {Transport}\r\n * @api public\r\n */\r\n\r\n Flashsocket.prototype.open = function () {\r\n var self = this\r\n , args = arguments;\r\n\r\n WebSocket.__addTask(function () {\r\n io.Transport.websocket.prototype.open.apply(self, args);\r\n });\r\n return this;\r\n };\r\n \r\n /**\r\n * Sends a message to the Socket.IO server. This is done by adding a new\r\n * task to the FlashSocket. The rest will be handled off by the `WebSocket` \r\n * transport.\r\n *\r\n * @returns {Transport}\r\n * @api public\r\n */\r\n\r\n Flashsocket.prototype.send = function () {\r\n var self = this, args = arguments;\r\n WebSocket.__addTask(function () {\r\n io.Transport.websocket.prototype.send.apply(self, args);\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Disconnects the established `FlashSocket` connection.\r\n *\r\n * @returns {Transport}\r\n * @api public\r\n */\r\n\r\n Flashsocket.prototype.close = function () {\r\n WebSocket.__tasks.length = 0;\r\n io.Transport.websocket.prototype.close.call(this);\r\n return this;\r\n };\r\n\r\n /**\r\n * The WebSocket fall back needs to append the flash container to the body\r\n * element, so we need to make sure we have access to it. Or defer the call\r\n * until we are sure there is a body element.\r\n *\r\n * @param {Socket} socket The socket instance that needs a transport\r\n * @param {Function} fn The callback\r\n * @api private\r\n */\r\n\r\n Flashsocket.prototype.ready = function (socket, fn) {\r\n function init () {\r\n var options = socket.options\r\n , port = options['flash policy port']\r\n , path = [\r\n 'http' + (options.secure ? 's' : '') + ':/'\r\n , options.host + ':' + options.port\r\n , options.resource\r\n , 'static/flashsocket'\r\n , 'WebSocketMain' + (socket.isXDomain() ? 'Insecure' : '') + '.swf'\r\n ];\r\n\r\n // Only start downloading the swf file when the checked that this browser\r\n // actually supports it\r\n if (!Flashsocket.loaded) {\r\n if (typeof WEB_SOCKET_SWF_LOCATION === 'undefined') {\r\n // Set the correct file based on the XDomain settings\r\n WEB_SOCKET_SWF_LOCATION = path.join('/');\r\n }\r\n\r\n if (port !== 843) {\r\n WebSocket.loadFlashPolicyFile('xmlsocket://' + options.host + ':' + port);\r\n }\r\n\r\n WebSocket.__initialize();\r\n Flashsocket.loaded = true;\r\n }\r\n\r\n fn.call(self);\r\n }\r\n\r\n var self = this;\r\n if (document.body) return init();\r\n\r\n io.util.load(init);\r\n };\r\n\r\n /**\r\n * Check if the FlashSocket transport is supported as it requires that the Adobe\r\n * Flash Player plug-in version `10.0.0` or greater is installed. And also check if\r\n * the polyfill is correctly loaded.\r\n *\r\n * @returns {Boolean}\r\n * @api public\r\n */\r\n\r\n Flashsocket.check = function () {\r\n if (\r\n typeof WebSocket == 'undefined'\r\n || !('__initialize' in WebSocket) || !swfobject\r\n ) return false;\r\n\r\n return swfobject.getFlashPlayerVersion().major >= 10;\r\n };\r\n\r\n /**\r\n * Check if the FlashSocket transport can be used as cross domain / cross origin \r\n * transport. Because we can't see which type (secure or insecure) of .swf is used\r\n * we will just return true.\r\n *\r\n * @returns {Boolean}\r\n * @api public\r\n */\r\n\r\n Flashsocket.xdomainCheck = function () {\r\n return true;\r\n };\r\n\r\n /**\r\n * Disable AUTO_INITIALIZATION\r\n */\r\n\r\n if (typeof window != 'undefined') {\r\n WEB_SOCKET_DISABLE_AUTO_INITIALIZATION = true;\r\n }\r\n\r\n /**\r\n * Add the transport to your public io.transports array.\r\n *\r\n * @api private\r\n */\r\n\r\n io.transports.push('flashsocket');\r\n})(\r\n 'undefined' != typeof io ? io.Transport : module.exports\r\n , 'undefined' != typeof io ? io : module.parent.exports\r\n);\r\n/*\tSWFObject v2.2 <http://code.google.com/p/swfobject/> \r\n\tis released under the MIT License <http://www.opensource.org/licenses/mit-license.php> \r\n*/\r\nif ('undefined' != typeof window) {\r\nvar swfobject=function(){var D=\"undefined\",r=\"object\",S=\"Shockwave Flash\",W=\"ShockwaveFlash.ShockwaveFlash\",q=\"application/x-shockwave-flash\",R=\"SWFObjectExprInst\",x=\"onreadystatechange\",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\\/(\\d+(\\.\\d+)?).*$/,\"$1\")):false,X=!+\"\\v1\",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\\s+(\\S+\\s+\\S+$)/,\"$1\");ag[0]=parseInt(ab.replace(/^(.*)\\..*$/,\"$1\"),10);ag[1]=parseInt(ab.replace(/^.*\\.(.*)\\s.*$/,\"$1\"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,\"$1\"),10):0}}else{if(typeof O[(['Active'].concat('Object').join('X'))]!=D){try{var ad=new window[(['Active'].concat('Object').join('X'))](W);if(ad){ab=ad.GetVariable(\"$version\");if(ab){X=true;ab=ab.split(\" \")[1].split(\",\");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState==\"complete\")||(typeof j.readyState==D&&(j.getElementsByTagName(\"body\")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener(\"DOMContentLoaded\",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState==\"complete\"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll(\"left\")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName(\"body\")[0].appendChild(C(\"span\"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y<X;Y++){U[Y]()}}function K(X){if(J){X()}else{U[U.length]=X}}function s(Y){if(typeof O.addEventListener!=D){O.addEventListener(\"load\",Y,false)}else{if(typeof j.addEventListener!=D){j.addEventListener(\"load\",Y,false)}else{if(typeof O.attachEvent!=D){i(O,\"onload\",Y)}else{if(typeof O.onload==\"function\"){var X=O.onload;O.onload=function(){X();Y()}}else{O.onload=Y}}}}}function h(){if(T){V()}else{H()}}function V(){var X=j.getElementsByTagName(\"body\")[0];var aa=C(r);aa.setAttribute(\"type\",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable(\"$version\");if(ab){ab=ab.split(\" \")[1].split(\",\");M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}else{if(Y<10){Y++;setTimeout(arguments.callee,10);return}}X.removeChild(aa);Z=null;H()})()}else{H()}}function H(){var ag=o.length;if(ag>0){for(var af=0;af<ag;af++){var Y=o[af].id;var ab=o[af].callbackFn;var aa={success:false,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute(\"width\")||\"0\";ai.height=ae.getAttribute(\"height\")||\"0\";if(ae.getAttribute(\"class\")){ai.styleclass=ae.getAttribute(\"class\")}if(ae.getAttribute(\"align\")){ai.align=ae.getAttribute(\"align\")}var ah={};var X=ae.getElementsByTagName(\"param\");var ac=X.length;for(var ad=0;ad<ac;ad++){if(X[ad].getAttribute(\"name\").toLowerCase()!=\"movie\"){ah[X[ad].getAttribute(\"name\")]=X[ad].getAttribute(\"value\")}}P(ai,ah,Y,ab)}else{p(ae);if(ab){ab(aa)}}}}}else{w(Y,true);if(ab){var Z=z(Y);if(Z&&typeof Z.SetVariable!=D){aa.success=true;aa.ref=Z}ab(aa)}}}}}function z(aa){var X=null;var Y=c(aa);if(Y&&Y.nodeName==\"OBJECT\"){if(typeof Y.SetVariable!=D){X=Y}else{var Z=Y.getElementsByTagName(r)[0];if(Z){X=Z}}}return X}function A(){return !a&&F(\"6.0.65\")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=true;E=Z||null;B={success:false,id:X};var ae=c(X);if(ae){if(ae.nodeName==\"OBJECT\"){l=g(ae);Q=null}else{l=ae;Q=X}aa.id=R;if(typeof aa.width==D||(!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)){aa.width=\"310\"}if(typeof aa.height==D||(!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)){aa.height=\"137\"}j.title=j.title.slice(0,47)+\" - Flash Player Installation\";var ad=M.ie&&M.win?(['Active'].concat('').join('X')):\"PlugIn\",ac=\"MMredirectURL=\"+O.location.toString().replace(/&/g,\"%26\")+\"&MMplayerType=\"+ad+\"&MMdoctitle=\"+j.title;if(typeof ab.flashvars!=D){ab.flashvars+=\"&\"+ac}else{ab.flashvars=ac}if(M.ie&&M.win&&ae.readyState!=4){var Y=C(\"div\");X+=\"SWFObjectNew\";Y.setAttribute(\"id\",X);ae.parentNode.insertBefore(Y,ae);ae.style.display=\"none\";(function(){if(ae.readyState==4){ae.parentNode.removeChild(ae)}else{setTimeout(arguments.callee,10)}})()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C(\"div\");Y.parentNode.insertBefore(X,Y);X.parentNode.replaceChild(g(Y),X);Y.style.display=\"none\";(function(){if(Y.readyState==4){Y.parentNode.removeChild(Y)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.replaceChild(g(Y),Y)}}function g(ab){var aa=C(\"div\");if(M.win&&M.ie){aa.innerHTML=ab.innerHTML}else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++){if(!(ad[Z].nodeType==1&&ad[Z].nodeName==\"PARAM\")&&!(ad[Z].nodeType==8)){aa.appendChild(ad[Z].cloneNode(true))}}}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312){return X}if(aa){if(typeof ai.id==D){ai.id=Y}if(M.ie&&M.win){var ah=\"\";for(var ae in ai){if(ai[ae]!=Object.prototype[ae]){if(ae.toLowerCase()==\"data\"){ag.movie=ai[ae]}else{if(ae.toLowerCase()==\"styleclass\"){ah+=' class=\"'+ai[ae]+'\"'}else{if(ae.toLowerCase()!=\"classid\"){ah+=\" \"+ae+'=\"'+ai[ae]+'\"'}}}}}var af=\"\";for(var ad in ag){if(ag[ad]!=Object.prototype[ad]){af+='<param name=\"'+ad+'\" value=\"'+ag[ad]+'\" />'}}aa.outerHTML='<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"'+ah+\">\"+af+\"</object>\";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute(\"type\",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()==\"styleclass\"){Z.setAttribute(\"class\",ai[ac])}else{if(ac.toLowerCase()!=\"classid\"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!=\"movie\"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C(\"param\");aa.setAttribute(\"name\",X);aa.setAttribute(\"value\",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName==\"OBJECT\"){if(M.ie&&M.win){X.style.display=\"none\";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]==\"function\"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(\".\");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName(\"head\")[0];if(!aa){return}var X=(ad&&typeof ad==\"string\")?ad:\"screen\";if(ab){n=null;G=null}if(!n||G!=X){var Z=C(\"style\");Z.setAttribute(\"type\",\"text/css\");Z.setAttribute(\"media\",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+\" {\"+Y+\"}\"))}}}function w(Z,X){if(!m){return}var Y=X?\"visible\":\"hidden\";if(J&&c(Z)){c(Z).style.visibility=Y}else{v(\"#\"+Z,\"visibility:\"+Y)}}function L(Y){var Z=/[\\\\\\\"<>\\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent(\"onunload\",function(){var ac=I.length;for(var ab=0;ab<ac;ab++){I[ab][0].detachEvent(I[ab][1],I[ab][2])}var Z=N.length;for(var aa=0;aa<Z;aa++){y(N[aa])}for(var Y in M){M[Y]=null}M=null;for(var X in swfobject){swfobject[X]=null}swfobject=null})}}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab;Y.swfVersion=X;Y.expressInstall=aa;Y.callbackFn=Z;o[o.length]=Y;w(ab,false)}else{if(Z){Z({success:false,id:ab})}}},getObjectById:function(X){if(M.w3){return z(X)}},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:false,id:ah};if(M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y){w(ah,false);K(function(){ae+=\"\";ag+=\"\";var aj={};if(af&&typeof af===r){for(var al in af){aj[al]=af[al]}}aj.data=ab;aj.width=ae;aj.height=ag;var am={};if(ad&&typeof ad===r){for(var ak in ad){am[ak]=ad[ak]}}if(Z&&typeof Z===r){for(var ai in Z){if(typeof am.flashvars!=D){am.flashvars+=\"&\"+ai+\"=\"+Z[ai]}else{am.flashvars=ai+\"=\"+Z[ai]}}}if(F(Y)){var an=u(aj,am,ah);if(aj.id==ah){w(ah,true)}X.success=true;X.ref=an}else{if(aa&&A()){aj.data=aa;P(aj,am,ah,ac);return}else{w(ah,true)}}if(ac){ac(X)}})}else{if(ac){ac(X)}}},switchOffAutoHideShow:function(){m=false},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){if(M.w3){return u(Z,Y,X)}else{return undefined}},showExpressInstall:function(Z,aa,X,Y){if(M.w3&&A()){P(Z,aa,X,Y)}},removeSWF:function(X){if(M.w3){y(X)}},createCSS:function(aa,Z,Y,X){if(M.w3){v(aa,Z,Y,X)}},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){if(/\\?/.test(Z)){Z=Z.split(\"?\")[1]}if(aa==null){return L(Z)}var Y=Z.split(\"&\");for(var X=0;X<Y.length;X++){if(Y[X].substring(0,Y[X].indexOf(\"=\"))==aa){return L(Y[X].substring((Y[X].indexOf(\"=\")+1)))}}}return\"\"},expressInstallCallback:function(){if(a){var X=c(R);if(X&&l){X.parentNode.replaceChild(l,X);if(Q){w(Q,true);if(M.ie&&M.win){l.style.display=\"block\"}}if(E){E(B)}}a=false}}}}();\r\n}\r\n// Copyright: Hiroshi Ichikawa <http://gimite.net/en/>\r\n// License: New BSD License\r\n// Reference: http://dev.w3.org/html5/websockets/\r\n// Reference: http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol\r\n\r\n(function() {\r\n \r\n if ('undefined' == typeof window || window.WebSocket) return;\r\n\r\n var console = window.console;\r\n if (!console || !console.log || !console.error) {\r\n console = {log: function(){ }, error: function(){ }};\r\n }\r\n \r\n if (!swfobject.hasFlashPlayerVersion(\"10.0.0\")) {\r\n console.error(\"Flash Player >= 10.0.0 is required.\");\r\n return;\r\n }\r\n if (location.protocol == \"file:\") {\r\n console.error(\r\n \"WARNING: web-socket-js doesn't work in file:///... URL \" +\r\n \"unless you set Flash Security Settings properly. \" +\r\n \"Open the page via Web server i.e. http://...\");\r\n }\r\n\r\n /**\r\n * This class represents a faux web socket.\r\n * @param {string} url\r\n * @param {array or string} protocols\r\n * @param {string} proxyHost\r\n * @param {int} proxyPort\r\n * @param {string} headers\r\n */\r\n WebSocket = function(url, protocols, proxyHost, proxyPort, headers) {\r\n var self = this;\r\n self.__id = WebSocket.__nextId++;\r\n WebSocket.__instances[self.__id] = self;\r\n self.readyState = WebSocket.CONNECTING;\r\n self.bufferedAmount = 0;\r\n self.__events = {};\r\n if (!protocols) {\r\n protocols = [];\r\n } else if (typeof protocols == \"string\") {\r\n protocols = [protocols];\r\n }\r\n // Uses setTimeout() to make sure __createFlash() runs after the caller sets ws.onopen etc.\r\n // Otherwise, when onopen fires immediately, onopen is called before it is set.\r\n setTimeout(function() {\r\n WebSocket.__addTask(function() {\r\n WebSocket.__flash.create(\r\n self.__id, url, protocols, proxyHost || null, proxyPort || 0, headers || null);\r\n });\r\n }, 0);\r\n };\r\n\r\n /**\r\n * Send data to the web socket.\r\n * @param {string} data The data to send to the socket.\r\n * @return {boolean} True for success, false for failure.\r\n */\r\n WebSocket.prototype.send = function(data) {\r\n if (this.readyState == WebSocket.CONNECTING) {\r\n throw \"INVALID_STATE_ERR: Web Socket connection has not been established\";\r\n }\r\n // We use encodeURIComponent() here, because FABridge doesn't work if\r\n // the argument includes some characters. We don't use escape() here\r\n // because of this:\r\n // https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Functions#escape_and_unescape_Functions\r\n // But it looks decodeURIComponent(encodeURIComponent(s)) doesn't\r\n // preserve all Unicode characters either e.g. \"\\uffff\" in Firefox.\r\n // Note by wtritch: Hopefully this will not be necessary using ExternalInterface. Will require\r\n // additional testing.\r\n var result = WebSocket.__flash.send(this.__id, encodeURIComponent(data));\r\n if (result < 0) { // success\r\n return true;\r\n } else {\r\n this.bufferedAmount += result;\r\n return false;\r\n }\r\n };\r\n\r\n /**\r\n * Close this web socket gracefully.\r\n */\r\n WebSocket.prototype.close = function() {\r\n if (this.readyState == WebSocket.CLOSED || this.readyState == WebSocket.CLOSING) {\r\n return;\r\n }\r\n this.readyState = WebSocket.CLOSING;\r\n WebSocket.__flash.close(this.__id);\r\n };\r\n\r\n /**\r\n * Implementation of {@link <a href=\"http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-registration\">DOM 2 EventTarget Interface</a>}\r\n *\r\n * @param {string} type\r\n * @param {function} listener\r\n * @param {boolean} useCapture\r\n * @return void\r\n */\r\n WebSocket.prototype.addEventListener = function(type, listener, useCapture) {\r\n if (!(type in this.__events)) {\r\n this.__events[type] = [];\r\n }\r\n this.__events[type].push(listener);\r\n };\r\n\r\n /**\r\n * Implementation of {@link <a href=\"http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-registration\">DOM 2 EventTarget Interface</a>}\r\n *\r\n * @param {string} type\r\n * @param {function} listener\r\n * @param {boolean} useCapture\r\n * @return void\r\n */\r\n WebSocket.prototype.removeEventListener = function(type, listener, useCapture) {\r\n if (!(type in this.__events)) return;\r\n var events = this.__events[type];\r\n for (var i = events.length - 1; i >= 0; --i) {\r\n if (events[i] === listener) {\r\n events.splice(i, 1);\r\n break;\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Implementation of {@link <a href=\"http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-registration\">DOM 2 EventTarget Interface</a>}\r\n *\r\n * @param {Event} event\r\n * @return void\r\n */\r\n WebSocket.prototype.dispatchEvent = function(event) {\r\n var events = this.__events[event.type] || [];\r\n for (var i = 0; i < events.length; ++i) {\r\n events[i](event);\r\n }\r\n var handler = this[\"on\" + event.type];\r\n if (handler) handler(event);\r\n };\r\n\r\n /**\r\n * Handles an event from Flash.\r\n * @param {Object} flashEvent\r\n */\r\n WebSocket.prototype.__handleEvent = function(flashEvent) {\r\n if (\"readyState\" in flashEvent) {\r\n this.readyState = flashEvent.readyState;\r\n }\r\n if (\"protocol\" in flashEvent) {\r\n this.protocol = flashEvent.protocol;\r\n }\r\n \r\n var jsEvent;\r\n if (flashEvent.type == \"open\" || flashEvent.type == \"error\") {\r\n jsEvent = this.__createSimpleEvent(flashEvent.type);\r\n } else if (flashEvent.type == \"close\") {\r\n // TODO implement jsEvent.wasClean\r\n jsEvent = this.__createSimpleEvent(\"close\");\r\n } else if (flashEvent.type == \"message\") {\r\n var data = decodeURIComponent(flashEvent.message);\r\n jsEvent = this.__createMessageEvent(\"message\", data);\r\n } else {\r\n throw \"unknown event type: \" + flashEvent.type;\r\n }\r\n \r\n this.dispatchEvent(jsEvent);\r\n };\r\n \r\n WebSocket.prototype.__createSimpleEvent = function(type) {\r\n if (document.createEvent && window.Event) {\r\n var event = document.createEvent(\"Event\");\r\n event.initEvent(type, false, false);\r\n return event;\r\n } else {\r\n return {type: type, bubbles: false, cancelable: false};\r\n }\r\n };\r\n \r\n WebSocket.prototype.__createMessageEvent = function(type, data) {\r\n if (document.createEvent && window.MessageEvent && !window.opera) {\r\n var event = document.createEvent(\"MessageEvent\");\r\n event.initMessageEvent(\"message\", false, false, data, null, null, window, null);\r\n return event;\r\n } else {\r\n // IE and Opera, the latter one truncates the data parameter after any 0x00 bytes.\r\n return {type: type, data: data, bubbles: false, cancelable: false};\r\n }\r\n };\r\n \r\n /**\r\n * Define the WebSocket readyState enumeration.\r\n */\r\n WebSocket.CONNECTING = 0;\r\n WebSocket.OPEN = 1;\r\n WebSocket.CLOSING = 2;\r\n WebSocket.CLOSED = 3;\r\n\r\n WebSocket.__flash = null;\r\n WebSocket.__instances = {};\r\n WebSocket.__tasks = [];\r\n WebSocket.__nextId = 0;\r\n \r\n /**\r\n * Load a new flash security policy file.\r\n * @param {string} url\r\n */\r\n WebSocket.loadFlashPolicyFile = function(url){\r\n WebSocket.__addTask(function() {\r\n WebSocket.__flash.loadManualPolicyFile(url);\r\n });\r\n };\r\n\r\n /**\r\n * Loads WebSocketMain.swf and creates WebSocketMain object in Flash.\r\n */\r\n WebSocket.__initialize = function() {\r\n if (WebSocket.__flash) return;\r\n \r\n if (WebSocket.__swfLocation) {\r\n // For backword compatibility.\r\n window.WEB_SOCKET_SWF_LOCATION = WebSocket.__swfLocation;\r\n }\r\n if (!window.WEB_SOCKET_SWF_LOCATION) {\r\n console.error(\"[WebSocket] set WEB_SOCKET_SWF_LOCATION to location of WebSocketMain.swf\");\r\n return;\r\n }\r\n var container = document.createElement(\"div\");\r\n container.id = \"webSocketContainer\";\r\n // Hides Flash box. We cannot use display: none or visibility: hidden because it prevents\r\n // Flash from loading at least in IE. So we move it out of the screen at (-100, -100).\r\n // But this even doesn't work with Flash Lite (e.g. in Droid Incredible). So with Flash\r\n // Lite, we put it at (0, 0). This shows 1x1 box visible at left-top corner but this is\r\n // the best we can do as far as we know now.\r\n container.style.position = \"absolute\";\r\n if (WebSocket.__isFlashLite()) {\r\n container.style.left = \"0px\";\r\n container.style.top = \"0px\";\r\n } else {\r\n container.style.left = \"-100px\";\r\n container.style.top = \"-100px\";\r\n }\r\n var holder = document.createElement(\"div\");\r\n holder.id = \"webSocketFlash\";\r\n container.appendChild(holder);\r\n document.body.appendChild(container);\r\n // See this article for hasPriority:\r\n // http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c36cfb8137124318eebc6-7ffd.html\r\n swfobject.embedSWF(\r\n WEB_SOCKET_SWF_LOCATION,\r\n \"webSocketFlash\",\r\n \"1\" /* width */,\r\n \"1\" /* height */,\r\n \"10.0.0\" /* SWF version */,\r\n null,\r\n null,\r\n {hasPriority: true, swliveconnect : true, allowScriptAccess: \"always\"},\r\n null,\r\n function(e) {\r\n if (!e.success) {\r\n console.error(\"[WebSocket] swfobject.embedSWF failed\");\r\n }\r\n });\r\n };\r\n \r\n /**\r\n * Called by Flash to notify JS that it's fully loaded and ready\r\n * for communication.\r\n */\r\n WebSocket.__onFlashInitialized = function() {\r\n // We need to set a timeout here to avoid round-trip calls\r\n // to flash during the initialization process.\r\n setTimeout(function() {\r\n WebSocket.__flash = document.getElementById(\"webSocketFlash\");\r\n WebSocket.__flash.setCallerUrl(location.href);\r\n WebSocket.__flash.setDebug(!!window.WEB_SOCKET_DEBUG);\r\n for (var i = 0; i < WebSocket.__tasks.length; ++i) {\r\n WebSocket.__tasks[i]();\r\n }\r\n WebSocket.__tasks = [];\r\n }, 0);\r\n };\r\n \r\n /**\r\n * Called by Flash to notify WebSockets events are fired.\r\n */\r\n WebSocket.__onFlashEvent = function() {\r\n setTimeout(function() {\r\n try {\r\n // Gets events using receiveEvents() instead of getting it from event object\r\n // of Flash event. This is to make sure to keep message order.\r\n // It seems sometimes Flash events don't arrive in the same order as they are sent.\r\n var events = WebSocket.__flash.receiveEvents();\r\n for (var i = 0; i < events.length; ++i) {\r\n WebSocket.__instances[events[i].webSocketId].__handleEvent(events[i]);\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }, 0);\r\n return true;\r\n };\r\n \r\n // Called by Flash.\r\n WebSocket.__log = function(message) {\r\n console.log(decodeURIComponent(message));\r\n };\r\n \r\n // Called by Flash.\r\n WebSocket.__error = function(message) {\r\n console.error(decodeURIComponent(message));\r\n };\r\n \r\n WebSocket.__addTask = function(task) {\r\n if (WebSocket.__flash) {\r\n task();\r\n } else {\r\n WebSocket.__tasks.push(task);\r\n }\r\n };\r\n \r\n /**\r\n * Test if the browser is running flash lite.\r\n * @return {boolean} True if flash lite is running, false otherwise.\r\n */\r\n WebSocket.__isFlashLite = function() {\r\n if (!window.navigator || !window.navigator.mimeTypes) {\r\n return false;\r\n }\r\n var mimeType = window.navigator.mimeTypes[\"application/x-shockwave-flash\"];\r\n if (!mimeType || !mimeType.enabledPlugin || !mimeType.enabledPlugin.filename) {\r\n return false;\r\n }\r\n return mimeType.enabledPlugin.filename.match(/flashlite/i) ? true : false;\r\n };\r\n \r\n if (!window.WEB_SOCKET_DISABLE_AUTO_INITIALIZATION) {\r\n if (window.addEventListener) {\r\n window.addEventListener(\"load\", function(){\r\n WebSocket.__initialize();\r\n }, false);\r\n } else {\r\n window.attachEvent(\"onload\", function(){\r\n WebSocket.__initialize();\r\n });\r\n }\r\n }\r\n \r\n})();\r\n\r\n/**\r\n * socket.io\r\n * Copyright(c) 2011 LearnBoost <dev@learnboost.com>\r\n * MIT Licensed\r\n */\r\n\r\n(function (exports, io, global) {\r\n\r\n /**\r\n * Expose constructor.\r\n *\r\n * @api public\r\n */\r\n\r\n exports.XHR = XHR;\r\n\r\n /**\r\n * XHR constructor\r\n *\r\n * @costructor\r\n * @api public\r\n */\r\n\r\n function XHR (socket) {\r\n if (!socket) return;\r\n\r\n io.Transport.apply(this, arguments);\r\n this.sendBuffer = [];\r\n };\r\n\r\n /**\r\n * Inherits from Transport.\r\n */\r\n\r\n io.util.inherit(XHR, io.Transport);\r\n\r\n /**\r\n * Establish a connection\r\n *\r\n * @returns {Transport}\r\n * @api public\r\n */\r\n\r\n XHR.prototype.open = function () {\r\n this.socket.setBuffer(false);\r\n this.onOpen();\r\n this.get();\r\n\r\n // we need to make sure the request succeeds since we have no indication\r\n // whether the request opened or not until it succeeded.\r\n this.setCloseTimeout();\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Check if we need to send data to the Socket.IO server, if we have data in our\r\n * buffer we encode it and forward it to the `post` method.\r\n *\r\n * @api private\r\n */\r\n\r\n XHR.prototype.payload = function (payload) {\r\n var msgs = [];\r\n\r\n for (var i = 0, l = payload.length; i < l; i++) {\r\n msgs.push(io.parser.encodePacket(payload[i]));\r\n }\r\n\r\n this.send(io.parser.encodePayload(msgs));\r\n };\r\n\r\n /**\r\n * Send data to the Socket.IO server.\r\n *\r\n * @param data The message\r\n * @returns {Transport}\r\n * @api public\r\n */\r\n\r\n XHR.prototype.send = function (data) {\r\n this.post(data);\r\n return this;\r\n };\r\n\r\n /**\r\n * Posts a encoded message to the Socket.IO server.\r\n *\r\n * @param {String} data A encoded message.\r\n * @api private\r\n */\r\n\r\n function empty () { };\r\n\r\n XHR.prototype.post = function (data) {\r\n var self = this;\r\n this.socket.setBuffer(true);\r\n\r\n function stateChange () {\r\n if (this.readyState == 4) {\r\n this.onreadystatechange = empty;\r\n self.posting = false;\r\n\r\n if (this.status == 200){\r\n self.socket.setBuffer(false);\r\n } else {\r\n self.onClose();\r\n }\r\n }\r\n }\r\n\r\n function onload () {\r\n this.onload = empty;\r\n self.socket.setBuffer(false);\r\n };\r\n\r\n this.sendXHR = this.request('POST');\r\n\r\n if (global.XDomainRequest && this.sendXHR instanceof XDomainRequest) {\r\n this.sendXHR.onload = this.sendXHR.onerror = onload;\r\n } else {\r\n this.sendXHR.onreadystatechange = stateChange;\r\n }\r\n\r\n this.sendXHR.send(data);\r\n };\r\n\r\n /**\r\n * Disconnects the established `XHR` connection.\r\n *\r\n * @returns {Transport}\r\n * @api public\r\n */\r\n\r\n XHR.prototype.close = function () {\r\n this.onClose();\r\n return this;\r\n };\r\n\r\n /**\r\n * Generates a configured XHR request\r\n *\r\n * @param {String} url The url that needs to be requested.\r\n * @param {String} method The method the request should use.\r\n * @returns {XMLHttpRequest}\r\n * @api private\r\n */\r\n\r\n XHR.prototype.request = function (method) {\r\n var req = io.util.request(this.socket.isXDomain())\r\n , query = io.util.query(this.socket.options.query, 't=' + +new Date);\r\n\r\n req.open(method || 'GET', this.prepareUrl() + query, true);\r\n\r\n if (method == 'POST') {\r\n try {\r\n if (req.setRequestHeader) {\r\n req.setRequestHeader('Content-type', 'text/plain;charset=UTF-8');\r\n } else {\r\n // XDomainRequest\r\n req.contentType = 'text/plain';\r\n }\r\n } catch (e) {}\r\n }\r\n\r\n return req;\r\n };\r\n\r\n /**\r\n * Returns the scheme to use for the transport URLs.\r\n *\r\n * @api private\r\n */\r\n\r\n XHR.prototype.scheme = function () {\r\n return this.socket.options.secure ? 'https' : 'http';\r\n };\r\n\r\n /**\r\n * Check if the XHR transports are supported\r\n *\r\n * @param {Boolean} xdomain Check if we support cross domain requests.\r\n * @returns {Boolean}\r\n * @api public\r\n */\r\n\r\n XHR.check = function (socket, xdomain) {\r\n try {\r\n var request = io.util.request(xdomain),\r\n usesXDomReq = (global.XDomainRequest && request instanceof XDomainRequest),\r\n socketProtocol = (socket && socket.options && socket.options.secure ? 'https:' : 'http:'),\r\n isXProtocol = (socketProtocol != global.location.protocol);\r\n if (request && !(usesXDomReq && isXProtocol)) {\r\n return true;\r\n }\r\n } catch(e) {}\r\n\r\n return false;\r\n };\r\n\r\n /**\r\n * Check if the XHR transport supports cross domain requests.\r\n *\r\n * @returns {Boolean}\r\n * @api public\r\n */\r\n\r\n XHR.xdomainCheck = function (socket) {\r\n return XHR.check(socket, true);\r\n };\r\n\r\n})(\r\n 'undefined' != typeof io ? io.Transport : module.exports\r\n , 'undefined' != typeof io ? io : module.parent.exports\r\n , this\r\n);\r\n/**\r\n * socket.io\r\n * Copyright(c) 2011 LearnBoost <dev@learnboost.com>\r\n * MIT Licensed\r\n */\r\n\r\n(function (exports, io) {\r\n\r\n /**\r\n * Expose constructor.\r\n */\r\n\r\n exports.htmlfile = HTMLFile;\r\n\r\n /**\r\n * The HTMLFile transport creates a `forever iframe` based transport\r\n * for Internet Explorer. Regular forever iframe implementations will \r\n * continuously trigger the browsers buzy indicators. If the forever iframe\r\n * is created inside a `htmlfile` these indicators will not be trigged.\r\n *\r\n * @constructor\r\n * @extends {io.Transport.XHR}\r\n * @api public\r\n */\r\n\r\n function HTMLFile (socket) {\r\n io.Transport.XHR.apply(this, arguments);\r\n };\r\n\r\n /**\r\n * Inherits from XHR transport.\r\n */\r\n\r\n io.util.inherit(HTMLFile, io.Transport.XHR);\r\n\r\n /**\r\n * Transport name\r\n *\r\n * @api public\r\n */\r\n\r\n HTMLFile.prototype.name = 'htmlfile';\r\n\r\n /**\r\n * Creates a new Ac...eX `htmlfile` with a forever loading iframe\r\n * that can be used to listen to messages. Inside the generated\r\n * `htmlfile` a reference will be made to the HTMLFile transport.\r\n *\r\n * @api private\r\n */\r\n\r\n HTMLFile.prototype.get = function () {\r\n this.doc = new window[(['Active'].concat('Object').join('X'))]('htmlfile');\r\n this.doc.open();\r\n this.doc.write('<html></html>');\r\n this.doc.close();\r\n this.doc.parentWindow.s = this;\r\n\r\n var iframeC = this.doc.createElement('div');\r\n iframeC.className = 'socketio';\r\n\r\n this.doc.body.appendChild(iframeC);\r\n this.iframe = this.doc.createElement('iframe');\r\n\r\n iframeC.appendChild(this.iframe);\r\n\r\n var self = this\r\n , query = io.util.query(this.socket.options.query, 't='+ +new Date);\r\n\r\n this.iframe.src = this.prepareUrl() + query;\r\n\r\n io.util.on(window, 'unload', function () {\r\n self.destroy();\r\n });\r\n };\r\n\r\n /**\r\n * The Socket.IO server will write script tags inside the forever\r\n * iframe, this function will be used as callback for the incoming\r\n * information.\r\n *\r\n * @param {String} data The message\r\n * @param {document} doc Reference to the context\r\n * @api private\r\n */\r\n\r\n HTMLFile.prototype._ = function (data, doc) {\r\n this.onData(data);\r\n try {\r\n var script = doc.getElementsByTagName('script')[0];\r\n script.parentNode.removeChild(script);\r\n } catch (e) { }\r\n };\r\n\r\n /**\r\n * Destroy the established connection, iframe and `htmlfile`.\r\n * And calls the `CollectGarbage` function of Internet Explorer\r\n * to release the memory.\r\n *\r\n * @api private\r\n */\r\n\r\n HTMLFile.prototype.destroy = function () {\r\n if (this.iframe){\r\n try {\r\n this.iframe.src = 'about:blank';\r\n } catch(e){}\r\n\r\n this.doc = null;\r\n this.iframe.parentNode.removeChild(this.iframe);\r\n this.iframe = null;\r\n\r\n CollectGarbage();\r\n }\r\n };\r\n\r\n /**\r\n * Disconnects the established connection.\r\n *\r\n * @returns {Transport} Chaining.\r\n * @api public\r\n */\r\n\r\n HTMLFile.prototype.close = function () {\r\n this.destroy();\r\n return io.Transport.XHR.prototype.close.call(this);\r\n };\r\n\r\n /**\r\n * Checks if the browser supports this transport. The browser\r\n * must have an `Ac...eXObject` implementation.\r\n *\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\n HTMLFile.check = function (socket) {\r\n if (typeof window != \"undefined\" && (['Active'].concat('Object').join('X')) in window){\r\n try {\r\n var a = new window[(['Active'].concat('Object').join('X'))]('htmlfile');\r\n return a && io.Transport.XHR.check(socket);\r\n } catch(e){}\r\n }\r\n return false;\r\n };\r\n\r\n /**\r\n * Check if cross domain requests are supported.\r\n *\r\n * @returns {Boolean}\r\n * @api public\r\n */\r\n\r\n HTMLFile.xdomainCheck = function () {\r\n // we can probably do handling for sub-domains, we should\r\n // test that it's cross domain but a subdomain here\r\n return false;\r\n };\r\n\r\n /**\r\n * Add the transport to your public io.transports array.\r\n *\r\n * @api private\r\n */\r\n\r\n io.transports.push('htmlfile');\r\n\r\n})(\r\n 'undefined' != typeof io ? io.Transport : module.exports\r\n , 'undefined' != typeof io ? io : module.parent.exports\r\n);\r\n\r\n/**\r\n * socket.io\r\n * Copyright(c) 2011 LearnBoost <dev@learnboost.com>\r\n * MIT Licensed\r\n */\r\n\r\n(function (exports, io, global) {\r\n\r\n /**\r\n * Expose constructor.\r\n */\r\n\r\n exports['xhr-polling'] = XHRPolling;\r\n\r\n /**\r\n * The XHR-polling transport uses long polling XHR requests to create a\r\n * \"persistent\" connection with the server.\r\n *\r\n * @constructor\r\n * @api public\r\n */\r\n\r\n function XHRPolling () {\r\n io.Transport.XHR.apply(this, arguments);\r\n };\r\n\r\n /**\r\n * Inherits from XHR transport.\r\n */\r\n\r\n io.util.inherit(XHRPolling, io.Transport.XHR);\r\n\r\n /**\r\n * Merge the properties from XHR transport\r\n */\r\n\r\n io.util.merge(XHRPolling, io.Transport.XHR);\r\n\r\n /**\r\n * Transport name\r\n *\r\n * @api public\r\n */\r\n\r\n XHRPolling.prototype.name = 'xhr-polling';\r\n\r\n /**\r\n * Indicates whether heartbeats is enabled for this transport\r\n *\r\n * @api private\r\n */\r\n\r\n XHRPolling.prototype.heartbeats = function () {\r\n return false;\r\n };\r\n\r\n /** \r\n * Establish a connection, for iPhone and Android this will be done once the page\r\n * is loaded.\r\n *\r\n * @returns {Transport} Chaining.\r\n * @api public\r\n */\r\n\r\n XHRPolling.prototype.open = function () {\r\n var self = this;\r\n\r\n io.Transport.XHR.prototype.open.call(self);\r\n return false;\r\n };\r\n\r\n /**\r\n * Starts a XHR request to wait for incoming messages.\r\n *\r\n * @api private\r\n */\r\n\r\n function empty () {};\r\n\r\n XHRPolling.prototype.get = function () {\r\n if (!this.isOpen) return;\r\n\r\n var self = this;\r\n\r\n function stateChange () {\r\n if (this.readyState == 4) {\r\n this.onreadystatechange = empty;\r\n\r\n if (this.status == 200) {\r\n self.onData(this.responseText);\r\n self.get();\r\n } else {\r\n self.onClose();\r\n }\r\n }\r\n };\r\n\r\n function onload () {\r\n this.onload = empty;\r\n this.onerror = empty;\r\n self.onData(this.responseText);\r\n self.get();\r\n };\r\n\r\n function onerror () {\r\n self.onClose();\r\n };\r\n\r\n this.xhr = this.request();\r\n\r\n if (global.XDomainRequest && this.xhr instanceof XDomainRequest) {\r\n this.xhr.onload = onload;\r\n this.xhr.onerror = onerror;\r\n } else {\r\n this.xhr.onreadystatechange = stateChange;\r\n }\r\n\r\n this.xhr.send(null);\r\n };\r\n\r\n /**\r\n * Handle the unclean close behavior.\r\n *\r\n * @api private\r\n */\r\n\r\n XHRPolling.prototype.onClose = function () {\r\n io.Transport.XHR.prototype.onClose.call(this);\r\n\r\n if (this.xhr) {\r\n this.xhr.onreadystatechange = this.xhr.onload = this.xhr.onerror = empty;\r\n try {\r\n this.xhr.abort();\r\n } catch(e){}\r\n this.xhr = null;\r\n }\r\n };\r\n\r\n /**\r\n * Webkit based browsers show a infinit spinner when you start a XHR request\r\n * before the browsers onload event is called so we need to defer opening of\r\n * the transport until the onload event is called. Wrapping the cb in our\r\n * defer method solve this.\r\n *\r\n * @param {Socket} socket The socket instance that needs a transport\r\n * @param {Function} fn The callback\r\n * @api private\r\n */\r\n\r\n XHRPolling.prototype.ready = function (socket, fn) {\r\n var self = this;\r\n\r\n io.util.defer(function () {\r\n fn.call(self);\r\n });\r\n };\r\n\r\n /**\r\n * Add the transport to your public io.transports array.\r\n *\r\n * @api private\r\n */\r\n\r\n io.transports.push('xhr-polling');\r\n\r\n})(\r\n 'undefined' != typeof io ? io.Transport : module.exports\r\n , 'undefined' != typeof io ? io : module.parent.exports\r\n , this\r\n);\r\n\r\n/**\r\n * socket.io\r\n * Copyright(c) 2011 LearnBoost <dev@learnboost.com>\r\n * MIT Licensed\r\n */\r\n\r\n(function (exports, io, global) {\r\n /**\r\n * There is a way to hide the loading indicator in Firefox. If you create and\r\n * remove a iframe it will stop showing the current loading indicator.\r\n * Unfortunately we can't feature detect that and UA sniffing is evil.\r\n *\r\n * @api private\r\n */\r\n\r\n var indicator = global.document && \"MozAppearance\" in\r\n global.document.documentElement.style;\r\n\r\n /**\r\n * Expose constructor.\r\n */\r\n\r\n exports['jsonp-polling'] = JSONPPolling;\r\n\r\n /**\r\n * The JSONP transport creates an persistent connection by dynamically\r\n * inserting a script tag in the page. This script tag will receive the\r\n * information of the Socket.IO server. When new information is received\r\n * it creates a new script tag for the new data stream.\r\n *\r\n * @constructor\r\n * @extends {io.Transport.xhr-polling}\r\n * @api public\r\n */\r\n\r\n function JSONPPolling (socket) {\r\n io.Transport['xhr-polling'].apply(this, arguments);\r\n\r\n this.index = io.j.length;\r\n\r\n var self = this;\r\n\r\n io.j.push(function (msg) {\r\n self._(msg);\r\n });\r\n };\r\n\r\n /**\r\n * Inherits from XHR polling transport.\r\n */\r\n\r\n io.util.inherit(JSONPPolling, io.Transport['xhr-polling']);\r\n\r\n /**\r\n * Transport name\r\n *\r\n * @api public\r\n */\r\n\r\n JSONPPolling.prototype.name = 'jsonp-polling';\r\n\r\n /**\r\n * Posts a encoded message to the Socket.IO server using an iframe.\r\n * The iframe is used because script tags can create POST based requests.\r\n * The iframe is positioned outside of the view so the user does not\r\n * notice it's existence.\r\n *\r\n * @param {String} data A encoded message.\r\n * @api private\r\n */\r\n\r\n JSONPPolling.prototype.post = function (data) {\r\n var self = this\r\n , query = io.util.query(\r\n this.socket.options.query\r\n , 't='+ (+new Date) + '&i=' + this.index\r\n );\r\n\r\n if (!this.form) {\r\n var form = document.createElement('form')\r\n , area = document.createElement('textarea')\r\n , id = this.iframeId = 'socketio_iframe_' + this.index\r\n , iframe;\r\n\r\n form.className = 'socketio';\r\n form.style.position = 'absolute';\r\n form.style.top = '0px';\r\n form.style.left = '0px';\r\n form.style.display = 'none';\r\n form.target = id;\r\n form.method = 'POST';\r\n form.setAttribute('accept-charset', 'utf-8');\r\n area.name = 'd';\r\n form.appendChild(area);\r\n document.body.appendChild(form);\r\n\r\n this.form = form;\r\n this.area = area;\r\n }\r\n\r\n this.form.action = this.prepareUrl() + query;\r\n\r\n function complete () {\r\n initIframe();\r\n self.socket.setBuffer(false);\r\n };\r\n\r\n function initIframe () {\r\n if (self.iframe) {\r\n self.form.removeChild(self.iframe);\r\n }\r\n\r\n try {\r\n // ie6 dynamic iframes with target=\"\" support (thanks Chris Lambacher)\r\n iframe = document.createElement('<iframe name=\"'+ self.iframeId +'\">');\r\n } catch (e) {\r\n iframe = document.createElement('iframe');\r\n iframe.name = self.iframeId;\r\n }\r\n\r\n iframe.id = self.iframeId;\r\n\r\n self.form.appendChild(iframe);\r\n self.iframe = iframe;\r\n };\r\n\r\n initIframe();\r\n\r\n // we temporarily stringify until we figure out how to prevent\r\n // browsers from turning `\\n` into `\\r\\n` in form inputs\r\n this.area.value = io.JSON.stringify(data);\r\n\r\n try {\r\n this.form.submit();\r\n } catch(e) {}\r\n\r\n if (this.iframe.attachEvent) {\r\n iframe.onreadystatechange = function () {\r\n if (self.iframe.readyState == 'complete') {\r\n complete();\r\n }\r\n };\r\n } else {\r\n this.iframe.onload = complete;\r\n }\r\n\r\n this.socket.setBuffer(true);\r\n };\r\n \r\n /**\r\n * Creates a new JSONP poll that can be used to listen\r\n * for messages from the Socket.IO server.\r\n *\r\n * @api private\r\n */\r\n\r\n JSONPPolling.prototype.get = function () {\r\n var self = this\r\n , script = document.createElement('script')\r\n , query = io.util.query(\r\n this.socket.options.query\r\n , 't='+ (+new Date) + '&i=' + this.index\r\n );\r\n\r\n if (this.script) {\r\n this.script.parentNode.removeChild(this.script);\r\n this.script = null;\r\n }\r\n\r\n script.async = true;\r\n script.src = this.prepareUrl() + query;\r\n script.onerror = function () {\r\n self.onClose();\r\n };\r\n\r\n var insertAt = document.getElementsByTagName('script')[0]\r\n insertAt.parentNode.insertBefore(script, insertAt);\r\n this.script = script;\r\n\r\n if (indicator) {\r\n setTimeout(function () {\r\n var iframe = document.createElement('iframe');\r\n document.body.appendChild(iframe);\r\n document.body.removeChild(iframe);\r\n }, 100);\r\n }\r\n };\r\n\r\n /**\r\n * Callback function for the incoming message stream from the Socket.IO server.\r\n *\r\n * @param {String} data The message\r\n * @api private\r\n */\r\n\r\n JSONPPolling.prototype._ = function (msg) {\r\n this.onData(msg);\r\n if (this.isOpen) {\r\n this.get();\r\n }\r\n return this;\r\n };\r\n\r\n /**\r\n * The indicator hack only works after onload\r\n *\r\n * @param {Socket} socket The socket instance that needs a transport\r\n * @param {Function} fn The callback\r\n * @api private\r\n */\r\n\r\n JSONPPolling.prototype.ready = function (socket, fn) {\r\n var self = this;\r\n if (!indicator) return fn.call(this);\r\n\r\n io.util.load(function () {\r\n fn.call(self);\r\n });\r\n };\r\n\r\n /**\r\n * Checks if browser supports this transport.\r\n *\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\n JSONPPolling.check = function () {\r\n return 'document' in global;\r\n };\r\n\r\n /**\r\n * Check if cross domain requests are supported\r\n *\r\n * @returns {Boolean}\r\n * @api public\r\n */\r\n\r\n JSONPPolling.xdomainCheck = function () {\r\n return true;\r\n };\r\n\r\n /**\r\n * Add the transport to your public io.transports array.\r\n *\r\n * @api private\r\n */\r\n\r\n io.transports.push('jsonp-polling');\r\n\r\n})(\r\n 'undefined' != typeof io ? io.Transport : module.exports\r\n , 'undefined' != typeof io ? io : module.parent.exports\r\n , this\r\n);\r\n\r\n})();\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)(module)))\n\n/*****************\n ** WEBPACK FOOTER\n ** (webpack)-dev-server/client/web_modules/socket.io/socket.io.js\n ** module id = 15\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///(webpack)-dev-server/client/web_modules/socket.io/socket.io.js?");
  599. /***/ },
  600. /* 16 */
  601. /***/ function(module, exports, __webpack_require__) {
  602. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMProperty\n * @typechecks static-only\n */\n\n/*jslint bitwise: true */\n\n\"use strict\";\n\nvar invariant = __webpack_require__(27);\n\nfunction checkMask(value, bitmask) {\n return (value & bitmask) === bitmask;\n}\n\nvar DOMPropertyInjection = {\n /**\n * Mapping from normalized, camelcased property names to a configuration that\n * specifies how the associated DOM property should be accessed or rendered.\n */\n MUST_USE_ATTRIBUTE: 0x1,\n MUST_USE_PROPERTY: 0x2,\n HAS_SIDE_EFFECTS: 0x4,\n HAS_BOOLEAN_VALUE: 0x8,\n HAS_NUMERIC_VALUE: 0x10,\n HAS_POSITIVE_NUMERIC_VALUE: 0x20 | 0x10,\n HAS_OVERLOADED_BOOLEAN_VALUE: 0x40,\n\n /**\n * Inject some specialized knowledge about the DOM. This takes a config object\n * with the following properties:\n *\n * isCustomAttribute: function that given an attribute name will return true\n * if it can be inserted into the DOM verbatim. Useful for data-* or aria-*\n * attributes where it's impossible to enumerate all of the possible\n * attribute names,\n *\n * Properties: object mapping DOM property name to one of the\n * DOMPropertyInjection constants or null. If your attribute isn't in here,\n * it won't get written to the DOM.\n *\n * DOMAttributeNames: object mapping React attribute name to the DOM\n * attribute name. Attribute names not specified use the **lowercase**\n * normalized name.\n *\n * DOMPropertyNames: similar to DOMAttributeNames but for DOM properties.\n * Property names not specified use the normalized name.\n *\n * DOMMutationMethods: Properties that require special mutation methods. If\n * `value` is undefined, the mutation method should unset the property.\n *\n * @param {object} domPropertyConfig the config as described above.\n */\n injectDOMPropertyConfig: function(domPropertyConfig) {\n var Properties = domPropertyConfig.Properties || {};\n var DOMAttributeNames = domPropertyConfig.DOMAttributeNames || {};\n var DOMPropertyNames = domPropertyConfig.DOMPropertyNames || {};\n var DOMMutationMethods = domPropertyConfig.DOMMutationMethods || {};\n\n if (domPropertyConfig.isCustomAttribute) {\n DOMProperty._isCustomAttributeFunctions.push(\n domPropertyConfig.isCustomAttribute\n );\n }\n\n for (var propName in Properties) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n !DOMProperty.isStandardName.hasOwnProperty(propName),\n 'injectDOMPropertyConfig(...): You\\'re trying to inject DOM property ' +\n '\\'%s\\' which has already been injected. You may be accidentally ' +\n 'injecting the same DOM property config twice, or you may be ' +\n 'injecting two configs that have conflicting property names.',\n propName\n ) : invariant(!DOMProperty.isStandardName.hasOwnProperty(propName)));\n\n DOMProperty.isStandardName[propName] = true;\n\n var lowerCased = propName.toLowerCase();\n DOMProperty.getPossibleStandardName[lowerCased] = propName;\n\n if (DOMAttributeNames.hasOwnProperty(propName)) {\n var attributeName = DOMAttributeNames[propName];\n DOMProperty.getPossibleStandardName[attributeName] = propName;\n DOMProperty.getAttributeName[propName] = attributeName;\n } else {\n DOMProperty.getAttributeName[propName] = lowerCased;\n }\n\n DOMProperty.getPropertyName[propName] =\n DOMPropertyNames.hasOwnProperty(propName) ?\n DOMPropertyNames[propName] :\n propName;\n\n if (DOMMutationMethods.hasOwnProperty(propName)) {\n DOMProperty.getMutationMethod[propName] = DOMMutationMethods[propName];\n } else {\n DOMProperty.getMutationMethod[propName] = null;\n }\n\n var propConfig = Properties[propName];\n DOMProperty.mustUseAttribute[propName] =\n checkMask(propConfig, DOMPropertyInjection.MUST_USE_ATTRIBUTE);\n DOMProperty.mustUseProperty[propName] =\n checkMask(propConfig, DOMPropertyInjection.MUST_USE_PROPERTY);\n DOMProperty.hasSideEffects[propName] =\n checkMask(propConfig, DOMPropertyInjection.HAS_SIDE_EFFECTS);\n DOMProperty.hasBooleanValue[propName] =\n checkMask(propConfig, DOMPropertyInjection.HAS_BOOLEAN_VALUE);\n DOMProperty.hasNumericValue[propName] =\n checkMask(propConfig, DOMPropertyInjection.HAS_NUMERIC_VALUE);\n DOMProperty.hasPositiveNumericValue[propName] =\n checkMask(propConfig, DOMPropertyInjection.HAS_POSITIVE_NUMERIC_VALUE);\n DOMProperty.hasOverloadedBooleanValue[propName] =\n checkMask(propConfig, DOMPropertyInjection.HAS_OVERLOADED_BOOLEAN_VALUE);\n\n (\"production\" !== process.env.NODE_ENV ? invariant(\n !DOMProperty.mustUseAttribute[propName] ||\n !DOMProperty.mustUseProperty[propName],\n 'DOMProperty: Cannot require using both attribute and property: %s',\n propName\n ) : invariant(!DOMProperty.mustUseAttribute[propName] ||\n !DOMProperty.mustUseProperty[propName]));\n (\"production\" !== process.env.NODE_ENV ? invariant(\n DOMProperty.mustUseProperty[propName] ||\n !DOMProperty.hasSideEffects[propName],\n 'DOMProperty: Properties that have side effects must use property: %s',\n propName\n ) : invariant(DOMProperty.mustUseProperty[propName] ||\n !DOMProperty.hasSideEffects[propName]));\n (\"production\" !== process.env.NODE_ENV ? invariant(\n !!DOMProperty.hasBooleanValue[propName] +\n !!DOMProperty.hasNumericValue[propName] +\n !!DOMProperty.hasOverloadedBooleanValue[propName] <= 1,\n 'DOMProperty: Value can be one of boolean, overloaded boolean, or ' +\n 'numeric value, but not a combination: %s',\n propName\n ) : invariant(!!DOMProperty.hasBooleanValue[propName] +\n !!DOMProperty.hasNumericValue[propName] +\n !!DOMProperty.hasOverloadedBooleanValue[propName] <= 1));\n }\n }\n};\nvar defaultValueCache = {};\n\n/**\n * DOMProperty exports lookup objects that can be used like functions:\n *\n * > DOMProperty.isValid['id']\n * true\n * > DOMProperty.isValid['foobar']\n * undefined\n *\n * Although this may be confusing, it performs better in general.\n *\n * @see http://jsperf.com/key-exists\n * @see http://jsperf.com/key-missing\n */\nvar DOMProperty = {\n\n ID_ATTRIBUTE_NAME: 'data-reactid',\n\n /**\n * Checks whether a property name is a standard property.\n * @type {Object}\n */\n isStandardName: {},\n\n /**\n * Mapping from lowercase property names to the properly cased version, used\n * to warn in the case of missing properties.\n * @type {Object}\n */\n getPossibleStandardName: {},\n\n /**\n * Mapping from normalized names to attribute names that differ. Attribute\n * names are used when rendering markup or with `*Attribute()`.\n * @type {Object}\n */\n getAttributeName: {},\n\n /**\n * Mapping from normalized names to properties on DOM node instances.\n * (This includes properties that mutate due to external factors.)\n * @type {Object}\n */\n getPropertyName: {},\n\n /**\n * Mapping from normalized names to mutation methods. This will only exist if\n * mutation cannot be set simply by the property or `setAttribute()`.\n * @type {Object}\n */\n getMutationMethod: {},\n\n /**\n * Whether the property must be accessed and mutated as an object property.\n * @type {Object}\n */\n mustUseAttribute: {},\n\n /**\n * Whether the property must be accessed and mutated using `*Attribute()`.\n * (This includes anything that fails `<propName> in <element>`.)\n * @type {Object}\n */\n mustUseProperty: {},\n\n /**\n * Whether or not setting a value causes side effects such as triggering\n * resources to be loaded or text selection changes. We must ensure that\n * the value is only set if it has changed.\n * @type {Object}\n */\n hasSideEffects: {},\n\n /**\n * Whether the property should be removed when set to a falsey value.\n * @type {Object}\n */\n hasBooleanValue: {},\n\n /**\n * Whether the property must be numeric or parse as a\n * numeric and should be removed when set to a falsey value.\n * @type {Object}\n */\n hasNumericValue: {},\n\n /**\n * Whether the property must be positive numeric or parse as a positive\n * numeric and should be removed when set to a falsey value.\n * @type {Object}\n */\n hasPositiveNumericValue: {},\n\n /**\n * Whether the property can be used as a flag as well as with a value. Removed\n * when strictly equal to false; present without a value when strictly equal\n * to true; present with a value otherwise.\n * @type {Object}\n */\n hasOverloadedBooleanValue: {},\n\n /**\n * All of the isCustomAttribute() functions that have been injected.\n */\n _isCustomAttributeFunctions: [],\n\n /**\n * Checks whether a property name is a custom attribute.\n * @method\n */\n isCustomAttribute: function(attributeName) {\n for (var i = 0; i < DOMProperty._isCustomAttributeFunctions.length; i++) {\n var isCustomAttributeFn = DOMProperty._isCustomAttributeFunctions[i];\n if (isCustomAttributeFn(attributeName)) {\n return true;\n }\n }\n return false;\n },\n\n /**\n * Returns the default property value for a DOM property (i.e., not an\n * attribute). Most default values are '' or false, but not all. Worse yet,\n * some (in particular, `type`) vary depending on the type of element.\n *\n * TODO: Is it better to grab all the possible properties when creating an\n * element to avoid having to create the same element twice?\n */\n getDefaultValueForProperty: function(nodeName, prop) {\n var nodeDefaults = defaultValueCache[nodeName];\n var testElement;\n if (!nodeDefaults) {\n defaultValueCache[nodeName] = nodeDefaults = {};\n }\n if (!(prop in nodeDefaults)) {\n testElement = document.createElement(nodeName);\n nodeDefaults[prop] = testElement[prop];\n }\n return nodeDefaults[prop];\n },\n\n injection: DOMPropertyInjection\n};\n\nmodule.exports = DOMProperty;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/DOMProperty.js\n ** module id = 16\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/DOMProperty.js?");
  603. /***/ },
  604. /* 17 */
  605. /***/ function(module, exports, __webpack_require__) {
  606. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactBrowserEventEmitter\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar EventConstants = __webpack_require__(33);\nvar EventPluginHub = __webpack_require__(34);\nvar EventPluginRegistry = __webpack_require__(35);\nvar ReactEventEmitterMixin = __webpack_require__(36);\nvar ViewportMetrics = __webpack_require__(37);\n\nvar assign = __webpack_require__(38);\nvar isEventSupported = __webpack_require__(39);\n\n/**\n * Summary of `ReactBrowserEventEmitter` event handling:\n *\n * - Top-level delegation is used to trap most native browser events. This\n * may only occur in the main thread and is the responsibility of\n * ReactEventListener, which is injected and can therefore support pluggable\n * event sources. This is the only work that occurs in the main thread.\n *\n * - We normalize and de-duplicate events to account for browser quirks. This\n * may be done in the worker thread.\n *\n * - Forward these native events (with the associated top-level type used to\n * trap it) to `EventPluginHub`, which in turn will ask plugins if they want\n * to extract any synthetic events.\n *\n * - The `EventPluginHub` will then process each event by annotating them with\n * \"dispatches\", a sequence of listeners and IDs that care about that event.\n *\n * - The `EventPluginHub` then dispatches the events.\n *\n * Overview of React and the event system:\n *\n * +------------+ .\n * | DOM | .\n * +------------+ .\n * | .\n * v .\n * +------------+ .\n * | ReactEvent | .\n * | Listener | .\n * +------------+ . +-----------+\n * | . +--------+|SimpleEvent|\n * | . | |Plugin |\n * +-----|------+ . v +-----------+\n * | | | . +--------------+ +------------+\n * | +-----------.--->|EventPluginHub| | Event |\n * | | . | | +-----------+ | Propagators|\n * | ReactEvent | . | | |TapEvent | |------------|\n * | Emitter | . | |<---+|Plugin | |other plugin|\n * | | . | | +-----------+ | utilities |\n * | +-----------.--->| | +------------+\n * | | | . +--------------+\n * +-----|------+ . ^ +-----------+\n * | . | |Enter/Leave|\n * + . +-------+|Plugin |\n * +-------------+ . +-----------+\n * | application | .\n * |-------------| .\n * | | .\n * | | .\n * +-------------+ .\n * .\n * React Core . General Purpose Event Plugin System\n */\n\nvar alreadyListeningTo = {};\nvar isMonitoringScrollValue = false;\nvar reactTopListenersCounter = 0;\n\n// For events like 'submit' which don't consistently bubble (which we trap at a\n// lower node than `document`), binding at `document` would cause duplicate\n// events so we don't include them here\nvar topEventMapping = {\n topBlur: 'blur',\n topChange: 'change',\n topClick: 'click',\n topCompositionEnd: 'compositionend',\n topCompositionStart: 'compositionstart',\n topCompositionUpdate: 'compositionupdate',\n topContextMenu: 'contextmenu',\n topCopy: 'copy',\n topCut: 'cut',\n topDoubleClick: 'dblclick',\n topDrag: 'drag',\n topDragEnd: 'dragend',\n topDragEnter: 'dragenter',\n topDragExit: 'dragexit',\n topDragLeave: 'dragleave',\n topDragOver: 'dragover',\n topDragStart: 'dragstart',\n topDrop: 'drop',\n topFocus: 'focus',\n topInput: 'input',\n topKeyDown: 'keydown',\n topKeyPress: 'keypress',\n topKeyUp: 'keyup',\n topMouseDown: 'mousedown',\n topMouseMove: 'mousemove',\n topMouseOut: 'mouseout',\n topMouseOver: 'mouseover',\n topMouseUp: 'mouseup',\n topPaste: 'paste',\n topScroll: 'scroll',\n topSelectionChange: 'selectionchange',\n topTextInput: 'textInput',\n topTouchCancel: 'touchcancel',\n topTouchEnd: 'touchend',\n topTouchMove: 'touchmove',\n topTouchStart: 'touchstart',\n topWheel: 'wheel'\n};\n\n/**\n * To ensure no conflicts with other potential React instances on the page\n */\nvar topListenersIDKey = \"_reactListenersID\" + String(Math.random()).slice(2);\n\nfunction getListeningForDocument(mountAt) {\n // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty`\n // directly.\n if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) {\n mountAt[topListenersIDKey] = reactTopListenersCounter++;\n alreadyListeningTo[mountAt[topListenersIDKey]] = {};\n }\n return alreadyListeningTo[mountAt[topListenersIDKey]];\n}\n\n/**\n * `ReactBrowserEventEmitter` is used to attach top-level event listeners. For\n * example:\n *\n * ReactBrowserEventEmitter.putListener('myID', 'onClick', myFunction);\n *\n * This would allocate a \"registration\" of `('onClick', myFunction)` on 'myID'.\n *\n * @internal\n */\nvar ReactBrowserEventEmitter = assign({}, ReactEventEmitterMixin, {\n\n /**\n * Injectable event backend\n */\n ReactEventListener: null,\n\n injection: {\n /**\n * @param {object} ReactEventListener\n */\n injectReactEventListener: function(ReactEventListener) {\n ReactEventListener.setHandleTopLevel(\n ReactBrowserEventEmitter.handleTopLevel\n );\n ReactBrowserEventEmitter.ReactEventListener = ReactEventListener;\n }\n },\n\n /**\n * Sets whether or not any created callbacks should be enabled.\n *\n * @param {boolean} enabled True if callbacks should be enabled.\n */\n setEnabled: function(enabled) {\n if (ReactBrowserEventEmitter.ReactEventListener) {\n ReactBrowserEventEmitter.ReactEventListener.setEnabled(enabled);\n }\n },\n\n /**\n * @return {boolean} True if callbacks are enabled.\n */\n isEnabled: function() {\n return !!(\n ReactBrowserEventEmitter.ReactEventListener &&\n ReactBrowserEventEmitter.ReactEventListener.isEnabled()\n );\n },\n\n /**\n * We listen for bubbled touch events on the document object.\n *\n * Firefox v8.01 (and possibly others) exhibited strange behavior when\n * mounting `onmousemove` events at some node that was not the document\n * element. The symptoms were that if your mouse is not moving over something\n * contained within that mount point (for example on the background) the\n * top-level listeners for `onmousemove` won't be called. However, if you\n * register the `mousemove` on the document object, then it will of course\n * catch all `mousemove`s. This along with iOS quirks, justifies restricting\n * top-level listeners to the document object only, at least for these\n * movement types of events and possibly all events.\n *\n * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n *\n * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but\n * they bubble to document.\n *\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @param {object} contentDocumentHandle Document which owns the container\n */\n listenTo: function(registrationName, contentDocumentHandle) {\n var mountAt = contentDocumentHandle;\n var isListening = getListeningForDocument(mountAt);\n var dependencies = EventPluginRegistry.\n registrationNameDependencies[registrationName];\n\n var topLevelTypes = EventConstants.topLevelTypes;\n for (var i = 0, l = dependencies.length; i < l; i++) {\n var dependency = dependencies[i];\n if (!(\n isListening.hasOwnProperty(dependency) &&\n isListening[dependency]\n )) {\n if (dependency === topLevelTypes.topWheel) {\n if (isEventSupported('wheel')) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(\n topLevelTypes.topWheel,\n 'wheel',\n mountAt\n );\n } else if (isEventSupported('mousewheel')) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(\n topLevelTypes.topWheel,\n 'mousewheel',\n mountAt\n );\n } else {\n // Firefox needs to capture a different mouse scroll event.\n // @see http://www.quirksmode.org/dom/events/tests/scroll.html\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(\n topLevelTypes.topWheel,\n 'DOMMouseScroll',\n mountAt\n );\n }\n } else if (dependency === topLevelTypes.topScroll) {\n\n if (isEventSupported('scroll', true)) {\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(\n topLevelTypes.topScroll,\n 'scroll',\n mountAt\n );\n } else {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(\n topLevelTypes.topScroll,\n 'scroll',\n ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE\n );\n }\n } else if (dependency === topLevelTypes.topFocus ||\n dependency === topLevelTypes.topBlur) {\n\n if (isEventSupported('focus', true)) {\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(\n topLevelTypes.topFocus,\n 'focus',\n mountAt\n );\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(\n topLevelTypes.topBlur,\n 'blur',\n mountAt\n );\n } else if (isEventSupported('focusin')) {\n // IE has `focusin` and `focusout` events which bubble.\n // @see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(\n topLevelTypes.topFocus,\n 'focusin',\n mountAt\n );\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(\n topLevelTypes.topBlur,\n 'focusout',\n mountAt\n );\n }\n\n // to make sure blur and focus event listeners are only attached once\n isListening[topLevelTypes.topBlur] = true;\n isListening[topLevelTypes.topFocus] = true;\n } else if (topEventMapping.hasOwnProperty(dependency)) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(\n dependency,\n topEventMapping[dependency],\n mountAt\n );\n }\n\n isListening[dependency] = true;\n }\n }\n },\n\n trapBubbledEvent: function(topLevelType, handlerBaseName, handle) {\n return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(\n topLevelType,\n handlerBaseName,\n handle\n );\n },\n\n trapCapturedEvent: function(topLevelType, handlerBaseName, handle) {\n return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(\n topLevelType,\n handlerBaseName,\n handle\n );\n },\n\n /**\n * Listens to window scroll and resize events. We cache scroll values so that\n * application code can access them without triggering reflows.\n *\n * NOTE: Scroll events do not bubble.\n *\n * @see http://www.quirksmode.org/dom/events/scroll.html\n */\n ensureScrollValueMonitoring: function(){\n if (!isMonitoringScrollValue) {\n var refresh = ViewportMetrics.refreshScrollValues;\n ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh);\n isMonitoringScrollValue = true;\n }\n },\n\n eventNameDispatchConfigs: EventPluginHub.eventNameDispatchConfigs,\n\n registrationNameModules: EventPluginHub.registrationNameModules,\n\n putListener: EventPluginHub.putListener,\n\n getListener: EventPluginHub.getListener,\n\n deleteListener: EventPluginHub.deleteListener,\n\n deleteAllListeners: EventPluginHub.deleteAllListeners\n\n});\n\nmodule.exports = ReactBrowserEventEmitter;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactBrowserEventEmitter.js\n ** module id = 17\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactBrowserEventEmitter.js?");
  607. /***/ },
  608. /* 18 */
  609. /***/ function(module, exports, __webpack_require__) {
  610. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactCurrentOwner\n */\n\n\"use strict\";\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n *\n * The depth indicate how many composite components are above this render level.\n */\nvar ReactCurrentOwner = {\n\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n\n};\n\nmodule.exports = ReactCurrentOwner;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactCurrentOwner.js\n ** module id = 18\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactCurrentOwner.js?");
  611. /***/ },
  612. /* 19 */
  613. /***/ function(module, exports, __webpack_require__) {
  614. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactElement\n */\n\n\"use strict\";\n\nvar ReactContext = __webpack_require__(40);\nvar ReactCurrentOwner = __webpack_require__(18);\n\nvar warning = __webpack_require__(29);\n\nvar RESERVED_PROPS = {\n key: true,\n ref: true\n};\n\n/**\n * Warn for mutations.\n *\n * @internal\n * @param {object} object\n * @param {string} key\n */\nfunction defineWarningProperty(object, key) {\n Object.defineProperty(object, key, {\n\n configurable: false,\n enumerable: true,\n\n get: function() {\n if (!this._store) {\n return null;\n }\n return this._store[key];\n },\n\n set: function(value) {\n (\"production\" !== process.env.NODE_ENV ? warning(\n false,\n 'Don\\'t set the ' + key + ' property of the component. ' +\n 'Mutate the existing props object instead.'\n ) : null);\n this._store[key] = value;\n }\n\n });\n}\n\n/**\n * This is updated to true if the membrane is successfully created.\n */\nvar useMutationMembrane = false;\n\n/**\n * Warn for mutations.\n *\n * @internal\n * @param {object} element\n */\nfunction defineMutationMembrane(prototype) {\n try {\n var pseudoFrozenProperties = {\n props: true\n };\n for (var key in pseudoFrozenProperties) {\n defineWarningProperty(prototype, key);\n }\n useMutationMembrane = true;\n } catch (x) {\n // IE will fail on defineProperty\n }\n}\n\n/**\n * Base constructor for all React elements. This is only used to make this\n * work with a dynamic instanceof check. Nothing should live on this prototype.\n *\n * @param {*} type\n * @param {string|object} ref\n * @param {*} key\n * @param {*} props\n * @internal\n */\nvar ReactElement = function(type, key, ref, owner, context, props) {\n // Built-in properties that belong on the element\n this.type = type;\n this.key = key;\n this.ref = ref;\n\n // Record the component responsible for creating this element.\n this._owner = owner;\n\n // TODO: Deprecate withContext, and then the context becomes accessible\n // through the owner.\n this._context = context;\n\n if (\"production\" !== process.env.NODE_ENV) {\n // The validation flag and props are currently mutative. We put them on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n this._store = { validated: false, props: props };\n\n // We're not allowed to set props directly on the object so we early\n // return and rely on the prototype membrane to forward to the backing\n // store.\n if (useMutationMembrane) {\n Object.freeze(this);\n return;\n }\n }\n\n this.props = props;\n};\n\n// We intentionally don't expose the function on the constructor property.\n// ReactElement should be indistinguishable from a plain object.\nReactElement.prototype = {\n _isReactElement: true\n};\n\nif (\"production\" !== process.env.NODE_ENV) {\n defineMutationMembrane(ReactElement.prototype);\n}\n\nReactElement.createElement = function(type, config, children) {\n var propName;\n\n // Reserved names are extracted\n var props = {};\n\n var key = null;\n var ref = null;\n\n if (config != null) {\n ref = config.ref === undefined ? null : config.ref;\n if (\"production\" !== process.env.NODE_ENV) {\n (\"production\" !== process.env.NODE_ENV ? warning(\n config.key !== null,\n 'createElement(...): Encountered component with a `key` of null. In ' +\n 'a future version, this will be treated as equivalent to the string ' +\n '\\'null\\'; instead, provide an explicit key or use undefined.'\n ) : null);\n }\n // TODO: Change this back to `config.key === undefined`\n key = config.key == null ? null : '' + config.key;\n // Remaining properties are added to a new props object\n for (propName in config) {\n if (config.hasOwnProperty(propName) &&\n !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n }\n\n // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n props.children = childArray;\n }\n\n // Resolve default props\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n for (propName in defaultProps) {\n if (typeof props[propName] === 'undefined') {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n return new ReactElement(\n type,\n key,\n ref,\n ReactCurrentOwner.current,\n ReactContext.current,\n props\n );\n};\n\nReactElement.createFactory = function(type) {\n var factory = ReactElement.createElement.bind(null, type);\n // Expose the type on the factory and the prototype so that it can be\n // easily accessed on elements. E.g. <Foo />.type === Foo.type.\n // This should not be named `constructor` since this may not be the function\n // that created the element, and it may not even be a constructor.\n factory.type = type;\n return factory;\n};\n\nReactElement.cloneAndReplaceProps = function(oldElement, newProps) {\n var newElement = new ReactElement(\n oldElement.type,\n oldElement.key,\n oldElement.ref,\n oldElement._owner,\n oldElement._context,\n newProps\n );\n\n if (\"production\" !== process.env.NODE_ENV) {\n // If the key on the original is valid, then the clone is valid\n newElement._store.validated = oldElement._store.validated;\n }\n return newElement;\n};\n\n/**\n * @param {?object} object\n * @return {boolean} True if `object` is a valid component.\n * @final\n */\nReactElement.isValidElement = function(object) {\n // ReactTestUtils is often used outside of beforeEach where as React is\n // within it. This leads to two different instances of React on the same\n // page. To identify a element from a different React instance we use\n // a flag instead of an instanceof check.\n var isElement = !!(object && object._isReactElement);\n // if (isElement && !(object instanceof ReactElement)) {\n // This is an indicator that you're using multiple versions of React at the\n // same time. This will screw with ownership and stuff. Fix it, please.\n // TODO: We could possibly warn here.\n // }\n return isElement;\n};\n\nmodule.exports = ReactElement;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactElement.js\n ** module id = 19\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactElement.js?");
  615. /***/ },
  616. /* 20 */
  617. /***/ function(module, exports, __webpack_require__) {
  618. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactLegacyElement\n */\n\n\"use strict\";\n\nvar ReactCurrentOwner = __webpack_require__(18);\n\nvar invariant = __webpack_require__(27);\nvar monitorCodeUse = __webpack_require__(41);\nvar warning = __webpack_require__(29);\n\nvar legacyFactoryLogs = {};\nfunction warnForLegacyFactoryCall() {\n if (!ReactLegacyElementFactory._isLegacyCallWarningEnabled) {\n return;\n }\n var owner = ReactCurrentOwner.current;\n var name = owner && owner.constructor ? owner.constructor.displayName : '';\n if (!name) {\n name = 'Something';\n }\n if (legacyFactoryLogs.hasOwnProperty(name)) {\n return;\n }\n legacyFactoryLogs[name] = true;\n (\"production\" !== process.env.NODE_ENV ? warning(\n false,\n name + ' is calling a React component directly. ' +\n 'Use a factory or JSX instead. See: http://fb.me/react-legacyfactory'\n ) : null);\n monitorCodeUse('react_legacy_factory_call', { version: 3, name: name });\n}\n\nfunction warnForPlainFunctionType(type) {\n var isReactClass =\n type.prototype &&\n typeof type.prototype.mountComponent === 'function' &&\n typeof type.prototype.receiveComponent === 'function';\n if (isReactClass) {\n (\"production\" !== process.env.NODE_ENV ? warning(\n false,\n 'Did not expect to get a React class here. Use `Component` instead ' +\n 'of `Component.type` or `this.constructor`.'\n ) : null);\n } else {\n if (!type._reactWarnedForThisType) {\n try {\n type._reactWarnedForThisType = true;\n } catch (x) {\n // just incase this is a frozen object or some special object\n }\n monitorCodeUse(\n 'react_non_component_in_jsx',\n { version: 3, name: type.name }\n );\n }\n (\"production\" !== process.env.NODE_ENV ? warning(\n false,\n 'This JSX uses a plain function. Only React components are ' +\n 'valid in React\\'s JSX transform.'\n ) : null);\n }\n}\n\nfunction warnForNonLegacyFactory(type) {\n (\"production\" !== process.env.NODE_ENV ? warning(\n false,\n 'Do not pass React.DOM.' + type.type + ' to JSX or createFactory. ' +\n 'Use the string \"' + type.type + '\" instead.'\n ) : null);\n}\n\n/**\n * Transfer static properties from the source to the target. Functions are\n * rebound to have this reflect the original source.\n */\nfunction proxyStaticMethods(target, source) {\n if (typeof source !== 'function') {\n return;\n }\n for (var key in source) {\n if (source.hasOwnProperty(key)) {\n var value = source[key];\n if (typeof value === 'function') {\n var bound = value.bind(source);\n // Copy any properties defined on the function, such as `isRequired` on\n // a PropTypes validator.\n for (var k in value) {\n if (value.hasOwnProperty(k)) {\n bound[k] = value[k];\n }\n }\n target[key] = bound;\n } else {\n target[key] = value;\n }\n }\n }\n}\n\n// We use an object instead of a boolean because booleans are ignored by our\n// mocking libraries when these factories gets mocked.\nvar LEGACY_MARKER = {};\nvar NON_LEGACY_MARKER = {};\n\nvar ReactLegacyElementFactory = {};\n\nReactLegacyElementFactory.wrapCreateFactory = function(createFactory) {\n var legacyCreateFactory = function(type) {\n if (typeof type !== 'function') {\n // Non-function types cannot be legacy factories\n return createFactory(type);\n }\n\n if (type.isReactNonLegacyFactory) {\n // This is probably a factory created by ReactDOM we unwrap it to get to\n // the underlying string type. It shouldn't have been passed here so we\n // warn.\n if (\"production\" !== process.env.NODE_ENV) {\n warnForNonLegacyFactory(type);\n }\n return createFactory(type.type);\n }\n\n if (type.isReactLegacyFactory) {\n // This is probably a legacy factory created by ReactCompositeComponent.\n // We unwrap it to get to the underlying class.\n return createFactory(type.type);\n }\n\n if (\"production\" !== process.env.NODE_ENV) {\n warnForPlainFunctionType(type);\n }\n\n // Unless it's a legacy factory, then this is probably a plain function,\n // that is expecting to be invoked by JSX. We can just return it as is.\n return type;\n };\n return legacyCreateFactory;\n};\n\nReactLegacyElementFactory.wrapCreateElement = function(createElement) {\n var legacyCreateElement = function(type, props, children) {\n if (typeof type !== 'function') {\n // Non-function types cannot be legacy factories\n return createElement.apply(this, arguments);\n }\n\n var args;\n\n if (type.isReactNonLegacyFactory) {\n // This is probably a factory created by ReactDOM we unwrap it to get to\n // the underlying string type. It shouldn't have been passed here so we\n // warn.\n if (\"production\" !== process.env.NODE_ENV) {\n warnForNonLegacyFactory(type);\n }\n args = Array.prototype.slice.call(arguments, 0);\n args[0] = type.type;\n return createElement.apply(this, args);\n }\n\n if (type.isReactLegacyFactory) {\n // This is probably a legacy factory created by ReactCompositeComponent.\n // We unwrap it to get to the underlying class.\n if (type._isMockFunction) {\n // If this is a mock function, people will expect it to be called. We\n // will actually call the original mock factory function instead. This\n // future proofs unit testing that assume that these are classes.\n type.type._mockedReactClassConstructor = type;\n }\n args = Array.prototype.slice.call(arguments, 0);\n args[0] = type.type;\n return createElement.apply(this, args);\n }\n\n if (\"production\" !== process.env.NODE_ENV) {\n warnForPlainFunctionType(type);\n }\n\n // This is being called with a plain function we should invoke it\n // immediately as if this was used with legacy JSX.\n return type.apply(null, Array.prototype.slice.call(arguments, 1));\n };\n return legacyCreateElement;\n};\n\nReactLegacyElementFactory.wrapFactory = function(factory) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n typeof factory === 'function',\n 'This is suppose to accept a element factory'\n ) : invariant(typeof factory === 'function'));\n var legacyElementFactory = function(config, children) {\n // This factory should not be called when JSX is used. Use JSX instead.\n if (\"production\" !== process.env.NODE_ENV) {\n warnForLegacyFactoryCall();\n }\n return factory.apply(this, arguments);\n };\n proxyStaticMethods(legacyElementFactory, factory.type);\n legacyElementFactory.isReactLegacyFactory = LEGACY_MARKER;\n legacyElementFactory.type = factory.type;\n return legacyElementFactory;\n};\n\n// This is used to mark a factory that will remain. E.g. we're allowed to call\n// it as a function. However, you're not suppose to pass it to createElement\n// or createFactory, so it will warn you if you do.\nReactLegacyElementFactory.markNonLegacyFactory = function(factory) {\n factory.isReactNonLegacyFactory = NON_LEGACY_MARKER;\n return factory;\n};\n\n// Checks if a factory function is actually a legacy factory pretending to\n// be a class.\nReactLegacyElementFactory.isValidFactory = function(factory) {\n // TODO: This will be removed and moved into a class validator or something.\n return typeof factory === 'function' &&\n factory.isReactLegacyFactory === LEGACY_MARKER;\n};\n\nReactLegacyElementFactory.isValidClass = function(factory) {\n if (\"production\" !== process.env.NODE_ENV) {\n (\"production\" !== process.env.NODE_ENV ? warning(\n false,\n 'isValidClass is deprecated and will be removed in a future release. ' +\n 'Use a more specific validator instead.'\n ) : null);\n }\n return ReactLegacyElementFactory.isValidFactory(factory);\n};\n\nReactLegacyElementFactory._isLegacyCallWarningEnabled = true;\n\nmodule.exports = ReactLegacyElementFactory;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactLegacyElement.js\n ** module id = 20\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactLegacyElement.js?");
  619. /***/ },
  620. /* 21 */
  621. /***/ function(module, exports, __webpack_require__) {
  622. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInstanceHandles\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar ReactRootIndex = __webpack_require__(42);\n\nvar invariant = __webpack_require__(27);\n\nvar SEPARATOR = '.';\nvar SEPARATOR_LENGTH = SEPARATOR.length;\n\n/**\n * Maximum depth of traversals before we consider the possibility of a bad ID.\n */\nvar MAX_TREE_DEPTH = 100;\n\n/**\n * Creates a DOM ID prefix to use when mounting React components.\n *\n * @param {number} index A unique integer\n * @return {string} React root ID.\n * @internal\n */\nfunction getReactRootIDString(index) {\n return SEPARATOR + index.toString(36);\n}\n\n/**\n * Checks if a character in the supplied ID is a separator or the end.\n *\n * @param {string} id A React DOM ID.\n * @param {number} index Index of the character to check.\n * @return {boolean} True if the character is a separator or end of the ID.\n * @private\n */\nfunction isBoundary(id, index) {\n return id.charAt(index) === SEPARATOR || index === id.length;\n}\n\n/**\n * Checks if the supplied string is a valid React DOM ID.\n *\n * @param {string} id A React DOM ID, maybe.\n * @return {boolean} True if the string is a valid React DOM ID.\n * @private\n */\nfunction isValidID(id) {\n return id === '' || (\n id.charAt(0) === SEPARATOR && id.charAt(id.length - 1) !== SEPARATOR\n );\n}\n\n/**\n * Checks if the first ID is an ancestor of or equal to the second ID.\n *\n * @param {string} ancestorID\n * @param {string} descendantID\n * @return {boolean} True if `ancestorID` is an ancestor of `descendantID`.\n * @internal\n */\nfunction isAncestorIDOf(ancestorID, descendantID) {\n return (\n descendantID.indexOf(ancestorID) === 0 &&\n isBoundary(descendantID, ancestorID.length)\n );\n}\n\n/**\n * Gets the parent ID of the supplied React DOM ID, `id`.\n *\n * @param {string} id ID of a component.\n * @return {string} ID of the parent, or an empty string.\n * @private\n */\nfunction getParentID(id) {\n return id ? id.substr(0, id.lastIndexOf(SEPARATOR)) : '';\n}\n\n/**\n * Gets the next DOM ID on the tree path from the supplied `ancestorID` to the\n * supplied `destinationID`. If they are equal, the ID is returned.\n *\n * @param {string} ancestorID ID of an ancestor node of `destinationID`.\n * @param {string} destinationID ID of the destination node.\n * @return {string} Next ID on the path from `ancestorID` to `destinationID`.\n * @private\n */\nfunction getNextDescendantID(ancestorID, destinationID) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n isValidID(ancestorID) && isValidID(destinationID),\n 'getNextDescendantID(%s, %s): Received an invalid React DOM ID.',\n ancestorID,\n destinationID\n ) : invariant(isValidID(ancestorID) && isValidID(destinationID)));\n (\"production\" !== process.env.NODE_ENV ? invariant(\n isAncestorIDOf(ancestorID, destinationID),\n 'getNextDescendantID(...): React has made an invalid assumption about ' +\n 'the DOM hierarchy. Expected `%s` to be an ancestor of `%s`.',\n ancestorID,\n destinationID\n ) : invariant(isAncestorIDOf(ancestorID, destinationID)));\n if (ancestorID === destinationID) {\n return ancestorID;\n }\n // Skip over the ancestor and the immediate separator. Traverse until we hit\n // another separator or we reach the end of `destinationID`.\n var start = ancestorID.length + SEPARATOR_LENGTH;\n for (var i = start; i < destinationID.length; i++) {\n if (isBoundary(destinationID, i)) {\n break;\n }\n }\n return destinationID.substr(0, i);\n}\n\n/**\n * Gets the nearest common ancestor ID of two IDs.\n *\n * Using this ID scheme, the nearest common ancestor ID is the longest common\n * prefix of the two IDs that immediately preceded a \"marker\" in both strings.\n *\n * @param {string} oneID\n * @param {string} twoID\n * @return {string} Nearest common ancestor ID, or the empty string if none.\n * @private\n */\nfunction getFirstCommonAncestorID(oneID, twoID) {\n var minLength = Math.min(oneID.length, twoID.length);\n if (minLength === 0) {\n return '';\n }\n var lastCommonMarkerIndex = 0;\n // Use `<=` to traverse until the \"EOL\" of the shorter string.\n for (var i = 0; i <= minLength; i++) {\n if (isBoundary(oneID, i) && isBoundary(twoID, i)) {\n lastCommonMarkerIndex = i;\n } else if (oneID.charAt(i) !== twoID.charAt(i)) {\n break;\n }\n }\n var longestCommonID = oneID.substr(0, lastCommonMarkerIndex);\n (\"production\" !== process.env.NODE_ENV ? invariant(\n isValidID(longestCommonID),\n 'getFirstCommonAncestorID(%s, %s): Expected a valid React DOM ID: %s',\n oneID,\n twoID,\n longestCommonID\n ) : invariant(isValidID(longestCommonID)));\n return longestCommonID;\n}\n\n/**\n * Traverses the parent path between two IDs (either up or down). The IDs must\n * not be the same, and there must exist a parent path between them. If the\n * callback returns `false`, traversal is stopped.\n *\n * @param {?string} start ID at which to start traversal.\n * @param {?string} stop ID at which to end traversal.\n * @param {function} cb Callback to invoke each ID with.\n * @param {?boolean} skipFirst Whether or not to skip the first node.\n * @param {?boolean} skipLast Whether or not to skip the last node.\n * @private\n */\nfunction traverseParentPath(start, stop, cb, arg, skipFirst, skipLast) {\n start = start || '';\n stop = stop || '';\n (\"production\" !== process.env.NODE_ENV ? invariant(\n start !== stop,\n 'traverseParentPath(...): Cannot traverse from and to the same ID, `%s`.',\n start\n ) : invariant(start !== stop));\n var traverseUp = isAncestorIDOf(stop, start);\n (\"production\" !== process.env.NODE_ENV ? invariant(\n traverseUp || isAncestorIDOf(start, stop),\n 'traverseParentPath(%s, %s, ...): Cannot traverse from two IDs that do ' +\n 'not have a parent path.',\n start,\n stop\n ) : invariant(traverseUp || isAncestorIDOf(start, stop)));\n // Traverse from `start` to `stop` one depth at a time.\n var depth = 0;\n var traverse = traverseUp ? getParentID : getNextDescendantID;\n for (var id = start; /* until break */; id = traverse(id, stop)) {\n var ret;\n if ((!skipFirst || id !== start) && (!skipLast || id !== stop)) {\n ret = cb(id, traverseUp, arg);\n }\n if (ret === false || id === stop) {\n // Only break //after// visiting `stop`.\n break;\n }\n (\"production\" !== process.env.NODE_ENV ? invariant(\n depth++ < MAX_TREE_DEPTH,\n 'traverseParentPath(%s, %s, ...): Detected an infinite loop while ' +\n 'traversing the React DOM ID tree. This may be due to malformed IDs: %s',\n start, stop\n ) : invariant(depth++ < MAX_TREE_DEPTH));\n }\n}\n\n/**\n * Manages the IDs assigned to DOM representations of React components. This\n * uses a specific scheme in order to traverse the DOM efficiently (e.g. in\n * order to simulate events).\n *\n * @internal\n */\nvar ReactInstanceHandles = {\n\n /**\n * Constructs a React root ID\n * @return {string} A React root ID.\n */\n createReactRootID: function() {\n return getReactRootIDString(ReactRootIndex.createReactRootIndex());\n },\n\n /**\n * Constructs a React ID by joining a root ID with a name.\n *\n * @param {string} rootID Root ID of a parent component.\n * @param {string} name A component's name (as flattened children).\n * @return {string} A React ID.\n * @internal\n */\n createReactID: function(rootID, name) {\n return rootID + name;\n },\n\n /**\n * Gets the DOM ID of the React component that is the root of the tree that\n * contains the React component with the supplied DOM ID.\n *\n * @param {string} id DOM ID of a React component.\n * @return {?string} DOM ID of the React component that is the root.\n * @internal\n */\n getReactRootIDFromNodeID: function(id) {\n if (id && id.charAt(0) === SEPARATOR && id.length > 1) {\n var index = id.indexOf(SEPARATOR, 1);\n return index > -1 ? id.substr(0, index) : id;\n }\n return null;\n },\n\n /**\n * Traverses the ID hierarchy and invokes the supplied `cb` on any IDs that\n * should would receive a `mouseEnter` or `mouseLeave` event.\n *\n * NOTE: Does not invoke the callback on the nearest common ancestor because\n * nothing \"entered\" or \"left\" that element.\n *\n * @param {string} leaveID ID being left.\n * @param {string} enterID ID being entered.\n * @param {function} cb Callback to invoke on each entered/left ID.\n * @param {*} upArg Argument to invoke the callback with on left IDs.\n * @param {*} downArg Argument to invoke the callback with on entered IDs.\n * @internal\n */\n traverseEnterLeave: function(leaveID, enterID, cb, upArg, downArg) {\n var ancestorID = getFirstCommonAncestorID(leaveID, enterID);\n if (ancestorID !== leaveID) {\n traverseParentPath(leaveID, ancestorID, cb, upArg, false, true);\n }\n if (ancestorID !== enterID) {\n traverseParentPath(ancestorID, enterID, cb, downArg, true, false);\n }\n },\n\n /**\n * Simulates the traversal of a two-phase, capture/bubble event dispatch.\n *\n * NOTE: This traversal happens on IDs without touching the DOM.\n *\n * @param {string} targetID ID of the target node.\n * @param {function} cb Callback to invoke.\n * @param {*} arg Argument to invoke the callback with.\n * @internal\n */\n traverseTwoPhase: function(targetID, cb, arg) {\n if (targetID) {\n traverseParentPath('', targetID, cb, arg, true, false);\n traverseParentPath(targetID, '', cb, arg, false, true);\n }\n },\n\n /**\n * Traverse a node ID, calling the supplied `cb` for each ancestor ID. For\n * example, passing `.0.$row-0.1` would result in `cb` getting called\n * with `.0`, `.0.$row-0`, and `.0.$row-0.1`.\n *\n * NOTE: This traversal happens on IDs without touching the DOM.\n *\n * @param {string} targetID ID of the target node.\n * @param {function} cb Callback to invoke.\n * @param {*} arg Argument to invoke the callback with.\n * @internal\n */\n traverseAncestors: function(targetID, cb, arg) {\n traverseParentPath('', targetID, cb, arg, true, false);\n },\n\n /**\n * Exposed for unit testing.\n * @private\n */\n _getFirstCommonAncestorID: getFirstCommonAncestorID,\n\n /**\n * Exposed for unit testing.\n * @private\n */\n _getNextDescendantID: getNextDescendantID,\n\n isAncestorIDOf: isAncestorIDOf,\n\n SEPARATOR: SEPARATOR\n\n};\n\nmodule.exports = ReactInstanceHandles;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactInstanceHandles.js\n ** module id = 21\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactInstanceHandles.js?");
  623. /***/ },
  624. /* 22 */
  625. /***/ function(module, exports, __webpack_require__) {
  626. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPerf\n * @typechecks static-only\n */\n\n\"use strict\";\n\n/**\n * ReactPerf is a general AOP system designed to measure performance. This\n * module only has the hooks: see ReactDefaultPerf for the analysis tool.\n */\nvar ReactPerf = {\n /**\n * Boolean to enable/disable measurement. Set to false by default to prevent\n * accidental logging and perf loss.\n */\n enableMeasure: false,\n\n /**\n * Holds onto the measure function in use. By default, don't measure\n * anything, but we'll override this if we inject a measure function.\n */\n storedMeasure: _noMeasure,\n\n /**\n * Use this to wrap methods you want to measure. Zero overhead in production.\n *\n * @param {string} objName\n * @param {string} fnName\n * @param {function} func\n * @return {function}\n */\n measure: function(objName, fnName, func) {\n if (\"production\" !== process.env.NODE_ENV) {\n var measuredFunc = null;\n var wrapper = function() {\n if (ReactPerf.enableMeasure) {\n if (!measuredFunc) {\n measuredFunc = ReactPerf.storedMeasure(objName, fnName, func);\n }\n return measuredFunc.apply(this, arguments);\n }\n return func.apply(this, arguments);\n };\n wrapper.displayName = objName + '_' + fnName;\n return wrapper;\n }\n return func;\n },\n\n injection: {\n /**\n * @param {function} measure\n */\n injectMeasure: function(measure) {\n ReactPerf.storedMeasure = measure;\n }\n }\n};\n\n/**\n * Simply passes through the measured function, without measuring it.\n *\n * @param {string} objName\n * @param {string} fnName\n * @param {function} func\n * @return {function}\n */\nfunction _noMeasure(objName, fnName, func) {\n return func;\n}\n\nmodule.exports = ReactPerf;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactPerf.js\n ** module id = 22\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactPerf.js?");
  627. /***/ },
  628. /* 23 */
  629. /***/ function(module, exports, __webpack_require__) {
  630. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule containsNode\n * @typechecks\n */\n\nvar isTextNode = __webpack_require__(43);\n\n/*jslint bitwise:true */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n *\n * @param {?DOMNode} outerNode Outer DOM node.\n * @param {?DOMNode} innerNode Inner DOM node.\n * @return {boolean} True if `outerNode` contains or is `innerNode`.\n */\nfunction containsNode(outerNode, innerNode) {\n if (!outerNode || !innerNode) {\n return false;\n } else if (outerNode === innerNode) {\n return true;\n } else if (isTextNode(outerNode)) {\n return false;\n } else if (isTextNode(innerNode)) {\n return containsNode(outerNode, innerNode.parentNode);\n } else if (outerNode.contains) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nmodule.exports = containsNode;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/containsNode.js\n ** module id = 23\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/containsNode.js?");
  631. /***/ },
  632. /* 24 */
  633. /***/ function(module, exports, __webpack_require__) {
  634. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule deprecated\n */\n\nvar assign = __webpack_require__(38);\nvar warning = __webpack_require__(29);\n\n/**\n * This will log a single deprecation notice per function and forward the call\n * on to the new API.\n *\n * @param {string} namespace The namespace of the call, eg 'React'\n * @param {string} oldName The old function name, eg 'renderComponent'\n * @param {string} newName The new function name, eg 'render'\n * @param {*} ctx The context this forwarded call should run in\n * @param {function} fn The function to forward on to\n * @return {*} Will be the value as returned from `fn`\n */\nfunction deprecated(namespace, oldName, newName, ctx, fn) {\n var warned = false;\n if (\"production\" !== process.env.NODE_ENV) {\n var newFn = function() {\n (\"production\" !== process.env.NODE_ENV ? warning(\n warned,\n (namespace + \".\" + oldName + \" will be deprecated in a future version. \") +\n (\"Use \" + namespace + \".\" + newName + \" instead.\")\n ) : null);\n warned = true;\n return fn.apply(ctx, arguments);\n };\n newFn.displayName = (namespace + \"_\" + oldName);\n // We need to make sure all properties of the original fn are copied over.\n // In particular, this is needed to support PropTypes\n return assign(newFn, fn);\n }\n\n return fn;\n}\n\nmodule.exports = deprecated;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/deprecated.js\n ** module id = 24\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/deprecated.js?");
  635. /***/ },
  636. /* 25 */
  637. /***/ function(module, exports, __webpack_require__) {
  638. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getReactRootElementInContainer\n */\n\n\"use strict\";\n\nvar DOC_NODE_TYPE = 9;\n\n/**\n * @param {DOMElement|DOMDocument} container DOM element that may contain\n * a React component\n * @return {?*} DOM element that may have the reactRoot ID, or null.\n */\nfunction getReactRootElementInContainer(container) {\n if (!container) {\n return null;\n }\n\n if (container.nodeType === DOC_NODE_TYPE) {\n return container.documentElement;\n } else {\n return container.firstChild;\n }\n}\n\nmodule.exports = getReactRootElementInContainer;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/getReactRootElementInContainer.js\n ** module id = 25\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/getReactRootElementInContainer.js?");
  639. /***/ },
  640. /* 26 */
  641. /***/ function(module, exports, __webpack_require__) {
  642. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule instantiateReactComponent\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar warning = __webpack_require__(29);\n\nvar ReactElement = __webpack_require__(19);\nvar ReactLegacyElement = __webpack_require__(20);\nvar ReactNativeComponent = __webpack_require__(44);\nvar ReactEmptyComponent = __webpack_require__(45);\n\n/**\n * Given an `element` create an instance that will actually be mounted.\n *\n * @param {object} element\n * @param {*} parentCompositeType The composite type that resolved this.\n * @return {object} A new instance of the element's constructor.\n * @protected\n */\nfunction instantiateReactComponent(element, parentCompositeType) {\n var instance;\n\n if (\"production\" !== process.env.NODE_ENV) {\n (\"production\" !== process.env.NODE_ENV ? warning(\n element && (typeof element.type === 'function' ||\n typeof element.type === 'string'),\n 'Only functions or strings can be mounted as React components.'\n ) : null);\n\n // Resolve mock instances\n if (element.type._mockedReactClassConstructor) {\n // If this is a mocked class, we treat the legacy factory as if it was the\n // class constructor for future proofing unit tests. Because this might\n // be mocked as a legacy factory, we ignore any warnings triggerd by\n // this temporary hack.\n ReactLegacyElement._isLegacyCallWarningEnabled = false;\n try {\n instance = new element.type._mockedReactClassConstructor(\n element.props\n );\n } finally {\n ReactLegacyElement._isLegacyCallWarningEnabled = true;\n }\n\n // If the mock implementation was a legacy factory, then it returns a\n // element. We need to turn this into a real component instance.\n if (ReactElement.isValidElement(instance)) {\n instance = new instance.type(instance.props);\n }\n\n var render = instance.render;\n if (!render) {\n // For auto-mocked factories, the prototype isn't shimmed and therefore\n // there is no render function on the instance. We replace the whole\n // component with an empty component instance instead.\n element = ReactEmptyComponent.getEmptyComponent();\n } else {\n if (render._isMockFunction && !render._getMockImplementation()) {\n // Auto-mocked components may have a prototype with a mocked render\n // function. For those, we'll need to mock the result of the render\n // since we consider undefined to be invalid results from render.\n render.mockImplementation(\n ReactEmptyComponent.getEmptyComponent\n );\n }\n instance.construct(element);\n return instance;\n }\n }\n }\n\n // Special case string values\n if (typeof element.type === 'string') {\n instance = ReactNativeComponent.createInstanceForTag(\n element.type,\n element.props,\n parentCompositeType\n );\n } else {\n // Normal case for non-mocks and non-strings\n instance = new element.type(element.props);\n }\n\n if (\"production\" !== process.env.NODE_ENV) {\n (\"production\" !== process.env.NODE_ENV ? warning(\n typeof instance.construct === 'function' &&\n typeof instance.mountComponent === 'function' &&\n typeof instance.receiveComponent === 'function',\n 'Only React Components can be mounted.'\n ) : null);\n }\n\n // This actually sets up the internal instance. This will become decoupled\n // from the public instance in a future diff.\n instance.construct(element);\n\n return instance;\n}\n\nmodule.exports = instantiateReactComponent;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/instantiateReactComponent.js\n ** module id = 26\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/instantiateReactComponent.js?");
  643. /***/ },
  644. /* 27 */
  645. /***/ function(module, exports, __webpack_require__) {
  646. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule invariant\n */\n\n\"use strict\";\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (\"production\" !== process.env.NODE_ENV) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n 'Invariant Violation: ' +\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/invariant.js\n ** module id = 27\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/invariant.js?");
  647. /***/ },
  648. /* 28 */
  649. /***/ function(module, exports, __webpack_require__) {
  650. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule shouldUpdateReactComponent\n * @typechecks static-only\n */\n\n\"use strict\";\n\n/**\n * Given a `prevElement` and `nextElement`, determines if the existing\n * instance should be updated as opposed to being destroyed or replaced by a new\n * instance. Both arguments are elements. This ensures that this logic can\n * operate on stateless trees without any backing instance.\n *\n * @param {?object} prevElement\n * @param {?object} nextElement\n * @return {boolean} True if the existing instance should be updated.\n * @protected\n */\nfunction shouldUpdateReactComponent(prevElement, nextElement) {\n if (prevElement && nextElement &&\n prevElement.type === nextElement.type &&\n prevElement.key === nextElement.key &&\n prevElement._owner === nextElement._owner) {\n return true;\n }\n return false;\n}\n\nmodule.exports = shouldUpdateReactComponent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/shouldUpdateReactComponent.js\n ** module id = 28\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/shouldUpdateReactComponent.js?");
  651. /***/ },
  652. /* 29 */
  653. /***/ function(module, exports, __webpack_require__) {
  654. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule warning\n */\n\n\"use strict\";\n\nvar emptyFunction = __webpack_require__(46);\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (\"production\" !== process.env.NODE_ENV) {\n warning = function(condition, format ) {for (var args=[],$__0=2,$__1=arguments.length;$__0<$__1;$__0++) args.push(arguments[$__0]);\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n console.warn('Warning: ' + format.replace(/%s/g, function() {return args[argIndex++];}));\n }\n };\n}\n\nmodule.exports = warning;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/warning.js\n ** module id = 29\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/warning.js?");
  655. /***/ },
  656. /* 30 */
  657. /***/ function(module, exports, __webpack_require__) {
  658. eval("'use strict';\n\nvar makePatchReactClass = __webpack_require__(47);\n\n/**\n * Returns a function that, when invoked, patches a React class with a new\n * version of itself. To patch different classes, pass different IDs.\n */\nmodule.exports = function makeMakeHot(getRootInstances) {\n if (typeof getRootInstances !== 'function') {\n throw new Error('Expected getRootInstances to be a function.');\n }\n\n var patchers = {};\n\n return function makeHot(NextClass, persistentId) {\n persistentId = persistentId || NextClass.displayName || NextClass.name;\n\n if (!persistentId) {\n console.error(\n 'Hot reload is disabled for one of your types. To enable it, pass a ' +\n 'string uniquely identifying this class within this current module ' +\n 'as a second parameter to makeHot.'\n );\n return NextClass;\n }\n\n if (!patchers[persistentId]) {\n patchers[persistentId] = makePatchReactClass(getRootInstances);\n }\n\n var patchReactClass = patchers[persistentId];\n return patchReactClass(NextClass);\n };\n};\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react-hot-loader/~/react-hot-api/modules/makeMakeHot.js\n ** module id = 30\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react-hot-loader/~/react-hot-api/modules/makeMakeHot.js?");
  659. /***/ },
  660. /* 31 */
  661. /***/ function(module, exports, __webpack_require__) {
  662. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule React\n */\n\n\"use strict\";\n\nvar DOMPropertyOperations = __webpack_require__(48);\nvar EventPluginUtils = __webpack_require__(49);\nvar ReactChildren = __webpack_require__(50);\nvar ReactComponent = __webpack_require__(51);\nvar ReactCompositeComponent = __webpack_require__(52);\nvar ReactContext = __webpack_require__(40);\nvar ReactCurrentOwner = __webpack_require__(18);\nvar ReactElement = __webpack_require__(19);\nvar ReactElementValidator = __webpack_require__(53);\nvar ReactDOM = __webpack_require__(54);\nvar ReactDOMComponent = __webpack_require__(55);\nvar ReactDefaultInjection = __webpack_require__(56);\nvar ReactInstanceHandles = __webpack_require__(21);\nvar ReactLegacyElement = __webpack_require__(20);\nvar ReactMount = __webpack_require__(9);\nvar ReactMultiChild = __webpack_require__(57);\nvar ReactPerf = __webpack_require__(22);\nvar ReactPropTypes = __webpack_require__(58);\nvar ReactServerRendering = __webpack_require__(59);\nvar ReactTextComponent = __webpack_require__(60);\n\nvar assign = __webpack_require__(38);\nvar deprecated = __webpack_require__(24);\nvar onlyChild = __webpack_require__(61);\n\nReactDefaultInjection.inject();\n\nvar createElement = ReactElement.createElement;\nvar createFactory = ReactElement.createFactory;\n\nif (\"production\" !== process.env.NODE_ENV) {\n createElement = ReactElementValidator.createElement;\n createFactory = ReactElementValidator.createFactory;\n}\n\n// TODO: Drop legacy elements once classes no longer export these factories\ncreateElement = ReactLegacyElement.wrapCreateElement(\n createElement\n);\ncreateFactory = ReactLegacyElement.wrapCreateFactory(\n createFactory\n);\n\nvar render = ReactPerf.measure('React', 'render', ReactMount.render);\n\nvar React = {\n Children: {\n map: ReactChildren.map,\n forEach: ReactChildren.forEach,\n count: ReactChildren.count,\n only: onlyChild\n },\n DOM: ReactDOM,\n PropTypes: ReactPropTypes,\n initializeTouchEvents: function(shouldUseTouch) {\n EventPluginUtils.useTouchEvents = shouldUseTouch;\n },\n createClass: ReactCompositeComponent.createClass,\n createElement: createElement,\n createFactory: createFactory,\n constructAndRenderComponent: ReactMount.constructAndRenderComponent,\n constructAndRenderComponentByID: ReactMount.constructAndRenderComponentByID,\n render: render,\n renderToString: ReactServerRendering.renderToString,\n renderToStaticMarkup: ReactServerRendering.renderToStaticMarkup,\n unmountComponentAtNode: ReactMount.unmountComponentAtNode,\n isValidClass: ReactLegacyElement.isValidClass,\n isValidElement: ReactElement.isValidElement,\n withContext: ReactContext.withContext,\n\n // Hook for JSX spread, don't use this for anything else.\n __spread: assign,\n\n // Deprecations (remove for 0.13)\n renderComponent: deprecated(\n 'React',\n 'renderComponent',\n 'render',\n this,\n render\n ),\n renderComponentToString: deprecated(\n 'React',\n 'renderComponentToString',\n 'renderToString',\n this,\n ReactServerRendering.renderToString\n ),\n renderComponentToStaticMarkup: deprecated(\n 'React',\n 'renderComponentToStaticMarkup',\n 'renderToStaticMarkup',\n this,\n ReactServerRendering.renderToStaticMarkup\n ),\n isValidComponent: deprecated(\n 'React',\n 'isValidComponent',\n 'isValidElement',\n this,\n ReactElement.isValidElement\n )\n};\n\n// Inject the runtime into a devtools global hook regardless of browser.\n// Allows for debugging when the hook is injected on the page.\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({\n Component: ReactComponent,\n CurrentOwner: ReactCurrentOwner,\n DOMComponent: ReactDOMComponent,\n DOMPropertyOperations: DOMPropertyOperations,\n InstanceHandles: ReactInstanceHandles,\n Mount: ReactMount,\n MultiChild: ReactMultiChild,\n TextComponent: ReactTextComponent\n });\n}\n\nif (\"production\" !== process.env.NODE_ENV) {\n var ExecutionEnvironment = __webpack_require__(62);\n if (ExecutionEnvironment.canUseDOM && window.top === window.self) {\n\n // If we're in Chrome, look for the devtools marker and provide a download\n // link if not installed.\n if (navigator.userAgent.indexOf('Chrome') > -1) {\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n console.debug(\n 'Download the React DevTools for a better development experience: ' +\n 'http://fb.me/react-devtools'\n );\n }\n }\n\n var expectedFeatures = [\n // shims\n Array.isArray,\n Array.prototype.every,\n Array.prototype.forEach,\n Array.prototype.indexOf,\n Array.prototype.map,\n Date.now,\n Function.prototype.bind,\n Object.keys,\n String.prototype.split,\n String.prototype.trim,\n\n // shams\n Object.create,\n Object.freeze\n ];\n\n for (var i = 0; i < expectedFeatures.length; i++) {\n if (!expectedFeatures[i]) {\n console.error(\n 'One or more ES5 shim/shams expected by React are not available: ' +\n 'http://fb.me/react-warning-polyfills'\n );\n break;\n }\n }\n }\n}\n\n// Version exists only in the open-source version of React, not in Facebook's\n// internal version.\nReact.version = '0.12.2';\n\nmodule.exports = React;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/React.js\n ** module id = 31\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/React.js?");
  663. /***/ },
  664. /* 32 */
  665. /***/ function(module, exports, __webpack_require__) {
  666. eval("// shim for using process in browser\n\nvar process = module.exports = {};\n\nprocess.nextTick = (function () {\n var canSetImmediate = typeof window !== 'undefined'\n && window.setImmediate;\n var canMutationObserver = typeof window !== 'undefined'\n && window.MutationObserver;\n var canPost = typeof window !== 'undefined'\n && window.postMessage && window.addEventListener\n ;\n\n if (canSetImmediate) {\n return function (f) { return window.setImmediate(f) };\n }\n\n var queue = [];\n\n if (canMutationObserver) {\n var hiddenDiv = document.createElement(\"div\");\n var observer = new MutationObserver(function () {\n var queueList = queue.slice();\n queue.length = 0;\n queueList.forEach(function (fn) {\n fn();\n });\n });\n\n observer.observe(hiddenDiv, { attributes: true });\n\n return function nextTick(fn) {\n if (!queue.length) {\n hiddenDiv.setAttribute('yes', 'no');\n }\n queue.push(fn);\n };\n }\n\n if (canPost) {\n window.addEventListener('message', function (ev) {\n var source = ev.source;\n if ((source === window || source === null) && ev.data === 'process-tick') {\n ev.stopPropagation();\n if (queue.length > 0) {\n var fn = queue.shift();\n fn();\n }\n }\n }, true);\n\n return function nextTick(fn) {\n queue.push(fn);\n window.postMessage('process-tick', '*');\n };\n }\n\n return function nextTick(fn) {\n setTimeout(fn, 0);\n };\n})();\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\n// TODO(shtylman)\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** (webpack)/~/node-libs-browser/~/process/browser.js\n ** module id = 32\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///(webpack)/~/node-libs-browser/~/process/browser.js?");
  667. /***/ },
  668. /* 33 */
  669. /***/ function(module, exports, __webpack_require__) {
  670. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventConstants\n */\n\n\"use strict\";\n\nvar keyMirror = __webpack_require__(63);\n\nvar PropagationPhases = keyMirror({bubbled: null, captured: null});\n\n/**\n * Types of raw signals from the browser caught at the top level.\n */\nvar topLevelTypes = keyMirror({\n topBlur: null,\n topChange: null,\n topClick: null,\n topCompositionEnd: null,\n topCompositionStart: null,\n topCompositionUpdate: null,\n topContextMenu: null,\n topCopy: null,\n topCut: null,\n topDoubleClick: null,\n topDrag: null,\n topDragEnd: null,\n topDragEnter: null,\n topDragExit: null,\n topDragLeave: null,\n topDragOver: null,\n topDragStart: null,\n topDrop: null,\n topError: null,\n topFocus: null,\n topInput: null,\n topKeyDown: null,\n topKeyPress: null,\n topKeyUp: null,\n topLoad: null,\n topMouseDown: null,\n topMouseMove: null,\n topMouseOut: null,\n topMouseOver: null,\n topMouseUp: null,\n topPaste: null,\n topReset: null,\n topScroll: null,\n topSelectionChange: null,\n topSubmit: null,\n topTextInput: null,\n topTouchCancel: null,\n topTouchEnd: null,\n topTouchMove: null,\n topTouchStart: null,\n topWheel: null\n});\n\nvar EventConstants = {\n topLevelTypes: topLevelTypes,\n PropagationPhases: PropagationPhases\n};\n\nmodule.exports = EventConstants;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/EventConstants.js\n ** module id = 33\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/EventConstants.js?");
  671. /***/ },
  672. /* 34 */
  673. /***/ function(module, exports, __webpack_require__) {
  674. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPluginHub\n */\n\n\"use strict\";\n\nvar EventPluginRegistry = __webpack_require__(35);\nvar EventPluginUtils = __webpack_require__(49);\n\nvar accumulateInto = __webpack_require__(64);\nvar forEachAccumulated = __webpack_require__(65);\nvar invariant = __webpack_require__(27);\n\n/**\n * Internal store for event listeners\n */\nvar listenerBank = {};\n\n/**\n * Internal queue of events that have accumulated their dispatches and are\n * waiting to have their dispatches executed.\n */\nvar eventQueue = null;\n\n/**\n * Dispatches an event and releases it back into the pool, unless persistent.\n *\n * @param {?object} event Synthetic event to be dispatched.\n * @private\n */\nvar executeDispatchesAndRelease = function(event) {\n if (event) {\n var executeDispatch = EventPluginUtils.executeDispatch;\n // Plugins can provide custom behavior when dispatching events.\n var PluginModule = EventPluginRegistry.getPluginModuleForEvent(event);\n if (PluginModule && PluginModule.executeDispatch) {\n executeDispatch = PluginModule.executeDispatch;\n }\n EventPluginUtils.executeDispatchesInOrder(event, executeDispatch);\n\n if (!event.isPersistent()) {\n event.constructor.release(event);\n }\n }\n};\n\n/**\n * - `InstanceHandle`: [required] Module that performs logical traversals of DOM\n * hierarchy given ids of the logical DOM elements involved.\n */\nvar InstanceHandle = null;\n\nfunction validateInstanceHandle() {\n var invalid = !InstanceHandle||\n !InstanceHandle.traverseTwoPhase ||\n !InstanceHandle.traverseEnterLeave;\n if (invalid) {\n throw new Error('InstanceHandle not injected before use!');\n }\n}\n\n/**\n * This is a unified interface for event plugins to be installed and configured.\n *\n * Event plugins can implement the following properties:\n *\n * `extractEvents` {function(string, DOMEventTarget, string, object): *}\n * Required. When a top-level event is fired, this method is expected to\n * extract synthetic events that will in turn be queued and dispatched.\n *\n * `eventTypes` {object}\n * Optional, plugins that fire events must publish a mapping of registration\n * names that are used to register listeners. Values of this mapping must\n * be objects that contain `registrationName` or `phasedRegistrationNames`.\n *\n * `executeDispatch` {function(object, function, string)}\n * Optional, allows plugins to override how an event gets dispatched. By\n * default, the listener is simply invoked.\n *\n * Each plugin that is injected into `EventsPluginHub` is immediately operable.\n *\n * @public\n */\nvar EventPluginHub = {\n\n /**\n * Methods for injecting dependencies.\n */\n injection: {\n\n /**\n * @param {object} InjectedMount\n * @public\n */\n injectMount: EventPluginUtils.injection.injectMount,\n\n /**\n * @param {object} InjectedInstanceHandle\n * @public\n */\n injectInstanceHandle: function(InjectedInstanceHandle) {\n InstanceHandle = InjectedInstanceHandle;\n if (\"production\" !== process.env.NODE_ENV) {\n validateInstanceHandle();\n }\n },\n\n getInstanceHandle: function() {\n if (\"production\" !== process.env.NODE_ENV) {\n validateInstanceHandle();\n }\n return InstanceHandle;\n },\n\n /**\n * @param {array} InjectedEventPluginOrder\n * @public\n */\n injectEventPluginOrder: EventPluginRegistry.injectEventPluginOrder,\n\n /**\n * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n */\n injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName\n\n },\n\n eventNameDispatchConfigs: EventPluginRegistry.eventNameDispatchConfigs,\n\n registrationNameModules: EventPluginRegistry.registrationNameModules,\n\n /**\n * Stores `listener` at `listenerBank[registrationName][id]`. Is idempotent.\n *\n * @param {string} id ID of the DOM element.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @param {?function} listener The callback to store.\n */\n putListener: function(id, registrationName, listener) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n !listener || typeof listener === 'function',\n 'Expected %s listener to be a function, instead got type %s',\n registrationName, typeof listener\n ) : invariant(!listener || typeof listener === 'function'));\n\n var bankForRegistrationName =\n listenerBank[registrationName] || (listenerBank[registrationName] = {});\n bankForRegistrationName[id] = listener;\n },\n\n /**\n * @param {string} id ID of the DOM element.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @return {?function} The stored callback.\n */\n getListener: function(id, registrationName) {\n var bankForRegistrationName = listenerBank[registrationName];\n return bankForRegistrationName && bankForRegistrationName[id];\n },\n\n /**\n * Deletes a listener from the registration bank.\n *\n * @param {string} id ID of the DOM element.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n */\n deleteListener: function(id, registrationName) {\n var bankForRegistrationName = listenerBank[registrationName];\n if (bankForRegistrationName) {\n delete bankForRegistrationName[id];\n }\n },\n\n /**\n * Deletes all listeners for the DOM element with the supplied ID.\n *\n * @param {string} id ID of the DOM element.\n */\n deleteAllListeners: function(id) {\n for (var registrationName in listenerBank) {\n delete listenerBank[registrationName][id];\n }\n },\n\n /**\n * Allows registered plugins an opportunity to extract events from top-level\n * native browser events.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {*} An accumulation of synthetic events.\n * @internal\n */\n extractEvents: function(\n topLevelType,\n topLevelTarget,\n topLevelTargetID,\n nativeEvent) {\n var events;\n var plugins = EventPluginRegistry.plugins;\n for (var i = 0, l = plugins.length; i < l; i++) {\n // Not every plugin in the ordering may be loaded at runtime.\n var possiblePlugin = plugins[i];\n if (possiblePlugin) {\n var extractedEvents = possiblePlugin.extractEvents(\n topLevelType,\n topLevelTarget,\n topLevelTargetID,\n nativeEvent\n );\n if (extractedEvents) {\n events = accumulateInto(events, extractedEvents);\n }\n }\n }\n return events;\n },\n\n /**\n * Enqueues a synthetic event that should be dispatched when\n * `processEventQueue` is invoked.\n *\n * @param {*} events An accumulation of synthetic events.\n * @internal\n */\n enqueueEvents: function(events) {\n if (events) {\n eventQueue = accumulateInto(eventQueue, events);\n }\n },\n\n /**\n * Dispatches all synthetic events on the event queue.\n *\n * @internal\n */\n processEventQueue: function() {\n // Set `eventQueue` to null before processing it so that we can tell if more\n // events get enqueued while processing.\n var processingEventQueue = eventQueue;\n eventQueue = null;\n forEachAccumulated(processingEventQueue, executeDispatchesAndRelease);\n (\"production\" !== process.env.NODE_ENV ? invariant(\n !eventQueue,\n 'processEventQueue(): Additional events were enqueued while processing ' +\n 'an event queue. Support for this has not yet been implemented.'\n ) : invariant(!eventQueue));\n },\n\n /**\n * These are needed for tests only. Do not use!\n */\n __purge: function() {\n listenerBank = {};\n },\n\n __getListenerBank: function() {\n return listenerBank;\n }\n\n};\n\nmodule.exports = EventPluginHub;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/EventPluginHub.js\n ** module id = 34\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/EventPluginHub.js?");
  675. /***/ },
  676. /* 35 */
  677. /***/ function(module, exports, __webpack_require__) {
  678. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPluginRegistry\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar invariant = __webpack_require__(27);\n\n/**\n * Injectable ordering of event plugins.\n */\nvar EventPluginOrder = null;\n\n/**\n * Injectable mapping from names to event plugin modules.\n */\nvar namesToPlugins = {};\n\n/**\n * Recomputes the plugin list using the injected plugins and plugin ordering.\n *\n * @private\n */\nfunction recomputePluginOrdering() {\n if (!EventPluginOrder) {\n // Wait until an `EventPluginOrder` is injected.\n return;\n }\n for (var pluginName in namesToPlugins) {\n var PluginModule = namesToPlugins[pluginName];\n var pluginIndex = EventPluginOrder.indexOf(pluginName);\n (\"production\" !== process.env.NODE_ENV ? invariant(\n pluginIndex > -1,\n 'EventPluginRegistry: Cannot inject event plugins that do not exist in ' +\n 'the plugin ordering, `%s`.',\n pluginName\n ) : invariant(pluginIndex > -1));\n if (EventPluginRegistry.plugins[pluginIndex]) {\n continue;\n }\n (\"production\" !== process.env.NODE_ENV ? invariant(\n PluginModule.extractEvents,\n 'EventPluginRegistry: Event plugins must implement an `extractEvents` ' +\n 'method, but `%s` does not.',\n pluginName\n ) : invariant(PluginModule.extractEvents));\n EventPluginRegistry.plugins[pluginIndex] = PluginModule;\n var publishedEvents = PluginModule.eventTypes;\n for (var eventName in publishedEvents) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n publishEventForPlugin(\n publishedEvents[eventName],\n PluginModule,\n eventName\n ),\n 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.',\n eventName,\n pluginName\n ) : invariant(publishEventForPlugin(\n publishedEvents[eventName],\n PluginModule,\n eventName\n )));\n }\n }\n}\n\n/**\n * Publishes an event so that it can be dispatched by the supplied plugin.\n *\n * @param {object} dispatchConfig Dispatch configuration for the event.\n * @param {object} PluginModule Plugin publishing the event.\n * @return {boolean} True if the event was successfully published.\n * @private\n */\nfunction publishEventForPlugin(dispatchConfig, PluginModule, eventName) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n !EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName),\n 'EventPluginHub: More than one plugin attempted to publish the same ' +\n 'event name, `%s`.',\n eventName\n ) : invariant(!EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName)));\n EventPluginRegistry.eventNameDispatchConfigs[eventName] = dispatchConfig;\n\n var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n if (phasedRegistrationNames) {\n for (var phaseName in phasedRegistrationNames) {\n if (phasedRegistrationNames.hasOwnProperty(phaseName)) {\n var phasedRegistrationName = phasedRegistrationNames[phaseName];\n publishRegistrationName(\n phasedRegistrationName,\n PluginModule,\n eventName\n );\n }\n }\n return true;\n } else if (dispatchConfig.registrationName) {\n publishRegistrationName(\n dispatchConfig.registrationName,\n PluginModule,\n eventName\n );\n return true;\n }\n return false;\n}\n\n/**\n * Publishes a registration name that is used to identify dispatched events and\n * can be used with `EventPluginHub.putListener` to register listeners.\n *\n * @param {string} registrationName Registration name to add.\n * @param {object} PluginModule Plugin publishing the event.\n * @private\n */\nfunction publishRegistrationName(registrationName, PluginModule, eventName) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n !EventPluginRegistry.registrationNameModules[registrationName],\n 'EventPluginHub: More than one plugin attempted to publish the same ' +\n 'registration name, `%s`.',\n registrationName\n ) : invariant(!EventPluginRegistry.registrationNameModules[registrationName]));\n EventPluginRegistry.registrationNameModules[registrationName] = PluginModule;\n EventPluginRegistry.registrationNameDependencies[registrationName] =\n PluginModule.eventTypes[eventName].dependencies;\n}\n\n/**\n * Registers plugins so that they can extract and dispatch events.\n *\n * @see {EventPluginHub}\n */\nvar EventPluginRegistry = {\n\n /**\n * Ordered list of injected plugins.\n */\n plugins: [],\n\n /**\n * Mapping from event name to dispatch config\n */\n eventNameDispatchConfigs: {},\n\n /**\n * Mapping from registration name to plugin module\n */\n registrationNameModules: {},\n\n /**\n * Mapping from registration name to event name\n */\n registrationNameDependencies: {},\n\n /**\n * Injects an ordering of plugins (by plugin name). This allows the ordering\n * to be decoupled from injection of the actual plugins so that ordering is\n * always deterministic regardless of packaging, on-the-fly injection, etc.\n *\n * @param {array} InjectedEventPluginOrder\n * @internal\n * @see {EventPluginHub.injection.injectEventPluginOrder}\n */\n injectEventPluginOrder: function(InjectedEventPluginOrder) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n !EventPluginOrder,\n 'EventPluginRegistry: Cannot inject event plugin ordering more than ' +\n 'once. You are likely trying to load more than one copy of React.'\n ) : invariant(!EventPluginOrder));\n // Clone the ordering so it cannot be dynamically mutated.\n EventPluginOrder = Array.prototype.slice.call(InjectedEventPluginOrder);\n recomputePluginOrdering();\n },\n\n /**\n * Injects plugins to be used by `EventPluginHub`. The plugin names must be\n * in the ordering injected by `injectEventPluginOrder`.\n *\n * Plugins can be injected as part of page initialization or on-the-fly.\n *\n * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n * @internal\n * @see {EventPluginHub.injection.injectEventPluginsByName}\n */\n injectEventPluginsByName: function(injectedNamesToPlugins) {\n var isOrderingDirty = false;\n for (var pluginName in injectedNamesToPlugins) {\n if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) {\n continue;\n }\n var PluginModule = injectedNamesToPlugins[pluginName];\n if (!namesToPlugins.hasOwnProperty(pluginName) ||\n namesToPlugins[pluginName] !== PluginModule) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n !namesToPlugins[pluginName],\n 'EventPluginRegistry: Cannot inject two different event plugins ' +\n 'using the same name, `%s`.',\n pluginName\n ) : invariant(!namesToPlugins[pluginName]));\n namesToPlugins[pluginName] = PluginModule;\n isOrderingDirty = true;\n }\n }\n if (isOrderingDirty) {\n recomputePluginOrdering();\n }\n },\n\n /**\n * Looks up the plugin for the supplied event.\n *\n * @param {object} event A synthetic event.\n * @return {?object} The plugin that created the supplied event.\n * @internal\n */\n getPluginModuleForEvent: function(event) {\n var dispatchConfig = event.dispatchConfig;\n if (dispatchConfig.registrationName) {\n return EventPluginRegistry.registrationNameModules[\n dispatchConfig.registrationName\n ] || null;\n }\n for (var phase in dispatchConfig.phasedRegistrationNames) {\n if (!dispatchConfig.phasedRegistrationNames.hasOwnProperty(phase)) {\n continue;\n }\n var PluginModule = EventPluginRegistry.registrationNameModules[\n dispatchConfig.phasedRegistrationNames[phase]\n ];\n if (PluginModule) {\n return PluginModule;\n }\n }\n return null;\n },\n\n /**\n * Exposed for unit testing.\n * @private\n */\n _resetEventPlugins: function() {\n EventPluginOrder = null;\n for (var pluginName in namesToPlugins) {\n if (namesToPlugins.hasOwnProperty(pluginName)) {\n delete namesToPlugins[pluginName];\n }\n }\n EventPluginRegistry.plugins.length = 0;\n\n var eventNameDispatchConfigs = EventPluginRegistry.eventNameDispatchConfigs;\n for (var eventName in eventNameDispatchConfigs) {\n if (eventNameDispatchConfigs.hasOwnProperty(eventName)) {\n delete eventNameDispatchConfigs[eventName];\n }\n }\n\n var registrationNameModules = EventPluginRegistry.registrationNameModules;\n for (var registrationName in registrationNameModules) {\n if (registrationNameModules.hasOwnProperty(registrationName)) {\n delete registrationNameModules[registrationName];\n }\n }\n }\n\n};\n\nmodule.exports = EventPluginRegistry;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/EventPluginRegistry.js\n ** module id = 35\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/EventPluginRegistry.js?");
  679. /***/ },
  680. /* 36 */
  681. /***/ function(module, exports, __webpack_require__) {
  682. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEventEmitterMixin\n */\n\n\"use strict\";\n\nvar EventPluginHub = __webpack_require__(34);\n\nfunction runEventQueueInBatch(events) {\n EventPluginHub.enqueueEvents(events);\n EventPluginHub.processEventQueue();\n}\n\nvar ReactEventEmitterMixin = {\n\n /**\n * Streams a fired top-level event to `EventPluginHub` where plugins have the\n * opportunity to create `ReactEvent`s to be dispatched.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {object} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native environment event.\n */\n handleTopLevel: function(\n topLevelType,\n topLevelTarget,\n topLevelTargetID,\n nativeEvent) {\n var events = EventPluginHub.extractEvents(\n topLevelType,\n topLevelTarget,\n topLevelTargetID,\n nativeEvent\n );\n\n runEventQueueInBatch(events);\n }\n};\n\nmodule.exports = ReactEventEmitterMixin;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactEventEmitterMixin.js\n ** module id = 36\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactEventEmitterMixin.js?");
  683. /***/ },
  684. /* 37 */
  685. /***/ function(module, exports, __webpack_require__) {
  686. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ViewportMetrics\n */\n\n\"use strict\";\n\nvar getUnboundedScrollPosition = __webpack_require__(66);\n\nvar ViewportMetrics = {\n\n currentScrollLeft: 0,\n\n currentScrollTop: 0,\n\n refreshScrollValues: function() {\n var scrollPosition = getUnboundedScrollPosition(window);\n ViewportMetrics.currentScrollLeft = scrollPosition.x;\n ViewportMetrics.currentScrollTop = scrollPosition.y;\n }\n\n};\n\nmodule.exports = ViewportMetrics;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ViewportMetrics.js\n ** module id = 37\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ViewportMetrics.js?");
  687. /***/ },
  688. /* 38 */
  689. /***/ function(module, exports, __webpack_require__) {
  690. eval("/**\n * Copyright 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Object.assign\n */\n\n// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign\n\nfunction assign(target, sources) {\n if (target == null) {\n throw new TypeError('Object.assign target cannot be null or undefined');\n }\n\n var to = Object(target);\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n\n for (var nextIndex = 1; nextIndex < arguments.length; nextIndex++) {\n var nextSource = arguments[nextIndex];\n if (nextSource == null) {\n continue;\n }\n\n var from = Object(nextSource);\n\n // We don't currently support accessors nor proxies. Therefore this\n // copy cannot throw. If we ever supported this then we must handle\n // exceptions and side-effects. We don't support symbols so they won't\n // be transferred.\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n }\n\n return to;\n};\n\nmodule.exports = assign;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/Object.assign.js\n ** module id = 38\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/Object.assign.js?");
  691. /***/ },
  692. /* 39 */
  693. /***/ function(module, exports, __webpack_require__) {
  694. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isEventSupported\n */\n\n\"use strict\";\n\nvar ExecutionEnvironment = __webpack_require__(62);\n\nvar useHasFeature;\nif (ExecutionEnvironment.canUseDOM) {\n useHasFeature =\n document.implementation &&\n document.implementation.hasFeature &&\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported(eventNameSuffix, capture) {\n if (!ExecutionEnvironment.canUseDOM ||\n capture && !('addEventListener' in document)) {\n return false;\n }\n\n var eventName = 'on' + eventNameSuffix;\n var isSupported = eventName in document;\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nmodule.exports = isEventSupported;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/isEventSupported.js\n ** module id = 39\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/isEventSupported.js?");
  695. /***/ },
  696. /* 40 */
  697. /***/ function(module, exports, __webpack_require__) {
  698. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactContext\n */\n\n\"use strict\";\n\nvar assign = __webpack_require__(38);\n\n/**\n * Keeps track of the current context.\n *\n * The context is automatically passed down the component ownership hierarchy\n * and is accessible via `this.context` on ReactCompositeComponents.\n */\nvar ReactContext = {\n\n /**\n * @internal\n * @type {object}\n */\n current: {},\n\n /**\n * Temporarily extends the current context while executing scopedCallback.\n *\n * A typical use case might look like\n *\n * render: function() {\n * var children = ReactContext.withContext({foo: 'foo'}, () => (\n *\n * ));\n * return <div>{children}</div>;\n * }\n *\n * @param {object} newContext New context to merge into the existing context\n * @param {function} scopedCallback Callback to run with the new context\n * @return {ReactComponent|array<ReactComponent>}\n */\n withContext: function(newContext, scopedCallback) {\n var result;\n var previousContext = ReactContext.current;\n ReactContext.current = assign({}, previousContext, newContext);\n try {\n result = scopedCallback();\n } finally {\n ReactContext.current = previousContext;\n }\n return result;\n }\n\n};\n\nmodule.exports = ReactContext;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactContext.js\n ** module id = 40\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactContext.js?");
  699. /***/ },
  700. /* 41 */
  701. /***/ function(module, exports, __webpack_require__) {
  702. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule monitorCodeUse\n */\n\n\"use strict\";\n\nvar invariant = __webpack_require__(27);\n\n/**\n * Provides open-source compatible instrumentation for monitoring certain API\n * uses before we're ready to issue a warning or refactor. It accepts an event\n * name which may only contain the characters [a-z0-9_] and an optional data\n * object with further information.\n */\n\nfunction monitorCodeUse(eventName, data) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n eventName && !/[^a-z0-9_]/.test(eventName),\n 'You must provide an eventName using only the characters [a-z0-9_]'\n ) : invariant(eventName && !/[^a-z0-9_]/.test(eventName)));\n}\n\nmodule.exports = monitorCodeUse;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/monitorCodeUse.js\n ** module id = 41\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/monitorCodeUse.js?");
  703. /***/ },
  704. /* 42 */
  705. /***/ function(module, exports, __webpack_require__) {
  706. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactRootIndex\n * @typechecks\n */\n\n\"use strict\";\n\nvar ReactRootIndexInjection = {\n /**\n * @param {function} _createReactRootIndex\n */\n injectCreateReactRootIndex: function(_createReactRootIndex) {\n ReactRootIndex.createReactRootIndex = _createReactRootIndex;\n }\n};\n\nvar ReactRootIndex = {\n createReactRootIndex: null,\n injection: ReactRootIndexInjection\n};\n\nmodule.exports = ReactRootIndex;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactRootIndex.js\n ** module id = 42\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactRootIndex.js?");
  707. /***/ },
  708. /* 43 */
  709. /***/ function(module, exports, __webpack_require__) {
  710. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isTextNode\n * @typechecks\n */\n\nvar isNode = __webpack_require__(67);\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM text node.\n */\nfunction isTextNode(object) {\n return isNode(object) && object.nodeType == 3;\n}\n\nmodule.exports = isTextNode;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/isTextNode.js\n ** module id = 43\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/isTextNode.js?");
  711. /***/ },
  712. /* 44 */
  713. /***/ function(module, exports, __webpack_require__) {
  714. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactNativeComponent\n */\n\n\"use strict\";\n\nvar assign = __webpack_require__(38);\nvar invariant = __webpack_require__(27);\n\nvar genericComponentClass = null;\n// This registry keeps track of wrapper classes around native tags\nvar tagToComponentClass = {};\n\nvar ReactNativeComponentInjection = {\n // This accepts a class that receives the tag string. This is a catch all\n // that can render any kind of tag.\n injectGenericComponentClass: function(componentClass) {\n genericComponentClass = componentClass;\n },\n // This accepts a keyed object with classes as values. Each key represents a\n // tag. That particular tag will use this class instead of the generic one.\n injectComponentClasses: function(componentClasses) {\n assign(tagToComponentClass, componentClasses);\n }\n};\n\n/**\n * Create an internal class for a specific tag.\n *\n * @param {string} tag The tag for which to create an internal instance.\n * @param {any} props The props passed to the instance constructor.\n * @return {ReactComponent} component The injected empty component.\n */\nfunction createInstanceForTag(tag, props, parentType) {\n var componentClass = tagToComponentClass[tag];\n if (componentClass == null) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n genericComponentClass,\n 'There is no registered component for the tag %s',\n tag\n ) : invariant(genericComponentClass));\n return new genericComponentClass(tag, props);\n }\n if (parentType === tag) {\n // Avoid recursion\n (\"production\" !== process.env.NODE_ENV ? invariant(\n genericComponentClass,\n 'There is no registered component for the tag %s',\n tag\n ) : invariant(genericComponentClass));\n return new genericComponentClass(tag, props);\n }\n // Unwrap legacy factories\n return new componentClass.type(props);\n}\n\nvar ReactNativeComponent = {\n createInstanceForTag: createInstanceForTag,\n injection: ReactNativeComponentInjection\n};\n\nmodule.exports = ReactNativeComponent;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactNativeComponent.js\n ** module id = 44\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactNativeComponent.js?");
  715. /***/ },
  716. /* 45 */
  717. /***/ function(module, exports, __webpack_require__) {
  718. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEmptyComponent\n */\n\n\"use strict\";\n\nvar ReactElement = __webpack_require__(19);\n\nvar invariant = __webpack_require__(27);\n\nvar component;\n// This registry keeps track of the React IDs of the components that rendered to\n// `null` (in reality a placeholder such as `noscript`)\nvar nullComponentIdsRegistry = {};\n\nvar ReactEmptyComponentInjection = {\n injectEmptyComponent: function(emptyComponent) {\n component = ReactElement.createFactory(emptyComponent);\n }\n};\n\n/**\n * @return {ReactComponent} component The injected empty component.\n */\nfunction getEmptyComponent() {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n component,\n 'Trying to return null from a render, but no null placeholder component ' +\n 'was injected.'\n ) : invariant(component));\n return component();\n}\n\n/**\n * Mark the component as having rendered to null.\n * @param {string} id Component's `_rootNodeID`.\n */\nfunction registerNullComponentID(id) {\n nullComponentIdsRegistry[id] = true;\n}\n\n/**\n * Unmark the component as having rendered to null: it renders to something now.\n * @param {string} id Component's `_rootNodeID`.\n */\nfunction deregisterNullComponentID(id) {\n delete nullComponentIdsRegistry[id];\n}\n\n/**\n * @param {string} id Component's `_rootNodeID`.\n * @return {boolean} True if the component is rendered to null.\n */\nfunction isNullComponentID(id) {\n return nullComponentIdsRegistry[id];\n}\n\nvar ReactEmptyComponent = {\n deregisterNullComponentID: deregisterNullComponentID,\n getEmptyComponent: getEmptyComponent,\n injection: ReactEmptyComponentInjection,\n isNullComponentID: isNullComponentID,\n registerNullComponentID: registerNullComponentID\n};\n\nmodule.exports = ReactEmptyComponent;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactEmptyComponent.js\n ** module id = 45\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactEmptyComponent.js?");
  719. /***/ },
  720. /* 46 */
  721. /***/ function(module, exports, __webpack_require__) {
  722. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule emptyFunction\n */\n\nfunction makeEmptyFunction(arg) {\n return function() {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nfunction emptyFunction() {}\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function() { return this; };\nemptyFunction.thatReturnsArgument = function(arg) { return arg; };\n\nmodule.exports = emptyFunction;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/emptyFunction.js\n ** module id = 46\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/emptyFunction.js?");
  723. /***/ },
  724. /* 47 */
  725. /***/ function(module, exports, __webpack_require__) {
  726. eval("'use strict';\n\nvar makeAssimilatePrototype = __webpack_require__(68),\n requestForceUpdateAll = __webpack_require__(69);\n\nfunction hasNonStubTypeProperty(ReactClass) {\n if (!ReactClass.hasOwnProperty('type')) {\n return false;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(ReactClass, 'type');\n if (typeof descriptor.get === 'function') {\n return false;\n }\n\n return true;\n}\n\nfunction getPrototype(ReactClass) {\n var prototype = ReactClass.prototype,\n seemsLegit = prototype && typeof prototype.render === 'function';\n\n if (!seemsLegit && hasNonStubTypeProperty(ReactClass)) {\n prototype = ReactClass.type.prototype;\n }\n\n return prototype;\n}\n\n/**\n * Returns a function that will patch React class with new versions of itself\n * on subsequent invocations. Both legacy and ES6 style classes are supported.\n */\nmodule.exports = function makePatchReactClass(getRootInstances) {\n var assimilatePrototype = makeAssimilatePrototype(),\n FirstClass = null;\n\n return function patchReactClass(NextClass) {\n var nextPrototype = getPrototype(NextClass);\n assimilatePrototype(nextPrototype);\n\n if (FirstClass) {\n requestForceUpdateAll(getRootInstances);\n }\n\n return FirstClass || (FirstClass = NextClass);\n };\n};\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react-hot-loader/~/react-hot-api/modules/makePatchReactClass.js\n ** module id = 47\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react-hot-loader/~/react-hot-api/modules/makePatchReactClass.js?");
  727. /***/ },
  728. /* 48 */
  729. /***/ function(module, exports, __webpack_require__) {
  730. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMPropertyOperations\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar DOMProperty = __webpack_require__(16);\n\nvar escapeTextForBrowser = __webpack_require__(70);\nvar memoizeStringOnly = __webpack_require__(71);\nvar warning = __webpack_require__(29);\n\nfunction shouldIgnoreValue(name, value) {\n return value == null ||\n (DOMProperty.hasBooleanValue[name] && !value) ||\n (DOMProperty.hasNumericValue[name] && isNaN(value)) ||\n (DOMProperty.hasPositiveNumericValue[name] && (value < 1)) ||\n (DOMProperty.hasOverloadedBooleanValue[name] && value === false);\n}\n\nvar processAttributeNameAndPrefix = memoizeStringOnly(function(name) {\n return escapeTextForBrowser(name) + '=\"';\n});\n\nif (\"production\" !== process.env.NODE_ENV) {\n var reactProps = {\n children: true,\n dangerouslySetInnerHTML: true,\n key: true,\n ref: true\n };\n var warnedProperties = {};\n\n var warnUnknownProperty = function(name) {\n if (reactProps.hasOwnProperty(name) && reactProps[name] ||\n warnedProperties.hasOwnProperty(name) && warnedProperties[name]) {\n return;\n }\n\n warnedProperties[name] = true;\n var lowerCasedName = name.toLowerCase();\n\n // data-* attributes should be lowercase; suggest the lowercase version\n var standardName = (\n DOMProperty.isCustomAttribute(lowerCasedName) ?\n lowerCasedName :\n DOMProperty.getPossibleStandardName.hasOwnProperty(lowerCasedName) ?\n DOMProperty.getPossibleStandardName[lowerCasedName] :\n null\n );\n\n // For now, only warn when we have a suggested correction. This prevents\n // logging too much when using transferPropsTo.\n (\"production\" !== process.env.NODE_ENV ? warning(\n standardName == null,\n 'Unknown DOM property ' + name + '. Did you mean ' + standardName + '?'\n ) : null);\n\n };\n}\n\n/**\n * Operations for dealing with DOM properties.\n */\nvar DOMPropertyOperations = {\n\n /**\n * Creates markup for the ID property.\n *\n * @param {string} id Unescaped ID.\n * @return {string} Markup string.\n */\n createMarkupForID: function(id) {\n return processAttributeNameAndPrefix(DOMProperty.ID_ATTRIBUTE_NAME) +\n escapeTextForBrowser(id) + '\"';\n },\n\n /**\n * Creates markup for a property.\n *\n * @param {string} name\n * @param {*} value\n * @return {?string} Markup string, or null if the property was invalid.\n */\n createMarkupForProperty: function(name, value) {\n if (DOMProperty.isStandardName.hasOwnProperty(name) &&\n DOMProperty.isStandardName[name]) {\n if (shouldIgnoreValue(name, value)) {\n return '';\n }\n var attributeName = DOMProperty.getAttributeName[name];\n if (DOMProperty.hasBooleanValue[name] ||\n (DOMProperty.hasOverloadedBooleanValue[name] && value === true)) {\n return escapeTextForBrowser(attributeName);\n }\n return processAttributeNameAndPrefix(attributeName) +\n escapeTextForBrowser(value) + '\"';\n } else if (DOMProperty.isCustomAttribute(name)) {\n if (value == null) {\n return '';\n }\n return processAttributeNameAndPrefix(name) +\n escapeTextForBrowser(value) + '\"';\n } else if (\"production\" !== process.env.NODE_ENV) {\n warnUnknownProperty(name);\n }\n return null;\n },\n\n /**\n * Sets the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n * @param {*} value\n */\n setValueForProperty: function(node, name, value) {\n if (DOMProperty.isStandardName.hasOwnProperty(name) &&\n DOMProperty.isStandardName[name]) {\n var mutationMethod = DOMProperty.getMutationMethod[name];\n if (mutationMethod) {\n mutationMethod(node, value);\n } else if (shouldIgnoreValue(name, value)) {\n this.deleteValueForProperty(node, name);\n } else if (DOMProperty.mustUseAttribute[name]) {\n // `setAttribute` with objects becomes only `[object]` in IE8/9,\n // ('' + value) makes it output the correct toString()-value.\n node.setAttribute(DOMProperty.getAttributeName[name], '' + value);\n } else {\n var propName = DOMProperty.getPropertyName[name];\n // Must explicitly cast values for HAS_SIDE_EFFECTS-properties to the\n // property type before comparing; only `value` does and is string.\n if (!DOMProperty.hasSideEffects[name] ||\n ('' + node[propName]) !== ('' + value)) {\n // Contrary to `setAttribute`, object properties are properly\n // `toString`ed by IE8/9.\n node[propName] = value;\n }\n }\n } else if (DOMProperty.isCustomAttribute(name)) {\n if (value == null) {\n node.removeAttribute(name);\n } else {\n node.setAttribute(name, '' + value);\n }\n } else if (\"production\" !== process.env.NODE_ENV) {\n warnUnknownProperty(name);\n }\n },\n\n /**\n * Deletes the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n */\n deleteValueForProperty: function(node, name) {\n if (DOMProperty.isStandardName.hasOwnProperty(name) &&\n DOMProperty.isStandardName[name]) {\n var mutationMethod = DOMProperty.getMutationMethod[name];\n if (mutationMethod) {\n mutationMethod(node, undefined);\n } else if (DOMProperty.mustUseAttribute[name]) {\n node.removeAttribute(DOMProperty.getAttributeName[name]);\n } else {\n var propName = DOMProperty.getPropertyName[name];\n var defaultValue = DOMProperty.getDefaultValueForProperty(\n node.nodeName,\n propName\n );\n if (!DOMProperty.hasSideEffects[name] ||\n ('' + node[propName]) !== defaultValue) {\n node[propName] = defaultValue;\n }\n }\n } else if (DOMProperty.isCustomAttribute(name)) {\n node.removeAttribute(name);\n } else if (\"production\" !== process.env.NODE_ENV) {\n warnUnknownProperty(name);\n }\n }\n\n};\n\nmodule.exports = DOMPropertyOperations;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/DOMPropertyOperations.js\n ** module id = 48\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/DOMPropertyOperations.js?");
  731. /***/ },
  732. /* 49 */
  733. /***/ function(module, exports, __webpack_require__) {
  734. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPluginUtils\n */\n\n\"use strict\";\n\nvar EventConstants = __webpack_require__(33);\n\nvar invariant = __webpack_require__(27);\n\n/**\n * Injected dependencies:\n */\n\n/**\n * - `Mount`: [required] Module that can convert between React dom IDs and\n * actual node references.\n */\nvar injection = {\n Mount: null,\n injectMount: function(InjectedMount) {\n injection.Mount = InjectedMount;\n if (\"production\" !== process.env.NODE_ENV) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n InjectedMount && InjectedMount.getNode,\n 'EventPluginUtils.injection.injectMount(...): Injected Mount module ' +\n 'is missing getNode.'\n ) : invariant(InjectedMount && InjectedMount.getNode));\n }\n }\n};\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nfunction isEndish(topLevelType) {\n return topLevelType === topLevelTypes.topMouseUp ||\n topLevelType === topLevelTypes.topTouchEnd ||\n topLevelType === topLevelTypes.topTouchCancel;\n}\n\nfunction isMoveish(topLevelType) {\n return topLevelType === topLevelTypes.topMouseMove ||\n topLevelType === topLevelTypes.topTouchMove;\n}\nfunction isStartish(topLevelType) {\n return topLevelType === topLevelTypes.topMouseDown ||\n topLevelType === topLevelTypes.topTouchStart;\n}\n\n\nvar validateEventDispatches;\nif (\"production\" !== process.env.NODE_ENV) {\n validateEventDispatches = function(event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchIDs = event._dispatchIDs;\n\n var listenersIsArr = Array.isArray(dispatchListeners);\n var idsIsArr = Array.isArray(dispatchIDs);\n var IDsLen = idsIsArr ? dispatchIDs.length : dispatchIDs ? 1 : 0;\n var listenersLen = listenersIsArr ?\n dispatchListeners.length :\n dispatchListeners ? 1 : 0;\n\n (\"production\" !== process.env.NODE_ENV ? invariant(\n idsIsArr === listenersIsArr && IDsLen === listenersLen,\n 'EventPluginUtils: Invalid `event`.'\n ) : invariant(idsIsArr === listenersIsArr && IDsLen === listenersLen));\n };\n}\n\n/**\n * Invokes `cb(event, listener, id)`. Avoids using call if no scope is\n * provided. The `(listener,id)` pair effectively forms the \"dispatch\" but are\n * kept separate to conserve memory.\n */\nfunction forEachEventDispatch(event, cb) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchIDs = event._dispatchIDs;\n if (\"production\" !== process.env.NODE_ENV) {\n validateEventDispatches(event);\n }\n if (Array.isArray(dispatchListeners)) {\n for (var i = 0; i < dispatchListeners.length; i++) {\n if (event.isPropagationStopped()) {\n break;\n }\n // Listeners and IDs are two parallel arrays that are always in sync.\n cb(event, dispatchListeners[i], dispatchIDs[i]);\n }\n } else if (dispatchListeners) {\n cb(event, dispatchListeners, dispatchIDs);\n }\n}\n\n/**\n * Default implementation of PluginModule.executeDispatch().\n * @param {SyntheticEvent} SyntheticEvent to handle\n * @param {function} Application-level callback\n * @param {string} domID DOM id to pass to the callback.\n */\nfunction executeDispatch(event, listener, domID) {\n event.currentTarget = injection.Mount.getNode(domID);\n var returnValue = listener(event, domID);\n event.currentTarget = null;\n return returnValue;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches.\n */\nfunction executeDispatchesInOrder(event, executeDispatch) {\n forEachEventDispatch(event, executeDispatch);\n event._dispatchListeners = null;\n event._dispatchIDs = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches, but stops\n * at the first dispatch execution returning true, and returns that id.\n *\n * @return id of the first dispatch execution who's listener returns true, or\n * null if no listener returned true.\n */\nfunction executeDispatchesInOrderStopAtTrueImpl(event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchIDs = event._dispatchIDs;\n if (\"production\" !== process.env.NODE_ENV) {\n validateEventDispatches(event);\n }\n if (Array.isArray(dispatchListeners)) {\n for (var i = 0; i < dispatchListeners.length; i++) {\n if (event.isPropagationStopped()) {\n break;\n }\n // Listeners and IDs are two parallel arrays that are always in sync.\n if (dispatchListeners[i](event, dispatchIDs[i])) {\n return dispatchIDs[i];\n }\n }\n } else if (dispatchListeners) {\n if (dispatchListeners(event, dispatchIDs)) {\n return dispatchIDs;\n }\n }\n return null;\n}\n\n/**\n * @see executeDispatchesInOrderStopAtTrueImpl\n */\nfunction executeDispatchesInOrderStopAtTrue(event) {\n var ret = executeDispatchesInOrderStopAtTrueImpl(event);\n event._dispatchIDs = null;\n event._dispatchListeners = null;\n return ret;\n}\n\n/**\n * Execution of a \"direct\" dispatch - there must be at most one dispatch\n * accumulated on the event or it is considered an error. It doesn't really make\n * sense for an event with multiple dispatches (bubbled) to keep track of the\n * return values at each dispatch execution, but it does tend to make sense when\n * dealing with \"direct\" dispatches.\n *\n * @return The return value of executing the single dispatch.\n */\nfunction executeDirectDispatch(event) {\n if (\"production\" !== process.env.NODE_ENV) {\n validateEventDispatches(event);\n }\n var dispatchListener = event._dispatchListeners;\n var dispatchID = event._dispatchIDs;\n (\"production\" !== process.env.NODE_ENV ? invariant(\n !Array.isArray(dispatchListener),\n 'executeDirectDispatch(...): Invalid `event`.'\n ) : invariant(!Array.isArray(dispatchListener)));\n var res = dispatchListener ?\n dispatchListener(event, dispatchID) :\n null;\n event._dispatchListeners = null;\n event._dispatchIDs = null;\n return res;\n}\n\n/**\n * @param {SyntheticEvent} event\n * @return {bool} True iff number of dispatches accumulated is greater than 0.\n */\nfunction hasDispatches(event) {\n return !!event._dispatchListeners;\n}\n\n/**\n * General utilities that are useful in creating custom Event Plugins.\n */\nvar EventPluginUtils = {\n isEndish: isEndish,\n isMoveish: isMoveish,\n isStartish: isStartish,\n\n executeDirectDispatch: executeDirectDispatch,\n executeDispatch: executeDispatch,\n executeDispatchesInOrder: executeDispatchesInOrder,\n executeDispatchesInOrderStopAtTrue: executeDispatchesInOrderStopAtTrue,\n hasDispatches: hasDispatches,\n injection: injection,\n useTouchEvents: false\n};\n\nmodule.exports = EventPluginUtils;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/EventPluginUtils.js\n ** module id = 49\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/EventPluginUtils.js?");
  735. /***/ },
  736. /* 50 */
  737. /***/ function(module, exports, __webpack_require__) {
  738. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactChildren\n */\n\n\"use strict\";\n\nvar PooledClass = __webpack_require__(72);\n\nvar traverseAllChildren = __webpack_require__(73);\nvar warning = __webpack_require__(29);\n\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\nvar threeArgumentPooler = PooledClass.threeArgumentPooler;\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * traversal. Allows avoiding binding callbacks.\n *\n * @constructor ForEachBookKeeping\n * @param {!function} forEachFunction Function to perform traversal with.\n * @param {?*} forEachContext Context to perform context with.\n */\nfunction ForEachBookKeeping(forEachFunction, forEachContext) {\n this.forEachFunction = forEachFunction;\n this.forEachContext = forEachContext;\n}\nPooledClass.addPoolingTo(ForEachBookKeeping, twoArgumentPooler);\n\nfunction forEachSingleChild(traverseContext, child, name, i) {\n var forEachBookKeeping = traverseContext;\n forEachBookKeeping.forEachFunction.call(\n forEachBookKeeping.forEachContext, child, i);\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc.\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n if (children == null) {\n return children;\n }\n\n var traverseContext =\n ForEachBookKeeping.getPooled(forEachFunc, forEachContext);\n traverseAllChildren(children, forEachSingleChild, traverseContext);\n ForEachBookKeeping.release(traverseContext);\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * mapping. Allows avoiding binding callbacks.\n *\n * @constructor MapBookKeeping\n * @param {!*} mapResult Object containing the ordered map of results.\n * @param {!function} mapFunction Function to perform mapping with.\n * @param {?*} mapContext Context to perform mapping with.\n */\nfunction MapBookKeeping(mapResult, mapFunction, mapContext) {\n this.mapResult = mapResult;\n this.mapFunction = mapFunction;\n this.mapContext = mapContext;\n}\nPooledClass.addPoolingTo(MapBookKeeping, threeArgumentPooler);\n\nfunction mapSingleChildIntoContext(traverseContext, child, name, i) {\n var mapBookKeeping = traverseContext;\n var mapResult = mapBookKeeping.mapResult;\n\n var keyUnique = !mapResult.hasOwnProperty(name);\n (\"production\" !== process.env.NODE_ENV ? warning(\n keyUnique,\n 'ReactChildren.map(...): Encountered two children with the same key, ' +\n '`%s`. Child keys must be unique; when two children share a key, only ' +\n 'the first child will be used.',\n name\n ) : null);\n\n if (keyUnique) {\n var mappedChild =\n mapBookKeeping.mapFunction.call(mapBookKeeping.mapContext, child, i);\n mapResult[name] = mappedChild;\n }\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * The provided mapFunction(child, key, index) will be called for each\n * leaf child.\n *\n * TODO: This may likely break any calls to `ReactChildren.map` that were\n * previously relying on the fact that we guarded against null children.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} mapFunction.\n * @param {*} mapContext Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n if (children == null) {\n return children;\n }\n\n var mapResult = {};\n var traverseContext = MapBookKeeping.getPooled(mapResult, func, context);\n traverseAllChildren(children, mapSingleChildIntoContext, traverseContext);\n MapBookKeeping.release(traverseContext);\n return mapResult;\n}\n\nfunction forEachSingleChildDummy(traverseContext, child, name, i) {\n return null;\n}\n\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\nfunction countChildren(children, context) {\n return traverseAllChildren(children, forEachSingleChildDummy, null);\n}\n\nvar ReactChildren = {\n forEach: forEachChildren,\n map: mapChildren,\n count: countChildren\n};\n\nmodule.exports = ReactChildren;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactChildren.js\n ** module id = 50\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactChildren.js?");
  739. /***/ },
  740. /* 51 */
  741. /***/ function(module, exports, __webpack_require__) {
  742. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponent\n */\n\n\"use strict\";\n\nvar ReactElement = __webpack_require__(19);\nvar ReactOwner = __webpack_require__(76);\nvar ReactUpdates = __webpack_require__(77);\n\nvar assign = __webpack_require__(38);\nvar invariant = __webpack_require__(27);\nvar keyMirror = __webpack_require__(63);\n\n/**\n * Every React component is in one of these life cycles.\n */\nvar ComponentLifeCycle = keyMirror({\n /**\n * Mounted components have a DOM node representation and are capable of\n * receiving new props.\n */\n MOUNTED: null,\n /**\n * Unmounted components are inactive and cannot receive new props.\n */\n UNMOUNTED: null\n});\n\nvar injected = false;\n\n/**\n * Optionally injectable environment dependent cleanup hook. (server vs.\n * browser etc). Example: A browser system caches DOM nodes based on component\n * ID and must remove that cache entry when this instance is unmounted.\n *\n * @private\n */\nvar unmountIDFromEnvironment = null;\n\n/**\n * The \"image\" of a component tree, is the platform specific (typically\n * serialized) data that represents a tree of lower level UI building blocks.\n * On the web, this \"image\" is HTML markup which describes a construction of\n * low level `div` and `span` nodes. Other platforms may have different\n * encoding of this \"image\". This must be injected.\n *\n * @private\n */\nvar mountImageIntoNode = null;\n\n/**\n * Components are the basic units of composition in React.\n *\n * Every component accepts a set of keyed input parameters known as \"props\" that\n * are initialized by the constructor. Once a component is mounted, the props\n * can be mutated using `setProps` or `replaceProps`.\n *\n * Every component is capable of the following operations:\n *\n * `mountComponent`\n * Initializes the component, renders markup, and registers event listeners.\n *\n * `receiveComponent`\n * Updates the rendered DOM nodes to match the given component.\n *\n * `unmountComponent`\n * Releases any resources allocated by this component.\n *\n * Components can also be \"owned\" by other components. Being owned by another\n * component means being constructed by that component. This is different from\n * being the child of a component, which means having a DOM representation that\n * is a child of the DOM representation of that component.\n *\n * @class ReactComponent\n */\nvar ReactComponent = {\n\n injection: {\n injectEnvironment: function(ReactComponentEnvironment) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n !injected,\n 'ReactComponent: injectEnvironment() can only be called once.'\n ) : invariant(!injected));\n mountImageIntoNode = ReactComponentEnvironment.mountImageIntoNode;\n unmountIDFromEnvironment =\n ReactComponentEnvironment.unmountIDFromEnvironment;\n ReactComponent.BackendIDOperations =\n ReactComponentEnvironment.BackendIDOperations;\n injected = true;\n }\n },\n\n /**\n * @internal\n */\n LifeCycle: ComponentLifeCycle,\n\n /**\n * Injected module that provides ability to mutate individual properties.\n * Injected into the base class because many different subclasses need access\n * to this.\n *\n * @internal\n */\n BackendIDOperations: null,\n\n /**\n * Base functionality for every ReactComponent constructor. Mixed into the\n * `ReactComponent` prototype, but exposed statically for easy access.\n *\n * @lends {ReactComponent.prototype}\n */\n Mixin: {\n\n /**\n * Checks whether or not this component is mounted.\n *\n * @return {boolean} True if mounted, false otherwise.\n * @final\n * @protected\n */\n isMounted: function() {\n return this._lifeCycleState === ComponentLifeCycle.MOUNTED;\n },\n\n /**\n * Sets a subset of the props.\n *\n * @param {object} partialProps Subset of the next props.\n * @param {?function} callback Called after props are updated.\n * @final\n * @public\n */\n setProps: function(partialProps, callback) {\n // Merge with the pending element if it exists, otherwise with existing\n // element props.\n var element = this._pendingElement || this._currentElement;\n this.replaceProps(\n assign({}, element.props, partialProps),\n callback\n );\n },\n\n /**\n * Replaces all of the props.\n *\n * @param {object} props New props.\n * @param {?function} callback Called after props are updated.\n * @final\n * @public\n */\n replaceProps: function(props, callback) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n this.isMounted(),\n 'replaceProps(...): Can only update a mounted component.'\n ) : invariant(this.isMounted()));\n (\"production\" !== process.env.NODE_ENV ? invariant(\n this._mountDepth === 0,\n 'replaceProps(...): You called `setProps` or `replaceProps` on a ' +\n 'component with a parent. This is an anti-pattern since props will ' +\n 'get reactively updated when rendered. Instead, change the owner\\'s ' +\n '`render` method to pass the correct value as props to the component ' +\n 'where it is created.'\n ) : invariant(this._mountDepth === 0));\n // This is a deoptimized path. We optimize for always having a element.\n // This creates an extra internal element.\n this._pendingElement = ReactElement.cloneAndReplaceProps(\n this._pendingElement || this._currentElement,\n props\n );\n ReactUpdates.enqueueUpdate(this, callback);\n },\n\n /**\n * Schedule a partial update to the props. Only used for internal testing.\n *\n * @param {object} partialProps Subset of the next props.\n * @param {?function} callback Called after props are updated.\n * @final\n * @internal\n */\n _setPropsInternal: function(partialProps, callback) {\n // This is a deoptimized path. We optimize for always having a element.\n // This creates an extra internal element.\n var element = this._pendingElement || this._currentElement;\n this._pendingElement = ReactElement.cloneAndReplaceProps(\n element,\n assign({}, element.props, partialProps)\n );\n ReactUpdates.enqueueUpdate(this, callback);\n },\n\n /**\n * Base constructor for all React components.\n *\n * Subclasses that override this method should make sure to invoke\n * `ReactComponent.Mixin.construct.call(this, ...)`.\n *\n * @param {ReactElement} element\n * @internal\n */\n construct: function(element) {\n // This is the public exposed props object after it has been processed\n // with default props. The element's props represents the true internal\n // state of the props.\n this.props = element.props;\n // Record the component responsible for creating this component.\n // This is accessible through the element but we maintain an extra\n // field for compatibility with devtools and as a way to make an\n // incremental update. TODO: Consider deprecating this field.\n this._owner = element._owner;\n\n // All components start unmounted.\n this._lifeCycleState = ComponentLifeCycle.UNMOUNTED;\n\n // See ReactUpdates.\n this._pendingCallbacks = null;\n\n // We keep the old element and a reference to the pending element\n // to track updates.\n this._currentElement = element;\n this._pendingElement = null;\n },\n\n /**\n * Initializes the component, renders markup, and registers event listeners.\n *\n * NOTE: This does not insert any nodes into the DOM.\n *\n * Subclasses that override this method should make sure to invoke\n * `ReactComponent.Mixin.mountComponent.call(this, ...)`.\n *\n * @param {string} rootID DOM ID of the root node.\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {number} mountDepth number of components in the owner hierarchy.\n * @return {?string} Rendered markup to be inserted into the DOM.\n * @internal\n */\n mountComponent: function(rootID, transaction, mountDepth) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n !this.isMounted(),\n 'mountComponent(%s, ...): Can only mount an unmounted component. ' +\n 'Make sure to avoid storing components between renders or reusing a ' +\n 'single component instance in multiple places.',\n rootID\n ) : invariant(!this.isMounted()));\n var ref = this._currentElement.ref;\n if (ref != null) {\n var owner = this._currentElement._owner;\n ReactOwner.addComponentAsRefTo(this, ref, owner);\n }\n this._rootNodeID = rootID;\n this._lifeCycleState = ComponentLifeCycle.MOUNTED;\n this._mountDepth = mountDepth;\n // Effectively: return '';\n },\n\n /**\n * Releases any resources allocated by `mountComponent`.\n *\n * NOTE: This does not remove any nodes from the DOM.\n *\n * Subclasses that override this method should make sure to invoke\n * `ReactComponent.Mixin.unmountComponent.call(this)`.\n *\n * @internal\n */\n unmountComponent: function() {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n this.isMounted(),\n 'unmountComponent(): Can only unmount a mounted component.'\n ) : invariant(this.isMounted()));\n var ref = this._currentElement.ref;\n if (ref != null) {\n ReactOwner.removeComponentAsRefFrom(this, ref, this._owner);\n }\n unmountIDFromEnvironment(this._rootNodeID);\n this._rootNodeID = null;\n this._lifeCycleState = ComponentLifeCycle.UNMOUNTED;\n },\n\n /**\n * Given a new instance of this component, updates the rendered DOM nodes\n * as if that instance was rendered instead.\n *\n * Subclasses that override this method should make sure to invoke\n * `ReactComponent.Mixin.receiveComponent.call(this, ...)`.\n *\n * @param {object} nextComponent Next set of properties.\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n receiveComponent: function(nextElement, transaction) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n this.isMounted(),\n 'receiveComponent(...): Can only update a mounted component.'\n ) : invariant(this.isMounted()));\n this._pendingElement = nextElement;\n this.performUpdateIfNecessary(transaction);\n },\n\n /**\n * If `_pendingElement` is set, update the component.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n performUpdateIfNecessary: function(transaction) {\n if (this._pendingElement == null) {\n return;\n }\n var prevElement = this._currentElement;\n var nextElement = this._pendingElement;\n this._currentElement = nextElement;\n this.props = nextElement.props;\n this._owner = nextElement._owner;\n this._pendingElement = null;\n this.updateComponent(transaction, prevElement);\n },\n\n /**\n * Updates the component's currently mounted representation.\n *\n * @param {ReactReconcileTransaction} transaction\n * @param {object} prevElement\n * @internal\n */\n updateComponent: function(transaction, prevElement) {\n var nextElement = this._currentElement;\n\n // If either the owner or a `ref` has changed, make sure the newest owner\n // has stored a reference to `this`, and the previous owner (if different)\n // has forgotten the reference to `this`. We use the element instead\n // of the public this.props because the post processing cannot determine\n // a ref. The ref conceptually lives on the element.\n\n // TODO: Should this even be possible? The owner cannot change because\n // it's forbidden by shouldUpdateReactComponent. The ref can change\n // if you swap the keys of but not the refs. Reconsider where this check\n // is made. It probably belongs where the key checking and\n // instantiateReactComponent is done.\n\n if (nextElement._owner !== prevElement._owner ||\n nextElement.ref !== prevElement.ref) {\n if (prevElement.ref != null) {\n ReactOwner.removeComponentAsRefFrom(\n this, prevElement.ref, prevElement._owner\n );\n }\n // Correct, even if the owner is the same, and only the ref has changed.\n if (nextElement.ref != null) {\n ReactOwner.addComponentAsRefTo(\n this,\n nextElement.ref,\n nextElement._owner\n );\n }\n }\n },\n\n /**\n * Mounts this component and inserts it into the DOM.\n *\n * @param {string} rootID DOM ID of the root node.\n * @param {DOMElement} container DOM element to mount into.\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n * @final\n * @internal\n * @see {ReactMount.render}\n */\n mountComponentIntoNode: function(rootID, container, shouldReuseMarkup) {\n var transaction = ReactUpdates.ReactReconcileTransaction.getPooled();\n transaction.perform(\n this._mountComponentIntoNode,\n this,\n rootID,\n container,\n transaction,\n shouldReuseMarkup\n );\n ReactUpdates.ReactReconcileTransaction.release(transaction);\n },\n\n /**\n * @param {string} rootID DOM ID of the root node.\n * @param {DOMElement} container DOM element to mount into.\n * @param {ReactReconcileTransaction} transaction\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n * @final\n * @private\n */\n _mountComponentIntoNode: function(\n rootID,\n container,\n transaction,\n shouldReuseMarkup) {\n var markup = this.mountComponent(rootID, transaction, 0);\n mountImageIntoNode(markup, container, shouldReuseMarkup);\n },\n\n /**\n * Checks if this component is owned by the supplied `owner` component.\n *\n * @param {ReactComponent} owner Component to check.\n * @return {boolean} True if `owners` owns this component.\n * @final\n * @internal\n */\n isOwnedBy: function(owner) {\n return this._owner === owner;\n },\n\n /**\n * Gets another component, that shares the same owner as this one, by ref.\n *\n * @param {string} ref of a sibling Component.\n * @return {?ReactComponent} the actual sibling Component.\n * @final\n * @internal\n */\n getSiblingByRef: function(ref) {\n var owner = this._owner;\n if (!owner || !owner.refs) {\n return null;\n }\n return owner.refs[ref];\n }\n }\n};\n\nmodule.exports = ReactComponent;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactComponent.js\n ** module id = 51\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactComponent.js?");
  743. /***/ },
  744. /* 52 */
  745. /***/ function(module, exports, __webpack_require__) {
  746. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactCompositeComponent\n */\n\n\"use strict\";\n\nvar ReactComponent = __webpack_require__(51);\nvar ReactContext = __webpack_require__(40);\nvar ReactCurrentOwner = __webpack_require__(18);\nvar ReactElement = __webpack_require__(19);\nvar ReactElementValidator = __webpack_require__(53);\nvar ReactEmptyComponent = __webpack_require__(45);\nvar ReactErrorUtils = __webpack_require__(111);\nvar ReactLegacyElement = __webpack_require__(20);\nvar ReactOwner = __webpack_require__(76);\nvar ReactPerf = __webpack_require__(22);\nvar ReactPropTransferer = __webpack_require__(112);\nvar ReactPropTypeLocations = __webpack_require__(74);\nvar ReactPropTypeLocationNames = __webpack_require__(104);\nvar ReactUpdates = __webpack_require__(77);\n\nvar assign = __webpack_require__(38);\nvar instantiateReactComponent = __webpack_require__(26);\nvar invariant = __webpack_require__(27);\nvar keyMirror = __webpack_require__(63);\nvar keyOf = __webpack_require__(110);\nvar monitorCodeUse = __webpack_require__(41);\nvar mapObject = __webpack_require__(75);\nvar shouldUpdateReactComponent = __webpack_require__(28);\nvar warning = __webpack_require__(29);\n\nvar MIXINS_KEY = keyOf({mixins: null});\n\n/**\n * Policies that describe methods in `ReactCompositeComponentInterface`.\n */\nvar SpecPolicy = keyMirror({\n /**\n * These methods may be defined only once by the class specification or mixin.\n */\n DEFINE_ONCE: null,\n /**\n * These methods may be defined by both the class specification and mixins.\n * Subsequent definitions will be chained. These methods must return void.\n */\n DEFINE_MANY: null,\n /**\n * These methods are overriding the base ReactCompositeComponent class.\n */\n OVERRIDE_BASE: null,\n /**\n * These methods are similar to DEFINE_MANY, except we assume they return\n * objects. We try to merge the keys of the return values of all the mixed in\n * functions. If there is a key conflict we throw.\n */\n DEFINE_MANY_MERGED: null\n});\n\n\nvar injectedMixins = [];\n\n/**\n * Composite components are higher-level components that compose other composite\n * or native components.\n *\n * To create a new type of `ReactCompositeComponent`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return <div>Hello World</div>;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactCompositeComponentInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will available on the prototype.\n *\n * @interface ReactCompositeComponentInterface\n * @internal\n */\nvar ReactCompositeComponentInterface = {\n\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: SpecPolicy.DEFINE_MANY,\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: SpecPolicy.DEFINE_MANY,\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: SpecPolicy.DEFINE_MANY,\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: SpecPolicy.DEFINE_MANY,\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: SpecPolicy.DEFINE_MANY,\n\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: SpecPolicy.DEFINE_MANY_MERGED,\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: SpecPolicy.DEFINE_MANY_MERGED,\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: SpecPolicy.DEFINE_MANY_MERGED,\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return <div>Hello, {name}!</div>;\n * }\n *\n * @return {ReactComponent}\n * @nosideeffects\n * @required\n */\n render: SpecPolicy.DEFINE_ONCE,\n\n\n\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: SpecPolicy.DEFINE_MANY,\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: SpecPolicy.DEFINE_MANY,\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: SpecPolicy.DEFINE_MANY,\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: SpecPolicy.DEFINE_ONCE,\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: SpecPolicy.DEFINE_MANY,\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: SpecPolicy.DEFINE_MANY,\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: SpecPolicy.DEFINE_MANY,\n\n\n\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: SpecPolicy.OVERRIDE_BASE\n\n};\n\n/**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\nvar RESERVED_SPEC_KEYS = {\n displayName: function(Constructor, displayName) {\n Constructor.displayName = displayName;\n },\n mixins: function(Constructor, mixins) {\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n mixSpecIntoComponent(Constructor, mixins[i]);\n }\n }\n },\n childContextTypes: function(Constructor, childContextTypes) {\n validateTypeDef(\n Constructor,\n childContextTypes,\n ReactPropTypeLocations.childContext\n );\n Constructor.childContextTypes = assign(\n {},\n Constructor.childContextTypes,\n childContextTypes\n );\n },\n contextTypes: function(Constructor, contextTypes) {\n validateTypeDef(\n Constructor,\n contextTypes,\n ReactPropTypeLocations.context\n );\n Constructor.contextTypes = assign(\n {},\n Constructor.contextTypes,\n contextTypes\n );\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function(Constructor, getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(\n Constructor.getDefaultProps,\n getDefaultProps\n );\n } else {\n Constructor.getDefaultProps = getDefaultProps;\n }\n },\n propTypes: function(Constructor, propTypes) {\n validateTypeDef(\n Constructor,\n propTypes,\n ReactPropTypeLocations.prop\n );\n Constructor.propTypes = assign(\n {},\n Constructor.propTypes,\n propTypes\n );\n },\n statics: function(Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n }\n};\n\nfunction getDeclarationErrorAddendum(component) {\n var owner = component._owner || null;\n if (owner && owner.constructor && owner.constructor.displayName) {\n return ' Check the render method of `' + owner.constructor.displayName +\n '`.';\n }\n return '';\n}\n\nfunction validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n typeof typeDef[propName] == 'function',\n '%s: %s type `%s` is invalid; it must be a function, usually from ' +\n 'React.PropTypes.',\n Constructor.displayName || 'ReactCompositeComponent',\n ReactPropTypeLocationNames[location],\n propName\n ) : invariant(typeof typeDef[propName] == 'function'));\n }\n }\n}\n\nfunction validateMethodOverride(proto, name) {\n var specPolicy = ReactCompositeComponentInterface.hasOwnProperty(name) ?\n ReactCompositeComponentInterface[name] :\n null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactCompositeComponentMixin.hasOwnProperty(name)) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n specPolicy === SpecPolicy.OVERRIDE_BASE,\n 'ReactCompositeComponentInterface: You are attempting to override ' +\n '`%s` from your class specification. Ensure that your method names ' +\n 'do not overlap with React methods.',\n name\n ) : invariant(specPolicy === SpecPolicy.OVERRIDE_BASE));\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (proto.hasOwnProperty(name)) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n specPolicy === SpecPolicy.DEFINE_MANY ||\n specPolicy === SpecPolicy.DEFINE_MANY_MERGED,\n 'ReactCompositeComponentInterface: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be due ' +\n 'to a mixin.',\n name\n ) : invariant(specPolicy === SpecPolicy.DEFINE_MANY ||\n specPolicy === SpecPolicy.DEFINE_MANY_MERGED));\n }\n}\n\nfunction validateLifeCycleOnReplaceState(instance) {\n var compositeLifeCycleState = instance._compositeLifeCycleState;\n (\"production\" !== process.env.NODE_ENV ? invariant(\n instance.isMounted() ||\n compositeLifeCycleState === CompositeLifeCycle.MOUNTING,\n 'replaceState(...): Can only update a mounted or mounting component.'\n ) : invariant(instance.isMounted() ||\n compositeLifeCycleState === CompositeLifeCycle.MOUNTING));\n (\"production\" !== process.env.NODE_ENV ? invariant(\n ReactCurrentOwner.current == null,\n 'replaceState(...): Cannot update during an existing state transition ' +\n '(such as within `render`). Render methods should be a pure function ' +\n 'of props and state.'\n ) : invariant(ReactCurrentOwner.current == null));\n (\"production\" !== process.env.NODE_ENV ? invariant(compositeLifeCycleState !== CompositeLifeCycle.UNMOUNTING,\n 'replaceState(...): Cannot update while unmounting component. This ' +\n 'usually means you called setState() on an unmounted component.'\n ) : invariant(compositeLifeCycleState !== CompositeLifeCycle.UNMOUNTING));\n}\n\n/**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building `ReactCompositeComponent` classses.\n */\nfunction mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n return;\n }\n\n (\"production\" !== process.env.NODE_ENV ? invariant(\n !ReactLegacyElement.isValidFactory(spec),\n 'ReactCompositeComponent: You\\'re attempting to ' +\n 'use a component class as a mixin. Instead, just use a regular object.'\n ) : invariant(!ReactLegacyElement.isValidFactory(spec)));\n (\"production\" !== process.env.NODE_ENV ? invariant(\n !ReactElement.isValidElement(spec),\n 'ReactCompositeComponent: You\\'re attempting to ' +\n 'use a component as a mixin. Instead, just use a regular object.'\n ) : invariant(!ReactElement.isValidElement(spec)));\n\n var proto = Constructor.prototype;\n\n // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above\n continue;\n }\n\n var property = spec[name];\n validateMethodOverride(proto, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactCompositeComponent methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isCompositeComponentMethod =\n ReactCompositeComponentInterface.hasOwnProperty(name);\n var isAlreadyDefined = proto.hasOwnProperty(name);\n var markedDontBind = property && property.__reactDontBind;\n var isFunction = typeof property === 'function';\n var shouldAutoBind =\n isFunction &&\n !isCompositeComponentMethod &&\n !isAlreadyDefined &&\n !markedDontBind;\n\n if (shouldAutoBind) {\n if (!proto.__reactAutoBindMap) {\n proto.__reactAutoBindMap = {};\n }\n proto.__reactAutoBindMap[name] = property;\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactCompositeComponentInterface[name];\n\n // These cases should already be caught by validateMethodOverride\n (\"production\" !== process.env.NODE_ENV ? invariant(\n isCompositeComponentMethod && (\n specPolicy === SpecPolicy.DEFINE_MANY_MERGED ||\n specPolicy === SpecPolicy.DEFINE_MANY\n ),\n 'ReactCompositeComponent: Unexpected spec policy %s for key %s ' +\n 'when mixing in component specs.',\n specPolicy,\n name\n ) : invariant(isCompositeComponentMethod && (\n specPolicy === SpecPolicy.DEFINE_MANY_MERGED ||\n specPolicy === SpecPolicy.DEFINE_MANY\n )));\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n if (specPolicy === SpecPolicy.DEFINE_MANY_MERGED) {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === SpecPolicy.DEFINE_MANY) {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (\"production\" !== process.env.NODE_ENV) {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n}\n\nfunction mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n for (var name in statics) {\n var property = statics[name];\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = name in RESERVED_SPEC_KEYS;\n (\"production\" !== process.env.NODE_ENV ? invariant(\n !isReserved,\n 'ReactCompositeComponent: You are attempting to define a reserved ' +\n 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' +\n 'as an instance property instead; it will still be accessible on the ' +\n 'constructor.',\n name\n ) : invariant(!isReserved));\n\n var isInherited = name in Constructor;\n (\"production\" !== process.env.NODE_ENV ? invariant(\n !isInherited,\n 'ReactCompositeComponent: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be ' +\n 'due to a mixin.',\n name\n ) : invariant(!isInherited));\n Constructor[name] = property;\n }\n}\n\n/**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\nfunction mergeObjectsWithNoDuplicateKeys(one, two) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n one && two && typeof one === 'object' && typeof two === 'object',\n 'mergeObjectsWithNoDuplicateKeys(): Cannot merge non-objects'\n ) : invariant(one && two && typeof one === 'object' && typeof two === 'object'));\n\n mapObject(two, function(value, key) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n one[key] === undefined,\n 'mergeObjectsWithNoDuplicateKeys(): ' +\n 'Tried to merge two objects with the same key: `%s`. This conflict ' +\n 'may be due to a mixin; in particular, this may be caused by two ' +\n 'getInitialState() or getDefaultProps() methods returning objects ' +\n 'with clashing keys.',\n key\n ) : invariant(one[key] === undefined));\n one[key] = value;\n });\n return one;\n}\n\n/**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\nfunction createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n return mergeObjectsWithNoDuplicateKeys(a, b);\n };\n}\n\n/**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\nfunction createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n}\n\n/**\n * `ReactCompositeComponent` maintains an auxiliary life cycle state in\n * `this._compositeLifeCycleState` (which can be null).\n *\n * This is different from the life cycle state maintained by `ReactComponent` in\n * `this._lifeCycleState`. The following diagram shows how the states overlap in\n * time. There are times when the CompositeLifeCycle is null - at those times it\n * is only meaningful to look at ComponentLifeCycle alone.\n *\n * Top Row: ReactComponent.ComponentLifeCycle\n * Low Row: ReactComponent.CompositeLifeCycle\n *\n * +-------+---------------------------------+--------+\n * | UN | MOUNTED | UN |\n * |MOUNTED| | MOUNTED|\n * +-------+---------------------------------+--------+\n * | ^--------+ +-------+ +--------^ |\n * | | | | | | | |\n * | 0--|MOUNTING|-0-|RECEIVE|-0-| UN |--->0 |\n * | | | |PROPS | |MOUNTING| |\n * | | | | | | | |\n * | | | | | | | |\n * | +--------+ +-------+ +--------+ |\n * | | | |\n * +-------+---------------------------------+--------+\n */\nvar CompositeLifeCycle = keyMirror({\n /**\n * Components in the process of being mounted respond to state changes\n * differently.\n */\n MOUNTING: null,\n /**\n * Components in the process of being unmounted are guarded against state\n * changes.\n */\n UNMOUNTING: null,\n /**\n * Components that are mounted and receiving new props respond to state\n * changes differently.\n */\n RECEIVING_PROPS: null\n});\n\n/**\n * @lends {ReactCompositeComponent.prototype}\n */\nvar ReactCompositeComponentMixin = {\n\n /**\n * Base constructor for all composite component.\n *\n * @param {ReactElement} element\n * @final\n * @internal\n */\n construct: function(element) {\n // Children can be either an array or more than one argument\n ReactComponent.Mixin.construct.apply(this, arguments);\n ReactOwner.Mixin.construct.apply(this, arguments);\n\n this.state = null;\n this._pendingState = null;\n\n // This is the public post-processed context. The real context and pending\n // context lives on the element.\n this.context = null;\n\n this._compositeLifeCycleState = null;\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function() {\n return ReactComponent.Mixin.isMounted.call(this) &&\n this._compositeLifeCycleState !== CompositeLifeCycle.MOUNTING;\n },\n\n /**\n * Initializes the component, renders markup, and registers event listeners.\n *\n * @param {string} rootID DOM ID of the root node.\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {number} mountDepth number of components in the owner hierarchy\n * @return {?string} Rendered markup to be inserted into the DOM.\n * @final\n * @internal\n */\n mountComponent: ReactPerf.measure(\n 'ReactCompositeComponent',\n 'mountComponent',\n function(rootID, transaction, mountDepth) {\n ReactComponent.Mixin.mountComponent.call(\n this,\n rootID,\n transaction,\n mountDepth\n );\n this._compositeLifeCycleState = CompositeLifeCycle.MOUNTING;\n\n if (this.__reactAutoBindMap) {\n this._bindAutoBindMethods();\n }\n\n this.context = this._processContext(this._currentElement._context);\n this.props = this._processProps(this.props);\n\n this.state = this.getInitialState ? this.getInitialState() : null;\n (\"production\" !== process.env.NODE_ENV ? invariant(\n typeof this.state === 'object' && !Array.isArray(this.state),\n '%s.getInitialState(): must return an object or null',\n this.constructor.displayName || 'ReactCompositeComponent'\n ) : invariant(typeof this.state === 'object' && !Array.isArray(this.state)));\n\n this._pendingState = null;\n this._pendingForceUpdate = false;\n\n if (this.componentWillMount) {\n this.componentWillMount();\n // When mounting, calls to `setState` by `componentWillMount` will set\n // `this._pendingState` without triggering a re-render.\n if (this._pendingState) {\n this.state = this._pendingState;\n this._pendingState = null;\n }\n }\n\n this._renderedComponent = instantiateReactComponent(\n this._renderValidatedComponent(),\n this._currentElement.type // The wrapping type\n );\n\n // Done with mounting, `setState` will now trigger UI changes.\n this._compositeLifeCycleState = null;\n var markup = this._renderedComponent.mountComponent(\n rootID,\n transaction,\n mountDepth + 1\n );\n if (this.componentDidMount) {\n transaction.getReactMountReady().enqueue(this.componentDidMount, this);\n }\n return markup;\n }\n ),\n\n /**\n * Releases any resources allocated by `mountComponent`.\n *\n * @final\n * @internal\n */\n unmountComponent: function() {\n this._compositeLifeCycleState = CompositeLifeCycle.UNMOUNTING;\n if (this.componentWillUnmount) {\n this.componentWillUnmount();\n }\n this._compositeLifeCycleState = null;\n\n this._renderedComponent.unmountComponent();\n this._renderedComponent = null;\n\n ReactComponent.Mixin.unmountComponent.call(this);\n\n // Some existing components rely on this.props even after they've been\n // destroyed (in event handlers).\n // TODO: this.props = null;\n // TODO: this.state = null;\n },\n\n /**\n * Sets a subset of the state. Always use this or `replaceState` to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together. You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * @param {object} partialState Next partial state to be merged with state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\n setState: function(partialState, callback) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n typeof partialState === 'object' || partialState == null,\n 'setState(...): takes an object of state variables to update.'\n ) : invariant(typeof partialState === 'object' || partialState == null));\n if (\"production\" !== process.env.NODE_ENV){\n (\"production\" !== process.env.NODE_ENV ? warning(\n partialState != null,\n 'setState(...): You passed an undefined or null state object; ' +\n 'instead, use forceUpdate().'\n ) : null);\n }\n // Merge with `_pendingState` if it exists, otherwise with existing state.\n this.replaceState(\n assign({}, this._pendingState || this.state, partialState),\n callback\n );\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {object} completeState Next state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\n replaceState: function(completeState, callback) {\n validateLifeCycleOnReplaceState(this);\n this._pendingState = completeState;\n if (this._compositeLifeCycleState !== CompositeLifeCycle.MOUNTING) {\n // If we're in a componentWillMount handler, don't enqueue a rerender\n // because ReactUpdates assumes we're in a browser context (which is wrong\n // for server rendering) and we're about to do a render anyway.\n // TODO: The callback here is ignored when setState is called from\n // componentWillMount. Either fix it or disallow doing so completely in\n // favor of getInitialState.\n ReactUpdates.enqueueUpdate(this, callback);\n }\n },\n\n /**\n * Filters the context object to only contain keys specified in\n * `contextTypes`, and asserts that they are valid.\n *\n * @param {object} context\n * @return {?object}\n * @private\n */\n _processContext: function(context) {\n var maskedContext = null;\n var contextTypes = this.constructor.contextTypes;\n if (contextTypes) {\n maskedContext = {};\n for (var contextName in contextTypes) {\n maskedContext[contextName] = context[contextName];\n }\n if (\"production\" !== process.env.NODE_ENV) {\n this._checkPropTypes(\n contextTypes,\n maskedContext,\n ReactPropTypeLocations.context\n );\n }\n }\n return maskedContext;\n },\n\n /**\n * @param {object} currentContext\n * @return {object}\n * @private\n */\n _processChildContext: function(currentContext) {\n var childContext = this.getChildContext && this.getChildContext();\n var displayName = this.constructor.displayName || 'ReactCompositeComponent';\n if (childContext) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n typeof this.constructor.childContextTypes === 'object',\n '%s.getChildContext(): childContextTypes must be defined in order to ' +\n 'use getChildContext().',\n displayName\n ) : invariant(typeof this.constructor.childContextTypes === 'object'));\n if (\"production\" !== process.env.NODE_ENV) {\n this._checkPropTypes(\n this.constructor.childContextTypes,\n childContext,\n ReactPropTypeLocations.childContext\n );\n }\n for (var name in childContext) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n name in this.constructor.childContextTypes,\n '%s.getChildContext(): key \"%s\" is not defined in childContextTypes.',\n displayName,\n name\n ) : invariant(name in this.constructor.childContextTypes));\n }\n return assign({}, currentContext, childContext);\n }\n return currentContext;\n },\n\n /**\n * Processes props by setting default values for unspecified props and\n * asserting that the props are valid. Does not mutate its argument; returns\n * a new props object with defaults merged in.\n *\n * @param {object} newProps\n * @return {object}\n * @private\n */\n _processProps: function(newProps) {\n if (\"production\" !== process.env.NODE_ENV) {\n var propTypes = this.constructor.propTypes;\n if (propTypes) {\n this._checkPropTypes(propTypes, newProps, ReactPropTypeLocations.prop);\n }\n }\n return newProps;\n },\n\n /**\n * Assert that the props are valid\n *\n * @param {object} propTypes Map of prop name to a ReactPropType\n * @param {object} props\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @private\n */\n _checkPropTypes: function(propTypes, props, location) {\n // TODO: Stop validating prop types here and only use the element\n // validation.\n var componentName = this.constructor.displayName;\n for (var propName in propTypes) {\n if (propTypes.hasOwnProperty(propName)) {\n var error =\n propTypes[propName](props, propName, componentName, location);\n if (error instanceof Error) {\n // We may want to extend this logic for similar errors in\n // renderComponent calls, so I'm abstracting it away into\n // a function to minimize refactoring in the future\n var addendum = getDeclarationErrorAddendum(this);\n (\"production\" !== process.env.NODE_ENV ? warning(false, error.message + addendum) : null);\n }\n }\n }\n },\n\n /**\n * If any of `_pendingElement`, `_pendingState`, or `_pendingForceUpdate`\n * is set, update the component.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n performUpdateIfNecessary: function(transaction) {\n var compositeLifeCycleState = this._compositeLifeCycleState;\n // Do not trigger a state transition if we are in the middle of mounting or\n // receiving props because both of those will already be doing this.\n if (compositeLifeCycleState === CompositeLifeCycle.MOUNTING ||\n compositeLifeCycleState === CompositeLifeCycle.RECEIVING_PROPS) {\n return;\n }\n\n if (this._pendingElement == null &&\n this._pendingState == null &&\n !this._pendingForceUpdate) {\n return;\n }\n\n var nextContext = this.context;\n var nextProps = this.props;\n var nextElement = this._currentElement;\n if (this._pendingElement != null) {\n nextElement = this._pendingElement;\n nextContext = this._processContext(nextElement._context);\n nextProps = this._processProps(nextElement.props);\n this._pendingElement = null;\n\n this._compositeLifeCycleState = CompositeLifeCycle.RECEIVING_PROPS;\n if (this.componentWillReceiveProps) {\n this.componentWillReceiveProps(nextProps, nextContext);\n }\n }\n\n this._compositeLifeCycleState = null;\n\n var nextState = this._pendingState || this.state;\n this._pendingState = null;\n\n var shouldUpdate =\n this._pendingForceUpdate ||\n !this.shouldComponentUpdate ||\n this.shouldComponentUpdate(nextProps, nextState, nextContext);\n\n if (\"production\" !== process.env.NODE_ENV) {\n if (typeof shouldUpdate === \"undefined\") {\n console.warn(\n (this.constructor.displayName || 'ReactCompositeComponent') +\n '.shouldComponentUpdate(): Returned undefined instead of a ' +\n 'boolean value. Make sure to return true or false.'\n );\n }\n }\n\n if (shouldUpdate) {\n this._pendingForceUpdate = false;\n // Will set `this.props`, `this.state` and `this.context`.\n this._performComponentUpdate(\n nextElement,\n nextProps,\n nextState,\n nextContext,\n transaction\n );\n } else {\n // If it's determined that a component should not update, we still want\n // to set props and state.\n this._currentElement = nextElement;\n this.props = nextProps;\n this.state = nextState;\n this.context = nextContext;\n\n // Owner cannot change because shouldUpdateReactComponent doesn't allow\n // it. TODO: Remove this._owner completely.\n this._owner = nextElement._owner;\n }\n },\n\n /**\n * Merges new props and state, notifies delegate methods of update and\n * performs update.\n *\n * @param {ReactElement} nextElement Next element\n * @param {object} nextProps Next public object to set as properties.\n * @param {?object} nextState Next object to set as state.\n * @param {?object} nextContext Next public object to set as context.\n * @param {ReactReconcileTransaction} transaction\n * @private\n */\n _performComponentUpdate: function(\n nextElement,\n nextProps,\n nextState,\n nextContext,\n transaction\n ) {\n var prevElement = this._currentElement;\n var prevProps = this.props;\n var prevState = this.state;\n var prevContext = this.context;\n\n if (this.componentWillUpdate) {\n this.componentWillUpdate(nextProps, nextState, nextContext);\n }\n\n this._currentElement = nextElement;\n this.props = nextProps;\n this.state = nextState;\n this.context = nextContext;\n\n // Owner cannot change because shouldUpdateReactComponent doesn't allow\n // it. TODO: Remove this._owner completely.\n this._owner = nextElement._owner;\n\n this.updateComponent(\n transaction,\n prevElement\n );\n\n if (this.componentDidUpdate) {\n transaction.getReactMountReady().enqueue(\n this.componentDidUpdate.bind(this, prevProps, prevState, prevContext),\n this\n );\n }\n },\n\n receiveComponent: function(nextElement, transaction) {\n if (nextElement === this._currentElement &&\n nextElement._owner != null) {\n // Since elements are immutable after the owner is rendered,\n // we can do a cheap identity compare here to determine if this is a\n // superfluous reconcile. It's possible for state to be mutable but such\n // change should trigger an update of the owner which would recreate\n // the element. We explicitly check for the existence of an owner since\n // it's possible for a element created outside a composite to be\n // deeply mutated and reused.\n return;\n }\n\n ReactComponent.Mixin.receiveComponent.call(\n this,\n nextElement,\n transaction\n );\n },\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @param {ReactElement} prevElement\n * @internal\n * @overridable\n */\n updateComponent: ReactPerf.measure(\n 'ReactCompositeComponent',\n 'updateComponent',\n function(transaction, prevParentElement) {\n ReactComponent.Mixin.updateComponent.call(\n this,\n transaction,\n prevParentElement\n );\n\n var prevComponentInstance = this._renderedComponent;\n var prevElement = prevComponentInstance._currentElement;\n var nextElement = this._renderValidatedComponent();\n if (shouldUpdateReactComponent(prevElement, nextElement)) {\n prevComponentInstance.receiveComponent(nextElement, transaction);\n } else {\n // These two IDs are actually the same! But nothing should rely on that.\n var thisID = this._rootNodeID;\n var prevComponentID = prevComponentInstance._rootNodeID;\n prevComponentInstance.unmountComponent();\n this._renderedComponent = instantiateReactComponent(\n nextElement,\n this._currentElement.type\n );\n var nextMarkup = this._renderedComponent.mountComponent(\n thisID,\n transaction,\n this._mountDepth + 1\n );\n ReactComponent.BackendIDOperations.dangerouslyReplaceNodeWithMarkupByID(\n prevComponentID,\n nextMarkup\n );\n }\n }\n ),\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldUpdateComponent`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\n forceUpdate: function(callback) {\n var compositeLifeCycleState = this._compositeLifeCycleState;\n (\"production\" !== process.env.NODE_ENV ? invariant(\n this.isMounted() ||\n compositeLifeCycleState === CompositeLifeCycle.MOUNTING,\n 'forceUpdate(...): Can only force an update on mounted or mounting ' +\n 'components.'\n ) : invariant(this.isMounted() ||\n compositeLifeCycleState === CompositeLifeCycle.MOUNTING));\n (\"production\" !== process.env.NODE_ENV ? invariant(\n compositeLifeCycleState !== CompositeLifeCycle.UNMOUNTING &&\n ReactCurrentOwner.current == null,\n 'forceUpdate(...): Cannot force an update while unmounting component ' +\n 'or within a `render` function.'\n ) : invariant(compositeLifeCycleState !== CompositeLifeCycle.UNMOUNTING &&\n ReactCurrentOwner.current == null));\n this._pendingForceUpdate = true;\n ReactUpdates.enqueueUpdate(this, callback);\n },\n\n /**\n * @private\n */\n _renderValidatedComponent: ReactPerf.measure(\n 'ReactCompositeComponent',\n '_renderValidatedComponent',\n function() {\n var renderedComponent;\n var previousContext = ReactContext.current;\n ReactContext.current = this._processChildContext(\n this._currentElement._context\n );\n ReactCurrentOwner.current = this;\n try {\n renderedComponent = this.render();\n if (renderedComponent === null || renderedComponent === false) {\n renderedComponent = ReactEmptyComponent.getEmptyComponent();\n ReactEmptyComponent.registerNullComponentID(this._rootNodeID);\n } else {\n ReactEmptyComponent.deregisterNullComponentID(this._rootNodeID);\n }\n } finally {\n ReactContext.current = previousContext;\n ReactCurrentOwner.current = null;\n }\n (\"production\" !== process.env.NODE_ENV ? invariant(\n ReactElement.isValidElement(renderedComponent),\n '%s.render(): A valid ReactComponent must be returned. You may have ' +\n 'returned undefined, an array or some other invalid object.',\n this.constructor.displayName || 'ReactCompositeComponent'\n ) : invariant(ReactElement.isValidElement(renderedComponent)));\n return renderedComponent;\n }\n ),\n\n /**\n * @private\n */\n _bindAutoBindMethods: function() {\n for (var autoBindKey in this.__reactAutoBindMap) {\n if (!this.__reactAutoBindMap.hasOwnProperty(autoBindKey)) {\n continue;\n }\n var method = this.__reactAutoBindMap[autoBindKey];\n this[autoBindKey] = this._bindAutoBindMethod(ReactErrorUtils.guard(\n method,\n this.constructor.displayName + '.' + autoBindKey\n ));\n }\n },\n\n /**\n * Binds a method to the component.\n *\n * @param {function} method Method to be bound.\n * @private\n */\n _bindAutoBindMethod: function(method) {\n var component = this;\n var boundMethod = method.bind(component);\n if (\"production\" !== process.env.NODE_ENV) {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n boundMethod.bind = function(newThis ) {for (var args=[],$__0=1,$__1=arguments.length;$__0<$__1;$__0++) args.push(arguments[$__0]);\n // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n if (newThis !== component && newThis !== null) {\n monitorCodeUse('react_bind_warning', { component: componentName });\n console.warn(\n 'bind(): React component methods may only be bound to the ' +\n 'component instance. See ' + componentName\n );\n } else if (!args.length) {\n monitorCodeUse('react_bind_warning', { component: componentName });\n console.warn(\n 'bind(): You are binding a component method to the component. ' +\n 'React does this for you automatically in a high-performance ' +\n 'way, so you can safely remove this call. See ' + componentName\n );\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n return boundMethod;\n }\n};\n\nvar ReactCompositeComponentBase = function() {};\nassign(\n ReactCompositeComponentBase.prototype,\n ReactComponent.Mixin,\n ReactOwner.Mixin,\n ReactPropTransferer.Mixin,\n ReactCompositeComponentMixin\n);\n\n/**\n * Module for creating composite components.\n *\n * @class ReactCompositeComponent\n * @extends ReactComponent\n * @extends ReactOwner\n * @extends ReactPropTransferer\n */\nvar ReactCompositeComponent = {\n\n LifeCycle: CompositeLifeCycle,\n\n Base: ReactCompositeComponentBase,\n\n /**\n * Creates a composite component class given a class specification.\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n createClass: function(spec) {\n var Constructor = function(props) {\n // This constructor is overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted. This will later be used\n // by the stand-alone class implementation.\n };\n Constructor.prototype = new ReactCompositeComponentBase();\n Constructor.prototype.constructor = Constructor;\n\n injectedMixins.forEach(\n mixSpecIntoComponent.bind(null, Constructor)\n );\n\n mixSpecIntoComponent(Constructor, spec);\n\n // Initialize the defaultProps property after all mixins have been merged\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n (\"production\" !== process.env.NODE_ENV ? invariant(\n Constructor.prototype.render,\n 'createClass(...): Class specification must implement a `render` method.'\n ) : invariant(Constructor.prototype.render));\n\n if (\"production\" !== process.env.NODE_ENV) {\n if (Constructor.prototype.componentShouldUpdate) {\n monitorCodeUse(\n 'react_component_should_update_warning',\n { component: spec.displayName }\n );\n console.warn(\n (spec.displayName || 'A component') + ' has a method called ' +\n 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +\n 'The name is phrased as a question because the function is ' +\n 'expected to return a value.'\n );\n }\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\n for (var methodName in ReactCompositeComponentInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n if (\"production\" !== process.env.NODE_ENV) {\n return ReactLegacyElement.wrapFactory(\n ReactElementValidator.createFactory(Constructor)\n );\n }\n return ReactLegacyElement.wrapFactory(\n ReactElement.createFactory(Constructor)\n );\n },\n\n injection: {\n injectMixin: function(mixin) {\n injectedMixins.push(mixin);\n }\n }\n};\n\nmodule.exports = ReactCompositeComponent;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactCompositeComponent.js\n ** module id = 52\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactCompositeComponent.js?");
  747. /***/ },
  748. /* 53 */
  749. /***/ function(module, exports, __webpack_require__) {
  750. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactElementValidator\n */\n\n/**\n * ReactElementValidator provides a wrapper around a element factory\n * which validates the props passed to the element. This is intended to be\n * used only in DEV and could be replaced by a static type checker for languages\n * that support it.\n */\n\n\"use strict\";\n\nvar ReactElement = __webpack_require__(19);\nvar ReactPropTypeLocations = __webpack_require__(74);\nvar ReactCurrentOwner = __webpack_require__(18);\n\nvar monitorCodeUse = __webpack_require__(41);\nvar warning = __webpack_require__(29);\n\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\nvar ownerHasKeyUseWarning = {\n 'react_key_warning': {},\n 'react_numeric_key_warning': {}\n};\nvar ownerHasMonitoredObjectMap = {};\n\nvar loggedTypeFailures = {};\n\nvar NUMERIC_PROPERTY_REGEX = /^\\d+$/;\n\n/**\n * Gets the current owner's displayName for use in warnings.\n *\n * @internal\n * @return {?string} Display name or undefined\n */\nfunction getCurrentOwnerDisplayName() {\n var current = ReactCurrentOwner.current;\n return current && current.constructor.displayName || undefined;\n}\n\n/**\n * Warn if the component doesn't have an explicit key assigned to it.\n * This component is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it.\n *\n * @internal\n * @param {ReactComponent} component Component that requires a key.\n * @param {*} parentType component's parent's type.\n */\nfunction validateExplicitKey(component, parentType) {\n if (component._store.validated || component.key != null) {\n return;\n }\n component._store.validated = true;\n\n warnAndMonitorForKeyUse(\n 'react_key_warning',\n 'Each child in an array should have a unique \"key\" prop.',\n component,\n parentType\n );\n}\n\n/**\n * Warn if the key is being defined as an object property but has an incorrect\n * value.\n *\n * @internal\n * @param {string} name Property name of the key.\n * @param {ReactComponent} component Component that requires a key.\n * @param {*} parentType component's parent's type.\n */\nfunction validatePropertyKey(name, component, parentType) {\n if (!NUMERIC_PROPERTY_REGEX.test(name)) {\n return;\n }\n warnAndMonitorForKeyUse(\n 'react_numeric_key_warning',\n 'Child objects should have non-numeric keys so ordering is preserved.',\n component,\n parentType\n );\n}\n\n/**\n * Shared warning and monitoring code for the key warnings.\n *\n * @internal\n * @param {string} warningID The id used when logging.\n * @param {string} message The base warning that gets output.\n * @param {ReactComponent} component Component that requires a key.\n * @param {*} parentType component's parent's type.\n */\nfunction warnAndMonitorForKeyUse(warningID, message, component, parentType) {\n var ownerName = getCurrentOwnerDisplayName();\n var parentName = parentType.displayName;\n\n var useName = ownerName || parentName;\n var memoizer = ownerHasKeyUseWarning[warningID];\n if (memoizer.hasOwnProperty(useName)) {\n return;\n }\n memoizer[useName] = true;\n\n message += ownerName ?\n (\" Check the render method of \" + ownerName + \".\") :\n (\" Check the renderComponent call using <\" + parentName + \">.\");\n\n // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n var childOwnerName = null;\n if (component._owner && component._owner !== ReactCurrentOwner.current) {\n // Name of the component that originally created this child.\n childOwnerName = component._owner.constructor.displayName;\n\n message += (\" It was passed a child from \" + childOwnerName + \".\");\n }\n\n message += ' See http://fb.me/react-warning-keys for more information.';\n monitorCodeUse(warningID, {\n component: useName,\n componentOwner: childOwnerName\n });\n console.warn(message);\n}\n\n/**\n * Log that we're using an object map. We're considering deprecating this\n * feature and replace it with proper Map and ImmutableMap data structures.\n *\n * @internal\n */\nfunction monitorUseOfObjectMap() {\n var currentName = getCurrentOwnerDisplayName() || '';\n if (ownerHasMonitoredObjectMap.hasOwnProperty(currentName)) {\n return;\n }\n ownerHasMonitoredObjectMap[currentName] = true;\n monitorCodeUse('react_object_map_children');\n}\n\n/**\n * Ensure that every component either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {*} component Statically passed child of any type.\n * @param {*} parentType component's parent's type.\n * @return {boolean}\n */\nfunction validateChildKeys(component, parentType) {\n if (Array.isArray(component)) {\n for (var i = 0; i < component.length; i++) {\n var child = component[i];\n if (ReactElement.isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (ReactElement.isValidElement(component)) {\n // This component was passed in a valid location.\n component._store.validated = true;\n } else if (component && typeof component === 'object') {\n monitorUseOfObjectMap();\n for (var name in component) {\n validatePropertyKey(name, component[name], parentType);\n }\n }\n}\n\n/**\n * Assert that the props are valid\n *\n * @param {string} componentName Name of the component for error messages.\n * @param {object} propTypes Map of prop name to a ReactPropType\n * @param {object} props\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @private\n */\nfunction checkPropTypes(componentName, propTypes, props, location) {\n for (var propName in propTypes) {\n if (propTypes.hasOwnProperty(propName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n error = propTypes[propName](props, propName, componentName, location);\n } catch (ex) {\n error = ex;\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n // This will soon use the warning module\n monitorCodeUse(\n 'react_failed_descriptor_type_check',\n { message: error.message }\n );\n }\n }\n }\n}\n\nvar ReactElementValidator = {\n\n createElement: function(type, props, children) {\n // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n (\"production\" !== process.env.NODE_ENV ? warning(\n type != null,\n 'React.createElement: type should not be null or undefined. It should ' +\n 'be a string (for DOM elements) or a ReactClass (for composite ' +\n 'components).'\n ) : null);\n\n var element = ReactElement.createElement.apply(this, arguments);\n\n // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n if (element == null) {\n return element;\n }\n\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], type);\n }\n\n if (type) {\n var name = type.displayName;\n if (type.propTypes) {\n checkPropTypes(\n name,\n type.propTypes,\n element.props,\n ReactPropTypeLocations.prop\n );\n }\n if (type.contextTypes) {\n checkPropTypes(\n name,\n type.contextTypes,\n element._context,\n ReactPropTypeLocations.context\n );\n }\n }\n return element;\n },\n\n createFactory: function(type) {\n var validatedFactory = ReactElementValidator.createElement.bind(\n null,\n type\n );\n validatedFactory.type = type;\n return validatedFactory;\n }\n\n};\n\nmodule.exports = ReactElementValidator;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactElementValidator.js\n ** module id = 53\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactElementValidator.js?");
  751. /***/ },
  752. /* 54 */
  753. /***/ function(module, exports, __webpack_require__) {
  754. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOM\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar ReactElement = __webpack_require__(19);\nvar ReactElementValidator = __webpack_require__(53);\nvar ReactLegacyElement = __webpack_require__(20);\n\nvar mapObject = __webpack_require__(75);\n\n/**\n * Create a factory that creates HTML tag elements.\n *\n * @param {string} tag Tag name (e.g. `div`).\n * @private\n */\nfunction createDOMFactory(tag) {\n if (\"production\" !== process.env.NODE_ENV) {\n return ReactLegacyElement.markNonLegacyFactory(\n ReactElementValidator.createFactory(tag)\n );\n }\n return ReactLegacyElement.markNonLegacyFactory(\n ReactElement.createFactory(tag)\n );\n}\n\n/**\n * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes.\n * This is also accessible via `React.DOM`.\n *\n * @public\n */\nvar ReactDOM = mapObject({\n a: 'a',\n abbr: 'abbr',\n address: 'address',\n area: 'area',\n article: 'article',\n aside: 'aside',\n audio: 'audio',\n b: 'b',\n base: 'base',\n bdi: 'bdi',\n bdo: 'bdo',\n big: 'big',\n blockquote: 'blockquote',\n body: 'body',\n br: 'br',\n button: 'button',\n canvas: 'canvas',\n caption: 'caption',\n cite: 'cite',\n code: 'code',\n col: 'col',\n colgroup: 'colgroup',\n data: 'data',\n datalist: 'datalist',\n dd: 'dd',\n del: 'del',\n details: 'details',\n dfn: 'dfn',\n dialog: 'dialog',\n div: 'div',\n dl: 'dl',\n dt: 'dt',\n em: 'em',\n embed: 'embed',\n fieldset: 'fieldset',\n figcaption: 'figcaption',\n figure: 'figure',\n footer: 'footer',\n form: 'form',\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n head: 'head',\n header: 'header',\n hr: 'hr',\n html: 'html',\n i: 'i',\n iframe: 'iframe',\n img: 'img',\n input: 'input',\n ins: 'ins',\n kbd: 'kbd',\n keygen: 'keygen',\n label: 'label',\n legend: 'legend',\n li: 'li',\n link: 'link',\n main: 'main',\n map: 'map',\n mark: 'mark',\n menu: 'menu',\n menuitem: 'menuitem',\n meta: 'meta',\n meter: 'meter',\n nav: 'nav',\n noscript: 'noscript',\n object: 'object',\n ol: 'ol',\n optgroup: 'optgroup',\n option: 'option',\n output: 'output',\n p: 'p',\n param: 'param',\n picture: 'picture',\n pre: 'pre',\n progress: 'progress',\n q: 'q',\n rp: 'rp',\n rt: 'rt',\n ruby: 'ruby',\n s: 's',\n samp: 'samp',\n script: 'script',\n section: 'section',\n select: 'select',\n small: 'small',\n source: 'source',\n span: 'span',\n strong: 'strong',\n style: 'style',\n sub: 'sub',\n summary: 'summary',\n sup: 'sup',\n table: 'table',\n tbody: 'tbody',\n td: 'td',\n textarea: 'textarea',\n tfoot: 'tfoot',\n th: 'th',\n thead: 'thead',\n time: 'time',\n title: 'title',\n tr: 'tr',\n track: 'track',\n u: 'u',\n ul: 'ul',\n 'var': 'var',\n video: 'video',\n wbr: 'wbr',\n\n // SVG\n circle: 'circle',\n defs: 'defs',\n ellipse: 'ellipse',\n g: 'g',\n line: 'line',\n linearGradient: 'linearGradient',\n mask: 'mask',\n path: 'path',\n pattern: 'pattern',\n polygon: 'polygon',\n polyline: 'polyline',\n radialGradient: 'radialGradient',\n rect: 'rect',\n stop: 'stop',\n svg: 'svg',\n text: 'text',\n tspan: 'tspan'\n\n}, createDOMFactory);\n\nmodule.exports = ReactDOM;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOM.js\n ** module id = 54\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactDOM.js?");
  755. /***/ },
  756. /* 55 */
  757. /***/ function(module, exports, __webpack_require__) {
  758. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMComponent\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar CSSPropertyOperations = __webpack_require__(109);\nvar DOMProperty = __webpack_require__(16);\nvar DOMPropertyOperations = __webpack_require__(48);\nvar ReactBrowserComponentMixin = __webpack_require__(86);\nvar ReactComponent = __webpack_require__(51);\nvar ReactBrowserEventEmitter = __webpack_require__(17);\nvar ReactMount = __webpack_require__(9);\nvar ReactMultiChild = __webpack_require__(57);\nvar ReactPerf = __webpack_require__(22);\n\nvar assign = __webpack_require__(38);\nvar escapeTextForBrowser = __webpack_require__(70);\nvar invariant = __webpack_require__(27);\nvar isEventSupported = __webpack_require__(39);\nvar keyOf = __webpack_require__(110);\nvar monitorCodeUse = __webpack_require__(41);\n\nvar deleteListener = ReactBrowserEventEmitter.deleteListener;\nvar listenTo = ReactBrowserEventEmitter.listenTo;\nvar registrationNameModules = ReactBrowserEventEmitter.registrationNameModules;\n\n// For quickly matching children type, to test if can be treated as content.\nvar CONTENT_TYPES = {'string': true, 'number': true};\n\nvar STYLE = keyOf({style: null});\n\nvar ELEMENT_NODE_TYPE = 1;\n\n/**\n * @param {?object} props\n */\nfunction assertValidProps(props) {\n if (!props) {\n return;\n }\n // Note the use of `==` which checks for null or undefined.\n (\"production\" !== process.env.NODE_ENV ? invariant(\n props.children == null || props.dangerouslySetInnerHTML == null,\n 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.'\n ) : invariant(props.children == null || props.dangerouslySetInnerHTML == null));\n if (\"production\" !== process.env.NODE_ENV) {\n if (props.contentEditable && props.children != null) {\n console.warn(\n 'A component is `contentEditable` and contains `children` managed by ' +\n 'React. It is now your responsibility to guarantee that none of those '+\n 'nodes are unexpectedly modified or duplicated. This is probably not ' +\n 'intentional.'\n );\n }\n }\n (\"production\" !== process.env.NODE_ENV ? invariant(\n props.style == null || typeof props.style === 'object',\n 'The `style` prop expects a mapping from style properties to values, ' +\n 'not a string.'\n ) : invariant(props.style == null || typeof props.style === 'object'));\n}\n\nfunction putListener(id, registrationName, listener, transaction) {\n if (\"production\" !== process.env.NODE_ENV) {\n // IE8 has no API for event capturing and the `onScroll` event doesn't\n // bubble.\n if (registrationName === 'onScroll' &&\n !isEventSupported('scroll', true)) {\n monitorCodeUse('react_no_scroll_event');\n console.warn('This browser doesn\\'t support the `onScroll` event');\n }\n }\n var container = ReactMount.findReactContainerForID(id);\n if (container) {\n var doc = container.nodeType === ELEMENT_NODE_TYPE ?\n container.ownerDocument :\n container;\n listenTo(registrationName, doc);\n }\n transaction.getPutListenerQueue().enqueuePutListener(\n id,\n registrationName,\n listener\n );\n}\n\n// For HTML, certain tags should omit their close tag. We keep a whitelist for\n// those special cased tags.\n\nvar omittedCloseTags = {\n 'area': true,\n 'base': true,\n 'br': true,\n 'col': true,\n 'embed': true,\n 'hr': true,\n 'img': true,\n 'input': true,\n 'keygen': true,\n 'link': true,\n 'meta': true,\n 'param': true,\n 'source': true,\n 'track': true,\n 'wbr': true\n // NOTE: menuitem's close tag should be omitted, but that causes problems.\n};\n\n// We accept any tag to be rendered but since this gets injected into abitrary\n// HTML, we want to make sure that it's a safe tag.\n// http://www.w3.org/TR/REC-xml/#NT-Name\n\nvar VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/; // Simplified subset\nvar validatedTagCache = {};\nvar hasOwnProperty = {}.hasOwnProperty;\n\nfunction validateDangerousTag(tag) {\n if (!hasOwnProperty.call(validatedTagCache, tag)) {\n (\"production\" !== process.env.NODE_ENV ? invariant(VALID_TAG_REGEX.test(tag), 'Invalid tag: %s', tag) : invariant(VALID_TAG_REGEX.test(tag)));\n validatedTagCache[tag] = true;\n }\n}\n\n/**\n * Creates a new React class that is idempotent and capable of containing other\n * React components. It accepts event listeners and DOM properties that are\n * valid according to `DOMProperty`.\n *\n * - Event listeners: `onClick`, `onMouseDown`, etc.\n * - DOM properties: `className`, `name`, `title`, etc.\n *\n * The `style` property functions differently from the DOM API. It accepts an\n * object mapping of style properties to values.\n *\n * @constructor ReactDOMComponent\n * @extends ReactComponent\n * @extends ReactMultiChild\n */\nfunction ReactDOMComponent(tag) {\n validateDangerousTag(tag);\n this._tag = tag;\n this.tagName = tag.toUpperCase();\n}\n\nReactDOMComponent.displayName = 'ReactDOMComponent';\n\nReactDOMComponent.Mixin = {\n\n /**\n * Generates root tag markup then recurses. This method has side effects and\n * is not idempotent.\n *\n * @internal\n * @param {string} rootID The root DOM ID for this node.\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {number} mountDepth number of components in the owner hierarchy\n * @return {string} The computed markup.\n */\n mountComponent: ReactPerf.measure(\n 'ReactDOMComponent',\n 'mountComponent',\n function(rootID, transaction, mountDepth) {\n ReactComponent.Mixin.mountComponent.call(\n this,\n rootID,\n transaction,\n mountDepth\n );\n assertValidProps(this.props);\n var closeTag = omittedCloseTags[this._tag] ? '' : '</' + this._tag + '>';\n return (\n this._createOpenTagMarkupAndPutListeners(transaction) +\n this._createContentMarkup(transaction) +\n closeTag\n );\n }\n ),\n\n /**\n * Creates markup for the open tag and all attributes.\n *\n * This method has side effects because events get registered.\n *\n * Iterating over object properties is faster than iterating over arrays.\n * @see http://jsperf.com/obj-vs-arr-iteration\n *\n * @private\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @return {string} Markup of opening tag.\n */\n _createOpenTagMarkupAndPutListeners: function(transaction) {\n var props = this.props;\n var ret = '<' + this._tag;\n\n for (var propKey in props) {\n if (!props.hasOwnProperty(propKey)) {\n continue;\n }\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n if (registrationNameModules.hasOwnProperty(propKey)) {\n putListener(this._rootNodeID, propKey, propValue, transaction);\n } else {\n if (propKey === STYLE) {\n if (propValue) {\n propValue = props.style = assign({}, props.style);\n }\n propValue = CSSPropertyOperations.createMarkupForStyles(propValue);\n }\n var markup =\n DOMPropertyOperations.createMarkupForProperty(propKey, propValue);\n if (markup) {\n ret += ' ' + markup;\n }\n }\n }\n\n // For static pages, no need to put React ID and checksum. Saves lots of\n // bytes.\n if (transaction.renderToStaticMarkup) {\n return ret + '>';\n }\n\n var markupForID = DOMPropertyOperations.createMarkupForID(this._rootNodeID);\n return ret + ' ' + markupForID + '>';\n },\n\n /**\n * Creates markup for the content between the tags.\n *\n * @private\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @return {string} Content markup.\n */\n _createContentMarkup: function(transaction) {\n // Intentional use of != to avoid catching zero/false.\n var innerHTML = this.props.dangerouslySetInnerHTML;\n if (innerHTML != null) {\n if (innerHTML.__html != null) {\n return innerHTML.__html;\n }\n } else {\n var contentToUse =\n CONTENT_TYPES[typeof this.props.children] ? this.props.children : null;\n var childrenToUse = contentToUse != null ? null : this.props.children;\n if (contentToUse != null) {\n return escapeTextForBrowser(contentToUse);\n } else if (childrenToUse != null) {\n var mountImages = this.mountChildren(\n childrenToUse,\n transaction\n );\n return mountImages.join('');\n }\n }\n return '';\n },\n\n receiveComponent: function(nextElement, transaction) {\n if (nextElement === this._currentElement &&\n nextElement._owner != null) {\n // Since elements are immutable after the owner is rendered,\n // we can do a cheap identity compare here to determine if this is a\n // superfluous reconcile. It's possible for state to be mutable but such\n // change should trigger an update of the owner which would recreate\n // the element. We explicitly check for the existence of an owner since\n // it's possible for a element created outside a composite to be\n // deeply mutated and reused.\n return;\n }\n\n ReactComponent.Mixin.receiveComponent.call(\n this,\n nextElement,\n transaction\n );\n },\n\n /**\n * Updates a native DOM component after it has already been allocated and\n * attached to the DOM. Reconciles the root DOM node, then recurses.\n *\n * @param {ReactReconcileTransaction} transaction\n * @param {ReactElement} prevElement\n * @internal\n * @overridable\n */\n updateComponent: ReactPerf.measure(\n 'ReactDOMComponent',\n 'updateComponent',\n function(transaction, prevElement) {\n assertValidProps(this._currentElement.props);\n ReactComponent.Mixin.updateComponent.call(\n this,\n transaction,\n prevElement\n );\n this._updateDOMProperties(prevElement.props, transaction);\n this._updateDOMChildren(prevElement.props, transaction);\n }\n ),\n\n /**\n * Reconciles the properties by detecting differences in property values and\n * updating the DOM as necessary. This function is probably the single most\n * critical path for performance optimization.\n *\n * TODO: Benchmark whether checking for changed values in memory actually\n * improves performance (especially statically positioned elements).\n * TODO: Benchmark the effects of putting this at the top since 99% of props\n * do not change for a given reconciliation.\n * TODO: Benchmark areas that can be improved with caching.\n *\n * @private\n * @param {object} lastProps\n * @param {ReactReconcileTransaction} transaction\n */\n _updateDOMProperties: function(lastProps, transaction) {\n var nextProps = this.props;\n var propKey;\n var styleName;\n var styleUpdates;\n for (propKey in lastProps) {\n if (nextProps.hasOwnProperty(propKey) ||\n !lastProps.hasOwnProperty(propKey)) {\n continue;\n }\n if (propKey === STYLE) {\n var lastStyle = lastProps[propKey];\n for (styleName in lastStyle) {\n if (lastStyle.hasOwnProperty(styleName)) {\n styleUpdates = styleUpdates || {};\n styleUpdates[styleName] = '';\n }\n }\n } else if (registrationNameModules.hasOwnProperty(propKey)) {\n deleteListener(this._rootNodeID, propKey);\n } else if (\n DOMProperty.isStandardName[propKey] ||\n DOMProperty.isCustomAttribute(propKey)) {\n ReactComponent.BackendIDOperations.deletePropertyByID(\n this._rootNodeID,\n propKey\n );\n }\n }\n for (propKey in nextProps) {\n var nextProp = nextProps[propKey];\n var lastProp = lastProps[propKey];\n if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp) {\n continue;\n }\n if (propKey === STYLE) {\n if (nextProp) {\n nextProp = nextProps.style = assign({}, nextProp);\n }\n if (lastProp) {\n // Unset styles on `lastProp` but not on `nextProp`.\n for (styleName in lastProp) {\n if (lastProp.hasOwnProperty(styleName) &&\n (!nextProp || !nextProp.hasOwnProperty(styleName))) {\n styleUpdates = styleUpdates || {};\n styleUpdates[styleName] = '';\n }\n }\n // Update styles that changed since `lastProp`.\n for (styleName in nextProp) {\n if (nextProp.hasOwnProperty(styleName) &&\n lastProp[styleName] !== nextProp[styleName]) {\n styleUpdates = styleUpdates || {};\n styleUpdates[styleName] = nextProp[styleName];\n }\n }\n } else {\n // Relies on `updateStylesByID` not mutating `styleUpdates`.\n styleUpdates = nextProp;\n }\n } else if (registrationNameModules.hasOwnProperty(propKey)) {\n putListener(this._rootNodeID, propKey, nextProp, transaction);\n } else if (\n DOMProperty.isStandardName[propKey] ||\n DOMProperty.isCustomAttribute(propKey)) {\n ReactComponent.BackendIDOperations.updatePropertyByID(\n this._rootNodeID,\n propKey,\n nextProp\n );\n }\n }\n if (styleUpdates) {\n ReactComponent.BackendIDOperations.updateStylesByID(\n this._rootNodeID,\n styleUpdates\n );\n }\n },\n\n /**\n * Reconciles the children with the various properties that affect the\n * children content.\n *\n * @param {object} lastProps\n * @param {ReactReconcileTransaction} transaction\n */\n _updateDOMChildren: function(lastProps, transaction) {\n var nextProps = this.props;\n\n var lastContent =\n CONTENT_TYPES[typeof lastProps.children] ? lastProps.children : null;\n var nextContent =\n CONTENT_TYPES[typeof nextProps.children] ? nextProps.children : null;\n\n var lastHtml =\n lastProps.dangerouslySetInnerHTML &&\n lastProps.dangerouslySetInnerHTML.__html;\n var nextHtml =\n nextProps.dangerouslySetInnerHTML &&\n nextProps.dangerouslySetInnerHTML.__html;\n\n // Note the use of `!=` which checks for null or undefined.\n var lastChildren = lastContent != null ? null : lastProps.children;\n var nextChildren = nextContent != null ? null : nextProps.children;\n\n // If we're switching from children to content/html or vice versa, remove\n // the old content\n var lastHasContentOrHtml = lastContent != null || lastHtml != null;\n var nextHasContentOrHtml = nextContent != null || nextHtml != null;\n if (lastChildren != null && nextChildren == null) {\n this.updateChildren(null, transaction);\n } else if (lastHasContentOrHtml && !nextHasContentOrHtml) {\n this.updateTextContent('');\n }\n\n if (nextContent != null) {\n if (lastContent !== nextContent) {\n this.updateTextContent('' + nextContent);\n }\n } else if (nextHtml != null) {\n if (lastHtml !== nextHtml) {\n ReactComponent.BackendIDOperations.updateInnerHTMLByID(\n this._rootNodeID,\n nextHtml\n );\n }\n } else if (nextChildren != null) {\n this.updateChildren(nextChildren, transaction);\n }\n },\n\n /**\n * Destroys all event registrations for this instance. Does not remove from\n * the DOM. That must be done by the parent.\n *\n * @internal\n */\n unmountComponent: function() {\n this.unmountChildren();\n ReactBrowserEventEmitter.deleteAllListeners(this._rootNodeID);\n ReactComponent.Mixin.unmountComponent.call(this);\n }\n\n};\n\nassign(\n ReactDOMComponent.prototype,\n ReactComponent.Mixin,\n ReactDOMComponent.Mixin,\n ReactMultiChild.Mixin,\n ReactBrowserComponentMixin\n);\n\nmodule.exports = ReactDOMComponent;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMComponent.js\n ** module id = 55\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactDOMComponent.js?");
  759. /***/ },
  760. /* 56 */
  761. /***/ function(module, exports, __webpack_require__) {
  762. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultInjection\n */\n\n\"use strict\";\n\nvar BeforeInputEventPlugin = __webpack_require__(78);\nvar ChangeEventPlugin = __webpack_require__(79);\nvar ClientReactRootIndex = __webpack_require__(80);\nvar CompositionEventPlugin = __webpack_require__(81);\nvar DefaultEventPluginOrder = __webpack_require__(82);\nvar EnterLeaveEventPlugin = __webpack_require__(83);\nvar ExecutionEnvironment = __webpack_require__(62);\nvar HTMLDOMPropertyConfig = __webpack_require__(84);\nvar MobileSafariClickEventPlugin = __webpack_require__(85);\nvar ReactBrowserComponentMixin = __webpack_require__(86);\nvar ReactComponentBrowserEnvironment =\n __webpack_require__(87);\nvar ReactDefaultBatchingStrategy = __webpack_require__(88);\nvar ReactDOMComponent = __webpack_require__(55);\nvar ReactDOMButton = __webpack_require__(89);\nvar ReactDOMForm = __webpack_require__(90);\nvar ReactDOMImg = __webpack_require__(91);\nvar ReactDOMInput = __webpack_require__(92);\nvar ReactDOMOption = __webpack_require__(93);\nvar ReactDOMSelect = __webpack_require__(94);\nvar ReactDOMTextarea = __webpack_require__(95);\nvar ReactEventListener = __webpack_require__(96);\nvar ReactInjection = __webpack_require__(97);\nvar ReactInstanceHandles = __webpack_require__(21);\nvar ReactMount = __webpack_require__(9);\nvar SelectEventPlugin = __webpack_require__(98);\nvar ServerReactRootIndex = __webpack_require__(99);\nvar SimpleEventPlugin = __webpack_require__(100);\nvar SVGDOMPropertyConfig = __webpack_require__(101);\n\nvar createFullPageComponent = __webpack_require__(102);\n\nfunction inject() {\n ReactInjection.EventEmitter.injectReactEventListener(\n ReactEventListener\n );\n\n /**\n * Inject modules for resolving DOM hierarchy and plugin ordering.\n */\n ReactInjection.EventPluginHub.injectEventPluginOrder(DefaultEventPluginOrder);\n ReactInjection.EventPluginHub.injectInstanceHandle(ReactInstanceHandles);\n ReactInjection.EventPluginHub.injectMount(ReactMount);\n\n /**\n * Some important event plugins included by default (without having to require\n * them).\n */\n ReactInjection.EventPluginHub.injectEventPluginsByName({\n SimpleEventPlugin: SimpleEventPlugin,\n EnterLeaveEventPlugin: EnterLeaveEventPlugin,\n ChangeEventPlugin: ChangeEventPlugin,\n CompositionEventPlugin: CompositionEventPlugin,\n MobileSafariClickEventPlugin: MobileSafariClickEventPlugin,\n SelectEventPlugin: SelectEventPlugin,\n BeforeInputEventPlugin: BeforeInputEventPlugin\n });\n\n ReactInjection.NativeComponent.injectGenericComponentClass(\n ReactDOMComponent\n );\n\n ReactInjection.NativeComponent.injectComponentClasses({\n 'button': ReactDOMButton,\n 'form': ReactDOMForm,\n 'img': ReactDOMImg,\n 'input': ReactDOMInput,\n 'option': ReactDOMOption,\n 'select': ReactDOMSelect,\n 'textarea': ReactDOMTextarea,\n\n 'html': createFullPageComponent('html'),\n 'head': createFullPageComponent('head'),\n 'body': createFullPageComponent('body')\n });\n\n // This needs to happen after createFullPageComponent() otherwise the mixin\n // gets double injected.\n ReactInjection.CompositeComponent.injectMixin(ReactBrowserComponentMixin);\n\n ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig);\n ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig);\n\n ReactInjection.EmptyComponent.injectEmptyComponent('noscript');\n\n ReactInjection.Updates.injectReconcileTransaction(\n ReactComponentBrowserEnvironment.ReactReconcileTransaction\n );\n ReactInjection.Updates.injectBatchingStrategy(\n ReactDefaultBatchingStrategy\n );\n\n ReactInjection.RootIndex.injectCreateReactRootIndex(\n ExecutionEnvironment.canUseDOM ?\n ClientReactRootIndex.createReactRootIndex :\n ServerReactRootIndex.createReactRootIndex\n );\n\n ReactInjection.Component.injectEnvironment(ReactComponentBrowserEnvironment);\n\n if (\"production\" !== process.env.NODE_ENV) {\n var url = (ExecutionEnvironment.canUseDOM && window.location.href) || '';\n if ((/[?&]react_perf\\b/).test(url)) {\n var ReactDefaultPerf = __webpack_require__(103);\n ReactDefaultPerf.start();\n }\n }\n}\n\nmodule.exports = {\n inject: inject\n};\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDefaultInjection.js\n ** module id = 56\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactDefaultInjection.js?");
  763. /***/ },
  764. /* 57 */
  765. /***/ function(module, exports, __webpack_require__) {
  766. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMultiChild\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar ReactComponent = __webpack_require__(51);\nvar ReactMultiChildUpdateTypes = __webpack_require__(105);\n\nvar flattenChildren = __webpack_require__(106);\nvar instantiateReactComponent = __webpack_require__(26);\nvar shouldUpdateReactComponent = __webpack_require__(28);\n\n/**\n * Updating children of a component may trigger recursive updates. The depth is\n * used to batch recursive updates to render markup more efficiently.\n *\n * @type {number}\n * @private\n */\nvar updateDepth = 0;\n\n/**\n * Queue of update configuration objects.\n *\n * Each object has a `type` property that is in `ReactMultiChildUpdateTypes`.\n *\n * @type {array<object>}\n * @private\n */\nvar updateQueue = [];\n\n/**\n * Queue of markup to be rendered.\n *\n * @type {array<string>}\n * @private\n */\nvar markupQueue = [];\n\n/**\n * Enqueues markup to be rendered and inserted at a supplied index.\n *\n * @param {string} parentID ID of the parent component.\n * @param {string} markup Markup that renders into an element.\n * @param {number} toIndex Destination index.\n * @private\n */\nfunction enqueueMarkup(parentID, markup, toIndex) {\n // NOTE: Null values reduce hidden classes.\n updateQueue.push({\n parentID: parentID,\n parentNode: null,\n type: ReactMultiChildUpdateTypes.INSERT_MARKUP,\n markupIndex: markupQueue.push(markup) - 1,\n textContent: null,\n fromIndex: null,\n toIndex: toIndex\n });\n}\n\n/**\n * Enqueues moving an existing element to another index.\n *\n * @param {string} parentID ID of the parent component.\n * @param {number} fromIndex Source index of the existing element.\n * @param {number} toIndex Destination index of the element.\n * @private\n */\nfunction enqueueMove(parentID, fromIndex, toIndex) {\n // NOTE: Null values reduce hidden classes.\n updateQueue.push({\n parentID: parentID,\n parentNode: null,\n type: ReactMultiChildUpdateTypes.MOVE_EXISTING,\n markupIndex: null,\n textContent: null,\n fromIndex: fromIndex,\n toIndex: toIndex\n });\n}\n\n/**\n * Enqueues removing an element at an index.\n *\n * @param {string} parentID ID of the parent component.\n * @param {number} fromIndex Index of the element to remove.\n * @private\n */\nfunction enqueueRemove(parentID, fromIndex) {\n // NOTE: Null values reduce hidden classes.\n updateQueue.push({\n parentID: parentID,\n parentNode: null,\n type: ReactMultiChildUpdateTypes.REMOVE_NODE,\n markupIndex: null,\n textContent: null,\n fromIndex: fromIndex,\n toIndex: null\n });\n}\n\n/**\n * Enqueues setting the text content.\n *\n * @param {string} parentID ID of the parent component.\n * @param {string} textContent Text content to set.\n * @private\n */\nfunction enqueueTextContent(parentID, textContent) {\n // NOTE: Null values reduce hidden classes.\n updateQueue.push({\n parentID: parentID,\n parentNode: null,\n type: ReactMultiChildUpdateTypes.TEXT_CONTENT,\n markupIndex: null,\n textContent: textContent,\n fromIndex: null,\n toIndex: null\n });\n}\n\n/**\n * Processes any enqueued updates.\n *\n * @private\n */\nfunction processQueue() {\n if (updateQueue.length) {\n ReactComponent.BackendIDOperations.dangerouslyProcessChildrenUpdates(\n updateQueue,\n markupQueue\n );\n clearQueue();\n }\n}\n\n/**\n * Clears any enqueued updates.\n *\n * @private\n */\nfunction clearQueue() {\n updateQueue.length = 0;\n markupQueue.length = 0;\n}\n\n/**\n * ReactMultiChild are capable of reconciling multiple children.\n *\n * @class ReactMultiChild\n * @internal\n */\nvar ReactMultiChild = {\n\n /**\n * Provides common functionality for components that must reconcile multiple\n * children. This is used by `ReactDOMComponent` to mount, update, and\n * unmount child components.\n *\n * @lends {ReactMultiChild.prototype}\n */\n Mixin: {\n\n /**\n * Generates a \"mount image\" for each of the supplied children. In the case\n * of `ReactDOMComponent`, a mount image is a string of markup.\n *\n * @param {?object} nestedChildren Nested child maps.\n * @return {array} An array of mounted representations.\n * @internal\n */\n mountChildren: function(nestedChildren, transaction) {\n var children = flattenChildren(nestedChildren);\n var mountImages = [];\n var index = 0;\n this._renderedChildren = children;\n for (var name in children) {\n var child = children[name];\n if (children.hasOwnProperty(name)) {\n // The rendered children must be turned into instances as they're\n // mounted.\n var childInstance = instantiateReactComponent(child, null);\n children[name] = childInstance;\n // Inlined for performance, see `ReactInstanceHandles.createReactID`.\n var rootID = this._rootNodeID + name;\n var mountImage = childInstance.mountComponent(\n rootID,\n transaction,\n this._mountDepth + 1\n );\n childInstance._mountIndex = index;\n mountImages.push(mountImage);\n index++;\n }\n }\n return mountImages;\n },\n\n /**\n * Replaces any rendered children with a text content string.\n *\n * @param {string} nextContent String of content.\n * @internal\n */\n updateTextContent: function(nextContent) {\n updateDepth++;\n var errorThrown = true;\n try {\n var prevChildren = this._renderedChildren;\n // Remove any rendered children.\n for (var name in prevChildren) {\n if (prevChildren.hasOwnProperty(name)) {\n this._unmountChildByName(prevChildren[name], name);\n }\n }\n // Set new text content.\n this.setTextContent(nextContent);\n errorThrown = false;\n } finally {\n updateDepth--;\n if (!updateDepth) {\n errorThrown ? clearQueue() : processQueue();\n }\n }\n },\n\n /**\n * Updates the rendered children with new children.\n *\n * @param {?object} nextNestedChildren Nested child maps.\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n updateChildren: function(nextNestedChildren, transaction) {\n updateDepth++;\n var errorThrown = true;\n try {\n this._updateChildren(nextNestedChildren, transaction);\n errorThrown = false;\n } finally {\n updateDepth--;\n if (!updateDepth) {\n errorThrown ? clearQueue() : processQueue();\n }\n }\n },\n\n /**\n * Improve performance by isolating this hot code path from the try/catch\n * block in `updateChildren`.\n *\n * @param {?object} nextNestedChildren Nested child maps.\n * @param {ReactReconcileTransaction} transaction\n * @final\n * @protected\n */\n _updateChildren: function(nextNestedChildren, transaction) {\n var nextChildren = flattenChildren(nextNestedChildren);\n var prevChildren = this._renderedChildren;\n if (!nextChildren && !prevChildren) {\n return;\n }\n var name;\n // `nextIndex` will increment for each child in `nextChildren`, but\n // `lastIndex` will be the last index visited in `prevChildren`.\n var lastIndex = 0;\n var nextIndex = 0;\n for (name in nextChildren) {\n if (!nextChildren.hasOwnProperty(name)) {\n continue;\n }\n var prevChild = prevChildren && prevChildren[name];\n var prevElement = prevChild && prevChild._currentElement;\n var nextElement = nextChildren[name];\n if (shouldUpdateReactComponent(prevElement, nextElement)) {\n this.moveChild(prevChild, nextIndex, lastIndex);\n lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n prevChild.receiveComponent(nextElement, transaction);\n prevChild._mountIndex = nextIndex;\n } else {\n if (prevChild) {\n // Update `lastIndex` before `_mountIndex` gets unset by unmounting.\n lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n this._unmountChildByName(prevChild, name);\n }\n // The child must be instantiated before it's mounted.\n var nextChildInstance = instantiateReactComponent(\n nextElement,\n null\n );\n this._mountChildByNameAtIndex(\n nextChildInstance, name, nextIndex, transaction\n );\n }\n nextIndex++;\n }\n // Remove children that are no longer present.\n for (name in prevChildren) {\n if (prevChildren.hasOwnProperty(name) &&\n !(nextChildren && nextChildren[name])) {\n this._unmountChildByName(prevChildren[name], name);\n }\n }\n },\n\n /**\n * Unmounts all rendered children. This should be used to clean up children\n * when this component is unmounted.\n *\n * @internal\n */\n unmountChildren: function() {\n var renderedChildren = this._renderedChildren;\n for (var name in renderedChildren) {\n var renderedChild = renderedChildren[name];\n // TODO: When is this not true?\n if (renderedChild.unmountComponent) {\n renderedChild.unmountComponent();\n }\n }\n this._renderedChildren = null;\n },\n\n /**\n * Moves a child component to the supplied index.\n *\n * @param {ReactComponent} child Component to move.\n * @param {number} toIndex Destination index of the element.\n * @param {number} lastIndex Last index visited of the siblings of `child`.\n * @protected\n */\n moveChild: function(child, toIndex, lastIndex) {\n // If the index of `child` is less than `lastIndex`, then it needs to\n // be moved. Otherwise, we do not need to move it because a child will be\n // inserted or moved before `child`.\n if (child._mountIndex < lastIndex) {\n enqueueMove(this._rootNodeID, child._mountIndex, toIndex);\n }\n },\n\n /**\n * Creates a child component.\n *\n * @param {ReactComponent} child Component to create.\n * @param {string} mountImage Markup to insert.\n * @protected\n */\n createChild: function(child, mountImage) {\n enqueueMarkup(this._rootNodeID, mountImage, child._mountIndex);\n },\n\n /**\n * Removes a child component.\n *\n * @param {ReactComponent} child Child to remove.\n * @protected\n */\n removeChild: function(child) {\n enqueueRemove(this._rootNodeID, child._mountIndex);\n },\n\n /**\n * Sets this text content string.\n *\n * @param {string} textContent Text content to set.\n * @protected\n */\n setTextContent: function(textContent) {\n enqueueTextContent(this._rootNodeID, textContent);\n },\n\n /**\n * Mounts a child with the supplied name.\n *\n * NOTE: This is part of `updateChildren` and is here for readability.\n *\n * @param {ReactComponent} child Component to mount.\n * @param {string} name Name of the child.\n * @param {number} index Index at which to insert the child.\n * @param {ReactReconcileTransaction} transaction\n * @private\n */\n _mountChildByNameAtIndex: function(child, name, index, transaction) {\n // Inlined for performance, see `ReactInstanceHandles.createReactID`.\n var rootID = this._rootNodeID + name;\n var mountImage = child.mountComponent(\n rootID,\n transaction,\n this._mountDepth + 1\n );\n child._mountIndex = index;\n this.createChild(child, mountImage);\n this._renderedChildren = this._renderedChildren || {};\n this._renderedChildren[name] = child;\n },\n\n /**\n * Unmounts a rendered child by name.\n *\n * NOTE: This is part of `updateChildren` and is here for readability.\n *\n * @param {ReactComponent} child Component to unmount.\n * @param {string} name Name of the child in `this._renderedChildren`.\n * @private\n */\n _unmountChildByName: function(child, name) {\n this.removeChild(child);\n child._mountIndex = null;\n child.unmountComponent();\n delete this._renderedChildren[name];\n }\n\n }\n\n};\n\nmodule.exports = ReactMultiChild;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactMultiChild.js\n ** module id = 57\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactMultiChild.js?");
  767. /***/ },
  768. /* 58 */
  769. /***/ function(module, exports, __webpack_require__) {
  770. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypes\n */\n\n\"use strict\";\n\nvar ReactElement = __webpack_require__(19);\nvar ReactPropTypeLocationNames = __webpack_require__(104);\n\nvar deprecated = __webpack_require__(24);\nvar emptyFunction = __webpack_require__(46);\n\n/**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\nvar ANONYMOUS = '<<anonymous>>';\n\nvar elementTypeChecker = createElementTypeChecker();\nvar nodeTypeChecker = createNodeChecker();\n\nvar ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: elementTypeChecker,\n instanceOf: createInstanceTypeChecker,\n node: nodeTypeChecker,\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n\n component: deprecated(\n 'React.PropTypes',\n 'component',\n 'element',\n this,\n elementTypeChecker\n ),\n renderable: deprecated(\n 'React.PropTypes',\n 'renderable',\n 'node',\n this,\n nodeTypeChecker\n )\n};\n\nfunction createChainableTypeChecker(validate) {\n function checkType(isRequired, props, propName, componentName, location) {\n componentName = componentName || ANONYMOUS;\n if (props[propName] == null) {\n var locationName = ReactPropTypeLocationNames[location];\n if (isRequired) {\n return new Error(\n (\"Required \" + locationName + \" `\" + propName + \"` was not specified in \")+\n (\"`\" + componentName + \"`.\")\n );\n }\n } else {\n return validate(props, propName, componentName, location);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n}\n\nfunction createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n var locationName = ReactPropTypeLocationNames[location];\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new Error(\n (\"Invalid \" + locationName + \" `\" + propName + \"` of type `\" + preciseType + \"` \") +\n (\"supplied to `\" + componentName + \"`, expected `\" + expectedType + \"`.\")\n );\n }\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturns());\n}\n\nfunction createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location) {\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var locationName = ReactPropTypeLocationNames[location];\n var propType = getPropType(propValue);\n return new Error(\n (\"Invalid \" + locationName + \" `\" + propName + \"` of type \") +\n (\"`\" + propType + \"` supplied to `\" + componentName + \"`, expected an array.\")\n );\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createElementTypeChecker() {\n function validate(props, propName, componentName, location) {\n if (!ReactElement.isValidElement(props[propName])) {\n var locationName = ReactPropTypeLocationNames[location];\n return new Error(\n (\"Invalid \" + locationName + \" `\" + propName + \"` supplied to \") +\n (\"`\" + componentName + \"`, expected a ReactElement.\")\n );\n }\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location) {\n if (!(props[propName] instanceof expectedClass)) {\n var locationName = ReactPropTypeLocationNames[location];\n var expectedClassName = expectedClass.name || ANONYMOUS;\n return new Error(\n (\"Invalid \" + locationName + \" `\" + propName + \"` supplied to \") +\n (\"`\" + componentName + \"`, expected instance of `\" + expectedClassName + \"`.\")\n );\n }\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createEnumTypeChecker(expectedValues) {\n function validate(props, propName, componentName, location) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (propValue === expectedValues[i]) {\n return;\n }\n }\n\n var locationName = ReactPropTypeLocationNames[location];\n var valuesString = JSON.stringify(expectedValues);\n return new Error(\n (\"Invalid \" + locationName + \" `\" + propName + \"` of value `\" + propValue + \"` \") +\n (\"supplied to `\" + componentName + \"`, expected one of \" + valuesString + \".\")\n );\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n var locationName = ReactPropTypeLocationNames[location];\n return new Error(\n (\"Invalid \" + locationName + \" `\" + propName + \"` of type \") +\n (\"`\" + propType + \"` supplied to `\" + componentName + \"`, expected an object.\")\n );\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createUnionTypeChecker(arrayOfTypeCheckers) {\n function validate(props, propName, componentName, location) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location) == null) {\n return;\n }\n }\n\n var locationName = ReactPropTypeLocationNames[location];\n return new Error(\n (\"Invalid \" + locationName + \" `\" + propName + \"` supplied to \") +\n (\"`\" + componentName + \"`.\")\n );\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createNodeChecker() {\n function validate(props, propName, componentName, location) {\n if (!isNode(props[propName])) {\n var locationName = ReactPropTypeLocationNames[location];\n return new Error(\n (\"Invalid \" + locationName + \" `\" + propName + \"` supplied to \") +\n (\"`\" + componentName + \"`, expected a ReactNode.\")\n );\n }\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n var locationName = ReactPropTypeLocationNames[location];\n return new Error(\n (\"Invalid \" + locationName + \" `\" + propName + \"` of type `\" + propType + \"` \") +\n (\"supplied to `\" + componentName + \"`, expected `object`.\")\n );\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location);\n if (error) {\n return error;\n }\n }\n }\n return createChainableTypeChecker(validate, 'expected `object`');\n}\n\nfunction isNode(propValue) {\n switch(typeof propValue) {\n case 'number':\n case 'string':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (ReactElement.isValidElement(propValue)) {\n return true;\n }\n for (var k in propValue) {\n if (!isNode(propValue[k])) {\n return false;\n }\n }\n return true;\n default:\n return false;\n }\n}\n\n// Equivalent of `typeof` but with special handling for array and regexp.\nfunction getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n return propType;\n}\n\n// This handles more types than `getPropType`. Only used for error messages.\n// See `createPrimitiveTypeChecker`.\nfunction getPreciseType(propValue) {\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n}\n\nmodule.exports = ReactPropTypes;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactPropTypes.js\n ** module id = 58\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactPropTypes.js?");
  771. /***/ },
  772. /* 59 */
  773. /***/ function(module, exports, __webpack_require__) {
  774. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks static-only\n * @providesModule ReactServerRendering\n */\n\"use strict\";\n\nvar ReactElement = __webpack_require__(19);\nvar ReactInstanceHandles = __webpack_require__(21);\nvar ReactMarkupChecksum = __webpack_require__(107);\nvar ReactServerRenderingTransaction =\n __webpack_require__(108);\n\nvar instantiateReactComponent = __webpack_require__(26);\nvar invariant = __webpack_require__(27);\n\n/**\n * @param {ReactElement} element\n * @return {string} the HTML markup\n */\nfunction renderToString(element) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n ReactElement.isValidElement(element),\n 'renderToString(): You must pass a valid ReactElement.'\n ) : invariant(ReactElement.isValidElement(element)));\n\n var transaction;\n try {\n var id = ReactInstanceHandles.createReactRootID();\n transaction = ReactServerRenderingTransaction.getPooled(false);\n\n return transaction.perform(function() {\n var componentInstance = instantiateReactComponent(element, null);\n var markup = componentInstance.mountComponent(id, transaction, 0);\n return ReactMarkupChecksum.addChecksumToMarkup(markup);\n }, null);\n } finally {\n ReactServerRenderingTransaction.release(transaction);\n }\n}\n\n/**\n * @param {ReactElement} element\n * @return {string} the HTML markup, without the extra React ID and checksum\n * (for generating static pages)\n */\nfunction renderToStaticMarkup(element) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n ReactElement.isValidElement(element),\n 'renderToStaticMarkup(): You must pass a valid ReactElement.'\n ) : invariant(ReactElement.isValidElement(element)));\n\n var transaction;\n try {\n var id = ReactInstanceHandles.createReactRootID();\n transaction = ReactServerRenderingTransaction.getPooled(true);\n\n return transaction.perform(function() {\n var componentInstance = instantiateReactComponent(element, null);\n return componentInstance.mountComponent(id, transaction, 0);\n }, null);\n } finally {\n ReactServerRenderingTransaction.release(transaction);\n }\n}\n\nmodule.exports = {\n renderToString: renderToString,\n renderToStaticMarkup: renderToStaticMarkup\n};\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactServerRendering.js\n ** module id = 59\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactServerRendering.js?");
  775. /***/ },
  776. /* 60 */
  777. /***/ function(module, exports, __webpack_require__) {
  778. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactTextComponent\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar DOMPropertyOperations = __webpack_require__(48);\nvar ReactComponent = __webpack_require__(51);\nvar ReactElement = __webpack_require__(19);\n\nvar assign = __webpack_require__(38);\nvar escapeTextForBrowser = __webpack_require__(70);\n\n/**\n * Text nodes violate a couple assumptions that React makes about components:\n *\n * - When mounting text into the DOM, adjacent text nodes are merged.\n * - Text nodes cannot be assigned a React root ID.\n *\n * This component is used to wrap strings in elements so that they can undergo\n * the same reconciliation that is applied to elements.\n *\n * TODO: Investigate representing React components in the DOM with text nodes.\n *\n * @class ReactTextComponent\n * @extends ReactComponent\n * @internal\n */\nvar ReactTextComponent = function(props) {\n // This constructor and it's argument is currently used by mocks.\n};\n\nassign(ReactTextComponent.prototype, ReactComponent.Mixin, {\n\n /**\n * Creates the markup for this text node. This node is not intended to have\n * any features besides containing text content.\n *\n * @param {string} rootID DOM ID of the root node.\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {number} mountDepth number of components in the owner hierarchy\n * @return {string} Markup for this text node.\n * @internal\n */\n mountComponent: function(rootID, transaction, mountDepth) {\n ReactComponent.Mixin.mountComponent.call(\n this,\n rootID,\n transaction,\n mountDepth\n );\n\n var escapedText = escapeTextForBrowser(this.props);\n\n if (transaction.renderToStaticMarkup) {\n // Normally we'd wrap this in a `span` for the reasons stated above, but\n // since this is a situation where React won't take over (static pages),\n // we can simply return the text as it is.\n return escapedText;\n }\n\n return (\n '<span ' + DOMPropertyOperations.createMarkupForID(rootID) + '>' +\n escapedText +\n '</span>'\n );\n },\n\n /**\n * Updates this component by updating the text content.\n *\n * @param {object} nextComponent Contains the next text content.\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n receiveComponent: function(nextComponent, transaction) {\n var nextProps = nextComponent.props;\n if (nextProps !== this.props) {\n this.props = nextProps;\n ReactComponent.BackendIDOperations.updateTextContentByID(\n this._rootNodeID,\n nextProps\n );\n }\n }\n\n});\n\nvar ReactTextComponentFactory = function(text) {\n // Bypass validation and configuration\n return new ReactElement(ReactTextComponent, null, null, null, null, text);\n};\n\nReactTextComponentFactory.type = ReactTextComponent;\n\nmodule.exports = ReactTextComponentFactory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactTextComponent.js\n ** module id = 60\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactTextComponent.js?");
  779. /***/ },
  780. /* 61 */
  781. /***/ function(module, exports, __webpack_require__) {
  782. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule onlyChild\n */\n\"use strict\";\n\nvar ReactElement = __webpack_require__(19);\n\nvar invariant = __webpack_require__(27);\n\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection. The current implementation of this\n * function assumes that a single child gets passed without a wrapper, but the\n * purpose of this helper function is to abstract away the particular structure\n * of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactComponent} The first and only `ReactComponent` contained in the\n * structure.\n */\nfunction onlyChild(children) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n ReactElement.isValidElement(children),\n 'onlyChild must be passed a children with exactly one child.'\n ) : invariant(ReactElement.isValidElement(children)));\n return children;\n}\n\nmodule.exports = onlyChild;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/onlyChild.js\n ** module id = 61\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/onlyChild.js?");
  783. /***/ },
  784. /* 62 */
  785. /***/ function(module, exports, __webpack_require__) {
  786. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ExecutionEnvironment\n */\n\n/*jslint evil: true */\n\n\"use strict\";\n\nvar canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners:\n canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ExecutionEnvironment.js\n ** module id = 62\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ExecutionEnvironment.js?");
  787. /***/ },
  788. /* 63 */
  789. /***/ function(module, exports, __webpack_require__) {
  790. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule keyMirror\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar invariant = __webpack_require__(27);\n\n/**\n * Constructs an enumeration with keys equal to their value.\n *\n * For example:\n *\n * var COLORS = keyMirror({blue: null, red: null});\n * var myColor = COLORS.blue;\n * var isColorValid = !!COLORS[myColor];\n *\n * The last line could not be performed if the values of the generated enum were\n * not equal to their keys.\n *\n * Input: {key1: val1, key2: val2}\n * Output: {key1: key1, key2: key2}\n *\n * @param {object} obj\n * @return {object}\n */\nvar keyMirror = function(obj) {\n var ret = {};\n var key;\n (\"production\" !== process.env.NODE_ENV ? invariant(\n obj instanceof Object && !Array.isArray(obj),\n 'keyMirror(...): Argument must be an object.'\n ) : invariant(obj instanceof Object && !Array.isArray(obj)));\n for (key in obj) {\n if (!obj.hasOwnProperty(key)) {\n continue;\n }\n ret[key] = key;\n }\n return ret;\n};\n\nmodule.exports = keyMirror;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/keyMirror.js\n ** module id = 63\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/keyMirror.js?");
  791. /***/ },
  792. /* 64 */
  793. /***/ function(module, exports, __webpack_require__) {
  794. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule accumulateInto\n */\n\n\"use strict\";\n\nvar invariant = __webpack_require__(27);\n\n/**\n *\n * Accumulates items that must not be null or undefined into the first one. This\n * is used to conserve memory by avoiding array allocations, and thus sacrifices\n * API cleanness. Since `current` can be null before being passed in and not\n * null after this function, make sure to assign it back to `current`:\n *\n * `a = accumulateInto(a, b);`\n *\n * This API should be sparingly used. Try `accumulate` for something cleaner.\n *\n * @return {*|array<*>} An accumulation of items.\n */\n\nfunction accumulateInto(current, next) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n next != null,\n 'accumulateInto(...): Accumulated items must not be null or undefined.'\n ) : invariant(next != null));\n if (current == null) {\n return next;\n }\n\n // Both are not empty. Warning: Never call x.concat(y) when you are not\n // certain that x is an Array (x could be a string with concat method).\n var currentIsArray = Array.isArray(current);\n var nextIsArray = Array.isArray(next);\n\n if (currentIsArray && nextIsArray) {\n current.push.apply(current, next);\n return current;\n }\n\n if (currentIsArray) {\n current.push(next);\n return current;\n }\n\n if (nextIsArray) {\n // A bit too dangerous to mutate `next`.\n return [current].concat(next);\n }\n\n return [current, next];\n}\n\nmodule.exports = accumulateInto;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/accumulateInto.js\n ** module id = 64\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/accumulateInto.js?");
  795. /***/ },
  796. /* 65 */
  797. /***/ function(module, exports, __webpack_require__) {
  798. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule forEachAccumulated\n */\n\n\"use strict\";\n\n/**\n * @param {array} an \"accumulation\" of items which is either an Array or\n * a single item. Useful when paired with the `accumulate` module. This is a\n * simple utility that allows us to reason about a collection of items, but\n * handling the case when there is exactly one item (and we do not need to\n * allocate an array).\n */\nvar forEachAccumulated = function(arr, cb, scope) {\n if (Array.isArray(arr)) {\n arr.forEach(cb, scope);\n } else if (arr) {\n cb.call(scope, arr);\n }\n};\n\nmodule.exports = forEachAccumulated;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/forEachAccumulated.js\n ** module id = 65\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/forEachAccumulated.js?");
  799. /***/ },
  800. /* 66 */
  801. /***/ function(module, exports, __webpack_require__) {
  802. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getUnboundedScrollPosition\n * @typechecks\n */\n\n\"use strict\";\n\n/**\n * Gets the scroll position of the supplied element or window.\n *\n * The return values are unbounded, unlike `getScrollPosition`. This means they\n * may be negative or exceed the element boundaries (which is possible using\n * inertial scrolling).\n *\n * @param {DOMWindow|DOMElement} scrollable\n * @return {object} Map with `x` and `y` keys.\n */\nfunction getUnboundedScrollPosition(scrollable) {\n if (scrollable === window) {\n return {\n x: window.pageXOffset || document.documentElement.scrollLeft,\n y: window.pageYOffset || document.documentElement.scrollTop\n };\n }\n return {\n x: scrollable.scrollLeft,\n y: scrollable.scrollTop\n };\n}\n\nmodule.exports = getUnboundedScrollPosition;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/getUnboundedScrollPosition.js\n ** module id = 66\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/getUnboundedScrollPosition.js?");
  803. /***/ },
  804. /* 67 */
  805. /***/ function(module, exports, __webpack_require__) {
  806. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isNode\n * @typechecks\n */\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM node.\n */\nfunction isNode(object) {\n return !!(object && (\n typeof Node === 'function' ? object instanceof Node :\n typeof object === 'object' &&\n typeof object.nodeType === 'number' &&\n typeof object.nodeName === 'string'\n ));\n}\n\nmodule.exports = isNode;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/isNode.js\n ** module id = 67\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/isNode.js?");
  807. /***/ },
  808. /* 68 */
  809. /***/ function(module, exports, __webpack_require__) {
  810. eval("'use strict';\n\n/**\n * Returns a function that establishes the first prototype passed to it\n * as the \"source of truth\" and patches its methods on subsequent invocations,\n * also patching current and previous prototypes to forward calls to it.\n */\nmodule.exports = function makeAssimilatePrototype() {\n var storedPrototype,\n knownPrototypes = [];\n\n function wrapMethod(key) {\n return function () {\n if (storedPrototype[key]) {\n return storedPrototype[key].apply(this, arguments);\n }\n };\n }\n\n function patchProperty(proto, key) {\n proto[key] = storedPrototype[key];\n\n if (typeof proto[key] !== 'function' ||\n key === 'type' ||\n key === 'constructor') {\n return;\n }\n\n proto[key] = wrapMethod(key);\n\n if (storedPrototype[key].isReactClassApproved) {\n proto[key].isReactClassApproved = storedPrototype[key].isReactClassApproved;\n }\n\n if (proto.__reactAutoBindMap && proto.__reactAutoBindMap[key]) {\n proto.__reactAutoBindMap[key] = proto[key];\n }\n }\n\n function updateStoredPrototype(freshPrototype) {\n storedPrototype = {};\n\n Object.getOwnPropertyNames(freshPrototype).forEach(function (key) {\n storedPrototype[key] = freshPrototype[key];\n });\n }\n\n function reconcileWithStoredPrototypes(freshPrototype) {\n knownPrototypes.push(freshPrototype);\n knownPrototypes.forEach(function (proto) {\n Object.getOwnPropertyNames(storedPrototype).forEach(function (key) {\n patchProperty(proto, key);\n });\n });\n }\n\n return function assimilatePrototype(freshPrototype) {\n if (freshPrototype.__isAssimilatedByReactHotAPI) {\n return;\n }\n\n updateStoredPrototype(freshPrototype);\n reconcileWithStoredPrototypes(freshPrototype);\n freshPrototype.__isAssimilatedByReactHotAPI = true;\n };\n};\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react-hot-loader/~/react-hot-api/modules/makeAssimilatePrototype.js\n ** module id = 68\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react-hot-loader/~/react-hot-api/modules/makeAssimilatePrototype.js?");
  811. /***/ },
  812. /* 69 */
  813. /***/ function(module, exports, __webpack_require__) {
  814. eval("var deepForceUpdate = __webpack_require__(113);\n\nvar isRequestPending = false;\n\nmodule.exports = function requestForceUpdateAll(getRootInstances) {\n if (isRequestPending) {\n return;\n }\n\n /**\n * Forces deep re-render of all mounted React components.\n * Hat's off to Omar Skalli (@Chetane) for suggesting this approach:\n * https://gist.github.com/Chetane/9a230a9fdcdca21a4e29\n */\n function forceUpdateAll() {\n isRequestPending = false;\n\n var rootInstances = getRootInstances(),\n rootInstance;\n\n for (var key in rootInstances) {\n if (rootInstances.hasOwnProperty(key)) {\n deepForceUpdate(rootInstances[key]);\n }\n }\n }\n\n setTimeout(forceUpdateAll);\n};\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react-hot-loader/~/react-hot-api/modules/requestForceUpdateAll.js\n ** module id = 69\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react-hot-loader/~/react-hot-api/modules/requestForceUpdateAll.js?");
  815. /***/ },
  816. /* 70 */
  817. /***/ function(module, exports, __webpack_require__) {
  818. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule escapeTextForBrowser\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar ESCAPE_LOOKUP = {\n \"&\": \"&amp;\",\n \">\": \"&gt;\",\n \"<\": \"&lt;\",\n \"\\\"\": \"&quot;\",\n \"'\": \"&#x27;\"\n};\n\nvar ESCAPE_REGEX = /[&><\"']/g;\n\nfunction escaper(match) {\n return ESCAPE_LOOKUP[match];\n}\n\n/**\n * Escapes text to prevent scripting attacks.\n *\n * @param {*} text Text value to escape.\n * @return {string} An escaped string.\n */\nfunction escapeTextForBrowser(text) {\n return ('' + text).replace(ESCAPE_REGEX, escaper);\n}\n\nmodule.exports = escapeTextForBrowser;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/escapeTextForBrowser.js\n ** module id = 70\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/escapeTextForBrowser.js?");
  819. /***/ },
  820. /* 71 */
  821. /***/ function(module, exports, __webpack_require__) {
  822. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule memoizeStringOnly\n * @typechecks static-only\n */\n\n\"use strict\";\n\n/**\n * Memoizes the return value of a function that accepts one string argument.\n *\n * @param {function} callback\n * @return {function}\n */\nfunction memoizeStringOnly(callback) {\n var cache = {};\n return function(string) {\n if (cache.hasOwnProperty(string)) {\n return cache[string];\n } else {\n return cache[string] = callback.call(this, string);\n }\n };\n}\n\nmodule.exports = memoizeStringOnly;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/memoizeStringOnly.js\n ** module id = 71\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/memoizeStringOnly.js?");
  823. /***/ },
  824. /* 72 */
  825. /***/ function(module, exports, __webpack_require__) {
  826. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule PooledClass\n */\n\n\"use strict\";\n\nvar invariant = __webpack_require__(27);\n\n/**\n * Static poolers. Several custom versions for each potential number of\n * arguments. A completely generic pooler is easy to implement, but would\n * require accessing the `arguments` object. In each of these, `this` refers to\n * the Class itself, not an instance. If any others are needed, simply add them\n * here, or in their own files.\n */\nvar oneArgumentPooler = function(copyFieldsFrom) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, copyFieldsFrom);\n return instance;\n } else {\n return new Klass(copyFieldsFrom);\n }\n};\n\nvar twoArgumentPooler = function(a1, a2) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2);\n return instance;\n } else {\n return new Klass(a1, a2);\n }\n};\n\nvar threeArgumentPooler = function(a1, a2, a3) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3);\n return instance;\n } else {\n return new Klass(a1, a2, a3);\n }\n};\n\nvar fiveArgumentPooler = function(a1, a2, a3, a4, a5) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3, a4, a5);\n return instance;\n } else {\n return new Klass(a1, a2, a3, a4, a5);\n }\n};\n\nvar standardReleaser = function(instance) {\n var Klass = this;\n (\"production\" !== process.env.NODE_ENV ? invariant(\n instance instanceof Klass,\n 'Trying to release an instance into a pool of a different type.'\n ) : invariant(instance instanceof Klass));\n if (instance.destructor) {\n instance.destructor();\n }\n if (Klass.instancePool.length < Klass.poolSize) {\n Klass.instancePool.push(instance);\n }\n};\n\nvar DEFAULT_POOL_SIZE = 10;\nvar DEFAULT_POOLER = oneArgumentPooler;\n\n/**\n * Augments `CopyConstructor` to be a poolable class, augmenting only the class\n * itself (statically) not adding any prototypical fields. Any CopyConstructor\n * you give this may have a `poolSize` property, and will look for a\n * prototypical `destructor` on instances (optional).\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\nvar addPoolingTo = function(CopyConstructor, pooler) {\n var NewKlass = CopyConstructor;\n NewKlass.instancePool = [];\n NewKlass.getPooled = pooler || DEFAULT_POOLER;\n if (!NewKlass.poolSize) {\n NewKlass.poolSize = DEFAULT_POOL_SIZE;\n }\n NewKlass.release = standardReleaser;\n return NewKlass;\n};\n\nvar PooledClass = {\n addPoolingTo: addPoolingTo,\n oneArgumentPooler: oneArgumentPooler,\n twoArgumentPooler: twoArgumentPooler,\n threeArgumentPooler: threeArgumentPooler,\n fiveArgumentPooler: fiveArgumentPooler\n};\n\nmodule.exports = PooledClass;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/PooledClass.js\n ** module id = 72\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/PooledClass.js?");
  827. /***/ },
  828. /* 73 */
  829. /***/ function(module, exports, __webpack_require__) {
  830. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule traverseAllChildren\n */\n\n\"use strict\";\n\nvar ReactElement = __webpack_require__(19);\nvar ReactInstanceHandles = __webpack_require__(21);\n\nvar invariant = __webpack_require__(27);\n\nvar SEPARATOR = ReactInstanceHandles.SEPARATOR;\nvar SUBSEPARATOR = ':';\n\n/**\n * TODO: Test that:\n * 1. `mapChildren` transforms strings and numbers into `ReactTextComponent`.\n * 2. it('should fail when supplied duplicate key', function() {\n * 3. That a single child and an array with one item have the same key pattern.\n * });\n */\n\nvar userProvidedKeyEscaperLookup = {\n '=': '=0',\n '.': '=1',\n ':': '=2'\n};\n\nvar userProvidedKeyEscapeRegex = /[=.:]/g;\n\nfunction userProvidedKeyEscaper(match) {\n return userProvidedKeyEscaperLookup[match];\n}\n\n/**\n * Generate a key string that identifies a component within a set.\n *\n * @param {*} component A component that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\nfunction getComponentKey(component, index) {\n if (component && component.key != null) {\n // Explicit key\n return wrapUserProvidedKey(component.key);\n }\n // Implicit key determined by the index in the set\n return index.toString(36);\n}\n\n/**\n * Escape a component key so that it is safe to use in a reactid.\n *\n * @param {*} key Component key to be escaped.\n * @return {string} An escaped string.\n */\nfunction escapeUserProvidedKey(text) {\n return ('' + text).replace(\n userProvidedKeyEscapeRegex,\n userProvidedKeyEscaper\n );\n}\n\n/**\n * Wrap a `key` value explicitly provided by the user to distinguish it from\n * implicitly-generated keys generated by a component's index in its parent.\n *\n * @param {string} key Value of a user-provided `key` attribute\n * @return {string}\n */\nfunction wrapUserProvidedKey(key) {\n return '$' + escapeUserProvidedKey(key);\n}\n\n/**\n * @param {?*} children Children tree container.\n * @param {!string} nameSoFar Name of the key path so far.\n * @param {!number} indexSoFar Number of children encountered until this point.\n * @param {!function} callback Callback to invoke with each child found.\n * @param {?*} traverseContext Used to pass information throughout the traversal\n * process.\n * @return {!number} The number of children in this subtree.\n */\nvar traverseAllChildrenImpl =\n function(children, nameSoFar, indexSoFar, callback, traverseContext) {\n var nextName, nextIndex;\n var subtreeCount = 0; // Count of children found in the current subtree.\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n nextName = (\n nameSoFar +\n (nameSoFar ? SUBSEPARATOR : SEPARATOR) +\n getComponentKey(child, i)\n );\n nextIndex = indexSoFar + subtreeCount;\n subtreeCount += traverseAllChildrenImpl(\n child,\n nextName,\n nextIndex,\n callback,\n traverseContext\n );\n }\n } else {\n var type = typeof children;\n var isOnlyChild = nameSoFar === '';\n // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows\n var storageName =\n isOnlyChild ? SEPARATOR + getComponentKey(children, 0) : nameSoFar;\n if (children == null || type === 'boolean') {\n // All of the above are perceived as null.\n callback(traverseContext, null, storageName, indexSoFar);\n subtreeCount = 1;\n } else if (type === 'string' || type === 'number' ||\n ReactElement.isValidElement(children)) {\n callback(traverseContext, children, storageName, indexSoFar);\n subtreeCount = 1;\n } else if (type === 'object') {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n !children || children.nodeType !== 1,\n 'traverseAllChildren(...): Encountered an invalid child; DOM ' +\n 'elements are not valid children of React components.'\n ) : invariant(!children || children.nodeType !== 1));\n for (var key in children) {\n if (children.hasOwnProperty(key)) {\n nextName = (\n nameSoFar + (nameSoFar ? SUBSEPARATOR : SEPARATOR) +\n wrapUserProvidedKey(key) + SUBSEPARATOR +\n getComponentKey(children[key], 0)\n );\n nextIndex = indexSoFar + subtreeCount;\n subtreeCount += traverseAllChildrenImpl(\n children[key],\n nextName,\n nextIndex,\n callback,\n traverseContext\n );\n }\n }\n }\n }\n return subtreeCount;\n };\n\n/**\n * Traverses children that are typically specified as `props.children`, but\n * might also be specified through attributes:\n *\n * - `traverseAllChildren(this.props.children, ...)`\n * - `traverseAllChildren(this.props.leftPanelChildren, ...)`\n *\n * The `traverseContext` is an optional argument that is passed through the\n * entire traversal. It can be used to store accumulations or anything else that\n * the callback might find relevant.\n *\n * @param {?*} children Children tree object.\n * @param {!function} callback To invoke upon traversing each child.\n * @param {?*} traverseContext Context for traversal.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildren(children, callback, traverseContext) {\n if (children == null) {\n return 0;\n }\n\n return traverseAllChildrenImpl(children, '', 0, callback, traverseContext);\n}\n\nmodule.exports = traverseAllChildren;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/traverseAllChildren.js\n ** module id = 73\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/traverseAllChildren.js?");
  831. /***/ },
  832. /* 74 */
  833. /***/ function(module, exports, __webpack_require__) {
  834. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypeLocations\n */\n\n\"use strict\";\n\nvar keyMirror = __webpack_require__(63);\n\nvar ReactPropTypeLocations = keyMirror({\n prop: null,\n context: null,\n childContext: null\n});\n\nmodule.exports = ReactPropTypeLocations;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactPropTypeLocations.js\n ** module id = 74\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactPropTypeLocations.js?");
  835. /***/ },
  836. /* 75 */
  837. /***/ function(module, exports, __webpack_require__) {
  838. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule mapObject\n */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * Executes the provided `callback` once for each enumerable own property in the\n * object and constructs a new object from the results. The `callback` is\n * invoked with three arguments:\n *\n * - the property value\n * - the property name\n * - the object being traversed\n *\n * Properties that are added after the call to `mapObject` will not be visited\n * by `callback`. If the values of existing properties are changed, the value\n * passed to `callback` will be the value at the time `mapObject` visits them.\n * Properties that are deleted before being visited are not visited.\n *\n * @grep function objectMap()\n * @grep function objMap()\n *\n * @param {?object} object\n * @param {function} callback\n * @param {*} context\n * @return {?object}\n */\nfunction mapObject(object, callback, context) {\n if (!object) {\n return null;\n }\n var result = {};\n for (var name in object) {\n if (hasOwnProperty.call(object, name)) {\n result[name] = callback.call(context, object[name], name, object);\n }\n }\n return result;\n}\n\nmodule.exports = mapObject;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/mapObject.js\n ** module id = 75\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/mapObject.js?");
  839. /***/ },
  840. /* 76 */
  841. /***/ function(module, exports, __webpack_require__) {
  842. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactOwner\n */\n\n\"use strict\";\n\nvar emptyObject = __webpack_require__(114);\nvar invariant = __webpack_require__(27);\n\n/**\n * ReactOwners are capable of storing references to owned components.\n *\n * All components are capable of //being// referenced by owner components, but\n * only ReactOwner components are capable of //referencing// owned components.\n * The named reference is known as a \"ref\".\n *\n * Refs are available when mounted and updated during reconciliation.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return (\n * <div onClick={this.handleClick}>\n * <CustomComponent ref=\"custom\" />\n * </div>\n * );\n * },\n * handleClick: function() {\n * this.refs.custom.handleClick();\n * },\n * componentDidMount: function() {\n * this.refs.custom.initialize();\n * }\n * });\n *\n * Refs should rarely be used. When refs are used, they should only be done to\n * control data that is not handled by React's data flow.\n *\n * @class ReactOwner\n */\nvar ReactOwner = {\n\n /**\n * @param {?object} object\n * @return {boolean} True if `object` is a valid owner.\n * @final\n */\n isValidOwner: function(object) {\n return !!(\n object &&\n typeof object.attachRef === 'function' &&\n typeof object.detachRef === 'function'\n );\n },\n\n /**\n * Adds a component by ref to an owner component.\n *\n * @param {ReactComponent} component Component to reference.\n * @param {string} ref Name by which to refer to the component.\n * @param {ReactOwner} owner Component on which to record the ref.\n * @final\n * @internal\n */\n addComponentAsRefTo: function(component, ref, owner) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n ReactOwner.isValidOwner(owner),\n 'addComponentAsRefTo(...): Only a ReactOwner can have refs. This ' +\n 'usually means that you\\'re trying to add a ref to a component that ' +\n 'doesn\\'t have an owner (that is, was not created inside of another ' +\n 'component\\'s `render` method). Try rendering this component inside of ' +\n 'a new top-level component which will hold the ref.'\n ) : invariant(ReactOwner.isValidOwner(owner)));\n owner.attachRef(ref, component);\n },\n\n /**\n * Removes a component by ref from an owner component.\n *\n * @param {ReactComponent} component Component to dereference.\n * @param {string} ref Name of the ref to remove.\n * @param {ReactOwner} owner Component on which the ref is recorded.\n * @final\n * @internal\n */\n removeComponentAsRefFrom: function(component, ref, owner) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n ReactOwner.isValidOwner(owner),\n 'removeComponentAsRefFrom(...): Only a ReactOwner can have refs. This ' +\n 'usually means that you\\'re trying to remove a ref to a component that ' +\n 'doesn\\'t have an owner (that is, was not created inside of another ' +\n 'component\\'s `render` method). Try rendering this component inside of ' +\n 'a new top-level component which will hold the ref.'\n ) : invariant(ReactOwner.isValidOwner(owner)));\n // Check that `component` is still the current ref because we do not want to\n // detach the ref if another component stole it.\n if (owner.refs[ref] === component) {\n owner.detachRef(ref);\n }\n },\n\n /**\n * A ReactComponent must mix this in to have refs.\n *\n * @lends {ReactOwner.prototype}\n */\n Mixin: {\n\n construct: function() {\n this.refs = emptyObject;\n },\n\n /**\n * Lazily allocates the refs object and stores `component` as `ref`.\n *\n * @param {string} ref Reference name.\n * @param {component} component Component to store as `ref`.\n * @final\n * @private\n */\n attachRef: function(ref, component) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n component.isOwnedBy(this),\n 'attachRef(%s, ...): Only a component\\'s owner can store a ref to it.',\n ref\n ) : invariant(component.isOwnedBy(this)));\n var refs = this.refs === emptyObject ? (this.refs = {}) : this.refs;\n refs[ref] = component;\n },\n\n /**\n * Detaches a reference name.\n *\n * @param {string} ref Name to dereference.\n * @final\n * @private\n */\n detachRef: function(ref) {\n delete this.refs[ref];\n }\n\n }\n\n};\n\nmodule.exports = ReactOwner;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactOwner.js\n ** module id = 76\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactOwner.js?");
  843. /***/ },
  844. /* 77 */
  845. /***/ function(module, exports, __webpack_require__) {
  846. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactUpdates\n */\n\n\"use strict\";\n\nvar CallbackQueue = __webpack_require__(115);\nvar PooledClass = __webpack_require__(72);\nvar ReactCurrentOwner = __webpack_require__(18);\nvar ReactPerf = __webpack_require__(22);\nvar Transaction = __webpack_require__(116);\n\nvar assign = __webpack_require__(38);\nvar invariant = __webpack_require__(27);\nvar warning = __webpack_require__(29);\n\nvar dirtyComponents = [];\nvar asapCallbackQueue = CallbackQueue.getPooled();\nvar asapEnqueued = false;\n\nvar batchingStrategy = null;\n\nfunction ensureInjected() {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n ReactUpdates.ReactReconcileTransaction && batchingStrategy,\n 'ReactUpdates: must inject a reconcile transaction class and batching ' +\n 'strategy'\n ) : invariant(ReactUpdates.ReactReconcileTransaction && batchingStrategy));\n}\n\nvar NESTED_UPDATES = {\n initialize: function() {\n this.dirtyComponentsLength = dirtyComponents.length;\n },\n close: function() {\n if (this.dirtyComponentsLength !== dirtyComponents.length) {\n // Additional updates were enqueued by componentDidUpdate handlers or\n // similar; before our own UPDATE_QUEUEING wrapper closes, we want to run\n // these new updates so that if A's componentDidUpdate calls setState on\n // B, B will update before the callback A's updater provided when calling\n // setState.\n dirtyComponents.splice(0, this.dirtyComponentsLength);\n flushBatchedUpdates();\n } else {\n dirtyComponents.length = 0;\n }\n }\n};\n\nvar UPDATE_QUEUEING = {\n initialize: function() {\n this.callbackQueue.reset();\n },\n close: function() {\n this.callbackQueue.notifyAll();\n }\n};\n\nvar TRANSACTION_WRAPPERS = [NESTED_UPDATES, UPDATE_QUEUEING];\n\nfunction ReactUpdatesFlushTransaction() {\n this.reinitializeTransaction();\n this.dirtyComponentsLength = null;\n this.callbackQueue = CallbackQueue.getPooled();\n this.reconcileTransaction =\n ReactUpdates.ReactReconcileTransaction.getPooled();\n}\n\nassign(\n ReactUpdatesFlushTransaction.prototype,\n Transaction.Mixin, {\n getTransactionWrappers: function() {\n return TRANSACTION_WRAPPERS;\n },\n\n destructor: function() {\n this.dirtyComponentsLength = null;\n CallbackQueue.release(this.callbackQueue);\n this.callbackQueue = null;\n ReactUpdates.ReactReconcileTransaction.release(this.reconcileTransaction);\n this.reconcileTransaction = null;\n },\n\n perform: function(method, scope, a) {\n // Essentially calls `this.reconcileTransaction.perform(method, scope, a)`\n // with this transaction's wrappers around it.\n return Transaction.Mixin.perform.call(\n this,\n this.reconcileTransaction.perform,\n this.reconcileTransaction,\n method,\n scope,\n a\n );\n }\n});\n\nPooledClass.addPoolingTo(ReactUpdatesFlushTransaction);\n\nfunction batchedUpdates(callback, a, b) {\n ensureInjected();\n batchingStrategy.batchedUpdates(callback, a, b);\n}\n\n/**\n * Array comparator for ReactComponents by owner depth\n *\n * @param {ReactComponent} c1 first component you're comparing\n * @param {ReactComponent} c2 second component you're comparing\n * @return {number} Return value usable by Array.prototype.sort().\n */\nfunction mountDepthComparator(c1, c2) {\n return c1._mountDepth - c2._mountDepth;\n}\n\nfunction runBatchedUpdates(transaction) {\n var len = transaction.dirtyComponentsLength;\n (\"production\" !== process.env.NODE_ENV ? invariant(\n len === dirtyComponents.length,\n 'Expected flush transaction\\'s stored dirty-components length (%s) to ' +\n 'match dirty-components array length (%s).',\n len,\n dirtyComponents.length\n ) : invariant(len === dirtyComponents.length));\n\n // Since reconciling a component higher in the owner hierarchy usually (not\n // always -- see shouldComponentUpdate()) will reconcile children, reconcile\n // them before their children by sorting the array.\n dirtyComponents.sort(mountDepthComparator);\n\n for (var i = 0; i < len; i++) {\n // If a component is unmounted before pending changes apply, ignore them\n // TODO: Queue unmounts in the same list to avoid this happening at all\n var component = dirtyComponents[i];\n if (component.isMounted()) {\n // If performUpdateIfNecessary happens to enqueue any new updates, we\n // shouldn't execute the callbacks until the next render happens, so\n // stash the callbacks first\n var callbacks = component._pendingCallbacks;\n component._pendingCallbacks = null;\n component.performUpdateIfNecessary(transaction.reconcileTransaction);\n\n if (callbacks) {\n for (var j = 0; j < callbacks.length; j++) {\n transaction.callbackQueue.enqueue(\n callbacks[j],\n component\n );\n }\n }\n }\n }\n}\n\nvar flushBatchedUpdates = ReactPerf.measure(\n 'ReactUpdates',\n 'flushBatchedUpdates',\n function() {\n // ReactUpdatesFlushTransaction's wrappers will clear the dirtyComponents\n // array and perform any updates enqueued by mount-ready handlers (i.e.,\n // componentDidUpdate) but we need to check here too in order to catch\n // updates enqueued by setState callbacks and asap calls.\n while (dirtyComponents.length || asapEnqueued) {\n if (dirtyComponents.length) {\n var transaction = ReactUpdatesFlushTransaction.getPooled();\n transaction.perform(runBatchedUpdates, null, transaction);\n ReactUpdatesFlushTransaction.release(transaction);\n }\n\n if (asapEnqueued) {\n asapEnqueued = false;\n var queue = asapCallbackQueue;\n asapCallbackQueue = CallbackQueue.getPooled();\n queue.notifyAll();\n CallbackQueue.release(queue);\n }\n }\n }\n);\n\n/**\n * Mark a component as needing a rerender, adding an optional callback to a\n * list of functions which will be executed once the rerender occurs.\n */\nfunction enqueueUpdate(component, callback) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n !callback || typeof callback === \"function\",\n 'enqueueUpdate(...): You called `setProps`, `replaceProps`, ' +\n '`setState`, `replaceState`, or `forceUpdate` with a callback that ' +\n 'isn\\'t callable.'\n ) : invariant(!callback || typeof callback === \"function\"));\n ensureInjected();\n\n // Various parts of our code (such as ReactCompositeComponent's\n // _renderValidatedComponent) assume that calls to render aren't nested;\n // verify that that's the case. (This is called by each top-level update\n // function, like setProps, setState, forceUpdate, etc.; creation and\n // destruction of top-level components is guarded in ReactMount.)\n (\"production\" !== process.env.NODE_ENV ? warning(\n ReactCurrentOwner.current == null,\n 'enqueueUpdate(): Render methods should be a pure function of props ' +\n 'and state; triggering nested component updates from render is not ' +\n 'allowed. If necessary, trigger nested updates in ' +\n 'componentDidUpdate.'\n ) : null);\n\n if (!batchingStrategy.isBatchingUpdates) {\n batchingStrategy.batchedUpdates(enqueueUpdate, component, callback);\n return;\n }\n\n dirtyComponents.push(component);\n\n if (callback) {\n if (component._pendingCallbacks) {\n component._pendingCallbacks.push(callback);\n } else {\n component._pendingCallbacks = [callback];\n }\n }\n}\n\n/**\n * Enqueue a callback to be run at the end of the current batching cycle. Throws\n * if no updates are currently being performed.\n */\nfunction asap(callback, context) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n batchingStrategy.isBatchingUpdates,\n 'ReactUpdates.asap: Can\\'t enqueue an asap callback in a context where' +\n 'updates are not being batched.'\n ) : invariant(batchingStrategy.isBatchingUpdates));\n asapCallbackQueue.enqueue(callback, context);\n asapEnqueued = true;\n}\n\nvar ReactUpdatesInjection = {\n injectReconcileTransaction: function(ReconcileTransaction) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n ReconcileTransaction,\n 'ReactUpdates: must provide a reconcile transaction class'\n ) : invariant(ReconcileTransaction));\n ReactUpdates.ReactReconcileTransaction = ReconcileTransaction;\n },\n\n injectBatchingStrategy: function(_batchingStrategy) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n _batchingStrategy,\n 'ReactUpdates: must provide a batching strategy'\n ) : invariant(_batchingStrategy));\n (\"production\" !== process.env.NODE_ENV ? invariant(\n typeof _batchingStrategy.batchedUpdates === 'function',\n 'ReactUpdates: must provide a batchedUpdates() function'\n ) : invariant(typeof _batchingStrategy.batchedUpdates === 'function'));\n (\"production\" !== process.env.NODE_ENV ? invariant(\n typeof _batchingStrategy.isBatchingUpdates === 'boolean',\n 'ReactUpdates: must provide an isBatchingUpdates boolean attribute'\n ) : invariant(typeof _batchingStrategy.isBatchingUpdates === 'boolean'));\n batchingStrategy = _batchingStrategy;\n }\n};\n\nvar ReactUpdates = {\n /**\n * React references `ReactReconcileTransaction` using this property in order\n * to allow dependency injection.\n *\n * @internal\n */\n ReactReconcileTransaction: null,\n\n batchedUpdates: batchedUpdates,\n enqueueUpdate: enqueueUpdate,\n flushBatchedUpdates: flushBatchedUpdates,\n injection: ReactUpdatesInjection,\n asap: asap\n};\n\nmodule.exports = ReactUpdates;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactUpdates.js\n ** module id = 77\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactUpdates.js?");
  847. /***/ },
  848. /* 78 */
  849. /***/ function(module, exports, __webpack_require__) {
  850. eval("/**\n * Copyright 2013 Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule BeforeInputEventPlugin\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar EventConstants = __webpack_require__(33);\nvar EventPropagators = __webpack_require__(117);\nvar ExecutionEnvironment = __webpack_require__(62);\nvar SyntheticInputEvent = __webpack_require__(118);\n\nvar keyOf = __webpack_require__(110);\n\nvar canUseTextInputEvent = (\n ExecutionEnvironment.canUseDOM &&\n 'TextEvent' in window &&\n !('documentMode' in document || isPresto())\n);\n\n/**\n * Opera <= 12 includes TextEvent in window, but does not fire\n * text input events. Rely on keypress instead.\n */\nfunction isPresto() {\n var opera = window.opera;\n return (\n typeof opera === 'object' &&\n typeof opera.version === 'function' &&\n parseInt(opera.version(), 10) <= 12\n );\n}\n\nvar SPACEBAR_CODE = 32;\nvar SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\n// Events and their corresponding property names.\nvar eventTypes = {\n beforeInput: {\n phasedRegistrationNames: {\n bubbled: keyOf({onBeforeInput: null}),\n captured: keyOf({onBeforeInputCapture: null})\n },\n dependencies: [\n topLevelTypes.topCompositionEnd,\n topLevelTypes.topKeyPress,\n topLevelTypes.topTextInput,\n topLevelTypes.topPaste\n ]\n }\n};\n\n// Track characters inserted via keypress and composition events.\nvar fallbackChars = null;\n\n// Track whether we've ever handled a keypress on the space key.\nvar hasSpaceKeypress = false;\n\n/**\n * Return whether a native keypress event is assumed to be a command.\n * This is required because Firefox fires `keypress` events for key commands\n * (cut, copy, select-all, etc.) even though no character is inserted.\n */\nfunction isKeypressCommand(nativeEvent) {\n return (\n (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) &&\n // ctrlKey && altKey is equivalent to AltGr, and is not a command.\n !(nativeEvent.ctrlKey && nativeEvent.altKey)\n );\n}\n\n/**\n * Create an `onBeforeInput` event to match\n * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.\n *\n * This event plugin is based on the native `textInput` event\n * available in Chrome, Safari, Opera, and IE. This event fires after\n * `onKeyPress` and `onCompositionEnd`, but before `onInput`.\n *\n * `beforeInput` is spec'd but not implemented in any browsers, and\n * the `input` event does not provide any useful information about what has\n * actually been added, contrary to the spec. Thus, `textInput` is the best\n * available event to identify the characters that have actually been inserted\n * into the target node.\n */\nvar BeforeInputEventPlugin = {\n\n eventTypes: eventTypes,\n\n /**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {*} An accumulation of synthetic events.\n * @see {EventPluginHub.extractEvents}\n */\n extractEvents: function(\n topLevelType,\n topLevelTarget,\n topLevelTargetID,\n nativeEvent) {\n\n var chars;\n\n if (canUseTextInputEvent) {\n switch (topLevelType) {\n case topLevelTypes.topKeyPress:\n /**\n * If native `textInput` events are available, our goal is to make\n * use of them. However, there is a special case: the spacebar key.\n * In Webkit, preventing default on a spacebar `textInput` event\n * cancels character insertion, but it *also* causes the browser\n * to fall back to its default spacebar behavior of scrolling the\n * page.\n *\n * Tracking at:\n * https://code.google.com/p/chromium/issues/detail?id=355103\n *\n * To avoid this issue, use the keypress event as if no `textInput`\n * event is available.\n */\n var which = nativeEvent.which;\n if (which !== SPACEBAR_CODE) {\n return;\n }\n\n hasSpaceKeypress = true;\n chars = SPACEBAR_CHAR;\n break;\n\n case topLevelTypes.topTextInput:\n // Record the characters to be added to the DOM.\n chars = nativeEvent.data;\n\n // If it's a spacebar character, assume that we have already handled\n // it at the keypress level and bail immediately. Android Chrome\n // doesn't give us keycodes, so we need to blacklist it.\n if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {\n return;\n }\n\n // Otherwise, carry on.\n break;\n\n default:\n // For other native event types, do nothing.\n return;\n }\n } else {\n switch (topLevelType) {\n case topLevelTypes.topPaste:\n // If a paste event occurs after a keypress, throw out the input\n // chars. Paste events should not lead to BeforeInput events.\n fallbackChars = null;\n break;\n case topLevelTypes.topKeyPress:\n /**\n * As of v27, Firefox may fire keypress events even when no character\n * will be inserted. A few possibilities:\n *\n * - `which` is `0`. Arrow keys, Esc key, etc.\n *\n * - `which` is the pressed key code, but no char is available.\n * Ex: 'AltGr + d` in Polish. There is no modified character for\n * this key combination and no character is inserted into the\n * document, but FF fires the keypress for char code `100` anyway.\n * No `input` event will occur.\n *\n * - `which` is the pressed key code, but a command combination is\n * being used. Ex: `Cmd+C`. No character is inserted, and no\n * `input` event will occur.\n */\n if (nativeEvent.which && !isKeypressCommand(nativeEvent)) {\n fallbackChars = String.fromCharCode(nativeEvent.which);\n }\n break;\n case topLevelTypes.topCompositionEnd:\n fallbackChars = nativeEvent.data;\n break;\n }\n\n // If no changes have occurred to the fallback string, no relevant\n // event has fired and we're done.\n if (fallbackChars === null) {\n return;\n }\n\n chars = fallbackChars;\n }\n\n // If no characters are being inserted, no BeforeInput event should\n // be fired.\n if (!chars) {\n return;\n }\n\n var event = SyntheticInputEvent.getPooled(\n eventTypes.beforeInput,\n topLevelTargetID,\n nativeEvent\n );\n\n event.data = chars;\n fallbackChars = null;\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n }\n};\n\nmodule.exports = BeforeInputEventPlugin;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/BeforeInputEventPlugin.js\n ** module id = 78\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/BeforeInputEventPlugin.js?");
  851. /***/ },
  852. /* 79 */
  853. /***/ function(module, exports, __webpack_require__) {
  854. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ChangeEventPlugin\n */\n\n\"use strict\";\n\nvar EventConstants = __webpack_require__(33);\nvar EventPluginHub = __webpack_require__(34);\nvar EventPropagators = __webpack_require__(117);\nvar ExecutionEnvironment = __webpack_require__(62);\nvar ReactUpdates = __webpack_require__(77);\nvar SyntheticEvent = __webpack_require__(119);\n\nvar isEventSupported = __webpack_require__(39);\nvar isTextInputElement = __webpack_require__(120);\nvar keyOf = __webpack_require__(110);\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar eventTypes = {\n change: {\n phasedRegistrationNames: {\n bubbled: keyOf({onChange: null}),\n captured: keyOf({onChangeCapture: null})\n },\n dependencies: [\n topLevelTypes.topBlur,\n topLevelTypes.topChange,\n topLevelTypes.topClick,\n topLevelTypes.topFocus,\n topLevelTypes.topInput,\n topLevelTypes.topKeyDown,\n topLevelTypes.topKeyUp,\n topLevelTypes.topSelectionChange\n ]\n }\n};\n\n/**\n * For IE shims\n */\nvar activeElement = null;\nvar activeElementID = null;\nvar activeElementValue = null;\nvar activeElementValueProp = null;\n\n/**\n * SECTION: handle `change` event\n */\nfunction shouldUseChangeEvent(elem) {\n return (\n elem.nodeName === 'SELECT' ||\n (elem.nodeName === 'INPUT' && elem.type === 'file')\n );\n}\n\nvar doesChangeEventBubble = false;\nif (ExecutionEnvironment.canUseDOM) {\n // See `handleChange` comment below\n doesChangeEventBubble = isEventSupported('change') && (\n !('documentMode' in document) || document.documentMode > 8\n );\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n var event = SyntheticEvent.getPooled(\n eventTypes.change,\n activeElementID,\n nativeEvent\n );\n EventPropagators.accumulateTwoPhaseDispatches(event);\n\n // If change and propertychange bubbled, we'd just bind to it like all the\n // other events and have it go through ReactBrowserEventEmitter. Since it\n // doesn't, we manually listen for the events and so we have to enqueue and\n // process the abstract event manually.\n //\n // Batching is necessary here in order to ensure that all event handlers run\n // before the next rerender (including event handlers attached to ancestor\n // elements instead of directly on the input). Without this, controlled\n // components don't work properly in conjunction with event bubbling because\n // the component is rerendered and the value reverted before all the event\n // handlers can run. See https://github.com/facebook/react/issues/708.\n ReactUpdates.batchedUpdates(runEventInBatch, event);\n}\n\nfunction runEventInBatch(event) {\n EventPluginHub.enqueueEvents(event);\n EventPluginHub.processEventQueue();\n}\n\nfunction startWatchingForChangeEventIE8(target, targetID) {\n activeElement = target;\n activeElementID = targetID;\n activeElement.attachEvent('onchange', manualDispatchChangeEvent);\n}\n\nfunction stopWatchingForChangeEventIE8() {\n if (!activeElement) {\n return;\n }\n activeElement.detachEvent('onchange', manualDispatchChangeEvent);\n activeElement = null;\n activeElementID = null;\n}\n\nfunction getTargetIDForChangeEvent(\n topLevelType,\n topLevelTarget,\n topLevelTargetID) {\n if (topLevelType === topLevelTypes.topChange) {\n return topLevelTargetID;\n }\n}\nfunction handleEventsForChangeEventIE8(\n topLevelType,\n topLevelTarget,\n topLevelTargetID) {\n if (topLevelType === topLevelTypes.topFocus) {\n // stopWatching() should be a noop here but we call it just in case we\n // missed a blur event somehow.\n stopWatchingForChangeEventIE8();\n startWatchingForChangeEventIE8(topLevelTarget, topLevelTargetID);\n } else if (topLevelType === topLevelTypes.topBlur) {\n stopWatchingForChangeEventIE8();\n }\n}\n\n\n/**\n * SECTION: handle `input` event\n */\nvar isInputEventSupported = false;\nif (ExecutionEnvironment.canUseDOM) {\n // IE9 claims to support the input event but fails to trigger it when\n // deleting text, so we ignore its input events\n isInputEventSupported = isEventSupported('input') && (\n !('documentMode' in document) || document.documentMode > 9\n );\n}\n\n/**\n * (For old IE.) Replacement getter/setter for the `value` property that gets\n * set on the active element.\n */\nvar newValueProp = {\n get: function() {\n return activeElementValueProp.get.call(this);\n },\n set: function(val) {\n // Cast to a string so we can do equality checks.\n activeElementValue = '' + val;\n activeElementValueProp.set.call(this, val);\n }\n};\n\n/**\n * (For old IE.) Starts tracking propertychange events on the passed-in element\n * and override the value property so that we can distinguish user events from\n * value changes in JS.\n */\nfunction startWatchingForValueChange(target, targetID) {\n activeElement = target;\n activeElementID = targetID;\n activeElementValue = target.value;\n activeElementValueProp = Object.getOwnPropertyDescriptor(\n target.constructor.prototype,\n 'value'\n );\n\n Object.defineProperty(activeElement, 'value', newValueProp);\n activeElement.attachEvent('onpropertychange', handlePropertyChange);\n}\n\n/**\n * (For old IE.) Removes the event listeners from the currently-tracked element,\n * if any exists.\n */\nfunction stopWatchingForValueChange() {\n if (!activeElement) {\n return;\n }\n\n // delete restores the original property definition\n delete activeElement.value;\n activeElement.detachEvent('onpropertychange', handlePropertyChange);\n\n activeElement = null;\n activeElementID = null;\n activeElementValue = null;\n activeElementValueProp = null;\n}\n\n/**\n * (For old IE.) Handles a propertychange event, sending a `change` event if\n * the value of the active element has changed.\n */\nfunction handlePropertyChange(nativeEvent) {\n if (nativeEvent.propertyName !== 'value') {\n return;\n }\n var value = nativeEvent.srcElement.value;\n if (value === activeElementValue) {\n return;\n }\n activeElementValue = value;\n\n manualDispatchChangeEvent(nativeEvent);\n}\n\n/**\n * If a `change` event should be fired, returns the target's ID.\n */\nfunction getTargetIDForInputEvent(\n topLevelType,\n topLevelTarget,\n topLevelTargetID) {\n if (topLevelType === topLevelTypes.topInput) {\n // In modern browsers (i.e., not IE8 or IE9), the input event is exactly\n // what we want so fall through here and trigger an abstract event\n return topLevelTargetID;\n }\n}\n\n// For IE8 and IE9.\nfunction handleEventsForInputEventIE(\n topLevelType,\n topLevelTarget,\n topLevelTargetID) {\n if (topLevelType === topLevelTypes.topFocus) {\n // In IE8, we can capture almost all .value changes by adding a\n // propertychange handler and looking for events with propertyName\n // equal to 'value'\n // In IE9, propertychange fires for most input events but is buggy and\n // doesn't fire when text is deleted, but conveniently, selectionchange\n // appears to fire in all of the remaining cases so we catch those and\n // forward the event if the value has changed\n // In either case, we don't want to call the event handler if the value\n // is changed from JS so we redefine a setter for `.value` that updates\n // our activeElementValue variable, allowing us to ignore those changes\n //\n // stopWatching() should be a noop here but we call it just in case we\n // missed a blur event somehow.\n stopWatchingForValueChange();\n startWatchingForValueChange(topLevelTarget, topLevelTargetID);\n } else if (topLevelType === topLevelTypes.topBlur) {\n stopWatchingForValueChange();\n }\n}\n\n// For IE8 and IE9.\nfunction getTargetIDForInputEventIE(\n topLevelType,\n topLevelTarget,\n topLevelTargetID) {\n if (topLevelType === topLevelTypes.topSelectionChange ||\n topLevelType === topLevelTypes.topKeyUp ||\n topLevelType === topLevelTypes.topKeyDown) {\n // On the selectionchange event, the target is just document which isn't\n // helpful for us so just check activeElement instead.\n //\n // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire\n // propertychange on the first input event after setting `value` from a\n // script and fires only keydown, keypress, keyup. Catching keyup usually\n // gets it and catching keydown lets us fire an event for the first\n // keystroke if user does a key repeat (it'll be a little delayed: right\n // before the second keystroke). Other input methods (e.g., paste) seem to\n // fire selectionchange normally.\n if (activeElement && activeElement.value !== activeElementValue) {\n activeElementValue = activeElement.value;\n return activeElementID;\n }\n }\n}\n\n\n/**\n * SECTION: handle `click` event\n */\nfunction shouldUseClickEvent(elem) {\n // Use the `click` event to detect changes to checkbox and radio inputs.\n // This approach works across all browsers, whereas `change` does not fire\n // until `blur` in IE8.\n return (\n elem.nodeName === 'INPUT' &&\n (elem.type === 'checkbox' || elem.type === 'radio')\n );\n}\n\nfunction getTargetIDForClickEvent(\n topLevelType,\n topLevelTarget,\n topLevelTargetID) {\n if (topLevelType === topLevelTypes.topClick) {\n return topLevelTargetID;\n }\n}\n\n/**\n * This plugin creates an `onChange` event that normalizes change events\n * across form elements. This event fires at a time when it's possible to\n * change the element's value without seeing a flicker.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - select\n */\nvar ChangeEventPlugin = {\n\n eventTypes: eventTypes,\n\n /**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {*} An accumulation of synthetic events.\n * @see {EventPluginHub.extractEvents}\n */\n extractEvents: function(\n topLevelType,\n topLevelTarget,\n topLevelTargetID,\n nativeEvent) {\n\n var getTargetIDFunc, handleEventFunc;\n if (shouldUseChangeEvent(topLevelTarget)) {\n if (doesChangeEventBubble) {\n getTargetIDFunc = getTargetIDForChangeEvent;\n } else {\n handleEventFunc = handleEventsForChangeEventIE8;\n }\n } else if (isTextInputElement(topLevelTarget)) {\n if (isInputEventSupported) {\n getTargetIDFunc = getTargetIDForInputEvent;\n } else {\n getTargetIDFunc = getTargetIDForInputEventIE;\n handleEventFunc = handleEventsForInputEventIE;\n }\n } else if (shouldUseClickEvent(topLevelTarget)) {\n getTargetIDFunc = getTargetIDForClickEvent;\n }\n\n if (getTargetIDFunc) {\n var targetID = getTargetIDFunc(\n topLevelType,\n topLevelTarget,\n topLevelTargetID\n );\n if (targetID) {\n var event = SyntheticEvent.getPooled(\n eventTypes.change,\n targetID,\n nativeEvent\n );\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n }\n }\n\n if (handleEventFunc) {\n handleEventFunc(\n topLevelType,\n topLevelTarget,\n topLevelTargetID\n );\n }\n }\n\n};\n\nmodule.exports = ChangeEventPlugin;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ChangeEventPlugin.js\n ** module id = 79\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ChangeEventPlugin.js?");
  855. /***/ },
  856. /* 80 */
  857. /***/ function(module, exports, __webpack_require__) {
  858. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ClientReactRootIndex\n * @typechecks\n */\n\n\"use strict\";\n\nvar nextReactRootIndex = 0;\n\nvar ClientReactRootIndex = {\n createReactRootIndex: function() {\n return nextReactRootIndex++;\n }\n};\n\nmodule.exports = ClientReactRootIndex;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ClientReactRootIndex.js\n ** module id = 80\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ClientReactRootIndex.js?");
  859. /***/ },
  860. /* 81 */
  861. /***/ function(module, exports, __webpack_require__) {
  862. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CompositionEventPlugin\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar EventConstants = __webpack_require__(33);\nvar EventPropagators = __webpack_require__(117);\nvar ExecutionEnvironment = __webpack_require__(62);\nvar ReactInputSelection = __webpack_require__(121);\nvar SyntheticCompositionEvent = __webpack_require__(122);\n\nvar getTextContentAccessor = __webpack_require__(123);\nvar keyOf = __webpack_require__(110);\n\nvar END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space\nvar START_KEYCODE = 229;\n\nvar useCompositionEvent = (\n ExecutionEnvironment.canUseDOM &&\n 'CompositionEvent' in window\n);\n\n// In IE9+, we have access to composition events, but the data supplied\n// by the native compositionend event may be incorrect. In Korean, for example,\n// the compositionend event contains only one character regardless of\n// how many characters have been composed since compositionstart.\n// We therefore use the fallback data while still using the native\n// events as triggers.\nvar useFallbackData = (\n !useCompositionEvent ||\n (\n 'documentMode' in document &&\n document.documentMode > 8 &&\n document.documentMode <= 11\n )\n);\n\nvar topLevelTypes = EventConstants.topLevelTypes;\nvar currentComposition = null;\n\n// Events and their corresponding property names.\nvar eventTypes = {\n compositionEnd: {\n phasedRegistrationNames: {\n bubbled: keyOf({onCompositionEnd: null}),\n captured: keyOf({onCompositionEndCapture: null})\n },\n dependencies: [\n topLevelTypes.topBlur,\n topLevelTypes.topCompositionEnd,\n topLevelTypes.topKeyDown,\n topLevelTypes.topKeyPress,\n topLevelTypes.topKeyUp,\n topLevelTypes.topMouseDown\n ]\n },\n compositionStart: {\n phasedRegistrationNames: {\n bubbled: keyOf({onCompositionStart: null}),\n captured: keyOf({onCompositionStartCapture: null})\n },\n dependencies: [\n topLevelTypes.topBlur,\n topLevelTypes.topCompositionStart,\n topLevelTypes.topKeyDown,\n topLevelTypes.topKeyPress,\n topLevelTypes.topKeyUp,\n topLevelTypes.topMouseDown\n ]\n },\n compositionUpdate: {\n phasedRegistrationNames: {\n bubbled: keyOf({onCompositionUpdate: null}),\n captured: keyOf({onCompositionUpdateCapture: null})\n },\n dependencies: [\n topLevelTypes.topBlur,\n topLevelTypes.topCompositionUpdate,\n topLevelTypes.topKeyDown,\n topLevelTypes.topKeyPress,\n topLevelTypes.topKeyUp,\n topLevelTypes.topMouseDown\n ]\n }\n};\n\n/**\n * Translate native top level events into event types.\n *\n * @param {string} topLevelType\n * @return {object}\n */\nfunction getCompositionEventType(topLevelType) {\n switch (topLevelType) {\n case topLevelTypes.topCompositionStart:\n return eventTypes.compositionStart;\n case topLevelTypes.topCompositionEnd:\n return eventTypes.compositionEnd;\n case topLevelTypes.topCompositionUpdate:\n return eventTypes.compositionUpdate;\n }\n}\n\n/**\n * Does our fallback best-guess model think this event signifies that\n * composition has begun?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackStart(topLevelType, nativeEvent) {\n return (\n topLevelType === topLevelTypes.topKeyDown &&\n nativeEvent.keyCode === START_KEYCODE\n );\n}\n\n/**\n * Does our fallback mode think that this event is the end of composition?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackEnd(topLevelType, nativeEvent) {\n switch (topLevelType) {\n case topLevelTypes.topKeyUp:\n // Command keys insert or clear IME input.\n return (END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1);\n case topLevelTypes.topKeyDown:\n // Expect IME keyCode on each keydown. If we get any other\n // code we must have exited earlier.\n return (nativeEvent.keyCode !== START_KEYCODE);\n case topLevelTypes.topKeyPress:\n case topLevelTypes.topMouseDown:\n case topLevelTypes.topBlur:\n // Events are not possible without cancelling IME.\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Helper class stores information about selection and document state\n * so we can figure out what changed at a later date.\n *\n * @param {DOMEventTarget} root\n */\nfunction FallbackCompositionState(root) {\n this.root = root;\n this.startSelection = ReactInputSelection.getSelection(root);\n this.startValue = this.getText();\n}\n\n/**\n * Get current text of input.\n *\n * @return {string}\n */\nFallbackCompositionState.prototype.getText = function() {\n return this.root.value || this.root[getTextContentAccessor()];\n};\n\n/**\n * Text that has changed since the start of composition.\n *\n * @return {string}\n */\nFallbackCompositionState.prototype.getData = function() {\n var endValue = this.getText();\n var prefixLength = this.startSelection.start;\n var suffixLength = this.startValue.length - this.startSelection.end;\n\n return endValue.substr(\n prefixLength,\n endValue.length - suffixLength - prefixLength\n );\n};\n\n/**\n * This plugin creates `onCompositionStart`, `onCompositionUpdate` and\n * `onCompositionEnd` events on inputs, textareas and contentEditable\n * nodes.\n */\nvar CompositionEventPlugin = {\n\n eventTypes: eventTypes,\n\n /**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {*} An accumulation of synthetic events.\n * @see {EventPluginHub.extractEvents}\n */\n extractEvents: function(\n topLevelType,\n topLevelTarget,\n topLevelTargetID,\n nativeEvent) {\n\n var eventType;\n var data;\n\n if (useCompositionEvent) {\n eventType = getCompositionEventType(topLevelType);\n } else if (!currentComposition) {\n if (isFallbackStart(topLevelType, nativeEvent)) {\n eventType = eventTypes.compositionStart;\n }\n } else if (isFallbackEnd(topLevelType, nativeEvent)) {\n eventType = eventTypes.compositionEnd;\n }\n\n if (useFallbackData) {\n // The current composition is stored statically and must not be\n // overwritten while composition continues.\n if (!currentComposition && eventType === eventTypes.compositionStart) {\n currentComposition = new FallbackCompositionState(topLevelTarget);\n } else if (eventType === eventTypes.compositionEnd) {\n if (currentComposition) {\n data = currentComposition.getData();\n currentComposition = null;\n }\n }\n }\n\n if (eventType) {\n var event = SyntheticCompositionEvent.getPooled(\n eventType,\n topLevelTargetID,\n nativeEvent\n );\n if (data) {\n // Inject data generated from fallback path into the synthetic event.\n // This matches the property of native CompositionEventInterface.\n event.data = data;\n }\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n }\n }\n};\n\nmodule.exports = CompositionEventPlugin;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/CompositionEventPlugin.js\n ** module id = 81\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/CompositionEventPlugin.js?");
  863. /***/ },
  864. /* 82 */
  865. /***/ function(module, exports, __webpack_require__) {
  866. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DefaultEventPluginOrder\n */\n\n\"use strict\";\n\n var keyOf = __webpack_require__(110);\n\n/**\n * Module that is injectable into `EventPluginHub`, that specifies a\n * deterministic ordering of `EventPlugin`s. A convenient way to reason about\n * plugins, without having to package every one of them. This is better than\n * having plugins be ordered in the same order that they are injected because\n * that ordering would be influenced by the packaging order.\n * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that\n * preventing default on events is convenient in `SimpleEventPlugin` handlers.\n */\nvar DefaultEventPluginOrder = [\n keyOf({ResponderEventPlugin: null}),\n keyOf({SimpleEventPlugin: null}),\n keyOf({TapEventPlugin: null}),\n keyOf({EnterLeaveEventPlugin: null}),\n keyOf({ChangeEventPlugin: null}),\n keyOf({SelectEventPlugin: null}),\n keyOf({CompositionEventPlugin: null}),\n keyOf({BeforeInputEventPlugin: null}),\n keyOf({AnalyticsEventPlugin: null}),\n keyOf({MobileSafariClickEventPlugin: null})\n];\n\nmodule.exports = DefaultEventPluginOrder;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/DefaultEventPluginOrder.js\n ** module id = 82\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/DefaultEventPluginOrder.js?");
  867. /***/ },
  868. /* 83 */
  869. /***/ function(module, exports, __webpack_require__) {
  870. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EnterLeaveEventPlugin\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar EventConstants = __webpack_require__(33);\nvar EventPropagators = __webpack_require__(117);\nvar SyntheticMouseEvent = __webpack_require__(124);\n\nvar ReactMount = __webpack_require__(9);\nvar keyOf = __webpack_require__(110);\n\nvar topLevelTypes = EventConstants.topLevelTypes;\nvar getFirstReactDOM = ReactMount.getFirstReactDOM;\n\nvar eventTypes = {\n mouseEnter: {\n registrationName: keyOf({onMouseEnter: null}),\n dependencies: [\n topLevelTypes.topMouseOut,\n topLevelTypes.topMouseOver\n ]\n },\n mouseLeave: {\n registrationName: keyOf({onMouseLeave: null}),\n dependencies: [\n topLevelTypes.topMouseOut,\n topLevelTypes.topMouseOver\n ]\n }\n};\n\nvar extractedEvents = [null, null];\n\nvar EnterLeaveEventPlugin = {\n\n eventTypes: eventTypes,\n\n /**\n * For almost every interaction we care about, there will be both a top-level\n * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that\n * we do not extract duplicate events. However, moving the mouse into the\n * browser from outside will not fire a `mouseout` event. In this case, we use\n * the `mouseover` top-level event.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {*} An accumulation of synthetic events.\n * @see {EventPluginHub.extractEvents}\n */\n extractEvents: function(\n topLevelType,\n topLevelTarget,\n topLevelTargetID,\n nativeEvent) {\n if (topLevelType === topLevelTypes.topMouseOver &&\n (nativeEvent.relatedTarget || nativeEvent.fromElement)) {\n return null;\n }\n if (topLevelType !== topLevelTypes.topMouseOut &&\n topLevelType !== topLevelTypes.topMouseOver) {\n // Must not be a mouse in or mouse out - ignoring.\n return null;\n }\n\n var win;\n if (topLevelTarget.window === topLevelTarget) {\n // `topLevelTarget` is probably a window object.\n win = topLevelTarget;\n } else {\n // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n var doc = topLevelTarget.ownerDocument;\n if (doc) {\n win = doc.defaultView || doc.parentWindow;\n } else {\n win = window;\n }\n }\n\n var from, to;\n if (topLevelType === topLevelTypes.topMouseOut) {\n from = topLevelTarget;\n to =\n getFirstReactDOM(nativeEvent.relatedTarget || nativeEvent.toElement) ||\n win;\n } else {\n from = win;\n to = topLevelTarget;\n }\n\n if (from === to) {\n // Nothing pertains to our managed components.\n return null;\n }\n\n var fromID = from ? ReactMount.getID(from) : '';\n var toID = to ? ReactMount.getID(to) : '';\n\n var leave = SyntheticMouseEvent.getPooled(\n eventTypes.mouseLeave,\n fromID,\n nativeEvent\n );\n leave.type = 'mouseleave';\n leave.target = from;\n leave.relatedTarget = to;\n\n var enter = SyntheticMouseEvent.getPooled(\n eventTypes.mouseEnter,\n toID,\n nativeEvent\n );\n enter.type = 'mouseenter';\n enter.target = to;\n enter.relatedTarget = from;\n\n EventPropagators.accumulateEnterLeaveDispatches(leave, enter, fromID, toID);\n\n extractedEvents[0] = leave;\n extractedEvents[1] = enter;\n\n return extractedEvents;\n }\n\n};\n\nmodule.exports = EnterLeaveEventPlugin;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/EnterLeaveEventPlugin.js\n ** module id = 83\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/EnterLeaveEventPlugin.js?");
  871. /***/ },
  872. /* 84 */
  873. /***/ function(module, exports, __webpack_require__) {
  874. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule HTMLDOMPropertyConfig\n */\n\n/*jslint bitwise: true*/\n\n\"use strict\";\n\nvar DOMProperty = __webpack_require__(16);\nvar ExecutionEnvironment = __webpack_require__(62);\n\nvar MUST_USE_ATTRIBUTE = DOMProperty.injection.MUST_USE_ATTRIBUTE;\nvar MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY;\nvar HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE;\nvar HAS_SIDE_EFFECTS = DOMProperty.injection.HAS_SIDE_EFFECTS;\nvar HAS_NUMERIC_VALUE = DOMProperty.injection.HAS_NUMERIC_VALUE;\nvar HAS_POSITIVE_NUMERIC_VALUE =\n DOMProperty.injection.HAS_POSITIVE_NUMERIC_VALUE;\nvar HAS_OVERLOADED_BOOLEAN_VALUE =\n DOMProperty.injection.HAS_OVERLOADED_BOOLEAN_VALUE;\n\nvar hasSVG;\nif (ExecutionEnvironment.canUseDOM) {\n var implementation = document.implementation;\n hasSVG = (\n implementation &&\n implementation.hasFeature &&\n implementation.hasFeature(\n 'http://www.w3.org/TR/SVG11/feature#BasicStructure',\n '1.1'\n )\n );\n}\n\n\nvar HTMLDOMPropertyConfig = {\n isCustomAttribute: RegExp.prototype.test.bind(\n /^(data|aria)-[a-z_][a-z\\d_.\\-]*$/\n ),\n Properties: {\n /**\n * Standard Properties\n */\n accept: null,\n acceptCharset: null,\n accessKey: null,\n action: null,\n allowFullScreen: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n allowTransparency: MUST_USE_ATTRIBUTE,\n alt: null,\n async: HAS_BOOLEAN_VALUE,\n autoComplete: null,\n // autoFocus is polyfilled/normalized by AutoFocusMixin\n // autoFocus: HAS_BOOLEAN_VALUE,\n autoPlay: HAS_BOOLEAN_VALUE,\n cellPadding: null,\n cellSpacing: null,\n charSet: MUST_USE_ATTRIBUTE,\n checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n classID: MUST_USE_ATTRIBUTE,\n // To set className on SVG elements, it's necessary to use .setAttribute;\n // this works on HTML elements too in all browsers except IE8. Conveniently,\n // IE8 doesn't support SVG and so we can simply use the attribute in\n // browsers that support SVG and the property in browsers that don't,\n // regardless of whether the element is HTML or SVG.\n className: hasSVG ? MUST_USE_ATTRIBUTE : MUST_USE_PROPERTY,\n cols: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE,\n colSpan: null,\n content: null,\n contentEditable: null,\n contextMenu: MUST_USE_ATTRIBUTE,\n controls: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n coords: null,\n crossOrigin: null,\n data: null, // For `<object />` acts as `src`.\n dateTime: MUST_USE_ATTRIBUTE,\n defer: HAS_BOOLEAN_VALUE,\n dir: null,\n disabled: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n download: HAS_OVERLOADED_BOOLEAN_VALUE,\n draggable: null,\n encType: null,\n form: MUST_USE_ATTRIBUTE,\n formAction: MUST_USE_ATTRIBUTE,\n formEncType: MUST_USE_ATTRIBUTE,\n formMethod: MUST_USE_ATTRIBUTE,\n formNoValidate: HAS_BOOLEAN_VALUE,\n formTarget: MUST_USE_ATTRIBUTE,\n frameBorder: MUST_USE_ATTRIBUTE,\n height: MUST_USE_ATTRIBUTE,\n hidden: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n href: null,\n hrefLang: null,\n htmlFor: null,\n httpEquiv: null,\n icon: null,\n id: MUST_USE_PROPERTY,\n label: null,\n lang: null,\n list: MUST_USE_ATTRIBUTE,\n loop: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n manifest: MUST_USE_ATTRIBUTE,\n marginHeight: null,\n marginWidth: null,\n max: null,\n maxLength: MUST_USE_ATTRIBUTE,\n media: MUST_USE_ATTRIBUTE,\n mediaGroup: null,\n method: null,\n min: null,\n multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n name: null,\n noValidate: HAS_BOOLEAN_VALUE,\n open: null,\n pattern: null,\n placeholder: null,\n poster: null,\n preload: null,\n radioGroup: null,\n readOnly: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n rel: null,\n required: HAS_BOOLEAN_VALUE,\n role: MUST_USE_ATTRIBUTE,\n rows: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE,\n rowSpan: null,\n sandbox: null,\n scope: null,\n scrolling: null,\n seamless: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n shape: null,\n size: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE,\n sizes: MUST_USE_ATTRIBUTE,\n span: HAS_POSITIVE_NUMERIC_VALUE,\n spellCheck: null,\n src: null,\n srcDoc: MUST_USE_PROPERTY,\n srcSet: MUST_USE_ATTRIBUTE,\n start: HAS_NUMERIC_VALUE,\n step: null,\n style: null,\n tabIndex: null,\n target: null,\n title: null,\n type: null,\n useMap: null,\n value: MUST_USE_PROPERTY | HAS_SIDE_EFFECTS,\n width: MUST_USE_ATTRIBUTE,\n wmode: MUST_USE_ATTRIBUTE,\n\n /**\n * Non-standard Properties\n */\n autoCapitalize: null, // Supported in Mobile Safari for keyboard hints\n autoCorrect: null, // Supported in Mobile Safari for keyboard hints\n itemProp: MUST_USE_ATTRIBUTE, // Microdata: http://schema.org/docs/gs.html\n itemScope: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE, // Microdata: http://schema.org/docs/gs.html\n itemType: MUST_USE_ATTRIBUTE, // Microdata: http://schema.org/docs/gs.html\n property: null // Supports OG in meta tags\n },\n DOMAttributeNames: {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv'\n },\n DOMPropertyNames: {\n autoCapitalize: 'autocapitalize',\n autoComplete: 'autocomplete',\n autoCorrect: 'autocorrect',\n autoFocus: 'autofocus',\n autoPlay: 'autoplay',\n encType: 'enctype',\n hrefLang: 'hreflang',\n radioGroup: 'radiogroup',\n spellCheck: 'spellcheck',\n srcDoc: 'srcdoc',\n srcSet: 'srcset'\n }\n};\n\nmodule.exports = HTMLDOMPropertyConfig;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/HTMLDOMPropertyConfig.js\n ** module id = 84\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/HTMLDOMPropertyConfig.js?");
  875. /***/ },
  876. /* 85 */
  877. /***/ function(module, exports, __webpack_require__) {
  878. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule MobileSafariClickEventPlugin\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar EventConstants = __webpack_require__(33);\n\nvar emptyFunction = __webpack_require__(46);\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\n/**\n * Mobile Safari does not fire properly bubble click events on non-interactive\n * elements, which means delegated click listeners do not fire. The workaround\n * for this bug involves attaching an empty click listener on the target node.\n *\n * This particular plugin works around the bug by attaching an empty click\n * listener on `touchstart` (which does fire on every element).\n */\nvar MobileSafariClickEventPlugin = {\n\n eventTypes: null,\n\n /**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {*} An accumulation of synthetic events.\n * @see {EventPluginHub.extractEvents}\n */\n extractEvents: function(\n topLevelType,\n topLevelTarget,\n topLevelTargetID,\n nativeEvent) {\n if (topLevelType === topLevelTypes.topTouchStart) {\n var target = nativeEvent.target;\n if (target && !target.onclick) {\n target.onclick = emptyFunction;\n }\n }\n }\n\n};\n\nmodule.exports = MobileSafariClickEventPlugin;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/MobileSafariClickEventPlugin.js\n ** module id = 85\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/MobileSafariClickEventPlugin.js?");
  879. /***/ },
  880. /* 86 */
  881. /***/ function(module, exports, __webpack_require__) {
  882. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactBrowserComponentMixin\n */\n\n\"use strict\";\n\nvar ReactEmptyComponent = __webpack_require__(45);\nvar ReactMount = __webpack_require__(9);\n\nvar invariant = __webpack_require__(27);\n\nvar ReactBrowserComponentMixin = {\n /**\n * Returns the DOM node rendered by this component.\n *\n * @return {DOMElement} The root node of this component.\n * @final\n * @protected\n */\n getDOMNode: function() {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n this.isMounted(),\n 'getDOMNode(): A component must be mounted to have a DOM node.'\n ) : invariant(this.isMounted()));\n if (ReactEmptyComponent.isNullComponentID(this._rootNodeID)) {\n return null;\n }\n return ReactMount.getNode(this._rootNodeID);\n }\n};\n\nmodule.exports = ReactBrowserComponentMixin;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactBrowserComponentMixin.js\n ** module id = 86\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactBrowserComponentMixin.js?");
  883. /***/ },
  884. /* 87 */
  885. /***/ function(module, exports, __webpack_require__) {
  886. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponentBrowserEnvironment\n */\n\n/*jslint evil: true */\n\n\"use strict\";\n\nvar ReactDOMIDOperations = __webpack_require__(125);\nvar ReactMarkupChecksum = __webpack_require__(107);\nvar ReactMount = __webpack_require__(9);\nvar ReactPerf = __webpack_require__(22);\nvar ReactReconcileTransaction = __webpack_require__(126);\n\nvar getReactRootElementInContainer = __webpack_require__(25);\nvar invariant = __webpack_require__(27);\nvar setInnerHTML = __webpack_require__(127);\n\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOC_NODE_TYPE = 9;\n\n\n/**\n * Abstracts away all functionality of `ReactComponent` requires knowledge of\n * the browser context.\n */\nvar ReactComponentBrowserEnvironment = {\n ReactReconcileTransaction: ReactReconcileTransaction,\n\n BackendIDOperations: ReactDOMIDOperations,\n\n /**\n * If a particular environment requires that some resources be cleaned up,\n * specify this in the injected Mixin. In the DOM, we would likely want to\n * purge any cached node ID lookups.\n *\n * @private\n */\n unmountIDFromEnvironment: function(rootNodeID) {\n ReactMount.purgeID(rootNodeID);\n },\n\n /**\n * @param {string} markup Markup string to place into the DOM Element.\n * @param {DOMElement} container DOM Element to insert markup into.\n * @param {boolean} shouldReuseMarkup Should reuse the existing markup in the\n * container if possible.\n */\n mountImageIntoNode: ReactPerf.measure(\n 'ReactComponentBrowserEnvironment',\n 'mountImageIntoNode',\n function(markup, container, shouldReuseMarkup) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n container && (\n container.nodeType === ELEMENT_NODE_TYPE ||\n container.nodeType === DOC_NODE_TYPE\n ),\n 'mountComponentIntoNode(...): Target container is not valid.'\n ) : invariant(container && (\n container.nodeType === ELEMENT_NODE_TYPE ||\n container.nodeType === DOC_NODE_TYPE\n )));\n\n if (shouldReuseMarkup) {\n if (ReactMarkupChecksum.canReuseMarkup(\n markup,\n getReactRootElementInContainer(container))) {\n return;\n } else {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n container.nodeType !== DOC_NODE_TYPE,\n 'You\\'re trying to render a component to the document using ' +\n 'server rendering but the checksum was invalid. This usually ' +\n 'means you rendered a different component type or props on ' +\n 'the client from the one on the server, or your render() ' +\n 'methods are impure. React cannot handle this case due to ' +\n 'cross-browser quirks by rendering at the document root. You ' +\n 'should look for environment dependent code in your components ' +\n 'and ensure the props are the same client and server side.'\n ) : invariant(container.nodeType !== DOC_NODE_TYPE));\n\n if (\"production\" !== process.env.NODE_ENV) {\n console.warn(\n 'React attempted to use reuse markup in a container but the ' +\n 'checksum was invalid. This generally means that you are ' +\n 'using server rendering and the markup generated on the ' +\n 'server was not what the client was expecting. React injected ' +\n 'new markup to compensate which works but you have lost many ' +\n 'of the benefits of server rendering. Instead, figure out ' +\n 'why the markup being generated is different on the client ' +\n 'or server.'\n );\n }\n }\n }\n\n (\"production\" !== process.env.NODE_ENV ? invariant(\n container.nodeType !== DOC_NODE_TYPE,\n 'You\\'re trying to render a component to the document but ' +\n 'you didn\\'t use server rendering. We can\\'t do this ' +\n 'without using server rendering due to cross-browser quirks. ' +\n 'See renderComponentToString() for server rendering.'\n ) : invariant(container.nodeType !== DOC_NODE_TYPE));\n\n setInnerHTML(container, markup);\n }\n )\n};\n\nmodule.exports = ReactComponentBrowserEnvironment;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactComponentBrowserEnvironment.js\n ** module id = 87\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactComponentBrowserEnvironment.js?");
  887. /***/ },
  888. /* 88 */
  889. /***/ function(module, exports, __webpack_require__) {
  890. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultBatchingStrategy\n */\n\n\"use strict\";\n\nvar ReactUpdates = __webpack_require__(77);\nvar Transaction = __webpack_require__(116);\n\nvar assign = __webpack_require__(38);\nvar emptyFunction = __webpack_require__(46);\n\nvar RESET_BATCHED_UPDATES = {\n initialize: emptyFunction,\n close: function() {\n ReactDefaultBatchingStrategy.isBatchingUpdates = false;\n }\n};\n\nvar FLUSH_BATCHED_UPDATES = {\n initialize: emptyFunction,\n close: ReactUpdates.flushBatchedUpdates.bind(ReactUpdates)\n};\n\nvar TRANSACTION_WRAPPERS = [FLUSH_BATCHED_UPDATES, RESET_BATCHED_UPDATES];\n\nfunction ReactDefaultBatchingStrategyTransaction() {\n this.reinitializeTransaction();\n}\n\nassign(\n ReactDefaultBatchingStrategyTransaction.prototype,\n Transaction.Mixin,\n {\n getTransactionWrappers: function() {\n return TRANSACTION_WRAPPERS;\n }\n }\n);\n\nvar transaction = new ReactDefaultBatchingStrategyTransaction();\n\nvar ReactDefaultBatchingStrategy = {\n isBatchingUpdates: false,\n\n /**\n * Call the provided function in a context within which calls to `setState`\n * and friends are batched such that components aren't updated unnecessarily.\n */\n batchedUpdates: function(callback, a, b) {\n var alreadyBatchingUpdates = ReactDefaultBatchingStrategy.isBatchingUpdates;\n\n ReactDefaultBatchingStrategy.isBatchingUpdates = true;\n\n // The code is written this way to avoid extra allocations\n if (alreadyBatchingUpdates) {\n callback(a, b);\n } else {\n transaction.perform(callback, null, a, b);\n }\n }\n};\n\nmodule.exports = ReactDefaultBatchingStrategy;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDefaultBatchingStrategy.js\n ** module id = 88\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactDefaultBatchingStrategy.js?");
  891. /***/ },
  892. /* 89 */
  893. /***/ function(module, exports, __webpack_require__) {
  894. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMButton\n */\n\n\"use strict\";\n\nvar AutoFocusMixin = __webpack_require__(128);\nvar ReactBrowserComponentMixin = __webpack_require__(86);\nvar ReactCompositeComponent = __webpack_require__(52);\nvar ReactElement = __webpack_require__(19);\nvar ReactDOM = __webpack_require__(54);\n\nvar keyMirror = __webpack_require__(63);\n\n// Store a reference to the <button> `ReactDOMComponent`. TODO: use string\nvar button = ReactElement.createFactory(ReactDOM.button.type);\n\nvar mouseListenerNames = keyMirror({\n onClick: true,\n onDoubleClick: true,\n onMouseDown: true,\n onMouseMove: true,\n onMouseUp: true,\n onClickCapture: true,\n onDoubleClickCapture: true,\n onMouseDownCapture: true,\n onMouseMoveCapture: true,\n onMouseUpCapture: true\n});\n\n/**\n * Implements a <button> native component that does not receive mouse events\n * when `disabled` is set.\n */\nvar ReactDOMButton = ReactCompositeComponent.createClass({\n displayName: 'ReactDOMButton',\n\n mixins: [AutoFocusMixin, ReactBrowserComponentMixin],\n\n render: function() {\n var props = {};\n\n // Copy the props; except the mouse listeners if we're disabled\n for (var key in this.props) {\n if (this.props.hasOwnProperty(key) &&\n (!this.props.disabled || !mouseListenerNames[key])) {\n props[key] = this.props[key];\n }\n }\n\n return button(props, this.props.children);\n }\n\n});\n\nmodule.exports = ReactDOMButton;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMButton.js\n ** module id = 89\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactDOMButton.js?");
  895. /***/ },
  896. /* 90 */
  897. /***/ function(module, exports, __webpack_require__) {
  898. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMForm\n */\n\n\"use strict\";\n\nvar EventConstants = __webpack_require__(33);\nvar LocalEventTrapMixin = __webpack_require__(129);\nvar ReactBrowserComponentMixin = __webpack_require__(86);\nvar ReactCompositeComponent = __webpack_require__(52);\nvar ReactElement = __webpack_require__(19);\nvar ReactDOM = __webpack_require__(54);\n\n// Store a reference to the <form> `ReactDOMComponent`. TODO: use string\nvar form = ReactElement.createFactory(ReactDOM.form.type);\n\n/**\n * Since onSubmit doesn't bubble OR capture on the top level in IE8, we need\n * to capture it on the <form> element itself. There are lots of hacks we could\n * do to accomplish this, but the most reliable is to make <form> a\n * composite component and use `componentDidMount` to attach the event handlers.\n */\nvar ReactDOMForm = ReactCompositeComponent.createClass({\n displayName: 'ReactDOMForm',\n\n mixins: [ReactBrowserComponentMixin, LocalEventTrapMixin],\n\n render: function() {\n // TODO: Instead of using `ReactDOM` directly, we should use JSX. However,\n // `jshint` fails to parse JSX so in order for linting to work in the open\n // source repo, we need to just use `ReactDOM.form`.\n return form(this.props);\n },\n\n componentDidMount: function() {\n this.trapBubbledEvent(EventConstants.topLevelTypes.topReset, 'reset');\n this.trapBubbledEvent(EventConstants.topLevelTypes.topSubmit, 'submit');\n }\n});\n\nmodule.exports = ReactDOMForm;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMForm.js\n ** module id = 90\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactDOMForm.js?");
  899. /***/ },
  900. /* 91 */
  901. /***/ function(module, exports, __webpack_require__) {
  902. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMImg\n */\n\n\"use strict\";\n\nvar EventConstants = __webpack_require__(33);\nvar LocalEventTrapMixin = __webpack_require__(129);\nvar ReactBrowserComponentMixin = __webpack_require__(86);\nvar ReactCompositeComponent = __webpack_require__(52);\nvar ReactElement = __webpack_require__(19);\nvar ReactDOM = __webpack_require__(54);\n\n// Store a reference to the <img> `ReactDOMComponent`. TODO: use string\nvar img = ReactElement.createFactory(ReactDOM.img.type);\n\n/**\n * Since onLoad doesn't bubble OR capture on the top level in IE8, we need to\n * capture it on the <img> element itself. There are lots of hacks we could do\n * to accomplish this, but the most reliable is to make <img> a composite\n * component and use `componentDidMount` to attach the event handlers.\n */\nvar ReactDOMImg = ReactCompositeComponent.createClass({\n displayName: 'ReactDOMImg',\n tagName: 'IMG',\n\n mixins: [ReactBrowserComponentMixin, LocalEventTrapMixin],\n\n render: function() {\n return img(this.props);\n },\n\n componentDidMount: function() {\n this.trapBubbledEvent(EventConstants.topLevelTypes.topLoad, 'load');\n this.trapBubbledEvent(EventConstants.topLevelTypes.topError, 'error');\n }\n});\n\nmodule.exports = ReactDOMImg;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMImg.js\n ** module id = 91\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactDOMImg.js?");
  903. /***/ },
  904. /* 92 */
  905. /***/ function(module, exports, __webpack_require__) {
  906. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMInput\n */\n\n\"use strict\";\n\nvar AutoFocusMixin = __webpack_require__(128);\nvar DOMPropertyOperations = __webpack_require__(48);\nvar LinkedValueUtils = __webpack_require__(130);\nvar ReactBrowserComponentMixin = __webpack_require__(86);\nvar ReactCompositeComponent = __webpack_require__(52);\nvar ReactElement = __webpack_require__(19);\nvar ReactDOM = __webpack_require__(54);\nvar ReactMount = __webpack_require__(9);\nvar ReactUpdates = __webpack_require__(77);\n\nvar assign = __webpack_require__(38);\nvar invariant = __webpack_require__(27);\n\n// Store a reference to the <input> `ReactDOMComponent`. TODO: use string\nvar input = ReactElement.createFactory(ReactDOM.input.type);\n\nvar instancesByReactID = {};\n\nfunction forceUpdateIfMounted() {\n /*jshint validthis:true */\n if (this.isMounted()) {\n this.forceUpdate();\n }\n}\n\n/**\n * Implements an <input> native component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * @see http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */\nvar ReactDOMInput = ReactCompositeComponent.createClass({\n displayName: 'ReactDOMInput',\n\n mixins: [AutoFocusMixin, LinkedValueUtils.Mixin, ReactBrowserComponentMixin],\n\n getInitialState: function() {\n var defaultValue = this.props.defaultValue;\n return {\n initialChecked: this.props.defaultChecked || false,\n initialValue: defaultValue != null ? defaultValue : null\n };\n },\n\n render: function() {\n // Clone `this.props` so we don't mutate the input.\n var props = assign({}, this.props);\n\n props.defaultChecked = null;\n props.defaultValue = null;\n\n var value = LinkedValueUtils.getValue(this);\n props.value = value != null ? value : this.state.initialValue;\n\n var checked = LinkedValueUtils.getChecked(this);\n props.checked = checked != null ? checked : this.state.initialChecked;\n\n props.onChange = this._handleChange;\n\n return input(props, this.props.children);\n },\n\n componentDidMount: function() {\n var id = ReactMount.getID(this.getDOMNode());\n instancesByReactID[id] = this;\n },\n\n componentWillUnmount: function() {\n var rootNode = this.getDOMNode();\n var id = ReactMount.getID(rootNode);\n delete instancesByReactID[id];\n },\n\n componentDidUpdate: function(prevProps, prevState, prevContext) {\n var rootNode = this.getDOMNode();\n if (this.props.checked != null) {\n DOMPropertyOperations.setValueForProperty(\n rootNode,\n 'checked',\n this.props.checked || false\n );\n }\n\n var value = LinkedValueUtils.getValue(this);\n if (value != null) {\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n DOMPropertyOperations.setValueForProperty(rootNode, 'value', '' + value);\n }\n },\n\n _handleChange: function(event) {\n var returnValue;\n var onChange = LinkedValueUtils.getOnChange(this);\n if (onChange) {\n returnValue = onChange.call(this, event);\n }\n // Here we use asap to wait until all updates have propagated, which\n // is important when using controlled components within layers:\n // https://github.com/facebook/react/issues/1698\n ReactUpdates.asap(forceUpdateIfMounted, this);\n\n var name = this.props.name;\n if (this.props.type === 'radio' && name != null) {\n var rootNode = this.getDOMNode();\n var queryRoot = rootNode;\n\n while (queryRoot.parentNode) {\n queryRoot = queryRoot.parentNode;\n }\n\n // If `rootNode.form` was non-null, then we could try `form.elements`,\n // but that sometimes behaves strangely in IE8. We could also try using\n // `form.getElementsByName`, but that will only return direct children\n // and won't include inputs that use the HTML5 `form=` attribute. Since\n // the input might not even be in a form, let's just use the global\n // `querySelectorAll` to ensure we don't miss anything.\n var group = queryRoot.querySelectorAll(\n 'input[name=' + JSON.stringify('' + name) + '][type=\"radio\"]');\n\n for (var i = 0, groupLen = group.length; i < groupLen; i++) {\n var otherNode = group[i];\n if (otherNode === rootNode ||\n otherNode.form !== rootNode.form) {\n continue;\n }\n var otherID = ReactMount.getID(otherNode);\n (\"production\" !== process.env.NODE_ENV ? invariant(\n otherID,\n 'ReactDOMInput: Mixing React and non-React radio inputs with the ' +\n 'same `name` is not supported.'\n ) : invariant(otherID));\n var otherInstance = instancesByReactID[otherID];\n (\"production\" !== process.env.NODE_ENV ? invariant(\n otherInstance,\n 'ReactDOMInput: Unknown radio button ID %s.',\n otherID\n ) : invariant(otherInstance));\n // If this is a controlled radio button group, forcing the input that\n // was previously checked to update will cause it to be come re-checked\n // as appropriate.\n ReactUpdates.asap(forceUpdateIfMounted, otherInstance);\n }\n }\n\n return returnValue;\n }\n\n});\n\nmodule.exports = ReactDOMInput;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMInput.js\n ** module id = 92\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactDOMInput.js?");
  907. /***/ },
  908. /* 93 */
  909. /***/ function(module, exports, __webpack_require__) {
  910. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMOption\n */\n\n\"use strict\";\n\nvar ReactBrowserComponentMixin = __webpack_require__(86);\nvar ReactCompositeComponent = __webpack_require__(52);\nvar ReactElement = __webpack_require__(19);\nvar ReactDOM = __webpack_require__(54);\n\nvar warning = __webpack_require__(29);\n\n// Store a reference to the <option> `ReactDOMComponent`. TODO: use string\nvar option = ReactElement.createFactory(ReactDOM.option.type);\n\n/**\n * Implements an <option> native component that warns when `selected` is set.\n */\nvar ReactDOMOption = ReactCompositeComponent.createClass({\n displayName: 'ReactDOMOption',\n\n mixins: [ReactBrowserComponentMixin],\n\n componentWillMount: function() {\n // TODO (yungsters): Remove support for `selected` in <option>.\n if (\"production\" !== process.env.NODE_ENV) {\n (\"production\" !== process.env.NODE_ENV ? warning(\n this.props.selected == null,\n 'Use the `defaultValue` or `value` props on <select> instead of ' +\n 'setting `selected` on <option>.'\n ) : null);\n }\n },\n\n render: function() {\n return option(this.props, this.props.children);\n }\n\n});\n\nmodule.exports = ReactDOMOption;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMOption.js\n ** module id = 93\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactDOMOption.js?");
  911. /***/ },
  912. /* 94 */
  913. /***/ function(module, exports, __webpack_require__) {
  914. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMSelect\n */\n\n\"use strict\";\n\nvar AutoFocusMixin = __webpack_require__(128);\nvar LinkedValueUtils = __webpack_require__(130);\nvar ReactBrowserComponentMixin = __webpack_require__(86);\nvar ReactCompositeComponent = __webpack_require__(52);\nvar ReactElement = __webpack_require__(19);\nvar ReactDOM = __webpack_require__(54);\nvar ReactUpdates = __webpack_require__(77);\n\nvar assign = __webpack_require__(38);\n\n// Store a reference to the <select> `ReactDOMComponent`. TODO: use string\nvar select = ReactElement.createFactory(ReactDOM.select.type);\n\nfunction updateWithPendingValueIfMounted() {\n /*jshint validthis:true */\n if (this.isMounted()) {\n this.setState({value: this._pendingValue});\n this._pendingValue = 0;\n }\n}\n\n/**\n * Validation function for `value` and `defaultValue`.\n * @private\n */\nfunction selectValueType(props, propName, componentName) {\n if (props[propName] == null) {\n return;\n }\n if (props.multiple) {\n if (!Array.isArray(props[propName])) {\n return new Error(\n (\"The `\" + propName + \"` prop supplied to <select> must be an array if \") +\n (\"`multiple` is true.\")\n );\n }\n } else {\n if (Array.isArray(props[propName])) {\n return new Error(\n (\"The `\" + propName + \"` prop supplied to <select> must be a scalar \") +\n (\"value if `multiple` is false.\")\n );\n }\n }\n}\n\n/**\n * If `value` is supplied, updates <option> elements on mount and update.\n * @param {ReactComponent} component Instance of ReactDOMSelect\n * @param {?*} propValue For uncontrolled components, null/undefined. For\n * controlled components, a string (or with `multiple`, a list of strings).\n * @private\n */\nfunction updateOptions(component, propValue) {\n var multiple = component.props.multiple;\n var value = propValue != null ? propValue : component.state.value;\n var options = component.getDOMNode().options;\n var selectedValue, i, l;\n if (multiple) {\n selectedValue = {};\n for (i = 0, l = value.length; i < l; ++i) {\n selectedValue['' + value[i]] = true;\n }\n } else {\n selectedValue = '' + value;\n }\n for (i = 0, l = options.length; i < l; i++) {\n var selected = multiple ?\n selectedValue.hasOwnProperty(options[i].value) :\n options[i].value === selectedValue;\n\n if (selected !== options[i].selected) {\n options[i].selected = selected;\n }\n }\n}\n\n/**\n * Implements a <select> native component that allows optionally setting the\n * props `value` and `defaultValue`. If `multiple` is false, the prop must be a\n * string. If `multiple` is true, the prop must be an array of strings.\n *\n * If `value` is not supplied (or null/undefined), user actions that change the\n * selected option will trigger updates to the rendered options.\n *\n * If it is supplied (and not null/undefined), the rendered options will not\n * update in response to user actions. Instead, the `value` prop must change in\n * order for the rendered options to update.\n *\n * If `defaultValue` is provided, any options with the supplied values will be\n * selected.\n */\nvar ReactDOMSelect = ReactCompositeComponent.createClass({\n displayName: 'ReactDOMSelect',\n\n mixins: [AutoFocusMixin, LinkedValueUtils.Mixin, ReactBrowserComponentMixin],\n\n propTypes: {\n defaultValue: selectValueType,\n value: selectValueType\n },\n\n getInitialState: function() {\n return {value: this.props.defaultValue || (this.props.multiple ? [] : '')};\n },\n\n componentWillMount: function() {\n this._pendingValue = null;\n },\n\n componentWillReceiveProps: function(nextProps) {\n if (!this.props.multiple && nextProps.multiple) {\n this.setState({value: [this.state.value]});\n } else if (this.props.multiple && !nextProps.multiple) {\n this.setState({value: this.state.value[0]});\n }\n },\n\n render: function() {\n // Clone `this.props` so we don't mutate the input.\n var props = assign({}, this.props);\n\n props.onChange = this._handleChange;\n props.value = null;\n\n return select(props, this.props.children);\n },\n\n componentDidMount: function() {\n updateOptions(this, LinkedValueUtils.getValue(this));\n },\n\n componentDidUpdate: function(prevProps) {\n var value = LinkedValueUtils.getValue(this);\n var prevMultiple = !!prevProps.multiple;\n var multiple = !!this.props.multiple;\n if (value != null || prevMultiple !== multiple) {\n updateOptions(this, value);\n }\n },\n\n _handleChange: function(event) {\n var returnValue;\n var onChange = LinkedValueUtils.getOnChange(this);\n if (onChange) {\n returnValue = onChange.call(this, event);\n }\n\n var selectedValue;\n if (this.props.multiple) {\n selectedValue = [];\n var options = event.target.options;\n for (var i = 0, l = options.length; i < l; i++) {\n if (options[i].selected) {\n selectedValue.push(options[i].value);\n }\n }\n } else {\n selectedValue = event.target.value;\n }\n\n this._pendingValue = selectedValue;\n ReactUpdates.asap(updateWithPendingValueIfMounted, this);\n return returnValue;\n }\n\n});\n\nmodule.exports = ReactDOMSelect;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMSelect.js\n ** module id = 94\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactDOMSelect.js?");
  915. /***/ },
  916. /* 95 */
  917. /***/ function(module, exports, __webpack_require__) {
  918. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMTextarea\n */\n\n\"use strict\";\n\nvar AutoFocusMixin = __webpack_require__(128);\nvar DOMPropertyOperations = __webpack_require__(48);\nvar LinkedValueUtils = __webpack_require__(130);\nvar ReactBrowserComponentMixin = __webpack_require__(86);\nvar ReactCompositeComponent = __webpack_require__(52);\nvar ReactElement = __webpack_require__(19);\nvar ReactDOM = __webpack_require__(54);\nvar ReactUpdates = __webpack_require__(77);\n\nvar assign = __webpack_require__(38);\nvar invariant = __webpack_require__(27);\n\nvar warning = __webpack_require__(29);\n\n// Store a reference to the <textarea> `ReactDOMComponent`. TODO: use string\nvar textarea = ReactElement.createFactory(ReactDOM.textarea.type);\n\nfunction forceUpdateIfMounted() {\n /*jshint validthis:true */\n if (this.isMounted()) {\n this.forceUpdate();\n }\n}\n\n/**\n * Implements a <textarea> native component that allows setting `value`, and\n * `defaultValue`. This differs from the traditional DOM API because value is\n * usually set as PCDATA children.\n *\n * If `value` is not supplied (or null/undefined), user actions that affect the\n * value will trigger updates to the element.\n *\n * If `value` is supplied (and not null/undefined), the rendered element will\n * not trigger updates to the element. Instead, the `value` prop must change in\n * order for the rendered element to be updated.\n *\n * The rendered element will be initialized with an empty value, the prop\n * `defaultValue` if specified, or the children content (deprecated).\n */\nvar ReactDOMTextarea = ReactCompositeComponent.createClass({\n displayName: 'ReactDOMTextarea',\n\n mixins: [AutoFocusMixin, LinkedValueUtils.Mixin, ReactBrowserComponentMixin],\n\n getInitialState: function() {\n var defaultValue = this.props.defaultValue;\n // TODO (yungsters): Remove support for children content in <textarea>.\n var children = this.props.children;\n if (children != null) {\n if (\"production\" !== process.env.NODE_ENV) {\n (\"production\" !== process.env.NODE_ENV ? warning(\n false,\n 'Use the `defaultValue` or `value` props instead of setting ' +\n 'children on <textarea>.'\n ) : null);\n }\n (\"production\" !== process.env.NODE_ENV ? invariant(\n defaultValue == null,\n 'If you supply `defaultValue` on a <textarea>, do not pass children.'\n ) : invariant(defaultValue == null));\n if (Array.isArray(children)) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n children.length <= 1,\n '<textarea> can only have at most one child.'\n ) : invariant(children.length <= 1));\n children = children[0];\n }\n\n defaultValue = '' + children;\n }\n if (defaultValue == null) {\n defaultValue = '';\n }\n var value = LinkedValueUtils.getValue(this);\n return {\n // We save the initial value so that `ReactDOMComponent` doesn't update\n // `textContent` (unnecessary since we update value).\n // The initial value can be a boolean or object so that's why it's\n // forced to be a string.\n initialValue: '' + (value != null ? value : defaultValue)\n };\n },\n\n render: function() {\n // Clone `this.props` so we don't mutate the input.\n var props = assign({}, this.props);\n\n (\"production\" !== process.env.NODE_ENV ? invariant(\n props.dangerouslySetInnerHTML == null,\n '`dangerouslySetInnerHTML` does not make sense on <textarea>.'\n ) : invariant(props.dangerouslySetInnerHTML == null));\n\n props.defaultValue = null;\n props.value = null;\n props.onChange = this._handleChange;\n\n // Always set children to the same thing. In IE9, the selection range will\n // get reset if `textContent` is mutated.\n return textarea(props, this.state.initialValue);\n },\n\n componentDidUpdate: function(prevProps, prevState, prevContext) {\n var value = LinkedValueUtils.getValue(this);\n if (value != null) {\n var rootNode = this.getDOMNode();\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n DOMPropertyOperations.setValueForProperty(rootNode, 'value', '' + value);\n }\n },\n\n _handleChange: function(event) {\n var returnValue;\n var onChange = LinkedValueUtils.getOnChange(this);\n if (onChange) {\n returnValue = onChange.call(this, event);\n }\n ReactUpdates.asap(forceUpdateIfMounted, this);\n return returnValue;\n }\n\n});\n\nmodule.exports = ReactDOMTextarea;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMTextarea.js\n ** module id = 95\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactDOMTextarea.js?");
  919. /***/ },
  920. /* 96 */
  921. /***/ function(module, exports, __webpack_require__) {
  922. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEventListener\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar EventListener = __webpack_require__(131);\nvar ExecutionEnvironment = __webpack_require__(62);\nvar PooledClass = __webpack_require__(72);\nvar ReactInstanceHandles = __webpack_require__(21);\nvar ReactMount = __webpack_require__(9);\nvar ReactUpdates = __webpack_require__(77);\n\nvar assign = __webpack_require__(38);\nvar getEventTarget = __webpack_require__(132);\nvar getUnboundedScrollPosition = __webpack_require__(66);\n\n/**\n * Finds the parent React component of `node`.\n *\n * @param {*} node\n * @return {?DOMEventTarget} Parent container, or `null` if the specified node\n * is not nested.\n */\nfunction findParent(node) {\n // TODO: It may be a good idea to cache this to prevent unnecessary DOM\n // traversal, but caching is difficult to do correctly without using a\n // mutation observer to listen for all DOM changes.\n var nodeID = ReactMount.getID(node);\n var rootID = ReactInstanceHandles.getReactRootIDFromNodeID(nodeID);\n var container = ReactMount.findReactContainerForID(rootID);\n var parent = ReactMount.getFirstReactDOM(container);\n return parent;\n}\n\n// Used to store ancestor hierarchy in top level callback\nfunction TopLevelCallbackBookKeeping(topLevelType, nativeEvent) {\n this.topLevelType = topLevelType;\n this.nativeEvent = nativeEvent;\n this.ancestors = [];\n}\nassign(TopLevelCallbackBookKeeping.prototype, {\n destructor: function() {\n this.topLevelType = null;\n this.nativeEvent = null;\n this.ancestors.length = 0;\n }\n});\nPooledClass.addPoolingTo(\n TopLevelCallbackBookKeeping,\n PooledClass.twoArgumentPooler\n);\n\nfunction handleTopLevelImpl(bookKeeping) {\n var topLevelTarget = ReactMount.getFirstReactDOM(\n getEventTarget(bookKeeping.nativeEvent)\n ) || window;\n\n // Loop through the hierarchy, in case there's any nested components.\n // It's important that we build the array of ancestors before calling any\n // event handlers, because event handlers can modify the DOM, leading to\n // inconsistencies with ReactMount's node cache. See #1105.\n var ancestor = topLevelTarget;\n while (ancestor) {\n bookKeeping.ancestors.push(ancestor);\n ancestor = findParent(ancestor);\n }\n\n for (var i = 0, l = bookKeeping.ancestors.length; i < l; i++) {\n topLevelTarget = bookKeeping.ancestors[i];\n var topLevelTargetID = ReactMount.getID(topLevelTarget) || '';\n ReactEventListener._handleTopLevel(\n bookKeeping.topLevelType,\n topLevelTarget,\n topLevelTargetID,\n bookKeeping.nativeEvent\n );\n }\n}\n\nfunction scrollValueMonitor(cb) {\n var scrollPosition = getUnboundedScrollPosition(window);\n cb(scrollPosition);\n}\n\nvar ReactEventListener = {\n _enabled: true,\n _handleTopLevel: null,\n\n WINDOW_HANDLE: ExecutionEnvironment.canUseDOM ? window : null,\n\n setHandleTopLevel: function(handleTopLevel) {\n ReactEventListener._handleTopLevel = handleTopLevel;\n },\n\n setEnabled: function(enabled) {\n ReactEventListener._enabled = !!enabled;\n },\n\n isEnabled: function() {\n return ReactEventListener._enabled;\n },\n\n\n /**\n * Traps top-level events by using event bubbling.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {string} handlerBaseName Event name (e.g. \"click\").\n * @param {object} handle Element on which to attach listener.\n * @return {object} An object with a remove function which will forcefully\n * remove the listener.\n * @internal\n */\n trapBubbledEvent: function(topLevelType, handlerBaseName, handle) {\n var element = handle;\n if (!element) {\n return;\n }\n return EventListener.listen(\n element,\n handlerBaseName,\n ReactEventListener.dispatchEvent.bind(null, topLevelType)\n );\n },\n\n /**\n * Traps a top-level event by using event capturing.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {string} handlerBaseName Event name (e.g. \"click\").\n * @param {object} handle Element on which to attach listener.\n * @return {object} An object with a remove function which will forcefully\n * remove the listener.\n * @internal\n */\n trapCapturedEvent: function(topLevelType, handlerBaseName, handle) {\n var element = handle;\n if (!element) {\n return;\n }\n return EventListener.capture(\n element,\n handlerBaseName,\n ReactEventListener.dispatchEvent.bind(null, topLevelType)\n );\n },\n\n monitorScrollValue: function(refresh) {\n var callback = scrollValueMonitor.bind(null, refresh);\n EventListener.listen(window, 'scroll', callback);\n EventListener.listen(window, 'resize', callback);\n },\n\n dispatchEvent: function(topLevelType, nativeEvent) {\n if (!ReactEventListener._enabled) {\n return;\n }\n\n var bookKeeping = TopLevelCallbackBookKeeping.getPooled(\n topLevelType,\n nativeEvent\n );\n try {\n // Event queue being processed in the same cycle allows\n // `preventDefault`.\n ReactUpdates.batchedUpdates(handleTopLevelImpl, bookKeeping);\n } finally {\n TopLevelCallbackBookKeeping.release(bookKeeping);\n }\n }\n};\n\nmodule.exports = ReactEventListener;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactEventListener.js\n ** module id = 96\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactEventListener.js?");
  923. /***/ },
  924. /* 97 */
  925. /***/ function(module, exports, __webpack_require__) {
  926. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInjection\n */\n\n\"use strict\";\n\nvar DOMProperty = __webpack_require__(16);\nvar EventPluginHub = __webpack_require__(34);\nvar ReactComponent = __webpack_require__(51);\nvar ReactCompositeComponent = __webpack_require__(52);\nvar ReactEmptyComponent = __webpack_require__(45);\nvar ReactBrowserEventEmitter = __webpack_require__(17);\nvar ReactNativeComponent = __webpack_require__(44);\nvar ReactPerf = __webpack_require__(22);\nvar ReactRootIndex = __webpack_require__(42);\nvar ReactUpdates = __webpack_require__(77);\n\nvar ReactInjection = {\n Component: ReactComponent.injection,\n CompositeComponent: ReactCompositeComponent.injection,\n DOMProperty: DOMProperty.injection,\n EmptyComponent: ReactEmptyComponent.injection,\n EventPluginHub: EventPluginHub.injection,\n EventEmitter: ReactBrowserEventEmitter.injection,\n NativeComponent: ReactNativeComponent.injection,\n Perf: ReactPerf.injection,\n RootIndex: ReactRootIndex.injection,\n Updates: ReactUpdates.injection\n};\n\nmodule.exports = ReactInjection;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactInjection.js\n ** module id = 97\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactInjection.js?");
  927. /***/ },
  928. /* 98 */
  929. /***/ function(module, exports, __webpack_require__) {
  930. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SelectEventPlugin\n */\n\n\"use strict\";\n\nvar EventConstants = __webpack_require__(33);\nvar EventPropagators = __webpack_require__(117);\nvar ReactInputSelection = __webpack_require__(121);\nvar SyntheticEvent = __webpack_require__(119);\n\nvar getActiveElement = __webpack_require__(133);\nvar isTextInputElement = __webpack_require__(120);\nvar keyOf = __webpack_require__(110);\nvar shallowEqual = __webpack_require__(134);\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar eventTypes = {\n select: {\n phasedRegistrationNames: {\n bubbled: keyOf({onSelect: null}),\n captured: keyOf({onSelectCapture: null})\n },\n dependencies: [\n topLevelTypes.topBlur,\n topLevelTypes.topContextMenu,\n topLevelTypes.topFocus,\n topLevelTypes.topKeyDown,\n topLevelTypes.topMouseDown,\n topLevelTypes.topMouseUp,\n topLevelTypes.topSelectionChange\n ]\n }\n};\n\nvar activeElement = null;\nvar activeElementID = null;\nvar lastSelection = null;\nvar mouseDown = false;\n\n/**\n * Get an object which is a unique representation of the current selection.\n *\n * The return value will not be consistent across nodes or browsers, but\n * two identical selections on the same node will return identical objects.\n *\n * @param {DOMElement} node\n * @param {object}\n */\nfunction getSelection(node) {\n if ('selectionStart' in node &&\n ReactInputSelection.hasSelectionCapabilities(node)) {\n return {\n start: node.selectionStart,\n end: node.selectionEnd\n };\n } else if (window.getSelection) {\n var selection = window.getSelection();\n return {\n anchorNode: selection.anchorNode,\n anchorOffset: selection.anchorOffset,\n focusNode: selection.focusNode,\n focusOffset: selection.focusOffset\n };\n } else if (document.selection) {\n var range = document.selection.createRange();\n return {\n parentElement: range.parentElement(),\n text: range.text,\n top: range.boundingTop,\n left: range.boundingLeft\n };\n }\n}\n\n/**\n * Poll selection to see whether it's changed.\n *\n * @param {object} nativeEvent\n * @return {?SyntheticEvent}\n */\nfunction constructSelectEvent(nativeEvent) {\n // Ensure we have the right element, and that the user is not dragging a\n // selection (this matches native `select` event behavior). In HTML5, select\n // fires only on input and textarea thus if there's no focused element we\n // won't dispatch.\n if (mouseDown ||\n activeElement == null ||\n activeElement != getActiveElement()) {\n return;\n }\n\n // Only fire when selection has actually changed.\n var currentSelection = getSelection(activeElement);\n if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) {\n lastSelection = currentSelection;\n\n var syntheticEvent = SyntheticEvent.getPooled(\n eventTypes.select,\n activeElementID,\n nativeEvent\n );\n\n syntheticEvent.type = 'select';\n syntheticEvent.target = activeElement;\n\n EventPropagators.accumulateTwoPhaseDispatches(syntheticEvent);\n\n return syntheticEvent;\n }\n}\n\n/**\n * This plugin creates an `onSelect` event that normalizes select events\n * across form elements.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - contentEditable\n *\n * This differs from native browser implementations in the following ways:\n * - Fires on contentEditable fields as well as inputs.\n * - Fires for collapsed selection.\n * - Fires after user input.\n */\nvar SelectEventPlugin = {\n\n eventTypes: eventTypes,\n\n /**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {*} An accumulation of synthetic events.\n * @see {EventPluginHub.extractEvents}\n */\n extractEvents: function(\n topLevelType,\n topLevelTarget,\n topLevelTargetID,\n nativeEvent) {\n\n switch (topLevelType) {\n // Track the input node that has focus.\n case topLevelTypes.topFocus:\n if (isTextInputElement(topLevelTarget) ||\n topLevelTarget.contentEditable === 'true') {\n activeElement = topLevelTarget;\n activeElementID = topLevelTargetID;\n lastSelection = null;\n }\n break;\n case topLevelTypes.topBlur:\n activeElement = null;\n activeElementID = null;\n lastSelection = null;\n break;\n\n // Don't fire the event while the user is dragging. This matches the\n // semantics of the native select event.\n case topLevelTypes.topMouseDown:\n mouseDown = true;\n break;\n case topLevelTypes.topContextMenu:\n case topLevelTypes.topMouseUp:\n mouseDown = false;\n return constructSelectEvent(nativeEvent);\n\n // Chrome and IE fire non-standard event when selection is changed (and\n // sometimes when it hasn't).\n // Firefox doesn't support selectionchange, so check selection status\n // after each key entry. The selection changes after keydown and before\n // keyup, but we check on keydown as well in the case of holding down a\n // key, when multiple keydown events are fired but only one keyup is.\n case topLevelTypes.topSelectionChange:\n case topLevelTypes.topKeyDown:\n case topLevelTypes.topKeyUp:\n return constructSelectEvent(nativeEvent);\n }\n }\n};\n\nmodule.exports = SelectEventPlugin;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SelectEventPlugin.js\n ** module id = 98\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/SelectEventPlugin.js?");
  931. /***/ },
  932. /* 99 */
  933. /***/ function(module, exports, __webpack_require__) {
  934. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ServerReactRootIndex\n * @typechecks\n */\n\n\"use strict\";\n\n/**\n * Size of the reactRoot ID space. We generate random numbers for React root\n * IDs and if there's a collision the events and DOM update system will\n * get confused. In the future we need a way to generate GUIDs but for\n * now this will work on a smaller scale.\n */\nvar GLOBAL_MOUNT_POINT_MAX = Math.pow(2, 53);\n\nvar ServerReactRootIndex = {\n createReactRootIndex: function() {\n return Math.ceil(Math.random() * GLOBAL_MOUNT_POINT_MAX);\n }\n};\n\nmodule.exports = ServerReactRootIndex;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ServerReactRootIndex.js\n ** module id = 99\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ServerReactRootIndex.js?");
  935. /***/ },
  936. /* 100 */
  937. /***/ function(module, exports, __webpack_require__) {
  938. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SimpleEventPlugin\n */\n\n\"use strict\";\n\nvar EventConstants = __webpack_require__(33);\nvar EventPluginUtils = __webpack_require__(49);\nvar EventPropagators = __webpack_require__(117);\nvar SyntheticClipboardEvent = __webpack_require__(135);\nvar SyntheticEvent = __webpack_require__(119);\nvar SyntheticFocusEvent = __webpack_require__(136);\nvar SyntheticKeyboardEvent = __webpack_require__(137);\nvar SyntheticMouseEvent = __webpack_require__(124);\nvar SyntheticDragEvent = __webpack_require__(138);\nvar SyntheticTouchEvent = __webpack_require__(139);\nvar SyntheticUIEvent = __webpack_require__(140);\nvar SyntheticWheelEvent = __webpack_require__(141);\n\nvar getEventCharCode = __webpack_require__(142);\n\nvar invariant = __webpack_require__(27);\nvar keyOf = __webpack_require__(110);\nvar warning = __webpack_require__(29);\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar eventTypes = {\n blur: {\n phasedRegistrationNames: {\n bubbled: keyOf({onBlur: true}),\n captured: keyOf({onBlurCapture: true})\n }\n },\n click: {\n phasedRegistrationNames: {\n bubbled: keyOf({onClick: true}),\n captured: keyOf({onClickCapture: true})\n }\n },\n contextMenu: {\n phasedRegistrationNames: {\n bubbled: keyOf({onContextMenu: true}),\n captured: keyOf({onContextMenuCapture: true})\n }\n },\n copy: {\n phasedRegistrationNames: {\n bubbled: keyOf({onCopy: true}),\n captured: keyOf({onCopyCapture: true})\n }\n },\n cut: {\n phasedRegistrationNames: {\n bubbled: keyOf({onCut: true}),\n captured: keyOf({onCutCapture: true})\n }\n },\n doubleClick: {\n phasedRegistrationNames: {\n bubbled: keyOf({onDoubleClick: true}),\n captured: keyOf({onDoubleClickCapture: true})\n }\n },\n drag: {\n phasedRegistrationNames: {\n bubbled: keyOf({onDrag: true}),\n captured: keyOf({onDragCapture: true})\n }\n },\n dragEnd: {\n phasedRegistrationNames: {\n bubbled: keyOf({onDragEnd: true}),\n captured: keyOf({onDragEndCapture: true})\n }\n },\n dragEnter: {\n phasedRegistrationNames: {\n bubbled: keyOf({onDragEnter: true}),\n captured: keyOf({onDragEnterCapture: true})\n }\n },\n dragExit: {\n phasedRegistrationNames: {\n bubbled: keyOf({onDragExit: true}),\n captured: keyOf({onDragExitCapture: true})\n }\n },\n dragLeave: {\n phasedRegistrationNames: {\n bubbled: keyOf({onDragLeave: true}),\n captured: keyOf({onDragLeaveCapture: true})\n }\n },\n dragOver: {\n phasedRegistrationNames: {\n bubbled: keyOf({onDragOver: true}),\n captured: keyOf({onDragOverCapture: true})\n }\n },\n dragStart: {\n phasedRegistrationNames: {\n bubbled: keyOf({onDragStart: true}),\n captured: keyOf({onDragStartCapture: true})\n }\n },\n drop: {\n phasedRegistrationNames: {\n bubbled: keyOf({onDrop: true}),\n captured: keyOf({onDropCapture: true})\n }\n },\n focus: {\n phasedRegistrationNames: {\n bubbled: keyOf({onFocus: true}),\n captured: keyOf({onFocusCapture: true})\n }\n },\n input: {\n phasedRegistrationNames: {\n bubbled: keyOf({onInput: true}),\n captured: keyOf({onInputCapture: true})\n }\n },\n keyDown: {\n phasedRegistrationNames: {\n bubbled: keyOf({onKeyDown: true}),\n captured: keyOf({onKeyDownCapture: true})\n }\n },\n keyPress: {\n phasedRegistrationNames: {\n bubbled: keyOf({onKeyPress: true}),\n captured: keyOf({onKeyPressCapture: true})\n }\n },\n keyUp: {\n phasedRegistrationNames: {\n bubbled: keyOf({onKeyUp: true}),\n captured: keyOf({onKeyUpCapture: true})\n }\n },\n load: {\n phasedRegistrationNames: {\n bubbled: keyOf({onLoad: true}),\n captured: keyOf({onLoadCapture: true})\n }\n },\n error: {\n phasedRegistrationNames: {\n bubbled: keyOf({onError: true}),\n captured: keyOf({onErrorCapture: true})\n }\n },\n // Note: We do not allow listening to mouseOver events. Instead, use the\n // onMouseEnter/onMouseLeave created by `EnterLeaveEventPlugin`.\n mouseDown: {\n phasedRegistrationNames: {\n bubbled: keyOf({onMouseDown: true}),\n captured: keyOf({onMouseDownCapture: true})\n }\n },\n mouseMove: {\n phasedRegistrationNames: {\n bubbled: keyOf({onMouseMove: true}),\n captured: keyOf({onMouseMoveCapture: true})\n }\n },\n mouseOut: {\n phasedRegistrationNames: {\n bubbled: keyOf({onMouseOut: true}),\n captured: keyOf({onMouseOutCapture: true})\n }\n },\n mouseOver: {\n phasedRegistrationNames: {\n bubbled: keyOf({onMouseOver: true}),\n captured: keyOf({onMouseOverCapture: true})\n }\n },\n mouseUp: {\n phasedRegistrationNames: {\n bubbled: keyOf({onMouseUp: true}),\n captured: keyOf({onMouseUpCapture: true})\n }\n },\n paste: {\n phasedRegistrationNames: {\n bubbled: keyOf({onPaste: true}),\n captured: keyOf({onPasteCapture: true})\n }\n },\n reset: {\n phasedRegistrationNames: {\n bubbled: keyOf({onReset: true}),\n captured: keyOf({onResetCapture: true})\n }\n },\n scroll: {\n phasedRegistrationNames: {\n bubbled: keyOf({onScroll: true}),\n captured: keyOf({onScrollCapture: true})\n }\n },\n submit: {\n phasedRegistrationNames: {\n bubbled: keyOf({onSubmit: true}),\n captured: keyOf({onSubmitCapture: true})\n }\n },\n touchCancel: {\n phasedRegistrationNames: {\n bubbled: keyOf({onTouchCancel: true}),\n captured: keyOf({onTouchCancelCapture: true})\n }\n },\n touchEnd: {\n phasedRegistrationNames: {\n bubbled: keyOf({onTouchEnd: true}),\n captured: keyOf({onTouchEndCapture: true})\n }\n },\n touchMove: {\n phasedRegistrationNames: {\n bubbled: keyOf({onTouchMove: true}),\n captured: keyOf({onTouchMoveCapture: true})\n }\n },\n touchStart: {\n phasedRegistrationNames: {\n bubbled: keyOf({onTouchStart: true}),\n captured: keyOf({onTouchStartCapture: true})\n }\n },\n wheel: {\n phasedRegistrationNames: {\n bubbled: keyOf({onWheel: true}),\n captured: keyOf({onWheelCapture: true})\n }\n }\n};\n\nvar topLevelEventsToDispatchConfig = {\n topBlur: eventTypes.blur,\n topClick: eventTypes.click,\n topContextMenu: eventTypes.contextMenu,\n topCopy: eventTypes.copy,\n topCut: eventTypes.cut,\n topDoubleClick: eventTypes.doubleClick,\n topDrag: eventTypes.drag,\n topDragEnd: eventTypes.dragEnd,\n topDragEnter: eventTypes.dragEnter,\n topDragExit: eventTypes.dragExit,\n topDragLeave: eventTypes.dragLeave,\n topDragOver: eventTypes.dragOver,\n topDragStart: eventTypes.dragStart,\n topDrop: eventTypes.drop,\n topError: eventTypes.error,\n topFocus: eventTypes.focus,\n topInput: eventTypes.input,\n topKeyDown: eventTypes.keyDown,\n topKeyPress: eventTypes.keyPress,\n topKeyUp: eventTypes.keyUp,\n topLoad: eventTypes.load,\n topMouseDown: eventTypes.mouseDown,\n topMouseMove: eventTypes.mouseMove,\n topMouseOut: eventTypes.mouseOut,\n topMouseOver: eventTypes.mouseOver,\n topMouseUp: eventTypes.mouseUp,\n topPaste: eventTypes.paste,\n topReset: eventTypes.reset,\n topScroll: eventTypes.scroll,\n topSubmit: eventTypes.submit,\n topTouchCancel: eventTypes.touchCancel,\n topTouchEnd: eventTypes.touchEnd,\n topTouchMove: eventTypes.touchMove,\n topTouchStart: eventTypes.touchStart,\n topWheel: eventTypes.wheel\n};\n\nfor (var topLevelType in topLevelEventsToDispatchConfig) {\n topLevelEventsToDispatchConfig[topLevelType].dependencies = [topLevelType];\n}\n\nvar SimpleEventPlugin = {\n\n eventTypes: eventTypes,\n\n /**\n * Same as the default implementation, except cancels the event when return\n * value is false. This behavior will be disabled in a future release.\n *\n * @param {object} Event to be dispatched.\n * @param {function} Application-level callback.\n * @param {string} domID DOM ID to pass to the callback.\n */\n executeDispatch: function(event, listener, domID) {\n var returnValue = EventPluginUtils.executeDispatch(event, listener, domID);\n\n (\"production\" !== process.env.NODE_ENV ? warning(\n typeof returnValue !== 'boolean',\n 'Returning `false` from an event handler is deprecated and will be ' +\n 'ignored in a future release. Instead, manually call ' +\n 'e.stopPropagation() or e.preventDefault(), as appropriate.'\n ) : null);\n\n if (returnValue === false) {\n event.stopPropagation();\n event.preventDefault();\n }\n },\n\n /**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {*} An accumulation of synthetic events.\n * @see {EventPluginHub.extractEvents}\n */\n extractEvents: function(\n topLevelType,\n topLevelTarget,\n topLevelTargetID,\n nativeEvent) {\n var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType];\n if (!dispatchConfig) {\n return null;\n }\n var EventConstructor;\n switch (topLevelType) {\n case topLevelTypes.topInput:\n case topLevelTypes.topLoad:\n case topLevelTypes.topError:\n case topLevelTypes.topReset:\n case topLevelTypes.topSubmit:\n // HTML Events\n // @see http://www.w3.org/TR/html5/index.html#events-0\n EventConstructor = SyntheticEvent;\n break;\n case topLevelTypes.topKeyPress:\n // FireFox creates a keypress event for function keys too. This removes\n // the unwanted keypress events. Enter is however both printable and\n // non-printable. One would expect Tab to be as well (but it isn't).\n if (getEventCharCode(nativeEvent) === 0) {\n return null;\n }\n /* falls through */\n case topLevelTypes.topKeyDown:\n case topLevelTypes.topKeyUp:\n EventConstructor = SyntheticKeyboardEvent;\n break;\n case topLevelTypes.topBlur:\n case topLevelTypes.topFocus:\n EventConstructor = SyntheticFocusEvent;\n break;\n case topLevelTypes.topClick:\n // Firefox creates a click event on right mouse clicks. This removes the\n // unwanted click events.\n if (nativeEvent.button === 2) {\n return null;\n }\n /* falls through */\n case topLevelTypes.topContextMenu:\n case topLevelTypes.topDoubleClick:\n case topLevelTypes.topMouseDown:\n case topLevelTypes.topMouseMove:\n case topLevelTypes.topMouseOut:\n case topLevelTypes.topMouseOver:\n case topLevelTypes.topMouseUp:\n EventConstructor = SyntheticMouseEvent;\n break;\n case topLevelTypes.topDrag:\n case topLevelTypes.topDragEnd:\n case topLevelTypes.topDragEnter:\n case topLevelTypes.topDragExit:\n case topLevelTypes.topDragLeave:\n case topLevelTypes.topDragOver:\n case topLevelTypes.topDragStart:\n case topLevelTypes.topDrop:\n EventConstructor = SyntheticDragEvent;\n break;\n case topLevelTypes.topTouchCancel:\n case topLevelTypes.topTouchEnd:\n case topLevelTypes.topTouchMove:\n case topLevelTypes.topTouchStart:\n EventConstructor = SyntheticTouchEvent;\n break;\n case topLevelTypes.topScroll:\n EventConstructor = SyntheticUIEvent;\n break;\n case topLevelTypes.topWheel:\n EventConstructor = SyntheticWheelEvent;\n break;\n case topLevelTypes.topCopy:\n case topLevelTypes.topCut:\n case topLevelTypes.topPaste:\n EventConstructor = SyntheticClipboardEvent;\n break;\n }\n (\"production\" !== process.env.NODE_ENV ? invariant(\n EventConstructor,\n 'SimpleEventPlugin: Unhandled event type, `%s`.',\n topLevelType\n ) : invariant(EventConstructor));\n var event = EventConstructor.getPooled(\n dispatchConfig,\n topLevelTargetID,\n nativeEvent\n );\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n }\n\n};\n\nmodule.exports = SimpleEventPlugin;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SimpleEventPlugin.js\n ** module id = 100\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/SimpleEventPlugin.js?");
  939. /***/ },
  940. /* 101 */
  941. /***/ function(module, exports, __webpack_require__) {
  942. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SVGDOMPropertyConfig\n */\n\n/*jslint bitwise: true*/\n\n\"use strict\";\n\nvar DOMProperty = __webpack_require__(16);\n\nvar MUST_USE_ATTRIBUTE = DOMProperty.injection.MUST_USE_ATTRIBUTE;\n\nvar SVGDOMPropertyConfig = {\n Properties: {\n cx: MUST_USE_ATTRIBUTE,\n cy: MUST_USE_ATTRIBUTE,\n d: MUST_USE_ATTRIBUTE,\n dx: MUST_USE_ATTRIBUTE,\n dy: MUST_USE_ATTRIBUTE,\n fill: MUST_USE_ATTRIBUTE,\n fillOpacity: MUST_USE_ATTRIBUTE,\n fontFamily: MUST_USE_ATTRIBUTE,\n fontSize: MUST_USE_ATTRIBUTE,\n fx: MUST_USE_ATTRIBUTE,\n fy: MUST_USE_ATTRIBUTE,\n gradientTransform: MUST_USE_ATTRIBUTE,\n gradientUnits: MUST_USE_ATTRIBUTE,\n markerEnd: MUST_USE_ATTRIBUTE,\n markerMid: MUST_USE_ATTRIBUTE,\n markerStart: MUST_USE_ATTRIBUTE,\n offset: MUST_USE_ATTRIBUTE,\n opacity: MUST_USE_ATTRIBUTE,\n patternContentUnits: MUST_USE_ATTRIBUTE,\n patternUnits: MUST_USE_ATTRIBUTE,\n points: MUST_USE_ATTRIBUTE,\n preserveAspectRatio: MUST_USE_ATTRIBUTE,\n r: MUST_USE_ATTRIBUTE,\n rx: MUST_USE_ATTRIBUTE,\n ry: MUST_USE_ATTRIBUTE,\n spreadMethod: MUST_USE_ATTRIBUTE,\n stopColor: MUST_USE_ATTRIBUTE,\n stopOpacity: MUST_USE_ATTRIBUTE,\n stroke: MUST_USE_ATTRIBUTE,\n strokeDasharray: MUST_USE_ATTRIBUTE,\n strokeLinecap: MUST_USE_ATTRIBUTE,\n strokeOpacity: MUST_USE_ATTRIBUTE,\n strokeWidth: MUST_USE_ATTRIBUTE,\n textAnchor: MUST_USE_ATTRIBUTE,\n transform: MUST_USE_ATTRIBUTE,\n version: MUST_USE_ATTRIBUTE,\n viewBox: MUST_USE_ATTRIBUTE,\n x1: MUST_USE_ATTRIBUTE,\n x2: MUST_USE_ATTRIBUTE,\n x: MUST_USE_ATTRIBUTE,\n y1: MUST_USE_ATTRIBUTE,\n y2: MUST_USE_ATTRIBUTE,\n y: MUST_USE_ATTRIBUTE\n },\n DOMAttributeNames: {\n fillOpacity: 'fill-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n gradientTransform: 'gradientTransform',\n gradientUnits: 'gradientUnits',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n patternContentUnits: 'patternContentUnits',\n patternUnits: 'patternUnits',\n preserveAspectRatio: 'preserveAspectRatio',\n spreadMethod: 'spreadMethod',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strokeDasharray: 'stroke-dasharray',\n strokeLinecap: 'stroke-linecap',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n textAnchor: 'text-anchor',\n viewBox: 'viewBox'\n }\n};\n\nmodule.exports = SVGDOMPropertyConfig;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SVGDOMPropertyConfig.js\n ** module id = 101\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/SVGDOMPropertyConfig.js?");
  943. /***/ },
  944. /* 102 */
  945. /***/ function(module, exports, __webpack_require__) {
  946. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule createFullPageComponent\n * @typechecks\n */\n\n\"use strict\";\n\n// Defeat circular references by requiring this directly.\nvar ReactCompositeComponent = __webpack_require__(52);\nvar ReactElement = __webpack_require__(19);\n\nvar invariant = __webpack_require__(27);\n\n/**\n * Create a component that will throw an exception when unmounted.\n *\n * Components like <html> <head> and <body> can't be removed or added\n * easily in a cross-browser way, however it's valuable to be able to\n * take advantage of React's reconciliation for styling and <title>\n * management. So we just document it and throw in dangerous cases.\n *\n * @param {string} tag The tag to wrap\n * @return {function} convenience constructor of new component\n */\nfunction createFullPageComponent(tag) {\n var elementFactory = ReactElement.createFactory(tag);\n\n var FullPageComponent = ReactCompositeComponent.createClass({\n displayName: 'ReactFullPageComponent' + tag,\n\n componentWillUnmount: function() {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n false,\n '%s tried to unmount. Because of cross-browser quirks it is ' +\n 'impossible to unmount some top-level components (eg <html>, <head>, ' +\n 'and <body>) reliably and efficiently. To fix this, have a single ' +\n 'top-level component that never unmounts render these elements.',\n this.constructor.displayName\n ) : invariant(false));\n },\n\n render: function() {\n return elementFactory(this.props);\n }\n });\n\n return FullPageComponent;\n}\n\nmodule.exports = createFullPageComponent;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/createFullPageComponent.js\n ** module id = 102\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/createFullPageComponent.js?");
  947. /***/ },
  948. /* 103 */
  949. /***/ function(module, exports, __webpack_require__) {
  950. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultPerf\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar DOMProperty = __webpack_require__(16);\nvar ReactDefaultPerfAnalysis = __webpack_require__(143);\nvar ReactMount = __webpack_require__(9);\nvar ReactPerf = __webpack_require__(22);\n\nvar performanceNow = __webpack_require__(144);\n\nfunction roundFloat(val) {\n return Math.floor(val * 100) / 100;\n}\n\nfunction addValue(obj, key, val) {\n obj[key] = (obj[key] || 0) + val;\n}\n\nvar ReactDefaultPerf = {\n _allMeasurements: [], // last item in the list is the current one\n _mountStack: [0],\n _injected: false,\n\n start: function() {\n if (!ReactDefaultPerf._injected) {\n ReactPerf.injection.injectMeasure(ReactDefaultPerf.measure);\n }\n\n ReactDefaultPerf._allMeasurements.length = 0;\n ReactPerf.enableMeasure = true;\n },\n\n stop: function() {\n ReactPerf.enableMeasure = false;\n },\n\n getLastMeasurements: function() {\n return ReactDefaultPerf._allMeasurements;\n },\n\n printExclusive: function(measurements) {\n measurements = measurements || ReactDefaultPerf._allMeasurements;\n var summary = ReactDefaultPerfAnalysis.getExclusiveSummary(measurements);\n console.table(summary.map(function(item) {\n return {\n 'Component class name': item.componentName,\n 'Total inclusive time (ms)': roundFloat(item.inclusive),\n 'Exclusive mount time (ms)': roundFloat(item.exclusive),\n 'Exclusive render time (ms)': roundFloat(item.render),\n 'Mount time per instance (ms)': roundFloat(item.exclusive / item.count),\n 'Render time per instance (ms)': roundFloat(item.render / item.count),\n 'Instances': item.count\n };\n }));\n // TODO: ReactDefaultPerfAnalysis.getTotalTime() does not return the correct\n // number.\n },\n\n printInclusive: function(measurements) {\n measurements = measurements || ReactDefaultPerf._allMeasurements;\n var summary = ReactDefaultPerfAnalysis.getInclusiveSummary(measurements);\n console.table(summary.map(function(item) {\n return {\n 'Owner > component': item.componentName,\n 'Inclusive time (ms)': roundFloat(item.time),\n 'Instances': item.count\n };\n }));\n console.log(\n 'Total time:',\n ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms'\n );\n },\n\n getMeasurementsSummaryMap: function(measurements) {\n var summary = ReactDefaultPerfAnalysis.getInclusiveSummary(\n measurements,\n true\n );\n return summary.map(function(item) {\n return {\n 'Owner > component': item.componentName,\n 'Wasted time (ms)': item.time,\n 'Instances': item.count\n };\n });\n },\n\n printWasted: function(measurements) {\n measurements = measurements || ReactDefaultPerf._allMeasurements;\n console.table(ReactDefaultPerf.getMeasurementsSummaryMap(measurements));\n console.log(\n 'Total time:',\n ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms'\n );\n },\n\n printDOM: function(measurements) {\n measurements = measurements || ReactDefaultPerf._allMeasurements;\n var summary = ReactDefaultPerfAnalysis.getDOMSummary(measurements);\n console.table(summary.map(function(item) {\n var result = {};\n result[DOMProperty.ID_ATTRIBUTE_NAME] = item.id;\n result['type'] = item.type;\n result['args'] = JSON.stringify(item.args);\n return result;\n }));\n console.log(\n 'Total time:',\n ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms'\n );\n },\n\n _recordWrite: function(id, fnName, totalTime, args) {\n // TODO: totalTime isn't that useful since it doesn't count paints/reflows\n var writes =\n ReactDefaultPerf\n ._allMeasurements[ReactDefaultPerf._allMeasurements.length - 1]\n .writes;\n writes[id] = writes[id] || [];\n writes[id].push({\n type: fnName,\n time: totalTime,\n args: args\n });\n },\n\n measure: function(moduleName, fnName, func) {\n return function() {for (var args=[],$__0=0,$__1=arguments.length;$__0<$__1;$__0++) args.push(arguments[$__0]);\n var totalTime;\n var rv;\n var start;\n\n if (fnName === '_renderNewRootComponent' ||\n fnName === 'flushBatchedUpdates') {\n // A \"measurement\" is a set of metrics recorded for each flush. We want\n // to group the metrics for a given flush together so we can look at the\n // components that rendered and the DOM operations that actually\n // happened to determine the amount of \"wasted work\" performed.\n ReactDefaultPerf._allMeasurements.push({\n exclusive: {},\n inclusive: {},\n render: {},\n counts: {},\n writes: {},\n displayNames: {},\n totalTime: 0\n });\n start = performanceNow();\n rv = func.apply(this, args);\n ReactDefaultPerf._allMeasurements[\n ReactDefaultPerf._allMeasurements.length - 1\n ].totalTime = performanceNow() - start;\n return rv;\n } else if (moduleName === 'ReactDOMIDOperations' ||\n moduleName === 'ReactComponentBrowserEnvironment') {\n start = performanceNow();\n rv = func.apply(this, args);\n totalTime = performanceNow() - start;\n\n if (fnName === 'mountImageIntoNode') {\n var mountID = ReactMount.getID(args[1]);\n ReactDefaultPerf._recordWrite(mountID, fnName, totalTime, args[0]);\n } else if (fnName === 'dangerouslyProcessChildrenUpdates') {\n // special format\n args[0].forEach(function(update) {\n var writeArgs = {};\n if (update.fromIndex !== null) {\n writeArgs.fromIndex = update.fromIndex;\n }\n if (update.toIndex !== null) {\n writeArgs.toIndex = update.toIndex;\n }\n if (update.textContent !== null) {\n writeArgs.textContent = update.textContent;\n }\n if (update.markupIndex !== null) {\n writeArgs.markup = args[1][update.markupIndex];\n }\n ReactDefaultPerf._recordWrite(\n update.parentID,\n update.type,\n totalTime,\n writeArgs\n );\n });\n } else {\n // basic format\n ReactDefaultPerf._recordWrite(\n args[0],\n fnName,\n totalTime,\n Array.prototype.slice.call(args, 1)\n );\n }\n return rv;\n } else if (moduleName === 'ReactCompositeComponent' && (\n fnName === 'mountComponent' ||\n fnName === 'updateComponent' || // TODO: receiveComponent()?\n fnName === '_renderValidatedComponent')) {\n\n var rootNodeID = fnName === 'mountComponent' ?\n args[0] :\n this._rootNodeID;\n var isRender = fnName === '_renderValidatedComponent';\n var isMount = fnName === 'mountComponent';\n\n var mountStack = ReactDefaultPerf._mountStack;\n var entry = ReactDefaultPerf._allMeasurements[\n ReactDefaultPerf._allMeasurements.length - 1\n ];\n\n if (isRender) {\n addValue(entry.counts, rootNodeID, 1);\n } else if (isMount) {\n mountStack.push(0);\n }\n\n start = performanceNow();\n rv = func.apply(this, args);\n totalTime = performanceNow() - start;\n\n if (isRender) {\n addValue(entry.render, rootNodeID, totalTime);\n } else if (isMount) {\n var subMountTime = mountStack.pop();\n mountStack[mountStack.length - 1] += totalTime;\n addValue(entry.exclusive, rootNodeID, totalTime - subMountTime);\n addValue(entry.inclusive, rootNodeID, totalTime);\n } else {\n addValue(entry.inclusive, rootNodeID, totalTime);\n }\n\n entry.displayNames[rootNodeID] = {\n current: this.constructor.displayName,\n owner: this._owner ? this._owner.constructor.displayName : '<root>'\n };\n\n return rv;\n } else {\n return func.apply(this, args);\n }\n };\n }\n};\n\nmodule.exports = ReactDefaultPerf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDefaultPerf.js\n ** module id = 103\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactDefaultPerf.js?");
  951. /***/ },
  952. /* 104 */
  953. /***/ function(module, exports, __webpack_require__) {
  954. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypeLocationNames\n */\n\n\"use strict\";\n\nvar ReactPropTypeLocationNames = {};\n\nif (\"production\" !== process.env.NODE_ENV) {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n}\n\nmodule.exports = ReactPropTypeLocationNames;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactPropTypeLocationNames.js\n ** module id = 104\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactPropTypeLocationNames.js?");
  955. /***/ },
  956. /* 105 */
  957. /***/ function(module, exports, __webpack_require__) {
  958. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMultiChildUpdateTypes\n */\n\n\"use strict\";\n\nvar keyMirror = __webpack_require__(63);\n\n/**\n * When a component's children are updated, a series of update configuration\n * objects are created in order to batch and serialize the required changes.\n *\n * Enumerates all the possible types of update configurations.\n *\n * @internal\n */\nvar ReactMultiChildUpdateTypes = keyMirror({\n INSERT_MARKUP: null,\n MOVE_EXISTING: null,\n REMOVE_NODE: null,\n TEXT_CONTENT: null\n});\n\nmodule.exports = ReactMultiChildUpdateTypes;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactMultiChildUpdateTypes.js\n ** module id = 105\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactMultiChildUpdateTypes.js?");
  959. /***/ },
  960. /* 106 */
  961. /***/ function(module, exports, __webpack_require__) {
  962. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule flattenChildren\n */\n\n\"use strict\";\n\nvar ReactTextComponent = __webpack_require__(60);\n\nvar traverseAllChildren = __webpack_require__(73);\nvar warning = __webpack_require__(29);\n\n/**\n * @param {function} traverseContext Context passed through traversal.\n * @param {?ReactComponent} child React child component.\n * @param {!string} name String name of key path to child.\n */\nfunction flattenSingleChildIntoContext(traverseContext, child, name) {\n // We found a component instance.\n var result = traverseContext;\n var keyUnique = !result.hasOwnProperty(name);\n (\"production\" !== process.env.NODE_ENV ? warning(\n keyUnique,\n 'flattenChildren(...): Encountered two children with the same key, ' +\n '`%s`. Child keys must be unique; when two children share a key, only ' +\n 'the first child will be used.',\n name\n ) : null);\n if (keyUnique && child != null) {\n var type = typeof child;\n var normalizedValue;\n\n if (type === 'string') {\n normalizedValue = ReactTextComponent(child);\n } else if (type === 'number') {\n normalizedValue = ReactTextComponent('' + child);\n } else {\n normalizedValue = child;\n }\n\n result[name] = normalizedValue;\n }\n}\n\n/**\n * Flattens children that are typically specified as `props.children`. Any null\n * children will not be included in the resulting object.\n * @return {!object} flattened children keyed by name.\n */\nfunction flattenChildren(children) {\n if (children == null) {\n return children;\n }\n var result = {};\n traverseAllChildren(children, flattenSingleChildIntoContext, result);\n return result;\n}\n\nmodule.exports = flattenChildren;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/flattenChildren.js\n ** module id = 106\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/flattenChildren.js?");
  963. /***/ },
  964. /* 107 */
  965. /***/ function(module, exports, __webpack_require__) {
  966. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMarkupChecksum\n */\n\n\"use strict\";\n\nvar adler32 = __webpack_require__(145);\n\nvar ReactMarkupChecksum = {\n CHECKSUM_ATTR_NAME: 'data-react-checksum',\n\n /**\n * @param {string} markup Markup string\n * @return {string} Markup string with checksum attribute attached\n */\n addChecksumToMarkup: function(markup) {\n var checksum = adler32(markup);\n return markup.replace(\n '>',\n ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '=\"' + checksum + '\">'\n );\n },\n\n /**\n * @param {string} markup to use\n * @param {DOMElement} element root React element\n * @returns {boolean} whether or not the markup is the same\n */\n canReuseMarkup: function(markup, element) {\n var existingChecksum = element.getAttribute(\n ReactMarkupChecksum.CHECKSUM_ATTR_NAME\n );\n existingChecksum = existingChecksum && parseInt(existingChecksum, 10);\n var markupChecksum = adler32(markup);\n return markupChecksum === existingChecksum;\n }\n};\n\nmodule.exports = ReactMarkupChecksum;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactMarkupChecksum.js\n ** module id = 107\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactMarkupChecksum.js?");
  967. /***/ },
  968. /* 108 */
  969. /***/ function(module, exports, __webpack_require__) {
  970. eval("/**\n * Copyright 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactServerRenderingTransaction\n * @typechecks\n */\n\n\"use strict\";\n\nvar PooledClass = __webpack_require__(72);\nvar CallbackQueue = __webpack_require__(115);\nvar ReactPutListenerQueue = __webpack_require__(146);\nvar Transaction = __webpack_require__(116);\n\nvar assign = __webpack_require__(38);\nvar emptyFunction = __webpack_require__(46);\n\n/**\n * Provides a `CallbackQueue` queue for collecting `onDOMReady` callbacks\n * during the performing of the transaction.\n */\nvar ON_DOM_READY_QUEUEING = {\n /**\n * Initializes the internal `onDOMReady` queue.\n */\n initialize: function() {\n this.reactMountReady.reset();\n },\n\n close: emptyFunction\n};\n\nvar PUT_LISTENER_QUEUEING = {\n initialize: function() {\n this.putListenerQueue.reset();\n },\n\n close: emptyFunction\n};\n\n/**\n * Executed within the scope of the `Transaction` instance. Consider these as\n * being member methods, but with an implied ordering while being isolated from\n * each other.\n */\nvar TRANSACTION_WRAPPERS = [\n PUT_LISTENER_QUEUEING,\n ON_DOM_READY_QUEUEING\n];\n\n/**\n * @class ReactServerRenderingTransaction\n * @param {boolean} renderToStaticMarkup\n */\nfunction ReactServerRenderingTransaction(renderToStaticMarkup) {\n this.reinitializeTransaction();\n this.renderToStaticMarkup = renderToStaticMarkup;\n this.reactMountReady = CallbackQueue.getPooled(null);\n this.putListenerQueue = ReactPutListenerQueue.getPooled();\n}\n\nvar Mixin = {\n /**\n * @see Transaction\n * @abstract\n * @final\n * @return {array} Empty list of operation wrap proceedures.\n */\n getTransactionWrappers: function() {\n return TRANSACTION_WRAPPERS;\n },\n\n /**\n * @return {object} The queue to collect `onDOMReady` callbacks with.\n */\n getReactMountReady: function() {\n return this.reactMountReady;\n },\n\n getPutListenerQueue: function() {\n return this.putListenerQueue;\n },\n\n /**\n * `PooledClass` looks for this, and will invoke this before allowing this\n * instance to be resused.\n */\n destructor: function() {\n CallbackQueue.release(this.reactMountReady);\n this.reactMountReady = null;\n\n ReactPutListenerQueue.release(this.putListenerQueue);\n this.putListenerQueue = null;\n }\n};\n\n\nassign(\n ReactServerRenderingTransaction.prototype,\n Transaction.Mixin,\n Mixin\n);\n\nPooledClass.addPoolingTo(ReactServerRenderingTransaction);\n\nmodule.exports = ReactServerRenderingTransaction;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactServerRenderingTransaction.js\n ** module id = 108\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactServerRenderingTransaction.js?");
  971. /***/ },
  972. /* 109 */
  973. /***/ function(module, exports, __webpack_require__) {
  974. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CSSPropertyOperations\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar CSSProperty = __webpack_require__(147);\nvar ExecutionEnvironment = __webpack_require__(62);\n\nvar camelizeStyleName = __webpack_require__(148);\nvar dangerousStyleValue = __webpack_require__(149);\nvar hyphenateStyleName = __webpack_require__(150);\nvar memoizeStringOnly = __webpack_require__(71);\nvar warning = __webpack_require__(29);\n\nvar processStyleName = memoizeStringOnly(function(styleName) {\n return hyphenateStyleName(styleName);\n});\n\nvar styleFloatAccessor = 'cssFloat';\nif (ExecutionEnvironment.canUseDOM) {\n // IE8 only supports accessing cssFloat (standard) as styleFloat\n if (document.documentElement.style.cssFloat === undefined) {\n styleFloatAccessor = 'styleFloat';\n }\n}\n\nif (\"production\" !== process.env.NODE_ENV) {\n var warnedStyleNames = {};\n\n var warnHyphenatedStyleName = function(name) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n (\"production\" !== process.env.NODE_ENV ? warning(\n false,\n 'Unsupported style property ' + name + '. Did you mean ' +\n camelizeStyleName(name) + '?'\n ) : null);\n };\n}\n\n/**\n * Operations for dealing with CSS properties.\n */\nvar CSSPropertyOperations = {\n\n /**\n * Serializes a mapping of style properties for use as inline styles:\n *\n * > createMarkupForStyles({width: '200px', height: 0})\n * \"width:200px;height:0;\"\n *\n * Undefined values are ignored so that declarative programming is easier.\n * The result should be HTML-escaped before insertion into the DOM.\n *\n * @param {object} styles\n * @return {?string}\n */\n createMarkupForStyles: function(styles) {\n var serialized = '';\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n if (\"production\" !== process.env.NODE_ENV) {\n if (styleName.indexOf('-') > -1) {\n warnHyphenatedStyleName(styleName);\n }\n }\n var styleValue = styles[styleName];\n if (styleValue != null) {\n serialized += processStyleName(styleName) + ':';\n serialized += dangerousStyleValue(styleName, styleValue) + ';';\n }\n }\n return serialized || null;\n },\n\n /**\n * Sets the value for multiple styles on a node. If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n */\n setValueForStyles: function(node, styles) {\n var style = node.style;\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n if (\"production\" !== process.env.NODE_ENV) {\n if (styleName.indexOf('-') > -1) {\n warnHyphenatedStyleName(styleName);\n }\n }\n var styleValue = dangerousStyleValue(styleName, styles[styleName]);\n if (styleName === 'float') {\n styleName = styleFloatAccessor;\n }\n if (styleValue) {\n style[styleName] = styleValue;\n } else {\n var expansion = CSSProperty.shorthandPropertyExpansions[styleName];\n if (expansion) {\n // Shorthand property that IE8 won't like unsetting, so unset each\n // component to placate it\n for (var individualStyleName in expansion) {\n style[individualStyleName] = '';\n }\n } else {\n style[styleName] = '';\n }\n }\n }\n }\n\n};\n\nmodule.exports = CSSPropertyOperations;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/CSSPropertyOperations.js\n ** module id = 109\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/CSSPropertyOperations.js?");
  975. /***/ },
  976. /* 110 */
  977. /***/ function(module, exports, __webpack_require__) {
  978. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule keyOf\n */\n\n/**\n * Allows extraction of a minified key. Let's the build system minify keys\n * without loosing the ability to dynamically use key strings as values\n * themselves. Pass in an object with a single key/val pair and it will return\n * you the string key of that single record. Suppose you want to grab the\n * value for a key 'className' inside of an object. Key/val minification may\n * have aliased that key to be 'xa12'. keyOf({className: null}) will return\n * 'xa12' in that case. Resolve keys you want to use once at startup time, then\n * reuse those resolutions.\n */\nvar keyOf = function(oneKeyObj) {\n var key;\n for (key in oneKeyObj) {\n if (!oneKeyObj.hasOwnProperty(key)) {\n continue;\n }\n return key;\n }\n return null;\n};\n\n\nmodule.exports = keyOf;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/keyOf.js\n ** module id = 110\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/keyOf.js?");
  979. /***/ },
  980. /* 111 */
  981. /***/ function(module, exports, __webpack_require__) {
  982. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactErrorUtils\n * @typechecks\n */\n\n\"use strict\";\n\nvar ReactErrorUtils = {\n /**\n * Creates a guarded version of a function. This is supposed to make debugging\n * of event handlers easier. To aid debugging with the browser's debugger,\n * this currently simply returns the original function.\n *\n * @param {function} func Function to be executed\n * @param {string} name The name of the guard\n * @return {function}\n */\n guard: function(func, name) {\n return func;\n }\n};\n\nmodule.exports = ReactErrorUtils;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactErrorUtils.js\n ** module id = 111\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactErrorUtils.js?");
  983. /***/ },
  984. /* 112 */
  985. /***/ function(module, exports, __webpack_require__) {
  986. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTransferer\n */\n\n\"use strict\";\n\nvar assign = __webpack_require__(38);\nvar emptyFunction = __webpack_require__(46);\nvar invariant = __webpack_require__(27);\nvar joinClasses = __webpack_require__(151);\nvar warning = __webpack_require__(29);\n\nvar didWarn = false;\n\n/**\n * Creates a transfer strategy that will merge prop values using the supplied\n * `mergeStrategy`. If a prop was previously unset, this just sets it.\n *\n * @param {function} mergeStrategy\n * @return {function}\n */\nfunction createTransferStrategy(mergeStrategy) {\n return function(props, key, value) {\n if (!props.hasOwnProperty(key)) {\n props[key] = value;\n } else {\n props[key] = mergeStrategy(props[key], value);\n }\n };\n}\n\nvar transferStrategyMerge = createTransferStrategy(function(a, b) {\n // `merge` overrides the first object's (`props[key]` above) keys using the\n // second object's (`value`) keys. An object's style's existing `propA` would\n // get overridden. Flip the order here.\n return assign({}, b, a);\n});\n\n/**\n * Transfer strategies dictate how props are transferred by `transferPropsTo`.\n * NOTE: if you add any more exceptions to this list you should be sure to\n * update `cloneWithProps()` accordingly.\n */\nvar TransferStrategies = {\n /**\n * Never transfer `children`.\n */\n children: emptyFunction,\n /**\n * Transfer the `className` prop by merging them.\n */\n className: createTransferStrategy(joinClasses),\n /**\n * Transfer the `style` prop (which is an object) by merging them.\n */\n style: transferStrategyMerge\n};\n\n/**\n * Mutates the first argument by transferring the properties from the second\n * argument.\n *\n * @param {object} props\n * @param {object} newProps\n * @return {object}\n */\nfunction transferInto(props, newProps) {\n for (var thisKey in newProps) {\n if (!newProps.hasOwnProperty(thisKey)) {\n continue;\n }\n\n var transferStrategy = TransferStrategies[thisKey];\n\n if (transferStrategy && TransferStrategies.hasOwnProperty(thisKey)) {\n transferStrategy(props, thisKey, newProps[thisKey]);\n } else if (!props.hasOwnProperty(thisKey)) {\n props[thisKey] = newProps[thisKey];\n }\n }\n return props;\n}\n\n/**\n * ReactPropTransferer are capable of transferring props to another component\n * using a `transferPropsTo` method.\n *\n * @class ReactPropTransferer\n */\nvar ReactPropTransferer = {\n\n TransferStrategies: TransferStrategies,\n\n /**\n * Merge two props objects using TransferStrategies.\n *\n * @param {object} oldProps original props (they take precedence)\n * @param {object} newProps new props to merge in\n * @return {object} a new object containing both sets of props merged.\n */\n mergeProps: function(oldProps, newProps) {\n return transferInto(assign({}, oldProps), newProps);\n },\n\n /**\n * @lends {ReactPropTransferer.prototype}\n */\n Mixin: {\n\n /**\n * Transfer props from this component to a target component.\n *\n * Props that do not have an explicit transfer strategy will be transferred\n * only if the target component does not already have the prop set.\n *\n * This is usually used to pass down props to a returned root component.\n *\n * @param {ReactElement} element Component receiving the properties.\n * @return {ReactElement} The supplied `component`.\n * @final\n * @protected\n */\n transferPropsTo: function(element) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n element._owner === this,\n '%s: You can\\'t call transferPropsTo() on a component that you ' +\n 'don\\'t own, %s. This usually means you are calling ' +\n 'transferPropsTo() on a component passed in as props or children.',\n this.constructor.displayName,\n typeof element.type === 'string' ?\n element.type :\n element.type.displayName\n ) : invariant(element._owner === this));\n\n if (\"production\" !== process.env.NODE_ENV) {\n if (!didWarn) {\n didWarn = true;\n (\"production\" !== process.env.NODE_ENV ? warning(\n false,\n 'transferPropsTo is deprecated. ' +\n 'See http://fb.me/react-transferpropsto for more information.'\n ) : null);\n }\n }\n\n // Because elements are immutable we have to merge into the existing\n // props object rather than clone it.\n transferInto(element.props, this.props);\n\n return element;\n }\n\n }\n};\n\nmodule.exports = ReactPropTransferer;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactPropTransferer.js\n ** module id = 112\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactPropTransferer.js?");
  987. /***/ },
  988. /* 113 */
  989. /***/ function(module, exports, __webpack_require__) {
  990. eval("'use strict';\n\nvar bindAutoBindMethods = __webpack_require__(152);\n\n/**\n * Updates a React component recursively, so even if children define funky\n * `shouldComponentUpdate`, they are forced to re-render.\n * Makes sure that any newly added methods are properly auto-bound.\n */\nfunction deepForceUpdate(component) {\n if (component._instance) {\n // React 0.13\n component = component._instance;\n }\n\n bindAutoBindMethods(component);\n\n if (component.forceUpdate) {\n component.forceUpdate();\n }\n\n if (component._renderedComponent) {\n deepForceUpdate(component._renderedComponent);\n }\n\n for (var key in component._renderedChildren) {\n deepForceUpdate(component._renderedChildren[key]);\n }\n}\n\nmodule.exports = deepForceUpdate;\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react-hot-loader/~/react-hot-api/modules/deepForceUpdate.js\n ** module id = 113\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react-hot-loader/~/react-hot-api/modules/deepForceUpdate.js?");
  991. /***/ },
  992. /* 114 */
  993. /***/ function(module, exports, __webpack_require__) {
  994. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule emptyObject\n */\n\n\"use strict\";\n\nvar emptyObject = {};\n\nif (\"production\" !== process.env.NODE_ENV) {\n Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/emptyObject.js\n ** module id = 114\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/emptyObject.js?");
  995. /***/ },
  996. /* 115 */
  997. /***/ function(module, exports, __webpack_require__) {
  998. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CallbackQueue\n */\n\n\"use strict\";\n\nvar PooledClass = __webpack_require__(72);\n\nvar assign = __webpack_require__(38);\nvar invariant = __webpack_require__(27);\n\n/**\n * A specialized pseudo-event module to help keep track of components waiting to\n * be notified when their DOM representations are available for use.\n *\n * This implements `PooledClass`, so you should never need to instantiate this.\n * Instead, use `CallbackQueue.getPooled()`.\n *\n * @class ReactMountReady\n * @implements PooledClass\n * @internal\n */\nfunction CallbackQueue() {\n this._callbacks = null;\n this._contexts = null;\n}\n\nassign(CallbackQueue.prototype, {\n\n /**\n * Enqueues a callback to be invoked when `notifyAll` is invoked.\n *\n * @param {function} callback Invoked when `notifyAll` is invoked.\n * @param {?object} context Context to call `callback` with.\n * @internal\n */\n enqueue: function(callback, context) {\n this._callbacks = this._callbacks || [];\n this._contexts = this._contexts || [];\n this._callbacks.push(callback);\n this._contexts.push(context);\n },\n\n /**\n * Invokes all enqueued callbacks and clears the queue. This is invoked after\n * the DOM representation of a component has been created or updated.\n *\n * @internal\n */\n notifyAll: function() {\n var callbacks = this._callbacks;\n var contexts = this._contexts;\n if (callbacks) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n callbacks.length === contexts.length,\n \"Mismatched list of contexts in callback queue\"\n ) : invariant(callbacks.length === contexts.length));\n this._callbacks = null;\n this._contexts = null;\n for (var i = 0, l = callbacks.length; i < l; i++) {\n callbacks[i].call(contexts[i]);\n }\n callbacks.length = 0;\n contexts.length = 0;\n }\n },\n\n /**\n * Resets the internal queue.\n *\n * @internal\n */\n reset: function() {\n this._callbacks = null;\n this._contexts = null;\n },\n\n /**\n * `PooledClass` looks for this.\n */\n destructor: function() {\n this.reset();\n }\n\n});\n\nPooledClass.addPoolingTo(CallbackQueue);\n\nmodule.exports = CallbackQueue;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/CallbackQueue.js\n ** module id = 115\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/CallbackQueue.js?");
  999. /***/ },
  1000. /* 116 */
  1001. /***/ function(module, exports, __webpack_require__) {
  1002. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Transaction\n */\n\n\"use strict\";\n\nvar invariant = __webpack_require__(27);\n\n/**\n * `Transaction` creates a black box that is able to wrap any method such that\n * certain invariants are maintained before and after the method is invoked\n * (Even if an exception is thrown while invoking the wrapped method). Whoever\n * instantiates a transaction can provide enforcers of the invariants at\n * creation time. The `Transaction` class itself will supply one additional\n * automatic invariant for you - the invariant that any transaction instance\n * should not be run while it is already being run. You would typically create a\n * single instance of a `Transaction` for reuse multiple times, that potentially\n * is used to wrap several different methods. Wrappers are extremely simple -\n * they only require implementing two methods.\n *\n * <pre>\n * wrappers (injected at creation time)\n * + +\n * | |\n * +-----------------|--------|--------------+\n * | v | |\n * | +---------------+ | |\n * | +--| wrapper1 |---|----+ |\n * | | +---------------+ v | |\n * | | +-------------+ | |\n * | | +----| wrapper2 |--------+ |\n * | | | +-------------+ | | |\n * | | | | | |\n * | v v v v | wrapper\n * | +---+ +---+ +---------+ +---+ +---+ | invariants\n * perform(anyMethod) | | | | | | | | | | | | maintained\n * +----------------->|-|---|-|---|-->|anyMethod|---|---|-|---|-|-------->\n * | | | | | | | | | | | |\n * | | | | | | | | | | | |\n * | | | | | | | | | | | |\n * | +---+ +---+ +---------+ +---+ +---+ |\n * | initialize close |\n * +-----------------------------------------+\n * </pre>\n *\n * Use cases:\n * - Preserving the input selection ranges before/after reconciliation.\n * Restoring selection even in the event of an unexpected error.\n * - Deactivating events while rearranging the DOM, preventing blurs/focuses,\n * while guaranteeing that afterwards, the event system is reactivated.\n * - Flushing a queue of collected DOM mutations to the main UI thread after a\n * reconciliation takes place in a worker thread.\n * - Invoking any collected `componentDidUpdate` callbacks after rendering new\n * content.\n * - (Future use case): Wrapping particular flushes of the `ReactWorker` queue\n * to preserve the `scrollTop` (an automatic scroll aware DOM).\n * - (Future use case): Layout calculations before and after DOM upates.\n *\n * Transactional plugin API:\n * - A module that has an `initialize` method that returns any precomputation.\n * - and a `close` method that accepts the precomputation. `close` is invoked\n * when the wrapped process is completed, or has failed.\n *\n * @param {Array<TransactionalWrapper>} transactionWrapper Wrapper modules\n * that implement `initialize` and `close`.\n * @return {Transaction} Single transaction for reuse in thread.\n *\n * @class Transaction\n */\nvar Mixin = {\n /**\n * Sets up this instance so that it is prepared for collecting metrics. Does\n * so such that this setup method may be used on an instance that is already\n * initialized, in a way that does not consume additional memory upon reuse.\n * That can be useful if you decide to make your subclass of this mixin a\n * \"PooledClass\".\n */\n reinitializeTransaction: function() {\n this.transactionWrappers = this.getTransactionWrappers();\n if (!this.wrapperInitData) {\n this.wrapperInitData = [];\n } else {\n this.wrapperInitData.length = 0;\n }\n this._isInTransaction = false;\n },\n\n _isInTransaction: false,\n\n /**\n * @abstract\n * @return {Array<TransactionWrapper>} Array of transaction wrappers.\n */\n getTransactionWrappers: null,\n\n isInTransaction: function() {\n return !!this._isInTransaction;\n },\n\n /**\n * Executes the function within a safety window. Use this for the top level\n * methods that result in large amounts of computation/mutations that would\n * need to be safety checked.\n *\n * @param {function} method Member of scope to call.\n * @param {Object} scope Scope to invoke from.\n * @param {Object?=} args... Arguments to pass to the method (optional).\n * Helps prevent need to bind in many cases.\n * @return Return value from `method`.\n */\n perform: function(method, scope, a, b, c, d, e, f) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n !this.isInTransaction(),\n 'Transaction.perform(...): Cannot initialize a transaction when there ' +\n 'is already an outstanding transaction.'\n ) : invariant(!this.isInTransaction()));\n var errorThrown;\n var ret;\n try {\n this._isInTransaction = true;\n // Catching errors makes debugging more difficult, so we start with\n // errorThrown set to true before setting it to false after calling\n // close -- if it's still set to true in the finally block, it means\n // one of these calls threw.\n errorThrown = true;\n this.initializeAll(0);\n ret = method.call(scope, a, b, c, d, e, f);\n errorThrown = false;\n } finally {\n try {\n if (errorThrown) {\n // If `method` throws, prefer to show that stack trace over any thrown\n // by invoking `closeAll`.\n try {\n this.closeAll(0);\n } catch (err) {\n }\n } else {\n // Since `method` didn't throw, we don't want to silence the exception\n // here.\n this.closeAll(0);\n }\n } finally {\n this._isInTransaction = false;\n }\n }\n return ret;\n },\n\n initializeAll: function(startIndex) {\n var transactionWrappers = this.transactionWrappers;\n for (var i = startIndex; i < transactionWrappers.length; i++) {\n var wrapper = transactionWrappers[i];\n try {\n // Catching errors makes debugging more difficult, so we start with the\n // OBSERVED_ERROR state before overwriting it with the real return value\n // of initialize -- if it's still set to OBSERVED_ERROR in the finally\n // block, it means wrapper.initialize threw.\n this.wrapperInitData[i] = Transaction.OBSERVED_ERROR;\n this.wrapperInitData[i] = wrapper.initialize ?\n wrapper.initialize.call(this) :\n null;\n } finally {\n if (this.wrapperInitData[i] === Transaction.OBSERVED_ERROR) {\n // The initializer for wrapper i threw an error; initialize the\n // remaining wrappers but silence any exceptions from them to ensure\n // that the first error is the one to bubble up.\n try {\n this.initializeAll(i + 1);\n } catch (err) {\n }\n }\n }\n }\n },\n\n /**\n * Invokes each of `this.transactionWrappers.close[i]` functions, passing into\n * them the respective return values of `this.transactionWrappers.init[i]`\n * (`close`rs that correspond to initializers that failed will not be\n * invoked).\n */\n closeAll: function(startIndex) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n this.isInTransaction(),\n 'Transaction.closeAll(): Cannot close transaction when none are open.'\n ) : invariant(this.isInTransaction()));\n var transactionWrappers = this.transactionWrappers;\n for (var i = startIndex; i < transactionWrappers.length; i++) {\n var wrapper = transactionWrappers[i];\n var initData = this.wrapperInitData[i];\n var errorThrown;\n try {\n // Catching errors makes debugging more difficult, so we start with\n // errorThrown set to true before setting it to false after calling\n // close -- if it's still set to true in the finally block, it means\n // wrapper.close threw.\n errorThrown = true;\n if (initData !== Transaction.OBSERVED_ERROR) {\n wrapper.close && wrapper.close.call(this, initData);\n }\n errorThrown = false;\n } finally {\n if (errorThrown) {\n // The closer for wrapper i threw an error; close the remaining\n // wrappers but silence any exceptions from them to ensure that the\n // first error is the one to bubble up.\n try {\n this.closeAll(i + 1);\n } catch (e) {\n }\n }\n }\n }\n this.wrapperInitData.length = 0;\n }\n};\n\nvar Transaction = {\n\n Mixin: Mixin,\n\n /**\n * Token to look for to determine if an error occured.\n */\n OBSERVED_ERROR: {}\n\n};\n\nmodule.exports = Transaction;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/Transaction.js\n ** module id = 116\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/Transaction.js?");
  1003. /***/ },
  1004. /* 117 */
  1005. /***/ function(module, exports, __webpack_require__) {
  1006. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPropagators\n */\n\n\"use strict\";\n\nvar EventConstants = __webpack_require__(33);\nvar EventPluginHub = __webpack_require__(34);\n\nvar accumulateInto = __webpack_require__(64);\nvar forEachAccumulated = __webpack_require__(65);\n\nvar PropagationPhases = EventConstants.PropagationPhases;\nvar getListener = EventPluginHub.getListener;\n\n/**\n * Some event types have a notion of different registration names for different\n * \"phases\" of propagation. This finds listeners by a given phase.\n */\nfunction listenerAtPhase(id, event, propagationPhase) {\n var registrationName =\n event.dispatchConfig.phasedRegistrationNames[propagationPhase];\n return getListener(id, registrationName);\n}\n\n/**\n * Tags a `SyntheticEvent` with dispatched listeners. Creating this function\n * here, allows us to not have to bind or create functions for each event.\n * Mutating the event's members allows us to not have to create a wrapping\n * \"dispatch\" object that pairs the event with the listener.\n */\nfunction accumulateDirectionalDispatches(domID, upwards, event) {\n if (\"production\" !== process.env.NODE_ENV) {\n if (!domID) {\n throw new Error('Dispatching id must not be null');\n }\n }\n var phase = upwards ? PropagationPhases.bubbled : PropagationPhases.captured;\n var listener = listenerAtPhase(domID, event, phase);\n if (listener) {\n event._dispatchListeners =\n accumulateInto(event._dispatchListeners, listener);\n event._dispatchIDs = accumulateInto(event._dispatchIDs, domID);\n }\n}\n\n/**\n * Collect dispatches (must be entirely collected before dispatching - see unit\n * tests). Lazily allocate the array to conserve memory. We must loop through\n * each event and perform the traversal for each one. We can not perform a\n * single traversal for the entire collection of events because each event may\n * have a different target.\n */\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n EventPluginHub.injection.getInstanceHandle().traverseTwoPhase(\n event.dispatchMarker,\n accumulateDirectionalDispatches,\n event\n );\n }\n}\n\n\n/**\n * Accumulates without regard to direction, does not look for phased\n * registration names. Same as `accumulateDirectDispatchesSingle` but without\n * requiring that the `dispatchMarker` be the same as the dispatched ID.\n */\nfunction accumulateDispatches(id, ignoredDirection, event) {\n if (event && event.dispatchConfig.registrationName) {\n var registrationName = event.dispatchConfig.registrationName;\n var listener = getListener(id, registrationName);\n if (listener) {\n event._dispatchListeners =\n accumulateInto(event._dispatchListeners, listener);\n event._dispatchIDs = accumulateInto(event._dispatchIDs, id);\n }\n }\n}\n\n/**\n * Accumulates dispatches on an `SyntheticEvent`, but only for the\n * `dispatchMarker`.\n * @param {SyntheticEvent} event\n */\nfunction accumulateDirectDispatchesSingle(event) {\n if (event && event.dispatchConfig.registrationName) {\n accumulateDispatches(event.dispatchMarker, null, event);\n }\n}\n\nfunction accumulateTwoPhaseDispatches(events) {\n forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle);\n}\n\nfunction accumulateEnterLeaveDispatches(leave, enter, fromID, toID) {\n EventPluginHub.injection.getInstanceHandle().traverseEnterLeave(\n fromID,\n toID,\n accumulateDispatches,\n leave,\n enter\n );\n}\n\n\nfunction accumulateDirectDispatches(events) {\n forEachAccumulated(events, accumulateDirectDispatchesSingle);\n}\n\n\n\n/**\n * A small set of propagation patterns, each of which will accept a small amount\n * of information, and generate a set of \"dispatch ready event objects\" - which\n * are sets of events that have already been annotated with a set of dispatched\n * listener functions/ids. The API is designed this way to discourage these\n * propagation strategies from actually executing the dispatches, since we\n * always want to collect the entire set of dispatches before executing event a\n * single one.\n *\n * @constructor EventPropagators\n */\nvar EventPropagators = {\n accumulateTwoPhaseDispatches: accumulateTwoPhaseDispatches,\n accumulateDirectDispatches: accumulateDirectDispatches,\n accumulateEnterLeaveDispatches: accumulateEnterLeaveDispatches\n};\n\nmodule.exports = EventPropagators;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/EventPropagators.js\n ** module id = 117\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/EventPropagators.js?");
  1007. /***/ },
  1008. /* 118 */
  1009. /***/ function(module, exports, __webpack_require__) {
  1010. eval("/**\n * Copyright 2013 Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticInputEvent\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar SyntheticEvent = __webpack_require__(119);\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105\n * /#events-inputevents\n */\nvar InputEventInterface = {\n data: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticInputEvent(\n dispatchConfig,\n dispatchMarker,\n nativeEvent) {\n SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent);\n}\n\nSyntheticEvent.augmentClass(\n SyntheticInputEvent,\n InputEventInterface\n);\n\nmodule.exports = SyntheticInputEvent;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SyntheticInputEvent.js\n ** module id = 118\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/SyntheticInputEvent.js?");
  1011. /***/ },
  1012. /* 119 */
  1013. /***/ function(module, exports, __webpack_require__) {
  1014. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticEvent\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar PooledClass = __webpack_require__(72);\n\nvar assign = __webpack_require__(38);\nvar emptyFunction = __webpack_require__(46);\nvar getEventTarget = __webpack_require__(132);\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar EventInterface = {\n type: null,\n target: getEventTarget,\n // currentTarget is set when dispatching; no use in copying it here\n currentTarget: emptyFunction.thatReturnsNull,\n eventPhase: null,\n bubbles: null,\n cancelable: null,\n timeStamp: function(event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: null,\n isTrusted: null\n};\n\n/**\n * Synthetic events are dispatched by event plugins, typically in response to a\n * top-level event delegation handler.\n *\n * These systems should generally use pooling to reduce the frequency of garbage\n * collection. The system should check `isPersistent` to determine whether the\n * event should be released into the pool after being dispatched. Users that\n * need a persisted event should invoke `persist`.\n *\n * Synthetic events (and subclasses) implement the DOM Level 3 Events API by\n * normalizing browser quirks. Subclasses do not necessarily have to implement a\n * DOM interface; custom application-specific events can also subclass this.\n *\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n */\nfunction SyntheticEvent(dispatchConfig, dispatchMarker, nativeEvent) {\n this.dispatchConfig = dispatchConfig;\n this.dispatchMarker = dispatchMarker;\n this.nativeEvent = nativeEvent;\n\n var Interface = this.constructor.Interface;\n for (var propName in Interface) {\n if (!Interface.hasOwnProperty(propName)) {\n continue;\n }\n var normalize = Interface[propName];\n if (normalize) {\n this[propName] = normalize(nativeEvent);\n } else {\n this[propName] = nativeEvent[propName];\n }\n }\n\n var defaultPrevented = nativeEvent.defaultPrevented != null ?\n nativeEvent.defaultPrevented :\n nativeEvent.returnValue === false;\n if (defaultPrevented) {\n this.isDefaultPrevented = emptyFunction.thatReturnsTrue;\n } else {\n this.isDefaultPrevented = emptyFunction.thatReturnsFalse;\n }\n this.isPropagationStopped = emptyFunction.thatReturnsFalse;\n}\n\nassign(SyntheticEvent.prototype, {\n\n preventDefault: function() {\n this.defaultPrevented = true;\n var event = this.nativeEvent;\n event.preventDefault ? event.preventDefault() : event.returnValue = false;\n this.isDefaultPrevented = emptyFunction.thatReturnsTrue;\n },\n\n stopPropagation: function() {\n var event = this.nativeEvent;\n event.stopPropagation ? event.stopPropagation() : event.cancelBubble = true;\n this.isPropagationStopped = emptyFunction.thatReturnsTrue;\n },\n\n /**\n * We release all dispatched `SyntheticEvent`s after each event loop, adding\n * them back into the pool. This allows a way to hold onto a reference that\n * won't be added back into the pool.\n */\n persist: function() {\n this.isPersistent = emptyFunction.thatReturnsTrue;\n },\n\n /**\n * Checks if this event should be released back into the pool.\n *\n * @return {boolean} True if this should not be released, false otherwise.\n */\n isPersistent: emptyFunction.thatReturnsFalse,\n\n /**\n * `PooledClass` looks for `destructor` on each instance it releases.\n */\n destructor: function() {\n var Interface = this.constructor.Interface;\n for (var propName in Interface) {\n this[propName] = null;\n }\n this.dispatchConfig = null;\n this.dispatchMarker = null;\n this.nativeEvent = null;\n }\n\n});\n\nSyntheticEvent.Interface = EventInterface;\n\n/**\n * Helper to reduce boilerplate when creating subclasses.\n *\n * @param {function} Class\n * @param {?object} Interface\n */\nSyntheticEvent.augmentClass = function(Class, Interface) {\n var Super = this;\n\n var prototype = Object.create(Super.prototype);\n assign(prototype, Class.prototype);\n Class.prototype = prototype;\n Class.prototype.constructor = Class;\n\n Class.Interface = assign({}, Super.Interface, Interface);\n Class.augmentClass = Super.augmentClass;\n\n PooledClass.addPoolingTo(Class, PooledClass.threeArgumentPooler);\n};\n\nPooledClass.addPoolingTo(SyntheticEvent, PooledClass.threeArgumentPooler);\n\nmodule.exports = SyntheticEvent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SyntheticEvent.js\n ** module id = 119\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/SyntheticEvent.js?");
  1015. /***/ },
  1016. /* 120 */
  1017. /***/ function(module, exports, __webpack_require__) {
  1018. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isTextInputElement\n */\n\n\"use strict\";\n\n/**\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary\n */\nvar supportedInputTypes = {\n 'color': true,\n 'date': true,\n 'datetime': true,\n 'datetime-local': true,\n 'email': true,\n 'month': true,\n 'number': true,\n 'password': true,\n 'range': true,\n 'search': true,\n 'tel': true,\n 'text': true,\n 'time': true,\n 'url': true,\n 'week': true\n};\n\nfunction isTextInputElement(elem) {\n return elem && (\n (elem.nodeName === 'INPUT' && supportedInputTypes[elem.type]) ||\n elem.nodeName === 'TEXTAREA'\n );\n}\n\nmodule.exports = isTextInputElement;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/isTextInputElement.js\n ** module id = 120\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/isTextInputElement.js?");
  1019. /***/ },
  1020. /* 121 */
  1021. /***/ function(module, exports, __webpack_require__) {
  1022. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInputSelection\n */\n\n\"use strict\";\n\nvar ReactDOMSelection = __webpack_require__(153);\n\nvar containsNode = __webpack_require__(23);\nvar focusNode = __webpack_require__(154);\nvar getActiveElement = __webpack_require__(133);\n\nfunction isInDocument(node) {\n return containsNode(document.documentElement, node);\n}\n\n/**\n * @ReactInputSelection: React input selection module. Based on Selection.js,\n * but modified to be suitable for react and has a couple of bug fixes (doesn't\n * assume buttons have range selections allowed).\n * Input selection module for React.\n */\nvar ReactInputSelection = {\n\n hasSelectionCapabilities: function(elem) {\n return elem && (\n (elem.nodeName === 'INPUT' && elem.type === 'text') ||\n elem.nodeName === 'TEXTAREA' ||\n elem.contentEditable === 'true'\n );\n },\n\n getSelectionInformation: function() {\n var focusedElem = getActiveElement();\n return {\n focusedElem: focusedElem,\n selectionRange:\n ReactInputSelection.hasSelectionCapabilities(focusedElem) ?\n ReactInputSelection.getSelection(focusedElem) :\n null\n };\n },\n\n /**\n * @restoreSelection: If any selection information was potentially lost,\n * restore it. This is useful when performing operations that could remove dom\n * nodes and place them back in, resulting in focus being lost.\n */\n restoreSelection: function(priorSelectionInformation) {\n var curFocusedElem = getActiveElement();\n var priorFocusedElem = priorSelectionInformation.focusedElem;\n var priorSelectionRange = priorSelectionInformation.selectionRange;\n if (curFocusedElem !== priorFocusedElem &&\n isInDocument(priorFocusedElem)) {\n if (ReactInputSelection.hasSelectionCapabilities(priorFocusedElem)) {\n ReactInputSelection.setSelection(\n priorFocusedElem,\n priorSelectionRange\n );\n }\n focusNode(priorFocusedElem);\n }\n },\n\n /**\n * @getSelection: Gets the selection bounds of a focused textarea, input or\n * contentEditable node.\n * -@input: Look up selection bounds of this input\n * -@return {start: selectionStart, end: selectionEnd}\n */\n getSelection: function(input) {\n var selection;\n\n if ('selectionStart' in input) {\n // Modern browser with input or textarea.\n selection = {\n start: input.selectionStart,\n end: input.selectionEnd\n };\n } else if (document.selection && input.nodeName === 'INPUT') {\n // IE8 input.\n var range = document.selection.createRange();\n // There can only be one selection per document in IE, so it must\n // be in our element.\n if (range.parentElement() === input) {\n selection = {\n start: -range.moveStart('character', -input.value.length),\n end: -range.moveEnd('character', -input.value.length)\n };\n }\n } else {\n // Content editable or old IE textarea.\n selection = ReactDOMSelection.getOffsets(input);\n }\n\n return selection || {start: 0, end: 0};\n },\n\n /**\n * @setSelection: Sets the selection bounds of a textarea or input and focuses\n * the input.\n * -@input Set selection bounds of this input or textarea\n * -@offsets Object of same form that is returned from get*\n */\n setSelection: function(input, offsets) {\n var start = offsets.start;\n var end = offsets.end;\n if (typeof end === 'undefined') {\n end = start;\n }\n\n if ('selectionStart' in input) {\n input.selectionStart = start;\n input.selectionEnd = Math.min(end, input.value.length);\n } else if (document.selection && input.nodeName === 'INPUT') {\n var range = input.createTextRange();\n range.collapse(true);\n range.moveStart('character', start);\n range.moveEnd('character', end - start);\n range.select();\n } else {\n ReactDOMSelection.setOffsets(input, offsets);\n }\n }\n};\n\nmodule.exports = ReactInputSelection;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactInputSelection.js\n ** module id = 121\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactInputSelection.js?");
  1023. /***/ },
  1024. /* 122 */
  1025. /***/ function(module, exports, __webpack_require__) {
  1026. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticCompositionEvent\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar SyntheticEvent = __webpack_require__(119);\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents\n */\nvar CompositionEventInterface = {\n data: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticCompositionEvent(\n dispatchConfig,\n dispatchMarker,\n nativeEvent) {\n SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent);\n}\n\nSyntheticEvent.augmentClass(\n SyntheticCompositionEvent,\n CompositionEventInterface\n);\n\nmodule.exports = SyntheticCompositionEvent;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SyntheticCompositionEvent.js\n ** module id = 122\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/SyntheticCompositionEvent.js?");
  1027. /***/ },
  1028. /* 123 */
  1029. /***/ function(module, exports, __webpack_require__) {
  1030. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getTextContentAccessor\n */\n\n\"use strict\";\n\nvar ExecutionEnvironment = __webpack_require__(62);\n\nvar contentKey = null;\n\n/**\n * Gets the key used to access text content on a DOM node.\n *\n * @return {?string} Key used to access text content.\n * @internal\n */\nfunction getTextContentAccessor() {\n if (!contentKey && ExecutionEnvironment.canUseDOM) {\n // Prefer textContent to innerText because many browsers support both but\n // SVG <text> elements don't support innerText even when <div> does.\n contentKey = 'textContent' in document.documentElement ?\n 'textContent' :\n 'innerText';\n }\n return contentKey;\n}\n\nmodule.exports = getTextContentAccessor;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/getTextContentAccessor.js\n ** module id = 123\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/getTextContentAccessor.js?");
  1031. /***/ },
  1032. /* 124 */
  1033. /***/ function(module, exports, __webpack_require__) {
  1034. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticMouseEvent\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar SyntheticUIEvent = __webpack_require__(140);\nvar ViewportMetrics = __webpack_require__(37);\n\nvar getEventModifierState = __webpack_require__(155);\n\n/**\n * @interface MouseEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar MouseEventInterface = {\n screenX: null,\n screenY: null,\n clientX: null,\n clientY: null,\n ctrlKey: null,\n shiftKey: null,\n altKey: null,\n metaKey: null,\n getModifierState: getEventModifierState,\n button: function(event) {\n // Webkit, Firefox, IE9+\n // which: 1 2 3\n // button: 0 1 2 (standard)\n var button = event.button;\n if ('which' in event) {\n return button;\n }\n // IE<9\n // which: undefined\n // button: 0 0 0\n // button: 1 4 2 (onmouseup)\n return button === 2 ? 2 : button === 4 ? 1 : 0;\n },\n buttons: null,\n relatedTarget: function(event) {\n return event.relatedTarget || (\n event.fromElement === event.srcElement ?\n event.toElement :\n event.fromElement\n );\n },\n // \"Proprietary\" Interface.\n pageX: function(event) {\n return 'pageX' in event ?\n event.pageX :\n event.clientX + ViewportMetrics.currentScrollLeft;\n },\n pageY: function(event) {\n return 'pageY' in event ?\n event.pageY :\n event.clientY + ViewportMetrics.currentScrollTop;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent) {\n SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface);\n\nmodule.exports = SyntheticMouseEvent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SyntheticMouseEvent.js\n ** module id = 124\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/SyntheticMouseEvent.js?");
  1035. /***/ },
  1036. /* 125 */
  1037. /***/ function(module, exports, __webpack_require__) {
  1038. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMIDOperations\n * @typechecks static-only\n */\n\n/*jslint evil: true */\n\n\"use strict\";\n\nvar CSSPropertyOperations = __webpack_require__(109);\nvar DOMChildrenOperations = __webpack_require__(156);\nvar DOMPropertyOperations = __webpack_require__(48);\nvar ReactMount = __webpack_require__(9);\nvar ReactPerf = __webpack_require__(22);\n\nvar invariant = __webpack_require__(27);\nvar setInnerHTML = __webpack_require__(127);\n\n/**\n * Errors for properties that should not be updated with `updatePropertyById()`.\n *\n * @type {object}\n * @private\n */\nvar INVALID_PROPERTY_ERRORS = {\n dangerouslySetInnerHTML:\n '`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.',\n style: '`style` must be set using `updateStylesByID()`.'\n};\n\n/**\n * Operations used to process updates to DOM nodes. This is made injectable via\n * `ReactComponent.BackendIDOperations`.\n */\nvar ReactDOMIDOperations = {\n\n /**\n * Updates a DOM node with new property values. This should only be used to\n * update DOM properties in `DOMProperty`.\n *\n * @param {string} id ID of the node to update.\n * @param {string} name A valid property name, see `DOMProperty`.\n * @param {*} value New value of the property.\n * @internal\n */\n updatePropertyByID: ReactPerf.measure(\n 'ReactDOMIDOperations',\n 'updatePropertyByID',\n function(id, name, value) {\n var node = ReactMount.getNode(id);\n (\"production\" !== process.env.NODE_ENV ? invariant(\n !INVALID_PROPERTY_ERRORS.hasOwnProperty(name),\n 'updatePropertyByID(...): %s',\n INVALID_PROPERTY_ERRORS[name]\n ) : invariant(!INVALID_PROPERTY_ERRORS.hasOwnProperty(name)));\n\n // If we're updating to null or undefined, we should remove the property\n // from the DOM node instead of inadvertantly setting to a string. This\n // brings us in line with the same behavior we have on initial render.\n if (value != null) {\n DOMPropertyOperations.setValueForProperty(node, name, value);\n } else {\n DOMPropertyOperations.deleteValueForProperty(node, name);\n }\n }\n ),\n\n /**\n * Updates a DOM node to remove a property. This should only be used to remove\n * DOM properties in `DOMProperty`.\n *\n * @param {string} id ID of the node to update.\n * @param {string} name A property name to remove, see `DOMProperty`.\n * @internal\n */\n deletePropertyByID: ReactPerf.measure(\n 'ReactDOMIDOperations',\n 'deletePropertyByID',\n function(id, name, value) {\n var node = ReactMount.getNode(id);\n (\"production\" !== process.env.NODE_ENV ? invariant(\n !INVALID_PROPERTY_ERRORS.hasOwnProperty(name),\n 'updatePropertyByID(...): %s',\n INVALID_PROPERTY_ERRORS[name]\n ) : invariant(!INVALID_PROPERTY_ERRORS.hasOwnProperty(name)));\n DOMPropertyOperations.deleteValueForProperty(node, name, value);\n }\n ),\n\n /**\n * Updates a DOM node with new style values. If a value is specified as '',\n * the corresponding style property will be unset.\n *\n * @param {string} id ID of the node to update.\n * @param {object} styles Mapping from styles to values.\n * @internal\n */\n updateStylesByID: ReactPerf.measure(\n 'ReactDOMIDOperations',\n 'updateStylesByID',\n function(id, styles) {\n var node = ReactMount.getNode(id);\n CSSPropertyOperations.setValueForStyles(node, styles);\n }\n ),\n\n /**\n * Updates a DOM node's innerHTML.\n *\n * @param {string} id ID of the node to update.\n * @param {string} html An HTML string.\n * @internal\n */\n updateInnerHTMLByID: ReactPerf.measure(\n 'ReactDOMIDOperations',\n 'updateInnerHTMLByID',\n function(id, html) {\n var node = ReactMount.getNode(id);\n setInnerHTML(node, html);\n }\n ),\n\n /**\n * Updates a DOM node's text content set by `props.content`.\n *\n * @param {string} id ID of the node to update.\n * @param {string} content Text content.\n * @internal\n */\n updateTextContentByID: ReactPerf.measure(\n 'ReactDOMIDOperations',\n 'updateTextContentByID',\n function(id, content) {\n var node = ReactMount.getNode(id);\n DOMChildrenOperations.updateTextContent(node, content);\n }\n ),\n\n /**\n * Replaces a DOM node that exists in the document with markup.\n *\n * @param {string} id ID of child to be replaced.\n * @param {string} markup Dangerous markup to inject in place of child.\n * @internal\n * @see {Danger.dangerouslyReplaceNodeWithMarkup}\n */\n dangerouslyReplaceNodeWithMarkupByID: ReactPerf.measure(\n 'ReactDOMIDOperations',\n 'dangerouslyReplaceNodeWithMarkupByID',\n function(id, markup) {\n var node = ReactMount.getNode(id);\n DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup(node, markup);\n }\n ),\n\n /**\n * Updates a component's children by processing a series of updates.\n *\n * @param {array<object>} updates List of update configurations.\n * @param {array<string>} markup List of markup strings.\n * @internal\n */\n dangerouslyProcessChildrenUpdates: ReactPerf.measure(\n 'ReactDOMIDOperations',\n 'dangerouslyProcessChildrenUpdates',\n function(updates, markup) {\n for (var i = 0; i < updates.length; i++) {\n updates[i].parentNode = ReactMount.getNode(updates[i].parentID);\n }\n DOMChildrenOperations.processUpdates(updates, markup);\n }\n )\n};\n\nmodule.exports = ReactDOMIDOperations;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMIDOperations.js\n ** module id = 125\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactDOMIDOperations.js?");
  1039. /***/ },
  1040. /* 126 */
  1041. /***/ function(module, exports, __webpack_require__) {
  1042. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactReconcileTransaction\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar CallbackQueue = __webpack_require__(115);\nvar PooledClass = __webpack_require__(72);\nvar ReactBrowserEventEmitter = __webpack_require__(17);\nvar ReactInputSelection = __webpack_require__(121);\nvar ReactPutListenerQueue = __webpack_require__(146);\nvar Transaction = __webpack_require__(116);\n\nvar assign = __webpack_require__(38);\n\n/**\n * Ensures that, when possible, the selection range (currently selected text\n * input) is not disturbed by performing the transaction.\n */\nvar SELECTION_RESTORATION = {\n /**\n * @return {Selection} Selection information.\n */\n initialize: ReactInputSelection.getSelectionInformation,\n /**\n * @param {Selection} sel Selection information returned from `initialize`.\n */\n close: ReactInputSelection.restoreSelection\n};\n\n/**\n * Suppresses events (blur/focus) that could be inadvertently dispatched due to\n * high level DOM manipulations (like temporarily removing a text input from the\n * DOM).\n */\nvar EVENT_SUPPRESSION = {\n /**\n * @return {boolean} The enabled status of `ReactBrowserEventEmitter` before\n * the reconciliation.\n */\n initialize: function() {\n var currentlyEnabled = ReactBrowserEventEmitter.isEnabled();\n ReactBrowserEventEmitter.setEnabled(false);\n return currentlyEnabled;\n },\n\n /**\n * @param {boolean} previouslyEnabled Enabled status of\n * `ReactBrowserEventEmitter` before the reconciliation occured. `close`\n * restores the previous value.\n */\n close: function(previouslyEnabled) {\n ReactBrowserEventEmitter.setEnabled(previouslyEnabled);\n }\n};\n\n/**\n * Provides a queue for collecting `componentDidMount` and\n * `componentDidUpdate` callbacks during the the transaction.\n */\nvar ON_DOM_READY_QUEUEING = {\n /**\n * Initializes the internal `onDOMReady` queue.\n */\n initialize: function() {\n this.reactMountReady.reset();\n },\n\n /**\n * After DOM is flushed, invoke all registered `onDOMReady` callbacks.\n */\n close: function() {\n this.reactMountReady.notifyAll();\n }\n};\n\nvar PUT_LISTENER_QUEUEING = {\n initialize: function() {\n this.putListenerQueue.reset();\n },\n\n close: function() {\n this.putListenerQueue.putListeners();\n }\n};\n\n/**\n * Executed within the scope of the `Transaction` instance. Consider these as\n * being member methods, but with an implied ordering while being isolated from\n * each other.\n */\nvar TRANSACTION_WRAPPERS = [\n PUT_LISTENER_QUEUEING,\n SELECTION_RESTORATION,\n EVENT_SUPPRESSION,\n ON_DOM_READY_QUEUEING\n];\n\n/**\n * Currently:\n * - The order that these are listed in the transaction is critical:\n * - Suppresses events.\n * - Restores selection range.\n *\n * Future:\n * - Restore document/overflow scroll positions that were unintentionally\n * modified via DOM insertions above the top viewport boundary.\n * - Implement/integrate with customized constraint based layout system and keep\n * track of which dimensions must be remeasured.\n *\n * @class ReactReconcileTransaction\n */\nfunction ReactReconcileTransaction() {\n this.reinitializeTransaction();\n // Only server-side rendering really needs this option (see\n // `ReactServerRendering`), but server-side uses\n // `ReactServerRenderingTransaction` instead. This option is here so that it's\n // accessible and defaults to false when `ReactDOMComponent` and\n // `ReactTextComponent` checks it in `mountComponent`.`\n this.renderToStaticMarkup = false;\n this.reactMountReady = CallbackQueue.getPooled(null);\n this.putListenerQueue = ReactPutListenerQueue.getPooled();\n}\n\nvar Mixin = {\n /**\n * @see Transaction\n * @abstract\n * @final\n * @return {array<object>} List of operation wrap proceedures.\n * TODO: convert to array<TransactionWrapper>\n */\n getTransactionWrappers: function() {\n return TRANSACTION_WRAPPERS;\n },\n\n /**\n * @return {object} The queue to collect `onDOMReady` callbacks with.\n */\n getReactMountReady: function() {\n return this.reactMountReady;\n },\n\n getPutListenerQueue: function() {\n return this.putListenerQueue;\n },\n\n /**\n * `PooledClass` looks for this, and will invoke this before allowing this\n * instance to be resused.\n */\n destructor: function() {\n CallbackQueue.release(this.reactMountReady);\n this.reactMountReady = null;\n\n ReactPutListenerQueue.release(this.putListenerQueue);\n this.putListenerQueue = null;\n }\n};\n\n\nassign(ReactReconcileTransaction.prototype, Transaction.Mixin, Mixin);\n\nPooledClass.addPoolingTo(ReactReconcileTransaction);\n\nmodule.exports = ReactReconcileTransaction;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactReconcileTransaction.js\n ** module id = 126\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactReconcileTransaction.js?");
  1043. /***/ },
  1044. /* 127 */
  1045. /***/ function(module, exports, __webpack_require__) {
  1046. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule setInnerHTML\n */\n\n\"use strict\";\n\nvar ExecutionEnvironment = __webpack_require__(62);\n\nvar WHITESPACE_TEST = /^[ \\r\\n\\t\\f]/;\nvar NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \\r\\n\\t\\f\\/>]/;\n\n/**\n * Set the innerHTML property of a node, ensuring that whitespace is preserved\n * even in IE8.\n *\n * @param {DOMElement} node\n * @param {string} html\n * @internal\n */\nvar setInnerHTML = function(node, html) {\n node.innerHTML = html;\n};\n\nif (ExecutionEnvironment.canUseDOM) {\n // IE8: When updating a just created node with innerHTML only leading\n // whitespace is removed. When updating an existing node with innerHTML\n // whitespace in root TextNodes is also collapsed.\n // @see quirksmode.org/bugreports/archives/2004/11/innerhtml_and_t.html\n\n // Feature detection; only IE8 is known to behave improperly like this.\n var testElement = document.createElement('div');\n testElement.innerHTML = ' ';\n if (testElement.innerHTML === '') {\n setInnerHTML = function(node, html) {\n // Magic theory: IE8 supposedly differentiates between added and updated\n // nodes when processing innerHTML, innerHTML on updated nodes suffers\n // from worse whitespace behavior. Re-adding a node like this triggers\n // the initial and more favorable whitespace behavior.\n // TODO: What to do on a detached node?\n if (node.parentNode) {\n node.parentNode.replaceChild(node, node);\n }\n\n // We also implement a workaround for non-visible tags disappearing into\n // thin air on IE8, this only happens if there is no visible text\n // in-front of the non-visible tags. Piggyback on the whitespace fix\n // and simply check if any non-visible tags appear in the source.\n if (WHITESPACE_TEST.test(html) ||\n html[0] === '<' && NONVISIBLE_TEST.test(html)) {\n // Recover leading whitespace by temporarily prepending any character.\n // \\uFEFF has the potential advantage of being zero-width/invisible.\n node.innerHTML = '\\uFEFF' + html;\n\n // deleteData leaves an empty `TextNode` which offsets the index of all\n // children. Definitely want to avoid this.\n var textNode = node.firstChild;\n if (textNode.data.length === 1) {\n node.removeChild(textNode);\n } else {\n textNode.deleteData(0, 1);\n }\n } else {\n node.innerHTML = html;\n }\n };\n }\n}\n\nmodule.exports = setInnerHTML;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/setInnerHTML.js\n ** module id = 127\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/setInnerHTML.js?");
  1047. /***/ },
  1048. /* 128 */
  1049. /***/ function(module, exports, __webpack_require__) {
  1050. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule AutoFocusMixin\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar focusNode = __webpack_require__(154);\n\nvar AutoFocusMixin = {\n componentDidMount: function() {\n if (this.props.autoFocus) {\n focusNode(this.getDOMNode());\n }\n }\n};\n\nmodule.exports = AutoFocusMixin;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/AutoFocusMixin.js\n ** module id = 128\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/AutoFocusMixin.js?");
  1051. /***/ },
  1052. /* 129 */
  1053. /***/ function(module, exports, __webpack_require__) {
  1054. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule LocalEventTrapMixin\n */\n\n\"use strict\";\n\nvar ReactBrowserEventEmitter = __webpack_require__(17);\n\nvar accumulateInto = __webpack_require__(64);\nvar forEachAccumulated = __webpack_require__(65);\nvar invariant = __webpack_require__(27);\n\nfunction remove(event) {\n event.remove();\n}\n\nvar LocalEventTrapMixin = {\n trapBubbledEvent:function(topLevelType, handlerBaseName) {\n (\"production\" !== process.env.NODE_ENV ? invariant(this.isMounted(), 'Must be mounted to trap events') : invariant(this.isMounted()));\n var listener = ReactBrowserEventEmitter.trapBubbledEvent(\n topLevelType,\n handlerBaseName,\n this.getDOMNode()\n );\n this._localEventListeners =\n accumulateInto(this._localEventListeners, listener);\n },\n\n // trapCapturedEvent would look nearly identical. We don't implement that\n // method because it isn't currently needed.\n\n componentWillUnmount:function() {\n if (this._localEventListeners) {\n forEachAccumulated(this._localEventListeners, remove);\n }\n }\n};\n\nmodule.exports = LocalEventTrapMixin;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/LocalEventTrapMixin.js\n ** module id = 129\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/LocalEventTrapMixin.js?");
  1055. /***/ },
  1056. /* 130 */
  1057. /***/ function(module, exports, __webpack_require__) {
  1058. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule LinkedValueUtils\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar ReactPropTypes = __webpack_require__(58);\n\nvar invariant = __webpack_require__(27);\n\nvar hasReadOnlyValue = {\n 'button': true,\n 'checkbox': true,\n 'image': true,\n 'hidden': true,\n 'radio': true,\n 'reset': true,\n 'submit': true\n};\n\nfunction _assertSingleLink(input) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n input.props.checkedLink == null || input.props.valueLink == null,\n 'Cannot provide a checkedLink and a valueLink. If you want to use ' +\n 'checkedLink, you probably don\\'t want to use valueLink and vice versa.'\n ) : invariant(input.props.checkedLink == null || input.props.valueLink == null));\n}\nfunction _assertValueLink(input) {\n _assertSingleLink(input);\n (\"production\" !== process.env.NODE_ENV ? invariant(\n input.props.value == null && input.props.onChange == null,\n 'Cannot provide a valueLink and a value or onChange event. If you want ' +\n 'to use value or onChange, you probably don\\'t want to use valueLink.'\n ) : invariant(input.props.value == null && input.props.onChange == null));\n}\n\nfunction _assertCheckedLink(input) {\n _assertSingleLink(input);\n (\"production\" !== process.env.NODE_ENV ? invariant(\n input.props.checked == null && input.props.onChange == null,\n 'Cannot provide a checkedLink and a checked property or onChange event. ' +\n 'If you want to use checked or onChange, you probably don\\'t want to ' +\n 'use checkedLink'\n ) : invariant(input.props.checked == null && input.props.onChange == null));\n}\n\n/**\n * @param {SyntheticEvent} e change event to handle\n */\nfunction _handleLinkedValueChange(e) {\n /*jshint validthis:true */\n this.props.valueLink.requestChange(e.target.value);\n}\n\n/**\n * @param {SyntheticEvent} e change event to handle\n */\nfunction _handleLinkedCheckChange(e) {\n /*jshint validthis:true */\n this.props.checkedLink.requestChange(e.target.checked);\n}\n\n/**\n * Provide a linked `value` attribute for controlled forms. You should not use\n * this outside of the ReactDOM controlled form components.\n */\nvar LinkedValueUtils = {\n Mixin: {\n propTypes: {\n value: function(props, propName, componentName) {\n if (!props[propName] ||\n hasReadOnlyValue[props.type] ||\n props.onChange ||\n props.readOnly ||\n props.disabled) {\n return;\n }\n return new Error(\n 'You provided a `value` prop to a form field without an ' +\n '`onChange` handler. This will render a read-only field. If ' +\n 'the field should be mutable use `defaultValue`. Otherwise, ' +\n 'set either `onChange` or `readOnly`.'\n );\n },\n checked: function(props, propName, componentName) {\n if (!props[propName] ||\n props.onChange ||\n props.readOnly ||\n props.disabled) {\n return;\n }\n return new Error(\n 'You provided a `checked` prop to a form field without an ' +\n '`onChange` handler. This will render a read-only field. If ' +\n 'the field should be mutable use `defaultChecked`. Otherwise, ' +\n 'set either `onChange` or `readOnly`.'\n );\n },\n onChange: ReactPropTypes.func\n }\n },\n\n /**\n * @param {ReactComponent} input Form component\n * @return {*} current value of the input either from value prop or link.\n */\n getValue: function(input) {\n if (input.props.valueLink) {\n _assertValueLink(input);\n return input.props.valueLink.value;\n }\n return input.props.value;\n },\n\n /**\n * @param {ReactComponent} input Form component\n * @return {*} current checked status of the input either from checked prop\n * or link.\n */\n getChecked: function(input) {\n if (input.props.checkedLink) {\n _assertCheckedLink(input);\n return input.props.checkedLink.value;\n }\n return input.props.checked;\n },\n\n /**\n * @param {ReactComponent} input Form component\n * @return {function} change callback either from onChange prop or link.\n */\n getOnChange: function(input) {\n if (input.props.valueLink) {\n _assertValueLink(input);\n return _handleLinkedValueChange;\n } else if (input.props.checkedLink) {\n _assertCheckedLink(input);\n return _handleLinkedCheckChange;\n }\n return input.props.onChange;\n }\n};\n\nmodule.exports = LinkedValueUtils;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/LinkedValueUtils.js\n ** module id = 130\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/LinkedValueUtils.js?");
  1059. /***/ },
  1060. /* 131 */
  1061. /***/ function(module, exports, __webpack_require__) {
  1062. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014 Facebook, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @providesModule EventListener\n * @typechecks\n */\n\nvar emptyFunction = __webpack_require__(46);\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n /**\n * Listen to DOM events during the bubble phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n listen: function(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function() {\n target.detachEvent('on' + eventType, callback);\n }\n };\n }\n },\n\n /**\n * Listen to DOM events during the capture phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n capture: function(target, eventType, callback) {\n if (!target.addEventListener) {\n if (\"production\" !== process.env.NODE_ENV) {\n console.error(\n 'Attempted to listen to events during the capture phase on a ' +\n 'browser that does not support the capture phase. Your application ' +\n 'will not receive some events.'\n );\n }\n return {\n remove: emptyFunction\n };\n } else {\n target.addEventListener(eventType, callback, true);\n return {\n remove: function() {\n target.removeEventListener(eventType, callback, true);\n }\n };\n }\n },\n\n registerDefault: function() {}\n};\n\nmodule.exports = EventListener;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/EventListener.js\n ** module id = 131\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/EventListener.js?");
  1063. /***/ },
  1064. /* 132 */
  1065. /***/ function(module, exports, __webpack_require__) {
  1066. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventTarget\n * @typechecks static-only\n */\n\n\"use strict\";\n\n/**\n * Gets the target node from a native browser event by accounting for\n * inconsistencies in browser DOM APIs.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {DOMEventTarget} Target node.\n */\nfunction getEventTarget(nativeEvent) {\n var target = nativeEvent.target || nativeEvent.srcElement || window;\n // Safari may fire events on text nodes (Node.TEXT_NODE is 3).\n // @see http://www.quirksmode.org/js/events_properties.html\n return target.nodeType === 3 ? target.parentNode : target;\n}\n\nmodule.exports = getEventTarget;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/getEventTarget.js\n ** module id = 132\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/getEventTarget.js?");
  1067. /***/ },
  1068. /* 133 */
  1069. /***/ function(module, exports, __webpack_require__) {
  1070. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getActiveElement\n * @typechecks\n */\n\n/**\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\n * not safe to call document.activeElement if there is nothing focused.\n *\n * The activeElement will be null only if the document body is not yet defined.\n */\nfunction getActiveElement() /*?DOMElement*/ {\n try {\n return document.activeElement || document.body;\n } catch (e) {\n return document.body;\n }\n}\n\nmodule.exports = getActiveElement;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/getActiveElement.js\n ** module id = 133\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/getActiveElement.js?");
  1071. /***/ },
  1072. /* 134 */
  1073. /***/ function(module, exports, __webpack_require__) {
  1074. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule shallowEqual\n */\n\n\"use strict\";\n\n/**\n * Performs equality by iterating through keys on an object and returning\n * false when any key has values which are not strictly equal between\n * objA and objB. Returns true when the values of all keys are strictly equal.\n *\n * @return {boolean}\n */\nfunction shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n var key;\n // Test for A's keys different from B.\n for (key in objA) {\n if (objA.hasOwnProperty(key) &&\n (!objB.hasOwnProperty(key) || objA[key] !== objB[key])) {\n return false;\n }\n }\n // Test for B's keys missing from A.\n for (key in objB) {\n if (objB.hasOwnProperty(key) && !objA.hasOwnProperty(key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = shallowEqual;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/shallowEqual.js\n ** module id = 134\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/shallowEqual.js?");
  1075. /***/ },
  1076. /* 135 */
  1077. /***/ function(module, exports, __webpack_require__) {
  1078. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticClipboardEvent\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar SyntheticEvent = __webpack_require__(119);\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/clipboard-apis/\n */\nvar ClipboardEventInterface = {\n clipboardData: function(event) {\n return (\n 'clipboardData' in event ?\n event.clipboardData :\n window.clipboardData\n );\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticClipboardEvent(dispatchConfig, dispatchMarker, nativeEvent) {\n SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent);\n}\n\nSyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface);\n\nmodule.exports = SyntheticClipboardEvent;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SyntheticClipboardEvent.js\n ** module id = 135\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/SyntheticClipboardEvent.js?");
  1079. /***/ },
  1080. /* 136 */
  1081. /***/ function(module, exports, __webpack_require__) {
  1082. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticFocusEvent\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar SyntheticUIEvent = __webpack_require__(140);\n\n/**\n * @interface FocusEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar FocusEventInterface = {\n relatedTarget: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticFocusEvent(dispatchConfig, dispatchMarker, nativeEvent) {\n SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface);\n\nmodule.exports = SyntheticFocusEvent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SyntheticFocusEvent.js\n ** module id = 136\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/SyntheticFocusEvent.js?");
  1083. /***/ },
  1084. /* 137 */
  1085. /***/ function(module, exports, __webpack_require__) {
  1086. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticKeyboardEvent\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar SyntheticUIEvent = __webpack_require__(140);\n\nvar getEventCharCode = __webpack_require__(142);\nvar getEventKey = __webpack_require__(157);\nvar getEventModifierState = __webpack_require__(155);\n\n/**\n * @interface KeyboardEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar KeyboardEventInterface = {\n key: getEventKey,\n location: null,\n ctrlKey: null,\n shiftKey: null,\n altKey: null,\n metaKey: null,\n repeat: null,\n locale: null,\n getModifierState: getEventModifierState,\n // Legacy Interface\n charCode: function(event) {\n // `charCode` is the result of a KeyPress event and represents the value of\n // the actual printable character.\n\n // KeyPress is deprecated, but its replacement is not yet final and not\n // implemented in any major browser. Only KeyPress has charCode.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n return 0;\n },\n keyCode: function(event) {\n // `keyCode` is the result of a KeyDown/Up event and represents the value of\n // physical keyboard key.\n\n // The actual meaning of the value depends on the users' keyboard layout\n // which cannot be detected. Assuming that it is a US keyboard layout\n // provides a surprisingly accurate mapping for US and European users.\n // Due to this, it is left to the user to implement at this time.\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n return 0;\n },\n which: function(event) {\n // `which` is an alias for either `keyCode` or `charCode` depending on the\n // type of the event.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n return 0;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticKeyboardEvent(dispatchConfig, dispatchMarker, nativeEvent) {\n SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface);\n\nmodule.exports = SyntheticKeyboardEvent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SyntheticKeyboardEvent.js\n ** module id = 137\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/SyntheticKeyboardEvent.js?");
  1087. /***/ },
  1088. /* 138 */
  1089. /***/ function(module, exports, __webpack_require__) {
  1090. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticDragEvent\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar SyntheticMouseEvent = __webpack_require__(124);\n\n/**\n * @interface DragEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar DragEventInterface = {\n dataTransfer: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticDragEvent(dispatchConfig, dispatchMarker, nativeEvent) {\n SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface);\n\nmodule.exports = SyntheticDragEvent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SyntheticDragEvent.js\n ** module id = 138\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/SyntheticDragEvent.js?");
  1091. /***/ },
  1092. /* 139 */
  1093. /***/ function(module, exports, __webpack_require__) {
  1094. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticTouchEvent\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar SyntheticUIEvent = __webpack_require__(140);\n\nvar getEventModifierState = __webpack_require__(155);\n\n/**\n * @interface TouchEvent\n * @see http://www.w3.org/TR/touch-events/\n */\nvar TouchEventInterface = {\n touches: null,\n targetTouches: null,\n changedTouches: null,\n altKey: null,\n metaKey: null,\n ctrlKey: null,\n shiftKey: null,\n getModifierState: getEventModifierState\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticTouchEvent(dispatchConfig, dispatchMarker, nativeEvent) {\n SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface);\n\nmodule.exports = SyntheticTouchEvent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SyntheticTouchEvent.js\n ** module id = 139\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/SyntheticTouchEvent.js?");
  1095. /***/ },
  1096. /* 140 */
  1097. /***/ function(module, exports, __webpack_require__) {
  1098. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticUIEvent\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar SyntheticEvent = __webpack_require__(119);\n\nvar getEventTarget = __webpack_require__(132);\n\n/**\n * @interface UIEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar UIEventInterface = {\n view: function(event) {\n if (event.view) {\n return event.view;\n }\n\n var target = getEventTarget(event);\n if (target != null && target.window === target) {\n // target is a window object\n return target;\n }\n\n var doc = target.ownerDocument;\n // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n if (doc) {\n return doc.defaultView || doc.parentWindow;\n } else {\n return window;\n }\n },\n detail: function(event) {\n return event.detail || 0;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent) {\n SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent);\n}\n\nSyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface);\n\nmodule.exports = SyntheticUIEvent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SyntheticUIEvent.js\n ** module id = 140\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/SyntheticUIEvent.js?");
  1099. /***/ },
  1100. /* 141 */
  1101. /***/ function(module, exports, __webpack_require__) {
  1102. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticWheelEvent\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar SyntheticMouseEvent = __webpack_require__(124);\n\n/**\n * @interface WheelEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar WheelEventInterface = {\n deltaX: function(event) {\n return (\n 'deltaX' in event ? event.deltaX :\n // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).\n 'wheelDeltaX' in event ? -event.wheelDeltaX : 0\n );\n },\n deltaY: function(event) {\n return (\n 'deltaY' in event ? event.deltaY :\n // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).\n 'wheelDeltaY' in event ? -event.wheelDeltaY :\n // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).\n 'wheelDelta' in event ? -event.wheelDelta : 0\n );\n },\n deltaZ: null,\n\n // Browsers without \"deltaMode\" is reporting in raw wheel delta where one\n // notch on the scroll is always +/- 120, roughly equivalent to pixels.\n // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or\n // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.\n deltaMode: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticMouseEvent}\n */\nfunction SyntheticWheelEvent(dispatchConfig, dispatchMarker, nativeEvent) {\n SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface);\n\nmodule.exports = SyntheticWheelEvent;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/SyntheticWheelEvent.js\n ** module id = 141\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/SyntheticWheelEvent.js?");
  1103. /***/ },
  1104. /* 142 */
  1105. /***/ function(module, exports, __webpack_require__) {
  1106. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventCharCode\n * @typechecks static-only\n */\n\n\"use strict\";\n\n/**\n * `charCode` represents the actual \"character code\" and is safe to use with\n * `String.fromCharCode`. As such, only keys that correspond to printable\n * characters produce a valid `charCode`, the only exception to this is Enter.\n * The Tab-key is considered non-printable and does not have a `charCode`,\n * presumably because it does not produce a tab-character in browsers.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {string} Normalized `charCode` property.\n */\nfunction getEventCharCode(nativeEvent) {\n var charCode;\n var keyCode = nativeEvent.keyCode;\n\n if ('charCode' in nativeEvent) {\n charCode = nativeEvent.charCode;\n\n // FF does not set `charCode` for the Enter-key, check against `keyCode`.\n if (charCode === 0 && keyCode === 13) {\n charCode = 13;\n }\n } else {\n // IE8 does not implement `charCode`, but `keyCode` has the correct value.\n charCode = keyCode;\n }\n\n // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.\n // Must not discard the (non-)printable Enter-key.\n if (charCode >= 32 || charCode === 13) {\n return charCode;\n }\n\n return 0;\n}\n\nmodule.exports = getEventCharCode;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/getEventCharCode.js\n ** module id = 142\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/getEventCharCode.js?");
  1107. /***/ },
  1108. /* 143 */
  1109. /***/ function(module, exports, __webpack_require__) {
  1110. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultPerfAnalysis\n */\n\nvar assign = __webpack_require__(38);\n\n// Don't try to save users less than 1.2ms (a number I made up)\nvar DONT_CARE_THRESHOLD = 1.2;\nvar DOM_OPERATION_TYPES = {\n 'mountImageIntoNode': 'set innerHTML',\n INSERT_MARKUP: 'set innerHTML',\n MOVE_EXISTING: 'move',\n REMOVE_NODE: 'remove',\n TEXT_CONTENT: 'set textContent',\n 'updatePropertyByID': 'update attribute',\n 'deletePropertyByID': 'delete attribute',\n 'updateStylesByID': 'update styles',\n 'updateInnerHTMLByID': 'set innerHTML',\n 'dangerouslyReplaceNodeWithMarkupByID': 'replace'\n};\n\nfunction getTotalTime(measurements) {\n // TODO: return number of DOM ops? could be misleading.\n // TODO: measure dropped frames after reconcile?\n // TODO: log total time of each reconcile and the top-level component\n // class that triggered it.\n var totalTime = 0;\n for (var i = 0; i < measurements.length; i++) {\n var measurement = measurements[i];\n totalTime += measurement.totalTime;\n }\n return totalTime;\n}\n\nfunction getDOMSummary(measurements) {\n var items = [];\n for (var i = 0; i < measurements.length; i++) {\n var measurement = measurements[i];\n var id;\n\n for (id in measurement.writes) {\n measurement.writes[id].forEach(function(write) {\n items.push({\n id: id,\n type: DOM_OPERATION_TYPES[write.type] || write.type,\n args: write.args\n });\n });\n }\n }\n return items;\n}\n\nfunction getExclusiveSummary(measurements) {\n var candidates = {};\n var displayName;\n\n for (var i = 0; i < measurements.length; i++) {\n var measurement = measurements[i];\n var allIDs = assign(\n {},\n measurement.exclusive,\n measurement.inclusive\n );\n\n for (var id in allIDs) {\n displayName = measurement.displayNames[id].current;\n\n candidates[displayName] = candidates[displayName] || {\n componentName: displayName,\n inclusive: 0,\n exclusive: 0,\n render: 0,\n count: 0\n };\n if (measurement.render[id]) {\n candidates[displayName].render += measurement.render[id];\n }\n if (measurement.exclusive[id]) {\n candidates[displayName].exclusive += measurement.exclusive[id];\n }\n if (measurement.inclusive[id]) {\n candidates[displayName].inclusive += measurement.inclusive[id];\n }\n if (measurement.counts[id]) {\n candidates[displayName].count += measurement.counts[id];\n }\n }\n }\n\n // Now make a sorted array with the results.\n var arr = [];\n for (displayName in candidates) {\n if (candidates[displayName].exclusive >= DONT_CARE_THRESHOLD) {\n arr.push(candidates[displayName]);\n }\n }\n\n arr.sort(function(a, b) {\n return b.exclusive - a.exclusive;\n });\n\n return arr;\n}\n\nfunction getInclusiveSummary(measurements, onlyClean) {\n var candidates = {};\n var inclusiveKey;\n\n for (var i = 0; i < measurements.length; i++) {\n var measurement = measurements[i];\n var allIDs = assign(\n {},\n measurement.exclusive,\n measurement.inclusive\n );\n var cleanComponents;\n\n if (onlyClean) {\n cleanComponents = getUnchangedComponents(measurement);\n }\n\n for (var id in allIDs) {\n if (onlyClean && !cleanComponents[id]) {\n continue;\n }\n\n var displayName = measurement.displayNames[id];\n\n // Inclusive time is not useful for many components without knowing where\n // they are instantiated. So we aggregate inclusive time with both the\n // owner and current displayName as the key.\n inclusiveKey = displayName.owner + ' > ' + displayName.current;\n\n candidates[inclusiveKey] = candidates[inclusiveKey] || {\n componentName: inclusiveKey,\n time: 0,\n count: 0\n };\n\n if (measurement.inclusive[id]) {\n candidates[inclusiveKey].time += measurement.inclusive[id];\n }\n if (measurement.counts[id]) {\n candidates[inclusiveKey].count += measurement.counts[id];\n }\n }\n }\n\n // Now make a sorted array with the results.\n var arr = [];\n for (inclusiveKey in candidates) {\n if (candidates[inclusiveKey].time >= DONT_CARE_THRESHOLD) {\n arr.push(candidates[inclusiveKey]);\n }\n }\n\n arr.sort(function(a, b) {\n return b.time - a.time;\n });\n\n return arr;\n}\n\nfunction getUnchangedComponents(measurement) {\n // For a given reconcile, look at which components did not actually\n // render anything to the DOM and return a mapping of their ID to\n // the amount of time it took to render the entire subtree.\n var cleanComponents = {};\n var dirtyLeafIDs = Object.keys(measurement.writes);\n var allIDs = assign({}, measurement.exclusive, measurement.inclusive);\n\n for (var id in allIDs) {\n var isDirty = false;\n // For each component that rendered, see if a component that triggered\n // a DOM op is in its subtree.\n for (var i = 0; i < dirtyLeafIDs.length; i++) {\n if (dirtyLeafIDs[i].indexOf(id) === 0) {\n isDirty = true;\n break;\n }\n }\n if (!isDirty && measurement.counts[id] > 0) {\n cleanComponents[id] = true;\n }\n }\n return cleanComponents;\n}\n\nvar ReactDefaultPerfAnalysis = {\n getExclusiveSummary: getExclusiveSummary,\n getInclusiveSummary: getInclusiveSummary,\n getDOMSummary: getDOMSummary,\n getTotalTime: getTotalTime\n};\n\nmodule.exports = ReactDefaultPerfAnalysis;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDefaultPerfAnalysis.js\n ** module id = 143\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactDefaultPerfAnalysis.js?");
  1111. /***/ },
  1112. /* 144 */
  1113. /***/ function(module, exports, __webpack_require__) {
  1114. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule performanceNow\n * @typechecks\n */\n\nvar performance = __webpack_require__(158);\n\n/**\n * Detect if we can use `window.performance.now()` and gracefully fallback to\n * `Date.now()` if it doesn't exist. We need to support Firefox < 15 for now\n * because of Facebook's testing infrastructure.\n */\nif (!performance || !performance.now) {\n performance = Date;\n}\n\nvar performanceNow = performance.now.bind(performance);\n\nmodule.exports = performanceNow;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/performanceNow.js\n ** module id = 144\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/performanceNow.js?");
  1115. /***/ },
  1116. /* 145 */
  1117. /***/ function(module, exports, __webpack_require__) {
  1118. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule adler32\n */\n\n/* jslint bitwise:true */\n\n\"use strict\";\n\nvar MOD = 65521;\n\n// This is a clean-room implementation of adler32 designed for detecting\n// if markup is not what we expect it to be. It does not need to be\n// cryptographically strong, only reasonably good at detecting if markup\n// generated on the server is different than that on the client.\nfunction adler32(data) {\n var a = 1;\n var b = 0;\n for (var i = 0; i < data.length; i++) {\n a = (a + data.charCodeAt(i)) % MOD;\n b = (b + a) % MOD;\n }\n return a | (b << 16);\n}\n\nmodule.exports = adler32;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/adler32.js\n ** module id = 145\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/adler32.js?");
  1119. /***/ },
  1120. /* 146 */
  1121. /***/ function(module, exports, __webpack_require__) {
  1122. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPutListenerQueue\n */\n\n\"use strict\";\n\nvar PooledClass = __webpack_require__(72);\nvar ReactBrowserEventEmitter = __webpack_require__(17);\n\nvar assign = __webpack_require__(38);\n\nfunction ReactPutListenerQueue() {\n this.listenersToPut = [];\n}\n\nassign(ReactPutListenerQueue.prototype, {\n enqueuePutListener: function(rootNodeID, propKey, propValue) {\n this.listenersToPut.push({\n rootNodeID: rootNodeID,\n propKey: propKey,\n propValue: propValue\n });\n },\n\n putListeners: function() {\n for (var i = 0; i < this.listenersToPut.length; i++) {\n var listenerToPut = this.listenersToPut[i];\n ReactBrowserEventEmitter.putListener(\n listenerToPut.rootNodeID,\n listenerToPut.propKey,\n listenerToPut.propValue\n );\n }\n },\n\n reset: function() {\n this.listenersToPut.length = 0;\n },\n\n destructor: function() {\n this.reset();\n }\n});\n\nPooledClass.addPoolingTo(ReactPutListenerQueue);\n\nmodule.exports = ReactPutListenerQueue;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactPutListenerQueue.js\n ** module id = 146\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactPutListenerQueue.js?");
  1123. /***/ },
  1124. /* 147 */
  1125. /***/ function(module, exports, __webpack_require__) {
  1126. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CSSProperty\n */\n\n\"use strict\";\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\nvar isUnitlessNumber = {\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexShrink: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n widows: true,\n zIndex: true,\n zoom: true,\n\n // SVG-related properties\n fillOpacity: true,\n strokeOpacity: true\n};\n\n/**\n * @param {string} prefix vendor-specific prefix, eg: Webkit\n * @param {string} key style name, eg: transitionDuration\n * @return {string} style name prefixed with `prefix`, properly camelCased, eg:\n * WebkitTransitionDuration\n */\nfunction prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n}\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\n\n// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an\n// infinite loop, because it iterates over the newly added props too.\nObject.keys(isUnitlessNumber).forEach(function(prop) {\n prefixes.forEach(function(prefix) {\n isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];\n });\n});\n\n/**\n * Most style properties can be unset by doing .style[prop] = '' but IE8\n * doesn't like doing that with shorthand properties so for the properties that\n * IE8 breaks on, which are listed here, we instead unset each of the\n * individual properties. See http://bugs.jquery.com/ticket/12385.\n * The 4-value 'clock' properties like margin, padding, border-width seem to\n * behave without any problems. Curiously, list-style works too without any\n * special prodding.\n */\nvar shorthandPropertyExpansions = {\n background: {\n backgroundImage: true,\n backgroundPosition: true,\n backgroundRepeat: true,\n backgroundColor: true\n },\n border: {\n borderWidth: true,\n borderStyle: true,\n borderColor: true\n },\n borderBottom: {\n borderBottomWidth: true,\n borderBottomStyle: true,\n borderBottomColor: true\n },\n borderLeft: {\n borderLeftWidth: true,\n borderLeftStyle: true,\n borderLeftColor: true\n },\n borderRight: {\n borderRightWidth: true,\n borderRightStyle: true,\n borderRightColor: true\n },\n borderTop: {\n borderTopWidth: true,\n borderTopStyle: true,\n borderTopColor: true\n },\n font: {\n fontStyle: true,\n fontVariant: true,\n fontWeight: true,\n fontSize: true,\n lineHeight: true,\n fontFamily: true\n }\n};\n\nvar CSSProperty = {\n isUnitlessNumber: isUnitlessNumber,\n shorthandPropertyExpansions: shorthandPropertyExpansions\n};\n\nmodule.exports = CSSProperty;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/CSSProperty.js\n ** module id = 147\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/CSSProperty.js?");
  1127. /***/ },
  1128. /* 148 */
  1129. /***/ function(module, exports, __webpack_require__) {
  1130. eval("/**\n * Copyright 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule camelizeStyleName\n * @typechecks\n */\n\n\"use strict\";\n\nvar camelize = __webpack_require__(159);\n\nvar msPattern = /^-ms-/;\n\n/**\n * Camelcases a hyphenated CSS property name, for example:\n *\n * > camelizeStyleName('background-color')\n * < \"backgroundColor\"\n * > camelizeStyleName('-moz-transition')\n * < \"MozTransition\"\n * > camelizeStyleName('-ms-transition')\n * < \"msTransition\"\n *\n * As Andi Smith suggests\n * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n * is converted to lowercase `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelizeStyleName(string) {\n return camelize(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = camelizeStyleName;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/camelizeStyleName.js\n ** module id = 148\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/camelizeStyleName.js?");
  1131. /***/ },
  1132. /* 149 */
  1133. /***/ function(module, exports, __webpack_require__) {
  1134. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule dangerousStyleValue\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar CSSProperty = __webpack_require__(147);\n\nvar isUnitlessNumber = CSSProperty.isUnitlessNumber;\n\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\nfunction dangerousStyleValue(name, value) {\n // Note that we've removed escapeTextForBrowser() calls here since the\n // whole string will be escaped when the attribute is injected into\n // the markup. If you provide unsafe user data here they can inject\n // arbitrary CSS which may be problematic (I couldn't repro this):\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n // This is not an XSS hole but instead a potential CSS injection issue\n // which has lead to a greater discussion about how we're going to\n // trust URLs moving forward. See #2115901\n\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n if (isEmpty) {\n return '';\n }\n\n var isNonNumeric = isNaN(value);\n if (isNonNumeric || value === 0 ||\n isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name]) {\n return '' + value; // cast to string\n }\n\n if (typeof value === 'string') {\n value = value.trim();\n }\n return value + 'px';\n}\n\nmodule.exports = dangerousStyleValue;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/dangerousStyleValue.js\n ** module id = 149\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/dangerousStyleValue.js?");
  1135. /***/ },
  1136. /* 150 */
  1137. /***/ function(module, exports, __webpack_require__) {
  1138. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule hyphenateStyleName\n * @typechecks\n */\n\n\"use strict\";\n\nvar hyphenate = __webpack_require__(160);\n\nvar msPattern = /^ms-/;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}\n\nmodule.exports = hyphenateStyleName;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/hyphenateStyleName.js\n ** module id = 150\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/hyphenateStyleName.js?");
  1139. /***/ },
  1140. /* 151 */
  1141. /***/ function(module, exports, __webpack_require__) {
  1142. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule joinClasses\n * @typechecks static-only\n */\n\n\"use strict\";\n\n/**\n * Combines multiple className strings into one.\n * http://jsperf.com/joinclasses-args-vs-array\n *\n * @param {...?string} classes\n * @return {string}\n */\nfunction joinClasses(className/*, ... */) {\n if (!className) {\n className = '';\n }\n var nextClass;\n var argLength = arguments.length;\n if (argLength > 1) {\n for (var ii = 1; ii < argLength; ii++) {\n nextClass = arguments[ii];\n if (nextClass) {\n className = (className ? className + ' ' : '') + nextClass;\n }\n }\n }\n return className;\n}\n\nmodule.exports = joinClasses;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/joinClasses.js\n ** module id = 151\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/joinClasses.js?");
  1143. /***/ },
  1144. /* 152 */
  1145. /***/ function(module, exports, __webpack_require__) {
  1146. eval("'use strict';\n\n/**\n * Based on https://github.com/facebook/react/blob/master/src/class/ReactClass.js#L637\n */\nfunction bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n\n var componentName = component.constructor.displayName,\n _bind = boundMethod.bind;\n\n boundMethod.bind = function (newThis) {\n var args = Array.prototype.slice.call(arguments, 1);\n if (newThis !== component && newThis !== null) {\n console.warn(\n 'bind(): React component methods may only be bound to the ' +\n 'component instance. See ' + componentName\n );\n } else if (!args.length) {\n console.warn(\n 'bind(): You are binding a component method to the component. ' +\n 'React does this for you automatically in a high-performance ' +\n 'way, so you can safely remove this call. See ' + componentName\n );\n return boundMethod;\n }\n\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n\n return reboundMethod;\n };\n\n return boundMethod;\n}\n\n/**\n * Performs auto-binding similar to how React does it.\n * Skips already auto-bound methods.\n * Based on https://github.com/facebook/react/blob/master/src/class/ReactClass.js#L679.\n */\nmodule.exports = function bindAutoBindMethods(component) {\n for (var autoBindKey in component.__reactAutoBindMap) {\n if (!component.__reactAutoBindMap.hasOwnProperty(autoBindKey)) {\n continue;\n }\n\n // Skip already bound methods\n if (component.hasOwnProperty(autoBindKey) &&\n component[autoBindKey].__reactBoundContext === component) {\n continue;\n }\n\n var method = component.__reactAutoBindMap[autoBindKey];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n};\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react-hot-loader/~/react-hot-api/modules/bindAutoBindMethods.js\n ** module id = 152\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react-hot-loader/~/react-hot-api/modules/bindAutoBindMethods.js?");
  1147. /***/ },
  1148. /* 153 */
  1149. /***/ function(module, exports, __webpack_require__) {
  1150. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMSelection\n */\n\n\"use strict\";\n\nvar ExecutionEnvironment = __webpack_require__(62);\n\nvar getNodeForCharacterOffset = __webpack_require__(162);\nvar getTextContentAccessor = __webpack_require__(123);\n\n/**\n * While `isCollapsed` is available on the Selection object and `collapsed`\n * is available on the Range object, IE11 sometimes gets them wrong.\n * If the anchor/focus nodes and offsets are the same, the range is collapsed.\n */\nfunction isCollapsed(anchorNode, anchorOffset, focusNode, focusOffset) {\n return anchorNode === focusNode && anchorOffset === focusOffset;\n}\n\n/**\n * Get the appropriate anchor and focus node/offset pairs for IE.\n *\n * The catch here is that IE's selection API doesn't provide information\n * about whether the selection is forward or backward, so we have to\n * behave as though it's always forward.\n *\n * IE text differs from modern selection in that it behaves as though\n * block elements end with a new line. This means character offsets will\n * differ between the two APIs.\n *\n * @param {DOMElement} node\n * @return {object}\n */\nfunction getIEOffsets(node) {\n var selection = document.selection;\n var selectedRange = selection.createRange();\n var selectedLength = selectedRange.text.length;\n\n // Duplicate selection so we can move range without breaking user selection.\n var fromStart = selectedRange.duplicate();\n fromStart.moveToElementText(node);\n fromStart.setEndPoint('EndToStart', selectedRange);\n\n var startOffset = fromStart.text.length;\n var endOffset = startOffset + selectedLength;\n\n return {\n start: startOffset,\n end: endOffset\n };\n}\n\n/**\n * @param {DOMElement} node\n * @return {?object}\n */\nfunction getModernOffsets(node) {\n var selection = window.getSelection && window.getSelection();\n\n if (!selection || selection.rangeCount === 0) {\n return null;\n }\n\n var anchorNode = selection.anchorNode;\n var anchorOffset = selection.anchorOffset;\n var focusNode = selection.focusNode;\n var focusOffset = selection.focusOffset;\n\n var currentRange = selection.getRangeAt(0);\n\n // If the node and offset values are the same, the selection is collapsed.\n // `Selection.isCollapsed` is available natively, but IE sometimes gets\n // this value wrong.\n var isSelectionCollapsed = isCollapsed(\n selection.anchorNode,\n selection.anchorOffset,\n selection.focusNode,\n selection.focusOffset\n );\n\n var rangeLength = isSelectionCollapsed ? 0 : currentRange.toString().length;\n\n var tempRange = currentRange.cloneRange();\n tempRange.selectNodeContents(node);\n tempRange.setEnd(currentRange.startContainer, currentRange.startOffset);\n\n var isTempRangeCollapsed = isCollapsed(\n tempRange.startContainer,\n tempRange.startOffset,\n tempRange.endContainer,\n tempRange.endOffset\n );\n\n var start = isTempRangeCollapsed ? 0 : tempRange.toString().length;\n var end = start + rangeLength;\n\n // Detect whether the selection is backward.\n var detectionRange = document.createRange();\n detectionRange.setStart(anchorNode, anchorOffset);\n detectionRange.setEnd(focusNode, focusOffset);\n var isBackward = detectionRange.collapsed;\n\n return {\n start: isBackward ? end : start,\n end: isBackward ? start : end\n };\n}\n\n/**\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\nfunction setIEOffsets(node, offsets) {\n var range = document.selection.createRange().duplicate();\n var start, end;\n\n if (typeof offsets.end === 'undefined') {\n start = offsets.start;\n end = start;\n } else if (offsets.start > offsets.end) {\n start = offsets.end;\n end = offsets.start;\n } else {\n start = offsets.start;\n end = offsets.end;\n }\n\n range.moveToElementText(node);\n range.moveStart('character', start);\n range.setEndPoint('EndToStart', range);\n range.moveEnd('character', end - start);\n range.select();\n}\n\n/**\n * In modern non-IE browsers, we can support both forward and backward\n * selections.\n *\n * Note: IE10+ supports the Selection object, but it does not support\n * the `extend` method, which means that even in modern IE, it's not possible\n * to programatically create a backward selection. Thus, for all IE\n * versions, we use the old IE API to create our selections.\n *\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\nfunction setModernOffsets(node, offsets) {\n if (!window.getSelection) {\n return;\n }\n\n var selection = window.getSelection();\n var length = node[getTextContentAccessor()].length;\n var start = Math.min(offsets.start, length);\n var end = typeof offsets.end === 'undefined' ?\n start : Math.min(offsets.end, length);\n\n // IE 11 uses modern selection, but doesn't support the extend method.\n // Flip backward selections, so we can set with a single range.\n if (!selection.extend && start > end) {\n var temp = end;\n end = start;\n start = temp;\n }\n\n var startMarker = getNodeForCharacterOffset(node, start);\n var endMarker = getNodeForCharacterOffset(node, end);\n\n if (startMarker && endMarker) {\n var range = document.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n\n if (start > end) {\n selection.addRange(range);\n selection.extend(endMarker.node, endMarker.offset);\n } else {\n range.setEnd(endMarker.node, endMarker.offset);\n selection.addRange(range);\n }\n }\n}\n\nvar useIEOffsets = ExecutionEnvironment.canUseDOM && document.selection;\n\nvar ReactDOMSelection = {\n /**\n * @param {DOMElement} node\n */\n getOffsets: useIEOffsets ? getIEOffsets : getModernOffsets,\n\n /**\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\n setOffsets: useIEOffsets ? setIEOffsets : setModernOffsets\n};\n\nmodule.exports = ReactDOMSelection;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/ReactDOMSelection.js\n ** module id = 153\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/ReactDOMSelection.js?");
  1151. /***/ },
  1152. /* 154 */
  1153. /***/ function(module, exports, __webpack_require__) {
  1154. eval("/**\n * Copyright 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule focusNode\n */\n\n\"use strict\";\n\n/**\n * @param {DOMElement} node input/textarea to focus\n */\nfunction focusNode(node) {\n // IE8 can throw \"Can't move focus to the control because it is invisible,\n // not enabled, or of a type that does not accept the focus.\" for all kinds of\n // reasons that are too expensive and fragile to test.\n try {\n node.focus();\n } catch(e) {\n }\n}\n\nmodule.exports = focusNode;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/focusNode.js\n ** module id = 154\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/focusNode.js?");
  1155. /***/ },
  1156. /* 155 */
  1157. /***/ function(module, exports, __webpack_require__) {
  1158. eval("/**\n * Copyright 2013 Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventModifierState\n * @typechecks static-only\n */\n\n\"use strict\";\n\n/**\n * Translation from modifier key to the associated property in the event.\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers\n */\n\nvar modifierKeyToProp = {\n 'Alt': 'altKey',\n 'Control': 'ctrlKey',\n 'Meta': 'metaKey',\n 'Shift': 'shiftKey'\n};\n\n// IE8 does not implement getModifierState so we simply map it to the only\n// modifier keys exposed by the event itself, does not support Lock-keys.\n// Currently, all major browsers except Chrome seems to support Lock-keys.\nfunction modifierStateGetter(keyArg) {\n /*jshint validthis:true */\n var syntheticEvent = this;\n var nativeEvent = syntheticEvent.nativeEvent;\n if (nativeEvent.getModifierState) {\n return nativeEvent.getModifierState(keyArg);\n }\n var keyProp = modifierKeyToProp[keyArg];\n return keyProp ? !!nativeEvent[keyProp] : false;\n}\n\nfunction getEventModifierState(nativeEvent) {\n return modifierStateGetter;\n}\n\nmodule.exports = getEventModifierState;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/getEventModifierState.js\n ** module id = 155\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/getEventModifierState.js?");
  1159. /***/ },
  1160. /* 156 */
  1161. /***/ function(module, exports, __webpack_require__) {
  1162. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMChildrenOperations\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar Danger = __webpack_require__(161);\nvar ReactMultiChildUpdateTypes = __webpack_require__(105);\n\nvar getTextContentAccessor = __webpack_require__(123);\nvar invariant = __webpack_require__(27);\n\n/**\n * The DOM property to use when setting text content.\n *\n * @type {string}\n * @private\n */\nvar textContentAccessor = getTextContentAccessor();\n\n/**\n * Inserts `childNode` as a child of `parentNode` at the `index`.\n *\n * @param {DOMElement} parentNode Parent node in which to insert.\n * @param {DOMElement} childNode Child node to insert.\n * @param {number} index Index at which to insert the child.\n * @internal\n */\nfunction insertChildAt(parentNode, childNode, index) {\n // By exploiting arrays returning `undefined` for an undefined index, we can\n // rely exclusively on `insertBefore(node, null)` instead of also using\n // `appendChild(node)`. However, using `undefined` is not allowed by all\n // browsers so we must replace it with `null`.\n parentNode.insertBefore(\n childNode,\n parentNode.childNodes[index] || null\n );\n}\n\nvar updateTextContent;\nif (textContentAccessor === 'textContent') {\n /**\n * Sets the text content of `node` to `text`.\n *\n * @param {DOMElement} node Node to change\n * @param {string} text New text content\n */\n updateTextContent = function(node, text) {\n node.textContent = text;\n };\n} else {\n /**\n * Sets the text content of `node` to `text`.\n *\n * @param {DOMElement} node Node to change\n * @param {string} text New text content\n */\n updateTextContent = function(node, text) {\n // In order to preserve newlines correctly, we can't use .innerText to set\n // the contents (see #1080), so we empty the element then append a text node\n while (node.firstChild) {\n node.removeChild(node.firstChild);\n }\n if (text) {\n var doc = node.ownerDocument || document;\n node.appendChild(doc.createTextNode(text));\n }\n };\n}\n\n/**\n * Operations for updating with DOM children.\n */\nvar DOMChildrenOperations = {\n\n dangerouslyReplaceNodeWithMarkup: Danger.dangerouslyReplaceNodeWithMarkup,\n\n updateTextContent: updateTextContent,\n\n /**\n * Updates a component's children by processing a series of updates. The\n * update configurations are each expected to have a `parentNode` property.\n *\n * @param {array<object>} updates List of update configurations.\n * @param {array<string>} markupList List of markup strings.\n * @internal\n */\n processUpdates: function(updates, markupList) {\n var update;\n // Mapping from parent IDs to initial child orderings.\n var initialChildren = null;\n // List of children that will be moved or removed.\n var updatedChildren = null;\n\n for (var i = 0; update = updates[i]; i++) {\n if (update.type === ReactMultiChildUpdateTypes.MOVE_EXISTING ||\n update.type === ReactMultiChildUpdateTypes.REMOVE_NODE) {\n var updatedIndex = update.fromIndex;\n var updatedChild = update.parentNode.childNodes[updatedIndex];\n var parentID = update.parentID;\n\n (\"production\" !== process.env.NODE_ENV ? invariant(\n updatedChild,\n 'processUpdates(): Unable to find child %s of element. This ' +\n 'probably means the DOM was unexpectedly mutated (e.g., by the ' +\n 'browser), usually due to forgetting a <tbody> when using tables, ' +\n 'nesting tags like <form>, <p>, or <a>, or using non-SVG elements '+\n 'in an <svg> parent. Try inspecting the child nodes of the element ' +\n 'with React ID `%s`.',\n updatedIndex,\n parentID\n ) : invariant(updatedChild));\n\n initialChildren = initialChildren || {};\n initialChildren[parentID] = initialChildren[parentID] || [];\n initialChildren[parentID][updatedIndex] = updatedChild;\n\n updatedChildren = updatedChildren || [];\n updatedChildren.push(updatedChild);\n }\n }\n\n var renderedMarkup = Danger.dangerouslyRenderMarkup(markupList);\n\n // Remove updated children first so that `toIndex` is consistent.\n if (updatedChildren) {\n for (var j = 0; j < updatedChildren.length; j++) {\n updatedChildren[j].parentNode.removeChild(updatedChildren[j]);\n }\n }\n\n for (var k = 0; update = updates[k]; k++) {\n switch (update.type) {\n case ReactMultiChildUpdateTypes.INSERT_MARKUP:\n insertChildAt(\n update.parentNode,\n renderedMarkup[update.markupIndex],\n update.toIndex\n );\n break;\n case ReactMultiChildUpdateTypes.MOVE_EXISTING:\n insertChildAt(\n update.parentNode,\n initialChildren[update.parentID][update.fromIndex],\n update.toIndex\n );\n break;\n case ReactMultiChildUpdateTypes.TEXT_CONTENT:\n updateTextContent(\n update.parentNode,\n update.textContent\n );\n break;\n case ReactMultiChildUpdateTypes.REMOVE_NODE:\n // Already removed by the for-loop above.\n break;\n }\n }\n }\n\n};\n\nmodule.exports = DOMChildrenOperations;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/DOMChildrenOperations.js\n ** module id = 156\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/DOMChildrenOperations.js?");
  1163. /***/ },
  1164. /* 157 */
  1165. /***/ function(module, exports, __webpack_require__) {
  1166. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventKey\n * @typechecks static-only\n */\n\n\"use strict\";\n\nvar getEventCharCode = __webpack_require__(142);\n\n/**\n * Normalization of deprecated HTML5 `key` values\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar normalizeKey = {\n 'Esc': 'Escape',\n 'Spacebar': ' ',\n 'Left': 'ArrowLeft',\n 'Up': 'ArrowUp',\n 'Right': 'ArrowRight',\n 'Down': 'ArrowDown',\n 'Del': 'Delete',\n 'Win': 'OS',\n 'Menu': 'ContextMenu',\n 'Apps': 'ContextMenu',\n 'Scroll': 'ScrollLock',\n 'MozPrintableKey': 'Unidentified'\n};\n\n/**\n * Translation from legacy `keyCode` to HTML5 `key`\n * Only special keys supported, all others depend on keyboard layout or browser\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar translateToKey = {\n 8: 'Backspace',\n 9: 'Tab',\n 12: 'Clear',\n 13: 'Enter',\n 16: 'Shift',\n 17: 'Control',\n 18: 'Alt',\n 19: 'Pause',\n 20: 'CapsLock',\n 27: 'Escape',\n 32: ' ',\n 33: 'PageUp',\n 34: 'PageDown',\n 35: 'End',\n 36: 'Home',\n 37: 'ArrowLeft',\n 38: 'ArrowUp',\n 39: 'ArrowRight',\n 40: 'ArrowDown',\n 45: 'Insert',\n 46: 'Delete',\n 112: 'F1', 113: 'F2', 114: 'F3', 115: 'F4', 116: 'F5', 117: 'F6',\n 118: 'F7', 119: 'F8', 120: 'F9', 121: 'F10', 122: 'F11', 123: 'F12',\n 144: 'NumLock',\n 145: 'ScrollLock',\n 224: 'Meta'\n};\n\n/**\n * @param {object} nativeEvent Native browser event.\n * @return {string} Normalized `key` property.\n */\nfunction getEventKey(nativeEvent) {\n if (nativeEvent.key) {\n // Normalize inconsistent values reported by browsers due to\n // implementations of a working draft specification.\n\n // FireFox implements `key` but returns `MozPrintableKey` for all\n // printable characters (normalized to `Unidentified`), ignore it.\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (key !== 'Unidentified') {\n return key;\n }\n }\n\n // Browser does not implement `key`, polyfill as much of it as we can.\n if (nativeEvent.type === 'keypress') {\n var charCode = getEventCharCode(nativeEvent);\n\n // The enter-key is technically both printable and non-printable and can\n // thus be captured by `keypress`, no other non-printable key should.\n return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n }\n if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {\n // While user keyboard layout determines the actual meaning of each\n // `keyCode` value, almost all function keys have a universal value.\n return translateToKey[nativeEvent.keyCode] || 'Unidentified';\n }\n return '';\n}\n\nmodule.exports = getEventKey;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/getEventKey.js\n ** module id = 157\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/getEventKey.js?");
  1167. /***/ },
  1168. /* 158 */
  1169. /***/ function(module, exports, __webpack_require__) {
  1170. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule performance\n * @typechecks\n */\n\n\"use strict\";\n\nvar ExecutionEnvironment = __webpack_require__(62);\n\nvar performance;\n\nif (ExecutionEnvironment.canUseDOM) {\n performance =\n window.performance ||\n window.msPerformance ||\n window.webkitPerformance;\n}\n\nmodule.exports = performance || {};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/performance.js\n ** module id = 158\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/performance.js?");
  1171. /***/ },
  1172. /* 159 */
  1173. /***/ function(module, exports, __webpack_require__) {
  1174. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule camelize\n * @typechecks\n */\n\nvar _hyphenPattern = /-(.)/g;\n\n/**\n * Camelcases a hyphenated string, for example:\n *\n * > camelize('background-color')\n * < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelize(string) {\n return string.replace(_hyphenPattern, function(_, character) {\n return character.toUpperCase();\n });\n}\n\nmodule.exports = camelize;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/camelize.js\n ** module id = 159\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/camelize.js?");
  1175. /***/ },
  1176. /* 160 */
  1177. /***/ function(module, exports, __webpack_require__) {
  1178. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule hyphenate\n * @typechecks\n */\n\nvar _uppercasePattern = /([A-Z])/g;\n\n/**\n * Hyphenates a camelcased string, for example:\n *\n * > hyphenate('backgroundColor')\n * < \"background-color\"\n *\n * For CSS style names, use `hyphenateStyleName` instead which works properly\n * with all vendor prefixes, including `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenate(string) {\n return string.replace(_uppercasePattern, '-$1').toLowerCase();\n}\n\nmodule.exports = hyphenate;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/hyphenate.js\n ** module id = 160\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/hyphenate.js?");
  1179. /***/ },
  1180. /* 161 */
  1181. /***/ function(module, exports, __webpack_require__) {
  1182. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Danger\n * @typechecks static-only\n */\n\n/*jslint evil: true, sub: true */\n\n\"use strict\";\n\nvar ExecutionEnvironment = __webpack_require__(62);\n\nvar createNodesFromMarkup = __webpack_require__(163);\nvar emptyFunction = __webpack_require__(46);\nvar getMarkupWrap = __webpack_require__(164);\nvar invariant = __webpack_require__(27);\n\nvar OPEN_TAG_NAME_EXP = /^(<[^ \\/>]+)/;\nvar RESULT_INDEX_ATTR = 'data-danger-index';\n\n/**\n * Extracts the `nodeName` from a string of markup.\n *\n * NOTE: Extracting the `nodeName` does not require a regular expression match\n * because we make assumptions about React-generated markup (i.e. there are no\n * spaces surrounding the opening tag and there is at least one attribute).\n *\n * @param {string} markup String of markup.\n * @return {string} Node name of the supplied markup.\n * @see http://jsperf.com/extract-nodename\n */\nfunction getNodeName(markup) {\n return markup.substring(1, markup.indexOf(' '));\n}\n\nvar Danger = {\n\n /**\n * Renders markup into an array of nodes. The markup is expected to render\n * into a list of root nodes. Also, the length of `resultList` and\n * `markupList` should be the same.\n *\n * @param {array<string>} markupList List of markup strings to render.\n * @return {array<DOMElement>} List of rendered nodes.\n * @internal\n */\n dangerouslyRenderMarkup: function(markupList) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n ExecutionEnvironment.canUseDOM,\n 'dangerouslyRenderMarkup(...): Cannot render markup in a worker ' +\n 'thread. Make sure `window` and `document` are available globally ' +\n 'before requiring React when unit testing or use ' +\n 'React.renderToString for server rendering.'\n ) : invariant(ExecutionEnvironment.canUseDOM));\n var nodeName;\n var markupByNodeName = {};\n // Group markup by `nodeName` if a wrap is necessary, else by '*'.\n for (var i = 0; i < markupList.length; i++) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n markupList[i],\n 'dangerouslyRenderMarkup(...): Missing markup.'\n ) : invariant(markupList[i]));\n nodeName = getNodeName(markupList[i]);\n nodeName = getMarkupWrap(nodeName) ? nodeName : '*';\n markupByNodeName[nodeName] = markupByNodeName[nodeName] || [];\n markupByNodeName[nodeName][i] = markupList[i];\n }\n var resultList = [];\n var resultListAssignmentCount = 0;\n for (nodeName in markupByNodeName) {\n if (!markupByNodeName.hasOwnProperty(nodeName)) {\n continue;\n }\n var markupListByNodeName = markupByNodeName[nodeName];\n\n // This for-in loop skips the holes of the sparse array. The order of\n // iteration should follow the order of assignment, which happens to match\n // numerical index order, but we don't rely on that.\n for (var resultIndex in markupListByNodeName) {\n if (markupListByNodeName.hasOwnProperty(resultIndex)) {\n var markup = markupListByNodeName[resultIndex];\n\n // Push the requested markup with an additional RESULT_INDEX_ATTR\n // attribute. If the markup does not start with a < character, it\n // will be discarded below (with an appropriate console.error).\n markupListByNodeName[resultIndex] = markup.replace(\n OPEN_TAG_NAME_EXP,\n // This index will be parsed back out below.\n '$1 ' + RESULT_INDEX_ATTR + '=\"' + resultIndex + '\" '\n );\n }\n }\n\n // Render each group of markup with similar wrapping `nodeName`.\n var renderNodes = createNodesFromMarkup(\n markupListByNodeName.join(''),\n emptyFunction // Do nothing special with <script> tags.\n );\n\n for (i = 0; i < renderNodes.length; ++i) {\n var renderNode = renderNodes[i];\n if (renderNode.hasAttribute &&\n renderNode.hasAttribute(RESULT_INDEX_ATTR)) {\n\n resultIndex = +renderNode.getAttribute(RESULT_INDEX_ATTR);\n renderNode.removeAttribute(RESULT_INDEX_ATTR);\n\n (\"production\" !== process.env.NODE_ENV ? invariant(\n !resultList.hasOwnProperty(resultIndex),\n 'Danger: Assigning to an already-occupied result index.'\n ) : invariant(!resultList.hasOwnProperty(resultIndex)));\n\n resultList[resultIndex] = renderNode;\n\n // This should match resultList.length and markupList.length when\n // we're done.\n resultListAssignmentCount += 1;\n\n } else if (\"production\" !== process.env.NODE_ENV) {\n console.error(\n \"Danger: Discarding unexpected node:\",\n renderNode\n );\n }\n }\n }\n\n // Although resultList was populated out of order, it should now be a dense\n // array.\n (\"production\" !== process.env.NODE_ENV ? invariant(\n resultListAssignmentCount === resultList.length,\n 'Danger: Did not assign to every index of resultList.'\n ) : invariant(resultListAssignmentCount === resultList.length));\n\n (\"production\" !== process.env.NODE_ENV ? invariant(\n resultList.length === markupList.length,\n 'Danger: Expected markup to render %s nodes, but rendered %s.',\n markupList.length,\n resultList.length\n ) : invariant(resultList.length === markupList.length));\n\n return resultList;\n },\n\n /**\n * Replaces a node with a string of markup at its current position within its\n * parent. The markup must render into a single root node.\n *\n * @param {DOMElement} oldChild Child node to replace.\n * @param {string} markup Markup to render in place of the child node.\n * @internal\n */\n dangerouslyReplaceNodeWithMarkup: function(oldChild, markup) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n ExecutionEnvironment.canUseDOM,\n 'dangerouslyReplaceNodeWithMarkup(...): Cannot render markup in a ' +\n 'worker thread. Make sure `window` and `document` are available ' +\n 'globally before requiring React when unit testing or use ' +\n 'React.renderToString for server rendering.'\n ) : invariant(ExecutionEnvironment.canUseDOM));\n (\"production\" !== process.env.NODE_ENV ? invariant(markup, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : invariant(markup));\n (\"production\" !== process.env.NODE_ENV ? invariant(\n oldChild.tagName.toLowerCase() !== 'html',\n 'dangerouslyReplaceNodeWithMarkup(...): Cannot replace markup of the ' +\n '<html> node. This is because browser quirks make this unreliable ' +\n 'and/or slow. If you want to render to the root you must use ' +\n 'server rendering. See renderComponentToString().'\n ) : invariant(oldChild.tagName.toLowerCase() !== 'html'));\n\n var newChild = createNodesFromMarkup(markup, emptyFunction)[0];\n oldChild.parentNode.replaceChild(newChild, oldChild);\n }\n\n};\n\nmodule.exports = Danger;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/Danger.js\n ** module id = 161\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/Danger.js?");
  1183. /***/ },
  1184. /* 162 */
  1185. /***/ function(module, exports, __webpack_require__) {
  1186. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getNodeForCharacterOffset\n */\n\n\"use strict\";\n\n/**\n * Given any node return the first leaf node without children.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {DOMElement|DOMTextNode}\n */\nfunction getLeafNode(node) {\n while (node && node.firstChild) {\n node = node.firstChild;\n }\n return node;\n}\n\n/**\n * Get the next sibling within a container. This will walk up the\n * DOM if a node's siblings have been exhausted.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {?DOMElement|DOMTextNode}\n */\nfunction getSiblingNode(node) {\n while (node) {\n if (node.nextSibling) {\n return node.nextSibling;\n }\n node = node.parentNode;\n }\n}\n\n/**\n * Get object describing the nodes which contain characters at offset.\n *\n * @param {DOMElement|DOMTextNode} root\n * @param {number} offset\n * @return {?object}\n */\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n var nodeStart = 0;\n var nodeEnd = 0;\n\n while (node) {\n if (node.nodeType == 3) {\n nodeEnd = nodeStart + node.textContent.length;\n\n if (nodeStart <= offset && nodeEnd >= offset) {\n return {\n node: node,\n offset: offset - nodeStart\n };\n }\n\n nodeStart = nodeEnd;\n }\n\n node = getLeafNode(getSiblingNode(node));\n }\n}\n\nmodule.exports = getNodeForCharacterOffset;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/getNodeForCharacterOffset.js\n ** module id = 162\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/getNodeForCharacterOffset.js?");
  1187. /***/ },
  1188. /* 163 */
  1189. /***/ function(module, exports, __webpack_require__) {
  1190. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule createNodesFromMarkup\n * @typechecks\n */\n\n/*jslint evil: true, sub: true */\n\nvar ExecutionEnvironment = __webpack_require__(62);\n\nvar createArrayFrom = __webpack_require__(165);\nvar getMarkupWrap = __webpack_require__(164);\nvar invariant = __webpack_require__(27);\n\n/**\n * Dummy container used to render all markup.\n */\nvar dummyNode =\n ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Pattern used by `getNodeName`.\n */\nvar nodeNamePattern = /^\\s*<(\\w+)/;\n\n/**\n * Extracts the `nodeName` of the first element in a string of markup.\n *\n * @param {string} markup String of markup.\n * @return {?string} Node name of the supplied markup.\n */\nfunction getNodeName(markup) {\n var nodeNameMatch = markup.match(nodeNamePattern);\n return nodeNameMatch && nodeNameMatch[1].toLowerCase();\n}\n\n/**\n * Creates an array containing the nodes rendered from the supplied markup. The\n * optionally supplied `handleScript` function will be invoked once for each\n * <script> element that is rendered. If no `handleScript` function is supplied,\n * an exception is thrown if any <script> elements are rendered.\n *\n * @param {string} markup A string of valid HTML markup.\n * @param {?function} handleScript Invoked once for each rendered <script>.\n * @return {array<DOMElement|DOMTextNode>} An array of rendered nodes.\n */\nfunction createNodesFromMarkup(markup, handleScript) {\n var node = dummyNode;\n (\"production\" !== process.env.NODE_ENV ? invariant(!!dummyNode, 'createNodesFromMarkup dummy not initialized') : invariant(!!dummyNode));\n var nodeName = getNodeName(markup);\n\n var wrap = nodeName && getMarkupWrap(nodeName);\n if (wrap) {\n node.innerHTML = wrap[1] + markup + wrap[2];\n\n var wrapDepth = wrap[0];\n while (wrapDepth--) {\n node = node.lastChild;\n }\n } else {\n node.innerHTML = markup;\n }\n\n var scripts = node.getElementsByTagName('script');\n if (scripts.length) {\n (\"production\" !== process.env.NODE_ENV ? invariant(\n handleScript,\n 'createNodesFromMarkup(...): Unexpected <script> element rendered.'\n ) : invariant(handleScript));\n createArrayFrom(scripts).forEach(handleScript);\n }\n\n var nodes = createArrayFrom(node.childNodes);\n while (node.lastChild) {\n node.removeChild(node.lastChild);\n }\n return nodes;\n}\n\nmodule.exports = createNodesFromMarkup;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/createNodesFromMarkup.js\n ** module id = 163\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/createNodesFromMarkup.js?");
  1191. /***/ },
  1192. /* 164 */
  1193. /***/ function(module, exports, __webpack_require__) {
  1194. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getMarkupWrap\n */\n\nvar ExecutionEnvironment = __webpack_require__(62);\n\nvar invariant = __webpack_require__(27);\n\n/**\n * Dummy container used to detect which wraps are necessary.\n */\nvar dummyNode =\n ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Some browsers cannot use `innerHTML` to render certain elements standalone,\n * so we wrap them, render the wrapped nodes, then extract the desired node.\n *\n * In IE8, certain elements cannot render alone, so wrap all elements ('*').\n */\nvar shouldWrap = {\n // Force wrapping for SVG elements because if they get created inside a <div>,\n // they will be initialized in the wrong namespace (and will not display).\n 'circle': true,\n 'defs': true,\n 'ellipse': true,\n 'g': true,\n 'line': true,\n 'linearGradient': true,\n 'path': true,\n 'polygon': true,\n 'polyline': true,\n 'radialGradient': true,\n 'rect': true,\n 'stop': true,\n 'text': true\n};\n\nvar selectWrap = [1, '<select multiple=\"true\">', '</select>'];\nvar tableWrap = [1, '<table>', '</table>'];\nvar trWrap = [3, '<table><tbody><tr>', '</tr></tbody></table>'];\n\nvar svgWrap = [1, '<svg>', '</svg>'];\n\nvar markupWrap = {\n '*': [1, '?<div>', '</div>'],\n\n 'area': [1, '<map>', '</map>'],\n 'col': [2, '<table><tbody></tbody><colgroup>', '</colgroup></table>'],\n 'legend': [1, '<fieldset>', '</fieldset>'],\n 'param': [1, '<object>', '</object>'],\n 'tr': [2, '<table><tbody>', '</tbody></table>'],\n\n 'optgroup': selectWrap,\n 'option': selectWrap,\n\n 'caption': tableWrap,\n 'colgroup': tableWrap,\n 'tbody': tableWrap,\n 'tfoot': tableWrap,\n 'thead': tableWrap,\n\n 'td': trWrap,\n 'th': trWrap,\n\n 'circle': svgWrap,\n 'defs': svgWrap,\n 'ellipse': svgWrap,\n 'g': svgWrap,\n 'line': svgWrap,\n 'linearGradient': svgWrap,\n 'path': svgWrap,\n 'polygon': svgWrap,\n 'polyline': svgWrap,\n 'radialGradient': svgWrap,\n 'rect': svgWrap,\n 'stop': svgWrap,\n 'text': svgWrap\n};\n\n/**\n * Gets the markup wrap configuration for the supplied `nodeName`.\n *\n * NOTE: This lazily detects which wraps are necessary for the current browser.\n *\n * @param {string} nodeName Lowercase `nodeName`.\n * @return {?array} Markup wrap configuration, if applicable.\n */\nfunction getMarkupWrap(nodeName) {\n (\"production\" !== process.env.NODE_ENV ? invariant(!!dummyNode, 'Markup wrapping node not initialized') : invariant(!!dummyNode));\n if (!markupWrap.hasOwnProperty(nodeName)) {\n nodeName = '*';\n }\n if (!shouldWrap.hasOwnProperty(nodeName)) {\n if (nodeName === '*') {\n dummyNode.innerHTML = '<link />';\n } else {\n dummyNode.innerHTML = '<' + nodeName + '></' + nodeName + '>';\n }\n shouldWrap[nodeName] = !dummyNode.firstChild;\n }\n return shouldWrap[nodeName] ? markupWrap[nodeName] : null;\n}\n\n\nmodule.exports = getMarkupWrap;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/getMarkupWrap.js\n ** module id = 164\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/getMarkupWrap.js?");
  1195. /***/ },
  1196. /* 165 */
  1197. /***/ function(module, exports, __webpack_require__) {
  1198. eval("/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule createArrayFrom\n * @typechecks\n */\n\nvar toArray = __webpack_require__(166);\n\n/**\n * Perform a heuristic test to determine if an object is \"array-like\".\n *\n * A monk asked Joshu, a Zen master, \"Has a dog Buddha nature?\"\n * Joshu replied: \"Mu.\"\n *\n * This function determines if its argument has \"array nature\": it returns\n * true if the argument is an actual array, an `arguments' object, or an\n * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).\n *\n * It will return false for other array-like objects like Filelist.\n *\n * @param {*} obj\n * @return {boolean}\n */\nfunction hasArrayNature(obj) {\n return (\n // not null/false\n !!obj &&\n // arrays are objects, NodeLists are functions in Safari\n (typeof obj == 'object' || typeof obj == 'function') &&\n // quacks like an array\n ('length' in obj) &&\n // not window\n !('setInterval' in obj) &&\n // no DOM node should be considered an array-like\n // a 'select' element has 'length' and 'item' properties on IE8\n (typeof obj.nodeType != 'number') &&\n (\n // a real array\n (// HTMLCollection/NodeList\n (Array.isArray(obj) ||\n // arguments\n ('callee' in obj) || 'item' in obj))\n )\n );\n}\n\n/**\n * Ensure that the argument is an array by wrapping it in an array if it is not.\n * Creates a copy of the argument if it is already an array.\n *\n * This is mostly useful idiomatically:\n *\n * var createArrayFrom = require('createArrayFrom');\n *\n * function takesOneOrMoreThings(things) {\n * things = createArrayFrom(things);\n * ...\n * }\n *\n * This allows you to treat `things' as an array, but accept scalars in the API.\n *\n * If you need to convert an array-like object, like `arguments`, into an array\n * use toArray instead.\n *\n * @param {*} obj\n * @return {array}\n */\nfunction createArrayFrom(obj) {\n if (!hasArrayNature(obj)) {\n return [obj];\n } else if (Array.isArray(obj)) {\n return obj.slice();\n } else {\n return toArray(obj);\n }\n}\n\nmodule.exports = createArrayFrom;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/createArrayFrom.js\n ** module id = 165\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/createArrayFrom.js?");
  1199. /***/ },
  1200. /* 166 */
  1201. /***/ function(module, exports, __webpack_require__) {
  1202. eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule toArray\n * @typechecks\n */\n\nvar invariant = __webpack_require__(27);\n\n/**\n * Convert array-like objects to arrays.\n *\n * This API assumes the caller knows the contents of the data type. For less\n * well defined inputs use createArrayFrom.\n *\n * @param {object|function|filelist} obj\n * @return {array}\n */\nfunction toArray(obj) {\n var length = obj.length;\n\n // Some browse builtin objects can report typeof 'function' (e.g. NodeList in\n // old versions of Safari).\n (\"production\" !== process.env.NODE_ENV ? invariant(\n !Array.isArray(obj) &&\n (typeof obj === 'object' || typeof obj === 'function'),\n 'toArray: Array-like object expected'\n ) : invariant(!Array.isArray(obj) &&\n (typeof obj === 'object' || typeof obj === 'function')));\n\n (\"production\" !== process.env.NODE_ENV ? invariant(\n typeof length === 'number',\n 'toArray: Object needs a length property'\n ) : invariant(typeof length === 'number'));\n\n (\"production\" !== process.env.NODE_ENV ? invariant(\n length === 0 ||\n (length - 1) in obj,\n 'toArray: Object should have keys for indices'\n ) : invariant(length === 0 ||\n (length - 1) in obj));\n\n // Old IE doesn't give collections access to hasOwnProperty. Assume inputs\n // without method will throw during the slice call and skip straight to the\n // fallback.\n if (obj.hasOwnProperty) {\n try {\n return Array.prototype.slice.call(obj);\n } catch (e) {\n // IE < 9 does not support Array#slice on collections objects\n }\n }\n\n // Fall back to copying key by key. This assumes all keys have a value,\n // so will not preserve sparsely populated inputs.\n var ret = Array(length);\n for (var ii = 0; ii < length; ii++) {\n ret[ii] = obj[ii];\n }\n return ret;\n}\n\nmodule.exports = toArray;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react/lib/toArray.js\n ** module id = 166\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./~/react/lib/toArray.js?");
  1203. /***/ }
  1204. /******/ ])