{
"cells": [
{
"cell_type": "markdown",
"id": "dbe7ced4",
"metadata": {
"tags": [
"CSP",
"easy",
"AllDifferent",
"Intension",
"complex",
"AllDifferentMatrix"
]
},
"source": [
"# Problem *Sudoku*"
]
},
{
"cell_type": "markdown",
"id": "28437889",
"metadata": {},
"source": [
"This well-known problem is stated as follows: fill in a grid using digits ranging from 1 to 9 such that:\n",
"- all digits occur on each row\n",
"- all digits occur on each column\n",
"- all digits occur in each $3 \\times 3$ block (starting at a position multiple of 3) "
]
},
{
"attachments": {
"sudoku.png": {
"image/png": "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IASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAICL+al9AN5ZlqX0JAAAAAAAA56WUal8CANArUxMAAAAAAEDXTE3s543HAAAAAAAAAAAAAAAAAACA4DEAAAAAAAAAAAAAAAAAACB4DAAAAAAAAAAAAAAAAAAARMSSUqp9DY1alqX2JQAAAAAAANzCCREAsM3UBAAAAAAAMDCDExu88RgAAAAAAAAAAAAAAAAAABA8BgAAAAAAAAAAAAAAAAAABI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgIv5qX0CvUkq1LwH2Wpbl+d+WLj16XcNhGdOPt6X7yWKmI9oJemcN0yntBMNwW8cAtBP06GcvAQCQSW9MR9zW0TtrmE456WAYTjoYgHaCTmknGIY6TO+0xHTK4EQObzwGAAAAAAAAAAAAAAAAAAAEjwEAAAAAAAAAAAAAAAAAAMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAA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AAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAH9h94AAAgAElEQVQAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAARUYZhePo7VKqU8vRXAAAAAAAAuIQTIgBgmakJAAAAAACgYQYnFnjiMQAAAAAAAAAAAAAAAAAAIHgMAAAAAAAAAAAAAAAAAAAIHgMAAAAAAAAAAAAAAAAAABHx9/QXyGoYhqe/AqxVSnn/s6VLRuM1HJYxeXws3SmLmUS0E2RnDZOUdoJm2NbRAO0EGf3sJQAADtIbk4htHdlZwyTlpINmOOmgAdoJktJO0Ax1mOy0xCRlcOIITzwGAAAAAAAAAAAAAAAAAAAEjwEAAAAAAAAAAAAAAAAAAMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAA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gBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAi0jRNpT9DpVJKpT8CAAAAAADAI5wQAQDrTE0AAAAAAAAdMzixwhOPAQAAAAAAAAAAAAAAAAAAwWMAAAAAAAAAAAAAAAAAAEDwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgIv6W/gCtmqap9EeAvVJK739WurTos4ZDGdOOr9KdU8w0RDtB69QwjdJO0A1f6+iAdoIWbfYSAAAX6Y1piK91tE4N0ygnHXTDSQcd0E7QKO0E3bAO0zotMY0yOHGFJx4DAAAAAAAAAAAAAAAAAACCxwAAAAAAAAAAAAAAAAAAgOAxAAAAAAAAAAAAAAAAAAAQgscAAAAAAAAAAAAAAAAAAEAIHgMAAAAAAAAAAAAAAAAAACF4DAAAAAAAAAAAAAAAAAAAhOAxAAAAAAAAAAAAAAAAAAAQgscAAAAAAAAAAAAAAAAAAEAIHgMAAAAAAAAAAAAAAAAAACF4DAAAAAAAAAAAAAAAAAAAhOAxAAAAAAAAAAAAAAAAAAAQgscAAAAAAAAAAAAAAAAAAEAIHgMAAAAAAAAAAAAAAAAAACF4DAAAAAAAAAAAAAAAAAAAhOAxAAAAAAAAAAAAAAAAAAAQgscAAAAAAAAAAAAAAAAAAEAIHgMAAAAAAAAAAAAAAAAAACF4DAAAAAAAAAAAAAAAAAAAhOAxAAAAAAAAAAAAAAAAAAAQgscAAAAAAAAAAAAAAAAAAEAIHgMAAAAAAAAAAAAAAAAAACF4DAAAAAAAAAAAAAAAAAAAhOAxAAAAAAAAAAAAAAAAAAAQgscAAAAAAAAAAAAAAAAAAEAIHgMAAAAAAAAAAAAAAAAAACF4DAAAAAAAAAAAAAAAAAAAhOAxAAAAAAAAAAAAAAAAAAAQgscAAAAAAAAAAAAAAAAAAEAIHgMAAAAAAAAAAAAAAAAAACF4DAAAAAAAAAAAAAAAAAAAhOAxAAAAAAAAAAAAAAAAAAAQgscAAAAAAAAAAAAAAAAAAEAIHgMAAAAAAAAAAAAAAAAAACF4DAAAAAAAAAAAAAAAAAAAhOAxAAAAAAAAAAAAAAAAAAAQgscAAAAAAAAAAAAAAAAAAEAIHgMAAAAAAAAAAAAAAAAAACF4DAAAAAAAAAAAAAAAAAAAhOAxAAAAAAAAAAAAAAAAAAAQgscAAAAAAAAAAAAAAIWKfMUAACAASURBVAAAAEAIHgMAAAAAAAAAAAAAAAAAACF4DAAAAAAAAAAAAAAAAAAAhOAxAAAAAAAAAAAAAAAAAAAQgscAAAAAAAAAAAAAAAAAAEAIHgMAAAAAAAAAAAAAAAAAACF4DAAAAAAAAAAAAAAAAAAAhOAxAAAAAAAAAAAAAAAAAAAQgscAAAAAAAAAAAAAAAAAAEAIHgMAAAAAAAAAAAAAAAAAACF4DAAAAAAAAAAAAAAAAAAAhOAxAAAAAAAAAAAAAAAAAAAQgscAAAAAAAAAAAAAAAAAAEAIHgMAAAAAAAAAAAAAAAAAACF4DAAAAAAAAAAAAAAAAAAAhOAxAAAAAAAAAAAAAAAAAAAQgscAAAAAAAAAAAAAAAAAAEAIHgMAAAAAAAAAAAAAAAAAACF4DAAAAAAAAAAAAAAAAAAAhOAxAAAAAAAAAAAAAAAAAAAQgscAAAAAAAAAAAAAAAAAAEAIHgMAAAAAAAAAAAAAAAAAACF4DAAAAAAAAAAAAAAAAAAAhOAxAAAAAAAAAAAAAAAAAAAQgscAAAAAAAAAAAAAAAAAAEAIHgMAAAAAAAAAAAAAAAAAACF4DAAAAAAAAAAAAAAAAAAAhOAxAAAAAAAAAAAAAAAAAAAQgscAAAAAAAAAAAAAAAAAAEAIHgMAAAAAAAAAAAAAAAAAACF4DAAAAAAAAAAAAAAAAAAAhOAxAAAAAAAAAAAAAAAAAAAQgscAAAAAAAAAAAAAAAAAAEAIHgMAAAAAAAAAAAAAAAAAACF4DAAAAAAAAAAAAAAAAAAAhOAxAAAAAAAAAAAAAAAAAAAQgscAAAAAAAAAAAAAAAAAAEAIHgMAAAAAAAAAAAAAAAAAACF4DAAAAAAAAAAAAAAAAAAAhOAxAAAAAAAAAAAAAAAAAAAQgscAAAAAAAAAAAAAAAAAAEAIHgMAAAAAAAAAAAAAAAAAACF4DAAAAAAAAAAAAAAAAAAAhOAxAAAAAAAAAAAAAAAAAAAQgscAAAAAAAAAAAAAAAAAAEAIHgMAAAAAAAAAAAAAAAAAABHxt/QHAAAAAADgp5TS6x+maSr7SQAAAAAAAAAAMjM4AZCf4DHASe/m9RdNLQBwyEp3oa8AAAAAAODlvZds55iyTE0wjl/FrsYBbmdwgi6tNM7qmvopYAAYluAxwGGbh2efL7PbBQCs29Na6CsAgJi1DXoDAACAAUkdUwNTEwxis9JfL1DjANcZnKBLe7pmX/GolgKmWgYnALIRPAY4YE+f+vUau10AwC/zk7P17iKlpKkAAN52zvjuoccAAACo333fAuE8UxMM4tCSK35MizzHm3oYnKBLJ76+pWQRphbnCjg0EhRicIJuPLH9q6i5SPAYYK93V7reU77+r4M0AGDd/ov3PrsLR2gAAAAAAKMROaYSpiYYweklV1iIhmgtqIfBCfpzZY3VTlDcxSZBDQNAZ/6U/gAADUgpvc/Adu5Y7bnWFwAY07u1eNnZYLxfo6MAgKFk+NVvOgcAAKBOKf37A8WZmmAQKpQRqHMqYXCCLl0vTKVNQbeUnxrmIQYn4ARFzXWeeAyw19FucpqmeY/rsj0AGNz++3rX3wgAAAAAQB9O7P46c6YIUxP07ddqvFiwiy/2hDfaMk3flayAycbgBF061EusvEVHQRH7C3hzJVbDACfoc6mT4DHAhvetvaU/CADQvHOHZ4ZyAIDnaCoAAACAdaYm6N6JmNA8sQlN+KxbNUwpBifo0uKiulmhrxfM3yu3SWaHCvj93/US9ERTAbBI8Bhgl/e+1aG20vW9AMDbXYdnAAB3sUEBAAAA7GRqgl6diwnFj+yxmBA1+6xY4XlKMThBl+YVeqgfsCZT1ukCXildXTFtsUdBnRQmNRA8BljjAAwAAACowY3bEQZ0AAAA6rH+Fc0AOsWZmmBA+wvcKk1D1CrAQy6mjqE2YvNUzuAEQE5/Sn8AgPboMgGAo87d2gsA8PLE4ZmGBAAAoFrT9O8P1MnUBN2QFGIQX6WuzinF4AT8Mv9p0HGTx/UmwVpOTgYnGIfCpBKeeAxQgAuAAWAot8/faCQAgHMcngEAANTGUC9jMjVBDR7K86RkoaYBUvfkZ3CCLllOadqjV5PoiqmZwQlq48IRquWJxwAAAFkd2q6ytwUAI3vo8UEaDAAAAACYcxkEXfK4Y+pkcIIOSB3TE9VLzQxOAJQieAwAAPCg69tenztc0zTZ8AKA0dz12/+h0zgAAACe45scwEMkhRiE1DGVMDgBUJsbNxwsyeRhcAIgv7+lPwDAiGx7AQCHaB4AgIveh2f6CgAAAKA4GxSUZc6cQSh1OqN/AHiI9ZVxGJwAOMQTjwHWLPaUGk0AYKf59XgaCQAgP4dnAAAAwDmmJgAa5bHe1MPgBF16epn1UwJwO4MTtEKFUg9PPAbYoLMEAAAAAAAAoAaOr8nP1ASdWXwGrDKne59FLpMMUBvPqCe/afpXeNoAgLK0AdRM8BjgQfO7+gCAcegEAICLbpnrdWsvAAAAUIqzEoAirL7UQzMAAFxkcAKglD+lPwDAcHSrAAAAQB4OzwAAANolo0GvbFNQGyVJZzzQGKB11m2yea7YlDFVMTgBcI7gMQAAQCb2rQAAAAAAAKAUdzrQPalj6mdwAr7oTyjlrvVYDQNArwSPAZ6Slr5I2TUDAAAA8nBrLwAAAFCQqQmAzMR+ALKZd7XnFmEXRgA8zeAENdMJULm/pT8AwEB0qwAwjsVhmkMv0zkAAFc4PAMAAOiPb3i0zjYF/ZHzpHJ7cnHWZp5jcALWWZPplUqmHgYnAK4QPAZ4xHwvTLcKAHxZP2Oz5wUAXKeRAAAAAIowNQGQmfQajTI4Qbum6XvtTenA2mvdpg8u4qEJGgkatb7GqmsyEDwGuJ/zMwBg3ebZ2Gc7kVLSSwAAh+x8hgAAAADV8sWOppmaoCFqkz5Ir9EigxN0aWf22LoNkIHBCdq1p3hfr9FC8Kg/pT8AQG+cnwEA6/bcyDtN0+f/TSnZBQMAdnL9PwAAAFCQqQmq5bSNXkmv0SKDE/RhsX5TWus6Fv+vdZtGLZa6eqYSBido1Hojsfh6eI4nHgPcxuEZALDfiT7BDb4AAAAAAMOyPUz9TE0wGkELanBxJF3FUpbBCTowTctL8f71WUXTE/UMsN9dmeGULL88RfAY4IzNm/PsbQEAi15dxM5WYZqmr67DERoAsM6tvQAAAEAGpiYAqmUBpn4GJ+jMqx5PZIcUMk3zjE1qZnCC0cge8xDBY4BHHNoaAwCGcqhDmB+hAQAAAADQN7vCdMDUBEAGnmBMuwxO0J/98WNrNR1YLHW1DXCvxXVVX0xOgscAZ/za9ppfrbfyYgBgNLechLm7FwD4xdgNAAAAkIepCbAVR3FSxzTK4AS92l/ar1cqYdoldUzlDE7QgZVFdZqW12EPPeYJf0p/AICuTNM0389KKelfAYCXE0dfi93FTR8HAOiTaRsAAACgCFMT1OzGPTMVTXGKkKYZnKAzKZ1ZlpUwjZI6piEGJ2jUZuUqbbIRPAa436+DtCIfBgAAABiBnQcAAICOGSajLaYmaMi9hWm5Jo9zgR9PSAa43UrkeJr++3Pi7VAnqWPqZ/OBVvxaUa8sqsqf2wkeAzzFKRoAAAAAAAAAMCZTE/RKIVMhgR+A/FbyQl/L8noCWWtBK6SOAeph+SUPwWOArJyiAQC30FQAAJ/0BgAAAN3wDY++2cSgdUqY4jy4GN70FZSy+KTiPY8otGLTLqljmqA3oGkWVSokeAzwoPn1vaGjBYCBLfYGAAAAAAAAXTI1QRP2l6TipTipYzpgcILWXYxfLr5Sj0HlziXtAVjxWkg//0CFBI8BCnCKBgAAANzla5/ByA4AAABQOVMTlPJr52yzJL8ebLj499iW42nWToA6He0B9Ay0xb0ntMLgBMDtBI8BnqVnBQAeYigHAAAAAGAEzpxpmqkJWvEVLV7579Mk/0kBFx+wKTJErwxOkNlzy6lapkKLHbIWAgDG8bf0BwAYVErJ6RoAAAAAAAAAMCBTE5SyHhvezPwoW+qhGgEykw1mKCLHAIAnHgMAAAAAtMpd/gAAAD3xJQ+gWtO0lrUQw+BRkj8AxV188vxdb4Q89B40x+AEwBM88RgAAAAAAAAAAAAYwvpDj3+95c1AO5ktltz1Ovz1N4gVAexkwaRXX02CUgeAYXniMUAxbtYBAAAAAAAAYIUBXzpmaoKCdq6ur6ccb77YWg0AfdO3MoiUpI4BgP944jHAms9TrsmXJwAAAKAmxnMBAACAR5maoGOvil7cYFspdhty9M1KDwDDmje6GgNaYXCCAal68hA8Bvjpqwd9/auDNABgj2ma7GcBAPnZuAAAAGiXTWVqY2qCEVyvaD8TAL8YnKBjFxsAPxnURuqYzti7YEwKn9sJHgMss+EFAAAAAAAAAIzJ1ATM+bEgP1UHADxK5BgA+EXwGOCYlJIrcACAGuhJAAAAAACAzExNwCc/DTzteo0tRpeVLt3QlpCBOyDomNQxALDiT+kPAAAAMAoPBwAAbqS1AAAA6J55X4B62I2jGxoMynK6AYsszuQndUwftBYMyPVSZCN4DFCMy/YAoG9+1wMAAAAAAPziJIXWKWGATX7dw5yIHDWQOgYANv0t/QEAGmMjDAAAAAAAAIB7GT2nFaYmGJNgBo3SYAA0QV9BZl8dggoEaIjHHZOTJx4DAAA85bnhG2M9AAAAAAAAkIHUMcAVBifgkyshKCslqWOAMuYr8Lm/BHISPAY44MRGVfrxu92eFwAAAAAAAADQEFMTDMhQLwAMbrFvPdcheEQhZblPB6CU9wr8xCaDxZzn/C39AQAqNU3T+/TLcRcAcJeU0tHWYj6RozkBAAAAAOienWDKMjUBIR1EjxQwNTA4AZCfBx0DlHJX2NgeBfl54jFAAfa8AGAct//e10gAAAAAAABNc9hBE0z0AtzF4ARdOhoi0lpQkNQxQD3O5ZCfeFQybPLEY4Cf3tf3nrhg72V+zV7Y8wKA8Xw+EyAOthaL7QQAAAAAAD2xE0ydTE3Qk1cx7q8+0SA6oMGgKgYnaNo0XVpUf71Xa0EGi+V377KqkgGOSunY4qmXoBTBY4A1V07RnJ8BAG/njtDm7YReAgAAAACgRSeGetffYreYPExN0Id3Me4Z7TXOC/AQgxP0Z8/NJloLABjc4g0mO+9HW9ki1kuQgeAxwIbPU7TYvWnl/AwAWLd5hObwDAAAAAAAKM7UBJ151+ZXPbruASA/gxM0ZOWhx4vdhdYCANh0bo9i/np4iOAxwLbPm/b2HKQ5PwMA5l7NwM7rex2eAQAAAAB048TjjqEqpiZo2mZGaJPipRuKmeIMTtC0lezxy87uQiEDwGju6iJCI0FegscAu3xteC0ekq2/FwAg/n80J/Y1FXoJAAAAAAA+2TYmP1MTjEnxAjzB4ATt2kwNbb4dcspwD5qqBtjptWBeXJmtumQmeAxwwPy+vT2vBwD4tL+j0EsAAIdoHgAAAIBHmZqgRecCQoqX1mUIGsEVBidol9YCoHKaB2p2+hITdU0RgscAh72b0V/bXrpVAGDTSkehlwAA9vgaytFCAAAAVMs3NjpjaoLmHHqskPqlDyqZJhicoFFaC1qh/BiBwQmac/TRx4qaggSPAc7TmAIA1+koAIAr9BIAAABAKfYlaMu7YBene5UzQEGaClq00lqoaIDM9BI0RyNBEwSPAQAAAAAAAAAAgCEY4QUAbqS1AABO00hQsz+lPwAAAAAAAAAAAAAAAAAAAFCe4DEAAAAAAAAAAAAAAAAAACB4DAAAAAAAAAAAAAAAAAAACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAD/Y+9edhzJcSiAUoX8/1+OWbjhMfwIO14SJZ2DXhSy7IQXLDUt8YYAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAICLKsiytP0NSpZTWHwEAAAAAAOASTogAgHWmJgAAAAAAgIEZnFjhxmMAAAAAAAAAAAAAAAAAAEDwGAAAAAAAAAAAAAAAAAAAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAiPhr/QF6tSxL648Avyql3P+sdOnRYw2HMqYfT6X7SjHTEe0EvVPDdEo7wTB8rWMA2gl69LWXAAA4SG9MR3yto3dqmE456WAYTjoYgHaCTmknGIZ1mN5piemUwYkj3HgMAAAAAAAAAAAAAAAAAAAIHgMAAAAAAAAAAAAAAAAAAILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4D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AAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAgP+xdzc7juM6GEDpRr3/K3sWxhhB4jj+lUT5HNxF357qRhYsNkviZwMAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAETGM41j7MzRqGIbaHwEAAAAAAOAWbogAgHW2JgAAAAAAgI5ZnFjhjccAAAAAAAAAAAAAAAAAAIDgMQAAAAAAAAAAAAAAAAAAIHgMAAAAAAAAAAAAAAAAAABExF/tD5DVOI61PwJsNQzD/GulS0avNRzKmDzeSveTYiYR4wTZqWGSMk7QDT/W0QHjBBn9nCUAAE4yG5OIH+vITg2TlJsOuuGmgw4YJ0jKOEE39GGyMxKTlMWJM7zxGAAAAAAAAAAAAAAAAAAAEDwGAAAAAAAAAAAAAAAAAAAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAi/mp/AIDODcMw/WIcx7qfBAAAAAAAAACgJFsTZPd/CS9Q1AAF6MP0Z6WqQ2HTJK0YAJ5J8JjbXXV/MP09LiHIZVg/HgAAAAC4lDM0clk5PVPGAAD0xOIEj2Vrgry2FO/8NRozwOX0YfqzcTRW2LRDKyYvZ2jkYnGCZgkeU86xizQ3EAAAAACwhZM0EvlZrt6IBQBAlyxOALTvQNMdBkEL6igzIyhvCjvWh0Ot0jA/0pGOkZjUnKSRiMUJGid4TAWH/yHXKMnFzAoAAACU4RSCRD7L9fPg9/VrhmFwMgwAQH8sTvAEzitI50zNCloAnHdydtCKaZCJmHSMxKTmIIJELE6Qwr/aHwC20iLJxdgKAAAAFDAMg1MIEnkr13EcFw9+335TkQMAwMTiBIn4UY5chuGCXJCqpzAlR2cuKWnfF7Tj5HThhz+qMBKTl8UJcrE4QRbeeEwOLs8AAAAAYOY6gXS2PK/37b96fC8AALwyEgPcZOWk7Vvr/fZHvOQN4JhvffWzqf68HtGKacGB6eLnH4S7bW/F639EH6YkixOkY3GCXASPSUBbJB0jLAAAAHAV5wx0YO/l2fw1rtAAAGBiGCYXpxkkslitP5vu9AUqnScwg1DArlY8/74mTLMOpDd3fQ3c4dqpWPaYOzhqoAMWJ0hH8Jim6YZkZKgFAAAAyphOz5xFkM72g19XaAAAYAYmHScVJPJZreebrpQFjfOmTVpzuBWPo/fP06Jj6U2o6+RUvNKQoQyLEyRlcYL2CR7TKE0QAAAAAN44NCOjtyvek2XsCg0AgOcw+gLc6nzqWMSCui6fFO6I4sNeom6kJnVMRgYAMnJoRkYWJ8joX+0PwINsbGrjOGp/5DVNA2oYAAAAuMr4ovZngd3OP1ha5QMA0BOLE3TP1gR5KVseTuiIKt4K70DVKVTaIXXMk32WugdDcDmLE6RmcYKkvPGYonQ6+nZ+GgAAAAAA1nl2LwAAqZlm6ZitCfLSm3k4qWOqOJ86Xv/LlTElSR2TlBkAIC+LExTgjccAF/OPNwAAAADE0sa5ozMAAIDu+dGPLOZSVbM8nMQRLVB1pCZ1TFJmAIAyLE6Ql+AxwDWmacAEAAAAAADXcuYGAADQPlsTJKVmeTiJI2pZDGoeo2hpkLIEAC7n2I3yBI8BAAAAAICLfT61N8tfDgAAADyElV0eTuqYRig8UtNLAYAVFidITfAY4AIe3AsAAAAAAAAAPJOtCZj5PiALSTmA84R9yOvuScBcAQAdEDwGOMtjQgAAAAAAAACAZ7I1wWOpffKSOqa6ueTUHp1R0jyTwRgAuiR4DHAND+4FAAAAgGLstQMAADTF1gSErBFpKV2AAzzEAQCozuIEtxI8Bjhl+nfa/RkAAAAAAAAA8DS2Jngsm73kpXppx30ThNmEu+mlsEITBoA+/NX+AACJeToIAAAAAAAAAPBMtiZ4rMXal68gBe/npB1X1Z55hEZ8K+mVEtWB6YM+DAC98sZjgLM8uBcAAAAAXlk9BwAAeA5bEzyNYw/ykjoGKGkYfowNP78A7vM5AxyrRtMFwAqLE2QneAxw0DQEuD8DAAAAgDcOzQAAALpna4Jn+rYz7FuB9skF8Rxqm7v9zBDtShRLJJGX6QJgnXMzsvur/QHg/REOGispePQIAAAAAAAAAJewOEE6tiZ4Jqlj8tK26ZXaphHzMHD4nbHGCcobx/eK3VWKUscA0D3BY+pYuX6Y/5OLNNqnSgEAAACglmEYHNABAJCXxQk6oER5jpUQke8DklK6AMesTAWS8HRgY/ZY6higHRYnuI/gMaX9fEzv/AXTL7Q/GqQ4AQAAAAAAADjG4gTZqUye42d8yPcBKYgG0avFLq28Ke/ztbHxvRS/TRdeekwVi9U7/c6uGla9ANAlwWOK2vJQ3nEcX+/Y3FXQmpXHTgMAAAAAAADACosTZGdrgo7tqm5dmSykjnkU5U0Vb512vQ4Xc55Q0bea3F6oei8A9Opf7Q/Ag2y5PPv2BS4taI07XQAAAAAAAAB2sThBN2xN0B+pY7pkfKBjypsqfhbeliFh78uQ4W7jeHC+PfwHAYAUBI8pbePFgys02uRJ0gAAAACwhTM0AAD4xuIEedmaAOEKslPA9GFxLlbeVLe9CJUrDdo+6E5fqYwBtnCMRmqCxxS1q2Nqr7TGJS4AAAAAlOdcDgCAnlicIC8/nUFEDIO3EZLGZ62aLOiD1DFtUoRkt33QNRIDVOFojvIEjynn/H2YLkkL3OwCAAAAwBbezwYAAG8sTtABWxMQXzJv0BRVSq+kjqlopbUqQlI7FiQ2bABsZHGCvASPud3UIo/dOmivtGOqPfdnAAAAAAAAAOxicYIO2Jqge+O4/L9vvOeNdLRwOiB1TJuOFaHSpQUrM62RGAAQPKYEtw5k5+IWAAAAAA7wPjcAAJhYnCA1P5rxZOtxC98ctEll0iWpY4Brfeurn9OvkRjgJIsTJCV4TD7aJbW4CQYAAACAkxzwAgDAeeZqqrA1wcP5DiAL4Uy6pLBpljoko8U3Fa+/3Hj+GgAu4YCXFASPAX6Y/kV3fwYAAAAAB5w5WHM0BwAAUJ0fzWC2+H1gVRjgbsfScQAsOvkoByMxwDEWJ8hI8JjW6YzU5TkiAAAAAHDS2zHvxjM3l2cAADAxFVORrQmAXLwVlv4spo6hPA2Wju2tZJUPcIzFCdIRPCYltxoU5h9pAAAAADhj7xXalkNgp3YAADyZxQlK8vMXzLzhjXS0cPIaBqljgIvd11eNxABbWJwgl7/aHwCgXR4NAgAAAABXmc7Z5ouxb4dv8xc4lwMAAKjL1gRALgI/9ETkmO5p2pSn6gBaYHGCRASPAZZ5PjQAAAAAXG4cx9eTt2+ncC7PAAAA6rI1AdABZ2wkJXUMcLnFn/AOd9dxFGMGOMXiBCkIHgOs8e80AAAAAFxrPnNbvDxzIgcAANAOP6MBZCH8QzfeitkwQrMUJ9mpYYC6LE7QPsFj7vXtne/QOKULAAAAAHdz/gYAwBO4fSYjdQsAlOdFxwA38YASgJY5gqNZgsfc5fOd71ohWSw+LwQAAAAAaIcDZwAA2mdxgqRsTQCks9i5zR3kInUMah4A2MuBM7cSPKacYRh0NHK59i7t29/m+wIAAAAAAADgCSxOkIutCQCgDKljnsajfqjuZJtVwwDwBILH3MKjTwEAAAAAAACAx7I4AQCU4XXHpCZyDAAA0CbBY4B35x+mu3iF7Bm9AAAAAHCAwAYAAEBJtiZghVMKgAtJHcNM8XMfEyxAHyxOUN6/2h8AAAAAAABgB9vqAAAAQDscVFCR1x2Tl9QxjyU0RJf0cIDyLE5wN8FjUtIcAQAAAAAhH/6uAAAgAElEQVQAAIDHsjgBAEBeUsfwSv2Ti/A8ADzEX+0PwIMcu/TyLngAAAAAgLzeznjPpyPkKwAAyMviBEBhUwe96izBq2UBLvHWTjVSHsWPd3RJJwf4yeIEGQkec4txHKeeqJEBAAAAADzWZ0BiGIZd58YiFgAAJGVxAqAzjihokDA86XjRMT0ZhmsK2HcBuZiKAQ6wOEFS/2p/ANjNnRwAAAAAwDM5HwYAgDAYA+x033aufgywndQxSAxRxWKzPVaNHnoC0Ajnw5QheMy9PFMBAAAAAIBj3k6YXZ4BAJCRxQmAWl4b8MlmrJcDnPTWSMdRUI1kzlesxCYAcIzFCWoRPOYulzSyz+s3/REAAAAAAAAAaJ/FCYCmHA4Pf/uD+jF1CbCRyGfqGPqwfbrQtGnQ3vFYGQPA0/zV/gD0bxgGl14AAAAAAOziqb0AAHTD4gRAFeP4no6Y/u+ulix1DHDGYhe99jXyGjLtE9ekus/BeBcjMUBFFieoyBuPudHczj6fv7uFp/YCAAAAwAHHjuOgjI3HvC7PAADog8UJgAYNw6bcxcqXacYA8ECLA8D6UPFtnDBL0Igtg7GRmLwsTtAyixOk4I3H3Gscx6nN7X18r8sz+uMh1gAAAMDlXJWRxZnzYadqAACkZnECJrYmqGLl3W7z778V5s/zNoVMC8TYANqxOFSsTBTaNVXsHYzXp2JlTGssTpCFxQlyETzmdgeu0FyekcXeCXXx65U3AAAAsO7AJdn6H3EcQTHnz4eVKwAAHbA4Qa9sTZDCSsRisquQFSwAPNn6XLFlqDBLUNFVg7EyphaLE+RlcYKkBI8p4bVFxmq/c3MGAAAAANAT58MAABAGY4Cqpj568g1YmjHAXgVePag5U97P6Ob6n4W6zhRwqGGAE5wPk5HgMYXMLTL2PGhEcwQAAAAAyO7A+bDDYQAA+mNxAqCuwykLnRgAeHVgqDBO0I5jU7EaBjjP4gTpCB5TztTvNEd6olABAACAAhxB0IHXK7SfX3n3hwEAgFosTtAZVUo6e199rMZp02INK1capCzp2PahwjcCDdo1Fath2uEUgg5YnCAXwWNKm3ufl78DAAAAADzH6wmw82EAAJ7M4gRAXa+99nPdVyemfaoUoBFzQzZRkJECBqjC4gSJCB5TjW4IAAAAAPBMzocBACAMxgAN0IkBgPNMFKSmgAFqcT5M4/7V/gAAAAAAAAAAAAAAAAAAAEB9gscAAAAAAAAAAAAAAAAAAIDgMQAAAAAAAAAAAAAAAAAAIHgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQEQM4zjW/gyNGoah9kcAAAAAAAC4hRsiAGCdrQkAAAAAAKBjFidWeOMxAAAAAAAAAAAAAAAAAAAgeAwAAAAAAAAAAAAAAAAAAAgeAwAAAAAAAAAAAAAAAAAAEfFX+wNkNY5j7Y8AWw3DMP9a6ZLRaw2HMiaPt9L9pJhJxDhBdmqYpIwTdMOPdXTAOEFGP2cJAICTzMYk4sc6slPDJOWmg2646aADxgmSMk7QDX2Y7IzEJGVx4gxvPAYAAAAAAAAAAAAAAAAAAASPAQAAAAAAAAAAAAAAAAAAwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAAAAAAAAAAAAgBA8BgAAAAAAAAAAAAAAAAAAQvAYAAAAAAAAAAAAAAAAAAAIwWMAAAAAAAAAAAAAAAAAACAEjwEAAAAAAID/2LuX5dZ1IwqgTZf//5eZgeoovhJF8YE31qoMkhPZpUEb1QR6EwAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABARv7W/AAAAAABktCzL47+s61r3mwAAAADc9G+fY5vNDxq0U7QqFqCW5+JsKQYo41NXbB2mDFMTAL2zw0YVgscAMKlldyrB5gIAAAAAAAA0Yj9v/P4xZ31Ud6RoVSx1mZpgWpZfgGK+dsWPD1iQAYBNdtioS/AYAKazf3j28hlnaQAADOOlE9brAgAAAO07GDmGdlwo2mUxGUlRpiaYlr6CYbg8lvadWnLFjynG1AQDy9Hr+hOhIjtstEDwGAAmsnl4tq7rzqHa4/+yuQAAwHiOzJYdpGEGAAAAkhMNojt3itZkJGWYmmBa+gpGop5p3OUS1RJTnqkJgAbZYaMdgscAMIu/GwQvT/h//+fmPsKyLDYFAAAAAAAAoICbc7+O9aji/ry6yUhyMzXBhOQzGY+qpnFKFGAYHgEpL0kjYYeNhASPAWB8O4dn7x4feD9Ic4oGAECPEr6g9xN9MgAAAJDQzmbG/iaEAXcq+lR+O0W7+SMmI8nE1ATDu9AGKGd6t66vla+qqe5UV6wfphhTE8zAthgDuLAt/OlHdBSk8lP7CwAA5Rx/tt/8ZIHdBwAAAAAAAJjWzpz614O+x2eMlFHeZt1+rcZPH3AoTVamJgC69ncZtiTTlGU53RV7dgMAnnYaiZ2ewW4wubnxGAAG9zz3OvtGsXVdvcEXAAD2aY8BAACAVD6Nl0HL3uv2VNG+31UIyZmaABjD3yVZC0FTLj/KbVayKwrpjvaYNilMOnJze+3T7/RXwH1uPAaAkV0+PzvyOwEAYHLOzwAAAIBUpI7pUY6xSEjL1AQz2C9JKzNjsPTSl+Nrr1Wa3pmaALjp/vaalZh83HgMAHy0+fpeAADokakyAAAAoFlSx8zs/Z43V7LQDlMT9MtCykheVmLlTVO8i4eOmJpgHpZi+qV6aYrgMQAMK8eLe5+/2VvKAADoSI7zMy0xAAAAkITUMZ0SsaB9piaYxIViVL/0Th9CIzJFL72IhxxMTTAwQXiGYVmlNT+1vwAA0DT7AgAA8OT8DAAAAEhL6phOSfswD7vBAHW57pi+eBkEwzM1AZDWczW1rNIgwWMAGN/yT9rfmfC3AQBADpm6VudnAAAAQD42HgCSMzXBzJQqXZM6pmXexUMXTE0AdMGySpsEjwFgTJubBc69AACYUKoTL+00AAAAkJY5dYB8TE0A9M6aTcvUJ30xNQHQMnvCNEvwGADm4rEfAAAueDbSXtwLAAAAJOHUjn7lzszbgSMrUxMAXfCOHoDWmJqgFyoUwh8CiQgeAwBf2CMAAGByzs8AAACAAmw8MCchUNpnZ5jBqGh69LduZZKpbrODVYeMzdQEzbKrAP4KyEfwGAAAAAAAAAAAyhGWAACAT2QnAADgMlvNpPJb+wsAAAAAQBZJXrXrxb0AAABAWnIUsMMmHEBCug565B099EiV0ixTEwBj89BHVoLHADCmdV2XrUbSYz8AABzn/AwAAAAo4NPGw87cmL0KxmA4knxMTQD0SOqY9ulgmY2pCYBmbbYlVmsS+qn9BQCAXN4f8q899m8exQEAAAAAAACZLMuXcfavH4B83o+dr1WjZBG5mZoA6IvlFgA4xcYCM9M8U4AbjwFgZF4wBgAAl3lxLwAAAJDc14GwUxNjy2Kekl4ZDqYMu7vwwt8EfTnyuhNVTe+khmiZqQmANn3qH6zWpCV4DAAAAACvnJ8BAAAAZTz3Hi7fGWv3gvLW9bViT5WiyBAA8EJ7ANAaUxP0bn+rTV3TL6ljihE8BgCusI8AAMAM9L0AAABAQjvzji65YgAHs8diRYzB7jHt013QEe0BXVOujE3fS4+OdMKPzyhw+rJT24qZHASPAYA9i1MIAADmow0GAAAAyni/NjY+T4l92rFw6TFVbFbv/tjuZg2rXhpnuxggN6ljOqIvYB7aYDp1tnLtqtGFr4WtjMlE8BgAOM0LzAAAGNjz/EzfCwAAAOT2MjS2vxuxmfOEij7V5PFCtQNHp+we0ymVS4NO9bciyozHq3lok6kJupBql0z2mNacqm3VS1Y/tb8AAAAAAAAAAAAMLsnFFGcvQ4bc1vXigOPlHwQAxqZDAAAKs7FGO6SOaYobjwGAj5at1tULzAAAGJgX9wIAAABVHN+KcO8xDXoU8JHKtOtGX0xN0C/dAl1wgzFAg0xNMIzNEtYnMwYrNGW48RgAOME+AgAAAAAAAKTlCI7eLcvRyd3jn4Q2mZoASEXqGDTGAJms68e+4tO/W5Ppix02yhA8BgC2bb64FwAABqYHBgAAADLZ2XWQr6Br18Yc7cPRBTvGAPlYYulUwsc3fwW0SQ/MAL6u1fbiGIY1m9x+a38BAKBFm3sHXtwLAMAktL4AAABAGdc2IdbVVBn1HYzTf/rY49/tw9EsUxOMR/3Sjs324GuJuiGZZi1LympU2DRC60vjrrUTX3+nwqe6s5dy22EjK8FjAOAQmwgAAIzNi3sBAAAA4KDjA77Pf9z8EUO9dMTUBEA+llhm42iaNpmaYB5e6kd37LBRxU/tLwAANOd978D5GQAAAAAAAKTlCI4eLcv2fYNf61nB0xFTE/ROiIKWubgYrNIAOegomIRSpyTBYwDgP5yfAQAwIS/uBQAAAICvjl90vGnzk3bmaI2pCYB8pI4Z1fGeVvdLs0xN0JfHG9D+/gfmYYeNYgSPAYD/c34GAAAAAAAAad3MakLLzlayyqdxpiYA8pGFYAyfWoOvFb4s//nM5u/RdwAA0A7BYwDgI+dnAADM4GWSTBsMAAAAAO/yXVEohkSzbBczDLVMdTffxeOqZLrwEi3e+fd11QPTFlMTAH1x6TFl/Nb+AgBAK2wcAAAAAAAAQPvMkFGeqmMGpiYASrLK0q/92PDXzlnxAwDQBcFjACDiv+dnDs8AAAAAAAAAeLh5ReH7D4ox0yBTEwzDGkuD3FcMD/uV7+8CAICmCB4DAM7PAACY12IABwAAACjOiRy9U8MMxtQEQD6bZ3H3D+g+/QarOGVceJnO3+J0Rk1TTE0AAJsEjwFgds7PAAAAAAAAANhkBJ3hmZpgeOoaIIeD2eODi7C1GgCA1ggeA8DUnJ8BAAAAAABA7xz0AVxjagJgJBZyCnuU3Gb8eKcavdkHoDpLMcARgscAMC/nZwAATG5xkgAAAAD0xn4G1d08W1bDtMPUBOOxxgKUd7+J0IZQkakJeLIaA7z4qf0FAIA6nJ8BAMA7vTEAAAAAwAxMTQAUIM4GL/xR0D69MQDw4MZjAJjRzfOzx4/bXAAAAAAAAIDqnNqRj1wEozI1AVDG/ZVysxuxADMS9QwAnGXLjjLceAwAU3MMBgAAAAAAAL0wUsaQnFpTkakJhqfGGY+qpl8e6ABa4LUmjEoZk5zgMQBM5/niXudnAADMbHGuCwAAAPTPiR99sSdHC0xNAACN0IxQl6kJAGCH4DEAzOX++ZmNBgAAAAAAACjPMR1DkrWgMFMTDExtMh5VzUje61knDFCe646pYllSdrbKmGIEjwFgIgnf2uu9vwAAAAAAAHBNqjkzR3b0RXaI6kxNAABVSB0D3JQkt2lfggEoY0oSPAaAWSQ8PwMAAAAAAABKMlJGFZtny9eq0WUsVGdqAgCowtMcwE3PhTTHiuoBkWLytQTKmEwEjwFgCs7PAAAAAAAAoIr7B3QSmwA3mZpgTuqd8ahquuNpDuCmVFlNCzK1/K29m/XsbSYU9lv7CwAA2d0/P1t0qQAAAAAAAJDOshwdbTQWSYOOF/Dz8++UMcWYmgAAqtAGAyR3dkfi+VPQiGs1HJ/LWGtBPoLHADC4v6dfTsIAAAAAAACgI+bUqW5db43nmomkOlMTTEJ1Mx5VTWseNXm8j/U0B5BJkrehhTWZUt731s42FaGMqUTwGABG5swMAAAAAAAAqtuMbu5PSRomo3FHRiSVMdWZmmAkF8p5/0esxgDHPVfUI2k3bTBAQp921eLAurrTD1uTqU4Z0z7BYwAYVr7zs1WXCgAAAAAAALc9D/T+nr8ZJqM1O5cen63hUMYUZGoCAMhhswcObTBAcdcW5PfPQ25n99ZCGdMGwWMAAAAAAAAAAMhrZ7wsjt1haJiMivYLOA7fw6mMAa5xezeERoJ6viaFvlK9AHek2pQICzL1JCzjUMmUIngMAGPK9+JeAAAAAAAA4IKv42X7Pwt13SngUMMUZ2oC9lmWAcqw3gIk8VhObz7nWZOpSxnTnZ/aXwAAAAAAAAAAAKZwYTJsXc2T0YprpaiGAYCzvD6CpmiDARpxeV21JtMOZUxH3HgMAGNa9ZUAAHCSLhoAAAAo4PjVFvYqaNCpu1nUMBXZ72UwKprZqHlaow1mErpo2nf2zlhFTYOUMb0QPAYAAABgRo8Ds+XfJq7zMwAAAKCk51bE+4SZXQrap4ABAJjQThscOmE6ZGqCftmXYAB/a1Ul0ybBYwAAAADm5eQMAAAAqMvmBF1TwAAATEgbzEhMTdA19csYVDJt+qn9BQAAAAAAAAAAAAAAAAAAgPoEjwEAAAAAAAAAAAAAAAAAAMFjAAAAAAAAAAAAAAAAAABA8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAJdCUrEAACAASURBVAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAAAiYlnXtfZ3aNSyLLW/AgAAAAAAQBZOiACAfaYmAAAAAACAgRmc2OHGYwAAAAAAAAAAAAAAAAAAQPAYAAAAAAAAAAAAAAAAAAAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAICI+K39BXq1rmvtrwBHLcvy/O9Klx79reFQxvTjpXTfKWY6op2gd2qYTmknGIbHOgagnaBHX3sJAICb9MZ0xGMdvVPDdMpJB8Nw0sEAtBN0SjvBMKzD9E5LTKcMTtzhxmMAAAAAAAAAAAAAAAAAAEDwGAAAAAAAAAAAAAAAAAAAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAOB/7N3Lrtu4EgXQYpD//2XdgXMNtSTrLfG1FjJoJD6BBhV2maxNAQAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQET8zf0AABVLKf36o2EY3nwSAKA6K43Eh3YCANi03lFoJwAAAIBHmZoAqNH6SbX1mzcZnKAHK2WuwAFuYXCCPn0LX43zHMFjgDM2N7y+H9CqAgATm43E+GN6CQBg0Z6OQjsBAAAAPMTUBEB19h1TG17nJQYnaN6eGrfkAlxkcIJu6SJ4h+AxwDHz9nTeho4/k1LSpwIAH5NGYrFJmHzGthcAMHG0o9BOAAAAlGln+OciXwe5nakJ+LWAq3SK9U7XATsZnKB5J1bdz4+ocTJ6oltQ0jzK4ATd8v2ONwkeAxywp0P9/L5TNABgYufV/p8/dYoGACw61FGMP293AgAAALjO1AQY8KUuKpbSGJygbRdX3ZQENQF2MThBn3y/431/cj8AQB1SSjvPzxb/dH7jLwDQj28jMQzDzn2rPXf6AgC92Xl4Njb+5HxzAwAAgFx8P6M6piYgrN5UJaVLFSuOwe0MTtC8W2pTgdMMvQTPMThBbz5f7pQtWXjjMcC2eXO5p091gy8AMHa0E5j0Eh86CgDo1umL/BebCgAAAID9TE3AxDBMR35VN0VZ2RJer1V7yTzN4ASt+rV+zkt1c6X13mPepwGgIgYnaNiJCtUz8DRvPAY47NztOOGyPQDo0umtLgCAr4tbCpPrey8/DgAAAHWwM81DTE3Qp3H9qmVKthJ+21y/P5/RQnA7gxO0bXHh/bWcWmkBTjM4AfAybzwG2DBpKy9ufrlsDwD69O0oDnUC7u4FAOJsIzEx7iu0EwAAAJXyikKyMDUB8d81dv66YyjHr/AblMDgBE2aL7w7a3Olo/DSY7JTgRTI4ATA+wSPAdZcv8xmcdsLAOiE0y8AAAAAAOZu3yc+PewO60xNQLjZgXpIHVMmgxN05VBpu80EAPhYbwn0DOTyJ/cDAHTHiRoAdE4zAADsd8utvXf9DQAAAJRJ6pi6OCihLpOCtcBSLKlj6qIfoA3X+wQLNQVSlhTI4AR9GoZ/vyAXwWOAn+Z7WxpNAKAETuAAgIu0EwAAAM2QOuY5piZgkYWXAkkd0yEnHWT36O0kCpzXKDZ6pp2gHN+M8fjX5o/A0wSPAR7n4A0AAAAAAACA2wm/UQVTE9TL646pgtQxQHZWXQAA2iN4DLDs0Qts3I4DAAAAHGIzAQAAgAmpYx5lagKkjqmXcgV42o39rEUbYD/7CfRJ4ZOL4DEAAEBlvBkAAAAAAKBzUscAjzLUSy20BHTL4ATlUIwAADRJ8BgAAOApiwddTr8AgHNuvLtXQwIAAFA1ESOAR1lmqYWEPFUwOAFQEcsz5TM4AfCav7kfAKBTKSWtKgD0wP/xAYAbXdlPuPH4DQAAgIzE4WiDqQkqMi5VizCFU5CUyf/0ac8w/OsKVDdVc4BMpQxOgA6Ed3jjMQAAQKFscgEAczoEAAAAxgyZAdzL9hu1EIOnE45FAIA5HQLACwSPAQAAauImYADg4hGadgIAAKBehioBHiXJSS20BHTOSQeFeK4S1TjAJoMTdMK3PzL6m/sBAErkChwAAACgBMMwLG5TfH5z/0mYvQ4AAIAGiMPxGjsJ9MkyS9V+levKiq7CAa64axXVegNsMjgBkIU3HgMscIENAJDd4iaXLgUAGNt5Kjb+mHYCAACgUuJwvMkGAh0yf057Utoo7M0PQHYGJwCeY5+BZhicAHiI4DEAAEAd7HYBQJ/We4CU0vopmsMzAACABpgGBnjffKW1GlOIzWDFoUSx7DF1cdJBD5Q5wJzBCfhSwrzmb+4HAOhXSknbCgAsmu+CaRsAgBW/NhkcngEAADRAHIhWmZqgHBLF1O5bsefahpTUPCUyOEEPfN2jWOvFaT2mTAYnAO7ljccAAABlcXgGAEzsaQbmN/g6PAMAAGiVL3kAN5I6pi4rKSDpNVpicAIgl5S2m4o9n4HbGZygQxZb8vLGYwAAgII4PAMAFg3DMO8T5j43+Do5AwAAaIY4HMCjLLM0YBgOVPKvbWYvPaYoBifoxOKarNjJ6Gi8Tf/A+wxOALxJ8BgAAKAITs4AgHX7j9DGP/LkEwEAAPAscTiARx1KVliTKdakONcrczGlDOUwOEHn1DuvuasfkD3mfQYn6Jxy5k2CxwDLdrakAAAnbLYZtroAgEWfJmHnloWOAgAAoGrOq8nL1AR9sqNG4TYX5j01/Ct7LDjEywxO0Dm9Ns3QQvA+gxMA7xA8BnicozgA4KhP/2DPCwBYdOgGXx0FAABAM3zDo1KmJiiTNxjTnv017L3HVMExBw1bXIQVO0VZLEj9A0UxOEHzrLpkJ3gM8NO8GU0paToBgOt+dRTz3mPlwwBAz/a/dEhHAQAAUCNxOEpgaoKGWWZpjxqmOgYn6JbUMYVbqcZfd5d46TG5GJwAeNSf3A8AAADAP8MwzPe2UkpeBQAAjJ1oD7QTAAAAFfEdDuBRllkqtVK6AhS0xOAEbZM6pnCb1ahcKYfBCYCnCR4DrLl+q432FAA46tcpWpaHAQBKM+4Khv87+oMAAADUxVwvuZiaoD3n0j7ekEzJzlWjGqZwBidoktQxhfhVileq0QrNywxO0CdtAy8TPAY4Rq8JALzDERoAMDG+r3dybOYIDQAAoBm+ulE42wu0x9guQLEMTtASqWOaoW7Jy+AEwGsEjwE2XLm+99OVXr8AGADgw54XAHRrcl/v/AM7b/DVTgAAAJTMJDoFMjVBS7y4mPaoYTrkpIMa+a5H4VQjtTA4QT8UKSUQPAbYNuk+dzaazs8AgIsWGwl7XgDQoc3Ds/Gfbu5FaCcAAACAQ0xN0AapY4AaGZygAYtNiD6EjD4VOP4FVTA4AfAywWOAXY6eou3pRJ2uAQDn2PMCgK7sPzzb/zHtBAAAQIG8AouSmZqgdvbDqJ0+ASacdFALV58A3MLgBMD7/uZ+AIBqfFrPb3/562re7weckAEA1w3DYHsLAHp24vBs/GGNBAAAQNWcOVMUUxPU62JiU14IIC+DE1TKnREAdzE4AaGLIAfBY4BjJntYv9pQ52cAwKNSSvoNAGDTyiyOdgIAAKAoBiCphakJ2qBCQe9BA5x0UDIXlwCUw+AEwDmCxwCHfZvLxQZU6wkAAADc4vStvWNu8AUAAKiUk2eKZWqCuoj9AAAv034A3MjgBB1SqhRC8BjgPKdlAAAAQBVWbvAFAAAgO9/YqJSpCcq3uMBeX3V//Q3+TfAm9QZQpkmfYLkGKIfBCYBD/uR+AIBOOX4DAC6yBQYAbbvl1t6x+V+inQAAAAByMTUBAFznpIOipCR1DHAzgxPwoakgC288BgAAeMrt214AAAAAADRmcbjRjjJAdSzd1E4N8xCDE3Ri/s1OvdMqIU0A6IQ3HgMAADxichNeSsndeABAXgZ6AAAAAABwcM1rDE7QCaljUPNUxOAEhdMvUw5vPAZ4nJ0yAOiQBgAAAAAAgE1ed0wPHJqQi9IDyEsPQA9EjgEAaJXgMUAGrskBgG6llHQCAMCm52ZxhmEw6AMAAADk5ayEd1wvNNdD0A+FzZsMTtAMqWOARxmcAMjrT+4HAAAAAADgPwzcAAAA9ECeDaA6VmkaIGEBcAupY/pkK4M3GZyAD/8UyMUbjwE2TC6zud6/6oABgFtoKgCAi7QTAAAAwCZTEwDNszBTL30FuUgdAzRDOwHwizceA6xJs72B+e8c/RsAgJ7ZpQIAAAAAAGphaoKeKV6apLApgcEJajdZS4dB6pheeN0xwNN8ZaMogscAr7JlBgAAAGRk2BcAAKAQpnXpk6kJgLvctddrYQbYL6WF1DGUb1665/4SaIbBCYA9BI8BHjRpSZ2fAUDnTjQDv3a49BUA0JUnDr20EwAAAMDTTE0AFEW8ghIYnKBe80pUg1ThW7pPdAL+FfAmgxMALxM8BgAAuN94Q2r4v4zPAwBUR/MAAAAAAEWxY0dG18tvMaahqnmUwQlaMn/RsXKmCnflNDUS5KJ5AP8IyEjwGOApLu4FAB6irwCAToz/p3/L3b3fv0Q7AQAAkJeBXXpgagLgafu3jfUetEdrwZvmqWOo1Lkz5ydelQz7GZwAyOVv7gcAqMzO/tL5GQAwDMOnJUgpnWsGFrfJ9BUA0K3TTcX3xz//oZ0AAAAATjM1QSeEK2iJ1DEZGZygdotL6L19gnLmZSkdq7pfBa90ycXgBA2zF0FpBI8BdjnUWTo/AwA+rhyhOTwDAGLUTnzcO5cDAAAAsJOpCYDshmFhDH09OyQpRAkMTgBk9Kt/iB39wMoJs5WYlxmcoBknanD9RyzIPOpP7gcAKNq3Jd3fZTo/AwDGxu3E6Y5i8lcBAF2Z9ABHT8LGTcgwDDoKAACA7Lx1kIqYmgAoX0r/fs1/c5GFmfcZnAAo0GILsfL7X1ZisjA4AfA+bzwG2DC+by9W963m/auWFACI/963t9lRhMMzAGDm0wlMOoo42FRoJwAAAIATTE3Ah3KmBIsvLfzaE75QyeRicAIgl/X+IY68ftMyTF4GJ6idV25THcFjgG3zPa89P/LkEwEAlfm157X/ZwEAxhsUH/ubCh0FAAAAcJqpCYBybGaH1n8WMjI4QXVeSAcpbd7xqbSLJa1cKYTBCfhS0TxN8Bhgl3mHuvLJpx8GAKjU5BRt5+cBAL6OthOhowAAAADuYGqCrngHEYU7kT22NlMOgxMAuZy+vsRKTGkMTgC8Q/AYYK9xuznvUzWjAMBO37bh186XvgIAWLe+RxHaCQAAgIItbgz7GkcVTE3QD+VM+fa/t1A9UyaDE1RBGdKeo68+9q+AkhmcoDpKkuoIHgOcoQ0FAK7TUQAA1+koAAAA6uJrHG2wIwFQgu9iPM9ZWKephaYC4H1aCNqjowB4guAxAAAAAAAAAAAAAFRJzgIAOEELAQCs+JP7AQAAAAAAAAAAAAAAAAAAgPwEjwEAAAAAAAAAAAAAAAAAAMFjAAAAAAAAAAAAAAAAAABA8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAIASPAQAAAAAAAAAAAAAAAACAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAAjBYwAAAAAAAAAAAAAAAAAAICLSMAy5n6FQKaXcjwAAAAAAAPAIJ0QAwDpTEwAAAAAAQMMMTqzwxmMAAAAAAAAAAAAAAAAAAEDwGAAAAAAAAAAAAAAAAAAAEDwGAAAAAAAAAAAAAAAAAABC8BgAAAAAAAAAAAAAAAAAAIiIv7kfoFbDMOR+BNgrpfT9b6VLjcY1HMqYekxKd04xUxHtBLVTw1RKO0EzfK2jAdoJarTZSwAAXKQ3piK+1lE7NUylnHTQDCcdNEA7QaW0EzTDOkzttMRUyuDEFd54DAAAAAAAAAAAAAAAAAAACB4DAAAAAAAAAAAAAAAAAACCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAU3V2LQAAIABJREFUAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeAwAAAAAAAAAAAAAAAAAAIXgMAAAAAAAAAAAAAAAAAACE4DEAAAAAAAAAAAAAAAAAABCCxwAAAAAAAAAAAAAAAAAAQAgeA/A/9u5gOVocWQNo4vjf/5W5C/pW1LgAU4BQSjonetHTYztqkaVISfkBAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEILHAAAAAAAAAAAAAAAAAABACB4DAAAAAAAAAAAAAAAAAAAheAwAAAAAAAAAAAAAAAAAAITgMQAAAAAAAAAAAAAAAAAAEBH/an8AAAAAoFvTNC3/Ms9z3U8CANSiHwAAAAAAAIblogQA0A/QIsFj6nitmKssowDAEToKgOT2F2oAAAAAGJlrDsa0f2ys8AG+paNgTK/CV+PkZ3CCPmwVsnWYVuwsxsoYYIvgMU87sn3yIAcAYN/xjkI7AQAAkMSvrZz9GgAAwzI4wYAOpi2EiACOMzjBsDQMAI/5s91YfsCCTFpHjiO0FjzM4AQNETzmOavnXPM875x/OfYCAH45st16/xntBEAtntoLAOy7sVuw6QMAoBUGJxiQo2LyK1Gllm2KMjjBsPQVNMfgBO36qnjFj0noxAI8TcqYCgxOkJngMQ95Xwp/rWXv/3N1xZymyfIHAMThp/u//t/Xz2snAB7m8gwAAAAAfjE4wWicEwOUYHCCMekraJHBCRp1unKFNkniyuqrjAHeCR5T3M7N2aflBz43Ws68AICDl2fv3l8R4Am+AAAAz3tgqsZGDwCA/AxOMJqLe0GVTuvUMOUYnGA0YpsAD7Pw0rRbClj2mBIMTtAowWOec+6o68UVGgCM7PTt12pfAUBRFl4AAAAAWGVwghHsnBDv16+jZapQeDTE4AQdO1Gh+mKSs/DSoq2yXV1yV39YYpOKThxHbP2KSgZY/NT+AHTuxAP2dn7eHgwAxnSxB3jvK7QTAKVZaQGAJwldAACQn8EJhrIzp/7nN2D5Gfs8gFUGJwAaYqWlOdO0vpvb2aPZu5HKTgHv1KpTCLphcIJCvPGYgk5fnu3/TQsiAAzllo7i/fG92gkAAIA+2NwBAJCfwQmGsjXmC21RtCRkcAIAKOf0Vm6eV37Xq2J53mcdXi9ClUxDbO4oR/CYvN7PuQAAAMhv2cTZzQEAn+5NWdz1pwAAIDlHbTRE6hgAOGe/4V1NtUFmBifowPGtnFWa6q6njpUxTzI4QVt+an8AulXiqb2//jIA0L0bOwrPcwIozWYNANhS4vLMLg8AgPwMTjAOqWO6oW5JyOAEY5rn//6Bttis0ZwSr4qFihQwmRmcoDmCx6RmBQQASnDCC1COfRwAUI7LMwAABqT7JT+pY9rl3piRGZwgj1fG+P2fP38FMrOPoxWF2gFdBrVYfRmEwQkeI3hMcdP/u/dv3vjXAAAAuGjZpjnJAgDeFTrI1XIAANAcgxN0TOoYAAAWBifowIn6VfLU9apApUhaBidol+AxRawuiy69AIDTNBIAAACNuuu6y8YQAIC2GJxgWIYeAQrRSDAmhQ9QyOcCazdHu1Qv+RmcoEWCxzzKAgcAANAfT+0FAEp7nS1rOQAAaJ3BCXpiTh0AABYGJ2iLwwl6YullHAYneJjgMdlZDQGAxY2DOBoMgBsZlAQASnN5BgDA4HTC5ORsmP5YbsnP4ARATgYnADqjWSYhgxM8T/AYAIBmXDmidbwLUJTDLAAAAACAwTknpi0ukGmUwQnQcpCWwQlasdoRqF+GpUcG2CJ4DABAS1yDAaSyLMsuzwCAVfM8X+8TPLUXAAAgoc8rO5s2gMcYnABIxeAEQGes6NzL4ATtEjymiK2FzAIHAFx38QpNQwJwFzMNAEBpLs8AAGiXwQk65mwYoDqDEwxC10F+Bifog9aAYVnFaYLBCWr5V/sD0K15nn9tpc4tcPZjADCyz45i8e1zInUUAOU4zAIAAACAVQYnGMdWae8Ur6NlgIMMTgDkZ3CChugI4GX162BFB3gRPKYgmygAoKhpmo70G++XZ/oTgLt8O8oAAPAtT+0FAKADulmG9ecs+/IDviLU8lmiqpFGGZwAqMjgBEC7hPBphcEJKvqp/QEAAGDP/jZpmqb9h/K6PAMowQPRAYDSXJ4BAADkdCRRfPwI2WEzwBEGJ+BFCZOHwQlY+CrQoq261WmQjcEJ6vLGY5pkxQQA3m09wdflGUBRllYAoDT9BgAAbNEtk8erGM+Nm0+TuV7S2S9mFUtOBicAqrC0AjRH6pjm6DeoxRuPSc2zoACAOLZf+nyCr8szgEKWBdbSCgCU42QYAABetMekslOPSpU+HHll91ev9Ya7GJxgQBZbMjM4QU8UMuPY2c35IpCQk2Gq88Zj2mOTBgADmuf5yPZpeYKvmzOAchxmAQClvfoNGzoAANiiWyaPeV6Z2d2q0K0DZi89JoNvL0DULc8zOAGQhMEJ2qV4GdOfla9fJiGDE2QgeAwAQBuOX6G9/0rJTwQwLgssAAAAAADxMby7f3i8mlKG591Vh7LHPM/gBINTzqRigYXYaK19Oajrqx2fcgXY8VP7A8Cm1QMymzQAGNk8z8ebAW0DwO2WbZoFFgAox1N7AQDgncEJUrnlBUHfvgwZklO6PM/gBEBdBicAMpM6pg8GJ0jCG49piRUTAIgvn+CrfwC4y5G1FwAAAAAoysUHaR2vTe89Jr/Vela3pGJwgu5ZdcnJ4ARAHzTIAEd44zFJ2ZgBADuO34pN06SvALiRuQQAoBzbNwAAeKdDpiFOjunGPG/Ws/d1k43BCYBaDE7AQn9Bu6ZJAZOX7Rt5CB6T0eoqaZMGACxOXInZgwFc5GnoAMCTdB0AAGBwgmx2btsUJt34s5hVO3kYnAB4nsEJOnBj/eos6IAyJjldB9X9q/0B4BDLJQCweL8Je3UIR67HpmnSUQCcYwoBAHiAlgMAAPa55iCnc4U5z6Z7qWa19i4usdMkk8yjDE4wJsVLXW4x6Ni93azlmrq2KnBrFV/+u7olDy0HqXjjMel8rpKOugCA+N/n9c7z/N4hHOwWbMYArrA1AwAAAIBnGJwASMt6TF0GJwDqsjWDhYaC5szzf/+sUtIAqwSPycXlGQCwavV5ve9+3agd+TsAHLGsnLZmAEBRNmsAAPBicIKGqE36oJJphcEJxqFIycbgBLyzStM0azmZ2ayRjeAxibg8AwBW/Xl59v7//tk/2JUBHGfNBAAAAIAnGZwAKO31nqv9F15BNgYnAGqxZjKC42XuC0EHVptltQ3wSfCYvFyeAQDxzeXZ8R9zHAzwFbszAKCoX3s0vQcAALxoj0li9W5NeQI8xuAEQHV2Z3Rjq5b/bA2m6X9+ZvXv+KIAnGZwgoQEj8nCEgkAfDpxefb6Ye0EwEXLImw5BQAAAIBnGJwAAD4ZnICQZKMegxMM5Ve0eOe/z7PXw9I2Lz0GOOJf7Q8AEReOxgAAdszzvPWM3mmadB0AOzzjHAAAAACeZHCCoTiBBniMwQmA0wxO0Kv92PCfha99AIBBCB5Tn8szAGDVLU3C8otOgQHOsUcDAEqzXwMAgDA4AQBsMDjBgJQq2dijwcv+t8F3BeA0+zVy+qn9ARidyzMA4AHaDICvLDs1iycAAAAAPMDgBC1SqgDN0WYAfMXgBH07UdrvvyIfBwAjEDymJpdnAMCW2/uEzz/i6VAAqyyPAAAAAPAYgxMAwBaDE7DQJvM8yyMjOLi6zvN//9zy1wCAhvyr/QEYl8szAACAzO69SNv6a/aDADAygzsAAAzO4AS8+AbQCocZADAUgxP0bSm91cLcqUotMcC9DE6QluAxdbg8AwCeN8+zvRkAAEBmjosBABiHwQmG5b6O/ljFaYjBCZJTngDPu97N6ocB7uW4mCQEj6ng4uXZ8uuWUQAAgBKu77ZWhxVs4gAAAADgxeAEAABAWgYnYIsnRADAOH5qfwCGZvsEAKwq93hd7QcAAAAAAJCHmwsIb8cCWGNwAgBogs6CFonQAxwheMzTXsdhTq8AgC36BAAAgO6VG50EAIDkDE4wMntBmrZawNZyCtEnwMJXASAPGzr6puugCoMTZCZ4zKOuX55ZUgGAu7ilAwAAAAAAHmZwAn5xZQdQkcEJAOAKrQQAdEzwmOfc+Mhep10AAAAAAAAAQFsMTjA4qXma5nXHAKVpFQAy+1ylNcM8Zpru7BNs7gAOEjzmITdengEAnOYlAAAAAAAAQBUGJ+jJXXduvg084JYJdffM9MTgBADwLaljuqEXBjhO8JgnuDwDAK4ocemlLQEAAAAAAB5jcAKM9lLFq/BKVKAVnScZnAAAarGbI4lypagvBlj1r/YHoH/XL888YA8ABjTPsx4AAAAAAADogMEJWjfPV6d7V3/dXC+l3bV2KmBqMTgBFluA6jTDVPdehNN0qfw01wBfETymrPdjL0dgAMBX3q/Qpmm6/qhdLxMAAAAAAAAeZnCCXh0f9jWnThLnJtSt3NRlcAIAqMhujoROZ4+3NndKGmDLT+0PQM9cmAEAN7rYWrg8AwAAAAAAHmZwAsypk8q3q7LBdLIxOEHHNM4ApU3Td4ut3RxJfFbdt8UcNncAp3jjMaWUuzxz5gUA43h/dm9ceHyvsR6A6m55BDsAAAAANMTgBD2Z55Uh3f23DBnqpbqtuo0DdbizhKthHmZwgm6cqMH9X7Eg0xyDE1T0WlGPvC3Wbo4m2NwBlCZ4DABAahev0N5/17ktwL2+nU5Y/XmLMwAAAABAu17nvu9nvYZ6yW+1dONAKE4NU4XBCYC0DE7QonPNsDqlotWnSi1s7gDKETymCM/GAwButBytvhqM17/sH7n+akiczwIAAAAAAI8xOEF/dsZ849g7DN3X8bz9uo1vXr+pgKnL4ASt0x0DVPRnYvNPmgiqu3FzF0oa4BjBYwAA2vDrCb7xzciOyzMAAAAAAAC46M8x3/3fhSqW2rsYeFPAJGFwAl5UNMAzrLfkYXMH8DDBY4pwRAUAlPDrCb7HfwWAEqyxAMC9dBcAAPREf0uvTmSPfRvI4HRsXgGTjcEJgFSssTThXDOsusnJ5o7u6S7IQ/AYAIDGvG+oVu/S7LgAAADy+zUiaSsHAADQiuOvGLLVI5Vv346lgMnM4ATNUZIAdX3VDFu0Sc7mjp4YnCAzwWMAABpmfwUAANA02zoAAIBGvfZzn5O+tnpkpnTpjxM2AOCgnWY49MO05r1i7e9onW0dOQkeAwAAAAAAAAAAcIbBSBqldAEAGJZmmM4oaYASfmp/AAAAAAAAAAAAAAAAAAAAoD7BYwAAAAAAAAAAAAAAAAAAQPAYAAAAAAAAAAAAAAAAAAAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgIqZ5nmt/hqSmaar9EQAAAAAAAIpwQwQA7DM1AQAAAAAAdMzgxA5vPAYAAAAAAAAAAAAAAAAAAASPAQAAAAAAAAAAAAAAAAAAwWMAAAAAAAAAAAAAAAAAACAi/tX+AK2a57n2R4Cjpml6/bvSpUXvNRzKmHb8Kt1PipmGaCdonRqmUdoJumFbRwe0E7Toz14CAOAivTENsa2jdWqYRrnpoBtuOuiAdoJGaSfohnWY1mmJaZTBiSu88RgAAAAAAAAAAAAAAAAAABA8BgAAAAAAAAAAAAAAAAAABI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELw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AABQmRuPAQAAAAAAAAAAAAAAAAAAwWMAAAAAAAAAAAAAAAAAAEDwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAgBI8BAAAAAAAAAAAAAAAAAIAQPAYAAAAAAAAAAAAAAAAAAELwGAAAAAAAAAAAAAAAAAAACMFjAAAAAAAAAAAAAAAAAAAg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AAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAIBQPAYAAAAAAAAAAAAAAAAAAELxGAAAAAAAAAAAAAAAAAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAIBQPAYAAAAAAAAAAAAAAAAAAELxGAAAAAAAAAAAAAAAAAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAIBQPAYAAAAAAAAAAAAAAAAAAELxGAAAAAAAAAAAAAAAAAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAIBQPAYAAAAAAAAAAAAAAAAAAELxGAAAAAAAAAAAAAAAAAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAIBQPAYAAAAAAAAAAAAAAAAAAELxGAAAAAAAAAAAAAAAAAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAIBQPAYAAAAAAAAAAAAAAAAAAELxGAAAAAAAAAAAAAAAAAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAIBQPAYAAAAAAAAAAAAAAAAAAELxGAAAAAAAAAAAAAAAAAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAIBQPAYAAAAAAAAAAAAAAAAAAELxGAAAAAAAAAAAAAAAAAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAIBQPAYAAAAAAAAAAAAAAAAAAELxGAAAAAAAAAAAAAAAAAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAIBQPAYAAAAAAAAAAAAAAAAAAELxGAAAAAAAAAAAAAAAAAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAIBQPAYAAAAAAAAAAAAAAAAAAELxGAAAAAAAAAAAAAAAAAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAIBQPAYAAAAAAAAAAAAAAAAAAELxGAAAAAAAAAAAAAAAAAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAIBQPAYAAAAAAAAAAAAAAAAAAELxGAAAAAAAAAAAAAAAAAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAIBQPAYAAAAAAAAAAAAAAAAAAELxGAAAAAAAAAAAAAAAAAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAIBQPAYAAAAAAAAAAAAAAAAAAELxGAAAAAAAAAAAAAAAAAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAIBQPAYAAAAAAAAAAAAAAAAAAELxGAAAAAAAAAAAAAAAAAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAIBQPAYAAAAAAAAAAAAAAAAAAELxGAAAAAAAAAAAAAAAAAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAIBQPAYAAAAAAAAAAAAAAAAAAELxGAAAAAAAAAAAAAAAAAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAIBQPAYAAAAAAAAAAAAAAAAAAELxGAAAAAAAAAAAAAAAAAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAIBQPAYAAAAAAAAAAAAAAAAAAELxGAAAAAAAAAAAAAAAAAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAIBQPAYAAAAAAAAAAAAAAAAAAELxGAAAAAAAAAAAAAAAAAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAIBQPAYAAAAAAAAAAAAAAAAAAELxGAAAAAAAAAAAAAAAAAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAIBQPAYAAAAAAAAAAAAAAAAAAELxGAAAAAAAAAAAAAAAAAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAIBQPAYAAAAAAAAAAAAAAAAAAELxGAAAAAAAAAAAAAAAAAAACMVjAAAAAAAAAAAAAAAAAAAgFI8BAAAAAAAAAAAAAAAAAICI+A/UTy8J6/+4MgAAAABJRU5ErkJggg=="
}
},
"cell_type": "markdown",
"id": "aac61629",
"metadata": {},
"source": [
"Here is an illustration: \n",
""
]
},
{
"cell_type": "markdown",
"id": "ddb8e078",
"metadata": {},
"source": [
"To build a CSP (Constraint Satisfaction Problem) model, we need first to import the library PyCSP$^3$:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "e9ad9c6e",
"metadata": {},
"outputs": [],
"source": [
"from pycsp3 import *"
]
},
{
"cell_type": "markdown",
"id": "9db7f45e",
"metadata": {},
"source": [
"In a first step, we shall build a Sudoku grid from no data/clues (i.e., from an empty grid)."
]
},
{
"cell_type": "markdown",
"id": "c4b9334c",
"metadata": {},
"source": [
"We start our CSP model with a two-dimensional array $x$ of $9 \\times 9$ variables, each variable having $\\{1,2,\\dots,9\\}$ as domain. "
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "a6a7d3de",
"metadata": {},
"outputs": [],
"source": [
"# x[i][j] is the value at row i and col j\n",
"x = VarArray(size=[9, 9], dom=range(1, 10))"
]
},
{
"cell_type": "markdown",
"id": "7d27a4c7",
"metadata": {},
"source": [
"We can display the structure of the array, as well as the domain of the first variable (remember that all variables have the same domain)."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "50dbf0a3",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[\n",
" [x[0][0], x[0][1], x[0][2], x[0][3], x[0][4], x[0][5], x[0][6], x[0][7], x[0][8]]\n",
" [x[1][0], x[1][1], x[1][2], x[1][3], x[1][4], x[1][5], x[1][6], x[1][7], x[1][8]]\n",
" [x[2][0], x[2][1], x[2][2], x[2][3], x[2][4], x[2][5], x[2][6], x[2][7], x[2][8]]\n",
" [x[3][0], x[3][1], x[3][2], x[3][3], x[3][4], x[3][5], x[3][6], x[3][7], x[3][8]]\n",
" [x[4][0], x[4][1], x[4][2], x[4][3], x[4][4], x[4][5], x[4][6], x[4][7], x[4][8]]\n",
" [x[5][0], x[5][1], x[5][2], x[5][3], x[5][4], x[5][5], x[5][6], x[5][7], x[5][8]]\n",
" [x[6][0], x[6][1], x[6][2], x[6][3], x[6][4], x[6][5], x[6][6], x[6][7], x[6][8]]\n",
" [x[7][0], x[7][1], x[7][2], x[7][3], x[7][4], x[7][5], x[7][6], x[7][7], x[7][8]]\n",
" [x[8][0], x[8][1], x[8][2], x[8][3], x[8][4], x[8][5], x[8][6], x[8][7], x[8][8]]\n",
"]\n",
"Domain of any variable: 1..9\n"
]
}
],
"source": [
"print(x)\n",
"print(\"Domain of any variable: \", x[0][0].dom)"
]
},