{"version":3,"sources":["node_modules\\react-dom\\lib\\ReactCompositeComponent.js"],"names":["_prodInvariant","require","_assign","React","ReactComponentEnvironment","ReactCurrentOwner","ReactErrorUtils","ReactInstanceMap","ReactInstrumentation","ReactNodeTypes","ReactReconciler","process","env","NODE_ENV","checkReactTypeSpec","emptyObject","invariant","shallowEqual","shouldUpdateReactComponent","warning","CompositeTypes","ImpureClass","PureClass","StatelessFunctional","StatelessComponent","Component","prototype","render","get","_currentElement","type","element","props","context","updater","warnIfInvalidElement","isValidElement","displayName","name","childContextTypes","shouldConstruct","isReactComponent","isPureComponent","isPureReactComponent","measureLifeCyclePerf","fn","debugID","timerType","debugTool","onBeginLifeCycleTimer","onEndLifeCycleTimer","nextMountID","ReactCompositeComponent","construct","_rootNodeID","_compositeType","_instance","_hostParent","_hostContainerInfo","_updateBatchNumber","_pendingElement","_pendingStateQueue","_pendingReplaceState","_pendingForceUpdate","_renderedNodeType","_renderedComponent","_context","_mountOrder","_topLevelWrapper","_pendingCallbacks","_calledComponentWillUnmount","_warnedAboutRefsInRender","mountComponent","transaction","hostParent","hostContainerInfo","_this","publicProps","publicContext","_processContext","updateQueue","getUpdateQueue","doConstruct","inst","_constructComponent","renderedElement","propsMutated","componentName","undefined","refs","set","getInitialState","isReactClassApproved","state","getName","getDefaultProps","propTypes","contextTypes","componentShouldUpdate","componentDidUnmount","componentWillRecieveProps","initialState","Array","isArray","markup","unstable_handleError","performInitialMountWithErrorHandling","performInitialMount","componentDidMount","getReactMountReady","enqueue","_debugID","current","_constructComponentWithoutOwner","checkpoint","e","rollback","_processPendingState","unmountComponent","componentWillMount","_renderValidatedComponent","nodeType","getType","child","_instantiateReactComponent","EMPTY","_processChildContext","childDebugIDs","onSetChildren","getHostNode","safely","componentWillUnmount","invokeGuardedCallback","bind","remove","_maskContext","maskedContext","contextName","_checkContextTypes","currentContext","childContext","getChildContext","onBeginProcessingChildContext","onEndProcessingChildContext","typeSpecs","values","location","receiveComponent","nextElement","nextContext","prevElement","prevContext","updateComponent","performUpdateIfNecessary","prevParentElement","nextParentElement","prevUnmaskedContext","nextUnmaskedContext","willReceive","prevProps","nextProps","componentWillReceiveProps","nextState","shouldUpdate","shouldComponentUpdate","_performComponentUpdate","queue","replace","length","i","partial","call","unmaskedContext","_this2","hasComponentDidUpdate","Boolean","componentDidUpdate","prevState","componentWillUpdate","_updateRenderedComponent","prevComponentInstance","prevRenderedElement","nextRenderedElement","oldHostNode","nextMarkup","_replaceNodeWithMarkup","prevInstance","replaceNodeWithMarkup","_renderValidatedComponentWithoutOwnerOrContext","_isMockFunction","attachRef","ref","component","getPublicInstance","publicComponentInstance","detachRef","constructor","module","exports"],"mappings":";;;;;;;;;;AAUA;;AAEA,GAAIA,gBAAiBC,QAAQ,sBAAR,CAArB;AACIC,QAAUD,QAAQ,eAAR,CADd;;AAGA,GAAIE,OAAQF,QAAQ,iBAAR,CAAZ;AACA,GAAIG,2BAA4BH,QAAQ,6BAAR,CAAhC;AACA,GAAII,mBAAoBJ,QAAQ,6BAAR,CAAxB;AACA,GAAIK,iBAAkBL,QAAQ,mBAAR,CAAtB;AACA,GAAIM,kBAAmBN,QAAQ,oBAAR,CAAvB;AACA,GAAIO,sBAAuBP,QAAQ,wBAAR,CAA3B;AACA,GAAIQ,gBAAiBR,QAAQ,kBAAR,CAArB;AACA,GAAIS,iBAAkBT,QAAQ,mBAAR,CAAtB;;AAEA,GAAIU,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzC,GAAIC,oBAAqBb,QAAQ,sBAAR,CAAzB;AACD;;AAED,GAAIc,aAAcd,QAAQ,sBAAR,CAAlB;AACA,GAAIe,WAAYf,QAAQ,oBAAR,CAAhB;AACA,GAAIgB,cAAehB,QAAQ,uBAAR,CAAnB;AACA,GAAIiB,4BAA6BjB,QAAQ,8BAAR,CAAjC;AACA,GAAIkB,SAAUlB,QAAQ,kBAAR,CAAd;;AAEA,GAAImB,gBAAiB;AACnBC,YAAa,CADM;AAEnBC,UAAW,CAFQ;AAGnBC,oBAAqB,CAHF,CAArB;;;AAMA,QAASC,mBAAT,CAA4BC,SAA5B,CAAuC,CAAE;AACzCD,mBAAmBE,SAAnB,CAA6BC,MAA7B,CAAsC,UAAY;AAChD,GAAIF,WAAYlB,iBAAiBqB,GAAjB,CAAqB,IAArB,EAA2BC,eAA3B,CAA2CC,IAA3D;AACA,GAAIC,SAAUN,UAAU,KAAKO,KAAf,CAAsB,KAAKC,OAA3B,CAAoC,KAAKC,OAAzC,CAAd;AACAC,qBAAqBV,SAArB,CAAgCM,OAAhC;AACA,MAAOA,QAAP;AACD,CALD;;AAOA,QAASI,qBAAT,CAA8BV,SAA9B,CAAyCM,OAAzC,CAAkD;AAChD,GAAIpB,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzCF,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAAzB,CAAwCM,QAAQY,UAAY,IAAZ,EAAoBA,UAAY,KAAhC,EAAyC5B,MAAMiC,cAAN,CAAqBL,OAArB,CAAjD,CAAgF,2EAA6E,4DAA7J,CAA2NN,UAAUY,WAAV,EAAyBZ,UAAUa,IAAnC,EAA2C,WAAtQ,CAAxC,CAA6T,IAAK,EAAlU;AACA3B,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAAzB,CAAwCM,QAAQ,CAACM,UAAUc,iBAAnB,CAAsC,yEAAtC,CAAiHd,UAAUY,WAAV,EAAyBZ,UAAUa,IAAnC,EAA2C,WAA5J,CAAxC,CAAmN,IAAK,EAAxN;AACD;AACF;;AAED,QAASE,gBAAT,CAAyBf,SAAzB,CAAoC;AAClC,MAAO,CAAC,EAAEA,UAAUC,SAAV,EAAuBD,UAAUC,SAAV,CAAoBe,gBAA7C,CAAR;AACD;;AAED,QAASC,gBAAT,CAAyBjB,SAAzB,CAAoC;AAClC,MAAO,CAAC,EAAEA,UAAUC,SAAV,EAAuBD,UAAUC,SAAV,CAAoBiB,oBAA7C,CAAR;AACD;;;AAGD,QAASC,qBAAT,CAA8BC,EAA9B,CAAkCC,OAAlC,CAA2CC,SAA3C,CAAsD;AACpD,GAAID,UAAY,CAAhB,CAAmB;;;;AAIjB,MAAOD,KAAP;AACD;;AAEDrC,qBAAqBwC,SAArB,CAA+BC,qBAA/B,CAAqDH,OAArD,CAA8DC,SAA9D;AACA,GAAI;AACF,MAAOF,KAAP;AACD,CAFD,OAEU;AACRrC,qBAAqBwC,SAArB,CAA+BE,mBAA/B,CAAmDJ,OAAnD,CAA4DC,SAA5D;AACD;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCD,GAAII,aAAc,CAAlB;;;;;AAKA,GAAIC,yBAA0B;;;;;;;;AAQ5BC,UAAW,mBAAUtB,OAAV,CAAmB;AAC5B,KAAKF,eAAL,CAAuBE,OAAvB;AACA,KAAKuB,WAAL,CAAmB,CAAnB;AACA,KAAKC,cAAL,CAAsB,IAAtB;AACA,KAAKC,SAAL,CAAiB,IAAjB;AACA,KAAKC,WAAL,CAAmB,IAAnB;AACA,KAAKC,kBAAL,CAA0B,IAA1B;;;AAGA,KAAKC,kBAAL,CAA0B,IAA1B;AACA,KAAKC,eAAL,CAAuB,IAAvB;AACA,KAAKC,kBAAL,CAA0B,IAA1B;AACA,KAAKC,oBAAL,CAA4B,KAA5B;AACA,KAAKC,mBAAL,CAA2B,KAA3B;;AAEA,KAAKC,iBAAL,CAAyB,IAAzB;AACA,KAAKC,kBAAL,CAA0B,IAA1B;AACA,KAAKC,QAAL,CAAgB,IAAhB;AACA,KAAKC,WAAL,CAAmB,CAAnB;AACA,KAAKC,gBAAL,CAAwB,IAAxB;;;AAGA,KAAKC,iBAAL,CAAyB,IAAzB;;;AAGA,KAAKC,2BAAL,CAAmC,KAAnC;;AAEA,GAAI3D,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzC,KAAK0D,wBAAL,CAAgC,KAAhC;AACD;AACF,CAtC2B;;;;;;;;;;;;;AAmD5BC,eAAgB,wBAAUC,WAAV,CAAuBC,UAAvB,CAAmCC,iBAAnC,CAAsD1C,OAAtD,CAA+D;AAC7E,GAAI2C,OAAQ,IAAZ;;AAEA,KAAKV,QAAL,CAAgBjC,OAAhB;AACA,KAAKkC,WAAL,CAAmBhB,aAAnB;AACA,KAAKM,WAAL,CAAmBiB,UAAnB;AACA,KAAKhB,kBAAL,CAA0BiB,iBAA1B;;AAEA,GAAIE,aAAc,KAAKhD,eAAL,CAAqBG,KAAvC;AACA,GAAI8C,eAAgB,KAAKC,eAAL,CAAqB9C,OAArB,CAApB;;AAEA,GAAIR,WAAY,KAAKI,eAAL,CAAqBC,IAArC;;AAEA,GAAIkD,aAAcP,YAAYQ,cAAZ,EAAlB;;;AAGA,GAAIC,aAAc1C,gBAAgBf,SAAhB,CAAlB;AACA,GAAI0D,MAAO,KAAKC,mBAAL,CAAyBF,WAAzB,CAAsCL,WAAtC,CAAmDC,aAAnD,CAAkEE,WAAlE,CAAX;AACA,GAAIK,gBAAJ;;;AAGA,GAAI,CAACH,WAAD,GAAiBC,MAAQ,IAAR,EAAgBA,KAAKxD,MAAL,EAAe,IAAhD,CAAJ,CAA2D;AACzD0D,gBAAkBF,IAAlB;AACAhD,qBAAqBV,SAArB,CAAgC4D,eAAhC;AACA,EAAEF,OAAS,IAAT,EAAiBA,OAAS,KAA1B,EAAmChF,MAAMiC,cAAN,CAAqB+C,IAArB,CAArC,EAAmExE,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAAzB,CAAwCG,UAAU,KAAV,CAAiB,oIAAjB,CAAuJS,UAAUY,WAAV,EAAyBZ,UAAUa,IAAnC,EAA2C,WAAlM,CAAxC,CAAyPtC,eAAe,KAAf,CAAsByB,UAAUY,WAAV,EAAyBZ,UAAUa,IAAnC,EAA2C,WAAjE,CAA5T,CAA4Y,IAAK,EAAjZ;AACA6C,KAAO,GAAI3D,mBAAJ,CAAuBC,SAAvB,CAAP;AACA,KAAK8B,cAAL,CAAsBnC,eAAeG,mBAArC;AACD,CAND,IAMO;AACL,GAAImB,gBAAgBjB,SAAhB,CAAJ,CAAgC;AAC9B,KAAK8B,cAAL,CAAsBnC,eAAeE,SAArC;AACD,CAFD,IAEO;AACL,KAAKiC,cAAL,CAAsBnC,eAAeC,WAArC;AACD;AACF;;AAED,GAAIV,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;;;AAGzC,GAAIsE,KAAKxD,MAAL,EAAe,IAAnB,CAAyB;AACvBhB,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAAzB,CAAwCM,QAAQ,KAAR,CAAe,+DAAiE,sDAAhF,CAAwIM,UAAUY,WAAV,EAAyBZ,UAAUa,IAAnC,EAA2C,WAAnL,CAAxC,CAA0O,IAAK,EAA/O;AACD;;AAED,GAAIgD,cAAeH,KAAKnD,KAAL,GAAe6C,WAAlC;AACA,GAAIU,eAAgB9D,UAAUY,WAAV,EAAyBZ,UAAUa,IAAnC,EAA2C,WAA/D;;AAEA3B,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAAzB,CAAwCM,QAAQgE,KAAKnD,KAAL,GAAewD,SAAf,EAA4B,CAACF,YAArC,CAAmD,4DAA8D,iEAAjH,CAAoLC,aAApL,CAAmMA,aAAnM,CAAxC,CAA4P,IAAK,EAAjQ;AACD;;;;AAIDJ,KAAKnD,KAAL,CAAa6C,WAAb;AACAM,KAAKlD,OAAL,CAAe6C,aAAf;AACAK,KAAKM,IAAL,CAAY1E,WAAZ;AACAoE,KAAKjD,OAAL,CAAe8C,WAAf;;AAEA,KAAKxB,SAAL,CAAiB2B,IAAjB;;;AAGA5E,iBAAiBmF,GAAjB,CAAqBP,IAArB,CAA2B,IAA3B;;AAEA,GAAIxE,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;;;;AAIzCF,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAAzB,CAAwCM,QAAQ,CAACgE,KAAKQ,eAAN,EAAyBR,KAAKQ,eAAL,CAAqBC,oBAA9C,EAAsET,KAAKU,KAAnF,CAA0F,gEAAkE,sEAAlE,CAA2I,kDAArO,CAAyR,KAAKC,OAAL,IAAkB,aAA3S,CAAxC,CAAoW,IAAK,EAAzW;AACAnF,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAAzB,CAAwCM,QAAQ,CAACgE,KAAKY,eAAN,EAAyBZ,KAAKY,eAAL,CAAqBH,oBAAtD,CAA4E,gEAAkE,sEAAlE,CAA2I,uDAAvN,CAAgR,KAAKE,OAAL,IAAkB,aAAlS,CAAxC,CAA2V,IAAK,EAAhW;AACAnF,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAAzB,CAAwCM,QAAQ,CAACgE,KAAKa,SAAd,CAAyB,qEAAuE,uCAAhG,CAAyI,KAAKF,OAAL,IAAkB,aAA3J,CAAxC,CAAoN,IAAK,EAAzN;AACAnF,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAAzB,CAAwCM,QAAQ,CAACgE,KAAKc,YAAd,CAA4B,iEAAmE,iDAA/F,CAAkJ,KAAKH,OAAL,IAAkB,aAApK,CAAxC,CAA6N,IAAK,EAAlO;AACAnF,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAAzB,CAAwCM,QAAQ,MAAOgE,MAAKe,qBAAZ,GAAsC,UAA9C,CAA0D,0BAA4B,iEAA5B,CAAgG,4DAAhG,CAA+J,6BAAzN,CAAwP,KAAKJ,OAAL,IAAkB,aAA1Q,CAAxC,CAAmU,IAAK,EAAxU;AACAnF,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAAzB,CAAwCM,QAAQ,MAAOgE,MAAKgB,mBAAZ,GAAoC,UAA5C,CAAwD,0BAA4B,gEAA5B,CAA+F,sCAAvJ,CAA+L,KAAKL,OAAL,IAAkB,aAAjN,CAAxC,CAA0Q,IAAK,EAA/Q;AACAnF,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAAzB,CAAwCM,QAAQ,MAAOgE,MAAKiB,yBAAZ,GAA0C,UAAlD,CAA8D,0BAA4B,wEAA1F,CAAoK,KAAKN,OAAL,IAAkB,aAAtL,CAAxC,CAA+O,IAAK,EAApP;AACD;;AAED,GAAIO,cAAelB,KAAKU,KAAxB;AACA,GAAIQ,eAAiBb,SAArB,CAAgC;AAC9BL,KAAKU,KAAL,CAAaQ,aAAe,IAA5B;AACD;AACD,EAAE,MAAOA,aAAP,GAAwB,QAAxB,EAAoC,CAACC,MAAMC,OAAN,CAAcF,YAAd,CAAvC,EAAsE1F,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAAzB,CAAwCG,UAAU,KAAV,CAAiB,4CAAjB,CAA+D,KAAK8E,OAAL,IAAkB,yBAAjF,CAAxC,CAAsJ9F,eAAe,KAAf,CAAsB,KAAK8F,OAAL,IAAkB,yBAAxC,CAA5N,CAAiS,IAAK,EAAtS;;AAEA,KAAKjC,kBAAL,CAA0B,IAA1B;AACA,KAAKC,oBAAL,CAA4B,KAA5B;AACA,KAAKC,mBAAL,CAA2B,KAA3B;;AAEA,GAAIyC,OAAJ;AACA,GAAIrB,KAAKsB,oBAAT,CAA+B;AAC7BD,OAAS,KAAKE,oCAAL,CAA0CrB,eAA1C,CAA2DX,UAA3D,CAAuEC,iBAAvE,CAA0FF,WAA1F,CAAuGxC,OAAvG,CAAT;AACD,CAFD,IAEO;AACLuE,OAAS,KAAKG,mBAAL,CAAyBtB,eAAzB,CAA0CX,UAA1C,CAAsDC,iBAAtD,CAAyEF,WAAzE,CAAsFxC,OAAtF,CAAT;AACD;;AAED,GAAIkD,KAAKyB,iBAAT,CAA4B;AAC1B,GAAIjG,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzC4D,YAAYoC,kBAAZ,GAAiCC,OAAjC,CAAyC,UAAY;AACnDlE,qBAAqB,UAAY;AAC/B,MAAOuC,MAAKyB,iBAAL,EAAP;AACD,CAFD,CAEGhC,MAAMmC,QAFT,CAEmB,mBAFnB;AAGD,CAJD;AAKD,CAND,IAMO;AACLtC,YAAYoC,kBAAZ,GAAiCC,OAAjC,CAAyC3B,KAAKyB,iBAA9C,CAAiEzB,IAAjE;AACD;AACF;;AAED,MAAOqB,OAAP;AACD,CA1J2B;;AA4J5BpB,oBAAqB,6BAAUF,WAAV,CAAuBL,WAAvB,CAAoCC,aAApC,CAAmDE,WAAnD,CAAgE;AACnF,GAAIrE,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzCR,kBAAkB2G,OAAlB,CAA4B,IAA5B;AACA,GAAI;AACF,MAAO,MAAKC,+BAAL,CAAqC/B,WAArC,CAAkDL,WAAlD,CAA+DC,aAA/D,CAA8EE,WAA9E,CAAP;AACD,CAFD,OAEU;AACR3E,kBAAkB2G,OAAlB,CAA4B,IAA5B;AACD;AACF,CAPD,IAOO;AACL,MAAO,MAAKC,+BAAL,CAAqC/B,WAArC,CAAkDL,WAAlD,CAA+DC,aAA/D,CAA8EE,WAA9E,CAAP;AACD;AACF,CAvK2B;;AAyK5BiC,gCAAiC,yCAAU/B,WAAV,CAAuBL,WAAvB,CAAoCC,aAApC,CAAmDE,WAAnD,CAAgE;AAC/F,GAAIvD,WAAY,KAAKI,eAAL,CAAqBC,IAArC;;AAEA,GAAIoD,WAAJ,CAAiB;AACf,GAAIvE,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzC,MAAO+B,sBAAqB,UAAY;AACtC,MAAO,IAAInB,UAAJ,CAAcoD,WAAd,CAA2BC,aAA3B,CAA0CE,WAA1C,CAAP;AACD,CAFM,CAEJ,KAAK+B,QAFD,CAEW,MAFX,CAAP;AAGD,CAJD,IAIO;AACL,MAAO,IAAItF,UAAJ,CAAcoD,WAAd,CAA2BC,aAA3B,CAA0CE,WAA1C,CAAP;AACD;AACF;;;;AAID,GAAIrE,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzC,MAAO+B,sBAAqB,UAAY;AACtC,MAAOnB,WAAUoD,WAAV,CAAuBC,aAAvB,CAAsCE,WAAtC,CAAP;AACD,CAFM,CAEJ,KAAK+B,QAFD,CAEW,QAFX,CAAP;AAGD,CAJD,IAIO;AACL,MAAOtF,WAAUoD,WAAV,CAAuBC,aAAvB,CAAsCE,WAAtC,CAAP;AACD;AACF,CA/L2B;;AAiM5B0B,qCAAsC,8CAAUrB,eAAV,CAA2BX,UAA3B,CAAuCC,iBAAvC,CAA0DF,WAA1D,CAAuExC,OAAvE,CAAgF;AACpH,GAAIuE,OAAJ;AACA,GAAIU,YAAazC,YAAYyC,UAAZ,EAAjB;AACA,GAAI;AACFV,OAAS,KAAKG,mBAAL,CAAyBtB,eAAzB,CAA0CX,UAA1C,CAAsDC,iBAAtD,CAAyEF,WAAzE,CAAsFxC,OAAtF,CAAT;AACD,CAAC,MAAOkF,CAAP,CAAU;;AAEV1C,YAAY2C,QAAZ,CAAqBF,UAArB;AACA,KAAK1D,SAAL,CAAeiD,oBAAf,CAAoCU,CAApC;AACA,GAAI,KAAKtD,kBAAT,CAA6B;AAC3B,KAAKL,SAAL,CAAeqC,KAAf,CAAuB,KAAKwB,oBAAL,CAA0B,KAAK7D,SAAL,CAAexB,KAAzC,CAAgD,KAAKwB,SAAL,CAAevB,OAA/D,CAAvB;AACD;AACDiF,WAAazC,YAAYyC,UAAZ,EAAb;;AAEA,KAAKjD,kBAAL,CAAwBqD,gBAAxB,CAAyC,IAAzC;AACA7C,YAAY2C,QAAZ,CAAqBF,UAArB;;;;AAIAV,OAAS,KAAKG,mBAAL,CAAyBtB,eAAzB,CAA0CX,UAA1C,CAAsDC,iBAAtD,CAAyEF,WAAzE,CAAsFxC,OAAtF,CAAT;AACD;AACD,MAAOuE,OAAP;AACD,CAvN2B;;AAyN5BG,oBAAqB,6BAAUtB,eAAV,CAA2BX,UAA3B,CAAuCC,iBAAvC,CAA0DF,WAA1D,CAAuExC,OAAvE,CAAgF;AACnG,GAAIkD,MAAO,KAAK3B,SAAhB;;AAEA,GAAIV,SAAU,CAAd;AACA,GAAInC,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzCiC,QAAU,KAAKiE,QAAf;AACD;;AAED,GAAI5B,KAAKoC,kBAAT,CAA6B;AAC3B,GAAI5G,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzC+B,qBAAqB,UAAY;AAC/B,MAAOuC,MAAKoC,kBAAL,EAAP;AACD,CAFD,CAEGzE,OAFH,CAEY,oBAFZ;AAGD,CAJD,IAIO;AACLqC,KAAKoC,kBAAL;AACD;;;AAGD,GAAI,KAAK1D,kBAAT,CAA6B;AAC3BsB,KAAKU,KAAL,CAAa,KAAKwB,oBAAL,CAA0BlC,KAAKnD,KAA/B,CAAsCmD,KAAKlD,OAA3C,CAAb;AACD;AACF;;;AAGD,GAAIoD,kBAAoBG,SAAxB,CAAmC;AACjCH,gBAAkB,KAAKmC,yBAAL,EAAlB;AACD;;AAED,GAAIC,UAAWhH,eAAeiH,OAAf,CAAuBrC,eAAvB,CAAf;AACA,KAAKrB,iBAAL,CAAyByD,QAAzB;AACA,GAAIE,OAAQ,KAAKC,0BAAL,CAAgCvC,eAAhC,CAAiDoC,WAAahH,eAAeoH,KAA7E,CAAZ;;AAEA,KAAK5D,kBAAL,CAA0B0D,KAA1B;;AAEA,GAAInB,QAAS9F,gBAAgB8D,cAAhB,CAA+BmD,KAA/B,CAAsClD,WAAtC,CAAmDC,UAAnD,CAA+DC,iBAA/D,CAAkF,KAAKmD,oBAAL,CAA0B7F,OAA1B,CAAlF,CAAsHa,OAAtH,CAAb;;AAEA,GAAInC,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzC,GAAIiC,UAAY,CAAhB,CAAmB;AACjB,GAAIiF,eAAgBJ,MAAMZ,QAAN,GAAmB,CAAnB,CAAuB,CAACY,MAAMZ,QAAP,CAAvB,CAA0C,EAA9D;AACAvG,qBAAqBwC,SAArB,CAA+BgF,aAA/B,CAA6ClF,OAA7C,CAAsDiF,aAAtD;AACD;AACF;;AAED,MAAOvB,OAAP;AACD,CArQ2B;;AAuQ5ByB,YAAa,sBAAY;AACvB,MAAOvH,iBAAgBuH,WAAhB,CAA4B,KAAKhE,kBAAjC,CAAP;AACD,CAzQ2B;;;;;;;;AAiR5BqD,iBAAkB,0BAAUY,MAAV,CAAkB;AAClC,GAAI,CAAC,KAAKjE,kBAAV,CAA8B;AAC5B;AACD;;AAED,GAAIkB,MAAO,KAAK3B,SAAhB;;AAEA,GAAI2B,KAAKgD,oBAAL,EAA6B,CAAChD,KAAKb,2BAAvC,CAAoE;AAClEa,KAAKb,2BAAL,CAAmC,IAAnC;;AAEA,GAAI4D,MAAJ,CAAY;AACV,GAAI5F,MAAO,KAAKwD,OAAL,GAAiB,yBAA5B;AACAxF,gBAAgB8H,qBAAhB,CAAsC9F,IAAtC,CAA4C6C,KAAKgD,oBAAL,CAA0BE,IAA1B,CAA+BlD,IAA/B,CAA5C;AACD,CAHD,IAGO;AACL,GAAIxE,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzC+B,qBAAqB,UAAY;AAC/B,MAAOuC,MAAKgD,oBAAL,EAAP;AACD,CAFD,CAEG,KAAKpB,QAFR,CAEkB,sBAFlB;AAGD,CAJD,IAIO;AACL5B,KAAKgD,oBAAL;AACD;AACF;AACF;;AAED,GAAI,KAAKlE,kBAAT,CAA6B;AAC3BvD,gBAAgB4G,gBAAhB,CAAiC,KAAKrD,kBAAtC,CAA0DiE,MAA1D;AACA,KAAKlE,iBAAL,CAAyB,IAAzB;AACA,KAAKC,kBAAL,CAA0B,IAA1B;AACA,KAAKT,SAAL,CAAiB,IAAjB;AACD;;;;;AAKD,KAAKK,kBAAL,CAA0B,IAA1B;AACA,KAAKC,oBAAL,CAA4B,KAA5B;AACA,KAAKC,mBAAL,CAA2B,KAA3B;AACA,KAAKM,iBAAL,CAAyB,IAAzB;AACA,KAAKT,eAAL,CAAuB,IAAvB;;;;AAIA,KAAKM,QAAL,CAAgB,IAAhB;AACA,KAAKZ,WAAL,CAAmB,CAAnB;AACA,KAAKc,gBAAL,CAAwB,IAAxB;;;;;AAKA7D,iBAAiB+H,MAAjB,CAAwBnD,IAAxB;;;;;;;AAOD,CAzU2B;;;;;;;;;;AAmV5BoD,aAAc,sBAAUtG,OAAV,CAAmB;AAC/B,GAAIR,WAAY,KAAKI,eAAL,CAAqBC,IAArC;AACA,GAAImE,cAAexE,UAAUwE,YAA7B;AACA,GAAI,CAACA,YAAL,CAAmB;AACjB,MAAOlF,YAAP;AACD;AACD,GAAIyH,eAAgB,EAApB;AACA,IAAK,GAAIC,YAAT,GAAwBxC,aAAxB,CAAsC;AACpCuC,cAAcC,WAAd,EAA6BxG,QAAQwG,WAAR,CAA7B;AACD;AACD,MAAOD,cAAP;AACD,CA9V2B;;;;;;;;;;AAwW5BzD,gBAAiB,yBAAU9C,OAAV,CAAmB;AAClC,GAAIuG,eAAgB,KAAKD,YAAL,CAAkBtG,OAAlB,CAApB;AACA,GAAItB,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzC,GAAIY,WAAY,KAAKI,eAAL,CAAqBC,IAArC;AACA,GAAIL,UAAUwE,YAAd,CAA4B;AAC1B,KAAKyC,kBAAL,CAAwBjH,UAAUwE,YAAlC,CAAgDuC,aAAhD,CAA+D,SAA/D;AACD;AACF;AACD,MAAOA,cAAP;AACD,CAjX2B;;;;;;;AAwX5BV,qBAAsB,8BAAUa,cAAV,CAA0B;AAC9C,GAAIlH,WAAY,KAAKI,eAAL,CAAqBC,IAArC;AACA,GAAIqD,MAAO,KAAK3B,SAAhB;AACA,GAAIoF,aAAJ;;AAEA,GAAIzD,KAAK0D,eAAT,CAA0B;AACxB,GAAIlI,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzCL,qBAAqBwC,SAArB,CAA+B8F,6BAA/B;AACA,GAAI;AACFF,aAAezD,KAAK0D,eAAL,EAAf;AACD,CAFD,OAEU;AACRrI,qBAAqBwC,SAArB,CAA+B+F,2BAA/B;AACD;AACF,CAPD,IAOO;AACLH,aAAezD,KAAK0D,eAAL,EAAf;AACD;AACF;;AAED,GAAID,YAAJ,CAAkB;AAChB,EAAE,MAAOnH,WAAUc,iBAAjB,GAAuC,QAAzC,EAAqD5B,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAAzB,CAAwCG,UAAU,KAAV,CAAiB,4FAAjB,CAA+G,KAAK8E,OAAL,IAAkB,yBAAjI,CAAxC,CAAsM9F,eAAe,KAAf,CAAsB,KAAK8F,OAAL,IAAkB,yBAAxC,CAA3P,CAAgU,IAAK,EAArU;AACA,GAAInF,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzC,KAAK6H,kBAAL,CAAwBjH,UAAUc,iBAAlC,CAAqDqG,YAArD,CAAmE,eAAnE;AACD;AACD,IAAK,GAAItG,KAAT,GAAiBsG,aAAjB,CAA+B;AAC7B,EAAEtG,OAAQb,WAAUc,iBAApB,EAAyC5B,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAAzB,CAAwCG,UAAU,KAAV,CAAiB,qEAAjB,CAAwF,KAAK8E,OAAL,IAAkB,yBAA1G,CAAqIxD,IAArI,CAAxC,CAAqLtC,eAAe,KAAf,CAAsB,KAAK8F,OAAL,IAAkB,yBAAxC,CAAmExD,IAAnE,CAA9N,CAAyS,IAAK,EAA9S;AACD;AACD,MAAOpC,SAAQ,EAAR,CAAYyI,cAAZ,CAA4BC,YAA5B,CAAP;AACD;AACD,MAAOD,eAAP;AACD,CArZ2B;;;;;;;;;;AA+Z5BD,mBAAoB,4BAAUM,SAAV,CAAqBC,MAArB,CAA6BC,QAA7B,CAAuC;AACzD,GAAIvI,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzCC,mBAAmBkI,SAAnB,CAA8BC,MAA9B,CAAsCC,QAAtC,CAAgD,KAAKpD,OAAL,EAAhD,CAAgE,IAAhE,CAAsE,KAAKiB,QAA3E;AACD;AACF,CAna2B;;AAqa5BoC,iBAAkB,0BAAUC,WAAV,CAAuB3E,WAAvB,CAAoC4E,WAApC,CAAiD;AACjE,GAAIC,aAAc,KAAKzH,eAAvB;AACA,GAAI0H,aAAc,KAAKrF,QAAvB;;AAEA,KAAKN,eAAL,CAAuB,IAAvB;;AAEA,KAAK4F,eAAL,CAAqB/E,WAArB,CAAkC6E,WAAlC,CAA+CF,WAA/C,CAA4DG,WAA5D,CAAyEF,WAAzE;AACD,CA5a2B;;;;;;;;;AAqb5BI,yBAA0B,kCAAUhF,WAAV,CAAuB;AAC/C,GAAI,KAAKb,eAAL,EAAwB,IAA5B,CAAkC;AAChClD,gBAAgByI,gBAAhB,CAAiC,IAAjC,CAAuC,KAAKvF,eAA5C,CAA6Da,WAA7D,CAA0E,KAAKP,QAA/E;AACD,CAFD,IAEO,IAAI,KAAKL,kBAAL,GAA4B,IAA5B,EAAoC,KAAKE,mBAA7C,CAAkE;AACvE,KAAKyF,eAAL,CAAqB/E,WAArB,CAAkC,KAAK5C,eAAvC,CAAwD,KAAKA,eAA7D,CAA8E,KAAKqC,QAAnF,CAA6F,KAAKA,QAAlG;AACD,CAFM,IAEA;AACL,KAAKP,kBAAL,CAA0B,IAA1B;AACD;AACF,CA7b2B;;;;;;;;;;;;;;;;;AA8c5B6F,gBAAiB,yBAAU/E,WAAV,CAAuBiF,iBAAvB,CAA0CC,iBAA1C,CAA6DC,mBAA7D,CAAkFC,mBAAlF,CAAuG;AACtH,GAAI1E,MAAO,KAAK3B,SAAhB;AACA,EAAE2B,MAAQ,IAAV,EAAkBxE,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAAzB,CAAwCG,UAAU,KAAV,CAAiB,0FAAjB,CAA6G,KAAK8E,OAAL,IAAkB,yBAA/H,CAAxC,CAAoM9F,eAAe,KAAf,CAAsB,KAAK8F,OAAL,IAAkB,yBAAxC,CAAtN,CAA2R,IAAK,EAAhS;;AAEA,GAAIgE,aAAc,KAAlB;AACA,GAAIT,YAAJ;;;AAGA,GAAI,KAAKnF,QAAL,GAAkB2F,mBAAtB,CAA2C;AACzCR,YAAclE,KAAKlD,OAAnB;AACD,CAFD,IAEO;AACLoH,YAAc,KAAKtE,eAAL,CAAqB8E,mBAArB,CAAd;AACAC,YAAc,IAAd;AACD;;AAED,GAAIC,WAAYL,kBAAkB1H,KAAlC;AACA,GAAIgI,WAAYL,kBAAkB3H,KAAlC;;;AAGA,GAAI0H,oBAAsBC,iBAA1B,CAA6C;AAC3CG,YAAc,IAAd;AACD;;;;;AAKD,GAAIA,aAAe3E,KAAK8E,yBAAxB,CAAmD;AACjD,GAAItJ,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzC+B,qBAAqB,UAAY;AAC/B,MAAOuC,MAAK8E,yBAAL,CAA+BD,SAA/B,CAA0CX,WAA1C,CAAP;AACD,CAFD,CAEG,KAAKtC,QAFR,CAEkB,2BAFlB;AAGD,CAJD,IAIO;AACL5B,KAAK8E,yBAAL,CAA+BD,SAA/B,CAA0CX,WAA1C;AACD;AACF;;AAED,GAAIa,WAAY,KAAK7C,oBAAL,CAA0B2C,SAA1B,CAAqCX,WAArC,CAAhB;AACA,GAAIc,cAAe,IAAnB;;AAEA,GAAI,CAAC,KAAKpG,mBAAV,CAA+B;AAC7B,GAAIoB,KAAKiF,qBAAT,CAAgC;AAC9B,GAAIzJ,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzCsJ,aAAevH,qBAAqB,UAAY;AAC9C,MAAOuC,MAAKiF,qBAAL,CAA2BJ,SAA3B,CAAsCE,SAAtC,CAAiDb,WAAjD,CAAP;AACD,CAFc,CAEZ,KAAKtC,QAFO,CAEG,uBAFH,CAAf;AAGD,CAJD,IAIO;AACLoD,aAAehF,KAAKiF,qBAAL,CAA2BJ,SAA3B,CAAsCE,SAAtC,CAAiDb,WAAjD,CAAf;AACD;AACF,CARD,IAQO;AACL,GAAI,KAAK9F,cAAL,GAAwBnC,eAAeE,SAA3C,CAAsD;AACpD6I,aAAe,CAAClJ,aAAa8I,SAAb,CAAwBC,SAAxB,CAAD,EAAuC,CAAC/I,aAAakE,KAAKU,KAAlB,CAAyBqE,SAAzB,CAAvD;AACD;AACF;AACF;;AAED,GAAIvJ,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzCF,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAAzB,CAAwCM,QAAQgJ,eAAiB3E,SAAzB,CAAoC,+DAAiE,mDAArG,CAA0J,KAAKM,OAAL,IAAkB,yBAA5K,CAAxC,CAAiP,IAAK,EAAtP;AACD;;AAED,KAAKnC,kBAAL,CAA0B,IAA1B;AACA,GAAIwG,YAAJ,CAAkB;AAChB,KAAKpG,mBAAL,CAA2B,KAA3B;;AAEA,KAAKsG,uBAAL,CAA6BV,iBAA7B,CAAgDK,SAAhD,CAA2DE,SAA3D,CAAsEb,WAAtE,CAAmF5E,WAAnF,CAAgGoF,mBAAhG;AACD,CAJD,IAIO;;;AAGL,KAAKhI,eAAL,CAAuB8H,iBAAvB;AACA,KAAKzF,QAAL,CAAgB2F,mBAAhB;AACA1E,KAAKnD,KAAL,CAAagI,SAAb;AACA7E,KAAKU,KAAL,CAAaqE,SAAb;AACA/E,KAAKlD,OAAL,CAAeoH,WAAf;AACD;AACF,CAvhB2B;;AAyhB5BhC,qBAAsB,8BAAUrF,KAAV,CAAiBC,OAAjB,CAA0B;AAC9C,GAAIkD,MAAO,KAAK3B,SAAhB;AACA,GAAI8G,OAAQ,KAAKzG,kBAAjB;AACA,GAAI0G,SAAU,KAAKzG,oBAAnB;AACA,KAAKA,oBAAL,CAA4B,KAA5B;AACA,KAAKD,kBAAL,CAA0B,IAA1B;;AAEA,GAAI,CAACyG,KAAL,CAAY;AACV,MAAOnF,MAAKU,KAAZ;AACD;;AAED,GAAI0E,SAAWD,MAAME,MAAN,GAAiB,CAAhC,CAAmC;AACjC,MAAOF,OAAM,CAAN,CAAP;AACD;;AAED,GAAIJ,WAAYhK,QAAQ,EAAR,CAAYqK,QAAUD,MAAM,CAAN,CAAV,CAAqBnF,KAAKU,KAAtC,CAAhB;AACA,IAAK,GAAI4E,GAAIF,QAAU,CAAV,CAAc,CAA3B,CAA8BE,EAAIH,MAAME,MAAxC,CAAgDC,GAAhD,CAAqD;AACnD,GAAIC,SAAUJ,MAAMG,CAAN,CAAd;AACAvK,QAAQgK,SAAR,CAAmB,MAAOQ,QAAP,GAAmB,UAAnB,CAAgCA,QAAQC,IAAR,CAAaxF,IAAb,CAAmB+E,SAAnB,CAA8BlI,KAA9B,CAAqCC,OAArC,CAAhC,CAAgFyI,OAAnG;AACD;;AAED,MAAOR,UAAP;AACD,CA/iB2B;;;;;;;;;;;;;;AA6jB5BG,wBAAyB,iCAAUjB,WAAV,CAAuBY,SAAvB,CAAkCE,SAAlC,CAA6Cb,WAA7C,CAA0D5E,WAA1D,CAAuEmG,eAAvE,CAAwF;AAC/G,GAAIC,QAAS,IAAb;;AAEA,GAAI1F,MAAO,KAAK3B,SAAhB;;AAEA,GAAIsH,uBAAwBC,QAAQ5F,KAAK6F,kBAAb,CAA5B;AACA,GAAIjB,UAAJ;AACA,GAAIkB,UAAJ;AACA,GAAI1B,YAAJ;AACA,GAAIuB,qBAAJ,CAA2B;AACzBf,UAAY5E,KAAKnD,KAAjB;AACAiJ,UAAY9F,KAAKU,KAAjB;AACA0D,YAAcpE,KAAKlD,OAAnB;AACD;;AAED,GAAIkD,KAAK+F,mBAAT,CAA8B;AAC5B,GAAIvK,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzC+B,qBAAqB,UAAY;AAC/B,MAAOuC,MAAK+F,mBAAL,CAAyBlB,SAAzB,CAAoCE,SAApC,CAA+Cb,WAA/C,CAAP;AACD,CAFD,CAEG,KAAKtC,QAFR,CAEkB,qBAFlB;AAGD,CAJD,IAIO;AACL5B,KAAK+F,mBAAL,CAAyBlB,SAAzB,CAAoCE,SAApC,CAA+Cb,WAA/C;AACD;AACF;;AAED,KAAKxH,eAAL,CAAuBuH,WAAvB;AACA,KAAKlF,QAAL,CAAgB0G,eAAhB;AACAzF,KAAKnD,KAAL,CAAagI,SAAb;AACA7E,KAAKU,KAAL,CAAaqE,SAAb;AACA/E,KAAKlD,OAAL,CAAeoH,WAAf;;AAEA,KAAK8B,wBAAL,CAA8B1G,WAA9B,CAA2CmG,eAA3C;;AAEA,GAAIE,qBAAJ,CAA2B;AACzB,GAAInK,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzC4D,YAAYoC,kBAAZ,GAAiCC,OAAjC,CAAyC,UAAY;AACnDlE,qBAAqBuC,KAAK6F,kBAAL,CAAwB3C,IAAxB,CAA6BlD,IAA7B,CAAmC4E,SAAnC,CAA8CkB,SAA9C,CAAyD1B,WAAzD,CAArB,CAA4FsB,OAAO9D,QAAnG,CAA6G,oBAA7G;AACD,CAFD;AAGD,CAJD,IAIO;AACLtC,YAAYoC,kBAAZ,GAAiCC,OAAjC,CAAyC3B,KAAK6F,kBAAL,CAAwB3C,IAAxB,CAA6BlD,IAA7B,CAAmC4E,SAAnC,CAA8CkB,SAA9C,CAAyD1B,WAAzD,CAAzC,CAAgHpE,IAAhH;AACD;AACF;AACF,CAvmB2B;;;;;;;;AA+mB5BgG,yBAA0B,kCAAU1G,WAAV,CAAuBxC,OAAvB,CAAgC;AACxD,GAAImJ,uBAAwB,KAAKnH,kBAAjC;AACA,GAAIoH,qBAAsBD,sBAAsBvJ,eAAhD;AACA,GAAIyJ,qBAAsB,KAAK9D,yBAAL,EAA1B;;AAEA,GAAI1E,SAAU,CAAd;AACA,GAAInC,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzCiC,QAAU,KAAKiE,QAAf;AACD;;AAED,GAAI7F,2BAA2BmK,mBAA3B,CAAgDC,mBAAhD,CAAJ,CAA0E;AACxE5K,gBAAgByI,gBAAhB,CAAiCiC,qBAAjC,CAAwDE,mBAAxD,CAA6E7G,WAA7E,CAA0F,KAAKqD,oBAAL,CAA0B7F,OAA1B,CAA1F;AACD,CAFD,IAEO;AACL,GAAIsJ,aAAc7K,gBAAgBuH,WAAhB,CAA4BmD,qBAA5B,CAAlB;AACA1K,gBAAgB4G,gBAAhB,CAAiC8D,qBAAjC,CAAwD,KAAxD;;AAEA,GAAI3D,UAAWhH,eAAeiH,OAAf,CAAuB4D,mBAAvB,CAAf;AACA,KAAKtH,iBAAL,CAAyByD,QAAzB;AACA,GAAIE,OAAQ,KAAKC,0BAAL,CAAgC0D,mBAAhC,CAAqD7D,WAAahH,eAAeoH,KAAjF,CAAZ;;AAEA,KAAK5D,kBAAL,CAA0B0D,KAA1B;;AAEA,GAAI6D,YAAa9K,gBAAgB8D,cAAhB,CAA+BmD,KAA/B,CAAsClD,WAAtC,CAAmD,KAAKhB,WAAxD,CAAqE,KAAKC,kBAA1E,CAA8F,KAAKoE,oBAAL,CAA0B7F,OAA1B,CAA9F,CAAkIa,OAAlI,CAAjB;;AAEA,GAAInC,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzC,GAAIiC,UAAY,CAAhB,CAAmB;AACjB,GAAIiF,eAAgBJ,MAAMZ,QAAN,GAAmB,CAAnB,CAAuB,CAACY,MAAMZ,QAAP,CAAvB,CAA0C,EAA9D;AACAvG,qBAAqBwC,SAArB,CAA+BgF,aAA/B,CAA6ClF,OAA7C,CAAsDiF,aAAtD;AACD;AACF;;AAED,KAAK0D,sBAAL,CAA4BF,WAA5B,CAAyCC,UAAzC,CAAqDJ,qBAArD;AACD;AACF,CAhpB2B;;;;;;;AAupB5BK,uBAAwB,gCAAUF,WAAV,CAAuBC,UAAvB,CAAmCE,YAAnC,CAAiD;AACvEtL,0BAA0BuL,qBAA1B,CAAgDJ,WAAhD,CAA6DC,UAA7D,CAAyEE,YAAzE;AACD,CAzpB2B;;;;;AA8pB5BE,+CAAgD,yDAAY;AAC1D,GAAIzG,MAAO,KAAK3B,SAAhB;AACA,GAAI6B,gBAAJ;;AAEA,GAAI1E,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzCwE,gBAAkBzC,qBAAqB,UAAY;AACjD,MAAOuC,MAAKxD,MAAL,EAAP;AACD,CAFiB,CAEf,KAAKoF,QAFU,CAEA,QAFA,CAAlB;AAGD,CAJD,IAIO;AACL1B,gBAAkBF,KAAKxD,MAAL,EAAlB;AACD;;AAED,GAAIhB,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;;AAEzC,GAAIwE,kBAAoBG,SAApB,EAAiCL,KAAKxD,MAAL,CAAYkK,eAAjD,CAAkE;;;AAGhExG,gBAAkB,IAAlB;AACD;AACF;;AAED,MAAOA,gBAAP;AACD,CAprB2B;;;;;AAyrB5BmC,0BAA2B,oCAAY;AACrC,GAAInC,gBAAJ;AACA,GAAI1E,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAAzB,EAAyC,KAAK0C,cAAL,GAAwBnC,eAAeG,mBAApF,CAAyG;AACvGlB,kBAAkB2G,OAAlB,CAA4B,IAA5B;AACA,GAAI;AACF3B,gBAAkB,KAAKuG,8CAAL,EAAlB;AACD,CAFD,OAEU;AACRvL,kBAAkB2G,OAAlB,CAA4B,IAA5B;AACD;AACF,CAPD,IAOO;AACL3B,gBAAkB,KAAKuG,8CAAL,EAAlB;AACD;AACD;;AAEAvG,kBAAoB,IAApB,EAA4BA,kBAAoB,KAAhD,EAAyDlF,MAAMiC,cAAN,CAAqBiD,eAArB,CAFzD,EAEkG1E,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAAzB,CAAwCG,UAAU,KAAV,CAAiB,wIAAjB,CAA2J,KAAK8E,OAAL,IAAkB,yBAA7K,CAAxC,CAAkP9F,eAAe,KAAf,CAAsB,KAAK8F,OAAL,IAAkB,yBAAxC,CAFpV,CAEyZ,IAAK,EAF9Z;;AAIA,MAAOT,gBAAP;AACD,CA1sB2B;;;;;;;;;;AAotB5ByG,UAAW,mBAAUC,GAAV,CAAeC,SAAf,CAA0B;AACnC,GAAI7G,MAAO,KAAK8G,iBAAL,EAAX;AACA,EAAE9G,MAAQ,IAAV,EAAkBxE,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAAzB,CAAwCG,UAAU,KAAV,CAAiB,iDAAjB,CAAxC,CAA8GhB,eAAe,KAAf,CAAhI,CAAwJ,IAAK,EAA7J;AACA,GAAIkM,yBAA0BF,UAAUC,iBAAV,EAA9B;AACA,GAAItL,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAA7B,CAA2C;AACzC,GAAI0E,eAAgByG,WAAaA,UAAUlG,OAAvB,CAAiCkG,UAAUlG,OAAV,EAAjC,CAAuD,aAA3E;AACAnF,QAAQC,GAAR,CAAYC,QAAZ,GAAyB,YAAzB,CAAwCM,QAAQ+K,yBAA2B,IAA3B,EAAmCF,UAAUzI,cAAV,GAA6BnC,eAAeG,mBAAvF,CAA4G,sDAAwD,sCAAxD,CAAiG,wCAA7M,CAAuPwK,GAAvP,CAA4PxG,aAA5P,CAA2Q,KAAKO,OAAL,EAA3Q,CAAxC,CAAqU,IAAK,EAA1U;AACD;AACD,GAAIL,MAAON,KAAKM,IAAL,GAAc1E,WAAd,CAA4BoE,KAAKM,IAAL,CAAY,EAAxC,CAA6CN,KAAKM,IAA7D;AACAA,KAAKsG,GAAL,EAAYG,uBAAZ;AACD,CA9tB2B;;;;;;;;;AAuuB5BC,UAAW,mBAAUJ,GAAV,CAAe;AACxB,GAAItG,MAAO,KAAKwG,iBAAL,GAAyBxG,IAApC;AACA,MAAOA,MAAKsG,GAAL,CAAP;AACD,CA1uB2B;;;;;;;;AAkvB5BjG,QAAS,kBAAY;AACnB,GAAIhE,MAAO,KAAKD,eAAL,CAAqBC,IAAhC;AACA,GAAIsK,aAAc,KAAK5I,SAAL,EAAkB,KAAKA,SAAL,CAAe4I,WAAnD;AACA,MAAOtK,MAAKO,WAAL,EAAoB+J,aAAeA,YAAY/J,WAA/C,EAA8DP,KAAKQ,IAAnE,EAA2E8J,aAAeA,YAAY9J,IAAtG,EAA8G,IAArH;AACD,CAtvB2B;;;;;;;;;;AAgwB5B2J,kBAAmB,4BAAY;AAC7B,GAAI9G,MAAO,KAAK3B,SAAhB;AACA,GAAI,KAAKD,cAAL,GAAwBnC,eAAeG,mBAA3C,CAAgE;AAC9D,MAAO,KAAP;AACD;AACD,MAAO4D,KAAP;AACD,CAtwB2B;;;AAywB5ByC,2BAA4B,IAzwBA,CAA9B;;;AA4wBAyE,OAAOC,OAAP,CAAiBlJ,uBAAjB","file":"ReactCompositeComponent.js","sourceRoot":"D:/Work/Office/react-native-on-web/cli/tmpl/project","sourcesContent":["/**\n * Copyright 2013-present, 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 */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n    _assign = require('object-assign');\n\nvar React = require('react/lib/React');\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar ReactErrorUtils = require('./ReactErrorUtils');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactNodeTypes = require('./ReactNodeTypes');\nvar ReactReconciler = require('./ReactReconciler');\n\nif (process.env.NODE_ENV !== 'production') {\n  var checkReactTypeSpec = require('./checkReactTypeSpec');\n}\n\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar warning = require('fbjs/lib/warning');\n\nvar CompositeTypes = {\n  ImpureClass: 0,\n  PureClass: 1,\n  StatelessFunctional: 2\n};\n\nfunction StatelessComponent(Component) {}\nStatelessComponent.prototype.render = function () {\n  var Component = ReactInstanceMap.get(this)._currentElement.type;\n  var element = Component(this.props, this.context, this.updater);\n  warnIfInvalidElement(Component, element);\n  return element;\n};\n\nfunction warnIfInvalidElement(Component, element) {\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(element === null || element === false || React.isValidElement(element), '%s(...): A valid React element (or null) must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : void 0;\n    process.env.NODE_ENV !== 'production' ? warning(!Component.childContextTypes, '%s(...): childContextTypes cannot be defined on a functional component.', Component.displayName || Component.name || 'Component') : void 0;\n  }\n}\n\nfunction shouldConstruct(Component) {\n  return !!(Component.prototype && Component.prototype.isReactComponent);\n}\n\nfunction isPureComponent(Component) {\n  return !!(Component.prototype && Component.prototype.isPureReactComponent);\n}\n\n// Separated into a function to contain deoptimizations caused by try/finally.\nfunction measureLifeCyclePerf(fn, debugID, timerType) {\n  if (debugID === 0) {\n    // Top-level wrappers (see ReactMount) and empty components (see\n    // ReactDOMEmptyComponent) are invisible to hooks and devtools.\n    // Both are implementation details that should go away in the future.\n    return fn();\n  }\n\n  ReactInstrumentation.debugTool.onBeginLifeCycleTimer(debugID, timerType);\n  try {\n    return fn();\n  } finally {\n    ReactInstrumentation.debugTool.onEndLifeCycleTimer(debugID, timerType);\n  }\n}\n\n/**\n * ------------------ The Life-Cycle of a Composite Component ------------------\n *\n * - constructor: Initialization of state. The instance is now retained.\n *   - componentWillMount\n *   - render\n *   - [children's constructors]\n *     - [children's componentWillMount and render]\n *     - [children's componentDidMount]\n *     - componentDidMount\n *\n *       Update Phases:\n *       - componentWillReceiveProps (only called if parent updated)\n *       - shouldComponentUpdate\n *         - componentWillUpdate\n *           - render\n *           - [children's constructors or receive props phases]\n *         - componentDidUpdate\n *\n *     - componentWillUnmount\n *     - [children's componentWillUnmount]\n *   - [children destroyed]\n * - (destroyed): The instance is now blank, released by React and ready for GC.\n *\n * -----------------------------------------------------------------------------\n */\n\n/**\n * An incrementing ID assigned to each component when it is mounted. This is\n * used to enforce the order in which `ReactUpdates` updates dirty components.\n *\n * @private\n */\nvar nextMountID = 1;\n\n/**\n * @lends {ReactCompositeComponent.prototype}\n */\nvar ReactCompositeComponent = {\n  /**\n   * Base constructor for all composite component.\n   *\n   * @param {ReactElement} element\n   * @final\n   * @internal\n   */\n  construct: function (element) {\n    this._currentElement = element;\n    this._rootNodeID = 0;\n    this._compositeType = null;\n    this._instance = null;\n    this._hostParent = null;\n    this._hostContainerInfo = null;\n\n    // See ReactUpdateQueue\n    this._updateBatchNumber = null;\n    this._pendingElement = null;\n    this._pendingStateQueue = null;\n    this._pendingReplaceState = false;\n    this._pendingForceUpdate = false;\n\n    this._renderedNodeType = null;\n    this._renderedComponent = null;\n    this._context = null;\n    this._mountOrder = 0;\n    this._topLevelWrapper = null;\n\n    // See ReactUpdates and ReactUpdateQueue.\n    this._pendingCallbacks = null;\n\n    // ComponentWillUnmount shall only be called once\n    this._calledComponentWillUnmount = false;\n\n    if (process.env.NODE_ENV !== 'production') {\n      this._warnedAboutRefsInRender = false;\n    }\n  },\n\n  /**\n   * Initializes the component, renders markup, and registers event listeners.\n   *\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @param {?object} hostParent\n   * @param {?object} hostContainerInfo\n   * @param {?object} context\n   * @return {?string} Rendered markup to be inserted into the DOM.\n   * @final\n   * @internal\n   */\n  mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n    var _this = this;\n\n    this._context = context;\n    this._mountOrder = nextMountID++;\n    this._hostParent = hostParent;\n    this._hostContainerInfo = hostContainerInfo;\n\n    var publicProps = this._currentElement.props;\n    var publicContext = this._processContext(context);\n\n    var Component = this._currentElement.type;\n\n    var updateQueue = transaction.getUpdateQueue();\n\n    // Initialize the public class\n    var doConstruct = shouldConstruct(Component);\n    var inst = this._constructComponent(doConstruct, publicProps, publicContext, updateQueue);\n    var renderedElement;\n\n    // Support functional components\n    if (!doConstruct && (inst == null || inst.render == null)) {\n      renderedElement = inst;\n      warnIfInvalidElement(Component, renderedElement);\n      !(inst === null || inst === false || React.isValidElement(inst)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s(...): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : _prodInvariant('105', Component.displayName || Component.name || 'Component') : void 0;\n      inst = new StatelessComponent(Component);\n      this._compositeType = CompositeTypes.StatelessFunctional;\n    } else {\n      if (isPureComponent(Component)) {\n        this._compositeType = CompositeTypes.PureClass;\n      } else {\n        this._compositeType = CompositeTypes.ImpureClass;\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      // This will throw later in _renderValidatedComponent, but add an early\n      // warning now to help debugging\n      if (inst.render == null) {\n        process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', Component.displayName || Component.name || 'Component') : void 0;\n      }\n\n      var propsMutated = inst.props !== publicProps;\n      var componentName = Component.displayName || Component.name || 'Component';\n\n      process.env.NODE_ENV !== 'production' ? warning(inst.props === undefined || !propsMutated, '%s(...): When calling super() in `%s`, make sure to pass ' + \"up the same props that your component's constructor was passed.\", componentName, componentName) : void 0;\n    }\n\n    // These should be set up in the constructor, but as a convenience for\n    // simpler class abstractions, we set them up after the fact.\n    inst.props = publicProps;\n    inst.context = publicContext;\n    inst.refs = emptyObject;\n    inst.updater = updateQueue;\n\n    this._instance = inst;\n\n    // Store a reference from the instance back to the internal representation\n    ReactInstanceMap.set(inst, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      // Since plain JS classes are defined without any special initialization\n      // logic, we can not catch common errors early. Therefore, we have to\n      // catch them here, at initialization time, instead.\n      process.env.NODE_ENV !== 'production' ? warning(!inst.getInitialState || inst.getInitialState.isReactClassApproved || inst.state, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', this.getName() || 'a component') : void 0;\n      process.env.NODE_ENV !== 'production' ? warning(!inst.getDefaultProps || inst.getDefaultProps.isReactClassApproved, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', this.getName() || 'a component') : void 0;\n      process.env.NODE_ENV !== 'production' ? warning(!inst.propTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', this.getName() || 'a component') : void 0;\n      process.env.NODE_ENV !== 'production' ? warning(!inst.contextTypes, 'contextTypes was defined as an instance property on %s. Use a ' + 'static property to define contextTypes instead.', this.getName() || 'a component') : void 0;\n      process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentShouldUpdate !== 'function', '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', this.getName() || 'A component') : void 0;\n      process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentDidUnmount !== 'function', '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', this.getName() || 'A component') : void 0;\n      process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentWillRecieveProps !== 'function', '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', this.getName() || 'A component') : void 0;\n    }\n\n    var initialState = inst.state;\n    if (initialState === undefined) {\n      inst.state = initialState = null;\n    }\n    !(typeof initialState === 'object' && !Array.isArray(initialState)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.state: must be set to an object or null', this.getName() || 'ReactCompositeComponent') : _prodInvariant('106', this.getName() || 'ReactCompositeComponent') : void 0;\n\n    this._pendingStateQueue = null;\n    this._pendingReplaceState = false;\n    this._pendingForceUpdate = false;\n\n    var markup;\n    if (inst.unstable_handleError) {\n      markup = this.performInitialMountWithErrorHandling(renderedElement, hostParent, hostContainerInfo, transaction, context);\n    } else {\n      markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n    }\n\n    if (inst.componentDidMount) {\n      if (process.env.NODE_ENV !== 'production') {\n        transaction.getReactMountReady().enqueue(function () {\n          measureLifeCyclePerf(function () {\n            return inst.componentDidMount();\n          }, _this._debugID, 'componentDidMount');\n        });\n      } else {\n        transaction.getReactMountReady().enqueue(inst.componentDidMount, inst);\n      }\n    }\n\n    return markup;\n  },\n\n  _constructComponent: function (doConstruct, publicProps, publicContext, updateQueue) {\n    if (process.env.NODE_ENV !== 'production') {\n      ReactCurrentOwner.current = this;\n      try {\n        return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);\n      } finally {\n        ReactCurrentOwner.current = null;\n      }\n    } else {\n      return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);\n    }\n  },\n\n  _constructComponentWithoutOwner: function (doConstruct, publicProps, publicContext, updateQueue) {\n    var Component = this._currentElement.type;\n\n    if (doConstruct) {\n      if (process.env.NODE_ENV !== 'production') {\n        return measureLifeCyclePerf(function () {\n          return new Component(publicProps, publicContext, updateQueue);\n        }, this._debugID, 'ctor');\n      } else {\n        return new Component(publicProps, publicContext, updateQueue);\n      }\n    }\n\n    // This can still be an instance in case of factory components\n    // but we'll count this as time spent rendering as the more common case.\n    if (process.env.NODE_ENV !== 'production') {\n      return measureLifeCyclePerf(function () {\n        return Component(publicProps, publicContext, updateQueue);\n      }, this._debugID, 'render');\n    } else {\n      return Component(publicProps, publicContext, updateQueue);\n    }\n  },\n\n  performInitialMountWithErrorHandling: function (renderedElement, hostParent, hostContainerInfo, transaction, context) {\n    var markup;\n    var checkpoint = transaction.checkpoint();\n    try {\n      markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n    } catch (e) {\n      // Roll back to checkpoint, handle error (which may add items to the transaction), and take a new checkpoint\n      transaction.rollback(checkpoint);\n      this._instance.unstable_handleError(e);\n      if (this._pendingStateQueue) {\n        this._instance.state = this._processPendingState(this._instance.props, this._instance.context);\n      }\n      checkpoint = transaction.checkpoint();\n\n      this._renderedComponent.unmountComponent(true);\n      transaction.rollback(checkpoint);\n\n      // Try again - we've informed the component about the error, so they can render an error message this time.\n      // If this throws again, the error will bubble up (and can be caught by a higher error boundary).\n      markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n    }\n    return markup;\n  },\n\n  performInitialMount: function (renderedElement, hostParent, hostContainerInfo, transaction, context) {\n    var inst = this._instance;\n\n    var debugID = 0;\n    if (process.env.NODE_ENV !== 'production') {\n      debugID = this._debugID;\n    }\n\n    if (inst.componentWillMount) {\n      if (process.env.NODE_ENV !== 'production') {\n        measureLifeCyclePerf(function () {\n          return inst.componentWillMount();\n        }, debugID, 'componentWillMount');\n      } else {\n        inst.componentWillMount();\n      }\n      // When mounting, calls to `setState` by `componentWillMount` will set\n      // `this._pendingStateQueue` without triggering a re-render.\n      if (this._pendingStateQueue) {\n        inst.state = this._processPendingState(inst.props, inst.context);\n      }\n    }\n\n    // If not a stateless component, we now render\n    if (renderedElement === undefined) {\n      renderedElement = this._renderValidatedComponent();\n    }\n\n    var nodeType = ReactNodeTypes.getType(renderedElement);\n    this._renderedNodeType = nodeType;\n    var child = this._instantiateReactComponent(renderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */\n    );\n    this._renderedComponent = child;\n\n    var markup = ReactReconciler.mountComponent(child, transaction, hostParent, hostContainerInfo, this._processChildContext(context), debugID);\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (debugID !== 0) {\n        var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];\n        ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);\n      }\n    }\n\n    return markup;\n  },\n\n  getHostNode: function () {\n    return ReactReconciler.getHostNode(this._renderedComponent);\n  },\n\n  /**\n   * Releases any resources allocated by `mountComponent`.\n   *\n   * @final\n   * @internal\n   */\n  unmountComponent: function (safely) {\n    if (!this._renderedComponent) {\n      return;\n    }\n\n    var inst = this._instance;\n\n    if (inst.componentWillUnmount && !inst._calledComponentWillUnmount) {\n      inst._calledComponentWillUnmount = true;\n\n      if (safely) {\n        var name = this.getName() + '.componentWillUnmount()';\n        ReactErrorUtils.invokeGuardedCallback(name, inst.componentWillUnmount.bind(inst));\n      } else {\n        if (process.env.NODE_ENV !== 'production') {\n          measureLifeCyclePerf(function () {\n            return inst.componentWillUnmount();\n          }, this._debugID, 'componentWillUnmount');\n        } else {\n          inst.componentWillUnmount();\n        }\n      }\n    }\n\n    if (this._renderedComponent) {\n      ReactReconciler.unmountComponent(this._renderedComponent, safely);\n      this._renderedNodeType = null;\n      this._renderedComponent = null;\n      this._instance = null;\n    }\n\n    // Reset pending fields\n    // Even if this component is scheduled for another update in ReactUpdates,\n    // it would still be ignored because these fields are reset.\n    this._pendingStateQueue = null;\n    this._pendingReplaceState = false;\n    this._pendingForceUpdate = false;\n    this._pendingCallbacks = null;\n    this._pendingElement = null;\n\n    // These fields do not really need to be reset since this object is no\n    // longer accessible.\n    this._context = null;\n    this._rootNodeID = 0;\n    this._topLevelWrapper = null;\n\n    // Delete the reference from the instance to this internal representation\n    // which allow the internals to be properly cleaned up even if the user\n    // leaks a reference to the public instance.\n    ReactInstanceMap.remove(inst);\n\n    // Some existing components rely on inst.props even after they've been\n    // destroyed (in event handlers).\n    // TODO: inst.props = null;\n    // TODO: inst.state = null;\n    // TODO: inst.context = null;\n  },\n\n  /**\n   * Filters the context object to only contain keys specified in\n   * `contextTypes`\n   *\n   * @param {object} context\n   * @return {?object}\n   * @private\n   */\n  _maskContext: function (context) {\n    var Component = this._currentElement.type;\n    var contextTypes = Component.contextTypes;\n    if (!contextTypes) {\n      return emptyObject;\n    }\n    var maskedContext = {};\n    for (var contextName in contextTypes) {\n      maskedContext[contextName] = context[contextName];\n    }\n    return maskedContext;\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 = this._maskContext(context);\n    if (process.env.NODE_ENV !== 'production') {\n      var Component = this._currentElement.type;\n      if (Component.contextTypes) {\n        this._checkContextTypes(Component.contextTypes, maskedContext, 'context');\n      }\n    }\n    return maskedContext;\n  },\n\n  /**\n   * @param {object} currentContext\n   * @return {object}\n   * @private\n   */\n  _processChildContext: function (currentContext) {\n    var Component = this._currentElement.type;\n    var inst = this._instance;\n    var childContext;\n\n    if (inst.getChildContext) {\n      if (process.env.NODE_ENV !== 'production') {\n        ReactInstrumentation.debugTool.onBeginProcessingChildContext();\n        try {\n          childContext = inst.getChildContext();\n        } finally {\n          ReactInstrumentation.debugTool.onEndProcessingChildContext();\n        }\n      } else {\n        childContext = inst.getChildContext();\n      }\n    }\n\n    if (childContext) {\n      !(typeof Component.childContextTypes === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().', this.getName() || 'ReactCompositeComponent') : _prodInvariant('107', this.getName() || 'ReactCompositeComponent') : void 0;\n      if (process.env.NODE_ENV !== 'production') {\n        this._checkContextTypes(Component.childContextTypes, childContext, 'child context');\n      }\n      for (var name in childContext) {\n        !(name in Component.childContextTypes) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): key \"%s\" is not defined in childContextTypes.', this.getName() || 'ReactCompositeComponent', name) : _prodInvariant('108', this.getName() || 'ReactCompositeComponent', name) : void 0;\n      }\n      return _assign({}, currentContext, childContext);\n    }\n    return currentContext;\n  },\n\n  /**\n   * Assert that the context types are valid\n   *\n   * @param {object} typeSpecs Map of context field to a ReactPropType\n   * @param {object} values Runtime values that need to be type-checked\n   * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n   * @private\n   */\n  _checkContextTypes: function (typeSpecs, values, location) {\n    if (process.env.NODE_ENV !== 'production') {\n      checkReactTypeSpec(typeSpecs, values, location, this.getName(), null, this._debugID);\n    }\n  },\n\n  receiveComponent: function (nextElement, transaction, nextContext) {\n    var prevElement = this._currentElement;\n    var prevContext = this._context;\n\n    this._pendingElement = null;\n\n    this.updateComponent(transaction, prevElement, nextElement, prevContext, nextContext);\n  },\n\n  /**\n   * If any of `_pendingElement`, `_pendingStateQueue`, or `_pendingForceUpdate`\n   * is set, update the component.\n   *\n   * @param {ReactReconcileTransaction} transaction\n   * @internal\n   */\n  performUpdateIfNecessary: function (transaction) {\n    if (this._pendingElement != null) {\n      ReactReconciler.receiveComponent(this, this._pendingElement, transaction, this._context);\n    } else if (this._pendingStateQueue !== null || this._pendingForceUpdate) {\n      this.updateComponent(transaction, this._currentElement, this._currentElement, this._context, this._context);\n    } else {\n      this._updateBatchNumber = null;\n    }\n  },\n\n  /**\n   * Perform an update to a mounted component. The componentWillReceiveProps and\n   * shouldComponentUpdate methods are called, then (assuming the update isn't\n   * skipped) the remaining update lifecycle methods are called and the DOM\n   * representation is updated.\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} prevParentElement\n   * @param {ReactElement} nextParentElement\n   * @internal\n   * @overridable\n   */\n  updateComponent: function (transaction, prevParentElement, nextParentElement, prevUnmaskedContext, nextUnmaskedContext) {\n    var inst = this._instance;\n    !(inst != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Attempted to update component `%s` that has already been unmounted (or failed to mount).', this.getName() || 'ReactCompositeComponent') : _prodInvariant('136', this.getName() || 'ReactCompositeComponent') : void 0;\n\n    var willReceive = false;\n    var nextContext;\n\n    // Determine if the context has changed or not\n    if (this._context === nextUnmaskedContext) {\n      nextContext = inst.context;\n    } else {\n      nextContext = this._processContext(nextUnmaskedContext);\n      willReceive = true;\n    }\n\n    var prevProps = prevParentElement.props;\n    var nextProps = nextParentElement.props;\n\n    // Not a simple state update but a props update\n    if (prevParentElement !== nextParentElement) {\n      willReceive = true;\n    }\n\n    // An update here will schedule an update but immediately set\n    // _pendingStateQueue which will ensure that any state updates gets\n    // immediately reconciled instead of waiting for the next batch.\n    if (willReceive && inst.componentWillReceiveProps) {\n      if (process.env.NODE_ENV !== 'production') {\n        measureLifeCyclePerf(function () {\n          return inst.componentWillReceiveProps(nextProps, nextContext);\n        }, this._debugID, 'componentWillReceiveProps');\n      } else {\n        inst.componentWillReceiveProps(nextProps, nextContext);\n      }\n    }\n\n    var nextState = this._processPendingState(nextProps, nextContext);\n    var shouldUpdate = true;\n\n    if (!this._pendingForceUpdate) {\n      if (inst.shouldComponentUpdate) {\n        if (process.env.NODE_ENV !== 'production') {\n          shouldUpdate = measureLifeCyclePerf(function () {\n            return inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n          }, this._debugID, 'shouldComponentUpdate');\n        } else {\n          shouldUpdate = inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n        }\n      } else {\n        if (this._compositeType === CompositeTypes.PureClass) {\n          shouldUpdate = !shallowEqual(prevProps, nextProps) || !shallowEqual(inst.state, nextState);\n        }\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      process.env.NODE_ENV !== 'production' ? warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent') : void 0;\n    }\n\n    this._updateBatchNumber = null;\n    if (shouldUpdate) {\n      this._pendingForceUpdate = false;\n      // Will set `this.props`, `this.state` and `this.context`.\n      this._performComponentUpdate(nextParentElement, nextProps, nextState, nextContext, transaction, nextUnmaskedContext);\n    } else {\n      // If it's determined that a component should not update, we still want\n      // to set props and state but we shortcut the rest of the update.\n      this._currentElement = nextParentElement;\n      this._context = nextUnmaskedContext;\n      inst.props = nextProps;\n      inst.state = nextState;\n      inst.context = nextContext;\n    }\n  },\n\n  _processPendingState: function (props, context) {\n    var inst = this._instance;\n    var queue = this._pendingStateQueue;\n    var replace = this._pendingReplaceState;\n    this._pendingReplaceState = false;\n    this._pendingStateQueue = null;\n\n    if (!queue) {\n      return inst.state;\n    }\n\n    if (replace && queue.length === 1) {\n      return queue[0];\n    }\n\n    var nextState = _assign({}, replace ? queue[0] : inst.state);\n    for (var i = replace ? 1 : 0; i < queue.length; i++) {\n      var partial = queue[i];\n      _assign(nextState, typeof partial === 'function' ? partial.call(inst, nextState, props, context) : partial);\n    }\n\n    return nextState;\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   * @param {?object} unmaskedContext\n   * @private\n   */\n  _performComponentUpdate: function (nextElement, nextProps, nextState, nextContext, transaction, unmaskedContext) {\n    var _this2 = this;\n\n    var inst = this._instance;\n\n    var hasComponentDidUpdate = Boolean(inst.componentDidUpdate);\n    var prevProps;\n    var prevState;\n    var prevContext;\n    if (hasComponentDidUpdate) {\n      prevProps = inst.props;\n      prevState = inst.state;\n      prevContext = inst.context;\n    }\n\n    if (inst.componentWillUpdate) {\n      if (process.env.NODE_ENV !== 'production') {\n        measureLifeCyclePerf(function () {\n          return inst.componentWillUpdate(nextProps, nextState, nextContext);\n        }, this._debugID, 'componentWillUpdate');\n      } else {\n        inst.componentWillUpdate(nextProps, nextState, nextContext);\n      }\n    }\n\n    this._currentElement = nextElement;\n    this._context = unmaskedContext;\n    inst.props = nextProps;\n    inst.state = nextState;\n    inst.context = nextContext;\n\n    this._updateRenderedComponent(transaction, unmaskedContext);\n\n    if (hasComponentDidUpdate) {\n      if (process.env.NODE_ENV !== 'production') {\n        transaction.getReactMountReady().enqueue(function () {\n          measureLifeCyclePerf(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), _this2._debugID, 'componentDidUpdate');\n        });\n      } else {\n        transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst);\n      }\n    }\n  },\n\n  /**\n   * Call the component's `render` method and update the DOM accordingly.\n   *\n   * @param {ReactReconcileTransaction} transaction\n   * @internal\n   */\n  _updateRenderedComponent: function (transaction, context) {\n    var prevComponentInstance = this._renderedComponent;\n    var prevRenderedElement = prevComponentInstance._currentElement;\n    var nextRenderedElement = this._renderValidatedComponent();\n\n    var debugID = 0;\n    if (process.env.NODE_ENV !== 'production') {\n      debugID = this._debugID;\n    }\n\n    if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) {\n      ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context));\n    } else {\n      var oldHostNode = ReactReconciler.getHostNode(prevComponentInstance);\n      ReactReconciler.unmountComponent(prevComponentInstance, false);\n\n      var nodeType = ReactNodeTypes.getType(nextRenderedElement);\n      this._renderedNodeType = nodeType;\n      var child = this._instantiateReactComponent(nextRenderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */\n      );\n      this._renderedComponent = child;\n\n      var nextMarkup = ReactReconciler.mountComponent(child, transaction, this._hostParent, this._hostContainerInfo, this._processChildContext(context), debugID);\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (debugID !== 0) {\n          var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];\n          ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);\n        }\n      }\n\n      this._replaceNodeWithMarkup(oldHostNode, nextMarkup, prevComponentInstance);\n    }\n  },\n\n  /**\n   * Overridden in shallow rendering.\n   *\n   * @protected\n   */\n  _replaceNodeWithMarkup: function (oldHostNode, nextMarkup, prevInstance) {\n    ReactComponentEnvironment.replaceNodeWithMarkup(oldHostNode, nextMarkup, prevInstance);\n  },\n\n  /**\n   * @protected\n   */\n  _renderValidatedComponentWithoutOwnerOrContext: function () {\n    var inst = this._instance;\n    var renderedElement;\n\n    if (process.env.NODE_ENV !== 'production') {\n      renderedElement = measureLifeCyclePerf(function () {\n        return inst.render();\n      }, this._debugID, 'render');\n    } else {\n      renderedElement = inst.render();\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      // We allow auto-mocks to proceed as if they're returning null.\n      if (renderedElement === undefined && inst.render._isMockFunction) {\n        // This is probably bad practice. Consider warning here and\n        // deprecating this convenience.\n        renderedElement = null;\n      }\n    }\n\n    return renderedElement;\n  },\n\n  /**\n   * @private\n   */\n  _renderValidatedComponent: function () {\n    var renderedElement;\n    if (process.env.NODE_ENV !== 'production' || this._compositeType !== CompositeTypes.StatelessFunctional) {\n      ReactCurrentOwner.current = this;\n      try {\n        renderedElement = this._renderValidatedComponentWithoutOwnerOrContext();\n      } finally {\n        ReactCurrentOwner.current = null;\n      }\n    } else {\n      renderedElement = this._renderValidatedComponentWithoutOwnerOrContext();\n    }\n    !(\n    // TODO: An `isValidNode` function would probably be more appropriate\n    renderedElement === null || renderedElement === false || React.isValidElement(renderedElement)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', this.getName() || 'ReactCompositeComponent') : _prodInvariant('109', this.getName() || 'ReactCompositeComponent') : void 0;\n\n    return renderedElement;\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    var inst = this.getPublicInstance();\n    !(inst != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Stateless function components cannot have refs.') : _prodInvariant('110') : void 0;\n    var publicComponentInstance = component.getPublicInstance();\n    if (process.env.NODE_ENV !== 'production') {\n      var componentName = component && component.getName ? component.getName() : 'a component';\n      process.env.NODE_ENV !== 'production' ? warning(publicComponentInstance != null || component._compositeType !== CompositeTypes.StatelessFunctional, 'Stateless function components cannot be given refs ' + '(See ref \"%s\" in %s created by %s). ' + 'Attempts to access this ref will fail.', ref, componentName, this.getName()) : void 0;\n    }\n    var refs = inst.refs === emptyObject ? inst.refs = {} : inst.refs;\n    refs[ref] = publicComponentInstance;\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    var refs = this.getPublicInstance().refs;\n    delete refs[ref];\n  },\n\n  /**\n   * Get a text description of the component that can be used to identify it\n   * in error messages.\n   * @return {string} The name or null.\n   * @internal\n   */\n  getName: function () {\n    var type = this._currentElement.type;\n    var constructor = this._instance && this._instance.constructor;\n    return type.displayName || constructor && constructor.displayName || type.name || constructor && constructor.name || null;\n  },\n\n  /**\n   * Get the publicly accessible representation of this component - i.e. what\n   * is exposed by refs and returned by render. Can be null for stateless\n   * components.\n   *\n   * @return {ReactComponent} the public component instance.\n   * @internal\n   */\n  getPublicInstance: function () {\n    var inst = this._instance;\n    if (this._compositeType === CompositeTypes.StatelessFunctional) {\n      return null;\n    }\n    return inst;\n  },\n\n  // Stub\n  _instantiateReactComponent: null\n};\n\nmodule.exports = ReactCompositeComponent;"]}