Welcome, Guest |
You have to register before you can post on our site.
|
|
|
Sabre |
Posted by: bplus - 04-26-2022, 04:06 PM - Forum: bplus
- No Replies
|
 |
Speaking of animating avatars, perhaps you will recognize this one, hint 
Code: (Select All) _Title "Sabers" 'b+ 2020-01-11
Const xmax = 400, ymax = 400
Screen _NewImage(xmax, ymax, 32)
_ScreenMove 300, 40
Randomize Timer
If _FileExists("YS.png") = 0 Then 'thanks Andy Amaya
Dim Shared k As Long
k = 1: Read f$, s&, t&: Open f$ For Binary As #9: n& = s& \ t&: n& = n& - ((n& * t&) < s&): For c& = 1 To n&: Read d$: u (d$): Next
Close #9
Sleep 1
End If
Dim ys As Long
ys = _LoadImage("YS.png")
t1 = _FreeTimer 'get a timer number from _FREETIMER ONLY!
On Timer(t1, 4) resetWand
Timer(t1) On
Color &HFF000000, &HFFFFFFFF
resetWand
_PutImage , ys, 0
While _KeyDown(27) = 0
If InKey$ = " " Then wandsi 0, 0, 0, 0, 1, 0: acc = 0
c = 0
acc = acc - 1
For x = 71 To 81 Step .5
wandsi x, 268 + c, _Pi(11 / 8), 170, 0, acc
c = c - .25
Next
c = 0
For x = 317 To 327 Step .5
wandsi x, 259 + c, _Pi(13 / 8), 170, 0, acc
c = c + .25
Next
_Display
_Limit 60
Wend
Timer(t1) Off
Timer(t1) Free 'release timer
System
Sub resetWand
wandsi 0, 0, 0, 0, 1, 0 'this sets a coloring for wand used in drawing the pointer inside the mouse
End Sub
'draw a colorful line from point x, y, at radianAngle for a distance and use new <> 0 to reset colors
Sub wandsi (x1 As Single, y1 As Single, radianAngle As Single, distance As Single, new As Integer, startIdx As Integer)
Static r As Single, g As Single, b As Single 'hold present color settings until
If new <> 0 Then r = Rnd * Rnd * .5: g = Rnd * Rnd * .5: b = Rnd * Rnd * .5 'new is true
Dim dx As Single, dy As Single, i As Integer, x As Single, y As Single
dx = Cos(radianAngle): dy = Sin(radianAngle)
For i = 0 To distance
x = x1 + i * dx: y = y1 + i * dy
Line (x, y)-Step(0, 0), _RGB32(127 + 127 * Sin(r * (i + startIdx)), 127 + 127 * Sin(g * (i + startIdx)), 127 + 127 * Sin(b * (i + startIdx))), BF
Next
End Sub
Sub u (d$): r$ = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/": s$ = "": v% = 0: L% = Len(d$): If Right$(d$, 1) = "=" Then v% = 2
If Right$(d$, 2) = "==" Then v% = 1
If v% > 0 Then m% = L% - 5 Else m% = L% - 1
For i% = 1 To m% Step 4: w% = InStr(r$, Mid$(d$, i%, 1)) - 1: x% = InStr(r$, Mid$(d$, i% + 1, 1)) - 1: y% = InStr(r$, Mid$(d$, i% + 2, 1)) - 1: z% = InStr(r$, Mid$(d$, i% + 3, 1)) - 1
a~%% = (w% * 4) + ((x% And 48) / 16): b~%% = ((x% And 15) * 16) + ((y% And 60) / 4): c~%% = ((y% And 3) * 64) + z%: Put #9, k, a~%%: Put #9, k + 1, b~%%: Put #9, k + 2, c~%%: k = k + 3: Next
If v% > 0 Then
w% = InStr(r$, Mid$(d$, L% - 3, 1)) - 1: x% = InStr(r$, Mid$(d$, i% + 1, 1)) - 1: a = (w% * 4) + ((x% And 48) / 16): Put #9, k, a~%%: k = k + 1
If v% = 2 Then: y% = InStr(r$, Mid$(d$, L% - 1, 1)) - 1: b = ((x% And 15) * 16) + ((y% And 60) / 4): Put #9, k, b~%%: k = k + 1
End If: End Sub
Data "YS.png",62591,192
Data "iVBORw0KGgoAAAANSUhEUgAAAOQAAADdCAYAAACrIt7oAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAPQUSURBVHhe7J0FQFXZ2v79vvvdiTvdTjhjd3d3d3d3gY2BhCDdIGErKBioCIItKoKAIt3d3Z3P/33XYeuRizNz79z/vY6XNfO4z9n7nAOctX/7ed9Vuxmayj9f6kg1pOp68ePaevExelBV"
Data "VYGa2gp6LHtRHe1j1dTRMdpFG9TS+2qr6O2kOn6Z+Az6p452VBfRgXx6nk3PM0gpdDCRtiTEoK7wCeqKHpIeC9UWeNTLi97mibqCZ0Dhc6AkECgPAaqi6b3x9e9PJmWRcujzC2lfJYme8s+n36man9K2hvZJf2I1qkjFqEAeiuqy6GVV4s+WJP19deJvffnHkOoLf768msprpQnIP1L4hJI/G6VzT+6Eq62lE5POahYf5FNVwFhDpzafr/wa2tbQ"
Data "yV9dSU+q6XVMZR1BXFdCLyAY6wjGygTUFoWhIvsZClMeIzf+HrJiXJEYaofEsDO0PYuEkDMkW9I5xAedJ9kj+sU5xAbYIzHYEWkRLsiJu4vC5IcoTfNESaYPCnNeoKqCAEUuiX4e/Wz+farpxzOQlbRlIPm351+X8atAKW2L6HkJPat++eezZH+2BKX0hTQB+XtLE5B/tDQ8wd5wktXRfja9Gjq7eSsMkHZWV5XRE4aPXZQek/ugJgd1ZcmoKopG"
Data "UYYfClKfIi/RHZmxN5ESfkUG2vOziHx2DAnBJwhAG8QHHxWKCzxWrxOkk4h5wTqNaL8zQlHPZIr0PYvwZ2eRHHcDGSkPUJLvT/Sxa9IFgH8PsuzaihpxoeBrCf/+DFxFTS3KiVjCVugVhK/rjeV3v/C/szQB+YcKX/nZN1j8mCVX5E48KTTlE1sUseUYNY+2HDaSatNQWxaF0hx/ZCc8REqUGyL9ziPKz64eqBOI9SPYXhxDvJAV4gPNSab1Mkdc"
Data "gBnJAnH+RxD7wpLgO0LwWiL6mTVintvUv/846SRi/U8hLuQ0IoNOITLQDklRLigkB34Fpswx+Xetpl9VhNi0lyFkVfPfRdvG9Mbyu1/431magPxDhfOkMlIJqYJUReJQjUr9CScgZE6lE1AcpB0iWSQ35HywKhAV+V7IS7qFtCgncsHLSIm4QCGmAwF0lMCyRpyfJeKfmyPhuRnJRCY/A4JSj8DSJRfUQYwfbUnRz/XqZUAgGtXLhGSKaF9zoZhn"
Data "FgSoGSJ8DRDhZ4SI56YIe2aJCAI1KdKJLgoEZjWDWR/KUgwrom76/fmiwn9TNQMq/3c1FBdp21R+V2kC8g8UbrSoEXlUMT1mMBnK14GkVPHlifwyN+QTvKaAzuhkFGdQTpdyDZkx55EUegqJQcdJR5ESchRpYceQEnQEqeR8qQEmSPE3Rpq/IVJfGCDFTw9JBGNaiCG9Vg+pwbSPFWiI5CDaF2iEJHqcFmxGn2GKZH9TJLwwRZwvweljgCgvPUR4"
Data "aSMxgKEmiH21EPZUG6FP9RFKwEb5n0VsyBW6UASgpiyBriHc6EO/P/3PDVDieiJ/oZEeN7z4yKup/GZpAvIPFBmQZfQvQ1lBYoesP/fqH3ADCWrpAbeYsiPWZqGiJBq5mc+RlXSX8sHjBNURZIRZITPcEhmhFkglgJL89BHvq0Pw6QulETTp/npCGQH6yPLXF9tkf20kBWiLbaK/FkGqQ1sSOWUCO+bTw4jx0UGcDz1/boTkFyYC8IzgI8gMoZ9F"
Data "0MY/O4xIT1VEeh0i59SmMFcfQR668L6ni/gQB2Qk3ENZXjhdSyisrioXkTb9sTI1BJG3DVX/XbxepINNRb40AfkHCrshQ8hdAbLWxnp35CKdnGyRorGGHAYZqC0PR27GQ8RGXkI4haJp4VbICjNBZqgp0oPJ0Qi4pGdaiPfWQJyXOkGni0yCjJXhp400AibVVxNpPlpI8TksXp8SoEdA6tZLXzgnA82K9tKSk45QzFMGVZc+XxdRj9QQ56mBJN/D"
Data "SPDRRPRTdUR4krwOi3A2wMOQQtmTSI50RXluEP1d3AVDf08N/XGVRKTE1W+pCcjfVZqA/AOFz7GXRkFPWC9PPHpSW1FKzzk8JVcsDEVOijtSYq4gMeIsEiKOIinCQoSY6YG6Aqy0AB1yQoJOSJcAZBj1kEXhaeZzekzKeEYO+YzgpG065YkcvsrgMxRKpLxRUgI5XTxBJSnO2/ClYp/SPlLiE30SuecTLQEmK8pLDZFP1RDxVAOBjw8h0NMAQV5H"
Data "EO3vgKJ0H/qbMujvo9yylhy/ksTxKwPKfDGjFfQlsItKzLGk76W+yEJ7PtBU5EsTkH+w8HkoGjn4Cf3D3RrVVZQn1lbSjmJUFyegPC8QBSn3kBFzCcnhx5EcZo6UCGNkRBgJGDn0fBmOEoQyUUhKynxer2cGQhm+tL9eab7kjs8ZRGOhRApJE5+ZiG2Cr7FQvI+R0CsYjQlGI6F4L3q9B+kxweuhJ6CMfaKBGE81AWWElyqiyIXDvXUovzREqPcR"
Data "RD4/g/TIG6gteEF/bxqJHLOqiHJLuviI0Q21FAVUoq6cvoyGQIovSVaagGy8NAH5B0sFsyd/wlVTHsmuUc3dGRnIincnEJ2REm6HxGArJHCjS7A20sO0kRXOMOpSPmhITkjAkSQQM8jhXhfB+4zclJRGbpdGkKX4kp5TvlkvAeMzs3oYTYXifUwEhJIkGGVA0j4Peu1jFuWSj3UJSMo5ySU5p2QgOQ9lpwx+Qk75SAu+dzXwnHLLlBA71BWQW9am"
Data "0N+aLft7ORoQAxq45Yf+fHnVfz/S19QEZOOlCcg/WLhbg9PEWtEpxycY51dZqCyKQHGml6wLI+QMkoKskORP4eULLaT6ayIz6DCyQ+rd8QUBSeEmbxm+ND+W0UulkgumPjMWEhAKmSCZAGQQuQuEYRRdIeyK9DrecouqCE99ZO4Y421AIBqIbYyXPon2E5CsWHLJWA99kjaiPTQRSQBGUi4Z56uFkEcH8eLuXgTcV0agO4H5QBNh5KhRvkeRl/KI"
Data "HLJ+CB6HsdUF9D0QlOSUdRUNcszXgGQ1AdmwNAH5B4usT46I5HGg9a2oVcVhyEm+g8TQ88iItEVm2HFkBJsjPYCdkPNBckc/HZEbZvgTdC+MCUZjsRUAyolDUpmMCUAKLzks5ZCUnFKIHsfT63gbR6+Lp32xFNrGkYvyNtaHwKPwlltao1ne2ogi8Tb6qS6iKH+MIRBZ0R503EOLYNRChIeGUNgjVYS4H0TA3QPwv7Mf4Y81EUefGeFxGD5uqmK0"
Data "T1GOL/3tPMY2nUDMoe+CnJLC15oyDh/4SyI1AJLzbt42lddLE5B/qFC+VEMnndSKWp2KkrwXSE+4gaQwWyQF2yA3+jhyIyyRF2qOvGBT5PmbII/gySMHyyKXy6Dn6SQBI4khTH7xSqKhhpxTNNLwQADKJ+NIL7e0j7dxFFqyYp/rvCbuX5TpMOWDmi8V6U1hKcvrsFAEQcggymCk5/UKuUd55GN6/FAD/jf3I/C2sghr4zy1EERO6e9hgcjASyhI"
Data "9yLKEuh7IKfkwfBVDCVR+CtAsprK66UJyD9UuEuDTjzkoqYiHnlZT5Ec44TYMApRw48iK9qK3NEMOaEmyA8xQ0GgGYpeHEHxM2sU+xxFvo8NMl5YvOz0ZwkIyTVFeEtKIBfl0TjSlqHj0TgCNpIYoVOvaD9yPb/DQlHPCTxS5DN1oQhfNZmeqSDc96BMPpQnetNzyhXDvbi74xDCn2ggnGF8rI3wRzqIfEif+5jCU9qG3DmEADdlhN46iGh3dXJX"
Data "fQR4mMDL3QxBvnbIz3xKlKUScZRPVte3vjYB+Q+VJiB/pfCJIyt8NjUmdkbOnaKRl+aOuDAHxASfQFLEcWTFEnBxNqKPMJ3yxOwAcsUAc+T7W6HQ7yiKnp9Ent+xvwNSBuMrIBlCSZILMnwCSAIwjkLfGMpL4/zIBQnE2OcMI3fwM5CHEF0PZFQ9kJE+MhilbfhTkgBSFWGeai+BDH+kJcSNP+EPKI+8S/tpG3bvEPxd9yH45j5yzcMIfmwMr1s6"
Data "8LpDv1egHWpL/Og7ofCVR/ZUcj5NT1mvwcj9tzK9+o6bCpcmIKWzRO7MkD2VThieKlUuJHNEeeWjOv8pKrNcUJB4ARkRJ5EcbInkEAukh1ogK5y2IaaUP8qUSQ6ZGWiBDAIz0/8IbY8QhKZyEFJ+yOFpvThEbUwyx5Rt455pE4QEJm1jnhFAIjzVoJyRnJK2Ud7kfE+lfkVZVwbDx9swTxXZIADhjOpCYR6HEPpYHaGPNBDy8BCFpWoIuq8qFHhP"
Data "hXLJgyKXZL0gp/S7oQrfG8rwu7MPz+8qEfyGdJ2i8JX7Knn+FgUQ1SSexsXfJo9oqqYLWRXKUVk/1LCpvCpNQMoDSZIeyi7sEpQ8iJyHxTGUnDOSuCWxKhWVmW6oSLVDQexxCk+PiGFvPH6Uh8BlhVsSkOYvxftZ/BpJyQHyrvj7gHwlBlJHwCjAJBhZDKOkqKecJx56KRmAMoU/IUA9NYWEM5IkIEMeqQkFuasg8MFBIW5l9b93AC/uEoys2wcQ"
Data "evMQAm8cQMAtRTqmgFDPA8iOsSMoI+kLJIfkti6SGGQvvlMGsqQeykra1wSkfGkCkkujMMrEJwwDyRDW1BTRDhI34JRnoTDjGYoSr6Aw7gSyI6xkA7kDTQRoDCTve+eBpFA25KYK/G/uoGPb8eL+Hvg90ERahCtRmEtfIn13si+y/rvluZQMJQ83lM2OaSqvShOQVBoDURLvl4WnnA9xHxt3gqehNCsEaZFuyIw4I5xQglEeyP//DmnwB4Hk7R8D"
Data "MuiWCkGpCv9bu+F3eyd8b++G+3V6/NACJZnP6PvKJ/H0EPFFitUSOOpgLBnOJiBfL//1QMqDKGWGrFcw0raWcp0qPrFy6GASynNeICv2LlLDLxFgR19CJgHJzxlIDmH/PUDKFOvLUFIu6cNQyhT1VJNAZChl4nxR0h8Hch+euexC2H16ze398HXdjWe3lODhsgcebmoI9T2B6qJg+gbJKbnFlb5QXqFE+q6bGnX+vvxXAymDUbYUhTyMspNFdlz8"
Data "w31qlQxjKlAUhNy4m0gLvYisyPNIC5GFqo1JHsZ3FUgf520IocdBd1Th40JQupHuHoDXrb14dPOAGExfWUxQikH29BVSPsmDKfj7rSK3bALy9fJfDyTDWCkka394CSMfJNVVcYsED5ymULUkHMUp95ERZk/udwp5USeRGcp9jUeE2BUl8CTg3m0glfDi5i4KV/cg8JYanrkehJfzXjy7vRfPH+zC49uK8PPURlbyTaIvg75gClO5TYyiVP6OK2vr"
Data "moBsUJqAlANS3h3FQVJVEc//49nyaajNfYbsyMsE3nHkRdqgINpGNNxI4pxRClMl2N5lIP3uKCHwvhKe3diOgJtq8HNTx2PHXXh6YyeCPHbixWNFuLttQXKUHVAaA/B0NG6opi+Yv97KKvFNNxW50hSyEowMJa+kxiuqCXfkg3QVr+WO7VoKtUqSUJzqjbxYZ+RH2xOIJ5AfbobMYH1khsjyRckd5cFj/RaQnHMylJLk4WwIaGOSwBRD6Z5xq6se"
Data "QalLMOoIiTGrPH71KcOpRVDKhsq9HDInB6QEY/BDVSEJRgZREgMpiQecv7izg7QHfjdV8dz1EJ67qcCXXNPn1np431kNX3cF3HPeLRuEXlcsYKwspi+XvuRKcsym8nppArJeDGN1jVwIJSbd0glUlY3q/FAUJN1HTtQlClNPozDKGoXhRsgO1hMz/RsCKQ9fY/saAvlbUP6a5IGUoPxXAMkw/mNAqhCQagLIZ2674EtA+txeDZ87G/CUXNTX3Ry1"
Data "RTGoKeWIg4yylGPXptKw/FcDyYUB5Jn+AkaROHIzPE93J2eszUJlfhhK0j2RE3cd2eG2yA0/joLwIwLI/FADZIW9csiGUDbUrwEpD2Vj4L1JiX7GYqaHmPXxzFA2y8NHXzbLw1tPzOgQszq8dIQiKaeT1x8F0u/uLgpdGUhlAeMLyiP9XPfQ480yKG9thOfN7bh7dT8CvCh0FS2uFSgv5i4ketpUXiv/9UDKiKSNSGfkYOQTpyYeOSkPkZ3ggqwo"
Data "B8oPTyAnxErM3GAgC8NMkEWP5Rt1fg3KxoB8E5S/F0wGUoKSgWwIpTyMvwdIzhv/ISAZRtYtyivdaL8r7Scg/Vy3kbbA23UTnrhswb2rO3DzykFZi2tVOn2/9a07TeW18t8NJMPIIDKDvOUwVYKxKgHVpYFIiXZCerQDMiLPIDP8qFipLSfYlGA0Q3GEJbLDZP2NDaFsDMw3ASmpMSh/S0kvTP4OSgZSgvL/L5D7xfhVGZB7CEgl+JMCbuyBv8tu"
Data "+N3YCQ/HjeL4XccNeHKH8ksPSwpH4ug7pnRANKE1QSlfmoDkc4KBZPGaMHyi1KTQlTwQRdnuiI84h9ToM8iKOY3sSBmQ2QRPAW2Lw60ISEvRuiq1sP4alL8FJEuC8veCyUBKUDYMXVn/f0NWArJ+UPnz27tlXSBuuxHgshf+zvQakselzfC+QW55fyceUeh602k/kuJu0fdMuaTsSyc1Fak0AcnnBPd58JZ7rWtyUFMaiYJsD2QkOSEu4hTSYk4h"
Data "N54ULQMyK9AMeUEWKIywaRRIeSh/C8jG9slD+VuSB7Kx0PXfBuSd7XhxaxsBuUsAGeCkAv/ranhyaQceXdmIUM+9cHVchjuuu/DgniFKimLrv/QmIOXLOwwkV/RvqKFD8jyhqlRUFb1AbuoNpEbZIincWsxtLEg8gfw4ApJgSws0RXawBXIjrJHD66rWA9kYlL8XSPn9jYH3JvGK5A1d8ncD+YdbWeWB3PkSyBc3yCGvM5AqeOSgiGc3CEqn1fC4"
Data "tRFOF1biwU11RAQ50RdOqYGYU/p7Qlce1SNJVnWsd628o0By5XIly9P2kjo5kTmW0yPurBYLVPEsjgjkJt1AesRp5MeeJMgoRA03p61MGfVKI6WKFtZX4rmPktKCeUwrDzQ3/g29gvPX9BqE8iGrfANPfb/km7pApG4PCUAB4SN1sW5O6EMVsXYOK/iBMoLuHxCS3ydJOsbiwQFCFLI+v7ULz113ivGtvs67hfxv7sVT52146LgOHtc34eG1zbh+"
Data "dg2e3dFAXZE3feeZJIayCrW1tfUrvcskUnpRGEIejP5qQWo+JNJ+cfzdKe8gkPW1KaqsIYzyktU23zBGLOPI++qyUFXoi7xER5Ev5kdbITfMVEiCUoIxJYIgIaXLQfk2Ayn1RcoDyY7IMMoD2RC6hkDKw8gSw+dI3Kgj+h8JSB9yRG+X7ULPb+4Wzz2dFMRzr+uKuGW3Umx5ATCAG3gKUVvHUDKFso14WA+kzBVld6bkWSKy0VWyGmwC8q0v9bUp"
Data "xFX2JvFx+QotRnlxBPLT7iIn/oLIF3MizBoASXmhHJCp4W8/kPIDBCQgX7pjPZAMozyQEmyB9/a/BLEhkHyM9VtA8mNpP2/5+YOL64V87hyi7zyAvvtcujByIw/VC1WIaFtj+xNdUU1A/smLPJDy+rVC4VJVOnLSnyI95iqy4myRF2uDzHAj5IYbvwRS1sUhc0mG8c8C5BvdkXPGBjBK0EnANQRR/tjvAZLDVek5P2Y9ubZVAHnr4nbER7vR959D"
Data "onSB+yaJsCpp1fO/A5LvoyIDUrqsNgH5VpbfC15jhTuoC1FREo70+FtIojAqO/YEAWmNjDDDl0DmEohSn+OfCUj5oXMSkC9hfKz+EkZ5d5RgC7i77zUQGx5j/RaQHKoygB5Xt+CR4yY8vrJZQMn7b19UxBN3a1RXcdjKDTwlYnaNuDcIV2U9bTIgX+WQEpBNOeRbWeRhfAOQXGuNSby+kE6CeBRkeSE11hEpUSeRRTDmxlKIGiEPpMVrQDKI6bRf"
Data "gvFtBpJhZDVsTWU1hFGCTgLu12D8vUA+vLzxJYz8mPNHfp37tV24eVUTyXEPqB6yRF1UlhS8Ik3UEW/+vlFHimjrX/LOlD85kAyUFLw0AFKq0F8TVTBq01Ga/wyZ3LIadx6ZcSeQFUPwRRsjJ/pVyCoDUtat8TqQr5QeYvJSacHGQqlBRr+ifx+QDcNVASNPsWIY3Q8IBT0g4O7vEwq4t1dIfp/8fkk8sFwMLr+9G89u7oSv2w74uBKMN7YJeTkr"
Data "wP3yerHl44+vEpikpy6KeHRtB25dVcGTe9ai75ddsq6cB59TPXJVijrijQxI2UJjsmU/XlbhO1beESClVtN/FMgyelssCrPuITXuAjLjzyIniddUNUFWlCGFrSb1QJojN9RSKCuU+xgpj5QD8Z8HktU4gA31zwIpuWPjQNbnjg2AlGDzv8vzHV/B2BBIPv57geRjIQ+VxfMHl9YJKB84bsVDF1U42u1Dfpon1UcG2R7PPaW65LU+6ssrICUYm4B8"
Data "SwsDyDC+GUjuXhST/uXCoKoqCn6q+D3FlDfeQVbCZZIdsuJPIjueoIs1RnaMgXBIXnU8h8LRnJAjyA4mhwyhsJXnQDJ4oUYvwftn1Rh8jem3gGQYGcKG3RzyDinB+Gq8qrIs9JSDrKEY0sacU5I8kNwP2RBIz+tbX+qJ05aX8ri2GY+vKeDO5Z145KoJn/vWdH2Mpvohh6ziXJLrU1YaA/JdLe8mkPXgSRIrEb6qX9TVUSbCCx/XZCIj/gZyEuyR"
Data "G38GOfFHkU25Y05MfbgaZSzubpwTSvtCrBoAaSTUGGS/X5xjNg5gQ/0WkJIzNgRSkuSOUqgqjcbxvyNzujdJArExIPm4BOObHLIxIBlGGZBb4H5lGx67HIS7kxaq8/iek3yznjJUl1P0wvXH9SUkQfnuwsjlvwJIdsnq6lrU1EivrUB1bQGKCyPIEa8hL84WuXHHRctqbizli/VA5kTIpldlhVoRkDYEpLUYMpcdYoqsEAMC0uAlWP+sGoOvMf0R"
Data "IOVbVxlICUYeFieA/BVJDTnyjTnyx6UGHR4A0LBRR2pNlVpapdZWeT25vg33L23D3csHkBB0jSqLwlaxsoCsC4SLrBobOKNUv+9YeceArC9SZclVWnV1JSr4RqpimFYxKqozkJn2lBzREYWxZ1DA9+KIpTwxmhyRnDEnkoE0EzljFsGYE3zs74Bkpb/lQMrnjpI7yo9RlVpJ36SGraryMLIYRnkgG+tzbAxGbnHlPNLr2ibcPrcGj64cwP2rOlSl"
Data "aUClbBJzFY9rpCKrRjkgeQc/ZNXX77tS3rFGnfoigSiJSnVNGSp4bVXRAZ2L4vI4JMXfI0e8iMKYk2LBqvzoI8iLMhOhKsOYE04wkjtmhRyTARl0lLay+ZC8fEdWiN5bD6R8Q44UqkowigHijUAorzfBKB3/NXfk7o03wkh6cmUTHl1cgYcX1+Hh5d1wPqtEqcMTqla+G3MFKspLRd3JqrEJyD9BkQeyvrK4SCC+rKxaMVaylvsckYOqumRkFwQg"
Data "Md6NwlN7FEefRJEckByq5kTIujnYHWVAHn8FZIixuPtxFik92LBR0H6vGoOvMf2zQMq3qkqh6ksY774aafMmNYSx4XGGUR5IeRhZ8iDKw8j9kh6O63Hv/CI8vbYBd85tptBVDU9cbShczaa6o/oSa0ZKVVkPpFSv3EjXBOTbVn4bSF4np1bc3ZhXAsinXZkoKA1FcqYHkpNuCCCLok4IIAsiLZAbaSrckQcBZIdZCxizQo7/HZC5wboCyrcdyFdd"
Data "HK+7o4CRJIWcb5K8K8oDKR3/NXdsCKQ8jBKQjy8sgfuFpXhwkY45qcPlnBby0oIpzS+g+uJGHBl7TUD+aQrXirxkRao3XsCqppavtJw78vCsZOTmP0VSiisyU64gP+YsAXlMrCQnA9JcDkjJISmHFI06lgQhd4HIHJLDVgaSw9b0IJN/fEv6vYMD/hVAvmzIqXdHvoWcPHyNqTEYfy+Q3JjTEMbXgdwIX6f1cLaZDj/6jAeXd+HWZbpw+F6hayyP"
Data "b+ULrVSXcnUsKrZe/PgdKn9uILkypCslS/wj66/i3awK+oehlFVuvliaIzX+CtLiTqMo46xozCmMJXeMsRYhqyxsZTCPCHEXhyTue2RlBRvJ1mQl8c1YZTJERqAByUhsMwm0zCDD39jKwGzMOSVJQ+xS6HMlJdPPeiUZmPL9kPINOvLuKIWrL2Ek+bjtFvK9uUfcl4P38XGGlvVai2w9yM9v7xWv5fdIEDYEUb5lVcoh5YHkIXSPL22Gr+N2PLFf"
Data "j7t2S+B0aj7uXlHEtfO7qbqSqb7oIkpVyq3ksrrlOqyPhvip2P9ulT8/kByxsrhyxAQ62awAaRJr5WtA5qKq4Dky4y4gK84K5enHUBB3hIC0IiAtX8IoA9JcKDOUwKmX1PfIkjkjQUgwSspkEElZBNzvEYP5rwCSHfL3ACkfroobrBJY8jDy84ZAMozyQErvk4CUh/H3ACm5owSkz6XdeHJ+K+6dWww3u7m447gK1x22oijTl+qT0oz6Cy73Hcvq"
Data "kKMdqlmuU1HnpHeovFtAigevBiCLZ/Qasd6quMFqOspyvQhIe2THW6M0lZyRgGQY5YGUYOTQ9fcC+Y/CyPr/CSTDyGIY5YGUXE4Ci6GSB1KCkcFlSTDyY3kgpfc1dEcJyIYwygPJMIoB5xc3wcthBzzObYG7wzLcu0hQXlgG5wsKCPNzpDorJCD5ispVzeNYuS2gCci3t3Bl8IWTyRMVwzUkhaxytwXgq2tNIapKYlCY4Y6seAfkJNigONkK+bEW"
Data "jbqj6Pb4HUBKIDaEMZvCWpb8vob6VwApn0NK8x8ld+QuD/lwtaHLSU7X0B0ZPn4tSx5ICWTJHdldG3PHhiA25o7ulzYIIJ+cV8QjO368Co+vrYbL+aVwcdiCe87GqCmlsLWaAKxhImVAyqAUhNZX7rtV3g0gX5L3CsiXrXJCVJkVWSjOCUBu4k1yx/PIS6DcMZFyRgLy9dzxFYzZ4aa/G0h50CQY/11AJtYPKpcHkmFkMYwSkPJQSTBKYEowMrAN"
Data "YWRJziq9T8o93xSqNoRR3h0ZRtbDCxvhYb8V7rbrBZBeLhvgYrsYzg6b4HhmHzITKWytLqL6rRD36ESdDEgOX99RHt8BICXmGgGSH8vyjhJUlyQiL9ULGbHXCEg7FCQdR368DMTGQlWG8XcB2QAyCURuiWXJH2soAWTwrw8s+C0gGUZWw3BVGhAg744SkBJULAZRHkZ+Db+eJYW5vK9huCrc0XVXo6FqQxDlYZSA5BUDGMgnDgp4YLuGgFzzCshz"
Data "G3Dh+Db4e12kKuT7chZT1ZYJKEXoKrqyaNc7SOSfG0guXCkvYZSXBCN3d+SjsigCmfF3kRZ1gdzRDoXJJ5AXJ3PHxkLVfwRISdz6ysoW3SIyyR9vTDIg3yxpmlZKoOFLJQcY1OvVHbB+D5ANXY7Baggjv06CkcNd3icPpPQ+CUgBozM5o9wAcjFwvH7eI4vXZWU9dCRnvLxeiKdgPSQovS4q4P7Z1ZRDkkM6bYCr3RKxKp3jKQW4OepSNaaS8sgl"
Data "iwnIStTW0sW2Cci3uTQEURIDyQ0APFQuC5UFgUiLdUZKpB0BeVYAyasCNAakBCPP9Pi9QEow/iNAyj6jcRAl/TqQBm8EkmFkSW4nASm5nAQWw9gQSIaxIZD8mr8HcsdrQL42tepXgGQYWe4X1uHp5a24d2YFHpxfDc+rG+FmtxzX6LmT3VY4nNhGICaQMkncwEPhKuWTYv5yE5BvY5HAY/FjqUj7eXRODkoLgpGZcBtpMZeRl3QBJWnnRciaHWXe"
Data "aKjKIEowSo/fBKc8iI1JHs6Gkn3Wr09wlgdTHsYkf30hCUbOH+W7PKQckqFiIOVh5K0E4K+5I3eZNISZYRTO6LIDns6KspC0EfAaSt4ZJfEY1gfn1+DhuTW4f24V7p5biVvnVsDt3GoRtl6z2wYPNwuqwzTUlGVRtVLEUw8hb6rk59S9I+VPD6SsOZxDUzkgRaXxPp7Gk4bSfD9xB6uMWAcC8TxKUm1RlHgcOf9hIFl/DMjXb9baGJAMFQPGwDUE"
Data "kkGTHLAxGFnSaxhcfq9oyLmxk2DcLqZOifywHsTGYJRAbAxI9wtrhTM+JMkDeZO2LvTc6Rzlm87aFOhEysLWeiC5erkdr7JW1rjzLpV3AkgeCCBrxKkvXEt1DGQh6spjUZrrhZwE2fKO+YlnUJxyGoUJx5AT2Xhjzj8CJEMlNeD8o3oF5JsXyZJv3JFv0GEY/1EgpbCTtxKEfEySPIgsHnbH4Dbmjgyjh5Pia10Z8o02jUlaj/U+haosAaT9SqH7"
Data "5Ip3CUIB5PllcD23FM7n6fnlvchJekD1mU8iR6wHsqqulmqdG+/erfKnBpIh5MVzZWI4xU6Zaitpm4eqwhAUZ7kjN+mSWBWA79FRnHQChXFHkRtl+YeBbAy03ysBJA/J+w0g5Vta/1EgpWlXUtgphaiSI8oD2JgkiDl3ZHeUYOTlNx5d3dooiBJ4rIbPJRiFLr4O5D27Nbhjt4KgXAK38wtEnyS7ZJivLdVnLkkGJOeO5TW8aHKDC/E7UP7kQPIa"
Data "nWVCPDrnJZAcz9SWkyh/zPJFUfptyh3tkZd4khzyGLmjDQpibf4rgOSGHQaL4WNXZBh5K4Wn0uBzFoPL4v18nCU1AEmhqgTjwytb4O64+SWE8uDJQ/cmGO85rMW9C2sIxuX1QNJzCcjziwjIOXAlKK+cXolHbnpkiRkyIIk/rmIG8u8io3egvBNAVgooZUCKgcgSkDXZyEt5hIIUZxQm24uGnIJ4a+THWSE/xhp50VYEpOUfAjI31ORX1RiIkn4v"
Data "kBKU/wyQkksyZFI+KIWqUogqD6G8k7KkFlUpb+QwlWF8cHmTTL8GHKnhMWm/BOR9BzkgbdcJIO+cW0Rh6wy42s+B4+klcL24H4VpIVSfVLlUtzwSkt2xCci3rDCQlSgREutZS+7Iqi6jbRZy4u+RO14lIG0JyKMoSLAUo3MEjP8FQEpdIFLYKg8kw8hbeVgZQvluEVn3xqu8kcNUdsb7lzbi3sUNr0HYELi79gTcG47zsbsOqwnIpQLK+3brBZB3"
Data "bRnIhbhpPx1u9jNw9cwiXLPbgZjA+zIgORMRQDKS5U1Avk3ldYesERUlYKyiSqrimQJpyIpxRW7CRRQln0JxMg8mN0deDCmaHZL0HwZS1sL6CsiMYJl4SJ28XgFpjCSebsVD5ljPCcpn+oj31UOcjy5inv4KkPUOyFvJHSVXlGD0u0UwuhGIN3bB24XnOMq2Dd2RYbx7oXFXFLDVq7HjrwNJMLJDvgRypZiKdfvcHApb5+Ha2cW4elYB/h4XKeop"
Data "QU0FD59jIPmGO/y4Cci3pnBlVNSWCXEliX+qiEheXa6SwtUED9J1FCbaoSjJGkWJFiiMtyAoKWSNPkEwHv+HgGxMjUEor9cA5G4Q7g4Jkhs6x10c9DreyuZamopbprNyAwnMF8ZII6X418979DdBXEC9aF+Ctz6SvWRK8jZAog8Davjypq0hjzUQ/IhCVlLAI3WCUQ3+D9UQ8EBViMNT/zu8lMc+PL+pBD/XPfX3dyQYr++At9N2PL3Gi1Vxi6oM"
Data "Rgbxlv1aoTsOFGb+06Kc0X4V7pxfTRDSc1v6vDO07+wq3Dq7DG62y+B0ajmun1PA9QsqVLkpqK7MoustX4AZSlmVv0vlTw9kdW0FASlbnUwGJFVTDYWrZcnIT3xAIaojCpNOozjRkoA0E0By/pgffYpgPIm8SKt/O5ASlBKQr2A0eQkiKy+AfpcXdIwgTHthKrtbMu2LF0CaId7fTECY+lSmFFJDIEM9NIWCPDQQ+FgGJQMpQSm6QQhGdsbGYPQm"
Data "GL2u8lIcfI8OWaj6rwOSRDDe5j7Il0Cuw+3T9NlnVsPt7GpcP70KLuc2wcl+F8qL/aiCM1BdV9wE5NtYGMiaOgpceK6jbIfMHXmGQFG8HJBnCUjJISmH/DcCyXoTlEIUprJ4JTtWXpDZa8omCDMJwowAc6QShCkkCUzepvgaCSX7UF7pKxMDybczZ0V4aQuFe2oJMNkxgx7KnJLlS7niy3yRwtOnzjwcjm+SI3NFzysKeHxlq3BH90uvQtXbBOO/"
Data "RARjY0DePr0aNwnGG+SYDKSj7TbERTtTBWdQNRfLmgmovpuAfIsKVwb3RHIHsWgPZ/Fojsp8VOWFEZD35IA8iqKEIwQkwRjDK8wxkBSy/huAlNQYlHkMobzqQcwJlikrUKbMQAsBJSstUAankB/ll6QkPwpnnxu9dEcJyOinuojy1kWkJ0HpcRihjyiEdScg78tCVm9uQeVGG/nRN9deQciuyCCyHlyUueMdcjYJqFvn1/whSUAyjLfP0vN6GG+d"
Data "XkFArqCwdQ2c7Tbiwqkt8Hp0lOo4g0S5JP3LTQVNQL5FhSuDJWvQEddM2kHhankGSjJeEJB3GgBp9W8HMo/vnCX3XN4tc4OMkE8hagGFpyx+LMHIi2mxZLcuIBiDj1CYW68ACyGGNJXgTCZghWtSeJtAUDKQsT76QjHeejIoGcjHFL4+PIQghvHuQby4owxPlx147LIdj5y34RH3L17digeOm192a7AjSq4oZL9O6M55cjPSzXPkZH9AfHtz1isg"
Data "ad8pyiEZRsofGcjrdutx7tg6OF/RRE11PNVzMdW7bEWIJiDfoiIBySi+uk1AMWpLk5CX7In8pFsoSLwkAzLhOAFpI0bovAbkH2zU4ZvxyAPXUAykJGmfBGResDEKCUBJ+QRgbgj9HuL2Beayu2zx7e9ImaFWBKYluSop8IgQw5kWcgTJBGxSsLkIYxNeGL8CkmCM89JFrKcOoj20EPHgEELvqiLoljL8XSlvdN0razm9rogH17bi/tUtuM8QUp54"
Data "h52QxHmifIgpgchiMBuD7B+RBORtbsihvFEC8ibDSLpxdgWczqyFnc1qXLLbi/zsF1THr5aIfNfKOwMk3ypAmvtYXRKFrIT7BKSrDMhEOwLyBKWVx+qBPEZA/mtaWWV3x3qzZPeWlEl+P3d5MJQF5IavYCR3lEAMp9CUFWkplB7Bd3QmKHkldZLsxj+WSA23QVK4NZLocSI5ZsILUwKSW18pl/QyQIIHQflIBzH3DyPqziGEuakgyHk//K8p4fm1"
Data "XSI0deeuDO5bJBhvX9qAWxfXw81hrdCN86vF7AsBjwgx1wgY75+XOaWb3ao/JB5IftN2RT2QBCfDeJL2MZCnl8Ll1BJcPbUS56xXwuH0DsRH3aNKf7VE5LtW3hkgq3ggQP10q6riMGTE30J+sgsBeaEeyFME5HECkmD8NwKZF06gvQFKBpJBfAUjhahyMKZGmCM9ykoojYBsCCU/Tok8iqRIGyTSYwYy0Y9CV19jJHkaIMlDHwkPdZB0XxuJdzQR"
Data "66aGSGdlhF7di6DLu+F3aSeeXJK1nnJ4yi2o7IoMoqv9GiFnci+eeeEq4OEW0VdAstzOroSr7T8vNzsKTUk3beWAJBhvnloK11OLcf3EIlw7uQz21stx8dR2hPpfowrPpHrmhrx3qw+Sy58eSNHLIZ5xRlGMmop4FOV4Izf1JnITr1C4ehFFSedQknCWgDyJgtjjL2HMjbIhCC0EiJIYSEkMnPzzxsTAyeuN8L1BfDNYBpEnKssmIBshjadi0e+V"
Data "EW2JZDrODpkZfQxZMceRRdsMAjArwkZsE8IJ2NjTiKXwNSWEwHxmhqj7Wsj0Nke2lxmKfen4bR0UPDRBzKX9uLRvAlwOzUTQGcoZrVbhse0GAYArnfS37GRO6HyGJwkvE+7odHa5kAuFjhw+MoAMzx3b1UL8uDHnk9QYhPJiGF1tyQ35c7khh52Rf5eTi+l3WoCbZ5bCieB0PLkadkc34rLtIapnvmUd3/dDasx7d8qfH0iKXF4BWYjq8igU5jwh"
Data "IG9QHnkZRckXCEh7AtIORXFnxZ2u5IHkxZDfBCRL/lhjyicXexOQv0fJ/vrkeKb0O1nR73dU3PSHG5pY/FhaqTwliBwz2EL0Qcb4GSKRwtx0AjIuxArJkccRTzllejC93tcMiQ/1ketphqQbGvC12QCnA1Nwbc8EnN84BIfGfgedyS3gtGs87mrPhdfJdXCnvO3OCQLh2BKRtzGY7IgMpSSGlKFkcFgcYrJ+yyEZ4jdrGb2GLga2tD1DYJJkQC7B"
Data "TXJGBtLt9CI4n16CS8eWw/7YRlw4pUz1nE4c8koQHLY2AfnWFAay+jWHzENlWSgKcx8iN80J+akE40sgz6M4/hwBaUsnf32DTrS1AFI+ZGX9o0AW1CufgGTJN+T8mhjIYs5reeV0csGC8CMoCLFAfiB9jp8xcp8ZojLyBArI/XL8Za2q3GAT9uQwwrx1EB9ijhjOG4MskeR/BJkBFNI+pYsCwZh73xD+RzfDZkl3HF3UDY4bhsFl62icmtcVZhN/"
Data "gc2sDrS/C04rDISz/gx4nFiFe8eW4brFPDhZL8CN0wQKQXmV8jjW9dMyKCVwRHhJ+qNA3rDjhhsKT+kz+WcyjK4E480T9DucmIsbp+YRkIvhYL0IF09ugt2xXagpjaZK5ztkNQH5VhWRPxKNMiCrqGqyUF7qj/zsu8jLuIqCNIIxxQHFyQ4oibdHcdx5FMbYoSDmtMwlGwDZGJTy8DUmCcY3QSk9b0zsqIWUH4pbpgcaoyjYHCC3Q/gJ4MURlD8x"
Data "QLmXMTJuH0K8myqSH2pTbqiHsEcaYuRNJMEZ9dwEUZQzptDrs/wsRZha5kUh7nUNPFCdjRPzuuD6+uF4qDgRN9cMh8Oc7jg1uR1sxv4Cw1HfYffA92C8rB2ua0yGu/VS3LaknM1sDq4RlC4cuhIgV07xMv+y0NGZwGRwOLwUEDUK2ivxZ7xZS+FC7uh8don4TJdT5JQnFuPG8YVwOz6fNBfOx2bDhYC0PzIfjqc348yRrXSx9aVK57D13csj//RA"
Data "8oJHEpDVtekoLX6OvGw3AvISCjMIRnLJYnLJ0oSLBKQDimLPEZBnRcOONLhcfk6kPJQs+f2NqTDSQqgxKFny+xtTXqg5SqOsgbhTQPxZIOwk4GmCkusqyLTbjiDDJfDUnAV3rTnwO74eUS4HKEc8JKAM9dBC+FMDRBK4qb6Ucz6ln+1hjorHRxB3chdubB6DOxvHwHvnDHhtmgiXuX1hP6EDzo5ujdMjW+LYuJZQHfAhlEd8BPNlHXBbdyaenl4r"
Data "nPKq+RxctpqHq8cX4SpB4kg5HcN5vR5KhkeoUdBeiV/7Zi0hGMl9zywWn+V8cinBuAguxxbA9dg80hw42UzH9ZPzCci5uHRyPU6Zb0ZMsBtVPAFZK+WR70750wPJ8x8lICurk1Fc5IXcbGfkZV5EUSa5YiqFqykXBZAl8ZcISHsRtorGHZ4TWQ+kJAm0fxTIhmBKQDY8Lq/iCAuUhFuiLoYcMeoEqrwMkXZuO0J0F8Bv/xS82DMJ3tvG4ZHiaNzZ"
Data "MRbuh2bi2Yn1CHfZj4i7agi6p45wD11EMZAUqqY9MkLRYwL8liECdFfChRzRe9s0PN04EZ4rR+Px4mFwm94LDiNaw35YS1ya2hnHp7aC9tgvYTanJW6oTYKX9QrcNl+Aq6azKWRciivHFsKRdJnCSIaS4XQiMBkeoUZBeyUG+M1aTDAS5ASkeHxiCcG4UAB54yiFq8dmklNPw7WjM3HReh4cbFbgjMUmeLvbUsXnEot8R+wmIN+a0hDIiuoEFBV6"
Data "ICfrGgFJ7ph1HiVpFK4SkGWJjgJIdkl5ILkxpeFSkPKSh7UxFUUdEZIgk3c/lnS8MZVQuFwUQKGtly5SnPci2GoFvA9Mhsfm4XixcSTCto5DqMJEhO+ZDr890wSUt1SnwpecIoygDLmjhlB3LcQ+MUTqExOk3tVD2WP6Gxw18JDec3vNSATsmAWP5SNxb2Zf3BjfBecH/IRTPb+Bw8AWuExueWpSS5hM+A4289vCWWk07hnMgYvBTDibz8Nd29W4"
Data "YrMAl48uwCUKIxnKK+Rg1whKhkeoUdBeieF9sxbBicJRp9O05cf0MxhI56Pz4WIzCy5HZwggL1tOFRcGW4vFsLPailtXTKjiySErKI9sAvItKkQkz4EUYKIUlZWxKCx4LIAs4HC1HsiyZAbyUj2QlEcSkK9uYy4BKTml1C8pyy3l9//91hJFkVZChRGWLyUaZ0j5EQQq5YgNJfuZsvchnn6Xx/qIPbMZQdpzEaw8BRG7JiCCgVw5FOFLhyBJYSpC"
Data "FCbj+tJ+OLeqL+7Q60Iv7UXsncOIvKuF+CdGSHpijDh6XPbYFFn2++G+YRQ8V4+G39rxeL6cwtbFo3BzUk/Y9ftB6NyAH2De5WNYDf0OeoO/gMn4H2G/cQDu6c3FA8tlcLMiQCiPdLSm3I2AFCIoOIRlIJ2O10PZCITyahxEORGQ104tEv2NzgSk81HaCiDpwkBAXrWaigvmk+i1i3DamEJX6624bqtJ4WoWUMZ5ZBOQb1WRLc3JiX0BSopDkZt1"
Data "HwXZLijNvoIScsmytAsoJ4csTyIoExxQyo07sXYoiTlFUB6XQSmW82DxKgLWYq2dXALnt7bcNZEfRtCFEny0ZeURiJJyWJEEadwxFCfRBSD+GLII9NQwM2TTzyxNOItsb3Mg2hFw00X0wekIVhiK4A39EbSiJ9I2jkDi/AFIXzYGEcvH4+nacbBfPhAm87sg7txBpN/QQdp9E8Q8MkTIE10xsDzX/TDirdbg+eohCFs2HM/nDkLQ8nG4ObkPjvf5"
Data "AafJIU8P/B6mXf8Goy4fwLJ/c6i2ex+H+38J5cGfw1VzNpyN5uP6kYWiYUcAaT0X12zmwYlAcbJZiOsEjdNxgk1IBuc/LYKSwebH/LnONvTcZj6c6Wc6W8/EBdPxImS9bDUHDuaLcMpgJc4aK6ImK4wqv5CAfLdG7Pz5geRmVtEflYey4hAKVd1RmHWDgLyKsgyCsB7ICgKyPJEex9mjNIaBPEP55CnZqB0e20qSQclAMnS/LdFXGG79mvLrlRsh"
Data "U3YEvY5+RlHCKeTFn0BmlLUYeZNNkJYlnEPJ8+PAs9MoPrEDwZtGIGrrEGTvHYtUhSFIXN4XKTN7I23uMEQuHA3fleNxecUw6ExogyfqS5By8RDS7hgh7K42Ajy1EOF1mJ4rI0hrFl4sHYDYpSMQQ+95NGMA7Ia1h2HnL6DR8i8w6/k5LAd8BY22/wuTbl9Cp9NnUO32GXb1/htMV/aEs8kCOFktEY06LAGk1VxyzHkEiwzI60eX4NoxGUh/RBKM"
Data "zsfIUekzr1vTfroQMJDXrWYQkBNx1WYGHC1nCyDP6q+ErbEC1acfVT4vDdkE5FtVZIPKufm7IZBOBORllKdfRkXqJVQmXxJAskuWxJ0jlzwrB+Qr5UUfFRKDBn5DeZHcf0hQNiI+xsok1+TXFsadQAEpL+YEueNxgvMUKuPPAaHnkeOggkjV2YjbMxHZ+ycge9cIZG4ZglxyyNL145GxdAyCF4yAx6IRuLl6DEzGtcbFFYORaq+ClNuGCLh5SADJ"
Data "a+MkX1fCQ8WheL64PxJWjhPueGFkB+h3/wbaPb6GZsdPcPCXZtBo9xcYdf8U2m0/gn7XL7G3/QdQ6Pp/2Dr0Y1wzJPgIyAsWs3HJcq5wp6uWc+qhXCCc08lmMa4epXDzGIWwf0AMI28ZRv5MJwqVr1mRQ9PPdLKcLoC8Yj0dl4/Mgr35AgJyuQAyO/RBE5BvY3kNyKLQeiDdXgJZkXEFlWmOqEy5gopEAjThEoWtlFvG2aIo7rRo3JE18Pw9lL9L"
Data "Ar43A5lF4Sw7JYfHxXEnxc+UVB1tC3hZI/XIJiQcmocS/cUoVZtBMA4iGIegTHE8oLEaZbsWIHzFeLjPGYTH68bDfjblgnO6I8VuP1LvG+IFARn6VBchd5WRcGEbbizvQQ45GPHrp+A+vefkqI7Y1vo9KLR6Hzp9vod6+4+w/+dmODKgOTnm+9Du+Cn2dfgQit3+ijV9/oKL2tMFkPZmM3HxyBzSLFw5MltAedVyHuV18wnKRbhiw1rwq7p6lPLO"
Data "3yH+vKtWtLWk5/QzrtHPvHZkBi6aTRKNOhfNZwggbQ2X4azRZkQ9oTC/JrcJyLetvBHILGeUpROIGU6oSr+GqlQnVCRfpVzyMuVu5JJi5M6Zl0D+81DKck+poSafQlKZjgrlhBOgETYojj6JsrgzqEiwRXn8WREy1wQfR8653Si22oxK6/WoMl6Gsv2TULd3Mmp3TkIahZ11B5eiRn0t0nYvgvfS0fBaPgY35/fHuantEXlkM5If6CPwniaifQwQ"
Data "efsg4s9sgfOCLgheOQoR66fCcXpfaA9uibUdPsKylv+Hbe0+hlafH2HU/wfodP0MWq0/gmrL90TIuqfvx9g74TucOzSJwFhMIeIsoQsWlMOZz4SjBYM5F1cImCuWnF8urM8x36zGIH1dHBLPFzDyZ16xoPdZEPj0c69aTMcl88miUcfBdBrOm82vB3IjnjpbU+VLgwPenfInB7IWNXwjTzHtKucVkJm3CMgbKEknCDOdCUpnVKW5oCLlOgF5BaVJ"
Data "l1CSaI/iRDsUUtgqwslGoPx9kjUKSeJGIpmOCRVHkzMSjKXRHKLaopp+LoeqJeEnUel7BOkWa5GnsxhlpisAs+WA5hxAeSbqFCchYV5fhC4bgoz9S5B3mFxh+3x4LRyGO9N74dzYn3F/9wTE3dFGyCMdcgxdxN9SQ6zlOtxa2BshqyfAe/l4mIxoj1XtPoTqzP44tmUWQfcztrT8ELr9f4Zm1y+g2/FzKLf4C9R7fIG9/T+F0bJuOK8xGVePLBIw"
Data "skvamxEYZjPqoZyDyyTHI/MpnGXN/VU1BLShOBxmORLo/JmO5pS3ms/GFfq5jmZT6WdNgb3pBJw3nkJAzoWd0VKcNV4Pt7OHZS2tTUC+TaUWtTVyQIoc8pEAsiTLlYAkGDNdUZnuioq0GyhPdUF5shNKkq+gKIlcMonHthKQ9SrgrhASD6v7XWIgeX5lHEEptkcJapk4RGWxI5ZReFwea4saCpVBF4PqOHsUBh1H6WMjpGgtQOKOMUhVnoA6k8WA"
Data "3mLhjiVrRyOLwlP32X3wYusMxKquRorqOsoNR8NjZj84jv0F5xd0Qrgz3w5AB+H3NZB8QxVResvhvmQQ/FdNhMvMQdhK0CmO64QrRrsR7noCjntWYVvX76HYhvLHXj9Br/PXUG/9AQ52+QQ7e30IizV94Kg3i8BYIIA8bzqDNA0XTSUoKa8kXbaYR6Esi0PaN6sxCOV1yZLzVP48Bp1gJBe8ZErvM52Fy/RzL1uQMxpPxDmjSThH++2MluCM0Rpc"
Data "tNxN1Z/RBOTbVSQgeR5kthyQdwjImwSkCwF5C1UZtwjK2wSkK0qTr6OY8kkeTseDzgsojGwI5O+FkltPcwlCSQJKKQSmz+C+zupkB1TE26Mi1h618RcJSEdUx9gj3/8Eiu4bIHDzMKRuHYGMAxOQrz4FVQemoXrHVJRtmYpMhVl4vGYcbm2YDI9t85CouZlC0SkIXDQSd6d1xvEJP4p5jWEPtRHmooy0q8oIUVsIj6XD4L1iEk5P6IPF7T+lk3sf"
Data "nt86g2fOJxBx6RhsNyzA+jZfYl+X76Db9TvRyqrU7n1s6fy/MFnRAy6mCwmKecIdJSAvmEhQzhJAXjKfS8D9NpBSS23jmoNLVrPodQQfAcmfyT+XgbxsQmFyPZDnjCbAzpCgJEjtjBfhjDG3tG6h6k+jeueL8btT/vRAii6P2kJUliehtCAIRbmeKM11R2X+A9SSqrPuCVVm3EMFQVmW5oritOsoSXUU41zLUuxRlmSH0kRbMWeS80pucJEAZfAk"
Data "SHmf1CAjXpdwRnRliHuGJBHUSXQs2ZagtyMnJghTLqIoxg61KZTLJlwCMlxQGumA0nB2ShfE2e+F45hvka04Egnbh6NCey5qVOaiWmkeSvcsROSWmXBaMwF+RjtQ4XwUSUb7kLJ3NfwXjqT8cCxOjPwOD0yXIuymOsId96L6vjE8t0yE/+bpeLp2BhRbfQK9lZMR6H4RT26fh7erPRJuOSLu0kkoDe2OrR0IRnJLbtTR7P011rZphkOzWsFOfSLl"
Data "cgtxQmc8bI2mkibjvOFk2BtR+Gg0DfbG00kzcY6gsTMmYEymCzHAspxz9ksgGwtjX2k2LhyZIXSRQL9oRu8xmYsLxvTYaDppKs7qjYG9ySTYGkwgZ5xCP2chLCmsP6pN4X1JJNV/E5BvUXkFZFVporgxa1HuU5TmPEJl3kPU5D9GVY47AemOqswHKMu4i9L0WwLIorTfD6QEZWNA5iecRh6Jb3NXwGv3JJ9HSQr3fV4S4sakWgKxIvEakHcPSLuJ"
Data "WoKxOs4ZAce3wXnSTyjaMwHZ+yYhl9wxb+d0lB5YgtA1kxCxfw1yr1kB/reA0IeodbNFiuZ2hKydjqClI2E36gfY7xiB8GvKSLp6EEVXNPF43Vj4rCNopgzEju4tcMNGEwHernhy/wp8b19DyPXLiLriAKsNy6DYpw20uv8gHFKl66cCyAOTf4Ct2gQBxkndCThrOIVE4aLBJAHlecOpOEc6bzSDYJwhgGUoWeym8lDKg9m4ZsHBYroQA3nBlN5j"
Data "PAcORvQ+w5m4QD/7jO5oEbKe1R8rgLQzngfLwzMJyCWoo/qWRUfvTnkHgKSQtbbgFZA53gSkBwH5iID0QDU9rsp+jMqsR6ioh7KYQtmi9Gu0vYwyCl3Lks4TkLyqgB2Bxt0hsonMsmlap4T4Me/jYyzxOsoP8wnk3CRb5JEr5hPcxeSK7L5lqdeEqih3rc28iaoUV4B+H+Q8BrIeoi79AeKuHEbYjnEoPzgT+QemI33XZDFMLmXPYjxaNQUlFwnG"
Data "aC9Q7AvEPQMC6D0G+xG+YwmeLRgOl6mdYDqzNeIc9yPTUQUFDqq4TeHq000zodb9RxjPG4sID2f4eN2Ex70b8H94Fy8cLyPE8RLcjhhgQ/8O0KQ8Urfz5yJkZSB3jv4SZ1XHw05vugDytD6FvvoTYKtHYaP+RNJk2JLsDKYRqNNwxmCygFYCk51SHsxfF3dlkOuSuBWVXZdhtDekY/oEqsFUnNEZS+HqeJwhpzxNYetZOm55eDpstBeiPMuX6r8J"
Data "yLeoNA5kSY4nKnMJxnxPVOd6oYZUleWFiuxHKMu8J/LLokxnFGc6Cjf7I0DyHZnzKU9kFabKYCxNIxjTnEkEftJ1CpfvoDrjATnkE9oSjNkEZlkgEO4EXFZDkcosZO2ZjMy9sxGzbTZebJmLYO2dQHIQhbakvHjkRXoTnD5IPGOMCJXN8Fs8Dh4LBsNs/E9IsN2FjHN7kX1SCS4LB+HB+ulQaPsV7hmqIuSJK+7ddsKj2zcR5P6IHPImnjlcxAOH"
Data "01gxuDM0+rYUQG7/5X+wvl0zKAz7BKeUx+Ck5kQBJIetJwiK09rkUDrjSBQ66k4kTcYpPdZEAW1jYEph7JtFrzHlxhpyX25FJdc9b0ChsD5tdQls+vzT2mOEO54mpzypPx6n9KfBSmsaATkfuQn0nTYB+TYVCcg8OSB964EkGPOfUh7pi5o8HwLTF5XZT1BOIWxxzi0UZd8gMK/9MSDjz4kVCQooNC1MvYyi1Kuy/JQcuDTdjdz4NkrSbpM7U9hM"
Data "FwUU+tKWwCp8QZE25T9ZnoDPSaTvm4KU7ZOQtX8RwrYvgOeuZah6RLCWZ9Dvn4Kqkgzkp0cBmdEoIceLMtyH4LWz4L1oOGyntYe32mwkW23Fi4PzcXslnbhT+uDgsC6IoZzRw+0K7tx0hsfNuwi4/QjRNx/By/4ybjuew9aZo6HRr5UIWRnITR2bYduIz3Bi/ygcVRuLY1pjcfTwGNIonDxMnys0Fie1xpEm4Li2BOx4AS/DKQ8mSwKzcdFrjMl9"
Data "SXYUFrPrsjPb6hLQOvRYZyJOaY3GKZ1RQif0xuG4zmQBpLXWHCSHuVD98xSsd6f8yYHkkeWU1P8dkE8JyKcEpA/lGX50Uj8nKJ+hKs8bZbmP6TiFrTkETA7B8weBLE65jMKUKy9hLM24gVIKUcuy7gg3rivyphTXh0QhZxm5XUUoKQI1xSFAIl3hvY4hae8UpG6fhtRdC+GnMA/xNocptI1GbW4CSgozkFuUjezCdJTnJwHxzxF7TAeRisvht2g0"
Data "XOb1wrlZHRCqsRgX6fGdNROg3O1bXNi2FEkPb+Axu+P9e/C58wh+190R7foETy9dg8vVCzi8YzXU+rfB4fYfY0/b98TQuX0Tm+PY3hGwUR0Da41RsDo0krYjcOyQTMc1RuOYEMM6TkDLOq497jUwJdeUwGxcBK8RhaOG42BrQOGoHuWrOhSmak+DrRY91iJHJCBPaI3ASe2ROKYzGjb0M63pNVZasxDld4nqvwnIt6j8NpDsRnX5Lyif9BPPy/M8"
Data "UJp7D8V5BE0uuSTPlUxyICBfrbtTFMcDBigc5ZUFonlRLIaTIWVYebEsBpdeF08gp1ylz3B65Yz1MJZnUb5KuSLK6WeX+JECUFdKEFZGoo6ALC+ix5nkmn5nkaW1COk7ZyFx2zz4KC4Cnt0GWSzysxOQmZeB1MJcJOalIq8gGXWZYUhwOIJYpQ0IWTYJDxcNhs3Qb3Bv7XA4zOqOy/MHQbX/zwg/Z4bo+8547nkfD+/dx4s7Xgi49hBBl+/D5+pN"
Data "XHZ0gK7yFqgOaAONtn8T/ZDbe7yPw3Pb4qjScAGkucpQHFEbDkv1YbBRk+mo+kjYCI0mWAkQTZnYSRlMeShZskahN4nyU4PRQmf0CEwKgxnG01oEpSYBrTmBHHkUjmkOE1Ae1aYLhAZdKOqBDPI6Q/XfBORbVF4BWVEmA7Ik2xel2fVAkiuiiEAo9Ec1gVmZ/wwV+V4oy3uI0jyChlyyJPkySpMuNALkrzmkDEieW1mRwo0310XOWELuyAMSOCQu"
Data "y74vwuOaAi9yyecEWBAqCwLpQhCA0sIwVFbG0+8dSzniPRQe2YLEXTMRs2s+vJRWAAV0LC8ZtVWlqKioQHltLVKKC5Bbno/y3EQkupxD3IEtiFw5DV5LhsB25I9wnNIZj9ZPgsWYzrCcOxL5nq4IeeCCwKeeuHP9Bvxue8L/hgc8HFzgdd0N586dgLrCcgGkausPod7rS+zq/TGMl3TF0d3khipjYKo8FBaqw4Ss1IbCWnUojqnSsXrZqBEkh0YJ"
Data "B7XRHCmglHdKFrukvLhB6NWWoNWncJTEQJ7WIUAJxlOaDOQUnNagz6Ew+ajG0JdAWmqQY+tMEWHri8fHqP6bgHyLCi8nX4YaEJCiHzKYQKDQNMdH5I0crtaVBKK2JBiVxYEoJzDLKacsy+Vc8gEqsm6jPI1H7lxGcYI98skF88gN82IIwtiTKIijbcwx0dHPnfw8O6Q47rQYmC7TOVTEX0RF4hVUpF+nz6RwtcANRQU3CTwe4H4L1bnkknnkhAUB"
Data "QEk4hatxqKpJQ0ldGrklgZcbiFyb/UjRWALPTWPhq6cA5MejNiOVLiqFdLyEzrkqZBeUEJAVKCopRF1sCBLUt4sB5w/n9Mad2T3weO4Q3F88AYf6tUOs4ykkeN5DkMcDeN+6ixf3PfDE9R68yClvuVzDDScHuF04iUPLpuFg35+h3esb7O74AbZ1/wBH1w7G8R2jYLF7OKxUxsL0wHCYHBgCs/2D6PkwnCQIz6qNxMn9Q2C9px9BOgSWh4YKWR0a"
Data "LsJcdkwOaVmca7JOaRN8pNNaJAKPG4dO6xK8uiOETmqPwYnDlI8emix0Um0STqqPh+VBugho0msISBvt4RS2joElQW94cCT8n1jTOcDLQb475U8NpLgdHSpQWQ9kWWHISyBrc18BWV0ajIpigrXIH6XkkmW53OLqTkDeFe7GQBaQO+bGEpAEI0+REiNu4mhbP1eSh8EVxZ4QQEpQlsWeA5KvABSu1mW7kAOTQxa4oCDvOgqynFBIn12a4EL5IAHJ"
Data "IWpuELloAAoKIlBYnUzXE1JmEHJOqiHx8BL47JgEXyNFctMUej2daAUVBHM5atILUF5OTykgyCkpQ3lcJEIPbkXillnwWjgA92f2wqNZQ+A4cRBMp45Awq2riPZ+jABPD/jdckfAPU88dL2Ne3dvwunWZThdP4uHF05AbeZIqPb9EVq9v8beLh9iZ6+PcHztEBzfNhIWO4fhyIFRMFQaDNODwyhsHSGAPKLUHzZKA2CnMhyXCCoG8oi6TBzaynLO"
Data "UeScFMISkCcOTxQ6dZigrJeAUpvyQx0CVmc4jpNOUK54XHMcjqtPIk3BCVV6n9oEHFEeIoA8fphg16KQWXs0ATkGRioj6O+zobOgCci3pkhAVlGlVJQno6wgjFzquQxIcsI6zh8bAlkgc8g3AZkbfZJ0XAZkvDR4nIGUjU+VXFIan1odcx418Q6o5DmXWRS+5lLomkdOmXVDjJ9F/hMgi0Xhc14guV04OXY4SsvILekCgiRP5J1WR4LaPPjvnISn"
Data "WuvISRPJSSkUKyIKiysplM4Uq+uVkHKLCMj4aIRo7EaK0jIErBoD95l9cW/GYJj0aQvHHWuQ7eOOKJ/HlGN5Ue5IUN57gjtuN3HD7Tqu33bEtSun4HXhFHYN7w7V3s1xuNdnUO7xEfb2/xjH1w3AUUVyxO30eXsGw3jfUOgTgLp7+sBwd19Y7O2P4+Ra7JJnNQiOg4Mp1xwMSwJThLXkoCzOMVnHKOw8TrngCQ1yQ9JJTQpD6yUg1BqKo6RjFPIK"
Data "V1WbiKOqk3Ds4HgKm8cJII9qDBdhq6XmENhoUdhKDmmsOhpBTzlkbQLyrSnyQFZWpPzDQFZRyMqd98VJlwSQOTFn6oE8Ksap8thUnl7FQPIMDoZScslSgreMQtyKyDOoiKbHFPLy2j3c6lqQfBWF8VdQHH0NGd4EuY8DEH1P5pIlYajO9qE81oegCyYgKZ89r4HEA7MQuGUMHuycDaRSeEv5Ym0hnWyllajILBArtFPkioJiighSEpFywhjhu5Yi"
Data "etMMeMwaAOcpA6HS9Uf42OihKPw5Ip55Isjbh8JVT/jefwJXV1dcdLmEq7cvwunSMXidsoJCt1ZQI3c81PsjqPb5CAcGfwrrVb1xZFN/mGztC/3t/WBOoaHhvkHQ3d0PhnsHwpJc8oT6KHKwkbA5QDnmgcGwIGhYRwhUPm6lSuEuHbdWo/BVfazQMXVyzHodPzRWiFtrGTRrzcGw4XCXX68yHtYHJ9Bn0/uUx4jPF8fU6WeRC1tpEpAUApuqj0Oo"
Data "z2k6C5qAfGuKDEi+XWuxALK8MBwVuf6Ut/kKIEEAvgSStmVFfnJAPhBAcispT8cqpHyQ88ecqBMkdkXOHY9CmucoTavi6VQlFNKWxpJLxtAJkUywJdmjildHjyOoI84TT2eR8PQUEh8dh6+dBjyPHoTPCQpL3axQE+VKVHkTaPT75VB+meUBXNNBtuo8RG4ahTtrxwDPKMytyCQV0etKKdeso7y0GoVkmqVl1ajNzEDN4xt4tGkekrcvwdPZw2E/"
Data "oQ9Uh3RE3N0LdHEJRvhzbwGk3wNP+Dx4gus3XXHuugMcbzrAxeEobmtrYFu7H8QYVvVeH0Ct79+gPPAjmC3qCKMVXWC4oSd0NveEyd4hIo80PTiCwBwCnR0DoLd9AMz2UqipOpa2Q2FO+1kW+4dSmEvhrfJwISt6j7UKgVkvG1UCTnWMEPdzcmuttfpgCncpPyWILVUItgNjcGT/WFjtI/fdR6EzAcnOa6lKobPKIMpVab/WJJipT0TEc0oZmhp1"
Data "3p4iD2RVZeprQHL++GYgH9cDeVPWbZHoQEDaCXfMiTomgJQ5o2zdVmnisTyQvEgWA1lNoWs1wVxO+WRxpD1yQuyR/uwcUjxskXL/DNLunEXoeWO4am7EOaV58Di6C6XB9hR7PgBSCLwsck6nw6jWXYq0bRPwZPUIlFw9Qg5J+SXfv6KshLYU7eaUo7CwlkLzWtTmZQNxgXBZPxcZu9fh2fxxODamJyyXT0am/wOk0bHQZz4I9PLFs3se8Hr4BFfu"
Data "uMD2xgVcvmGHW/Y2sFu/CsodWkCn77dQ7/4eVHp/gD29/wqtKS2gPbcN9Fd3h/a6ntDe0heHt/SD+qY+UFnfk9SbHveDjsJgGO4YCtM9BKvSMAGoDM5hL8GUh/MVpKNeiVzUXHWQkMxlR8Bi3yiY7x1NuSrBqDQc5vsJQgqHLQ4OhLHyAFio0bHDk2ChMR1RLy7QWdAE5FtTZEBW03+lBGQ6GUqUAJIHAbwOZKAckLLBARKQPDeSgSygfFAAGSFb"
Data "T0cAWA8kL/vIyzcW1QPJ4gnHrPxQctKwkygiZyyOuIziUAqBg1xQ+twNZT5uKHC/imqvG8hxPYM7Opths3E0HA7OQuR1VSCCrvCBp1ByahvqdJYhf9tEPF85FPGmO4hACm/5tms1JaitrkFpcR2JTJOArC7IA9KicWPnaqTv2YwXi6fAaGRXOOvuRFa0N6IiniHkOQHp6YOndx7h8UMPON4nh3S7gEtXT8L9vBVMxo+EXte2MOjbHGrd3odyt/ew"
Data "rfP/QHnY11CZ+BMMlvaE7up+0FzTF4fW9YfW5mHklpTbaczHcY1FBMpM6G8bDeOdI2G2i4Akme8hGAmiI3sJRnJWFsMpE+0/QMAxdKQjygTWQYL44CCYKg+EOYW/ZvtGwExpBEFOoO4mGPeQ8xKQRyhHNafXGO4fQPCSg2pOwxGN2Yjxd6SzoGno3FtTJCBrUPYSyMq8ANTkPpcBWfKicSDzHqIi5x4BKeuH5NUDeF4kN+bkRFqLpRtFmCqAlC2I"
Data "LK2pKkEpA/IMiiLPoiTKAWXRjpRLuqAq/DaqAu+i6vl9VPncRd4tR+S5OSDfzQ4JF4xw89AyWK4eANvtI+BjthwVrupI1JqLGgpZCzaPQ+CSAQjYOw9IcKcLShS5YwmKC4vAd2yvLCfjLK1CFQFZmRyB24d2I3nvFrxYOguHR3aDJzlxWvxzBAZ7kkP6IuCJNzzvPCQgH+GKuwscbtnD8aIVntpZQKN3F1j16gTjvj9AtcuH2N/lfSi2/R8o9f0C"
Data "yiN+hOHCPjBYNgiHl/WHzZ4ZcLVQhPclbTy/aoiHdpq4fmQ3HAzWw3THGJgylDsILoaSQGIoLZTIJeuhlIW07JwEGYW/FgdGyURgmioPhskBCoH3U2hMLisclyQg300g1gNpRq8xoBzW7CADOQOWmvMoSLhOZ0ETkG9NYSAr6yoISTpT+TbXVSmoKQxFZZYPKrO9xcic2uIAVJWQygJRWeqP8iJvlFK4WJJBMKY4UahqLzcQ4CSFpcfEolXSQskF"
Data "vBp5/arkskWRrVFMDlpMoW1R1CnkhdvR1hHlUc4E400g+jEQ7w9Ekfy9kel0EcW3ySUfX0fhzdPIdjLFQ+3l0JvRChZzW+G2wiAkH5qJKuXZqNs9AzHLByJ011TKIymsLQglJ09CQU4uaiqJTV7xso44zc2kC046Qh2OwXvVQjyaNwmWSyYg0ec60lIDkJwagRBfb/g/9IT3/Ue4d/c2Tl85A6d7F3DrijVO71iFQx1b4mS/ztDv/j3Uu3yGPW0J"
Data "yFZ/JSg/xM4eX0N5eGscmtQd19XWwt1sL/zs9OF33hD3jx7CVcNduKi9HZf1FHBWjdxyx1gYbiaH2zESlhRqmu6gcFahL4y29yeoCCISt9iKVts9Q+s1TGwNlPoJGe0ZBKPdQ2C8i46RTHeSdlE4S0Aa7ukt6wfVGAe93ZSXas2D5vbxKM98Tl9I03zIt6bwiuWVdVXkkLxqAOVb9UBWZfuKllYeqVNDYSsDWVkaQC75AuXFXq+ATL0qGnPkgeSF"
Data "qThMbRRIvgXASyiPUc54ChVxV1CXSCDG3wfC7qLu2S3Alx4HPyM4KewMoq2vO+oeXUPlXQpRPe2RfekwXHdOhNvWYfDfPx4R20YAWsuAPbMQt6wfIhTHIu3sAQIykAwgExX5Baiia05hAZ98FBVUFuH2NXtc11PD5cljELdfAacV5sP5rA6WL5sIfUNV+N67i6DHnnh6/wFuul0XjTnXnE/inr0JVCf0gVGvtrDu1hJa7b/EgdYfQ7ndpzjY+Wvs"
Data "bPsptrX9DIbjesFp2xIEHjmEAOvDeGZ1GA9NVHFdcxds92/AyV1rcGz3Mtjsng0zxfEw3TIKZtvI9XaS6+0gsLYRhNz40yiQDOMIsdXf05/UF4b0GsNdQ2C0cxhpCEzoM0x2UijLQO7uC2OlgbA8NB7G+8bjyKH50Nszk1IT+n6bgHx7CgPJTTrcsCOS+6p01BSEEZDPBZSvA+mPitLnFLbyigIPxJxIXsqD74ZVFGOLwujT5I4nXgLJtwHg28UV"
Data "RJgSjK9umlNCQApFWIuFqnJfnAZi3IDIWyh1P49kewsknzZHrsNJlDraEYB3gRcPyC3vAd5XgcfnkGOrBi+lWXi+eypiDk5GxOZBqFOZDygvQM6mEXixrBcC1SlsjaH3lOfIWlpr6c8Tq7RXIT01EgN7tMfMLm1gOqgHbq2YgYsqazFrVAeMGtEZ33/zIdwczsHrxg0C8i7cuLvj2mncdLTBDdMDUB7cHqdG9YBpp+bY2/z/sP/nj3C4a3MY9msN"
Data "ze4/QK3rD7CZNBB3t61AlLkmnunug9vejbDduBiWK2fDaOk06C2cDO1F46G7YhSMN46BxdZxMNtK7riVnHI7ha7kcmY7KT/cNUDIePcgIXZBo93kjBTaGhCcenRMbze5JL3WYKesociQHNZ4O2kHt+YOJvfsB/2dfWGhOg6WatNhqjKH4FxJF6tYOgn4YvzulHcOyNrC8JdA1vAsDwKyspgkB6SY7ZHhLJupEUMhZ8wZ2r4erjKMEpAyye50VRxh"
Data "+RLI0vDjFJpeAZIJnBdOSLbVhv/hbQjX3oVIbSW8UN6CO1sWI0x/FzJPaiL9mCpiDSkX2zkLD1aNRMDWiQjbMgxJiiOQvGoYoL4Mdcoz8HRWG4TsnYJSFzM66bIoDCASq+pQUVONyppCxMT6o1XzzzC+7Y9YQ/BZT+qHq3qKGNz1C6xYOA4/f/shnI7bwO/WTTxwuYa7rhdx9fwR3KUcU2fecGgMbg2zPj/gcMsPsOfbZlBt8yl0OjeHbrcfYNS7"
Data "JWxGdIPtlME4N30Erq+YBdu5E2A0pj8ODOiAbT1bYXOPX7ClVxts6tcSeyf1gNZSCi83joXxhuEwXE9hpuJQWBJwZgzijn4w3tkHhjsHkGTQGVA4qrdzOGkodMkFdXeSS+4YSKLj24eQCNxtJAp5TZXYIftDZ1sfyh/H4ajmXBju49UG9gLVTYtcvVWFgeTRrNywI5L7qgwBZHWOH4nckYAUg8oJSBGuljxDaaFs+lVROi92RUDGvu6OvMix5I55"
Data "ESbIDzcRQBaFs8wFkELhVqgIJSDjrwMepxBnowR3xZm4vWIsnqydgqfrpuLBijFwXTwMj7ZMhofCVHhsngjPjRPweMUIeC4aiudLBiFgUQ/ErBqA0Hm9UUbhH9TmIHpVT0RRXhajtwmICyOHrKAcuBwVFJ4XlKcjOycKcyePwsgW32H5j3+DxYyBCLthg9ZfNUOHH95Hy8/+igfnz+KZy3U8uH4Rj2854tHVk8IdFbp+C4vRHXC409+g3up/cOCX"
Data "/4Ua5Y3qPMCcZNLzB5yjcPXy1IGwG98XZv3bQK/3LzjY6Tts/eUjrPj2L1hAP2f+N80w5/v/wfq+P2LvlO7QWToYuqsGQ38NhagKwyh05TywP0FFueSO3jDY0Z8kg06XwlHdHcPElvs1dQha7tvU207Ht9FnULhrqEjaRjDvHgCDXf2grdgbpspjcVRjPvSV5uDJtSNN67K+beXvgKzORF1R1N8BWVFEkgNSTFAmIIuSL1HeePbvgJTcMTfcWADJ"
Data "KgwzeR1KArIq2IbCyisovaKFiMMrELp3HmJ3z0XMtumI2joJMdunIn7/LCRrLETEvunitnJRO6dRiDoJkavHwn92b4Qv7IFnk1sjatFgyh+HIX/baJQdmICwNf3hv30m8p0uAvlF9MfWopL+ztK6TFTXZuCIliqG/fA1llC4uaPf94inUHjGyDZo9XkzjOz8CwLIGW+fOYG7V8/j6lkzuNhoQXvhKOzv/h3OTu4O3Z4fY2+LZkJ8awGdjn+DNd8V"
Data "a2R7XBrfFVcn94bLjAFwmzMU1+cMxqWZA3FiYncYDm0jhtvt7vYFFEiL2n2CdQNaCCg1F1JoSUCKsJWAMlLoTWARjNt6Qm9bX+hu608aAO1tQ0jDxFaLoGPpKJILknQVyDEVyDEV6LMU2FkJ1h19SP1gcmAcjlC4qrdnNpL9XAnIppXL36oiA5LqhRMsTu7rgazJlXV91Bb4oYrEQJYX+6Gs2BclBY/kgLwggCyIOoWiqBPkhDbkjpYyIMUtyRlI"
Data "IyF5IIvCj6AkzArVBGSe40FkWm1FsuYSpByYjey9M5G1fQKSNg1H9IaBCN3QHwlKYxG1ewzilSYgeedkJG+ZiJwtBOvCgUhe0g9+E1ojZO4A+M0kZ1zcDYU7RiJmdR88WzsOYSZ6qIuKoz+yGnlVBagAhbDIQU50CG6YGWBN529xeEZP+F4xQexzJzpht8Dr8hlE3b6BZ9cu4+bl07hgo4tTKpuxpffP0OrTAuZ9m+Ngh2bY2rwZ1No1g1Gvj3F2"
Data "ZAs4TeuGm3P64PbsPrg5vRduTO2BK+M64vzoNjg+9GeYDWwOnT5fYH+n97Dhx2ZY8GUzzP7pfzG3/adYP/BnqM7pBcN1Q2G8mXLBTX2gu7EbDBR6QV+xB3QV+xBwMvC0FAeThortYcW+QtoEoLYCueVWFkG4tS+pN/S30/u20efu4u6RcTDeS/nrnrmoywikiCi7Cci3qTCQ3BPwEki6YlYXx6EyNxjVeS8IyBcEJOWTRQRl8TNUFnmhPP8BSrPd"
Data "ZDP8BZAydyyKPIrCCCsBW2GYBQpCZUCyS3LoKoWvxWHmKAk1R2UwhUz+lki0WA2c2gFYb0YW5X0pm0agePcEFO0ei/jVvZGydTDSdo5C8Jo+CF3dj0AbhOS1o1C4dRriFgxC0srhiFoyGI/GdYIvgeU/vT0i5nVC3rbx8F4yHFeXz0PcFXLJvHTUVDKMaeT6FMaWpAGZMfC0OEjHTZDu5YCMFy4oCLyPLJ87SH14EylPbotFrpJ93eB1Ug8m80bA"
Data "aERH7Gr5v1BoRc7Y/X1YjvqJ3K8bbszvK4C8Nas3vJeOwJOFQ3CdYHSe1AX2I1rCuv83sOj/NcwHfwu9vp9hD71/+dcEJOWgU3/4Hyyn/FV5RleYrh8ugNRa3xOHN/QQLscwygOpQ+6pS98LuyGHotqKPQWQOlsGQW/zEOjRVn8LQylzV22FbjDZO4iAHAPdXROhpzQfqEgByvPoJBAtXe9MeSccksfq1JF31KIItVWZqCqJQ2lekJisXEPuyEto"
Data "8JKQFTm8rMYNsQiVuM158nnZrI5oG1kjTZglyoItUBJoRic2gRhsLG5rnhFhhLQwA2SFGKAw2AhVgSYEoyngYwxcVALMVyFn/2QkbhlGQA5D1pbhyCCHTFk3GLHLCUJS7IoBiCUYk9YOR/qGscjaNAmZW6cibN0EBK+fhMAloxA4bxDC55FjTuwAz7Ht8HTeEFyeOQz39m5AhfcNOgnjgQxfVMbcQ130fRR6O6LS96pQMSnPyxEZDx2QePMsYq4d"
Data "Q5ijFeJcTyPp1hlk3LFFputJxNnqw11jPWyWjoTGqDY4PbcfXFeOwa1lo/Fk9STcodDUi0LbOxSyuk7ojkuj2uLCmHawH9cOtmPa4OSIFrAa+C2MKeQ93P0TLKAQeXnr97B90A9QmdYJGgt7QmNlH2hu6IfD5HgaFH5qKPSFJkmLXE93MzkfyXAjhaXkolqbOkJjUwdorKWQdw055RoCkqA2ou/SRHEQOWw3aG1uR+FtFxjspVBYfS4cT2gAhelA"
Data "ZSWdBHwxfnfKOwBkrQCSW1preQhddbZs9YD8UJRSLimALPBCTZ47qrNvivt8lKXJVgngWwmI5f9jCEZyx/KQI6gMtEC5vxmKCMjcICMxSiednDI5WBeZwfqoCDZB3XMj1D3UBJwPoNhgIQoOTkGywjDEru2HuDUDkEZQ5m4di4JtE5CzcTSy1o9EyurhSFwxBPErBiNx1XAkrRmJ+A3jELl9DkIVZiOBlLt9LvI2TkHC4hEInDsQPguG4cn6aXBY"
Data "MgaeettQ+8IZIBALfC6g2Ps8qgOuoszHEaVPr6DY8zLyHzkg8+5ZJN04RqmtBSIumiDEVg/BZ3URaqePqAsU1l42R/RFUwSf1kGAlSqub5kF13WTcXX+cNxaOBr3547Cg1nD4Dy6O66P6Uoha1dcHN8J58d3hN3YtjgzqhVODv0RxwZ8hyMDvsXOdu9jW9fPsGvAN9g39heozu6CQ8v7QmP9AKhvHgj1rYNIBOaWAWJMrO7GfjDY0AfG6yk/3NAT"
Data "Whvb4tDGdtBc2w2aFEHorBoGg3WjYEyRBgNpuqMXDLZ3geGeHjA+OBz6yjPx0Jly97JC2dWYT4J3qLwDIesrIPm25tU1OWIV87KicIKSl+7wE0BW58rGrvLM/tLUSwJIvtmOmFpVD2QZAVkeaI6yADMUB5BDBhqJQQEZIeSQ/nrIDTBE1QsjVHtoo9BxF3KsVyGWQtOU7aMIyBGUNw5Fwroh5IJDkLZuGDI3EogrByODXDF30xjkK04Q41Vztk5A"
Data "xsYx9NoxiN46Ez5LRiKUHCqNnDJx+UgkraLHCjMRpTgbT7ctwHNtBSQTYDUBrkDsQyDiNhBCcIa4oMjzAgo9LqLg8QXkPDiHtJsnEe9kJYPxvAFenNaCl7UK3I12477BTjwyUYK3lQqeHVVHgI0anmptwZ3t8+AwbxjOkSvemTcKV8f1xPmBbeEwrAPODe+AsyPa4vjwX3CUQDw6+AccG/Q9TpAjHh3aAsbDWkJ9UAso9fsGewY3x4HJBNjiXgKu"
Data "Q5Q/q20aALXNPDi9HzQ39oE2gai3rg/011Fuua47Adke6hvaQmNNV2is6ktADoX+2pEw2kihL4W05rv6wHxvb5ipDISZ6hhoKU1DbCD9/TXcZlB/ErxD5Z0AklUnaqcCNbX5YuZHRUk0yguCRQ7J67NW5T1AZaabbMkOXsxY3P3qrACSx61yy6kEZCmFo0X+RigMIIckKHMCDZFPj0sIxnIPHeRfV0KyzSrEHZ6NuF3jkLRtDBK3jkLSllFI2zIa"
Data "mVvGIHvLWHLJcYDGUkB7JWC4HjDbTOEtyXQDYEC5p84qVGttQPzWGRTqTkb25imIXjQIUcuGIXn7LITunAM/ldWovn8OSPACwu+jKvQOEEXbF9eR/9gOeY/OIe+hvYAx484ZJJM7RjuaCxgDzurA79RheFodxD39HbiptRW3dRTFY9Z9/W3wM9uDx2prcWXVJFiM6IALk/rheP/WsO7ZAkf7tIBZ9+9g0O0raHf5VHSV6HT+CIbdPoNFz69g0bc5"
Data "LEe2hc6QVlDp3xz7B38P5XGtoD6nKw6voHB0PTnk+n5QpfBVnUA8RCAeXku55Jpe0F3dCzocpm5gINvh0OquOEShrvZKClnXUMi6cSiMyF1NdhCQ+/uLxbaMVcZBZ/9sSj0oh66u4MpvAvJtKjIgZVBKQNbVFaGmmvLIslhUloShght18rxQmeMugCxL5dvRUbgqlnw8I5tmVQ9kcYgsf2QgS16YoPCFMbK9dcW2IsCc8jh9FDjvR8rx9YjRW4A4"
Data "lZlIPzBLrKkaR6Fp0uZxKNwzAzWqC1Gnugi1B+cByvNQuWc6ChXGI3P9UCSvHiiUun4I0jeNQoXKEhTunovqA4sB1aXIVZiMmLWjELp5Ip4qTkftreNA8C3Uhd1HSdBtVEc+RFmgG3LdzyPP3Q65BGLOfTtkUajK7phw3RqRl0wRZKcn3FFyyAcme3DHYAfuGu7EPaNd4vEdXQU81FfEEwNFuO1aBN2h7WDQtxW0On4Lo67fQ5/vjNXqIxxs+T72"
Data "//JX7Pv5LzjY6j1otvsQBp0+JTC/gH7Pb6Hb9wdoDfwJh8gxVUb9AvWpHaC1uCf01hKQq3pDdbVM6qt74tCqnji8kkLVFbwlV1zfAWrrCcqV3aC+ojftH0ywDqNwdggMtwwUrbRm+wbCQmUU9PePw3GjjQQj5Y9V7JB0BjQB+XYVRlEeSB6xU1udg+rKJFSXRaI8z4/kKaZbVWS4ojTFUeaOfG+O+JMEJN/x2FK0rkpAMozFfsYoeU55pKcOynyN"
Data "UONrgvI7msg8o4B4w8WI15iPjEMLkauyEDl75yJ33zxUqC8DdMkJtVajTGkOMtaPRuKyAYhZ2AshszrAb/LP8Bn/A7zGfwfvid/Dd9IvYoRO5e45gBo5Kbup2mIkU1gbpDgZEbrryA3vAfFPUBHhjuJwdyDRF7XhDylvvIYq72vIu2f3GpBSuBpoqyvckYFkh7ytvx3OmptwXWPjy63ToQ24pLISd/W34tbBtTAY2x27Wn+GPT9/BM2O3xCIfKfl"
Data "D7H3l/eF9hGMKm0+FOu46nf8DIadvxCDCQ53/lLcmVlz4I9QHfoTDo5thUOzOkF7aW+oLesB1eU9oELiLT9XW9YNh5bSdjnlm2s7Qn1NJ6it6ErPe+Hw8gEUOAyGwXrS5gHQ29xHDDznWR46e8fD3dmUIMyhqi6mK3ETkG9dqaljGLmljYHkPim6ctbmoaYyDTUVsSKPLM31QhkBKRYxZiCTeE1VXkXumGyaFQ8cDzdHYYgpignIIn8TAWPJMyOU"
Data "eRui0tMAFXe1UHBBCekW65CsvRiZmktQRKFoPrlayaHVqNEhEI0UAP1NqDywCEmrRyBwRhd4jyUIx/2MZ+NbwHfCj3g69lt4jPocD4Z+hLsD/4b0FYModF0DaK4A9hOYWsuRunsqQvfOQrWLEbkj5Ypp3kCGPyoSvFEV7UVAPkaV7w0Uu19EPoWzAso7Z5HhdhJJTtai8UZySO+janA3VYKbjoKA8DrB6EJ5o/PhzbimuRHHd87HhYMrcG3/KljM"
Data "G44NP32Ird8zfJ9ie/P/w66fPsCeXz7AvtYfQbndx1Bv/yk02n8CrXafQKctbVt/As22n0Ktw2dQ7fYlVPp+jYPDfoDqxNZQmdkB6ou6Q2VJdxysFz9WWdKtftuFYOwCtdWdCcjuAkjNZf0pbB1E+SVp40DobeknBqFbqEyB7t6pyIqhi1JdLlDJ9UzV3QTk21VqawnIOq4Vrh0GksJWFIqwtboyQbYOaq73SyDF/EcOV+NOooRvrlo/aFwCsiCQ"
Data "80cZkOU+BMQzM9Q+1EPZ1YPIPb4VmYarkKO9nGBcjQqddSg6tAYlmutQprkeZWqrULR3oejOSF49GnFLByJ0VheEzOyEoGlt4TfxR3iN+Qbuwz7G7QF/xe3ef8GT/p8CO6aiest45KweApDrphCQ4arzgcDLQCovkPUcyA5GXVYQahMpJw59iPKnLii5fwEF9+wFlLl3bZF58xSSr9uIVlRuXWUgfY6p47HFfplDEoRX1dfjwoGVOL1jASy3zsSR"
Data "bbNhs2Muzu5ciGMrJ2MNAbj+u/eg+OOH2PR1MygQlNt/fA97Wn0oZoSoEpDqBKJ6yw+g3uI9GHf6BtptPsWBn8lFW32AA5Rfqg5qDuVRP0FpXAtoLOgGtYXdcHDx30t5CeWNlDuqrepC7kmvW9YTmsv7QnvVgHogB8NQkXJJpbGUQ86G3n5KASoTCUJuYaVoiKu9Cci3t9SJltZKkUeiLp/2ZKAkPwiFOV4oTLuN4jRnVKReRnnyOYKR3DHcDGXk"
Data "kKVRPGi8fjBAoAnynhuigPLFYk891Hkao9jpIHKOKyLXbCMKDdahUGsVSjXWoEpnI4oPrUeROu1TXYP8/cuQRSd36sbJSFw5koAcjMi5vRAxuytCyS0Cp/6C5xN+INf8Gp7kkl7DPsODHu+jfM0wYPc01O2ajIr9M5GrvgAp3AgUe5tC1EdAui8BGfQSyKqQR6j0ckHpg4tChffPI/c2OeSNE0i6aoWYS2YIP28oujo4XPU4cgD3KYd001XENQpT"
Data "LxxcBbu9S3FqzyJY7JgH/Q1TYLZmEo6umowNBNe65u9h+y8fQ7nT1zjQ8SvSl/T4C6iQ1Dt+jsMdv4BOhy9g0P5LGNFWj0A9RMDub/0+lDp8CKUen4kGnn2jf4bWPApN53XD/rmdoTSnE/bN64L987uK7Z65HXBwaRcoL+tE226UQncXjUGce/L8SpNtI2G5fzIObx0Og30z4WqvQ/WaRddd2YCA0mJyyXes/PmBlK6SpLq6GhmQKCXxamRZYpVw"
Data "viNWUdo9FKVeF0BWJNsKd2RXLCN3LI3g4XDmAsjcIBPk+Bki30cfpU/0yB0JzIv7kGu1BYXGG1BCoWmx+iqUqa9G1eGNAsYCgjJfZTXy9i1F5vZ5SNkwCfEEZOySQQ2AbCVc0mfcN/Aa/SWeDv8cfkO+RO6iPuSSE4F9M5C/fQIyD85DruU2IOYWkPSYQtZnqMkIQFVqACpjvVERdJ+AvI7Kh44od7+AYgIyXw7I2ItmiLA3EkByg44EpKueIq5q"
Data "bICD8krYKi3BiT0LcYRCVqPN02GxbgqOLB0ngNxI7si55L72X7wGpCrlihKQurSPgTTp9BX0238GzTYf4WDrD7C3PQHZ7RPRDaI05Hscnk2gze6Cg7M7CygP1AO5f353ASWHseyUHMbKgOxNQA4QQBorEJD7pkKXvhvdPXMRx90+FK7WVVHdcqryjrkjl3cKSJbMJctJxaRslJVEozj/OQoz7gsg+SaqDGRpzFEUh5minIAsYyBDTZAfIuviyPIz"
Data "QJ63Hko89FDhdhgFtruRY0zuqLcepYfXo0R1NUrIZSooJytUW4c8tbXIo+fZ+5YgfdtcJG2YiLgVIxCzeGA9kN0QMbMzQqa2RsCkn+A3/jv4jvkaPiO/ROyU1kijk7V2y2hAeTayNo1GOuWPJcf2AtHskBSypviiMvk5SuMp9Kb8scL/NqqfXkfNkysCyJIH9ii4Y4usBkCGnTPAUxtVPLFUfgnkFbp4nFNegdNKi3F8N4WtO+fCXGEmLNdPhdGc"
Data "Ydjc5jMo/vIp9rX7CntbfwqVjl+TvhIwqnX6EocITC3a6tHWgMA07foNDOn5YcorucFHqd0H2N3pb9jZ83Ns7/cV1Kd0ggrl0iqzukJ5LoWp8whA0v75PXFgQQ8oL2bJQlgB5Mqe0FvX7yWQFkrTobdjGqzpe0dNOlVwIWqrilFb826NYZXKnxtIhpBTRym5Z9ETySWBPFRVxKOsMBBFmQ8FkLx2annSWZTG8gRjM1SGmaMi1EwAmRdsiMxAA2Q+"
Data "10XuUwLykS4KHJWRbUO5o85q5FOYWqy+BkUHKFcklRKMuQRntuoqZNFJnqm0CKmKM5Gwbjxilg1D1EIGsg8B2UMAGTqtHYImt4Q/uaTf+O/xfMx3SCW3yFrYA+XrhgNKM5CnMB7pe2Yh33Q7EH4HiPMkKMkVyRmLIj1QHHwPZc9voMbbCfC8gooHF1B63x6Ft22R7XoSqdesXwOSG3WeUNh630xJAHlZYz3sDizHyd0LcXTnPFhunyPLJVdOhNaE"
Data "nlBo+wX2kNQ6ksP98hFtvxYgCnfs/IVoUdWmLQPJIJp2+xYGXb6CZodPcbDd38RSIDvavw+FLh9hc/ePsX9MKxyY3B4HZxKUc7rhwGyCcQ5D2RPKC3tDmaKDA4t6CiDZJTVXdIPu2t4w2DSIgBwNkx1ToKM4A4+uWFLV5pBKUFNZgspKruN3r7yDQPKGB9SxSxagtjYVlSUhKM56JIDkPsiKxFN0gluRM5qiimCsDDFFUYgxsoMNkB6gj/TnOsjy"
Data "0kXxQx2k2e5AsvE6pKktR47KChQdJDD3rpCJXfHgSgoxlyFjP7nj7nlI3jodcWvGImrJEETM74+IOb0FkJEzuyJ8WkeETmmPoImtEDihJQImtEAquUTZhhEoWTsCVdunoHbfPOTtnYcktZUAD5WLoBwyygsVkZ4oDH2IkoA7KH/mjNqnlym/vYRKdweUPXB4Dci4S+aIdDAWeSQ36nhS2CoBeenQOthSrnts13xYCxinw2ztBBjPHwaVIW2wu8NX"
Data "UKZQVLNzcyi3/ER0fxyisJRhPNT1c2h1IRhJ3OVh1IVyyG5fQ7cbvb7TZzjQ/m/Y3e59KLb7KzZ1eB/rOtHjgd9i92iCcmpnKM/shn0kJfou9s8hZ1xAMC5kEZgLZa2v8kAaKoyCvuIkGJOblyS9oHrOp8otQ3VVGcorufHu3SvvDpCs+sLdIBy6ytbszEZ1RTiKcx6jMMVJ9EFKQFZGEpDBxqikvJEHjWcF6Yshcql+Osj01EGRuzbirDchVmsZ"
Data "EvctRNa+ZcjftxK5e5Yhe/dSZO9fgQzlpaTFSNu3AKm7ZiFx82TErh6FiEUDETa3rwzIWb0QNaM7IqZ3RthUGZTBk9oKMJMX9kLNjsmo3DIONTunARorUEqAR+6YD9w6AwTcBbgRJ8wDJSHuKPW/hQpfJ9R4OqD20XkBZPl9BxTdsUOu6ymkOdkIIKPsjRFqbwjf44fgRWHrA/O9AsiL6mtxmkJrblm1UpgFiw2TobdwMA5P7I49Pb6FcudvoNLu"
Data "C7GCgHrbzyhf/Eq4okaXz6FJQOp0/QL6XQlEgtG4K4/goZyy82dQ7fQJ9nWgUJWA3EpAbmz/HtaQU67t8gm2Dv4eShPbY/+0zlCiEHbn5A4UDJBTzutDUPZ7CeTBxV2hsbwrtNb2EF0eDKTe1sm4Sg6P6izUFnDISiDWVqOiqvJdHKjz3wBkDuUc0SjJ9XgJZHnCCVTGHpEBGWSECsobC4I4XNVDsr8uUp5rvwQy3HQ1wtUWIGbXHGTsWYxcpeXI"
Data "2kVuuItAVFqK9ANLkLZ/IVL3zkfyzpmI58nHq0YgfOEAhM6hcFUOyEjKpV5B2UGAyfMhK7dNFgtcQW0JAbka1eqrELV9PgqPHwae3iCnvC9aVitCH4klJhnIysd2qHxwBlUPL/wdkPGXLRDtYCKAfHZC4++APLV3sXDHI1tmwHTVOKhP7o4Dg1the7tPodHte6i2+Ry6nb6DDoWrnC8e7ixzRm2Ckd3QgMA0psc8UudQh48Jxo9xsOPH2NuRgOzw"
Data "ARQIRgnIxa3+gvW9vsCu0a2hNKkjdoxvD4WxbbFzSmfsndNLALl/QW/KJzmPZCA7vwTSYOtI6G2bijgOz3l1gFISj9Ch+q2srWkC8v9H4S9U0j9VGvkAGZCyW9XxanTV1YkoyvNBfoobChMo50o4LRyyKorCVcobywlGBjI7QA9pL3SR5qODbA9tlNzXQajBcoQdmIeoHbPEHY5zGMLdi5CykxyRQqm0/ayFSFGicHXHDMRvnIioFcMRtqA/Qmb3"
Data "fAXkLMojZ3RD+PSuCJvWCaEUwgVTCJu8sj/yt44GVBcChhsA9eWoOrQaibsWI1FLEXh0FfB2I6fklezcgcDbqPG9hopHtii5exKVj+xR9pByyLtnkXXzBFLYIR1lMz1CCcpnJ7Xw9OghuJvth5vudlxSXYezdGE5qjAb1hunw2LJSKgObwOl7t9CseWH0O7+A1RbfwI9ClUNu34LnU4EJ4Wn7ISSOxqSM7I7Gnb/mvLGD3GgA4nCVXbIPZRH7mj/"
Data "IbaQ1tGxuT82w+pun2LbqJbYPaE9thGMWwjOHRM7ivD14PzepF44SECqLuoGjWU9obWmH3Q3DYPu1nHQ30mRQkEMAVlIHFagurxMVDVfbqWx5XJVX18aXKHfUP7+ff/58h8Fkr8QvsrxF/uPlMoKWf9TSVmpeL/sSskQciUwiDz7g+eAVNF/5fS4mI7wgHN/FKa6gu8DWR5jjboEa1REmKCcV5XjHPKFPoqCzRF36wC5oy5yr6jg2YEZCCb3it05"
Data "mxxwLlJ3z0XannnCEVMpTOXGnAylJUgmx4ndQO64chTCl1L+SCFrxMJ+CCQIQ+nEC6c8Mmpeb0Qt7IvoRf1EC2z0kr5IWTcQGZsHi7mT0FkBaK1End5GVOhvQ7HJXpSd0gWcTwFelE++uENwOqHi4XmUkjuWEZT5D04i1/0Usu+fQNrtY0hwsUL4ZVMEUv747Kwenh7jsayacDfZjxuHtsJh13Kc2TQXZzbMgf3GOdhFIem+jl+IllRuvBEtqBSO"
Data "Gnb9GiZdv4Fpd5mMCViWUbfvhAzJSfW7fwe1zp9CpfPH9H5eSvJjHGj7Cfa0+QTbabup/cdY/PP/YVnnT7C637dYO+h7rKGcct3g5lAkQDmM3U259P7pbXFwZieoLugJzZWDsXtOT+hvm419qycj9AnfCJeA5LVz6mpRQ1VcVl2Hcjp5KkVtS/VPCNbWoqSYu7v+eKmpoRirij/531v+40BKV7p/pFSUcwuq7P0S0JIryp4xlDwti5t2GEyevFxA"
Data "IEeJxp2C+MsoiT6OyhgrFIcboyjMUHR5MJDFAaZIv3MIxXd1kXhSEb57piN45wzEkEMmSkDum4d05QUid5SATFGcizgB5BhEcIPOSyC7IHgWQTmHHJLcIGrxAMQuG4y4FUMRv2oQyvZPQf7O0Yhe2RdF+2YA+uSSJoqoM9mFCmMlgMLWOlsj4OpRwP0C8IzA9L2KGnc75LhaoejhSeQ9OIb029ZIdKHc8YopQi8aI9jBGEHnjeFuehD3jfbjvq4S"
Data "7mntgJvyJthvmAejqYPF3ZMPdvgK6u0+h0YHeRi/gkm3r2HW7StY9PgO5gQii1tUTbs1FwPPGUi97hTeSkByK2tb2nL/ZatPRT/mlrafYkmL97Ck4ydY0fsbrOj/LVaR1g74FluHt8Ceca2gOOxrqM1sC415XaE2rwfUlw6G+qqxOLRhJo7q7EJhchjqOFQVS3XUopYqnWuYYWQoX9Y4AcRA/h5nfFPhfs3/dN/mW+GQ/2yprmbwZJ8jqwiqGrGk"
Data "A0u2v5L2v1wEqy5dLHpVmuyK4igK+cKshDPmBuogL9AAOX76YmZH/mM95Llp4pnOYjzdOQ2B22cgmq7YCTvmIGXPAsobFyFTdSmy1FYg88BypFMImKxADrl+IiJWjEb44sEihwxf0FcAGTSzqwAyckEfxCwdJCYo8zIeqRtGAbpLUas+G4nrhyJt81jAYBNpC2C6BzA/AJzUQaWVGvLMlVF0QhPg1dYekGOSQ9bcO4pCVwvKHc2R6WKGtGumSLhs"
Data "iCgHfYTZ6iP4LOm0HvyOauKx3h44kTseXTgW6sM7Ynunb7Dppw9EtwZ39Gt3/orCURmI5hSKWvT4BpY9v4ZVz+9g2eNbIYaTp2MZdycoySX1CNCXDtkokJ8TkB9gIYWxi7t9jkU9P8dSyidX9f0KGwd/j20jfsSWwZ/hwOQfcGh2e2gs7A5Vyqm11k+A5qaZCH5wkU6QXKraYqq7CtRU8wr1snOGVU7/lFHVcu0yqDU1vPefB5ILfwafV1VVVaJr"
Data "5d9d/uNA/tNFejNvJfEVkmMa3tbvqyLJoOcrLIUzFbGoyvJCScxV5IeeQEGwCbJeaCE3QF8AmedriFJvE6ReOYibOyfCc/sU+CtOF5OFE3ZQqEp5Y+bBFchWW43cQ2sJyBVIo5ySgYxZNwHhy0chbNEgkUOGze8jYJR3SHbH5DUjkb5xHLIVJgDay8TcyGJyx/Qt9JyArOIuDz3KH48ok0MShARkqYkSMvUVkaK3GWmm25B3fD+Kz5OTX9JDyTVj"
Data "lN04glI3a+Q7WyL1ohEiz2ghyEYd7lrbcGPvapxYPkGAuJnCyTXN/4KNP/0Vu1t/DG0KTRlEDlE5NGUQrXp9g2O9vyN9g+N9movHR3u9gpKdksNZA4JXjcLRV0ASnA2AXPrzh5jf+m+YS+HrHHrdwq6fYVnPL7C233fYPPhbbB/5JbYO/Ri7JjSH5qIeOLioD1RXDocd//25EVSX9UBWl6KWB5QTcFJ1V1DFllRyJCSrY4aylBeV/icLgyiD+j9X"
Data "/rxAUqkooysmXxBZ/D2yXtaOTPz98lPZz+I8hCq4MAJlSe4oCr+AghByGH8d5PCKAC8MBJAVz8wRcWYbHDcMg9f2aQhQnIUICkkTdi5CmtJyZCqvRI76WuRprEfG/uWisSdp62xErx2PsGUjEbpwIELn9xNrrTKMrJDZ3RE+rxfljQPFTJCMTeORozAZOLSE3HAzbZejYMdMClk3o3zvYnLNtZRTKpCDbgPM9hKUB1Blsg0pKovFAstea4fh4doR"
Data "cFs5DDfWjoHbholwJl1aMw5nl46A5ewBMJ7aGwcGtsS2Ll9jTYv/w8pvmmF98//B9p8/gBJBsr/VhyIvNKsHjd2Q4TvR9zuc6tccp/uzvhePT/T59iWUZt0orySAeeLybwG5vOVHmNfqI8yknze93YeY1+lTLO3xJVb1plySnJKB3DDofSiO/Rr7ZrWH0tzu0OGuI+8rVH9pJAayiK6nFOHUysJWqVRTxUopD3H5TpT/KJD/ktIQRkn8nI7xHFbp"
Data "qazQVbYyE9XZQShLuI2i0KNiUADDmPvCCAXPTVHmYw5f09Vw2jgSPrtmI2j7PERtX4jEXUsJyJXIOLAGGarrCcr1SN+3TACZuGUWogiGUIIhZMEAhMzri5C5vRA2t6eAUYKS88p4yh9T149B1paJqFUlhzQm8A6tQtneBYDGOpQrLRIq3bUI+dvmonTfYlTzYHbNVcg5MA9h64fDfXYnXBvXAvbj2uLEqNawGPwTdAkaVQoN93X5DLs7f4adnb/A"
Data "+p/+IrSZHHH7z+/JZmQQHKq8MHLLD3CkZ/N6EL8nEL8XANoN+AHnB/4I+0GyLT8/Ww+lTU9yUc4v63PNxoH8nID8goD8EqvbfEEO+TGm/fI+ptDPnkOvW0Igr+z1Hdb0/hKbh3yGraO/xM5JLbB10i9QXjYITtb7qcJS6PqZSnFpNmrLcigTkbmjVLjRRconWSUV/O+fv7wbQMpDySFrPYxSyMrJP2cfsirjA2WoLUlFVeYzFEecRWWUNfL8TVDw"
Data "wgwlfpRXepjhvsZC3FScgud7FiF012LE7FyKpF0rKIdchbT9a5F6kGBUWScck7tAEjbPFECGLBmO4Pn9ETy3jwCSw1SGkkNXzidD5vZA1OJ+SCSXTF0/jmBbSEBuBzTXo1ZlJfLJjXM2TUPR1lmkGcjdMBnZmyYhe8t4CnHHIXPLaMSvHYjAhV3gMaM9bkzqAPtR7WBNwOh0+gQH2ryPPa0oHG37IXZ3+AT7On4GFR5JQ6HoIe7Ab/MBgfg+9CmE"
Data "ZLAEiL3JCft8T9B9j3MEH4N4kQC/NPRHXBj0IxwG/gC7/t/Ra8gle34FS/o8s66fi/7I3wJyQ8dvsbDtZ5j68/uYTBeAOe0/w1Jy5ZU9vycov8KGYd9AYeJP2DG9PbbTBcuKwvWU4NtUTTyrg9yRcv+qSlKVbGQOS4BIdcyPpWqv4Hp/B8qfH8iXtUQS+SNhx1vax7s5LS+hB8W0i9cT4MoTaFYXoS4/AqWRDkDcaRT6m6PAzxJlL44h390Mrgdm"
Data "48GeufAnB4zYsxxxu1YRkHSy7FmN1H1rkXyApEyP974CklcjlwcyeE5P0c0hARkwvTMCZ3VF+ALKJZcPQdKa0cjdPptC1t2A0Q7g8CZELx6GmEVDBIiVO+eifPtMlG6bioLNY8USIEkr+pDLdkLgnDbwmdkOtyd2xJWxHXB68M8Uen4NjQ4fi2lQe1q9jx2t3sO2n/+CLT80w5Zvm2HX981wmMLGI72+xukBP+Hc4JYCxNN9voMtueP5/j8I+C4P"
Data "/gGOQ37ElaE/iceXBvGx5jjb9xucEEB+DosuDOSnUO/0EVToQvAKSHJoBrLVV9jS5mts6vw9FhGYU1t8iEm/fIi5Hb7Esh7NsarXj1hBLrllXCtsHN8Sm6d2xkG6oPEdvFBJoSrPeRT9yLK7t5RVcWv5KwAlIKtreYYPbSn/exfKHwZS1tT8qvBz+S9Het7wdf/Kwk3VNRXlqKukhF70V8kyC64ohjCHqKQsRIgB5QotLqKrL8+tS6WrccIFZHqZ"
Data "ophgLHxqDb8Tu3B+0zjc3TEXfnuWIfbAOgpZVyJs4wLE7yQA969Dssp6ZGtuFh34SRTScsjKrazc7cGtrJxDskNKQLI7vpjaES+md5K5JOWSMSuHo1JlFUoPkvZT6Kq1CWV7FiJ8bn/ELRqI7HWjUbJlAkoVJqBk61jkbhyG5OV9EDm/I4JmtILP9LYCyAvD2+J4v59whPI/7sBXIofc/sv/YUdbyhXbf4QDlLfxOFR9CjePkAueGtRCwHhhKGnw"
Data "L+SGv+DSkJZwpK3jkBa4OuQnmYb+gGvDGMwf6HUUypJLnur9Dax7foEjXT+DUffPXwNSpR078BcUEn+NPW2+g2L75tjStQXm/vIZxn7zF4z9/j3MIAdd1PlbrO/fGjvGdMX6MR2gMJNy3ZXjYHpwLcqzIlFbmkEhagnVXzXKaqpEnbGkKIfrj+uWJZv1QefXf3D2R8OLgfy5zi213GLL4gYj2WT6N5d/iUM2/CH8g/kXqahgHF6V/x9Q8hxI+mQS"
Data "VwhdUes4+S8mlVBoU/myIrntjbdZRaXiaiuqlhsMqkKAzFvkktcQcEkZeya3hNmKwfDR3wJP5ZXw3r4YEXvXIkJxOUI3zBdApirLgMzS2PR3QErdHhKQ3LrK7ug3pQOeTWqHZ1Paw39GZ8oxKZRdPBCJm6ciZ88CFOxdTECuJ5dci9Ldc1G4bQrSeeKyxhJAZQ5q9s9ApdJkFCiMohy0N4Jmt4H39Ha4ObkLbIe2gTnlgXrdvxI3X91FYakCOeS2"
Data "dn/DLoKRc0r1Hl9Cn5zQhmEc0QZXxnSCy7jOuDqirZATQX1tWGs4DWuJa0Nb4DqBeZ1CVgbSccj3cBjUXAB5ktyVgTTv9hl49Tm1zvJAfvEakArtvsfmzj8TkF9g3LfvEZAfUOj6KWa1/hKLO/2A1X1aYef0gVgzoQfUN8xCmIczpYzxVIfsjNXibl/FlBu+BJKqupyskcexcggr6lxcgOv1Jym/xsG/LGT9LfL/fxUe+S9zRNpya1x5BrGYTHXF"
Data "y+6XoIKutIxfMVUub8VVlSq1jpvQa/KppiOA+Bs4vnsKVg34ArsmtIb1urGwWzMRPqobcH/9HATtWInQLUsQuH4uYnYsE/ljkup6pKqtFy2vidvmipCVuz0YSO724EYdDlklZ/Sd2BZPKTx7OqEtQUlOOaMr/Of2RuDSIcjYMx/5BxahRGUJKg8tRe2hJahVW4DUDcNpOx/FBGLJ3imo1ZhPwC5EvtIkxK8fgqBVg3B3/kA4TOkNm5EdYTToFyhT"
Data "rriFnHE9Qbml86fYQ655gPJLXhXOfHhrnB7bCZcndYfrtN64O6Mf3MZ3x81xXXBzTGe4ju4AV4LVZdgvcB76s4CSnZLDVw5lz/b/Fsd7fw2r7l/U55CfQrXT314DUqXVl9jf6hvsbi0DckOHHzHn588x/tsPMP7HjzClxaeY8uMnmN7iM8wmcNcN74a9C8fjopEa1R3VGdUXyO0K8nNFXfHltpIecFuA7AzjWmT4uP649bWA/qcQt4JXiPhzlcbA"
Data "fAdyyPqrYzXlHEVJqMmmkCeHICtNogrLIRXQi7gCq1HFN+nnL4GusGJNlqp8JN63gxqBsbzPF9g6qhVdvf8PRguGwENjKy6vnAKnRRPxbPNiBGxaiBdrZiF6xxKkE4jJauuQROFm/I75SFCcg/hNM0S3B/dDcrcH55BBs3vAf1on4Y4MpPf41gJIn0nt8Wwq38ujG+5Nbo9YyhHz1RajVHM5KrWWAgYrAcvNgN5yJG0djoDFXfF0dnsEkTPGbBqG"
Data "0LWD4Uehq9fyQbgyewBOTe0L09FdoEJh6+qW72HKZ80w+YtmmPNjM2wmR9vV/3toDm8Fi/GdYTutF64QiC6kW9P74+6UfvQ7EJwTeuLWWAJzVAfcIHCdKZxlp2QYLw7h1tbvcaYv90d+DYvuX8KEQlZ9glIaWH6w/SeUQ37+GpBb25ALtm6OmT98ignffYTJP3+Bma2/wfSfv8T0n77ArJZfYl6nnzCxzVe4rEdA5qYSZ1SPJaT6dgBJdbVUZ7VU"
Data "f+U5qCtKobpOBPLJTcvSkBv7AhVZsfTCP3/50wMZF/gM4d6PEHjfGf63LiDkjh0i7p1DpPsFhD9yFJCKgclipesK1OXQVbiUrqwpiTijpoTVg9pg7cAWWDPgJ6zs+yMWdvwCxgtG48rWhbBbMAF2U4fg8apZeL5uLp6tnIrIHQuRrkEOeWgV4pSXIo7C1XiF2YjbOF20snI/JHd7BM0h95vVXTTkMJTPCTyGkmEUmtwBT6eRcy7ui9gdk5GmPAv5"
Data "GguQfXAGknaNQ9aBqUhTGo/47aPxeH4HXBj2Gc4M+BvODv4CZ4d8hdNDv8HJkT/DnFztAP3ea9t+hDnfNcPoj5uh71+bof8HzTDyy2aY9EMzLKCccgtBpE554xGC7szEnrg4qReuTuyF25MJyol9cGd8DwEku6TzCCl0/QWXB/8kWlq56+Nk329h1esrmJFDGlGuyvMiVTp+9HdA7mtJF4FW3wogl7X4GtO++wQTm3+M6QTpgo4/Y0GHFljYvgWW"
Data "dfoZWwd2wTRyy/E/fAHFCSOR9vQxgZlNF0u6YHJeyKqlx6U5KEoNRUrQAzH7I9nnqri5UIKvK17cvoBo79v1Z8Sfo7xpAMKfHsgzRjo4Z6SFaxY6eHjWCCE82+H2KcTePo0wt5PwvGBFV1y+MQuFNAVU0aWF8LlgB8XxY7Ggazss79kS6we2wvoBbbCyVwss7docViumwHblTBykY1bDe+Lu4snwXjUT3ssmIWL7AmRoUg6psQrR+xaSu81F3FbK"
Data "HzdME62s3A/JrayBs3shYGY3ASOHrFIOyTB6T2wHL3LKR5Pa4sGsjrg3ryPuzGoL31UE8YYB8FvTi3LWoQT/cERsGwHv1b3hPLMVbEd9C5shX8K8/xfQ7f4RDnR4H2t//j9M+KgZejZrhq6kPu83Q+9PaPt5M/QjIHt92AxD6PnUb5thVav3oNT1K+j1awGroW1hO7wDXMb2gtuYnnAd2RU3RnaC8/B2BGNrgrEVrlDYyt0f3A1iSy57vM+3Yjid"
Data "STfKR+tngIhB5R14ichPodzmMxxs+cVrQC758Uv62R+TQ36CGW2aY0nX1ljWrQ1W9WiPjb07YlOPNtjYvTXW9WqPxV3aYGEvXoluGfxuOAGFPN2KR+nkozIlGInezojzsEfsveMIuKID3wtaeHBGG07WmnjgYFl/Rvx5yjsXsm5dMgdb5k7HweXzYb1rHa4bKOH5GR3EXjVHsttRpNwiKK8cRajTGSCDwpvYUBzboYCNwwZg56hh2DFiIJQnD8Xm"
Data "IV2gOKIbFIZ3xexWn+PQpIE4Mns0tvzyBQz7tofr3LHwXD4FXkvHE5DzkKm9gYBcgQilOYjdPuc1ILnbI2hev5dAMoTCGSe0ESGr57jW8BjTEg9H/Yw7o1vg+vgfcG3KD7g87hvcmN4CTlO+w6lBf8XxAX/BkZ7NCMJP4TCB9o3+Cvq9/grl9s3EreDWEWxT/rcZhv0POSJtB5MzTm79AeZQDjml2xcY1f5DjCBnHEe55Nif/hdjvia3pFB2Ib1P"
Data "ocV7YhUA8x4/4NKwTpQndiS1x5UhbXB1MIHIra2ky4N+JndsgXMDfxQDBo6SQ/ItBCQgtTp9joMMY2NAtmyOLa1/fOmQ4wnKaa2aY2GnVlhGF8LVPTtBoS99711/hs64ftg9qAu29u+MTYN7Y/OYodhIbqmvsA5BbpdREfscZREPkfrkPApfXECux1G8sN2Fx9YKeHpOG85W6nh61QaeTidxwUoXVrpquHDSGur79sDt+lVcu3wJVy5ewoVz53Hu"
Data "1BlcOmuLk0feToCbyYXpf6qydu4EbJ4/BdtnT4DWitk4tWcNbuhsx1PLAwiz00aykwWyySkjLpkj/JI1bhmpQGXWeBycOhqGi2fhwKjBUB49BPvH0XbScGwZ1B2LO/+E+e2bQ3P6cBwe3RervvkrDvf6BdfmDMeT5RPxZPFohJMjMpCpGmsQsWseYih/jN0yEzHrJyNi1SiELRksGnS4ZTVoWmd4E3xeY1vCY9wveDj2Z9wd+xPcRn8P51Hf4OKY"
Data "L3Fs1F9xe3NHxBpPQe21DYDTBuScmoNkyykI0x0JP/XBCDOYiOcaY3BlQyecWPATTi5pBcu5P0F97OeYQKAt6/0BdJf3xTm1OTitPhtamwZjB4W5W2e1hsLMtlg1/FvMaNcMYwnIseSg82i7+ef3odqBQt/BHXF+QHtxcx17ihQuDGyJSwN/FmIgHQb+JEbrMJA2fb6DeU+eJ/mVmCPJE5flgTxAQO5v/QV2t/oK21t/i01tvseKlt9hevNPMe6b"
Data "jzDlp68xtx2Fq53aYEX3TtjcpyuUh/TArl5toDSkG/YO7yPqYf3gHtg2YRgUJw7BLqqLkGsngKiHKPO7hnI/ByS5GuKp1RY8P7EbD6wP4IrRbkTdtUdRpCfu2ltCe/dG3Ha0g5PDGVib6uPUUUs4OpzDpXPnYH/yFO2/gKsE59tRXnfJZtwVwE3K3Hb1Zyrr54zGwTUzcObABgSfN0bAGT08ttiLR6Y7qbKUkOhkiiQXS2TfO4Xgc/qIuGAOw0Xj"
Data "sX9sXygN7wG1cYOwZ2gv7BszBApD+mJ1tw6Y1fJ7TGnzHdYN6AglcsbV37+HdT82g9nwlni0aDiC101G9K6FyDq8BfmHtyNt/zpEKcxH1JYZiFo7HqHLCMa5PRA4rT38J7SC35if4Tv2Fzwh3R71E5wo5HSZ8TOOj/4b1Lo3g8OaH5B5czkKfTagInAjiv1W0uMFKPNfjHL/ZSh+thilz1cCYQpAmgZenBuJI5vfg93+b+B9djDuHemL/TObYdfU"
Data "ZrhlQfmryyr4XVkM70tzYavdG+ZKbWCg2Bo661vBZkd/HF7YARModB34l2aYRfnmku/+l0D6GsY9WsC6bysc6U7hetdvYdePYKSQ1ZFyznO9m+Nsb+7u+E4MOudxr4bdv4FOt29wuOvXONDuQ3Ltv4mxsTxGdmerT6HU6XvRB7mKIozJn/4Fk7/4AJO++xTTfvoGs1r/hLkdWmNhl/ZYSt/57hEDoDiwOxQJQkWqD8VhPbCuXweKVrpT5ELurbYF"
Data "NS9uAsF3xf1MSjwvI+G6JXxtVMQSl3eM98D/ojmyn16j/NMZd22NYa6yGSZq22B7VB/WJhq4ZHcU505a4vgRY9jaWJGscczYuP5MejuKNMukWV5ZJcr+ZPaotHQKTursxJ3j2ki4cRy5d04jheBLdj6CmMsGAkif4wcQ5WiANFdLcYfhSHsDXNi9HGoT+5I79oTKmH5QHtMf24f3w7q+PbCsQztM/fFbjPvlayzv3Q47erTCqm//B6t+aAbDod/D"
Data "ff5AhKyeIIDM1NyK/EM7kaq0DtEEZOTm6YjkBp2lAxAypyuCp7RBwLif8Hz0j/AhKF36fYY741vAmULSE+M/gXKvZriq2B5FD7egNGI7CmI2IS9qFTLD5iMrYjYK4uajOH4hCmMXojR2BZBOQJaoIfbxNFw0aY7r1j8j0XMiQm6OgtbqZtg3qxku67RHuNsMJD5eiIQnC/Dw3ADYG7TGUZUfoL+V8j5FgnJnHxyc2woz2zbDcHLJCZRbbv7lb1Bp"
Data "z2vjNIdpL3LCQW1gRzrT+3ucJjc824u2vZrjRE/ZwHIejM7Trg4TuBpdv6Ewld3xYwGkIrnuttafYkfn5v+vvbeAryLJGrezo3iAuLsbwQmaBHcPDoFAkIQYgQAhuLu7u7u7u7vD4C5x4/lOdZIZ1uf/7szsfL/Ngcrt2/fe6u6qeuqcU0p3JyPaWupSq+A31NT9gVr6BahjqkcDa1Ma2VvRVLRkgKuDlvY9fEoQVrE0IQJlDx93epQVIH2cCC5p"
Data "xY1l4+Hafri0W9JrNa/3LOXyYsnjmYO5vHQcH4+u4/2xdbw+tp6fDq3kwpZ54lMOZmR0ID3a1GLuRDFfF05iy6oF7NqwnKWzpmWF6dNYMvPPZbZmZKShkzOf7P8vMrBjQ1aPj9ES/vmxtdqSFh/3L+HZthkC30wNwCuLB3N8Wi8BcbwAOl47f3XRcE5OHcCoRhXp5yeasYo3/aqVIaikKy1dbWlsZUZ1g8JUFn+nubMZIY6mdBB/K1A0yuhSeuxt"
Data "WIxrgVW53ytAGxDwemAojyMDud2jKbeD63JLNei0Ls3Vxm5crG3DhWpmnPEz5VBlI/b6GrOjtjmLxR8cXkJg7G5H5pFeovWkln4znJSnUQJfEPGPOpD8NJCkp+1I+KmNvG9L8k+d4W0kJA4k4W5nTm/y4cT60mT8FMyHK22YFPo9owTKjeMcxcdqKb5WVz5cC+TB8Uac2lyZXYtKirZ0YGKEGfP7e7NikB8DmthQ20oHPwGyrWjKnhZ5tCUfh7sa"
Data "sKiis0BpywyXoswUH3FBMRPmS5idPVF5vGhGpR0VjIOUhrQvSD/HQtpUrhDRkCGiIcOcjOlqb0Qrc12qF/gL1XTFl9XLR02jwmK2GlLXyoT6duYCpiUBjjZ0LS0mqk9JupVypatYJqFlnelR2l60poO2fwnnt5NyYj2fDq7QNhM6M2+YVLbT+HR8HYlnt5B0YRvvT4uGlPLw7PgG7h1aw57F45ka14M+XZozKDyQBZOGs0fM2KUzJrBi9lTWLZ7P"
Data "+mULs0vVn0O+fElCRzW+/uMG2D+HdK1dmeAaPvRtUYtFA0M4sngClzfP4/6eZbzO3jX48Yap3Fg+UjRjDJcXDeL2qlGalry6ZAg3V4zi6ZaZnJkRx5UFo5jcpjaRFT2I9HGjRxlXrRm+rvg5tQyLUkU3H2UL/0ADi6J0tdQjsJAOHQXKER4F2VnTlevt/Xkc3VID8kVsVx5EtOVW18bc7lKHmx38uNaiJJcaunC+tjWnq5pw3M+YXT5FONHEic11"
Data "zJhW/lsmVv9GYOwtIM6AewPg9VCSn0QJeD348jqUL2+6ayC+udWMt7eVluxIxvMwgTKGzOfiKx1twLkdlTVIP93swIIBRZkSlpdVI8356VhTMn8KJV3iSnzYmacXmnPrcAOOrq3MinFuLBzsxroxVVg22Jde9cQaEP+zcREdbaJyiNkP2sY64wS+GSXMmeKix3Q3A+Z5mQqMJpo5q+ZBjpFzCtxBLgbEuejT115XzNbCYqoWoLtFfrpZ69LD0Ygg"
Data "8SGbmYjvWOBb/Av9gF+RfFQ1KEg146LUMNWnpoUhtS3EvzQzor2zHYGudnTysKOLpw0hJe3oUdKasU3lOc9uJfPMRhKOrObdgSVcWzGO84tH8PmEVMb3D2swZtzch9o3851A+VK0pYLy7r5VnN4wl+VjY5k9pBcrpoxk5/K57Fy9iJVzJrN64Qw2rvhzAakWZdNJVk7kn1S61alCXJuGTOjeig2j+3Bl3Uwei/P+YNdi7m+fx0+7FnJn7WQuLxzG"
Data "6Vn92D6sCwcn9OTsnH7sHNGFvWO6c2vlaO6unsCRSX04MW0AMzo1JMjbmq4lHGhiq08dGwN8DQviWzg/FfL/QKl8f6G2YX66GBeii5h1QYV1GOaUh+1+Dtxs58+zmNa8GdqV57FduBfWiludG4q5Wkvrf7zSvDgX6jtxuqYlJ/yNOCQ+42YfXTZVNWBdXdEytQpwcqQUsp8mShghGnIoaY/7kfAwUqAMJ/1lmGjGjjy/3oSfLjfg1c0AAbM9n+93"
Data "FSgF4tf9eXK+LZf31RAgo3hxuRVrRlsyMeQ7xoXocHCxF++vtYZXYuK+68nnh+15d7sdt47W59SWamyfV5bVE0qxY0YtZvcpRoC7DtXyyTNa/EiobX56mH2naTy1Vs5EdyMmC3wzPbNgnOxuzDgxa0e4GDHY2ZA4J31t+Y++9oW1Vc7DbQoTbCbpZlmYLvbGtLM2oKH4jVV1f5S0zYtv0Xz46hfCT9LaT877G+tSw7gwdY2K0NTUkEbGRWjnYEon"
Data "FwuCPS3o7m3B5r4dxVQV//HCFjJOb+D13vmcmT+Iy8tHkXFV7SZ9gC9395Nxey/JV7aLltzASzFbVfm4un4Wp5ZOYv/s0awcGSNWQj/WTBvJ3dP72bZiLivmTWHb+qWcPnYou7T9CSTjFTrZ60X9KSWiUVWGBzZi/8xhvD++maRzO3gnfsSLvUt4uHUO11eO59TsAQJbNPvGhrJndA8NyF0jg9kwoC2HJoZpJuuNZaM5PDGG7UNCmdS2Lk3t9Gnl"
Data "Yoav3g/4WxSmnF4eyheSUOAHSub9hupFf6SLoS6hRb6ji2jJYbbfs72iLXdFQ76Jbcf7Ed0EyCAehLfkVlA9bnWowY3WFbjczJtzdR04Wd2cw34G7K2iz3qfgswp+S2LahdhViNdOBUj2nEyPBssUA0TzdiXpMe9SXwsvuT9zry4HsCjC/V5eqUp7zS/sgNvbnbhy6s4gWwIb25049G5NvLbvjwVOJcMMWNqREGm9y7AmomWnN1SnhdXmojp2wne"
Data "h8DHcJ5dDeD+maac3V6T1ZO9WD+lHGsnVmB4e0v8xWxtbaZDD2fx/ZwKaQtUqS6RsQLgGIFuioeZwGjKBIFxtPiGwwTIgY76WmNQX3ntI/5ntKOB+I5FCTItSKBYF4F2xrS0FA0oGrGqXgENRBWqGOSEAlQxFEAN8sl3dGkgaV1bNy+tbQwJFCg7u5rSzcuMc2oJEzVRWQNyHU+2T+PYzBiurR0r1sVeeLifL/fV/pkH4MEBMm/s5tPJDfy0fQGX"
Data "xGQ9Mn0IxwTIbePjWCeacs+CSTy5dISpI3rTsqEv7VvWo0ugVGB/Erl74xA6f9b+jtGhgXSpVppJPVpqfYk8OiuJfoJMMVGST63j1Z4FXFk6kgMTI9g9JoSNcR1EK3Zl94hgVvcOYN/o7mLKTuTR+klag86pGQNZ1zeI2Do+1JaaXA3fKq/7HZXMC1Oy6A/46Coo81Ii33dUL5KXrkZ6RIqm7C5acqjV92yrYMeDjtX5OLgTnwX813FBPApvwa3A"
Data "OtxpV50bLctzubEXZ+vYc7y6GQf9DNnpq8eqCgVZWLkA4yr8hc2RbgLiJPg0RWAZyseHUaQ8i9NCwk+9eHs3mJe32vH6rkB/t6MAGcRjge7xuUCBWDSqhI93ovl4V3xKgfPZuc4sHmTDtsmluLq1IafW+XJweUnO76zIzePV+PSkg1hB4Xx+EsQbie/OiWZsX1SGlRM9WCO/WT2yopjsOtQ30KGdzfdEFTMgUvzB3vaFtOUgx7iZMMHDnPHuZtrx"
Data "CBdjBjkZMEAAjHEwoLdAqWCMcjagh62Y+Ga6tLXQo42NCU0sjcUk1qWqUVF8xUytIpqwkviQFUU7VjIsQEWDvFTRzytpnZ9m5gY0EGDb2BrRwcGIblIBdHEx5PJ0MelF63FhE8nHlnNvwzgOTovk0qrhfLmzQ6yM/RIExg9SNt5LuLOXeHFjXu1cxLVFY7WFvVZEdWRJryDWDI3kxs7l3D22jfHiW9b286JlE386tWvB+9cvSFWjt9R6TBLUcVqS"
Data "Wsfnj21duXl5twLyz9Gk8/H5U0j8AAnvxEdazaz+oUzs2ZbVQ8O5s2kO3DooNeFxuC2vV3eReHQVjzdN4cjUaC2s6dua1TGtWBbRmDnBNTk5LZqEw8s0/1ItHHxh7ghWxQRpzelVDX+kulFByuvlpYK5LsVEI5YVH8enSEFKiKb0L1qQYBMDepkWoZv4WEOsf2RreVseimkarzbbEW38ZmAnHke05E6HWtxp48/NAB8uNfLkTG07jlY3Za9oyC1+"
Data "+qz0LczqBqbEeOrwfEOQmJPTyHw2VGDpzesH4SQ9jRNTdQipL/oT/ziCpGdhpL/uJRqzJy+uduLmEamQDrWFl2PIeDKSjzf7k/poqMA5lqdnQgXGytzcIsA+n8T7S+Fc2Vmf87uqsW91MS4crMLLuy1Jeyd+5ZsIXtzoKJ/VYcOs4iwa48TaCZUIr25IdfElGxjqEF5Mn1CHAoRa5WGEaKjJpe0Y527OWDczRrqaMMzZRExVQ00zKhgjxVRVMIaL"
Data "1gy2FxClcmshvneArSn1BMhKov38TI3xNZNj8RUrmOhRUczUCgJlBansKunlE789D63trWhhJWauvQntRbuGeFoRaF+E0+OjRW2ISSkmaerJFdxZN4bdE3pweG5v3p5ZTsqtLcRf3yhQ7iPjzk5eH17M2/2LST66lmfrZnFoZC829unC8shAVg0I4f6+1WybO5LYHgE0ql6MqJBWtAloRHqyWgAtnYyUxKwxztlgJsd/JGvZkD9Grl/cjk5m6vvs"
Data "t/9FUUOIkpNIffucpCf3eHP9FBc2L2XjhP4cnDucNUO68e7wKrgh5smlHVpf1GfxFe6sGs8u0VYqbB3SkcXhDZne0Z+5XWuxY1AQ52f25/KCoZydOZiVvQIZ1sSPxvYG+Bvlo2yhbyij9yPFxXTylsJRonABvAvlo5RhEWpaGNHGQGr8At8TpIB0LMjWyo7iJ/qRKFo4ZVwYL/q2I35wMPcDa3G3dRWuNi0p5qoLx6pbss/XiB2+Bmz0N2BGye+Z"
Data "7leITlY6cFG03OcFZLwcyZtHvXh0q5s88whSng8h4Ul/Pv8UReZbMdM+xvH5QU+eXQrm9uFAVowvweBgPTIeTiTt/ngyH03iw9VBnFvbhqi6ealmrsPcaHfREvP48nAY94624dqB+hzcWJqj2314cr0V6e+i+Pg4hOtHm3F4QzW2LS7PmkkVWNjHH195xubWOrS3/ZZI96L09xKz1MNY23BnXDEbRntYajAOsDcUU1WAdDbSNGO4Q1FCXfTp6WFC"
Data "ZCk7AcqQpqLl6giMpXXzUcvRFn8baypamlNG/MRShnqUEfO0nPiPFc2KCKhFtRZX1cKtNKoaSte7gjcRpZ2J8/VieM0SWit6/L4FknYbuL9xPFfWjGD7lBAx1VtLOuwi5c42Mu7tEI25i7dHl2oNP6kC5JPV0zk/ZZBA2Zv5XVtog0M+ndstllcLerWvTXALX6JDWzF8UD/S09SKdqo3PjN7XmVm9tq/qtM+J/wfRZuJ9Osk+dNNdOI/Psx++18S"
Data "bZiQPHBqMinvXpD49B7vbp7h5r612tjU3TPjmB7enIPTY3l9YDnp58V5P7SK12oA+drJ3Fo7gaMz+rB5aEe2DA7kyMRwzs/pr8F4YlJvloY2I6aqJztGRBJY3JZy4jNV0s+jtaZWMC2MW+HvcSuaH2/9whTXL0oxY33KmxoQYGpCNykkTfLp0McuPwcb+XC1TVVe9GtL4ugQXvUN5FnP5gJkDQGyEtealNCmVR2tZsGeKkZsEyDXSZheOg8TKuWn"
Data "s70AeUN8x88LyXg7jlc/9eHBnZ6kfxhL0vNhfPqpv0DZVz4bwJe3cXy4E8FPZ7qyb0kdGpbQwbuwDg29dOjsp0PL0jp08ZVXbx2aOsqrmw6dyukwppMlKTdVY9EYruxtwhWB8uSOKlw7UVfM4CDin4aJb9qRE9tqsml+adZOrsDS2Go0tNOhkYUAaf8dYe669CtmxAB3Iwa5GTHKy4oRHhYMEZ97gJMxMaIhe4nZGiG+o1p3tauzLtHl7Qgra0c9"
Data "8/zUFIujvrMVlS1NKCOa0cfaiuKmprgWLYyrWCDeBkUoJVqypGEhcRXyihYtQisPZ/Hp7WlsLRrSxUobtDGqXkWCxIfdO7ibZhE93zqNl3tm8fqI+IfrR3J79xQeHpnD6zPL+HRxDanXt/Lm0CKebJulbTr0YPlkbi8cy94hETzZME/Uz1HOr5xCWMPyDOnWhGGRregX1pqZU8ZJ+cvQoPwaSG1m0H8KpJTtL9rc218rL9VYVrVuye8g2sThXyHq"
Data "WRWUUkOlf3xNwvP74j+d58m5Pdw5sIqtU2OZGNqYIW39GRdcT2r0dmwcEc4L+UzUB59PrBYnfhpXlg3VujnurhrNvZWjuDCjP/tHhjJN/Ls6Rt+wIjqIoNJOVBbfRXX++5rrUUrMVk8jXUrbmlFSAHQuXBgPCwuqe7pTx8QUbx0dwrxtBcy87GxUngsS14v+7cmY1IvUkWG8iWrNg8Bq3GtdQZuMrCYfH6lqzu7KhmyspM/qygZMLZ2foaW+J8RD"
Data "kvq+mN6fFkuYxqunsTy8G86XhCkkicZ8/7g/iS/iyHgzWHzKWF5dDef6vo7MinGjnJiTTdwFSPH3Qv2lAIv5266YDoHe34pGEpA88tFMwKxmqsOCvqJVnk/n3dVeXN7XhHN7anN8WxWuHK7Hhwfd+fwonIv7G7B5Xgk2TC/P6iE1CKlYhDpyjY6O3xDqWlDMawNt052h4kcOFf9xiJspg1wFSFdTejvri2YsTIiC0bEAQ2q5M65lBaKru9PSy4R6"
Data "zsbUEKj8XR0oZWuJdaFCOBoaUczSEm8LczwN9XHXK6SBWU4qvkpmJuJP6lHNxJAO3m6Eli9O3yqliCzrSo0COuyI7cKHnQsY0aQ011YMJ+PaZt6dXaFpxecnFnFvz0we75/LqyNLubJitFhLYWzs34lVEW3YGNOJj3tX83b3CvZPGkBsc186VXEnpk11+rSvQWDjyuzYvFYrhjkz+nNmYfzHS4LkcPz/Eo1qZVV/fntRd/HrahVtuXZNS6bzJfE9"
Data "iS8f8vHRJT7dO0383aPc3r+cQ0tGMSk8gCkSdk6L4/aOJaTfOq5tzabGNyacXilacyHPtk3j1vIRnJsZw6FRoewaFKxlTCcvUwKLWdG9ggelxVR1VzMiiuTB+lsdylib4lC0EJ4GxpRzdMbW3BwbKTS9GzTk1sol3F03jyFVvdjQuCKXgxvxbnh3MVkjiY/rzsueATzq4C9AludqE09O13HggL8p2ysZsr6CPssqGDCltGgcj78Q4/Oj+EPz4cNS"
Data "8ZXn80bM1If3xEdKmU7ym9G8/ymW5NdDSHk9mI/3+/DwVA8OLm1Ic9GO5YqKBiyTjy6lC9PJuxCdixWmg2seIsub06OEuRwXJah4EZo76eBrokPqzfHwdhrX97fk2sHGHNzgw/51Zbl/rgWfH4dx83gzdi4pxeaZPmwcWYvhzZyoLmZrkPO3hDjlESD16Oeqx/Bi5gwW3zFOTFQF4wB3E6IF1B7iZ6ptAnp4FmF00+LMDq3NmEB/xnSpz5LhUZze"
Data "ukKuc4f3jx5yYNt2Vs5bRGx4JLUrVMC+aFGMv/0Gh4L5KSl+padUghUszKhma01VeV9V/M4uxZ2IrlgMv7w6PBRNt31AF+pJZXN52XBJw73w7BCJAubnyxv4eG4Nb4+v4NWhJZwR92R5n7ZM7FCdYU0rMrF9LWYGN2FQo4p0qySw1xDYm/rSo05pogJ8iQ1uzq3LZ7PLYdYyGzkzMP6j1S1yYMwJv1KSPj9HJznpafbb306y9tj4B6KB99chNVVA"
Data "VAtTKUc67TMp758S//w6yc+viPK+RurT06j99d9eEV/iptpvX52/C6/v8fHiPtKv7STxzCptb4tHGydybfEQTk3txb5h3djavyNbY4MZXNeHUt/pEOBirpmqJYr8iJ+9OZXszPFxsMZTtGMpGzuCWkitumkLiQmfBRQxYT68EcP+OUvCWrFKatcrAuCHsREkj48mUYD8GNWWxwKk2rpcAXmqtq34j8ZsLq/H6nJ6LPLRZ3yJwkQ56DCqthlpZ6fK"
Data "fS+TlBcz6+VYHt3ry5ekaaR9nMDHF0NIfTeSxOcDeXktiiu7AlkQV4IyylQVc7dbGUMifWzo4FhUtK05oe6mhHtb093diiAXEzq5FSVAtKSvaLrES2Mknabw9moYt4404+TWKuxc5s6p7RV5frWt1gVyYHVpdswpw9ax1ZkaWIwaAmQX57/Q3eE7+gpoahvzYV5mDHIx1ro4+juL/6h8RYG/q0M+uX5hgcac2SHVWBYXwKSedZjWuxV7l08i8dkN"
Data "KYhZDSWZqWICKqWjioRkccKzlxzbvJXhEZG0qlYVxyKFNa1ZydqSui4O1LYx06ZndS3pRJU8OuwfFsFoqQw7iV+bcHINPDgk+X+G5BvbeXt2DV+u79QGCbzYu4iTc4ewKrYTs0KaML5DLaZ1b8zw1tXoJ9ZNn/o+9Gtamch6PrQr70QXfy861izH51dZ5V9pxv8YSFWm1c/+NvxKUTtDix0VL4dqha/fRhSMavF+tb60ur+f5SsIvw7a+poKSE2r"
Data "JmkLHCW8vS1a47r4W7elpj0poD6Wj59IeM6XF9dJeyKfqbVXUl5IBh0V32wb8SeW89PmyZr/eGCkwCg+3tqoNqzv1YGBtctSuZAOpcUfVK171exMqWJrSkUbC7xMjegR0FIKyU65fNb6La/jP/Pls0CZKmmT9oq90+NYF1iXSxGteTm8J19ESzOqDxkDuvNToJ8AWUaAdOdkLRv2KHNVYFxRugjzSxswyrMAEeKjzWrpyeMt8rtny0VDriLh9WSe"
Data "3B8gjvxEgX4aSe9Hiz85mo+PY3l8Lowjq5rSu4kuJfMrkzQPPUtbESmFtF8ZL3p5uRJbwoPOqiHEwYq2YoJ3F20WIOZrM9GSd7b2hMfjSbgVzZ0jTbWBBHtWeLBvjSe3T9Tj5rE67F/lzfY5Jdg+phpT2rvSwECHYDGJu9t/Q6yXArKw+JCGoiGN6Gevp3X+x7gbEO5amK5OeelVxpiRjTyYFebPqGAfpvZpyOktU0h4KhonXS2fkkRy9h4saoGG"
Data "lES1bIq8Udms3DSpiElI4um16+LPRVI6u+Gnhq059W1NaOFoJmZ0HmKrliBIKoJ2rvp8PKIa9vaIdbRL8v8M3NtH2oWtvN2/lNtrp7JjTAQLo9swJ7IFE7o1YHJIY6aGBTBIfP+wOqW0EFm3HP2b+Yn56k9s+0aS9pLP2aIgVGDmvP57UbSph1FBPZi8/wdl/NeIWqRN/V6AVM5skrhwv40vqVBMyUwl48svS75r95Rz8HXNoX0ghxqQ6qHUOinv"
Data "Sfpwj4RXV0l7f434Z2dIfXWRL2+l1v14T/wreU1+K9rrmWTKfQHyiPhmalPTrbzaNUvTjut7t2CZ1I5LezRlRWhLprStQ69qpWjsaEI5vXyUMSxIdRcbWvtV5MZhqXHffsya8iL39C79i9oFRO5N3iR/kHNveXlmC3v7dOSq+CQPB3YjfVIs6YMjSekTlAVkm1JcaezGiZrW7K5kwPoyRVhWoghzS4of5pyfCNtvWdGlCsend4afBMjPq0l5O4On"
Data "Dwbx6c1YucZsqYgmkf55LG/v9ePeyRB2zK5DI/EVm7noEC6mac9iNnR3sqGXuwchNg70cnAlVLR6uKsz7a0MiCgjGl7gr2+pw/H5LURDTubtxR7cPNSQ64drcnh9MQ6uc+f6ET/O7/Fh60Jbts3yYNuoymJ2WhIgJmEX0bAhUnkM8i7KABddYh2KiA9poo3G6WVXiN5ixobJ+W5qYSs/W2Z3rsTsqKpMjPLnxEYxJ5OvSropjfNOCvRnrSyoYq2C"
Data "tuSSynMtm+UgRU6kyWuiFETx15Kf/MS2uTNFc1WminFhGtkY0cLeiO7F7Qj0MBYLwZqry8eSfmUHCRe3SJ6dl8tIubi0i/jDa7i/fiabh4UKjC2ZJ2brtPAWTA5rztBOdRnRpQFD2tdhVKeGDFQzfhpWIqxqSTZPHiH3IErgK22oQFSLs/06H1J9R7XGKqWmSo06lgdU1p56WHnE5GRVsP61JCUkk5yofqfmQwo8yUmftPCfSuoXcYzlRpSWVOmf"
Data "lvHVZjg5B+rZc4K8V6cUvL88nNzLZ/EjX14WLXKZtLeXJdPERBUNmfb0Ik/O7ZNnF8348j5p9y+SeHmnZNI2Us6u0waRn5kWw6aYtizt3oCFneuxLqo9Z2cO4djUYewaN5D2Pt60KFOMXXOnSzoKcJ8lMROlUpJSowqOStYsICWopSMy35H5+Bw7+nTmamwPngwJgxlD+DK6DwwP+1lDXm7iypFalmyvos/qsoVYVryQtiCU2j+xp913bAipy67B"
Data "Asr91fB+LRnv5vHswTDevJBCwTx5vukakK9u9+Xu0R5smlSNSmJ+1lGgeIoWd7MhtnRpAdKLKGd3Ohoa08fDnUgPZ6KLuxDkVFR8STUOV4eb64I1ID+KyXr9QH2pdGpzYksZTmwtwc2j1TmxuSRrphuzdaY7W0ZUFpPemFbWOlpLcA/RsgPlvuPENI2x02WomMe97YqIllcroRelhwDZ1UOXwXVcWBDZgPkDWwrsoyTrxGrJfEz8u5tkpL0hIzNr"
Data "q0CVqzlASnGQJJWDFMlv9UFOUJt0fJTylyrp/f4tZ1ctYWjrJjSwNiRU/P7RLWqwdWgo11ZMgDsH4ckJ0m/sFn/yAEmnNvHx0BrubZjJ+sFdmSHm6kIBck50K2ZFS2Xcsylz+7YTIGsR28KPAS2qERtQjdCaZXl8XOJIS9FWSMwRBaTaH0SZr/9e1M2rMptTatSxUnDqvDyjPOqv2mskhwV5FQ2p3v1t+H8XVX5zwv+LqO+rlaizVq1TiSAPlvGG"
Data "pI93+Pj8POlvBMjPNyWjJMMfnSbztpiot4+L6XKctIuSIZfUOMZdfD61kXvrp3JgbLiYqi1YG9aMzdGtOTWhN0fH9WHrkAi2j45l64ThpN6VmlzBqFaeUwmfkbVhi0o6FbTsUcmQLp+lSkFJfM2+QdFciYvi+aAImDkU5gwibWQIHyXD77Xy4WRDR3armf/+hVjrq8uGskWZ5ZaP/q4FCBUtubVbQw4NbM/dNQPh1XrJtzW8fj6ehw8H8vH9GFLi"
Data "x4tFMIovb8ZxbU8n1gyvrK2L09lTV/xEC3p6uBAhAEa4uUh8NnRzNKSLnR49nMwlmBLsUpieZQrTVrTq490RZN4dxttLoTw41ZKLe2pwcE0JTm0rz93j9bmwvTJbZtsJ9G6SJjXpKL/pWSof7US7Blt/Q5hdfoZ4WdBXrjHAVYB0MibcXp/2Fj8S7KZHp2J6rB/YjnHd63Ng/VyBUFwKtfymKpBfksnMyDK/csqDCj/L1ydVGifKHzX/T2W92qAj"
Data "RQ6SJZ5P73m4f5v4pxEknt3Ll6uHeHNgJSliraBWNr+5Rxsk8vrQKh7vWsLF5ePZPT6SFf3asrhXM5b2bsaKvi3YMLQTC6IDWNivPdNEe/ZrXZ1wMVnHRnSQ64pp/f/QT/j3ohWSvwnqnAr/NxEg/7ui5Yv8yVpFUj2IZEbGO5I/3ufTiwuioAQepSV/OkXq9b0kndtK2rltfDmznbQz23h5ZD1vTm7m3bENPNm5gCuLRnJ8YhSHR4VyZHSI1o91"
Data "dGIf9o2LYfvY/uyZNU5q45eS8co/zAZSqiZVhJQ3oV5Vja79UX1IKVLQEt5xdMxgLgmUzwdFwvQhAuRAkseE8iGihdbtcaKRI7vqmrGqWgFW+hUQs1WXma556SwarqdnUdaJyXRQ/JsLM8Pl+uIDfVrB61cTefJ0BO/ejSY1YYL4rRNIezGKa7uCmBNVjIoFdejqpU+IuzXh7m4akOEeToS4WoofV4QuDroCp4nAaUB3jyJ0L1FAA/LJ3mipvEZr"
Data "jTq3jzblxtF64iOX0/zGc9t9ubDNn53zPVkz2p21cf40s9Gho/M3dLDSIcK1EJGOusSJZuzraEy0nQFxxewIsTegs6M+nb3NGB5QkeVxgZzeOIukd89VammizLyckJwsZti/m7mg8lyV4UQ5UK+KDWXGKiAl3d9ePsXzE7tJunKExIt7+HJNrKOre0k4vpqk4yu117Qru3m4ewkn5w9j/+Te7J8Uwe6x3dkkFcZKgXJez7qskYpwaWx7pke1YnxU"
Data "GyLa1OL4tmVyDXF9tIv+eeTPAaTkQaZGgQJSmY8fSf38SPMjv4hmTHlyioQb+/h8YRsfT23g47G1JB1bL7XlVoH0IKk3DpF6dR/xpzfxcvdCbi4byakpvTkwujsbYtqxd1wkh6bGsXlcP1aO7Mez84fFB5WCpIBUWvBvgNTqhq+BFF/y0pxJXBrSmxdDe8G0QTArjtRxYbwX0+huuyqcbuzK3joWmoZcVaUga0rrMtk5D20MdIgsZcyGDnU5EN6S"
Data "/YPVwPCtGpDxn2fx5u0E3rwbRWriZLnOdOIfDePytiDiAgypaSwmZHEjwrzsBEZXIt0FSDdHAdKcbs76BDuKVnQxIdiusHzHkM4e+WjrocNPu8WcfjGF9zcjxJhozPUTtTi6rRQ7l7twYG0pjq6vxI75ZVkzpgyTOhejltxjgLkOQXbf09dbTGEXPdGMxvRzMmJ4CQd62uoT4WlBJ1cjWrsbs25EGHf3LpGKRXz47AWKlR/2NYDq/a9aq1e+kqZM"
Data "WJX1Kii7Vg1hS0vg/a3zJN89T8rtk2TcOgIPjvPlyk5Sz20k9cw67m6YzJ1NM9k0KozxnWozPrAq88IasjS6KSskKCAnBFZhxYD2TOjRgKHiwoyJaEtIy5pkvJV7V0uHav7en0f++0BKhuQA+bPZmvmZjMRnpLy7Terrq3y8d5T3avzqjT2kXpMaU7SkMl0y1NScd9fEn7woGuGEmDH7STqzkafbZ3Np/iAOCjA7h3dncVRLFvUJZOWwCBYN683u"
Data "pTPkMh8lQ5R5/AuQyuhSxetnIJVjr0ZsCJCPN67g4vAYXg7tw5fJA8RsHUD6xEg+9BUztGM1zjcuxqFaVmyoXEQbUL6sZCHGOP1IG/HpOrvrsrt7S45HSeXQtznpF2bK9TdJ2VtMfMIM3r4fK3XDVLn4bF7fGMCZ9e3p6COQOOkQXsacyOKOWstqpLurAGlPqIs53Z306SZaUs3O72xTiAgBKcglL+3cxIfcKGb1+7l8vhvFo/NNuXi4Egc2ubF7"
Data "jQv7BMg9yyuweVYFNk2sSY/KRbU+yFZWfxGNm1cbpdPXzYABboZaV8cgb2u6WBQgqqQdTawLMj6oMff2ix+c9kzySW3HkNWh/nXDyK8Vlc4qmVPFRMpqR5CgTMhMZSXFc37vejKf35DK655UoLfE1Jd8vis+5G1lsu7i6c5ZPNoxn53jezG9W30mdqrO1C41mNG1Bkt6NWHriM5M716b+TGtGSrADuhYj75BTRgZLT62Wq9XrZCeC+RXIjmSA6Tm"
Data "8Gt5qjIlWSret6R/fkz8i8u8u3uUT2pQ+ZOTAt+5rEHmN8V8uXlA66Pkp9OkyvvP57fw9uhK7m+aykk1P3JEVzFholgR24m1IyNYMTKKIV1b0rVZDSn8b+Sifw/kz+69yicFpBpsnPqBxBP7uDSqHy9H9CVjYn8xWyVM7cP7gUHc7VyLS01KcLyGDZsrCJDlCrHQuxCDnb6nvmi5akV12BHcggt9unB2UAduL4+SyLdpQCalzeX958miFKbJ807n"
Data "8fk+HFzcggYCY7eyBYmuYENvtcaPtytR7s6Eu9rS09mcEDXDwqmoAGlIV5uCRHiZ0EXMzbYu33BwRjspxEtIetiHBxcbcv5IKQ5sdWD3eieBUjTl0iqsnVadhQOrUsNEh3pGOvLbwnRzKESUU2H6OqstCYyIdTGik/63RHtb0l58yA7Fbfl0WTRVgoJRfHBJMdUo+Lc7DatWyl/TKKKAVL9UIeVLBilqIWStSlRWyRumD+9N/IPzkscC5TN5VXn/"
Data "SsKtXXy5LBXyxU083buQY3MGs35wF9YO7CgmeHuWx7Rk3cAO7JkgeS7nlspnk6PbMzSkFeHtGnJi9yaJXwGp7lErdH8a+dMAqSxHBWWWepI36R+Fyxd8fnGVT4/PkPToFLyWGvLTddGK4lMqjXjrAF/uHdZgTFTN4ee2aJ3Ez3fP49ry0Ryf0Y/V/QNZGN2WmVFt6dXMl5qeVrib5Cf+iWRyuviRGpCSP3JV1aCj1ZfqHjQg5cZUS2uamDb3LnFh"
Data "XBwvxvQnWUzfL9NiRUv2493Qbtzt1oCrTUpzqroj28vpsbpUYeZ4FSTG4XtqmelQWTTQ/Pq+nI8I4sbIbhwZ01Lr+khOmifaYQHJqbNITpjJh6djuXU0kk1T6lJT/LnYmtb0r+xA/3IuxBR3pbf4j5Eu1oQ5mWnLZISJ2Roh5qUaUxrmbkJIMWNaO/7Awig/SaeVpDzuz91zdbhyphxH9zqzZbU1m5d4sXNZTRaOqEqvxg7aosotrPITXtyCUMei"
Data "9BS4+zio9VazBgOoVQDC3M2ob5KXVUOlIlHdY2rvFPH1k9WaqVKg/7abQAGq3v+7vjyVzBqMEhK/pJKsFrPOBjL+zQO6tq7Dqa2L+Hj9ECl3DmV1cT2VSvnqDt4fXsLjbdN5sGUmeyfHsCymLcv7tmPTsGC2juzO5lEhbBkTzsaxESwfEcFkqQz7Brckumt7Et8+E59dgFSZrJW3P4/814HUKigFpOTMz0AqM0JlTtp7kt7dI/nlVRKfnCXjqaoh"
Data "Bcq3l0RLHiX+0jYSL+0g6bL4FRLSLmzn09HVPNg4ndMz49g5qidxDcvSpYIj/pb5KSZgVLTTx8/dihvHdgmF77Mv+k+A1JazlwKiVj5/95BzEwbybFwsCWNjYIpoyNmxvB3ZgzshjbjR1Idz1ZzZWdqQ1cULM91Tl3CHHwiv606fxmUZUMyRAx0DuCgVxIHBTXl/YxLJ8fNIz1gg11hM4sfpPLk2mKt7pQANrUptSx3GNvNioK8zAyu4EVvClT4e"
Data "9kQ6WxHuaEa4avkUszVMzNZw56KEiL/Xq5Qdre3yMaCho/h3q0n7KY5HVxtx9awPx/Y7sWmVFWvmebF6ZjUGdSmBv0Bf5lsdOtobaD5ihLMRkVqfowTbgvRzMaSfaMd2Nrp0KeNE4nWpFBNVp3+KgJTJx/RkzeRUvmOORvzVvqOI+lYWkJkkZaj9H1UcWUC+e3qdtvUq0ri8C6NCAtgzczA3Ns/k8c4FfDq2Eq7vJPnUGl7uW8yJ+YNZPShIfMVA"
Data "to8LZ+/UvmwSEJfEdWHpsDCmx3YlrkcbRvcPZ+cG+a1oxqzB5H8++VMBqbSkdk47maUl0xOekvr+HvE/XeD9nSOkPJAa8tkZqTEP8FK0oWply7i4i4QTG3i0aTYHxkUzqV0NrTWwtvFfaGidj+ZSsGpY61LZsiDVXc0pa63PzKEC1d8AqYJWp6vLq9PaR3IfSiOkvOb05CE8Gz+Q+DHKj+wnQA7k3ZhQ7vRsrAF5oaore0oasSp7uf0ejnlZOSaE"
Data "/QtH0s3OjPVN63KwezMOD2nJ7QP9pc5ZImVDreuynOR3M7h7JpYrO3uxoK8fDQWWaW3KM9TflcEV3BlQwlGAtKWXk4UAaaIFBVC4MjPF5+smUPX1caOV+JPdyhtJBbKe9J+G8/Z+By6eLMuBHQ7sXO/C+gVlmDOsPJ1qWOGko4NfHh1tQSq1bGO0iwl9FJQSR6h5XqJdjejmqEcXgXVc5+YC4ytJiyTNtFTmvWoEU+n1tSZUQOb4k//Or8yq91SX"
Data "Uyap2g7J2UCmfpT67xqdGvrSxq8EQdW8mdg9gLWDezCwUTm6+VgzM6gWq/u0EbM0ipUDOzM3ooXW/7hhdBjbJonGlO+O79mSSdEdGRLSjn7d2rN38yoNRpXB6tpaUfuTyX+9UednKHNS6OeUUjRI5mR+Iv71XV7dO8vDC3s0KJMenOD5ua2k3j7EmUWjWN23E7G1ShLoqYZYGWgjO9o56dHMuhDVDb6jmtGPBHhYUVsKnZ+9CVUcTOndoZlcQvmQ"
Data "fw2kdmlVvtRprZypDBQgE5/xaP08Xs8cSfq0oTBrKJmT+/BZfNQH0QHcaVGJi9Xc2F3CmOUeRRnrUljb+GbjTNGk6U+JLOHOuHKl2NG1KWtCanBmQ5g83mqx/BYS/3Iiyc9n8NOZYZxd1ZNGDjqMbOTGsBquDK3szFAfFwaWcKCfpzV9XMzFzzPNDkZEOOpqMy+ixBTv4WZFJ1cTGtjoaFuz83ku90434cGVupw9WIZ1C+xYO8uHyTFl8dTVoUKR"
Data "v9BUPw+Dy7gTI1ZDjJqIXNaJAQJgpGjfLra69CxhQxPxHz+olmmtVTKFhMw0DcZso+8/krSMVEnzTMkGSX2tQUdZJAn8dOkEHWtXooNfGbr4FWdp324cmBzHiRmDtOl0wZ6mdPQ0ppmkc1MvA2pY/UB5Ax2qSgVcx82QpqVs6FSzDKsmD+Xywa2SFqrPUbRwWjIfPnwgPlkNYsnO7z+R/DmA/NugSbaWFF8lXWrmz6/u8PTmCV7cOMKNw+tYPLYX"
Data "kyPbsrR3IPO6NWdsi2r0q1aCkDIOdPQwE1/KkAA7ySjDPFQs8h0NxO8KKOVGoxIuVHG2JCZQ+XFv5DK/bOyqGTHqTQ6QcgsZOUAmCZDiz7yeNYa06QLkzCFZQE4M536vptxuWYHzalu3ksYs89RntEsROljlZdfK8RLPa+4sX0xscS/WdGzC7MBKbJzSSuJcL7XAcvgwl8+3JnBmVTdmhJajnokOg6o5ML6ON8MrOjGsnCMDi1vTz8NCW4S4l2jH"
Data "LCBN6CuVUJRosnBXS3p62hNWyomg4kbsm9ZBLIlZZD6P5cJef07urMjuZWXYNrcWrcp/TyVTHfyL/EDvYvbMqOEjILoQ52XNwGJWGujKBA5yMqCFvSHD2zYi47HyuZVeTJOKK5O3YpYqKP9TIJMTlWaUhFbaVPz5L2rARko8z6+cJaxpPTpW9SGsTmVWDgjjuFSGhycNJMbfW6twWzkWoZGY7JVMv8G7oLgjpj9Q182YyraFKWWSn8rOpmL9vpR4"
Data "Jf9Uy222dkxLlyD5nAvkPxKVIl+FnMMs+QVKbfaA+JRq0ED661tsWjBGW6O1X4NK9KtVluiqJYio5EH30s6087DUVpSrZVaIejaGVLfUp46jBQ2Lu+LnZE0FByumxPWRuFS8WebLz0CqS6pSpoJ8kCrXz1BApr3g2b5VvJgzhtQZAuSMIYiqIX5iGA+ixIdsWY7T1Z3ZJibrIk89Rolf186qIEe3zZeI3sn/V2yIjKB3WTcmta3EFgUM++HTUgFn"
Data "Jg/29mXziAb09jemo9OPDKzowFg/L4b7ODCstC0DvS3o5y5mpbNxFpCOWZoywsGAGC9Lwlws6OZiRVfRot3KWDKyjRe8WU38rQE8PNWRRyc7sGNeZcZ2d6CSsY42d1Ft0LOkSVXWNfFlRhW5lkAf42KsbUWudj7uXMxW27HqwvplQo7oQzXYXhJG+X1vUlN/MfH/r5KT2SrNVUTKZ1fD58S/e3L2JEE1qxLaoAajg1pzYMYYnu1ex6VFUxjfph6d"
Data "i9vQXjR5fWcDTSNWsSpACcPvKGH8I8VM8uJhlA9P86Jyu1JtJInrE/9RWydH+bfqkjl1rjr+M8l/H8i/kZw8ypHkpAQyUhOkgvvIl8S3knliNiW8YPfK2US2qEU3P29CKnmK3+SuTUBu62UrJp8xNcz1qGJciFKF81DbxZpiegUx+06HGmI6rpk9RZSe0o6S+V+yBkArGFVB096oOkAFuZEUrQBKZfDlDW9Pb+fZvLGkzRiRNVpHNGTiuBAeRtXj"
Data "WssynKjhyIbS+sz3LMpI8b3ais96cMtCqfgFSHkO7t8htk5FIqq5cmhZtMC4Te5jDZ/PDeXw9BbM7lyKqLKGxFUQAEvbMaCYtQbj0OIWxIkZ3s8le1EpeT4NSAmhNnoCpDWh4lt2cTQlyMVM/GcTOpctwsNdg+H5Ah4fCWPPnBqsH12ZiJqFqWetQxM7XcoLkEdDWrIzwJe5lV0ZVcJKNLCRtuq42pWqo1gToTWrwKtnkh5SeYm5p+hRSZT4JQvM"
Data "/6hAqx8rGL+uBFVrbVoab27eYFR4CGFNGjC4U2vWDI/l8d4N3N+6ki0j+tKrehlxQyyoKxVUNQmVxRqq7GBIVXdrfMXXLm1viquZvmhcSfsUgVJbG0ddKOuySkOmSAXwH93/7yD/ZSC/zo2sY5VAOeEXkc9UgqYnCjBSMMQEObNvM7HdWkuN35opPVoxLjiAPo2q0qasO/VEW9T3sKd5WU98Ha1oWM6bXoGtOb5rE4mvn5LySU3KTpLKWNX4WQwq"
Data "INVdaH++AjJRTiRpo/nfknj9EM8WjCNdTCemSWEXDZkyJpjHEXW43LIkR2rasbqMHnMEyBEO+rQzL8Sd8/v5lCDXU616AuW1TcsIrubOo2Pz5MLH4cFsLi1sw7LQUgz2N6VPSRMGl3UQ09GOGLXxTzFLbeb+ADcBz7mIaMei2UBa0svJhkhnC6I9bAi2MxYNaSE+nwPBxcxoZv8dvetYwz3RwI+X8GBHDEtjfGks/mWA7TfUN/hG04SPh3bX9i1Z"
Data "UMGOkaI1+7gaE+xsQitnKwKKubB63Ci5d0lzpbnUrBzJB23z1J/z7D8TFWVqcvbULBVdkhyouaiJiTy5fJ6wVs0IrOlLW79yzOoXxu7ZEzi6eDqTwjoQ3qAKTcu6UsHWQGuoqyz+tYtBAfS/1aGU5HuPDm0kjSUjVau9NgAgqwU4PVOuJ+/+uoz9OeRPAGRO6VdB+XN/DaXW8qpek5NEoSkg5YSYTrcvnmD6sH4sHd2POf16MKhTEzpWK0Nd8Ylq"
Data "e9nTokppOjeqydYlc3h++3KWySVOfZqaBC1mjPINM7Tr/QMgVeFQ15UP4+XgkzZf9C0Zj86IwplI6iwBcsogmBRD2qggHodX52JLb/bXsmV5maLalt/D7fVoZ6pL4os7Erfct5S8zDcCZuoH5gzqxp4FfQXGtewbV5fp7SwYVduI2LJ6DC1rwyBve0YUd2awq2hIDzVr35AB4pPGOBYi2r4IkfZGGpCRAqTagzFENGVnMc2DREN0Em3R3lmPls75"
Data "tD7Q2SH+XF8dy/0NQ7R+zWq6qt/xGxrr6zDB14P4CZGca1+FxRWsGS7QK/9RrauqNsVpW6EMLy5elDSRdEpQz5CZlQcKSNUd9Bt0rKv0/xyfQkqyxKPeqOg0f1IyQlViyZ+5eGAnA0M7EVjPj4Y+HrSRfG4o1lCt4rY09vHEXzRiNU9Hqpd0paK75H0df7auEjM7B0apRNQiVukSVIuwukxO+LPJnwBIhYLUwNqr1L7ZQCpIVNAS7ecUVBkliSwJ"
Data "m/TmBce2b2DmsGimxnZnQt+uzBrSiy0LJ3Pt2E4+P70rUX6Q32TF/UU8HgVhshy/Eyg+ik+qGicUfyr8QyBFPsqb91p7opjLr67wbNEk0maL1pg8UEJfMkZ05ElPf8638mSPaKRFYipOLaaAFA1pXJiE53cl7uzqX436yfjEvZNb6Nu+EiMDSxJbKx99fHSI88nPyArmjPVxYrinA+NLejLUxUZbXGqQ6qR3Kkhv+wJaH+EvQNrS2dyALtZq+Jyh"
Data "+KyFaWryI+2cxH91VSsI5BFf+jvqCpitHH6gsbx2knhaW3xHvfw6rG9blY/DO3OhTVkW+5gxwC6vNqujrQDZysuFocFBkjVyz2kCpJqFoUBRZqsy9ZU/qRp5tCFv/zfJyeeE1ExRjFm+nZbfmmSS+Pmd5qpoDTKq60m5K8mvSX//gBc3T3H/7H5O7VjHnlUL2LpoNpslHNy0lmd3bmTBnKEqDpWhco+/RPyz/LuBC/8N+ZNoSIWDev17DalmgqiD"
Data "JCkYqcni0amZAFqtl07Cm+eSR+LfSCaRIfCpDFMZp0bWiCZUA5TTtBnhCvR07Z/UkwJiumaKqg7pHPDVHWhAqltSB+p25FhiEC2p4pD4P9zh0dJJJM0dLRoyC8jM4QJkaDUNyJ21bQRIPSZ7FWWQvQFtTArLvb0jUe5DjdVMUTPo1X1lvGPdtFi6V7clrpYBI6vqipmqy9gKlgKjBcOdrZlQzJmBlkYMczJmsPij/e0LawsY97ITk1WA6eVgrQEZ"
Data "YmtDZ0tTOqq9SKx0aWNVkJ6l7GlsIjCa5aO9mLgtbQvSyOJHAmzy0sjoLzTT06FdUR3ORzbhaVQjTjUppm1XHm35Ld3titDO2ZxuVSuxfvpUSQtJDGVGalklKaUaXqRSTFPLmyiT/zcAMmd6pJp9lZyepcHUBbNMY8kIpY1VpZ0haad1vch1U9/L4Qv5sQCroNVcGfme8tVVpSFlJC0pUdOMaiU51SeqBi/8MqpI3ff//d5/L/kTNOrkJMyvTCAt"
Data "t7K/qxUGlWHZQTuWxNZqxa8TPStkwa4gzAJRi0r+qFeV9Srb1XlN1EH2l9KU76r8yORnPNg4l5dzR5I5JQ6mx5IwoDX3g3053sCN3bXsWVbOhOGihVRrZffiDlJAlJaWAiERadEpp0nie3TxJL2a+TOkngdDK5syWmAc6Z21XP9YgXC4VREmuwmcorGGiD8aa29IHwm9bI2ItDIhQiAMtTCnq7W9aEhrCWKyioZsb6VHW3ND2piZ0NbEkNZGBQgw"
Data "/pEmdgWpYfottUy+oZPtD8wub8Kb/s3JGNyB3X72zCqmR7TNj3RzM6SFqxmNSrny/NolSQO536+TUT2EelWJptJfS8T/u2jR/E34Rb6+cE6eSsjJ478L6n6++s1fR/b/C/kTAPlfFpV3knEKSNWGqF4VsFrBkzzW8l9NZFY1dOor7u1YypOFo0hT6+pM609iXDsB0p8TDTzYXcOBpWXMBMhCWt9gjzIuomJVV434MFJQVHRaGZHj908eM2tAL21A"
Data "g2pVHVPJiXFl7BjvYcF4AXKEwDVJwFBADhbfsL+DsWhI0YwCZLi1kQBprAHZxcpOzFVrggXgINGQHSyLCpDiRxpb0t7IjA4GhWlplJdmjvrUttelrm0BOjvkY5WvJYwI5G1oPfb4OTGzuFxD9Z3aFaKR+JFd6vtpC1dnNeTIPX8d/p6cXPmNJBfI7AL2r4DMau4XINPf8OzgOgFyDOmqlXVKPxIHtedeV39ONvRkV3X7n4GMdDEkqrI3fBbfU4BU"
Data "LXsqKhWtdtHUZC7u2MiAxn70qeDKkIoejPLxYFxJZ8Z62DDczpAxruYajGr5frVAcZSjIRFyXs1P7GmtT4iVkcBoSUdbE20KVierPJof2Vr8ytYmFrQxMqedkR4tTHVpLJDVdzGhhaclfX2c2d20LF+Gd+F+h6rs9XdmsnthYt1Fu4ombexmysQ+PeRm5ZlzgfxD5X8bSFWosgvY3wGpzucQpPkcYtCKn/rpzG6eLB6bBaT4kMlDArnfrSqnGnmx"
Data "w/8XINXA77jaFcXSfSe/T9XWF/orIJUf9uQ+E7q2J9K3BJGl3YmVMKK0B+NLujPM1UaCFXGOxvR3VgMCDLXhbD0dihIifmSoTRG6W+sRZGNCoI0BncQ/DLT6XvMhW5jr09LYnJaGAqWxEQFiwta3M6W+u5i2lUoytVlNzgQ35mNMe+62r8YuP2fGOBYg2kG0p5sRLYvbsH/5XLlH5Zdlp8XXIRfG301ygcwuZP8SSNUa90U+zfxA5q0TPFk0nvQZ"
Data "w2BiX9KGiZbpWo3TTUuw1c+WRWVMGSpAhjkaMKZ5LUgUkzUtRTNZVdyqMzpdW6tUQmo8K0YOIaqmLx09XAj1dGFASU/G+pRmeDEXBrpZ08/ZVOsbVBo3zFlAdCxMD3sJtrp0sy2swdhee/1e/MdvtalUzcz1aGZsQTNDS1qamNLA2IC6Dpa0rliKnrX8GduwJic6N+Nj307caledrVUcmOSutG5eunqZ0aqUHY/PHpJ7VBoyOy2+qrxygfz9JBfI"
Data "7EL2C5BZjT7aeQVj9udftBXoPsGTqzxZMon0WcNhQh8yRnTVgDzTrCSbq1hrQKrNeULt9Zge2DQLSOVDanGL4ZuWrrUWa0CmJbF7/mx6NapDGy9Xgj3ciPb2ZGjZEgwu7iYmpJ02mLy3q6k2EVltbKMmJecAGWxblPY2+rQRbdnO5jtaW39DcwGykWjIhiaWNDSypJmJGbUM9ajn7kDXetXp4FuBLsUc2dGyJpljojnXtALry9sws6QFkfaF6Cga"
Data "sn15N1JUt5H2zNlpkRNygfxdJRfI7EL2T4FUQT7XVlJTQL67x2MFpBqtMz6G9FHduNe9Omebl2JTZatsIHUFmqLM7d4mawD7V0CqoE1LUqsHC5B7ly2gT8tGdPIpSY9yxQkr5kaMtxv9PZ3p524rQFrQy82cCBdTAVKgFJ9SG2tqq0ewaMd2Voa0si5KG+sfaGn9PQ2tCmlbwdUxtaSuiS2NzQRMO2salvKkRdXy+DtbUde8EJta+ZM5sTeH65Vk"
Data "SUkzxoj/2NtNTF257+im1SDhtdxoNpA56aSCOlYhV34XyQUyu5Ble4n/FMgMbdxrvAD2hEdLJ5M2ezSM60v6mBANyHMBpdlYSTRkaXMGO+lq/XkLQzvCe1Ww07VoVPzqOpqoIUjpSWxfOpuYdo0IrVWRXlV9CPV2IczNligXa/q62Yh2FCAlaEA6mwiQRoTYGhFqbUg3ayMB0VhANKClTT6aW+ehvnURalmYUtPMlhomdgKoLa1LetGgfDEqetli"
Data "X+QbalnmZ0fnmnwc2Y0DdYszx8OQaJNv6K2mM9kWYWKY3LdaDUCZrDkA5gL5h0gukNnA/UMgvyqEKWmJ8t3PokZf82bTIpJmjALxIzPGhvKwZ12ONy7BnjoezC9lyigPY4KtCrO2v5rzKAX7b4DUyrPWwZ7EsW3L6duxIb0b+xFVrTRd3K2J8LDVVgWIK+6gAdnFohBdRQuGiz+pYOxhY0x3CwMCCuWhg2i/AGsTCQUEpoLUsCiCv5kZ5fXM8TO1"
Data "o6a1Nf4OFpQR01e/oBrjWYRWUmlsDfbnXkxT9tT1ZqqLHuO8zYlyN6auWT4OLFYDAuLJSFad8OpmRdTr1yFXfhfJBVKRImz8NZBZ53I+U99L1Ya9KSDf8m7rcuKni4acMZyU0aHcD6nN0Ybe7K7tycIylozxMqWrnR47Rw6QSBMkjqw+yKz4s8tzNpBn9q9jalw34trXo1NZJ9o5GhHuaa0BGCbHvdxMCbLIT6BFPjpbF6aLpa6mJZXW7GYnIJob"
Data "0sRKnyaiIRtIqGlrQE1Heyqa21HG0IJaTo54GRXEVO9bShS3wEY0YR13XTZ1rcLHSV3ZWUeAVFvPie/Yp4Q1dcwLcHPPOrm3eDJVJZRzv+rP1yFXfhfJBfJXAKm+lqyt3yoFNOUdCXs28Gn6GJimgOwpQNblaOOS7KztwcJy1owqpoDU59SsCX8FZE4rrlaelW8mQB7ZsYIlkwcwIaoDwVW8aOtsTA9PczpZ6xJsV4huYv4G2eYh2KkAXd106epc"
Data "kO7OojEd8tPK5Hvx+fRpal+YuhY6VDbUoYJZHirbmkpwpLSJJaVNjbDI/xeKF7PBwrYAjvYFaVHZhocLevN0VCBbansz2dWI/vZF6C8VQmOJL/X+ZblR0Y7KTM+5X/UnJ/wsKpFy5beUXCBVmZLwT4GUoL6mAamWKRQg04/s5N1UAXLyEDInRPFTRCNONCujAbnIx4bhHkbaMLZbqxb8DKQC8e+AlAK/bd1ipo/uz5yh0YzsEkBwGReC3M3o4qJP"
Data "sFsROrvmI9DlOwFVh+Z2OjSz1qGVow7tJTS30dGWcfQz0qGKgQ4+ErwFSuu8OtqOxc5F9SltaSrmqjV2TiYUMPiO73/QYfvCkXBmNZ9n92VznZKMdtQj1tGAvmUd6VbJU25U/N5UNahbjQHOSgbtntUf7SBHcoH8rSUXyGwtmAWkAuefAKkAUmNl1QySswd5M3U0qeMHiZbsy/OYAM62qqABuaSCHUNcDWkvpt+rPZv+DkgF/c/xi295YM9Ohgzo"
Data "y7QhcSwcNoDQGhVo7SF+Y0kzAr0KEdfAgdk9y7NlbEMOzGrJ4Xkt2DmlDov7ejM2yIa5vcozI8KH+X3KMiumIn06lMTT4i+4mxammKU5xa1M8LSzwMTaGDMnCzy9XSH+JVw9xOc5w9ha34dBVgUY5m1FRHEbJnYOEBjVYAZlrv4yPe1nFrU/OZIL5G8tuUBmlzb18uuAfA/XTvN68mgSx4qPOL2fBuS51hXZXtONZZWcfgbyy8WT8n3VuZ6lGf8e"
Data "SDh2/AxDBo9k1IDBzBw6hO51qxJQ3JaOZa1o5PotxxaFcHNXDHcO9OLyriCu7evI7SNB3DzYlmt72nJ3b0+ubg7myuYOHFvVjomxftiJpjTX1cHeqAhOxnpYGBbG1s0ZY0dHGjRpLjcjz3H/Ok/GDmRHYz/6m+ZlQkV3QotZsn3CQHlMAVJNecoF8g+XXCCzS5t6+UdAqskD6n2S9mUpyGr2xp2LvJw4kngxNTPEZH0c1ZhTAeXYWt2Flb6ujPA0"
Data "pbONPrx4KIU/q+vgnwE5a+4axoxfwNjhkxkSFUPHmjVoUdaN1uUsqeOuw4l1ETw4O5BHl2K4cqIjV0+34tb5llw51YArRxtyfW8rzm9qyok1tdg2z4/hvb2x0tfBwfQ73GyM8bI1x8vViXz6huhaOvBdHn0+3hMN+eQ1CfPmsLNZTfqb52OynzeRJR24skbM7E9qUHkWkOpeVVBPr0LWnxzJBfK3lv9tIH8WBeEvQRNVCpUdKwyqQqh2TNPeKHPu"
Data "wVVeCZCJI2NIHNVDa2U91cibnb4ObPRzY4yYf2o5DbVrluprzNE0KrqcaHMAbd5+BGOnHGDq1J2EBQ+kRc3GNKlcloblrald6gc2L2rNpcMhXD/dmdMHG3JR7YB8oQFXz9Tg+qmaXN5XiwvbqnNsXSXWz/ZhaO/iWIqGtDLKh1EhXRysrNAXGA0s7ShkbMt33xixbPxiqSw+82z6NHYG1CDOMg/T/IsT7ePO3T2byVA7WqklU9SUJi0BsiqpnPv/"
Data "hclcIH9r+Z8GUsGnJisna4UuuwAq01SVOnVKqTNFjYRUKYXp6mTKSzKvHuXF6IEkDOzJl/E9uNGhLJfrunCsohVbfGyZWtqBsQF15Uef5MdKt6aQoibTqlZLiTtRLiPv6DfnKuXqLyR21APWb8+ke/gyOnaMw7diJYq7FcG3zHdsWtmGW2fDeHI9hBsnG2vbkd86VoMr+ysJjBW4frgSRzd4cmprBTbNr0yH+uY4mRTA3sQFZ7tyGJvZU8TQFFMb"
Data "JwwMbLDVd8OzqDMJJy7xbMkczvVsxgBTHSb7uNCnfAmeX7mq7eirUaf6UNPVxO8P8uxqUndWcqSrz7SgEM2F8reU/2kg1YrZnwUytSqARqCajKv6B1U5UypMAakszo9ZfCaobg/e8fHMdh7FRZA5JJJ3/QO436UCV2rbc9bPlt2+Lkwo5cCGIX0lnnjhT61bJ5GozX1UQ4lEpLZDPPgEKnXdRqn62/FveojoYY8ZM/sB7XtMp2K1hlTy9cTZSYeN"
Data "68Q/PBvFvashXD7WVLRlXa4fqc2VA9W4fKA6R7dV5MAWP47tasqiGfUJqOmNu7WnaMZqmFvWwMiqJAVMbDG2csHa0h2rgk4Y6ugyqkNXrs+dxPWYloyy0WFiSVviKvtw//wlktXDKs5Uy3KaGmn0WpIja3FklQKqctI+V1o0F8jfVP7ngVRLefysIXOAzNGQCkplcUpQjCapLcx4TfyJzdyKDIIRvXgaVp9LrUpy1NeC7aUN2VHTS5u7+Hj3Rm1y"
Data "slo0JF6tKSuRZKr9EyX6BCnQQ5fcxrneAso1OYy77zaqt9rP+kOwbt9HVm07x/RF8+jUvQ4r1kZz8vQgbt4cyNXLoVy+0IkLZ9pw8nADDuxtysFDkeza05/V66KJHdAO38q18fRohrNrMAUNG2HiUoeCFiXJo+eAmXkxrIu6Y65jiNM3eTkwrC/PRnVjtLUOwxyKMK6WL3dOnkZtzZGWLH9UeqSrBp53WrWSA6SmITUgpcbSZujnym8l/+MmqzLB"
Data "VEOOFDxlfuUAqcqY+lCVxw/yRo6zfEsx4RIekXRkHTdC2sDIXjzuUY/9dZzY7W/FSgFye0BFYss5wvN7UqoTiU9NzDLz5PcJyRmadjl/G2p3XESxBkvwqLUNn6ZH8ai+hrhprzhwGc7KTyct2EXkgKGMmDSchcvGs3bzRFZvGM7KNf1ZvjKaBYt6Mm12OFEDuxEYEUyjDm2pUKslxX26Ub7qaIpXmkQRu1B0HVtQxLk2Pxh5o2fiLf5lcTyMPDHQ"
Data "0WFNVAhvxkcw0lyHodb5WdKmMed27NLMUW2RBC0N1ACBT1o6KQNcPUuGAlJLK2U+yGuu/GbyPw2kKldKCWqw5QCpfEj1QU5QmlJes3ZmEn8q/gH3F4/mfrgCMpI7HWuwp64bm6vbs76+J8tbVmb74BApucr3SlNMa5pFUNY2qHkpZXj0zBN4+Y3EvdpsjEpNx73uRmx9F+BVeylhw2/Rd9wtKjWYTtXGU3Hy7ol78Z64eYVg5xSEpW0gTs5d8fSK"
Data "xMU7HAefMIxKdMKkRBccK8VSstY8KjbahHeNdRh7j+VHx2CMSndGz60Bhnb+6OuVwKaoFxbfGzC5QxveTolhvO03DLfJx9rApuxbspiUpPRflqbRoEvQNGMOkNrmVmr6mNL8uUD+pvI/D6RSAuo1y1TNBlJK4tefpaklBZXdqvypT3fZ3LMpL/t1grhunGtWkT2NSjKjnDHrAn0Z1bAU709tF9LVSJesAQHPpRS/l1fxIpm6+gLlag/Co9xQXMpN"
Data "wrPuMgzLTcXefwHmPtMo03ANvs034l5xJh4VZlKiyjw8y03HrdQMHItNwdplAs7es/D2WYp7+UU4VpXfVZqOje8M3Gstx6PmZhyrbMSq/GpMfOZi4TsWK79YgbYjph4BmFhWx6hICez1PWnlVZqUpRNZVMaE3oV1mFG7Auc3rZPnlKfWYFRBVUQpWmWigFQp8TOoas+MXCB/U/mfBvJn0ehTQErQClhW94eCSQWtdTV71bnkM1tZ0LQ8n4f14Em3"
Data "xhxsUI41NYoxqrwF+4d1YcPonvLVh9nzILPieCl/bkmJnnfgDv4dxmEhWs+r9AjKVJqBb+stmPpMxqbyTByqzMTZbyZe1eZoms6y2BA8fSfgUHYYLhWH4eE7AvvycThVHoir/1CsKwzHvtoyrKqsxqryCmwrrcbaZy3mpVdiWXE1TrXWULLlaoo1n4mdf6yc74add0fsnZthb1Ed+2+NeT1vEgda+RGlq8OIMs5k3L0m960lAdrGyFoFleU/KiDV"
Data "qSwg5YHU/FAtbXLlt5JcIBWMWgFTIQdI1cifKdogk9fJHzUgU9QuSskvODtrKMvET0wcG8GJpj6iHSsxtYIzs1v78eLgcim14iBmvhWF+lFcyFRSJH7VFDR3/21cGvbBxq8PpepOxLPEMHyrz8Gs2GCsKozBpORQbMuPFeDG4lJpPJUbL8a5/Ci8/MdhUyoWm7L9sa/QT6CKwLJ8FA5V+2FRIRYH//k4+q7CqcpKXKqswqvqerxrbsCrzjq8RdsW"
Data "a7acaj22ULnjEux8B2BbNoJiFXth69AKXR2pRPrHcq1PF8a7mDC+khckvhPGUon/lJHlK0pQS2cqIFXQ9KGWXlJB5QL5m0sukDlAaiEHSOX7/bKgsmAl56UApojJevcU7FjI0yHB7BFNOd/Pi7F+3nD7iJTWJ1JQX0gUAqS21H6WRjl2/RPlWg/CtdkQTCv1o1yjmVTyn4aHZxzmnuEUcuyIkXsoNiVjcCobR/la0yjpO1HAGYeV2wBsBFoH0ahO"
Data "ZUeIthyOTZmhWJURkEsPwclntJwfg1elyfgI4GX8p+NZaRyeVSdRuvE8ijeeT40e2+kw/Cx1w7aKnzqeUhJK+ooPa9uc6e1DuT16CEurldP2E/lp31apVKQKkXtPVA6jiLIWlMmqgqq3stIqF8jfQ3KB/CdAqkUbFZBvpNBpQKrWxic3xRl8yOdlE9gbVJPNbarQ18OCp2q4WYoa3SIg8kGiTJBokrSoPieK37jkKMWbDMK6lpiaDSfjWWuSmKzD"
Data "REuFYGDbEj2HAAydWmPs1A77YiFUqD6Msr7DcCsugHr1wcW7n/iQA3CR4FCiHzbF+2Bdog+2JXth6RqErUsHrcHH3rkzLp5d8SwjJnGlaFyr9MOv7RJKNVtEg6iDjN+czrz90Kr3QRzLj8HPbwidKgRwe+ZcVjauRx9Xa2aGdZZnTcra9UCeRkkWkKqLKCu5stJK4SlQShrlym8nuUDmAKleVdOiWof0i5p2JGaqhM9S4JJUg47ymdTY1Gd3eDp7"
Data "BBuCajCqmivbYkNFdajpSmLqSQHNkO+mfEkgQW08KtG9fQ+h/eZTtskorAQAt4YzcK46HjOnMCztOqFv3ZiiVnUobFELc6emFPfpSrkqPSlZNhhr+ybyKpB5tMLerRk+/iF0CpvOuDn7WbLlGmt33eLCtffcvPmJa5c+cfLwM3bvuM7KVScZNn4DgWHz8G0+nUahO6ncYSPN+51i6XFYehSahR3Fo1Qc1TxbsH/MfPaE9aJfCQ9GdWghdcqrLBq1"
Data "NFH/syyFRHkgDUjtj2rekXTJBfI3lf95ILPLXFYZUwRpCwMrMyxNNKMaxZMuQQpekmjIhA+k7N7CySFRTG9ZkeFNysLrOwLjJz68fCRxpJGYkcjnVOVtqbjEf5SfxQxeRYfem3CpMR7zCsNx9BtLUfsuYo52xlpgM7KrQ1EzP6yd6+HgVo+iRmVw86pLufJNCYsYxZx5m7l09TmfxIRUGChLUgV1rGkxdfOKC3VCvcrJFHl9IddetOktU1Yn0qjn"
Data "ARqEH2TVGTgslnXcnHf4N1lEjSq96dU4ipMjBfTadZgeKhpSDaCXONJVp6nW/6EqpxS5ZrZ5qiWWupB6rz7Pld9K/qeBVOVKFWgVVPHSCpfW4S0FTexNZba+To8XMOVcgkD26TPvN29gWVALxrb15/7BpfJd5S8qTZG1KsB7+V5qpooxk4zkL9reLwuWnmfplnjKNpiLdflRWFccilGxbhi7t6OAaQ2KWlbH1K42riVEQ5ZpSpVqrdmy7Siv34m2"
Data "FSgSxJlLSErM3o8/675UQ1N8apZ5rJGouMi6rPYwqq9QDbY5dQ2mr0igXpddBA+7wtpzsOY09JnykAYdN+BfZwwV3VuyJXYay7uGElmnqlQwYorKNb+kSISaCZ8kaZCQZborkXiz0ixbY+bKbyb/80Cq4qYaXlRQrYkakNrqAGqGRpaZpqZkqTmEaZeusCd2ABOb1uXEstHyg8fyq08aIOr3n9N+2b8jI0V0mJTaZCnbu/c859RlqNZ8BaUbLMS0"
Data "zAAsK0VQ0LUpeo6NMHNujIlDHUzs/bB1rkK9Jp149vJTVjxaP6AKCoYUcXMT5ZyCUJ1LIj7tpYCpejhFFIwCkNr1KTlF7lve338Gq7ZDy54HiRx3k53XYdNFGDznPg27bKRs7Sn4V+nLgIZhbO03lO7+lTi/bb1Y33LjqfIA2jIeCfIo8fJsquJR18hKL/VJLpC/rfzPA5lTsFTQRuxkb6mdtX1AVkOGGjZGajovDxxhQccgDowcBO+uijX3UApp"
Data "giCZNRPig0SifqUkNVGgUT+Tl6NH3rNqXTyN222iYuOl2FQagnHF7ugWb0FRlyYUtauPnk119G18MbcvT4PmXUiUG9MKu/ojZqPahu9LmsSuoFNBWElIUJpLGZNqpGnWLatV0dNSk0mXzxWQR07Byi3QtuchYqfc5ch9mLXtKa3C11C5+Rzcqk+nRt1JNHJryMgm7RkXHMjA4LbZaSCRqAEAAuMXreJRFUGWVswxm+UbufIbSq6GlKBgVGBqQGoa"
Data "UoJ6lfdZoIqoKUlPXvLT9l1SPt/LR6/l5Ds+f/nMR/mGKpwqDm3j0WyIMlO+aFsWnjj+jIjIVbQPXk7pqoMpWTsW/RKNsanckqIO1ShkVh5Dm4oSyqDzo4loyZI8evJa7ZNKcqJEoPpHc0CUc2ppH+3G5ToJYi6r1uCs+/9FPn1K5faDBKr4xzBz4SMGjjnH8OmXOXkblmx/SMtucyhbazCuleNwK96Vyvb+lNI1ZVpMNAfWLstOA3VdlQIKRKUl"
Data "s0xz9Xjq7M9pkyu/meQ26khQhUpjSDshhTAniOR8psGgCqimhkR7aJuIqu6RrMm7fxWHkpw3Enr2jCE8Yihe3tXJW8gWS4cyGFq7YmLnTmEjG77Lo0ehomYUKmKMibkNOjrfsWix+Kc58lVcfxVE1PUT0xWSWYymiCZXH6kZGcNGzsDEtDSmFlXw8G5OnUbRVK/bk/K+nShTvgOexZvh4F6dEqVrYG/qQJHv87Jn00aJW3xUbWNciUhLh6zYlQmf"
Data "I18/c678dvI/D+QfIUlJSVSsWBFdXV0MDAwwNzfH0dFROzYxMUFfX58iRYpgZGSEnp6eAKnDhg0bhP1fAPhnovxe1cyj4EgTeBLF78uBZdWaHTRs3J7mAd0YNnw2kVGj6Nt3Ku3b96VQIVfsbcvi6OCBsbGxvC/E6NHiF4uoXYaVqB2Hc+WPlVwg/wDJKeCqwOfLl4/ChQtjaGj4M5zW1tYakOpYfa6APHbs2M+/+1eSIdosa2dodZxJatoXzdRV"
Data "ZvPly3cJD4+lWdOOrFyxg+heIyhbui4OduXIl8caA31H8ucrTMGCBTl48KAWX6o2gFWZvJ9+1fVz5beVXCD/AHn//j0fPnwgIyODffv24eTkRN68eTUgzczMsLGx0TSj0lQ5QF6/fv1Xaah0be3UbCCVpS2vSclZZuuDB8/p3XsQzZt3pE2brpibuZDnRyO+/84QE2NXjI0ccLB34fTp03z+rPpOs+TXaOZc+X0kF8jfWXI0joIxRx4+fKiZrEor"
Data "KpNVQak0pjIb1TkF5MWLF7O//a9FacUcGHOATExK0zTl1Wu3GTpsNBERfRk8eDTlyvlToIAhefLoY2rqKNf5kXPnLpCsVjLIllevXmmvqgLJufdc+eMkF8g/SL5oTa/8rIn27NlDdHS0ZqYqGJX/qLSj0prffPMNa9as0b737yQHyPSMLz8DmZySJloylZOnzhHQog3rN2xhydKVFNUzwsTUChtbJ3QLG9C+Q5BUFFn3lZCQ8PM9KolX/ZC58odL"
Data "LpC/s3xtdqpCr0T5ZoMHD9Y0ob29vaYlFYhKQyrT9ccffyQqKkr77r8TbbpituQc52g2ZYq2bt2aI0eOcOLECWrWrImdnR0uLi6iKQtolUCO5Pzma834tebMlT9GcoH8A+TAgQPcunVLK+A3btxg//79WsOOMlXd3NywtLTUQFStrQpKBUudOnWyf/2vJUfDKVEKTvl/OZXAlSuXaNeujfiS9zh79jQdAttQoGAeihQtSOUq5XFxdaBZsybs2rVL"
Data "+/7XolqGcxt1/njJBfJ3FuU7tmnTRjNDFYCenp5aI44yU1XrpnpVGlIBaWtrq2lH1bjz3Xffce/evexY/rmkpqZrUOY0xPzi92WyadMGunbtwr79u9iydQObNq9F5y86GBkXRd9AV3stWDC/dr26devi5+dHvXr1tF8r8zUxUY0/ypU/UnKB/ANEmafKV1QF38PDg+LFi+Ps7KyZjD/88IPWP6mCatBRsCotqT4/d+5cdgy/XpR2VFCmp6eKn7qL"
Data "kaOGMnTYQDp2aktw146iHfOJD2mKuYWBBCPRzuaa2azMWFUpNGjQIDumrMokV/5YyQXydxalaTZu3EjDhg01IPPnz6+ZplZWVjg4OGgaU2nGgIAAqlatqvl4SksuWrQoO4Z/LWrsqmrJyVTjTjXrNZN0bVGuTB7cv0toSFdKlvDCztYC72JucuyJm5iqpib66OvpYmFhprX4qntTfmzv3r01UzXXf/zvSC6Qv7MobZWZmcmLFy84efKk5j8ePnyY"
Data "Cxcu8PjxY+3z+fPnM3HiRBo1aqQNEnB1deXOnTvZMfxrSU0W+ATEDG00gDrzC5Dqde6cGbi7OQmM7sQN6MvpU8eYPWsa0b3CGTN6OCNGDGPWrFmsWrWK48ePqwg0USbw162uufLHSC6Qv7P8o0KtzqlGkxzJaX39v4lqWv3rkJyUoM34UMcfP7z7+TgpMZ4vagK2+t4XZY6q72c14KiQ44f+Z/eTK/93gf8Ps6j35iFJl+wAAAAASUVORK5CAIC="
|
|
|
BASFILE - Converts small files to BAS code. |
Posted by: Dav - 04-26-2022, 01:52 PM - Forum: Dav
- Replies (24)
|
 |
