Skip to content

Commit

Permalink
Merge pull request #585 from TDu/paynet13v2
Browse files Browse the repository at this point in the history
[13.0][ADD] ebill_paynet v2
  • Loading branch information
yvaucher authored Sep 27, 2021
2 parents f5c3a8b + 5d8b2dc commit b456b3a
Show file tree
Hide file tree
Showing 59 changed files with 4,240 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ repos:
- "[email protected]"
- "@prettier/[email protected]"
files: \.(css|htm|html|js|json|jsx|less|md|scss|toml|ts|xml|yaml|yml)$
# For ebill_paynet don't format the message template files
exclude: /messages/.*\.xml$|/components/wsdl/.*\.xml$|/tests/examples/.*\.xml$
- repo: https://github.com/pre-commit/mirrors-eslint
rev: v6.8.0
hooks:
Expand Down
2 changes: 2 additions & 0 deletions ebill_paynet/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from . import components
from . import models
34 changes: 34 additions & 0 deletions ebill_paynet/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Copyright 2019-2020 Camptocamp SA
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

{
"name": "eBill Paynet",
"summary": """
Paynet platform bridge implementation""",
"version": "13.0.1.0.0",
"license": "AGPL-3",
"author": "Camptocamp SA,Odoo Community Association (OCA)",
"website": "https://github.com/OCA/l10n-switzerland",
"depends": [
"account",
"account_invoice_export",
"base_ebill_payment_contract",
"l10n_ch_base_bank",
"l10n_ch_qriban",
"queue_job",
"sale",
"delivery",
],
"external_dependencies": {"python": ["zeep"]},
"data": [
"data/transmit.method.xml",
"data/ir_cron.xml",
"data/mail_activity_type.xml",
"security/ir.model.access.csv",
"views/ebill_payment_contract.xml",
"views/message_template.xml",
"views/paynet_service.xml",
"views/paynet_invoice_message.xml",
],
"demo": [],
}
1 change: 1 addition & 0 deletions ebill_paynet/components/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import api
58 changes: 58 additions & 0 deletions ebill_paynet/components/api.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Copyright 2019 Camptocamp SA
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)

import logging
import os

import requests
import zeep
from lxml import html

from odoo.modules.module import get_resource_path

_logger = logging.getLogger(__name__)

WSDL_DOC = os.path.join(os.path.dirname(__file__), "wsdl", "DWSPayNet.wsdl")
SSL_PROD_CERTIFICATE = get_resource_path(
"ebill_paynet", "certificats", "prod_services_chain.pem"
)
SSL_TEST_CERTIFICATE = get_resource_path(
"ebill_paynet", "certificats", "test_services_chain.pem"
)


class PayNetDWS:
"""PayNet DWS web services."""

def __init__(self, url, test_service):
settings = zeep.Settings(xml_huge_tree=True)
session = requests.Session()
if test_service:
session.verify = SSL_TEST_CERTIFICATE
else:
session.verify = SSL_PROD_CERTIFICATE
transport = zeep.transports.Transport(session=session)
self.client = zeep.Client(WSDL_DOC, transport=transport, settings=settings)
if url:
self.service = self.client.create_service(
"{http://www.sap.com/DWS}DWSBinding", url
)
else:
self.service = self.client.service

@staticmethod
def authorization(userid, password):
"""Generate Authorization node."""
return {"UserName": userid, "Password": password}

