[reportlab-users] Processor for kugar definitions

Dick Kniep reportlab-users@reportlab.com
Mon, 19 Jan 2004 20:25:13 +0100


--Boundary-00=_Z8CDAPrdPFMr+QM
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hi Andy,

> Unfortunately their site has no screenshots, and less info
> than you have given me below...

OK I'll send some screenshots in a HTML page

>
> Thanks for the layout file.  After I commented out the DTD declaration,
> it now gets most of the way on my (Windows) machine then gives
> a traceback; I tried to debug this but am confused:

Yep, I forgot to mention that the DTD must be found, or removed from the 
declaration.

>
> - Andy
>
> C:\code\reportlab\demos\kugar>GenXMLReport.py
> * * * Bouwen RepHdrdefinities
> * * * Bouwen RepPagdefinities
> Detaillvl 0 is arraynr 0
> Detaillvl 1 is arraynr 1
> Detaillvl 2 is arraynr 2
> * * * Bouwen DetailFooterdefinities
> * * * Bouwen PageFooterdefinities
> * * * Bouwen RepFooterdefinities
> Detaillvl 0 is arraynr 0
> ProcessRow
> ProcessTable
> -------------------------------------
> SingleRow --------------------------------
> --
> Traceback (most recent call last):
>   File "C:\code\reportlab\demos\kugar\GenXMLReport.py", line 841, in ?
>     p.Row({"Naam1":"dddddd", "Naam2":"eeeeeeee","Postbus":"Postbus
> 900","Postcod
> e":"1213 DS","Woonplaats":"Vlaardingen"},lvl=0)
>   File "C:\code\reportlab\demos\kugar\GenXMLReport.py", line 264, in Row
>     Rh, result = self.det.ProcessRow(data, lvl)
>   File "C:\code\reportlab\demos\kugar\GenXMLReport.py", line 691, in
> ProcessRow
>     return self.__ProcessTableInput(data, lvlidx)
>   File "C:\code\reportlab\demos\kugar\GenXMLReport.py", line 698, in
> __ProcessTa
> bleInput
>     Rh, t = self.__SingleRow(data, lvlidx)
>   File "C:\code\reportlab\demos\kugar\GenXMLReport.py", line 734, in
> __SingleRow
>
>     self.DetDefs[lvlidx][n].CalcResult[m] =
> self.Calculations[self.DetDefs[lvlid
> x][n].CalcType[m]](self.DetDefs[lvlidx][n].CalcResult[m], float(value))
> TypeError: tuple indices must be integers

This is weird. I used the definition to test and develop the whole thing, so 
it should work. And yes, it was pretty much hell to get all indices correct.  
But I am a little suspiscious about your line numbers. The crash occurs in 
line 734, but that line is in my version here 786, so possibly the source is 
corrupted?

I send a new version, with which you can experiment a little further. 

Good luck


--Boundary-00=_Z8CDAPrdPFMr+QM
Content-Type: application/x-zip;
  name="GenXMLReport.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="GenXMLReport.zip"

UEsDBBQAAAAIAGOhMzCMIbzNeCYAAAOhAAAPABUAR2VuWE1MUmVwb3J0LnB5VVQJAAPKKwxAaCgM
QFV4BAD0AfQB1Dxrc9s4kt+vav4DRtkpSRualuQ8Jq4oVX4muvGrbGVin86lhUVI4pgieSRlWzs1
/3278SBBEJScTHZrjnFkkugXGo1GdwPyi63vef3ww3+9IGd0wXaJvD6y8Pr05JLFUZK58YoDXCyT
OEolDACwhGaMXBwek2iZxcuMLFM/nBGBFNA78uhnc+KxqR/6mR+FJKP3LCTTJFpweqXrl+WMJvia
N+0ts3mUSGkO/ck9+SX0WZy3HyQMeHsCoNfp7Gz3ft7uvOFtlwdXW4NDifu3AQCBrHlPnAfSdfk/
gdd5u915Rzrvdns7uztviIe8jp5i8jfBJ4pXiT+bZ0iuNWkjTo+3nPgTFk6kMt6vomVCAvHqA7Z/
7+FBpZGnReB60cJlT5kLCvBYQvwF9otc0aeeBUo1XyQsy1YXiR9mJtTh+elgEQdswcKM8lGSOH7p
rYGmgI5OL4Y347O906Ori72DIwUVpQogY4s4pAuHpKsU7h2SsEX0wBwymS8izyFxFLOc+IKCvUjE
aRBFiWrIVjHLSf5dvU2zBO1Nvk7jwM8csoxjluMlyhTdOKBAZJkT2acpO4wmQxAPWkCeIb0L2FW2
CuD+giZ0ltB47pCrmE5YIpvryYJOJpmkVZGzAA/8OzdFHrkcM5ZdUdQ0Z301Zyxzcvb8nZWKQo/p
jKX+P1kKCo2CKElJFTwJxpMonPq5pmBG0mWQXQDuFeDaxVzCnM2lnCxqdA5PsUN+i/zQToWFy0VO
Zbg3Pjk6Hjp4c3B0Njy65LeXg4+fhoAuoc7BILw70DznNDjHnnEHJEzkyT0EHQ/9RUnP8HMcJQtU
BemTVnPvVdNp7r+Gj5OjITDiNx/3TuD30fXRwefh4NcjuN/r4EcXP3r4sYMfiLX3Bj/e4sfP+PEO
ySHwfpd/8FtE2UeUfc4NUEAM3ac195HCPlLYRwoHr5HpwfnpabeDd4cn+Hl8fjI45wIefuSSDvf2
T84Hh3B3drH38ehq8D9HzbboJPxcnA/OhlcHp9DP3s/uzivV+zA7iMIHlqQ4h/vk9ybqKCVn7JFc
RgsaNnfFmy3x9IfA++Xzx71LQfIasN51e24HXl8eXZzs7RfvX7977fbK4DcoQLfTqcBjQ7f37g1v
QNH2Dobnl0ilRHVbZ52D3RhgNzrYjSC4dzL4eHYKBtQfKZMqLEoZ1K2AfUFq3ZbutcTPkKUZTA4Q
AZw9/m8+sMDDEb+PYnnbAB/acM6ikLXN4SY5ClrGnDtovJvMk+YmDDQjj2bLBXAStxtR0Ogydp9m
AiV72oyCpg0zkiU+uxe3TadXA38PinoQvc9YELCk1Pd2oTGYjxRVNgK0Ube386q34wgtcOkIEgIi
3d5W59UWrrnwENBwxoho93wGbvARHF7MPLKIWEYeo8Rjoeu6ZHBPHsEnElj9MxJNCSiGzCKAC5b3
4O0XlMIaeE9mlMwBwIfVi+GyOGMPNCBxEt2xhIUOuYM1JwRGoaAPGBzz3v8NI5JHik6RzJIoymCV
IgELZ+jHUy4btCQQ4PghI5SG9zB3HOhlb6fTcXq3Nt2NXr/a6XW7MJF5/x5oSLg6IP5ZgCaBJ8H+
o07eboFaMKbAyR7NCANpYDgdzpj32aqZpvPu552O86qOPYj37+f+5lbOMZ05PE4CmqZERI+wDuxK
iEajIe8OOEAWidCQiUUMx04EaScQOd7B8uwRcGRARo8gAUgFipIb/tpX0Nkc5IZuoqXgPYfV8Kc+
Lu/YYtJNCQYizJMUaegRjLBccshwPcI1T9JXLjabAxL8UFifFnHCUpQBGZAogZfQdb4oIjVkhi1u
WWxTOqCVsKLrMayqGSzsKIvQlFc0oiQ81AFjncICHSUhU1rJl+BNtElr6j/Bi7e9bT+czNucFVIO
oscyZUNybaUBTUtiMKAQ/2awxmTQxmcPeIqyyIIfzxsA8W1P4kqy2B0UBKLFqGjkr3vu61cQhiBV
vurpbZOFIV7Kgql7McPgRoxQtoQICwSg2B+IaH3QB4rzxHu8ImX0gTCeQXgKsWqyIinkMZM5UlpC
V4T9xB74omiyxAAZW2YyHfLQRBcCD2jnI5ItExw/itI80MTHcNIlQ7ShCczQO0bmAL4i/pT4Gdxz
dcLbNIsSQZSi76OozR8rMwoXrfEYh3o8bmHvHXK/zIS142e4AAfd3M4WMf4HZ+aC/E0n72L/mAYp
zgw/C1gfHTxEXQGjyVmUfYY+94fJkrV3tbmu3YLIis6u4Q34QOQCqIjOVTettgbPQIL1+OLGTB2h
Q56fQLMIHF0eqZ/f/Za6Iup1z2OcAK2meMTljGNA93mv2yZB6I+kCYODutgteAgdNi0oYZRJsBFI
2RK37a3u7i3pI15zt5rzasLLm5cIWfaq2i1XBx8XwNDHxw4uU8Q+zw7dS/5UUvk9tKHba0ljaZu8
4kTGQ4KUi7EUDB6ji9Z9iRBIFaWs1S6LLuSNljBF+qRjNkCXA3ivMXIhGzoSSWe6vxrSGZYkWk3u
J1Wm1tT5qhQGyIA3aOVkR51bpLWXgaHdLTN2dtUyMlWnqXCbbZ1iVmPEwpv0i4TLHY89fwLzbaQS
j5GiyNdFhc2eJizOdolBNKF+ykjjow9xSU6UG1EKbh3cNzr7lZZN4dUwiXC3ssZW9qMsixanNJn5
4bfoSMcHPf1dxugmm0uskHw7Fw29YHJtMjmB1ejbeRTYGouKvoZR/O0scmRNU6TWZX6TvZ5D4C4L
MsBkt7TQ6bYJAZ6XTmjMWhpExdnWoqPNgYFmJrapri++l83VFBZg0BOyVRmwrYqdlPXyokR2GuHK
3sfayN4D9QN06Jjfplb/MvcSJQLEj5+8hEtddWV0poGBMu1gHssU2CGDQCGoAZsaYMeQOrA61gUw
DuI60KQABSkNSBMYPBCbAhgEzAc0fKBpq0JvCpEcqg/VObo1W6/YBE1p/InhwOggpbjC5MLl0b1k
EYjgtb/0AxFGThOKJQiMsdC4VIEsJWnMJv7Un5ApxMo8kBaOzrFPF1jlKqHBwTKBzC4LVpDlwVya
Juz/liycrHDR9mchRk2OpDqXpdJUgIJnPT+DGWUQRAmrkAzi3BVvg4iIBpNlIIqkEL3OhdbgzqDk
cYvgnUdSpQBY46KCbXw15SNdzaXUrciMhD3wkDaACFnJGIWghSicgIjgPLAZQp2JDzxUxAnqWEA+
rBFUhiHSC0iUJyKB4eCiA0n0KCNUzm3BKI+aIYYuRagaUVBQwLwfay1DTB0VNffNImxLC/ec3B31
Ne8C0vKNgX7jxIek7Ins/9poE+My4gNOvWL/MGuPhXWaDTFKhmFf2V8rX+PmLsm0yJs4Sg1n2L3d
Kq8rWzkZMecMEuC9uFRAhv9uGY7U4Uwcw+FuGVBbprN1yP9a6gT5iBTiOMT3+k2YNfAK4uN0Hj3u
Q/jmUUgROm1T2AvUVK5iHMDGsZ+kvLDccFRfHOmreBO8vOBzKQrx91Ho9WUzDAi+SU0uxRC6WIgI
vRbwNYEsQwXm8z2GCsnkQ2VjM82ex0YPpeykku9HCibw15OC5CPvktU65Ur3nzdQY4iKMRH2KtzV
RnvNp7wyJK0/7YoeMYnLMdrkA+mYejy02L8gKSZAju1UjP2MPXFr32zsh8LYv68TjTWZ037B1O5e
C/YiHFAzVRYaJjwocLAaUgoKSnK6WN0I2HgiVm1hO2rg2iYH3VVs4MLXQNIo4+hrjkB0U/rArjLU
T9syX/60X7eljOOx2BY/xppXS3Ug5wdqPGTTVMyYdlXihPHaT1XokqqUJT1XTQr+q1X0p/3pV6oI
+X21ikqq0UmXtVOmW1PWwtCUF5wT3KtoSX+AeO222X9QkmwbhbfQK14CH4/hDqvR4zGWgBq8jAET
izVMdK7CrtAh5oVcnVukhfca3Zuulli+JB33tek/OKHeZkK95xC61iSCcJGWSFx3iyz6ZSXfq6fZ
W0ez9000pTEEoNkWl9kRynQEN0doxMS0lRvxshSADEYp+PWorFB8PqYLP1g5lV5hG0+gbbKL6hD5
ha2OkiRK6jivEQovqyS4RJc2hUdWsNsaurJu9Q1cS9vM/zlVqss2JcAhbJ4UbTAx452IMp41WUos
qqb9ZyzbS+ijKJm3FBtH9cnRh2EIzl3RsWfwpSihvEKAx1qLeqxKCc/FvYwepd/FjYv+7384JHgI
+h0u8jDK1KYDkM+f1pQVeCYaL+8CfwK5KIQpnto5wV0ZTEYhsIDsGJnhIEQ8uRYVAJcMip0fvdoL
EAI+E5I+zn2x00NJ4Kdix9nnRRKa+JAsPs4hqZY7WSzw+F6jRi9hU9xvhlw6Jy22i0SkE7AHFkCQ
pXaUBDcP98sWuCUF1AE4wfxaX4G5NIh6lzB6T9DRibQ9J8SzckWHFYTyPcoQlKPvEkC/hGY4NVdr
0W4HfC+Ks0+Xd1mU0UD0RnIVw0gWS1AUDAPuEbk60gxWTm9ryPEMpUsKYuhLFBy+/8LVjDuWaQZq
k5kH4aRk3aEU3MjqBZcuZeQRcc7Oh0hTa0SVsekUi16gzBW2BlGa1fdeFXz4xi4Mt9hExSJ9meWK
v0eGEJGwjDAfOyCLJxpJrYSiFCpILsOEBXxPUG0lFRWZSQQh8wQLXeIo3LxScsHNaYAHdS9q+sIF
0bhza5IsEPv08xVXFt+w9UWl6nmUj5746TVznfid64vudh2hubvd5n+DEf4SUHAVeIJAvJ7svv7D
ThfUQAUM2hLfXJNTj3LrUhviUtiAriDcc6Tp5fU/WjJ6BIwSH1wuDcgDDZZMJ3O/9CBVmoWl+l+t
PpnQodoUFqcZ5PyT8xpGLUo8TEqX0AvQ7mPiZxkLa2geSwsDI4UYmwVyqNA8RKENHPdEiOr5U+5n
eCsVJpRvQGskxXncjHttt9axgqrFPDQH8XKOFdR0GeQ1aSxRXAizQe8u/Bs49bbeEbDkqfQNmyl6
z6NYjdUspNgzSBlV8Zd9MhJUNhTHVT5+Oa9JxdR56E3V8Ut5lIgPLloknWRLsEd5hFoNY1pLoDbF
vsO6e2vE979b5X7y06F8tybtj4qtm1tQYfQoOpj2Lb1u31p6i5fYedT353H/is8pW66q3YrTQTwX
OgozPysFtpZzDNPA4x8pzbJK3oU5GrzHOSFBbAEruGRoEfsoDtxBYOlt2m5DbkbhxZDzLvDyg7pS
VnG0F8/wyjMUXCH83pYyCheUHzIQj9KYMZSrYhQMCjTtXd92nLhlRpYqo8doegBLEMRTeEKh29wl
Wb/53v/QfMlFedl8vw0PtryJIC8OZLTGvCKmtJI5Ks2fYc1IP9XcKsSuRPOl8WrmeE0nNiGlGcbl
gRJWZGFpDFJlTCQ5Aw2DvD6ox4kp+tx+QWDUPOMbK81bB89KDUKPt2OXfX5fX9c0LxiGWYjTuJ+f
bh3lW8Sf9lRr+9aZyiSonzeX0iJDD+eQ/AU0vpGdF1Ou0vEbfuBLNMIIihsX0x15a60HC6wrIKys
9kZlN1Z4qd5WTv5DjoarXv76vUa5jafpbEpsScwPmrhIRb5+X+pTvWKu1yvmmn/5w1TMdaEY7ket
SLpe8qzPBq7UUuL1IcfETpWa3vc1DvX6yWUtk8pfl8lYKBgKQ698DE62usDhJTloxyauq9Oaj4wG
cmMFUacKcjD+wgqab1wXU0WsWzZgMSX78lR6dTniAVhLW5naf2Zpys+/uhpFdx0Fu8xS6TU7Xpr4
Jxg0/pXFr4p8APnV/wutV0W/whMM9C+t7zWmgqXSv4TkVdnESQedCVYoMMjrk1bjAL/k1HAafGWG
39w1wO/rLn704OMG7256DZ1LcBekisI+ndzPEtwkVLT28VB7Un5S9MWT4lLUJhuWg/eNIqCSsLgo
y9sv3C/xh4SV+RerOz4oOAwArVx+1cGVZF9Azi8QsqAWsP+l7ku9Q/eVIl5yVS4W9IpBUEMzLoc4
UTOBvjXwKx3DVczELcMTjhTZnbHZrxj1SdEti0bjAtJeH8vN2Fec2yVRsKIiRFFCcVGKgzWCa+kc
E8y0KkoBt950Rczm8G8Q2hetU5riOdjCjPFFxd9y0Hz/C2vrWK5cuyZ1bK0Ji8PIE8ftULK1J1+5
0DYqT6LUPDKL97yRx6fQ2jCPi/JWHAFQpO894ZfE/qglINKY5+QTHCcEcx37Xr9ra9zAT2giV0lt
TDBO+ABdiJP/2qIvVVkfJ9hDihK9bVmft+Jfqiy5VukAIb8HZW/XTBxFbwV0cedR8uSsdsnTy65D
yi9WlhfN0ungZuWFJUQw5sbn2IPVYeA9lbwyz2/qclTeWiSb4pFPxU0ZtGX2GwYx4tRu+7oBrbEt
LNaY5iVjZ06o2l9ZDToBryd7jA6w0s3gzjZsWFsAcKwtIJatsBCX/IYWhQGCTH2lx7XF10qXzfEY
oMbjF82X/Pu0rX/ovf6HDVVlyLHT5FpuOpyYHRRoFQPPJasFDu5Unasu1Q7uatXMozmVIIjV3sGi
KHx41cpNUKfzaeCpes4zdV6EkdygczdXp3e+b6NSs0I18N4OXqsToYDMlT1vCcqw6LjGilajzGlQ
ji8NhRrK/H46LLpkaNLUoorYnmFYFu3pvbT3UEXRsjIjnr6howrzmQaj2BYdlUHGhmkq2fy7puoG
S3ueuYLPjl20OV7U6zR3tbYXRPac76BAYPejhQDXmVuqbooypqw1YSiIQWFrAnFMP3aLANF+wiEo
S9TVJCrJg4fSauUpNpjVZU4hvGrcP26JKv+P919vXxztq2YST7EK+5I5zPefSNp4iB76YbzMcGzV
1/hwlDq2pT2HzJd3mznlQH0SRo+2YvKEx7PS2DyYFzhZflps/+Rt/3RTLR/rGN0SxtZP3tZPq/UY
vSqPDRg7X83j1Vf343WVxwaMN1/N4+1X8/hZx7jZ5kjrMd6VMLaegdEtDbrHUTaot9utolR6Yp8B
uTVCjpJM8avGLSRkSQMP+cbuOd9UK3bEtKN/cqNL1gt3f6h8k13fDsuD/9KzPb+bLJPUf2Bj3D8f
Bw+BJROUyUIujYpFxPFMXehc3PpCaGhh8DjH76GH5D3Rjy1a5/fzTy5iZGs9uoiXRqSyMaYllDb/
F9oCe/v4m4qrRypOx66xAa5PR1H9BGPKEnsm1Kgk05dqoPM/DlH8QQN+8Ch6FJv5kyhYLiDpk3+S
YJb4Ht/8NYcMz6zcMbkPvF4bQ37+KEkzglNAshNC4FepliH/y1vwJpfEJV/mLJTHIwCgol7ZmWDl
aNInyAa/0iPOzqSR+KpRDqAOKBjUIB3nJ6ciscUS4yEEeX5G9TI/3rK5ox50MUx53ixVKA40cPH4
N5Pyow9O+btWYmfdICm/tYX9eeRVAZ2oax326pJXsph1y+cBH/wzdHWmhePF6wWIazuFKXAveKXH
nOB1p1etBQi8bF4Cr7KnKPVr1Lu1ugypAxs8TP9R5xa/LdFdd3KU5qcp7Pg1qFZHYWqqQrJzO+ra
NCI8E33wa5A6dSdj1bV+uFE9dMO2Gl5iABSi9fgCfbi+KZYIcK+fgngvSeiqWB7oSFHY6lr1Z3lV
lKwkZTzqCdNaW3SQs3ST7epEwAv8QI1lYfh8eDj2Q+9J/HEXwW6DRSmM3IxU+4viXCCeZYvEWbCQ
4Ik1eU5MzPoU0zXhdNcMoJRmBPLfwoBblmLQBui0qg1NQk01Nh51k1RdFZYYtHhP4hhBq8Qnt/Bc
0DqmOCBymnzVcAk7xPaSK6j1AKDhGkp4lf2D0PIzHIMQAkm/r+KvcUfr2MJsBoIFe7CkNdYDKNsb
jUdddRFfjZsyL6uYOzZbrA0LrSTQnMsxjQ627uy8ujaA4ACt6aNmgmZT7iC3vlPIZyAWZ9bRkRnh
npzAB/Io3DOCvIM5m9xrp6ml95GBjbKZGxJHqfgrS67ZC+NxL3ikq5SkGYZI0t7CRPyh1E4FuSrQ
4Ozw6LpfySfOv3w6GnwcVnZfDs5PPp+eXfV7VYQvg8Php/6O0QBOR7iIShAhXm+ZHGxxxb+qu/be
No4j/gn6HQ4sCpLWkSap5o+qlgErtCIDSSRIasKAEGSKPFm0ySNNUraMot+989j37eOkKGjDBBZ5
tzc7O7u3OzM781uQM4j/N50OUTWl3EGIiwVnjsrEzhH9Ehr6kpx82H0BG6ZEO6WHsTCUqEVF250+
vvFlZMXRj+FWCuJ4icHSVXFT0rBZwuwTey8ig94WrtR9xkAyJ/G0DIF1OCdNJpzsYWZIDr3BJeXQ
lckkdDv6Rlt9gX8iZY32Q2Hd8MgjT1z5yB2ghf0bdBPylpreIwwmxS7XICn+ZUChIV+FOYZwiMTG
UHLUPI01X/GUWP/HYzBm23vnGVg7MTetCEU3qXbxUsAPpWx+qbf5J3+pVUnVLb0GsCdJmvGU4DLS
E75cC3LKsXnYbSaiJKXAzGbFrDKrv9lpPVXZ75YtqinoDBQ2wR1ShrkLljjTQAIc6mYTcG1b5ydi
rMigdPQRaH8Co3qYPgLXTV9Z5LYrox06awaGz/1cJN+U90vE5pxhlgz8hQUAWni742XWISgMfIG7
YlJWyTeYzcRdgqLi+hE+63YBy45DjvPCCB8Us6IpxEck60jQwt3d5l5s3K8WuBRBvwspY16Yh+Co
Y4yJ20rzGcePO9HqNYcUZZ1xfhlmqRBvnO8ikksq/VhXSRidnV5UFATWAlz14OJfR6A5VJQDksdw
uMW0scOAPibfry6WEt4/+Aai2PdMEVOfpsGWRS1Nw/Fzirq9U+5IqyNyclYWVnl1VQ1XxQ9HrRjl
UtpHQI0YqTqBYkSRSCjWqqrE2hr0ROOjKeVeCCpk2cmP2SArvqZ6w02spTteeQcrEBMa19DyEINF
a2QsWqNsL5BTG6xilGi0mAhwNzmsRk31yopEpRrby8lDGNTU/IoNUkiMhKg1PUVzsNO/GtNbfiWl
N+I1XqzlJLW2tZgHtQ+qNWHCpyutvn5QHPuwFhey5dYL30mz5DLEQ3ZPdaszfmIseLVG1sxC/csc
0MSs1Dzo3v+TRsYUN6fhf82mZBMLteefsIaCDgev5mK1WjvFoRV3k61O5cma6G5teqdnNABBIHn2
QC/MV7b7tvc3OCWC8TcNtX3L0RmYOhz3RaG4s1evWbeXvt+odi5I+yI9LcmvSlCVgtUHLocc8vix
lzVkPDHhYzBdeYWtUy2D3ylzqmb78EOZ54+3A/ET9NoL3pGLqFHDSKliJYWBcl+St66BOTUwtIzZ
EmwoAYIwPuh/dwUFGqRw+Yr2raJxrxKxwTbI1HREObaHVHTEaJ/k2Y0v7sJQo8YTXHdeW5du4NKB
rM6VG83BFQKvwgQqahTn74m75gCsGFKWN1oEl5DlNDJxJ7w5mag3IRY/FPd17R+wtEsTMdQ39r6J
YxviZmbdfV9CtyREhQmSUgnpWwrCZQVf4FLoHP5isp0vvtU3wCRyvTQpsALapFytGZVd3VipPPmX
lDXuWgfSuGIr84bg3hwSlpWIoMNgtlLeODzgDXSoCoWM60NvBNWyJoQSfmBst2hjWeyoZup5uMjo
9Khga+dKIGChqUKwmuFlAzhWypo56pYIBZNnziXhtqxcH1Uvsc6bZ0ufU4TrrRhHlShpKhZyj8js
ayxUHerH88XiYjdBFDwVPyrTIBhB1IO1QpXKtaPak9InZqQweHuwkiYRWJepHJ1HdayAWw1fsaii
FiyyRaQZjrDjHnxaJfxshLizY+MG8Dp1eTDOOTa0jaZSLGXYpK7C2tPUKXbnkdRV1GQN8vimeYUz
vxVDLvgemtLbs8VnBZSnufheTWJCmHnK1BV5IxSjbjKS7GaHUTOMOc2nKB0ZTWrPyze2/JFtCisv
kAXrV1USmsoE0bxfZzfwJ66RUMFXdkGP5kEl+0yynyTZZ5L9NMkBlxwkSQ647kGUpKMf/cXJXBUg
40ayYgTtg2YnA4iKoZ/zbKrQq/GeMxHO5hvGKDKwbAyaEjfaBbem2CyNCT0t9KErGCqG8dVBPoOZ
c5VhIZAkX2T439Hq/mtRCpHMxGEzxdZVD5zYaHEWYyBTr8m3T6hdlaQmDkK3VjjBqF+78vQeYr8/
tvcQMjOrdF7+O3pvrSmaeOPQZSbkuMAH1L3YklEwBkkC2zJHQ/uP62cQxHP1M8r0Kb1s9Sei0jHW
ULBP67f5cfzrqv3863nbnxI4HAYzInnnYBZLKEQ/CUcX++/XyPOkkMfrYrGMEgIicJvpBBpS7KK5
j3Dfc8SAVeQpKaewbANjd17CTveD7YddIXoQ02qhHynxVrma1vBDpExIvSOgJmO9hLJ3mD02edfn
9EEjacZn10nKQc1aZtn6HEeJTFtVJJQ7rArUUN8jeKQ8lFDJxsy49LEsX4qAJiSmPso3j4KjEqik
556YwRg7ENlCN9B7+PKeHEM4a6IFX274Rvk+7QRSMhoOx0AI/ay+ODFn1EszM2NY0DpyUQaHTzJr
n5khqD6jaRGm+ARzQqrIYaJRtdhvWsgXNTQy1kGLIszG46yINU0h4XQ9uQ8Yy+s7n9mKPnpya+n6
UDB3xxpcS5kVKvjamz9oz/myrDG5RFM4nHnXgOPjqVeD8gX0Df2EF70gstSoRcp8QQOOE46qFHWR
YN9hZpHGDPS0s6JRVB932uhz3NvNpGerp3oJVMNKE098F1EhhKWGeG/jrDacT3eYbul7KxA1UQEm
Xl9fzMsPi8JCSwz0sGZq51s4kLNzF9iKjC6bt0s8iJFyQfHgH+vWj/NtkG1cI0GrpjUyEkP+5Nbp
FsoB781Uopb6kSC5vf7wLN7B0AtZ9reswV9wY0vArAKbucYaRtOCzqxEEAIfEHHxANMlRvV4joXz
D/oTiZdZfU1NUdUYw2BSuHWcaSxZ8khviV5GRzK/HWb6KKHl5Fv2jQKut2jnVNJzBAwmOnwpjAfK
3xT6XFeBzLzbUZh4eUsIp4nIpksJ8ixd9TCSCrDPZhpQV3YCdO1iPp0ol/tmUm5vi82mkqfkOTRJ
5bwl2HmzFYHEYpfADka3gKIVfDOd9oTIuTWif8QM06nzyVS/Z+nCbkWetqVjdKz1i8eXP0QSoTcO
M1/xYBgOPBLdEOAFPTR5UJJ7rgGC1TQCesLlw45eX4LPoBkrQEROeESMprVj1PloXovpERb2JwIQ
0T/FjJf+luBtVkwJ9REbqnCW2gicAK9Ev9fr8TmtNVythiy7auAyQFQ0f1NCmnL7wkKQ+/4oL1Kp
zmnq8e/9pxjUz0sJmWg6Y+QZL6CQr1ryFz+QC51b9moYoiA1eBTISHAAAccE1FGq8wi1f7l7PC9Z
oSQG6VtIfImx4FI2BHY1puqvLAH8CQbNIzKAbdUNRWLoxTLNRfBprvgh7c2mkOt0k8DaB+VDCihM
vMvrTQwpandBl7NW8xdCeW3mrV7ea+etTj/v9Nt58/L0DAyOQFe0mv6Hfnx7fBl7Cu+fvRkO3/38
g/tsL/LY+bsfTp7yHLThCU8dnV5env4UfPDKHQ67yc2FwDmj7uMfLZCwO8Dg0hGUQtnvZWOsaaTo
07+DfIpwdlsYw5Ppp3al00RNR6uHamVHvkQWjpK4E4ksQFwGNCXSIO0BJPXMO2/CDH50YNO2zcGA
PtkSzAqrY9HENjGy1Z64982fc0Ki8f57zc1YooLMHwj5oAQv59+vvD5J+Rn9GgmgClzGzgEZmFEs
o18rkWYrP46Q/GAAjigczvs2P+Tn9UpT8IICTdCAef2rEWNLEQdDEWlQJ2TRYF6TOuRRmeIfPzs5
9FvjMVSse/8qN5DlRwJV3gCVH/PwTWYdplJbUozkWTNrAjcm0L1sqezljrxg497XZRGhMoZdAx80
e501ekFEDItrPOmI0cSN6eTZZFKlniItXrCktVuXDTnZGdZ3dYGltyZlhgc4HMf7R04qCo0pmpht
DCJRjTVwJLFHjZJHdII701aJagZFWYsVe52whjwPb5fcOc4bPXdWxNnwBGc8m94BFgd97MTlKd1A
mbKLbhifzmVaUqxuERzhzJdnHthiMMyzGal6Upt2Z9Dw+WX6REPSoaeLYhLcWzCqa/rOMou9G8az
yKXnRIfdA3a0LBfw6ynTxbEm+eGAkSAfeqr6r113VvXvSrtysPDU/Sr71DeeQyboWT5oAr77j5kQ
Qwnu566AxB/e/+XdnZbei41s559igAQ7WBiZEk/ppugkRurhLXR5Bd0zwsXDaDeUpM04NsEq6u81
G0MwiyHfhnf09G61br1/s9q7fSr3RJtDeXyuhUisfgZnUqfZ2sLlqhkM0xMejPHb/qhzglz9srAj
Rq3ALK//ILIbaZnjaldD28qTYHaz5DOSWBAKincPdQxlCFTfGIxupYoPZNj7sTpmTt2r7fHVDgnj
vtNrErrU7DPeAccX/bBfEbjzs+r00ONAjIA4AVcxtnwYjBrJqUriZyzUIuADEYaCZ97g2MTQ7PGs
L/Pzvq3MePydza34RjnLW1LAEBwhg98fPfMoIdQNEBINrR0glHvbCRX9CbuaxfNMXY3qgdviil8x
zwxP84D+zJc4Ua8Pm3nTVBr8oTFroRTQ+QbstX7R7714AXQqnlcsux73DnCOX7c7A8++pq6elIcu
KA/EAcavAD8VnWXrd7KbZDzPkeAV2W4CiXIhsL2AZaDrsiDbhLlHRrV7cHVxIFtYbaiSa0BfXWN8
LayKrWYH+N9rRjKIib+sE8y4uiMW+weVvXElivmHkpvhKxFTeEXd0Yp7yYorG1r48VzCslNsqZum
jp/PmT/n7HYT8inJbarX4ezq2013Xm6Lza7Vy+/G5UG5tx80Bz/Hst4U659f+JgPNJiSQl9RCrfN
SZARFPnH1bxs3W5yHuFeZx2+tCj7vewuNmwTLAqlw4HhFwXh/znOsLyrcnjYuL5eTubl9bVyn1gw
3a1mt/sS93fnH17OiuVqhedd7orya/fT/a6Zvyt/goubb2IWkhTQ/9/6d+PnyWTZbxw0ZvRp5Bld
GcCVQnwaeeNstd3d3G/hoviW/aPXE9cRqRZu9Af9/Wx4QaerrEpga7LD8r/Alw0mSBVl4z85BZ+5
HKyW2+ndZv7xC5SCJ96+Pb+4fJtZV/nJfuLJU/Nn3rgpZpsJXO8PuvvfMYXBIyh0BiaN/afR2Ddp
/D1MA3u6JHmBHXV2Dx0IsyY8u1rDs9O73Qfc/kfx3+8+FlCg+AQyEUdBmxapIqsO2JR3/gtQSwEC
FwMUAAAACABjoTMwjCG8zXgmAAADoQAADwANAAAAAAABAAAApIEAAAAAR2VuWE1MUmVwb3J0LnB5
VVQFAAPKKwxAVXgAAFBLBQYAAAAAAQABAEoAAAC6JgAAAAA=

--Boundary-00=_Z8CDAPrdPFMr+QM--