I am using zatca .Net Sdk 3.4.0, I am trying to sign an Invoice but every time i get this error
{
“type”: “ERROR”,
“code”: “invalid-invoice-hash”,
“category”: “INVOICE_HASHING_ERRORS”,
“message”: “The invoice hash API body does not match the (calculated) Hash of the XML”,
“status”: “ERROR”
},
Dear @Mahmoud66
Thanks for reaching out,
To provide comprehensive support as usual, Can I kindly ask you to share the full request? and mention the exact steps you followed?
Thanks,
Ibrahem Daoud.
this is how i sign the invoice in my .net app
I am using .net production Sdk 3.4.0
this is my xml
<?xml version="1.0" encoding="UTF-8"?>ext:UBLExtensions
ext:UBLExtension
ext:ExtensionURIurn:oasis:names:specification:ubl:dsig:enveloped:xades</ext:ExtensionURI>
ext:ExtensionContent
<sig:UBLDocumentSignatures xmlns:sig=“urn:oasis:names:specification:ubl:schema:xsd:CommonSignatureComponents-2” xmlns:sac=“urn:oasis:names:specification:ubl:schema:xsd:SignatureAggregateComponents-2” xmlns:sbc=“urn:oasis:names:specification:ubl:schema:xsd:SignatureBasicComponents-2”>
sac:SignatureInformation
cbc:IDurn:oasis:names:specification:ubl:signature:1</cbc:ID>
sbc:ReferencedSignatureIDurn:oasis:names:specification:ubl:signature:Invoice</sbc:ReferencedSignatureID>
<ds:Signature Id=“signature” xmlns:ds=“XML-Signature Syntax and Processing”>
ds:SignedInfo
<ds:CanonicalizationMethod Algorithm=“Canonical XML 1.1” />
<ds:SignatureMethod Algorithm=“xmldsig-more namespace” />
<ds:Reference Id=“invoiceSignedData” URI=“”>
ds:Transforms
<ds:Transform Algorithm=“XML Path Language (XPath)”>
ds:XPathnot(//ancestor-or-self::ext:UBLExtensions)</ds:XPath>
</ds:Transform>
<ds:Transform Algorithm=“XML Path Language (XPath)”>
ds:XPathnot(//ancestor-or-self::cac:Signature)</ds:XPath>
</ds:Transform>
<ds:Transform Algorithm=“XML Path Language (XPath)”>
ds:XPathnot(//ancestor-or-self::cac:AdditionalDocumentReference[cbc:ID=‘QR’])</ds:XPath>
</ds:Transform>
<ds:Transform Algorithm=“Canonical XML 1.1” />
</ds:Transforms>
<ds:DigestMethod Algorithm=“XML Encryption Syntax and Processing” />
ds:DigestValue+lgY7sYx9fWHLC8p8ZqPQjOAQ5qGf6dXUqpwgPSDQKI=</ds:DigestValue>
</ds:Reference>
<ds:Reference Type=“XML-Signature Syntax and Processing” URI=“#xadesSignedProperties”>
<ds:DigestMethod Algorithm=“XML Encryption Syntax and Processing” />
ds:DigestValueZmE4OTJmYjgwMGQ3NjljYmM0YWVhY2IxNjA4MjQzYzQ0MDAxZmQ2NjUxMTUxZjViZWZkNjdmZGQ1MjM2MjFlOA==</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
ds:SignatureValueMEUCIDmYlzz/LNS/IOrfSvGJ3y+qfGXD7DcABnFLNJY4cUgFAiEA51F8N8oHFtGQru6hRkmEH4C5gV4i3gql953NEmwy+C0=</ds:SignatureValue>
ds:KeyInfo
ds:X509Data
ds:X509CertificateMIIE9zCCBJygAwIBAgITEwAAZkY72yI8RxRBlgABAABmRjAKBggqhkjOPQQDAjBiMRUwEwYKCZImiZPyLGQBGRYFbG9jYWwxEzARBgoJkiaJk/IsZAEZFgNnb3YxFzAVBgoJkiaJk/IsZAEZFgdleHRnYXp0MRswGQYDVQQDExJQRVpFSU5WT0lDRVNDQTItQ0EwHhcNMjUwMzA5MTM0NTA4WhcNMjcwMzA5MTM1NTA4WjBTMQswCQYDVQQGEwJTQTEaMBgGA1UEChMRRmVtaW5pbml0eSBQYWxhY2UxEzARBgNVBAsTCjMxMDA1MTk1MDMxEzARBgNVBAMTCjEwMTAzOTE2OTUwVjAQBgcqhkjOPQIBBgUrgQQACgNCAAQCLvwpZm4TIXLvQW3sX9J+EXCp2R93vgr3ONWXi9cR1jq8Rnf4Apijsyjf5DXsE+oX5Msgf6TZqdZfzZWKGQIjo4IDQTCCAz0wgasGA1UdEQSBozCBoKSBnTCBmjE/MD0GA1UEBAw2MS1CZWF1dHl8Mi1QbHVzfDMtMGJkMmNjN2ItYjY3MS00YTM2LTliYTgtYzZkNmRmNTA1ZGIzMR8wHQYKCZImiZPyLGQBAQwPMzEwMDUxOTUwMzAwMDAzMQ0wCwYDVQQMDAQxMTAwMQ8wDQYDVQQaDAZSaXlhZGgxFjAUBgNVBA8MDUJlYXV0eSBTYWxvb24wHQYDVR0OBBYEFBw6LBgQA4wXln1GGLgAFdHiMal4MB8GA1UdIwQYMBaAFIHyo3tye71Qo2qf8ejTjdZ7nHC1MIHlBgNVHR8Egd0wgdowgdeggdSggdGGgc5sZGFwOi8vL0NOPVBFWkVJTlZPSUNFU0NBMi1DQSgxKSxDTj1QUlpFSU5WT0lDRVBLSTIsQ049Q0RQLENOPVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3VyYXRpb24sREM9ZXh0emF0Y2EsREM9Z292LERDPWxvY2FsP2NlcnRpZmljYXRlUmV2b2NhdGlvbkxpc3Q/YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0cmlidXRpb25Qb2ludDCBzgYIKwYBBQUHAQEEgcEwgb4wgbsGCCsGAQUFBzAChoGubGRhcDovLy9DTj1QRVpFSU5WT0lDRVNDQTItQ0EsQ049QUlBLENOPVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3VyYXRpb24sREM9ZXh0emF0Y2EsREM9Z292LERDPWxvY2FsP2NBQ2VydGlmaWNhdGU/YmFzZT9vYmplY3RDbGFzcz1jZXJ0aWZpY2F0aW9uQXV0aG9yaXR5MA4GA1UdDwEB/wQEAwIHgDA8BgkrBgEEAYI3FQcELzAtBiUrBgEEAYI3FQiBhqgdhND7EobtnSSHzvsZ08BVZoGc2C2D5cVdAgFkAgEQMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDAzAnBgkrBgEEAYI3FQoEGjAYMAoGCCsGAQUFBwMCMAoGCCsGAQUFBwMDMAoGCCqGSM49BAMCA0kAMEYCIQDKVumLNj/Pc9Tqra0lTOjN/7hC2vlBfbtPifzBLjBxlAIhAJDubkdTDxk2ctcuMV6hf0RQ7p7Ydn81q3L6FjBnWhnL</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
ds:Object
<xades:QualifyingProperties Target=“signature” xmlns:xades=“Assigned ETSI XML URIs”>
<xades:SignedProperties Id=“xadesSignedProperties”>
xades:SignedSignatureProperties
xades:SigningTime2025-03-12T14:28:03</xades:SigningTime>
xades:SigningCertificate
xades:Cert
xades:CertDigest
<ds:DigestMethod Algorithm=“XML Encryption Syntax and Processing” />
ds:DigestValueNGEzNmFiNmUyNTAwZGRhY2JjNzUzZGZmYmMxNjU1ODY1YmQwYTVlMjJlMWM4Y2E4OWM5NDczZjE3NzFhMTYwZQ==</ds:DigestValue>
</xades:CertDigest>
xades:IssuerSerial
ds:X509IssuerNameCN=PEZEINVOICESCA2-CA, DC=extgazt, DC=gov, DC=local</ds:X509IssuerName>
ds:X509SerialNumber423714294718012213577603234594459803598218822</ds:X509SerialNumber>
</xades:IssuerSerial>
</xades:Cert>
</xades:SigningCertificate>
</xades:SignedSignatureProperties>
</xades:SignedProperties>
</xades:QualifyingProperties>
</ds:Object>
</ds:Signature>
</sac:SignatureInformation>
</sig:UBLDocumentSignatures>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
cbc:ProfileIDreporting:1.0</cbc:ProfileID>
cbc:IDSME00010</cbc:ID>
cbc:UUID674d8c8e-698b-4788-9836-713909d06e9a</cbc:UUID>
cbc:IssueDate2022-08-17</cbc:IssueDate>
cbc:IssueTime17:41:08</cbc:IssueTime>
<cbc:InvoiceTypeCode name=“0200000”>388</cbc:InvoiceTypeCode>
<cbc:Note languageID=“ar”>ABC</cbc:Note>
cbc:DocumentCurrencyCodeSAR</cbc:DocumentCurrencyCode>
cbc:TaxCurrencyCodeSAR</cbc:TaxCurrencyCode>
cac:AdditionalDocumentReference
cbc:IDICV</cbc:ID>
cbc:UUID10</cbc:UUID>
</cac:AdditionalDocumentReference>
cac:AdditionalDocumentReference
cbc:IDPIH</cbc:ID>
cac:Attachment
<cbc:EmbeddedDocumentBinaryObject mimeCode=“text/plain”>NWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzljMmRiYzIzOWRkNGU5MWI0NjcyOWQ3M2EyN2ZiNTdlOQ==</cbc:EmbeddedDocumentBinaryObject>
</cac:Attachment>
</cac:AdditionalDocumentReference>
cac:AdditionalDocumentReference
cbc:IDQR</cbc:ID>
cac:Attachment
<cbc:EmbeddedDocumentBinaryObject mimeCode=“text/plain”>ARNBY21lIFdpZGdldOKAmXMgTFREAg8zMTAwNTE5NTAzMDAwMDMDEzIwMjItMDgtMTdUMTc6NDE6MDgEBjI1My4wMAUFMzUuMDAGLCtsZ1k3c1l4OWZXSExDOHA4WnFQUWpPQVE1cUdmNmRYVXFwd2dQU0RRS0k9B2BNRVVDSURtWWx6ei9MTlMvSU9yZlN2R0ozeStxZkdYRDdEY0FCbkZMTkpZNGNVZ0ZBaUVBNTFGOE44b0hGdEdRcnU2aFJrbUVINEM1Z1Y0aTNncWw5NTNORW13eStDMD0IWDBWMBAGByqGSM49AgEGBSuBBAAKA0IABAIu/ClmbhMhcu9Bbexf0n4RcKnZH3e+Cvc41ZeL1xHWOrxGd/gCmKOzKN/kNewT6hfkyyB/pNmp1l/NlYoZAiMJSDBGAiEAylbpizY/z3PU6q2tJUzozf+4Qtr5QX27T4n8wS4wcZQCIQCQ7m5HUw8ZNnLXLjFeoX9EUO6e2HZ/Naty+hYwZ1oZyw==</cbc:EmbeddedDocumentBinaryObject>
</cac:Attachment>
</cac:AdditionalDocumentReference>cac:Signature
cbc:IDurn:oasis:names:specification:ubl:signature:Invoice</cbc:ID>
cbc:SignatureMethodurn:oasis:names:specification:ubl:dsig:enveloped:xades</cbc:SignatureMethod>
</cac:Signature>cac:AccountingSupplierParty
cac:Party
cac:PartyIdentification
<cbc:ID schemeID=“CRN”>1010010000</cbc:ID>
</cac:PartyIdentification>
cac:PostalAddress
cbc:StreetNameالامير سلطان</cbc:StreetName>
cbc:BuildingNumber3242</cbc:BuildingNumber>
cbc:PlotIdentification4323</cbc:PlotIdentification>
cbc:CitySubdivisionName32423423</cbc:CitySubdivisionName>
cbc:CityNameالرياض | Riyadh</cbc:CityName>
cbc:PostalZone32432</cbc:PostalZone>
cac:Country
cbc:IdentificationCodeSA</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
cac:PartyTaxScheme
cbc:CompanyID310051950300003</cbc:CompanyID>
cac:TaxScheme
cbc:IDVAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
cac:PartyLegalEntity
cbc:RegistrationNameAcme Widget’s LTD</cbc:RegistrationName>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingSupplierParty>
cac:AccountingCustomerParty
cac:Party
cac:PostalAddress
<cbc:StreetName />
cbc:CitySubdivisionName32423423</cbc:CitySubdivisionName>
cac:Country
cbc:IdentificationCodeSA</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
cac:PartyTaxScheme
cac:TaxScheme
cbc:IDVAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
cac:PartyLegalEntity
<cbc:RegistrationName />
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingCustomerParty>
cac:PaymentMeans
cbc:PaymentMeansCode10</cbc:PaymentMeansCode>
</cac:PaymentMeans>
cac:AllowanceCharge
cbc:ChargeIndicatorfalse</cbc:ChargeIndicator>
cbc:AllowanceChargeReasondiscount</cbc:AllowanceChargeReason>
<cbc:Amount currencyID=“SAR”>0.00</cbc:Amount>
cac:TaxCategory
<cbc:ID schemeID=“UN/ECE 5305” schemeAgencyID=“6”>S</cbc:ID>
cbc:Percent15</cbc:Percent>
cac:TaxScheme
<cbc:ID schemeID=“UN/ECE 5153” schemeAgencyID=“6”>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
cac:TaxCategory
<cbc:ID schemeID=“UN/ECE 5305” schemeAgencyID=“6”>S</cbc:ID>
cbc:Percent15</cbc:Percent>
cac:TaxScheme
<cbc:ID schemeID=“UN/ECE 5153” schemeAgencyID=“6”>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:AllowanceCharge>
cac:TaxTotal
<cbc:TaxAmount currencyID=“SAR”>35.00</cbc:TaxAmount>
</cac:TaxTotal>
cac:TaxTotal
<cbc:TaxAmount currencyID=“SAR”>35.00</cbc:TaxAmount>
cac:TaxSubtotal
<cbc:TaxableAmount currencyID=“SAR”>220.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID=“SAR”>35.00</cbc:TaxAmount>
cac:TaxCategory
<cbc:ID schemeID=“UN/ECE 5305” schemeAgencyID=“6”>S</cbc:ID>
cbc:Percent15.00</cbc:Percent>
cac:TaxScheme
<cbc:ID schemeID=“UN/ECE 5153” schemeAgencyID=“6”>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
cac:LegalMonetaryTotal
<cbc:LineExtensionAmount currencyID=“SAR”>220.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID=“SAR”>220.00</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID=“SAR”>253.00</cbc:TaxInclusiveAmount>
<cbc:AllowanceTotalAmount currencyID=“SAR”>0.00</cbc:AllowanceTotalAmount>
<cbc:PrepaidAmount currencyID=“SAR”>0.00</cbc:PrepaidAmount>
<cbc:PayableAmount currencyID=“SAR”>253.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
cac:InvoiceLine
cbc:ID1</cbc:ID>
<cbc:InvoicedQuantity unitCode=“PCS”>5</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID=“SAR”>500</cbc:LineExtensionAmount>
cac:TaxTotal
<cbc:TaxAmount currencyID=“SAR”>35.00</cbc:TaxAmount>
<cbc:RoundingAmount currencyID=“SAR”>515</cbc:RoundingAmount>
</cac:TaxTotal>
cac:Item
cbc:Nameقص الاطراف</cbc:Name>
cac:ClassifiedTaxCategory
cbc:IDS</cbc:ID>
cbc:Percent15</cbc:Percent>
cac:TaxScheme
cbc:IDVAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
cac:Price
<cbc:PriceAmount currencyID=“SAR”>115</cbc:PriceAmount>
cac:AllowanceCharge
cbc:ChargeIndicatorfalse</cbc:ChargeIndicator>
cbc:AllowanceChargeReasonDiscount</cbc:AllowanceChargeReason>
<cbc:Amount currencyID=“SAR”>0</cbc:Amount>
</cac:AllowanceCharge>
</cac:Price>
</cac:InvoiceLine>
cac:InvoiceLine
cbc:ID1</cbc:ID>
<cbc:InvoicedQuantity unitCode=“PCS”>5</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID=“SAR”>500</cbc:LineExtensionAmount>
cac:TaxTotal
<cbc:TaxAmount currencyID=“SAR”>15</cbc:TaxAmount>
<cbc:RoundingAmount currencyID=“SAR”>515</cbc:RoundingAmount>
</cac:TaxTotal>
cac:Item
cbc:Nameقص الاطراف</cbc:Name>
cac:ClassifiedTaxCategory
cbc:IDS</cbc:ID>
cbc:Percent15</cbc:Percent>
cac:TaxScheme
cbc:IDVAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
cac:Price
<cbc:PriceAmount currencyID=“SAR”>115</cbc:PriceAmount>
cac:AllowanceCharge
cbc:ChargeIndicatorfalse</cbc:ChargeIndicator>
cbc:AllowanceChargeReasonDiscount</cbc:AllowanceChargeReason>
<cbc:Amount currencyID=“SAR”>0</cbc:Amount>
</cac:AllowanceCharge>
</cac:Price>
</cac:InvoiceLine>
cac:InvoiceLine
cbc:ID1</cbc:ID>
<cbc:InvoicedQuantity unitCode=“PCS”>5</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID=“SAR”>500</cbc:LineExtensionAmount>
cac:TaxTotal
<cbc:TaxAmount currencyID=“SAR”>15</cbc:TaxAmount>
<cbc:RoundingAmount currencyID=“SAR”>515</cbc:RoundingAmount>
</cac:TaxTotal>
cac:Item
cbc:Nameقص الاطراف</cbc:Name>
cac:ClassifiedTaxCategory
cbc:IDS</cbc:ID>
cbc:Percent15</cbc:Percent>
cac:TaxScheme
cbc:IDVAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
cac:Price
<cbc:PriceAmount currencyID=“SAR”>115</cbc:PriceAmount>
cac:AllowanceCharge
cbc:ChargeIndicatorfalse</cbc:ChargeIndicator>
cbc:AllowanceChargeReasonDiscount</cbc:AllowanceChargeReason>
<cbc:Amount currencyID=“SAR”>0</cbc:Amount>
</cac:AllowanceCharge>
</cac:Price>
</cac:InvoiceLine>
Dear @Mahmoud66
Thanks for reaching out,
Please provide the full request as requested in the post, this will lead us to provide the usual comprehensive support.
Thanks,
Ibrahem Daoud.
{
“invoiceHash”: “CQuE5KOxvQlscPgDjTFVJM2QXmMPzU16tcBPZP8u4q8=”,
“uuid”: “674d8c8e-698b-4788-9836-713909d06e9a”,
“invoice”: “PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48SW52b2ljZSB4bWxucz0idXJuOm9hc2lzOm5hbWVzOnNwZWNpZmljYXRpb246dWJsOnNjaGVtYTp4c2Q6SW52b2ljZS0yIiB4bWxuczpjYWM9InVybjpvYXNpczpuYW1lczpzcGVjaWZpY2F0aW9uOnVibDpzY2hlbWE6eHNkOkNvbW1vbkFnZ3JlZ2F0ZUNvbXBvbmVudHMtMiIgeG1sbnM6Y2JjPSJ1cm46b2FzaXM6bmFtZXM6c3BlY2lmaWNhdGlvbjp1Ymw6c2NoZW1hOnhzZDpDb21tb25CYXNpY0NvbXBvbmVudHMtMiIgeG1sbnM6ZXh0PSJ1cm46b2FzaXM6bmFtZXM6c3BlY2lmaWNhdGlvbjp1Ymw6c2NoZW1hOnhzZDpDb21tb25FeHRlbnNpb25Db21wb25lbnRzLTIiPg0KICA8ZXh0OlVCTEV4dGVuc2lvbnM+DQogICAgPGV4dDpVQkxFeHRlbnNpb24+DQogICAgICAgIDxleHQ6RXh0ZW5zaW9uVVJJPnVybjpvYXNpczpuYW1lczpzcGVjaWZpY2F0aW9uOnVibDpkc2lnOmVudmVsb3BlZDp4YWRlczwvZXh0OkV4dGVuc2lvblVSST4NCiAgICAgICAgPGV4dDpFeHRlbnNpb25Db250ZW50Pg0KICAgICAgICAgICAgPHNpZzpVQkxEb2N1bWVudFNpZ25hdHVyZXMgeG1sbnM6c2lnPSJ1cm46b2FzaXM6bmFtZXM6c3BlY2lmaWNhdGlvbjp1Ymw6c2NoZW1hOnhzZDpDb21tb25TaWduYXR1cmVDb21wb25lbnRzLTIiIHhtbG5zOnNhYz0idXJuOm9hc2lzOm5hbWVzOnNwZWNpZmljYXRpb246dWJsOnNjaGVtYTp4c2Q6U2lnbmF0dXJlQWdncmVnYXRlQ29tcG9uZW50cy0yIiB4bWxuczpzYmM9InVybjpvYXNpczpuYW1lczpzcGVjaWZpY2F0aW9uOnVibDpzY2hlbWE6eHNkOlNpZ25hdHVyZUJhc2ljQ29tcG9uZW50cy0yIj4NCiAgICAgICAgICAgICAgICA8c2FjOlNpZ25hdHVyZUluZm9ybWF0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8Y2JjOklEPnVybjpvYXNpczpuYW1lczpzcGVjaWZpY2F0aW9uOnVibDpzaWduYXR1cmU6MTwvY2JjOklEPg0KICAgICAgICAgICAgICAgICAgICA8c2JjOlJlZmVyZW5jZWRTaWduYXR1cmVJRD51cm46b2FzaXM6bmFtZXM6c3BlY2lmaWNhdGlvbjp1Ymw6c2lnbmF0dXJlOkludm9pY2U8L3NiYzpSZWZlcmVuY2VkU2lnbmF0dXJlSUQ+DQogICAgICAgICAgICAgICAgICAgIDxkczpTaWduYXR1cmUgSWQ9InNpZ25hdHVyZSIgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRzOlNpZ25lZEluZm8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRzOkNhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDA2LzEyL3htbC1jMTRuMTEiIC8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI2VjZHNhLXNoYTI1NiIgLz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHM6UmVmZXJlbmNlIElkPSJpbnZvaWNlU2lnbmVkRGF0YSIgVVJJPSIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHM6VHJhbnNmb3Jtcz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1JFQy14cGF0aC0xOTk5MTExNiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRzOlhQYXRoPm5vdCgvL2FuY2VzdG9yLW9yLXNlbGY6OmV4dDpVQkxFeHRlbnNpb25zKTwvZHM6WFBhdGg+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RzOlRyYW5zZm9ybT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1JFQy14cGF0aC0xOTk5MTExNiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRzOlhQYXRoPm5vdCgvL2FuY2VzdG9yLW9yLXNlbGY6OmNhYzpTaWduYXR1cmUpPC9kczpYUGF0aD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZHM6VHJhbnNmb3JtPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUkVDLXhwYXRoLTE5OTkxMTE2Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHM6WFBhdGg+bm90KC8vYW5jZXN0b3Itb3Itc2VsZjo6Y2FjOkFkZGl0aW9uYWxEb2N1bWVudFJlZmVyZW5jZVtjYmM6SUQ9J1FSJ10pPC9kczpYUGF0aD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZHM6VHJhbnNmb3JtPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDYvMTIveG1sLWMxNG4xMSIgLz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kczpUcmFuc2Zvcm1zPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHM6RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhMjU2IiAvPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHM6RGlnZXN0VmFsdWU+Q1F1RTVLT3h2UWxzY1BnRGpURlZKTTJRWG1NUHpVMTZ0Y0JQWlA4dTRxOD08L2RzOkRpZ2VzdFZhbHVlPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZHM6UmVmZXJlbmNlPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkczpSZWZlcmVuY2UgVHlwZT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI1NpZ25hdHVyZVByb3BlcnRpZXMiIFVSST0iI3hhZGVzU2lnbmVkUHJvcGVydGllcyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiIC8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkczpEaWdlc3RWYWx1ZT5aRFZtWTJWak1USmlOV1JsTTJSbFpqVTBORFl5WVRreU9EQm1PREZtWkdGaU9XUTBZV0l6WWpjNE1qZGtNbVE1TXpVelkyUmtNV0UzWW1ReE0yVTROQT09PC9kczpEaWdlc3RWYWx1ZT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RzOlJlZmVyZW5jZT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZHM6U2lnbmVkSW5mbz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkczpTaWduYXR1cmVWYWx1ZT5NRVFDSUR2akVIeEd3UGNPRk13YjJqZnV2NitSeHpRSDNURXJwVDZjaENXbkpEWUdBaUEwb1JjbytINmo1VlNYdS9ZaFlrNk5Nek0zSzBhei9sdEZUcVZHOVZpR3N3PT08L2RzOlNpZ25hdHVyZVZhbHVlPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRzOktleUluZm8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRzOlg1MDlEYXRhPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUU5ekNDQkp5Z0F3SUJBZ0lURXdBQVprWTcyeUk4UnhSQmxnQUJBQUJtUmpBS0JnZ3Foa2pPUFFRREFqQmlNUlV3RXdZS0NaSW1pWlB5TEdRQkdSWUZiRzlqWVd3eEV6QVJCZ29Ka2lhSmsvSXNaQUVaRmdObmIzWXhGekFWQmdvSmtpYUprL0lzWkFFWkZnZGxlSFJuWVhwME1Sc3dHUVlEVlFRREV4SlFSVnBGU1U1V1QwbERSVk5EUVRJdFEwRXdIaGNOTWpVd016QTVNVE0wTlRBNFdoY05NamN3TXpBNU1UTTFOVEE0V2pCVE1Rc3dDUVlEVlFRR0V3SlRRVEVhTUJnR0ExVUVDaE1SUm1WdGFXNXBibWwwZVNCUVlXeGhZMlV4RXpBUkJnTlZCQXNUQ2pNeE1EQTFNVGsxTURNeEV6QVJCZ05WQkFNVENqRXdNVEF6T1RFMk9UVXdWakFRQmdjcWhrak9QUUlCQmdVcmdRUUFDZ05DQUFRQ0x2d3BabTRUSVhMdlFXM3NYOUorRVhDcDJSOTN2Z3IzT05XWGk5Y1IxanE4Um5mNEFwaWpzeWpmNURYc0Urb1g1TXNnZjZUWnFkWmZ6WldLR1FJam80SURRVENDQXowd2dhc0dBMVVkRVFTQm96Q0JvS1NCblRDQm1qRS9NRDBHQTFVRUJBdzJNUzFDWldGMWRIbDhNaTFRYkhWemZETXRNR0prTW1Oak4ySXRZalkzTVMwMFlUTTJMVGxpWVRndFl6WmtObVJtTlRBMVpHSXpNUjh3SFFZS0NaSW1pWlB5TEdRQkFRd1BNekV3TURVeE9UVXdNekF3TURBek1RMHdDd1lEVlFRTURBUXhNVEF3TVE4d0RRWURWUVFhREFaU2FYbGhaR2d4RmpBVUJnTlZCQThNRFVKbFlYVjBlU0JUWVd4dmIyNHdIUVlEVlIwT0JCWUVGQnc2TEJnUUE0d1hsbjFHR0xnQUZkSGlNYWw0TUI4R0ExVWRJd1FZTUJhQUZJSHlvM3R5ZTcxUW8ycWY4ZWpUamRaN25IQzFNSUhsQmdOVkhSOEVnZDB3Z2Rvd2dkZWdnZFNnZ2RHR2djNXNaR0Z3T2k4dkwwTk9QVkJGV2tWSlRsWlBTVU5GVTBOQk1pMURRU2d4S1N4RFRqMVFVbHBGU1U1V1QwbERSVkJMU1RJc1EwNDlRMFJRTEVOT1BWQjFZbXhwWXlVeU1FdGxlU1V5TUZObGNuWnBZMlZ6TEVOT1BWTmxjblpwWTJWekxFTk9QVU52Ym1acFozVnlZWFJwYjI0c1JFTTlaWGgwZW1GMFkyRXNSRU05WjI5MkxFUkRQV3h2WTJGc1AyTmxjblJwWm1sallYUmxVbVYyYjJOaGRHbHZia3hwYzNRL1ltRnpaVDl2WW1wbFkzUkRiR0Z6Y3oxalVreEVhWE4wY21saWRYUnBiMjVRYjJsdWREQ0J6Z1lJS3dZQkJRVUhBUUVFZ2NFd2diNHdnYnNHQ0NzR0FRVUZCekFDaG9HdWJHUmhjRG92THk5RFRqMVFSVnBGU1U1V1QwbERSVk5EUVRJdFEwRXNRMDQ5UVVsQkxFTk9QVkIxWW14cFl5VXlNRXRsZVNVeU1GTmxjblpwWTJWekxFTk9QVk5sY25acFkyVnpMRU5PUFVOdmJtWnBaM1Z5WVhScGIyNHNSRU05WlhoMGVtRjBZMkVzUkVNOVoyOTJMRVJEUFd4dlkyRnNQMk5CUTJWeWRHbG1hV05oZEdVL1ltRnpaVDl2WW1wbFkzUkRiR0Z6Y3oxalpYSjBhV1pwWTJGMGFXOXVRWFYwYUc5eWFYUjVNQTRHQTFVZER3RUIvd1FFQXdJSGdEQThCZ2tyQmdFRUFZSTNGUWNFTHpBdEJpVXJCZ0VFQVlJM0ZRaUJocWdkaE5EN0VvYnRuU1NIenZzWjA4QlZab0djMkMyRDVjVmRBZ0ZrQWdFUU1CMEdBMVVkSlFRV01CUUdDQ3NHQVFVRkJ3TUNCZ2dyQmdFRkJRY0RBekFuQmdrckJnRUVBWUkzRlFvRUdqQVlNQW9HQ0NzR0FRVUZCd01DTUFvR0NDc0dBUVVGQndNRE1Bb0dDQ3FHU000OUJBTUNBMGtBTUVZQ0lRREtWdW1MTmovUGM5VHFyYTBsVE9qTi83aEMydmxCZmJ0UGlmekJMakJ4bEFJaEFKRHVia2RURHhrMmN0Y3VNVjZoZjBSUTdwN1lkbjgxcTNMNkZqQm5XaG5MPC9kczpYNTA5Q2VydGlmaWNhdGU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kczpYNTA5RGF0YT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZHM6S2V5SW5mbz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkczpPYmplY3Q+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhhZGVzOlF1YWxpZnlpbmdQcm9wZXJ0aWVzIFRhcmdldD0ic2lnbmF0dXJlIiB4bWxuczp4YWRlcz0iaHR0cDovL3VyaS5ldHNpLm9yZy8wMTkwMy92MS4zLjIjIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhhZGVzOlNpZ25lZFByb3BlcnRpZXMgSWQ9InhhZGVzU2lnbmVkUHJvcGVydGllcyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eGFkZXM6U2lnbmVkU2lnbmF0dXJlUHJvcGVydGllcz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eGFkZXM6U2lnbmluZ1RpbWU+MjAyNS0wMy0xM1QxNjoyNzozNjwveGFkZXM6U2lnbmluZ1RpbWU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhhZGVzOlNpZ25pbmdDZXJ0aWZpY2F0ZT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhhZGVzOkNlcnQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eGFkZXM6Q2VydERpZ2VzdD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHM6RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhMjU2IiAvPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkczpEaWdlc3RWYWx1ZT5OR0V6Tm1GaU5tVXlOVEF3WkdSaFkySmpOelV6WkdabVltTXhOalUxT0RZMVltUXdZVFZsTWpKbE1XTTRZMkU0T1dNNU5EY3paakUzTnpGaE1UWXdaUT09PC9kczpEaWdlc3RWYWx1ZT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwveGFkZXM6Q2VydERpZ2VzdD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4YWRlczpJc3N1ZXJTZXJpYWw+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRzOlg1MDlJc3N1ZXJOYW1lPkNOPVBFWkVJTlZPSUNFU0NBMi1DQSwgREM9ZXh0Z2F6dCwgREM9Z292LCBEQz1sb2NhbDwvZHM6WDUwOUlzc3Vlck5hbWU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRzOlg1MDlTZXJpYWxOdW1iZXI+NDIzNzE0Mjk0NzE4MDEyMjEzNTc3NjAzMjM0NTk0NDU5ODAzNTk4MjE4ODIyPC9kczpYNTA5U2VyaWFsTnVtYmVyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC94YWRlczpJc3N1ZXJTZXJpYWw+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwveGFkZXM6Q2VydD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3hhZGVzOlNpZ25pbmdDZXJ0aWZpY2F0ZT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwveGFkZXM6U2lnbmVkU2lnbmF0dXJlUHJvcGVydGllcz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC94YWRlczpTaWduZWRQcm9wZXJ0aWVzPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwveGFkZXM6UXVhbGlmeWluZ1Byb3BlcnRpZXM+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2RzOk9iamVjdD4NCiAgICAgICAgICAgICAgICAgICAgPC9kczpTaWduYXR1cmU+DQogICAgICAgICAgICAgICAgPC9zYWM6U2lnbmF0dXJlSW5mb3JtYXRpb24+DQogICAgICAgICAgICA8L3NpZzpVQkxEb2N1bWVudFNpZ25hdHVyZXM+DQogICAgICAgIDwvZXh0OkV4dGVuc2lvbkNvbnRlbnQ+DQogICAgPC9leHQ6VUJMRXh0ZW5zaW9uPg0KPC9leHQ6VUJMRXh0ZW5zaW9ucz4NCiAgPGNiYzpQcm9maWxlSUQ+cmVwb3J0aW5nOjEuMDwvY2JjOlByb2ZpbGVJRD4NCiAgPGNiYzpJRD5TTUUwMDAxMDwvY2JjOklEPg0KICA8Y2JjOlVVSUQ+Njc0ZDhjOGUtNjk4Yi00Nzg4LTk4MzYtNzEzOTA5ZDA2ZTlhPC9jYmM6VVVJRD4NCiAgPGNiYzpJc3N1ZURhdGU+MjAyMi0wOC0xNzwvY2JjOklzc3VlRGF0ZT4NCiAgPGNiYzpJc3N1ZVRpbWU+MTc6NDE6MDg8L2NiYzpJc3N1ZVRpbWU+DQogIDxjYmM6SW52b2ljZVR5cGVDb2RlIG5hbWU9IjAyMDAwMDAiPjM4ODwvY2JjOkludm9pY2VUeXBlQ29kZT4NCiAgPGNiYzpOb3RlIGxhbmd1YWdlSUQ9ImFyIj5BQkM8L2NiYzpOb3RlPg0KICA8Y2JjOkRvY3VtZW50Q3VycmVuY3lDb2RlPlNBUjwvY2JjOkRvY3VtZW50Q3VycmVuY3lDb2RlPg0KICA8Y2JjOlRheEN1cnJlbmN5Q29kZT5TQVI8L2NiYzpUYXhDdXJyZW5jeUNvZGU+DQogIDxjYWM6QWRkaXRpb25hbERvY3VtZW50UmVmZXJlbmNlPg0KICAgIDxjYmM6SUQ+SUNWPC9jYmM6SUQ+DQogICAgPGNiYzpVVUlEPjEwPC9jYmM6VVVJRD4NCiAgPC9jYWM6QWRkaXRpb25hbERvY3VtZW50UmVmZXJlbmNlPg0KICA8Y2FjOkFkZGl0aW9uYWxEb2N1bWVudFJlZmVyZW5jZT4NCiAgICA8Y2JjOklEPlBJSDwvY2JjOklEPg0KICAgIDxjYWM6QXR0YWNobWVudD4NCiAgICAgIDxjYmM6RW1iZWRkZWREb2N1bWVudEJpbmFyeU9iamVjdCBtaW1lQ29kZT0idGV4dC9wbGFpbiI+TldabFkyVmlOalptWm1NNE5tWXpPR1E1TlRJM09EWmpObVEyT1Raak56bGpNbVJpWXpJek9XUmtOR1U1TVdJME5qY3lPV1EzTTJFeU4yWmlOVGRsT1E9PTwvY2JjOkVtYmVkZGVkRG9jdW1lbnRCaW5hcnlPYmplY3Q+DQogICAgPC9jYWM6QXR0YWNobWVudD4NCiAgPC9jYWM6QWRkaXRpb25hbERvY3VtZW50UmVmZXJlbmNlPg0KICA8Y2FjOkFkZGl0aW9uYWxEb2N1bWVudFJlZmVyZW5jZT4NCiAgICAgICAgPGNiYzpJRD5RUjwvY2JjOklEPg0KICAgICAgICA8Y2FjOkF0dGFjaG1lbnQ+DQogICAgICAgICAgICA8Y2JjOkVtYmVkZGVkRG9jdW1lbnRCaW5hcnlPYmplY3QgbWltZUNvZGU9InRleHQvcGxhaW4iPkFSTkJZMjFsSUZkcFpHZGxkT0tBbVhNZ1RGUkVBZzh6TVRBd05URTVOVEF6TURBd01ETURFekl3TWpJdE1EZ3RNVGRVTVRjNk5ERTZNRGdFQmpJek1TNHhOUVVGTXpBdU1UVUdMRU5SZFVVMVMwOTRkbEZzYzJOUVowUnFWRVpXU2sweVVWaHRUVkI2VlRFMmRHTkNVRnBRT0hVMGNUZzlCMkJOUlZGRFNVUjJha1ZJZUVkM1VHTlBSazEzWWpKcVpuVjJOaXRTZUhwUlNETlVSWEp3VkRaamFFTlhia3BFV1VkQmFVRXdiMUpqYnl0SU5tbzFWbE5ZZFM5WmFGbHJOazVOZWswelN6QmhlaTlzZEVaVWNWWkhPVlpwUjNOM1BUMElXREJXTUJBR0J5cUdTTTQ5QWdFR0JTdUJCQUFLQTBJQUJBSXUvQ2xtYmhNaGN1OUJiZXhmMG40UmNLblpIM2UrQ3ZjNDFaZUwxeEhXT3J4R2QvZ0NtS096S04va05ld1Q2aGZreXlCL3BObXAxbC9ObFlvWkFpTUpTREJHQWlFQXlsYnBpelkvejNQVTZxMnRKVXpvemYrNFF0cjVRWDI3VDRuOHdTNHdjWlFDSVFDUTdtNUhVdzhaTm5MWExqRmVvWDlFVU82ZTJIWi9OYXR5K2hZd1oxb1p5dz09PC9jYmM6RW1iZWRkZWREb2N1bWVudEJpbmFyeU9iamVjdD4NCiAgICAgICAgPC9jYWM6QXR0YWNobWVudD4NCjwvY2FjOkFkZGl0aW9uYWxEb2N1bWVudFJlZmVyZW5jZT48Y2FjOlNpZ25hdHVyZT4NCiAgICAgIDxjYmM6SUQ+dXJuOm9hc2lzOm5hbWVzOnNwZWNpZmljYXRpb246dWJsOnNpZ25hdHVyZTpJbnZvaWNlPC9jYmM6SUQ+DQogICAgICA8Y2JjOlNpZ25hdHVyZU1ldGhvZD51cm46b2FzaXM6bmFtZXM6c3BlY2lmaWNhdGlvbjp1Ymw6ZHNpZzplbnZlbG9wZWQ6eGFkZXM8L2NiYzpTaWduYXR1cmVNZXRob2Q+DQo8L2NhYzpTaWduYXR1cmU+PGNhYzpBY2NvdW50aW5nU3VwcGxpZXJQYXJ0eT4NCiAgICA8Y2FjOlBhcnR5Pg0KICAgICAgPGNhYzpQYXJ0eUlkZW50aWZpY2F0aW9uPg0KICAgICAgICA8Y2JjOklEIHNjaGVtZUlEPSJDUk4iPjMyNDIyMzQzMjQzMjQzMjwvY2JjOklEPg0KICAgICAgPC9jYWM6UGFydHlJZGVudGlmaWNhdGlvbj4NCiAgICAgIDxjYWM6UG9zdGFsQWRkcmVzcz4NCiAgICAgICAgPGNiYzpTdHJlZXROYW1lPtin2YTYp9mF2YrYsSDYs9mE2LfYp9mGPC9jYmM6U3RyZWV0TmFtZT4NCiAgICAgICAgPGNiYzpCdWlsZGluZ051bWJlcj4zMjQyPC9jYmM6QnVpbGRpbmdOdW1iZXI+DQogICAgICAgIDxjYmM6UGxvdElkZW50aWZpY2F0aW9uPjQzMjM8L2NiYzpQbG90SWRlbnRpZmljYXRpb24+DQogICAgICAgIDxjYmM6Q2l0eVN1YmRpdmlzaW9uTmFtZT4zMjQyMzQyMzwvY2JjOkNpdHlTdWJkaXZpc2lvbk5hbWU+DQogICAgICAgIDxjYmM6Q2l0eU5hbWU+2KfZhNix2YrYp9i2IHwgUml5YWRoPC9jYmM6Q2l0eU5hbWU+DQogICAgICAgIDxjYmM6UG9zdGFsWm9uZT4zMjQzMjwvY2JjOlBvc3RhbFpvbmU+DQogICAgICAgIDxjYWM6Q291bnRyeT4NCiAgICAgICAgICA8Y2JjOklkZW50aWZpY2F0aW9uQ29kZT5TQTwvY2JjOklkZW50aWZpY2F0aW9uQ29kZT4NCiAgICAgICAgPC9jYWM6Q291bnRyeT4NCiAgICAgIDwvY2FjOlBvc3RhbEFkZHJlc3M+DQogICAgICA8Y2FjOlBhcnR5VGF4U2NoZW1lPg0KICAgICAgICA8Y2JjOkNvbXBhbnlJRD4zMTAwNTE5NTAzMDAwMDM8L2NiYzpDb21wYW55SUQ+DQogICAgICAgIDxjYWM6VGF4U2NoZW1lPg0KICAgICAgICAgIDxjYmM6SUQ+VkFUPC9jYmM6SUQ+DQogICAgICAgIDwvY2FjOlRheFNjaGVtZT4NCiAgICAgIDwvY2FjOlBhcnR5VGF4U2NoZW1lPg0KICAgICAgPGNhYzpQYXJ0eUxlZ2FsRW50aXR5Pg0KICAgICAgICA8Y2JjOlJlZ2lzdHJhdGlvbk5hbWU+QWNtZSBXaWRnZXTigJlzIExURDwvY2JjOlJlZ2lzdHJhdGlvbk5hbWU+DQogICAgICA8L2NhYzpQYXJ0eUxlZ2FsRW50aXR5Pg0KICAgIDwvY2FjOlBhcnR5Pg0KICA8L2NhYzpBY2NvdW50aW5nU3VwcGxpZXJQYXJ0eT4NCiAgPGNhYzpBY2NvdW50aW5nQ3VzdG9tZXJQYXJ0eT4NCiAgICA8Y2FjOlBhcnR5Pg0KICAgICAgPGNhYzpQb3N0YWxBZGRyZXNzPg0KICAgICAgICA8Y2JjOlN0cmVldE5hbWUgLz4NCiAgICAgICAgPGNiYzpDaXR5U3ViZGl2aXNpb25OYW1lPjMyNDIzNDIzPC9jYmM6Q2l0eVN1YmRpdmlzaW9uTmFtZT4NCiAgICAgICAgPGNhYzpDb3VudHJ5Pg0KICAgICAgICAgIDxjYmM6SWRlbnRpZmljYXRpb25Db2RlPlNBPC9jYmM6SWRlbnRpZmljYXRpb25Db2RlPg0KICAgICAgICA8L2NhYzpDb3VudHJ5Pg0KICAgICAgPC9jYWM6UG9zdGFsQWRkcmVzcz4NCiAgICAgIDxjYWM6UGFydHlUYXhTY2hlbWU+DQogICAgICAgIDxjYWM6VGF4U2NoZW1lPg0KICAgICAgICAgIDxjYmM6SUQ+VkFUPC9jYmM6SUQ+DQogICAgICAgIDwvY2FjOlRheFNjaGVtZT4NCiAgICAgIDwvY2FjOlBhcnR5VGF4U2NoZW1lPg0KICAgICAgPGNhYzpQYXJ0eUxlZ2FsRW50aXR5Pg0KICAgICAgICA8Y2JjOlJlZ2lzdHJhdGlvbk5hbWUgLz4NCiAgICAgIDwvY2FjOlBhcnR5TGVnYWxFbnRpdHk+DQogICAgPC9jYWM6UGFydHk+DQogIDwvY2FjOkFjY291bnRpbmdDdXN0b21lclBhcnR5Pg0KICA8Y2FjOlBheW1lbnRNZWFucz4NCiAgICA8Y2JjOlBheW1lbnRNZWFuc0NvZGU+MTA8L2NiYzpQYXltZW50TWVhbnNDb2RlPg0KICA8L2NhYzpQYXltZW50TWVhbnM+DQogIDxjYWM6QWxsb3dhbmNlQ2hhcmdlPg0KICAgIDxjYmM6Q2hhcmdlSW5kaWNhdG9yPmZhbHNlPC9jYmM6Q2hhcmdlSW5kaWNhdG9yPg0KICAgIDxjYmM6QWxsb3dhbmNlQ2hhcmdlUmVhc29uPmRpc2NvdW50PC9jYmM6QWxsb3dhbmNlQ2hhcmdlUmVhc29uPg0KICAgIDxjYmM6QW1vdW50IGN1cnJlbmN5SUQ9IlNBUiI+MC4wMDwvY2JjOkFtb3VudD4NCiAgICA8Y2FjOlRheENhdGVnb3J5Pg0KICAgICAgPGNiYzpJRCBzY2hlbWVBZ2VuY3lJRD0iNiIgc2NoZW1lSUQ9IlVOL0VDRSA1MzA1Ij5TPC9jYmM6SUQ+DQogICAgICA8Y2JjOlBlcmNlbnQ+MTU8L2NiYzpQZXJjZW50Pg0KICAgICAgPGNhYzpUYXhTY2hlbWU+DQogICAgICAgIDxjYmM6SUQgc2NoZW1lQWdlbmN5SUQ9IjYiIHNjaGVtZUlEPSJVTi9FQ0UgNTE1MyI+VkFUPC9jYmM6SUQ+DQogICAgICA8L2NhYzpUYXhTY2hlbWU+DQogICAgPC9jYWM6VGF4Q2F0ZWdvcnk+DQogICAgPGNhYzpUYXhDYXRlZ29yeT4NCiAgICAgIDxjYmM6SUQgc2NoZW1lQWdlbmN5SUQ9IjYiIHNjaGVtZUlEPSJVTi9FQ0UgNTMwNSI+UzwvY2JjOklEPg0KICAgICAgPGNiYzpQZXJjZW50PjE1PC9jYmM6UGVyY2VudD4NCiAgICAgIDxjYWM6VGF4U2NoZW1lPg0KICAgICAgICA8Y2JjOklEIHNjaGVtZUFnZW5jeUlEPSI2IiBzY2hlbWVJRD0iVU4vRUNFIDUxNTMiPlZBVDwvY2JjOklEPg0KICAgICAgPC9jYWM6VGF4U2NoZW1lPg0KICAgIDwvY2FjOlRheENhdGVnb3J5Pg0KICA8L2NhYzpBbGxvd2FuY2VDaGFyZ2U+DQogIDxjYWM6VGF4VG90YWw+DQogICAgPGNiYzpUYXhBbW91bnQgY3VycmVuY3lJRD0iU0FSIj4zMC4xNTwvY2JjOlRheEFtb3VudD4NCiAgPC9jYWM6VGF4VG90YWw+DQogIDxjYWM6VGF4VG90YWw+DQogICAgPGNiYzpUYXhBbW91bnQgY3VycmVuY3lJRD0iU0FSIj4zMC4xNTwvY2JjOlRheEFtb3VudD4NCiAgICA8Y2FjOlRheFN1YnRvdGFsPg0KICAgICAgPGNiYzpUYXhhYmxlQW1vdW50IGN1cnJlbmN5SUQ9IlNBUiI+MjAxLjAwPC9jYmM6VGF4YWJsZUFtb3VudD4NCiAgICAgIDxjYmM6VGF4QW1vdW50IGN1cnJlbmN5SUQ9IlNBUiI+MzAuMTU8L2NiYzpUYXhBbW91bnQ+DQogICAgICA8Y2FjOlRheENhdGVnb3J5Pg0KICAgICAgICA8Y2JjOklEIHNjaGVtZUFnZW5jeUlEPSI2IiBzY2hlbWVJRD0iVU4vRUNFIDUzMDUiPlM8L2NiYzpJRD4NCiAgICAgICAgPGNiYzpQZXJjZW50PjE1LjAwPC9jYmM6UGVyY2VudD4NCiAgICAgICAgPGNhYzpUYXhTY2hlbWU+DQogICAgICAgICAgPGNiYzpJRCBzY2hlbWVBZ2VuY3lJRD0iNiIgc2NoZW1lSUQ9IlVOL0VDRSA1MTUzIj5WQVQ8L2NiYzpJRD4NCiAgICAgICAgPC9jYWM6VGF4U2NoZW1lPg0KICAgICAgPC9jYWM6VGF4Q2F0ZWdvcnk+DQogICAgPC9jYWM6VGF4U3VidG90YWw+DQogIDwvY2FjOlRheFRvdGFsPg0KICA8Y2FjOkxlZ2FsTW9uZXRhcnlUb3RhbD4NCiAgICA8Y2JjOkxpbmVFeHRlbnNpb25BbW91bnQgY3VycmVuY3lJRD0iU0FSIj4yMDEuMDA8L2NiYzpMaW5lRXh0ZW5zaW9uQW1vdW50Pg0KICAgIDxjYmM6VGF4RXhjbHVzaXZlQW1vdW50IGN1cnJlbmN5SUQ9IlNBUiI+MjAxLjAwPC9jYmM6VGF4RXhjbHVzaXZlQW1vdW50Pg0KICAgIDxjYmM6VGF4SW5jbHVzaXZlQW1vdW50IGN1cnJlbmN5SUQ9IlNBUiI+MjMxLjE1PC9jYmM6VGF4SW5jbHVzaXZlQW1vdW50Pg0KICAgIDxjYmM6QWxsb3dhbmNlVG90YWxBbW91bnQgY3VycmVuY3lJRD0iU0FSIj4wLjAwPC9jYmM6QWxsb3dhbmNlVG90YWxBbW91bnQ+DQogICAgPGNiYzpQcmVwYWlkQW1vdW50IGN1cnJlbmN5SUQ9IlNBUiI+MC4wMDwvY2JjOlByZXBhaWRBbW91bnQ+DQogICAgPGNiYzpQYXlhYmxlQW1vdW50IGN1cnJlbmN5SUQ9IlNBUiI+MjMxLjE1PC9jYmM6UGF5YWJsZUFtb3VudD4NCiAgPC9jYWM6TGVnYWxNb25ldGFyeVRvdGFsPg0KICA8Y2FjOkludm9pY2VMaW5lPg0KICAgIDxjYmM6SUQ+MTwvY2JjOklEPg0KICAgIDxjYmM6SW52b2ljZWRRdWFudGl0eSB1bml0Q29kZT0iUENFIj4zMy4wMDAwMDA8L2NiYzpJbnZvaWNlZFF1YW50aXR5Pg0KICAgIDxjYmM6TGluZUV4dGVuc2lvbkFtb3VudCBjdXJyZW5jeUlEPSJTQVIiPjk5LjAwPC9jYmM6TGluZUV4dGVuc2lvbkFtb3VudD4NCiAgICA8Y2FjOlRheFRvdGFsPg0KICAgICAgPGNiYzpUYXhBbW91bnQgY3VycmVuY3lJRD0iU0FSIj4xNC44NTwvY2JjOlRheEFtb3VudD4NCiAgICAgIDxjYmM6Um91bmRpbmdBbW91bnQgY3VycmVuY3lJRD0iU0FSIj4xMTMuODU8L2NiYzpSb3VuZGluZ0Ftb3VudD4NCiAgICA8L2NhYzpUYXhUb3RhbD4NCiAgICA8Y2FjOkl0ZW0+DQogICAgICA8Y2JjOk5hbWU+2YPYqtin2Kg8L2NiYzpOYW1lPg0KICAgICAgPGNhYzpDbGFzc2lmaWVkVGF4Q2F0ZWdvcnk+DQogICAgICAgIDxjYmM6SUQ+UzwvY2JjOklEPg0KICAgICAgICA8Y2JjOlBlcmNlbnQ+MTUuMDA8L2NiYzpQZXJjZW50Pg0KICAgICAgICA8Y2FjOlRheFNjaGVtZT4NCiAgICAgICAgICA8Y2JjOklEPlZBVDwvY2JjOklEPg0KICAgICAgICA8L2NhYzpUYXhTY2hlbWU+DQogICAgICA8L2NhYzpDbGFzc2lmaWVkVGF4Q2F0ZWdvcnk+DQogICAgPC9jYWM6SXRlbT4NCiAgICA8Y2FjOlByaWNlPg0KICAgICAgPGNiYzpQcmljZUFtb3VudCBjdXJyZW5jeUlEPSJTQVIiPjMuMDA8L2NiYzpQcmljZUFtb3VudD4NCiAgICAgIDxjYWM6QWxsb3dhbmNlQ2hhcmdlPg0KICAgICAgICA8Y2JjOkNoYXJnZUluZGljYXRvcj50cnVlPC9jYmM6Q2hhcmdlSW5kaWNhdG9yPg0KICAgICAgICA8Y2JjOkFsbG93YW5jZUNoYXJnZVJlYXNvbj5kaXNjb3VudDwvY2JjOkFsbG93YW5jZUNoYXJnZVJlYXNvbj4NCiAgICAgICAgPGNiYzpBbW91bnQgY3VycmVuY3lJRD0iU0FSIj4wLjAwPC9jYmM6QW1vdW50Pg0KICAgICAgPC9jYWM6QWxsb3dhbmNlQ2hhcmdlPg0KICAgIDwvY2FjOlByaWNlPg0KICA8L2NhYzpJbnZvaWNlTGluZT4NCiAgPGNhYzpJbnZvaWNlTGluZT4NCiAgICA8Y2JjOklEPjI8L2NiYzpJRD4NCiAgICA8Y2JjOkludm9pY2VkUXVhbnRpdHkgdW5pdENvZGU9IlBDRSI+My4wMDAwMDA8L2NiYzpJbnZvaWNlZFF1YW50aXR5Pg0KICAgIDxjYmM6TGluZUV4dGVuc2lvbkFtb3VudCBjdXJyZW5jeUlEPSJTQVIiPjEwMi4wMDwvY2JjOkxpbmVFeHRlbnNpb25BbW91bnQ+DQogICAgPGNhYzpUYXhUb3RhbD4NCiAgICAgIDxjYmM6VGF4QW1vdW50IGN1cnJlbmN5SUQ9IlNBUiI+MTUuMzA8L2NiYzpUYXhBbW91bnQ+DQogICAgICA8Y2JjOlJvdW5kaW5nQW1vdW50IGN1cnJlbmN5SUQ9IlNBUiI+MTE3LjMwPC9jYmM6Um91bmRpbmdBbW91bnQ+DQogICAgPC9jYWM6VGF4VG90YWw+DQogICAgPGNhYzpJdGVtPg0KICAgICAgPGNiYzpOYW1lPtmC2YTZhTwvY2JjOk5hbWU+DQogICAgICA8Y2FjOkNsYXNzaWZpZWRUYXhDYXRlZ29yeT4NCiAgICAgICAgPGNiYzpJRD5TPC9jYmM6SUQ+DQogICAgICAgIDxjYmM6UGVyY2VudD4xNS4wMDwvY2JjOlBlcmNlbnQ+DQogICAgICAgIDxjYWM6VGF4U2NoZW1lPg0KICAgICAgICAgIDxjYmM6SUQ+VkFUPC9jYmM6SUQ+DQogICAgICAgIDwvY2FjOlRheFNjaGVtZT4NCiAgICAgIDwvY2FjOkNsYXNzaWZpZWRUYXhDYXRlZ29yeT4NCiAgICA8L2NhYzpJdGVtPg0KICAgIDxjYWM6UHJpY2U+DQogICAgICA8Y2JjOlByaWNlQW1vdW50IGN1cnJlbmN5SUQ9IlNBUiI+MzQuMDA8L2NiYzpQcmljZUFtb3VudD4NCiAgICAgIDxjYWM6QWxsb3dhbmNlQ2hhcmdlPg0KICAgICAgICA8Y2JjOkNoYXJnZUluZGljYXRvcj50cnVlPC9jYmM6Q2hhcmdlSW5kaWNhdG9yPg0KICAgICAgICA8Y2JjOkFsbG93YW5jZUNoYXJnZVJlYXNvbj5kaXNjb3VudDwvY2JjOkFsbG93YW5jZUNoYXJnZVJlYXNvbj4NCiAgICAgICAgPGNiYzpBbW91bnQgY3VycmVuY3lJRD0iU0FSIj4wLjAwPC9jYmM6QW1vdW50Pg0KICAgICAgPC9jYWM6QWxsb3dhbmNlQ2hhcmdlPg0KICAgIDwvY2FjOlByaWNlPg0KICA8L2NhYzpJbnZvaWNlTGluZT4NCjwvSW52b2ljZT4=”
}
Dear @Mahmoud66
Thanks for your collaboration. Kindly follow the below steps:
- Generate New Hash for the signed XML using the following command "fatooraNet generateHash -invoice “TheSingedXML.xml”
- Take the new hash generated from the SDK and replace it with the “invoiceHash” in the API body.
Please let me know if the provided steps will fix the issue, If not kindly share the full request along with the detailed steps you followed via the below mail to schedule one to one meeting if needed.
SP mail: sp_support@zatca.gov.sa
Thanks,
Ibrahem Daoud.