@staticmethod
def handle_fault(fault):
msg = ("{}\n" "code: {} -> {}\n" "actor: {}\n" "detail: {}\n").format(
fault.message.upper(),
fault.code,
fault.subcodes,
fault.actor,
html.tostring(fault.detail),
)
_logger.info("Paynet DWS fault : {}".format(msg))
return msg
108 changes: 108 additions & 0 deletions ebill_paynet/components/certificats/prod_services_chain.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
-----BEGIN CERTIFICATE-----
MIIGaTCCBVGgAwIBAgIUWba4DmLQ0dWzDjnsaT2OQ8rbIGwwDQYJKoZIhvcNAQEL
BQAwVDELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEuMCwGA1UE
AxMlU3dpc3NTaWduIFBlcnNvbmFsIEdvbGQgQ0EgMjAxNCAtIEcyMjAeFw0xNzEx
MjAwOTU5NDRaFw0yMjExMjAwOTU5NDRaMIGYMQswCQYDVQQGEwJDSDELMAkGA1UE
CBMCWkgxFjAUBgNVBAoTDVNJWCBQYXluZXQgQUcxGjAYBgNVBAsTEVBheW5ldCBw
cm9kdWN0aW9uMSYwJAYJKoZIhvcNAQkBFhdzdXBwb3J0Y2VudGVyQHBheW5ldC5j
aDEgMB4GA1UEAxMXcHNldWRvOiBTeXN0ZW0tU2VydmljZXMwggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQCZKGdFfKvzyIIjIHAa0Cke7K7fmHeUicyDTcUD
uHkzKgug1gXIBVcp8BUxlWa4i2z4CeR+ovGL6J/qlCySAOAF/gTd9toIfsBtZvpw
IuBxCSoik/ctTwFTw8DKBWGEwgWjPDm2mZBqHpHMsr1q2IXueLT0vZnTMvfsnR1d
EqD1lsX5q8expQdfhjoo51hRAh9ZUGvCfIuQUJBpVb2NkGPHJVD36wzQHANyJUxL
sM4GvNCLYiJn9HtAAppxoOaEgiwA36iQuOI5j2g22RhCIdUATfSGhmNWsL8DBc+0
vEH+NXsa1j+teQ7jOjA4b4e6PSFZaV3p/J3OCS8CN4nYtMgBAgMBQhWjggLsMIIC
6DAiBgNVHREEGzAZgRdzdXBwb3J0Y2VudGVyQHBheW5ldC5jaDAOBgNVHQ8BAf8E
BAMCA/gwNQYDVR0lBC4wLAYIKwYBBQUHAwIGCCsGAQUFBwMEBgorBgEEAYI3CgME
BgorBgEEAYI3FAICMB0GA1UdDgQWBBSpA61TR1vJwbygReWdyy696hwRKjAfBgNV
HSMEGDAWgBTaMvlJ+FHMmHFmDNnOttuSPwlL7zCB/wYDVR0fBIH3MIH0MEegRaBD
hkFodHRwOi8vY3JsLnN3aXNzc2lnbi5uZXQvREEzMkY5NDlGODUxQ0M5ODcxNjYw
Q0Q5Q0VCNkRCOTIzRjA5NEJFRjCBqKCBpaCBooaBn2xkYXA6Ly9kaXJlY3Rvcnku
c3dpc3NzaWduLm5ldC9DTj1EQTMyRjk0OUY4NTFDQzk4NzE2NjBDRDlDRUI2REI5
MjNGMDk0QkVGJTJDTz1Td2lzc1NpZ24lMkNDPUNIP2NlcnRpZmljYXRlUmV2b2Nh
dGlvbkxpc3Q/YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0cmlidXRpb25Qb2ludDBf
BgNVHSAEWDBWMFQGCWCFdAFZAQIBBjBHMEUGCCsGAQUFBwIBFjlodHRwOi8vcmVw
b3NpdG9yeS5zd2lzc3NpZ24uY29tL1N3aXNzU2lnbi1Hb2xkLUNQLUNQUy5wZGYw
gdcGCCsGAQUFBwEBBIHKMIHHMGQGCCsGAQUFBzAChlhodHRwOi8vc3dpc3NzaWdu
Lm5ldC9jZ2ktYmluL2F1dGhvcml0eS9kb3dubG9hZC9EQTMyRjk0OUY4NTFDQzk4
NzE2NjBDRDlDRUI2REI5MjNGMDk0QkVGMF8GCCsGAQUFBzABhlNodHRwOi8vZ29s
ZC1wZXJzb25hbC1nMi5vY3NwLnN3aXNzc2lnbi5uZXQvREEzMkY5NDlGODUxQ0M5
ODcxNjYwQ0Q5Q0VCNkRCOTIzRjA5NEJFRjANBgkqhkiG9w0BAQsFAAOCAQEAYHiL
SurldkBD3sra6oQ0LygKueuJobgrrJmkAnvfCZbjbgd12IJs7ayDG1Eu7hhFWh+8
7JkbcfwZMgYkpfN7ogHZYm9Sl3nf3hfCXqnxji2Hzeb7GZFrmQ/BOBdrCIEaTZwf
MjHPVOQ0XhNVGb8oFE4xSeK7yhLZlue33xNEGEKYlC8hwyCj690OhCJVzr5l7obf
0821KA2L/pXb0HmuXQkev+ECF9D1T/nsswIj2IJFlxDvnTpvYiUxBh3Mj8GnPHrS
R+vsIlcRYa1OGm10Nfwe7EnpTf+pAm5iKepxhcReFKzXQA12xkEquNgIr8sa76+y
Eg95jNEZxB9wC4bIJQ==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGuDCCBKCgAwIBAgIPGReV3CJ0GxId21RMXMvcMA0GCSqGSIb3DQEBCwUAMEUx
CzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3
aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcNMTQwOTE5MTQxMDI1WhcNMjkwOTE1MTQx
MDI1WjBUMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMS4wLAYD
VQQDEyVTd2lzc1NpZ24gUGVyc29uYWwgR29sZCBDQSAyMDE0IC0gRzIyMIIBIjAN
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnrf0T2JFsx4NPb+TUBInPgv9nUyF
9dMJh7sQL66HybrB2devqNc1+Gq+fFT4tfBa9hbI+xqRRqCO0LoQOJ3v3XMlOzQ3
zTL+b3wgDvs/d8tZ7LWGOSYF480/rL1aaBIQFlrE62GDQvcmkH/C8QxsSS+T+ga2
FQhC/Br/btveNcP6cz87WyshF8IU/7sOKYqh3o5mbxI641R1u3+zaiGq8A9620pS
oW3b9P1Mf5t4z51ifqb+/QsYtDt60dw+mVES6sk8cl9VRLejcuiXFyVJaj7YyITi
or33buzheHvzZdxaQSgeq0mIrvmXqtplZoqXQ12irR7xhuf/w9UtFBbqCwIDAQAB
o4IClDCCApAwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYD
VR0OBBYEFNoy+Un4UcyYcWYM2c6225I/CUvvMB8GA1UdIwQYMBaAFFsle5akZVF+
uDnzwHhmXug65/DuMIH/BgNVHR8EgfcwgfQwR6BFoEOGQWh0dHA6Ly9jcmwuc3dp
c3NzaWduLm5ldC81QjI1N0I5NkE0NjU1MTdFQjgzOUYzQzA3ODY2NUVFODNBRTdG
MEVFMIGooIGloIGihoGfbGRhcDovL2RpcmVjdG9yeS5zd2lzc3NpZ24ubmV0L0NO
PTVCMjU3Qjk2QTQ2NTUxN0VCODM5RjNDMDc4NjY1RUU4M0FFN0YwRUUlMkNPPVN3
aXNzU2lnbiUyQ0M9Q0g/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdD9iYXNlP29i
amVjdENsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50MF8GA1UdIARYMFYwVAYJYIV0
AVkBAgEGMEcwRQYIKwYBBQUHAgEWOWh0dHA6Ly9yZXBvc2l0b3J5LnN3aXNzc2ln
bi5jb20vU3dpc3NTaWduLUdvbGQtQ1AtQ1BTLnBkZjCBxgYIKwYBBQUHAQEEgbkw
gbYwZAYIKwYBBQUHMAKGWGh0dHA6Ly9zd2lzc3NpZ24ubmV0L2NnaS1iaW4vYXV0
aG9yaXR5L2Rvd25sb2FkLzVCMjU3Qjk2QTQ2NTUxN0VCODM5RjNDMDc4NjY1RUU4
M0FFN0YwRUUwTgYIKwYBBQUHMAGGQmh0dHA6Ly9vY3NwLnN3aXNzc2lnbi5uZXQv
NUIyNTdCOTZBNDY1NTE3RUI4MzlGM0MwNzg2NjVFRTgzQUU3RjBFRTANBgkqhkiG
9w0BAQsFAAOCAgEArevbqCOPH6va0x4oEb4UviyXJzIokl5MjRADlGMDFXaKm52m
U+IZlJ9PjcqBiEXhjjD1oR8uV5aVRWXH+auI6JgQZz5L+u2a309bDu3bcineP45v
Z+nAuoDvulmx2nqjloCOturaks727w/nHCoz723eYH46fg//q/a5QnOoBe+WIiZW
T71TcycX4hiVcPwVqB53tL9IM2qe2balnCpZKorZWVHQXYWSO5MIBaw/iMOwCCpf
lDRU75TruHPjfE4Bu4U9Nm3NBt3zcc5ykcQ8ZbJzkWLnSi2LY8r71Ulc3jxqyWOZ
QbgS14x/BzVQj4Rk9+X8KovGpooAFVIBR/bdU/z2IdZlENgoPNpJokuEH5OS6UZS
yNmhhXjI2QGXn91G+QV4++kreVz6heVOhDPgOoOfRXLYG9O/9wqPMthmUQgcTrym
p57bPpM0zIYpHxcKfxhoYprQdO3LuU1F2xkZE2vFLWVB9ugHzXd1ADIKrrGgJXPf
MluXT9wK8BzTcI5cOqhESt4Awq5q9fmiW3OUAROL0Ca0Z/sRQcvvJ/ewlZvLdsym
cfjV6JtN7/IBgIJ4D/Js4DRWCwAv1jhBiEGsRAlhiJmep//U1HEaT9oredt9PYS1
iKbkcMuDEtPuYXrQ+8OQmMEwMbOFboZMMTOVNOenLH+EiG6BUnowTwqqjtA=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
BAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2ln
biBHb2xkIENBIC0gRzIwHhcNMDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBF
MQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMR8wHQYDVQQDExZT
d2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
CgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUqt2/8
76LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+
bbqBHH5CjCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c
6bM8K8vzARO/Ws/BtQpgvd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqE
emA8atufK+ze3gE/bk3lUIbLtK/tREDFylqM2tIrfKjuvqblCqoOpd8FUrdVxyJd
MmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvRAiTysybUa9oEVeXBCsdt
MDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuendjIj3o02y
MszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69y
FGkOpeUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPi
aG59je883WX0XaxR7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxM
gI93e2CaHt+28kgeDrpOVG2Y4OGiGqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCB
qTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUWyV7
lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64OfPAeGZe6Drn
8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov
L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe6
45R88a7A3hfm5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczO
UYrHUDFu4Up+GC9pWbY9ZIEr44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5
O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOfMke6UiI0HTJ6CVanfCU2qT1L2sCC
bwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6mGu6uLftIdxf+u+yv
GPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxpmo/a
77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCC
hdiDyyJkvC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid3
92qgQmwLOM7XdVAyksLfKzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEpp
Ld6leNcG2mqeSz53OiATIgHQv2ieY2BrNU0LbbqhPcCT4H8js1WtciVORvnSFu+w
ZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6LqjviOvrv1vA+ACOzB2+htt
Qc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ
-----END CERTIFICATE-----
108 changes: 108 additions & 0 deletions ebill_paynet/components/certificats/test_services_chain.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
-----BEGIN CERTIFICATE-----
MIIGYzCCBUugAwIBAgIUWdrIKM3bJ8JpG1C7eTGiyjv34rswDQYJKoZIhvcNAQEL
BQAwVDELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEuMCwGA1UE
AxMlU3dpc3NTaWduIFBlcnNvbmFsIEdvbGQgQ0EgMjAxNCAtIEcyMjAeFw0xNzEx
MjAwOTU2NTBaFw0yMjExMjAwOTU2NTBaMIGSMQswCQYDVQQGEwJDSDELMAkGA1UE
CBMCWkgxFjAUBgNVBAoTDVNJWCBQYXluZXQgQUcxFDASBgNVBAsTC1BheW5ldCB0
ZXN0MSYwJAYJKoZIhvcNAQkBFhdzdXBwb3J0Y2VudGVyQHBheW5ldC5jaDEgMB4G
A1UEAxMXcHNldWRvOiBTeXN0ZW0tU2VydmljZXMwggEiMA0GCSqGSIb3DQEBAQUA
A4IBDwAwggEKAoIBAQCypeouG2k5NzPRVMvXWgtQmRdGi9ix2LD+B0iC0xkBiFn6
MZnvchjqenwY66xleqn1plryb1B5aCX1q04RBtEgXj7P9WL4p7TpjtXIneoY2UuO
ir97GmfgMLwnhwxq612AofsFwa2TujRAGWycMUNzUFMpifWP61vcXxVS/vZ/DM7h
UGwOk6d4YLDk37UrtPke1nIzvG59QI0yDSe3B3pp9RQ3RSZHCnYuNOZVgSOYn2XR
NbkZWY1Vl3O7eqGp9pcfuVQlgXkm7HiBj19MXcwL7HilYnvH0d812LuO3f48Xrtq
ya7b1sfmKS2HnlydMfHrW30FkKSNIu8soN55Qm9bAgMBLj2jggLsMIIC6DAiBgNV
HREEGzAZgRdzdXBwb3J0Y2VudGVyQHBheW5ldC5jaDAOBgNVHQ8BAf8EBAMCA/gw
NQYDVR0lBC4wLAYIKwYBBQUHAwIGCCsGAQUFBwMEBgorBgEEAYI3CgMEBgorBgEE
AYI3FAICMB0GA1UdDgQWBBQtnW9uvu1S1/48B4sogUt1iVX9ZjAfBgNVHSMEGDAW
gBTaMvlJ+FHMmHFmDNnOttuSPwlL7zCB/wYDVR0fBIH3MIH0MEegRaBDhkFodHRw
Oi8vY3JsLnN3aXNzc2lnbi5uZXQvREEzMkY5NDlGODUxQ0M5ODcxNjYwQ0Q5Q0VC
NkRCOTIzRjA5NEJFRjCBqKCBpaCBooaBn2xkYXA6Ly9kaXJlY3Rvcnkuc3dpc3Nz
aWduLm5ldC9DTj1EQTMyRjk0OUY4NTFDQzk4NzE2NjBDRDlDRUI2REI5MjNGMDk0
QkVGJTJDTz1Td2lzc1NpZ24lMkNDPUNIP2NlcnRpZmljYXRlUmV2b2NhdGlvbkxp
c3Q/YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0cmlidXRpb25Qb2ludDBfBgNVHSAE
WDBWMFQGCWCFdAFZAQIBBjBHMEUGCCsGAQUFBwIBFjlodHRwOi8vcmVwb3NpdG9y
eS5zd2lzc3NpZ24uY29tL1N3aXNzU2lnbi1Hb2xkLUNQLUNQUy5wZGYwgdcGCCsG
AQUFBwEBBIHKMIHHMGQGCCsGAQUFBzAChlhodHRwOi8vc3dpc3NzaWduLm5ldC9j
Z2ktYmluL2F1dGhvcml0eS9kb3dubG9hZC9EQTMyRjk0OUY4NTFDQzk4NzE2NjBD
RDlDRUI2REI5MjNGMDk0QkVGMF8GCCsGAQUFBzABhlNodHRwOi8vZ29sZC1wZXJz
b25hbC1nMi5vY3NwLnN3aXNzc2lnbi5uZXQvREEzMkY5NDlGODUxQ0M5ODcxNjYw
Q0Q5Q0VCNkRCOTIzRjA5NEJFRjANBgkqhkiG9w0BAQsFAAOCAQEAQpjmC9W3K5pO
EtRakvBA+kexvGesc+jtzzqPJhUSEN1AB8OrcfY+xhiN9TO/hNdRApPTtYuDFIqW
Lxhz3i5Gs+k6bpXnioDEs0UfgqhGvTLEq7LYbkMgZQ+0U4DpiANKMKbRo38krK5I
1OSY6W7zchC/r4O/0Wj7kQL+Cchv6LEdgu9xqBVkRTe3Z0jxK8AvNGkppFMNACRd
Ev2/9N0/klbGY6ZF3keU/u3IaTRNaX5spXIjpwYBwp0DNmIUnHZLPyji474rNzHg
z950/a5cIbhukwkUw2lu2f21r3MkpX/TJ5Pjmo5N0qUkj9h7iWWZO1lI1phpIMmd
VgNEI1L2lw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGuDCCBKCgAwIBAgIPGReV3CJ0GxId21RMXMvcMA0GCSqGSIb3DQEBCwUAMEUx
CzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3
aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcNMTQwOTE5MTQxMDI1WhcNMjkwOTE1MTQx
MDI1WjBUMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMS4wLAYD
VQQDEyVTd2lzc1NpZ24gUGVyc29uYWwgR29sZCBDQSAyMDE0IC0gRzIyMIIBIjAN
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnrf0T2JFsx4NPb+TUBInPgv9nUyF
9dMJh7sQL66HybrB2devqNc1+Gq+fFT4tfBa9hbI+xqRRqCO0LoQOJ3v3XMlOzQ3
zTL+b3wgDvs/d8tZ7LWGOSYF480/rL1aaBIQFlrE62GDQvcmkH/C8QxsSS+T+ga2
FQhC/Br/btveNcP6cz87WyshF8IU/7sOKYqh3o5mbxI641R1u3+zaiGq8A9620pS
oW3b9P1Mf5t4z51ifqb+/QsYtDt60dw+mVES6sk8cl9VRLejcuiXFyVJaj7YyITi
or33buzheHvzZdxaQSgeq0mIrvmXqtplZoqXQ12irR7xhuf/w9UtFBbqCwIDAQAB
o4IClDCCApAwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYD
VR0OBBYEFNoy+Un4UcyYcWYM2c6225I/CUvvMB8GA1UdIwQYMBaAFFsle5akZVF+
uDnzwHhmXug65/DuMIH/BgNVHR8EgfcwgfQwR6BFoEOGQWh0dHA6Ly9jcmwuc3dp
c3NzaWduLm5ldC81QjI1N0I5NkE0NjU1MTdFQjgzOUYzQzA3ODY2NUVFODNBRTdG
MEVFMIGooIGloIGihoGfbGRhcDovL2RpcmVjdG9yeS5zd2lzc3NpZ24ubmV0L0NO
PTVCMjU3Qjk2QTQ2NTUxN0VCODM5RjNDMDc4NjY1RUU4M0FFN0YwRUUlMkNPPVN3
aXNzU2lnbiUyQ0M9Q0g/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdD9iYXNlP29i
amVjdENsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50MF8GA1UdIARYMFYwVAYJYIV0
AVkBAgEGMEcwRQYIKwYBBQUHAgEWOWh0dHA6Ly9yZXBvc2l0b3J5LnN3aXNzc2ln
bi5jb20vU3dpc3NTaWduLUdvbGQtQ1AtQ1BTLnBkZjCBxgYIKwYBBQUHAQEEgbkw
gbYwZAYIKwYBBQUHMAKGWGh0dHA6Ly9zd2lzc3NpZ24ubmV0L2NnaS1iaW4vYXV0
aG9yaXR5L2Rvd25sb2FkLzVCMjU3Qjk2QTQ2NTUxN0VCODM5RjNDMDc4NjY1RUU4
M0FFN0YwRUUwTgYIKwYBBQUHMAGGQmh0dHA6Ly9vY3NwLnN3aXNzc2lnbi5uZXQv
NUIyNTdCOTZBNDY1NTE3RUI4MzlGM0MwNzg2NjVFRTgzQUU3RjBFRTANBgkqhkiG
9w0BAQsFAAOCAgEArevbqCOPH6va0x4oEb4UviyXJzIokl5MjRADlGMDFXaKm52m
U+IZlJ9PjcqBiEXhjjD1oR8uV5aVRWXH+auI6JgQZz5L+u2a309bDu3bcineP45v
Z+nAuoDvulmx2nqjloCOturaks727w/nHCoz723eYH46fg//q/a5QnOoBe+WIiZW
T71TcycX4hiVcPwVqB53tL9IM2qe2balnCpZKorZWVHQXYWSO5MIBaw/iMOwCCpf
lDRU75TruHPjfE4Bu4U9Nm3NBt3zcc5ykcQ8ZbJzkWLnSi2LY8r71Ulc3jxqyWOZ
QbgS14x/BzVQj4Rk9+X8KovGpooAFVIBR/bdU/z2IdZlENgoPNpJokuEH5OS6UZS
yNmhhXjI2QGXn91G+QV4++kreVz6heVOhDPgOoOfRXLYG9O/9wqPMthmUQgcTrym
p57bPpM0zIYpHxcKfxhoYprQdO3LuU1F2xkZE2vFLWVB9ugHzXd1ADIKrrGgJXPf
MluXT9wK8BzTcI5cOqhESt4Awq5q9fmiW3OUAROL0Ca0Z/sRQcvvJ/ewlZvLdsym
cfjV6JtN7/IBgIJ4D/Js4DRWCwAv1jhBiEGsRAlhiJmep//U1HEaT9oredt9PYS1
iKbkcMuDEtPuYXrQ+8OQmMEwMbOFboZMMTOVNOenLH+EiG6BUnowTwqqjtA=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
BAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2ln
biBHb2xkIENBIC0gRzIwHhcNMDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBF
MQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMR8wHQYDVQQDExZT
d2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
CgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUqt2/8
76LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+
bbqBHH5CjCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c
6bM8K8vzARO/Ws/BtQpgvd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqE
emA8atufK+ze3gE/bk3lUIbLtK/tREDFylqM2tIrfKjuvqblCqoOpd8FUrdVxyJd
MmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvRAiTysybUa9oEVeXBCsdt
MDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuendjIj3o02y
MszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69y
FGkOpeUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPi
aG59je883WX0XaxR7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxM
gI93e2CaHt+28kgeDrpOVG2Y4OGiGqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCB
qTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUWyV7
lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64OfPAeGZe6Drn
8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov
L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe6
45R88a7A3hfm5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczO
UYrHUDFu4Up+GC9pWbY9ZIEr44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5
O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOfMke6UiI0HTJ6CVanfCU2qT1L2sCC
bwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6mGu6uLftIdxf+u+yv
GPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxpmo/a
77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCC
hdiDyyJkvC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid3
92qgQmwLOM7XdVAyksLfKzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEpp
Ld6leNcG2mqeSz53OiATIgHQv2ieY2BrNU0LbbqhPcCT4H8js1WtciVORvnSFu+w
ZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6LqjviOvrv1vA+ACOzB2+htt
Qc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ
-----END CERTIFICATE-----
Loading

0 comments on commit b456b3a

Please sign in to comment.