ATTENTION: This program is now out of date and no longer needed to include files in compiled programs. QB64PE now has a a built-in $EMBED command that does this. I will leave the program posted here up for archival purposes and for those who have yet to update to the latest QB64PE, but I won’t be updating it anymore.
BASFILE is a utility I use often when wanting to put small files INSIDE my EXE programs. It does this by converting the file to BAS code that, when run, will recreate the file. This tool is helpful when wanting to distribute/post just BAS code instead of extra files with your program. The BASFILE program will ask you for a file to convert and then for an BAS output filename to create. The source is below.
- Dav
Code: (Select All) '=================
'BASFILE.BAS v0.25
'=================
'Coded by Dav for QB64PE 3.8, SEP/2023
'v0.25 - More friendly and purely dialog handled app now, no window.
' - Added DIM line to output FUNCTION for OPTION _EXPLICIT users.
' - Saves the encoded filename in output FUNCTION for information.
'======
'ABOUT :
'======
'BASFILE helps you include binary files INSIDE your QB64 compiled programs.
'It does this by converting file to BAS code that you add to your program
'that will recreate the file when you wish to use it.
'BASFILE will ask you for a file to convert, and will output the BAS code.
'=========================================================================
_ScreenMove _Middle: _ScreenHide
length& = 160 '<-- Length of data lines in output code. !! MUST BE DIV BY 4!!
' Smaller number means shorter lines, but bigger output code.
'
'Make sure length& is divisble by 4. If not, then adjust it so it is.
If length& Mod 4 <> 0 Then length& = length& - (length& Mod 4)
If length& < 4 Then length& = 4
cr$ = Chr$(13)
m$ = "BASFILE v.25 - Binary file to .BAS converter." + cr$ + cr$
m$ = m$ + "Converts a file to .BAS code to include in QB64 programs." + cr$
m$ = m$ + "BASFILE will first ask you for a file to convert, then it will" + cr$
m$ = m$ + "will ask you for a .BAS filename to create." + cr$ + cr$
m$ = m$ + "Proceed?"
If _MessageBox("BASFILE v.25", m$, "yesno", "question") = 0 Then System
IN$ = _OpenFileDialog$("Open File to encode...", "", "", "All files", -1)
If IN$ = "" Then
_MessageBox "BASFILE v.25", "No file selected. BASFILE will close.", "info"
System
End If
m$ = "You selected: " + IN$ + cr$ + cr$
m$ = m$ + "Now select a .BAS filename to create."
_MessageBox "BASFILE v.25", m$, "info"
OUT$ = _SaveFileDialog$("Save Encoded file as ", "", "*.bas", "BAS files")
If OUT$ = "" Then
_MessageBox "BASFILE v.25", "No filename given. BASFILE will close.", "info"
System
End If
m$ = "You have selected..." + cr$ + cr$
m$ = m$ + "Input file: " + IN$ + cr$
m$ = m$ + "Output file: " + OUT$ + cr$ + cr$
m$ = m$ + "Proceed?"
If _MessageBox("BASFILE v.25", m$, "yesno", "question") = 0 Then
_MessageBox "BASFILE v.25", "Ok. BASFILE will close.", "info"
System
End If
'Grab whole file as a string
Open IN$ For Binary As 1
INDATA$ = (Input$(LOF(1), 1))
'Original size
OrigSize& = Len(INDATA$)
'Compress it
INDATA$ = _Deflate$(INDATA$)
CompSize& = Len(INDATA$)
Open OUT$ For Output As 2
INDATA$ = E$(INDATA$)
Q$ = Chr$(34) 'quotation mark
Print #2, "'==================================="
Print #2, "'EXAMPLE: SAVING BASFILE$ TO DISK"
Print #2, "'==================================="
Print #2, "'OPEN "; Q$; IN$; Q$; " FOR OUTPUT AS #1"
Print #2, "'PRINT #1, BASFILE$;"
Print #2, "'CLOSE #1"
Print #2, ""
Print #2, "Function BASFILE$()"
Print #2, " 'Returns decoded file as BASFILE$"
Print #2, " 'Encoded file: "; IN$
Print #2, " DIM A$, c$, o$, btemp$, a&, j&, p&, oc&, i, i&, a, c&"
Print #2, " A$ = SPACE$("; LTrim$(RTrim$(Str$(Len(INDATA$)))); "): a& = 1"
Print #2, " Mid$(A$, a&, "; LTrim$(RTrim$(Str$(length&))); ") = "; Q$;
BC& = 1
Do
a$ = Mid$(INDATA$, BC&, 4)
BC& = BC& + 4: LL& = LL& + 4
If LL& >= length& Then
LL& = 0
Print #2, a$;: Print #2, Q$; ": a& = a& + "; LTrim$(RTrim$(Str$(length&)))
Print #2, " Mid$(A$, a&, "; LTrim$(RTrim$(Str$(length&))); ") = "; Q$;
Else
Print #2, a$;
End If
If Len(INDATA$) - BC& < 4 Then
a$ = Mid$(INDATA$, Len(INDATA$) - BC&, 1)
a$ = a$ + Q$
Print #2, a$;: Exit Do
End If
Loop
Print #2, ""
Print #2, " o$ = Space$("; LTrim$(RTrim$(Str$(CompSize&))); "): oc& = 1"
Print #2, " For i = 39 To 125"
Print #2, " If i <> 64 And i <> 96 Then c$ = c$ + Chr$(i)"
Print #2, " Next: Dim v As _Unsigned Long"
Print #2, " a = Val(Mid$(a$, 1, 1))"
Print #2, " For i& = 2 To Len(a$) Step 5: v = 0"
Print #2, " For j& = 0 To 4: p& = 85 ^ (4 - j&)"
Print #2, " c& = InStr(c$, Mid$(a$, i& + j&, 1)) - 1"
Print #2, " v = v + c& * p&: Next: Mid$(o$, oc&, 4) = MKL$(v)"
Print #2, " oc& = oc& + 4"
Print #2, " Next: btemp$ = Mid$(o$, 1, Len(o$) - a + 1)"
Print #2, " BASFILE$ = _INFLATE$(btemp$, "; LTrim$(RTrim$(Str$(OrigSize&))); ")"
Print #2, "End Function"
_MessageBox "BASFILE v.25", OUT$ + " created!", "info"
System
Function E$ (in$)
For i = 39 To 125 'Make 85 character set to use
If i <> 64 And i <> 96 Then c$ = c$ + Chr$(i)
Next
Dim v As _Unsigned Long
t$ = in$ 'make a working copy so in$ isn't changed
If Len(t$) Mod 4 > 0 Then 'pad needed bytes on end
a = 5 - Len(t$) Mod 4
t$ = t$ + Space$(a - 1)
End If
out$ = Space$(Len(t$) * 1.25): outb& = 1
For i& = 1 To Len(t$) Step 4
v = CVL(Mid$(t$, i&, 4))
For j& = 4 To 0 Step -1
p& = 85 ^ j&
r& = v \ p&
v = v Mod p&
Mid$(out$, outb&, 1) = Mid$(c$, r& + 1, 1)
outb& = outb& + 1
Next
Next
E$ = LTrim$(RTrim$(Str$(a))) + out$
End Function
|
|
|
Monopoly Game Board - Based on the Parker Brothers Classic Game. |
Posted by: Pete - 04-26-2022, 03:08 AM - Forum: TheBOB
- No Replies
|
 |
