discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

include BOSL2 and GUI goes blank!!

M
mikeonenine@web.de
Sun, Feb 8, 2026 8:58 PM

On adding include <BOSL2/std.scad> to a script, the viewport went blank. How is that possible? No problem with other scripts.

There seems to be something in the script that BOSL2 doesn’t like. What could that be?

Error messages may be relevant:

ERROR: Assertion 'is_finite(ang)' failed in file C:/Users/Admin/Documents/OpenSCAD/libraries/BOSL2/affine.scad, line 301 

TRACE: called by '_translate' in file C:/Users/Admin/Documents/OpenSCAD/libraries/BOSL2/transforms.scad, line 1585

TRACE: called by '_translate' in file C:/Users/Admin/Documents/OpenSCAD/libraries/BOSL2/transforms.scad, line 1585 

Any ideas what to look for?

On adding `include <BOSL2/std.scad>` to a script, the viewport went blank. How is that possible? No problem with other scripts. There seems to be something in the script that BOSL2 doesn’t like. What could that be? Error messages may be relevant: [ERROR: Assertion 'is_finite(ang)' failed in file C:/Users/Admin/Documents/OpenSCAD/libraries/BOSL2/affine.scad, line 301](301,C:/Users/Admin/Documents/OpenSCAD/libraries/BOSL2/affine.scad)  [TRACE: called by '_translate' in file C:/Users/Admin/Documents/OpenSCAD/libraries/BOSL2/transforms.scad, line 1585](1585,C:/Users/Admin/Documents/OpenSCAD/libraries/BOSL2/transforms.scad) [TRACE: called by '_translate' in file C:/Users/Admin/Documents/OpenSCAD/libraries/BOSL2/transforms.scad, line 1585](1585,C:/Users/Admin/Documents/OpenSCAD/libraries/BOSL2/transforms.scad)  Any ideas what to look for?
M
mikeonenine@web.de
Sun, Feb 8, 2026 9:14 PM

Correction (pls ignore previous post)

On adding include <BOSL2/std.scad> to a script, the viewport went blank. How is that possible? No problem with other scripts.

There seems to be something in the script that BOSL2 doesn’t like. What could that be?

Error messages may be relevant:

ERROR: Assertion 'is_finite(ang)' failed in file C:/Users/Admin/Documents/OpenSCAD/libraries/BOSL2/affine.scad, line 301 

TRACE: called by '_translate' in file C:/Users/Admin/Documents/OpenSCAD/libraries/BOSL2/transforms.scad, line 1585

TRACE: called by '_translate' in file C:/Users/Admin/Documents/OpenSCAD/libraries/BOSL2/transforms.scad, line 1607 

Any suggestions what to look for?

*Correction (pls ignore previous post)* On adding `include <BOSL2/std.scad>` to a script, the viewport went blank. How is that possible? No problem with other scripts. There seems to be something in the script that BOSL2 doesn’t like. What could that be? Error messages may be relevant: [ERROR: Assertion 'is_finite(ang)' failed in file C:/Users/Admin/Documents/OpenSCAD/libraries/BOSL2/affine.scad, line 301](https://lists.openscad.org/empathy/thread/301,C:/Users/Admin/Documents/OpenSCAD/libraries/BOSL2/affine.scad)  [TRACE: called by '_translate' in file C:/Users/Admin/Documents/OpenSCAD/libraries/BOSL2/transforms.scad, line 1585](https://lists.openscad.org/empathy/thread/1585,C:/Users/Admin/Documents/OpenSCAD/libraries/BOSL2/transforms.scad) [TRACE: called by '_translate' in file C:/Users/Admin/Documents/OpenSCAD/libraries/BOSL2/transforms.scad, line ](https://lists.openscad.org/empathy/thread/1585,C:/Users/Admin/Documents/OpenSCAD/libraries/BOSL2/transforms.scad)**[1](https://lists.openscad.org/empathy/thread/1585,C:/Users/Admin/Documents/OpenSCAD/libraries/BOSL2/transforms.scad)607**  Any suggestions what to look for?
JB
Jordan Brown
Sun, Feb 8, 2026 9:16 PM

On 2/8/2026 1:14 PM, Caddiy via Discuss wrote:

Any suggestions what to look for?

My guess would be that you have a global name that conflicts with one of
BOSL2's names.

On 2/8/2026 1:14 PM, Caddiy via Discuss wrote: > > Any suggestions what to look for? > My guess would be that you have a global name that conflicts with one of BOSL2's names.
M
mikeonenine@web.de
Sun, Feb 8, 2026 9:35 PM

Hi,

what would a global name look like? Examples?

Hi, what would a global name look like? Examples?
LM
Leonard Martin Struttmann
Sun, Feb 8, 2026 9:59 PM

Do you, by chance, have a variable called IDENT?

On Sun, Feb 8, 2026 at 3:35 PM Caddiy via Discuss <
discuss@lists.openscad.org> wrote:

Hi,

what would a global name look like? Examples?


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

Do you, by chance, have a variable called IDENT? On Sun, Feb 8, 2026 at 3:35 PM Caddiy via Discuss < discuss@lists.openscad.org> wrote: > Hi, > > what would a global name look like? Examples? > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
M
mikeonenine@web.de
Sun, Feb 8, 2026 10:32 PM

No, ‘fraid not.

This part is done with BOSL2, but I can’t use it with the rest.

No, ‘fraid not. This part is done with BOSL2, but I can’t use it with the rest. ![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAp8AAAGYCAYAAAAEBYktAAAgAElEQVR4Xuy9B6CkZXn2/5ze63aKNOkLylIFlSigiMYIiojlU6MG42dFBCMYiRICJhiixuhfscT4V6Nix4JSNBGksyzssggLuwK7p/c5fb7ret7nnn3mPTNn+pwp96PLzJl56/W8M+9v7loTje6KGh2qgCqgClSwAjU1+xt811XwGeqpqQKqgCpQPgrUKHyWz2TpkaoCqkB2Cih8ZqebrqUKqAKqQCEUUPgshKq6TVVAFSgpBRQ+S2o69GBUAVWgyhVQ+KzyC0BPXxWoBgUUPqthlvUcVQFVoFwUUPgsl5nS41QFVIGsFVD4zFo6XVEVUAVUgbwroPCZd0l1g6qAKlBqCih8ltqM6PGoAqpANSug8FnNs6/nrgpUiQIKn1Uy0XqaqoAqUBYKKHyWxTTpQaoCqkAuCih85qKerqsKqAKqQH4VUPjMr566NVVAFShBBRQ+S3BS9JBUAVWgahVQ+KzaqdcTVwWqRwGFz+qZaz1TVUAVKH0FFD5Lf470CFUBVSBHBRQ+cxRQV1cFVAFVII8KKHzmUUzdlCqgCpSmAgqfpTkvelSqgCpQnQoofFbnvOtZqwJVpYDCZ1VNt56sKqAKlLgCCp8lPkF6eKqAKpC7AgqfuWuoW1AFVAFVIF8KKHzmS0ndjiqgCpSsAgqfJTs1emCqgCpQhQoofFbhpOspqwLVpoDCZ7XNuJ6vKqAKlLICCp+lPDt6bKqAKpAXBRQ+8yKjbkQVUAVUgbwooPCZFxl1I6qAKlDKCih8lvLs6LGpAqpAtSmg8FltM67nqwpUoQIKn1U46XrKqoAqULIKKHyW7NTogakCqkC+FFD4zJeSuh1VQBVQBXJXQOEzdw11C6qAKlDiCih8lvgE6eGpAqpAVSmg8FlV060nqwpUpwIKn9U573rWqoAqUJoKKHyW5rzoUakCqkAeFVD4zKOYuilVQBVQBXJUQOEzRwF1dVVAFSh9BRQ+S3+O9AhVAVWgehRQ+KyeudYzVQWqVgGFz6qdej1xVUAVKEEFFD5LcFL0kFQBVSC/Cih85ldP3ZoqoAqoArkooPCZi3q6riqgCpSFAgqfZTFNepCqgCpQJQoofFbJROtpqgLVrIDCZzXPvp67KqAKlJoCCp+lNiN6PKqAKpB3BRQ+8y6pblAVUAVUgawVUPjMWjpdURVQBcpFAYXPcpkpPU5VQBWoBgUUPqthlvUcVYEqV0Dhs8ovAD19VUAVKCkFFD5Lajr0YFQBVaAQCih8FkJV3aYqoAqoAtkpoPCZnW66liqgCpSRAgqfZTRZeqiqgCpQ8QoofFb8FOsJqgKqgMKnXgOqgCqgCpSOAgqfpTMXeiSqgCpQIAUUPgskrG5WFVAFVIEsFFD4zEI0XUUVUAXKSwGFz/KaLz1aVUAVqGwFFD4re3717FQBVQAKKHzqZaAKqAKqQOkooPBZOnOhR6IKqAIFUkDhs0DC6mZVAVVAFchCAYXPLETTVVQBVaC8FFD4LK/50qNVBVSBylZA4bOy51fPThVQBdTtrteAKqAKqAIlpYDCZ0lNhx6MKqAKFEIBtXwWQlXdpiqgCqgC2Smg8JmdbrqWKqAKlJECCp9lNFl6qKqAKlDxCih8VvwU6wmqAqqAwqdeA6qAKqAKlI4CCp+lMxd6JKqAKlAgBRQ+CySsblYVUAVUgSwUUPjMQjRdRRVQBcpLAYXP8povPVpVQBWobAVqcHrRaHRXZZ+lnp0qoApUtQIKn1U9/XryqoAqUGIKWMunfjGX2Kzo4agCqkBeFdDvuLzKqRtTBVQBVSAnBWJud/1yzklHXVkVUAVKWAH9fivhydFDUwVUgapTIC7mk1/QHOqGr7rrQE9YFahoBRQ+K3p69eRUAVWgzBRImHCkX9RlNot6uKqAKrCsAvqdpheIKqAKqAKlo0DSbHf9si6dSdIjUQVUgdwU0O+z3PTTtVUBVUAVyKcCy5Za0i/sfEqt21IFVIGVUkC/y1ZKed2vKqAKqAJLFUhZ51O/tPWyUQVUgXJXQL/Hyn0G9fhVAVWgkhRICZ88WU1EqqQp13NRBapPAYXP6ptzPWNVQBUoXQXSgk85fP0CL92J1CNTBVSB5Arod5deHaqAKqAKlI4CGcGnWEG1FFPpTKAeiSqgCqRWQOEztUa6hCqgCqgCxVIgY/hUAC3W1Oh+VAFVIF8KKHzmS0ndjiqgCqgCuSuQFXwKgPJRraC5T4JuQRVQBQqrgMJnYfXVrasCqoAqkIkCWcOn7ES/1DORW5dVBVSBlVBAv6dWQnXdpyqgCqgCiRXIGT7FCqoWUL3EVAFVoFQVUPgs1ZnR41IFVIFqVCAv8KkAWo2Xjp6zKlA+Cih8ls9c6ZGqAqpA5SuQN/hUAK38i0XPUBUoVwUUPst15vS4VQFVoBIVyCt8CoDyUd3wlXi56DmpAuWpgMJnec6bHrUqoApUpgJ5h0+RSb/sK/OC0bNSBcpRAf0+KsdZ02NWBVSBSlWgYPCpbvhKvWT0vFSB8lNA4bP85kyPWBVQBSpXgYLCpwJo5V44emaqQDkpoPBZTrOlx6oKqAKVrkDB4VMAlI8aB1rpl5OenypQmgoofJbmvOhRqQKqQHUqUBT4FGn1BlCdF5metSqw0grod89Kz4DuXxVQBVSBvQoUFT7FCqoWUL0EVQFVoJgKKHwWU23dlyqgCqgCyytQdPhUANVLUhVQBYqtgMJnsRXX/akCqoAqkFyBFYFPBVC9JFUBVaCYCih8FlNt3ZcqoAqoAiVo+ZRD4g2BQ93wepmqAqpAIRVQ+CykurptVUAVUAUyU2DFLJ/+YeqNIbNJ06VVAVUgMwX0OyYzvXRpVUAVUAUKqUBJwCdPUG8OhZxm3bYqUN0K6PdLdc+/nr0qoAqUlgIlA58KoKV1YejRqAKVpIDCZyXNpp6LKqAKlLsCJQWfAqB81DjQcr+09PhVgdJRQOGzdOZCj0QVUAVUgZKDT5kSvVnoxakKqAL5UkC/T/KlpG5HFVAFVIHcFShZ+BQrqFpAc59k3YIqUO0KKHxW+xWg568KqAKlpEBJw6cCaCldKnosqkD5KqDwWb5zp0euCqgCladAycOnACgf1QpaeRegnpEqUAwFFD6LobLuQxVQBVSB9BQoC/iUU9EbSHqTqkupAqpAvALF/O6IbjknK/lrNt6U1Xq6kiqgCqgC5aZAWcGnWEHVAlpul5keryqwsgoUGj6zBc5kqiiIruz1ontXBVSBwipQdvCpAFrYC0K3rgpUogKFgs98Q2dYe4XQSrwa9ZxUAVWgLOFTAVQvXFVAFchEgULAZ6HBU85PATSTmdZlVQFVoBwUKFv4FADlo7rhy+FS02NUBVZOgXzDZ7HAUwF05a4Z3bMqoAoUToGyhs/YF3PN/gqghbtGdMuqQNkrkC/4/OpTl5mm5nrzxv77i6rJpg9Omft/c1tR96k7UwVUAVWgUApUBHyKFVQtoIW6THS7qkB5K5AP+Pz6nz9qGhrqTH1DrXn9M/cWVZATPxwx9/zq1qLuU3emCqgCqkChFKgY+FQALdQlottVBcpfgXzA57cHrjB19bWmttaY1+68p6iinHzZtFmcjyqAFlV13ZkqoAoUSoGKgk8BUD6qFbRQl4xuVxUoPwXyAZ9bbzzLPHLWqaamxphzn7y7qCKcdsWsmZ9bNHf9/Jai7ld3pgqoAqpAIRSoOPgUkfJxsymE4LpNVUAVKL4C+fg+IHxybH35afbx3B13FeVEzrh6wcxNL5iFRWP+8KPfFGWfuhNVQBVQBQqpQMXCJ0XLxw2nkOLrtlUBVaA4CuTju0DgMwDQU+FdMea8AltAz/5XA3f7opmNLFi3uwJoca4X3YsqoAoUVoGKhk8F0MJePLp1VaBcFMg3fD7yslPNIuCT/1kAFF7wbH4TkM79coNZgJt9fiFq4dMH0N/fqNbPcrnu9DhVAVUgsQIVD58KoHrpqwKqQL7hcwtiPwmeUZg/FxcM4jFhmcTfbxl6MGux3/nzHjM9NWcWZgGdAM9DBp9JuK1rv3Zn1vvQFVUBVUAVKAUFqgI+BUD5qIlIpXDZ6TEUS4FUxdCrpXtOrvBJHbdtn4ubtodeeooFT0LnIvzhfFyApTIKS+h0ZN5aRBcBkXOwXNKKeWn3E3b9TzyxP+AyauZnFs305IKZJ2zOYt1ZxHViuXWP71j28lD4LNanR/ejCqgChVKgauBTBMz1JlSoidDtqgL5UCAVbKbaR6XCaC6fe9E0EXwSIsPguQDYnANEhuGTyy4AOC1sOvi0ywE8BUB7Nm9PNUXmmg/3mkqdp5QnrwuoAqpARShQdfApVlC1gFbE9asn4RTIFToTCVlJgEP4fOY3R9nTbGqqsclC9nnj3jOX16IGtZTcaGowphHLy/AB9MHTTzF919yW0TU4csbGpPDZcc+jaW2L8Gm/xzbelNbyupAqoAqoAqWmQFXCpwJoqV2GejzZKlAI6PSPpVwAp//2lwMkAZUOHBsBjfjDjvqGGtN43ENm5r6NcTI31O2FSr6BSkYJB4vKJ4JPvnbzHdNZTd3uU460bnexfLb8YWva21H4TFsqXVAVUAVKVIGqhU8BUD6qFbREr049rGUVKDR4ys6PQ1/xB1a4r/gzvwVcwgJJSyQBs7E+ODoCY0P9XksmX6urWypb3bEPmcWHjsn5igq73rOFTzmQHRsPNY23PZL2cQl4ygrl8uMg7RPUBVUBVaAqFKhq+Ix9gcMlpwBaFdd7RZzklx77iPmbmYeLei7FAtA9t7zcurkJmRz1AEv7CCulb5msc9ZIZ9y0XYeWG7XH5Ac+uQ8fQHOFT27v6YH4RKZk5xEGTy73i99GzDkf0J7vRf0w6M5UAVUgZwUUPp2EuSQk5DwLugFVIAMF/mv3x8ybBh7IYI3cFz3+4ilz369vy31D3hbG7jjbNMAlzlFHSyZIss5zhdeGgTIFYOYbPmsO7TGbf7THHHO0FxjqdiIAWiz4TASePJSvfm/CvPy0ZjM2umiGx6NmCI9/+SGF0bxeqLoxVUAVyLsCCp+epAqgeb++dIMFUOC/hz9uzn86v0XNUx3mSZdOm7tvyq6v+MDvzjaNiMdsEGumA8x6Z72kRdOPq0x1LNm8n43ls+aATrP5poGE8MljIIAWAz4TgeevbomYl7+0xbz/6gFz3UdWmcmpwAY8OR7Yh4fHFs0o/r3wndnNWTYa6zqqgCqgCqSrgMJnSCkF0HQvHV1upRT43vgnzOueuruouz/18hlzx49/m9Y+J/54tk3y4aC7nEPgMpV7PK0dZLFQVvDZ02iiw7NmOyDzsMMcOYf2fcpHp82bjkzPbZ7ssJdzuyezeAp8XvWFMXPFezrtpudQvskC6GQAoBOwhHIQQgmj256aN++66ndZqKerqAKqgCqQXwUUPhPoSQDl0DjQ/F5surX8KHDj5CewoRpz7o678rPBNLbywo/P2iLqYQCdvAuucxeXWetAU+IxvYpFaeyhsItkBZ9NtSaKjHTCJ8swHX54YgDlkZ/6sRlz4eGzWZ1EGD6bX/s8c+WBu5Ju65s3Tpq13bXm09/aY1556ipz8Ts6liwrIGohdDIKEHUWUbjlR/HvEYDou69WEM1qwnQlVUAVyFkBhc9lJFQraM7Xl26gAArcOHml3Wqx4PPMa9G9B8XQZwFiN3+sAUlAe2MzrUXTZf2IVVOSgApw6llvMlP4HBhYML29daZubZOJDsyYRx+dM/O2g5Exx25cGgMqB3b6lXOmvrnWvGbDVMpjfWjtgaYO4Qh1sBI3d9Sbfznu2WXXufZLY6a3s9Y0IyHrLee1WZf7Ifs0mQ+8bSl8+huajVlEg5kZhxWUYwSPIwDR0y9S13zKydIFVAFVIK8KKHymkFMBNK/Xm24sDwpY+IQpjtY49hZ/7c578rDVpZv4qy/Vmzm0iZxHy8hFtIqciyyY268MrH9+7k8pwmb4bDKGz8EF09FRa2uHMvEo+tiweXjrrIXPBQehJxzXlLbu593QCMisRThCnf33zdeNpb3uZdcNmZbGOvyrsfD5rgvbzTnv3Wk2Hdpp9ltdZ979puXhMxGITkwEszYxvmCGR6MWQvtGFs3rP3pb2selC6oCqoAqkK0CCp9pKKcAmoZIukjRFBD4pBucABr0Fo+aN+y+L2/H8PpvtpiZqTnba3wR7SIFQH97GVzRedtL8TaUDXy2tiBJCiEFjZ0oHNpab6JDs2bzFgCog8/p6aiZgaf9jNObC3Ii7/z4HtMCK2drS72Fzyvf12X+eM+MufxLz5qjDmo36xGTuq631rzjgvas9i8WUYLo+BioGmN4LGqGAaEv/Vu1hmYlqq6kCqgCaSmg8JmWTLD0aBxomkrpYoVSQIrK//DAE/dCpwNPAVA+srf428cfyugw3n3LGvQYh2t9cg6JKwvoPY6e4/g3j+c+gP76wznUO8roiPK7cKbwyb2PI06SBevrUPOpDhDaAMuj2a/NRHdOmHvunzECnwJx03BvE0bf8FetGR/8qW95wiZntTTXmdZmPDbWmtYmQKeDz2vRUvOl73jStACI13QCOlc3md62etMNS+hFsITmMnwItecNEB1m6SZYRPsBohf83W25bF7XVQVUAVVgiQIKnxleFGoFzVAwXTwvCvjdjH52cyTpNvvPOwnwCQAlPNJiKc8tSEZtX3G+Nz0+b+Zm8TeXm4FLHe8RPgd+uXz90B9eHyTjldvIBj6ZmMOY1hrCJx7rAaKsS1rThj+6mk302SCu8xe/CeZD4DMCLaenF00EIDoNjacQK8sxNbtgIhFoPzOP1wJL4xS0n55eMJNYPgyf//+n9zWPPzFvPvzZZ03f4JxZ3dtggbOD0NnRYLpaa00PQgOytXwmmkNeE+NIUOIQCB0aCSD0DR+7rdymXY9XFVAFSlQBhc8sJkYBNAvRdJWcFEgXPv2d7DzruKTwyb7iBFHCxuPfSD9rvprgk1oyFpKJVDX4D63KfKyrBbSDHRuQeNWM5KL6Hrjkx+at9N/58ZTJBT5/9/WDzO49C+b7v5oy92+fMLv6ZmBNjWI/daa7vR7AWWfa8K8DrvhOQPAl7wzKLOV78LrgGAOISoLS8MiCefSpBXOhQmi+5dbtqQJVp4DCZ5ZTrgCapXC6WsYKhHu4L2f5TLTxx154rHOh77V8Cnxu+/IfMzqeaoNPisMYyEXX23MBsbW0JjMWdA6PhNF65GDNEhBRmoku7PVr6yzUN61DndCR5DVArbUZEHvbH6YBmnOwiDLph4/zpm9s1kxHYJHGPprhhqe1sw2u+LaWBtPWBtc8kpc++YHujOYum4WXQCiCjOmSf/RJQOjlt2WzSV1HFVAFVAGj8JnDRaBxoDmIp6umrUCu8Ck72rLp6Jjb/YHP/G/a+/cXrEb45Pn3I/t9AcZNJngxrIEwOoe/G+qjAE5jrZMcfJydMTY2cxou9Rn8m0JiEkeEz72/J/E6X+sbmcUygRueADo0MW8idMXDRd8Ky2pzS63paIa7HdbPJgAuLZ/XXtyb1fxlu1IMQr3kJLbyJIS+USE0W1l1PVWgahVQ+MzD1KsVNA8i6iYSKhAGTy6UqeXT3/ADG4809177+6zVrlb4FMGefgalp2CxXIzC8umAkyDKeE9aP/mP1kwOgibhkv/s34DNSf7tYHQKYQ9TjP9Ea0xaO2cRozuJ1/g+40AJurR61qEPaTMTkBBv+i3Ega7kUAhdSfV136pA5Sig8JmnuVQAzZOQupk4BfINnzf8fCAnhX34vPOuGfOD30+af0YmdqmPbBKOljunxx+fMzOweNJ1zqQkutuZ6U5LJy2eTE6K2GSjwOIp8DnFRCS8FsApwBOQGcFrY5HAPS8JSGNokcmsd45WuNl//rnnlJTEPoSOsX3n6IIZGg4Sk954xW0ldax6MKqAKlB6Cih85nFOFEDzKKZuysw9cI7tJpRoZGv9zBY+E1k8CZ/PohPQuedkXlqo2NObb/iU47//wRnAZw1AFPGZgM1pgCUBkoPxmtbVLpZOZ/WMuOz3iVm41xHXOYlC/hwTyICPwPI5DXc7IfXObx1cbJky3h/PecwVrLcQiqQkZsezYP2bFEIz1lNXUAWqRQGFzzzPtAJongWtss0tbD7HlvUxABpWc2cHI/YWP+ywpX3FswHQbOAzEXjehHJPvV215uLPPW3+8M3Sh6RCwWf48rz51kgMPmkZtaWWAJIcYgWNlV6aDiyfE+gcxfGta/cp26s9DKFDgNBhQOhDO+bMxdftDfNIZMlPddI1G29KtYi+rwqoAmWmgMJnASZME5EKIGoFb9ICJwqMx/Ws5PnCdRuFRY3wyZEIQPl6JhCaCXyedtVLzCXtf0qoPOHznLNazLvQhefLn1pX8rNTLPgseSEKeIBxrni44TmYlHT889NvQ5rq8BREUymk76sC5aGAwmcB50mtoAUUt4w3PXHXK0wb4vlqwsDp9a2kxZOJLHVHoK/49mELoExkOfLIpRZQkSIdCE0HPjddcpr5+H47Eyr8hW+O2ySY9d11ts7lA3+aMx95V2FqTeZzihU+86nm8tsSCLUdoQo0FEILJKxuVhUokgIKnwUWWgG0wAKXyeYn7zobPbprA+CkW52D3tgQcPqnw/aNLYA8c3CPefRHuy18LgBKNx7VmPKsz/o0uvOgFiUzpWlVrUNdyPqGOvzD3+gTbp/bxxrThOLl9QCFz5ywe9nt/uMXRm1HHcLnX5/fbl578Z/NaRu7zIHr6sx5ryztuE+Fz5SXTNktoABadlOmB6wKxBRQ+CzCxaAAWgSRS3QXjHFje8YYcMpxunI8tHAmG5MowdMI62JjJwD0IFhAtw6aLY/MWghlPcl55KmcenL+XJrJjuND1wwg87retAJQCZ/veUuHefm7d5pNh7Wb/dY0mg29tQqfJXr9VfphHfeBKfPAb2+r9NPU81MFKk4Bhc8iTanGgRZJ6FLYDYDTwOq4ZKQBnP46Y+Ms2RMNLKZN2N6+nSa6Y9Q8+NBsDD5Z6odlfs56SUtez/x8WDXbUNScXXtamtBRB/D5jx/sNu+44lkzjgSZ1d1NZn1vk+lphwt+VZ05/1Vq+czrBJTpxr61+vnmTQMPFPXoj/sgAPQ3CqBFFV13pgrkqIDCZ44CZrq6WkEzVaw8lrdJQxLjRu4Ug2aGwOmfLfuK02VeWxMNXOcwgDauQsxnV7OJ7powf/jjjK0zSficdpnV0mmHWdYs8/O+t3akFPDsv91pi5pznTaAbktLnWmBO17g84ufWGe2bp01H/jXZ2DFrTX7r24yXV11prOl0azphiX0ze0p97HSC6jbvfAz8O11x5kL99xf+B2F9nDCxVPm3l8rfBZdeN2hKpCDAgqfOYiX7aoKoNkqV1rrxbLUAYU2Uz0PwBk+w1EAKNqHW9d9XS0KmgNCGwGGda0IHIX1Mbo7Ylf56a8jFh7D8EkAnUbxcxY052CZH4LmFGpKBt10gjJAieDze5/Zz1zzxTFz7/Yxs2vPrFnVU2e62xpMZ2uDWd3TYNphFe2GG/6iNyp8ltaVWfyjIXjWI774/KfvLfrOT7p02iyiO5QCaNGl1x2qAlkroPCZtXS5ragAmpt+K7r2I6+0ZZBig/wWMJyty5nPMTTs4BMAuohNLy5Ewbn4H9hzHkXMm9H7u6UZFlHAoOloNNFnp+zuv/KdiVhrx3Tg85f/EXTQ6etfMDeijNLWp6bNzr5pgOuiGRmdNz3d9aYZyUrd6Cve1lpv2mEd7W6rN5ddVPqZ7jwvtXzm86pcuq3v7Xu8qWFyG67Lc3fcXdidhbZ+6uUzQctTBdCi6q47UwVyUUDhMxf1clxXATRHAYu5usRxSqa6MGZgUMw7dPqnNggAjZI8MZhsRL5dwM2Wr9Dt3oh4UJa3oWuels+WFjy6rjq9iMe0Pcdd1x22gKS1k20guexju2ABZUcd/L0T1k1aQMfZaQf/RsbmrTW1q6MecZ81ph0xoK2M/wR4trUEMaDlMhQ+CzdT39//BNsUwTZHcMVqz91xV+F26G35pVfN49peRFkyJODhs3D3TbcUZb+6E1VAFchNAYXP3PTLeW1NRMpZwsJu4FFYOf3cIRJfEYAz0UnRKjkPyyetrHM4BgIpOjRakGxEghNbPBIoeYgCmxFAKMGSLSA52OpxCsv0DxEwA3PtBN3vSCIaHgOZYkzi/YmJeTMJSOV229tRXgllmToAny2NQUzoZy5bXVjd87x1hc88C+ptbtu2oAkCx9ZXnGZ/HfEH0nlPFdYC+rLraO2MmgsPDKz9HO/81O8Kd6K6ZVVAFcibAgqfeZMytw2pFTQ3/fK6trjVHbBZfzeHJA/J33ndaXobe/qZebjeA5f7HO758DTCshlA5AIeaNkkjDLWk+BI8LT9xQGUHBFn5YygBznHJCyco+PoMY6YUMaB2tcAsZN4jVbPVrj129qCBKQOQOcNV21I70DzvFQNA18zHd4qNUdvNtGHj810C7ESWVHorSOxAj58yhIPv+wFFkBft+uevMv22q82mZmpOetmf+2GibjtK3zmXW7doCpQEAUUPgsia3YbVQDNTre8rUXoBGTFBu+eZA66ulcQOJOdH2/6C7CEWosnQJRuT7rYpwGWhE4OguccwImPFixh+eRzWj3nQKvsOx7xEpDsMlPsOR5Yr1pRUL4VcZ4/vn7/vMkc3lBCrEwGm36srb+hRBuRHw9YruawB9Ep6nnBGhI6EV7fxe3GHV8y5oXm4VGtgJoIPqnN5jNOsTHKdInz8c2DuZVgeusPOk0E0LkwtwgX+4J5dffIkjlQ+CzYx1Q3rArkVQGFz7zKmfvGFEBz1zDjLTz2qvhsdVKXuNZLEDoTnR/LLjEJie72iCuzFMAn/xEy98Io/6ar3b4PdztjQJkNz+x3jqkpZMPjtT988+CMpcxoBcdvYc6UnC1bnD88wvApwJgISpPBZ8JlPSJlX1MZKF0HGmAAACAASURBVC21ZMhLgKC4IYfrrMyx9/B6NAGsZqRVCS+cDD55yPe9+KQYgC7AUrmAH0KERz5/j9mW9KwuuX8DABPLsVrD5ALWwT9cn3N45Osvb+xPuK7CZwlfKHpoqoCngMJnCV4OGgea3qSwe1A2w7bl47ooFRSL5xTILDPoXO78v//zKVhBA0vnpLN8smUnIVNKL0UifH/efO0fC+tOF54THmSIgD+CZJVgyHuJuI/vs9wUB61pMuS1uI2iO5SMmsPhdn/Uud3d+kkPILbRJOr6UCzXTZiTBUz910NQWilAmg18zsDabiHUWjGRLIRr0j7HDyM+ZwKdwCeT6gieAqAvnn8m6WX/jgvajbbdzOZbUddRBYqrgMJncfXOaG9qBV0qV7bAmUz4GikMX0HQmdFFlq+FPS+0wKNYNBc863Gte9EHRx8o+ZxhAhz1iSARr7PYvgzGvtplE3SUqvVCKGqOBHxuXQY+PVC1JmSOZC5+n4rFTJvISkshZFtywMwU819zcbZ8u1xhdDn45Hnd9YITrKXTt3py3rZf8z/LXn31L9toLZ+Zwic3qgCarw+2bkcVKIwCCp+F0TVvW1UADaTMN3T6E0T3binGdObtIirAhvxypr6X2mbju0FGW3BQ7x+CjU0Nve4DJROpZDT4UOhe9JflS4STej9W1y3X4AFp3bEPmYXNx9h3fCiN7YjLhmHTN8fKgole43tJQHmJ9IRl35PvQh3scrSSwiIoo5xgNBWA3nHiJgufD1x+a1ZX48wJR9j1Thl9Kun6tHrKUPjMSmZdSRUomgIKn0WTOvsdVTuAFhI8s5+V6lrTh03WGpUhlkcx5tGF6g/WHmUSVNxrAL3wa3zft15KpyYfIGUbDfVLk33C8Em3LTtByWg6fouZuXej/VOWjYPQBJZTg6LpS4a/nJh2k4FnsriB8EbnIahsa9YTl8s5GC0HEF0OQD///aXJQdl8go47tEXhMxvhdB1VoMQUUPgssQlJdjjVCqAKnit3gfrAKZDJo/Hhc9azUrL9J0s9+aMe1kRm44cHXeosCRW3bMh6OYukp4QWzQRWzkY0eAqPVPDpL5/QGppgPxZIw7CZyBqaCFy5w0Tu+XBXLD9e1HPLx6yiTGAKJzUV+TKpWdNsov3TcXtdSfj0rZ5yUGr9LPJFobtTBTJQQOEzA7FWetFqS0T6r2c+Zt40lFt5lkznbNMHp8x917dmulrFLO+70Bl7SVaiW9sfBExaNDlmfLcx/q7DCkuhEsshsSkRaE6j7qiMRom/9RYU+Jz21mdHp/BoSASKWEi22fWCLWb0jsDy2ZACVGXbdeHj4T4SWkM9C6nAZaLlElpCoYuf7i8TIK8huzs2CKJy6r57foVAlLB5xBHxYiYD0EJaPhOBJzVT+KyYryU9kQpUQOGzDCe1Wqyg3x36uHn9M/cWdYZO/HDE1s6sJgANAycFp9taBnNk4uDTWSzrXDzmzNTeZesAaD5QBrDnuit5yzU2xm9zAu81J4BK33rJNaawXFNT4kuiKdH6DiDXvuQR03frUQF8JoDcpkQxo1iuPrzNZNZQbtgHzrAbn+C5xOrJONMQSDM5y1/OLwtA97yMBBbRYltDE8EnDy8RgBYKPhOB529unzZnnt5sbvjuhHY8Kuq3p+5MFUhfAYXP9LUqqSUrHUAJnnW4gb92Z/47pCw3kSdfNm1b9v3Tq2vsDaySh0DnrGfZlJjN6ZD73I/lZHkmC3EuQWciZNVsgjGMMOkPgbuJqeUtnb57X9ZvRkvP8PABVPaVCF7ltQPO2WqeuulIu5lEllOxkLKHvYwwpCYKATAE2YbQ8YWtnjaZKbRMLF40UR1R91pcvVEcld9lSX4RMNiWHQY4ULNVRqFBtObgLrP1pgG0bTXmsMMSmJJDEFoI+Exm8RT4/PdvTpj3XqvtNiv5O0zPrXwVUPgs37mDt25/dKHZVcZnkPzQvz/297Yf+blPFrY/dPgITrti1vzDWQEgVSp8Rh2jzDiYmfVAcxpxllIzcwbPZdDi6CcETUwG74lVc9KHSmcd9AGUQOqPyUkkBCWwVDY5i+hknJV0qZt9OdD095MOfCZy9yeMIQ1ZTBtZJzaBFTVmAfWh1AdSsXb6QJoIRoXfhU/jygrQXe/O1C92HwLRQkDowNCiWfNcxHwOzZrt2+dsJ6zDD08MoCdfOm0a0aL1eY2jOX9Pdb7u+aalvc58fL+dSbf17R9NmQtf02r+4u07zIUvW2PGcZ1+5PrlSzrlfGC6AVVAFchYAYXPjCUrrRUqNQ70xolPxGLhzt1xV1FE/4tPsl901Pz9GZUJnzHodJZOFqAn4BM4ZYjLnFZnAqc/uLw/CJc+pE1OOItoCCrH8HpryM3O7Qgn+dtsCRmbR7Gub42UZRO9lsgd30RAxNh4/jaz5XtBuZ6WkNu+ES1Ew6MpAVQ2wgIbPr5wWIDdTnuC+lAConGueUeVvptd6kj5h8T3w7Wt/Fqh4o4nhMZiQuOtofmE0JGRBdPVVWdqD+9By9Jh8+ij+Nxg10cemRhAKclpV8zgh0qtaWipM4fPDqb9ea596UZTj7loBnRefcTTSde77oZx09NZY1qwD8Lnh64ZMEcc0GwOWFdntjwxpwCatuK6oCpQHAUUPoujc8H3UklWUB882Vyd993zCmwBPftf0TEHhbAvPWmvGbASLJ+Smc7SRmJcE4hktyMOuk79OM1xWCU5CFa0HPkjnM1OsGwJMccw1gm7ykcn8FoISlsd4I14+2hNYA31QXME2+FItFyi15ocWJ7ytu3mzq8fljCutCUhfO4969a2ABIJn0sg1Tv3ZtlOImtoW0gkiQllOQAZYgn1E5MSlXHywdSrqxprDcXtSaLSdP4hdHhk0bS11JgmAKg5GAD6yKDZunUOtVvRiQjHs+n5SYJyQ+Kd89kaWEXrUNGA/2pNXaN7jscbXjmU1nfm5deP4IcN4BQ/Mgiff31+u3nV+3eZEw7tNPuurjPPh0V2EMdLAH14x6T5+o/vT2u7upAqoAoUVgGFz8LqW9StVwqA3jh5pdMtAE/bIAf/YZHqC57NbwLSuV9uCNr64aZJ+Lxk097yMeUOnwRPv55mBLBpQdNBp2/ZZH93GeIulwLvYtHk+7RCETj9MR3KeOd7YUjla4RPQqg/4sByfDEhVCaCQwHNEe9YEllD2xwQnvXex8zNnz90ieWSxxJOVOpsrzXi/veP1brZQ4Mue4KYP8KxonUdieqF0mUfqmpPEA3Hhkpgrb8DsZ76yUj+lPgZ8mIVjeQPQul2b4WFurWl1tTApW726zDRx0fNgw/NWvjkLueRpHbqyelBaDZfkm/72LMWOFd1NVn4vPw9XeaOu2fMlTfsMUcd1GZ62hus1fNFmxotfA4OL5r+0UWzeceM+Zev3ZnNLnUdVUAVyKMCCp95FLMUNlUJAHrXf56xRMonX30qenmDQQGh87i5vmXowZzkfvP32m2/aPaP5vYIoO8/ejJum+UKn761kydE6AweA/Cb8cozjnswOO1luI+PB+tIrOawt1wTLIBigRTBpCi8/N0MIBgGTPqj1bMwjrj3wsAoUDnsQSVBJzxaE4BgeFu0qLY4K+QFf/e4+e4/HWIIo90d8bCYKEte1vP320TQ8kZbGyx3ISunD60tgDOOJSWbaN1NVIopHJvQGHLf0/2esIQTduJLjR9RdvjZ8QKkhFCawKeCEgbZuOMJn7wuGCHQCk1qOK+wYEbHgm3ede+MhU+W6GIyG42vvLbOf1X2JczOeOeTdtstcNu3wCLfhv0JfP7jB7vNu/+h3zwzNG3WdjSadaubAJ91pgfz/JozW83o6IIC6NKPkL6iCqyoAgqfKyp/YXZeznGgLCp/930zSYXZ/rKTLYDSwhKlmw832mlk+S4SHpu2J1zv4nvXAzQBrYRNPC6giwxhc47Q6QHo/z1sPG79coNPgc6ZmQA+phxkxv527nT7npehLslDfD3igakApwDoiFtfMtcFIC0UOHf50NheCpLXZDkfPrnOMAA3HH/J1wk0MgiwCV3siYDUwZ4/iYngM3yRJLKYxlzo3sLNiFvt7Ii3VoYtpEyiamuNh1s/LrSx1Z2bX4qJIB22cPJvPxZU3PPhZKWwUVXk5+uSiCTgyThR6Qow7epnZQmhI7Ai0khLSzpZlklqPM86nt8GWEJ3jJrb/2c6Dj75A4UQGkHsMP9xsKrC1Mw8/uFz7GqXTqGM1CQ+l/yxxNe4TpubWx8+v371BvPR64bMnVtGTW9Pg+lFaAN/GHUi5nZtd73phcX5Da9uNRO4zhRAC3Ov0a2qAtkqoPCZrXJlsF45WkFTwafIvuVFJ1jwnMMNlu54wucc/rYudFhbFnAzs7CJ5/N4bpdzADozMZ8SPssNPGlpmnXub4HOiIulZAynuNDHfEuns4gKCPKxGQDhWzkJjr5lcAjQ4cPmsINNP55TrKK+9XB4cgHu0XDz9CD5x9+fhc+QVXOvi31vKaGWNCyf3Ja43S+6eof50scOAtguTS5KldDU3RkQHuHTH5LMJK91tgPAkhTAb/eA1C/ZVCvA7GfGNzmdxAUv1s4wgHLH4TJPfI3QamNV3LCJSOwW4MjUb0tFCM0CQBn3KTHENXhSW4PPHDbPBDZeawyVqAEQmrZGE3160nzvZ1MIxcgNPn/7lQPtCf3r18bNA9snzM4903Z/HOtXNZrO1gbTDotne1O96YRV+kNv77D75EgEoLsHF8yl/6aZ8PFXtf6lChRHAYXP4ui8YnspJwCVVprLWT59IR98waZl4fP3n7w9bd27Tj3CXHTQ3v7T5QKfhE6OvdZOJhbVGB88+T4Th4RdeCPmGAKISu/0Uc9FTleyb9Wc9CCV6xEuCakyhh28tHjWu6HxOYDeUtic9oujYwOtzXtdy8NjQVxiOMaz3VtG9lmXoKVlS4KMeoHN9//zk+azHzkQcYpL4bM1QSJRF0AyPMIWWIHyTi+mM1EJqJ6eePMkKwS0igXU7aSW7ntfLwFOH9h5zr6F1H9PdmGTlTzwJITGSjK512MWUXfxSDxohhA6hDhKGfRGcAA58SMwiC2m252dsMSK3NNdZ19rWAsgRZmmdMYYftzcfueMeeCxOWshJXBO4UfW4FCQ4EQreSeAsxladMIlv6q7Ac/rzSfe2xnbfDIA7cMPqT0KoOlMgy6jCuRdAYXPvEtaehssFwDNFD6p9D0nPD/O8vmrD/0m6wm49E3rY+uWA3wSPH3o5MFPOcvmZCQ4FT9bnTfyRrh7CZ0yaLkUN/qQA1DGa3L4LvRIqIVjxE9qcRvzk5b4EuFzZDQeMpodYI0ATjlaYKUKj/q6+ISm1taly7SG4yG5rTzCZ8JwgJBVk1Al8C7n4LvhuzrrYjGz/jl2L4FRWExdRn1sOSTMxI1wSQHfLS+gStb3SzARQsU8KTVCpaEALYYIP7Fj1oPQDAGUqw8A4Lh5JgfSCxHFcwIo/5YasjNuv4RSwuAMImsYi9zTxXasDBGJAi6Ded+1Z97wB0/ERd/0jcxYF/wUjnd4fD7mnuf2eT21A+RZYqmD8aD495nLVi+5pnwAZcjAEMpFMQlJAXSJVPqCKlAUBRQ+iyLzyu+k1AFUwJNKpWv5FFX/+PznmZ+8+5c5iyzwGQbP//7plHn9X2afLJHzgYU2INZOqc8p8XMCnpKNPo6kHbbAJHTKGILVk5Y3cZfzdd+yyThMDonzHJoMwIRWzaGxeJCcdrGlsm2CwKizXtp1nGt8aMJlWuO1VnEp4/kswiQSQmQC13gYQEsFPsNzK/VBJcxBQF6Wo5W0IQSxPV0hyyhB1I8JpeXXL7lE8Ja//VJNfigCIVQ267M8KZHvSVLSEgCVWFAUj8+gZ/zuPQBQ0OACpppGUBv6gscZACWTjmLdtBjzibhigmbU1S6dsiAKuHTwSRAdmlgAkAZwHEFMN62eI1hmZip4bSLCjHtAJyzZbbimeF0xBnS5kQpAb71/2Pzidw/n++Oq21MFVIEECih8VtFlUcqJSD58ckoyBdDLv/hszjOZDD5z3nAeN+CDpyQNTTpLppRIInTKGAF4EoQInTImcePmGPSgVKxMweuzsCh5ST8jATwyu1gslvZv5/YddHDZ7v6OAauXCT7j6lG2hVzclQqforVkw/sGXr9kUwcysqVLFNdhbGhcTGgsQcnNh8A7rZ2+C77Zs5RKtIPNBvIuPl4C/Ft+i6QBoFw7Ewh9/Il5G/85h0uGLvY5zDtDTFnyi0lJhFH+WCJoSr1Z/h1YOl1VBvyomUAsaqxKA8BzFAAqCUg8JhreGVLBHzw//ez+GX3CCKEMPUlkAWUt0G/8RGuBZiSoLqwKZKGAwmcWopX7KiVnBR15vdn8qyFzzNHxftNMADRf8FnK7naCZ8SBo9yYBTzZCYhDancSOjnoShfX8NBYYDWy1k/nyR5G8pUFSRAqoVMG4y/9QvEETAHHQWcNbfaSXUbhDm3xYhalX3w4a7xa4dP/zpB4WakHKl2i2l3sqFhN25wrvlbia+FSjo1w0XqBTwFSsmpc+04HnnFWUPeaQKjE44obnslIk8EPj0wAlMtv2xbEZM7jHztZzRI6AX31cPcTPAmaUtqL4ElrZ8yCz+x3WDkjzvI5HoEbHnGezHznchyMGvjd1w/K+qs4IYAiiWrP0IItRq8AmrW0uqIqkJYCCp9pyVR5C5UMgPa/luRjNt80sAQ+qXq6AJoP+Pz1/3fgkon+1S0R8/KXtpj3Xz1gPvuxpbFkxboyfPCUvucTsHiSLwQ8xx1wjru2mBLDOYAYt5gb3VlArXXTWSEHR51lE5ZLSfrheU2KS9ad5LTXQ3x4ZD6uJBIXSZQElAo+uV7Y+pmwqHwo7rPYbvdE5Z4SlWMKt+VM1DfeT9bi+TfiN5dv/WQh/w5ka8vgj4dmFL6PjXA8KLK87fATkLzwBnuRcHOZWEEBgHbkAKD+Z+OW301b2KQxNii1xEcpCSbll4K/J1hmyVk67d8oFEpg/ennMrNwpvpsKoCmUkjfVwUKp4DCZ+G0LfktrziAEjxpqZmcNdHhWbN9+5w57LDE/aFTQWgu8PnSq19iPrp6R8L5Evi86gtj5or37M2gLebkMnlj2tXl9MFTMtSnXP3NQZcwROhsdDGBBE+O4fEFxHoGACMWzknc4GUMwdLZEnObBxbQJszNqCscbv9GWSBCpwxasfzBZI/wUPiM1ygMntSL8BmnYyj5qNeLCbUQ6sd/tnjxn+Lb96sDcM6lXafwaziRP5kbPg5ApSh9fOOAYn4O8r2vpDGgagHNt9S6PVVgiQIKn1V+UaxYHOiec4OsFt4Yd49btx7hkzkIh6Mfc6Jx0qXT5t/fsLQEDpfNBj5P/diLzJUH7kp6BXzzxkkUqw7u2A/vmDcXv6Oj6FcLwTPiLJmTU4tmfIyxc7B2OtAcxd8cjN8MYjtdPCduoOJuJ3hyDMDCKZY5sXBOeAA6Ate59EJnNrDU2xQX+ryU03GJIgnLHYUAVOEzc/gMW0HFDc857ACY1rlkpAaBVDK/nw0vz8USSsunZMTzck78EQoqNMVqgbofJgqg6oIv+ree7rAaFFD4rIZZTuMci2oF3fVqY7rYoqbWPP3HIbN+Xb2pW9tkogMz5tFH55CIGzVHH5mgbo53HqdfOWfqkRRTj5tqDf7V44Y8u/mJNM7UmE3vP9Vcs/GZpMte+6Ux04vC4qzZ+Jbz2swFl/zZnLqxy3zgbcWFzzB48oAJn+yPTmb3wVMAlPGD7GUd/A2YdNZOgifHlOtsMwDQ5GiGboROGZNej/c2JLvMuBg76dIjcXiyfBhAw9bPaoLPsMudGoXd7ulYPn345DYkAanB/Sbjtd7uwJPJ7jW+pbTd9VMX8OSF4icpETzjk+sdjbpgUIkJZRyoxIAqgCqApvXNqgupAukroPCZvlYVv2TRAHT4fNxRedeE0fOuYdMN62IzaiKa/btM9LFh8/DWWbTPRM1AQOhxx7qbaRrqv/qL9bhRwzKEf/VwGdt/iGv82qv3Fo9fbjOXoVUfXc/szEP4fNeF7eac9+40mw7tNPutrjPvflPx4JOZwpLNPgWLpw+efM5MXfsoLneJ93RdjQieHEOAzgbo4ZdJmnCxdiNwoUtRdKnjyWLhhE4OwpS4+0U3hc+9V1AYrLOBz7DLnVtPBp/2PVi3/Wx46b7E9yyE0srpW0ElEUkAlPDpW0ETBYI6y7Ytx1TFADqAOqD9zgV/ywMj5pe3b0njW0gXUQVUgXQUUPhMR6UqWqbgADoI8OSN0BW/7r9nyHadoYu4kQCKxBJ2P9m8BQBqe7gj5wHWtxmEIZ5xeoKG3nmYm3d+fI/tTd6K+DmBz8su6jRnvutJc9RB7WZ9T6NZ11tr3nFBex72lnoTBE8Owqf0XR+DxVOeC3gOOJf7qANOaX055gqFEzw5mC1sQdS5320HIxe7SYCSLOOernqUv1mIuea5jsJnMF/pJBzlAz6XA0+BT7mCCKHsIMQhCUo1/LvNxd5KRryk0/M3hVhECaA2CSmJD76qAXQRP+5QaxShJwKgm3fMIPRmQgE09deXLqEKpKWAwmdaMlXXQgUDUMZ5snWMV0C7/+4hCzt1uF/W48bJWoANq2DegVs+unPC3HP/TAw+JfZwGnBGGH3DX2VX+P3Fb9thywKxTmALLKOtSNQQ+Lz2w73mvVf1mx27p8yaTkDn6ia07as3q2GdvQiW0EKPZODJ/Y7CujkMiyeNxgKeg6NBbN6Ys4D2uyLvk64cUr/rJDTlSjRNoGRSLVyxvtVOug6x+9FMqHNRvuGTx5qq3FI62e4WCENdjgrZ4agU4ZMa2M+LK8XE66JVXPAEUHGviyVUrKAEUN8CuhyAhssw0QXvQjcMrrEoMtMraQQZ8M6rkABA//DgiLnj/m2VdMp6LqrAiiig8Lkispf+TguSiER3O7Pb6RqkZYUJLICdkUfGbQxjDbKnbW4EFuEN1boRCaHPTpnf3j5tO6VwCHxG8De7/EQAoizjMiWlW1AiiPUwp1kv0LkNbVFr1AlkTCMhNwyfX/nUOnP59SPmvkdHbXHsVd2Nphs9o9f2Npl2FFcnfBbD8sl9S0b7JG6C7LFeC10EPHn+TC6ixUvAcxA3yf7RGeteH3btLBnTSWvysCsQ3wRrM8GToweW3Bno0tMRFPt09d9jF6UPoAqfgSylDJ8ycT60WwilAbTVWUFbXQy1ZMT7caDcgALo3uvfASitnxxhC+h1X7+z9L/A9QhVgRJXQOGzxCdopQ8vb1ZQllXiDZDleaRED61ssKwMbRmz977gXw1a8UXtY10tilIDQluQWMRi1fUHtJvonyesJN/58ZTJBT6lQPXn/3Pc3L99wuzqm7E9p2kF7G6vN124abfhH1tE9gLSLnln4cssJQJPnitd7hwEUelKxFg0xv8RPDkInxPO3S7JRBOugDzh1cImoJNjNc6PfbI5mvFjIFzPU+EzMND7oxzgUzpt2h9uDP2U2qAEUP66kxJMMQuoM43GmgUkcMH77ncKwh9zFZ6AZE/TA1DCJwdd8FuemDN7RueNAuhK35l0/+WugMJnuc9gEY4/LwA6+LogEUKSHchMdOkRQPFvcNtkzPjCPtALMMfJrZA3Urbrq8fqbNPHNo+0gq5fW2dq4RaPDqJidRqDRdlv/v20eWB7UMdy556IhbCB4XnDzHK6ojva6q1buA3H2gbXZStuzJ/8QHcaW89tEXG3T8B9Lj3aCZsCnlKvk5nuBE97M0THokaYigmeg87dPu5KJw0OB1ZO6a/OeM4ZaEbw5HBVk+zzUoNPe9yh/u7h3u5cptTd7ukWmPevnExiPuly94ff5p3v1bsuVhZC+YNPCvWLG55WUG6CzQbkc5moDlOy+M+Y+z2zPvC5fVKKs/beGqBL4z+1C1Jx5kD3UtkKKHxW9vzm7exyAtDdiPVsgymJsWYSh0Z+WnDwSSscuphYoNoxa93evN8tAAgJosEIekTLTUEe63BTZY9o9oyW1nvSO1r+lr7R7KiyZzgA1Wk8H4JlkNnbbOVHSGtGEfUOWIdaEYPK5CNaPq+9uDdvGi63IZ4zwZODMWfSHnMCbTMFPAfgbh8YXrBhAwRPq9fIjBmbCp4POpf7uEtA6oLFdhYxeQRPjg64WqXQ/LQXq7ccfFqtXIF7Ps80253rpCq3lE5/d4XP4Orxa36mgk8uTwBlKEsjQkjswI8rO8T6KdbQdADUj//Mcwek4KBKayiAltZ86NFUlgIKn5U1nwU9m6zjQIeY4Y6bnu224g6RUOlZPuFDD/zucB0//VRQbH4eQLYYrTFzsHZyEEQZ70nrJ7mV/aI5pFc0oZPJS3yUftG8gUwBtKYY/4li7YwD5RjGftgfnXGg3JcAUhusQ61wW37r0/sWVEt/477VM5bsANBknCcH4XPY9W4nfNKtXg83KsHTvg+r57hLMJoEKDJsgeC5qqMOuSGwdnYEBSLFgMXnPnzybx9AM0k6SlXnk9suN/gMu9x5Dtm43Vfa8inXmI2jxsfPAig/f+yKxOFbQF2r1aQW0Cq0flIiacHJ56wyoRnwRfta1B1VuAIKnxU+wYU4vYysoDtRUL4TJZLYf1rA0y9kTasnXe/iwgMUstsRx44n580i3O8z4FICGsPW6G5npjstnYwD5WCNyinbK9rBKKCS1kz2j+aw4AnIjOA1PmcRez8BqcllCzejO88v/v05hZBs2W3ynCad1ZP92fd2L4Kl09XzHICrfdhl4RI+B4ZQZB8MQfAccklFs65W/Kqeelg5A7HbHWg0Ai5mXEIWX88XfHJbqQC0EuEzm77uuRSYp86+1ZN/p2P5tPPjPne8XhhL3dDBgFD7x944UP44jAPQcPwnPlv+5xafJyMXHEt5TQWeC/nsFv1DVMAdhnvAc1d+/KeWYCqg+LrpilVA4bNip7awwQ1TIwAAIABJREFUJ5Y2gDLRiO52C5+8C7osdx4e4XEONy7rdnfk5MGnfwb3Pzhjs74Zt0hL6DTAkgDJUDXCp3W1u2481hKK53Szc0zgJhmBRTAC8KT1dAJJExFYQ6eRET+Jf+0oqv7brxxYWMGW2brAJ8GTgy53qeXJdpkETw7Geo5IUhHgs398FsUDaix8EiqoDcFzDayehMtVXY2mEa52JhvJSAag2Vo+LdwI3bidZNrlqNTc7ulYPosBn34xeUq7HHz68Z5c1gdTf3okptQCKD+THOJ6XxZAHXmKx0KuKQKoqyNLAK1U+LTfI+PRmPVzEMlHfdoDfsW+M3XH5a+Awmf5z+GKnUEqAJ259xWm6QDU4mS8J62LhE/ew6IukJOlk9hLmsGcHATQJPAZPsmbb0WyECCTQErwtKWWXGtIsYLGSi9hu7R8Ms6TVk9C6Y3X77diuvk7lvJRtHwSPiXWk/Ap0EkAlSSjfsR1jqJYPMGTYwgF+Rtd4fB2uFUJnhxtsGwRPDkyhU+7jlfvM9/lllLV+eT+VzLhqFjwGe5ulEmyETXyATOcbORfYwKfUk2J7Tn5vJ6JSARQGjkJnlKGKWn8J384Ylk/9jNk/axE+LSfB5v97qpOOPe7AmhJfIXqQZSpAgqfZTpxpXLYywLo9lcas6oFvl9XWF7ufrzZMWiTBjlaULKAz1I5/1yPg/DJpCKOcSQRDaOs0pjEesKy0ue53YcAnIPOxc6YVYInB+FzFZKKVnU1ITxhHjVKmywjyCh1+ORxLslcX8Fs90qCT9/q6ZfyjBWmJ4BKJyQB0KTudwefnDD7o9FZ1MX6WcGudx9AJfaTrxFAH3Lll9T9nuu3oa5fTQoofFbTbBfoXJMmIj3zmiCrth31JXkXtO383EH47ju+Zm9gsIA6t3KlWlDCUyDwSfDkIHwOi5udFhZmuLu/+0Zo9aS7PbAUj6F9ZhvAYTXaks4ihIHw2YnyULGMdgIChsKnMe//5yfNZz9yoG3lGh6tAlvujXKAz0zjPXlqcXXkIQObEDAQplZc8DHLJ62gfvkluzb+Odc7L1VaP8PwycVWwPX+pfqjzEXzjxTo2y1+s+H4z7D1c/uuiHZAKspM6E7KXQGFz3KfwRI6/iVW0GdRYonxZIRPutx5p5N7mMBnidzAVkpGxq+yNSZd7jW4uQt89ovFE9ntQ3D3ETwH8I+DcZ9DqE26urfBJmIRPjvaGtGFycXwuZOZzgA+uUq6cZ+ZlltKlXDEfavlM+jq5Y/lYj7zAZ/cV5NrdWsBlNnv/LxK21ICqPxoTASf3AA/v8wITBGzXajP19c6jjFvH3+oUJtPuN3BQSQFura2g/hhaAEUn9fNT8wgEXDGfOMn9xf1eHRnqkA5KqDwWY6zVsLHLAA6/L9nm56D4XLnDY1uPd/ySQOKHzvGG1gVJC6Ep01KSAl8Drsb2vAIanu6mp5cpx9/D8LlTvgcQMxnPUpWCXx2oTYp3eydrn5jM94T6JRHbkOsn/nIeFf4XFo+iiW+wiNcaimc7Z5LzGdO8OkdKn8PWgso4ZODn1ff/S7F5/3To+WTcdslEDbznfWbzBt231fUb8RNH5qyp/+DDzQgDCaAT/5Y3D2IWGx0P9ryxLj5xe8eLuox6c5UgXJTQOGz3GasDI6XADr/4DGmbi1iPel2Z0IMXZsxKwpOQhKwGftp4z5dtnuFl23xp285+GQmbT+tnq61Zh9qeg7D3U74ZFZ/dyey2vGvw8XrrUUvehnLwWcAonsjQpMVm89nrc9EmeGpko7KLeGo0PCZj0z3mNs9BJ+8JuoAoPVi/bRZ764oPZPW6LVwf8bKLZVAzPZKgCe1OvHDEYSsB40wfvD+pQD68I5J89jOKfOHBx4tg29rPURVYGUUUPhcGd0rfq/Rh84xNWtR31PceNLdyLegVGHZloTwiYQjxnwOwXoy4nq1C3wOoK80a3lyDKCN5jBqfBI+16CkUjesnat6mkw3CuPTUyr8XonwyfMPdzkqVHvNbGI+Sx0+w/Ge1FPK7vI5P4q0gMYy4HlBETwb8I/WT8Kn1PnkCgKf7EwmlREyqFaRjy/A7+13Asp81Zjznro7H5tLexsnXzZtGzn806tqzMH71wXWT/5YdKWX2PudyUe/uG1L2tvUBVWBalNA4bPaZrxY5/swMt3XAD55A6P1U25g/v6TlW3hTWyyMmsGpoLPoeHgDk+3Oy2fhM89yHAfHkc82QjrlIrVs9F0djbY0koCFmH45HYyifssZo/3TC2f1Qaf2db4TFbfczn4FDt4DD5ZgL5JPBYOPv1kQU4GE44k6WiF4PPGA040NSi1du6Ou4r1rWb+4pNzts7wP5wVqEb45OAPRxaeFwB9+IlJs21nxNz5wLaiHZvuSBUoJwUUPstptsrpWB8BfK5OAz7lRiaJR2x/6eCTb1Vy1nvM7e5ZPgU+7U0M4Mk4UMJnH6yeo2MBfDKxqKcdWe6wenahQL7CZ/DBaNkbeRD7pLS6kk2FznYPWz5zba25EvBZg9893G99G+t/AkA78Pmlx4J8ZRtEuGFjthPAJ6tVRNCu1nUoK+TXlYCn7KNYAHrG1Qvm705zdYmx8+M2Nto2uH7bzT1D+OyiEgWtn/v1Npkv33hvIaXQbasCZamAwmdZTlsZHDThE73FQUfOfeduXr6vj6cRTjwS+OR7FW79FPgcJXwCMmk94WDCkcBnP93uyKDtn0AbzWF2MgLTO/g84sBWA8OPbTnKIZZPPg+73ku93FKqbHeeUzm53VMlG/F8/ISjlch0l4+iWD7j4LMZn10mH9FjQQBFIpsd0iiC8IkuWtblHrN8Fg8+f3jgiV7tqKiNAnhdAd3vr/4CypkhNn0R1t5LTwqqTnD48MnEIw6GzGzeEWS+b3tKrZ9lcLfSQ1wBBRQ+V0D0atjl1N2vMK3rcfNqhTlK4sd4I7P3MAn8dEWr+adftLrKrJ9h+BxyrfuYQSvw2Tc2CyvovI3L64ar/egD200nOhoRPi14hgA03xnvxe5yFE44Wkn4bG1amskeTqJKZfks1Ux36urDJwzrhj3gG9fgc+vDJ5MFbVFQ/Iekx987/MyuEHzefR/667qx67wXmsUFJgBF8WjMBc/mz9J44bdazTzOcwb1S+exD8LnJZuml8AnX6D102a+Az53w/rZD+vnlh3jtv3sT39b3HJQ1XCP0XMsbwUUPst7/kr26KfveYVpXpcMPgVAXQYDH/yWfYRPjiqI/aT1U+DT3sBYWN7BZ5+tH8ianrOG8DkwNG+aAUKH7t9m1sL6uba3fi90ZgCf3E+uGe/5LrdUypbPqoRPut57xO3urJ+8cAigtkWuB59S65PvF8nt7sOn/yX4p1e8AAC6aMNTFgCLbxvdnPF35EU3rzYLOKcFQOc0vC+Ez3lANv9+/9GTcdt7/jFBrMeY13LTei3sZxcNIQZnzCNPRswfH9TYz4wnQleoaAUUPit6elfu5Cx8duJOxfaaUrqFBiRaP60hybN+ShYtAZRllywdudhPPp+cRxyZ3zBy5c4r33sW+AzfwAZwMxP47EcbTVvnE/C537pGswZllQ7bv9n2tY9ZPBU+7dSE4z7zEfNZyvDp93Tn+SdKOEon2Ygudw5aPglu7T1wtRM++XllxjtN7CyXJuAJsLMWUGv55Oc2cLlzFCPmMxl8yudz25knWficn15AI4ZFs4AOYIt4nMN3DCFyHp+XBZQcm8f3Cp/P4/n05ELwN34QCnzOETrtMgGA/t/DxmNfAWeeDn0wBmDljMEnQ2aQKEj47Ges9vCMjf/cB7V4v/LD/Flk8/09pNtTBYqtgMJnsRWvkv313f5ys3YD/HesQ8lyS7ZwtWTO+m5M3s3wN4vmJbV+BpbQSgRQP+4zkfVkAElGhM89qO85gmz3AzY0mV5kuQt8UhcCaDK3O9/PNuN9uVqfhbZ8WpBM0d89bC2tVPhMt8ZnLpnuS+CzC5/VVvzrQK1elDOyFSto9SRfklAFPCm6B5/FAE/uMhV8cpktLzoB0AngTAM+777uf5J+M686/aiU8Ckx2/RacFjLp/VgwPX+5KT9qf2zW9X1XiW3Pz3NNBRQ+ExDJF0kcwX6AZ9rYvDJrim4kQl8cnNx5hiSpTO9VKn1cwwtNNmyT5KOJHZMLCgPPzUJC8ucOWTf5hh8NqOrDpOMCgWfnCYfQJeL+2Rcmz9aWqQqefBqqhabCUFS4dNqtxLwyfqZLavwg7ET8MlkI2v9dHNM+CRwznvJRtZTUZxM93Thk8s9+IJNSeHztstvzeiL7dI3rY9bXiyffHHHDiQEuoRBCZuxAIofjP1D0+h6FDEvPbHHXHPDHRntUxdWBSpVAYXPSp3ZFT6vP/3kZeY5+9WZxnWuyxGtnxx03dnM2aVJHNVs/SR8cgiASs1AWk/ovuuH+46xY4c/p8X0wPL5vENbrLtQ4JPr5iPpKNtanwqf8ddzqmz3TFpr5g0+E3Q2Cicb8Tqi2z0OPum1oPXTTzai213g04En1y0ly6d8Bd5zwvNjbvefve/XWX8z+vDpg6eFzycD7wyTjuJitul6h+eC8Z8cav3MWn5dscIUUPissAktldN56L/PNIc/t8E0stwS+47TbWdd7wBP6RcdBlDf+skTYfxnXPJRZbrfY/U+Pevn3oLVQc3AIcAnrSeruusAoG0Fg0/K7gNoupZPrucDaKaWT66fKukoVaklbqMYMZ+J2oXmM9t9uRqf+ezpbkHTfWHQ7U6Dpn3NPWkXy2crPrscjPvkMgKefI0xn0W2enK36bjd/e/CO44+xuQCntzWcvDJ9wmgrMvLWr0st7QHsZ827nNwzuxBwiC/3n6urvdSuUXpcaywAgqfKzwBlbp7wueG9fVm9T4AThasFvjkCccANIn1k8tUmft9BkkOEw4+efq2ZR+tnnDlsWg1C1b3obUmIeGIA9rMxoOacrJ8ch+ZZrznUm4pldudx6PwGXwb5BM+02mrGY73ZAlPGjnb90NCDcGTG5Fe7wRPKTBP8GSmuyQauaS3Qnyn1WxoM9Fn4zPNM4HQy7/4bM6HlQo+n3wycL0TPm25JQuf+Id6n4TPvoE5c/rx3ebTX70z52PRDagC5a6Awme5z2CJHr+FT8R8dnbUmEbUo4wDUMKnvcum6X63pFT47PdvrzvOXLjn/qIqevzFU+bez7QawieHAKjAZx/hc3ABpZbmbdHqR3ZEzIs2dZvjDmkykZnA7c5RqLjPlUw6KtWEo3xbPrMtMF+oTPcYfG5AGaE2/KPHQipSCHjyovPgM1pA8OSuag7tMY/8ZI858silbazSsYLmEz7DLnf5wvjq9ybM8w9rsE0irOVzCOAJSyjhczcSBvthAT3ygBbztR8X9zumqF9oujNVIE0FFD7TFEoXy0wBwmcbWj/ux7hPut7ZL1qsnzR4MvazhNzvBM96HM/5Txe3HMoJl0RMFG5OAVDCJ8eIVzdQAPThHegXjY4pRx3UYs44vjPI+fDiPist471c4DPscuf8ZRLzmQ/4zGemO/mSnvfuA2n5BOwxmYyfWWmrKeWVaPVEkhFHweHzoC7zyE39CeGT+08FoPmAzzP/5QxzaefjS74If3VLxLz8pS3mmi+NmZef0oS4T9ehjJZPwGcfan32AT73AD6PQMz213+i8JnZ3USXrkQFFD4rcVZL4JwIn6xDuX5dHayftaYB/6wLj1YUJh8RPjmWs37y/bD7na/Z4vP5i//87oZNps52X6opaIu+RNNyykenrReTnVPucRZQAqjA597YT97I5lG2ZQIsUGPe8JLeJfDJ7adKOsq0zaZaPnHZhjocFbO70UokG/F6bMQ5NyO8w34+6YMXIrUlltha09XjZYZ7ga2evK5rehpNFM0Wtm+fM4fBupho8Ifcf7wxvuqCLJcLfJ5+5V+Yy/d5MuE+//unU6arrcbC5+e+MW5eeFxjYPm0iYIAzxB8duOH+Es39ZqPXP/7EviW1kNQBVZOAYXPldO+ovcs8NmGGvP77tuwFz4l690Wni8NAP3+/idY8KSB59wddxd1Xl748VlbQ5D39rs+3Rznfk8EoLR+ProzYl73kjVIPqrNKe4znZhPipEs6ajQtT7L1fKZidWT+i5n+VwJ+JzD77oelknrwoeXWe4Smh2r7+ngs0jguXvPgtnwHADnIT3m0R/ttok7hx+eGECp56kfmzH/9rr4j3E28HnSR15orjr0z0m/D7787QnT1V5rXv+XreaMdzxpXnnqKnOcA2OBzz0AUIbL7EHi0R6USutE56hjDukw//x1jfss6het7qzkFFD4LLkpqYwDEvhkroJYP+vxRW2tn1J0nqe6nPud74eLz1sayl/857ZtQQmUra84Ff8N7rLn7rirKJNw5rUogI1kjf9z5N4+1e+4oN0C6MR4kIc8Mhq15VvEArp5x4y9mQ3B8nvei3tj8Mlll4v7lELzVj7XRSpX+OS2fADNd7mlYsBnq/wA8ma8BdXB/FFJlk/fLsgrLFGyEY2bPc8FeLLJez0+E0wy4udQstzZbcxdQ8Wweg4MLJh2eE5aUOM2OjBjHn0ULS9t+0xjjt24NAbUn7uXfGreNKLmbA0suPU4l1o+otTbxB+3J/yMH/mOk82/nbwn5ef/WrjYe9HB7V0Xtptbfz9tfvj7CXPIPk3m+YcEULwHMZ9MOuobnsc/gOcIP7dzhlUgNh7Saj7zjeJ8x6Q8EV1AFVghBRQ+V0j4St+tD5+tCB3bb78GE4NPnrwAaCrrJ5ctIIAKfMp8bD37VLu7KP7z2p33FGSaXvX5Wutmn8fN/IL94jN4CZ8WEB2AEj45BEC3PIEbGdzvzH5/85mr0k46SgSfdj9oKyhj2mthmk25JYXPQMlCWT4zLbOUTVtNWuAZJmOQXb63A24IPO2FUxx3O3c1gIS71pYa/Ks1NaubTBQxlA9vnbXwueAg9ITjQr8YCvDJfd9VfTiGepTzqsO/GnPZRZ3mDR95BmGxNea5+7UBRmuQUNRgk404YtZPW+czgM8mJFsefVCbuf6/FD4LMEW6yTJSQOGzjCarnA7Vh09aW9a62M846ydPKFP3u7vxxdX/5GtZ9n8Pw6dovOWsF9h6h4sAxDfsvi8v0r/xO21mZmre9ohmf+lz14wt2a7Apz1ND0AJnxxbd8zbLFoC6B8eHDF/85p1CV3vkgXvQ2c+2mwWs8tRKssn9VhSnilkCEvV273ULJ/FKrPk1/ekjtLT3cLnIQBP626n1ZMBycxsA4BKnCd+pBTD4ikfDpYca2SoOOJQqU9tLyZ5LUovPTps7t88YyF0ejqKz0tg/X/FmbDa5nG88dKnEfcL6MT+BT6vfF+XeevfPYuE/0WzGn3b91/TaC2h63rrzDQ+t7R68kfsAEsuWbf7DEqnzZlGHP/RB7crfOZxfnRT5amAwmd5zlvJH3UYPltwP+hEv+gOuN7raVlpycL9zrNO1v89SwBNBp+bzzjFgqcAKB/ZJ/rt45n1Z373LWvM7OScWcANew7QyfhOguc5bYMJ59CHz70AujcBiTdiKePy8BOT5i9O6Mw47jOXpKNMan1mWmg+0zqf1QyffpmlXDPd/eLytrYnvRLW/E8qXVnwlA/JKKo/NOArg8l2dXCfN8DaaHvPb+gw0ceGzf/cMR2Dz2mXAEUYjeD59PSi+ds3d6T1nXnWu540k1i+nu1Fm+sMf7y0wDsj8Pm5K9aaD//zgLl/24RZgySobpSRW9vbZNph0ewGfB75nHozgGPlZ7Qfn1XK2Afw7EOTiD5YPgmfRx3Ubp733Gbz1//wu7SOSRdSBSpRAYXPSpzVEjinMHzykNat9+BTuqbYrkde681k5Ze4gVQdkLIA0GTwyU3d9+KTYgBK8FyA9YfgyOfz8hx/s9zRPOByZgJWTUImLB8WMlGHcw7vETwXaO10AHpGTfKYskTwyWPxM+DjABQJSC88tiOjNpu5wCePxQfQ5ZKOFD6DD2IzgMMfy7XWTNfymRF8ptFWM9bVCC5hQ1dFCYEntSN8Mum+BvApdUj5VUG9Glpxgt2IB+2LmF/8JmISwWcEIEqL5JQLM5mCFTcSWTTTiB+fcvGrU/i8TiOJKgyfP7x+fzt9V31hzNyzfdR2LFrd22B60bmtA//WdDUBUhEnix/VtH5ysK87rZ57AJ0cjPvsR7Y+z8HC5yHN5p2fUvgsgVuVHsIKKaDwuULCV/puE8HnEuunlF6iGEvc73wxgw5IlooyL8G0HHxyk/ecdqK1fqYDnwTTaXQhWg4+Xzz/zLJTH4ZPLpyoAD1f34Z2frsRD8cM+JOOCiw7hUg6yle5pVRdjqrR8lmUGp/uY5Qq2aid4Bl1Dnk+sHd7zNMQNVG63ldwsPoDIwEIn/LIwyHQsSoAf+g1Iy60pafORKf2xjL/x3+Nm0zg8+YvH2jPkrGmPwbM3rc9Ynb2T9uYzUZYXbu66k03EoeaEfvZButrB+JAWUKpBw01CKC0eHIQQPtHEO8JAB1Ai1z+YF3T0wDXfBPgs8W86yqFzxW8nHTXK6yAwucKT0Cl7j4RfEbpKYOFgO53liip9Wt/UogSBdA7TtwUs3o+dOXtGU1ZzelHx1k/T5tKXrolEXj6O0vWgpNJSFscgBYCPi0As7C4G+laPrm4b/1U+AwE9C2fxSyzJPCZKN6zdV8k7LDWGE2eJQiecu0Nw5poS44iJIZszMRAGTUgUnohagmisGLOwOjYjEQljlW9tYFb3iXVzVorZ2ANncZzjs2PzZlJPI8gfnTnHmexRKLQNKyk7NleD6trRyegE9nyXYDPJgSitrXVmXa45QmfB+2DMAAMwidjPlleiQ0kCKD8p/CZ0VenLlzhCih8VvgEr9TppQ2fPECxgPrud76erAA93/Nd8M5tFpeElGER+uUsoITPey+7JWcpjzs0eSJEKvCUnQuA8u/RMfSRRiIS3fAPPT5nLaDPOzTIlrcQ6lpvppt05Ge7cxvpZLznUuuzLVTmKJXl014qrS5EwwlS7glHhYLPTDLdm1EiKDbIYUwyosXTtXxdaYtn+IO3pw+Z9kzAB4DSUMu6pATS4GuBiUfBP/s5cFXM2IqW/8CPdvA53exTAE3JTqdLfgrekym43gmpk/heiWA7Y/BmzMJq2dpca2GzFRbPDsSDMnOdls82QKjU9+y3/dwByNh9P7oa9SHTnc8H8HwG+1sLd/3aniZzLCyf775aLZ85f6nqBspWAYXPsp260j/wh79/lnWPicWFlk8+pwWsswvWA9/6ydMJx3/ytZwBFDcodyNaTrHl4PPz3x/Ji9j5gE8eCN36HGPohOQDKG+iW1AHdANucIXsdFSojPdqgM/l4j3t5e7Fh/oF5gtVZql5A8BTolvKADz9D+KuXfM2JGYe8MmM9xmXaER2nsVnhP9oxWSSD0FTAJTbIHSKldP+DdicQvzn2NiCfeSYxGtcfxw/ZGn15PcWO6E140dTRxPKLQE+3/6qbmssZpJRP/5x9MFd3w9gXcSBDLK4PP5NTAWeg6MPajX7rGoxxz633pz3kdvy8r2iG1EFylEBhc9ynLUyOeZk8MnDTxtAl0tA4oZSWkCDIvK5AGih4TNdq6c/7csB6J4huiad5Sdk/ay0ckv5tnyGC8xT83wWmS8kfFqvuRsxy+cyyUYt6wGeQVFb52pnMCU2AGgrNWvncl95j/1pzlo/GfPJwfq5dLHT0igudVow6QkggHIQPqeQ1R5xltFRBIVGIgTU+ASkSUDjJBKTmPXeDFc740vpdr/6onVmBI0gKN0QoJMftyF4IuhyX8SLLIU2iFhPWmT7x+fQLGLerFsFq2d3o1mPmM9jDmk051+m8FkmtzI9zAIooPBZAFF1k4EC6cInLaJ10v1IXO/pZsCnA6BcBuWOBEBr9m830V0TCacpkQW0kPCZDDxf/LYd5ndfPyjlpUQIHZ1wllDcBK0bHr2lH0YcKG/CYdd7tp2OksV88gBLqctRS451PvMNn6WY6d6EhBwDgLJuCR88HbyVE3iGPyB33hPQJCtTTOMpLZ72GiWIMtsdwMlyTdYSCgCNwNXOPCpxt0/j7wkXxhOhNXRywa736y8eZCYnAZv438QYSp858Bx21k5aPW1tT8DmwNichdE+1PfsgwV0ENnxhNZVSDbaAPg89rmtcLs3mNMvyj2UJ+UXhC6gCpSoAgqfJToxlXJYj/zgrCVudzk3sX6yowrb/CVMQOLCqVpwZgigNchWjcISsX37nDnM9WL29Q4DaKHgMxF43nRzxJxzVot571X95vNXrEnrMhArKCF0zANQxp9teXLWtCM+TaAzH/DJg0qWdLTSXY5WGj5z6W6US5ml9rYElSFSXD016DNuk4s4AJ7lDJ3LneqPfzlls91p/WR5JYLgFMCUQDoRcS52QKktswTw/Na1+9jN0Z0/BWsox5TLnh8HdI7AwklmHwaEcgy4BhDMbh+E234R5s4BlFaiBXQ3QJTwydJM67sazVpaPwGhmw5V+Ezry00XqlgFFD4rdmpL48SWg08e4RL3O18Ml2DKBkC5Di0YLn7LlmHigAWUMVrs0EL45EgEoHxdIDTf8JnM2vntH02ZLkAE4fOTnx8zf//ezowmkRA6FrOCLlh3IK2gA4DQR3YG55qqzWY6LTbtdtxNmc9XstZnod3u+XS528s4ZJn1E44yhc9OV1Myo4tEF05LAYInLaOkzMmpADInJvaC56gDT1o7OfbgM8bRj6x4utsZd7obSUbsakTXuw+fGw9qNs/dv86c/NbfpnUsupAqUIkKKHxW4qyW0Dmlgk8eakIAlQ5IXCBtFzxvFu7kl+mEtDA4a+qO6DHR7cMWQJmscOSRaJ+SZLzo77E8Op5srMsu8ajx7GNMMzqhXH3E00n38YVvjqNGYJ258DWt5qy/edK87MRe85F3ZQaf3HgsFjQBhD68A1YYWGb34TDMAAAgAElEQVSWi/tMBp/cdjbllgpZaL4JQY5M+vAHWyD6ow2xehwXXb3DfOljB9nYveWWl/UlYWul4NNPNuLx+glHvT3x51xCH/eyPxRCJwe7IkURAEuL5wQ/S4DQUVg96U6Pgae43B149gE8afGMgjb7YPFk5v0eWD1ZiH49rJ1rVjWZ9d31Zp/V9QqfZX+l6AnkqoDCZ64K6vopFdgG1zuHZLsnWiEtAJXSPEmTkBx5JgJQS0+4s8ACGnl2xrR0I+7t4B7z6I92W/hcwI1i41Ehs1SCAz3r03DbodA0s14PHutLeu6LLzzK1ON4P3tq8m5GsvJ1N4yjhR87pNSZfVfXmu/eOm4O2bfZXPzX6bUETHQQPoSOAzg5aAkdhiV0CyB018AcEjL21u6ccZ1f7I3X1ULk81zLLeUCnw2ISwz3d29n60dv+PDJIt+tKDIe9z7bMGJc8HePm+/+0yFGYFSWEdgcBlhwhOE1DJ9NDm7nXMH1Jrd92V4mbvdsyiwpeKb8usl6AR88p8TaOYlwBHyfjI0H5Z3G4HLn6BsNvmTE8tk/HFDrHsDn4NiMrVTFovTsR18DP78Pn89DvGcXrNZq+cx6qnTFMlagpiboGKbwWcaTWC6Hngl88pzi+r/zBQGOtIrQLw+gu+8aNu1IbmpDS74a1O0zB/WYR24EgOLOwtIsLFx90vFe3cMCivyhawZgias3vYBOwudxRzSar/5kxKyGlWS/NY0WRF/zitacjmA5CL31gWkkKwXu+ELBpwU6ZAnLSFRovjH2Y4LwFw+X+66Jn4swDLJpgT+yhc9kx9cc+j3CLGp/NIXeZ/tHfyyXcJQufNLq+f31x5i/mXk4p2shk5WP++CUuf/63K69TPa30ssSPG1mPL4HJM7TWjwxYuCJ0mYcUlKJMdX2b/yg42ArzUEmG9HyCfDkYJmnNd2I81zVDKsnuhutrjOHoM1wEyzwCp8rPeu6/2IoILAp+4pGd9mnCp/FUF/3YQigy1k+KZFYP/k8rwCKtpd2oFMJ4bMF1rH6uqBodA3dsPt2muiOUXPfA7BYsKOgK9tC1+tZL0leGD6baT3/4j/D+oYuKXAXt6BWIOHzHz/Ybd5xxbNmPLJgVnc3mecAuHpgGbnojUHB+HwMgdBxWHLEEspM3SHcOB95cs5s/tNUbDeZWj65YroZ711McvFGKzTg6O4Iwh6oR/z7e5dn68IlsJmm2/2s9z5mbv78obCkxqsplkx5tSVkyWziDxQMAggHC4v7g5YtjlFnXW4Orc+uO/7IprvRzw8+zrx1bHM+LoOMtlENAMrPO8eMc7NH8Mgx4UBzzGa1s9B8YAEddJbPmMUzFvMJ8EQLTVtcHj3cZazpCX6drMPj+t5GlFiC1RM/fBU+M7oUdeEyU8AHToHN8CkofJbZpJbr4aYDnzw3AVDCJ0e9lGCybzowQUcROwgC6brgPQAdfnDExnDWIsW+GXBRT4BApxLT1WxLMP3hjzO2ZiDhcxoGDJZaYccUPnIwS/Z9b13eJX723+60yzKDluu1sec0LIAtsIQIfH7xE+vM5i2z5pLPPmNrCK7taERcWKPtntIN0HrPm/MHn3Ld+BDK1wiiIywdAxBlkfqb7xrP2O1uNcF5yghnvHd17gVKgbve9gA2m3Gu/th3dbwpkT8Q/CHw2e2ujyWW0FDMJ2/yHKe8bbu58+uHWTeoP8Jufd+SScuXwKesE7Z0NmJ7YiGzl6QXOkxwafRgtRHvSS1KLpuu5fPmo08wF+65P+64i/HH8RdPmXs/U7nWT4bbMLbTXr8ugS4op1QD2Axel8cBB5lSz5PvSWekPsDmEHu3480BtNHk4HcHv2NWobIGOxqxtuc6xOquQ5vPHly7Cp/FuIJ1H8VSIJl1c7n9K3wWa3Z0P2brjXvLLi0nR7Pr/54UQMmAsXqgmQPo0F2DQecl/LNuUpg06sBAzDZuYszgakDo7og9xJ/+OpIQPoO6gSzZwqLUwY2KoDmFOMqgM8re13z4/NnngniXa744Zu7dPmZ27ZlF/T/AZluD6USWP13u7QAWwmc+LZ+J9OYNUsBpwln2hhHLRhC94WfDdpV0Yj7tzTsEn37sYwsAsxdJFzIkTrMbpWfYqtAfUmeTVk6OMFyGYVHeZ7csjqZQxIRYKjeev81s+d4RsDbHK9HoJSBNwSq8FC7j4dc/rymACuHTHwKUU8iM5mjw3p9h9nSSsVym+63PO8mc//S9Sdct1BsnXTpt7vp0yFRcqJ0VcbuETo5YAXqUX+LgfNq4Tvzo4OO4m8NBSSxyACpWzz4Hmkwy4mAnI44IPBgs59RLNzs8GQTPtYDO9fjX0QrwxEdB4bOIE667KogC6Vg3l9uxwmdBpkU3mkyBRwGg6YxlATRciF6sS9LiJeTqjKXA894PC+jAnQF8So1tdnVZREF2RIECRul2D6wWnUhgaQQMGlgko88GbumvfGci1qYvHfj85X88x67X179gbkQNz61PTZudfdNmEDFhc9hnD7JfO1vqAWGwiKJv+equJgCXySrTPR1dEy0jmd0EUWoyAasPXfKjrmXgt34zZFfzs93tzTtUbinqdKe1sqtjL2y2O8Ds6hTXesjaucoH03iY2wcxcv4IJwSF/84FPrmfpQlE8fBJy+akd95hWJ0N+MMOWjplsFyPb+mkxvW+iz7EpX62+23Hn4LC6Macu+PubKc44/Ve+PFZM4/Pyp3XVA58CnRKfHMk+H1pM9qta93FeI47lzvfY9tM+yju9qGAXPvGggSjARSSt387EB3Bjzi24uzpQYY7flzVMtlI4TPj609XKE0FcgVO/6wUPktzjiv2qNKFTwqQO4Dyju43rsaffImxW//bHzx1bSh5Y6K1Y4HFtvE63aPCsARRut1bWvDorFe9q+qC/tGwgEoSCq2dbOnHZR/bFbTlYyeVnbBu0io6DqtoBP9GcOOiNZSARnhiEXjGPrbC9d4GEGUM6EoNAdFJWAE5wiD61V/0xw6N8CnL0+XIQZi2c8cOOhir4F73Xeu9iO0Mx1Wy/BEtvTJ8oPQtn13t+DEQiqkMu9GT/X3AOVvNUzcducRSGd6eD4w8Hnk/Mh0cne9W598N7nhYvJzJJf6gNVOKk9ttufcnXCa1ACbjcH3YnAPA+n///sRTsHYN4POuol0Wp1/JEmRR8z+fSl0BomgHleWOlkAn5pJX6zQsnRx8zhqeHCMOQKVzkcAn3+tDEXmOAbjYOfqRYMSxW0AUFSToQVlFiyfAk8/XorzS6s46lFeqg2cDVTLwXaKWzywnUlcrugLZuNPTPUiFz3SV0uXypkBBAZR3EokDjbFACEBd/lHf71EqCc+5CltR8jl7RBNI2ZaSINmIskozAFECJZcjbHKwADXBkp1SJMG5H51O2DOaLfs4Juh+hwtueGwW7msHcxPzZhKQyu0y674ZVkHGeLagLNN/XLkubxrnuiGBSio34UB00hXZHoUViDFw1307KCNFqLLhCm6sgoud5yVjnzXx1jPCpw+bfu1Nus9pBfZHOEloFctkubHU0hlO8An+XvuSR0zfrUfFYDG2fggYBSb5PuMBl8Kpt313nAvuB0ld6LgXXbtK2Vct3p91wCNudsYYcjTgeuAYx9/1eM6QE8ILw0JuPODEYBP4dcQfSOc9VVgL6Muui5pFWP/ncO3efmXy+re5XmOFXl+gc9Z9HqWPOzWMsGMRHuXaHnHwyWMS8BR3u8R28r0YeLps9j34bPOrYwh/s5j8qt56gGeDqYMLRcDTxnnixxWt1wqfhZ513X6uCuTTurncsSh85jpTun5WCmQMoMj+7kBJIo64JKREveDtQg6GUgDo7tv6Aosn7iCLNtMdj7iJzMC4MQt4ZKcSDlo3CaOM9ZQMWT6fci37uIztFw0YZYs+jlH0dY7YmFBYQR2ITOI1Wj3pmm5rCxKQOmDxvOGqDVnpWKyVJFGGN2tahAWa2M5zGG7KL944GHcoG9bGA+cGhi+4IZZNiesMWysJnx2wcsoIu7abpd6rW6DbK7oeTuIReOx6wRYzesdGuL7jFQtbK3kt+CMuFjMElza12R8Csu4HinFAGVuElCID7y26lo322sFz7qsRlrEax9Y2Ux7/t/DpwJPuYR7j63bdk/ep/6sv1cPyj0LqKFLJH2PzgM9broivPpD3nRZogwRPeiZk2G5FGLRQc0g2O58LeDLWmWOIme1ubvvE7Y4C8hziZuf3wuA4kowwGUMj8/b7g1b/1bD0xyye8Gywj7zCZ4EmWTebFwUKad1c7gAVPvMyfbqRTBXIBD55S2CWcwfcV+wDz2EBlCNZK067UHoAyorQu27pt6DJMksLtPrQ2mn/wVqBzfBGNg2wDAAzuJGx0DifT8qNzb6HWMnJIB6MSTiSgMS/J6cAoliW8EBrXysy7H98fZCAVE7Dz9iW1oOEUbLSODPnEc944+8mTQ9iWGUQMHu9dpB+SaINsAz5w0/iYT3WMJyGgdFfnvDZ7CUVybJNx28xM/dutIDnjzBsxlkvQ8vGriepnODVJ7XbZKgBTeYy5H1a3lwYgrw1/OdZG19aD4loDeOQR3uBuMFnPzzoJAtDAp6LeM4YZT4yLvP/DD+Y9eXz1z/tNgu00E/BzY5tzc8txAHorz8cr1fWOyrSijFrpwNPJhVRzmmBTudW5+GMOmsnyyhRS46BUL92+5oDzz6XWNQ3Grjb2TrTTjuuE8Z2rkJVB8Z7rkH/9tWIE6/Hj4h1CM/pQLhOE5ZRy2eRLgLdTUoFimXdXO5AFD5TTpMuUCgF0gVQZ3wsDIDy5GQHriXn1p/0gSGCeMZZWDyZhER3e4RWTmfd5GoEzcDN7qwq+Ftc7fZ9uG2ZDc/sd46pqQXzmy8fWCg5V2y7PoxKgW7C6D4b4q1m//mDSXuMjN0MWy/X9CR2l3N5wmcrbuAylmSGhyDRj9tMBZ+1/rrJYDOZsj58Ekh9wBSrJ2rLcow9PYdQi2BD4tpnRjSHf+YhW6p9/4cHnmgBivAZWOgDWJLHBVy3/MFEeOTz95htSa+FS+7fYGYmFuyPK0LnAmETj3N4jNy5d7255x6Aa37BlAN8CnDKdWhhUz6TDjolhpnCsE2mnRNXu5PP/djOWJKRs3qyaDzd7fSIDI0H3YtGRmHtxBzQslkLyOztRIwn5nMt6nmypifHulXw1tiawowVVvhMelHqGwVXYKWsm8udmMJnwaddd7CcAukAqLAhynIi6SewgHLQChqzgCJRx45m+FX9XvB8zYeEFG54e2fhkNaTYsmKOIsWLETfRMY7h7V6suSSs3wSMgmbUjPwC3+/Ric/DQXuuHsmlsjTjlI0HH4x9uDvYOIaEa4g8ZGy6Yb6eGTz4VSWrTv2IbOw+RgTB5v22vDQL2zJlPfEXe6/76/HVpvuvaHHgqoIDBXgvqXjEV2xHH4hBu45EWyGJfsZqiSkGk+/4ngLngwbsRBqrZiwjFrAxHP8MOJz1nmltXQB1+2ff5C6fNMPS9gyTxjkdwI9FDIEOqdi5ZMCyycH42nlufRnH7JF5IP34wA0VlYpsHL2uyQjgugQEowYoiPwudrB5lqElqxDTU8O1vRkWSVbwi0BfL74oltSTam+rwrkpEApWDeXOwGFz5ymV1fOhwKpANSHT+6vGVawTufCZWJGg2RK+wDKBZNBaB4AlJuPejFl+dCh2rfBclRioZLi3uvWujhfzyrZDle8PwTs5DUm7MgQ2Kw5crOJbj0Wvu2QG9k3zkqprtjK3rLeewPbI3FwLJZMbrre2z4t5nbk6LlOBz59PR574bHLwufj30g/a74U4ZPQySExnQKcfE1++LE3Oy3FHD50MtaTvyUYGiK/Kexzt00B0H5XOokW5iG0zLRJRYROt3Oxsq5yscys57kOJZV4mazqqg0y22EVVfis9m+14p1/KVo3lzt7hc/iXRu6pyQKZAqf3IyUYeLzGIDyXiNxhrSAchBAeRNybRwTx4F69ichXa6byArqWUC5iAJo/i9rKXsjVkJJFpE9MRHHZiuHhg8h8lYsjtJblpao8GgGLNSG6sMydrTW69XO+Ez/GPg8DL6WM3OEzfCxZQqfXH/byRuXWD63/PsdGU9WKcGnQKd06ZL55qdXvA8BdAanGUBn8Aehk0+HEOcZdZeOb/WUwvEM/RxEBjvHoCsaTwvnIKpU0No5hkdeU71ILqrH9cK+7RxrAZ71Nu4TP4zRQtbGdyp8Zny96QqZKVDq1s3lzkbhM7O51qULpMByABq2fMohLAHQWBKS54LnwlL2JymAJjipUBzocm54BdACXRTYrMTzJduDFAwP91CX5Zf0G8AbHk/GbVaWDbv1ox5MJtpe4c4+2HI28CnH9MDGI60V9IHP/G9Wh7nS8BkGTp4EmzswYEGAM1Y6yb5aYzsTyc9J/pAhbA675CLC5TAsnbJdaZvJLfajEgXHIsygw7B2chlCJ+GTg3GeHEwo4liHOE/Ge65CY4i1KP/FHzWsS0vLu8JnVpebrpRCgXKzbi53OgqfermXjALJADQZfPLACaAcnV3IKnXw2WD7wUv/d7GAOnOXD6Byh4pPtt6rRwYAam+HFeyG/0rLRvPOyJaSuVYq9UBqDu4y0SdG404vF/jkhm74+UDWcq0UfMZc6y6eU+rrEi5nXOtafnzFAm7bYaIMGB8npHi8Bc3gQ04L6BDbZjqQHEJWeyzD3UEnXe8jsHYuONPoAF7n9obRu31+EdZOdC2iNXMt+rVbCIW1k2Mt63riO4Sudo5U8HnW/9V4z6wvyCpcsZytm8tNl8JnFV7MpXzKiQB0OfjkuSQFUL7pQ6iAJ1/nc96XJIkkFYBynTSSkSoRQL/WcQx6UdebN/bfX9RLZ9MHp8x917cWdZ+lurNcADRb+Cw2eApw2o8aoJOfe1absAMUGEsmch2i+LL0Xw+gcy9o7oXOoI6nxHeygLyUZ5WC8dyOuNgDaydhk8XmAZ8uGLQTgMmx1rWIXd3bAEsn3Ozt9YZJcg34OpGwYIXPUv0Ulc9xVSpw+jOg8Fk+12PVHGkYQFPBpw+gHbCAdvoW0DCACnjyUdzxqQCUy8pBSI1HV0InVtcx4pp6o5anvVdWiBX0G93HWvB8w+77in79nfjhiLn7OpQ3qLKxbducOeKIpZ2FsgXQbOAzEXj+5vZpc+bp+e/1LtBJ4ORgNzEZ4lrn336rUlo57ecMD5KkRqiUMkqSVCRbYreiWFb7WFD+imPQtcjkugMoGi8xov3DweeYLW851jhrp+3bjtaZ6xDrSdhkwwTGgKYLn2e//9Yqu5r1dNNRoJLc6emcL5dR+ExXKV2uqAr4AJoOfMbVAgWA0qrJUkzWBW/vIknc8GEA5bKprKACoFw2EYRWEIB+Z/0mUwc45w220G0dwxfYyZdN2zaP1QKgg0OLZvWpq8zWH/Uh0cmYww5bCqDHA8j/4ezMPoqZwOdpV73EXPL/2jsTMNuuqs6fqnqvqm6N7728BIiJbYMSoNOtqJ9CFFBC1Gb4WtGoKDZIaEFsaY0oSHCWfMFuho/YNCDIFKBJGGwQWkEwiNAMARIImVohDRIIeVX16tV0a3rV67/PXuesc+65t+58z/A/3/de3XuGffb+733u/d2191pr7p8abvDuD2w6RxrA51vevRH80pNnO6tE6uw0cOJwAjptdiI/jY5zLHSqpRPPOjzWsblpcple1yl1rO9UT/altRg6T/kA8QdSEWQqijzfxaNdQyipJfOkgCYcz06I1XNCdp7EX+mfOR97lvDZ01Co7MVVsG626lzCZ2WHfv4brgDaCXw6zvTZkPA6G0AVRP1fk4f80Gl4FKrfYToNX2Ir6B13hRbd23/skuCn7h5sTnE7Ih/9+5IzWzoeMSk/9ZL+W9vyOPrhHDP/r2rBwdJ2cJfoDpC66KLs3OqP/N16cNVjTZSGFg1qFz6bTbP/5Q3rwTEBzyc/fiZ4+gu/ETzm4fPBL18+17GEdlod2cGwRdPqgE9kgvJNQsgktVTasElnvMUT154+E0c8UOjUa5bFuhm9dukyw3PjeJ0IGB+ObYRPWpH1nbZ+2H9SPNqxnSthlLCdJ38R3aAmMWfhaKQTJu3C5xN+g1bPjgdNiS6oonWzVfcRPks0uMvYFABop/AJHWqSvjKOBeoDlPvc8EEUD7QJhLYzDZ8GUPdN6ndGgenjqfiiTsNH8PnjP+SG1099pf0Ykb2Mx0uvliw8kp4UAPrxPw0zxpR9Q8adxZNCNQ86Htz5V9908LQrJrmLH9a8/Y8SSH/+o2KLXlqj6+49EWzfdFdT6R767EcEVz/k602Pv/T1a8FxCR8E+Dwmswgf/Mxm8JDvmAqe/tPtWT6zgFNDJeGm2xLDXdDQ3b9ugHNd1nUigLxuZ4z1c9VAJ/KwY9N1nCsCndFrpM30ZZzyKTHDLEUKnXi9E4VeQoB+bCd87E6Eiz1nXqyeYuY8IWs+j0jgVrV2dgqfT/7tG8s+fNm+DAWqbt1sNSgIn3xkcq/A7QKg2OyXUbrS6aiPODfpiGQAFN8xUTxQA6DYnw7HhH0ZcSGj+zezgiIpvPtG1cxIxVwLqvCJptz+45c4GPyZ/zc4C+jjrx2XqXZxCkHKSFkDWCUAXZGsOgigP4kMXv/6eHCHACjgE+GmkFbze7/HJK1v8dQ+6b/LMglJ9XlEFiIekb8TYtl3r+Xv65+w3NbzftUrTgczYuGbnhp38HnRhUeCN75/NfjOC2rB/SVf+dN+pjV8KnQi7adu7pHw5khAp25bPhsR3mP9pj7L8Fq3tt0zPu86zkOMTmwudqe+9qQZTruHpZ9aDT2WzsLbXcInha9lat4Fjg9L1ziy+M15TNZ2Yor95Fw4tX5CrJ1YAjEzGcfuxDWEz7aGUeVOonWz/S4nfLavFc8coQIA0E7hE9XNBNA5T5NpANXk27gw7Q2fBaD6zZgOyYTro/ScxYZQC5+3ydQ7vrjhAYyA2z/3jcPTM3YyZC5/43SwLelL95C7XODze87GoHTNb53opKhCnru8clZgD04u48GYpBENLpgPDv55Nbjli7IEQTTZE8335DfMJT/YHoR2IwKm1Y/LmsYZcTIDfF71nMUA6U9f/a5lsQhOBheeOymB1Mez4dM/BzqljvvveCciFyLJ51sHUdYxxS4bohphWt299s/TmiQQiF4jPJLfj1id+tpNs3vo1Nidegxl6fQ6QisBNLEBNlfE6qlgemYj/OUI2Dwu0AnYPDknsTsBnQif5Bd9zqEvZNPYne6aDqbdf/YFN3bTFbymIArQutldRxE+u9ONV41AgTveFVpAs7Ysy6c9TwPS43tsYc5bQQ+D0FbOSBp43JpmmsYF9QCKCsESWiCHJAuft152iTMbwSPYhcIBhMp7gNHTV7/Q1Yh45vuPuyDo9Q2BTvn7oKV7MsupCnweFUM81hXOCPCMIZ/9zERwIE4wn7t5O4JPpHYE1NVlWNXFMefyJ3YfjurSZ94d1MSju+bTl85OT0Tw+eLfOBY8+mlfCY7J2sfz5sXD++RUcFyemfufGA+eqg5HLYDTDXdj4az7+JzYr8CJ1wBQAKd7Lc/TmgCnvsZftWzi9YqZcg8tmDIG/YhZdlmIwndnJTPAaZ+pyE21b+y4H0yuvNV4mQJCJmE7dyGcAZmQqfWTftp9zi/PUcejbuDzKVfd2NVzwYvyqwCtm/3pG8Jnf3RkKUNSoBmAHgafOO4ckeAJL1vHAIqL0mtBbRrFtBUU5h2dciywFdTCJyT44mMf4b7EAZ0WPvdkfeauwCOmWc/K3103bX7WQeq+WLn2dsLXW8gYI8Dk3svffVkni/Pu989faTmCqgCfEGBVQgLB8hZIKqWJ8QOxsMk0vIDhhMSSDB4gltCvrAYf/cd6Aj7hJQ4I3RLLIv5hQxagze09+SdgL32z6cfghui+JRCIfbhmVqysFj5veNkF7voXvHQ5+OStq27944nZo8H87ISEG5p0a6l/82nz7pwddRGX13YdZ5iBKNwscOL9pnEYQvpLbGqxXMd0uX+OEJvTWjKXDXQibJK9bmkjDAaPbdmHTsJrlypTxtuBBo1fjqHzhP8cQJuwQXNYfLG+c1am2Mdlh4VOnNMpfD719z4aC8FXhVaA1s3+dx/hs/+assQBK5AFoO3AJ6qFL09scEZamB9za8qmrAUUO9QhCSfqVHzHVlD/bShf9tEWxQgtzlR8Gj5veYzAZwo8116ZTN148PPf1xQ+9wSGHKQaAD3+heYOMapdVeAT6z6xIY0nUoaOy1oTWEL39iWWpBjnMH7HBAgPfN7xG/5604Uo6gU+P/y673D3fPkb1oKb71oPvnpv3U1FT8u9jgl4LswcDebkGZmbOhKckGfmWb8QerrjxwSm07FFU+ryugE4M4LC4xo8IQBO99pAZwJA/eOjU+s4V6fNV/BDxg+QFR86CW+/JU5Etswlc2xBgsJjO6mWTmnnMR86qSbti35f9gifT/sDgmf0uVfQFwTOwXYc4XOw+rL0ASmQBtB24RPVsQCK97EVNBUTtCZTcvhWnMJfOdFmSMK3FCwqah5BQfgettPw2KdBBv3at8ABqK+tesfn3CnJAuiH/k+94x49fenFkeUzDZ/zN93ZVnlVgU+IsSRrPyOjurw4KxZGQU4BerGEyrDDtDvC+wAOYXE877wjbt/R8yaDg2Vjdmyh7Ps+uOWO3vx/d52FFMB5nwAtwBEZeqbFIjop9zghsDYra6PnZGp+VtaBXvn0OMTStr8VHhEXJgnD34//LRTv36wJfGrwdpyz7j3U3fnyD1ZOe62dZlcrpx5fXpcQSkqn0MpDOG51SjITYXPB5iU7kULqlASCd9Zk2c7xlk5pWmjpFPicEacqWDqx9QM+r/iTf2hrTPOkfCnA6fTh9gfhc7h68259VMACaCfwiSrIwHdf3sgJj60pgMoXrtsmTbxFQOTC6vYAACAASURBVCi+4fw6OXccEIpvUjsVr21VAMX7CEK9F3wBALRX+LRd/i8PvyiyfNY+cXvbo6FK8AlRlpbg6R16bQOs8M95/wuA4rXGx9z24wnsBAsovMjVe3tGxvdm/UDg8iA4JdPW8CrfkPdbcg6Ac31r303Bb8oYRJxLTMUrPE7L2k+kjZyXvzWZhobX91W/siD3iLsszj4UEueWOg7JQxDlV/enI4apbvjNdtqkwsT+08axCO9PRVPr4iTkr4XHOrZleLB7yA3TYaoX+0GwKutjFTqPmudTodM5EyF8EjzYpW3Cnm7rF3wSPNt+pHNxIq2bo+sGwufotOed+6CAAmg38InbA0CxAUIbABQHGjziPYRKCJto0y85Na/gQKZDknpnGPOoxgTd9ROIObSC9hM+Ic1XLv6uYPLG29ru/aqBpxXm6/fAiQZe7uH6T7eG1lkaQ6cjgNaOzwa0JUZpgCbWfU7LUsZNB6ICl34dKPKdb8jaz02BzC0BT2yA0NNyzvbmvoBpuM4Szk6zssYTTkjzYvGckqUnL37uOe58O71unYZwIWJzYlOA3TBe69iv+db1nLTFU4FTj6+IldOWd+p07L2kYZNw3KXSFOhU6+o41iz47YRPiwm4VOgEWEcWzj7C56+8mBbPth/qEZ1I6+aIhM+4LeEzP33BmnSpAAC0W/jELRVA1Rlp3nvDT6dTc6oVFBdhDSi+a3VNqLWCtg2hptZqAQWEoly4MmPzkDCsIPVj95MMO/eGU7J2UwDtZto9q1u/fspEAGjR71UGTyvLP39Z1jd6BzZMsSP+545ICPDc9UZ0QCdAs+5hE+9DS6e3TMrU+Lr8uFHL6JaA56q3fqoDEqbzYTGdES/7GfmBhSnpq597XgSUdbGeWkcgTXepddU86xo4/rQJ9I5zojSY/gI4EtnybApMF8NTwiR5fyF3xdKZEEDDUEthwwHgiLigjx3gc9Gv6TxPptaxjcnBaUy/+2Uy/YbPX7uG4NniMR7pIVo3Ryp/05sTPvPZL6xVhwrclgrDlI4J2ginsfVRj9XE4rMojkjY5sSxAlsEoGIBijasBcUmgbujTR2S1CKK4nU9aJYVNDEVrxZRk6kmmo4fLoSOfdfx4Lb33hs89KGNWXUAoMOEz2bgiXSPz+givWOHQyqXp3/h1nDeG5ZQBG3fgaVTAPSIzB+r1RPOR9gAnph2V/h03u9i3dwSyye2ta29AN7vzhtezoMj2RGBz5pYBvGDbFbG9Mufdz+ZTk8+PRY4AYFq8dRnLu2prvE4cc90fE7sA6CqRzpqpnE5dWmnm2b3G6beTyt0yr3RVqzfxHbcp8PEa4SGwgYgnbLT632Gz+f+14/lcpxUuVK0bhaj9wmfxegn1rINBSyAdgOfuAUAFJtCqFpBpyIrqAdO54zkKxWBp4FRhdAsK6j7FtZv0wxveJ2CxylDhtCxhwh8vicbPlGda9+01kZPHH7KYZbPLPD8249sBT/+2FpwzWvOBC941sLhN6nAGR/5h7oDMAyzMNQS/oZjSsFT368jzJK3dOL4uljXHbA6+AyvmYSzkcDaa17wAPc+CoNkPNaxPw2gZ1JOQ+k1nMi1bsvDFLy1eJ7yFk09Z0VidBq3q2Bp1f8Iw/S+z4gEZyFsJzx04i2CxGPD6yl5lvWcaG1nH+HzypcSPPPyiNG6mZeeaL8ehM/2teKZBVBAAbRb+NTrYPlZlHWgmD5cEPDEV3NNARQ6yLSk26a9FVQBFPvUImrXhbY7FY/rNSRTKwjFeQOYkh+TLDYHKzvBXWLlfPCDjZOV6fsf+J168Ev/pr1p82ZDphl8NrN2Xv++zWBxdszB55++6kzwoucQPi3M4TXScNrtz69bE6umTL37cF+wfG5J/nRMt2ODw9EmAvyLZRPrPd9x9YXR5en1m+58E6MTv53OaFpLf1UjcBonI0+aFjqxaykKixT+GoPVU9du2il4WGXXJCORLuc8cexo9Prc+dApcFwCxE/JMgH32i/JHhR8Pu8VBM9mz/Yw9tO6OQyVB3sPwudg9WXpI1Lg9ncmsyG1M+2Oqip84nysfUOQm8VFMaPId+PcfPiNFkEoABTfmdYKqmk5LYzqAjNcrHOE+OaVL8twMw5IJnB3BKE4RUHUAukA1oWOyZf3gVjOAJ+o4kUXZQMoqnTJC7eDp1zUXmif9DBIw+f8U743uOr8uzNHy1+8fT1YFPD/2SfNBJdecXfwhEvOCa68Igx0XrXNWgvRdgucNo86jrlc6rrJheoZrwuk6wKiujYTp+l6TbzG+FcAtcNTgdOdA0cfjdPp74Mpdq2j/rX7cNqSzzykZayaPOvuuMTv1G15JXytMImpdXUoOhlBp1g5JUanWjft+f2Gz+e/8h+rNuRy015aN3PTFX2pCOGzLzKykDwqYAG0G/jUNoVrQcMpvgYABTemraA4UeFTHZOwL2EJ9aVHACrvrWeFVhjlS7agaFP41Ol4HFDK6NESeurUfnDixEQwcd5UcHBqO7jzTkl56dJnBsG/u7hxDajt80uv2Q9+8gGbLYfB545fGBwVq/CEpI2cEAetaYGH//bwb7S85iUyxX5C1uECPs89Nh6852PrwYPOnwr+y9MrAp/mdwleahghNyy8A5L+YIL3uwZ9h6g7fvodryXbpFg4fWH+z7rAp50hgMURMTnd+b5XEATeAi/OWUkFhrc513FZOgUm9i2LhdNC6WnJse7u44f2KaSc9Y1DasyV0yF04hpkIxrzP9pOzMbwqUtkNEzSoOHzhX9O8Gz5sPb5IK2bfRY0Z8URPnPWIaxOfxVQAO0FPlEj/aJbgBVUtvnZDCuofmurQ5IDT/81rl7xOCdhCW3RXkcb5rhCKMrEay1bp+kVQnGddyrpxEv+1NJ+MFMTT2cJMD4mebwPlraDL92+4+Bz30Po9z98qr8d1KS050t6x5roVxNQBXxe/MCjwV+8dzk4/7xacMHJieDZv1hS+LRG8NSgRYxPu+2mLJsa+1OtmbBs2g3DRcMjadHpcEjOgUjXb/p4YWm4dE5DqTWeFjh1WLrUlkrLUhF1JFKoxHHbxNM+QP6+wOdiZNUM23CO91rHa+Sfd1sqTNKg4PP3XkXoHMpDjy4di5d+HBx8bVi35X1GoADhcwSi85bDVQAA2it82rWgC2KBw6YAii/bGT8lH6hXvAIoTDsWPPFav52tt7zOwGfli8fNbAPs1HvitTlJp+Q9hLovfO8F3Ux9ZNZB9RCS5ohYJsdPiLXzvNnglnfdG8En1hAi0DisbP/+cbW+duQv/M7XJbTPkaAm95+RFKeAzz/89cXgab/7DVl1cDY4KYHOLzx30sHoFT8XZ9rpayWGXVgL2NzzSzCsZdNWDwHl7VbXLENmGNhYnLHzEALYx9sZk3FIxyaCwJtEQm63hknS4k+nwiShTKS8xKarR1ZW40q6NZ7+uNZl2Vs43UUCqjMSXxRrN7EdFwBFelFsszIudIuWTw8YPv/w1YTOYTwOBM5hqJy/exA+89cnrNEAFPhSag0oMhzpZrnOrvm01bD70+k5570j0oy3hobfluqQ5P/idvgC1dvaNaFRik45qFZRnJfOlqTXOouof2On5Pe8xwkORVAqbySwuNv8tDxeHmimpZTWa7JmD7nEJ8SMNCGez0fF8hhcMBscfHU9uOnz286BReGz7svA+y15/cs/M9t2z132n+52Ti4a2gfra5FJR+Hz2hedF9x6207w3JfeE9TEGnvuwmRw4f1rkl98XHJxjwfPekoB4TNpiIy6EEMRKTSxJQzdpo9wjs0upEJvey9116fyT2HTruBYs6GSfB3gPGThUsFSy8Hf9FpNZ/E0azpxzrJZnxmt8RTPdDtVf59Pe6n7kPpS4dT9cJMfG25z2YdCyBzzADrrU9pmWTUHafn849d+ou2xzBM7U4DT6Z3pVdazCZ9l7Vm2K1MBhdBe4FMLxpQwtsgSmoZQXQuKk3SqEK+tJdRaPwX23AZAsBAKQ5AFF31tY4VG3+ZyrkIoytII5HitEIrXTUB0VdIawrI0BviUv7gFqgJL6NEZqd/588HB3WeC//13WxIHP6yIwifygm8JiCL0z6aG+5G1qUjrWEeMSX9/FwhdLLJZ8Pm2P/s2581+012rwbeWdoOTJ44GWOc3L//OXZwSJ7AgeN4zi+fpbmafnWZp5yCdUrfQZmHTwadaNs3I1pSWbthEYJm0bGL/RsoxCOen42+6fRtyrSFgBIHXLYJLTKf7e+lQXEkB55Jf0+naKoMXwGnbdlTHuhw/7gPCq0UTFm+FTYXQYcHn1a8jdJrh1beXtG72TcrSFET4LE1XsiHtKgAA7Qd8qtUGzhyLi+IlLt/ECzL9rqFikKLQbfoX3+rRdLzsd5ZQ//V9NJ5WDLIgFOWATVPWM1c+TFiWBhyIemjAOkG9xoIorrMwaqbnV8TxCCFtAEz4Oyb/TYwfOKZFNafFAevIcXkxJ+tC79lwVXjDOzcEKDuHz0+85YHu+te/Yz343F1bwVfvqwfbUhfkKV+U1Ig1gfNFgfhZ+TcvU/HH5ieCK5+R8/Weopu1YCL7TgRw/sW+zE7rOHFdYYIGaFeGqSzNtfJyS5NPGZJbE2CMyvenb4jjkIVIN23uz7MQuBw5D8X3WV619wxfh+s+4/ssa9xN1NCffsoAJ6qtazz1uI4llAeY1CxE+G01IxZOkxVz6PB5zV9+MtKQL3pXgNbN3jUsewmEz7L3MNuXqcBtNzwu2t/ptHv6ix7vMRWP7+B0cHociyAUlkNsOFEhFO+bhWU6olP2coFaSAGa1gyUXpjneMUQqlpHsctaSnFf6zGvr3GeQOnyffsOPjEdjF3qWY3LAKPIMT4u/LkrgDQlDkrYzpG1sFgLCpA6eYGHacz4Iwe5lIMyPnfLjsCl/P2nXZfmEesUv3V611lGvyUheOAkAysg4qzC2rnoc4tDwzmZlv/D5x7LzYi2MmulbOgjhUsHmqlaA67DsRD+hZe65k235SIup266v9FJSGJ5pvKq45pkLnUDlx449fbqLJSA0rU4aKjuXzLrN7VBywKcCachsXBiQyai8G9yuB5bDEN3YQjXfPQHLPEIx1Us0rAsn3/2BkJnvx4oWjf7pWQ1yiF8VqOf2comCgBC+wGf+kWO9YkocFFALLSECpTK37k5CVjvv5DHZtS7SK6KLKFyUsISarIlRWtC5Xy8tpSg39h2n3JGep+FTzs1j8rDY96eL4HJv/nlbbcL/zBNDMNpFOpHdgKgFKJ2vF8Jsuygisiug03zjeM90j1iu28VGXWQ6jEEnBUBGKSIRKadDZminxHLKmBzRqB8XpYrIHA4LJ8vufLEwMdxepmt9qveWKWFDgmg9Bq581MnhyGQ4g16Ii1m4lxoZdZm2q5I50/HdYjJaUvV81eRS93fKtonVks7xgGE7QJnGPQ9rvuyz0Rkf/NojnXXHrkR8s5bkDwuFmzdZuUHBDb8gNFtFPD5sjcROnt9mGjd7FXBal9P+Kx2/7P1osCtxgrajsNRxBYpc5Z+ScNbG9uCTMUrYCzMhQHr5yRLj5LImDoooRyZUo5O9k4W7r1aP91rD616X2sBzcofbyvqLKIGQewaUZxnwdSZOgUM5e/Xb9t08AFL557AJyx7Gqwcl+wINOKfWvw0v3iUTxzQ6VI4hpXeFKh1OcbFUndmI5xrRgYeHF/b2HM5ymH1nJC2TguozIsWb74mTPXYj81BT5bJ0hRuuzWG7eTd4Yme+A0AoPSx0RPFA9L92lgrP7TFMoXE7wPZl5VZCOdEjkSmcgknIbM/sZbTVxv7bP4ClLkq1k2bFAn70lPluBzWzWgoiSDOycjcD9ep1VbD1mJKXddwKnCiDB2mo4LPV1z36X4Mo8qWQetmZbu+7w0nfPZdUhZYRAUUQPsBn/q9nHZIAmnMy5pFfFnPC4RGDKmWUIVQJZJp4x2fBk9MwyvN2NSdKANQqmXgfRpMbaRy7ayITHytEqRyNvjyZzbctDmsn7sepgBgmGIHeNS9JQ9Wr02XX9zDpkAl8oYj57iDT4CnWDjXJKh42gHpjKxJhNc7NoTcef+1395yKFmA6XrMiU7OumvhUyXwSw4cNJkTgPCAcWxJ4/KYs2gmLJK+XBfg3QKbf7Mucfnt2k8tz63Z1PP931W37jKuqL4O01rGBxxEpuJw4ip0KSyjYb3jHyKnxLpp2wJLdFoPtW6e9detS19NeFHgFHRMrZt+rM2IM17sLBSXNgr4fOVbCZzdPh+0bnarHK87TAHC52EK8XilFPjS9eFaUDtNaeHD7k8b0Czv2W9zTBvje3rxWDgFjw0Qijdz4iGv+yYSEGoC1CN/fAQiUgN4/ehFWDenxzAXGq0T9TVVU5TCBt6n4TNJUGEFG84Jgjs+dsZNqSp8IprTrlg96wKWsHhiA3RizaZOuztLqADolvfUXhfz4Lrk6NaYlOuyvnRLLJ91mW4HpH7qhgc1jjdLQo6SMoZkusOyzrOA5otIrtEMdyrIwdJroU7v6ix93kEoaeUMz4BXeiJZla9vlK7S3SNuA0DOlq2v06ksdX9yLWe41waCt3VePpOEUpyLbEO6JjNsb7j0QV+rdAqcWtfVtb3EdPo5x8P1mwqU+LFlp9tHDZ9//vbPZAwU7jpMAVo3D1OIx/uhAOGzHyqyjFIpAADtJ3zi6x9f4DPImy4vsB4UADXvA9PjmIXQIxGEygEErbewpVPy2GfDNKEHdBpez9c88jgGMMX79IJAOw0dAW6GeS267mxw04cEQgFf0gw4HIWhlTx8+gD0AElsagXV0EuweLowS97THlD6nteIhbMVYDZQvh9uzSDU71cIi34UmPPxY2DHW3fTFkYLYZFjkO9DHegOQDX0UaRb/BioA5ArywwmWHdtGXqvtVTKynB/YypLPT/LshlCZFi+lUxzqdt9Kya/ehQQXpY9JH6HSFEr4kBkgfKc4/FaZMDllITgssMsD/D5qncQOjv9QCZwdqoYz+9VAcJnrwry+tIq8EVvBUUDs6bj27V8KnwqFCCoNhDhOMIzefUQqD4NoS6uprvIn2RjhSqEqueHBVGcj2l6S13qtGQB003Pm+7D+QkYtRDqz9Nd3jJ641+tOmchTLvr1HpdLJ+I7YktXAMaTrdjQ2zPa6++f0xkaXDLALnEEgKrB15HUBy3Q0MbZUGnAmkUox/OQP6eyCmum+5DfnQ9NwFm/g2885PXhYXhsFo00wEJnA6pqXKklMS2moqzGYGhh0rXZNMth+VR17pEudQNmC9vhNZOW//lFb9w1bcBzkJqPMe5SASgm4JmXuDz1dcTOuOnoPUrTqe3qxTPG5QChM9BKctyS6GAAmg/4TOkE8TLDKfhj8Mz3kPUrA9Uj1Occ5KHjWk4J2VBKCDQrg1FgRrEXgtNgycKjaykSl6yTykiorFUFybmkuWYjTuaRWiWklxDfHmJAJR+Xxois5YCqHdMGpi9RlpbXArv/GjZqrE8pqebcY1Cc9gvHh4T14hzkIfpLKAFvK17T/UD02Y9F1bQaBWDKXfZr8s0tw2rAItjxppN56WeyjAUWjs1pWXSqpoGTpS95M9Vn/jTkt5SwVfroXnVFS5hsY82Ew4gD/D52nd+NjVI+baZArRucmzkSQHCZ556g3XJrQK3vqNxLWi3ls+QMMKm4g9yqTsI9YHqsd9C6KyHUJxTA4QqY4BG7DpRXJi2iOK9nWqHhTRtioOVNAsM1eSVXv9pgzfGZsOwQVq2lmezM2U5OkVt8V2v5SXcsL1WvuwsS+LZxM7wfHWCSlTLwJ+t+o5fJmAzEUXHfdkbEuDd3ifd9E2XsjImYzs+kmsvw3O0yqfhSJSCXRxPg6aevyLT4wmu91ppGCRbNnKtW98xDLjTPhanOh3VTCYuzas+JWNSf4vISs74ucwJfL72XYTOwz4sad08TCEeH6UChM9Rqs97F0oBAKhdC9ov+HQQCkuogVCFC6wF1S2CUF+JGcQU9RAznoZQFIBpelthnTKNABFWUr+Gz+5DoTa2aHTMF6be9ZbUIoj0L+xcbQO8+hZZglLYzABMvTwBfv42cdVi6NNpZLVCYt1mXEY85BIe4r689VQAdj1bAQ510PWcCQCM6iOpJH0Z9rjeH9PqyUACcb2XfGahRs91H7jdPC0o+7QE59exo4dO+TzqdjnFsodNd66v5xScg3RoyTCa9j9a7JrNvMHn695D4DzsA5PWzcMU4vG8KED4zEtPsB6FUeAL3grab/hUkEScUC17UYLUY5tfiIPUA1fmBDYVUmo+w5ACzhFnHTXT6SjAxx4NadVL7TPMJABVU3umr3dAqtCof625zu9ToElbNLVx+OtB005Ra933FT6thdK/tqFI00Ca4GB/voU4PY7p8+has8ZTwfasr9u6Oc8Cnr3PaR+2KIQ6C7+hFon1mGZ0Az6jIO8pi+dpiQTgpIraEL5YRjgks9xAj2PdZtISLPB7Juk4hONHPUkqXCIrlcRgCGuVYc103R0dHp3l8w3/6/NGOb5MK0DrJsdEURUgfBa151jvkSoAAB0UfCrsAEJ1GveY94zHsbmFkPAASvMSvN7C1Kw4KdmpX7ckFFZRBT6p9JiH1cT0PQoUz+Vos1P7sI5mWTnVhIeyFW4jE6EvyUyfK+BpeCMLbBMeeg+DTw1mHsGihbcIUs3Ut7+/tZqiKQh7lGhSAuz8tLgvD9mEssBXm4r4m83KQhuxfjNxvb9XVpB31X/JWzU1rqbbL9dpwHdr0IZHum5ZoaHGPXECOBMpLHMMn296L6Gz2QccrZsj/ejnzfukAOGzT0KymGoqcMv/jHPER84oMQkoMyQcz6OdIU+Eb9VQqWtB9YBQxtR0PF26KBZQ3QBUCwKieu2Mn3pX0MI0fdrRBU5O7n4GCsf9vghQPVU5SFWzmmbvMWa2MYVVBVszn6ywpTCJewKWsZYwCz6j830ZFub0WNK6mQREpKaMrafxWFRLpr12L2VdBYgmLJcKrAZIUQdAJjY7bW6n8yMnoSwrqFhJ4zWkMTriVppVKGHBlFNW1v20ur9JvEZULJspiykC/mOLc6LLjw6E6ZItGf4o1iZvls83v4/AmfUpSutmNb9byt5qwmfZe5jtG7gCCqCDgk8Hbh6EJifj5ixqnFABEaTyVOgEWM7KsYTzjJwTwmhY0P7ZEELnZN2owphCHsCm5oE0DZGAuTTARjBngFah84gHVIXA8N5hG85mwWoEfjH57XvwtSCr8KxhlVx5Zno+CnPUYsre1kXhE+s1k1bOJOTimqUzBh6jtZ5xvyyb42kHpiUJ8I5N4dFaqZdN7E1dtwpPdnUMspb2uk9XirJ07SbWDEeB3ePfKLmGz7e+/+aBP59FvAGtm0XsNda5EwUIn52oxXOpQAsFbn57aAWNsEnD9mBf2qKp7315rSyfDqyi68MXsCBG+wSAjosFVEEHU/EWrACcLqOSbApw8TpRA3kCfjMyba9gZMEOQFYTUFWITB7z9/MwiRSZeh+1ciJVvG6Z8JmaHkeopOh8f8xCoQKpgq/TSEHTQK3ugyPRnoKisRqmraCqm1o5I8OvtWb6+sAbPWu6XU9dFucfC93WsrmyGlo19xPe8TJFr2s+jV6AzzUfnN6mtNQfCMk1m+GSjPEcw+fbPnALP0dSCtC6ySFRNQUIn1XrcbZ34Ap83kNoFDNS7thv+HSw5QFl0q+3VGhc8PCpsKXvFdDmjFXUWhNr034tqVpHfflYRxpPi4fyWaslwBJT/gqkFrh0OjhhofTlKpDaFJcKnfZ8bYeW5aAtA0gja6ihPIVUXGPhU6fIs6f3k85DasmMp//NcUyPe2BUkDxrCoUWqz51Zdr7fUmyPYVihjQcWTsl9qaZ8XdT6RprU62cOr3uLkw4DOUTPt9O4Gz43KF1c+AfxbxBjhUgfOa4c1i1Yivw+bdd6hoAkBgkfCrUAI5gddSpXLzH1Lx1tlnwoZsUpACACwtyTeyzEoEmLJ0h6BnYUuiTfbPwqgfUqdXSn4ec6LrptRYCp325/YLPNe91bq2gUZ0siCr0ppyUVtbCA7oUweplra3LZ8LzFGJDYIy1WT7tE75jfzQdH75YQmxOe18vEIK86wEb7B3OZrqpwxDeFwk+r/+bLxT7AR5A7QmcAxCVRRZSAcJnIbuNlS6KAgDQYcKnAyIPOVNToUpqidTp+BC0wmNzHiAT0+jCWIsyjR9ZFxNT4JjCj62ce/sxJKnVctfAKmDY3c8AaQydIbjZ8y0Uax9rPay1dVfXgZrpaQufS6veOShrit1eY+q6dEbXw8aj66yhT+XY+7wnOs46sFZOz6FL4igULV0wNswVk7rSOi1FIY2MBVNDqeIeRYLPK3/u3OCRz/hwUR7PgdeT0+kDl5g3KKgChM+CdhyrXSwFPvtWbwWN3NvD+rfj7e4AMrXm0+1LeWWnvcLTYYumjsaa4dxj4qQUr78Mjy1IXNF4StvDmL/PolhNFVJ3jQVUS1Wo1OD32B+BpgdYu/ZT62+n07OgUuE0sW7U05vWA/dKrAn1x3Ufps7THvVOQwOnUeQo2ReFNEo4RaWm2wUy7RS7BUoNf5QO8aRtGTfz5kWHz1/9DyfdEJg6ItG6xMGs6vBJ62axPptZ29EoQPgcje68a0UVuOm6EEJtek33tkWopX7Bp50unvYgGq+nDIJzAKPGyqnHNMe8hUm1QuoUO6BV4TAJmGHD9DyFy7AstXzGgyFrX5ZzUdb6zwSI6hKADEenlfX9yCHKwuGeIdF9b9G1U+n79rgPUL+8aqbazUJNnLopKTuth3rCmllg+Lz8MSeCKR91YVpgc1KyJVUZPmndrOiHOZvdkwKEz57k48VUoDsFbnpLvB50FPAZWUU9nMFihS3t6HOOmX630+MKeovijKSbQueuB1gLgxFUmun3BX9t5nkWGv01yTWdB5L1pteJcgAAG01JREFURy2zjdPlkcXVrPm012v7l1ZieEzEJI1CUoWtg3PQgaF3XR+KaXfNIW+toHs+lFVZ4POJP3QsqGlGLNGj6vBJ62Z3n3u8igqoAoRPjgUqMEIFPqMQOmTLZxo+rQVU5ZhU62jGFPu8rhU1llKFyMgCasBv3jsZWctnFIbJnKeAuxtGIkoAcRJSG49jWn1pPSTVfd+grKl4HNe1nHoc6zSTWYg80Bpr5pb3anfXZ6QBLRt8/sT3H4tiuqLNVYZPWjdH+CHJW5dSAcJnKbuVjSqKAl+6/nEB1v+tSYYeBzXpeKCpIOaJfOUdrvm00+7twKeeo1ZLnTqHE9Gur9febkxn0Xm+XupZj3bpeVkAqZZSd14UhsmWqxAa9+puYoo8rIzWycKnpql0ZdtrvGXS7tvcNsHjPVTbzEeHBZ8vOnz+yHcfczrWTCIDTShQRfikdbMon6KsZxEVIHwWsddY59IooPCJFIj4h8Dl2KLp2hzCZwiJfi2nmR5XsJwUxxMHgwkP98bzY9CMoW/XQ+G+Cf6566k5y+EorIsH94Tnu/d29/u2drDOMx42e17ghMOQv3cIr2F9ywyflzx0MRJkeioMm1Vl+KR1szQfq2xIARQgfBagk1jF8iqQhk9taZSisYDwuefBLQF7atE05le1XlqL5Z5/Yx2K4jiiMT0qcDpQ9GXvmhtqzMx9u4/wGTz8OxfcEJvxTkI63qoKn7RulvezlS3LtwKEz3z3D2tXcgWawadt9vJpSePYh1BL/Zp2R91aWT4Jn5jiDx2xRu1w9JALZ6KhNDPtTdIVh08CZ8k/VNm8QihA+CxEN7GSZVWgHfhUiFkSCM3Dmk/CZ34djh54fs09KrUpk9zdPzxVhU9Op5f105PtKrIChM8i9x7rXngFOoFPbSz8ZpZX9zsOMk/LZzxcyrLm8/yTYRorO21O+MT66Qujzj44+FrhPyfYACpQNgUIn2XrUbanUAp0C5/ayFPLAqF+Sv6wDEeEz+LD54nFcOp8djpp2aw6fNK6WaiPPVaWCgSETw4CKjBCBXqFz32zqPBbp7zXt3esSafXJHwWCz5nZ0PQrPkEAHaYEj5p3RzhxxZvTQV6VoDw2bOELIAKdK9AP+HTRCcK7ltCLvPQJKrhLQmf+YVPzTBVqzWu1SR8hv1G62b3nzO8kgrkTQHCZ956hPWplAKDgk+IaFNl3itWUcJnfuATBuvZWhxbU2tG+Ew+/ly7WamPQza2QgoQPivU2Wxq/hQYFnzaAO33Wquoxt/UjEU2p7q3nKYzHEFFhlpKWpVDC7OJQ+pDLU1LPM36jsnRaYYg4bPxeaR1M3+fUawRFRiEAoTPQajKMqlAmwqMAj61apou85un9iOraCKLEOGzowxHMzMTQb1u6N0LTfhs/TDQutnmhwVPowIlUoDwWaLOZFOKp0Ae4FNV2zV52r8u0/TNcrtX3fK5uHAk2KqbdElm2BE+x4JHPuPDhz6IBM5DJeIJVKDUChA+S929bFzeFcgrfKpuOwZI7/5mbNUr+7T7OXNxNqCNnUbQJHyGI2RaPPEnfarOKZEMjlNZ8Mnp9Lx/ErF+VGC4ChA+h6s370YFEgoUCT5R8fpuYwfqtPLXvhXCad7Ta55cOJo5Cje3G6fMcSLhM5SrdjR2kJqaPBw+ad3khx0VoALNFCB8cmxQgREqUCb4TMu4neFok17/+OVv7AS7xrC459+oZdXBrGfCsxpFX/Z927lhGkndNrf3mgBlo9Uya2ocFxM+PWR6sMS76ekwR30n8HnJFXe585lZaIQfLLw1Fci5AoTPnHcQq1duBaoOn+jdre1sb/Cs/fWd7PFA+EyGbWJu93J/brB1VKDoChA+i96DrH+hFSB8Ej7tAGacz0I/zqw8FaACbSpA+GxTKJ5GBQahAOGT8En4HMSTxTKpABXIswKEzzz3DutWegUIn4RPwmfpH3M2kApQgZQChE8OCSowQgUIn4RPwucIH0DemgpQgZEoQPgciey8KRUQb+BbHx/cdttOMD4+FoyJUzH+NduQC1w3k8Ux2DcH9lORgmxud5u5SMvRDEf63gaZ1302zif2tQq1lK57O97uuIYOR7FyXPPJTwYqQAWqoADhswq9zDbmUgHCZ9gthM9ywecjfmAqGLv4A7l85lgpKkAF8qEA4TMf/cBaVFABwifhMz3sy2D5JHxW8MOMTaYCHSpA+OxQMJ5OBfqlAOGT8En47NfTxHKoABUokgKEzyL1FutaKgUIn4RPwmepHmk2hgpQgTYVIHy2KRRPowL9VoDwSfgkfPb7qWJ5VIAKFEEBwmcReol1LKUChE/CJ+GzlI82G0UFqMAhChA+OUSowIgUIHwSPgmfI3r4eFsqQAVGqgDhc6Ty8+ZVVoDwSfgkfFb5E4BtpwLVVYDwWd2+Z8tHrADhk/BZNvh81A9NuyYxzueIP1x4eyqQcwUInznvIFavvAoQPgmfZYTPT356O3jkMz5c3geXLaMCVKBnBQifPUvIAqhAdwogr/vDHjYZ3HHHLtNrZkiYlfmovpOt9eb2XuaBze2zDfvr9VQeUn/G5nb2/o2dxjK26o37UExW2fUdkxvV1Ga2Nt5Qt6IHmYflk/DZ3ecBr6ICVVKA8Fml3mZbc6UA4ZOWT1o+c/VIsjJUgAoMSQHC55CE5m2oQFoBwifhs0zw+bjHTAcf+3g9OHp0jNPu/LijAlSgpQKETw4QKjAiBQCf4+NjwUMecjS4885w6r3ZdmBmbs+aGd99c2A/NWu8vx9ftJcxo7yXmqne3W2cHt5J7avvNtaw2bTydsZ0c9a5WdPruAun3UOtawJz6W12eiKxa3oqOYVfm0oex8kz00eia2Ymk2Xa62uTcdHT0/F5taPxPab8OdNSt0lfFuFzRB8kvC0VKKAChM8CdhqrXA4FCJ9hPxI+4/Fc1DWfAM+/+2g9mBK+peWzHJ9PbAUVGKQChM9BqsuyqUALBRQ+YfG86KKjwV13ZZgV/fW0fIZC0OEo1CFvlk8Ln49+1kf43FMBKkAFWipA+OQAoQIjVOD2d17mptsJn42dwGn3UJO8T7s//rKas3pig+WT8DnCDxTemgoURAHCZ0E6itUspwIKnwDQBz+4ufWTlk9aPu0TkCfLJ+GznJ9NbBUVGKQChM9BqsuyqcAhClj4xKnNAJTwSfjMI3w++fEzwQc+tBU5HdHyyY88KkAF2lGA8NmOSjyHCgxIAcInHY7s0CqSwxHA890f2Aysx/tcjWGWBvRRwWKpQKkUIHyWqjvZmKIpAKejiYmxRJilLOsnLZ+0fObN8kn4LNqnDetLBfKjAOEzP33BmlRQgSz4zJp+J3wSPvMEn0/5ydDqiU0tnwyzVMEPMDaZCnSpAOGzS+F4GRXohwIabmm8Mc13Yv0n4ZPwmRf4BHi+/a82g3SgecJnPz4RWAYVqIYChM9q9DNbmVMFWsGntYASPgmfeYBPBU/UhfCZ0w8VVosKFEABwmcBOolVLK8CNtB8s/SaWAOK9Ju6Mb1m43jY3E7lCvWnbG6bXKR+X72ekWtUjm1uZ+/f2GksY6veuA/FZ5XdLP3obK3R3J1nh6NnXD7nLJ66ZcEnY3yW97OKLaMC/VSA8NlPNVkWFehCgbTHe7oIWD0RhF4BlPBJ+Bx2nE+A51/esC4B7xvzuy/MhvsYZqmLh5+XUIGKKkD4rGjHs9n5UaAd+ERtFUAJn4TPYcKngidUT8OnDbNE+MzPZwprQgXyrgDhM+89xPqVXoF24VMB9Pbb4yn4fbMYdD81a7y/LyZTv+1lzCjvpWaqd3fj8/W6ndS+ekb6+WbTyts7jeVlnZuVRhP3Z3rNsBdGlV7zOb80H7zqLWvB9LSk3/JbK/i87NeY0730H1ZsIBXokwKEzz4JyWKoQC8K3PGuMMd71pblbPTQhx4NAKGEz1AxrvlMrh+tTU00DKWZaUm87reZyeRgm56Kr69NBoGCJ07Pgs/0ek+cR/js5ROA11KBailA+KxWf7O1OVWgU/hEMwCgt962E7WIls/GzqXDUaxJu/D5W1eEFk/dCJ85/dBgtahAgRUgfBa481j1cilw57svy2xQqzBLFz9MzFSyAUIJn4RPVaAbyyeg86WvD6ET1s9O4JNWz3J9FrE1VGDQChA+B60wy6cCbSrQDXxq0YDQW74YW0Gxn2s+MR3PUEs6RlpZPq96zmIEnoTPNh9YnkYFqEDXChA+u5aOF1KB/itwGIAe5un+3f82hlDCJ+HTjtAs+AR0vvhVq+609LrPtOUzK8wSvN2f8Jt/3/8HgSVSASpQagUIn6XuXjauaAr0Cp9oLwAU2+du3o6aT2/3eCQwyHwQvPg3jkXQGUFmyumoHfj86d+5sWiPGOtLBahADhQgfOagE1gFKmAVyALQrHWfh3m6f+/3TEUASvgkfMLyCejEdtUrTgeHebzjvFZhlnCc8MnPLipABbpRgPDZjWq8hgoMWIE0gHYDn1pFQOinPxtbQXU/43wmO7HM6TVf/oKTEXRqq3uFT4LngD8EWDwVKLEChM8Sdy6bVmwFLID2Ap9QAZbPH/i+KSeIgijhs/zwqdD5m9ecCuyaT7S8GXwe5umOa3/hRTcW++Fi7akAFRipAoTPkcrPm1OB5gocBp+4UqfeW4VZUvjUOymEfuJTSWsoMxxlpIES0TZ2Gj3mt+qN+6Bv1nrSZhmgZmvJwPC4vlZrDA7fTYajV//B/QIAp936BZ8ET35qUQEq0KsChM9eFeT1VGCACiiAtor16SC0RWrNNHy69z615iU/OBUohBI+iw2fAE5sz/6je93fdKzPVvB5mKe7K+/oOC2eA3zWWTQVqJIChM8q9TbbWkgFAKCHwWcaQG2YpVbwqYIAQrF99B/rCY2Y2z3/ls83Xv2A4Okv/EYiVNIg4POKP/qHQj4/rDQVoAL5U4Dwmb8+YY2oQIMCSL+p22GxPkMQPUiUkfZ2b7Xe8zE/PB2BKOEzn/B5w8sucH0E6NTNWi/7DZ8ET34oUQEq0E8FCJ/9VJNlUYEBKwAIbQc+0wDaCXxqEwCel/1ozb390N9vub/13cYGNlvTuL2TBGB3fca+re3G83Bu1v56MolTVJnNbb+OIFW9MmU4UuC8/Mp/CWanG9eGdgKf7Xi6Q0qEWiJ4DvihZvFUoIIKED4r2OlscrEVuO2G2Ap6WKxPbWm38GmVUhB93wdDENWN8Gm0qDeuG+3W4eivr73QFQzYTG/Dgs9fe8nHiv2wsPZUgArkUgHCZy67hZWiAkEwNhbCB7aDg68lJFEAHSZ8ogLW8vmkHwutojf89WZmd9HyGcrSCXx++HXf4a554q/H/d2Otzuu6bflk+DJTyEqQAUGpQDhc1DKslwq0KECgM00ZLYqAgA6SvjUuilcXf7EmQSMEj5bw+cn3/rAqHsvfebd7nW3oZbS8Jn2dMfxrNzuWgELrs97Oa2dHT66PJ0KUIEOFSB8digYT6cC/VZALZydgKetwxevf5x72yrc0mHpNdsJs4R7tLvmU8HzqU+edXW77t0b7m9V13xa0HzEL37ZadHPOJ/9gk+CZ7+fbpZHBahAlgKET44LKjBEBXoFzWZVBYD2Ap8oNw2gaU/3buAzXV/A5zN/fi6x+9o3rWU2q4gOR3/zP749asuP/PJXotdZ0N1P+Dxsyh0VaWX5fNGrPj7Ep4C3ogJUoOoKED6rPgLY/qEp0Om0ejcVu/ntoRUUmw23dJjlc5jwmW6Xhcxff9p8Q7P/7LVnDMRlqzIsb/f3vDwMcaTbT/zqVxPvszIc4YQ8wyfBs5snjddQASrQiwKEz17U47VUIEOBVo5CwxIMENorfKKu3cb5zFrv2QzCegm19Pv/eaHvkj71+fckysxKr4kTslJsFgk+CZ19HzoskApQgTYVIHy2KRRPowJFVOCz113qqt2N5bMI8Kl90onl00FwRkikze3202sWGT6vft0nijiUWWcqQAVKpADhs0SdyaYMV4E8WDjbbfGn3hRCqN1aZTnS8/Ju+SR8hgq0s+bzFdd9ut3hwvOoABWgAgNVgPA5UHlZeJkUGMaazUHrZSGU8JlUu6yWT0LnoJ8qlk8FqECnChA+O1WM51dOgUF5qI9SSEDoIOETbctrnE/UrQrT7oTOUT5hvDcVoAKtFCB8cnxQAaNAGUGzVQd//PXxdHw7sT7bjfNJ+IxV7yTDUbdB5nXa/TU3fJbPMxWgAlQg9woQPnPfRazgsBQow7R6L1rd+OrHNlze7ZrPssNnlqd7M4vqMODzTe/9fC9dz2upABWgAkNVgPA5VLl5szwoUCRHoVHoZSG0jPDZLBxSJ2s+8wCfBM5RPB28JxWgAv1QgPDZDxVZBhUoqQIfvPZHEy0rw7R7keHznR/8QklHGptFBahAlRQgfFaptyvWVlo4+9/h731ZEkbdVLOkzMza8upwVDT4fP/ff7H/HckSqQAVoAIjVIDwOULxeev+KlD1NZv9VfPw0hRECZ+xVllg2+mazzRsclwfPhZ5BhWgAsVSgPBZrP5ibTMUqJqHel4HwfXX/EiiarR8hnIcBp8f+eRtee1S1osKUAEqMBAFCJ8DkZWFDkoBguaglB1MuW/548ckCs4CsV5yu2vhnaTXHPW0+6duuWMwYrNUKkAFqEBBFKgkfNq1gLafDg6+VpBuq2Y1Of1Ynn7/ixc9OmpMWeHzo5+5fSAdxudgILKyUCpABYaoQCXhM0tffqAPcdQdcis6CuWnL0ZRk1f+9qPcbbOgtL6TXaNRWT7/9mO3jkKigJ9XI5GdN6UCVKBPChA+RUh+kPdpNLEYKjBkBf7o2T/s7thP+Hzr+28eciu6ux0/t7rTjVdRASowegUqD5/8AB/dIKSFc3TaV+3OfM6r1uNsLxWgAnlWoNLwyS+k4Q5N6j1cvXm3WAGOPY4GKkAFqEB+FKgsfPLLaHiDkB7qw9Oad8pWoArPexXayPFNBahAORSoJHzS231wg5egOThtWTIVOEwBAuhhCvE4FaACeVCgkvCZB+HLWAd+8ZWxV9mmoinA57BoPcb6UoHqKUD4rF6f99xiOgr1LCELoAJUgApQASpQWQUqD59jk+cHBzv3VHYAsOFUoAoK0BpYhV5mG6kAFSiKAoRPwmfTsUoLZ1EeY9bzMAWqDJ9Vbvth44LHqQAVGI0ChE/CZzTy+CU1moeQdx28AlUf23QEHPwY4x2oABVoXwHCJ+HTZXjCxtz27T84PJMKUAEqQAWoABXoTgHCZ8Xgk6DZ3YPCq6gAFaACVIAKUIH+KFBo+MyaSut0eq1KDkedatOfIcZSqAAVoAJUgApQASoQK1Bo+EQzLFB1A1dlhE86CvERpwJJBbr5bCi7hpwFKXsPs31UIL8KFB4+FUDxt5s1i2WAT36x5vcBY83yoQCfkeb9QG3yMUZZCypQJQVKA5/dgKcD1wKv+aTlokqPKtvaiwIErF7U47VUgApQgf4qUHj47PVLZRDw2Y+1qFnd3Gtb+zt0WBoVoAJUgApQASpABTpXoNDw2QzGxoL/GBwEb25LjUHAp7OoSvgitcb2Co20cLbVlTyJClABKkAFqAAVKIAChYbPVvq2C6CDgk8FUPztZEkAQbMATw2rSAVKrAA/g0rcuWwaFciJAqWFTwd/YgF18NfCCpon+OzVQpqTMcVqUIHcKcBnq/MuoWada8YrqAAVaE+BUsOnStDKCtpX+ESmoIOvudu2mnZnKKT2BifPogL9UoAg1S8lWQ4VoAJUoHcFKgGfagXNsoD2DJ8+NWVoYm0ETwVRd9gf773bWAIVoAKdKED47EQtnksFqAAVGKwClYHPZgDaMXxa2DTAmdVNXDs12MHL0qkAFRieAgT44WnNO1GBsitQKfhUAHXM6NeBtgWfGdbN9MAgaJb9UWH7qAAVIIByDFABKtAPBSoHnyqargPNhM8OrJsOaE1YpX50CsugAlSACuRVAX7e5bVnWC8qUBwFKgufkRV08u+Cg517hCDFWUi3Jmsz6ShUnIHNmlIBqwCBieOBClABKpAfBSoNnw5AkV5zdyJyFspP17AmVIAK9EsBwme/lGQ5VIAKUIHeFag8fGZJSAtn7wOLJVCBPClA+Bxcb1DbwWnLkqlAWRUgfML6yTWbZR3fbBcVoAJDUICfoUMQmbegAiVSoNLwSQ/1Eo1kNoUKUIGRKkAAHan8vDkVKJQClYFPgmahxiUrSwWoABWgAlSACpRUgUrAJ3+Rl3T0sllUoE0F+BnQplA8jQpQASowBAVKBZ90FBrCiOEtqEABFSB8Dr/TqPnwNecdqUBRFCgVfBZFdNaTClCB4SpAEBqu3no36j4a3XlXKpB3BQoJn7Rw5n1YsX5UgApQgVABAihHAhWgAmkFCgGf/PDiwKUCVIAKUAEqQAWoQDkUyDV80kO9HIOMraACVIAKUAEqQAWogCqQG/gkaHJQUgEqMCgFOHsyKGU7L5d90blmvIIKlE2BXMAnP4zKNqzYHiqQLwX4GcP+yJcCrA0VqLYCQ4VPOgpVe7Cx9VRgVAoQPkelfPP7sk/y1yesERUYlgJDhc9hNYr3oQJUgApQASpABagAFcinAgOBT1o489nZrBUVoAJUgApQASpABUatQF/gk9Mno+5G3p8KUAEqUGwF+D1S7P5j7alAJwr0BJ/0UO9Eap5LBajAqBQg2IxK+c7uy37qTC+eTQWKqkDb8EnQLGoXs95UgAoQaoozBthXxekr1pQKdKtAW/DJD4Nu5eV1VIAK5EEBfobloRdYBypABahAqEACPukoxGFBBagAFaACVIAKUAEqMEgF2rJ8DrICLJsKUAEqQAWoQDMFaLXm2KAC5VOA8Fm+PmWLqAAVoAKlUoAAWqruZGOoQHLanXpQASpABcqoAOGl+L3KPix+H7IFVEAVoOWTY4EKUIHSK0BwKX0Xs4FUgAoUSAHCZ4E6i1WlAlSgOwUIn93pxquoABWgAoNQgPA5CFVZJhWgAlSACgxUAf6gGKi8LJwKDFQBwudA5WXhVIAKUAEqMCgFmPxkUMqyXCowWAUIn4PVl6VTASpABagAFaACVIAKGAUInxwOVIAKlF4BTtGWvovZQCpABQqkAOGzQJ3FqlIBKtCdAoTP7nTjVVSAClCBQShA+ByEqiyTClCBXClA+MxVdwy0MuzrgcrLwqlAXxQgfPZFRhZCBagAFaACeVGAjkh56QnWgwpkK0D45MigAlSAClABKkAFqAAVGJoChM+hSc0bUQEqQAWoABWgAlSAChA+OQaoABUovQJcB1j6LmYDqQAVKJAChM8CdRarSgWoQHcKED67061MV3EdaJl6k20pugL/HxvudN7t3VmYAAAAAElFTkSuQmCC)
AM
Adrian Mariano
Sun, Feb 8, 2026 10:46 PM

Asking people to debug your code when you don't post the code is generally
a pointless endeavor.

You should follow the error message backtrace until you get to code you
wrote and examine it to see why it would fail in BOSL2, or post that line
of code here, or perhaps file a bug on the BOSL2 github.

On Sun, Feb 8, 2026 at 5:32 PM Caddiy via Discuss <
discuss@lists.openscad.org> wrote:

No, ‘fraid not.

This part is done with BOSL2, but I can’t use it with the rest.


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

Asking people to debug your code when you don't post the code is generally a pointless endeavor. You should follow the error message backtrace until you get to code you wrote and examine it to see why it would fail in BOSL2, or post that line of code here, or perhaps file a bug on the BOSL2 github. On Sun, Feb 8, 2026 at 5:32 PM Caddiy via Discuss < discuss@lists.openscad.org> wrote: > No, ‘fraid not. > > This part is done with BOSL2, but I can’t use it with the rest. > > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
M
mikeonenine@web.de
Sun, Feb 8, 2026 10:56 PM

Adrian Mariano wrote:

Asking people to debug your code when you don't post the code is generally
a pointless endeavor.

The code is quite long, about 1550 lines.

You should follow the error message backtrace until you get to code you
wrote and examine it to see why it would fail in BOSL2, or post that line
of code here, or perhaps file a bug on the BOSL2 github.

I looked up the relevant lines in affine.scad and transform.scad but they didn’t seem to offer any clues.

Looks like I will have to chop off sections of the code one by one until it works.

Adrian Mariano wrote: > Asking people to debug your code when you don't post the code is generally > a pointless endeavor. The code is quite long, about 1550 lines. > You should follow the error message backtrace until you get to code you > wrote and examine it to see why it would fail in BOSL2, or post that line > of code here, or perhaps file a bug on the BOSL2 github. I looked up the relevant lines in affine.scad and transform.scad but they didn’t seem to offer any clues. Looks like I will have to chop off sections of the code one by one until it works.
AM
Adrian Mariano
Sun, Feb 8, 2026 11:09 PM

The lines in affince.scad and transform.scad are not part of your code.
Follow the backtrace back until you get to YOUR CODE---the first line
that's not part of the library.  From the error messages it appears a
rotation has been invoked with an invalid angle, but to know why we need to
see the code you wrote that is doing it.  It's possible that it's a
compatibility error in BOSL2, since adding the BOSL2 library to working
code is not supposed to change its behavior.

On Sun, Feb 8, 2026 at 5:57 PM Caddiy via Discuss <
discuss@lists.openscad.org> wrote:

Adrian Mariano wrote:

Asking people to debug your code when you don't post the code is generally
a pointless endeavor.

The code is quite long, about 1550 lines.

You should follow the error message backtrace until you get to code you
wrote and examine it to see why it would fail in BOSL2, or post that line
of code here, or perhaps file a bug on the BOSL2 github.

I looked up the relevant lines in affine.scad and transform.scad but they
didn’t seem to offer any clues.

Looks like I will have to chop off sections of the code one by one until
it works.


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

The lines in affince.scad and transform.scad are not part of your code. Follow the backtrace back until you get to YOUR CODE---the first line that's not part of the library. From the error messages it appears a rotation has been invoked with an invalid angle, but to know why we need to see the code you wrote that is doing it. It's possible that it's a compatibility error in BOSL2, since adding the BOSL2 library to working code is not supposed to change its behavior. On Sun, Feb 8, 2026 at 5:57 PM Caddiy via Discuss < discuss@lists.openscad.org> wrote: > Adrian Mariano wrote: > > Asking people to debug your code when you don't post the code is generally > a pointless endeavor. > > The code is quite long, about 1550 lines. > > You should follow the error message backtrace until you get to code you > wrote and examine it to see why it would fail in BOSL2, or post that line > of code here, or perhaps file a bug on the BOSL2 github. > > I looked up the relevant lines in affine.scad and transform.scad but they > didn’t seem to offer any clues. > > Looks like I will have to chop off sections of the code one by one until > it works. > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
M
mikeonenine@web.de
Sun, Feb 8, 2026 11:41 PM

Adrian Mariano wrote:

The lines in affince.scad and transform.scad are not part of your code.
Follow the backtrace back until you get to YOUR CODE---the first line
that's not part of the library.  From the error messages it appears a
rotation has been invoked with an invalid angle, but to know why we need to
see the code you wrote that is doing it.  It's possible that it's a
compatibility error in BOSL2, since adding the BOSL2 library to working
code is not supposed to change its behavior.

When this module is edited out, the code works:

module txm()

{

window = [876, 640];

translate($vpt)

rotate($vpr)

scale($vpd / window.y)

translate([x,y,z])

rotate([X,Y,Z])

linear_extrude(0.001)

text(txt, valign = "center", halign = side, font="Times New Roman", size=s);

}

I had left out the X, Y and Z values in 2 places where the module is invoked, as these values are all zero. Putting in X=0, Y=0, Z=0, fixes it. Phew!

Thanks.

Adrian Mariano wrote: > The lines in affince.scad and transform.scad are not part of your code. > Follow the backtrace back until you get to YOUR CODE---the first line > that's not part of the library. From the error messages it appears a > rotation has been invoked with an invalid angle, but to know why we need to > see the code you wrote that is doing it. It's possible that it's a > compatibility error in BOSL2, since adding the BOSL2 library to working > code is not supposed to change its behavior. When this module is edited out, the code works: `module txm()` `{` `window = [876, 640];` `translate($vpt)` `rotate($vpr)` `scale($vpd / window.y)` `translate([x,y,z])` `rotate([X,Y,Z])` `linear_extrude(0.001)` `text(txt, valign = "center", halign = side, font="Times New Roman", size=s);` `}` I had left out the X, Y and Z values in 2 places where the module is invoked, as these values are all zero. Putting in `X=0, Y=0, Z=0,` fixes it. Phew! Thanks.
AM
Adrian Mariano
Mon, Feb 9, 2026 12:05 AM

I don't understand what exactly was happening here, but it does sound like
there's possibly a BOSL2 bug---unless your working code produces warnings.
What values were being passed to which module in the code when it was
broken with BOSL2?  If I run that code I get warnings about variables being
undefined and if I define them all I don't have any issues with or without
BOSL2.

On Sun, Feb 8, 2026 at 6:42 PM Caddiy via Discuss <
discuss@lists.openscad.org> wrote:

Adrian Mariano wrote:

The lines in affince.scad and transform.scad are not part of your code.
Follow the backtrace back until you get to YOUR CODE---the first line
that's not part of the library. From the error messages it appears a
rotation has been invoked with an invalid angle, but to know why we need to
see the code you wrote that is doing it. It's possible that it's a
compatibility error in BOSL2, since adding the BOSL2 library to working
code is not supposed to change its behavior.

When this module is edited out, the code works:

module txm()

{

window = [876, 640];

translate($vpt)

rotate($vpr)

scale($vpd / window.y)

translate([x,y,z])

rotate([X,Y,Z])

linear_extrude(0.001)

text(txt, valign = "center", halign = side, font="Times New Roman",
size=s);

}

I had left out the X, Y and Z values in 2 places where the module is
invoked, as these values are all zero. Putting in X=0, Y=0, Z=0, fixes
it. Phew!

Thanks.


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

I don't understand what exactly was happening here, but it does sound like there's possibly a BOSL2 bug---unless your working code produces warnings. What values were being passed to which module in the code when it was broken with BOSL2? If I run that code I get warnings about variables being undefined and if I define them all I don't have any issues with or without BOSL2. On Sun, Feb 8, 2026 at 6:42 PM Caddiy via Discuss < discuss@lists.openscad.org> wrote: > Adrian Mariano wrote: > > The lines in affince.scad and transform.scad are not part of your code. > Follow the backtrace back until you get to YOUR CODE---the first line > that's not part of the library. From the error messages it appears a > rotation has been invoked with an invalid angle, but to know why we need to > see the code you wrote that is doing it. It's possible that it's a > compatibility error in BOSL2, since adding the BOSL2 library to working > code is not supposed to change its behavior. > > When this module is edited out, the code works: > > module txm() > > { > > window = [876, 640]; > > translate($vpt) > > rotate($vpr) > > scale($vpd / window.y) > > translate([x,y,z]) > > rotate([X,Y,Z]) > > linear_extrude(0.001) > > text(txt, valign = "center", halign = side, font="Times New Roman", > size=s); > > } > > I had left out the X, Y and Z values in 2 places where the module is > invoked, as these values are all zero. Putting in X=0, Y=0, Z=0, fixes > it. Phew! > > Thanks. > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
M
mikeonenine@web.de
Mon, Feb 9, 2026 12:38 AM

Adrian Mariano wrote:

I don't understand what exactly was happening here, but it does sound like
there's possibly a BOSL2 bug---unless your working code produces warnings.

I have changed the code in the meantime, but there will have been warnings. I ignored them, because the code worked anyway and they seemed superfluous - until i tried to use BOSL2.

What values were being passed to which module in the code when it was broken with BOSL2?

One of the two pieces of code that uses the module given above is:

color ("black")

txm(x=125+80, y=120, z=0, X=0, Y=0, Z=0,

side="right",

txt="MonoFAZE Duo H4", s=8);

It now has X=0, Y=0, Z=0, and works with BOSL2, but before, without either, it worked.

If I run that code I get warnings about variables being undefined and if I define them all I don't have any issues with or without BOSL2.

Right, same here. I don’t think there’s a bug in BOSL2, it’s just my programming.

Adrian Mariano wrote: > I don't understand what exactly was happening here, but it does sound like > there's possibly a BOSL2 bug---unless your working code produces warnings. I have changed the code in the meantime, but there will have been warnings. I ignored them, because the code worked anyway and they seemed superfluous - until i tried to use BOSL2. > What values were being passed to which module in the code when it was broken with BOSL2? One of the two pieces of code that uses the module given above is: `color ("black")` `txm(x=125+80, y=120, z=0, X=0, Y=0, Z=0,` `side="right",` `txt="MonoFAZE Duo H4", s=8);` It now has `X=0, Y=0, Z=0, `and works with BOSL2, but before, without either, it worked. > If I run that code I get warnings about variables being undefined and if I define them all I don't have any issues with or without BOSL2. Right, same here. I don’t think there’s a bug in BOSL2, it’s just my programming.
AM
Adrian Mariano
Mon, Feb 9, 2026 1:25 AM

Ideally any code that works without BOSL2 should work with it.  But there
may be edge cases where this isn't working.  If you give garbage parameters
to OpenSCAD modules it often gives a warning and then does something
anyway.  (I think this is terrible behavior on the part of OpenSCAD.  You
should always run with "stop on first warning" enabled and your code should
produce no warnings.)  This type of case may be mishandled by BOSL2 and
could produce an error because we have to specifically check for it.  If
you can identify a specific command that works without BOSL2 but fails with
it then I can fix that.

On Sun, Feb 8, 2026 at 7:38 PM Caddiy via Discuss <
discuss@lists.openscad.org> wrote:

Adrian Mariano wrote:

I don't understand what exactly was happening here, but it does sound like
there's possibly a BOSL2 bug---unless your working code produces warnings.

I have changed the code in the meantime, but there will have been
warnings. I ignored them, because the code worked anyway and they seemed
superfluous - until i tried to use BOSL2.

What values were being passed to which module in the code when it was
broken with BOSL2?

One of the two pieces of code that uses the module given above is:

color ("black")

txm(x=125+80, y=120, z=0, X=0, Y=0, Z=0,

side="right",

txt="MonoFAZE Duo H4", s=8);

It now has X=0, Y=0, Z=0, and works with BOSL2, but before, without
either, it worked.

If I run that code I get warnings about variables being undefined and if I
define them all I don't have any issues with or without BOSL2.

Right, same here. I don’t think there’s a bug in BOSL2, it’s just my
programming.


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

Ideally any code that works without BOSL2 should work with it. But there may be edge cases where this isn't working. If you give garbage parameters to OpenSCAD modules it often gives a warning and then does something anyway. (I think this is terrible behavior on the part of OpenSCAD. You should always run with "stop on first warning" enabled and your code should produce no warnings.) This type of case may be mishandled by BOSL2 and could produce an error because we have to specifically check for it. If you can identify a specific command that works without BOSL2 but fails with it then I can fix that. On Sun, Feb 8, 2026 at 7:38 PM Caddiy via Discuss < discuss@lists.openscad.org> wrote: > Adrian Mariano wrote: > > I don't understand what exactly was happening here, but it does sound like > there's possibly a BOSL2 bug---unless your working code produces warnings. > > I have changed the code in the meantime, but there will have been > warnings. I ignored them, because the code worked anyway and they seemed > superfluous - until i tried to use BOSL2. > > What values were being passed to which module in the code when it was > broken with BOSL2? > > One of the two pieces of code that uses the module given above is: > > color ("black") > > txm(x=125+80, y=120, z=0, X=0, Y=0, Z=0, > > side="right", > > txt="MonoFAZE Duo H4", s=8); > > It now has X=0, Y=0, Z=0, and works with BOSL2, but before, without > either, it worked. > > If I run that code I get warnings about variables being undefined and if I > define them all I don't have any issues with or without BOSL2. > > Right, same here. I don’t think there’s a bug in BOSL2, it’s just my > programming. > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
JB
Jordan Brown
Mon, Feb 9, 2026 7:12 AM

On 2/8/2026 5:25 PM, Adrian Mariano via Discuss wrote:

Ideally any code that works without BOSL2 should work with it.  But
there may be edge cases where this isn't working.  If you give garbage
parameters to OpenSCAD modules it often gives a warning and then does
something anyway.  (I think this is terrible behavior on the part of
OpenSCAD.

Sadly, there are a number of cases where you can give garbage parameters
and it doesn't give a warning, and then does something anyway.

cylinder(h="hello");

cube(10, center="hello");

The cube would be sort of OK if there was a general rule that boolean
arguments got the usual "if not empty/zero/false" behavior.  But it
doesn't; the result is equivalent to omitting "center".  I'm not at all
sure that such a rule would be a good idea; I'm not even sure that it's
a good idea for "if" and "?:".

Of course, for every such case there is somebody somewhere who is
depending on it, whose model will break if you make it yield a warning.

On 2/8/2026 5:25 PM, Adrian Mariano via Discuss wrote: > Ideally any code that works without BOSL2 should work with it.  But > there may be edge cases where this isn't working.  If you give garbage > parameters to OpenSCAD modules it often gives a warning and then does > something anyway.  (I think this is terrible behavior on the part of > OpenSCAD. Sadly, there are a number of cases where you can give garbage parameters and it *doesn't* give a warning, and then does something anyway. cylinder(h="hello"); cube(10, center="hello"); The cube would be sort of OK if there was a general rule that boolean arguments got the usual "if not empty/zero/false" behavior.  But it doesn't; the result is equivalent to omitting "center".  I'm not at all sure that such a rule would be a good idea; I'm not even sure that it's a good idea for "if" and "?:". Of course, for every such case there is somebody somewhere who is depending on it, whose model will break if you make it yield a warning.
JB
Jordan Brown
Mon, Feb 9, 2026 7:21 AM

On 2/8/2026 1:35 PM, Caddiy via Discuss wrote:

what would a global name look like? Examples?

I see that your real problem has been found (and it wasn't my guess),
but to answer your question ... I really should have said "top-level",
names like these:

TOP = 5;
module xrot();
function scale() = 3;

Because BOSL2 is include<>d (for mostly good reasons), and because
OpenSCAD lets the main program silently override names from the
include<>d file, the result of such conflicts will be ... chaos.

include <BOSL2/std.scad>

TOP = 5;
cube();

yields

ERROR: Assertion '(is_undef(orient) || is_vector(orient, 3))' failed: "
Invalid orient: 5" in file
../../Users/Jordan/OneDrive/Documents/OpenSCAD/libraries/BOSL2/attachments.scad,
line 2418
TRACE: assignment to "dummy1" in file
../../Users/Jordan/OneDrive/Documents/OpenSCAD/libraries/BOSL2/attachments.scad,
line 2414
TRACE: called by 'attachable' in file
../../Users/Jordan/OneDrive/Documents/OpenSCAD/libraries/BOSL2/shapes3d.scad,
line 62
TRACE: call of 'cube(size = [1, 1, 1], center = undef, anchor = [-1,
-1, -1], spin = 0, orient = 5)' in file
../../Users/Jordan/OneDrive/Documents/OpenSCAD/libraries/BOSL2/shapes3d.scad,
line 58
TRACE: called by 'cube' in file ., line 4
On 2/8/2026 1:35 PM, Caddiy via Discuss wrote: > > what would a global name look like? Examples? > I see that your real problem has been found (and it wasn't my guess), but to answer your question ... I really should have said "top-level", names like these: TOP = 5; module xrot(); function scale() = 3; Because BOSL2 is include<>d (for mostly good reasons), and because OpenSCAD lets the main program silently override names from the include<>d file, the result of such conflicts will be ... chaos. include <BOSL2/std.scad> TOP = 5; cube(); yields ERROR: Assertion '(is_undef(orient) || is_vector(orient, 3))' failed: " Invalid orient: 5" in file ../../Users/Jordan/OneDrive/Documents/OpenSCAD/libraries/BOSL2/attachments.scad, line 2418 TRACE: assignment to "dummy1" in file ../../Users/Jordan/OneDrive/Documents/OpenSCAD/libraries/BOSL2/attachments.scad, line 2414 TRACE: called by 'attachable' in file ../../Users/Jordan/OneDrive/Documents/OpenSCAD/libraries/BOSL2/shapes3d.scad, line 62 TRACE: call of 'cube(size = [1, 1, 1], center = undef, anchor = [-1, -1, -1], spin = 0, orient = 5)' in file ../../Users/Jordan/OneDrive/Documents/OpenSCAD/libraries/BOSL2/shapes3d.scad, line 58 TRACE: called by 'cube' in file ., line 4
AM
Adrian Mariano
Mon, Feb 9, 2026 11:17 AM

I would argue that if somebody is depending on garbage parameters doing
something useful that's their mistake and not our problem.  This
possibility should not stand in the way of improving OpenSCAD's error
handling.

On Mon, Feb 9, 2026 at 2:12 AM Jordan Brown openscad@jordan.maileater.net
wrote:

On 2/8/2026 5:25 PM, Adrian Mariano via Discuss wrote:

Ideally any code that works without BOSL2 should work with it.  But there
may be edge cases where this isn't working.  If you give garbage parameters
to OpenSCAD modules it often gives a warning and then does something
anyway.  (I think this is terrible behavior on the part of OpenSCAD.

Sadly, there are a number of cases where you can give garbage parameters
and it doesn't give a warning, and then does something anyway.

cylinder(h="hello");

cube(10, center="hello");

The cube would be sort of OK if there was a general rule that boolean
arguments got the usual "if not empty/zero/false" behavior.  But it
doesn't; the result is equivalent to omitting "center".  I'm not at all
sure that such a rule would be a good idea; I'm not even sure that it's a
good idea for "if" and "?:".

Of course, for every such case there is somebody somewhere who is
depending on it, whose model will break if you make it yield a warning.

I would argue that if somebody is depending on garbage parameters doing something useful that's their mistake and not our problem. This possibility should not stand in the way of improving OpenSCAD's error handling. On Mon, Feb 9, 2026 at 2:12 AM Jordan Brown <openscad@jordan.maileater.net> wrote: > On 2/8/2026 5:25 PM, Adrian Mariano via Discuss wrote: > > Ideally any code that works without BOSL2 should work with it. But there > may be edge cases where this isn't working. If you give garbage parameters > to OpenSCAD modules it often gives a warning and then does something > anyway. (I think this is terrible behavior on the part of OpenSCAD. > > > Sadly, there are a number of cases where you can give garbage parameters > and it *doesn't* give a warning, and then does something anyway. > > cylinder(h="hello"); > > cube(10, center="hello"); > > The cube would be sort of OK if there was a general rule that boolean > arguments got the usual "if not empty/zero/false" behavior. But it > doesn't; the result is equivalent to omitting "center". I'm not at all > sure that such a rule would be a good idea; I'm not even sure that it's a > good idea for "if" and "?:". > > Of course, for every such case there is somebody somewhere who is > depending on it, whose model will break if you make it yield a warning. > > >
JB
Jon Bondy
Mon, Feb 9, 2026 12:13 PM

I agree with Adrian.

On 2/9/2026 6:17 AM, Adrian Mariano via Discuss wrote:

I would argue that if somebody is depending on garbage parameters
doing something useful that's their mistake and not our problem.  This
possibility should not stand in the way of improving OpenSCAD's error
handling.

On Mon, Feb 9, 2026 at 2:12 AM Jordan Brown
openscad@jordan.maileater.net wrote:

 On 2/8/2026 5:25 PM, Adrian Mariano via Discuss wrote:
 Ideally any code that works without BOSL2 should work with it. 
 But there may be edge cases where this isn't working.  If you
 give garbage parameters to OpenSCAD modules it often gives a
 warning and then does something anyway.  (I think this is
 terrible behavior on the part of OpenSCAD.
 Sadly, there are a number of cases where you can give garbage
 parameters and it *doesn't* give a warning, and then does
 something anyway.

 cylinder(h="hello");

 cube(10, center="hello");

 The cube would be sort of OK if there was a general rule that
 boolean arguments got the usual "if not empty/zero/false"
 behavior.  But it doesn't; the result is equivalent to omitting
 "center".  I'm not at all sure that such a rule would be a good
 idea; I'm not even sure that it's a good idea for "if" and "?:".

 Of course, for every such case there is somebody somewhere who is
 depending on it, whose model will break if you make it yield a
 warning.

OpenSCAD mailing list
To unsubscribe send an email todiscuss-leave@lists.openscad.org

--
This email has been checked for viruses by AVG antivirus software.
www.avg.com

I agree with Adrian. On 2/9/2026 6:17 AM, Adrian Mariano via Discuss wrote: > I would argue that if somebody is depending on garbage parameters > doing something useful that's their mistake and not our problem.  This > possibility should not stand in the way of improving OpenSCAD's error > handling. > > On Mon, Feb 9, 2026 at 2:12 AM Jordan Brown > <openscad@jordan.maileater.net> wrote: > > On 2/8/2026 5:25 PM, Adrian Mariano via Discuss wrote: >> Ideally any code that works without BOSL2 should work with it.  >> But there may be edge cases where this isn't working.  If you >> give garbage parameters to OpenSCAD modules it often gives a >> warning and then does something anyway.  (I think this is >> terrible behavior on the part of OpenSCAD. > > Sadly, there are a number of cases where you can give garbage > parameters and it *doesn't* give a warning, and then does > something anyway. > > cylinder(h="hello"); > > cube(10, center="hello"); > > The cube would be sort of OK if there was a general rule that > boolean arguments got the usual "if not empty/zero/false" > behavior.  But it doesn't; the result is equivalent to omitting > "center".  I'm not at all sure that such a rule would be a good > idea; I'm not even sure that it's a good idea for "if" and "?:". > > Of course, for every such case there is somebody somewhere who is > depending on it, whose model will break if you make it yield a > warning. > > > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email todiscuss-leave@lists.openscad.org -- This email has been checked for viruses by AVG antivirus software. www.avg.com
NH
nop head
Mon, Feb 9, 2026 2:16 PM

Also "check the parameter range for builtin modules" is an option in
preferences, so I would expect any garbage ones to be rejected when that
option is set.

On Mon, 9 Feb 2026 at 12:14, Jon Bondy via Discuss <
discuss@lists.openscad.org> wrote:

I agree with Adrian.
On 2/9/2026 6:17 AM, Adrian Mariano via Discuss wrote:

I would argue that if somebody is depending on garbage parameters doing
something useful that's their mistake and not our problem.  This
possibility should not stand in the way of improving OpenSCAD's error
handling.

On Mon, Feb 9, 2026 at 2:12 AM Jordan Brown openscad@jordan.maileater.net
wrote:

On 2/8/2026 5:25 PM, Adrian Mariano via Discuss wrote:

Ideally any code that works without BOSL2 should work with it.  But there
may be edge cases where this isn't working.  If you give garbage parameters
to OpenSCAD modules it often gives a warning and then does something
anyway.  (I think this is terrible behavior on the part of OpenSCAD.

Sadly, there are a number of cases where you can give garbage parameters
and it doesn't give a warning, and then does something anyway.

cylinder(h="hello");

cube(10, center="hello");

The cube would be sort of OK if there was a general rule that boolean
arguments got the usual "if not empty/zero/false" behavior.  But it
doesn't; the result is equivalent to omitting "center".  I'm not at all
sure that such a rule would be a good idea; I'm not even sure that it's a
good idea for "if" and "?:".

Of course, for every such case there is somebody somewhere who is
depending on it, whose model will break if you make it yield a warning.


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient
Virus-free.www.avg.com
http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient
<#m_-6038624002298776710_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

Also "check the parameter range for builtin modules" is an option in preferences, so I would expect any garbage ones to be rejected when that option is set. On Mon, 9 Feb 2026 at 12:14, Jon Bondy via Discuss < discuss@lists.openscad.org> wrote: > I agree with Adrian. > On 2/9/2026 6:17 AM, Adrian Mariano via Discuss wrote: > > I would argue that if somebody is depending on garbage parameters doing > something useful that's their mistake and not our problem. This > possibility should not stand in the way of improving OpenSCAD's error > handling. > > On Mon, Feb 9, 2026 at 2:12 AM Jordan Brown <openscad@jordan.maileater.net> > wrote: > >> On 2/8/2026 5:25 PM, Adrian Mariano via Discuss wrote: >> >> Ideally any code that works without BOSL2 should work with it. But there >> may be edge cases where this isn't working. If you give garbage parameters >> to OpenSCAD modules it often gives a warning and then does something >> anyway. (I think this is terrible behavior on the part of OpenSCAD. >> >> >> Sadly, there are a number of cases where you can give garbage parameters >> and it *doesn't* give a warning, and then does something anyway. >> >> cylinder(h="hello"); >> >> cube(10, center="hello"); >> >> The cube would be sort of OK if there was a general rule that boolean >> arguments got the usual "if not empty/zero/false" behavior. But it >> doesn't; the result is equivalent to omitting "center". I'm not at all >> sure that such a rule would be a good idea; I'm not even sure that it's a >> good idea for "if" and "?:". >> >> Of course, for every such case there is somebody somewhere who is >> depending on it, whose model will break if you make it yield a warning. >> >> >> > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org > > > > <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient> > Virus-free.www.avg.com > <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient> > <#m_-6038624002298776710_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
M
mikeonenine@web.de
Mon, Feb 9, 2026 2:43 PM

Adrian Mariano wrote:

I would argue that if somebody is depending on garbage parameters doing
something useful that's their mistake and not our problem.

That sounds sensible, though what one person sees as garbage might in some cases not be seen as such by another.

This possibility should not stand in the way of improving OpenSCAD's error handling.

I would welcome that. I personally find it tedious entering stuff that is zero, like X=0, Y=0, Z=0, and it clutters up the code, when an undefined/absent parameter could simply be understood to be zero by default. Would it be a big deal to implement that?

Adrian Mariano wrote: > I would argue that if somebody is depending on garbage parameters doing > something useful that's their mistake and not our problem. That sounds sensible, though what one person sees as garbage might in some cases not be seen as such by another. > This possibility should not stand in the way of improving OpenSCAD's error handling. I would welcome that. I personally find it tedious entering stuff that is zero, like X=0, Y=0, Z=0, and it clutters up the code, when an undefined/absent parameter could simply be understood to be zero by default. Would it be a big deal to implement that?
JB
Jon Bondy
Mon, Feb 9, 2026 3:15 PM

As I understand it, you can always define a parameter list with default
values.  Is this a module that you wrote, or one that you want to use
from another author?

On 2/9/2026 9:43 AM, Caddiy via Discuss wrote:

Adrian Mariano wrote:

 I would argue that if somebody is depending on garbage parameters
 doing something useful that's their mistake and not our problem.

That sounds sensible, though what one person sees as garbage might in
some cases not be seen as such by another.

 This possibility should not stand in the way of improving
 OpenSCAD's error handling.

I would welcome that. I personally find it tedious entering stuff that
is zero, like X=0, Y=0, Z=0, and it clutters up the code, when an
undefined/absent parameter could simply be understood to be zero by
default. Would it be a big deal to implement that?


OpenSCAD mailing list
To unsubscribe send an email todiscuss-leave@lists.openscad.org

--
This email has been checked for viruses by AVG antivirus software.
www.avg.com

As I understand it, you can always define a parameter list with default values.  Is this a module that you wrote, or one that you want to use from another author? On 2/9/2026 9:43 AM, Caddiy via Discuss wrote: > > Adrian Mariano wrote: > > I would argue that if somebody is depending on garbage parameters > doing something useful that's their mistake and not our problem. > > That sounds sensible, though what one person sees as garbage might in > some cases not be seen as such by another. > > This possibility should not stand in the way of improving > OpenSCAD's error handling. > > I would welcome that. I personally find it tedious entering stuff that > is zero, like X=0, Y=0, Z=0, and it clutters up the code, when an > undefined/absent parameter could simply be understood to be zero by > default. Would it be a big deal to implement that? > > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email todiscuss-leave@lists.openscad.org -- This email has been checked for viruses by AVG antivirus software. www.avg.com