
{
"cell_type": "markdown",
"id": "9c67a728",
"metadata": {},
"source": [
"Interestingly, with a single constraint *AllDifferentMatrix*, we can impose that all digits are different on each row and column of $x$."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "3369bd46",
"metadata": {},
"outputs": [],
"source": [
"satisfy(\n",
" # imposing distinct values on each row and each column\n",
" AllDifferent(x, matrix=True)\n",
");"
]
},
{
"cell_type": "markdown",
"id": "ded2198b",
"metadata": {},
"source": [
"By calling the function *solve()*, we can check that the problem is satisfiable (SAT). We can also display the found solution. Here, we call the function *values()* that collects the values assigned to a specified list of variables."
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "c268f917",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1, 2, 3, 4, 5, 6, 7, 8, 9]\n",
"[2, 1, 4, 3, 6, 5, 8, 9, 7]\n",
"[3, 4, 1, 2, 7, 8, 9, 5, 6]\n",
"[4, 3, 2, 1, 8, 9, 6, 7, 5]\n",
"[5, 6, 7, 8, 9, 1, 2, 3, 4]\n",
"[6, 5, 8, 9, 1, 7, 3, 4, 2]\n",
"[7, 8, 9, 5, 2, 3, 4, 6, 1]\n",
"[8, 9, 6, 7, 4, 2, 5, 1, 3]\n",
"[9, 7, 5, 6, 3, 4, 1, 2, 8]\n"
]
}
],
"source": [
"if solve() is SAT:\n",
" for i in range(9):\n",
" print(values(x[i]))"
]
},