Monopoly.bas by Bob Seguin
![[Image: Screenshot-634.png]](https://i.ibb.co/9b6T2wX/Screenshot-634.png)
![[Image: Screenshot-635.png]](https://i.ibb.co/GQDXNLz/Screenshot-635.png)
Description: Monopoly Game Board and display area for two players.
Code: (Select All) _TITLE "Monopoly Board by Bob Seguin"
TYPE CharTYPE
Char AS INTEGER
Colr AS STRING * 2
END TYPE
DIM SHARED Board(1 TO 3000) AS CharTYPE
DIM SHARED BackCOLOR%
DIM SHARED Doubles%
BackCOLOR% = 7
CONST FALSE = 0: CONST TRUE = NOT FALSE
WIDTH 80, 50
CLS
SetBOARD
Opening
PlayAREA
LOCATE 5, 54: COLOR 4, 7: PRINT CHR$(21)
InJAIL = FALSE
RANDOMIZE TIMER
DO
k$ = UCASE$(INKEY$)
SELECT CASE k$
CASE "D"
LOCATE 5, 54: COLOR 4, 7: PRINT CHR$(21)
LOCATE 45, 6: COLOR 8, 7: PRINT CHR$(186)
InJAIL = FALSE
LOCATE 22, 66: COLOR 1
PRINT STRING$(8, 219)
Doubles% = FALSE
DiceTOTAL% = RollDICE%(14, 14)
COLOR 15, 1: LOCATE 28, 64
PRINT "You rolled"; DiceTOTAL%
IF Doubles% = TRUE THEN COLOR 13, 1: LOCATE 22, 66: PRINT "DOUBLES!"
CASE "J"
'GO TO JAIL routine (set game piece value to suit sentenced player)
IF InJAIL = FALSE THEN
GamePIECE$ = CHR$(21) 'for example
GotoJAIL GamePIECE$
InJAIL = TRUE
END IF
CASE CHR$(27)
SYSTEM
END SELECT
LOOP
TitleDATA:
DATA "ÛÛÿÛÛ ÛÛÛ ÛÿÿÛ ÛÛÛ ÛÛÛ ÛÛÛ ÛÿÿÛ Û"
DATA "Û Û Û Û Û ÛÛ Û Û Û Û Û Û ÛÿÛ ÿÛ Û"
DATA "Û Û Û Û Û ÛÛ Û Û Û Û Û Û Û ÛÿÿÛ Û"
DATA "Û Û Û Û Û Û ÛÛ Û Û ÛÛÛ Û Û ÛÿÿÿÛ"
DATA "Û Û Û Û Û ÛÿÛÛ Û Û ÛÿÿÿÛ Û ÛÿÿÿÛ"
DATA "Û Û Û ÛÛÛ Û ÿÛ ÛÛÛ ÛÿÿÿÛÛÛ ÛÛÛ Û"
SUB GotoJAIL (GamePIECE$)
Row = 5: Col = 54 'go to jail square
LOCATE 5, 54: COLOR 7, 7: PRINT CHR$(219)
DO
IF OldCHAR <> 0 THEN
Fore% = VAL("&H" + MID$(OldCOLR$, 2, 1))
Back% = VAL("&H" + MID$(OldCOLR$, 1, 1))
COLOR Fore%, Back%
LOCATE OldROW, OldCOL: PRINT CHR$(OldCHAR)
END IF
IF Col MOD 6 THEN Row = Row + 1
Col = Col - 1
OldCHAR = SCREEN(Row, Col)
OldCOLR$ = HEX$(SCREEN(Row, Col, 1))
OldROW = Row: OldCOL = Col
LOCATE Row, Col: COLOR 4, 7: PRINT GamePIECE$
WAIT &H3DA, 8
WAIT &H3DA, 8, 8
LOOP UNTIL Col = 6 'player in jail
END SUB
SUB Opening
COLOR 1, 7
LOCATE 19, 32: PRINT "W E L C O M Eÿÿ T O"
LOCATE 30, 30: PRINT "PRESS ANY KEY TO BEGIN..."
a$ = "ÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿ"
COLOR 14, 1
DO
k$ = INKEY$
IF LEN(k$) THEN EXIT DO
FOR a = 1 TO 3
LOCATE 1, a
PRINT a$;
LOCATE 50, 4 - a
PRINT a$;
FOR y = 50 - a TO 4 - a STEP -3
LOCATE y, 1: PRINT "*";
LOCATE y + 1, 1: PRINT " ";
LOCATE 50 - y, 80: PRINT " ";
LOCATE 51 - y, 80: PRINT "*";
NEXT y
FOR Reps = 1 TO 5
WAIT &H3DA, 8
WAIT &H3DA, 8, 8
NEXT Reps
NEXT a
LOCATE 2, 1: PRINT " ": LOCATE 49, 80: PRINT " ";
LOCATE 1, 79: PRINT " ": LOCATE 50, 2: PRINT " ";
LOOP
END SUB
SUB PlayAREA
COLOR , 1
CLS
FOR Row = 2 TO 48
FOR Col = 2 TO 59
Count = Count + 1
LOCATE Row, Col
Colr$ = Board(Count).Colr
Fore% = VAL("&H" + MID$(Colr$, 2, 1))
Back% = VAL("&H" + MID$(Colr$, 1, 1))
COLOR Fore%, Back%
PRINT CHR$(Board(Count).Char);
NEXT Col
NEXT Row
COLOR 7, 1
FOR Row = 2 TO 48
LOCATE Row, 1: PRINT CHR$(179);
LOCATE Row, 80: PRINT CHR$(179);
NEXT Row
LOCATE 1, 2: PRINT STRING$(78, 196);
LOCATE 49, 2: PRINT STRING$(78, 196);
LOCATE 1, 1: PRINT CHR$(218);
LOCATE 1, 80: PRINT CHR$(191);
LOCATE 49, 1: PRINT CHR$(192);
LOCATE 49, 80: PRINT CHR$(217);
COLOR 5
FOR Row = 3 TO 19
LOCATE Row, 60: PRINT CHR$(186)
LOCATE Row, 79: PRINT CHR$(186)
NEXT Row
LOCATE 2, 61: PRINT STRING$(18, 205)
LOCATE 20, 61: PRINT STRING$(18, 205)
LOCATE 2, 60: PRINT CHR$(201)
LOCATE 2, 79: PRINT CHR$(187)
LOCATE 20, 60: PRINT CHR$(200)
LOCATE 20, 79: PRINT CHR$(188)
LOCATE 17, 61: PRINT CHR$(179);
LOCATE 17, 78: PRINT CHR$(179);
LOCATE 16, 62: PRINT STRING$(16, 196);
LOCATE 18, 62: PRINT STRING$(16, 196);
LOCATE 16, 61: PRINT CHR$(218);
LOCATE 16, 78: PRINT CHR$(191);
LOCATE 18, 61: PRINT CHR$(192);
LOCATE 18, 78: PRINT CHR$(217);
COLOR 7
FOR Row = 22 TO 28
LOCATE Row, 60: PRINT CHR$(179)
LOCATE Row, 79: PRINT CHR$(179)
NEXT Row
LOCATE 21, 61: PRINT STRING$(18, 196)
LOCATE 29, 61: PRINT STRING$(18, 196)
LOCATE 21, 60: PRINT CHR$(218)
LOCATE 21, 79: PRINT CHR$(191)
LOCATE 29, 60: PRINT CHR$(192)
LOCATE 29, 79: PRINT CHR$(217)
COLOR 5
FOR Row = 31 TO 47
LOCATE Row, 60: PRINT CHR$(186)
LOCATE Row, 79: PRINT CHR$(186)
NEXT Row
LOCATE 30, 61: PRINT STRING$(18, 205)
LOCATE 48, 61: PRINT STRING$(18, 205)
LOCATE 30, 60: PRINT CHR$(201)
LOCATE 30, 79: PRINT CHR$(187)
LOCATE 48, 60: PRINT CHR$(200)
LOCATE 48, 79: PRINT CHR$(188)
LOCATE 33, 61: PRINT CHR$(179);
LOCATE 33, 78: PRINT CHR$(179);
LOCATE 32, 62: PRINT STRING$(16, 196);
LOCATE 34, 62: PRINT STRING$(16, 196);
LOCATE 32, 61: PRINT CHR$(218);
LOCATE 32, 78: PRINT CHR$(191);
LOCATE 34, 61: PRINT CHR$(192);
LOCATE 34, 78: PRINT CHR$(217);
COLOR 15, 1
LOCATE 19, 65: PRINT "-PLAYER 1-"
LOCATE 31, 65: PRINT "-PLAYER 2-"
COLOR 10, 1
LOCATE 17, 65: PRINT "$1,500.00"
LOCATE 33, 65: PRINT "$1,500.00"
COLOR 13, 7
LOCATE 10, 38: PRINT "PRESS [D]"
LOCATE 11, 38: PRINT "TO ROLL DICE"
LOCATE 12, 38: PRINT "(RESETS JAIL)"
LOCATE 14, 38: PRINT "PRESS [J]"
LOCATE 15, 38: PRINT "TO GO TO JAIL"
LOCATE 17, 38: PRINT "PRESS [ESC]"
LOCATE 18, 38: PRINT "TO EXIT"
END SUB
FUNCTION RollDICE% (RRow%, CCol%)
FOR ROLL = 1 TO 24
Row = RRow% + FIX(RND * 2) - 1
Col = CCol% + FIX(RND * 2) - 1
Number1 = FIX(RND * 6) + 1
Number = Number1
GOSUB ShowDIE
GOSUB Sides
Row = RRow% + FIX(RND * 2) - 1
Col = CCol% + 7 + FIX(RND * 2) - 1
Number2 = FIX(RND * 6) + 1
Number = Number2
GOSUB ShowDIE
GOSUB Sides
PLAY "MBT160L64O6b"
FOR Slow = 1 TO 6
WAIT &H3DA, 8
WAIT &H3DA, 8, 8
NEXT Slow
NEXT ROLL
RollDICE% = Number1 + Number2
IF Number1 = Number2 THEN Doubles% = TRUE
EXIT FUNCTION
ShowDIE:
COLOR BackCOLOR%
FOR x = Col - 2 TO Col + 4
FOR y = Row - 1 TO Row + 4
LOCATE y, x
PRINT CHR$(219)
NEXT y
NEXT x
COLOR 15, 4
SELECT CASE Number
CASE 1
LOCATE Row, Col: GOSUB NoDOTS
LOCATE Row + 1, Col: GOSUB OneDOT
LOCATE Row + 2, Col: GOSUB NoDOTS
LOCATE
CASE 2
LOCATE Row, Col: GOSUB Dot
FOR Reps = 1 TO 2: GOSUB Blank: NEXT Reps
LOCATE Row + 1, Col: GOSUB NoDOTS
LOCATE Row + 2, Col
FOR Reps = 1 TO 2: GOSUB Blank: NEXT Reps
GOSUB Dot
CASE 3
LOCATE Row, Col: GOSUB Dot
FOR Reps = 1 TO 2: GOSUB Blank: NEXT Reps
LOCATE Row + 1, Col: GOSUB OneDOT
LOCATE Row + 2, Col
FOR Reps = 1 TO 2: GOSUB Blank: NEXT Reps
GOSUB Dot
CASE 4
LOCATE Row, Col: GOSUB TwoDOTS
LOCATE Row + 1, Col: GOSUB NoDOTS
LOCATE Row + 2, Col: GOSUB TwoDOTS
CASE 5
LOCATE Row, Col: GOSUB TwoDOTS
LOCATE Row + 1, Col: GOSUB OneDOT
LOCATE Row + 2, Col: GOSUB TwoDOTS
CASE 6
LOCATE Row, Col: GOSUB TwoDOTS
LOCATE Row + 1, Col: GOSUB TwoDOTS
LOCATE Row + 2, Col: GOSUB TwoDOTS
END SELECT
RETURN
OneDOT:
GOSUB Blank
GOSUB Dot
GOSUB Blank
RETURN
TwoDOTS:
GOSUB Dot
GOSUB Blank
GOSUB Dot
RETURN
NoDOTS:
FOR Reps = 1 TO 3: GOSUB Blank: NEXT Reps
RETURN
Blank:
PRINT CHR$(32);
RETURN
Dot:
PRINT CHR$(254);
RETURN
Sides:
COLOR 4, BackCOLOR%
LOCATE Row, Col - 1: PRINT CHR$(222)
LOCATE Row + 1, Col - 1: PRINT CHR$(222)
LOCATE Row + 2, Col - 1: PRINT CHR$(222)
LOCATE Row, Col + 3: PRINT CHR$(221)
LOCATE Row + 1, Col + 3: PRINT CHR$(221)
LOCATE Row + 2, Col + 3: PRINT CHR$(221)
RETURN
END FUNCTION
SUB SetBOARD
PALETTE 4, 36
PALETTE 5, 29
OUT &H3C8, 1
OUT &H3C9, 0
OUT &H3C9, 0
OUT &H3C9, 32
OUT &H3C8, 7
OUT &H3C9, 50
OUT &H3C9, 63
OUT &H3C9, 50
OUT &H3C8, 20
OUT &H3C9, 63
OUT &H3C9, 48
OUT &H3C9, 10
OUT &H3C8, 56
OUT &H3C9, 35
OUT &H3C9, 35
OUT &H3C9, 35
OUT &H3C8, 59
OUT &H3C9, 45
OUT &H3C9, 60
OUT &H3C9, 45
COLOR , 1
CLS
COLOR 7
FOR Row = 2 TO 47
FOR Col = 12 TO 68
LOCATE Row, Col
PRINT CHR$(219)
NEXT Col
NEXT Row
COLOR 8, 7
FOR Col = 13 TO 68
LOCATE 2, Col
PRINT CHR$(205);
LOCATE 48, Col
PRINT CHR$(205);
NEXT Col
FOR Row = 3 TO 47
LOCATE Row, 12
PRINT CHR$(186);
LOCATE Row, 69
PRINT CHR$(186);
NEXT Row
LOCATE 2, 12: PRINT CHR$(201)
LOCATE 48, 12: PRINT CHR$(200)
LOCATE 2, 69: PRINT CHR$(187)
LOCATE 48, 69: PRINT CHR$(188)
FOR Row = 8 TO 42
LOCATE Row, 18
PRINT CHR$(186)
LOCATE Row, 63
PRINT CHR$(186)
NEXT Row
FOR Col = 19 TO 62
LOCATE 7, Col
PRINT CHR$(205)
LOCATE 43, Col
PRINT CHR$(205)
NEXT Col
LOCATE 7, 18: PRINT CHR$(201)
LOCATE 43, 18: PRINT CHR$(200)
LOCATE 7, 63: PRINT CHR$(187)
LOCATE 43, 63: PRINT CHR$(188)
RESTORE TitleDATA
COLOR 4, 7
FOR Row = 21 TO 28
FOR Col = 24 TO 58
LOCATE Row, Col
PRINT CHR$(219)
NEXT Col
NEXT Row
COLOR 15, 4
FOR y = 22 TO 27
READ a$
LOCATE y, 25: PRINT a$
NEXT y
COLOR 8, 7
FOR Row = 44 TO 47
FOR Col = 18 TO 63 STEP 5
LOCATE Row, Col: PRINT CHR$(179)
LOCATE Row - 41, Col: PRINT CHR$(179)
NEXT Col
NEXT Row
FOR Row = 7 TO 43 STEP 4
FOR Col = 13 TO 17
LOCATE Row, Col: PRINT CHR$(196)
LOCATE Row, Col + 51: PRINT CHR$(196)
NEXT Col
NEXT Row
COLOR 4, 7
LOCATE 47, 64: PRINT CHR$(27); CHR$(27); CHR$(27); "GO"
COLOR 3, 7
FOR Col = 59 TO 62
LOCATE 44, Col: PRINT CHR$(219)
LOCATE 44, Col - 10: PRINT CHR$(219)
LOCATE 45, Col: PRINT CHR$(223)
LOCATE 45, Col - 10: PRINT CHR$(223)
NEXT Col
COLOR 5, 7
FOR Col = 19 TO 22
LOCATE 44, Col: PRINT CHR$(219)
LOCATE 44, Col + 5: PRINT CHR$(219)
LOCATE 44, Col + 15: PRINT CHR$(219)
LOCATE 45, Col: PRINT CHR$(223)
LOCATE 45, Col + 5: PRINT CHR$(223)
LOCATE 45, Col + 15: PRINT CHR$(223)
NEXT Col
COLOR 4, 7
FOR Col = 19 TO 22
LOCATE 5, Col: PRINT CHR$(220)
LOCATE 5, Col + 10: PRINT CHR$(220)
LOCATE 5, Col + 15: PRINT CHR$(220)
LOCATE 6, Col: PRINT CHR$(219)
LOCATE 6, Col + 10: PRINT CHR$(219)
LOCATE 6, Col + 15: PRINT CHR$(219)
NEXT Col
COLOR 14, 7
FOR Col = 44 TO 47
LOCATE 5, Col: PRINT CHR$(220)
LOCATE 5, Col + 5: PRINT CHR$(220)
LOCATE 5, Col + 15: PRINT CHR$(220)
LOCATE 6, Col: PRINT CHR$(219)
LOCATE 6, Col + 5: PRINT CHR$(219)
LOCATE 6, Col + 15: PRINT CHR$(219)
NEXT Col
COLOR 6
FOR Row = 8 TO 10
LOCATE Row, 16: PRINT CHR$(219)
LOCATE Row, 17: PRINT CHR$(219)
LOCATE Row + 4, 16: PRINT CHR$(219)
LOCATE Row + 4, 17: PRINT CHR$(219)
LOCATE Row + 12, 16: PRINT CHR$(219)
LOCATE Row + 12, 17: PRINT CHR$(219)
NEXT Row
COLOR 13
FOR Row = 28 TO 30
LOCATE Row, 16: PRINT CHR$(219)
LOCATE Row, 17: PRINT CHR$(219)
LOCATE Row + 4, 16: PRINT CHR$(219)
LOCATE Row + 4, 17: PRINT CHR$(219)
LOCATE Row + 12, 16: PRINT CHR$(219)
LOCATE Row + 12, 17: PRINT CHR$(219)
NEXT Row
COLOR 2
FOR Row = 8 TO 10
LOCATE Row, 64: PRINT CHR$(219)
LOCATE Row, 65: PRINT CHR$(219)
LOCATE Row + 4, 64: PRINT CHR$(219)
LOCATE Row + 4, 65: PRINT CHR$(219)
LOCATE Row + 12, 64: PRINT CHR$(219)
LOCATE Row + 12, 65: PRINT CHR$(219)
NEXT Row
COLOR 1
FOR Row = 32 TO 34
LOCATE Row, 64: PRINT CHR$(219)
LOCATE Row, 65: PRINT CHR$(219)
LOCATE Row + 8, 64: PRINT CHR$(219)
LOCATE Row + 8, 65: PRINT CHR$(219)
NEXT Row
COLOR 8, 7
FOR Col = 15 TO 17
LOCATE 44, Col
PRINT CHR$(210)
LOCATE 45, Col
PRINT CHR$(186)
LOCATE 46, Col
PRINT CHR$(208)
NEXT Col
COLOR 1: LOCATE 47, 13: PRINT "JAIL"
LOCATE 3, 65: PRINT "GOTO"
LOCATE 6, 65: PRINT "JAIL"
LOCATE 3, 13: PRINT "FREE"
LOCATE 6, 13: PRINT "PKNG"
COLOR 9
LOCATE 36, 16: PRINT "EL"
LOCATE 37, 16: PRINT "CO"
LOCATE 38, 16: PRINT "MP"
COLOR 6
LOCATE 44, 29: PRINT "????"
LOCATE 6, 24: PRINT "????"
LOCATE 28, 64: PRINT "??"
LOCATE 29, 64: PRINT "??"
LOCATE 30, 64: PRINT "??"
COLOR 0
LOCATE 6, 39: PRINT "B&OR"
LOCATE 44, 39: PRINT "R-RR"
LOCATE 24, 64: PRINT "SH"
LOCATE 25, 64: PRINT "LN"
LOCATE 26, 64: PRINT "RR"
LOCATE 24, 16: PRINT "PE"
LOCATE 25, 16: PRINT "NN"
LOCATE 26, 16: PRINT "RR"
COLOR 1
LOCATE 16, 17: PRINT "C"
LOCATE 17, 17: PRINT "O"
LOCATE 18, 17: PRINT "M"
LOCATE 16, 64: PRINT "C"
LOCATE 17, 64: PRINT "O"
LOCATE 18, 64: PRINT "M"
LOCATE 44, 54: PRINT "COMM"
COLOR 8
LOCATE 6, 54: PRINT "WATR"
LOCATE 44, 44: PRINT "ITAX"
COLOR 13
LOCATE 36, 64: PRINT "L"
LOCATE 37, 64: PRINT "U"
LOCATE 38, 64: PRINT "X"
COLOR 6
LOCATE 36, 65: PRINT "T"
LOCATE 37, 65: PRINT "A"
LOCATE 38, 65: PRINT "X"
COLOR 8
LOCATE 3, 19: PRINT "KTY"
LOCATE 3, 29: PRINT "IND"
LOCATE 3, 34: PRINT "ILL"
LOCATE 3, 44: PRINT "ATL"
LOCATE 3, 49: PRINT "VEN"
LOCATE 3, 59: PRINT "MAR"
LOCATE 47, 19: PRINT "CON"
LOCATE 47, 24: PRINT "VER"
LOCATE 47, 34: PRINT "ORI"
LOCATE 47, 49: PRINT "BAL"
LOCATE 47, 59: PRINT "MED"
LOCATE 8, 68: PRINT "P"
LOCATE 9, 68: PRINT "A"
LOCATE 10, 68: PRINT "C"
LOCATE 12, 68: PRINT "N"
LOCATE 13, 68: PRINT "C"
LOCATE 14, 68: PRINT "L"
LOCATE 20, 68: PRINT "P"
LOCATE 21, 68: PRINT "E"
LOCATE 22, 68: PRINT "N"
LOCATE 32, 68: PRINT "P"
LOCATE 33, 68: PRINT "K"
LOCATE 34, 68: PRINT "P"
LOCATE 40, 68: PRINT "B"
LOCATE 41, 68: PRINT "W"
LOCATE 42, 68: PRINT "K"
LOCATE 8, 13: PRINT "N"
LOCATE 9, 13: PRINT "E"
LOCATE 10, 13: PRINT "W"
LOCATE 12, 13: PRINT "T"
LOCATE 13, 13: PRINT "E"
LOCATE 14, 13: PRINT "N"
LOCATE 20, 13: PRINT "S"
LOCATE 21, 13: PRINT "T"
LOCATE 22, 13: PRINT "J"
LOCATE 28, 13: PRINT "V"
LOCATE 29, 13: PRINT "I"
LOCATE 30, 13: PRINT "R"
LOCATE 32, 13: PRINT "S"
LOCATE 33, 13: PRINT "A"
LOCATE 34, 13: PRINT "V"
LOCATE 40, 13: PRINT "S"
LOCATE 41, 13: PRINT "T"
LOCATE 42, 13: PRINT "C"
COLOR 3
FOR Row = 9 TO 41
LOCATE Row, 19: PRINT CHR$(179)
LOCATE Row, 62: PRINT CHR$(179)
NEXT Row
FOR Col = 20 TO 61
LOCATE 8, Col: PRINT CHR$(196)
LOCATE 42, Col: PRINT CHR$(196)
NEXT Col
LOCATE 8, 19: PRINT CHR$(218)
LOCATE 8, 62: PRINT CHR$(191)
LOCATE 42, 19: PRINT CHR$(192)
LOCATE 42, 62: PRINT CHR$(217)
t1$ = "°°°°°°°°°°°ÛÛÛÛÛÛÛÛ°"
t2$ = "°°°ÛÛÛÛ°°°°°Û°°°°Û°°"
t3$ = "°°°°²²°°ÛÛ°°Û°°°°Û°°"
t4$ = "°°°ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ°°"
t5$ = "°ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ°°"
t6$ = "°°²²²²²²²²²²ÛÛÛÛÛÛ°°"
t7$ = "°ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ°"
t8$ = "Û±±±±ÛÛÛ±±ÛÛÛ±±ÛÛÛ°°"
t9$ = "°Û°Û°²Û²°°²Û²°°²Û²°°"
COLOR 11, 7
LOCATE 32, 32: PRINT t1$
LOCATE 33, 32: PRINT t2$
LOCATE 34, 32: PRINT t3$
LOCATE 35, 32: PRINT t4$
LOCATE 36, 32: PRINT t5$
LOCATE 37, 32: PRINT t6$
LOCATE 38, 32: PRINT t7$
LOCATE 39, 32: PRINT t8$
LOCATE 40, 32: PRINT t9$
m1$ = "°°°°°Û°°°°°"
m2$ = "°°°ÛÛÛÛÛ°°°"
m3$ = "°°°Û°Û°Û°°°"
m4$ = "°°°Û°Û°°°°°"
m5$ = "°°°ÛÛÛÛÛ°°°"
m6$ = "°°°°°Û°Û°°°"
m7$ = "°°°Û°Û°Û°°°"
m8$ = "°°°ÛÛÛÛÛ°°°"
m9$ = "°°°°°Û°°°°°"
LOCATE 10, 36: PRINT m1$
LOCATE 11, 36: PRINT m2$
LOCATE 12, 36: PRINT m3$
LOCATE 13, 36: PRINT m4$
LOCATE 14, 36: PRINT m5$
LOCATE 15, 36: PRINT m6$
LOCATE 16, 36: PRINT m7$
LOCATE 17, 36: PRINT m8$
LOCATE 18, 36: PRINT m9$
FOR Row = 2 TO 48
FOR Col = 12 TO 69
Count = Count + 1
Board(Count).Char = SCREEN(Row, Col)
Board(Count).Colr = HEX$(SCREEN(Row, Col, 1))
NEXT Col
NEXT Row
END SUB
|
|
|
Monopoly Game Board - Based on the Parker Brothers Classic Game. |
Posted by: Pete - 04-26-2022, 03:08 AM - Forum: Games
- No Replies
|
 |
Monopoly.bas by Bob Seguin
![[Image: Screenshot-634.png]](https://i.ibb.co/9b6T2wX/Screenshot-634.png)
![[Image: Screenshot-635.png]](https://i.ibb.co/GQDXNLz/Screenshot-635.png)
Description: Monopoly Game Board and display area for two players.
Code: (Select All) _TITLE "Monopoly Board by Bob Seguin"
TYPE CharTYPE
Char AS INTEGER
Colr AS STRING * 2
END TYPE
DIM SHARED Board(1 TO 3000) AS CharTYPE
DIM SHARED BackCOLOR%
DIM SHARED Doubles%
BackCOLOR% = 7
CONST FALSE = 0: CONST TRUE = NOT FALSE
WIDTH 80, 50
CLS
SetBOARD
Opening
PlayAREA
LOCATE 5, 54: COLOR 4, 7: PRINT CHR$(21)
InJAIL = FALSE
RANDOMIZE TIMER
DO
k$ = UCASE$(INKEY$)
SELECT CASE k$
CASE "D"
LOCATE 5, 54: COLOR 4, 7: PRINT CHR$(21)
LOCATE 45, 6: COLOR 8, 7: PRINT CHR$(186)
InJAIL = FALSE
LOCATE 22, 66: COLOR 1
PRINT STRING$(8, 219)
Doubles% = FALSE
DiceTOTAL% = RollDICE%(14, 14)
COLOR 15, 1: LOCATE 28, 64
PRINT "You rolled"; DiceTOTAL%
IF Doubles% = TRUE THEN COLOR 13, 1: LOCATE 22, 66: PRINT "DOUBLES!"
CASE "J"
'GO TO JAIL routine (set game piece value to suit sentenced player)
IF InJAIL = FALSE THEN
GamePIECE$ = CHR$(21) 'for example
GotoJAIL GamePIECE$
InJAIL = TRUE
END IF
CASE CHR$(27)
SYSTEM
END SELECT
LOOP
TitleDATA:
DATA "ÛÛÿÛÛ ÛÛÛ ÛÿÿÛ ÛÛÛ ÛÛÛ ÛÛÛ ÛÿÿÛ Û"
DATA "Û Û Û Û Û ÛÛ Û Û Û Û Û Û ÛÿÛ ÿÛ Û"
DATA "Û Û Û Û Û ÛÛ Û Û Û Û Û Û Û ÛÿÿÛ Û"
DATA "Û Û Û Û Û Û ÛÛ Û Û ÛÛÛ Û Û ÛÿÿÿÛ"
DATA "Û Û Û Û Û ÛÿÛÛ Û Û ÛÿÿÿÛ Û ÛÿÿÿÛ"
DATA "Û Û Û ÛÛÛ Û ÿÛ ÛÛÛ ÛÿÿÿÛÛÛ ÛÛÛ Û"
SUB GotoJAIL (GamePIECE$)
Row = 5: Col = 54 'go to jail square
LOCATE 5, 54: COLOR 7, 7: PRINT CHR$(219)
DO
IF OldCHAR <> 0 THEN
Fore% = VAL("&H" + MID$(OldCOLR$, 2, 1))
Back% = VAL("&H" + MID$(OldCOLR$, 1, 1))
COLOR Fore%, Back%
LOCATE OldROW, OldCOL: PRINT CHR$(OldCHAR)
END IF
IF Col MOD 6 THEN Row = Row + 1
Col = Col - 1
OldCHAR = SCREEN(Row, Col)
OldCOLR$ = HEX$(SCREEN(Row, Col, 1))
OldROW = Row: OldCOL = Col
LOCATE Row, Col: COLOR 4, 7: PRINT GamePIECE$
WAIT &H3DA, 8
WAIT &H3DA, 8, 8
LOOP UNTIL Col = 6 'player in jail
END SUB
SUB Opening
COLOR 1, 7
LOCATE 19, 32: PRINT "W E L C O M Eÿÿ T O"
LOCATE 30, 30: PRINT "PRESS ANY KEY TO BEGIN..."
a$ = "ÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿÿ*ÿ"
COLOR 14, 1
DO
k$ = INKEY$
IF LEN(k$) THEN EXIT DO
FOR a = 1 TO 3
LOCATE 1, a
PRINT a$;
LOCATE 50, 4 - a
PRINT a$;
FOR y = 50 - a TO 4 - a STEP -3
LOCATE y, 1: PRINT "*";
LOCATE y + 1, 1: PRINT " ";
LOCATE 50 - y, 80: PRINT " ";
LOCATE 51 - y, 80: PRINT "*";
NEXT y
FOR Reps = 1 TO 5
WAIT &H3DA, 8
WAIT &H3DA, 8, 8
NEXT Reps
NEXT a
LOCATE 2, 1: PRINT " ": LOCATE 49, 80: PRINT " ";
LOCATE 1, 79: PRINT " ": LOCATE 50, 2: PRINT " ";
LOOP
END SUB
SUB PlayAREA
COLOR , 1
CLS
FOR Row = 2 TO 48
FOR Col = 2 TO 59
Count = Count + 1
LOCATE Row, Col
Colr$ = Board(Count).Colr
Fore% = VAL("&H" + MID$(Colr$, 2, 1))
Back% = VAL("&H" + MID$(Colr$, 1, 1))
COLOR Fore%, Back%
PRINT CHR$(Board(Count).Char);
NEXT Col
NEXT Row
COLOR 7, 1
FOR Row = 2 TO 48
LOCATE Row, 1: PRINT CHR$(179);
LOCATE Row, 80: PRINT CHR$(179);
NEXT Row
LOCATE 1, 2: PRINT STRING$(78, 196);
LOCATE 49, 2: PRINT STRING$(78, 196);
LOCATE 1, 1: PRINT CHR$(218);
LOCATE 1, 80: PRINT CHR$(191);
LOCATE 49, 1: PRINT CHR$(192);
LOCATE 49, 80: PRINT CHR$(217);
COLOR 5
FOR Row = 3 TO 19
LOCATE Row, 60: PRINT CHR$(186)
LOCATE Row, 79: PRINT CHR$(186)
NEXT Row
LOCATE 2, 61: PRINT STRING$(18, 205)
LOCATE 20, 61: PRINT STRING$(18, 205)
LOCATE 2, 60: PRINT CHR$(201)
LOCATE 2, 79: PRINT CHR$(187)
LOCATE 20, 60: PRINT CHR$(200)
LOCATE 20, 79: PRINT CHR$(188)
LOCATE 17, 61: PRINT CHR$(179);
LOCATE 17, 78: PRINT CHR$(179);
LOCATE 16, 62: PRINT STRING$(16, 196);
LOCATE 18, 62: PRINT STRING$(16, 196);
LOCATE 16, 61: PRINT CHR$(218);
LOCATE 16, 78: PRINT CHR$(191);
LOCATE 18, 61: PRINT CHR$(192);
LOCATE 18, 78: PRINT CHR$(217);
COLOR 7
FOR Row = 22 TO 28
LOCATE Row, 60: PRINT CHR$(179)
LOCATE Row, 79: PRINT CHR$(179)
NEXT Row
LOCATE 21, 61: PRINT STRING$(18, 196)
LOCATE 29, 61: PRINT STRING$(18, 196)
LOCATE 21, 60: PRINT CHR$(218)
LOCATE 21, 79: PRINT CHR$(191)
LOCATE 29, 60: PRINT CHR$(192)
LOCATE 29, 79: PRINT CHR$(217)
COLOR 5
FOR Row = 31 TO 47
LOCATE Row, 60: PRINT CHR$(186)
LOCATE Row, 79: PRINT CHR$(186)
NEXT Row
LOCATE 30, 61: PRINT STRING$(18, 205)
LOCATE 48, 61: PRINT STRING$(18, 205)
LOCATE 30, 60: PRINT CHR$(201)
LOCATE 30, 79: PRINT CHR$(187)
LOCATE 48, 60: PRINT CHR$(200)
LOCATE 48, 79: PRINT CHR$(188)
LOCATE 33, 61: PRINT CHR$(179);
LOCATE 33, 78: PRINT CHR$(179);
LOCATE 32, 62: PRINT STRING$(16, 196);
LOCATE 34, 62: PRINT STRING$(16, 196);
LOCATE 32, 61: PRINT CHR$(218);
LOCATE 32, 78: PRINT CHR$(191);
LOCATE 34, 61: PRINT CHR$(192);
LOCATE 34, 78: PRINT CHR$(217);
COLOR 15, 1
LOCATE 19, 65: PRINT "-PLAYER 1-"
LOCATE 31, 65: PRINT "-PLAYER 2-"
COLOR 10, 1
LOCATE 17, 65: PRINT "$1,500.00"
LOCATE 33, 65: PRINT "$1,500.00"
COLOR 13, 7
LOCATE 10, 38: PRINT "PRESS [D]"
LOCATE 11, 38: PRINT "TO ROLL DICE"
LOCATE 12, 38: PRINT "(RESETS JAIL)"
LOCATE 14, 38: PRINT "PRESS [J]"
LOCATE 15, 38: PRINT "TO GO TO JAIL"
LOCATE 17, 38: PRINT "PRESS [ESC]"
LOCATE 18, 38: PRINT "TO EXIT"
END SUB
FUNCTION RollDICE% (RRow%, CCol%)
FOR ROLL = 1 TO 24
Row = RRow% + FIX(RND * 2) - 1
Col = CCol% + FIX(RND * 2) - 1
Number1 = FIX(RND * 6) + 1
Number = Number1
GOSUB ShowDIE
GOSUB Sides
Row = RRow% + FIX(RND * 2) - 1
Col = CCol% + 7 + FIX(RND * 2) - 1
Number2 = FIX(RND * 6) + 1
Number = Number2
GOSUB ShowDIE
GOSUB Sides
PLAY "MBT160L64O6b"
FOR Slow = 1 TO 6
WAIT &H3DA, 8
WAIT &H3DA, 8, 8
NEXT Slow
NEXT ROLL
RollDICE% = Number1 + Number2
IF Number1 = Number2 THEN Doubles% = TRUE
EXIT FUNCTION
ShowDIE:
COLOR BackCOLOR%
FOR x = Col - 2 TO Col + 4
FOR y = Row - 1 TO Row + 4
LOCATE y, x
PRINT CHR$(219)
NEXT y
NEXT x
COLOR 15, 4
SELECT CASE Number
CASE 1
LOCATE Row, Col: GOSUB NoDOTS
LOCATE Row + 1, Col: GOSUB OneDOT
LOCATE Row + 2, Col: GOSUB NoDOTS
LOCATE
CASE 2
LOCATE Row, Col: GOSUB Dot
FOR Reps = 1 TO 2: GOSUB Blank: NEXT Reps
LOCATE Row + 1, Col: GOSUB NoDOTS
LOCATE Row + 2, Col
FOR Reps = 1 TO 2: GOSUB Blank: NEXT Reps
GOSUB Dot
CASE 3
LOCATE Row, Col: GOSUB Dot
FOR Reps = 1 TO 2: GOSUB Blank: NEXT Reps
LOCATE Row + 1, Col: GOSUB OneDOT
LOCATE Row + 2, Col
FOR Reps = 1 TO 2: GOSUB Blank: NEXT Reps
GOSUB Dot
CASE 4
LOCATE Row, Col: GOSUB TwoDOTS
LOCATE Row + 1, Col: GOSUB NoDOTS
LOCATE Row + 2, Col: GOSUB TwoDOTS
CASE 5
LOCATE Row, Col: GOSUB TwoDOTS
LOCATE Row + 1, Col: GOSUB OneDOT
LOCATE Row + 2, Col: GOSUB TwoDOTS
CASE 6
LOCATE Row, Col: GOSUB TwoDOTS
LOCATE Row + 1, Col: GOSUB TwoDOTS
LOCATE Row + 2, Col: GOSUB TwoDOTS
END SELECT
RETURN
OneDOT:
GOSUB Blank
GOSUB Dot
GOSUB Blank
RETURN
TwoDOTS:
GOSUB Dot
GOSUB Blank
GOSUB Dot
RETURN
NoDOTS:
FOR Reps = 1 TO 3: GOSUB Blank: NEXT Reps
RETURN
Blank:
PRINT CHR$(32);
RETURN
Dot:
PRINT CHR$(254);
RETURN
Sides:
COLOR 4, BackCOLOR%
LOCATE Row, Col - 1: PRINT CHR$(222)
LOCATE Row + 1, Col - 1: PRINT CHR$(222)
LOCATE Row + 2, Col - 1: PRINT CHR$(222)
LOCATE Row, Col + 3: PRINT CHR$(221)
LOCATE Row + 1, Col + 3: PRINT CHR$(221)
LOCATE Row + 2, Col + 3: PRINT CHR$(221)
RETURN
END FUNCTION
SUB SetBOARD
PALETTE 4, 36
PALETTE 5, 29
OUT &H3C8, 1
OUT &H3C9, 0
OUT &H3C9, 0
OUT &H3C9, 32
OUT &H3C8, 7
OUT &H3C9, 50
OUT &H3C9, 63
OUT &H3C9, 50
OUT &H3C8, 20
OUT &H3C9, 63
OUT &H3C9, 48
OUT &H3C9, 10
OUT &H3C8, 56
OUT &H3C9, 35
OUT &H3C9, 35
OUT &H3C9, 35
OUT &H3C8, 59
OUT &H3C9, 45
OUT &H3C9, 60
OUT &H3C9, 45
COLOR , 1
CLS
COLOR 7
FOR Row = 2 TO 47
FOR Col = 12 TO 68
LOCATE Row, Col
PRINT CHR$(219)
NEXT Col
NEXT Row
COLOR 8, 7
FOR Col = 13 TO 68
LOCATE 2, Col
PRINT CHR$(205);
LOCATE 48, Col
PRINT CHR$(205);
NEXT Col
FOR Row = 3 TO 47
LOCATE Row, 12
PRINT CHR$(186);
LOCATE Row, 69
PRINT CHR$(186);
NEXT Row
LOCATE 2, 12: PRINT CHR$(201)
LOCATE 48, 12: PRINT CHR$(200)
LOCATE 2, 69: PRINT CHR$(187)
LOCATE 48, 69: PRINT CHR$(188)
FOR Row = 8 TO 42
LOCATE Row, 18
PRINT CHR$(186)
LOCATE Row, 63
PRINT CHR$(186)
NEXT Row
FOR Col = 19 TO 62
LOCATE 7, Col
PRINT CHR$(205)
LOCATE 43, Col
PRINT CHR$(205)
NEXT Col
LOCATE 7, 18: PRINT CHR$(201)
LOCATE 43, 18: PRINT CHR$(200)
LOCATE 7, 63: PRINT CHR$(187)
LOCATE 43, 63: PRINT CHR$(188)
RESTORE TitleDATA
COLOR 4, 7
FOR Row = 21 TO 28
FOR Col = 24 TO 58
LOCATE Row, Col
PRINT CHR$(219)
NEXT Col
NEXT Row
COLOR 15, 4
FOR y = 22 TO 27
READ a$
LOCATE y, 25: PRINT a$
NEXT y
COLOR 8, 7
FOR Row = 44 TO 47
FOR Col = 18 TO 63 STEP 5
LOCATE Row, Col: PRINT CHR$(179)
LOCATE Row - 41, Col: PRINT CHR$(179)
NEXT Col
NEXT Row
FOR Row = 7 TO 43 STEP 4
FOR Col = 13 TO 17
LOCATE Row, Col: PRINT CHR$(196)
LOCATE Row, Col + 51: PRINT CHR$(196)
NEXT Col
NEXT Row
COLOR 4, 7
LOCATE 47, 64: PRINT CHR$(27); CHR$(27); CHR$(27); "GO"
COLOR 3, 7
FOR Col = 59 TO 62
LOCATE 44, Col: PRINT CHR$(219)
LOCATE 44, Col - 10: PRINT CHR$(219)
LOCATE 45, Col: PRINT CHR$(223)
LOCATE 45, Col - 10: PRINT CHR$(223)
NEXT Col
COLOR 5, 7
FOR Col = 19 TO 22
LOCATE 44, Col: PRINT CHR$(219)
LOCATE 44, Col + 5: PRINT CHR$(219)
LOCATE 44, Col + 15: PRINT CHR$(219)
LOCATE 45, Col: PRINT CHR$(223)
LOCATE 45, Col + 5: PRINT CHR$(223)
LOCATE 45, Col + 15: PRINT CHR$(223)
NEXT Col
COLOR 4, 7
FOR Col = 19 TO 22
LOCATE 5, Col: PRINT CHR$(220)
LOCATE 5, Col + 10: PRINT CHR$(220)
LOCATE 5, Col + 15: PRINT CHR$(220)
LOCATE 6, Col: PRINT CHR$(219)
LOCATE 6, Col + 10: PRINT CHR$(219)
LOCATE 6, Col + 15: PRINT CHR$(219)
NEXT Col
COLOR 14, 7
FOR Col = 44 TO 47
LOCATE 5, Col: PRINT CHR$(220)
LOCATE 5, Col + 5: PRINT CHR$(220)
LOCATE 5, Col + 15: PRINT CHR$(220)
LOCATE 6, Col: PRINT CHR$(219)
LOCATE 6, Col + 5: PRINT CHR$(219)
LOCATE 6, Col + 15: PRINT CHR$(219)
NEXT Col
COLOR 6
FOR Row = 8 TO 10
LOCATE Row, 16: PRINT CHR$(219)
LOCATE Row, 17: PRINT CHR$(219)
LOCATE Row + 4, 16: PRINT CHR$(219)
LOCATE Row + 4, 17: PRINT CHR$(219)
LOCATE Row + 12, 16: PRINT CHR$(219)
LOCATE Row + 12, 17: PRINT CHR$(219)
NEXT Row
COLOR 13
FOR Row = 28 TO 30
LOCATE Row, 16: PRINT CHR$(219)
LOCATE Row, 17: PRINT CHR$(219)
LOCATE Row + 4, 16: PRINT CHR$(219)
LOCATE Row + 4, 17: PRINT CHR$(219)
LOCATE Row + 12, 16: PRINT CHR$(219)
LOCATE Row + 12, 17: PRINT CHR$(219)
NEXT Row
COLOR 2
FOR Row = 8 TO 10
LOCATE Row, 64: PRINT CHR$(219)
LOCATE Row, 65: PRINT CHR$(219)
LOCATE Row + 4, 64: PRINT CHR$(219)
LOCATE Row + 4, 65: PRINT CHR$(219)
LOCATE Row + 12, 64: PRINT CHR$(219)
LOCATE Row + 12, 65: PRINT CHR$(219)
NEXT Row
COLOR 1
FOR Row = 32 TO 34
LOCATE Row, 64: PRINT CHR$(219)
LOCATE Row, 65: PRINT CHR$(219)
LOCATE Row + 8, 64: PRINT CHR$(219)
LOCATE Row + 8, 65: PRINT CHR$(219)
NEXT Row
COLOR 8, 7
FOR Col = 15 TO 17
LOCATE 44, Col
PRINT CHR$(210)
LOCATE 45, Col
PRINT CHR$(186)
LOCATE 46, Col
PRINT CHR$(208)
NEXT Col
COLOR 1: LOCATE 47, 13: PRINT "JAIL"
LOCATE 3, 65: PRINT "GOTO"
LOCATE 6, 65: PRINT "JAIL"
LOCATE 3, 13: PRINT "FREE"
LOCATE 6, 13: PRINT "PKNG"
COLOR 9
LOCATE 36, 16: PRINT "EL"
LOCATE 37, 16: PRINT "CO"
LOCATE 38, 16: PRINT "MP"
COLOR 6
LOCATE 44, 29: PRINT "????"
LOCATE 6, 24: PRINT "????"
LOCATE 28, 64: PRINT "??"
LOCATE 29, 64: PRINT "??"
LOCATE 30, 64: PRINT "??"
COLOR 0
LOCATE 6, 39: PRINT "B&OR"
LOCATE 44, 39: PRINT "R-RR"
LOCATE 24, 64: PRINT "SH"
LOCATE 25, 64: PRINT "LN"
LOCATE 26, 64: PRINT "RR"
LOCATE 24, 16: PRINT "PE"
LOCATE 25, 16: PRINT "NN"
LOCATE 26, 16: PRINT "RR"
COLOR 1
LOCATE 16, 17: PRINT "C"
LOCATE 17, 17: PRINT "O"
LOCATE 18, 17: PRINT "M"
LOCATE 16, 64: PRINT "C"
LOCATE 17, 64: PRINT "O"
LOCATE 18, 64: PRINT "M"
LOCATE 44, 54: PRINT "COMM"
COLOR 8
LOCATE 6, 54: PRINT "WATR"
LOCATE 44, 44: PRINT "ITAX"
COLOR 13
LOCATE 36, 64: PRINT "L"
LOCATE 37, 64: PRINT "U"
LOCATE 38, 64: PRINT "X"
COLOR 6
LOCATE 36, 65: PRINT "T"
LOCATE 37, 65: PRINT "A"
LOCATE 38, 65: PRINT "X"
COLOR 8
LOCATE 3, 19: PRINT "KTY"
LOCATE 3, 29: PRINT "IND"
LOCATE 3, 34: PRINT "ILL"
LOCATE 3, 44: PRINT "ATL"
LOCATE 3, 49: PRINT "VEN"
LOCATE 3, 59: PRINT "MAR"
LOCATE 47, 19: PRINT "CON"
LOCATE 47, 24: PRINT "VER"
LOCATE 47, 34: PRINT "ORI"
LOCATE 47, 49: PRINT "BAL"
LOCATE 47, 59: PRINT "MED"
LOCATE 8, 68: PRINT "P"
LOCATE 9, 68: PRINT "A"
LOCATE 10, 68: PRINT "C"
LOCATE 12, 68: PRINT "N"
LOCATE 13, 68: PRINT "C"
LOCATE 14, 68: PRINT "L"
LOCATE 20, 68: PRINT "P"
LOCATE 21, 68: PRINT "E"
LOCATE 22, 68: PRINT "N"
LOCATE 32, 68: PRINT "P"
LOCATE 33, 68: PRINT "K"
LOCATE 34, 68: PRINT "P"
LOCATE 40, 68: PRINT "B"
LOCATE 41, 68: PRINT "W"
LOCATE 42, 68: PRINT "K"
LOCATE 8, 13: PRINT "N"
LOCATE 9, 13: PRINT "E"
LOCATE 10, 13: PRINT "W"
LOCATE 12, 13: PRINT "T"
LOCATE 13, 13: PRINT "E"
LOCATE 14, 13: PRINT "N"
LOCATE 20, 13: PRINT "S"
LOCATE 21, 13: PRINT "T"
LOCATE 22, 13: PRINT "J"
LOCATE 28, 13: PRINT "V"
LOCATE 29, 13: PRINT "I"
LOCATE 30, 13: PRINT "R"
LOCATE 32, 13: PRINT "S"
LOCATE 33, 13: PRINT "A"
LOCATE 34, 13: PRINT "V"
LOCATE 40, 13: PRINT "S"
LOCATE 41, 13: PRINT "T"
LOCATE 42, 13: PRINT "C"
COLOR 3
FOR Row = 9 TO 41
LOCATE Row, 19: PRINT CHR$(179)
LOCATE Row, 62: PRINT CHR$(179)
NEXT Row
FOR Col = 20 TO 61
LOCATE 8, Col: PRINT CHR$(196)
LOCATE 42, Col: PRINT CHR$(196)
NEXT Col
LOCATE 8, 19: PRINT CHR$(218)
LOCATE 8, 62: PRINT CHR$(191)
LOCATE 42, 19: PRINT CHR$(192)
LOCATE 42, 62: PRINT CHR$(217)
t1$ = "°°°°°°°°°°°ÛÛÛÛÛÛÛÛ°"
t2$ = "°°°ÛÛÛÛ°°°°°Û°°°°Û°°"
t3$ = "°°°°²²°°ÛÛ°°Û°°°°Û°°"
t4$ = "°°°ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ°°"
t5$ = "°ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ°°"
t6$ = "°°²²²²²²²²²²ÛÛÛÛÛÛ°°"
t7$ = "°ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ°"
t8$ = "Û±±±±ÛÛÛ±±ÛÛÛ±±ÛÛÛ°°"
t9$ = "°Û°Û°²Û²°°²Û²°°²Û²°°"
COLOR 11, 7
LOCATE 32, 32: PRINT t1$
LOCATE 33, 32: PRINT t2$
LOCATE 34, 32: PRINT t3$
LOCATE 35, 32: PRINT t4$
LOCATE 36, 32: PRINT t5$
LOCATE 37, 32: PRINT t6$
LOCATE 38, 32: PRINT t7$
LOCATE 39, 32: PRINT t8$
LOCATE 40, 32: PRINT t9$
m1$ = "°°°°°Û°°°°°"
m2$ = "°°°ÛÛÛÛÛ°°°"
m3$ = "°°°Û°Û°Û°°°"
m4$ = "°°°Û°Û°°°°°"
m5$ = "°°°ÛÛÛÛÛ°°°"
m6$ = "°°°°°Û°Û°°°"
m7$ = "°°°Û°Û°Û°°°"
m8$ = "°°°ÛÛÛÛÛ°°°"
m9$ = "°°°°°Û°°°°°"
LOCATE 10, 36: PRINT m1$
LOCATE 11, 36: PRINT m2$
LOCATE 12, 36: PRINT m3$
LOCATE 13, 36: PRINT m4$
LOCATE 14, 36: PRINT m5$
LOCATE 15, 36: PRINT m6$
LOCATE 16, 36: PRINT m7$
LOCATE 17, 36: PRINT m8$
LOCATE 18, 36: PRINT m9$
FOR Row = 2 TO 48
FOR Col = 12 TO 69
Count = Count + 1
Board(Count).Char = SCREEN(Row, Col)
Board(Count).Colr = HEX$(SCREEN(Row, Col, 1))
NEXT Col
NEXT Row
END SUB
|
|
|
G_Buttons_32 |
Posted by: James D Jarvis - 04-26-2022, 02:38 AM - Forum: Works in Progress
- Replies (1)
|
 |
Here's a buttons ui scheme and demo I've been fiddling with on and off the past few weeks. It's rude crude and a little ugly. I'm likely going to wrap this up into another UI scheme I'm working on but there's enough functionality here to share for someone else to get some use out of. The main gimmick is the use a color image buffer used to track button locations graphically. You can pretty much draw and forget their specific x and y coordinates elsewhere in a program with this setup.
Code: (Select All) 'G_Buttons_32
' a graphical UI demo by James D. Jarvis
' this program uses 2 calls to new image to create a pair of screens at the same size
' s1& is the display screen that the user will see
'bt& is the button tracking screen
'
'the button tracking screen duplicates the positions of each button on the display screen
'on the display screen buttons can be drawn in any manner the user wishes
'on the tracking screen each button is drawn as a solid shape in the same color reference as the button number
' there are currently 256 reference colors setup in the program and as such 255 buttons are allowed
'0 is ignored as it is used to cleanup inactive buttons on the button tracking screen
' more buttons can probably be created by altering the buttoncount variable and using additional reference colors
' when creating additional reference colors please keep in mind the colors values defined previously to avoid duplication
'
'the mouse positions on the display screen is identical to the position on the button tracking screen
'a call to pset(x,y) where x and y are the mouse position will return the coloron the button tracking screen
' buttons can be resized, moved, erased, as the programmer wishes. it is even possibl1 to pair a button with sprites
' or image click areas in a largere graphic should the technique be programmed to do so, Just use a 1 color version of the sprite or click area
' current commands are
' drawallbuttons which draws all buttons on the display scrren s1& and the button tracking screen bt%
' draw button(b) which draw a specific button at its previouslt defiend coordinates
' hidebutton(b) will chnage a button.state to off and erase the button from both screens, a call to drawallbutton is alwasy made in this subroutine
' turnonbutton(b) will changethe state of a button and redraw it on the both screens. this will bring an overlapping button to the top
' erasbutton(b) is normally called from inside hidebutton(b) but is its own subroutine this will remove a button
' from both screens but WILL NOT change the button state
'
'button type
' name is a String that hold the name of the button , this is not normally the displayed text
' shape is an Integer this is a flag 1- simple box button 2- round button 3- text button
' text is a String this is the button text that will be printed on the display screen inside the button is SHOWTEXT is in the container
' x is an Integer this is the topleft X coordinate of a button
' y is an Integer this is the topleft Y coordinate of a button
' HH i an Integer the button height in pixels
' WW is an Integer the button width in pixels
' state is a String the button state "OFF" and "ON" are the usualy values,
' container is a String this is a multi puroiose datat store for the button that will include the SHOWTEXT flag or any other fstrign data the porgrammer wishes
' borderK is an long the outline color of the button this will also be the text color of a button
' fillK is an long the fill color of the button this is ignored with textbuttons
'
' currently the program supports very simple buttons
' bbox : is a simple box button
' bcircle is a simple circle
' btext alows a text string to be used as a button
' btbevel is a rectangle image that look lile a slightly fancier button
' not YET FULLY IMPLEMENTED .... there is aholder function that gives a big old ugly button
' BTFRAME is an expanded text box with a frame structure of defined charcters held in the button container
'...............#FCTRnnn# frame value for top right corner of frame nnn is ascii value
'...............#FCTLnnn# top left
'...............#FCBRnnn# bottom right
'...............#FCBLnnn# bottom left
'...............#FCHHnnn# horizontal rule
'...............#FCVVnnn# verticalrule
_Title "G_Buttons_32"
Dim Shared ff&
Dim Shared S1&, bt&
Dim Shared block$, fsize
Dim Shared buttoncount
buttoncount = 255
Dim Shared Klr&(0 To 255), kl As _Unsigned Long
block$ = Chr$(219)
S1& = _NewImage(640, 480, 32)
Screen S1&
bt& = _NewImage(640, 480, 32)
rootpath$ = Environ$("SYSTEMROOT") 'normally "C:\WINDOWS"
fontname$ = "comic" 'oh yeah an ugly font for an ugly demo
fontfile$ = rootpath$ + "\Fonts\" + fontname$ + ".ttf" 'TTF file in Windows
fsize = 16
style$ = ""
ff& = _LoadFont(fontfile$, fsize, style$)
_Font ff&
_PrintMode _KeepBackground
'building the reference colors this is to keep track of them probably don't have to actually do this
Klr&(0) = _RGB32(0, 0, 0)
Klr&(1) = _RGB32(0, 0, 168)
Klr&(2) = _RGB32(0, 168, 0)
Klr&(3) = _RGB32(0, 168, 168)
Klr&(4) = _RGB32(168, 0, 0)
Klr&(5) = _RGB32(168, 0, 168)
Klr&(6) = _RGB32(168, 84, 0)
Klr&(7) = _RGB32(168, 168, 168)
Klr&(8) = _RGB32(84, 84, 84)
Klr&(9) = _RGB32(84, 84, 252)
Klr&(10) = _RGB32(84, 252, 84)
Klr&(11) = _RGB32(84, 252, 252)
Klr&(12) = _RGB32(252, 84, 84)
Klr&(13) = _RGB32(252, 84, 252)
Klr&(14) = _RGB32(252, 252, 84)
Klr&(15) = _RGB32(252, 252, 252)
For c = 16 To 255
Klr&(c) = _RGB32(1, 1, c)
Next c
Const bbox = 1 'plain box buttons
Const bcircle = 2 'a circle button
Const btext = 3 ' text as button
Const bframe = 4 'a framed text button.... still not implemented
Const btbevel = 5 'a rectangular button with a bevelish look
Const bzone = 6 'a whole panel zone as a button used to note a click in a panel or the area of a panel, panel buttons drawn under all other buttons
Type buttontype
name As String
shape As Integer
text As String
x As Integer
y As Integer
HH As Integer
WW As Integer
state As String
container As String
borderK As Long 'border and type color of a button, this uses one of the reference colors for now, might ditch this idea entirely
fillK As Long
End Type
Dim Shared btn(buttoncount) As buttontype
btn(1).name = "One"
btn(1).text = "BEEP"
btn(1).state = "ON"
btn(1).shape = bbox
btn(1).x = 50: btn(1).y = 50: btn(1).HH = 50: btn(1).WW = 50
btn(1).container = "SHOWTEXT SHOWFILL"
btn(1).borderK = Klr&(14)
btn(1).fillK = Klr&(1)
btn(2).name = "Two"
btn(2).state = "ON"
btn(2).text = "4?"
btn(2).shape = bbox
btn(2).x = 50: btn(2).y = 100: btn(2).HH = 50: btn(2).WW = 50
btn(2).container = "SHOWTEXT SHOWFILL"
btn(2).borderK = Klr&(14)
btn(2).fillK = Klr&(7)
btn(3).name = "Three"
btn(3).text = "Move4"
btn(3).state = "ON"
btn(3).shape = bcircle
btn(3).x = 200: btn(3).y = 200: btn(3).HH = 30: btn(3).WW = 0
btn(3).container = "SHOWFILL SHOWTEXT"
btn(3).borderK = Klr&(14)
btn(3).fillK = Klr&(4)
btn(4).name = "Four"
btn(4).text = "Button 4"
btn(4).state = "ON"
btn(4).shape = btext
btn(4).x = 200: btn(4).y = 200: btn(4).HH = 30: btn(4).WW = 0
btn(4).container = ""
btn(4).borderK = Klr&(14)
btn(4).fillK = Klr&(5)
btn(5).name = "Five"
btn(5).state = "ON"
btn(5).text = "+6"
btn(5).shape = bbox
btn(5).x = 50: btn(5).y = 151: btn(5).HH = 50: btn(5).WW = 50
btn(5).container = "SHOWTEXT"
btn(5).borderK = Klr&(14)
btn(5).fillK = Klr&(6)
btn(6).name = "Six"
btn(6).state = "OFF"
btn(6).text = "Beep2"
btn(6).shape = bbox
btn(6).x = 50: btn(6).y = 201: btn(6).HH = 50: btn(6).WW = 50
btn(6).container = ""
btn(6).borderK = Klr&(14)
btn(6).fillK = Klr&(7)
btn(7).name = "Seven"
btn(7).text = "Shrink8"
btn(7).state = "ON"
btn(7).shape = btbevel
btn(7).x = 250: btn(7).y = 50: btn(7).HH = 30: btn(7).WW = 120
btn(7).container = "SHOWFILL SHOWTEXT"
btn(7).borderK = Klr&(14)
btn(7).fillK = Klr&(5)
btn(8).name = "zone"
btn(8).text = ""
btn(8).state = "ON"
btn(8).shape = bzone
btn(8).x = 10: btn(8).y = 10: btn(8).HH = 50: btn(8).WW = 120
btn(8).container = ""
btn(8).borderK = Klr&(0)
btn(8).fillK = Klr&(0)
bbx = 400
by = 1
For z = 9 To buttoncount
If z = 97 Then
bbx = 450
by = 1
End If
If z = 187 Then
bbx = 500
by = 1
End If
btn(z).name = "Button" + Str$(z)
btn(z).state = "ON"
btn(z).shape = bbox
btn(z).x = bbx: btn(z).y = by * 5: btn(z).HH = 4: btn(z).WW = 20
btn(z).container = "SHOWFILL"
btn(z).borderK = Klr&(z)
btn(z).fillK = Klr&(Int(z / 2))
by = by + 1
Next z
btn(8).name = "Seven"
btn(8).text = "Kill 7"
btn(8).state = "ON"
btn(8).shape = btbevel
btn(8).x = 250: btn(8).y = 85: btn(8).HH = 30: btn(8).WW = 120
btn(8).container = "SHOWFILL SHOWTEXT"
btn(8).borderK = Klr&(14)
btn(8).fillK = Klr&(5)
_PrintString (10, 360), "Simple graphic buttons demo"
_PrintString (10, 375), "Press Q to quit at any time"
_PrintString (10, 390), "for no good reason at all you cna scribble"
_PrintString (10, 405), " on the screen by holding down the mouse button"
_PrintString (10, 420), "when you do quit the program exits to"
_PrintString (10, 435), " a view of the button buffer"
drawallbuttons
kl = 14
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
mainloop:
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Do
_Limit 1000
Line (10, 50)-(15, 55), Klr&(kl), BF
ask$ = InKey$
If ask$ <> "" Then
Select Case ask$
Case Chr$(27)
GoTo exitmain
Case "<", Chr$(44)
kl = kl - 1
If kl < 0 Then kl = 255
Case ">", Chr$(46)
kl = kl + 1
If kl > 255 Then kl = 0
End Select
ask$ = ""
End If
Mouser mx, my, mb
If mb Then
PSet (mx, my), Klr&(kl)
Locate 2, 2
_PrintMode _FillBackground
Print " "
_PrintMode _KeepBackground
Do While mb 'wait for button release
Mouser mx, my, mb
PSet (mx, my), Klr&(kl)
_Source bt&
bk& = Point(mx, my)
_Dest S1&
Loop
' button handling code
For kc = 0 To buttoncount
If bk& = Klr&(kc) Then
bk& = kc
Else
kb& = -1
End If
Next kc
If bk& > 0 And bk& < buttoncount + 1 Then
If btn(bk&).state <> "OFF" Then
Select Case bk&
Case 1
Locate 2, 2
_PrintMode _FillBackground
Print "Click on BUTTON ONE "
_PrintMode _KeepBackground
Beep
bk& = -1
Case 2
Locate 2, 2
_PrintMode _FillBackground
Print "click on Button TWO "
_PrintMode _KeepBackground
turnonbutton 4
remove_container 4, "_LOCKED"
bk& = -1
Case 3
Locate 2, 2
_PrintMode _FillBackground
Print "click on Button Three "
_PrintMode _KeepBackground
move_button 4, 4, 4
bk& = -1
Case 4
Locate 2, 2
_PrintMode _FillBackground
Print "click on Button Four "
_PrintMode _KeepBackground
bk& = -1
hidebutton 4
Case 5
Locate 2, 2
_PrintMode _FillBackground
Print "click on Button Five "
_PrintMode _KeepBackground
bk& = -1
add_container 6, "SHOWTEXT"
turnonbutton (6)
Case 6
Locate 2, 2
_PrintMode _FillBackground
Print "Click on BUTTON six "
_PrintMode _KeepBackground
Beep
Beep
bk& = -1
Case 7
Locate 2, 2
_PrintMode _FillBackground
Print "Click on BUTTON Seven "
erasebutton (8)
btn(8).x = btn(8).x + 1
btn(8).WW = btn(8).WW - 2
_PrintMode _KeepBackground
drawbutton (8)
Case 8
Locate 2, 2
_PrintMode _FillBackground
Print "Click on BUTTON Eight "
_PrintMode _KeepBackground
bk& = -1
hidebutton 7
Case 9 TO 255
Locate 2, 2
_PrintMode _FillBackground
Print "Click on BUTTON "; Str$(bk&)
_PrintMode _KeepBackground
End Select
End If
End If
End If
Loop Until InKey$ = Chr$(27)
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exitmain:
Screen bt&
End
Sub Mouser (x, y, b)
mi = _MouseInput
b = _MouseButton(1)
x = _MouseX
y = _MouseY
End Sub
Sub drawallbuttons ()
For b = 1 To buttoncount
kl = b
If btn(b).state = "OFF" Then
' erasebutton (b)
End If
If btn(b).state = "ON" Then
drawbutton (b)
End If
Next b
End Sub
Sub drawbutton (b)
If btn(b).state <> "OFF" Then
Select Case btn(b).shape
Case bbox
Line (btn(b).x, btn(b).y)-(btn(b).x + btn(b).WW, btn(b).y + btn(b).HH), btn(b).borderK, B
_Dest bt&
Line (btn(b).x, btn(b).y)-(btn(b).x + btn(b).WW, btn(b).y + btn(b).HH), Klr&(b), BF
_Dest S1&
If InStr(btn(b).container, "SHOWFILL") > 0 Then Line (btn(b).x + 1, btn(b).y + 1)-(btn(b).x + btn(b).WW - 1, btn(b).y + btn(b).HH - 1), btn(b).fillK, BF
If InStr(btn(b).container, "SHOWTEXT") > 0 Then
cx = (btn(b).x * 2 + btn(b).WW) / 2
cy = btn(b).y + btn(b).HH / 2 - (fsize / 2)
pw = _PrintWidth(btn(b).text)
pw = Int(pw / 2)
Color btn(b).borderK
_PrintString (cx - pw, cy), btn(b).text
End If
Case bcircle
_Dest bt&
Circle (btn(b).x, btn(b).y), btn(b).HH, Klr&(b)
Circle (btn(b).x, btn(b).y), btn(b).HH - 1, Klr&(0)
Paint (btn(b).x, btn(b).y), Klr&(0), Klr&(0)
Paint (btn(b).x, btn(b).y), Klr&(b), Klr&(b)
_Dest st&
Circle (btn(b).x, btn(b).y), btn(b).HH, btn(b).borderK
If InStr(btn(b).container, "SHOWFILL") > 0 Then
Circle (btn(b).x, btn(b).y), btn(b).HH - 1, Klr&(0)
Paint (btn(b).x, btn(b).y), Klr&(0), Klr&(0)
Paint (btn(b).x, btn(b).y), btn(b).fillK, btn(b).borderK
End If
pw = _PrintWidth(btn(b).text)
pw = Int(pw / 2)
If InStr(btn(b).container, "SHOWTEXT") > 0 Then _PrintString (btn(b).x - pw + 1, btn(b).y - (fsize / 2) + 1), btn(b).text
Case btext
_Dest bt&
kl = b
Color Klr&(kl)
btxt$ = ""
btxt$ = btn(b).text
tl = Len(btxt$)
btxt$ = ""
For tt = 1 To tl: btxt$ = btxt$ + block$: Next tt
_PrintString (btn(b).x, btn(b).y), btxt$
_Dest S1&
pw = _PrintWidth(btn(b).text)
Color btn(b).borderK
_PrintString (btn(b).x, btn(b).y), btn(b).text
Case btframe
_Dest bt&
kl = b
Color Klr&(kl)
btxt$ = ""
btxt$ = Chr$(186) + btn(b).text + Chr$(186)
' tl = _PrintWidth(btxt$)
thl = _FontHeight: th = thl * 3
cw = Len(btn(b).text)
ft$ = Chr$(201): fb$ = Chr$(200)
For r = 1 To cw
ft$ = ft$ + Chr$(205): fb$ = fb$ + Chr$(205)
Next r
ft$ = ft$ + Chr$(187): fb$ = fb$ + Chr$(188)
tl = _PrintWidth(ft$) + 18
Line (btn(b).x, btn(b).y)-(btn(b).x + tl, btn(b).y + th), Klr&(kl), BF
_Dest S1&
' pw = _PrintWidth(btn(b).text)
Color btn(b).borderK
_PrintMode _FillBackground
If InStr(btn(b).container, "SHOWFILL") > 0 Then Line (btn(b).x, btn(b).y)-(btn(b).x + tl, btn(b).y + th), btn(b).fillK, BF
_PrintMode _KeepBackground
_PrintString (btn(b).x, btn(b).y), ft$
_PrintString (btn(b).x, btn(b).y + thl), btxt$
_PrintString (btn(b).x, btn(b).y + thl + thl), fb$
Case btbevel
Line (btn(b).x, btn(b).y)-(btn(b).x + btn(b).WW, btn(b).y + btn(b).HH), btn(b).borderK, B
_Dest bt&
Line (btn(b).x, btn(b).y)-(btn(b).x + btn(b).WW, btn(b).y + btn(b).HH), Klr&(b), BF
_Dest S1&
If InStr(btn(b).container, "SHOWFILL") > 0 Then Line (btn(b).x + 1, btn(b).y + 1)-(btn(b).x + btn(b).WW - 1, btn(b).y + btn(b).HH - 1), btn(b).fillK, BF
bevoff = Int(btn(b).HH / 5)
inxl = btn(b).x + bevoff: inxr = btn(b).WW + btn(b).x - bevoff
inytop = btn(b).y + bevoff: inybot = btn(b).y + btn(b).HH - bevoff
Line (btn(b).x, btn(b).y)-(inxl, inytop), btn(b).borderK
Line (btn(b).x, btn(b).y + btn(b).HH)-(inxl, inybot), btn(b).borderK
Line (btn(b).x + btn(b).WW, btn(b).y)-(inxr, inytop), btn(b).borderK
Line (btn(b).x + btn(b).WW, btn(b).y + btn(b).HH)-(inxr, inybot), btn(b).borderK
Line (inxl, inytop)-(inxr, inybot), btn(b).borderK, B
If InStr(btn(b).container, "SHOWTEXT") > 0 Then
cx = btn(b).x + (btn(b).WW) / 2
cy = btn(b).y + btn(b).HH / 2 - (fsize / 2) + bevoff / 3
pw = _PrintWidth(btn(b).text)
pw = Int(pw / 2)
Color btn(b).borderK
_PrintString (cx - pw, cy), btn(b).text
End If
End Select
End If
skiploop:
End Sub
Sub hidebutton (bb)
_Dest bt&
erasebutton (bb)
btn(bb).state = "OFF"
drawallbuttons
End Sub
Sub erasebutton (bb)
b = bb
If btn(b).state <> "OFF" Then
_Dest bt&
Select Case btn(b).shape
Case bbox
Line (btn(b).x, btn(b).y)-(btn(b).x + btn(b).WW, btn(b).y + btn(b).HH), Klr&(0), BF
_Dest S1&
Line (btn(b).x, btn(b).y)-(btn(b).x + btn(b).WW, btn(b).y + btn(b).HH), Klr&(0), BF
Case bcircle
Circle (btn(b).x, btn(b).y), btn(b).HH, Klr&(0)
Paint (btn(b).x, btn(b).y), Klr&(0), Klr&(0)
Case btext
_Dest bt&
pw = _PrintWidth(btn(b).text)
Line (btn(b).x, btn(b).y)-(btn(b).x + pw, btn(b).y + 16), Klr&(0), BF
_Dest S1&
Line (btn(b).x, btn(b).y)-(btn(b).x + pw, btn(b).y + 16), Klr&(0), BF
Case btbevel
Line (btn(b).x, btn(b).y)-(btn(b).x + btn(b).WW, btn(b).y + btn(b).HH), Klr&(0), BF
_Dest S1&
Line (btn(b).x, btn(b).y)-(btn(b).x + btn(b).WW, btn(b).y + btn(b).HH), Klr&(0), BF
End Select
_Dest S1&
End If
End Sub
Sub turnonbutton (bb)
btn(bb).state = "ON"
drawbutton bb
End Sub
Sub replace_container (b, a$, c$)
'repalces string a$ in a buttons container with c$
'if a$ is not in contiar the string is simnply added to the container"
pc = InStr(btn(b).container, a$)
If pc > 0 Then
wl = Len(a$)
ec = Len(btn(b).container)
fr$ = Mid$(btn(b).container, 1, pc - 1)
bck$ = Mid$(btn(b).container, pc + wl, ec - wl)
btn(b).container = fr$ + c$ + bck$
End If
End Sub
Sub add_container (b, a$)
'adds the string a$ to the container of a button
btn(b).container = btn(b).container + a$
End Sub
Sub remove_container (b, a$)
pc = InStr(btn(b).container, a$)
If pc > 0 Then
wl = Len(a$)
ec = Len(btn(b).container)
fr$ = Mid$(btn(b).container, 1, pc - 1)
bck$ = Mid$(btn(b).container, pc + wl, ec - wl)
btn(b).container = fr$ + bck$
End If
End Sub
Sub move_button (bb, mvx, mvy)
'lckc = InStr(btn(b).container, "_LOCKED")
' If lckc < 1 Then
erasebutton (bb)
btn(bb).x = btn(bb).x + mvx
btn(bb).y = btn(bb).y + mvy
drawallbuttons
' End If
End Sub
|
|
|
Mystify - Screen Saver Similar to Windows 98 Mystify from the 1990's. |
Posted by: Pete - 04-26-2022, 02:15 AM - Forum: TheBOB
- No Replies
|
 |
Mystify.bas by Bob Seguin
![[Image: Screenshot-633.png]](https://i.ibb.co/SQV5YrM/Screenshot-633.png)
Description: Screen saver.
Code: (Select All) _TITLE "Mystify.bas by Bob Seguin"
_FULLSCREEN
TYPE MovingPolyType
x AS INTEGER
y AS INTEGER
IncX AS INTEGER
IncY AS INTEGER
END TYPE
TYPE HoldingPolysType
x AS INTEGER
y AS INTEGER
END TYPE
DIM Co(1 TO 8) AS MovingPolyType
DIM Slots(1 TO 11, 1 TO 8) AS HoldingPolysType
DEFINT A-Z
'Establish random starting coordinates and x/y increments for polygons
SCREEN 12
RANDOMIZE TIMER
FOR n = 1 TO 8
Co(n).x = INT(RND * 400) + 1
Co(n).y = INT(RND * 240) + 1
Rand = INT(RND * 2) + 1
SELECT CASE Rand
CASE 1
Co(n).IncX = -INT(RND * 12) + 1
CASE 2
Co(n).IncX = INT(RND * 12) + 1
END SELECT
Rand = INT(RND * 2) + 1
SELECT CASE Rand
CASE 1
Co(n).IncY = -INT(RND * 12) + 1
CASE 2
Co(n).IncY = INT(RND * 12) + 1
END SELECT
NEXT n
FOR Reps = 1 TO 8
Slots(1, Reps).x = Co(Reps).x + 119: Slots(1, Reps).y = Co(Reps).y + 119
NEXT Reps
OneSwitch = 1
ThreeSwitch = 1
One = 16
Three = 52
PALETTE 0, 655360
PALETTE 4, 63
GOSUB ColorSet
ON TIMER(1) GOSUB ColorSet
TIMER ON
DO
FOR n = 1 TO 8
GOSUB Direction
NEXT n
FOR Reps = 11 TO 2 STEP -1
FOR Pots = 1 TO 8
Slots(Reps, Pots).x = Slots(Reps - 1, Pots).x
Slots(Reps, Pots).y = Slots(Reps - 1, Pots).y
NEXT Pots
NEXT Reps
'For this small-area-of-activity version, new coordinates are assigned
'and set to occur center screen (+ 119).
FOR Pots = 1 TO 8
Slots(1, Pots).x = Co(Pots).x + 119
Slots(1, Pots).y = Co(Pots).y + 119
NEXT Pots
'Erase last polygon
LINE (Slots(11, 1).x, Slots(11, 1).y)-(Slots(11, 2).x, Slots(11, 2).y), 0
LINE (Slots(11, 2).x, Slots(11, 2).y)-(Slots(11, 3).x, Slots(11, 3).y), 0
LINE (Slots(11, 3).x, Slots(11, 3).y)-(Slots(11, 4).x, Slots(11, 4).y), 0
LINE (Slots(11, 4).x, Slots(11, 4).y)-(Slots(11, 1).x, Slots(11, 1).y), 0
LINE (Slots(11, 5).x, Slots(11, 5).y)-(Slots(11, 6).x, Slots(11, 6).y), 0
LINE (Slots(11, 6).x, Slots(11, 6).y)-(Slots(11, 7).x, Slots(11, 7).y), 0
LINE (Slots(11, 7).x, Slots(11, 7).y)-(Slots(11, 8).x, Slots(11, 8).y), 0
LINE (Slots(11, 8).x, Slots(11, 8).y)-(Slots(11, 5).x, Slots(11, 5).y), 0
'Draw new first polygons and redraw existing polygons so that all the
'erasures are overdrawn, all polygons take on the updated color, and
'the second-color polygons overdraw the first-color polygons.
WAIT &H3DA, 8
WAIT &H3DA, 8, 8
FOR Reps = 1 TO 10
IF Slots(Reps, 1).x <> 0 THEN
LINE (Slots(Reps, 1).x, Slots(Reps, 1).y)-(Slots(Reps, 2).x, Slots(Reps, 2).y), 1
LINE (Slots(Reps, 2).x, Slots(Reps, 2).y)-(Slots(Reps, 3).x, Slots(Reps, 3).y), 1
LINE (Slots(Reps, 3).x, Slots(Reps, 3).y)-(Slots(Reps, 4).x, Slots(Reps, 4).y), 1
LINE (Slots(Reps, 4).x, Slots(Reps, 4).y)-(Slots(Reps, 1).x, Slots(Reps, 1).y), 1
END IF
NEXT Reps
FOR Reps = 1 TO 10
IF Slots(Reps, 1).x <> 0 THEN
LINE (Slots(Reps, 5).x, Slots(Reps, 5).y)-(Slots(Reps, 6).x, Slots(Reps, 6).y), 2
LINE (Slots(Reps, 6).x, Slots(Reps, 6).y)-(Slots(Reps, 7).x, Slots(Reps, 7).y), 2
LINE (Slots(Reps, 7).x, Slots(Reps, 7).y)-(Slots(Reps, 8).x, Slots(Reps, 8).y), 2
LINE (Slots(Reps, 8).x, Slots(Reps, 8).y)-(Slots(Reps, 5).x, Slots(Reps, 5).y), 2
END IF
NEXT Reps
LOOP UNTIL INKEY$ <> ""
TIMER OFF
CLS
SYSTEM
Direction:
SELECT CASE Co(n).x
CASE IS <= 0
Co(n).IncX = INT(RND * 12) + 1
CASE IS >= 399
Co(n).IncX = -INT(RND * 12) + 1
END SELECT
SELECT CASE Co(n).y
CASE IS <= 0
Co(n).IncY = INT(RND * 12) + 1
CASE IS >= 239
Co(n).IncY = -INT(RND * 12) + 1
END SELECT
Co(n).x = Co(n).x + Co(n).IncX
Co(n).y = Co(n).y + Co(n).IncY
RETURN
ColorSet:
SELECT CASE OneSwitch
CASE 1
One = One + 1
IF One = 63 THEN OneSwitch = 0
CASE 0
One = One - 1
IF One = 0 THEN OneSwitch = 1
END SELECT
SELECT CASE ThreeSwitch
CASE 1
Three = Three + 1
IF Three = 63 THEN ThreeSwitch = 0
CASE 0
Three = Three - 1
IF Three = 0 THEN ThreeSwitch = 1
END SELECT
PALETTE 1, 2490368 + ((63 - Three) * 256) + One
PALETTE 2, (Three * 65536) + ((63 - One) * 256) + 38
RETURN
|
|
|
|