-- cambios de seccionesAlmace,Serie,Lote,Caducidad

This commit is contained in:
rrene
2020-05-13 12:52:33 -07:00
192 changed files with 26788 additions and 34102 deletions

1
.gitignore vendored
View File

@@ -272,3 +272,4 @@ __pycache__/
/Default.aspx /Default.aspx
/Default.aspx.cs /Default.aspx.cs
/App_WebReferences/WSRDLC /App_WebReferences/WSRDLC
/wwwSIGGIT.rar

View File

@@ -818,7 +818,7 @@ Partial Class AF_AF
Filename = fileItem.filename Filename = fileItem.filename
Next Next
Dim Archivo As New System.IO.FileInfo(String.Format("{0}AF\Licencias\{1}", AppDomain.CurrentDomain.BaseDirectory, Filename)) Dim Archivo As New System.IO.FileInfo(String.Format("{0}AF\Licencias\{1}", ModExtensiones.DirectorioBaseEmpresas, Filename))
If Archivo.Exists() Then If Archivo.Exists() Then
Archivo.Delete() Archivo.Delete()
End If End If
@@ -1777,7 +1777,7 @@ Partial Class AF_AF
' ' Dim TmpRuta As String = String.Format("{0}ActivosFijos\Resguardos\", UsuarioActual.Empresa.Ruta) ' ' Dim TmpRuta As String = String.Format("{0}ActivosFijos\Resguardos\", UsuarioActual.Empresa.Ruta)
' ' Dim Extension As String = Path.GetExtension(TmpArchivo) ' ' Dim Extension As String = Path.GetExtension(TmpArchivo)
' ' TmpRuta.DirectoryExistsCreate() ' ' TmpRuta.DirectoryExistsCreate()
' ' 'If Not Directory.Exists(Request.PhysicalApplicationPath + "Empresas\" & CveEmpresaActual & "\ActivosFijos\Resguardos\") Then Directory.CreateDirectory(Request.PhysicalApplicationPath + "Empresas\" & CveEmpresaActual & "\ActivosFijos\Resguardos\") ' ' 'If Not Directory.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & CveEmpresaActual & "\ActivosFijos\Resguardos\") Then Directory.CreateDirectory(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & CveEmpresaActual & "\ActivosFijos\Resguardos\")
' ' TmpRuta = String.Format("{0}{1}{2}", TmpRuta, CveActivoFijoResguardo, Extension) ' ' TmpRuta = String.Format("{0}{1}{2}", TmpRuta, CveActivoFijoResguardo, Extension)
' ' File.Move(TmpArchivo, TmpRuta) ' ' File.Move(TmpArchivo, TmpRuta)
' ' Session("FileUpload") = "" ' ' Session("FileUpload") = ""
@@ -1793,13 +1793,13 @@ Partial Class AF_AF
' 'RutaGuardar = String.Format("{0}OI\", UsuarioActual.Empresa.Ruta) ' 'RutaGuardar = String.Format("{0}OI\", UsuarioActual.Empresa.Ruta)
' 'If A2.HRef <> "" Then RutaArchivo = String.Format("{0}{1}", Request.PhysicalApplicationPath, A2.HRef.Substring(1)) ' 'If A2.HRef <> "" Then RutaArchivo = String.Format("{0}{1}", ModExtensiones.DirectorioBaseEmpresas, A2.HRef.Substring(1))
' 'End If ' 'End If
' 'If UsuarioActual.CveRol = 1037 Then ' 'If UsuarioActual.CveRol = 1037 Then
' ' RutaGuardar = String.Format("{0}Empresas\70\OI\", Request.PhysicalApplicationPath) ' ' RutaGuardar = String.Format("{0}Empresas\70\OI\", ModExtensiones.DirectorioBaseEmpresas)
' ' RutaGuardar.DirectoryExistsCreate() ' ' RutaGuardar.DirectoryExistsCreate()
' 'End If ' 'End If
' 'Else ' 'Else
@@ -1929,18 +1929,18 @@ Partial Class AF_AF
#Region "GALERIA DE IMAGENES" #Region "GALERIA DE IMAGENES"
'Protected Sub BtnCargarArchivo_Click(sender As Object, e As System.EventArgs) Handles BtnCargarArchivo.Click 'Protected Sub BtnCargarArchivo_Click(sender As Object, e As System.EventArgs) Handles BtnCargarArchivo.Click
' If Session("FileUpload").ToString <> String.Empty AndAlso File.Exists(Request.PhysicalApplicationPath + "Empresas\" & CveEmpresaActual & "\Temp\" & Session("FileUpload").ToString) Then ' If Session("FileUpload").ToString <> String.Empty AndAlso File.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & CveEmpresaActual & "\Temp\" & Session("FileUpload").ToString) Then
' Dim Extension As String = Path.GetExtension(Request.PhysicalApplicationPath + "Empresas\" & CveEmpresaActual & "\Temp\" & Session("FileUpload").ToString) ' Dim Extension As String = Path.GetExtension(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & CveEmpresaActual & "\Temp\" & Session("FileUpload").ToString)
' If Not Directory.Exists(Request.PhysicalApplicationPath + "Empresas\" & CveEmpresaActual & "\ActivosFijos\Imagenes") Then Directory.CreateDirectory(Request.PhysicalApplicationPath + "Empresas\" & CveEmpresaActual & "\ActivosFijos\Imagenes") ' If Not Directory.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & CveEmpresaActual & "\ActivosFijos\Imagenes") Then Directory.CreateDirectory(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & CveEmpresaActual & "\ActivosFijos\Imagenes")
' File.Move(Request.PhysicalApplicationPath + "Empresas\" & CveEmpresaActual & "\Temp\" & Session("FileUpload").ToString, Request.PhysicalApplicationPath + "Empresas\" & CveEmpresaActual & "\ActivosFijos\" & CveActivoFijo & "_" & ImgConsecutivo & Extension) ' File.Move(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & CveEmpresaActual & "\Temp\" & Session("FileUpload").ToString, ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & CveEmpresaActual & "\ActivosFijos\" & CveActivoFijo & "_" & ImgConsecutivo & Extension)
' Session("FileUpload") = "" ' Session("FileUpload") = ""
' If File.Exists(Request.PhysicalApplicationPath + "Empresas\" & CveEmpresaActual & "\ActivosFijos\Imagenes" & CveActivoFijo & "_" & ImgConsecutivo & Extension) Then ' If File.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & CveEmpresaActual & "\ActivosFijos\Imagenes" & CveActivoFijo & "_" & ImgConsecutivo & Extension) Then
' Dim ObjActivosFijos As New ClsAF ' Dim ObjActivosFijos As New ClsAF
' If ObjActivosFijos.AddActivosFijosImagenes(CveActivoFijo, CveActivoFijo & "_" & ImgConsecutivo & Extension, UsuarioActual.CveUsuario) Then ' If ObjActivosFijos.AddActivosFijosImagenes(CveActivoFijo, CveActivoFijo & "_" & ImgConsecutivo & Extension, UsuarioActual.CveUsuario) Then
' CargarArchivo() ' CargarArchivo()
' Else ' Else
' File.Delete(Request.PhysicalApplicationPath + "Empresas\" & CveEmpresaActual & "\ActivosFijos\Imagenes" & CveActivoFijo & "_" & ImgConsecutivo & Extension) ' File.Delete(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & CveEmpresaActual & "\ActivosFijos\Imagenes" & CveActivoFijo & "_" & ImgConsecutivo & Extension)
' End If ' End If
' ObjActivosFijos.Dispose() ' ObjActivosFijos.Dispose()
@@ -1963,7 +1963,7 @@ Partial Class AF_AF
Dim DirectorioOld As New StringBuilder Dim DirectorioOld As New StringBuilder
Dim DirectorioNew As New StringBuilder Dim DirectorioNew As New StringBuilder
DirectorioOld.AppendFormat("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, FileMove) DirectorioOld.AppendFormat("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, FileMove)
DirectorioNew.AppendFormat("{0}Empresas\{1}\AF\", AppDomain.CurrentDomain.BaseDirectory, CveEmpresaActual) DirectorioNew.AppendFormat("{0}Empresas\{1}\AF\", ModExtensiones.DirectorioBaseEmpresas, CveEmpresaActual)
If Not Directory.Exists(DirectorioNew.ToString) Then If Not Directory.Exists(DirectorioNew.ToString) Then
Directory.CreateDirectory(DirectorioNew.ToString) Directory.CreateDirectory(DirectorioNew.ToString)
End If End If
@@ -1995,7 +1995,7 @@ Partial Class AF_AF
If (CveImagenActivoFijo > 0) Then If (CveImagenActivoFijo > 0) Then
Dim ObjActivoFijo As New ClsAF Dim ObjActivoFijo As New ClsAF
If ObjActivoFijo.RemoveActivosFijosImagenes(CveImagenActivoFijo) Then If ObjActivoFijo.RemoveActivosFijosImagenes(CveImagenActivoFijo) Then
File.Delete(String.Format("{0}Empresas\{1}\{2}", AppDomain.CurrentDomain.BaseDirectory, CveEmpresaActual, ObjActivoFijo.DtResultados.Rows(0)("URL"))) File.Delete(String.Format("{0}Empresas\{1}\{2}", ModExtensiones.DirectorioBaseEmpresas, CveEmpresaActual, ObjActivoFijo.DtResultados.Rows(0)("URL")))
CargarArchivo() CargarArchivo()
RegistraScript("initcarusel();") RegistraScript("initcarusel();")
End If End If
@@ -2407,7 +2407,7 @@ Partial Class AF_AF
Dim filemove As String = "" Dim filemove As String = ""
For Each fileItem As Archivo In filesgral For Each fileItem As Archivo In filesgral
FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", ModExtensiones.DirectorioBaseEmpresas, fileItem.filename)).Replace(".", "")
filemove = fileItem.filename filemove = fileItem.filename
Next Next

View File

@@ -542,8 +542,8 @@ Partial Class AF_ResguardoAF
If EsLiberacion Then If EsLiberacion Then
If objAF.UpdateActivosFijosResguardosURL($"AFR{CveResguardoPadre}.{FileExtension}", "-1", CveResguardoPadre) Then If objAF.UpdateActivosFijosResguardosURL($"AFR{CveResguardoPadre}.{FileExtension}", "-1", CveResguardoPadre) Then
If filemove <> "" Then If filemove <> "" Then
If File.Exists(String.Format("{2}Empresas\{0}\AF\Resguardos\AFR{1}.{3}", UsuarioActual.CveEmpresa, CveResguardoPadre, AppDomain.CurrentDomain.BaseDirectory, FileExtension)) Then If File.Exists(String.Format("{2}Empresas\{0}\AF\Resguardos\AFR{1}.{3}", UsuarioActual.CveEmpresa, CveResguardoPadre, ModExtensiones.DirectorioBaseEmpresas, FileExtension)) Then
File.Delete(String.Format("{2}Empresas\{0}\AF\Resguardos\AFR{1}.{3}", UsuarioActual.CveEmpresa, CveResguardoPadre, AppDomain.CurrentDomain.BaseDirectory, FileExtension)) File.Delete(String.Format("{2}Empresas\{0}\AF\Resguardos\AFR{1}.{3}", UsuarioActual.CveEmpresa, CveResguardoPadre, ModExtensiones.DirectorioBaseEmpresas, FileExtension))
End If End If
If filemove.FilesMove(String.Format("AFR{0}", CveResguardoPadre), String.Format("Empresas\{0}\AF\Resguardos", UsuarioActual.CveEmpresa)) Then If filemove.FilesMove(String.Format("AFR{0}", CveResguardoPadre), String.Format("Empresas\{0}\AF\Resguardos", UsuarioActual.CveEmpresa)) Then
HuboError = False HuboError = False
@@ -558,8 +558,8 @@ Partial Class AF_ResguardoAF
If EsURL2 Then If EsURL2 Then
If objAF.UpdateActivosFijosResguardosURLGpo("-1", $"AFT{CveResguardoPadre}.{FileExtension}", CveResguardoPadre) Then If objAF.UpdateActivosFijosResguardosURLGpo("-1", $"AFT{CveResguardoPadre}.{FileExtension}", CveResguardoPadre) Then
If filemove <> "" Then If filemove <> "" Then
If File.Exists(String.Format("{2}Empresas\{0}\AF\Resguardos\AFR{1}.{3}", UsuarioActual.CveEmpresa, CveResguardoPadre, AppDomain.CurrentDomain.BaseDirectory, FileExtension)) Then If File.Exists(String.Format("{2}Empresas\{0}\AF\Resguardos\AFR{1}.{3}", UsuarioActual.CveEmpresa, CveResguardoPadre, ModExtensiones.DirectorioBaseEmpresas, FileExtension)) Then
File.Delete(String.Format("{2}Empresas\{0}\AF\Resguardos\AFR{1}.{3}", UsuarioActual.CveEmpresa, CveResguardoPadre, AppDomain.CurrentDomain.BaseDirectory, FileExtension)) File.Delete(String.Format("{2}Empresas\{0}\AF\Resguardos\AFR{1}.{3}", UsuarioActual.CveEmpresa, CveResguardoPadre, ModExtensiones.DirectorioBaseEmpresas, FileExtension))
End If End If
If filemove.FilesMove(String.Format("AFT{0}", CveResguardoPadre), String.Format("Empresas\{0}\AF\Resguardos", UsuarioActual.CveEmpresa)) Then If filemove.FilesMove(String.Format("AFT{0}", CveResguardoPadre), String.Format("Empresas\{0}\AF\Resguardos", UsuarioActual.CveEmpresa)) Then
HuboError = False HuboError = False
@@ -575,8 +575,8 @@ Partial Class AF_ResguardoAF
If objAF.UpdateActivosFijosResguardosURLGpo($"AFR{CveResguardoPadre}.{FileExtension}", "-1", CveResguardoPadre) Then If objAF.UpdateActivosFijosResguardosURLGpo($"AFR{CveResguardoPadre}.{FileExtension}", "-1", CveResguardoPadre) Then
If filemove <> "" Then If filemove <> "" Then
If File.Exists(String.Format("{2}Empresas\{0}\AF\Resguardos\AFR{1}.{3}", UsuarioActual.CveEmpresa, CveResguardoPadre, AppDomain.CurrentDomain.BaseDirectory, FileExtension)) Then If File.Exists(String.Format("{2}Empresas\{0}\AF\Resguardos\AFR{1}.{3}", UsuarioActual.CveEmpresa, CveResguardoPadre, ModExtensiones.DirectorioBaseEmpresas, FileExtension)) Then
File.Delete(String.Format("{2}Empresas\{0}\AF\Resguardos\AFR{1}.{3}", UsuarioActual.CveEmpresa, CveResguardoPadre, AppDomain.CurrentDomain.BaseDirectory, FileExtension)) File.Delete(String.Format("{2}Empresas\{0}\AF\Resguardos\AFR{1}.{3}", UsuarioActual.CveEmpresa, CveResguardoPadre, ModExtensiones.DirectorioBaseEmpresas, FileExtension))
End If End If
If filemove.FilesMove(String.Format("AFR{0}", CveResguardoPadre), String.Format("Empresas\{0}\AF\Resguardos", UsuarioActual.CveEmpresa)) Then If filemove.FilesMove(String.Format("AFR{0}", CveResguardoPadre), String.Format("Empresas\{0}\AF\Resguardos", UsuarioActual.CveEmpresa)) Then
HuboError = False HuboError = False

View File

@@ -323,7 +323,7 @@ Partial Class AIMMGM_ConsultaCliente
'Excel.DisplayAlerts = True 'Excel.DisplayAlerts = True
'Dim pdfFileOut As String 'Dim pdfFileOut As String
'Dim xlsxFileOut As String 'Dim xlsxFileOut As String
'Dim Ruta As String = String.Format("{0}\AIMMGM\Gafetes\", AppDomain.CurrentDomain.BaseDirectory) 'Dim Ruta As String = String.Format("{0}\AIMMGM\Gafetes\", ModExtensiones.DirectorioBaseEmpresas)
'If IO.File.Exists(Ruta & "FormatoAIMMGM.xlsx") Then 'If IO.File.Exists(Ruta & "FormatoAIMMGM.xlsx") Then
@@ -648,14 +648,14 @@ Partial Class AIMMGM_ConsultaCliente
End If End If
Dim AIM As New ClsAIMMGM Dim AIM As New ClsAIMMGM
If Not IO.Directory.Exists(String.Format("{0}\Empresas\{1}\Documentos", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa)) Then If Not IO.Directory.Exists(String.Format("{0}\Empresas\{1}\Documentos", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa)) Then
IO.Directory.CreateDirectory(String.Format("{0}\Empresas\{1}\Documentos", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa)) IO.Directory.CreateDirectory(String.Format("{0}\Empresas\{1}\Documentos", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa))
End If End If
Dim Cve As Integer = AIM.AddPago(CveCliente, CveVentaDetalle, TxtImporte.Text.ToDouble, 1, TxtFecha.Text.ToDate, IO.Path.GetExtension(FUComprobante.FileName), TxtObservaciones.Text.Trim, 9999, TxtAprobacion.Text.ToEntero) Dim Cve As Integer = AIM.AddPago(CveCliente, CveVentaDetalle, TxtImporte.Text.ToDouble, 1, TxtFecha.Text.ToDate, IO.Path.GetExtension(FUComprobante.FileName), TxtObservaciones.Text.Trim, 9999, TxtAprobacion.Text.ToEntero)
If Cve > 0 Then If Cve > 0 Then
FUComprobante.SaveAs(String.Format("{0}/Empresas/{1}/Documentos/{2}{3}", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa, Cve, IO.Path.GetExtension(FUComprobante.FileName))) FUComprobante.SaveAs(String.Format("{0}/Empresas/{1}/Documentos/{2}{3}", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, Cve, IO.Path.GetExtension(FUComprobante.FileName)))
Alert("Pago ingresado correctamente", TipoMensaje.MsgInformacion) Alert("Pago ingresado correctamente", TipoMensaje.MsgInformacion)
End If End If
AIM.Dispose() AIM.Dispose()
@@ -669,8 +669,8 @@ Partial Class AIMMGM_ConsultaCliente
Exit Sub Exit Sub
End If End If
'obtengo la clave de la publicidad 'obtengo la clave de la publicidad
If Not IO.Directory.Exists(String.Format("{0}\Empresas\{1}\Documentos", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa)) Then If Not IO.Directory.Exists(String.Format("{0}\Empresas\{1}\Documentos", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa)) Then
IO.Directory.CreateDirectory(String.Format("{0}\Empresas\{1}\Documentos", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa)) IO.Directory.CreateDirectory(String.Format("{0}\Empresas\{1}\Documentos", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa))
End If End If
Dim Logo As String Dim Logo As String
@@ -680,7 +680,7 @@ Partial Class AIMMGM_ConsultaCliente
If AIM.DtResultados.Rows.Count > 0 Then If AIM.DtResultados.Rows.Count > 0 Then
CvePublicidad = AIM.DtResultados.Rows(0)("CvePublicidad").ToString.ToEntero CvePublicidad = AIM.DtResultados.Rows(0)("CvePublicidad").ToString.ToEntero
Logo = String.Format("Logo{0}{1}", CvePublicidad, IO.Path.GetExtension(FULogo.FileName)) Logo = String.Format("Logo{0}{1}", CvePublicidad, IO.Path.GetExtension(FULogo.FileName))
FULogo.SaveAs(String.Format("{0}/Empresas/{1}/Documentos/{2}", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa, Logo)) FULogo.SaveAs(String.Format("{0}/Empresas/{1}/Documentos/{2}", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, Logo))
AIM.UpdateLogo(CvePublicidad, Logo) AIM.UpdateLogo(CvePublicidad, Logo)
ImgLogo.ImageUrl = String.Format("/Empresas/{0}/Documentos/{1}", UsuarioActual.CveEmpresa, Logo) ImgLogo.ImageUrl = String.Format("/Empresas/{0}/Documentos/{1}", UsuarioActual.CveEmpresa, Logo)

View File

@@ -161,7 +161,7 @@ Partial Class AIMMGM_Pagos
Next Next
Next Next
Dim Archivoxlsx As String = String.Format("{0}/Empresas/{1}/Documentos/{2}.xlsx", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa, NombreArchivoXLSX) Dim Archivoxlsx As String = String.Format("{0}/Empresas/{1}/Documentos/{2}.xlsx", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, NombreArchivoXLSX)
Using wb As New XLWorkbook() Using wb As New XLWorkbook()
wb.Worksheets.Add(dtt) wb.Worksheets.Add(dtt)
wb.SaveAs(Archivoxlsx) wb.SaveAs(Archivoxlsx)

View File

@@ -125,7 +125,7 @@ Partial Class AIMMGM_Registro
Private Sub CargaReCompra(ClavePago As String, CveCliente As Integer) Private Sub CargaReCompra(ClavePago As String, CveCliente As Integer)
Dim tmp As New DataTable Dim tmp As New DataTable
Dim Carpeta As String = String.Format("{0}AIMMGM/ePagos", AppDomain.CurrentDomain.BaseDirectory) Dim Carpeta As String = String.Format("{0}AIMMGM/ePagos", ModExtensiones.DirectorioBaseEmpresas)
Dim Archivo As String = String.Format("{0}/{1}.xml", Carpeta, ClavePago) Dim Archivo As String = String.Format("{0}/{1}.xml", Carpeta, ClavePago)
Dim Archivo2 As String = String.Format("{0}/C{1}.xml", Carpeta, ClavePago) Dim Archivo2 As String = String.Format("{0}/C{1}.xml", Carpeta, ClavePago)

View File

@@ -90,7 +90,7 @@ Partial Class AIMMGM_ePagos
Private Sub CargaCompra() Private Sub CargaCompra()
Dim tmp As New DataTable Dim tmp As New DataTable
Dim Carpeta As String = String.Format("{0}AIMMGM/ePagos", AppDomain.CurrentDomain.BaseDirectory) Dim Carpeta As String = String.Format("{0}AIMMGM/ePagos", ModExtensiones.DirectorioBaseEmpresas)
Dim Archivo As String = String.Format("{0}/{1}.xml", Carpeta, ClavePago) Dim Archivo As String = String.Format("{0}/{1}.xml", Carpeta, ClavePago)
Dim Archivo2 As String = String.Format("{0}/C{1}.xml", Carpeta, ClavePago) Dim Archivo2 As String = String.Format("{0}/C{1}.xml", Carpeta, ClavePago)

View File

@@ -33,6 +33,28 @@ Public Class BundleConfig
"~/Scripts/exporting.js" "~/Scripts/exporting.js"
)) ))
bundles.Add(New ScriptBundle("~/Metronic/assets/global/scripts/JSNoCustom").Include(
"~/Metronic/assets/global/plugins/bootstrap/js/bootstrap.min.js",
"~/Metronic/assets/global/plugins/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js",
"~/Metronic/assets/global/plugins/jquery-slimscroll/jquery.slimscroll.min.js",
"~/Metronic/assets/global/plugins/jquery.blockui.min.js",
"~/Metronic/assets/global/plugins/jquery.cokie.min.js",
"~/Metronic/assets/global/plugins/bootstrap-switch/js/bootstrap-switch.min.js",
"~/Metronic/assets/global/plugins/select2/select2.full.min.js",
"~/Metronic/assets/global/plugins/select2/i18n/es.js",
"~/Metronic/assets/global/plugins/bootstrap-confirmation/bootstrap-confirmation.min.js",
"~/Metronic/assets/global/plugins/bootbox/bootbox.min.js",
"~/Metronic/assets/global/plugins/bootstrap-toastr/toastr.min.js",
"~/Metronic/assets/global/scripts/metronic.js",
"~/Metronic/assets/admin/layout/scripts/layout.js",
"~/Metronic/assets/admin/layout/scripts/quick-sidebar.js",
"~/Metronic/assets/admin/layout/scripts/demo.js",
"~/Metronic/assets/admin/pages/scripts/table-advanced.js",
"~/Metronic/assets/admin/pages/scripts/ui-alert-dialog-api.js",
"~/Metronic/assets/global/plugins/icheck/icheck.min.js",
"~/Metronic/assets/global/plugins/dropzone/dropzone.js",
"~/Metronic/assets/layouts/layout3/scripts/jquery.datetimepicker.full.js"
))
bundles.Add(New ScriptBundle("~/Metronic/assets/global/scripts/JS").Include( bundles.Add(New ScriptBundle("~/Metronic/assets/global/scripts/JS").Include(
"~/Metronic/assets/global/plugins/bootstrap/js/bootstrap.min.js", "~/Metronic/assets/global/plugins/bootstrap/js/bootstrap.min.js",
"~/Metronic/assets/global/plugins/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js", "~/Metronic/assets/global/plugins/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js",

View File

@@ -391,7 +391,7 @@ Public Class ClsAcarreos
Dim CveAcarreo As Integer = Data(0)(0).ToString.ToEntero Dim CveAcarreo As Integer = Data(0)(0).ToString.ToEntero
Dim AcarreoFolio As Integer = Data(0)(1).ToString.ToEntero Dim AcarreoFolio As Integer = Data(0)(1).ToString.ToEntero
Dim Raiz As String = String.Format("{0}Empresas\{1}\Acarreos\", HttpContext.Current.Server.MapPath("~/"), CveEmpresa) Dim Raiz As String = String.Format("{0}Empresas\{1}\Acarreos\", ModExtensiones.DirectorioBaseEmpresas, CveEmpresa)
If Not Directory.Exists(Raiz) Then If Not Directory.Exists(Raiz) Then
Directory.CreateDirectory(Raiz) Directory.CreateDirectory(Raiz)

View File

@@ -797,6 +797,21 @@ Public Class ClsAcumuladores
Return Retorno Return Retorno
End Function End Function
Public Function EliminarGarantiasDetalle(CveVenta As Integer) As Boolean
Dim Retorno As Boolean = False
SqlDataAdapter("PA_Acum_GarantiasDetallePolizaRemove")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveVenta", SqlDbType.Int).Value = CveVenta
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As SqlException
OnError("Ocurrió un error a eliminar de garantia.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
End Try
Return Retorno
End Function
#End Region #End Region
@@ -863,6 +878,21 @@ Public Class ClsAcumuladores
End Try End Try
Return Retorno Return Retorno
End Function End Function
Public Function EliminarPolizaVirtual(CveVenta As Integer) As Boolean
Dim Retorno As Boolean = False
SqlDataAdapter("PA_Vta_PolizaVirtualRemove")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveVenta", SqlDbType.Int).Value = CveVenta
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As SqlException
OnError("Ocurrió un al eliminar poliza virtual. ", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
End Try
Return Retorno
End Function
#End Region #End Region
Public Function DistribuidorMovtosAdd(CveCliente As Integer, Cantidad As Integer, CveTamaño As Integer, CveConcepto As Integer, CveVenta As Integer, CveUsuario As Integer, Public Function DistribuidorMovtosAdd(CveCliente As Integer, Cantidad As Integer, CveTamaño As Integer, CveConcepto As Integer, CveVenta As Integer, CveUsuario As Integer,

View File

@@ -614,7 +614,7 @@ Public Class ClsDG
strLineaTMP = String.Format("{0} {1}:{2} {3} {0}", Chr(13), DateTime.Now.ToShortDateString, DateTime.Now.ToShortTimeString, pTexto) strLineaTMP = String.Format("{0} {1}:{2} {3} {0}", Chr(13), DateTime.Now.ToShortDateString, DateTime.Now.ToShortTimeString, pTexto)
Try Try
ArchivoW = New StreamWriter(String.Format("{0}\LogDG.txt", AppDomain.CurrentDomain.BaseDirectory), True, System.Text.Encoding.UTF8) ArchivoW = New StreamWriter(String.Format("{0}\LogDG.txt", AppDomain.CurrentDomain), True, System.Text.Encoding.UTF8)
Catch ex As Exception Catch ex As Exception
Exit Sub Exit Sub
End Try End Try

View File

@@ -1232,7 +1232,14 @@ Public Class ClsInventarios
Return Retorno Return Retorno
End Function End Function
''' <summary>
''' Obtiene los valores para asignar a los movimientos virtuales
''' </summary>
''' <param name="CveMovimiento">Debe ser un movimiento de Salida o Entrada de almacen (2,3,18)</param>
''' <param name="CveEmpresa"></param>
''' <param name="CveCompra"></param>
''' <param name="CveMovimientoRelacionado">Cuando sea cancelacion/devolucion hay que mandar este dato que seria la salida de almacen</param>
''' <returns></returns>
Public Function GetMovimientosDetalleVirtual(CveMovimiento As Integer, CveEmpresa As Integer, Optional CveCompra As Integer = -1, Optional CveMovimientoRelacionado As Integer = -1) As Boolean Public Function GetMovimientosDetalleVirtual(CveMovimiento As Integer, CveEmpresa As Integer, Optional CveCompra As Integer = -1, Optional CveMovimientoRelacionado As Integer = -1) As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False
DataAdapter("PA_Inv_MovimientosDetalleVirtualGet") DataAdapter("PA_Inv_MovimientosDetalleVirtualGet")

View File

@@ -15,6 +15,7 @@ Public Enum OITipoEventos
ISO = 8 ISO = 8
Soporte = 9 Soporte = 9
Gastos_Mes = 10 Gastos_Mes = 10
Convocatorias = 11
End Enum End Enum
Public Class ObjEventosCorreo Public Class ObjEventosCorreo
@@ -218,9 +219,220 @@ Public Class ClsOIEventos
Public Property objCorreo As ObjEventosCorreo Public Property objCorreo As ObjEventosCorreo
#End Region #End Region
#Region "Trello"
Public Function GetTablero(cveTablero As Int32, cveUsuario As Int32, cveEmpresa As Int32) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_GetTablero", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveTablero", SqlDbType.Int).Value = (cveTablero)
.Add("@CveUsuario", SqlDbType.Int).Value = (cveUsuario)
.Add("@CveEmpresa", SqlDbType.Int).Value = (cveEmpresa)
End With
Try
SqlAdapter.Fill(Data)
retorno = True
Catch ex As Exception
OnError("Ocurrió un error al obtener el Tablero.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function AddTablero(tablero As String, cveUsuario As Int32, cveUsuarioIng As Int32, cveEmpresa As Int32) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_AddTablero", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@Tablero", SqlDbType.VarChar).Value = (tablero)
.Add("@CveUsuario", SqlDbType.Int).Value = (cveUsuario)
.Add("@CveUsuarioIng", SqlDbType.Int).Value = (cveUsuarioIng)
.Add("@CveEmpresa", SqlDbType.Int).Value = (cveEmpresa)
End With
Try
SqlAdapter.Fill(Data)
retorno = True
Catch ex As Exception
OnError("Ocurrió un error al agregar el Tablero.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function UpTablero(cveTablero As Int32, tablero As String, cveUsuario As Int32, cveEmpresa As Int32) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_UpTablero", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveTablero", SqlDbType.Int).Value = (cveTablero)
.Add("@Tablero", SqlDbType.VarChar).Value = (tablero)
.Add("@CveUsuario", SqlDbType.Int).Value = (cveUsuario)
.Add("@CveEmpresa", SqlDbType.Int).Value = (cveEmpresa)
End With
Try
SqlAdapter.Fill(Data)
retorno = True
Catch ex As Exception
OnError("Ocurrió un error al actualizar el Tablero.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function RemoveTablero(cveTablero As Int32, cveUsuario As Int32, cveEmpresa As Int32) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_RemoveTablero", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveTablero", SqlDbType.Int).Value = (cveTablero)
.Add("@CveUsuario", SqlDbType.Int).Value = (cveUsuario)
.Add("@CveEmpresa", SqlDbType.Int).Value = (cveEmpresa)
End With
Try
SqlAdapter.Fill(Data)
retorno = True
Catch ex As Exception
OnError("Ocurrió un error al eliminar el Tablero.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function UpEventoLista(cveTableroLista As Int32, CveEvento As Integer) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_EventoLista", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveTableroLista", SqlDbType.Int).Value = (cveTableroLista)
.Add("@CveEvento", SqlDbType.Int).Value = (CveEvento)
End With
Try
SqlAdapter.Fill(Data)
retorno = True
Catch ex As Exception
OnError("Ocurrió un error al obtener la Lista.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function GetTableroListaTrello(cveTablero As Int32) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_GetTableroListaTrello", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveTablero", SqlDbType.Int).Value = (cveTablero)
End With
Try
SqlAdapter.Fill(Data)
retorno = True
Catch ex As Exception
OnError("Ocurrió un error al obtener la Lista.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function GetTableroLista(cveTableroLista As Int32, cveTablero As Int32) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_GetTableroLista", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveTableroLista", SqlDbType.Int).Value = (cveTableroLista)
.Add("@CveTablero", SqlDbType.Int).Value = (cveTablero)
End With
Try
SqlAdapter.Fill(Data)
retorno = True
Catch ex As Exception
OnError("Ocurrió un error al obtener la Lista.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function AddTableroLista(cveTablero As Int32, lista As String, cveUsuarioIng As Int32) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_AddTableroLista", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveTablero", SqlDbType.Int).Value = cveTablero
.Add("@Lista", SqlDbType.VarChar).Value = (lista)
.Add("@CveUsuarioIng", SqlDbType.Int).Value = (cveUsuarioIng)
End With
Try
SqlAdapter.Fill(Data)
retorno = True
Catch ex As Exception
OnError("Ocurrió un error al agregar la Lista.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function UpTableroLista(cveTableroLista As Int32, lista As String) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_UpTableroLista", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveTableroLista", SqlDbType.Int).Value = (cveTableroLista)
.Add("@Lista", SqlDbType.VarChar).Value = (lista)
End With
Try
SqlAdapter.Fill(Data)
retorno = True
Catch ex As Exception
OnError("Ocurrió un error al actualizar el Tablero.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function RemoveTableroLista(cveTableroLista As Int32) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_RemoveTableroLista", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveTableroLista", SqlDbType.Int).Value = (cveTableroLista)
End With
Try
SqlAdapter.Fill(Data)
retorno = True
Catch ex As Exception
OnError("Ocurrió un error al eliminar la Lista.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
#End Region
#Region "oieventos2.0" #Region "oieventos2.0"
Public Function UpEventosVinculos(cveEvento As Int32, cveActivoFijo As Int32, cveIE As Int32, cveProspecto As Int32, cveCliente As Int32, cveOS As Int32, cveOC As Int32, cvePersonal As Int32,
cveProveedor As Int32, cveCompra As Int32, cveVenta As Int32, cveContrato As Int32, cveSubProyecto As Int32, cveMovimientoAlmacen As Int32,
cveEmpresaCRM As Int32) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_EventosVinculosUp", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveEvento", SqlDbType.Int).Value = (cveEvento)
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
.Add("@CveActivoFijo", SqlDbType.Int).Value = (cveActivoFijo)
.Add("@CveIE", SqlDbType.Int).Value = (cveIE)
.Add("@CveProspecto", SqlDbType.Int).Value = (cveProspecto)
.Add("@CveCliente", SqlDbType.Int).Value = (cveCliente)
.Add("@CveOS", SqlDbType.Int).Value = (cveOS)
.Add("@CveOC", SqlDbType.Int).Value = (cveOC)
.Add("@CvePersonal", SqlDbType.Int).Value = (cvePersonal)
.Add("@CveProveedor", SqlDbType.Int).Value = (cveProveedor)
.Add("@CveCompra", SqlDbType.Int).Value = (cveCompra)
.Add("@CveVenta", SqlDbType.Int).Value = (cveVenta)
.Add("@CveContrato", SqlDbType.Int).Value = (cveContrato)
.Add("@CveSubProyecto", SqlDbType.Int).Value = (cveSubProyecto)
.Add("@CveMovimientoAlmacen", SqlDbType.Int).Value = (cveMovimientoAlmacen)
.Add("@CveEmpresaCRM", SqlDbType.Int).Value = (cveEmpresaCRM)
End With
Try
SqlAdapter.Fill(Data)
retorno = True
Catch ex As Exception
OnError("Ocurrió un error al actualizar el Evento .", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function RemoveEvento2(cveEvento As Integer, CveEmpresa As Integer, cveUsuario As Integer) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_OI_EventosRemove2", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveEvento", SqlDbType.Int).Value = cveEvento
.Add("@cveUsuario", SqlDbType.Int).Value = cveUsuario
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With
Try
SqlAdapter.Fill(Data)
retorno = True
Catch ex As Exception
OnError("Ocurrió un error al eliminar el Evento .", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function GetEventosUsuario2(CveEvento As Integer, CveEmpresa As Integer) As Boolean Public Function GetEventosUsuario2(CveEvento As Integer, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False
DataAdapter("PA_OI_EventosUsuarios2Get") DataAdapter("PA_OI_EventosUsuarios2Get")
@@ -238,13 +450,32 @@ Public Class ClsOIEventos
Return Retorno Return Retorno
End Function End Function
Public Function UpUsuarioseventosVisto(CveEvento As Integer, CveUsuario As Integer) As Boolean Public Function GetEventosVinculos(CveEvento As Integer, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False
DataAdapter("UPDATE OI_EventosUsuarios SET Visto=1 WHERE CveEvento =@CveEvento AND CveUsuario=@CveUsuario", CommandType.Text) DataAdapter("PA_OI_EventosVinculosGet")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveEvento", SqlDbType.Int).Value = CveEvento
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As Exception
OnError("Ocurrió un error al obtener el Catálogo de Evento Usuario.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return Retorno
End Function
Public Function UpUsuarioseventosVisto(CveEvento As Integer, CveUsuario As Integer, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False
'DataAdapter("UPDATE OI_EventosUsuarios SET Visto=1 WHERE CveEvento =@CveEvento AND CveUsuario=@CveUsuario;IF @@ROWCOUNT >0 BEGIN INSERT INTO OI_EventosComentarios (CveEvento, EventoComentario, CveUsuario) VALUES ( @CveEvento, CONCAT('El Usuario ""',(SELECT Nombre FROM Usuarios WHERE CveUsuario=@CveUsuario),'"" a visto la tarea'), @CveUsuario); END", CommandType.Text)
DataAdapter("PA_OI_EventosUpVisto")
With SqlAdapter.SelectCommand.Parameters With SqlAdapter.SelectCommand.Parameters
.Add("@CveEvento", SqlDbType.Int).Value = CveEvento .Add("@CveEvento", SqlDbType.Int).Value = CveEvento
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With End With
Try Try
SqlAdapter.Fill(Data) SqlAdapter.Fill(Data)
@@ -286,17 +517,21 @@ Public Class ClsOIEventos
Return retorno Return retorno
End Function End Function
Public Function AddEventoMinuta2(Asunto As String, Descripcion As String, Acuerdos As String, CveUsuarioDe As Integer, CveUsuarioPara As Integer, FechaInicio As DateTime, Archivo As String, Lmiembros As List(Of Integer), chkList As List(Of String), CveUsuarioIng As Integer, CveEmpresa As Integer) As Boolean Public Function AddEventoMinuta2(Asunto As String, Descripcion As String, Acuerdos As String, CveUsuarioDe As Integer, CveUsuarioPara As Integer, FechaInicio As DateTime, Archivo As String, Lmiembros As List(Of Integer), chkList As List(Of String), CveUsuarioIng As Integer, CveEmpresa As Integer, CorreoExterno As String) As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False
Retorno = AddOI_Eventos2(OITipoEventos.Minuta, Asunto, Descripcion, 3, -1, -1, String.Format("{0:yyyy/MM/dd HH:mm}", FechaInicio), "1900/01/01 00:00", -1, Archivo, Lmiembros, chkList, CveUsuarioIng, CveEmpresa, -1, Acuerdos) Retorno = AddOI_Eventos2(OITipoEventos.Minuta, Asunto, Descripcion, 3, -1, -1, String.Format("{0:yyyy/MM/dd HH:mm}", FechaInicio), "1900/01/01 00:00", -1, Archivo, Lmiembros, chkList, CveUsuarioIng, CveEmpresa, -1, Acuerdos, CorreoExterno:=CorreoExterno)
'Retorno = AddEvento(5, -1, Asunto, Descripcion, 1, -1, -1, FechaInicio, ("01/01/1799").ToDate, -1, -1, "-1", CveUsuarioIng, CveEmpresa, -1, -1, -1, -1, -1, -1, -1, -1) 'Retorno = AddEvento(5, -1, Asunto, Descripcion, 1, -1, -1, FechaInicio, ("01/01/1799").ToDate, -1, -1, "-1", CveUsuarioIng, CveEmpresa, -1, -1, -1, -1, -1, -1, -1, -1)
Return Retorno Return Retorno
End Function End Function
Public Function AddOI_Eventos2(cveTipoEvento As OITipoEventos, asunto As String, descripcion As String, prioridad As Int32, cveUsuarioDe As Int32, cveUsuarioPara As Int32, Public Function AddOI_Eventos2(cveTipoEvento As OITipoEventos, asunto As String, descripcion As String, prioridad As Int32, cveUsuarioDe As Int32, cveUsuarioPara As Int32,
fechaInicio As String, fechaFin As String, cveRevision As Int32, archivo As String, Lmiembros As List(Of Integer), chkList As List(Of String), fechaInicio As String, fechaFin As String, cveRevision As Int32, archivo As String, Lmiembros As List(Of Integer), chkList As List(Of String),
cveUsuarioIng As Int32, cveEmpresa As Int32, Optional CveEventoPadre As Integer = -1, Optional Acuerdos As String = Nothing, Optional CveAgendaTipo As Integer = -1) As Boolean cveUsuarioIng As Int32, cveEmpresa As Int32, Optional CveEventoPadre As Integer = -1, Optional Acuerdos As String = Nothing, Optional CveAgendaTipo As Integer = -1,
Optional CveActivoFijo As Integer = -1, Optional CveIE As Integer = -1, Optional CveProspecto As Integer = -1, Optional CveCliente As Integer = -1,
Optional CveOS As Integer = -1, Optional CveOC As Integer = -1, Optional CvePersonal As Integer = -1, Optional CveProveedor As Integer = -1,
Optional CveCompra As Integer = -1, Optional CveVenta As Integer = -1, Optional CveContrato As Integer = -1, Optional CveSubProyecto As Integer = -1,
Optional CveMovimientoAlmacen As Integer = -1, Optional CorreoExterno As String = "", Optional CveTableroLista As Integer = -1, Optional Lugar As String = "") As Boolean
Dim retorno As Boolean = False Dim retorno As Boolean = False
Dim xmlMiembros As System.Xml.Linq.XDocument = Nothing Dim xmlMiembros As System.Xml.Linq.XDocument = Nothing
@@ -339,6 +574,24 @@ Public Class ClsOIEventos
.Add("@CveEventoPadre", SqlDbType.Int).Value = CveEventoPadre .Add("@CveEventoPadre", SqlDbType.Int).Value = CveEventoPadre
.Add("@Acuerdos", SqlDbType.VarChar).Value = If(Acuerdos Is Nothing, DBNull.Value, DirectCast(Acuerdos, Object)) .Add("@Acuerdos", SqlDbType.VarChar).Value = If(Acuerdos Is Nothing, DBNull.Value, DirectCast(Acuerdos, Object))
.Add("@CveAgendaTipo", SqlDbType.Int).Value = CveAgendaTipo .Add("@CveAgendaTipo", SqlDbType.Int).Value = CveAgendaTipo
.Add("@CveActivoFijo", SqlDbType.Int).Value = CveActivoFijo
.Add("@CveIE", SqlDbType.Int).Value = CveIE
.Add("@CveProspecto", SqlDbType.Int).Value = CveProspecto
.Add("@CveCliente", SqlDbType.Int).Value = CveCliente
.Add("@CveOS", SqlDbType.Int).Value = CveOS
.Add("@CveOC", SqlDbType.Int).Value = CveOC
.Add("@CvePersonal", SqlDbType.Int).Value = CvePersonal
.Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor
.Add("@CveCompra", SqlDbType.Int).Value = CveCompra
.Add("@CveVenta", SqlDbType.Int).Value = CveVenta
.Add("@CveContrato", SqlDbType.Int).Value = CveContrato
.Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto
.Add("@CveMovimientoAlmacen", SqlDbType.Int).Value = CveMovimientoAlmacen
.Add("@CorreoExterno", SqlDbType.VarChar).Value = CorreoExterno
.Add("@Lugar", SqlDbType.VarChar).Value = Lugar
.Add("@CveTableroLista", SqlDbType.VarChar).Value = CveTableroLista
'.Add("@mailPara", SqlDbType.VarChar).Direction = ParameterDirection.Output '.Add("@mailPara", SqlDbType.VarChar).Direction = ParameterDirection.Output
'.Add("@mailBody", SqlDbType.Xml).Direction = ParameterDirection.Output '.Add("@mailBody", SqlDbType.Xml).Direction = ParameterDirection.Output
End With End With
@@ -1561,8 +1814,10 @@ Public Class ClsOIEventos
SqlAdapter.Fill(Data) SqlAdapter.Fill(Data)
Retorno = True Retorno = True
Catch ex As SqlException
OnError("Ocurrió un error al guardar Tema.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
Catch ex As Exception Catch ex As Exception
OnError("Ocurrió un error al guardar la Revision de Eventos.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) OnError("Ocurrió un error al guardar Tema.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try End Try
Return Retorno Return Retorno

View File

@@ -70,7 +70,11 @@ Public Class ClsPaginas
Get Get
Try Try
'UsuarioActual = DirectCast(Session("UsuarioSIG"), Usuario) 'UsuarioActual = DirectCast(Session("UsuarioSIG"), Usuario)
UsuarioActual = CType(Context.Session("UsuarioSIG"), Usuario) If Context.Session("UsuarioSIG") Is Nothing Then
Usuario.CerrarSession()
Else
UsuarioActual = CType(Context.Session("UsuarioSIG"), Usuario)
End If
Catch ex As Exception Catch ex As Exception
Usuario.CerrarSession() Usuario.CerrarSession()
Return Nothing Return Nothing
@@ -3579,6 +3583,10 @@ Public Class ClsPaginas
PaginaDict.Add("/OI/Tareas.aspx".ToUpper(), -1) PaginaDict.Add("/OI/Tareas.aspx".ToUpper(), -1)
PaginaDict.Add("/OI/RepProyectos.aspx".ToUpper(), -1) PaginaDict.Add("/OI/RepProyectos.aspx".ToUpper(), -1)
PaginaDict.Add("/OI/Proyecto.aspx".ToUpper(), -1) PaginaDict.Add("/OI/Proyecto.aspx".ToUpper(), -1)
PaginaDict.Add("/OI/Tablero.aspx".ToUpper(), -1)
PaginaDict.Add("/OI/TableroDetalle.aspx".ToUpper(), -1)
PaginaDict.Add("/OI/ConvocatoriaDetalle.aspx".ToUpper(), -1)
PaginaDict.Add("/OI/RepReuniones.aspx".ToUpper(), -1)
PaginaDict.Add("/AdSistemasTeam/ProcedimientosAlmacenados.aspx".ToUpper(), -1) PaginaDict.Add("/AdSistemasTeam/ProcedimientosAlmacenados.aspx".ToUpper(), -1)
PaginaDict.Add("/OS/CatOrdenesServiciosCaracteristicas.aspx".ToUpper(), -1) PaginaDict.Add("/OS/CatOrdenesServiciosCaracteristicas.aspx".ToUpper(), -1)
PaginaDict.Add("/OS/CatOSCaracteristicasOpciones.aspx".ToUpper(), -1) PaginaDict.Add("/OS/CatOSCaracteristicasOpciones.aspx".ToUpper(), -1)
@@ -5182,13 +5190,15 @@ Public Class ClsPaginas
Dim sw As New System.Diagnostics.Stopwatch() Dim sw As New System.Diagnostics.Stopwatch()
sw.Start() sw.Start()
Dim Bytes As Byte() = Nothing Dim Bytes As Byte() = Nothing
Dim bdir As String = If(RutaReporte.Contains("Empresas"), ModExtensiones.DirectorioBaseEmpresas, AppDomain.CurrentDomain.BaseDirectory)
RutaReporte.Replace("/", "\")
If Not RutaReporte.ToUpper().StartsWith(bdir.ToUpper()) Then
RutaReporte = String.Format("{0}{1}", bdir, RutaReporte)
End If
If EsProduccion Then If EsProduccion Then
Dim bdir As String = AppDomain.CurrentDomain.BaseDirectory
RutaReporte.Replace("/", "\")
If Not RutaReporte.ToUpper().StartsWith(bdir.ToUpper()) Then
RutaReporte = String.Format("{0}{1}", bdir, RutaReporte)
End If
Dim CveUsuario As Integer = 0 Dim CveUsuario As Integer = 0
Dim CveEmpresa As Integer = 0 Dim CveEmpresa As Integer = 0
If Context.Session("UsuarioSIG") IsNot Nothing Then If Context.Session("UsuarioSIG") IsNot Nothing Then
@@ -5580,7 +5590,7 @@ Public Class ClsPaginas
Dim retorno As Byte() = Nothing Dim retorno As Byte() = Nothing
'DATOS GENERALES 'DATOS GENERALES
Dim Ruta As String = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\{UsuarioActual.CveEmpresa}\" Dim Ruta As String = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\{UsuarioActual.CveEmpresa}\"
Dim PathXML As String = $"{Ruta}XML\{Vta.TipoDocto}\{Vta.SerieFolio}.xml" Dim PathXML As String = $"{Ruta}XML\{Vta.TipoDocto}\{Vta.SerieFolio}.xml"
Dim NombreArchivo As String = "" Dim NombreArchivo As String = ""
Dim NombreArchivoDescarga As String = "" Dim NombreArchivoDescarga As String = ""
@@ -6093,7 +6103,7 @@ Public Class ClsPaginas
' Dim ObjVentas As New ClsVentas ' Dim ObjVentas As New ClsVentas
'DATOS GENERALES 'DATOS GENERALES
Dim Ruta As String = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\{UsuarioActual.CveEmpresa}\" Dim Ruta As String = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\{UsuarioActual.CveEmpresa}\"
Dim PathXML As String = $"{Ruta}XML\{Vta.TipoDocto}\{Vta.SerieFolio}.xml" Dim PathXML As String = $"{Ruta}XML\{Vta.TipoDocto}\{Vta.SerieFolio}.xml"
Dim NombreArchivo As String = "" Dim NombreArchivo As String = ""
Dim NombreArchivoDescarga As String = "" Dim NombreArchivoDescarga As String = ""
@@ -6797,7 +6807,7 @@ Public Class ClsPaginas
Dim rds5 As New ReportDataSource With {.Name = "DataSet5", .Value = If(Vta.DtNCVinculadas IsNot Nothing, Vta.DtNCVinculadas, New DataTable)} ' sino esta creado el objeto, lo creamos, para que no truene el reporte Dim rds5 As New ReportDataSource With {.Name = "DataSet5", .Value = If(Vta.DtNCVinculadas IsNot Nothing, Vta.DtNCVinculadas, New DataTable)} ' sino esta creado el objeto, lo creamos, para que no truene el reporte
lrds.Add(rds5) lrds.Add(rds5)
If UsuarioActual.CveEmpresa = 141 AndAlso RutaFormato.Contains("Factura") Then If UsuarioActual.CveEmpresa = 141 AndAlso (RutaFormato.Contains("Factura") Or RutaFormato.Contains("Cotizacion")) Then
params.Add(New ReportParameter("Kilometraje", Vta.Kilometraje.ToString)) params.Add(New ReportParameter("Kilometraje", Vta.Kilometraje.ToString))
End If End If
'Imprime los parametros 'Imprime los parametros
@@ -7195,10 +7205,15 @@ Public Class ClsPaginas
End If End If
'params.Add(New ReportParameter("FechaOC", ObjOC.Fecha.ToShortDateString)) 'params.Add(New ReportParameter("FechaOC", ObjOC.Fecha.ToShortDateString))
Dim RutaFisicaSol As String = String.Format("Empresas\{0}\Firmas\{1}.png", EmpresaActual.CveEmpresa, CveUsuarioSol)
Dim RutaVirtuaSol As String = String.Format("{0}://{1}:{2}/ashx/sigfiles.ashx?P={0}", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, Encripta(RutaFisicaSol))
Dim FirmaSol As New System.IO.FileInfo(String.Format("{0}Firmas\{1}.png", EmpresaActual.Ruta, CveUsuarioSol)) Dim FirmaSol As New System.IO.FileInfo(String.Format("{0}Firmas\{1}.png", EmpresaActual.Ruta, CveUsuarioSol))
params.Add(New ReportParameter("FirmaSolicito", If(FirmaSol.Exists, New Uri(Server.MapPath(String.Format("~/Empresas/{0}/Firmas/{1}.png", EmpresaActual.CveEmpresa, CveUsuarioSol))).AbsoluteUri, ""))) params.Add(New ReportParameter("FirmaSolicito", If(FirmaSol.Exists, RutaVirtuaSol, "")))
Dim RutaFisicaAut As String = String.Format("Empresas\{0}\Firmas\{1}.png", EmpresaActual.CveEmpresa, CveUsuarioAut)
Dim RutaVirtuaAut As String = String.Format("{0}://{1}:{2}/ashx/sigfiles.ashx?P={3}", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, Encripta(RutaFisicaAut))
Dim FirmaAut As New System.IO.FileInfo(String.Format("{0}Firmas\{1}.png", EmpresaActual.Ruta, CveUsuarioAut)) Dim FirmaAut As New System.IO.FileInfo(String.Format("{0}Firmas\{1}.png", EmpresaActual.Ruta, CveUsuarioAut))
params.Add(New ReportParameter("FirmaAutorizo", If(FirmaAut.Exists, New Uri(Server.MapPath(String.Format("~/Empresas/{0}/Firmas/{1}.png", EmpresaActual.CveEmpresa, CveUsuarioAut))).AbsoluteUri, ""))) params.Add(New ReportParameter("FirmaAutorizo", If(FirmaAut.Exists, RutaVirtuaAut, "")))
If Archivo.Exists Then If Archivo.Exists Then
bytes = StreamPDF(String.Format("{0}Formatos\OC.rdlc", EmpresaActual.Ruta), DtDetalle, params, $"OC_{ObjOC.Folio.ToString}", RDSName:="DsOC", MR:=MR) bytes = StreamPDF(String.Format("{0}Formatos\OC.rdlc", EmpresaActual.Ruta), DtDetalle, params, $"OC_{ObjOC.Folio.ToString}", RDSName:="DsOC", MR:=MR)
@@ -7445,7 +7460,7 @@ Public Class ClsPaginas
Dim DTPercepciones As Data.DataTable Dim DTPercepciones As Data.DataTable
Dim DTDeducciones As Data.DataTable Dim DTDeducciones As Data.DataTable
Dim Ruta As String = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\{CveEmpresa}\" Dim Ruta As String = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\{CveEmpresa}\"
Dim PathXML As String = $"{Ruta}XML\Nomina\{ObjNomina.SerieFolio}.xml" Dim PathXML As String = $"{Ruta}XML\Nomina\{ObjNomina.SerieFolio}.xml"
Dim FechaEmision, FechaCertificacion As DateTime Dim FechaEmision, FechaCertificacion As DateTime
Dim FolioFiscal, NoSerieCertificado, NoSerieCertificadoContribuyente, SelloCFDi, SelloSAT As String Dim FolioFiscal, NoSerieCertificado, NoSerieCertificadoContribuyente, SelloCFDi, SelloSAT As String
@@ -7750,7 +7765,7 @@ Public Class ClsPaginas
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToString)) params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToString))
'DATOS GENERALES 'DATOS GENERALES
Dim Ruta As String = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\{UsuarioActual.CveEmpresa}\" Dim Ruta As String = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\{UsuarioActual.CveEmpresa}\"
Dim PathXML As String = $"{Ruta}XML\Pag\{Serie}-{Folio}.xml" Dim PathXML As String = $"{Ruta}XML\Pag\{Serie}-{Folio}.xml"
Dim PathPDF As String = $"{Ruta}PDF\Pag\{Serie}-{Folio}.pdf" Dim PathPDF As String = $"{Ruta}PDF\Pag\{Serie}-{Folio}.pdf"
SerieFolio = $"{Serie}-{Folio}" SerieFolio = $"{Serie}-{Folio}"

View File

@@ -676,7 +676,7 @@ End Class
' dtMenu.TableName = "ModulosUsuarios" ' dtMenu.TableName = "ModulosUsuarios"
' Try ' Try
' dtMenu.WriteXml(AppDomain.CurrentDomain.BaseDirectory & "\Menu\" & _Usuario & ".xml", XmlWriteMode.WriteSchema) ' dtMenu.WriteXml(ModExtensiones.DirectorioBaseEmpresas & "\Menu\" & _Usuario & ".xml", XmlWriteMode.WriteSchema)
' Retorno = True ' Retorno = True
' Catch ex As Exception ' Catch ex As Exception
' OnError("Ocurrió un error al generar el menú del usuario.", ex) ' OnError("Ocurrió un error al generar el menú del usuario.", ex)

View File

@@ -445,7 +445,7 @@ Public Class ClsSisEmpresas
_Empresa.Buzon_Tipo = Data.Rows(0)("Buzon_Tipo").ToString _Empresa.Buzon_Tipo = Data.Rows(0)("Buzon_Tipo").ToString
_Empresa.ContaContabilizacionNC = Data.Rows(0)("Conta_ContabilizacionNC").ToString.ToEntero _Empresa.ContaContabilizacionNC = Data.Rows(0)("Conta_ContabilizacionNC").ToString.ToEntero
_Empresa.Ruta = String.Format("{0}Empresas\{1}\", AppDomain.CurrentDomain.BaseDirectory, _Empresa.CveEmpresa) '_Empresa.Ruta = String.Format("{0}Empresas\{1}\", ModExtensiones.DirectorioBaseEmpresas, _Empresa.CveEmpresa)
_Empresa.PV_TerminalTipo = Data.Rows(0)("PV_TerminalTipo").ToString.ToEntero _Empresa.PV_TerminalTipo = Data.Rows(0)("PV_TerminalTipo").ToString.ToEntero
_Empresa.EjercicioActual = Data.Rows(0)("EjercicioActual").ToString.ToEntero _Empresa.EjercicioActual = Data.Rows(0)("EjercicioActual").ToString.ToEntero
_Empresa.PeriodoActual = Data.Rows(0)("PeriodoActual").ToString.ToEntero _Empresa.PeriodoActual = Data.Rows(0)("PeriodoActual").ToString.ToEntero

View File

@@ -320,7 +320,7 @@ Public Class ClsSisNotificaciones
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
Dim ObjGPS As New ClsGPS Dim ObjGPS As New ClsGPS
Try Try
RutaReporte = $"{AppDomain.CurrentDomain.BaseDirectory}/Empresas/Grales/ReportesProgramados/RPTUltimaPosicion.rdlc" RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPTUltimaPosicion.rdlc"
Dim Direcciones As JArray = Nothing Dim Direcciones As JArray = Nothing
If Formato = "Excel" Then If Formato = "Excel" Then
Dim Dispositivos As New StringBuilder Dim Dispositivos As New StringBuilder
@@ -369,7 +369,7 @@ Public Class ClsSisNotificaciones
Dim ObjGPS As New ClsGPS Dim ObjGPS As New ClsGPS
Try Try
RutaReporte = $"{AppDomain.CurrentDomain.BaseDirectory}/Empresas/Grales/ReportesProgramados/RPTHistorico.rpt" RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPTHistorico.rpt"
Dim ObjMail As New ClsSisMail() Dim ObjMail As New ClsSisMail()
Dim ResultadoMail As Integer = 0 Dim ResultadoMail As Integer = 0
Dim Archivos As New List(Of ClsSisMail.ArchivoMail) Dim Archivos As New List(Of ClsSisMail.ArchivoMail)
@@ -429,7 +429,7 @@ Public Class ClsSisNotificaciones
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
Dim ObjGPS As New ClsGPS Dim ObjGPS As New ClsGPS
Try Try
RutaReporte = $"{AppDomain.CurrentDomain.BaseDirectory}/Empresas/Grales/ReportesProgramados/RPTiempoMuerto.rpt" RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPTiempoMuerto.rpt"
Dim DataSource As DataSet = Nothing Dim DataSource As DataSet = Nothing
Dim Direcciones As JArray = Nothing Dim Direcciones As JArray = Nothing
If Formato = "Excel" Then If Formato = "Excel" Then
@@ -478,7 +478,7 @@ Public Class ClsSisNotificaciones
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
Dim ObjGPS As New ClsGPS Dim ObjGPS As New ClsGPS
Try Try
RutaReporte = $"{AppDomain.CurrentDomain.BaseDirectory}/Empresas/Grales/ReportesProgramados/RPTEventos.rpt" RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPTEventos.rpt"
Dim Direcciones As JArray = Nothing Dim Direcciones As JArray = Nothing
Dim Dispositivos As New StringBuilder Dim Dispositivos As New StringBuilder
For Each Row As DataRow In DtDispositivos.Rows For Each Row As DataRow In DtDispositivos.Rows
@@ -520,7 +520,7 @@ Public Class ClsSisNotificaciones
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
Dim ObjGPS As New ClsGPS Dim ObjGPS As New ClsGPS
Try Try
RutaReporte = $"{AppDomain.CurrentDomain.BaseDirectory}/Empresas/Grales/ReportesProgramados/RPTRalenti.rdlc" RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPTRalenti.rdlc"
Dim Direcciones As JArray = Nothing Dim Direcciones As JArray = Nothing
If Formato = "Excel" Then If Formato = "Excel" Then
Dim Dispositivos As New StringBuilder Dim Dispositivos As New StringBuilder
@@ -565,7 +565,7 @@ Public Class ClsSisNotificaciones
End Try End Try
ObjGPS.Dispose() ObjGPS.Dispose()
Case 6 'Geocercas Case 6 'Geocercas
RutaReporte = $"{AppDomain.CurrentDomain.BaseDirectory}/Empresas/Grales/ReportesProgramados/RPGeocercas.rdlc" RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPGeocercas.rdlc"
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
Dim ObjGPS As New ClsGPS Dim ObjGPS As New ClsGPS
Try Try
@@ -604,7 +604,7 @@ Public Class ClsSisNotificaciones
End Try End Try
ObjGPS.Dispose() ObjGPS.Dispose()
Case 7 'Puntos de Interes Case 7 'Puntos de Interes
RutaReporte = $"{AppDomain.CurrentDomain.BaseDirectory}/Empresas/Grales/ReportesProgramados/RPPuntosDeInteres.rdlc" RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPPuntosDeInteres.rdlc"
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
Dim ObjGPS As New ClsGPS Dim ObjGPS As New ClsGPS
Try Try

View File

@@ -4496,6 +4496,25 @@ Public Class ClsVentas
Return Retorno Return Retorno
End Function End Function
Public Function EliminarUsados(CveVenta As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Vta_VentasUsadosRemove", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveVenta", SqlDbType.Int).Value = CveVenta
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As Exception
OnError("Ocurrió un error al eliminar los usados.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
End Try
Return Retorno
End Function
Public Function GetVentasUsados(CveVenta As Integer, CveSubProyecto As Integer, Fecha As DateTime, CveEmpresa As Integer) As Boolean Public Function GetVentasUsados(CveVenta As Integer, CveSubProyecto As Integer, Fecha As DateTime, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False

View File

@@ -101,7 +101,11 @@ Public Class Empresa
Public Property Soporte_PWD As String Public Property Soporte_PWD As String
Public Property Soporte_Tipo As String Public Property Soporte_Tipo As String
Public Property Timbres As Integer Public Property Timbres As Integer
Public Property Ruta As String Public ReadOnly Property Ruta As String
Get
Return String.Format("{0}\{1}\", Extensiones.ModExtensiones.DirectorioEmpresas, Me.CveEmpresa)
End Get
End Property
Public Property IdCuentaIVAxTrasladar As Integer Public Property IdCuentaIVAxTrasladar As Integer
Public Property IdCuentaIVATrasladado As Integer Public Property IdCuentaIVATrasladado As Integer
Public Property IdCuentaPerdidaCambiaria As Integer Public Property IdCuentaPerdidaCambiaria As Integer

View File

@@ -328,7 +328,7 @@ Namespace Modelos
End If End If
SetMetodoPago(ObjsClsPaginas) SetMetodoPago(ObjsClsPaginas)
Timbre = New CFDITimbre Timbre = New CFDITimbre
DirectorioServidor = ObjsClsPaginas.Server.MapPath("/") DirectorioServidor = ModExtensiones.DirectorioBaseEmpresas
End Sub End Sub
Public Sub New(ObjsClsPaginas As ClsPaginas, CveVenta As Integer, CveEmpresa As Integer) Public Sub New(ObjsClsPaginas As ClsPaginas, CveVenta As Integer, CveEmpresa As Integer)
@@ -342,7 +342,7 @@ Namespace Modelos
End If End If
End If End If
ObjVentas.Dispose() ObjVentas.Dispose()
DirectorioServidor = ObjsClsPaginas.Server.MapPath("/") DirectorioServidor = ModExtensiones.DirectorioBaseEmpresas
End Sub End Sub
Public Sub New(ObjsClsPaginas As ClsPaginas, UsuarioActual As Usuario, Optional Row As Data.DataRow = Nothing) Public Sub New(ObjsClsPaginas As ClsPaginas, UsuarioActual As Usuario, Optional Row As Data.DataRow = Nothing)
Me.UsuarioActual = UsuarioActual Me.UsuarioActual = UsuarioActual
@@ -359,7 +359,7 @@ Namespace Modelos
SetSubProyecto(ObjsClsPaginas) SetSubProyecto(ObjsClsPaginas)
SetSubProyectoMatriz(ObjsClsPaginas) SetSubProyectoMatriz(ObjsClsPaginas)
Timbre = New CFDITimbre Timbre = New CFDITimbre
DirectorioServidor = ObjsClsPaginas.Server.MapPath("/") DirectorioServidor = ModExtensiones.DirectorioBaseEmpresas
End Sub End Sub
Public Sub New(UsuarioActual As Usuario, Optional Row As Data.DataRow = Nothing) Public Sub New(UsuarioActual As Usuario, Optional Row As Data.DataRow = Nothing)
Me.UsuarioActual = UsuarioActual Me.UsuarioActual = UsuarioActual
@@ -400,7 +400,7 @@ Namespace Modelos
ObjVentas.Dispose() ObjVentas.Dispose()
IniciaValoresVentas(EsCancelacion) IniciaValoresVentas(EsCancelacion)
If String.IsNullOrEmpty(DirectorioServidor) Then If String.IsNullOrEmpty(DirectorioServidor) Then
DirectorioServidor = HttpContext.Current.Server.MapPath("/") DirectorioServidor = ModExtensiones.DirectorioBaseEmpresas
End If End If
Me.DirectorioServidor = DirectorioServidor Me.DirectorioServidor = DirectorioServidor
Timbre = New CFDITimbre Timbre = New CFDITimbre
@@ -878,9 +878,9 @@ Namespace Modelos
Try Try
If Not String.IsNullOrEmpty(DirectorioServidor) Then If Not String.IsNullOrEmpty(DirectorioServidor) Then
Dim DirectoriArchivoXML As String = System.IO.Path.Combine(DirectorioServidor, "Empresas", UsuarioActual.CveEmpresa.ToString, Me.TipoDocto) Dim DirectorioArchivoXML As String = System.IO.Path.Combine(UsuarioActual.Empresa.Ruta, "XML", Me.TipoDocto)
If Not Directory.Exists(DirectoriArchivoXML) Then If Not Directory.Exists(DirectorioArchivoXML) Then
Directory.CreateDirectory(DirectoriArchivoXML) Directory.CreateDirectory(DirectorioArchivoXML)
End If End If
End If End If
@@ -4537,6 +4537,13 @@ Namespace Modelos
End If End If
End If End If
'REALIZA LA DEVOLUCION AL ALMACEN VIRTUAL
If Not GeneraMovimientosVirtuales(CveVenta, CveMovimientoDevolucion, RowMovimiento("CveMovimiento").ToString().ToEntero(), ObjInventario) Then
ErrorCancelar = True
MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar."
End If
'AGREGA BITACORA A VENTA 'AGREGA BITACORA A VENTA
If Not ErrorCancelar AndAlso RealizarDevolucionAlmacen AndAlso CveMovimientoDevolucion > 0 Then If Not ErrorCancelar AndAlso RealizarDevolucionAlmacen AndAlso CveMovimientoDevolucion > 0 Then
Dim MensajeBitacora = "Devuelta" Dim MensajeBitacora = "Devuelta"
@@ -4580,12 +4587,6 @@ Namespace Modelos
Next Next
End If End If
'REALIZA LA DEVOLUCION AL ALMACEN VIRTUAL
If Not GeneraMovimientosVirtuales(CveVenta, ObjInventario) Then
ErrorCancelar = True
MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar."
End If
'VERIFICAR MOVIMIENTOS DE APARTADOS 'VERIFICAR MOVIMIENTOS DE APARTADOS
If Not ErrorCancelar Then If Not ErrorCancelar Then
If Not GeneraMovimientosApartados(ObjInventario) Then If Not GeneraMovimientosApartados(ObjInventario) Then
@@ -4809,41 +4810,36 @@ Namespace Modelos
Return Retorno Return Retorno
End Function End Function
Private Function GeneraMovimientosVirtuales(CveVenta As Integer, ByRef ObjInventario As ClsInventarios) As Boolean Private Function GeneraMovimientosVirtuales(CveVenta As Integer, CveMovimiento As Integer, CveMovimientoRelacionado As Integer, ByRef ObjInventario As ClsInventarios) As Boolean
Dim ErrorCancelar As Boolean = False Dim ErrorCancelar As Boolean = False
Try Try
If UsuarioActual.Empresa.Funcionalidad(573) = "1" Then If UsuarioActual.Empresa.Funcionalidad(573) = "1" Then
Dim CveMovimientoSalida As Integer = -1 Dim CveMovimientoVirtual As Integer = -1
Dim CveAlmacenVirutal As Integer = -1 Dim ValidaVirtual = True
Dim DtPSVirtual As New DataTable("DtTamanios")
Dim DtMovtosDev As DataTable = Nothing If ObjInventario.GetMovimientosDetalleVirtual(CveMovimiento, UsuarioActual.CveEmpresa, CveMovimientoRelacionado:=CveMovimientoRelacionado) Then
DtPSVirtual = ObjInventario.DtResultados
If ObjInventario.GetInv_Mov(CveVenta, UsuarioActual.CveEmpresa) Then
Dim RowMovimiento As DataRow = ObjInventario.DtResultados.FiltroPrimero("CvePS IS NULL AND CveTipoAlmacen = 24 AND CveConcepto = 3 AND CveVenta > 0")
CveMovimientoSalida = RowMovimiento("CveMovimiento").ToString().ToEntero()
CveAlmacenVirutal = RowMovimiento("CveAlmacen").ToString().ToEntero()
Else
ErrorCancelar = True
End If End If
If CveMovimientoSalida > 0 Then Dim CveConceptoMovimientoVirtual As Integer = 36
'CARGA CONCEPTOS DEVUELTOS EN LA VENTA Dim CveAlmacenVirtual As Integer = -1
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then Dim CveMovimientoRelacionadoVirtual As Integer = CveMovimiento
DtMovtosDev = ObjInventario.DtResultados.Copy()
Else
ErrorCancelar = True
End If
If DtMovtosDev IsNot Nothing AndAlso DtMovtosDev.Rows.Count > 0 Then CveAlmacenVirtual = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 24).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero()
Dim CveMovimientoEntrada = ObjInventario.AddMovimiento(CveAlmacenVirutal, 18, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta, -1, -1, CveMovimientoRelacionado:=CveMovimientoSalida)
For Each RowUsado As DataRow In DtMovtosDev.Rows If DtPSVirtual IsNot Nothing AndAlso DtPSVirtual.Rows.Count > 0 AndAlso CveAlmacenVirtual > 0 AndAlso CveConceptoMovimientoVirtual > 0 Then
CveMovimientoVirtual = ObjInventario.AddMovimiento(CveAlmacenVirtual, CveConceptoMovimientoVirtual, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta, -1, -1,
Observaciones:="", Guia:="", CveMovimientoRelacionado:=CveMovimientoRelacionadoVirtual, Modulo:="Modelos/CancelarVirtual")
If CveMovimientoVirtual > 0 Then
For Each RowUsado As DataRow In DtPSVirtual.Rows
Dim CvePS = RowUsado("CvePS").ToString().ToEntero() Dim CvePS = RowUsado("CvePS").ToString().ToEntero()
Dim CantidadUsado As Double = RowUsado("Cantidad").ToString().ToDouble() Dim CantidadUsado As Double = RowUsado("Cantidad").ToString().ToDouble()
Dim PU As Decimal = RowUsado("PU").ToString().ToDecimal() Dim PU As Decimal = RowUsado("PUOriginal").ToString().ToDecimal()
Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero() Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero()
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, CantidadUsado, CveUM, CvePS, PU, -1, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtual, CantidadUsado, CveUM, CvePS, PU, -1) Then
ErrorCancelar = True ErrorCancelar = True
Exit For Exit For
End If End If
@@ -4851,7 +4847,14 @@ Namespace Modelos
Else Else
ErrorCancelar = True ErrorCancelar = True
End If End If
Else
If ValidaVirtual Then
ErrorCancelar = True
End If
End If
If DtPSVirtual.Rows.Count = 0 AndAlso ValidaVirtual = True Then
ErrorCancelar = True
End If End If
End If End If
Catch ex As Exception Catch ex As Exception
@@ -4861,6 +4864,7 @@ Namespace Modelos
Return Not ErrorCancelar Return Not ErrorCancelar
End Function End Function
Private Function GeneraMovimientosEntregaPorAdelantadoRemision(CveMovimiento As Integer, ByRef ObjVentas As ClsVentas, ByRef ObjInventario As ClsInventarios, ByRef DtDevRem As DataTable, ByRef ListaRemisionesCancelar As List(Of Integer)) As Boolean Private Function GeneraMovimientosEntregaPorAdelantadoRemision(CveMovimiento As Integer, ByRef ObjVentas As ClsVentas, ByRef ObjInventario As ClsInventarios, ByRef DtDevRem As DataTable, ByRef ListaRemisionesCancelar As List(Of Integer)) As Boolean
Dim ErrorCancelar As Boolean = False Dim ErrorCancelar As Boolean = False

View File

@@ -18,7 +18,7 @@ Public Class WSApiController
Public ReadOnly Property RutaEmpresa As String Public ReadOnly Property RutaEmpresa As String
Get Get
Return String.Format("{0}Empresas\{1}\", AppDomain.CurrentDomain.BaseDirectory, Decripta(Request.Headers.Authorization.Parameter).Split("|"c)(4)) Return String.Format("{0}Empresas\{1}\", ModExtensiones.DirectorioBaseEmpresas, Decripta(Request.Headers.Authorization.Parameter).Split("|"c)(4))
End Get End Get
End Property End Property
' '

View File

@@ -108,7 +108,7 @@ Namespace SIG
If ObjEmpresas.GetEmpresas(-1, "-1", "-1", "-1", "-1") Then If ObjEmpresas.GetEmpresas(-1, "-1", "-1", "-1", "-1") Then
'verifico si existe la carpeta de la empresa, sino la crea 'verifico si existe la carpeta de la empresa, sino la crea
For Each dr As Data.DataRow In ObjEmpresas.DtResultados.Rows For Each dr As Data.DataRow In ObjEmpresas.DtResultados.Rows
Dim Ruta As String = String.Format("{0}Empresas\{1}", AppDomain.CurrentDomain.BaseDirectory, dr("CveEmpresa")) Dim Ruta As String = String.Format("{0}Empresas\{1}", ModExtensiones.DirectorioBaseEmpresas, dr("CveEmpresa"))
If Not IO.Directory.Exists(Ruta) Then IO.Directory.CreateDirectory(Ruta) If Not IO.Directory.Exists(Ruta) Then IO.Directory.CreateDirectory(Ruta)
If Not System.IO.Directory.Exists(String.Format("{0}\XML\", Ruta)) Then System.IO.Directory.CreateDirectory(String.Format("{0}\XML\", Ruta)) If Not System.IO.Directory.Exists(String.Format("{0}\XML\", Ruta)) Then System.IO.Directory.CreateDirectory(String.Format("{0}\XML\", Ruta))
If Not System.IO.Directory.Exists(String.Format("{0}\PDF\", Ruta)) Then System.IO.Directory.CreateDirectory(String.Format("{0}\PDF\", Ruta)) If Not System.IO.Directory.Exists(String.Format("{0}\PDF\", Ruta)) Then System.IO.Directory.CreateDirectory(String.Format("{0}\PDF\", Ruta))

View File

@@ -1467,7 +1467,7 @@ Public Class WS_PuntoVenta
Dim ObjEmpresa As New ClsSisEmpresas() Dim ObjEmpresa As New ClsSisEmpresas()
If ObjEmpresa.GetEmpresas(CveEmpresa, "-1", "-1", "-1", "-1") Then If ObjEmpresa.GetEmpresas(CveEmpresa, "-1", "-1", "-1", "-1") Then
Empresa = ObjEmpresa.Empresa Empresa = ObjEmpresa.Empresa
Empresa.Ruta = String.Format("{0}Empresas\{1}\", AppDomain.CurrentDomain.BaseDirectory, CveEmpresa) 'Empresa.Ruta = String.Format("{0}Empresas\{1}\", ModExtensiones.DirectorioBaseEmpresas, CveEmpresa)
End If End If
ObjEmpresa.Dispose() ObjEmpresa.Dispose()

View File

@@ -33,6 +33,26 @@ Namespace Extensiones
#Region "E X T E N S I O N E S" #Region "E X T E N S I O N E S"
Public Module ModExtensiones Public Module ModExtensiones
Public ReadOnly Property DirectorioBaseEmpresas As String
Get
If IsNothing(System.Configuration.ConfigurationManager.AppSettings("DirectorioBaseEmpresas")) Then
Return AppDomain.CurrentDomain.BaseDirectory
Else
Return System.Configuration.ConfigurationManager.AppSettings("DirectorioBaseEmpresas").ToString()
End If
End Get
End Property
Public ReadOnly DirectorioEmpresas As String = String.Format("{0}Empresas\", DirectorioBaseEmpresas)
Public ReadOnly Property GOOGLE_MAPS_API_KEY As String
Get
If IsNothing(System.Configuration.ConfigurationManager.AppSettings("GOOGLE_MAPS_API_KEY")) Then
Return ""
Else
Return System.Configuration.ConfigurationManager.AppSettings("GOOGLE_MAPS_API_KEY").ToString()
End If
End Get
End Property
Public Const IMEI As String = "IMEISISTEMAGERENCIAL" Public Const IMEI As String = "IMEISISTEMAGERENCIAL"
Public Const MinFecha As Date = #1/1/1900# Public Const MinFecha As Date = #1/1/1900#
@@ -317,7 +337,7 @@ Namespace Extensiones
script = String.Format("alertatoast({3},'{0}',function(){{{1}}},{2});", Mensaje, JSBtnAceptar, TimeoutToast, DirectCast(pOpcion, Integer)) script = String.Format("alertatoast({3},'{0}',function(){{{1}}},{2});", Mensaje, JSBtnAceptar, TimeoutToast, DirectCast(pOpcion, Integer))
End If End If
ScriptManager.RegisterStartupScript(Pag, Pag.GetType(), String.Format("Alert{0}", (DateTime.Now.Ticks + 1).ToString()), Script, True) ScriptManager.RegisterStartupScript(Pag, Pag.GetType(), String.Format("Alert{0}", (DateTime.Now.Ticks + 1).ToString()), script, True)
Pag = Nothing Pag = Nothing
Catch ex As Exception Catch ex As Exception
Mensaje.GuardaLog(String.Format("Error Alert : {0}", Mensaje)) Mensaje.GuardaLog(String.Format("Error Alert : {0}", Mensaje))
@@ -458,7 +478,14 @@ Namespace Extensiones
Else Else
newName = String.Format("{0}{1}", newName, IO.Path.GetExtension(directorioOld.ToString())) newName = String.Format("{0}{1}", newName, IO.Path.GetExtension(directorioOld.ToString()))
End If End If
directorioNew.AppendFormat("{0}{1}\", AppDomain.CurrentDomain.BaseDirectory, newDirectorio)
'SI VA A LA CARPETA DE EMPRESAS TIENE QUE TOMAR LA RUTA DE EMPRESAS
If newDirectorio.Contains("Empresas") Then
directorioNew.AppendFormat("{0}{1}\", ModExtensiones.DirectorioBaseEmpresas, newDirectorio)
Else
directorioNew.AppendFormat("{0}{1}\", AppDomain.CurrentDomain.BaseDirectory, newDirectorio)
End If
If Not Directory.Exists(directorioNew.ToString) Then If Not Directory.Exists(directorioNew.ToString) Then
Directory.CreateDirectory(directorioNew.ToString) Directory.CreateDirectory(directorioNew.ToString)
End If End If
@@ -1540,7 +1567,7 @@ Namespace Extensiones
' If Not IO.File.Exists(String.Format("{0}Cheques\", Ruta)) Then IO.Directory.CreateDirectory(String.Format("{0}Cheques\", Ruta)) ' If Not IO.File.Exists(String.Format("{0}Cheques\", Ruta)) Then IO.Directory.CreateDirectory(String.Format("{0}Cheques\", Ruta))
' If Not IO.File.Exists(Ruta & FormatoCheque) Then ' If Not IO.File.Exists(Ruta & FormatoCheque) Then
' IO.File.Copy(String.Format("{0}Empresas\Grales\Cheque.xlsm", AppDomain.CurrentDomain.BaseDirectory), Ruta & FormatoCheque, False) ' IO.File.Copy(String.Format("{0}Empresas\Grales\Cheque.xlsm", ModExtensiones.DirectorioBaseEmpresas), Ruta & FormatoCheque, False)
' End If ' End If
' Dim ArchivoBase As New System.IO.FileInfo(Ruta & FormatoCheque) ' Dim ArchivoBase As New System.IO.FileInfo(Ruta & FormatoCheque)
@@ -1770,7 +1797,7 @@ Namespace Extensiones
' If Not IO.File.Exists(String.Format("{0}Cheques\", Ruta)) Then IO.Directory.CreateDirectory(String.Format("{0}Cheques\", Ruta)) ' If Not IO.File.Exists(String.Format("{0}Cheques\", Ruta)) Then IO.Directory.CreateDirectory(String.Format("{0}Cheques\", Ruta))
' If Not IO.File.Exists(String.Format("{0}{1}", Ruta, FormatoCheque)) Then ' If Not IO.File.Exists(String.Format("{0}{1}", Ruta, FormatoCheque)) Then
' IO.File.Copy(String.Format("{0}Empresas\Grales\Transferencia.xlsm", AppDomain.CurrentDomain.BaseDirectory), String.Format("{0}{1}", Ruta, FormatoCheque), False) ' IO.File.Copy(String.Format("{0}Empresas\Grales\Transferencia.xlsm", ModExtensiones.DirectorioBaseEmpresas), String.Format("{0}{1}", Ruta, FormatoCheque), False)
' End If ' End If
' Dim ArchivoBase As New System.IO.FileInfo(String.Format("{0}{1}", Ruta, FormatoCheque)) ' Dim ArchivoBase As New System.IO.FileInfo(String.Format("{0}{1}", Ruta, FormatoCheque))
@@ -2167,12 +2194,11 @@ Namespace Extensiones
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", Usuario.Empresa.Ruta)) Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", Usuario.Empresa.Ruta))
If Imagen.Exists Then If Imagen.Exists Then
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Host, HttpContext.Current.Request.Url.Port, Usuario.CveEmpresa) Dim Ruta As String = String.Format("{0}/Logo.png", Usuario.Empresa.Ruta)
Using webClient As New Net.WebClient() Using sr As New StreamReader(Ruta)
Dim imageBytes = webClient.DownloadData(logouri) Dim ms As New MemoryStream()
Dim stream As New MemoryStream(imageBytes) sr.BaseStream.CopyTo(ms)
worksheet.Pictures.Add(stream, ExcelPictureFormat.Png, "A1", AnchoImagen, AlturaImagen, LengthUnit.Pixel) worksheet.Pictures.Add(ms, ExcelPictureFormat.Png, "A1", AnchoImagen, AlturaImagen, LengthUnit.Pixel)
'worksheet.Pictures.Add(stream, GemBox.Spreadsheet.ExcelPictureFormat.Png, "A1", AnchoImagen, AlturaImagen, GemBox.Document.LengthUnit.Pixel)
End Using End Using
End If End If
End If End If
@@ -3163,7 +3189,7 @@ Namespace Extensiones
Public Property descripcion As String Public Property descripcion As String
Public ReadOnly Property Extencion As String Public ReadOnly Property Extencion As String
Get Get
Return IO.Path.GetExtension(String.Format("{0}{1}{2}", AppDomain.CurrentDomain.BaseDirectory, patch, filename)).Replace(".", "") Return IO.Path.GetExtension(String.Format("{0}{1}{2}", If(patch.Contains("Empresas"), ModExtensiones.DirectorioBaseEmpresas, AppDomain.CurrentDomain.BaseDirectory), patch, filename)).Replace(".", "")
End Get End Get
End Property End Property
Public ReadOnly Property filenameO As String Public ReadOnly Property filenameO As String
@@ -3173,7 +3199,7 @@ Namespace Extensiones
End Property End Property
Public ReadOnly Property FileUrl As String Public ReadOnly Property FileUrl As String
Get Get
Return String.Format("{0}{1}{2}", AppDomain.CurrentDomain.BaseDirectory, patch, filename) Return String.Format("{0}{1}{2}", If(patch.Contains("Empresas"), ModExtensiones.DirectorioBaseEmpresas, AppDomain.CurrentDomain.BaseDirectory), patch, filename)
End Get End Get
End Property End Property
End Class End Class

View File

@@ -291,7 +291,7 @@ Public Class wsSIG
Fecha = ArrCadena(6).ToString.ToDate Fecha = ArrCadena(6).ToString.ToDate
Fecha.ToShortDateString().GuardaLog() Fecha.ToShortDateString().GuardaLog()
If Fecha > Now.AddSeconds(TiempoValido) Then If Fecha > Now.AddSeconds(TiempoValido) Then
Dim Dir As String = String.Format("{0}Empresas\{1}\", AppDomain.CurrentDomain.BaseDirectory, pCveEmpresa) Dim Dir As String = String.Format("{0}Empresas\{1}\", ModExtensiones.DirectorioBaseEmpresas, pCveEmpresa)
Dim Ruta As String = "" Dim Ruta As String = ""
Dim RutaDB3 As String = "" Dim RutaDB3 As String = ""
Dim RutaThumb As String = "" Dim RutaThumb As String = ""

View File

@@ -34,7 +34,7 @@ Public Class GenerarPDFFactura : Implements IHttpHandler
Dim ListaDS = New List(Of ReportDataSource) Dim ListaDS = New List(Of ReportDataSource)
Dim Parametros As New List(Of ReportParameter) Dim Parametros As New List(Of ReportParameter)
Dim Formato = context.Server.MapPath("/") + "Empresas/1/Report.rdlc" Dim Formato = context.ModExtensiones.DirectorioBaseEmpresas + "Empresas/1/Report.rdlc"
Parametros.Add(New ReportParameter("Empresa", datos.Empresa.Empresa)) Parametros.Add(New ReportParameter("Empresa", datos.Empresa.Empresa))
Parametros.Add(New ReportParameter("RFC", datos.Empresa.RFC)) Parametros.Add(New ReportParameter("RFC", datos.Empresa.RFC))

View File

@@ -56,7 +56,7 @@ Public Class SIGCRM : Implements IHttpHandler, IRequiresSessionState
Dim Usuario As Usuario = UsuarioActual(context) Dim Usuario As Usuario = UsuarioActual(context)
If Not IsNothing(Usuario) Then If Not IsNothing(Usuario) Then
Dim Url = String.Format("{0}\Empresas\{1}\Acercamientos\{2}\Imagenes\{3}", AppDomain.CurrentDomain.BaseDirectory, Usuario.CveEmpresa, CveAcercamiento, Archivo) Dim Url = String.Format("{0}\Empresas\{1}\Acercamientos\{2}\Imagenes\{3}", ModExtensiones.DirectorioBaseEmpresas, Usuario.CveEmpresa, CveAcercamiento, Archivo)
If File.Exists(Url) Then If File.Exists(Url) Then
context.Response.ContentType = String.Format("image/{0}", Extension) context.Response.ContentType = String.Format("image/{0}", Extension)

View File

@@ -60,7 +60,7 @@ Public Class SIGFacturacion : Implements IHttpHandler, IRequiresSessionState
Dim Usuario = ValidaUsuarioSistema(CveEmpresa) Dim Usuario = ValidaUsuarioSistema(CveEmpresa)
Dim FechaI, FechaF As DateTime Dim FechaI, FechaF As DateTime
'EnviarCorreoFactura(New Modelos.Factura(Usuario, 844966, 1, context.Server.MapPath("/")), Usuario) 'EnviarCorreoFactura(New Modelos.Factura(Usuario, 844966, 1, context.ModExtensiones.DirectorioBaseEmpresas), Usuario)
If String.IsNullOrEmpty(pFechaI) AndAlso String.IsNullOrEmpty(pFechaF) Then If String.IsNullOrEmpty(pFechaI) AndAlso String.IsNullOrEmpty(pFechaF) Then
Dim FechaReferencia = Now Dim FechaReferencia = Now
@@ -904,7 +904,7 @@ Public Class SIGFacturacion : Implements IHttpHandler, IRequiresSessionState
' strLineaTMP = Chr(13) & Chr(10) & Day(Now) & "/" & Month(Now) & "/" & Year(Now) & " " & Hour(Now) & ":" & Minuto & ". " & Str & Chr(13) & Chr(10) ' strLineaTMP = Chr(13) & Chr(10) & Day(Now) & "/" & Month(Now) & "/" & Year(Now) & " " & Hour(Now) & ":" & Minuto & ". " & Str & Chr(13) & Chr(10)
strLineaTMP = String.Format("{0}{1}Log: {2}{3}:{4}", Chr(13), Chr(10), Str, DateTime.Now.ToShortDateString, DateTime.Now.ToShortTimeString) strLineaTMP = String.Format("{0}{1}Log: {2}{3}:{4}", Chr(13), Chr(10), Str, DateTime.Now.ToShortDateString, DateTime.Now.ToShortTimeString)
Try Try
ArchivoW = New StreamWriter(String.Format("{0}\LogFacturacion.txt", AppDomain.CurrentDomain.BaseDirectory), True, System.Text.Encoding.UTF8) ArchivoW = New StreamWriter(String.Format("{0}\LogFacturacion.txt", ModExtensiones.DirectorioBaseEmpresas), True, System.Text.Encoding.UTF8)
Catch ex As UnauthorizedAccessException Catch ex As UnauthorizedAccessException
'Alert("No hay permisos para guardar en el Log.", Extensiones.TipoMensaje.MsgError) 'Alert("No hay permisos para guardar en el Log.", Extensiones.TipoMensaje.MsgError)
Exit Sub Exit Sub

View File

@@ -91,7 +91,7 @@ Public Class SIGGPS : Implements IHttpHandler, IRequiresSessionState
Dim Usuario As Usuario = UsuarioActual(context) Dim Usuario As Usuario = UsuarioActual(context)
If Not IsNothing(Usuario) Then If Not IsNothing(Usuario) Then
Dim Url = String.Format("{0}\Empresas\{1}\Dispositivos\{2}\Imagenes\{3}", AppDomain.CurrentDomain.BaseDirectory, Usuario.CveEmpresa, CveDispositivo, Archivo) Dim Url = String.Format("{0}\Empresas\{1}\Dispositivos\{2}\Imagenes\{3}", ModExtensiones.DirectorioBaseEmpresas, Usuario.CveEmpresa, CveDispositivo, Archivo)
If File.Exists(Url) Then If File.Exists(Url) Then
context.Response.ContentType = String.Format("image/{0}", Extension) context.Response.ContentType = String.Format("image/{0}", Extension)

View File

@@ -106,7 +106,7 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState
Dim usuario As Usuario = UsuarioActual(context) Dim usuario As Usuario = UsuarioActual(context)
If Not IsNothing(usuario) Then If Not IsNothing(usuario) Then
Url = String.Format("{0}Empresas\{1}\{2}", AppDomain.CurrentDomain.BaseDirectory, usuario.CveEmpresa, Url) Url = String.Format("{0}Empresas\{1}\{2}", ModExtensiones.DirectorioBaseEmpresas, usuario.CveEmpresa, Url)
Dim FileInfo As FileInfo = New FileInfo(Url) Dim FileInfo As FileInfo = New FileInfo(Url)
If FileInfo.Exists Then If FileInfo.Exists Then
context.Response.ContentType = "image/png" context.Response.ContentType = "image/png"

64
Ashx/SigFiles.ashx Normal file
View File

@@ -0,0 +1,64 @@
<%@ WebHandler Language="C#" Class="SigFiles" %>
using System;
using System.Web;
using Extensiones;
public class SigFiles : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
//context.Response.ContentType = "text/plain";
//context.Response.Write("Hello World");
string path = "";
if (context.Request["FileUrl"] != null)
{
path = string.Format("{0}{1}", ModExtensiones.DirectorioBaseEmpresas, context.Request["FileUrl"]);
}
if (context.Request["P"] != null)
{
path = string.Format("{0}{1}", ModExtensiones.DirectorioBaseEmpresas,ModExtensiones.Decripta( context.Request["P"]));
}
if (path != null && path.Length>0)
{
try
{
if (System.IO.File.Exists(path))
{
System.IO.FileInfo file = new System.IO.FileInfo(path);
string mimeType = "text/plain";
try
{
mimeType = MimeMapping.GetMimeMapping(path);
}
catch (Exception) { }//si truena no existe el arhivo
context.Response.Clear();
context.Response.ClearHeaders();
context.Response.ClearContent();
context.Response.AddHeader("Content-Disposition", $"attachment; filename= {Uri.EscapeDataString(file.Name)}");
context.Response.AddHeader("Content-Length", file.Length.ToString());
context.Response.ContentType = mimeType;
context.Response.Flush();
context.Response.TransmitFile(file.FullName);
}
}
catch (Exception ex)
{
this.GuardaLog(ex.ToString());
}
}
context.Response.End();
}
public bool IsReusable
{
get
{
return false;
}
}
}

View File

@@ -77,7 +77,7 @@ Partial Class Bancos_CargarConciliacionesBancarias
Protected Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Protected Sub BtnCargaExcel_Click(sender As Object, e As EventArgs)
If TxtExcel.getfiles().Archivos.Count > 0 Then If TxtExcel.getfiles().Archivos.Count > 0 Then
Dim file As Archivo = TxtExcel.getfiles().Archivos(0) Dim file As Archivo = TxtExcel.getfiles().Archivos(0)
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & file.patch Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & file.patch
Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV") Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV")
CargaExcel(Directorio, file.filename, Tipo) CargaExcel(Directorio, file.filename, Tipo)
Else Else

View File

@@ -216,7 +216,7 @@ Partial Class Bancos_CreditosPagoMultiple
Dim filemove As String = "" Dim filemove As String = ""
Dim Comprobante As String = "" Dim Comprobante As String = ""
For Each fileItem As Archivo In filesgral For Each fileItem As Archivo In filesgral
Comprobante = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") Comprobante = IO.Path.GetExtension(String.Format("{0}Temp\{1}", ModExtensiones.DirectorioBaseEmpresas, fileItem.filename)).Replace(".", "")
filemove = fileItem.filename filemove = fileItem.filename
Next Next

View File

@@ -510,7 +510,7 @@ public partial class Bancos_Devoluciones : ClsPaginas
if (!archivo.Exists) if (!archivo.Exists)
{ {
archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", AppDomain.CurrentDomain.BaseDirectory)); archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", ModExtensiones.DirectorioBaseEmpresas));
} }
} }
else if (DdlTipoTransanccion.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72) else if (DdlTipoTransanccion.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72)

View File

@@ -930,7 +930,7 @@ Partial Class Bancos_IE
If ObjIE.Comprobante <> "" Then If ObjIE.Comprobante <> "" Then
HplComprobante.Visible = True HplComprobante.Visible = True
HplComprobante.NavigateUrl = String.Format("/Empresas/{0}/IE/{1}", UsuarioActual.CveEmpresa, ObjIE.Comprobante) HplComprobante.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta($"OP=IEComprobante&Comprobante={ObjIE.Comprobante}"))
End If End If
If CveIEDeposito > 0 Then If CveIEDeposito > 0 Then
@@ -2471,7 +2471,7 @@ Partial Class Bancos_IE
If CveIE > 0 Then If CveIE > 0 Then
If DdlTipoTransaccion.SelectedValue = "1" AndAlso usuarioactual.cveempresa <> 119 Then FolioFijo = ObjIE.Folio.ToEntero 'cheque If DdlTipoTransaccion.SelectedValue = "1" AndAlso UsuarioActual.CveEmpresa <> 119 Then FolioFijo = ObjIE.Folio.ToEntero 'cheque
CvePrePoliza = ObjMov.AddPrePolizas("Bancos/IE " + If(Request("Opcion") IsNot Nothing, Request("Opcion").ToString, "") + " " + RBL.SelectedValue, CvePlantillaPoliza, TxtImporte.Text.Trim.ToDouble, TxtImporte.Text.Trim.ToDouble, tCveMoneda, TxtFechaDocumento.Text.ToDate, PagueseA, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=FolioFijo, ReglaFolioPoliza:=ObjComp.ObtenerReglaFolio(DdlTipoTransaccion.SelectedValue, Nothing, UsuarioActual.CveEmpresa), CveTipoPoliza:=ObjMov.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, "-1", UsuarioActual.CveEmpresa)) CvePrePoliza = ObjMov.AddPrePolizas("Bancos/IE " + If(Request("Opcion") IsNot Nothing, Request("Opcion").ToString, "") + " " + RBL.SelectedValue, CvePlantillaPoliza, TxtImporte.Text.Trim.ToDouble, TxtImporte.Text.Trim.ToDouble, tCveMoneda, TxtFechaDocumento.Text.ToDate, PagueseA, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=FolioFijo, ReglaFolioPoliza:=ObjComp.ObtenerReglaFolio(DdlTipoTransaccion.SelectedValue, Nothing, UsuarioActual.CveEmpresa), CveTipoPoliza:=ObjMov.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, "-1", UsuarioActual.CveEmpresa))
'valida prepoliza 'valida prepoliza
@@ -2728,6 +2728,7 @@ Partial Class Bancos_IE
Dim TipoMovtoAplicar = False Dim TipoMovtoAplicar = False
For Each Dr As DataRow In ObjMov.DtResultados.FiltraParametros("CveConceptoContable IN (13,8,9,38)").Rows For Each Dr As DataRow In ObjMov.DtResultados.FiltraParametros("CveConceptoContable IN (13,8,9,38)").Rows
Dim PorcentajeImpuesto As Decimal = Dr("PorcentajeImpuesto").ToString.ToDecimal()
CveConceptoContableAplciar = Dr("CveConceptoContable").ToString.ToEntero CveConceptoContableAplciar = Dr("CveConceptoContable").ToString.ToEntero
TipoMovtoAplicar = Not CBool(Dr("TipoMovto").ToString) TipoMovtoAplicar = Not CBool(Dr("TipoMovto").ToString)
ImporteAplicar = (Dr("Importe").ToString.ToDecimal * PorcentajePagoDevDin).RoundSQL() ImporteAplicar = (Dr("Importe").ToString.ToDecimal * PorcentajePagoDevDin).RoundSQL()
@@ -2735,7 +2736,7 @@ Partial Class Bancos_IE
ImporteAplicarME = (Dr("ImporteME").ToString.ToDecimal * PorcentajePagoDevDin).RoundSQL() ImporteAplicarME = (Dr("ImporteME").ToString.ToDecimal * PorcentajePagoDevDin).RoundSQL()
IdCtaContableAplicar = Dr("IdCtaContable").ToString.ToEntero IdCtaContableAplicar = Dr("IdCtaContable").ToString.ToEntero
If ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoAplicar, ImporteAplicar, ReferenciaAplicar, CveConceptoContableAplciar, ConceptoAplicar, Now, IdCtaContableAplicar, -1, CveIE, CveVenta:=CveVentaDevDin, CveCliente:=CveCliente, ImporteMX:=ImporteAplicarMN, ImporteME:=ImporteAplicarME) Then If ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoAplicar, ImporteAplicar, ReferenciaAplicar, CveConceptoContableAplciar, ConceptoAplicar, Now, IdCtaContableAplicar, -1, CveIE, CveVenta:=CveVentaDevDin, CveCliente:=CveCliente, ImporteMX:=ImporteAplicarMN, ImporteME:=ImporteAplicarME, PorcentajeImpuesto:=PorcentajeImpuesto) Then
Select Case CveConceptoContableAplciar Select Case CveConceptoContableAplciar
Case 13 Case 13
CveConceptoContableAplciar = 61 CveConceptoContableAplciar = 61
@@ -2747,7 +2748,7 @@ Partial Class Bancos_IE
CveConceptoContableAplciar = 39 CveConceptoContableAplciar = 39
End Select End Select
TipoMovtoAplicar = Not TipoMovtoAplicar TipoMovtoAplicar = Not TipoMovtoAplicar
If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoAplicar, ImporteAplicar, ReferenciaAplicar, CveConceptoContableAplciar, ConceptoAplicar, Now, IdCtaContableAplicar, -1, CveIE, CveVenta:=CveVentaDevDin, CveCliente:=CveCliente, ImporteMX:=ImporteAplicarMN, ImporteME:=ImporteAplicarME) Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoAplicar, ImporteAplicar, ReferenciaAplicar, CveConceptoContableAplciar, ConceptoAplicar, Now, IdCtaContableAplicar, -1, CveIE, CveVenta:=CveVentaDevDin, CveCliente:=CveCliente, ImporteMX:=ImporteAplicarMN, ImporteME:=ImporteAplicarME, PorcentajeImpuesto:=PorcentajeImpuesto) Then
MsgError = "Ocurrió un error al registrar el asiento de impuestos de devolución" MsgError = "Ocurrió un error al registrar el asiento de impuestos de devolución"
Exit Select Exit Select
End If End If
@@ -3276,7 +3277,7 @@ Partial Class Bancos_IE
ElseIf DdlTipoTransaccion.SelectedValue.ToEntero.Contiene(1) Then ElseIf DdlTipoTransaccion.SelectedValue.ToEntero.Contiene(1) Then
Archivo = New System.IO.FileInfo(String.Format("{0}Formatos/CHQ-{1}.rdlc", UsuarioActual.Empresa.Ruta, DdlCuenta.SelectedValue.ToEntero)) Archivo = New System.IO.FileInfo(String.Format("{0}Formatos/CHQ-{1}.rdlc", UsuarioActual.Empresa.Ruta, DdlCuenta.SelectedValue.ToEntero))
If Not Archivo.Exists Then If Not Archivo.Exists Then
Archivo = New System.IO.FileInfo(String.Format("{0}\Empresas\Grales\Formatos\CHQ.rdlc", AppDomain.CurrentDomain.BaseDirectory)) Archivo = New System.IO.FileInfo(String.Format("{0}\Empresas\Grales\Formatos\CHQ.rdlc", ModExtensiones.DirectorioBaseEmpresas))
End If End If
ElseIf DdlTipoTransaccion.SelectedValue.ToEntero.Contiene(6) And UsuarioActual.CveEmpresa = 72 Then ElseIf DdlTipoTransaccion.SelectedValue.ToEntero.Contiene(6) And UsuarioActual.CveEmpresa = 72 Then
Archivo = New System.IO.FileInfo(String.Format("{0}Formatos/ComprobanteEgreso.rdlc", UsuarioActual.Empresa.Ruta, DdlCuenta.SelectedValue.ToEntero)) Archivo = New System.IO.FileInfo(String.Format("{0}Formatos/ComprobanteEgreso.rdlc", UsuarioActual.Empresa.Ruta, DdlCuenta.SelectedValue.ToEntero))
@@ -4442,8 +4443,8 @@ Partial Class Bancos_IE
#Region " CARGAR - COMPROBANTE " #Region " CARGAR - COMPROBANTE "
Protected Sub BtnConfirmaComprobante_Click(sender As Object, e As EventArgs) Protected Sub BtnConfirmaComprobante_Click(sender As Object, e As EventArgs)
Dim DirectorioGuardar = String.Format("{0}Empresas\{1}\IE", Request.PhysicalApplicationPath, UsuarioActual.CveEmpresa) Dim DirectorioGuardar = String.Format("{0}Empresas\{1}\IE", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa)
Dim ArchivoTemporal = String.Format("{0}Empresas\{1}\Temp\{2}", Request.PhysicalApplicationPath, UsuarioActual.CveEmpresa, Session("FileUpload").ToString) Dim ArchivoTemporal = String.Format("{0}Empresas\{1}\Temp\{2}", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, Session("FileUpload").ToString)
If Session("FileUpload").ToString <> String.Empty AndAlso File.Exists(ArchivoTemporal) Then If Session("FileUpload").ToString <> String.Empty AndAlso File.Exists(ArchivoTemporal) Then
Dim Extension As String = Path.GetExtension(ArchivoTemporal) Dim Extension As String = Path.GetExtension(ArchivoTemporal)

View File

@@ -1598,8 +1598,8 @@ Partial Class Bancos_IE
#Region " CARGAR - COMPROBANTE " #Region " CARGAR - COMPROBANTE "
Protected Sub BtnConfirmaComprobante_Click(sender As Object, e As EventArgs) Protected Sub BtnConfirmaComprobante_Click(sender As Object, e As EventArgs)
Dim DirectorioGuardar = String.Format("{0}Empresas\{1}\IE", Request.PhysicalApplicationPath, UsuarioActual.CveEmpresa) Dim DirectorioGuardar = String.Format("{0}Empresas\{1}\IE", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa)
Dim ArchivoTemporal = String.Format("{0}Empresas\{1}\Temp\{2}", Request.PhysicalApplicationPath, UsuarioActual.CveEmpresa, Session("FileUpload").ToString) Dim ArchivoTemporal = String.Format("{0}Empresas\{1}\Temp\{2}", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, Session("FileUpload").ToString)
If Session("FileUpload").ToString <> String.Empty AndAlso File.Exists(ArchivoTemporal) Then If Session("FileUpload").ToString <> String.Empty AndAlso File.Exists(ArchivoTemporal) Then
Dim Extension As String = Path.GetExtension(ArchivoTemporal) Dim Extension As String = Path.GetExtension(ArchivoTemporal)

View File

@@ -571,7 +571,7 @@ public partial class Bancos_PagoAcreedor : ClsPaginas
if (!archivo.Exists) if (!archivo.Exists)
{ {
archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", AppDomain.CurrentDomain.BaseDirectory)); archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", ModExtensiones.DirectorioBaseEmpresas));
} }
} }
else if (DdlTipoTransaccion.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72) else if (DdlTipoTransaccion.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72)
@@ -845,7 +845,7 @@ public partial class Bancos_PagoAcreedor : ClsPaginas
if (!archivo.Exists) if (!archivo.Exists)
{ {
archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", AppDomain.CurrentDomain.BaseDirectory)); archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", ModExtensiones.DirectorioBaseEmpresas));
} }
} }
else if (DdlTipoTransanccionPrestamo.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72) else if (DdlTipoTransanccionPrestamo.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72)

View File

@@ -506,7 +506,7 @@ public partial class Bancos_PagoDeudor : ClsPaginas
if (!archivo.Exists) if (!archivo.Exists)
{ {
archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", AppDomain.CurrentDomain.BaseDirectory)); archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", ModExtensiones.DirectorioBaseEmpresas));
} }
} }
else if (DdlTipoTransaccionPrestamo.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72) else if (DdlTipoTransaccionPrestamo.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72)
@@ -908,7 +908,7 @@ public partial class Bancos_PagoDeudor : ClsPaginas
if (!archivo.Exists) if (!archivo.Exists)
{ {
archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", AppDomain.CurrentDomain.BaseDirectory)); archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", ModExtensiones.DirectorioBaseEmpresas));
} }
} }
else if (DdlTipoTransaccion.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72) else if (DdlTipoTransaccion.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72)

View File

@@ -410,7 +410,7 @@ public partial class Bancos_PrestamoPersonal : ClsPaginas
if (!archivo.Exists) if (!archivo.Exists)
{ {
archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", AppDomain.CurrentDomain.BaseDirectory)); archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", ModExtensiones.DirectorioBaseEmpresas));
} }
} }
else if (DdlTipoTransaccion.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72) else if (DdlTipoTransaccion.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72)
@@ -670,7 +670,7 @@ public partial class Bancos_PrestamoPersonal : ClsPaginas
if (!archivo.Exists) if (!archivo.Exists)
{ {
archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", AppDomain.CurrentDomain.BaseDirectory)); archivo = new System.IO.FileInfo(String.Format(@"{0}\Empresas\Grales\Formatos\CHQ.rdlc", ModExtensiones.DirectorioBaseEmpresas));
} }
} }
else if (DdlTipoTransanccionPrestamo.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72) else if (DdlTipoTransanccionPrestamo.SelectedValue.ToEntero().Contiene(6) && UsuarioActual.CveEmpresa == 72)

View File

@@ -134,7 +134,7 @@ Partial Class Ventas_RepRecuperacion
If DdlCuentaBancaria.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Cuenta Bancaria</b>: {0}", DdlCuentaBancaria.SelectedItem.Text) If DdlCuentaBancaria.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Cuenta Bancaria</b>: {0}", DdlCuentaBancaria.SelectedItem.Text)
Dim RutaPDF As String Dim RutaPDF As String
Dim Ruta As String = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\{UsuarioActual.CveEmpresa}\" Dim Ruta As String = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\{UsuarioActual.CveEmpresa}\"
RutaPDF = $"{Ruta}\Formatos\RepRecuperacion.rdlc" RutaPDF = $"{Ruta}\Formatos\RepRecuperacion.rdlc"
If Not File.Exists(RutaPDF) Then If Not File.Exists(RutaPDF) Then
RutaPDF = "Empresas/Grales/Formatos/RepRecuperacion.rdlc" RutaPDF = "Empresas/Grales/Formatos/RepRecuperacion.rdlc"

View File

@@ -193,7 +193,7 @@ Partial Class Ventas_RepRecuperacionDetalle
If DdlProveedorSucursal.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Proveedor Sucursal</b>: {0}", DdlProveedorSucursal.SelectedItem.Text) If DdlProveedorSucursal.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Proveedor Sucursal</b>: {0}", DdlProveedorSucursal.SelectedItem.Text)
Dim RutaPDF As String Dim RutaPDF As String
Dim Ruta As String = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\{UsuarioActual.CveEmpresa}\" Dim Ruta As String = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\{UsuarioActual.CveEmpresa}\"
RutaPDF = $"{Ruta}\Formatos\RepRecuperacionDetalle.rdlc" RutaPDF = $"{Ruta}\Formatos\RepRecuperacionDetalle.rdlc"
If Not File.Exists(RutaPDF) Then If Not File.Exists(RutaPDF) Then
RutaPDF = "Empresas/Grales/Formatos/RepRecuperacionDetalle.rdlc" RutaPDF = "Empresas/Grales/Formatos/RepRecuperacionDetalle.rdlc"

View File

@@ -141,7 +141,7 @@ Partial Class Bancos_Reportes
rv.LocalReport.DataSources.Clear() rv.LocalReport.DataSources.Clear()
rv.LocalReport.DataSources.Add(rds) rv.LocalReport.DataSources.Add(rds)
rv.LocalReport.DataSources.Add(rds2) rv.LocalReport.DataSources.Add(rds2)
rv.LocalReport.ReportPath = AppDomain.CurrentDomain.BaseDirectory & "Bancos\Reportes\rptChequeMovimientos.rdlc" rv.LocalReport.ReportPath = ModExtensiones.DirectorioBaseEmpresas & "Bancos\Reportes\rptChequeMovimientos.rdlc"
rv.LocalReport.Refresh() rv.LocalReport.Refresh()
Dim paramList As New List(Of ReportParameter) Dim paramList As New List(Of ReportParameter)

View File

@@ -64,7 +64,7 @@ Partial Class Bancos_Reportes
rv.LocalReport.DataSources.Clear() rv.LocalReport.DataSources.Clear()
rv.LocalReport.DataSources.Add(rds) rv.LocalReport.DataSources.Add(rds)
rv.LocalReport.DataSources.Add(rds2) rv.LocalReport.DataSources.Add(rds2)
rv.LocalReport.ReportPath = AppDomain.CurrentDomain.BaseDirectory & "Bancos\Reportes\rptChequeMovimientos.rdlc" rv.LocalReport.ReportPath = ModExtensiones.DirectorioBaseEmpresas & "Bancos\Reportes\rptChequeMovimientos.rdlc"
rv.LocalReport.Refresh() rv.LocalReport.Refresh()
Dim paramList As New List(Of ReportParameter) Dim paramList As New List(Of ReportParameter)

Binary file not shown.

Binary file not shown.

View File

@@ -1407,7 +1407,7 @@ public partial class CRM_Acercamiento : ClsPaginas
if ((CveArchivo > 0)) if ((CveArchivo > 0))
{ {
string NombreNuevo = string.Format("{0}{1}", CveArchivo, FileExtension); string NombreNuevo = string.Format("{0}{1}", CveArchivo, FileExtension);
string DirectorioNuevo = string.Format("{0}\\Empresas\\{1}\\Acercamientos\\{2}\\Imagenes\\", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa, CveAcercamiento); string DirectorioNuevo = string.Format("{0}\\Empresas\\{1}\\Acercamientos\\{2}\\Imagenes\\", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, CveAcercamiento);
if (!Directory.Exists(DirectorioNuevo)) if (!Directory.Exists(DirectorioNuevo))
{ {
Directory.CreateDirectory(DirectorioNuevo); Directory.CreateDirectory(DirectorioNuevo);

View File

@@ -28,6 +28,11 @@
<div class="titlefiltros caption"> <div class="titlefiltros caption">
<div class="row" style="margin-left: 10px;"> <div class="row" style="margin-left: 10px;">
<label class="col-md-1" id="Label1" runat="server" style="width: 120px; margin-top: 5px;">Tipo de proceso:</label>
<div class="col-md-2" id="Div1" runat="server">
<asp:DropDownList ID="DdlTipoProceso" runat="server" Width="100%" DataTextField="TipoProceso" DataValueField="CveTipoProceso" AppendDataBoundItems="true" Class="table-group-action-input form-control input-inline input-sm select2me" OnSelectedIndexChanged="DdlTipoProcesos_Change" AutoPostBack="true">
</asp:DropDownList>
</div>
<label class="col-md-1" id="LblDdlMedioCaptacion" runat="server" style="width: 120px; margin-top: 5px;">Medio Captación:</label> <label class="col-md-1" id="LblDdlMedioCaptacion" runat="server" style="width: 120px; margin-top: 5px;">Medio Captación:</label>
<div class="col-md-2" id="DivDdlMedioCaptacion" runat="server"> <div class="col-md-2" id="DivDdlMedioCaptacion" runat="server">
<asp:DropDownList ID="DdlMedioCaptacion" runat="server" Width="100%" DataTextField="MedioCaptacion" DataValueField="CveMedioCaptacion" AppendDataBoundItems="true" Class="table-group-action-input form-control input-inline input-sm select2me"> <asp:DropDownList ID="DdlMedioCaptacion" runat="server" Width="100%" DataTextField="MedioCaptacion" DataValueField="CveMedioCaptacion" AppendDataBoundItems="true" Class="table-group-action-input form-control input-inline input-sm select2me">

View File

@@ -29,6 +29,7 @@ public partial class CRM_CatEmpresasCRM : ClsPaginas
{ {
if (!IsPostBack) if (!IsPostBack)
{ {
CargaTipoProcesos();
CargaMediosCaptacion(); CargaMediosCaptacion();
CargaDatos(); CargaDatos();
} }
@@ -60,12 +61,22 @@ public partial class CRM_CatEmpresasCRM : ClsPaginas
if (ObjCRM.GetMedioCaptacion(UsuarioActual.CveEmpresa, 1)) if (ObjCRM.GetMedioCaptacion(UsuarioActual.CveEmpresa, 1))
{ {
DdlMedioCaptacion.DataSource = ObjCRM.DtResultados; DdlMedioCaptacion.DataSource = ObjCRM.DtResultados.FiltraParametros(String.Format("CveTipoProceso = {0}",DdlTipoProceso.SelectedValue));
DdlMedioCaptacion.DataBind(); DdlMedioCaptacion.DataBind();
DdlMedioCaptacion.Items.Insert(0, new ListItem("Todos ", "-1"));
} }
ObjCRM.Dispose(); ObjCRM.Dispose();
} }
protected void CargaTipoProcesos()
{
ClsCRM ObjCRM = new ClsCRM();
if (ObjCRM.GetTipoProceso(UsuarioActual.CveEmpresa))
{
DdlTipoProceso.DataSource = ObjCRM.DtResultados;
}
DdlTipoProceso.DataBind();
}
#endregion #endregion
#region "ACCIONES - GRIEDVIEW" #region "ACCIONES - GRIEDVIEW"
@@ -106,4 +117,11 @@ public partial class CRM_CatEmpresasCRM : ClsPaginas
} }
} }
#endregion #endregion
protected void DdlTipoProcesos_Change(Object sender, EventArgs e)
{
DdlMedioCaptacion.Items.Clear();
CargaMediosCaptacion();
UPFiltros.Update();
}
} }

View File

@@ -23,8 +23,8 @@
</li> </li>
</ContentTemplate> </ContentTemplate>
<Triggers> <Triggers>
<asp:PostBackTrigger ControlID="LnkImprimir"/> <asp:PostBackTrigger ControlID="LnkImprimir" />
<asp:PostBackTrigger ControlID="LnkImprimirExcel"/> <asp:PostBackTrigger ControlID="LnkImprimirExcel" />
</Triggers> </Triggers>
</asp:UpdatePanel> </asp:UpdatePanel>
</asp:Content> </asp:Content>
@@ -130,22 +130,24 @@
<div class="modal-body"> <div class="modal-body">
<div class="row"> <div class="row">
<div class="form-group col-md-6 form-md-line-input input-iconright"> <div class="form-group col-md-6 form-md-line-input input-iconright">
<asp:DropDownList ID="DdlTipoProceso" Width="100%" runat="server" DataTextField="TipoProceso" DataValueField="CveTipoProceso" AppendDataBoundItems="true" CssClass="form-control input-sm select2me"></asp:DropDownList> <asp:DropDownList ID="DdlTipoProceso" Width="100%" runat="server" DataTextField="TipoProceso" DataValueField="CveTipoProceso" AppendDataBoundItems="true" CssClass="form-control input-sm select2me" OnSelectedIndexChanged="DdlTipoProceso_Change" AutoPostBack="True"></asp:DropDownList>
<label for="<%=DdlTipoProceso.ClientID.ToString()%>">Tipo de Proceso:</label> <label for="<%=DdlTipoProceso.ClientID.ToString()%>">Tipo de Proceso:</label>
<asp:RequiredFieldValidator InitialValue="-1" ID="RfvTipoProceso" Display="None" ValidationGroup="VGGuardar" runat="server" ControlToValidate="DdlTipoProceso" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Tipo Proceso''</b> es necesario, por favor seleccione uno."></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VceTipoProceso" runat="server" HighlightCssClass="vco" TargetControlID="RfvTipoProceso" Width="350px"></ajax:ValidatorCalloutExtender>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="form-group col-md-6 form-md-line-input input-iconright"> <div class="form-group col-md-6 form-md-line-input input-iconright">
<asp:DropDownList ID="DdlTipoEtapa" Width="100%" runat="server" CssClass="form-control input-sm select2me"> <asp:DropDownList ID="DdlTipoEtapa" Width="100%" runat="server" CssClass="form-control input-sm select2me" DataValueField="CveTipoEtapa" DataTextField="TipoEtapa">
<asp:ListItem Value="1" Text="Inicial"></asp:ListItem> <%--<asp:ListItem Value="1" Text="Inicial"></asp:ListItem>
<asp:ListItem Value="2" Text="Proceso"></asp:ListItem> <asp:ListItem Value="2" Text="Proceso"></asp:ListItem>
<asp:ListItem Value="3" Text="Terminado"></asp:ListItem> <asp:ListItem Value="3" Text="Terminado"></asp:ListItem>
<asp:ListItem Value="4" Text="Cancelado"></asp:ListItem> <asp:ListItem Value="4" Text="Cancelado"></asp:ListItem>--%>
</asp:DropDownList> </asp:DropDownList>
<label for="<%=DdlTipoEtapa.ClientID.ToString()%>">Tipo de Etapa:</label> <label for="<%=DdlTipoEtapa.ClientID.ToString()%>">Tipo de Etapa:</label>
</div> </div>
<div runat="server" id="DivOrden" class="form-group col-md-6 form-md-line-input input-iconright"> <div runat="server" id="DivOrden" class="form-group col-md-6 form-md-line-input input-iconright">
<asp:DropDownList ID="DdlOrden" Width="100%" runat="server" DataTextField="Orden" DataValueField="Orden" AppendDataBoundItems="true" CssClass="form-control input-sm select2me"></asp:DropDownList> <asp:DropDownList ID="DdlOrden" Width="100%" runat="server" DataTextField="Orden" DataValueField="Orden" AppendDataBoundItems="true" CssClass="form-control input-sm select2me"></asp:DropDownList>
<label for="<%=DdlOrden.ClientID.ToString()%>">Orden:</label> <label for="<%=DdlOrden.ClientID.ToString()%>">Orden:</label>
</div> </div>

View File

@@ -87,7 +87,18 @@ public partial class CRM_CatEtapasProceso : ClsPaginas
ViewState["CveTipoEtapaSeleccionada"] = value; ViewState["CveTipoEtapaSeleccionada"] = value;
} }
} }
private DataTable DTEtapas
{
get
{
return (DataTable)ViewState["DTEtapas"];
}
set
{
ViewState["DTEtapas"] = value;
}
}
#endregion #endregion
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
@@ -96,6 +107,7 @@ public partial class CRM_CatEtapasProceso : ClsPaginas
{ {
CveTipoProcesoSeleccionado = -1; CveTipoProcesoSeleccionado = -1;
CveTipoEtapaSeleccionada = -1; CveTipoEtapaSeleccionada = -1;
cargaEtapas();
CargaTiposProceso(); CargaTiposProceso();
CargaDatos(-1); CargaDatos(-1);
} }
@@ -164,6 +176,23 @@ public partial class CRM_CatEtapasProceso : ClsPaginas
UPFiltros.Update(); UPFiltros.Update();
} }
protected void cargaEtapas()
{
DataTable Etapas = new DataTable();
Etapas.Columns.Add("CveTipoEtapa",typeof(int));
Etapas.Columns.Add("TipoEtapa", typeof(string));
Etapas.Rows.Add(1,"Inicial");
Etapas.Rows.Add(2, "Proceso");
Etapas.Rows.Add(3, "Terminado");
Etapas.Rows.Add(4, "Cancelado");
DTEtapas = Etapas;
DdlTipoEtapa.DataSource = Etapas;
DdlTipoEtapa.DataBind();
}
#endregion #endregion
#region "ACCIONES" #region "ACCIONES"
@@ -172,6 +201,7 @@ public partial class CRM_CatEtapasProceso : ClsPaginas
EsEditar = 0; EsEditar = 0;
limpiarCamposModal(); limpiarCamposModal();
DivOrden.Visible = false; DivOrden.Visible = false;
bloquearEtapasAnteriores(-1);
DdlTipoProceso.SelectedValueExist(CveTipoProcesoSeleccionado); DdlTipoProceso.SelectedValueExist(CveTipoProcesoSeleccionado);
DdlTipoEtapa.SelectedValueExist(CveTipoEtapaSeleccionada); DdlTipoEtapa.SelectedValueExist(CveTipoEtapaSeleccionada);
@@ -189,6 +219,7 @@ public partial class CRM_CatEtapasProceso : ClsPaginas
GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer); GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
bloquearEtapasAnteriores(GvRow.DataKey("CveTipoEtapa").ToEntero());
CveEtapaProceso = GvRow.DataKey("CveEtapaProceso").ToEntero(); CveEtapaProceso = GvRow.DataKey("CveEtapaProceso").ToEntero();
DdlTipoProceso.SelectedValueExist(GvRow.DataKey("CveTipoProceso")); DdlTipoProceso.SelectedValueExist(GvRow.DataKey("CveTipoProceso"));
DdlTipoEtapa.SelectedValueExist(GvRow.DataKey("CveTipoEtapa")); DdlTipoEtapa.SelectedValueExist(GvRow.DataKey("CveTipoEtapa"));
@@ -206,6 +237,28 @@ public partial class CRM_CatEtapasProceso : ClsPaginas
this.RegistraScript("$('#DivModal').modal();"); this.RegistraScript("$('#DivModal').modal();");
} }
private void bloquearEtapasAnteriores(int CveTipoEtapa)
{
DataTable EtapasAux = DTEtapas.Copy();
int indice = 0;
for(int i = 1;i < CveTipoEtapa; i++)
{
DataRow TipoEtapaRow = EtapasAux.Rows[indice];
int CveTipoEtapaAux = TipoEtapaRow["CveTipoEtapa"].ToEntero();
if(CveTipoEtapaAux == 2)
{
indice++;
}else
{
EtapasAux.Rows.Remove(TipoEtapaRow);
}
}
EtapasAux.AcceptChanges();
DdlTipoEtapa.DataSource = EtapasAux;
DdlTipoEtapa.DataBind();
}
private bool validarInicialTerminadoCancelado(int CveTipoEtapa) private bool validarInicialTerminadoCancelado(int CveTipoEtapa)
{ {
if (CveTipoEtapa == 2) if (CveTipoEtapa == 2)
@@ -230,10 +283,7 @@ public partial class CRM_CatEtapasProceso : ClsPaginas
int Orden = TmpDT.FiltraParametros(String.Format("CveTipoProceso = {0} AND CveEstatus = 1", CveTipoProceso)).Rows.Count + 1; int Orden = TmpDT.FiltraParametros(String.Format("CveTipoProceso = {0} AND CveEstatus = 1", CveTipoProceso)).Rows.Count + 1;
Boolean Estatus = ChkEstatus.Checked; Boolean Estatus = ChkEstatus.Checked;
int CveUsuarioIng = UsuarioActual.CveUsuario; int CveUsuarioIng = UsuarioActual.CveUsuario;
if (validarInicialTerminadoCancelado(CveTipoEtapa))
{
if (EsEditar == 0) if (EsEditar == 0)
{ {
if (ObjCRM.AddEtapaProceso(EtapaProceso, Descripcion, CveTipoEtapa, Orden, CveTipoProceso, UsuarioActual.CveEmpresa, CveUsuarioIng)) if (ObjCRM.AddEtapaProceso(EtapaProceso, Descripcion, CveTipoEtapa, Orden, CveTipoProceso, UsuarioActual.CveEmpresa, CveUsuarioIng))
@@ -250,10 +300,12 @@ public partial class CRM_CatEtapasProceso : ClsPaginas
Alert("La Etapa fue actualizada correctamente.", ModExtensiones.TipoMensaje.MsgInformacion); Alert("La Etapa fue actualizada correctamente.", ModExtensiones.TipoMensaje.MsgInformacion);
} }
} }
}else //if (validarInicialTerminadoCancelado(CveTipoEtapa))
{ //{
Alert(String.Format("No se pueden tener 2 etapas de tipo {0}",DdlTipoEtapa.SelectedItem),ModExtensiones.TipoMensaje.MsgAdvertencia); //}else
} //{
// Alert(String.Format("No se pueden tener 2 etapas de tipo {0}",DdlTipoEtapa.SelectedItem),ModExtensiones.TipoMensaje.MsgAdvertencia);
//}
// PRECARGAMOS LA SIGUIENTE ETAPA A AGREGAR CON LOS MISMA DATOS DE LA ETAPA QUE SE INSERTO // PRECARGAMOS LA SIGUIENTE ETAPA A AGREGAR CON LOS MISMA DATOS DE LA ETAPA QUE SE INSERTO
CveTipoProcesoSeleccionado = CveTipoProceso; CveTipoProcesoSeleccionado = CveTipoProceso;
@@ -366,4 +418,47 @@ public partial class CRM_CatEtapasProceso : ClsPaginas
ImprimirPDF("Empresas/Grales/Formatos/RepCatEtapasProceso.rdlc", TmpDT, param, "Report Cat Etapas Proceso", formato); ImprimirPDF("Empresas/Grales/Formatos/RepCatEtapasProceso.rdlc", TmpDT, param, "Report Cat Etapas Proceso", formato);
} }
protected void DdlTipoProceso_Change(Object sender,EventArgs e)
{
DataTable EtapasIterable = DTEtapas.Copy();
DataTable EtapasAux = DTEtapas.Copy();
int indice = 0;
foreach (DataRow EtapaRow in EtapasIterable.Rows)
{
int CveTipoEtapa = EtapaRow["CveTipoEtapa"].ToEntero();
if (CveTipoEtapa != 2)
{
int CantidadEtapas = TmpDT.FiltraParametros(String.Format("CveTipoProceso = {0} AND CveTipoEtapa = {1}",DdlTipoProceso.SelectedValue,EtapaRow["CveTipoEtapa"])).Rows.Count;
if(CantidadEtapas > 0)
{
EtapasAux.Rows.RemoveAt(indice);
}
}else
{
indice++;
}
}
//for (int i = 1; i < CveTipoEtapa; i++)
//{
// DataRow TipoEtapaRow = EtapasAux.Rows[indice];
// int CveTipoEtapaAux = TipoEtapaRow["CveTipoEtapa"].ToEntero();
// if (CveTipoEtapaAux == 2)
// {
// indice++;
// }
// else
// {
// EtapasAux.Rows.Remove(TipoEtapaRow);
// }
//}
EtapasAux.AcceptChanges();
DdlTipoEtapa.DataSource = EtapasAux;
DdlTipoEtapa.DataBind();
UPModal.Update();
}
} }

View File

@@ -95,6 +95,8 @@
<div class="form-group form-md-line-input input-iconright" id="DivTipoProceso" runat="server"> <div class="form-group form-md-line-input input-iconright" id="DivTipoProceso" runat="server">
<label runat="server" id="LblTipoProceso" for="<%= DdlTipoProceso.ClientID.ToString()%>">Tipo Proceso:</label><br /> <label runat="server" id="LblTipoProceso" for="<%= DdlTipoProceso.ClientID.ToString()%>">Tipo Proceso:</label><br />
<asp:DropDownList runat="server" ID="DdlTipoProceso" CssClass="form-control input-sm select2me" Width="50%" DataValueField="CveTipoProceso" DataTextField="TipoProceso"/> <asp:DropDownList runat="server" ID="DdlTipoProceso" CssClass="form-control input-sm select2me" Width="50%" DataValueField="CveTipoProceso" DataTextField="TipoProceso"/>
<asp:RequiredFieldValidator InitialValue="-1" ID="RfvTipoProceso" Display="None" ValidationGroup="VGGuardar" runat="server" ControlToValidate="DdlTipoProceso" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Tipo Proceso''</b> es necesario, por favor seleccione uno."></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VceTipoProceso" runat="server" HighlightCssClass="vco" TargetControlID="RfvTipoProceso" Width="350px"></ajax:ValidatorCalloutExtender>
</div> </div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">

View File

@@ -254,6 +254,6 @@ public partial class CRM_CatProbabilidadAcercamiento : ClsPaginas
param.Add(new ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)); param.Add(new ReportParameter("UsuarioImprimio", UsuarioActual.Nombre));
param.Add(new ReportParameter("FechaImpresion", DateTime.Now.ToString())); param.Add(new ReportParameter("FechaImpresion", DateTime.Now.ToString()));
ImprimirPDF("Empresas/Grales/Formatos/RepCatProbabilidadAcercamiento.rdlc", TmpDT, param, "Report Cat Etapas Proceso", formato); ImprimirPDF("Empresas/Grales/Formatos/RepCatProbabilidadAcercamiento.rdlc", TmpDT, param, "Report Cat Probabilidad Acercamiento", formato);
} }
} }

View File

@@ -72,6 +72,7 @@
<div class="form-group form-md-line-input input-iconright"> <div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtRFC" CssClass="form-control " runat="server" MaxLength="13"></asp:TextBox> <asp:TextBox ID="TxtRFC" CssClass="form-control " runat="server" MaxLength="13"></asp:TextBox>
<asp:RegularExpressionValidator ID="REVRFC" runat="server" CssClass="help-block errorimput" ValidationExpression="^([A-Z\d]){12,13}$" ControlToValidate="TxtRFC" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''RFC''</b> no es válido, por favor ingrése uno correcto." ValidationGroup="GrpGuardar"></asp:RegularExpressionValidator>
<asp:RequiredFieldValidator ID="RFVRFC" runat="server" ControlToValidate="TxtRFC" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''RFC''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator> <asp:RequiredFieldValidator ID="RFVRFC" runat="server" ControlToValidate="TxtRFC" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''RFC''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<label for="<%= TxtRFC.ClientID.ToString()%>">RFC:</label> <label for="<%= TxtRFC.ClientID.ToString()%>">RFC:</label>
<i></i> <i></i>
@@ -86,6 +87,11 @@
<i></i> <i></i>
</div> </div>
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlTipoPrceso2" runat="server" Width="50%" DataTextField="TipoProceso" DataValueField="CveTipoProceso" AppendDataBoundItems="true" Class="table-group-action-input form-control input-inline input-sm select2me" OnSelectedIndexChanged="DdlTipoProcesos_Change" AutoPostBack="true"/>
<label for="<%=DdlTipoPrceso2.ClientID.ToString()%>">Tipo Proceso:</label>
</div>
<div class="form-group form-md-line-input input-iconright"> <div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlMedioCaptacion" Width="50%" runat="server" DataTextField="MedioCaptacion" DataValueField="CveMedioCaptacion" AppendDataBoundItems="true" CssClass="form-control input-sm select2me"></asp:DropDownList> <asp:DropDownList ID="DdlMedioCaptacion" Width="50%" runat="server" DataTextField="MedioCaptacion" DataValueField="CveMedioCaptacion" AppendDataBoundItems="true" CssClass="form-control input-sm select2me"></asp:DropDownList>
<label for="<%=DdlMedioCaptacion.ClientID.ToString()%>">Medio de Captación:</label> <label for="<%=DdlMedioCaptacion.ClientID.ToString()%>">Medio de Captación:</label>
@@ -600,7 +606,7 @@
<asp:RequiredFieldValidator ID="RFVContacto" CssClass="help-block errorimput" runat="server" ControlToValidate="DdlContactoPrincipal" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Contacto''</b> es necesario." InitialValue="-1" ValidationGroup="VGAcercamiento"></asp:RequiredFieldValidator> <asp:RequiredFieldValidator ID="RFVContacto" CssClass="help-block errorimput" runat="server" ControlToValidate="DdlContactoPrincipal" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Contacto''</b> es necesario." InitialValue="-1" ValidationGroup="VGAcercamiento"></asp:RequiredFieldValidator>
</div> </div>
</div> </div>
<br />
<div class="row"> <div class="row">
<%--<div class="form-group col-md-6 form-md-line-input input-iconright"> <%--<div class="form-group col-md-6 form-md-line-input input-iconright">
<asp:DropDownList ID="DdlVendedor" runat="server" Width="100%" AppendDataBoundItems="true" DataTextField="Vendedor" DataValueField="CveVendedor" Class="form-control input-sm select2me"></asp:DropDownList> <asp:DropDownList ID="DdlVendedor" runat="server" Width="100%" AppendDataBoundItems="true" DataTextField="Vendedor" DataValueField="CveVendedor" Class="form-control input-sm select2me"></asp:DropDownList>
@@ -615,8 +621,10 @@
</div> </div>
<div class="form-group col-md-6 form-md-line-input input-iconright"> <div class="form-group col-md-6 form-md-line-input input-iconright">
<asp:DropDownList ID="DdlMedioCaptacionAcercamiento" runat="server" Width="100%" AppendDataBoundItems="true" DataTextField="MedioCaptacion" DataValueField="CveMedioCaptacion" Class="form-control input-sm select2me"></asp:DropDownList> <asp:DropDownList ID="DdlMedioCaptacionAcercamiento" CausesValidation="true" runat="server" Width="100%" AppendDataBoundItems="true" DataTextField="MedioCaptacion" DataValueField="CveMedioCaptacion" CssClass="form-control input-sm select2me"></asp:DropDownList>
<label for="<%= DdlMedioCaptacionAcercamiento.ClientID.ToString()%>">Medio de Captación:</label> <label for="<%= DdlMedioCaptacionAcercamiento.ClientID.ToString()%>" ><span style="color: #F3565D">*</span>Medio de Captación(depende de 'Proceso'):</label>
<asp:RequiredFieldValidator ID="RfvMedioCaptacionAcercamiento" CssClass="help-block errorimput" runat="server" ControlToValidate="DdlMedioCaptacionAcercamiento" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Medio Captación''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="VGAcercamiento"></asp:RequiredFieldValidator>
<%--<ajax:ValidatorCalloutExtender ID="VceMedioCaptacionAcercamiento" runat="server" HighlightCssClass="vco" TargetControlID="RfvMedioCaptacionAcercamiento" Width="350px"></ajax:ValidatorCalloutExtender>--%>
</div> </div>
</div> </div>

View File

@@ -225,6 +225,7 @@ public partial class CRM_EmpresaCRM : ClsPaginas
{ {
CreoCliente = false; CreoCliente = false;
RecuperaCve(); RecuperaCve();
CargaTipoProceso();
CargaMetodosCaptacion(); CargaMetodosCaptacion();
CargaVendedores(); CargaVendedores();
CargaSucursales(); CargaSucursales();
@@ -548,12 +549,22 @@ public partial class CRM_EmpresaCRM : ClsPaginas
CveContactoEditado = -1; CveContactoEditado = -1;
} }
protected void CargaTipoProceso()
{
ClsCRM ObjCRM = new ClsCRM();
if (ObjCRM.GetTipoProceso(UsuarioActual.CveEmpresa))
{
DdlTipoPrceso2.DataSource = ObjCRM.DtResultados;
}
DdlTipoPrceso2.DataBind();
}
protected void CargaMetodosCaptacion() protected void CargaMetodosCaptacion()
{ {
ClsCRM ObjCRM = new ClsCRM(); ClsCRM ObjCRM = new ClsCRM();
if (ObjCRM.GetMedioCaptacion(UsuarioActual.CveEmpresa, 1)) if (ObjCRM.GetMedioCaptacion(UsuarioActual.CveEmpresa, 1))
{ {
DdlMedioCaptacion.DataSource = ObjCRM.DtResultados; DdlMedioCaptacion.DataSource = ObjCRM.DtResultados.FiltraParametros(String.Format("CveTipoProceso = {0}", DdlTipoPrceso2.SelectedValue));
DdlMedioCaptacion.Items.Insert(0, new ListItem("Seleccione ", "-1")); DdlMedioCaptacion.Items.Insert(0, new ListItem("Seleccione ", "-1"));
DdlMedioCaptacionAcercamiento.Items.Clear(); DdlMedioCaptacionAcercamiento.Items.Clear();
DdlMedioCaptacionAcercamiento.DataSource = ObjCRM.DtResultados; DdlMedioCaptacionAcercamiento.DataSource = ObjCRM.DtResultados;
@@ -673,7 +684,14 @@ public partial class CRM_EmpresaCRM : ClsPaginas
DdlMedioCaptacionAcercamiento.Items.Clear(); DdlMedioCaptacionAcercamiento.Items.Clear();
DdlMedioCaptacionAcercamiento.DataSource = DtMedioCaptacion.FiltraParametros(String.Format("CveTipoProceso = {0}",DdlTipoProceso.SelectedValue.ToEntero())); DdlMedioCaptacionAcercamiento.DataSource = DtMedioCaptacion.FiltraParametros(String.Format("CveTipoProceso = {0}",DdlTipoProceso.SelectedValue.ToEntero()));
DdlMedioCaptacionAcercamiento.DataBind(); DdlMedioCaptacionAcercamiento.DataBind();
DdlMedioCaptacionAcercamiento.Items.Insert(0,new ListItem("Seleccione","-1")); if (DdlTipoProceso.SelectedValue != "-1")
{
DdlMedioCaptacionAcercamiento.Enabled = true;
}else
{
DdlMedioCaptacionAcercamiento.Items.Insert(0,new ListItem("Seleccione","-1"));
DdlMedioCaptacionAcercamiento.Enabled = false;
}
DdlProbabilidadAcercamiento.Items.Clear(); DdlProbabilidadAcercamiento.Items.Clear();
DdlProbabilidadAcercamiento.DataSource = DtProbabilidadAcercamiento.FiltraParametros(String.Format("CveTipoProceso = {0}", DdlTipoProceso.SelectedValue.ToEntero())); DdlProbabilidadAcercamiento.DataSource = DtProbabilidadAcercamiento.FiltraParametros(String.Format("CveTipoProceso = {0}", DdlTipoProceso.SelectedValue.ToEntero()));
@@ -1299,8 +1317,12 @@ public partial class CRM_EmpresaCRM : ClsPaginas
DdlTipoProceso.DataSource = ObjCRM.DtResultados; DdlTipoProceso.DataSource = ObjCRM.DtResultados;
if (ObjCRM.DtResultados.Rows.Count > 0) if (ObjCRM.DtResultados.Rows.Count > 0)
{
DdlTipoProceso.Items.Insert(0, new ListItem("Seleccione ", "-1")); DdlTipoProceso.Items.Insert(0, new ListItem("Seleccione ", "-1"));
DdlMedioCaptacionAcercamiento.Enabled = false;
}
DdlTipoProceso.DataBind(); DdlTipoProceso.DataBind();
} }
@@ -1402,8 +1424,14 @@ public partial class CRM_EmpresaCRM : ClsPaginas
int CveAcercamiento = -1; int CveAcercamiento = -1;
CveAcercamiento = ObjCRM.AddAcercamiento(CveEmpresaCRM, CveContactoPrincipal, CveTipoProceso, CveEtapaProcesoActual, CveVendedor, CveMedioCaptacion, CveRechazoMotivo, CveProbabilidadAcercamiento, if (ObjCRM.DtResultados.Rows.Count > 0)
FechaApertura, NombreAcercamiento, Descripcion, Importe, Comision, Prioridad, UsuarioActual.CveEmpresa, CveUsuarioIng); {
CveAcercamiento = ObjCRM.AddAcercamiento(CveEmpresaCRM, CveContactoPrincipal, CveTipoProceso, CveEtapaProcesoActual, CveVendedor, CveMedioCaptacion, CveRechazoMotivo, CveProbabilidadAcercamiento,
FechaApertura, NombreAcercamiento, Descripcion, Importe, Comision, Prioridad, UsuarioActual.CveEmpresa, CveUsuarioIng);
}else
{
Alert("No tiene Etapa Proceso con el Tipo Proceso seleccionado",ModExtensiones.TipoMensaje.MsgAdvertencia);
}
if (CveAcercamiento > 0) if (CveAcercamiento > 0)
{ {
@@ -1450,6 +1478,7 @@ public partial class CRM_EmpresaCRM : ClsPaginas
#region "PERMISOS" #region "PERMISOS"
protected void VerificaPermisos() protected void VerificaPermisos()
{ {
if (CveEmpresaCRM > 0) if (CveEmpresaCRM > 0)
{ {
if (!UsuarioActual.TienePermisoProceso(250)) if (!UsuarioActual.TienePermisoProceso(250))
@@ -1507,4 +1536,11 @@ public partial class CRM_EmpresaCRM : ClsPaginas
Mail.SendMail(ClsPaginas.EmpresaNotificaciones, correoVendedor, Asunto,body); Mail.SendMail(ClsPaginas.EmpresaNotificaciones, correoVendedor, Asunto,body);
} }
} }
protected void DdlTipoProcesos_Change(Object sender, EventArgs e)
{
DdlMedioCaptacion.Items.Clear();
CargaMetodosCaptacion();
UpDatos.Update();
}
} }

View File

@@ -17,10 +17,12 @@
.form-group.form-md-line-input .form-control { .form-group.form-md-line-input .form-control {
background-color: #fff; background-color: #fff;
} }
.GVRep tr td a{
display:block; .GVRep tr td a {
text-align:center; display: block;
text-align: center;
} }
#chartdiv { #chartdiv {
width: 100%; width: 100%;
height: 500px; height: 500px;
@@ -46,90 +48,96 @@
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server"> <asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="upDatosRepA" runat="server" UpdateMode="Conditional"> <asp:UpdatePanel ID="upDatosRepA" runat="server" UpdateMode="Conditional">
<ContentTemplate> <ContentTemplate>
<div class="Filtros"> <div class="Filtros portlet solid grey-cascade portlet-filter">
<div class="row"> <div class="row">
<div class="col-sm-3"> <div class="col-md-2" style="width: 85%">
<div class="form-group form-md-line-input input-iconright" > <div class="row">
<asp:DropDownList ID="DdlTipoProceso" runat="server" DataTextField="TipoProceso" DataValueField="CveTipoProceso" CssClass="form-control input-sm select2me Widthall" OnSelectedIndexChanged="DdlTipoProceso_Change" AutoPostBack="true" Width="100%"></asp:DropDownList> <div class="col-sm-3" style="width: 25%">
<asp:Label runat="server" Text="Proceso:" AssociatedControlID="DdlTipoProceso"></asp:Label> <div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlTipoProceso" runat="server" DataTextField="TipoProceso" DataValueField="CveTipoProceso" CssClass="form-control input-sm select2me Widthall" OnSelectedIndexChanged="DdlTipoProceso_Change" AutoPostBack="true" Width="100%"></asp:DropDownList>
<asp:Label runat="server" Text="Proceso:" AssociatedControlID="DdlTipoProceso"></asp:Label>
</div>
</div>
<div class="col-sm-3" style="width: 25%">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlVendedor" runat="server" DataTextField="Vendedor" DataValueField="CveVendedor" CssClass="form-control input-sm select2me Widthall" Width="100%"></asp:DropDownList>
<asp:Label runat="server" Text="Vendedor:" AssociatedControlID="DdlVendedor"></asp:Label>
</div>
</div>
<div class="col-sm-3" style="width: 25%">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlMedioCaptacion" runat="server" DataTextField="MedioCaptacion" DataValueField="CveMedioCaptacion" CssClass="form-control input-sm select2me Widthall" Width="100%"></asp:DropDownList>
<asp:Label runat="server" Text="Medio de Captación:" AssociatedControlID="DdlMedioCaptacion"></asp:Label>
</div>
</div>
<div class="col-md-2" style="width: 25%">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlProbabilidad" runat="server" DataTextField="ProbabilidadAcercamiento" DataValueField="CveProbabilidadAcercamiento" CssClass="form-control input-sm select2me Widthall" Width="100%"></asp:DropDownList>
<asp:Label runat="server" Text="Probabilidad:" AssociatedControlID="DdlProbabilidad"></asp:Label>
</div>
</div>
</div> </div>
</div> <div class="row">
<div class="col-sm-3">
<div class="form-group form-md-line-input input-iconright"> <div class="col-md-2" style="padding-left: 15px; width: 25%">
<asp:DropDownList ID="DdlVendedor" runat="server" DataTextField="Vendedor" DataValueField="CveVendedor" CssClass="form-control input-sm select2me Widthall" Width="100%"></asp:DropDownList> <div class="form-group form-md-line-input input-iconright" style="width: 100%">
<asp:Label runat="server" Text="Vendedor:" AssociatedControlID="DdlVendedor"></asp:Label> <asp:DropDownList ID="DdlGrupo1" runat="server" CssClass="form-control input-sm select2me Widthall" Width="100%">
</div> <asp:ListItem Value="1" Text="Vendedor" Selected="true"></asp:ListItem>
</div> <asp:ListItem Value="2" Text="Medio de Captación"></asp:ListItem>
<div class="col-sm-3"> <asp:ListItem Value="3" Text="Probabilidad de Acercamiento"></asp:ListItem>
<div class="form-group form-md-line-input input-iconright"> <asp:ListItem Value="4" Text="Fecha"></asp:ListItem>
<asp:DropDownList ID="DdlMedioCaptacion" runat="server" DataTextField="MedioCaptacion" DataValueField="CveMedioCaptacion" CssClass="form-control input-sm select2me Widthall" Width="100%"></asp:DropDownList> <asp:ListItem Value="5" Text="Sucursal"></asp:ListItem>
<asp:Label runat="server" Text="Medio de Captación:" AssociatedControlID="DdlMedioCaptacion"></asp:Label> </asp:DropDownList>
</div> <asp:Label runat="server" Text="Agrupado Por:" AssociatedControlID="DdlGrupo1"></asp:Label>
</div> </div>
<div class="col-md-2"> </div>
<div class="form-group form-md-line-input input-iconright"> <div class="col-md-3" style="display: none; width: 25%">
<asp:DropDownList ID="DdlProbabilidad" runat="server" DataTextField="ProbabilidadAcercamiento" DataValueField="CveProbabilidadAcercamiento" CssClass="form-control input-sm select2me Widthall" Width="100%"></asp:DropDownList> <div class="form-group form-md-line-input input-iconright" style="width: 100%">
<asp:Label runat="server" Text="Probabilidad:" AssociatedControlID="DdlProbabilidad"></asp:Label> <asp:DropDownList ID="DdlGrupo2" runat="server" CssClass="form-control input-sm select2me Widthall" Style="width: 100%">
</div> <asp:ListItem Value="-1" Text="Ninguno" Selected="True"></asp:ListItem>
</div> <asp:ListItem Value="1" Text="Vendedor"></asp:ListItem>
<div class="col-sm-1 text-right"> <asp:ListItem Value="2" Text="Medio Captacion"></asp:ListItem>
<br /> <asp:ListItem Value="3" Text="Probabilidad de Acercamiento"></asp:ListItem>
<asp:LinkButton ID="LnkConsultar" OnClick="LnkConsultar_Click" runat="server" CssClass="btn btn-default">Consultar</asp:LinkButton> <asp:ListItem Value="4" Text="Fecha"></asp:ListItem>
</div> <asp:ListItem Value="5" Text="Sucursal"></asp:ListItem>
</div> </asp:DropDownList>
<div class="row"> <asp:Label runat="server" Text="Agrupado Por(2):" AssociatedControlID="DdlGrupo2"></asp:Label>
</div>
</div>
<div class="col-md-2" style="width: 25%">
<div class="">
<asp:Label runat="server" Text="Fecha Inicio:" AssociatedControlID="TxtFechaInicio"></asp:Label>
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px; margin-bottom: -10px; padding-bottom: 10px;">
<asp:TextBox ID="TxtFechaInicio" runat="server" CssClass="form-control" CausesValidation="true" Width="98%" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgFechaInicio" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaSolicitudI" runat="server" TargetControlID="TxtFechaInicio" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaSolicitudI" TargetControlID="TxtFechaInicio" PopupButtonID="imgFechaInicio" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
</div>
<div class="col-md-2" style="width: 25%">
<div class="">
<asp:Label runat="server" Text="Fecha Fin:" AssociatedControlID="TxtFechaFin"></asp:Label>
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px; margin-bottom: -10px; padding-bottom: 10px;">
<asp:TextBox ID="TxtFechaFin" runat="server" CssClass="form-control" CausesValidation="true" Width="98%" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgFechaFin" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaSolicitudF" runat="server" TargetControlID="TxtFechaFin" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaSolicitudF" TargetControlID="TxtFechaFin" PopupButtonID="imgFechaFin" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
<div class="col-md-3">
<div class="form-group form-md-line-input input-iconright" style="width:100%">
<asp:DropDownList ID="DdlGrupo1" runat="server" CssClass="form-control input-sm select2me Widthall" Width="100%">
<asp:ListItem Value="1" Text="Vendedor" Selected="true"></asp:ListItem>
<asp:ListItem Value="2" Text="Medio de Captación"></asp:ListItem>
<asp:ListItem Value="3" Text="Probabilidad de Acercamiento"></asp:ListItem>
<asp:ListItem Value="4" Text="Fecha"></asp:ListItem>
<asp:ListItem Value="5" Text="Sucursal"></asp:ListItem>
</asp:DropDownList>
<asp:Label runat="server" Text="Agrupado Por:" AssociatedControlID="DdlGrupo1"></asp:Label>
</div>
</div>
<div class="col-md-3" style="display:none;">
<div class="form-group form-md-line-input input-iconright" style="width:100%">
<asp:DropDownList ID="DdlGrupo2" runat="server" CssClass="form-control input-sm select2me Widthall" style="width:100%">
<asp:ListItem Value="-1" Text="Ninguno" Selected="True"></asp:ListItem>
<asp:ListItem Value="1" Text="Vendedor"></asp:ListItem>
<asp:ListItem Value="2" Text="Medio Captacion"></asp:ListItem>
<asp:ListItem Value="3" Text="Probabilidad de Acercamiento"></asp:ListItem>
<asp:ListItem Value="4" Text="Fecha"></asp:ListItem>
<asp:ListItem Value="5" Text="Sucursal"></asp:ListItem>
</asp:DropDownList>
<asp:Label runat="server" Text="Agrupado Por(2):" AssociatedControlID="DdlGrupo2"></asp:Label>
</div>
</div>
<div class="col-md-2">
<div class="">
<asp:Label runat="server" Text="Fecha Inicio:" AssociatedControlID="TxtFechaInicio"></asp:Label>
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px; margin-bottom: -10px; padding-bottom: 10px;">
<asp:TextBox ID="TxtFechaInicio" runat="server" CssClass="form-control" CausesValidation="true" Width="98%" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgFechaInicio" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div> </div>
<ajax:MaskedEditExtender ID="MEEFechaSolicitudI" runat="server" TargetControlID="TxtFechaInicio" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaSolicitudI" TargetControlID="TxtFechaInicio" PopupButtonID="imgFechaInicio" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div> </div>
</div> </div>
<div class="col-md-2"> <div class="col-md-2" style="width: 138px">
<div class=""> <div class="col-sm-1 text-right" style="width: 138px">
<asp:Label runat="server" Text="Fecha Fin:" AssociatedControlID="TxtFechaFin"></asp:Label> <br />
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px; margin-bottom: -10px; padding-bottom: 10px;"> <asp:LinkButton ID="LnkConsultar" OnClick="LnkConsultar_Click" runat="server" CssClass="btn btn-default">Consultar</asp:LinkButton>
<asp:TextBox ID="TxtFechaFin" runat="server" CssClass="form-control" CausesValidation="true" Width="98%" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgFechaFin" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaSolicitudF" runat="server" TargetControlID="TxtFechaFin" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaSolicitudF" TargetControlID="TxtFechaFin" PopupButtonID="imgFechaFin" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@@ -185,13 +193,14 @@
</div> </div>
</asp:Content> </asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server"> <asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
<script src="https://www.amcharts.com/lib/3/amcharts.js"></script> <script src="https://www.amcharts.com/lib/3/amcharts.js"></script>
<script src="https://www.amcharts.com/lib/3/serial.js"></script> <script src="https://www.amcharts.com/lib/3/serial.js"></script>
<script src="https://www.amcharts.com/lib/3/pie.js"></script> <script src="https://www.amcharts.com/lib/3/pie.js"></script>
<script src="https://www.amcharts.com/lib/3/plugins/export/export.min.js"></script> <script src="https://www.amcharts.com/lib/3/plugins/export/export.min.js"></script>
<link rel="stylesheet" href="https://www.amcharts.com/lib/3/plugins/export/export.css" type="text/css" media="all" /> <link rel="stylesheet" href="https://www.amcharts.com/lib/3/plugins/export/export.css" type="text/css" media="all" />
<script src="https://www.amcharts.com/lib/3/themes/light.js"></script> <script src="https://www.amcharts.com/lib/3/themes/light.js"></script>
<script src="/Metronic/assets/global/scripts/datatable.js"></script>
<script src="/Metronic/assets/global/plugins/datatables/all.min.js"></script>
<script> <script>
function CargaGraficaBarras(data) { function CargaGraficaBarras(data) {

View File

@@ -5,7 +5,7 @@
<asp:Content ID="Content2" ContentPlaceHolderID="Css" Runat="Server"> <asp:Content ID="Content2" ContentPlaceHolderID="Css" Runat="Server">
</asp:Content> </asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" Runat="Server"> <asp:Content ID="Content3" ContentPlaceHolderID="E" Runat="Server">
Reporte Detaller de los Acercamientos Procesos Reporte Detalle de los Acercamientos Procesos
</asp:Content> </asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" Runat="Server"> <asp:Content ID="Content4" ContentPlaceHolderID="HB" Runat="Server">
</asp:Content> </asp:Content>

View File

@@ -467,7 +467,7 @@
<asp:ListItem Text="Flete" Value="4"></asp:ListItem> <asp:ListItem Text="Flete" Value="4"></asp:ListItem>
<asp:ListItem Text="Importación" Value="5"></asp:ListItem> <asp:ListItem Text="Importación" Value="5"></asp:ListItem>
<asp:ListItem Text="NC Con Productos" Value="6"></asp:ListItem> <asp:ListItem Text="NC Con Productos" Value="6"></asp:ListItem>
<asp:ListItem Text="Apoyo Logístico" Value="9"></asp:ListItem>
</asp:DropDownList> </asp:DropDownList>
</div> </div>
</div> </div>
@@ -2952,7 +2952,9 @@
<span class="caption-subject bold">Agregar</span> <span class="caption-subject bold">Agregar</span>
</div>--%> </div>--%>
<asp:HyperLink ID="ImgAddObs" CssClass="caption-subject bold" data-toggle="modal" data-target="#ModalBitacora" runat="server" Text=" <i class='fa fa-commenting font-green' style='font-weight: 700 !important;' ><span class='caption-subject bold'>Agregar</span></i>" Style="cursor: pointer;" ToolTip="Observaciones"></asp:HyperLink><br /> <asp:HyperLink ID="ImgAddObs" CssClass="caption-subject bold" data-toggle="modal" data-target="#ModalBitacora" runat="server" Text=" <i class='fa fa-commenting font-green' style='font-weight: 700 !important;' ><span class='caption-subject bold'>Agregar</span></i>" Style="cursor: pointer;" ToolTip="Observaciones"></asp:HyperLink><br />
<asp:HyperLink ID="HlEvento" CssClass="thickbox caption-subject bold" runat="server" Text=" <i class='fa fa-calendar-plus-o font-green' style='font-weight: 700 !important;' >Agendar</i>" Visible="false" Style="cursor: pointer;" ToolTip="Agendar"></asp:HyperLink> <asp:HyperLink ID="HlEvento" CssClass="thickbox caption-subject bold" runat="server" Text=" <i class='fa fa-calendar-plus-o font-green' style='font-weight: 700 !important;' >Agendar</i>" Visible="false" Style="cursor: pointer;" ToolTip="Agendar"></asp:HyperLink><br />
<asp:Literal ID="LtlTareaNueva" runat="server"></asp:Literal>
<UserControl:TareaNueva runat="server" id="TareaNueva" />
</div> </div>
</div> </div>

View File

@@ -1624,7 +1624,7 @@ Partial Class Compras_Compras
'LtlTareaNueva.Text = String.Format("<a class=""caption-subject bold font-green"" onclick=""OpenModalNewTareaUserControl(1,-1,{{CveCompra:{0}}});""> <i class=""fa fa-plus""'></i> Tarea</a>", CveCompra) LtlTareaNueva.Text = String.Format("<a class=""caption-subject bold font-green"" onclick=""OpenModalNewTareaUserControl(1,-1,{{CveCompra:{0}}});""> <i class=""fa fa-plus""'></i> Tarea</a>", CveCompra)
End If End If

View File

@@ -10,26 +10,46 @@ Imports System.Linq
Partial Class Compras_EvaluacionProveedor Partial Class Compras_EvaluacionProveedor
Inherits ClsPaginas Inherits ClsPaginas
#Region "P R O P I E D A D E S" #Region "P R O P I E D A D E S"
Private Property CveEvaluacionProveedor() As Integer Private Property CveEvaluacionProveedor() As Integer
Get
Return If(IsNothing(ViewState("CveEvaluacionProveedor")), -1, CInt(ViewState("CveEvaluacionProveedor"))) Return If(IsNothing(ViewState("CveEvaluacionProveedor")), -1, CInt(ViewState("CveEvaluacionProveedor")))
Return If(IsNothing(ViewState("CveEvaluacionProveedor")), -1, CInt(ViewState("CveEvaluacionProveedor"))) End Get
End Get Set
Set ViewState("CveEvaluacionProveedor") = Value
End Set
End Property
Private Property CveProveedor() As Integer
Get
Return If(IsNothing(ViewState("CveProveedor")), -1, CInt(ViewState("CveProveedor"))) Return If(IsNothing(ViewState("CveProveedor")), -1, CInt(ViewState("CveProveedor")))
End Set End Get
End Property Set
Private Property CveProveedor() As Integer ViewState("CveProveedor") = Value
End Set
End Property
Private Property CveCompra() As Integer
Get
Return If(IsNothing(ViewState("CveCompra")), -1, CInt(ViewState("CveCompra"))) Return If(IsNothing(ViewState("CveCompra")), -1, CInt(ViewState("CveCompra")))
Return If(IsNothing(ViewState("CveProveedor")), -1, CInt(ViewState("CveProveedor"))) End Get
End Get Set
Set ViewState("CveCompra") = Value
End Set
End Property
Private Property DtPreguntas() As DataTable
Get
Return If(IsNothing(ViewState("DtPreguntas")), New DataTable(), DirectCast(ViewState("DtPreguntas"), DataTable)) Return If(IsNothing(ViewState("DtPreguntas")), New DataTable(), DirectCast(ViewState("DtPreguntas"), DataTable))
End Set End Get
End Property Set
Private Property CveCompra() As Integer ViewState("DtPreguntas") = Value
End Set
End Property
Private Property CorreoEnvio() As String
Get
Return If(IsNothing(ViewState("CorreoEnvio")), "", ViewState("CorreoEnvio").ToString()) Return If(IsNothing(ViewState("CorreoEnvio")), "", ViewState("CorreoEnvio").ToString())
Return If(IsNothing(ViewState("CveCompra")), -1, CInt(ViewState("CveCompra"))) End Get
End Get Set
ViewState("CorreoEnvio") = Value
End Set
End Property
#End Region #End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then If Not IsPostBack Then
@@ -264,7 +284,7 @@ Partial Class Compras_EvaluacionProveedor
Dim archivoCarta As New ClsSisMail.ArchivoMail() Dim archivoCarta As New ClsSisMail.ArchivoMail()
archivoCarta.NombreArchivo = "Carta Evaluacion.pdf" archivoCarta.NombreArchivo = "Carta Evaluacion.pdf"
Try Try
Dim PathRoot As String = ModExtensiones.DirectorioBaseEmpresas
Dim Documento As String = "CartaProveedor.docx" Dim Documento As String = "CartaProveedor.docx"
Dim PathSource As String = $"{UsuarioActual.Empresa.Ruta}\Formatos\Plantillas\{Documento}" Dim PathSource As String = $"{UsuarioActual.Empresa.Ruta}\Formatos\Plantillas\{Documento}"
Dim PathDestino As String = PathRoot & "Temp\" & Now.Ticks & Documento Dim PathDestino As String = PathRoot & "Temp\" & Now.Ticks & Documento
@@ -298,7 +318,7 @@ Partial Class Compras_EvaluacionProveedor
Dim archivoCarta As New ClsSisMail.ArchivoMail() Dim archivoCarta As New ClsSisMail.ArchivoMail()
archivoCarta.NombreArchivo = "Formato Evaluacion Proveedor.pdf" archivoCarta.NombreArchivo = "Formato Evaluacion Proveedor.pdf"
Try Try
ObjCarta.GuardarStreamPDF() Dim PathRoot As String = ModExtensiones.DirectorioBaseEmpresas
Dim Documento As String = "FormatoEvaluacionProveedor.docx" Dim Documento As String = "FormatoEvaluacionProveedor.docx"
Dim PathSource As String = $"{UsuarioActual.Empresa.Ruta}\Formatos\Plantillas\{Documento}" Dim PathSource As String = $"{UsuarioActual.Empresa.Ruta}\Formatos\Plantillas\{Documento}"
Dim PathDestino As String = PathRoot & "Temp\" & Now.Ticks & Documento Dim PathDestino As String = PathRoot & "Temp\" & Now.Ticks & Documento

View File

@@ -68,7 +68,7 @@ Partial Class PopUpVerFactura
End Property End Property
Private ReadOnly Property Ruta As String Private ReadOnly Property Ruta As String
Get Get
Return AppDomain.CurrentDomain.BaseDirectory & "Empresas\" & UsuarioActual.CveEmpresa & "\" Return ModExtensiones.DirectorioBaseEmpresas & "Empresas\" & UsuarioActual.CveEmpresa & "\"
End Get End Get
End Property End Property
Private ReadOnly Property DomicilioFiscalCompu As String Private ReadOnly Property DomicilioFiscalCompu As String
@@ -130,6 +130,30 @@ Partial Class PopUpVerFactura
Dim Path As String = String.Format("{0}Ventas\{1}\{2}", UsuarioActual.Empresa.Ruta, Request("RFC"), Request("FileV")) Dim Path As String = String.Format("{0}Ventas\{1}\{2}", UsuarioActual.Empresa.Ruta, Request("RFC"), Request("FileV"))
Dim Archivo As New System.IO.FileInfo(Path) Dim Archivo As New System.IO.FileInfo(Path)
If Archivo.Exists Then
HttpContext.Current.Response.Clear()
HttpContext.Current.Response.ClearContent()
HttpContext.Current.Response.ContentType = If(IO.Path.GetExtension(Archivo.Name) = "xml", "application/xml", "application/pdf")
HttpContext.Current.Response.AppendHeader("Content-disposition", String.Format("attachment; filename={0}", Archivo.Name))
HttpContext.Current.Response.AddHeader("Content-Length", Archivo.Length.ToString())
HttpContext.Current.Response.TransmitFile(Path)
'HttpContext.Current.Response.Flush()
HttpContext.Current.Response.End()
End If
Archivo = Nothing
ElseIf Request("File") IsNot Nothing AndAlso Request("TipoDocto") IsNot Nothing AndAlso Request("TipoArchivo") IsNot Nothing Then
Dim Path As String = "" ' String.Format("{0}Ventas\{1}\{2}", UsuarioActual.Empresa.Ruta, Request("RFC"), Request("FileV"))
Select Case Request("TipoArchivo")
Case "PDF"
Path = String.Format("{0}PDF\{1}\{2}", UsuarioActual.Empresa.Ruta, Request("TipoDocto"), Request("File"))
Case "XML"
Path = String.Format("{0}XML\{1}\{2}", UsuarioActual.Empresa.Ruta, Request("TipoDocto"), Request("File"))
End Select
Dim Archivo As New System.IO.FileInfo(Path)
If Archivo.Exists Then If Archivo.Exists Then
HttpContext.Current.Response.Clear() HttpContext.Current.Response.Clear()
HttpContext.Current.Response.ClearContent() HttpContext.Current.Response.ClearContent()
@@ -165,6 +189,7 @@ Partial Class PopUpVerFactura
End If End If
'OPCIONES 'OPCIONES
If Request("P") IsNot Nothing AndAlso Decripta((Request("P").ToString)) <> "" Then If Request("P") IsNot Nothing AndAlso Decripta((Request("P").ToString)) <> "" Then
Dim UrlParametros As Hashtable = Parametros(Decripta((Request("P").ToString))) Dim UrlParametros As Hashtable = Parametros(Decripta((Request("P").ToString)))
If UrlParametros("OP") IsNot Nothing AndAlso UrlParametros("OP").ToString <> "" Then If UrlParametros("OP") IsNot Nothing AndAlso UrlParametros("OP").ToString <> "" Then
@@ -215,6 +240,12 @@ Partial Class PopUpVerFactura
#End Region #End Region
Private Sub SeleccionaReporte(UrlParametros As Hashtable) Private Sub SeleccionaReporte(UrlParametros As Hashtable)
'DESCARGA COMPROBANTE
If UrlParametros("OP").ToString = "IEComprobante" Then
DescargaComprobante(UrlParametros)
End If
'DESCARGA DOCUMENTO XML O PDF DE LA FACTURA COMPRA 'DESCARGA DOCUMENTO XML O PDF DE LA FACTURA COMPRA
If UrlParametros("OP").ToString = "Fact" Then If UrlParametros("OP").ToString = "Fact" Then
DescargaFactura(UrlParametros) DescargaFactura(UrlParametros)
@@ -499,6 +530,25 @@ Partial Class PopUpVerFactura
#End Region #End Region
#Region " OP = FACTURA - IMPRIME COMPRA" #Region " OP = FACTURA - IMPRIME COMPRA"
Private Sub DescargaComprobante(Parametros As Hashtable)
If Parametros("COMPROBANTE") IsNot Nothing Then
Dim Path As String = String.Format("{0}IE\{1}", UsuarioActual.Empresa.Ruta, Parametros("COMPROBANTE"))
Dim Archivo As New System.IO.FileInfo(Path)
If Archivo.Exists Then
HttpContext.Current.Response.Clear()
HttpContext.Current.Response.ClearContent()
HttpContext.Current.Response.ContentType = "application/octet-stream"
HttpContext.Current.Response.AppendHeader("Content-disposition", String.Format("attachment; filename={0}", Archivo.Name))
HttpContext.Current.Response.AddHeader("Content-Length", Archivo.Length.ToString())
HttpContext.Current.Response.TransmitFile(Path)
'HttpContext.Current.Response.Flush()
HttpContext.Current.Response.End()
End If
Archivo = Nothing
End If
End Sub
Private Sub DescargaFactura(Parametros As Hashtable) Private Sub DescargaFactura(Parametros As Hashtable)
If Parametros("CVEFACTURA") IsNot Nothing AndAlso Parametros("CVEFACTURA").ToString.ToEntero > 0 Then If Parametros("CVEFACTURA") IsNot Nothing AndAlso Parametros("CVEFACTURA").ToString.ToEntero > 0 Then
Dim Exten As String = If(Parametros("EXT").ToString.ToLower = "xml", "xml", "pdf") Dim Exten As String = If(Parametros("EXT").ToString.ToLower = "xml", "xml", "pdf")
@@ -3578,7 +3628,7 @@ Partial Class PopUpVerFactura
Dim SelloCancelacion = drv("SelloCancelacion").ToString Dim SelloCancelacion = drv("SelloCancelacion").ToString
Dim FechaCancelacion = drv("FechaCancelacion").ToString.ToDateTime.ToString("dd/MM/yyyy HH:mm:ss") Dim FechaCancelacion = drv("FechaCancelacion").ToString.ToDateTime.ToString("dd/MM/yyyy HH:mm:ss")
Dim RFC = UsuarioActual.Empresa.RFC Dim RFC = UsuarioActual.Empresa.RFC
Dim Archivo As New System.IO.FileInfo(String.Format("{0}Empresas\Grales\Formatos\AcuseCancelacion.rdlc", AppDomain.CurrentDomain.BaseDirectory)) Dim Archivo As New System.IO.FileInfo(String.Format("{0}Empresas\Grales\Formatos\AcuseCancelacion.rdlc", ModExtensiones.DirectorioBaseEmpresas))
Dim params As New List(Of ReportParameter) Dim params As New List(Of ReportParameter)
@@ -3888,7 +3938,7 @@ Partial Class PopUpVerFactura
' 04/05/2018 - Pruebas de impresion de factura PyME ' 04/05/2018 - Pruebas de impresion de factura PyME
Private Sub GeneraPDFVtaPyMe(Venta As Modelos.Factura, Optional Formato As String = "PDF") Private Sub GeneraPDFVtaPyMe(Venta As Modelos.Factura, Optional Formato As String = "PDF")
Dim Directorio1 As String = String.Format("{0}Empresas\{1}\Formatos\Factura.mrt", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa) Dim Directorio1 As String = String.Format("{0}Empresas\{1}\Formatos\Factura.mrt", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa)
Dim File As FileInfo = New FileInfo(Directorio1) Dim File As FileInfo = New FileInfo(Directorio1)
If File.Exists Then If File.Exists Then

View File

@@ -709,7 +709,7 @@ Partial Class Compras_Proveedores
Try Try
Dim dr As DataRow = ObjeFacturas.DtResultados.Rows(0) Dim dr As DataRow = ObjeFacturas.DtResultados.Rows(0)
XMLDoc.Load(AppDomain.CurrentDomain.BaseDirectory & "Empresas\" & dr("CveEmpresa").ToString & "\Compras\" & dr("RFCDe").ToString & "\" & dr("XML").ToString) XMLDoc.Load(ModExtensiones.DirectorioBaseEmpresas & "Empresas\" & dr("CveEmpresa").ToString & "\Compras\" & dr("RFCDe").ToString & "\" & dr("XML").ToString)
Dim Prefijo As String = If(XMLDoc.DocumentElement.Prefix = "", "cfd", XMLDoc.DocumentElement.Prefix) Dim Prefijo As String = If(XMLDoc.DocumentElement.Prefix = "", "cfd", XMLDoc.DocumentElement.Prefix)
Dim cfdVer As String = "http://www.sat.gob.mx/cfd/3" Dim cfdVer As String = "http://www.sat.gob.mx/cfd/3"
Dim namespaces As New XmlNamespaceManager(XMLDoc.NameTable) Dim namespaces As New XmlNamespaceManager(XMLDoc.NameTable)
@@ -2625,7 +2625,7 @@ Partial Class Compras_Proveedores
Dim filemove As String = "" Dim filemove As String = ""
For Each fileItem As Archivo In filesgral For Each fileItem As Archivo In filesgral
FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", ModExtensiones.DirectorioBaseEmpresas, fileItem.filename)).Replace(".", "")
filemove = fileItem.filename filemove = fileItem.filename
Next Next
@@ -2871,7 +2871,7 @@ Partial Class Compras_Proveedores
Try Try
FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", ModExtensiones.DirectorioBaseEmpresas, fileItem.filename)).Replace(".", "")
Dim tempArray() As String Dim tempArray() As String
tempArray = fileItem.filename.ToString().Split("-".ToCharArray()) tempArray = fileItem.filename.ToString().Split("-".ToCharArray())
@@ -3806,7 +3806,7 @@ Partial Class Compras_Proveedores
' ' 'Valida si existe el Formato Excel si no lo copea de "Grales" ' ' 'Valida si existe el Formato Excel si no lo copea de "Grales"
' ' If Not IO.File.Exists(String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Formato)) Then ' ' If Not IO.File.Exists(String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Formato)) Then
' ' IO.File.Copy(String.Format("{0}Empresas\Grales\ReporteCxP.xlsm", AppDomain.CurrentDomain.BaseDirectory), String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Formato), False) ' ' IO.File.Copy(String.Format("{0}Empresas\Grales\ReporteCxP.xlsm", ModExtensiones.DirectorioBaseEmpresas), String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Formato), False)
' ' End If ' ' End If
' ' Dim ArchivoBase As New System.IO.FileInfo(UsuarioActual.Empresa.Ruta & Formato) ' ' Dim ArchivoBase As New System.IO.FileInfo(UsuarioActual.Empresa.Ruta & Formato)
@@ -3931,7 +3931,7 @@ Partial Class Compras_Proveedores
' ' 'Valida si existe el Formato Excel si no lo copea de "Grales" ' ' 'Valida si existe el Formato Excel si no lo copea de "Grales"
' ' If Not IO.File.Exists(String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Formato)) Then ' ' If Not IO.File.Exists(String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Formato)) Then
' ' IO.File.Copy(String.Format("{0}Empresas\Grales\ReporteANC.xlsm", AppDomain.CurrentDomain.BaseDirectory), String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Formato), False) ' ' IO.File.Copy(String.Format("{0}Empresas\Grales\ReporteANC.xlsm", ModExtensiones.DirectorioBaseEmpresas), String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, Formato), False)
' ' End If ' ' End If
' ' Dim ArchivoBase As New System.IO.FileInfo(UsuarioActual.Empresa.Ruta & Formato) ' ' Dim ArchivoBase As New System.IO.FileInfo(UsuarioActual.Empresa.Ruta & Formato)
@@ -4512,7 +4512,7 @@ Partial Class Compras_Proveedores
Protected Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click Protected Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click
If TxtExcel.getfiles().Archivos.Count > 0 Then If TxtExcel.getfiles().Archivos.Count > 0 Then
Dim file As Archivo = TxtExcel.getfiles().Archivos(0) Dim file As Archivo = TxtExcel.getfiles().Archivos(0)
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & file.patch Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & file.patch
Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV") Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV")
CargarArchivo(Directorio, file.filename, Tipo) CargarArchivo(Directorio, file.filename, Tipo)
Else Else
@@ -4601,7 +4601,7 @@ Partial Class Compras_Proveedores
End Function End Function
Protected Sub BtnDescargar_Click(sender As Object, e As EventArgs) Handles BtnDescargar.Click Protected Sub BtnDescargar_Click(sender As Object, e As EventArgs) Handles BtnDescargar.Click
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\FormatoProveedores.xlsx" Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\FormatoProveedores.xlsx"
Dim Archivo As New IO.FileInfo(Directorio) Dim Archivo As New IO.FileInfo(Directorio)
If Archivo.Exists Then If Archivo.Exists Then
Response.Clear() Response.Clear()
@@ -5609,7 +5609,7 @@ Partial Class Compras_Proveedores
End Sub End Sub
Protected Sub DescargarFormatoCarta(Proveedor As String, Dia As String, Mes As String, Calificacion As String, Resultado As String) Protected Sub DescargarFormatoCarta(Proveedor As String, Dia As String, Mes As String, Calificacion As String, Resultado As String)
Try Try
Dim PathRoot As String = Server.MapPath("/") Dim PathRoot As String = ModExtensiones.DirectorioBaseEmpresas
Dim Documento As String = "CartaProveedor.docx" Dim Documento As String = "CartaProveedor.docx"
Dim PathSource As String = $"{UsuarioActual.Empresa.Ruta}\Formatos\Plantillas\{Documento}" Dim PathSource As String = $"{UsuarioActual.Empresa.Ruta}\Formatos\Plantillas\{Documento}"
Dim PathDestino As String = PathRoot & "Temp\" & Documento Dim PathDestino As String = PathRoot & "Temp\" & Documento
@@ -5632,7 +5632,7 @@ Partial Class Compras_Proveedores
End Sub End Sub
Protected Sub DescargarFormatoEvaluacion(Proveedor As String, Dia As String, Mes As String, Calificacion As String, Resultado As String) Protected Sub DescargarFormatoEvaluacion(Proveedor As String, Dia As String, Mes As String, Calificacion As String, Resultado As String)
Try Try
Dim PathRoot As String = Server.MapPath("/") Dim PathRoot As String = ModExtensiones.DirectorioBaseEmpresas
Dim Documento As String = "FormatoEvaluacionProveedor.docx" Dim Documento As String = "FormatoEvaluacionProveedor.docx"
Dim PathSource As String = $"{UsuarioActual.Empresa.Ruta}\Formatos\Plantillas\{Documento}" Dim PathSource As String = $"{UsuarioActual.Empresa.Ruta}\Formatos\Plantillas\{Documento}"
Dim PathDestino As String = PathRoot & "Temp\" & Documento Dim PathDestino As String = PathRoot & "Temp\" & Documento

View File

@@ -322,7 +322,7 @@ Partial Class Compras_RepComprasAFDetalle
Dim ObjTareas As New ClsOIEventos Dim ObjTareas As New ClsOIEventos
Dim RutaPDF As String Dim RutaPDF As String
Dim Ruta As String = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\{UsuarioActual.CveEmpresa}\" Dim Ruta As String = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\{UsuarioActual.CveEmpresa}\"
RutaPDF = $"{Ruta}\Formatos\RepComprasAFDetalle.rdlc" RutaPDF = $"{Ruta}\Formatos\RepComprasAFDetalle.rdlc"
If Not File.Exists(RutaPDF) Then If Not File.Exists(RutaPDF) Then
RutaPDF = "Empresas\Grales\Formatos\RepComprasAFDetalle.rdlc" RutaPDF = "Empresas\Grales\Formatos\RepComprasAFDetalle.rdlc"

View File

@@ -1,4 +1,11 @@
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using Extensiones;
using System.Data;
using static Extensiones.ModExtensiones;
using Microsoft.Reporting.WebForms; using Microsoft.Reporting.WebForms;
using System.Web.UI.HtmlControls; using System.Web.UI.HtmlControls;
using System.Text; using System.Text;
@@ -240,7 +247,7 @@ public partial class Compras_RepCxPPeriodo : ClsPaginas
StrFiltro.AppendFormat("&emsp;<b>Registro</b>: {0}", DdlUsuarioRegistro.SelectedItem.Text); StrFiltro.AppendFormat("&emsp;<b>Registro</b>: {0}", DdlUsuarioRegistro.SelectedItem.Text);
string RutaPDF = ""; string RutaPDF = "";
StrFiltro.AppendFormat("&emsp;<b>Estatus Compra</b>: {0}", DdlEstatusCompra.SelectedItem.Text); string Ruta = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas/{UsuarioActual.CveEmpresa}/";
RutaPDF = $"{Ruta}/Formatos/RepCxPPeriodo.rdlc"; RutaPDF = $"{Ruta}/Formatos/RepCxPPeriodo.rdlc";
if (!System.IO.File.Exists(RutaPDF)) if (!System.IO.File.Exists(RutaPDF))
{ {

View File

@@ -217,7 +217,7 @@ public partial class Compras_RepGastosFijos : ClsPaginas
string FechaInicio = DateTime.Parse(TxtFechaI.Text).ToShortDateString(); string FechaInicio = DateTime.Parse(TxtFechaI.Text).ToShortDateString();
string FechaFinal = DateTime.Parse(TxtFechaF.Text).ToShortDateString(); string FechaFinal = DateTime.Parse(TxtFechaF.Text).ToShortDateString();
string Ruta = string.Format("{0}Empresas/{1}/", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa); string Ruta = string.Format("{0}Empresas/{1}/", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa);
string RutaPDF = string.Format("{0}/Formatos/RepGastosFijos.rdlc", Ruta); string RutaPDF = string.Format("{0}/Formatos/RepGastosFijos.rdlc", Ruta);
if (!File.Exists(RutaPDF)) if (!File.Exists(RutaPDF))

View File

@@ -1,4 +1,11 @@
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using Extensiones;
using System.Data;
using static Extensiones.ModExtensiones;
using Microsoft.Reporting.WebForms; using Microsoft.Reporting.WebForms;
using System.Web.UI.HtmlControls; using System.Web.UI.HtmlControls;
using System.Text; using System.Text;
@@ -236,7 +243,7 @@ public partial class Compras_RepPagado : ClsPaginas
StrFiltro.AppendFormat("&emsp;<b>Moneda</b>: {0}", DdlMoneda.SelectedItem.Text); StrFiltro.AppendFormat("&emsp;<b>Moneda</b>: {0}", DdlMoneda.SelectedItem.Text);
string RutaPDF = ""; string RutaPDF = "";
StrFiltro.AppendFormat("&emsp;<b>Banco</b>: {0}", DdlBanco.SelectedItem.Text); string Ruta = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas/{UsuarioActual.CveEmpresa}/";
RutaPDF = $"{Ruta}/Formatos/RepRecuperacion.rdlc"; RutaPDF = $"{Ruta}/Formatos/RepRecuperacion.rdlc";
if (!System.IO.File.Exists(RutaPDF)) if (!System.IO.File.Exists(RutaPDF))
{ {

View File

@@ -1,4 +1,11 @@
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using Extensiones;
using System.Data;
using static Extensiones.ModExtensiones;
using Microsoft.Reporting.WebForms; using Microsoft.Reporting.WebForms;
using System.Web.UI.HtmlControls; using System.Web.UI.HtmlControls;
using System.Text; using System.Text;
@@ -267,7 +274,7 @@ public partial class Compras_RepPágadoDetalle : ClsPaginas
StrFiltro.AppendFormat("&emsp;<b>Moneda</b>: {0}", DdlMoneda.SelectedItem.Text); StrFiltro.AppendFormat("&emsp;<b>Moneda</b>: {0}", DdlMoneda.SelectedItem.Text);
string RutaPDF = ""; string RutaPDF = "";
StrFiltro.AppendFormat("&emsp;<b>Banco</b>: {0}", DdlBanco.SelectedItem.Text); string Ruta = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas/{UsuarioActual.CveEmpresa}/";
RutaPDF = $"{Ruta}/Formatos/RepPagadoDetalle.rdlc"; RutaPDF = $"{Ruta}/Formatos/RepPagadoDetalle.rdlc";
if (!System.IO.File.Exists(RutaPDF)) if (!System.IO.File.Exists(RutaPDF))
{ {

View File

@@ -1,4 +1,11 @@
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using Extensiones;
using System.Data;
using static Extensiones.ModExtensiones;
using Microsoft.Reporting.WebForms; using Microsoft.Reporting.WebForms;
using System.Web.UI.HtmlControls; using System.Web.UI.HtmlControls;
using System.Text; using System.Text;
@@ -285,7 +292,7 @@ public partial class Compras_RepPagadoPeriodo : ClsPaginas
StrFiltro.AppendFormat("&emsp;<b>Moneda</b>: {0}", DdlMoneda.SelectedItem.Text); StrFiltro.AppendFormat("&emsp;<b>Moneda</b>: {0}", DdlMoneda.SelectedItem.Text);
string RutaPDF = ""; string RutaPDF = "";
StrFiltro.AppendFormat("&emsp;<b>Banco</b>: {0}", DdlBanco.SelectedItem.Text); string Ruta = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas/{UsuarioActual.CveEmpresa}/";
RutaPDF = $"{Ruta}/Formatos/RepPagadoPeriodo.rdlc"; RutaPDF = $"{Ruta}/Formatos/RepPagadoPeriodo.rdlc";
if (!System.IO.File.Exists(RutaPDF)) if (!System.IO.File.Exists(RutaPDF))
{ {

View File

@@ -618,8 +618,8 @@ Partial Class Compras_eFacturas
txtFechaF.Text = Now.ToShortDateString 'txtFechaI.Text.ToDate.AddMonths(1).AddDays(-1).ToShortDateString txtFechaF.Text = Now.ToShortDateString 'txtFechaI.Text.ToDate.AddMonths(1).AddDays(-1).ToShortDateString
Destino = String.Format("{0}Compras\", UsuarioActual.Empresa.Ruta) 'string.format("{0}Empresas\{1}\Compras\", AppDomain.CurrentDomain.BaseDirectory ,UsuarioActual.CveEmpresa & "\Compras\" Destino = String.Format("{0}Compras\", UsuarioActual.Empresa.Ruta) 'string.format("{0}Empresas\{1}\Compras\", ModExtensiones.DirectorioBaseEmpresas ,UsuarioActual.CveEmpresa & "\Compras\"
Ejecutable = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Utilerias\ADSUtilerias.exe") Ejecutable = "C:\Proyectos\wwwSIG\Utilerias\ADSUtilerias.exe"
Form.DefaultButton = BtnConsultar.UniqueID Form.DefaultButton = BtnConsultar.UniqueID
DdlResponsable.DataSource = GlobalDTUsuarioResponsable.FiltraParametros(String.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa)) DdlResponsable.DataSource = GlobalDTUsuarioResponsable.FiltraParametros(String.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa))
@@ -1202,7 +1202,7 @@ Partial Class Compras_eFacturas
End Sub End Sub
Protected Sub LnkNoRecibidas_Click(sender As Object, e As EventArgs, Optional ValidaRowCount As Boolean = False) Handles LnkNoRecibias.Click Protected Sub LnkNoRecibidas_Click(sender As Object, e As EventArgs, Optional ValidaRowCount As Boolean = False) Handles LnkNoRecibias.Click
Dim DtNoRecibidas As New DataTable Dim DtNoRecibidas As New DataTable
Dim Ruta As String = String.Format("{0}\Empresas\{1}\Compras\NoRecibidas-{1}.xml", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa) Dim Ruta As String = String.Format("{0}\Empresas\{1}\Compras\NoRecibidas-{1}.xml", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa)
Dim Str As New StringBuilder Dim Str As New StringBuilder
If IO.File.Exists(Ruta) Then If IO.File.Exists(Ruta) Then
DtNoRecibidas.ReadXml(Ruta) DtNoRecibidas.ReadXml(Ruta)
@@ -1269,7 +1269,7 @@ Partial Class Compras_eFacturas
End If End If
ObjDatos.Dispose() ObjDatos.Dispose()
If DT IsNot Nothing Then If dt IsNot Nothing Then
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
@@ -1329,6 +1329,7 @@ Partial Class Compras_eFacturas
filemove = fileItem.filename filemove = fileItem.filename
If filemove <> "" Then If filemove <> "" Then
'filemove.FilesMove("", String.Format("{0}\Temp\Facturas", UsuarioActual.Empresa.Ruta))
filemove.FilesMove("", String.Format("Empresas\{0}\Temp\Facturas", UsuarioActual.CveEmpresa)) filemove.FilesMove("", String.Format("Empresas\{0}\Temp\Facturas", UsuarioActual.CveEmpresa))
'AGREGA XML A LA LISTA 'AGREGA XML A LA LISTA
If FileExtension.ToUpper = "XML" Then If FileExtension.ToUpper = "XML" Then
@@ -1339,7 +1340,7 @@ Partial Class Compras_eFacturas
Next Next
Dim fileEntries As String() = Directory.GetFiles(String.Format("{0}Empresas\{1}\Temp\Facturas", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa)) Dim fileEntries As String() = Directory.GetFiles(String.Format("{0}Empresas\{1}\Temp\Facturas", Extensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa))
Dim ListaDirectoriosTemporales As New List(Of String) Dim ListaDirectoriosTemporales As New List(Of String)
Dim ListaComprimidos As New List(Of String) Dim ListaComprimidos As New List(Of String)
@@ -1355,7 +1356,7 @@ Partial Class Compras_eFacturas
ListaComprimidos.Add(filePath) ListaComprimidos.Add(filePath)
'CREO DIRECTORIO ALEATORIO 'CREO DIRECTORIO ALEATORIO
Dim Aleatorio As New Random Dim Aleatorio As New Random
Dim TempDirectorio As String = String.Format("{0}Empresas\{1}\{2}\{3}{4}", Request.PhysicalApplicationPath, UsuarioActual.CveEmpresa, "Temp\Facturas", Date.Now.Ticks, Aleatorio.Next(100, 999)) Dim TempDirectorio As String = String.Format("{0}\{1}\{2}{3}", UsuarioActual.Empresa.Ruta, "Temp\Facturas", Date.Now.Ticks, Aleatorio.Next(100, 999))
Directory.CreateDirectory(TempDirectorio) Directory.CreateDirectory(TempDirectorio)
ListaDirectoriosTemporales.Add(TempDirectorio) ListaDirectoriosTemporales.Add(TempDirectorio)
'AGREGA DIRECTORIO A LA LISTA 'AGREGA DIRECTORIO A LA LISTA
@@ -1370,7 +1371,7 @@ Partial Class Compras_eFacturas
Next Next
Dim Arreglo As New ArrayList() Dim Arreglo As New ArrayList()
' Dim Archivos As String() = Directory.GetFiles(String.Format("{0}Empresas\{1}\Temp", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa)) ' Dim Archivos As String() = Directory.GetFiles(String.Format("{0}Empresas\{1}\Temp", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa))
'Dim NombreArchivo As String 'Dim NombreArchivo As String
Dim Bandera = True Dim Bandera = True
Dim Retorno = "" Dim Retorno = ""
@@ -1513,9 +1514,9 @@ Partial Class Compras_eFacturas
' If GeneraPDF(Fact.DirectorioTemporal, Fact) Then ' If GeneraPDF(Fact.DirectorioTemporal, Fact) Then
' ListPDF.Add(Fact.ArchivoPDF) ' ListPDF.Add(Fact.ArchivoPDF)
' Retorno = AgregaFactura(Fact) ' Retorno = AgregaFactura(Fact)
' ' ModExtensiones.GuardaLog("'*******se genero el pdf :" + String.Format("{0}Empresas\{1}\Temp", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa) + Fact.ArchivoXML + " RFC: " + tRF + " Anio" + Convert.ToDateTime(Fact.Fecha).Year + "Retorno:" + Retorno) ' ' ModExtensiones.GuardaLog("'*******se genero el pdf :" + String.Format("{0}Empresas\{1}\Temp", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa) + Fact.ArchivoXML + " RFC: " + tRF + " Anio" + Convert.ToDateTime(Fact.Fecha).Year + "Retorno:" + Retorno)
' Else ' Else
' ' ModExtensiones.GuardaLog("'*******no se genero el pdf :" + String.Format("{0}Empresas\{1}\Temp", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa) + Fact.ArchivoXML + " RFC: " + tRF + " Anio" + Convert.ToDateTime(Fact.Fecha).Year + "Retorno:" + Retorno) ' ' ModExtensiones.GuardaLog("'*******no se genero el pdf :" + String.Format("{0}Empresas\{1}\Temp", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa) + Fact.ArchivoXML + " RFC: " + tRF + " Anio" + Convert.ToDateTime(Fact.Fecha).Year + "Retorno:" + Retorno)
' End If ' End If
' End If ' End If
@@ -1549,7 +1550,7 @@ Partial Class Compras_eFacturas
' strLineaTMP = Chr(13) & Chr(10) & Day(Now) & "/" & Month(Now) & "/" & Year(Now) & " " & Hour(Now) & ":" & Minuto & ". " & Str & Chr(13) & Chr(10) ' strLineaTMP = Chr(13) & Chr(10) & Day(Now) & "/" & Month(Now) & "/" & Year(Now) & " " & Hour(Now) & ":" & Minuto & ". " & Str & Chr(13) & Chr(10)
strLineaTMP = String.Format("{0}{1}Log: {2}{3}:{4}", Chr(13), Chr(10), Str, DateTime.Now.ToShortDateString, DateTime.Now.ToShortTimeString) strLineaTMP = String.Format("{0}{1}Log: {2}{3}:{4}", Chr(13), Chr(10), Str, DateTime.Now.ToShortDateString, DateTime.Now.ToShortTimeString)
Try Try
ArchivoW = New StreamWriter(String.Format("{0}\Logefacturas.txt", AppDomain.CurrentDomain.BaseDirectory), True, System.Text.Encoding.UTF8) ArchivoW = New StreamWriter(String.Format("{0}\Logefacturas.txt", ModExtensiones.DirectorioBaseEmpresas), True, System.Text.Encoding.UTF8)
Catch ex As UnauthorizedAccessException Catch ex As UnauthorizedAccessException
'Alert("No hay permisos para guardar en el Log.", Extensiones.TipoMensaje.MsgError) 'Alert("No hay permisos para guardar en el Log.", Extensiones.TipoMensaje.MsgError)
Exit Sub Exit Sub
@@ -1650,7 +1651,7 @@ Partial Class Compras_eFacturas
DirectoryExistsCreate(String.Format("{0}Compras\{1}", UsuarioActual.Empresa.Ruta, RFC.ToUpper)) DirectoryExistsCreate(String.Format("{0}Compras\{1}", UsuarioActual.Empresa.Ruta, RFC.ToUpper))
Try Try
File.Move(PathArchivo, String.Format("{0}Empresas\{1}\Compras\{2}\{3}", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa, RFC.ToUpper, NombreArchivo)) File.Move(PathArchivo, String.Format("{0}Empresas\{1}\Compras\{2}\{3}", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, RFC.ToUpper, NombreArchivo))
Catch ex As Exception Catch ex As Exception
Alert("Error") Alert("Error")
End Try End Try
@@ -1668,11 +1669,11 @@ Partial Class Compras_eFacturas
For Each entry As ZipArchiveEntry In archive.Entries For Each entry As ZipArchiveEntry In archive.Entries
If entry.FullName.EndsWith(".xml", StringComparison.OrdinalIgnoreCase) Then If entry.FullName.EndsWith(".xml", StringComparison.OrdinalIgnoreCase) Then
'If File.Exists(String.Format("{0}Empresas\{1}\Temp\{2}\{3}", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa, Directorio, entry.Name)) Then 'If File.Exists(String.Format("{0}Empresas\{1}\Temp\{2}\{3}", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, Directorio, entry.Name)) Then
' File.Delete(String.Format("{0}Empresas\{1}\Temp\{2}\{3}", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa, Directorio, entry.Name)) ' File.Delete(String.Format("{0}Empresas\{1}\Temp\{2}\{3}", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, Directorio, entry.Name))
'End If 'End If
'entry.ExtractToFile(String.Format("{0}Empresas\{1}\Temp\{2}\{3}", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa, Directorio, entry.Name)) 'entry.ExtractToFile(String.Format("{0}Empresas\{1}\Temp\{2}\{3}", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, Directorio, entry.Name))
If File.Exists(String.Format("{0}\{1}", Directorio, entry.Name)) Then If File.Exists(String.Format("{0}\{1}", Directorio, entry.Name)) Then
File.Delete(String.Format("{0}\{1}", Directorio, entry.Name)) File.Delete(String.Format("{0}\{1}", Directorio, entry.Name))
@@ -2253,7 +2254,7 @@ Partial Class Compras_eFacturas
Dim Retorno = False Dim Retorno = False
Dim NombreArchivo As String = TmpArchivoPDF Dim NombreArchivo As String = TmpArchivoPDF
Dim CadenaOriginal As String = (Convert.ToString((Convert.ToString((Convert.ToString("||1.0|") & FolioFiscal) + "|" + FechaCertificacion.ToString("yyyy-MM-dd") + "T" + FechaCertificacion.ToString("HH:mm:ss") + "|") & SelloCFDi) + "|") & NoSerieCertificado) + "||" Dim CadenaOriginal As String = (Convert.ToString((Convert.ToString((Convert.ToString("||1.0|") & FolioFiscal) + "|" + FechaCertificacion.ToString("yyyy-MM-dd") + "T" + FechaCertificacion.ToString("HH:mm:ss") + "|") & SelloCFDi) + "|") & NoSerieCertificado) + "||"
Dim RutaFormato As String = String.Format("{0}Empresas\Grales\Formatos\CFDI.rdlc", AppDomain.CurrentDomain.BaseDirectory) Dim RutaFormato As String = String.Format("{0}Empresas\Grales\Formatos\CFDI.rdlc", ModExtensiones.DirectorioBaseEmpresas)
'Dim ArchivoTempXLS As String = String.Format("{0}\GenSis{1}-{2}", Path.GetDirectoryName(ArchivoBaseXLS), Now.Ticks, Path.GetFileName(ArchivoBaseXLS)) 'Dim ArchivoTempXLS As String = String.Format("{0}\GenSis{1}-{2}", Path.GetDirectoryName(ArchivoBaseXLS), Now.Ticks, Path.GetFileName(ArchivoBaseXLS))
Dim Fiscal As String = String.Format("Domicilio Fiscal {0}{1} {2}{0}Col.{3}{0}CP. {4} {5},{6},{7}", vbCr, DomFisCalle, DomFisNoExt, DomFisCol, DomFisCP, Dim Fiscal As String = String.Format("Domicilio Fiscal {0}{1} {2}{0}Col.{3}{0}CP. {4} {5},{6},{7}", vbCr, DomFisCalle, DomFisNoExt, DomFisCol, DomFisCP,
@@ -2415,8 +2416,8 @@ Partial Class Compras_eFacturas
'Dim ObjProcess As Process = Nothing 'Dim ObjProcess As Process = Nothing
'Dim Mensajes As String = "" 'Dim Mensajes As String = ""
'Dim EjecutableUtilerias = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Utilerias\UtileriasAD.exe") 'Dim EjecutableUtilerias = Path.Combine(ModExtensiones.DirectorioBaseEmpresas, "Utilerias\UtileriasAD.exe")
'Dim Folder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Empresas\") 'Dim Folder = Path.Combine(ModExtensiones.DirectorioBaseEmpresas, "Empresas\")
'Dim error1 As Boolean = False 'Dim error1 As Boolean = False
'Dim en As New CultureInfo("en-US") 'Dim en As New CultureInfo("en-US")
'Dim fechai = txtFechaI.Text.Trim.ToDate.ToString("d", en) 'Dim fechai = txtFechaI.Text.Trim.ToDate.ToString("d", en)
@@ -2445,8 +2446,8 @@ Partial Class Compras_eFacturas
'Private Sub ProcesaBuzon() 'Private Sub ProcesaBuzon()
' Dim ObjProcess As Process = Nothing ' Dim ObjProcess As Process = Nothing
' Dim Mensajes As String = "" ' Dim Mensajes As String = ""
' Dim EjecutableUtilerias = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Utilerias\ADSUtilerias.exe") ' Dim EjecutableUtilerias = Path.Combine(ModExtensiones.DirectorioBaseEmpresas, "Utilerias\ADSUtilerias.exe")
' Dim Folder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Empresas\") ' Dim Folder = Path.Combine(ModExtensiones.DirectorioBaseEmpresas, "Empresas\")
' Dim error1 As Boolean = False ' Dim error1 As Boolean = False
' Dim en As New CultureInfo("en-US") ' Dim en As New CultureInfo("en-US")
' Dim fechai = txtFechaI.Text.Trim.ToDate.ToString("d", en) ' Dim fechai = txtFechaI.Text.Trim.ToDate.ToString("d", en)
@@ -2603,17 +2604,50 @@ Partial Class Compras_eFacturas
End Set End Set
End Property End Property
Property DT_ComprasSinIE As DataTable
Get
If ViewState("DT_ComprasSinIE") Is Nothing Then
Return New DataTable
Else
Return DirectCast(ViewState("DT_ComprasSinIE"), DataTable)
End If
End Get
Set(value As DataTable)
ViewState("DT_ComprasSinIE") = value
End Set
End Property
'Property ComplementoComprasSinIE As String
' Get
' If ViewState("ComplementoComprasSinIE") Is Nothing Then
' Return ""
' Else
' Return ViewState("ComplementoComprasSinIE").ToString
' End If
' End Get
' Set(value As String)
' ViewState("ComplementoComprasSinIE") = value
' End Set
'End Property
#Region "V I N C U L A R P A G O" #Region "V I N C U L A R P A G O"
Protected Sub LnkAgregarPago_Click(sender As Object, e As EventArgs) Protected Sub LnkAgregarPago_Click(sender As Object, e As EventArgs)
Dim sbSinIE As New StringBuilder
HdnCveIE.Value = ""
MSGComplemento = "" MSGComplemento = ""
ViculacionConPUE = False ViculacionConPUE = False
ListaComprasPUE.Clear() ListaComprasPUE.Clear()
ComplementoConPUE = "" ComplementoConPUE = ""
DT_ComprasSinIE = New DataTable
Dim ListaComprasPUEInterna As New List(Of Integer) Dim ListaComprasPUEInterna As New List(Of Integer)
@@ -2646,7 +2680,7 @@ Partial Class Compras_eFacturas
Dim XMLDoc As New XmlDocument Dim XMLDoc As New XmlDocument
Dim Archivo As String = String.Format("{0}Empresas\{1}\Compras\{2}\{3}", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa, gvRow.DataKey("RFCDe"), gvRow.DataKey("XML")) Dim Archivo As String = String.Format("{0}Empresas\{1}\Compras\{2}\{3}", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, gvRow.DataKey("RFCDe"), gvRow.DataKey("XML"))
If IO.File.Exists(Archivo) Then If IO.File.Exists(Archivo) Then
@@ -2809,6 +2843,26 @@ Partial Class Compras_eFacturas
End If End If
Next Next
DT_ComprasSinIE.Columns.Add("CveCompra", GetType(Integer))
DT_ComprasSinIE.Columns.Add("CveFactura", GetType(Integer))
DT_ComprasSinIE.Columns.Add("SerieFolioPago")
DT_ComprasSinIE.Columns.Add("SerieFolioCompra")
For Each dRow As DataRow In DTDocumentosRelacionados.Rows
Dim nRow As DataRow = DT_ComprasSinIE.NewRow
nRow("CveCompra") = dRow("CveCompra").ToString.ToEntero
' nRow("CveFactura") = dRow("CveFactura").ToString.ToEntero
nRow("SerieFolioPago") = $"{SeriePago}-{FolioPago}"
nRow("SerieFolioCompra") = dRow("SerieFolioCompra").ToString
DT_ComprasSinIE.Rows.Add(nRow)
Next
Else Else
Alert("Ocurrió un error al cargar los archivos de complementos pago", TipoMensaje.MsgError) Alert("Ocurrió un error al cargar los archivos de complementos pago", TipoMensaje.MsgError)
End If End If
@@ -2876,6 +2930,12 @@ Partial Class Compras_eFacturas
ImporteIES = ObjCompras.DtResultados.FiltraParametros("CveIE > 0").SUM("Importe") ImporteIES = ObjCompras.DtResultados.FiltraParametros("CveIE > 0").SUM("Importe")
DiferenciaImportes = Monto - ImporteIES DiferenciaImportes = Monto - ImporteIES
ObjCompras.Dispose() ObjCompras.Dispose()
@@ -2962,19 +3022,25 @@ Partial Class Compras_eFacturas
If ViculacionConPUE Then If ViculacionConPUE Then
For Each CveCompraVinculada In ListaComprasPUE For Each CveCompraVinculada In ListaComprasPUE
objEventos.AddEventoBitacora($"Complemento { ComplementoConPUE } vinculado manualmente (Compra PUE) ", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra:=CveCompraVinculada) objEventos.AddEventoBitacora($"Complemento { ComplementoConPUE } vinculado manualmente (Compra PUE) ", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra:=CveCompraVinculada)
Next Next
End If
If HdnCveIE.Value.ToEntero > 0 Then
For Each dRow As DataRow In DT_ComprasSinIE.Rows
objEventos.AddEventoBitacora($"Complemento { dRow("SerieFolioPago").ToString } vinculado manualmente a compra {dRow("SerieFolioCompra").ToString}", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra:=dRow("CveCompra").ToString.ToEntero)
Next
End If End If
ObjCompra.Commit() ObjCompra.Commit()
Alert("El pago fue vinculado correctamente", TipoMensaje.MsgInformacion) Alert("El pago fue vinculado correctamente", TipoMensaje.MsgInformacion)
@@ -3079,7 +3145,7 @@ Partial Class Compras_eFacturas
Public Sub ImprimirPDFXML(NombreArchivo As String, rutaxml As String) Public Sub ImprimirPDFXML(NombreArchivo As String, rutaxml As String)
Dim objxml As XmlSatCFDI = XmlSatCFDI.readXML(rutaxml) Dim objxml As XmlSatCFDI = XmlSatCFDI.readXML(rutaxml)
Dim rutaReporte As String = String.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "\Empresas\Grales\Formatos\CFDIV3.rdlc") Dim rutaReporte As String = String.Format("{0}{1}", ModExtensiones.DirectorioBaseEmpresas, "\Empresas\Grales\Formatos\CFDIV3.rdlc")
Dim QR As ClbNegBICFDv3_2.ClsNegCBBGenerar = New ClbNegBICFDv3_2.ClsNegCBBGenerar() Dim QR As ClbNegBICFDv3_2.ClsNegCBBGenerar = New ClbNegBICFDv3_2.ClsNegCBBGenerar()
Dim cQr As Byte() = QR.GenerarCBBBytes(objxml.emisor.Rfc, objxml.receptor.Rfc, objxml.comprobante.Total, objxml.complemento.UUID) Dim cQr As Byte() = QR.GenerarCBBBytes(objxml.emisor.Rfc, objxml.receptor.Rfc, objxml.comprobante.Total, objxml.complemento.UUID)
Dim parametros As List(Of ReportParameter) = New List(Of ReportParameter)() Dim parametros As List(Of ReportParameter) = New List(Of ReportParameter)()
@@ -3177,7 +3243,7 @@ Partial Class Compras_eFacturas
Dim strRFCde As String = gvrow.DataKey("RFCde") Dim strRFCde As String = gvrow.DataKey("RFCde")
Dim strXml As String Dim strXml As String
Dim strPDF As String Dim strPDF As String
Dim dirbase As String = String.Format("{0}{1}{2}{3}{4}\", AppDomain.CurrentDomain.BaseDirectory, "\Empresas\", UsuarioActual.CveEmpresa, "\Compras\", strRFCde) Dim dirbase As String = String.Format("{0}{1}{2}{3}{4}\", ModExtensiones.DirectorioBaseEmpresas, "\Empresas\", UsuarioActual.CveEmpresa, "\Compras\", strRFCde)
If Directory.Exists(dirbase) Then If Directory.Exists(dirbase) Then
strXml = String.Format("{0}{1}", dirbase, gvrow.DataKey("XML")) strXml = String.Format("{0}{1}", dirbase, gvrow.DataKey("XML"))
strPDF = String.Format("{0}{1}", dirbase, gvrow.DataKey("PDF")) strPDF = String.Format("{0}{1}", dirbase, gvrow.DataKey("PDF"))
@@ -3212,7 +3278,7 @@ Partial Class Compras_eFacturas
Dim gvrow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim gvrow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
Dim strRFCde As String = gvrow.DataKey("RFCde") Dim strRFCde As String = gvrow.DataKey("RFCde")
Dim strPDF As String Dim strPDF As String
Dim dirbase As String = String.Format("{0}{1}{2}{3}{4}\", AppDomain.CurrentDomain.BaseDirectory, "\Empresas\", UsuarioActual.CveEmpresa, "\Compras\", strRFCde) Dim dirbase As String = String.Format("{0}{1}{2}{3}{4}\", ModExtensiones.DirectorioBaseEmpresas, "\Empresas\", UsuarioActual.CveEmpresa, "\Compras\", strRFCde)
strPDF = String.Format("{0}{1}", dirbase, gvrow.DataKey("PDF")) strPDF = String.Format("{0}{1}", dirbase, gvrow.DataKey("PDF"))
If File.Exists(strPDF) Then If File.Exists(strPDF) Then
Dim file As New System.IO.FileInfo(strPDF) Dim file As New System.IO.FileInfo(strPDF)
@@ -3236,7 +3302,7 @@ Partial Class Compras_eFacturas
Dim gvrow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim gvrow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
Dim strRFCde As String = gvrow.DataKey("RFCde") Dim strRFCde As String = gvrow.DataKey("RFCde")
Dim strXml As String Dim strXml As String
Dim dirbase As String = String.Format("{0}{1}{2}{3}{4}\", AppDomain.CurrentDomain.BaseDirectory, "\Empresas\", UsuarioActual.CveEmpresa, "\Compras\", strRFCde) Dim dirbase As String = String.Format("{0}{1}{2}{3}{4}\", ModExtensiones.DirectorioBaseEmpresas, "\Empresas\", UsuarioActual.CveEmpresa, "\Compras\", strRFCde)
strXml = String.Format("{0}{1}", dirbase, gvrow.DataKey("XML")) strXml = String.Format("{0}{1}", dirbase, gvrow.DataKey("XML"))
If File.Exists(strXml) Then If File.Exists(strXml) Then
Dim file As New System.IO.FileInfo(strXml) Dim file As New System.IO.FileInfo(strXml)
@@ -3260,9 +3326,9 @@ Partial Class Compras_eFacturas
Dim gvrow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim gvrow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
Dim objxml As XmlSatCFDI = XmlSatCFDI.readXML(String.Format("{0}{1}\{2}", Destino, gvrow.DataKey("RFCDe"), gvrow.DataKey("XML"))) Dim objxml As XmlSatCFDI = XmlSatCFDI.readXML(String.Format("{0}{1}\{2}", Destino, gvrow.DataKey("RFCDe"), gvrow.DataKey("XML")))
If Not IsNothing(objxml) Then If Not IsNothing(objxml) Then
Dim rutaReporte As String = String.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "\Empresas\Grales\Formatos\CFDIV3.rdlc") Dim rutaReporte As String = String.Format("{0}{1}", ModExtensiones.DirectorioBaseEmpresas, "\Empresas\Grales\Formatos\CFDIV3.rdlc")
If Not IsNothing(objxml.complemento.Pagos) Then If Not IsNothing(objxml.complemento.Pagos) Then
rutaReporte = String.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "\Empresas\Grales\Formatos\CFDIV3Pago.rdlc") rutaReporte = String.Format("{0}{1}", ModExtensiones.DirectorioBaseEmpresas, "\Empresas\Grales\Formatos\CFDIV3Pago.rdlc")
End If End If
Dim NombreArchivo As String = String.Format("{0}{1}\{2}", Destino, gvrow.DataKey("RFCDe"), gvrow.DataKey("PDF")) Dim NombreArchivo As String = String.Format("{0}{1}\{2}", Destino, gvrow.DataKey("RFCDe"), gvrow.DataKey("PDF"))

View File

@@ -644,11 +644,11 @@ Partial Class RegPoliza
' Excel.Visible = True ' Excel.Visible = True
' Excel.ScreenUpdating = True ' Excel.ScreenUpdating = True
' Excel.DisplayAlerts = True ' Excel.DisplayAlerts = True
' Dim ArchivoBase As New System.IO.FileInfo(AppDomain.CurrentDomain.BaseDirectory & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza.xlsm") ' Dim ArchivoBase As New System.IO.FileInfo(ModExtensiones.DirectorioBaseEmpresas & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza.xlsm")
' 'ArchivoBase.CopyTo(AppDomain.CurrentDomain.BaseDirectory & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza_" & LtlNumeroPoliza.Text.ToString() & ".xlsm", True) ' 'ArchivoBase.CopyTo(ModExtensiones.DirectorioBaseEmpresas & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza_" & LtlNumeroPoliza.Text.ToString() & ".xlsm", True)
' ArchivoBase.CopyTo(AppDomain.CurrentDomain.BaseDirectory & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza_" & TxtNumeroPoliza.Text.ToString() & ".xlsm", True) ' ArchivoBase.CopyTo(ModExtensiones.DirectorioBaseEmpresas & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza_" & TxtNumeroPoliza.Text.ToString() & ".xlsm", True)
' 'Dim ArchivoTemp As New System.IO.FileInfo(AppDomain.CurrentDomain.BaseDirectory & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza_" & LtlNumeroPoliza.Text.ToString() & ".xlsm") ' 'Dim ArchivoTemp As New System.IO.FileInfo(ModExtensiones.DirectorioBaseEmpresas & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza_" & LtlNumeroPoliza.Text.ToString() & ".xlsm")
' Dim ArchivoTemp As New System.IO.FileInfo(AppDomain.CurrentDomain.BaseDirectory & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza_" & TxtNumeroPoliza.Text.ToString() & ".xlsm") ' Dim ArchivoTemp As New System.IO.FileInfo(ModExtensiones.DirectorioBaseEmpresas & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza_" & TxtNumeroPoliza.Text.ToString() & ".xlsm")
' Dim Libro As msExcel.Workbook = Excel.Workbooks.Open(ArchivoTemp.FullName, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing) ' Dim Libro As msExcel.Workbook = Excel.Workbooks.Open(ArchivoTemp.FullName, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing)
' Libro.Activate() ' Libro.Activate()
@@ -698,8 +698,8 @@ Partial Class RegPoliza
' Hoja.Range("K" & CeldaF & ":K" & CeldaF).Value = TmpDT.SUM("Abono").FormatoNumero ' Hoja.Range("K" & CeldaF & ":K" & CeldaF).Value = TmpDT.SUM("Abono").FormatoNumero
' 'Exportar PDF ' 'Exportar PDF
' 'Dim pdfFileOut As String = AppDomain.CurrentDomain.BaseDirectory & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza_" & LtlNumeroPoliza.Text.ToString() & ".pdf" ' 'Dim pdfFileOut As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza_" & LtlNumeroPoliza.Text.ToString() & ".pdf"
' Dim pdfFileOut As String = AppDomain.CurrentDomain.BaseDirectory & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza_" & TxtNumeroPoliza.Text.ToString() & ".pdf" ' Dim pdfFileOut As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\" & UsuarioActual.CveEmpresa & "\Formatos\Poliza_" & TxtNumeroPoliza.Text.ToString() & ".pdf"
' Dim outputFileName As Object = pdfFileOut ' Dim outputFileName As Object = pdfFileOut
' Dim fileFormat As msExcel.XlFixedFormatType = msExcel.XlFixedFormatType.xlTypePDF ' Dim fileFormat As msExcel.XlFixedFormatType = msExcel.XlFixedFormatType.xlTypePDF
' Libro.ExportAsFixedFormat(fileFormat, outputFileName, missing, missing, missing, missing, missing, missing, missing) ' Libro.ExportAsFixedFormat(fileFormat, outputFileName, missing, missing, missing, missing, missing, missing, missing)
@@ -1742,7 +1742,7 @@ Partial Class RegPoliza
#Region "DESCARGAR E IMPRIMIR LISTADO" #Region "DESCARGAR E IMPRIMIR LISTADO"
Public Sub DescargarFormato() Public Sub DescargarFormato()
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\Formatos\FormatoRegPoliza.xlsx" Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\Formatos\FormatoRegPoliza.xlsx"
Dim Archivo As New IO.FileInfo(Directorio) Dim Archivo As New IO.FileInfo(Directorio)
If Archivo.Exists Then If Archivo.Exists Then
@@ -1878,7 +1878,7 @@ Partial Class RegPoliza
Private Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click Private Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click
If TxtExcel.getfiles().Archivos.Count > 0 Then If TxtExcel.getfiles().Archivos.Count > 0 Then
Dim file As Archivo = TxtExcel.getfiles().Archivos(0) Dim file As Archivo = TxtExcel.getfiles().Archivos(0)
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & file.patch Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & file.patch
Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb", "xls"), "EXCEL", "CSV") Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb", "xls"), "EXCEL", "CSV")
CargarArchivo(Directorio, file.filename, Tipo) CargarArchivo(Directorio, file.filename, Tipo)
Else Else

View File

@@ -185,7 +185,7 @@ Partial Class Contabilidad_RepBalanzaComprobacion
' Dim style As StringBuilder = New StringBuilder() ' Dim style As StringBuilder = New StringBuilder()
' style.Append("<style> ") ' style.Append("<style> ")
' style.Append(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory & "Styles\EstilosExcel.css")) ' style.Append(File.ReadAllText(ModExtensiones.DirectorioBaseEmpresas & "Styles\EstilosExcel.css"))
' style.Append(" </style> ") ' style.Append(" </style> ")
' 'To Export all pages ' 'To Export all pages
' 'Gv.AllowPaging = False ' 'Gv.AllowPaging = False

View File

@@ -192,7 +192,7 @@ Partial Class Contabilidad2_RepBalanzaComprobacion
' Dim style As StringBuilder = New StringBuilder() ' Dim style As StringBuilder = New StringBuilder()
' style.Append("<style> ") ' style.Append("<style> ")
' style.Append(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory & "Styles\EstilosExcel.css")) ' style.Append(File.ReadAllText(ModExtensiones.DirectorioBaseEmpresas & "Styles\EstilosExcel.css"))
' style.Append(" </style> ") ' style.Append(" </style> ")
' 'To Export all pages ' 'To Export all pages
' 'Gv.AllowPaging = False ' 'Gv.AllowPaging = False

View File

@@ -191,7 +191,7 @@ Partial Class Contabilidad2_RepBalanzaComprobacion
' Dim style As StringBuilder = New StringBuilder() ' Dim style As StringBuilder = New StringBuilder()
' style.Append("<style> ") ' style.Append("<style> ")
' style.Append(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory & "Styles\EstilosExcel.css")) ' style.Append(File.ReadAllText(ModExtensiones.DirectorioBaseEmpresas & "Styles\EstilosExcel.css"))
' style.Append(" </style> ") ' style.Append(" </style> ")
' 'To Export all pages ' 'To Export all pages
' 'Gv.AllowPaging = False ' 'Gv.AllowPaging = False

View File

@@ -312,7 +312,7 @@ Partial Class AC_RepVariacionHaciendaPublica
' Dim style As StringBuilder = New StringBuilder() ' Dim style As StringBuilder = New StringBuilder()
' style.Append("<style> ") ' style.Append("<style> ")
' style.Append(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory & "Styles\EstilosExcel.css")) ' style.Append(File.ReadAllText(ModExtensiones.DirectorioBaseEmpresas & "Styles\EstilosExcel.css"))
' style.Append(" </style> ") ' style.Append(" </style> ")
' 'To Export all pages ' 'To Export all pages
' 'Gv.AllowPaging = False ' 'Gv.AllowPaging = False

View File

@@ -211,7 +211,7 @@ Partial Class Contratos_CatContratosPlantillas
Return nombreArchivoFormateado Return nombreArchivoFormateado
End Function End Function
Protected Sub BtnDescargar_Click(sender As Object, e As EventArgs) Handles LbDescargar.Click Protected Sub BtnDescargar_Click(sender As Object, e As EventArgs) Handles LbDescargar.Click
Dim Path As String = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\Grales\Formatos\Plantilla.docx" Dim Path As String = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\Grales\Formatos\Plantilla.docx"
Dim Archivo As New System.IO.FileInfo(Path) Dim Archivo As New System.IO.FileInfo(Path)
If Archivo.Exists Then If Archivo.Exists Then

View File

@@ -1231,10 +1231,10 @@ Partial Class Contratos_Default
'Renombrar archivo 'Renombrar archivo
If ViewState("extencion") IsNot Nothing Then If ViewState("extencion") IsNot Nothing Then
If ViewState("FUrl").ToString.Length > 0 AndAlso ViewState("extencion").ToString.Length > 0 Then If ViewState("FUrl").ToString.Length > 0 AndAlso ViewState("extencion").ToString.Length > 0 Then
If Not Directory.Exists(Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Then If Not Directory.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Then
Directory.CreateDirectory(Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Directory.CreateDirectory(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos")
End If End If
Ruta = Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\" Ruta = ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\"
'ViewState("extencion") = FileExtension 'ViewState("extencion") = FileExtension
'ViewState("FUrl") = Path.Combine(UsuarioActual.Empresa.Ruta, "Contratos", "Temp", ViewState("FName").ToString) 'ViewState("FUrl") = Path.Combine(UsuarioActual.Empresa.Ruta, "Contratos", "Temp", ViewState("FName").ToString)
@@ -1368,10 +1368,10 @@ Partial Class Contratos_Default
If ViewState("extencion") IsNot Nothing Then If ViewState("extencion") IsNot Nothing Then
If ViewState("FUrl").ToString.Length > 0 AndAlso ViewState("extencion").ToString.Length > 0 Then If ViewState("FUrl").ToString.Length > 0 AndAlso ViewState("extencion").ToString.Length > 0 Then
If Not Directory.Exists(Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Then If Not Directory.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Then
Directory.CreateDirectory(Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Directory.CreateDirectory(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos")
End If End If
Ruta = Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\" Ruta = ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\"
Try Try
If File.Exists(String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString)) Then If File.Exists(String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString)) Then
@@ -3169,7 +3169,7 @@ Partial Class Contratos_Default
#Region "SUBIR EXCEL" #Region "SUBIR EXCEL"
Public Sub DescargarFormato() Public Sub DescargarFormato()
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\Formatos\FormatoContrato.xlsx" Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\Formatos\FormatoContrato.xlsx"
Dim Archivo As New IO.FileInfo(Directorio) Dim Archivo As New IO.FileInfo(Directorio)
If Archivo.Exists Then If Archivo.Exists Then
Response.Clear() Response.Clear()
@@ -3417,7 +3417,7 @@ Partial Class Contratos_Default
Private Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click Private Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click
If TxtExcel.getfiles().Archivos.Count > 0 Then If TxtExcel.getfiles().Archivos.Count > 0 Then
Dim file As Archivo = TxtExcel.getfiles().Archivos(0) Dim file As Archivo = TxtExcel.getfiles().Archivos(0)
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & file.patch Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & file.patch
Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV") Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV")
CargarArchivo(Directorio, file.filename, Tipo) CargarArchivo(Directorio, file.filename, Tipo)
Else Else
@@ -3741,7 +3741,7 @@ Partial Class Contratos_Default
#Region " IMPRIMIR DOCUMENTO - SABE " #Region " IMPRIMIR DOCUMENTO - SABE "
Public Sub DescarFormato(documento As String) Public Sub DescarFormato(documento As String)
Dim PathRoot As String = Server.MapPath("/") Dim PathRoot As String = ModExtensiones.DirectorioBaseEmpresas
Dim PathSource As String Dim PathSource As String
Dim pathDesti As String Dim pathDesti As String

View File

@@ -597,10 +597,10 @@ Partial Class Contratos_Default
'Renombrar archivo 'Renombrar archivo
If ViewState("extencion") IsNot Nothing Then If ViewState("extencion") IsNot Nothing Then
If ViewState("FUrl").ToString.Length > 0 AndAlso ViewState("extencion").ToString.Length > 0 Then If ViewState("FUrl").ToString.Length > 0 AndAlso ViewState("extencion").ToString.Length > 0 Then
If Not Directory.Exists(Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Then If Not Directory.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Then
Directory.CreateDirectory(Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Directory.CreateDirectory(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos")
End If End If
Ruta = Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\" Ruta = ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\"
'ViewState("extencion") = FileExtension 'ViewState("extencion") = FileExtension
'ViewState("FUrl") = Path.Combine(UsuarioActual.Empresa.Ruta, "Contratos", "Temp", ViewState("FName").ToString) 'ViewState("FUrl") = Path.Combine(UsuarioActual.Empresa.Ruta, "Contratos", "Temp", ViewState("FName").ToString)
@@ -643,10 +643,10 @@ Partial Class Contratos_Default
If ViewState("extencion") IsNot Nothing Then If ViewState("extencion") IsNot Nothing Then
If ViewState("FUrl").ToString.Length > 0 AndAlso ViewState("extencion").ToString.Length > 0 Then If ViewState("FUrl").ToString.Length > 0 AndAlso ViewState("extencion").ToString.Length > 0 Then
If Not Directory.Exists(Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Then If Not Directory.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Then
Directory.CreateDirectory(Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Directory.CreateDirectory(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos")
End If End If
Ruta = Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\" Ruta = ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\"
Try Try
If File.Exists(String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString)) Then If File.Exists(String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString)) Then
@@ -801,10 +801,10 @@ Partial Class Contratos_Default
'Protected Sub CargarArchivo(ByVal sender As Object, ByVal e As AjaxControlToolkit.AsyncFileUploadEventArgs) Handles AFU.UploadedComplete 'Protected Sub CargarArchivo(ByVal sender As Object, ByVal e As AjaxControlToolkit.AsyncFileUploadEventArgs) Handles AFU.UploadedComplete
' If AFU.HasFile Then ' If AFU.HasFile Then
' If Not Directory.Exists(Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Temp") Then ' If Not Directory.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Temp") Then
' Directory.CreateDirectory(Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Temp") ' Directory.CreateDirectory(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Temp")
' End If ' End If
' Dim UploadFolder As String = Request.PhysicalApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Temp\" ' Dim UploadFolder As String = ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Temp\"
' Dim Extension As String = System.IO.Path.GetExtension(AFU.PostedFile.FileName) ' Dim Extension As String = System.IO.Path.GetExtension(AFU.PostedFile.FileName)
' If System.IO.File.Exists(UploadFolder & UsuarioActual.CveUsuario.ToString & Extension) Then ' If System.IO.File.Exists(UploadFolder & UsuarioActual.CveUsuario.ToString & Extension) Then
@@ -1946,7 +1946,7 @@ Partial Class Contratos_Default
#Region "SUBIR EXCEL" #Region "SUBIR EXCEL"
Public Sub DescargarFormato() Public Sub DescargarFormato()
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\Formatos\FormatoContrato.xlsx" Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\Formatos\FormatoContrato.xlsx"
Dim Archivo As New IO.FileInfo(Directorio) Dim Archivo As New IO.FileInfo(Directorio)
If Archivo.Exists Then If Archivo.Exists Then
Response.Clear() Response.Clear()
@@ -2143,7 +2143,7 @@ Partial Class Contratos_Default
Private Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click Private Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click
If TxtExcel.getfiles().Archivos.Count > 0 Then If TxtExcel.getfiles().Archivos.Count > 0 Then
Dim file As Archivo = TxtExcel.getfiles().Archivos(0) Dim file As Archivo = TxtExcel.getfiles().Archivos(0)
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & file.patch Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & file.patch
Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV") Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV")
CargarArchivo(Directorio, file.filename, Tipo) CargarArchivo(Directorio, file.filename, Tipo)
Else Else

View File

@@ -442,7 +442,7 @@ Partial Class Contratos_ContratosSecciones
dbLayer = Mapa.AddLayer(AppDomain.CurrentDomain.BaseDirectory & "GIS\Carretera.tab") dbLayer = Mapa.AddLayer(ModExtensiones.DirectorioBaseEmpresas & "GIS\Carretera.tab")
If dbLayer IsNot Nothing AndAlso DtDatos IsNot Nothing Then If dbLayer IsNot Nothing AndAlso DtDatos IsNot Nothing Then
If (Not dbLayer.AddRelate("ID_GIS", DtDatos, "ID_GIS")) Then If (Not dbLayer.AddRelate("ID_GIS", DtDatos, "ID_GIS")) Then

View File

@@ -1,4 +1,11 @@
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using Extensiones;
using System.Data;
using static Extensiones.ModExtensiones;
using Microsoft.Reporting.WebForms; using Microsoft.Reporting.WebForms;
using System.Web.UI.HtmlControls; using System.Web.UI.HtmlControls;
using System.Text; using System.Text;
@@ -280,7 +287,7 @@ public partial class CxC_RepCxCPeriodo : ClsPaginas
StrFiltro.AppendFormat("&emsp;<b>Clasificación Cliente</b>: {0}", DdlClienteClasificacion.SelectedItem.Text); StrFiltro.AppendFormat("&emsp;<b>Clasificación Cliente</b>: {0}", DdlClienteClasificacion.SelectedItem.Text);
string RutaPDF = ""; string RutaPDF = "";
StrFiltro.AppendFormat("&emsp;<b>Estatus Cobranza</b>: {0}", DdlCobranzaEstatus.SelectedItem.Text); string Ruta = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas/{UsuarioActual.CveEmpresa}/";
RutaPDF = $"{Ruta}/Formatos/RepCxCPeriodo.rdlc"; RutaPDF = $"{Ruta}/Formatos/RepCxCPeriodo.rdlc";
if (!System.IO.File.Exists(RutaPDF)) if (!System.IO.File.Exists(RutaPDF))
{ {

View File

@@ -1157,6 +1157,20 @@
<FontWeight>Bold</FontWeight> <FontWeight>Bold</FontWeight>
</Style> </Style>
</TextRun> </TextRun>
<TextRun>
<Value xml:space="preserve"> </Value>
<Style>
<FontFamily>calibri</FontFamily>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
<TextRun>
<Value>=iif(Parameters!Kilometraje.Value = "-1", "","Kilometraje: "&amp; Parameters!Kilometraje.Value)</Value>
<Style>
<FontFamily>calibri</FontFamily>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns> </TextRuns>
<Style /> <Style />
</Paragraph> </Paragraph>
@@ -1867,10 +1881,13 @@
</Paragraphs> </Paragraphs>
<rd:DefaultName>Textbox4</rd:DefaultName> <rd:DefaultName>Textbox4</rd:DefaultName>
<Top>6.7641cm</Top> <Top>6.7641cm</Top>
<Left>3.33321cm</Left> <Left>1.68221cm</Left>
<Height>1.05328cm</Height> <Height>1.05328cm</Height>
<Width>17.71415cm</Width> <Width>17.71415cm</Width>
<ZIndex>14</ZIndex> <ZIndex>14</ZIndex>
<Visibility>
<Hidden>=IIF((Sum(IIF(Fields!CveClasificacion.Value = 20345,1,0), "DsOC") &gt; 0),false,true)</Hidden>
</Visibility>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -3514,6 +3531,12 @@
<AllowBlank>true</AllowBlank> <AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt> <Prompt>ReportParameter1</Prompt>
</ReportParameter> </ReportParameter>
<ReportParameter Name="Kilometraje">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
</ReportParameters> </ReportParameters>
<EmbeddedImages> <EmbeddedImages>
<EmbeddedImage Name="ID2"> <EmbeddedImage Name="ID2">

View File

@@ -2253,104 +2253,6 @@
<PaddingBottom>2pt</PaddingBottom> <PaddingBottom>2pt</PaddingBottom>
</Style> </Style>
</Textbox> </Textbox>
<Image Name="Image2">
<Source>Embedded</Source>
<Value>ID5</Value>
<Sizing>FitProportional</Sizing>
<Top>11.06748cm</Top>
<Left>0.28014cm</Left>
<Height>0.96488cm</Height>
<Width>3.75909cm</Width>
<ZIndex>17</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
<Textbox Name="Textbox47">
<CanGrow>true</CanGrow>
<CanShrink>true</CanShrink>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>&lt; ** Toda corrección de los datos del comprobante debera efectuarse a más tardar tres dias despues de su expedición. ** &gt;</Value>
<Style>
<FontStyle>Normal</FontStyle>
<FontFamily>calibri</FontFamily>
<FontSize>7pt</FontSize>
<FontWeight>Normal</FontWeight>
<TextDecoration>None</TextDecoration>
<Color>#000000</Color>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox4</rd:DefaultName>
<Top>12.13048cm</Top>
<Left>0.19008cm</Left>
<Height>0.40655cm</Height>
<Width>12.88812cm</Width>
<ZIndex>18</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Image Name="Image3">
<Source>Embedded</Source>
<Value>ID4</Value>
<Sizing>FitProportional</Sizing>
<Top>11.06748cm</Top>
<Left>4.45804cm</Left>
<Height>0.91769cm</Height>
<Width>3.03541cm</Width>
<ZIndex>19</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
<Image Name="Image4">
<Source>Embedded</Source>
<Value>ID1</Value>
<Sizing>FitProportional</Sizing>
<Top>11.06748cm</Top>
<Left>7.66984cm</Left>
<Height>0.97656cm</Height>
<Width>4.16281cm</Width>
<ZIndex>20</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
<Image Name="Image5">
<Source>Embedded</Source>
<Value>ID6</Value>
<Sizing>FitProportional</Sizing>
<Top>11.06748cm</Top>
<Left>12.01497cm</Left>
<Height>0.97656cm</Height>
<Width>3.76809cm</Width>
<ZIndex>21</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
<Image Name="Image6"> <Image Name="Image6">
<Source>Embedded</Source> <Source>Embedded</Source>
<Value>ID3</Value> <Value>ID3</Value>
@@ -2359,7 +2261,7 @@
<Left>15.78306cm</Left> <Left>15.78306cm</Left>
<Height>0.93046cm</Height> <Height>0.93046cm</Height>
<Width>5.37042cm</Width> <Width>5.37042cm</Width>
<ZIndex>22</ZIndex> <ZIndex>17</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2391,7 +2293,7 @@
<Left>15.67443cm</Left> <Left>15.67443cm</Left>
<Height>0.50299cm</Height> <Height>0.50299cm</Height>
<Width>5.42547cm</Width> <Width>5.42547cm</Width>
<ZIndex>23</ZIndex> <ZIndex>18</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2444,7 +2346,7 @@
<Left>17.09066cm</Left> <Left>17.09066cm</Left>
<Height>0.64028cm</Height> <Height>0.64028cm</Height>
<Width>3.90165cm</Width> <Width>3.90165cm</Width>
<ZIndex>24</ZIndex> <ZIndex>19</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2611,7 +2513,7 @@
<Left>0.16383cm</Left> <Left>0.16383cm</Left>
<Height>2.44366cm</Height> <Height>2.44366cm</Height>
<Width>15.5106cm</Width> <Width>15.5106cm</Width>
<ZIndex>25</ZIndex> <ZIndex>20</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2646,7 +2548,7 @@
<Left>6.21617in</Left> <Left>6.21617in</Left>
<Height>0.17708in</Height> <Height>0.17708in</Height>
<Width>0.94607in</Width> <Width>0.94607in</Width>
<ZIndex>26</ZIndex> <ZIndex>21</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2681,7 +2583,7 @@
<Left>6.21616in</Left> <Left>6.21616in</Left>
<Height>0.17966in</Height> <Height>0.17966in</Height>
<Width>0.94607in</Width> <Width>0.94607in</Width>
<ZIndex>27</ZIndex> <ZIndex>22</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2716,7 +2618,7 @@
<Left>6.21616in</Left> <Left>6.21616in</Left>
<Height>0.18819in</Height> <Height>0.18819in</Height>
<Width>0.94607in</Width> <Width>0.94607in</Width>
<ZIndex>28</ZIndex> <ZIndex>23</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2751,7 +2653,7 @@
<Left>6.22658in</Left> <Left>6.22658in</Left>
<Height>0.17119in</Height> <Height>0.17119in</Height>
<Width>0.94607in</Width> <Width>0.94607in</Width>
<ZIndex>29</ZIndex> <ZIndex>24</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2787,7 +2689,7 @@
<Left>6.237in</Left> <Left>6.237in</Left>
<Height>0.19596in</Height> <Height>0.19596in</Height>
<Width>0.94607in</Width> <Width>0.94607in</Width>
<ZIndex>30</ZIndex> <ZIndex>25</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2823,7 +2725,7 @@
<Left>7.16224in</Left> <Left>7.16224in</Left>
<Height>0.17708in</Height> <Height>0.17708in</Height>
<Width>0.98426in</Width> <Width>0.98426in</Width>
<ZIndex>31</ZIndex> <ZIndex>26</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2858,7 +2760,7 @@
<Left>7.16224in</Left> <Left>7.16224in</Left>
<Height>0.17966in</Height> <Height>0.17966in</Height>
<Width>0.98425in</Width> <Width>0.98425in</Width>
<ZIndex>32</ZIndex> <ZIndex>27</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2893,7 +2795,7 @@
<Left>7.17266in</Left> <Left>7.17266in</Left>
<Height>0.18819in</Height> <Height>0.18819in</Height>
<Width>0.98425in</Width> <Width>0.98425in</Width>
<ZIndex>33</ZIndex> <ZIndex>28</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2929,7 +2831,7 @@
<Left>7.17266in</Left> <Left>7.17266in</Left>
<Height>0.17119in</Height> <Height>0.17119in</Height>
<Width>0.98425in</Width> <Width>0.98425in</Width>
<ZIndex>34</ZIndex> <ZIndex>29</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -2965,7 +2867,7 @@
<Left>7.18308in</Left> <Left>7.18308in</Left>
<Height>0.19596in</Height> <Height>0.19596in</Height>
<Width>0.98425in</Width> <Width>0.98425in</Width>
<ZIndex>35</ZIndex> <ZIndex>30</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -3002,7 +2904,7 @@
<Left>6.75122cm</Left> <Left>6.75122cm</Left>
<Height>0.82021cm</Height> <Height>0.82021cm</Height>
<Width>5.51336cm</Width> <Width>5.51336cm</Width>
<ZIndex>36</ZIndex> <ZIndex>31</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -3032,7 +2934,7 @@
<Left>0.10579cm</Left> <Left>0.10579cm</Left>
<Height>0.05496cm</Height> <Height>0.05496cm</Height>
<Width>20.88652cm</Width> <Width>20.88652cm</Width>
<ZIndex>37</ZIndex> <ZIndex>32</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -3079,7 +2981,7 @@
<Left>1.15361cm</Left> <Left>1.15361cm</Left>
<Height>1.32415cm</Height> <Height>1.32415cm</Height>
<Width>19.15078cm</Width> <Width>19.15078cm</Width>
<ZIndex>38</ZIndex> <ZIndex>33</ZIndex>
<Visibility> <Visibility>
<Hidden>=IIF((Sum(IIF(Fields!CveClasificacion.Value = 20345,1,0), "DsOC") = 0) and (Sum(IIF(Fields!CveClasificacion.Value = 20342 or Fields!CveClasificacion.Value = 20341,1,0), "DsOC") &gt; 0),false,true)</Hidden> <Hidden>=IIF((Sum(IIF(Fields!CveClasificacion.Value = 20345,1,0), "DsOC") = 0) and (Sum(IIF(Fields!CveClasificacion.Value = 20342 or Fields!CveClasificacion.Value = 20341,1,0), "DsOC") &gt; 0),false,true)</Hidden>
</Visibility> </Visibility>
@@ -3093,6 +2995,59 @@
<PaddingBottom>2pt</PaddingBottom> <PaddingBottom>2pt</PaddingBottom>
</Style> </Style>
</Textbox> </Textbox>
<Image Name="Image3">
<Source>Embedded</Source>
<Value>ECONO_Marcas</Value>
<Sizing>FitProportional</Sizing>
<Top>11.08689cm</Top>
<Left>0.22108cm</Left>
<Height>1.5cm</Height>
<Width>15.34658cm</Width>
<ZIndex>34</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
<Textbox Name="Textbox47">
<CanGrow>true</CanGrow>
<CanShrink>true</CanShrink>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>&lt; ** Toda corrección de los datos del comprobante debera efectuarse a más tardar tres dias despues de su expedición. ** &gt;</Value>
<Style>
<FontStyle>Normal</FontStyle>
<FontFamily>calibri</FontFamily>
<FontSize>7pt</FontSize>
<FontWeight>Normal</FontWeight>
<TextDecoration>None</TextDecoration>
<Color>#000000</Color>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox4</rd:DefaultName>
<Top>12.13048cm</Top>
<Left>0.19008cm</Left>
<Height>0.40655cm</Height>
<Width>12.88812cm</Width>
<ZIndex>35</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</ReportItems> </ReportItems>
<Height>19.49544cm</Height> <Height>19.49544cm</Height>
<Style /> <Style />
@@ -3866,153 +3821,56 @@ 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
YwJbWUCbIoUHCigo/9k=</ImageData> YwJbWUCbIoUHCigo/9k=</ImageData>
</EmbeddedImage> </EmbeddedImage>
<EmbeddedImage Name="ID1"> <EmbeddedImage Name="ECONO_Marcas">
<MIMEType>image/png</MIMEType> <MIMEType>image/png</MIMEType>
<ImageData>iVBORw0KGgoAAAANSUhEUgAAAmAAAACuCAYAAACRFrE9AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAG8/SURBVHhe7X0HeFVV9r1t7NJUIL333nvvFZJASKGEhFBCDb1ppInYsY2ICuroDMxYR7GMI2PXGRx1xF6wKyoi0lv4r3V/9+T/eL7Au8lL8oJ7fd/+7iv3nrv3PmWvU+65pwkEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCwSmLY8eOnW4u/H3jxo1nbtq06ZzNmzefy+Pq1asNibp269atZ7e0tJxh6V78TSAQCAQCgaDXAoTmDArJzpo1a/6A47ljxow5183N7dz6+vqLbrnllsEPPPCA48KFCx0uuOCCgfn5+V533313IchSbVNTU+Xw4cMrU1NTK/38/IafeeaZFbGxsZMnTJhw3bRp024aNWrU9cXFxTcUFhbewOOJpKCgQDvW1dVdP3369Jtx75UBAQH1ffv2LY+MjKwsKSmpHDt2bOX1119fe+uttxbl5uZ6h4aGDly+fLkD9Vu5cmV/6kzdaQPkLNpE23RTBQKBQCAQCLoWJB4kVCBIZw8bNuw8kKULExMTL1q2bJnL0qVLg3x9ff0rKirSZ82aNQbEZ6ynp+eY7OzsFnxeA8Jzu6Oj480gVRuSk5Nfjo6Ofg2fXxk8ePCLDg4Ob4aFhe2A7PP29t7n4eGxz8XFZR/+23vJJZfsxfGAq6vrYcgRZ2fnw05OTkeMCK8BkdKOAwcO3A/ZC1324bd9Xl5e+0C6KDuoB85/ITg4+FXo+Dp0fgLf/4jj <ImageData>iVBORw0KGgoAAAANSUhEUgAABEwAAABhCAIAAABDHqMWAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAIvbSURBVHhe7Z0HYBTFHsZ3ria59N4LaYTQe5OuVBVEij67oIJKs6DYQMWCCqII1mcvgPqUIkrvvYZAKimE9N4vubLvu5nNsbkUgt04P89jduY/ZWf3Zv5fdneWiKIocDgcDofD4XA4HE57QSH9y+FwOBwOh8PhcDjtAi5yOBwOh8PhcDgcTruCixwOh8PhcDgcDofTruDP5HA4HE47Z0Bo+M2O7kHpKYKH16GwwBV7dkkJHA6Hw+G0U7jI4XA4nPbJlD79pvj6988tgrwhpWWCSATBLDo4iNeNmnY+eX3SGcmOw+FwOJx2Bxc5HA6H064YEN3tZp39fL8AcvQwKS6i2sbmzmSzeM3ggdkXD11IliI4HA6Hw2lfcJHD4XA47YQpXXrM9/QckJ0rpKURkxkjPP00g0hMWS8sDX7qUWmbw+FwOJz2RZtEjtyGEGnKbDay7bRdXFktUcuvqIjD4XDaPetuu+fm0lKyeyepqRUEZUvaRoZJ7NKDxB2Wtjh/KcOGDR82bNju3bsDAgJqKVKCIDg7O128mDV69Ojz58+tW7dOiuVwOBzOlWhR5JiMBnyLSpXJkk6UgtlsNsBaqVCbFEaTaFSblCZRZVIoBYVZLdabFSIRiapeSQSVQSWYRYOamDHPmoloJgr8rxKVZoKPoBTNZmIyCmalqERZmGpFBTGrIGbMxGgiKqVegbCgRdEmhVlpNqrq6kVBYbJTEZMSESgEWU0okVhym5FV0KBcwWRSiQaB1AsKhVnUioJaoULtJsu9GiIqRc0EreVwOJz2wpRe/aYoNVPq9EJyEtHr2yZvGKJopya1FdIW5w8jNrZzZWWlQqEYOHBAQkKCgTJ9+vSjR49mZmZC1WRlZYWGhubk5OTl5fn6
bUVFRbdC59kgcCNB5OpBCAuTkpKCZs6c6T9nzhxH+oH+AJk8hz4SkiYQCAQCgcAqcKqvpaVFI1ckFAsWLLi0vLzcDceUoUOHFsfHx48uKChYGBISsiQ2NnYtznnc3d39cZCSN/HbdyAr34DY/Izf9oHs7B80aBBJ1CHIUXw+guORSy+9tLV///7HLr744mP4fAy/a8d+/fod4+/qPxCvYyBKmvB//qZ+74iYpqnuyd8GDBjQdm91P57H3/k/vmt6U3DdQRz3gQjuh62/wMbvAgMDvwZpfB2k7e/wz1/gi2vT0tIWZGVljYHvCkHOohsbGx3GjBnTj36lf+ln3eUCgUAgEAh+DzAnWfjsPnr06NghQ4YMTU5OHg/ysCQhIeGOoKCgh8PCwt7w8PD4CIRqO0jHbhCQvSAeBx0cHA6BnBxVhIZEhSSGpEYRGx4VoTH9TOF16lzTc0zF9Pyukvbuaf5d/aY+U39lA4ma8gOOrSBoh0FC6SMStV/hu298fX3fA0HbDH/ek5KSsiI1NXV8TU3NEBCzSI6e5eTkXDB16tRzhJgJBAKBQNDLoa/BOru4uPh8HAdPmjQptKCgIKeoqKgxIyNjSWRk5H0BAQH/8vLyepckwcXFZRfIFafnDkE0ckVyQZJhSjgUETH9rL6rz79XMfcNRflO9x9HAg/RzyBnu9zc3L7w8/N7KzQ09NG4uLjrQcSasrKy8kHGApubmwfoI2Zn6VkqEAgEAoHAnsCREy4Unz59er/58+d7g2SlgGSNTU5OvhLBfYO/v/9rIFrbEPB/cXR05NTgIZCBVjNycJyYkwqRzovypfIx/c7RQt3/hwcPHnzA2dl5l4eHxydBQUH/io6OXp+Wljab079z584NAhkbwHwGuZaRMoFAIBAIuhMc2eJ0FaRPfX29W21tbXp2dvaU8PDwP4aEhDzl5+f3vouLy04HBweOZh1GYG8jWibB/jgyoAiCSPeLaT6Y5pM+jXsU/x1Efu7x +mJSNhqN7C96CGu12vLycrVa7efnl52dHRERcfHiReRyc3M7fz4BVoGBgUlJSZihUUVaWhqrlMPhcDgtipwawSJytBAoRlEgFv0CNQJJQTSCUYk4otILSqgYhUlUm/Qqs94iLVRO9QqlKFTbGeoJUUPDCIJCREHIJorErBGJRlSZRaIwWySJqDSYVcY6wYhKFILGomtEhQaKBRWJKE8QFfYwNJtNKoOorIeaEolWMKoU9UQwEctMDjFDREwGJiKqoaDwjyCaiKleW6cWVSqz2gz1RGBjGfyV0Dj8OhCHw2kHTOnYrb9as8DPRzh2lJSV00durm50w2guPLWYvPiktM35/bj++utLSkqgQ6BJIFEgXWpra+vq6kyY9eiEi282G+FbPgW3MkUxM2ZvzcXCQKlUajQayB4fHx8XF5fz5887ODgcOXKEZuVwOJx/KS2KHIzH+FYqIBIMlis3ZqWgVkG6KASF0qAwG41QP2Y1NISKKRaTUikqEFGvNBOT2WIJTaISFSoDsSQoxDqVQSnUqwXRqNBCzyhMGK/rTao6vWBQikqtyV4QtXUKQak0agx1glgPiaQQdZiKzYKBiAbUK4hqWrmJmE2iwWy5TqRV079bmgxKg2DRYxqFqFQoTGZRYYAoU9RpDfWqelhozVotURIFFzkcDucfy5SBQ6e4uk0pLhVSk0lZKQbHX/2uM9FO80hMp+UnD0rbnF9LREQkptHo6KjMzExfX9/S0tKysjJIGqPRaJ1emSzBN9v8I5BP5QqFws7OzsPDIzAwMDU1FUl6fV15eXlxcZFkweFwOP8CWhQ5xgqLyKnRGfRVRfrTZ7XZhfUOKrvOnRwDO2pq6zIP79NVF9Sp1Y4xfex8w80FJdmnTuqEknq7Yveoji7+A6rSs0uSTqvM+E/j1qurg4dH7aWSgoSjarFSVDi59+inCPDWK5U6k6AwmxVEaTZa5mqjoao2I6Uq8ZzSqDZ6+ruNGmgy1ZhSkqsTEtHQ
9fX9AkT6n3wgoKSkZFJNTU0q15bFx8fLKJlAIBAIBLYGCVdaWtq5kyZN6s81Q+Xl5aMSEhJWhYWFPerj40OytYsjJ4MGDTrCoK0WjyuipYK7EhX4RexXTPOJn83I8xGQaz4V+ou3t/ebwcHB65OTk2eiXGQ0NTUN5giZrCUTCAQCgcAgQLhO5wjXzJkzL6mqqooD+RoXHh7O7Rte8vDw4JOGfLLwMIOxWgCuAjaPSlQAFzk1xDRvKYqU4fNRferyFxDy/0ZERNyRn58/vrm5OXb+/Pn9uQ5QL1oCgUAgEAhMoe+tdWFTU1NQcXFxTWxs7GpfX99XXF1dt3PNFgKwNrqlRkFMA7JpkBY5XpR/LPlJ+U8J/XoyMT2/vfT4edCgQb/5vyvE9J486uXjKMsMyPoPISEhz6WkpCwZMmRIIcqWm75+THb9FwgEAsHvFxyZmDVr1sCqqqrM7OzshcHBwY8iaH7OES4EU41wqaBvGnDV59+bmBIN9Zs5MVIkVf3PzxwlVCOFIEbafmT4j2urjhNcT+F/7Qr/53n4zHTUkf8dNb0XdcFvbfdXOprmJ4/qsy1F3Uf5Ap8PcXTMz8/vv/Hx8beWlZUNGzVqlKuQMYFAIBD8bsCpRb5+B6QrPzU1daW/v/+LLi4uOxDED6qg2VWB2R5F2WrJZvpDiSIx/F33EZ8Y5OL0g/qGr9xC42dvb+9ffXx8fsTn9/H7f0E63g4PD/9fSkrK1oiIiH/g2jtxzZrAwMC10dHRa9PT09ciH9bm5uauraioWDtixIg7KisrfyPq97y8vDt4Pq/j9UzH0dGRO/zfExcX91JiYuK7+O1td3f3Nx0cHN7x8vL61tfX91fow4cidkGnA/h8EHYchC4kfJpd3ARW2WrqB+UXJep3a0SdzyPT1f3GNwPsgZ/eiY2N/SPsGo7y6MRyqRdRgUAgEAhODXB6UR/pyo+Pj78GpODfCIK7EAwPMyjqgfG4oHmqCe1SYvpd2a8I Op17cN/+goNYeDKepBYYlWp1WIBnlx7GWn3usU3qmlqTwVUbEuPaNcZoLC87dVJfVqZUiY6hwa7R0QaNvVqpVv1ah4DD4XD+QhYMHTnPxT3o5HEhN5f8Bm3TgNnco+cgtekQ/2P/r8XfP8Db23vw4EF79+4tKSkxGAxms5nJmN9RzLAJmmkkFiOnde3EsuAbmsfe3j4iIgKN9PPz/+abr5kBh3NF+hKyVBAiBeEdQXitBXeRw/nb0rLIqbRMpFUOZjuDPvODz8QPvlJXF1f4e3Z96x1FoOv+j9/1+nRdUJXqnNq168cfmCID8j78svqbz9zErCx/t4jXPnb28z/74ktOO+Ndqg17wu3Hf7xS6xyyc+7jAcdO+FQoajuFBaxcVBUdZV9trzURg0rUO5iU+iLl2cR9DzwWW6/IMKpjli0Rh4YVbd9lfvF9vzJ9nI/G6b7pMePGFH+/PX/N1zqT5pSretjrT9nFdLu0aZv2jVd0lTXnQ6MHvbZcFRRw6f23az/+3kvhlNE9pMs7z1Z7OqtElY7YKxQqtnccDofzNycoKPjmoLABJaVTVGohOZEYjL/itrRmERWmQ5NvGbjuE2mb02a6dOmqUBA7Ozu9Xl9UVATZwOJ/hbCxTr5MqDBUFI1GQwWJX0VFRWBgYHx8PCSKg4ODq6sry1JWVlZTU5ORkREVFVVQUODs7JyXl4csRqPRZDJBbgFWLIzxzeqC2oFldHR0fn5+bW3t2bNnaWEcTjMEEfK6IAygz/nVC8JqLnI4/0BaFDn1dOEBQakieoOQnp26ZKnH+QRlaVFWaED3V18xuTomLnzM63yy0qwpjOnY8c2lQo2QsGJV0N4dZqLPmji+48LHlXXm/FfeFjf8Um8vlA7qEfX8Ym1ZTdJTL/ucTBbNVdkDozq+9rLGK9JoFBQuSr2+UIiPv7j0HbuErCJTXccn5jleNzR/+66iZauji+uLXOxND/3H9z/jqo6fLZ71UphZfcaVdH9l
AkeVuL4N5+wHUdoLwvKzq6vrN8HBwZ/Bb88HBAQ8BPLzIL7fAJIzb+jQoZfDr5PxvQgkK3f+/PnF1113XcaYMWPcQYQGTJs2bdCNN944aO3atYNaWlr6ITu091HyoQaOAOG3tuO6detOKqbn88h0mB70PI/rrfiOyxUrVgzC75dkZ2c7Ll++PB7nFuN7dlRU1NBhw4bNhP6LQLwvB5FbFxMT8whI2j9CQkI+4vo+2gu7ucbvAOQI/HLcE6zKf6Z+Nf1ujTAdndCSjO0FGXsLZOw6kDH67+LNmzfLE5UCgUAg6J3gk4tc01VdXZ2QmJjY4uvr+7Kjo+MuBL3DpqM5vwdRBEIJfuNrfbRX+oC8/MppVxCS1yMiIp4ICwu7KyMjY1VycnJTeXl5DQhUDohMwKJFi7xAZC4BiTkfZPYCvm8RpOYs/Z2LveaJP5Kb8ePH/wF2/KG5ufk8bpJL4rZs2TKP0tLSwLq6ujwcRyclJc1KSEi4CcTsL6GhoS/AR++DcHIPN74X8yCIV9voGcUoEVPn81qWR3zm+zW5iH9zVlbWnIaGhlBuAqurLRAIBAKBfQMk4ewpU6Z4gCDUI3A+4urq+uOgQYP42p4OBcreJIoQKFvxG9dHcZpwr6en5/d+fn5vcZ8y+OV2EKyFJSUlIysrK1NHjRoVwNfxwHd9OKJEH3Ibhd/r+iSSd/jgLE4L8uXefB/n2LFjPWtqapKGDh1anZmZuSgyMvJu+PNZLy+vD52dndWeb8etGzRa1lTeMc9A+L6Mi4tbCxKWf+WVV15MnXT1BAKBQCCwH3C0AGQiBgRiua+v71uDBw/ez5EFBjRLwa63iwrwDNq6cFSLr9f5BaTgk8DAwM0M4ElJSfNARodVV1fHzps3z52bx5JkcRTo90qwOgP6jKN+nP7kyNnEiRP98vLystPT05tiYmJu9vf3/wfI7scgZb+SSKEMtpoQYqtFJ2N8mvJn5OXTIH0NtbW1zjI9KRAIBAK7 kdCjq1hYsv3u+/vll5Q5Ots/sdBrQO/is6fzXnjB36DNqBE7vveaeUSfajVxNas0RCko+cIDHA7n706Qi9sbvftOySsQ0i4Qfd3VaxuM6mbRSSfUGAi98bgxZrOHx7Tunddv/0WK4LSBQYMGR0VF7t27t7KyEptMP/w62LTLHqTR6XQQM2q1ul+/ft9//z+NRg2dEhoa+uOPPzDjNhIaGubk5IhyCFHceOMNp06dKqFADtXX17OrTKzNrHZIJggnnc7xaivi/BuYS8itguCPwYJuqgThOkE4x0UO559GiyKn0lyOb02dVhTVJqWoyMnMemOV+4af9LVVRT1GRS9ebHArS/3wdc0ve31q7SrHjvN8+EGFwj7vzofDz53L8rOvmDi90/2zBHXRiVefidx6RqxUZU8c13H+fcaa6tRnloScPlVjryy6HlroScHdzWysqjp3pmjRa6EnLpZ4upbdOzZixtTiE0mls5aG19ZlKauqbp3Yec7jpqzccw8vjE7Nz3UzC4vvCh44suJA5qUVK8PzU6s1asOdd3reNzN95zbTO297FWRf9HT3nD3LeeLkGgdnB7PC0Uwsj+9Y/udwOJy/L7GxneMHXEP++5Eg0kcOrw4qb7QqoUvvc6OGx77xOjEwL0WOyfzgw4pVr0tbnFZxcNB5e3s7OzuVl5fX1tb+Om3D5llIGicnJ6gaOzu76uoad3f3S5ey7Ozsz5w5zcyuiqlTp+r1dXFxcSEhIXV1+iNHjvTvP+DQoUYPWSEGOsfZ2dloNDg6OlZVVRUVFUHzIAk7glZptdrY2FjItuzsnIyMdJaL828mmpDNOO3p1RsrywRh9VUqnEhCxgvCEUE4xKXR35JxhLxDJ4wFgvBD+z1GLYqcasuL5AR7gZgEUqswaU1mdV5F8svvKDdtdLKrq4np4L/4VaXO9dwHq5w3/09VY6zt1iXksUdrNE7ZH3zusu1rUWkiPQb5PTSrNsgnffErftsP6e3N5ltv
AKcZq6qqchD87vTw8PgGpOSQWlDNQGZ0FMLeRBEtRbZMSCXfZ7iX75AMCAh4JT4+fg2I1ZSKioqCFStW+INg9dXXSp0lRKvrwRFDjpiBJPVZsGCBf0lJyRDkx4KoqKi/+Pj4vMO1ZQ4ODpy6bFXlU+WreZ6bispznLff29v79aKiohlXX321F0mgfmuBQCAQCLoPJF58abKfn99fENx+QqDStiE4WUDrTcLgazJ6wjVCexDMPwkJCfl7QkLCivz8/NqRI0eGISj3J9n6Pe2+DlLJKVKSS004MkSyCdKjrUvbsmVLm/B3XKJIKI+nk5RS/u+nrgF14sgsn3Ksrq7Oy87OnhceHv43T0/PT0ieUVa1h0AUGTPPf1Ph//pasQMo81sLCgoWLF682EdGxAQCgUDQLeAoA4JPZnBw8F8cHBx2IHhpUzynAvGiDQzGDLQ48mlELpL/JjAw8NmkpKRVQ4cOLZ8/f7431yWBgJ7d1QSiK6CID4kDn2pkfnJKlFOjzc3NA4YMGdIP9vdZtmyZ19q1a9MXLFiQBRKTmZGRkQk/ZCKJ9KioqCF1dXXTQTrn4zi7vr5+XllZ2bzU1NR5SGt+RUXFQvy+uKamZvGoUaOuKC0tbUZZKYN/88LCwopA3Itqa2uL4MvSJUuW5E2fPt39/7TrWtBmEOYL+EBDSUlJJey4AYSaD4fsRP5btU6R/3EEDceDvr6+W0HCm+fNm+cKn8oaMYFAIBDYHgxe48aNi4qPj1/t5OT0LYKVtj2ApSDV24R26CTysIuLC/fR4t5ZdyO4NkyYMCGM76DkwnjdFXYNEIEzqStHfkCGLuTrnG699daAoqKiMG54C9JU6+/vXw2yxHcn3hQZGbkaJPOOmJiY5+Li4t7y8vLaAj9scXZ23obz9np4eHBd2z5854jRXpCPX0Gm+LTgbhCyPX5+frvweUdQUNAOpLUDRHUHSNa3SPNDXP9BSEjIx5Ct8OeL0dHRzyYkJDwHvZ7L Cr5jRll+Zc6rb7qfPljlLKgnTQm65S5zZfGFlxYGnc/LJYGa++4JvGNExf5DJa++7V2UkqezU107yX/W/eaT5wpWrbbLy8nVujjfclPQrWNzt/xS++m3XkWlZU6uDouecR86qPZ/v5SvXKWqLyuKCPafc5/zNX3rnTy0JpVKFOuJEfOMkijpEglKlcr2vjV2fR8B+tcuaRpjMYD1kkKhQHak5uXlHT9+/NSpU5gtkIQpsGvXrtHR0X5+frBBDKsFWawVwRIZkYpvVggKx5zHUhE2Go0IIC+zYZHYVKvVSDIYDAiwMrGZnZ2NBiQnJ2Nygo2Hh0eXLl06deqEBiAXQL2YvSxF01Uh8I1IZMTkKo9EXtQl7w1UhEgEUB2LwSbyNrW0gmJZKszwjfZjZ+3t7aXkBlAjKwpVoBkwQyQ2EUAMUq2Fw8zaM1YQyfoQYWvbUDWrFHlZgTawtqFwZLEa6PV6lgXfrEs5nL8PB+c/PuCdd4jhamcdy1qTgquLMHTEisrSFUkJBzr1CN76M73ZpBGiVr1k9HWLf1wvbXNapkePnhqNOj3d4v2zwedqwQCF4S4oKEins2gMxNjokFa44YYb09PTkP3uu+8+efJkVlZWRkYG5hq0JycnBwM+Cq+rq8NoibZhVsIc5OPjs2/f/nPn4qUiGhMaGobZqlOnGJRWWFiI4RGjIhu9kdfV1W3Dhh8lU86/lVWE3Ij5WtqSCKNTsLTRBvoRgvEFs7geZ137daD/uXxNyGA6N+CzRRDuar/HqEWRY6bnONEbRaWiRiuaBJOu1qjMLry0ak3Vps1exHChW1jnOXN1fpGXPl5v+O5rR0FfGBoQ9sa7CkeP/JdectiznRjrC518opa/bOoelb5speKH/9lriTGyS8i8Z+u8HY4sfyZ4z351nUoX2bWmWm+Xn16sttfccWfgrTfVbPg+5bP3A4v1Jtco4+0T/e8YV/Xz1qLn33Sury8ICuz4wgvKqPDijz4p/PpT
ycl5Djo9D1L7AnSaCr27dSSJJBT5ew7ufzH0yIbeK2DLC5yqRHk4pJNwi+Vl0KBBbUQdPjkA+/9dXFw8duXKlf315AUCgUAg6DwQ0Lmn02wE520IPNqTZpYCU28SFUDx+TCDLoLvv0ESri8FOGXFKUV7HdXglB5HrriFA/dXA0EMAJlKApEoLSwsnJqYmLgURPnu0NDQJ5BnzwcHB38IQvQ5yOVPIFTcX4ub3h6lD0AgNPJJX0BIqg+DcPG9ins5wunt7c13b/4P17+IdF8Giforvq/CcWVFRcUqkJgZ8GEpyFdxTU3NkDlz5pSWlJQknX322b64ly/O84Oe/tA5kDJjxowgvm4KZD6ovr4+GLqHcmNe3bQeA0nr2LFjLy0rK8uB71b6+vpucXR03EM/6eS8reyQgKnPqhzh3N0oP4+S5DItPVmBQCAQCIyDgSQnJyc3MDDwKQSbA3qPvy349EZhMEXQPKKPdL0BgnAdgm4RSMFgjojoptsF4P+zSAS5sHzRokUuIDhRID3lHL3i9FlISMjf/P39XwRJ4iam3MB0L8gBCdYh5FOrIlecMlPHfv360Q+tIFd8iEDbgwzk8w3k8UMc3QTJmos8HzNs2LCigoKC6BtvvDF0+fLlDvif064XcmQNn8/mU5wbN27UtsvQ1T1lwHIPnzuAOI4AqboX5PML+JI797dLxPgf6wd8+nV6evrSm266yUNPTiAQCAQC6/Hggw8ORCBpcXV1/Y6BhT19FWx6m1B3BkiSEwTTjxBU14waNaqcIy/2QroU2QLJ6Ttz5kx/EK3izMzM6REREbeA8DwWEBDwFnTnK4Y0kgW7+P5FzTZln+ln9R3ncnuMfe7u7j8inTfCwsLuB9Fanp2dPbauri5n8eLFfrhvP46mcVSNesh6pv8DpylJOBsbG0Pi4uIuA9H9D/y5X/nWtIwp0X1+CPn1HJ8OlqclBQKBQGAVGHQmTJgQCzzIQE/yxcCCz78JNvYsioxc d1NNIVGFLHzacezEwp+3la54kZhqyp08o+bN0Q3vX+vudstt91ZlFagF0aQW64ymnj16Ll261MHBoVnXFrNFWVnZ9OnT4XMz9xfO8YMPPjhp0iTmiFdXV2/evPnDDz9MSUkpLS3FBIPegxlSEfby8urRowfsu3Xr5unpCR+apbLCUVRcXNycOXMwITHPe+jQoS+88AJLxSYiUQX876effjohIQEFIm9NTQ3UwmuvvdazZ0+UgAZ89913X3zxBeRNQUEBYlgj8Q37wMDA8PDwJUuWBAcHY6qz6hlWONoDXbRgAUS7xIABA9AANkGyGBSFfcH3oUOHFi1axCIRg9n0nXfeQRVWHSIHzX7jjTc2bNjAlAm6d82aNSEhISxVDixZg2+66SZ0NYvEDtbW1sbGxq5ahdFVaom136wgFxqAwJdffvnRRx+xSABLtPDVV1/t06ePFCWDHUrM6M888ww6k0V27tx55cqVrIqmFXE4fy1ix+4kKQmjr7R9ZUyiTid0676+pvawt/vyXzYjakrfwetyskl2XpNyRPO1oxRbN0pbnBbw9PQKCgrEpFBUVGQdl9oIhlx8Ozo6YiKAsKmt1WNUbEl4ABcXV1dXFycnJ4XCMpJ7e3shF8YrtvA0DLRarYeHB4qNibHoEwxrOKwQTkx9YS7AKAoDGGOITk7GyXMFvL19PDzcO3aMSU1NgdphQ6tOZ7lmlZV1KScnm5lx/m1EELKrscLBqX9WECa02QnuTcgyulABTim1IJwXhFFc5PydGEsIvMAYQbD8WZ0e3w8F4YV2fIwwbjaLwWj5mKuNpmqD3mgqNtdWm2pN9TX1SYm598/PCe+cFh149Mbhxv0HzOeyDlw79lKnmOyAwAv3P1Z1PtN44OzRfqPyAqLL/DtfnHSnqajIUFSUMu3OrODorOieafc9VZ+Za76QmHTt6GL/cH1gp5qgzmkRMclvvmYsyC9fv+FUbI/CiMD4TtEVKzeJ8eV18eeThw4r
euml3MvpF39//2dBKKfV1tb6cdG5bm6PgD4m2UlMTLyoubnZu7S0tAifZ4Js3QE9n/fw8PjC2dl5t4ODwwESKDWSReFn01EYfqad+n+tOJ/vhtwFsvBBcHDwI0h35dChQ0dOmjQpCuRqIAmF/gCBkCwD4IhfWVmZc1ZW1tSQkJB/c883846JqiPME3007Nvk5OTLH3rooYv1ZAQCgUAg+C0YlMeOHVvs5+f3NgJ6r1xkz+CnP6XGtUxfRUZG3gPSUcon/HpqukwRLuowc+bMCBCu2oSEhFWBgYHPeHp6fgrC9AsCOke1tHVZOnHUxNQu08/qPHw/DILJxfKfhIWF/Y3vWaysrMxbtGiRB59s5HQa76+rIugkWIbmzp3rDFI7JSgo6HWQLotEjHnE30GiD3IvMq5705MQCAQCgeD/g+QLvfUqNze3Txg4OKKievS9QVTAw/EQd0LPyMi4cfLkyQnjx48/XzexW0Hiw53ap0yZwn3CauPj428E4XoOROkbEKZ90PO4PaiUWLJNCc/VR7oOglz+5Ovr+0pMTMwN+fn5w+rq6ny4xYJMeXUPUF/O5Ouj+NAD8uEN5MthEn/zPGN+oVy2crNeTvkKGRYIBAJBG0AWzkhNTa0BMdimk5heQ76oK3UGOTkM4vVBVlbWkrlz5wZwxEk3r1tAAss1XM3NzU7l5eWFSUlJS0C4noBOX5NwQT/t6VFT0mXJHnPheTrp4hYZvyCQv4i8asG9sqZNmzaIa9gkqPccSMRGjx7tlZiYeK27u/u3qv6o/GM9Yn5TnJ2dtyYkJBRJfgkEAoFAIw5xcXFVCA6fMkiYBn97F514HfXw8PgyJSXluoaGhoDuHAGi77imCkTIB0RoZGRk5O2cvuX6Leh3iP40J1zWEC9FumgfF9D7+Pj8LyYm5moQuzyu45JRLvvD6tWrzxk1alQeCPLTIF3aPmIqr9WUJPMUJO09lJUSIWECgUDwOwfXR7m6un7EgKGChSkZ CAxP7Nyz4rOvjJW1xsPxyV0GFoV3vNClU97ip8Tc7PwvfjwV1jcvOGD3oE5lX39an5tdWllSZNS//d4HOqJ1UWk1GoVKY/lj//vvv48ZQtpJGRjl6+vroWFgA8eX/Zkf08bevXshPDDfwO+fMGGCWq2GK88M8M2uD8BSHtO/f//4+HjMNyhTKh39aTAcPHiQFYtv8J///EdKa6gdWdA8lAAgUWDj7Ow8ceJETHgA89n111+PKlgSYEcQDcA3NpGEuRDlR0ZGQiZJRVOFg/JR+Pbt22HMgNnNN9+MVsl7A5bQEphZf/rpJ8mOMmLECJgxbdaUysrK7t27swawzvn++++lNBloA0BnohxoMFYyjPGN/UVMVlYWakE70QYpjwzaUkvqww8/zPIClh2VYtcku8agKNQIlQgblgX4+/tXVFSgw1vaIw7nr+LmEaPMWidRsG/Dx86s0Jo9/A506T1v4NDAwCCpCMqBmQ+biaZJFnuRaNeOnyQZcVrgzjvvvO6667y8vOD0XxXIAu2B8XDYsGFubm5Scc0BuTJy5MiePXuOHTs2NjY2MDAQYyBKgC7Cd2hoaK9evTCVgKFDh3br1k3K9nuj0zn26dMHMwtqROPBgAED+vXrJyVz/mV8LQiZggDpbP1kCMJ9LTuKNsyh9hcbMiLQr815/1DG/T2a8ZfTlx4XfNgBwrFOa+8908wdPowahYiPUasQ1JYlyXSCSkmURqVgDPbzenKhcfSNjpXq8Lj0+GeerspJ6v/B22XXjlepfVw2bUx6Zm6lSt9z5VslI0YU2hkdj+8+O29uZdbFiEXP1nUdIlab63evPfvGUyaFMmjxyyXhMTWkvspUqOwU5D+iR1lS3KWlb4bW1tSa1Z733m0/dVBewqGzj81zzswu8wwgt/9H17972hfr9s6apdYXF3q4ej68wGfWvNyteyqeXRSpLyrwC+j34hu6sWNELy+tg7OOaMYOGR4TFWUiogkHUrBcV/n888/h
sDdRwYzTPSAnu6Kjo++ZO3dufHeNeDFw6k/GeYEQjYqNjV3n7e39sYODA6cVj9CPDLRKXxWErREVpJmOk5PT9qCgoIe5wef48eNduXBeV0Fgx+C0ZFpa2hLk3w/6WkStzKp6RTJOEpabm1ssJEwgEAh+p5g2bVqol5fXq2qExp7Jl9JNX2dzGOTklYqKisqWlpYLdXO6FHwKjttWjBgxojwyMpIvHv+Ai985Amc62qGORkURL6T7dXh4+O2FhYWp9fX1F3GUTVdB0EvAEUqWTV9f3/+hbGiv6jIlYfzO6cg8QL9EIBAIBL8X8D2AUVFR6xgUVIAwJwX2JCSJJF/u7u4/ZWZmXj1r1iy37hhB4GhXXV1dZGxs7OU+Pj6vOjk57SLpos8UcbWk78nENBgzPdj1dXJy8u1Tp05N7OltMgSdB8tmWVlZjLe391PIY42EDR48WMt3lht+9/T0fHn69OkB+iUCgUAg+D0Ane869MK3q6lHexVFEDk6BAL00qhRo4r5hKFuRpeAo06TJ0++GOSriNtYuLm5fYP7t70fsKOky1SYBtNDHvwYHR19Z319fQIX8esqCE4RTJgwIRDk/TGUm+NGwviZZQmdoPWPPfZYjzypKxAIBIJuxsaNGwf7+fn9Q5EJNRpjj6ITxIMxMTF3I5j56CZ0CUi8brvttoEVFRUjuZjawcFBG+2yFUlVftYD8aHg4OCXq6qqymbNmnWBroLgFMTUqVMDIyIiNvXv31/bW8+UhJGAFxQUNOqnCgQCgeBUBhr8cWz4VY/cnCjYi3DK0cnJ6afk5OSFN998c5fuJo4gyRcxjw4NDf3X4MGD95J00T+W9OqIKD8zXUdHx+/i4+OX8f2O3TGNKuh5FBYWhvO9ncx/NYJKMkbh73fccYe8O1IgEAhOZWzduvVskIwHVACwRwLGAEXy4+7u/n1ubu54LoDX1bc5uFEriFepr6/vM7h3G/GyxTSjEjXaAX+3+vj4bMnLyyvt 4DI3Gj43c3Ot/vfLL78MG+w+0y3Lly/HcI/wW2+9hUkLrj8ywtVmNsjIAvCb8Y0kFj527Bjk0KefflpWVgZj5kwjiX2z6lAms2cgDLONGzfOmzcPYaTCGEWNHz/+ww8/zM/PR3ynTp22bNmCSNZm1kLAAsiFYpGEcGpq6uDBg9esWVNeXs60FkC8dU8BcrGqrQGAwlEOJAciJbsGnYZU9s1AmKXCHuIkMTGRdQLioXYg1UpLSxHG7sOGZQGIQeFsB63ZkRFmBQUFy5YtY0nyiqywHU9JSVm3bh3LC1h21leSXWNYh3z11VcISHnMZvQnJCsqApIdh/P34FJFhaCVrsG2gCgQs2ivFkcNX969+0Bv94Fxx1Yc2J2VBY9CIigoeMCpM0Rs5vQWnZ1WJCVIG5zmGDt23N69e0+dOnVV4wMbtaBMAgICkXfXrl0lJSUsSc6AAQPnzJkzatQoDPjx8fEXL148fvx4YWEhNtloFhUVhUmnY8cYxGOYArt37z59+tc8tNMWqqoqjx49umHDBlQKrYWYCxcu5OTkYMpjBpx/D8MIgRN8ecKmf+aHm5InbV2Brwh5pCELwJR8UBAO/9WXCLBTXxPyoSAk/uun+76EfEMPEA4NvHp2oN+k363Qn5APCJnzj+295l1DYKCfOiUxqi3v0NQaRY1BVIrEYGdfEejt/cRjJcPG1Smc/FLTc5Y8by6tiV34TP70qdX2dVHxR/PeeUt0cYx6YbEwdVy1vbHjnn2lz75SKxr8n3uq4trhSk1VxOaNKU++ovQNDnnrtfjeHcscnZxPZhU+saL4ySV+5SWXVGrVo4973zQ57duPKhc/1uFcQmFogPLB2RFTJmft2q1b/mZsflaJn0fIqy86jZ9U9ssZ06vveZryjgaJ6iefUXQbRexdVWZib1TYGcSw0JBFLzxnVCnMShWcbcxDUCA21xng9WJ/8f3aa69huMfExuIx2YwcORLO8bvvvvvcc89Z1QLcdDjl
SpsE9gl0fIrR8fmGHQuWCQrLGzoZe3JycubopwkEAoHgVMTs2bPDQTbeIsGwJcmwlSjyFRgY+HVVVdWYrnp90LFjx85samqKA+5xcHD4SSdImg62JKVm5OuRioqKUF0Fwe8MH3300TkpKSmXDR48uJXES5UNlpOgoKBNX3zxRX/9VIFAIBCcauBrcVxcXL5VDb89CQNS3759tZEvki+uydLVtinWrl07AOlP9vb2/hB+0J5oVPc316kzwvT0KaejkZGRD8+fP99XV0HwOwXKXWhISMh/1CgYywmJv5ub20c1NTUZ+mkCgUAgONWQmpo6y9HR8Vd7m35UZAW6/RIXFze+q8gXn0oDGbqXG6fyfmrUy9ZCe/RRxlZ/f//HJk+eLORLoL3MOy0tbbb5KBjK/a6srKyZ+mkCgUAgONWARv42JyenVtMeeE+LCkL4fCQlJWXFd999Z/OnArnYvbS0NDsoKOg/HJFSwc9cF1sK7+Hn5/dGZWVlkq6GQHBadnZ2vJeX16f9+vXT9gZjJwAdgmNhYWG36qcIBAKB4FRDYmLinehta4THHggYdeBIEYNQcHDwg1OmTLH502AkXxkZGYWurq5vkxRZ0sOWQptIcJ2dnXdlZmaO4/11VQSC08aNG+cMsvU3lnvTcuPm5nYnykqXrHkUCAQCQQ8DhGA1R8C6YwTIGqEOHAnw9PT8JicnJ1dX02Yg+UlNTS0A6XyHpIhBr6vt5j0oERERDwCDdFUEAg0okxempaWtYjlkx0OtQUTnaHNra6uTfppAIBAITiUkJSVNARnZ2VVrn4yKCj4JCQmrvvzyy/N0NW2G6urqZHd39y3dRb6YPu/l6uq6NyMjY6yuhkBwHAICAiZy+lGRdZadsLCwR0HO+umnCAQCgeBUQkVFxRCQgy8U8elJUaNf3t7en+fn56fpKtoMTz/99MDQ0NC/8l4knF1NvpTwXrDpjZycnDhdFYHgOPj7+zc6OTm1dUBIxlBm1sh0 MIA3j2+NRsNuDEOYus2WCzXZ2dmQJY88gp+8JZ5JEQSQncUwbx5hBrJUV1fPnz+fKShUCoPIyEgIFScnp8cee+yLL75ADEBe2LPrEqwB2ESxKA0NYx4/IouLixcsWPD2228jCwpEPCIRoLVZwCay2GgDFgPkbQMonxUibVNVxqrG9wcffMA2GYjctm3biRMnkAvx8qJYCWgnM2OgwfhGDDofMz1sWC/ZwNpw8uRJyCEpisL216bBcpKTkxMSGnl1sIcTYxWfHM7fh0PHjmT1t/E0GPjJmEWVIHbquG7okKk9u5FtPz1y4vCh883cBHVzQAchIa654d2cFR17KIWLnBaBRMnMzKiqqmplSLGBjWY9e/ZE3v37DzT7yI2Li0vXrt2mT59eXl62bt26uLi4yspKjGnWwZZdRenevfupU6chObZs+Yll/NP45ptvMGgPHDgQYUx2y5cvb/YGYE47Zgr1fW2AYvlRNl83SxQhhwm5hg5bbOTCOZ0rCNOulPGPZiwhnwjCIOrNtvX33E7xI+TlhuO7gV7DUUP4CcLKVo/R+/TZqvF0cYJ/KC2KHCcTwUclWqZWy/Osln+BSmNWwl9W+DmFPzO37PqxVW7+bhdL4x56zJyRFv3AtOw+vUoNDuqDx5NfWqosKoq4Z2bR4OvMCmeXE6dS33rZzluIeOKB2r6jiNkjaP+Z9KUvG91UA99+Qz3oWtFoF3QiITArs0gr+t73oM+48WWn44UV7weU1lSYXXXjJ3YYN4DkXCz68DOH6pIKjV3gzHnawLCSzZtzli5RV5WeCwqKfm5p0IhRoiMEjkFQmCDITGqTSSteM3rE6PETFEa4+QTaADPK//73P0xLbGaC3wxHHNKipqYGozyTDbBBYPjw4Zh1Zs+evXDhQrk8gDFmJh8fn/vvv/9NytixYx0dHbVaLczgN2PqQnaYffbZZ1ApKA1zhpS5BZBr6dKlcN/ZhIfsANoGFaEBP/30E2swIplsQLyv
tUAgEJyiuO222zz9/PxeZa+7p0fBFCmKioq6g1tD6CraBAxk6enpM/m0Y3c+cKBGM2JjY19ZvHhxhK6OQNAGls3IyMgZLJMsLyRhjo6OR5OSkq7WTxEIBALBqQY2/iAHt6Hxb3s5sDmJ6C7hOjQXF5cjWVlZ43X1bIb777/fMyQk5DmSvO4kmmpKKTo6WgiYwCK2bdvWLyMj42aWF1U+nZ2dt+fk5NTppwgEAoHgVERlZWUJiM+27ngisD0h8SMB9Pb2/iY7OztLV81mKCgoGOHu7v5NT5BM+tXDw+Md2JWsqyMQtGHWrFkeERERT7BsKsKOevDm7Nmz5S0JAoFAcCpj8+bN54aEhNzHhl9NA1oiEl0pioAhEP27vr7e5iNFSUlJVzg5OR3pbpJJu3hPBweHwwkJCZNlTY/AHPn5+Vmenp7fsZywDqLctKIerOuq124JBAKBwI5QV1eX6eHh8T5JkDmJ6C7hwmMQlb95eXm56GrZDMHBwVdzc8vunH5UwqBKv4aGhj6zdOlSP10lgeC0LVu2/CE1NXUhyybLCMXV1fWbYcOGjdBPEQgEAsGpjGPHjp2RkpKyeNCgQdoreXpqFMzZ2flvUVFRrrpaNkNPEjA1Cubo6HgkOjp6IX2tqyX4naOysjI4ICDgVbUtCiUoKOghrgvTTxEIBALBqY7HH3+8P4LBn9VC4O4kYYqkREZG/qexsTFSV8lmSExMXMYny3gPS/fvaqF9DLJubm5fFRYWVspUpGDr1q1np6WlLUDZ0F4AT3Fxcfm0oqKiWD9FIBAIBL8X8OXU3t7e2tOC7I13FwlTBMzLy+vrrKysbF0dm4Gkp6cW4SuhP0nC4N//IcgWCAn7faOgoCDT09NTe/iFZYMv5I6NjV0tI6QCgUDwO0VNTU0UiNDrijR0F2EhOXF2dm7Nzc2dpKtiM9x9990uAQEBT6nRPUv372qhH01I2IelpaXD1qxZ8wddRcHvCHzHaUhIyEMkXyyP r++MGTM+/vhjVHHbbbd5enoiiZXGgDG02YoVK5rVDL8RNADfrGQID9YkdC9iIB4QCcWCnZL32xVBOZCg2Itmc6EKJH311VdXVSba88knlpeBsAYzUBQioSrRRVIUh/O34b8ujqKjXcOQyzCLxGQOCjx348RpAV5Td21dv3+vlNIc9wYFkWrpCbTGmA97uElBTnN07hxbXFzMxuE2gmEkIiLi5MlTJ0+eqKyskGIbiI3t/OCDDwYHB+fn5+3cuROFsykGSewbQ1NMTExRUfH58+e3bNlSU1NN8/0FVFRU/PDDD507d0aTamtrmy4ew2nHdCDk+gaJYgUnaItPkjWwnj7G499wAYeBmfVbKfiXMYyQj+guYCRNEoTov1px/bV8Sh+UAuiKzwUhmHbLSzSmJQ7Q9fFwWI2CcEiK++fRoshR60XLxyRA4FhODWgEFYwVmnpRRwy1yor6ENcOM+4sj+5iVNoF5WTFPfGkoroiesHC/E69XA2C36EjZ958s9rZvcPc57JUHvZKQXtw+8WvPtJ6egXfM/9EaLigqnfa+nPdkRMKnXvQA7PyAr2MOlEgel2HUKfhY0wVpqLXPwjR1yW7aEw3Tg4cdX1ZVupPTzwRnFOiFYjjjTe6D7m24ND5kvfeC6rPLXUhkQ8t9I0ZrjGrDYr6WpWhTmGsU+LbVC0YFQ7ae++ZoTCKEDnwv/V6fVpaGhQI9gkeMOYbBDDZfPHFF6mpqdhkjjsCDz/88Kuvvvr9999jxIdKgQ0D89mePXvOnj0LWXLfffdBaXz++eeYn7Zt2+bv7w8D5EVFmPng9K9ataq0tBSRKLMVsrOzIb1QNWsSwLR30003Qd58+61lrGDXkZhsCAkJ2bRpE1TEypUrp0+ffs8997z77runTp06fPgwplLaRgswVqvVq1evvnTpEqsFSGltmMIlu5Yt0R7s5rlz586cOcOazXqJiRD0Cb7RCYin5o1gJduAQqBz6N43kwWpmzdv3r9/
7BigTGxuaWnx1k8RCAQCwe8RIGEFgYGBb5MwdNd0pCJG0dHR61evXn2prorNkJaWNtHJyekXBr2eGgVTJKxv377HoAu33Fi4YcMGm9sqsF9s3LixL8r4KpQHbUpcX3j/XkVFhc3ffSoQCASCXgZOjzU0NMR6enr+q3///tomreZkwtZCcsJXEXl5eX3VFXuBvfnmm/0iIiL+xKctu4tUWhJFwuhT6HIwKipqw6RJk6LGjx8vo2GnODZv3nwWOgLNjo6Oh1jWWQY8PDy+KSkpqZMpaYFAIBC0oaamJiQ4OPhREIdu2UOLxIgSGxt7a1c8CcYF/u7u7i8w+HXn9Gp7wgAMPVoRhD+Ji4tbNGLECHfZ/+nUBPM1Pj6+Afn+I8sfy7mbm9uOzMzMuZLnAoFAIPgNHn74YRcSIgcHh1/VguGuIi5qFAwkaWdJSUmlroJNkZeXl+Dq6vqKWn/TkyRM3Vv360EfH59/Z2RkjAdRdOBoia6yoJdjw4YN54FoTUZeb1cjXyBfP+Xm5s6TkU+BQCAQtIvm5ubz0tPTJyBofNodxIUL1YODg1+uq6uz+ZYURHFxcYK3t/eLID1HSSgt6dDdQj30qd79IGKvZGVlzRw5cqT31KlTz9HVFtgxkE99QLJio6OjY44dO9Y2orVmzZpLkpKSljs5Oe3p06ePlsfI328rKiqa5SEMgUAgEJwUnCYZMWJESkhIyN9BFg6QJHUFeSGxI8HD51aQsHvnzp3rrKtgU/Bde5GRkQ/QFjW92pOjYUroU12fA3w7QWJi4rUNDQ3p48eP7yujYvYFbhkxffr0fuXl5XmBgYF/AbH6CcT5ZrWeq7Gx0SsmJuZO5OUhPnhB8uXu7v5uYWFhueSlQCAQCAzh3nvvHZienj4X5GAbAoq2iaQpgbCFkAiR4IGIHcG9/vj888876Le3Ke65556LMzMz57m6un4B0tOqEz+7IGIU+hY6HXZxcfkJxPfJ4uLiaZMnTw6Jioo6 P1KlDG3YCxgnJSVBHQEpD82Vm5uLM6HZijicv5aPDh08dMedor+3oMCQKIpujmL37oduuXWau2vnb79at3WrZNcCQUHBsZmZzY7torPzYcsbRTnNExkZlZGR0fZhAZZQAtHR0QcOHCgoyJdiG8CB6Ny5C8ab7777Lj/fksoGHyvI7uzs7O7ufuFCWl5erhT7V7Njx47Q0DCMt8nJyTfdNFmK5bR3JjY3ZMAZan0pwHcIGUCdYLk60ghCsSAs+0un13701iz4eWgEfnWbpOh/KT8Q0pEG0BvvCMJX9FijT3a3fIyeIARCCB0Iy1RBuOUf6yw1MxEyiCPBR6kSNHBbLa/RVCkU+BBBTUSFWiU4aLQumuDgLi8/W3nbzSUKU1jG+eLHFtlpvaJfW1k6bECdodL/2Kn022c4Vhd4r19zYeQ4+zrB/PWnGY/Mc1Kpuqx4KXNEL6W5puSZF1Off82sUPg9/1Rqz97Zdgpt0pnKxS/lz3rYISctyzvU/4kXAhfOLTt2vGDOwu4FeUUuzuWvLvd65OGS79aaX1tmX16e6OXlMusBr9EjDMHuCp1SZ1bZi44aYm8naB0EOxfBzsGoGDFk8LT/TDGKlmsscMEhctijL5hjMOvgu6qqChoD4draWmzC5vHHH0cnLF++vLKysqamBhm1lBUrVkBdDBgwwM3NjS6GY3n23c7Oztvbu0ePHnDBn376aUdHR8RDR6EKCKdZs2ahEJSGSEB7VwI6BIWXlJRMmTIFbjc2UTuUyY033oiZBtMthBYMUBTUAqvovffe271796BBgzw9PREDHcXivejabsiFBri4uCCe3Y6FyXXBggVslR7sBcpnSC1oGcmuZUt0F6pesmRJWVkZKkJ1bO9QC74zMzMTExMRzzZtkIqm/Y9c6FgWWLZs2YkTJxAv2dHSsPuIQQAihxWI3oA9Q7KTQRWNBRjD+cDxQnY0FeWjW2DANu++++7q6mrYwLLZRnI4fwlZWRcHvrNy
X9YN9Rw4KjlhwgT3IUOGNIB4/cPR0XE36sN33MeLv5Nc1dbWpgcEBGxG/h1VZRnnPjdp0qQ0WXAvEAgEgg6BAWbkyJFx4eHh9yH47OyKaUmmxXQdHByO5OTk3PbII4846re3KWhLRUVFImz5G2zR1rnZExFTU5PUafDgwQfc3d2/9vf3/2t2dvaUyy67LGr48OF9W1paztbNEXQRSLrg54Fjx44tiIyMXI18+ATlYx/KzM8gVn8rKChI4rsdr7zyyos5fezp6fkx13uRfLGOxMXF3bJs2TIvPTmBQCAQCDoOkLALuKEoevr/RDDaS6Jgy2lJEiAGMByPRERE3FlfX++m39rmuOGGG/px4b+vr+9zuLf2TkxFxOxFTMhYK4gpydj3CP7PJiUlLRk6dGjx6NGjvUBWL5CF3Z0HiXlxcfH5NTU1bkVFRWWcCvbx8XlDL+cHQYZ34fvDmZmZOSTAJF/wewLIGZ8a1qYcmU9+fn7v4voxspZPIBAIBDYFp1Nuu+22gQj8DQhI/0HwOUjyYksixvQQ9DiF89SwYcNiufZGv71NQVtmz549uLCwkFNLm/nkJwmPrYmlLUSRMQq+H3Jyctrl6en5QVBQ0MNxcXGX5ebmFk+fPj1g/vz5/ceMGXOuTFmeGFwQT8K1cOFCJ5CuDGB2eHj4BvoUpItrHlv79et3BH7+PiYm5u7a2tosEi+WRV7DhfbOzs7fsKyy0wCCthPn3bV06dKwriqvAoFAIBBoC5JnzJjhmZ6ePg9E7B0GLVuNInEkjISDgc3Dw+OdioqKMddcc80F+q1tDtqC9AcWFBSMCA0NfcTNze1HEJ3D9kjEKNSJflaC3w6BDOzx8vL6LCAg4JnY2NibQMgaQRpSFi1a5MEF/SRlHCn7vZED2ku7QeTPmzp16qXjxo0LQnkagg7EYuT1/fDZf11cXHZy6pvljdOI9CfK9P+ysrKWlJWVhXF0DOmc/vDDD/cbOnToeG9v7zdRNo7y oFKx/JqhywcNnurqGlyUM/DLT9afPi5ZtMrNYZHCuTg6s9tgFnr2Wb6Nr6vWIhUVFeXl5c2OKs2CkWTy5Mm7du2SthvTqVNMUVFhQUEBzJotE4M2+zuR/HmqvwOVlRWY4DAwXrqUJUVx2jVR9HEam79/4JTFp6X7JucQsqPh4g8mfuucjXAFRiFp6w9kHCFphGS38PmOrl7NWoUWPioIFwnBJ4OQnm3+gbcP5mKXaVdgt1fQl7ra0eszxwThXULeb+5zgJBZsktzpfS+NWnjn0aLIqd5LDdNiCqTqBVU+D2YHLSKALfImbdVDRqUqbZXpaTEPTfHVJke9tCjRT2H15jMAZkXLr26xNXVMerZJ41DJ7rXepKNB7Kef9nZURu1bHHhmJFqA7H75tuLr7zgGh4e9uxLBdffVCOIDif3uKVlmolTyJolztd3yz69M+fDVXZVtXmCrsOi5zxGjSg+fNLw0SpizEtyVsTMneV14+haZ10l/GAFvGORWI7mZS8ZE4y9vf3ixYvDw8OZd4ux+/vvvz9y5Ag24d1i+oE22Lt3Lwsji6+v72OPPfb555/DCbYWAm946dKlM2bMaPYiPjLCU4fweOqpp9auXQv9g4owgcEd37hx41tvvQUDgELwLeWhueDB33XXXWfPnkUVTCRg5lu5ciWEyoYNGyBOrFnQvEcffXTatGl+fn4oXF4O8qIiGAQEBCxatIitjYZI7ClSt27d+vPPP7PCfy9QGgpPSEhAv0lRVF2wO9ZYY+644w7WA1Jyc8CMNQzfoLCw8MyZM9hllgpYaYiB9oMQRYHYcewaKpL3gBx2iBFAgZ988gk0GOsKbELpsYwoFor00qVLSAItFcXh/FUcupi+YPfPC/ZtW5+WfFVO8JTqWlJTK200Qlyvc5CCnObAhIDRQNpoA8HBwV9//Y20IWPYsOE33ngjhrJWxhYMU35+/pmWa25/O+Lj4wcMGIBAUVHRgAGWp3Q47ZvnqRKwAScu
KUfkxSGk83JVVVU1nx7WbysQCAQCQdeipaXlrMmTJ/tyHYyvr++rgwcP3kPi0lkipkgYSR3IxS/R0dG3gSD5IhB22cgOg2x9ff1FNTU1qXFxcdcg0L7t6Oi4F3por5ExtcneiJkZITsC/+0HkfzF39//Ay7oh//uSEpKWox8qq+urs6bNGlSwKxZswbSXpKT4cOHn828pA90d/QakGRR9/z8/HM4qgWy2W/27NleJKDl5eV18fHxLSBJ64OCgl709PT8CuVpL/xzmHlI0qVPHx51dXX9ISws7EGkM4ZP4ypfwFf90dGohS+fw3WHLrroIp7fivLxUWpq6rxly5a59Ea/CQQCgeAUAEcJli9f7lBYWFiHQPcsp8gYpGwxisQ0IEcQ8N4oKioav2LFii5/nyKnm0aPHu3EdWIgL2sZbEEuScaOkOSY2mUvZIx6mOqk+00T/HYU+h8CodxPQksiEhAQ8AbffJCQkLA+MjJyWXZ29vTS0tIqEN1MkIpULiKPiorqy2lNELQLQejO5UjaunXrOMVJwnYGiYeZGB5hU9eZpEEyczrLFO/Fe/LeTU1NF1IXkKR+06ZN85k3b15qRkZGLjA2LS1tNnS9JiYm5s98+hBkaRufJoXsJ2mC/VpZJJFWZBo+OopyuhPnbgZJWwjyFkMi+n9anXYaOhZ8anakl5fXs7j+EEe8eC189zV+vxoENpDETz9dIBAIBIKeAwPptddeewkCeWloaOif3N3dv0Og09aJMeiRHHRESCg4WkECERIS8hj3YkIA7LJpSQWSARKASZMmeY4YMaIGAf52BOS3Edh/hV4HGdT1YN5GfuxFlE6muildTUkk5Cj+4zTmARCS3bBth6+v7w98aTTy7/W4uLj/REREPAwSdBOI2s0VFRW3Q5aDiIz18fGp4uhQWVlZ7bhx42pBikbX19cPhY+i/vCHP4Qg7fD2BP8Hp6amJsyZM2cECNWY6urq2vz8/Fr4uBa61IJUzamp dMK55n4RcI4hGyKpB8luZ2I3kcMUue4UhOSr+R39OqDK4FsYWvjYCDY0EjuItiULwsk/vm1/HybRI4UdxpHaJwhaQYAuRf+8SQ/6GKp5mn4CaBYrgyAppeA/j6t0fOFfKixDtsIsqBQqg0Ko1QhGL5eeTy0yDB5UqVb6nTuV9vJik0rV6dEF+p6xNSrB/vS5xKeeJyZj8H33ZwSGKRyd7E+fzFz2uqgXY2Y/eE6nVnvYqzKSkr/4TGvn3G3yzKLQDmXKKoVY6RgWoFSqSncfqn7rnaDconrRLnjSdE3fPkXHTma9ulxXU56qNXWZPVvZb4DZ27fcLBCFiv7CMKtcPjpwbeEcw6PFbNSnTx+4y8ztrqyshOxBPPOY16xZg2/EYxPcdtttUCzr1q1jvjLAhIRIqBGkwlfGN+wBSwVsEyVAtAwZMmTMmDHMO0ck7Hfv3s0ud6AcKQMFPvfq1ashQhCAJYq1s7ObPXu2u7u7Xq//9ttva2pqWPuR+hCFqQjshVQEBVWgXgRghiq6des2dOhQ1lTsAoyhjrBpU/tvgbX2jTfesL7uBnTt2jUoKAi7gMag3gsXLrA11qTkFsAOQtHBDCDvhx9+iN6Q0mhFLLBz505IPhaDo4Ms2DvkZalyWBb0Embo48ePozEwg3FERAQ6kHUUQMzHH3+Mb9a9LJLD+UczoEevAVmXGlwOOaLo778+r43rJP1LUSga/fGodegFc22zr5SBWDp48GArowqS/Pz8tm/fJm3//bD+pSwoKFCK4rRTHiAEQlbydRrTNLI/Id/QRzXYBZxEQVhGxQbTSJiPNwvCkT9+Ph1G779qKsxagTXyQWnr38I8+o3jgc8hQZhNld5KQVjYwhFvCjoNPtPr0tY/j6sTOSaFoFcSo0Jh6TCDWS0qVUQFuSOE+Pd44zXxxknu1caoo3HJy56vczZGvvqs4aZpBsHFfdeupKfn1GiMsS+/WHZNP6Od3nHr5hOz5utNitEfvVfc
qbkV5OgWDw8P3vtBkMX/QI9/Q8cPcO8fSKAg+1EuDiJNjmppREvZpuxk+eMRdh7E9T+CfL4Eu66GHVkrV67sr2e3Vn5ra2udc3JyJnPEjOfru9m3wqYvoNONjY2NcSTo+iUCgUAgENgXOB00atSoaATZy/39/f+DILkbgeyoKRFjkFSfrREVTBF0f+STkgj68ZxC02/ZpVBkbObMmS6wqxDE43IE6cdBRLaBMOyBfoeoH4V2KTG3wR7EVC/12VRn2sB8oijyPGjQIE5tHsG5R3DOIXzeP3jw4H3Ii30ga/vgh30gNvtAVHbhnC9xzac4b1t7gv8/cXBw+A5kb5+fn98+kL19IFbc6mEf00UaB3kvdU/qYOpb08/8z/yo/09iuRs6fRIcHPxIYmLinOHDhyevXr36UpItPWtP4xrDhoaGJJCyVTj3PVx3RN9M9QjI37vZ2dmXNzc3h8jTjQKBQCDoNeATZ4sWLXIpKyurQoC7l4QFAfUAAyQFn9sCKT+fSBCMtSOvAzE4ioD9ZUxMzJ18Sg3BsY9+y24B7eLU3IQJEwILCwsr+WQcR+cQwN9H0N8JEnEAuh5RdipyQP2VvdbY3NNiriPtoJh/1/OkLU+ZVycTpq38Y+oj/qfSNr0/PytR39W1+Mxp1oMghL9y3y7kxePJyclLy8vLK+bMmeOXlpZ2rp51Grg4H+WSW3k0gDg+irL0o1qIDxK4JzQ09Pnc3Nwp1dXVPvIaIYFAIBD0WnAEiaNVVVVVQampqdM4euTm5vYDgq02Rckgahpo1ef2hOfwOgZeEB7uHr+hpqZmyIIFCy7l+iH9tt0C2sZpKY76TZ8+3R025mdmZs6Ijo6+nVtcgJR9hgC/y8HBYT90P26qTJEMJco289/sXTqqr+l15mL6vyJ5imzBlyRbezml6O/v/yaI+H0ZGRnzS0pKhpA0xcfHn2c6ykVwjRenkznVGR4efjeI2mdI9zBJF4/4/hXX/KEcFd91110c t4++qMLhq4+Pv/lsXaWxw6tvVPXpVW1nLEs7XbHodcWCFR1Ssis9nP3nzfeccW/m3p1VCxfEZmXm+of0eH2154SpWv8OokLjqnRwghKx/OwIvqy/MLj1AIM19Mbzzz8PZxdzGMQG2LdvH7QHBMDmzZuPHj0KYwzoSO3Vq9dTTz119uzZnJwcbALk6ty58zvvvOPm5gb3mjnWiKc1SKB8Fg83HUlQRPb29nD0USaqOHTo0MWLF61zHgzY/IE2PPPMMzDDJkBTZ82aNXfuXJRWXFx8+vRpxKCpSOrbt+8jjzyCBrDsrC4rcNMhfpALoFjYL1myRKfTIcxKKCgoOH/+PPx75LWCVGSEMb4ZLAbtwbdk1MKUDx0CCbFt2zbUCBu0BxVNnjz56aefRhKLrK6ufvfdd1knsG8pM90FBnKhnVCPCLDa4+LimH+ALGg5YtBs9OH8+fOtJXfs2HHBggUI2Ig9Bi3Y0mx0b0pKCkpgGnL48OEzZ850dXVFEspB4Zs2bWL3ynM47YMpOmehpFDaaIQoDBi0/vgBaYvTHN7eXu7u7vKRqiUwqjg4ODS7kBqGwfT0dIyr0nYLQORIob8ls2fPxj76+PisW7dOiuK0R/wIkV77TZGftfgZ2AtCTIMPEEnIakLWCoLlGh/9O8prgvCCIDzZ4HEhr1EQltDwH02WIJykNaJx1o/8TzssBgbQNggU0NZeKwgp9NeNfXmW7g4+/m3+u8Y/jkcI6UDFDDphoyDMp130oyAsF8U6GrZ2IOsoOYiEASLxKRKEN/944foHgV27CqAf6gXLO2cs102gHMyC1qhQmwWDWqh0cgl4eEHWwGGCWRlwcNeFRQvrS6uCH5iVf8vUelch7MyR9FdfJR6OMS8vKr3uGvdqc/8D8anLltcHeEQvfcll0jTX8sLgzesylq8gLr4hz72YExHuZDC4HovzrqzOhip58m7NLWOK0pPL3n0nPC+5RFPj++Tz9X1HV7q5ikqF1qCw
JZPtPAQCgUBw6oD7VPEJvIkTJ8anpaXNDw4OftLV1XU7Aq62rkoPsm0BWAXr9kQPzq2c5vTz83uei7Jra2sDSfhIjvTbditoI6csuQ3EnDlzfEaOHJkDUjYRgX9VWFjYX0DMXvb29v4cxGw3yASn3dSUW9vDC4p08LP6bm57e6KuoVj6v7vE9P7qsxr9Mv2dQvtMBedpDw9wShLlYzf89SXI1vNRUVHrQbAuHzJkSE1dXV0MytFAPgVpntckYPD9Rc3NzWHZ2dmNuPY+kKwvkO4hjqDCt0eQ7o8cuUSZmcoywzzTLxcIBAKB4NQFnyTjQuimpqY47isGcrLJ09PzOwTJ/SRVJCDWEg+ex/Nx7UEE1m2hoaHrQMKGIwA72cP6HZIyjsJwpAx2Dxw3bpxveXl5Br6Pou1xcXG3gJhtACF9gaM68MPnEBK0PZzS5KgP7DwEO1sVgeFRjSCa/sbv6nf6hb+R+Cjhd/5uybf8X6VjSVQa5teZp8fP+iildr7SSaWD/4/idxKsgzjuBTnieq2vQKL5hOY/IyIi1mdlZa0AeRo3YsSIXJAj/5kzZ17C6URLm82SgPE/5LUzzi9ITk7mFhTPoiz8BH24Ro9TwoednJy+DwoKehTnzmlsbIzh9LWl9AQCgUAg+F1AkTEExUiOSICM/RVB+UOObCGAapujMqgzeKsgbyqKFPB/BnoGeK4JAol5Kyoq6ka+wqe2ttbB3kY5SBxoO0kip864MSy+u4OUhldVVWXGxsYW4TitsLDwchCUJQkJCX8CuXgavnnMzc3tnyAZH4CwfOHh4fEpfPCxs7Pz976+vnthNxe278X3vfDhXhCdvfCPEpIebYG7OirBd06TavufKRJnKjwHaR3mdeaC63gtF+jvxb25KH8fdNyB75+BVG4D8XkfelPnTbDjPm6BUVpaOr+oqKg2Jycnc9q0aVHz5s1z5dO0HMHk+qv2RjE5wkV/cd+uysrK7JSUlDnwA8vMx5zu rxM1BhNRiGZ6aEjD+3+Yv4v5Bt9hYWEjR450dHREPFxqqJHPPvsM4QcffJBdImCe+oQJE5C0atUqeMbws5k33L17d0xpKAQG1mIBwlawySY2ZIE/3aNHD+apIwYlbN261ZoXZkhC+e+99x6KRSQ2oVLGjRv34osvIjsM2HoD8O8x06CQxx9/3MPDA3mRinKAvHZryQzYdO3aNSQkhO04QAkQaQigIgbsKysrk5OTz507l9RAQkLChQsXEMjLy5PsWjiz0VroQPYiINbgqKgoSAjsNVQEcrGug4CsqKjALqBqKSeFlQxghs4ZNWoU+hwBbCISIgdh1njsGrIXFhaibYhBdYjp378/FBQspeIaA3tYlpeXL1q0CGFajwXI1+jo6KlTpyIV8SgKvsiWLVtQIOqVMnM4/2Tm2+tIc+eyqCTrHfhiWVcgLi6uU6dOGB+k7ZaBDXvSsimHDh3G2C5ttAyGWUwT0sbfjPDw8A0bNmD49fT0kqI47RRoEszNcO0Aznv54IH5FY7FT/ShjjRCdgjCBGqMyLOCECSKK0VxcUN2NsHfIgi5V/KG5xOSTEgmIevbrC76ETKhsfEFUbxeFINFMUT2SWxoBvteQT9TBQFJfWlrk0UR8uYbui8z6MrIN9K7s/6hjCBkQct92J8QqBrrAR1NJWsNPF56gNB1yxu6CAF85MvooVAY4bDupeIQvqyU8A/k6kSOUiR2JoVKJOgDOKEmnOyEmAWFaCIqFOXq1uG5p86MGFSh0rmfTUt/4llzVmanmVOyunctMTg4xyXnf/IBMdaH3PVwZkgvs1GlPXW0cO1aZUWN2y3TM/v0dTc5hSWcLX97tcbOMXrxkszQ0BJHsU5t9oyMCQkKL9u+I/WpZ1yLis+FBBT+52bn/r0dNIJKYTCqDSLElsokqs0G+K5w8aF7pJPcFnjhbALD8F1TU7Nv374vvvgC3jDcXDjB9fX1Li4u06ZNQ/jAAcufPK2KiN2g3EZQBZ0e
ha4kXYc4wggdPkAZuC8zM3NCSUlJKNfvdfdUtUAgEAgEdg+OSHCkCEHYm7vUR0dHrwapeIWjGQj0XMR/3OhYe6SM/+ukja+W+RWE4M3w8PCbEITLly1bxp3iz0cgt/vRD+pIMgISoe3szndz4vP5zc3NA5588km/1atXR5BYwDdBIDMpICVVIJqj4LuapKSkGthcA4JW079//yr4rTY7O3sRSN2teXl5N8fFxd0UEhJyEwjbTfDT6n79+t3g4+NzL0jwyxkZGVtwfI0C8rIlMTHxGZCZ23kO/HuTt7f3TfQnyNRNIFK3jhgx4nrcbwoI3whcM7KhoWEkN3/FvUNnz54d/uc//9kXevUD2bqAdnAxvNptXjfVIvg/Rw/VlG5ZWVk+iOmCwMDAjdD7QxIu6M4RQr678QBI57d+fn5PcyE+dCoGmXXj/Uja9CQFAoFAIBCcCAy+XOMzf/78ixHMk9PT06cj+N6PAMsnDn8F6eDasTZChu8a+SIpMyVmioxBjnBECGTs/YiIiHu479OECRNiues5g/zJyEBvAG0wF/zcJiRzmzZtOgfE7RyOvNG/IFOa4H9tJG7evHl9r7vuugEclVTS0tLSBwSMI4jaubyOwjSYFtPUp/NM72sIuOYM5gNJGt+9WFtbm8L1cyCcNwQHBz8NEv41SBa3quBDDftJvqDTN/7+/ptA1Jfh3OG4xo/XyxOMAoFAIBDYCAzwHM3g9haVlZWFKSkpl4WGhv4VhOADELLdJGQgWa1q+syUhKnP/F1fj8Qn6g64u7tv57ojBPCVxcXFI7jTOYJ4HxILEgL91gIbg1OvnBIGmb4IJNidm6NmZGQ0Ih9WcXsIT0/PTziViTwl4eI+YZxS5W7+b4aEhNyXkJAwH2WhiK8f4rQiR9Q6QvoEAoFAIBAYBIMup+SmTJniUV5eXpicnLyITxr6+/u/BWLF9UecnmrbzJNHEjFFxnhUhAzfuUh7D677Iigo6NnU1NTrs7Oz PKVtyi+//ALHGgHqb1susGzbtm3Tpk1oBiKZTli6dCkyIqDX67dv344wzWppLRoGDWaNaQloA5QM912r1Q4bNgwxrC5UvWPHDvl1D5S2c+fOfv36DRkyhL1XGwwePBgxgwYNmjt3rmTXAih27969TBvgGzVCPGCXIyIiUAhSmWKE07B//34YNHvJhYHUDh06sNvPsIm8bJk7lsTaD4nIegbFImbMmDEIsP5sCsublZUlX1bOzc0NEhcdu2DBAhigZHQR4lNSUth1HmbG4fxz2fXh58K+fQ1TfGO8fJbs3y2FOS2TkJAYHAwH4AoDAgwUCsuflpqiUl35njcYYN7x8/OLje0sRf2dcHd3z83NjY6OTk5OlqI47ZSxDX4wTlkE9tOwFUyxmJUfo3/OZ9MtfhjHBGEc/YEMICSiITvMDkLht/rDGU/IJep5w9tWC0JbXsMEbXOBkO8F4V1BWNvyzwotiSMkmjYPwO4NevFhhSgelDVpICHv0CdMsC/4sIQe9PufxYP0Daef0geToNmkWBlBhHwlBS1dXUcXG8D37VKcheW0f9BLkH+HBIEtvwZQHHoGehXi8FaaKiX8M7k6kaMwi1qDqDQJZiIYiFBPFAYVVIVaKaq1CiKqiSE8pPvipww9B9uJKreUBMu60vqqbk8vKe7Y076yTvvNhgvPvaEI7ej+1ptHgl39VEbVyo8zH39N4erjseT5i+HhBocq1++/T13zuSaiU/grS9KcVUK9UJ2Qm7Xk/fqFS3tm56qJwnnO/PBFi4yOGkVlsVbQG8TaWqWpXmXSK4x1xIyjQUyC5Za1JsCvHT169P33348wm8Py8/PhzSMeYNaB0pgxY0ZQUBC85+LiYhjA/YWHDeOAgABLEW2D5Ro6dCjCKJZx4cIFFs8iUQXkDauXNeall16KjIxEGDFIOnXqlDU7ppyoqCimnRDZCjBAmXDfoXbGjh2L0gAyorqioiJ80/IsQHWgMXD6MddWNFBaWopG
x4IYpEyePNmRoyogDRwlE1JmJUiIOBLFUbXExMSLuJkt8ioJvhzGzVEjIyPvBAF7CT7/hr6ngGjtATHeA/L1M4j1OyBbD3KvNZCtmkmTJkUhvwempaWdSwKn30YgEAgEAkFPgoSMI2R8UfKIESPSgSYE/1tBqJ5BMP8IgZ4bpao9udqmJhUpMyVqOOcIp7i4XYGvr+9boaGhD4E0rMzMzBxZWVmZdOWVV3pz6pKjOCdaMP57AMkQ16XB9wNmzZrlUVNTE56Xl5cNojUGebAUpPiBgICAV+D/T5gH8OmvnELm2jwQrV34vg3581J4ePg6kOi5xcXFFUgjig9OMD9/7/4VCAQCgaBXgVOWnErkAu7Fixf78Yk5Pg0XExNzdUhIyEMI+ls8PDy4J9cuR0dH7TU4IGJHSca4O7qayuRRJ2qtIGUHcc1OHx+f9/39/f8JcrE2Ozt7YUlJSXVFRUViQ0ODd1FR0Smzpuxk0NdsDeOTq56enq/6+fl9hOP3kJ1eXl47Qbh+cXNz24XjD/jtPRCxZ0C0bs/IyFiQlpY2HHmSyhFMjpDJyJZAIBAIBKcoSMpIGvik5dixYy/llg9cT4bgPzYlJWVxUlLSGpIzyBYQhk+cnZ23gzxwKwdusXAYopEx7qJOkobP2qahgwYNOkQS5+rq+gWI2UsgZdPXrFnTV7/tKQv4sm9wcPDVkJ9Brj4EOX0yLi7ur1w4j+PM8vLyUWVlZZnz5s0LIzGFny7g4n3ZCkIgEAgEAoH2BB6nMDmlyPVeK1asGARy4Tpp0qTEcePGlYGQDcvLy5uTnp5+JUjWlTExMQ+kpqY+6+Pj8xRIxb/8/PxIvHaDhO0GYfs1Pj7+rpaWloF68qcyTs/KyrqYI38LFy50IMHitCFJLsmuTB0KBAKBQCDoMEgkOGoDUnV2YGDg2bNmzbpg3bp1/aZOndoHZGvA0qVLffBfOMhIBIhZBAjIYHyXBfsCgUAgEAgEAoFAIBAIBAKB VldX19bWSnYt1Ij4Dz74gOkuVIEa2VvkUNecOXPwjUi0BAbYEXQsNllGBi3YAixZ6rXXXmtNgvpCD0A4IcxiNm7ciG9WCKRU165d0U7EAJqpGXbt2sW6lwFdhIOo0+m8vb27deuGfUdvwODLL7/EsUYzpGwczj+ToKDgoZ+fFgzNXkMwZ3Xrei4tRdritMy5c/Hw7P39/W2GLBuQym58bYqDg86Ovh66dTAo7dixIzo6CgdOivp7AN2F8Z9NgsnJSVIspz3yE2ZVKWhxbR8UhI9pQA4MjPQbc+QP9I6vSfSnEUlvXWOuFpLyBWF6Cz8Zf0LmEbKdkNVUESELvutpru4tz+AofxXVJNBXBpqrr5Riyzh4/ILgImvMaUF4q3Fj/Ohr++H32zzJA6MdUvAyd6Beug4bJFkmbbyU0Dag5RbQxq8h5LEmeWMJeZqQPEKyaOEwQ4yUdiWiIRHpe1cfp1IN3YiegeM1o0kJ0KWahtUXYIZwDr1mdbi5Y7SYEPk9qbBYcyW9+huZSsgNhKCjrpd9sHkjIaFX2dtX5Op8O6IkxJ4QjaAkFi1O5TiB4oHm0SurlYpatVonhHcOXjC7JCzETqnzzizIeupN+LDRa57Tj+pvrjG6Hzlb9PzzjqGKbl+uKQqMtRcNTqe25D/7uLtrsPuKNyr6dzWrS+02/Jz28ocOgWGBTz9dEhOpVdb6nItXV9UlunvYLZgfcNNks6OHQqXVOLsT4mRPHB0EjUawsxfsnQSNFn4zdGtzf2LDpAJf9q677vLz82MTGHxc+Mr4RhgxcIJvvvlm+NyIYU4w/GyIAeokX0W/M9ffx8eH+foM6Ac2cyAMBQIQBgigOo1GAy8fAdSIEqqqqmDMMgKkwjtvSzPQbNSOevHt6OiIfUEM9hFJqAjfUolUSmHXWDNoVgkYWxpHF7NmSAkUxCMX2rl//35oIQSQHVXMmjVr8ODBzKZXr14QIaxwlPbpp58WFto+JCAVTQtHCQjc
QCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCHoVztCPvQNbtmz5A2XNmjVtor6PHz/ermT48OFn8wi1T/8/7U+MY8eOnWnJvq4Q3mPr1q1n457dVgCUfZb0sbXwPrgfpVvsw31O5z03btyo5TlF6WGuW2fExC7m3Vn67bscuNeZXW2bqZjYaUhYpnltS0tLW77j99Ops6qP9iDQ7+zNmzd3Ov+Qzln2ZJe1YqltZD4ZtYXnU+gHPZk2qP/Nr+kpYZ6zbOrqdTlQX3tNneWR+uqqnxSsO/n5+efMmjXrgrS0tAsDAwPtSi699NI2GTRo0AWw77g4VFxcfH5WVlaEn59f+pQpUzwslV+7ABWnsuPGjQvKyMgoHzZs2ILS0tKWkpKSy5RUVFRchky4LDw8/LLIyMjLYmJi7EJCQkKWZmdnN6Lw99XN+Q1gz3mLFi3ywHlpsKsR31toX0FBQZt9tpa8vLzL0DBdNnny5CtQiOuDgoLy6urqUpqbm70TExMvYkOhq9cpmOSdL/Ius6ysbHJ5eXkLfrvckl62Eto3YsSIyydNmnQ57jsaZSIXOsQvW7bMramp6UJbBD7YdjrzDmm64JiA8je8srJyAe6/hGWQZTEnJ+cy2GxRx44I7aqurr5s4sSJi2fMmLFk1KhRs3Cvstzc3IwFCxaEIj8vHjNmzLnUTVezw0AaZ06dOrUP7hOEhiIfNk5BPaNtl8fFxV3G8mlL20xFzz/NTuTXYh4NyBLUt/mNjY0huimnQc/42NjYy1Efr7BU dtttLAlgcl25ciX2giVBhiUlJSEMkDphwoTAwEC0nzWSZZGDJFiiXnQm+sEBTodOd8899yAJ9uiWt99+G21mltnZ2ezuOJqV8w8ATmHXLl1CQ0IC/AO6dO48apQkj//lzB8+hpz61DIWN0FUK1dc5GsBt5WysjKMEkFBQc0OLwyMToWFBRjrpG0ZiYkJ3t4+reSVg4HUw8O9d+/eoaFhUtRfCoZutAc90KdPn8rKKimW0x6ZTUiXBo8fQmIjNI8o7hTF5MZ+IcIYUw5CwwjCHHrHF4v/mcazDdjcSgNNQS0H6PvyI6gxsqAu+Gj4oOogycqWuRBFgnADzWL9ITXrrT5AyHs0YG0JeJR+y4F4G93Q4MMNLYHxPkHYIPupDqJXSF6gN+YBpu4eobqFRlwByKF0aBv6uP/19DNfSpFYSMgmQbiPLlsHvxOFTxaEF6XEK/AeIVtpgb6y9uMbn56SiQT2YlKDwgEwhuU3LSx5t5aQu6kNA5bo+VfbNnxdkXBCHqbCDAoTovEC/Ya0e10Q3hYEiN5Vsg823xKEPXSxb3QjLNGfc37zkt/SX8d/C6LJYBLq6xUmjVlrrFOLWqItzhe+/ibz5aVKlaLYPdhl8Wt+1/Sq//5L0yvLVHpjsrePx9KX/Dv1MW38Kf/Np+1MtUVuIZ5Pv+x+bb+q9Z8ali+3K1cn2rt0+XKlJjLgwqsrnL5b56pXZXtF+M+4TTd5ZIWnS51K62ZWqYyiGT8UBRQNO7GvAPaUufsvv/zy0qVL4aDDxwWIYYGvv/564sSJMENScHAwXG2Wis0tW7aMGTPGUkobgMeMKfCrr7664447rN2LWZOVj9JYjBzY33LLLatWrXJ2dkal6enpmGxqampYdl9f3xMnTlhVE75ZrtbZunXrDTfcAEcfHj9TO99+++311+N3Z4EVgtIQb20kAvIwC6A9Q4YM2bVrF2JYp6Ebe/bsmZKSgrwoHBJi27ZtaDAUBWxgABWxYAGGNQuI
T7tTWC5CQ0Np4xL4dHpqamrJ0KFDY6GvA8uTkbyrr693S09PnxYcHLzMntq9kwl1jYiIWJGcnDx+5syZl9AW1smamppU/L8EPmoxv6Y9YZ4ib1twbYHmFB3wjR/SX4S2rcfznPYyz9EWLUG7Ow95Xsb2CO2ss57nNukkMh3YfRHaAV+061loFxpRZ+mfy1nuWK+6qs6yPWBMQd0zXGfRTl+B8r9ozpw5KbopvwHLR21tbR/EqRDcrzwzM3MuytANOD6OMvCkt7f3E/YiLi4uT4B4UTb169fvH8j79Rs2bHDSTTltyJAh/VJSUpag3v8V7fXt+L4ecbEG7e05+in2gdWrV18KJUfCwX/x8vL6zMnJae/gwYMPOjg4HDIX/G5XAtZ7aODAgYcTEhLuQ6HUGhlTsKKgIA2BbXfBtrfd3Nx24br9lmzrKoE/qed+HPd4enruROHZCvb+CMjEFQjuaSSOHWkcGESuueaagQjctQgOf0a6Hzk7O/8K+w5Y0qMrxNHRURPkwT7ce4+Hh8cP/v7+/w0LC/srGsLZ06ZNi0ED2EdX2RBuvvnmi9HgVKABuANpbkHaO3CvvbivVjZVGTDVx5ZCu5h3uMdByF53d/fd8PE25N1mEOhbWJmRd64dIdLIuzMbGhq8QR4no2w+jHS/QIOyR+VdV9umROUf7VSfrRHWOfjhMwSaItqzffv2C1EH1/I/NIht+ve00EbUvQNs05B/LJuvR0dH34mgWUtixREFLUNOADTiDWg3Dlx88cUW72Gvgjyi/YcRmJ594IEHHGkLOn9OsP8Bvd20eJ250IfMU9TvX9CBXag5BeCICur4AuT5QXvLcxwPMs/R3u7w8fH5D4jRfehwj0V99edonW6CIbC9raqqGoT2doweKz9wdXVlndXiibkOXSmsZ0brLPVCOd6BDmyTblIb2IZNmTLFH7Y1I5b8HX77DPmt8QDk7ZFLLrnkGAWf7UJQdo+hDLcJdUOH9WEQsAG0 XLt2LasXzYA9DKAzrW/Hc3JyOnbsGHa8b9++RUVF7AJOx44d9+7di5JhExcXhyTUhSR044oVK6BYFi9e/MILGIsswH7nzp3s9jyARu7evXvSpEnQitCHSH3ooYdwxFECwqCysnLgwIHnz59HJ6B58DCwd2gby/73YeSwoVqtHfuBEyLuPXCkoqKcplxm5syZ2RnphGo2gL0rraiqrar088NISDEaLhUWnzlzRtqU4efj27tHN0njikJeQf6JU6cR7Nc3ytO9kcvl7Oh4+uy5hKREaVtGrz69hw3ucy7ecjKwGLPJjMO0/n//Q7h7924hAYFGEx1vRfFSbt6ZuDhLuDEDBgwM9PGq0WPkR3vrXd09165fz5LkPPzww9WV5WhqaXExjjIUMM5rdJF/QIBZFNZ/932zS11ZWfjAA3EXUhUN7Wwd/Dx8/Pw+/PgThKdNm1xVXC6oLBmNRoOvt8+nX32N8OrVqzf/8D/8liwZZBCzGBwa4ujmnpSQ4Obu/sknlkLkPDJ3bkJi4pWHblEozMs5euastNkqFydMDv5pkyA2s3dicEBwXXVWXo60zWkDHh6e1113LUYGNmRJsTIw1mGayMjILCpqZqUHjDAZGRnNjvY2oBwMRCjKzs6uoqLy9GnLNfw/k2HDhtfXW96i1rVrtzNnTmP2GTVqFOYvKZnTHgklZBfVGzhBcXLjM6rBCYYsYWsJYFzDNwxmU/3DMjLgtmKCZyc3CoGMmdbYAEQRskQQBtNC2CyDAg/RxYtbv0rwLiFjaUBuhLzwjG2uz3xDX0UKrLFozHfQSI3NoFsG0n1EM96gogVhFAjlZtNseNUQSDZ/8tTQJeNmttrmcfSiE8pktTDQGIMghDVknATXqKFLrWC8xmZoq4X3h1Sgl25QOOzwzWpBT/YXhCHQaRB7shLQLew6DwPN2AsV2qSKjoQgo52swSgWQA0mttqe1nmQEDjmOGfwzQoE7FwCiEGYgRayfZGDxsCA2cMA
hySruLi4CW3SQyBed8DmWxBLlqO9fRRkvAz2dsuMzQnBxgdsfQh6L8/A0XvRwLRCLBpsj8JMAPM9hsC1Ez35LFOncpgVTD4djc8GFNRfkEFHaRulOwsT78N7UleK2f0PoQLvQIF/CoVjLEdWdPVPCjQkf8A1QxEE/4G82zNgwIBWSLfZpcTUPvVZt7EV/x9E0PsWDf5GBLvSO++88yJd/RNCt60AfnkStu1Gem15Z3pf3lN9t7WY2XLcbzxCjqAh3Ofr6/sOGq0VINIB1pLo+++/vz96zpNIxGEDA7tpupqo8mKul62E91Cf1f2tEZ7POsfrUbduRz27kDaNHDkyDL54RZ1jL2JqJz9TPxyP6nm3lSP6TU1N3gyuWuaY4c033+wXExNzJxt5e7PtRMKyw/aAeqP+XafKZmpqagKDa9++fQ2VL/oOdfkj09ETEliUgSd4n64sq50RVW6hfyt8sR82fAJ/rERbG2JtfSUee+yx86urq6tA5l5Em7QPabbSJxTeRx3pB/W5K0XZZUT69+9/DGV+84oVKy7VzdKwaNEiL5SLZfDNh9D/uPZI3Y92URThUd97Skx1YPkDB9iOuJGs6vGqVascQbzuLioqGl5YWPhnyBMlJSXz0GG8GnHlatT/8zXjewq33HLLhZmZmQuhyA5mDB1OY0ydbe9CXVlI4uPjbzUdZUGjehaH3dFD+QJ2aaRSnd/T9pnqwKMq7KjU+yMiIh5BDzVWN6NdsAcXGRm5AMTyB3vLO3P7WDkgrew9p6Sk3Dpp0iRP3QyLIPlCr2U2zv+O19pr3lFY9uh/fD6EhvmdoUOH1j/99NMX6KZYxB133OGB3vgdSGcPbVPp9bRtRoQ2s/ePxixTN+u0xMTEkewI8T97aKAtiXnesXxB10P+/v6vgUQXW1obU1NTExUQEPCGKoe9RZgHtJEdIPT4q2gLg1N6enqTo6Oj1lmzJp9UOjyGhIT8/bvvvmsr34gfGW5ubt+TkFuT 32g/Tk40qTc93KyT274QgrW6X49RYTYpTFqTSmlUGTWkrr6mPjXt7Pr/uWh0Cnud55jBoQN7KNIKc9f9TyDGEnul+4ThIb27qPPyLq39XivqSh3cvMaP9OvbqWLnoYp1O9R6daGdsss9k+09XLN/2GHcedidaHKc7APvv1M75YY6L/cqhUIlwDHHjmIv4du0dVfhIsPlxYxyzTXXMIeMuf4I4Lt79+7sYRKM9dTcgsWRok+xw12WotoA7FHOqVOn5FOjh4cHamlpzoM9dBR8fdYAtFOr1SLMUisqKqwrAbCYtgAR0tK1DsDi0VRUZwWRFhFAYWY2YBdglpSUhIkQm2x38P35558/9dRTjz/++Pz58x988MHTpy2+MoOltlSmZZfopSo3N7cHHngANiwGCgSaEHXV19dD1TBjpLq6ulpvbGsJ5Fq2bBkkIo4vDjr2EXrpscceg+6aO3cuBA+aiqLYYYIxfBEgZf47QQSiUhD2g1eIRKezvMlUTufYzvXV+EFYvGx8jPV1Xt4+Bw7sJyLNQj9woCTrJqALLP3ALIkgWm72tGDS20uRDZ/y8vL+AzCcNoOft3dqUoZaqbxsT4TSckmMoYdRbkM8KmzGBQdBQZZLc8wMe61sIjgDAgLvmzEj80Jq3qXsgrw8dmLjfDIZTdVVVSlJSckJ54cOGjh0CAb8FjG7OGKPpcZc6YP2oPUsY1BggEKtsiaJDcNyl86dYWeNt36IgmRmZJw/faq+prq8uPDBB+6P6RTLsjCIEn1iWR3lCh8imEjzPWbDgOjYoJOnaJFNMR4KDOIK52opLi7CEBQZGYmh2zIkNRlIcYZkZmb26NFdp7M8umnDwYMHw8I6hIVZ/ljQNK8clAMDDEEYsTEgDRo0qE+fPoGBge7u7pLFH0PHjjGgd+/eFRXlTk5OCMTFnamsrPTz89u3z+bRDE574z/UB2XuCEaN5bI/868WxZGC8Cz9i/4D1P+2UTgRhExr8IyRN6GJ
Vk8I89y0jtFuHA+z84OgXGfN6DXOGZCRkbEcneVfVedDpWd6L3sW6ox4wdEvrSwQ+nRjKeryv2HLIdMy3lts0/P0KDjAGq7D0007bfny5Q6lpaV3koChnfobyNcTsH1GRUXFysDAwFU9SsDYa0XluR4G7NULpEXj7FlY4dnYI/B9haCdoJumzc+DnEzCOT+YBjh7FaUfKwj1RWX4HxrJLMXkzUGCwrUOKEA7e4N9SnSicgS9jxeqqqriLNnHABgXFzcLeat1CnidvTbspsI8YMOMBnpvbm7ulWjY+ukmHQfY5xobG/s3XHPE2gBoT0J9qTfKHhu85WrEubW19ZyYmJhb0InQynBvsssk774oKCgYbTqKTuTk5IwEydhrzyTDkrA9oW2+vr4vX3PNNR60ZcWKFYOQT/fyd2vbDdrMPAVp28u1XppTANTfM1NTU2ehLLR1knqTsH0BIfkRnfX5yPN216pOnz69HzpMq+CvQyz7ltKyZ2H+Ma+ZR1FRUQ9+8803GvFg/o0cOXK0n5/fD72VA1BoF+rud83NzfFahunggwMgzZNAsp+ZOXPm6sbGxqpx48Y9ijr+BGdXzOt5t4EEBfefjoqzm4WwtzqeelOys7OX3XvvvW29MrDcoWgsvulthUo17mzoPT0934UdLFDHkRSSFhDn6Th3R28M4IpkhoWFPcspO92sNsDmQgS7j3tjQ0dhfUJjcCAvL2+CeQXnFAYa8pvhA6tHH+xRqDsa7VfRoEXqpp02bdq04KCgoBdUnbR0nb2KClCsdyh7/xs2bFjbqB6DFQjzjTynN5EMpS8IcWt0dPRtqrODdj+a065GyST9w+nH0aNHZ2iOARDUXJD2w7xPbyvLKs9Zlp2dnb9BntfoZh0H+O0PIODT4EeNfPU2O5Xoo1/fTZo0qS3/xowZk+Th4fFZb21rlUD/o6ijnAH7zUgmbOwHAra0oqLi4SFDhtw3YsQIjoJVcRBDP6X7AaYYAsd/0psd VLiRkLcI2UbvpEIVzG0FL1DLVhTOePqCUfbnZLkRsp9srHAg0qCF4PIiyhoLs9TGCsefvhjUcic9bcYmepEHQyosXmzS7LGEzG3oEznQPC0+UiwI9xCSQ+/EQ+2sMWx6wPd5+iIaKyNoG2zKx6ZWEIa34HGNIeR/9LZAdp8MjPDBPkIsjaeO/jN0tTRoFStrCIGxtRa06rXmFA66+mOq36z+LkqG0UNXqXAgZa+ni9S9Q2/Au0jIY/RCFrQT+hm144MAqwWn3AXa4B/oghaQ2dgRnGPyzyp6AyH2CGawhyuQJgjOgvALfcErDt98+jks67GJtAGr6GWfpvf+oQG/FZOgNIh2JoPaAM1hKBdSz+e+8rZ/XlWN1qMyeoDvfffVFpzPXjTPO/ViqZ2b+frJfrMeyEuJS1nysPel85VaF/e7Hva+956iE/uqX33e9fwZvcLB5+mF9jP/U3jijPD66rCssgq9s2b67ar/jDN62ROlnavC3tFEFDiGCngAZtPlM/wKwOXFdAJ/GqP55MmT4a9b/BgcWsptt93GLpUwMzW96QswsyNHjsBdhmsF4BazAlsCBjDDjIWM1gKDg4Pt7e1ROzZhg3horV69erEq8I3ZBS44Zk2oAmdn544dOyISGYFer7906RKKxVyITVZLs7CqUUJdXR1bnw2FAGTENMZKYyAmOjr6s88++0rGl19++QXlySeflOwaV4fywfr16/EtRdE73N577z1IkbfeemvNmjUffPABipUy0x6A3ktLS2OKiCGlUZgUwTc6BJvMIUCunTt3Ipyamvrjjz9iEzUideDAgZj+WSE2wABVQBRlZWVBZSELugLxaN6JEydWrVr19ttv4/tdSkJCAqsLNvn5+Y8++mhtbS2yoyXyXfv7gE6xOfJBQcH9+/YuLCzEjmBTr6/t2qPn9p2Wl6+LckuLS97SOYNSm/v5NDFHn9jRdRqa4uXp2cwyU41KkDZa/6HKU9k5YMXDw3Ng3z5Z
z4rAYOfl5fWhaSB/8MEHByI4PM8Cp84zv9beRQWxyMjI28zXhM2ePTuBNrPR4zm9seFjuWNgSEhImGf6qPjmzZvPDQ4O/jPPY/711saO9gUGBr6AYBWqm6YBvbF6BPif+H9vtI0666MGR9LT0+eqoE6gUzAMxPN7/t9bbVNEAiT5Li4up118whNl8sXelmfUlXUI5OJHEIgGLZMAfK5DPh21loDxHNUewQ9Pffnll9oCZwJkLsnb2/vz3pzntIt+Qn19Fm3Rb56gr62tTUF7+0VvG/1UYmLj0ZiYmLtUna2urr4kIiJiI8s1/7d07YmkI9fYWqgD66yLi8vXDQ0N7S7b4dOvubm5YampqTkgoC7Dhw+3egsOm4NDrWg8VyJDDnfUieo6Hll4eexuUY0lbFn40UcftT1SikAwGcF9F88x19saMb0Hv7dX6UzPO5FYuvZkwnuyUQsKCnqXC5t107TRL1Si25luR3ud5rr1lH0sNyCYD7IXrZvHLQxyEBw+4X+WrrNWlE2W9LUk5tdTmEZ7/51IeB0bNa6FQq9smG6atsjVx8fnOVVf2vP7ycRU7+4W6s5yh3K56eqrr/bSTdPKJWy9ysHBodVoMDbNK6ZvC2FanfGvr6/vK7NmzQqkbWi0R4PE7GeecnrV0jXtialt5v9ZKx251tR2EKS3Fi9erLUh11133YDo6Git/bA2XabFPIftB+Pj45cxHYJ5jrZ2AnyjjeZauvZkQh0s5V9HpKM+Vr7gE8jTp09P183TsGDBgksTExPvof0dTZ+i7tFTwvzh6CXKQYRuGollLtraPR2pr0zT1Cem9+pO0XU4go78baZrv06A3yx56XbceOONg/z9/d/sDPNlgcdnPgHGbRX4+O1+VNBuE94PeuwPDQ19Y+LEiX66adpj8Gg8n1O2GS1YtEvPVD4tcwS/H4DstyTUwQq79yEdptEKsXjf9qRPnz7siW9Ho5Cqm3faVVddFeTp6blV978hoT9o GWmQpNA/bH9xsAAssQlw/lRUlHl7uvfr24/lakrb/yDSBAy2ErRpLfXnZXD6sVYZDcbU5OQhA/qNHAHPQeLK+Rtoo+X82C4kL7tZc9FJt178O57S/wj27dsHgX333Xdj9G46MuAoY6gZP35ceHiEFCXjwIH9dnb2N910E8Zz5LU5q23A2QKbvLw8TBzsDaH+/v4TJkyYPPnmvn37Dh58DTP7jYwbNx4KasyYMddee63BUF9WVubl5TV//nwIm7Vr16INmATPnDlzVS+f5fzjGEbIfQ3XK+ACHmjyd3EInk9E8S5R3NzcSbsPJ6dsxL62sQ2c3bcEYRI1wAdDEnxcVPEeVVYXCHmiBR/mc3oxBD8kNKlprY9L/1roTcju5l5PiWF6WOPG/JfuJmsJPjfS9qAxd6E9jS3fp7e9WVtm08RGpg3MpXdVPUcv1zDQcng5MGY66mlBSKK1oMO/JuQGzKQ0yQZYNH1JcyRdfe5deisaqx1NQvlrBOF+Wgt7SWuKKM6SqVDLUy4NRxagrp8FoenKAWgMuhoHUQ6MoHU3NjFuFuw7e2xpK5UlOBaoFznRSHxQL9qAnYXTAHX6Cj18IaLoL4rDRfFBUXxIFO+jJ9hr9ByTfxCDeOwUzGAfKIpDRPGoKHahu89AwFsKWlhBa8fBhfiZIsVdxprr16M1qezNmhqVql5dV7t1a8W859xPxevdnA03T4p8YWllcnn27bO8Ug+XOWkcZj4Q9uCcqiMZ1XOfD0g4keFTG/Tmc75TplcdTi1/7jXXigvF7mbywizHcaPyd5wufeV9rbE4JdJVnDPf5/ZZJq1CMOi19YKuXtRQhQPvBv+0tJBaU5jbAUUBd3/mzJlsxoJTi0gXFxfIHpbKJMfNN9+MOQlgE8oEMxnsEYZf1XSqswFm586dO3ToEMIoE4Xge9q0aYiHS82yIwayh72jk4kfRKanp2M2LSoqcnBwmDp1KssLkGXjxo1wJRFzxdoBsuTm5sbH
GwU6HYUcxu+/sYt+xX8ntU//bx+u4aPshnxNYR4lJye/jkYuWDfvNASHFqat62jxOktC2/RG+DibTPS0KOo/02t0oV0HkebRjvha1/1XSLVuGke/JoGU/Uq7jfqKomzk9T0lLJMIuHvQ4I3VzdIwe/ZsL7QpT+l5YFF/S0I/8BrkdyvzAv7hNib7OyNMA+mSMLH+GvY19Ue78i7KpfakX0pKygpHR8dfEah+xP8/4n+rRD+Xa1C3Q4fdHclzXVgefzBP/0SC83+E/T/jnrsiIiIYnLQef2FhYbifn99bzEsj+jCPEKw/r6ioKGY6BAjqQLRP93Ykz3m+XscP2CrPWY+hC+u/IduoC21Au/otOrtDdfM01NTUcIRve2dGv5i2qj89ISRYsPEgiGQbeW5paTkf5HklbTeSdxTmG2L+bvjrbXQon0F5+geOz3a3IF+ehQ7/CgsL+xs68W3E0u4xZcqUAlSmnSwYlhzcnrAA0vn4fAjGvxEZGbkaAbRp+PDh49FITYyJiek2QaBuwv2bUGG4kLttOHHs2LFpqJDfdKRRYGHFcT8I3JtI+y95eXk3wc7pSGs8zploKmiQNT3QI/yNbqYCPcei4K9Bgd1lxN/Uh5U+MDDw7WHDhrVtcllQUMB77zBaaSh6xfkVNr2YlJR0X3Z29nUoB1OhVyP+P84+Nzc3Tf+T2RcbG8uNVx9H43dEb1At3tuS0B/wz4aFCxdqm+Zt27atH4L4k/yP9hlJi/eGzp8GBQWtho0TlE0IpCe0gf9FRUVp+cnzKUhLux52LUTw+jv+M5R3FOqDcvgzrq+gbSyjSO9u+En7z4htFF4DHY6yxxoQEPAT7NwB2d2dEhwcvDskJGQ36vrd995770DapZCenj4E/v/KiG08j35l2UG+PwpyMAEBr7Gqqmoi2pQOCa6fWF1dPQ55S7LL7Uu0e1i6vyVR9Qr17rmbbrpJW7QO4uyF3+LPP//8KKRltYBQRp199tkBnPYA x7Ndxia+b731VlREy7OAJDc3N9QyceLE6Q2gkYiZMmUKu6jFkAqloPaSkhKoIOZfAsQgzOQE6xyWhaUChC9evIg9hW60FEGR0hosWZ9DfLJV7BCDBm/atOnYsWM//PADezwJ/iK6BW1juZpiPTQbNmywvoSUNU/eMATQWsTgm8UgDEEFtYAkdj4g8u/P+HFjMtLS0HUIQ9r16tP3h42b/yDvBJ3v7uYibTSmS+cuOK+kjT+GWffNrCgvU6mk84ceTZOrm5uXlzc0NDv3gIIoaqqqe3Tr0pJHKJpEk+XIX0a6j46CU0GKbcBsuvJvzQrOJXZeWTKKyGqBJeHXnZmePnJYC62id4G2iPnynwZaYYqbW2Npa8UkegRvLS+StjhXz/bt21599VVfX7+RI0f6+lruAmXjBgMD1+7duzHQQjY0XXB59+5da9asgcgJDQ3t168fJho2IMtLsAEGAANRQUHB0aNH9+/fh8G8qKiwf//+UDv33HNP9+49YmM7R0VFY86aOnUahlYMm2q1xo7i6Oj45JNPzp79IMbwiIjIrl279uzZc9y4cfiGvElKSszOzsb0BHkTFBTUoUMH1Pjss89isoBxRUXlrl2Wv5Jw2jf3UE+UgcAyKdgmviOknvqvAHOPdJcFpT8hZ6grD9iwBf8Sn810E655GL10YLkpuTEdCcklZAg1RntQfgr9Ez4DtRyWXWiaSP+izzxXNMO6I7CHMy1nIX1hqPWXhnJg/yNdIGG37AcYTZs9hlqiWNjAcce3ZWalsFbJCSVkG10mDknIxTLiGz79I3RdMvCmIMA1RwAN/lR2KQbT2CbaD1ZQl836HovodbB+1N5a+Bb6pFAneoVtDnakOUdlHrVkoP1QX29IW5f5peHSlhyUhTbY3A1ow+NU2OCTRgh76Ai5rB+AHUH+SkH4jH5CRdFHFCeK4juiuK7VktsCBA+6tILKJwinGVK0hQ9oA9ClrwvC4iYVofd+K0QhCiajo6le
UXnO9D4nE/qGviTxQx1ZBd/6I80I83ucSHB9DHSIRDvmoGUSkJ+fz4cJjrBtsXRfS4K0tCPaxX898sgj2j5iBNKKQb59YmQEhefRx5AjHh4em+GbaZ3Nc17LNNCeTUT5/BvqndaWW7q/JdH1oX0fLVmyJEY3j3X27LS0tGZVZy1deyJhmnoe7oWfdqFM/Yy6a7FudZWwzqIN3I12+l/qIQyitLTUEWXyVeadJd0tiaqvKFMfI6bVceaC66uam5sH9JRwec6cOXOs2tbILoBCdQYfpUXh4MZqFh3dntD5CG6H0bhdM2PGDE8+YcCeFdPkEZWBr2LoVtHNagMI4eXQda8R21TBwuedCMgzbrzxRlfOGa9evfoc2oRkuZCax+PEGnsZeFH4r0PaB3gPaxsqCs+Pi4u7C6RS268FaZ0OsrAOtmlbahhJiw0SGryPuQkhCy7t4yZ17dnH309mH//n+i1U5A28hxH7qD8bNvj7cjZ0uCfJczZ1NJp3DCbu7u770KMbyTKp26DZZE0e6T4wlzO4jQka9zKkvc1Ig06daB8a9C0VFRXRSOu0xYsXh+D7qx1pyHkN6t0B9PTuAbkoueyyy+KWLVuWiGCRhc85ixYtyu4OQa85l0dFmBVYLpGPS6GjoelH5jMFQfM5joIyL9iWsM50Us7gMgu0U1cYIbwq33BNK4LWrUjHJtMVaG8T0WP/wFo9KMo36Cy909DQkKQn1Sm8//77FyUkJLAtUu3dSYX68lz45AjK3zV6UlqeozM4FmTH0PQjbWJ6qOfv1NfXR9gyz7mdAsjmRJRDqwkY7aNO/Axy9Lh6OpCAfo7oND3MtKzNNyW0EXLQz8/vkaysrBHcN23FihVJqK/dWmdxzxzeD7GsbbkAMWHChHR05n4xmncoB7u5sSnqV888PdjbsW7dun5oXJ6n41XBs1bYuIJR/7esrKytR2VPYOWBbc+w8NM2I5WGjSMamPsV2bEVnn/+eQdUwn/rFdLi cSEt7813PRIz8lwdFNPGhM2+Vamtv7js9YhiY45KVz1+gu/4ceba0tJVr4VnFZY7hgg336EJD6pNOlXy3tve1VWZJofS4eP8rru2/tSpi88/511alOHuLj5wh8/tNxJPnbletFNqBKVJVJnManO90mxWCCq4vs3dg946bJqBd4hvTFEAbjSmBykZJ4dSCWeaXXWpo+sLHzx48MCBA+xRe9hLdi0A5wauOTQJAqwilDNkyBA2e8mnt+HDh2NqhBlzuBGANFq1ahXCt912m9zyv//9744dO9pSO7NZu3Yt1IjFR6IXQNAGiBwEJCOci3SVZ5YKM4a1RsSzgA2I//nnn5suJNAK2DX05IULFzCtSlEtg3kXTWW9hMD+/fvfffddtsuY9QcOHDhp0iS0kxnbgE6GZUVFxaeffop2wuyKfcWAGQ7WunX4GVqWiZNi/97gzCkuKGTqAs1WadRrv/0+5Q9bCglHJD0trXcf2zU/g4KCT544zvrZevL8vjz80EOnThxnfwUA0BHevr5Epd25d//Offvzi0rsHV3g2LHa0ZILqSlTJ9/k79/Mcoj5eQV+wSE+gdInODyyW/ceOK9YqlqlDouMsqb6BAS7eHiwpLagIKRbr94sr0bnSBTKiMhIqwBTa7UYQ26/Xb6Ap4RWowmLjL5cb6NPsLtP214ZuWNvs4O5qFKev3bouXPyVyBwfg1Hjhz+5ptvkpNTMEb17dvPw8MDJxvGGZx4+HVg2Dlz5oynpwcUSEREhLe3j5SNcvLkyWPHjm3cuBGyHDLJx8cHsiQwMBC/XxSCElg5VlguFAsQqK+vLy0tTUtLy8jI2LRpU05OdkFBfnl52b59+/bs2f3ll18i3s3NFVIK6HQ6DIDfffdtcnJyRUU5BNKlS5dOnTqF4bempgZay9XVFZNRVVU12lxcXIxh08fHNykp+dChg/w8+TdwJyHDqT8KIAygQE62eei+nhDrUhsYbpIFwXK7CH2+/C16V5Ur
vc2FelMf9JxaQSjqkYwWCFiJgLeVfZautSTqvjk5OUtaW1tPuD+VUaCRSkBj+p7RskTShOt2otdaqCfFPaQWsbdoJFBRWJY5YlFXV+ejJ2UzREdHL0WPz9B2EfQFBWT5Dm7gyXRADrnwWdsSxdp0VDnA8WhSUtJqbtyqKWVnWL9+vRPq3aNGyqWyjYGdJFxPymbg2wUQUJ8xUi6VTgjgP6AjN0pPqtNIT0+fCaJy1Mhog/Il/PpX1Fmb9PBHjx4dhPReNkKSKSz7KLtf1dbWtq1nvPLKKy/muhvqqNqXk4nyL645GhERcaeelM0wc+bMSzhzYaSu8jzqT2IBonyZnpQGdFJjPT09vzTiL55Hn0BaQZ43cfsKPTm7AcjTuehcLlC6WrLDXHge8w7x54P77rvPWU9KYBQImKkuLi4/WVtpTIWZgMZyNd9/pydnV0DPPJrTIEYCAUVvdI+R2bM3pSdnE1RXVw+Fv78z4m9WDO5Q7e/v/1lFRUXb3HZRUdEYNORc42HxOkvCtEh24Jc9paWl2XpSNgMq8hxOk9A+axspCn0OMv+PkSNHejMdkueQkJCH1X/m57cnPBcEqRUBcyHyzmYvWEVap2/YsMEvKCjoX0bKE33ABht5fgSkieRZSwuB72b+Z8Q2lXfu7u4cuWx7dNzegA5ZPhrmT40GKgZKBKmPampqCljvOJraWWEZQIA5Gx2XBvhtlxGdmMcUdJhebW5ubpv27wxuv/12h5iYmAeMliH6BvVqP0jOfD2pTgN1hG3RLiMERbVbqAevcfNgPSnmeRh+e5PtlJE8Z3pow74dPnz4SFvnOdrHbLRz3xuxj3lCnXDdZxwV0s1jnT1TH01r28DbGuF9mSYI3U8gcMetk7QXIO8GIu+eYd2wZIMl0f3Exe53wjc9v5C9N4LD8ggKV8ChB80dfDJhIUWg249eVJmenN2hsLBwDgr+HmsbOgorDAsiAsi3VVVV2nSRLZGYmHgt9OnQ9GNU 1TOsOJy7R6io6CYI19BNxOOTSlMZQfSpdHjtbBTOEYR36J/kQxsuRyBXgiBMpS2MpauWraSR+GAX0H5WF7xAmFkelGwA0uVhKWgB9omCMAsTSuOdfYQqEDSbtS2NXg24z/ojbKjoF2lL6EvIm4TsFIQougkzGICzdHEF+PT/o/fjBdGlmdHguYRAB7JC8qkm9BVF+UOW2IWN6JOGCm8hZCshDzRkAQhsoN2CTQSG0hh0ftO/Rsyjos4qL+ENjG24lMR4iN68x5aKtpbPgNFqKdiIcfTpfyjbTEJmU5WFD9qMDkcWfFBROpVtb1HpFSyKnUXxKVFsKjZ+O2+IYhdRjBDFG+kKGVKsILxEL/ig86GmpCgZzcyLV4ueGOpIjSInJ2nVR445+QbRKPbvEXDPLQaFvmDTOseL54uNRn1Er4Bb74FcOLJ8qTb7hCUppHe3/yysLqqKX/6CIu9MlanGddD13eY8qz+Vn/rcCz7KAj2pjBp7S9frp1V52NfpiEJjD+fWoDLWKc01CqNeYTZhFsD/zXu8V4D9wZ6dyZhgmH/MkgBievbs6eTkBEcZScxjfvPNNzHTYFN2/jcP5pJdu3ahChijFjg6wcHB7EXacNwlIwomJBSLWQfxSEVFiPzqq6/y8/OxyV4/ykBR0DlQF63XDkt8o7XsHZesQERi8mMLAdHCLGB//fz88I0wLBksHgEWz7CU2wDiU1NTsUdSWhtAFtinp6fL/0YopVGkKMqTTz7p6enJIvV6/S+//GKVRtjxbt26Ydda6gEkYX83b94MbwMBFAJLWkOLYE+REcZo5PHjxxFAIay0vzMhIaGRoSE11dJzYhqttqa2Pj0d4/PvD+siUFFe0b1rVxa2An+tnB4gdLXW7vJTZL8jrvRdVQz8pjpERmzZun3TT5vz8nKzsi4ePXb0+x++T0hJZWtUADut3YYff5g2pelVa+GLL7742MJH7PPuu2uUSpVlnKbglH9n9Wpr6n8//mjF
VNTGpqamwUyHhR4N+Rqkoa21snSNJeE9GcTDwsKeR6A74e7zRsEnT8PDwx/iPYzYx3N5TElJWf7ll1+ex7Tmz5/PkbR3jdrGxpbkkhspgkAnp6en53VGoFMuGplMNL7l6KVvQHniwl6rbeN5LE8I4u+godM2BUS98+b6GaajbLdGWI6ZFnr1z69evXrY/fffn4aAnnsiufnmm/PuvvvuwlWrVkXDn4MuvPDCSy644IKBJxPcazA6VwPYRlBnI4iLi5vP0VqjgY+2ofx8jMC3Eu1K89ixY+d3RhoaGnhsRh5eBfL1vrqP+b3bE5Y96h8dHb1elcvOIjc3l9OP7xvxDYXnI/8+bmxszNWT6hS4cz3sWkkdrC2DPJc+QR1oRdtzu2ngzczMrAKRMrQvFvOC56Nu/IB27aZRo0bNNM9Do8I8r6+vn436v8TV1VWbabB07/aE51MvEJJ/vvfee23b/SDtS1Hv7jPSHlGYHm0MCAj4FnV23Pr16zMs1VMLkn/XXXclZ2dnOxqps3369BmgL6GwGnwxOdpMQ3tI0i7G/yFDhtw2Y8aMzGnTpuVMnjw5rzsEZSUf8SF3wYIFfH9nX5Jt3ZTeBU4/hoSE/JOON9IwURjEUXHera2ttcvhR5IBVKKHVYWyZEN7ogeCB0eOHHncwuLOglNGaHxfUjoZLOzH0MhNR6On7ZG1adMmZ1TqN5gO/7d0nSXhubwvSMWVfO2UppiNwAWrsO9dI/6mLixLaCz3Z2VlDdGTIlFtRm9TW+xurZ8oul/5NO7PuH4HgsJOHDss+vU7kN5u6GL4CUilf2xs7J/RqGpT9egYVMNe7ZVKRm1jemgs9wYGBv6E/N8B2XkyQT3Y5enp+RXu9TbS+S/kzRMJgsx/ca/PQPjXLF++/Lj1XScD99zjNBntMuorCvzMBwv4rtADsPNgZwRp8MiXmB+mr5m+tf7mebwG+b8XZXGqbl6nkZGR0QhyeoRtjLW6KCKItvrJl19+ m29KaW1BQXbv2c3y/u/7/23++edvf/gxumOMdEbh120yezenmnAeXkhMs9bb+PPfHdu2Snat0/x7qETBN3BJhtyp4PwmamtrMFBs2rQRA1tMTMzAgQMxTWDcYEMNJggokNra2g4dwhYsWODh0ehVaeDAgf2nT58+e/bsjz/+eOLECcwLkDrXXHNNjx49MBqjKK1Wi7EIliiQFYtvgBiUz74ZrEbEINU6aiESYBPzBX4REFRdu3YdNmwYRNe8efBVSCQV3rt373ZyckTtZWXlkF6HDx+qrKxgJXDaNxAVz0tBi5+K82aptNUmHqEuI4ZMnHkQISNFMUsUv6IqZSKNZ6MpmzP202sRNwiCX0MS8sI/3tQwTeCE/IiKCpzfaMkOQegviq/CRZZd6EDSddQe3vbP1BhVwxhhjGvsvGdNQq6ChpLH0iZJvwqaBeoC5cgfLvKmbwWFEGJ/RkJF8PKHieIPojjBsoSwlB0N3gt1QTM+QYXcJFkngPP05rfxovi9rHAwkS6kxh4BQlHojb5U+SDp2gYJhyR8ZtFIdkvbK5BntDGsfJhB8ATT5/ihLlg8PghAQFqBmsqjSyawNiMjROMoUZQrnJ/pwtPSX91oD1sGGgrsT0KOyoy7EwL5l0ZXioN4Y3/dtNqjFjQAe/cqzihRHEpvLXtdFOXr1P19sDa7TVjGT3Od3lxbZdbXGOrq9HVmg6iqElX7zyctfEq3/WfHemXJjWMDH3nQcCgxceaiyg8/tSf1tWPHRb39in1VXs79M/0OHK+y88+cOzvmo2drTu4uuG9OZGKWQJxrb70n4JlHlOkpBYsWeZaUlig8xAcfdH1wqkFnZ6dWOwkKlUYpatVqwc5O0DoKWmdBLa0WjXPwKsFPy94ekskCmxUQwyYSK5gk7r//fiZpYAbvCg73xIkTc3JysIl5gsEWSkYqs4G8yczMvOGGG44dO4ZCUCZKsLOzu/XWWzHfoCgYs+rwjVQ0A5Pc1q1bIYGs
2SZtEtptP+TTZuph6Z6WROUpfPID13vpSfFNDn3hI21j2o7kOQkd85x5ZZp/HRXmO3x8yKgu1F9vPw6AnF6lm6eBT4t6e3tvM5JvFFVnOQKOeshF91bVWdTvXxBft8M37yCdk9ZZyFu41/u4z1+5oF5X+6RAHDkHnQLtzQXUFelYLfBDKzoFfPpxh5eX185ulF+QFztx723w0wtcb8oNoBEbe9c6NCgdhwJr+NU8PJeNU3Jy8lqwUZsGcVuBUwaoiJ+x8Buxjb5gYUShnKLIjq2AXlQB/P21EX1Y2VnpUei+BwFr21gOvbyhaAi1pzstXWdJmJYeVPajQWkjO7YC9JsI3+2gTkYaKdqHxumVYcOGafsscbQBwWED0zDa46TQvyrfbSEqTfXZWlH+BoFrTUlJmcERA0pMTMzVDDoqsFq69kRC2+gzCtM/majzeC3vdzJh+tCPnZCbTffTswajRo1K8/X1fZf3NNfbGqGP6Rfq0FlhOpSO5B2F16LevcURAt28TmHt2rUDIiMj1zJt6md+P0tikh+HQQratg3oLNB256Mt+oWdH97D0r3NhT6kLgh+/16xYoW/ntRpI0aMCAgODn6VaVm67mSi0rWVqDy3dK+TCa9H+/jV0KFDC3TzONtwRkVFRT1+79D+ZioPra2vpkI7VL08kfA+PBf5sPm+++5re//xycDNV9HReoj3Mtf7ZML7qTrW3UJ9VV7jeAj19CO0PSN6DQmjonl5eXPhSO7zZNHB7QmNRlA5jIA5yl4NLisr0zZfZSZZssGSsCCzkqBh+t5Wja4pEIRX4B77VKWypIMloU5ouB/hUzh6UlwMfi3S4L5UVqel7PP39/8PCGZbA2oLkFhAx3txH0PEQuUPSMkNa9as0XadnjVrVhQa+bf4n9GyaU+i/I3G4TP4W1uzdccddzij1/YU/zdSNjsr1vpR6YzOC9+HN5w6GwG3EUCg6vQrWno631mGeQwLC3vgp59+sjqgnQiV ugJVTJkyBQU+//zzarUa0x675HLo0KERI0ZA/yCprq4O1SGSgRh8s/ZkZGRMmDDhyBHLTwB5USAasHr1agRgg3oZLBcqZXMqA2HEIwBjya7xWXvp0iVoLaRiv9AqCBLIkqXN8cILLzz00ENszrb0lNG4adMmNJs1XiqaIhVNKw0NDWXrCrAu3bNnD4zRJNSl0Wjmzp1L29v8SYvs2P0vv/yS2bDC0ZNoCdrz0ksvsYaBV155ZfHixfj28bn8B9edO3eyW+FZN6IBqBoB9i1v519Lp06x026+CU1l/YB2hoVH7trzh7znEV3q6+fHrqKgotKSEhZvpXNsJ8QjgC7q1rU7DhmL/72YPGnymTjL41UIo3B/f/+Dh4/m5+exVCunz5xxcnVjLQFajUZNV0K7Ir/hKZ1mYbOeRHZ2dp1saXJ0Jk5jaaMxKnL1o5gNfXrQeccG86UBA9dv/Una4vx+nDsXjxEDWkWj0WLUGjJkCFQKG29xHqalpX399dfe3l5dunQZM2ZMWFiHZl/6uXfvXswU3333HaYANzd3jDEODrrg4BDID09Pr06dOrm5uQ0fPnzGjBkoHEBTsb+IQRT16tULMfhthoWFYV5ARTExnTp0CPfy8qIr66hgAHu0Jz7+nI+P9/vvv49BDMoK00FAQGBBQeEPP/yQl5crNYXz7+Bm6jGxYRqjKpxUqBS6dWX6ExImG2XYOx8O0MfcMdpa41FsLf22vCiwyahkvaNsFiHJ9K01GDRh/B9BuIe2ZABdGYyBYldSD/5T+mQ/klEaRvnpglBNxYCVNxruDYNUgOiCaw5L646hCpt3hPUl5MuG9coAZjg0YFlDVzzWkBcNQxtuo9dk1hIyi8awJNbsOAiqxje/MbAXrzd0Cxr8JMpvsAklBJqBdQuibqSBQYR8RtdpAIhkrTpAdddceilM3sMADbau34B92Urv8bNONjjEb0tBCxgFEgiJpSWgZHyjf3CMGIhB3psaSkMHwln8
lZXcpuFt+tda3/A86oLe/ue1tbWlelKdAkl1enr65STZys6TidIDn/kao+PW/aBsF6PN7HXvxTQX1d4EBAS88vTTT7eNNM6fP79/XFycoc1qu1t0vfZmZ2cv1NW2CoiTwegwfc0yaZ6mNaJ80hNiqgPLHmLGe+PHj7dpXOsytLS0XBgUFPRER5gvKyKCyqcgBG0bntoTSApBBh5AxrSaZtTJhI0HC2JERMQTaq2VrfDjjz9eFBISoj2RaW2jR+G5bCizsrLm8OXGTIvTPKg0LzAtI0Fcnc91aFddddVvXrHRGSxYsCDQ09PzTfPKcSJR/gaZP4iGo1JPivsJTeK0H23vzQ268gWn5ObOnatN1ZeUlHB/rM87Uu+6S6gbnyKdOXOmocaM+7ah3t3DPDNSLu1NqD/LHqexEhIS5unmdRoo46NATg8YIaeqzoK4Pfvkk0/a5GnzMWPGuKMt+jttNFJXqQfq5U+wY6KelPawDIj6CqbT2/Oc+uN4JDY29jbdPA1Dhw71RX1428gDBt0pyvdoV7480et3LAFtbRbK+d7enHcU6o84uV9/cM7+R8GmTp0agV7u10YqIYXnsgHhHkQI5Ha54dn69ev5ipetRm3TKyBf5D1v3bp1Nn2yEwQlydXVdRvvYa1O1IXMHvm0E73ntqfeRo4cmY+0vjRiG4VkB9cdGgboSdkMqMjjEVy0p2mtbaR4Hhs1dAS2QCXtKTP2rEGA1/F/I2nZm1Bv1hNOZ/OBANpFiYmJWYHfOjz92NWidAbxuMHo9GNpaWkceqFv0DZLafcWYb7QBg8Pj/dN611nAF/2gU9vNjrqxPzANa1xcXFte251FikpKZloU743Ov1IQf6+PWfOnLYXrldXV/tw2utUyHO2N2jDfqioqGh7WwXrbEFBQQWIp6GtZ7pLqA/zhf4HqX6KD1foqp8UtK2urm44ytfR3p5/9AGI5EHEkeVr1qzpuZdqWwM6ngu6oXiHph9h6GFu4Il0 nl6WYdMSqxff+EBb4rOM3ooGYbOmyY7/DcFhugrMBAdA1NardHq1wqw0KUVDdZEiM+nAIw/p4o/VQf/ceVfowmc0GXlnnlzolZjsZPauGT7J/7X5dqS6cOFij0sFBqUrueGWiBkz7dIKzixerKwsKHLWma4b3WHGjPLkpLiXnlSWpWURZcR//uN/y6Q6VxfLHXiWAy6iZnbg/wQwMcCxnjp1Kr4RZg4u3PozZ85A5xQXF1uvACAA34vZwDk+fPhw586d9+/fj3mO5YXB+PHjH30UGrsZmPseEhKyYsUKnU7HimUVofaRI0c6OzvDyUbJKAoVFRQUjB49GqmoDiA7kpCFpeI7ISEhNjaWXUeCa4hvzLu9e/eG7oIBK/+3kJSUVFRUhJJRGjYfeeSRp59++vHmWLhw4ZIlSxwcHNBIWKKd33//PZOIyI6m0vIagXgYP/zww+gBKYrCdqRbt25suSFssvimbKewGlEIunT27NloDNrJWsVYsGDBE088MX/+fATQEmZfXl7+zjvvsOPImldFQdVoM+ItFfzVBAUFD+rf98zpU0x41NXpozvFvrFiOUv9I0BvuLhYnsbBiRoRbrmDX05kRDg7qZBK2qYrrgqdvVZfK73dEgfF08f31KmTbNOGM2fjXRpezogz5EJqypgxbBnSv5K9e/ZaT2acQn/cCLZC5yB6uDXMvwzLCscLEppZsJvzO5KQcB5C5dtvvy0uLvH29oEyAU5OTjjcGCrz8vJOnjyJodrT02PWrFndu/eYMIG9gcOW3bt3paVdSEpKPHr0CAo8f/7cnj17MN6uW7fu5ZdfPk2BLEEMRtFffvlly5YtiMnKysKk88033+zYsQPSvqysFCc/hrLQ0JD4+Piff/45NzcXCgeTCCYC6CiUHBcXhyoyMtKlijn/JnDyMVcYk2glXUiNbl0Zi3iQgha3OF4QDooiXPngBveXgSSUjyEPARZpTQKIHEHvqtpFyBN0AS5Uf5BGorT/
bLpFg60A3Wq5FsmobSQoaJh21NTUtL3qx1ZAEF4AnXYb0YmVizqFhoY+W15e7qYnxQb0Kvx3gHlhbYOg0goICHgLPbq2F5XbAjqxuAv3MTz9yHMRmG4DtD2t+GSLr6/vFv5vNP/sRWgThQHOz8/vfb6gmLa99NJLjui4bOJ/tN3StT0p1ItBBj3pXzMyMkZTZyNAh2wiAth+ljOmZeke9i7KBzyi3t2hXsDdWbCD4e/v/zLTtnRfS6LKiYuLy7d5eXltpKAz4Oak7BCQZFtbV5Ue/Iwg/xemoSfHEV1uObLzVJh+pD9AJp9+8cUX2/bXmzdvXt/Y2Ngb2RbZa3uk67U3PT29RVfbahQVFcUi5mnbs1hKt7vFXAdrhdeCJO8eMWKE4WUT3Y7m5ubzEAgeY4GzZEx7QiOZUahwn3Onaj05uwLJADf1g65HjGQoGw82jqiAz6FQGnry62RgrwSN72Os5NTJ2oaK57OhBOFavGHDBu0x+J9//rlvYGDgP4ymReE1qampf+RiYE0xGwHkydPHx+c/TJ9i6d6WhP5GcFGby2rIyckZg4q03WjZ7IjQdxT6sbPC9Ey/MyBxj6XCwsKpLfou0SNHjsxB3dF2QDfX5WRiep+uFOoG0vg6esZtoxzWQN/WQFtg3h15Zysx9SuPLJMow4fZ6bHl++SSkpIqXQ2+6Jj6sD6hzLy4cuVKm2wZw9fFREZGPmhqtzXCPEVbtBOdpWl6Uqdxzy20JwuNjOrZgyjblVB3yFFPT8+3qqur03TzNIBgeqO9/bclgmKNGPFxR4VlBGXr+6lTpxoerUXb1A9t7g1oq/aw7NMXZn7pVjESP0yFuqPj/sn8+fNturVSl2Dp0qVh3t7eX9BYowWETkKP4CG+80lPzq5wzz33uHKYnHoasY3n0h/Z2dmXP/bYY22vn7AFpk2bFuPh4fGpEX+zkWYQ52gEGoU8PanTJk2alIYei6G0KGxAUElbuXkrSaqenE1QUVEx EXKMrm8GM8TjG+VAnGymBmzW19JbsJB0U0PJCEMssWfrJxDyCX36hZVgBWEUexchi+nbOUvpBRl2wQRsEAQ/UUQD6JZFn2Ces/65Dj3Wm95yZrNWNaqYIgg3NNeBmwj5hjYVaShngSB8IzODsGT7gr3DzA1t1o/2LSzYByWDX+gVJCiNTnRT3o2ATfmQXui0dQ2XVhiYhnFkUQX2FPsLxYLGOFIDRGI2HSMIveijQaxNiGQ3qkUS8gMh/6XrtqFtrDEMlLmKCpv76ecfoW2ssN5uK5blYEV4hQrBrIQTrTIb1SXFycuXh9fXmGv1nkOHBd09va6mNn31R34VRQaNOdfHL/Ku+wwVpfHzHnO8lJ2rMvvcfEPMvffmH0va/8STQZUVor2TdvTYsIdmFWVcyFq6LCwlo95RGzbjTsfbb6n38SoRzUShJJY/t1o6nB37P4H6+no4baGhoXCOMWcw4O3Bs0xMTIyMjITrjEkFlvCP4XthMvvyyy+feeYZSKCamhq4fbC3uH2E+Pv7z5kzh7nRTWEuNYpFxjvuuANmyMhkAKauQ4cO3XXXXXZ2dvCTEFNbW6vX65OTk8eOHQslACmFGFSBEtCA77777qGHHho2bBjqRcmIh3eOjK6urm+99Rbbo9/uqa9evRplojTmumHCRgB1NQWtwkyP9lt8O6oZ0DPQOdgETCPZgAaj63r27Nm9e3cpioKi0AkrV65kxbLSmoLs0HjsMRXYoIqIiIj+/fsjC3qPHSkGOxxoBuQfSram4piyOxJZLdiE9/Dxxx/j4DazgNifDjqyX5/eF9PTNWqLwkEj/QODv//hR5b6B4FTTiSWkx8dkpqSMuehy/c59+vb79SJE+g99KSbmxvTXa0As86dY2+6afKkJvj7BzR7UKM7RqvVljMN4HTavOVnFm7KsWNHfXx9rT80fW2tr498/ZW/hpGjR9TVSyIN0t7J2YmF5eA3GRwdLHWEjBtvnHjzzTdLRldiwVef
0tnZ+Tv63NrgwvOoE4jbB/C5tt8a9eJu8fjP0Egaz6M/IHxh+lEOqfNojdCHrLzUhUejwut4b6TFl6sfhRzimgo0Bv8BsRzJx7w1JwEIwvNALg/wGpxv0Zb2RM9vdQ/DYo1P6D/ofhQB+o9G972aMGFCGGx+mXrifoZE2WauD3XG/yeStjWeOP836Z5MeE/cm2WAL+k+iDK8l3UrJibmeqPr306E7du3X4i8v84IUaE9LF+4hoveb7ZVnUWZTEb7+JnRESv6GddtRYCL05NinrujrDxupK4qaS/PKfj/hKLy3KggbR5VnjMt1tV9IB+fo9O+FvbEmvsZBKwY7ebhjtRZ6kkb8fk3Nlgjpj5pT3Celn5ISMjLmzdv7lBM5nZEsLMaHa+HWDbYAYZfuNXDfpD/bhXUQe3l6UaEfkYZPIp6ey9fF6ibZZ9AATsDzh7PIGG0saShaBAO4/op9jrPyiFIZGKHd4evrKy0+e7waPRmo/f4K3XivSzpYC48j5UePfGXTDdMTUlJuQz/72HeWZsWhWmhgn04ZMiQcD0pm4ANVlhY2K1sDIzoRF/wfASXdeiFaU8c3X///Z7obb6q/rN0nSXR77sfZfoZfL8Tsh5yz8kEeX4Xer2PJCYm/g8B8kMc3zUqqampHwYHB7+AevEnkMf1+G0l3/UGouzCuqY5Cfj00085cqmNPBixjedToOcn8PP9AQEBd0PusVag2z1oSLkw/h7c16IflPTt2/dPqAPrQdLbCL+1SEtLG4VAtcNoYKcg335Ao/8Q7GTeabooXWG3ZoO5XfDlXfj9fnZsmAZ9xKO1wjxAO/Ez8utJdADWoBy25OTkVCEIB/KdqLpZNkFDQ0MAAuQ/jeQ7fUhiA59uLygoMDwdbAmsqyivTbDb6nd08hzqTf/ChodbW1vbiDn8xs6g9gSdkTznuQzwaBP/jnS5dKEtzykogxbzPCgoSCv78An3vLKY9omEdqCe7ouPj38hLy/vLvji rOjVR+wWK2oUgpqI+PTpOZUI6882rwk5vztZWRePHz+2a9eu3bt348cSHByCGaRTp9igoCCculAjGzduLCoqPH/+fL9+/TBQ33DDDV26dLnigvhXJCgo+BpKRUUFRnv8VBHIz89XKCy3QDs6OqFJ0EsnTpzYv3+flIfzrwTqIooOOADjLbuG0BaC6BtvmOPLBmr22PfihtIYSMK8DoeYWWLK/IH6+laQiql9niCE081qQXieruPcURBy6NM+GLL7U3ccRaGEBOp/w0lFTBZdusCXvo30hQYDgOoS4fTT+7WYsbxJDMRA0mAX7qJLJFfQXGjMxiZP6cDRR5PYNvaiiD7L/i294oQ2WO1Qy1JBONzYoYLkgK7YR0hX2jzYQIpc3/g2sLl02WvWS+cFwZ0uA8BeCceMkBEqEQoHXfFkw24aZFUzRgkCRpmf6NprrH8YsEezUeljdE+xv+xvKjC4RB+biRTFQbSTmQeGvGgG6oLs3C4IPWjDUBcrMJu2BOUEiOIb/yhhIwf7eBUo4K8KxKgU9Frojnoh82LKkted9p6oqTerR0/ye/iRktRzGQsXuJ05ZdbaV/Xr2Xnl01Xa2tOPPxkWn1IjqFxm3eF8/9TKuPiKl94IKLqoV6vc7n0w4L45+pLyC28ti0pI1Bp0DtPu1s28q97bU1TZu2scdYJCbbLUih7+0zqZ3XUAd/m5556bP38+kyvwn9hf9OGsv/vuu5iiOnXqBF8E+gRz1b333rt8+fLq6moYME8LWeBAL126tE+fPo6y5wrkwKdHXSgfgUWLFmFSRHYA9YLU1157bfHixc8++yxs4MHDDOoCgcLCwv/+97+jR4/u1avX5MkWl7Fr16633XYbWlVVVYVJDiUgO2rH94svvhgbG6vT6ZARm2gVA+HWkezoQzUoENnPnDlz5MiRuro6tBabqDQkJARhya4xaC36AVMvmsFs0HtffPEFwihQXj6rDsBLRrHIBZ2D7NhrGCMS9s7O
StT7McOHDw+39DaXjRs3Xqi/J9lQ+VLnw44f4LM/Qed1pnacTFC270FbfVw9aE/w/59wZLszUle7Q2DZ4EusObMVFxeXzCdbm5qaJk2cOHFyY2NjU1cL0Mh7Ib69xjbEqL9RlvYUFxePox26SfYJMsSEhIT70bsy3JNgjwwV7nsQgig9ObtDcnLyjSiUHdqeAZX+xbq6Ohc9KZsABeIskCgGF62gWKsT9ecRDcCqO++8U3vYYdu2beeicm5iOkbso/B89PLWc0dnTTEbAUTcFY3FK0onS/e2JPQ3gm4rGvFGVWlQgSoQHLRXR1m6xpLQB6yw0OEdNKoJaPTORRrnWSO45blofC+87777HB588EHnDRs2OBkVXsfH1JnesGHDzuOuzJYaAfyXBrLwrlHb6Cek3cp1O0wfx3MRQM4zKqZ2tydQUzsa3Umba4K4Z5ga4TFaxlE//oR26VJLeWfJForyA+p7C84z9NJvnse2jAESpKuBhGv8+PF8hU2XNN4g5MUgkj8YIaeqbUZA3sIZCz2pToFPdoMQ3Gu0DNJXIEz74PPFelJs186E75sR+AztjcXyQdtISFHvnNurr+b5TVF5jnpeh3OOGrkv7eC9YcduENorUE/PZV2FtPvEHDqr7iB9/+J9jJQt3b98cOIeU72NirlPTiRG66w1YB53o5xRVVXl6K9v02Lu1xMJ8xXl6NPp06fb5a4Mx+H6669HW+D5MZW2ZMyJhAURvfC/2+v042OPPXYJAvHrqpJbsuFEkpmZeY2td4dfsWJFsJeXl/ZyaiM6sRCiUB0qKSkp15PSnqREWp8aTUtveFpB5tpe5G0rVFZWVkBP7WlaS/e2JGykaB9s+aSwsLBtSiM2NvY6/Kc1rNY2eMoP6MneB0JkU3JpS6CHyp399xptzBm0fXx8PkcwyNKTsjuw18zOCwOPteVSlQEEjwPwzSQ9KcMYOnRomre39wdG/cryiiNfAn3clgO2xsaNG89EIL7C zj169EAYyLMAtklLIgcOHGASEaCEGTNmsHKQJG8nUrEJMTNw4EDmZMAMVUNAwhXAziJp2bJlEDlsRYqLFy/+/PPP6FgUbnWj/2Tq6+pmzXygqrxcQ5dGQDPCIyJPn43/oxd7VdA71tgZVVtTExR0ef1uN3dXnPAIoDExnTtDlrP4lsBxMur1diqFvVpl8ynMyYaakuxkpKen4WAhgF+/j59f6w9GZ2ZdMjXcHobfqlopqaM/CcsqJpfPzNGjR9wybXpRTr66YVE4nD5FJaUsLAcnXnlxoU2H4KPT4tRvdKq3zoJfNpDTx6f6+U3ROU718Qm+mL4+w+YeDc6fRGpqKrsgs2fPbgwpZrMI+eHp6eXr64uBGoMYBmR8Ozg4GAzSGfuruXQpC8N+Wlo6RmOMzwkJCfhOSko6f/5cZmbmkSNX+FVy/iX0p6/vZLMXHFk47vIHNlqHrQTA8iLPdEHIpXnZI+xWEIWSASyhp2+gL0VpCnM6VyK7KH4kisPo3WXwTpDL2iCEUVQEnTUQPi0Ig0RxC610PCGdGnx0gN8PKppCr1EgGcaH6JUfIB89kWQtHMA3Gg33vckrgODox9BCAKrwbGgDwtbS0DAYNF2BejP0kiCE0IoOCsJwen2JLfTMgILCIWDb+I4UhLvphRqUZjVCAPMW2sYWeMDmBkF4t/G+ADSyA01l/SNPRcemiOKrDZeS8H0KzaMd+DptzH8adpAB+YcY7CbSLMkUTMYoZyBd6Nn6DNU/lKsUOQJ9vkJjEkyldukpJ59ean/wrH2d0nfmff6Lnqk22WU9tjDo6Ha9ymS6/baYZS8onIWMp5/sdDK12MGh+pab3W6YYMjJKX35xaDMsxq9mdx7h8utNxnzyy4seiHw/Kl8F3Py9MkuD8wTHXVqs9HOSBzqRAejoMQBJJjtVQrpF/SHQ51kix8MBxc6Z82aNcy3ZvqBOXzQGxcuXIDvu2XLlqKiIvh5iGffSMU37F955ZXx48ej
CDk10Y9E5R4GKD25TiE/Pz8eZelDI76iMF9Rxz9CgMzUk+J7dp1iYmL+arTeMy344mB0dPRKPSnDKC0t9SMxNUq6eW9IKzqxj6stfU6E3NzcHFdX191GCQHrAIjpT1zuoSclsAKIdZUoG9pr+iz51ZLQ1yjPnKbfaOuRa5sDFfl09KJHIxAYej+iiRwtLi6ezcWXepJ2hZqammI06NuN2MaKyQbJxcXlUHl5eYmelM2ASjwehepno/6mTr6+vm+ANLWxevSkZ4JIGd5clls9IK2P+ToNPSmbAT2169DYaO+jtLYxpNAGNOB/njNnjra57COPPOII8vy8+s/8fEui8o4jafDNJJZvTSk7A9dTgaD8hTrTNmv9xDJD4dTPtGnTXPXk7A6cunN3d//BaGDn+SDhb40cOTJRT8owtm7dOgCNL6djrC43FPqV5yMYvzJ37lybvGjbEhoaGryDgoKeNKKbSbnemZ6e3qQn1WmggzmOD72Q1Fu6ryVRenPk/ZVXXml7eCc1NTUBxPdzI6N6FLYTIDVf1NXVdbit5RpddLiW8L4dyXMPD4+PEaxPuNH2mjVrzk9JSbmio/dgp9v0bQGCE6OpqenC5ORkLkGw6Nf2hP5GHu3V9/+yy/a/DRx2jYyMvBsFxNATghQ2COgF/VRbW2vo6ajuAp2fkJBwNXQ1tLUGKxh7OP7+/q9lZ2db/Q4ta8AhbgTPv0AfLvw01FDxfDRyN91www3aaCPX3KG3vrEjabHR45OhkyZNanu82hZ47bXXnEEsnqe/qZOle5sL9WZZ4ohcWlpaM/JNmwJA77oUQfwLo3nHAMCFowwImlJ2iPHjxyf7+PhoD4ZYssOSmPjpCEjuHD0puwPrXWJi4lUgC1o9srZcqjKMcvknkig9uQ4B5aiOT3EZHRHRycD3IO+1elI2B9qUPARjQ+ukWAcoKNdbJk+ebJP29p577rkYHZ7b6Xdr65jyEUcl4uLiluhJaXmOjmUjOz4s HPgxtGBbkARgibCbm9sbb7yByY/VgqLgW99xxx2zZ8++9dZbEQNLaxX4hsONBmzcuBENYA/qoBDEo+UoEDYoBwXecsstrHzE4xvxDIRbR7KjO8IUy6OPPsrWVUNdaEzfvn2ZjoJBU5ARZhMmTBg0aJC1zYmJiSkpFscLKoKWbcFSGQWRAB0LkYMA2yP2PW3aNLSBHhYL1NyCtS6E8/Ly9uzZg1oQRiGRkZH33HMPs2edbAWFIwbxCECq4eAiC8LI++STT5aWliJ7REQEFFp6evqmTZs6d+68d+9eZERFrPw/H62dXWpKMhoubQtiSXnFn/Ny9O07d8IbQwDnXFFBPosEbq6urOehexMSEhuPtM2ADqysrKwor2j6KS8vl58JVgz10g9HNIsRzb2KRI69g+WinLRBSGFhgRT+U0D7hw8d+sTCx/GZM3t2kH9weUkRdgx7jVR863QOGzdhHrQFGcvLymw6hH7KK67++iGEzfrS/PVZafztn38fIM5PnjyJX+vx48eff/75ffv2bd68+dtvv4Ua2b37ty7ZjPPn1KlT2dmX1q1bJ0VxOE2YS71zDLIWf4r6zW2HrQoNkBHnK3sa5C1ieQ+yzXTI5oBb6CMoF0TxTEONDASQBbJkliAsp4VYnv6nEsJm9IelZeLHVI7ZHypLNjuw5+/lYBMflMzWAJhOq8bUaK2XweYG1P4a6qVXhGjEZebRPbL+1QHJ7HOSLipttUZdKHkuXXYMn030dTFjG7oX2d+kbWhavvxCEwph17uwmzbtRCQ+rAegJx+GKyWlXIbZADZ8sF1DFnhXr9B6EUAuHV3wDb23tKExfQhheoaBZjDNJm/GbKo/VzRp/z8U1jltxWQWVWo1qa8wJyekPPG8T1xqtbm+eFA314k3iDUlhS+85qmvKXF3M4wYGzTj3tqy2tQX3ghKyjDXOdYMGxt05yRTUkbyM6/ZlWZm60j1qBtDxk8qPrU/aenjuqy0Go1j7b13hj02
o5autSTq3gEBAS91dlNZdCYzSPqN+JWil7tfQK5m6ElZxLBhwzzQdm+mfdamz/P0vDsaFhZ2r56UwArMmzfPFST/HeanteWT57F8enp6frV06VKbPbHcZWhsbHRAIHjXSCCg0FA6BpXwqUWLFrnMmjXrgtWrV/fpSSExQc/5AjWHv2nTpkvRmL9G21TjbskWc9ErzDFU6Btuu+22gZ21jQsZp0+f3o+bFaL3eiUaL21Hd0v3tiTUWw+8Rzkkq1g9Cxga5A870oCS7NTX1zdxLZkt7Gtubh5QXV2dwJEHpL2POlm6f3tC0oTG86uMjIy2/dZAMpayoae+RvMuNDT0AZZtPSm7Q3h4uLa1BnW11jZVDpjn6N1loZyfRULfEdm4ceNvxNJ5BqRt3QzqoTtHRzpSxuGToyBvM/WkOowxY8b4+/n5GV7krtez1piYmBtUPbMlmCZ69XNJVNh+WtLDXKiXar+4No7rPvXkOoWCgoJorq/pyIgVOt6fwcf5elJ8VdjAqKiou1X9s3SduSi7UMePoN1YrSfVYfC1bPDPBqMEiTpAWoOCgh5C/rQ7tcu9IFH3vusIwWNdr6ysrEU9sZs6i+t/Yyvtt3RudwoHFngcO3ZsMfy2z0g7wrLH89G+PmXrpUNdAgcHB1covc1IgaLQUBT0VlS6jxAMHkVlfgw9oMd7SnD/J9CwPYMA/kcVeEEOvFCpPmcFoL7W2sjzeURab4LwPJqXl/d3S/e0RqDX4yBdjyEg/QO93m+Q7mEjDQSF53LKEI3lu6YbpqLRK/D19f2KtlEsXWsuTEsPdIfRy3+pqKjo4Y7al5+fr9mXlJT0CHR7wcXFhS9x1558tHTvEwn1R+P5MJ8UpG3c2yw4OPhJ/mdtBaRtPJeLgLOzs7UXXWuOskPAX00IPL/QV9aWBb3O8cGQj+H36zMzMxfm5OQsMSLI8yXI8yUIJktGjx69BB0W7Yjg0Pa/+TWWRD/vCuiwEuVg3rBhw9qm 2+CgUIoGQWESlaKgMgtKk0lhMhNBYSYK0eZk+MPB/AHfd+rUqS+99JIjxcbHZZ4Zc39ZDLC3tw8KClq1ahUywoFGFuZGtwJKgH927bXXLl++HMbMHv49POy33nrriSeeuPfee6GCUDLzmQBqBDZVs0hkDwwM/OSTT26//XYmjaTkXwXEEkRabm5uWtrl9bsQCQGGFrbk9LM9qqio6NatG9oAM8QgF5QSfGLrXshh7cQ+Dh06FLuAwmGGvIgcNWpUs3uBSFYyAjhGKBkBgKMWHS1/LrF5sF8333wz5BPqYv4xdCNgAXb7R1hYGIQZxCdsWhKrfwKo3UF3+Y1hkI2C8U9qDESik7OzpVfV6pSU5OuuvY7Fuzo5s57HIfOSLeHQCjjsLX2apaphBTmw/8AV3sJeW1UL2crClnPvz10wCqfnqePH4k6exOdCakpuTjbaYD3Pa2pqwsIj0Xts0waYybvC+uFwOJzfzr2EXEOvlgBMqK9fzWWcDwjBVAprDEhHBOFumrEvIZOoc8xAEqbPVHqDVn/ZM/G7RfENQcilBuCEILxMb6ba3GDwbMM1HBtYgRvp2tNHGjcVIkfu9MMSHwysKxqvATBJFNEYbOADA2ie7+lKZeGiuKpxgYzHCHmkoWRWO743CcJIWtQYGs9gZcJ4AV3trSs1xi6gDahxMFrSpPwoQrbTbpSXD1A+YGEGkgAkymJB6EBXo8am5bKbrFX4wEHcTB9Mst56BxC/lgYAeyC1qYvwUkMVVqzyZp8gPEhf2Wlzdeufjrx7G0F9xSYQUg/Xs64u/cu1/scTAirrjV5OgfPvNtorU1avdj66z7HWXOEb4T1zpqmCZLzwnsPh07Wq+pyoqOj75ig1muSV7wek54liVd3AXmGLn1aUkPSXlpgzDiocTPa9B8fcfr/Sx9ORGERlXQWprVUYDEpjncKoJyYTTioTaXRq/ynAgYanAid49uzZEC3sXfvUI5HAJnOOmUPDgNmnn356
xaHbUA8Pj6+NlnOejwD3gS12mmfeo23iOitD25fQx8wT1NenuX2NnpzNcNVVVzlHRkYaXiel19m9qGuz9KQ6DdR7vgbpoBFCQb3po4CAgM0I4G2vZktNTY3hWjIjafE8poV24zu0a7bYVPZ0lMt6klujeU7x9PR8f8WKFaF6Wr8BCOdQlM991hJnCtOlLiCsO9Bm3or6ssi8Lp1MEIe0I+ss66uqs1VVVdrvBussj8v5uamp6bjNxbnBbHl5+RTEq5Xm13anoO2+HMcrQMq1tynQh5Z8a0n0cw/Az/PQBrT7MIXdAIXOFQX1c3NDrBEWcDRW2pAzHdXTwp5cXFzcQw0NDYNoG/dAQUP6HBtUI5moBGl22jbz6zuiB4XXwba7Jk+efLGWccB1110XwoBl1D7V8EEfm9jH+6vvHbGP1yNQ8vU8C9RawhkzZvDVKB8xTUvXWBLaxTIAonvcSJo9IiwsrA6B4gf6y9pAYSLcD+sQiOZBCI+GxNHR8RDXN7q6uh535O+Wzj+RcPQCnZytXPhOu0h8ODWF/wy/AYFHpLXhrrvussmDE2iEc1CGPjVKCqg3COQ2EFWbvOjaFCjj6WhzP2W9MZLv1Anl+p0pU6Zob1DoLECe+sbExNzMeqd8fzJRvsGRI1bX60lpeQ4SrhEfI3aptgJt2GsgpjYhuxUVFUFo898y+o5G+gD6852W4/SkfoNRo0algWQanuKk4PzWztZZkGWtnna2zkKXwyjf22FPjW6aBpJg1JcD0POwpeu6W1A+uJ+ZRX9aEj2mcSblh3Hjxp1wPZ/dgFNH6FFrr8PoSPDkNSy8PSnUgRUOBfLnsrKyzBaT6RD0zJZBz4Mdsc3SvToivLcSS/c5mbBQsXErLCwcZTqqwyHkkJCQPzFd3sdoo2CuZ0elM/ZRZ+YdgtJPnFbTTeMTgotQCbWpTGvt4v1ZjsPDw+16gToBIp3g6+v7FvPWki0nElN/d1ROlIfWCPVQgYivZUGd 5513srvU4HDj+4qwDp4+ffp1111XX1/PLjWgNPjuxcXF77zzDhoQGxuLeFZLs7BLLuHh4VA4kydPtt4qJtUha7y03TKSHb3ugXJeffXVixelO6MQqdVqO3fuzNQLi7SBniwE2mDw4MEwA2x3fv7557KyMiZgGFIG2ttsEx140034/VoKgS5CNwYEBCBMrWxhhdTW1rK10WCGBiPmtttuu2LPwyAyMrJ///6wR5PQSFTHHv6BpFy3bl2PHj369et37tw5aCG9Xs+O9V8COqdeNheg5eXlZQ89iEHpD+fIkcNePpa1AdEtNdU1zvTBEi9Pr5LiIvQYGhbVMSYjw9L5rWM5frSQpkjzRhPstNJrRmES4G/zguYmKAgkLwuitVrt5Tdf/QlgL5RKyxVCgPNEQSSFg/PKzk47cvR1a7/9jlna0OKJbdnpK/9OORwOp3VubfCDMSPCl2ULGbeFpwi5jo7NmPnw/ZQULbDXkMG9xgdJRqofRtElktmdbFbg8fcXRbjOoaJ4E31m3XoH1wD65lAbtw6lYdSDlz8RPneT0h6nF1sYMGOtmi0I10LSNNkpNCaMflA7hMo8Ufy55R1nK6dZy4RcQS40gF2QwfRmrZeBmQYJiERgP939kaK4UhRzmqtiXMNTPay71PRqUpAoQqhYJQriEa6nF9mwOx/JyskSxdGiiN2EkEPD0FR/bIpiNVWMzA55cXA/aMiFeGDzYoFhDWusMdjO4htiEkfnNrSn5f7559LoOoCc+lpLz5uJWVRb3oQDS6XRbGdUiImppd+vq/z+e49yZc6QXqFPz9VVKeJfed0hbq+byXxxyOTwefPV+uKsV1/Snjyl1KnKRwzu8MTLyrTSiy8/oUs7bnR0KB0yJuKhuerckqKlr9VdTMzVqJyGDo2Ze19daKhaoVWaxDql5SlnreWQ/SHALUtMTFyxYgXzSAz0Af1ly5YxTdISMKuurl67du3evXuPHDnCFhmDGkESc999fX0H
06bFli1b5oIyyb2ctHTNdW9PmG9o+Lnhq83WtulLELgnktW60B7mCYkl7DL8GpcTgXWX2zQgkFo9/UhRuoNY/I17x+nJdQqVlZVhILtb2GExv197Qt9QF+j/FQhX2+tdrrzyyovj4+PXqP8tXWsuys/43Ao/36on1Wm89NJLF6HzdRXvocqpNaJ0QXlZZ9rGmqKmpsYN//+DZdX8emvEtP50ROhbc7F0XntCHXgN9efswn333ddHN+204cOHD0an8FmWB0vX9pSY+7A9YXni+bQtNDT0iVWrVtnlO6l/AwZx9PSmwIhe/fZzViA0breYO37GjBlB6GFpL+Hmecwo82vtXVio0Fi+mJWV9ZtXKqDXUoAG8YuONgo9LaohiYuLW48grk1p/PjjjxehgXjEpJG2SngueoTHjaTZK1jvELSuAck0NFJkT0ISARL5vxEjRqToZnGhMt8DaHjUieUX9fRjXJ+jJ2UTZGdnN6Jjpk0bWauPyg+WQZI4PalO4+qrrx4cFRXVIUKIcrIfRGWBnlSngTa/ytXV1dAbGKgzg5yPj8+LCN7OelIcdQoNCAh4oyOjTmi7vispKenUhqHmALnM9vDw+NnI2jZlG8rg2/fee6+HntRxYMc+Nze3nqNORtK2J6GdqA8/NDQ0tG1lBMJ5BsrDGI58GWlv7UmYdyzLyJudIMpttvUKrFy5sj9Y40NsBK1tGOxFWAlYGdzd3b/jayN0k44DR45Q0b9XlcxSOvYqeqH6GRVkGEz5Tc+MlSc6OnopbNPe22UpDXsU1Xj16dOHa9veq66uTtZNOm3KlCkpnp6e7xkpi0yP9qMcbEcPOFdPyq6BgMw1io+jTGokzJJd9ijK1xyxSkxMvNx0xDkhIWEefjc8FUXh1hoPPvigTR+caG5uDmHnhfXI0r3bE+qPYPxeXV1d2z5XnQWISiLLutHgTV1AKD6qr6+3SbnmOzpTU1NJ/q3u4Kg8x5Gbid6sJ6UBpGQEgvph DRo0duzY66+/HhqA5WKODqisrMzKynrrrbdYJLJAsUA7sVQ5KPzzzz9nJQONRjNy5Mhx48ahAWjtV199tX///oMHD0L5IAZOOUqDCIG9j48PGjBmzJjRo0c7ODhY2wA3C7uMfYyPj1+9mi2kYemEmJiYWbNmIR7FskhYokAopdOnT3/wwQcsklmWl1veK2fdHTR+5syZaBvqtVbULJAfzz//fGmp5WkEnGzYcaivrVu3skf5EYPyFy9e7OHhIW8wuw0PxjDAfj399NMIsAtcADu+fv16HAhYIhIl9O7d+/jx4ywVwGDJkiUok91Q1xLIjmLR24cOHbJ2AkB1OBnOnDmTnJyMeOzj3Xffba39T2PUsGEO9nZoIds8EXdyyKBhZSVFarrwAOKdXV0rqmo2bWZ/D7pMz27dAvwsr2YH2MecgqLTZ06zTTk+Xt79evewDgDZuXknz5xBoHe3bn40Ow63q6vrZ19/M3fOnMT4OI1Gi67w9vX7/Kuvxo4ZKxjqVGq10WAICA378KOPJt14o766CqcTDkedybR9x06U0K1b19CAQHPDa/vLaqpSklMbTqLLBPoHdggNhoJCGMfOzcv762++QXjGXXfm51kWjMbOxnSKeW3FSot1C9w86abK8lJ2mHAau3l4frXW+oet5ln0xMKTR4+pNZbHZpDxuw0Y7Zvh0UceSTp/Do1AGM3z9vH77KsvEd63d+8rS1/Ejx9htFAURGgbS4Ce5ywyJDT0p63b0tPTsWnlsQUPJ5xLYr8mjVZ7MTs7+1Izd5fhd5svuz+Qw+Fwrpb59N38zLXFJHdzk2sjrZBHCBwRjFMYweF8s1uhGPPoS2bS6OUItrjZ1TKXXjxBTnxQhWXEpHoJo3xLMowt8oY0dlMZPP5fV3VTPiFkBC0ZHsNg+liLlEC5j5CnaSMRi2980J/4PigIn6MHrtQGHALsKYAnDRfQeqkngq7+jBkL2+hn7PgOQZA/xtM6OATWq0/ovakN
I3Yxv1m/Qeb+88c//tFHT8ommDp1qjPaxEeM5jn14ROwo0ePbnc9GjdYjoiIuBbnHuptdZb2UWf6xvS1YqWlpY7obLzQW0klyxLzGu3ObrT9K9atW2eTh1S6Fajcfui5Po1MOqoKFg0zN9beRFVkNPw3IBBYfOqBow3p6enT0EhsZyNiz3Yp3VRlcXJy2p6UlDRh69atZ+vm/AaPP/54fzSoN6NB1TYI7A35puwDYXo/KytriOmwf1pa2hyQzl/5v7UNAs+j7WFhYZtmzJhh/y9f1TFx4sTgqKiov0D/g2wAe0PeUViP/Pz8XmtsbGzbEgHkaSA6chv5P/PX/BpLovKNU+x8pZaelM3ADgrqz3KONFobkKmTXvcOoF2ZrSfVaaCOcp2UoYdwVFsMErlp8+bNl+hJdQq1tbV+XBtrrT8o1JdlE23o9wUmr0Fas2ZNX5TfG/mftWVX+RefW8PDw+9ub8qvo2CHIC8vbyLaEKs7NtRJL7OH+ASsnpRFgIRxyvUanGtoQX5PC33BEcdRo0a1vVYMvj+zuLh4HKfcab+15bKnRZU12gRpBXH+orCwsPm6664z9L5auwIKrjcK311oJH6BURoRY6YoY82PPS0sLKwA6Kl+M378eO3lze0Btp2VnJxchR7oy7h2PxtBU9so/Nxdtql7qfvxSH3oc+qG3/YHBAS8OAw4EflSuPfeey/IzMycAhL9IdLSemfmeadE6dCVYn4/9Zl6QfjC3b2RkZFPTps2Ldm0AeYj9iEhIRt4rpEGgemyR88gbo2/7AmrV6++lE/toBx/BrsPmZdN5Ttzm3tCmB/UD8HtKILQQtO84z5MHLnUy2+b3icSnsfzUW6/QCCw+abHBIIx9936nG2FkfKEoHQM5OLPtlh3tWHDhgFIiy+V1/KW97DkD1NResDXR0AiV+hJdRoggtxfbxcJv7V6qPLIjaBXrFgRqCfFncqD0Ka+biTPKbQLZOAHTunpSdkUOTk5wWg/ ayGweID+kV9WeoyeCeyAwh4JJ+gKCsfbXOM/kRZFTrHlOS5BKcJnUWiMgtogGvQ1yuKC/XffHVCSSxRKx9G3e86536SoyZn7mP3ZOJ2oK+jcJfTNl421FYlPzvNITCUK92y/0F5rXhPr8089ONc7P6fCwUnTd0T4Y4sqL6WfefSh6NKKcrWrzy2Tne+cWB/gU612cBJUaqPZqLK851P9h4kc7DLzbvENZwi+NcJwOODcSxbNodfrYQ8buC9w42CPmJqaGgSgKODbwQYOMVKZfwOYE8NgNSIJAWwiCVU364IjHjaoAqWhWOSCX4V68Y1NfCMvUhGDBkBCIOzk5MSKQl58w11DwLo7MGAB1n5rmNmgQKu6gCVayAphewSYJdsXuaPPItE8q2WzwAygZJgxIQFH2Z6ugQaQHUA96nQ6a7/BGK3CN8pnuVAC61tmgE1WNWzwzRrACgesh1mnWSObBS1hDUMh1p5BY7CbyMi6umn5fxpNRY5Sad+3R/faWssKfoiBwAgKDduydZvN8gO9unf395XuH0Nv5OQXno6zqBcb+vXt5+Xmwo4saEXkDB482NfDva7OMib4+Pn+sn3XPXfdeeywRRni5KkxmH76afMVRQ52Izuv4FRzzxFNnTpVNNTjbEYY3W4VOa+8tHTf7t3suDs6ORkFxfr1LT548MZry3Zu28aMcWbUGk07dlra0Aq/o8hRKBUVVdVJySnYz+tGjigoyGfHCL/k4LDwd99rdA+8XORoNZrqamHLjuar5nA4nF+N5UYpOvbig2kMw9CLbfZoRxLyMb0tCq7wniZ+/+/CDLqoWh9BOIbpjL6D5YoXE0bDK6ABZLG+/fNPAIIE4qc3DZ+lK49d1RP5OBDOLciJ6wnJQSdf/b4cJoS9aBUzDQ7TA7SE8YSwyQYbI5sctQ8IwdQOdyFVEDDF2lwoa5dIXmMzmI346PSCfZVAjBCLdRp9RdKy13sVlHrVmkmvLi7z/yPq63Kff9vx
3zMyLUobKdz8+aGHHmp72MkSuP0OdG+EP17FtdpWOSpfldBO0+89JarMQUeucfsTByR0M7iuzTM4OPhNVRa6S8zLgyVR55ke1Wf6m/agzf+Vnb76+vpUvv5MN6v3orm5+byKiooCGLUelfRTGLgPRmtzwzScFY2f6QhrC3ZXicqUtLS05dylWDehXTBYcM+yjIyMqWg0nkUDsBONLF9zoG2dQLton2lmd5UoX6r74vsR6LLfzc1tOxqAZ0mmJk+e7Gikd8iKhfwLg31LOLQPIr0LeaS9A5P3431UPnZ13vGeypf8jN+OsCwhQH8ZFhb2YH5+fi1I82969GgQkjjdwjR4rWma7QltYXBFkN0zdOjQIXpSvQpsPNCIBCPQXgEi9gbK5m7Ydlj5kUfa2ZN1Tt2bZQj156WGhoa2R/ZRTs9ISEhYDLKgPVSh8v1kwrR4BOl++qabbrK49qaz4MhceHj4n1V5staH1AsBdis3zdWT6jBQ3uNRPt9lObXWNzyP/kHv/iuQ06F6Up0Cpx9jY2OvpX2qXJ1MqAfP5TUI1uuZ10yLbRPaqZEuLi6G85yCtuDtuXPnBmmK2Rjc3zAxMVGzk/c0kuew59u6urpCPal2QT+gvXXi7ArKyfO4bifSOEjb6C8e7aXO6nZ9N27cuLYp9S1btpyPThMfdjLko86KkfLPo4ojuj8Po43ZhxjxJdqMjUOGDKng3p+6SacOhg0bdh4KYQgXSILgrIqJiXmaayJQAXciuO9BcN8N5zBI9JigMduDQPA2AkHb3ljWgESFT+6AaKZkZ2dPT05OvgeZ+TqIz9foNe0GCdrD9LvCPqbJuWo0PnuCgoJ4/BSE5DU+RQRdpqCCpICE9DftpRgFN7JD0HAtKyvLR0Cfh4boYfjpTch2NBR7ENz3dFXeMV1U6N0oK3sCAwNZVj5Ez/9f0OMmEMPRixcvjmhpaenTHrFEWWuEfl+hsml5YI2gcnLH8z0Iss+NHj26Sxr0 7GmzoI9zcQh45GGFUJfy9pu65ASlSlkRHNztxcX1tcZDMx4ILck2K4jDwOFRjz0uKIxpb7zesaSoSGvy/M9kp9unmwIDatQaUVAoRKaS0e9/YNczJxguCHMfmVdkdfVaAvbskRhkZ44v/HJvb29PT0/4eUiFk4RUyB6kMgfd6p4yWI3M84aB1au2AR48zJgxzFAdkxawZ74+SkYY8ZZnIby8fHx8mJuOJMRjd1gbWGkAYQB7JKFABgpBLritKFOyo+oCwAz2LAwQZg22iUQJCOBbytwCsESrWNdhE1mwyTQMA2GoROgNZg/QABizvUYALUcDWBKDtdCqfGCDsFQcbT++rcqtFZCR9SoCLC9AU1nzUC/igbyL/logZjQOOo1Wa6KyQaVWZ6anTRhv+0KYoKBA7AILo/1ubm4sbEOt7DzBzuro6gLNkpl5MTAwCH2CcE52zpAh1xQVFrB+7tQpFgqHmf3unD+fYGx49Ki8rLxDaAgLN6Vvv37HDh9Gk9gmdIvBaOmiPw3RLNbW1efk5ubk5ZZWVVoHMJz07q6Y3Vrjz1bPHA7n38Ev1MnDaARhgCn2qtam2CGKwaI4SxQ/FMU/QuEAlIzye9Pvh9t2u9Qv1AyfP1PhgFRR/EQUH6Kf965+zbFkUWzpgslGUfwVCmcAIf4NjjJmGaZwIKWke3Xok1dNj9pMUbye3oa3osmtgO2VlkUO1DITzBpRr601mbOT165WnT1QqKjLiuoUsOARY01B7qvPaHb9WKMwlnXt0+OjZfVh9meeWeC6Y6ujwr127A2Rq19Qe5rjVy2OKikX841k8A0dFjxWr6w+sWxB6NkDDoLKbswN7vfcofDzEVV2WkHjZCZKuPdEMFt6/gqu828BnjGA8wcHF+41HDW4+4iRklsANuwbzje7+INN6gNb1AKAg4VC2BUJYHUfGTBDDAzgTWIT9ohhSTagVXb03TisTGzSSizGqBebAOWgGawQgBiEUT7CCMBNRwwr
7gLzjnuhlZaWlqWkpFyLsvE8yuR3JJcoN12Wb9YIGr/d6ClrdR95Ods0D7/88ssB+G0dyvNeli/UIdajEwo6eLuR1h6Uld18Wrm9MmELcHsBEJmdIAp7aIcl+0yF5/Bc2PMN2olOv7+vqKioDPX9JwSPPbTbkj/MBQGTftyDzvDjIBQ2eSNHU1OTG9qav0IHq/KIQn3huz2oy59zsbaeFAnI+QiAVyAYGspzpsX7R0dHr+3KPC8vL8/Gfb42kudsd1Amf8rLy7N6OpxtNWLQALTb2VwTCYL7JNraL9jWoi3s8TqL+/M1g7vg7z/C323rNefPn+8ZGRn5Iur0XkvXdoVQH+S/Vg4slQ9zoQ/1OLI1Li7un7Dh2qysrDHorEYgxp3fleXHLkADETDPvvbaay+ZMGGCz8qVK7OrqqqKQMQKEfQKERR6TFBwSpEhMciIDj/xBvvOZEayJwOJnTZtWiECXxHTR8G1eN/OCH2GglWICl6EClAI9h62atUqR85dd4Z0tQdOvXKdxqhRo1znzJmTwt2FEdSLaFtX2Mc0EbQKQf5oXy7JMXS4BHKuaeVvD2i8PNCY5yOdYkvpWxJU6iI0nKVo/MI3bdpk3y9fNQDWO+4wPnfu3ER0iIrQcBX1dJ276KKLShBccpCv2l57Ch999NE5Y8aMiQLRKWX9ARkrtEbQ+SnOyckp6OptQ1DuL0Ujnk39LdllSXBuMcsySIa7nkyHwdHs/Pz8woSEhGJLfrAk9COnC1GXwvRkOg2OFoDcxyHtIZbueQIphf58+0LbK6JQn89CZyEgMzOzxEie89z09PQirjvWk+oS0FaQ+zQjeY52pwgkuaSgoKBD7wJlLOIbWZYvXx7Z2NhYBHLa43VWb0sL6urqtE2uFZCXfdBpzWE5N7+mK4SxAeS2EO20xXJhKij3mtTW1hYtWrQoG3npzaUaw4cPP9uaOCIQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgE DaAQ9m0D7FERGszMAPJaA5IR3Sn2jRpZDIANqxffLEtLwIbZowTWA+hwFgmQnYkZa9UABqxSa41s16TkBqyFyMMAm6wuFm4Flgu9SvNdhgkkdA7KgQ1rBsvyl/P1N1936tzVbJKuzqFtlzIzQ0Iaef8O9g7W7jKLZvm6z3L8/KW1oQGEnJOL9DLNpkBc2TnqmDGUblSHDnk5lnsXcaTiExKYzR9BjV6P3xsLQ3UajJeVsA2B/v7lZWXShiD4Bwbt3btH2vhzkJ2eP/64oUuXzqy7cOacOnFixfI3WBKHw+H8OYzHHE2vkDDepK62tMH5h/O99K9Fvm6QgpbX47AjjsP8Fj/WlBZdN5daJT7VGpPBzqBOTzs9ebbrBz+4ZZeKw0Z1fPsdQ5Xjxbvm+2zb5GHS1/YaGLNsub17QM68Jd12HNWZxbJxEwNnzjdW6U/Onx+9bVdVDSmbMdvvqcX1cRfzb5sfs3WnWaipu/OOoGdeqPV2NWsUGqNCZyBaM/xm6jv/watFowYGc+WZp4tNKbkFYMDMmCXCgMUzrDY2kQyrPXPfGSzJBhjgG6nMkpXDNq1hBrMHLMxSATbxzZIAwsjLsktRFOy+TQygBdtmRwx6qWkkAuy7dWDM7FmHM1XDwCaS0Da5yEEkay1LtW5KydQA9iwS39gEUlpD24A8S0vAhtlL2xTWHmshDCntb8CPGzeGR0YaG67VIDC98Vsj7RwdrXukIAqtRh0UFMw25XTqeHkBOpPZHNs5VtpojqysS5LXTrurqsrySBW6xdnFhab/IWRkZHp4eLIwzsC4k6cebm6tBX8/fw3Ogoa/U9TW1mg1V76O94eSkZ0jvwAYf/p0167dpI2m8Es5HA7n92aGID2Kg8ngHPd6G4D2++BKn48IeYcQfxpgMf8lZBV1A8YR8r7M0vp5l2Z5mpAombcA4w+bWFo/rBZmGUnIXEJWE5JPyEVCshq+1xCCBjMbKyi2vuHg4qB+SAPIPpq+
AoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUBgEaed9v8Af/J3DsA2WB4AAAAASUVORK5CYII=</ImageData> Lwg6530awwEteqhKvYiPg6hQ1ugzNu3TFpCCWof6wdcFP/2Yyd0p97112iJzpltgYkhnj0cXVPs4b1v5fl1ayUVHz6w+fb1n3myqrz6w9G19Qa3e6Cl2HeR//60KR8WJL78su1RQoPEtvm2m630zqlwdyjWkWmkyKc2i0iQojWbL0ziWV47++atFczj/FM6di7+YfcnF3Z2pDuix0ydPLHryCauSOXXqtIenp/VKQlZm5qz7ZsbGXtYwXbp0nTfn4YRz5yDnsGk2mwODAo+fOMFSm+V8YiJ77gsS5+jRIxp6qdDewf5sfGsv6PyNHD9+LDIqij0LBOzt7TPT02bce4+f3+WV1vr26TN+7JjysjKm6yAtQsI6nEtMYql/FQcPHY7t0sXccICyLmWNGDaUJdkAC58g7/EtMGECWyaHw+FwOBzO1WH73IiVChpvNOt1BmN5XJIxr9xB56gI9BFCvbXm+qKjx+sV9Sqlk73g5RITSkxlxcfPE4W5yk70DQhS+3hVVBWVJqXoRHtiVOs6R9Z5aR2Ki/Piz7s6uepLDSQyyi0o2E5vNmnEWrURwkZlmezNoqBQm9UKo8VdkR4u43D+rTRdeCAnx/IyVsbSF1/ct2unuuG+xJqamhtvmjxn3jy2+dwzzxzav9e6jLLRYHR1c/Xw8qoqr9Q5ORYXF5WVllrzmkymCTdOmv2QdJGk6cIDLH7RwsfjTp+2XtRCw7r36PHiK6+yzT9i4QHg7x9w3agRBbm5TI8BtNbdwz0isqOji+583LmS4qJ6uuQ6ktAkD08PnYubdRXB1vkdFx4gClJQUnb48OUXzE+dMqWytAQdwjaVKlV1Xf22bdsQli88gG9HJyd0GrWyxdvby93bb/Hi56RtDofDaQPz6Pv12bCCMSiwBU/vX8hcQp6i93QB9I9l7WAaBtabTBDYIQifCMJ7DX2ISWKPINwqiujY+XQ6Y7AsmOFgpmi4brBfEKbRDs8kljWv2eOhOAo2
</EmbeddedImage> VxWw+QpdSo4tv4ZNtAqNYUWxXCzLbkG4Q3YE0+iNiDDAtHeAvnv0K0KG0OyIQQn8cFux6fPLOBOCj7vSXmvn5Nm7p8/4YU7DejtGBjtp7DV2Lv5DRoYMGhPQf5B7/yili0bh7u113TDPUSM6DLnWIbyj2tHDzTsybPBY72uGeQ0f5Ojj66Fws/eKCB12vWuva3xHjfAJCbTDAXdUKDVKR6J1FOCLae0FewdBq1YgkiscDucKPPX00x0iI60LDDg4OPzy0+ZRI0eyzfc//Mjb18+6nINKraqsrMxISysqLszMSK+qrLQqHNh06tLVqnBaISX1gnx9CKPBkJaeIW38YeTkZJ+Oi4+JibHe/QU9U1Zadvzo4V1btxfk50HzMIVjsiwa4XDidFwbFc4fzaHDR7z9/Kzqpb6urlf3bk3vG4Qwq6yoqK6qavrBYaqqsiyrzeFwfi+sf6Zpx2Af4Ygz4Ex9KwU5FuD11lIhgQ+mT6uziVmEaRV8iulLaSJkqUhiL6lYKPObEUAJsGeCBN/YxETVTxCmEjKInmosiWVhhVs/1YKgpW9WhRxFLkyukCYIoOqNNAtqRwmYqgfT7IwRdH05VizszwrCAqpwEIMsiJlGkziMFq/kyGmLDcM6fLSU5d8wvnA4vwutX8kB3t7eUyZNzEjPUCgsPytYenh6Hj8dd+6c5RYyZ2eXhx56MDH+bG1NjfV6ghzIBjs7u8CQkB82bJIvQt3SlZyxY8ZA2ViLQnUmhXLLli1sc9KNN+irq6UrOUbTdrp8M72SE8AcfezGr7iSw+jWrfuwwYPS0ywqyyrPrJhF0WwydYrtfPTY8X0HD0ixbeCpJ544cfToVV/J8fX77MsrX8kBc+bOvZB4XtHw/jqzaPbw8vnsiy8eXfBwYsOVnFZAD3v7+AZ3CP9nXckZOXJUVlbW4MGDINPQXYWFjU7aVsCR3bVrl07nGBwcFB4e7uXlVV0NN6AZ0DN+fn6nT58uKiqifyq1
<EmbeddedImage Name="ID4"> 3MPJkkDnzl28vDx1Oh3OXrksb4qnp2d8fLxeX4djceRIo2PXp09fnLcREeGlpaU+Pj7Weybl2Nvbh4WFffnlV87OTo6OTnv27JYSKBMmTMjNzQ0JCamoqAgICKilp3dT0AaUL23QPzpUVlYmJiZVVJQ3+7O1AV3h7u5+7ty5sLAOSUlJly5lsfhBg5iLdXUgS0VFZY8e3VNSUqzZMVDgOJaXV3h6erSlSQBNSkxMDA0NS05Oysho9KeQgQMHspcu4PRA51j/TGODTbcA9MzSpUtdXFwxquC4BwYGomTr3z5aB7Xo9fpBgwZfuJCKY4HmHT16LDU1RUpud7D366NrmNc74N+xWPCvIJ0QaBvL/ET7KrhxL60mZEJDKsyGUXWEYcJqjx7uQLP0IgRKkvU2+4YsmSwI8vfYbBAENlnidwUD61JyNxCyhqojK9saNlH+VmqMwC8N9s8Qch8tFuXg17ieVmSt5X7Uwo+1jDaJHCtXNG52VJXn+hXDLofz7+TakaPsNSr8fhDG/8fPnM3NtX1l5PXjJwgmg/VHZTKZfENCPvrwI2lbEMI7hF937ajaqqry8jLJIcCwrlC4uLkplarzSYmHDx+hhpfp1a1rgJ+fJUQULq4unzeInN69ekd2CKsoK2VXThx1upSLl44dO8pSJ904QV9Vq1arTFAcIvl5KwZnoVvXrmFBgVAgCIsCuZSXd+p0M68lHTBgYJCPlx5+pCjWGwxePr6ff/WVlCZjwMBBAwf0Ky+2wNZdUCgUdvb2CqWi3mA+cuzopUuXmGUbef6Zxw4ePMGeL1Lbab77oXmRM2nSpPqaaiUdu9CHvkHB//34Y4T37dv36gsvMIVJBFJQXn7o0CFLBhmPzJ+feC4eHY4wnOaomJjlK9+aN+/h1PPJjVe7aA7RcrtaRV39unVXtfTrX0ZQUHB4eAd4t9brV20HU0NERAROLTijNm5x6yCLr68vTubjx49hs2PHGBwRKKurmmvgc0dF
<MIMEType>image/png</MIMEType> RdXW6iF1PDw8o6Iis7OzIUvaXohWqx0wYEBq6oWTJ0+ghH79+p49exb7crVTHlrSpUuXmpraxMSEq83r5uZ2zTXXrF//LWRAWlpa6wKvWfz9/QcPHrxlyxYoEPnEDbkSEOAPDc9WB207Go2mV69ehw4dLqCvtR0yZEhOTg5UH0ttO2hM586d/fz84+PP5ufns7a1vX9g7+3tDYGE8xPKGRnj4uKSk5Ol5PbFo4TMlXm9qxu/xJNjZQG9SYzJCZxJmwThwcYddYkQOmVatAT6M0QUJxCyisYAZGHDHPLY0XIQQIfjG9PAdFG8YHmpvUWfMGDDzldMn/gBMHXE2ENIOE21Sh3MSaw0vSDc0vj9rdsIiZSC0s1prAqE3xSEN/ixbsyvFznW8aXZSDlXNOBwOH8osbGdY6Kj09PTKsrLPby8AgL9ExNT5H/8/mdxy/RbEs7H19boo2M65hcUHDliq9M4fwkLFy7873//y1aAuCowR4SFhRGiqKysuFp9wnBxcamurgkPD8/JyYYP/StKQBvgB9vZ2SkUyszMX3MfJqRdbGzs7t27+/btl5Z2gf0t4KpAGyADvv322+7du+fm5kqxVwk6oUePHuvXr7/aTkDtPXv2hE6rrq6Sy1ToN19fPxcX5zNnzvy6joX0+u6776ZNm3748CEIPynhakAbunTpioML5G1A4W1pEszQJ7/88gt2pHfvXjhbIORKSkqk5PbFL4TEUP8brvlBQZjKvd4WkD+2pBGEZfTxGLolcZEQlooRbQU+9IGcR2W6BblY2GoG3hCElaIYTcg2nHj0A5BkHRYxLuA3ENa4LpT8kCDY0wJRrPXCMdQO9NUdgrCb2uNsx9jUKCciaeH76CNDUhSngasTORwOh8PhNAX+fTV0Rk2N1enE5KJWq52cnOrr61ufaDQazahR1x45cjgzM1OukZDLwcEBbjF8bhSLsJRAV9qQQhRU5Onp5erqCuluUwJ7FRh7RTKS7O3hSEjU
<ImageData>iVBORw0KGgoAAAANSUhEUgAAAmAAAACpCAYAAACME4GFAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAGaISURBVHhe7Z0HeFTF2sfpRUS6DRU7AlJDem+btum99wCpBAikkdB7QHrvhF4UKdJRAUXx86p4EdSLYkW9gliwwMw3/5Oz3picbWE3CfD+nud9Art73ilnyv/MzJlpQhAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRB3MWz/2w+xnHIb5hjoxe65x4c1aeLNWnX1Ye5h3qx40mDOeUf5pwRBEARBEERd4Wc/fYypIlzZI89ns2f6rWLP9j3JHuzxEWve9jxr0vI8a97uPHvkqfOs1/PHWJ9B85lfVDo7eLCXfDlBEARBEARhCOzLn7owdZIld/DOYPZu69gTz37E23bhvElLYU1kayusnbBWwppWfdasNWc9nr3J3Dxf5jFpSYyxbrJLgiAIgiAIoiZCLLVnYSk9mZV7oBBdFazngHd5hwf/J66kvy2EtREG8VXT8Dm+r/ot6/H0ryx12AyWPukhOQiCIAiCIAiCc96GFU/qzuLS3Jg6pIz1HXSM3dvtlyohBcEFay5MSXBps3uEtRYmRFjrNteZletifuzsg3KQBEEQBEEQdx9CdDXnUys7Me+ofiwxLYs5uu9gDz31I2/VjvOmzYRwgkGAKYkrQw1TkxgRa8JZ+/t+Z6m5C0S4HeQoEARBEARB3B2wmevaMa/gh1hcShTzClzKHnnuImvZ7g/WvAXjTTHKBcPIlbYpRmOt2khY+/t+YlPnZvEzZ1rK0SEIgiAIgrgz4Wd4S1axvDMrn6JifiEz2WPPvMVa3vMTa9X6T94cC+ox2oVF9KYUXtVNFmHNW3HWy+4LNrS0pxw1giAIgiCIOwuMNPFFayxY+ogS1svyIOvw 1dXJL00gKTAwqK5Oj2bY7IXRaESqNZKVhhgblx2+uJOTMzIVFRVJUbQEZGx6m2VTVCoVsgcGBp49Gye/jwvZPT09rbVbQePhqbPOYTGoCyKnsrIyLy/PGokAu81MvrPQYNiUixmYYfc9PNxPnz5t7UMU2LVrV9SCMsvLy+UVOTs7yzuTgQLLysrQeLll7969z56Nj4yMOHv2rM3RQbdYLVsCBsHBIRDA8p1CXvS2v7+/vMCWQK6srEvsplyEkZfFtz/G09dBst3DCTdEEC5wH68FMujDLUylIHC/7BYysICQeQ3qBbJkpiD8LIprCBlHuxdnIZI2C8L1Db2NGBQyXhBO00JwINbIsm8QhJ9oGCA5teGdRWx5aJTJ4k8LQq4gRELz0BjAKvpUEBZT+w/oOtGXf7RU3uQJwtdUg0lRHBlc5HA4HA7ntzJ9+vQdO3bIPU74r/BB+/Tpk5p6wcUFrn+LwAE9dOjg0KFDExIu36OFualDhw5wZBHJHuy57rrRrJywsDCbS0aQUpBYKGHnzp3yEqZNm8buIbx48SIK8fLy6tGjJytEp3Pctm2rXEvAaw8ICCwsLJBLFIgBVHfwIJo3zNvbCzHl5RVbt/6CQM+evbKzpfdHMbp161ZQUFhQkC+XE5BwiEfzIABamW/RahS1d+/e559/ftWqVfK98PHxGTJkiJeXN4uxgsZ/883XkB9WYxAVFbVv3z5powHsAtOKbBNlDhw48IcffmCbVnr37lNWVmpzKczR0al37167du2SNwnyZsCAAR07xrAYK3Z2dp999il9VupyCddcM+TYsWOiaJY/2oRCfH193dzcaVCKbBaNRr19+3Y0OCUlxXrQUf6oUaO++OILtskB/Qn5hnq9OMxwrN9ocmmCYyWKkB0NN/WxMzWkcV+tI2RggwRCl7LHdbIIYVkQUyYIXUVxDyFhDaoDkQmCMJparibkhobsKB9RNkcCxrPozYSuglDTkIrBCMaoAoePxUA4
0LesTdvfeEvNG4sQX/i3OURXTRNhNG3KWdv2jJVNKOGc3ytHkyAIgiAI4vaHr1z5JB9ZnMGs3Dexro9+zO/rcJW3xigU1nRpRBdGu5SEkjlNhN+8OWeqoPfYvFVuQoQ1laNMEARBEARx+8HOnWvPxs/0Z/bec1mX7qdY5y7f8PYdOW+m2RICfyG8IMRgSgLJ3CZEX9NmnHV+4gZLGTWFX7xIO+YTBEEQBHF7wTlvxba85Mm8Q8pY58f3sPsfOs86df2LN9NslIq1Xfg3phgbSnRVN8RDxKtpO848QvaxmcuekJNCEARBEATRuGGbd1uyuKFZ7KkBG9hTz7zPHnj4V94CAgeiS7O2C/9vyNEubVYlCFnXRw6zPoOekpNEEARBEATR+ODH3nicpeRH8V6Dp7Gne77OHn/6R962gxAzEF0wzfYREDmNTXRVN8StNWdNmuwVRiNgBEEQBEE0LtjZS53ZiLGezMJtDHuy13b2bO8veIeuQsBoRJdm+wiNsKkpdhqjkQAjCIIgCKKRgZ3i2ZQVtsxZncaeeX4R6zvwLH+ohxAtEFsQXZhibOjF9LdiVdOjrPszh9kgV5qCJAiCIAiiYZAW089d2Zt5hfkxa4cZzNH1bf7Ys5w3x5SiZrQLwuV2FV0akxfht+zMWfSQPXzX/sflLCAIgiAIgqgf2KQt3Zl/jD0b5DSSObu/wp5+/hpvIYsUybB1BP6vJGZuR8M2FM05e7jPH2zMxAkY7ZOzgiAIgiAIwnzwyj2dmE9SX6YOi2cuHqtZf6tveKv2QpxAcGF6sfpi+jvNWnHWogVj9l5vscmLHGkjVoIgCIIgzAY/c+YeFjjsUeYT5slcvaez3pbneOfu0qakkknCC6LrThrtUrLmnDVr+RfzDSvnW8/SUUQEQRAEQZgWznlLXji1E0vNtuLeAYWsp8VrrNPDvwkBckPanb4pRrqwrutuEF4wefqx1f3XeGCii5xNBEEQBEEQtwam1Hj56jZs Yfya0tA2awMYTKRdKwgp/EC3ABc5HA6Hw/mtwAtPTEyU+8FwrOPjz1VXV7GY1omMjFKrVXLnGOpi8ODBzT6PBM2Qm5srr6t3796YypKSEuVrFUBd+Pr6WR8bs2Hy5Mn79++XNuCmmM2dOnVSqzXnz5+zubwTGxsb3+R9UIGBgdAYGRkZ1magBD8//x49um/ZskXeNig9Dw8PJjCwCaVz+vRptq46sLNDDfbWlT88Pb38/Hzz8/PlJUBOhIaGsk05mZmZ8sfAYOni4kKIIjnZ9j1R0ANnzpyxKgQ0Jjg45MQJtl7UZfr27SvfI6DT6cLDw8vKyhBvzY6KgoODhw0bJpeIDIhJCEJpgwKti25xdHQ8dy5evlMqlap79+6y9RgIDKwX6FAXNKf1KbuQkFBIU3QL2wRoGGRP0+MiB4UA9PD+/baqr12ylpAB1OHGcYJjd50gJHEHrwXGE/I+7SWgFoRd9CkauiWBn4GGdiZO2URBGCmKoYTgzGZ6BrxONeRThNwv0yToeYwpU0VxByEdGyKB9MtpAGWiHBwgJ0GALkUDYMAOHHQLhgZkZAJpQ+MnhawiB1lgjx8/vx2xdbjI4XA4HM5vYtiw4UVFhQUFBXIvdtasWUuWLGGbV6RHj565uTny+cjLywse/+7dcD9sgeqQX2yBJvH29jYaTeXlZVIUBdLi/Pnz0kZjYmM7Q2YUFxdbGwy/H958z549v/32W7mX3/oUKbeEP/3QQw99/PHHNldCUDIKkfeM/HEdOOtKpSolRXoI3t8/ACZylQVQgrxABitTHo8YKLc1a9ZI2w3ExMTo9Xr2wD2LQVOxW3l5to/9jBw5Mi4uDqlsEwUOHz587dq1nTt3tlklD0lSqAk2TULte/bsueOOO6D9rCUDJNnslzzVwcEB4iQhQTp8OF4VFeXypRSQHUgbLQADlO/r6+vi4trudc5omdcOZvFVtlqlJyH3NnQXTrtNgvBT4+56hxC2jRP0hCD8VxQn
5tzeLCk9jXkGvswefuoya9HyN95CiK2mWNMFg+i6U6cZtZlIf5u2nNn7vMOKi7vLWUYQBEEQBFE3JOG1YOuDPK8oiHkFLmNPD7zA7u30I7unHZOEl7SFxN0oujRW9WKByI/fWfnkGeybb9rJWUcQBEEQBGEcmGZki1a5MVXwFP5EnzOsfacv2b3t/+CtIDowxQjDnl0QILfz9hG3Yki3yANMP7a+/zKfMMuCFt8TBEEQBGE0fOuuASxt1HD2ZN8trNNDF9h9HX/mbSA0MNIF0aWZZtQIkJqi5G4ypL8FZ23vZcza+wjLKb9PzkaCIAiCIAjd8N2vP8ZyCuJZT7ulrHOPt9n9D33H294rxAW2jyDRpduacNa+/c98xrxCfuZMSzlLCYIgCIIgasMY68KmzvVn/RwnswceO8i6P/o5b99ZCAoILo3wuhN2qDeXIU9acd6sJWedH/ucHTjwvJy1BEEQBEEQ/4Nzfg/bsMeJuQTnsmf7bWRP9/w37/wA500htCC6sGcX/q0RGLe78DJnGuC3OWftOvzFbPx28aU0+kUQBEEQRDX4hl0DWGR6DOtluZANGHyaPfLEdYzc3NmiC1OmSB/Wrin97lZNfvuxQ6cf2IwF6bT4niAIgiAIjHa1YjMXuTFb17FskOUh9uzzP/zvWCAYphjvpDcYkQ6kB+vVILpEGjt05axNl5um3yYDYYlwWrTm7MGn32cfffaEnO0EQRAEQdytsMkzezNnIbyc3T/iXR8WYkEjujTHAmlGiZTExe1kmjQgTbLoai5EUccuv7D773+TqUJfYg/0+7ZqhA/CzFRphp+mnHXo8gdzCF4tZztBEARBEHcj0t5dYyd7Mmu7V3i76qNdphz9aWjTiEfNaJcQlVjDdl8nCK8vWOdHTzF7r/FszcZ+7MV9sazbE59VCU/sWWYqAYb8bCLC63aJTZ0fKmc/QRAEQRB3G4yx1qx4aijr1feDKtGFKcY7SXjBILogpGTh1foe ETKqIQsifxSErTTLPLoSgDUeoLQJsmPRFJhBojzcUOM4uhoeW3sAIDZPEE4KQhr0VeNWTSTkbkFwFoRzaBJs+CG+ElzkcDgcDuc3cfvtd2zfvg0+q7RNL4BERkZt22ZZZK8tzJw588cff7S6vJiYoqOjm952Bbp1615QkC+vC5ohKCjIxcXltOxltTBA5MmTcBWaoX//AZmZGfJC7OzsunTpkpKSUlpaKve82wga7OPjA5Hw9ddfS1FtAA1gaxVI25alq/vIr5lcFeiHDh06yC9PMXr37nPxYqOnjNzd3YuLSwoLC1gMw9vbx9PTA8JP2qaWoaFhjo6OqakpzS6ifUWwgwEBAdAYEFRlZY0kaCug3sjIyAMHLi8Hf/PNN7OTAUksphWaHr6ePXtt2WJ9JqJ9spVeOsAJjZ3H+XQnd+04HKpgORwOh8P59VRXV8kvPsAT9fPza7vCue660du2bZM2KNSXbV5p+Ph4y+uCG+3v7x8SEpKQkCBFUaATOnXqJG00ob6+Tv6KFRTi5eVVWVkFR1zuIjd1qVG1DcgLMyiBXr16b9q0CZuSKaV1pxx12SxIgH6z8dFtSmhaIGJQKXJBkDRVOMDV1cUm18SJE20UDnBwsLdZ3FmlUuXl5UVHR9msr9BsG6RQA6wfcFwcHHQopLKyksUzmtrbwFZKsHL8+ImYmBioOMRrWsWmP1GRg4OD9fVB7ZV+9FIAO/Nw9nCFw+Ew+JUcDofD4fx6rrnmmoKCAvkFEDi4kZGRNs9mtEJMTKfi4kaPqsMxVanU1pu45IwaNSouLs5qjCmsV69excXF6enp8vusnJ2dy8rKi4qafxXp+PHjjx07Jq9x7Nhxx48fy8/Pl19FCQgISE+/vJy0SqXs16+ftNFATk4u4r29fTZt2jho0CD5azTRDz4+PmwpNhaDObe2trauDprBYmM0GtRqTUmJdPGkT58+hYWF8teGIqO7uztapdVq7e0dEIFv2NtM3BERkfDv
zjp3+Y11ffBjbuG2lcUPTWQlM3sgP4QYbc58orexDp1vVI2OmXL0S+Rty7acPdjrlMj3B6QbQBAEQRDE3QUWgLOVm9RskJUQX5pF9e1kwXAnGIQkhJcQUs1F2tq156xd+/+yZ/p/wJIz5/HyiQ4iD5rJ2SHBduwexO599FKVWDPl6Bf8NOHs/of+ZOqkeXJwBEEQBEHcbbC33+vLrO0P8GYY6YHguBPEF0a7qgmvlq05a9P2d/Zgjx+YR8A+NqpkCKuoeFpp81N8xpKyy4VI+7lKkCr5r6shXkKAdXvo32zWEnc5SIIgCIIg7iYw8sNcQuawBx+/UTX1aKqRnoYyzTSjEF3NmnPWohVjrTtcZ70Hv8/ikl/gI8tdePmcjljvJmdBLXjMsE6sp+07rPU9zPSL7zEK156z+/u+IuJwrxwkQRAEQRB3E/zAUQv2TK83eDMIDc1+XrerQXg1rRJezVsw/uCTV5mL726WOCSVpec8xfa9qfesRUmQjiz2Z23v/ZE3xegXBJ1SWHUxefrxsaf/YEn5U+UgCYIgCIK422D+ySP5/d2v3r6jXxBIEI6YPsXC+vs4s7B/l4VETWYBCa6seFJ3XaNdNeHlqzuyyORNrE3bG1UvIiiFWVeT3358/In/Y/uPO8pBEgRBEARxt8EeHriW39NFCAOM9twuAgzxhOhCnIVwbNWOsyf7/Jc5um9idh7pLCqtD7/CO8pJNAqWNroPe6DXt7w5RtNgSuHXxeTpxzYdOXu47zq8dSoHSRAEQRDE3QT7+uturNOjh6rOcjTlWidzGUa7MCqF0boWnHV66CYbaPEWs7SbwjwjVXzxpscxhSgnz2iEKGrLhpfms+b3/PW/nf6V4lEXw4sNTTjr2fcXNrRsjBwkQRAEQRB3G9L6rweeeqtqJAmCo7EJMMQHphFdwtp24OzRpy6z5wZsZv1d01n2aCshnPSu7TIEllb+CHcOOMNatmSmXQ+HNGA0TQiw3n1OsffP jx8/Xllp+wqaoKBgJydH+fUZ6ISePXtu3Gj7Vqjhw4efO3dO3rG+vr4QXZcuXZKv6414Dw+PvLx8RLi4uCKCEIVSqZALJNjcdNNNaE9q6oWystLrr7/+8OHD8qPj4uICfSjfC4PBQJ+nYrVYUpCRhiU6dYqtqqoaOHAghJMU1RwXLqTu3r3bekMgCuratWtSUrL8fcftj0z6Tlz0HXTOrMarhHE4/2a4yOFwOBzOr2fatGnyG64AHOKoqOi9e/dI21diwoQJR48elWuDDh06NPv6o9DQMIWCyFcXsLOz8/a2LDsmX/cZJcC13bFjB9u0AaKoqKhIfnVCp9MNHjwYJciXd0Mhffv23bx5M9u8IpMnT0ab5c/iY3qF1kpNTZW2r8Rdd931888/WydlBCD2PDw85SsEUD2jlq/QALPY2Nhdu5p5eAlAG1x+ETAFugsqUdqQ0a9f/7S0C3Ip0rt3HyiuxMQEdIU1EmoKTTpzptFbfa+5ZgjM5HnDw8PZoggdO8aYTMYmy0+7pKamsM3fF5sFMBC47bbbXn/9dbbZXplOiA99PYu0zeFwKFzkcDgcDufXExAQAM9e7sKyFcls7jhqFpPJVFRU7OvrA4dYXkKXLl2gXuQP6IOamprCwkL5umrA39+/vt7g4eEud21Bjx49kN2mBBhAIGVlZcmvO6G6Tp06GQzGixcz5Y+2g8jIyGZvAGsWHx9fFCmfUtEDMTExUAXSNm0Ak2TyhcIA2llWBhkg2KxQB6m2fft2tmllypQpe/fulTaoGUSat7fPkSOHpSgZM2bM2LBhg7VMyJXIyKiDBy8/7sIICgq2t7eDFJG2BcuqaG5ubr6+vjavzYmKimraJ2FhHWprL1+wQgB7jQ6BPAsJCTUaDXKVhcbg+NrcV+bi4oLTBsfF5uGfqqrqpKTE8ePH5+XlSVEtgw6Pj4+3amA0A7sQFBTUtA85HM6/AS5yOBwOh/PrsVmeGLR9WgkPD8/NzdNqNTaP
DZaDJAiCIAjiboMdOOLEHu39XuMSYBrRhfVS8hSjEC+s60M32TM932DPDZzMnPxD+KKVT8rJMAnS4vu80T6s44N/Vm3HYcpNaJEekZZ2nTh7ou88Y9akEQRBEARxh8E+/aIfe+jp01Uip6GnIBF29SlGYR27cvZUz+9YX5s9zNJtJCsab38rU4y6YPte68YyspZVhQ0BphTHWzHht4/FVT5sbIYcJEEQBEEQdyNCzHRgXZ7ez5trhE99CzBNePK+XYgSDsPu/thf/JnnzrD+9stZcnYq++KLZ+Qomw0WnN2fPW//NbawMO3oFwzTmU04s7Q9xD77urccJEEQBEEQdyvMVr2CP/CYJBDqR4AhjJqjXS2qRrseefQL1v2Zg8wvbBJfv81FCMTmcjTNiginFXP0S+TNOshxMuXie1hTzu/pwNkzgybIQRIEQRAEcTfD5q5IYc/2/LZKCCmJB1OYRnTh3xgNgsgRoqRte866PvAze/DRD5iF83ZWOC6ZfffdQ3LU6g02b8sTzF29tyoPTLn1hMaacNbH4ls2dGyoHCRBEARBEHcznPMHWd+Bu/g92CbBXNOQmNKThVfzVpy1u4+x9h2+Yk/1f53FZExic5fZYBRKjlK9w7wivNgTfX6rWvRv6tGvqulV5uSxi12++rQcJEEQBEEQdzsso3go69n/5/+NgplChEHIQHxAeAlh06oNZ/e0+5k90OMzZu22hQ0ZHsuXVnaVo9BgsHPft2cq78lV4ssci++bctam203W17lADpIgCIIgCEIaBbuX9bddzFq2ulElQjAapiQmDDGMdkF4teA4X5K1av0Xa9n+R/bk82/w4OhxrLh8EF+9Wqgz3lQOvkFhY8dbM2uX96vEp6lHv2CYfhx8gSUWuMtBEgRBEARBVMH+9a/nmavHbt4CI1bG7oMF4QIToqupuLZFK85atP6ddXrke2bvvo7FJgezsORubN++RnX8DkQgs1GnsQ6PsqoRMKW03YpV +7dSgtwMLvuAAQPgxNu8RAW03gZ5IRBa8IMjIiL27NljjWf+sbOzS0srUDfluuuug0SxeRWMFGoVmAUHB2u12kuXLun1emsbEHBw0KWlXWCbVrp27VZdXQWkbVqCn5+/zdUVMGLEyNzcnKKiIrlKgepoulMQY2VlZfIrNuxSjM0NeABNSk9PkzYagMiBzrx48aLVEkUNHTrs22/XQyhCe8gXsgNt7BkcAoVCGRPTEaJOfnBbR96G0FDs7DG2yeFw/m20ddTgcDgcDqcpx48fDwsLgw8Kz5UBL7ON1NTUZmSkV1dXowQUJeVvtQTJgnrJPXv2jIs7iwCESlRUVBtLAJKRKKLZI0eOdHFxuXDBVkug8LYrHLB161Z//wA7Ozup6Db3A+RNx44dy8sr2NM4LC8Cjo6OTV9EA+LiznTo0MEqSADsHRzspQ0ZubmWNc3khwZlNvucUteuXY1Go2REay8pKY2O7piTk4OwFEuv0UH80ByNgOzx9PTEvkjbVGmw+/SgkdAnvr6+UhG0cLrfVwCWkCjQOfHx8UqlUoptDlrhZVgtiO/du3dV1eU7Gzkczr8NLnI4HA6H8+uBG3306NHg4OCIiAhnZ2eNRgMXU0prGfjo8NTZ21cuXbpkb+8wYsSIoKAgeOEqlaqlEhCP8nU6HfL279+/rq4eGgnxR44cKSsrR4y/vz9980yju9RsQCFqtdrBwQHKasKECWvXrk1OTrG5GwoGZ8+29qLJZjl8+FCnTp369evn6uqKEtrSD7AZMGDAl19+OWrUSDQb+86AMhk4cGBLj8vLn8kBMLZZAI1hMll0i7zY2NjY9HRLj8lBA86ePYsGS0YqFcK+vj7PPPN0fX29FEXp27fv9u2N1sGzkpGRgb2WNqiMMRolhXbq1ClXV7fRo0dD6kDRscjWQbNxgKB++/btc8W1p6XGUVA+TqHAwMAxY8Zs2bLF+qYdDofzL8TyxxIpyOFwOBzOryU2trMomquqquka
5QdzV61mP/zaXQ6WIAiCIAiiCkmMnDljw1xVh1izZqxqOwbsDaYRVzVHhzSfQaiJ3zYVJq5hHbr+xayc/4/5BhQwryBbPqywk/Btlr27bhX22ZUnmId6U5XgRFqrp88UJkRdx0c5s1cPaax5QBAEQRBEAyOJsPnLnmX+ITNZr77XqqblMDKkMYgUGARLtc+bteHs8V4/suCIjSwmKYal5j/Nv/rqHtlto4VF5gSy3pY/mmf6Ef6acNbX+v9Y8lhrOUiCIAiCIAhl2NlLnVlwnDfz9F7FBlh+yjs8yHmL9kJQ3Ftlze7j/J6unD3z/I/M3etV5hc6ngUlqNj6fY9AxMluGjUinm2Yrftk3gbr3SAklUTUrRhGEIUAc/eexd+92FEOliAIgiAIQjfs5cPdWVi8LRvkFMOcfEvYw73L2f3PljEH73I+yC1JfObKpi3oY6rDsOsTtueANXP1lI9hMvXO9xj9EqLu0Z6c+UTT3l8EQRAEQdQNjBjx3Wfu4Ut33yP+3einF/XBvBPyWffnfq8SYKbe+wxvgTblzNH7bTZ6dh85SIIgCIIgiLsXxtj9bID9hqqRL6xnUxJRt2JVa+SYh1/x7bAWjiAIgiAIwuyw8vlq1nvAJ+ZZfC9EXdPmnD3W60+mjqW9vwiCIAiCIAB7zm4iu+9+ee8vU08/tuS8uRBgIbGn+KLKJ+UgCYIgCIIg7l7YibefYk/2Plg1+oW1WqYUYBhNw55obTgLS8q+E9bKEQRBEARB3DIsangO6/HMD+ZZfN+a8+YtOe/e9ypziOonB0kQBEEQBHH3Iu391cNiM2/dUYglLJQ3tQCTzr5kLDZ9P1uy4yE5WIIgCIIgiLsXtve4J3um51nz7f3VjLOWba/z7FFJQuy1koMlCIIgCIK4e2HquFnsocdumm3vrxatOXvo+S+Ya0gPOUiCIAiCIIi7F8ZYd/7AE8f/d8i4GaYf295zg8UP3ciXbu0gB0sQBEEQBHH3wpas ZbZ/X7cBU4+7u0dOTra0TUEJ8KrLy8vp+zSlSDlms2W1MTc318rKqmYFgLe3j4eHR0FBfnV1TbMlAEx6Hh7uOp0jXPlz5yxKBp4xdAJLZUAYeHh4ZmZeXlrtqoiJ6YS9KC4uvmI/YI/s7e3Lykqx73RZZ8ke/QNaWh0OjadXci5P39B+8idqGJ6eXpYrHQ0dgQLr6uoqKmzNUJqTEwq8XBqyQDV17dolKUm+wJ3lLaXyhdpsgJKhC8dJoHtt1qQODAyCBL14MVPabhkcIzQJGhjiOT+/oJVupJZODftoWX0O/YnOSU5OojEcDuffCxc5HA6Hw+FwOBwOp13Bb1fjcDgcDofD4XA47QoucjgcDofD4XA4HE67goscDofD4XA4HA6H067gIofD4XA4HA6Hw+G0K7jI4XA4HA6Hw+FwOO0KLnI4HA6Hw+FwOBxOu4KLHA6Hw+FwOBwOh9Ou4CKHw+FwOBwOh8PhtCu4yOFwOBwOh8PhcDjtCi5yOBwOh8PhcDgcTruCixwOh8PhcDgcDofTruAih8PhcDgcDofD4bQruMjhcDgcDofD4XA47QoucjgcDofD4XA4HE67goscDofD4XA4HA6H067gIofD4XA4HA6Hw+G0K7jI4XA4HA6Hw+FwOO0KLnI4HA6Hw+FwOBxOu4KLHA6Hw+FwOBwOh9Ou4CKHw+FwOBwOh8PhtCu4yOFwOBwOh8PhcDjtCi5yOBwOh8PhcDgcTruCixwOh8PhcDgcDofTruAih8PhcDgcDofD4bQruMjhcDgcDofD4XA47QoucjgcDofD4XA4HE67goscDofD4XA4HA6H067gIofD4XA4HA6Hw+G0IwTh/wkiAUDA4LaQAAAAAElFTkSuQmCC</ImageData>
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</ImageData>
</EmbeddedImage>
<EmbeddedImage Name="ID5">
<MIMEType>image/jpeg</MIMEType>
<ImageData>/9j/4AAQSkZJRgABAQEAeAB4AAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCACBAmADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9U6KSjNAC0UlGaAFooooAKKKSgBaKSjNAC0UmaM0ALRSZo3D1oAWiikoAWikooAWikpaACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigCvuBjGMGo/OSbhGUkVR1DTYr/TWtH3lZE2/Izof++lr8+/jvovxV+Bvil9QtvEmtTaC9x51leRyu6RfP8iP/B8nyJ8/364sViJYaPOo80T6jh/I1n1eWGhWjCf2eb7R+ick0aqNzU2Ni3PBFfJPgH40J+018O7rwvc6zN4U8eW6/urq1ldDK6L/AK5Pub0b+JK8Jtfiv8VP2ffiH5WvXeoXixs+7T9Qn3Q3yfwOjfP/AL+5K5p5lTp8k+X3JfaPfwvA+NxNWtg5zjDEQ+xL7X+E/S1p9xOMY7gmk3fKRndXyP8AFOx1T46eEYfHPws8Ragl9DCn2rR7a+dPO/2HTf8AI6f+PV5h+zn+1NqfgnxJPoPjjUbi40O4d0e4vd7zWU3+3/Hs/g2fwUVMfGjVhDl9yX2jHD8GYvF4KticPPmnT+On9uJ+g/2hFXlse2aUygclgf0r4M/aK8F+OfAEi+LfCHivWNT8IXT+dmG+dxZb/ufx/NF/tV2XwH/aAsfi34Ml8EeM9alsvFLQulvqjS+S9xv+46Mmz503p8v8VXHGw9r7GceWRnV4Rrf2fHMcNV9rD7XL8UP8UT7E8xOgI+lNCnawK/hmvzL8dax8W/gD44gXVdf1aeCKXfa3k0zvbXSf8D+Tfs/gr7b+Bfx60b41eH0ktXW11uNB9r015NzxH/2Zf9qihjY1p+xn7syc44RxWV4SlmFGcatGf2o/Z9T1hW+XkBRSNsji+cBB7muX+IHxC0X4b6DNq+u30VnbquF3v87v/cRf4mr8/wDXPjB8R/j98TDaeFbvVrOxuJkhtLKzbYlun8c0zp/3389ViMbDD+4vekcuR8LYrO4zr83JRh8U5fCfpWgVhuzu9xULfeOGCn3r5U8ZfFCL9lT4fxaEdWl8WeOb5PmkuJnfY/8Az2ZXd9iJ/c/jrw/4M2PxS+P/AIqnnPiz
VrLRkl33+pw3LokX+wifc3/7H8FZTzDknGnCPNI9PC8G1sRhauY1asYYeHwyl9v/AAxP0i8wIuS341FHdQykpHIrmvh/9ov9qAeHrH/hAvAepzP9lTyL3WfNd5kdP4Ef+N/771c/Z60HxN4biHxE+JfijU9K0KzjMlvZX9w+yZGT5Jn+fd/wDbVxx8ZVPZxiZ1ODsRRy5Y/Ez5Of4Ifal/26fa+9V/iBH1prTLNwjo5+tfm18Wf2jPGHxi8ew2XhCXUrKxRntrKzsJn33fzv+++TZ99NnyfwV7zofiJ/2WfhxNqPjjX7jxB4r1BN8Ng947v/ALCIjv8Ac/vvRSx9KpOf8kftFYzgnF4OhR9tL99V+Gl9r5n1dHIY1+YAZNLHMsrED7tfml4J174r/tCeP547DxDrGn2s8rzXF1bSukNin8CfJsR/7ip9+v0Q8I+H4vC2h2unRzTT+SnzzXEzzO7/AMR3NWmHxX1r34R908nP8g/1elCjWrRnVl9mP2fU6eikpa7z5MKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAqlvLZVA/d1h+MPB+n+ONBvNE1a3S5sblCkiOOGrdhxt65FPO7dx0pz7DpTnTnGpD3ZRPzB+NXwN8Q/s6eJodX0e8nbSll32usQqFe1bfsRHf0r2Lw/4h8N/tieDY9E8QLBovjzTIv9Fu0w7/7Tp/fR9nzpX154w8H6V450G70fWbWO80+4TY6SDNfm98bvgtrv7OPiyzv9Kvroaaz79P1WFdrxP8/7l3/3P++99fMYjDzwc+eHvQl8UT+gslzqjxbRhh8TP2WOpfBP+b1M/QPFXjP9lX4kXEEsMyNE7/aNMd3SHUIfuecn/sj17J8XfhH4f/aB8IN8Sfhv
5R1lU/4mOlWqJvnf77o//TVN/wDwKtbQPEfhb9s7wf8A2D4g8rQ/H2npvhnhI3sq/wAaf7Dt95K8J8LeMPFv7K/xKura6tWaWJPLudMml2pdw7/kmT/vj5Hrk9yjDkn79Gf/AJKfR82Ix+I9tRj7HM6PxR+zVj+tzpv2c/2jpvh3eP4U8WK954SuHe1kS6Te9q33HTZ/c/vpVn9o79m4/De5g8beCHa78I3LJcwvZ/O+nv8AfR0f+5/cf+Cu0+L3wd0T9oTwnN8SfhwiPqgTZe6bCVVJXT7/AMv8Eyf+PVxH7OP7SafD+E+DvF9ub3wlcM8DNdK7fZd3yOjo/wDB/sf7T0pRjD/Z8T8H2ZjjVlWlPOsmhy1Y+7iKH83/AAT0D4cfGLw7+0p4b/4QL4jR29trPlbLLUXZMySt8iPH/cmrxLxF4Z8Z/sr/ABItriC4mTy3/wBHv41dIb1Pkd0/9AR66r9oD9mu6+EM0PivwncT3Xh1n87zo3+ex/jR96fwf3H/AIK9H+GfxO0X9qrw2/w78e28Vr4ghi32Wpo2x5W/vp/cdPk3J/FVzjKtL2Nb3Zw+GX8xhRq4fB05Zll0fa5fP+LS/k/vcp4p4s8aeNP2qPiFY2cMM0vzolvYxO721r/A8z/3P9p69x1bWvDX7F/gsaTpDQ6z8RdSh/0mZE/75d/7iJv+RP4q8C8TaD4v/ZZ+KCRW100c6tvt7oI6Q38X9x03/wDjm+pPhn8O9a/aU+J13Lf3zJHNL9p1S+38qjfcRP8AvjYn9zZXLRq1YTnT5f30z3Mdl+FxOHpV+eMMrhHm5Y7yfaX9bk3wl+EviH9ozxnf6jqN9MbRZkbUNWlTfuf+4n+1sr0349fHXSvhvoL/AAz+GjrZWFunk6hqVs/z7/40R/7/APfej46/HbS/hv4ef4Y/DN0trC1ieLUNThb5x/fRH/if++9Zv7PvwA02DR2+I3xEkbS9F08fbIILnY6XEOz78yfPvT5/
uVvCHL+5o/H9uZ5FfERqxhm+bw5cPD+DR/m/llKJf+A/7NelWfh1fiH8TLm2s9DhTzotP1BU8l0f7rzb/wDb2OlcD8ZPjf4g+P3iK20DRrW4TSPN8my0qF973TI/yO6f3qj+Nnxs1v48+KIdF0O1mi0RJ2g0/TbPf/pWHTY7p9x/ub0+T5K9o8M+GPDv7HvgceJtf8rV/Hl9D/o9nv8AuP8AxRJ/sJ/E9HLGtD2NH3YR+KQSliMHVhmWaQ9ri6v8Gl/J/XVknh7w34X/AGMvBH9veI/s+s/EDUIf9Ht4cK/+0if3ETf8714VoXh/xn+1j8RprqQ/O3Mt40O+3sk/gRP/AGSn6LoPjL9rH4m3VzczPhm/0i8dN8Onp/Amz/2T+Ov0G+EHwn0P4Q+EYdF0RXaJWZ5bmfb51w7Hl3Za6aVKeM9yHu0Yf+THh5xm8OFYzq1Z+1zGr8UvswX8qMPSvhzefBv4V6lYfDvStPufEcFv51vFqO9Ibu5/jaV0G8s+3r/uV+dd7/wWi8f2NxNb3Hw28PpNE7o6fa7j5WWv1xPP8XFfit/wVa/Zpt/hP8UrXx5odpb2vhvxQ2xrW3i2JDeInz/998vX00IRhHkgfz5XxE8TVnWrS5pyPtX9hX/goM/7WHijW/CuveG4NA12wtPt9v8AY5XlhmhV0R87/m3qzp/33X23X8z/AMCfi9qnwH+Knh3xrotxMl3ptwjywwvsFxDvHmwt/sumRX9I3hnxBb+KPD+l6vauj2uo28V1EUbd8roHFWYm1Xyd+3p+2lL+yD4d8NzaVpen674h1i7dU0++ldNtsifPN8n+3sT/AIFX1BqOp2+j6ddXt3KsNraxPPNM33URV3s9fz9/t0ftHT/tIfHjWdZtr77V4Y0x30/Q0RWRPs6fx/7zt89AH0vH/wAFsvHcjKq/DXw87t91Uu7iv0y+C/jzxD4u+D2g+LvHOkReFdWu7T7ZeafvdEtE/wBvf/sfPX4j/wDB
P/8AZ5l+O3xz028vUMfhDws6arrN8zqqQqm94U/4G6f+OPXsv7f3/BRDUPi22q/DnwBefYfA0MrQXmtWVw5fWU/ufcTZD9/5P4/9ygD6h/aM/wCCs3gX4Y31zovgOyXx9qqRZGoQzeXp8T7/ALhf7z/L/cr4c+Kv/BUn46fES6mOm63D4L07dvhtdFiCOv8A22f52r465r6n+Ff/AATb+O3xWt7O7t/C0Ph7SLuETw6jrd2kKMj/AHPkTfN/45QBz2j/ALfXx+0bUEu0+KGvXJhb/U3U3nQv/vo9fT/wn/4LO+L9E+xWvj/wnY+IbZN32jUNMf7Ncv8A3Pk+5XK+Mf8Agjr8YND0f7bpWqeHvEN0sW97KC4eF9/9xN6bH/8AHK+Rvip8DfHPwJ1yDS/HXhu78PXs6edDHc7HSZf9h0Lo9AH9AP7Pf7TfgL9pfwwuseENSR50T/S9Mmfbc2j/AO2n/s9ex1/MX8NfiT4k+Eviyy8S+EtVuNI1i0fek0DlN3+w/wDfR/7lfvF+xj+1to37V3w4GopbRab4n0t0g1bSVl3mNyn+uTv5Tnfs+m2gDnP29P2xNb/ZB0PwpqGi+HdP8QtrFzNBKl9M6eVsTd8uyvlX4e/8FivGvjbx/wCG/D8nw+0G2h1bU7aweZLubfGs0yJv/wDH66L/AILbf8iZ8M/+v+6/9EpX5pfAP/kuPw6/7GTTf/SpKAP6aq4v4ofEbRfhR4J1nxVr93DZaVpdu00jzTKm7rtRd38Tt8grtK/GH/gqb+2FF8VfF0nwt8MSK3hjw/dB76+hl3pqNyqfc/3IX3p/v76AOq1b/gtd4q/tK6OmfDnRl07zX+z/AGq7m87Z/Bv2/Lv/AMK9l/ZL/wCCgvxU/am+KEPh7T/hzoNroFvsm1bV47i4/wBDh+fb/wADfZ8i1+R/gTwPq/xI8ZaL4X8P2/2rV9WuUtbeDpvd/wD2Wv1X+JnxI8N/8Ev/AIA6L8O/CNpa6r8U
9ctGludRkVEaJ3J3XU2xdzoju6Qp/sf99gH1V+0n+2N8O/2XNFuLjxFqUd74h2q9t4cspk+2XG7+PZ/An+29fnD8Wv8AgsR8RvFS3Nr4J0PT/CNq0zmK6m/0m58n+DO/5Ff/AHK+DvEnibVfGGtXWr63qVzq+q3b77i9vZnmmlf/AG3eu9+DP7N/xI/aAa9/4QPwrd68tq6JczxvHDDDv/23dEz/ALNAHTXn7enx/vpnl/4Wr4hgLf8ALOG52JXrPwl/4KwfGb4f4h16Wy8eWITCx6suyZX/AL/mp89dfov/AARt+LuraSbzUPEXhrS7513rZebNN/32+zj/AMfrwz4xfsA/Gn4I2Op6vrvhcX3h7T/mm1nTblJYFT+/t+/s/wCAUAfpp+zX/wAFQPh38cdWh0DxDAfAPiGS3j2yahcJ9iuJsojpDL/v/c319w1/KzzX6g/8E6/+ChE1jeaP8KPiVe+da3EzJpnifUL+RplZ+Utpd+/d8/yo+9No4oA/Tb4neJ5PA/w58UeJLW3S5utH0u61CG3d9iSvFC7qjH/gNflb/wAPuPHf/ROPDv8A4GXFfp7+0J/yQf4mf9ixqX/pLNX8zvNAH9Fn7Gv7QGo/tMfA/TvHWq6VaaJdXdxcwfY7KV3RVifZ/HXvVfG3/BJ3/kzXQP8AsI3n/o6vsmgDmfHniCTwt4L1/WoIlln07T7m8SN2+R3SF32t7fLX5Sf8PuPHf/ROPDv/AIGXFfqf8YP+SSeN/wDsB3//AKIev5i+aAP6BP2Ef2sNY/a4+HviHxHrehWOgTadqf2GKCyld1dPJR97b/8Afr6ir86P+CKf/JC/HH/YfH/ohK/RegAr4b/bw/4KD6h+yf438PeGfD/hzT/EOoX1k97ffbpZk+zoz7IdhT+/sm/74r7UvtSttNsZ7u7mSG2t4nmlkf7qonLtX86P7WHxnv8A48/HbxZ4uvLyG6tZbhrWw8rfsWzifZDsDf3l+f8A4G1A
H6A/s+f8Fbtd+LHxk8J+D9f8F6NpGl65fJZNe213Lvhd/uP8/wAn36/T2v5Z7HUrnS76G7tJ3trm3dHhmjbY6On3Hr+if9j/AONdh+0B+z/4V8T2t3JdXq26WepmVvnW8hREm3/733/+B0Ae41yHxM8SSeCPh34o8RWsKXN1o+l3WoQwO+xJnihd1Rj/AMBrr68+/aA/5IP8R/8AsWdS/wDSWSgD8v8A/h9x47/6Jx4d/wDAy4rQ0T/gtN4qvte0u31XwBoljpctxCl3NBdzb4od/wA7p/wCvzK5o5oA/qQ0fVbLxFpVlqen3C3lheRJcW80bZR0b50etavkb/gmT8Tk+JX7JXheFvJS68PM+jSqku9tsPKO4/hLI1fXNABXj37T/wAbof2efgj4l8blLW5vtPiX7Ja3suxLiZ3wkWf++/8AvivYa/JP/gs38aNP1bXvCPwz026Z7vSS+patGj/KjSonko6f39nz/wDA6AMr/h9x47/6Jx4d/wDAy4r0j9nT/gq54v8AjR8bvBvge98CaPp9prd8ttLdQ3czPEhT76hq/JLmvfv2A/8Ak8j4Uf8AYaT/ANAegD+iiiiigDx/9qT43J+zv8D/ABJ48FlDqdzpiQpbWU8uxJpnmREXd/wPd/wCvze/4fceO/8AonHh3/wMuK63/gst8dJdvhf4R20W2N9niO+n3N83+uhhT/d/1z/8ASvyt5oA/pA/ZU+OMf7R3wQ8P+OjaW9jeXyzJd2drL5yW8yTOjp/44j/APA69mr8nv8AgjP8dJ473xR8I54FeGRX8R2l1u5Vv3MMyf8Aol/+APX6w0AFFFFABRRRQAlFLSUAQ43DDCsTxZ4Q0jxppE2m6zZw39jcJteGZN6NW1DznnNPwe1EolU6k6clOD5ZH5e/Gr4IeJv2ePFp1bTpLgaMkvm6frFv8nlO7/JC/wDdb/0OvZ9B8QeHP2xvBA8Pa88OiePrFP3Fwih3fZ/Gn99H+ben8NfX
vijwvp3jDQ7jStUs4byymTY0UyKy1+bHxl+CPij9nPxZFqmm3U8elLcIdO1iF9jxO2/903+3sRv9h6+WxGHngJc8I81KfxRP6CyTOqXFlKGHxNX2WOo/wp/zeTK/hrxN4z/ZX+JDxX1vLDKqbLjT5Jf3N3D/AH0/+Lr2H4tfCPQP2h/C/wDwsf4ZlZNT+7qGmIiI87r98Ov8M33f97itTQ/E3hn9s7wOnh3xBs0Xx7p6edDPCv3tv8aMw+dH/jSvDPC3izxh+yz8SpLG9XyWXZ9u0/zXeC4hd/vp/t/3Hrm9yEeSfv0Z/wDkp9Fz4jH4j21GPsczo/FH7NWP63Og/Z+/aSu/AN6/hbxijap4TupXtZkuvney/gffv+8n99asftDfs+t8Obq38deALhrrwncypMj2bbv7Of8AgdHT/lj/ALf8Fd58Yvgzof7QHhc/Eb4YbZtTb/kIaanyebs+/wDJ/wA9f/Q686/Zp/aGi+HLTeGfGBa58Gzo8PkzJv8Asj79jps/uff30Sjy/ucR8H2JBTqSrc2c5LDlrR92vh/5v+3T0f4X/FDwr+0F4Hi8D/Em5i/4SZY/JstSucb5Xb5EdH/57fP9yvAPiF4F8V/APxhc2y3F/Z20rvDZalbtsS9h/wCA/Jv2ffT+Cu2+PnwBuvAuo/8ACZ+DP33gu42Xlvc2Uu97R3Jff/sJ/cevRvhb8VfD3x+8DwfDPx6Eh8ReV9m0/VJl/fSvs+R0d/uy/J8/96lOMq0vY1vdrQ+GX8w8NVWWL+1cr/e4Of8AFpf8+v5vd/unm/7K/hXwXNd6r4w8c6la/YtD2TW9hM6vvf8A57On32+f7if36z/jh8ZdZ+P/AI1t9I0G1nj0qJ3ttN022377r5/kmdf72z+D+CuG+K3wj8QfB3X307XIMQTb/sl4n3LtE/jT/vtPkr2v4A+Pvhl8FvAd74ovJv7b8bXDPDDZvFsli2fwJ/cT5/neualOco/Vp+5H7R7u
YUcPGX+sGG5sVOfu0oR+GH9dTtfCfhbwp+yD4H/4SPxKYdT8f6hF/o9n8m9X/uQ/3E+f53rwbQ9E8Z/tRfEqaWVpphLLvuLz78Onw/3E/wDZE/jqGx0fx3+1P8Qrya3P2i8d98rzS/6Np6fwJ/sf7Cfx1+jHwo+FuifCbwxBoej26RhEV7mZ0/eXD/33bu1enSpfX58kPcow/wDJj4fN81jwrSnWrT9rmNb4v+nUeyHfCv4V6N8JfDcOk6Naoi/flm2/PK/8Tv8A7RrvO59KOf73FHBX0FfTQhGEeSB/PGIxFXFVZVq0+aUiavF/2qPgHp/7SHwT13wbeyPDdTL9psblU3PFMh3p/wDE17RS1Zkfy4a94c1LwnrmoaLq9lNp+q2MzwXNrOux4nT76MK/Wf8A4JCftIR+KPBOofCXVJW/tTQ9+oadNJNv862d/nT/AIA//jr14n/wV2/Z0vfCXxSX4r6baeZ4b8R+Tb3su7/U6kibNu3+48MMf/A0evjj9n/4tXvwL+L3hXxpYvMjaVfQzXMUDsnn228edC3+y6ZoA/YD/gqf+0Hd/Bn4DQ6JomoSWHiHxdcPYo8K8/Y0T/Sfn/g++if8Davw4jjeSRFVd7t91Fr6K/bo/aMi/aU+PmreIdJvb2bwpaKlro1tdfL5UKIm90T+De+9/wAa7b/gmn+zbcfHH462Gu38Lf8ACMeEZ4dUvJNislxMj74YPn/vsnzf7CPQB7f8QH/4Yd/4J7+HvDMWlvpfxJ+KET/2pdpvhmt4fvuj/wC2kMyQ7P8AbevzNjRpG2qu5m6V9x/8FcviBe+K/wBqy68OySsmneG9OtrWKM/c3zRpO7/+RU/74rxv9hj4c/8ACzv2r/hzobmNreLU01O4hnTck0Vt/pLp/wADSGgD9Gv+Cdf7A+l/DPwfZePPiD4ettR8a6mkd1Y2WoW+/wDsmHZ8vyOP9c+/5/7lfoSvy8U+igArjPH3wu8KfFLw/Poni/QL
PxBpcn3ra+i8z+JH+XunzIh+X+7XZ0UAfz0/tufsrz/sqfFb+xYrtr/w5qUP2zTLyZUR3X+NHRP7j/LWF+x38etT/Z2+O3h7xJaXvkaXc3CWWrpJnypbN3Tzt3+59/8A4BX6rf8ABWb4e2/i79lbUdbSwiutT8PXsNzDc/xwwu+yavw25oA/Wb/gtXeRX3gL4WXELbklvLmZH/vI8KV+avwD/wCS4/Dr/sZNN/8ASpK+zP28/iM/xa/Yz/Z08TS7PtVwk0Fzs/57Qwoj/wDoFfDXgHxN/wAIT428PeITB9p/snULfUPJ3bfN8qZH2f8AjlAH7Sf8FHv20rT4BeB7rwb4avVk8f63bvA3k3GybTLZ0f8A0n/f/uV+Ilrb3GqXkdvbxPPczPsRE+Z3dq7n45fGTWvj58UNd8ba6dl9qlx5iwJK7pbR/wAEKb/4Er7W/wCCWv7GMvjrxLZfFrxlpEcnhHTf32iQzlHS+ukkdPO2f3YXR/v/AMeP7lAH0R/wT8/Zls/2T/g34g+LPxIs/wCzvENxYPe3KzWn77SbCFN7p/e3vs3v/uJX5S/H34tal8cvi54o8balLNOdUvppreOZ94t4d58mFP8AZRNiV+0H/BUT4ln4a/sl+JYIH2X3iSVNFiPqkufOH/flHr8FuaAPrv8A4J7/ALIFz+0p8Rk1vWIof+EA8N3cMmrCfn7W330tdn9x9vzt/ClfuT4R8H6F4B0W10XQNKtdF023RYYbWziVEVETYnT/AGEFeKfsA+AI/h/+yb8PrX7BFp99d2P9oXqqvzSzTNv3v/t7NlfRtABVO6tYb6F4JokmglXY6SLvR1q5RQB+XX/BTD9g/RbPwhe/FX4caKunX1kxfXNI0+3RIZYXaR3ulQfxozJv28bPn/gr8pILiW1lSaJ2R0bejJ/C1f1HX2n2+rWc1tdQJPaTRtHLDMm9HV/vIy1/NT8cvAFx8K/jB4y8JXe0TaTqc1qPL+5tD/J/45QB
+y/wQ+Px/aM/YB8X+ILsTR63pnhzUtF1R523+bcw2X+u3/x70dH/AN93r8Kua+8f+CbvxIu7PwJ+0L4Bd2k0++8E32rwoz/6qaGB4X2f7/nJ/wB8JXwdzQB+7v8AwSd/5M10D/sI3n/o6vsmvw9/ZZ/4KZ6j+zD8JLLwHb+B7bW4LS4mnS9e8aJ2859/3Nlet/8AD7zVv+iX2P8A4Mn/APiKAP01+MH/ACSTxv8A9gO//wDRD1/MXzX6V+LP+Cymq+KvCut6I/w0tIE1Oxms/O/tF/k81HTf9z/ar81OaAP2P/4Ip/8AJC/HH/YfH/ohK/Revzo/4Ip/8kL8cf8AYfH/AKISv0XoA+Mf+Conx0tvhT+zbf6NFufWPGDtpdp5bMuyEbHmfcv+xt/77r8J+a+4/wDgq/8AHKw+Kf7QCeHNFubiey8G20ml3KucQ/bPOfztiY/h+RN3+xXjn7DvwVtfj9+0l4T8L6lbyzaCkr3+o+Wm/wDcwpv2P/sO6on/AAOgDy74lfDLxJ8JfFMugeKtLuNI1WKFJvs83VkdN6On+zX6Af8ABG748XOleNPEHwnv7uFdJ1S3fV9OSZ9jreJsSZE/vb4fn/7Y12P/AAWQ+BUlxo/hX4oWCQra6Wi6Lfp8iPtdy8L/AO3/ABpX52fs9/Fy7+Afxo8KePLOJbmbRbne8LL9+F0eOZf97Y70Af0s159+0B/yQf4j/wDYs6l/6SyV1mh6xb65o+nalasr2t9Ck0Tq38Dpvrk/2gP+SD/Ef/sWdS/9JZKAP5mua1rjQ7+HRbXVJbWWPT7qaSGK62fI7ps3p/wDen/fdZPNfV2g/Cy48cf8E8dX8UWsFxdXvhTxk8zRwv8AJFbTQQpM7p/vpDQB6T/wSN+NVn8PfjtqHhLV9WexsPFVqltZQu/7l75XTZ/wN03on+/X7X1/MH8N/Gt98O/H/hvxRp7rHe6PqEN7C8i/Iro++v6X/C3ijTPHHhrS9f0i4jvt
K1S2ivbS6T7rwum9HoA0Lq+h0+2muriRYYIkZ5ZHb5UVepr+cT9rP4nD4wftF/EHxVDf/wBp6ffavMljc7Mb7WL9zbf+QkSv2h/4KLfGa2+Dn7L/AIpVjI2p+Jrd9C05I9/DzI4d9/8ABsi3v/wCvwMsrOW+uEt4Fea4ldUijX+J2oAvat4Y1TR7XT7q/sJrK21GH7VaTTJsS4j37d6f7NeyfsB/8nkfCj/sNJ/6A9d1/wAFBPAR+FOrfCLwjvlc6T4HtoXjm++rvJM7/wDj7vXC/sB/8nkfCj/sNJ/6A9AH9FFULy+h02znurhvLghR5Hf+6qVfr5F/4KXfHS6+DP7NupRaRqSaf4h8Ryrpdod7CbY/+ueHb/Gqf+h0AfjN+0X8WNQ+Nfxm8XeKb3UpdTS81Gf7DPNxstVdvJRF/hGzZWPY/CDxPqPwn1P4iW9jv8L6fqMemXN0H/eJM6b0+T+5/tVwnNfuf8J/2LYP+GAY/hP4kXOqapZy6ncTQKrvb3j/AL6Ip/f2fIlAH47fAP4mXfwe+MPhDxfbXtxpyaZqMM1xNa/fe23/AL6P/a3pvSv6UNM1KLVLC0voDugu4lmif/Yddwr+Xm/sbrSb66sbuJra6tZXglRvvo6fI6V+4H/BLX47RfFL9ne08P3+rf2h4n8MStZXMMjuZltv+XZ/n+98nyf8AoA+1qKKKACiiigAooooASiiigCqpChTu7dK82+PmseFNO+GurHxkscukNGUaEpveV24VEH96uh8f/EDQ/ht4dutZ1u7S1s7ePO7+Nv92vzl8aeP/GP7UvxGs9KtY1KPM/8AZ+ml3WGJP783+3s+81eXjMVGhH2a96Uj7/hHh2tmuI+uVJ+yo0velP8A+ROJ+Heh+IvEXxD0+08GRSw6v5zvZbJdjxQo/wDG/wDc2ffr6q/bK1zwxYeBdI0LXxDrHj3YjRy2aeU6J/G7ff8Ak3fwfxUmtW/h/wDYn8FSXGlCPW/HuqKs
INy//Avn2fcRP/Hq8M+Gfw58VftOfEC91PUrqY2zMj6lrDxbEP8ABsh/g3/7FeBGEqNL6tD35z/8lP2yriKWcY2OfVpeywmH+GX2py/+ROq/Yn0vxrefECS88PzfZvD9sipqrTb3hlT+4n/TX/brG/a+1HwdqfxOnfwzF/xM4vk1WZP+PeV/4EVP76fxvXoHxx+POmfC/QT8MvhqkVlbWqNDfX9sPubvvoj/AMT/AN96xP2dP2f7T+zm+IfjyL7L4etE+02MEzGF5XR33u6ff/g+RP499Pl54fUoe/8AzS/lJpYv2OLnxVjo+yjP3aUI/FP/ABHqn7K8Wq+DvgbqOqeOrqBPA727XNpZ3UW51h/jdv8AY/upsr5B1pLXxB8S7lPAVlPBFcah/wASqCB33/f+R0/uf3/9iu5+O/xy1b46+JoNK0qOY6BFcf8AEt0+CLZLK+zZvf8A+Ir2rwP4T8M/sieA/wDhL/Eohu/Hl7E6W9kz79jfwQp/45veifLiXCEPgpfbFhp1MhlVzDEw5sXi/hox+H/t7/25m38dr/StF/Z20rTvik8WpeNmt9lpHEDvF3t+V96fwJ/E/wDFXyX8IfhHrXxi8Uw6RpCbIYtjXV/s+SBf7/8At/7ldJpFj4y/ax+K3+kv511IUe4dP9Tp9v8A7H/xH8dfoD8Hfg3onwX8OtpmiRy/vWD3FzI295X2Km9/++B92umGH/tCr7b7Ef8AyY8jEZzHgXLZ4OE+bF1fe5fsQ5v5S78KPhRpHwg8L2ujaXFkqn724dfnlb+8zetd9/E2elKc5+9xScFfQV9PCMYR5YH86YjEVcVWnXrz5pyJqKKWqMQooooA8o/aM+C+j/tAfCPxB4L1eFXS+if7JO4/49rlf9TN/wAAf/xzdX84ev6HdeHdc1HSrtdl3YzNBKn+0jlK/qTr8Jf+CrmmWmk/tia39ktobYXGmWc82xNu+Vk+d/8Ae6UAfIFjp9zqV5BaWsTz3M7p
DEkf3nd+EWv39/YN/Zrh/Zp+BGn2F5ZNa+LNYVL3Wy0u/wDfdET/AHUTj/vuvyC/4J/+E9K8cftbfDzTNatVvbP7W9z5Lvs/ewxvNH/4+iV/QzQB+Bn/AAVM/wCT2vHn/XGw/wDSOGm/8EvL2Cx/bV8CvcP5aNFfxxl/772cyr/OvYP+CyHwgXwr8YvD/wAQbR4/I8TWn2W5Tf8AP9ptkRPuf3fKaGviH4UeOrj4W/Erwp4wtIUubrQdUt9RS2dyqzeS6Ps/4HigD+nOiuF+FvxK0X4u/D/QfFmgzJNpmq2kNyib13xb0D7HH8Lpn7td1QAUUUUAfLn/AAUo1+00D9jX4gfam2fa4YbKLH995k2V/P5zX6rf8Fiv2jWt4dL+D+kSWs0Nyianq7j55onR/wBzD/s/36/La1tJr+4S2gheaaVtiJGm92b+6tAH1r8drG403/gnt+z8t2zvJNq+qzw7v+eL/cr495r9Mv8Agp54DtfhZ+zT8AfCth5ottLieFBN9/8A1KO+/wD4HXwT8Af+S5fDr/sZNN/9KUoA4Pmv2i/4JbftaW3xW8FWnwu1eC3svEXhmwT7LLAdv262R/vbMfI6fIr/AN/71fJf/BTT9kGb4QfEi++Ieg2kK+CvEl3ueGDj7DeP87psRMIj/wAH+/XyP8J/ihrnwb+IGieMPD1z9l1fSLjz4ufkfs6P/sOny0AfrN/wWijeT9nnwq6/cXxEm7/vxNX4x81+23xQ+Ifhz9ur/gnh4u8R2+221fT9NfU7vT7X989pf2yed5P97Y+3/vh6/EnmgD+kv9lHxBb+Jv2b/hzqVqP3E2h2wT/gCbP/AGSvW6/Pj/gkn+0nF4++FU3w11JrKy1XwqiJp0KS/vru2fe7vs/2H/8AQ6/QegAooooAK/nO/bh8QW3iP9rL4oX1lL51q+szIsn97Z8lfun+038brD9nn4KeJPHN4iXL6fFstLV2/wCPm5f5Ik/77+9/sK9fzjar
qUuq6pfX0o/f3crzP/vO++gD6p/4J1/8jX8Z/wDsl2t/+gQ18j81+kX/AATc+DcMP7NPx++J1yA89xoGpeH7T5vuIln503/fe+H/AL4r83eaAJ0tZbj5o4ndP9haPsM//PCX/viv3C/4JL6Wo/ZD06ae3hczavePG21XbbvRP/ZK+0f7NtP+fKL/AL9rQB/LX9huP+eL/wDfFQ81/TV8XtPtY/hN41ZbSH/kCXn/ACyT/ng9fzK80Afsf/wRT/5IX44/7D4/9EJX2X+0B8Uofgp8F/GfjSTyfO0fTpp7dJvuSzbP3KN/vvsT8a+NP+CKf/JC/HH/AGHx/wCiErK/4LHfHa88M+A/D3wx0/ydviLdf6k28l1hhdPJTb/Dvf5/+2NAH5P+K/FGo+NPE2sa7qkpn1DU7mW6uZP70jvvevvT/gmX+0T8F/2a/DvizVPHnidtO8Taxcw28MK6TczPDbRJ/wA9Ykfh3c/J/wBMa/PHmjmgD9n/ANpH9vL9mn44/BPxd4L/AOE3lS61OxdLSabQbxxFMnzwv88P98Cvxg5o5o5oA/cb/gkv8Wrj4jfs2DRbx5573wrevp/nTvv3wv8APD/3wnyfhX0/+0B/yQf4j/8AYs6l/wCkslfjN/wS7+OS/Cf9o6y0rU9QFl4d8URf2bcIyfJ9o/5dmd/4Pn/j96/Zn9oD/kg/xH/7FnUv/SWSgD+Zrmv16/4JN+GIvHH7JPxM8O3b+XBq2o3Nizld+3zrVE37P+B/pX5C81+zf/BF3/k33xf/ANh9v/RKUAfkr8VPh3f/AAp+IPiHwhquDqmj301nPsbdu2H71fr1/wAEi/jba+OfgHc+BZTKmreDbl/3kjO/nW1w7vC+f9/zk2f7CV8c/wDBWj4P3Hgn9o7/AISu30xbbRfFFoky3KNv865T5Jt/91/uVxn/AATl/aAm+A/x/gFzfQWvhfW7aaDVhP8A3IYXmR0/296bE/36APcP+Cynxog8Q/ET
wt8PtOvZJE0GF73UodvyLcTf6n/gaJv/AO+68P8A+CavwPuvi9+0xoN19mS50XwzL/a2pmVN6bE/1KfV3/8AQK8M+OnxOuvjN8XPFXje7t1tZtbvnuhCv3UT+BP++Alfq5/wR9+Ctt4M+CeofEiSZ5NQ8W3DQJCfuRW9vM6L/wADZ9/5JQB8v/8ABZr/AJOS0L/sAxf+jHrwL9gP/k8j4Uf9hpP/AEB699/4LNf8nJaF/wBgGL/0Y9eBfsB/8nkfCj/sNJ/6A9AH9FFfhf8A8FVvjjF8Vv2jp/D9lE8en+DIn0ku7NiWbfvmfb2+f5P+AV+x/wAbfilpXwR+FniXxxrO6Sw0a0ado1H+tf7iJ/wN3RPxr+bPxV4kuvF3iTVdav5XmvtRuZbq4mf+N3cvQB6B+zfceBLb41eErr4mXctj4KtLz7VqDw27TO+xHdEKIrs6PKiI/H3Ca/ZGP/gqV+zVbokaeNrlEVdqomh3n/xmvwV5o5oA+h/25PFvgP4hftCa94t+HWsDWNA15Ib2WP7BLafZrjZsmTY6Jv8Auh9/+2a9P/4JS/FmH4c/tOWuj3s8Ftp/iy1bTJXmT5vO+/Cif77/ACfjXxTzVzTb6XSL+1vIG2T28qTp/vq3FAH9TVFeT/s0/GC1+P3wQ8IeObe2+w/2tbF5rWRf9VMjvHKiZ/g3o+z/AGK9YoAKKKKACkoyKMigCvJnI4rkfiH8Q9J+GPhq71vWZ1gsYEz/ALX+ztWp/iF4+0v4c+FtQ17WJfKs7VN7BF3O3+yq/wATV+c3xW+JPiX9qD4kWdnplm5hV3h02wR/uL/HNM//AAD/AIBXmYrGRw8eSHxn3fC3DM89re2re5h4fHMp+PPHHi39qD4kC2sIHnMjudN01HKJFDv++/8ABv8A7zV71qeoeGf2L/AK2Fi8Wp/EfU7fed3z4/vn/YiVl+7/ABf+g3DqHhX9i3wHHavEmq+PdVi3yiF/nZ/7/wA5+VF/8er5
3+GXwv8AFP7SnxAvJ7q8mKTTedqWsTJ8i/7Cf7f9xP4K8D36Mv560/8AyU/aIxw+ZUOaf7nLKP8A5Vcf0/P12b8Mfhp4l/aR8f3F1fXU08Bm3anq038Cf88U/wBr+6n8Feu/Hj44aT8K/DLfCz4ZP9ihtV8nUNQT+H++iP8AxP8A32qX42/G7RvhL4dPwy+F5+zfZ/3N9qcPz7S/30R/4pX/AIn/AIK5v9nX9nW31bT1+IPjSSO08MWiPcxWszOkkro/33/2Plb5P480RjKP7mj8f25F1K9PEU4Zvm0OTCw/g0f5pfZlKJa+Af7OMenWa/EP4hn+yvDunp9vt7Z2/fPsffvmTZ9zZ/B9+uM+O3xw1T9oHxHZaLo9syaGlwiafp+zZNcO6Inz/Ps+/wDc/uVJ8evj5qnx21q10jRLeWDw+sqJZWca/vrh/ub32fwf7Feu+A/BWg/sjeEZPGXjX/T/ABZejybe0tv33lfx7E/75+d/anDkqQ9jR92EfjkKc6uCqwzbNI8+Ln/Cor7H9faY7wR4R8Ofsj+BF8YeL1Fz4w1JGht7OM71V+XVE/uN/fevBtN0vxh+1J8UJpYBvubh0eVmd/J0+H7n+f7705bPxn+1b8VJZoo1W5uFQP5m/wAnT7dfuf5++9foT8GvhBpfwZ8E22kWCRyXOxHu7zb89xN/G/8A8TWtKl9c9yHu0Yf+THk5pm8eFqU8ViZ+1zGt/wCAwiSfCP4R6N8HfDMGlaVDmTGZbh+Xlf8Avu9eik5zRuzyDx9KCV298Zr6mEIwjyQP52xGIrYytKvXnzSkS0UUtWYhRRRQAUUUUAFfhf8A8Fdv+TxtR/7Ath/6A9fuhX4X/wDBXb/k8bUf+wLYf+gPQBxn/BND/k9D4e/9dbn/ANEPX9Adfz+f8E0P+T0Ph7/11uf/AEQ9f0B0AeA/tnfACP8AaO+A+u+GoLW3n8QpF9p0aa6GzyrpOnz/AMG/7lfz2+I/DupeE9dv
dH1mzl07VLGZ4bm1nXa8Tp1Wv6kK+Gf27v8AgnbYftHCXxh4M+yaN8QET98k3yQamv8AAj/3H/26APzl/Yu/bY179lLxLJA8X9p+B9QuUfU9N275U2A/PB86Ir/+hbK/W/4O/t+fBD40R2sOk+M7bS9UlhV20vXv9DmR/wC5vf5Hf/cd6/Bb4hfDvxD8LfEV74f8T6Vc6TqlpM8MsM8W35l4+R/416VyfNAH9NfjX4yeCPhzoj6v4k8V6TpGnKm/zrq7T5/9xf4/+AV8MftOf8FcfCHhvRptN+EDHxPr8uwpq17ZulhB853jY+x3fZ/wD5q/IO4u7i62LLM8yr90O26q/NAGv4i17UvFWsXOqarfTajqFy++W6uZWeR/+BvX2b/wTN/ZJvfjR8SrDx1rWn3KeC/DN358N5BKqedqULwvDD/f2JvDv+Fcj+yp/wAE9fiD+0fJDrU0UfhzwbHceTcXupo6TS7AjukMP32/u76/cP4d/D/Rfhf4T0zwx4bsE0zRtNiWG3gRfuqMfe5+ZuPvUAfnf/wW2/5Ez4Z/9f8Adf8AolK/NL4B/wDJcfh1/wBjJpv/AKVJX6W/8Ftv+RM+Gf8A1/3X/olK/NL4B/8AJcfh1/2Mmm/+lSUAf0cfErwDpXxY8E614T12E3WkataSWtxH/sP/ABp/tJX8+f7TX7NniD9l/wCJlz4S1/8A0qB183TtTiR/Ju4W/jTgfMp+Rl/vV/R9XzP+3J+yfbftWfCmPTLaWKx8UaTM91pN46fLuKfPC/8AsPsT/vhKAPyG/Yj/AGpLv9ln4tQ6jcKbrwjqnl2euWsis+223/65E7un/wAWv8dH7bHwPk+GfxMfxVoNqr/Dfxs51rw1qEKbYZoZkSbyUT76bPO2bHrwPxL4X1PwX4i1DQtYtZbHV9PmeC5tpF+eJ0r7j/Yp+M3h34zfDeX9mb4owwto+oh4/Ceo+T89jeO003zv/v8A3P8AvigD40+GvxA1f4We
NNF8V6BdfZtW0e7S8t5P4N6/wPz8yN910/jWv13/AGd/+Csnw38daFY2fxJu/wDhDPE8UaRzzNbO9lczfxujpv8AKT/f/wC+6/Ob9pv9hv4j/swXCzaxarrXh+4d/s+taYjvDtTZnzl/5Y/f/j/uV84c0Af08aD8UvCHijSRquj+KtH1TS/+fq1vonj/AO+99eC/GL/gpF8DPg+Ly1l8Vf8ACSa1b/8AML8Pw/aXdv8Art/qf/H6/AuHUbq1TZFcPGn91HqrzQB73+1T+1l4v/ak8bSanrc32bQLR3TTNIhLpDDFvco7rvO+bY+x39q83+GHwx1/4xeNtM8JeFdPfUNc1CUJDCgxt/vO7fwIlafwf+BfjL48eMLPw14N0eXUdQundA7fJBFsTe++X7qV+1f7Df7Delfsr6BPqOrG11rx/ffJeatCjBIYf+eMO/p/tP8AxUAdjdfCXTPgj+xX4p8E6bDCkGl+Db6G4eFdn2mb7G/nTf8AA33Gv53ea/pi/aE/5IP8TP8AsWNS/wDSWav5neaAP3d/4JO/8ma6B/2Ebz/0dX2TXxt/wSd/5M10D/sI3n/o6vsmgDjfjB/ySTxv/wBgO/8A/RD1/MXzX9Onxg/5JJ43/wCwHf8A/oh6/mL5oA/Y/wD4Ip/8kL8cf9h8f+iEr85P20fikfjB+0x461+J7n7EL57K1huZN7RRQ/Jt/wB3ejv/AMDr6F/Zn+OUPwL/AOCfPxZuobx9P8Q63rZ0zSJYUDO0z2yb3/4Am/5/9tK+BfvUAfcf/BLz9mPQfj98Utd1TxdYf2p4e8PWiObGYN5FzNKSE3EddgTft/3K/Uj/AIYU+Af/AES3Qf8Av0//AMXXnv8AwTI+CJ+Df7Mmj3s8vm6h4u8vxBKnaJJoU8lP++Nn519fUAeB/wDDCnwD/wCiW6D/AN+n/wDi6+SP+Cl/7GfgLwX+zvJ4w8AeENL8N3ug6jDLqU1ruR5rab9zs/2/3zw/+P1+
mdcf8TPAulfE7wPrXhTXLYXWkatbPa3EfT5X/jX/AGk+9QB/Mrp+oTabfQXUXElvKky7v7yc1+/Phn41J+0B+wjrfjh4Ut7nUPCOpfa4Y/4LmK2mSb/cG9C6f7DpX4QfEXwXqPw98ca94a1K3e1vtLvJrWWF/wCDY9feX/BOL47W/wDwz/8AG74QXcU32lvD2q+I7Sff8mz7MkMyf+gP/wB90AfnPzX7N/8ABF3/AJN98X/9h9v/AESlfjJzX7N/8EXf+TffF/8A2H2/9EpQB6D/AMFPvgx/wtr9l7V9Uguvs974PZ9cijkf5JURHWZMf7hfbX4R81/Uhrmi2/iDRtR0y6RJrS+heGVJV3q6umyv5qvjJ8MdY+C/xM8Q+CdcVf7Q0e4aFnj+5Mv8Eif7Dpsf8aAMTwP4T1Lx74u0Xwxo0SzatrF3Dp9rC7bA80r7E/8AQ6/pK+DfgFPhb8KvCPg7dFK+h6Ta2DzQx7EleKFEd/8AgWK/HL/glH8FbP4oftH/ANvatE0+neEbT+04flbY9zvRIfn/ANg/P/wCv3JoA/FT/gs1/wAnJaF/2AYv/Rj14F+wH/yeR8KP+w0n/oD177/wWa/5OS0L/sAxf+jHrwP9gdxH+2L8KXb5UXWU/wDQHoA+7/8Agsr8dbvR/C/hr4XaXdReVrO7U9Wj/wCWnkwunkp/uO+9/wDtjX5SeH9Dl8Ra5pmlW+ftV/cRWsQ/2ncIK9x/bl+N138eP2kfFWtyokNlYytpOnwxsj7IIXdPvp9/e+9/+B17P/wSb+B1x8RPj8PGN9p6XOg+E4mnE0x/5fH/ANTsH8RTDvQB+kvhH9gX4I6H4W0TT9T+HWialqNvZQw3d75Lj7RKiIrv9/8Ajf5q2v8AhhT4B/8ARLdB/wC/T/8Axde+UUAfOGu/sEfAbV9I1Czi+HGj2M13bTQJdW0TedEXTZvT5/vpX4GfELwfffD3xzr3hvUIXtb3Sb6a0lhf7ybHxX9Q
VfjR/wAFgvgjqHhX4s6X8TYhb/2L4jiXT3SBNkiXMKfNv/v70/j/ANigDvv+CM/xquJLrxj8Lb/UGni8pNZ0m1dGcJjCXPz9EX5rb5f9+v0s8eeOtF+HXhjUNe17UF0vTLRN8s7q8n/AURPnd+PuJX88n7L/AMYLz4D/AB08K+L7S68iC0u0hvn270e2d9k3/jnzf8Br9jv23NV8M33w98JeINUs7zVtGZ7xrC8skkmgt7iXT5ktppgn8G90+d/uPQB6PpX7Uvhy6+1Xd7puoaZ4fhmtoU1qSa2uYW859kO9IZnmh3v/AM9kSvc6/LiHS/EWj6P+znceO7bT5fD114RvLXS08M280MyzTaVCiC/eb/Wu+/aiJ/y2r70/Zv03xFoPwL8D6Z4u3v4ls9KhgvtzB3V1QbVf/b2bKAPQ1kVQG+7u7AVzvjvxtpvw78M3uu6ofJsrSJ5GKn524+6v+1XQSTtb27SMm51TPlpXwP8AHDR/jT8cvEzwv4Z1K28OQ3H+hWLKiIif35v77/8AoFceLrzow/dw5pH0/DmTUs3xShiasYQj8UpS/wDSTz/4jfE7xd+0547ttHsrd3tprl/7N01VK7F/vzZ/iRPvNXuEsvhb9irwHJAqR638RNYT+P8Ag/8AiYk/8errPB/wSm/Zs+HL61oWht4v+IMy+T5sKDKM5xsT+5Ev8VeA2/7Pvxb+MXj9LvxfaXenvdn/AEjUrxMpEindsRP/AEFa+f8AZYij7/Lz1Z/+Sn7bTx2VZn/s0KsaOX0fs83vVZR/8m5fzOQ+H/w78W/tL/EK6uJLma4Esu/U9VZP3MSZ+4n+3s+4tex/Gz4zaP8ABrwr/wAKz+GEqWLw/JqGoWw3lf8Ansm//nq/8b/wf+gek/FDR/Evwh8F23gX4Q+FLpVnh8y41mFEbZ/f/wB+Z/79eX/s+/sfavrmvyaz8QdO+yadE7/8S26GXuJv77/7H3/9+n7GtR/c0vjn8UyZZxl+
ZR/tHMJxhhKP8Kivil/elEwf2dP2ebTUrWbxv4/t1tPC9urTW8F07wvLMrn53+58n9z5vnrl/j58etT+OniCHRdDgnj8MLKn9n6aIkSa4dPuO6fg+xK9Q/aOh+LfxYvH0PS/Bmo6f4PtWWOK1ESI1wyfxv8A7H9xK7z9n/8AZyi+DPg+48YeINIfVfGawvNFp8HzvEv8EKL9zf8A7f8AtUfV5z/2aj7kPtS/mKedYSkv7ezKcZ15e7SpRknyev8A8kYHgf4X+Hv2V/Ar+OPGZhvPFzwslpb+dv2t/AkKP/H/AH3rwC2Xxv8AtVfElBMfOu2T5mjR0trKH+P/AD/HXX+NPhd8bPjh44spvE+i31sksqQws6/6PZQu/wB/Yn/j9fa3we+B/h74N6CLLSLRDfTIn2u8b787L3arpYeeJn7GEOSjD/yY4cZnmH4eoTx9atHEY6t/L70YRJ/g/wDB/Rvg34Xg0nTIt8v37i5f78r93b3r0Vuc56Ubs854oJXb3xmvpYQjCPJA/n/EYirjKs69efNKRLRRS1ZiFFFFABRRRQAUUUUAFeG/Fb9jn4OfGjxQ/inxp4Ht9e16WFIGuZry5id0T7ibUmRa9yooA8A+HP7EvwU+Fvi7T/FPhXwHa6R4isWd7e8jvLmRoSybD8jyuv3Hr3+iigAooooA85+K3wN8DfHPR00rx34as/EljE2+FZtyPC3+w6bHT/vuvlzWv+CPvwL1TUrm7trjxTo8cz7lsrXUYfJi/wBzfC7/APj9fdNFAH5/Q/8ABGH4ORv++8R+MJ0/uJd2yf8AtGvVfhb/AME2fgR8KJba9g8JP4l1S1fzobzX7j7S6/8AAMJC3/Akr6sooAjjRY12quxVqSiigDzD4vfs4/Dr4/Wen23j/wANxeJIdPZ3tlmuZovKd/vn906V57pP/BPn9n3QdXstU0/4cWVrqNlMlzazpf3bGGRH3o4zN/er6RooAKKKKAPA/iN+xT8FPi54
lu/EvirwFa6prt3t+0Xn2m5heUqNvzeVKiZwKxtL/wCCd/7POl31tf2Xw2s7e6t5UnhmW+uzsdG3o/8Arq+laKAMrU9LtdWtJ7W+t4rq2uInhlhmTzEdH4dGT+Ja+VfiR/wS9+A/xCujdxaBfeFbmSV5pX8PXfk+az9tku9E/wCAIlfX9FAH5/Tf8EYfg5JJuh8ReMIE/uPd27/+0a6Xwj/wSJ+A3h3Vo7+9i8ReIY1/5cdU1FPIb/vyiP8A+P19uUUAcT8N/hX4U+EPhuDw/wCEfD9p4e0qLDeTZJw7/wB93++7/wC29dtRRQBj6/odj4o0LUNE1GBbrT9Qt5LW5t36PE6bHX/vlq+f/wDh27+zZ/0Syx/8Drz/AOPV9MUUAcN8L/hP4T+CXhJPDPgvRV0bQoZXmS1hllmRXf7/AN93bNdzRRQBl6xpNprmj3+mXsAmsb6B7a4hY/fR02uv/fNfPf8Aw7d/Zs/6JZY/+B15/wDHq+mKKAPnST9gr4DN4ZtfDTfDyzfQ4bt7+Kz+2XI2zOiI77/O3/dRP++Kpf8ADt39mz/ollj/AOB15/8AHq+mKKAM+x0210qxgsrS3SG2t4khijThVROEWtCiigAooooA8H+Jn7Ffwa+MHiu68T+MPAtrreuXCIkt9Jd3ELvsTYnyI6L0ql4T/YV+BHgPU5dT0DwBZ6fey281k8yX1y+6KaN4Zo/nm/jR3T8a+haKAPmf/h27+zZ/0Syx/wDA68/+PV6d8IfgT4C+AWkXmk+AvD8fhvTL64+1S28NxNNvm2bN/wA7v/An6V6VRQAV4H8SP2KPgv8AFrxdqHizxZ4FtNc8RX2z7TeSXlyjTbERE+VJUT7iJXvlFAHmXwh/Z5+HvwBttTtPAHh6Pw3DqbI92sVxLL5zJv2H967/AN969NoooA8U+LX7I/wi+OniNNa8b+DrfXtYit1tkumubiEoidF/dSJ/frmtE/4J+fs++HdTh1LTfh1a2V9b
n91PDqN5vX+H/ntX0hRQB8z/APDt39mz/ollj/4HXn/x6vTvhD+z/wCAvgNpN/pXgLQIvD1he3H2m4hiuJpt82zZv/eu/wDBXpVFABRRRQAV5v8AF34E+B/j1odlpXj3w/F4gsLWb7VbwyTTQmGXbt3b0dG6V6RRQB8z/wDDt39mz/ollj/4HXn/AMer17R/hh4U0P4cw+BrXRIYvCkNi+mLpLu80PkMNjw/P8zJXdUUAePaP+y98OdBvdCurbRLqRtBbfpcN1qd3cwWjj7pSGWV0Gz+D5Pk7V7DRRQAlN8segp9FADKMe1PooAj2j0p9LRQAzyx6Cin0UAM8selPoooASilooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//Z</ImageData>
</EmbeddedImage>
<EmbeddedImage Name="ID6">
<MIMEType>image/png</MIMEType>
<ImageData>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</ImageData>
</EmbeddedImage> </EmbeddedImage>
</EmbeddedImages> </EmbeddedImages>
<Language>es-MX</Language> <Language>es-MX</Language>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,874 @@
<?xml version="1.0" encoding="utf-8"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
<Body>
<ReportItems>
<Line Name="Line1">
<Top>0.08792cm</Top>
<Height>0cm</Height>
<Width>19.15246cm</Width>
<Style>
<Border>
<Style>Solid</Style>
</Border>
</Style>
</Line>
<Tablix Name="Tablix2">
<TablixBody>
<TablixColumns>
<TablixColumn>
<Width>7.3197cm</Width>
</TablixColumn>
<TablixColumn>
<Width>4.7613cm</Width>
</TablixColumn>
<TablixColumn>
<Width>1.60341cm</Width>
</TablixColumn>
<TablixColumn>
<Width>2.55502cm</Width>
</TablixColumn>
<TablixColumn>
<Width>2.80719cm</Width>
</TablixColumn>
</TablixColumns>
<TablixRows>
<TablixRow>
<Height>0.46771cm</Height>
<TablixCells>
<TablixCell>
<CellContents>
<Textbox Name="Textbox3">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Probabilidad de Acercamiento</Value>
<Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox3</rd:DefaultName>
<Style>
<Border>
<Color>LightGrey</Color>
<Style>Solid</Style>
</Border>
<TopBorder>
<Color>Black</Color>
</TopBorder>
<BottomBorder>
<Color>Black</Color>
</BottomBorder>
<LeftBorder>
<Style>None</Style>
</LeftBorder>
<RightBorder>
<Style>None</Style>
</RightBorder>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox4">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Tipo Proceso</Value>
<Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox4</rd:DefaultName>
<Style>
<Border>
<Color>LightGrey</Color>
<Style>Solid</Style>
</Border>
<TopBorder>
<Color>Black</Color>
</TopBorder>
<BottomBorder>
<Color>Black</Color>
</BottomBorder>
<LeftBorder>
<Style>None</Style>
</LeftBorder>
<RightBorder>
<Style>None</Style>
</RightBorder>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox5">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Estatus</Value>
<Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox5</rd:DefaultName>
<Style>
<Border>
<Color>LightGrey</Color>
<Style>Solid</Style>
</Border>
<TopBorder>
<Color>Black</Color>
</TopBorder>
<BottomBorder>
<Color>Black</Color>
</BottomBorder>
<LeftBorder>
<Style>None</Style>
</LeftBorder>
<RightBorder>
<Style>None</Style>
</RightBorder>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox15">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Fecha</Value>
<Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox15</rd:DefaultName>
<Style>
<Border>
<Color>LightGrey</Color>
<Style>Solid</Style>
</Border>
<TopBorder>
<Color>Black</Color>
</TopBorder>
<BottomBorder>
<Color>Black</Color>
</BottomBorder>
<LeftBorder>
<Style>None</Style>
</LeftBorder>
<RightBorder>
<Style>None</Style>
</RightBorder>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox23">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Usuario</Value>
<Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox23</rd:DefaultName>
<Style>
<Border>
<Color>LightGrey</Color>
<Style>Solid</Style>
</Border>
<TopBorder>
<Color>Black</Color>
</TopBorder>
<BottomBorder>
<Color>Black</Color>
</BottomBorder>
<LeftBorder>
<Style>None</Style>
</LeftBorder>
<RightBorder>
<Style>None</Style>
</RightBorder>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
</TablixCells>
</TablixRow>
<TablixRow>
<Height>0.6cm</Height>
<TablixCells>
<TablixCell>
<CellContents>
<Textbox Name="ProbabilidadAcercamiento">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!ProbabilidadAcercamiento.Value</Value>
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>ProbabilidadAcercamiento</rd:DefaultName>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="TipoProceso">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!TipoProceso.Value</Value>
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>TipoProceso</rd:DefaultName>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Estatus">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!Estatus.Value</Value>
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Estatus</rd:DefaultName>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="FechaIng">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!FechaIng.Value</Value>
<Style>
<FontSize>8pt</FontSize>
<Format>dd/MM/yyyy</Format>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>FechaIng</rd:DefaultName>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="UsuarioIng">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!UsuarioIng.Value</Value>
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>UsuarioIng</rd:DefaultName>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
</TablixCells>
</TablixRow>
</TablixRows>
</TablixBody>
<TablixColumnHierarchy>
<TablixMembers>
<TablixMember />
<TablixMember />
<TablixMember />
<TablixMember />
<TablixMember />
</TablixMembers>
</TablixColumnHierarchy>
<TablixRowHierarchy>
<TablixMembers>
<TablixMember>
<KeepWithGroup>After</KeepWithGroup>
</TablixMember>
<TablixMember>
<Group Name="Details1" />
</TablixMember>
</TablixMembers>
</TablixRowHierarchy>
<DataSetName>DataSet1</DataSetName>
<Top>0.26431cm</Top>
<Left>0.10583cm</Left>
<Height>1.06771cm</Height>
<Width>19.04663cm</Width>
<ZIndex>1</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Tablix>
</ReportItems>
<Height>0.60091in</Height>
<Style />
</Body>
<Width>7.54034in</Width>
<Page>
<PageHeader>
<Height>3.19792cm</Height>
<PrintOnFirstPage>true</PrintOnFirstPage>
<PrintOnLastPage>true</PrintOnLastPage>
<ReportItems>
<Image Name="Logo">
<Source>External</Source>
<Value>=Parameters!LogoPath.Value</Value>
<Sizing>FitProportional</Sizing>
<Top>0.11854cm</Top>
<Left>0.10583cm</Left>
<Height>3cm</Height>
<Width>5.5cm</Width>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
<Textbox Name="Textbox1">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!NombreEmpresa.Value</Value>
<Style>
<FontSize>10.5pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox1</rd:DefaultName>
<Top>0.48896cm</Top>
<Left>5.74694cm</Left>
<Height>0.6cm</Height>
<Width>8.8382cm</Width>
<ZIndex>1</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox2">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>REPORTE DE CATÁLOGO DE</Value>
<Style>
<FontSize>10.5pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>PROBABILIDAD ACERCAMIENTO</Value>
<Style>
<FontSize>10.5pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value />
<Style>
<FontSize>10.5pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox2</rd:DefaultName>
<Top>1.98854cm</Top>
<Left>5.78222cm</Left>
<Height>0.95278cm</Height>
<Width>8.8382cm</Width>
<ZIndex>2</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</ReportItems>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</PageHeader>
<PageFooter>
<Height>0.87322cm</Height>
<PrintOnFirstPage>true</PrintOnFirstPage>
<PrintOnLastPage>true</PrintOnLastPage>
<ReportItems>
<Line Name="Line2">
<Top>0.11437cm</Top>
<Left>0.10583cm</Left>
<Height>0cm</Height>
<Width>19.04663cm</Width>
<Style>
<Border>
<Style>Solid</Style>
</Border>
</Style>
</Line>
<Textbox Name="Textbox9">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Usuario:</Value>
<Style>
<FontSize>9pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox8</rd:DefaultName>
<Top>0.22726cm</Top>
<Left>0.10583cm</Left>
<Height>0.36335cm</Height>
<Width>1.60042cm</Width>
<ZIndex>1</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox10">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!UsuarioImprimio.Value</Value>
<Style>
<FontSize>9pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox9</rd:DefaultName>
<Top>0.22726cm</Top>
<Left>1.65016cm</Left>
<Height>0.36335cm</Height>
<Width>5.14936cm</Width>
<ZIndex>2</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox11">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Fecha Impresión:</Value>
<Style>
<FontSize>9pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox10</rd:DefaultName>
<Top>0.22726cm</Top>
<Left>7.92841cm</Left>
<Height>0.36335cm</Height>
<Width>3.55833cm</Width>
<ZIndex>3</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox7">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>="Página " &amp; Globals.PageNumber &amp; " de " &amp; Globals.TotalPages</Value>
<Style>
<FontStyle>Italic</FontStyle>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox3</rd:DefaultName>
<Top>0.22726cm</Top>
<Left>16.91135cm</Left>
<Height>0.36335cm</Height>
<Width>2.06587cm</Width>
<ZIndex>4</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox8">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Now</Value>
<Style>
<FontSize>9pt</FontSize>
<Format>dd/MM/yyy HH:mm:ss tt</Format>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Left</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox8</rd:DefaultName>
<Top>0.22726cm</Top>
<Left>10.62431cm</Left>
<Height>0.37041cm</Height>
<Width>5.72096cm</Width>
<ZIndex>5</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</ReportItems>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</PageFooter>
<PageHeight>27.94cm</PageHeight>
<PageWidth>21.59cm</PageWidth>
<LeftMargin>0.5cm</LeftMargin>
<RightMargin>0.5cm</RightMargin>
<TopMargin>0.5cm</TopMargin>
<BottomMargin>0.5cm</BottomMargin>
<ColumnSpacing>0.13cm</ColumnSpacing>
<Style />
</Page>
<AutoRefresh>0</AutoRefresh>
<DataSources>
<DataSource Name="DataSet3">
<ConnectionProperties>
<DataProvider>System.Data.DataSet</DataProvider>
<ConnectString>/* Local Connection */</ConnectString>
</ConnectionProperties>
<rd:DataSourceID>74f8a171-24f1-4404-809e-ec2e098f1907</rd:DataSourceID>
</DataSource>
</DataSources>
<DataSets>
<DataSet Name="DataSet1">
<Query>
<DataSourceName>DataSet3</DataSourceName>
<CommandText>/* Local Query */</CommandText>
</Query>
<Fields>
<Field Name="ProbabilidadAcercamiento">
<DataField>ProbabilidadAcercamiento</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="Estatus">
<DataField>Estatus</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="FechaIng">
<DataField>FechaIng</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="UsuarioIng">
<DataField>UsuarioIng</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="TipoProceso">
<DataField>TipoProceso</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
</Fields>
<rd:DataSetInfo>
<rd:DataSetName>DataSet3</rd:DataSetName>
<rd:SchemaPath>C:\Users\jesus\Documents\Visual Studio 2015\WebSites\WebSite2\App_Code\DataSet3.xsd</rd:SchemaPath>
<rd:TableName>DataTable1</rd:TableName>
<rd:TableAdapterFillMethod />
<rd:TableAdapterGetDataMethod />
<rd:TableAdapterName />
</rd:DataSetInfo>
</DataSet>
</DataSets>
<ReportParameters>
<ReportParameter Name="LogoPath">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="NombreEmpresa">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="UsuarioImprimio">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="FechaImpresion">
<DataType>String</DataType>
<Nullable>true</Nullable>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
</ReportParameters>
<rd:ReportUnitType>Cm</rd:ReportUnitType>
<rd:ReportID>2ec96151-d7c1-4609-bfdd-795b02d33b5a</rd:ReportID>
</Report>

View File

@@ -0,0 +1,958 @@
<?xml version="1.0" encoding="utf-8"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
<Body>
<ReportItems>
<Line Name="Line1">
<Top>0.08792cm</Top>
<Height>0cm</Height>
<Width>20.06868cm</Width>
<Style>
<Border>
<Style>Solid</Style>
</Border>
</Style>
</Line>
<Tablix Name="Tablix2">
<TablixBody>
<TablixColumns>
<TablixColumn>
<Width>2.3743cm</Width>
</TablixColumn>
<TablixColumn>
<Width>5.96532cm</Width>
</TablixColumn>
<TablixColumn>
<Width>3.05758cm</Width>
</TablixColumn>
<TablixColumn>
<Width>2.7467cm</Width>
</TablixColumn>
<TablixColumn>
<Width>3.70732cm</Width>
</TablixColumn>
<TablixColumn>
<Width>2.14878cm</Width>
</TablixColumn>
</TablixColumns>
<TablixRows>
<TablixRow>
<Height>0.46771cm</Height>
<TablixCells>
<TablixCell>
<CellContents>
<Textbox Name="Textbox3">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Tipo Proceso</Value>
<Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox3</rd:DefaultName>
<Style>
<Border>
<Color>LightGrey</Color>
<Style>Solid</Style>
</Border>
<TopBorder>
<Color>Black</Color>
</TopBorder>
<BottomBorder>
<Color>Black</Color>
</BottomBorder>
<LeftBorder>
<Style>None</Style>
</LeftBorder>
<RightBorder>
<Style>None</Style>
</RightBorder>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox5">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Descripción</Value>
<Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox5</rd:DefaultName>
<Style>
<Border>
<Color>LightGrey</Color>
<Style>Solid</Style>
</Border>
<TopBorder>
<Color>Black</Color>
</TopBorder>
<BottomBorder>
<Color>Black</Color>
</BottomBorder>
<LeftBorder>
<Style>None</Style>
</LeftBorder>
<RightBorder>
<Style>None</Style>
</RightBorder>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox15">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>No. Etapas</Value>
<Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox15</rd:DefaultName>
<Style>
<Border>
<Color>LightGrey</Color>
<Style>Solid</Style>
</Border>
<TopBorder>
<Color>Black</Color>
</TopBorder>
<BottomBorder>
<Color>Black</Color>
</BottomBorder>
<LeftBorder>
<Style>None</Style>
</LeftBorder>
<RightBorder>
<Style>None</Style>
</RightBorder>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox23">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Estatus</Value>
<Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox23</rd:DefaultName>
<Style>
<Border>
<Color>LightGrey</Color>
<Style>Solid</Style>
</Border>
<TopBorder>
<Color>Black</Color>
</TopBorder>
<BottomBorder>
<Color>Black</Color>
</BottomBorder>
<LeftBorder>
<Style>None</Style>
</LeftBorder>
<RightBorder>
<Style>None</Style>
</RightBorder>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox21">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Fecha</Value>
<Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox21</rd:DefaultName>
<Style>
<Border>
<Color>LightGrey</Color>
<Style>Solid</Style>
</Border>
<TopBorder>
<Color>Black</Color>
</TopBorder>
<BottomBorder>
<Color>Black</Color>
</BottomBorder>
<LeftBorder>
<Style>None</Style>
</LeftBorder>
<RightBorder>
<Style>None</Style>
</RightBorder>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox19">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Usuario Ing</Value>
<Style>
<FontSize>9pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox19</rd:DefaultName>
<Style>
<Border>
<Color>LightGrey</Color>
<Style>Solid</Style>
</Border>
<TopBorder>
<Color>Black</Color>
</TopBorder>
<BottomBorder>
<Color>Black</Color>
</BottomBorder>
<LeftBorder>
<Style>None</Style>
</LeftBorder>
<RightBorder>
<Style>None</Style>
</RightBorder>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
</TablixCells>
</TablixRow>
<TablixRow>
<Height>0.6cm</Height>
<TablixCells>
<TablixCell>
<CellContents>
<Textbox Name="TipoProceso">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!TipoProceso.Value</Value>
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>TipoProceso</rd:DefaultName>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Descripcion">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!Descripcion.Value</Value>
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Descripcion</rd:DefaultName>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="NoEtapas">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!NoEtapas.Value</Value>
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>NoEtapas</rd:DefaultName>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Estatus1">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!Estatus.Value</Value>
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Estatus1</rd:DefaultName>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="FechaIng">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!FechaIng.Value</Value>
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>FechaIng</rd:DefaultName>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="UsuarioIng">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Fields!UsuarioIng.Value</Value>
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>UsuarioIng</rd:DefaultName>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCell>
</TablixCells>
</TablixRow>
</TablixRows>
</TablixBody>
<TablixColumnHierarchy>
<TablixMembers>
<TablixMember />
<TablixMember />
<TablixMember />
<TablixMember />
<TablixMember />
<TablixMember />
</TablixMembers>
</TablixColumnHierarchy>
<TablixRowHierarchy>
<TablixMembers>
<TablixMember>
<KeepWithGroup>After</KeepWithGroup>
</TablixMember>
<TablixMember>
<Group Name="Details1" />
</TablixMember>
</TablixMembers>
</TablixRowHierarchy>
<DataSetName>DataSet1</DataSetName>
<Top>0.36336cm</Top>
<Left>0.06868cm</Left>
<Height>1.06771cm</Height>
<Width>20cm</Width>
<ZIndex>1</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Tablix>
</ReportItems>
<Height>0.60091in</Height>
<Style />
</Body>
<Width>8.00358in</Width>
<Page>
<PageHeader>
<Height>3.145cm</Height>
<PrintOnFirstPage>true</PrintOnFirstPage>
<PrintOnLastPage>true</PrintOnLastPage>
<ReportItems>
<Image Name="Logo">
<Source>External</Source>
<Value>=Parameters!LogoPath.Value</Value>
<Sizing>Fit</Sizing>
<Top>0.11854cm</Top>
<Left>0.10583cm</Left>
<Height>3cm</Height>
<Width>5.5cm</Width>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
<Textbox Name="Textbox1">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!NombreEmpresa.Value</Value>
<Style>
<FontSize>10.5pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox1</rd:DefaultName>
<Top>0.11854cm</Top>
<Left>5.78222cm</Left>
<Height>1.18208cm</Height>
<Width>8.43036cm</Width>
<ZIndex>1</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox2">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>REPORTE DE CATÁLOGO DE</Value>
<Style>
<FontSize>10.5pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>TIPOS PROCESOS</Value>
<Style>
<FontSize>10.5pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value />
<Style>
<FontSize>10.5pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox2</rd:DefaultName>
<Top>1.67104cm</Top>
<Left>5.78222cm</Left>
<Height>0.95278cm</Height>
<Width>8.43036cm</Width>
<ZIndex>2</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</ReportItems>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</PageHeader>
<PageFooter>
<Height>0.79374cm</Height>
<PrintOnFirstPage>true</PrintOnFirstPage>
<PrintOnLastPage>true</PrintOnLastPage>
<ReportItems>
<Line Name="Line2">
<Top>0.11437cm</Top>
<Left>0.10583cm</Left>
<Height>0cm</Height>
<Width>19.96285cm</Width>
<Style>
<Border>
<Style>Solid</Style>
</Border>
</Style>
</Line>
<Textbox Name="Textbox9">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Usuario:</Value>
<Style>
<FontSize>9pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox8</rd:DefaultName>
<Top>0.22726cm</Top>
<Left>0.10583cm</Left>
<Height>0.36335cm</Height>
<Width>1.60042cm</Width>
<ZIndex>1</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox10">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!UsuarioImprimio.Value</Value>
<Style>
<FontSize>9pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox9</rd:DefaultName>
<Top>0.22726cm</Top>
<Left>1.65016cm</Left>
<Height>0.36335cm</Height>
<Width>5.14936cm</Width>
<ZIndex>2</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox11">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Fecha Impresión:</Value>
<Style>
<FontSize>9pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox10</rd:DefaultName>
<Top>0.22726cm</Top>
<Left>6.97591cm</Left>
<Height>0.36335cm</Height>
<Width>2.92333cm</Width>
<ZIndex>3</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox12">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Now</Value>
<Style>
<FontSize>9pt</FontSize>
<Format>dd/MM/yyy HH:mm:ss tt</Format>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox11</rd:DefaultName>
<Top>0.22726cm</Top>
<Left>9.88513cm</Left>
<Height>0.36335cm</Height>
<Width>4.32745cm</Width>
<ZIndex>4</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox7">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>="Página " &amp; Globals.PageNumber &amp; " de " &amp; Globals.TotalPages</Value>
<Style>
<FontStyle>Italic</FontStyle>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Right</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox3</rd:DefaultName>
<Top>0.22726cm</Top>
<Left>18.00281cm</Left>
<Height>0.36335cm</Height>
<Width>2.06587cm</Width>
<ZIndex>5</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</ReportItems>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</PageFooter>
<PageHeight>27.94cm</PageHeight>
<PageWidth>21.59cm</PageWidth>
<LeftMargin>0.5cm</LeftMargin>
<RightMargin>0.5cm</RightMargin>
<TopMargin>0.5cm</TopMargin>
<BottomMargin>0.5cm</BottomMargin>
<ColumnSpacing>0.13cm</ColumnSpacing>
<Style />
</Page>
<AutoRefresh>0</AutoRefresh>
<DataSources>
<DataSource Name="DataSet3">
<ConnectionProperties>
<DataProvider>System.Data.DataSet</DataProvider>
<ConnectString>/* Local Connection */</ConnectString>
</ConnectionProperties>
<rd:DataSourceID>74f8a171-24f1-4404-809e-ec2e098f1907</rd:DataSourceID>
</DataSource>
</DataSources>
<DataSets>
<DataSet Name="DataSet1">
<Query>
<DataSourceName>DataSet3</DataSourceName>
<CommandText>/* Local Query */</CommandText>
</Query>
<Fields>
<Field Name="TipoProceso">
<DataField>TipoProceso</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="Descripcion">
<DataField>Descripcion</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="NoEtapas">
<DataField>NoEtapas</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="Estatus">
<DataField>Estatus</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="FechaIng">
<DataField>FechaIng</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="UsuarioIng">
<DataField>UsuarioIng</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
</Fields>
<rd:DataSetInfo>
<rd:DataSetName>DataSet3</rd:DataSetName>
<rd:SchemaPath>C:\Users\jesus\Documents\Visual Studio 2015\WebSites\WebSite2\App_Code\DataSet3.xsd</rd:SchemaPath>
<rd:TableName>DataTable1</rd:TableName>
<rd:TableAdapterFillMethod />
<rd:TableAdapterGetDataMethod />
<rd:TableAdapterName />
</rd:DataSetInfo>
</DataSet>
</DataSets>
<ReportParameters>
<ReportParameter Name="LogoPath">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="NombreEmpresa">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="UsuarioImprimio">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="FechaImpresion">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
</ReportParameters>
<rd:ReportUnitType>Cm</rd:ReportUnitType>
<rd:ReportID>2ec96151-d7c1-4609-bfdd-795b02d33b5a</rd:ReportID>
</Report>

File diff suppressed because it is too large Load Diff

View File

@@ -513,9 +513,7 @@
} }
</script> </script>
<script <script src="<%= String.Format("https://maps.googleapis.com/maps/api/js?key={0}&libraries=drawing&libraries=places", Extensiones.GOOGLE_MAPS_API_KEY) %>"</script>
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAF7s8wwhzCVXDUYopc9mXxqaWB33cDro4&libraries=places">
</script>
</asp:Content> </asp:Content>

View File

@@ -99,8 +99,8 @@ Partial Class GPS_CatDistribuidoresMaster
'If CveSucursal < 0 Then HuboError = True 'If CveSucursal < 0 Then HuboError = True
End If End If
If Not HuboError Then If Not HuboError Then
If Not IO.Directory.Exists(String.Format("{0}\{1}", AppDomain.CurrentDomain.BaseDirectory, objEmpresa.CveEmpresa)) Then If Not IO.Directory.Exists(String.Format("{0}\{1}", ModExtensiones.DirectorioBaseEmpresas, objEmpresa.CveEmpresa)) Then
IO.Directory.CreateDirectory(String.Format("{0}Empresas\{1}", AppDomain.CurrentDomain.BaseDirectory, objEmpresa.CveEmpresa)) IO.Directory.CreateDirectory(String.Format("{0}Empresas\{1}", ModExtensiones.DirectorioBaseEmpresas, objEmpresa.CveEmpresa))
End If End If
Alert("El distribuidor se agregó correctamente", TipoMensaje.MsgInformacion) Alert("El distribuidor se agregó correctamente", TipoMensaje.MsgInformacion)
End If End If
@@ -198,7 +198,7 @@ Partial Class GPS_CatDistribuidoresMaster
Dim archivos As New List(Of ClsSisMail.ArchivoMail) Dim archivos As New List(Of ClsSisMail.ArchivoMail)
Dim ListArchivoMail As New List(Of ClsSisMail.ArchivoMail) Dim ListArchivoMail As New List(Of ClsSisMail.ArchivoMail)
Dim ArchivoMail As New ClsSisMail.ArchivoMail Dim ArchivoMail As New ClsSisMail.ArchivoMail
ArchivoMail.Ruta = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\Grales\LogoSinFondo.png" ArchivoMail.Ruta = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\Grales\LogoSinFondo.png"
ArchivoMail.NombreArchivo = "LogoSinFondo.png" ArchivoMail.NombreArchivo = "LogoSinFondo.png"
ListArchivoMail.Add(ArchivoMail) ListArchivoMail.Add(ArchivoMail)
objMail.SendMail(ClsPaginas.EmpresaNotificaciones, TxtMail.Text, "Activación de empresa", body, "", ListArchivoMail) objMail.SendMail(ClsPaginas.EmpresaNotificaciones, TxtMail.Text, "Activación de empresa", body, "", ListArchivoMail)
@@ -246,7 +246,7 @@ Partial Class GPS_CatDistribuidoresMaster
strBody.Append(" <td>Se ha registrado como distribuidor master en SIG GPS</td>") strBody.Append(" <td>Se ha registrado como distribuidor master en SIG GPS</td>")
strBody.Append("<tr><td colspan=""4"" >") strBody.Append("<tr><td colspan=""4"" >")
'strBody.Append(Liga) 'strBody.Append(Liga)
strBody.AppendFormat("<a href='{0}'>Éste es su liga de acceso al sistema </a> <br/> <br/> </td></tr>", String.Format("{0}\Login.aspx", AppDomain.CurrentDomain.BaseDirectory)) strBody.AppendFormat("<a href='{0}'>Éste es su liga de acceso al sistema </a> <br/> <br/> </td></tr>", String.Format("{0}\Login.aspx", ModExtensiones.DirectorioBaseEmpresas))
strBody.Append("<tr> <td> Sus Datos de Acceso son los siguientes: </td> </tr>") strBody.Append("<tr> <td> Sus Datos de Acceso son los siguientes: </td> </tr>")
strBody.Append("<tr> <td> ") strBody.Append("<tr> <td> ")
strBody.Append("<ul>") strBody.Append("<ul>")

View File

@@ -96,8 +96,8 @@ Partial Class GPS_CatDistribuidoresMaster
If CveSucursal < 0 Then HuboError = True If CveSucursal < 0 Then HuboError = True
End If End If
If Not HuboError Then If Not HuboError Then
If Not IO.Directory.Exists(String.Format("{0}\{1}", AppDomain.CurrentDomain.BaseDirectory, objEmpresa.CveEmpresa)) Then If Not IO.Directory.Exists(String.Format("{0}\{1}", ModExtensiones.DirectorioBaseEmpresas, objEmpresa.CveEmpresa)) Then
IO.Directory.CreateDirectory(String.Format("{0}Empresas\{1}", AppDomain.CurrentDomain.BaseDirectory, objEmpresa.CveEmpresa)) IO.Directory.CreateDirectory(String.Format("{0}Empresas\{1}", ModExtensiones.DirectorioBaseEmpresas, objEmpresa.CveEmpresa))
End If End If
Alert("El distribuidor se agregó correctamente", TipoMensaje.MsgInformacion) Alert("El distribuidor se agregó correctamente", TipoMensaje.MsgInformacion)
End If End If
@@ -195,7 +195,7 @@ Partial Class GPS_CatDistribuidoresMaster
Dim archivos As New List(Of ClsSisMail.ArchivoMail) Dim archivos As New List(Of ClsSisMail.ArchivoMail)
Dim ListArchivoMail As New List(Of ClsSisMail.ArchivoMail) Dim ListArchivoMail As New List(Of ClsSisMail.ArchivoMail)
Dim ArchivoMail As New ClsSisMail.ArchivoMail Dim ArchivoMail As New ClsSisMail.ArchivoMail
ArchivoMail.Ruta = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\Grales\LogoSinFondo.png" ArchivoMail.Ruta = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\Grales\LogoSinFondo.png"
ArchivoMail.NombreArchivo = "LogoSinFondo.png" ArchivoMail.NombreArchivo = "LogoSinFondo.png"
ListArchivoMail.Add(ArchivoMail) ListArchivoMail.Add(ArchivoMail)
objMail.SendMail(ClsPaginas.EmpresaNotificaciones, TxtMail.Text, "Activación de empresa", body, "", ListArchivoMail) objMail.SendMail(ClsPaginas.EmpresaNotificaciones, TxtMail.Text, "Activación de empresa", body, "", ListArchivoMail)
@@ -243,7 +243,7 @@ Partial Class GPS_CatDistribuidoresMaster
strBody.Append(" <td>Se ha registrado como distribuidor master en SIG GPS</td>") strBody.Append(" <td>Se ha registrado como distribuidor master en SIG GPS</td>")
strBody.Append("<tr><td colspan=""4"" >") strBody.Append("<tr><td colspan=""4"" >")
'strBody.Append(Liga) 'strBody.Append(Liga)
strBody.AppendFormat("<a href='{0}'>Éste es su liga de acceso al sistema </a> <br/> <br/> </td></tr>", String.Format("{0}\Login.aspx", AppDomain.CurrentDomain.BaseDirectory)) strBody.AppendFormat("<a href='{0}'>Éste es su liga de acceso al sistema </a> <br/> <br/> </td></tr>", String.Format("{0}\Login.aspx", ModExtensiones.DirectorioBaseEmpresas))
strBody.Append("<tr> <td> Sus Datos de Acceso son los siguientes: </td> </tr>") strBody.Append("<tr> <td> Sus Datos de Acceso son los siguientes: </td> </tr>")
strBody.Append("<tr> <td> ") strBody.Append("<tr> <td> ")
strBody.Append("<ul>") strBody.Append("<ul>")

View File

@@ -109,7 +109,7 @@ Partial Class GPS_CatEventos
Try Try
If TxtUpImagen.getfiles().Archivos.Count > 0 Then If TxtUpImagen.getfiles().Archivos.Count > 0 Then
Dim ArchivoImagen As Archivo = TxtUpImagen.getfiles().Archivos(0) Dim ArchivoImagen As Archivo = TxtUpImagen.getfiles().Archivos(0)
Dim Path As String = $"{AppDomain.CurrentDomain.BaseDirectory}Imagenes" Dim Path As String = $"{ModExtensiones.DirectorioBaseEmpresas}Imagenes"
If Not Directory.Exists(Path) Then If Not Directory.Exists(Path) Then
Directory.CreateDirectory(Path) Directory.CreateDirectory(Path)
End If End If
@@ -122,7 +122,7 @@ Partial Class GPS_CatEventos
If TxtUpSonido.getfiles().Archivos.Count > 0 Then If TxtUpSonido.getfiles().Archivos.Count > 0 Then
Dim ArchivoSonido As Archivo = TxtUpSonido.getfiles().Archivos(0) Dim ArchivoSonido As Archivo = TxtUpSonido.getfiles().Archivos(0)
Dim PathSonido As String = $"{AppDomain.CurrentDomain.BaseDirectory}Sonidos" Dim PathSonido As String = $"{ModExtensiones.DirectorioBaseEmpresas}Sonidos"
Dim dirSonido As String = String.Format("{0}\{1}.{2}", PathSonido, Sonido, ArchivoSonido.Extencion) Dim dirSonido As String = String.Format("{0}\{1}.{2}", PathSonido, Sonido, ArchivoSonido.Extencion)
If File.Exists(dirSonido) Then If File.Exists(dirSonido) Then
My.Computer.FileSystem.DeleteFile(dirSonido) My.Computer.FileSystem.DeleteFile(dirSonido)
@@ -146,7 +146,7 @@ Partial Class GPS_CatEventos
Try Try
If TxtUpImagen.getfiles().Archivos.Count > 0 Then If TxtUpImagen.getfiles().Archivos.Count > 0 Then
Dim ArchivoImagen As Archivo = TxtUpImagen.getfiles().Archivos(0) Dim ArchivoImagen As Archivo = TxtUpImagen.getfiles().Archivos(0)
Dim Path As String = $"{AppDomain.CurrentDomain.BaseDirectory}Imagenes" Dim Path As String = $"{ModExtensiones.DirectorioBaseEmpresas}Imagenes"
If Not Directory.Exists(Path) Then If Not Directory.Exists(Path) Then
Directory.CreateDirectory(Path) Directory.CreateDirectory(Path)
End If End If
@@ -159,7 +159,7 @@ Partial Class GPS_CatEventos
If TxtUpSonido.getfiles().Archivos.Count > 0 Then If TxtUpSonido.getfiles().Archivos.Count > 0 Then
Dim ArchivoSonido As Archivo = TxtUpSonido.getfiles().Archivos(0) Dim ArchivoSonido As Archivo = TxtUpSonido.getfiles().Archivos(0)
Dim PathSonido As String = $"{AppDomain.CurrentDomain.BaseDirectory}Sonidos" Dim PathSonido As String = $"{ModExtensiones.DirectorioBaseEmpresas}Sonidos"
Dim dirSonido As String = String.Format("{0}\{1}", PathSonido) Dim dirSonido As String = String.Format("{0}\{1}", PathSonido)
If File.Exists(dirSonido) Then If File.Exists(dirSonido) Then
My.Computer.FileSystem.DeleteFile(dirSonido) My.Computer.FileSystem.DeleteFile(dirSonido)
@@ -214,7 +214,7 @@ Partial Class GPS_CatEventos
If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.VerticalAlign = VerticalAlign.Middle e.Row.VerticalAlign = VerticalAlign.Middle
e.Row.FCLinkButton("ImgE").CommandArgument = e.Row.DataKey("CveEvento").ToString e.Row.FCLinkButton("ImgE").CommandArgument = e.Row.DataKey("CveEvento").ToString
If File.Exists($"{AppDomain.CurrentDomain.BaseDirectory}Sonidos/{e.Row.DataKey("Sonido").ToString}") Then If File.Exists($"{ModExtensiones.DirectorioBaseEmpresas}Sonidos/{e.Row.DataKey("Sonido").ToString}") Then
e.Row.FCLinkButton("PlaySonido").OnClientClick = $"javascript:PlaySonidito('{e.Row.DataKey("Sonido").ToString}');return false;" e.Row.FCLinkButton("PlaySonido").OnClientClick = $"javascript:PlaySonidito('{e.Row.DataKey("Sonido").ToString}');return false;"
Else Else
e.Row.FCLinkButton("PlaySonido").Visible = False e.Row.FCLinkButton("PlaySonido").Visible = False

View File

@@ -266,8 +266,6 @@
</script> </script>
<script <script src="<%= String.Format("https://maps.googleapis.com/maps/api/js?key={0}&libraries=places", Extensiones.GOOGLE_MAPS_API_KEY) %>"</script>
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAF7s8wwhzCVXDUYopc9mXxqaWB33cDro4&libraries=places">
</script>
</asp:Content> </asp:Content>

View File

@@ -155,7 +155,7 @@ Partial Class GPS_DispositivosControles
If TxtCalibración.getfiles().Archivos.Count > 0 AndAlso CveControl > 0 AndAlso Not huboerror Then If TxtCalibración.getfiles().Archivos.Count > 0 AndAlso CveControl > 0 AndAlso Not huboerror Then
Try Try
Dim Archivo As Archivo = TxtCalibración.getfiles().Archivos(0) Dim Archivo As Archivo = TxtCalibración.getfiles().Archivos(0)
Dim Path As String = $"{AppDomain.CurrentDomain.BaseDirectory}TablasCalibracion" Dim Path As String = $"{ModExtensiones.DirectorioBaseEmpresas}TablasCalibracion"
Dim dirSonido As String = String.Format("{0}\{1}.{2}", Path, FormatearNombreArchivo(Archivo.filenameO), Archivo.Extencion) Dim dirSonido As String = String.Format("{0}\{1}.{2}", Path, FormatearNombreArchivo(Archivo.filenameO), Archivo.Extencion)
If File.Exists(dirSonido) Then If File.Exists(dirSonido) Then
My.Computer.FileSystem.DeleteFile(dirSonido) My.Computer.FileSystem.DeleteFile(dirSonido)
@@ -226,7 +226,7 @@ Partial Class GPS_DispositivosControles
huboerror = Not GPS.CalibracionDelete(CveControl) huboerror = Not GPS.CalibracionDelete(CveControl)
If Not huboerror Then If Not huboerror Then
Dim Archivo As Archivo = TxtCalibración.getfiles().Archivos(0) Dim Archivo As Archivo = TxtCalibración.getfiles().Archivos(0)
Dim Path As String = $"{AppDomain.CurrentDomain.BaseDirectory}TablasCalibracion" Dim Path As String = $"{ModExtensiones.DirectorioBaseEmpresas}TablasCalibracion"
Dim dirSonido As String = String.Format("{0}\{1}.{2}", Path, FormatearNombreArchivo(Archivo.filenameO), Archivo.Extencion) Dim dirSonido As String = String.Format("{0}\{1}.{2}", Path, FormatearNombreArchivo(Archivo.filenameO), Archivo.Extencion)
If File.Exists(dirSonido) Then If File.Exists(dirSonido) Then
My.Computer.FileSystem.DeleteFile(dirSonido) My.Computer.FileSystem.DeleteFile(dirSonido)
@@ -448,7 +448,7 @@ Partial Class GPS_DispositivosControles
End Sub End Sub
Protected Sub LbDescargaFormato_Click(sender As Object, e As EventArgs) Protected Sub LbDescargaFormato_Click(sender As Object, e As EventArgs)
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\FormatoCalibracion.xlsx" Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\FormatoCalibracion.xlsx"
Dim Archivo As New IO.FileInfo(Directorio) Dim Archivo As New IO.FileInfo(Directorio)
If Archivo.Exists Then If Archivo.Exists Then
Response.Clear() Response.Clear()

View File

@@ -632,11 +632,6 @@
} }
</script> </script>
<script <script src="<%= String.Format("https://maps.googleapis.com/maps/api/js?key={0}&libraries=places", Extensiones.GOOGLE_MAPS_API_KEY) %>"</script>
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAF7s8wwhzCVXDUYopc9mXxqaWB33cDro4&libraries=places">
</script>
<%--<script
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAJnZ1CoEUX425C20aqzFw4dYxFL_LfThk&libraries=places">
</script>--%>
</asp:Content> </asp:Content>

View File

@@ -769,12 +769,7 @@
} }
</script> </script>
<script <script src="<%= String.Format("https://maps.googleapis.com/maps/api/js?key={0}&libraries=drawing&libraries=geometry&libraries=places", Extensiones.GOOGLE_MAPS_API_KEY) %>"</script>
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAF7s8wwhzCVXDUYopc9mXxqaWB33cDro4&libraries=drawing&libraries=geometry&libraries=places">
</script>
<%-- <script
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAJnZ1CoEUX425C20aqzFw4dYxFL_LfThk&libraries=drawing&libraries=geometry&libraries=places">
</script>--%>
<script src="../Metronic/assets/global/plugins/jquery-minicolors/jquery.minicolors.min.js"></script> <script src="../Metronic/assets/global/plugins/jquery-minicolors/jquery.minicolors.min.js"></script>
<script src="../Metronic/assets/global/plugins/jquery-minicolors/components-color-pickers.min.js"></script> <script src="../Metronic/assets/global/plugins/jquery-minicolors/components-color-pickers.min.js"></script>
</asp:Content> </asp:Content>

View File

@@ -158,6 +158,7 @@ Partial Class GPS_GeoReferencias
If TieneError Then If TieneError Then
ObjGPS.RollBack() ObjGPS.RollBack()
Alert("Ocurrió un error al agregar la georeferencia", TipoMensaje.MsgError)
Else Else
ObjGPS.Commit() ObjGPS.Commit()
Alert("Se agregó correctamente la Ruta", TipoMensaje.MsgInformacion) Alert("Se agregó correctamente la Ruta", TipoMensaje.MsgInformacion)

View File

@@ -754,11 +754,7 @@
} }
</script> </script>
<script <script src="<%= String.Format("https://maps.googleapis.com/maps/api/js?key={0}&libraries=places&callback=initMap", Extensiones.GOOGLE_MAPS_API_KEY) %>"</script>
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAF7s8wwhzCVXDUYopc9mXxqaWB33cDro4&libraries=places&callback=initMap">
</script>
<%-- <script
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAJnZ1CoEUX425C20aqzFw4dYxFL_LfThk&libraries=places&callback=initMap">
</script>--%>
</asp:Content> </asp:Content>

View File

@@ -3130,9 +3130,7 @@
} }
</script> </script>
<script <script src="<%= String.Format("https://maps.googleapis.com/maps/api/js?key={0}&libraries=drawing&libraries=places", Extensiones.GOOGLE_MAPS_API_KEY) %>"</script>
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAF7s8wwhzCVXDUYopc9mXxqaWB33cDro4&libraries=places">
</script>
<script src="../Metronic/assets/global/plugins/jquery-minicolors/jquery.minicolors.min.js"></script> <script src="../Metronic/assets/global/plugins/jquery-minicolors/jquery.minicolors.min.js"></script>
<script src="../Metronic/assets/global/plugins/jquery-minicolors/components-color-pickers.min.js"></script> <script src="../Metronic/assets/global/plugins/jquery-minicolors/components-color-pickers.min.js"></script>
<script src="Rastreo/JS/GeoRutas.js"></script> <script src="Rastreo/JS/GeoRutas.js"></script>

View File

@@ -1495,7 +1495,7 @@ Partial Class GPS_Rastreo
End If End If
'RegistraScript("CreaRuta();") 'RegistraScript("CreaRuta();")
ElseIf HdnTipo.Value = "Geocerca" Then ElseIf HdnTipo.Value = "Geocerca" Then
GeoRefString = $"POLYGON(({GeoCerca.Value}))" GeoRefString = $"POLYGON(({GeoCerca.Value} {CommandArg.Value}))"
If ObjGPS.GeoReferenciaAdd(TxtNombre.Text, -1, GeoRefString, "Geocerca", True, TxtFechaIG.Text.ToDate, TxtFechaFG.Text.ToDate, chkLunes.Checked, chkMartes.Checked, chkMiercoles.Checked, chkJueves.Checked, chkViernes.Checked, chkSabado.Checked, chkDomingo.Checked, MinFecha, MaxFecha, TxtColor.Text, TxtTolerancia.Text.ToEntero, UsuarioActual.CveCliente) Then If ObjGPS.GeoReferenciaAdd(TxtNombre.Text, -1, GeoRefString, "Geocerca", True, TxtFechaIG.Text.ToDate, TxtFechaFG.Text.ToDate, chkLunes.Checked, chkMartes.Checked, chkMiercoles.Checked, chkJueves.Checked, chkViernes.Checked, chkSabado.Checked, chkDomingo.Checked, MinFecha, MaxFecha, TxtColor.Text, TxtTolerancia.Text.ToEntero, UsuarioActual.CveCliente) Then
For Each Dr As GridViewRow In GvEquiposDetalle.Rows For Each Dr As GridViewRow In GvEquiposDetalle.Rows
If Dr.RowType = DataControlRowType.DataRow Then If Dr.RowType = DataControlRowType.DataRow Then

View File

@@ -234,7 +234,7 @@
<asp:Content ID="Content4" ContentPlaceHolderID="H" runat="Server"> <asp:Content ID="Content4" ContentPlaceHolderID="H" runat="Server">
</asp:Content> </asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="JS" runat="Server"> <asp:Content ID="Content5" ContentPlaceHolderID="JS" runat="Server">
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAF7s8wwhzCVXDUYopc9mXxqaWB33cDro4&libraries=places"></script> <script src="<%= String.Format("https://maps.googleapis.com/maps/api/js?key={0}&libraries=places", Extensiones.GOOGLE_MAPS_API_KEY) %>"</script>
<script src="../Metronic/assets/global/plugins/datatables2/datatables.min.js"></script> <script src="../Metronic/assets/global/plugins/datatables2/datatables.min.js"></script>
<script src="../Metronic/assets/global/plugins/datatables2/extensions/Scroller/js/dataTables.scroller.js"></script> <script src="../Metronic/assets/global/plugins/datatables2/extensions/Scroller/js/dataTables.scroller.js"></script>
<script src="../Metronic/assets/global/plugins/datatables2/extensions/KeyTable/js/dataTables.keyTable.js"></script> <script src="../Metronic/assets/global/plugins/datatables2/extensions/KeyTable/js/dataTables.keyTable.js"></script>

View File

@@ -623,11 +623,6 @@
</script> </script>
<script <script src="<%= String.Format("https://maps.googleapis.com/maps/api/js?key={0}&libraries=places", Extensiones.GOOGLE_MAPS_API_KEY) %>"</script>
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAF7s8wwhzCVXDUYopc9mXxqaWB33cDro4&libraries=places">
</script>
<%--<script
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAJnZ1CoEUX425C20aqzFw4dYxFL_LfThk&libraries=places">
</script>--%>
</asp:Content> </asp:Content>

View File

@@ -356,11 +356,6 @@
} }
</script> </script>
<script <script src="<%= String.Format("https://maps.googleapis.com/maps/api/js?key={0}&libraries=places&callback=initMap", Extensiones.GOOGLE_MAPS_API_KEY) %>"</script>
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAF7s8wwhzCVXDUYopc9mXxqaWB33cDro4&libraries=places&callback=initMap">
</script>
<%-- <script
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAJnZ1CoEUX425C20aqzFw4dYxFL_LfThk&libraries=places&callback=initMap">
</script>--%>
</asp:Content> </asp:Content>

Some files were not shown because too many files have changed in this diff Show More