
{
"cell_type": "markdown",
"id": "eebe3754",
"metadata": {},
"source": [
"Note that we get a structured string representation of multi-dimensional lists when printing them directly."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "b760c35e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[\n",
" [1, 2, 3, 4, 5, 6, 7, 8, 9]\n",
" [2, 1, 4, 3, 6, 5, 8, 9, 7]\n",
" [3, 4, 1, 2, 7, 8, 9, 5, 6]\n",
" [4, 3, 2, 1, 8, 9, 6, 7, 5]\n",
" [5, 6, 7, 8, 9, 1, 2, 3, 4]\n",
" [6, 5, 8, 9, 1, 7, 3, 4, 2]\n",
" [7, 8, 9, 5, 2, 3, 4, 6, 1]\n",
" [8, 9, 6, 7, 4, 2, 5, 1, 3]\n",
" [9, 7, 5, 6, 3, 4, 1, 2, 8]\n",
"]\n"
]
}
],
"source": [
"if solve() is SAT:\n",
" print(values(x))"
]
},
{
"cell_type": "markdown",
"id": "a74a9947",
"metadata": {},
"source": [
"On can observe that some digits occur several times in the same block. This is why we add a list of constraints *AllDifferent*. "
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "a3376f3f",
"metadata": {},
"outputs": [],
"source": [
"satisfy(\n",
" # imposing distinct values on each block\n",
" AllDifferent(x[i:i + 3, j:j + 3]) for i in [0, 3, 6] for j in [0, 3, 6]\n",
");"
]
},