{"version":3,"sources":["components/Shared/excel.js","serviceWorker.js","Config.js","components/Shared/Header.js","components/Shared/Footer.js","components/Shared/Spinner.js","components/Shared/Alert.js","components/Shared/Toaster.js","components/Shared/Aside.js","components/Member/ChangePassword.js","components/Login/Login.js","components/Shared/Table.js","components/Shared/Modal.js","components/reports/LoanReport.js","components/reports/PersonLoanReport.js","components/reports/PersonMontlyReport.js","components/Member/AdminDashboard.js","components/Member/UserDashboard.js","components/Users/Manager.js","components/Shared/Dropdown.js","components/Users/FamilyMember.js","components/Loan/LoanInformation.js","components/Loan/Setting.js","components/Loan/PaymentInformation.js","components/reports/PaymentInformationReport.js","components/Loan/FundExpense.js","App.js","index.js"],"names":["Object","defineProperty","exports","value","obj","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","key","Constructor","protoProps","staticProps","prototype","_react","require","_react2","__esModule","default","ReactHTMLTableToExcel","_Component","instance","TypeError","_classCallCheck","this","_this","self","call","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","handleDownload","bind","subClass","superClass","create","constructor","setPrototypeOf","_inherits","document","table","nodeType","nodeName","outerHTML","sheet","String","filename","context","worksheet","window","navigator","msSaveOrOpenBlob","blobObject","Blob","getElementById","click","element","createElement","href","base64","format","download","body","appendChild","removeChild","id","className","type","onClick","buttonText","s","btoa","unescape","encodeURIComponent","c","replace","m","p","Component","defaultProps","Boolean","location","hostname","match","toPersianNumbers","input","undefined","toString","toEnglishNumbers","toCurrency","Number","x","split","y","z","rgx","test","thousandSeparator","convertDate","date","year","month","concat","d","day","reverseDate","parseInt","ShowCatchError","error","response","data","message","CurrentDate","today","Date","date1","getDate","setFullYear","getFullYear","getMonth","date5","toLocaleDateString","token","fromCharCode","charCodeAt","Config","url","googleApiKey","logoutTimer","Header","member","toggleNavIcon","navIcon","logOut","useState","details","setDetails","setToday","useEffect","axios","get","config","then","res","catch","console","log","profileSection","useRef","addEventListener","handleClick","removeEventListener","e","current","contains","memberType","ref","fullname","style","animation","agent","agentFullName","to","Footer","Spinner","Alert","alertText","alertType","execute","hideAlert","title","Toaster","toasterText","toasterType","Aside","state","stickyMenu","mainMenuDisplay","1","2","3","4","top","menuStatus","accordion","setState","mobileMenu","innerWidth","navIconOff","navIconOn","prevProps","doc","documentElement","pageYOffset","scrollTop","clientTop","onMouseLeave","onMouseEnter","transform","color","pathname","backgroundColor","borderRadius","userName","React","withRouter","ChangePassword","validateInputData","newPassword","repeatPassword","push","errors","showAlert","SearchModel","Item1","NationId","Item2","post","hideSpinner","map","placeholder","onChange","Login","username","password","remember","randomNumber","login","showSpinner","setJWT","checkJWT","jwt","localStorage","setItem","backgroundImage","onKeyDown","Table","tableHeaders","tableRow","tableData","tableSearchValue","setTableSearchValue","tableRowCount","setTableRowCount","pageNumbers","setPageNumbers","selectedPage","setSelectedPage","from","setFrom","setTo","searchedTableRow","setSearchedTableRow","myTableBody","tableColumns","tableColumnsIndex","myTable","arr2","item","JSON","stringify","includes","arr","sortTable","n","rows","switching","shouldSwitch","dir","switchCount","getElementsByTagName","innerHTML","pop","toLowerCase","parentNode","insertBefore","autoComplete","autoFocus","width","borderColor","margin","userSelect","slice","num","fontWeight","tableHeader","Modal","modalContent","LoanReport","handleFocus","event","select","Search","model","FirstName","firstName","LastName","lastName","NationalId","nationalId","LoanReports","Reset","SaveMode","startDate","startDateDisplay","endDate","utils","getToday","endDateDisplay","GetLoanInformationByFamilyMemberId","FamilyMemberId","callback","LoanInMemberformation","GetPamentInfoList","Type","PamentInfo","GetPamentInfoListByBloanId","LoanInformationId","sumInstallmentPrice","remainLoan","GetPamentMontlyInfoList","SumPaymentPrice","sumPaymentPrice","GetLoanInfoList","LoanInformations","familyMemberId","PaymentType","showMontlyModal","showDelayModal","showLoanModal","showAllLoanModal","showloanInfoModal","LoanPrice","LoanNumber","onFocus","maxLength","allAmount","remain","allLoan","currentAmount","newDate","inputPlaceholder","inputClassName","shouldHighlightWeekends","locale","paymentPrice","paymentDate","loanPrice","installmentPrice","loanNumber","payDate","PersonLoanReport","PersonMontlyReport","AdminDashboard","GetAllInfoPayment","AdminStatistics","GetAllInfoPaymentByManager","StatisticsByManager","SaveAll","addModel","ManagerId","status","scrollTo","allMembers","allPymentDelay","allFundExpense","allAmountNow","allLoanAmount","allLoanPaymentAmount","reamainLoanNotPaying","managerFullName","reamainEachMount","UserDashboard","Manager","AllManager","Managers","trim","checkNumber","price","AddManager","Isclear","checkNumber2","checkNumber3","comment","api","desc","Firstname","CheckNumber","Price","CheckNumber2","CheckNumber3","Comment","Id","Reload","replaceData","Item","showToaster","Delete","regDate","regTime","Dropdown","list","itemName","disabled","styles","withButton","showOptions","setShowOptions","search","setSearch","dropdown","border","cursor","FamilyMember","selectManager","AllFamilyMember","FamilyMembers","passWord","mainAmount","AddFamilyMember","tel","email","sahm","IsActive","TasviyePay","selectedStatusSearchType","text","Tel","MainAmount","Email","PassWord","UserName","Sahm","TasviyeType","managerId","isActive","tasviyePay","StatusSearchTypes","filter","customer","tasviyeType","v","CreateUser","newMemberUsername","newMemberPassword","showNewMemberModal","ChangePassModal","managerFirstName","managerLastName","height","LoanInformation","selectFamilyMember","AllLoanInformation","AddLoanInformation","isFinish","PayDateDisplay","PayDate","GetLastSetting","InstallmentPrice","StartDate","EndDate","payDate_shamsiDate","startDate_shamsiDate","endDate_shamsiDate","CallFamilymember","loanAmount","installmentAmount","installmentNumber","familyMemberFullName","Setting","AllSetting","Settings","monthlyAmount","delayInstallment","delayMonthly","dayPayment","AddSetting","SettingId","MonthlyAmount","LoanAmount","InstallmentAmount","InstallmentNumber","DelayInstallment","DelayMonthly","DayPayment","PaymentInformation","selectLoanInformation","setselectLoanInformation","AllPaymentInformation","PaymentInformations","AddPaymentInformation","pymentDelay","PaymentInformationId","paymentDateDisplay","PaymentPrice","PaymentDate","PymentDelay","SearchPaymentInformation","paymentDate_shamsiDate","paymentType","loanInformationId","SetPrice","delayMount","delayghest","Item3","Item4","Item5","Item6","PaymentInformationReport","TopaymentDate","TopaymentDateDisplay","FundExpense","AllFundExpense","FundExpenses","Desc","Cost","AddFundExpense","FundExpenseId","allexpence","cost","App","ConnectToken","Dastine","socketConnection","readyState","timerConnectToken","timerID","setInterval","getCurrentMember","logIn","getItem","defaults","headers","common","activityWatcher","loggedIn","secondsSinceLastActivity","maxInactivity","activity","forEach","eventName","executableCode","alert","currentTarget","spinner","toaster","setTimeout","removeItem","history","loadPage","notificationsCount","customerLoadRequestCount","CustomerLoadRequestCount","reserveEntrancePermissionsCount","ReserveEntrancePermissionsCount","exact","path","render","clickedNode","stimulsoftLoaded","goodTypes","loaderTypes","packingTypes","ReactDOM","serviceWorker","ready","registration","unregister"],"mappings":";yIAAAA,OAAOC,eAAeC,EAAS,aAAc,CACzCC,OAAO,IAGX,IAuBgCC,EAvB5BC,EAAe,WACf,SAASC,EAAiBC,EAAQC,GAC9B,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CACnC,IAAIE,EAAaH,EAAMC,GACvBE,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDd,OAAOC,eAAeM,EAAQI,EAAWI,IAAKJ,IAItD,OAAO,SAAUK,EAAaC,EAAYC,GAGtC,OAFID,GAAYX,EAAiBU,EAAYG,UAAWF,GACpDC,GAAaZ,EAAiBU,EAAaE,GACxCF,GAdI,GAkBfI,EAASC,EAAQ,GAEjBC,GAG4BlB,EAHKgB,IAInBhB,EAAImB,WAAanB,EAAM,CAACoB,QAASpB,GAgCnD,IAMIqB,EAAwB,SAAUC,GAGlC,SAASD,EAAsBjB,IAtCnC,SAAyBmB,EAAUX,GAC/B,KAAMW,aAAoBX,GACtB,MAAM,IAAIY,UAAU,qCAqCpBC,CAAgBC,KAAML,GAEtB,IAAIM,EAnCZ,SAAoCC,EAAMC,GACtC,IAAKD,EACD,MAAM,IAAIE,eAAe,6DAE7B,OAAOD,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BD,EAAPC,EA+B1DE,CAA2BL,MAAOL,EAAsBW,WAAapC,OAAOqC,eAAeZ,IAAwBQ,KAAKH,KAAMtB,IAG1I,OADAuB,EAAMO,eAAiBP,EAAMO,eAAeC,KAAKR,GAC1CA,EAkFX,OAjHJ,SAAmBS,EAAUC,GACzB,GAA0B,oBAAfA,GAA4C,OAAfA,EACpC,MAAM,IAAIb,UAAU,kEAAoEa,GAE5FD,EAASrB,UAAYnB,OAAO0C,OAAOD,GAAcA,EAAWtB,UAAW,CACnEwB,YAAa,CACTxC,MAAOqC,EACP5B,YAAY,EACZE,UAAU,EACVD,cAAc,KAGlB4B,IAAYzC,OAAO4C,eAAiB5C,OAAO4C,eAAeJ,EAAUC,GAAcD,EAASJ,UAAYK,GAW3GI,CAAUpB,EAAuBC,GAWjCrB,EAAaoB,EAAuB,CAAC,CACjCV,IAAK,iBACLZ,MAAO,WACH,IAAK2C,SAKD,OAAO,KAGX,GAAkC,IAA9BhB,KAAKtB,MAAMuC,MAAMC,UAAgD,UAA9BlB,KAAKtB,MAAMuC,MAAME,SAKpD,OAAO,KAGX,IAAIF,EAAQjB,KAAKtB,MAAMuC,MAAMG,UACzBC,EAAQC,OAAOtB,KAAKtB,MAAM2C,OAC1BE,EAAWD,OAAOtB,KAAKtB,MAAM6C,UAAY,OAKzCC,EAAU,CACVC,UAAWJ,GAAS,YACpBJ,MAAOA,GAIX,GAAIS,OAAOC,UAAUC,iBAAkB,CACnC,IACIC,EAAa,IAAIC,KADN,CAAE,sbAAmbb,EAAQ,mBAM5c,OAJAD,SAASe,eAAe,6BAA6BC,OAArDhB,EAA6D,WACzDU,OAAOC,UAAUC,iBAAiBC,EAAYN,OAG3C,EAGX,IAAIU,EAAUP,OAAOV,SAASkB,cAAc,KAO5C,OANAD,EAAQE,KApBE,wCAoBWxC,EAAsByC,OAAOzC,EAAsB0C,OAnBzD,2cAmB0Eb,IACzFS,EAAQK,SAAWf,EACnBP,SAASuB,KAAKC,YAAYP,GAC1BA,EAAQD,QACRhB,SAASuB,KAAKE,YAAYR,IAEnB,IAEZ,CACChD,IAAK,SACLZ,MAAO,WACH,OAAOmB,EAAQE,QAAQwC,cACnB,SACA,CACIQ,GAAI1C,KAAKtB,MAAMgE,GACfC,UAAW3C,KAAKtB,MAAMiE,UACtBC,KAAM,SACNC,QAAS7C,KAAKQ,gBAElBR,KAAKtB,MAAMoE,eAGnB,CAAC,CACD7D,IAAK,SACLZ,MAAO,SAAgB0E,GACnB,OAAOrB,OAAOsB,KAAKC,SAASC,mBAAmBH,OAEpD,CACC9D,IAAK,SACLZ,MAAO,SAAgB0E,EAAGI,GACtB,OAAOJ,EAAEK,QAAQ,YAAY,SAAUC,EAAGC,GACtC,OAAOH,EAAEG,UAKd3D,EA3FiB,CA4F1BL,EAAOiE,WAET5D,EAAsB6D,aApGH,CACfd,GAAI,yBACJC,UAAW,kBACXG,WAAY,YAmGhB1E,EAAQsB,QAAUC,G,2hBCtJE8D,QACW,cAA7B/B,OAAOgC,SAASC,UAEe,UAA7BjC,OAAOgC,SAASC,UAEhBjC,OAAOgC,SAASC,SAASC,MACvB,2D,2FCEOC,EAAmB,SAACC,GAC7B,QAAcC,IAAVD,GAAiC,OAAVA,EAEvB,OAAOA,EAAME,WAAWZ,QAAQ,KAAM,UACjCA,QAAQ,KAAM,UACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,WAIda,EAAmB,SAACH,GAC7B,QAAcC,IAAVD,GAAiC,OAAVA,EAEvB,OAAOA,EAAME,WAAWZ,QAAQ,UAAM,KACjCA,QAAQ,UAAM,KACdA,QAAQ,UAAM,KACdA,QAAQ,UAAM,KACdA,QAAQ,UAAM,KACdA,QAAQ,UAAM,KACdA,QAAQ,UAAM,KACdA,QAAQ,UAAM,KACdA,QAAQ,UAAM,KACdA,QAAQ,UAAM,MA2Bdc,EAAa,SAACJ,GACvB,OAvB6B,SAACK,GAC9B,QAAeJ,IAAXI,GAAmC,OAAXA,EACxB,MAAO,GAaP,IAJA,IAAIC,GADJD,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GAAU,IACMf,QAAQ,IAAK,KACbA,QAAQ,IAAK,KACbA,QAAQ,IAAK,KACbA,QAAQ,IAAK,KACbA,QAAQ,IAAK,KACbA,QAAQ,IAAK,KACdiB,MAAM,KACjBC,EAAIF,EAAE,GACNG,EAAIH,EAAExF,OAAS,EAAI,IAAMwF,EAAE,GAAK,GAChCI,EAAM,+CACHA,EAAIC,KAAKH,IACZA,EAAIA,EAAElB,QAAQoB,EAAK,SACvB,OAAOF,EAAIC,EAMRG,CAAkBb,EAAiBC,KAGjCa,EAAc,SAACC,GACxB,IAAIN,EAAIM,EAAKC,KAAKb,WACdX,EAAIuB,EAAKE,MAAMd,WAAWpF,OAAS,EAAI,IAAImG,OAAOH,EAAKE,MAAMd,YAAcY,EAAKE,MAAMd,WACtFgB,EAAIJ,EAAKK,IAAIjB,WAAWpF,OAAS,EAAI,IAAImG,OAAOH,EAAKK,IAAIjB,YAAcY,EAAKK,IAAIjB,WACpF,OAAOM,EAAES,OAAO,IAAK1B,EAAG,IAAK2B,IAGpBE,EAAc,SAACN,GACxB,IAAIN,EAAIM,EAAKP,MAAM,KAAK,GACpBhB,EAAIuB,EAAKP,MAAM,KAAK,GACpBW,EAAIJ,EAAKP,MAAM,KAAK,GACxB,MAAO,CACHQ,KAAMM,SAASb,GACfQ,MAAOzB,EAAI,GAAK8B,SAAS9B,EAAED,QAAQ,EAAG,KAAO+B,SAAS9B,GACtD4B,IAAKD,EAAI,GAAKG,SAASH,EAAE5B,QAAQ,EAAG,KAAO+B,SAASH,KAa/CI,EAAiB,SAACC,GAC3B,OAAIA,EAAMC,SACFD,EAAMC,SAASC,WAAuCxB,WAAxBsB,EAAMC,SAASC,MAAsBF,EAAMC,SAASC,KAAKC,QAChFH,EAAMC,SAASC,KAAKC,QACtBH,EAAMC,SAASC,WAAuCxB,WAAxBsB,EAAMC,SAASC,KAC3CF,EAAMC,SAASC,KAEf,gIAGJ,iIAYFE,EAAc,WACvB,IAAIC,EAAQ,IAAIC,KAEZC,EAAQF,EAAMG,UAAY,EAE9BH,EAAMI,YAAYJ,EAAMK,cAAeL,EAAMM,WAAYJ,GACzD,IACIK,EADQP,EAAMQ,mBAAmB,SACnB9C,QAAQ,sBAAY,SAAA+C,GAAK,OAAI7E,OAAO8E,aAAaD,EAAME,WAAW,GAAK,SACzF,MAAO,CAEHpB,IAAKE,SAASc,EAAM5B,MAAM,KAAK,IAC/BS,MAAOK,SAASc,EAAM5B,MAAM,KAAK,IAC7BQ,KAAMM,SAASc,EAAM5B,MAAM,KAAK,MAI7BiC,EAhJA,CAGXC,IAAK,kCAELC,aAAc,0CACdC,YAAa,K,QCCJC,EAAS,SAAH,GAAkD,IAA7CC,EAAM,EAANA,OAAQC,EAAa,EAAbA,cAAeC,EAAO,EAAPA,QAASC,EAAM,EAANA,OAEpD,EAA8BC,oBAAS,GAAM,mBAAtCC,EAAO,KAAEC,EAAU,KAC1B,EAA0BF,mBAAS,kCAAQ,mBAApCrB,EAAK,KAAEwB,EAAQ,KAGtBC,qBAAU,WACNC,IAAMC,IAAIC,EAAOf,IAAM,8BAClBgB,MAAK,SAACC,GAEHN,EAASM,EAAIjC,SAEhBkC,OAAM,SAACpC,GACJqC,QAAQC,IAAItC,EAAMC,eAG3B,IAIH,IAAMsC,EAAiBC,mBAEvBV,qBAAU,WAGV,OAFAnG,SAAS8G,iBAAiB,QAASC,GAE5B,WACH/G,SAASgH,oBAAoB,QAASD,OAI1C,IAAMA,EAAc,SAACE,GAEbA,GAAKL,EAAeM,QAAQC,SAASF,EAAExJ,QACvCwI,GAAYD,GAGZC,GAAW,IAMfmB,EAAa,GACjB,OAAQzB,EAAOyB,YACX,IAAK,QACDA,EAAa,oDACb,MAEJ,QACIA,EAAa,oDAIrB,OACI,4BAAQ1F,GAAG,UAEP,yBAAKC,UAAWkE,EAAU,gBAAkB,WAAYhE,QAAS+D,GAC7D,+BACA,+BACA,gCAEJ,kBAAC,UAAO,KAAC,yBAAKjE,UAAU,WAAU,8BAAM,uIACxC,kBAAC,SAAM,KAAC,yBAAKA,UAAU,UAAS,8BAAM,uIACtC,yBAAKA,UAAU,SAEf,yBAAK0F,IAAKT,EAAgBjF,UAAU,mBAChC,yBAAKA,UAAU,gBACX,2BAAIgE,EAAO2B,UACX,2BAAIF,IAER,yBAAKzF,UAAU,gBACdqE,GAAW,yBAAKrE,UAAU,cAAc4F,MAAO,CAACC,UAAW,eACxD,gCACwB,eAAtB7B,EAAOyB,YAAqD,gBAAtBzB,EAAOyB,aAC/C,2BAAIzB,EAAO8B,MAAMC,eACjB,2BAAG,mCAAQ7E,EAAiB6B,IAC5B,yBAAK/C,UAAU,cACQ,eAAtBgE,EAAOyB,YAA+B,kBAAC,IAAI,CAACO,GAAG,gBAAgBhG,UAAU,mBAAkB,8CAC5F,kBAAC,IAAI,CAACgG,GAAG,kBAAkBhG,UAAU,qBAAoB,8EAEzD,4BAAQA,UAAU,MAAME,QAASiE,GAAQ,wFClFhD8B,G,MAAS,WAClB,OACI,4BAAQlG,GAAG,aCHNmG,G,MAAU,WACnB,OACI,6BACI,0BAAMnG,GAAG,eCJRoG,G,MAAQ,SAAH,GAAkF,IAAD,IAA5EC,iBAAS,MAAG,2FAAoB,EAAEC,EAAS,EAATA,UAAWC,EAAO,EAAPA,QAASC,EAAS,EAATA,UAAWX,EAAK,EAALA,MAElE,KAAdS,GAAkC,OAAdA,QAAoCjF,IAAdiF,IAC1CA,EAAY,SAEhB,IAAIG,EAAQ,GAaZ,MAXkB,UAAdH,EACAG,EAAQ,qBACa,SAAdH,EACPG,EAAQ,gEACa,YAAdH,EACPG,EAAQ,gEACa,SAAdH,IACPG,EAAQ,uEAKR,yBAAKzG,GAAG,QAAQ6F,MAAOA,EAAO1F,QAAS,SAACoF,GAAC,OAAKiB,EAAUjB,KACpD,yBAAKtF,UAAWqG,GACZ,yBAAKrG,UAAU,WACX,uBAAGA,UAAU,SACb,2BAAIwG,IAER,yBAAKxG,UAAU,QACX,uBAAGA,UAAU,cAAcoG,GACZ,SAAdC,EACK,6BACE,4BAAQrG,UAAU,MAAME,QAAS,SAACoF,GAAC,OAAKiB,EAAUjB,KAAI,sBACtD,4BAAQtF,UAAU,MAAME,QAAS,SAACoF,GAC9BiB,EAAUjB,GACVgB,MACD,uBAGL,6BACF,4BAAQtG,UAAU,MAAME,QAAS,SAACoF,GAAC,OAAKiB,EAAUjB,KAAI,kCCrCjEmB,G,MAAU,SAAH,GAAqD,IAAhDC,EAAW,EAAXA,YAAY,EAAD,EAAEC,mBAAW,IAAC,YAAS,EAAEf,EAAK,EAALA,MAGzD,OACQ,yBAAK5F,UAAU,UAAU4F,MAAOA,GAC5B,yBAAM5F,UAAW2G,GACb,uBAAG3G,UAAU,SACb,uBAAGA,UAAU,cAAc0G,O,QCHzCE,G,MAAK,iKAkEL,OAlEK,oCAEPC,MAAQ,CACJC,YAAY,EACZC,iBAAiB,EAGjBC,GAAG,EACHC,GAAG,EACHC,GAAG,EACHC,GAAG,EAGHC,IAAM,QACR,EAIFC,WAAa,WACT,OAAK,EAAKtL,MAAMmI,QAEL,EAAKnI,MAAMmI,QACX,iBADJ,EADI,UAIb,EAaFoD,UAAY,SAAC7F,GACT,IAAK,IAAIzF,EAAI,EAAGA,GAAK,GAAIA,IACjBA,IAAMyF,GACN,EAAK8F,SAAS,eAAGvL,GAAI,IAG7B,EAAKuL,SAAS,eACT9F,GAAK,EAAKoF,MAAMpF,MAEvB,EAYF+F,WAAa,WACLzI,OAAO0I,YAAc,IACrB,EAAK1L,MAAM2L,aAEX,EAAKH,SAAS,CACVR,iBAAiB,IAClB,kBAAM,EAAKhL,MAAM4L,gBAE3B,EAmIA,OAnIA,+CAxCD,SAAmBC,GACf,GAAIA,EAAU1D,UAAY7G,KAAKtB,MAAMmI,QAAS,CAE1C,IAAI2D,EAAMxJ,SAASyJ,gBAEfV,GADmBrI,OAAOgJ,aAAeF,EAAIG,YAAcH,EAAII,WAAa,GACtD,GAAG,KAC7B5K,KAAKkK,SAAS,CAAEH,IAAKA,OAG5B,+BAaD,WAAqB,IAAD,OAChBrC,QAAQC,IAAI3H,KAAKtB,OACjBsB,KAAKmK,aACLzI,OAAOoG,iBAAiB,UAAU,WAC9B,EAAKqC,kBAGZ,oBAaD,WAAU,IAAD,OAEL,OACI,yBAAKzH,GAAG,QAAQ6F,MAAO,CAACwB,IAAM/J,KAAKwJ,MAAMO,MACrC,yBAAKpH,UAAW3C,KAAKgK,cACjB,wBAAIrH,UAAU,iBACVkI,aAAc7K,KAAKwJ,MAAMC,WAAa,KAAO,kBAAM,EAAKS,SAAS,CAAER,iBAAiB,KACpFoB,aAAc9K,KAAKwJ,MAAMC,WAAa,KAAO,kBAAM,EAAKS,SAAS,CAAER,iBAAiB,MAEpF,uBAAG/G,UAAU,6BACTwG,MAAM,iEACNZ,MAAOvI,KAAKwJ,MAAMC,WAAa,GAAK,CAAEsB,UAAW,gBAAiBC,MAAO,WACzEnI,QAAS,kBAAM,EAAKqH,SAAS,CAAET,YAAa,EAAKD,MAAMC,gBAC3D,uBAAG9G,UAAU,SAAQ,8CAGrB,4BACI,kBAAC,IAAI,CAACgG,GAAG,IAAIhG,UAAU,8BACnB4F,MAAwC,MAAjCvI,KAAKtB,MAAMgF,SAASuH,SAAmB,CAC1CC,gBAAiB,UACjBF,MAAO,QACPG,aAAc,OACd,IACHnL,KAAKwJ,MAAME,iBAAmB,sDAGN,UAA/B1J,KAAKtB,MAAMiI,OAAOyE,UAChB,4BACI,kBAAC,IAAI,CAACzC,GAAG,eAAehG,UAAU,mBAChC3C,KAAKwJ,MAAME,iBAAmB,yEAGP,UAA/B1J,KAAKtB,MAAMiI,OAAOyE,UACpB,4BACA,kBAAC,IAAI,CAACzC,GAAG,sBAAsBhG,UAAU,mBAC/B3C,KAAKwJ,MAAME,iBAAmB,8EAGP,UAA/B1J,KAAKtB,MAAMiI,OAAOyE,UAChB,4BACI,kBAAC,IAAI,CAACzC,GAAG,mBAAmBhG,UAAU,mBACpC3C,KAAKwJ,MAAME,iBAAmB,yEAGP,UAA/B1J,KAAKtB,MAAMiI,OAAOyE,UAChB,4BAEI,kBAAC,IAAI,CAACzC,GAAG,IAAIhG,UAAU,kBACnBE,QAAS,kBAAM,EAAKoH,UAAU,KAAKjK,KAAKwJ,MAAME,iBAAmB,gEACjE,uBAAG/G,UAAW3C,KAAKwJ,MAAM,GAAK,iCAAmC,6BAErE,yBAAK7G,UAAW3C,KAAKwJ,MAAM,GAAK,mBAAqB,mBACjD,kBAAC,IAAI,CAACb,GAAG,WAAWhG,UAAU,mBAC5B3C,KAAKwJ,MAAME,iBAAmB,sDAEpC,yBAAK/G,UAAW3C,KAAKwJ,MAAM,GAAK,mBAAqB,mBACjD,kBAAC,IAAI,CAACb,GAAG,gBAAgBhG,UAAU,mBACjC3C,KAAKwJ,MAAME,iBAAmB,mEAOxC,4BAEI,kBAAC,IAAI,CAACf,GAAG,IAAIhG,UAAU,kBACnBE,QAAS,kBAAM,EAAKoH,UAAU,KAAKjK,KAAKwJ,MAAME,iBAAmB,8CACjE,uBAAG/G,UAAW3C,KAAKwJ,MAAM,GAAK,iCAAmC,6BAExC,UAA/BxJ,KAAKtB,MAAMiI,OAAOyE,UAChB,yBAAKzI,UAAW3C,KAAKwJ,MAAM,GAAK,mBAAqB,mBACjD,kBAAC,IAAI,CAACb,GAAG,cAAchG,UAAU,mBAC/B3C,KAAKwJ,MAAME,iBAAmB,6DAKX,UAA/B1J,KAAKtB,MAAMiI,OAAOyE,UAChB,4BAEI,yBAAKzI,UAAW3C,KAAKwJ,MAAM,GAAK,mBAAqB,mBACjD,kBAAC,IAAI,CAACb,GAAG,oBAAoBhG,UAAU,mBACrC3C,KAAKwJ,MAAME,iBAAmB,kGAMX,UAA/B1J,KAAKtB,MAAMiI,OAAOyE,UAChB,4BAEI,yBAAKzI,UAAW3C,KAAKwJ,MAAM,GAAK,mBAAqB,mBACjD,kBAAC,IAAI,CAACb,GAAG,4BAA4BhG,UAAU,mBAC7C3C,KAAKwJ,MAAME,iBAAmB,yEAMN,UAA/B1J,KAAKtB,MAAMiI,OAAOyE,UACrB,4BAEI,yBAAKzI,UAAW3C,KAAKwJ,MAAM,GAAK,mBAAqB,mBACjD,kBAAC,IAAI,CAACb,GAAG,sBAAsBhG,UAAU,mBACvC3C,KAAKwJ,MAAME,iBAAmB,+EAK3C,IAAkC,UAA/B1J,KAAKtB,MAAMiI,OAAOyE,UAClB,4BAEI,kBAAC,IAAI,CAACzC,GAAG,IAAIhG,UAAU,kBACnBE,QAAS,kBAAM,EAAKoH,UAAU,KAAKjK,KAAKwJ,MAAME,iBAAmB,6CACjE,uBAAG/G,UAAW3C,KAAKwJ,MAAM,GAAK,iCAAmC,6BAErE,yBAAK7G,UAAW3C,KAAKwJ,MAAM,GAAK,mBAAqB,mBACjD,kBAAC,IAAI,CAACb,GAAG,WAAWhG,UAAU,mBAC5B3C,KAAKwJ,MAAME,iBAAmB,sFAU/D,EArMM,CAAS2B,IAAM9H,YAwMX+H,cAAW/B,GCrFXgC,EArHK,kDAEhB,WAAY7M,GAAQ,IAAD,EAaQ,OAbR,qBACf,cAAMA,IAgBV8M,kBAAoB,WAEhB,IAAInG,EAAQ,IACR,EAAKmE,MAAMiC,YAAY7M,OAAS,GAAK,EAAK4K,MAAMkC,eAAe9M,OAAS,IACxEyG,EAAMsG,KAAK,qLAEX,EAAKnC,MAAMiC,cAAgB,EAAKjC,MAAMkC,gBACtCrG,EAAMsG,KAAK,wNAEM,IAAjBtG,EAAMzG,QACN,EAAKsL,SAAS,CAAE0B,OAAQvG,IAGxB,EAAKkG,mBAEL,EAAK7M,MAAMmN,UAAU,gRACrB,EAAK3B,SAAS,CAAE0B,OAAQvG,MAG9B,EACFkG,eAAiB,WACb,IAAIO,EAAc,CACdC,MAAO,EAAKvC,MAAMwC,SAClBC,MAAO,EAAKzC,MAAMiC,aAEtBrE,IAAM8E,KAAK5E,EAAOf,IAAM,2CAA4CuF,GAAcvE,MAAK,WAEnF,EAAK7I,MAAMmN,UAAU,kJAAgC,cAEtDpE,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cA7CtB,EAAKkE,MAAQ,CACTiC,YAAa,GAEbC,eAAe,GACfE,OAAQ,GACR9E,OAAQ,EAAKpI,OAAS,EAAKA,MAAMoI,OAEjCkF,SAAU,EAAKtN,MAAQ,EAAKA,MAAMsN,SAAW,MAEjDtE,QAAQC,IAAI,EAAKjJ,OAAM,EAmG1B,OAlGA,mCA0CD,WAAU,IAAD,OACL,OACI,yBAAKgE,GAAG,iBAAiB6F,MAAOvI,KAAKtB,MAAM6J,OACvC,yBAAK5F,UAAU,2BAGX,yBAAKA,UAAU,cACX,4BAAkC,IAA7B3C,KAAKwJ,MAAMoC,OAAOhN,OAAe,GACjCoB,KAAKwJ,MAAMoC,OAAOQ,KAAI,SAAC/G,EAAO1G,GAAC,OAC5B,wBAAIM,IAAKN,GAAI0G,QAGzB,wBAAI1C,UAAU,iBAAgB,gFAC9B,yBAAKA,UAAU,YAWX,yBAAKA,UAAU,aACX,uBAAGA,UAAU,cAAa,wEAC1B,2BAAOA,UAAU,QAAQ0J,YAAY,8EAAkBzJ,KAAK,WACxDvE,MAAOwF,EAAiB7D,KAAKwJ,MAAMiC,aACnCa,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAC3BuB,YAAaxH,EAAiBgE,EAAExJ,OAAOJ,aAOnD,yBAAKsE,UAAU,aACX,uBAAGA,UAAU,cAAa,uGAC1B,2BAAOA,UAAU,QAAQC,KAAK,WAC1BvE,MAAOwF,EAAiB7D,KAAKwJ,MAAMkC,gBACnCY,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAC3BwB,eAAgBzH,EAAiBgE,EAAExJ,OAAOJ,cAO1D,yBAAKsE,UAAU,YACX,4BAAQA,UAAU,MACdE,QAAS,kBAAM,EAAKnE,MAAMmN,UAAU,mOAAgD,OAAQ,EAAKL,qBAAoB,qFAM5I,EAlHe,CAASH,IAAM9H,WCkFpBgJ,G,MAjFJ,iKAwDL,OAxDK,oCAGP/C,MAAQ,CACJgD,SAAU,GACVC,SAAU,GACVC,UAAU,EACVC,aAAc,GAChB,EAGFC,MAAQ,WAGwB,KAAxB,EAAKpD,MAAMgD,UAA2C,KAAxB,EAAKhD,MAAMiD,SACzC,EAAK/N,MAAMmN,UAAU,iMAGrB,EAAKnN,MAAMmO,cAGXzF,IAAM8E,KAAK5E,EAAOf,IAAM,0BAA2B,CAC3C,SAAY,EAAKiD,MAAMgD,SACvB,SAAY,EAAKhD,MAAMiD,SACvB,qBAAuB,IAG1BlF,MAAK,SAACC,GACHE,QAAQC,IAAIH,EAAIjC,MAEhB,EAAK7G,MAAMyN,cACX,EAAKW,OAAOtF,EAAIjC,KAAKY,OACrB,EAAKzH,MAAMqO,cAEdtF,OAAM,SAACpC,GAGJ,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,aAErBiC,MAAK,iBAIhB,EASFuF,OAAS,SAACE,GACG,KAARA,EAActF,QAAQC,IAAI,uBAAyBsF,aAAaC,QAAQ,MAAOF,IACnF,EAsBA,OAtBA,8CATD,cAIC,oBAQD,WAAU,IAAD,OACL,OACI,yBAAKtK,GAAG,QAAQ6F,MAAO,CAAE4E,gBAAiB,qCACtC,yBAAKxK,UAAU,aAEX,uBAAGA,UAAU,SAAQ,+HACrB,2BAAOC,KAAK,OAAOyJ,YAAY,0DACxBC,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAACsC,SAAUvE,EAAExJ,OAAOJ,SACnD+O,UAAW,SAACnF,GAAC,MAAe,UAAVA,EAAEhJ,IAAkB,EAAK2N,QAAU,QAC5D,2BAAOhK,KAAK,WAAWyJ,YAAY,qBAC5BC,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAACuC,SAAUxE,EAAExJ,OAAOJ,SACnD+O,UAAW,SAACnF,GAAC,MAAe,UAAVA,EAAEhJ,IAAkB,EAAK2N,QAAU,QAC5D,uBAAGjK,UAAW3C,KAAKwJ,MAAMkD,SAAW,0BAA4B,+BAC7D7J,QAAS,kBAAM,EAAKqH,SAAS,CAACwC,UAAW,EAAKlD,MAAMkD,aAAY,oFACnE,4BAAQ7J,QAAS7C,KAAK4M,OAAO,4BAC7B,uBAAGjK,UAAU,SAASR,KAAK,KAAI,mJAI9C,EA9EM,CAASkJ,IAAM9H,Y,iBCFb8J,EAAQ,SAAH,GAA6C,IAAxCC,EAAY,EAAZA,aAAcC,EAAQ,EAARA,SAAUC,EAAS,EAATA,UAE3C,EAAgDzG,mBAAS,IAAG,mBAArD0G,EAAgB,KAAEC,EAAmB,KAC5C,EAA0C3G,mBAAS,IAAG,mBAA/C4G,EAAa,KAAEC,EAAgB,KACtC,EAAsC7G,mBAAS,IAAG,mBAA3C8G,EAAW,KAAEC,EAAc,KAClC,EAAwC/G,mBAAS,GAAE,mBAA5CgH,EAAY,KAAEC,EAAe,KACpC,EAAwBjH,mBAAS4G,GAAc,mBAAxCM,EAAI,KAAEC,EAAO,KACpB,EAAoBnH,mBAAS,GAAE,mBAAxB4B,EAAE,KAAEwF,EAAK,KAChB,EAAgDpH,mBAAS,IAAG,mBAArDqH,EAAgB,KAAEC,EAAmB,KACtCC,EAAczG,iBAAO,MAC3B,EAAwCd,mBAASuG,GAAa,mBAAvDiB,EAAY,KACnB,GADoC,KACcxH,mBAAS,KAAG,mBAAvDyH,EAAiB,KAClBC,GADwC,KAC9B5G,oBAGhBV,qBAAU,WACN,IAAIuH,EAAO,GACXnB,EAASnB,KAAI,SAACuC,GAAI,OACdC,KAAKC,UAAUF,GAAMG,SAASrB,GAAoBiB,EAAK/C,KAAKgD,GAAQ,QAExEN,EAAoBK,GAGpB,IADA,IAAIK,EAAM,GACDpQ,EAAI,EAAGA,EAAI+P,EAAK9P,OAAS+O,EAAehP,IAC7CoQ,EAAIpD,KAAKhN,EAAI,GAEjBmP,EAAeiB,GACO,MAAlBpB,GACAO,EAAQ,GACRC,EAAMO,EAAK9P,UAEXsP,EAAQP,EAAgBI,EAAeJ,GACvCQ,EAAMR,EAAgBI,MAG3B,CAACR,EAAUI,EAAeI,EAAcN,IAG3C,IAAMuB,EAAY,SAACC,GACf,IAAIhO,EAAOiO,EAAMC,EAAWxQ,EAAGyF,EAAGE,EAAG8K,EAAcC,EAAKC,EAAc,EAKtE,IAJArO,EAAQqN,EAAYpG,QACpBiH,GAAY,EAEZE,EAAM,MACCF,GAAW,CAGd,IAFAA,GAAY,EACZD,EAAOjO,EAAMiO,KACRvQ,EAAI,EAAGA,EAAKuQ,EAAKtQ,OAAS,EAAID,IAK/B,GAJAyQ,GAAe,EACfhL,EAAI8K,EAAKvQ,GAAG4Q,qBAAqB,MAAMN,GACvC3K,EAAI4K,EAAKvQ,EAAI,GAAG4Q,qBAAqB,MAAMN,GAE/B,QAARI,GAEA,GAAI,KAAK5K,KAAKR,EAAiBG,EAAEoL,aAE7B,GAAIrK,SAASlB,EAAiBG,EAAEoL,UAAUnL,MAAM,KAAKoL,QAAUtK,SAASlB,EAAiBK,EAAEkL,UAAUnL,MAAM,KAAKoL,QAAS,CACrHL,GAAe,EACf,YAGJ,GAAIhL,EAAEoL,UAAUE,cAAgBpL,EAAEkL,UAAUE,cAAe,CACvDN,GAAe,EACf,YAKL,GAAY,SAARC,EACP,GAAI,KAAK5K,KAAKR,EAAiBG,EAAEoL,aAE7B,GAAIrK,SAASlB,EAAiBG,EAAEoL,UAAUnL,MAAM,KAAKoL,QAAUtK,SAASlB,EAAiBK,EAAEkL,UAAUnL,MAAM,KAAKoL,QAAS,CACrHL,GAAe,EACf,YAGJ,GAAIhL,EAAEoL,UAAUE,cAAgBpL,EAAEkL,UAAUE,cAAe,CACvDN,GAAe,EACf,MAKZA,GACAF,EAAKvQ,GAAGgR,WAAWC,aAAaV,EAAKvQ,EAAI,GAAIuQ,EAAKvQ,IAClDwQ,GAAY,EACZG,KAGoB,IAAhBA,GAA6B,QAARD,IACrBA,EAAM,OACNF,GAAY,KA0B5B,OACI,yBAAKxM,UAAU,mBACX,yBAAKA,UAAU,gBACX,yBAAKA,UAAU,YACX,yBAAKA,UAAU,oBACX,2BAAOA,UAAU,cAAa,wEAC9B,2BACItE,MAAOwF,EAAiB4J,GACxBnB,SAAU,SAACrE,GAAC,OAAKyF,EAAoBzJ,EAAiBgE,EAAExJ,OAAOJ,SAC/DsE,UAAU,QAAQC,KAAK,OAAOiN,aAAa,MAC3CxD,YAAY,6DAAgByD,WAAS,KAG7C,yBAAKnN,UAAU,oBACX,2BAAOA,UAAU,cAAa,iEAC9B,yBAAKA,UAAU,gBACUoB,IAApB0K,EAAQvG,SAAyB,kBAAC,IAAK,CACpCxF,GAAG,wBACHC,UAAU,MACV1B,MAAOwN,EAAQvG,QACf3G,SAAS,WACTF,MAAM,WACNyB,WAAW,+BAKvB,yBAAKH,UAAU,oBACX,2BAAOA,UAAU,cAAa,oFAC9B,4BAAQA,UAAU,QAAQtE,MAAOsP,EAAerB,SAAU,SAACrE,GACvD2F,EAAiB3F,EAAExJ,OAAOJ,OAC1B2P,EAAgB,KAEhB,4BAAQ/O,IAAK,EAAGZ,MAAO,GAAIwF,EAAiB,IAC5C,4BAAQ5E,IAAK,EAAGZ,MAAO,IAAKwF,EAAiB,KAC7C,4BAAQ5E,IAAK,EAAGZ,MAAO,IAAKwF,EAAiB,KAC7C,4BAAQ5E,IAAK,EAAGZ,MAAO,IAAKwF,EAAiB,KAC7C,4BAAQ5E,IAAK,EAAGZ,MAAO,KAAMwF,EAAiB,MAC9C,4BAAQ5E,IAAK,EAAGZ,MAAO,KAAS,yBAK5C,yBAAKsE,UAAU,mBACX,2BAAG,kCAAgB,IAATsL,EAAa,SAAMpK,EAAiBoK,GAAM,iBAAKtF,EAAKyF,EAAiBxP,OAASiF,EAAiBuK,EAAiBxP,QAAUiF,EAAiB8E,GAAI,iBAAK9E,EAAiBuK,EAAiBxP,UAGpM,yBAAK+D,UAAU,mBACQ,MAAlBgL,GAA6B,uBAAGhL,UAAU,eACV4F,MAAO,CACHwH,MAAO,OACPC,YAAa,gBACbC,OAAQ,OACRC,WAAY,QAEhBrN,QAAS,WACLmL,EAAgB,KAEpD,kCACkB,MAAlBL,GAA6B,uBAAGhL,UAAU,eACV4F,MAAO,CACHwH,MAAO,OACPC,YAAa,gBACbC,OAAQ,OACRC,WAAY,QAEhBrN,QAAS,WACgB,IAAjBkL,GACAC,EAAgBD,EAAe,KAGvE,4BACAF,EAAYsC,MAAMpC,EAAe,EAAI,EAAIA,EAAe,EAAGA,EAAe,GAAG3B,KAAI,SAACgE,GAC/E,OAAO,uBAAGzN,UAAU,eAAe1D,IAAKmR,EAAKvN,QAAS,kBAAMmL,EAAgBoC,IAClE7H,MAAOwF,IAAiBqC,EAAM,CAC1BlF,gBAAiB,UACjBF,MAAO,QACPqF,WAAY,OACZ,IAAKxM,EAAiBuM,OAErB,MAAlBzC,GAA6B,uBAAGhL,UAAU,eACV4F,MAAO,CACHwH,MAAO,OACPC,YAAa,gBACbC,OAAQ,OACRC,WAAY,QAEhBrN,QAAS,WACDkL,IAAiBF,EAAYjP,QAC7BoP,EAAgBD,EAAe,KAGvE,4BACkB,MAAlBJ,GAA6B,uBAAGhL,UAAU,eACV4F,MAAO,CACHwH,MAAO,OACPC,YAAa,gBACbC,OAAQ,OACRC,WAAY,QAEhBrN,QAAS,WACLmL,EAAgBH,EAAYjP,UAEhE,oCAIT,yBAAK+D,UAAU,mBACX,2BAAO0F,IAAKoG,GACR,+BACA,4BACA,wBAAIxP,IAAK,EAAG4D,QAAS,kBAAMmM,EAAU,IAC7BrM,UAAU,mBAAkB,4BAC/B2K,EAAalB,KAAI,SAACkE,EAAa3R,GAC3B,GAAI4P,EAAaO,SAASwB,GACvB,OAAO,wBAAIrR,IAAKN,EAAE,EAAGkE,QAAS,kBAAMmM,EAAUrQ,EAAE,IACzCgE,UAAU,mBAAmBkB,EAAiByM,SAKjE,2BAAOjI,IAAKiG,GACXF,EAAiB+B,MAAMlC,EAAMtF,GAAIyD,KAAI,SAACuC,EAAMhQ,GAAC,OAC1C,wBAAIM,IAAKN,GACL,wBAAIM,IAAK,GAAI4E,EAAiBlF,EAAI,IACjC6O,EAAUpB,KAAI,SAAC7G,EAAM5G,GAClB,IAAK6P,EAAkBM,SAASnQ,GAC5B,OAAO,wBAAIM,IAAKN,EAAE,GAAI4G,EAAKoJ,gBCrPlD4B,G,MAAQ,SAAH,GAA+B,IAA1BC,EAAY,EAAZA,aAAcjI,EAAK,EAALA,MAEjC,OACI,yBAAK5F,UAAU,QAAQ4F,MAAOA,GACzBiI,K,gBCisBEC,EAjsBC,kDAEZ,WAAY/R,GAAQ,IAAD,EAgCd,OAhCc,qBACf,cAAMA,IAyCVgS,YAAc,SAACC,GAAK,OAAKA,EAAMlS,OAAOmS,UAAQ,EAE9CC,OAAS,WACL,EAAKnS,MAAMmO,cACX,IAAMiE,EAAQ,CACVC,UAAW,EAAKvH,MAAMwH,UACtBC,SAAU,EAAKzH,MAAM0H,SACrBC,WAAY,EAAK3H,MAAM4H,YAE3BhK,IAAM8E,KAAK5F,EAAOC,IAAM,uCAAwCuK,GAAOvJ,MAAK,SAACC,GAEzE,EAAK9I,MAAMyN,cACX,EAAKjC,SAAS,CACVmH,YAAa7J,EAAIjC,UAGtBkC,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAExB,EAKFgM,MAAQ,WAEJ,EAAKpH,SAAS,CACV8G,UAAW,GACXE,SAAU,GACVC,WAAY,GACZvF,OAAQ,GACR2F,SAAU,MACVC,UAAW7M,EAAYc,KACvBgM,iBAAkBhM,IAClBiM,QAAS/M,EAAYgN,gBAAM,MAAMC,YACjCC,eAAgBF,gBAAM,MAAMC,cAMlC,EAMFE,mCAAqC,SAACC,EAAiBC,GACnD5K,IAAMC,IAAIf,EAAOC,IAAM,+EAAiFwL,GACnGxK,MAAK,SAACC,GAEH,EAAK0C,SAAS,CAAE+H,sBAAuBzK,EAAIjC,OACvC,uBAAmBxB,IAAbiO,EAAyBA,IAAa,WAEnDvK,OAAM,SAACpC,GACJ,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAE5B,EACF4M,kBAAoB,SAACH,EAAgBI,EAAMH,GACvC5K,IAAMC,IAAIf,EAAOC,IAAM,8DAAgEwL,EAAiB,SAAWI,GAC9G5K,MAAK,SAACC,GAEH,EAAK0C,SAAS,CAAEkI,WAAY5K,EAAIjC,OAC5B,uBAAmBxB,IAAbiO,EAAyBA,IAAa,WAEnDvK,OAAM,SAACpC,GACJ,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAE5B,EACF+M,2BAA6B,SAACN,EAAgBI,EAAMG,EAAmBN,GAClE5K,IAAMC,IAAIf,EAAOC,IAAM,uEAAyEwL,EAAiB,SAAWI,EAAO,sBAAwBG,GACvJ/K,MAAK,SAACC,GAECA,EAAIjC,KAAK3G,OAAS,EAClB,EAAKsL,SAAS,CACVkI,WAAY5K,EAAIjC,KAChBgN,oBAAqB/K,EAAIjC,KAAK,GAAGgN,oBACjCC,WAAYhL,EAAIjC,KAAK,GAAGiN,aAGxB,uBAAmBzO,IAAbiO,EAAyBA,IAAa,QAGhD,EAAK9H,SAAS,CACVkI,WAAY,GACZG,oBAAqB,GACrBC,WAAY,QAMvB/K,OAAM,SAACpC,GACJ,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAE5B,EAEFmN,wBAA0B,SAACV,EAAgBI,EAAMH,GAC7C5K,IAAMC,IAAIf,EAAOC,IAAM,oEAAsEwL,EAAiB,SAAWI,EAAO,cAAgB,EAAK3I,MAAMgI,UAAY,YAAc,EAAKhI,MAAMkI,SAC3LnK,MAAK,SAACC,GAECA,EAAIjC,KAAK3G,OAAS,EAClB,EAAKsL,SAAS,CACVkI,WAAY5K,EAAIjC,KAChBmN,gBAA+B,OAAblL,EAAIjC,WAA8BxB,IAAbyD,EAAIjC,KAAsBiC,EAAIjC,KAAK,GAAGoN,gBAAkB,KAE/F,uBAAmB5O,IAAbiO,EAAyBA,IAAa,QAGhD,EAAK9H,SAAS,CAAEkI,WAAY,GAAIM,gBAAgB,QAGvDjL,OAAM,SAACpC,GACJ,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAE5B,EACFsN,gBAAkB,SAACN,EAAmBP,EAAiBC,GACnD5K,IAAMC,IAAIf,EAAOC,IAAM,gEAAkE+L,EAAoB,mBAAqBP,GAC7HxK,MAAK,SAACC,GAEH,EAAK0C,SAAS,CACV2I,iBAAkBrL,EAAIjC,KACtBgN,oBAAqB/K,EAAIjC,KAAK,GAAGgN,oBACjCC,WAAYhL,EAAIjC,KAAK,GAAGiN,aAExB,uBAAmBzO,IAAbiO,EAAyBA,IAAa,WAEnDvK,OAAM,SAACpC,GACJ,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAhL1B,EAAKkE,MAAQ,CACTwH,UAAW,GACXE,SAAU,GACV4B,eAAgB,KAChBC,YAAa,KACbL,gBAAiB,GACjBtB,WAAY,GACZxF,OAAQ,GACRiH,iBAAkB,GAClBtB,SAAU,MACV9D,iBAAkB,GAClBuF,iBAAiB,EACjBC,gBAAgB,EAChBC,eAAe,EACfC,kBAAkB,EAClBC,mBAAmB,EACnB/B,YAAa,GACbY,sBAAuB,GACvBT,UAAW7M,EAAYc,KACvBgM,iBAAkBhM,IAClBiM,QAAS/M,EAAYgN,gBAAM,MAAMC,YACjCC,eAAgBF,gBAAM,MAAMC,WAC5BW,oBAAoB,GACpBC,WAAW,GACXa,UAAU,GACVC,WAAW,IACd,EA4pBJ,OA1pBA,8CAED,WACItT,KAAKtB,MAAMyN,cAEXnM,KAAK6Q,WACR,oBAiJD,WAAU,IAAD,OACL,OACI,yBAAKnO,GAAG,aAAa6F,MAAOvI,KAAKtB,MAAM6J,OACnC,6BAEI,wBAAI5F,UAAU,iBAAgB,8EAE9B,yBAAKA,UAAU,YAGX,yBAAKA,UAAU,aACX,2BAAOA,UAAU,cAAa,uBAC9B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAAa8C,UAAW,IAC3DnV,MAAOwF,EAAiB7D,KAAKwJ,MAAMwH,WACnC1E,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAE8G,UAAW/M,EAAiBgE,EAAExJ,OAAOJ,aAI9E,yBAAKsE,UAAU,aACX,uBAAGA,UAAU,cAAa,wEAC1B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAAa8C,UAAW,IAE3DnV,MAAOwF,EAAiBA,EAAiB7D,KAAKwJ,MAAM0H,WACpD5E,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAEgH,SAAUjN,EAAiBgE,EAAExJ,OAAOJ,cAQjF,yBAAKsE,UAAU,YACX,yBAAKA,UAAU,aACX,uBAAGA,UAAU,cAAa,qDAC1B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAEnCrS,MAAOwF,EAAiB7D,KAAKwJ,MAAM4H,YACnC9E,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAEkH,WAAYnN,EAAiBgE,EAAExJ,OAAOJ,MAAM+E,QAAQ,wBAAe,YAWhH,yBAAKT,UAAU,iBACX,4BAAQA,UAAU,MACdE,QAAS,kBAAK,EAAKgO,WACd,kCAGR,4BAAQlO,UAAU,MACfE,QAAS,kBAAK,EAAKyO,MAAM,KAClB,qDAMf,yBAAK3O,UAAU,cACX,4BAAkC,IAA7B3C,KAAKwJ,MAAMoC,OAAOhN,OAAe,GACjCoB,KAAKwJ,MAAMoC,OAAOQ,KAAI,SAAC/G,EAAO1G,GAAC,OAC5B,wBAAIM,IAAKN,GAAI0G,QAKzB,kBAAC,EAAK,CAEFiI,aAAc,CACV,qBACA,sEACA,oDACA,0DACA,oDACA,kCACA,gEACA,6CACA,kCACA,wCAIJC,SACIvN,KAAKwJ,MAAM6H,YAGf7D,UAAW,CACP,SAAApJ,GACI,OAAOP,EAAiBO,EAAE4M,YAG9B,SAAA5M,GACI,OAAOP,EAAiBO,EAAE8M,WAI9B,SAAA9M,GACI,OAAOP,EAAiBO,EAAEgN,aAE9B,SAAAhN,GACI,OAAOF,EAAWL,EAAiBO,EAAEqP,aAEzC,SAAArP,GACI,OAAOF,EAAWL,EAAiBO,EAAEsP,UAEzC,SAAAtP,GACI,OAAOF,EAAWL,EAAiBO,EAAEuP,WAEzC,SAAAvP,GACI,OAAOF,EAAWL,EAAiBO,EAAEwP,iBAEzC,SAAAxP,GACI,OAAO,4BAAQzB,UAAU,MAAME,QAAS,kBACpC,EAAK4P,wBAAwBrO,EAAE0O,eAAgB,EAAG,EAAK5I,SAAS,CAC5D8I,iBAAiB,EACjBF,eAAgB1O,EAAE0O,eAClBC,YAAY,OAElB,+CAEN,SAAA3O,GAGI,OAAO,4BAAQzB,UAAU,MAAME,QAAS,kBACpC,EAAKiP,mCAAmC1N,EAAE0O,eAAgB,EAAK5I,SAAS,CACpE4I,eAAgB1O,EAAE0O,eAClBK,kBAAkB,OAGxB,oCAGN,SAAA/O,GAEI,OAAO,4BAAQzB,UAAU,MAAME,QAAS,kBACpC,EAAKqP,kBAAkB9N,EAAE0O,eAAgB,EAAG,EAAK5I,SAAS,CACtD4I,eAAgB1O,EAAE0O,eAClBG,gBAAgB,EAChBF,YAAa,OAEnB,6CAQjB/S,KAAKwJ,MAAMwJ,iBACR,kBAAC,EAAK,CAACzK,MAAO,CAAEC,UAAW,yBACvBgI,aACI,6BACI,4BACI7N,UAAU,QACVC,KAAK,SACLC,QAAS,kBAAM,EAAKqH,SAAS,CACzB8I,iBAAiB,OAGE,IAA1BhT,KAAKwJ,MAAMuJ,aACZ,yBAAKpQ,UAAU,YACX,yBAAKA,UAAU,aACX,2BAAOA,UAAU,cAAa,+CAC9B,kBAAC,IAAU,CACPtE,MAAO2B,KAAKwJ,MAAMiI,iBAClBnF,SAAU,SAACuH,GACP,EAAK3J,SAAS,CACVuH,iBAAkBoC,EAClBrC,UAAW7M,EAAYkP,MAG/BC,iBAAiB,qIACjBC,eAAe,cACfC,yBAAuB,EACvBC,OAAO,QAGf,yBAAKtR,UAAU,aACX,2BAAOA,UAAU,cAAa,+CAC9B,kBAAC,IAAU,CACPtE,MAAO2B,KAAKwJ,MAAMqI,eAClBvF,SAAU,SAACuH,GACP,EAAK3J,SAAS,CACV2H,eAAgBgC,EAChBnC,QAAS/M,EAAYkP,MAG7BC,iBAAiB,qIACjBC,eAAe,cACfC,yBAAuB,EACvBC,OAAO,SAKS,IAA3BjU,KAAKwJ,MAAMuJ,aACR,yBAAKpQ,UAAU,mBACX,4BAAQA,UAAU,MAAME,QAAS,kBAAM,EAAK4P,wBAAwB,EAAKjJ,MAAMsJ,eAAgB,KAAI,mCAI3G,wBAAInQ,UAAU,iBACkB,IAA3B3C,KAAKwJ,MAAMuJ,YAAoB,uEAAkB,6DAGtD,wBAAIpQ,UAAU,iBACkB,IAA3B3C,KAAKwJ,MAAMuJ,YAAoB,qCAAc7O,EAAWlE,KAAKwJ,MAAMkJ,iBAAmB,IAI5D,OAA1B1S,KAAKwJ,MAAM4I,iBAAiDrO,IAA1B/D,KAAKwJ,MAAM4I,YAC9C,kBAAC,EAAK,CACF9E,aAAc,CACV,2BACA,iEAIJC,SAAoC,OAA1BvN,KAAKwJ,MAAM4I,WAAsB,GAAKpS,KAAKwJ,MAAM4I,WAE3D5E,UAAW,CAEP,SAAAmB,GACI,OAAOzK,EAAWyK,EAAKuF,eAE3B,SAAAvF,GACI,OAAO9K,EAAiB8K,EAAKwF,oBAY5DnU,KAAKwJ,MAAM2J,kBACR,kBAAC,EAAK,CAAC5K,MAAO,CAAEC,UAAW,yBACvBgI,aACI,6BACI,4BACI7N,UAAU,QACVC,KAAK,SACLC,QAAS,kBAAM,EAAKqH,SAAS,CACzBiJ,kBAAkB,OAG1B,wBAAIxQ,UAAU,iBAAgB,4DAKY,OAArC3C,KAAKwJ,MAAMyI,4BAAuElO,IAArC/D,KAAKwJ,MAAMyI,uBACzD,kBAAC,EAAK,CACF3E,aAAc,CACV,8CACA,8CACA,oDACA,sEACA,0DACA,gEACA,iCACA,8EAGJC,SAA+C,OAArCvN,KAAKwJ,MAAMyI,sBAAiC,GAAKjS,KAAKwJ,MAAMyI,sBAEtEzE,UAAW,CAEP,SAAApJ,GACI,OAAOF,EAAWE,EAAEgQ,YAGxB,SAAAhQ,GACI,OAAOF,EAAWE,EAAEiQ,mBAExB,SAAAjQ,GACI,OAAOP,EAAiBO,EAAEkQ,aAE9B,SAAAlQ,GACI,OAAOP,EAAiBO,EAAEmQ,UAE9B,SAAAnQ,GACI,OAAOP,EAAiBO,EAAEoN,YAE9B,SAAApN,GACI,OAAOP,EAAiBO,EAAEsN,UAI9B,SAAAtN,GACI,MAAmB,SAAXA,EAAExB,OAA8B,IAAXwB,EAAExB,KAAiB,oDAAc,2DAElE,SAAA+L,GAEI,OAAO,4BAAQhM,UAAU,MAAME,QAAS,kBACpC,EAAKwP,2BAA2B1D,EAAKmE,eAAgB,EAAGnE,EAAKjM,GAAI,EAAKwH,SAAS,CAC3E4I,eAAgBnE,EAAKmE,eACrBI,eAAe,EACfH,YAAa,EACbO,WAAY3E,EAAK2F,WACjBjB,UAAW1E,EAAKyF,eAEtB,qFAYjCpU,KAAKwJ,MAAMyJ,gBACR,kBAAC,EAAK,CAAC1K,MAAO,CAAEC,UAAW,yBACvBgI,aACI,6BACI,4BACI7N,UAAU,QACVC,KAAK,SACLC,QAAS,kBAAM,EAAKqH,SAAS,CACzB+I,gBAAgB,OAKxB,wBAAItQ,UAAU,iBAAgB,iEAEC,OAA1B3C,KAAKwJ,MAAM4I,iBAAiDrO,IAA1B/D,KAAKwJ,MAAM4I,YAC9C,kBAAC,EAAK,CACF9E,aAAc,CACV,2BACA,iEAIJC,SAAoC,OAA1BvN,KAAKwJ,MAAM4I,WAAsB,GAAKpS,KAAKwJ,MAAM4I,WAE3D5E,UAAW,CAEP,SAAAmB,GACI,OAAOzK,EAAWyK,EAAKuF,eAE3B,SAAAvF,GACI,OAAO9K,EAAiB8K,EAAKwF,oBAY5DnU,KAAKwJ,MAAM0J,eACR,kBAAC,EAAK,CAAC3K,MAAO,CAAEC,UAAW,yBAC3BgI,aACI,6BACQ,4BACI7N,UAAU,QACVC,KAAK,SACLC,QAAS,kBAAM,EAAKqH,SAAS,CACzBgJ,eAAe,OAGvB,wBAAIvQ,UAAU,iBACkB,IAA3B3C,KAAKwJ,MAAMuJ,YAAoB,uEAAkB,+EAGtD,wBAAIpQ,UAAU,iBACkB,IAA3B3C,KAAKwJ,MAAMuJ,YAAoB,qCAAc/S,KAAKwJ,MAAMkJ,gBAAkB,IAGnF,wBAAI/P,UAAU,iBAAgB,iDACduB,EAAWlE,KAAKwJ,MAAM6J,YAGtC,wBAAI1Q,UAAU,iBAAgB,mEACZ3C,KAAKwJ,MAAM8J,YAG7B,wBAAI3Q,UAAU,iBAAgB,kGACLuB,EAAWlE,KAAKwJ,MAAM+I,sBAG/C,wBAAI5P,UAAU,iBAAgB,uDACbuB,EAAWlE,KAAKwJ,MAAMgJ,aAIJ,OAA1BxS,KAAKwJ,MAAM4I,iBAAiDrO,IAA1B/D,KAAKwJ,MAAM4I,YAC9C,kBAAC,EAAK,CACF9E,aAAc,CACV,2BACA,iEAIJC,SAAoC,OAA1BvN,KAAKwJ,MAAM4I,WAAsB,GAAKpS,KAAKwJ,MAAM4I,WAE3D5E,UAAW,CAEP,SAAAmB,GACI,OAAOzK,EAAWyK,EAAKuF,eAE3B,SAAAvF,GACI,OAAO9K,EAAiB8K,EAAKwF,oBAqB5DnU,KAAKwJ,MAAM4J,mBACR,kBAAC,EAAK,CAAC7K,MAAO,CAAEC,UAAW,yBACvBgI,aACI,6BACI,4BACI7N,UAAU,QACVC,KAAK,SACLC,QAAS,kBAAM,EAAKqH,SAAS,CACzBkJ,mBAAmB,OAI3B,wBAAIzQ,UAAU,iBAAgB,kGACLuB,EAAWlE,KAAKwJ,MAAM+I,sBAG/C,wBAAI5P,UAAU,iBAAgB,uDACbuB,EAAWlE,KAAKwJ,MAAMgJ,aAKF,OAAhCxS,KAAKwJ,MAAMqJ,uBAA6D9O,IAAhC/D,KAAKwJ,MAAMqJ,kBACpD,kBAAC,EAAK,CACFvF,aAAc,CACV,8CACA,8CACA,oDACA,sEACA,0DACA,gEACA,kCAIJC,SAA0C,OAAhCvN,KAAKwJ,MAAMqJ,iBAA4B,GAAK7S,KAAKwJ,MAAMqJ,iBAEjErF,UAAW,CAEP,SAAApJ,GACI,OAAOF,EAAWE,EAAEgQ,YAGxB,SAAAhQ,GACI,OAAOF,EAAWE,EAAEiQ,mBAExB,SAAAjQ,GACI,OAAOP,EAAiBO,EAAEkQ,aAE9B,SAAAlQ,GACI,OAAOP,EAAiBO,EAAEmQ,UAE9B,SAAAnQ,GACI,OAAOP,EAAiBO,EAAEoN,YAE9B,SAAApN,GACI,OAAOP,EAAiBO,EAAEsN,UAI9B,SAAAtN,GACI,MAAmB,SAAXA,EAAExB,OAA8B,IAAXwB,EAAExB,KAAiB,oDAAc,sEAiBzG,EA9rBW,CAASyI,IAAM9H,WC2OhBiR,G,MA3OO,kDAElB,WAAY9V,GAAQ,IAAD,EAgCd,OAhCc,qBACf,cAAMA,IAwCVgS,YAAc,SAACC,GAAK,OAAKA,EAAMlS,OAAOmS,UAAQ,EAE9CkB,mCAAqC,SAACC,EAAiBC,GACnD5K,IAAMC,IAAIf,EAAOC,IAAM,+EAAiFwL,GACnGxK,MAAK,SAACC,GAEH,EAAK0C,SAAS,CAAE+H,sBAAuBzK,EAAIjC,OACvC,uBAAmBxB,IAAbiO,EAAyBA,IAAa,WAEnDvK,OAAM,SAACpC,GACJ,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAE5B,EACF+M,2BAA6B,SAACN,EAAgBI,EAAMG,EAAmBN,GACnE5K,IAAMC,IAAIf,EAAOC,IAAM,uEAAyEwL,EAAiB,SAAWI,EAAO,sBAAwBG,GACtJ/K,MAAK,SAACC,GAECA,EAAIjC,KAAK3G,OAAS,EAClB,EAAKsL,SAAS,CACVkI,WAAY5K,EAAIjC,KAChBgN,oBAAqB/K,EAAIjC,KAAK,GAAGgN,oBACjCC,WAAYhL,EAAIjC,KAAK,GAAGiN,aAGxB,uBAAmBzO,IAAbiO,EAAyBA,IAAa,QAGhD,EAAK9H,SAAS,CACVkI,WAAY,GACZG,oBAAqB,GACrBC,WAAY,QAMvB/K,OAAM,SAACpC,GACJ,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cA5E1B,EAAKkE,MAAK,aAENsJ,eAAgB,KAChBC,YAAa,KACbL,gBAAiB,GACjBtB,WAAY,GACZxF,OAAQ,GACRiH,iBAAkB,GAClBtB,SAAU,MACV9D,iBAAkB,GAClBuF,iBAAiB,EACjBC,gBAAgB,EAChBC,eAAe,EACfC,kBAAkB,EAClBC,mBAAmB,EACnB/B,YAAa,GACbY,sBAAuB,GACvBT,UAAW7M,EAAYc,KACvBgM,iBAAkBhM,IAClBiM,QAAS/M,EAAYgN,gBAAM,MAAMC,YACjCC,eAAgBF,gBAAM,MAAMC,WAC5BW,oBAAoB,GACpBC,WAAW,GACXa,UAAU,GACVC,WAAW,IAAE,iBACG,EAAK5U,MAAQ,EAAKA,MAAMiI,OAAOmM,eAAe,MACjE,EAsMJ,OApMA,8CAED,WACI9S,KAAKtB,MAAMyN,cACXnM,KAAK8R,mCAAmC9R,KAAKwJ,MAAMsJ,kBACtD,oBA+CD,WAAU,IAAD,OACL,OACI,yBAAKpQ,GAAG,mBAAmB6F,MAAOvI,KAAKtB,MAAM6J,OACzC,6BAEI,wBAAI5F,UAAU,iBAAgB,4DAG9B,kBAAC,EAAK,CACF2K,aAAc,CACV,8CACA,8CACA,oDACA,sEACA,0DACA,gEACA,iCACA,8EAGJC,SAA+C,OAArCvN,KAAKwJ,MAAMyI,sBAAiC,GAAKjS,KAAKwJ,MAAMyI,sBAEtEzE,UAAW,CAEP,SAAApJ,GACI,OAAOF,EAAWE,EAAEgQ,YAGxB,SAAAhQ,GACI,OAAOF,EAAWE,EAAEiQ,mBAExB,SAAAjQ,GACI,OAAOP,EAAiBO,EAAEkQ,aAE9B,SAAAlQ,GACI,OAAOP,EAAiBO,EAAEmQ,UAE9B,SAAAnQ,GACI,OAAOP,EAAiBO,EAAEoN,YAE9B,SAAApN,GACI,OAAOP,EAAiBO,EAAEsN,UAI9B,SAAAtN,GACI,MAAmB,SAAXA,EAAExB,OAA8B,IAAXwB,EAAExB,KAAiB,oDAAc,2DAElE,SAAA+L,GAEI,OAAO,4BAAQhM,UAAU,MAAME,QAAS,kBACpC,EAAKwP,2BAA2B1D,EAAKmE,eAAgB,EAAGnE,EAAKjM,GAAI,EAAKwH,SAAS,CAC3E4I,eAAgBnE,EAAKmE,eACrBI,eAAe,EAEfI,WAAY3E,EAAK2F,WACjBjB,UAAW1E,EAAKyF,eAEtB,mFAUjBpU,KAAKwJ,MAAM0J,eACR,kBAAC,EAAK,CAAC3K,MAAO,CAAEC,UAAW,yBACvBgI,aACI,6BACI,4BACI7N,UAAU,QACVC,KAAK,SACLC,QAAS,kBAAM,EAAKqH,SAAS,CACzBgJ,eAAe,OAGvB,wBAAIvQ,UAAU,iBACP,+EAIP,wBAAIA,UAAU,iBAAgB,iDACduB,EAAWlE,KAAKwJ,MAAM6J,YAGtC,wBAAI1Q,UAAU,iBAAgB,mEACX3C,KAAKwJ,MAAM8J,YAG9B,wBAAI3Q,UAAU,iBAAgB,kGACLuB,EAAWlE,KAAKwJ,MAAM+I,sBAG/C,wBAAI5P,UAAU,iBAAgB,uDACbuB,EAAWlE,KAAKwJ,MAAMgJ,aAIR,OAA1BxS,KAAKwJ,MAAM4I,iBAAiDrO,IAA1B/D,KAAKwJ,MAAM4I,YAC9C,kBAAC,EAAK,CACF9E,aAAc,CACV,2BACA,iEAIJC,SAAoC,OAA1BvN,KAAKwJ,MAAM4I,WAAsB,GAAKpS,KAAKwJ,MAAM4I,WAE3D5E,UAAW,CAEP,SAAAmB,GACI,OAAOzK,EAAWyK,EAAKuF,eAE3B,SAAAvF,GACI,OAAO9K,EAAiB8K,EAAKwF,yBA2BxE,EAxOiB,CAAS9I,IAAM9H,YCkKtBkR,G,MAlKS,kDAEpB,WAAY/V,GAAQ,IAAD,EAgCd,OAhCc,qBACf,cAAMA,IAyCVgS,YAAc,SAACC,GAAK,OAAKA,EAAMlS,OAAOmS,UAAQ,EAE9C6B,wBAA0B,SAACV,GACvB3K,IAAMC,IAAIf,EAAOC,IAAM,oEAAsEwL,EAAnFzL,qBAAmI,EAAKkD,MAAMgI,UAAY,YAAc,EAAKhI,MAAMkI,SACxLnK,MAAK,SAACC,GAECA,EAAIjC,KAAK3G,OAAS,EAClB,EAAKsL,SAAS,CACVkI,WAAY5K,EAAIjC,KAChBmN,gBAA+B,OAAblL,EAAIjC,WAA8BxB,IAAbyD,EAAIjC,KAAsBiC,EAAIjC,KAAK,GAAGoN,gBAAkB,KAInG,EAAKzI,SAAS,CAAEkI,WAAY,GAAIM,gBAAiB,QAGxDjL,OAAM,SAACpC,GACJ,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAvD1B,EAAKkE,MAAK,aAENsJ,eAAgB,KAChBC,YAAa,KACbL,gBAAiB,GACjBtB,WAAY,GACZxF,OAAQ,GACRiH,iBAAkB,GAClBtB,SAAU,MACV9D,iBAAkB,GAClBuF,iBAAiB,EACjBC,gBAAgB,EAChBC,eAAe,EACfC,kBAAkB,EAClBC,mBAAmB,EACnB/B,YAAa,GACbY,sBAAuB,GACvBT,UAAW7M,EAAYc,KACvBgM,iBAAkBhM,IAClBiM,QAAS/M,EAAYgN,gBAAM,MAAMC,YACjCC,eAAgBF,gBAAM,MAAMC,WAC5BW,oBAAoB,GACpBC,WAAW,GACXa,UAAU,GACVC,WAAW,IAAE,iBACG,EAAK5U,MAAQ,EAAKA,MAAMiI,OAAOmM,eAAe,MACjE,EA6HJ,OA3HA,8CAED,WACI9S,KAAKtB,MAAMyN,cAEXnM,KAAKyS,wBAAwBzS,KAAKwJ,MAAMsJ,kBAC3C,oBAyBD,WAAU,IAAD,OACL,OACI,yBAAKpQ,GAAG,qBAAqB6F,MAAOvI,KAAKtB,MAAM6J,OAC3C,6BAEI,6BACI,wBAAI5F,UAAU,iBAAgB,uEAE1B,yBAAKA,UAAU,YACX,yBAAKA,UAAU,aACX,2BAAOA,UAAU,cAAa,+CAC9B,kBAAC,IAAU,CACPtE,MAAO2B,KAAKwJ,MAAMiI,iBAClBnF,SAAU,SAACuH,GACP,EAAK3J,SAAS,CACVuH,iBAAkBoC,EAClBrC,UAAW7M,EAAYkP,MAG/BC,iBAAiB,qIACjBC,eAAe,cACfC,yBAAuB,EACvBC,OAAO,QAGf,yBAAKtR,UAAU,aACX,2BAAOA,UAAU,cAAa,+CAC9B,kBAAC,IAAU,CACPtE,MAAO2B,KAAKwJ,MAAMqI,eAClBvF,SAAU,SAACuH,GACP,EAAK3J,SAAS,CACV2H,eAAgBgC,EAChBnC,QAAS/M,EAAYkP,MAG7BC,iBAAiB,qIACjBC,eAAe,cACfC,yBAAuB,EACvBC,OAAO,SAMnB,yBAAKtR,UAAU,mBACX,4BAAQA,UAAU,MAAME,QAAS,kBAAM,EAAK4P,wBAAwB,EAAKjJ,MAAMsJ,eAAgB,KAAI,mCAK3G,wBAAInQ,UAAU,iBACP,qCAAcuB,EAAWlE,KAAKwJ,MAAMkJ,kBAIZ,OAA1B1S,KAAKwJ,MAAM4I,iBAAiDrO,IAA1B/D,KAAKwJ,MAAM4I,YAC9C,kBAAC,EAAK,CACF9E,aAAc,CACV,2BACA,iEAIJC,SAAoC,OAA1BvN,KAAKwJ,MAAM4I,WAAsB,GAAKpS,KAAKwJ,MAAM4I,WAE3D5E,UAAW,CAEP,SAAAmB,GACI,OAAOzK,EAAWyK,EAAKuF,eAE3B,SAAAvF,GACI,OAAO9K,EAAiB8K,EAAKwF,wBAqBhE,EA/JmB,CAAS9I,IAAM9H,YCyNxBmR,G,MA1NK,kDAEhB,WAAYhW,GAAQ,IAAD,EAUd,OAVc,qBACf,cAAMA,IAkBViW,kBAAoB,WAChBvN,IAAMC,IAAIf,EAAOC,IAAM,+CAA+CgB,MAAK,SAACC,GAExE,EAAK0C,SAAS,CACV0K,gBAAiBpN,EAAIjC,KAAK,QAE/BkC,OAAM,SAACpC,GACNqC,QAAQC,IAAItC,EAAMC,cAExB,EACFuP,2BAA6B,WACzBzN,IAAMC,IAAIf,EAAOC,IAAM,wDAAwDgB,MAAK,SAACC,GAEjFE,QAAQC,IAAIH,EAAIjC,MAChB,EAAK2E,SAAS,CACT4K,oBAAqBtN,EAAIjC,UAE/BkC,OAAM,SAACpC,GACNqC,QAAQC,IAAItC,EAAMC,cAExB,EACFyP,QAAU,WAGN,IAAIC,EAEAA,EAAW,CAEPjJ,MAAO,EAAKvC,MAAMyL,WAI1B7N,IAAM8E,KAAK5F,EAAOC,IAAM,oCAAwCyO,GAE3DzN,MAAK,SAACC,GAEgB,MAAfA,EAAI0N,SACJ,EAAKxW,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUrE,EAAIjC,KAAM,eAItCkC,OAAM,SAACpC,GAEJ,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cA3D1B,EAAKkE,MAAQ,CACToL,gBAAiB,KACjBK,UAAW,KACXH,oBAAoB,IACvB,EA2MJ,OA1MA,8CAED,WACI9U,KAAKtB,MAAMyN,cACXnM,KAAK2U,oBACL3U,KAAK6U,6BACLnT,OAAOyT,SAAS,EAAG,KACtB,oBAoDD,WAAU,IAAD,OACL,OACI,yBAAKzS,GAAG,YAAY6F,MAAOvI,KAAKtB,MAAM6J,OAClC,yBAAK5F,UAAU,aAIX,yBAAKA,UAAU,YACX,yBAAKA,UAAU,UACX,yBAAKA,UAAU,gBACX,4BAAI,mGAER,0BACIA,UAAU,eAAe3C,KAAKwJ,MAAMoL,iBAAmB1Q,EAAWlE,KAAKwJ,MAAMoL,gBAAgBQ,aAEjG,yBAAKzS,UAAU,gBACX,4BAAI,sGAAmB,+BAE3B,0BACIA,UAAU,eAAe3C,KAAKwJ,MAAMoL,iBAAmB1Q,EAAYlE,KAAKwJ,MAAMoL,gBAAgBnB,aAEtG,yBAAK9Q,UAAU,UACX,yBAAKA,UAAU,gBACX,4BAAI,iFAER,0BACIA,UAAU,eAAe3C,KAAKwJ,MAAMoL,iBAAmB1Q,EAAYlE,KAAKwJ,MAAMoL,gBAAgBS,kBAEtG,yBAAK1S,UAAU,UACX,yBAAKA,UAAU,gBACX,4BAAI,yGAER,0BACIA,UAAU,eAAe3C,KAAKwJ,MAAMoL,iBAAmB1Q,EAAYlE,KAAKwJ,MAAMoL,gBAAgBU,kBAEtG,yBAAK3S,UAAU,UACX,yBAAKA,UAAU,gBACX,4BAAK,mGAET,0BACIA,UAAU,eAAe3C,KAAKwJ,MAAMoL,iBAAmB1Q,EAAYlE,KAAKwJ,MAAMoL,gBAAgBW,gBAEtG,yBAAK5S,UAAU,UACX,yBAAKA,UAAU,gBACX,4BAAI,qHAER,0BACIA,UAAU,eAAe3C,KAAKwJ,MAAMoL,iBAAmB1Q,EAAWlE,KAAKwJ,MAAMoL,gBAAgBjB,WAErG,yBAAKhR,UAAU,UACX,yBAAKA,UAAU,gBACX,4BAAI,4HAER,0BACIA,UAAU,eAAe3C,KAAKwJ,MAAMoL,iBAAmB1Q,EAAYlE,KAAKwJ,MAAMoL,gBAAgBY,iBAEtG,yBAAK7S,UAAU,UACX,yBAAKA,UAAU,gBAEX,4BAAI,qHAER,0BACIA,UAAU,eAAe3C,KAAKwJ,MAAMoL,iBAAmB1Q,EAAYlE,KAAKwJ,MAAMoL,gBAAgBa,wBAEtG,yBAAK9S,UAAU,UACX,yBAAKA,UAAU,gBACX,4BAAI,iHAER,0BACIA,UAAU,eAAe3C,KAAKwJ,MAAMoL,iBAAmB1Q,EAAYlE,KAAKwJ,MAAMoL,gBAAgBc,yBAK1G,kBAAC,EAAK,CACFpI,aAAc,CACV,8CACA,2DACD,kCACA,oDACC,gEACA,sGACA,qDAGJC,SAA6C,OAAnCvN,KAAKwJ,MAAMsL,oBAA+B,GAAK9U,KAAKwJ,MAAMsL,oBAEpEtH,UAAW,CAEP,SAAAmB,GACI,OAAOzK,EAAWyK,EAAKgH,kBAE3B,SAAAhH,GACI,OAAOzK,EAAWyK,EAAK8E,YAE1B,SAAA9E,GACI,OAAOzK,EAAWyK,EAAKgF,UAE5B,SAAAhF,GACI,OAAOzK,EAAWyK,EAAK+E,SAE3B,SAAA/E,GACI,OAAOzK,EAAWyK,EAAKiF,gBAE3B,SAAAjF,GACI,OAAOzK,EAAWyK,EAAKiH,mBAG3B,SAAAxR,GACI,OAAO,4BAAQxB,KAAK,SAChBD,UAAU,YAEVE,QAAS,WACL,EAAKqH,SAAS,CAAE+K,UAAW7Q,EAAE1B,KAAM,kBAAM,EAAKhE,MAAMmN,UAAU,4NAA8C,OAAQ,EAAKkJ,cAEhI,gCA4B5B,EAvNe,CAAS1J,IAAM9H,YCmHpBsS,EAnHI,kDAEf,WAAYnX,GAAQ,IAAD,EASd,OATc,qBACf,cAAMA,IAiBViW,kBAAoB,SAAC7B,GACjB1L,IAAMC,IAAIf,EAAOC,IAAM,2EAA6EuM,GAAgBvL,MAAK,SAACC,GAEtH,EAAK0C,SAAS,CACV0K,gBAAiBpN,EAAIjC,KAAK,QAE/BkC,OAAM,SAACpC,GACNqC,QAAQC,IAAItC,EAAMC,cAnBtB,EAAKkE,MAAQ,CACToL,gBAAiB,KACjB9B,eAAgB,EAAKpU,MAAQ,EAAKA,MAAMiI,OAAOmM,eAAiB,MACnE,EAqGJ,OApGA,8CAED,WACI9S,KAAKtB,MAAMyN,cACXnM,KAAK2U,kBAAkB3U,KAAKwJ,MAAMsJ,gBAElCpR,OAAOyT,SAAS,EAAG,KACtB,oBAaD,WACI,OACI,yBAAKzS,GAAG,YAAY6F,MAAOvI,KAAKtB,MAAM6J,OAClC,yBAAK5F,UAAU,aAIX,yBAAKA,UAAU,YAEX,yBAAKA,UAAU,UACX,yBAAKA,UAAU,gBAEX,4BAAI,0CAAS,+BAEjB,0BACIA,UAAU,eAAe3C,KAAKwJ,MAAMoL,iBAAmB1Q,EAAYlE,KAAKwJ,MAAMoL,gBAAgBnB,aAEtG,yBAAK9Q,UAAU,UACX,yBAAKA,UAAU,gBAEX,4BAAI,qHAGR,0BACIA,UAAU,eAAe3C,KAAKwJ,MAAMoL,iBAAmB1Q,EAAWlE,KAAKwJ,MAAMoL,gBAAgBjB,WAErG,yBAAKhR,UAAU,UACX,yBAAKA,UAAU,gBAEX,4BAAI,4HAER,0BACIA,UAAU,eAAe3C,KAAKwJ,MAAMoL,iBAAmB1Q,EAAYlE,KAAKwJ,MAAMoL,gBAAgBY,iBAEtG,yBAAK7S,UAAU,UACX,yBAAKA,UAAU,gBAEX,4BAAI,qHAER,0BACIA,UAAU,eAAe3C,KAAKwJ,MAAMoL,iBAAmB1Q,EAAYlE,KAAKwJ,MAAMoL,gBAAgBa,wBAEtG,yBAAK9S,UAAU,UACX,yBAAKA,UAAU,gBAEX,4BAAI,2HAER,0BACIA,UAAU,eAAe3C,KAAKwJ,MAAMoL,iBAAmB1Q,EAAYlE,KAAKwJ,MAAMoL,gBAAgBS,kBAEtG,yBAAK1S,UAAU,UACX,yBAAKA,UAAU,gBACX,4BAAI,iHAGR,0BACIA,UAAU,eAAe3C,KAAKwJ,MAAMoL,iBAAmB1Q,EAAYlE,KAAKwJ,MAAMoL,gBAAgBc,wBAEtG,yBAAK/S,UAAU,UACX,yBAAKA,UAAU,gBACX,4BAAK,yGAGT,0BACIA,UAAU,eAAe3C,KAAKwJ,MAAMoL,iBAAmB1Q,EAAYlE,KAAKwJ,MAAMoL,gBAAgBW,gBAEnG,yBAAK5S,UAAU,UACd,yBAAKA,UAAU,gBACX,4BAAK,kHAYhC,EAhHc,CAAS0I,IAAM9H,WC+WnBuS,G,MAhXF,kDAET,WAAYpX,GAAQ,IAAD,EAsBd,OAtBc,qBACf,cAAMA,IA+BVgS,YAAc,SAACC,GAAK,OAAKA,EAAMlS,OAAOmS,UAAQ,EAE1CmF,WAAa,WACb,EAAKrX,MAAMmO,cACPzF,IAAMC,IAAIf,EAAOC,IAAM,gCAAgCgB,MAAK,SAACC,GAE7D,EAAK9I,MAAMyN,cACX,EAAKjC,SAAS,CACV8L,SAAUxO,EAAIjC,UAGnBkC,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAExB,EAIFkG,kBAAoB,WAEhB,IAAInG,EAAQ,GAEwB,IAAhC,EAAKmE,MAAMwH,UAAUpS,QAAgD,KAAhC,EAAK4K,MAAMwH,UAAUiF,QAA0C,OAAzB,EAAKzM,MAAMwH,gBAA+CjN,IAAzB,EAAKyF,MAAMwH,WACvH3L,EAAMsG,KAAK,8GAEoB,IAA/B,EAAKnC,MAAM0H,SAAStS,QAA+C,KAA/B,EAAK4K,MAAM0H,SAAS+E,QAAyC,OAAxB,EAAKzM,MAAM0H,eAA6CnN,IAAxB,EAAKyF,MAAM0H,UACpH7L,EAAMsG,KAAK,kJAEuB,IAAlC,EAAKnC,MAAM0M,YAAYtX,QAA2C,MAA3B,EAAK4K,MAAM0M,aAAgD,IAAzB,EAAK1M,MAAM0M,aACpF7Q,EAAMsG,KAAK,uIAEiB,IAA5B,EAAKnC,MAAM2M,MAAMvX,QAAqC,MAArB,EAAK4K,MAAM2M,OAAsC,IAArB,EAAK3M,MAAM2M,OACxE9Q,EAAMsG,KAAK,oHAGM,IAAjBtG,EAAMzG,QACN,EAAKsL,SAAS,CAAE0B,OAAQvG,IAExB,EAAK+Q,eAGL,EAAK1X,MAAMmN,UAAU,gRACrB,EAAK3B,SAAS,CAAE0B,OAAQvG,MAG9B,EACFiM,MAAQ,SAAC+E,GAEL,EAAKnM,SAAS,CACV8G,UAAW,GACXE,SAAU,GACVgF,YAAa,GACbI,aAAc,GACdC,aAAc,GACdC,QAAQ,GACRL,MAAO,GACPvK,OAAQ,GAERqJ,UAAW,KACX1D,SAAU,QAGE,IAAZ8E,GAAiB,EAAKnM,SAAS,CAAE8L,SAAU,MACjD,EACFI,WAAa,WACT,IAEIpB,EAFAyB,EAAM,cACNC,EAAO,oHAEiB,QAAxB,EAAKlN,MAAM+H,SACXyD,EAAW,CAGP2B,UAAW,EAAKnN,MAAMwH,UACtBC,SAAU,EAAKzH,MAAM0H,SACrB0F,YAAc,EAAKpN,MAAM0M,YACzBW,MAAQ,EAAKrN,MAAM2M,MACnBW,aAAe,EAAKtN,MAAM8M,aAC1BS,aAAe,EAAKvN,MAAM+M,aAC1BS,QAAU,EAAKxN,MAAMgN,UAIzBC,EAAM,eACNC,EAAO,sIACP1B,EAAW,CAEP2B,UAAW,EAAKnN,MAAMwH,UACtBC,SAAU,EAAKzH,MAAM0H,SACrB0F,YAAc,EAAKpN,MAAM0M,YACzBW,MAAQ,EAAKrN,MAAM2M,MACnBW,aAAe,EAAKtN,MAAM8M,aAC1BS,aAAe,EAAKvN,MAAM+M,aAC1BS,QAAU,EAAKxN,MAAMgN,QACrBvB,UAAW,EAAKzL,MAAMyL,UACtBgC,GAAI,EAAKzN,MAAMyL,YAIvB7N,IAAM8E,KAAK5F,EAAOC,IAAM,kBAAoBkQ,EAAKzB,GAE5CzN,MAAK,SAACC,GAEgB,MAAfA,EAAI0N,SACJ,EAAKxW,MAAMyN,cACX,EAAKzN,MAAMmN,UAAU6K,EAAM,WAC3B,EAAKQ,aAKZzP,OAAM,SAACpC,GAEJ,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAI5B,EACF6R,YAAc,SAACC,GAGX,EAAKlN,SAAS,CACV8G,UAAWoG,EAAKpG,UAChBE,SAAUkG,EAAKlG,SACfgF,YAAakB,EAAKlB,YAClBC,MAAOiB,EAAKjB,MACZG,aAAcc,EAAKd,aACnBC,aAAca,EAAKb,aACnBC,QAASY,EAAKZ,QACdvB,UAAWmC,EAAK1U,GAChB6O,SAAU,SAGd,EAAK7S,MAAM2Y,YAAY,4GAAwB,YACjD,EACFC,OAAS,WACLlQ,IAAM8E,KAAK5F,EAAOC,IAAM,mCAAqC,EAAKiD,MAAMyL,UAAW,MAAM1N,MAAK,SAACC,GAG3F,EAAK0P,YAENzP,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAExB,EACF4R,OAAS,WAEL,EAAK5F,MAAM,GACX,EAAKyE,cAnLL,EAAKvM,MAAQ,CACTwH,UAAW,GACXE,SAAU,GACVgF,YAAa,GACbC,MAAO,GACPG,aAAc,GACdC,aAAc,GACdC,QAAQ,GACR5K,OAAQ,GAER2F,SAAU,MACV9D,iBAAkB,GAElBuI,SAAU,IAGb,EAqVJ,OAnVA,8CAED,WACIhW,KAAKtB,MAAMyN,cAEXnM,KAAK+V,eACR,oBAkKD,WAAU,IAAD,OACL,OACI,yBAAKrT,GAAG,UAAU6F,MAAOvI,KAAKtB,MAAM6J,OAChC,6BAEI,wBAAI5F,UAAU,iBAAgB,8EAE9B,yBAAKA,UAAU,YAGX,yBAAKA,UAAU,aACX,2BAAOA,UAAU,cAAa,uBAC9B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAAa8C,UAAW,IAC3DnV,MAAOwF,EAAiB7D,KAAKwJ,MAAMwH,WACnC1E,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAE8G,UAAW/M,EAAiBgE,EAAExJ,OAAOJ,aAI9E,yBAAKsE,UAAU,aACX,uBAAGA,UAAU,cAAa,wEAC1B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAAa8C,UAAW,IAE3DnV,MAAOwF,EAAiBK,EAAWlE,KAAKwJ,MAAM0H,WAC9C5E,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAEgH,SAAUjN,EAAiBgE,EAAExJ,OAAOJ,aAE7E,yBAAKsE,UAAU,aACX,uBAAGA,UAAU,cAAa,mCAC1B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAEnCrS,MAAO4F,EAAiBjE,KAAKwJ,MAAM0M,aACnC5J,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAEgM,YAAajS,EAAiBgE,EAAExJ,OAAOJ,cAOpF,yBAAKsE,UAAU,YACf,yBAAKA,UAAU,aACP,uBAAGA,UAAU,cAAa,mCAC1B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAEnCrS,MAAO4F,EAAiBjE,KAAKwJ,MAAM8M,cACnChK,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAEoM,aAAcrS,EAAiBgE,EAAExJ,OAAOJ,aAEjF,yBAAKsE,UAAU,aACX,uBAAGA,UAAU,cAAa,mCAC1B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAEnCrS,MAAO4F,EAAiBjE,KAAKwJ,MAAM+M,cACnCjK,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAEqM,aAActS,EAAiBgE,EAAExJ,OAAOJ,aAEjF,yBAAKsE,UAAU,aACX,uBAAGA,UAAU,cAAa,0FAC1B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAEnCrS,MAAO6F,EAAWlE,KAAKwJ,MAAM2M,OAC7B7J,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAEiM,MAAOlS,EAAiBgE,EAAExJ,OAAOJ,MAAM+E,QAAQ,wBAAe,YAOvG,yBAAKT,UAAU,aACf,uBAAGA,UAAU,cAAa,+CACtB,8BAAUA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAEtCrS,MAAO4F,EAAiBjE,KAAKwJ,MAAMgN,SACnClK,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAEsM,QAASvS,EAAiBgE,EAAExJ,OAAOJ,aAMhF,yBAAKsE,UAAU,iBACX,4BAAQA,UAAU,MACdE,QAAS,kBACL,EAAKnE,MAAMmN,UAAU,4NAA8C,OAAQ,EAAKL,qBAAoB,sBAG3G,4BAAQ7I,UAAU,MACfE,QAAS,kBAAK,EAAKyO,MAAM,KAClB,qDAMf,yBAAK3O,UAAU,cACX,4BAAkC,IAA7B3C,KAAKwJ,MAAMoC,OAAOhN,OAAe,GACjCoB,KAAKwJ,MAAMoC,OAAOQ,KAAI,SAAC/G,EAAO1G,GAAC,OAC5B,wBAAIM,IAAKN,GAAI0G,QAKzB,kBAAC,EAAK,CAEFiI,aAAc,CACV,qBACA,sEACA,kCACA,kCACA,kCACA,2BACA,oDACA,8CACA,uCACA,sBAGJC,SACIvN,KAAKwJ,MAAMwM,SAGfxI,UAAW,CACP,SAAApJ,GACI,OAAOP,EAAiBO,EAAE4M,YAG9B,SAAA5M,GACI,OAAOP,EAAiBO,EAAE8M,WAE9B,SAAA9M,GACI,OAAOP,EAAiBO,EAAE8R,cAE9B,SAAA9R,GACI,OAAOP,EAAiBO,EAAEkS,eAE9B,SAAAlS,GACI,OAAOP,EAAiBO,EAAEmS,eAE9B,SAAAnS,GACI,OAAOF,EAAWE,EAAE+R,QAExB,SAAA/R,GACI,OAAOP,EAAiBO,EAAEmT,UAE9B,SAAAnT,GACI,OAAOP,EAAiBO,EAAEoT,UAK9B,SAAApT,GACI,OAAO,4BAAQxB,KAAK,SAChBD,UAAU,UAEVE,QAAS,WACL,EAAKsU,YAAY/S,KAExB,yCAEL,SAAAA,GACI,OAAO,4BAAQxB,KAAK,SAChBD,UAAU,UAEVE,QAAS,WACL,EAAKqH,SAAS,CAAE+K,UAAW7Q,EAAE1B,KAAM,kBAAM,EAAKhE,MAAMmN,UAAU,gLAAqC,OAAQ,EAAKyL,aAEvH,gCAU5B,EA7WQ,CAASjM,IAAM9H,YCAfkU,G,YAAW,SAAH,GAA6H,IAAxHtO,EAAK,EAALA,MAAOuO,EAAI,EAAJA,KAAM/I,EAAI,EAAJA,KAAMgJ,EAAQ,EAARA,SAAUrL,EAAQ,EAARA,SAAS,EAAD,EAAEsL,gBAAQ,OAAQ,MAAEC,cAAM,MAAG,YAAW,MAAEC,kBAAU,OAAQ,MAAElM,cAAM,OAAQ,EAEvI,EAAsC7E,oBAAS,GAAM,mBAA9CgR,EAAW,KAAEC,EAAc,KAClC,EAA4BjR,mBAAS,IAAG,mBAAjCkR,EAAM,KAAEC,EAAS,KAClBC,EAAWtQ,mBAEjBV,qBAAU,WACNnG,SAAS8G,iBAAiB,QAASC,KACpC,IAEH,IAAMA,EAAc,SAACE,GACO,MAApBkQ,EAASjQ,SAAoBiQ,EAASjQ,QAAQC,SAASF,EAAExJ,SACzDuZ,GAAe,IAKvB,OACI,yBAAKrV,UAAWkV,GACZ,2BAAOlV,UAAU,cAAcwG,GAC/B,yBAAKd,IAAK8P,EACLxV,UAAWiJ,EAAS,yBAA2B,YAC/CrD,MAAQwP,IAA4B,IAAbH,EAAsB,CAACQ,OAAQ,qBAAuBR,EAAW,CACpF1M,gBAAiB,YACjBmN,OAAQ,WACR,IACW,0BAAM1V,UAAU,WACVE,QAAS,WACLmV,GAAgBD,GAChBG,EAAU,MAEN,OAATvJ,GAA0B,KAATA,EAAc9K,EAAiB8T,EAAShJ,IAAS,0BAAMhM,UAAU,gBAErGoV,IAA4B,IAAbH,GAAuB,yBAAKjV,UAAU,WACnD,2BACItE,MAAOwF,EAAiBoU,GACxB3L,SAAU,SAACrE,GAAC,OAAKiQ,EAAUjU,EAAiBgE,EAAExJ,OAAOJ,SACrDsE,UAAU,aAAaC,KAAK,OAAOiN,aAAa,MAChDxD,YAAY,6DAAgByD,WAAS,IACzC,yBAAKnN,UAAU,QACD,OAAT+U,EAAgB,4BAAI,sHACEA,EAAKtL,KAAI,SAACuC,EAAMhQ,GAAC,OAAwB,OAAnBgZ,EAAShJ,IAAkBgJ,EAAShJ,GAAMe,cAAcZ,SAASmJ,EAAOvI,gBACjH,wBAAIzQ,IAAKN,EACLkE,QAAS,WACLyJ,EAASqC,GACTqJ,GAAe,KACfnU,EAAiB8T,EAAShJ,WAMjDmJ,GACD,4BAAQnV,UAAsB,0BAAXkV,EAAsC,gBAAkB,qBACnED,SAAUA,EACV/U,QAAS,kBAAMyJ,EAAS,YCkmB7BgM,EAtpBG,kDAEd,WAAY5Z,GAAQ,IAAD,EAwCS,OAxCT,qBACf,cAAMA,IA+CV6Z,cAAgB,WACZ,EAAK7Z,MAAMmO,cACXzF,IAAMC,IAAIf,EAAOC,IAAM,gCAClBgB,MAAK,SAACC,GAEgB,MAAfA,EAAI0N,SACJ,EAAKxW,MAAMyN,cACX,EAAKjC,SAAS,CACV8L,SAAUxO,EAAIjC,WAOzBkC,OAAM,SAACpC,GAEJ,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAE5B,EACFoL,YAAc,SAACC,GAAK,OAAKA,EAAMlS,OAAOmS,UAAQ,EAE1C4H,gBAAkB,WAClB,EAAK9Z,MAAMmO,cACPzF,IAAMC,IAAIf,EAAOC,IAAM,0CAA0CgB,MAAK,SAACC,GAEvE,EAAK9I,MAAMyN,cACX,EAAKjC,SAAS,CACVuO,cAAejR,EAAIjC,UAGxBkC,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAExB,EAIFkG,kBAAoB,WAChB,IAAInG,EAAQ,GACwB,IAAhC,EAAKmE,MAAMwH,UAAUpS,QAAgD,KAAhC,EAAK4K,MAAMwH,UAAUiF,QAA0C,OAAzB,EAAKzM,MAAMwH,gBAA+CjN,IAAzB,EAAKyF,MAAMwH,WACvH3L,EAAMsG,KAAK,8GAEoB,IAA/B,EAAKnC,MAAM0H,SAAStS,QAA+C,KAA/B,EAAK4K,MAAM0H,SAAS+E,QAAyC,OAAxB,EAAKzM,MAAM0H,eAA6CnN,IAAxB,EAAKyF,MAAM0H,UACpH7L,EAAMsG,KAAK,kJAQc,QAAxB,EAAKnC,MAAM+H,UAAsD,IAA/B,EAAK/H,MAAMkP,SAAS9Z,QAA+C,KAA/B,EAAK4K,MAAMkP,SAASzC,QAAyC,OAAxB,EAAKzM,MAAMkP,eAA6C3U,IAAxB,EAAKyF,MAAMkP,UACvJrT,EAAMsG,KAAK,mJAGsB,IAAjC,EAAKnC,MAAMmP,WAAW/Z,QAA0C,MAA1B,EAAK4K,MAAMmP,YAAgD,IAA1B,EAAKnP,MAAMmP,YAClFtT,EAAMsG,KAAK,oHAEY,OAAvB,EAAKnC,MAAMsM,cAA2C/R,IAAvB,EAAKyF,MAAMsM,SAC1CzQ,EAAMsG,KAAK,yJAGM,IAAjBtG,EAAMzG,QACN,EAAKsL,SAAS,CAAE0B,OAAQvG,IAExBqC,QAAQC,IAAI,wBACZ,EAAKiR,oBAGL,EAAKla,MAAMmN,UAAU,gRACrB,EAAK3B,SAAS,CAAE0B,OAAQvG,MAG9B,EACFiM,MAAQ,SAAC+E,GAEL,EAAKnM,SAAS,CACV8G,UAAW,GACXE,SAAU,GACV2H,IAAK,GACLF,WAAY,GACZvH,WAAY,GACZhG,SAAU,GACVsN,SAAU,GACVI,MAAO,GACPlN,OAAQ,GACRkK,QAAS,KACT/D,eAAgB,KAChBgH,KAAK,EACLxH,SAAU,MACVyH,UAAU,EACVC,WAAY,GACZC,yBAA0B,CAAE7a,MAAO,KAAM8a,KAAM,mEAEnC,IAAZ9C,GAAiB,EAAKnM,SAAS,CAAEuO,cAAe,MACtD,EACFG,gBAAkB,WACd,IAEI5D,EAFAyB,EAAM,mBACNC,EAAO,oHAEiB,QAAxB,EAAKlN,MAAM+H,SACXyD,EAAW,CACP2B,UAAW,EAAKnN,MAAMwH,UACtBC,SAAU,EAAKzH,MAAM0H,SACrBkI,IAAK,EAAK5P,MAAMqP,IAChBQ,WAAa,EAAK7P,MAAMmP,WACxBxH,WAAY,EAAK3H,MAAM4H,WACvBkI,MAAO,EAAK9P,MAAMsP,MAClBS,SAAU,EAAK/P,MAAMkP,SACrBc,SAAU,EAAKhQ,MAAM4H,WACrB6D,UAAW,EAAKzL,MAAMsM,QAAQpT,GAC9B+W,KAAM,EAAKjQ,MAAMuP,KACjBC,SAAU,EAAKxP,MAAMwP,SACrBC,WAAY,EAAKzP,MAAMyP,WACvBS,YAAa,EAAKlQ,MAAM0P,yBAAyB7a,QAGrDoY,EAAM,oBACNC,EAAO,sIACP1B,EAAW,CAEPsE,MAAO,EAAK9P,MAAMsP,MAClBnC,UAAW,EAAKnN,MAAMwH,UACtBC,SAAU,EAAKzH,MAAM0H,SACrBkI,IAAM,EAAK5P,MAAMqP,IACjBQ,WAAa,EAAK7P,MAAMmP,WACxBxH,WAAY,EAAK3H,MAAM4H,WACvBmI,SAAU,EAAK/P,MAAMkP,SACrBc,SAAU,EAAKhQ,MAAM4H,WACrBW,eAAgB,EAAKvI,MAAMuI,eAC3BkF,GAAI,EAAKzN,MAAMuI,eACfkD,UAAW,EAAKzL,MAAMsM,QAAQpT,GAC9B+W,KAAM,EAAKjQ,MAAMuP,KACjBC,SAAU,EAAKxP,MAAMwP,SACrBC,WAAY,EAAKzP,MAAMyP,WACvBS,YAAa,EAAKlQ,MAAM0P,yBAAyB7a,QAGzD+I,IAAM8E,KAAK5F,EAAOC,IAAM,uBAAyBkQ,EAAKzB,GAEjDzN,MAAK,SAACC,GAEgB,MAAfA,EAAI0N,SACJ,EAAKxW,MAAMyN,cACX,EAAKzN,MAAMmN,UAAU6K,EAAM,WAC3B,EAAKQ,aAKZzP,OAAM,SAACpC,GAEJ,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAI5B,EACF6R,YAAc,SAACC,GACX1P,QAAQC,IAAIyP,GACW,OAAnBA,EAAKuC,gBAAwC5V,IAAlBqT,EAAKuC,WAChC,EAAKzP,SAAS,CACV8G,UAAWoG,EAAKpG,UAChBE,SAAUkG,EAAKlG,SACfE,WAAYgG,EAAKhG,WACjBuH,WAAYvB,EAAKuB,WACjBE,IAAKzB,EAAKyB,IAIV9G,eAAgBqF,EAAK1U,GACrBqW,KAAM3B,EAAK2B,KACXC,SAAU5B,EAAKwC,SACfX,WAAY7B,EAAKyC,WACjBtI,SAAU,OACV2H,yBAA0B,EAAK1P,MAAMsQ,kBAAkBC,QAAO,SAACC,GAAQ,OAAKA,EAAS3b,QAAU+Y,EAAK6C,YAAcD,EAAW,QAAM,KAGvI,EAAKxQ,MAAMwM,SAAS5J,KAAI,SAAC8N,GAMrB,OALIA,EAAExX,KAAO0U,EAAKuC,WACd,EAAKzP,SAAS,CACV4L,QAASoE,IAGV,QAEX,EAAKxb,MAAM2Y,YAAY,4GAAwB,YAGnD,EAAK3Y,MAAM2Y,YAAY,6JAAiC,UAE1D,EACFC,OAAS,WACLlQ,IAAM8E,KAAK5F,EAAOC,IAAM,6CAA+C,EAAKiD,MAAMuI,eAAgB,MAAMxK,MAAK,SAACC,GAG1G,EAAK0P,YAENzP,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAExB,EAmBF6U,WAAa,SAAClD,EAAG9F,GACb,IAAIrF,EAAc,CACdC,MAAOkL,EACPhL,MAAOkF,GAIX/J,IAAM8E,KAAK5F,EAAOC,IAAM,iCAAkCuF,GAAcvE,MAAK,SAACC,GAEvD,MAAfA,EAAI0N,SACJ,EAAKxW,MAAMyN,cACX,EAAKzN,MAAMmN,UAAU,yJAAkC,WACvDnE,QAAQC,IAAIH,GACZ,EAAK0C,SAAS,CACVkQ,kBAAmB5S,EAAIjC,KAAK6F,SAC5BiP,kBAAmB7S,EAAIjC,KAAKkH,SAC5B6N,oBAAoB,QAM7B7S,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAExB,EACF4R,OAAS,WAEL,EAAK5F,MAAM,GACX,EAAKkH,mBA7SL,EAAKhP,MAAQ,CACTwH,UAAW,GACXE,SAAU,GACV2H,IAAK,GACLF,WAAY,GACZvH,WAAY,GACZpF,SAAU,GACVJ,OAAQ,GACR2F,SAAU,MACV9D,iBAAkB,GAElBgL,cAAe,GACfzC,SAAU,GACVF,QAAS,KACT1K,SAAU,GACVsN,SAAU,GACVI,MAAM,GACN/G,eAAgB,KAChBgH,KAAM,EACNC,UAAU,EACVC,WAAY,GACZa,kBAAmB,CACf,CAAEzb,MAAO,KAAM8a,KAAM,iEACrB,CAAE9a,MAAO,EAAG8a,KAAM,gGAClB,CAAE9a,MAAO,EAAG8a,KAAM,iGAItBD,yBAA0B,CAAE7a,MAAO,KAAM8a,KAAM,iEAC/CoB,iBAAiB,EACjBD,oBAAoB,EACpBF,kBAAmB,KACnBC,kBAAmB,MAEvB,EAymBH,OAxmBA,8CAED,WACIra,KAAKtB,MAAMyN,cACXnM,KAAKuY,gBACLvY,KAAKwY,oBACR,oBA2QD,WAAU,IAAD,OACL,OACI,yBAAK9V,GAAG,eAAe6F,MAAOvI,KAAKtB,MAAM6J,OACrC,6BAEI,wBAAI5F,UAAU,iBAAgB,4BAE9B,yBAAKA,UAAU,YAGX,yBAAKA,UAAU,aACX,2BAAOA,UAAU,cAAa,uBAC9B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAAa8C,UAAW,IAC3DnV,MAAOwF,EAAiB7D,KAAKwJ,MAAMwH,WACnC1E,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAE8G,UAAW/M,EAAiBgE,EAAExJ,OAAOJ,aAI9E,yBAAKsE,UAAU,aACX,uBAAGA,UAAU,cAAa,wEAC1B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAAa8C,UAAW,IAE3DnV,MAAOwF,EAAiBA,EAAiB7D,KAAKwJ,MAAM0H,WACpD5E,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAEgH,SAAUjN,EAAiBgE,EAAExJ,OAAOJ,aAE7E,yBAAKsE,UAAU,aACX,uBAAGA,UAAU,cAAa,qDAC1B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAEnCrS,MAAOwF,EAAiB7D,KAAKwJ,MAAM4H,YACnC9E,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAEkH,WAAYnN,EAAiBgE,EAAExJ,OAAOJ,MAAM+E,QAAQ,wBAAe,WAG5G,yBAAKT,UAAU,oCACXE,QAAS,kBAAM,EAAKqH,SAAS,CAAE8O,UAAW,EAAKxP,MAAMwP,aACrD,0BACIrW,UAAW3C,KAAKwJ,MAAMwP,SAAW,mBAAqB,aAC1D,4BAAI,iDAMZ,yBAAKrW,UAAU,YACf,yBAAKA,UAAU,aACP,uBAAGA,UAAU,cAAa,2DAC1B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAEnCrS,MAAOwF,EAAiB7D,KAAKwJ,MAAMqP,KACnCvM,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAE2O,IAAK5U,EAAiBgE,EAAExJ,OAAOJ,MAAM+E,QAAQ,wBAAe,WAErG,yBAAKT,UAAU,aACX,uBAAGA,UAAU,cAAa,uEAC1B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAEnCrS,MAAO6F,EAAWlE,KAAKwJ,MAAMmP,YAC7BrM,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAEyO,WAAY1U,EAAiBgE,EAAExJ,OAAOJ,MAAM+E,QAAQ,wBAAe,WAG5G,yBAAKT,UAAU,aACX,uBAAGA,UAAU,cAAa,sDAC1B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAEnCrS,MAAO6F,EAAWlE,KAAKwJ,MAAMuP,MAC7BzM,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAE6O,KAAM9U,EAAiBgE,EAAExJ,OAAOJ,MAAM+E,QAAQ,wBAAe,WAElG,kBAAC,EAAQ,CACL+F,MAAM,oDACNuO,KAAM1X,KAAKwJ,MAAMwM,SACjBrH,KAAM3O,KAAKwJ,MAAMsM,QACjB6B,SAAU,SAAChJ,GAAI,OAAKA,EAAKqC,UAAY,IAAMrC,EAAKuC,UAChD5E,SAAU,SAACqC,GAAI,OAAK,EAAKzE,SAAS,CAAE4L,QAASnH,KAC7CkJ,OAAO,wBACPC,YAAY,KAMxB,yBAAKnV,UAAU,YACX,yBAAKA,UAAU,aACX,uBAAGA,UAAU,cAAa,4DAC1B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAAa8C,UAAW,IAE3DnV,MAAO6F,EAAWlE,KAAKwJ,MAAMyP,YAC7B3M,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAE+O,WAAYhV,EAAiBgE,EAAExJ,OAAOJ,MAAM+E,QAAQ,wBAAe,WAE5G,kBAAC,EAAQ,CACL+F,MAAM,0DACNuO,KAAM1X,KAAKwJ,MAAMsQ,kBACjBnL,KAAM3O,KAAKwJ,MAAM0P,yBACjBvB,SAAU,SAAChJ,GAAI,OAAKA,EAAKwK,MACzB7M,SAAU,SAACqC,GAAI,OAAK,EAAKzE,SAAS,CAC9BgP,yBAA0BvK,KAG9BkJ,OAAO,eAMf,yBAAKlV,UAAU,cACS,QAAvB3C,KAAKwJ,MAAM+H,UACZ,yBAAK5O,UAAU,YAGX,yBAAKA,UAAU,aACP,2BAAOA,UAAU,cAAa,4DAC9B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAAa8C,UAAW,IAAKoE,UAAU,EAC1EvZ,MAAOwF,EAAiB7D,KAAKwJ,MAAM4H,YACvC9E,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAEkB,SAAUnH,EAAiBgE,EAAExJ,OAAOJ,aAI7E,yBAAKsE,UAAU,aACX,uBAAGA,UAAU,cAAa,4DAC1B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAAa8C,UAAW,EAE3DnV,MAAOwF,EAAiB7D,KAAKwJ,MAAMkP,UACnCpM,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAEwO,SAAUzU,EAAiBgE,EAAExJ,OAAOJ,cAajF,yBAAKsE,UAAU,iBACX,4BAAQA,UAAU,MACdE,QAAS,kBACL,EAAKnE,MAAMmN,UAAU,4NAA8C,OAAQ,EAAKL,qBAAoB,sBAG3G,4BAAQ7I,UAAU,MACfE,QAAS,kBAAK,EAAKyO,MAAM,KAClB,qDAMf,yBAAK3O,UAAU,cACX,4BAAkC,IAA7B3C,KAAKwJ,MAAMoC,OAAOhN,OAAe,GACjCoB,KAAKwJ,MAAMoC,OAAOQ,KAAI,SAAC/G,EAAO1G,GAAC,OAC5B,wBAAIM,IAAKN,GAAI0G,QAKzB,kBAAC,EAAK,CAEFiI,aAAc,CACV,qBACA,sEACA,2BACA,2BACA,oDACA,sEACA,qBACA,8CACA,oDACA,iCACA,0DACA,0DACA,oDACA,oDACA,uCACA,sBAIJC,SACIvN,KAAKwJ,MAAMiP,cAGfjL,UAAW,CACP,SAAApJ,GACI,OAAOP,EAAiBO,EAAE4M,YAG9B,SAAA5M,GACI,OAAOP,EAAiBO,EAAE8M,WAE9B,SAAA9M,GACI,OAA+B,OAAvBA,EAAEoW,uBAAoDzW,IAAvBK,EAAEoW,iBAAkC3W,EAAiBO,EAAEoW,kBAAoB,IAAM3W,EAAiBO,EAAEqW,iBAAmB,MAElK,SAAArW,GACI,OAAOP,EAAiBO,EAAEyU,MAE9B,SAAAzU,GACI,OAAOP,EAAiBO,EAAEgN,aAE9B,SAAAhN,GACI,OAAOF,EAAWE,EAAEuU,aAExB,SAAAvU,GACI,OAAOP,EAAiBO,EAAE2U,OAE9B,SAAA3U,GACI,OAAOP,EAAiBO,EAAEmT,UAE9B,SAAAnT,GACI,OAAOP,EAAiBO,EAAEoT,UAI9B,SAAApT,GACI,MAAuB,SAAfA,EAAEwV,WAAsC,IAAfxV,EAAEwV,SAAqB,2BAAS,+CAGrE,SAAAxV,GACI,OAAOP,EAAiBO,EAAEyV,aAE9B,SAAAzV,GACI,OAAQA,EAAE6V,aAEN,KAAK,EACD,MAAO,+FACX,KAAK,EACD,MAAO,iGAKnB,SAAA7V,GAEI,OAAO,4BAAQxB,KAAK,SAChBD,UAAU,UAEVE,QAAS,WACL,EAAKqH,SAAS,CAAE6H,eAAgB3N,EAAE1B,GAAIsJ,SAAU5H,EAAEgN,WAAYmJ,iBAAiB,MAEtF,sDAGL,SAAAnW,GAEI,OAAO,4BAAQxB,KAAK,SAChBD,UAAU,UAEVE,QAAS,WACL,EAAKqH,SAAS,CAAE6H,eAAgB3N,EAAE1B,KAAM,kBAAM,EAAKhE,MAAMmN,UAAU,oKAAmC,QAAQ,kBAAM,EAAKsO,WAAW/V,EAAE1B,GAAI0B,EAAEgN,oBAEnJ,sDAGL,SAAAhN,GACI,OAAO,4BAAQxB,KAAK,SAChBD,UAAU,UAEVE,QAAS,WACL,EAAKsU,YAAY/S,KAExB,yCAGL,SAAAA,GAGI,OAAO,4BAAQxB,KAAK,SACZD,UAAU,UAEVE,QAAS,WACL,EAAKqH,SAAS,CAAE6H,eAAgB3N,EAAE1B,KAAM,kBAAM,EAAKhE,MAAMmN,UAAU,gLAAqC,OAAQ,EAAKyL,aAEhI,2BAWhBtX,KAAKwJ,MAAM+Q,iBACR,kBAAC,EAAK,CAAChS,MAAO,CAAEC,UAAW,yBACvBgI,aACI,6BACI,4BACI7N,UAAU,QACVC,KAAK,SACLC,QAAS,kBAAM,EAAKqH,SAAS,CAAEqQ,iBAAiB,OAEpD,kBAAC,EAAc,CACXvO,SAAUhM,KAAKwJ,MAAMwC,SACrBa,YAAa7M,KAAKtB,MAAMmO,YACxBV,YAAanM,KAAKtB,MAAMyN,YACxBN,UAAW7L,KAAKtB,MAAMmN,UACtB3C,UAAWlJ,KAAKtB,MAAMwK,eAQzClJ,KAAKwJ,MAAM8Q,oBACR,kBAAC,EAAK,CAAC/R,MAAO,CAAEC,UAAW,yBACvBgI,aACI,yBAAKjI,MAAO,CAAEmS,OAAQ,UAClB,4BACI/X,UAAU,QACVC,KAAK,SACLC,QAAS,kBAAM,EAAKqH,SAAS,CACzBoQ,oBAAoB,EACpBF,kBAAmB,KACnBC,kBAAmB,UAI3B,wBAAI1X,UAAU,iBAAgB,mFAE9B,yBAAKA,UAAU,qBACf,6BACI,4BAAK,4DAAgB,6BACrB,4BAAK3C,KAAKwJ,MAAM4Q,mBAChB,6BACA,4BAAK,uDAAgB,6BACrB,4BAAKpa,KAAKwJ,MAAM6Q,oBAGpB,yBAAK1X,UAAU,YACX,4BAAQA,UAAU,MACdE,QAAS,kBAAM,EAAKqH,SAAS,CACzBoQ,oBAAoB,EACpBF,kBAAmB,KACnBC,kBAAmB,SACnB,qCAQvC,EAnpBa,CAAShP,IAAM9H,W,2BCPjC,kmGAAA5E,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAMqE,IA2hBtDgc,EA1hBM,kDAEjB,WAAYjc,GAAQ,IAAD,EA4Bd,OA5Bc,qBACf,cAAMA,IAsCVkc,mBAAkB,uCAAG,WAAM3F,GAAS,uEAEf,OADjB,EAAKvW,MAAMmO,cACPvH,EAAW,GAAG,EAAD,OACT8B,IAAMC,IAAIf,EAAOC,IAAM,4DAA8D0O,GACxF1N,MAAK,SAACC,GAEgB,MAAfA,EAAI0N,SACJ,EAAKxW,MAAMyN,cAKX7G,EAAWkC,EAAIjC,SAItBkC,OAAM,SAACpC,GAEJ,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,aACnB,KAAD,2BACCA,GAAQ,2CAClB,mDAvBiB,GAuBjB,EAEDoL,YAAc,SAACC,GAAK,OAAKA,EAAMlS,OAAOmS,UAAQ,EAE9CiK,mBAAqB,WACjB,EAAKnc,MAAMmO,cACXzF,IAAMC,IAAIf,EAAOC,IAAM,gDAAgDgB,MAAK,SAACC,GAEzE,EAAK9I,MAAMyN,cACX,EAAKjC,SAAS,CACV2I,iBAAkBrL,EAAIjC,UAI3BkC,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAExB,EACFkG,kBAAoB,WAEhB,IAAInG,EAAQ,GAEwB,IAAhC,EAAKmE,MAAM4K,UAAUxV,QACrByG,EAAMsG,KAAK,uIAE4B,IAAvC,EAAKnC,MAAM6K,iBAAiBzV,QAC5ByG,EAAMsG,KAAK,0HAEsB,IAAjC,EAAKnC,MAAM8K,WAAW1V,QACtByG,EAAMsG,KAAK,6IAEiB,OAA5B,EAAKnC,MAAM8O,mBAAqDvU,IAA5B,EAAKyF,MAAM8O,cAC/CjT,EAAMsG,KAAK,gIAGM,IAAjBtG,EAAMzG,QACN,EAAKsL,SAAS,CAAE0B,OAAQvG,IAExB,EAAKyV,uBAGL,EAAKpc,MAAMmN,UAAU,gRACrB,EAAK3B,SAAS,CAAE0B,OAAQvG,MAG9B,EACFiM,MAAQ,SAAC+E,GAEL,EAAKnM,SAAS,CACVkK,UAAW,GACXC,iBAAkB,GAClBC,WAAY,GACZmE,cAAc,GACdH,aAAa,KACbxC,QAAQ,KACRlK,OAAQ,GACRmP,UAAU,EACVzI,kBAAmB,KACnBf,SAAU,MACVyJ,eAAgBrJ,gBAAM,MAAMC,WAC5BqJ,QAAStW,EAAYgN,gBAAM,MAAMC,YACjCH,iBAAkBE,gBAAM,MAAMC,WAC9BJ,UAAW7M,EAAYgN,gBAAM,MAAMC,YACnCC,eAAgBF,gBAAM,MAAMC,WAC5BF,QAAS/M,EAAYgN,gBAAM,MAAMC,cAErB,IAAZyE,GAAiB,EAAKnM,SAAS,CAAE2I,iBAAkB,KACvD,EAAKqI,kBACP,EACFJ,mBAAqB,WACjB,IAEI9F,EAFAyB,EAAM,sBACNC,EAAO,oHAEiB,QAAxB,EAAKlN,MAAM+H,SACXyD,EAAW,CACP3B,UAAW,EAAK7J,MAAM4K,UACtB+G,iBAAkB,EAAK3R,MAAM6K,iBAC7Bf,WAAa,EAAK9J,MAAM8K,WACxB2G,QAAU,EAAKzR,MAAMyR,QACrBG,UAAY,EAAK5R,MAAMgI,UACvB6J,QAAU,EAAK7R,MAAMkI,QACrBK,eAAgB,EAAKvI,MAAM8O,aAAa5V,GACxCyP,KAAM,EAAK3I,MAAMuR,WAIrBtE,EAAM,uBACNC,EAAO,sIACP1B,EAAW,CAGP3B,UAAW,EAAK7J,MAAM4K,UACtB+G,iBAAkB,EAAK3R,MAAM6K,iBAC7Bf,WAAa,EAAK9J,MAAM8K,WACxB2G,QAAS,EAAKzR,MAAMyR,QACpBG,UAAW,EAAK5R,MAAMgI,UACtB6J,QAAS,EAAK7R,MAAMkI,QACpBK,eAAgB,EAAKvI,MAAM8O,aAAa5V,GACxCuU,GAAI,EAAKzN,MAAM8I,kBACfH,KAAM,EAAK3I,MAAMuR,WAGzB3T,IAAM8E,KAAK5F,EAAOC,IAAM,0BAA4BkQ,EAAKzB,GAEpDzN,MAAK,SAACC,GAEgB,MAAfA,EAAI0N,SACJ,EAAKxW,MAAMyN,cACX,EAAKzN,MAAMmN,UAAU6K,EAAM,WAC3B,EAAKQ,aAKZzP,OAAM,SAACpC,GAEJ,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAI5B,EACF6R,YAAc,SAACC,GAEX,EAAKlN,SAAS,CACVkK,UAAWgD,EAAKhD,UAChBC,iBAAkB+C,EAAK/C,iBACvBjD,WAAYgG,EAAKhG,WACjBuH,WAAYvB,EAAKuB,WACjBrE,WAAY8C,EAAK9C,WAEjBhC,kBAAmB8E,EAAK1U,GACxB6O,SAAU,OAEV0J,QAAS7D,EAAKkE,mBACdN,eAAgB9V,EAAYkS,EAAKkE,oBACjC9J,UAAW4F,EAAKmE,qBAChB9J,iBAAkBvM,EAAYkS,EAAKmE,sBACnC7J,QAAS0F,EAAKoE,mBACd3J,eAAgB3M,EAAYkS,EAAKoE,sBAIrC,EAAKhS,MAAMwM,SAAS5J,KAAI,SAAC8N,GAMrB,OALIA,EAAExX,KAAO0U,EAAKuC,WACd,EAAKzP,SAAS,CACV4L,QAASoE,IAGV,QAEY,OAAnB9C,EAAKuC,gBAAyC5V,IAAnBqT,EAAKuC,WAEhC,EAAKiB,mBAAmBxD,EAAKuC,WAAWpS,MAAK,SAACC,GAC1C,EAAK0C,SAAS,CACVuO,cAAejR,IAEnB,EAAKgC,MAAMiP,cAAcrM,KAAI,SAAC8N,GAM1B,OALIA,EAAExX,KAAO0U,EAAKtE,gBACd,EAAK5I,SAAS,CACVoO,aAAc4B,IAGf,WAMnB,EAAKxb,MAAM2Y,YAAY,4GAAwB,YACjD,EACFC,OAAS,WACLlQ,IAAM8E,KAAK5F,EAAOC,IAAM,mDAAqD,EAAKiD,MAAM8I,kBAAmB,MAAM/K,MAAK,SAACC,GAGnH,EAAK0P,YAENzP,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAExB,EACF4R,OAAS,WAEL,EAAK5F,MAAM,GACX,EAAKuJ,qBACL,EAAKK,kBACP,EACFnF,WAAa,WACT,EAAKrX,MAAMmO,cACXzF,IAAMC,IAAIf,EAAOC,IAAM,gCAAgCgB,MAAK,SAACC,GAEzD,EAAK9I,MAAMyN,cACX,EAAKjC,SAAS,CACV8L,SAAUxO,EAAIjC,UAGnBkC,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAExB,EACFmW,iBAAmB,SAAC9B,GACE,OAAdA,QAAoC5V,IAAd4V,GACtB,EAAKiB,mBAAmBjB,GAAWpS,MAAK,SAACC,GACrC,EAAK0C,SAAS,CACVuO,cAAejR,QAK9B,EACD0T,eAAiB,WACb,EAAKxc,MAAMmO,cACXzF,IAAMC,IAAIf,EAAOC,IAAM,iCAAiCgB,MAAK,SAACC,GAE1D,EAAK9I,MAAMyN,cACX,EAAKjC,SAAS,CACVkK,UAAW5M,EAAIjC,KAAKmW,WACpBrH,iBAAkB7M,EAAIjC,KAAKoW,kBAC3BrH,WAAY9M,EAAIjC,KAAKqW,uBAI1BnU,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAhStB,EAAKkE,MAAQ,CACT4K,UAAW,GACXC,iBAAkB,GAClBC,WAAY,GACZqE,WAAY,GACZvH,WAAY,GACZxF,OAAQ,GACR2F,SAAU,MACV9D,iBAAkB,GAElBuI,SAAU,GACVF,QAAS,KACTjD,iBAAkB,GAClB4F,cAAe,GACfH,aAAc,KACd0C,eAAgBrJ,gBAAM,MAAMC,WAC5BqJ,QAAStW,EAAYgN,gBAAM,MAAMC,YACjCH,iBAAkBE,gBAAM,MAAMC,WAC9BJ,UAAW7M,EAAYgN,gBAAM,MAAMC,YACnCC,eAAgBF,gBAAM,MAAMC,WAC5BF,QAAS/M,EAAYgN,gBAAM,MAAMC,YACjCmJ,UAAU,GACb,EAyfJ,OAvfA,8CAED,WACI/a,KAAKtB,MAAMyN,cACXnM,KAAK+V,aACL/V,KAAKkb,iBACLlb,KAAK6a,uBACR,oBAuQD,WAAU,IAAD,OACL,OACI,yBAAKnY,GAAG,kBAAkB6F,MAAOvI,KAAKtB,MAAM6J,OACxC,6BAEI,wBAAI5F,UAAU,iBAAgB,iEAE9B,yBAAKA,UAAU,YAGX,yBAAKA,UAAU,aACX,2BAAOA,UAAU,cAAa,gDAC9B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAAa8C,UAAW,IAC3DnV,MAAO6F,EAAWlE,KAAKwJ,MAAM4K,WAC7B9H,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAEkK,UAAWnQ,EAAiBgE,EAAExJ,OAAOJ,MAAM+E,QAAQ,wBAAe,WAI3G,yBAAKT,UAAU,aACX,uBAAGA,UAAU,cAAa,gDAC1B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAAa8C,UAAW,IAE3DnV,MAAO6F,EAAWlE,KAAKwJ,MAAM6K,kBAC7B/H,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAEmK,iBAAkBpQ,EAAiBgE,EAAExJ,OAAOJ,MAAM+E,QAAQ,wBAAe,WAElH,yBAAKT,UAAU,aACX,uBAAGA,UAAU,cAAa,qDAC1B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAEnCrS,MAAOwF,EAAiB7D,KAAKwJ,MAAM8K,YACnChI,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAEoK,WAAYrQ,EAAiBgE,EAAExJ,OAAOJ,MAAM+E,QAAQ,wBAAe,YAQhH,yBAAKT,UAAU,YACX,yBAAKA,UAAU,aACX,2BAAOA,UAAU,cAAa,uEAC9B,kBAAC,IAAU,CACPtE,MAAO2B,KAAKwJ,MAAMwR,eAClB1O,SAAU,SAACuH,GACP,EAAK3J,SAAS,CACV8Q,eAAgBnH,EAChBoH,QAAStW,EAAYkP,MAG7BC,iBAAiB,qIACjBC,eAAe,cACfC,yBAAuB,EACvBC,OAAO,QAKf,yBAAKtR,UAAU,aACX,2BAAOA,UAAU,cAAa,2DAC9B,kBAAC,IAAU,CACPtE,MAAO2B,KAAKwJ,MAAMiI,iBAClBnF,SAAU,SAACuH,GACP,EAAK3J,SAAS,CACVuH,iBAAkBoC,EAClBrC,UAAW7M,EAAYkP,MAG/BC,iBAAiB,qIACjBC,eAAe,cACfC,yBAAuB,EACvBC,OAAO,QAGf,yBAAKtR,UAAU,aACX,2BAAOA,UAAU,cAAa,iEAC9B,kBAAC,IAAU,CACPtE,MAAO2B,KAAKwJ,MAAMqI,eAClBvF,SAAU,SAACuH,GACP,EAAK3J,SAAS,CACV2H,eAAgBgC,EAChBnC,QAAS/M,EAAYkP,MAG7BC,iBAAiB,qIACjBC,eAAe,cACfC,yBAAuB,EACvBC,OAAO,SAQnB,yBAAKtR,UAAU,YACX,yBAAKA,UAAU,aACX,kBAAC,EAAQ,CACLwG,MAAM,2BACNuO,KAAM1X,KAAKwJ,MAAMwM,SACjBrH,KAAM3O,KAAKwJ,MAAMsM,QACjB6B,SAAU,SAAChJ,GAAI,OAAKA,EAAKqC,UAAY,IAAMrC,EAAKuC,UAChD5E,SAAU,SAACqC,GAAI,OAAK,EAAKzE,SAAS,CAAE4L,QAASnH,EAAM8J,cAAe,GAAIH,aAAc,MAAkB,OAAT3J,QAA0B5K,IAAT4K,EAAqB,EAAK8M,iBAAiB9M,EAAKjM,IAAI,OAClKmV,OAAO,wBACPC,YAAY,KAGpB,yBAAKnV,UAAU,aACX,kBAAC,EAAQ,CACLwG,MAAM,0DACNuO,KAAM1X,KAAKwJ,MAAMiP,cACjB9J,KAAM3O,KAAKwJ,MAAM8O,aACjBX,SAAU,SAAChJ,GAAI,OAAKA,EAAKqC,UAAY,IAAMrC,EAAKuC,UAChD5E,SAAU,SAACqC,GAAI,OAAK,EAAKzE,SAAS,CAAEoO,aAAc3J,KAClDkJ,OAAO,wBACPC,YAAY,KAGpB,yBAAKnV,UAAU,oCACXE,QAAS,kBAAM,EAAKqH,SAAS,CAAE6Q,UAAW,EAAKvR,MAAMuR,aACrD,0BACIpY,UAAW3C,KAAKwJ,MAAMuR,SAAW,mBAAqB,aAC1D,4BAAI,uDAIZ,yBAAKpY,UAAU,iBACX,4BAAQA,UAAU,MACdE,QAAS,kBACL,EAAKnE,MAAMmN,UAAU,4NAA8C,OAAQ,EAAKL,qBAAoB,sBAG5G,4BAAQ7I,UAAU,MACdE,QAAS,kBAAM,EAAKyO,MAAM,KACxB,qDAMV,yBAAK3O,UAAU,cACX,4BAAkC,IAA7B3C,KAAKwJ,MAAMoC,OAAOhN,OAAe,GACjCoB,KAAKwJ,MAAMoC,OAAOQ,KAAI,SAAC/G,EAAO1G,GAAC,OAC5B,wBAAIM,IAAKN,GAAI0G,QAKzB,kBAAC,EAAK,CAEFiI,aAAc,CACV,yHACA,4IACA,8CACA,8CACA,oDACA,sEACA,0DACA,gEACA,oDACA,8CACA,iCACA,uCACA,sBAGJC,SACIvN,KAAKwJ,MAAMqJ,iBAGfrF,UAAW,CACP,SAAApJ,GACI,OAAQA,EAAEuR,iBAEd,SAAAvR,GACI,OAAQA,EAAEyX,sBAEd,SAAAzX,GACI,OAAOF,EAAWE,EAAEgQ,YAGxB,SAAAhQ,GACI,OAAOF,EAAWE,EAAEiQ,mBAExB,SAAAjQ,GACI,OAAOP,EAAiBO,EAAEkQ,aAE9B,SAAAlQ,GACI,OAAOP,EAAiBO,EAAEmQ,UAE9B,SAAAnQ,GACI,OAAOP,EAAiBO,EAAEoN,YAE9B,SAAApN,GACI,OAAOP,EAAiBO,EAAEsN,UAE9B,SAAAtN,GACI,OAAOP,EAAiBO,EAAEmT,UAE9B,SAAAnT,GACI,OAAOP,EAAiBO,EAAEoT,UAG9B,SAAApT,GACI,MAAmB,SAAXA,EAAExB,OAA8B,IAAXwB,EAAExB,KAAgB,oDAAa,2DAIhE,SAAAwB,GACI,OAAO,4BAAQxB,KAAK,SAChBD,UAAU,UAEVE,QAAS,WACL,EAAKsU,YAAY/S,KAExB,yCAEL,SAAAA,GACI,OAAO,4BAAQxB,KAAK,SAChBD,UAAU,UAEVE,QAAS,WACL,EAAKqH,SAAS,CAAEoI,kBAAmBlO,EAAE1B,KAAM,kBAAM,EAAKhE,MAAMmN,UAAU,gLAAqC,OAAQ,EAAKyL,aAE/H,gCAU5B,EAvhBgB,CAASjM,IAAM9H,WCuYrBuY,G,MAvYF,kDAET,WAAYpd,GAAQ,IAAD,EAqBd,OArBc,qBACf,cAAMA,IA8BVgS,YAAc,SAACC,GAAK,OAAKA,EAAMlS,OAAOmS,UAAQ,EAE9CmL,WAAa,WACT,EAAKrd,MAAMmO,cACXzF,IAAMC,IAAIf,EAAOC,IAAM,gCAAgCgB,MAAK,SAACC,GAEzD,EAAK9I,MAAMyN,cACX,EAAKjC,SAAS,CACV8R,SAAUxU,EAAIjC,UAGnBkC,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAExB,EAIFkG,kBAAoB,WAEhB,IAAInG,EAAQ,GAE4B,IAApC,EAAKmE,MAAMyS,cAAcrd,QAA6C,IAA7B,EAAK4K,MAAMyS,eAAmD,MAA7B,EAAKzS,MAAMyS,eACrF5W,EAAMsG,KAAK,+JAEsB,IAAjC,EAAKnC,MAAMkS,WAAW9c,QAA0C,IAA1B,EAAK4K,MAAMkS,YAA8C,MAA1B,EAAKlS,MAAMkS,YAChFrW,EAAMsG,KAAK,uIAE6B,IAAxC,EAAKnC,MAAMmS,kBAAkB/c,QAAiD,IAAjC,EAAK4K,MAAMmS,mBAA4D,MAAjC,EAAKnS,MAAMmS,mBAC9FtW,EAAMsG,KAAK,uIAE6B,IAAxC,EAAKnC,MAAMoS,kBAAkBhd,QAAiD,IAAjC,EAAK4K,MAAMoS,mBAA4D,MAAjC,EAAKpS,MAAMoS,mBAC9FvW,EAAMsG,KAAK,yJAE4B,IAAvC,EAAKnC,MAAM0S,iBAAiBtd,QAAgD,IAAhC,EAAK4K,MAAM0S,kBAA0D,MAAhC,EAAK1S,MAAM0S,kBAC5F7W,EAAMsG,KAAK,gNAEwB,IAAnC,EAAKnC,MAAM2S,aAAavd,QAA4C,IAA5B,EAAK4K,MAAM2S,cAAkD,MAA5B,EAAK3S,MAAM2S,cACpF9W,EAAMsG,KAAK,sKAEsB,IAAjC,EAAKnC,MAAM4S,WAAWxd,QAA0C,MAA1B,EAAK4K,MAAM4S,YACjD/W,EAAMsG,KAAK,mLAIM,IAAjBtG,EAAMzG,QACN,EAAKsL,SAAS,CAAE0B,OAAQvG,IAExB,EAAKgX,eAGL,EAAK3d,MAAMmN,UAAU,gRACrB,EAAK3B,SAAS,CAAE0B,OAAQvG,MAG9B,EACFiM,MAAQ,SAAC+E,GAEL,EAAKnM,SAAS,CACV+R,cAAe,GACfP,WAAY,GACZC,kBAAmB,GACnBC,kBAAmB,GACnBM,iBAAkB,GAClBC,aAAc,GACdC,WAAY,GAEZxQ,OAAQ,GAER0Q,UAAW,KACX/K,SAAU,QAGE,IAAZ8E,GAAiB,EAAKnM,SAAS,CAAE8R,SAAU,MACjD,EACFK,WAAa,WACT,IAEIrH,EAFAyB,EAAM,cACNC,EAAO,oHAEiB,QAAxB,EAAKlN,MAAM+H,SACXyD,EAAW,CACPuH,cAAe,EAAK/S,MAAMyS,cAC1BO,WAAY,EAAKhT,MAAMkS,WACvBe,kBAAmB,EAAKjT,MAAMmS,kBAC9Be,kBAAmB,EAAKlT,MAAMoS,kBAC9Be,iBAAkB,EAAKnT,MAAM0S,iBAC7BU,aAAc,EAAKpT,MAAM2S,aACzBU,WAAY,EAAKrT,MAAM4S,aAK3B3F,EAAM,eACNC,EAAO,sIACP1B,EAAW,CAGPuH,cAAe,EAAK/S,MAAMyS,cAC1BO,WAAY,EAAKhT,MAAMkS,WACvBe,kBAAmB,EAAKjT,MAAMmS,kBAC9Be,kBAAmB,EAAKlT,MAAMoS,kBAC9Be,iBAAkB,EAAKnT,MAAM0S,iBAC7BU,aAAc,EAAKpT,MAAM2S,aACzBU,WAAY,EAAKrT,MAAM4S,WAEvBnF,GAAI,EAAKzN,MAAM8S,YAIvBlV,IAAM8E,KAAK5F,EAAOC,IAAM,kBAAoBkQ,EAAKzB,GAE5CzN,MAAK,SAACC,GAEgB,MAAfA,EAAI0N,SACJ,EAAKxW,MAAMyN,cACX,EAAKzN,MAAMmN,UAAU6K,EAAM,WAC3B,EAAKQ,aAKZzP,OAAM,SAACpC,GAEJ,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAI5B,EACF6R,YAAc,SAACC,GAGX,EAAKlN,SAAS,CACV+R,cAAe7E,EAAK6E,cACpBP,WAAYtE,EAAKsE,WAEjBC,kBAAmBvE,EAAKuE,kBACxBC,kBAAmBxE,EAAKwE,kBACxBM,iBAAkB9E,EAAK8E,iBACvBC,aAAc/E,EAAK+E,aACnBC,WAAYhF,EAAKgF,WAEjBE,UAAWlF,EAAK1U,GAChB6O,SAAU,SAKd,EAAK7S,MAAM2Y,YAAY,4GAAwB,YACjD,EACFC,OAAS,WACLlQ,IAAM8E,KAAK5F,EAAOC,IAAM,mCAAqC,EAAKiD,MAAM8S,UAAW,MAAM/U,MAAK,SAACC,GAG3F,EAAK0P,YAENzP,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAExB,EACF4R,OAAS,WAEL,EAAK5F,MAAM,GACX,EAAKyK,cAjML,EAAKvS,MAAQ,CACTyS,cAAe,GACfP,WAAY,GACZC,kBAAmB,GACnBC,kBAAmB,GACnBM,iBAAkB,GAClBC,aAAc,GACdC,WAAY,GAEZxQ,OAAQ,GACR2F,SAAU,MACV9D,iBAAkB,GAElBuO,SAAU,IAEb,EA6WJ,OA3WA,8CAED,WACIhc,KAAKtB,MAAMyN,cAEXnM,KAAK+b,eACR,oBAiLD,WAAU,IAAD,OACL,OACI,yBAAKrZ,GAAG,UAAU6F,MAAOvI,KAAKtB,MAAM6J,OAChC,6BAEI,wBAAI5F,UAAU,iBAAgB,8CAE9B,yBAAKA,UAAU,YAGX,yBAAKA,UAAU,aACX,2BAAOA,UAAU,cAAa,wEAC9B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAAa8C,UAAW,IAC3DnV,MAAO6F,EAAWlE,KAAKwJ,MAAMyS,eAC7B3P,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAE+R,cAAehY,EAAiBgE,EAAExJ,OAAOJ,MAAM+E,QAAQ,wBAAe,WAI/G,yBAAKT,UAAU,aACX,uBAAGA,UAAU,cAAa,gDAC1B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAAa8C,UAAW,IAE3DnV,MAAO6F,EAAWlE,KAAKwJ,MAAMkS,YAC7BpP,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAEwR,WAAYzX,EAAiBgE,EAAExJ,OAAOJ,MAAM+E,QAAQ,wBAAe,WAE5G,yBAAKT,UAAU,aACX,uBAAGA,UAAU,cAAa,+CAC1B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAEnCrS,MAAO6F,EAAWlE,KAAKwJ,MAAMmS,mBAC7BrP,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAEyR,kBAAmB1X,EAAiBgE,EAAExJ,OAAOJ,MAAM+E,QAAQ,wBAAe,YAUvH,yBAAKT,UAAU,YAEX,yBAAKA,UAAU,aACX,uBAAGA,UAAU,cAAa,iEAC1B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAEnCrS,MAAOwF,EAAiB7D,KAAKwJ,MAAMoS,mBACnCtP,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAE0R,kBAAmB3X,EAAiBgE,EAAExJ,OAAOJ,MAAM+E,QAAQ,wBAAe,WAG/G,yBAAKT,UAAU,aACf,uBAAGA,UAAU,cAAa,wHAC1B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAEnCrS,MAAO6F,EAAWlE,KAAKwJ,MAAM0S,kBAC7B5P,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAEgS,iBAAkBjY,EAAiBgE,EAAExJ,OAAOJ,MAAM+E,QAAQ,wBAAe,WAG9G,yBAAKT,UAAU,aACf,uBAAGA,UAAU,cAAa,8EAC1B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAEnCrS,MAAO6F,EAAWlE,KAAKwJ,MAAM2S,cAC7B7P,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAEiS,aAAclY,EAAiBgE,EAAExJ,OAAOJ,MAAM+E,QAAQ,wBAAe,YAMlH,yBAAKT,UAAU,YAEX,yBAAKA,UAAU,aACX,uBAAGA,UAAU,cAAa,wEAC1B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YACnCrE,YAAY,qBACZhO,MAAOwF,EAAiB7D,KAAKwJ,MAAM4S,YACnC9P,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAAEkS,WAAYnY,EAAiBgE,EAAExJ,OAAOJ,MAAM+E,QAAQ,wBAAe,YAIhH,yBAAKT,UAAU,iBACX,4BAAQA,UAAU,MACdE,QAAS,kBACL,EAAKnE,MAAMmN,UAAU,4NAA8C,OAAQ,EAAKL,qBAAoB,sBAG5G,4BAAQ7I,UAAU,MACdE,QAAS,kBAAM,EAAKyO,MAAM,KACxB,qDAMV,yBAAK3O,UAAU,cACX,4BAAkC,IAA7B3C,KAAKwJ,MAAMoC,OAAOhN,OAAe,GACjCoB,KAAKwJ,MAAMoC,OAAOQ,KAAI,SAAC/G,EAAO1G,GAAC,OAC5B,wBAAIM,IAAKN,GAAI0G,QAKzB,kBAAC,EAAK,CAEFiI,aAAc,CACV,sEACA,8CACA,8CACA,oDACA,uHACA,6EACA,uEACA,oDACA,8CACA,uCACA,sBAGJC,SACIvN,KAAKwJ,MAAMwS,SAGfxO,UAAW,CACP,SAAApJ,GACI,OAAOF,EAAWE,EAAE6X,gBAGxB,SAAA7X,GACI,OAAOF,EAAWE,EAAEsX,aAExB,SAAAtX,GACI,OAAOF,EAAWE,EAAEuX,oBAExB,SAAAvX,GACI,OAAOP,EAAiBO,EAAEwX,oBAE9B,SAAAxX,GACI,OAAOF,EAAWE,EAAE8X,mBAExB,SAAA9X,GACI,OAAOF,EAAWE,EAAE+X,eAExB,SAAA/X,GACI,OAAOP,EAAiBO,EAAEgY,aAE9B,SAAAhY,GACI,OAAOP,EAAiBO,EAAEmT,UAE9B,SAAAnT,GACI,OAAOP,EAAiBO,EAAEoT,UAK9B,SAAApT,GACI,OAAO,4BAAQxB,KAAK,SAChBD,UAAU,UAEVE,QAAS,WACL,EAAKsU,YAAY/S,KAExB,yCAEL,SAAAA,GACI,OAAO,4BAAQxB,KAAK,SAChBD,UAAU,UAEVE,QAAS,WACL,EAAKqH,SAAS,CAAEoS,UAAWlY,EAAE1B,KAAM,kBAAM,EAAKhE,MAAMmN,UAAU,gLAAqC,OAAQ,EAAKyL,aAEvH,gCAU5B,EApYQ,CAASjM,IAAM9H,Y,mBCP5B,kmGAAA5E,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAMqE,IAwpBtDme,GAvpBS,kDAEpB,WAAYpe,GAAQ,IAAD,EAoCd,OApCc,qBACf,cAAMA,IA8CVkc,mBAAkB,uCAAG,WAAO3F,GAAS,uEAEhB,OADjB,EAAKvW,MAAMmO,cACPvH,EAAW,GAAG,EAAD,OACX8B,IAAMC,IAAIf,EAAOC,IAAM,4DAA8D0O,GACtF1N,MAAK,SAACC,GAEgB,MAAfA,EAAI0N,SACJ,EAAKxW,MAAMyN,cAKX7G,EAAWkC,EAAIjC,SAItBkC,OAAM,SAACpC,GAEJ,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,aACnB,KAAD,2BACCA,GAAQ,2CAClB,mDAvBiB,GAuBjB,EAyBDyX,sBAAwB,SAACjK,GACrB,EAAKkK,yBAAyBlK,GAAgBvL,MAAK,SAACC,GAChD,EAAK0C,SAAS,CACV2I,iBAAkBrL,QAI7B,EACDwV,yBAAwB,uCAAG,WAAOlK,GAAc,uEAE3B,OADjB,EAAKpU,MAAMmO,cACPvH,EAAW,GAAG,EAAD,OACX8B,IAAMC,IAAIf,EAAOC,IAAM,4EAA8EuM,GACtGvL,MAAK,SAACC,GAEgB,MAAfA,EAAI0N,SACJ,EAAKxW,MAAMyN,cAKX7G,EAAWkC,EAAIjC,SAItBkC,OAAM,SAACpC,GAEJ,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,aACnB,KAAD,2BACCA,GAAQ,2CAClB,mDAvBuB,GAuBvB,EACDoL,YAAc,SAACC,GAAK,OAAKA,EAAMlS,OAAOmS,UAAQ,EAE9CqM,sBAAwB,WACpB,EAAKve,MAAMmO,cACXzF,IAAMC,IAAIf,EAAOC,IAAM,sDAAsDgB,MAAK,SAACC,GAE/E,EAAK9I,MAAMyN,cACX,EAAKjC,SAAS,CACVgT,oBAAqB1V,EAAIjC,UAG9BkC,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAExB,EAGFkG,kBAAoB,WAEhB,IAAInG,EAAQ,GACsC,OAA9C,EAAKmE,MAAM0P,yBAAyB7a,OACpCgH,EAAMsG,KAAK,gKAEmC,OAA9C,EAAKnC,MAAM0P,yBAAyB7a,OAAgE,IAA9C,EAAKmL,MAAM0P,yBAAyB7a,QACnD,IAAnC,EAAKmL,MAAM0K,aAAatV,QAAmD,MAAnC,EAAK4K,MAAM0K,aAAatV,QAChEyG,EAAMsG,KAAK,gKAG+B,OAA9C,EAAKnC,MAAM0P,yBAAyB7a,OAAgE,IAA9C,EAAKmL,MAAM0P,yBAAyB7a,QACnD,IAAnC,EAAKmL,MAAM0K,aAAatV,QAAmD,MAAnC,EAAK4K,MAAM0K,aAAatV,QAChEyG,EAAMsG,KAAK,iIAIa,OAA5B,EAAKnC,MAAM8O,mBAAqDvU,IAA5B,EAAKyF,MAAM8O,cAC/CjT,EAAMsG,KAAK,gIAEmC,IAA9C,EAAKnC,MAAM0P,yBAAyB7a,QACD,OAA/B,EAAKmL,MAAMmR,sBAA2D5W,IAA/B,EAAKyF,MAAMmR,iBAClDtV,EAAMsG,KAAK,sKAIE,IAAjBtG,EAAMzG,QACN,EAAKsL,SAAS,CAAE0B,OAAQvG,IAExB,EAAK8X,0BAGL,EAAKze,MAAMmN,UAAU,gRACrB,EAAK3B,SAAS,CAAE0B,OAAQvG,MAG9B,EACFiM,MAAQ,SAAC+E,GAEL,EAAKnM,SAAS,CACVgK,aAAc,GACdkJ,YAAa,GACb3E,cAAe,GACfH,aAAc,KACdxC,QAAS,KACTlK,OAAQ,GACRiH,iBAAkB,GAAI8H,gBAAiB,KACvC0C,qBAAsB,KACtB9L,SAAU,MACV+L,mBAAoB3L,gBAAM,MAAMC,WAChCuC,YAAaxP,EAAYgN,gBAAM,MAAMC,YACrCsH,yBAA0B,CAAE7a,MAAO,EAAG8a,KAAM,gDAEhC,IAAZ9C,GAAiB,EAAKnM,SAAS,CAAEgT,oBAAqB,MAC5D,EACFC,sBAAwB,WACpB,IAEInI,EAFAyB,EAAM,yBACNC,EAAO,oHAEiB,QAAxB,EAAKlN,MAAM+H,SACXyD,EAAW,CACPuI,aAA0C,KAA5B,EAAK/T,MAAM0K,aAAsB,EAAI,EAAK1K,MAAM0K,aAC9DsJ,YAAa,EAAKhU,MAAM2K,YACxBsJ,YAAwC,KAA3B,EAAKjU,MAAM4T,YAAqB,EAAI,EAAK5T,MAAM4T,YAC5DrK,YAAa,EAAKvJ,MAAM0P,yBAAyB7a,MACjD0T,eAAgB,EAAKvI,MAAM8O,aAAa5V,GACxC4P,kBAA4D,OAAxC,EAAK9I,MAAM0P,+BAA6EnV,IAAxC,EAAKyF,MAAM0P,0BAAuF,IAA9C,EAAK1P,MAAM0P,yBAAyB7a,MAAe,EAAKmL,MAAMmR,gBAAgBjY,GAAW,OAIrN+T,EAAM,0BACNC,EAAO,sIACP1B,EAAW,CAGPuI,aAA0C,KAA5B,EAAK/T,MAAM0K,aAAsB,EAAI,EAAK1K,MAAM0K,aAC9DsJ,YAAa,EAAKhU,MAAM2K,YACxBsJ,YAAwC,KAA3B,EAAKjU,MAAM4T,YAAqB,EAAI,EAAK5T,MAAM4T,YAC5DrK,YAAa,EAAKvJ,MAAM0P,yBAAyB7a,MACjD0T,eAAgB,EAAKvI,MAAM8O,aAAa5V,GACxC4P,kBAA4D,OAAxC,EAAK9I,MAAM0P,+BAA6EnV,IAAxC,EAAKyF,MAAM0P,0BAAyF,IAA9C,EAAK1P,MAAM0P,yBAAyB7a,MAAe,EAAKmL,MAAMmR,gBAAgBjY,GAAY,KACpNuU,GAAI,EAAKzN,MAAM6T,uBAIvBjW,IAAM8E,KAAK5F,EAAOC,IAAM,6BAA+BkQ,EAAKzB,GAEvDzN,MAAK,SAACC,GAEgB,MAAfA,EAAI0N,SACJ,EAAKxW,MAAMyN,cACX,EAAKzN,MAAMmN,UAAU6K,EAAM,WAC3B,EAAKQ,OAAO,GACZ,EAAKwG,+BAKZjW,OAAM,SAACpC,GAEJ,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAI5B,EACF6R,YAAe,SAACC,GAGZ,EAAKlN,SAAS,CAEVgK,aAAckD,EAAKlD,aACnBkJ,YAAahG,EAAKgG,YAClBhM,WAAYgG,EAAKhG,WACjBuH,WAAYvB,EAAKuB,WACjBrE,WAAY8C,EAAK9C,WAEjB+I,qBAAsBjG,EAAK1U,GAC3B6O,SAAU,OAEV4C,YAAaiD,EAAKuG,uBAClBL,mBAAoBpY,EAAYkS,EAAKuG,wBACrCzE,yBAA0B,EAAK1P,MAAMsQ,kBAAkBC,QAAO,SAACC,GAAQ,OAAKA,EAAS3b,QAAU+Y,EAAKwG,YAAc5D,EAAW,QAAM,KAKvI,EAAKxQ,MAAMwM,SAAS5J,KAAI,SAAC8N,GAMrB,OALIA,EAAExX,KAAO0U,EAAKuC,WACd,EAAKzP,SAAS,CACV4L,QAASoE,IAGV,QAGY,OAAnB9C,EAAKuC,gBAAyC5V,IAAnBqT,EAAKuC,WAIhC,EAAKqD,yBAAyB5F,EAAKtE,gBAAgBvL,MAAK,SAACC,GACrD,EAAK0C,SAAS,CACV2I,iBAAkBrL,IAEtB,EAAKoT,mBAAmBxD,EAAKuC,WAAWpS,MAAK,SAACC,GAC1C,EAAK0C,SAAS,CACVuO,cAAejR,IAEnB,EAAKgC,MAAMiP,cAAcrM,KAAI,SAAC8N,GAM1B,OALIA,EAAExX,KAAO0U,EAAKtE,gBACd,EAAK5I,SAAS,CACVoO,aAAc4B,IAGf,WAGa,OAAxB9C,EAAKtE,qBAAmD/O,IAAxBqT,EAAKtE,gBACrC,EAAKtJ,MAAMqJ,iBAAiBzG,KAAI,SAAC8N,GAM7B,OALIA,EAAExX,KAAO0U,EAAKyG,mBACd,EAAK3T,SAAS,CACVyQ,gBAAiBT,IAGlB,WAMvB,EAAKxb,MAAM2Y,YAAY,4GAAwB,YACjD,EACFC,OAAS,WACLlQ,IAAM8E,KAAK5F,EAAOC,IAAM,yDAA2D,EAAKiD,MAAM6T,qBAAsB,MAAM9V,MAAK,SAACC,GAG5H,EAAK0P,OAAO,MAEbzP,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAExB,EACF4R,OAAS,SAACtU,GAEN,EAAK0O,MAAM1O,GACX,EAAKsH,SAAS,CAAEgT,oBAAqB,KAAM,kBAAM,EAAKQ,+BAExD,EAGF3H,WAAa,WACT,EAAKrX,MAAMmO,cACXzF,IAAMC,IAAIf,EAAOC,IAAM,gCAAgCgB,MAAK,SAACC,GAEzD,EAAK9I,MAAMyN,cACX,EAAKjC,SAAS,CACV8L,SAAUxO,EAAIjC,OAElBmC,QAAQC,IAAIH,EAAIjC,SACjBkC,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAExB,EAIFmW,iBAAmB,SAAC9B,GACE,OAAdA,QAAoC5V,IAAd4V,GACtB,EAAKiB,mBAAmBjB,GAAWpS,MAAK,SAACC,GACrC,EAAK0C,SAAS,CACVuO,cAAejR,QAK9B,EACDsW,SAAW,SAACnP,GACI,MAARA,EACA,EAAKzE,SAAS,CACVgK,aAAcvF,EAAK0F,mBAIvB,EAAKnK,SAAS,CACVgK,aAAc,MAGxB,EACFgH,eAAiB,SAACvM,GACdjH,QAAQC,IAAIgH,GAER,EAAKjQ,MAAMmO,cACXzF,IAAMC,IAAIf,EAAOC,IAAM,iCAAiCgB,MAAK,SAACC,GAE1D,EAAK9I,MAAMyN,cACX,EAAKjC,SAAS,CACVgK,aAA6B,IAAfvF,EAAKtQ,MAAcmJ,EAAIjC,KAAK0W,cAA+B,IAAftN,EAAKtQ,MAAcmJ,EAAIjC,KAAKoW,kBAAmB,GACzGyB,YAA4B,IAAfzO,EAAKtQ,MAAcmJ,EAAIjC,KAAKwY,WAAavW,EAAIjC,KAAKyY,gBAKpEvW,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAW5B,EACFoY,yBAA2B,WACvB,IAAI1I,EACJA,EAAW,CACPjJ,MAAO,EAAKvC,MAAM2K,YAClBlI,MAA+B,OAAvB,EAAKzC,MAAMsM,SAA2C,KAAvB,EAAKtM,MAAMsM,cAAyC/R,IAAvB,EAAKyF,MAAMsM,QAAyB,EAAKtM,MAAMsM,QAAQpT,GAAK,KAChIub,MAAoC,OAA5B,EAAKzU,MAAM8O,cAAqD,KAA5B,EAAK9O,MAAM8O,mBAAmDvU,IAA5B,EAAKyF,MAAM8O,aAA8B,EAAK9O,MAAM8O,aAAa5V,GAAK,KACpJwb,MAAQ,KACRC,MAAoC,OAA5B,EAAK3U,MAAM0K,cAAqD,KAA5B,EAAK1K,MAAM0K,mBAAmDnQ,IAA5B,EAAKyF,MAAM0K,aAA8B,EAAK1K,MAAM0K,aAAe,KACjJkK,MAAO,MAEX,EAAK1f,MAAMmO,cAEXzF,IAAM8E,KAAK5F,EAAOC,IAAM,qDAAsDyO,GAAUzN,MAAK,SAACC,GAG1F,EAAK9I,MAAMyN,cACX,EAAKjC,SAAS,CACVgT,oBAAqB1V,EAAIjC,UAG9BkC,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAzatB,EAAKkE,MAAQ,CACT0K,aAAc,GACdkJ,YAAa,GACb9I,WAAY,GACZqE,WAAY,GACZvH,WAAY,GACZxF,OAAQ,GACR2F,SAAU,MACV9D,iBAAkB,GAElByP,oBAAqB,GACrBzE,cAAe,GACfH,aAAc,KACdgF,mBAAoB3L,gBAAM,MAAMC,WAChCuC,YAAaxP,EAAYgN,gBAAM,MAAMC,YACrCkI,kBAAmB,CACf,CAAEzb,MAAO,KAAM8a,KAAM,iEACrB,CAAE9a,MAAO,EAAG8a,KAAM,wCAClB,CAAE9a,MAAM,EAAG8a,KAAM,8CACjB,CAAE9a,MAAO,EAAG8a,KAAM,0CAMtBD,yBAA0B,CAAE7a,MAAO,KAAM8a,KAAM,iEAC/CtG,iBAAkB,GAClB8H,gBAAiB,KACjB3E,SAAU,GACVF,QAAS,MACZ,EA8mBJ,OA5mBA,8CAED,WACI9V,KAAKtB,MAAMyN,cACXnM,KAAK+V,aACL/V,KAAKkb,eAAelb,KAAKwJ,MAAM0P,0BAC/BlZ,KAAK0d,6BACR,oBAqYD,WAAU,IAAD,OACL,OACI,yBAAKhb,GAAG,qBAAqB6F,MAAOvI,KAAKtB,MAAM6J,OAC3C,6BAEI,wBAAI5F,UAAU,iBAAgB,wCAE9B,yBAAKA,UAAU,YACf,yBAAKA,UAAU,aACP,2BAAOA,UAAU,cAAa,uEAC9B,kBAAC,IAAU,CACPtE,MAAO2B,KAAKwJ,MAAM8T,mBAClBhR,SAAU,SAACuH,GACP,EAAK3J,SAAS,CACVoT,mBAAoBzJ,EACpBM,YAAaxP,EAAYkP,MAGjCC,iBAAiB,qIACjBC,eAAe,cACfC,yBAAuB,EACvBC,OAAO,QAGf,yBAAKtR,UAAU,aACX,kBAAC,EAAQ,CACLwG,MAAM,2BACNuO,KAAM1X,KAAKwJ,MAAMwM,SACjBrH,KAAM3O,KAAKwJ,MAAMsM,QACjB6B,SAAU,SAAChJ,GAAI,OAAKA,EAAKqC,UAAY,IAAMrC,EAAKuC,UAChD5E,SAAU,SAACqC,GAAI,OAAK,EAAKzE,SAAS,CAAE4L,QAASnH,EAAM8J,cAAe,GAAIH,aAAc,KAAMzF,iBAAkB,GAAI8H,gBAAiB,MAAkB,OAAThM,QAA0B5K,IAAT4K,EAAsB,EAAK8M,iBAAiB9M,EAAKjM,IAAM,OAClNmV,OAAO,wBACPC,YAAY,KAGpB,yBAAKnV,UAAU,aACX,kBAAC,EAAQ,CACLwG,MAAM,0DACNuO,KAAM1X,KAAKwJ,MAAMiP,cACjB9J,KAAM3O,KAAKwJ,MAAM8O,aACjBX,SAAU,SAAChJ,GAAI,OAAKA,EAAKqC,UAAY,IAAMrC,EAAKuC,UAChD5E,SAAU,SAACqC,GAAI,OAAK,EAAKzE,SAAS,CAAEoO,aAAc3J,EAAMkE,iBAAkB,GAAI8H,gBAAiB,MAAQ,EAAKoC,sBAAsBpO,EAAKjM,MACvImV,OAAO,wBACPC,YAAY,MAIpB,yBAAKnV,UAAU,YAEX,kBAAC,EAAQ,CACLwG,MAAM,0DACNuO,KAAM1X,KAAKwJ,MAAMsQ,kBACjBnL,KAAM3O,KAAKwJ,MAAM0P,yBACjBvB,SAAU,SAAChJ,GAAI,OAAKA,EAAKwK,MACzB7M,SAAU,SAACqC,GAAI,OAAK,EAAKzE,SAAS,CAC9BgP,yBAA0BvK,EAC1ByO,YAAa,GACblJ,aAAc,GACZyG,gBAAiB,MACpB,EAAKO,eAAevM,KACvBkJ,OAAO,cAKX,yBAAKlV,UAAU,aACX,2BAAOA,UAAU,cAAa,wEAC9B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAAa8C,UAAW,IAC3DnV,MAAO6F,EAAWlE,KAAKwJ,MAAM0K,cAC7B5H,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAC3BgK,aAAcjQ,EAAiBgE,EAAExJ,OAAOJ,MAAM+E,QAAQ,wBAAe,WAMpC,IAA9CpD,KAAKwJ,MAAM0P,yBAAyB7a,OAA6D,OAA9C2B,KAAKwJ,MAAM0P,yBAAyB7a,OAE1F,yBAAKsE,UAAU,aACf,2BAAOA,UAAU,cAAa,0CAC9B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAAa8C,UAAW,IAC3DnV,MAAO6F,EAAWlE,KAAKwJ,MAAM4T,aAC7B9Q,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAC3BkT,YAAanZ,EAAiBgE,EAAExJ,OAAOJ,MAAM+E,QAAQ,wBAAe,YAOhF,yBAAKT,UAAU,YACqC,IAA9C3C,KAAKwJ,MAAM0P,yBAAyB7a,OACtC,yBAAKsE,UAAU,aACX,kBAAC,EAAQ,CACLwG,MAAM,gEACNuO,KAAM1X,KAAKwJ,MAAMqJ,iBACjBlE,KAAM3O,KAAKwJ,MAAMmR,gBACjBhD,SAAU,SAAChJ,GAAI,OAAKA,EAAKqC,UAAY,IAAMrC,EAAKuC,SAA5BvC,yBAAwDA,EAAKyF,UAAY,yBAAYzF,EAAK0F,kBAC9G/H,SAAU,SAACqC,GAAI,OAAK,EAAKzE,SAAS,CAAEyQ,gBAAiBhM,GAAO,EAAKmP,SAASnP,KAC1EkJ,OAAO,wBACPC,YAAY,MASxB,yBAAKnV,UAAU,iBACX,4BAAQA,UAAU,MACdE,QAAS,kBACL,EAAKnE,MAAMmN,UAAU,4NAA8C,OAAQ,EAAKL,qBAAoB,sBAG5G,4BAAQ7I,UAAU,MACdE,QAAS,kBAAM,EAAKqU,OAAO,KACzB,oDAGN,4BAAQvU,UAAU,MACdE,QAAS,kBAAM,EAAK6a,6BAClB,mCAMV,yBAAK/a,UAAU,cACX,4BAAkC,IAA7B3C,KAAKwJ,MAAMoC,OAAOhN,OAAe,GACjCoB,KAAKwJ,MAAMoC,OAAOQ,KAAI,SAAC/G,EAAO1G,GAAC,OAC5B,wBAAIM,IAAKN,GAAI0G,QAKzB,kBAAC,EAAK,CAEFiI,aAAc,CACV,0DACA,8CACA,gGACA,sEACA,uCACA,sEACA,oDACA,8CACA,uCACA,sBAGJC,SACIvN,KAAKwJ,MAAM0T,oBAGf1P,UAAW,CACP,SAAApJ,GACI,OAAQA,EAAEwZ,aAEN,KAAK,EACD,MAAO,uCACX,KAAK,EACD,MAAO,6CACX,KAAK,EACD,MAAO,0CAKnB,SAAAxZ,GACI,OAAQA,EAAEuR,iBAEd,SAAAvR,GACI,OAAQA,EAAEyX,sBAEd,SAAAzX,GACI,OAAOF,EAAWL,EAAiBO,EAAE8P,gBAGzC,SAAA9P,GACI,OAAOP,EAAiBO,EAAEgZ,cAG9B,SAAAhZ,GACI,OAAOP,EAAiBO,EAAE+P,cAI9B,SAAA/P,GACI,OAAOP,EAAiBO,EAAEmT,UAE9B,SAAAnT,GACI,OAAOP,EAAiBO,EAAEoT,UAK9B,SAAApT,GACI,OAAO,4BAAQxB,KAAK,SAChBD,UAAU,UAEVE,QAAS,WACL,EAAKqH,SAAS,CAAE2I,iBAAkB,IAAM,EAAKsE,YAAY/S,MAGhE,yCAEL,SAAAA,GACI,OAAO,4BAAQxB,KAAK,SAChBD,UAAU,UAEVE,QAAS,WACL,EAAKqH,SAAS,CAAEmT,qBAAsBjZ,EAAE1B,KAAM,kBAAM,EAAKhE,MAAMmN,UAAU,gLAAqC,OAAQ,EAAKyL,aAElI,gCAU5B,EAppBmB,CAASjM,IAAM9H,W,oBCPvC,mmGAAA5E,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAMqE,IAoetD0f,GAnee,kDAE1B,WAAY3f,GAAQ,IAAD,EAsCd,OAtCc,qBACf,cAAMA,IAgDVkc,mBAAkB,wCAAG,WAAO3F,GAAS,wEAEhB,OADjB,EAAKvW,MAAMmO,cACPvH,EAAW,GAAG,EAAD,OACX8B,IAAMC,IAAIf,EAAOC,IAAM,4DAA8D0O,GACtF1N,MAAK,SAACC,GAEgB,MAAfA,EAAI0N,SACJ,EAAKxW,MAAMyN,cAKX7G,EAAWkC,EAAIjC,SAItBkC,OAAM,SAACpC,GAEJ,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,aACnB,KAAD,2BACCA,GAAQ,2CAClB,mDAvBiB,GAuBjB,EAGDyX,sBAAwB,SAACjK,GACrB,EAAKkK,yBAAyBlK,GAAgBvL,MAAK,SAACC,GAChD,EAAK0C,SAAS,CACV2I,iBAAkBrL,QAI7B,EACDwV,yBAAwB,wCAAG,WAAOlK,GAAc,wEAE3B,OADjB,EAAKpU,MAAMmO,cACPvH,EAAW,GAAG,EAAD,OACX8B,IAAMC,IAAIf,EAAOC,IAAM,4EAA8EuM,GACtGvL,MAAK,SAACC,GAEgB,MAAfA,EAAI0N,SACJ,EAAKxW,MAAMyN,cAKX7G,EAAWkC,EAAIjC,SAItBkC,OAAM,SAACpC,GAEJ,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,aACnB,KAAD,2BACCA,GAAQ,2CAClB,mDAvBuB,GAuBvB,EACDoL,YAAc,SAACC,GAAK,OAAKA,EAAMlS,OAAOmS,UAAQ,EAE9CqM,sBAAwB,WACpB,EAAKve,MAAMmO,cACXzF,IAAMC,IAAIf,EAAOC,IAAM,sDAAsDgB,MAAK,SAACC,GAE/E,EAAK9I,MAAMyN,cACX,EAAKjC,SAAS,CACVgT,oBAAqB1V,EAAIjC,UAG9BkC,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAExB,EACFoY,yBAA2B,WACvB,IAAI1I,EACAA,EAAW,CACPjJ,MAAO,EAAKvC,MAAM2K,YAClBlI,MAA+B,OAAvB,EAAKzC,MAAMsM,SAA2C,KAAvB,EAAKtM,MAAMsM,cAAyC/R,IAAvB,EAAKyF,MAAMsM,QAAyB,EAAKtM,MAAMsM,QAAQpT,GAAG,KAC9Hub,MAAoC,OAA5B,EAAKzU,MAAM8O,cAAqD,KAA5B,EAAK9O,MAAM8O,mBAAmDvU,IAA5B,EAAKyF,MAAM8O,aAA8B,EAAK9O,MAAM8O,aAAa5V,GAAG,KAClJwb,MAAgD,OAAxC,EAAK1U,MAAM0P,+BAA6EnV,IAAxC,EAAKyF,MAAM0P,yBAA0C,EAAK1P,MAAM0P,yBAAyB7a,MAAQ,KACzJ8f,MAAoC,OAA5B,EAAK3U,MAAM0K,cAAqD,KAA5B,EAAK1K,MAAM0K,mBAAmDnQ,IAA5B,EAAKyF,MAAM0K,aAA8B,EAAK1K,MAAM0K,aAAe,KACjJkK,MAAO,EAAK5U,MAAM8U,eAE1B,EAAK5f,MAAMmO,cAEPzF,IAAM8E,KAAK5F,EAAOC,IAAM,qDAAwDyO,GAAUzN,MAAK,SAACC,GAGhG,EAAK9I,MAAMyN,cACX,EAAKjC,SAAS,CACVgT,oBAAqB1V,EAAIjC,UAG9BkC,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAExB,EAKFgM,MAAQ,SAAC+E,GAEL,EAAKnM,SAAS,CACVgK,aAAc,GACdkJ,YAAa,GACb3E,cAAe,GACfH,aAAc,KACdxC,QAAS,KACTlK,OAAQ,GACRiH,iBAAkB,GAAI8H,gBAAiB,KACvC0C,qBAAsB,KACtB9L,SAAU,MACV+L,mBAAoB3L,gBAAM,MAAMC,WAChCuC,YAAaxP,EAAYgN,gBAAM,MAAMC,YACrC2M,qBAAsB5M,gBAAM,MAAMC,WAClC0M,cAAe3Z,EAAYgN,gBAAM,MAAMC,YACvCsH,yBAA0B,CAAE7a,MAAO,KAAM8a,KAAM,mEAEnC,IAAZ9C,GAAiB,EAAKnM,SAAS,CAAEgT,oBAAqB,MAC5D,EAGF5F,OAAS,WACLlQ,IAAM8E,KAAK5F,EAAOC,IAAM,yDAA2D,EAAKiD,MAAM6T,qBAAsB,MAAM9V,MAAK,SAACC,GAG5H,EAAK0P,OAAO,MAEbzP,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAExB,EACF4R,OAAS,SAACtU,GAEN,EAAK0O,MAAM1O,GACX,EAAKsH,SAAS,CAAEgT,oBAAqB,KAAM,kBAAM,EAAKQ,+BAExD,EAGF3H,WAAa,WACT,EAAKrX,MAAMmO,cACXzF,IAAMC,IAAIf,EAAOC,IAAM,gCAAgCgB,MAAK,SAACC,GAEzD,EAAK9I,MAAMyN,cACX,EAAKjC,SAAS,CACV8L,SAAUxO,EAAIjC,OAElBmC,QAAQC,IAAIH,EAAIjC,SACjBkC,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAExB,EAIFmW,iBAAmB,SAAC9B,GACE,OAAdA,QAAoC5V,IAAd4V,GACtB,EAAKiB,mBAAmBjB,GAAWpS,MAAK,SAACC,GACrC,EAAK0C,SAAS,CACVuO,cAAejR,QAK9B,EACDsW,SAAW,SAACnP,GACI,MAARA,EACA,EAAKzE,SAAS,CACVgK,aAAcvF,EAAK0F,mBAIvB,EAAKnK,SAAS,CACVgK,aAAc,MAGxB,EACFgH,eAAiB,SAACvM,GACdjH,QAAQC,IAAIgH,GAER,EAAKjQ,MAAMmO,cACXzF,IAAMC,IAAIf,EAAOC,IAAM,iCAAiCgB,MAAK,SAACC,GAE1D,EAAK9I,MAAMyN,cACX,EAAKjC,SAAS,CACVgK,aAA6B,IAAfvF,EAAKtQ,MAAcmJ,EAAIjC,KAAK0W,cAA+B,IAAftN,EAAKtQ,MAAcmJ,EAAIjC,KAAKoW,kBAAmB,GACzGyB,YAA4B,IAAfzO,EAAKtQ,MAAcmJ,EAAIjC,KAAKwY,WAAavW,EAAIjC,KAAKyY,gBAKpEvW,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAvP1B,EAAKkE,MAAQ,CACT0K,aAAc,GACdkJ,YAAa,GACb9I,WAAY,GACZqE,WAAY,GACZvH,WAAY,GACZxF,OAAQ,GACR2F,SAAU,MACV9D,iBAAkB,GAElByP,oBAAqB,GACrBzE,cAAe,GACfH,aAAc,KACdgF,mBAAoB3L,gBAAM,MAAMC,WAChCuC,YAAaxP,EAAYgN,gBAAM,MAAMC,YACrC2M,qBAAsB5M,gBAAM,MAAMC,WAClC0M,cAAe3Z,EAAYgN,gBAAM,MAAMC,YACvCkI,kBAAmB,CACf,CAAEzb,MAAO,KAAM8a,KAAM,iEACrB,CAAE9a,MAAO,EAAG8a,KAAM,wCAClB,CAAE9a,MAAM,EAAG8a,KAAM,8CACjB,CAAE9a,MAAO,EAAG8a,KAAM,0CAMtBD,yBAA0B,CAAE7a,MAAO,KAAM8a,KAAM,iEAC/CtG,iBAAkB,GAClB8H,gBAAiB,KACjB3E,SAAU,GACVF,QAAS,MACZ,EAwbJ,OAtbA,8CAED,WACI9V,KAAKtB,MAAMyN,cACXnM,KAAK+V,aACL/V,KAAKkb,eAAelb,KAAKwJ,MAAM0P,0BAC/BlZ,KAAK0d,6BACR,oBA0ND,WAAU,IAAD,OACL,OACI,yBAAKhb,GAAG,qBAAqB6F,MAAOvI,KAAKtB,MAAM6J,OAC3C,6BAEI,wBAAI5F,UAAU,iBAAgB,wCAE9B,yBAAKA,UAAU,YACf,yBAAKA,UAAU,aACP,2BAAOA,UAAU,cAAa,oFAC9B,kBAAC,IAAU,CACPtE,MAAO2B,KAAKwJ,MAAM8T,mBAClBhR,SAAU,SAACuH,GACP,EAAK3J,SAAS,CACVoT,mBAAoBzJ,EACpBM,YAAaxP,EAAYkP,MAGjCC,iBAAiB,qIACjBC,eAAe,cACfC,yBAAuB,EACvBC,OAAO,QAGf,yBAAKtR,UAAU,aACX,2BAAOA,UAAU,cAAa,oFAC9B,kBAAC,IAAU,CACPtE,MAAO2B,KAAKwJ,MAAM+U,qBAClBjS,SAAU,SAACuH,GACP,EAAK3J,SAAS,CACVqU,qBAAsB1K,EACtByK,cAAe3Z,EAAYkP,MAGnCC,iBAAiB,qIACjBC,eAAe,cACfC,yBAAuB,EACvBC,OAAO,SAInB,yBAAKtR,UAAU,YACX,yBAAKA,UAAU,aACX,kBAAC,EAAQ,CACLwG,MAAM,2BACNuO,KAAM1X,KAAKwJ,MAAMwM,SACjBrH,KAAM3O,KAAKwJ,MAAMsM,QACjB6B,SAAU,SAAChJ,GAAI,OAAKA,EAAKqC,UAAY,IAAMrC,EAAKuC,UAChD5E,SAAU,SAACqC,GAAI,OAAK,EAAKzE,SAAS,CAAE4L,QAASnH,EAAM8J,cAAe,GAAIH,aAAc,KAAMzF,iBAAkB,GAAI8H,gBAAiB,MAAkB,OAAThM,QAA0B5K,IAAT4K,EAAsB,EAAK8M,iBAAiB9M,EAAKjM,IAAM,OAClNmV,OAAO,wBACPC,YAAY,KAGpB,yBAAKnV,UAAU,aACX,kBAAC,EAAQ,CACLwG,MAAM,0DACNuO,KAAM1X,KAAKwJ,MAAMiP,cACjB9J,KAAM3O,KAAKwJ,MAAM8O,aACjBX,SAAU,SAAChJ,GAAI,OAAKA,EAAKqC,UAAY,IAAMrC,EAAKuC,UAChD5E,SAAU,SAACqC,GAAI,OAAK,EAAKzE,SAAS,CAAEoO,aAAc3J,EAAMkE,iBAAkB,GAAI8H,gBAAiB,MAAQ,EAAKoC,sBAAsBpO,EAAKjM,MACvImV,OAAO,wBACPC,YAAY,MAIpB,yBAAKnV,UAAU,YAEX,kBAAC,EAAQ,CACLwG,MAAM,0DACNuO,KAAM1X,KAAKwJ,MAAMsQ,kBACjBnL,KAAM3O,KAAKwJ,MAAM0P,yBACjBvB,SAAU,SAAChJ,GAAI,OAAKA,EAAKwK,MACzB7M,SAAU,SAACqC,GAAI,OAAK,EAAKzE,SAAS,CAC9BgP,yBAA0BvK,EAC1ByO,YAAa,GACblJ,aAAc,GACZyG,gBAAiB,MACpB,EAAKO,eAAevM,KACvBkJ,OAAO,cAKX,yBAAKlV,UAAU,aACX,2BAAOA,UAAU,cAAa,wEAC9B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAAa8C,UAAW,IAC3DnV,MAAO6F,EAAWlE,KAAKwJ,MAAM0K,cAC7B5H,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAC3BgK,aAAcjQ,EAAiBgE,EAAExJ,OAAOJ,MAAM+E,QAAQ,wBAAe,WAMpC,IAA9CpD,KAAKwJ,MAAM0P,yBAAyB7a,OAA6D,OAA9C2B,KAAKwJ,MAAM0P,yBAAyB7a,OAE1F,yBAAKsE,UAAU,aACf,2BAAOA,UAAU,cAAa,0CAC9B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAAa8C,UAAW,IAC3DnV,MAAO6F,EAAWlE,KAAKwJ,MAAM4T,aAC7B9Q,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAC3BkT,YAAanZ,EAAiBgE,EAAExJ,OAAOJ,MAAM+E,QAAQ,wBAAe,YAOhF,yBAAKT,UAAU,YACqC,IAA9C3C,KAAKwJ,MAAM0P,yBAAyB7a,OACtC,yBAAKsE,UAAU,aACX,kBAAC,EAAQ,CACLwG,MAAM,gEACNuO,KAAM1X,KAAKwJ,MAAMqJ,iBACjBlE,KAAM3O,KAAKwJ,MAAMmR,gBACjBhD,SAAU,SAAChJ,GAAI,OAAKA,EAAKqC,UAAY,IAAMrC,EAAKuC,SAA5BvC,yBAAwDA,EAAKyF,UAAY,yBAAYzF,EAAK0F,kBAC9G/H,SAAU,SAACqC,GAAI,OAAK,EAAKzE,SAAS,CAAEyQ,gBAAiBhM,GAAO,EAAKmP,SAASnP,KAC1EkJ,OAAO,wBACPC,YAAY,MASxB,yBAAKnV,UAAU,iBACX,4BAAQA,UAAU,MACdE,QAAS,kBAAM,EAAK6a,6BAClB,kCAGN,4BAAQ/a,UAAU,MACdE,QAAS,kBAAM,EAAKqU,OAAO,KACzB,qDAOV,yBAAKvU,UAAU,cACX,4BAAkC,IAA7B3C,KAAKwJ,MAAMoC,OAAOhN,OAAe,GACjCoB,KAAKwJ,MAAMoC,OAAOQ,KAAI,SAAC/G,EAAO1G,GAAC,OAC5B,wBAAIM,IAAKN,GAAI0G,QAKzB,kBAAC,EAAK,CAEFiI,aAAc,CACV,0DACA,8CACA,gGACA,sEACA,uCACA,sEACA,oDACA,+CAGJC,SACIvN,KAAKwJ,MAAM0T,oBAGf1P,UAAW,CACP,SAAApJ,GACI,OAAQA,EAAEwZ,aAEN,KAAK,EACD,MAAO,uCACX,KAAK,EACD,MAAO,6CACX,KAAK,EACD,MAAO,0CAKnB,SAAAxZ,GACI,OAAQA,EAAEuR,iBAEd,SAAAvR,GACI,OAAQA,EAAEyX,sBAEd,SAAAzX,GACI,OAAOF,EAAWL,EAAiBO,EAAE8P,gBAGzC,SAAA9P,GACI,OAAOP,EAAiBO,EAAEgZ,cAG9B,SAAAhZ,GACI,OAAOP,EAAiBO,EAAE+P,cAI9B,SAAA/P,GACI,OAAOP,EAAiBO,EAAEmT,UAE9B,SAAAnT,GACI,OAAOP,EAAiBO,EAAEoT,mBASrD,EAheyB,CAASnM,IAAM9H,WCyR9Bib,I,MAzRE,kDAEb,WAAY9f,GAAQ,IAAD,EAed,OAfc,qBACf,cAAMA,IAuBVgS,YAAc,SAACC,GAAK,OAAKA,EAAMlS,OAAOmS,UAAQ,EAE9C6N,eAAiB,WACb,EAAK/f,MAAMmO,cACXzF,IAAMC,IAAIf,EAAOC,IAAM,wCAAwCgB,MAAK,SAACC,GAEjE,EAAK9I,MAAMyN,cACX,EAAKjC,SAAS,CACVwU,aAAclX,EAAIjC,UAGvBkC,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAExB,EAGFkG,kBAAoB,WAEhB,IAAInG,EAAQ,GAGY,OAApB,EAAKmE,MAAMmV,WAAqC5a,IAApB,EAAKyF,MAAMmV,MACvCtZ,EAAMsG,KAAK,sIAES,OAApB,EAAKnC,MAAMoV,WAAqC7a,IAApB,EAAKyF,MAAMoV,MACvCvZ,EAAMsG,KAAK,0HAEM,IAAjBtG,EAAMzG,QACN,EAAKsL,SAAS,CAAE0B,OAAQvG,IAExB,EAAKwZ,mBAGL,EAAKngB,MAAMmN,UAAU,gRACrB,EAAK3B,SAAS,CAAE0B,OAAQvG,MAG9B,EACFiM,MAAQ,SAAC+E,GAEL,EAAKnM,SAAS,CACV0U,KAAM,GACND,KAAM,GACN/S,OAAQ,GACRkT,cAAe,KACfvN,SAAU,QAIE,IAAZ8E,GAAiB,EAAKnM,SAAS,CAAEwU,aAAc,MACrD,EACFG,eAAiB,WACb,IAEI7J,EAFAyB,EAAM,kBACNC,EAAO,oHAEiB,QAAxB,EAAKlN,MAAM+H,SACXyD,EAAW,CACP4J,KAA0B,KAApB,EAAKpV,MAAMoV,KAAc,EAAI,EAAKpV,MAAMoV,KAC9CD,KAAM,EAAKnV,MAAMmV,KACjBnB,YAAa,EAAKhU,MAAM2K,cAG5BsC,EAAM,mBACNC,EAAO,sIACP1B,EAAW,CAGP4J,KAA0B,KAApB,EAAKpV,MAAMoV,KAAc,EAAI,EAAKpV,MAAMoV,KAC9CD,KAAK,EAAKnV,MAAMmV,KAChB1H,GAAI,EAAKzN,MAAMsV,cACftB,YAAa,EAAKhU,MAAM2K,cAGhC/M,IAAM8E,KAAK5F,EAAOC,IAAM,sBAAwBkQ,EAAKzB,GAEhDzN,MAAK,SAACC,GAEgB,MAAfA,EAAI0N,SACJ,EAAKxW,MAAMyN,cACX,EAAKzN,MAAMmN,UAAU6K,EAAM,WAC3B,EAAKpF,MAAM,GACX,EAAKmN,qBAKZhX,OAAM,SAACpC,GAEJ,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAI5B,EACF6R,YAAc,SAACC,GACX,IAAI2H,EAAa,EAAKvV,MAAMkV,aAC5B,EAAKxU,SAAS,CAEV0U,KAAMxH,EAAK4H,KACXL,KAAMvH,EAAKV,KACXoI,cAAe1H,EAAK1U,GACpByR,YAAaiD,EAAKuG,uBAClBL,mBAAoBpY,EAAYkS,EAAKuG,wBACrCpM,SAAU,SACX,kBAAM,EAAKrH,SAAS,CAAEwU,aAAcK,OACvC,EAAKrgB,MAAM2Y,YAAY,4GAAwB,YACjD,EACFC,OAAS,WACLlQ,IAAM8E,KAAK5F,EAAOC,IAAM,2CAA6C,EAAKiD,MAAMsV,cAAe,MAAMvX,MAAK,SAACC,GAGvG,EAAK8J,MAAM,GACZ,EAAKmN,oBAELhX,OAAM,SAACpC,GACN,EAAK3G,MAAMyN,cACX,EAAKzN,MAAMmN,UAAUzG,EAAeC,IACpCqC,QAAQC,IAAItC,EAAMC,cAExB,EACF4R,OAAS,SAACtU,GAEN,EAAK0O,MAAM1O,GACX,EAAKsH,SAAS,CAAEwU,aAAc,KAAM,kBAAM,EAAKD,qBAjJ/C,EAAKjV,MAAQ,CACToV,KAAM,GACND,KAAM,GACN/S,OAAQ,GACR2F,SAAU,MACVmN,aAAc,GACdpB,mBAAoB3L,gBAAM,MAAMC,WAChCuC,YAAaxP,EAAYgN,gBAAM,MAAMC,aAExC,EAqQJ,OAnQA,8CAED,WACI5R,KAAKtB,MAAMyN,cACXnM,KAAKye,mBACR,oBAoID,WAAU,IAAD,OACL,OACI,yBAAK/b,GAAG,cAAc6F,MAAOvI,KAAKtB,MAAM6J,OACpC,6BAEI,wBAAI5F,UAAU,iBAAgB,qFAC7B,6BACG,yBAAKA,UAAU,YACX,yBAAKA,UAAU,aACX,2BAAOA,UAAU,cAAa,wEAC9B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YAAa8C,UAAW,GAC3DnV,MAAO6F,EAAWlE,KAAKwJ,MAAMoV,MAC7BtS,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAC3B0U,KAAM3a,EAAiBgE,EAAExJ,OAAOJ,MAAM+E,QAAQ,wBAAe,WAG7E,yBAAKT,UAAU,YACf,yBAAKA,UAAU,aACX,2BAAOA,UAAU,cAAa,uEAC9B,kBAAC,IAAU,CACPtE,MAAO2B,KAAKwJ,MAAM8T,mBAClBhR,SAAU,SAACuH,GACP,EAAK3J,SAAS,CACVoT,mBAAoBzJ,EACpBM,YAAaxP,EAAYkP,MAGjCC,iBAAiB,qIACjBC,eAAe,cACfC,yBAAuB,EACvBC,OAAO,SAIf,yBAAKtR,UAAU,aACf,2BAAOA,UAAU,cAAa,gDAC9B,2BAAOA,UAAU,QAAQ4Q,QAASvT,KAAK0Q,YACnCrS,MAAO6F,EAAWlE,KAAKwJ,MAAMmV,MAC7BrS,SAAU,SAACrE,GAAC,OAAK,EAAKiC,SAAS,CAC3ByU,KAAM1a,EAAiBgE,EAAExJ,OAAOJ,cAQ5C,yBAAKsE,UAAU,iBACX,4BAAQA,UAAU,MACdE,QAAS,kBACL,EAAKnE,MAAMmN,UAAU,4NAA8C,OAAQ,EAAKL,qBAAoB,sBAG5G,4BAAQ7I,UAAU,MACdE,QAAS,kBAAM,EAAKyO,MAAM,KACxB,qDAOV,yBAAK3O,UAAU,cACX,4BAAkC,IAA7B3C,KAAKwJ,MAAMoC,OAAOhN,OAAe,GACjCoB,KAAKwJ,MAAMoC,OAAOQ,KAAI,SAAC/G,EAAO1G,GAAC,OAC5B,wBAAIM,IAAKN,GAAI0G,QAKzB,kBAAC,EAAK,CAEFiI,aAAc,CACV,gEACA,6CACA,oDACA,uCACA,sBAGJC,SACIvN,KAAKwJ,MAAMkV,aAGflR,UAAW,CAEP,SAAApJ,GACI,OAAOF,EAAWL,EAAiBO,EAAE4a,QAEzC,SAAA5a,GACI,OAAQA,EAAEsS,MAEd,SAAAtS,GACI,OAAOP,EAAiBO,EAAEmT,UAE9B,SAAAnT,GACI,OAAO,4BAAQxB,KAAK,SAChBD,UAAU,UAEVE,QAAS,WACL,EAAKqH,SAAS,CAAEwU,aAAc,IAAM,EAAKvH,YAAY/S,MAG5D,yCAEL,SAAAA,GACI,OAAO,4BAAQxB,KAAK,SAChBD,UAAU,UAEVE,QAAS,WACL,EAAKqH,SAAS,CAAE4U,cAAe1a,EAAE1B,KAAM,kBAAM,EAAKhE,MAAMmN,UAAU,gLAAqC,OAAQ,EAAKyL,aAE3H,gCAU5B,EAtRY,CAASjM,IAAM9H,YCwB1B0b,GAAG,kDAEL,WAAYvgB,GAAQ,IAAD,EAsBb,OAtBa,qBACf,cAAMA,IA+BVwgB,aAAe,WAEX,GAAmD,MAA/Cxd,OAAOyd,QAAQC,iBAAiBC,WAEhC,OAAO,GAGb,EACFC,kBAAoB,WAEhB,EAAKC,QAAUC,aACX,kBAAM,EAAKN,iBACX,MAEN,EAEFtY,cAAgB,WACZ,EAAKsD,SAAS,CAAErD,SAAU,EAAK2C,MAAM3C,WACvC,EAGF4Y,iBAAmB,WACfrY,IAAMC,IAAIf,EAAOC,IAAM,mCAAmCgB,MAAK,SAACC,GAE5D,EAAK0C,SAAS,CAAEvD,OAAQa,EAAIjC,OAAQ,WAChC,EAAKma,cAEVjY,OAAM,SAACpC,GACNqC,QAAQC,IAAItC,EAAMC,cAExB,EAKFyH,SAAW,WACHE,aAAa0S,QAAQ,QACrBvY,IAAMwY,SAASC,QAAQC,OAAsB,cAAI,UAAY7S,aAAa0S,QAAQ,OAClF,EAAK9S,cACL,EAAK4S,mBAEL,EAAKM,mBAGL,EAAK7V,SAAS,CAAE8V,UAAU,IAC9B,EAAK7T,eACP,EAEF4T,gBAAkB,WAEd,IAAIE,EAA2B,EAC3BC,EAAiB5Y,EAAOb,YAG5B+Y,aAAY,aACRS,EAC+B3Y,EAAOb,YAAc,IAChD,EAAKoF,UAAU,qWAAyE,QAGxFoU,EAA2BC,IAC3B,EAAKrU,UAAU,+LAA0C,SACzD,EAAK/E,YAEV,KAGH,IAAMqZ,EAAW,WACbF,EAA2B,GAIV,CACjB,YAAa,YAAa,UAC1B,SAAU,cAGCG,SAAQ,SAACC,GACpBrf,SAAS8G,iBAAiBuY,EAAWF,GAAU,OAGrD,EAIFtU,UAAY,SAAC9C,EAAWC,EAAWsX,GAC/B,EAAKpW,SAAS,CAAEqW,OAAO,IACvB,EAAKrW,SAAS,CAAEnB,UAAWA,IAC3B,EAAKmB,SAAS,CAAElB,UAAWA,IAC3B,EAAKkB,SAAS,CAAEoW,eAAgBA,KAClC,EAEFpX,UAAY,SAACjB,GACLA,EAAExJ,SAAWwJ,EAAEuY,eACf,EAAKtW,SAAS,CAAEqW,OAAO,KAE7B,EAIF1T,YAAc,WACV,EAAK3C,SAAS,CAAEuW,SAAS,KAC3B,EAEFtU,YAAc,WACV,EAAKjC,SAAS,CAAEuW,SAAS,KAC3B,EAGFpJ,YAAc,SAAChO,EAAaC,GACxB,EAAKY,SAAS,CACVwW,SAAS,EACTrX,YAAaA,EACbC,YAAaA,IAEjBqX,YAAW,kBAAM,EAAKzW,SAAS,CAAEwW,SAAS,MAAU,OACtD,EAQFhB,MAAQ,WACJ,EAAKxV,SAAS,CAAE8V,UAAU,IAC1B,EAAK7T,eACP,EAEFrF,OAAS,WACLmG,aAAa2T,WAAW,OACxB,EAAK1W,SAAS,CAAE8V,UAAU,IAC1B,EAAKthB,MAAMmiB,QAAQlV,KAAK,MAC1B,EAKFmV,SAAW,WAEJ,OAA4B,IAAxB,EAAKtX,MAAMwW,SACP,kBAAC,EAAK,CAACjT,SAAU,EAAKA,SACzBlB,UAAW,EAAKA,UAChB3C,UAAW,EAAKA,UAChB2D,YAAa,EAAKA,YAClBV,YAAa,EAAKA,cAIlB,kBAAC,WAAQ,KACL,kBAAC,EAAM,CAACxF,OAAQ,EAAK6C,MAAM7C,OACvBC,cAAe,EAAKA,cACpBC,QAAS,EAAK2C,MAAM3C,QACpBC,OAAQ,EAAKA,SACjB,yBAAKpE,GAAG,kBACJ,kBAAC,EAAK,CAACiE,OAAQ,EAAK6C,MAAM7C,OACtB0D,WAAY,kBAAM,EAAKH,SAAS,CAAErD,SAAS,KAC3CyD,UAAW,kBAAM,EAAKJ,SAAS,CAAErD,SAAS,KAC1CA,QAAS,EAAK2C,MAAM3C,QACpBka,mBAAoB,EAAKvX,MAAMuX,mBAC/BC,yBAA0B,EAAKxX,MAAMyX,yBACrCC,gCAAiC,EAAK1X,MAAM2X,kCAGhD,yBAAKze,GAAG,YAAY6F,MAAO,CAAEC,UAAW,cAEG,UAA/B,EAAKgB,MAAM7C,OAAOyE,SACX,kBAAC,IAAK,CAACgW,OAAK,EAACC,KAAK,IACrBC,OAAQ,SAAC5iB,GAAK,OAAK,kBAAC,EAAc,iBAC1BA,EAAK,CACT6J,MAAO,CAAEC,UAAW,6CACpBqD,UAAW,EAAKA,UAChB3C,UAAW,EAAKA,UAChB2D,YAAa,EAAKA,YAClBV,YAAa,EAAKA,YAClBkL,YAAa,EAAKA,YAClB1Q,OAAQ,EAAK6C,MAAM7C,aAGpB,kBAAC,IAAK,CAACya,OAAK,EAACC,KAAK,IACrBC,OAAQ,SAAC5iB,GAAK,OAAK,kBAAC,EAAa,iBACzBA,EAAK,CACT6J,MAAO,CAAEC,UAAW,6CACpBqD,UAAW,EAAKA,UAChB3C,UAAW,EAAKA,UAChB2D,YAAa,EAAKA,YAClBV,YAAa,EAAKA,YAClBkL,YAAa,EAAKA,YAClB1Q,OAAQ,EAAK6C,MAAM7C,aAIC,UAA/B,EAAK6C,MAAM7C,OAAOyE,UACnB,kBAAC,IAAK,CAACgW,OAAK,EAACC,KAAK,WACdC,OAAQ,SAAC5iB,GAAK,OAAK,kBAAC,EAAO,iBACnBA,EAAK,CACT6J,MAAO,CAAEC,UAAW,6CACpBqD,UAAW,EAAKA,UAChB3C,UAAW,EAAKA,UAChB2D,YAAa,EAAKA,YAClBV,YAAa,EAAKA,YAClBkL,YAAa,EAAKA,kBAIE,UAA/B,EAAK7N,MAAM7C,OAAOyE,UACf,kBAAC,IAAK,CAACgW,OAAK,EAACC,KAAK,gBACdC,OAAQ,SAAC5iB,GAAK,OAAK,kBAAC,EAAY,iBACxBA,EAAK,CACT6J,MAAO,CAAEC,UAAW,6CACpBqD,UAAW,EAAKA,UAChB3C,UAAW,EAAKA,UAChB2D,YAAa,EAAKA,YAClBV,YAAa,EAAKA,YAClBkL,YAAa,EAAKA,kBAIE,UAA/B,EAAK7N,MAAM7C,OAAOyE,UACf,kBAAC,IAAK,CAACgW,OAAK,EAACC,KAAK,mBACdC,OAAQ,SAAC5iB,GAAK,OAAK,kBAAC,EAAe,iBAC3BA,EAAK,CACT6J,MAAO,CAAEC,UAAW,6CACpBqD,UAAW,EAAKA,UAChB3C,UAAW,EAAKA,UAChB2D,YAAa,EAAKA,YAClBV,YAAa,EAAKA,YAClBkL,YAAa,EAAKA,kBAG7B,IAAiC,UAA/B,EAAK7N,MAAM7C,OAAOyE,UACjB,kBAAC,IAAK,CAACgW,OAAK,EAACC,KAAK,eAClBC,OAAQ,SAAC5iB,GAAK,OAAK,kBAAC,GAAW,iBACnBA,EAAK,CACT6J,MAAO,CAAEC,UAAW,6CACpBqD,UAAW,EAAKA,UAChB3C,UAAW,EAAKA,UAChB2D,YAAa,EAAKA,YAClBV,YAAa,EAAKA,YAClBkL,YAAa,EAAKA,kBAIE,UAA/B,EAAK7N,MAAM7C,OAAOyE,UACf,kBAAC,IAAK,CAACgW,OAAK,EAACC,KAAK,WACdC,OAAQ,SAAC5iB,GAAK,OAAK,kBAAC,EAAO,iBACnBA,EAAK,CACT6J,MAAO,CAAEC,UAAW,6CACpBqD,UAAW,EAAKA,UAChB3C,UAAW,EAAKA,UAChB2D,YAAa,EAAKA,YAClBV,YAAa,EAAKA,YAClBkL,YAAa,EAAKA,kBAIE,UAA/B,EAAK7N,MAAM7C,OAAOyE,UACf,kBAAC,IAAK,CAACgW,OAAK,EAACC,KAAK,sBACdC,OAAQ,SAAC5iB,GAAK,OAAK,kBAAC,GAAkB,iBAC9BA,EAAK,CACT6J,MAAO,CAAEC,UAAW,6CACpBqD,UAAW,EAAKA,UAChB3C,UAAW,EAAKA,UAChB2D,YAAa,EAAKA,YAClBV,YAAa,EAAKA,YAClBkL,YAAa,EAAKA,kBAIE,UAA/B,EAAK7N,MAAM7C,OAAOyE,UACf,kBAAC,IAAK,CAACgW,OAAK,EAACC,KAAK,4BAClBC,OAAQ,SAAC5iB,GAAK,OAAK,kBAAC,GAAwB,iBAChCA,EAAK,CACT6J,MAAO,CAAEC,UAAW,6CACpBqD,UAAW,EAAKA,UAChB3C,UAAW,EAAKA,UAChB2D,YAAa,EAAKA,YAClBV,YAAa,EAAKA,YAClBkL,YAAa,EAAKA,kBAIE,UAA/B,EAAK7N,MAAM7C,OAAOyE,UACf,kBAAC,IAAK,CAACgW,OAAK,EAACC,KAAK,cACdC,OAAQ,SAAC5iB,GAAK,OAAK,kBAAC,EAAU,iBACtBA,EAAK,CACT6J,MAAO,CAAEC,UAAW,6CACpBqD,UAAW,EAAKA,UAChB3C,UAAW,EAAKA,UAChB2D,YAAa,EAAKA,YAClBV,YAAa,EAAKA,YAClBkL,YAAa,EAAKA,kBAGE,UAA/B,EAAK7N,MAAM7C,OAAOyE,UACf,kBAAC,IAAK,CAACgW,OAAK,EAACC,KAAK,oBACdC,OAAQ,SAAC5iB,GAAK,OAAK,kBAAC,EAAgB,iBAC5BA,EAAK,CACT6J,MAAO,CAAEC,UAAW,6CACpBqD,UAAW,EAAKA,UAChB3C,UAAW,EAAKA,UAChB2D,YAAa,EAAKA,YAClBV,YAAa,EAAKA,YAClBkL,YAAa,EAAKA,YAClB1Q,OAAQ,EAAK6C,MAAM7C,aAGC,UAA/B,EAAK6C,MAAM7C,OAAOyE,UACf,kBAAC,IAAK,CAACgW,OAAK,EAACC,KAAK,sBAClBC,OAAQ,SAAC5iB,GAAK,OAAK,kBAAC,EAAkB,iBAC1BA,EAAK,CACT6J,MAAO,CAAEC,UAAW,6CACpBqD,UAAW,EAAKA,UAChB3C,UAAW,EAAKA,UAChB2D,YAAa,EAAKA,YAClBV,YAAa,EAAKA,YAClBkL,YAAa,EAAKA,YAClB1Q,OAAQ,EAAK6C,MAAM7C,aAI3B,kBAAC,IAAK,CAACya,OAAK,EAACC,KAAK,kBACdC,OAAQ,SAAC5iB,GAAK,OACV,kBAAC,EAAc,iBACPA,EAAK,CACT6J,MAAO,CAAEC,UAAW,6CACpBqD,UAAW,EAAKA,UAChB3C,UAAW,EAAKA,UAChB2D,YAAa,EAAKA,YAClBV,YAAa,EAAKA,YAClBkL,YAAa,EAAKA,YAClB1Q,OAAQ,EAAK6C,MAAM7C,OACnBG,OAAQ,EAAKA,eAOrC,kBAAC,EAAM,QAjXnB,EAAK0C,MAAQ,CACTwW,UAAU,EACVO,OAAO,EACPE,SAAS,EACTC,SAAS,EACT3X,UAAW,GACXC,UAAW,QACXK,YAAa,GACbC,YAAa,QACb3C,OAAQ,GACRE,SAAS,EACT0a,YAAa,GACbjB,eAAgB,KAChBS,mBAAoB,KACpBE,yBAA0B,KAC1BE,gCAAiC,KACjCK,kBAAkB,EAClBC,UAAW,KACXC,YAAa,KACbC,aAAc,MAChB,EAgYL,OA/XA,8CAGD,WACI3hB,KAAK+M,aAGR,+BAwHD,SAAkB1D,EAAaC,GAC3BtJ,KAAKqX,YAAYhO,EAAaC,GAC9BtJ,KAAKmM,gBAGT,oBAgOA,WACI,OACI,yBAAKzJ,GAAG,OAEH1C,KAAK8gB,WAGL9gB,KAAKwJ,MAAMiX,SAAW,kBAAC,EAAO,MAI9BzgB,KAAKwJ,MAAM+W,OAAS,kBAAC,EAAK,CACvBhY,MAAO,CAAEC,UAAW,yBACpBO,UAAW/I,KAAKwJ,MAAMT,UACtBC,UAAWhJ,KAAKwJ,MAAMR,UACtBE,UAAWlJ,KAAKkJ,UAChBD,QAASjJ,KAAKwJ,MAAM8W,iBAGvBtgB,KAAKwJ,MAAMkX,SAAW,kBAAC,EAAO,CAC3BnY,MAAO,CAAEC,UAAW,uBACpBa,YAAarJ,KAAKwJ,MAAMH,YACxBC,YAAatJ,KAAKwJ,MAAMF,mBAKvC,EAxZI,CAAS+B,IAAM9H,WA2ZT+H,eAAW2T,IClb1B2C,IAASN,OACD,kBAAC,IAAa,KACV,kBAAC,GAAG,OAEVtgB,SAASe,eAAe,S1BsHxB,kBAAmBJ,WACrBA,UAAUkgB,cAAcC,MAAMva,MAAK,SAAAwa,GACjCA,EAAaC,kB","file":"static/js/main.9a48135a.chunk.js","sourcesContent":["Object.defineProperty(exports, \"__esModule\", {\r\n value: true\r\n});\r\n\r\nlet _createClass = function () {\r\n function defineProperties(target, props) {\r\n for (let i = 0; i < props.length; i++) {\r\n let descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) descriptor.writable = true;\r\n Object.defineProperty(target, descriptor.key, descriptor);\r\n }\r\n }\r\n\r\n return function (Constructor, protoProps, staticProps) {\r\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\r\n if (staticProps) defineProperties(Constructor, staticProps);\r\n return Constructor;\r\n };\r\n}();\r\n\r\nlet _react = require('react');\r\n\r\nlet _react2 = _interopRequireDefault(_react);\r\n\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {default: obj};\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\");\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (!self) {\r\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\r\n }\r\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\r\n}\r\n\r\nfunction _inherits(subClass, superClass) {\r\n if (typeof superClass !== \"function\" && superClass !== null) {\r\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n enumerable: false,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\r\n} /* global window, document, Blob */\r\n\r\n\r\nlet defaultProps = {\r\n id: 'button-download-as-xls',\r\n className: 'button-download',\r\n buttonText: 'Download'\r\n};\r\n\r\nlet ReactHTMLTableToExcel = function (_Component) {\r\n _inherits(ReactHTMLTableToExcel, _Component);\r\n\r\n function ReactHTMLTableToExcel(props) {\r\n _classCallCheck(this, ReactHTMLTableToExcel);\r\n\r\n let _this = _possibleConstructorReturn(this, (ReactHTMLTableToExcel.__proto__ || Object.getPrototypeOf(ReactHTMLTableToExcel)).call(this, props));\r\n\r\n _this.handleDownload = _this.handleDownload.bind(_this);\r\n return _this;\r\n }\r\n\r\n _createClass(ReactHTMLTableToExcel, [{\r\n key: 'handleDownload',\r\n value: function handleDownload() {\r\n if (!document) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.error('Failed to access document object');\r\n }\r\n\r\n return null;\r\n }\r\n\r\n if (this.props.table.nodeType !== 1 || this.props.table.nodeName !== 'TABLE') {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.error('Provided table property is not html table element');\r\n }\r\n\r\n return null;\r\n }\r\n\r\n let table = this.props.table.outerHTML;\r\n let sheet = String(this.props.sheet);\r\n let filename = String(this.props.filename) + '.xls';\r\n\r\n let uri = 'data:application/vnd.ms-excel;base64,';\r\n let template = '{table}';\r\n\r\n let context = {\r\n worksheet: sheet || 'Worksheet',\r\n table: table\r\n };\r\n\r\n // If IE11\r\n if (window.navigator.msSaveOrOpenBlob) {\r\n let fileData = [('') + table + ''];\r\n let blobObject = new Blob(fileData);\r\n document.getElementById('react-html-table-to-excel').click()(function () {\r\n window.navigator.msSaveOrOpenBlob(blobObject, filename);\r\n });\r\n\r\n return true;\r\n }\r\n\r\n let element = window.document.createElement('a');\r\n element.href = uri + ReactHTMLTableToExcel.base64(ReactHTMLTableToExcel.format(template, context));\r\n element.download = filename;\r\n document.body.appendChild(element);\r\n element.click();\r\n document.body.removeChild(element);\r\n\r\n return true;\r\n }\r\n }, {\r\n key: 'render',\r\n value: function render() {\r\n return _react2.default.createElement(\r\n 'button',\r\n {\r\n id: this.props.id,\r\n className: this.props.className,\r\n type: 'button',\r\n onClick: this.handleDownload\r\n },\r\n this.props.buttonText\r\n );\r\n }\r\n }], [{\r\n key: 'base64',\r\n value: function base64(s) {\r\n return window.btoa(unescape(encodeURIComponent(s)));\r\n }\r\n }, {\r\n key: 'format',\r\n value: function format(s, c) {\r\n return s.replace(/{(\\w+)}/g, function (m, p) {\r\n return c[p];\r\n });\r\n }\r\n }]);\r\n\r\n return ReactHTMLTableToExcel;\r\n}(_react.Component);\r\n\r\nReactHTMLTableToExcel.defaultProps = defaultProps;\r\n\r\nexports.default = ReactHTMLTableToExcel;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' }\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","const Config = {\r\n //url: 'http://localhost:5005/',\r\n //url: 'http://localhost:81/',\r\n url: 'https://api.sandoghrahimian.ir/',\r\n // url: 'https://api.boxche.ir/',\r\n googleApiKey: 'AIzaSyAw41UVgqJo1NtPoXsrh4bVn4voIqxPOuk',\r\n logoutTimer: 2000, //seconds\r\n};\r\nexport const MapIrtoken = () => {\r\n return \"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjZiYjI2ZDdlZjk4OGZmMjhiNjExNDVmMmE3MDc0ZjFjODBjZTM5ODM3ZGE5YzM4MTEwNzQ3OThkY2VjM2FiNmRkYzdhYzUwMDMyMjc4ZWNhIn0.eyJhdWQiOiIxMTU5OSIsImp0aSI6IjZiYjI2ZDdlZjk4OGZmMjhiNjExNDVmMmE3MDc0ZjFjODBjZTM5ODM3ZGE5YzM4MTEwNzQ3OThkY2VjM2FiNmRkYzdhYzUwMDMyMjc4ZWNhIiwiaWF0IjoxNjA2MTM1MjEzLCJuYmYiOjE2MDYxMzUyMTMsImV4cCI6MTYwODY0MDgxMywic3ViIjoiIiwic2NvcGVzIjpbImJhc2ljIl19.HLsV6dEjMt-UnUTyq4rCVpNFCmlq51ZpD4cBc3exJduhCjlrTeiYtoT0f63xbNGW9R8nPUF4bI30Sx58w30kAu4Kn6m-IHxgqinoUppk5Ox5WqM_JuWAbpFRRj3-4B25I0TiglEM4qxYBcic8RJaX3kbQOgUI--Xjhf7AN0dhf2qnI5Mc3Szx--akxOs8l33DsQRzqyz657nosdoLT3vH9lXootMDV92oZvUv6kRmcoVMe-FEsDxqR4REmt5iWJWcs5uzdfAh5g2ZPEGOFfcka_t3_pP3n05e_B0OTA9tM1jSP_R8oS5blMv8i_V3S5KyjQsfpbBgJ5vn6j-TVSEIg\"\r\n\r\n};\r\nexport const setMapIr = () => {\r\n return true\r\n \r\n};\r\nexport const setMapIrLoad = () => {\r\n return false\r\n\r\n};\r\nexport const toPersianNumbers = (input) => {\r\n if (input === undefined || input === null) {\r\n } else {\r\n return input.toString().replace(/0/g, \"۰\")\r\n .replace(/1/g, \"۱\")\r\n .replace(/2/g, \"۲\")\r\n .replace(/3/g, \"۳\")\r\n .replace(/4/g, \"۴\")\r\n .replace(/5/g, \"۵\")\r\n .replace(/6/g, \"۶\")\r\n .replace(/7/g, \"۷\")\r\n .replace(/8/g, \"۸\")\r\n .replace(/9/g, \"۹\");\r\n }\r\n};\r\n\r\nexport const toEnglishNumbers = (input) => {\r\n if (input === undefined || input === null) {\r\n } else {\r\n return input.toString().replace(/۰/g, \"0\")\r\n .replace(/۱/g, \"1\")\r\n .replace(/۲/g, \"2\")\r\n .replace(/۳/g, \"3\")\r\n .replace(/۴/g, \"4\")\r\n .replace(/۵/g, \"5\")\r\n .replace(/۶/g, \"6\")\r\n .replace(/۷/g, \"7\")\r\n .replace(/۸/g, \"8\")\r\n .replace(/۹/g, \"9\");\r\n }\r\n};\r\n\r\n\r\nexport const thousandSeparator = (Number) => {\r\n if (Number === undefined || Number === null) {\r\n return \"\";\r\n } else {\r\n Number += '';\r\n Number = Number.replace(',', '');\r\n Number = Number.replace(',', '');\r\n Number = Number.replace(',', '');\r\n Number = Number.replace(',', '');\r\n Number = Number.replace(',', '');\r\n Number = Number.replace(',', '');\r\n let x = Number.split('.');\r\n let y = x[0];\r\n let z = x.length > 1 ? '.' + x[1] : '';\r\n let rgx = /([0-9۰-۹]+)([0-9۰-۹]{3})/;\r\n while (rgx.test(y))\r\n y = y.replace(rgx, '$1,$2');\r\n return y + z;\r\n }\r\n};\r\n\r\n\r\nexport const toCurrency = (input) => {\r\n return thousandSeparator(toPersianNumbers(input));\r\n};\r\n\r\nexport const convertDate = (date) => {\r\n let y = date.year.toString();\r\n let m = date.month.toString().length < 2 ? \"0\".concat(date.month.toString()) : date.month.toString();\r\n let d = date.day.toString().length < 2 ? \"0\".concat(date.day.toString()) : date.day.toString();\r\n return y.concat(\"/\", m, \"/\", d);\r\n};\r\n\r\nexport const reverseDate = (date) => {\r\n let y = date.split(\"/\")[0];\r\n let m = date.split(\"/\")[1];\r\n let d = date.split(\"/\")[2];\r\n return {\r\n year: parseInt(y),\r\n month: m < 10 ? parseInt(m.replace(0, \"\")) : parseInt(m),\r\n day: d < 10 ? parseInt(d.replace(0, \"\")) : parseInt(d),\r\n }\r\n};\r\nexport const reverseDate1 = (date) => {\r\n let y = date.split(\":\")[0];\r\n let m = date.split(\":\")[1];\r\n let d = date.split(\":\")[2];\r\n return {\r\n year: parseInt(y),\r\n month: m < 10 ? parseInt(m.replace(0, \"\")) : parseInt(m),\r\n day: d < 10 ? parseInt(d.replace(0, \"\")) : parseInt(d),\r\n }\r\n};\r\nexport const ShowCatchError = (error) => {\r\n if (error.response) {\r\n if (error.response.data && typeof error.response.data !== undefined && error.response.data.message)\r\n return error.response.data.message;\r\n else if (error.response.data && typeof error.response.data !== undefined)\r\n return error.response.data;\r\n else {\r\n return \"اتصالی با سرور ایجاد نشد!\"\r\n }\r\n } else {\r\n return \"اتصالی با سرور ایجاد نشد!\"\r\n }\r\n};\r\nexport const getdurationhour = (distance, duration) => {\r\n let kilometer= (distance / 1000).toFixed();\r\n let hour= (duration / 3600).toFixed()\r\n return {\r\n hour, kilometer\r\n }\r\n\r\n};\r\n\r\nexport const CurrentDate = () => {\r\n let today = new Date();\r\n \r\n let date1 = today.getDate() - 1;\r\n\r\n today.setFullYear(today.getFullYear(), today.getMonth(), date1);\r\n let date4 = today.toLocaleDateString('fa-IR')\r\n let date5 = date4.replace(/([۰-۹])/g, token => String.fromCharCode(token.charCodeAt(0) - 1728));\r\n return {\r\n\r\n day: parseInt(date5.split('/')[2]),\r\n month: parseInt(date5.split('/')[1]),\r\n year: parseInt(date5.split('/')[0]),\r\n };\r\n};\r\n \r\nexport default Config;","import React, {useState, useEffect, useRef} from \"react\";\r\nimport './Header.css'\r\nimport axios from \"axios\";\r\nimport config, {toPersianNumbers} from \"../../Config\";\r\nimport {Link} from \"react-router-dom\";\r\nimport { Offline, Online } from \"react-detect-offline\"\r\n\r\nexport const Header = ({member, toggleNavIcon, navIcon, logOut}) => {\r\n\r\n const [details, setDetails] = useState(false);\r\n const [today, setToday] = useState(\"تاریخ\");\r\n\r\n //api call\r\n useEffect(() => {\r\n axios.get(config.url + 'api/HelperApi/GetTodayDate')\r\n .then((res) => {\r\n // handle success\r\n setToday(res.data);\r\n })\r\n .catch((error) => {\r\n console.log(error.response);\r\n });\r\n\r\n }, []);\r\n\r\n\r\n // handling outside clicks and mounting eventListener\r\n const profileSection = useRef();\r\n\r\n useEffect(() => {\r\n document.addEventListener(\"click\", handleClick);\r\n // return function to be called when unmounted\r\n return () => {\r\n document.removeEventListener(\"click\", handleClick);\r\n };\r\n });\r\n\r\n const handleClick = (e) => {\r\n // clicked inside the element\r\n if (e && profileSection.current.contains(e.target)) {\r\n setDetails(!details)\r\n } else {\r\n //clicked outside\r\n setDetails(false)\r\n }\r\n };\r\n\r\n\r\n// member types\r\n let memberType = \"\";\r\n switch (member.memberType) {\r\n case \"Admin\":\r\n memberType = \"مدیر سایت\";\r\n break;\r\n \r\n default:\r\n memberType = \"مدیر سایت\"\r\n }\r\n\r\n\r\n return (\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
صندوق قرض الحسنه رحیمیان
\r\n
صندوق قرض الحسنه رحیمیان
\r\n
\r\n\r\n
\r\n
\r\n

{member.fullname}

\r\n

{memberType}

\r\n
\r\n
\r\n {details &&
\r\n \r\n {(member.memberType === \"AgentAdmin\" || member.memberType === \"AgentMember\") &&\r\n

{member.agent.agentFullName}

}\r\n

امروز: {toPersianNumbers(today)}

\r\n
\r\n {member.memberType === \"AgentAdmin\" && پروفایل}\r\n تغییر رمز عبور\r\n \r\n \r\n
}\r\n
\r\n
\r\n );\r\n};","import React from \"react\";\r\nimport './Footer.css'\r\n\r\n\r\n\r\nexport const Footer = () => {\r\n return (\r\n \r\n );\r\n};","import React from \"react\";\r\nimport './Spinner.css'\r\n\r\n\r\nexport const Spinner = () => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};","import React from \"react\";\r\nimport './Alert.css'\r\n\r\nexport const Alert = ({alertText = 'خطایی رخ داده است!', alertType, execute, hideAlert, style}) => {\r\n\r\n if (alertType === \"\" || alertType === null || alertType === undefined ) {\r\n alertType = \"error\"\r\n }\r\n let title = \"\";\r\n\r\n if (alertType === \"error\") {\r\n title = \"خطا\"\r\n } else if (alertType === \"info\") {\r\n title = \"اطلاع رسانی\"\r\n } else if (alertType === \"success\") {\r\n title = \"موفقیت آمیز\"\r\n } else if (alertType === \"sure\") {\r\n title = \"آیا مطمئنید؟\"\r\n }\r\n\r\n\r\n return (\r\n
hideAlert(e)}>\r\n
\r\n
\r\n \r\n

{title}

\r\n
\r\n
\r\n

{alertText}

\r\n {alertType === \"sure\"\r\n ?
\r\n \r\n \r\n
\r\n :
\r\n \r\n
}\r\n
\r\n
\r\n
\r\n\r\n );\r\n};","import React from \"react\";\r\nimport './Toaster.css'\r\n\r\nexport const Toaster = ({toasterText, toasterType=\"success\", style}) => {\r\n\r\n //can get three types of toasterType: \"error\" \"info\" \"success\"\r\n return (\r\n
\r\n
\r\n \r\n

{toasterText}

\r\n
\r\n
\r\n );\r\n};","import React from \"react\";\r\nimport { Link } from \"react-router-dom\"\r\nimport './Aside.css'\r\nimport { toPersianNumbers } from \"../../Config\";\r\nimport { withRouter } from \"react-router-dom\";\r\n\r\n\r\nclass Aside extends React.Component {\r\n\r\n state = {\r\n stickyMenu: true,\r\n mainMenuDisplay: true,\r\n\r\n // menu Display:\r\n 1: false,\r\n 2: false,\r\n 3: false,\r\n 4: false,\r\n \r\n \r\n top : '70px',\r\n };\r\n\r\n\r\n\r\n menuStatus = () => {\r\n if (!this.props.navIcon) {\r\n return \"hidden\";\r\n } else if (this.props.navIcon) {\r\n return \"displayed\"\r\n }\r\n };\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.navIcon !== this.props.navIcon) {\r\n \r\n let doc = document.documentElement;\r\n let positionFromTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\r\n let top = positionFromTop+70+'px'\r\n this.setState({ top: top });\r\n \r\n }\r\n }\r\n\r\n accordion = (x) => {\r\n for (let i = 1; i <= 18; i++) {\r\n if (i !== x) {\r\n this.setState({ [i]: false })\r\n }\r\n }\r\n this.setState({\r\n [x]: !this.state[x]\r\n });\r\n };\r\n\r\n componentDidMount() {\r\n console.log(this.props)\r\n this.mobileMenu();\r\n window.addEventListener(\"resize\", () => {\r\n this.mobileMenu()\r\n });\r\n\r\n }\r\n\r\n\r\n mobileMenu = () => {\r\n if (window.innerWidth <= 481) {\r\n this.props.navIconOff();\r\n } else {\r\n this.setState({\r\n mainMenuDisplay: true,\r\n }, () => this.props.navIconOn())\r\n }\r\n };\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n
\r\n
    this.setState({ mainMenuDisplay: false })}\r\n onMouseEnter={this.state.stickyMenu ? null : () => this.setState({ mainMenuDisplay: true })}>\r\n\r\n this.setState({ stickyMenu: !this.state.stickyMenu })} />\r\n

    داشبورد

    \r\n\r\n\r\n
  • \r\n \r\n {this.state.mainMenuDisplay && \"صفحه اصلی\"}\r\n \r\n
  • \r\n {(this.props.member.userName === \"Admin\") &&\r\n
  • \r\n {this.state.mainMenuDisplay && \"مدیریت هزینه \"}\r\n
  • \r\n }\r\n {(this.props.member.userName === \"Admin\") &&\r\n
  • \r\n {this.state.mainMenuDisplay && \"مدیریت پرداخت\"}\r\n
  • \r\n }\r\n {(this.props.member.userName === \"Admin\") &&\r\n
  • \r\n {this.state.mainMenuDisplay && \"مدیریت وام ها\"}\r\n
  • \r\n }\r\n {(this.props.member.userName === \"Admin\") &&\r\n
  • \r\n\r\n this.accordion(2)}>{this.state.mainMenuDisplay && \"مدیریت اعضا\"}\r\n \r\n \r\n
    \r\n {this.state.mainMenuDisplay && \"گروه اعضا\"}\r\n
    \r\n
    \r\n {this.state.mainMenuDisplay && \"مدیریت اعضا\"}\r\n
    \r\n\r\n\r\n
  • \r\n }\r\n \r\n
  • \r\n\r\n this.accordion(3)}>{this.state.mainMenuDisplay && \"'گزارشات\"}\r\n \r\n \r\n {(this.props.member.userName === \"Admin\") &&\r\n
    \r\n {this.state.mainMenuDisplay && \"گزارش مالی\"}\r\n
    \r\n }\r\n
  • \r\n \r\n {(this.props.member.userName !== \"Admin\") &&\r\n
  • \r\n\r\n
    \r\n {this.state.mainMenuDisplay && \"گزارش وام دريافتي\"}\r\n
    \r\n\r\n\r\n
  • \r\n }\r\n {(this.props.member.userName === \"Admin\") &&\r\n
  • \r\n\r\n
    \r\n {this.state.mainMenuDisplay && \"گزارش پرداخت\"}\r\n
    \r\n\r\n\r\n
  • \r\n }\r\n {(this.props.member.userName !== \"Admin\") &&\r\n
  • \r\n\r\n
    \r\n {this.state.mainMenuDisplay && \"گزارش ماهيانه\"}\r\n
    \r\n\r\n\r\n
  • \r\n } {(this.props.member.userName === \"Admin\") &&\r\n
  • \r\n\r\n this.accordion(1)}>{this.state.mainMenuDisplay && \"تنظیمات\"}\r\n \r\n \r\n
    \r\n {this.state.mainMenuDisplay && \"تنظیمات اولیه\"}\r\n
    \r\n\r\n
  • \r\n }\r\n
\r\n
\r\n
\r\n\r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(Aside);","import React from 'react';\r\nimport axios from \"axios\";\r\nimport config, { toPersianNumbers, toEnglishNumbers, ShowCatchError } from \"../../Config\";\r\n \r\n\r\nclass ChangePassword extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n //refs\r\n //states\r\n this.state = {\r\n newPassword: \"\",\r\n //UserName: this.props ? this.props.member.userName : null,\r\n repeatPassword:\"\",\r\n errors: [],\r\n logOut: this.props && this.props.logOut,\r\n //UserId: this.props ? this.props.member.id : null\r\n NationId: this.props ? this.props.NationId : null\r\n }\r\n console.log(this.props)\r\n }\r\n\r\n\r\n validateInputData = () => {\r\n \r\n let error = [];\r\n if (this.state.newPassword.length < 6 || this.state.repeatPassword.length < 6) {\r\n error.push('رمز عبور نمی تواند کمتر از 6 حرف باشد');\r\n }\r\n if (this.state.newPassword !== this.state.repeatPassword) {\r\n error.push('رمز عبور جدید با تکرار رمز عبور برابر نیست');\r\n }\r\n if (error.length === 0) {\r\n this.setState({ errors: error });\r\n //submit form\r\n\r\n this.ChangePassword();\r\n } else {\r\n this.props.showAlert(\"لطفا تمامی اطلاعات درخواست شده را به درستی وارد کنید!\");\r\n this.setState({ errors: error })\r\n\r\n }\r\n };\r\n ChangePassword = () => {\r\n let SearchModel = {\r\n Item1: this.state.NationId ,\r\n Item2: this.state.newPassword \r\n };\r\n axios.post(config.url + 'api/FamilyMemberApi/ChangePasswordByName', SearchModel,).then(() => {\r\n // handle success\r\n this.props.showAlert(\"رمز عبور با موفقیت تغییر کرد\", 'success');\r\n \r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n\r\n //api\r\n\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n\r\n\r\n
\r\n
    {this.state.errors.length === 0 ? \"\" :\r\n (this.state.errors.map((error, i) =>\r\n
  • {error}
  • ))}\r\n
\r\n
\r\n

تغییر رمز عبور

\r\n
\r\n {/*
*/}\r\n {/*

نام كاربري

*/}\r\n {/* this.setState({*/}\r\n {/* UserName: toEnglishNumbers(e.target.value)*/}\r\n {/* })}*/}\r\n {/* />*/}\r\n {/*
*/}\r\n\r\n
\r\n

رمز عبور جدید

\r\n this.setState({\r\n newPassword: toEnglishNumbers(e.target.value)\r\n\r\n })}\r\n />\r\n
\r\n\r\n\r\n
\r\n

تکرار رمز عبور جدید

\r\n this.setState({\r\n repeatPassword: toEnglishNumbers(e.target.value)\r\n })} />\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ChangePassword;","import React from \"react\";\r\nimport './Login.css';\r\nimport axios from \"axios\";\r\nimport config, { ShowCatchError} from \"./../../Config\"\r\n\r\n\r\nclass Login extends React.Component {\r\n\r\n\r\n state = {\r\n username: \"\",\r\n password: \"\",\r\n remember: false,\r\n randomNumber: 0,\r\n };\r\n\r\n\r\n login = () => {\r\n \r\n //check if inputs are set\r\n if (this.state.username === \"\" || this.state.password === \"\") {\r\n this.props.showAlert(\"لطفا نام کاربری و رمز را خالی نگذارید!\")\r\n } else {\r\n\r\n this.props.showSpinner();\r\n //api call\r\n //axios.post(config.url + 'api/AccountApi/Login', {\r\n axios.post(config.url + 'api/AccountApi/GetToken', {\r\n \"Username\": this.state.username,\r\n \"Password\": this.state.password,\r\n \"IsRememberMeChecked\": false,\r\n }\r\n )\r\n .then((res) => {\r\n console.log(res.data)\r\n // handle success\r\n this.props.hideSpinner();\r\n this.setJWT(res.data.token);\r\n this.props.checkJWT();\r\n })\r\n .catch((error) => {\r\n // handle error\r\n\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n })\r\n .then(() => {\r\n // always executed\r\n });\r\n }\r\n };\r\n\r\n componentDidMount() {\r\n //this.setState({\r\n // randomNumber: Math.floor(Math.random() * 7)\r\n //})\r\n }\r\n\r\n\r\n setJWT = (jwt) => {\r\n (jwt === \"\") ? console.log(\"No jwt was received\") : localStorage.setItem(\"jwt\", jwt);\r\n };\r\n\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n

پنل کاربری وام خانوادگی

\r\n this.setState({username: e.target.value})}\r\n onKeyDown={(e) => e.key === 'Enter' ? this.login() : null}/>\r\n this.setState({password: e.target.value})}\r\n onKeyDown={(e) => e.key === 'Enter' ? this.login() : null}/>\r\n

this.setState({remember: !this.state.remember})}>مرا بخاطر بسپار

\r\n \r\n رمز خود را فراموش کرده اید؟\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Login;","import React, {useEffect, useRef, useState} from \"react\";\r\nimport {toEnglishNumbers, toPersianNumbers} from \"../../Config\";\r\nimport Excel from \"./excel\"\r\n\r\nexport const Table = ({tableHeaders, tableRow, tableData}) => {\r\n\r\n const [tableSearchValue, setTableSearchValue] = useState(\"\");\r\n const [tableRowCount, setTableRowCount] = useState(10);\r\n const [pageNumbers, setPageNumbers] = useState([]);\r\n const [selectedPage, setSelectedPage] = useState(1);\r\n const [from, setFrom] = useState(tableRowCount);\r\n const [to, setTo] = useState(1);\r\n const [searchedTableRow, setSearchedTableRow] = useState([]);\r\n const myTableBody = useRef(null);\r\n const [tableColumns, setTableColumns] = useState(tableHeaders);\r\n const [tableColumnsIndex, setTableColumnsIndex] = useState([]);\r\n const myTable = useRef();\r\n\r\n\r\n useEffect(() => {\r\n let arr2 = [];\r\n tableRow.map((item) =>\r\n JSON.stringify(item).includes(tableSearchValue) ? arr2.push(item) : null\r\n );\r\n setSearchedTableRow(arr2);\r\n\r\n let arr = [];\r\n for (let i = 0; i < arr2.length / tableRowCount; i++) {\r\n arr.push(i + 1)\r\n }\r\n setPageNumbers(arr);\r\n if (tableRowCount === 1000000) {\r\n setFrom(0);\r\n setTo(arr2.length)\r\n } else {\r\n setFrom(tableRowCount * selectedPage - tableRowCount);\r\n setTo(tableRowCount * selectedPage)\r\n }\r\n\r\n }, [tableRow, tableRowCount, selectedPage, tableSearchValue]);\r\n\r\n\r\n const sortTable = (n) => {\r\n let table, rows, switching, i, x, y, shouldSwitch, dir, switchCount = 0;\r\n table = myTableBody.current;\r\n switching = true;\r\n\r\n dir = \"asc\";\r\n while (switching) {\r\n switching = false;\r\n rows = table.rows;\r\n for (i = 0; i < (rows.length - 1); i++) {\r\n shouldSwitch = false;\r\n x = rows[i].getElementsByTagName(\"TD\")[n];\r\n y = rows[i + 1].getElementsByTagName(\"TD\")[n];\r\n\r\n if (dir === \"asc\") {\r\n\r\n if (/\\d/.test(toEnglishNumbers(x.innerHTML))) {\r\n //if (parseInt(toEnglishNumbers(x.innerHTML)) > parseInt(toEnglishNumbers(y.innerHTML.toLowerCase()))) {\r\n if (parseInt(toEnglishNumbers(x.innerHTML.split(\"/\").pop())) > parseInt(toEnglishNumbers(y.innerHTML.split(\"/\").pop()))) {\r\n shouldSwitch = true;\r\n break;\r\n }\r\n } else {\r\n if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) {\r\n shouldSwitch = true;\r\n break;\r\n }\r\n }\r\n\r\n\r\n } else if (dir === \"desc\") {\r\n if (/\\d/.test(toEnglishNumbers(x.innerHTML))) {\r\n //if (parseInt(toEnglishNumbers(x.innerHTML)) < parseInt(toEnglishNumbers(y.innerHTML))) {\r\n if (parseInt(toEnglishNumbers(x.innerHTML.split(\"/\").pop())) < parseInt(toEnglishNumbers(y.innerHTML.split(\"/\").pop()))) {\r\n shouldSwitch = true;\r\n break;\r\n }\r\n } else {\r\n if (x.innerHTML.toLowerCase() < y.innerHTML.toLowerCase()) {\r\n shouldSwitch = true;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (shouldSwitch) {\r\n rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);\r\n switching = true;\r\n switchCount++;\r\n\r\n } else {\r\n if (switchCount === 0 && dir === \"asc\") {\r\n dir = \"desc\";\r\n switching = true;\r\n }\r\n }\r\n }\r\n };\r\n\r\n const handleChange = (event) => {\r\n const {\r\n target: { value },\r\n } = event;\r\n setTableColumns(\r\n typeof value === 'string' ? value.split(',') : value,\r\n );\r\n };\r\n const handleIndexChangeColumns = (index) => {\r\n let tempArr = tableColumnsIndex;\r\n let iIndex = tableColumnsIndex.indexOf(index);\r\n\r\n if (iIndex > -1) {\r\n tempArr.splice(iIndex, 1);\r\n } else {\r\n tempArr.push(index);\r\n }\r\n\r\n setTableColumnsIndex(tempArr);\r\n };\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n setTableSearchValue(toEnglishNumbers(e.target.value))}\r\n className=\"input\" type=\"text\" autoComplete=\"off\"\r\n placeholder=\"جستجو کنید...\" autoFocus/>\r\n
\r\n\r\n
\r\n \r\n
\r\n {myTable.current !== undefined && }\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n

نمایش {from === 0 ? \"۱\" : toPersianNumbers(from)} تا {to > searchedTableRow.length ? toPersianNumbers(searchedTableRow.length) : toPersianNumbers(to)} از {toPersianNumbers(searchedTableRow.length)}

\r\n
\r\n\r\n
\r\n {tableRowCount !== 1000000 &&

{\r\n setSelectedPage(1)\r\n }}\r\n >اولین

}\r\n {tableRowCount !== 1000000 &&

{\r\n if (selectedPage !== 1) {\r\n setSelectedPage(selectedPage - 1)\r\n }\r\n }}\r\n >قبلی

}\r\n {pageNumbers.slice(selectedPage < 5 ? 0 : selectedPage - 5, selectedPage + 4).map((num) => {\r\n return

setSelectedPage(num)}\r\n style={selectedPage === num ? {\r\n backgroundColor: \"#04AA6D\",\r\n color: \"white\",\r\n fontWeight: \"800\"\r\n } : {}}>{toPersianNumbers(num)}

\r\n })}\r\n {tableRowCount !== 1000000 &&

{\r\n if (selectedPage !== pageNumbers.length) {\r\n setSelectedPage(selectedPage + 1)\r\n }\r\n }}\r\n >بعدی

}\r\n {tableRowCount !== 1000000 &&

{\r\n setSelectedPage(pageNumbers.length)\r\n }}\r\n >آخرین

}\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n {tableHeaders.map((tableHeader, i) => {\r\n if (tableColumns.includes(tableHeader)) {\r\n return \r\n }\r\n })}\r\n \r\n \r\n \r\n {searchedTableRow.slice(from, to).map((item, i) =>\r\n \r\n \r\n {tableData.map((data, i) => {\r\n if (!tableColumnsIndex.includes(i)) {\r\n return \r\n }\r\n })}\r\n )}\r\n \r\n
sortTable(0)}\r\n className=\"flaticon-sort-1\">ردیف sortTable(i+1)}\r\n className=\"flaticon-sort-1\">{toPersianNumbers(tableHeader)}
{toPersianNumbers(i + 1)}{data(item)}
\r\n
\r\n
\r\n );\r\n};\r\n\r\n","import React from \"react\";\r\n//styles for this component are located in the index.scss\r\n\r\nexport const Modal = ({modalContent, style}) => {\r\n\r\n return (\r\n
\r\n {modalContent}\r\n
\r\n );\r\n};","import React from 'react';\r\nimport axios from \"axios\";\r\nimport Config, { toPersianNumbers, toCurrency, toEnglishNumbers, ShowCatchError, convertDate, CurrentDate } from \"../../Config\";\r\nimport { Table } from \"../Shared/Table\"; \r\nimport './LoanReport.css';\r\nimport { Modal } from \"../Shared/Modal\";\r\nimport DatePicker, { utils } from \"react-modern-calendar-datepicker\";\r\nclass LoanReport extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n //refs\r\n\r\n //states\r\n this.state = {\r\n firstName: \"\",\r\n lastName: \"\",\r\n familyMemberId: null, \r\n PaymentType: null, \r\n SumPaymentPrice: \"\",\r\n nationalId: \"\",\r\n errors: [], \r\n LoanInformations: [],\r\n SaveMode: 'Add',\r\n tableSearchValue: \"\",\r\n showMontlyModal: false,\r\n showDelayModal: false,\r\n showLoanModal: false,\r\n showAllLoanModal: false,\r\n showloanInfoModal: false,\r\n LoanReports: [],\r\n LoanInMemberformation: [],\r\n startDate: convertDate(CurrentDate()),\r\n startDateDisplay: CurrentDate(),\r\n endDate: convertDate(utils('fa').getToday()),\r\n endDateDisplay: utils('fa').getToday(),\r\n sumInstallmentPrice:\"\",\r\n remainLoan:\"\",\r\n LoanPrice:\"\",\r\n LoanNumber:\"\",\r\n }\r\n\r\n }\r\n\r\n componentDidMount() {\r\n this.props.hideSpinner();\r\n \r\n this.Search();\r\n }\r\n \r\n handleFocus = (event) => event.target.select();\r\n\r\n Search = () => {\r\n this.props.showSpinner();\r\n const model = {\r\n FirstName: this.state.firstName,\r\n LastName: this.state.lastName,\r\n NationalId: this.state.nationalId,\r\n }\r\n axios.post(Config.url + 'api/PaymentInformationApi/LoanReport', model).then((res) => {\r\n // handle success\r\n this.props.hideSpinner();\r\n this.setState({\r\n LoanReports: res.data,\r\n \r\n });\r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n\r\n \r\n\r\n \r\n Reset = () => {\r\n\r\n this.setState({\r\n firstName: \"\",\r\n lastName: \"\",\r\n NationalId: \"\",\r\n errors: [],\r\n SaveMode: 'Add',\r\n startDate: convertDate(CurrentDate()),\r\n startDateDisplay: CurrentDate(),\r\n endDate: convertDate(utils('fa').getToday()),\r\n endDateDisplay: utils('fa').getToday(),\r\n //familyMemberId: null,\r\n //PaymentType: null,\r\n //SumPaymentPrice: null,\r\n });\r\n \r\n };\r\n \r\n \r\n\r\n\r\n //api\r\n GetLoanInformationByFamilyMemberId = (FamilyMemberId, callback) => {\r\n axios.get(Config.url + 'api/LoanInformationApi/GetAllLoanInformationByFamilyMemberId?familyMemberId=' + FamilyMemberId)\r\n .then((res) => {\r\n // console.log(res.data);\r\n this.setState({ LoanInMemberformation: res.data },\r\n () => callback !== undefined ? callback() : null);\r\n })\r\n .catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n GetPamentInfoList = (FamilyMemberId, Type, callback) => {\r\n axios.get(Config.url + 'api/PaymentInformationApi/GetPamentInfoList?FamilyMemberId=' + FamilyMemberId + '&Type=' + Type)\r\n .then((res) => {\r\n // console.log(res.data);\r\n this.setState({ PamentInfo: res.data },\r\n () => callback !== undefined ? callback() : null);\r\n })\r\n .catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n GetPamentInfoListByBloanId = (FamilyMemberId, Type, LoanInformationId, callback) => {\r\n axios.get(Config.url + 'api/PaymentInformationApi/GetPamentInfoListByBloanId?FamilyMemberId=' + FamilyMemberId + '&Type=' + Type + '&LoanInformationId=' + LoanInformationId)\r\n .then((res) => {\r\n // console.log(res.data);\r\n if (res.data.length > 0) {\r\n this.setState({\r\n PamentInfo: res.data,\r\n sumInstallmentPrice: res.data[0].sumInstallmentPrice,\r\n remainLoan: res.data[0].remainLoan,\r\n //LoanPrice: res.data[0].loanPrice,\r\n },\r\n () => callback !== undefined ? callback() : null);\r\n }\r\n else {\r\n this.setState({\r\n PamentInfo: [],\r\n sumInstallmentPrice: \"\",\r\n remainLoan: \"\",\r\n //LoanPrice: \"\",\r\n //LoanNumber: \"\",\r\n })\r\n }\r\n })\r\n .catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n \r\n GetPamentMontlyInfoList = (FamilyMemberId, Type, callback) => {\r\n axios.get(Config.url + 'api/PaymentInformationApi/GetPamentMontlyInfoList?FamilyMemberId=' + FamilyMemberId + '&Type=' + Type + '&startDate=' + this.state.startDate + '&endDate=' + this.state.endDate)\r\n .then((res) => {\r\n // console.log(res.data);\r\n if (res.data.length > 0) {\r\n this.setState({\r\n PamentInfo: res.data,\r\n SumPaymentPrice: (res.data !== null && res.data !== undefined) ? res.data[0].sumPaymentPrice : \"\",\r\n },\r\n () => callback !== undefined ? callback() : null);\r\n }\r\n else {\r\n this.setState({ PamentInfo: [], SumPaymentPrice:\"\"})\r\n }\r\n })\r\n .catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n GetLoanInfoList = (LoanInformationId, FamilyMemberId, callback) => {\r\n axios.get(Config.url + 'api/LoanInformationApi/GetLoanInfoListById?LoanInformationId=' + LoanInformationId + '&FamilyMemberId=' + FamilyMemberId)\r\n .then((res) => {\r\n \r\n this.setState({\r\n LoanInformations: res.data,\r\n sumInstallmentPrice: res.data[0].sumInstallmentPrice,\r\n remainLoan: res.data[0].remainLoan,\r\n },\r\n () => callback !== undefined ? callback() : null);\r\n })\r\n .catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n render() {\r\n return (\r\n
\r\n
\r\n\r\n

مدیریت گروه ها

\r\n\r\n
\r\n \r\n\r\n
\r\n \r\n this.setState({ firstName: toEnglishNumbers(e.target.value) })} />\r\n
\r\n\r\n \r\n
\r\n

نام خانوادگی

\r\n this.setState({ lastName: toEnglishNumbers(e.target.value) })} />\r\n
\r\n \r\n \r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n

شماره ملی

\r\n this.setState({ nationalId: toEnglishNumbers(e.target.value.replace(/[^0-9۰-۹.]/g, \"\")) })} />\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n
    {this.state.errors.length === 0 ? \"\" :\r\n (this.state.errors.map((error, i) =>\r\n
  • {error}
  • ))}\r\n
\r\n
\r\n\r\n\r\n {\r\n return toPersianNumbers(x.firstName)\r\n },\r\n \r\n x => {\r\n return toPersianNumbers(x.lastName)\r\n },\r\n \r\n \r\n x => {\r\n return toPersianNumbers(x.nationalId)\r\n },\r\n x => {\r\n return toCurrency(toPersianNumbers(x.allAmount))\r\n },\r\n x => {\r\n return toCurrency(toPersianNumbers(x.remain))\r\n },\r\n x => {\r\n return toCurrency(toPersianNumbers(x.allLoan))\r\n },\r\n x => {\r\n return toCurrency(toPersianNumbers(x.currentAmount))\r\n },\r\n x => { \r\n return ;\r\n },\r\n x => {\r\n \r\n\r\n return ;\r\n },\r\n \r\n x => {\r\n \r\n return ;\r\n },\r\n \r\n ]} />\r\n\r\n
\r\n\r\n {/* showMontlyModal Modal */}\r\n {this.state.showMontlyModal &&\r\n \r\n this.setState({\r\n showMontlyModal: false\r\n })}>\r\n \r\n {this.state.PaymentType ===2 && \r\n
\r\n
\r\n \r\n {\r\n this.setState({\r\n startDateDisplay: newDate,\r\n startDate: convertDate(newDate),\r\n });\r\n }}\r\n inputPlaceholder=\"لطفا یک تاریخ انتخاب کنید\"\r\n inputClassName=\"date-picker\"\r\n shouldHighlightWeekends\r\n locale=\"fa\"\r\n />\r\n
\r\n
\r\n \r\n {\r\n this.setState({\r\n endDateDisplay: newDate,\r\n endDate: convertDate(newDate),\r\n });\r\n }}\r\n inputPlaceholder=\"لطفا یک تاریخ انتخاب کنید\"\r\n inputClassName=\"date-picker\"\r\n shouldHighlightWeekends\r\n locale=\"fa\"\r\n />\r\n
\r\n
\r\n }\r\n {this.state.PaymentType === 2 &&\r\n
\r\n \r\n
\r\n }\r\n\r\n

\r\n {this.state.PaymentType === 2 ? ' لیست ماهیانه' : ' لیست وام ها'}\r\n \r\n

\r\n

\r\n {this.state.PaymentType === 2 ? ' جمع کل :' + toCurrency(this.state.SumPaymentPrice) : ''}\r\n\r\n

\r\n {\r\n (this.state.PamentInfo !== null && this.state.PamentInfo !== undefined) &&\r\n {\r\n return toCurrency(item.paymentPrice);\r\n },\r\n item => {\r\n return toPersianNumbers(item.paymentDate);\r\n },\r\n\r\n ]}\r\n\r\n />\r\n }\r\n
\r\n }\r\n />}\r\n \r\n {/* showAllLoanModal Modal */}\r\n {this.state.showAllLoanModal &&\r\n \r\n this.setState({\r\n showAllLoanModal: false\r\n })}>\r\n \r\n

\r\n لیست وام ها\r\n\r\n

\r\n {\r\n (this.state.LoanInMemberformation !== null && this.state.LoanInMemberformation !== undefined) &&\r\n {\r\n return toCurrency(x.loanPrice)\r\n },\r\n\r\n x => {\r\n return toCurrency(x.installmentPrice)\r\n },\r\n x => {\r\n return toPersianNumbers(x.loanNumber)\r\n },\r\n x => {\r\n return toPersianNumbers(x.payDate)\r\n },\r\n x => {\r\n return toPersianNumbers(x.startDate)\r\n },\r\n x => {\r\n return toPersianNumbers(x.endDate)\r\n },\r\n\r\n\r\n x => {\r\n return (x.type === \"true\" || x.type === true) ? \"تصویه شده\" : \"تصویه نشده\"\r\n },\r\n item => {\r\n\r\n return ;\r\n },\r\n \r\n ]}\r\n\r\n />\r\n }\r\n \r\n }\r\n />}\r\n\r\n {/* showDelayModal Modal */}\r\n {this.state.showDelayModal &&\r\n \r\n this.setState({\r\n showDelayModal: false\r\n })}>\r\n \r\n\r\n\r\n

لیست دیرکرد

\r\n {\r\n (this.state.PamentInfo !== null && this.state.PamentInfo !== undefined) &&\r\n {\r\n return toCurrency(item.paymentPrice);\r\n },\r\n item => {\r\n return toPersianNumbers(item.paymentDate);\r\n },\r\n\r\n ]}\r\n\r\n />\r\n }\r\n \r\n }\r\n />}\r\n\r\n {/* showLoanModal Modal */}\r\n {this.state.showLoanModal &&\r\n \r\n this.setState({\r\n showLoanModal: false\r\n })}>\r\n \r\n

\r\n {this.state.PaymentType === 2 ? ' لیست ماهیانه' : ' لیست پرداخت ها'}\r\n\r\n

\r\n

\r\n {this.state.PaymentType === 2 ? ' جمع کل :' + this.state.SumPaymentPrice : ''}\r\n\r\n

\r\n

\r\n مبلغ وام : {toCurrency(this.state.LoanPrice)}\r\n\r\n

\r\n

\r\n تعداد اقساط : {this.state.LoanNumber}\r\n\r\n

\r\n

\r\n جمع اقساط پرداختی : {toCurrency(this.state.sumInstallmentPrice)}\r\n\r\n

\r\n

\r\n مانده وام : {toCurrency(this.state.remainLoan)}\r\n\r\n

\r\n {\r\n (this.state.PamentInfo !== null && this.state.PamentInfo !== undefined) &&\r\n {\r\n return toCurrency(item.paymentPrice);\r\n },\r\n item => {\r\n return toPersianNumbers(item.paymentDate);\r\n },\r\n //item=> {\r\n\r\n // return ;\r\n //},\r\n ]}\r\n\r\n />\r\n }\r\n \r\n }\r\n />}\r\n\r\n {/* showloanInfoModal Modal */}\r\n {this.state.showloanInfoModal &&\r\n \r\n this.setState({\r\n showloanInfoModal: false\r\n })}>\r\n \r\n\r\n

\r\n جمع اقساط پرداختی : {toCurrency(this.state.sumInstallmentPrice)}\r\n\r\n

\r\n

\r\n مانده وام : {toCurrency(this.state.remainLoan)}\r\n\r\n

\r\n \r\n {\r\n (this.state.LoanInformations !== null && this.state.LoanInformations !== undefined) &&\r\n {\r\n return toCurrency(x.loanPrice)\r\n },\r\n\r\n x => {\r\n return toCurrency(x.installmentPrice)\r\n },\r\n x => {\r\n return toPersianNumbers(x.loanNumber)\r\n },\r\n x => {\r\n return toPersianNumbers(x.payDate)\r\n },\r\n x => {\r\n return toPersianNumbers(x.startDate)\r\n },\r\n x => {\r\n return toPersianNumbers(x.endDate)\r\n },\r\n \r\n\r\n x => {\r\n return (x.type === \"true\" || x.type === true) ? \"تصویه شده\" : \"تصویه نشده\"\r\n },\r\n\r\n ]}\r\n\r\n />\r\n }\r\n \r\n }\r\n />}\r\n\r\n\r\n \r\n\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default LoanReport;","import React from 'react';\r\nimport axios from \"axios\";\r\nimport Config, { toPersianNumbers, toCurrency, toEnglishNumbers, ShowCatchError, convertDate, CurrentDate } from \"../../Config\";\r\nimport { Table } from \"../Shared/Table\"; \r\nimport './PersonLoanReport.css';\r\nimport { Modal } from \"../Shared/Modal\";\r\nimport DatePicker, { utils } from \"react-modern-calendar-datepicker\";\r\nclass PersonLoanReport extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n //refs\r\n\r\n //states\r\n this.state = {\r\n \r\n familyMemberId: null, \r\n PaymentType: null, \r\n SumPaymentPrice: \"\",\r\n nationalId: \"\",\r\n errors: [], \r\n LoanInformations: [],\r\n SaveMode: 'Add',\r\n tableSearchValue: \"\",\r\n showMontlyModal: false,\r\n showDelayModal: false,\r\n showLoanModal: false,\r\n showAllLoanModal: false,\r\n showloanInfoModal: false,\r\n LoanReports: [],\r\n LoanInMemberformation: [],\r\n startDate: convertDate(CurrentDate()),\r\n startDateDisplay: CurrentDate(),\r\n endDate: convertDate(utils('fa').getToday()),\r\n endDateDisplay: utils('fa').getToday(),\r\n sumInstallmentPrice:\"\",\r\n remainLoan:\"\",\r\n LoanPrice:\"\",\r\n LoanNumber:\"\",\r\n familyMemberId: this.props ? this.props.member.familyMemberId:null\r\n }\r\n\r\n }\r\n\r\n componentDidMount() {\r\n this.props.hideSpinner();\r\n this.GetLoanInformationByFamilyMemberId(this.state.familyMemberId);\r\n }\r\n \r\n handleFocus = (event) => event.target.select(); \r\n //api\r\n GetLoanInformationByFamilyMemberId = (FamilyMemberId, callback) => {\r\n axios.get(Config.url + 'api/LoanInformationApi/GetAllLoanInformationByFamilyMemberId?familyMemberId=' + FamilyMemberId)\r\n .then((res) => {\r\n // console.log(res.data);\r\n this.setState({ LoanInMemberformation: res.data },\r\n () => callback !== undefined ? callback() : null);\r\n })\r\n .catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n GetPamentInfoListByBloanId = (FamilyMemberId, Type, LoanInformationId, callback) => {\r\n axios.get(Config.url + 'api/PaymentInformationApi/GetPamentInfoListByBloanId?FamilyMemberId=' + FamilyMemberId + '&Type=' + Type + '&LoanInformationId=' + LoanInformationId)\r\n .then((res) => {\r\n // console.log(res.data);\r\n if (res.data.length > 0) {\r\n this.setState({\r\n PamentInfo: res.data,\r\n sumInstallmentPrice: res.data[0].sumInstallmentPrice,\r\n remainLoan: res.data[0].remainLoan,\r\n //LoanPrice: res.data[0].loanPrice,\r\n },\r\n () => callback !== undefined ? callback() : null);\r\n }\r\n else {\r\n this.setState({\r\n PamentInfo: [],\r\n sumInstallmentPrice: \"\",\r\n remainLoan: \"\",\r\n //LoanPrice: \"\",\r\n //LoanNumber: \"\",\r\n })\r\n }\r\n })\r\n .catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n\r\n

ليست وام ها

\r\n\r\n \r\n {\r\n return toCurrency(x.loanPrice)\r\n },\r\n\r\n x => {\r\n return toCurrency(x.installmentPrice)\r\n },\r\n x => {\r\n return toPersianNumbers(x.loanNumber)\r\n },\r\n x => {\r\n return toPersianNumbers(x.payDate)\r\n },\r\n x => {\r\n return toPersianNumbers(x.startDate)\r\n },\r\n x => {\r\n return toPersianNumbers(x.endDate)\r\n },\r\n\r\n\r\n x => {\r\n return (x.type === \"true\" || x.type === true) ? \"تصویه شده\" : \"تصویه نشده\"\r\n },\r\n item => {\r\n\r\n return ;\r\n },\r\n\r\n ]} />\r\n\r\n
\r\n\r\n \r\n \r\n {/* showLoanModal Modal */}\r\n {this.state.showLoanModal &&\r\n \r\n this.setState({\r\n showLoanModal: false\r\n })}>\r\n \r\n

\r\n { ' لیست پرداخت ها'}\r\n\r\n

\r\n \r\n

\r\n مبلغ وام : {toCurrency(this.state.LoanPrice)}\r\n\r\n

\r\n

\r\n تعداد اقساط : {this.state.LoanNumber}\r\n\r\n

\r\n

\r\n جمع اقساط پرداختی : {toCurrency(this.state.sumInstallmentPrice)}\r\n\r\n

\r\n

\r\n مانده وام : {toCurrency(this.state.remainLoan)}\r\n\r\n

\r\n {\r\n (this.state.PamentInfo !== null && this.state.PamentInfo !== undefined) &&\r\n {\r\n return toCurrency(item.paymentPrice);\r\n },\r\n item => {\r\n return toPersianNumbers(item.paymentDate);\r\n },\r\n //item=> {\r\n\r\n // return ;\r\n //},\r\n ]}\r\n\r\n />\r\n }\r\n
\r\n }\r\n />}\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default PersonLoanReport;","import React from 'react';\r\nimport axios from \"axios\";\r\nimport Config, { toPersianNumbers, toCurrency, toEnglishNumbers, ShowCatchError, convertDate, CurrentDate } from \"../../Config\";\r\nimport { Table } from \"../Shared/Table\"; \r\nimport './PersonMontlyReport.css';\r\nimport { Modal } from \"../Shared/Modal\";\r\nimport DatePicker, { utils } from \"react-modern-calendar-datepicker\";\r\nclass PersonMontlyReport extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n //refs\r\n\r\n //states\r\n this.state = {\r\n \r\n familyMemberId: null, \r\n PaymentType: null, \r\n SumPaymentPrice: \"\",\r\n nationalId: \"\",\r\n errors: [], \r\n LoanInformations: [],\r\n SaveMode: 'Add',\r\n tableSearchValue: \"\",\r\n showMontlyModal: false,\r\n showDelayModal: false,\r\n showLoanModal: false,\r\n showAllLoanModal: false,\r\n showloanInfoModal: false,\r\n LoanReports: [],\r\n LoanInMemberformation: [],\r\n startDate: convertDate(CurrentDate()),\r\n startDateDisplay: CurrentDate(),\r\n endDate: convertDate(utils('fa').getToday()),\r\n endDateDisplay: utils('fa').getToday(),\r\n sumInstallmentPrice:\"\",\r\n remainLoan:\"\",\r\n LoanPrice:\"\",\r\n LoanNumber:\"\",\r\n familyMemberId: this.props ? this.props.member.familyMemberId:null\r\n }\r\n\r\n }\r\n\r\n componentDidMount() {\r\n this.props.hideSpinner();\r\n //this.GetPamentMontlyInfoList(this.state.familyMemberId);\r\n this.GetPamentMontlyInfoList(this.state.familyMemberId )\r\n }\r\n \r\n handleFocus = (event) => event.target.select(); \r\n //api\r\n GetPamentMontlyInfoList = (FamilyMemberId) => {\r\n axios.get(Config.url + 'api/PaymentInformationApi/GetPamentMontlyInfoList?FamilyMemberId=' + FamilyMemberId + '&Type=' + 2 + '&startDate=' + this.state.startDate + '&endDate=' + this.state.endDate)\r\n .then((res) => {\r\n // console.log(res.data);\r\n if (res.data.length > 0) {\r\n this.setState({\r\n PamentInfo: res.data,\r\n SumPaymentPrice: (res.data !== null && res.data !== undefined) ? res.data[0].sumPaymentPrice : \"\",\r\n } );\r\n }\r\n else {\r\n this.setState({ PamentInfo: [], SumPaymentPrice: \"\" })\r\n }\r\n })\r\n .catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n\r\n
\r\n

ليست ماهيانه

\r\n \r\n
\r\n
\r\n \r\n {\r\n this.setState({\r\n startDateDisplay: newDate,\r\n startDate: convertDate(newDate),\r\n });\r\n }}\r\n inputPlaceholder=\"لطفا یک تاریخ انتخاب کنید\"\r\n inputClassName=\"date-picker\"\r\n shouldHighlightWeekends\r\n locale=\"fa\"\r\n />\r\n
\r\n
\r\n \r\n {\r\n this.setState({\r\n endDateDisplay: newDate,\r\n endDate: convertDate(newDate),\r\n });\r\n }}\r\n inputPlaceholder=\"لطفا یک تاریخ انتخاب کنید\"\r\n inputClassName=\"date-picker\"\r\n shouldHighlightWeekends\r\n locale=\"fa\"\r\n />\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n\r\n \r\n

\r\n { ' جمع کل :' + toCurrency(this.state.SumPaymentPrice) }\r\n\r\n

\r\n {\r\n (this.state.PamentInfo !== null && this.state.PamentInfo !== undefined) &&\r\n {\r\n return toCurrency(item.paymentPrice);\r\n },\r\n item => {\r\n return toPersianNumbers(item.paymentDate);\r\n },\r\n\r\n ]}\r\n\r\n />\r\n }\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default PersonMontlyReport;","import React from 'react';\r\nimport './Dashboard.css';\r\nimport axios from \"axios\";\r\nimport Config, { toPersianNumbers, toCurrency, ShowCatchError } from \"../../Config\";\r\nimport { Table } from \"../Shared/Table\";\r\n \r\nclass AdminDashboard extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n //refs\r\n\r\n //states\r\n this.state = {\r\n AdminStatistics: null,\r\n ManagerId: null,\r\n StatisticsByManager:[]\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.props.hideSpinner();\r\n this.GetAllInfoPayment();\r\n this.GetAllInfoPaymentByManager();\r\n window.scrollTo(0, 0);\r\n }\r\n GetAllInfoPayment = () => {\r\n axios.get(Config.url + 'api/PaymentInformationApi/GetAllInfoPayment').then((res) => {\r\n // handle success\r\n this.setState({\r\n AdminStatistics: res.data[0]\r\n })\r\n }).catch((error) => {\r\n console.log(error.response);\r\n });\r\n };\r\n GetAllInfoPaymentByManager = () => {\r\n axios.get(Config.url + 'api/PaymentInformationApi/GetAllInfoPaymentByManager').then((res) => {\r\n // handle success\r\n console.log(res.data);\r\n this.setState({\r\n StatisticsByManager: res.data \r\n })\r\n }).catch((error) => {\r\n console.log(error.response);\r\n });\r\n };\r\n SaveAll = () => {\r\n \r\n \r\n let addModel;\r\n \r\n addModel = {\r\n \r\n Item1: this.state.ManagerId,\r\n \r\n }\r\n \r\n axios.post(Config.url + 'api/PaymentInformationApi/SaveAll' , addModel,\r\n )\r\n .then((res) => {\r\n // handle success\r\n if (res.status === 200) {\r\n this.props.hideSpinner();\r\n this.props.showAlert(res.data, \"success\"); \r\n }\r\n\r\n })\r\n .catch((error) => {\r\n\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n\r\n\r\n };\r\n render() {\r\n return (\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n

تعداد اعضای صندوق:

\r\n
\r\n {this.state.AdminStatistics && toCurrency(this.state.AdminStatistics.allMembers)}\r\n \r\n
\r\n

موجودی اعضای صندوق:

\r\n
\r\n {this.state.AdminStatistics && toCurrency((this.state.AdminStatistics.allAmount))}\r\n
\r\n
\r\n
\r\n

مبلغ کل دیرکرد :

\r\n
\r\n {this.state.AdminStatistics && toCurrency((this.state.AdminStatistics.allPymentDelay))}\r\n
\r\n
\r\n
\r\n

مبلغ کل هزینه صندوق:

\r\n
\r\n {this.state.AdminStatistics && toCurrency((this.state.AdminStatistics.allFundExpense))}\r\n
\r\n
\r\n
\r\n

موجودی جاری صندوق:

\r\n
\r\n {this.state.AdminStatistics && toCurrency((this.state.AdminStatistics.allAmountNow))}\r\n
\r\n
\r\n
\r\n

تعداد وام های پرداختی:

\r\n
\r\n {this.state.AdminStatistics && toCurrency(this.state.AdminStatistics.allLoan)}\r\n
\r\n
\r\n
\r\n

مبلغ کل وام های پرداختی:

\r\n
\r\n {this.state.AdminStatistics && toCurrency((this.state.AdminStatistics.allLoanAmount))}\r\n
\r\n
\r\n
\r\n \r\n

مبلغ کل اقساط پرداختی:

\r\n
\r\n {this.state.AdminStatistics && toCurrency((this.state.AdminStatistics.allLoanPaymentAmount))}\r\n
\r\n
\r\n
\r\n

کل وام های تسویه نشده:

\r\n
\r\n {this.state.AdminStatistics && toCurrency((this.state.AdminStatistics.reamainLoanNotPaying))}\r\n
\r\n \r\n \r\n
\r\n {\r\n return toCurrency(item.managerFullName);\r\n },\r\n item => {\r\n return toCurrency(item.allAmount);\r\n },\r\n item => {\r\n return toCurrency(item.allLoan);\r\n },\r\n item => {\r\n return toCurrency(item.remain);\r\n },\r\n item => {\r\n return toCurrency(item.currentAmount);\r\n },\r\n item => {\r\n return toCurrency(item.reamainEachMount);\r\n },\r\n \r\n x => {\r\n return \r\n },\r\n\r\n\r\n //item => {\r\n // return toPersianNumbers(item.allLoanAmount);\r\n //},\r\n //item => {\r\n // return toPersianNumbers(item.allLoanPaymentAmount);\r\n //},\r\n //item => {\r\n // return toPersianNumbers(item.allPaymentDelay);\r\n //},\r\n //item => {\r\n // return toPersianNumbers(item.reamainLoanNotPaying);\r\n //},\r\n // item => {\r\n // return toPersianNumbers(item.allAmountNow);\r\n //},\r\n \r\n ]}\r\n\r\n />\r\n\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default AdminDashboard;","import React from 'react';\r\nimport './Dashboard.css';\r\nimport axios from \"axios\";\r\nimport Config, { toPersianNumbers, toCurrency } from \"../../Config\";\r\nimport { Table } from \"../Shared/Table\";\r\n \r\nclass UserDashboard extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n //refs\r\n\r\n //states\r\n this.state = {\r\n AdminStatistics: null,\r\n familyMemberId: this.props ? this.props.member.familyMemberId : null\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.props.hideSpinner();\r\n this.GetAllInfoPayment(this.state.familyMemberId);\r\n \r\n window.scrollTo(0, 0);\r\n }\r\n GetAllInfoPayment = (familyMemberId) => {\r\n axios.get(Config.url + 'api/PaymentInformationApi/GetInfoPaymentByFamilyMemberId?FamilyMemberId=' + familyMemberId).then((res) => {\r\n // handle success\r\n this.setState({\r\n AdminStatistics: res.data[0]\r\n })\r\n }).catch((error) => {\r\n console.log(error.response);\r\n });\r\n };\r\n \r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n

موجودی :

\r\n
\r\n {this.state.AdminStatistics && toCurrency((this.state.AdminStatistics.allAmount))}\r\n
\r\n
\r\n
\r\n\r\n

تعداد وام های پرداختی:

\r\n \r\n
\r\n {this.state.AdminStatistics && toCurrency(this.state.AdminStatistics.allLoan)}\r\n
\r\n
\r\n
\r\n \r\n

مبلغ کل وام های پرداختی:

\r\n
\r\n {this.state.AdminStatistics && toCurrency((this.state.AdminStatistics.allLoanAmount))}\r\n
\r\n
\r\n
\r\n \r\n

مبلغ کل اقساط پرداختی:

\r\n
\r\n {this.state.AdminStatistics && toCurrency((this.state.AdminStatistics.allLoanPaymentAmount))}\r\n
\r\n
\r\n
\r\n \r\n

مبلغ کل دیرکرد پرداختی:

\r\n
\r\n {this.state.AdminStatistics && toCurrency((this.state.AdminStatistics.allPymentDelay))}\r\n
\r\n
\r\n
\r\n

کل وام های تسویه نشده:

\r\n \r\n
\r\n {this.state.AdminStatistics && toCurrency((this.state.AdminStatistics.reamainLoanNotPaying))}\r\n
\r\n
\r\n
\r\n

موجودی قابل برداشت:

\r\n \r\n
\r\n {this.state.AdminStatistics && toCurrency((this.state.AdminStatistics.allAmountNow))}\r\n
\r\n
\r\n
\r\n

مبلغ واريزی اين ماه:

\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default UserDashboard;","import React from 'react';\r\nimport axios from \"axios\";\r\nimport Config, { toPersianNumbers, toCurrency, toEnglishNumbers, ShowCatchError } from \"../../Config\";\r\nimport { Table } from \"../Shared/Table\"; \r\nimport './Manager.css';\r\nclass Manager extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n //refs\r\n\r\n //states\r\n this.state = {\r\n firstName: \"\",\r\n lastName: \"\",\r\n checkNumber: \"\",\r\n price: \"\",\r\n checkNumber2: \"\",\r\n checkNumber3: \"\",\r\n comment:\"\",\r\n errors: [],\r\n \r\n SaveMode: 'Add',\r\n tableSearchValue: \"\",\r\n \r\n Managers: [],\r\n \r\n\r\n }\r\n\r\n }\r\n\r\n componentDidMount() {\r\n this.props.hideSpinner();\r\n \r\n this.AllManager();\r\n }\r\n\r\n handleFocus = (event) => event.target.select();\r\n \r\n AllManager = () => {\r\n this.props.showSpinner();\r\n axios.get(Config.url + 'api/ManagerApi/GetAllManager').then((res) => {\r\n // handle success\r\n this.props.hideSpinner();\r\n this.setState({\r\n Managers: res.data,\r\n \r\n });\r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n\r\n \r\n\r\n validateInputData = () => {\r\n\r\n let error = [];\r\n\r\n if (this.state.firstName.length === 0 || this.state.firstName.trim() === '' || this.state.firstName === null || this.state.firstName === undefined) {\r\n error.push('لطفا نام را وارد کنید');\r\n }\r\n if (this.state.lastName.length === 0 || this.state.lastName.trim() === '' || this.state.lastName === null || this.state.lastName === undefined) {\r\n error.push('لطفا نام خانوادگی وارد کنید');\r\n }\r\n if (this.state.checkNumber.length === 0 || this.state.checkNumber === \"0\" || this.state.checkNumber===0) {\r\n error.push('لطفا شماره چک را وارد کنید');\r\n }\r\n if (this.state.price.length === 0 || this.state.price === \"0\" || this.state.price === 0) {\r\n error.push('لطفا مبلغ را وارد کنید');\r\n }\r\n\r\n if (error.length === 0) {\r\n this.setState({ errors: error });\r\n //submit form\r\n this.AddManager()\r\n\r\n } else {\r\n this.props.showAlert(\"لطفا تمامی اطلاعات درخواست شده را به درستی وارد کنید!\");\r\n this.setState({ errors: error })\r\n\r\n }\r\n };\r\n Reset = (Isclear) => {\r\n\r\n this.setState({\r\n firstName: \"\",\r\n lastName: \"\",\r\n checkNumber: \"\",\r\n checkNumber2: \"\",\r\n checkNumber3: \"\",\r\n comment:\"\",\r\n price: \"\",\r\n errors: [],\r\n \r\n ManagerId: null,\r\n SaveMode: 'Add',\r\n\r\n });\r\n if (Isclear === 0) { this.setState({ Managers: [] }); }\r\n };\r\n AddManager = () => {\r\n let api = 'AddManager/';\r\n let desc = \"ثبت با موفقیت انجام شد!\";\r\n let addModel;\r\n if (this.state.SaveMode === 'Add') {\r\n addModel = {\r\n\r\n \r\n Firstname: this.state.firstName,\r\n LastName: this.state.lastName,\r\n CheckNumber: (this.state.checkNumber),\r\n Price: (this.state.price),\r\n CheckNumber2: (this.state.checkNumber2),\r\n CheckNumber3: (this.state.checkNumber3),\r\n Comment: (this.state.comment),\r\n\r\n }\r\n } else {\r\n api = 'EditManager/';\r\n desc = \"ویرایش با موفقیت انجام شد!\";\r\n addModel = {\r\n\r\n Firstname: this.state.firstName,\r\n LastName: this.state.lastName,\r\n CheckNumber: (this.state.checkNumber),\r\n Price: (this.state.price),\r\n CheckNumber2: (this.state.checkNumber2),\r\n CheckNumber3: (this.state.checkNumber3),\r\n Comment: (this.state.comment),\r\n ManagerId: this.state.ManagerId,\r\n Id: this.state.ManagerId,\r\n\r\n }\r\n }\r\n axios.post(Config.url + 'api/ManagerApi/' + api, addModel,\r\n )\r\n .then((res) => {\r\n // handle success\r\n if (res.status === 200) {\r\n this.props.hideSpinner();\r\n this.props.showAlert(desc, \"success\");\r\n this.Reload();\r\n \r\n }\r\n\r\n })\r\n .catch((error) => {\r\n\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n\r\n\r\n };\r\n replaceData = (Item) => {\r\n\r\n\r\n this.setState({\r\n firstName: Item.firstName,\r\n lastName: Item.lastName,\r\n checkNumber: Item.checkNumber,\r\n price: Item.price,\r\n checkNumber2: Item.checkNumber2,\r\n checkNumber3: Item.checkNumber3,\r\n comment: Item.comment,\r\n ManagerId: Item.id,\r\n SaveMode: 'Edit',\r\n });\r\n\r\n this.props.showToaster(\"با موفقیت جایگزین شد\", \"success\");\r\n };\r\n Delete = () => {\r\n axios.post(Config.url + 'api/ManagerApi/DeleteManager?id=' + this.state.ManagerId, null).then((res) => {\r\n // handle success\r\n\r\n this.Reload();\r\n\r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n Reload = () => {\r\n\r\n this.Reset(0);\r\n this.AllManager();\r\n };\r\n\r\n\r\n //api\r\n\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n\r\n

مدیریت گروه ها

\r\n\r\n
\r\n \r\n\r\n
\r\n \r\n this.setState({ firstName: toEnglishNumbers(e.target.value) })} />\r\n
\r\n\r\n \r\n
\r\n

نام خانوادگی

\r\n this.setState({ lastName: toEnglishNumbers(e.target.value) })} />\r\n
\r\n
\r\n

چک اول

\r\n this.setState({ checkNumber: toEnglishNumbers(e.target.value) })} />\r\n
\r\n \r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n

چک دوم

\r\n this.setState({ checkNumber2: toEnglishNumbers(e.target.value) })} />\r\n
\r\n
\r\n

چک سوم

\r\n this.setState({ checkNumber3: toEnglishNumbers(e.target.value) })} />\r\n
\r\n
\r\n

مجموع مبلغ ضمانت

\r\n this.setState({ price: toEnglishNumbers(e.target.value.replace(/[^0-9۰-۹.]/g, \"\")) })} />\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n
\r\n

توضیحات

\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n
    {this.state.errors.length === 0 ? \"\" :\r\n (this.state.errors.map((error, i) =>\r\n
  • {error}
  • ))}\r\n
\r\n
\r\n\r\n\r\n {\r\n return toPersianNumbers(x.firstName)\r\n },\r\n \r\n x => {\r\n return toPersianNumbers(x.lastName)\r\n },\r\n x => {\r\n return toPersianNumbers(x.checkNumber)\r\n },\r\n x => {\r\n return toPersianNumbers(x.checkNumber2)\r\n },\r\n x => {\r\n return toPersianNumbers(x.checkNumber3)\r\n },\r\n x => {\r\n return toCurrency(x.price)\r\n },\r\n x => {\r\n return toPersianNumbers(x.regDate)\r\n },\r\n x => {\r\n return toPersianNumbers(x.regTime)\r\n },\r\n\r\n\r\n\r\n x => {\r\n return \r\n },\r\n x => {\r\n return \r\n },\r\n\r\n ]} />\r\n\r\n
\r\n\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Manager;","import React, {useEffect, useRef, useState} from \"react\";\r\nimport \"./Dropdown.css\"\r\nimport {toEnglishNumbers, toPersianNumbers} from \"../../Config\";\r\n\r\n\r\nexport const Dropdown = ({title, list, item, itemName, onChange, disabled = false, styles = \"form-item\", withButton = false, errors = false}) => {\r\n\r\n const [showOptions, setShowOptions] = useState(false);\r\n const [search, setSearch] = useState(\"\");\r\n const dropdown = useRef();\r\n\r\n useEffect(() => {\r\n document.addEventListener('click', handleClick);\r\n }, []);\r\n\r\n const handleClick = (e) => {\r\n if (dropdown.current != null && !dropdown.current.contains(e.target)) {\r\n setShowOptions(false)\r\n }\r\n };\r\n\r\n\r\n return (\r\n
\r\n \r\n
\r\n {\r\n setShowOptions(!showOptions);\r\n setSearch(\"\");\r\n }}>\r\n {item !== null && item !== \"\" ? toPersianNumbers(itemName(item)) : }\r\n \r\n {(showOptions && disabled === false) &&
\r\n setSearch(toEnglishNumbers(e.target.value))}\r\n className=\"search-bar\" type=\"text\" autoComplete=\"off\"\r\n placeholder=\"جستجو کنید...\" autoFocus/>\r\n
\r\n {list === null ?
  • در حال دریافت\r\n اطلاعات...
  • : (list.map((item, i) =>(itemName(item) !== null && itemName(item).toLowerCase().includes(search.toLowerCase())) &&\r\n
  • {\r\n onChange(item);\r\n setShowOptions(false);\r\n }}>{toPersianNumbers(itemName(item))}
  • ))}\r\n\r\n
    \r\n
    }\r\n\r\n
    \r\n {withButton &&\r\n
    \r\n );\r\n};\r\n\r\n","import React from 'react';\r\nimport axios from \"axios\";\r\nimport Config, { toPersianNumbers, toCurrency, toEnglishNumbers, ShowCatchError } from \"../../Config\";\r\nimport { Table } from \"../Shared/Table\"; \r\nimport './FamilyMember.css';\r\nimport { Dropdown } from \"../Shared/Dropdown\";\r\nimport ChangePassword from \"../../components/Member/ChangePassword\";\r\nimport { Modal } from '../Shared/Modal';\r\nclass FamilyMember extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n //refs\r\n\r\n //states\r\n this.state = {\r\n firstName: \"\",\r\n lastName: \"\",\r\n tel: \"\",\r\n mainAmount: \"\",\r\n nationalId: \"\",\r\n NationId: \"\",\r\n errors: [], \r\n SaveMode: 'Add',\r\n tableSearchValue: \"\",\r\n \r\n FamilyMembers: [],\r\n Managers: [],\r\n Manager: null,\r\n userName: \"\",\r\n passWord: \"\",\r\n email:\"\",\r\n FamilyMemberId: null,\r\n sahm: 0,\r\n IsActive: false,\r\n TasviyePay: \"\",\r\n StatusSearchTypes: [\r\n { value: null, text: 'انتخاب کنید' },\r\n { value: 1, text: 'دریافت بابت تصویه' },\r\n { value: 2, text: 'پرداخت بايت تصویه' },\r\n \r\n ]\r\n ,\r\n selectedStatusSearchType: { value: null, text: 'انتخاب کنید' },\r\n ChangePassModal: false,\r\n showNewMemberModal: false,\r\n newMemberUsername: null,\r\n newMemberPassword: null,\r\n }\r\n /*console.log('test');*/\r\n }\r\n\r\n componentDidMount() {\r\n this.props.hideSpinner();\r\n this.selectManager();\r\n this.AllFamilyMember();\r\n }\r\n selectManager = () => { \r\n this.props.showSpinner(); \r\n axios.get(Config.url + 'api/ManagerApi/GetAllManager')\r\n .then((res) => {\r\n // handle success\r\n if (res.status === 200) {\r\n this.props.hideSpinner();\r\n this.setState({\r\n Managers: res.data,\r\n\r\n })\r\n\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n handleFocus = (event) => event.target.select();\r\n \r\n AllFamilyMember = () => {\r\n this.props.showSpinner();\r\n axios.get(Config.url + 'api/FamilyMemberApi/GetAllFamilyMember').then((res) => {\r\n // handle success\r\n this.props.hideSpinner();\r\n this.setState({\r\n FamilyMembers: res.data,\r\n \r\n });\r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n\r\n \r\n\r\n validateInputData = () => {\r\n let error = [];\r\n if (this.state.firstName.length === 0 || this.state.firstName.trim() === '' || this.state.firstName === null || this.state.firstName === undefined) {\r\n error.push('لطفا نام را وارد کنید');\r\n }\r\n if (this.state.lastName.length === 0 || this.state.lastName.trim() === '' || this.state.lastName === null || this.state.lastName === undefined) {\r\n error.push('لطفا نام خانوادگی وارد کنید');\r\n }\r\n //if (this.state.SaveMode === 'Add' && (this.state.email.length === 0 || this.state.email.trim() === '' || this.state.email === null || this.state.email === undefined)) {\r\n // error.push('لطفا ایمیل را وارد کنید');\r\n //}\r\n // if ( this.state.SaveMode === 'Add' && (this.state.userName.length === 0 || this.state.userName.trim() === '' || this.state.userName === null || this.state.userName === undefined)) {\r\n // error.push('لطفا نام کاربری را وارد کنید');\r\n // }\r\n if ( this.state.SaveMode === 'Add' && (this.state.passWord.length === 0 || this.state.passWord.trim() === '' || this.state.passWord === null || this.state.passWord === undefined)) {\r\n error.push('لطفا رمز کاربری را وارد کنید');\r\n }\r\n \r\n if (this.state.mainAmount.length === 0 || this.state.mainAmount === \"0\" || this.state.mainAmount === 0) {\r\n error.push('لطفا مبلغ را وارد کنید');\r\n }\r\n if (this.state.Manager === null || this.state.Manager === undefined) {\r\n error.push('لطفا گروه اعضا را انتخاب کنید');\r\n }\r\n\r\n if (error.length === 0) {\r\n this.setState({ errors: error });\r\n //submit form\r\n console.log(\"Call AddFamilyMember\");\r\n this.AddFamilyMember()\r\n\r\n } else {\r\n this.props.showAlert(\"لطفا تمامی اطلاعات درخواست شده را به درستی وارد کنید!\");\r\n this.setState({ errors: error })\r\n\r\n }\r\n };\r\n Reset = (Isclear) => {\r\n\r\n this.setState({\r\n firstName: \"\",\r\n lastName: \"\",\r\n tel: \"\",\r\n mainAmount: \"\",\r\n nationalId: \"\", \r\n userName: \"\",\r\n passWord: \"\",\r\n email: \"\",\r\n errors: [],\r\n Manager: null,\r\n FamilyMemberId: null,\r\n sahm:0,\r\n SaveMode: 'Add',\r\n IsActive: false,\r\n TasviyePay: \"\",\r\n selectedStatusSearchType: { value: null, text: 'انتخاب کنید' },\r\n });\r\n if (Isclear === 0) { this.setState({ FamilyMembers: [] }); }\r\n };\r\n AddFamilyMember = () => {\r\n let api = 'AddFamilyMember/';\r\n let desc = \"ثبت با موفقیت انجام شد!\";\r\n let addModel;\r\n if (this.state.SaveMode === 'Add') {\r\n addModel = { \r\n Firstname: this.state.firstName,\r\n LastName: this.state.lastName,\r\n Tel: this.state.tel,\r\n MainAmount: (this.state.mainAmount),\r\n NationalId: this.state.nationalId,\r\n Email: this.state.email,\r\n PassWord: this.state.passWord,\r\n UserName: this.state.nationalId,\r\n ManagerId: this.state.Manager.id,\r\n Sahm: this.state.sahm,\r\n IsActive: this.state.IsActive,\r\n TasviyePay: this.state.TasviyePay,\r\n TasviyeType: this.state.selectedStatusSearchType.value,\r\n }\r\n } else {\r\n api = 'EditFamilyMember/';\r\n desc = \"ویرایش با موفقیت انجام شد!\";\r\n addModel = {\r\n\r\n Email: this.state.email,\r\n Firstname: this.state.firstName,\r\n LastName: this.state.lastName,\r\n Tel: this.state.tel ,\r\n MainAmount: (this.state.mainAmount),\r\n NationalId: this.state.nationalId,\r\n PassWord: this.state.passWord,\r\n UserName: this.state.nationalId,\r\n FamilyMemberId: this.state.FamilyMemberId,\r\n Id: this.state.FamilyMemberId,\r\n ManagerId: this.state.Manager.id,\r\n Sahm: this.state.sahm,\r\n IsActive: this.state.IsActive,\r\n TasviyePay: this.state.TasviyePay,\r\n TasviyeType: this.state.selectedStatusSearchType.value,\r\n }\r\n }\r\n axios.post(Config.url + 'api/FamilyMemberApi/' + api, addModel,\r\n )\r\n .then((res) => {\r\n // handle success\r\n if (res.status === 200) {\r\n this.props.hideSpinner();\r\n this.props.showAlert(desc, \"success\");\r\n this.Reload();\r\n \r\n }\r\n\r\n })\r\n .catch((error) => {\r\n\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n\r\n\r\n };\r\n replaceData = (Item) => {\r\n console.log(Item);\r\n if (Item.managerId !== null && Item.managerId !==undefined) {\r\n this.setState({\r\n firstName: Item.firstName,\r\n lastName: Item.lastName,\r\n nationalId: Item.nationalId,\r\n mainAmount: Item.mainAmount,\r\n tel: Item.tel,\r\n //email: Item.email,\r\n //userName: Item.userName,\r\n //passWord: Item.passWord,\r\n FamilyMemberId: Item.id,\r\n sahm: Item.sahm,\r\n IsActive: Item.isActive,\r\n TasviyePay: Item.tasviyePay,\r\n SaveMode: 'Edit',\r\n selectedStatusSearchType: this.state.StatusSearchTypes.filter((customer) => customer.value === Item.tasviyeType ? customer : null)[0]\r\n\r\n });\r\n this.state.Managers.map((v) => {\r\n if (v.id === Item.managerId) {\r\n this.setState({\r\n Manager: v\r\n })\r\n }\r\n return null\r\n });\r\n this.props.showToaster(\"با موفقیت جایگزین شد\", \"success\");\r\n }\r\n else\r\n this.props.showToaster(\"این رکورد قابل ویرایش نمیباشد\", \"error\");\r\n\r\n };\r\n Delete = () => {\r\n axios.post(Config.url + 'api/FamilyMemberApi/DeleteFamilyMember?id=' + this.state.FamilyMemberId, null).then((res) => {\r\n // handle success\r\n\r\n this.Reload();\r\n\r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n \r\n //ChangePass = (id) => {\r\n // let SearchModel = {\r\n // Item1: id,\r\n // Item2: null\r\n // };\r\n // axios.post(Config.url + 'api/FamilyMemberApi/ChangePassword?username=', SearchModel).then((res) => {\r\n // // handle success\r\n // if (res.status === 200) {\r\n // this.props.showAlert(\"رمز عبور با موفقیت تغییر کرد\", 'success');\r\n // //this.Reload();\r\n // }\r\n // }).catch((error) => {\r\n // this.props.hideSpinner();\r\n // this.props.showAlert(ShowCatchError(error));\r\n // console.log(error.response);\r\n // });\r\n //};\r\n CreateUser = (Id,NationalId) => {\r\n let SearchModel = {\r\n Item1: Id,\r\n Item2: NationalId\r\n };\r\n /* axios.post(Config.url + 'api/FamilyMemberApi/CreateUser?id=' + this.state.FamilyMemberId, null).then((res) => {*/\r\n \r\n axios.post(Config.url + 'api/FamilyMemberApi/CreateUser', SearchModel,).then((res) => {\r\n // handle success\r\n if (res.status === 200) {\r\n this.props.hideSpinner();\r\n this.props.showAlert(\"ساخت كاربر با موفقیت انجام شد.\", \"success\");\r\n console.log(res)\r\n this.setState({\r\n newMemberUsername: res.data.userName,\r\n newMemberPassword: res.data.password,\r\n showNewMemberModal: true\r\n });\r\n //this.Reload();\r\n\r\n }\r\n\r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n Reload = () => {\r\n\r\n this.Reset(0);\r\n this.AllFamilyMember();\r\n };\r\n\r\n\r\n //api\r\n\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n\r\n

    اعضا

    \r\n\r\n
    \r\n \r\n\r\n
    \r\n \r\n this.setState({ firstName: toEnglishNumbers(e.target.value) })} />\r\n
    \r\n\r\n \r\n
    \r\n

    نام خانوادگی

    \r\n this.setState({ lastName: toEnglishNumbers(e.target.value) })} />\r\n
    \r\n
    \r\n

    شماره ملی

    \r\n this.setState({ nationalId: toEnglishNumbers(e.target.value.replace(/[^0-9۰-۹.]/g, \"\")) })} />\r\n
    \r\n \r\n
    this.setState({ IsActive: !this.state.IsActive })}>\r\n \r\n

    فعال است

    \r\n
    \r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n

    شماره تلفن

    \r\n this.setState({ tel: toEnglishNumbers(e.target.value.replace(/[^0-9۰-۹.]/g, \"\")) })} />\r\n
    \r\n
    \r\n

    موجودی اولیه

    \r\n this.setState({ mainAmount: toEnglishNumbers(e.target.value.replace(/[^0-9۰-۹.]/g, \"\")) })} />\r\n
    \r\n\r\n
    \r\n

    تعداد سهم

    \r\n this.setState({ sahm: toEnglishNumbers(e.target.value.replace(/[^0-9۰-۹.]/g, \"\")) })} />\r\n
    \r\n item.firstName + ' ' + item.lastName}\r\n onChange={(item) => this.setState({ Manager: item })}\r\n styles=\"form-item-with-button\"\r\n withButton={true}\r\n />\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    مبلغ تصویه

    \r\n this.setState({ TasviyePay: toEnglishNumbers(e.target.value.replace(/[^0-9۰-۹.]/g, \"\")) })} />\r\n
    \r\n item.text}\r\n onChange={(item) => this.setState({\r\n selectedStatusSearchType: item,\r\n \r\n })}\r\n styles=\"form-item\"\r\n\r\n\r\n />\r\n
    \r\n \r\n
    \r\n {this.state.SaveMode ==='Add' &&\r\n
    \r\n\r\n\r\n
    \r\n \r\n this.setState({ userName: toEnglishNumbers(e.target.value) })} />\r\n
    \r\n\r\n\r\n
    \r\n

    رمز کاربری

    \r\n this.setState({ passWord: toEnglishNumbers(e.target.value) })} />\r\n
    \r\n {/*
    */}\r\n {/*

    ایمیل

    */}\r\n {/* this.setState({ email: toEnglishNumbers(e.target.value) })} />*/}\r\n {/*
    */}\r\n \r\n\r\n
    \r\n }\r\n
    \r\n \r\n \r\n\r\n
    \r\n\r\n
    \r\n
      {this.state.errors.length === 0 ? \"\" :\r\n (this.state.errors.map((error, i) =>\r\n
    • {error}
    • ))}\r\n
    \r\n
    \r\n\r\n\r\n {\r\n return toPersianNumbers(x.firstName)\r\n },\r\n\r\n x => {\r\n return toPersianNumbers(x.lastName)\r\n },\r\n x => {\r\n return (x.managerFirstName !== null && x.managerFirstName !== undefined) ? toPersianNumbers(x.managerFirstName) + ' ' + toPersianNumbers(x.managerLastName) : null\r\n },\r\n x => {\r\n return toPersianNumbers(x.tel)\r\n },\r\n x => {\r\n return toPersianNumbers(x.nationalId)\r\n },\r\n x => {\r\n return toCurrency(x.mainAmount)\r\n },\r\n x => {\r\n return toPersianNumbers(x.sahm)\r\n },\r\n x => {\r\n return toPersianNumbers(x.regDate)\r\n },\r\n x => {\r\n return toPersianNumbers(x.regTime)\r\n },\r\n \r\n\r\n x => {\r\n return (x.isActive === \"true\" || x.isActive === true) ? \"فعال\" : \"غیر فعال\"\r\n },\r\n\r\n x => {\r\n return toPersianNumbers(x.tasviyePay)\r\n },\r\n x => {\r\n switch (x.tasviyeType) {\r\n\r\n case 1:\r\n return 'دریافت بابت تصویه';\r\n case 2:\r\n return 'پرداخت بايت تصویه';\r\n \r\n default:\r\n }\r\n },\r\n x => {\r\n \r\n return \r\n \r\n },\r\n x => {\r\n \r\n return \r\n \r\n },\r\n x => {\r\n return \r\n },\r\n \r\n x => {\r\n //{\r\n // (x.managerId !== null && x.managerId !== undefined) &&\r\n return \r\n\r\n //}\r\n },\r\n\r\n ]} />\r\n\r\n
    \r\n\r\n \r\n {/*ChangePassModal*/}\r\n {this.state.ChangePassModal &&\r\n \r\n this.setState({ ChangePassModal: false } )}>\r\n \r\n \r\n
    \r\n }\r\n />}\r\n \r\n\r\n {/*New Member Modal*/}\r\n {this.state.showNewMemberModal &&\r\n \r\n this.setState({\r\n showNewMemberModal: false,\r\n newMemberUsername: null,\r\n newMemberPassword: null\r\n })}>\r\n \r\n\r\n

    اطلاعات کاربری

    \r\n\r\n
    \r\n

    \r\n

    نام کاربری:



    \r\n

    {this.state.newMemberUsername}

    \r\n

    \r\n

    کلمه عبور:



    \r\n

    {this.state.newMemberPassword}

    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n }\r\n />}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default FamilyMember;","import React from 'react';\r\nimport axios from \"axios\";\r\nimport Config, { toPersianNumbers, toCurrency, toEnglishNumbers, ShowCatchError, convertDate, reverseDate, } from \"../../Config\";\r\nimport { Table } from \"../Shared/Table\";\r\nimport './LoanInformation.css';\r\nimport { Dropdown } from \"../Shared/Dropdown\";\r\n\r\nimport DatePicker, { utils } from \"react-modern-calendar-datepicker\";\r\nclass LoanInformation extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n //refs\r\n\r\n //states\r\n this.state = {\r\n loanPrice: \"\",\r\n installmentPrice: \"\",\r\n loanNumber: \"\",\r\n mainAmount: \"\",\r\n nationalId: \"\",\r\n errors: [],\r\n SaveMode: 'Add',\r\n tableSearchValue: \"\",\r\n\r\n Managers: [],\r\n Manager: null,\r\n LoanInformations: [],\r\n FamilyMembers: [],\r\n FamilyMember: null,\r\n PayDateDisplay: utils('fa').getToday(),\r\n PayDate: convertDate(utils('fa').getToday()),\r\n startDateDisplay: utils('fa').getToday(),\r\n startDate: convertDate(utils('fa').getToday()),\r\n endDateDisplay: utils('fa').getToday(),\r\n endDate: convertDate(utils('fa').getToday()),\r\n isFinish: false,\r\n }\r\n\r\n }\r\n\r\n componentDidMount() {\r\n this.props.hideSpinner();\r\n this.AllManager();\r\n this.GetLastSetting();\r\n this.AllLoanInformation();\r\n }\r\n \r\n selectFamilyMember = async(ManagerId) => {\r\n this.props.showSpinner();\r\n let response = [];\r\n await axios.get(Config.url + 'api/FamilyMemberApi/GetFamilyMemberByManagerId?ManagerId=' + ManagerId)\r\n .then((res) => {\r\n // handle success\r\n if (res.status === 200) {\r\n this.props.hideSpinner();\r\n //this.setState({\r\n // FamilyMembers: res.data,\r\n\r\n //})\r\n response = res.data;\r\n }\r\n \r\n })\r\n .catch((error) => {\r\n\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n return response;\r\n };\r\n \r\n handleFocus = (event) => event.target.select();\r\n\r\n AllLoanInformation = () => {\r\n this.props.showSpinner();\r\n axios.get(Config.url + 'api/LoanInformationApi/GetAllLoanInformation').then((res) => {\r\n // handle success\r\n this.props.hideSpinner();\r\n this.setState({\r\n LoanInformations: res.data,\r\n\r\n });\r\n \r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n }; \r\n validateInputData = () => {\r\n\r\n let error = [];\r\n\r\n if (this.state.loanPrice.length === 0) {\r\n error.push('لطفا مبلغ وام را وارد کنید');\r\n }\r\n if (this.state.installmentPrice.length === 0) {\r\n error.push('لطفا مبلغ قسط وارد کنید');\r\n }\r\n if (this.state.loanNumber.length === 0) {\r\n error.push('لطفا تعداد قسط را وارد کنید');\r\n }\r\n if (this.state.FamilyMember === null || this.state.FamilyMember === undefined) {\r\n error.push('لطفا اعضا را انتخاب کنید');\r\n }\r\n\r\n if (error.length === 0) {\r\n this.setState({ errors: error });\r\n //submit form\r\n this.AddLoanInformation()\r\n\r\n } else {\r\n this.props.showAlert(\"لطفا تمامی اطلاعات درخواست شده را به درستی وارد کنید!\");\r\n this.setState({ errors: error })\r\n\r\n }\r\n };\r\n Reset = (Isclear) => {\r\n\r\n this.setState({\r\n loanPrice: \"\",\r\n installmentPrice: \"\",\r\n loanNumber: \"\",\r\n FamilyMembers:[],\r\n FamilyMember:null,\r\n Manager:null,\r\n errors: [],\r\n isFinish: false,\r\n LoanInformationId: null,\r\n SaveMode: 'Add',\r\n PayDateDisplay: utils('fa').getToday(),\r\n PayDate: convertDate(utils('fa').getToday()),\r\n startDateDisplay: utils('fa').getToday(),\r\n startDate: convertDate(utils('fa').getToday()),\r\n endDateDisplay: utils('fa').getToday(),\r\n endDate: convertDate(utils('fa').getToday()),\r\n });\r\n if (Isclear === 0) { this.setState({ LoanInformations: [] }); }\r\n this.GetLastSetting();\r\n };\r\n AddLoanInformation = () => {\r\n let api = 'AddLoanInformation/';\r\n let desc = \"ثبت با موفقیت انجام شد!\";\r\n let addModel;\r\n if (this.state.SaveMode === 'Add') {\r\n addModel = {\r\n LoanPrice: this.state.loanPrice,\r\n InstallmentPrice: this.state.installmentPrice,\r\n LoanNumber: (this.state.loanNumber),\r\n PayDate: this.state.PayDate ,\r\n StartDate: this.state.startDate ,\r\n EndDate: this.state.endDate ,\r\n FamilyMemberId: this.state.FamilyMember.id,\r\n Type: this.state.isFinish\r\n \r\n }\r\n } else {\r\n api = 'EditLoanInformation/';\r\n desc = \"ویرایش با موفقیت انجام شد!\";\r\n addModel = {\r\n\r\n \r\n LoanPrice: this.state.loanPrice,\r\n InstallmentPrice: this.state.installmentPrice,\r\n LoanNumber: (this.state.loanNumber),\r\n PayDate: this.state.PayDate,\r\n StartDate: this.state.startDate,\r\n EndDate: this.state.endDate,\r\n FamilyMemberId: this.state.FamilyMember.id,\r\n Id: this.state.LoanInformationId,\r\n Type: this.state.isFinish\r\n }\r\n }\r\n axios.post(Config.url + 'api/LoanInformationApi/' + api, addModel,\r\n )\r\n .then((res) => {\r\n // handle success\r\n if (res.status === 200) {\r\n this.props.hideSpinner();\r\n this.props.showAlert(desc, \"success\");\r\n this.Reload();\r\n\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n\r\n\r\n };\r\n replaceData = (Item) => {\r\n \r\n this.setState({\r\n loanPrice: Item.loanPrice,\r\n installmentPrice: Item.installmentPrice,\r\n nationalId: Item.nationalId,\r\n mainAmount: Item.mainAmount,\r\n loanNumber: Item.loanNumber,\r\n \r\n LoanInformationId: Item.id,\r\n SaveMode: 'Edit',\r\n\r\n PayDate: Item.payDate_shamsiDate ,\r\n PayDateDisplay: reverseDate(Item.payDate_shamsiDate),\r\n startDate: Item.startDate_shamsiDate,\r\n startDateDisplay: reverseDate(Item.startDate_shamsiDate),\r\n endDate: Item.endDate_shamsiDate,\r\n endDateDisplay: reverseDate(Item.endDate_shamsiDate),\r\n\r\n \r\n });\r\n this.state.Managers.map((v) => {\r\n if (v.id === Item.managerId) {\r\n this.setState({\r\n Manager: v\r\n })\r\n }\r\n return null\r\n });\r\n if (Item.managerId !== null || Item.managerId !== undefined) {\r\n \r\n this.selectFamilyMember(Item.managerId).then((res) => {\r\n this.setState({\r\n FamilyMembers: res\r\n });\r\n this.state.FamilyMembers.map((v) => {\r\n if (v.id === Item.familyMemberId) {\r\n this.setState({\r\n FamilyMember: v\r\n })\r\n }\r\n return null\r\n });\r\n })\r\n\r\n \r\n }\r\n this.props.showToaster(\"با موفقیت جایگزین شد\", \"success\");\r\n };\r\n Delete = () => {\r\n axios.post(Config.url + 'api/LoanInformationApi/DeleteLoanInformation?id=' + this.state.LoanInformationId, null).then((res) => {\r\n // handle success\r\n\r\n this.Reload();\r\n\r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n Reload = () => {\r\n\r\n this.Reset(0);\r\n this.AllLoanInformation();\r\n this.GetLastSetting();\r\n };\r\n AllManager = () => {\r\n this.props.showSpinner();\r\n axios.get(Config.url + 'api/ManagerApi/GetAllManager').then((res) => {\r\n // handle success\r\n this.props.hideSpinner();\r\n this.setState({\r\n Managers: res.data, \r\n });\r\n \r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n CallFamilymember = (managerId) => {\r\n if (managerId !== null && managerId !== undefined) {\r\n this.selectFamilyMember(managerId).then((res) => {\r\n this.setState({\r\n FamilyMembers: res\r\n });\r\n\r\n })\r\n }\r\n }\r\n GetLastSetting = () => {\r\n this.props.showSpinner();\r\n axios.get(Config.url + 'api/SettingApi/GetLastSetting').then((res) => {\r\n // handle success\r\n this.props.hideSpinner();\r\n this.setState({\r\n loanPrice: res.data.loanAmount,\r\n installmentPrice: res.data.installmentAmount,\r\n loanNumber: res.data.installmentNumber,\r\n\r\n });\r\n\r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n //api\r\n\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n\r\n

    اطلاعات وام

    \r\n\r\n
    \r\n\r\n\r\n
    \r\n \r\n this.setState({ loanPrice: toEnglishNumbers(e.target.value.replace(/[^0-9۰-۹.]/g, \"\")) })} />\r\n
    \r\n\r\n\r\n
    \r\n

    مبلغ قسط

    \r\n this.setState({ installmentPrice: toEnglishNumbers(e.target.value.replace(/[^0-9۰-۹.]/g, \"\")) })} />\r\n
    \r\n
    \r\n

    تعداد قسط

    \r\n this.setState({ loanNumber: toEnglishNumbers(e.target.value.replace(/[^0-9۰-۹.]/g, \"\")) })} />\r\n
    \r\n \r\n\r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n \r\n {\r\n this.setState({\r\n PayDateDisplay: newDate,\r\n PayDate: convertDate(newDate),\r\n });\r\n }}\r\n inputPlaceholder=\"لطفا یک تاریخ انتخاب کنید\"\r\n inputClassName=\"date-picker\"\r\n shouldHighlightWeekends\r\n locale=\"fa\"\r\n />\r\n
    \r\n\r\n \r\n
    \r\n \r\n {\r\n this.setState({\r\n startDateDisplay: newDate,\r\n startDate: convertDate(newDate),\r\n });\r\n }}\r\n inputPlaceholder=\"لطفا یک تاریخ انتخاب کنید\"\r\n inputClassName=\"date-picker\"\r\n shouldHighlightWeekends\r\n locale=\"fa\"\r\n />\r\n
    \r\n
    \r\n \r\n {\r\n this.setState({\r\n endDateDisplay: newDate,\r\n endDate: convertDate(newDate),\r\n });\r\n }}\r\n inputPlaceholder=\"لطفا یک تاریخ انتخاب کنید\"\r\n inputClassName=\"date-picker\"\r\n shouldHighlightWeekends\r\n locale=\"fa\"\r\n />\r\n
    \r\n\r\n\r\n
    \r\n\r\n \r\n
    \r\n
    \r\n item.firstName + ' ' + item.lastName}\r\n onChange={(item) => this.setState({ Manager: item, FamilyMembers: [], FamilyMember: null }, (item !== null && item !== undefined) ?this.CallFamilymember(item.id):null)}\r\n styles=\"form-item-with-button\"\r\n withButton={true}\r\n />\r\n
    \r\n
    \r\n item.firstName + ' ' + item.lastName}\r\n onChange={(item) => this.setState({ FamilyMember: item })}\r\n styles=\"form-item-with-button\"\r\n withButton={true}\r\n />\r\n
    \r\n
    this.setState({ isFinish: !this.state.isFinish })}>\r\n \r\n

    تصویه وام

    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n\r\n
    \r\n\r\n
    \r\n
      {this.state.errors.length === 0 ? \"\" :\r\n (this.state.errors.map((error, i) =>\r\n
    • {error}
    • ))}\r\n
    \r\n
    \r\n\r\n\r\n {\r\n return (x.managerFullName)\r\n },\r\n x => {\r\n return (x.familyMemberFullName)\r\n },\r\n x => {\r\n return toCurrency(x.loanPrice)\r\n },\r\n\r\n x => {\r\n return toCurrency(x.installmentPrice)\r\n },\r\n x => {\r\n return toPersianNumbers(x.loanNumber)\r\n },\r\n x => {\r\n return toPersianNumbers(x.payDate)\r\n },\r\n x => {\r\n return toPersianNumbers(x.startDate)\r\n },\r\n x => {\r\n return toPersianNumbers(x.endDate)\r\n },\r\n x => {\r\n return toPersianNumbers(x.regDate)\r\n },\r\n x => {\r\n return toPersianNumbers(x.regTime)\r\n },\r\n\r\n x => {\r\n return (x.type === \"true\" || x.type === true) ?\"تصویه شده\" :\"تصویه نشده\"\r\n },\r\n\r\n\r\n x => {\r\n return \r\n },\r\n x => {\r\n return \r\n },\r\n\r\n ]} />\r\n\r\n
    \r\n\r\n\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default LoanInformation;","import React from 'react';\r\nimport axios from \"axios\";\r\nimport Config, { toPersianNumbers, toCurrency, toEnglishNumbers, ShowCatchError, convertDate, reverseDate, } from \"../../Config\";\r\nimport { Table } from \"../Shared/Table\";\r\nimport './Setting.css';\r\nimport { Dropdown } from \"../Shared/Dropdown\";\r\n\r\nimport DatePicker, { utils } from \"react-modern-calendar-datepicker\";\r\nclass Setting extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n //refs\r\n\r\n //states\r\n this.state = {\r\n monthlyAmount: \"\",\r\n loanAmount: \"\",\r\n installmentAmount: \"\",\r\n installmentNumber: \"\",\r\n delayInstallment: \"\",\r\n delayMonthly: \"\",\r\n dayPayment: \"\",\r\n \r\n errors: [],\r\n SaveMode: 'Add',\r\n tableSearchValue: \"\",\r\n\r\n Settings: [],\r\n \r\n }\r\n\r\n }\r\n\r\n componentDidMount() {\r\n this.props.hideSpinner();\r\n \r\n this.AllSetting();\r\n }\r\n \r\n handleFocus = (event) => event.target.select();\r\n\r\n AllSetting = () => {\r\n this.props.showSpinner();\r\n axios.get(Config.url + 'api/SettingApi/GetAllSetting').then((res) => {\r\n // handle success\r\n this.props.hideSpinner();\r\n this.setState({\r\n Settings: res.data,\r\n\r\n });\r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n\r\n\r\n\r\n validateInputData = () => {\r\n\r\n let error = [];\r\n\r\n if (this.state.monthlyAmount.length === 0 || this.state.monthlyAmount === 0|| this.state.monthlyAmount === \"0\" ) {\r\n error.push('لطفا مبلغ ماهیانه را وارد کنید');\r\n }\r\n if (this.state.loanAmount.length === 0 || this.state.loanAmount === 0 || this.state.loanAmount === \"0\") {\r\n error.push('لطفا مبلغ وام را وارد کنید');\r\n }\r\n if (this.state.installmentAmount.length === 0 || this.state.installmentAmount === 0 || this.state.installmentAmount === \"0\" ) {\r\n error.push('لطفا مبلغ قسط را وارد کنید');\r\n }\r\n if (this.state.installmentNumber.length === 0 || this.state.installmentNumber === 0 || this.state.installmentNumber === \"0\" ) {\r\n error.push('لطفا تعداد اقساط را وارد کنید');\r\n }\r\n if (this.state.delayInstallment.length === 0 || this.state.delayInstallment === 0 || this.state.delayInstallment === \"0\" ) {\r\n error.push('لطفا دیرکرد واریزی ماهیانه را وارد کنید');\r\n }\r\n if (this.state.delayMonthly.length === 0 || this.state.delayMonthly === 0 || this.state.delayMonthly === \"0\" ) {\r\n error.push('لطفا دیرکرد قسط وام را وارد کنید');\r\n }\r\n if (this.state.dayPayment.length === 0 || this.state.dayPayment === \"0\" ) {\r\n error.push('لطفا روز واریزی هر ماه را وارد کنید');\r\n }\r\n \r\n\r\n if (error.length === 0) {\r\n this.setState({ errors: error });\r\n //submit form\r\n this.AddSetting()\r\n\r\n } else {\r\n this.props.showAlert(\"لطفا تمامی اطلاعات درخواست شده را به درستی وارد کنید!\");\r\n this.setState({ errors: error })\r\n\r\n }\r\n };\r\n Reset = (Isclear) => {\r\n\r\n this.setState({\r\n monthlyAmount: \"\",\r\n loanAmount: \"\",\r\n installmentAmount: \"\",\r\n installmentNumber: \"\",\r\n delayInstallment: \"\",\r\n delayMonthly: \"\",\r\n dayPayment: \"\",\r\n //isLoan: false,\r\n errors: [],\r\n\r\n SettingId: null,\r\n SaveMode: 'Add',\r\n \r\n });\r\n if (Isclear === 0) { this.setState({ Settings: [] }); }\r\n };\r\n AddSetting = () => {\r\n let api = 'AddSetting/';\r\n let desc = \"ثبت با موفقیت انجام شد!\";\r\n let addModel;\r\n if (this.state.SaveMode === 'Add') {\r\n addModel = {\r\n MonthlyAmount: this.state.monthlyAmount,\r\n LoanAmount: this.state.loanAmount,\r\n InstallmentAmount: this.state.installmentAmount,\r\n InstallmentNumber: this.state.installmentNumber,\r\n DelayInstallment: this.state.delayInstallment,\r\n DelayMonthly: this.state.delayMonthly,\r\n DayPayment: this.state.dayPayment,\r\n \r\n //isLoan: this.state.isLoan,\r\n }\r\n } else {\r\n api = 'EditSetting/';\r\n desc = \"ویرایش با موفقیت انجام شد!\";\r\n addModel = {\r\n\r\n \r\n MonthlyAmount: this.state.monthlyAmount,\r\n LoanAmount: this.state.loanAmount,\r\n InstallmentAmount: this.state.installmentAmount,\r\n InstallmentNumber: this.state.installmentNumber,\r\n DelayInstallment: this.state.delayInstallment,\r\n DelayMonthly: this.state.delayMonthly,\r\n DayPayment: this.state.dayPayment,\r\n \r\n Id: this.state.SettingId,\r\n //isLoan: this.state.isLoan,\r\n }\r\n }\r\n axios.post(Config.url + 'api/SettingApi/' + api, addModel,\r\n )\r\n .then((res) => {\r\n // handle success\r\n if (res.status === 200) {\r\n this.props.hideSpinner();\r\n this.props.showAlert(desc, \"success\");\r\n this.Reload();\r\n\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n\r\n\r\n };\r\n replaceData = (Item) => {\r\n\r\n\r\n this.setState({\r\n monthlyAmount: Item.monthlyAmount,\r\n loanAmount: Item.loanAmount,\r\n \r\n installmentAmount: Item.installmentAmount,\r\n installmentNumber: Item.installmentNumber,\r\n delayInstallment: Item.delayInstallment,\r\n delayMonthly: Item.delayMonthly,\r\n dayPayment: Item.dayPayment,\r\n \r\n SettingId: Item.id,\r\n SaveMode: 'Edit',\r\n\r\n \r\n });\r\n \r\n this.props.showToaster(\"با موفقیت جایگزین شد\", \"success\");\r\n };\r\n Delete = () => {\r\n axios.post(Config.url + 'api/SettingApi/DeleteSetting?id=' + this.state.SettingId, null).then((res) => {\r\n // handle success\r\n\r\n this.Reload();\r\n\r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n Reload = () => {\r\n\r\n this.Reset(0);\r\n this.AllSetting();\r\n };\r\n\r\n\r\n //api\r\n\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n\r\n

    تنظیمات

    \r\n\r\n
    \r\n\r\n\r\n
    \r\n \r\n this.setState({ monthlyAmount: toEnglishNumbers(e.target.value.replace(/[^0-9۰-۹.]/g, \"\")) })} />\r\n
    \r\n\r\n\r\n
    \r\n

    مبلغ وام

    \r\n this.setState({ loanAmount: toEnglishNumbers(e.target.value.replace(/[^0-9۰-۹.]/g, \"\")) })} />\r\n
    \r\n
    \r\n

    مبلغ قسط

    \r\n this.setState({ installmentAmount: toEnglishNumbers(e.target.value.replace(/[^0-9۰-۹.]/g, \"\")) })} />\r\n
    \r\n \r\n \r\n \r\n\r\n\r\n
    \r\n\r\n\r\n
    \r\n \r\n
    \r\n

    تعداد اقساط

    \r\n this.setState({ installmentNumber: toEnglishNumbers(e.target.value.replace(/[^0-9۰-۹.]/g, \"\")) })} />\r\n
    \r\n \r\n
    \r\n

    دیرکرد واریزی ماهیانه

    \r\n this.setState({ delayInstallment: toEnglishNumbers(e.target.value.replace(/[^0-9۰-۹.]/g, \"\")) })} />\r\n
    \r\n \r\n
    \r\n

    دیرکرد قسط وام

    \r\n this.setState({ delayMonthly: toEnglishNumbers(e.target.value.replace(/[^0-9۰-۹.]/g, \"\")) })} />\r\n
    \r\n\r\n
    \r\n\r\n \r\n
    \r\n\r\n
    \r\n

    واریزی هر ماه

    \r\n this.setState({ dayPayment: toEnglishNumbers(e.target.value.replace(/[^0-9۰-۹.]/g, \"\")) })} />\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n\r\n
    \r\n\r\n
    \r\n
      {this.state.errors.length === 0 ? \"\" :\r\n (this.state.errors.map((error, i) =>\r\n
    • {error}
    • ))}\r\n
    \r\n
    \r\n\r\n\r\n {\r\n return toCurrency(x.monthlyAmount)\r\n },\r\n\r\n x => {\r\n return toCurrency(x.loanAmount)\r\n },\r\n x => {\r\n return toCurrency(x.installmentAmount)\r\n },\r\n x => {\r\n return toPersianNumbers(x.installmentNumber)\r\n },\r\n x => {\r\n return toCurrency(x.delayInstallment)\r\n },\r\n x => {\r\n return toCurrency(x.delayMonthly)\r\n },\r\n x => {\r\n return toPersianNumbers(x.dayPayment)\r\n },\r\n x => {\r\n return toPersianNumbers(x.regDate)\r\n },\r\n x => {\r\n return toPersianNumbers(x.regTime)\r\n },\r\n\r\n\r\n\r\n x => {\r\n return \r\n },\r\n x => {\r\n return \r\n },\r\n\r\n ]} />\r\n\r\n
    \r\n\r\n\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default Setting;","import React from 'react';\r\nimport axios from \"axios\";\r\nimport Config, { toPersianNumbers, toCurrency, toEnglishNumbers, ShowCatchError, convertDate, reverseDate, } from \"../../Config\";\r\nimport { Table } from \"../Shared/Table\";\r\nimport './PaymentInformation.css';\r\nimport { Dropdown } from \"../Shared/Dropdown\";\r\n\r\nimport DatePicker, { utils } from \"react-modern-calendar-datepicker\";\r\nclass PaymentInformation extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n //refs\r\n\r\n //states\r\n this.state = {\r\n paymentPrice: \"\",\r\n pymentDelay: \"\",\r\n loanNumber: \"\",\r\n mainAmount: \"\",\r\n nationalId: \"\",\r\n errors: [],\r\n SaveMode: 'Add',\r\n tableSearchValue: \"\",\r\n\r\n PaymentInformations: [],\r\n FamilyMembers: [],\r\n FamilyMember: null,\r\n paymentDateDisplay: utils('fa').getToday(),\r\n paymentDate: convertDate(utils('fa').getToday()),\r\n StatusSearchTypes: [\r\n { value: null, text: 'انتخاب کنید' },\r\n { value: 1, text: 'دیرکرد' },\r\n { value:2, text: 'ماهیانه' },\r\n { value: 3, text: 'قسط وام' },\r\n \r\n \r\n\r\n ]\r\n ,\r\n selectedStatusSearchType: { value: null, text: 'انتخاب کنید' },\r\n LoanInformations: [],\r\n LoanInformation: null,\r\n Managers: [],\r\n Manager: null,\r\n }\r\n \r\n }\r\n\r\n componentDidMount() {\r\n this.props.hideSpinner();\r\n this.AllManager();\r\n this.GetLastSetting(this.state.selectedStatusSearchType);\r\n this.SearchPaymentInformation()\r\n }\r\n \r\n selectFamilyMember = async (ManagerId) => {\r\n this.props.showSpinner();\r\n let response = [];\r\n await axios.get(Config.url + 'api/FamilyMemberApi/GetFamilyMemberByManagerId?ManagerId=' + ManagerId)\r\n .then((res) => {\r\n // handle success\r\n if (res.status === 200) {\r\n this.props.hideSpinner();\r\n //this.setState({\r\n // FamilyMembers: res.data,\r\n\r\n //})\r\n response = res.data;\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n return response;\r\n };\r\n\r\n //selectLoanInformation = (familyMemberId) => {\r\n \r\n // this.props.showSpinner();\r\n // axios.get(Config.url + 'api/LoanInformationApi/GetLoanInformationByFamilyMemberId?familyMemberId=' + familyMemberId)\r\n // .then((res) => {\r\n // // handle success\r\n // if (res.status === 200) {\r\n // this.props.hideSpinner(); \r\n // this.setState({\r\n // LoanInformations: res.data,\r\n \r\n // })\r\n\r\n // }\r\n\r\n // })\r\n // .catch((error) => {\r\n\r\n // this.props.hideSpinner();\r\n // this.props.showAlert(ShowCatchError(error));\r\n // console.log(error.response);\r\n // });\r\n //};\r\n selectLoanInformation = (familyMemberId) => {\r\n this.setselectLoanInformation(familyMemberId).then((res) => {\r\n this.setState({\r\n LoanInformations: res\r\n });\r\n\r\n })\r\n }\r\n setselectLoanInformation = async (familyMemberId) => {\r\n this.props.showSpinner();\r\n let response = [];\r\n await axios.get(Config.url + 'api/LoanInformationApi/GetLoanInformationByFamilyMemberId?familyMemberId=' + familyMemberId)\r\n .then((res) => {\r\n // handle success\r\n if (res.status === 200) {\r\n this.props.hideSpinner();\r\n //this.setState({\r\n // LoanInformations: res.data,\r\n\r\n //})\r\n response = res.data;\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n return response;\r\n };\r\n handleFocus = (event) => event.target.select();\r\n\r\n AllPaymentInformation = () => {\r\n this.props.showSpinner();\r\n axios.get(Config.url + 'api/PaymentInformationApi/GetAllPaymentInformation').then((res) => {\r\n // handle success\r\n this.props.hideSpinner();\r\n this.setState({\r\n PaymentInformations: res.data,\r\n\r\n });\r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n \r\n\r\n validateInputData = () => {\r\n\r\n let error = [];\r\n if (this.state.selectedStatusSearchType.value === null) {\r\n error.push('لطفا نوع پرداخت را انتخاب کنید');\r\n }\r\n if (this.state.selectedStatusSearchType.value !== null && this.state.selectedStatusSearchType.value !== 1 ) {\r\n if (this.state.paymentPrice.length === 0 || this.state.paymentPrice.length === \"0\") {\r\n error.push('لطفا مبلغ پرداختی را وارد کنید');\r\n }\r\n }\r\n if (this.state.selectedStatusSearchType.value !== null && this.state.selectedStatusSearchType.value === 1) {\r\n if (this.state.paymentPrice.length === 0 || this.state.paymentPrice.length === \"0\") {\r\n error.push('لطفا دیرکرد را وارد کنید');\r\n }\r\n }\r\n \r\n if (this.state.FamilyMember === null || this.state.FamilyMember === undefined) {\r\n error.push('لطفا اعضا را انتخاب کنید');\r\n }\r\n if (this.state.selectedStatusSearchType.value === 3) {\r\n if (this.state.LoanInformation === null || this.state.LoanInformation === undefined) {\r\n error.push('لطفا اطلاعات وام را انتخاب کنید');\r\n }\r\n }\r\n\r\n if (error.length === 0) {\r\n this.setState({ errors: error });\r\n //submit form\r\n this.AddPaymentInformation()\r\n\r\n } else {\r\n this.props.showAlert(\"لطفا تمامی اطلاعات درخواست شده را به درستی وارد کنید!\");\r\n this.setState({ errors: error })\r\n\r\n }\r\n };\r\n Reset = (Isclear) => {\r\n\r\n this.setState({\r\n paymentPrice: \"\",\r\n pymentDelay: \"\",\r\n FamilyMembers: [],\r\n FamilyMember: null,\r\n Manager: null, \r\n errors: [],\r\n LoanInformations: [], LoanInformation: null,\r\n PaymentInformationId: null,\r\n SaveMode: 'Add',\r\n paymentDateDisplay: utils('fa').getToday(),\r\n paymentDate: convertDate(utils('fa').getToday()),\r\n selectedStatusSearchType: { value: 2, text: 'ماهیانه' },\r\n });\r\n if (Isclear === 0) { this.setState({ PaymentInformations: [] }); }\r\n };\r\n AddPaymentInformation = () => {\r\n let api = 'AddPaymentInformation/';\r\n let desc = \"ثبت با موفقیت انجام شد!\";\r\n let addModel;\r\n if (this.state.SaveMode === 'Add') {\r\n addModel = {\r\n PaymentPrice: this.state.paymentPrice === \"\" ? 0 : this.state.paymentPrice,\r\n PaymentDate: this.state.paymentDate ,\r\n PymentDelay: this.state.pymentDelay === \"\" ? 0 : this.state.pymentDelay,\r\n PaymentType: this.state.selectedStatusSearchType.value,\r\n FamilyMemberId: this.state.FamilyMember.id,\r\n LoanInformationId: (this.state.selectedStatusSearchType !== null && this.state.selectedStatusSearchType !== undefined)?(this.state.selectedStatusSearchType.value === 3) ? this.state.LoanInformation.id : null: null,\r\n \r\n }\r\n } else {\r\n api = 'EditPaymentInformation/';\r\n desc = \"ویرایش با موفقیت انجام شد!\";\r\n addModel = {\r\n\r\n \r\n PaymentPrice: this.state.paymentPrice === \"\" ? 0 : this.state.paymentPrice,\r\n PaymentDate: this.state.paymentDate,\r\n PymentDelay: this.state.pymentDelay === \"\" ? 0 : this.state.pymentDelay,\r\n PaymentType: this.state.selectedStatusSearchType.value,\r\n FamilyMemberId: this.state.FamilyMember.id,\r\n LoanInformationId: (this.state.selectedStatusSearchType !== null && this.state.selectedStatusSearchType !== undefined) ? (this.state.selectedStatusSearchType.value === 3) ? this.state.LoanInformation.id : null : null,\r\n Id: this.state.PaymentInformationId,\r\n \r\n }\r\n }\r\n axios.post(Config.url + 'api/PaymentInformationApi/' + api, addModel,\r\n )\r\n .then((res) => {\r\n // handle success\r\n if (res.status === 200) {\r\n this.props.hideSpinner();\r\n this.props.showAlert(desc, \"success\");\r\n this.Reload(0);\r\n this.SearchPaymentInformation();\r\n\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n\r\n\r\n };\r\n replaceData = (Item) => {\r\n\r\n\r\n this.setState({\r\n \r\n paymentPrice: Item.paymentPrice,\r\n pymentDelay: Item.pymentDelay,\r\n nationalId: Item.nationalId,\r\n mainAmount: Item.mainAmount,\r\n loanNumber: Item.loanNumber,\r\n \r\n PaymentInformationId: Item.id,\r\n SaveMode: 'Edit',\r\n\r\n paymentDate: Item.paymentDate_shamsiDate ,\r\n paymentDateDisplay: reverseDate(Item.paymentDate_shamsiDate),\r\n selectedStatusSearchType: this.state.StatusSearchTypes.filter((customer) => customer.value === Item.paymentType ? customer : null)[0]\r\n\r\n \r\n });\r\n \r\n this.state.Managers.map((v) => {\r\n if (v.id === Item.managerId) {\r\n this.setState({\r\n Manager: v\r\n })\r\n }\r\n return null\r\n });\r\n \r\n if (Item.managerId !== null || Item.managerId !== undefined) {\r\n\r\n \r\n\r\n this.setselectLoanInformation(Item.familyMemberId).then((res) => {\r\n this.setState({\r\n LoanInformations: res\r\n });\r\n this.selectFamilyMember(Item.managerId).then((res) => {\r\n this.setState({\r\n FamilyMembers: res\r\n });\r\n this.state.FamilyMembers.map((v) => {\r\n if (v.id === Item.familyMemberId) {\r\n this.setState({\r\n FamilyMember: v\r\n })\r\n }\r\n return null\r\n });\r\n });\r\n if (Item.familyMemberId !== null || Item.familyMemberId !== undefined) {\r\n this.state.LoanInformations.map((v) => {\r\n if (v.id === Item.loanInformationId) {\r\n this.setState({\r\n LoanInformation: v\r\n })\r\n }\r\n return null\r\n });\r\n }\r\n })\r\n }\r\n \r\n this.props.showToaster(\"با موفقیت جایگزین شد\", \"success\");\r\n };\r\n Delete = () => {\r\n axios.post(Config.url + 'api/PaymentInformationApi/DeletePaymentInformation?id=' + this.state.PaymentInformationId, null).then((res) => {\r\n // handle success\r\n\r\n this.Reload(0);\r\n\r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n Reload = (type) => {\r\n\r\n this.Reset(type);\r\n this.setState({ PaymentInformations: [] }, () => this.SearchPaymentInformation());\r\n \r\n };\r\n \r\n\r\n AllManager = () => {\r\n this.props.showSpinner();\r\n axios.get(Config.url + 'api/ManagerApi/GetAllManager').then((res) => {\r\n // handle success\r\n this.props.hideSpinner();\r\n this.setState({\r\n Managers: res.data,\r\n });\r\n console.log(res.data);\r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n\r\n //api\r\n\r\n CallFamilymember = (managerId) => {\r\n if (managerId !== null && managerId !== undefined) {\r\n this.selectFamilyMember(managerId).then((res) => {\r\n this.setState({\r\n FamilyMembers: res\r\n });\r\n \r\n })\r\n }\r\n }\r\n SetPrice = (item) => {\r\n if (item != null) {\r\n this.setState({\r\n paymentPrice: item.installmentPrice\r\n })\r\n }\r\n else {\r\n this.setState({\r\n paymentPrice: \"\"\r\n })\r\n }\r\n };\r\n GetLastSetting = (item) => {\r\n console.log(item);\r\n \r\n this.props.showSpinner();\r\n axios.get(Config.url + 'api/SettingApi/GetLastSetting').then((res) => {\r\n // handle success\r\n this.props.hideSpinner();\r\n this.setState({\r\n paymentPrice: item.value === 2 ? res.data.monthlyAmount : item.value === 3 ? res.data.installmentAmount :\"\",\r\n pymentDelay: item.value === 2 ? res.data.delayMount : res.data.delayghest,\r\n\r\n\r\n });\r\n\r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n \r\n //else {\r\n // this.setState({\r\n // paymentPrice: \"\",\r\n // pymentDelay: \"\",\r\n\r\n\r\n // });\r\n //}\r\n };\r\n SearchPaymentInformation = () => {\r\n let addModel = null;\r\n addModel = {\r\n Item1: this.state.paymentDate,\r\n Item2: (this.state.Manager !== null && this.state.Manager !== \"\" && this.state.Manager !== undefined) ? this.state.Manager.id : null,\r\n Item3: (this.state.FamilyMember !== null && this.state.FamilyMember !== \"\" && this.state.FamilyMember !== undefined) ? this.state.FamilyMember.id : null,\r\n Item4: null,\r\n Item5: (this.state.paymentPrice !== null && this.state.paymentPrice !== \"\" && this.state.paymentPrice !== undefined) ? this.state.paymentPrice : null,\r\n Item6: null,\r\n }\r\n this.props.showSpinner();\r\n\r\n axios.post(Config.url + 'api/PaymentInformationApi/SearchPaymentInformation', addModel).then((res) => {\r\n // handle success\r\n // console.log(res.data);\r\n this.props.hideSpinner();\r\n this.setState({\r\n PaymentInformations: res.data,\r\n\r\n });\r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n render() {\r\n return (\r\n
    \r\n
    \r\n\r\n

    پرداخت

    \r\n\r\n
    \r\n
    \r\n \r\n {\r\n this.setState({\r\n paymentDateDisplay: newDate,\r\n paymentDate: convertDate(newDate),\r\n });\r\n }}\r\n inputPlaceholder=\"لطفا یک تاریخ انتخاب کنید\"\r\n inputClassName=\"date-picker\"\r\n shouldHighlightWeekends\r\n locale=\"fa\"\r\n />\r\n
    \r\n
    \r\n item.firstName + ' ' + item.lastName}\r\n onChange={(item) => this.setState({ Manager: item, FamilyMembers: [], FamilyMember: null, LoanInformations: [], LoanInformation: null }, (item !== null && item !== undefined) ? this.CallFamilymember(item.id) : null)}\r\n styles=\"form-item-with-button\"\r\n withButton={true}\r\n />\r\n
    \r\n
    \r\n item.firstName + ' ' + item.lastName}\r\n onChange={(item) => this.setState({ FamilyMember: item, LoanInformations: [], LoanInformation: null }, this.selectLoanInformation(item.id))}\r\n styles=\"form-item-with-button\"\r\n withButton={true}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n item.text}\r\n onChange={(item) => this.setState({\r\n selectedStatusSearchType: item,\r\n pymentDelay: \"\",\r\n paymentPrice: \"\",\r\n LoanInformation: null\r\n }, this.GetLastSetting(item))}\r\n styles=\"form-item\"\r\n\r\n\r\n />\r\n \r\n
    \r\n \r\n this.setState({\r\n paymentPrice: toEnglishNumbers(e.target.value.replace(/[^0-9۰-۹.]/g, \"\")) \r\n \r\n })} />\r\n
    \r\n \r\n \r\n {(this.state.selectedStatusSearchType.value !== 1 && this.state.selectedStatusSearchType.value !== null) &&\r\n \r\n
    \r\n \r\n this.setState({\r\n pymentDelay: toEnglishNumbers(e.target.value.replace(/[^0-9۰-۹.]/g, \"\")) \r\n \r\n })} />\r\n
    \r\n }\r\n \r\n
    \r\n
    \r\n { this.state.selectedStatusSearchType.value === 3 &&\r\n
    \r\n item.firstName + ' ' + item.lastName + ' ' + ' وام :' + item.loanPrice + ' قسط : ' + item.installmentPrice}\r\n onChange={(item) => this.setState({ LoanInformation: item },this.SetPrice(item))}\r\n styles=\"form-item-with-button\"\r\n withButton={true}\r\n />\r\n
    \r\n }\r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n\r\n
    \r\n\r\n
    \r\n
      {this.state.errors.length === 0 ? \"\" :\r\n (this.state.errors.map((error, i) =>\r\n
    • {error}
    • ))}\r\n
    \r\n
    \r\n\r\n\r\n {\r\n switch (x.paymentType) {\r\n\r\n case 1:\r\n return 'دیرکرد';\r\n case 2:\r\n return 'ماهیانه';\r\n case 3:\r\n return 'قسط وام';\r\n \r\n default:\r\n }\r\n },\r\n x => {\r\n return (x.managerFullName)\r\n },\r\n x => {\r\n return (x.familyMemberFullName)\r\n },\r\n x => {\r\n return toCurrency(toPersianNumbers(x.paymentPrice))\r\n },\r\n\r\n x => {\r\n return toPersianNumbers(x.pymentDelay)\r\n },\r\n \r\n x => {\r\n return toPersianNumbers(x.paymentDate)\r\n },\r\n \r\n \r\n x => {\r\n return toPersianNumbers(x.regDate)\r\n },\r\n x => {\r\n return toPersianNumbers(x.regTime)\r\n },\r\n\r\n\r\n\r\n x => {\r\n return \r\n },\r\n x => {\r\n return \r\n },\r\n\r\n ]} />\r\n\r\n
    \r\n\r\n\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default PaymentInformation;","import React from 'react';\r\nimport axios from \"axios\";\r\nimport Config, { toPersianNumbers, toCurrency, toEnglishNumbers, ShowCatchError, convertDate, reverseDate, } from \"../../Config\";\r\nimport { Table } from \"../Shared/Table\";\r\nimport './PaymentInformationReport.css';\r\nimport { Dropdown } from \"../Shared/Dropdown\";\r\n\r\nimport DatePicker, { utils } from \"react-modern-calendar-datepicker\";\r\nclass PaymentInformationReport extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n //refs\r\n\r\n //states\r\n this.state = {\r\n paymentPrice: \"\",\r\n pymentDelay: \"\",\r\n loanNumber: \"\",\r\n mainAmount: \"\",\r\n nationalId: \"\",\r\n errors: [],\r\n SaveMode: 'Add',\r\n tableSearchValue: \"\",\r\n\r\n PaymentInformations: [],\r\n FamilyMembers: [],\r\n FamilyMember: null,\r\n paymentDateDisplay: utils('fa').getToday(),\r\n paymentDate: convertDate(utils('fa').getToday()),\r\n TopaymentDateDisplay: utils('fa').getToday(),\r\n TopaymentDate: convertDate(utils('fa').getToday()),\r\n StatusSearchTypes: [\r\n { value: null, text: 'انتخاب کنید' },\r\n { value: 1, text: 'دیرکرد' },\r\n { value:2, text: 'ماهیانه' },\r\n { value: 3, text: 'قسط وام' },\r\n \r\n \r\n\r\n ]\r\n ,\r\n selectedStatusSearchType: { value: null, text: 'انتخاب کنید' },\r\n LoanInformations: [],\r\n LoanInformation: null,\r\n Managers: [],\r\n Manager: null,\r\n }\r\n \r\n }\r\n\r\n componentDidMount() {\r\n this.props.hideSpinner();\r\n this.AllManager();\r\n this.GetLastSetting(this.state.selectedStatusSearchType);\r\n this.SearchPaymentInformation();\r\n }\r\n \r\n selectFamilyMember = async (ManagerId) => {\r\n this.props.showSpinner();\r\n let response = [];\r\n await axios.get(Config.url + 'api/FamilyMemberApi/GetFamilyMemberByManagerId?ManagerId=' + ManagerId)\r\n .then((res) => {\r\n // handle success\r\n if (res.status === 200) {\r\n this.props.hideSpinner();\r\n //this.setState({\r\n // FamilyMembers: res.data,\r\n\r\n //})\r\n response = res.data;\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n return response;\r\n };\r\n\r\n \r\n selectLoanInformation = (familyMemberId) => {\r\n this.setselectLoanInformation(familyMemberId).then((res) => {\r\n this.setState({\r\n LoanInformations: res\r\n });\r\n\r\n })\r\n }\r\n setselectLoanInformation = async (familyMemberId) => {\r\n this.props.showSpinner();\r\n let response = [];\r\n await axios.get(Config.url + 'api/LoanInformationApi/GetLoanInformationByFamilyMemberId?familyMemberId=' + familyMemberId)\r\n .then((res) => {\r\n // handle success\r\n if (res.status === 200) {\r\n this.props.hideSpinner();\r\n //this.setState({\r\n // LoanInformations: res.data,\r\n\r\n //})\r\n response = res.data;\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n return response;\r\n };\r\n handleFocus = (event) => event.target.select();\r\n\r\n AllPaymentInformation = () => {\r\n this.props.showSpinner();\r\n axios.get(Config.url + 'api/PaymentInformationApi/GetAllPaymentInformation').then((res) => {\r\n // handle success\r\n this.props.hideSpinner();\r\n this.setState({\r\n PaymentInformations: res.data,\r\n\r\n });\r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n SearchPaymentInformation = () => {\r\n let addModel = null;\r\n addModel = {\r\n Item1: this.state.paymentDate,\r\n Item2: (this.state.Manager !== null && this.state.Manager !== \"\" && this.state.Manager !== undefined) ? this.state.Manager.id:null,\r\n Item3: (this.state.FamilyMember !== null && this.state.FamilyMember !== \"\" && this.state.FamilyMember !== undefined) ? this.state.FamilyMember.id:null,\r\n Item4: (this.state.selectedStatusSearchType !== null && this.state.selectedStatusSearchType !== undefined) ? this.state.selectedStatusSearchType.value : null,\r\n Item5: (this.state.paymentPrice !== null && this.state.paymentPrice !== \"\" && this.state.paymentPrice !== undefined) ? this.state.paymentPrice : null,\r\n Item6: this.state.TopaymentDate,\r\n }\r\n this.props.showSpinner();\r\n \r\n axios.post(Config.url + 'api/PaymentInformationApi/SearchPaymentInformation' , addModel).then((res) => {\r\n // handle success\r\n // console.log(res.data);\r\n this.props.hideSpinner();\r\n this.setState({\r\n PaymentInformations: res.data,\r\n\r\n });\r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n\r\n\r\n\r\n \r\n Reset = (Isclear) => {\r\n\r\n this.setState({\r\n paymentPrice: \"\",\r\n pymentDelay: \"\",\r\n FamilyMembers: [],\r\n FamilyMember: null,\r\n Manager: null, \r\n errors: [],\r\n LoanInformations: [], LoanInformation: null,\r\n PaymentInformationId: null,\r\n SaveMode: 'Add',\r\n paymentDateDisplay: utils('fa').getToday(),\r\n paymentDate: convertDate(utils('fa').getToday()),\r\n TopaymentDateDisplay: utils('fa').getToday(),\r\n TopaymentDate: convertDate(utils('fa').getToday()),\r\n selectedStatusSearchType: { value: null, text: 'انتخاب کنید' },\r\n });\r\n if (Isclear === 0) { this.setState({ PaymentInformations: [] }); }\r\n };\r\n \r\n \r\n Delete = () => {\r\n axios.post(Config.url + 'api/PaymentInformationApi/DeletePaymentInformation?id=' + this.state.PaymentInformationId, null).then((res) => {\r\n // handle success\r\n\r\n this.Reload(0);\r\n\r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n Reload = (type) => {\r\n\r\n this.Reset(type);\r\n this.setState({ PaymentInformations: [] }, () => this.SearchPaymentInformation());\r\n \r\n };\r\n \r\n\r\n AllManager = () => {\r\n this.props.showSpinner();\r\n axios.get(Config.url + 'api/ManagerApi/GetAllManager').then((res) => {\r\n // handle success\r\n this.props.hideSpinner();\r\n this.setState({\r\n Managers: res.data,\r\n });\r\n console.log(res.data);\r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n\r\n //api\r\n\r\n CallFamilymember = (managerId) => {\r\n if (managerId !== null && managerId !== undefined) {\r\n this.selectFamilyMember(managerId).then((res) => {\r\n this.setState({\r\n FamilyMembers: res\r\n });\r\n \r\n })\r\n }\r\n }\r\n SetPrice = (item) => {\r\n if (item != null) {\r\n this.setState({\r\n paymentPrice: item.installmentPrice\r\n })\r\n }\r\n else {\r\n this.setState({\r\n paymentPrice: \"\"\r\n })\r\n }\r\n };\r\n GetLastSetting = (item) => {\r\n console.log(item);\r\n \r\n this.props.showSpinner();\r\n axios.get(Config.url + 'api/SettingApi/GetLastSetting').then((res) => {\r\n // handle success\r\n this.props.hideSpinner();\r\n this.setState({\r\n paymentPrice: item.value === 2 ? res.data.monthlyAmount : item.value === 3 ? res.data.installmentAmount :\"\",\r\n pymentDelay: item.value === 2 ? res.data.delayMount : res.data.delayghest,\r\n\r\n\r\n });\r\n\r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n \r\n //else {\r\n // this.setState({\r\n // paymentPrice: \"\",\r\n // pymentDelay: \"\",\r\n\r\n\r\n // });\r\n //}\r\n };\r\n render() {\r\n return (\r\n
    \r\n
    \r\n\r\n

    پرداخت

    \r\n\r\n
    \r\n
    \r\n \r\n {\r\n this.setState({\r\n paymentDateDisplay: newDate,\r\n paymentDate: convertDate(newDate),\r\n });\r\n }}\r\n inputPlaceholder=\"لطفا یک تاریخ انتخاب کنید\"\r\n inputClassName=\"date-picker\"\r\n shouldHighlightWeekends\r\n locale=\"fa\"\r\n />\r\n
    \r\n
    \r\n \r\n {\r\n this.setState({\r\n TopaymentDateDisplay: newDate,\r\n TopaymentDate: convertDate(newDate),\r\n });\r\n }}\r\n inputPlaceholder=\"لطفا یک تاریخ انتخاب کنید\"\r\n inputClassName=\"date-picker\"\r\n shouldHighlightWeekends\r\n locale=\"fa\"\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n item.firstName + ' ' + item.lastName}\r\n onChange={(item) => this.setState({ Manager: item, FamilyMembers: [], FamilyMember: null, LoanInformations: [], LoanInformation: null }, (item !== null && item !== undefined) ? this.CallFamilymember(item.id) : null)}\r\n styles=\"form-item-with-button\"\r\n withButton={true}\r\n />\r\n
    \r\n
    \r\n item.firstName + ' ' + item.lastName}\r\n onChange={(item) => this.setState({ FamilyMember: item, LoanInformations: [], LoanInformation: null }, this.selectLoanInformation(item.id))}\r\n styles=\"form-item-with-button\"\r\n withButton={true}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n item.text}\r\n onChange={(item) => this.setState({\r\n selectedStatusSearchType: item,\r\n pymentDelay: \"\",\r\n paymentPrice: \"\",\r\n LoanInformation: null\r\n }, this.GetLastSetting(item))}\r\n styles=\"form-item\"\r\n\r\n\r\n />\r\n \r\n
    \r\n \r\n this.setState({\r\n paymentPrice: toEnglishNumbers(e.target.value.replace(/[^0-9۰-۹.]/g, \"\")) \r\n \r\n })} />\r\n
    \r\n \r\n \r\n {(this.state.selectedStatusSearchType.value !== 1 && this.state.selectedStatusSearchType.value !== null) &&\r\n \r\n
    \r\n \r\n this.setState({\r\n pymentDelay: toEnglishNumbers(e.target.value.replace(/[^0-9۰-۹.]/g, \"\")) \r\n \r\n })} />\r\n
    \r\n }\r\n \r\n
    \r\n
    \r\n { this.state.selectedStatusSearchType.value === 3 &&\r\n
    \r\n item.firstName + ' ' + item.lastName + ' ' + ' وام :' + item.loanPrice + ' قسط : ' + item.installmentPrice}\r\n onChange={(item) => this.setState({ LoanInformation: item },this.SetPrice(item))}\r\n styles=\"form-item-with-button\"\r\n withButton={true}\r\n />\r\n
    \r\n }\r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n\r\n
    \r\n\r\n
    \r\n
      {this.state.errors.length === 0 ? \"\" :\r\n (this.state.errors.map((error, i) =>\r\n
    • {error}
    • ))}\r\n
    \r\n
    \r\n\r\n\r\n {\r\n switch (x.paymentType) {\r\n\r\n case 1:\r\n return 'دیرکرد';\r\n case 2:\r\n return 'ماهیانه';\r\n case 3:\r\n return 'قسط وام';\r\n \r\n default:\r\n }\r\n },\r\n x => {\r\n return (x.managerFullName)\r\n },\r\n x => {\r\n return (x.familyMemberFullName)\r\n },\r\n x => {\r\n return toCurrency(toPersianNumbers(x.paymentPrice))\r\n },\r\n\r\n x => {\r\n return toPersianNumbers(x.pymentDelay)\r\n },\r\n \r\n x => {\r\n return toPersianNumbers(x.paymentDate)\r\n },\r\n \r\n \r\n x => {\r\n return toPersianNumbers(x.regDate)\r\n },\r\n x => {\r\n return toPersianNumbers(x.regTime)\r\n },\r\n ]} />\r\n\r\n
    \r\n\r\n\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default PaymentInformationReport;","import React from 'react';\r\nimport axios from \"axios\";\r\nimport Config, { toPersianNumbers, toCurrency, toEnglishNumbers, ShowCatchError, convertDate, reverseDate, } from \"../../Config\";\r\nimport { Table } from \"../Shared/Table\";\r\nimport './FundExpense.css';\r\nimport { Dropdown } from \"../Shared/Dropdown\";\r\n\r\nimport DatePicker, { utils } from \"react-modern-calendar-datepicker\";\r\nclass FundExpense extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n //refs\r\n\r\n //states\r\n this.state = {\r\n Cost: \"\",\r\n Desc: \"\", \r\n errors: [],\r\n SaveMode: 'Add', \r\n FundExpenses: [],\r\n paymentDateDisplay: utils('fa').getToday(),\r\n paymentDate: convertDate(utils('fa').getToday()),\r\n \r\n }\r\n \r\n }\r\n\r\n componentDidMount() {\r\n this.props.hideSpinner();\r\n this.AllFundExpense(); \r\n }\r\n \r\n handleFocus = (event) => event.target.select();\r\n\r\n AllFundExpense = () => {\r\n this.props.showSpinner();\r\n axios.get(Config.url + 'api/FundExpenseApi/GetAllFundExpense').then((res) => {\r\n // handle success\r\n this.props.hideSpinner();\r\n this.setState({\r\n FundExpenses: res.data,\r\n\r\n });\r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n \r\n\r\n validateInputData = () => {\r\n\r\n let error = [];\r\n \r\n \r\n if (this.state.Desc === null || this.state.Desc === undefined) {\r\n error.push('لطفا توضيحات را وارد کنید');\r\n }\r\n if (this.state.Cost === null || this.state.Cost === undefined) {\r\n error.push('لطفا هزينه را وارد کنید');\r\n }\r\n if (error.length === 0) {\r\n this.setState({ errors: error });\r\n //submit form\r\n this.AddFundExpense()\r\n\r\n } else {\r\n this.props.showAlert(\"لطفا تمامی اطلاعات درخواست شده را به درستی وارد کنید!\");\r\n this.setState({ errors: error })\r\n\r\n }\r\n };\r\n Reset = (Isclear) => {\r\n\r\n this.setState({\r\n Cost: \"\",\r\n Desc: \"\", \r\n errors: [], \r\n FundExpenseId: null,\r\n SaveMode: 'Add',\r\n \r\n \r\n }); \r\n if (Isclear === 0) { this.setState({ FundExpenses: [] }); }\r\n };\r\n AddFundExpense = () => {\r\n let api = 'AddFundExpense/';\r\n let desc = \"ثبت با موفقیت انجام شد!\";\r\n let addModel;\r\n if (this.state.SaveMode === 'Add') {\r\n addModel = {\r\n Cost: this.state.Cost === \"\" ? 0 : this.state.Cost, \r\n Desc: this.state.Desc,\r\n PaymentDate: this.state.paymentDate ,\r\n }\r\n } else {\r\n api = 'EditFundExpense/';\r\n desc = \"ویرایش با موفقیت انجام شد!\";\r\n addModel = {\r\n\r\n \r\n Cost: this.state.Cost === \"\" ? 0 : this.state.Cost, \r\n Desc:this.state.Desc, \r\n Id: this.state.FundExpenseId,\r\n PaymentDate: this.state.paymentDate ,\r\n }\r\n }\r\n axios.post(Config.url + 'api/FundExpenseApi/' + api, addModel,\r\n )\r\n .then((res) => {\r\n // handle success\r\n if (res.status === 200) {\r\n this.props.hideSpinner();\r\n this.props.showAlert(desc, \"success\");\r\n this.Reset(0);\r\n this.AllFundExpense();\r\n \r\n }\r\n\r\n })\r\n .catch((error) => {\r\n\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n\r\n\r\n };\r\n replaceData = (Item) => { \r\n let allexpence = this.state.FundExpenses;\r\n this.setState({\r\n \r\n Cost: Item.cost,\r\n Desc: Item.desc, \r\n FundExpenseId: Item.id,\r\n paymentDate: Item.paymentDate_shamsiDate ,\r\n paymentDateDisplay: reverseDate(Item.paymentDate_shamsiDate),\r\n SaveMode: 'Edit', \r\n }, () => this.setState({ FundExpenses: allexpence })); \r\n this.props.showToaster(\"با موفقیت جایگزین شد\", \"success\");\r\n };\r\n Delete = () => {\r\n axios.post(Config.url + 'api/FundExpenseApi/DeleteFundExpense?id=' + this.state.FundExpenseId, null).then((res) => {\r\n // handle success\r\n\r\n this.Reset(0);\r\n this.AllFundExpense();\r\n\r\n }).catch((error) => {\r\n this.props.hideSpinner();\r\n this.props.showAlert(ShowCatchError(error));\r\n console.log(error.response);\r\n });\r\n };\r\n Reload = (type) => {\r\n\r\n this.Reset(type); \r\n this.setState({ FundExpenses: [] }, () => this.AllFundExpense());\r\n \r\n }; \r\n render() {\r\n return (\r\n
    \r\n
    \r\n\r\n

    مدیریت هزینه ها

    \r\n

    \r\n
    \r\n
    \r\n \r\n this.setState({\r\n Cost: toEnglishNumbers(e.target.value.replace(/[^0-9۰-۹.]/g, \"\")) \r\n })} />\r\n
    \r\n
    \r\n
    \r\n \r\n {\r\n this.setState({\r\n paymentDateDisplay: newDate,\r\n paymentDate: convertDate(newDate),\r\n });\r\n }}\r\n inputPlaceholder=\"لطفا یک تاریخ انتخاب کنید\"\r\n inputClassName=\"date-picker\"\r\n shouldHighlightWeekends\r\n locale=\"fa\"\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n this.setState({\r\n Desc: toEnglishNumbers(e.target.value )\r\n\r\n })} />\r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n\r\n
    \r\n\r\n
    \r\n
      {this.state.errors.length === 0 ? \"\" :\r\n (this.state.errors.map((error, i) =>\r\n
    • {error}
    • ))}\r\n
    \r\n
    \r\n\r\n\r\n {\r\n return toCurrency(toPersianNumbers(x.cost))\r\n },\r\n x => {\r\n return (x.desc)\r\n }, \r\n x => {\r\n return toPersianNumbers(x.regDate)\r\n },\r\n x => {\r\n return \r\n },\r\n x => {\r\n return \r\n },\r\n\r\n ]} />\r\n\r\n
    \r\n\r\n\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default FundExpense;","import React, { Fragment } from 'react';\r\nimport './App.css';\r\nimport 'react-modern-calendar-datepicker/lib/DatePicker.css';\r\nimport { Route, withRouter } from 'react-router-dom';\r\nimport { Header } from './components/Shared/Header'\r\nimport { Footer } from './components/Shared/Footer'\r\nimport { Spinner } from './components/Shared/Spinner'\r\nimport { Alert } from './components/Shared/Alert'\r\nimport { Toaster } from './components/Shared/Toaster'\r\nimport Aside from './components/Shared/Aside'\r\nimport ChangePassword from \"./components/Member/ChangePassword\";\r\nimport Login from \"./components/Login/Login\";\r\nimport LoanReport from \"./components/reports/LoanReport\";\r\nimport PersonLoanReport from \"./components/reports/PersonLoanReport\";\r\nimport PersonMontlyReport from \"./components/reports/PersonMontlyReport\";\r\nimport axios from \"axios\";\r\nimport Config from \"./Config\";\r\nimport config from \"./Config\";\r\n \r\n \r\n \r\nimport AdminDashboard from \"./components/Member/AdminDashboard\";\r\nimport UserDashboard from \"./components/Member/UserDashboard\";\r\n \r\n \r\nimport Manager from \"./components/Users/Manager\";\r\nimport FamilyMember from \"./components/Users/FamilyMember\";\r\nimport LoanInformation from \"./components/Loan/LoanInformation\";\r\nimport Setting from \"./components/Loan/Setting\";\r\nimport PaymentInformation from \"./components/Loan/PaymentInformation\";\r\nimport PaymentInformationReport from \"./components/reports/PaymentInformationReport\";\r\nimport FundExpense from \"./components/Loan/FundExpense\";\r\nclass App extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n loggedIn: false,\r\n alert: false,\r\n spinner: false,\r\n toaster: false,\r\n alertText: \"\",\r\n alertType: \"error\",\r\n toasterText: \"\",\r\n toasterType: \"error\",\r\n member: \"\",\r\n navIcon: true,\r\n clickedNode: [],\r\n executableCode: null,\r\n notificationsCount: null,\r\n CustomerLoadRequestCount: null,\r\n ReserveEntrancePermissionsCount: null,\r\n stimulsoftLoaded: false,\r\n goodTypes: null,\r\n loaderTypes: null,\r\n packingTypes: null,\r\n };\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.checkJWT();\r\n // this.timerConnectToken();\r\n //this.useEffect();\r\n }\r\n \r\n ConnectToken = () => {\r\n\r\n if (window.Dastine.socketConnection.readyState === \"3\") {\r\n\r\n return false;\r\n }\r\n\r\n };\r\n timerConnectToken = () => {\r\n\r\n this.timerID = setInterval(\r\n () => this.ConnectToken(),\r\n 60000\r\n );\r\n };\r\n\r\n toggleNavIcon = () => {\r\n this.setState({ navIcon: !this.state.navIcon })\r\n };\r\n\r\n //get current member that is logged in\r\n getCurrentMember = () => {\r\n axios.get(Config.url + 'Api/AccountApi/GetCurrentMember').then((res) => {\r\n // handle success\r\n this.setState({ member: res.data }, () => {\r\n this.logIn()\r\n });\r\n }).catch((error) => {\r\n console.log(error.response);\r\n });\r\n };\r\n\r\n\r\n \r\n\r\n checkJWT = () => {\r\n if (localStorage.getItem(\"jwt\")) {\r\n axios.defaults.headers.common['Authorization'] = \"Bearer \" + localStorage.getItem(\"jwt\");\r\n this.showSpinner();\r\n this.getCurrentMember();\r\n \r\n this.activityWatcher();\r\n\r\n } else\r\n this.setState({ loggedIn: false });\r\n this.hideSpinner();\r\n };\r\n\r\n activityWatcher = () => {\r\n\r\n let secondsSinceLastActivity = 0;\r\n let maxInactivity = (config.logoutTimer); //seconds\r\n\r\n\r\n setInterval(() => {\r\n secondsSinceLastActivity++;\r\n if (secondsSinceLastActivity > config.logoutTimer - 20) {\r\n this.showAlert(\"درصورتی که فعالیتی نداشته باشید بصورت اتوماتیک از سیستم خارج می شوید!\", \"info\")\r\n }\r\n\r\n if (secondsSinceLastActivity > maxInactivity) {\r\n this.showAlert(\"به دلیل عدم فعالیت از سیستم خارج شدید!\", \"error\");\r\n this.logOut();\r\n }\r\n }, 1000);\r\n\r\n //The function that will be called whenever a user is active\r\n const activity = () => {\r\n secondsSinceLastActivity = 0;\r\n };\r\n\r\n\r\n let activityEvents = [\r\n 'mousedown', 'mousemove', 'keydown',\r\n 'scroll', 'touchstart'\r\n ];\r\n\r\n activityEvents.forEach((eventName) => {\r\n document.addEventListener(eventName, activity, true);\r\n });\r\n\r\n };\r\n\r\n\r\n //show and hide alert\r\n showAlert = (alertText, alertType, executableCode) => {\r\n this.setState({ alert: true });\r\n this.setState({ alertText: alertText });\r\n this.setState({ alertType: alertType });\r\n this.setState({ executableCode: executableCode });\r\n };\r\n\r\n hideAlert = (e) => {\r\n if (e.target === e.currentTarget) {\r\n this.setState({ alert: false });\r\n }\r\n };\r\n\r\n\r\n //show and hide spinner\r\n showSpinner = () => {\r\n this.setState({ spinner: true });\r\n };\r\n\r\n hideSpinner = () => {\r\n this.setState({ spinner: false });\r\n };\r\n\r\n //show and hide toaster\r\n showToaster = (toasterText, toasterType) => {\r\n this.setState({\r\n toaster: true,\r\n toasterText: toasterText,\r\n toasterType: toasterType\r\n });\r\n setTimeout(() => this.setState({ toaster: false }), 3500)\r\n };\r\n\r\n toasterAndSpinner(toasterText, toasterType) {\r\n this.showToaster(toasterText, toasterType);\r\n this.hideSpinner();\r\n }\r\n\r\n // hide login page\r\n logIn = () => {\r\n this.setState({ loggedIn: true });\r\n this.hideSpinner();\r\n };\r\n\r\n logOut = () => {\r\n localStorage.removeItem(\"jwt\");\r\n this.setState({ loggedIn: false });\r\n this.props.history.push('/')\r\n };\r\n\r\n \r\n\r\n // loading panel or login page\r\n loadPage = () => {\r\n\r\n if (this.state.loggedIn === false) {\r\n return \r\n } else {\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n