{"version":3,"sources":["Modules/Base/Components/Layouts/BaseLayout.js","Utils/Services/LocalStorage.js","Utils/Services/AmplifyHelperClass.js","Utils/Services/Formatter.js","Configuracion/index.js","Utils/Services/httpService.js","Utils/Services/http.js","Utils/Services/ToResult.js","Utils/index.js","Modules/Public/Url/index.js","Modules/Cfdi/Models/index.js","Utils/Common/Required.js","Utils/Common/TextField.js","Modules/Public/Components/LinkTerminos.js","Modules/Public/Components/Formulario.js","Modules/Public/Components/Inicio.js","Modules/Public/Routes/index.js","Modules/Cfdi/Urls/index.js","Modules/Cfdi/Components/Busqueda.js","Modules/Cfdi/Components/Receptor.js","Modules/Cfdi/Components/Layout.js","Modules/Cfdi/Components/Comprobante/ShowInfo.js","Modules/Cfdi/Components/Comprobante/TableItem.js","Modules/Cfdi/Components/Comprobante/Loading.js","Modules/Cfdi/Components/Comprobante/ButtonLoading.js","Modules/Cfdi/Components/Comprobante/index.js","Modules/Cfdi/Components/Visualizador.js","Modules/Cfdi/Routes/index.js","Modules/Base/Routes.js","Modules/Base/index.js","Modules/Base/Reducers.js","index.js"],"names":["BaseLayout","this","props","children","react_default","a","createElement","lib","key","React","Component","LocalStorage","dataSource","Object","classCallCheck","timeIn","hours","h","minutes","m","seconds","s","get","token","window","location","pathname","getToken","undefined","obj","data","lastModified","set","time","modified","objectSpread","GetHoursInMiliSeconds","AmplifyHelperClass","expiredObject","reactLocalStorage","getObject","expires","setObject","setExpiredObject","arguments","length","now","Date","getTime","setupTime","concat","moment","locale","BASE_URL","fetchservices","removeurl","url","pop","findurl","x","push","addurl","httpService","params","routeURL","serverURL","settings","method","headers","server","fetch","then","response","status","Error","statusText","json","isvalid","post","body","Accept","Content-Type","JSON","stringify","mode","http","request","callback","ToResult","ejecutarCallBack","err","GetResult","PostResult","Services_ToResult","ToResultGet","ToResultPost","ValidaUso","r","ValidaUsoPost","ValidaDemo","localStorage","ToResultService","empresas","schemaProducto","_NoIdentificacion","_Descripcion","_Unidad","_Impuestos","_ValoresUnitarios","_Familias","_Moneda","schemaReceptor","_DomicilioFiscal","_Pais","c_Pais","_Estado","_CP","_DatosFiscales","_Contactos","_Grupos","schemaComprobante","_Serie","_Folio","_CfdiRelacionados","_TipoRelacion","_Comprobantes","_Emisor","_Sucursal","_RegimenFiscal","_DomicilioFisico","c_Moneda","_FormaPago","c_FormaPago","_MetodoPago","c_MetodoPago","_TipoComprobante","_TipoComprobanteID","_Receptor","_UsoCFDI","c_UsoCFDI","_Conceptos","_Complementos","_NotasRelacionadas","_Adenda","_Renglones","RegexRFC","RegExp","Numero","Num","Number","CalcImporteConcepto","concepto","_Cantidad","_Producto","_ValorUnitario","CalcSubTotalConcepto","CalcDescuentoConcepto","_Descuento","EsImpuestoTraslado","impuesto","_TipoImpuesto","_Codigo","EsImpuestoRetencion","CalcUnImpuesto","index","base","_TipoFactor","c_TipoFactor","ImpuestoFactorExento","ImpuestoFactorTasa","_TasaOCuota","rangoFinal","CalcImpuestosConcepto","map","_Total","reduce","p","c","CalcImpuestosRetenidosConcepto","filter","CalcImpuestosTrasladadosConcepto","CalcTotalConcepto","CalcTotales","_ref","_Subtotal","CalcSubTotal","_Impuesto","CalcImpuestos","_ImpuestosRetenidos","CalcImpuestosRetenciones","_ImpuestosTrasladados","CalcImpuestosTrasladados","CalcDescuentos","CalcTotal","currency","number","decimal","parseFloat","toFixed","replace","IMG_LOGO","ShowMessage","result","hasMessage","msj","type","title","GetTypeMessage","NotificationManager","message","isValid","EstatusVenta","TipoAsignacionComprobante","schemaEmpresa","_Configuracion","_DatosVenta","_Sucursales","MismaEmpresaUrlYGuardada","empresa","_ref3","match","_ShortName","empresaName","TieneMismosConcepto","_Producto1","_Producto2","_TieneImpuestos","mismosImpuestos","forEach","imp1","tieneElImpuesto","imp2","c_Impuesto","ObtenerConceptosSeleccionados","_ref4","_Concepto","isSelected","Pasos","Required","style","color","TextField","_ref$cols","cols","_ref$text","text","_ref$onChange","onChange","name","value","_ref$required","required","className","LinkTerminos","state","e","preventDefault","setState","showModalTerminos","onClick","handleOpenTerminos","bind","Modal","bsSize","show","onHide","handleCloseTerminos","Header","closeButton","Title","Body","Footer","Button","INIT_FORM","_RFC","_Correo","_EmpresaID","_Registrarme","_AceptoTerminos","Formulario","form","ObtenerEmpresas","_this2","_this3","currentTarget","updateForm","target","checked","defineProperty","toUpperCase","test","trim","warning","isInvalidRfc","nombreEmpresa","_this$state","TieneEmpresa","onSubmit","onSubmitForm","updateFormEmpresa","disabled","_NombreComercial","FormGroup","Checkbox","Components_LinkTerminos","Inicio","$","document","ready","$bgSection","each","bgUrl","attr","parent","css","addClass","remove","AutoAffix_default","container","topClassName","affixClassName","id","data-toggle","data-target","aria-expanded","href","src","alt","anchor_link_default","Components_Formulario","data-wow-duration","OwlCarousel_default","loop","margin","nav","height","Routes","Route","exact","path","component","receptores","sat","ventas","cfdi","_SucursalID","Busqueda","_Fecha","format","precargarInformacion","TieneEmpresaName","ObtenerEmpresa","informacion","ObtenerSucursalDefault","_e$target","isNaN","_ref2","venta","dateEmision","_FechaEmision","dateVencimiento","add","_DiasTramitarFactura","dateHoy","duration","diff","asDays","_Estatus","_TipoAsignacionComprobante","success","_ComprobanteID","PasoElTiempoDeTimbrado","_Empresa","_Logo","sucursal","_SucursalEmisorID","_Activa","_Nombre","updateFormNumber","updateFormCheckboxExtrajero","onClickInicio","usoscfdi","paises","estados","codigospostales","receptor","ObtenerReceptorDelEmisor","ObtenerDatosReceptor","_EmisorID","_response$data","c_CodigoPostal","c_Estado","_this4","modifico","_this5","_this$state2","_GrupoID","_Tipo","_Calle","_Colonia","_Exterior","_Interior","_Localidad","_Municipio","estado","_Telefono","_Celular","_Enviar","_Guardar","usocfdi","_this$state3","pais","descripcion","nombre","onClickAtras","Layout","GetUrlInicio","paddingBottom","ShowInfo","INIT_CONCEPTO","TableItem","_ref$concepto","onCheck","_Importe","Loading","loading","fontSize","ButtonLoading","objectWithoutProperties","assign","Comprobante","loadingData","comprobante","receptorGenerico","monedas","tiposcomprobantes","tiposrelaciones","metodospago","formaspago","productos","PasoValido","_UserID","_RfcReceptor","_Cliente","_RegimenesCFDI","_EmisorCFDI","_ProductosCFDI","_TiposComprobantesCFDI","_MonedasCFDI","_FormasPagoCFDI","_MetodosPagoCFDI","_TiposRelacionesCFDI","_UsosCFDI","emisor","regimenes","regimen","_Regimenes","c_RegimenFiscal","EmisorComprobante","suc","uso","u","ObtenerUsoGenerico","ReceptorComprobante","_CantidadMayor","_FormasPago","fp","_Comprobante","tipo","metodo","producto","_ProdServ","c_ClaveProdServ","_ClaveProdServConsumo","_ProductoID","_Traslados","_Retenciones","_AllSelected","_UsaFacturacionPorConsumo","onClickTimbrarVenta","_ComprobantesIds","OcupaNotaDeCredito","_TipoCambio","_UserName","ObtenerUsuarioYGrupo","ObtenerTipoComprobanteNotaDeCredito","ObtenerComprobanteRelacionado","c_TipoRelacion","ObtenerTipoRelacionNotadeCredito","ObtenerConceptoNotaDeCredito","_NuevaNotaDeCredito","_ComprobantePorConsumo","_ConceptosComprobante","_ClaveProdServ","_ConceptoComprobante","_EstaConcepto","_ConceptoNdC","_NotadeCredito","_Observaciones","loadingFacturar","ObtenerComprobanteNotaDeCreditoDelComprobanteTimbrado","TimbrarComprobante","_this$state4","Cliente","vendedor","_Vendedor","_NoCliente","_Domicilio","contacto","_Fletes","_Transportes","_UsaPaqueteria","_ExcluyeComision","_VendedorPrincipalID","_VendedorID","_Activo","comprobanteTimbrado","_Ventas","_VentaID","_EstatusDescripcion","_TimbradaPorUsuario","ind","_this6","_ComoConsumo","ObtenerConceptoConsumo","_this$state5","DireccionEmisor","join","UsaFacturaPorConsumo","onCheckPorConsumo","colSpan","cursor","Visualizador","comprobanteId","_this","ObtenerComprobanteId","rutas","ObtenerConfiguracionRutas","ObtenerComprobantePorId","open","_RutaXml","timbrado","uuid","_RutaPdf","_RutaZip","_ContactosString","_ContactosArray","split","i","ObtenerContactos","loadingEnviar","MostrarMensajeDeFacturaCorrectamente","bsStyle","display","width","zip","xml","pdf","onClickOtroComprobante","withBaseLayout","WrapperComponent","_React$Component","Wrapper","possibleConstructorReturn","getPrototypeOf","apply","inherits","createClass","Components_Layout","Cfdi_Routes","Receptor","Base_Routes","toConsumableArray","publicRoutes","cfdiRoutes","Base","HashRouter","Layouts_BaseLayout","routes","Reducers","combineReducers","createStoreWithMiddleware","applyMiddleware","createStore","ReactDOM","render","es","store","Modules_Base","querySelector"],"mappings":"oPAaeA,mLAPb,MAAO,CACNC,KAAKC,MAAMC,SACXC,EAAAC,EAAAC,cAACC,EAAA,sBAAD,CAAuBC,IAAI,0BAJLC,IAAMC,gGCsDhBC,aAxDd,SAAAA,EAAYC,GAAaC,OAAAC,EAAA,EAAAD,CAAAZ,KAAAU,GAAAV,KAIzBc,OAAS,CACRC,MAAO,SAACC,GAAD,OAAQ,KAAeA,GAC9BC,QAAS,SAACC,GAAD,OAAQ,IAAaA,GAC9BC,QAAS,SAACC,GAAD,OAAQ,IAAQA,IANzBpB,KAAKW,WAAaA,kDASfJ,GACH,OAAOP,KAAKW,WAAWU,IAAId,sCAI3B,IAAMe,EAAQtB,KAAKW,WAAWU,IAAI,aAClC,OAAKC,GAAsC,MAA7BC,OAAOC,SAASC,SACvBH,EADgDC,OAAOC,SAAW,yCAI7DjB,GACZ,IAAMe,EAAQtB,KAAK0B,WAEnB,OAAOJ,EAAQA,EAAMf,QAAOoB,iCAGtBpB,GACN,IAAMqB,EAAM5B,KAAKqB,IAAId,GACrB,OAAIqB,GAEG,+BAGJrB,EAAIsB,GAGP,OAFA7B,KAAK8B,aAAevB,EACpBP,KAAKW,WAAWoB,IAAIxB,EAAKsB,EAAM7B,KAAKgC,MAC7BhC,yCAEI6B,GAGX,OAFA7B,KAAK8B,aAAe,YACpB9B,KAAKW,WAAWoB,IAAI,YAAaF,GAC1B7B,yCAEI6B,GACX,IAAMP,EAAQtB,KAAK0B,WACbO,EAAWjC,KAAK8B,aAAe9B,KAAK8B,aAAe,YACzD9B,KAAK+B,IAAIE,EAATrB,OAAAsB,EAAA,EAAAtB,CAAA,GAAwBU,EAAUO,sCAEzBG,GACThC,KAAKgC,KAAOA,EAEZ,IAAMV,EAAQtB,KAAK0B,WAEnB,OADA1B,KAAK+B,IAAI,YAAaT,EAAOU,GACtBhC,sBCpDHmC,EAAwB,SAAEpB,GAAF,OAAsB,GAARA,EAAa,GAAK,KAEzCqB,8FAEhB7B,GACH,IAAIP,KAAKqC,cAAc9B,GACvB,OAAO+B,oBAAkBC,UAAUhC,+BAGhCA,EAAKsB,EAAMW,GACdF,oBAAkBG,UAAUlC,EAAKsB,GACjC7B,KAAK0C,iBAAiBnC,8CAGI,IAAVA,EAAUoC,UAAAC,OAAA,QAAAjB,IAAAgB,UAAA,GAAAA,UAAA,GAAJ,GAChBE,GAAM,IAAIC,MAAOC,UACjBC,EAAYV,oBAAkBC,UAAlB,aAAAU,OAAyC1C,IAC1C,MAAbyC,EACHV,oBAAkBG,UAAlB,aAAAQ,OAAyC1C,GAAOsC,GAE1CA,EAAMG,EAAcb,EArBf,KAsBVG,oBAAkBG,UAAlB,aAAAQ,OAAyC1C,GAAOsC,2CAK9B,IAAPtC,EAAOoC,UAAAC,OAAA,QAAAjB,IAAAgB,UAAA,GAAAA,UAAA,GAAH,GACXE,GAAM,IAAIC,MAAOC,UACjBC,EAAYV,oBAAkBC,UAAlB,aAAAU,OAAyC1C,IAC3D,OAAiB,MAAbyC,KAGGH,EAAMG,EAAcb,EAAsB,WAAhD,2BCjCHe,IAAOC,OAAO,MAGd,ICLaC,EAAW,6BCEpBC,EAAgB,GAEdC,EAAW,SAAUC,GAAKF,EAAcG,IAAID,IAC5CE,EAAU,SAAUF,GACzB,IAAK,IAAIG,EAAI,EAAGA,EAAIL,EAAcT,OAAQc,IAAM,GAAIL,EAAcK,KAAOH,EAAM,OAAO,EAC1E,OAJE,SAASA,GAAKF,EAAcM,KAAKJ,GAI/CK,CAAOL,IAAY,GAuELM,EApEK,CACnBxC,IADmB,SACfyC,GACH,IAAIC,EACAC,EACEC,EAAW,CAChBC,OAAQ,MACRC,QAAS,CACP7C,WAAOK,IAWV,MAPsB,kBAAXmC,GACVC,EAAWD,EAAOP,IAClBS,EAAYF,EAAOM,SAEnBL,EAAWD,EACXE,EAAYZ,GAEVK,EAAQM,GACHM,MAAML,EAAYD,EAAUE,GAAUK,KAAK,SAAAC,GACjD,GAAwB,MAApBA,EAASC,OAEZ,MADAlB,EAAUS,GACJ,IAAIU,MAAMF,EAASG,YAG1B,OADApB,EAAUS,GACHQ,EAASI,SAGX,CAAEC,SAAQ,IAIlBC,KAhCmB,SAgCdf,EAAQgB,GACZ,IAAIf,EACAC,EACEC,EAAW,CAChBC,OAAQ,OACRC,QAAS,CACRY,OAAU,mBACVC,eAAgB,mBAChB1D,WAAOK,GAERmD,KAAMG,KAAKC,UAAUJ,IAUtB,MARsB,kBAAXhB,GACVC,EAAWD,EAAOP,IAClBS,EAAYF,EAAOM,OACnBH,EAASkB,KAAO,YAEhBpB,EAAWD,EACXE,EAAYZ,GAEVK,EAAQM,GACHM,MAAML,EAAYD,EAAUE,GAAUK,KAAK,SAACC,GAClD,GAAwB,MAApBA,EAASC,OAEZ,MADAlB,EAAUS,GACJ,IAAIU,MAAMF,EAASG,YAG1B,OADApB,EAAUS,GACHQ,EAASI,SAGX,CAAEC,SAAS,KCtELQ,EAAA,SACPC,EAASC,GACf,IAAMf,EAAWV,EAAYxC,IAAIgE,GAC7Bd,EAASD,MACZC,EAASD,KAAK,SAACC,GACFe,EAAS,KAAMf,MALhBa,EAAA,SAaNC,EAASP,EAAMQ,GACtB,IAAMf,EAAWV,EAAYgB,KAAKQ,EAASP,GACvCP,EAASD,MACZC,EAASD,KAAK,SAACC,GACde,EAAS,KAAMf,MCjBbgB,sCACKC,iBAAmB,SAACF,EAAUG,EAAKlB,GACtC,GAAwB,oBAAbe,EAAyB,OAAO,EAExCG,EACCH,EAASG,GAETH,EAAS,KAAMf,IAPrBgB,EAUKG,UAAY,SAACnC,EAAK+B,GACrBF,EAAS7B,EAAI,SAACkC,EAAIlB,GACdgB,EAASC,iBAAiBF,EAASG,EAAKlB,MAZ9CgB,EAgBKI,WAAa,SAACpC,EAAK1B,EAAMyD,GAC5BF,EAAU7B,EAAI1B,EAAK,SAAC4D,EAAKlB,GACrBgB,EAASC,iBAAiBF,EAAUG,EAAKlB,MAKvC,IAAAqB,EAAA,CACVC,YADU,SACGtC,EAAK+B,GACdC,EAASG,UAAUnC,EAAI+B,IAE3BQ,aAJU,SAIIvC,EAAI1B,EAAKyD,GACnBC,EAASI,WAAWpC,EAAI1B,EAAKyD,IAEjCS,UAPU,SAOCC,EAAEV,GACTC,EAASU,cAAcD,EAAEV,IAE7BY,WAVU,WAWNX,EAASW,eC3BJC,EAAe,IAAIzF,EAAa,IAAI0B,GACnCmD,EAAWa,ECVZC,EACQ,yCCSRC,EAAiB,CAC7BC,kBAAkB,GAClBC,aAAa,GACbC,QAAQ,GACRC,WAAW,GACXC,kBAAkB,GAClBC,UAAU,GACVC,QAAQ,IAYIC,EAAiB,CAC1BC,iBAAiBnG,OAAAsB,EAAA,EAAAtB,CAAA,GATkB,CACnCoG,MAAO,CACHC,OAAQ,OAEZC,QAAS,GACTC,IAAK,KAOLC,eAAgB,GAChBC,WAAY,GACZC,QAAS,IAwBAC,EAAoB,CAC7BC,OAAO,GACPC,OAAO,GACPC,kBAAmB,CACfC,cAAc,GACdC,cAAc,IAElBC,QAAQjH,OAAAsB,EAAA,EAAAtB,CAAA,GAhEgB,CACxBkH,UAAW,GACXC,eAAgB,GAChBX,eAAe,GACfL,iBAAiB,GACjBiB,iBAAiB,KA8DjBnB,QAAQjG,OAAAsB,EAAA,EAAAtB,CAAA,GA9Be,CACvBqH,SAAS,QAgCTC,WAAWtH,OAAAsB,EAAA,EAAAtB,CAAA,GA7Be,CAC1BuH,YAAY,OA+BZC,YAAYxH,OAAAsB,EAAA,EAAAtB,CAAA,GA5Be,CAC3ByH,aAAa,QA8BbC,iBAAiB1H,OAAAsB,EAAA,EAAAtB,CAAA,GA3Be,CAChC2H,mBAAmB,OA6BnBC,UAAU5H,OAAAsB,EAAA,EAAAtB,CAAA,GACHkG,EADE,CAEL2B,SAAS7H,OAAAsB,EAAA,EAAAtB,CAAA,GA5BW,CACxB8H,UAAW,OA+BXC,WAAY,GACZC,cAAe,GACfC,mBAAoB,GACpBC,QAAS,CACLC,WAAY,KAIPC,EAAW,IAAIC,OAAO,wFAEtBC,EAAS,SAACC,GAAD,OAASC,OAAQD,GAAO,IAGjCE,EAAsB,SAAEC,GAAF,OACvBJ,EAAOI,EAASC,WAAaL,EAAOI,EAASE,UAAUC,iBAEtDC,EAAuB,SAAEJ,GAAF,OACxBD,EAAoBC,GAAYK,EAAsBL,IAGrDK,EAAwB,SAAEL,GAAF,OACtBJ,EAAOI,EAASM,YAAe,IAAQP,EAAqBC,IAQ9DO,EAAqB,SAAEC,GAAF,MACa,MAAnCA,EAASC,cAAcC,SACtBC,EAAsB,SAAEH,GAAF,MACY,MAAnCA,EAASC,cAAcC,SAEtBE,GAAiB,SAAEJ,EAAUK,EAAOC,GAChD,OAZmC,SAAEN,GAAF,MACc,WAAtCA,EAASO,YAAYC,aAW7BC,CAAqBT,GAAkB,EATT,SAAEA,GAAF,MACgB,SAAtCA,EAASO,YAAYC,aASjBE,CAAmBV,GAAcZ,EAAOY,EAASW,YAAYC,YAAcN,EAAQlB,EAAOY,EAASW,YAAYC,aAKlHC,GAAwB,SAAErB,GACtC,IAAMc,EAAOV,EAAqBJ,GAClC,OAAOA,EAASE,UAAU9C,WACvBkE,IAAK,SAACd,EAASK,GACf,IAAMU,EAASX,GAAgBJ,EAAUK,EAAOC,GAChD,OAAOP,EAAmBC,GAAWe,GAAmB,EAAVA,IAE9CC,OAAO,SAAEC,EAAGC,GAAL,OAAYD,EAAIC,GAAG,IAGjBC,GAAiC,SAAE3B,GAC/C,IAAMc,EAAOV,EAAqBJ,GAClC,OAAOA,EAASE,UAAU9C,WACvBwE,OAAOjB,GACPW,IAAI,SAAEd,EAAUK,GAAZ,OAAuBD,GAAgBJ,EAAUK,EAAOC,KAAQU,OAAO,SAACC,EAAGC,GAAJ,OAAUD,EAAIC,GAAG,IAGnFG,GAAmC,SAAE7B,GACjD,IAAMc,EAAOV,EAAqBJ,GAClC,OAAOA,EAASE,UAAU9C,WACvBwE,OAAOrB,GACPe,IAAI,SAACd,EAASK,GAAV,OAAoBD,GAAgBJ,EAAUK,EAAOC,KAAQU,OAAO,SAACC,EAAGC,GAAJ,OAAUD,EAAIC,GAAG,IAGhFI,GAAoB,SAAE9B,GAAF,OAAiBI,EAAqBJ,GAAYqB,GAAsBrB,IAc5F+B,GAAc,SAAAC,GAAsB,IAAlB3C,EAAkB2C,EAAlB3C,WAC9B,MAAO,CACN4C,UAd0B,SAAE5C,GAAF,OAAkBA,EAAWiC,IAAIvB,GAAqByB,OAAO,SAACC,EAAGC,GAAJ,OAAUD,EAAIC,GAAG,GAc7FQ,CAAa7C,GACxB8C,UAb2B,SAAE9C,GAAF,OAAkBA,EAAWiC,IAAID,IAAuBG,OAAO,SAACC,EAAGC,GAAJ,OAAUD,EAAIC,GAAG,GAahGU,CAAc/C,GACzBgD,oBAZsC,SAAEhD,GAAF,OAAkBA,EAAWiC,IAAIK,IAAgCH,OAAO,SAACC,EAAGC,GAAJ,OAAUD,EAAIC,GAAG,GAYzGY,CAAyBjD,GAC/CkD,sBAXsC,SAAElD,GAAF,OAAkBA,EAAWiC,IAAIO,IAAkCL,OAAO,SAACC,EAAGC,GAAJ,OAAUD,EAAIC,GAAG,GAWzGc,CAAyBnD,GACjDiB,WAV4B,SAAEjB,GAAF,OAAkBA,EAAWiC,IAAIjB,GAAuBmB,OAAO,SAACC,EAAGC,GAAJ,OAAUD,EAAIC,GAAG,GAUhGe,CAAepD,GAC3BkC,OATuB,SAAElC,GAAF,OAAkBA,EAAWiC,IAAIQ,IAAmBN,OAAO,SAACC,EAAGC,GAAJ,OAAUD,EAAIC,GAAG,GAS3FgB,CAAUrD,KAKPsD,GAAW,eAAEC,EAAFvJ,UAAAC,OAAA,QAAAjB,IAAAgB,UAAA,GAAAA,UAAA,GAAW,EAAGwJ,EAAdxJ,UAAAC,OAAA,QAAAjB,IAAAgB,UAAA,GAAAA,UAAA,GAAwB,EAAxB,WAAAM,OAAoCmJ,WAAWF,GAAQG,QAAQF,GAASG,QAAQ,2BAA4B,SA8BvHC,GAAW,8BAgDXC,GAAc,SAAEC,GAC5B,GAAGA,EAAOC,WAAW,CACd,IAAMC,EAlBgB,SAACC,GAC3B,OAAQA,GACJ,KAAK,EACD,MAAO,CAAEA,KAAM,UAAWC,MAAO,SACrC,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,CAACD,KAAM,OAAQC,MAAO,SACjC,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,CAACD,KAAM,UAAWC,MAAO,eACpC,QACI,MAAO,CAACD,KAAM,QAASC,MAAO,UAKtBC,CAAeL,EAAOG,MACxCG,sBAAoBJ,EAAIC,MAAMH,EAAOO,QAASL,EAAIE,OAEnD,OAAOJ,EAAOQ,SAGFC,GAGF,EAKEC,GAEJ,EAFIA,GAGH,EAGGC,GAAgB,CACzBC,eAAe,CACXC,YAAY,IAIhBC,YAAa,IAIJC,GAA2B,SAAEC,EAAFC,GAA0B,IAAbC,EAAaD,EAAbC,MACjD,OAAOF,GACHA,EAAQJ,gBACRI,EAAQJ,eAAeC,aACvBG,EAAQJ,eAAeC,YAAYM,aAAeD,EAAM7J,OAAO+J,aAe1DC,GAAsB,SAAEC,EAAYC,GAC7C,GAAGD,EAAWE,kBAAoBD,EAAWC,iBAAmBF,EAAWrH,WAAW9D,SAAWoL,EAAWtH,WAAW9D,OACnH,OAAO,EACX,IAAIsL,GAAkB,EAgBtB,OAfAH,EAAWrH,WAAWyH,QAAQ,SAACC,GAC3B,IAAIC,GAAkB,EACtBL,EAAWtH,WAAWyH,QAAQ,SAACG,GACnBF,EAAK3C,UAAU8C,aAAeD,EAAK7C,UAAU8C,YAC7CH,EAAK/D,YAAYC,eAAiBgE,EAAKjE,YAAYC,cACnD8D,EAAKrE,cAAcC,UAAYsE,EAAKvE,cAAcC,SAClDoE,EAAK3D,YAAYC,aAAe4D,EAAK7D,YAAYC,aAErD2D,GAAkB,KAGtBA,IACAH,GAAkB,KAGnBA,GA+CEM,GAAgC,SAAAC,GACzC,MAAO,CACH9F,WAFyD8F,EAAjB9F,WAEjBuC,OAAO,SAAEwD,GAAF,OAAgBA,EAAUC,eAKnDC,GACD,EADCA,GAEC,EAFDA,GAGC,EAHDA,GAII,EAJJA,GAKK,EC/XHC,GAAA,kBAAO1O,EAAAC,EAAAC,cAAA,KAAGyO,MAAO,CAACC,MAAM,QAAjB,MCCtBC,GAAA,SAAe1D,GAAgG,IAA7FpL,EAA6FoL,EAA7FpL,SAA6F+O,EAAA3D,EAAnF4D,YAAmF,IAAAD,EAA5E,EAA4EA,EAAAE,EAAA7D,EAAzE8D,YAAyE,IAAAD,EAAnE,GAAmEA,EAAAE,EAAA/D,EAA/DgE,gBAA+D,IAAAD,EAApD,aAAoDA,EAA1CE,EAA0CjE,EAA1CiE,KAAMC,EAAoClE,EAApCkE,MAAO5C,EAA6BtB,EAA7BsB,KAA6B6C,EAAAnE,EAAvBoE,gBAAuB,IAAAD,KAC3G,OACItP,EAAAC,EAAAC,cAAA,OAAKsP,UAAS,UAAA1M,OAAYiM,EAAZ,YAAAjM,OAA2BiM,EAA3B,YAAAjM,OAA0CiM,IACpD/O,EAAAC,EAAAC,cAAA,aAASH,GAAYkP,EAArB,KAA8BM,EAAWvP,EAAAC,EAAAC,cAACwO,GAAD,MAAe,IACxD1O,EAAAC,EAAAC,cAAA,SACIuM,KAAOA,GAAQ,OACf2C,KAAOA,EACPC,MAAQA,EACRF,SAAWA,EACXK,UAAU,eACVD,SAAUA,EAAS,WAAW,iBCkG/BE,8MA3GXC,MAAQ,qFACWC,GACfA,EAAEC,iBACF/P,KAAKgQ,SAAS,CAAEC,mBAAmB,gDAGnBH,GAChB9P,KAAKgQ,SAAS,CAAEC,mBAAmB,qCAGnC,MAAO,CACH9P,EAAAC,EAAAC,cAAA,UAAQsP,UAAU,cAAcO,QAAUlQ,KAAKmQ,mBAAmBC,KAAKpQ,MAASO,IAAI,WAApF,yBAGAJ,EAAAC,EAAAC,cAACgQ,GAAA,EAAD,CAAOC,OAAO,QAAQC,KAAMvQ,KAAK6P,MAAMI,kBAAmBO,OAASxQ,KAAKyQ,oBAAoBL,KAAKpQ,MAAQO,IAAI,WACrGJ,EAAAC,EAAAC,cAACgQ,GAAA,EAAMK,OAAP,CAAcC,aAAW,GACzBxQ,EAAAC,EAAAC,cAACgQ,GAAA,EAAMO,MAAP,CAAcjB,UAAU,eAAxB,oDAEAxP,EAAAC,EAAAC,cAACgQ,GAAA,EAAMQ,KAAP,KACI1Q,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,mBACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,OACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,0CACXxP,EAAAC,EAAAC,cAAA,u3CAOIF,EAAAC,EAAAC,cAAA,WACJF,EAAAC,EAAAC,cAAA,u2EAWIF,EAAAC,EAAAC,cAAA,WACJF,EAAAC,EAAAC,cAAA,k3BAKIF,EAAAC,EAAAC,cAAA,WACJF,EAAAC,EAAAC,cAAA,4vBAIAF,EAAAC,EAAAC,cAAA,m0BAIIF,EAAAC,EAAAC,cAAA,WACJF,EAAAC,EAAAC,cAAA,uuBAIIF,EAAAC,EAAAC,cAAA,WACJF,EAAAC,EAAAC,cAAA,gdAEIF,EAAAC,EAAAC,cAAA,WACJF,EAAAC,EAAAC,cAAA,8GACIF,EAAAC,EAAAC,cAAA,WACJF,EAAAC,EAAAC,cAAA,2tBAIIF,EAAAC,EAAAC,cAAA,WACJF,EAAAC,EAAAC,cAAA,soCAMIF,EAAAC,EAAAC,cAAA,WACJF,EAAAC,EAAAC,cAAA,mpBAGIF,EAAAC,EAAAC,cAAA,WACJF,EAAAC,EAAAC,cAAA,kQAEIF,EAAAC,EAAAC,cAAA,WACJF,EAAAC,EAAAC,cAAA,i4BAKIF,EAAAC,EAAAC,cAAA,WACJF,EAAAC,EAAAC,cAAA,6DAEAF,EAAAC,EAAAC,cAAA,eAKhBF,EAAAC,EAAAC,cAACgQ,GAAA,EAAMS,OAAP,KACI3Q,EAAAC,EAAAC,cAAC0Q,EAAA,EAAD,CAAQb,QAASlQ,KAAKyQ,oBAAoBL,KAAKpQ,OAA/C,oBArGGQ,IAAMC,WCQ3BuQ,GAAY,CACdC,KAAK,GACLC,QAAQ,GACRC,WAAW,GACXC,cAAc,EACdC,iBAAiB,GAyJNC,8MArJXzB,MAAQ,CACJxJ,SAAU,GACVoH,QAAQ,GACR8D,KAAK3Q,OAAAsB,EAAA,EAAAtB,CAAA,GACEoQ,wFAIPhR,KAAKwR,4DAGQ,IAAAC,EAAAzR,KACbuF,EAASO,aACdO,EACA,GACA,SAACZ,EAAKlB,GACDA,EAAS0I,SACGwE,EAAKzB,SAAS,CAAE3J,SAAU9B,EAAS1C,mDAMhCiO,GAAG,IAAA4B,EAAA1R,KACZwP,EAAQM,EAAE6B,cAAcnC,MAC9BxP,KAAK4R,WAAW9B,EAAE,WACd,IAAMrC,EAAUiE,EAAK7B,MAAMxJ,SAAS6E,OAAO,SAAEuC,GAAF,OAAeA,EAAQ0D,aAAe3B,IAAQ,GACzFrJ,EAAapE,IAAI,UAAW0L,GAC5BiE,EAAK1B,SAAS,CAAEvC,oDAIoB,IAA9BoE,EAA8BvG,EAA9BuG,OAAUvM,EAAoB3C,UAAAC,OAAA,QAAAjB,IAAAgB,UAAA,GAAAA,UAAA,GAAV,aACtB4M,EAAyBsC,EAAzBtC,KAAMC,EAAmBqC,EAAnBrC,MAAOsC,EAAYD,EAAZC,QACfP,EAASvR,KAAK6P,MAAd0B,KAEFA,EADe,aAAhBM,EAAOjF,KACFhM,OAAAsB,EAAA,EAAAtB,CAAA,GACG2Q,EADH3Q,OAAAmR,EAAA,EAAAnR,CAAA,GAEC2O,EAAOuC,IAGRlR,OAAAsB,EAAA,EAAAtB,CAAA,GACG2Q,EADH3Q,OAAAmR,EAAA,EAAAnR,CAAA,GAEC2O,EAAgB,SAATA,EAAiBC,EAAMwC,cAAgBxC,IAGvDxP,KAAKgQ,SAAS,CACVuB,QACDjM,wCAGMwK,GACTA,EAAEC,iBADS,IAEHwB,EAASvR,KAAK6P,MAAd0B,KACR,GAAIA,EAAKF,gBAAT,CAIA,IAAIrI,EAASiJ,KAAKV,EAAKN,KAAKiB,QAGxB,OAFAnF,sBAAoBoF,QAAQ,0CAA2C,oBACvEnS,KAAKgQ,SAAS,CAACoC,cAAc,IAIjCjM,EAAapE,IAAI,cAAe,CAC5BkP,KAAMM,EAAKN,KAAKiB,OAChBhB,QAASK,EAAKL,QAAQgB,OACtBd,aAAcG,EAAKH,aACnBC,gBAAiBE,EAAKF,kBAE1BlL,EAAapE,IAAI,gBAAiB6M,IAClCrN,OAAOC,SAAP,KAAAyB,OAAuBjD,KAAK6P,MAAMpC,QAAQJ,eAAeC,YAAYM,iBAhBjEb,sBAAoBoF,QAAQ,+CAAgD,sDAoBhF,OAAOnS,KAAKC,MAAMoS,+CAIhB,IAAAC,EACyBtS,KAAK6P,MAAxB0B,EADNe,EACMf,KAAMlL,EADZiM,EACYjM,SACd,OACIlG,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,+CACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,mBACT3P,KAAKuS,gBACHpS,EAAAC,EAAAC,cAAA,MAAIsP,UAAU,eACT3P,KAAKC,MAAMoS,eAGpBlS,EAAAC,EAAAC,cAAA,qCACAF,EAAAC,EAAAC,cAAA,8EACAF,EAAAC,EAAAC,cAAA,QAAMsP,UAAU,OAAO6C,SAAWxS,KAAKyS,aAAarC,KAAKpQ,OACrDG,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,QACR3P,KAAKuS,gBACJpS,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,8BACXxP,EAAAC,EAAAC,cAAA,0BAAiBF,EAAAC,EAAAC,cAACwO,GAAD,OACjB1O,EAAAC,EAAAC,cAAA,UACIkP,KAAK,aACLC,MAAQ+B,EAAKJ,WACb7B,SAAWtP,KAAK0S,kBAAkBtC,KAAKpQ,MACvC2P,UAAU,eACVD,UAAQ,GAERvP,EAAAC,EAAAC,cAAA,UAAQmP,MAAM,GAAGmD,UAAQ,GAAzB,0BACEtM,EAASuE,IAAI,SAAE6C,EAAStD,GAAX,OACXhK,EAAAC,EAAAC,cAAA,UAAQmP,MAAO/B,EAAQ0D,WAAY5Q,IAAG,WAAA0C,OAAakH,IAAWsD,EAAQmF,sBAKtFzS,EAAAC,EAAAC,cAAC2O,GAAD,CAAWE,KAAOlP,KAAKuS,eAAiB,EAAF,EAAK3F,KAAK,OAAO2C,KAAK,OAAOC,MAAQ+B,EAAKN,KAAO3B,SAAWtP,KAAK4R,WAAWxB,KAAKpQ,MAAQ0P,UAAQ,GAAvI,WAIJvP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,OACXxP,EAAAC,EAAAC,cAAC2O,GAAD,CAAWE,KAAM,EAAGtC,KAAK,QAAQ2C,KAAK,UAAUC,MAAQ+B,EAAKL,QAAU5B,SAAWtP,KAAK4R,WAAWxB,KAAKpQ,MAAQ0P,UAAQ,GAAvH,4BAGAvP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,8BACXxP,EAAAC,EAAAC,cAAA,WACAF,EAAAC,EAAAC,cAACwS,EAAA,EAAD,KASI1S,EAAAC,EAAAC,cAACyS,EAAA,EAAD,CACIvD,KAAK,kBACLuC,QAAUP,EAAKF,gBACf/B,SAAWtP,KAAK4R,WAAWxB,KAAKpQ,OAHpC,cAKeG,EAAAC,EAAAC,cAAC0S,GAAD,UAK3B5S,EAAAC,EAAAC,cAAA,WACIF,EAAAC,EAAAC,cAAC0Q,EAAA,EAAD,CAAQpB,UAAU,oCAAoC/C,KAAK,UAA3D,gCA7IHpM,IAAMC,wECuMhBuS,gPAjMP,OAZAC,IAAEC,UAAUC,MAAM,WACd,IAAIC,EAAaH,IAAE,eAChBG,GACCA,EAAWC,KAAK,WACZ,IACIC,EAAQ,OADAL,IAAEjT,MAAME,SAAS,OAAOqT,KAAK,OACZ,IAC7BN,IAAEjT,MAAMwT,SAASC,IAAI,kBAAmBH,GACxCL,IAAEjT,MAAMwT,SAASE,SAAS,cAC1BT,IAAEjT,MAAM2T,aAKhBxT,EAAAC,EAAAC,cAAA,OAAKE,IAAI,eACLJ,EAAAC,EAAAC,cAACuT,GAAAxT,EAAD,CACIyT,UAAW7T,KACX8T,aAAa,YACbC,eAAe,SACf5T,EAAAC,EAAAC,cAAA,OAAK2T,GAAG,eAAerE,UAAU,2EAC7BxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,aACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,iBACXxP,EAAAC,EAAAC,cAAA,UAAQuM,KAAK,SAAS+C,UAAU,0BAA0BsE,cAAY,WAAWC,cAAY,qBAAqBC,gBAAc,SAC5HhU,EAAAC,EAAAC,cAAA,QAAMsP,UAAU,WAAhB,qBACAxP,EAAAC,EAAAC,cAAA,QAAMsP,UAAU,aAChBxP,EAAAC,EAAAC,cAAA,QAAMsP,UAAU,aAChBxP,EAAAC,EAAAC,cAAA,QAAMsP,UAAU,cAEpBxP,EAAAC,EAAAC,cAAA,KAAGsP,UAAU,OAAOyE,KAAK,MACrBjU,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,YAAY0E,IAAI,mCAAmCC,IAAI,qBAG9EnU,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,sCAAsCqE,GAAG,qBACpD7T,EAAAC,EAAAC,cAAA,MAAIsP,UAAU,sDACVxP,EAAAC,EAAAC,cAAA,MAAIsP,UAAU,UACVxP,EAAAC,EAAAC,cAACkU,GAAAnU,EAAD,CAAcgU,KAAK,WAAnB,WAEJjU,EAAAC,EAAAC,cAAA,UACIF,EAAAC,EAAAC,cAACkU,GAAAnU,EAAD,CAAagU,KAAK,aAAlB,wBAEJjU,EAAAC,EAAAC,cAAA,UACIF,EAAAC,EAAAC,cAACkU,GAAAnU,EAAD,CAAagU,KAAK,YAAlB,gBAEJjU,EAAAC,EAAAC,cAAA,UACIF,EAAAC,EAAAC,cAACkU,GAAAnU,EAAD,CAAagU,KAAK,YAAlB,aAEJjU,EAAAC,EAAAC,cAAA,UACIF,EAAAC,EAAAC,cAACkU,GAAAnU,EAAD,CAAcgU,KAAK,QAAnB,oBAOxBjU,EAAAC,EAAAC,cAAA,WAAS2T,GAAG,SAASrE,UAAU,8BAC3BxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,0CACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,cACXxP,EAAAC,EAAAC,cAAA,OAAKgU,IAAI,oCAAoCC,IAAI,QAErDnU,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,aACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,mBACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,qCACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,iBACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,iBAAiB0E,IAAI,8BAA8BC,IAAI,oBAE1EnU,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,mBAAf,uCACAxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,cAAf,4HAEJxP,EAAAC,EAAAC,cAACmU,GAAD,CAAYnC,cAAerS,KAAKC,MAAM0N,MAAM7J,OAAO+J,kBAKnE1N,EAAAC,EAAAC,cAAA,WAAS2T,GAAG,WAAWrE,UAAU,yCAC7BxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,aACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,OACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,+BACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,6BAA6B8E,oBAAkB,MAC1DtU,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,iBACXxP,EAAAC,EAAAC,cAAA,KAAGsP,UAAU,wBAEjBxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,oBACXxP,EAAAC,EAAAC,cAAA,yCACAF,EAAAC,EAAAC,cAAA,4GAIZF,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,+BACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,6BAA6B8E,oBAAkB,MAC1DtU,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,iBACXxP,EAAAC,EAAAC,cAAA,KAAGsP,UAAU,mBAEjBxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,oBACXxP,EAAAC,EAAAC,cAAA,kCACAF,EAAAC,EAAAC,cAAA,qHAIZF,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,+BACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,6BAA6B8E,oBAAkB,MAC1DtU,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,iBACXxP,EAAAC,EAAAC,cAAA,KAAGsP,UAAU,kBAEjBxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,oBACXxP,EAAAC,EAAAC,cAAA,2BACAF,EAAAC,EAAAC,cAAA,8JAOxBF,EAAAC,EAAAC,cAAA,WAASsP,UAAU,aACfxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,aACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,OACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,iCACXxP,EAAAC,EAAAC,cAAA,MAAIsP,UAAU,wBAK9BxP,EAAAC,EAAAC,cAAA,WAAS2T,GAAG,UAAUrE,UAAU,kCAC5BxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,aACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,gBACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,gDACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,oDAAoD8E,oBAAkB,MACjFtU,EAAAC,EAAAC,cAAA,MAAIsP,UAAU,kBAAd,sCAwCpBxP,EAAAC,EAAAC,cAAA,WAAS2T,GAAG,UAAUrE,UAAU,oCAC5BxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,aACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,OACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,iCACXxP,EAAAC,EAAAC,cAACqU,GAAAtU,EAAD,CACIuP,UAAU,yBACVgF,MAAI,EACJC,OAAQ,GACRC,KAAG,GAEH1U,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,UACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,gBAAgBmF,OAAO,OAAOT,IAAI,uCAAuCC,IAAI,YAEhGnU,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,UACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,gBAAgBmF,OAAO,OAAOT,IAAI,yCAAyCC,IAAI,YAElGnU,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,UACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,gBAAgBmF,OAAO,OAAOT,IAAI,uCAAuCC,IAAI,iBAOpHnU,EAAAC,EAAAC,cAAA,WAAS2T,GAAG,MAAMrE,UAAU,oCACxBxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,aACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,OACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,+DACXxP,EAAAC,EAAAC,cAAA,MAAIsP,UAAU,kBAAd,2BACAxP,EAAAC,EAAAC,cAAA,KAAGsP,UAAU,iBAAb,oGAtMXnP,IAAMC,YCJZsU,GAAA,CACd5U,EAAAC,EAAAC,cAAC2U,EAAA,EAAD,CAAOzU,IAAI,SAAS0U,OAAK,EAACC,KAAK,IAAIC,UAAYnC,MCNnC3M,GACoB,2CAGpB+O,GACkB,4CADlBA,GAED,yBAGCC,GACF,gBADEA,GAEI,mBAFJA,GAII,mBAMJC,GACO,oCADPA,GAEO,6BAGPC,GACG,mBADHA,GAEa,qCAFbA,GAGC,2BAHDA,GAIH,qBAJGA,GAKS,sBALTA,GAMgB,gCANhBA,GAOqB,qCAPrBA,GAQe,+BCZtBvE,GAAY,CACdC,KAAK,GACLC,QAAQ,GACRsE,YAAY,GACZ/N,OAAO,GACPoD,OAAQ,EACRuG,cAAc,EACdC,iBAAiB,GAwPNoE,8MAnPX5F,MAAQ,CACJpC,QAAQ7M,OAAAsB,EAAA,EAAAtB,CAAA,GACDwM,IAEPmE,KAAK3Q,OAAAsB,EAAA,EAAAtB,CAAA,GACEoQ,GADH,CAEA0E,OAAQxS,MAASyS,OAAO,mGAK5B,QAAS3V,KAAKC,MAAM0N,MAAM7J,OAAO+J,wDAIjC,IAAMJ,EAAUtH,EAAa9E,IAAI,WACjC,GAAIoM,GAAWD,GAAyBC,EAASzN,KAAKC,OAClDD,KAAKgQ,SAAS,CAAEvC,WAAWzN,KAAK4V,qBAAqBxF,KAAKpQ,WACvD,KAAGA,KAAK6V,mBAIX,YADAtU,OAAOC,SAAW,MAFlBxB,KAAK8V,eAAe9V,KAAK4V,qBAAqBxF,KAAKpQ,uDAQvD,IAAM+V,EAAc5P,EAAa9E,IAAI,eAClC0U,GACC/V,KAAKgQ,SAAS,CACVuB,KAAK3Q,OAAAsB,EAAA,EAAAtB,CAAA,GACEoQ,GACA+E,EAFH,CAGAL,OAAQxS,MAASyS,OAAO,cACxBH,YAAaxV,KAAKgW,8EAMV,IACZvI,EAAYzN,KAAK6P,MAAjBpC,QACR,OAAmC,IAA/BA,EAAQF,YAAY3K,OACb6K,EAAQF,YAAY,GAAGiI,YAC3B,4CAG0B,IAAA/D,EAAAzR,KAArBsF,EAAqB3C,UAAAC,OAAA,QAAAjB,IAAAgB,UAAA,GAAAA,UAAA,GAAV,aACvB4C,EAASO,aAAcO,GAAyC,GAAI,SAACZ,EAAKlB,GAClEA,EAAS0I,QACTwE,EAAKzB,SAAS,CAAEvC,QAASlJ,EAAS1C,MAAQyD,GAE3C/D,OAAOC,SAAW,yDAKzB,OAAOxB,KAAKC,MAAM0N,MAAM7J,OAAO+J,qDAGlBiC,GACbA,EAAEC,wEAGiC,IAC3B+B,EAD2BxG,EAATuG,OAClBC,QACR9R,KAAKgQ,SAAS,CACVuB,KAAK3Q,OAAAsB,EAAA,EAAAtB,CAAA,GACEZ,KAAK6P,MAAM0B,KADd,CAEAN,KAAMa,EAAU,gBAAgB,gDAK3BhC,GAAG,IAAAmG,EACQnG,EAAE+B,OAAlBtC,EADQ0G,EACR1G,KAAMC,EADEyG,EACFzG,MACR+B,EAASvR,KAAK6P,MAAd0B,KACF2E,MAAM9M,OAAOoG,KACbxP,KAAKgQ,SAAS,CACVuB,KAAK3Q,OAAAsB,EAAA,EAAAtB,CAAA,GACE2Q,EADH3Q,OAAAmR,EAAA,EAAAnR,CAAA,GAEC2O,EAAOC,EAAM0C,iDAMN,IAAVL,EAAUsE,EAAVtE,OACFtC,EAAyBsC,EAAzBtC,KAAMC,EAAmBqC,EAAnBrC,MAAOsC,EAAYD,EAAZC,QACfP,EAASvR,KAAK6P,MAAd0B,KAEFA,EADe,aAAhBM,EAAOjF,KACFhM,OAAAsB,EAAA,EAAAtB,CAAA,GACG2Q,EADH3Q,OAAAmR,EAAA,EAAAnR,CAAA,GAEC2O,EAAOuC,IAGRlR,OAAAsB,EAAA,EAAAtB,CAAA,GACG2Q,EADH3Q,OAAAmR,EAAA,EAAAnR,CAAA,GAEC2O,EAAgB,SAATA,EAAiBC,EAAMwC,cAAcE,OAAS1C,EAAM0C,SAGpElS,KAAKgQ,SAAS,CACVuB,wDAIgB6E,EAAO3I,GAC3B,IAAM4I,EAAcnT,IAAQA,IAAOkT,EAAME,eAAeX,ORiErC,eQhEbY,EAAkBrT,IAAQmT,EAAYG,IAAI/I,EAAQJ,eAAeC,YAAYmJ,qBAAsB,QAASd,ORgE/F,eQ/Dbe,EAAUxT,IAAQA,MAASyS,OR+Dd,eQ7DnB,OADazS,IAAOyT,SAASD,EAAQE,KAAKL,IAAkBM,SAC9C,uCAGL/G,GAAE,IAAA4B,EAAA1R,KACX8P,EAAEC,iBADS,IAEHwB,EAASvR,KAAK6P,MAAd0B,KACRhM,EAASO,aAAcwP,GAA0B/D,EAAO,SAAC9L,EAAKlB,GAC1D,GAAIiI,GAAYjI,GAAW,CACvB,IAAM6R,EAAQ7R,EAAS1C,KASvB,GARAsE,EAAapE,IAAI,cAAe,CAC5BkP,KAAMM,EAAKN,KAAKiB,OAChBhB,QAASK,EAAKL,QAAQgB,OACtBd,aAAcG,EAAKH,aACnBC,gBAAiBE,EAAKF,kBAE1BlL,EAAapE,IAAI,QAASwC,EAAS1C,MACnCsE,EAAapE,IAAI,gBAAiB6M,IAC9BwH,EAAMU,WAAa5J,IAChBkJ,EAAMW,6BAA+B5J,GAGpC,OAFAJ,sBAAoBiK,QAAQ,8BAA+B,cAC3DzV,OAAOC,SAAP,KAAAyB,OAAuByO,EAAK7B,MAAMpC,QAAQJ,eAAeC,YAAYM,WAArE,kBAAA3K,OAAgGmT,EAAMa,iBAI1GvF,EAAKwF,uBAAuBd,EAAOA,EAAMe,UAIzCpK,sBAAoBoF,QAAQ,8EAA+E,gBAH3GpF,sBAAoBiK,QAAQ,oBAAqB,SACjDzV,OAAOC,SAAP,KAAAyB,OAAuByO,EAAK7B,MAAMpC,QAAQJ,eAAeC,YAAYM,WAArE,uDAQFkC,GACVA,EAAEC,iBADU,IAEJwB,EAASvR,KAAK6P,MAAd0B,KACRpL,EAAapE,IAAI,cAAe,CAC5BkP,KAAMM,EAAKN,KAAKiB,OAChBhB,QAASK,EAAKL,QAAQgB,OACtBd,aAAcG,EAAKH,aACnBC,gBAAiBE,EAAKF,kBAE1BlL,EAAapE,IAAI,gBAAiB,GAClCR,OAAOC,SAAP,sCAGI,IAAA8Q,EACsBtS,KAAK6P,MAAvB0B,EADJe,EACIf,KAAM9D,EADV6E,EACU7E,QACd,OACItN,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,+CACXxP,EAAAC,EAAAC,cAAA,QAAMsP,UAAU,OAAO6C,SAAWxS,KAAKyS,aAAarC,KAAKpQ,OACrDG,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,OACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,8BACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,iBAAiB0E,IAAM5G,EAAQ2J,OAAS7K,GAAW+H,IAAI,MAE1EnU,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,iCACXxP,EAAAC,EAAAC,cAAA,0EACAF,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,oBACfxP,EAAAC,EAAAC,cAAA,QAAMsP,UAAU,QAAhB,kFAAmGxP,EAAAC,EAAAC,cAAA,WACnGF,EAAAC,EAAAC,cAAA,QAAMsP,UAAU,QAAhB,qFAAoGlC,EAAQJ,eAAeC,YAAYmJ,qBAAvI,wEAIRtW,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,OACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,8BACXxP,EAAAC,EAAAC,cAAA,0BAAiBF,EAAAC,EAAAC,cAACwO,GAAD,OACjB1O,EAAAC,EAAAC,cAAA,UACIkP,KAAK,cACLC,MAAQ+B,EAAKiE,YACblG,SAAWtP,KAAK4R,WAAWxB,KAAKpQ,MAChC2P,UAAU,eACVD,UAAQ,GAERvP,EAAAC,EAAAC,cAAA,UAAQmP,MAAM,GAAGmD,UAAQ,GAAzB,2BACElF,EAAQF,YAAYrC,OAAO,SAAAmM,GAAQ,OAAIA,EAASC,mBAAqBD,EAASE,UAAU3M,IAAI,SAAEyM,EAAUlN,GAAZ,OAC1FhK,EAAAC,EAAAC,cAAA,UAAQmP,MAAO6H,EAAS7B,YAAajV,IAAG,YAAA0C,OAAckH,IAAWkN,EAASG,aAItFrX,EAAAC,EAAAC,cAAC2O,GAAD,CAAWO,KAAK,SAASC,MAAQ+B,EAAK9J,OAAS6H,SAAWtP,KAAK4R,WAAWxB,KAAKpQ,MAAQ0P,UAAQ,GAA/F,0BAGAvP,EAAAC,EAAAC,cAAC2O,GAAD,CAAWpC,KAAK,OAAO2C,KAAK,SAASC,MAAQ+B,EAAKmE,OAASpG,SAAWtP,KAAK4R,WAAWxB,KAAKpQ,MAAQ0P,UAAQ,GAA3G,SAGAvP,EAAAC,EAAAC,cAAC2O,GAAD,CAAWO,KAAK,SAASC,MAAQ+B,EAAK1G,OAASyE,SAAWtP,KAAKyX,iBAAiBrH,KAAKpQ,MAAQ0P,UAAQ,GAArG,UAIJvP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,OACXxP,EAAAC,EAAAC,cAAC2O,GAAD,CAAWpC,KAAK,OAAO2C,KAAK,OAAOC,MAAQ+B,EAAKN,KAAO3B,SAAWtP,KAAK4R,WAAWxB,KAAKpQ,MAAQ0P,UAAQ,GAAvG,UAGAvP,EAAAC,EAAAC,cAAC2O,GAAD,CAAWpC,KAAK,QAAQ2C,KAAK,UAAUC,MAAQ+B,EAAKL,QAAU5B,SAAWtP,KAAK4R,WAAWxB,KAAKpQ,MAAQ0P,UAAQ,GAA9G,4BAGAvP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,8BACXxP,EAAAC,EAAAC,cAAA,WACAF,EAAAC,EAAAC,cAACwS,EAAA,EAAD,KACI1S,EAAAC,EAAAC,cAACyS,EAAA,EAAD,CAAUvD,KAAK,iBAAkBuC,QAAwB,kBAAdP,EAAKN,KAA2B3B,SAAWtP,KAAK0X,4BAA4BtH,KAAKpQ,OAA5H,kBAGAG,EAAAC,EAAAC,cAACyS,EAAA,EAAD,CACIvD,KAAK,kBACLuC,QAAUP,EAAKF,gBACf/B,SAAWtP,KAAK4R,WAAWxB,KAAKpQ,OAHpC,cAKeG,EAAAC,EAAAC,cAAC0S,GAAD,UAU3B5S,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,OACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,8BACXxP,EAAAC,EAAAC,cAAA,UAAQsP,UAAU,mCAAmCO,QAAUlQ,KAAK2X,cAAcvH,KAAKpQ,OAAvF,WAEJG,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,8CACXxP,EAAAC,EAAAC,cAAC0Q,EAAA,EAAD,CAAQpB,UAAU,oCAAoC/C,KAAK,UAA3D,wBA3OLpM,IAAMC,WCzBvBuQ,GAAY,CACdC,KAAK,GACLC,QAAQ,GACRC,WAAW,GACXnK,MAAM,MACNE,QAAQ,GACRuB,SAAS,GACT2I,cAAc,EACdC,iBAAiB,GAmRNoE,8MA/QX5F,MAAQ,CACJxJ,SAAU,GACVuR,SAAU,GACVC,OAAQ,GACRC,QAAS,GACTC,gBAAiB,GACjBC,SAAS,GAGTvK,QAAQ7M,OAAAsB,EAAA,EAAAtB,CAAA,GACDwM,IAEPmE,KAAK3Q,OAAAsB,EAAA,EAAAtB,CAAA,GACEoQ,wFAKP,IAAMvD,EAAUtH,EAAa9E,IAAI,WACjC,GAAIoM,GAAWD,GAA0BC,EAASzN,KAAKC,OACnDD,KAAKgQ,SAAS,CAAEvC,WAAWzN,KAAKiY,yBAAyB7H,KAAKpQ,WAC3D,KAAGA,KAAK6V,mBAIX,YADAtU,OAAOC,SAAW,MAFlBxB,KAAK8V,eAAe9V,KAAKiY,yBAAyB7H,KAAKpQ,OAK3DA,KAAKkY,uBACLlY,KAAK4V,sEAIL,IAAMG,EAAc5P,EAAa9E,IAAI,eAClC0U,GACC/V,KAAKgQ,SAAS,CACVuB,KAAK3Q,OAAAsB,EAAA,EAAAtB,CAAA,GACEoQ,GACA+E,gDAOf,QAAS/V,KAAKC,MAAM0N,MAAM7J,OAAO+J,8DAIjC,OAAO7N,KAAKC,MAAM0N,MAAM7J,OAAO+J,+DAGT,IAAA4D,EAAAzR,KAAAsS,EACItS,KAAK6P,MAAvBpC,EADc6E,EACd7E,QAAS8D,EADKe,EACLf,KACXwE,EAAc5P,EAAa9E,IAAI,eACrCkE,EAASO,aAAcsP,GAAyC,CAC5D+C,UAAW1K,EAAQ0K,UACnBlH,KAAM8E,EAAY9E,MAClB,SAACxL,EAAKlB,GACL,GAAGA,EAAS1C,KAAK,KAAAuW,EACyB7T,EAAS1C,KAAvCkF,EADKqR,EACLrR,iBAAkByQ,EADbY,EACaZ,QAC1B/F,EAAKzB,SAAS,CACXgI,SAAUzT,EAAS1C,KACnB0P,KAAK3Q,OAAAsB,EAAA,EAAAtB,CAAA,GACE2Q,EACAxK,EAFH,CAGAI,IAAKJ,EAAiBI,IAAIkR,eAC1BrR,MAAOD,EAAiBC,MAAMC,QAAUF,EAAiBG,QAAQD,OACjEC,QAASH,EAAiBG,QAAQoR,SAClCd,0DAOiB,IAAA9F,EAAA1R,KAArBsF,EAAqB3C,UAAAC,OAAA,QAAAjB,IAAAgB,UAAA,GAAAA,UAAA,GAAV,aACvB4C,EAASO,aAAcO,GAAyC,GAAI,SAACZ,EAAKlB,GAClEA,EAAS0I,QACTyE,EAAK1B,SAAS,CAAEvC,QAASlJ,EAAS1C,MAAQyD,GAE1C/D,OAAOC,SAAW,sDAIR,IAAA+W,EAAAvY,KAClBuF,EAASO,aAAcuP,GAAc,GAAI,SAAC5P,EAAKlB,GACvCA,EAAS0I,SAASsL,EAAKvI,SAAS,CAAE6H,OAAQtT,EAAS1C,SAE3D0D,EAASO,aAAcuP,GAAiB,GAAI,SAAC5P,EAAKlB,GAC1CA,EAAS0I,SAASsL,EAAKvI,SAAS,CAAE8H,QAASvT,EAAS1C,SAE5D0D,EAASO,aAAcuP,GAAiB,GAAI,SAAC5P,EAAKlB,GAC1CA,EAAS0I,SAASsL,EAAKvI,SAAS,CAAE4H,SAAUrT,EAAS1C,kDAIhDiO,GACbA,EAAEC,uDAGkB,IAAV8B,EAAUvG,EAAVuG,OACFtC,EAAyBsC,EAAzBtC,KAAMC,EAAmBqC,EAAnBrC,MAAOsC,EAAYD,EAAZC,QACfP,EAASvR,KAAK6P,MAAd0B,KAEFA,EADe,aAAhBM,EAAOjF,KACFhM,OAAAsB,EAAA,EAAAtB,CAAA,GACG2Q,EADH3Q,OAAAmR,EAAA,EAAAnR,CAAA,GAEC2O,EAAOuC,IAGRlR,OAAAsB,EAAA,EAAAtB,CAAA,GACG2Q,EADH3Q,OAAAmR,EAAA,EAAAnR,CAAA,GAEC2O,EAAOC,IAGhBxP,KAAKgQ,SAAS,CACVuB,OACAiH,UAAU,yCAIL1I,GAAE,IAAA2I,EAAAzY,KACX8P,EAAEC,iBADS,IT4MiBkB,ES5MjByH,EASP1Y,KAAK6P,MANLpC,EAHOiL,EAGPjL,QACA8D,EAJOmH,EAIPnH,KACAyG,EALOU,EAKPV,SACAF,EANOY,EAMPZ,QACAD,EAPOa,EAOPb,OACAD,EAROc,EAQPd,SAEE9T,EAAS,CACX6U,SAAUlL,EAAQkL,SAClBnQ,UAAU5H,OAAAsB,EAAA,EAAAtB,CAAA,GACHoX,EADE,CAELR,QAASjG,EAAKiG,QACdpQ,eAAexG,OAAAsB,EAAA,EAAAtB,CAAA,GACRoX,EAAS5Q,eADF,CAEV6J,KAAMM,EAAKN,KAAKiB,OAChB0G,OT0LgB3H,ES1LWM,EAAKN,KT2LnC,kBAATA,EACO,EAES,KAAhBA,EAAKrO,OACE,EAEJ,KS/LKmE,iBAAiBnG,OAAAsB,EAAA,EAAAtB,CAAA,GACVoX,EAASjR,iBADA,CAEZ8R,OAAQtH,EAAKsH,OACbC,SAAUvH,EAAKuH,SACfC,UAAWxH,EAAKwH,UAChBC,UAAWzH,EAAKyH,UAChBC,WAAY1H,EAAK0H,WACjBC,WAAY3H,EAAK2H,WACjBhS,QAAS4Q,EAAQ5M,OAAQ,SAAAiO,GAAM,OAAIA,EAAOb,WAAa/G,EAAKrK,UAAU,IAAM,GAC5EF,MAAO6Q,EAAO3M,OAAQ,SAAAiO,GAAM,OAAIA,EAAOlS,SAAWsK,EAAKvK,QAAQ,IAAM,GACrEG,IAAI,CAAEkR,eAAgB9G,EAAKpK,OAE/BE,WAAY,CAAC,CACLmQ,QAAU,oBACVtG,QAAUK,EAAKL,QACfkI,UAAY,GACZC,SAAW,GACXC,SAAU,EACVC,UAAW,OAK3BhU,EAASO,aAAcsP,GAAsBtR,EAAS,SAAC2B,EAAKlB,GACrDA,EAAS0I,SACR9G,EAAapE,IAAI,gBAAiB6M,IAClCzI,EAAapE,IAAI,WAAWwC,EAAS1C,MACrCsE,EAAapE,IAAI,WAAW6V,EAAS1M,OAAQ,SAAAsO,GAAO,OAAIA,EAAQ9Q,YAAc6I,EAAK9I,WAAW,IAAM,IACpGlH,OAAOC,SAAP,KAAAyB,OAAuBwV,EAAK5I,MAAMpC,QAAQJ,eAAeC,YAAYM,WAArE,iBAEApB,GAAYjI,0CAMXuL,GACTA,EAAEC,iBACFxO,OAAOC,SAAP,KAAAyB,OAAuBjD,KAAK6P,MAAMpC,QAAQJ,eAAeC,YAAYM,6CAGjE,IAAA6L,EACiDzZ,KAAK6P,MAAlD0B,EADJkI,EACIlI,KAAM9D,EADVgM,EACUhM,QAASoK,EADnB4B,EACmB5B,OAAQC,EAD3B2B,EAC2B3B,QAASF,EADpC6B,EACoC7B,SACxC,OACIzX,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,+CACXxP,EAAAC,EAAAC,cAAA,QAAMsP,UAAU,OAAO6C,SAAWxS,KAAKyS,aAAarC,KAAKpQ,OACzDG,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,OACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,8BACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,iBAAiB0E,IAAM5G,EAAQ2J,OAAS7K,GAAW+H,IAAI,MAE1EnU,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,iCACXxP,EAAAC,EAAAC,cAAA,+DACAF,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,oBACXxP,EAAAC,EAAAC,cAAA,QAAMsP,UAAU,QAAhB,mCAA6DxP,EAAAC,EAAAC,cAAA,WAC7DF,EAAAC,EAAAC,cAAA,QAAMsP,UAAU,QAAhB,qFAAoGlC,EAAQJ,eAAeC,YAAYmJ,qBAAvI,wEAIZtW,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,OACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,8BACXxP,EAAAC,EAAAC,cAAA,sBACAF,EAAAC,EAAAC,cAAA,UAAQkP,KAAK,QAAQC,MAAQ+B,EAAKvK,MAAQsI,SAAWtP,KAAK4R,WAAWxB,KAAKpQ,MAAS2P,UAAU,gBACzFxP,EAAAC,EAAAC,cAAA,UAAQmP,MAAM,GAAGmD,UAAQ,GAAzB,yBACEkF,EAAOjN,IAAI,SAAE8O,EAAMvP,GAAR,OACThK,EAAAC,EAAAC,cAAA,UAAQmP,MAAOkK,EAAKzS,OAAQ1G,IAAG,QAAA0C,OAAUkH,IAAWuP,EAAKC,iBAIrExZ,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,8BACXxP,EAAAC,EAAAC,cAAA,wBACAF,EAAAC,EAAAC,cAAA,UAAQkP,KAAK,UAAUC,MAAQ+B,EAAKrK,QAAUoI,SAAWtP,KAAK4R,WAAWxB,KAAKpQ,MAAS2P,UAAU,gBAC7FxP,EAAAC,EAAAC,cAAA,UAAQmP,MAAM,GAAGmD,UAAQ,GAAzB,yBACEmF,EACG5M,OAAQ,SAAEiO,GAAF,OAAcA,EAAOlS,SAAWsK,EAAKvK,QAC7C4D,IAAI,SAAEuO,EAAQhP,GAAV,OACLhK,EAAAC,EAAAC,cAAA,UAAQmP,MAAO2J,EAAOb,SAAU/X,IAAG,UAAA0C,OAAYkH,IAAWgP,EAAOS,YAI7EzZ,EAAAC,EAAAC,cAAC2O,GAAD,CAAWO,KAAK,aAAaC,MAAQ+B,EAAK2H,WAAa5J,SAAWtP,KAAK4R,WAAWxB,KAAKpQ,OAAvF,6BAGAG,EAAAC,EAAAC,cAAC2O,GAAD,CAAWO,KAAK,WAAWC,MAAQ+B,EAAKuH,SAAWxJ,SAAWtP,KAAK4R,WAAWxB,KAAKpQ,OAAnF,YAIJG,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,OACXxP,EAAAC,EAAAC,cAAC2O,GAAD,CAAWO,KAAK,SAASC,MAAQ+B,EAAKsH,OAASvJ,SAAWtP,KAAK4R,WAAWxB,KAAKpQ,OAA/E,SAGAG,EAAAC,EAAAC,cAAC2O,GAAD,CAAWO,KAAK,YAAYC,MAAQ+B,EAAKwH,UAAYzJ,SAAWtP,KAAK4R,WAAWxB,KAAKpQ,OAArF,eAGAG,EAAAC,EAAAC,cAAC2O,GAAD,CAAWO,KAAK,YAAYC,MAAQ+B,EAAKyH,UAAY1J,SAAWtP,KAAK4R,WAAWxB,KAAKpQ,OAArF,eAGAG,EAAAC,EAAAC,cAAC2O,GAAD,CAAWO,KAAK,MAAMC,MAAQ+B,EAAKpK,IAAMmI,SAAWtP,KAAK4R,WAAWxB,KAAKpQ,OAAzE,kBAIJG,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,OACXxP,EAAAC,EAAAC,cAAC2O,GAAD,CAAWO,KAAK,aAAaC,MAAQ+B,EAAK0H,WAAa3J,SAAWtP,KAAK4R,WAAWxB,KAAKpQ,OAAvF,aAGAG,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,8BACXxP,EAAAC,EAAAC,cAAA,6BACAF,EAAAC,EAAAC,cAAA,UAAQkP,KAAK,WAAWC,MAAQ+B,EAAK9I,SAAW6G,SAAWtP,KAAK4R,WAAWxB,KAAKpQ,MAAS2P,UAAU,eAAeD,UAAQ,GAC1HvP,EAAAC,EAAAC,cAAA,UAAQmP,MAAM,GAAGmD,UAAQ,GAAzB,0BACMiF,EAAShN,IAAI,SAAE4O,EAASrP,GAAX,OACXhK,EAAAC,EAAAC,cAAA,UAAQmP,MAAOgK,EAAQ9Q,UAAWnI,IAAG,WAAA0C,OAAakH,IAAWqP,EAAQ9Q,UAArE,MAAqF8Q,EAAQG,iBAIzGxZ,EAAAC,EAAAC,cAAC2O,GAAD,CAAWO,KAAK,UAAUL,KAAK,IAAIM,MAAQ+B,EAAKiG,QAAUlI,SAAWtP,KAAK4R,WAAWxB,KAAKpQ,OAA1F,iBAIJG,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,OACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,8BACRxP,EAAAC,EAAAC,cAAA,UAAQsP,UAAU,mCAAmCO,QAAUlQ,KAAK6Z,aAAazJ,KAAKpQ,OAAtF,aAEHG,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,8CACXxP,EAAAC,EAAAC,cAAC0Q,EAAA,EAAD,CAAQpB,UAAU,oCAAoC/C,KAAK,UAA3D,wBAvQLpM,IAAMC,WCyEdqZ,8MAlFXjK,MAAQ,iFAKJ,IAAMpC,EAAUtH,EAAa9E,IAAI,WACjC,OAAIoM,GAAWA,EAAQJ,eACnB,KAAApK,OAAYwK,EAAQJ,eAAeC,YAAYM,YAEnD,sCAIA,IAAMH,EAAUtH,EAAa9E,IAAI,WAajC,OAZA4R,IAAEC,UAAUC,MAAM,WACd,IAAIC,EAAaH,IAAE,eAChBG,GACCA,EAAWC,KAAK,WACZ,IACIC,EAAQ,OADAL,IAAEjT,MAAME,SAAS,OAAOqT,KAAK,OACZ,IAC7BN,IAAEjT,MAAMwT,SAASC,IAAI,kBAAmBH,GACxCL,IAAEjT,MAAMwT,SAASE,SAAS,cAC1BT,IAAEjT,MAAM2T,aAKhBxT,EAAAC,EAAAC,cAAA,OAAKE,IAAI,eACLJ,EAAAC,EAAAC,cAACuT,GAAAxT,EAAD,CACIG,IAAI,YACJsT,UAAW7T,KACX8T,aAAa,YACbC,eAAe,SACf5T,EAAAC,EAAAC,cAAA,OAAK2T,GAAG,eAAerE,UAAU,2EAC7BxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,aACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,iBACXxP,EAAAC,EAAAC,cAAA,UAAQuM,KAAK,SAAS+C,UAAU,0BAA0BsE,cAAY,WAAWC,cAAY,qBAAqBC,gBAAc,SAC5HhU,EAAAC,EAAAC,cAAA,QAAMsP,UAAU,WAAhB,qBACAxP,EAAAC,EAAAC,cAAA,QAAMsP,UAAU,aAChBxP,EAAAC,EAAAC,cAAA,QAAMsP,UAAU,aAChBxP,EAAAC,EAAAC,cAAA,QAAMsP,UAAU,cAEpBxP,EAAAC,EAAAC,cAAA,KAAG+T,KAAOpU,KAAK+Z,eAAiBpK,UAAU,QACtCxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,YAAYmF,OAAO,OAAOT,KAAQ5G,EAAUA,EAAQ2J,WAAOzV,IA9CpF,mCA8CwH2S,IAAI,qBAG1HnU,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,sCAAsCqE,GAAG,qBACpD7T,EAAAC,EAAAC,cAAA,MAAIsP,UAAU,sDACVxP,EAAAC,EAAAC,cAAA,MAAIsP,UAAU,UACVxP,EAAAC,EAAAC,cAAA,KAAG+T,KAAOpU,KAAK+Z,gBAAf,WAQJ5Z,EAAAC,EAAAC,cAAA,UACIF,EAAAC,EAAAC,cAAA,KAAG+T,KAAK,MAAR,eAOxBjU,EAAAC,EAAAC,cAAA,WAAS2T,GAAG,SAASrE,UAAU,8BAC3BxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,0CACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,cACXxP,EAAAC,EAAAC,cAAA,OAAKgU,IAAI,oCAAoCC,IAAI,QAErDnU,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,aACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,kBAAkBb,MAAO,CAAEkL,cAAe,UACnDha,KAAKC,MAAMC,qBAzExBM,IAAMC,WCLZwZ,GAAA,SAACha,GAAD,OACXE,EAAAC,EAAAC,cAAA,YAAMF,EAAAC,EAAAC,cAAA,SAAIJ,EAAM4M,MAAV,MAAN,IAA8B5M,EAAMC,SAASC,EAAAC,EAAAC,cAAA,aCG3C6Z,GAAgB,CAClB1Q,UAAW,IAKf2Q,GAAA,SAAe7O,GAAA,IAAA8O,EAAA9O,EAAGhC,gBAAH,IAAA8Q,EAAAxZ,OAAAsB,EAAA,EAAAtB,CAAA,GAAmBsZ,IAAnBE,EAAA9O,EAAqC+O,QAArC,OACXla,EAAAC,EAAAC,cAAA,UAEIF,EAAAC,EAAAC,cAAA,UAAKiJ,EAASC,WACdpJ,EAAAC,EAAAC,cAAA,MAAIsP,UAAU,cAAcrG,EAASE,UAAUhD,cAC/CrG,EAAAC,EAAAC,cAAA,MAAIsP,UAAU,eAAgB1D,GAAU3C,EAASgR,aCf1CC,GAAA,SAAAjP,GAA0B,IAAxBkP,EAAwBlP,EAAxBkP,QAASta,EAAeoL,EAAfpL,SACtB,OAAOsa,EACHra,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,eACXxP,EAAAC,EAAAC,cAAA,UACIF,EAAAC,EAAAC,cAAA,KAAGsP,UAAU,uCAEjBxP,EAAAC,EAAAC,cAAA,QAAMyO,MAAO,CAAC2L,SAAS,QAAvB,eAELva,aCPPwa,GAAA,SAAepP,GAAuC,IAAnCkP,EAAmClP,EAAnCkP,QAASlL,EAA0BhE,EAA1BgE,SAAarP,EAAaW,OAAA+Z,GAAA,EAAA/Z,CAAA0K,EAAA,wBAClD,OAAOkP,EACHra,EAAAC,EAAAC,cAAC0Q,EAAA,EAADnQ,OAAAga,OAAA,GACS3a,EADT,CAEI0S,UAAQ,IAERxS,EAAAC,EAAAC,cAAA,KAAGsP,UAAU,0BAJjB,qBAQAxP,EAAAC,EAAAC,cAAC0Q,EAAA,EAADnQ,OAAAga,OAAA,GACS3a,EADT,CAEIqP,SAAWA,IAETrP,EAAMC,WCsBd8Q,GAAY,CACdC,KAAK,GACLC,QAAQ,GACRC,WAAW,GACXC,cAAc,EACdC,iBAAiB,GAktBNwJ,8MA7sBXhL,MAAQ,CACJiL,aAAa,EACbzU,SAAU,GACVoH,QAAQ7M,OAAAsB,EAAA,EAAAtB,CAAA,GACFwM,IAENmE,KAAK3Q,OAAAsB,EAAA,EAAAtB,CAAA,GACEoQ,IAEPoF,MAAM,GACN2E,YAAYna,OAAAsB,EAAA,EAAAtB,CAAA,GACL2G,EADI,CAEPM,QAAQjH,OAAAsB,EAAA,EAAAtB,CAAA,GACD2G,EAAkBM,SAEzBW,UAAU5H,OAAAsB,EAAA,EAAAtB,CAAA,GACH2G,EAAkBiB,WAEzBG,WAAY,KAEhBqS,iBAAiBpa,OAAAsB,EAAA,EAAAtB,CAAA,GAAMkG,GACvBmU,QAAS,GACTC,kBAAmB,GACnBC,gBAAiB,GACjBC,YAAa,GACbC,WAAY,GACZC,UAAW,uFAIX,IAAM7N,EAAUtH,EAAa9E,IAAI,WAC3B+U,EAAQjQ,EAAa9E,IAAI,SAC/B,GAAIrB,KAAKub,aAAT,CAIA,GAAI9N,GAAWD,GAAyBC,EAASzN,KAAKC,OAClDD,KAAKgQ,SAAS,CAAEvC,UAAS2I,SAASpW,KAAKiY,yBAAyB7H,KAAKpQ,WAClE,KAAGA,KAAK6V,mBAIX,YADAtU,OAAOC,SAAW,MAFlBxB,KAAK8V,eAAe9V,KAAKiY,yBAAyB7H,KAAKpQ,OAK3DA,KAAK4V,4BAXDrU,OAAOC,SAAW,0CAiBtB,OADsB2E,EAAa9E,IAAI,mBACduN,kDAIzB,IAAMmH,EAAc5P,EAAa9E,IAAI,eAClC0U,GACC/V,KAAKgQ,SAAS,CACVuB,KAAK3Q,OAAAsB,EAAA,EAAAtB,CAAA,GACEoQ,GACA+E,8CAMkB,IAAAtE,EAAAzR,KAArBsF,EAAqB3C,UAAAC,OAAA,QAAAjB,IAAAgB,UAAA,GAAAA,UAAA,GAAV,aACjByT,EAAQjQ,EAAa9E,IAAI,SAC/BkE,EAASO,aAAcO,GAAyC,GAAI,SAACZ,EAAKlB,GAClEA,EAAS0I,QACTwE,EAAKzB,SAAS,CAAEvC,QAASlJ,EAAS1C,KAAMuU,SAAS9Q,GAElD/D,OAAOC,SAAW,0DAIH,IAAAkQ,EAAA1R,KAAAsS,EACkBtS,KAAK6P,MAArCkL,EADczI,EACdyI,YAAatN,EADC6E,EACD7E,QAAS2I,EADR9D,EACQ8D,MACxBoD,EAAUrT,EAAa9E,IAAI,YAC3B2W,EAAW7R,EAAa9E,IAAI,YAC5ByC,EAAS,CACX6U,SAAUvC,EAAMuC,SAChB6C,QAASpF,EAAMoF,QACfrD,UAAW1K,EAAQ0K,UACnBsD,aAAcrF,EAAMsF,SAASzK,MAGjC1L,EAASO,aAAcyP,GAAoBzR,EAAQ,SAAC2B,EAAKlB,GACrD,GAAIiI,GAAYjI,GAAW,KAAA6T,EAWnB7T,EAAS1C,KATT8Z,EAFmBvD,EAEnBuD,eACAC,EAHmBxD,EAGnBwD,YACAC,EAJmBzD,EAInByD,eACAC,EALmB1D,EAKnB0D,uBACAC,EANmB3D,EAMnB2D,aACAC,EAPmB5D,EAOnB4D,gBACAC,EARmB7D,EAQnB6D,iBACAC,EATmB9D,EASnB8D,qBACAC,EAVmB/D,EAUnB+D,UAGEtU,EfoCW,SAAEuU,EAAQ9E,EAAoB+E,GAC3D,IAAMhF,EAAW+E,EAAO7O,YAAYrC,OAAO,SAACpD,GAAD,OAAeA,EAAU0N,cAAgB8B,IAAmB,GACnGgF,EAAU,GAId,OAHIF,EAAOhV,eAAemV,WAAW3Z,QAAU,IAC3C0Z,EAAUD,EAAUnR,OAAO,SAAClF,GAAD,OAAOA,EAAEwW,kBAAoBJ,EAAOhV,eAAemV,WAAW,KAAI,IAE1F3b,OAAAsB,EAAA,EAAAtB,CAAA,GACAwb,EADP,CAEItU,UAAUlH,OAAAsB,EAAA,EAAAtB,CAAA,GACHyW,GAEPtP,eAAenH,OAAAsB,EAAA,EAAAtB,CAAA,GAAM0b,Ke/CGG,CAAmBb,EADfnO,EAAQF,YAAYrC,OAAO,SAAAwR,GAAG,OAAIA,EAAIlH,cAAgBY,EAAMe,SAASrP,UAAU0N,cAAc,GAAG8B,kBACtDqE,GACxDnT,EfwNa,SAACwP,EAAUJ,GAC1C,IAAM+E,EA5BwB,SAAE/E,GAAF,OAAgBA,EAAS1M,OAAO,SAAC0R,GAAD,MAAuB,QAAhBA,EAAElU,YAAqB,GA4BhFmU,CAAmBjF,GAE/B,OADAI,EAASvP,SAAWkU,EACb3E,Ee3NuB8E,CAAqB9E,EAAUmE,GACjDzK,EAAK1B,SAAS,CAAEgL,iBAAkBxS,IAClC,IAAIN,EAAa,GACb6U,EAAiB,EACrB3G,EAAM4G,YAAY7O,QAAQ,SAAA8O,GAClBA,EAAG1T,UAAYwT,IACfA,EAAiBE,EAAG1T,UACpBrB,EAAa+U,EAAG/U,cAGxB,IAAMgV,EAAYtc,OAAAsB,EAAA,EAAAtB,CAAA,GACXma,EADW,CAEdrF,OAAQxS,IAAOkT,EAAME,eAAeX,Of2CzB,uBe1CXzN,aACAI,iBAAkBwT,EAAuB5Q,OAAO,SAAAiS,GAAI,OAAIA,EAAK5U,qBAAuBwS,EAAYzS,iBAAiBC,qBAAqB,IAAM,GAC5IH,YAAa6T,EAAiB/Q,OAAO,SAAAkS,GAAM,OAAIA,EAAO/U,eAAiB0S,EAAY3S,YAAYC,eAAe,IAAM,GACpHxB,QAASkV,EAAa7Q,OAAO,SAAAkS,GAAM,OAAIA,EAAOnV,WAAa8S,EAAYlU,QAAQoB,WAAW,IAAM,GAChGJ,UACAW,UAAU5H,OAAAsB,EAAA,EAAAtB,CAAA,GACHma,EAAYvS,UACZA,EAFE,CAGLC,SAAS7H,OAAAsB,EAAA,EAAAtB,CAAA,GACFma,EAAYvS,UAAUC,SACtB+Q,KAGX7Q,WACIyN,EAAMzN,WAAWiC,IAAI,SAAE8D,GACnB,IAAI2O,EAAYxB,EAAe3Q,OAAO,SAAC1B,GAAD,OAAekF,EAAUlF,UAAUjD,oBAAsBiD,EAAUjD,oBAAoB,GACzH+W,EAAY,GAgBhB,OAVIA,EALAD,EAKYA,EAASC,UAJT,CACRC,gBAAiB9P,EAAQJ,eAAeC,YAAYkQ,uBAK5DH,EAAQzc,OAAAsB,EAAA,EAAAtB,CAAA,GACD0F,EACAoI,EAAUlF,UAFT,CAGJiU,YAAa,IACVJ,EAJC,CAKJC,YACA7T,eAAgBiF,EAAUlF,UAAUC,iBAEjC7I,OAAAsB,EAAA,EAAAtB,CAAA,GACA8N,EADP,CAEIlF,UAAW6T,EACXK,WAAY,GACZC,aAAc,GACdhP,YAAY,QAI5BuO,EAAavU,WAAWwF,QAAS,SAAEO,GAC/BA,EAAU4L,SAAWlP,GAAmBsD,KAG5CgD,EAAK1B,SAAS,CACV8K,aAAa,EACbC,YAAYna,OAAAsB,EAAA,EAAAtB,CAAA,GACLsc,EACA7R,GAAYmD,GAA8B0O,IAFtC,CAGPU,cAAc,IAElB3C,QAASc,EACTb,kBAAmBY,EACnBX,gBAAiBe,EACjBd,YAAaa,EACbZ,WAAYW,EACZV,UAAWO,kDAOvB,QAAS7b,KAAKC,MAAM0N,MAAM7J,OAAO+J,8DAIjC,OAAO7N,KAAKC,MAAM0N,MAAM7J,OAAO+J,6DAGVJ,GACrB,OAAOA,EAAQJ,eAAeC,YAAYM,aAAe5N,KAAKC,MAAM0N,MAAM7J,OAAO+J,yDAGhEJ,GACjB,OAAOA,EAAQJ,eAAeC,YAAYuQ,mEAG7B/N,GACbA,EAAEC,uDAGkB,IAAV8B,EAAUvG,EAAVuG,OACFtC,EAAyBsC,EAAzBtC,KAAMC,EAAmBqC,EAAnBrC,MAAOsC,EAAYD,EAAZC,QACfP,EAASvR,KAAK6P,MAAd0B,KAEFA,EADe,aAAhBM,EAAOjF,KACFhM,OAAAsB,EAAA,EAAAtB,CAAA,GACG2Q,EADH3Q,OAAAmR,EAAA,EAAAnR,CAAA,GAEC2O,EAAOuC,IAGRlR,OAAAsB,EAAA,EAAAtB,CAAA,GACG2Q,EADH3Q,OAAAmR,EAAA,EAAAnR,CAAA,GAEC2O,EAAOC,IAGhBxP,KAAKgQ,SAAS,CACVuB,8CAIKzB,GACTA,EAAEC,iBACF/P,KAAK8d,4EAGsB1H,GAA8B,IAAtB9Q,EAAsB3C,UAAAC,OAAA,QAAAjB,IAAAgB,UAAA,GAAAA,UAAA,GAAX,aAC9C4C,EAASO,aAAcyP,GAAkC,CACrDwI,iBAAkB,CAAE3H,EAAMa,iBAC3B,SAACxR,EAAKlB,GACDiI,GAAYjI,IACZe,EAASf,EAAS1C,KAAK+F,+FAKmBmT,GAAiC,IAAAxC,EAAAvY,KAApBsF,EAAoB3C,UAAAC,OAAA,QAAAjB,IAAAgB,UAAA,GAAAA,UAAA,GAAT,aAAS+V,EACX1Y,KAAK6P,MAArEmL,EAD2EtC,EAC3EsC,iBAAkB5E,EADyDsC,EACzDtC,MAAO8E,EADkDxC,EAClDwC,kBAAmBC,EAD+BzC,EAC/ByC,gBACpD,Gfa0B,SAAE/E,GAAF,OACtBA,EAAMU,WAAa5J,IACnBkJ,EAAMW,6BAA+B5J,GefrC6Q,CAAoB5H,GAAxB,CAFmF,IAQxFxN,EAWSmS,EAXTnS,cACAD,EAUSoS,EAVTpS,WACAiB,EASSmR,EATTnR,WACA/B,EAQSkT,EARTlT,QACAK,EAOS6S,EAPT7S,WACAuD,EAMSsP,EANTtP,UACArD,EAKS2S,EALT3S,YACAvB,EAISkU,EAJTlU,QACA0E,EAGSwP,EAHTxP,UACA0S,EAESlD,EAFTkD,YACAvI,EACSqF,EADTrF,OAGSwH,EAAYtc,OAAAsB,EAAA,EAAAtB,CAAA,Gf6BY,SAAEwV,GAClC,MAAO,CACHuC,SAAWvC,EAAMuC,SACjB6C,QAAUpF,EAAMoF,QAChB0C,UAAY9H,EAAM8H,WehCXC,CAAsB/H,GADb,CAEZ9N,iBAAiB1H,OAAAsB,EAAA,EAAAtB,CAAA,GfJsB,kBAAA+B,UAAAC,OAAA,QAAAjB,IAAAgB,UAAA,GAAAA,UAAA,GAAsB,IACnDuI,OAAO,SAAAxH,GAAC,MAA6B,OAAzBA,EAAE6E,qBAA8B,GeI/C6V,CAAqClD,IAE5C1T,OAAQK,EAAQC,UAAUN,OAC1BC,OAAQI,EAAQC,UAAUL,OAC1BmB,gBACAf,UACAW,UAAU5H,OAAAsB,EAAA,EAAAtB,CAAA,GACHkG,EACAkU,GAEP9S,aACAE,cACAvB,UACAoX,YAAaA,GAAe,EAC5BrU,aACA6B,YACAF,cAGVvL,KAAKqe,8BAA8BjI,EAAO,SAAE1O,GAClCwV,EAAYtc,OAAAsB,EAAA,EAAAtB,CAAA,GACLsc,EADK,CAERxV,kBAAmB,CACfC,cAAc/G,OAAAsB,EAAA,EAAAtB,CAAA,GfxBc,kBAAA+B,UAAAC,OAAA,QAAAjB,IAAAgB,UAAA,GAAAA,UAAA,GAAoB,IAChDuI,OAAO,SAAAxH,GAAC,MAAyB,OAArBA,EAAE4a,iBAA0B,GeuBnBC,CAAkCpD,IACvDvT,cAAeF,KAGhC6Q,EAAKiG,6BAA8BtB,EAAc1O,GAA8B,CAAG7F,eAAeA,WAAa,SAAE8V,GAC/G,IAAM3a,EAAMlD,OAAAsB,EAAA,EAAAtB,CAAA,GACO6d,EACApT,GAAYoT,GAFnB,CAGX/I,OAAQxS,IAAQwS,EflIU,uBekIgBC,OflIhB,yBeoIfpQ,EAASO,aAAcyP,GAAkBzR,EAAQ,SAAE2B,EAAKlB,GAEjDA,EAAS0I,SACR3H,eAzDZA,mDAgEeoZ,EAAwBC,GAA8C,IAAtBrZ,EAAsB3C,UAAAC,OAAA,QAAAjB,IAAAgB,UAAA,GAAAA,UAAA,GAAX,aACtE8K,EAAYzN,KAAK6P,MAAjBpC,QACRlI,EAASO,aAAcyP,GAAiC,CACpD4C,UAAWuG,EAAuB7W,QAAQsQ,UAC1CQ,SAAU+F,EAAuB7W,QAAQ8Q,SACzCiG,eAAgBnR,EAAQJ,eAAeC,YAAYkQ,uBACpD,SAAE/X,EAAKlB,GACN,GAAIiI,GAAYjI,GAAW,CACvBma,EAAuB/V,WAAa,GACpC,IAAM+F,EAAY,CACdlF,UAAU5I,OAAAsB,EAAA,EAAAtB,CAAA,GACH0F,EACA/B,EAAS1C,MAEhB0H,UAAW,GAEfoV,EAAsBxQ,QAAQ,SAAE0Q,GAC5B,IAAIC,GAAgB,EACpBJ,EAAuB/V,WAAWwF,QAAQ,SAAE4Q,GACpCjR,GAAsB+Q,EAAqBrV,UAAWuV,EAAavV,aACnEuV,EAAavV,UAAUC,gBAAkBoV,EAAqBrV,UAAUC,eAAiBoV,EAAqBtV,UAC9GuV,GAAgB,KAGpBA,GACAJ,EAAuB/V,WAAWhF,KAAlC/C,OAAAsB,EAAA,EAAAtB,CAAA,GACO8N,EADP,CAEIlF,UAAU5I,OAAAsB,EAAA,EAAAtB,CAAA,GACH8N,EAAUlF,UADR,CAELC,eAAgBoV,EAAqBrV,UAAUC,eAAiBoV,EAAqBtV,UACrF0E,gBAAiB4Q,EAAqBrV,UAAUyE,gBAChDvH,WAAYmY,EAAqBrV,UAAU9C,aAE/C6C,UAAW,OAIvBjE,EAASoZ,2DAMSM,EAAgBL,GAA4C,IAArBrZ,EAAqB3C,UAAAC,OAAA,QAAAjB,IAAAgB,UAAA,GAAAA,UAAA,GAAV,aAC5E4C,EAASO,aAAcyP,GAAuC,CAC1D4C,UAAY6G,EAAenX,QAAQsQ,UAC5CQ,SAAWqG,EAAenX,QAAQ8Q,UAC1B,SAAClT,EAAKlB,GACL,GAAIiI,GAAYjI,GAAW,CACvBya,EAAerW,WAAa,GAC5B,IAAM+F,EAAY,CACdlF,UAAU5I,OAAAsB,EAAA,EAAAtB,CAAA,GACH0F,EACA/B,EAAS1C,MAEhB0H,UAAW,EACX+Q,SAAU,GAEdqE,EAAsBxQ,QAAQ,SAAE0Q,GAC5B,IAAIC,GAAgB,EACpBE,EAAerW,WAAWwF,QAAQ,SAAE4Q,GAC5BjR,GAAsB+Q,EAAqBrV,UAAWuV,EAAavV,aACnEuV,EAAavV,UAAUC,gBAAkBoV,EAAqBrV,UAAUC,eAAiBoV,EAAqBtV,UAC9GuV,GAAgB,EAChBpQ,EAAU4L,SAAWlP,GAAmBsD,MAG5CoQ,GACAE,EAAerW,WAAWhF,KAA1B/C,OAAAsB,EAAA,EAAAtB,CAAA,GACO8N,EADP,CAEIlF,UAAU5I,OAAAsB,EAAA,EAAAtB,CAAA,GACH8N,EAAUlF,UADR,CAELC,eAAgBoV,EAAqBrV,UAAUC,eAAiBoV,EAAqBtV,UACrF0E,gBAAiB4Q,EAAqBrV,UAAUyE,gBAChDvH,WAAYmY,EAAqBrV,UAAU9C,aAE/C6C,UAAW,EACX+Q,SAAUlP,GAAmBsD,QAIzCpJ,EAAS0Z,oDAMA,IAAAvF,EAC6BzZ,KAAK6P,MAA3CkL,EADStB,EACTsB,YAAatN,EADJgM,EACIhM,QAAS2I,EADbqD,EACarD,MAAO7E,EADpBkI,EACoBlI,KACjCzN,EAAS,CACT6U,SAAUvC,EAAMuC,SAChB6C,QAASpF,EAAMoF,QACf0C,UAAW9H,EAAM8H,UACjB/F,UAAW1K,EAAQ0K,UACnB8G,eAAgB1N,EAAK0N,gBAI9BvX,EAiBSqT,EAjBTrT,kBACAkB,EAgBSmS,EAhBTnS,cACAD,EAeSoS,EAfTpS,WACAiB,EAcSmR,EAdTnR,WACA/B,EAaSkT,EAbTlT,QACAJ,EAYSsT,EAZTtT,OACAS,EAWS6S,EAXT7S,WACAoS,EAUSS,EAVTT,SACA7O,EASSsP,EATTtP,UACArD,EAQS2S,EART3S,YACAvB,EAOSkU,EAPTlU,QACA2B,EAMSuS,EANTvS,UACAhB,EAKSuT,EALTvT,OACA+D,EAISwP,EAJTxP,UACAjD,EAGSyS,EAHTzS,iBACA2V,EAESlD,EAFTkD,YACAvI,EACSqF,EADTrF,OAEK5R,EAAMlD,OAAAsB,EAAA,EAAAtB,CAAA,GACRkD,EADQ,CAEX4D,oBACAkB,gBACAD,aACAiB,aACA/B,UACAJ,SACAS,aACAoS,WACA7O,YACArD,cACAvB,UACA2B,YACAhB,SACA+D,YACA0S,cACA3V,mBACAoN,OAAQxS,IAAQwS,EfpRY,uBeoRcC,OfpRd,yBesR4C,IAAhEhN,EAAWuC,OAAQ,SAAA5B,GAAQ,OAAIA,EAASqF,aAAa/L,QAIxD5C,KAAKgQ,SAAS,CAAEkP,iBAAiB,IACjClf,KAAKmf,sDAAuDpE,EAAa/a,KAAKof,mBAAmBhP,KAAKpQ,KAAM8D,KAJxGiJ,sBAAoBoF,QAAQ,qDAAsD,0DAOtErO,GAAQ,IAAA2U,EAAAzY,KAAAqf,EACgBrf,KAAK6P,MAArCkL,EADgBsE,EAChBtE,YAAatN,EADG4R,EACH5R,QAAS2I,EADNiJ,EACMjJ,MAC9B7Q,EAASO,aAAcyP,GAAkBzR,EAAQ,SAAE2B,EAAKlB,GACpD,GAAIiI,GAAYjI,GAAU,CACtB,IAAM+a,Gf5RmBtH,Ee4Re+C,EAAYvS,Uf5RjB+W,Ee4R4BnJ,EAAMoJ,Uf3R1E,CACHC,WAAYzH,EAASyH,WACrBjI,QAAUQ,EAASR,QACnB5E,iBAAmBoF,EAASpF,iBAC5B3B,KAAO+G,EAAS5Q,eAAe6J,KAC/ByO,WAAW9e,OAAAsB,EAAA,EAAAtB,CAAA,GACJoX,EAASjR,kBAEhBM,WAAY2Q,EAAS3Q,WAAWuD,IAAK,SAAE+U,GACnC,MAAO,CACHnI,QAAUmI,EAASnI,QACnBtG,QAAUyO,EAASzO,QACnBkI,UAAYuG,EAASvG,UACrBC,SAAWsG,EAAStG,SACpBC,SAAU,EACVC,UAAW,KAGnBjS,QAAS0Q,EAAS1Q,QAClBsY,QAAS,GACTC,aAAc,GACdC,gBAAgB,EAChBC,kBAAkB,EAClBC,qBAAsBT,EAASU,YAC/BC,SAAU,IeoQIC,EAAsB5b,EAAS1C,KACrC0D,EAASO,aAAcwP,GAA2B,CAC9C2B,eAAgBkJ,EAAoBlJ,eACpCmJ,QAAS,CAAEhK,EAAMiK,UACjBpP,KAAM8J,EAAYvS,UAAUpB,eAAe6J,KAC3CE,WAAYiF,EAAMe,SAAShG,WAC3BmG,kBAAmByD,EAAYlT,QAAQC,UAAU0N,YACjD8K,oBAAqBH,EAAoBrJ,SACzC4E,SAAU4D,EACViB,qBAAqB,GACtB,SAAC9a,EAAKlB,GACDA,EAAS0I,SACTwL,EAAKzI,SAAS,CAAEkP,iBAAiB,IACjC/Y,EAAapE,IAAI,gBAAiB6M,IAClCrN,OAAOC,SAAP,KAAAyB,OAAuBwK,EAAQJ,eAAeC,YAAYM,WAA1D,kBAAA3K,OAAqFkd,EAAoBlJ,iBAEzGwB,EAAKzI,SAAS,CAAEkP,iBAAiB,WAIzCzG,EAAKzI,SAAS,CAAEkP,iBAAiB,IfjTV,IAAElH,EAAUuH,yCesTlCzP,GACTA,EAAEC,iBACFxO,OAAOC,SAAP,KAAAyB,OAAuBjD,KAAK6P,MAAMpC,QAAQJ,eAAeC,YAAYM,WAArE,qDAGakC,EAAG3F,GAChB,IAAMxB,EAAa3I,KAAK6P,MAAMkL,YAAYpS,WAAWiC,IAAK,SAAC8D,EAAW8R,GAClE,OAAGrW,IAAUqW,EACF5f,OAAAsB,EAAA,EAAAtB,CAAA,GACA8N,EADP,CAEIC,WAAYmB,EAAE+B,OAAOC,UAEtBpD,IAGX1O,KAAKgQ,SAAS,CACV+K,YAAYna,OAAAsB,EAAA,EAAAtB,CAAA,GACLZ,KAAK6P,MAAMkL,YACX1P,GAAYmD,GAA8B,CAAE7F,gBAFxC,CAGPA,aACAiV,aAAcjV,EAAW/F,SAAW4L,GAA8B,CAAC7F,eAAa/F,qDAIzEkN,GACf,IAAMnH,EAAa3I,KAAK6P,MAAMkL,YAAYpS,WAAWiC,IAAK,SAAC8D,EAAW8R,GAClE,OAAO5f,OAAAsB,EAAA,EAAAtB,CAAA,GACA8N,EADP,CAEIC,WAAYmB,EAAE+B,OAAOC,YAI7B9R,KAAKgQ,SAAS,CACV+K,YAAYna,OAAAsB,EAAA,EAAAtB,CAAA,GACLZ,KAAK6P,MAAMkL,YACX1P,GAAYmD,GAA8B,CAAE7F,gBAFxC,CAGPA,aACAiV,aAAc9N,EAAE+B,OAAOC,sDAIhBhC,GAAG,IAAA2Q,EAAAzgB,KACV+a,EAAgB/a,KAAK6P,MAArBkL,YACR,GAAiE,IAA7DA,EAAYpS,WAAWuC,OAAO,SAAAF,GAAC,OAAIA,EAAE2D,aAAa/L,OAQlD,OAPA5C,KAAKgQ,SAAS,CACVuB,KAAK3Q,OAAAsB,EAAA,EAAAtB,CAAA,GACEZ,KAAK6P,MAAM0B,KADd,CAEAmP,cAA+C,IAAjC1gB,KAAK6P,MAAM0B,KAAKmP,sBAGtC3T,sBAAoBoF,QAAQ,6DAA6D,eAU7F,GAPAnS,KAAKgQ,SAAS,CACVuB,KAAK3Q,OAAAsB,EAAA,EAAAtB,CAAA,GACEZ,KAAK6P,MAAM0B,KADd,CAEAmP,aAAc5Q,EAAE+B,OAAOC,YAI5BhC,EAAE+B,OAAOC,QACR9R,KAAK2gB,uBAAwB5F,EAAcvM,GAA+BuM,GAAcpS,WAAa,SAAE+V,GACnGA,EAAuB/V,WAAWwF,QAAS,SAAEO,GACzCA,EAAU4L,SAAWlP,GAAmBsD,GACxCA,EAAUC,YAAa,IAE3B8R,EAAKzQ,SAAS,CACV+K,YAAYna,OAAAsB,EAAA,EAAAtB,CAAA,GACL8d,EACArT,GAAaqT,YAIzB,CACH,IAAM/V,EAAa3I,KAAK6P,MAAMuG,MAAMzN,WAAWiC,IAAI,SAAE8D,GACjD,IAAI2O,EAAYoD,EAAK5Q,MAAMyL,UAAUpQ,OAAO,SAAC1B,GAAD,OAAekF,EAAUlF,UAAUjD,oBAAsBiD,EAAUjD,oBAAoB,GAQnI,OAPA8W,EAAQzc,OAAAsB,EAAA,EAAAtB,CAAA,GACD0F,EACAoI,EAAUlF,UAFT,CAGJiU,YAAa,IACVJ,EAJC,CAKJ5T,eAAgBiF,EAAUlF,UAAUC,iBAEjC7I,OAAAsB,EAAA,EAAAtB,CAAA,GACA8N,EADP,CAEIlF,UAAW6T,EACXK,WAAY,GACZC,aAAc,GACdhP,YAAY,MAIpBhG,EAAWwF,QAAS,SAAEO,GAClBA,EAAU4L,SAAWlP,GAAmBsD,KAG5C1O,KAAKgQ,SAAS,CACV+K,YAAYna,OAAAsB,EAAA,EAAAtB,CAAA,GACLma,EADI,CAEPpS,cACG0C,GAAYmD,GAA8B,CAAE7F,qDAOvD,If5aoB9B,Ee4apB+Z,EACiE5gB,KAAK6P,MAAlE0B,EADJqP,EACIrP,KAAMwJ,EADV6F,EACU7F,YAAatN,EADvBmT,EACuBnT,QAASqN,EADhC8F,EACgC9F,YAAaoE,EAD7C0B,EAC6C1B,gBACjD,OACI/e,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,+CACXxP,EAAAC,EAAAC,cAAA,QAAMsP,UAAU,OAAO6C,SAAWxS,KAAKyS,aAAarC,KAAKpQ,OACrDG,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,OACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,8BACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,iBAAiB0E,IAAM5G,EAAQ2J,OAAS7K,GAAW+H,IAAI,MAE1EnU,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,iCACXxP,EAAAC,EAAAC,cAAA,sCACAF,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,oBACXxP,EAAAC,EAAAC,cAAA,QAAMsP,UAAU,QAAhB,4FAEIxP,EAAAC,EAAAC,cAAA,WAFJ,wDAQZF,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,OACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,kCAAkCb,MAAO,CAACC,MAAM,SAC3D5O,EAAAC,EAAAC,cAACka,GAAD,CAASC,QAASM,GACd3a,EAAAC,EAAAC,cAAA,MAAIyO,MAAO,CAAC8F,OAAO,UAAW6F,SAAU,UAAxC,eACAta,EAAAC,EAAAC,cAAC4Z,GAAD,CAAUpN,MAAM,oBAAhB,GAAA5J,OAAuC8X,EAAYzS,iBAAiBC,mBAApE,OAAAtF,OAA4F8X,EAAYzS,iBAAiBkP,UACzHrX,EAAAC,EAAAC,cAAC4Z,GAAD,CAAUpN,MAAM,UAAhB,GAAA5J,OAA6B8X,EAAYlU,QAAQoB,SAAjD,OAAAhF,OAA+D8X,EAAYlU,QAAQ8S,cfpcnF,SADA9S,EescmBkU,EAAYlU,Sfrc5CoB,UAA2C,QAArBpB,EAAQoB,Uescb9H,EAAAC,EAAAC,cAAC4Z,GAAD,CAAUpN,MAAM,kBAAhB,IAAoCZ,GAAU8O,EAAYkD,cAE9D9d,EAAAC,EAAAC,cAAC4Z,GAAD,CAAUpN,MAAM,iBAAhB,GAAA5J,OAAoC8X,EAAY7S,WAAWC,YAA3D,OAAAlF,OAA4E8X,EAAY7S,WAAWyR,cACnGxZ,EAAAC,EAAAC,cAAC4Z,GAAD,CAAUpN,MAAM,kBAAhB,GAAA5J,OAAqC8X,EAAY3S,YAAYC,aAA7D,OAAApF,OAA+E8X,EAAY3S,YAAYuR,cACvGxZ,EAAAC,EAAAC,cAAC4Z,GAAD,CAAUpN,MAAM,SAAU3J,IAAO6X,EAAYrF,QAAQC,OftctD,wBeucCxV,EAAAC,EAAAC,cAAA,WACAF,EAAAC,EAAAC,cAAA,MAAIyO,MAAO,CAAC8F,OAAO,UAAW6F,SAAU,UAAxC,UACAta,EAAAC,EAAAC,cAAC4Z,GAAD,CAAUpN,MAAM,gBAAiBkO,EAAYlT,QAAQ2P,SACrDrX,EAAAC,EAAAC,cAAC4Z,GAAD,CAAUpN,MAAM,eflejB,SAAAsJ,GAA4B,IAAxBpP,EAAwBoP,EAAxBpP,iBAC/B,SAAA9D,OAAU8D,EAAiB8R,QAAU,GAArC,OAAA5V,OAA6C8D,EAAiBgS,WAAa,GAA3E,KAAA9V,OAAiF8D,EAAiBiS,WAAa,GAA/G,MAAA/V,OAAsH8D,EAAiB+R,UAAY,GAAnJ,MAAA7V,OAA0J8D,EAAiBI,KAAO,GAAlL,KAAAlE,OAAwL8D,EAAiBmS,YAAc,GAAvN,MAAAjW,OAA8N8D,EAAiBG,SAAW,GAA1P,KAAAjE,OAAgQ8D,EAAiBC,OAAU,IeielO6Z,CAAgB9F,EAAYlT,UACzD1H,EAAAC,EAAAC,cAAC4Z,GAAD,CAAUpN,MAAM,0BAAuBkO,EAAYlT,QAAQC,UAAU0P,SACrErX,EAAAC,EAAAC,cAAC4Z,GAAD,CAAUpN,MAAM,kBAAhB,GAAA5J,OAAqC8X,EAAYlT,QAAQE,eAAeyU,gBAAxE,OAAAvZ,OAA6F8X,EAAYlT,QAAQE,eAAe4R,cAChIxZ,EAAAC,EAAAC,cAAA,WACAF,EAAAC,EAAAC,cAAA,MAAIyO,MAAO,CAAC8F,OAAO,UAAW6F,SAAU,UAAxC,WACAta,EAAAC,EAAAC,cAAC4Z,GAAD,CAAUpN,MAAM,yBAAyBkO,EAAYvS,UAAUgP,SAC/DrX,EAAAC,EAAAC,cAAC4Z,GAAD,CAAUpN,MAAM,OAAOkO,EAAYvS,UAAUpB,eAAe6J,MAC5D9Q,EAAAC,EAAAC,cAAC4Z,GAAD,CAAUpN,MAAM,QAAhB,GAAA5J,OAA2B8X,EAAYvS,UAAUzB,iBAAiBC,MAAMC,OAAxE,OAAAhE,OAAoF8X,EAAYvS,UAAUzB,iBAAiBC,MAAM2S,cACjIxZ,EAAAC,EAAAC,cAAC4Z,GAAD,CAAUpN,MAAM,sBAAhB,GAAA5J,OAAyC8X,EAAYvS,UAAUzB,iBAAiBG,QAAQoR,SAAxF,OAAArV,OAAsG8X,EAAYvS,UAAUzB,iBAAiBG,QAAQ0S,QAArJ,SAAA3W,OAAqK8X,EAAYvS,UAAUzB,iBAAiBmS,aAC5M/Y,EAAAC,EAAAC,cAAC4Z,GAAD,CAAUpN,MAAM,WAAWkO,EAAYvS,UAAUzB,iBAAiB+R,UAClE3Y,EAAAC,EAAAC,cAAC4Z,GAAD,CAAUpN,MAAM,aAAakO,EAAYvS,UAAUzB,iBAAiBkS,YACpE9Y,EAAAC,EAAAC,cAAC4Z,GAAD,CAAUpN,MAAM,SAASkO,EAAYvS,UAAUzB,iBAAiB8R,QAChE1Y,EAAAC,EAAAC,cAAC4Z,GAAD,CAAUpN,MAAM,eAAekO,EAAYvS,UAAUzB,iBAAiBgS,WACtE5Y,EAAAC,EAAAC,cAAC4Z,GAAD,CAAUpN,MAAM,eAAekO,EAAYvS,UAAUzB,iBAAiBiS,WACtE7Y,EAAAC,EAAAC,cAAC4Z,GAAD,CAAUpN,MAAM,eAAhB,GAAA5J,OAAkC8X,EAAYvS,UAAUC,SAASC,UAAjE,OAAAzF,OAAgF8X,EAAYvS,UAAUC,SAASkR,cAC/GxZ,EAAAC,EAAAC,cAAC4Z,GAAD,CAAUpN,MAAM,YAAhB,GAAA5J,OACS8X,EAAYvS,UAAUnB,WAAWuD,IAAK,SAAA+U,GAAQ,OAAIA,EAASzO,UAAU4P,KAAK,UAI3F3gB,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,8BACXxP,EAAAC,EAAAC,cAAA,+BACAF,EAAAC,EAAAC,cAAA,SACIuM,KAAK,OACL2C,KAAK,iBACLC,MAAOuL,EAAYkE,eACnB3P,SAAWtP,KAAK4R,WAAWxB,KAAKpQ,MAChC2P,UAAU,mBAEZ3P,KAAK+gB,qBAAqBtT,IACxBtN,EAAAC,EAAAC,cAACwS,EAAA,EAAD,KACI1S,EAAAC,EAAAC,cAACyS,EAAA,EAAD,CAAUvD,KAAK,eAAgBuC,QAAUP,EAAKmP,aAAepR,SAAWtP,KAAKghB,kBAAkB5Q,KAAKpQ,OAApG,0BAMRG,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,oBACXxP,EAAAC,EAAAC,cAAA,SAAOsP,UAAU,iEAAiEb,MAAO,CAACC,MAAM,SAC5F5O,EAAAC,EAAAC,cAAA,aACIF,EAAAC,EAAAC,cAAA,UASIF,EAAAC,EAAAC,cAAA,sBACAF,EAAAC,EAAAC,cAAA,MAAIsP,UAAU,cAAd,gBACAxP,EAAAC,EAAAC,cAAA,MAAIsP,UAAU,eAAd,aAGRxP,EAAAC,EAAAC,cAAA,aACM0a,EAAYpS,WAAWiC,IAAK,SAAEtB,EAAUa,GAAZ,OAC1BhK,EAAAC,EAAAC,cAAC8Z,GAAD,CACI7Q,SAAUA,EACV/I,IAAG,YAAA0C,OAAckH,OAIzBhK,EAAAC,EAAAC,cAAA,UACIF,EAAAC,EAAAC,cAAA,MAAI4gB,QAAQ,IAAItR,UAAU,eAA1B,YACAxP,EAAAC,EAAAC,cAAA,MAAIsP,UAAU,eAAgB1D,GAAU8O,EAAYxP,aAExDpL,EAAAC,EAAAC,cAAA,UACIF,EAAAC,EAAAC,cAAA,MAAI4gB,QAAQ,IAAItR,UAAU,eAA1B,uBACAxP,EAAAC,EAAAC,cAAA,MAAIsP,UAAU,eAAgB1D,GAAU8O,EAAYpP,uBAExDxL,EAAAC,EAAAC,cAAA,UACIF,EAAAC,EAAAC,cAAA,MAAI4gB,QAAQ,IAAItR,UAAU,eAA1B,yBACAxP,EAAAC,EAAAC,cAAA,MAAIsP,UAAU,eAAgB1D,GAAU8O,EAAYlP,yBAExD1L,EAAAC,EAAAC,cAAA,UACIF,EAAAC,EAAAC,cAAA,MAAI4gB,QAAQ,IAAItR,UAAU,eAA1B,aACAxP,EAAAC,EAAAC,cAAA,MAAIsP,UAAU,eAAgB1D,GAAU8O,EAAYnR,cAExDzJ,EAAAC,EAAAC,cAAA,UACIF,EAAAC,EAAAC,cAAA,MAAI4gB,QAAQ,IAAItR,UAAU,eAA1B,SACAxP,EAAAC,EAAAC,cAAA,MAAIsP,UAAU,eAAgB1D,GAAU8O,EAAYlQ,eAO5E1K,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,OACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,8BACXxP,EAAAC,EAAAC,cAAA,UAAQsP,UAAU,mCAAmCO,QAAUlQ,KAAK6Z,aAAazJ,KAAKpQ,MAAQ8O,MAAO,CAACoS,OAAQ,YAA9G,aAEJ/gB,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,8CACXxP,EAAAC,EAAAC,cAACqa,GAAD,CAAeF,QAAS0E,EAAiBvP,UAAU,oCAAoC/C,KAAK,UAA5F,uBAnsBFpM,IAAMC,WC1C1BuQ,GAAY,CACdC,KAAK,GACLC,QAAQ,GACRC,WAAW,GACXC,cAAc,EACdC,iBAAiB,GA6ON8P,8MAzOXtR,MAAQ,CACJxJ,SAAU,GACVoH,QAAQ7M,OAAAsB,EAAA,EAAAtB,CAAA,GACDwM,IAEPmE,KAAK3Q,OAAAsB,EAAA,EAAAtB,CAAA,GACEoQ,IAEPoQ,cAAeC,EAAKC,uBACpBC,MAAO,GACPxG,YAAYna,OAAAsB,EAAA,EAAAtB,CAAA,GACL2G,uFAKP,IAAMkG,EAAUtH,EAAa9E,IAAI,WACjC,GAAIoM,GAAWD,GAA0BC,EAASzN,KAAKC,OACnDD,KAAKgQ,SAAS,CAAEvC,gBACb,KAAGzN,KAAK6V,mBAIX,YADAtU,OAAOC,SAAW,YAFlBxB,KAAK8V,iBAKT9V,KAAKwhB,4BACLxhB,KAAKyhB,mEAG4B,IAAAhQ,EAAAzR,KAArBsF,EAAqB3C,UAAAC,OAAA,QAAAjB,IAAAgB,UAAA,GAAAA,UAAA,GAAV,aACvB4C,EAASO,aAAcO,GAAyC,GAAI,SAACZ,EAAKlB,GAClEA,EAAS0I,QACTwE,EAAKzB,SAAS,CAAEvC,QAASlJ,EAAS1C,MAAQyD,GAE1C/D,OAAOC,SAAW,kDAK1B,QAASxB,KAAKC,MAAM0N,MAAM7J,OAAO+J,8DAIjC,OAAO7N,KAAKC,MAAM0N,MAAM7J,OAAO+J,gEAGP,IAAA6D,EAAA1R,KAC9BuF,EAASO,aAAcyP,GAA8B,GAAK,SAAE9P,EAAKlB,GACvDmN,EAAK1B,SAAS,CAAEuR,MAAOhd,EAAS1C,2DAId,IAAA0W,EAAAvY,KAC5BuF,EAASO,aAAcyP,GAAc,CAAE0B,eAAgBjX,KAAK6P,MAAMuR,eAAiB,SAAE3b,EAAKlB,GAC7EiI,GAAYjI,IACXgU,EAAKvI,SAAS,CAAE+K,YAAaxW,EAAS1C,qCAK9CkZ,GACAxZ,OAAOmgB,KAAP,GAAAze,OAAejD,KAAK6P,MAAM0R,MAAMI,UAAhC1e,OAA2C8X,EAAY6G,SAASC,KAAhE,YAAA5e,OAA+E8X,EAAYvT,OAA3F,KAAAvE,OAAqG8X,EAAYtT,qCAOpHsT,GACGxZ,OAAOmgB,KAAP,GAAAze,OAAejD,KAAK6P,MAAM0R,MAAMO,UAAhC7e,OAA2C8X,EAAY6G,SAASC,KAAhE,YAAA5e,OAA+E8X,EAAYvT,OAA3F,KAAAvE,OAAqG8X,EAAYtT,qCAGpHsT,GACGxZ,OAAOmgB,KAAP,GAAAze,OAAejD,KAAK6P,MAAM0R,MAAMQ,UAAhC9e,OAA2C8X,EAAY6G,SAASC,KAAhE,YAAA5e,OAA+E8X,EAAYvT,OAA3F,KAAAvE,OAAqG8X,EAAYtT,wDAIjH,OAAOzH,KAAKC,MAAM0N,MAAM7J,OAAOsd,uDAGlBtR,GACbA,EAAEC,uDAGkB,IAAV8B,EAAUvG,EAAVuG,OACFtC,EAAyBsC,EAAzBtC,KAAMC,EAAmBqC,EAAnBrC,MAAOsC,EAAYD,EAAZC,QACfP,EAASvR,KAAK6P,MAAd0B,KAEFA,EADe,aAAhBM,EAAOjF,KACFhM,OAAAsB,EAAA,EAAAtB,CAAA,GACG2Q,EADH3Q,OAAAmR,EAAA,EAAAnR,CAAA,GAEC2O,EAAOuC,IAGRlR,OAAAsB,EAAA,EAAAtB,CAAA,GACG2Q,EADH3Q,OAAAmR,EAAA,EAAAnR,CAAA,GAEC2O,EAAOC,IAGhBxP,KAAKgQ,SAAS,CACVuB,8CAIKzB,GAAE,IAAA2I,EAAAzY,KACX8P,EAAEC,iBADS,IAEHwB,EAASvR,KAAK6P,MAAd0B,KACFzN,EAAS,CACXmT,eAAgBjX,KAAK6P,MAAMuR,cAC3B/Z,WhB0QoB,SAAE2a,GAC9B,IAAIA,EACA,MAAO,GAGX,IAFA,IAAM3a,EAAa,GACb4a,EAAkBD,EAAiBE,MAAM,KACtCC,EAAI,EAAGA,EAAIF,EAAgBrf,OAAQuf,IAAK,CAC7C,IAAMjR,EAAU+Q,EAAgBE,GAChC9a,EAAW1D,KAAK,CACZ6T,QAAO,YAAAvU,OAAgBkf,EAAI,GAC3BjR,QAAUA,EAAQgB,OAClBkH,UAAY,GACZC,SAAW,GACXC,SAAU,EACVC,UAAW,IAGnB,OAAOlS,EgB1Ra+a,CAAkB7Q,EAAKL,UAEP,IAA7BpN,EAAOuD,WAAWzE,QAIrB5C,KAAKgQ,SAAS,CAAEqS,eAAe,IAC/B9c,EAASO,aAAcyP,GAA0BzR,EAAQ,SAAE2B,EAAKlB,GAC5DiI,GAAYjI,GACZkU,EAAKzI,SAAS,CAAEqS,eAAe,OAN/BtV,sBAAoBoF,QAAQ,6BAA6B,8DAc1CrC,GACnBA,EAAEC,iBACF5J,EAAapE,IAAI,gBAAiB6M,IAClCrN,OAAOC,SAAP,KAAAyB,OAAuBjD,KAAK6P,MAAMpC,QAAQJ,eAAeC,YAAYM,kDAG3DkC,GACVA,EAAEC,iBACF5J,EAAapE,IAAI,gBAAiB6M,IAClCrN,OAAOC,SAAP,0EAKA,OADa2E,EAAapE,IAAI,gBAAiB6M,MAC/BA,oCAEZ,IAAA0D,EACkDtS,KAAK6P,MAAnD0B,EADJe,EACIf,KAAMwJ,EADVzI,EACUyI,YAAatN,EADvB6E,EACuB7E,QAAS4U,EADhC/P,EACgC+P,cACpC,OACIliB,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,+CACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,OACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,8BACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,iBAAiB0E,IAAM5G,EAAQ2J,OAAS7K,GAAW+H,IAAI,MAE1EnU,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,iCACXxP,EAAAC,EAAAC,cAAA,wCACEL,KAAKsiB,uCACHniB,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,uBACXxP,EAAAC,EAAAC,cAAA,QAAMsP,UAAU,QAAhB,6CACAxP,EAAAC,EAAAC,cAAA,gFAGJF,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,uBACXxP,EAAAC,EAAAC,cAAA,QAAMsP,UAAU,QAAhB,8DAKhBxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,OACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,uBACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,iBACXxP,EAAAC,EAAAC,cAAA,MAAIsP,UAAU,eAAd,wCAEJxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,cACXxP,EAAAC,EAAAC,cAAA,QAAMsP,UAAU,OAAO6C,SAAWxS,KAAKyS,aAAarC,KAAKpQ,OACrDG,EAAAC,EAAAC,cAAA,uCACAF,EAAAC,EAAAC,cAAA,SACIuM,KAAK,OACL2C,KAAK,UACLC,MAAO+B,EAAKL,QACZ5B,SAAUtP,KAAK4R,WAAWxB,KAAKpQ,MAC/B2P,UAAU,eACVD,UAAQ,IAEZvP,EAAAC,EAAAC,cAACqa,GAAD,CAAeF,QAAS6H,EAAeE,QAAQ,UAAU3V,KAAK,UAA9D,YAKRzM,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,iBACXxP,EAAAC,EAAAC,cAAA,MAAIsP,UAAU,eAAd,uBAEJxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,gBACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,OACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,8BACXxP,EAAAC,EAAAC,cAAA,UACIsP,UAAU,kBACVb,MAAO,CAAC0T,QAAQ,QAASC,MAAM,QAC/BvS,QAAUlQ,KAAK0iB,IAAItS,KAAKpQ,KAAM+a,IAHlC,kBAQJ5a,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,8BACXxP,EAAAC,EAAAC,cAAA,UACIsP,UAAU,eACVb,MAAO,CAAC0T,QAAQ,QAASC,MAAM,QAC/BvS,QAAUlQ,KAAK2iB,IAAIvS,KAAKpQ,KAAM+a,IAHlC,kBAQJ5a,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,8BACXxP,EAAAC,EAAAC,cAAA,UACIsP,UAAU,eACVb,MAAO,CAAC0T,QAAQ,QAASC,MAAM,QAC/BvS,QAAUlQ,KAAK4iB,IAAIxS,KAAKpQ,KAAM+a,IAHlC,sBAYpB5a,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,OACXxP,EAAAC,EAAAC,cAAA,OAAKsP,UAAU,8BACXxP,EAAAC,EAAAC,cAAA,UAAQsP,UAAU,oCAAoCO,QAAUlQ,KAAK6iB,uBAAuBzS,KAAKpQ,OAAjG,gCA/NGQ,IAAMC,WCN3BqiB,GAAiB,SAAEC,GAUxB,OAV8C,SAAAC,GAAA,SAAAC,IAAA,OAAAriB,OAAAC,EAAA,EAAAD,CAAAZ,KAAAijB,GAAAriB,OAAAsiB,EAAA,EAAAtiB,CAAAZ,KAAAY,OAAAuiB,EAAA,EAAAviB,CAAAqiB,GAAAG,MAAApjB,KAAA2C,YAAA,OAAA/B,OAAAyiB,EAAA,EAAAziB,CAAAqiB,EAAAD,GAAApiB,OAAA0iB,EAAA,EAAA1iB,CAAAqiB,EAAA,EAAA1iB,IAAA,SAAAiP,MAAA,WAG5C,OACCrP,EAAAC,EAAAC,cAACkjB,GAAYvjB,KAAKC,MACjBE,EAAAC,EAAAC,cAAC0iB,EAAsB/iB,KAAKC,YALcgjB,EAAA,CACxBziB,IAAMC,YAYd+iB,GAAA,CACdrjB,EAAAC,EAAAC,cAAC2U,EAAA,EAAD,CAAOC,OAAK,EAAC1U,IAAI,WAAW2U,KAAK,gBAAgBC,UAAW2N,GAAerN,MAC3EtV,EAAAC,EAAAC,cAAC2U,EAAA,EAAD,CAAOC,OAAK,EAAC1U,IAAI,WAAW2U,KAAK,yBAAyBC,UAAW2N,GAAeW,MACpFtjB,EAAAC,EAAAC,cAAC2U,EAAA,EAAD,CAAOC,OAAK,EAAC1U,IAAI,cAAc2U,KAAK,4BAA4BC,UAAW2N,GAAejI,MAC1F1a,EAAAC,EAAAC,cAAC2U,EAAA,EAAD,CAAOC,OAAK,EAAC1U,IAAI,eAAe2U,KAAK,4CAA4CC,UAAW2N,GAAe3B,OCtB7FuC,GAAA9iB,OAAA+iB,EAAA,EAAA/iB,CACXgjB,IADJ3gB,OAAArC,OAAA+iB,EAAA,EAAA/iB,CAEIijB,KCYWC,oLAVb,OACC3jB,EAAAC,EAAAC,cAAC0jB,EAAA,EAAD,KACC5jB,EAAAC,EAAAC,cAAC2jB,EAAD,KACGC,YALYzjB,IAAMC,WCEVyjB,GAJEC,YAAgB,ICI3BC,GAA4BC,cAAkBC,KAEpDC,IAASC,OACRrkB,EAAAC,EAAAC,cAACokB,EAAA,EAAD,CAAUC,MAAON,GAA0BF,KAC1C/jB,EAAAC,EAAAC,cAACskB,GAAD,OAEDzR,SAAS0R,cAAc","file":"static/js/main.95f5e8c6.chunk.js","sourcesContent":["import React from 'react';\r\nimport 'react-notifications/lib/notifications.css';\r\nimport { NotificationContainer } from 'react-notifications';\r\n\r\nclass BaseLayout extends React.Component {\r\n\trender() {\r\n\t\treturn [\r\n\t\t\tthis.props.children,\r\n\t\t\t\r\n\t\t];\r\n\t}\r\n}\r\n\r\nexport default BaseLayout;","\r\nclass LocalStorage {\r\n\tconstructor(dataSource) {\r\n\t\tthis.dataSource = dataSource;\r\n\t}\r\n\r\n\ttimeIn = {\r\n\t\thours: (h) => (1000 * 3600) * h,\r\n\t\tminutes: (m) => (1000 * 60) * m,\r\n\t\tseconds: (s) => (1000) * s\r\n\t}\r\n\t// Obtener datos.\r\n\tget(key) {\r\n\t\treturn this.dataSource.get(key);\r\n\t}\r\n\t// Obtener token.\r\n\tgetToken() {\r\n\t\tconst token = this.dataSource.get('TokenData');\r\n\t\tif (!token && window.location.pathname !== '/') return window.location = '/';\r\n\t\treturn token;\r\n\t}\r\n\t// Obtener propiedad del token.\r\n\tgetFromToken(key) {\r\n\t\tconst token = this.getToken();\r\n\r\n\t\treturn token ? token[key] : undefined;\r\n\t}\r\n\t// Obtener objeto del token.\r\n\tgetObj(key) {\r\n\t\tconst obj = this.get(key);\r\n\t\tif (obj)\r\n\t\t\treturn obj;\r\n\t\treturn {};\r\n\t}\r\n\t// Crear propiedad\r\n\tset(key,data) {\r\n\t\tthis.lastModified = key;\r\n\t\tthis.dataSource.set(key, data, this.time);\r\n\t\treturn this;\r\n\t}\r\n\tcreateToken(data) {\r\n\t\tthis.lastModified = 'TokenData';\r\n\t\tthis.dataSource.set('TokenData', data);\r\n\t\treturn this;\r\n\t}\r\n\tupdateToken(data) {\r\n\t\tconst token = this.getToken();\r\n\t\tconst modified = this.lastModified ? this.lastModified : 'TokenData';\r\n\t\tthis.set(modified, { ...token, ...data });\r\n\t}\r\n\texpiresIn(time) {\r\n\t\tthis.time = time;\r\n\r\n\t\tconst token = this.getToken();\r\n\t\tthis.set('TokenData', token, time);\r\n\t\treturn this;\r\n\t}\r\n}\r\nexport default LocalStorage;\r\n","import { reactLocalStorage } from 'reactjs-localstorage';\r\n\r\nconst HOURS = 24;\r\nconst GetHoursInMiliSeconds = ( hours ) => hours * 60 * 60 * 1000;\r\n\r\nexport default class AmplifyHelperClass {\r\n\t\r\n\tget(key) {\r\n\t\tif( this.expiredObject(key) ) return undefined;\r\n\t\treturn reactLocalStorage.getObject(key);\r\n\t}\r\n\t\r\n\tset(key, data, expires) {\r\n\t\treactLocalStorage.setObject(key, data);\r\n\t\tthis.setExpiredObject(key);\r\n\t}\r\n\r\n\tsetExpiredObject(key = '') {\r\n\t\tconst now = new Date().getTime();\r\n\t\tconst setupTime = reactLocalStorage.getObject(`setupTime_${key}`);\r\n\t\tif (setupTime == null) {\r\n\t\t\treactLocalStorage.setObject(`setupTime_${key}`, now);\r\n\t\t} else {\r\n\t\t\tif( ( now - setupTime ) > GetHoursInMiliSeconds(HOURS)) {\r\n\t\t\t\treactLocalStorage.setObject(`setupTime_${key}`, now);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\texpiredObject(key=''){\r\n\t\tconst now = new Date().getTime();\r\n\t\tconst setupTime = reactLocalStorage.getObject(`setupTime_${key}`);\r\n\t\tif (setupTime == null) {\r\n\t\t\treturn true;\r\n\t\t} else {\r\n\t\t\tif( ( now - setupTime ) > GetHoursInMiliSeconds(24)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n","import moment from 'moment';\r\n\r\nmoment.locale('es');\r\n//moment.updateLocale('es', null);\r\n\r\nconst formatter = {\r\n\tdate(date, formatString) {\r\n\t\tif (!date) return moment().format(formatString);\r\n\t\tif (!formatString) formatString = 'D MMMM YYYY';\r\n\t\treturn moment(date).format(formatString);\r\n\t},\r\n\tcalendar(date){\r\n\t\tif (!date) return moment().calendar();\r\n\t\treturn moment(date).calendar();\r\n\t},\r\n\tcalendarDay(date){\r\n\t\tif (!date) return moment().calendar();\r\n\t\treturn moment(date).format('dddd');\r\n\t},\r\n\tlongDate(date){\r\n moment.locale('es');\r\n\t\treturn moment(date).format('D [de] MMMM [del] YYYY');\r\n\t},\r\n\tcurrency(number = 0,decimal = 2) {\r\n\t\tconst formattedNumber = `$ ${parseFloat(number).toFixed(decimal).replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, '$1,')}`;\r\n\t\tconst arrayNumber = formattedNumber.split('.');\r\n\t\treturn arrayNumber[1] === '00' ? arrayNumber[0] : formattedNumber;\r\n\t},\r\n\tformat(){\r\n\t\tvar str = arguments[0];\r\n\t\tfor (var i = 1; i < arguments.length; i++) {\r\n\t\t\tvar regEx = new RegExp(\"\\\\{\" + (i - 1) + \"\\\\}\", \"gm\");\r\n\t\t\tstr = str.replace(regEx, arguments[i]);\r\n\t\t}\r\n\t\treturn str;\r\n\t}\r\n\r\n\r\n};\r\n\r\nformatter.sulemp = {\r\n\tcfdiName: comprobante => `${comprobante._Serie}-${comprobante._Folio}`\r\n};\r\n\r\n// exportar formateador\r\nexport default formatter;\r\n","export const BASE_URL = 'https://api.sulemp.com/api';\r\n// export const BASE_URL = 'https://testapi.sulemp.com/api';\r\n// export const BASE_URL = 'http://localhost:5000/api';\r\n// export const BASE_URL = 'http://192.168.15.27/api/api';","import { BASE_URL } from '../../Configuracion';\r\n\r\nlet fetchservices = [];\r\nconst addurl = function(url){fetchservices.push(url);};\r\nconst removeurl =function (url){fetchservices.pop(url);};\r\nconst findurl = function (url){\r\n\tfor( let x = 0; x < fetchservices.length; x++){ if( fetchservices[x] === url ) return false; }\r\n\taddurl(url);return true;\r\n};\r\n\r\nconst httpService = {\r\n\tget(params) {\r\n\t\tlet routeURL;\r\n\t\tlet serverURL;\r\n\t\tconst settings = {\r\n\t\t\tmethod: 'GET',\r\n\t\t\theaders: {\r\n\t\t\t\t token: undefined //amplify.store('token')\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tif (typeof params === 'object') {\r\n\t\t\trouteURL = params.url;\r\n\t\t\tserverURL = params.server;\r\n\t\t} else {\r\n\t\t\trouteURL = params;\r\n\t\t\tserverURL = BASE_URL;\r\n\t\t}\r\n\t\tif(findurl(routeURL)){\r\n\t\t\treturn fetch(serverURL + routeURL, settings).then(response => {\r\n\t\t\t\tif (response.status !== 200) {\r\n\t\t\t\t\tremoveurl(routeURL);\r\n\t\t\t\t\tthrow new Error(response.statusText);\r\n\t\t\t\t}\r\n\t\t\t\tremoveurl(routeURL);\r\n\t\t\t\treturn response.json();\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn { isvalid:false };\r\n\r\n\t},\r\n\r\n\tpost(params, body) {\r\n\t\tlet routeURL;\r\n\t\tlet serverURL;\r\n\t\tconst settings = {\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders: {\r\n\t\t\t\t'Accept': 'application/json',\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\ttoken: undefined// amplify.store('token')\r\n\t\t\t},\r\n\t\t\tbody: JSON.stringify(body)\r\n\t\t};\r\n\t\tif (typeof params === 'object') {\r\n\t\t\trouteURL = params.url;\r\n\t\t\tserverURL = params.server;\r\n\t\t\tsettings.mode = 'no-cors';\r\n\t\t} else {\r\n\t\t\trouteURL = params;\r\n\t\t\tserverURL = BASE_URL;\r\n\t\t}\r\n\t\tif(findurl(routeURL)){\r\n\t\t\treturn fetch(serverURL + routeURL, settings).then((response) => {\r\n\t\t\t\tif (response.status !== 200) {\r\n\t\t\t\t\tremoveurl(routeURL);\r\n\t\t\t\t\tthrow new Error(response.statusText);\r\n\t\t\t\t}\r\n\t\t\t\tremoveurl(routeURL);\r\n\t\t\t\treturn response.json();\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn { isvalid: false };\r\n\t}\r\n\r\n};\r\n\r\n// exportar servicio\r\nexport default httpService;\r\n","import httpService from './httpService';\r\n\r\nexport default {\r\n get(request, callback) {\r\n\t\tconst response = httpService.get(request);\r\n\t\tif (response.then) {\r\n\t\t\tresponse.then((response) => {\r\n callback(null, response);\r\n });\r\n // .catch((err) => {\r\n // callback(`${err}`);\r\n // });\r\n\t\t}\r\n\r\n },\r\n post(request, body, callback) {\r\n\t\tconst response = httpService.post(request, body);\r\n\t\tif (response.then) {\r\n\t\t\tresponse.then((response) => {\r\n\t\t\t\tcallback(null, response);\r\n\t\t\t});\r\n\t\t}\r\n\r\n }\r\n};\r\n","import http from './http';\r\n\r\nclass ToResult{\r\n static ejecutarCallBack = (callback, err, response) => {\r\n if (typeof callback !== 'function') return false;\r\n\r\n if(err){\r\n callback(err);\r\n }else{\r\n callback(null, response);\r\n }\r\n };\r\n static GetResult = (url, callback) =>{\r\n http.get(url,(err,response)=>{\r\n ToResult.ejecutarCallBack(callback,err, response);\r\n });\r\n };\r\n\r\n static PostResult = (url, data, callback) =>{\r\n http.post(url,data,(err, response)=>{\r\n ToResult.ejecutarCallBack(callback, err, response);\r\n })\r\n }\r\n}\r\n\r\nexport default{\r\n ToResultGet (url, callback){\r\n ToResult.GetResult(url,callback);\r\n },\r\n ToResultPost (url,data,callback){\r\n ToResult.PostResult(url,data,callback);\r\n },\r\n ValidaUso (r,callback){\r\n ToResult.ValidaUsoPost(r,callback);\r\n },\r\n ValidaDemo(){\r\n ToResult.ValidaDemo();\r\n }\r\n};\r\n","// export Validador from './Validador/Validador';\r\n// export ToResult from './Services/ToResult';\r\n\r\nimport LocalStorage from './Services/LocalStorage';\r\nimport AmplifyHelperClass from './Services/AmplifyHelperClass';\r\nimport Formatter from './Services/Formatter';\r\nimport ToResultService from './Services/ToResult';\r\n\r\nexport const formatter = Formatter;\r\nexport const localStorage = new LocalStorage(new AmplifyHelperClass());\r\nexport const ToResult = ToResultService;","export const empresas = {\r\n\turl_listarempresas: '/vnts/empresa/listarempresascontickets'\r\n};\r\n","import { NotificationManager } from 'react-notifications';\r\n\r\nexport const schemaEmisor = {\r\n _Sucursal: {},\r\n _RegimenFiscal: {},\r\n _DatosFiscales:{},\r\n _DomicilioFiscal:{},\r\n _DomicilioFisico:{}\r\n}\r\n\r\nexport const schemaProducto = {\r\n\t_NoIdentificacion:'',\r\n\t_Descripcion:'',\r\n\t_Unidad:{},\r\n\t_Impuestos:[],\r\n\t_ValoresUnitarios:[],\r\n\t_Familias:[],\r\n\t_Moneda:{}\r\n}\r\n\r\n\r\nexport const schemaDomicilioReceptor = {\r\n _Pais: {\r\n c_Pais: \"MEX\"\r\n },\r\n _Estado: {},\r\n _CP: {}\r\n}\r\n\r\nexport const schemaReceptor = {\r\n _DomicilioFiscal: {\r\n ...schemaDomicilioReceptor\r\n },\r\n _DatosFiscales: {},\r\n _Contactos: [],\r\n _Grupos: [],\r\n}\r\n\r\n\r\nexport const INIT_MONEDA = {\r\n c_Moneda:'MXN' \r\n} \r\n\r\nexport const INIT_FORMAPAGO = {\r\n c_FormaPago:'01'\r\n} \r\n\r\nexport const INIT_METODOPAGO = {\r\n c_MetodoPago:'PUE'\r\n} \r\n\r\nexport const INIT_TIPOCOMPROBANTE = {\r\n _TipoComprobanteID:'FA'\r\n}\r\n\r\nexport const INIT_USOCFDI = {\r\n c_UsoCFDI: ''\r\n}\r\n\r\nexport const schemaComprobante = {\r\n _Serie:'',\r\n _Folio:'',\r\n _CfdiRelacionados: {\r\n _TipoRelacion:{},\r\n _Comprobantes:[]\r\n },\r\n _Emisor: {\r\n ...schemaEmisor\r\n },\r\n _Moneda: { \r\n ...INIT_MONEDA\r\n },\r\n _FormaPago: {\r\n ...INIT_FORMAPAGO\r\n },\r\n _MetodoPago: {\r\n ...INIT_METODOPAGO\r\n },\r\n _TipoComprobante: {\r\n ...INIT_TIPOCOMPROBANTE\r\n },\r\n _Receptor: {\r\n ...schemaReceptor, \r\n _UsoCFDI: {\r\n ...INIT_USOCFDI\r\n },\r\n },\r\n _Conceptos: [],\r\n _Complementos: [],\r\n _NotasRelacionadas: [],\r\n _Adenda: { \r\n _Renglones: []\r\n }\r\n}\r\n\r\nexport const RegexRFC = new RegExp(/^[A-Z&Ñ]{3,4}[0-9]{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])[A-Z0-9]{2}[0-9A]/);\r\n\r\nexport const Numero = (Num) => Number( Num || 0 )\r\n\r\n\r\nexport const CalcImporteConcepto = ( concepto ) => \r\n Numero(concepto._Cantidad) * Numero(concepto._Producto._ValorUnitario);\r\n\r\nexport const CalcSubTotalConcepto = ( concepto ) => \r\n CalcImporteConcepto(concepto) - CalcDescuentoConcepto(concepto);\r\n\r\n// Duda sobre si es asi el descuento\r\nexport const CalcDescuentoConcepto = ( concepto ) => \r\n ( Numero(concepto._Descuento) / 100 ) * CalcImporteConcepto( concepto );\r\n\r\nexport const ImpuestoFactorExento = ( impuesto ) => \r\n impuesto._TipoFactor.c_TipoFactor === 'Exento'; \r\n\r\nexport const ImpuestoFactorTasa = ( impuesto ) => \r\n impuesto._TipoFactor.c_TipoFactor === 'Tasa'; \r\n\r\nexport const EsImpuestoTraslado = ( impuesto ) => \r\n impuesto._TipoImpuesto._Codigo === 'T';\r\nexport const EsImpuestoRetencion = ( impuesto ) => \r\n impuesto._TipoImpuesto._Codigo === 'R';\r\n\r\nexport const CalcUnImpuesto = ( impuesto, index, base ) => {\r\n\tif(ImpuestoFactorExento(impuesto)) return 0;\r\n\tconst _Total = ImpuestoFactorTasa(impuesto) ? ( Numero(impuesto._TasaOCuota.rangoFinal) * base ): Numero(impuesto._TasaOCuota.rangoFinal);\r\n\t// return EsImpuestoTraslado(impuesto)? _Total : _Total * -1;\r\n\treturn _Total;\r\n}\r\n\r\nexport const CalcImpuestosConcepto = ( concepto ) => {\r\n\tconst base = CalcSubTotalConcepto(concepto);\r\n\treturn concepto._Producto._Impuestos\r\n\t\t\t.map( (impuesto,index) => {\r\n\t\t\t\tconst _Total = CalcUnImpuesto( impuesto, index, base );\r\n\t\t\t\treturn EsImpuestoTraslado(impuesto)? _Total : _Total * -1;\r\n\t\t\t})\r\n\t\t\t.reduce(( p, c ) => p + c, 0);\r\n}\r\n\r\nexport const CalcImpuestosRetenidosConcepto = ( concepto ) => {\r\n\tconst base = CalcSubTotalConcepto(concepto);\r\n\treturn concepto._Producto._Impuestos\r\n\t\t\t.filter(EsImpuestoRetencion)\r\n\t\t\t.map(( impuesto, index ) => CalcUnImpuesto( impuesto, index, base )).reduce((p, c) => p + c, 0);\r\n}\r\n\r\nexport const CalcImpuestosTrasladadosConcepto = ( concepto ) => {\r\n\tconst base = CalcSubTotalConcepto(concepto);\r\n\treturn concepto._Producto._Impuestos\r\n\t\t\t.filter(EsImpuestoTraslado)\r\n\t\t\t.map((impuesto,index) => CalcUnImpuesto( impuesto, index, base )).reduce((p, c) => p + c, 0);\r\n}\r\n\r\nexport const CalcTotalConcepto = ( concepto ) => CalcSubTotalConcepto(concepto) + CalcImpuestosConcepto(concepto);\r\n\r\nexport const CalcSubTotal = ( _Conceptos ) => _Conceptos.map(CalcImporteConcepto).reduce((p, c) => p + c, 0);\r\n\r\nexport const CalcImpuestos = ( _Conceptos ) => _Conceptos.map(CalcImpuestosConcepto).reduce((p, c) => p + c, 0);\r\n\r\nexport const CalcImpuestosRetenciones = ( _Conceptos ) => _Conceptos.map(CalcImpuestosRetenidosConcepto).reduce((p, c) => p + c, 0);\r\n\r\nexport const CalcImpuestosTrasladados = ( _Conceptos ) => _Conceptos.map(CalcImpuestosTrasladadosConcepto).reduce((p, c) => p + c, 0);\r\n\r\nexport const CalcDescuentos = ( _Conceptos ) => _Conceptos.map(CalcDescuentoConcepto).reduce((p, c) => p + c, 0);\r\n\r\nexport const CalcTotal = ( _Conceptos ) => _Conceptos.map(CalcTotalConcepto).reduce((p, c) => p + c, 0);\r\n\r\nexport const CalcTotales = ( { _Conceptos } ) => {\r\n\treturn {\r\n\t\t_Subtotal: CalcSubTotal(_Conceptos),\r\n\t\t_Impuesto: CalcImpuestos(_Conceptos),\r\n\t\t_ImpuestosRetenidos : CalcImpuestosRetenciones(_Conceptos),\r\n\t\t_ImpuestosTrasladados : CalcImpuestosTrasladados(_Conceptos),\r\n\t\t_Descuento: CalcDescuentos(_Conceptos),\r\n\t\t_Total: CalcTotal(_Conceptos)\r\n\t};\r\n}\r\n\r\n\r\nexport const currency = ( number = 0, decimal = 2 ) => `$ ${parseFloat(number).toFixed(decimal).replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, '$1,')}`;\r\n\r\n\r\nexport const DireccionEmisor = ( { _DomicilioFiscal } ) => {\r\n return `${_DomicilioFiscal._Calle || ''} # ${_DomicilioFiscal._Exterior || ''} ${_DomicilioFiscal._Interior || ''}, ${_DomicilioFiscal._Colonia || ''}, ${_DomicilioFiscal._CP || ''} ${_DomicilioFiscal._Municipio || ''}, ${_DomicilioFiscal._Estado || ''} ${_DomicilioFiscal._Pais || ''}`;\r\n}; \r\n\r\nexport const EmisorComprobante = ( emisor, _SucursalEmisorID , regimenes ) => {\r\n const sucursal = emisor._Sucursales.filter((_Sucursal) => _Sucursal._SucursalID === _SucursalEmisorID)[0];\r\n let regimen = {};\r\n if (emisor._DatosFiscales._Regimenes.length >= 1) {\r\n regimen = regimenes.filter((r) => r.c_RegimenFiscal === emisor._DatosFiscales._Regimenes[0])[0];\r\n }\r\n return { \r\n ...emisor, \r\n _Sucursal: { \r\n ...sucursal \r\n }, \r\n _RegimenFiscal: { ...regimen} \r\n };\r\n}\r\n\r\nexport const OcupaTipoCambio = (_Moneda) => {\r\n return _Moneda.c_Moneda !== 'MXN' && _Moneda.c_Moneda !== 'XXX';\r\n}\r\n\r\nexport const FormatoDate = 'YYYY-MM-DD';\r\nexport const FormatoDateTime = 'YYYY-MM-DD HH:mm:ss';\r\nexport const FormatoDateTimeComprobante = 'YYYY-MM-DD HH:mm:ss';\r\n\r\nexport const IMG_LOGO = \"assets/images/logo/logo.png\";\r\n\r\n\r\nexport const ArmarClienteConReceptor = ( receptor, vendedor ) => {\r\n return {\r\n _NoCliente: receptor._NoCliente,\r\n _Nombre : receptor._Nombre,\r\n _NombreComercial : receptor._NombreComercial,\r\n _RFC : receptor._DatosFiscales._RFC,\r\n _Domicilio: {\r\n ...receptor._DomicilioFiscal\r\n },\r\n _Contactos: receptor._Contactos.map( ( contacto ) => { \r\n return {\r\n _Nombre : contacto._Nombre,\r\n _Correo : contacto._Correo,\r\n _Telefono : contacto._Telefono,\r\n _Celular : contacto._Celular,\r\n _Enviar : true,\r\n _Guardar : true\r\n }; \r\n }),\r\n _Grupos: receptor._Grupos,\r\n _Fletes: [],\r\n _Transportes: [],\r\n _UsaPaqueteria: false,\r\n _ExcluyeComision: false,\r\n _VendedorPrincipalID: vendedor._VendedorID,\r\n _Activo : true,\r\n }\r\n}\r\n\r\nexport const GetTypeMessage = (type) => {\r\n switch (type) {\r\n case 4:\r\n return { type: 'success', title: 'Aviso'};\r\n case 2:\r\n case 6:\r\n case 7:\r\n return {type: 'info', title: 'Aviso'};\r\n case 0:\r\n case 3:\r\n case 5:\r\n return {type: 'warning', title: 'Advertencia'};\r\n default:\r\n return {type: 'error', title: 'Error'};\r\n }\r\n}\r\nexport const ShowMessage = ( result ) => {\r\n\tif(result.hasMessage){\r\n const msj = GetTypeMessage(result.type);\r\n\t\tNotificationManager[msj.type](result.message, msj.title);\r\n\t}\r\n\treturn result.isValid;\r\n};\r\n\r\nexport const EstatusVenta = {\r\n\tGenerada: 0,\r\n\tCancelada: 1,\r\n\tTimbrada: 2,\r\n PorAprobar: 3,\r\n PendienteCancelacion: 4\r\n};\r\n\r\nexport const TipoAsignacionComprobante = {\r\n\tNoAsinado: 0,\r\n\tPropia: 1,\r\n\tGeneral: 2\r\n};\r\n\r\nexport const schemaEmpresa = {\r\n _Configuracion:{\r\n _DatosVenta:{\r\n \r\n }\r\n },\r\n _Sucursales: []\r\n}\r\n\r\n\r\nexport const MismaEmpresaUrlYGuardada = ( empresa, { match } ) => {\r\n return empresa && \r\n empresa._Configuracion && \r\n empresa._Configuracion._DatosVenta && \r\n empresa._Configuracion._DatosVenta._ShortName === match.params.empresaName; \r\n}\r\n\r\nexport const OcupaNotaDeCredito = ( venta ) => \r\n venta._Estatus === EstatusVenta.Timbrada && \r\n venta._TipoAsignacionComprobante === TipoAsignacionComprobante.General;\r\n\r\nexport const ObtenerTipoComprobanteNotaDeCredito = ( tiposcomprobantes = [] ) => \r\n tiposcomprobantes.filter(x => x._TipoComprobanteID === \"NC\" )[0];\r\n\r\n\r\nexport const ObtenerTipoRelacionNotadeCredito = ( tiposrelaciones = [] ) => \r\n tiposrelaciones.filter(x => x.c_TipoRelacion === \"01\" )[0];\r\n\r\n\r\nexport const TieneMismosConcepto = ( _Producto1, _Producto2 ) => {\r\n if(_Producto1._TieneImpuestos !== _Producto2._TieneImpuestos || _Producto1._Impuestos.length !== _Producto2._Impuestos.length )\r\n return false;\r\n let mismosImpuestos = true;\r\n _Producto1._Impuestos.forEach((imp1)=>{\r\n let tieneElImpuesto = false;\r\n _Producto2._Impuestos.forEach((imp2)=>{\r\n if( imp1._Impuesto.c_Impuesto === imp2._Impuesto.c_Impuesto && \r\n imp1._TipoFactor.c_TipoFactor === imp2._TipoFactor.c_TipoFactor &&\r\n imp1._TipoImpuesto._Codigo === imp2._TipoImpuesto._Codigo &&\r\n imp1._TasaOCuota.rangoFinal === imp2._TasaOCuota.rangoFinal \r\n ){\r\n tieneElImpuesto = true;\r\n }\r\n });\r\n if(!tieneElImpuesto){\r\n mismosImpuestos = false;\r\n }\r\n });\r\n return mismosImpuestos;\r\n}\r\n\r\n\r\nexport const ObtenerUsuarioYGrupo = ( venta ) => {\r\n return {\r\n _GrupoID : venta._GrupoID,\r\n _UserID : venta._UserID,\r\n _UserName : venta._UserName\r\n }\r\n}\r\n\r\n\r\nexport const ObtenerUsoGenerico = ( usoscfdi ) => usoscfdi.filter((u) => u.c_UsoCFDI === 'G01')[0];\r\n\r\n\r\nexport const ObtenerTipoPersona = ( _RFC ) => {\r\n if (_RFC === 'XEXX010101000') {\r\n return 2;\r\n }\r\n if (_RFC.length === 13) {\r\n return 0;\r\n }\r\n return 1;\r\n}\r\n\r\n\r\nexport const ReceptorPerteneceAlGrupo = ( _Grupos, _GrupoID ) => {\r\n let pertenece = false;\r\n if (!_Grupos)\r\n return false;\r\n _Grupos.forEach( ( grupo ) => {\r\n if (grupo === _GrupoID) {\r\n pertenece = true;\r\n }\r\n });\r\n return pertenece;\r\n}\r\n\r\n\r\nexport const ReceptorComprobante = (receptor, usoscfdi ) => {\r\n const uso = ObtenerUsoGenerico(usoscfdi);\r\n receptor._UsoCFDI = uso;\r\n return receptor;\r\n}\r\n\r\n\r\nexport const ObtenerConceptosSeleccionados = ({ _Conceptos }) => {\r\n return {\r\n _Conceptos: _Conceptos.filter(( _Concepto )=> _Concepto.isSelected )\r\n };\r\n}\r\n\r\n\r\nexport const Pasos = {\r\n Inicio: 1,\r\n Busqueda: 2,\r\n Receptor: 3,\r\n Comprobante: 4,\r\n Visualizador: 5\r\n}\r\n\r\n\r\nexport const ObtenerContactos = ( _ContactosString ) => {\r\n if(!_ContactosString)\r\n return []; \r\n const _Contactos = [];\r\n const _ContactosArray = _ContactosString.split(\",\");\r\n for (let i = 0; i < _ContactosArray.length; i++) {\r\n const _Correo = _ContactosArray[i];\r\n _Contactos.push({\r\n _Nombre : `Contacto ${(i + 1)}`,\r\n _Correo : _Correo.trim(),\r\n _Telefono : \"\",\r\n _Celular : \"\",\r\n _Enviar : true,\r\n _Guardar : true\r\n });\r\n }\r\n return _Contactos;\r\n}","import React from 'react';\r\n\r\nexport default () => (*);","import React from 'react';\r\nimport Required from './Required';\r\n\r\nexport default ({ children, cols = 3, text= '', onChange = () => {}, name, value, type, required = false }) => {\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n}","import React from 'react';\r\nimport { Button, Modal } from \"react-bootstrap\";\r\n\r\nclass LinkTerminos extends React.Component {\r\n state = {};\r\n handleOpenTerminos(e){\r\n e.preventDefault();\r\n this.setState({ showModalTerminos: true });\r\n }\r\n\r\n handleCloseTerminos(e){\r\n this.setState({ showModalTerminos: false });\r\n }\r\n render(){\r\n return [\r\n ,\r\n \r\n \r\n Aviso de privacidad y terminos de uso de datos.\r\n \r\n \r\n
\r\n
\r\n
\r\n

VALAVI DATA SYSTEMS S.A DE C.V. y SULTANA EMPRESARIAL S.A DE CV. (en adelante LAS EMPRESAS), se compromete a asegurar la privacidad de la información personal obtenida a través de sus servicios en línea. LAS EMPRESAS\r\n es una compañía de software que desarrolla y comercializa sistemas de administración empresarial en línea y estamos ubicados en Av. Adolfo Ruiz Cortines Poniente 3750 Col. Antonio I Villarreal C.P. 64390, Monterrey,\r\n Nuevo León, México y nuestro correo para contacto es contacto@valavi.mx. Nuestra prioridad es respetar la privacidad de sus datos de usuario y mantener segura toda la información que nuestros servicios recolectan.\r\n Este aviso de privacidad cubre la información proporcionada en los sitios web: https://www.valavi.com.mx, https://www.sulemp.com, https://clientes.sulemp.com, https://wiki.sulemp.com, https://www.haztufactura.com\r\n y https://factura.sulemp.com. Este aviso podría sufrir cambios en un futuro y de ser así se le avisará oportunamente en la sección de Aviso de privacidad de los sitios mencionados anteriormente. Si usted desea\r\n revocar el consentimiento respecto al tratamiento y uso de sus datos personales o solicitar el ejercicio de sus derechos ARCO (Acceso, Rectificación, Cancelación y Oposición), envíenos un correo electrónico\r\n a la siguiente dirección (soporte@valavi.mx).\r\n


\r\n

DATOS PERSONALES QUE SOLICITAN Y REQUIEREN NUESTROS SERVICIOS. LAS EMPRESAS recoge información desde varias áreas y secciones de nuestros sitios web. La información que se solicita es requerida para la finalidad\r\n de funcionamiento del formulario en que es requerida, además esta información es almacenada en diferentes apartados de nuestro banco de datos, la información deberá ser veras y completa y el usuario responderá\r\n en todo momento por los datos proporcionados, en ningún caso LAS EMPRESAS es responsable de la veracidad de los mismo. La información recabada en los sitios es: • En los formularios de Contacto es. o Nombre,\r\n Correo Electrónico. • Al momento de solicitar un demo: o Nick de usuario, Empresa, Correo Electrónico. • Al momento de comprar. o Nick de usuario, Nombre completo, Correo Electrónico, Razón Social, Régimen Fiscal,\r\n Domicilio Fiscal, Número de tarjeta de crédito. • A registrar usuarios. o Nombre completo, nombre de usuario, correo electrónico, teléfono y celular • Al Registrar un Emisor o Razón social, Datos fiscales requeridos\r\n para la emisión de timbres, Teléfonos, Datos de contacto, Domicilio fiscal, Certificados de sello digital. • Al registrar un receptor (clientes) o Razón social, Datos fiscales requeridos para la emisión de timbres,\r\n Teléfonos, Datos de contacto, Domicilio fiscal. • Al registrar productos y servicios o Descripción precios y dataos requeridos para la emisión de timbres fiscales. • Al registrar empleados o Nombre, Información\r\n fiscal requerida para la emisión de nóminas fiscales. Teléfono y correo electrónico. En todo momento usted podrá revocar el consentimiento que nos ha otorgado para el tratamiento de sus datos personales, a fin\r\n de que dejemos de hacer uso de los mismos, para ello es necesario que presente su petición mediante un correo electrónico a soporte@valavi.mx, dicha petición deberá ir acompañada de fundamentos por los que solicita\r\n dicha revocación y asumiendo que el funcionamiento de nuestros servicios no se podría completar por la falta de esos datos personales. En un plazo no mayor a 5 días hábiles atenderemos su solicitud y le informaremos\r\n sobre la procedencia de la misma a través del correo electrónico del que provenga la solicitud.\r\n


\r\n

USO DE COOKIES: Las cookies son pequeñas piezas de información que son enviadas por el sitio web a su navegador y se almacenan en el disco duro de su equipo y se utilizan para determinar preferencias cuando se conecta\r\n a los servicios de nuestros sitios, así como para rastrear comportamientos, generar estadísticas de uso o actividades llevadas a cabo por usted dentro de nuestros sitios. En algunas secciones y servicios de\r\n nuestro sitio requerimos que el cliente tenga habilitados las cookies ya que algunas de estas funcionalidades requieren de ellas para trabajar y funcionar correctamente. Las cookies nos permiten reconocerlo\r\n al momento de entrar a nuestros sitios y ofrecerle una experiencia personalizada para usted. Las cookies no se utilizan para identificar a los usuarios, a excepción de los casos que se investiguen actividades\r\n fraudulentas.\r\n


\r\n

USO DE LA INFORMACION. La información solicitada por LAS EMPRESAS a través de nuestros sitios y servicios, permite contactar a los usuarios actuales y potenciales cuando sea necesario para ofrecerles algún producto\r\n o servicio, informarle de alguna mejora a los productos y servicios o mantenerlo al tanto de acontecimientos de LAS EMPRESAS y como esto puede apoyarlo en sus actividades dentro de nuestras plataformas. Asimismo,\r\n la información obtenida nos permite: • Proporcionarle un servicio eficiente • Informar sobré características, cambios y mejoras en nuestros productos y servicios. • Dar cumplimiento a las obligaciones contraídas\r\n con nuestros clientes • Proveer una eficiente atención a usuarios.

\r\n

LIMITE DE USO Y DIVULGACION DE INFORMACION. El acceso a la información es restringido por parte de LAS EMPRESAS solo el usuario y las personas que el mismo faculte pueden acceder a dicha información En nuestros\r\n servicios de notificación, promociones, ofertas a través de correo electrónico, solo LAS EMPRESAS tiene acceso a la información recabada. Este tipo de publicidad se realiza mediante avisos y mensajes promocionales\r\n de correo electrónico, los cuales solo serán enviados a usted y aquellos usuarios registrados para tales propósitos, esta indicación podrá usted modificarla en cualquier momento enviando un correo electrónico\r\n a soporte@valavi.mx. En el correo electrónicos podría incluirse ocasionalmente ofertas de terceras partes que sean de nuestros socios comerciales.\r\n


\r\n

DERECHOS ARCO. Los datos proporcionados por el usuario forman parte de un archivo digital que contendrá su perfil. El usuario puede ejercer sus derechos ARCO a través del sistema o por medio del correo electrónico\r\n soporte@valavi.mx En el caso de optar por el correo electrónico el tiempo de respuesta de hasta 5 días hábiles. La solicitud deberá de ir acompañada de los argumentos por los que desea ejercer cualquiera de\r\n sus derechos, junto con una copia digitalizada de una identificación oficial del titular o de su apoderado. LAS EMPRESAS aconseja al usuario que actualice sus datos cada vez que estos sufran de alguna modificación\r\n ya que esto permitirá ofrecerle un servicio mas personalizado.\r\n


\r\n

REMISIONES DE INFORMACION CON TERCEROS. LAS EMPRESAS únicamente realiza re-emisiones de información con los proveedores de Hosting, Timbrado, Almacenamiento y de Analítica con los que mantiene una relación jurídica\r\n vigente para poder mantener, actualizar y administrar sus servicios, sitios y plataformas, a través de los que informa a sus usuarios sobre actividades, promociones, eventos e información relevante de sus servicios.\r\n


\r\n

DATOS PERSONALES SENCIBLES. LAS EMPRESAS no solicita datos sensibles en ninguno de sus servicios.\r\n


\r\n

SEGURIDAD. LAS EMPRESAS ha incorporado medidas de seguridad, prevención y contención acordes a las mejores prácticas vigentes en la industria con el fin de salvaguardar en la medida de los posible la información\r\n contenida en nuestras bases de datos. Ninguna transmisión por medio de internet garantiza su seguridad al 100%. Una vez recibidos los datos haremos todo lo posible para salvaguardar su seguridad en nuestros\r\n sistemas, en este tema nuestro equipo de colaboradores ha enfocado sus esfuerzos para ofrecer tecnología más acorde a fin de ofrecerles la mayor seguridad posible y mitigar los riesgos de desviaciones, adulteración,\r\n perdida, consulta o tratamiento no autorizado de sus datos.\r\n


\r\n

CONFIDENCIALIDAD DE INFORMACION. LAS EMPRESAS no vende ni alquila la información de sus usuarios, si los datos de usuarios deberían ser compartidos con socios, el usuario será notificado antes de que estos sean\r\n recogidos o transferidos, si el usuario no desea que sus datos sean compartidos, puede decidir no utilizar un servicio determinado o no participar en el fin por el cual la información está siendo utilizada.\r\n LAS EMPRESAS puede difundir la información del titular en casos especiales cuando a solicitud expresa de alguna autoridad, proporcionar esta información pueda servir para identificar , localizar o realizar acciones\r\n legales contra personas que pudiesen infringir las condiciones del servicio de nuestros sitios, o causar daños o interferencia sobre los derechos de LAS EMPRESAS o sus propiedades, de otros usuarios de nuestros\r\n servicios o de cualquier otra persona que pudiese resultar perjudicada por dichas actividades. LAS EMPRESAS no asume ninguna obligación de mantener confidencial cualquier otra información que el usuario proporcione\r\n por otros medios ajenos a los anteriormente mencionados.\r\n


\r\n

PROTECCION DE LA INFORMACION PERSONAL Le recordamos que no revele su información personal, incluidos usuarios y contraseñas a nadie, LAS EMPRESAS no solicitaran su contraseña en ninguna llamada telefónica o correo\r\n electrónico. En todo momento el usuario es el responsable único y final de mantener en secreto sus datos de acceso a nuestros servicios, para disminuir los riesgos LAS EMPRESAS recomienda al usuario salir de\r\n su cuenta y cerrar la ventana del navegador cuando finalice su actividad, más aún si comparte el equipo de cómputo con alguien o utiliza un equipo público como una biblioteca o café internet.\r\n


\r\n

CONFIDENCIALIDA A MENORES. LAS EMPRESAS no solicita información de identificación a los menores. Los menores siempre deben solicitar permiso a sus tutores antes de enviar información personal a otro usuario que\r\n se encuentre en línea.\r\n


\r\n

ACEPTACION DE LOS TERMINOS Esta declaración de confidencialidad/Privacidad está sujeta a los términos y condiciones de los sitios web de LAS EMPRESAS antes descritos, lo cual constituye un acuerdo legal entre el\r\n usuario y LAS EMPRESAS Si el usuario utiliza los servicios y plataformas de LAS EMPRESAS significa que ha leído, entendido y acordado los términos antes expuestos. En caso de hacer una modificación a este aviso\r\n de Privacidad, LAS EMPRESAS notificara por correo electrónico a sus usuarios registrados con una anticipación no mayor a 10 días hábiles, y la publicara en el tablero de anuncios de nuestros servicios a fin\r\n de que todos los usuarios de LAS EMPRESAS queden enterados del cambio. Le recordamos que está en la facultad de acudir al IFAI en caso de considerar que ha sido vulnerado su derecho a la protección de datos\r\n personales.\r\n


\r\n

\r\n Fecha de Actualización 7 de noviembre de 2018

\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 LinkTerminos;","import React from 'react';\r\nimport { Button, FormGroup, Checkbox } from \"react-bootstrap\";\r\nimport { ToResult, localStorage } from '../../../Utils';\r\nimport { empresas } from '../Url';\r\nimport { RegexRFC } from '../../Cfdi/Models';\r\nimport { NotificationManager } from 'react-notifications';\r\nimport { Pasos } from '../../Cfdi/Models';\r\nimport TextField from '../../../Utils/Common/TextField';\r\nimport Required from '../../../Utils/Common/Required';\r\nimport LinkTerminos from './LinkTerminos';\r\n\r\nconst INIT_FORM = {\r\n _RFC:'',\r\n _Correo:'',\r\n _EmpresaID:'',\r\n _Registrarme: false,\r\n _AceptoTerminos: false\r\n};\r\n\r\nclass Formulario extends React.Component {\r\n state = {\r\n empresas: [],\r\n empresa:{},\r\n form:{\r\n ...INIT_FORM\r\n }\r\n };\r\n componentDidMount(){\r\n this.ObtenerEmpresas();\r\n }\r\n\r\n ObtenerEmpresas(){\r\n ToResult.ToResultPost(\r\n\t\t\tempresas.url_listarempresas,\r\n\t\t\t{},\r\n\t\t\t(err, response) => {\r\n\t\t\t\tif (response.isValid) {\r\n this.setState({ empresas: response.data });\r\n }\r\n\t\t\t}\r\n\t\t);\r\n }\r\n\r\n updateFormEmpresa( e ){\r\n const value = e.currentTarget.value;\r\n this.updateForm(e,() => {\r\n const empresa = this.state.empresas.filter(( empresa ) => empresa._EmpresaID === value )[0];\r\n localStorage.set('empresa', empresa );\r\n this.setState({ empresa });\r\n });\r\n }\r\n\r\n updateForm( { target }, callback= () => {} ){\r\n const { name, value, checked } = target;\r\n let { form } = this.state;\r\n if(target.type === \"checkbox\"){\r\n form = {\r\n ...form,\r\n [name]: checked \r\n };\r\n } else {\r\n form = {\r\n ...form,\r\n [name]: name === '_RFC'? value.toUpperCase() : value\r\n };\r\n }\r\n this.setState({\r\n form\r\n }, callback );\r\n }\r\n\r\n onSubmitForm(e){\r\n e.preventDefault();\r\n const { form } = this.state;\r\n if(!form._AceptoTerminos){\r\n NotificationManager.warning(\"Es necesario aceptar terminos y condiciones.\", \"Advertencia\");\r\n return;\r\n }\r\n if(!RegexRFC.test(form._RFC.trim())){\r\n NotificationManager.warning(\"El RFC ingresado no es un RFC correcto.\", \"Advertencia\");\r\n this.setState({isInvalidRfc: true });\r\n return;\r\n }\r\n\r\n localStorage.set(\"informacion\", {\r\n _RFC: form._RFC.trim(),\r\n _Correo: form._Correo.trim(),\r\n _Registrarme: form._Registrarme,\r\n _AceptoTerminos: form._AceptoTerminos\r\n } );\r\n localStorage.set('paso_anterior', Pasos.Inicio );\r\n window.location = `#/${this.state.empresa._Configuracion._DatosVenta._ShortName}`;\r\n }\r\n \r\n TieneEmpresa(){\r\n return this.props.nombreEmpresa;\r\n }\r\n \r\n\r\n\trender() {\r\n const { form, empresas } = this.state;\r\n return (\r\n
\r\n
\r\n { this.TieneEmpresa() ?\r\n

\r\n {this.props.nombreEmpresa}\r\n

\r\n : false }\r\n
¿Quieres tu factura?
\r\n

Coloca los datos a continuación y presiona \"Quiero mi factura\"

\r\n
\r\n
\r\n { !this.TieneEmpresa() ? \r\n
\r\n \r\n \r\n
\r\n : false }\r\n \r\n Tu RFC\r\n \r\n
\r\n
\r\n \r\n Tu correo electrónico\r\n \r\n
\r\n
\r\n \r\n {/* \r\n Registrarme para notificaciones\r\n \r\n */}\r\n \r\n Acepto los \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n\t}\r\n}\r\n\r\nexport default Formulario;","import React from 'react';\r\nimport $ from 'jquery';\r\nimport Formulario from './Formulario';\r\nimport AutoAffix from 'react-overlays/lib/AutoAffix';\r\nimport AnchorLink from 'react-anchor-link-smooth-scroll';\r\nimport OwlCarousel from 'react-owl-carousel';\r\nimport 'owl.carousel/dist/assets/owl.carousel.css';\r\nimport 'owl.carousel/dist/assets/owl.theme.default.css';\r\n \r\nclass Inicio extends React.Component {\r\n componentDidMount(){\r\n }\r\n render(){\r\n $(document).ready(()=>{\r\n var $bgSection = $(\".bg-section\");\r\n if($bgSection){\r\n $bgSection.each(function() {\r\n var bgSrc = $(this).children(\"img\").attr(\"src\");\r\n var bgUrl = 'url(' + bgSrc + ')';\r\n $(this).parent().css(\"backgroundImage\", bgUrl);\r\n $(this).parent().addClass(\"bg-section\");\r\n $(this).remove();\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 \"bg\"/\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"Has\r\n
\r\n
Generador de Factura Electrónica
\r\n
Aquí podrás facturar tu consumo o ticket en 4 sencillos pasos, sólo debes tener a la mano tu ticket de compra.
\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

Mantenemos tus comprobantes

\r\n

Con tu correo electronico y RFC podras consultar los comprobantes que generaste con nosotros

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

Servio personalizado

\r\n

Tu información para nostros es importante y estara protegida y con nosotros el tiempo que decidas.

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

Ahorra tiempo

\r\n

Nuestro servicio es la manera mas facil de generar tu factura, pues te identificaremos siempre que llegues a hacer tu factura con nosotros.

\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

¿Qué dicen de nosotros?

\r\n
\r\n
\r\n
\r\n {/*
\r\n
\r\n
\r\n
\r\n \"author\"/\r\n
\r\n
\r\n
\r\n
Mark Smith
\r\n
\r\n
\r\n Envato Inc.\r\n
\r\n

\"This should be used to tell a story and include any testimonials you might have about your product or service for your clients.\"

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"author\"/\r\n
\r\n
\r\n
\r\n
Jessy Arthur
\r\n
\r\n
\r\n Apple Inc.\r\n
\r\n

\"This should be used to tell a story and include any testimonials you might have about your product or service for your clients.\"

\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 \"client\"/\r\n
\r\n
\r\n \"client\"/\r\n
\r\n
\r\n \"client\"/\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Registrate con nosotros

\r\n

Recibe alertas y notificaciones del estado de las facturas que generaste con nostros

\r\n {/* Quiero registrarme... */}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Inicio;","import React from 'react';\r\nimport { Route } from 'react-router-dom';\r\n\r\nimport Inicio from '../Components/Inicio';\r\n\r\nexport default [\r\n\t,\r\n\t//,\r\n];\r\n","export const empresas = {\r\n\turl_obtenerempresaporshortname: '/vnts/empresa/obtenerempresaporshortname'\r\n};\r\n\r\nexport const receptores = {\r\n\turl_obtenerreceptordelemisor: '/cfdi/receptores/obtenerReceptorDelEmisor',\r\n\turl_crear: '/cfdi/receptores/crear'\r\n}\r\n\r\nexport const sat = {\r\n\turl_pais: '/sat/SAT_Pais',\r\n url_estados: '/sat/SAT_Estados',\r\n url_codigopostal: '/sat/SAT_CodigoPostal',\r\n url_usocfdi: '/sat/SAT_UsoCFDI',\r\n\turl_formapago: '/sat/SAT_FormaPago',\r\n\turl_metodopago: '/sat/SAT_MetodoPago',\r\n\turl_monedas: '/sat/SAT_Moneda'\r\n};\r\n\r\nexport const ventas = {\r\n\turl_ventaporfolio: '/vnts/ventas/obtenerventaporfolio',\r\n\turl_generartimbre: '/vnts/ventas/generartimbre',\r\n};\r\n\r\nexport const cfdi = {\r\n\turl_datoscfdi: '/cfdi/datosventa',\r\n\turl_configuracion_rutas: '/cfdi/configuraciones/obtenerrutas',\r\n\turl_timbrar: '/cfdi/crearregresaobjeto',\r\n\turl_ver: '/cfdi/ObtenerPorId',\r\n\turl_enviar_correo_a: '/cfdi/mandarcorreoa',\r\n\turl_obtenercfdirelacionados:'/cfdi/obtenercfdirelacionados',\r\n\turl_obtenerconceptonotadecredito:'/cfdi/obtenerconceptonotadecredito',\r\n\turl_obtenerconceptoconsumo:'/cfdi/obtenerconceptoconsumo' \r\n};\r\n","import React from 'react';\r\nimport { Button, FormGroup, Checkbox } from \"react-bootstrap\";\r\nimport { ToResult, localStorage } from '../../../Utils';\r\nimport { empresas, ventas } from '../Urls';\r\nimport moment from 'moment';\r\nimport { NotificationManager } from 'react-notifications';\r\nimport { \r\n EstatusVenta, \r\n ShowMessage, \r\n TipoAsignacionComprobante, \r\n FormatoDate,\r\n MismaEmpresaUrlYGuardada,\r\n IMG_LOGO,\r\n schemaEmpresa,\r\n Pasos\r\n} from '../Models';\r\nimport TextField from '../../../Utils/Common/TextField';\r\nimport Required from '../../../Utils/Common/Required';\r\nimport LinkTerminos from '../../Public/Components/LinkTerminos';\r\n\r\nconst INIT_FORM = {\r\n _RFC:'',\r\n _Correo:'',\r\n _SucursalID:'',\r\n _Folio:'',\r\n _Total: 0.0,\r\n _Registrarme: false,\r\n _AceptoTerminos: false\r\n};\r\n\r\n\r\nclass Busqueda extends React.Component {\r\n state = {\r\n empresa: {\r\n ...schemaEmpresa\r\n },\r\n form: {\r\n ...INIT_FORM,\r\n _Fecha: moment().format(\"YYYY-MM-DD\")\r\n }\r\n };\r\n\r\n TieneEmpresaName() {\r\n return !!this.props.match.params.empresaName;\r\n }\r\n\r\n componentDidMount(){\r\n const empresa = localStorage.get('empresa');\r\n if( empresa && MismaEmpresaUrlYGuardada(empresa, this.props ) ){\r\n this.setState({ empresa }, this.precargarInformacion.bind(this) );\r\n } else if(this.TieneEmpresaName()){\r\n this.ObtenerEmpresa(this.precargarInformacion.bind(this));\r\n } else {\r\n window.location = \"#/\";\r\n return;\r\n }\r\n }\r\n\r\n precargarInformacion(){\r\n const informacion = localStorage.get('informacion');\r\n if(informacion){\r\n this.setState({\r\n form:{\r\n ...INIT_FORM,\r\n ...informacion,\r\n _Fecha: moment().format(\"YYYY-MM-DD\"),\r\n _SucursalID: this.ObtenerSucursalDefault()\r\n }\r\n });\r\n }\r\n }\r\n\r\n ObtenerSucursalDefault(){\r\n const { empresa } = this.state;\r\n if( empresa._Sucursales.length === 1)\r\n return empresa._Sucursales[0]._SucursalID;\r\n return '';\r\n }\r\n\r\n ObtenerEmpresa( callback = () => {} ){\r\n ToResult.ToResultPost( empresas.url_obtenerempresaporshortname, {}, (err, response) => {\r\n if (response.isValid) \r\n this.setState({ empresa: response.data }, callback );\r\n else\r\n window.location = \"#/\";\r\n });\r\n }\r\n\r\n ObtenerShortNameEmpresa(){\r\n return this.props.match.params.empresaName;\r\n }\r\n\r\n onClickSiguiente(e){\r\n e.preventDefault();\r\n }\r\n\r\n updateFormCheckboxExtrajero({ target }){\r\n const { checked } = target;\r\n this.setState({\r\n form: {\r\n ...this.state.form,\r\n _RFC: checked ? \"XEXX010101000\":\"\" \r\n }\r\n });\r\n }\r\n\r\n updateFormNumber(e ){\r\n const { name, value } = e.target;\r\n let { form } = this.state;\r\n if(!isNaN(Number(value))) {\r\n this.setState({\r\n form: {\r\n ...form,\r\n [name]: value.trim()\r\n }\r\n });\r\n }\r\n }\r\n\r\n updateForm( { target } ){\r\n const { name, value, checked } = target;\r\n let { form } = this.state;\r\n if(target.type === \"checkbox\"){\r\n form = {\r\n ...form,\r\n [name]: checked \r\n };\r\n } else {\r\n form = {\r\n ...form,\r\n [name]: name === '_RFC'? value.toUpperCase().trim() : value.trim()\r\n };\r\n }\r\n this.setState({\r\n form\r\n });\r\n }\r\n\r\n PasoElTiempoDeTimbrado( venta, empresa ){\r\n const dateEmision = moment( moment(venta._FechaEmision).format( FormatoDate ) );\r\n const dateVencimiento = moment( dateEmision.add(empresa._Configuracion._DatosVenta._DiasTramitarFactura, 'days' ).format( FormatoDate ) );\r\n const dateHoy = moment( moment().format( FormatoDate ) );\r\n const dias = moment.duration(dateHoy.diff(dateVencimiento)).asDays();\r\n return dias > 0;\r\n }\r\n\r\n onSubmitForm(e){\r\n e.preventDefault();\r\n const { form } = this.state;\r\n ToResult.ToResultPost( ventas.url_ventaporfolio, form , (err, response) => {\r\n if (ShowMessage(response)) {\r\n const venta = response.data;\r\n localStorage.set(\"informacion\", {\r\n _RFC: form._RFC.trim(),\r\n _Correo: form._Correo.trim(),\r\n _Registrarme: form._Registrarme,\r\n _AceptoTerminos: form._AceptoTerminos\r\n });\r\n localStorage.set('venta', response.data );\r\n localStorage.set('paso_anterior', Pasos.Busqueda );\r\n if( venta._Estatus === EstatusVenta.Timbrada ){\r\n if(venta._TipoAsignacionComprobante === TipoAsignacionComprobante.Propia){\r\n NotificationManager.success(\"Ticket previamente timbrado\", \"Aviso\");\r\n window.location = `#/${this.state.empresa._Configuracion._DatosVenta._ShortName}/visualizador/${venta._ComprobanteID}`;\r\n return;\r\n }\r\n }\r\n if(!this.PasoElTiempoDeTimbrado(venta, venta._Empresa)){\r\n NotificationManager.success(\"Ticket Encontrado\", \"Aviso\");\r\n window.location = `#/${this.state.empresa._Configuracion._DatosVenta._ShortName}/receptor`;\r\n } else {\r\n NotificationManager.warning(\"Lo sentimos, a pasado el limite de dias para la realizacion del comprobante\", \"Advertencia\");\r\n }\r\n }\r\n });\r\n }\r\n\r\n onClickInicio(e){\r\n e.preventDefault();\r\n const { form } = this.state;\r\n localStorage.set(\"informacion\", {\r\n _RFC: form._RFC.trim(),\r\n _Correo: form._Correo.trim(),\r\n _Registrarme: form._Registrarme,\r\n _AceptoTerminos: form._AceptoTerminos\r\n });\r\n localStorage.set('paso_anterior', 2 );\r\n window.location = `#/`;\r\n }\r\n\r\n render(){\r\n const { form, empresa } = this.state;\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \"\"/\r\n
\r\n
\r\n
Bienvenido a nuestro portal de Facturación Electrónica
\r\n
\r\n Aquí podrás facturar, sólo debes tener a la mano tu ticket de compra.
\r\n Para la emisión de la factura de su No. Referencia se contemplan únicamente {empresa._Configuracion._DatosVenta._DiasTramitarFactura} días a partir de la fecha de emisión del Ticket de Compra.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n No referencia o ticket\r\n \r\n \r\n Fecha\r\n \r\n \r\n Monto\r\n \r\n
\r\n
\r\n \r\n Tu RFC\r\n \r\n \r\n Tu correo electrónico\r\n \r\n
\r\n
\r\n \r\n \r\n Soy Extranjero\r\n \r\n \r\n Acepto los \r\n \r\n {/* \r\n \r\n Registrarme para notificaciones\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 Busqueda;","import React from 'react';\r\nimport { Button } from \"react-bootstrap\";\r\nimport { ToResult, localStorage } from '../../../Utils';\r\nimport { empresas, sat, receptores } from '../Urls';\r\nimport TextField from '../../../Utils/Common/TextField';\r\nimport { schemaEmpresa, MismaEmpresaUrlYGuardada, ShowMessage, Pasos, ObtenerTipoPersona, IMG_LOGO } from '../Models';\r\nconst INIT_FORM = {\r\n _RFC:'',\r\n _Correo:'',\r\n _EmpresaID:'',\r\n _Pais:'MEX',\r\n _Estado:'',\r\n _UsoCFDI:'',\r\n _Registrarme: false,\r\n _AceptoTerminos: false\r\n};\r\n\r\nclass Busqueda extends React.Component {\r\n state = {\r\n empresas: [],\r\n usoscfdi: [],\r\n paises: [],\r\n estados: [],\r\n codigospostales: [],\r\n receptor:{\r\n \r\n },\r\n empresa: {\r\n ...schemaEmpresa \r\n },\r\n form: {\r\n ...INIT_FORM\r\n }\r\n };\r\n \r\n componentDidMount(){\r\n const empresa = localStorage.get('empresa');\r\n if( empresa && MismaEmpresaUrlYGuardada( empresa, this.props )){\r\n this.setState({ empresa }, this.ObtenerReceptorDelEmisor.bind(this));\r\n } else if(this.TieneEmpresaName()){\r\n this.ObtenerEmpresa(this.ObtenerReceptorDelEmisor.bind(this));\r\n } else {\r\n window.location = \"#/\";\r\n return;\r\n }\r\n this.ObtenerDatosReceptor();\r\n this.precargarInformacion();\r\n }\r\n\r\n precargarInformacion(){\r\n const informacion = localStorage.get('informacion');\r\n if(informacion){\r\n this.setState({\r\n form: {\r\n ...INIT_FORM,\r\n ...informacion,\r\n }\r\n });\r\n }\r\n }\r\n\r\n TieneEmpresaName() {\r\n return !!this.props.match.params.empresaName;\r\n }\r\n\r\n ObtenerShortNameEmpresa(){\r\n return this.props.match.params.empresaName;\r\n }\r\n\r\n ObtenerReceptorDelEmisor(){\r\n const { empresa, form } = this.state;\r\n const informacion = localStorage.get('informacion');\r\n ToResult.ToResultPost( receptores.url_obtenerreceptordelemisor, { \r\n _EmisorID: empresa._EmisorID,\r\n _RFC: informacion._RFC\r\n }, (err, response) => {\r\n if(response.data){\r\n const { _DomicilioFiscal, _Nombre } = response.data;\r\n this.setState({\r\n receptor: response.data,\r\n form:{\r\n ...form,\r\n ..._DomicilioFiscal,\r\n _CP: _DomicilioFiscal._CP.c_CodigoPostal,\r\n _Pais: _DomicilioFiscal._Pais.c_Pais || _DomicilioFiscal._Estado.c_Pais,\r\n _Estado: _DomicilioFiscal._Estado.c_Estado,\r\n _Nombre\r\n }\r\n });\r\n }\r\n });\r\n }\r\n \r\n ObtenerEmpresa( callback = () => {} ){\r\n ToResult.ToResultPost( empresas.url_obtenerempresaporshortname, {}, (err, response) => {\r\n if (response.isValid) \r\n this.setState({ empresa: response.data }, callback );\r\n else\r\n window.location = \"#/\";\r\n });\r\n }\r\n\r\n ObtenerDatosReceptor(){\r\n ToResult.ToResultPost( sat.url_pais, {}, (err, response) => {\r\n if (response.isValid) this.setState({ paises: response.data });\r\n });\r\n ToResult.ToResultPost( sat.url_estados, {}, (err, response) => {\r\n if (response.isValid) this.setState({ estados: response.data });\r\n });\r\n ToResult.ToResultPost( sat.url_usocfdi, {}, (err, response) => {\r\n if (response.isValid) this.setState({ usoscfdi: response.data });\r\n });\r\n }\r\n\r\n onClickSiguiente(e){\r\n e.preventDefault();\r\n }\r\n\r\n updateForm( { target } ){\r\n const { name, value, checked } = target;\r\n let { form } = this.state;\r\n if(target.type === \"checkbox\"){\r\n form = {\r\n ...form,\r\n [name]: checked \r\n };\r\n } else {\r\n form = {\r\n ...form,\r\n [name]: value\r\n };\r\n }\r\n this.setState({\r\n form,\r\n modifico: true\r\n });\r\n }\r\n\r\n onSubmitForm(e){\r\n e.preventDefault();\r\n const { \r\n empresa, \r\n form, \r\n receptor,\r\n estados,\r\n paises,\r\n usoscfdi\r\n } = this.state;\r\n const params = {\r\n _GrupoID: empresa._GrupoID,\r\n _Receptor: {\r\n ...receptor,\r\n _Nombre: form._Nombre,\r\n _DatosFiscales: {\r\n ...receptor._DatosFiscales,\r\n _RFC: form._RFC.trim(),\r\n _Tipo: ObtenerTipoPersona( form._RFC )\r\n },\r\n _DomicilioFiscal: {\r\n ...receptor._DomicilioFiscal,\r\n _Calle: form._Calle,\r\n _Colonia: form._Colonia,\r\n _Exterior: form._Exterior,\r\n _Interior: form._Interior,\r\n _Localidad: form._Localidad,\r\n _Municipio: form._Municipio,\r\n _Estado: estados.filter( estado => estado.c_Estado === form._Estado )[0] || {},\r\n _Pais: paises.filter( estado => estado.c_Pais === form._Pais )[0] || {},\r\n _CP:{ c_CodigoPostal: form._CP }\r\n },\r\n _Contactos: [{\r\n _Nombre : \"Contacto Personal\",\r\n _Correo : form._Correo,\r\n _Telefono : \"\",\r\n _Celular : \"\",\r\n _Enviar : true,\r\n _Guardar : true\r\n }\r\n ]\r\n }\r\n };\r\n ToResult.ToResultPost( receptores.url_crear, params , (err, response) => {\r\n if(response.isValid) {\r\n localStorage.set('paso_anterior', Pasos.Receptor );\r\n localStorage.set('receptor',response.data); \r\n localStorage.set('uso_cfdi',usoscfdi.filter( usocfdi => usocfdi.c_UsoCFDI === form._UsoCFDI )[0] || {}); \r\n window.location = `#/${this.state.empresa._Configuracion._DatosVenta._ShortName}/comprobante`;\r\n } else{\r\n ShowMessage(response);\r\n }\r\n\r\n });\r\n }\r\n\r\n onClickAtras(e){\r\n e.preventDefault();\r\n window.location = `#/${this.state.empresa._Configuracion._DatosVenta._ShortName}`;\r\n }\r\n\r\n render(){\r\n const { form, empresa, paises, estados, usoscfdi } = this.state;\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \"\"/\r\n
\r\n
\r\n
Paso 2: Aquí debes colocar tus datos fiscales.
\r\n
\r\n Proporciona tus datos fiscales.
\r\n Para la emisión de la factura de su No. Referencia se contemplan únicamente {empresa._Configuracion._DatosVenta._DiasTramitarFactura} días a partir de la fecha de emisión del Ticket de Compra.\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 Delegación / Municipio\r\n \r\n \r\n Colonia\r\n \r\n
\r\n
\r\n \r\n Calle\r\n \r\n \r\n No exterior\r\n \r\n \r\n No interior\r\n \r\n \r\n Codigo postal\r\n \r\n
\r\n
\r\n \r\n Localidad\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Razon social\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 Busqueda;","import React from 'react';\r\nimport $ from 'jquery';\r\nimport AutoAffix from 'react-overlays/lib/AutoAffix';\r\nimport { localStorage } from '../../../Utils';\r\n\r\nconst LOGO_HAZTUFACTURA = 'assets/images/logo/logo-dark.png';\r\n\r\nclass Layout extends React.Component {\r\n state = {\r\n\r\n }\r\n\r\n GetUrlInicio(){\r\n const empresa = localStorage.get('empresa');\r\n if( empresa && empresa._Configuracion ){\r\n return `#/${empresa._Configuracion._DatosVenta._ShortName}`;\r\n }\r\n return `#/`;\r\n }\r\n\r\n render(){\r\n const empresa = localStorage.get('empresa');\r\n $(document).ready(()=>{\r\n var $bgSection = $(\".bg-section\");\r\n if($bgSection){\r\n $bgSection.each(function() {\r\n var bgSrc = $(this).children(\"img\").attr(\"src\");\r\n var bgUrl = 'url(' + bgSrc + ')';\r\n $(this).parent().css(\"backgroundImage\", bgUrl);\r\n $(this).parent().addClass(\"bg-section\");\r\n $(this).remove();\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 \"bg\"/\r\n
\r\n
\r\n
\r\n { this.props.children }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Layout;","import React from 'react';\r\n\r\nexport default (props) => (\r\n {props.title}: {props.children}
\r\n);","import React from 'react';\r\n\r\nimport {\r\n currency,\r\n} from '../../Models';\r\n\r\nconst INIT_CONCEPTO = {\r\n _Producto: {\r\n\r\n }\r\n}\r\n\r\nexport default ({ concepto = { ...INIT_CONCEPTO } , onCheck = () => {} }) => (\r\n \r\n {/* */}\r\n {concepto._Cantidad}\r\n {concepto._Producto._Descripcion}\r\n { currency( concepto._Importe ) }\r\n \r\n);","import React from 'react';\r\n\r\nexport default ({loading, children }) => {\r\n return loading? (\r\n
\r\n

\r\n \r\n

\r\n Loading...\r\n
\r\n ): children;\r\n}","import React from 'react';\r\nimport { Button } from \"react-bootstrap\";\r\n\r\nexport default ( { loading, onChange, ...props } ) => {\r\n return loading? (\r\n \r\n  \r\n Cargando...\r\n \r\n ): (\r\n \r\n { props.children }\r\n \r\n );\r\n}\r\n\r\n\r\n","import React from 'react';\r\nimport { FormGroup, Checkbox } from \"react-bootstrap\";\r\nimport ShowInfo from './ShowInfo';\r\nimport TableItem from './TableItem';\r\nimport { ToResult, localStorage } from '../../../../Utils';\r\nimport { empresas, cfdi, ventas } from '../../Urls';\r\nimport Loading from './Loading';\r\nimport moment from 'moment';\r\nimport { NotificationManager } from 'react-notifications';\r\n\r\nimport {\r\n schemaComprobante, \r\n schemaProducto,\r\n CalcTotales,\r\n CalcTotalConcepto,\r\n currency,\r\n EmisorComprobante,\r\n ReceptorComprobante,\r\n IMG_LOGO,\r\n OcupaTipoCambio,\r\n FormatoDateTime,\r\n DireccionEmisor,\r\n ArmarClienteConReceptor,\r\n ShowMessage,\r\n schemaEmpresa,\r\n OcupaNotaDeCredito,\r\n ObtenerTipoComprobanteNotaDeCredito,\r\n ObtenerTipoRelacionNotadeCredito,\r\n ObtenerUsuarioYGrupo,\r\n schemaReceptor,\r\n TieneMismosConcepto,\r\n MismaEmpresaUrlYGuardada,\r\n ObtenerConceptosSeleccionados,\r\n Pasos\r\n} from '../../Models';\r\n\r\nimport ButtonLoading from './ButtonLoading';\r\n\r\n\r\nconst INIT_FORM = {\r\n _RFC:'',\r\n _Correo:'',\r\n _EmpresaID:'',\r\n _Registrarme: false,\r\n _AceptoTerminos: false\r\n};\r\n\r\n\r\nclass Comprobante extends React.Component {\r\n state = {\r\n loadingData: true,\r\n empresas: [],\r\n empresa:{\r\n ...schemaEmpresa\r\n },\r\n form:{\r\n ...INIT_FORM\r\n },\r\n venta:{},\r\n comprobante: {\r\n ...schemaComprobante,\r\n _Emisor:{\r\n ...schemaComprobante._Emisor,\r\n },\r\n _Receptor:{\r\n ...schemaComprobante._Receptor,\r\n },\r\n _Conceptos: [ ]\r\n },\r\n receptorGenerico: { ...schemaReceptor },\r\n monedas: [],\r\n tiposcomprobantes: [],\r\n tiposrelaciones: [],\r\n metodospago: [],\r\n formaspago: [],\r\n productos: []\r\n };\r\n\r\n componentDidMount(){\r\n const empresa = localStorage.get('empresa');\r\n const venta = localStorage.get('venta');\r\n if(!this.PasoValido()) {\r\n window.location = \"#/\";\r\n return;\r\n }\r\n if( empresa && MismaEmpresaUrlYGuardada(empresa, this.props )){\r\n this.setState({ empresa, venta }, this.ObtenerReceptorDelEmisor.bind(this));\r\n } else if(this.TieneEmpresaName()){\r\n this.ObtenerEmpresa(this.ObtenerReceptorDelEmisor.bind(this));\r\n } else {\r\n window.location = \"#/\";\r\n return;\r\n }\r\n this.precargarInformacion();\r\n }\r\n\r\n\r\n PasoValido(){\r\n const paso_anterior = localStorage.get('paso_anterior');\r\n return paso_anterior === Pasos.Receptor; \r\n }\r\n\r\n precargarInformacion(){\r\n const informacion = localStorage.get('informacion');\r\n if(informacion){\r\n this.setState({\r\n form:{\r\n ...INIT_FORM,\r\n ...informacion\r\n }\r\n });\r\n }\r\n }\r\n\r\n ObtenerEmpresa( callback = () => {} ){\r\n const venta = localStorage.get('venta');\r\n ToResult.ToResultPost( empresas.url_obtenerempresaporshortname, {}, (err, response) => {\r\n if (response.isValid) \r\n this.setState({ empresa: response.data, venta }, callback );\r\n else\r\n window.location = \"#/\";\r\n });\r\n }\r\n\r\n ObtenerReceptorDelEmisor(){\r\n const { comprobante, empresa, venta } = this.state;\r\n const usocfdi = localStorage.get('uso_cfdi');\r\n const receptor = localStorage.get('receptor');\r\n const params = {\r\n _GrupoID: venta._GrupoID,\r\n _UserID: venta._UserID,\r\n _EmisorID: empresa._EmisorID,\r\n _RfcReceptor: venta._Cliente._RFC\r\n };\r\n \r\n ToResult.ToResultPost( cfdi.url_datoscfdi, params, (err, response) => {\r\n if (ShowMessage(response)) {\r\n const {\r\n _RegimenesCFDI,\r\n _EmisorCFDI,\r\n _ProductosCFDI,\r\n _TiposComprobantesCFDI,\r\n _MonedasCFDI,\r\n _FormasPagoCFDI,\r\n _MetodosPagoCFDI,\r\n _TiposRelacionesCFDI,\r\n _UsosCFDI\r\n } = response.data;\r\n const _SucursalID = empresa._Sucursales.filter(suc => suc._SucursalID === venta._Empresa._Sucursal._SucursalID )[0]._SucursalEmisorID; \r\n const _Emisor = EmisorComprobante( _EmisorCFDI, _SucursalID , _RegimenesCFDI );\r\n const _Receptor = ReceptorComprobante( receptor, _UsosCFDI );\r\n this.setState({ receptorGenerico: _Receptor });\r\n let _FormaPago = {};\r\n let _CantidadMayor = 0;\r\n venta._FormasPago.forEach(fp => {\r\n if (fp._Cantidad > _CantidadMayor) {\r\n _CantidadMayor = fp._Cantidad;\r\n _FormaPago = fp._FormaPago;\r\n }\r\n });\r\n const _Comprobante = {\r\n ...comprobante,\r\n _Fecha: moment(venta._FechaEmision).format( FormatoDateTime ),\r\n _FormaPago,\r\n _TipoComprobante: _TiposComprobantesCFDI.filter(tipo => tipo._TipoComprobanteID === comprobante._TipoComprobante._TipoComprobanteID )[0] || {},\r\n _MetodoPago: _MetodosPagoCFDI.filter(metodo => metodo.c_MetodoPago === comprobante._MetodoPago.c_MetodoPago )[0] || {},\r\n _Moneda: _MonedasCFDI.filter(metodo => metodo.c_Moneda === comprobante._Moneda.c_Moneda )[0] || {},\r\n _Emisor,\r\n _Receptor: {\r\n ...comprobante._Receptor,\r\n ..._Receptor,\r\n _UsoCFDI: {\r\n ...comprobante._Receptor._UsoCFDI,\r\n ...usocfdi\r\n }\r\n },\r\n _Conceptos: \r\n venta._Conceptos.map(( _Concepto ) => {\r\n let producto = _ProductosCFDI.filter((_Producto) => _Concepto._Producto._NoIdentificacion === _Producto._NoIdentificacion )[0];\r\n let _ProdServ = {};\r\n if(!producto){\r\n _ProdServ = {\r\n c_ClaveProdServ: empresa._Configuracion._DatosVenta._ClaveProdServConsumo,\r\n };\r\n }else{\r\n _ProdServ = producto._ProdServ;\r\n }\r\n producto = {\r\n ...schemaProducto,\r\n ..._Concepto._Producto,\r\n _ProductoID: \"\",\r\n ...producto,\r\n _ProdServ,\r\n _ValorUnitario: _Concepto._Producto._ValorUnitario\r\n };\r\n return {\r\n ..._Concepto,\r\n _Producto: producto,\r\n _Traslados: {},\r\n _Retenciones: {},\r\n isSelected: true\r\n };\r\n }),\r\n };\r\n _Comprobante._Conceptos.forEach( ( _Concepto ) => {\r\n _Concepto._Importe = CalcTotalConcepto( _Concepto );\r\n });\r\n\r\n this.setState({ \r\n loadingData: false, \r\n comprobante: {\r\n ..._Comprobante,\r\n ...CalcTotales(ObtenerConceptosSeleccionados(_Comprobante)),\r\n _AllSelected: true\r\n },\r\n monedas: _MonedasCFDI,\r\n tiposcomprobantes: _TiposComprobantesCFDI,\r\n tiposrelaciones: _TiposRelacionesCFDI,\r\n metodospago: _MetodosPagoCFDI,\r\n formaspago: _FormasPagoCFDI,\r\n productos: _ProductosCFDI\r\n });\r\n }\r\n });\r\n } \r\n\r\n TieneEmpresaName() {\r\n return !!this.props.match.params.empresaName;\r\n }\r\n\r\n ObtenerShortNameEmpresa(){\r\n return this.props.match.params.empresaName;\r\n }\r\n\r\n MismaEmpresaUrlYGuardada(empresa){\r\n return empresa._Configuracion._DatosVenta._ShortName === this.props.match.params.empresaName; \r\n }\r\n\r\n UsaFacturaPorConsumo(empresa){\r\n return empresa._Configuracion._DatosVenta._UsaFacturacionPorConsumo; \r\n }\r\n\r\n onClickSiguiente(e){\r\n e.preventDefault();\r\n }\r\n\r\n updateForm( { target } ){\r\n const { name, value, checked } = target;\r\n let { form } = this.state;\r\n if(target.type === \"checkbox\"){\r\n form = {\r\n ...form,\r\n [name]: checked \r\n };\r\n } else {\r\n form = {\r\n ...form,\r\n [name]: value\r\n };\r\n }\r\n this.setState({\r\n form\r\n });\r\n }\r\n\r\n onSubmitForm(e){\r\n e.preventDefault();\r\n this.onClickTimbrarVenta();\r\n }\r\n\r\n ObtenerComprobanteRelacionado( venta , callback = () => {} ) {\r\n ToResult.ToResultPost( cfdi.url_obtenercfdirelacionados, {\r\n _ComprobantesIds: [ venta._ComprobanteID ]\r\n }, (err, response) => {\r\n if (ShowMessage(response)) {\r\n callback(response.data._Comprobantes);\r\n }\r\n });\r\n }\r\n\r\n ObtenerComprobanteNotaDeCreditoDelComprobanteTimbrado(comprobante, callback = () => {}){\r\n const { receptorGenerico, venta, tiposcomprobantes, tiposrelaciones } = this.state;\r\n if(!OcupaNotaDeCredito( venta )){\r\n callback();\r\n\t\t\treturn;\r\n }\r\n\t\r\n const { \r\n\t\t\t_Complementos, \r\n\t\t\t_Conceptos, \r\n\t\t\t_Descuento, \r\n\t\t\t_Emisor, \r\n\t\t\t_FormaPago, \r\n\t\t\t_Impuesto, \r\n\t\t\t_MetodoPago, \r\n\t\t\t_Moneda, \r\n\t\t\t_Subtotal, \r\n\t\t\t_TipoCambio,\r\n\t\t\t_Fecha\r\n } = comprobante;\r\n\r\n let _Comprobante = {\r\n ...ObtenerUsuarioYGrupo( venta ),\r\n _TipoComprobante: { \r\n ...ObtenerTipoComprobanteNotaDeCredito( tiposcomprobantes ) \r\n },\r\n _Serie: _Emisor._Sucursal._Serie,\r\n _Folio: _Emisor._Sucursal._Folio,\r\n _Complementos,\r\n _Emisor, \r\n _Receptor: {\r\n ...schemaReceptor,\r\n ...receptorGenerico\r\n }, \r\n _FormaPago, \r\n _MetodoPago, \r\n _Moneda, \r\n _TipoCambio: _TipoCambio || 0,\r\n _Descuento, \r\n _Impuesto, \r\n _Subtotal\r\n };\r\n\r\n\t\tthis.ObtenerComprobanteRelacionado(venta, ( _CfdiRelacionados ) => {\r\n _Comprobante = {\r\n ..._Comprobante,\r\n _CfdiRelacionados: {\r\n _TipoRelacion: { ...ObtenerTipoRelacionNotadeCredito( tiposrelaciones ) },\r\n _Comprobantes: _CfdiRelacionados\r\n },\r\n };\r\n\t\t\tthis.ObtenerConceptoNotaDeCredito( _Comprobante, ObtenerConceptosSeleccionados({ _Conceptos })._Conceptos , ( _NuevaNotaDeCredito ) => {\r\n\t\t\t\tconst params = {\r\n ..._NuevaNotaDeCredito,\r\n ...CalcTotales(_NuevaNotaDeCredito),\r\n\t\t\t\t\t_Fecha: moment( _Fecha, FormatoDateTime ).format( FormatoDateTime )\r\n };\r\n ToResult.ToResultPost( cfdi.url_timbrar, params, ( err, response ) => {\r\n // if (ShowMessage(response)) {\r\n if(response.isValid) {\r\n callback();\r\n }\r\n\t\t\t\t});\r\n\t\t\t}) \r\n\t\t});\r\n }\r\n \r\n ObtenerConceptoConsumo(_ComprobantePorConsumo, _ConceptosComprobante , callback = () => {} ) {\r\n const { empresa } = this.state; \r\n ToResult.ToResultPost( cfdi.url_obtenerconceptoconsumo, {\r\n _EmisorID: _ComprobantePorConsumo._Emisor._EmisorID,\r\n _GrupoID: _ComprobantePorConsumo._Emisor._GrupoID,\r\n _ClaveProdServ: empresa._Configuracion._DatosVenta._ClaveProdServConsumo \r\n }, ( err, response ) => {\r\n if (ShowMessage(response)) {\r\n _ComprobantePorConsumo._Conceptos = []; \r\n const _Concepto = { \r\n _Producto: { \r\n ...schemaProducto,\r\n ...response.data \r\n },\r\n _Cantidad: 1\r\n };\r\n _ConceptosComprobante.forEach(( _ConceptoComprobante ) => {\r\n let _EstaConcepto = false;\r\n _ComprobantePorConsumo._Conceptos.forEach(( _ConceptoNdC ) => {\r\n if( TieneMismosConcepto ( _ConceptoComprobante._Producto, _ConceptoNdC._Producto ) ){\r\n _ConceptoNdC._Producto._ValorUnitario += _ConceptoComprobante._Producto._ValorUnitario * _ConceptoComprobante._Cantidad; \r\n _EstaConcepto = true;\r\n }\r\n });\r\n if(!_EstaConcepto){\r\n _ComprobantePorConsumo._Conceptos.push({\r\n ..._Concepto,\r\n _Producto: {\r\n ..._Concepto._Producto,\r\n _ValorUnitario: _ConceptoComprobante._Producto._ValorUnitario * _ConceptoComprobante._Cantidad,\r\n _TieneImpuestos: _ConceptoComprobante._Producto._TieneImpuestos,\r\n _Impuestos: _ConceptoComprobante._Producto._Impuestos\r\n },\r\n _Cantidad: 1,\r\n });\r\n }\r\n });\r\n callback(_ComprobantePorConsumo);\r\n }\r\n });\r\n }\r\n\r\n\r\n ObtenerConceptoNotaDeCredito( _NotadeCredito, _ConceptosComprobante, callback = () => {} ){\r\n ToResult.ToResultPost( cfdi.url_obtenerconceptonotadecredito, {\r\n _EmisorID: _NotadeCredito._Emisor._EmisorID,\r\n\t\t\t_GrupoID: _NotadeCredito._Emisor._GrupoID\r\n }, (err, response) => {\r\n if (ShowMessage(response)) {\r\n _NotadeCredito._Conceptos = []; \r\n const _Concepto = { \r\n _Producto: { \r\n ...schemaProducto,\r\n ...response.data \r\n },\r\n _Cantidad: 1,\r\n _Importe: 0\r\n };\r\n _ConceptosComprobante.forEach(( _ConceptoComprobante ) => {\r\n let _EstaConcepto = false;\r\n _NotadeCredito._Conceptos.forEach(( _ConceptoNdC ) => {\r\n if( TieneMismosConcepto ( _ConceptoComprobante._Producto, _ConceptoNdC._Producto ) ){\r\n _ConceptoNdC._Producto._ValorUnitario += _ConceptoComprobante._Producto._ValorUnitario * _ConceptoComprobante._Cantidad; \r\n _EstaConcepto = true;\r\n _Concepto._Importe = CalcTotalConcepto( _Concepto );\r\n }\r\n });\r\n if(!_EstaConcepto){\r\n _NotadeCredito._Conceptos.push({\r\n ..._Concepto,\r\n _Producto: {\r\n ..._Concepto._Producto,\r\n _ValorUnitario: _ConceptoComprobante._Producto._ValorUnitario * _ConceptoComprobante._Cantidad,\r\n _TieneImpuestos: _ConceptoComprobante._Producto._TieneImpuestos,\r\n _Impuestos: _ConceptoComprobante._Producto._Impuestos\r\n },\r\n _Cantidad: 1,\r\n _Importe: CalcTotalConcepto( _Concepto )\r\n });\r\n }\r\n });\r\n callback(_NotadeCredito);\r\n }\r\n });\r\n\t\t\r\n\t}\r\n\r\n onClickTimbrarVenta(){\r\n const { comprobante, empresa, venta, form } = this.state;\r\n let params = {\r\n _GrupoID: venta._GrupoID,\r\n _UserID: venta._UserID,\r\n _UserName: venta._UserName,\r\n _EmisorID: empresa._EmisorID,\r\n _Observaciones: form._Observaciones\r\n };\r\n\r\n\t\tconst { \r\n\t\t\t_CfdiRelacionados, \r\n\t\t\t_Complementos, \r\n\t\t\t_Conceptos, \r\n\t\t\t_Descuento, \r\n\t\t\t_Emisor, \r\n\t\t\t_Folio, \r\n\t\t\t_FormaPago, \r\n\t\t\t_Importe, \r\n\t\t\t_Impuesto, \r\n\t\t\t_MetodoPago, \r\n\t\t\t_Moneda, \r\n\t\t\t_Receptor, \r\n\t\t\t_Serie, \r\n\t\t\t_Subtotal, \r\n\t\t\t_TipoComprobante,\r\n\t\t\t_TipoCambio,\r\n\t\t\t_Fecha\r\n } = comprobante;\r\n params = { \r\n\t\t\t...params, \r\n\t\t\t_CfdiRelacionados,\r\n\t\t\t_Complementos,\r\n\t\t\t_Conceptos,\r\n\t\t\t_Descuento,\r\n\t\t\t_Emisor,\r\n\t\t\t_Folio,\r\n\t\t\t_FormaPago,\r\n\t\t\t_Importe,\r\n\t\t\t_Impuesto,\r\n\t\t\t_MetodoPago,\r\n\t\t\t_Moneda,\r\n\t\t\t_Receptor,\r\n\t\t\t_Serie,\r\n\t\t\t_Subtotal,\r\n\t\t\t_TipoCambio,\r\n\t\t\t_TipoComprobante,\r\n\t\t\t_Fecha: moment( _Fecha, FormatoDateTime ).format( FormatoDateTime )\r\n };\r\n if(_Conceptos.filter( concepto => concepto.isSelected ).length === 0){\r\n NotificationManager.warning(\"No se a seleccionado ningun concepto para facturar\", \"Advertencia\");\r\n return;\r\n }\r\n this.setState({ loadingFacturar: true });\r\n this.ObtenerComprobanteNotaDeCreditoDelComprobanteTimbrado( comprobante, this.TimbrarComprobante.bind(this, params ));\r\n }\r\n\r\n TimbrarComprobante( params ){\r\n const { comprobante, empresa, venta } = this.state;\r\n ToResult.ToResultPost( cfdi.url_timbrar, params, ( err, response ) => {\r\n if (ShowMessage(response)){\r\n const Cliente = ArmarClienteConReceptor(comprobante._Receptor, venta._Vendedor);\r\n const comprobanteTimbrado = response.data; \r\n ToResult.ToResultPost( ventas.url_generartimbre , {\r\n _ComprobanteID: comprobanteTimbrado._ComprobanteID,\r\n _Ventas: [ venta._VentaID ],\r\n _RFC: comprobante._Receptor._DatosFiscales._RFC,\r\n _EmpresaID: venta._Empresa._EmpresaID,\r\n _SucursalEmisorID: comprobante._Emisor._Sucursal._SucursalID,\r\n _EstatusDescripcion: comprobanteTimbrado._Estatus,\r\n _Cliente: Cliente,\r\n _TimbradaPorUsuario: true\r\n }, (err, response) => {\r\n if (response.isValid){\r\n this.setState({ loadingFacturar: false });\r\n localStorage.set('paso_anterior', Pasos.Comprobante );\r\n window.location = `#/${empresa._Configuracion._DatosVenta._ShortName}/visualizador/${comprobanteTimbrado._ComprobanteID}`;\r\n } else {\r\n this.setState({ loadingFacturar: false });\r\n }\r\n }); \r\n } else{\r\n this.setState({ loadingFacturar: false });\r\n }\r\n });\r\n }\r\n \r\n onClickAtras(e){\r\n e.preventDefault();\r\n window.location = `#/${this.state.empresa._Configuracion._DatosVenta._ShortName}/receptor`;\r\n }\r\n\r\n onCheckConcepto( e, index ){\r\n const _Conceptos = this.state.comprobante._Conceptos.map( (_Concepto, ind) => {\r\n if(index === ind)\r\n return {\r\n ..._Concepto,\r\n isSelected: e.target.checked\r\n }\r\n return _Concepto;\r\n });\r\n \r\n this.setState({\r\n comprobante: {\r\n ...this.state.comprobante,\r\n ...CalcTotales(ObtenerConceptosSeleccionados({ _Conceptos })),\r\n _Conceptos,\r\n _AllSelected: _Conceptos.length === ObtenerConceptosSeleccionados({_Conceptos}).length\r\n }});\r\n }\r\n\r\n updateAllSelected( e ){\r\n const _Conceptos = this.state.comprobante._Conceptos.map( (_Concepto, ind) => {\r\n return {\r\n ..._Concepto,\r\n isSelected: e.target.checked\r\n }\r\n });\r\n \r\n this.setState({\r\n comprobante: {\r\n ...this.state.comprobante,\r\n ...CalcTotales(ObtenerConceptosSeleccionados({ _Conceptos })),\r\n _Conceptos,\r\n _AllSelected: e.target.checked\r\n }});\r\n }\r\n\r\n onCheckPorConsumo( e ){\r\n const { comprobante } = this.state;\r\n if( comprobante._Conceptos.filter(c => c.isSelected ).length === 0){\r\n this.setState({\r\n form: {\r\n ...this.state.form,\r\n _ComoConsumo: this.state.form._ComoConsumo === true\r\n }\r\n });\r\n NotificationManager.warning(\"No hay concepto seleccionados para convertirlos a consumo \",\"Advertencia\");\r\n return;\r\n }\r\n this.setState({\r\n form: {\r\n ...this.state.form,\r\n _ComoConsumo: e.target.checked\r\n }\r\n });\r\n \r\n if(e.target.checked){\r\n this.ObtenerConceptoConsumo( comprobante , ObtenerConceptosSeleccionados( comprobante )._Conceptos , ( _ComprobantePorConsumo ) => {\r\n _ComprobantePorConsumo._Conceptos.forEach( ( _Concepto ) => {\r\n _Concepto._Importe = CalcTotalConcepto( _Concepto );\r\n _Concepto.isSelected = true;\r\n });\r\n this.setState({\r\n comprobante: {\r\n ..._ComprobantePorConsumo,\r\n ...CalcTotales( _ComprobantePorConsumo ),\r\n }\r\n });\r\n }) \r\n } else {\r\n const _Conceptos = this.state.venta._Conceptos.map(( _Concepto ) => {\r\n let producto = this.state.productos.filter((_Producto) => _Concepto._Producto._NoIdentificacion === _Producto._NoIdentificacion )[0];\r\n producto = {\r\n ...schemaProducto,\r\n ..._Concepto._Producto,\r\n _ProductoID: \"\",\r\n ...producto,\r\n _ValorUnitario: _Concepto._Producto._ValorUnitario\r\n };\r\n return {\r\n ..._Concepto,\r\n _Producto: producto,\r\n _Traslados: {},\r\n _Retenciones: {},\r\n isSelected: true\r\n };\r\n });\r\n\r\n _Conceptos.forEach( ( _Concepto ) => {\r\n _Concepto._Importe = CalcTotalConcepto( _Concepto );\r\n });\r\n\r\n this.setState({ \r\n comprobante: {\r\n ...comprobante,\r\n _Conceptos,\r\n ...CalcTotales(ObtenerConceptosSeleccionados({ _Conceptos }))\r\n },\r\n });\r\n }\r\n }\r\n \r\n\r\n render(){\r\n const { form, comprobante, empresa, loadingData, loadingFacturar } = this.state;\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \"\"/\r\n
\r\n
\r\n
Paso 3: Verificar datos.
\r\n
\r\n \r\n Si hay un error en tus datos fiscales presiona el botón Anterior y modifica los datos.\r\n
\r\n Si los datos son correctos, haz clic en FACTURAR.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
Comprobante
\r\n {`${comprobante._TipoComprobante._TipoComprobanteID} - ${comprobante._TipoComprobante._Nombre}`}\r\n {`${comprobante._Moneda.c_Moneda} - ${comprobante._Moneda.descripcion}`}\r\n { OcupaTipoCambio(comprobante._Moneda)?\r\n { currency( comprobante._TipoCambio ) }\r\n : false }\r\n {`${comprobante._FormaPago.c_FormaPago} - ${comprobante._FormaPago.descripcion}`}\r\n {`${comprobante._MetodoPago.c_MetodoPago} - ${comprobante._MetodoPago.descripcion}`}\r\n { moment(comprobante._Fecha).format( FormatoDateTime ) }\r\n
\r\n
Emisor
\r\n { comprobante._Emisor._Nombre }\r\n { DireccionEmisor(comprobante._Emisor )}\r\n {comprobante._Emisor._Sucursal._Nombre}\r\n {`${comprobante._Emisor._RegimenFiscal.c_RegimenFiscal} - ${comprobante._Emisor._RegimenFiscal.descripcion}`}\r\n
\r\n
Cliente
\r\n {comprobante._Receptor._Nombre}\r\n {comprobante._Receptor._DatosFiscales._RFC}\r\n {`${comprobante._Receptor._DomicilioFiscal._Pais.c_Pais} - ${comprobante._Receptor._DomicilioFiscal._Pais.descripcion}`}\r\n {`${comprobante._Receptor._DomicilioFiscal._Estado.c_Estado} - ${comprobante._Receptor._DomicilioFiscal._Estado.nombre}`} / {`${comprobante._Receptor._DomicilioFiscal._Municipio}`}\r\n {comprobante._Receptor._DomicilioFiscal._Colonia}\r\n {comprobante._Receptor._DomicilioFiscal._Localidad}\r\n {comprobante._Receptor._DomicilioFiscal._Calle}\r\n {comprobante._Receptor._DomicilioFiscal._Exterior}\r\n {comprobante._Receptor._DomicilioFiscal._Interior}\r\n {`${comprobante._Receptor._UsoCFDI.c_UsoCFDI} - ${comprobante._Receptor._UsoCFDI.descripcion}`}\r\n \r\n {`${ comprobante._Receptor._Contactos.map( contacto => contacto._Correo ).join(\", \") }`}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n { this.UsaFacturaPorConsumo(empresa)?(\r\n \r\n \r\n Facturar como consumo\r\n \r\n \r\n ): false }\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 { comprobante._Conceptos.map( ( concepto, index ) => (\r\n this.onCheckConcepto( e, index ) }\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\n
\r\n \r\n CantidadDescripcion Importe
Subtotal{ currency( comprobante._Subtotal ) }
Impuestos Retenidos{ currency( comprobante._ImpuestosRetenidos) }
Impuestos Trasladados{ currency( comprobante._ImpuestosTrasladados ) }
Descuento{ currency( comprobante._Descuento ) }
Total{ currency( comprobante._Total ) }
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Facturar\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Comprobante;","import React from 'react';\r\nimport { ToResult, localStorage } from '../../../Utils';\r\nimport { cfdi, empresas } from '../Urls';\r\nimport { schemaComprobante, ShowMessage, IMG_LOGO, schemaEmpresa, MismaEmpresaUrlYGuardada, Pasos, ObtenerContactos } from '../Models';\r\nimport ButtonLoading from './Comprobante/ButtonLoading';\r\nimport { NotificationManager } from 'react-notifications';\r\nconst INIT_FORM = {\r\n _RFC:'',\r\n _Correo:'',\r\n _EmpresaID:'',\r\n _Registrarme: false,\r\n _AceptoTerminos: false\r\n};\r\n\r\nclass Visualizador extends React.Component {\r\n state = {\r\n empresas: [],\r\n empresa:{\r\n ...schemaEmpresa\r\n },\r\n form:{\r\n ...INIT_FORM\r\n },\r\n comprobanteId: this.ObtenerComprobanteId(),\r\n rutas: {},\r\n comprobante: {\r\n ...schemaComprobante\r\n }\r\n };\r\n\r\n componentDidMount(){\r\n const empresa = localStorage.get('empresa');\r\n if( empresa && MismaEmpresaUrlYGuardada( empresa, this.props )){\r\n this.setState({ empresa });\r\n } else if(this.TieneEmpresaName()){\r\n this.ObtenerEmpresa();\r\n } else {\r\n window.location = \"#/inicio\";\r\n return;\r\n }\r\n this.ObtenerConfiguracionRutas();\r\n this.ObtenerComprobantePorId();\r\n }\r\n\r\n ObtenerEmpresa( callback = () => {} ){\r\n ToResult.ToResultPost( empresas.url_obtenerempresaporshortname, {}, (err, response) => {\r\n if (response.isValid) \r\n this.setState({ empresa: response.data }, callback );\r\n else\r\n window.location = \"#/\";\r\n });\r\n }\r\n\r\n TieneEmpresaName() {\r\n return !!this.props.match.params.empresaName;\r\n }\r\n\r\n ObtenerShortNameEmpresa(){\r\n return this.props.match.params.empresaName;\r\n }\r\n\r\n ObtenerConfiguracionRutas() {\r\n\t\tToResult.ToResultPost( cfdi.url_configuracion_rutas, { }, ( err, response ) => {\r\n this.setState({ rutas: response.data });\r\n });\r\n }\r\n\r\n ObtenerComprobantePorId() {\r\n\t\tToResult.ToResultPost( cfdi.url_ver, { _ComprobanteID: this.state.comprobanteId }, ( err, response ) => {\r\n if(ShowMessage(response)){\r\n this.setState({ comprobante: response.data });\r\n }\r\n });\r\n\t}\r\n \r\n xml(comprobante){\r\n window.open(`${this.state.rutas._RutaXml}${comprobante.timbrado.uuid}?Nombre=${comprobante._Serie}-${comprobante._Folio}`);\r\n\t}\r\n\r\n\t// pdf(comprobante){\r\n\t// \twindow.open(`#/comprobante/${comprobante._ComprobanteID}`);\r\n\t// }\r\n\r\n\tpdf(comprobante){\r\n window.open(`${this.state.rutas._RutaPdf}${comprobante.timbrado.uuid}?Nombre=${comprobante._Serie}-${comprobante._Folio}`);\r\n\t}\r\n\r\n\tzip(comprobante){\r\n window.open(`${this.state.rutas._RutaZip}${comprobante.timbrado.uuid}?Nombre=${comprobante._Serie}-${comprobante._Folio}`);\r\n }\r\n \r\n ObtenerComprobanteId(){\r\n return this.props.match.params.comprobanteId;\r\n }\r\n\r\n onClickSiguiente(e){\r\n e.preventDefault();\r\n }\r\n\r\n updateForm( { target } ){\r\n const { name, value, checked } = target;\r\n let { form } = this.state;\r\n if(target.type === \"checkbox\"){\r\n form = {\r\n ...form,\r\n [name]: checked \r\n };\r\n } else {\r\n form = {\r\n ...form,\r\n [name]: value\r\n };\r\n }\r\n this.setState({\r\n form\r\n });\r\n }\r\n\r\n onSubmitForm(e){\r\n e.preventDefault();\r\n const { form } = this.state;\r\n const params = {\r\n _ComprobanteID: this.state.comprobanteId,\r\n _Contactos: ObtenerContactos( form._Correo )\r\n }\r\n if(params._Contactos.length === 0){\r\n NotificationManager.warning(\"El campo correo esta vacio\",\"Advertencia\");\r\n return;\r\n }\r\n this.setState({ loadingEnviar: true });\r\n ToResult.ToResultPost( cfdi.url_enviar_correo_a, params, ( err, response ) => {\r\n ShowMessage(response)\r\n this.setState({ loadingEnviar: false });\r\n });\r\n \r\n // window.location = \"#receptor\";\r\n }\r\n\r\n \r\n\r\n onClickOtroComprobante(e) {\r\n e.preventDefault();\r\n localStorage.set('paso_anterior', Pasos.Visualizador );\r\n window.location = `#/${this.state.empresa._Configuracion._DatosVenta._ShortName}`;\r\n }\r\n\r\n onClickInicio(e) {\r\n e.preventDefault();\r\n localStorage.set('paso_anterior', Pasos.Visualizador );\r\n window.location = `#/inicio`;\r\n }\r\n\r\n MostrarMensajeDeFacturaCorrectamente(){\r\n const paso = localStorage.set('paso_anterior', Pasos.Comprobante );\r\n return paso === Pasos.Comprobante;\r\n }\r\n render(){\r\n const { form, comprobante, empresa, loadingEnviar } = this.state;\r\n return (\r\n
\r\n
\r\n
\r\n \"\"/\r\n
\r\n
\r\n
Paso 4: Descargar factura.
\r\n { this.MostrarMensajeDeFacturaCorrectamente() ? (\r\n
\r\n Su factura se ha generado correctamente. \r\n y fué enviada automáticamente a su correo electrónico\r\n
\r\n ) : (\r\n
\r\n Su factura se ha generado correctamente anteriormente. \r\n
\r\n ) }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Enviar a otro correo electrónico

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Enviar\r\n \r\n
\r\n
\r\n
\r\n

Descargar archivos

\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 Inicio\r\n
*/}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Visualizador;","import React from 'react';\r\nimport { Route } from 'react-router-dom';\r\nimport Busqueda from '../Components/Busqueda';\r\nimport Receptor from '../Components/Receptor';\r\nimport Layout from '../Components/Layout';\r\nimport Comprobante from '../Components/Comprobante';\r\nimport Visualizador from '../Components/Visualizador';\r\n\r\nconst withBaseLayout = ( WrapperComponent ) => {\r\n\tclass Wrapper extends React.Component {\r\n\t\trender(){\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\treturn Wrapper;\r\n};\r\n\r\nexport default [\r\n\t,\r\n\t,\r\n\t,\r\n\t\r\n];\r\n","import publicRoutes from '../Public/Routes';\r\nimport cfdiRoutes from '../Cfdi/Routes';\r\n\r\nexport default [\r\n\t...publicRoutes,\r\n\t...cfdiRoutes\r\n];","import BaseLayout from './Components/Layouts/BaseLayout';\r\nimport { HashRouter }from 'react-router-dom';\r\nimport React from 'react';\r\nimport routes from './Routes';\r\n\r\nclass Base extends React.Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{ routes }\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default Base;\r\n","import { combineReducers } from 'redux';\r\n// import demoReducers from '../CfdiModule/reducers';\r\n\r\nconst Reducers = combineReducers({\r\n\t// demoReducers\r\n});\r\n\r\nexport default Reducers;\r\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport { createStore, applyMiddleware } from 'redux';\n\nimport Base from './Modules/Base';\nimport Reducers from './Modules/Base/Reducers';\nconst createStoreWithMiddleware = applyMiddleware()(createStore);\n\nReactDOM.render(\n\t\n\t\t\n\t,\n\tdocument.querySelector('#root')\n);\n"],"sourceRoot":""}