
{
"cell_type": "markdown",
"id": "aa00992c",
"metadata": {},
"source": [
"Note how the notation $x[i:i + 3, j:j + 3]$ extracts a list of variables corresponding to a block of size $3 \\times 3$ in $x$. This is similar to notations used in package NumPy. We can check this:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "b1e87fbb",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[\n",
" [x[0][0], x[0][1], x[0][2]]\n",
" [x[1][0], x[1][1], x[1][2]]\n",
" [x[2][0], x[2][1], x[2][2]]\n",
"]\n"
]
}
],
"source": [
"print(x[0:3,0:3])"
]
},
{
"cell_type": "markdown",
"id": "7f656a4d",
"metadata": {},
"source": [
"We can control the scope (i.e., involved variables) of all posted constraints by displaying their internal representation. "
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "6a58887d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"allDifferent(matrix:x[][])\n",
"allDifferent(list:[x[0][0], x[0][1], x[0][2], x[1][0], x[1][1], x[1][2], x[2][0], x[2][1], x[2][2]])\n",
"allDifferent(list:[x[0][3], x[0][4], x[0][5], x[1][3], x[1][4], x[1][5], x[2][3], x[2][4], x[2][5]])\n",
"allDifferent(list:[x[0][6], x[0][7], x[0][8], x[1][6], x[1][7], x[1][8], x[2][6], x[2][7], x[2][8]])\n",
"allDifferent(list:[x[3][0], x[3][1], x[3][2], x[4][0], x[4][1], x[4][2], x[5][0], x[5][1], x[5][2]])\n",
"allDifferent(list:[x[3][3], x[3][4], x[3][5], x[4][3], x[4][4], x[4][5], x[5][3], x[5][4], x[5][5]])\n",
"allDifferent(list:[x[3][6], x[3][7], x[3][8], x[4][6], x[4][7], x[4][8], x[5][6], x[5][7], x[5][8]])\n",
"allDifferent(list:[x[6][0], x[6][1], x[6][2], x[7][0], x[7][1], x[7][2], x[8][0], x[8][1], x[8][2]])\n",
"allDifferent(list:[x[6][3], x[6][4], x[6][5], x[7][3], x[7][4], x[7][5], x[8][3], x[8][4], x[8][5]])\n",
"allDifferent(list:[x[6][6], x[6][7], x[6][8], x[7][6], x[7][7], x[7][8], x[8][6], x[8][7], x[8][8]])\n"
]
}
],
"source": [
"print(posted())"
]
},