summaryrefslogtreecommitdiff
path: root/python/openvino/demo/ip/intel_ai_ip/verilog/dla_pe_array.sv
diff options
context:
space:
mode:
Diffstat (limited to 'python/openvino/demo/ip/intel_ai_ip/verilog/dla_pe_array.sv')
-rw-r--r--python/openvino/demo/ip/intel_ai_ip/verilog/dla_pe_array.sv242
1 files changed, 242 insertions, 0 deletions
diff --git a/python/openvino/demo/ip/intel_ai_ip/verilog/dla_pe_array.sv b/python/openvino/demo/ip/intel_ai_ip/verilog/dla_pe_array.sv
new file mode 100644
index 0000000..dd88e9a
--- /dev/null
+++ b/python/openvino/demo/ip/intel_ai_ip/verilog/dla_pe_array.sv
@@ -0,0 +1,242 @@
+`pragma protect begin_protected
+`pragma protect version=1
+`pragma protect author="Intel Corporation"
+`pragma protect encrypt_agent="Quartus Prime Pro Software"
+`pragma protect encrypt_agent_info="17.1"
+
+`pragma protect key_keyowner="Intel Corporation"
+`pragma protect key_method="rsa"
+`pragma protect key_keyname="Intel-FPGA-Quartus-RSA-1"
+`pragma protect encoding=(enctype = "base64", line_length = 76, bytes = 256)
+`pragma protect key_block
+tEErGSDytGtjON5trsyxIdoikmoEIWCRXoND3+SBXsmgVBQ9ODbnzxDYxYHxOugIoSbmj91I8knM
++Yhf18BUozT26PwpWDnX8BCQ4sBswFB412giBjkh6/1TXYnUNQsz5A0uSC5Z529oGDmCXJqu3V63
+jFaLedE3qtu7uCtJuN+4A80YNzXF3hJXxKql5xUIB3C0uzOZ3fM4xA5ncYatZPzoYThKvTEj9ubB
+Xc9cKbprApEk60jDgbchlj2+luXRzM9YfEjkR8y42Pf6n0NGrLmiNKov+rM24am5OhwuJVJKgwfl
+Qmaf8mn724pAHa49NKLRkA3WEP50kpKSuYs/UA==
+
+`pragma protect data_method="aes128-cbc"
+`pragma protect encoding=(enctype = "base64", line_length = 76, bytes = 12544)
+`pragma protect data_block
+LI8v5VabY2H3LePAU7iWN2ZwZLOwu/Egck8dhvytM/h/LF9DvYFWDznz4oMyo8uP7aIVO+Ra4jLH
+6FwDT1SOu5idItUEMImVs+ucmpnYdj5wEoek4tM8zw6DaLANjyQF9Y729d+laOuY31W6ZO+cmYuy
+VF4pZfHngJ+4NWFoo/Bqa9il6OmcQicN4aRM7L2Co7KVKRrqiYKNmKYtUeNIzi+xbDZwPrmebwYC
+BBZ0Ry9tmr0OuVU9gdxvOrEcFKZByqZECH1X9loeKnEkDGI6N58/JTSNQmlvRO/8xwt08I8g0aqT
+idF2Lok3eIo1K/wse6PsWcyQI0V9/A86ArcX0HIIPikG0eQD1wmZeKi6JjbwKu2VO1gvKlAr/DCR
+1a1VzClzRT+f7Rh4fZx9uulPVs+gevtVoxbRz3/NgRlTLa1IXiu9S9iZWAbBUvev8hBMEACIdGu3
+QTdJtLsu3PKfsJCDRonwMVPgkn+8tWZjL/OVWYJP7hZSfSjE7m60xWLBKokiZVPXDG0fKBdDbbGr
+XhEwH35OfgofBDZY5eQ1NBVwerGFOaCChQRvmEa+QFwKSJDOo6rrP6wKo0BDfdsbI9en7SPE2bYO
+NMyorZrSK5JFfbnIZZAqwOzv5qJT7n+8kPMia/LUB76bDYg3WRukbF4cZn0bNAeVBnizi00JYciO
+18b19kOwI7ztXauuJTS4WHXYfUBGaINT5uf1Rrn+R/f+M8tdNDTVUst3Ze1Kx38xRlrI0GS6wDwS
+cBKakPE1PqWOwG9pv30sISuPPSShU3+3O0I3HRZAPRUI2hUyjDJ2TGk4Edr59x795QJrARwdk3Dy
+ZMQpa0ASjeLq6BS8HMnSelNRmaIfXf4AOqRuUdDGKR9RDk6CiTK1PYJdYBGXkU34a1XIIso1fstB
+U9NpPW4aDLbYaoWdhm6NCbM3Gfs20fLz2XZRoQCF90Z46lOG9q/c6tyvBlXFNHov9fwQFl23GpfX
+pFqPQOk5yr7Mbk4Bh1vWr8y1b7g/YvuVYOjyRiIVjYVGdxLoETWv5vDvjA1T+pRDKpOVkX5vI7v9
+u6gkrFyoBlgOeo9d7LoMyFPUOdIBGGlYfF0uiqlxvH4WF8o/rWaQBhSrg2NCL24MMTss0X1XhJbC
+OmkgORf8HXBzX/PRa03OMcKbxSHNp8lrkwmqpbItX2LB95KUD2gS/IGygcPQ7mLv2NQDcaM9WtD4
+haoapVAt26Xju3Wq4voH2Xt7sANXhUkO/uQ+uxPo20sDPYZoeWlnzjkc8neMwGMqMUlHUBy52Fmk
+uc0N3QzPZCHv3Stg5d2ymX+FRWJBjYFLqu0+t6OfgR1rzF5THwJ4Dte8DVdpfFHww41/Z+s0wlpU
+D5vnyopn7ucalWsMkYRjl8ehUrAeKqlhqlAUfD9niwJLLQh5l2+u55Ql+7UVctPvOc7zl9heCKPP
+e6X/+235lcvVO7uYQ592eiQo3a2tuHkybQ03OUw3waDBmuuLXAvFL0pq5XjzOkvL7lNMEvfQscnu
+4NJzpe8DNmMKYKM1N3CQ7jO6FAEvQkG4+B+BmQThLC07JPbgzw9nO0X85rwQlRTGhsl49HQMgArX
+MAV2poMKrqZ/zj3UxBFEFrpWqpeujip5FVMrVMztFZthtfvedk2eKBQLHzq9CEweRmRXUOHgvnXY
+4EcAa1I4SH6wq7wCwM3S71wnkmp8QPgZTsQ9QoSetFLZpR776ptAPYhLrDXTDAVLktJF7/UudoUK
+6x0GvThPqLxAep+n9BfSBFTqT8BvB05EMX3NAFhyeHuSguBKnZ6GBXC1NDprvFH+BuIht3B9G9CN
+fZep9IBU47era5lgIorxn0P6MfAfqu2vuogjFh8oi4HgA3TL+iL1cIP/JZIPd50WrEAf0IcyuAnl
+tr7y9FCzyFWu25axMER8ziKB/RbBfxe5vdngAUJwCdRk+FJr4hdlO2S7TDm54663YW++zH2wR7Xo
+5/mtAh5w4aM9rr4R9UtAHtwkwEY9XuaCxW+uvdMJAOD3mKpzCJTpVY2d+ApCyNg/CDTzc6GVjVjN
+hlriry2SbXq0iFXoWBpuF2fl4MFUgJMcof/obXaxJWl4oSolBuV0rklzeL4zwVtedUPmaKQ5aVxk
+GEH+AuGZyoNKBZkM6kzv0HTxbA+V9/YwikCtseFgm7+yHsuhXsubsfje9meWeVEjdGZfk65gLJXH
+qVcNzja9PKEIaTrhKsAQqakY/7kUoHeve20MeSCJK5Q4o+Cb7QgsU5WmItSWWW0PF2JeM9DGrP8D
+tvr2RtMIbfW4WgYSrRhSI45vOC9KjfnGnQZ/eel7PElmmzXGHTKIFh+93c0Cq1jVkUUDaCtTU9eG
+3JZlU585tclB7tbKFW2g6MVl7QdmprJPozdPykaR192ajxxWiM3SjYXoEfNaHmUQ4zBKrCzo5g6B
+KY2+4R0UlaOpc67K0It9yPOU585cts8l/wGqv7Qj5mkuG1PrfEabfbCU/0kzq3GdDyHmbeSAkx+5
+xoO4k+b73UIJfDBSQkwygfN6wMEQIHJqBS4GaVebwb3Fm5SUtOIs0BJIcnjUJD49Y8e16N58xAAY
+XMsbmUNBiukOJgpSatgobI2aVeP6PdL5M1/knHn3f24/KR6i60D0PYUdMVSGlDFLZolSavLDqsZ3
+kH9C045OTkfsUHTkN1Q4VSoRcOVPfhXfnXAiCHrMF56YVWEwf+r29qSycDgVI8toDfIzE2GyNuOx
+7mCzT0RuaaTaGLCYyoF9Vm3EvAq2MxLOYGSEDpEzIRPY7+FiTqAETNumrWoj07TXhbMe6uLAwlWR
+zpR8+0m2BGriXG2/6qQOpsXZr6F7+k+hNMpempACvmLJ4wQpwfVUVGpthYs6deZGH0gvV3IAly6Q
+Ah0t4PQUGOnFRR4wWUAP8ZK/MjkONx0RjKCKDPabMo3bOUbVkEBo4QYp2X9QB1TVFAklUBXV/AJo
+LOo8xr4lRCFXH5S6H9d3R1hZnARbZp76sowRbHWfZKkDIbkpOcj9CAN8/BmvILMVRyofoHCvLNQw
+Z+YgOT9Q42nHKS12CrsVSQQfoAkXMvTu7oRJ+5VZYyQVDhB/elkhsCicjuPFZ4vmhUmgBFbCg2Xt
+Os8GgkCHWZHFAjg35cQxpV4GVnGr6ji7u2FP8YBaDxgDDJXt2qbQIzFYB4+lAIzCT8wTDXThMTS1
+fqj/9qF5qyUy+jFAM1YuWZaxIv+OT/gBkm/ROfY9Eg4+IaN9dfnEf7UvqVR1SUsXv0xk8WN0jJW9
+wIAObli/GxsEHYvPyic484V8fdRCjap/W6fw9LQc7VhY0gvb7oXKgkVWauxMhoIgRUNveSjGurW2
+d/QqTsrU3NTU8FS25tflr1L3scDRfWz9Wkn74AC80boKzfSdPy9fVoxm44XrTizb1STpF2oUYgMp
+o8lZCq/EIcf0LpifanwkJZ7NfCXzKgSLCcu/QEt3scQaTGhNU3Q3G+PB236Gsf0KXknyEuM5UFm0
+gHfIxWNXOGvA+YhOb2yQnPIdZNSGfQaPoqYULgEOx+Ru+lKqYpvVj26o23InziUg1nlKbVDkH/rj
+hLpMhcer4U5gsiv6pT/3wJxgaSXGLk8V47n5rN9mmvaQXGAh6M0v6Tthj79GRFFsjgWKlcSEwWVo
+4ZvzRJA9CKqcYTtQcS9VnfNF0TwojNzWQ7KPY1Ft9FhH7zF89GJsVfTPCeEyElPTXm5QobWqx+xf
+5KZGtuUOQIPhdRfre5MGMQTYWBHCiRos+n3bkAyY2FvYmg1c7mVe5TTsQBpmzLmP2M25O0IwZr0w
+8LmUH8mAnAaAxLdj5JJiKDxqatOf4ILAEza+QcqtWmCBO0WRfXnB6/1D4o5fs2yQQdgszG/eAn1g
+EqiSPHFKtrTz+U9kqzdqDSlY41vsea2SrY/bS4y0xuxfnbfm+W5ek7fIm5feh78DqAGJzpCJsj3Z
+FJzhiGbnem55IlzM8c8tzNDSeVjYqTgcADnF6urwC7Cy4yilFGOMqZmElDfjp0qoWNDaX3fhN9nY
+l16SCCsPfrChegcBWldScYHBVpuVGm2k3KVlKwmEchHAoue72u4TtzVbWInLdUwlQiq4Qj44eva3
+jIpI+602d4g33PRgwETaRu5+5IOaYQUQxwIoanWtLDjEu0xl+PpqTT6xI/EupAAr8ggkaHj3RCJZ
+0C6dFoBMQv+SUhOYGNmAxW1YT2ebZdjDcXgFKKia1a+pzLteoeRMWZisiHA4xDX2ra6rBy4ISKi6
+V+MSDclHeYtlR1QLf+dqmqvzw4RGvclD2/ATeLAZ3FdrFk+fvGdqHDx5ufV2mGKtRA3nA5wCo0KN
+gE1hbvYolS90UYVgcA88n0JDzpIdWomJArUGO2uD8YZytkzJs4L/9UdV7cEytiGVMbhBbIcrvJkP
+qJnfN3v4w1ns5JdNFM4imtufWcR/oBIs4NeYCyfxZbc0Qyq25VjT6TXgtIHOxhv5f/rIVHHsmTNG
+yrG4funJuVMq8oIDorlIhOH+UCbWiRcUSk/SZ8NuaBfUZYW/9LsSn20KDisw5kt/FrZHy/3WWvRz
+c2rECZlRw963mbyRPKx8oij3wZvR05PSxaEInJB+JC12oo0pqD9aP51MabaTHfDEZoWKqkIEDh/v
+aqMtYK9brUFpr9Mq+GMsQ6/dRQ3WcPSEyd0VFflZ0E8t0IuavmqYLL7rubRwms6vPZC8w1EAYpMV
+iriJ2dXgK8I5Z8P+zQ3y0K/pkEEJCztAvdg0VTLwxJ4GgLWDyQw8kSd05wkfuwUrACp/CktURBqX
+Uvf+0lF4C76swdTeBlbw8PxQRSh8rMojx8x3J4JQVfcfvAWARjGvTRDFxslMgFWQ5ZiCOjW526IF
+wUfmxyt2uM1gJ1/tfedS5q/g9loSymSIR21OJR99p1jLq/3x5U4k/MGOcSfcPXdgzdE/BwU2YXrr
+j73MePHVb3rABU670GZnfDq6X8vz2QUknVax8uuXUqw/ViclvtMTxCXduw/LVppXYquJFfAJKJS9
+pveiGvdkylq5SuhGI4HLHe5fN/puhmdClzY+m0ynufVtGrHTFV0UXjSnLf3txYNqiDpIYtQTUcH1
+feffYKSy8HysOOfqajEqQuhcua/QfSeGKeiC/1fKWz11Hv8MjVW3wrgUqJfRMci++CyaurY9qXtu
+dtxPOPC8wituJsywkxCaZ+HZxPdj/X+aaijcrfOdS2DLmnG+SINEHkct+Z7mjydCVqbxmwI6qiRp
+nPdGa8hwuT5FxCcrChk9awl8CjXyFMqrS5sHQFjXUqnDhah69rKPcNIQXHtfTVKbc2/adFw+MWMW
+EWeTVAuRoWwql0kvsnX1yT5Hj1wOR1wV5QJoVw0rDHImyFSENktk4KvLnvP0R8LsCd3wtF1Eo3Dq
+WCXzcsCMLadj4GadZHs2U+m8xqThxVtoIbOBkiUvgFdiWyd2lFCLTP3oLxSdyPBBfnQH5PK6LdZR
+51Mt2qAwumaNhI3eOGsQ10XJZCWEAK68mTSMA2n61X8VYUMg37ZprTkPbzi8ZKiaQkc9WK14/Nol
+8VUO6PylppzZ3hNrs6mR5+CrHnpgm1ZsRw00QzleZwlhWO1qf2xwdwq1Ex/9YIunwjVyGBlrq4Kv
+9S6jNQxL9jN0Y6BUHqj8UMWqhhUNjnZYy/zMBrOz3T4khjbcaz/WJ0Va8sJdaqX0jRk+s0Q59v96
+aKfNzQBDi9pUD9WV9MmqAZYvLNVSc2nH+TclVsP+mBCgdroCIj8WacDU9S95MbxeCH0czlAptBhU
+IFOlhtJpbSEfWiGuf38fNWrO5Apui4r+IJXBvgVRo0dbc9tc5MBhSGIfxa/j1AfbPyqBnx8IaJKb
+/7/u/3stlT8JyWCy0CAZDWwjM/KNFyG5cuKbcmEHoqgjjK3bgi5+/2NQwnmejdLHCnuvHGU6YUNH
+eB7EuKaiMMDIGmR3FCTIufNn1fgekBxUrkHiyUUYguuls1wRFVWWqNI7DVed6aS0jzYmfPoAhcE1
+KzqVu7Mh/bgeILVdwIrixJsd3WrP/lOQymmr3snUKlvzTsFqppPz6mUrD9zcWv4uliKeKD4jmC63
+jJokeykDoR61ItRq7y4SI8l1KYGRZmRfHGE12dNtpGsw7fM/hC/0QxpMam4R7LNwPWYIGhZcQ1N5
+ji1FXB5k7AKsuRfQhZoLtu4NCaD1TvCJ82hzTcKuSQwbMd/hzFf2AGwuNgywIW3xtlwg4XJUiwfP
+oGX7yX0Ph990WJhJBfou+lH7GV257axGVb3JGqIYyiRPJq3Si8zKlcrWWOyx1OSI/mMQTJu74BuU
+vIwsxUx2iEj/mMJGReEKHihFk2z+huT/O2nvLTyrnH/DF+vw9/xNxWqQ9/3fCb+9N9jK+VprhLCi
+ksH86r28Dhj8Vvld9yFYIqX37RIk2AS0nf8A7wKwHhuf4Vj7jM9Vp1rCXKGNwCIt+234WwKg7ncu
+ZLO8N83U91n7z3IHtniYVyLEVe2fAMiXR/ASSd9uqF/x6Yy+VYx1m3caMt0/kglbwP1w/xt3vvu6
+jJkjZxlpcktm+/FOXEyZlEokgnFC8cGjp2PJlPLmkO2qfAqg7Dfbg3+qRSaNNAo4OqTw+fgEjylR
+0hfQ+wliE3jLwtpfIczY1yCqtUE2bL7Vnvfc7gpS/oht4V+C7rJKFsmx7uCzChkwdu71yjFXEZdd
+L2j8MwANqviBCeyXQ+4BKT6ZM3AbbyxI7JDnIszCRljtG+j0MbYeRB8PCDc42VT8rE54wnGmYBpO
+b8K4T37h1Jpmscxbtu+XuNCOjBn2lPQBWyWrAK669HcgU4JwgHc3pydMxsGYTYYxjrQ5oXmCKonW
+ma5R78fHZBwdTfEO/8m1Gk+Nqh7Zk4r2Tp7jbjzb+OKYBnrSZACBTTzDB7Y1V2u/hUPuGsKCoUSt
+uzuzyrADnY6nk4Dkxo/ftsJiPd47jeBzej8dYwXX6OTmy9L2ey/Mr/wdUDnwrplTdi/5LEB5M6Hb
+dJGV3ivIv1wq10mNuMlo3dAVT1u1FgN7jRK+hAoXhq78e0S0aXMTE8gs3fLXv97Lw/RYHLBpGUgM
+vD0BU7TwwdAXvAo3dNfXYckjSVLp7yuyVlWUpPGjQczLl7KXf3JLX3cIU6pbYni4OrYdy2K281ng
+7G9NRWtpfgY6vNoFCcC4FDCkX0Sc7+I0TTDpxWSUN9JMEd5XWP1Lthu7QH0ESGwfk7kBixc+iCBI
+zvnt+zZLQJEWobu1g35H/LrQYCvpArGrswAHkgIeSeYJfDIJlct1G38pLMqmcou7SCHHSQjC9aHL
+npapGlFvDCQw6F69qX/6od1B2Gd12kEytvSpC8S6XZI4Rvnyo4ZkcnHkKSiKpmedslgcZTdDAgKz
+Q+H8t8YvA90xPF3C+EZtGEsUpUrLjHQ278ijjnF5bRdKej/LySOzGZGCtgYJSHcmNIIJ2LL5Zclw
+t8M3OGyDimny0SZ8TgUgiBpNHfrWXX+uymlrsq/u1D5KtEl+hQ++pjzjCNclltrYVU3iMZQZ5kFE
+3L92/QySiHYoGmcAm0Lv3FzdhW8mrWiy3sxL15gw2dT2swzQXDDSjLqBtvILH1miwEV3QIPQ9mOK
+b5ZhrSXW8HrPv8YLlf8yUc8HwcCMiw85zkzyPHEpEUK+3azW1JsUQLWH17Zw2zkLeTDKYiXMT4He
+JEjYYuP8dSYHxyGvPyqD6U4A+wyXIAtJ95jSLYT/TgBeLstz+C2gUUMut8YAYg9dQSvHfMpj5D4C
+UGMxDV3gAtc4ons5nCVlDYgiqR6zLk74PRgke74s9Ndf8fZ8jjy5xpzjYBPwGGnbUHwdOHIvSXp6
+QnGSjGWpkmHEnB3R18WCsHbMXP/SBYrZGJts19mvo/0MrxfMxSCTrnwSg2oG17nIrZrxlTAu6my1
+BjDGCbhk/oNoRr0eoMm2l7okUiJ/qj8iOATc/Xb/rgMj2GylJYS4dO8vH6PY2BIGSkKViBawRhYz
+4l7IlctDTpR8Xl2wS+eabmjvADxQKbEF+t56dAvgCOBq+cRBiH+iDRcWGvCXUcOS7JA4FXTwneuf
+1DKato0PAQl25Xp2g3jcWUGwKSqRPTLyVlLAnJwZVwBzJTGbetAIqqcYUBtE5HhbpxNhOtaqucBJ
+MA4XY8cDQOsUPuwcY+L2CRvSsjFJr9YHRLhvW5fevmddFlYrGGvj9RxYdFHIy7MP0BAP4LRbdWOy
+7nriwbXtIJB7j9WSxUenoPMg/iG6b7kXqK1rCsJwaBz8O6pWL94GXtC61A7rFDmoPXnMAcju8YM2
+ILsNC9mtncz2wbUcxfwJym4wm9Mob7gq3bE10CUbCQ8Y4vpZ4XP/50QhEUhADhO5xMXyLJbFMKFe
+knBEX/zzbKsNfdmrbcXyBSbp5Ktk3k11Z6DB6XXeoHHiOmYDE1MiB/A6pbST8V8WYOhjJM7GzkT3
+LReqYpQCCVxS+aB/x2nHuUG1WgkfQXKo6CDzjWCFVtkP/GdgdZf9gJkTtwfUPSjPDvH/7s+qrDqP
+o0890K1//nHzxGMpcua4cc15nAS3MZUTsFmHSA5WLLp3ZAkE/IwOOBqrtBnGCbxGPze0/w7dxFoE
+mN5NNE/8DCdXSrp3e3BDGJsRRdKxPKYBKla4uFHVbD7lpiBpF7UvYY4T8i9vJt0/AJkP3b2pniR1
+Qmt6iA+WyU2GJ+Kz+14hV6xJPYOccVsFakKQq+q6waBsV1QOqjsSwYvZKuN31rSDpu6k9O4+mIqh
+NB3HQtTAIfUMtmGOm3bK9vCDYfJ+u3tSr++/j5c/44OY3rXTUDSRSnyFqvKQRJnI036LZY6DdHyF
+iAeXiF8wpX9tvNvR2tjH53uk877iivcdXPB5rF6YSUvhrlvPyrFMSAnwushzMkOYq5re4ws+un1P
+LCOp5MJitVPanMz/dUw2UoJplqcqptmpsY8sZouhGMf+B7AcereW0BQGuh4M856wU+tMDzGgzLCi
+6e0HXVK11mLaPngoVsA2bT0TJFU4LG3Ts8k5mR8mPx88gRqCv9e+7vFtulIXP6TAHEJhgFrbnLOR
+tliKTwnBIulE/DLgreLktDlayOHsd7bJ1UX+ltsxMWoW9ETJ9hL+ZednlO2VF3F3cSRh92j6Zy8E
+fUwywL4OdsL4HQ2rzmd13mRrGCn/rQUF9hYaY0WCPQ4xqv6egsdkKmL4taANc3Nfis0Cm/tGBxpR
+UI+CMLXr0ED5Ytv9aP8iTCjO4COhA6TxcrK/sBTDBhkh71HN80abMPgA0e4hb0Z6f6IfTGvcFaxt
+uQDH8iMA6yZ8aZGjrWYCmK1JeIV4LZKbzecaiYiGHFo4+q0Z6zPMS4kaKU/42BmASScPTxUK1BBi
+rTvlq1NSlkBiAdZr2l7jXIQZhMuXozbXrMtZ7rTM3RZTS+AtXmTxanig7J30KhVnJDMnARxXpS33
+2lKZuZi0wUMCYlI9Q0P4KbkG/3clzyCmtrEhIBAEI6yYm/12fZKXV5kftdYPzUza8hdf1GYFNk5D
+hjTCZOPh5i+4AzDkQi8zUKax5OIOg9t6ubyeFlXWzRNkfiZWGhM7tEHYvMFZxB8UD0Sk2ivRIaxC
+llCJ6ARyky8tpvCrX0wLOV7YXVQP1okzXHv2w5npqcbXg4dbKMekgTFU1exd39998L6v8fPIiX6R
+tjerZflRaYDgMmOjV2h5eeGKOG+Sws2a0gq+gS8bvHVMrn/JTzkaxPTAnkPU9tYiOH9z7HX1VraR
+J5SmHCytYeQbs/5NJo8M/DC8vZ6Wb9kz0vNVXfHRCFySmXQCUP8TJlOGFsW5eiG4qMyiem2Ht7b8
+Qa8vljcpCfKWaz3mUYkJSvkkC3mSXtcARDWWnNSGgIT9aeAHFbynG5TMraLACvVLBOTXVvOeAFSX
+mVdZau3U9ve/l5WGY5L6QnldDxxInRU8kUNoDWSG09WTqKC8iRoo2d4t1XlxPjQ0YdchXyV+3WPk
+WCXkKXGliU2HGs5ZrAPJT0MftojGPs++jo2PBTOH+4OVPRctH3dOVRyAHPJg5tGdJALRCUvA7ApT
+YtOT/lbD7DG3RtuDv/eZQ+TZ0i6ksu6HvLlnKpklUdZz6AY3c9GXrNCROh/WVp8LIvOr2CFGrwxs
+bvOyzDZ2OuP1BhBhH5dNnhaTkJZ0506zoJW3u2JFY4JJA/sVLNbL1z6jQp60PeQSkKkVLHRJLmtn
+chzKFwPggVhRH4zLN+PlnWbV4nBzoY0vEeyx6g0CFJXprlfAjwPuXjYiSBCQ0G9Bvgues+aZB4Ik
+QEsPS4zWyL73LtC+OLubpyzBZ0jsuM8liGcPLEwG77hFXm4wJGQwRrIGXWU/M9uQRcb4lOC133e0
+hXq3zISKi/ToCgHrzpnWOJetnEx84kqbX2ozyPXEPWzs9weXvxtU/d07h/7x2rdcbHyb1xDqPgT+
+5i++mdrO1fQwOt1XdwCoFNCCXvRqBNhAZe4jfC8Z91iDElehWxcK1DpPkMeCYhtGEjvdFyFANWRa
+p/JsfIPnBM8iIIu2ITL9tLCNEllKMDAPFy7PX9aFTXA/7hljm8Re26w/szjJ9TO3yVlfCA21kVb+
+ddhtkznzCVl1JGojP8d7vagxvNQalmxIpGi2fOqJT10nNkL7bwP+CFC8fk75g/1SrWQuhgxmEsAP
+KFbmbh3J3mbyvidDjV0iiy75WBUPxmZOnu9bTKzfB8rrq8W44QUNYfqMh4MvZvano7c1yPjjUGSi
+wLeI45SUIvEyrJmOzUGuKqgJ3/1dbtESJ0KhxUExbhYStgkoghu7Z+RzggdNhA/c6a8+rqdu02w9
+xFtBD6ISuN+3NQVQuXyIHiGXe81klGVMck2zgjuIhpRqKU2MEnS0efPQE5HPIOAMv9yNIArNu94D
+Zp7lPRHG8/m1sJfvG2v9Ek6vv8tTF1bLEMxG8gkQ0ruN3TVRyrxmL3sAOcy7WNSNKylopRnAOAdD
+OFHWyinXRCMowf5G+IBL9a+a07+Z/RkbuPBH4CJ3mFWOPCg5nmIp4rKuJ0hKCUh9W5gGiZa3+n0s
+76HxjqSp6LMCCb7nAqDddI0C8SsfXoKIjmwalkP1CbAGlBMA9SfZ8SMryazS7EDksvUHtaxr/ziX
+7O4U9fBAA5ejf62NIeDBtk/aPKAuY8lNBi/x6G8UqwLi5ZJMhDz2ERU+1oYcA0Gjp+qyRvO4Rqwk
+Ex7qJoXcuc5fDYcbftW9+G+lzHkaPLKaRUNxnZE4STLqXOkrO37fcXQWjbbWlEsxy+TUbrmeUU6+
+Y4t/TKRaOKuqmQuTSPIZQMGI/98djoV9bmMKhG7zP0zsFN0KXskcgg/lEl69oqO+imaU7rxcNBPV
+NdDRcPVVKnMFCpH7XbSpP7f2fRaPOYcul14eHGC/+FVfAWfOC7OHZn57AWiUgbOy1EPrfl4h1uct
+ZkWdmr7Tpn8Pvarxg/PLkvayOUs5P+nS1UAcEE5ZyhJRnBvTVjXRoVJGZRt7j7c866oS/2Bztvta
+BUwpHNb2j8JnG6K9TorYl4alakmZtmRLvNFfhO8GyC/O5O1LeuCIuNW5GqzRje5siuTHDSXiLcIZ
+mYW93YPX3XcMbHSoae8axq+yk5Tf9qtEVCSZAfYZhb62iDb7eCNIY5yHGX8nKRFq10ELRoyx6Ax0
+pHlqNDx9aigPIwYsO63L0YDZVfYBylG/+4Jw+VHON3ssr3CHRthqaI5KWk9tJmhG8yjq0ATIyJNS
+uAWHDczzPcFll+wa6zvo0W0bBRBtn3rFtykEKkzFczE1vXFR5yC4NoqUXuplJmHMg98+9dmmHzWz
+6IRLsPmkWetxnOri5CKXup3RhaJbJb6kFTDEpT8WvGwluDcWrMVWBNayN/8C/g1sIq/3q5KSo3Hn
+zqKKnpygmKb5kbTm6kmc4ihJ8Z4bDUH4bzLowwr9a0Zg2RB1HRVBrRQkZNAyszZ53PQm4pfkdufx
+m722TYc6XXM8bjXSECxbvt6A+BCW9EafA6aS/IrUVi38dHH2Btnh6g5M64lQwd4rfG5Z+U8iCkTc
+NskKbugNTrzz7Fvxu0R1V0x8DnVOF28z9UZ6sKvrtRf+a02UoXFweMQfbTje8nj9B+RaiqfsZ9pp
+JYinQPqB6i57C/IVd8aHyeCiA5RfPR6Il8GBKsSdMHmL1jrWCU36Dkaa0zr2kZRCOJaDqTPFFIog
+vqc2amf++/niTovyK3r8LCMfUEU6c9GtOZQcOZa4fTs11nkZYdl2/bwsimo0BzQ0/4HUqnu8A8OG
+UVsyI3bHfzr3qFpFSt9qjmqmewUyVfFyl4suJFt9ltiTXkFMYWCe4kSn0Y7xxZPGttfsOPitY9fQ
+5W/z2sitaf9AMMJYrfwgdw+qBjVFjON0FTH39lmFh0jxbWlw6fKMsR/RClbJDXzwCcvoHkS7Z8KM
+n6GMrgqLPwHDq0km3fLBXNhpBW7mLK/OUUL1ikjWeMsKkXZqTfe1M9csVpPlEcki9l933rO85CJF
+7R8C7fqLHdx+Nn2UJqDQkCYl4xQK4bkUSGI8jJJcseb8l0Sqw/B1o5lwWF2qymwhBy4YVb3he959
+vJOoar9c0rtIoyar6eJUogyE6vBj3sJWjBOymxq1r0uTmAKdA+D7VFvXMwtZmyhq36nkuawFwPNB
+N6GfyD1k/23FeKanGPTf9FwVC467k3eUqHQeU77/Ej1fljMhsUXbw0L2kbO3G+AyTpA9Mp2eyE9k
+i2rcl3UT5MbPWNlGWxqgU+SRDcQhqkaGV+Ldp4wghEAx0HAcNPJU6fjtVisTBZ7CDrV4/HYjBAnu
+S7YgtyChLEimFy9vuIeQUi0EO02hMXla6Dhg8IFZ8XDsynHMZQHaG1iTkIjWHL6ufnc18ZRpYhlG
+IU9sZjb3JvlMoQAZ6oQ0pRnQQ+pMWNw4zPDrK7f+fwwKi+46l6JTQJsd7Pphz2MDcim4Zalxn1M/
+xnXnOdgOgfMPQfWd5a9wQ2c6TO+Ctk0Gs75cGXXsbWUvRpTEl6w5LejZ8ZzhS0qZSagCjAqCy2b3
+xaBl0bPWBkGgx3RWtyeuYhDfBHAOd1jz4QaSY6EHL8JL3vKTsvyQjxatYJuV+4ia+jSye3w6A5D2
+cwnphgDaICFd1tt1Jc8uB7Ic4hkxInVq2Hy6Lkt/n7NVypmju3B6kYZHOXEEMLcV/BpRGEMiMW6V
+CaKCTDV38t11evcCA5gpPfHV9bLmBwtx3Nibk8S5qo5le2Zfa0362oRPKybwQc/fgGz5cDXVgvVh
+50JI31v8yTvliGOsxIMqW4O5ppM0m6l0cQOhQI4b5Soz/XwF7sYyHBA4T0oUswrAsXiRwihP33LW
+d0ykHNvlM/Sfh6vrp6hD8jhfP+aqoEkRkwHuF907Zrl9aXarkJPVe8tSQyT+Xn3CUYunF+3qaHxk
+SIB8QMvqI+XAu3CXH4LzozORiJLWlWoLpFDIl3kqbjwCgtIBb0eGTGcNUjEOMe+n0afrKgJ+X7QE
+uxGpFwHj4xFgX+mKYO0ukXGdEWt84lqnhZBR0zPfKLw6S/eLZciGktFDu1iMa5c4WKPEu9I3Weak
+PAVH3EArde1AAo/lS6155fAzEXhnH7AoJw9S6CPVJKzmu7/RUhI7t1l7Wr4RB6QoboMeuvTFOLU5
+YQFvyUzIVslRpmIhwvGa4muDjxn5YrZhrSJ2pS7AW0LSxrL4sKrzrojliOchpUOjWZDvpyF2D8HS
+8H98I2SMpZ+69+02uqCa8kbT8iqHdEH29dg4nCA/fYtBeXh26+bcNVUTitT2HERMG8nFvBffQ4eY
+xF+lBSoT7TtPTAdY4WBFpP4rTpXZzlSdn8QFjUVYoCsOX0BGohWZLOLORbiR42nuJr/pNliNA5Ve
+E5aWub5luVg66i6TE0AeXqE9/UA1tutGDgmYlEywq6V506mdHr8Ez6A1m0jFcycyFwI6icFLM9ej
+xUgcHysPy2/csA5rcD5w1F8NBfl7pYClEAAMx9JzVtLKMeQOKddYmRK8PzSOUeKl1PjQTV40op1/
+zEnw/VA2klkEV4R/1BFtIDCzKoPPPvf4ZL1DEIvBBio9hc0zYNBMTIPl8y9exFf91GMpTkKIqoi8
+V2eb4s5UOibTkZIsJXCHi/k3RCCCSsxg+v8gmkYuqRm+JxTDiBGzdAqdPGdszSZXLMaLtCVE1gIt
+G+Cgar2kgAJIGAwSX/JNodzX/RPLP7+z5iVH64iHqrIYe6DDCnfc15ab7bxmaWI6KhJbMBrK1nf9
+fB331mE72wYE4+aOfEHs0d5wLyy3jYAd+TTKJgmniyfSZCO9ur5bVVgsBIZ8IQGEcdtyP38RjLU1
+A9oC8SM42ojazKb7Nq04hR0dSm5xlSFY6/wl0BH6ozi3D3Nozp7Uasvetx6Ksebjizs2NbJCYp0q
+xIMm3FsCQARD9ZK2kCMemmr3Bt2Q0nzUuR7hRxU9iznKu02rjjM2SzeqihNluZw2SicWG5LAaNNB
+8+xRohXaTrNyC9twifE68dAjF9Lf4fKak2QmJ4JtVKv85JonC+odDmNeDx0tZ1pU/gvcVxEAW6Wz
+cIypAtCcIOjOOJMbK3U9YNeMiRoIN5FQGJs8qLzwFSD2WS0bua9pfYLDqHh0JtYoWKlozfPLC01H
+HzwvFtaW+7wl5NH38Hz+IKWtHH5YYNt5FzL2RpdEBYrb+4cEp0Qa92ySR1fP2DScdwvPLpQnps9E
+OlhiPOYlYVCCV2hhHxM+zfXD73ZmAoadK0vP3Qw6YlGAEwA1dIWp4I4SZGcwRUwWt/TFFdf+T25i
+o2238+1u+UYOrCfwB62HQUxU3z5dNHlaw2tHCi6UzX0uGAhnbgEikY7KdeX1zraPyFeNfpyjFOA7
+4/H5frL7EffEqcf0Qvc4abc1bNLZIqmLkTJObrqfr5kz8Qr8jmjiBlBCeDJ8sSK1JbRNdHm8iWRI
+4zJ7e4JdZNv93GLOS1EuUrnJZk1EfLtM7sZ5GOt7JEcDludgZOqGyRdaGJIrsoOWp1BKdLRwTlTR
+p2nZvwQqBsEY7QGF1LLY6vvBHw+vgwKvBzFL4P4Ek6EBhJNZ/k4JQEHHx0j/rKpJ9yEkthCr6IIU
+qCEsMhPKCPAVmVe1OC1kMWMxG3NNDkvFSi1ODHc21lVkF3xtZZE/z6BtTRQcmL7RhyC2a/IWtOdi
+f/Gw0mZgLTIwXAOAACKlcOglnj/xwmnupIrCRoiUOTQs1zvOKA3iS4qw879u+h3OvZ9eXXFwwGR0
+6qpZlG7h2ByKqdZLFIAfgLbLYZ6YYS06ZNqGZ5VDidg6euGn7AHW+I1wM4rpFfKM1gbyWk4U7zy9
+x6rYfkLWmai1F66JVu4T5zQp5fORDcGXof9OWrEPIRC4Sxz+CNNq3d3+krnT0IZYLx13svX/TSba
+JX+Kc0U/prM1dRD+IaMZJKFj/OuQFWAPosRJ+THkGxAHeZfp8VMY4fVlSR1OVqo49y4ivQMYdQCz
+Y6etWY4gKxLS4oUZtdnURPedjlonXKOX9n5pouAIrd+G+nGSIeOkw6jhIrhaHgou8r1G6kcrGQDF
+xmlnc9tRxxUmFobKDsVyBH+MQlVWtiWapBlp3KuapcPu5uYvpNZUSQTfFgeglxtIFzSKmHoXjL3+
+Qr1r6xdOn+TxZfNmJ6MaQawglWQ2o9lZiW0FbF9INJ+dUhgTbGiabQD+jY3ui3VoZ3Syly0g94a+
+RdVaP9sbIt/M0w4YtE/qDVRaVsAGR/4RiUvPA2UkFNZkXBKqauBN3nyNM/ouDdpJ2Zd6EloI6zLe
+As1nnOGpZ9ToGXZcr0kuDlTrQQFpl9jR2EvhH44Dmuz2Cs1MBkBBK+ufdb+MXun1ImHBiJt8BOJL
+BmcHDPChell47jHc0jSAXzuUB52xwAA+nIOFnmNDBpOrzluSsA97ts54aXyJT3Qhdo8HztUgOPZQ
+NTUWAQqn0JxZTMM//wmfnCjF7gerPVx8dzHcnP2mbfduavg/Sy19XbD1WRVSnQWcMAmqgu3vkSfw
+SBborbLfqyLTCC99ctv36WX4o72oBAo+cOC/yNhFgetka740k4iE2aTNPKM+J8TJE65FlJ19hILq
+wUy/GKblZq6G8QXTpIA/TU8eIB/nqBRjiG+bNGWdLAlW2RFmmbGIGXtN/S/TTIjTxEjZXvzYsRwd
+7AMRtK+4jzgA1UhvWBTQNE34xIIvGc2B9LjKdSq4v/oWtmRHX2kE9Nql6lF01LwQDEZEv0fO1Xv8
+5O8CdB0XMzgOaup9PyfkAo+Fpt8g2Sy+sPbFJ3Rp5tvbwV6H5Mgl0PcW4Gfj3jwY/tvcvs99rw1p
+ywWaQ6lMAtasEW5eboXtKnjbkM+V1MURaM9sRH4qF3VegWCNRMK5sqtJSgepnI/CO1FzSvE5ZSkN
+x/oZUzk0LsYzbxiI3cPEMhmX5sASVKfNtUEU2jJcxAE4lDQs73TJogImF93SFf9p9QU6GN5h9xog
+x47FSml6i1RHLb8TB2qLOSph3vLPTeCcZJ5Ur8vxT5HrGfIT3xWs6A1sT7BrPHRETq2XV5JnVblD
+1UUvP1AS7CyqD1J1d6450QKQk55GfzfldTW4KyPcaSXjzlKQUaT0IaaB8pRhmPmjEH2mZ8VcKKpu
+2kDEHr3a2EoaPjNjhsIYkTBacQvbxQkU5+tsXFt27ve1mqtHkN1lnBBW0AKqhg3JXCFRZhKVWtAg
+tYMGoNRDRky+HBFo+vMpSQuKroGIiFVH5GSJ4zH/eK95SB+bm9fzFiR5+p8aIZD1Ut/9o3Mf+Kku
+C6kgzQ==
+`pragma protect end_protected