Merge lp:~vauxoo/openerp-mexico-localization/7.0_l10n_mx_add_sheme_xsd_dev_carlos into lp:openerp-mexico-localization/7.0

Proposed by Juan Carlos Hernandez
Status: Merged
Merged at revision: 299
Proposed branch: lp:~vauxoo/openerp-mexico-localization/7.0_l10n_mx_add_sheme_xsd_dev_carlos
Merge into: lp:openerp-mexico-localization/7.0
Diff against target: 10958 lines
To merge this branch: bzr merge lp:~vauxoo/openerp-mexico-localization/7.0_l10n_mx_add_sheme_xsd_dev_carlos
Reviewer Review Type Date Requested Status
OpenERP Mexico Maintainer Pending
Review via email: mp+186693@code.launchpad.net

Description of the change

se agrego sheme para parsear el xml antes de confirmar.
se corrigio la funcion signal_cancel ya que no estaba cancelando con cbb ni con cfd
se agrego archivo cfdv32.xsd

To post a comment you must log in.
297. By Moisés López - http://www.vauxoo.com

[FIX] [l10n_mx_partner_address] Fix NameError: global name 'openerp' is not defined

298. By Moisés López - http://www.vauxoo.com

[REF][l10n_mx_invoice_datetime] Comment order invoice

299. By Isaac López Zúñiga

[MERGE] adds xml's validation using xsd files

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'l10n_mx_facturae/SAT/cfdv2.0.xsd'
2=== added file 'l10n_mx_facturae/SAT/cfdv2.2.xsd'
3--- l10n_mx_facturae/SAT/cfdv2.2.xsd 1970-01-01 00:00:00 +0000
4+++ l10n_mx_facturae/SAT/cfdv2.2.xsd 2013-09-25 00:33:17 +0000
5@@ -0,0 +1,919 @@
6+<?xml version="1.0" encoding="UTF-8"?>
7+<xs:schema xmlns="http://www.sat.gob.mx/cfd/2" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.sat.gob.mx/cfd/2" elementFormDefault="qualified" attributeFormDefault="unqualified">
8+ <xs:element name="Comprobante">
9+ <xs:annotation>
10+ <xs:documentation>Estándar para la expresión de comprobantes fiscales digitales.</xs:documentation>
11+ </xs:annotation>
12+ <xs:complexType>
13+ <xs:sequence>
14+ <xs:element name="Emisor">
15+ <xs:annotation>
16+ <xs:documentation>Nodo requerido para expresar la información del contribuyente emisor del comprobante.</xs:documentation>
17+ </xs:annotation>
18+ <xs:complexType>
19+ <xs:sequence>
20+ <xs:element name="DomicilioFiscal" type="t_UbicacionFiscal" minOccurs="0">
21+ <xs:annotation>
22+ <xs:documentation>Nodo opcional para precisar la información de ubicación del domicilio fiscal del contribuyente emisor</xs:documentation>
23+ </xs:annotation>
24+ </xs:element>
25+ <xs:element name="ExpedidoEn" type="t_Ubicacion" minOccurs="0">
26+ <xs:annotation>
27+ <xs:documentation>Nodo opcional para precisar la información de ubicación del domicilio en donde es emitido el comprobante fiscal en caso de que sea distinto del domicilio fiscal del contribuyente emisor.</xs:documentation>
28+ </xs:annotation>
29+ </xs:element>
30+ <xs:sequence>
31+ <xs:element name="RegimenFiscal" maxOccurs="unbounded">
32+ <xs:annotation>
33+ <xs:documentation>Nodo requerido para incorporar los regímenes en los que tributa el contribuyente emisor. Puede contener más de un régimen.</xs:documentation>
34+ </xs:annotation>
35+ <xs:complexType>
36+ <xs:attribute name="Regimen" use="required">
37+ <xs:annotation>
38+ <xs:documentation>Atributo requerido para incorporar el nombre del régimen en el que tributa el contribuyente emisor.</xs:documentation>
39+ </xs:annotation>
40+ <xs:simpleType>
41+ <xs:restriction base="xs:string">
42+ <xs:minLength value="1"/>
43+ <xs:whiteSpace value="collapse"/>
44+ </xs:restriction>
45+ </xs:simpleType>
46+ </xs:attribute>
47+ </xs:complexType>
48+ </xs:element>
49+ </xs:sequence>
50+ </xs:sequence>
51+ <xs:attribute name="rfc" type="t_RFC" use="required">
52+ <xs:annotation>
53+ <xs:documentation>Atributo requerido para la Clave del Registro Federal de Contribuyentes correspondiente al contribuyente emisor del comprobante sin guiones o espacios.</xs:documentation>
54+ </xs:annotation>
55+ </xs:attribute>
56+ <xs:attribute name="nombre">
57+ <xs:annotation>
58+ <xs:documentation>Atributo opcional para el nombre, denominación o razón social del contribuyente emisor del comprobante.</xs:documentation>
59+ </xs:annotation>
60+ <xs:simpleType>
61+ <xs:restriction base="xs:string">
62+ <xs:minLength value="1"/>
63+ <xs:whiteSpace value="collapse"/>
64+ </xs:restriction>
65+ </xs:simpleType>
66+ </xs:attribute>
67+ </xs:complexType>
68+ </xs:element>
69+ <xs:element name="Receptor">
70+ <xs:annotation>
71+ <xs:documentation>Nodo requerido para precisar la información del contribuyente receptor del comprobante.</xs:documentation>
72+ </xs:annotation>
73+ <xs:complexType>
74+ <xs:sequence>
75+ <xs:element name="Domicilio" type="t_Ubicacion" minOccurs="0">
76+ <xs:annotation>
77+ <xs:documentation>Nodo para la definición de la ubicación donde se da el domicilio del receptor del comprobante fiscal.</xs:documentation>
78+ </xs:annotation>
79+ </xs:element>
80+ </xs:sequence>
81+ <xs:attribute name="rfc" type="t_RFC" use="required">
82+ <xs:annotation>
83+ <xs:documentation>Atributo requerido para precisar la Clave del Registro Federal de Contribuyentes correspondiente al contribuyente receptor del comprobante.</xs:documentation>
84+ </xs:annotation>
85+ </xs:attribute>
86+ <xs:attribute name="nombre" use="optional">
87+ <xs:annotation>
88+ <xs:documentation>Atributo opcional para el nombre, denominación o razón social del contribuyente receptor del comprobante.</xs:documentation>
89+ </xs:annotation>
90+ <xs:simpleType>
91+ <xs:restriction base="xs:string">
92+ <xs:minLength value="1"/>
93+ <xs:whiteSpace value="collapse"/>
94+ </xs:restriction>
95+ </xs:simpleType>
96+ </xs:attribute>
97+ </xs:complexType>
98+ </xs:element>
99+ <xs:element name="Conceptos">
100+ <xs:annotation>
101+ <xs:documentation>Nodo requerido para enlistar los conceptos cubiertos por el comprobante.</xs:documentation>
102+ </xs:annotation>
103+ <xs:complexType>
104+ <xs:sequence>
105+ <xs:element name="Concepto" maxOccurs="unbounded">
106+ <xs:annotation>
107+ <xs:documentation>Nodo para introducir la información detallada de un bien o servicio amparado en el comprobante.</xs:documentation>
108+ </xs:annotation>
109+ <xs:complexType>
110+ <xs:choice minOccurs="0">
111+ <xs:element name="InformacionAduanera" type="t_InformacionAduanera" minOccurs="0" maxOccurs="unbounded">
112+ <xs:annotation>
113+ <xs:documentation>Nodo opcional para introducir la información aduanera aplicable cuando se trate de ventas de primera mano de mercancías importadas.</xs:documentation>
114+ </xs:annotation>
115+ </xs:element>
116+ <xs:element name="CuentaPredial" minOccurs="0">
117+ <xs:annotation>
118+ <xs:documentation>Nodo opcional para asentar el número de cuenta predial con el que fue registrado el inmueble, en el sistema catastral de la entidad federativa de que trate. o bien para incorporar los datos de identificación del certificado de participación inmobiliaria no amortizable.</xs:documentation>
119+ </xs:annotation>
120+ <xs:complexType>
121+ <xs:attribute name="numero" use="required">
122+ <xs:annotation>
123+ <xs:documentation>Atributo requerido para precisar el número de la cuenta predial del inmueble cubierto por el presente concepto, o bien para incorporar los datos de identificación del certificado de participación inmobiliaria no amortizable, tratándose de arrendamiento.</xs:documentation>
124+ </xs:annotation>
125+ <xs:simpleType>
126+ <xs:restriction base="xs:string">
127+ <xs:whiteSpace value="collapse"/>
128+ <xs:minLength value="1"/>
129+ </xs:restriction>
130+ </xs:simpleType>
131+ </xs:attribute>
132+ </xs:complexType>
133+ </xs:element>
134+ <xs:element name="ComplementoConcepto" minOccurs="0">
135+ <xs:annotation>
136+ <xs:documentation>Nodo opcional donde se incluirán los nodos complementarios de extensión al concepto, definidos por el SAT, de acuerdo a disposiciones particulares a un sector o actividad especifica.</xs:documentation>
137+ </xs:annotation>
138+ <xs:complexType>
139+ <xs:sequence>
140+ <xs:any minOccurs="0" maxOccurs="unbounded"/>
141+ </xs:sequence>
142+ </xs:complexType>
143+ </xs:element>
144+ <xs:element name="Parte" minOccurs="0" maxOccurs="unbounded">
145+ <xs:annotation>
146+ <xs:documentation>Nodo opcional para expresar las partes o componentes que integran la totalidad del concepto expresado en el comprobante fiscal digital</xs:documentation>
147+ </xs:annotation>
148+ <xs:complexType>
149+ <xs:sequence>
150+ <xs:element name="InformacionAduanera" type="t_InformacionAduanera" minOccurs="0" maxOccurs="unbounded">
151+ <xs:annotation>
152+ <xs:documentation>Nodo opcional para introducir la información aduanera aplicable cuando se trate de partes o componentes importados vendidos de primera mano.</xs:documentation>
153+ </xs:annotation>
154+ </xs:element>
155+ </xs:sequence>
156+ <xs:attribute name="cantidad" use="required">
157+ <xs:annotation>
158+ <xs:documentation>Atributo requerido para precisar la cantidad de bienes o servicios del tipo particular definido por la presente parte.</xs:documentation>
159+ </xs:annotation>
160+ <xs:simpleType>
161+ <xs:restriction base="xs:decimal">
162+ <xs:whiteSpace value="collapse"/>
163+ </xs:restriction>
164+ </xs:simpleType>
165+ </xs:attribute>
166+ <xs:attribute name="unidad" use="optional">
167+ <xs:annotation>
168+ <xs:documentation>Atributo opcional para precisar la unidad de medida aplicable para la cantidad expresada en la parte.</xs:documentation>
169+ </xs:annotation>
170+ <xs:simpleType>
171+ <xs:restriction base="xs:string">
172+ <xs:whiteSpace value="collapse"/>
173+ <xs:minLength value="1"/>
174+ </xs:restriction>
175+ </xs:simpleType>
176+ </xs:attribute>
177+ <xs:attribute name="noIdentificacion" use="optional">
178+ <xs:annotation>
179+ <xs:documentation>Atributo opcional para expresar el número de serie del bien o identificador del servicio amparado por la presente parte.</xs:documentation>
180+ </xs:annotation>
181+ <xs:simpleType>
182+ <xs:restriction base="xs:string">
183+ <xs:minLength value="1"/>
184+ <xs:whiteSpace value="collapse"/>
185+ </xs:restriction>
186+ </xs:simpleType>
187+ </xs:attribute>
188+ <xs:attribute name="descripcion" use="required">
189+ <xs:annotation>
190+ <xs:documentation>Atributo requerido para precisar la descripción del bien o servicio cubierto por la presente parte.</xs:documentation>
191+ </xs:annotation>
192+ <xs:simpleType>
193+ <xs:restriction base="xs:string">
194+ <xs:minLength value="1"/>
195+ <xs:whiteSpace value="collapse"/>
196+ </xs:restriction>
197+ </xs:simpleType>
198+ </xs:attribute>
199+ <xs:attribute name="valorUnitario" type="t_Importe" use="optional">
200+ <xs:annotation>
201+ <xs:documentation>Atributo opcional para precisar el valor o precio unitario del bien o servicio cubierto por la presente parte.</xs:documentation>
202+ </xs:annotation>
203+ </xs:attribute>
204+ <xs:attribute name="importe" type="t_Importe" use="optional">
205+ <xs:annotation>
206+ <xs:documentation>Atributo opcional para precisar el importe total de los bienes o servicios de la presente parte. Debe ser equivalente al resultado de multiplicar la cantidad por el valor unitario expresado en la parte.</xs:documentation>
207+ </xs:annotation>
208+ </xs:attribute>
209+ </xs:complexType>
210+ </xs:element>
211+ </xs:choice>
212+ <xs:attribute name="cantidad" use="required">
213+ <xs:annotation>
214+ <xs:documentation>Atributo requerido para precisar la cantidad de bienes o servicios del tipo particular definido por el presente concepto.</xs:documentation>
215+ </xs:annotation>
216+ <xs:simpleType>
217+ <xs:restriction base="xs:decimal">
218+ <xs:whiteSpace value="collapse"/>
219+ </xs:restriction>
220+ </xs:simpleType>
221+ </xs:attribute>
222+ <xs:attribute name="unidad" use="required">
223+ <xs:annotation>
224+ <xs:documentation>Atributo requerido para precisar la unidad de medida aplicable para la cantidad expresada en el concepto.</xs:documentation>
225+ </xs:annotation>
226+ <xs:simpleType>
227+ <xs:restriction base="xs:string">
228+ <xs:whiteSpace value="collapse"/>
229+ <xs:minLength value="1"/>
230+ </xs:restriction>
231+ </xs:simpleType>
232+ </xs:attribute>
233+ <xs:attribute name="noIdentificacion" use="optional">
234+ <xs:annotation>
235+ <xs:documentation>Atributo opcional para expresar el número de serie del bien o identificador del servicio amparado por el presente concepto.</xs:documentation>
236+ </xs:annotation>
237+ <xs:simpleType>
238+ <xs:restriction base="xs:string">
239+ <xs:minLength value="1"/>
240+ <xs:whiteSpace value="collapse"/>
241+ </xs:restriction>
242+ </xs:simpleType>
243+ </xs:attribute>
244+ <xs:attribute name="descripcion" use="required">
245+ <xs:annotation>
246+ <xs:documentation>Atributo requerido para precisar la descripción del bien o servicio cubierto por el presente concepto.</xs:documentation>
247+ </xs:annotation>
248+ <xs:simpleType>
249+ <xs:restriction base="xs:string">
250+ <xs:minLength value="1"/>
251+ <xs:whiteSpace value="collapse"/>
252+ </xs:restriction>
253+ </xs:simpleType>
254+ </xs:attribute>
255+ <xs:attribute name="valorUnitario" type="t_Importe" use="required">
256+ <xs:annotation>
257+ <xs:documentation>Atributo requerido para precisar el valor o precio unitario del bien o servicio cubierto por el presente concepto.</xs:documentation>
258+ </xs:annotation>
259+ </xs:attribute>
260+ <xs:attribute name="importe" type="t_Importe" use="required">
261+ <xs:annotation>
262+ <xs:documentation>Atributo requerido para precisar el importe total de los bienes o servicios del presente concepto. Debe ser equivalente al resultado de multiplicar la cantidad por el valor unitario expresado en el concepto.</xs:documentation>
263+ </xs:annotation>
264+ </xs:attribute>
265+ </xs:complexType>
266+ </xs:element>
267+ </xs:sequence>
268+ </xs:complexType>
269+ </xs:element>
270+ <xs:element name="Impuestos">
271+ <xs:annotation>
272+ <xs:documentation>Nodo requerido para capturar los impuestos aplicables.</xs:documentation>
273+ </xs:annotation>
274+ <xs:complexType>
275+ <xs:sequence>
276+ <xs:element name="Retenciones" minOccurs="0">
277+ <xs:annotation>
278+ <xs:documentation>Nodo opcional para capturar los impuestos retenidos aplicables</xs:documentation>
279+ </xs:annotation>
280+ <xs:complexType>
281+ <xs:sequence>
282+ <xs:element name="Retencion" maxOccurs="unbounded">
283+ <xs:annotation>
284+ <xs:documentation>Nodo para la información detallada de una retención de impuesto específico</xs:documentation>
285+ </xs:annotation>
286+ <xs:complexType>
287+ <xs:attribute name="impuesto" use="required">
288+ <xs:annotation>
289+ <xs:documentation>Atributo requerido para señalar el tipo de impuesto retenido</xs:documentation>
290+ </xs:annotation>
291+ <xs:simpleType>
292+ <xs:restriction base="xs:string">
293+ <xs:whiteSpace value="collapse"/>
294+ <xs:enumeration value="ISR">
295+ <xs:annotation>
296+ <xs:documentation>Impuesto sobre la renta</xs:documentation>
297+ </xs:annotation>
298+ </xs:enumeration>
299+ <xs:enumeration value="IVA">
300+ <xs:annotation>
301+ <xs:documentation>Impuesto al Valor Agregado</xs:documentation>
302+ </xs:annotation>
303+ </xs:enumeration>
304+ </xs:restriction>
305+ </xs:simpleType>
306+ </xs:attribute>
307+ <xs:attribute name="importe" type="t_Importe" use="required">
308+ <xs:annotation>
309+ <xs:documentation>Atributo requerido para señalar el importe o monto del impuesto retenido</xs:documentation>
310+ </xs:annotation>
311+ </xs:attribute>
312+ </xs:complexType>
313+ </xs:element>
314+ </xs:sequence>
315+ </xs:complexType>
316+ </xs:element>
317+ <xs:element name="Traslados" minOccurs="0">
318+ <xs:annotation>
319+ <xs:documentation>Nodo opcional para asentar o referir los impuestos trasladados aplicables</xs:documentation>
320+ </xs:annotation>
321+ <xs:complexType>
322+ <xs:sequence>
323+ <xs:element name="Traslado" maxOccurs="unbounded">
324+ <xs:annotation>
325+ <xs:documentation>Nodo para la información detallada de un traslado de impuesto específico</xs:documentation>
326+ </xs:annotation>
327+ <xs:complexType>
328+ <xs:attribute name="impuesto" use="required">
329+ <xs:annotation>
330+ <xs:documentation>Atributo requerido para señalar el tipo de impuesto trasladado</xs:documentation>
331+ </xs:annotation>
332+ <xs:simpleType>
333+ <xs:restriction base="xs:string">
334+ <xs:whiteSpace value="collapse"/>
335+ <xs:enumeration value="IVA">
336+ <xs:annotation>
337+ <xs:documentation>Impuesto al Valor Agregado</xs:documentation>
338+ </xs:annotation>
339+ </xs:enumeration>
340+ <xs:enumeration value="IEPS">
341+ <xs:annotation>
342+ <xs:documentation>Impuesto especial sobre productos y servicios</xs:documentation>
343+ </xs:annotation>
344+ </xs:enumeration>
345+ </xs:restriction>
346+ </xs:simpleType>
347+ </xs:attribute>
348+ <xs:attribute name="tasa" type="t_Importe" use="required">
349+ <xs:annotation>
350+ <xs:documentation>Atributo requerido para señalar la tasa del impuesto que se traslada por cada concepto amparado en el comprobante</xs:documentation>
351+ </xs:annotation>
352+ </xs:attribute>
353+ <xs:attribute name="importe" type="t_Importe" use="required">
354+ <xs:annotation>
355+ <xs:documentation>Atributo requerido para señalar el importe del impuesto trasladado</xs:documentation>
356+ </xs:annotation>
357+ </xs:attribute>
358+ </xs:complexType>
359+ </xs:element>
360+ </xs:sequence>
361+ </xs:complexType>
362+ </xs:element>
363+ </xs:sequence>
364+ <xs:attribute name="totalImpuestosRetenidos" type="t_Importe" use="optional">
365+ <xs:annotation>
366+ <xs:documentation>Atributo opcional para expresar el total de los impuestos retenidos que se desprenden de los conceptos expresados en el comprobante fiscal digital.</xs:documentation>
367+ </xs:annotation>
368+ </xs:attribute>
369+ <xs:attribute name="totalImpuestosTrasladados" type="t_Importe" use="optional">
370+ <xs:annotation>
371+ <xs:documentation>Atributo opcional para expresar el total de los impuestos trasladados que se desprenden de los conceptos expresados en el comprobante fiscal digital.</xs:documentation>
372+ </xs:annotation>
373+ </xs:attribute>
374+ </xs:complexType>
375+ </xs:element>
376+ <xs:element name="Complemento" minOccurs="0">
377+ <xs:annotation>
378+ <xs:documentation>Nodo opcional donde se incluirán los nodos complementarios determinados por el SAT, de acuerdo a las disposiciones particulares a un sector o actividad específica.</xs:documentation>
379+ </xs:annotation>
380+ <xs:complexType>
381+ <xs:sequence>
382+ <xs:any minOccurs="0" maxOccurs="unbounded"/>
383+ </xs:sequence>
384+ </xs:complexType>
385+ </xs:element>
386+ <xs:element name="Addenda" minOccurs="0">
387+ <xs:annotation>
388+ <xs:documentation>Nodo opcional para recibir las extensiones al presente formato que sean de utilidad al contribuyente. Para las reglas de uso del mismo, referirse al formato de origen.</xs:documentation>
389+ </xs:annotation>
390+ <xs:complexType>
391+ <xs:sequence>
392+ <xs:any minOccurs="0" maxOccurs="unbounded"/>
393+ </xs:sequence>
394+ </xs:complexType>
395+ </xs:element>
396+ </xs:sequence>
397+ <xs:attribute name="version" use="required" fixed="2.2">
398+ <xs:annotation>
399+ <xs:documentation>Atributo requerido con valor prefijado a 2.2 que indica la versión del estándar bajo el que se encuentra expresado el comprobante.</xs:documentation>
400+ </xs:annotation>
401+ <xs:simpleType>
402+ <xs:restriction base="xs:string">
403+ <xs:whiteSpace value="collapse"/>
404+ </xs:restriction>
405+ </xs:simpleType>
406+ </xs:attribute>
407+ <xs:attribute name="serie" use="optional">
408+ <xs:annotation>
409+ <xs:documentation>Atributo opcional para precisar la serie a la que corresponde el comprobante. Este atributo acepta una cadena de caracteres alfabéticos de 1 a 10 caracteres sin incluir caracteres acentuados.</xs:documentation>
410+ </xs:annotation>
411+ <xs:simpleType>
412+ <xs:restriction base="xs:string">
413+ <xs:minLength value="1"/>
414+ <xs:maxLength value="10"/>
415+ <xs:whiteSpace value="collapse"/>
416+ </xs:restriction>
417+ </xs:simpleType>
418+ </xs:attribute>
419+ <xs:attribute name="folio" use="required">
420+ <xs:annotation>
421+ <xs:documentation>Atributo requerido que acepta un valor numérico entero superior a 0 que expresa el folio del comprobante.</xs:documentation>
422+ </xs:annotation>
423+ <xs:simpleType>
424+ <xs:restriction base="xs:string">
425+ <xs:minLength value="1"/>
426+ <xs:maxLength value="20"/>
427+ <xs:whiteSpace value="collapse"/>
428+ <xs:pattern value="[0-9]+"/>
429+ </xs:restriction>
430+ </xs:simpleType>
431+ </xs:attribute>
432+ <xs:attribute name="fecha" use="required">
433+ <xs:annotation>
434+ <xs:documentation>Atributo requerido para la expresión de la fecha y hora de expedición del comprobante fiscal. Se expresa en la forma aaaa-mm-ddThh:mm:ss, de acuerdo con la especificación ISO 8601.</xs:documentation>
435+ </xs:annotation>
436+ <xs:simpleType>
437+ <xs:restriction base="xs:dateTime">
438+ <xs:whiteSpace value="collapse"/>
439+ </xs:restriction>
440+ </xs:simpleType>
441+ </xs:attribute>
442+ <xs:attribute name="sello" use="required">
443+ <xs:annotation>
444+ <xs:documentation>Atributo requerido para contener el sello digital del comprobante fiscal, al que hacen referencia las reglas de resolución miscelánea aplicable. El sello deberá ser expresado cómo una cadena de texto en formato Base 64.</xs:documentation>
445+ </xs:annotation>
446+ <xs:simpleType>
447+ <xs:restriction base="xs:string">
448+ <xs:whiteSpace value="collapse"/>
449+ </xs:restriction>
450+ </xs:simpleType>
451+ </xs:attribute>
452+ <xs:attribute name="noAprobacion" use="required">
453+ <xs:annotation>
454+ <xs:documentation>Atributo requerido para precisar el número de aprobación emitido por el SAT, para el rango de folios al que pertenece el folio particular que ampara el comprobante fiscal digital.</xs:documentation>
455+ </xs:annotation>
456+ <xs:simpleType>
457+ <xs:restriction base="xs:integer">
458+ <xs:whiteSpace value="collapse"/>
459+ </xs:restriction>
460+ </xs:simpleType>
461+ </xs:attribute>
462+ <xs:attribute name="anoAprobacion" use="required">
463+ <xs:annotation>
464+ <xs:documentation>Atributo requerido para precisar el año en que se solicito el folio que se están utilizando para emitir el comprobante fiscal digital.</xs:documentation>
465+ </xs:annotation>
466+ <xs:simpleType>
467+ <xs:restriction base="xs:integer">
468+ <xs:whiteSpace value="collapse"/>
469+ <xs:totalDigits value="4"/>
470+ </xs:restriction>
471+ </xs:simpleType>
472+ </xs:attribute>
473+ <xs:attribute name="formaDePago" use="required">
474+ <xs:annotation>
475+ <xs:documentation>Atributo requerido para precisar la forma de pago que aplica para este comprobante fiscal digital. Se utiliza para expresar Pago en una sola exhibición o número de parcialidad pagada contra el total de parcialidades, Parcialidad 1 de X. </xs:documentation>
476+ </xs:annotation>
477+ <xs:simpleType>
478+ <xs:restriction base="xs:string">
479+ <xs:whiteSpace value="collapse"/>
480+ </xs:restriction>
481+ </xs:simpleType>
482+ </xs:attribute>
483+ <xs:attribute name="noCertificado" use="required">
484+ <xs:annotation>
485+ <xs:documentation> Atributo requerido para expresar el número de serie del certificado de sello digital que ampara al comprobante, de acuerdo al acuse correspondiente a 20 posiciones otorgado por el sistema del SAT.</xs:documentation>
486+ </xs:annotation>
487+ <xs:simpleType>
488+ <xs:restriction base="xs:string">
489+ <xs:length value="20"/>
490+ <xs:whiteSpace value="collapse"/>
491+ </xs:restriction>
492+ </xs:simpleType>
493+ </xs:attribute>
494+ <xs:attribute name="certificado" use="optional">
495+ <xs:annotation>
496+ <xs:documentation>Atributo opcional que sirve para expresar el certificado de sello digital que ampara al comprobante como texto, en formato base 64.</xs:documentation>
497+ </xs:annotation>
498+ <xs:simpleType>
499+ <xs:restriction base="xs:string">
500+ <xs:whiteSpace value="collapse"/>
501+ </xs:restriction>
502+ </xs:simpleType>
503+ </xs:attribute>
504+ <xs:attribute name="condicionesDePago" use="optional">
505+ <xs:annotation>
506+ <xs:documentation>Atributo opcional para expresar las condiciones comerciales aplicables para el pago del comprobante fiscal digital.</xs:documentation>
507+ </xs:annotation>
508+ <xs:simpleType>
509+ <xs:restriction base="xs:string">
510+ <xs:whiteSpace value="collapse"/>
511+ <xs:minLength value="1"/>
512+ </xs:restriction>
513+ </xs:simpleType>
514+ </xs:attribute>
515+ <xs:attribute name="subTotal" type="t_Importe" use="required">
516+ <xs:annotation>
517+ <xs:documentation>Atributo requerido para representar la suma de los importes antes de descuentos e impuestos.</xs:documentation>
518+ </xs:annotation>
519+ </xs:attribute>
520+ <xs:attribute name="descuento" type="t_Importe" use="optional">
521+ <xs:annotation>
522+ <xs:documentation>Atributo opcional para representar el importe total de los descuentos aplicables antes de impuestos.</xs:documentation>
523+ </xs:annotation>
524+ </xs:attribute>
525+ <xs:attribute name="motivoDescuento" use="optional">
526+ <xs:annotation>
527+ <xs:documentation>Atributo opcional para expresar el motivo del descuento aplicable.</xs:documentation>
528+ </xs:annotation>
529+ <xs:simpleType>
530+ <xs:restriction base="xs:string">
531+ <xs:minLength value="1"/>
532+ <xs:whiteSpace value="collapse"/>
533+ </xs:restriction>
534+ </xs:simpleType>
535+ </xs:attribute>
536+ <xs:attribute name="TipoCambio" type="xs:string">
537+ <xs:annotation>
538+ <xs:documentation>Atributo opcional para representar el tipo de cambio conforme a la moneda usada</xs:documentation>
539+ </xs:annotation>
540+ </xs:attribute>
541+ <xs:attribute name="Moneda">
542+ <xs:annotation>
543+ <xs:documentation>Atributo opcional para expresar la moneda utilizada para expresar los montos </xs:documentation>
544+ </xs:annotation>
545+ <xs:simpleType>
546+ <xs:restriction base="xs:string">
547+ <xs:whiteSpace value="collapse"/>
548+ </xs:restriction>
549+ </xs:simpleType>
550+ </xs:attribute>
551+ <xs:attribute name="total" type="t_Importe" use="required">
552+ <xs:annotation>
553+ <xs:documentation>Atributo requerido para representar la suma del subtotal, menos los descuentos aplicables, más los impuestos trasladados, menos los impuestos retenidos.</xs:documentation>
554+ </xs:annotation>
555+ </xs:attribute>
556+ <xs:attribute name="tipoDeComprobante" use="required">
557+ <xs:annotation>
558+ <xs:documentation>Atributo requerido para expresar el efecto del comprobante fiscal para el contribuyente emisor.</xs:documentation>
559+ </xs:annotation>
560+ <xs:simpleType>
561+ <xs:restriction base="xs:string">
562+ <xs:enumeration value="ingreso"/>
563+ <xs:enumeration value="egreso"/>
564+ <xs:enumeration value="traslado"/>
565+ </xs:restriction>
566+ </xs:simpleType>
567+ </xs:attribute>
568+ <xs:attribute name="metodoDePago" use="required">
569+ <xs:annotation>
570+ <xs:documentation>Atributo requerido de texto libre para expresar el método de pago de los bienes o servicios amparados por el comprobante. Se entiende como método de pago leyendas tales como: cheque, tarjeta de crédito o debito, depósito en cuenta, etc.</xs:documentation>
571+ </xs:annotation>
572+ <xs:simpleType>
573+ <xs:restriction base="xs:string">
574+ <xs:minLength value="1"/>
575+ <xs:whiteSpace value="collapse"/>
576+ </xs:restriction>
577+ </xs:simpleType>
578+ </xs:attribute>
579+ <xs:attribute name="LugarExpedicion" use="required">
580+ <xs:annotation>
581+ <xs:documentation>Atributo requerido para incorporar el lugar de expedición del comprobante.</xs:documentation>
582+ </xs:annotation>
583+ <xs:simpleType>
584+ <xs:restriction base="xs:string">
585+ <xs:minLength value="1"/>
586+ <xs:whiteSpace value="collapse"/>
587+ </xs:restriction>
588+ </xs:simpleType>
589+ </xs:attribute>
590+ <xs:attribute name="NumCtaPago">
591+ <xs:annotation>
592+ <xs:documentation>Atributo Opcional para incorporar al menos los cuatro últimos digitos del número de cuenta con la que se realizó el pago.</xs:documentation>
593+ </xs:annotation>
594+ <xs:simpleType>
595+ <xs:restriction base="xs:string">
596+ <xs:minLength value="4"/>
597+ <xs:whiteSpace value="collapse"/>
598+ </xs:restriction>
599+ </xs:simpleType>
600+ </xs:attribute>
601+ <xs:attribute name="FolioFiscalOrig">
602+ <xs:annotation>
603+ <xs:documentation>Atributo opcional para señalar el número de folio fiscal del comprobante que se hubiese expedido por el valor total del comprobante, tratándose del pago en parcialidades.</xs:documentation>
604+ </xs:annotation>
605+ <xs:simpleType>
606+ <xs:restriction base="xs:string">
607+ <xs:whiteSpace value="collapse"/>
608+ </xs:restriction>
609+ </xs:simpleType>
610+ </xs:attribute>
611+ <xs:attribute name="SerieFolioFiscalOrig">
612+ <xs:annotation>
613+ <xs:documentation>Atributo opcional para señalar la serie del folio del comprobante que se hubiese expedido por el valor total del comprobante, tratándose del pago en parcialidades.</xs:documentation>
614+ </xs:annotation>
615+ <xs:simpleType>
616+ <xs:restriction base="xs:string">
617+ <xs:whiteSpace value="collapse"/>
618+ </xs:restriction>
619+ </xs:simpleType>
620+ </xs:attribute>
621+ <xs:attribute name="FechaFolioFiscalOrig">
622+ <xs:annotation>
623+ <xs:documentation>Atributo opcional para señalar la fecha de expedición del comprobante que se hubiese emitido por el valor total del comprobante, tratándose del pago en parcialidades. Se expresa en la forma aaaa-mm-ddThh:mm:ss, de acuerdo con la especificación ISO 8601.</xs:documentation>
624+ </xs:annotation>
625+ <xs:simpleType>
626+ <xs:restriction base="xs:dateTime">
627+ <xs:whiteSpace value="collapse"/>
628+ </xs:restriction>
629+ </xs:simpleType>
630+ </xs:attribute>
631+ <xs:attribute name="MontoFolioFiscalOrig" type="t_Importe">
632+ <xs:annotation>
633+ <xs:documentation>Atributo opcional para señalar el total del comprobante que se hubiese expedido por el valor total de la operación, tratándose del pago en parcialidades</xs:documentation>
634+ </xs:annotation>
635+ </xs:attribute>
636+ </xs:complexType>
637+ </xs:element>
638+ <xs:complexType name="t_Ubicacion">
639+ <xs:annotation>
640+ <xs:documentation>Tipo definido para expresar domicilios o direcciones</xs:documentation>
641+ </xs:annotation>
642+ <xs:attribute name="calle" use="optional">
643+ <xs:annotation>
644+ <xs:documentation>Este atributo opcional sirve para precisar la avenida, calle, camino o carretera donde se da la ubicación.</xs:documentation>
645+ </xs:annotation>
646+ <xs:simpleType>
647+ <xs:restriction base="xs:string">
648+ <xs:minLength value="1"/>
649+ <xs:whiteSpace value="collapse"/>
650+ </xs:restriction>
651+ </xs:simpleType>
652+ </xs:attribute>
653+ <xs:attribute name="noExterior" use="optional">
654+ <xs:annotation>
655+ <xs:documentation>Este atributo opcional sirve para expresar el número particular en donde se da la ubicación sobre una calle dada.</xs:documentation>
656+ </xs:annotation>
657+ <xs:simpleType>
658+ <xs:restriction base="xs:string">
659+ <xs:minLength value="1"/>
660+ <xs:whiteSpace value="collapse"/>
661+ </xs:restriction>
662+ </xs:simpleType>
663+ </xs:attribute>
664+ <xs:attribute name="noInterior" use="optional">
665+ <xs:annotation>
666+ <xs:documentation>Este atributo opcional sirve para expresar información adicional para especificar la ubicación cuando calle y número exterior (noExterior) no resulten suficientes para determinar la ubicación de forma precisa.</xs:documentation>
667+ </xs:annotation>
668+ <xs:simpleType>
669+ <xs:restriction base="xs:string">
670+ <xs:minLength value="1"/>
671+ <xs:whiteSpace value="collapse"/>
672+ </xs:restriction>
673+ </xs:simpleType>
674+ </xs:attribute>
675+ <xs:attribute name="colonia" use="optional">
676+ <xs:annotation>
677+ <xs:documentation>Este atributo opcional sirve para precisar la colonia en donde se da la ubicación cuando se desea ser más específico en casos de ubicaciones urbanas.</xs:documentation>
678+ </xs:annotation>
679+ <xs:simpleType>
680+ <xs:restriction base="xs:string">
681+ <xs:minLength value="1"/>
682+ <xs:whiteSpace value="collapse"/>
683+ </xs:restriction>
684+ </xs:simpleType>
685+ </xs:attribute>
686+ <xs:attribute name="localidad" use="optional">
687+ <xs:annotation>
688+ <xs:documentation>Atributo opcional que sirve para precisar la ciudad o población donde se da la ubicación.</xs:documentation>
689+ </xs:annotation>
690+ <xs:simpleType>
691+ <xs:restriction base="xs:string">
692+ <xs:minLength value="1"/>
693+ <xs:whiteSpace value="collapse"/>
694+ </xs:restriction>
695+ </xs:simpleType>
696+ </xs:attribute>
697+ <xs:attribute name="referencia" use="optional">
698+ <xs:annotation>
699+ <xs:documentation>Atributo opcional para expresar una referencia de ubicación adicional.</xs:documentation>
700+ </xs:annotation>
701+ <xs:simpleType>
702+ <xs:restriction base="xs:string">
703+ <xs:minLength value="1"/>
704+ <xs:whiteSpace value="collapse"/>
705+ </xs:restriction>
706+ </xs:simpleType>
707+ </xs:attribute>
708+ <xs:attribute name="municipio" use="optional">
709+ <xs:annotation>
710+ <xs:documentation>Atributo opcional que sirve para precisar el municipio o delegación (en el caso del Distrito Federal) en donde se da la ubicación.</xs:documentation>
711+ </xs:annotation>
712+ <xs:simpleType>
713+ <xs:restriction base="xs:string">
714+ <xs:minLength value="1"/>
715+ <xs:whiteSpace value="collapse"/>
716+ </xs:restriction>
717+ </xs:simpleType>
718+ </xs:attribute>
719+ <xs:attribute name="estado" use="optional">
720+ <xs:annotation>
721+ <xs:documentation>Atributo opcional que sirve para precisar el estado o entidad federativa donde se da la ubicación.</xs:documentation>
722+ </xs:annotation>
723+ <xs:simpleType>
724+ <xs:restriction base="xs:string">
725+ <xs:minLength value="1"/>
726+ <xs:whiteSpace value="collapse"/>
727+ </xs:restriction>
728+ </xs:simpleType>
729+ </xs:attribute>
730+ <xs:attribute name="pais" use="required">
731+ <xs:annotation>
732+ <xs:documentation>Atributo requerido que sirve para precisar el país donde se da la ubicación.</xs:documentation>
733+ </xs:annotation>
734+ <xs:simpleType>
735+ <xs:restriction base="xs:string">
736+ <xs:minLength value="1"/>
737+ <xs:whiteSpace value="collapse"/>
738+ </xs:restriction>
739+ </xs:simpleType>
740+ </xs:attribute>
741+ <xs:attribute name="codigoPostal" use="optional">
742+ <xs:annotation>
743+ <xs:documentation>Atributo opcional que sirve para asentar el código postal en donde se da la ubicación.</xs:documentation>
744+ </xs:annotation>
745+ <xs:simpleType>
746+ <xs:restriction base="xs:string">
747+ <xs:whiteSpace value="collapse"/>
748+ </xs:restriction>
749+ </xs:simpleType>
750+ </xs:attribute>
751+ </xs:complexType>
752+ <xs:complexType name="t_UbicacionFiscal">
753+ <xs:annotation>
754+ <xs:documentation>Tipo definido para expresar domicilios o direcciones</xs:documentation>
755+ </xs:annotation>
756+ <xs:attribute name="calle" use="required">
757+ <xs:annotation>
758+ <xs:documentation>Este atributo requerido sirve para precisar la avenida, calle, camino o carretera donde se da la ubicación.</xs:documentation>
759+ </xs:annotation>
760+ <xs:simpleType>
761+ <xs:restriction base="xs:string">
762+ <xs:minLength value="1"/>
763+ <xs:whiteSpace value="collapse"/>
764+ </xs:restriction>
765+ </xs:simpleType>
766+ </xs:attribute>
767+ <xs:attribute name="noExterior" use="optional">
768+ <xs:annotation>
769+ <xs:documentation>Este atributo opcional sirve para expresar el número particular en donde se da la ubicación sobre una calle dada.</xs:documentation>
770+ </xs:annotation>
771+ <xs:simpleType>
772+ <xs:restriction base="xs:string">
773+ <xs:minLength value="1"/>
774+ <xs:whiteSpace value="collapse"/>
775+ </xs:restriction>
776+ </xs:simpleType>
777+ </xs:attribute>
778+ <xs:attribute name="noInterior" use="optional">
779+ <xs:annotation>
780+ <xs:documentation>Este atributo opcional sirve para expresar información adicional para especificar la ubicación cuando calle y número exterior (noExterior) no resulten suficientes para determinar la ubicación de forma precisa.</xs:documentation>
781+ </xs:annotation>
782+ <xs:simpleType>
783+ <xs:restriction base="xs:string">
784+ <xs:minLength value="1"/>
785+ <xs:whiteSpace value="collapse"/>
786+ </xs:restriction>
787+ </xs:simpleType>
788+ </xs:attribute>
789+ <xs:attribute name="colonia" use="optional">
790+ <xs:annotation>
791+ <xs:documentation>Este atributo opcional sirve para precisar la colonia en donde se da la ubicación cuando se desea ser más específico en casos de ubicaciones urbanas.</xs:documentation>
792+ </xs:annotation>
793+ <xs:simpleType>
794+ <xs:restriction base="xs:string">
795+ <xs:minLength value="1"/>
796+ <xs:whiteSpace value="collapse"/>
797+ </xs:restriction>
798+ </xs:simpleType>
799+ </xs:attribute>
800+ <xs:attribute name="localidad" use="optional">
801+ <xs:annotation>
802+ <xs:documentation>Atributo opcional que sirve para precisar la ciudad o población donde se da la ubicación.</xs:documentation>
803+ </xs:annotation>
804+ <xs:simpleType>
805+ <xs:restriction base="xs:string">
806+ <xs:minLength value="1"/>
807+ <xs:whiteSpace value="collapse"/>
808+ </xs:restriction>
809+ </xs:simpleType>
810+ </xs:attribute>
811+ <xs:attribute name="referencia" use="optional">
812+ <xs:annotation>
813+ <xs:documentation>Atributo opcional para expresar una referencia de ubicación adicional.</xs:documentation>
814+ </xs:annotation>
815+ <xs:simpleType>
816+ <xs:restriction base="xs:string">
817+ <xs:whiteSpace value="collapse"/>
818+ <xs:minLength value="1"/>
819+ </xs:restriction>
820+ </xs:simpleType>
821+ </xs:attribute>
822+ <xs:attribute name="municipio" use="required">
823+ <xs:annotation>
824+ <xs:documentation>Atributo requerido que sirve para precisar el municipio o delegación (en el caso del Distrito Federal) en donde se da la ubicación.</xs:documentation>
825+ </xs:annotation>
826+ <xs:simpleType>
827+ <xs:restriction base="xs:string">
828+ <xs:minLength value="1"/>
829+ <xs:whiteSpace value="collapse"/>
830+ </xs:restriction>
831+ </xs:simpleType>
832+ </xs:attribute>
833+ <xs:attribute name="estado" use="required">
834+ <xs:annotation>
835+ <xs:documentation>Atributo requerido que sirve para precisar el estado o entidad federativa donde se da la ubicación.</xs:documentation>
836+ </xs:annotation>
837+ <xs:simpleType>
838+ <xs:restriction base="xs:string">
839+ <xs:minLength value="1"/>
840+ <xs:whiteSpace value="collapse"/>
841+ </xs:restriction>
842+ </xs:simpleType>
843+ </xs:attribute>
844+ <xs:attribute name="pais" use="required">
845+ <xs:annotation>
846+ <xs:documentation>Atributo requerido que sirve para precisar el país donde se da la ubicación.</xs:documentation>
847+ </xs:annotation>
848+ <xs:simpleType>
849+ <xs:restriction base="xs:string">
850+ <xs:minLength value="1"/>
851+ <xs:whiteSpace value="collapse"/>
852+ </xs:restriction>
853+ </xs:simpleType>
854+ </xs:attribute>
855+ <xs:attribute name="codigoPostal" use="required">
856+ <xs:annotation>
857+ <xs:documentation>Atributo requerido que sirve para asentar el código postal en donde se da la ubicación.</xs:documentation>
858+ </xs:annotation>
859+ <xs:simpleType>
860+ <xs:restriction base="xs:string">
861+ <xs:whiteSpace value="collapse"/>
862+ <xs:length value="5"/>
863+ </xs:restriction>
864+ </xs:simpleType>
865+ </xs:attribute>
866+ </xs:complexType>
867+ <xs:simpleType name="t_RFC">
868+ <xs:annotation>
869+ <xs:documentation>Tipo definido para expresar claves del Registro Federal de Contribuyentes</xs:documentation>
870+ </xs:annotation>
871+ <xs:restriction base="xs:string">
872+ <xs:minLength value="12"/>
873+ <xs:maxLength value="13"/>
874+ <xs:whiteSpace value="collapse"/>
875+ <xs:pattern value="[A-Z,Ñ,&amp;]{3,4}[0-9]{2}[0-1][0-9][0-3][0-9][A-Z,0-9]?[A-Z,0-9]?[0-9,A-Z]?"/>
876+ </xs:restriction>
877+ </xs:simpleType>
878+ <xs:simpleType name="t_Importe">
879+ <xs:annotation>
880+ <xs:documentation>Tipo definido para expresar importes numéricos con fracción a seis decimales</xs:documentation>
881+ </xs:annotation>
882+ <xs:restriction base="xs:decimal">
883+ <xs:fractionDigits value="6"/>
884+ <xs:whiteSpace value="collapse"/>
885+ </xs:restriction>
886+ </xs:simpleType>
887+ <xs:complexType name="t_InformacionAduanera">
888+ <xs:annotation>
889+ <xs:documentation>Tipo definido para expresar información aduanera</xs:documentation>
890+ </xs:annotation>
891+ <xs:attribute name="numero" use="required">
892+ <xs:annotation>
893+ <xs:documentation>Atributo requerido para expresar el número del documento aduanero que ampara la importación del bien.</xs:documentation>
894+ </xs:annotation>
895+ <xs:simpleType>
896+ <xs:restriction base="xs:string">
897+ <xs:minLength value="1"/>
898+ <xs:whiteSpace value="collapse"/>
899+ </xs:restriction>
900+ </xs:simpleType>
901+ </xs:attribute>
902+ <xs:attribute name="fecha" use="required">
903+ <xs:annotation>
904+ <xs:documentation>Atributo requerido para expresar la fecha de expedición del documento aduanero que ampara la importación del bien. Se expresa en el formato aaaa-mm-dd</xs:documentation>
905+ </xs:annotation>
906+ <xs:simpleType>
907+ <xs:restriction base="xs:date">
908+ <xs:whiteSpace value="collapse"/>
909+ </xs:restriction>
910+ </xs:simpleType>
911+ </xs:attribute>
912+ <xs:attribute name="aduana">
913+ <xs:annotation>
914+ <xs:documentation>Atributo opcional para precisar el nombre de la aduana por la que se efectuó la importación del bien.</xs:documentation>
915+ </xs:annotation>
916+ <xs:simpleType>
917+ <xs:restriction base="xs:string">
918+ <xs:minLength value="1"/>
919+ <xs:whiteSpace value="collapse"/>
920+ </xs:restriction>
921+ </xs:simpleType>
922+ </xs:attribute>
923+ </xs:complexType>
924+</xs:schema>
925
926=== removed file 'l10n_mx_facturae/SAT/cfdv2.xsd'
927--- l10n_mx_facturae/SAT/cfdv2.xsd 2011-05-17 04:06:22 +0000
928+++ l10n_mx_facturae/SAT/cfdv2.xsd 1970-01-01 00:00:00 +0000
929@@ -1,827 +0,0 @@
930-<?xml version="1.0" encoding="UTF-8"?>
931-<!-- edited with XMLSpy v2008 (http://www.altova.com) by SAT (.) -->
932-<xs:schema xmlns="http://www.sat.gob.mx/cfd/2" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.sat.gob.mx/cfd/2" elementFormDefault="qualified" attributeFormDefault="unqualified">
933- <xs:element name="Comprobante">
934- <xs:annotation>
935- <xs:documentation>Estándar para la expresión de comprobantes fiscales digitales.</xs:documentation>
936- </xs:annotation>
937- <xs:complexType>
938- <xs:sequence>
939- <xs:element name="Emisor">
940- <xs:annotation>
941- <xs:documentation>Nodo requerido para expresar la información del contribuyente emisor del comprobante.</xs:documentation>
942- </xs:annotation>
943- <xs:complexType>
944- <xs:sequence>
945- <xs:element name="DomicilioFiscal" type="t_UbicacionFiscal">
946- <xs:annotation>
947- <xs:documentation>Nodo requerido para precisar la información de ubicación del domicilio fiscal del contribuyente emisor</xs:documentation>
948- </xs:annotation>
949- </xs:element>
950- <xs:element name="ExpedidoEn" type="t_Ubicacion" minOccurs="0">
951- <xs:annotation>
952- <xs:documentation>Nodo opcional para precisar la información de ubicación del domicilio en donde es emitido el comprobante fiscal en caso de que sea distinto del domicilio fiscal del contribuyente emisor.</xs:documentation>
953- </xs:annotation>
954- </xs:element>
955- </xs:sequence>
956- <xs:attribute name="rfc" type="t_RFC" use="required">
957- <xs:annotation>
958- <xs:documentation>Atributo requerido para la Clave del Registro Federal de Contribuyentes correspondiente al contribuyente emisor del comprobante sin guiones o espacios.</xs:documentation>
959- </xs:annotation>
960- </xs:attribute>
961- <xs:attribute name="nombre" use="required">
962- <xs:annotation>
963- <xs:documentation>Atributo requerido para el nombre o razón social del contribuyente emisor del comprobante.</xs:documentation>
964- </xs:annotation>
965- <xs:simpleType>
966- <xs:restriction base="xs:string">
967- <xs:minLength value="1"/>
968- <xs:whiteSpace value="collapse"/>
969- </xs:restriction>
970- </xs:simpleType>
971- </xs:attribute>
972- </xs:complexType>
973- </xs:element>
974- <xs:element name="Receptor">
975- <xs:annotation>
976- <xs:documentation>Nodo requerido para precisar la información del contribuyente receptor del comprobante.</xs:documentation>
977- </xs:annotation>
978- <xs:complexType>
979- <xs:sequence>
980- <xs:element name="Domicilio" type="t_Ubicacion">
981- <xs:annotation>
982- <xs:documentation>Nodo para la definición de la ubicación donde se da el domicilio del receptor del comprobante fiscal.</xs:documentation>
983- </xs:annotation>
984- </xs:element>
985- </xs:sequence>
986- <xs:attribute name="rfc" type="t_RFC" use="required">
987- <xs:annotation>
988- <xs:documentation>Atributo requerido para precisar la Clave del Registro Federal de Contribuyentes correspondiente al contribuyente receptor del comprobante.</xs:documentation>
989- </xs:annotation>
990- </xs:attribute>
991- <xs:attribute name="nombre" use="optional">
992- <xs:annotation>
993- <xs:documentation>Atributo opcional para precisar el nombre o razón social del contribuyente receptor.</xs:documentation>
994- </xs:annotation>
995- <xs:simpleType>
996- <xs:restriction base="xs:string">
997- <xs:minLength value="1"/>
998- <xs:whiteSpace value="collapse"/>
999- </xs:restriction>
1000- </xs:simpleType>
1001- </xs:attribute>
1002- </xs:complexType>
1003- </xs:element>
1004- <xs:element name="Conceptos">
1005- <xs:annotation>
1006- <xs:documentation>Nodo requerido para enlistar los conceptos cubiertos por el comprobante.</xs:documentation>
1007- </xs:annotation>
1008- <xs:complexType>
1009- <xs:sequence>
1010- <xs:element name="Concepto" maxOccurs="unbounded">
1011- <xs:annotation>
1012- <xs:documentation>Nodo para introducir la información detallada de un bien o servicio amparado en el comprobante.</xs:documentation>
1013- </xs:annotation>
1014- <xs:complexType>
1015- <xs:choice minOccurs="0">
1016- <xs:element name="InformacionAduanera" type="t_InformacionAduanera" minOccurs="0" maxOccurs="unbounded">
1017- <xs:annotation>
1018- <xs:documentation>Nodo opcional para introducir la información aduanera aplicable cuando se trate de ventas de primera mano de mercancías importadas.</xs:documentation>
1019- </xs:annotation>
1020- </xs:element>
1021- <xs:element name="CuentaPredial" minOccurs="0">
1022- <xs:annotation>
1023- <xs:documentation>Nodo opcional para asentar el número de cuenta predial con el que fue registrado el inmueble, en el sistema catastral de la entidad federativa de que trate.</xs:documentation>
1024- </xs:annotation>
1025- <xs:complexType>
1026- <xs:attribute name="numero" use="required">
1027- <xs:annotation>
1028- <xs:documentation>Atributo requerido para precisar el número de la cuenta predial del inmueble cubierto por el presente concepto en caso de recibos de arrendamiento.</xs:documentation>
1029- </xs:annotation>
1030- <xs:simpleType>
1031- <xs:restriction base="xs:string">
1032- <xs:whiteSpace value="collapse"/>
1033- <xs:minLength value="1"/>
1034- </xs:restriction>
1035- </xs:simpleType>
1036- </xs:attribute>
1037- </xs:complexType>
1038- </xs:element>
1039- <xs:element name="ComplementoConcepto" minOccurs="0">
1040- <xs:annotation>
1041- <xs:documentation>Nodo opcional donde se incluirán los nodos complementarios de extensión al concepto, definidos por el SAT, de acuerdo a disposiciones particulares a un sector o actividad especifica.</xs:documentation>
1042- </xs:annotation>
1043- <xs:complexType>
1044- <xs:sequence>
1045- <xs:any minOccurs="0" maxOccurs="unbounded"/>
1046- </xs:sequence>
1047- </xs:complexType>
1048- </xs:element>
1049- <xs:element name="Parte" minOccurs="0" maxOccurs="unbounded">
1050- <xs:annotation>
1051- <xs:documentation>Nodo opcional para expresar las partes o componentes que integran la totalidad del concepto expresado en el comprobante fiscal digital</xs:documentation>
1052- </xs:annotation>
1053- <xs:complexType>
1054- <xs:sequence>
1055- <xs:element name="InformacionAduanera" type="t_InformacionAduanera" minOccurs="0" maxOccurs="unbounded">
1056- <xs:annotation>
1057- <xs:documentation>Nodo opcional para introducir la información aduanera aplicable cuando se trate de partes o componentes importados vendidos de primera mano.</xs:documentation>
1058- </xs:annotation>
1059- </xs:element>
1060- </xs:sequence>
1061- <xs:attribute name="cantidad" use="required">
1062- <xs:annotation>
1063- <xs:documentation>Atributo requerido para precisar la cantidad de bienes o servicios del tipo particular definido por la presente parte.</xs:documentation>
1064- </xs:annotation>
1065- <xs:simpleType>
1066- <xs:restriction base="xs:decimal">
1067- <xs:whiteSpace value="collapse"/>
1068- </xs:restriction>
1069- </xs:simpleType>
1070- </xs:attribute>
1071- <xs:attribute name="unidad" use="optional">
1072- <xs:annotation>
1073- <xs:documentation>Atributo opcional para precisar la unidad de medida aplicable para la cantidad expresada en la parte.</xs:documentation>
1074- </xs:annotation>
1075- <xs:simpleType>
1076- <xs:restriction base="xs:string">
1077- <xs:whiteSpace value="collapse"/>
1078- <xs:minLength value="1"/>
1079- </xs:restriction>
1080- </xs:simpleType>
1081- </xs:attribute>
1082- <xs:attribute name="noIdentificacion" use="optional">
1083- <xs:annotation>
1084- <xs:documentation>Atributo opcional para expresar el número de serie del bien o identificador del servicio amparado por la presente parte.</xs:documentation>
1085- </xs:annotation>
1086- <xs:simpleType>
1087- <xs:restriction base="xs:string">
1088- <xs:minLength value="1"/>
1089- <xs:whiteSpace value="collapse"/>
1090- </xs:restriction>
1091- </xs:simpleType>
1092- </xs:attribute>
1093- <xs:attribute name="descripcion" use="required">
1094- <xs:annotation>
1095- <xs:documentation>Atributo requerido para precisar la descripción del bien o servicio cubierto por la presente parte.</xs:documentation>
1096- </xs:annotation>
1097- <xs:simpleType>
1098- <xs:restriction base="xs:string">
1099- <xs:minLength value="1"/>
1100- <xs:whiteSpace value="collapse"/>
1101- </xs:restriction>
1102- </xs:simpleType>
1103- </xs:attribute>
1104- <xs:attribute name="valorUnitario" type="t_Importe" use="optional">
1105- <xs:annotation>
1106- <xs:documentation>Atributo opcional para precisar el valor o precio unitario del bien o servicio cubierto por la presente parte.</xs:documentation>
1107- </xs:annotation>
1108- </xs:attribute>
1109- <xs:attribute name="importe" type="t_Importe" use="optional">
1110- <xs:annotation>
1111- <xs:documentation>Atributo opcional para precisar el importe total de los bienes o servicios de la presente parte. Debe ser equivalente al resultado de multiplicar la cantidad por el valor unitario expresado en la parte.</xs:documentation>
1112- </xs:annotation>
1113- </xs:attribute>
1114- </xs:complexType>
1115- </xs:element>
1116- </xs:choice>
1117- <xs:attribute name="cantidad" use="required">
1118- <xs:annotation>
1119- <xs:documentation>Atributo requerido para precisar la cantidad de bienes o servicios del tipo particular definido por el presente concepto.</xs:documentation>
1120- </xs:annotation>
1121- <xs:simpleType>
1122- <xs:restriction base="xs:decimal">
1123- <xs:whiteSpace value="collapse"/>
1124- </xs:restriction>
1125- </xs:simpleType>
1126- </xs:attribute>
1127- <xs:attribute name="unidad" use="optional">
1128- <xs:annotation>
1129- <xs:documentation>Atributo opcional para precisar la unidad de medida aplicable para la cantidad expresada en el concepto.</xs:documentation>
1130- </xs:annotation>
1131- <xs:simpleType>
1132- <xs:restriction base="xs:string">
1133- <xs:whiteSpace value="collapse"/>
1134- <xs:minLength value="1"/>
1135- </xs:restriction>
1136- </xs:simpleType>
1137- </xs:attribute>
1138- <xs:attribute name="noIdentificacion" use="optional">
1139- <xs:annotation>
1140- <xs:documentation>Atributo opcional para expresar el número de serie del bien o identificador del servicio amparado por el presente concepto.</xs:documentation>
1141- </xs:annotation>
1142- <xs:simpleType>
1143- <xs:restriction base="xs:string">
1144- <xs:minLength value="1"/>
1145- <xs:whiteSpace value="collapse"/>
1146- </xs:restriction>
1147- </xs:simpleType>
1148- </xs:attribute>
1149- <xs:attribute name="descripcion" use="required">
1150- <xs:annotation>
1151- <xs:documentation>Atributo requerido para precisar la descripción del bien o servicio cubierto por el presente concepto.</xs:documentation>
1152- </xs:annotation>
1153- <xs:simpleType>
1154- <xs:restriction base="xs:string">
1155- <xs:minLength value="1"/>
1156- <xs:whiteSpace value="collapse"/>
1157- </xs:restriction>
1158- </xs:simpleType>
1159- </xs:attribute>
1160- <xs:attribute name="valorUnitario" type="t_Importe" use="required">
1161- <xs:annotation>
1162- <xs:documentation>Atributo requerido para precisar el valor o precio unitario del bien o servicio cubierto por el presente concepto.</xs:documentation>
1163- </xs:annotation>
1164- </xs:attribute>
1165- <xs:attribute name="importe" type="t_Importe" use="required">
1166- <xs:annotation>
1167- <xs:documentation>Atributo requerido para precisar el importe total de los bienes o servicios del presente concepto. Debe ser equivalente al resultado de multiplicar la cantidad por el valor unitario expresado en el concepto.</xs:documentation>
1168- </xs:annotation>
1169- </xs:attribute>
1170- </xs:complexType>
1171- </xs:element>
1172- </xs:sequence>
1173- </xs:complexType>
1174- </xs:element>
1175- <xs:element name="Impuestos">
1176- <xs:annotation>
1177- <xs:documentation>Nodo requerido para capturar los impuestos aplicables.</xs:documentation>
1178- </xs:annotation>
1179- <xs:complexType>
1180- <xs:sequence>
1181- <xs:element name="Retenciones" minOccurs="0">
1182- <xs:annotation>
1183- <xs:documentation>Nodo opcional para capturar los impuestos retenidos aplicables</xs:documentation>
1184- </xs:annotation>
1185- <xs:complexType>
1186- <xs:sequence>
1187- <xs:element name="Retencion" maxOccurs="unbounded">
1188- <xs:annotation>
1189- <xs:documentation>Nodo para la información detallada de una retención de impuesto específico</xs:documentation>
1190- </xs:annotation>
1191- <xs:complexType>
1192- <xs:attribute name="impuesto" use="required">
1193- <xs:annotation>
1194- <xs:documentation>Atributo requerido para señalar el tipo de impuesto retenido</xs:documentation>
1195- </xs:annotation>
1196- <xs:simpleType>
1197- <xs:restriction base="xs:string">
1198- <xs:whiteSpace value="collapse"/>
1199- <xs:enumeration value="ISR">
1200- <xs:annotation>
1201- <xs:documentation>Impuesto sobre la renta</xs:documentation>
1202- </xs:annotation>
1203- </xs:enumeration>
1204- <xs:enumeration value="IVA">
1205- <xs:annotation>
1206- <xs:documentation>Impuesto al Valor Agregado</xs:documentation>
1207- </xs:annotation>
1208- </xs:enumeration>
1209- </xs:restriction>
1210- </xs:simpleType>
1211- </xs:attribute>
1212- <xs:attribute name="importe" type="t_Importe" use="required">
1213- <xs:annotation>
1214- <xs:documentation>Atributo requerido para señalar el importe o monto del impuesto retenido</xs:documentation>
1215- </xs:annotation>
1216- </xs:attribute>
1217- </xs:complexType>
1218- </xs:element>
1219- </xs:sequence>
1220- </xs:complexType>
1221- </xs:element>
1222- <xs:element name="Traslados" minOccurs="0">
1223- <xs:annotation>
1224- <xs:documentation>Nodo opcional para asentar o referir los impuestos trasladados aplicables</xs:documentation>
1225- </xs:annotation>
1226- <xs:complexType>
1227- <xs:sequence>
1228- <xs:element name="Traslado" maxOccurs="unbounded">
1229- <xs:annotation>
1230- <xs:documentation>Nodo para la información detallada de un traslado de impuesto específico</xs:documentation>
1231- </xs:annotation>
1232- <xs:complexType>
1233- <xs:attribute name="impuesto" use="required">
1234- <xs:annotation>
1235- <xs:documentation>Atributo requerido para señalar el tipo de impuesto trasladado</xs:documentation>
1236- </xs:annotation>
1237- <xs:simpleType>
1238- <xs:restriction base="xs:string">
1239- <xs:whiteSpace value="collapse"/>
1240- <xs:enumeration value="IVA">
1241- <xs:annotation>
1242- <xs:documentation>Impuesto al Valor Agregado</xs:documentation>
1243- </xs:annotation>
1244- </xs:enumeration>
1245- <xs:enumeration value="IEPS">
1246- <xs:annotation>
1247- <xs:documentation>Impuesto especial sobre productos y servicios</xs:documentation>
1248- </xs:annotation>
1249- </xs:enumeration>
1250- </xs:restriction>
1251- </xs:simpleType>
1252- </xs:attribute>
1253- <xs:attribute name="tasa" type="t_Importe" use="required">
1254- <xs:annotation>
1255- <xs:documentation>Atributo requerido para señalar la tasa del impuesto que se traslada por cada concepto amparado en el comprobante</xs:documentation>
1256- </xs:annotation>
1257- </xs:attribute>
1258- <xs:attribute name="importe" type="t_Importe" use="required">
1259- <xs:annotation>
1260- <xs:documentation>Atributo requerido para señalar el importe del impuesto trasladado</xs:documentation>
1261- </xs:annotation>
1262- </xs:attribute>
1263- </xs:complexType>
1264- </xs:element>
1265- </xs:sequence>
1266- </xs:complexType>
1267- </xs:element>
1268- </xs:sequence>
1269- <xs:attribute name="totalImpuestosRetenidos" type="t_Importe" use="optional">
1270- <xs:annotation>
1271- <xs:documentation>Atributo opcional para expresar el total de los impuestos retenidos que se desprenden de los conceptos expresados en el comprobante fiscal digital.</xs:documentation>
1272- </xs:annotation>
1273- </xs:attribute>
1274- <xs:attribute name="totalImpuestosTrasladados" type="t_Importe" use="optional">
1275- <xs:annotation>
1276- <xs:documentation>Atributo opcional para expresar el total de los impuestos trasladados que se desprenden de los conceptos expresados en el comprobante fiscal digital.</xs:documentation>
1277- </xs:annotation>
1278- </xs:attribute>
1279- </xs:complexType>
1280- </xs:element>
1281- <xs:element name="Complemento" minOccurs="0">
1282- <xs:annotation>
1283- <xs:documentation>Nodo opcional donde se incluirán los nodos complementarios determinados por el SAT, de acuerdo a las disposiciones particulares a un sector o actividad especifica.</xs:documentation>
1284- </xs:annotation>
1285- <xs:complexType>
1286- <xs:sequence>
1287- <xs:any minOccurs="0" maxOccurs="unbounded"/>
1288- </xs:sequence>
1289- </xs:complexType>
1290- </xs:element>
1291- <xs:element name="Addenda" minOccurs="0">
1292- <xs:annotation>
1293- <xs:documentation>Nodo opcional para recibir las extensiones al presente formato que sean de utilidad al contribuyente. Para las reglas de uso del mismo, referirse al formato de origen.</xs:documentation>
1294- </xs:annotation>
1295- <xs:complexType>
1296- <xs:sequence>
1297- <xs:any minOccurs="0" maxOccurs="unbounded"/>
1298- </xs:sequence>
1299- </xs:complexType>
1300- </xs:element>
1301- </xs:sequence>
1302- <xs:attribute name="version" use="required" fixed="2.0">
1303- <xs:annotation>
1304- <xs:documentation>Atributo requerido con valor prefijado a 2.0 que indica la versión del estándar bajo el que se encuentra expresado el comprobante.</xs:documentation>
1305- </xs:annotation>
1306- <xs:simpleType>
1307- <xs:restriction base="xs:string">
1308- <xs:whiteSpace value="collapse"/>
1309- </xs:restriction>
1310- </xs:simpleType>
1311- </xs:attribute>
1312- <xs:attribute name="serie" use="optional">
1313- <xs:annotation>
1314- <xs:documentation>Atributo opcional para precisar la serie a la que corresponde el comprobante. Este atributo acepta una cadena de caracteres alfabéticos de 1 a 10 caracteres sin incluir caracteres acentuados.</xs:documentation>
1315- </xs:annotation>
1316- <xs:simpleType>
1317- <xs:restriction base="xs:string">
1318- <xs:minLength value="1"/>
1319- <xs:maxLength value="10"/>
1320- <xs:whiteSpace value="collapse"/>
1321- </xs:restriction>
1322- </xs:simpleType>
1323- </xs:attribute>
1324- <xs:attribute name="folio" use="required">
1325- <xs:annotation>
1326- <xs:documentation>Atributo requerido que acepta un valor numérico entero superior a 0 que expresa el folio del comprobante.</xs:documentation>
1327- </xs:annotation>
1328- <xs:simpleType>
1329- <xs:restriction base="xs:string">
1330- <xs:minLength value="1"/>
1331- <xs:maxLength value="20"/>
1332- <xs:whiteSpace value="collapse"/>
1333- <xs:pattern value="[0-9]+"/>
1334- </xs:restriction>
1335- </xs:simpleType>
1336- </xs:attribute>
1337- <xs:attribute name="fecha" use="required">
1338- <xs:annotation>
1339- <xs:documentation>Atributo requerido para la expresión de la fecha y hora de expedición del comprobante fiscal. Se expresa en la forma aaaa-mm-ddThh:mm:ss, de acuerdo con la especificación ISO 8601.</xs:documentation>
1340- </xs:annotation>
1341- <xs:simpleType>
1342- <xs:restriction base="xs:dateTime">
1343- <xs:whiteSpace value="collapse"/>
1344- </xs:restriction>
1345- </xs:simpleType>
1346- </xs:attribute>
1347- <xs:attribute name="sello" use="required">
1348- <xs:annotation>
1349- <xs:documentation>Atributo requerido para contener el sello digital del comprobante fiscal, al que hacen referencia las reglas de resolución miscelánea aplicable. El sello deberá ser expresado cómo una cadena de texto en formato Base 64.</xs:documentation>
1350- </xs:annotation>
1351- <xs:simpleType>
1352- <xs:restriction base="xs:string">
1353- <xs:whiteSpace value="collapse"/>
1354- </xs:restriction>
1355- </xs:simpleType>
1356- </xs:attribute>
1357- <xs:attribute name="noAprobacion" use="required">
1358- <xs:annotation>
1359- <xs:documentation>Atributo requerido para precisar el número de aprobación emitido por el SAT, para el rango de folios al que pertenece el folio particular que ampara el comprobante fiscal digital.</xs:documentation>
1360- </xs:annotation>
1361- <xs:simpleType>
1362- <xs:restriction base="xs:integer">
1363- <xs:whiteSpace value="collapse"/>
1364- </xs:restriction>
1365- </xs:simpleType>
1366- </xs:attribute>
1367- <xs:attribute name="anoAprobacion" use="required">
1368- <xs:annotation>
1369- <xs:documentation>Atributo requerido para precisar el año en que se solicito el folio que se están utilizando para emitir el comprobante fiscal digital.</xs:documentation>
1370- </xs:annotation>
1371- <xs:simpleType>
1372- <xs:restriction base="xs:integer">
1373- <xs:whiteSpace value="collapse"/>
1374- <xs:totalDigits value="4"/>
1375- </xs:restriction>
1376- </xs:simpleType>
1377- </xs:attribute>
1378- <xs:attribute name="formaDePago" use="required">
1379- <xs:annotation>
1380- <xs:documentation>Atributo requerido para precisar la forma de pago que aplica para este comprobante fiscal digital. Se utiliza para expresar Pago en una sola exhibición o número de parcialidad pagada contra el total de parcialidades, Parcialidad 1 de X. </xs:documentation>
1381- </xs:annotation>
1382- <xs:simpleType>
1383- <xs:restriction base="xs:string">
1384- <xs:whiteSpace value="collapse"/>
1385- </xs:restriction>
1386- </xs:simpleType>
1387- </xs:attribute>
1388- <xs:attribute name="noCertificado" use="required">
1389- <xs:annotation>
1390- <xs:documentation> Atributo requerido para expresar el número de serie del certificado de sello digital que ampara al comprobante, de acuerdo al acuse correspondiente a 20 posiciones otorgado por el sistema del SAT.</xs:documentation>
1391- </xs:annotation>
1392- <xs:simpleType>
1393- <xs:restriction base="xs:string">
1394- <xs:length value="20"/>
1395- <xs:whiteSpace value="collapse"/>
1396- </xs:restriction>
1397- </xs:simpleType>
1398- </xs:attribute>
1399- <xs:attribute name="certificado" use="optional">
1400- <xs:annotation>
1401- <xs:documentation>Atributo opcional que sirve para expresar el certificado de sello digital que ampara al comprobante como texto, en formato base 64.</xs:documentation>
1402- </xs:annotation>
1403- <xs:simpleType>
1404- <xs:restriction base="xs:string">
1405- <xs:whiteSpace value="collapse"/>
1406- </xs:restriction>
1407- </xs:simpleType>
1408- </xs:attribute>
1409- <xs:attribute name="condicionesDePago" use="optional">
1410- <xs:annotation>
1411- <xs:documentation>Atributo opcional para expresar las condiciones comerciales aplicables para el pago del comprobante fiscal digital.</xs:documentation>
1412- </xs:annotation>
1413- <xs:simpleType>
1414- <xs:restriction base="xs:string">
1415- <xs:whiteSpace value="collapse"/>
1416- <xs:minLength value="1"/>
1417- </xs:restriction>
1418- </xs:simpleType>
1419- </xs:attribute>
1420- <xs:attribute name="subTotal" type="t_Importe" use="required">
1421- <xs:annotation>
1422- <xs:documentation>Atributo requerido para representar la suma de los importes antes de descuentos e impuestos.</xs:documentation>
1423- </xs:annotation>
1424- </xs:attribute>
1425- <xs:attribute name="descuento" type="t_Importe" use="optional">
1426- <xs:annotation>
1427- <xs:documentation>Atributo opcional para representar el importe total de los descuentos aplicables antes de impuestos.</xs:documentation>
1428- </xs:annotation>
1429- </xs:attribute>
1430- <xs:attribute name="motivoDescuento" use="optional">
1431- <xs:annotation>
1432- <xs:documentation>Atributo opcional para expresar el motivo del descuento aplicable.</xs:documentation>
1433- </xs:annotation>
1434- <xs:simpleType>
1435- <xs:restriction base="xs:string">
1436- <xs:minLength value="1"/>
1437- <xs:whiteSpace value="collapse"/>
1438- </xs:restriction>
1439- </xs:simpleType>
1440- </xs:attribute>
1441- <xs:attribute name="total" type="t_Importe" use="required">
1442- <xs:annotation>
1443- <xs:documentation>Atributo requerido para representar la suma del subtotal, menos los descuentos aplicables, más los impuestos trasladados, menos los impuestos retenidos.</xs:documentation>
1444- </xs:annotation>
1445- </xs:attribute>
1446- <xs:attribute name="metodoDePago" use="optional">
1447- <xs:annotation>
1448- <xs:documentation>Atributo opcional de texto libre para expresar el método de pago de los bienes o servicios amparados por el comprobante. Se entiende como método de pago leyendas tales como: cheque, tarjeta de crédito o debito, depósito en cuenta, etc.</xs:documentation>
1449- </xs:annotation>
1450- <xs:simpleType>
1451- <xs:restriction base="xs:string">
1452- <xs:minLength value="1"/>
1453- <xs:whiteSpace value="collapse"/>
1454- </xs:restriction>
1455- </xs:simpleType>
1456- </xs:attribute>
1457- <xs:attribute name="tipoDeComprobante" use="required">
1458- <xs:annotation>
1459- <xs:documentation>Atributo requerido para expresar el efecto del comprobante fiscal para el contribuyente emisor.</xs:documentation>
1460- </xs:annotation>
1461- <xs:simpleType>
1462- <xs:restriction base="xs:string">
1463- <xs:enumeration value="ingreso"/>
1464- <xs:enumeration value="egreso"/>
1465- <xs:enumeration value="traslado"/>
1466- </xs:restriction>
1467- </xs:simpleType>
1468- </xs:attribute>
1469- </xs:complexType>
1470- </xs:element>
1471- <xs:complexType name="t_Ubicacion">
1472- <xs:annotation>
1473- <xs:documentation>Tipo definido para expresar domicilios o direcciones</xs:documentation>
1474- </xs:annotation>
1475- <xs:attribute name="calle" use="optional">
1476- <xs:annotation>
1477- <xs:documentation>Este atributo opcional sirve para precisar la avenida, calle, camino o carretera donde se da la ubicación.</xs:documentation>
1478- </xs:annotation>
1479- <xs:simpleType>
1480- <xs:restriction base="xs:string">
1481- <xs:minLength value="1"/>
1482- <xs:whiteSpace value="collapse"/>
1483- </xs:restriction>
1484- </xs:simpleType>
1485- </xs:attribute>
1486- <xs:attribute name="noExterior" use="optional">
1487- <xs:annotation>
1488- <xs:documentation>Este atributo opcional sirve para expresar el número particular en donde se da la ubicación sobre una calle dada.</xs:documentation>
1489- </xs:annotation>
1490- <xs:simpleType>
1491- <xs:restriction base="xs:string">
1492- <xs:minLength value="1"/>
1493- <xs:whiteSpace value="collapse"/>
1494- </xs:restriction>
1495- </xs:simpleType>
1496- </xs:attribute>
1497- <xs:attribute name="noInterior" use="optional">
1498- <xs:annotation>
1499- <xs:documentation>Este atributo opcional sirve para expresar información adicional para especificar la ubicación cuando calle y número exterior (noExterior) no resulten suficientes para determinar la ubicación de forma precisa.</xs:documentation>
1500- </xs:annotation>
1501- <xs:simpleType>
1502- <xs:restriction base="xs:string">
1503- <xs:minLength value="1"/>
1504- <xs:whiteSpace value="collapse"/>
1505- </xs:restriction>
1506- </xs:simpleType>
1507- </xs:attribute>
1508- <xs:attribute name="colonia" use="optional">
1509- <xs:annotation>
1510- <xs:documentation>Este atributo opcional sirve para precisar la colonia en donde se da la ubicación cuando se desea ser más específico en casos de ubicaciones urbanas.</xs:documentation>
1511- </xs:annotation>
1512- <xs:simpleType>
1513- <xs:restriction base="xs:string">
1514- <xs:minLength value="1"/>
1515- <xs:whiteSpace value="collapse"/>
1516- </xs:restriction>
1517- </xs:simpleType>
1518- </xs:attribute>
1519- <xs:attribute name="localidad" use="optional">
1520- <xs:annotation>
1521- <xs:documentation>Atributo opcional que sirve para precisar la ciudad o población donde se da la ubicación.</xs:documentation>
1522- </xs:annotation>
1523- <xs:simpleType>
1524- <xs:restriction base="xs:string">
1525- <xs:minLength value="1"/>
1526- <xs:whiteSpace value="collapse"/>
1527- </xs:restriction>
1528- </xs:simpleType>
1529- </xs:attribute>
1530- <xs:attribute name="referencia" use="optional">
1531- <xs:annotation>
1532- <xs:documentation>Atributo opcional para expresar una referencia de ubicación adicional.</xs:documentation>
1533- </xs:annotation>
1534- <xs:simpleType>
1535- <xs:restriction base="xs:string">
1536- <xs:minLength value="1"/>
1537- <xs:whiteSpace value="collapse"/>
1538- </xs:restriction>
1539- </xs:simpleType>
1540- </xs:attribute>
1541- <xs:attribute name="municipio" use="optional">
1542- <xs:annotation>
1543- <xs:documentation>Atributo opcional que sirve para precisar el municipio o delegación (en el caso del Distrito Federal) en donde se da la ubicación.</xs:documentation>
1544- </xs:annotation>
1545- <xs:simpleType>
1546- <xs:restriction base="xs:string">
1547- <xs:minLength value="1"/>
1548- <xs:whiteSpace value="collapse"/>
1549- </xs:restriction>
1550- </xs:simpleType>
1551- </xs:attribute>
1552- <xs:attribute name="estado" use="optional">
1553- <xs:annotation>
1554- <xs:documentation>Atributo opcional que sirve para precisar el estado o entidad federativa donde se da la ubicación.</xs:documentation>
1555- </xs:annotation>
1556- <xs:simpleType>
1557- <xs:restriction base="xs:string">
1558- <xs:minLength value="1"/>
1559- <xs:whiteSpace value="collapse"/>
1560- </xs:restriction>
1561- </xs:simpleType>
1562- </xs:attribute>
1563- <xs:attribute name="pais" use="required">
1564- <xs:annotation>
1565- <xs:documentation>Atributo requerido que sirve para precisar el país donde se da la ubicación.</xs:documentation>
1566- </xs:annotation>
1567- <xs:simpleType>
1568- <xs:restriction base="xs:string">
1569- <xs:minLength value="1"/>
1570- <xs:whiteSpace value="collapse"/>
1571- </xs:restriction>
1572- </xs:simpleType>
1573- </xs:attribute>
1574- <xs:attribute name="codigoPostal" use="optional">
1575- <xs:annotation>
1576- <xs:documentation>Atributo opcional que sirve para asentar el código postal en donde se da la ubicación.</xs:documentation>
1577- </xs:annotation>
1578- <xs:simpleType>
1579- <xs:restriction base="xs:string">
1580- <xs:whiteSpace value="collapse"/>
1581- </xs:restriction>
1582- </xs:simpleType>
1583- </xs:attribute>
1584- </xs:complexType>
1585- <xs:complexType name="t_UbicacionFiscal">
1586- <xs:annotation>
1587- <xs:documentation>Tipo definido para expresar domicilios o direcciones</xs:documentation>
1588- </xs:annotation>
1589- <xs:attribute name="calle" use="required">
1590- <xs:annotation>
1591- <xs:documentation>Este atributo requerido sirve para precisar la avenida, calle, camino o carretera donde se da la ubicación.</xs:documentation>
1592- </xs:annotation>
1593- <xs:simpleType>
1594- <xs:restriction base="xs:string">
1595- <xs:minLength value="1"/>
1596- <xs:whiteSpace value="collapse"/>
1597- </xs:restriction>
1598- </xs:simpleType>
1599- </xs:attribute>
1600- <xs:attribute name="noExterior" use="optional">
1601- <xs:annotation>
1602- <xs:documentation>Este atributo opcional sirve para expresar el número particular en donde se da la ubicación sobre una calle dada.</xs:documentation>
1603- </xs:annotation>
1604- <xs:simpleType>
1605- <xs:restriction base="xs:string">
1606- <xs:minLength value="1"/>
1607- <xs:whiteSpace value="collapse"/>
1608- </xs:restriction>
1609- </xs:simpleType>
1610- </xs:attribute>
1611- <xs:attribute name="noInterior" use="optional">
1612- <xs:annotation>
1613- <xs:documentation>Este atributo opcional sirve para expresar información adicional para especificar la ubicación cuando calle y número exterior (noExterior) no resulten suficientes para determinar la ubicación de forma precisa.</xs:documentation>
1614- </xs:annotation>
1615- <xs:simpleType>
1616- <xs:restriction base="xs:string">
1617- <xs:minLength value="1"/>
1618- <xs:whiteSpace value="collapse"/>
1619- </xs:restriction>
1620- </xs:simpleType>
1621- </xs:attribute>
1622- <xs:attribute name="colonia" use="optional">
1623- <xs:annotation>
1624- <xs:documentation>Este atributo opcional sirve para precisar la colonia en donde se da la ubicación cuando se desea ser más específico en casos de ubicaciones urbanas.</xs:documentation>
1625- </xs:annotation>
1626- <xs:simpleType>
1627- <xs:restriction base="xs:string">
1628- <xs:minLength value="1"/>
1629- <xs:whiteSpace value="collapse"/>
1630- </xs:restriction>
1631- </xs:simpleType>
1632- </xs:attribute>
1633- <xs:attribute name="localidad" use="optional">
1634- <xs:annotation>
1635- <xs:documentation>Atributo opcional que sirve para precisar la ciudad o población donde se da la ubicación.</xs:documentation>
1636- </xs:annotation>
1637- <xs:simpleType>
1638- <xs:restriction base="xs:string">
1639- <xs:minLength value="1"/>
1640- <xs:whiteSpace value="collapse"/>
1641- </xs:restriction>
1642- </xs:simpleType>
1643- </xs:attribute>
1644- <xs:attribute name="referencia" use="optional">
1645- <xs:annotation>
1646- <xs:documentation>Atributo opcional para expresar una referencia de ubicación adicional.</xs:documentation>
1647- </xs:annotation>
1648- <xs:simpleType>
1649- <xs:restriction base="xs:string">
1650- <xs:whiteSpace value="collapse"/>
1651- <xs:minLength value="1"/>
1652- </xs:restriction>
1653- </xs:simpleType>
1654- </xs:attribute>
1655- <xs:attribute name="municipio" use="required">
1656- <xs:annotation>
1657- <xs:documentation>Atributo requerido que sirve para precisar el municipio o delegación (en el caso del Distrito Federal) en donde se da la ubicación.</xs:documentation>
1658- </xs:annotation>
1659- <xs:simpleType>
1660- <xs:restriction base="xs:string">
1661- <xs:minLength value="1"/>
1662- <xs:whiteSpace value="collapse"/>
1663- </xs:restriction>
1664- </xs:simpleType>
1665- </xs:attribute>
1666- <xs:attribute name="estado" use="required">
1667- <xs:annotation>
1668- <xs:documentation>Atributo requerido que sirve para precisar el estado o entidad federativa donde se da la ubicación.</xs:documentation>
1669- </xs:annotation>
1670- <xs:simpleType>
1671- <xs:restriction base="xs:string">
1672- <xs:minLength value="1"/>
1673- <xs:whiteSpace value="collapse"/>
1674- </xs:restriction>
1675- </xs:simpleType>
1676- </xs:attribute>
1677- <xs:attribute name="pais" use="required">
1678- <xs:annotation>
1679- <xs:documentation>Atributo requerido que sirve para precisar el país donde se da la ubicación.</xs:documentation>
1680- </xs:annotation>
1681- <xs:simpleType>
1682- <xs:restriction base="xs:string">
1683- <xs:minLength value="1"/>
1684- <xs:whiteSpace value="collapse"/>
1685- </xs:restriction>
1686- </xs:simpleType>
1687- </xs:attribute>
1688- <xs:attribute name="codigoPostal" use="required">
1689- <xs:annotation>
1690- <xs:documentation>Atributo requerido que sirve para asentar el código postal en donde se da la ubicación.</xs:documentation>
1691- </xs:annotation>
1692- <xs:simpleType>
1693- <xs:restriction base="xs:string">
1694- <xs:whiteSpace value="collapse"/>
1695- <xs:length value="5"/>
1696- </xs:restriction>
1697- </xs:simpleType>
1698- </xs:attribute>
1699- </xs:complexType>
1700- <xs:simpleType name="t_RFC">
1701- <xs:annotation>
1702- <xs:documentation>Tipo definido para expresar claves del Registro Federal de Contribuyentes</xs:documentation>
1703- </xs:annotation>
1704- <xs:restriction base="xs:string">
1705- <xs:minLength value="12"/>
1706- <xs:maxLength value="13"/>
1707- <xs:whiteSpace value="collapse"/>
1708- </xs:restriction>
1709- </xs:simpleType>
1710- <xs:simpleType name="t_Importe">
1711- <xs:annotation>
1712- <xs:documentation>Tipo definido para expresar importes numéricos con fracción a seis decimales</xs:documentation>
1713- </xs:annotation>
1714- <xs:restriction base="xs:decimal">
1715- <xs:fractionDigits value="6"/>
1716- <xs:whiteSpace value="collapse"/>
1717- </xs:restriction>
1718- </xs:simpleType>
1719- <xs:complexType name="t_InformacionAduanera">
1720- <xs:annotation>
1721- <xs:documentation>Tipo definido para expresar información aduanera</xs:documentation>
1722- </xs:annotation>
1723- <xs:attribute name="numero" use="required">
1724- <xs:annotation>
1725- <xs:documentation>Atributo requerido para expresar el número del documento aduanero que ampara la importación del bien.</xs:documentation>
1726- </xs:annotation>
1727- <xs:simpleType>
1728- <xs:restriction base="xs:string">
1729- <xs:minLength value="1"/>
1730- <xs:whiteSpace value="collapse"/>
1731- </xs:restriction>
1732- </xs:simpleType>
1733- </xs:attribute>
1734- <xs:attribute name="fecha" use="required">
1735- <xs:annotation>
1736- <xs:documentation>Atributo requerido para expresar la fecha de expedición del documento aduanero que ampara la importación del bien. Se expresa en el formato aaaa-mm-dd</xs:documentation>
1737- </xs:annotation>
1738- <xs:simpleType>
1739- <xs:restriction base="xs:date">
1740- <xs:whiteSpace value="collapse"/>
1741- </xs:restriction>
1742- </xs:simpleType>
1743- </xs:attribute>
1744- <xs:attribute name="aduana" use="required">
1745- <xs:annotation>
1746- <xs:documentation>Atributo requerido para precisar la aduana por la que se efectuó la importación del bien.</xs:documentation>
1747- </xs:annotation>
1748- <xs:simpleType>
1749- <xs:restriction base="xs:string">
1750- <xs:minLength value="1"/>
1751- <xs:whiteSpace value="collapse"/>
1752- </xs:restriction>
1753- </xs:simpleType>
1754- </xs:attribute>
1755- </xs:complexType>
1756-</xs:schema>
1757
1758=== added file 'l10n_mx_facturae/SAT/cfdv3.2.xsd'
1759--- l10n_mx_facturae/SAT/cfdv3.2.xsd 1970-01-01 00:00:00 +0000
1760+++ l10n_mx_facturae/SAT/cfdv3.2.xsd 2013-09-25 00:33:17 +0000
1761@@ -0,0 +1,903 @@
1762+<?xml version="1.0" encoding="UTF-8"?>
1763+<!-- edited with XMLSpy v2010 rel. 3 (http://www.altova.com) by SAT (SAT) -->
1764+<xs:schema xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.sat.gob.mx/cfd/3" elementFormDefault="qualified" attributeFormDefault="unqualified">
1765+ <xs:element name="Comprobante">
1766+ <xs:annotation>
1767+ <xs:documentation>Estándar de Comprobante fiscal digital a través de Internet.</xs:documentation>
1768+ </xs:annotation>
1769+ <xs:complexType>
1770+ <xs:sequence>
1771+ <xs:element name="Emisor">
1772+ <xs:annotation>
1773+ <xs:documentation>Nodo requerido para expresar la información del contribuyente emisor del comprobante.</xs:documentation>
1774+ </xs:annotation>
1775+ <xs:complexType>
1776+ <xs:sequence>
1777+ <xs:element name="DomicilioFiscal" type="cfdi:t_UbicacionFiscal" minOccurs="0">
1778+ <xs:annotation>
1779+ <xs:documentation>Nodo opcional para precisar la información de ubicación del domicilio fiscal del contribuyente emisor</xs:documentation>
1780+ </xs:annotation>
1781+ </xs:element>
1782+ <xs:element name="ExpedidoEn" type="cfdi:t_Ubicacion" minOccurs="0">
1783+ <xs:annotation>
1784+ <xs:documentation>Nodo opcional para precisar la información de ubicación del domicilio en donde es emitido el comprobante fiscal en caso de que sea distinto del domicilio fiscal del contribuyente emisor.</xs:documentation>
1785+ </xs:annotation>
1786+ </xs:element>
1787+ <xs:sequence>
1788+ <xs:element name="RegimenFiscal" maxOccurs="unbounded">
1789+ <xs:annotation>
1790+ <xs:documentation>Nodo requerido para incorporar los regímenes en los que tributa el contribuyente emisor. Puede contener más de un régimen.</xs:documentation>
1791+ </xs:annotation>
1792+ <xs:complexType>
1793+ <xs:attribute name="Regimen" use="required">
1794+ <xs:annotation>
1795+ <xs:documentation>Atributo requerido para incorporar el nombre del régimen en el que tributa el contribuyente emisor.</xs:documentation>
1796+ </xs:annotation>
1797+ <xs:simpleType>
1798+ <xs:restriction base="xs:string">
1799+ <xs:minLength value="1"/>
1800+ <xs:whiteSpace value="collapse"/>
1801+ </xs:restriction>
1802+ </xs:simpleType>
1803+ </xs:attribute>
1804+ </xs:complexType>
1805+ </xs:element>
1806+ </xs:sequence>
1807+ </xs:sequence>
1808+ <xs:attribute name="rfc" type="cfdi:t_RFC" use="required">
1809+ <xs:annotation>
1810+ <xs:documentation>Atributo requerido para la Clave del Registro Federal de Contribuyentes correspondiente al contribuyente emisor del comprobante sin guiones o espacios.</xs:documentation>
1811+ </xs:annotation>
1812+ </xs:attribute>
1813+ <xs:attribute name="nombre">
1814+ <xs:annotation>
1815+ <xs:documentation>Atributo opcional para el nombre, denominación o razón social del contribuyente emisor del comprobante.</xs:documentation>
1816+ </xs:annotation>
1817+ <xs:simpleType>
1818+ <xs:restriction base="xs:string">
1819+ <xs:minLength value="1"/>
1820+ <xs:whiteSpace value="collapse"/>
1821+ </xs:restriction>
1822+ </xs:simpleType>
1823+ </xs:attribute>
1824+ </xs:complexType>
1825+ </xs:element>
1826+ <xs:element name="Receptor">
1827+ <xs:annotation>
1828+ <xs:documentation>Nodo requerido para precisar la información del contribuyente receptor del comprobante.</xs:documentation>
1829+ </xs:annotation>
1830+ <xs:complexType>
1831+ <xs:sequence>
1832+ <xs:element name="Domicilio" type="cfdi:t_Ubicacion" minOccurs="0">
1833+ <xs:annotation>
1834+ <xs:documentation>Nodo opcional para la definición de la ubicación donde se da el domicilio del receptor del comprobante fiscal.</xs:documentation>
1835+ </xs:annotation>
1836+ </xs:element>
1837+ </xs:sequence>
1838+ <xs:attribute name="rfc" type="cfdi:t_RFC" use="required">
1839+ <xs:annotation>
1840+ <xs:documentation>Atributo requerido para precisar la Clave del Registro Federal de Contribuyentes correspondiente al contribuyente receptor del comprobante.</xs:documentation>
1841+ </xs:annotation>
1842+ </xs:attribute>
1843+ <xs:attribute name="nombre" use="optional">
1844+ <xs:annotation>
1845+ <xs:documentation>Atributo opcional para el nombre, denominación o razón social del contribuyente receptor del comprobante.</xs:documentation>
1846+ </xs:annotation>
1847+ <xs:simpleType>
1848+ <xs:restriction base="xs:string">
1849+ <xs:minLength value="1"/>
1850+ <xs:whiteSpace value="collapse"/>
1851+ </xs:restriction>
1852+ </xs:simpleType>
1853+ </xs:attribute>
1854+ </xs:complexType>
1855+ </xs:element>
1856+ <xs:element name="Conceptos">
1857+ <xs:annotation>
1858+ <xs:documentation>Nodo requerido para enlistar los conceptos cubiertos por el comprobante.</xs:documentation>
1859+ </xs:annotation>
1860+ <xs:complexType>
1861+ <xs:sequence>
1862+ <xs:element name="Concepto" maxOccurs="unbounded">
1863+ <xs:annotation>
1864+ <xs:documentation>Nodo para introducir la información detallada de un bien o servicio amparado en el comprobante.</xs:documentation>
1865+ </xs:annotation>
1866+ <xs:complexType>
1867+ <xs:choice minOccurs="0">
1868+ <xs:element name="InformacionAduanera" type="cfdi:t_InformacionAduanera" minOccurs="0" maxOccurs="unbounded">
1869+ <xs:annotation>
1870+ <xs:documentation>Nodo opcional para introducir la información aduanera aplicable cuando se trate de ventas de primera mano de mercancías importadas.</xs:documentation>
1871+ </xs:annotation>
1872+ </xs:element>
1873+ <xs:element name="CuentaPredial" minOccurs="0">
1874+ <xs:annotation>
1875+ <xs:documentation>Nodo opcional para asentar el número de cuenta predial con el que fue registrado el inmueble, en el sistema catastral de la entidad federativa de que trate, o bien para incorporar los datos de identificación del certificado de participación inmobiliaria no amortizable.</xs:documentation>
1876+ </xs:annotation>
1877+ <xs:complexType>
1878+ <xs:attribute name="numero" use="required">
1879+ <xs:annotation>
1880+ <xs:documentation>Atributo requerido para precisar el número de la cuenta predial del inmueble cubierto por el presente concepto, o bien para incorporar los datos de identificación del certificado de participación inmobiliaria no amortizable, tratándose de arrendamiento.</xs:documentation>
1881+ </xs:annotation>
1882+ <xs:simpleType>
1883+ <xs:restriction base="xs:string">
1884+ <xs:whiteSpace value="collapse"/>
1885+ <xs:minLength value="1"/>
1886+ </xs:restriction>
1887+ </xs:simpleType>
1888+ </xs:attribute>
1889+ </xs:complexType>
1890+ </xs:element>
1891+ <xs:element name="ComplementoConcepto" minOccurs="0">
1892+ <xs:annotation>
1893+ <xs:documentation>Nodo opcional donde se incluirán los nodos complementarios de extensión al concepto, definidos por el SAT, de acuerdo a disposiciones particulares a un sector o actividad especifica.</xs:documentation>
1894+ </xs:annotation>
1895+ <xs:complexType>
1896+ <xs:sequence>
1897+ <xs:any minOccurs="0" maxOccurs="unbounded"/>
1898+ </xs:sequence>
1899+ </xs:complexType>
1900+ </xs:element>
1901+ <xs:element name="Parte" minOccurs="0" maxOccurs="unbounded">
1902+ <xs:annotation>
1903+ <xs:documentation>Nodo opcional para expresar las partes o componentes que integran la totalidad del concepto expresado en el comprobante fiscal digital a través de Internet</xs:documentation>
1904+ </xs:annotation>
1905+ <xs:complexType>
1906+ <xs:sequence>
1907+ <xs:element name="InformacionAduanera" type="cfdi:t_InformacionAduanera" minOccurs="0" maxOccurs="unbounded">
1908+ <xs:annotation>
1909+ <xs:documentation>Nodo opcional para introducir la información aduanera aplicable cuando se trate de partes o componentes importados vendidos de primera mano.</xs:documentation>
1910+ </xs:annotation>
1911+ </xs:element>
1912+ </xs:sequence>
1913+ <xs:attribute name="cantidad" use="required">
1914+ <xs:annotation>
1915+ <xs:documentation>Atributo requerido para precisar la cantidad de bienes o servicios del tipo particular definido por la presente parte.</xs:documentation>
1916+ </xs:annotation>
1917+ <xs:simpleType>
1918+ <xs:restriction base="xs:decimal">
1919+ <xs:whiteSpace value="collapse"/>
1920+ </xs:restriction>
1921+ </xs:simpleType>
1922+ </xs:attribute>
1923+ <xs:attribute name="unidad" use="optional">
1924+ <xs:annotation>
1925+ <xs:documentation>Atributo opcional para precisar la unidad de medida aplicable para la cantidad expresada en la parte.</xs:documentation>
1926+ </xs:annotation>
1927+ <xs:simpleType>
1928+ <xs:restriction base="xs:string">
1929+ <xs:whiteSpace value="collapse"/>
1930+ <xs:minLength value="1"/>
1931+ </xs:restriction>
1932+ </xs:simpleType>
1933+ </xs:attribute>
1934+ <xs:attribute name="noIdentificacion" use="optional">
1935+ <xs:annotation>
1936+ <xs:documentation>Atributo opcional para expresar el número de serie del bien o identificador del servicio amparado por la presente parte.</xs:documentation>
1937+ </xs:annotation>
1938+ <xs:simpleType>
1939+ <xs:restriction base="xs:string">
1940+ <xs:minLength value="1"/>
1941+ <xs:whiteSpace value="collapse"/>
1942+ </xs:restriction>
1943+ </xs:simpleType>
1944+ </xs:attribute>
1945+ <xs:attribute name="descripcion" use="required">
1946+ <xs:annotation>
1947+ <xs:documentation>Atributo requerido para precisar la descripción del bien o servicio cubierto por la presente parte.</xs:documentation>
1948+ </xs:annotation>
1949+ <xs:simpleType>
1950+ <xs:restriction base="xs:string">
1951+ <xs:minLength value="1"/>
1952+ <xs:whiteSpace value="collapse"/>
1953+ </xs:restriction>
1954+ </xs:simpleType>
1955+ </xs:attribute>
1956+ <xs:attribute name="valorUnitario" type="cfdi:t_Importe" use="optional">
1957+ <xs:annotation>
1958+ <xs:documentation>Atributo opcional para precisar el valor o precio unitario del bien o servicio cubierto por la presente parte.</xs:documentation>
1959+ </xs:annotation>
1960+ </xs:attribute>
1961+ <xs:attribute name="importe" type="cfdi:t_Importe" use="optional">
1962+ <xs:annotation>
1963+ <xs:documentation>Atributo opcional para precisar el importe total de los bienes o servicios de la presente parte. Debe ser equivalente al resultado de multiplicar la cantidad por el valor unitario expresado en la parte.</xs:documentation>
1964+ </xs:annotation>
1965+ </xs:attribute>
1966+ </xs:complexType>
1967+ </xs:element>
1968+ </xs:choice>
1969+ <xs:attribute name="cantidad" use="required">
1970+ <xs:annotation>
1971+ <xs:documentation>Atributo requerido para precisar la cantidad de bienes o servicios del tipo particular definido por el presente concepto.</xs:documentation>
1972+ </xs:annotation>
1973+ <xs:simpleType>
1974+ <xs:restriction base="xs:decimal">
1975+ <xs:whiteSpace value="collapse"/>
1976+ </xs:restriction>
1977+ </xs:simpleType>
1978+ </xs:attribute>
1979+ <xs:attribute name="unidad" use="required">
1980+ <xs:annotation>
1981+ <xs:documentation>Atributo requerido para precisar la unidad de medida aplicable para la cantidad expresada en el concepto.</xs:documentation>
1982+ </xs:annotation>
1983+ <xs:simpleType>
1984+ <xs:restriction base="xs:string">
1985+ <xs:whiteSpace value="collapse"/>
1986+ <xs:minLength value="1"/>
1987+ </xs:restriction>
1988+ </xs:simpleType>
1989+ </xs:attribute>
1990+ <xs:attribute name="noIdentificacion" use="optional">
1991+ <xs:annotation>
1992+ <xs:documentation>Atributo opcional para expresar el número de serie del bien o identificador del servicio amparado por el presente concepto.</xs:documentation>
1993+ </xs:annotation>
1994+ <xs:simpleType>
1995+ <xs:restriction base="xs:string">
1996+ <xs:minLength value="1"/>
1997+ <xs:whiteSpace value="collapse"/>
1998+ </xs:restriction>
1999+ </xs:simpleType>
2000+ </xs:attribute>
2001+ <xs:attribute name="descripcion" use="required">
2002+ <xs:annotation>
2003+ <xs:documentation>Atributo requerido para precisar la descripción del bien o servicio cubierto por el presente concepto.</xs:documentation>
2004+ </xs:annotation>
2005+ <xs:simpleType>
2006+ <xs:restriction base="xs:string">
2007+ <xs:minLength value="1"/>
2008+ <xs:whiteSpace value="collapse"/>
2009+ </xs:restriction>
2010+ </xs:simpleType>
2011+ </xs:attribute>
2012+ <xs:attribute name="valorUnitario" type="cfdi:t_Importe" use="required">
2013+ <xs:annotation>
2014+ <xs:documentation>Atributo requerido para precisar el valor o precio unitario del bien o servicio cubierto por el presente concepto.</xs:documentation>
2015+ </xs:annotation>
2016+ </xs:attribute>
2017+ <xs:attribute name="importe" type="cfdi:t_Importe" use="required">
2018+ <xs:annotation>
2019+ <xs:documentation>Atributo requerido para precisar el importe total de los bienes o servicios del presente concepto. Debe ser equivalente al resultado de multiplicar la cantidad por el valor unitario expresado en el concepto.</xs:documentation>
2020+ </xs:annotation>
2021+ </xs:attribute>
2022+ </xs:complexType>
2023+ </xs:element>
2024+ </xs:sequence>
2025+ </xs:complexType>
2026+ </xs:element>
2027+ <xs:element name="Impuestos">
2028+ <xs:annotation>
2029+ <xs:documentation>Nodo requerido para capturar los impuestos aplicables.</xs:documentation>
2030+ </xs:annotation>
2031+ <xs:complexType>
2032+ <xs:sequence>
2033+ <xs:element name="Retenciones" minOccurs="0">
2034+ <xs:annotation>
2035+ <xs:documentation>Nodo opcional para capturar los impuestos retenidos aplicables</xs:documentation>
2036+ </xs:annotation>
2037+ <xs:complexType>
2038+ <xs:sequence>
2039+ <xs:element name="Retencion" maxOccurs="unbounded">
2040+ <xs:annotation>
2041+ <xs:documentation>Nodo para la información detallada de una retención de impuesto específico</xs:documentation>
2042+ </xs:annotation>
2043+ <xs:complexType>
2044+ <xs:attribute name="impuesto" use="required">
2045+ <xs:annotation>
2046+ <xs:documentation>Atributo requerido para señalar el tipo de impuesto retenido</xs:documentation>
2047+ </xs:annotation>
2048+ <xs:simpleType>
2049+ <xs:restriction base="xs:string">
2050+ <xs:whiteSpace value="collapse"/>
2051+ <xs:enumeration value="ISR">
2052+ <xs:annotation>
2053+ <xs:documentation>Impuesto sobre la renta</xs:documentation>
2054+ </xs:annotation>
2055+ </xs:enumeration>
2056+ <xs:enumeration value="IVA">
2057+ <xs:annotation>
2058+ <xs:documentation>Impuesto al Valor Agregado</xs:documentation>
2059+ </xs:annotation>
2060+ </xs:enumeration>
2061+ </xs:restriction>
2062+ </xs:simpleType>
2063+ </xs:attribute>
2064+ <xs:attribute name="importe" type="cfdi:t_Importe" use="required">
2065+ <xs:annotation>
2066+ <xs:documentation>Atributo requerido para señalar el importe o monto del impuesto retenido</xs:documentation>
2067+ </xs:annotation>
2068+ </xs:attribute>
2069+ </xs:complexType>
2070+ </xs:element>
2071+ </xs:sequence>
2072+ </xs:complexType>
2073+ </xs:element>
2074+ <xs:element name="Traslados" minOccurs="0">
2075+ <xs:annotation>
2076+ <xs:documentation>Nodo opcional para asentar o referir los impuestos trasladados aplicables</xs:documentation>
2077+ </xs:annotation>
2078+ <xs:complexType>
2079+ <xs:sequence>
2080+ <xs:element name="Traslado" maxOccurs="unbounded">
2081+ <xs:annotation>
2082+ <xs:documentation>Nodo para la información detallada de un traslado de impuesto específico</xs:documentation>
2083+ </xs:annotation>
2084+ <xs:complexType>
2085+ <xs:attribute name="impuesto" use="required">
2086+ <xs:annotation>
2087+ <xs:documentation>Atributo requerido para señalar el tipo de impuesto trasladado</xs:documentation>
2088+ </xs:annotation>
2089+ <xs:simpleType>
2090+ <xs:restriction base="xs:string">
2091+ <xs:whiteSpace value="collapse"/>
2092+ <xs:enumeration value="IVA">
2093+ <xs:annotation>
2094+ <xs:documentation>Impuesto al Valor Agregado</xs:documentation>
2095+ </xs:annotation>
2096+ </xs:enumeration>
2097+ <xs:enumeration value="IEPS">
2098+ <xs:annotation>
2099+ <xs:documentation>Impuesto especial sobre productos y servicios</xs:documentation>
2100+ </xs:annotation>
2101+ </xs:enumeration>
2102+ </xs:restriction>
2103+ </xs:simpleType>
2104+ </xs:attribute>
2105+ <xs:attribute name="tasa" type="cfdi:t_Importe" use="required">
2106+ <xs:annotation>
2107+ <xs:documentation>Atributo requerido para señalar la tasa del impuesto que se traslada por cada concepto amparado en el comprobante</xs:documentation>
2108+ </xs:annotation>
2109+ </xs:attribute>
2110+ <xs:attribute name="importe" type="cfdi:t_Importe" use="required">
2111+ <xs:annotation>
2112+ <xs:documentation>Atributo requerido para señalar el importe del impuesto trasladado</xs:documentation>
2113+ </xs:annotation>
2114+ </xs:attribute>
2115+ </xs:complexType>
2116+ </xs:element>
2117+ </xs:sequence>
2118+ </xs:complexType>
2119+ </xs:element>
2120+ </xs:sequence>
2121+ <xs:attribute name="totalImpuestosRetenidos" type="cfdi:t_Importe" use="optional">
2122+ <xs:annotation>
2123+ <xs:documentation>Atributo opcional para expresar el total de los impuestos retenidos que se desprenden de los conceptos expresados en el comprobante fiscal digital a través de Internet.</xs:documentation>
2124+ </xs:annotation>
2125+ </xs:attribute>
2126+ <xs:attribute name="totalImpuestosTrasladados" type="cfdi:t_Importe" use="optional">
2127+ <xs:annotation>
2128+ <xs:documentation>Atributo opcional para expresar el total de los impuestos trasladados que se desprenden de los conceptos expresados en el comprobante fiscal digital a través de Internet.</xs:documentation>
2129+ </xs:annotation>
2130+ </xs:attribute>
2131+ </xs:complexType>
2132+ </xs:element>
2133+ <xs:element name="Complemento" minOccurs="0">
2134+ <xs:annotation>
2135+ <xs:documentation>Nodo opcional donde se incluirá el complemento Timbre Fiscal Digital de manera obligatoria y los nodos complementarios determinados por el SAT, de acuerdo a las disposiciones particulares a un sector o actividad específica.</xs:documentation>
2136+ </xs:annotation>
2137+ <xs:complexType>
2138+ <xs:sequence>
2139+ <xs:any minOccurs="0" maxOccurs="unbounded"/>
2140+ </xs:sequence>
2141+ </xs:complexType>
2142+ </xs:element>
2143+ <xs:element name="Addenda" minOccurs="0">
2144+ <xs:annotation>
2145+ <xs:documentation>Nodo opcional para recibir las extensiones al presente formato que sean de utilidad al contribuyente. Para las reglas de uso del mismo, referirse al formato de origen.</xs:documentation>
2146+ </xs:annotation>
2147+ <xs:complexType>
2148+ <xs:sequence>
2149+ <xs:any minOccurs="0" maxOccurs="unbounded"/>
2150+ </xs:sequence>
2151+ </xs:complexType>
2152+ </xs:element>
2153+ </xs:sequence>
2154+ <xs:attribute name="version" use="required" fixed="3.2">
2155+ <xs:annotation>
2156+ <xs:documentation>Atributo requerido con valor prefijado a 3.2 que indica la versión del estándar bajo el que se encuentra expresado el comprobante.</xs:documentation>
2157+ </xs:annotation>
2158+ <xs:simpleType>
2159+ <xs:restriction base="xs:string">
2160+ <xs:whiteSpace value="collapse"/>
2161+ </xs:restriction>
2162+ </xs:simpleType>
2163+ </xs:attribute>
2164+ <xs:attribute name="serie" use="optional">
2165+ <xs:annotation>
2166+ <xs:documentation>Atributo opcional para precisar la serie para control interno del contribuyente. Este atributo acepta una cadena de caracteres alfabéticos de 1 a 25 caracteres sin incluir caracteres acentuados.</xs:documentation>
2167+ </xs:annotation>
2168+ <xs:simpleType>
2169+ <xs:restriction base="xs:string">
2170+ <xs:minLength value="1"/>
2171+ <xs:maxLength value="25"/>
2172+ <xs:whiteSpace value="collapse"/>
2173+ </xs:restriction>
2174+ </xs:simpleType>
2175+ </xs:attribute>
2176+ <xs:attribute name="folio">
2177+ <xs:annotation>
2178+ <xs:documentation>Atributo opcional para control interno del contribuyente que acepta un valor numérico entero superior a 0 que expresa el folio del comprobante.</xs:documentation>
2179+ </xs:annotation>
2180+ <xs:simpleType>
2181+ <xs:restriction base="xs:string">
2182+ <xs:minLength value="1"/>
2183+ <xs:maxLength value="20"/>
2184+ <xs:whiteSpace value="collapse"/>
2185+ </xs:restriction>
2186+ </xs:simpleType>
2187+ </xs:attribute>
2188+ <xs:attribute name="fecha" use="required">
2189+ <xs:annotation>
2190+ <xs:documentation>Atributo requerido para la expresión de la fecha y hora de expedición del comprobante fiscal. Se expresa en la forma aaaa-mm-ddThh:mm:ss, de acuerdo con la especificación ISO 8601.</xs:documentation>
2191+ </xs:annotation>
2192+ <xs:simpleType>
2193+ <xs:restriction base="xs:dateTime">
2194+ <xs:whiteSpace value="collapse"/>
2195+ </xs:restriction>
2196+ </xs:simpleType>
2197+ </xs:attribute>
2198+ <xs:attribute name="sello" use="required">
2199+ <xs:annotation>
2200+ <xs:documentation>Atributo requerido para contener el sello digital del comprobante fiscal, al que hacen referencia las reglas de resolución miscelánea aplicable. El sello deberá ser expresado cómo una cadena de texto en formato Base 64.</xs:documentation>
2201+ </xs:annotation>
2202+ <xs:simpleType>
2203+ <xs:restriction base="xs:string">
2204+ <xs:whiteSpace value="collapse"/>
2205+ </xs:restriction>
2206+ </xs:simpleType>
2207+ </xs:attribute>
2208+ <xs:attribute name="formaDePago" use="required">
2209+ <xs:annotation>
2210+ <xs:documentation>Atributo requerido para precisar la forma de pago que aplica para este comprobnante fiscal digital a través de Internet. Se utiliza para expresar Pago en una sola exhibición o número de parcialidad pagada contra el total de parcialidades, Parcialidad 1 de X. </xs:documentation>
2211+ </xs:annotation>
2212+ <xs:simpleType>
2213+ <xs:restriction base="xs:string">
2214+ <xs:whiteSpace value="collapse"/>
2215+ </xs:restriction>
2216+ </xs:simpleType>
2217+ </xs:attribute>
2218+ <xs:attribute name="noCertificado" use="required">
2219+ <xs:annotation>
2220+ <xs:documentation> Atributo requerido para expresar el número de serie del certificado de sello digital que ampara al comprobante, de acuerdo al acuse correspondiente a 20 posiciones otorgado por el sistema del SAT.</xs:documentation>
2221+ </xs:annotation>
2222+ <xs:simpleType>
2223+ <xs:restriction base="xs:string">
2224+ <xs:length value="20"/>
2225+ <xs:whiteSpace value="collapse"/>
2226+ </xs:restriction>
2227+ </xs:simpleType>
2228+ </xs:attribute>
2229+ <xs:attribute name="certificado" use="required">
2230+ <xs:annotation>
2231+ <xs:documentation>Atributo requerido que sirve para expresar el certificado de sello digital que ampara al comprobante como texto, en formato base 64.</xs:documentation>
2232+ </xs:annotation>
2233+ <xs:simpleType>
2234+ <xs:restriction base="xs:string">
2235+ <xs:whiteSpace value="collapse"/>
2236+ </xs:restriction>
2237+ </xs:simpleType>
2238+ </xs:attribute>
2239+ <xs:attribute name="condicionesDePago" use="optional">
2240+ <xs:annotation>
2241+ <xs:documentation>Atributo opcional para expresar las condiciones comerciales aplicables para el pago del comprobante fiscal digital a través de Internet.</xs:documentation>
2242+ </xs:annotation>
2243+ <xs:simpleType>
2244+ <xs:restriction base="xs:string">
2245+ <xs:whiteSpace value="collapse"/>
2246+ <xs:minLength value="1"/>
2247+ </xs:restriction>
2248+ </xs:simpleType>
2249+ </xs:attribute>
2250+ <xs:attribute name="subTotal" type="cfdi:t_Importe" use="required">
2251+ <xs:annotation>
2252+ <xs:documentation>Atributo requerido para representar la suma de los importes antes de descuentos e impuestos.</xs:documentation>
2253+ </xs:annotation>
2254+ </xs:attribute>
2255+ <xs:attribute name="descuento" type="cfdi:t_Importe" use="optional">
2256+ <xs:annotation>
2257+ <xs:documentation>Atributo opcional para representar el importe total de los descuentos aplicables antes de impuestos.</xs:documentation>
2258+ </xs:annotation>
2259+ </xs:attribute>
2260+ <xs:attribute name="motivoDescuento" use="optional">
2261+ <xs:annotation>
2262+ <xs:documentation>Atributo opcional para expresar el motivo del descuento aplicable.</xs:documentation>
2263+ </xs:annotation>
2264+ <xs:simpleType>
2265+ <xs:restriction base="xs:string">
2266+ <xs:minLength value="1"/>
2267+ <xs:whiteSpace value="collapse"/>
2268+ </xs:restriction>
2269+ </xs:simpleType>
2270+ </xs:attribute>
2271+ <xs:attribute name="TipoCambio">
2272+ <xs:annotation>
2273+ <xs:documentation>Atributo opcional para representar el tipo de cambio conforme a la moneda usada</xs:documentation>
2274+ </xs:annotation>
2275+ <xs:simpleType>
2276+ <xs:restriction base="xs:string">
2277+ <xs:whiteSpace value="collapse"/>
2278+ </xs:restriction>
2279+ </xs:simpleType>
2280+ </xs:attribute>
2281+ <xs:attribute name="Moneda">
2282+ <xs:annotation>
2283+ <xs:documentation>Atributo opcional para expresar la moneda utilizada para expresar los montos </xs:documentation>
2284+ </xs:annotation>
2285+ <xs:simpleType>
2286+ <xs:restriction base="xs:string">
2287+ <xs:whiteSpace value="collapse"/>
2288+ </xs:restriction>
2289+ </xs:simpleType>
2290+ </xs:attribute>
2291+ <xs:attribute name="total" type="cfdi:t_Importe" use="required">
2292+ <xs:annotation>
2293+ <xs:documentation>Atributo requerido para representar la suma del subtotal, menos los descuentos aplicables, más los impuestos trasladados, menos los impuestos retenidos.</xs:documentation>
2294+ </xs:annotation>
2295+ </xs:attribute>
2296+ <xs:attribute name="tipoDeComprobante" use="required">
2297+ <xs:annotation>
2298+ <xs:documentation>Atributo requerido para expresar el efecto del comprobante fiscal para el contribuyente emisor.</xs:documentation>
2299+ </xs:annotation>
2300+ <xs:simpleType>
2301+ <xs:restriction base="xs:string">
2302+ <xs:enumeration value="ingreso"/>
2303+ <xs:enumeration value="egreso"/>
2304+ <xs:enumeration value="traslado"/>
2305+ </xs:restriction>
2306+ </xs:simpleType>
2307+ </xs:attribute>
2308+ <xs:attribute name="metodoDePago" use="required">
2309+ <xs:annotation>
2310+ <xs:documentation>Atributo requerido de texto libre para expresar el método de pago de los bienes o servicios amparados por el comprobante. Se entiende como método de pago leyendas tales como: cheque, tarjeta de crédito o debito, depósito en cuenta, etc.</xs:documentation>
2311+ </xs:annotation>
2312+ <xs:simpleType>
2313+ <xs:restriction base="xs:string">
2314+ <xs:minLength value="1"/>
2315+ <xs:whiteSpace value="collapse"/>
2316+ </xs:restriction>
2317+ </xs:simpleType>
2318+ </xs:attribute>
2319+ <xs:attribute name="LugarExpedicion" use="required">
2320+ <xs:annotation>
2321+ <xs:documentation>Atributo requerido para incorporar el lugar de expedición del comprobante.</xs:documentation>
2322+ </xs:annotation>
2323+ <xs:simpleType>
2324+ <xs:restriction base="xs:string">
2325+ <xs:minLength value="1"/>
2326+ <xs:whiteSpace value="collapse"/>
2327+ </xs:restriction>
2328+ </xs:simpleType>
2329+ </xs:attribute>
2330+ <xs:attribute name="NumCtaPago">
2331+ <xs:annotation>
2332+ <xs:documentation>Atributo Opcional para incorporar al menos los cuatro últimos digitos del número de cuenta con la que se realizó el pago.</xs:documentation>
2333+ </xs:annotation>
2334+ <xs:simpleType>
2335+ <xs:restriction base="xs:string">
2336+ <xs:minLength value="4"/>
2337+ <xs:whiteSpace value="collapse"/>
2338+ </xs:restriction>
2339+ </xs:simpleType>
2340+ </xs:attribute>
2341+ <xs:attribute name="FolioFiscalOrig">
2342+ <xs:annotation>
2343+ <xs:documentation>Atributo opcional para señalar el número de folio fiscal del comprobante que se hubiese expedido por el valor total del comprobante, tratándose del pago en parcialidades.</xs:documentation>
2344+ </xs:annotation>
2345+ <xs:simpleType>
2346+ <xs:restriction base="xs:string">
2347+ <xs:whiteSpace value="collapse"/>
2348+ </xs:restriction>
2349+ </xs:simpleType>
2350+ </xs:attribute>
2351+ <xs:attribute name="SerieFolioFiscalOrig">
2352+ <xs:annotation>
2353+ <xs:documentation>Atributo opcional para señalar la serie del folio del comprobante que se hubiese expedido por el valor total del comprobante, tratándose del pago en parcialidades.</xs:documentation>
2354+ </xs:annotation>
2355+ <xs:simpleType>
2356+ <xs:restriction base="xs:string">
2357+ <xs:whiteSpace value="collapse"/>
2358+ </xs:restriction>
2359+ </xs:simpleType>
2360+ </xs:attribute>
2361+ <xs:attribute name="FechaFolioFiscalOrig">
2362+ <xs:annotation>
2363+ <xs:documentation>Atributo opcional para señalar la fecha de expedición del comprobante que se hubiese emitido por el valor total del comprobante, tratándose del pago en parcialidades. Se expresa en la forma aaaa-mm-ddThh:mm:ss, de acuerdo con la especificación ISO 8601.</xs:documentation>
2364+ </xs:annotation>
2365+ <xs:simpleType>
2366+ <xs:restriction base="xs:dateTime">
2367+ <xs:whiteSpace value="collapse"/>
2368+ </xs:restriction>
2369+ </xs:simpleType>
2370+ </xs:attribute>
2371+ <xs:attribute name="MontoFolioFiscalOrig" type="cfdi:t_Importe">
2372+ <xs:annotation>
2373+ <xs:documentation>Atributo opcional para señalar el total del comprobante que se hubiese expedido por el valor total de la operación, tratándose del pago en parcialidades</xs:documentation>
2374+ </xs:annotation>
2375+ </xs:attribute>
2376+ </xs:complexType>
2377+ </xs:element>
2378+ <xs:complexType name="t_Ubicacion">
2379+ <xs:annotation>
2380+ <xs:documentation>Tipo definido para expresar domicilios o direcciones</xs:documentation>
2381+ </xs:annotation>
2382+ <xs:attribute name="calle" use="optional">
2383+ <xs:annotation>
2384+ <xs:documentation>Este atributo opcional sirve para precisar la avenida, calle, camino o carretera donde se da la ubicación.</xs:documentation>
2385+ </xs:annotation>
2386+ <xs:simpleType>
2387+ <xs:restriction base="xs:string">
2388+ <xs:minLength value="1"/>
2389+ <xs:whiteSpace value="collapse"/>
2390+ </xs:restriction>
2391+ </xs:simpleType>
2392+ </xs:attribute>
2393+ <xs:attribute name="noExterior" use="optional">
2394+ <xs:annotation>
2395+ <xs:documentation>Este atributo opcional sirve para expresar el número particular en donde se da la ubicación sobre una calle dada.</xs:documentation>
2396+ </xs:annotation>
2397+ <xs:simpleType>
2398+ <xs:restriction base="xs:string">
2399+ <xs:minLength value="1"/>
2400+ <xs:whiteSpace value="collapse"/>
2401+ </xs:restriction>
2402+ </xs:simpleType>
2403+ </xs:attribute>
2404+ <xs:attribute name="noInterior" use="optional">
2405+ <xs:annotation>
2406+ <xs:documentation>Este atributo opcional sirve para expresar información adicional para especificar la ubicación cuando calle y número exterior (noExterior) no resulten suficientes para determinar la ubicación de forma precisa.</xs:documentation>
2407+ </xs:annotation>
2408+ <xs:simpleType>
2409+ <xs:restriction base="xs:string">
2410+ <xs:minLength value="1"/>
2411+ <xs:whiteSpace value="collapse"/>
2412+ </xs:restriction>
2413+ </xs:simpleType>
2414+ </xs:attribute>
2415+ <xs:attribute name="colonia" use="optional">
2416+ <xs:annotation>
2417+ <xs:documentation>Este atributo opcional sirve para precisar la colonia en donde se da la ubicación cuando se desea ser más específico en casos de ubicaciones urbanas.</xs:documentation>
2418+ </xs:annotation>
2419+ <xs:simpleType>
2420+ <xs:restriction base="xs:string">
2421+ <xs:minLength value="1"/>
2422+ <xs:whiteSpace value="collapse"/>
2423+ </xs:restriction>
2424+ </xs:simpleType>
2425+ </xs:attribute>
2426+ <xs:attribute name="localidad" use="optional">
2427+ <xs:annotation>
2428+ <xs:documentation>Atributo opcional que sirve para precisar la ciudad o población donde se da la ubicación.</xs:documentation>
2429+ </xs:annotation>
2430+ <xs:simpleType>
2431+ <xs:restriction base="xs:string">
2432+ <xs:minLength value="1"/>
2433+ <xs:whiteSpace value="collapse"/>
2434+ </xs:restriction>
2435+ </xs:simpleType>
2436+ </xs:attribute>
2437+ <xs:attribute name="referencia" use="optional">
2438+ <xs:annotation>
2439+ <xs:documentation>Atributo opcional para expresar una referencia de ubicación adicional.</xs:documentation>
2440+ </xs:annotation>
2441+ <xs:simpleType>
2442+ <xs:restriction base="xs:string">
2443+ <xs:minLength value="1"/>
2444+ <xs:whiteSpace value="collapse"/>
2445+ </xs:restriction>
2446+ </xs:simpleType>
2447+ </xs:attribute>
2448+ <xs:attribute name="municipio" use="optional">
2449+ <xs:annotation>
2450+ <xs:documentation>Atributo opcional que sirve para precisar el municipio o delegación (en el caso del Distrito Federal) en donde se da la ubicación.</xs:documentation>
2451+ </xs:annotation>
2452+ <xs:simpleType>
2453+ <xs:restriction base="xs:string">
2454+ <xs:minLength value="1"/>
2455+ <xs:whiteSpace value="collapse"/>
2456+ </xs:restriction>
2457+ </xs:simpleType>
2458+ </xs:attribute>
2459+ <xs:attribute name="estado" use="optional">
2460+ <xs:annotation>
2461+ <xs:documentation>Atributo opcional que sirve para precisar el estado o entidad federativa donde se da la ubicación.</xs:documentation>
2462+ </xs:annotation>
2463+ <xs:simpleType>
2464+ <xs:restriction base="xs:string">
2465+ <xs:minLength value="1"/>
2466+ <xs:whiteSpace value="collapse"/>
2467+ </xs:restriction>
2468+ </xs:simpleType>
2469+ </xs:attribute>
2470+ <xs:attribute name="pais" use="required">
2471+ <xs:annotation>
2472+ <xs:documentation>Atributo requerido que sirve para precisar el país donde se da la ubicación.</xs:documentation>
2473+ </xs:annotation>
2474+ <xs:simpleType>
2475+ <xs:restriction base="xs:string">
2476+ <xs:minLength value="1"/>
2477+ <xs:whiteSpace value="collapse"/>
2478+ </xs:restriction>
2479+ </xs:simpleType>
2480+ </xs:attribute>
2481+ <xs:attribute name="codigoPostal" use="optional">
2482+ <xs:annotation>
2483+ <xs:documentation>Atributo opcional que sirve para asentar el código postal en donde se da la ubicación.</xs:documentation>
2484+ </xs:annotation>
2485+ <xs:simpleType>
2486+ <xs:restriction base="xs:string">
2487+ <xs:whiteSpace value="collapse"/>
2488+ </xs:restriction>
2489+ </xs:simpleType>
2490+ </xs:attribute>
2491+ </xs:complexType>
2492+ <xs:complexType name="t_UbicacionFiscal">
2493+ <xs:annotation>
2494+ <xs:documentation>Tipo definido para expresar domicilios o direcciones</xs:documentation>
2495+ </xs:annotation>
2496+ <xs:attribute name="calle" use="required">
2497+ <xs:annotation>
2498+ <xs:documentation>Este atributo requerido sirve para precisar la avenida, calle, camino o carretera donde se da la ubicación.</xs:documentation>
2499+ </xs:annotation>
2500+ <xs:simpleType>
2501+ <xs:restriction base="xs:string">
2502+ <xs:minLength value="1"/>
2503+ <xs:whiteSpace value="collapse"/>
2504+ </xs:restriction>
2505+ </xs:simpleType>
2506+ </xs:attribute>
2507+ <xs:attribute name="noExterior" use="optional">
2508+ <xs:annotation>
2509+ <xs:documentation>Este atributo opcional sirve para expresar el número particular en donde se da la ubicación sobre una calle dada.</xs:documentation>
2510+ </xs:annotation>
2511+ <xs:simpleType>
2512+ <xs:restriction base="xs:string">
2513+ <xs:minLength value="1"/>
2514+ <xs:whiteSpace value="collapse"/>
2515+ </xs:restriction>
2516+ </xs:simpleType>
2517+ </xs:attribute>
2518+ <xs:attribute name="noInterior" use="optional">
2519+ <xs:annotation>
2520+ <xs:documentation>Este atributo opcional sirve para expresar información adicional para especificar la ubicación cuando calle y número exterior (noExterior) no resulten suficientes para determinar la ubicación de forma precisa.</xs:documentation>
2521+ </xs:annotation>
2522+ <xs:simpleType>
2523+ <xs:restriction base="xs:string">
2524+ <xs:minLength value="1"/>
2525+ <xs:whiteSpace value="collapse"/>
2526+ </xs:restriction>
2527+ </xs:simpleType>
2528+ </xs:attribute>
2529+ <xs:attribute name="colonia" use="optional">
2530+ <xs:annotation>
2531+ <xs:documentation>Este atributo opcional sirve para precisar la colonia en donde se da la ubicación cuando se desea ser más específico en casos de ubicaciones urbanas.</xs:documentation>
2532+ </xs:annotation>
2533+ <xs:simpleType>
2534+ <xs:restriction base="xs:string">
2535+ <xs:minLength value="1"/>
2536+ <xs:whiteSpace value="collapse"/>
2537+ </xs:restriction>
2538+ </xs:simpleType>
2539+ </xs:attribute>
2540+ <xs:attribute name="localidad" use="optional">
2541+ <xs:annotation>
2542+ <xs:documentation>Atributo opcional que sirve para precisar la ciudad o población donde se da la ubicación.</xs:documentation>
2543+ </xs:annotation>
2544+ <xs:simpleType>
2545+ <xs:restriction base="xs:string">
2546+ <xs:minLength value="1"/>
2547+ <xs:whiteSpace value="collapse"/>
2548+ </xs:restriction>
2549+ </xs:simpleType>
2550+ </xs:attribute>
2551+ <xs:attribute name="referencia" use="optional">
2552+ <xs:annotation>
2553+ <xs:documentation>Atributo opcional para expresar una referencia de ubicación adicional.</xs:documentation>
2554+ </xs:annotation>
2555+ <xs:simpleType>
2556+ <xs:restriction base="xs:string">
2557+ <xs:whiteSpace value="collapse"/>
2558+ <xs:minLength value="1"/>
2559+ </xs:restriction>
2560+ </xs:simpleType>
2561+ </xs:attribute>
2562+ <xs:attribute name="municipio" use="required">
2563+ <xs:annotation>
2564+ <xs:documentation>Atributo requerido que sirve para precisar el municipio o delegación (en el caso del Distrito Federal) en donde se da la ubicación.</xs:documentation>
2565+ </xs:annotation>
2566+ <xs:simpleType>
2567+ <xs:restriction base="xs:string">
2568+ <xs:minLength value="1"/>
2569+ <xs:whiteSpace value="collapse"/>
2570+ </xs:restriction>
2571+ </xs:simpleType>
2572+ </xs:attribute>
2573+ <xs:attribute name="estado" use="required">
2574+ <xs:annotation>
2575+ <xs:documentation>Atributo requerido que sirve para precisar el estado o entidad federativa donde se da la ubicación.</xs:documentation>
2576+ </xs:annotation>
2577+ <xs:simpleType>
2578+ <xs:restriction base="xs:string">
2579+ <xs:minLength value="1"/>
2580+ <xs:whiteSpace value="collapse"/>
2581+ </xs:restriction>
2582+ </xs:simpleType>
2583+ </xs:attribute>
2584+ <xs:attribute name="pais" use="required">
2585+ <xs:annotation>
2586+ <xs:documentation>Atributo requerido que sirve para precisar el país donde se da la ubicación.</xs:documentation>
2587+ </xs:annotation>
2588+ <xs:simpleType>
2589+ <xs:restriction base="xs:string">
2590+ <xs:minLength value="1"/>
2591+ <xs:whiteSpace value="collapse"/>
2592+ </xs:restriction>
2593+ </xs:simpleType>
2594+ </xs:attribute>
2595+ <xs:attribute name="codigoPostal" use="required">
2596+ <xs:annotation>
2597+ <xs:documentation>Atributo requerido que sirve para asentar el código postal en donde se da la ubicación.</xs:documentation>
2598+ </xs:annotation>
2599+ <xs:simpleType>
2600+ <xs:restriction base="xs:string">
2601+ <xs:whiteSpace value="collapse"/>
2602+ <xs:length value="5"/>
2603+ </xs:restriction>
2604+ </xs:simpleType>
2605+ </xs:attribute>
2606+ </xs:complexType>
2607+ <xs:simpleType name="t_RFC">
2608+ <xs:annotation>
2609+ <xs:documentation>Tipo definido para expresar claves del Registro Federal de Contribuyentes</xs:documentation>
2610+ </xs:annotation>
2611+ <xs:restriction base="xs:string">
2612+ <xs:minLength value="12"/>
2613+ <xs:maxLength value="13"/>
2614+ <xs:whiteSpace value="collapse"/>
2615+ <xs:pattern value="[A-Z,Ñ,&amp;]{3,4}[0-9]{2}[0-1][0-9][0-3][0-9][A-Z,0-9]?[A-Z,0-9]?[0-9,A-Z]?"/>
2616+ </xs:restriction>
2617+ </xs:simpleType>
2618+ <xs:simpleType name="t_Importe">
2619+ <xs:annotation>
2620+ <xs:documentation>Tipo definido para expresar importes numéricos con fracción hasta seis decimales</xs:documentation>
2621+ </xs:annotation>
2622+ <xs:restriction base="xs:decimal">
2623+ <xs:fractionDigits value="6"/>
2624+ <xs:whiteSpace value="collapse"/>
2625+ </xs:restriction>
2626+ </xs:simpleType>
2627+ <xs:complexType name="t_InformacionAduanera">
2628+ <xs:annotation>
2629+ <xs:documentation>Tipo definido para expresar información aduanera</xs:documentation>
2630+ </xs:annotation>
2631+ <xs:attribute name="numero" use="required">
2632+ <xs:annotation>
2633+ <xs:documentation>Atributo requerido para expresar el número del documento aduanero que ampara la importación del bien.</xs:documentation>
2634+ </xs:annotation>
2635+ <xs:simpleType>
2636+ <xs:restriction base="xs:string">
2637+ <xs:minLength value="1"/>
2638+ <xs:whiteSpace value="collapse"/>
2639+ </xs:restriction>
2640+ </xs:simpleType>
2641+ </xs:attribute>
2642+ <xs:attribute name="fecha" use="required">
2643+ <xs:annotation>
2644+ <xs:documentation>Atributo requerido para expresar la fecha de expedición del documento aduanero que ampara la importación del bien. Se expresa en el formato aaaa-mm-dd</xs:documentation>
2645+ </xs:annotation>
2646+ <xs:simpleType>
2647+ <xs:restriction base="xs:date">
2648+ <xs:whiteSpace value="collapse"/>
2649+ </xs:restriction>
2650+ </xs:simpleType>
2651+ </xs:attribute>
2652+ <xs:attribute name="aduana">
2653+ <xs:annotation>
2654+ <xs:documentation>Atributo opcional para precisar el nombre de la aduana por la que se efectuó la importación del bien.</xs:documentation>
2655+ </xs:annotation>
2656+ <xs:simpleType>
2657+ <xs:restriction base="xs:string">
2658+ <xs:minLength value="1"/>
2659+ <xs:whiteSpace value="collapse"/>
2660+ </xs:restriction>
2661+ </xs:simpleType>
2662+ </xs:attribute>
2663+ </xs:complexType>
2664+</xs:schema>
2665
2666=== added directory 'l10n_mx_facturae/depends_app/xmlstarlet_win'
2667=== added file 'l10n_mx_facturae/depends_app/xmlstarlet_win/AUTHORS'
2668--- l10n_mx_facturae/depends_app/xmlstarlet_win/AUTHORS 1970-01-01 00:00:00 +0000
2669+++ l10n_mx_facturae/depends_app/xmlstarlet_win/AUTHORS 2013-09-25 00:33:17 +0000
2670@@ -0,0 +1,1 @@
2671+Mikhail Grushinskiy <mgrouch@users.sourceforge.net>
2672
2673=== added file 'l10n_mx_facturae/depends_app/xmlstarlet_win/COPYING'
2674--- l10n_mx_facturae/depends_app/xmlstarlet_win/COPYING 1970-01-01 00:00:00 +0000
2675+++ l10n_mx_facturae/depends_app/xmlstarlet_win/COPYING 2013-09-25 00:33:17 +0000
2676@@ -0,0 +1,20 @@
2677+Copyright (c) 2002-2004 Mikhail Grushinskiy. All Rights Reserved.
2678+
2679+Permission is hereby granted, free of charge, to any person obtaining a copy
2680+of this software and associated documentation files (the "Software"), to deal
2681+in the Software without restriction, including without limitation the rights
2682+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
2683+copies of the Software, and to permit persons to whom the Software is
2684+furnished to do so, subject to the following conditions:
2685+
2686+The above copyright notice and this permission notice shall be included in
2687+all copies or substantial portions of the Software.
2688+
2689+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
2690+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2691+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
2692+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
2693+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
2694+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2695+THE SOFTWARE.
2696+
2697
2698=== added file 'l10n_mx_facturae/depends_app/xmlstarlet_win/ChangeLog'
2699--- l10n_mx_facturae/depends_app/xmlstarlet_win/ChangeLog 1970-01-01 00:00:00 +0000
2700+++ l10n_mx_facturae/depends_app/xmlstarlet_win/ChangeLog 2013-09-25 00:33:17 +0000
2701@@ -0,0 +1,1 @@
2702+
2703
2704=== added file 'l10n_mx_facturae/depends_app/xmlstarlet_win/Copyright'
2705--- l10n_mx_facturae/depends_app/xmlstarlet_win/Copyright 1970-01-01 00:00:00 +0000
2706+++ l10n_mx_facturae/depends_app/xmlstarlet_win/Copyright 2013-09-25 00:33:17 +0000
2707@@ -0,0 +1,20 @@
2708+Copyright (c) 2002-2004 Mikhail Grushinskiy. All Rights Reserved.
2709+
2710+Permission is hereby granted, free of charge, to any person obtaining a copy
2711+of this software and associated documentation files (the "Software"), to deal
2712+in the Software without restriction, including without limitation the rights
2713+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
2714+copies of the Software, and to permit persons to whom the Software is
2715+furnished to do so, subject to the following conditions:
2716+
2717+The above copyright notice and this permission notice shall be included in
2718+all copies or substantial portions of the Software.
2719+
2720+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
2721+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2722+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
2723+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
2724+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
2725+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2726+THE SOFTWARE.
2727+
2728
2729=== added file 'l10n_mx_facturae/depends_app/xmlstarlet_win/INSTALL'
2730--- l10n_mx_facturae/depends_app/xmlstarlet_win/INSTALL 1970-01-01 00:00:00 +0000
2731+++ l10n_mx_facturae/depends_app/xmlstarlet_win/INSTALL 2013-09-25 00:33:17 +0000
2732@@ -0,0 +1,183 @@
2733+Basic Installation
2734+==================
2735+
2736+ These are generic installation instructions.
2737+
2738+ The `configure' shell script attempts to guess correct values for
2739+various system-dependent variables used during compilation. It uses
2740+those values to create a `Makefile' in each directory of the package.
2741+It may also create one or more `.h' files containing system-dependent
2742+definitions. Finally, it creates a shell script `config.status' that
2743+you can run in the future to recreate the current configuration, a file
2744+`config.cache' that saves the results of its tests to speed up
2745+reconfiguring, and a file `config.log' containing compiler output
2746+(useful mainly for debugging `configure').
2747+
2748+ If you need to do unusual things to compile the package, please try
2749+to figure out how `configure' could check whether to do them, and mail
2750+diffs or instructions to the address given in the `README' so they can
2751+be considered for the next release. If at some point `config.cache'
2752+contains results you don't want to keep, you may remove or edit it.
2753+
2754+ The file `configure.in' is used to create `configure' by a program
2755+called `autoconf'. You only need `configure.in' if you want to change
2756+it or regenerate `configure' using a newer version of `autoconf'.
2757+
2758+The simplest way to compile this package is:
2759+
2760+ 1. `cd' to the directory containing the package's source code and type
2761+ `./configure' to configure the package for your system. If you're
2762+ using `csh' on an old version of System V, you might need to type
2763+ `sh ./configure' instead to prevent `csh' from trying to execute
2764+ `configure' itself.
2765+
2766+ Running `configure' takes awhile. While running, it prints some
2767+ messages telling which features it is checking for.
2768+
2769+ 2. Type `make' to compile the package.
2770+
2771+ 3. Optionally, type `make check' to run any self-tests that come with
2772+ the package.
2773+
2774+ 4. Type `make install' to install the programs and any data files and
2775+ documentation.
2776+
2777+ 5. You can remove the program binaries and object files from the
2778+ source code directory by typing `make clean'. To also remove the
2779+ files that `configure' created (so you can compile the package for
2780+ a different kind of computer), type `make distclean'. There is
2781+ also a `make maintainer-clean' target, but that is intended mainly
2782+ for the package's developers. If you use it, you may have to get
2783+ all sorts of other programs in order to regenerate files that came
2784+ with the distribution.
2785+
2786+Compilers and Options
2787+=====================
2788+
2789+ Some systems require unusual options for compilation or linking that
2790+the `configure' script does not know about. You can give `configure'
2791+initial values for variables by setting them in the environment. Using
2792+a Bourne-compatible shell, you can do that on the command line like
2793+this:
2794+ CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
2795+
2796+Or on systems that have the `env' program, you can do it like this:
2797+ env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
2798+
2799+Compiling For Multiple Architectures
2800+====================================
2801+
2802+ You can compile the package for more than one kind of computer at the
2803+same time, by placing the object files for each architecture in their
2804+own directory. To do this, you must use a version of `make' that
2805+supports the `VPATH' variable, such as GNU `make'. `cd' to the
2806+directory where you want the object files and executables to go and run
2807+the `configure' script. `configure' automatically checks for the
2808+source code in the directory that `configure' is in and in `..'.
2809+
2810+ If you have to use a `make' that does not supports the `VPATH'
2811+variable, you have to compile the package for one architecture at a time
2812+in the source code directory. After you have installed the package for
2813+one architecture, use `make distclean' before reconfiguring for another
2814+architecture.
2815+
2816+Installation Names
2817+==================
2818+
2819+ By default, `make install' will install the package's files in
2820+`/usr/local/bin', `/usr/local/man', etc. You can specify an
2821+installation prefix other than `/usr/local' by giving `configure' the
2822+option `--prefix=PATH'.
2823+
2824+ You can specify separate installation prefixes for
2825+architecture-specific files and architecture-independent files. If you
2826+give `configure' the option `--exec-prefix=PATH', the package will use
2827+PATH as the prefix for installing programs and libraries.
2828+Documentation and other data files will still use the regular prefix.
2829+
2830+ In addition, if you use an unusual directory layout you can give
2831+options like `--bindir=PATH' to specify different values for particular
2832+kinds of files. Run `configure --help' for a list of the directories
2833+you can set and what kinds of files go in them.
2834+
2835+ If the package supports it, you can cause programs to be installed
2836+with an extra prefix or suffix on their names by giving `configure' the
2837+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
2838+
2839+Optional Features
2840+=================
2841+
2842+ Some packages pay attention to `--enable-FEATURE' options to
2843+`configure', where FEATURE indicates an optional part of the package.
2844+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
2845+is something like `gnu-as' or `x' (for the X Window System). The
2846+`README' should mention any `--enable-' and `--with-' options that the
2847+package recognizes.
2848+
2849+ For packages that use the X Window System, `configure' can usually
2850+find the X include and library files automatically, but if it doesn't,
2851+you can use the `configure' options `--x-includes=DIR' and
2852+`--x-libraries=DIR' to specify their locations.
2853+
2854+Specifying the System Type
2855+==========================
2856+
2857+ There may be some features `configure' can not figure out
2858+automatically, but needs to determine by the type of host the package
2859+will run on. Usually `configure' can figure that out, but if it prints
2860+a message saying it can not guess the host type, give it the
2861+`--host=TYPE' option. TYPE can either be a short name for the system
2862+type, such as `sun4', or a canonical name with three fields:
2863+ CPU-COMPANY-SYSTEM
2864+
2865+See the file `config.sub' for the possible values of each field. If
2866+`config.sub' isn't included in this package, then this package doesn't
2867+need to know the host type.
2868+
2869+ If you are building compiler tools for cross-compiling, you can also
2870+use the `--target=TYPE' option to select the type of system they will
2871+produce code for and the `--build=TYPE' option to select the type of
2872+system on which you are compiling the package.
2873+
2874+Sharing Defaults
2875+================
2876+
2877+ If you want to set default values for `configure' scripts to share,
2878+you can create a site shell script called `config.site' that gives
2879+default values for variables like `CC', `cache_file', and `prefix'.
2880+`configure' looks for `PREFIX/share/config.site' if it exists, then
2881+`PREFIX/etc/config.site' if it exists. Or, you can set the
2882+`CONFIG_SITE' environment variable to the location of the site script.
2883+A warning: not all `configure' scripts look for a site script.
2884+
2885+Operation Controls
2886+==================
2887+
2888+ `configure' recognizes the following options to control how it
2889+operates.
2890+
2891+`--cache-file=FILE'
2892+ Use and save the results of the tests in FILE instead of
2893+ `./config.cache'. Set FILE to `/dev/null' to disable caching, for
2894+ debugging `configure'.
2895+
2896+`--help'
2897+ Print a summary of the options to `configure', and exit.
2898+
2899+`--quiet'
2900+`--silent'
2901+`-q'
2902+ Do not print messages saying which checks are being made. To
2903+ suppress all normal output, redirect it to `/dev/null' (any error
2904+ messages will still be shown).
2905+
2906+`--srcdir=DIR'
2907+ Look for the package's source code in directory DIR. Usually
2908+ `configure' can determine that directory automatically.
2909+
2910+`--version'
2911+ Print the version of Autoconf used to generate the `configure'
2912+ script, and exit.
2913+
2914+`configure' also accepts some other, not widely useful, options.
2915+
2916
2917=== added file 'l10n_mx_facturae/depends_app/xmlstarlet_win/NEWS'
2918--- l10n_mx_facturae/depends_app/xmlstarlet_win/NEWS 1970-01-01 00:00:00 +0000
2919+++ l10n_mx_facturae/depends_app/xmlstarlet_win/NEWS 2013-09-25 00:33:17 +0000
2920@@ -0,0 +1,205 @@
2921+1.5.0: Jul 7, 2013
2922+
2923+ - Bugs:
2924+ - avoid segfault on pyx non-existant file
2925+ - fix unescaping of entities straddling 4K byte boundary (Bug #102)
2926+ - Enhancements:
2927+ - unescape hex entities (&#xXX;)
2928+ - give a helpful message if doc has default namespace and
2929+ nothing matched
2930+ - add "_" and "DEFAULT" as names for document's top-level
2931+ default namespace
2932+ - Adding a global quiet option
2933+ - ed: Allow omitting value argument to create empty element.
2934+ - use default attribute values in sel subcommand
2935+ - Build:
2936+ - fix test variables to work with newer automake (1.11 -> 1.13)
2937+ - fix usage2c.awk for mawk
2938+ - scripts for building on mingw
2939+
2940+
2941+1.4.2: Dec 28, 2012
2942+
2943+ - pyx: avoid segfault on documents with multiple attributes (Bug
2944+ #3595212)
2945+
2946+
2947+1.4.1: Dec 8, 2012
2948+
2949+ - avoid segfault when attempting to edit the document node (Bug
2950+ #3575722)
2951+
2952+ - Packaging:
2953+ - include doc/xmlstar-fodoc-style.xsl in the dist so that the
2954+ --enable-build-docs option works from the tarball (Bug
2955+ #3580667)
2956+ - AC_SUBST PACKAGE_TARNAME for automake so that documentation is
2957+ installed to the right place (Bug #3561958)
2958+
2959+ - Test Suite:
2960+ - avoid test failures due to XML formatting and whitespace
2961+ changes (also fixes Bug #3572789)
2962+ - use automake's parallel test suite
2963+ - make bigxml tests much faster by using whitespace instead of nodes
2964+ - don't test str:replace() with ed: it doesn't work outside of
2965+ xslt in new libxslt
2966+ - ignore extra errors from libxml 2.9.0 bug
2967+ - let tests run using busybox
2968+ - add runAllTests.sh to run tests without make
2969+
2970+
2971+1.4.0: Aug 26, 2012
2972+
2973+ - Documentation:
2974+ - executable name used in documentation now matches
2975+ --transform-program-name (Bug #3283713)
2976+ - added Makefile rules for generating documentation
2977+ (./configure --enable-build-docs)
2978+
2979+ - ed subcommand:
2980+ - relative XPaths are now handled correctly (Bug #3527850)
2981+ - the last nodeset inserted by an edit operation can be
2982+ accessed as the XPath variable $prev (or $xstar:prev)
2983+ - add --var option to define XPath variables
2984+ - allow ed -u -x to insert nodesets instead of converting to
2985+ string
2986+ - remove hard limit for number of edit operations (Bug
2987+ #3488240)
2988+
2989+ - pyx now handles namespaces correctly
2990+
2991+1.3.1: Jan 14, 2012
2992+
2993+ - handle multiple values for --value-of properly (Bug #2563866)
2994+ - substitute external entities (Bug #3467320)
2995+ - pyx output needs space between attribute name and value (Bug #3440797)
2996+
2997+
2998+1.3.0: Oct 7, 2011
2999+
3000+ - avoid ASCII CRs in UTF-16/32 text (reported by Ming Chen)
3001+ - --value-of outputs concat values of all nodes (Req #2563866)
3002+ - encode special chars for ed -u -x
3003+ - allow use of exslt functions in ed -u -x
3004+ - add --var to select (allow --var <name>=<value> as well as --var
3005+ <name> <value> --break)
3006+ - work around libxml bug that passes bogus data to error handler
3007+ (Bug #3362217)
3008+
3009+
3010+1.2.1: July 07, 2011
3011+
3012+ - check for NULL nodeset result (Bugs #3323189, #3323196)
3013+ - "-" was being confused with --elif
3014+ - generated XSLT should also have automatic namespaces
3015+ - allow -N after other option (Bug #3325166)
3016+ - namespace values were being registered as prefixes
3017+ - avoid segfault when asked to move namespace nodes
3018+ - missing newline in ed --help message
3019+ - test scripts portability
3020+ - no bashisms allowed in NetBSD sh
3021+ - make BRE portable: '+' is not allowed
3022+ - deal with msys path conversion properly (Bug #3178657)
3023+ - don't use XML_SAVE_WSNONSIG #if libxml < 2.7.8 (Bug #3310475)
3024+
3025+
3026+1.2.0: June 1, 2011
3027+
3028+ - implement ed --update --expr
3029+ - use top-level namespace definitions from first input file, this
3030+ should remove the need to define namespaces on the command line
3031+ with -N in most cases.
3032+ - select exits with 0 only if result is non-empty (Req #3155702)
3033+ - add -Q to select, like grep's -q
3034+ - add column number to error messages
3035+ - restore input context (lost in version 1.0.3) to error messages
3036+ (Bug #3305659)
3037+ - print extra string information in error messages
3038+ - use entity definitions from dtd (Bug #3305659)
3039+ - add --net option to c14n, ed, fo, and val (Req #1071398)
3040+ - remove --catalog from tr --help message since it isn't actually supported
3041+ - add --elif and --else to sel --help message
3042+
3043+
3044+1.1.0: Apr 3, 2011
3045+
3046+ - bug fix for BSD/OSX: check that O_BINARY is declared before
3047+ #including io.h (Bug 3211822)
3048+ - select improvements
3049+ - add --elif and --else options
3050+ - sorting on multiple fields
3051+ - correct (for English) lexical sorting instead of ASCIIbetical
3052+ - only outputs namespaces that are actually used
3053+ - only outputs xsl:param inputFile if it's used
3054+ - don't make separate templates if there is only 1
3055+ - link to shared libxml and libxslt libraries by default
3056+ - add library version info to --version output
3057+ - add directory argument for ls; exit status indicates
3058+ failure/success instead of file count
3059+ - stop using old SAX1 interface, xmlstarlet will now link with a
3060+ libxml configured --without-sax1 and --without-legacy
3061+
3062+
3063+1.0.6: Mar 13 2011:
3064+
3065+ - Bug fixes:
3066+ - c14n: set stdout to binary mode on Windows to avoid carriage
3067+ returns (Bug 840665)
3068+ - fix broken --help options
3069+ - put actual behaviour of -P, -S options in --help output (see
3070+ Bug/Feature Request 2858514)
3071+ - remove unneeded escape of quote in ./configure --help
3072+ - don't distribute xmlstarlet.spec: it's generated by ./configure
3073+ - add src/xml.o depends on version.h to Makefile.am so compile
3074+ will succeed without dependency info (eg after make distclean)
3075+ - add test for subcommands' --help option
3076+ - Portability fixes:
3077+ - yes isn't portable, use an awk program instead
3078+ - neither read -r nor xargs -0 are portable, escape the command
3079+ lines to xargs instead
3080+ - don't use nonportable echo -n option
3081+
3082+
3083+1.0.5: Feb 11 2011:
3084+
3085+ - Bug fixes:
3086+ - use XSLT_PARSE_OPTIONS, else CDATA nodes can cause corruption (Bug 3158482)
3087+ - fix typo in help message
3088+ - get rid of warnings in -ansi -pedantic mode
3089+ - required libxml2 version is 2.6.23
3090+ - usage strings use argv[0] as program name
3091+ - --help prints to stdout and exits with success
3092+ - double /'s under msys to avoid path conversion
3093+ - Portability fixes:
3094+ - don't use xargs (-d isn't portable)
3095+ - use -Wall only for gcc
3096+ -Build system:
3097+ - use -ansi in configure, and check for strdup declaration
3098+ - seperate list of sources and tests into subdirs
3099+ - check git version during make, not just autoconf
3100+ - tarball releases of configure.ac have actual version number
3101+ instead of querying git
3102+
3103+
3104+1.0.4: Jan 16 2011:
3105+
3106+ - Bug fixes:
3107+ - encode special XML characters in arguments (can now include quotes in xpath)
3108+ - non-zero exit code when input file is not found (Bug 3158488)
3109+ - ed with --pf/--ps options doesn't reformat output (Bug 3158490)
3110+ - exit() instead of segfault when trying to delete namespace nodes
3111+ (Bug 1120417)
3112+ - added --disable-static-libs ./configure option to use shared libxml2 and libxslt
3113+ - non-recursive make
3114+ - use TESTS and XFAIL_TESTS for testing, nicer output
3115+
3116+1.0.3: Nov 18 2010:
3117+
3118+ - Bug fixes:
3119+ escape --value in update mode (Bug 3052978)
3120+ c14n now includes default attributes (Bug 1505579)
3121+ Allow special characters in sel --output literal (Bug 1912978)
3122+ remove warning from xml_trans.c (Bug 1521756)
3123+ Use xmlReader interface so line numbers are 32-bit (Bug 1219072)
3124+ test for error messages on lines past 2^16 (Bug 1219072)
3125+ don't look for embedded dtd if not asked (Bug 1167215)
3126
3127=== added file 'l10n_mx_facturae/depends_app/xmlstarlet_win/README'
3128--- l10n_mx_facturae/depends_app/xmlstarlet_win/README 1970-01-01 00:00:00 +0000
3129+++ l10n_mx_facturae/depends_app/xmlstarlet_win/README 2013-09-25 00:33:17 +0000
3130@@ -0,0 +1,6 @@
3131+
3132+XMLStarlet is a command line XML toolkit which can be used to transform,
3133+query, validate, and edit XML documents and files using simple set of shell
3134+commands in similar way it is done for plain text files using grep/sed/awk/
3135+tr/diff/patch.
3136+
3137
3138=== added file 'l10n_mx_facturae/depends_app/xmlstarlet_win/TODO'
3139--- l10n_mx_facturae/depends_app/xmlstarlet_win/TODO 1970-01-01 00:00:00 +0000
3140+++ l10n_mx_facturae/depends_app/xmlstarlet_win/TODO 2013-09-25 00:33:17 +0000
3141@@ -0,0 +1,4 @@
3142+1. xml ed option is highly incomplete
3143+2. How about XUpdate? (see http://www.xmldb.org/)
3144+3. just do grep TODO src/*.c and you'll figure it out
3145+4. generate xsd/DTD (best guess) from given XML document
3146
3147=== added directory 'l10n_mx_facturae/depends_app/xmlstarlet_win/doc'
3148=== added file 'l10n_mx_facturae/depends_app/xmlstarlet_win/doc/html.css'
3149--- l10n_mx_facturae/depends_app/xmlstarlet_win/doc/html.css 1970-01-01 00:00:00 +0000
3150+++ l10n_mx_facturae/depends_app/xmlstarlet_win/doc/html.css 2013-09-25 00:33:17 +0000
3151@@ -0,0 +1,27 @@
3152+body {
3153+ background: #FFFFFF;
3154+}
3155+
3156+h1, h2, h3, h4, h5 {
3157+ color: #800000;
3158+ font-family: sans-serif;
3159+}
3160+
3161+span.term {
3162+ font-weight: bold;
3163+}
3164+
3165+div.sidebar {
3166+ background: #F0F0F0;
3167+ border: 1px solid gray;
3168+ padding: 5px;
3169+ margin: 20px;
3170+}
3171+
3172+pre.programlisting {
3173+ background: #F0F0F0;
3174+ border: 1px solid gray;
3175+ padding: 2px;
3176+ font-size: 10pt;
3177+ white-space: pre;
3178+}
3179
3180=== added file 'l10n_mx_facturae/depends_app/xmlstarlet_win/doc/xmlstarlet-ug.html'
3181--- l10n_mx_facturae/depends_app/xmlstarlet_win/doc/xmlstarlet-ug.html 1970-01-01 00:00:00 +0000
3182+++ l10n_mx_facturae/depends_app/xmlstarlet_win/doc/xmlstarlet-ug.html 2013-09-25 00:33:17 +0000
3183@@ -0,0 +1,889 @@
3184+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>XmlStarlet Command Line XML Toolkit User's Guide</title><link rel="stylesheet" type="text/css" href="html.css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div lang="en" class="book" title="XmlStarlet Command Line XML Toolkit User's Guide"><div class="titlepage"><div><div><h1 class="title"><a name="idm47940123284960"></a>XmlStarlet Command Line XML Toolkit User's Guide</h1></div><div><div class="author"><h3 class="author"><span class="firstname">Mikhail</span> <span class="surname">Grushinskiy</span></h3></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="#idm47940098595872">1. Introduction</a></span></dt><dd><dl><dt><span class="sect1"><a href="#idm47940098537504">1. About XmlStarlet</a></span></dt><dt><span class="sect1"><a href="#idm47940098528528">2. Main Features</a></span></dt><dt><span class="sect1"><a href="#idm47940098514352">3. Supported Platforms</a></span></dt><dt><span class="sect1"><a href="#idm47940098504256">4. Finding binary packages</a></span></dt></dl></dd><dt><span class="chapter"><a href="#idm47940098489648">2. Installation</a></span></dt><dd><dl><dt><span class="sect1"><a href="#idm47940098488656">1. Installation on Linux</a></span></dt><dt><span class="sect1"><a href="#idm47940098485072">2. Installation on Solaris</a></span></dt><dt><span class="sect1"><a href="#idm47940098483264">3. Installation on MacOS X</a></span></dt><dt><span class="sect1"><a href="#idm47940098481088">4. Installation on Windows</a></span></dt></dl></dd><dt><span class="chapter"><a href="#idm47940098478640">3. Getting Started</a></span></dt><dd><dl><dt><span class="sect1"><a href="#idm47940098477648">1. Basic Command-Line Options</a></span></dt><dt><span class="sect1"><a href="#idm47940098473984">2. Studying Structure of XML Document</a></span></dt></dl></dd><dt><span class="chapter"><a href="#idm47940098461728">4. XmlStarlet Reference</a></span></dt><dd><dl><dt><span class="sect1"><a href="#idm47940098460832">1. Querying XML documents</a></span></dt><dt><span class="sect1"><a href="#idm47940098410320">2. Transforming XML documents</a></span></dt><dt><span class="sect1"><a href="#idm47940098401840">3. Editing XML documents</a></span></dt><dt><span class="sect1"><a href="#idm47940098383920">4. Validating XML documents</a></span></dt><dt><span class="sect1"><a href="#idm47940098376832">5. Formatting XML documents</a></span></dt><dt><span class="sect1"><a href="#idm47940098584992">6. Canonicalization of XML documents</a></span></dt><dt><span class="sect1"><a href="#idm47940098350080">7. XML and PYX format</a></span></dt><dt><span class="sect1"><a href="#idm47940098340288">8. Escape/Unescape special XML characters</a></span></dt><dt><span class="sect1"><a href="#idm47940098335296">9. List directory as XML</a></span></dt></dl></dd><dt><span class="chapter"><a href="#idm47940098331264">5. Common problems</a></span></dt><dd><dl><dt><span class="sect1"><a href="#idm47940098330320">1. Namespaces and default namespace</a></span></dt><dt><span class="sect1"><a href="#idm47940098320880">2. Special characters</a></span></dt><dt><span class="sect1"><a href="#idm47940098315040">3. Sorting</a></span></dt><dt><span class="sect1"><a href="#idm47940098310752">4. Validation</a></span></dt></dl></dd><dt><span class="chapter"><a href="#idm47940098308416">6. Other XmlStarlet Resources</a></span></dt></dl></div><div class="chapter" title="Chapter 1. Introduction"><div class="titlepage"><div><div><h2 class="title"><a name="idm47940098595872"></a>Chapter 1. Introduction</h2></div></div></div><div class="sect1" title="1. About XmlStarlet"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm47940098537504"></a>1. About XmlStarlet</h2></div></div></div><p><a class="link" href="http://xmlstar.sourceforge.net/" target="_top">XMLStarlet</a> is
3185+ a set of command line utilities (tools) which can be used to transform,
3186+ query, validate, and edit XML documents and files using simple set of
3187+ shell commands in similar way it is done for plain text files using UNIX
3188+ grep, sed, awk, diff, patch, join, etc commands.</p><p>This set of command line utilities can be used by those who deal
3189+ with many XML documents on UNIX shell command prompt as well as for
3190+ automated XML processing with shell scripts.</p><p>XMLStarlet command line utility is written in C and uses libxml2
3191+ and libxslt from <a class="link" href="http://xmlsoft.org/" target="_top">http://xmlsoft.org/</a>. Implementation of
3192+ extensive choice of options for XMLStarlet utility was only possible
3193+ because of rich feature set of libxml2 and libxslt (many thanks to the
3194+ developers of those libraries for great work).</p><p>'diff' and 'patch' options are not currently implemented. Other
3195+ features need some work too. Please, send an email to the project
3196+ administrator (see <a class="link" href="http://sourceforge.net/projects/xmlstar/" target="_top">http://sourceforge.net/projects/xmlstar/</a>)
3197+ if you wish to help.</p><p>XMLStarlet is linked statically to both libxml2 and libxslt, so
3198+ generally all you need to process XML documents is one executable file.
3199+ To run XmlStarlet utility you can simple type 'xml' on command line and
3200+ see list of options available.</p><p>XMLStarlet is open source freeware under MIT license which allows
3201+ free use and distribution for both commercial and non-commercial
3202+ projects.</p><p>We welcome any user's feedback on this project which would greatly
3203+ help us to improve its quality. Comments, suggestions, feature requests,
3204+ bug reports can be done via SourceForge project web site (see <a class="link" href="http://sourceforge.net/forum/?group_id=66612" target="_top">XMLStarlet
3205+ Sourceforge forums</a>, or <a class="link" href="http://lists.sourceforge.net/lists/listinfo/xmlstar-devel/" target="_top">XMLStarlet
3206+ mailing list</a>)</p></div><div class="sect1" title="2. Main Features"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm47940098528528"></a>2. Main Features</h2></div></div></div><p>The toolkit's feature set includes options to:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Check or validate XML files (simple well-formedness check,
3207+ DTD, XSD, RelaxNG)</p></li><li class="listitem"><p>Calculate values of XPath expressions on XML files (such as
3208+ running sums, etc)</p></li><li class="listitem"><p>Search XML files for matches to given XPath expressions</p></li><li class="listitem"><p>Apply XSLT stylesheets to XML documents (including EXSLT
3209+ support, and passing parameters to stylesheets)</p></li><li class="listitem"><p>Query XML documents (ex. query for value of some elements of
3210+ attributes, sorting, etc)</p></li><li class="listitem"><p>Modify or edit XML documents (ex. delete some elements)</p></li><li class="listitem"><p>Format or "beautify" XML documents (as changing indentation,
3211+ etc)</p></li><li class="listitem"><p>Fetch XML documents using http:// or ftp:// URLs</p></li><li class="listitem"><p>Browse tree structure of XML documents (in similar way to 'ls'
3212+ command for directories)</p></li><li class="listitem"><p>Include one XML document into another using XInclude</p></li><li class="listitem"><p>XML c14n canonicalization</p></li><li class="listitem"><p>Escape/unescape special XML characters in input text</p></li><li class="listitem"><p>Print directory as XML document</p></li><li class="listitem"><p>Convert XML into PYX format (based on ESIS - ISO 8879), and
3213+ vice versa</p></li></ul></div><p></p></div><div class="sect1" title="3. Supported Platforms"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm47940098514352"></a>3. Supported Platforms</h2></div></div></div><p>Here is a list of platforms on which XmlStarlet is known to
3214+ work.</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Linux</p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Solaris</p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Windows</p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>MacOS X</p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>FreeBSD/NetBSD</p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>HP-UX</p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>AIX</p></li></ul></div><p>You might be able to compile and make it on others too.</p></div><div class="sect1" title="4. Finding binary packages"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm47940098504256"></a>4. Finding binary packages</h2></div></div></div><p>Here is a list of sites where you can also find XmlStarlet binary
3215+ packages.</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><a class="link" href="http://www.suse.com/us/private/products/suse_linux/prof/packages_professional/xmlstarlet.html" target="_top">SuSE
3216+ Packages</a></p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><a class="link" href="http://linux01.gwdg.de/~pbleser/rpm-navigation.php?cat=%2FUtilities%2Fxmlstarlet/" target="_top">SuSE
3217+ Guru's RPM Site</a></p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><a class="link" href="http://www.freebsd.org/cgi/ports.cgi?query=xmlstarlet&amp;stype=all" target="_top">FreeBSD
3218+ Ports</a></p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><a class="link" href="http://www.freshports.org/textproc/xmlstarlet/" target="_top">FreeBSD Fresh
3219+ Ports</a></p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><a class="link" href="http://fink.sourceforge.net/pdb/package.php/xmlstarlet" target="_top">Mac OS
3220+ Fink</a></p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><a class="link" href="http://rpms.mandrakeclub.com/linux/rpm2html/search.php?query=xmlstarlet" target="_top">Mandrake
3221+ RPMs</a></p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><a class="link" href="http://gentoo-portage.com/app-text/xmlstarlet" target="_top">Gentoo
3222+ Portage</a></p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><a class="link" href="http://packages.debian.org/stable/text/xmlstarlet" target="_top">Debian</a></p></li></ul></div></div></div><div class="chapter" title="Chapter 2. Installation"><div class="titlepage"><div><div><h2 class="title"><a name="idm47940098489648"></a>Chapter 2. Installation</h2></div></div></div><div class="sect1" title="1. Installation on Linux"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm47940098488656"></a>1. Installation on Linux</h2></div></div></div><p>Execute the following command as root</p><pre class="programlisting">rpm -i xmlstarlet-x.x.x-1.i386.rpm</pre><p>where x.x.x indicates package version.</p><p>You can use <a class="link" href="http://fr2.rpmfind.net/linux/rpm2html/search.php?query=xmlstarlet&amp;system=&amp;arch=" target="_top">http://rpmfind.net</a>
3223+ to search for RPM appropriate for your distribution.</p></div><div class="sect1" title="2. Installation on Solaris"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm47940098485072"></a>2. Installation on Solaris</h2></div></div></div><p>Execute the following commands as root</p><pre class="programlisting">gunzip xmlstarlet-x.x.x-sol8-sparc-local.gz
3224+pkgadd -d xmlstarlet-x.x.x-sol8-sparc-local all</pre></div><div class="sect1" title="3. Installation on MacOS X"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm47940098483264"></a>3. Installation on MacOS X</h2></div></div></div><p>XmlStarlet is available on MacOS in Fink. <a class="link" href="http://fink.sourceforge.net/pdb/package.php/xmlstarlet" target="_top">See
3225+ fink.sourceforge.net</a></p></div><div class="sect1" title="4. Installation on Windows"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm47940098481088"></a>4. Installation on Windows</h2></div></div></div><p>Unzip the file xmlstarlet-x.x.x-win32.zip to some directory. To
3226+ take advantage of UNIX shell scripting you might want to run XmlStarlet
3227+ from Cygwin. Consider installing <a class="link" href="http://www.cygwin.com/" target="_top">Cygwin</a> on your Windows
3228+ machine.</p></div></div><div class="chapter" title="Chapter 3. Getting Started"><div class="titlepage"><div><div><h2 class="title"><a name="idm47940098478640"></a>Chapter 3. Getting Started</h2></div></div></div><div class="sect1" title="1. Basic Command-Line Options"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm47940098477648"></a>1. Basic Command-Line Options</h2></div></div></div><p>Basic command line syntax: </p><pre class="programlisting">bash-2.03$ xml
3229+XMLStarlet Toolkit: Command line utilities for XML
3230+Usage: xml [&lt;options&gt;] &lt;command&gt; [&lt;cmd-options&gt;]
3231+where &lt;command&gt; is one of:
3232+ ed (or edit) - Edit/Update XML document(s)
3233+ sel (or select) - Select data or query XML document(s) (XPATH, etc)
3234+ tr (or transform) - Transform XML document(s) using XSLT
3235+ val (or validate) - Validate XML document(s) (well-formed/DTD/XSD/RelaxNG)
3236+ fo (or format) - Format XML document(s)
3237+ el (or elements) - Display element structure of XML document
3238+ c14n (or canonic) - XML canonicalization
3239+ ls (or list) - List directory as XML
3240+ esc (or escape) - Escape special XML characters
3241+ unesc (or unescape) - Unescape special XML characters
3242+ pyx (or xmln) - Convert XML into PYX format (based on ESIS - ISO 8879)
3243+ p2x (or depyx) - Convert PYX into XML
3244+&lt;options&gt; are:
3245+ -q or --quiet - no error output
3246+ --version - show version
3247+ --help - show help
3248+Wherever file name mentioned in command help it is assumed
3249+that URL can be used instead as well.
3250+
3251+Type: xml &lt;command&gt; --help &lt;ENTER&gt; for command help
3252+
3253+XMLStarlet is a command line toolkit to query/edit/check/transform
3254+XML documents (for more information see http://xmlstar.sourceforge.net/)</pre></div><div class="sect1" title="2. Studying Structure of XML Document"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm47940098473984"></a>2. Studying Structure of XML Document</h2></div></div></div><p>Before you do anything with your XML document you probably would
3255+ like to know its structure at first. 'el' option could be used for this
3256+ purpose.</p><p>Let's say you have the following XML document (table.xml)</p><pre class="programlisting">&lt;xml&gt;
3257+ &lt;table&gt;
3258+ &lt;rec id="1"&gt;
3259+ &lt;numField&gt;123&lt;/numField&gt;
3260+ &lt;stringField&gt;String Value&lt;/stringField&gt;
3261+ &lt;/rec&gt;
3262+ &lt;rec id="2"&gt;
3263+ &lt;numField&gt;346&lt;/numField&gt;
3264+ &lt;stringField&gt;Text Value&lt;/stringField&gt;
3265+ &lt;/rec&gt;
3266+ &lt;rec id="3"&gt;
3267+ &lt;numField&gt;-23&lt;/numField&gt;
3268+ &lt;stringField&gt;stringValue&lt;/stringField&gt;
3269+ &lt;/rec&gt;
3270+ &lt;/table&gt;
3271+&lt;/xml&gt;</pre><pre class="programlisting">xml el table.xml</pre><p>would produce the following output.</p><pre class="programlisting">xml
3272+xml/table
3273+xml/table/rec
3274+xml/table/rec/numField
3275+xml/table/rec/stringField
3276+xml/table/rec
3277+xml/table/rec/numField
3278+xml/table/rec/stringField
3279+xml/table/rec
3280+xml/table/rec/numField
3281+xml/table/rec/stringField</pre><p>Every line in this output is an XPath expression which indicates a
3282+ 'path' to elements in XML document. You would use these XPath
3283+ expressions to navigate through your XML documents in other XmlStarlet
3284+ options.</p><p>XML documents can be pretty large but with a very simple
3285+ structure. (This is espesially true for data driven XML documents ex:
3286+ XML formatted result of select from SQL table). If you just interested
3287+ in structure but not order of the elements you can use -u switch
3288+ combined with 'el' option.</p><p>EXAMPLE:</p><pre class="programlisting">xml el -u table.xml</pre><p>Output:</p><pre class="programlisting">xml
3289+xml/table
3290+xml/table/rec
3291+xml/table/rec/numField
3292+xml/table/rec/stringField</pre><p>If you are interested not just in elements of your XML document,
3293+ but you want to see attributes as well you can use -a switch with 'el'
3294+ option. And every line of the output will still be a valid XPath
3295+ expression.</p><p>EXAMPLE:</p><pre class="programlisting">xml el -a table.xml</pre><p>Output:</p><pre class="programlisting">xml
3296+xml/table
3297+xml/table/rec
3298+xml/table/rec/@id
3299+xml/table/rec/numField
3300+xml/table/rec/stringField
3301+xml/table/rec
3302+xml/table/rec/@id
3303+xml/table/rec/numField
3304+xml/table/rec/stringField
3305+xml/table/rec
3306+xml/table/rec/@id
3307+xml/table/rec/numField
3308+xml/table/rec/stringField</pre><p>If you are looking for attribute values as well use -v switch of
3309+ 'el' option. And again - every line of output is a valid XPath
3310+ expression.</p><p>EXAMPLE:</p><pre class="programlisting">xml el -v table.xml</pre><p>Output:</p><pre class="programlisting">xml
3311+xml/table
3312+xml/table/rec[@id='1']
3313+xml/table/rec/numField
3314+xml/table/rec/stringField
3315+xml/table/rec[@id='2']
3316+xml/table/rec/numField
3317+xml/table/rec/stringField
3318+xml/table/rec[@id='3']
3319+xml/table/rec/numField
3320+xml/table/rec/stringField</pre></div></div><div class="chapter" title="Chapter 4. XmlStarlet Reference"><div class="titlepage"><div><div><h2 class="title"><a name="idm47940098461728"></a>Chapter 4. XmlStarlet Reference</h2></div></div></div><p></p><div class="sect1" title="1. Querying XML documents"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm47940098460832"></a>1. Querying XML documents</h2></div></div></div><p>XmlStarlet 'select' or 'sel' option can be used to query or search
3321+ XML documents. Here is synopsis for 'xml sel' command:</p><pre class="programlisting">XMLStarlet Toolkit: Select from XML document(s)
3322+Usage: xml sel &lt;global-options&gt; {&lt;template&gt;} [ &lt;xml-file&gt; ... ]
3323+where
3324+ &lt;global-options&gt; - global options for selecting
3325+ &lt;xml-file&gt; - input XML document file name/uri (stdin is used if missing)
3326+ &lt;template&gt; - template for querying XML document with following syntax:
3327+
3328+&lt;global-options&gt; are:
3329+ -C or --comp - display generated XSLT
3330+ -R or --root - print root element &lt;xsl-select&gt;
3331+ -T or --text - output is text (default is XML)
3332+ -I or --indent - indent output
3333+ -D or --xml-decl - do not omit xml declaration line
3334+ -B or --noblanks - remove insignificant spaces from XML tree
3335+ -N &lt;name&gt;=&lt;value&gt; - predefine namespaces (name without 'xmlns:')
3336+ ex: xsql=urn:oracle-xsql
3337+ Multiple -N options are allowed.
3338+ --net - allow fetch DTDs or entities over network
3339+ --help - display help
3340+
3341+Syntax for templates: -t|--template &lt;options&gt;
3342+where &lt;options&gt;
3343+ -c or --copy-of &lt;xpath&gt; - print copy of XPATH expression
3344+ -v or --value-of &lt;xpath&gt; - print value of XPATH expression
3345+ -o or --output &lt;string&gt; - output string literal
3346+ -n or --nl - print new line
3347+ -f or --inp-name - print input file name (or URL)
3348+ -m or --match &lt;xpath&gt; - match XPATH expression
3349+ -i or --if &lt;test-xpath&gt; - check condition &lt;xsl:if test="test-xpath"&gt;
3350+ -e or --elem &lt;name&gt; - print out element &lt;xsl:element name="name"&gt;
3351+ -a or --attr &lt;name&gt; - add attribute &lt;xsl:attribute name="name"&gt;
3352+ -b or --break - break nesting
3353+ -s or --sort op xpath - sort in order (used after -m) where
3354+ op is X:Y:Z,
3355+ X is A - for order="ascending"
3356+ X is D - for order="descending"
3357+ Y is N - for data-type="numeric"
3358+ Y is T - for data-type="text"
3359+ Z is U - for case-order="upper-first"
3360+ Z is L - for case-order="lower-first"
3361+
3362+There can be multiple --match, --copy-of, --value-of, etc options
3363+in a single template. The effect of applying command line templates
3364+can be illustrated with the following XSLT analogue
3365+
3366+xml sel -t -c "xpath0" -m "xpath1" -m "xpath2" -v "xpath3" \
3367+ -t -m "xpath4" -c "xpath5"
3368+
3369+is equivalent to applying the following XSLT
3370+
3371+&lt;?xml version="1.0"?&gt;
3372+&lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;
3373+&lt;xsl:template match="/"&gt;
3374+ &lt;xsl:call-template name="t1"/&gt;
3375+ &lt;xsl:call-template name="t2"/&gt;
3376+&lt;/xsl:template&gt;
3377+&lt;xsl:template name="t1"&gt;
3378+ &lt;xsl:copy-of select="xpath0"/&gt;
3379+ &lt;xsl:for-each select="xpath1"&gt;
3380+ &lt;xsl:for-each select="xpath2"&gt;
3381+ &lt;xsl:value-of select="xpath3"/&gt;
3382+ &lt;/xsl:for-each&gt;
3383+ &lt;/xsl:for-each&gt;
3384+&lt;/xsl:template&gt;
3385+&lt;xsl:template name="t2"&gt;
3386+ &lt;xsl:for-each select="xpath4"&gt;
3387+ &lt;xsl:copy-of select="xpath5"/&gt;
3388+ &lt;/xsl:for-each&gt;
3389+&lt;/xsl:template&gt;
3390+&lt;/xsl:stylesheet&gt;
3391+
3392+XMLStarlet is a command line toolkit to query/edit/check/transform
3393+XML documents (for more information see http://xmlstar.sourceforge.net/)
3394+
3395+Current implementation uses libxslt from GNOME codebase as XSLT processor
3396+(see http://xmlsoft.org/ for more details)
3397+</pre><p>'select' option allows you basically avoid writting XSLT
3398+ stylesheet to perform some queries on XML documents. I.e. various
3399+ combinations of command line parameters will let you to generate XSLT
3400+ stylesheet and apply in to XML documents with a single command line.
3401+ Very often you do not really care what XSLT was created for you 'select'
3402+ command, but in those cases when you do; you can always use -C or --comp
3403+ switch which will let you see exactly which XSLT is applied to your
3404+ input.</p><p>'select' option supports many EXSLT functions in XPath
3405+ expressions.</p><p>Here are few examples which will help to understand how 'xml
3406+ select' works:</p><p>EXAMPLE:</p><p>Count elements matching XPath expression:</p><p></p><pre class="programlisting">xml sel -t -v "count(/xml/table/rec/numField)" table.xml</pre><p>Input (table.xml):</p><pre class="programlisting">&lt;xml&gt;
3407+ &lt;table&gt;
3408+ &lt;rec id="1"&gt;
3409+ &lt;numField&gt;123&lt;/numField&gt;
3410+ &lt;stringField&gt;String Value&lt;/stringField&gt;
3411+ &lt;/rec&gt;
3412+ &lt;rec id="2"&gt;
3413+ &lt;numField&gt;346&lt;/numField&gt;
3414+ &lt;stringField&gt;Text Value&lt;/stringField&gt;
3415+ &lt;/rec&gt;
3416+ &lt;rec id="3"&gt;
3417+ &lt;numField&gt;-23&lt;/numField&gt;
3418+ &lt;stringField&gt;stringValue&lt;/stringField&gt;
3419+ &lt;/rec&gt;
3420+ &lt;/table&gt;
3421+&lt;/xml&gt;</pre><p>Output:</p><pre class="programlisting">3
3422+</pre><p>Let's take a close look what it did internally. For that we will
3423+ use '-C' option</p><pre class="programlisting">$ xml sel -C -t -v "count(/xml/table/rec/numField)"
3424+&lt;?xml version="1.0"?&gt;
3425+&lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3426+ xmlns:exslt="http://exslt.org/common"
3427+ xmlns:math="http://exslt.org/math"
3428+ xmlns:date="http://exslt.org/dates-and-times"
3429+ xmlns:func="http://exslt.org/functions"
3430+ xmlns:set="http://exslt.org/sets"
3431+ xmlns:str="http://exslt.org/strings"
3432+ xmlns:dyn="http://exslt.org/dynamic"
3433+ xmlns:saxon="http://icl.com/saxon"
3434+ xmlns:xalanredirect="org.apache.xalan.xslt.extensions.Redirect"
3435+ xmlns:xt="http://www.jclark.com/xt"
3436+ xmlns:libxslt="http://xmlsoft.org/XSLT/namespace"
3437+ xmlns:test="http://xmlsoft.org/XSLT/"
3438+ extension-element-prefixes=
3439+ "exslt math date func set str dyn saxon xalanredirect xt libxslt test"
3440+ exclude-result-prefixes="math str"&gt;
3441+&lt;xsl:output omit-xml-declaration="yes" indent="no"/&gt;
3442+&lt;xsl:param name="inputFile"&gt;-&lt;/xsl:param&gt;
3443+&lt;xsl:template match="/"&gt;
3444+ &lt;xsl:call-template name="t1"/&gt;
3445+&lt;/xsl:template&gt;
3446+&lt;xsl:template name="t1"&gt;
3447+ &lt;xsl:value-of select="count(/xml/table/rec/numField)"/&gt;
3448+&lt;/xsl:template&gt;
3449+&lt;/xsl:stylesheet&gt;</pre><p>Ignoring some XSLT stuff to make it brief:</p><pre class="programlisting">&lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;
3450+&lt;xsl:output omit-xml-declaration="yes" indent="no"/&gt;
3451+&lt;xsl:param name="inputFile"&gt;-&lt;/xsl:param&gt;
3452+&lt;xsl:template match="/"&gt;
3453+ &lt;xsl:call-template name="t1"/&gt;
3454+&lt;/xsl:template&gt;
3455+&lt;xsl:template name="t1"&gt;
3456+ &lt;xsl:value-of select="count(/xml/table/rec/numField)"/&gt;
3457+&lt;/xsl:template&gt;
3458+&lt;/xsl:stylesheet&gt;</pre><p>Every -t option is mapped into XSLT template. Options after '-t'
3459+ are mapped into XSLT elements:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>-v to &lt;xsl:value-of&gt;</p></li><li class="listitem"><p>-c to &lt;xsl:copy-of&gt;</p></li><li class="listitem"><p>-e to &lt;xsl:element&gt;</p></li><li class="listitem"><p>-a to &lt;xsl:attribute&gt;</p></li><li class="listitem"><p>-s to &lt;xsl:sort&gt;</p></li><li class="listitem"><p>-m to &lt;xsl:for-each&gt;</p></li><li class="listitem"><p>-i to &lt;xsl:if&gt;</p></li><li class="listitem"><p>and so on</p></li></ul></div><p>By default subsequent options (for instance: -m) will result in
3460+ nested corresponding XSLT elements (&lt;xsl:for-each&gt; for '-m'). To
3461+ break this nesting you would have to put '-b' or '--break' after first
3462+ '-m'.</p><p>Below are few more examples:</p><p>EXAMPLE</p><p>Count all nodes in XML documents. Print input name and node count
3463+ after it.</p><pre class="programlisting">xml sel -t -f -o " " -v "count(//node())" xml/table.xml xml/tab-obj.xml</pre><p>Output:</p><pre class="programlisting">xml/table.xml 32
3464+xml/tab-obj.xml 41</pre><p></p><p>EXAMPLE</p><p>Find XML files matching XPath expression (containing 'object'
3465+ element)</p><pre class="programlisting">xml sel -t -m //object -f xml/table.xml xml/tab-obj.xml</pre><p>Result output:</p><pre class="programlisting">xml/tab-obj.xml</pre><p></p><p>EXAMPLE</p><p>Calculate EXSLT (XSLT extentions) XPath value</p><pre class="programlisting">echo "&lt;x/&gt;" | xml sel -t -v "math:abs(-1000)"</pre><p>Result output:</p><pre class="programlisting">1000</pre><p></p><p>EXAMPLE</p><p>Adding elements and attributes using command line 'xml sel'</p><pre class="programlisting">echo "&lt;x/&gt;" | xml sel -t -m / -e xml -e child -a data -o value</pre><p>Result Output:</p><pre class="programlisting">&lt;xml&gt;&lt;child data="value"/&gt;&lt;/xml&gt;</pre><p></p><p>EXAMPLE</p><p>Query XML document and produce sorted text table</p><pre class="programlisting">xml sel -T -t -m /xml/table/rec -s D:N:- "@id" \
3466+ -v "concat(@id,'|',numField,'|',stringField)" -n xml/table.xml</pre><p>Result Output:</p><pre class="programlisting">3|-23|stringValue
3467+2|346|Text Value
3468+1|123|String Value</pre><p>Equivalent stylesheet</p><pre class="programlisting">&lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;
3469+&lt;xsl:output omit-xml-declaration="yes" indent="no" method="text"/&gt;
3470+&lt;xsl:param name="inputFile"&gt;-&lt;/xsl:param&gt;
3471+&lt;xsl:template match="/"&gt;
3472+ &lt;xsl:call-template name="t1"/&gt;
3473+&lt;/xsl:template&gt;
3474+&lt;xsl:template name="t1"&gt;
3475+ &lt;xsl:for-each select="/xml/table/rec"&gt;
3476+ &lt;xsl:sort order="descending" data-type="number"
3477+ case-order="upper-first" select="@id"/&gt;
3478+ &lt;xsl:value-of select="concat(@id,'|',numField,'|',stringField)"/&gt;
3479+ &lt;xsl:value-of select="'&amp;#10;'"/&gt;
3480+ &lt;/xsl:for-each&gt;
3481+&lt;/xsl:template&gt;
3482+&lt;/xsl:stylesheet&gt;</pre><p></p><p>EXAMPLE</p><p>Predefine namespaces for XPath expressions</p><pre class="programlisting">xml sel -N xsql=urn:oracle-xsql -t -v /xsql:query xsql/jobserve.xsql</pre><p>Input (xsql/jobserve.xsql)</p><pre class="programlisting">$ cat xsql/jobserve.xsql
3483+&lt;?xml version="1.0"?&gt;
3484+&lt;?xml-stylesheet type="text/xsl" href="jobserve.xsl"?&gt;
3485+&lt;xsql:query connection="jobs" xmlns:xsql="urn:oracle-xsql" max-rows="5"&gt;
3486+ SELECT substr(title,1,26) short_title, title, location, skills
3487+ FROM job
3488+ WHERE UPPER(title) LIKE '%ORACLE%'
3489+ ORDER BY first_posted DESC
3490+&lt;/xsql:query&gt;</pre><p>Result output</p><pre class="programlisting"> SELECT substr(title,1,26) short_title, title, location, skills
3491+ FROM job
3492+ WHERE UPPER(title) LIKE '%ORACLE%'
3493+ ORDER BY first_posted DESC
3494+</pre><p></p><p>EXAMPLE</p><p>Print structure of XML element using xml sel (advanced XPath
3495+ expressions and xml sel command usage)</p><pre class="programlisting">xml sel -T -t -m '//*' \
3496+-m 'ancestor-or-self::*' -v 'name()' -i 'not(position()=last())' -o . -b -b -n \
3497+xml/structure.xml</pre><p>Input (xml/structure.xml)</p><pre class="programlisting">&lt;a1&gt;
3498+ &lt;a11&gt;
3499+ &lt;a111&gt;
3500+ &lt;a1111/&gt;
3501+ &lt;/a111&gt;
3502+ &lt;a112&gt;
3503+ &lt;a1121/&gt;
3504+ &lt;/a112&gt;
3505+ &lt;/a11&gt;
3506+ &lt;a12/&gt;
3507+ &lt;a13&gt;
3508+ &lt;a131/&gt;
3509+ &lt;/a13&gt;
3510+&lt;/a1&gt;</pre><p>Result Output:</p><pre class="programlisting">a1
3511+a1.a11
3512+a1.a11.a111
3513+a1.a11.a111.a1111
3514+a1.a11.a112
3515+a1.a11.a112.a1121
3516+a1.a12
3517+a1.a13
3518+a1.a13.a131</pre><p>This example is a good demonstration of nesting control. Here is
3519+ corresponding XSLT:</p><pre class="programlisting">&lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;
3520+&lt;xsl:output omit-xml-declaration="yes" indent="no" method="text"/&gt;
3521+&lt;xsl:param name="inputFile"&gt;-&lt;/xsl:param&gt;
3522+&lt;xsl:template match="/"&gt;
3523+ &lt;xsl:call-template name="t1"/&gt;
3524+&lt;/xsl:template&gt;
3525+&lt;xsl:template name="t1"&gt;
3526+ &lt;xsl:for-each select="//*"&gt;
3527+ &lt;xsl:for-each select="ancestor-or-self::*"&gt;
3528+ &lt;xsl:value-of select="name()"/&gt;
3529+ &lt;xsl:if test="not(position()=last())"&gt;
3530+ &lt;xsl:value-of select="'.'"/&gt;
3531+ &lt;/xsl:if&gt;
3532+ &lt;/xsl:for-each&gt;
3533+ &lt;xsl:value-of select="'&amp;#10;'"/&gt;
3534+ &lt;/xsl:for-each&gt;
3535+&lt;/xsl:template&gt;
3536+&lt;/xsl:stylesheet&gt;</pre><p></p><p></p><p>EXAMPLE</p><p>Print all links of xhtml document</p><pre class="programlisting">xml sel --net --html -T -t -m "//*[local-name()='a']" \
3537+ -o 'NAME: ' -v "translate(. , '&amp;#10;', ' ')" -n \
3538+ -o 'LINK: ' -v @href -n -n \
3539+ http://xmlstar.sourceforge.net/</pre><p>Sample output</p><pre class="programlisting">NAME: XmlStarlet SourceForge Site
3540+LINK: http://sourceforge.net/projects/xmlstar/
3541+
3542+NAME: XmlStarlet CVS Source
3543+LINK: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/xmlstar/
3544+
3545+NAME: XmlStarlet on Freshmeat.Net
3546+LINK: http://freshmeat.net/projects/xmlstarlet/
3547+
3548+NAME: XMLStarlet Sourceforge forums
3549+LINK: http://sourceforge.net/forum/?group_id=66612
3550+
3551+NAME: XMLStarlet mailing list
3552+LINK: http://lists.sourceforge.net/lists/listinfo/xmlstar-devel
3553+</pre><p></p></div><div class="sect1" title="2. Transforming XML documents"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm47940098410320"></a>2. Transforming XML documents</h2></div></div></div><p>Here is synopsis for 'xml tr' command:</p><pre class="programlisting">XMLStarlet Toolkit: Transform XML document(s) using XSLT
3554+Usage: xml tr [&lt;options&gt;] &lt;xsl-file&gt; {-p|-s &lt;name&gt;=&lt;value&gt;} [ &lt;xml-file-or-uri&gt; ... ]
3555+where
3556+ &lt;xsl-file&gt; - main XSLT stylesheet for transformation
3557+ &lt;xml-file&gt; - input XML document file name (stdin is used if missing)
3558+ &lt;name&gt;=&lt;value&gt; - name and value of the parameter passed to XSLT processor
3559+ -p - parameter is XPATH expression ("'string'" to quote string)
3560+ -s - parameter is a string literal
3561+&lt;options&gt; are:
3562+ --omit-decl - omit xml declaration &lt;?xml version="1.0"?&gt;
3563+ --show-ext - show list of extensions
3564+ --val - allow validate against DTDs or schemas
3565+ --net - allow fetch DTDs or entities over network
3566+ --xinclude - do XInclude processing on document input
3567+ --maxdepth val - increase the maximum depth
3568+ --html - input document(s) is(are) in HTML format
3569+ --catalogs - use SGML catalogs from $SGML_CATALOG_FILES
3570+ otherwise XML catalogs starting from
3571+ file:///etc/xml/catalog are activated by default
3572+
3573+XMLStarlet is a command line toolkit to query/edit/check/transform
3574+XML documents (for more information see http://xmlstar.sourceforge.net/)
3575+
3576+Current implementation uses libxslt from GNOME codebase as XSLT processor
3577+(see http://xmlsoft.org/ for more details)
3578+</pre><p>EXAMPLE:</p><pre class="programlisting"># Transform passing parameters to XSLT stylesheet
3579+xml tr xsl/param1.xsl -p Count='count(/xml/table/rec)' -s Text="Count=" xml/table.xml
3580+</pre><p>Input xsl/params1.xsl</p><pre class="programlisting">&lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;
3581+&lt;xsl:output method="text"/&gt;
3582+&lt;xsl:param name="Text"/&gt;
3583+&lt;xsl:param name="Count"/&gt;
3584+&lt;xsl:template match="/"&gt;
3585+ &lt;xsl:call-template name="t1"/&gt;
3586+&lt;/xsl:template&gt;
3587+&lt;xsl:template name="t1"&gt;
3588+ &lt;xsl:for-each select="/xml"&gt;
3589+ &lt;xsl:value-of select="$Text"/&gt;
3590+ &lt;xsl:value-of select="$Count"/&gt;
3591+ &lt;xsl:value-of select="'&amp;#10;'"/&gt;
3592+ &lt;/xsl:for-each&gt;
3593+&lt;/xsl:template&gt;
3594+&lt;/xsl:stylesheet&gt;</pre><p>Output</p><pre class="programlisting">Count=3
3595+</pre></div><div class="sect1" title="3. Editing XML documents"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm47940098401840"></a>3. Editing XML documents</h2></div></div></div><p>Here is the synopsis for 'xml ed' command:</p><pre class="programlisting">XMLStarlet Toolkit: Edit XML document(s)
3596+Usage: xml ed &lt;global-options&gt; {&lt;action&gt;} [ &lt;xml-file-or-uri&gt; ... ]
3597+where
3598+ &lt;global-options&gt; - global options for editing
3599+ &lt;xml-file-or-uri&gt; - input XML document file name/uri (stdin is used if missing)
3600+
3601+&lt;global-options&gt; are:
3602+ -P (or --pf) - preserve original formatting
3603+ -S (or --ps) - preserve non-significant spaces
3604+ -O (or --omit-decl) - omit XML declaration (&lt;?xml ...?&gt;)
3605+ -N &lt;name&gt;=&lt;value&gt; - predefine namespaces (name without 'xmlns:')
3606+ ex: xsql=urn:oracle-xsql
3607+ Multiple -N options are allowed.
3608+ -N options must be last global options.
3609+ --help or -h - display help
3610+
3611+where &lt;action&gt;
3612+ -d or --delete &lt;xpath&gt;
3613+ -i or --insert &lt;xpath&gt; -t (--type) elem|text|attr -n &lt;name&gt; -v (--value) &lt;value&gt;
3614+ -a or --append &lt;xpath&gt; -t (--type) elem|text|attr -n &lt;name&gt; -v (--value) &lt;value&gt;
3615+ -s or --subnode &lt;xpath&gt; -t (--type) elem|text|attr -n &lt;name&gt; -v (--value) &lt;value&gt;
3616+ -m or --move &lt;xpath1&gt; &lt;xpath2&gt;
3617+ -r or --rename &lt;xpath1&gt; -v &lt;new-name&gt;
3618+ -u or --update &lt;xpath&gt; -v (--value) &lt;value&gt;
3619+ -x (--expr) &lt;xpath&gt; (-x is not implemented yet)
3620+
3621+XMLStarlet is a command line toolkit to query/edit/check/transform
3622+XML documents (for more information see http://xmlstar.sourceforge.net/)
3623+</pre><p>EXAMPLE:</p><pre class="programlisting"># Delete elements matching XPath expression
3624+xml ed -d "/xml/table/rec[@id='2']" xml/table.xml
3625+</pre><p>Input</p><pre class="programlisting">&lt;xml&gt;
3626+ &lt;table&gt;
3627+ &lt;rec id="1"&gt;
3628+ &lt;numField&gt;123&lt;/numField&gt;
3629+ &lt;stringField&gt;String Value&lt;/stringField&gt;
3630+ &lt;/rec&gt;
3631+ &lt;rec id="2"&gt;
3632+ &lt;numField&gt;346&lt;/numField&gt;
3633+ &lt;stringField&gt;Text Value&lt;/stringField&gt;
3634+ &lt;/rec&gt;
3635+ &lt;rec id="3"&gt;
3636+ &lt;numField&gt;-23&lt;/numField&gt;
3637+ &lt;stringField&gt;stringValue&lt;/stringField&gt;
3638+ &lt;/rec&gt;
3639+ &lt;/table&gt;
3640+&lt;/xml&gt;
3641+</pre><p>Output</p><pre class="programlisting">&lt;xml&gt;
3642+ &lt;table&gt;
3643+ &lt;rec id="1"&gt;
3644+ &lt;numField&gt;123&lt;/numField&gt;
3645+ &lt;stringField&gt;String Value&lt;/stringField&gt;
3646+ &lt;/rec&gt;
3647+ &lt;rec id="3"&gt;
3648+ &lt;numField&gt;-23&lt;/numField&gt;
3649+ &lt;stringField&gt;stringValue&lt;/stringField&gt;
3650+ &lt;/rec&gt;
3651+ &lt;/table&gt;
3652+&lt;/xml&gt;
3653+</pre><p>EXAMPLE</p><pre class="programlisting"># Move element node
3654+echo '&lt;x id="1"&gt;&lt;a/&gt;&lt;b/&gt;&lt;/x&gt;' | xml ed -m "//b" "//a"
3655+</pre><p>Output</p><pre class="programlisting">&lt;x id="1"&gt;
3656+ &lt;a&gt;
3657+ &lt;b/&gt;
3658+ &lt;/a&gt;
3659+&lt;/x&gt;
3660+</pre><p>EXAMPLE</p><pre class="programlisting"># Rename attributes
3661+xml ed -r "//*/@id" -v ID xml/tab-obj.xml
3662+</pre><p>Output:</p><pre class="programlisting">&lt;xml&gt;
3663+ &lt;table&gt;
3664+ &lt;rec ID="1"&gt;
3665+ &lt;numField&gt;123&lt;/numField&gt;
3666+ &lt;stringField&gt;String Value&lt;/stringField&gt;
3667+ &lt;object name="Obj1"&gt;
3668+ &lt;property name="size"&gt;10&lt;/property&gt;
3669+ &lt;property name="type"&gt;Data&lt;/property&gt;
3670+ &lt;/object&gt;
3671+ &lt;/rec&gt;
3672+ &lt;rec ID="2"&gt;
3673+ &lt;numField&gt;346&lt;/numField&gt;
3674+ &lt;stringField&gt;Text Value&lt;/stringField&gt;
3675+ &lt;/rec&gt;
3676+ &lt;rec ID="3"&gt;
3677+ &lt;numField&gt;-23&lt;/numField&gt;
3678+ &lt;stringField&gt;stringValue&lt;/stringField&gt;
3679+ &lt;/rec&gt;
3680+ &lt;/table&gt;
3681+&lt;/xml&gt;
3682+</pre><p>EXAMPLE</p><pre class="programlisting"># Rename elements
3683+xml ed -r "/xml/table/rec" -v record xml/tab-obj.xml
3684+</pre><p>Output:</p><pre class="programlisting">&lt;xml&gt;
3685+ &lt;table&gt;
3686+ &lt;record id="1"&gt;
3687+ &lt;numField&gt;123&lt;/numField&gt;
3688+ &lt;stringField&gt;String Value&lt;/stringField&gt;
3689+ &lt;object name="Obj1"&gt;
3690+ &lt;property name="size"&gt;10&lt;/property&gt;
3691+ &lt;property name="type"&gt;Data&lt;/property&gt;
3692+ &lt;/object&gt;
3693+ &lt;/record&gt;
3694+ &lt;record id="2"&gt;
3695+ &lt;numField&gt;346&lt;/numField&gt;
3696+ &lt;stringField&gt;Text Value&lt;/stringField&gt;
3697+ &lt;/record&gt;
3698+ &lt;record id="3"&gt;
3699+ &lt;numField&gt;-23&lt;/numField&gt;
3700+ &lt;stringField&gt;stringValue&lt;/stringField&gt;
3701+ &lt;/record&gt;
3702+ &lt;/table&gt;
3703+&lt;/xml&gt;
3704+</pre><p>EXAMPLE</p><pre class="programlisting"># Update value of an attribute
3705+xml ed -u "/xml/table/rec[@id=3]/@id" -v 5 xml/tab-obj.xml
3706+</pre><p>Output:</p><pre class="programlisting">&lt;xml&gt;
3707+ &lt;table&gt;
3708+ &lt;rec id="1"&gt;
3709+ &lt;numField&gt;123&lt;/numField&gt;
3710+ &lt;stringField&gt;String Value&lt;/stringField&gt;
3711+ &lt;object name="Obj1"&gt;
3712+ &lt;property name="size"&gt;10&lt;/property&gt;
3713+ &lt;property name="type"&gt;Data&lt;/property&gt;
3714+ &lt;/object&gt;
3715+ &lt;/rec&gt;
3716+ &lt;rec id="2"&gt;
3717+ &lt;numField&gt;346&lt;/numField&gt;
3718+ &lt;stringField&gt;Text Value&lt;/stringField&gt;
3719+ &lt;/rec&gt;
3720+ &lt;rec id="5"&gt;
3721+ &lt;numField&gt;-23&lt;/numField&gt;
3722+ &lt;stringField&gt;stringValue&lt;/stringField&gt;
3723+ &lt;/rec&gt;
3724+ &lt;/table&gt;
3725+&lt;/xml&gt;
3726+</pre><p>EXAMPLE</p><pre class="programlisting"># Update value of an element
3727+xml ed -u "/xml/table/rec[@id=1]/numField" -v 0 xml/tab-obj.xml
3728+</pre><p>Output:</p><pre class="programlisting">&lt;xml&gt;
3729+ &lt;table&gt;
3730+ &lt;rec id="1"&gt;
3731+ &lt;numField&gt;0&lt;/numField&gt;
3732+ &lt;stringField&gt;String Value&lt;/stringField&gt;
3733+ &lt;object name="Obj1"&gt;
3734+ &lt;property name="size"&gt;10&lt;/property&gt;
3735+ &lt;property name="type"&gt;Data&lt;/property&gt;
3736+ &lt;/object&gt;
3737+ &lt;/rec&gt;
3738+ &lt;rec id="2"&gt;
3739+ &lt;numField&gt;346&lt;/numField&gt;
3740+ &lt;stringField&gt;Text Value&lt;/stringField&gt;
3741+ &lt;/rec&gt;
3742+ &lt;rec id="3"&gt;
3743+ &lt;numField&gt;-23&lt;/numField&gt;
3744+ &lt;stringField&gt;stringValue&lt;/stringField&gt;
3745+ &lt;/rec&gt;
3746+ &lt;/table&gt;
3747+&lt;/xml&gt;
3748+</pre></div><div class="sect1" title="4. Validating XML documents"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm47940098383920"></a>4. Validating XML documents</h2></div></div></div><p>Here is synopsis for 'xml val' command:</p><pre class="programlisting">XMLStarlet Toolkit: Validate XML document(s)
3749+Usage: xml val &lt;options&gt; [ &lt;xml-file-or-uri&gt; ... ]
3750+where &lt;options&gt;
3751+ -w or --well-formed - validate well-formedness only (default)
3752+ -d or --dtd &lt;dtd-file&gt; - validate against DTD
3753+ -s or --xsd &lt;xsd-file&gt; - validate against XSD schema
3754+ -r or --relaxng &lt;rng-file&gt; - validate against Relax-NG schema
3755+ -e or --err - print verbose error messages on stderr
3756+ -b or --list-bad - list only files which do not validate
3757+ -g or --list-good - list only files which validate
3758+ -q or --quiet - do not list files (return result code only)
3759+
3760+NOTE: XML Schemas are not fully supported yet due to its incomplete
3761+ support in libxml (see http://xmlsoft.org)
3762+
3763+XMLStarlet is a command line toolkit to query/edit/check/transform
3764+XML documents (for more information see http://xmlstar.sourceforge.net/)
3765+</pre><p>EXAMPLE</p><pre class="programlisting"># Validate XML document against DTD
3766+xml val --dtd dtd/table.dtd xml/tab-obj.xml &gt;/dev/null 2&gt;&amp;1; echo $?
3767+</pre><p>Output:</p><pre class="programlisting">1
3768+</pre><p>EXAMPLE</p><pre class="programlisting"># Validate against XSD schema
3769+xml val -b -s xsd/table.xsd xml/table.xml xml/tab-obj.xml 2&gt;/dev/null; echo $?
3770+</pre><p>Output:</p><pre class="programlisting">xml/tab-obj.xml
3771+1
3772+</pre></div><div class="sect1" title="5. Formatting XML documents"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm47940098376832"></a>5. Formatting XML documents</h2></div></div></div><p>Here is synopsis for 'xml fo' command:</p><pre class="programlisting">XMLStarlet Toolkit: Format XML document
3773+Usage: xml fo [&lt;options&gt;] &lt;xml-file&gt;
3774+where &lt;options&gt; are
3775+ -n or --noindent - do not indent
3776+ -t or --indent-tab - indent output with tabulation
3777+ -s or --indent-spaces &lt;num&gt; - indent output with &lt;num&gt; spaces
3778+ -o or --omit-decl - omit xml declaration &lt;?xml version="1.0"?&gt;
3779+ -R or --recover - try to recover what is parsable
3780+ -D or --dropdtd - remove the DOCTYPE of the input docs
3781+ -C or --nocdata - replace cdata section with text nodes
3782+ -N or --nsclean - remove redundant namespace declarations
3783+ -e or --encode &lt;encoding&gt; - output in the given encoding (utf-8, unicode...)
3784+ -H or --html - input is HTML
3785+ -h or --help - print help
3786+
3787+XMLStarlet is a command line toolkit to query/edit/check/transform
3788+XML documents (for more information see http://xmlstar.sourceforge.net/)
3789+</pre><p>EXAMPLE</p><pre class="programlisting"># Format XML document disabling indent
3790+cat xml/tab-obj.xml | xml fo --noindent
3791+</pre><p>Output:</p><pre class="programlisting">&lt;xml&gt;
3792+&lt;table&gt;
3793+&lt;rec id="1"&gt;
3794+&lt;numField&gt;123&lt;/numField&gt;
3795+&lt;stringField&gt;String Value&lt;/stringField&gt;
3796+&lt;object name="Obj1"&gt;
3797+&lt;property name="size"&gt;10&lt;/property&gt;
3798+&lt;property name="type"&gt;Data&lt;/property&gt;
3799+&lt;/object&gt;
3800+&lt;/rec&gt;
3801+&lt;rec id="2"&gt;
3802+&lt;numField&gt;346&lt;/numField&gt;
3803+&lt;stringField&gt;Text Value&lt;/stringField&gt;
3804+&lt;/rec&gt;
3805+&lt;rec id="3"&gt;
3806+&lt;numField&gt;-23&lt;/numField&gt;
3807+&lt;stringField&gt;stringValue&lt;/stringField&gt;
3808+&lt;/rec&gt;
3809+&lt;/table&gt;
3810+&lt;/xml&gt;
3811+</pre><p>EXAMPLE</p><pre class="programlisting"># Recover malformed XML document
3812+xml fo -R xml/malformed.xml 2&gt;/dev/null
3813+</pre><p>Input:</p><pre class="programlisting">&lt;test_output&gt;
3814+ &lt;test_name&gt;foo&lt;/testname&gt;
3815+ &lt;subtest&gt;...&lt;/subtest&gt;
3816+&lt;/test_output&gt;
3817+</pre><p>Output:</p><pre class="programlisting">&lt;test_output&gt;
3818+ &lt;test_name&gt;foo&lt;/test_name&gt;
3819+ &lt;subtest&gt;...&lt;/subtest&gt;
3820+&lt;/test_output&gt;
3821+</pre></div><div class="sect1" title="6. Canonicalization of XML documents"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm47940098584992"></a>6. Canonicalization of XML documents</h2></div></div></div><p>Here is synopsis for 'xml c14n' command:</p><pre class="programlisting">XMLStarlet Toolkit: XML canonicalization
3822+Usage: xml c14n &lt;mode&gt; &lt;xml-file&gt; [&lt;xpath-file&gt;] [&lt;inclusive-ns-list&gt;]
3823+where
3824+ &lt;xml-file&gt; - input XML document file name (stdin is used if '-')
3825+ &lt;xpath-file&gt; - XML file containing XPath expression for
3826+ c14n XML canonicalization
3827+ Example:
3828+ &lt;?xml version="1.0"?&gt;
3829+ &lt;XPath xmlns:n0="http://a.example.com" xmlns:n1="http://b.example"&gt;
3830+ (//. | //@* | //namespace::*)[ancestor-or-self::n1:elem1]
3831+ &lt;/XPath&gt;
3832+
3833+ &lt;inclusive-ns-list&gt; - the list of inclusive namespace prefixes
3834+ (only for exclusive canonicalization)
3835+ Example: 'n1 n2'
3836+
3837+ &lt;mode&gt; is one of following:
3838+ --with-comments XML file canonicalization w comments (default)
3839+ --without-comments XML file canonicalization w/o comments
3840+ --exc-with-comments Exclusive XML file canonicalization w comments
3841+ --exc-without-comments Exclusive XML file canonicalization w/o comments
3842+
3843+XMLStarlet is a command line toolkit to query/edit/check/transform
3844+XML documents (for more information see http://xmlstar.sourceforge.net/)
3845+</pre><p>EXAMPLE</p><pre class="programlisting"># XML canonicalization
3846+xml c14n --with-comments ../examples/xml/structure.xml ; echo $?
3847+</pre><p>Input ../examples/xml/structure.xml</p><pre class="programlisting">&lt;a1&gt;
3848+ &lt;a11&gt;
3849+ &lt;a111&gt;
3850+ &lt;a1111/&gt;
3851+ &lt;/a111&gt;
3852+ &lt;a112&gt;
3853+ &lt;a1121/&gt;
3854+ &lt;/a112&gt;
3855+ &lt;/a11&gt;
3856+ &lt;a12/&gt;
3857+ &lt;a13&gt;
3858+ &lt;a131/&gt;
3859+ &lt;/a13&gt;
3860+&lt;/a1&gt;</pre><p>Output</p><pre class="programlisting">&lt;a1&gt;
3861+ &lt;a11&gt;
3862+ &lt;a111&gt;
3863+ &lt;a1111&gt;&lt;/a1111&gt;
3864+ &lt;/a111&gt;
3865+ &lt;a112&gt;
3866+ &lt;a1121&gt;&lt;/a1121&gt;
3867+ &lt;/a112&gt;
3868+ &lt;/a11&gt;
3869+ &lt;a12&gt;&lt;/a12&gt;
3870+ &lt;a13&gt;
3871+ &lt;a131&gt;&lt;/a131&gt;
3872+ &lt;/a13&gt;
3873+&lt;/a1&gt;
3874+0
3875+</pre><p>EXAMPLE</p><pre class="programlisting"># XML exclusive canonicalization
3876+xml c14n --exc-with-comments ../examples/xml/c14n.xml ../examples/xml/c14n.xpath
3877+</pre><p>Input</p><pre class="programlisting">../examples/xml/c14n.xml
3878+
3879+&lt;n0:pdu xmlns:n0='http://a.example.com'&gt;
3880+&lt;n1:elem1 xmlns:n1='http://b.example'&gt;
3881+content
3882+&lt;/n1:elem1&gt;
3883+&lt;/n0:pdu&gt;
3884+
3885+../examples/xml/c14n.xpath
3886+
3887+&lt;XPath xmlns:n0="http://a.example.com" xmlns:n1="http://b.example"&gt;
3888+(//. | //@* | //namespace::*)[ancestor-or-self::n1:elem1]
3889+&lt;/XPath&gt;
3890+
3891+</pre><p>Output</p><pre class="programlisting">&lt;n1:elem1 xmlns:n1="http://b.example"&gt;
3892+content
3893+&lt;/n1:elem1&gt;
3894+</pre></div><div class="sect1" title="7. XML and PYX format"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm47940098350080"></a>7. XML and PYX format</h2></div></div></div><p>Here is synopsis for 'xml pyx' command:</p><pre class="programlisting">XMLStarlet Toolkit: Convert XML into PYX format (based on ESIS - ISO 8879)
3895+Usage: xml pyx {&lt;xml-file&gt;}
3896+where
3897+ &lt;xml-file&gt; - input XML document file name (stdin is used if missing)
3898+
3899+The PYX format is a line-oriented representation of
3900+XML documents that is derived from the SGML ESIS format.
3901+(see ESIS - ISO 8879 Element Structure Information Set spec,
3902+ISO/IEC JTC1/SC18/WG8 N931 (ESIS))
3903+
3904+A non-validating, ESIS generating tool originally developed for
3905+pyxie project (see http://pyxie.sourceforge.net/)
3906+ESIS Generation by Sean Mc Grath http://www.digitome.com/sean.html
3907+
3908+XMLStarlet is a command line toolkit to query/edit/check/transform
3909+XML documents (for more information see http://xmlstar.sourceforge.net/)
3910+</pre><p>EXAMPLE</p><pre class="programlisting">xml pyx input.xml
3911+</pre><p>Input (input.xml)</p><pre class="programlisting">&lt;books&gt;
3912+&lt;book type='hardback'&gt;
3913+&lt;title&gt;Atlas Shrugged&lt;/title&gt;
3914+&lt;author&gt;Ayn Rand&lt;/author&gt;
3915+&lt;isbn id='1'&gt;0525934189&lt;/isbn&gt;
3916+&lt;/book&gt;
3917+&lt;/books&gt;</pre><p>Output</p><pre class="programlisting">(books
3918+-\n
3919+(book
3920+Atype hardback
3921+-\n
3922+(title
3923+-Atlas Shrugged
3924+)title
3925+-\n
3926+(author
3927+-Ayn Rand
3928+)author
3929+-\n
3930+(isbn
3931+Aid 1
3932+-0525934189
3933+)isbn
3934+-\n
3935+)book
3936+-\n
3937+)books</pre><p>PYX is a line oriented format for XML files which can be helpful
3938+ (and very efficient) when used in combination with regular line oriented
3939+ UNIX command such as sed, grep, awk.</p><p>'depyx' option is used for conversion back from PYX into
3940+ XML.</p><p>EXAMPLE (Delete all attributes). This should work really fast for
3941+ very large XML documents.</p><pre class="programlisting">xml pyx input.xml | grep -v "^A" | xml depyx</pre><p>Output</p><pre class="programlisting">&lt;books&gt;
3942+&lt;book&gt;
3943+&lt;title&gt;Atlas Shrugged&lt;/title&gt;
3944+&lt;author&gt;Ayn Rand&lt;/author&gt;
3945+&lt;isbn&gt;0525934189&lt;/isbn&gt;
3946+&lt;/book&gt;
3947+&lt;/books&gt;</pre><p>Here is an article which describes how PYX format can be used to
3948+ grep XML. <a class="link" href="http://www-106.ibm.com/developerworks/xml/library/x-matters17.html" target="_top">http://www-106.ibm.com/developerworks/xml/library/x-matters17.html</a></p></div><div class="sect1" title="8. Escape/Unescape special XML characters"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm47940098340288"></a>8. Escape/Unescape special XML characters</h2></div></div></div><p>Here is synopsis for 'xml esc' command:</p><pre class="programlisting">xml esc --help
3949+XMLStarlet Toolkit: Escape special XML characters
3950+Usage: xml esc [&lt;options&gt;] [&lt;string&gt;]
3951+where &lt;options&gt; are
3952+ --help - print usage
3953+ (TODO: more to be added in future)
3954+if &lt;string&gt; is missing stdin is used instead.
3955+
3956+XMLStarlet is a command line toolkit to query/edit/check/transform
3957+XML documents (for more information see http://xmlstar.sourceforge.net/)
3958+</pre><p>EXAMPLE</p><pre class="programlisting"># Escape special XML characters
3959+cat xml/structure.xml | xml esc
3960+</pre><p>Input</p><pre class="programlisting">&lt;a1&gt;
3961+ &lt;a11&gt;
3962+ &lt;a111&gt;
3963+ &lt;a1111/&gt;
3964+ &lt;/a111&gt;
3965+ &lt;a112&gt;
3966+ &lt;a1121/&gt;
3967+ &lt;/a112&gt;
3968+ &lt;/a11&gt;
3969+ &lt;a12/&gt;
3970+ &lt;a13&gt;
3971+ &lt;a131/&gt;
3972+ &lt;/a13&gt;
3973+&lt;/a1&gt;</pre><p>Output</p><pre class="programlisting">&amp;lt;a1&amp;gt;
3974+ &amp;lt;a11&amp;gt;
3975+ &amp;lt;a111&amp;gt;
3976+ &amp;lt;a1111/&amp;gt;
3977+ &amp;lt;/a111&amp;gt;
3978+ &amp;lt;a112&amp;gt;
3979+ &amp;lt;a1121/&amp;gt;
3980+ &amp;lt;/a112&amp;gt;
3981+ &amp;lt;/a11&amp;gt;
3982+ &amp;lt;a12/&amp;gt;
3983+ &amp;lt;a13&amp;gt;
3984+ &amp;lt;a131/&amp;gt;
3985+ &amp;lt;/a13&amp;gt;
3986+&amp;lt;/a1&amp;gt;
3987+</pre></div><div class="sect1" title="9. List directory as XML"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm47940098335296"></a>9. List directory as XML</h2></div></div></div><p>Here is synopsis for 'xml ls' command:</p><pre class="programlisting">XMLStarlet Toolkit: List directory as XML
3988+Usage: xml ls
3989+Lists current directory in XML format.
3990+
3991+XMLStarlet is a command line toolkit to query/edit/check/transform
3992+XML documents (for more information see http://xmlstar.sourceforge.net/)
3993+</pre><p>EXAMPLE</p><pre class="programlisting">xml ls
3994+</pre><p>Output</p><pre class="programlisting">&lt;xml&gt;
3995+&lt;d p="rwxrwxrwx" a="20050107T050740Z" m="20050107T050740Z" s="0" n="old-resume"/&gt;
3996+&lt;f p="rw-rw-rw-" a="20050107T045941Z" m="20050107T045941Z" s="12" n="resume.2old"/&gt;
3997+&lt;f p="rw-rw-rw-" a="20050107T045924Z" m="20050107T045924Z" s="81" n="resume.xml"/&gt;
3998+&lt;/xml&gt;
3999+</pre></div></div><div class="chapter" title="Chapter 5. Common problems"><div class="titlepage"><div><div><h2 class="title"><a name="idm47940098331264"></a>Chapter 5. Common problems</h2></div></div></div><div class="sect1" title="1. Namespaces and default namespace"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm47940098330320"></a>1. Namespaces and default namespace</h2></div></div></div><p>One of the commonly asked questions about XmlStarlet 'select' or
4000+ 'edit' options is: "Why nothing matched for my XPath expression which
4001+ seems right to me?". Common cause of these problems is not properly
4002+ defining a namespace for XPath. This chapter will show several examples
4003+ to illustrate these issues you might encounter.</p><p>For example the following XHTML document has a default namespace
4004+ declaration</p><pre class="programlisting">&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
4005+&lt;head&gt;
4006+&lt;title&gt;Query Page&lt;/title&gt;
4007+&lt;meta http-equiv="Content-Style-Type" content="text/css" /&gt;
4008+&lt;meta http-equiv="Content-Script-Type" content="text/javascript" /&gt;
4009+&lt;meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /&gt;
4010+&lt;meta name="robots" content="noindex,nofollow" /&gt;
4011+&lt;/head&gt;
4012+&lt;body&gt;
4013+...
4014+&lt;/body&gt;
4015+&lt;/html&gt;
4016+</pre><p>And the following (initially looking correct) query to print all
4017+ links</p><pre class="programlisting">xml sel -t -m "//a" -c . -n </pre><p>would return nothing. The issue with this query is that it is not
4018+ addressing element &lt;a&gt; in the right namespace. XPath requires all
4019+ namespaces used in XPath expression be defined. So for declared
4020+ namespace &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt; in input
4021+ XML, you have to do same for XPath (or XSLT). There is another important
4022+ detail: namespace equivalency is determined not by namespace prefix, but
4023+ by URI. See query below, which would return expected result</p><pre class="programlisting">xml sel -N x="http://www.w3.org/1999/xhtml" -t -m "//x:a" -c . -n</pre><p>Example of deleting namespace declarations.</p><p>Delete namespace declarations and all elements from non default
4024+ namespace from the following XML document:</p><p>Input (file ns2.xml)</p><pre class="programlisting">&lt;doc xmlns="http://www.a.com/xyz" xmlns:ns="http://www.c.com/xyz"&gt;
4025+ &lt;A&gt;test&lt;/A&gt;
4026+ &lt;B&gt;
4027+ &lt;ns:C&gt;xyz&lt;/ns:C&gt;
4028+ &lt;/B&gt;
4029+&lt;/doc&gt;
4030+</pre><p>Command:</p><pre class="programlisting">xml ed -N N="http://www.c.com/xyz" -d '//N:*' ns2.xml | \
4031+ sed -e 's/ xmlns.*=".*"//g'</pre><p>Output</p><pre class="programlisting">&lt;doc&gt;
4032+ &lt;A&gt;test&lt;/A&gt;
4033+ &lt;B/&gt;
4034+&lt;/doc&gt;
4035+</pre></div><div class="sect1" title="2. Special characters"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm47940098320880"></a>2. Special characters</h2></div></div></div><p>Sometimes issues appear with handling of special characters, where
4036+ 'special' means in XML sence as well as in 'shell' terms. Examples below
4037+ should clear at least some of the confusions.</p><p>You should not forget about the fact that your command lines are
4038+ executed by shell and shell does substitutions of its special characters
4039+ too. So for example, one may ask:</p><p>"Why does the following query return nothing?"
4040+ </p><pre class="programlisting">echo '&lt;X name="foo"&gt;EEE&lt;/X&gt;' | xml sel -t -m /X[@name='foo'] -v .</pre><p>The answer lies in the way shell substitues 'foo', which simply
4041+ becomes foo before the command is run. So the correct way to write that
4042+ would be</p><pre class="programlisting">echo '&lt;X name="foo"&gt;EEE&lt;/X&gt;' | xml sel -t -m "/X[@name='foo']" -v .</pre><p>Another example involves XML special characters. Question: How to
4043+ search for &amp;apos; in text nodes?</p><p>The following should help</p><pre class="programlisting">xml sel -t -m "//line[contains(text(),&amp;quot;'&amp;quot;)]" -c .
4044+</pre></div><div class="sect1" title="3. Sorting"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm47940098315040"></a>3. Sorting</h2></div></div></div><p>Let's take a look at XSLT produced by the following 'xml sel'
4045+ command:</p><pre class="programlisting"># Query XML document and produce sorted text table
4046+xml sel -T -t -m /xml/table/rec -s D:N:- "@id" \
4047+ -v "concat(@id,'|',numField,'|',stringField)" -n xml/table.xml
4048+</pre><pre class="programlisting">&lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;
4049+&lt;xsl:output omit-xml-declaration="yes" indent="no" method="text"/&gt;
4050+&lt;xsl:param name="inputFile"&gt;-&lt;/xsl:param&gt;
4051+&lt;xsl:template match="/"&gt;
4052+ &lt;xsl:call-template name="t1"/&gt;
4053+&lt;/xsl:template&gt;
4054+&lt;xsl:template name="t1"&gt;
4055+ &lt;xsl:for-each select="/xml/table/rec"&gt;
4056+ &lt;xsl:sort order="descending" data-type="number"
4057+ case-order="upper-first" select="@id"/&gt;
4058+ &lt;xsl:value-of select="concat(@id,'|',numField,'|',stringField)"/&gt;
4059+ &lt;xsl:value-of select="'&amp;#10;'"/&gt;
4060+ &lt;/xsl:for-each&gt;
4061+&lt;/xsl:template&gt;
4062+&lt;/xsl:stylesheet&gt;
4063+</pre><p>-s option of 'xml sel' command controls 'order', 'data-type', and
4064+ 'case-order' attributes of &lt;xsl:sort/&gt; element .</p></div><div class="sect1" title="4. Validation"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm47940098310752"></a>4. Validation</h2></div></div></div><p>Many questions are asked about XSD (XML schema) validation. Well,
4065+ XmlStarlet relies on libxml2 which has incomplete support for XML
4066+ schemas. Untill it is done in libxml2 it will not be in
4067+ XmlStarlet.</p><p></p><p></p></div></div><div class="chapter" title="Chapter 6. Other XmlStarlet Resources"><div class="titlepage"><div><div><h2 class="title"><a name="idm47940098308416"></a>Chapter 6. Other XmlStarlet Resources</h2></div></div></div><p>Here are few articles on the Internet.</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><a class="link" href="http://www.freesoftwaremagazine.com/free_issues/issue_06/xml_starlet/" target="_top">XMLStarlet:
4068+ a Unix toolkit for XML</a></p></li><li class="listitem"><p><a class="link" href="http://www-128.ibm.com/developerworks/xml/library/x-starlet.html" target="_top">Start
4069+ working with XMLStarlet</a></p></li><li class="listitem"><p><a class="link" href="http://blogicblog.blogspot.com/2004/09/xmlstarlet-gentle-introduction-into.html" target="_top">XMLStarlet:
4070+ A gentle introduction into XSLT </a></p></li><li class="listitem"><p><a class="link" href="http://blogs.applibase.net/pramod/index.php/archives/command-line-xml-with-xmlstarlet%20" target="_top">Command
4071+ line XML with XMLStarlet </a></p></li><li class="listitem"><p><a class="link" href="http://www.pinkjuice.com/howto/vimxml/moresetup.xml#xmlstarlet" target="_top">Using
4072+ vi as XML editor</a></p></li></ul></div></div></div></body></html>
4073
4074=== added file 'l10n_mx_facturae/depends_app/xmlstarlet_win/doc/xmlstarlet-ug.pdf'
4075Binary files l10n_mx_facturae/depends_app/xmlstarlet_win/doc/xmlstarlet-ug.pdf 1970-01-01 00:00:00 +0000 and l10n_mx_facturae/depends_app/xmlstarlet_win/doc/xmlstarlet-ug.pdf 2013-09-25 00:33:17 +0000 differ
4076=== added file 'l10n_mx_facturae/depends_app/xmlstarlet_win/doc/xmlstarlet-ug.ps'
4077--- l10n_mx_facturae/depends_app/xmlstarlet_win/doc/xmlstarlet-ug.ps 1970-01-01 00:00:00 +0000
4078+++ l10n_mx_facturae/depends_app/xmlstarlet_win/doc/xmlstarlet-ug.ps 2013-09-25 00:33:17 +0000
4079@@ -0,0 +1,5031 @@
4080+%!PS-Adobe-3.0
4081+%%BoundingBox: 0 0 612 792
4082+%%Creator: GPL Ghostscript 905 (ps2write)
4083+%%LanguageLevel: 2
4084+%%CreationDate: D:20130309134726-05'00'
4085+%%Pages: 31
4086+%%EndComments
4087+%%BeginProlog
4088+currentfile /ASCII85Decode filter /LZWDecode filter cvx exec
4089+J.'GP1)YJ2:a-L/6rF=&5]f",9VMV4PfsINPg$$lJV;<[.@O%03.smQ('PQ#V^%=ggiP:i9P6m1
4090+&e,,#6QsIUEP1^W4j%>VfmLeP21i['0XteJ5'-rMBI73qYi]MqRS:_)[:!GtMG0%^!tgdCBfAL(
4091+FIC*'*+_5Lbn>92]]a#cSAZ&>A@c2Y\jd2S!P$:g'tTf,7oM*o%:D37/I$S.]\mgscphMRIG413
4092+(Z=Q;")5F8)`Qr"=NfCOoQ)ibUD`CCLE1_#S2=*J!5rCj3Lri1"+f$rI5+n6R8\*imVK6JF'6bb
4093+K6LhRl->%^S_n48hjF.$II@,f_rC4^-LP1_'P3RLc;\MOTYp+S)1DfDO=9f_O"?+02SP(nbd7C:
4094+,PLpub<")6Npp03rriEO8hG\t/)iPl&$ta\\RQ9Wgl-k@=tkndE8\D75lag+XU?*o2[gpEb1/4_
4095+BZAX`K9TgZ#@RV(1FmBR-6\B/B\N?BO_@Vr7L=<GnOZVd5W0)A6u^^ICXf(>"T\V8$O%^;5Vik%
4096+X'glQ&<tJ?WpTttQ@o@Eg;o3tUt"B_1Z71&/.QIn1Sq12j>*a1@^:p3EN%"o$GpU)'[TYQ@QTSU
4097+nut<Y5Z5rcNg(['3%k@Njom:E._tDY%t$;S7b!,<%>?#Tir:g;o0>'j".6sSKF-Xc[#\]9nh?)(
4098+b<?`oQ1][Td'K/fhp0>\N%g59D&*:Me&:ml/dmpA&6p`Qi7t=\`/p7D08%F*.t]<`1C`Sqqum6*
4099+.&89uifotYZKZeY4C2)8?UnK4`+=N/GJKdp#f8![+pfH4NXuJ*Ga]t831^&l@9=Q2N(T7;fdk5j
4100+-51q_)&sA#L#[RM0o^>`HCq,iX=brZJd@)WLJoepSnHaW;jH<eF=!=:H)jE7jYFDP1Tp!N3s[kW
4101+DFK;=K<5)!N`iK$S;"QTeeWs#m/Jk"%?dLjD+JpB3(ERm2n>Z0*oX:*$]*2UAuY"YS;#osg,n13
4102+/AH&NLq_jibAl$W_pN5YY,J2/V";SV>dCW*9R7@6!'j@)`#%q8b!)^^R;Np&NjT&!QOJq%fVlK$
4103+>Y[%\ULON#p>)Z^_lsM"*47!.#jO;XJsc"'/m#dH47DEKK6,B<_P4$T#b0YioA.<Kb(m'WHoEg3
4104+OD5_0?TT\1"l\or4R1gbbfR8upWiGZIt3Vc![)2.iQsT:J7*;HQo'5!g`-EXJe3MN6jTJ''YCj:
4105+AO;%HJ)T>c"+l-[6"i"Y"d)V#!jkZ&HlISi%<+8dHKt[-0g5WjWgVK")kHS)!C5'G5XOrXN]WY+
4106+"[VMqL\aUDH#3rY80J.;/eK-tbB^9R3^"=C;W:eY$)'Tq709G&So`6f"C`Z5_O)!Glqr%jL+:1s
4107+?53O77Z!6g1r]7A'dBk[%H5\sL/L'&bLBjD;;O#>J;gEOpgoOAW[Z"c?4b<Mn<#IY4%S#X7L7B]
4108+;ac;$a&rWnU9YD<kD20^o=!>GH05;1Zl#_CJoZd#'Q8QM]E7bf*.nNBQAs:4#8$S>60V:%meQ>e
4109+d\=DdQmcW@)+4]Y:9jt($3emP(Bmai7?3;6Ls2Fb&X#'sADtrpEU#^m8Go?E!&'H)C-Vh&jC`"S
4110+09T8.G6]=DfmuCAS<<M:K"sZ5UdXiIe&HG6.4,<95ne3:+>tO!,')\:F.:X_O:i\YdFMbGLJB^K
4111+^KK/6kCetje-PbDH(YKm,kIS'j:G.q&l4Vi+JL[kO3WV:S"4VZ;oNWa!qh4Bb'NeE-]OTH14j2]
4112+.[tbKp$=%$NA4\NgHDea,_n(R*#kUc%rJ6Z";"I5%3)?QTV*l:pgDUM6as'b<&(A6A/X>&Hp99W
4113+]?l.4/lb:m2tFaH2(Ifpj_<n\.Jt'8$M_Eg&YlJ9]EMD9`,:SY`a!L!A01MO&REXt%KVa%fK/r\
4114+$^q6(V$=oQRgh7@m=gh'nqPg2O"qDBigZ&S[YHq*hUDFEZk'SB=RbouWgS":VHc'[?ka+PjL25^
4115+l<:#Fg_mqRoTs7Jk?6!$VHKW9QLa2&RG-@3CO<!8<RU$a>2BMcn31_*co>6QiYfq'J>KO=_;4G2
4116+)=A]GL%ZSPJ?"B8.JZ40<[aZ.i6IVj&QJrLW"<.JfL*`:'.W:&"CS-5@LJb@^u<$2W2X!0_nGSP
4117+Qd*@_BQ,#+jr^u?pCRV;MB.>g**fK=mA1/W\gi<$;mib&"=14r!YLAABQ+mm:hgETXh9&n@&9fR
4118+.YeDj6ndWFb(T9&)OHP-$:l3/#EYAk6blB1Fk,H'%*b&X^0/WjT.ZVbM3STp<m(Wl24'ILDr*3^
4119+:^ILdk=iFWo)<(AG(dXJKuiZBIK_%nb:M)nQ\41G6scRR8J7h89>[)C-=j37PsW&n69MbWKZd'0
4120+diFq$*dK=[]Hi6n5T37n<%\4#0:=<dP4c)Fe[iDnlVr;7e'>]]H71giNJ)YaM12g4be!*_g)N!>
4121+C"O?cphCO5WHBcSe@:IT=(uV]p9(.E'9nSK`b6%gHnn'D*i`u=A#sgEd1715RdJk=\2S<<%@Y@#
4122+CJBGg\#/BF=mbttKTMK%OAib(-kJKr_jiZ#GbM'd,;3.*_f\81bMeIE115tYNtF*p)RRtK,iTcM
4123+H%FWo^CB/US=FQL'i@Q$p`E&06A#3Kh;PR_Kef1-Lmu3BLX";dU,j;C-uL\C3<JgsYL*\:7[0U*
4124++t&JiQI/%e/,VN7]FJG,$E4m*>/3$!?2Mrl-E$0c2$=!MKFuN?`!er90XF)0F(N9E?D[)eR8Bmp
4125+_O#6qUqTafo>SQQC"^='Pfe\U"0h\E'^QZ$:NHRrb=\^;j`+6Yn:Dd2_k'4'\BhALmhl(VVi]%k
4126+fJZ,,-f6R@aOlt6h.5_%r&Ycrg=hK?m?OThF]=+Tdt`NCJ;/KK_)"7p/%WKTfs>gm@RVA#`p5ar
4127+2;`@I%HLUMQVai4K."kOIoG$G+)-@U[O3i+LM*6N%Xc#&AI6L=]`T7;JURn,%&)=A#$n;aC6C?N
4128+T`9P^%%sC%i.SrK9[YTfs.G)QTX"lC'RR\no5DpmaDu_0@LM+)#(XEJ."$^+^B81LQ*<<)W(`!R
4129+;E.#nlN##cU0`I&MZ0b6g7gLQJnD@9E6CrS%SXOZ%)f@8$mm+`2IbC^`S:XdG0[2C1i-d>.Y81M
4130+Sn@04,@[IJY:9s^EjuB/37)h5bZ#ddq[%4g#OM[#5gp"#N6/6.6]dPYY^"EOm]>opQ8"sV@Y2U7
4131+R_aq&[Dq&ZY`B6mrsY"N#Kk>007sb=`srZJck(`SDUptkBYt2'&!&cfkCF"WG_m"N4qPN:nAGG0
4132+Ns>+3Zc;o^!eQ2c$P0/C&.#M#@#ekBOB:Eg$mI).,R3^OO@@*67O)fTl%!qh(riH4jU56PW_@4O
4133+5Qq.dDs?'f&U9(h%L!2A.]7II!6goT5Y8aW)GF0h8i3FmhMA'jR*,gqll<=N7h\6H2Y#69;9Eq;
4134+TaT6*.O[j@Nl2EI3[LH?-o"1$OEN$,N5=TYD=FiOWh-OND%8,`4p4-WdJjGf8Im4SPmh7.&gRW8
4135+-qkiU%DY^i@hBYHb*`SN5=-h[?r.%M;?bK+*!>t'Ol16!q%Vt*,)*u[aB^#&Td*GfYe]EHdQj9(
4136+RRA>N;!M71b$kMSAL2A#UG?/NCHWeSHR?Vm-O%I:9]dmHGpb@q-j&WY;Mn5%RR@dO#'-*'nsi"/
4137+@^<tl*/]!@1),QS8j.lj"n!r@A8D`kO<Xb(>:C6iXu\c9-6icp%>2#7;/E3Xe.(Nl?.0K4+S#u7
4138+`:L;>NUluW?s3h33]V7'0XD5t@)FcV2_q5\8&O:B5hRrP+sR)p<+*q#-d][^0/<%p0-FF)./5h'
4139+a"jt`,BFD"XK4Gf?mLq:On0GI^u[Ncjpa,%1:(aLo//B]E%7Sn2hJRro0YP]aZ))D,h!hlV;"!d
4140+[6'SA0h]rD!/=V6g^#AJb@'Kmn-W.QpD(tn('\hC,nW:]g6#=liJ3A*8i](s>Wr_V.kqtS_Oe*W
4141+FKV@R`bAXC_gj^5K"p?eDDGnEb\VVWE@NS=Db?ISX$""pUi-mC"lNVkmUW8jIgY96$S6=t@,T&3
4142+"GpNDM6UMs!/NjsY^Zd^Iq`G1A[`7F0Ha>:DNhOJ&MkIZFY36OHm&9kX!g/)@g2qsJ0h9l@g>;:
4143+#g/3\8sHF#,NO<<1:I?I/mudR[&G\g)%'r1,&;/Fb?B8S4%^r@Tq[5<_Sg[U@1@;D7];hi.BOjI
4144+>fgR@?rVIh`u\H'$Reo1?IYT><:*.rlsCFq54dD9PMJI"^cdn^a)^/lW%pgn[`Do`!2]-^<;f;E
4145+:_.)AEG!]K.>A?Y_bg"G[M8(%+T#*30,%g[$:XAZ.E'5HX:5NJr="H'Oe4-O=RQC`%5.?TVYqa&
4146+Ij=%U-'DOc;21ir[k3-W1U6s%A3a:P(hEhH!C44dBK6V/pJc/Qj9G3[2*W06j]#lgQ>(*jl_c4S
4147+hb-WZ?W8SqX>*H7^c.1_L-e(le4<Wjq]-8$XWs-:[,.(BT3K/k>S\@j2AX-;)G8R'2teT8jKM&Z
4148+HXY-6$O=9e$DU'#?V.O9LuR^J5b*mEn9kK.&#\=m8P0>EnER9!=Hq]26H*:YoPI.U\ZkL9+NAl8
4149+!m1.nDO,N(Y*?$]+>^HdCN:jECj0YPG?uV*b4SNli2&o-ChG0/;s]iOK#^D^@od-T8)Q[MFd#m!
4150+o,/:Q1l7mC$G$\sP0pH#4r'PilGkE_W!4!=/M^a=2*GNf0QrC7%9C3"<@.kc(s:oE#GnkH2Lm,t
4151+KU:30"kP(15eg"dHYSYA$-!is;.!<Gp&u6p4dR+00l^q2c9[cD([P1i,s*\n3HGLB6tpm^G)-GM
4152+PXGsgSBf>dX9'kN>tJ's6koH52^6]qj[YWkD+1lh[Vu],F_TH:mqQl![UEc<nIit`HOTmZdUPl"
4153+\U$SGa30@/2c3AZ`b8q[IEY2u'EndHPCC<u?"O3rG1N;4K"#:8G,F;,QS!DrjUqgda_Q<Mp[mjs
4154+It+dBJ*1!RfHC^+'(Re'1j@#<7tH.L21Ltj/7V/7Uel6E7*5(VKU=5tEnWM"\NL/rAs`cTj8F1V
4155+kQUYg4r*[,M=Dciq'3;H0N`W2<skiA&SlS)T2YP>bpZoa*2na`W&BI^JEL6J/S`n0CfLC@'f.Pq
4156+W./s?<'i0BYR7.LEu8_+*)``TOLB$TGdVND8f2,@Jh`3/:'`*BYA@:$d6if2]JHRgMaJD*euiGk
4157+gDG14Z4SmPo%\UHoM<"F7QBl^-)B!8:0UBWC_ub8@#!<s,nF*hKldWTa\"*n^j$WOL@r-?phC7`
4158+?$t,YM?;ZPF]!Tq;14GIP@-\Af&'K7I8MIRo5V'#2XkD<VDq-W5:E2c/NO=gR1m`POE`("m".c^
4159+gimu]Xoi='Qh`*K^OE[>LI0pB;)CoLd1s2TK3:QoOeF7,6YmUQ<EXU271]p1%Ri;;P3fmlH$c/+
4160+L^pPZR[C^-3WG`tCS5t\6\gXIQkE?$2Y.=u`bXI>%nc12[pfYI5dlM.Guh4S3!KpiS"oqOMoIN-
4161+[?k>GTNVW%3JA9s'M<,cI(E4*0mY/>fRJ&<&fPS7g2K^G_?ZG:Djl=a^pjj)dAO#DZ*E,F\itie
4162+SRIcMKfWq4K9'8,$Y1W"$_gP="TXrW1RXZ,dY6cZH)$g=-M3?Ok#r:<7Id'3nY(89I08/s#8qr"
4163+@[Yo<TX<5JYO6Y2%b4s=#lsGui.<)%OpNO:XREZJ!.kFUCU"fm#s0H$qTq!jQjZ0^"oC1bq_>A>
4164+O9iYSSPJC=gHu%-H3oH#Pdt)-,:Wt,L'YmB#[igU!0#,@@+$0P$A&Gj]6==[AhXfE!tha^!.q6V
4165+Bs4;j5$Hj1>EWlVft!,:6+ZT;9*g7Ad\%N/FG5Kl`T9K:C2VW^PG"hW@-P7ks%$mQFLX!:2X;s<
4166+r=f=ks&l!>T]AlF]Vle,Bf3D)H&eQ&Li8LrL"%/tebH@*-,+/CW`ZI;j5ms7V6A50]p>^])remA
4167+4+la@^7,Y@47U'igUm@[NTu-9AG[Km:b*-96ao&dHaR:p"+;"?D>ZDSFu6V>B5m%/'3([C<11;\
4168+SPi"cMhIIH]&fd"l(PW;=*W=KV9tVh^8nl2\pPm9\bE]0'-@3]GiD]W>a:M;adoqD>du]7=[o^l
4169+AX0A%Sf)%(Gb(.q:R:-5b#MHb_i:?moaNp6G.@U=2W:#?$Z3G1;n5S)06668`70gqW'(UomrmK'
4170+9X.^!aumd2J=`eenifD41iIuF\W*]%_KL^ZT/i1<R@UV:e%f."YoKeJr3*]3F'TRK)-.p3G[?g.
4171+PunW]%:E#tW;(+(<:=F0gr=(;."GUUNHeoAeD3_dVRAJ7S.4,7*&s61-'"D3P*uW.aB\.ASF`n/
4172+oQHb30"il?3T&(!ioN1'OD:eX1fV7kLe.p6hl'odi16NoO:DHJSNJQIi"a'n`3b0:F[\3E7lI,t
4173+;H$cjM7oP*>jNjse:(rGiV)A(;Blm_ha7,Pi&j.t$m-O2!?SmNP15b;rS?.nM@@/2hCIn\%k#QT
4174+pBn?j[#Kp:Oh8Uim@tsA1VE8%)18>:cc7RYkEKQ$]trnMo?"A0I_"pk5+%_gL]u<Y%Fm3[F5uD0
4175+_8"_9[ANSf'@g"[Xq"CjahA_;J<15uh@4S+EVECu5aZ+4@P7%/in@jL<f'Ns*N#[A^9jl-TZ_[k
4176+-8]n&n5LK>*6_oB%:iu1n'^[nI3%,<S5l0Q7`[?S$N'-s'cSCN:njYRj,R'Po&AO-n6PGhN$IuO
4177+^[bPAn3C\tg\]aFF%VJD\H[afr]IB>:^k3I>SfD`V\8VdH3=5WWFj8ATX^CjgIk(RK'-AB!4W1T
4178+>B6^(;?[a<!4tK/WVNaJq>Te5EJ)<hXBu@aDI5jZo[R\I>u4N?oAK/0"Zi7iWU2n#6_M:L6@)/&
4179+MfrVj"[)c,#D%.;hJP@dN@)Ol;"AQ\L^`EETY+TB3?4%A+T[hsAMJdtVSd\li!P%O:6Dm!N6i\,
4180+*DVb"&Z"2m&/bnRBebogF#k;"VA!VkpG/13V\>bLidj.b`<l`70hB#H,*7\XH75MU3>@Nb_YT6e
4181+W`:C1.J>6R8qT)`$d%NU<-[YD1R_ss,KrJ"+<K/GVO?!>FZ_D\N+V[_(dKbd)iV.&BnYP_'G4ng
4182+;jkkXG))Io-US/k$QG]T9P1O6KKsW96h&es2Rd!8RN3Tm$3l=MBnD7s0hAZ\2&qZJ0N`t/??gQJ
4183+6=Jmd5a4l0-]tnb1T?6D$6i!"o77-/fsj$DN5ic7bgGK,iZVGl+f*,"e*:Vq=hNlkCcRL8@ltr!
4184+M2:j\%\nW53$a%T@bW6.i`)3p+s>_i%IJ1L1STs&!<FKA4;O*@UG=SYNItUR&O.a4p_Sg$PRo5O
4185+.#=r]N2*t?YcMT6XK3p;:f/&>Od'N7`mMRe0asg<^>p_/G_df)@ecQ:#bhT\a289UN]@LmJC+-"
4186+D;`PQM'HufhSeDh69,K"_YB@UBTjd8c4YFs-B,-q_BBB[MB\;'j*8G17:D]-S5(Vcc4Ei&4<m>'
4187+ZM<38NK">'7"qjc0ba`mS$to(T`mP:6:l#\0i\3Per)_1W*U8H!kd5I0(cFt23#LumPds>!61b[
4188+PVQL,,RPs>jerG=i?K]PZfs8HFfQrr%X$<I?W[dqKEYJB4cV_)XED\*al=f&3aEP#hdng6D4WN:
4189+,94rGU*>uQ4X'M&_.+ath)bU9oi4M5;s<4D:fLOfcimjc*@!Q%\:l(3@W'o;+l;62o6m_qii9&[
4190+.bod8fBIC::gZb<kVn.q96Aq<R$&j=TVGujDM8s_AB$mpK)IgM=8jG&kgW^")$C@=i&nPOJESeb
4191+6PN;c`:KfjM/$OLX&ID*4B$IWK;G)og(oii"9])HNK57Uh0M"/pu^Ho2/*e`&R8^Db/.FC=tmpm
4192+_]>MK;,E;VrG\N(2E9[[>$JsbS2Mspnp4pW16*qiCB["ng5Df5P5=l+Vo['<*X@s"ft-:9BRCn;
4193+>:nr_4lbjE1N3kQ>WGgjSjP>/6VL6"MJ.W;ga1'm'fp)5Uea+jOMs#9%Xf+[OtU<+;B'ThO2$Mq
4194+#tlD8_;?)Fn,s"tBqtW6+5/E`<T7N&%,/a@_0;24dJU/defMo*6TLrFl`pTCaH?:&$;XZcW92;A
4195+6"?H4`jhTsa9nEi6>A%5!9Acr*(CSlI0:(sUT$"tr7&<G!Do2[^4qZd(b86C@Ft`?\&S334>S>H
4196+FN:2m'adpGQo>QJM@b=&!PhYgBe[('_cPXA6+cH;Yhe\'kK$M&CI:CI!DitW:B$+"+B5R)pR(07
4197+UCq%#Ki&I;5K<L!i64eC&1&DR7"Q!%W<OQfBp=_s3hBei&Vj(-*^s39pg79]1U.*U_RPLD8/c6"
4198+;BufE=J$,"[$XTC<Md(S\/cdBOc,2'0*aJP6BfTB?*F>'Zp[t,UkGpn$Q_?p8FDQP&hsk)E?kd0
4199+2GI(hKLL[_V(oc?8e,NU#_@XaL=-EhV7Jg#Ep1^ZiaEq+7*6Y$11s;]gj$o`4bH/"*&Mn&:8G3*
4200+"nO')#D,jl$$e7=$(No.eG/Q.`7GE4:ca^6joVHZ8IfQWIo$B>4_JcESdEJq,W(C<;7s\KZP93u
4201+@L,8[k[g0g5%q`gEA^ADr0o73N0&+S7qVta,>?*t\9GtSBG(RroP!G"_Ao)?Zf?sbe/+Fi%8"Ef
4202+(^sit<%XEs[g;9USk(Vo\&0P(5t*/rC6Z/hC08\-3f@X)i&:^X;Aqo9E$80>4qh>p7#h;b,4ghm
4203+^U[Q*i)Fs$A>5(3UInsl)9G<UoU2>O024g-hj"M\3&9FR?3>;t/Q@H.U`)f,_$)3jJW@WMM\T9,
4204+F#0k17[ZjB[pY<^b?h?[J>2YD*=-EX0=.e%fIAgT%>0dgO4q@CdZbJ6EFT9[TeI?&B.9<Q$<QB#
4205+:a^E_iBs0P"TXJqVaDk*$7h_oTV*-S?q(MiBIU9e`5a^B"Du5aG'[%h7,@tkG_;:B<:YTiR"_:A
4206+-^2dZ&M<[_\LheBkq-Uc(@]Aff(>2$m[eX&p&M/cCOfFfHZkh>ht,*DmVU8u+j#F&>Gt/X<3%9;
4207+*#&Rl@>-=j/SLD,T]0bG@dug5Q4&S[0"UsXjtS3k<[]u>Z:r:G-$#>+0^o9gd_<i.UOjipR8Blm
4208+IB#Wg0<959:un@)OMYI<&Ss&W\%krU2%,gq.#QN`fV(tu?#ZLqYa8hgH'Sj:"U@.P:OmR0aEVo'
4209+7($>&%(S;_!-]QnJL+,!b+CFGY!nR_PZ_3C7WI7DR[-&M(;gfI).l7+9`3.<@+/Q*c@_LJertdH
4210+KUIC<EQOEaV7q>`VtCCl;j!=Z&PI7b/bM,.[adLZm6+a8J0<@$cIa-@a03Q\16md$-*-s5WSo%Q
4211+,)B5,Tq&/41:rhsOWRjLl+TH(q&[a0(^4M:m?s'q9[,G(Vj4hgIdA\TYnN7fa_#E0REI]%%\53)
4212+4g#ZEjtCooha7rl(<CL\6.,eK8Rs&IV+F6D5PC:h=0cs365-7*[%CjXU-)V%M,LgfK3Djp5gt:6
4213+'2G$oq3)\o<QfZ(RKe+=:Psm%;hK:gXc2DM`k8?0ac,25.gm5iG^Al%/*/5tMZWC.7$Bp771&R-
4214+nVR-MDPi)4r8HmSg1b+T^54H<NGWKk9u_?Z'"B2bJnBU^7?c`IU`)/&,'&4-MqL?JrM6)"CGsMn
4215+>r(\9;^lPe*L3qJ26^7/FqL7XX]s(\bdj?dGAPm9@hscA<WtC9[Q74,#]6LD\=te['p[e84JYOP
4216+13X;`9<'3j,g?%Jpp>5H6C:^Z8RNm1Y]pM'D(kSr&n3!HJD,X+06+S3e&CcanHgtdp&N$p-t7&a
4217+IR[e_E@d;'D7X0T<aT9B-@,QQ_lm#O43ScmqYgKg$3<\G,fU5]H:o>b]q;\<52;?M4hM1$GMiW)
4218+qqXKchEIZC);s/"GhJ"uc+Qq4K,>C+i&<mtrOqFU[f^V,@_&>ae%eVdMfX)(d@cEn4Fr.X/O8_Q
4219+8FR-$nddIr$"/Vl#WN*/RZ?V'.Pdp(],@UC`K'af.nDE\aIt.n0,"@@!uWj.aYT,P21o9d#iI`W
4220+BfhOeZ9'lg*\8U(A1&%84@1IG\gY$S3T:W5-)ZDHPCtLi===8todS@OT&@>8E&s@O31e:e3O",s
4221+Yu?MUJ"<As!<G8K_:H2sk`n2ZVBK>$,$Qm6PsY*g_[IlUF>=::eAFC*_caU5F6GKcMEJMp]gL)S
4222+18TM!W/X\,ZR[nl8B$4TQUM2"U%l_<TZ\Zqd2ubdM+H'IGl*Is0S;/=%2bU$gU4g^Tb[uONVMFf
4223+Wj[p=:So6hO,,eb9NOB5WPhBe`*=f\F=b@`1IFM0*'3g0!='Gke&5386tA$l\C:Uc/il+/`uJj2
4224+HnrX)D3b:oLnl/W#r.VpEC0kP_t3E:0bM7-^o@+;WY2$U0dW+&)D,1V+;>2C)b7sdPU[XVK:!H,
4225+O;PK[Z@Qu4)X'$[ps:GY2ZhVM1<:8`5`p\'M`aom5bhO3)LJC(9W-m&`5!V9%%0K"KIsMJ4Kp0R
4226+Y_kuY)hO_C-i2LU$9LC%LT1c=a=N4k(ko(sN$k]d$*9.Xo5)MWOh;s'"+6=>6Z&ae`Q;S>X6b?I
4227+i55jT(C;3>4Btht."a\h)N8aqW4]KiKXJ-#[Y[B0a>fUp0Zes_]VFs8!N6n;KXj`0R`e'pLp5`l
4228+-n0to!f8[CWu/t]/;Yb=Lb&fSLq#.,db6+[#7u"%SLdnr.$hmKN/Dj*PDm_JE%;M]J'A\Q$f':%
4229+]"inp36ePS'j?NQ/DNZrntd97VB?]"GkD.fV9L"*JHXkr!fP>\fRX1h:.%,GI*)d!bK^^s%SYsl
4230+gu$&S1't>PRTe1br9p"Xh@JP+M&;E$m,et?n4sbN""=IC)%qumm\mB,-^Zrt\>$3:/-0E(&lCLs
4231+@)3.AJ=)#bSSIJA(c)Vhq33o%Z&6=mfU)c>)1e%PU:@n$iU;Vjq\'ZL/Zer&Zk]e&e^"[/0#\(B
4232+H4!Lnld*qS!H\d1&2=GeU:%hF`3B2.]YKg/i5Jr`[;5+_K(6&V&5j[&\^:OE;=d'/++lPi)D&0c
4233+fb[MY[Y^F?K+/d&!\[4F.%asG!*(Qa2&di=^-eS<';.?$EA)rYC]^gf["1n$&\EU.V1Z!1M?ILC
4234+$F)`&Od]EO;9?5p!ot&<*!kL\4o+d#1(=q?0[bYBROPHuEDtA-58@"V0^57Z-o+^\14nm,JH\28
4235+jZ88<a\e0!MeFRATHb&u]$%cC%WoAq,<s77(Y*9#2;Hc?:b#B$mfQ+?<RZ>WCAu_R8Q9u0X:7uU
4236+2.A#>p=9*oO;NsK)*q+K#+kTJ_g:@o<FhlpU/khX*@0atCsoNCClP_K=!52T]kLLQN=9rF01u9u
4237+?kc$p0nV.oSCjQfLan!I,(cL?V%==B)>UW1HASb;b&Z/p<9h&.qMk#<1,RtkFLG2BK3'ia^*#?f
4238+?o3K][hG,cZ2u`"3W=tXl]#ah%+TF%1u6Y(P1MPp*rR<;#o)']*eU`AS8'Y'[<<BE9/Wse1f[N.
4239+o\"lMLeo+-d)jkm;&J"qmXs^>9O)2^PfLdYpW*qUf6WHX'pa\nF"g.N`4^-m&37&0UE(qR!<oA6
4240+,n,<&cHep%N,e:?>qjiUPTOUq<r%t7BTh,.kZZ?&<U'L`l[C$]oNQ8P;@UE;%98]G_HXmWR"\=6
4241+ePHPTqiNlQK'J9;4UNdVP<)5q!b;Ie%&1%Q#?sm`gC[<u<OLX^cPTUNf9&'I0b]+'f9A.@_hoSb
4242+j;KVFn]QbL".^9[IF9>DL>4(D+1%rs9qdV2cb[<B!cU2QCmp/n1bN(`=])3DSZgj_mG321hXQD-
4243+Qk3>ePH^&$bP4&&fV6d$hqaL%?UYTa2<nMQS<FEWM/COj`8TQi_qofA&Ud#uTJt^e0W(-='1&GL
4244+-3@.k-d[/%`E_9J%G![&%:FuJ@%Fm3#R+U)L6-P,!*0LCrXE8sVqbS]:Nco13Iofje)>#:iK4Dm
4245+>/9)F1Z:=-iPllE9Td&@JPT:5@3n;"krE+R(#JX&'93mC`YdMa"qZe@PpN^JFrk%W*TA\&@J(=n
4246+3fDj9WT%(%:*'DbjoO9QX,XnM?pPf?^$FS,.T'2h?8^0WFi%9MmTKM>=a_FKJ_&^9oNe[Z!C2bl
4247+"nu<iZX`m<?<tFQES[I/!@%*b#]LU.N_,4ah@+QI?oA-@H+j]-/Ys>=ADRFE/^+e]'G4A9+6Fj'
4248+<N+W>92&ot9SQ>9.&C2\.u;8(OObB`em+0:*#Cd(K/E=7*ZSXJ-jbe5f;\!8IU@_0+Tog@.Q1_t
4249+.@c#KA"#LA$0?7[%V&I%A,umQe:)Aq[.S"<d"n!#OOe+-RV?DJc!WE=ga6[r#fgS.3TlL4h6(?%
4250+9B9^Ej&6:]!*4EqSpY1u@ci,e!="1/ICQKRH='^&/foNX9hFOiK%<c=@VmFR?AStHKk?U9Bb"k@
4251+As$`OLM,:lir4$\5`'(oHmY/4>TD(Nk)rkZ:gN3gA_(0e3BZQ>B5'qHLkqeiSSk4n0/'K'C"USk
4252+As9@"5p,Ni;N;8@Y)K.Fa(bg-B`=&j5)G+KTE&#fC=Q$nAmL]$?L'MIB6LH2ZU.uY)lk,>Af>Aq
4253+Xn$2)V(<`MB!=D[-1>,JV:O<ug%rMMeF)K._hq8;*Bhg+/d`20-UMDolq!=V=J'E#l"7YGRSM";
4254+G$S\h9Gp8QX:D@KTVCOajm7kL@[loS[`5'FoL%OjbQUS0koFV+^$U!o$guheG-^@]C[$ks?M<?K
4255+/o^%5:TZh?bjKH<=?Pb!0!V#'!=%DU#&q"_lAZh$,ED-R%b5E@0]reYmf"[(-7BcrEs^FhDR#ts
4256+Fo:+<nn%N#Bo[1peo9r^dTpDAJ6)SC?M]rdl\k/8(B"tb)$CoHJo(BWlH]4jI@@B([]hj?CC[af
4257+7\=G+P]1$Qk[+RdQO(17WUR_oE7S]AG)5GT6>-5FC-(FIfEH/3&8l[OdRg[N[RNFR1='SL\chrs
4258+JJV"ic"G*I7>:r&/QgZ=ONZC!/7(GKp-$_eVn&A8A+Q,'(`;%&$mDH6m@>rY`?<8@BF1o`+#!ji
4259+)CQS;3/P*u<ok`\GfU!#0]6pN"!oYYJD4[/)=r81N-@;2%hFdt4EK%Eh.JqD*fB?F5'.NN(l(H/
4260+<RsRJa%s$1F0h;,<H(d+!+^En>@0&p$rumF0Cn3rf_Q\,#tJeH\Ot!m:gZ)I,t%9D*-7.QA4!&3
4261+X0Q_FFA:NK4sek=i1-`i7\fXnFLM[<+?";;8b;ck&9hS_7mltVP[.^LoM8T=T13ug0(_A!=qpl,
4262+V`UBX1lL7'g)!GXL&gr9-JomBoKGHLQZZ&/o(B[:o#7JK1+]+G5j.Il!C<^NmR*+Bd:!+,n)0%@
4263+FmL_e1e`Ha@qU!r:O%_P.I3'VCSs6nXs\>-+G.,G'1lQ(SPVT="=GXi*LIcHTI#4)#<U4BAR7ng
4264+S\oQsgii)2Bl$KGQnp)V=A)^@<N,cE]Y:SOpg&3rjK1f1\]6b$pn-sJqAr9]?_ag5+?fDAj\=oa
4265+R2#Kl>_8golP5]9V6ArL4a1IS<otMQ^S#dq4QR=W;;Nq2_6Dkl4*Z3<qIcQ!FqO3^mZh?aqV!TI
4266+[3af;XPu+S:`GVhbu*Nq^L^))Z@5XISk=<E>$^;]giF6V@i0NtSY:p=Hep@&&&dfTa*\@KSSF)\
4267+,2,iS\!Vrh'd6Kf<=/C`<"V\:f4DMhj_<HC!S\-%>^!,^8.\tfYBEesEkUlH;PSD5J@u'E:P0P]
4268+&'#>BaCN)\nrcm7s5c81RI<qJIXe(kJ"pEol53UgE'NIXs6Y35&cI86qPX!kel<#0RF8=97+0`h
4269+V8^&_$]<j</RSBT]Sm*r`*a]C)GFd0!Jnm21n0%_nhIf4F=.o"VGR?35n,Re:D!ks;Cr_AR:-]V
4270+1d3,t.NV=sJY:-kAX(7[ACCk3jCp^lj%q]Tr'2qgasBpu&I@6<N5j,if_hi88Yq4gZ?`)kaE9I:
4271+NeJ],bhdJ&)!$ipeSnh`2]0g/;fS<mCH!3Xk2Y5Z?;MgXX9KO+aBhXs*=OXVA\-i@X,&"?;]J"8
4272+Dhd:(#M[A9hJa#FNi'^%./IX6),5lB/3`hual;j2K,LCr2'JCs-R,)H.WZ.pUQOM`me_LLMrt;N
4273+.8["Og[8]u*Tf:%A(ecFAn[e-I8Ad@N'*,?Q7^$1S@/.m<tgff"V_G9q_?=Xas'SS+Kdk_Y]MnV
4274+X".B-at=h>E\OK[\B*7,Y,_35V294HJZ-I)a>j[-RL4\Pb'N^1MF.)o,)ARaNkC&Vb$(./0\FG\
4275+LTM4\d0rS,(aGin8DH50blGmA.R6o&XfJ.CE?,HBjF!&uM">)dY,f.:]ZH.s1cR<i$FgWUaPb:(
4276+TT[B.VS2?uochFdA9t46P6s0%NI_)f3f]>T9%10mlt303MZDHiNl*?BMPBQ[BV%a)#^[RPl]B+J
4277+2i5oHe>OMjC:q/nK3ot*mKet9MPGc0o/^^OhE!GDgpJB7%=$>^ZtW)./rig0:_e[96Z1Q+m,Y3.
4278+=4Ct*4@Y2^?J;[e>^eiW6$uS:Nf*Eh19Vp<DDd+U!lVAq_#RCf\)Y8#&.PD9F:^@Zpd&LY(4]X(
4279+\1]Ai;%F1+?PusarJWIjE)P^=83m7?FcFKa!ghUr_RjE[aYX":6">&5"^6PDX_]P(.PYh?b([`Q
4280+gp]=!FX?g!"M%gIGia1_m#C=scQa\P_D'2%!la'?<VX*WMmDiZZ^+p<i86KMC<F%GYh;6sR9k;l
4281+65'.+gQ"W,o7E_>.-"!\!I3NVhbig<WbTb$Z8[eDgu-H"qJNANi+TjFX=lRY>qN&F[Bkg/G$'DO
4282+[2K<XS]V6s=&N#=Hj^%::elpthRfR"]*t1K0!bRVRN<Y0N@ZWhX=b"d\F>NKUt@S,r6Vs6NL%FD
4283+KF;bXf5h3>0na8o)B(X[D_C$/oWi=[bQ1WQ@Fn7&7='qI"!m*Z2%::3,IBWC@orKN:E]b]F+iZ;
4284+cJ.2q`f/l+&i)`k%Wa3HS>ETOGlIH0@8BoNAHrO@13PCe[SkU*N?OG7LGqJ^h%9p7J1-C/pTe@o
4285+Qnel=fRaZFk-pB0*suH+_R/to'a'V]@84lI!sh<K_2Ie?+OQ1=!1Fg%Od1FC!NijK#]uE$e1RmD
4286+(b=N[$;-+g%S5gG(arq@+eb!:`TA/D=<S1'F%ph<R&7R+;An:n9b),N902Z&l\`<@M@`WY4KoM/
4287+iT"*MC!D.2o/p\%Mcp;B\f6fgg4=l"H%HEO&151XS!q\2Npp'TLM)AXSVq2QDMB?i30;f4>*)MA
4288+OmAeJhXH]0L60cM[E2LKSR78[!E*W28cq'HhFqKQB,UUYA=!uURg;"#YW9S`rp&D]7!*Cu90i7r
4289+6,6Bb3"Mi6[+Ns!fR\<mO`!:Nf_-9EA<TJ9"mDgT8D9_1J<]NXh*7j_1R3WTHgf(D/3o`)66TJb
4290+,tOOFU6q(\H%;(+MJ]AMVNltdgE<3D50m?)4m1%#+D.9-)\[*0jd9]^;uDg`_AX;*,VYnQ%<3cT
4291+9H3*[KQY,RKeWSl74,%%+EV(HdBF>'$^9>@Od_A/W[J_%?uIn3Ft0G`hJsF=o0;2-0W4UqqbNSt
4292+5ca*3KsQAdNtK>;iNP(9[P2V?#^`L_%\fOn#?!$KnVlU>@D-<g;p4i20L6-TTlB4("&Y.'$>^lK
4293+&j9CMAQ:99S1`@0aC)#28LuJp\#'^?Rq?,JGk6JLQ5VZ8X)N+ca1O=ZnCLU!'jWL.9"NYWcI=7g
4294+S$BBHWRkbR<NFYtRBL^l=_`e'lMY-8Fcs(#Fc0FU`GA]N9$YYm4rjai$!u]B+U:im;BcI'ZKQiO
4295+,",.CD:iBT.r[HfnkNA>GWd6:Z.VKE_?t0R\Q@*nKb2*@qHhr_Y#bW9U/m_@f;r^Cl+R]T;hI'I
4296+Uu`$01#YM6gjCDNZ'MO&"&":qb%hVq,&9J=fN[eF=]g#MFQ/imH?^/RnV1CNb-*@#9j#:JAOBIl
4297+elq!=C]O]d[T3,`1iV_!V^Q@rM"L2!B*u'u(hKq[*&lN?*#d&@,/f5*'8B1Y)d-HM2%L&ec9c5m
4298+-M-cKVPO[5b5ee"WYg=[clN;->`^#Z4TkcW*ig(#oRKad#Jg3cjKnlM6`'cWCa%]IFL$hY"6+-V
4299+U@Lq9UlH)RA<"X>1l#O\e_;Te03ODGhj*D3El=?cakg^"*5kQ<Qt&\GQ>AdPpI@dH=cX6Q6*9qf
4300+B<_N@d5$-XBX/]-'DOjBiCoFM+G(V$``/RAE=UM,8VF;/Vo#m?$kYPPC93]W.RsUc#5d$k)E&P;
4301+m3FHoZ_nVCZGd7\+(+AD`NhC$2.smT!Q^e[-)[5JQ-`hGY[\Uj92a$+X_(MJa?7r*^`[I@\0cmb
4302+c(1=^gK1NI^F05uGIB8T:[/(FW'n'm2I53.2h_n[/!4k@L0%I1:oKNparJ;:3t<#8-Srd*DtlK4
4303+bIf5Z=F`XR;USkr]Mj_j2;<BgNt<`#:PnU<e&C'"^t;8G@M]f@Z.`,MgCXqn?sT.b2%LWnf7T+c
4304+NYT\3QS^hEf\RE@6,K.ha:+T@?Q9br*>:6W9dtF#k]YS/Oh*PHrHsI_8NDqS2V3@0L*OKiGlm?)
4305+&<5:^<^#%U@*C)1mg#ND^JZ#HAQ)9D%\X9L7o'8dZV?e)IUEqOkp\1hF7>7VCs-lCV4amMK+3hM
4306+_:+RrjtCb+;kTYEZC#,m**lq>dGJ[Fl.l5*lL(pK-YE0($s@=""ou4H&Zma+FDd01nuk@UD`W$d
4307+cP\A6a+tJpe*=$,XXtU/2u>7m<'HYJ-_B5I-(eQdrSP:8YEMI'O,r"ja**pBVJUTI?-@SaI5Muo
4308+0)0J:&V<YK`+"[.@&a[OdLIQIs.DXWij'j;(<jdeO%>^C&*/Yf>$&\/g^cYYKpk[`5k$E&Aqh:P
4309+9ro[3MN,m],3cO_V3\h_hO@.he;]X]NL!^VUgZ[.IHL=696`A9KXd+c2WqT0"LA;M_!`t/1QWZ]
4310+U\o#HBI#&X"HQ1YBX\$sMRr%SD*gAeMomVJ/qZtU64_*<YdX/m\lmsGs0-2Fn$<Bg]*jV:@?A\d
4311+U-`"WA:t-O@V)YA:>j@:DIY=@o?G-T`_^5A_POA$aR4cc%Of`op7Ms8e4la,NCq^f;[KTc"mo"(
4312+;(*W*<oAt>&`?oV!mhHsU6)CD!CIcfaYK),:^k<BOm^etWPUmX>RdDG8.eC8^t<Vh0OCZ/A`O^E
4313+JATjA7\[c%(N.tDX[<odL]u$)UN#Wl%)3Q'(b4J/"s@`?0M!pkE43[ZfRV0h&<Mm,PRN:S0rW&'
4314+iiWc2XtMN1)WELV^d\P76m,n,h=7Zi;<\Z@0cFV[)PC[H;6lT%gk$-p7WH'tOhsdaqO'j>N:F!$
4315+&^_J+ruFu<+@uq];;WM8=q5Pe+\as?Z-+<\h]b^2+lL@DJDaHsW'?!S>,i'm_g7Y9Y'2,5cTp+n
4316+Cp[qjfR_*dCSngn`_pQ6@[EtS%UbA)@(m+YoU/.)..WWPOgtGpZ6iHT"nGIu1/nHC^(,\3FXYKa
4317+@lT/TXXb$k$g^Rj,b$>-5_9Vq&MfIu"iN4\cR,=H-K&5Zi0M*T:+I`5;J7%JTG9+8p7eD':%ASe
4318+@QcFt>8KsAFN%RLnoQq.OY#QH/.`Lg1>8'mo.Dg-jDi<C;T]Er[k"bum`;O>;Wu_1lq$^p$fK;:
4319++G2H/CG\qt%-sPr!72,:>:kA?#,#R`F*SXeC('3b#k.V-F,3DoPrDEn";/0eniJ!B?R7Kt$fb_J
4320+i86?\A0iM0LZ%Bu,!.iKZT?R>V4^(J'14gd[li-I432q(k,on9j:<`g`*s<%d<#C[kV"]_%H,G=
4321+aoEZ$P!HlV$1n6`8B!TQZ@,Zd4<cL;$'d3npEWW]1_QE='4e_L9d1*gMLtDKlq/t\[lm[32UcY)
4322+;g<Y1R0<b!=)A@!0#S9pN?8Eo.C&D.'9bS#Y;r9)2KK$N"*m1RSMQFq/lN9JOfpXks$/#O/OHd2
4323+'4WWP^IaXn.J/THP?0+'4\6c4"nUV6'B;UEs!kCe"mX&jPO.Zcm5#BnN:GLme3Z"A7nnS5?g&X_
4324+a8QEF$4O9P8ZVGSi_ijarBUYp$kfa6F5&ftbrZT/=HnS2`$?iU>r\%,s/8L11i+C9E"(6=7+?KJ
4325+Pj/9L.7\M3#`#'hbm]fTH;\g@2WA"215-Mt&rND@2$[tue58/IA;nU@Qu(Y]2.9QuVRe%A+DUoR
4326+K/Z7k4]jL]=E9.d!#,Wljs7a[2)Rd=_b^d2kV1Ia:DCB$TOJ+ic7.eQ>-h,sj#^IEapsU#-KD*Q
4327+8An"B(LAi>0*;Um8cg`t\sZ+Z??N_77s-\BhC-qS?D,@CkPc^2FQA_5?`='6ecR8;N]OTmH$0g@
4328+FI?KYX^U<G@PkE!<Sf.CHV<RM7me"X(%GX,X:CC:*WS\q'Prei)b1M4R&MP>'-LD99k<n89GUGj
4329+KbWZa2@]`*C8*EtV!LC&O&bdm*OJ[7<5c3npiuA59NH]aPIVd1r\M@EAHR3U5g0E*RLL%JU&nn8
4330+,f<[B*XsgeT4@l[Pf-,CniE)k,\S<&K-<o^PA[e]A\sFF;oNC,"&)7a":"%.G(FTV0IXqE<_4rW
4331+oYkFLCa?@6Dq>:X=!Kh,,;9eX,8OlE2\Skd3f\io2bn(#[Z4`+6oqAaF>kja&)0L9KI\t%2i+A4
4332+TO7t%`aU&qFeT%`EgS76FY%^0F2q6<=+P3ZZ$+45>pk\=`/cZTRdh2U,<(H$F&QgmPBmqN25c+*
4333+GFNdmPC"GHH)J,RjQ/-l`,3<UCX_<[_GP's`G@"GD&(Wi2V2@qh,#>uBGTc<<p_#_)0'1iDmo+D
4334+\(tii'5/1>64s!>F<ViIJglD?ECcdTjI7=E!IskCK*%McdN*,5(Lm/0IM@57p(p,?'i&X<J3lt*
4335+"0+M%3kR^TDB_+HX/P!EDBfOZ%EkEfUE*n_Em0o)9NZ_!"iH$Z_ha<jM/9?*i:Da_1I)eGG;KLe
4336+oDg+Zr>k<.,q&_N/)Q'S>931:]d6O2JnJMU[l:XC3$e-f[Xj;+*!Xl?3"ADFQA'GsN-A>6,kg>5
4337+(J(FB@?9%'65\c6.r,^baA,dXI:hY#p,%,=`EcL-R56uLedm[`fn4C?FS:QPJh]8G!H`C2Nu#-G
4338+f`-#<&Wi+b;KrS/2V'3R4d%e4+k@Z$GfU*8EgXB"6FcEBi5m_iR7.ie<cs_apMF_jNE>imAa'&8
4339+e\@GO90;o)08n[on[U-te!f20J\sN$=@6+]*[=h&<lhN^$6XTX%5LBPS)afb(+(ja-9uk%$qG0#
4340+EonKHfS'V$QSr*9kmO%r7@;?1$H0&M0q*\kSm&)dW48QfP0.pFD.T#=1e,_9P4f"j5_``A00!RR
4341+3,:(<FQB+V-&re!md6aY\k><@>`&tG%`1WLL-WOL+TlO0jO'd7:PW&UV._!o^s/_(4.MIE;R1El
4342+;LE8tOXN)CP8Z^F%(i<ZNq$5Qm5M'89Wm?V$>%XZCPl@E5g(H/>[i:+#[k_QV2MGa*%\rR10W6\
4343+HIclcg.l,.U.6$%+H*Bfa0("8#l<M`j\)ak`$+',Xr@hS>5>CQ?40rqZ+C[QZELD2a00h68%R0T
4344+qUr,]bHC^#ZTADof#Oonca(.uW>a6mq_b`'or]6:Z5X+D64]cE.A=W[U(R;K^qSk\@jsce/gjgn
4345+%d\&@KQU#Ap*dLs7&M7%B6qEfF>[_i;c%=VE`J1`((t`4P[u%JCS!Eh[n@=BV&-WP3)^cO\&bPY
4346+dFoktU<up:]]dRp-r<S_gih;hBt=)%',o=KXGRsmSnXB6%D$dQru=Bn^BH@'89U%1`WR7k,M07.
4347+dKW[hVjM)H^lfI,S/&em28+4H1d!Tn*#pD`_(f0+95mF']Dn2n%\aL,#jBIJS"0opBR6oo]*-6K
4348+S$f<OL^`sJ%l0@Y+S7N=pbSD`;.k6dpQ06*Sl]/6H$jMW>]%)^*]$3,-":mROeG7JK-#PND$"Yb
4349+@#m_\E\p<!;^b$<>e5*trb\Q;aVJ#7*#Jln+hq3R\3Np6U(PQ-&-bp\.FN*`mT66r?Pt!E$XgR4
4350+I.MaZhBoo,[oQ1J)Sp`QZd#mhc0DGgK<*DL^lLIc9@g`&GPdeN?u>2de/++:,i/`=;3S[4X;n5i
4351+e5=_jGZ]h]7rp2,h%aZ,K?'L1a;fkP[L7N8Rl?c"fQW=H`D/p/@FiAXf,D!+cK3RK?oOX>rPqTk
4352+ki0Zurfc,L=5A#QL==gj>W<q2]DHloPZ6Am_)ETacTP]P2EEq4:"e9E%D0J4^!qkWJIrpZV:aI:
4353+3ksHr1apo'^o9Nd8Nkusl.0s+g3q]9Fa;WTgNgJqn^NS[4]s%9fke-ggq5^Z4mTa$doVWAr(ACu
4354+&ih2Xbd8`(K6!mpZ+7VS_9>nemi4>Vcl<6TD?ee$@Oorg"\Wj7EuU>f?i9NS]OG>4lpR\e"9:[j
4355+?D7Q&mPaP=/ilR?LrsM0b/l6j^#2]4+AQ;ZXA&h'cuM4pYU@$,5Y#-"QTj*(3l^UA30r>IT^U*f
4356+0#cc(0[mRlbe0_rSBM+UkQZFap0A1WRplksAds*&XVcM0`JI8%Ml[rg?bM]7I#;3Wh7Yr/HG$,7
4357+iigZg+[lMe"9R]2,<EL+Zg!#7cPjT(8RO<fc)=nR1nP>BR_d<[H1HA(a,2#^iaqP9nY>$@#hWfY
4358+h".>3pSAeapV/6!Pe!,_U%/1["e'c)4[#iQCT*AZl\M735S`t,?:S0i`,PCE!d"1N,$_]0+<S(k
4359+@*hpREQ64`Fh^1%5bL$q:_$0n2*q:]3J[k>Tm=KXF:]COVScdiHp0;'9[I:3PeprlNWDY[]Ohpt
4360+3Zc+,dg=+H-mY:BB2^OPdUP,%:!fXYK]lhU)GS'NTqKON3LqDWd;Ymf0/B&X7e;^lb'5\/_+2sJ
4361+<;L'q)$CO2W4kJ7(lb;qUP1&4)lQ_p@KF8rZue<s.e'HpN6u<t7]l>%R"Cl/XW+=+kdBd?@ufE@
4362+-X.Uos'lY$"rU8=ig_.5AMV]_((.NVMIH%M0pS!hB<Y_4_eb%9+*"jID0LqMMd:e?i+k@n2QefV
4363+dqUa@*)>YLRb)AYL24'SD8=qBn-:NL'1H7WRa!2]TtI'#1n>(&o61h1<%8S-k;l_[_ZM]_:4TCY
4364+jBq3G*50l%]AS5uUHh((%^2oqK0B>ZN%#.o+Gq<LU,kgZ4)X9?SdaQX;E,.Xib[,D+m[?1%kW$&
4365+\.9gWauQEZlDgn99/6dO%OiS53'`+@i2WT8QtFSG$>LOa"U[Ml3fHBZdP_N.,,R;n@00gp7;fI"
4366+NeT";#cO^H&D/q#@p"DN%*Dh.`$g_kFWAMuE6b)q9h]4U`mM^.2D&hcXGXgrm(j]n6%Tk-Ukpj'
4367+PpMVD@[X*nl>W:AM=Q1j.#>[n.C1_7]^S$Z,Kup^.U&;@/WkXhX,Nf`h!;2H)tG\Ao-.NtL6Sc&
4368+2nLIop@g^:TY`ETU*.mBN+8TP4L&j))$`J>PUToI[Io)Z=GiZ03CLaratn`+I/!jL+f`,@TiTgk
4369+Sk`$2=OT<iP:@CR2h_Gp:oPp>P_u5Tei+&u\p>h96`P_f%jQ[X4"4[/au<9L;OG\;<B\jd[B4[[
4370+-OungIpg6Z_[Nk\XF#%*MJ0fd]F%"7hOqUUejAV1fcZ0@gGq*[@q%'D#EV>6N^gG\q,UTH\ZU8K
4371+>q$tN(C%_FN$fh038LQp#I)uF%tkje3@:DBr*ukoK:I@^=7qg$1Utn6F+0p/]au?Hk\@Z:bm=L%
4372+T2mpo8"D,SR)V3Min.foU1;1nG.1CX'uDJAmUO2bdK^f1nf/u%0#9SSRAX3c?pHHeEARS1`+*m^
4373+'C,8-'HZT(Wsh1dpc<?t7hA>cp:]pQ28X/hl3>:gW+\GTX,njs0oi8CBK?Qg.\OY">%O2$g)\G9
4374+NnAM,Z-feAp*SY.%K3$o$u%PC4m?:F4/`<)+K=r@1!S&5g];ob*56)___<>VZ9V&S%#9IXaK^YT
4375+gg)S4c7J/4&Dg8#;8aW3WUbAcOQ3B)-`u0Z,QN4QTHH\]U&6.6-Gpu/WbX$-f.IjH<)=/u;eLLQ
4376+SiBE^TZYZ7NpZcq#!22*F$3f@24tc[Cs38\6O[d>NAF'ko94G%L[)Qa[+H4L)O*of-tTSKKcLoG
4377+FA7ZiJVfK,M&2oi:F(d2auG//WLR^.Ei#VR\)`'2_iS:paSZT/8-GJ$g&s[dIEE,,)B0A8A4J*Y
4378+r;m3O*"f!)5nZ&m-\SkMSi[TTC=s_"eF*AM&8t+"_:]EQlAXe$oDqj):QXZ,Jg@FIP40qN4\uj`
4379+?<K.2b8?C0o]@/20P(FOI;Tb0I)440,\^#T,XUO5MBKN6Ff=ueUUM#2'iM+DTpV`B_B-3%Zt>4N
4380+4LY@sKd!$90:??]V1c^!S.HZ;/*H%(+3/IgTtD=sTRoVXOsV0H@W*X_&2H@^!^UH%:(6NLE._Of
4381+%Djt5U(S%^95#I>="J'>U#;P9q1;=Q(il"F[2U3%@5T>fqNV?2EQBuq+oqbROD.[W.qf#5#^hr,
4382+Pi3Yge8I2b[+85cQ>%^mI]@,l6`8'2TM:9N*RZ4=HB*4a"Rs?)8`FMA`9!#YP+OP[F=MuY!^9Oq
4383+(6BOBE(&")Xp.sO3S>k:;io93)XnJESJ$0Bl"U)XH00Tam.[*5jT*B4,n$:qJ3`M'1Ou@PXq9'!
4384+:s7c2"?'9eaAHAjNe-ed,a28lCO9LtQ+npWg<q7YYmdeZqU@q9736!M0$d"c50'cg+"`s/JW]f(
4385+(W*51pd[N'W[pu#Pih(u;RcbUiC3RZL7b7lYB9$Tf<s]@=#:1Fo>i.?b@^nq9D<i(g,rG0EqH#0
4386+Ziq6mji2C"DI39LHj1)<&7S\WB;NL5,^%*/;dF2^3p8]ibr8DYJnKW7/PA@EOuQ(ZM6;auKouqt
4387+98B,'(ZPF*LHMQal9YmI&h97>*!JRBhFK=@!D?H8&%k5`;lUQpF82gjimKHYk.WK<0#FL11jOc<
4388+Zj+1Ooq^B)RM\C/;@V]S2d_6qI99K9I5+F/T)=M/nk1LTJY+;c8l7$9S7I`'et/Y\X-,5==Xc@I
4389+pLTfWbUteP<2SD*ja<D9-q7r_ZGJl0%#"E&0LH9PS13*`VM7ucqN"UqG0h.=+Ja'2YB6=]UZ4k'
4390+/S.#Bdpk,W>r.E-P=Z*!s$2>k#@iqA)5D!f(P^kb)c*=SdVZX]KH`Zf%rI1IHF,GlL*!<EU>SLc
4391+G7W+A6qJo:BPCY.6"it%Sm1oT.^_0PA'(RQ6`,CeFur$foUE&VlE+bP`&>FSbI08SM@OjqmbWrB
4392+\MlFCN&NnV`i0u8clOX/G?Y$^OBgO4nh`&B@_c(/,XSku?]_Q7Or''%]l[TTZ[n#:i0mq[B\&8t
4393+l!fjS=SG9NIf1Nrs,If\2c'(?W(b__Cn&@Q:667V4rZ"nf^40qOs@EUfD>(+\u!#0(?O%m_JroG
4394+=.`K>n)1jqj&HoMdKiSI[q1&@jk#=g?8@(qcjKALGT-bAA0cnbRM460l+lJ`*d*;UWPL4)"_-I6
4395+7kh,m8N03L<9tpt:tg1^MZ;Pr`&`PC_FI^R0/!pY2?oi()6Pfb8I?N9Z)OnICF'Td8U??]jP69%
4396+[3e^tHC([_K;TDF6*HZAHmF8]XOCb1Ee0T;<mN`e,rG[$g]2'IHpU,b5@1Ii-jmc3@4bku#*tDV
4397+#aJpaN*(9Q6N-2Y9n#O>&h>0#$"&uF"O##g%ldA_ns7h?LXClQ9&E7<I)g,X3g3R(Tu11AXD&?g
4398+r=m`*4J2'4W\<a>s1"l=nQW[.VS*T-Jtmq4.a^I@(nAaFWY$g9nT1?rWMb:MJT:WRO]+=s%Q]t5
4399+OXN0r"$70"=JD:^/ZE'l/#Ts$"[M%!5l10t!Yr!K:Q>5qK3;miUNa15AO2tE[4+b#P;k@43O<f/
4400+.p;6T\R[4d%#@!CZNA&^UOn@r$^^]YNR3h73;U7T/tj1P_RKb+CBbdkV*H:6S+JEeZ1ooe;_`qZ
4401+2F.%&+q^3+eZ+!U6Td+h99cg2bsQk8XW)2XEHdA?)4,n+6BF,Q6kQPp,(ceJQ-92s`&L$`>egn$
4402+MV3Ib)1;gJ."`rb2k#I;KL$$F(lCrY!i%XjO<B/u2jW)@_!!TV?o3`XUq-!h6,LYdJPuo3nYEu]
4403+_uY+LQk2Y:6b6MjJODqj>Xnjibo`)36$*,_W=Ods!OFMG`8PZ(l$4(u;6C=*`/=8R1!R%5)8^/D
4404+1$!0RUH,YCDR75f`&g(M1c72h=Y`Wo3X^$_+?W*A?q'-P6k!GB$a%5j77:Pn7RUf"aI5D6)1ccn
4405+JS:.$:mQpI&-KF!&MPG^5_OcW0p(la#Z*UEnJ-isnVRmL!uR]-!3Ru[Ko[r(\r)2m*)DokF"^_Z
4406+X/'](kcVE^<_";Q7l5<C`,u0(PdYZ)a)%ESI!<Kp4=V%j2]JC.W\Bg)>`Yk'5J_l;(_@N6@j)dV
4407+L`(Ym!'60[1EINh/o6gg'%"&^5S<%J+DcACYRgin*\VcfV:u86$B?uR=#M=E&J5Wr*&S$HBY\%#
4408+]6kF'MJ\M!'F9Y`\hNLR)?'^d.j*dL0d6Q2$nS@*8@[qKV^d6",B++e.Em&aJd=@f=HZ@YX-)Je
4409+3/Y;1$`uT"5J<<.'n"D&K[PK4-T"+L\$M+!0G^0'"WV#B,b-k?1&WF13<QY1WtXR-ar!hi1<m\I
4410+9k<+NCY9=-_l9UZ3EYSrr#$5rG*"C5Ji!(c0noc*GregqU8]?_&J`VA0;,-5PSnPd/BgcOe'%Nc
4411+O[,VG0K"FIZ5itV'Qb0bZsGI!40TBRYULj'l=j"q#!O%44o#tXQnpn,f!sFrPIoSrHPfL6g&lTD
4412+]t3HhUu]g'LWrE0UO#MUm,k).=.2JY;1c)Il/JtSPt-d$:MS"lSFOpao8ba)*e:Ci&XXRne0\m%
4413+ci!j4_+-^i!j@F;:CSDlK_&!,2[CsC:LeQG[.7,5oMX-;Raic+>au7',gY*tcfgm_'f-cQ.(`0$
4414+,Y\EA;O8@I_nJL?1eWTP",JWbq6\raN;LKn"Q%WQW]1Y@-W1FMI5"H^0g`Nr4`(U))qtJ!1t+cj
4415+[6ol`X,Bs1END5+J5Fi^Lki@J4IrlH3nlUpI7M]p/C^1LbhB?CYq.2!51RTt<N9(Y`6Zi4SKn":
4416+RRL7'Pugt>0[^sr_P'n&A)GQe()_/q;7_>+b%sr1@F=IQe;\%()ViOg,YR[Wch06D'fdKP5#20^
4417+eVT#(OJ[XI08%)cc.K@S,:f"DB"292Jg9\Mj[CkSP(Q:g$4952YQY*^RSIt5#p;B^7'TeVSsMDP
4418+;IM:'"`r$8ZCNReVJ%RaF0Yo3V%-/!!)[ad4C+)l]c1oR^N5a:X*iS_kY8_=!ckkNPP1?^:"aco
4419+:'B_n]g^N6+Tl[:di6ch&AQmC900l5$NdUp[@'`7don`>fd2b!7B4md0@t%aQ^+Q"3tfd8_:W0?
4420+fS-"s/W*U[pWs1udljV\7AnenrEAfn!C`%V743mkUqfjC"2o^Z,9i;4SIk$>K.)^MMuc0<(kH@Y
4421+M.nH&SRi,k*D;m3\h/&\26DLM-s(sIK+L)/O_tHg'O8W%'+N5ln0&S._Uh(lgoqUN*R03gc@\-G
4422+9`9`PIF?r2cX!Bt=NtsDD9Q(,0\;C'%lf_Qde$iGn5k>&fTjs=D)a$@3P1K91bF;?Uu&W/3M7YC
4423+e'!-Cp]XtacQt9@h7,2q2:%B4e#@:'$;Gl!E01O%>cg)+Odo8g;l`6))4Vn9UOX04\<C":&#?lS
4424+TlNc))'@RcktNu^0nofK/Ek?tRbsX34_Pa<SZkG&el5@^U\u&46C2$3iRJZY9k2!bSOBlF5.dOR
4425+NH.=V4RCY-'dd@[T=VYl`Y[2$M1XP]\Fk<`g;5^6^#<]r?o17)%/JWEqqD0d@N!&p:*\8S$]*&C
4426+WXpf;jOYXpQXD%rZd=D7c7P1d2<%L5&2kA!rXuV.'Gn239kGa1/RDl(cV>fG^"UD72E@_cr$1VK
4427+Ze62(K^R_$0&I?d:#uR!+O=C@aB^+`?-V&_`UuB2"k3D,&l&(PIJ8Tr&EE0c:pr^OSO-eKJf[0=
4428+@cGicb*'h0<*T#:g]4#&'mNt4jU)I8'VIAcBTn'/NB7$DX.@?EHMA9[n=ORYjB^nG/B1t3*NNEe
4429+MPMaO,15OD0YscsXtE!^DIj`_10DHee!V'!`Tl)+N3J"(M_s$\fS?N`n',E^W>h0VQ3QFA!`VhR
4430+:)-SbYb^EtNojf^@g*FG4!!L-<Eg1Z01L>tm;Q[n.9BM!-]Wf]/q)Vb([,rg)(BAfj&Ueb6`@g(
4431+:tm_%PN2b#Ooe3;,[.nB"Ms=C8_+59/Nq\$pl'frN"Tg_WL/h]>AgO[qlH"I^X5N-ZgL'o?5R2T
4432+[d^@E);621f;g&G!L!F0+lTLdVN#_5bkRubLbF=@)?T]r$`ruPqZBQ_`eZO>K-ltp*fU.s=d(P;
4433+Je7I)RW]0[&8Psi!e@-52N4qp2DB,t8s+t]LpsHKB^1n]Uc+^"%\18.b%]nZ^YYTqhOrYYU-1LR
4434+dD]d_r=P1SYRO>i3I,qRG./AEc`h+GC>e8Si_A]A5EJ,HlVTIRR/cKD[tp`QRGcJY)qjNeQODZ^
4435+RdObnk^pK3h._V3&S1R<3iQmAhAGn^BMNH9I0<-p5e\WXB*(SrrBb314CI0t-n-9jD$GV*QPp_:
4436+PJP+Bj"A_IakIXH7&!^5^mtS!iW0#qDkje/T%NA0;K%]9Og(YL:>u^<So=>YmNfW=;nC85aYO>6
4437+BHjEQ8V,`N\5u=hU\_C_,#iH\HQe-%DH!!`iuPCY<Y:qgeFGh).S;[\m,HPjiou==(BSA4(2)CN
4438+Z.br1VY0EX(nuQIDJoi=`RaR.iUPKTE$$6=^k&>@*jo\Mbpkf@9.8p7$?B"'K7>5O*p-\G!TrPe
4439+!*$00>1d,&o3q,BlQJ'[>R3"i&F[WNDiu.4?N"l#O,Y$=m]D+$H&Qg1kDMOok7,)b0V,nCM0$fT
4440+F+4\e/h]2DrrYpI^n0+mG.7fT6&klpMLS3=R1StgqH+Ku5ad`*j"?c4Q1$(ilo$QTmYPP?*^9W_
4441+o.1"_80if>-Ni!</OIthkeh<:n)Td[3/`WL,6bJ?-YLJ!n?Ig_m\M4AIuF^UBKXrW+(91"ZL/uB
4442+S+e=o0+/o3/G?pqht-8TZbii2#+of_nmJ=J*e\RYe^BlU'n0UnK_8Y0CCmCf'+4$WQk4B>CstUE
4443+FVd6c2*(b_-\IS2_MN`YSoHI<(,_%[P2QpkMcV=rY%eWT9$!Zi++Yg)7RjE71!-&3-S"jJ241:;
4444+o<q6JeN44AH<6)OV0^P_!&X<Y0\DBCq-Dup.i[OZj5qB'H(sT?:5/FRG'W32GGruCh_ZX[Y:uY[
4445+<ITbB/S;6C6kQGj$6au9@$475S<kn+paZc!J2+pK&*@uMqU_SG*)Q`dVt`cd'Gn"j%OsGQ8WZAo
4446+p-[q@jcbRY*9s2sd9545[SeH<*U]:<PTQk5pT+?r_DphH,tG;;Ag!p=>h-4)[7@cYHN@S]P>6.d
4447+e`rWVa1Z5ACD+EHqrpBCrP%A%_iD)MPAV]F5I``2EHe%H-28?g=:bM`E8Hl&k[hs6*^tX9)F;tS
4448+nt/sCV7o8lfb,mp-28C,^YI7%h=k+Kq3@Y!m<\c3$@&ZXKAMX/0C7;7U&uL0%SjaeUQ4c'Pl:W+
4449+UM.FB2ia$B>CTC9q4I2+#jQnaMV2\?h%e!g8:VRG!g>(k`b6%l%4<rNSEUA=S.13OBp@Cp1787M
4450+P:=j`.2RodV^%>:j<0&B9OOX[Yhj:X9+4:RFD/a,1BN9kA#ZuXF>TK3`C"o;8n/_I!Cs@k5_qlY
4451+(W_8-&QFfb'Mg++$5F24DkmdFJc_'fgh20K?tTS+dN2p[S-AUj4:9IH*fjleRE`V0:H;.p;A33C
4452+hKQQKjX*#r`'A2qedA`d)5\VlMT+U""#T_$5rT&VLQdAs?m*6mKEF44kkfb@hek1^RF(#+0Ula/
4453+)'O\)-p1+Q=6lEGclfrV,'J%$TL"#<%&F1I@DZFrX_6t,=uh!"0ZRYaPg5DeaD!_Z1Y'ViEl$TL
4454+BRF"T0pL=31<cVZBuK>Cp++9HQB8)gJu#Crb/=5*5Uuh"0asg<f!_=3!6-sqX2AE*Xs!f/dL;gr
4455+cC`#A/#K1'Jfro.N%(N`Nk%]bcK;\d;pIHRE8]Xc4>*9@lRkc`f*4CU)oCNlD?/*G6Z.OP1<7fF
4456+e?-fLqSM/:;H0%[!E!7c26/JNKK4\f]U%_LK6)JqN^Gekb`7l4fS^ooJg?3taMKco,KU!TOsJJm
4457+<gKTHM#*u6ML)"rWiER*-Oo9a_TkhL$q<9/@gM3Wc0,_U2E'S$aYe_Z@_dq_Xh$^)/^i\Cq`bD6
4458+?NSVo6EUJc18D</,mgY"[mJH[.b?Q\l=XHNl,[0k]#1:)>n,7.]JZTRQ%UnAK*]FO+K.7cD+otS
4459+/iZR8+uI=aEC;iGNh^*8D`S\Gh,.GOH_!n?:Daed?OhM9G2CX)6%7ZM"mLSF%?4cnO/^K^1q+qL
4460+YQ\8K%P)NG(Fh6X#2uXnF[pYA"+oBR2?e!Tj/qo?JQTn5Dre`j>T!`jp_4ML)"pCNaS,<@Q=$%[
4461+rK,qT7M2>)R>'t!YF&W1qr*CYMDbor8DsDM2Vp$fA^13iO_DS(6(R)iXpGTFj'_*9VA^MrU7feT
4462+3KHZ,G0#YZ>HW=;j`q%6)=<RCpOVQFrS=5fGY[Da]c4BhPA`R$K>-LCp5OObdKTdrC%[HmW$Rmu
4463+WN/5b#kt-K_9UrUmQ>YcHLgl4)Ae5TE9r_5>+VdqN4h/IeSH7DPFc`G(MDQGK.)H&_n"=u*-$V?
4464+=-<")[S/]A,Ea.ep0AJXr!7a`M0F)+SrM^k3">E2p:\5JN;4LW_r(CK(TZPDC!`691-Ek9`Ctep
4465+G&Q`g"b?<.+<14d+mo:7#A+[fLilI$m>A8_0!JK*C4VA_qC5P#!*tsZ,cY_h25i(X+Mkg3%&+6B
4466+W'IaX67WI1]^nHi\Ed7q0RU"Y)P_LgMO@<T789j$#I%eLNB8<oBXm:c=BKFb-t-"HRJ&^TE(4::
4467+@YdWE4iCH`&m,901bgl-`:1qa@[S-gi4LM,AFC)e'D5ZBh=S;qN)$!]<t(4ubD'-WdU,+YBlA)0
4468+KJ;:#U\%dq+Q>(-j=^tnoS\j4"Z\>Oa;puN(lM2_f#`(;(SX:GN)94'_8r9e,>;*cam(F[O;-*<
4469+oWX/"L*]7.U:l3GVi"1sa.X;9$^A/C7;8t`Jd"IY$4q#4lQi#(0[NFE>_XQ@a=2lE_ALVBIRL,g
4470+2?tIT2Wa0s>%"!P##OH:"-hF\Ct/EF;A-SDR1DUlI*g-eHq29b,:'(Tq5dSVIhkjZAQ-PoLJfgW
4471+As"F/ZWo92;H=j];=gFC4T<@C##GDu"q7j]2pFB"2A+,]2!*Or`?HuUO-2[f#;$g`iuHthdr#@8
4472+L1a3f'/_,DfH`8=F,%_Q&6'B!Rp`lf)j37<-OR/P95]\cW]<SKbmd<%oUNEFiB`RY"\EDcZm,#'
4473+m0o]),=t.t<M['>%YZ,PZ*H0_aJ<J]4Y]OXdV":pUISut;5\K(NmmiVF=J;",-ug@.#KTT-nPZQ
4474+o\PYZ,a24GCR_@>R][mHeQ9U+T*Y%5hpt6j=-:i_#j14a(de^@%S;R-JSgWT`o9OA_E0'dLb=E9
4475+llI*cILET5G2%aJ$c4&:%HQ:k"ON]MX#W2J`#_6uP,P76bs5hUm`HiudoW=pT*dk(+]fRg7r8N+
4476+MFFm7>%8%O<"Y*5<J>c$qo!?(89hYR*R*&lXDI8@D7#tK_VTW;Oqu<K,>N:@L5TJVK71,8_;GJQ
4477+;]JA4TF/KE*9CRia_bn/%:E:'2IS+b6#]:#_`0\e;;=4WB<l<E,aeLsl[*tr$5^4=)WW'S-4oTa
4478+6Fm2Z+G:kl]rn#QX*<FD?%A<NY4\GS!M#SYTZ4!+\JJ0,'Y<.::lHu(T>Js$#7%J:$pfHBbQa[m
4479+jqN*.>l(_L=dU-Q>W<!FDCJfbXP9jUN:1cX,GM]fiTG`G(;ncZc7I"%4V`p)_q6ijd/&72h%k;n
4480+3Ah2N1A>*:j,\9WNmgZ-e*54FR/r>35I&6eK-sXS913c6/'1/e/PRhKmU1>@i#3Hpl`1q>:l"cQ
4481+)2-qWKVrDJb=[[F!W]AA&mZH2LfV]Np-jM9`XE5lM\k_B#2=;baU/t=mG3boKsm!SA(t&cCgFA5
4482+p>Rs*Rsu#XbsWGTij)U@*Cc<N%(&a5FXQ<f1D3O<#VnAK"9@p4!g<5?aWc".n83(ZU@KBn0d]io
4483+F;+i8IDN1rc+3#t*bV&VPXD13\qJX9j<U,U1+&X*(upV3'MhlB:<hmfl],\>?ceJjdpBh_ai<?p
4484+SkRiSRVWJ4O?7o`kM8F#KY[O;MCW-!,oNsR)TGbq*N./Y(U5f7`Rfue6PV1T/p6`W44AKs>+0[[
4485+jXmXh$NX-8-7PGk6$j9FEZ3$FEiC)+P8)$s1_1i\mF?=>e2#g4?,q:%2Y-QInfKhQO(Xr&]K#X^
4486+?etV*P4:efP;,C>=].\N`U/QgiblW!g^`l!/2=rNhcProD^a3iHAUlYH!`ol<M>0<c;<Me7"#Q-
4487+TEOI-Ol(:>!gmC[W98H)`"K4:.!57CQfOc<*e\dT>iY)3Tb:q)fK4AT"o[[!=mTF@.Nd^o<dL%+
4488+,\VIAALp<:GV^f?n_J\/bW3\6`%VuSA,m=tMqD^drZLYu!,#Ifi"WDu8mB=mh_3Q'X/]:)+q@CV
4489+-6egA!9j<QjSS4-AWL@cVa1FigB184"3)2ODdIK]9^C&%ou6S-Jia,#UBV6t<l2*;0;eTLeg@T+
4490+T>UAsKp;<!b5-%$2oK`6,RjLfDOca.G4:IWn#euB;H8B"3WelXY#M3PC*r5a]?9iFWda=&dS:/K
4491+6_g=Eb(N.n`q*!K8'\EF%]&ENW9_VFW%c*_&>Jp!VXu@>^<]^\-Cj3KYkY3!S&<m]+D23;b6[O_
4492+kN"*T6_J%k84Z1B6)u(!0%sp<lK%B$&;j!c$;;^[;K'nBV8JC3@f3RmP5Hc>%F<Tqd"r)@m&Dc[
4493+nW:Ck7V^-58nsD^4D5<179h_^DVh4/hWa#0:%Wkn2$8kpli;.f&?o8jPZD?0hN+98d)>Z5CA2\C
4494+,/Q2EUaRhU3t!?>p9(#'EO`"\]aodZ"q_^gOk?-8*>e.a)fMV\0s(b$E*!Y$qJ`<5n?3h4.Q3<8
4495+*GY/=J=NR[+?@XA0`rJTMaJS)V]i.C]aIg@URZCePZG&K)c62HWRW0P6O2UkAW^%=UMqnY$H`MB
4496+$/i`26<#,n8D`>[%h`QXDf/Q(YY:,mOKq8B.tA)j+??00%.W><b(AjBC9Gm\.3OHUjECJV@'23C
4497+l7/=iZ0)05Kde_L2q"N/;CVeY>o0?mWp>iQ"M#b^YmI]8-ma3[0Wc=JG9"t[l,Ao:T[slCkbR.l
4498+7jEjDP5I.T`4q4+,7FRL,96fAa!YTL+@&j*:qRqq(0fo*%0]0Kil2JqOB]N?/B$hFF"er8-6l**
4499+,%ke!^gmVc#+m1AT9"R^&43`[#U!#90'*[!;+RZB)R#<L1(tq(`nm:05r/a`"9;deW_5"OG+T8+
4500+:b*\/n:K)N6nQ?Y5]UZ`Z>rNoFsj>B%>0$Q,AL10rh<>gU9W6-8l78DiW2=056Crr,(C\DUHM&?
4501+Zjr-Tm'/8n)IHB@5*AqlEa%EG0.%<B-gk"`;K"X:m[Xu:ZkJcZ_Ep[hMV/'W.MA&TkmFT!pCq@>
4502+6P1UR"(s\NE5nZ01"(D8EemUM/L_APm'<??D<!;q=sE%/5a6!nKm>6M'F`p^$o<r-i^V(-k'!Pd
4503+@K>$di23Qp"s^L&%Z$oF0=E(_c6^9E;s"/\VP-SSkt7W+9'eSuMr)+)5Xg_&Ra[ZfB.lj+XAeb;
4504+2XKWl,G@Y,j$%>C514hk'$A+FI_O0.l*#iDO/2*[#<n=*#;;&%d&//5SL)-+#*6PeWrf6Fk"7=#
4505+#'C2_NLN,[X[VDk;j:hq<7*A<o`_=m/QDa%OI8r\#3^'C;3-D:8FT'"cj=+&%j]4#-L!]cj?bDd
4506+"lP%@!/FYZQ4@;q,\[Z2,(r`LA<<I^-ka!lTSU)eGT]^/#_8UPN+A\ofF=XtdX[9(@+&mY7p2LH
4507+"lPINT[F8,cn4N4#p>[[Q"UT,`"$L=dX[L^$;NY2^`sS_$K,4tj30uLR7_?a=-DR1dT2bbQX0:H
4508+$H51=WQ[ktG<lY(=5]-CJF,Ncb-Q-(p<1!V<]I^,]$c+`$)"R1G!qf8:LuDQ?SK&;2$+%+OM%6<
4509+$>aYf2:<!Dpa5[&#UXQqp2=RjF(_n^U7dk]<WQnWY@uIT#f,(?Fo%0LX')*k$%h:eTU>\nd:q0*
4510+#^*uiCiB`3W!L2VB9oT%i._SsJSfSC5ILtup(Ebd)-NVn;)5R4K$`nCf*g-&+XtqB;-aX33Dup.
4511+!CXI_1Ch1Z<:g_B'CtTg2N8=!F(2P'acc[8Fuls[p'Y]T$_[B#i6,VEZ"01^bYD+lf0=@.pN1R=
4512+AY>B3m5]?6<(E9@?OFXp-:(aej&k7$=X1"'"=cDZ"t!m?f`97NV=;:'<4ZO@dZFs?_qB3-6ZnR_
4513+a"2CUf0+<$W%A"$,W>*k[fE,'mSHudRCBE_XF5D];fs4pH`[0n(@ccqodbR5I.lT/&]%mE7;fT-
4514+lVQ^mDpN@N%):9cEO%Fo=!Lm6ap^Q#%,d=U@Z2neNuq5W)`T#M,EE`eoInK,^qa7][d#SV'-'Gl
4515+*7-1pA2dOI9LWL[,8`4TGBY/B8VV8;Y)7(NofXa'AN"'tC9gDT-J#OZT7F#G0iJa)Dq(p?/jj_.
4516+>.5nf2],A,=**k>J78l*(98+S$\gP&d_P>[DrGWc":Trs3A!AKC;X<leQnBIQ_;V)6V[jZqB3<$
4517+?$4l%^q3+(T7PW<Jl0Q:mZee*o7b%/L&g"DUEPQJ/K4:`)#4RbTZVGg'p<_&;/rPA35%5C6&6`p
4518+Lgu:*C611"Gi^YTEKh#G(EJ/G]iN['.dEL1e3YcQNEg3nXtGcnefYEf,S#*-lX^4eXGLl`^7@nZ
4519+AJ-AW<[2't'nFr!JJ7lkP.`ITW+jqIE@0]GnT)R,hitWK_CB8_3+8!GB"/,B$m;H6_?B81'o[D)
4520+BL(K4U2-(&aTK)+O-L0:i)+_:&!D2NJ!do%2.;T'S")ad$0ht_\JQc]%853dHA$GMiXVCk\Y7O/
4521+<DiXcH4?PJl(M64a`SF]",PC.nN:<#%B7KL<Q[%Abt8l&2tTd%Gsk'R4X+%GO1E;`=7)2OkED<)
4522+Wrn35P7NDr[tbTeLJcSk011RoWjCBV.rji:=aporT6tC+M[Op?nc=Z185Rh9(icU.n=-&<-)6nl
4523+Vcj7f1tPC-g;CF&cX>Y(D<6o61.>@KU_tsYe:C@o7u(%9RH#/acb-8<LPs^J%<=+ZG_?TLZp+]'
4524+%q@2h6s3j8&$dD+olT&\ab7sN0dHP^S<//_3o4"=Q*4_>Y=EN6@\H%3#@kR.1S\_X4(>A;[d`9P
4525+E'n6E8\MP'jgH?f[V:X"KO>8.g2Q=W[l[m('VW#.TWZJlX;$]$>BdVWU.-g/Pl`%lWmS?rVmj:(
4526+qO<ta0G;#7_7QA\\'Q?U`\QBq*+"e.V,Ld4S!1J=A\:*>1L&laC[IdQ7&QM4Rl`E$4&r+4=h]7/
4527+]DI/nq/6:(->7c3[>WeTgX3hh\YWqCT,]/n)oIP;agXOQ\"!u?V8bI^;880d#h0P;H:Pk7Wjhn&
4528+,3[_k>LU>c\VFRE-G3,?;";HY6+m>D5ubk<,p3Z4O:&oX;8o(l>^dmpK!uPQ8V9bn&V%0+Lk[&?
4529+$Bqko]N?BlP<2@Y15%%ai0r!)Ti8V46m/WXaS)Ml"cWp/#"<+IoJWhrpR&VI7KSh!VEI_EbJX4V
4530+bFDlKS=@TIMQ=p$!EeOhUSXH_Qt+qe/C!5&cUu&7<s%_Fg83&F3S_*]W7WhF?A,i\P0A#+%,rHa
4531+aaF>O*6X<KP1+5SPl)FPqeQblYeaj/NDR:0^urke0%ctM[p\aX@h)j2_G&V+%3:*3o$jo!jI+fe
4532+V!:1iiZA,\(XKa@]DYUR@YN1(PEY7p%%Q@jgjREl"54sFbc^.\`[:fj/MdCg9`WOI>q0n^Q!hM2
4533+=9^m(<;D3JYLD.1/He3S63JFlg"l]CA)/KLT\9k<DO="TiI2[SrPQt9l-#WfS)!>b`$Nrajl->'
4534+i]q*InDVEXs32P6j'9df^)>u+=5nY38j0M>*=9g7>!p!:Q!Jad]Tpi+S(2oUQ_S$'>-YZ]>%m=-
4535+em%[qM&aDnYqt4"<=hRlPKog`Xih>r#YBCSIBDSC]-eT40N*tUG(%o&);`Wd1'$e"#05h>KnXnK
4536+lEdi'Y"@qc8`HO5lG2ZMj!lVZ`%K6KN[/rR,A[hWn4QTcj?f9B!X&q^`a-C+:)j1?Ig>JI-8n89
4537+'81f#`I[Cte`5N?jX.pPh\7l=)EAl^`IoddIgkEd/4\Sf)*\BZhbH*0;JP)j]4?*0^I:ZaO7A?\
4538+nbY3:+(+SgAb\K(pW$CWIrGN-kd/(Foj930XG/%HRDch;b+fL9('HXjNgX*XgLum9Qn.TTVsYV/
4539+67RSI.YelsO)W7,r7_3Y8-7$&*^)^Q`'",e>\!6>*b7W5+9s-*]^02j)o5%n8XRY:3LO;&@sQ/4
4540+Cc2?KiprM1hKLFe:Bs38\B#eS),,"5&Z/)A1)Wd5Jf1:ZCEjeCa$<MgaE9HMb(l13PX&l6$coUd
4541+3DAXF3`-@+;qNMP@6#7F"X>J?hK:gqk^nqaJls`h$3UR^WQaQK1`0Vp$3^^Y8>T66`_g]P11`Hc
4542+U2jb^U([p"=_6%f_+kD<MAqRp_j'RC0.7D<`?P*hMF&eTcXMiAdi;f;A:t.3.@`XP3#nc\diEUP
4543++<JCs1Xgl)l#[`lU5,<,%SUjR$uD(u!.aQKRMa:Y"*)'0VD;,j!Wf,5%C*YgU7qpm]Yc$T)pSG^
4544+H.-AAM4HBs)tYJTlhG2.=Zs\]+-k$U/DE53Zn34he$$kK>1YYAX(FE$Xh,!*V.j[NR"adnC8?lI
4545+>+2@eD:7S+.)VeH%PJ09Uo>i$ZEUG]MXnR6XD9:NZn4p[gpebp''g"EX31.MYNuTkPd_&`.`Fab
4546+Gh+,aUG<=X`!Pp?-]O:HE&+@E+P,e;j)_$].VbudXK-+$^9GV;;U2YOCMM_9b0ks>/Zt6J?GA/r
4547+P6A`o&=X7>,8#1W2B\_N*\i\-8oVot0DdTO1X-'JY#+.1&iW[0Cr4^[OBZ1\-dAk]#=9%gAQ(_o
4548+bIJ7>i^i2ZN'gLM1Jbn,Vc>WbJF\YTK6WpO%1-FfN6nrIM-L'S*I1\G"01)H]erMc?IdRFG2]U,
4549+!5d\IN[k7q3KA,pnKk?*l!7KCCe+^g:#gY>g[63,j#I^MnT%4-'<73FGC\=$NPda>1cXFojuSGe
4550+!*\Ff(L<S=fJXb-&6T8eK6PJ48m\$I/aJ:ng0k//<Y&^-TUcUnRPRZ:M86&KM@9L*A_FJ!6'Z(Y
4551+6OJPkaG$LIU2QneT88>S_E*[7D="7`RPeN7;4.oa"^61=l$-E@Ghb!4W&;Dl,9r]'3XjM<(n;([
4552+((YV()0XJ(k#nA7Rn26(pkV.\#4oRtO7%"'jZl^0ETgS[nM]dBG5V?f%)jLn;Rj\%\L.q\92N(+
4553+J9i9eE-g7EVDJ^H$hCiWe2I_E$5f>pf"AYUNS.uPe8k-jnK`)cU.[ei"-C[<b4<]L.LdF)k)Kn'
4554++Qgg75!P7mq4S%)0OM<mX5Zn&ie\:-m`qqZ6m6fD0TBQlRGdDre&ql4$3uZpqKliaKCG$l6g`''
4555+mBLmO2=0?(ZJd!GADOsibk`D[_@<]UQ`&Hn$c3MD3WTLIL1='VhJ)IgbmAp)2@:?@0Hb`d`A/Xa
4556+:_:e8b[7#p%0?d/r7!OI08\p;5m%=RbV<p"L9ZS&(R5EdWQfnX7B!u1N4967pd.MChO'N[B[QZ)
4557++qE-o]I4hU$M2(].a0a_K%c%m_)Nn)Ki^?Hd#:TONC:kgVm/+4_3QRk9a`7Y^LAsQ:4uP5`RZjp
4558+EXK+A_BB5:>`?@.#XO`locV)TQ3L1R)FG_RB?`gk"??sYj@`4&1,(a[ih@:-$IgcX&1'o7B(s_1
4559+Ss08?2$WVS,uFqB$'Lu98uXjtLbiEfiQ=Xpej1jMW'ls"DFMaAkSXI1b*YTp.0Q&s/dXon9Yj[e
4560+#*@OY(_^:)+dA/1`.Kl)Wd@:@k%957SeNN1MNr6*Jf!HRChGclST8abcJf0NVhmF(o;!_Z=cSnB
4561+`7CCkBJRiLT/Xs+I0J*rEPlpbr_f^S-StmJclc1O-Ht4PF<hDm!hKduTQHmlnqbFfWXsbDeWW\8
4562+Pt+CGjcnN"=_Ffj#/J)t$8GC%NiI0KV,\]gE(:+3_*]W+E3dk!8.<`lVD9AG&n\_6,.)m3e-?nT
4563+.CD.59FSZMjZ>K>W'^nkZ.ZG:`Y>F.Qusm%RZM&%"4(ZpGU*^e&UG]ulV0[AUgh$g\rf\PFG#rt
4564+-)J!$9iPkpBr\Nk]Rp"S<ajg'3CS?`=%Wrg#d!1rQ'S*UM`Y;qP;%2:R#I\:ibBLa-n"_3^/fSG
4565+'WN^6W:l7?=@S?[Wd@cMA7her$Q'g4Ys>`m2"@/<G](i5Et1^r".uK,C(J:`SB_/Kg;L'-.($Oa
4566+G3["$3U!Oq?&_8Bp?]<<em$S>G%e$E!%B`/$3EM1;rFM"[<'^'DTmAtYp)Cm=TrMkRqAduimD.8
4567+<pN@&n3G%W"CQFmlNgtC%F$F^2V=%\?fL!jlbFFA([SS*ef]d-Q3&Gd$IPM(^/dkR>>03nieoU0
4568+^P(2<0mN",Anpia@(\6!PnpgnJg%pB;[;&Lfn=<Bb:".%^LVP,@#;l9_027)4<gDIU'(%e:MUD-
4569+PXcq%qZSH^CpB?//TP8;gGp.G]L:1WaW*SZ,(s,la-YDDEr'!h;$H)M1C8DuP*@G?a=7:mm>?Ep
4570+1*ck6VGulq!eEh%Yi($Q"3hL8=qH&!/q)%Nguq0t\0qTtqa@h$3c0H6Nc06!4(r7_I=VB1%>Cqs
4571+,`G(&0Wo+>3YX*0Bs,8Qcl`W<SE[r?`/_$)=p,I,K5?X:)+Z@rB+ni.)dCh^8gF:UA[VJL\,,jl
4572+??0\\64[YpQ^Aif@OS:X8SdhWYX:UlfXi/^"qX)-G*jC'HY#9+"i7ZdelotS.rju[4hm02XPoTS
4573+!9d-bHM*T2f#duH\#IXbV5Q&0'1lHQNG)7CThu;<3kUTSs2QD:*g=FaJZM%,af`EX#WHXJT"'"a
4574+ha-?58]%+jSi]"[bo!3T)MCiM5@^Yu64(#bEi8nKq1G&Mk1kH\9mS`akjM'B^pkid+P5)9a&"]D
4575+<$Cj><@W;/pZhAdN_S4BGu>/clr9U_PPIYtAu,Uq*?2-T(u/Go(Nm-6g_YVTOqdfA/=O9H\'aWU
4576+iW>a*]!l&s"MYc-HI#+N&Ps9hIjs&(_UOG1r]LIiYns/:<%$X!L#adG`sSe878>QKPB$ioA&(nJ
4577+Iam[9F0FU9FD4H?biG(#DO_<eF7mA-+Y+(8;%*^`pAqW4I6VtJB.%2E:6X,%[=RUCVlP^#7P#A>
4578+ZsW%cW_mc-'i!?*(mHRdD2Yn?r[>LTj+A(SQAYa%,!6KGR_Q]n5P$M@CY-'ESIl,Q^5Aj-&j1en
4579+XGV6MQAS_YBJ@,o#aPT%5gnr&>M^i\8@WpG[#h)?6"ma;&4$RQ"+0R&>>pJ;#T^/TRR3MHb&8D*
4580+YGd?o^8qR-lk-FOcp9E,_+B5:9HQMF(c>GA1_]J5POtU-3^7(-\e+$CLs&";pE@?81qOYjH8;;T
4581+EO@>G^K_Sm&gG+o.\AI+(X_]2R8&QYW.GR("+3$Q;WEfnr36Pd0q!_4@h=o&I$dKZTlMgh)Fk<0
4582+A&5*uQLl/XJd*u@/<%e#_YPk%1]5-VSK]ee-kWn=5mP#CXZM%E6;Y+r&/;nfmCT]`0!g9Q.Gkb?
4583+-]/h6Lmb[PW9gedp6>DUJU.t8aJG$P>Xa5m#f%j@ggC_=K:WK[^A/.h(cKB!TI;cZ6X\O_dUgF#
4584+U-jN0"/KBHpb[WUj8j:/'+"9A$u\USN$UIVV.rj:f_7!ahh*$fO'6*9:_6-U=HL$M8#f%SH<5r6
4585+I#fP$Lql*mnkZ'-8>MZ+a4+Rj/;,>O?D[IZ8/umf=>PSs4ee.:""\B3`.S4Pi5i9WJTs0j0_NOI
4586+0eR""8:.?h=>kfQ29BBa*V_A1da947pB-T[WQQcJ6IU`ISHtaWMZYFWN-.Xh0uubO80itCQnb/-
4587+TS'&6^>t?:\0K*(OiaRKJs<@Y82J@kbEM:q&A-.XKUGGKMibFl]MKEd]SDK"NQMs?MUKY5.]Ec"
4588+SBA@\Ur)6:*1!/j.=rBa7Zc$?XCd\/-%fkIX0@3YI)(nI2?A,)LcibuI(,"&K$:U-Lql(SfJ1=S
4589+S<#[-+;n08EDoQ\a33BWK?-3HJQC#$3DA'ac!fP:.hbWFa%WgEPp#Finjgp.m#)a:+`Tk']\j-U
4590+b6j'V:&N.i6pq-%LP(,T27_Us7(85!l-?BRLqkqfl:=[FB?]S!8#Z2Cd%X;]ND>H"[X4O:7+MGo
4591+(P=CuZV9ol0GP8J2p\;s8o`a?&3\+Y@8GnkaUkSod=fh.pe"(39a'hc/FaZu3RAcBcme&&7/+dp
4592+Uk0-m:^m_hLbd<4$ApDCLmXo5bglk2%aS\l:?;LR"VEOb!t/ZR:e8Au>f@8c6UX0ra+XI*==__B
4593+&CKS]93@,o:oTt`NK5Mt_j[*J>`fJgP-"TuLk-,[XJ31+[`eT>Rk110Eh*U?\<b&qY"=;&1?KLf
4594+l@TX&6a-_^&]MZ``^AtOdujM-;;d[E!WZ4<`mRJN<B\T8?q-@L_PG,@0T6&E,g?J>"/%H2E%qk1
4595+VO@ZEe9+:fX%U]F,_@.%[4/&++K#;I.?d=@9p@)&i.t<^ZTb/']Jplbq5XOH'Edr*#gn?X2#;hR
4596+U^`]X[@I)il:RW$,=%1oK.<ic]E]Cn&<C*e_/defS.<[:,K`P$e6LQ+&1UNH*QA):"+an`)CdBQ
4597+i!?9BM%"/%9KS6!7Z+9*Y"[CJ/Sro''2;ja(!UVB*H.[J08k(4'Ni+B.>p%1B\/n(7Z\kGm<k\p
4598+)HS=J2N9%M4b6*t*3B3$=>bae"aqW7L.efWQ7+)4I9tQcH:ZND.*KY")NPFXO9;.)"%\3\%;FI^
4599+TEDlc=2g,#;EP#jM1[+)=G%6S<I+br^"G5>4Q$b[(aKBS1kX43=!a,`RSb@21YI=)aXAVK]&s0a
4600+S.S<YNm->(XJCHE:,UDKLr_%I@9d"jP*.\K7ZDcGop`%/hl<>-=ClR*9hO#JCQ,3QVTl`6'cKPP
4601+DF9\lMb82L4aKrg(gDEAXF5h*F!&7Zn'5LP<'@8a<5T""O',R.%:->se]h3-c\U56fO0ir=rbdp
4602+'?6+`!EIP'%@,atdb.pTgpDif&3Ypke':+_"1_YkTV*78*/MZLh6GjhU/TkOfnftbR/f&F3&V*T
4603+1]i?p/c_CY[H#SpN<h;%aETIF>34AsL!Lb]OLR%HN2A&FRL+4#1'I7,/OY15+bSUrK/f/=0WV)C
4604+0IZ/)",K"*(pI=\K,^mq%Ho-AFbs'a#m+u>hlZd<D>b\*rYN!BPhcdOO<WUj4l&:!+$_SgfUUje
4605+$B#('K#RQq=I(+.Co[Q$Ui>1L@a\>,'4!d::CoAABoiGB(`cUB!e<G6@RoAE#c?gUhOrNZ($UY]
4606+!e\c#Me(B?DBE<fW8\R'i0GR`KY>N$hG!u3(Y,ra<Dt=4>oISa7$u4#Ra-L5+G+=]`L=!M=gf.Z
4607+Ji8'4ND:/iE6@3_>(`*':$D5$g]2ohS6h%8+j?*+OOeu/I>_oi!)OX9!#s3>3uZdt$i+]r&[@KW
4608+6]s^A$g'n=3%fh)/sgh%2#rK@&-ZPLSE$T"a/2!,FB^o:;N*:GJT9W*YdOr5!*KIPKA1E0-(+dR
4609+$RC1,gk[bK##`T7(Jg^c']*.5+J%S0en%iS<c\Y$\=+HESXCg><c(B[?p3(P97pV9O+mV`Y&=TE
4610+5)IsWB3U:`l11gp.6s!D#p!>MBY4WoWrj\qApiaMi#J#$mnK2=djtc3nELA6@[I]1B?FcfQ@<Fh
4611+@h-lPJZ8a5-@r5-nORa-8J*!,BVstDLhH.4J^-f;R,hqtDWi;QkV8[A4!3S23SAJkU$2sn"!<?'
4612+0T&2eQAE,(ECM!W\q5BuSkb^UY+k,V3K=$0OSI_sn:HYp0nW$#K;^]9UIN[DR;&D"C(T:eYVGC]
4613+$L-7&9aWh==GdA4N!VtR9b+4k&3LWWV!4JIXCedHW&3diL]MiFCMp1f`jhh+2!WqoR/X9"-G,)L
4614+2s\g,S$p(IHUd,Z_JF+_M0Os]Y,7,U3p^68lCP$BL:Dl=\_1q\-;ZLU1aiZY!t2'3.'?h#9U$b&
4615+:4[XE0X.=tTSdFUDZP=:$E0+:\`ZOB'Q&/796jPIJ2;gD&s'PhW"u@Ho,hciUM<mI(J+us3$P7h
4616+XX73`AZk>*L.*u#QO.'-mdTLZ^?Y/Nn3P"]McTEr:@N0sp^k18Das3AQMU%RSVUfsUjg>IJ?$bC
4617+V=4-Uc]Bi=XQ_1NAjuCmMd]A5+kbp-6lQ(2'*QHo>9F3NFROM4[AB]prrV]Pn,kX2d&P<cpm;B=
4618+hJjs%EB`H$;*>2m*p]VJcChC(5/mX6b3C&hVag$*I_Fi\mM!r*a1UbP6A2>KJJ+"JBLjm-^DHEA
4619+,RA<&nnMLscPSD8p5+82&@aji*i4J70Me6gSQ*hJ;,)\aN,^->l'[-CD^KO5LM1$Cc^6Q8R#A6A
4620+%.-P4ba_iNBJOF>?LBHqo6!RQLkkQ,D^iFhCYf,Ki3eTO_sI*+C]L8QVSDGL_sGI'!\Z9[0#drf
4621+ba!rWD#fM3mceI`=DV@mob](L0#.b5&;#AN!j>IQY?5Rl^MINgEC5o\^Ke-a*JhM2K,DC!pb<g"
4622+W:fGGoG!K6T!<"V(P>!YK/foHZCD\j`e-9'3hfJp4ZDT0SPjcP(RP@[qaMCQ>AbNKk`mLW&=@&W
4623+G@lF$!Y5PG<TmbT-AuVi#f%RC3#_l8(]f.*!KV^307\9Y(]tToGWs@H8/MA`1C6hCFt[A#J/Ene
4624+)0e602&Cpu0H5WtL@j?7pkORu2j.nLNjD7np^`Gg09cMKA@@SoH#J67L_tBk_tf[Opj\cXcNEq9
4625+Sd@YENJAAh\!qUgn+mi3-Lg:0;"n8iT7\OHGorH#DS:9jN.VZYH=rZPj.-8]2N*WqK,:))^RB0"
4626+Xa6WYGP?$Ga/"9B0nUj_CMA?E8/VH+Wr&sFlj&^V+1(YH4F-[Oq?OJ$T#^1&?M]24qc]Nek=Y&q
4627+XSS;<qR=:f!&aWdGPlD"I"tCP#F2O.RsBM!r(abK=3:UU[qYStJZpk[cddo&d.mATK,;FW#Vl0-
4628+$F0nmGV?5aJt)\1JGINBp\-@gs4d,Mh"icrH:QqFTJCjY0R1(:IM`pg[[;24\p^3uq%)Q_G_Z-7
4629+b'j;:%]AS*&%I6FnpVC/"!@4%8?IcQQ?d\9s!Q$<f<TcQiHmc)ra4K;!K98u)[OFc6Qj_i0-H]X
4630+a($R>k[cLdN^d-(%LOm-7j2CV@DL5uNBr;/Oc4`V,<?dg`q,^b?o&c3UZU#3N9)[[$q:=*]XhKi
4631+S=*ob@kc&($oaU9``$.9%j*f!N:S3DN,)Cn:/8&Sl'T@n2]9h/;dm?-,oE%_p-UjcE,7F0`o^I[
4632+1?;lT?&$k7$..+:1/X^+C<4[bK#/CDGMG3Imtui@9L]\X[*!8CQqc$QW6U\qX:5A1Z4W&DE\X%;
4633+cr#nO`&H0`%Hg=)O#D*g>I<D\(>.ka[+b$Cg7JAf@m&:ZL6r_t%PcAno,4XlHU'CEOGpf.Pb5O#
4634+2k0(q+c,/JCkimQQEBAfD88'VNc\"G*g>E<`%gSY+r^s3;h4nOcK\Rm1?4OD*&ljr9$.EL$a.a\
4635+XS\g?N2Tu.0rs\f%%f_&RWf/_UG-L=XC6KIQU&n'be/aO<(a+uE8u$q0OnQ_kpn?]=WGJ$Ucbk@
4636+lYph`,*EpQ'<^m/B%=;o"(EuV1(9s>NMA:74=X7=L>aUZ>f,7)/_nAV8Sb!:-A63"XUZUqX0WH^
4637+_5M#ec9j"s0b%h6k6nh\F4f]OD3SrS%1ZU3*P)Q@9dikT.-B=pbUDR:cgtuW7_/.H%,"!i;CKR`
4638+eAVY_<!YJ&&^k/],0(-LXZ]#!&01D+ZS8_n%#0k/(JTm1D$&$`2#SOON)SFQM)l%&juOl">o>t+
4639+mZV39%0K8?0[``IcAfLmKX38RZZK%Y6]\6Rql$^FAI/h;Ub:!uW`Y$u#2um:+uHMHLb1/-?3;)n
4640+O$La96C$?kmGUDfWteCGK@;sei[,+kVpuhC291^AI"gSnP?a9n\@+lX92a]j4?`*f$FY[@r\0n%
4641+/`Y6?ipIN+2eO"ch%ba+(1-d`+sj9i;?;dX1:dR4i5&E%R*1LA%g*:Z,Hm]#2E(_!/uUlUc2dDt
4642+cu+P>,4l4P!81KjeQEAk%#YZc"!3N5m=IJVN:"M0iE5K6d).AiK1O9ANN'q6Wn]$WaeOi!9p'6:
4643+fXocp4j-4O,DI&sfV.-fMN`QagV\5W5Z.T<3QHc>d%9E+C?GRg_6s@I_/O7XMiUL@BK]iSlEu`b
4644+;rmmB;ms)7)D0f).9gi9aG;uVG!DfjL''1H,.+DlMQ]Rlg9Z]b40A-1r5c/u&7V)@]A_p-=Gn=s
4645+T4\%p"uK-A>rrGE%"gLSC5l^LCF71"5X[`FR;#bl:W7@[_!q,]!GsCW6'X^T>iuuT,A'MQqS<lW
4646+d3.D]$tmis_3cM#!t4pWa"3kbpeq7PP@dp*Lc<31g)/*41M(?mg6Z@G"sK^H0npGW+@k_!<kI(B
4647+6rZ'2aBV4F84?$D$!G(,HPN$uZ[FQF0f,1ncQ,A:G#=4QZrE'U@?>)J&N*CS(V:BREERr,dIb9\
4648+r3$s*Th#2")^j9Z"]'43E<2bI#4c`(MGQ3lj>gh71+Ic\F'F!bUt^WcbcDeC9R3f"mY8g>o0J=>
4649+28ha='=en#La2O>"R1QA->*!`H6n0%JeUjU>oadc8e&(cV8(&;]8t.2##Bb.9EhX/>Qcf[lBohr
4650+M*.R9$p?/;oGTq\b4XncfF0J_2a_;DTu.k".A]2J^A'tC%,!cK0Z5/j"Thk0R4!@qaMF&!>.[Q9
4651+3.qLADQ%S:pLKq;%V/E@W\B>sBKVi2MEi%Qd#+qRHIsZBF?-<h:./_5TgFuPfUdW1q3TGdHjsJC
4652+P'HtD(h<UkAqgj9M=sUjlfJ\AL%5F>iD%qNAuB5N,Y#9=&_u'YA.R$JPI=-n$-V.N`:Va4i6_Cg
4653+'32&315$^)fFa)lo*E\m!uh>Qmm8jA;U#+VQI6N\K.M@XW+6gsk+!:BK2OfTPl_)%D**VW7L^^(
4654+Nf\3tDsQu=O\58u&5)OJcbjoT20_(0R8m\s*/u_))Np^HNbMAk7gME)3/:EdL]No#Za/BY.tCq<
4655+geg%IAl@2>Zm`j.HQ$^R0%Le:4'`b`E$fQ7e\?mpFVP``Wec<`fr+2WcU1mF'nIh_Mk:9JCH56N
4656+)FY<oHWh8_cF%YGEDSa2l0C>m]KmS%gYc`RD1No?Mpf`M"Rp?H3f=H@UbW-A>r\biTsjZs7BI<&
4657+H<t8F^5=I&[2P5aDs7Ltp>WcWJ9,N/8N<QU`6d6D-X]661Ue"]3u6Ss@iZI8.5l=_[q&EWED7a6
4658++Wcg"e,P(lfJ3[apD?GdW)%3F$OI$&.tiQ(L062f$u^)$j</E5!M2`Tq'R>hI%9Xl6WsZoh^5am
4659+C)BQF8.$,ad1LClBj6$X6B<Ef/8Q7`EX6*K;audZYf(Is6'r(<">euY.mT5!89]87q<-uk)O^X]
4660+caPJIkZia^))8FbTcsY-ql=s<+@qCWXt6AfAY<foB[^,4&l`^*V/[d"`5'P=Y<4H[E:,n!lpeS@
4661+k,FGV/jTuDPftGLGZW$K.EMT8>I]dVY(I$fF[;K>LTJ=*o,/p1+XGL@@$9>%=>Iu!,UF,Q\3e&'
4662+<Ps@/;1tE8q#_V]geXXeR1eu!Xqg(r+XZ6S9TQY>A-[_E^Na$P]T8''o\WHBE8e^r[j$L<3^e*@
4663+KUjaNTQ\rGD6n6!rP?;om1a8-@ik*!*uDCY:(4cpg[2,8VdhIF#(2Ff_GlQupVH9\QuFf&0U%&+
4664+=a:<)5VRqsku))$eD$K4Ec1[Ba&@8-h=:ai6_g!b:53OI4*!k()'un>4\Y,N_cMUe3"0tr+M>ds
4665+,iT4l),:->51VT9D'QBecJ-#=+hrRB^>;eYeELRlKekVMUmZiEZsltGR3lf0gM'DYmI\Ks:YroZ
4666+G*W1lf*iXp!0^852[QFO'8^W$X^Au63R(sf!X,,R*B`co`AhjcOM.r\VU)8NDuU5P^K%s_&7W`^
4667+.nILY["/9[1ig]C,q-@\99Zoloid[%BQ$mB;-6IJY4O$nqa7[u4f-82/1#t_Q^GLc1Yf`R5,Q]R
4668+)Uape$o#UGnIjTurs)d(\[lHJq>m2Vp[>khd"@'/.JcD_6u6eun\qHEJ9"V-dZPoJ%?LYc`=<,!
4669+&d`F7/YoQNjuh$:63^r_!Tlqa+NF?ekdF-mgJBTR-TYoM[KYTTXfLB@V""6`XR1fFaT.VPD8%YW
4670+A?KcYC29"0$tr$OEro#nc!n!U#;W6^8;5u65_,0r"lT4]TK`k9#7o2g^qt)g`&^.q0X%]W/3!j\
4671+$DaSG$%kiI+IMh5`13P;$'<"h05V..,%?."%A;D`9AXK(_#b1Q%1Nm';!e?Z)@U)@$'0+Y:GD`d
4672+`rjMlN2sJ%OMJL?/BImZjH1,\E?><s3rNRO&e7f!Y.R<bBak'j%cH.H6amJ3e9HYL$'9];$p%k5
4673+R0\o\%%q3$@$q=8N=9H)r(4.)&TDn&NtnZe;';;aWL=-sUs(>[-A1FeU2i`!!iJ@$)/3If`sBd!
4674+U-mseC6>1_M^epeGo@8=2m$6ei0t@a_DgDB"j^T,KEqmhC=Md0Up5a=@,uAoaIU_1%]76C+Ik9b
4675+7L@Ga6nVRJd+i>f-je6C#)%OMn0jb-o-!Q!JFE+REZTp&]+to\"nE/8,`'+.cj#XR*!D9+KEqn3
4676+b9TI;$-6p?^s*HVEg`Sj4f]olJd>!,SJ9'TGHu&dAO>\11DT=WBE2`nZ.r(5P97Zl'P2\=$;2Je
4677+-qD(o.:A[EML-g-o*Y%n+^gluXH3bO]KH702tFQ4jAlTVg]dc"16Tf9!r-raM@@q]6"2I?c7VrO
4678+b"CTa/g;_5DT=;gW*Di`.ki+r'*:+(@LSEi>X3?\Og[.p'/2$1.fpA=ng\4Se09]X$1S.OEA\$=
4679+g'j/51IbR3#[Rq&__`M*km7PQZQo_G1>hMU1.tV)djP_?&N#.'1G51s@%N5g#R7UhoZ14!Y_=s<
4680+#;S)T05T5F;i9S7HT;a"'#U#4+J/"QT\/FS3fHum1;`6qfIk%).kcXp!,=/0Sdb\RQ&R^b-,>U;
4681+Pi&fN4H\hTYKo@Okq^H>5,Bnn"+'<to/(MO3cj;N1YCq@#n&QIe`M7X#mbhJi7KW%%BXgd;h$;D
4682+\>3$>l67JtP5HH>4#_.>0Cu'Z'.kaJZG[FU0,$#q7h\$AECFe/'jtlI5g"(#WgtkT@_eU)ic`oD
4683+k&R:.#4fl)irfjDde+;C7YYgN0WkWn\A%L/Cil1."A5P0#UI3*6r)%GZARAaZ?&oSQ'>i1.F.@_
4684+Gq>3$.MP.Y';h=T1a]N7(Q*/d'0f4s?NtMQ[53#%.XNf59.Q)=+Fq]qDRB$.#=3DU4K=5ndCUnY
4685+M)`pP:r=3LU@JWmYsNtI$5?#rJ>"][]2FeYBF<`B@%erXVTBQE4AApHF\'74o"SbO_goTf@%^_8
4686+]2ilq@Yqj!F=cp[@L<]4;_VOSj$QddLa`kf;[!5,Uoqo/Rh]=L=2ji9!Yu,#/1Fu%;lEJqQ&RBg
4687+Y?F8Y$<8W9i2$&0pbW^&"nfrSU3d'/dfKMa9&QNV;SG>;jWY&N%/&F$E'[f^((*ulMIMg)2?(7J
4688+4]F<!,h54MFpL'@3DDioaOU4m22"`t/db?mk>$8;,H+H^Uca@C>QV"Zp,bVoVNQOA.94D9m6su#
4689+7LE/+"Mgj;<Q78s8ujLX4]VGmU)rSd-k:&++t533NXf'`((,1814Z5-`[E4oI`SjPBh54;XGVH,
4690+?YV2hC2C7i<hdL?Z8MmS9(o#=p:R]+6;]Y97TRTti+6`uQWb0S1aEBB0V`LjpLr-DSbD!%<icSD
4691+I;,?_C$9&@6`G"tSi?BKD`4-/6N:r_4)hYFE8Z^`<oI"Ypr_2:0/f&$2]lhsq/NjTEE9e[pD[pm
4692+6YrE18/F.#2b]UsC72OgD>.0qQJ0k*3HXG2Bi$I+f32-tF*9JBb<Tga(NXJ\ABT/ag".Zj5`Kk%
4693+A-U%*BhR'%C>qF$UN+nVE*&HC(QEbs7s\]EDXp#=pJZ@(=*PNCCc@c+m#%#Cq']=ZF#TM,2pZU?
4694+TEs.BGh:AMpSUEfq(*?XBfGL-GNbFPD0HfbH+2Ep@&Gs9(4qf:L%j>QJD(J<&8X1A6(k+W'ZFh,
4695+1P,\^#1okb/WY&Ik$1/eGG)qb!:Kud.7pt-KihI>(;kkXgu>JFJT\;RP9DIMcOfY-@+77%p8ru5
4696+PAjP9Ji=2Q\;CLA_d[W9>k_QQWD]tkB7r1%:3J&";A4s&@4mArCau=eD6%sd(2<)]#<*,%(rmA$
4697+08g5g-STMBp<IXc>mfN-Bcth7'Z"9o9k`*dBcu:ZN:>.q^**.&B[rqn,6SG<)1pnd56,!sPq51N
4698+W7[rYP-"Xf=Kdli2j1[E6m-;)i2Kp-/X27f()<a2[J(7WH^$i4$CI2LH"0'LO*hfk<230PAP,k%
4699+i;S!1RjA[SK/\jL'7'C]46d<nJAm\J(8V(,#MENe!+Mq<,sYBQ<+)[j8pd$Mctk_"ZD%YiF;EO)
4700+ZP4!?Ma['V!3'ON3k78WAf3)K=J11)9I]3aMJ5_N6Cq"*p09k&SjtUIJF3m<k"#KN,3]_pV85?@
4701+Z^FOf5%(=4)0,odH_OGH#4FjD!:DEH%$c)7U=opD#oY7#X&?h*$F7p>3`@V?+A'Gg+^h?<L+/GU
4702+]JBk'6o*/e26oYf]n_JcGIi2\R8Q4pKSZL/Vn.K7j!Y8@HX1./Q!0Ub8>A7A%r/\Eij0h+3j=MQ
4703+4/q>[%"s24NA(if;E+HlDGp[Ig<a\q32bJ>n8h'.Jh*u6.ns41V%3d.]!mLtg>a<VY#<TJF1\9s
4704+h5t`rku3lT\ZV`%Og0!A1=GQe1^1(c5))-@*gBL2)_jTfbrrEOX)nM'gAFos(I@GD67n*->+uHF
4705+:=t05XkM*5aX2GE:`u39%<#'8i2a$F>Ga$l3Eo+o'cq$&K=CK[eC'5)>%:8:m'(eFT*a^c\l$$_
4706+>R!23XS]%47d>`Djps0,%Jm#Cfcd>a[-sk9^*u^N]=#/#9M`9nSmksoHb6oREP,,LV))3\]=#AB
4707+_(DBo1qV\<-@JI#;?n.5.]KR6&A+elYTcgG['ca,$j6tf%oABh$p5_;>Ug0H&HQ%$ZL_q1Rs._5
4708+^4kK``0;(',R=b-/3[ID>:4_(gF=i8((/`8Q=+(>pfX.D!QS??c?sJ@*+,:[bZD`c$ItulqaM!e
4709+DG_O[;T+(mo.32E((0`@an&7T\hjTKYJ%.a5b,MqY"E@AhoiV]TA6P;&>RD!@EMTG8-#nm`3'I_
4710+ZC.AjbOY!s4RpX1d/kRo$Q,MWb$PYZ?4.KnRKZ.g(1GLRUe9RO;T:6q3`MN\-`+-'2E`O%n@1F8
4711+ZWe_Ge(T7=02_u3Zb<4b`<$k*e!m*6Ok!Ql_#7W+VLZ'>ZY1r)GJ.hFF-@>UOk!E.4<7)9""4O=
4712+&<MUre>#+GU@J[LSX9hheQL3I22BYh@FA/PdTi3lh+A0gb&J!&7:<IVTYtgV0JH'V,*9<34iDKc
4713+s%'\APF^>hJEbngb`bUY$\YZj7"'=<?40cUXo/MhIK.7A:h%5J!W[,+^(I74V`"Y\aW;%#n[RG(
4714+rQ@Th_>X<E]hipG[=TGZ+auT*BO8L26cT=[$X%_LH%/?MrSL#0X0,i0IT)ZoAd:L(;15<:nR^c-
4715+(:[$u&,ppr*c^:EI/n_Qf9q/05!tmIU;,WoAcu-B<MetW'WM6+Kqm]XCsFhL&j:hX#K,[pPjj'N
4716+bNj*)%bOsUrl#4pl4$*7B)N:?SBO<McD_r?%]'-m:XAE[EPm7l1HtD2USX"T7U^_VqJWkdX%L:F
4717+?:'2//OIjHK$Msh^,er+nAni)0G8@3TC"hY)a>A7=ul25oBtJl;^2Dl7/QJh`.%kM0LB$]`J:!C
4718+KHXn'p&<r>h`<I+5P"VMoq*c&:jqX8E"30hOBN"fUSpUlqdea7n\:TBZRkR[Ds-K=0Rk(P>:QX;
4719+[$$YM$spBP?&U_8`%ms\+rlsY?EjPFhBtK62DLiohCn5jJ,StQqOcEt>:RnTD`$GRB/pf(`_c`S
4720+Ca0db9I"LQ]Y\/8S;_)ZBpdOa4;n[ko3$abDh>ga0XD&I*ta@K@e#Yud*c_c6(njg@>[tu3_^bB
4721+!J-&@3BGI07T3a.mUJ/BUk1=Ob[V-=:5lQ[ACd>+(so0m1OUmF=fp3;Am(PS_dOOEBJrH<*:@Z&
4722+R4KR-)4J'H3ZH>o>6SDH1pOtp-RjnVdUTM@#%Is2OMksd5pqoUQ"qFO0Ug5K;j"HPCGZrG0\d\?
4723+do[TK#.X7rPiQC9RSJ#<JX5"u12HSF1RX:3LW&2rK0=CqA[FA6:05UE`6!7[)%Gb$/]*u(e+Iuu
4724+5&%X#A\mJ@`_j+?)-#deN1PZ)^LCX@9kjc8F?n%*n+_.T"#/.[Vp)YiVR#0=>5phgJ8cL4:af^*
4725+[kIO)(oPN7(CHumS1:X+MSfS5_f2i$$jKPX!=gmS_tl(*6%EJ__[r&0!<uB=&JiBKG\4q$&54MR
4726+#*?aK+2oD)0W@Pt"C<$7!Q7b[L-`I+PXr"m4J&cE%&"BROSE:T9$5@31!>FETaX)j&8)qTj"/EP
4727+a--=r,t!V!(<au(S<"3#'@`L8`7%th5/iY'B.PLJTOf"_@@Y"^L/Glo)?pknM)qQ]FSd?3PAMNl
4728+bY2R;.aoPkBd$9Xh*jM*1C["r:_\l3;,EL9eQ>[+3+Y%u<.u#(:6BVa`O0c;CDatZI?.1O8pua\
4729+9/Skn<8(<AF;i]<FYR=U<cpK?<n;C\;[0Y[.oP#BrD*\o!OXLj<Uk$FAD1%[9H.-DAUAf.+W/EB
4730+%
4731+!6;F)d9`M")H"e[C&r<[roB=`%fVUEFH3hnT0G,2CEXPQl:>kh@e',3!T,Z'kCjadi!$n6,!5Og_*_-
4732+K4257>T;X\A^cuT$tWL=#5G5:H"GXQn!mm]ST,GN)&3i'hjSFYL=fAMEL"tYJ8prV(mL=+B!k)]
4733+VWUWb\"?Y=hM)qW0]6qleiMYK)J2h+<lKf]]Q>.YPt$$FLH<_3(C*"bBqk)Y&8@qYRl6\KD*"!Y
4734+[VFS,cb@[*c8lm1OeatUL:H#i$Lc/KbmNQUcVUP33H%JfoK0@ceoX"2@@mb:#>,hH@BU!`_0lh-
4735+hK,3*8IG)PT1QK3]XLO9Z$4Mk]!5\Y4m$#FVbt8Z\,aS$oXm+MkGqEtV:#3DemIiXg!%^DAH)UA
4736+Y$&L=D[PhknB&HM>hT]Hks37qo.CFkZ&N;`(!$T@C<OH2<!L.ki'>@'Y*XLUJZ:k]5ni[LTZc@G
4737+&4Ne=p1je;`#iEL7FAsF+Ttb\+(DHCKYdF8"B'mp?#W6#5h.@5_1WDDnF3Oq(a@l^'/3aQ-6Y_f
4738+@ca<u3D[`q*^#fV%&#a>"u&:[6Fa9)e7:Lr&Ks_8!sJusPHTj_V("l#&J5&.6&Q;ns$k'\%%s+h
4739+M@h;+,,hOH,MZIRE:PMKkEd<d'Ma^.Q%qdVpBjNGA;p$j2G"0``h\8'0JYs7Z:PmC+n.AoEM8gJ
4740+LdDO/gnTL:+u1mP,nZsnMN7&N9#O3,-WJb^@'GYo6+%LH'c\B5o%F_bWGMuHCqbV*b$./Doe3#[
4741+1mQ=o:P25JgL,YiN/i'b8*8P=!Mk9YKsFlQ=i2ti6Z%OTg2+YB;^YX'7!#VqONU3jIA'7FN!J&P
4742+K6bOdTnk[m8(n=QR,ECdat95?Ag.>&>d>L,E1o!0bfIbc#t#E3=V0XL7<_0,6R4Glnpt]sE5O5/
4743+.guWY(,.GMF:CSW>_U.M)MUdDK]$Z%VEpAN5o(V;ik.=M1r(&.d)c[[#W>t1cB'bOI8&`9'P`lX
4744+;mAda9]La>Ae`Nl0h,qPkqb>t1$OQod)dAsUD9YIJVmDuaMfW#dA:\@R0Hi0J18,AY&s'4=#tf^
4745+/"JA129qsr3`$]/>l_$M4<.CPb>d5MF/nFZ\^e.X<WT0.V/MlmL1%t@XNK8'JBC#1(8#4d`/J4b
4746+J2'IE^r`S>B!/@8P?*4Y/t"RK%+/AHYNn1r+S.pQ"SS)0C)L)?'d037TJ9%g),EU7UB`ZL0h2Qg
4747+91'DkTp6lX>8S:-Wbn;c%6CHA]>BKjOCF--3in&qY1'E7A!]nNk=Xm-FJJG4]2O9bhDl/"C8bXS
4748+PVN1S:rMnUU5Vqt^t'e?%qLNs0Es.hH7-+iKH5C2K.&jo@)NQ"0[pKJ'nZacpQiKAN["`F(oT/[
4749+L^gTld$3/p>T#:d<Xl\^1SLa$O>:3X6,GT;VL6aZ1J<>@JYO>rSG=(d&n>M@7jFgWOQ0526P3^?
4750+.&"7!(kU8BLk]"@iP;XOnB;ioBi#s`UbnNle:r#><B)/+`#,:78+TbAa'j`EQ%Dd:6V]p(#)L]?
4751+bhO%&8]qU3,gU-DM4Z,4?Ob]L0cW2GWC'3o5Pdc+Be:`"6SVSS)IH>T!5k\T*g=m<GcIeB/fRG;
4752+C"0_8<3Pkm^%Ai=%Rf[))]YefQ@<0N`?:op0[:WCc<JY+oGiTCa;T4-GM%3=2eKs-U\$Ijg,g*5
4753+A'L08Ll17<iR#j1]Zu0I^>[jn6o8XTbT6:WF:Ab*1GWE;Hd@Q?ae6Qj-UKR+WQZC?]#lrWSbcrN
4754+3O0(pTJD6H@NF=ukhlK+1MNCiWV#Vc#7L-Pm]bCdW@h*mS6K.6ppNe>fO<gQI$&D#0?$Kf(Xqc,
4755+PAr38a,[]$i)*JoEdgs3_nQo8gqR"`(!4Jj?Obojb`$Roc,-tuA`;3VTPr+$El0&h,TO"XbD<:K
4756+]!kf&*<WG6L+g;:=DJCYHBRhJBW6>5S*_I3Z$+;L`41V8m/=sl#2mt03Y&*8gdr9)rmBH-EP(>h
4757+"1j4sF2((sH42n`U\,*<Y<#L"jVd8Bo^7jkQ4Gb])oi3B*d1"?Liq4G'h0iqg$!Hb:'Pp(LjIn.
4758+?Gg`#2PpJ1P*>NZMSl:bL%F)EnA]$aR=b0a^t8lJjBXLIBDFbFk*I`=*<%>*[L-D#r1N0C2OJPG
4759+H-,M<J$^3o5!(O$CA&:2NL4c.A^')QY)s."895A`rWgpJ)k=9KO-%`r)g/UQgR\68"#u7Q;*;Uh
4760+"1gIJK35fGkW1XO"i)gN\7>h0K8B]*>R>p8]h>qfR6!+Q$O@S(^jAJUpbY6tq?c[i_&NZq0YIlK
4761+1Vm$#$qq2>;Hf-G#!e"HP@PIpA/W3_+"[$fK:>8dq#\<n=1u,QK.C%3#t,Cs2Zp#'"/BioULbg2
4762+q?*ZVMaLEq.kNV0!N70"_PAh@bUeWje\a3r_Y>gngH@e=0UfeAK6T21i%fpekHZcq]R)e)_t/kG
4763+1S>SL]Qi)<^_)f@A]-C[6:9,1$WfFJq'hO0Lk@EK39J/0\NXu(XV#o4J2fe\c%3ch`%X.\BSa/s
4764+gk\QQ-WEaX5W=>21;>e,4]?,b#j0*r>*";'_gonKEJqf[=[hhhK?RL^6sD?j7M3FeLh&XZJ;-H_
4765+W&Vk_`c02BN(Q=]*#68H61anAZkU!%Fpp/Y%`gDVae2-P1QA]X7gq*_;r=\;GCquL7l_YGf]Igr
4766+OLKlh&8Z,Pd*4]*l3"[eOao3L?o^a`0YH0^]c+IQ!2N-s1dVlk`Fssm]S/n@L''\%K7kN]'SqCO
4767+a9,t%4VWgS/<NLLJk.TZ85+PmN/'tk%`m.^N/WY2;N8dpaN4"DN#\;.A:I0uM$cL,8X)XEM9X.A
4768+U<1=#W$J4\-p*D*S]Ln1afC+)e<WM\\q:u7a4.0m,RDQFX:)Cob4p\n,`9bb:FU[R9*C;K=N_Nq
4769+[mfLD#gr*#aX#!0UQL0^8'%JkN06cVRRblCN/UGdoO%]U0uiRs^seRi<,k6%n4=<"b*0Q`;"I6m
4770+VT?<a9\aVZ,fDrqaciNhaK2HFYWS!sL)8q"7hj$;jMd,&f0Q&j9Y@ArH#cKWE=@d88Hd_eeD<m[
4771+UdoB[8Z\N+FJ$V'NrpYnMd2B>@q,V2`C$Hb",)sg]]m:4lHV6J`>%3%ED0+imt3=-O(>!/S?E8f
4772+O%p\/bLGuT]Ze]HUd4"Q`?`\6JDZFgM$Tc4%C4069`5AjQ&)d34rB*i_5P]dM*'pgM4!$FjTU_G
4773+QjJlP^(]g/6[;K2r/U8'K7o-kZ?F<#%aau3%.M!Lm1>Ysn22UP1.4)\,SiR3r4`Lq2aEG2MfOFU
4774+_9laQ;7e-`=>i*RGKDjpQiSJL37n\94hc37;Fn\-R#cl0gGoY80kjljI3lKD+0fqgM;9Q^>=;@=
4775+.gh7h;H5-l2%2Z!Go(;pdetK>lt&%OH;c[L")/"GI"k2b,nGRq!OQrF#X#iR]tj"N`]RGD\JA$C
4776+9d&g1:jX-P5a6nt1qpSI5Z>p)X2':k=4&]^;*__3GVFcNA&B6<NQk>8F8RgMrD^EZK.+)_D,\?1
4777+4c/BdeWWG-*'(LTP_5onZI=%.=?-Ih;DR1\"!JqGZTU-D+Z'bYS7Q"b^c"(q@m^W7$W&RE\2r3#
4778+Bu<aa&8c77gM'ZX3S)!1Ma5Cn?#H/e>Q`-,N;PB;KLCf23XC6u[(<sX9m\_I.Qlb64Rs!6eUG)e
4779+i<(Mp$Fl\<+GZo/@RDBrJU36j0KHMpc-Q2h=G*t_Qo%d=%'8);!M,,XeQ9G4D_U"&_gjeQdr#UH
4780+LFBc"<QNVA.Z;]$,uMl%)%D9^N%;[TYfK)o.(p_UX!WCLRT[Ed:kau>r<q,WNi@/T5I:+7>C<_4
4781+!f:/Z`G0=L(blMqEE:"3d/\m.rN-R2HO6gY&3uu$?nr1YQ\-ln"%4JqOTM28M_tVi`W@aH4#dX)
4782+3B4R*fMF?4>IllS:l6YX4.Rl`X"R^.;72%k\V,'.c+jUU(g71WN,")OrJ`[]`8#ad=FItBE;\L&
4783+c8ldsJ^'fm"h'%sg&l[r[F;C51B:Z+^cf3A>W]n]naI2gU=o_$N+r8qqaf=d8_9%BSt43W>++0(
4784+EC,QP?:9NI&<Mj4fYc2eg*Pf>1P@`68)D0k]\S-Fh<!Mqb:1uVZq2%g"3K15Iu4Df2dM.G:u,5R
4785+FP.55!L;KM?#eP'r)l0p1i6FR^%nsn:_2k`fpru6&b]=O1u7J<N\,qkMjLh"0sdDt7.dD8>A:GB
4786+>ZPW((1%/sPV0lfoU+11[+l<jjpFQZQWa"qK3Q8XV%f/Yb#j*/8RjJ3\<p:k_a3+Z6rK9%[MM2h
4787+*!:@)"$Ro,q#[O7[Z$.M@Mh&_b=dIM'OgDEYQ]_i'sA$??Er8n_2(-E3Wou--G_QH5jg6,Q7kNd
4788+#f3kY;j1BJN\"X_/I8CU@oO=>PSPIg3Fa[&@n&Pr7,$[;*+O^GicAN1PR-9E(ZJFciN>PVKZME@
4789+7DNM)fJXNTLbZ@S7PK,Fj>7N@Xs@JB,RoJS.)%kI?;TX9,3"n\@IZoA?;sj]o0#K-jQ_oiQ.:g\
4790+/H[kj7;>X4%Pg+8&`QV@iuT"'4!!(@WSqr[53>:Bk"\?[bMm,G`<b*eY#f%:ioV"hAR6T[Nbr>c
4791+C;>"2@ZDJ\N_8C"k@/*`@'i?:?396CKo.R[8%>N,Lc<..,q+J&f\JF;lR.MrMoG;%g"<A:&QOYt
4792+"5L$%fW^E!KcFCkU"H_>_[-CAL#%BA>!GDA95TI#/[g;M]KBbZBagc)#%6[X%0I=V"#Np6/sXa7
4793+e^7-YXj3,,7'Tor?W&YDl,2MrNB"Q\T4nM"^sG,5r),,LT8GH7A0*\:qGV->iL'l*kmWI6DNYb&
4794+02bd'l)'VY[00-'S`g/O"#?;0S8i9W]%V%r^+O6e92@u.Me]nEC4!am<juRDn5r/SA-<2'cD>"j
4795+''n?DcaLADQCmLq8a@Z*ku8($#,CL@J%3e+lm=hhXT.Sr0C$QD74uXIjDf!"b%:"[Cr@'$r<2KB
4796+'C1C9'!%q<knesu_DUJ%$\59EMp#f<=,Za(]n.?j2Vp=$fJV-MD8<qLrnWA_iO-b5DE+5o7c<]:
4797+2c$KTK7-UQcKDlpH8oCl\3Ap\roc[$mXla:mUkJAW2/kifE%Rt%VuBY2J"VI0TmP59b?jrM5OHS
4798+[(bHTe*>3,re1a43*1(^RcT5*Y(gVYORP^D_-f$:X^6h.&.H2HK,4h%f&f`Y:@4YV1Q]:+#hVNK
4799+UIJLanF^Jt/7[[<ieVrDU%nW&o,Yc7Gc?rmnS""bX\t-XFRd"gM<PA)PRghl(mS>:?dh2Yi"trB
4800+%U]*OE[MgWQ=:Au6kp+@2OfU_SPeq%@^]/>n\6TbIk:$7VmCRt92@6o-!+)seIhO3ElU$-4^.FN
4801+,t%?^B@_:J59dj01."na5k+`q+>NEp*K0(LD=FIV00bBX0oTgMF8d4?37uaIQEEFfg3lscNr8Ec
4802+79>TYP?"cFgGrCRg[Ya3oa=KMLpG(3.b;S=`WC(C(KSlGQL,RDF^U*f9i)Bh`X](6'+\DQj5T&O
4803+?ZBqjEg%j&s'<$^;%9hqnS`!t55"P<+PQ>>!tSMnd)jdbMm`Rn@FJ#22ZL/U(CldMD+f.FLF$-s
4804+f%X"^"3quIT54.L,4FVWE@5c#827S\)-;K./euTN<VQ(>1',^.hkr??;)!!,r7OG"eY@&-088<L
4805+7TJ&mFLs;3NQWNe[eJ.<^[Tp;OPj?t3K.7GGZ^up$Q\iTPAu5/GnApp),tVaKaF.(_[)[<5EFEW
4806+QeU\jK,8S(T\4K)S9a:\&Gk_g38KT[hg-lg\)1K$<P\-sIgU3)q)eT^pc8-M2gTD0f.V[Aj'9F6
4807+BgP2mqX9U?B-rLc6$QM`K<K\0:l5P%HUa2TP*_U6GIV=pG=KejOb^RO0=QR''`4N:qm*#EDnu,!
4808+\pC$J-E"f[(VT`Z^K1)_kL4S(re$'m\oK3ZH\NaBd&/Cl.fAe`r6%H1kK<Q1bCb&QI1%"dE/k4u
4809+"*1TXqi2D=T=]&T-%38EHnbC/JKbAd`I&qE2o!9/YJkq5rA9#_qg[LP5N"f)hL&:`5=`G:M^FRA
4810+7s0"jp&A)&"Y%gf2GI.^Y)a@kG@(;.<crL]6L3/sJ)5O61;q(M"(bm'GfHQjoRE?S2h6Dt%&RO.
4811+TYbM$(la7`)6?(X)[OGN;]rji0/8nj7Q;"8dfh`M9]h-^*YSp9_r<C,+N?&PNL`e@BG'6',8^iJ
4812+@qg=(a"j)$:Bi$mYhjRYRnQb#JBVP7T$1ef>"pUm3#U"Qn087^DDJ+!lXlN#*:.5q_X#`lJAfG_
4813+Z,97i;fU4r9XdHc#0S0m(3D=%Y4g%\](^V5),>r3I0OPA0oYF2>-tAI2T]:rLGQ#\'b#jt``[]5
4814+F#TXN*R,2f/UoE_N#QF%6Qs\5Fft%Fj"ZsTBeMB6c,T@C_ATq@R>f$X.CX0(`9haFRD/1.H81oT
4815+VV@f?_JZ4[7i6-g)o6?fQt>u_(BiQOY+BFh!tUUJDYJ-1`]cYKPSh))_sTO\:HDPQ50kqF2PB)>
4816+DDM]pW+u"<bZh_=%-+A;K-:^1aJLEU98*a8nB08l6jTjE2Sk8[E\YOP@)=W-lT2&C#%<E^2oUCX
4817+B,\!'&kO%EOj#0R8#Tqm]#!@3,8eJF&B(k'JZrQ"8J.'FmL@OT_MUqf8DOOs,C7r%L;PP/*ks<X
4818+NsCWl]V*3Ej,iCYN04$SV+1QEIk8&bXR7i4$XdL".MN"%#/TeeYoZ2ii8Gg&dV-e5:]mBU3BcuX
4819+Bg&c%^gg&"1$phn:D>9&S;]fL<oX["Rp6iS%a6Ue%]c8dYD,?=O'<*HI5`l7"$6Yk1dR461;.J(
4820+).Y%.b]d\O+p`oL`PI.O!Et+`KHc8=b@+d]iXi#(LDFY@["r/sSJMJh9t>D+Jf(>#d5N8t+p_V:
4821+i;6`fi+7.4OWC'C#'Yd!H=)6"iBQ3e@#8hk_77a4@,bRPGZ"1uMC.0\c7lV]U2ZlDfD%6p-]458
4822++dELg.&J0E'm8\PLn^PrG[,NKE\(ES?(N8Hf$.ut#hM/b[q&uVO/5ilD=a,$)/IS9A6HLl->:!'
4823+",MfN%C)bk2X%!9-OXdZXUTlLPAK7U@&>=+4'j/BlIq-'\I+c0YCKr2R&ceBHN%;$M`6*OD;lbB
4824+ckn@HNZoul4%NeL4!T:HOJI$RcnOcJcSm!WK:BVY.cW4%1@uf@29mJ2\jA2EUF08F%RUm4L9X8^
4825+#jUt!5B5L9*U3ilTa://K$FD*$fUhi?]9S3US>iG\K`M9qg';7/^F+lL8XJ6T))"g%,P'Re;VVh
4826+fCF5p0^7m!p4N>2H/jS%0`''.SokLp1LeD,s-T"MXVpDH%:Ph0T@8$[aa(l\-l@dC5]Y\G^j6Eb
4827+BK)P;_PmX*M_RMV1adrA%TaR<%>!U/U%OQcgls9!.TR@pAN'b0)=hk86-Y'.k^QrR/LBh$,84-n
4828+W>s[(%&KNK_nb>CSZ526bsWKuo^[1Nl/+TX</[a8kS_H$BdnSn0Wh_QSl1_N/V[^j"qp&=K+)6H
4829+EHX8FAAgdVl8+DqA>2RZaI%eZhCVUg0rWI;gg`A"O7D3daB)7W6Q(2G+e1<C0[P&3&m1<;<&?pD
4830+PTAi'RLC@28g\R(:1TTaPbF1m+#%56UmQ96;<@*X`-iS$b$,@LXOYL-jpTY[X"[D$2b+O)[\ZN1
4831+It<>c9NQcjA#+`LE]I.4kn$/);;hq<ANZ%skpGJs%h(quBUGd8-UTGWS5YSY9nEa69MD*2KMl\#
4832+B^[dQg\44cd3Qf_WXU;d4Xe/'4O#nd5Ytm4R%^cmT)&gY<mW[f8so(oq5@%4XJ-0GjtXisg)Qjj
4833+St7<_0Ui?q(`i8;SQ!gsa$^1M6\4\Q;_B&Q&D1=l)FRS5cl>Iu'G8P'9Q_K3D8jsfL'SI2I'fa>
4834+TG^iul9t,ge><!G2mE7sRYe$-QDD2-'^Qh0&M#J?UK%<?='kQ-WjQ+<"#eb3aP!U'cW*(A8dA+K
4835+_M>4hFN+Q3QtV&,A;\BS3EOqM=6p9]WTiQ)b[jfb6+&lcM\n.t,g[DR0ab4DJK+au&42[*A[7BM
4836+AJ;)e5g/-T5%)Bo&?AWpUk3tbZa-L)!9Is4MP2JlcHh6\i(-W&W[A,pV\#lZ)Zp[X[<?(=>^LF]
4837+Xj*E=kgB>K&BtGSfJ..V)@!ur`k6pM<\]\4[b9lUIj=nNZ+u;8VQ!rs#iY_`[2*.W!e=!\Yt$/8
4838+[2iRp)#juZ0pWDs$q;)RI:DPUM0H)'9)K>Njcm-27BmqB4<Z>RjqCa6Ig]&00"->Mi1%"*L!aVQ
4839+%N<E!`C(V'i4s@BAC+j0`=i<>bR\0fP]"<Wb8_((1G$`a[DJ#T"QST%)eIg<_M]oIL@X_,<RpsT
4840+[?=o%9V$WFOV,:1MD!!NdXqX2GCiW\rQj]Y%@OJB,<:B2917""e$<<(q5-\D3c@CrA6-',,lY=S
4841+`?^'bX/&%J/<bU")m\hIP]Tp`"):O7grn9dot!Nq=d33hD<i\qO%7ISMXejb:<o;S_jVd?)2]kd
4842+7feN2:ri@.eEM2_'kk0'aR691g0tPcbi'@)A70I'\Vp5"[KDjrQUB8h:r`>aj#r0W[Oj(u(pb7L
4843+:h<5(2F)bZBUg=7Z%_a<)40)c2hpojWlU_XO?r!oBlerI&]Hnk]<?D?6\ZTH_+b,r=RR<pVF6BU
4844+B&BKlg7!XnCCP@1hIZsaL6k`d6Ohr_4>?mu@X_]*Y3P#:4"P<5S\I/@ppNerXRRo1B&Wt^jMiR)
4845+d,!WBGEflP3\"TQV6scb:7%B;11QXKjrG3E$k?L3&_8tP)FL`C/nhaNDQ].-pj!KT>p#l88,P^:
4846+$HWK,82Y$`D,(FI^9Ku,94O^1%7/4n[i&[)?>4tX:7MN=0VU1m^rL]h%'WI(mN<LZX;cslD^?`d
4847+nO7@"M]^m^gOR0jf'qO$_c\;UBrf-m:3fs-eg]D'020Ui20u)TOB8]/[$IN+R0-,>9`^PtH;h;b
4848+drG:\!5l^#!n(pQTQqYN4<+,WJa8N.@"-0^)gV#(Um.[PIBRG7+c&:M;`;8U0KW509V.F5%E!AH
4849+=X>T$4:EYs="'meNtr8.a&1s0.GhEmF0@Y[aA:A09#noGWF;"*Qu`^.2Eq$-kl2dTKHh=[5g\;h
4850+LaO<anA+7]/X.PjFG`b^0FP`FcZ\f8EqFu4+@p)QK8_G0)F)$U"t:*c650j42Zo_iSI/CX0LGtN
4851+mOk8"j/tjN:E9W*SdfIg-QpKf80fg>^4OH<q#nk97+0=(ljY?/-Qm/_`I\R-P4U'[P<eF(adeaa
4852+,)`FDo8bNfUooS?oIg3gRt1,Rl5J!AA.101]L.?*#U#K7oI&sB6ib+4^rf,\GRQ'.%E`Gm%_sZH
4853+BMD%/K2D9elonLt]S*Np&#sdWVW,puZq0]Oipe"2JhIV,jF(MhHZ:OTMGWhNEX*0p\qG;_X0A[!
4854+"A9'ZM/<%(;';m]2D@g.N,6!-kob\ZL;GKnnSTOJ0l%Ni.Oa;65_..TD5sl&I1iei%#TZS%)P92
4855+I_nZm$uoH$YgtLY@V3_):D!:jBR\)s!uV.K95(WDOI$]Tcjq8J"mE0`W3i.(E&J-;,B,+Y?tccA
4856+O=/6>-q%>NZ0j)/*$KjtirZBsW=L)FIO\f[m?.ZJ7^F-k%Pc2/%[%OL8Kf,_m3)K!jU@pn@gsU/
4857+ndc9=o4:*MX4g/8Bd2RWHGJ1tEYfWkONu5f-O"lnlKYZiK+,P(&eSU*Y2($l6Q^<Q+tNg;&gI4K
4858+R2XM0r(7195fFnI7*+_Y(K,PfWY6070Zd!H#*IgPd1Xb7pCabg4TNW2;P)W:KYqdq'!];HN9!uX
4859+QQ?.S'MGPBY):"lGm]RJVioR1bFpAIYRNAL'SEF$;&XP0>R#5iFGro;o+H,L37s-1%&VU.B0*a=
4860+k(9]U&uS;Va>U22!`%oP%E2dI-YP>%D?hpXFHUgPjO5nT4#0Y*!fQ.j;c>R5km+.8=0?$gJk7j/
4861+i:S]$=.jUXVb%crEgG0#28VnN/]0(J]/?j,FFjoPXN[-+D)%s67'2VS7t:eBYTT]q0ER%=.2:_r
4862+rc>6,/INs:"',hOE&sh\*X>7.mufkN6TIsYp($jm"lhfXDM0ZbL]D?J'Ce6G74V<^,a3]In:*#G
4863+U3!Ep%j\1-oH#91(dX@+[?KZmY_;Zu9En;/47=FDKHi3-4VI&G)l3u@'/[hHdZ299/$THhnS%mJ
4864+[OWsT'!uJBVpKig4uklH-@jZ,8X-"`T\N3i82PE^d-?49N@'2/7S^f)ENgQR\GIS:"qo!"6I.PE
4865+jYgL_5V52nZje(,D_cFF2WZAI-nJ:2`\*K/*MQTBPf1l*i8U_@>@NICPj[MRN`VF.(67bM&ZdcD
4866+W$.)>+;+i%Mcg\#"uoMu;3;tZ;IIfSBi2h>lQcs9eM.R7d80!J7l;;O7,E?SO&/d.%h9TC</W>m
4867+jNt\X)Z\S%%rtG;Ys]0Hn-<55CTfF1bncE6;R$S00e0H91mI>'=;<Vjir[Y$f_(Kb(le#;K'";#
4868+K^:D?=J3qm!,3AT0ebJ2]-8V,;%["$r=3t.,Tt]2;#IruMY8R]oMI(Ii6KrY%_ts\gsh`ljGd!V
4869+>mJ=X<]0#;E:bQt#))Wf?f9^pjQqQN!u2Rd@>+n1K8F$]cj$g(@PLkkXCVCM5YMc(9W0F%nLID1
4870+bgg\VAAgt2"E;a#BKC*q.C"/1%eiqtOpoaQA`IaR08*2t0+t^%6a'IRi,9>4DWqJ4%nkt?E]SD%
4871+G:n#d:K=L^o"6VN(f46a\7<Jj[O"C#bboIH'!:\>nmrJ3BF\pQ8Th(>MKVI4`<5TA:rt:!&<f3*
4872+oTI/:S+2@`!-7UqhesY))3KUiLu=5"Bl;kVCS8`sa':8(pMAd7J*9=:%K?G@+Alll0*d%Y<lFc4
4873+G37&FP.*R^<-T\<I!N*;KIjieQEle;QY\qQ6#_XC&Lu=!M@<A?0%%WYOi]ZYC>R6BjFG-'EA25T
4874+j*%Yh-'BZR(Qg"Xdemqh^QG`1P^"h(Y/r7"d'@^M(Me>i_g:QlV)P\B2n9]jW<Ft='fWMe&j(L#
4875+8=KYeHthbkUD28pZ>*6]QZ`$o_BC/#2_L=[+d"9o+R^-m$Sh%AZ0aQ%G6C1;=)XEc(75DYd>'^+
4876+[i.!Z%g"aRKNu@@BnJ_fkZ(n.N+!@/5s1$r5'8N2pbiS_XTdcj_&-=.3+"LCH?C?KL-gTJ[VGM+
4877+fIaU-Ksrc2DgN_%nDV7b/u\tTJt!CTP(`J_feCpgMq\iRUkM?8:sG2D6LcM7SUL!iMkgG3W2Np.
4878+bf<clfX<IXps1s`U6aH_"o-D`,3X]S5-YL)N_^9[.0uR.f8SmS..\4CYlB]Mp7YUnUD:D#Q,,)+
4879+F%]Wg1Q[(kGhFLHTd]RNDBpAF3;SVXc'*/!/ZfEd(sL>X8<K<$HQ^C.))dQ]Xd'5%OmD7qBbZY3
4880+&jd2tN_LX=bp5d^,E7s!1?1h.K(M&p`,Z^INnKFK,F%t>r_N?SFY*MGaQt%5@?OS#3Z4qO'5f`b
4881+Ei5=.7JXG&e/(i;+cV(A;e5Dsb?(2`DQ]Yh1#c6\q25c:n1c'+9+;A(),:WtQ&L\2:H?dqH2a>u
4882+f8OG4TW(DEQfSC'H_=gYTDBM"3Y8!#Jt#1BT<!U=EcT-&+:WkV%^F(`R5CN364MX.,+;,tAL9Mm
4883+=ek(+V)htD8a^]!h!oPA8GW.[aT&,@F<a=D%&c_*"R\YX`bR!hP0cn:9OXn%4s?65p65fQ$S6-;
4884+B;ab8OX7D)M!Q\f&JN:8WfeBi<tC`0OfWUcCD0&lB4`[PDKU9EJ`a2])T=Xe$L0'IA/`'2Z(St&
4885+_kr%3NRX'-HKhXC!]1h&1A\8[j=r`(lT;]p4Z2FW;qNXe6n-H1YB/q6F7$5WHLJ#GXAf,m1G7q'
4886+YH1bm=1[:s'\>X]q5j35PXVqfgD<UA1J(d[BN.1n)](nOfKqWARE"qIKZm+Vn-:sVZfL(apt.UQ
4887+VL\8nNIr-2qg;CSeWX48\tX.<=u0%j0tU3uTGs\/lUaJ^MHEY@hclmTHP3+*Y1QE`X;K!k)6k6<
4888+h2Y_(2FPNd7o"5,?`hRc]jTs)9-M#\2hKK'gTgRh*"PU3S3E1T^f..%\Pf1Ah7Wk!Z*4V@l&W/4
4889+dBZ^&4hE?3Hj-iu4[.Pm]c32aPrZ[737mMK9\R4>DO\FG7mJ_P#(0<IHW)F^@D2K[6)JM?'0ioj
4890+CcQkH[`]8_HsO3KkI2DfS9sQX)nJsna2asq^g+(NZjt(Q[..*d#/#-mi^h\4L->Bj:r(,mI!^T5
4891+b]d^s2_Sm6!sK3+4>Sk'4VKRSkeY8UMXI#1;,LE'JhE!%#uSA<N:X'E(Ve>+^Rr&T.D51tq-B<B
4892+(*Of@:[#S&fkZl[o@!i&N#WEG>liG[*>_umU`qYCE2rL:-.1=.GSgV2,^S!h-D4)BL;b!+g[:"'
4893+Hca58b'b6s"2*&3+K`Y"%/ChrEG*s(<)muGd(#r+!6R2"cFjgu0,8ujo4=(r\(d&CLs`;$4g%Zc
4894+I?O')/\SVA6OAC\c]ZVZgHuC4QJ!TVfTMRXR,D^X#q=FSNXT4g/H`LLb,hJundMs7=+G)CDCIVb
4895+Z)&R`9*n7bQde,O_pH+9aT1<r+PYlra=oG)WU?L$)G/rllla^&mbT&F\)qOA9'j8jV*'mdKAfgc
4896+JQX0d7W"b2d6H!]&U/S4#-WC:f[.Udqp18.YH0\G^6%+ehSPkFk:#fHA[S62Re5k5QLV<FM#^2Z
4897+?Gj`#L*!ih&[g*10:)b4,]]jJ<u0.:%Gn:&bMJ>DV:Ks!i.BbRKXYDion."A$[e[<g6g<nm18C(
4898+N@OI@n@k#ph0JB1cjrd\mX4NdI9,L>2s&>+FI,;b(e#EX\+4%>#pLhUN4p^O%@TVSd(`4"H5;[t
4899+-6YTPc_":83EOS1]C+TmcN9'h#fB(",lgZa'lWrMn00"=6ZJq3dle*5@dM;mS%j*8Ic+e-r;$/\
4900+N<uh0-XP9uhjeiA\bSBUqk&nXp,5`sZQl*/pqOH=QRUPrd.s<7rEmV?#Gho9kPS/Grg'`Ds.m`+
4901+p`Kdi$&mq`2[BU4@2Qr*1)PUsk&Y>UhK(YAbcln#R*7B+`!kf"6)<RM1RLnV(sn4R0H,or#4kuN
4902+k[Bn%ATH66_BTjW).;rr(s$B!)+Yt71PsW!5Fd\jEX=1Vdm,rd`^:o&INp.#7VG-iJCn:.0\=N<
4903+;dm?,@lB^N@f`)Hc!Rqb/2Gs3G0XYRS*fqhe^V`P17b7B&]iI7KXIB1AkRs$`b!"Tc-]Y-<`^7Z
4904+?Hi*&.FJZS^ts/*,:q3aEk'o1e_OBW>%OOt9pL9kfP@M<:\OLgOg)uL3UVi\/b[QQR*A)VVJ'Tq
4905+>&W=>9fS.V]!"H%NUaV4s'(?"h$r\=*M6BIfA(7uhO4B@k5mPZBLZJanj%8J%3pM:Ka&"?*f,hd
4906+U'`cZ&/lDBU*H[-P,.?ZKU.@p"0hZ]W0lf.%+#PTYm`6a+>guTki=RZj$Z5=$rJG!%1Zl=gbZif
4907+!jK3?.0O9%`pm#2&?AEVHC:Y0]+TfF:s)BgNiH!EVaARoE0(ScMOOerJXFJ!"lhsV)bSQZ_\*Dg
4908+5f4Kd!uUVE53#2R\>Z_2dbH[3F&nH_;i9QR$ue&O[)UA+d^Y&W'^@BVcglV(%T@3#2G^@ZBJDV*
4909+9+8a8iLL]$%8(AL6S'r<4?C$JXO0n\@gtJT9f#K;8jHghA270F#gb@sXi3Xk:/B&6UWf\Sgbb%D
4910+9m^#F#hrES=",=ePY"GU`\UZu5ha*.,@u:+KQ#5SSkV+*T\IV0=CrEZ28kNE>%u&c1"u4Nh'C5i
4911+@*C]l,9Z5)^EYFPG"f@1\J\B^;WDato-i<U9\*JHLK>=6E40!%A49\K.7@`p`9njU$R%GIRPI?b
4912+38I-d(AM8U.(-kO3">(.4us*EBZ)rl$G^+*%!dkFK1I_7E&hQ6j1H4fCY[Aih%JYdJ^#XBb_r@-
4913+r!"'u<Z\1nlH,lCKW[Am]<LW?^gn>LRcSOhlLi5/1MrU>hlr(B5ftf/j1aceC\rY/P`A9_n%A+!
4914+0)Dg=]Dg2_h!Sec^2MIQmAsZ22^QE5RdeN\N$o8$j7.6+)pe.$Spe%MqQEY_%UkH=eb%Z&?5\Kg
4915+T.@,<h%qrfCL&T9cZZu<#K$5kcTButr/UHloUTW=iXU@ObN*shB]_(G0?8X(C;/<0(l%p#^T[P[
4916+GhAa<^<a:\V8$YsoF7D,^%V>p1>2NB>2RO[5;s^#?eI%?:\jh"=9ee*HU]V1`#0<*ckqC^1Ep7p
4917+2j9>4$l>]O-fq#/(;a*>!Kn`<##qTEFf>Y1W+.*(N8bS&BGhqG/5cMu2MP^t*[#,O6/eK:)cUM7
4918+aAa@8!K]7(:r['Aj<5\H@O![R54?Qq%>Up!QNfmuSrspK5DatD#;`U/f'$TQAR[8\;OZgE$\hdJ
4919+Cu'_T!b"YT`G6uT9?!"7*5e7jH-U7(a)t_]PI[N"$2HhW'k3";BJq*`,!NsoY81-d]N_)74=@*B
4920+`^;OAJe)!iP*md?"/'iIneGQ$\Ig4?<1,P9Q;g<8nE:^8,Rrja<@ucH+2\LeQ7Q'?(%BWkhaso1
4921+1?=G$M'S']3o#g2k#4rm_O2@c`L1bK?cpsm+r6%M>(j7%bpTU$MP@eIdLp%[@)AII$JV#mI/OlG
4922+"#*(k<@"\0/V>`h%H/F@?H^.m!s$G&-g<'e$gE*nj.[##@sJMle=)WPb`o$<p]f.M)[;%2)+t:J
4923+PG--S;&$B9eT>+d^t'Ao(&]B3,puA#@$qll\?"k5CQ&;0eqTBiADer@.]>ad_UF;ZcEXDu.4tkB
4924+8pZptnNa$CcD$K=*Duth&VcCYIT/(!:/0OPWAQT.6%EWb8KC_='eD:DlEZ,$eQbF68ID9![b!l@
4925+".QY!\Q;B1jsWRs#8JBs#8Yt%aWP:-+N<+s9*J\DFb-HV.*5SL)dsj\40g$Kr4$KAA.o-!%PS#G
4926+=Z[:*+@V]C$]R`UP1!k"?oas\JEIMSTYLT(dZgXdTIcP'97a]L,Y.rc"r10pLhn?GW(qhD$1t:?
4927+P@7$5`8o^Rn89X0rJm[m**+MC)d?co]-,$3h7Jo\6YX0F$%hNHX33sc'pH7rMTal"_WWQDn@[A1
4928+dC>#Uf'_Lb9a[cTg^mj\DT0eN7G,BlKEb(eiA*%J#T-sRej\0S2,[lH_V11+K1jB$]Yqm`TTJ%@
4929+""8E3"glb:P-]1b2"iBVdB9$Nirmq#))`:N'aLHBKcjg\"ouXaSRtlYd1LH0NefY=Uhp[#**fq/
4930+68oP.]31hZX]>#ES(!fa(n,,[<9`PcTJLd&:lO/=lVnhc+O[O9Wop*tiE*%KR@-W[AB\+DI+PF!
4931+^fgeI%]U/&#1^=QN0n.LH1[<`r;muned2NlO?5_V(9>?oE,RYr!`6QXV,=5g79O#XK4)k5FNHeU
4932+k%u]4aoS<FTg1f=iU3iNp80\aDT^[UO_OF]WjJk&K)"mFOUM4lde_&oF?1p[()a@jF"G=i]m9mJ
4933+#"d=5LBe!(BL+ETLiquUJ_O>G(&3!Y>*/ut+N-#O[,Xt-F>6IYVAd?sEbjc[^h%5tAqO;k^B5$`
4934+1aVe9i;J17K7<dLEMaB:WjE6oIfePk9V9j;?WsN!!=ZULP3GBpX0'4'b#PAXn@gEj;i=O;r-"h\
4935+:gUms%i6L2,cbn`&R)$g']QraN'ri[p6UVGk+%;SQi[H:co3H:]\L8Ve*IrLb5dZppQfhT%DQrG
4936+';klCP>qq\e%)q>0CBCdBWbiBZDT/1SNP'aDQ^R?QWiP5=OuPYjk<p>am?]X38u_DL<ernT&@[0
4937+pJ+fGQ^Pfq#A^jgT#oo9]W,O9F1tYT=kbrTN.m#H\H>"dh0`?N%)'dqq'=sg9)k5[I1r4c1g/l7
4938+OZ`9lRPp=/O?n[6EhcXMQ[/pC/JNtKWW;4*q6!o1@$<?=<BYI,5C_\,%nc0q6\tFfXmd!\O7ce:
4939+bl"9s34DM*qR&Y3qh;G34Ro]L^'KRWD`ki80/k1-CWlS#U_r@)S]g>!!dfsdhYlI!#="FIO-hZ&
4940+/)mSU)@m5K\S.V@39#h%bI/AiN[QiO4,uQFO$E7&&,@A4l#e>2g`Fgo%3,g=oERXlm2*s`]drlT
4941+&f(oq8\h*b^bcb51S)!C(lRp%4Lk^43B3*c2kqV@\f;Eii%dT3T>!%f&M+q))DF4Z(HTJQ5p;eY
4942+BKJ;7-GDQ)_FQbJqp.U@pn])lK-S])"/<>A$OA8R^5M);#i%]Qlb&GQ]PH[ll%(s\p;+*q]S#uC
4943+<$f?d*5[(X_T:k,A1g&F0*<IX49808:p%57H4DE4\!)NaC*8<O@j5Ej]-Krp$[S&,B!i"sU,s!^
4944+?noMb5)ZaY\$7rm@&h/uQG>$kWgQ18ij;$.1U[Eg#s,C]R]S=:>;S0>.`<PBN*_XR>o=PM\P-5H
4945+b[;pM7Cc'?[fEY:$nIS<:mOD$2QL4&3@C1c;FY=VX(lMgM3kXPRAK^2Lg_qp")&#DBeTYH2eb7j
4946+4AHQZj@<'A(8D+cKQot]fJ!A?a4XD2fTDP#I7I/]OIUid9S&HR`%sqC%qsZ,8e.T"X[5?^W5(DM
4947+<-^oIOg@S?$Xg@[5W:TX6BjL-7oYP%]TA7X2b1DGaCsq^!&dC_IMEHK8NW/h;?jIKPcLL&QP3a_
4948+ZK\FBNIro(]e!X$i#=p82@MB-_RMK+W'$_DW4>HM#U"aCga#M(E^aM6^bC<A4,UP[,D15'"%gjt
4949+:cs`AVDWV"N+66d30Qm,DA?ZBbD;$-JBfa1@@9raQI7(>n?"Xj2^J3/K?2jYS!93mVT]+s)^$(d
4950+5jf]GP07gGb`LO;kVaQH;%*H+(K7$OSBV-J+jC*s9bbaT(s]Wj*6gf9RRi,O:p!GSbfm"H9n8q(
4951+;fk^#3C*2gWd(VWo\(W"2@=fcbZHqEd1)6WP;d<5^?QaA,eeo8qN3k9/WA?)>U2W%NOQNn\/<Z-
4952+W=^7oB;.M9!LZ?a"S3f3T:uV-)O0n$XS,&(*Xp4<&_hD'1TE%Jh6n<p'>TKa&[/VFX,80q3Ct@:
4953+UkP(EUUC8*O1]EfOdA<j#D6QZ-i:0G#l@H)32e%c1Vi4<*=!hBSB#0'N)2;p;$7G0MGY%O[Ao`S
4954+\SsD.A<((q#W2mgH"stg?r=;gd(6^h2&_T>V[Eh:2Ap$tBtY^L9/]=%TTTX?dL8kaP_6'@':Q/6
4955+"I.#2PfY.aN)25eI4`R2Q:Z&79=pG;*1?u/:e0c(;[Zt8d#jk1J^3L?`N,6PO^j$37CV&bMtK.G
4956+W:U@KSOSDS(`?.DC>5d\XT>s7'a66\E#c4;:fB(LJ]Xb<,e;B?Rh[5@eC8>+<.@lg(P>^92TcCM
4957+_dCqEEQZNN"#.E@<9PK^0@c4$TsG=SeKY*_#M"ofN\J>,W=t5]*`X[;O!s$C!<nFL)OI*S;uoQZ
4958+BH!'\B9;+cR*`uT,$,r!8liJ#5OE;!iaillG,3J?J^%h.g[/&l<eCi`U_7aW'l##eDPoNi\=HN^
4959+'baLD9@bLK'Ze24`Cq+[J(37ga7Xoq9i0$4&H`D^<$H&+<5pN2)Qle4`-Qp$F[@r:lk]Y^e3sFr
4960+/RHhW:D"3OQ5oE&'Zc)\R@1oTK3B&?#m#o4"'KJhe<'umRpqAO-4?B1;ls`ACQo-n7Nt]"d^_u7
4961+7A&)7&QH`>Rei;3.%/IWGbea:g6t.I&j;3<9A5N3g<)Gug.fm^T8;TTV.!c,c*F!7kCJ&\f,A7&
4962+ZO>M>Ff!'a(2Q?B.$BYAYmK*<$(RI([80tSL!X+[`T=QEK&]_TQB\eLWL]hfQnaHURF2+NOX6XB
4963+'bD2^)m*eAK7Jl=&Y*#&ckB5<Mg=rU;LT#h=C!2[^kaoOC7^&oUkrOMfrLTJHTnsVWO/MUP-)l4
4964+bDP-0SqDaST,BChrS9?-4qY"Y?7k2g\M&f,Jrs$l.$Warq)&Hs4G*ur/ZlXPe&2Q]4dY+`?Ms[\
4965+:pc*o+4ds,h\e:Jh9-+<1Ko,@&tg4N#W[_npC6&oh]pbhSZ8BCT@$c/<eFutSTJ$1X;6c#Mcgu^
4966+R5@b:K<r_Vg&-XcbaI$_"@YbTg\k'DX)6\!!81kF?b(90`TbogEn<Jg(>9HofWG<^=kcrc3]MZr
4967+)C5u7(qRu$,(*4E&;Ed8"dP%e<+5c5c'BEW10e4R=fQpIlFNtN[pk1>(7MnoW9E*(-(H#$fUs0"
4968+T`rfFq4Q9a>u3Hs.&o#!*o9V>'IA33CWP7M1u*p")1A%-"@UbL\mqRh;ftl@on?4B;</<ohrkpe
4969+NX;MM:fd)9j>(IO-+bM7@"Sq,Q%cg1F:MfTH&MIuR:mIj/kb6TJH;n;V2`@4p/>+'Z,fh8_i<QH
4970+IQ&_D$-#l@7G_1IR5@A3>H:akj^qZu7H<0H3bAk+.f-ORJUs"MR27(IMhj.'^,fkA*1&!c:-N8C
4971+kaH+.Yi^qGW51;Wa^aJADV3NSP'Tu<+T\t[W@=<-AN8u^Yr%TODJ*1FA"Ytn5qZ-UQ:Cj#X0)M.
4972+Ek11oTA0?rik5jY^+EUP)2TShPr[2?!N7Bb`*%VBQI+$>[YZE(53T=1hSCZm2LaJ1SMsSO[0Dc'
4973+Xj=^6=Q(l`BdR.u6DFo8P_k[cg%Lcs<b(,Wh-]q6kogrNY++.YBB-7`!NSA9>1:o'eRB(Fe`E)g
4974+SDo^,hcX>F[OAMN5,jl>0\l>]9AH9(+>nddHYV,nC?:[4.^pq0\6Ep7CF60PNW6.fENTL]frF/t
4975+7Od'*]U+)#arUq&=dg5"I;#KH+ILF,Q90Z;]IIn(#sr*h4k$'f=-l`&it1M^1ef_:\Nha4=UqV$
4976+q))rFHkSB'&Z2<(VD-\3d;:$ZitF$IP:or`75Gt'kQWatL:p1Xgt^J7asq>_AEn#N0j[C4ln%c<
4977+Mc\S14h_Z#PW?1'H83@??'lLIg1(AS:l#nS^rQ04mcHhQ<paddRp_X'"3<0j5'8Ih)A%5b%E#"g
4978+^./8`k+/I^P=f19/#?H68eu,kmb[h%<r=88r?_k[aH$(Rk4e>U=V2i+n!1F\:B3FH1N4E@%"A@5
4979+RQ5>D0CW<HVAB[g/b"hL:%4bL"#,9_+Z"&g#]Uf[/T2/>5t0Z!!q?>$Dk?\DXoXC=nH0Cdh%::i
4980+l9*u^A^WH4D^'0M?M^Q7YZfaFP4&^90.*IRr*&83E^7LrB-m(crj@9oE1'g4Km"!L,jqqaEu%?F
4981+E5Is9nQ)dF(,e`bng*_hct$K?F-KPkRe>ZQ)fS5m"!BB8)Y%@_\Rpm/keK+J%lddS&Z?!kF<,5i
4982+]mCquqLb$;:4O7o<pd0F#(b(c/P-`fhWEc+.2a"KDVc.#hW5n8O@R;3mVWs6$EDXn*9%;Kl?S*d
4983+AfMI?QV7\io":io3X35e@%p+2p)(L:03]Wl+*LO1b2l]I\riDcNfGB+1g;,SNpAl<,Qh6`p;"3>
4984+O%53]qhpd&pE[0XI).j]l$#DNNj/0cpuHVNj(eHiNgFgI180S-m-f^:$5s0A(NO_Mq2SkSnV;[V
4985+Dfj4/R.k:S:o[Rj@,b+JQu5erMcqkC`G+aTRBZI<e]O8%a_6ge"-f07iq5b##3ODa#00L'C+dJ?
4986+57Y)G1DBe!m_+.8i:*F0maHZVl<e,^+!@7HliG5_masEgqiVVP8<c(hO>-S.;*omWU8*L>HB_0'
4987+<0hiD`G0n'_=+B"d?OL2S_]Jr%OECK.kk+4l$'AqJYqSqL9m''F7.g)K0VK%T(T;sD!mL<i7>sY
4988+dKfZR1Z6X(O`k;RDnih1_oSA)N%E<*=LJ&WP$'?ooQg(krd(^[*db4=TPhsMYWM,V*K=s5V/7d\
4989+pX,,%dkF-4mhj+1?Qko^qN'3XMd$Q$Z8ZMflYQk1".=&tE<`[kmH;iO@IN3mMd$VU:i9.eP[E80
4990+k34:<]ngSDHH2n#Gf9^'k5NE$H-A^+n$%,^R7S3t<4I\NhsYn+QN%+]Q*0M,`oI4En?1;/(gqoE
4991+4f3i;f_0qj#Q]V&$5]1*-8UdsggW%.%HhdM[)=((NJ(dBR*9%CK0g_Y(n=VZ1DgQGOEa@.*-X<1
4992+b`PH#^gpq18`RhTBt3#@3'kcp!?%9KAJraQVb-fB@mkma9I<+UfY]rk%Rroj3LoAL0V"(L6VUCo
4993+@B<D.7jD`tenD;/L'AR/SBt]9g<Bh#&]i+=WXVWWC3@heBJp`%a%O,.pO0g3NA]`VK\]Rh8I"lj
4994+0r2j23ZSVVEt#5[LVt$HZ"#KGE]''CZ^L1`XQ4(ORPVE94U4u;bi\6g$NB%`AJuDn]Bns5_K@gX
4995+%&YZuhb?AcNbGf[8X.i$_fW@KOhm)_g=^=$g0XR4EQ7?g]c8c"j2PlsF1NCLI#GdKf%fh+>/'48
4996+/OS%E1sb[/!'AIE1tK"N9%H&=:)!9m#;C3n#f(,cL`=1J5i1ocOJE.%.BL])&>AK\CB_SK__BP.
4997+0\Bdm6LMciqRQ*bV\c58_e0QMcm#Rs824>n+h'b[2]rPaUPSn@dF7Ora0HgqerM$_=uFG'TPTh.
4998+:eN(V,0;%&0e;i?-Fo+g0^^cVN'jPn`9dnpMZuJOBGi)UE999V6^ZjoX0]l:N/!GbS2d089(]hL
4999+_5\?9N^K7d4jU)eju9?Y)]g`<["B/dTN("\6`::3E9j5cGi1NWUG1S*L*;6fM,9Eloi6`V,C*)q
5000+<>?&_#(n/=JrF3>(c#08;^rZD/Rf&B%IET(0oVlHkb'A5Uma3q_kJ!5gWh*M15r.e]J237V"na7
The diff has been truncated for viewing.