
{
"cell_type": "markdown",
"id": "a616e12c",
"metadata": {},
"source": [
"Now, we can generate a valid Sudoku grid."
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "078be930",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[\n",
" [1, 2, 3, 4, 5, 6, 7, 8, 9]\n",
" [4, 5, 6, 7, 8, 9, 1, 2, 3]\n",
" [7, 8, 9, 1, 2, 3, 4, 5, 6]\n",
" [2, 1, 4, 3, 6, 5, 8, 9, 7]\n",
" [3, 6, 5, 8, 9, 7, 2, 1, 4]\n",
" [8, 9, 7, 2, 1, 4, 3, 6, 5]\n",
" [5, 3, 1, 6, 4, 2, 9, 7, 8]\n",
" [6, 4, 2, 9, 7, 8, 5, 3, 1]\n",
" [9, 7, 8, 5, 3, 1, 6, 4, 2]\n",
"]\n"
]
}
],
"source": [
"if solve() is SAT:\n",
" print(values(x))"
]
},
{
"cell_type": "markdown",
"id": "de18c3ae",
"metadata": {},
"source": [
"In a second step, we decide to take into account the clues as those in the illustration above. When 0 is present in a cell, it means that no clue is given for this cell."
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "f1f06cda",
"metadata": {},
"outputs": [],
"source": [
" clues = [\n",
" [0, 2, 0, 5, 0, 1, 0, 9, 0],\n",
" [8, 0, 0, 2, 0, 3, 0, 0, 6],\n",
" [0, 3, 0, 0, 6, 0, 0, 7, 0],\n",
" [0, 0, 1, 0, 0, 0, 6, 0, 0],\n",
" [5, 4, 0, 0, 0, 0, 0, 1, 9],\n",
" [0, 0, 2, 0, 0, 0, 7, 0, 0],\n",
" [0, 9, 0, 0, 3, 0, 0, 8, 0],\n",
" [2, 0, 0, 8, 0, 4, 0, 0, 7],\n",
" [0, 1, 0, 9, 0, 7, 0, 6, 0]\n",
" ]"
]
},
{
"cell_type": "markdown",
"id": "27faca96",
"metadata": {},
"source": [
"We can post an unary constraint *Intension* for any given clue. "
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "76874335",
"metadata": {},
"outputs": [],
"source": [
"satisfy (\n",
" # imposing clues\n",
" x[i][j] == clues[i][j] for i in range(9) for j in range(9) if clues[i][j] > 0\n",
");"
]
},
{
"cell_type": "markdown",
"id": "b63a399f",
"metadata": {},
"source": [
"We can control that such instantiations are well defined by displaying, for example, the internal representation of the last posted constraint."
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "c6027d04",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"intension(function:eq(x[8][7],6))\n"
]
}
],
"source": [
"print(posted(-1,-1))"
]
},
{
"cell_type": "markdown",
"id": "c53cfc8b",
"metadata": {},
"source": [
"We can now find a solution for that grid."
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "5a0cbf07",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[\n",
" [4, 2, 6, 5, 7, 1, 3, 9, 8]\n",
" [8, 5, 7, 2, 9, 3, 1, 4, 6]\n",
" [1, 3, 9, 4, 6, 8, 2, 7, 5]\n",
" [9, 7, 1, 3, 8, 5, 6, 2, 4]\n",
" [5, 4, 3, 7, 2, 6, 8, 1, 9]\n",
" [6, 8, 2, 1, 4, 9, 7, 5, 3]\n",
" [7, 9, 4, 6, 3, 2, 5, 8, 1]\n",
" [2, 6, 5, 8, 1, 4, 9, 3, 7]\n",
" [3, 1, 8, 9, 5, 7, 4, 6, 2]\n",
"]\n"
]
}
],
"source": [
"if solve() is SAT:\n",
" print(values(x))"
]
},
{
"cell_type": "markdown",
"id": "6306d9ea",
"metadata": {},
"source": [
"Most of the time, there is only one solution for a Sudoku puzzle. We can check this here:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "96debbdd",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of solutions: 1\n"
]
}
],
"source": [
"if solve(sols=ALL) is SAT:\n",
" print(\"Number of solutions: \", n_solutions())"
]
},
{
"cell_type": "markdown",
"id": "05b7ff70",
"metadata": {},
"source": [
"Finally, we give below the model in one piece. Here the data is expected to be given by the user (in a command line). "
]
},
{
"cell_type": "raw",
"id": "4700d783",
"metadata": {
"raw_mimetype": "text/x-python"
},
"source": [
"from pycsp3 import *\n",
"\n",
"clues = data # if not 0, clues[i][j] is a value imposed at row i and col j\n",
"\n",
"# x[i][j] is the value at row i and col j\n",
"x = VarArray(size=[9, 9], dom=range(1, 10))\n",
"\n",
"satisfy(\n",
" # imposing distinct values on each row and each column\n",
" AllDifferent(x, matrix=True),\n",
"\n",
" # imposing distinct values on each block tag(blocks)\n",
" [AllDifferent(x[i:i + 3, j:j + 3]) for i in [0, 3, 6] for j in [0, 3, 6]],\n",
"\n",
" # imposing clues tag(clues)\n",
" [x[i][j] == clues[i][j] for i in range(9) for j in range(9)\n",
" if clues and clues[i][j] > 0]\n",
")"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}