import datetime
import json
import zlib

import factory

from django.contrib.gis import geos
from django.contrib.gis.geos.geometry import GEOSGeometry
from django.utils import timezone

from mds.provider_mapping import (
    PROVIDER_REASON_TO_AGENCY_EVENT,
    PROVIDER_EVENT_TYPE_REASON_TO_EVENT_TYPE,
)

from . import models
from . import enums
from . import utils


district10 = GEOSGeometry(
    zlib.decompress(
        b"x\x9cm\x9d\xc9\xae\x85\xb9u\x9d_\xa5Pc\xc5`\xdf\xf8)<7<\x08\x12#\x08`X"
        b"\x86\xed\x89\x11\xe4\xdd\xbd\xbe\xcdC\xf2p\x1fI\x10\x84\xbaw\x15/"
        b"\x7fr\xf7\x1d\xff\xdf\x1f\x7f\xfe\xe7\x7f\xfd\xdb?\xff\xf9\xf7\x7f\xfc\xf9"
        b"\x0f\x7f\xfd\x97\xff\xfa?\x7f\xfd\xd7?\xff\xf2\xc7\x9f\xff\xeb\xaf\x7f\xfd"
        b"\xf7\xff\xfd\x7f\xff\xf5\x7f\xfe\xe7?\xff\x87~\xf3\x8f\xf6\xdf\xff\x11\xe3"
        b"\xf8\xbb4J\x0e-\x87\xdaB,-\xfe\xe5\x8f\\\xfeN\xff\xdcc\x99\xa3\xf7\xd8"
        b"Z\x8d\x7f\xfc\xd3_\xbe\xd0)\x94\x10B\x8ai\xa6r\xd0\x81\xff\xf4\x1ck\x9a/"
        b":\x86<\xf5\x9f\x12\xb5\xd8F7\x83\x97Rk\x19\x0f:\xcf\x008L\xaduvRG\xe2\x87"
        b"\xa3\xd6\\_t\xe8\xfc\xa2\xc6\x94f\xdb\xe8\xa4}\xeb\xcf\xe5\x12Ry\xd0\x02\xb1"
        b"\x93\x91S\xdf\xe04Z\xd5F\xf4\x93\xe0>2\xb3\x17\xfd'\x97\xda\xc6\x07\x1ds"
        b"\xd1\xbe\x82v\xd1\xfb\xf0Gb\x1f\xd4\xb5\xd7\xb9\xd0U{\xd0\xfff/e\xb6\xe9"
        b"\xd1\x83\xc3\xd2&g\xfe\xac\xad\x9f\xd8G\xc6\xf8b\xfbH|\xe3\xe8i\xc6}|"
        b"\xa1\x0f.@?\xd2\x1a\x0e\x1dY9\xb5^f\xda\xfb\xe8\x83\x9f\xc5\xdeZ~w"
        b'=\xc3\xe0\xebu\xfdm\x94\x8b\x8e\xa0\xb5NO\xdf\xe8\x19\x13gUD"\xb3\xd5'
        b"\x83\xee\xfcck\xb3\xb4\xe2\xd0\xb5jw\xbd\xb6\x94>\xa7]\xb5\x8f\xaa\x1fEV"
        b'o\x1e\x9d{\x8b\xb1\xe4\x18\xe3F\xd7\xa1\xa5S\xedq\xe6\xee\xd0:\xd2"\xc2\x84'
        b"67:\xb6\xa0\x7f*\xda\xe0\xfb\x95:\xd1\x16K\x8a\xa3\xf6\x11\xc6\x17\x9a\xc3J"
        b"\xba\x1c\x07\xd6\x0e\xc7L\xa1\x86}\x8f]\xe7\x1d{\x12\xd1\xeb\xb7\x1e"
        b'\xdcD\x83q\n\xb2Wn\x03:kF\x96\xfe\xfc"\x07\x96g-m\xdfM\xd3\xca%\xe8\xef'
        b"\x89\x7f\xb2C\x87\x91Z\xa8\xa9\xb4\xbe\xc1\xa2E}_\x88\xb9'\x7f|Md\xda"
        b"\xbbh\xbc\x8c/t\xca\xfaMjmx\xb4n@\xbb\x17z\x7f\xa466\xa1\x04\xad\x93\xfdF"
        b" +Q\x83\x0eqo\xbb\xea$G\xd1Og\x99\xfe\xdaE%\xa5\x8d\x94u\xa3\x1b]{\xd6ef}z"
        b"\xf1\x17\x99jlU\x94\xa8\xb56Z\xd4XF\x11\xcf\xd7X=Z\x9c\x1bG\xacw\xdb\x80g"
        b"\xc8b\x886\x7f\xc0\xb9\x89\x1bs/\x9bF$\x9a\xa6\x88[W\xa4E~\xd0Pl\xe3\xbc\x0e"
        b"ZD\xa2?\x95b\xef?k\xc76\x9a\xb8\xe4\\{\rM\xff\xd3\xed\xebC\xde]\x07\x11\xbc"
        b"><\x8a\x87\xd3\xde\xb6\xb6\x1c\xe1\xff\xd9\xc5\x96\x0e\xdd\x9a\x04W\x17"
        b"\xe9\xa7\xcd\x089\x8f\xde8\xa8\\\x9a\x07K\x84\x06\xddK\xdf\x9bN"
        b"\xb5\x88\xf5\xcb\xe8S\xdf\xfa\x82\x87\xe4\xaf\xce\xa9\xeb:\xf6>tY\x92\x96Y\\"
        b'\x9c\x9b\xa3\xa8.\xce-a\x0eD\xf4A\xeb"c\xea=$\xc7\x90I\xe0\x99\x9b'
        b"\x0e\\\x12\xf5\xa2\xc53-j#\xe3e\x84\xdc$\xf9\xc5\x81%\x8b4\x0eZw"
        b"\x8e\xb2\x90\x18|\xcf/\xeb'c\"\x94\xc49\x17\xddK\x1ei\x88\xc2_\xb4d"
        b'H\x95\xdc\xedu\xf4\xda\x0fZ\xdc\xa5c\x15+9\xd1\x80\\\xcd"\xa1<Z\xb9'
        b"\xfb\x8e\x12\xcc\xba|\t\xee\xec\xd0\x1d\x81^Xh\x8b4I\x11\x14V\x14\x05\x17"
        b"\x0f\x8e\xa6\x13\xa4\x85>\x17\xa9[\x97\x96\xd5\xbdK\xf0\xbcR^h\x89P\xc9\x9d"
        b"\xa8k\xfa\\N\x91\xc8An\x07\x9d\xc0\xa3\xc8\xb4\x84\xa8O\x0c\xa2{\xce\xe3\xc3"
        b"db9Q*Z\xb3\xe60^\xb4d\x1f7QF.}\xa3\x9b\xc4!\xb2N\n\xa0:t\x91$@\xcc"
        b'\x8c\xcd7\xa5\xd5,N\x17V\xba\xd3\x81%\xdd\xa34\x8b>`csl\x12\xb4"\xcb\xd6\xba'
        b"\x03Wq\xea\xc8\xb9\xcf\xfa9>\xc9\xb3\x9c\x10jU\x84\xe3\x97\xee\xe8_\x9d\x82"
        b"\xee\xf8\x83\x96\x8c\x0b\xa6QS\xce\xfe\x1b{1\xcd\x1c\xa5\xcc6\xba$\xf6%\x86"
        b"\x1c\xf3\x07\x0cG\xf5v\xa4NaI]x-Q\xa4\xec\xd0:f)J\x1dJM\x1b\x1dd"
        b'\xc1\xe8\xbb\x91\xa4\xee#e7H2$hm\x1fI\x1e\xdc\x93\xe82\xd7\xe2v"\xfd_%'
        b'\x1dz\xe8\xdb\xee\x125\xa6\xc8y\xb7\xe2V\x86o\xa1\x89<\xb7A"mY\xa5\x99\xc4dC'
        b"B\xeeE\xeb\xf3D\xacZ_k\x7f\xd0K\x85Gx&\xbb\xb5%m\xa4;\x86~1\xf6\xa5"
        b"\xeb\xf0\xb4j\xb2\xef\x8f/Z\xeaG\xeb\x88\x08\xb7@\x13G\x88\x95e\x04d\xf8"
        b"\xcf\x81\x0b\xf7\x98u\x0b\xf1#H\n\x86%\xd6\x92\x94DN~\xe9a$_\xb7"
        b"\x1c\x91:\x0f\x18\x8b\x05\xfa\xfe\xd95\x96\x9e\xeem\x1b\x96E\xd6\x03"
        b"`\xd1\xe0\x18n\xd3\xad\x185\xe8~\xb7a)\xf1\x06\xc7\xa0\x0b\x87"
        b"\xa7\xd5\x86\x05\xaa\x8b\xd6V\xf7\xdaaD\xb3\x08\xa1L\xb7v1;t\xe8\xd6\xce"
        b'\xa5\x8b\xeb\xcc\x8e*\xb2\t=\x89\x98\xf5\xdb\x03"p\xa3u_\x01\xcd$U\xe6'
        b"I\xa4\x0c\xa3yY\xc6\x1f\xca\xd6.\x1a\xbb\x13\x01\xe7\xdc<\xf9\x990Ah\xf6"
        b"\x8d\x96\t\x89\x1c\xd1o\x87\xdfILf\x19\x8a\x8d\xcbFK|\x1a'\x8d\xec\x18"
        b'2\x9b\xd1Z\xb9\xbe\xba\xc1"=6\xc2\xc7{\x864\xd3\xd2n\xf9s$Y\x04\xc0\xa7\xb4.'
        b"\xadU\xfe\x16\xb3#q?,\x96\xa5\xa6\x1a{\x9bZ(\xfe\x80\xed7\xa2\xfa\xbd"
        b"\xb4~\xb2v]\xc3\xdf\x90#\xb6\x0b\x89\xc0\x83\xc6\xc8\xc3<\x1f\xb5"
        b'\xfc\xa09\x91.\xf1\xb8\x0f\xbb\x073\xe3\xb3\xec%\x7f"\x0b\x1cM\x85|\xd0R'
        b"\x83\\M\xce\xfa\x94\x97\x11\xa4\xc4\xcd\xd5\x90\xa9\xb8\xc5\xb0\xd0F\n"
        b"I\x04\x18\xdf\x8f\x94\x15i\xe4\x9ae\xd6\x9d#\t\xebg2\x93\xeb{\xda\xd2\x8f"
        b"p\x02\x9a+\xde}/W`\x88\x9b\xe2\x0f\xda\xc8^\x14\xb8\xd7\x96\x1dk\xe4\xaa"
        b"\x8f\xed\x1el\xca,k\xf5M#2\xab\xf8\x14\x84\xcfl\x1emZOJ2\x9c#\xc9F~"
        b"\tQ\xe4\xd1\xcd\x08B\xa2j\x8b\xd6\x8c\xc0\xe7\xb8\xe5j9\x916&\xf6\xdb\xc4"
        b"\xc0\xdc`\x9dG\xb1?'\x9a\xf2'b\xae\x9e\xf6\xd9\xcei\x87!k\x04%\x1e"
        b"_\xf7\xcd\xd0,\x9d\xcd\x0e^h\xfd3G*\xbd\xac\x85<:A\x9a\x05\xb2\xdb"
        b"`\xb1\x96\x11\x89N\xc9\x7f\xa3I$\x81\xb7\x1d\x85\x91^M\xb8\xa4:\xfc\xcd\x98"
        b"\xacK:\xec\xb34\x0e\xc3:R\x99i\x1e\xcdQim\xc9\x81\x8d6\xb1\xafo\x94\x1ew\xc7"
        b"'\x13\x05\x16)b\xbf\x0f\xff\xcak\x18\xd1|s\x99\xa8nmY\x8b\xecq\"P>h\x89xX)c"
        b"\xa6<kK\x80\x06\x14\xf3\xc0\xd3j\x07]\x96\x08\xd5\xe6\x1e\xbeA\xe6\x8ce\x18"
        b"\x1d\x91\xb6\xd1b\xa8\xfe2\xb0\xbc9#\x9fbF\xf4E\xc3\t\x18\x9d\xaf\xb1#"
        b"\x92\xcc\xd1\xcc:\xfd\x7f\xbah\xaeR\x7f\xb4\xbeK\xa3\xb2X[4\xbb\xa5%\xe0"
        b'\xbc\x02\x10\xf3%\x12Y9\xc5\x84\x9dn\xa7\x7f-ml\x93\x88\xa08t\xe6"Z\x84\x02?'
        b"h\xb1\x82I)Y\x8bn'B\xcf%+\xfb\x96i\xb8]\x1cw \xb8\xd1\xfdN\x8c\xec\x9b"
        b"\\\xa1\xbdoy\xd4k'\xe2M\xbfvMK[lK \x05\xd3{\xe8\x9a<=v\xfdF\xc6\xca\xe7\xb0"
        b"#V\x03G*\xa5<\xfc>\xa6\x11\x84\xd8x|\xae=\x0ec\x04\xf1\xaf\x8c|"
        b"\xb7\x8f\x15\xc9\x08X\x91\x1b\xdc\xd7FFy\x8d\x1d\x19\xacvz\x9d\xb8T\xda\xe0"
        b"\xa5$\xf8e(\x1e],\xfa\xa2\xad\xee\xa5uDF\x08\xd2\xec!yt0\xc6n\x92\xbf\x1f"
        b"\xb4D\xbc\xe9_\xe2\x04\x1e\x9d\xaa\xb1\xa4\x8c\xba\xfd\x8d\xf2\xcc\xe3\xa2"
        b"\x1b\x91\x9bG'\x8b'\xe1F,\xb4(\xc9,\x81*\xa3\xc9\xd1\x88\x96\x19&c"
        b"\xe4\x03\x7f\xcc\x1d\x91\xff\xa22\xfd\xbd\xe9\xd7\x8e\xcd\xeeq\x84-\x89"
        b"\xe1\xe6\xb8\x8e\xbb\xfc\xec\xc4t{\xce\x92\xdf\x9fkG\xca\x8f\x15]"
        b"\xcb\xe1\x11<\xd2\xb2\r\x96\xc4z\xdb7\t\xda\x14\x96\xfe\xe2\x13\x9b"
        b"\x908\xcf&\xc0t\x0f\xf2\x94.\x9a}7|\xb5\xe7.\x938\xb8\x98p \x18t\xd0\xe63"
        b"\xc8\xf0\xa8O$(\xe3\xd9q\xcb\r\xe9p\xd7\xb6\xaf\xecb\x9b\xd7N\x13\x95\xb4"
        b"\x155\x13\x99\xd6\x83n\xddhG\xee\xees\x97\tG\xc6\x88{H\xee]\xb4\x99"
        b"\x1eH\xde\xf7+\xab\\\nv2\xe4\x9c\xdc\x9d\xd4e1J\xd2='\xa8\xf33"
        b"\xf1\xaa\x1f\xc7M\xde\xa0Mt\x8f\xecx!\x8dh\xca9b\x16\x8c\x8b6\x83I"
        b"\xbf\xaa\x0fWJs\x9at\x90Di_'hw\x90\x88;<\xdc\x00\xcb,\xe9 J\xba7"
        b"o\xa6\xeb\x94\xb3\x9f^\xf0XV\x9a\x94|\xb9\x07\x98\x8d\xd0R{\xcfOdbqN\xf3\x0c"
        b"\xee>\xb2\x9d\x1f\xf1\x9a\xe7n2[\xcbDXu\xfbgi\x84\x90\xcc\x00i\xfe"
        b'\xf7\x1bu\xf1\xd1\xbcFt_\xdah";x\x1b\xa9>\xe1\t\xa1\x0b\xc6\x0b\x9e'
        b"\xd3\t\x93H\rJ\xb2\xb4Y\x07\x11\x97\x17-\xbd_;a\x98\xba\xcd:\x89Z\x9c!N\xb1"
        b"\xbe\xbed6G\x08\xf3I\x12x\xdf\r1\x02Q\xac\xa0\xce\xe1\xe3\xb8'\xe1V"
        b")\xc7t\xd0\xb5\xc6\xd2\xf1F\x9b\xdbwF\xe5\x8bVt\x0f\xe5\xecDR\x8e\xef"
        b'\x98\xc8\xaf\x17\x8d\xfb!\x81"\xa9\xb6\xeds\x82\x08\xa1\xe2\xf1x\xdb?g\x82a'
        b"\r\xdbB\x16\xce\x96\x0f\x04`$\x08dU\xc5\xf7+\xe5\xb2H-\x14I\x19\t"
        b"\xea\x8d\x969W\x8bHA^X~\xd1\x82s\xc1\x8d@\xe0\x07\xdd8(\x89Y\xc4C}\xd1"
        b"\xba\x08y\xd8\xa8\xb3\xb4o^\x94[1\xa19G\x87\xee,.S\\\xec\xb6\xa9\n\xfb[\xc4"
        b"*\xbfR\x9a\xedE\xeb\x06d\xf8H*\xd7\x1ds\x08D2\xb0!!\xcb\x97\x17\nqibm3o\x07"
        b";tY\x142\xa9\xe4\xc0\xf6\x17\\\x11\xd4e\xb0\xc8!\x93\xde\x90C\xfa Y"
        b'\x9a\xc3\xa1+\xa6\xbc\xfc\xc9x\x08\xb6\xcbc\x1e\xcd"\x9a\xc5\xaf=\xaa>FD'
        b"R\x0e\x9fI}`1q$\xc9\xa31\xa0%\\\x890o413bdR\xba?h\x11H\x17\x9b\x85"
        b"\xa3\xd0\xf4#\x1dT\x8dm\xba\xc8@\xe6\xd61rt7GY\x06T\x90HYL\xe1\xc0\xc4"
        b"\xfb\xe4SH\xe3\xf4\xa3\xfd&\xde{\x91[\xa6\xfb\x7f\xd1\xfa\xf7\xc3$\xa2;w>A'Z"
        b"#\x11$\x91\xec|\xa5\x89\xceB`9O\x92\x1d{#\x82\xcb\x02\x12\x95\x89\x01"
        b'_\n\xec\xad\r\xf8F\xb2i\x87?du5"a\xb9\xeb\x92_i2IC\x99H\xd1\x95\x1c\xad-\x03'
        b"Nf\xe1\xd0U\xbc\xfb\x96eSE\xb4\x83\xc0\xf6\xf9\xca\xaeO\xd6\xae\xc9>\xb9"
        b"\xb5e\xe4\xc6\x96\xf8\xdap\x8e[\xda\x1d\xfe\xcb\xba\x1f\x87\xc6\xab\x88"
        b"A\xba?\xe4\x83\xce\xd8\xc9\xe8\xac\xf0z\x0bP\xbb\xec\x16\x1d\x9fN"
        b"\xe0\xa0u\x03\x95\xe0\x97\xee\xbf\xbeh\xc4\x8c\xe4I$\xfa\x7f\xd0:\x7f\xc9+1"
        b"\xe7k\xdb\x15\x89\xfa!\xab\xaa\x90\xd3:k\x8b\xa2\x024<^\x16\x96x\x95\xa1"
        b"\x86u\x96\xfbV\x95\xd1\xa2\x02\xc4\x8f\xcak\x99\xc8\xf4h\x165\x90\x08\xdb,9"
        b"a\x7f\xc2ZO~@P(A*\xeb\xc6l\x88x\xb7^\x91\x97\xbd\xbd;\x8e\xe8\x15\xd9v"
        b'B\x1f\x16\x13OH\xd4\x0e\x0c\x08\xb7e\x99\x0e\xfa\x1c"?\xda\xe6F\xcb\xea\xd4'
        b"\xe9td\xec\xbb\x91T\xe4\xc4\x11\xfc\x16\x0fnf'\xc8)\xeeB\xf5\xbf\xd4\x87"
        b"\xa7\xa65\x02i\xa1#-\xe5c\xe8@t;\x04\x13\x1e\xb4\xec\x12\x0c\xb8$\x19"
        b"\xd8\xcf\xbe-$'\xd2\x96\x84}\xf7\xad;\x91\x1f\x86\xa8\x115l\xb4\x84~\x86"
        b"\xf4D\xe3\xf1E\x0f<u\x9dn\xbf\x82\x84\xe0DE\xff\x89\xff\x1f\xed$Zj"
        b"\x18\xf9\rg\xee\xecD\xdf-\xffI\xe44\xd3K}\x85\x18\xbc\xfc/\x9db9"
        b"\xd6\xeb\xd0\xf9\x8b\x05\x12\xea\xf3E[\xf4=a\x8d^Z\r\x9c\xab\xce\x9f\x84\xe6"
        b'\x83\xb6$\x8f\xcc\xe5\x8a=p\xa8O\xd2I\n\x8at\xc8#\x1b\nQ\x87"\xb5'
        b"'\xc5\xba\xcd\x7fIB\\\xc7\x84\x0e\x7f\xaf\x12w|\x12\xf2\x8b\xf3H\x1d\t\t"
        b"ID\xfc\xd8\xfe\x9e\xb6\xcc\x1c\xc9\x7f\xf9M\xb8\x83\x1bM\xe0I\xb2.x_\xa1"
        b'\x88\xd7\x89\xe5Ja\xe8S\x0fz\xca\xb4\xd4\x9e\xc5\xf3n#\x1d\x01"\xfa\xe9q'
        b"k\x9b\x88\xdb\x92,\xd4\xe7\xfc2\x92\xeb\xa23K\xe9\xed\xf0\x91~\xa1\xbfUr"
        b"\x94\x16y\x9d}\xe8\xaeXjQ\xd6\xf4\xf9\xca\x01'\xe9\xd2e\x89\xd7\x17\x9d\x88"
        b'\x89\xe8SE\x9aG\xb6\x0eb\xe4\t"\x89\xe5E\xa3\xa8\xc5k\xa4j\xc7E\xcb'
        b"\x8c\xb6\x80\xce+\xe5+\xf9\xe2B\xa8)\x8d\xbb\xed&k/\x11\xf5~\xbd\xf7j"
        b"\xa4*\x16!\x9dpnR\xba\xbe\x12:\x84M^t\xee\x11!2\xc82\xdd\xb59i\xc4\xb1"
        b'\x03\x930\xce"O\x12\xa2\x1b<%\xfc\xc492\xf6\x86\x03\xebd\xd1\x87d\xd2'
        b"\xce\xca2\xbf\xab\xcc(\x17X\x96b#\xd6$\xd1J\xe6\xe8P\x14n\x80\xfeR"
        b'\xaf\x0e\x8c\xcbnQ\x87KO\x85\xc4\xbaD\xbc\x1c\xa4w\x1b"<\x8b\xd5\xb5\x93'
        b'A"\x98G.\xabL\x99G\xef\xca\xf8B\x18\xe1\x02\xef\xa4\x90\xd0\xfaB)\xac'
        b"D\xec\xf6Ec\xbf\xe0\xf5\xf2M\x87g\x92\xb6F\x80<\xbe\x8e\x93\xac\xabA\xd2"
        b"j@!\xfb^\xe4\xa9\xe9{I\x0c\xbfY5)6\x11\xa4(j\x16|\xfe\x83\xee\xfa1f^u\x1fY"
        b"\xa4yP\xf9$\xd5.Z\xc7S\xb9qw\xe5\x88\xa8&\xcb\xba\xcb\xaf\xdd\xe7G.\x96\x90t"
        b"sf\xbf\xc8\x06.O\x19\x93)^\xf0$\xe5)\xa2~C\xe7\xfas\xc8\xf3D\x90c\x87I"
        b"\x0c=\x04\xcc\xd2d\xef\xda2G\xc8\xa3b\xe1\xa7\xaf\x8d\xa0\x89u\x0bo2?"
        b"\x13\x9cf\x17\xf24\xea5G\xc8\xb1\xc1\xa1\xc5\xb9\xeeB\xeb\xda\xbb\xbc\x98~y"
        b"W{\x9a\x98>d\xf3_0G!i{\x8c\x0b\xd1\xa9EZD\xae~\x17\xbd#\xcb\xf8\xfe"
        b"\x1a\xaf0\x1b&S\x933\xcf*\x19C\xb9\x96\xfa\x93\xf3\x8b\xac\x0b\xe6\x0c\x96r"
        b"v\xe7!BK\xd8\x16\xedD\x17EO\xd2\xd3\xf2\xac\xc9\x18\xbc\xf4\xd4,\xf4\x84"
        b"\xd1T\xe6\xa5U|Cy\xa3\xc3%Lj\x8bx]\xf2\xbe\xa4]\xce\xbe\xd3\xb4"
        b"\x0c\xb0\x98\xe9U\x1d\xb5I\xb5\x8bN%\xec\xd2\x95!R\x04\xc8\xe0Aq\xc1\x8b"
        b"\xa6$\x83d\xa5\xdc\xc9c\xb9`R6\xd6\xaf\x8eF\xa4\x19\xa5\xf6\xc48\xf5\xcb"
        b"\x84\xc2W\x94\xd4\x93s\x94^\xb4l\x1a\xd9\xbe\xac\x9c\x0e\xff\x92\xd2"
        b'\x940\xec25\xcb{\x82=v\xa29"\xa0\xba\xb3\xcb\xd1\x92\xb1\x04\xa5\x08\xc4'
        b"\xbch1\xb4\x8c\xabl\x1c~\xd4\xa9n\x06\xf3\x02\xa3\xfbEk]\xea\x02t\xd1"
        b"\xc7|!\xd5Y\xe1FQ\x85C#\x87\xa9r\x9a'\xd0)\xd3\x1b#T\"@\x9a\xba:\xf4"
        b"\xd0a\xe8\xf6\xa5\x14\xae\x89\x91-<I\x1a\xcf\xa1%\xf2\xf9\x93\x93\x03;fW"
        b'&\xb1\xde\xc8\xe6\xbft"\x1c\x81\xbd\x81\xfc\x8a\x17\xbd\x8a\xa7\x88\rxt\xc3O'
        b"\x9a\xd2\x1fg\xdf\"\x94\x89{\xe0r\x0f\xdat'\x89F\x89\xcd1\xff\xa4\xeb\xe4"
        b"\xc9\xe3\xd5\xba}\x88E\xe42F\xc2\x10\xe1\x9c\x9f<:\xc4\xa2n\xe8\xf9D\x9d"
        b"\x13\xc6\x9c(\x16>\xdb\xd6_FX\x0e\xaa\x83^+\x004\x01\xc6\x8c\xe1\x7fl"
        b"E9\xd4\x04\x04\x12\x15\x18\x0em\xde\x11\xaa\xfdz\xa8$\x8cI$%g\x87\x1a\xbaH_Q"
        b"\x054.\x1aW\x94}\xbc'b\xe8\xd4\x96\xaf[\x0f\x9a\x94\x12\xaa\xb3\xbd\xc2\xc4"
        b"\xd0\xe6\t\xe8\xff\xbe\xd0\xba\x13\x12\xc1\xf3e\x85\x85\x96\xd9Y!\xe8"
        b"\x83\x96\x9d<q\x8d\xc2\xefGJ\xaf\xeblO6\x10p\xa0\x00\x86(v\xffA\xd7h\xba6"
        b"\xdf\xa5\x89\xb8Q9\x15\xe3\xef\x91\x10\xb2\xd0\xef\xef\xaeQa2\xa2)l\xf3`"
        b"\t\x91\x81^l\xc7\xc5\x1fD\xd6\x02\x96[\xfaES\x00)\xfbm\xdc\xbb1_\x187>\xfc"
        b"\x9cH\xa3\xc2\x89\xa4\xd4A\x8bHe\xe7\x14\xd4\xf8\xcf\xb6;:\x94\xd4S\xbf\xe8"
        b'he7"\xef\xf8\x83\x9e\xf8\xbe"\xc4\x8b\x96H\x93\xd9!\x99\xf6\xbbo\xc2\xf0'
        b"\x12?'\xd5\x03\x9a\xaaC\xddY\x1e?\xfb&$,\x16)_\xe8n\xdf\xd1$z<:\""
        b'\xf2d\xbf\xb4#x\x00\x03-\x94\xdaxt"\xcb\x84\xffq\xe8\xb5\x93\xad#\x98'
        b"\x19\x7f\xf8,\xe2\x0c\x91O\xb8d\xd2\x91C\x89hF\xfb\xd9I5-\x10\xda=\x12)\xb7."
        b"_\x14\xb5\xe6\xc1\r\x05(\x89wB\x97B\xe3\x97H8\x96\xe0Y!\x12k\xa1"
        b"$\xa7\xdc\x8f,\x18\xec(\xc4\xe8/'\"\xa1\x1b\xd5=\xf7\xe2\t\xe0T\xe2\x0f"
        b'\xd1\xf3\x82n\x9d\x92\x10\xf9Yw\xed\x8cm5]>\x10\xac\\kv"\xd6\xb9XY\xb2\xd0'
        b"C\xcb~\xd7\xb20d\x1e!\xc0\xef7f\xbc\\\x19\x04\xed\x07\x8c\x9a\xc0A\x9f"
        b"w\x1b\te;+.\xb0G#\xb5\xc9\x0b\xf5/4)dy\x815\xfb\xc3\xc6\x03.\xe4\xf3"
        b"O\xa6\xc2\n\x89\tdR\xc7\xe2\xd1\x9ct\xa7\xf4\xf4\xae\x1d\xa9\x82"
        b"\x11\xa9\xf6\xfe#\x8bQz\xa9R\x96s\xd0\xb6\x19\\\x90\xeai\x84\xe2\xb6\x81\xff"
        b"q\xa5k\x0f\xe6\xe2S\x90\xe3wb<\xd0\x89\xa1\x9e\x03D%ho\xb2+\xfcF(\x12\xd3"
        b"\x8f\xe3)\xcc\xb5p\x87\xc8\x0c10\x7f\x96\xee\xfaM\x0cw\xd3\x8d\xac\x85\xf8&"
        b"\xc4\x9f\x03\xd1\x05K\x0e\x10\x8f\xfcZ\x99\x02\n\xd2\xb1\xc9\xd3H!nA~\xb8"
        b"\xdeM\x8fiu38t\x0e]q\xbbe$\xd6\x13R\x86\x1b\xc5J\x19\x9e\xf6\xdfHm\xd6"
        b"\x94c\xd0J\xbah#T\xe9\xb7\xe2)\x1b\x93GF\xe6W\x08_\xbcn\xa2\x1b\xd2\xf1k7"
        b"L'\t\xb5\x9e\xef\xbe\xa5\xd6\t|\x88\xa1~\xd0\x16\xf2!\x82r\xd7\xa6~\xc2"
        b"\xaaB\xa7\x17;\xf2\xe4\xb5\xef\xd1O\xad\x05h\xaa\xccd\x91\xc4\xea"
        b"\xf7\xdd)\xe4+\xd2\xa3\xf9km\xca\xbb:a\x08\xbf\x13I\x1c\xcc\xb4\xfe\x15R"
        b"F\x83\x13z\xeb\xfdgiN\x80\x94o\xbdKW\x1c\x92I\x90\xc5_\x0e\xde\x00"
        b"w\x9f\xe6\xdd6n]\x95\xd4\xaa?\x96\xc3 \xd4\xaa\xcb\x0fW;I\xeei\xd5*s\xe2G"
        b"\xa4\x115\x97\xb5\x92\xfbWp[B WK\x92\xfa\x8f\x94\xbeo\xf6\x95\xc7\xe2!G-\xdb"
        b"X\xbc\x11\x83?\xee\xd9\xa6\xd9j\xa9\xde}\x13T\xa5\xd2z\x16\x87f\x01\x91Z"
        b'\x99\xdfd"\xc1@>\x99?\xec\xd1V\xc09G\xf9b\x86$\xef\xad \x9d\xcb\xf0h\xaa\xee'
        b"\xf5\xb19\x7f\xa1\xa9\x92\xb3\xda|\x8f\xd6qK\xbdH'\xd4\xfb\x95"
        b"\xc9\xa2\xec\xa4\xed\x9bG\xebz\xd0\x0c'\x13L\xd9\x9eL@\t\x14_\xee\x83y"
        b"\x99\x88\xcd\x90\xf3\xbe;\x89\x94\xb9\x0f\xa2x\x1e\xdc\x89T\x8b\x8c\xaeY'i)"
        b"O\x97\x88A\xf3\x1b\xc9\xba\xf7\x18,\x94u\xd02\x8cu\x9d\xe2\x9c\xee\x0f0["
        b"\xa9\xa3\xdc\x93\xaf\x8d\x04;\xaa\x91\x7f\xa4\x89\x18\x9e@\xd0\x94y~"
        b"\xe5\x03eeR\xcd:\x13\xbfv!\x92 \xefg\x96/t\xe0\xe6\xe7\xf4jR`\xb17\xe9"
        b"\xf7/\x86\xa7\xc0\xad\xcbN\x0b^P\x11\x11\x96t\xa0\xc6|\x83\xe59H\x10\x8b"
        b"\x85\xbb'nj\xaf-\xa4\xf7\x95\x8b\xa9\x84\xe3\xa8cK?$%76\x11%\x9e\xb9^4"
        b"\xb50\xd4\x86{\xd3\x0bW\x9fF\x04\xac\xa7\x8bN\x085\x1c\xc1\xe2\xd12*\x9a"
        b"\x14i\xbc:X<J2Y\x04\x1e\xfcM\xea\x1b\x87\x0c\xff8G\xbfh\xc1\xa282g\xbf"
        b"\x13\xc2\xe42\xf6\xe2-.\xc0W#Ee\xf1Q\x87\x96]+\x13\x90\xaf\xfcZ"
        b"\x9b\xc0\x8a\x04\xf2\xdbA`h\xb1*\xe78/M\xe1y~\xcc@\xcf\xc2\x92\x04x\xeaZ\xe8"
        b"\x9e\x89\xcc@yS]Kt\x8fn\x19\x9a\xff\nB\x0b]\xa9\r\xcf\xfeD\x08\x82W\xea8"
        b"\xc6\xd7\xddP\x06\xa7\xedQ\x13\xe7\xd1(\xf3\x89Y\xfc\xb5\xb2>&\xa3n\xfd7"
        b'b\x89\x13\xe3\xae\xb28\x0e\x1a\x1d"\xd5\x99\\q$h\xec#Y\x9e\xf2\xf9/'
        b'Z.\x1f\xf9\xac\xe9\xa9\xa4Q@,"j_\xd6(\xc6\x81\xd82\xc8+\xfdAS\xbc%\x9f'
        b"\xb0\\CC\x12\xadX\xd0\xaa{\x03\xbdI\xbcT\xfe\xf7e|\xd5f\x14,\x95\xe5\xc1%X"
        b'n\xb3\x87\xf2\xb5m\t.\x8c\xcc\xd8\xfdG\xd27"g\\6\xc1]\x9a\xc2aIL2=\x0eMy\x15'
        b"\xe9\xac\xf9\x8d\xa6Qg\x10athJ>\xac\x92\xa7^\xad W\x8d\x08c\xf1\xd5\x02\x8d "
        b"^\xa5\x88\xbd\x9eb\x8bNd\xd6\n\x02\\\x14\x010y\x10Q\xd5h\xe7\xfc2\x813\xd9;"
        b"exQ,4\x81\xcd\x8au|\xd0\x85R;qp\xf4X+T$\xc2\x7f\x8e\x8fr\x83H\xcd~/?"
        b"\xfb\xa0\xbb\x81\x92\xf9\x93\xce\x92\xc1-\xd6\xa5\x91\xe4Gn\xb3\x0f\xab"
        b"D+\xd7\x89\xc3\x11\xad\xf8u2p~\xd0\xd9\n\x05\xda\xfdFz>hM\x08#\xfb\xc3\xee"
        b"\x88y\xea\x03\xae\x85)\n\xe1+e\xaeyy\xa9/\x11\xb3[=\xc79\x11\xf2%$\xa9S"
        b"\xf0DB\x16\x8eS @|\xd0\xd5b\x03fWx4-,\x04\xca\xc6\xe1`\x929\x83\x86"
        b"\xab\x1fr\x15\xb5\xeb/&\x82\xba\xb7\x04J\x07*j%\x0b\xe2)\xca\x9ax\xa8"
        b"\xda\xb8`jW\x02\xc6\xa87\xd4\xa6\xf5f\xe9\xf7\xf9^;\x14IV\xa2\x07/\xd2&-J"
        b"\xc4\x05\xfa%@\xf9\x92\xf2\x1b'\xe1zO&TR\r\xb2\xf2\xa7\xea\x03\x87B"
        b"\x9f\x9d(\xdb\xf0;\x99\x14\x91u\x14\xcc\xadY(\xa4\x89(\xa3\xff!\x13b\xa6"
        b"\xd4\x9f\xb4\x1b\xa3\xb0\x0e/\xda\x1d\x83\xe3\xb2de\xcf\x94\x96}\xb9"
        b"\xaa\x84G\xb3\x88e&\xe7\xe1\x10\x1f#\xa6!\xbe\xb9\xd5\x13\x01\x0b"
        b"\x12\x83\xdem$Q\xd4\x992\xc9\xa1\x1b\xd0\xb0\x00\x08q\xa9\xea\x02"
        b"\x03\x89*\xbal\xb9\xa1K\xaf4\x86Nz\x8c\xd2[\x03\n\xba\x12\x03'qT.Z\x7fR"
        b".\x00V\xc5\x0f\xdaB\x9d\xbd|m[\xe6\xa6Ta \x80\xe2\xd0D\xe2iE\xcd\xf9\x1c\t"
        b"\xa5.\xba\xcd\x1c\xbd\x08\x14Z\xb7 n\x97\xf0=\xd4M\xd5[\xa2\xa9\xc2\xa5+"
        b"\x84\xa6W\x948\xc2\xbc\xd6?U\xfe\x90Mv5\xb7\xa0\xa1\x07\xcaD\x8f\xe6#"
        b"\xa8 \xcd\xac\xaf\x8f\xd3\x9f \xe58\xd8\x81\xf3\x10\x15\x11r\xeaF\xb3O\xda\t"
        b"M8\x91\x94\xd2\xd9\x08\xaaL64;\x89\xfe*\x89\xad&J(\xcb]Z\xcc\x1e\xa5@p"
        b";~\xd0d'\xe38\xa1h\xd08ex\xe6\xcexMT\xebP-]v\x96\xca\xa2\xae\x91"
        b"^\x9d\xe4\x03B\xc9|\xbc\x12\xc9\x91\x96\x83N\x1c\xab\xfd\xd4\x9f\xb6"
        b"\xb4\xed\xc4w\xea\xf3\xae\xcd\x81\x0f\xf8\xc6a\xe5w6\xe2A\xe3x\x88r\x83\x91"
        b"Y\xda\xb3ks\x12I\xea\x8a\xe1\xa8T\xcf\xc2\x8368\x1a\x04su\xe7\x11\t"
        b"\xe1\xa1\x86J\xbbh\xca\xd6\x13\xb95\xcfcXs\x14/\xc5\xeb\xd86\xea&&"
        b"Y\xc8\xe6\xcf\xda\xb2]\xd6Xq\xa2\xc5\xe8\xb0d*\xc1\xd9t\x89Bcn\xa0"
        b"\x9c\xf6^\xc0\x84\xc1\xf2,\xae\xc8\xb0\xf1\xe94\xd6r|\xf9\xa0e.%\xf1A"
        b'\xf0\xe69LJ\xbd\x19\xed"\x07l\n\x8e\xac\xc7\xf4K\xeb\xe8\xa2U\xb8\x95\x8b'
        b"\xa6\xffQ\x02sz!/\x12\x95\x15\x1a\xc8h\xde\xea1\xe2\x93\xba\xaf\x92]\xda"
        b"Sh\x99\x90-\x9boqh\xb5w\xb3\xfa[\xffa1\x92\xe0R\x18\x05\x13\xf1\xa0\x9bU\xc1"
        b'\x91\x85\xf5kOb\xd4\xa4\xb1\xeeF\xc4\x8a\xd4\x82\x90a~\xc1"\xbf\xb6\x88\xfb'
        b"\x14\xd4\x89x\xd1\x9d\x13\xcd\xe9\x8eD$E\xf3R\x1e\xa7b\x064m\xb5\x95|"
        b"\xb7_\x9b\xf6\xb1\xc5bw'V\x1d'\x8a\xec?k\xe3LVk\x9c\xbe\x1f\x99"
        b"\xca\xc0\xe4\tu\xba\x9bLd\xd2\x89\xae~\x7f\xa5\xf9\x18\xa46\xa6c_\xb3^"
        b"\x08i\xd4\xbb\x93f\x16 \xe9\xf1\xe4\xd7\x96IK\\3\xde`\x9dUf\xe9\x04"
        b")\x1aw\x17\x9f\xa8\xac\x88t\xb9\x9e\xca\xa0fu\t\xfas>\xb7A\xb9\xa55"
        b'\x1c\x10\xcd;\xe0\x96,\xebT\xbc\xeb\x94\xd0\xed"b\xe2\xeb\x17M\xb0\xa0R\xd3'
        b"\xeb\x82M\xf2\x8b\xe5X\x8ci5^\x07\x8d\r\tE\x04/\x883u\xb9\x14\x8a"
        b"\xa5\xafm\x8b\x89\xf04$5\x9d\x90\x82\x1b;\xf6\xe7\xe9\xe6\x0f\xb4\xa6s/-"
        b"\xfa\xd0\x14\x85\xedc\x15\x0f\xe5\x8b\xc6\\\x123Q\x98\xe3\xd0\x12g\xb5P\xbdz"
        b"\\>j\xad\xc4\xd9\xb2\xe9\x83\x8b~\x90w\xa7\x12\x81\xc9\r\xb7\xee\x12{\xc7r"
        b'\x9c\xfe\xbcI\x1b\xc9\xcd\n\x1c\xc0Aw\xaa\x8b(7vY-]\x03e^\x19"=\\I'
        b"\xf5u\xb2\x02\x80\xe1\xce[b\x8a\x18\n\xf1\xe1#\xd50\xdd\xb0\xc4S\xf3\x1b\xa9"
        b"\x18\r\x96\x12>\x02\x93\nE\xe2\x91\xba{w\xdc8_\x8d\x0ct\xb9RM\x9a"
        b"\xbe\x93\x8c\xab\xc5k\x05\xd9\x90i\xb9\xf5\xc7C$\x8f\x0cG\x96X"
        b"\x7f\xd1\xbd\xd1\xe2F\xd9\xdfE\xeb\x90l\x84\x82\x8b#@i\x04\xad*\xfd\x18\x07"
        b"M\x8e\x9c\x06\xfbw4\x03\xe8D\xda\x84f\x8ap\xd7\x0e\xab\x04\x00;\xdd\xa3u"
        b"\xe5]\xf7S\xbf\xc0\x94\xc1X\xac\xc8\x1d\xa0H\xa7R\xcd\x16\xe3\xd7\xbdc\x17&"
        b"D\x92\xcb\x0e\t])\x9aJH\xfc\x8d\x16\xfdQ'\x8d\xd4-\x1eM\x15\x90M"
        b"\xcf(\x17\xcd\x0c\n\x1dJ\xf3*\x87D\xabe'\xd2\x15\x82\x85z)]\x82\xb6"
        b"\xf3\x83n$(\xe1\xce\x0b&\xaf\xa3\x0f\r\x9e\xa4\xa8\xa5\x8f\x84M\xebe\x1c\x82"
        b"\x9a\\L\xf7\x89\xbe\xc4\xac\x10J\xe3\xb9\x91\x8bn\xf65D\x89<\xba[W9"
        b'\x15\xac\x17\xcd\x04\x11"v?\x07\xd8LNe\xb4\xf1EGtN\xab>\x8e\x90`2\x1a;'
        b"\x89\xf2\x1c\xb48\xa6d}\xf6\xf4\x82\xca\xdcq\x91\xb8\xb4C\xbdh\xd1;C\x17"
        b"~L\r*\x12\xa8\xaa\xa3T\xee\xa23\x86\x03\xa5\x18\xd1\xa3\xb3\x1d\xb6\xac\xc9{"
        b"\xf1\xdd\xactR\xd9\xfe+\xbbL\x0b:T\xee\x89P\x11&\xd1(\xfb\xc3_$uf\x18\x98"
        b"\xe3\xeb\xda\x91\xc62m\xaa\xcfA$\xe6\xb9\xa0)\x89\xee]t\xa2(\x84\x12]"
        b"\xcf7\xd4\xacX\xc9\xd35\xbe\xe8\xd7\xa1X\xbb6o\x0eTm\xa1RX\xd3\xae0\x16L\xea"
        b"b\x10\xcf\xf7k\xd3\x9d7\x99\x05\x12\xeeN`\x9b,~h^\xf20Y@\x86*\xa9\xd2{"
        b"\xda\x14zQa\x9f=\xdf\x10;\xa2\x18\xeb\xcb\xf8*\xc44\xa9\xba\xea^rWz\xd6d\x81"
        b'\x92\xf2\xbah\xac&z\xf9\xbc\xe9Ow\x8c%\xf6Z\xfdZ\x1b\xe7L\xdb\xee^\x9b-\xed"'
        b"\x12\xec\xfd\x92\x94\x14\x0bu\xa12\x87\xb2GKg\xe3\x88\xc5+\xd4p\xea2\xea"
        b"\xd0\x07\xb2\xa8\xbc\x1c\x94\x04J\xc9\xf7\x8b&\x88X\xc9\x02\xba\xafl"
        b"d\xf5\x82\x95v\xdd\xb5\x93Q\xb7\x88*\xfc\xa0\xcbJ\xc0\x9f\x11(\xa0q/\xf1"
        b"\xe4\xbc\xd1CtJ\\\x95Q\xda\x17\x1d\x86i\xed\xe9o\xa7El\x96b\xee\xc5A[V\x8c"
        b"L\xb9w\x16p[(\n\x94\xdbqo'\x16\xeb\x8e\x1a\xfd\xe7\x04\xc9\xf6\xebD"
        b"\xa8\x9e\xbah\xf1\xc2\x0c\xb4N\xf9\xdbI\x8c5\xe8_\xd3i\x84\xc6\xc5\xa1x9"
        b"\xb9`>\xd3\\\xa8\xc8&EvY\x98\x10:1\xd6\x1f\xf1@\xa8\x17K}\x94Slc\x8d@TE\xa3"
        b"\xcd=\x9alk\x997\xd1B*^\xb6\x10}6\xde%\xd2\x06\xe8\xe7M\xb7\xde\x0b\xb4\x8ch"
        b"r\n\xae\xad\x1f\xb4\xbc\xe9\xca,\xa8\x13\x157\x97\x007i\xb8\xe6{\xd0L6"
        b"\xb0r\xa6t\xd1\xb2\x08\xa8k\xfda4\xe2g\x9dx\xfeLw'\xd8\xb9\x04\x80\xa3\xa7)J"
        b"\xbe\x98\xda3\xd3\xfd\xc8\x11\xbb\x89\xbb0\xfcMZ\xe0\x9f\xee\xb8{"
        b"|\x94\x8b\x10\xfe\x9d\x9e\x85Y\x87F5\x02\xee\x17]\xb2\xc5\xa3c"
        b"\xf0\xd7\xae\x1dX`s\\\xc9\x9dM\x123\xc8\xa8\xfb\xb5\xb9\xe3\xc4\xcf/\xb9\xd2"
        b"\x081,m\xe1c+\xd4\xa9Zf\xbe\xd4/\xb4q\x18Y\xc4\x1f\xb4\x1c\x1d\xc9"
        b'\x1f9\xd4\xf7\xb4\x19V!]$\xf3\xdf\xdfd!4"\xa1\xfe%\x8d\xb3\r\x7f`\x9aB\xf2'
        b"$\x85\x9c\x91\x9dPN\xfb\x08h\xc9\n\xca\xd7F\xfbY\x9b\xde[K\x82\x1dA"
        b"\x95W\xc1!v\x88\xbfw\xccn\xa27\xe3FK\xac\xe2\x1dgg\xc6\x9f\x9d0"
        b"\x96\x88\x84\xd0\x8d;d*m\xa8\xab\xfc\ti\x10`\xec\x83\xa2\xf5{\x80L\x1a"
        b"\x1aT\xc9xN\xb0\xa2\xa4\x8a\xce\xb8'\x92\xb1`\xb0a\xeb\xcf7\x82't\xd0"
        b"/:\xe1\x88\x10n\x9a?\xdf\xd8lnE\xf8\xe6\x1bb\xc8\xb9Qo\xf9\x8b\xee\x05W\xf96"
        b"\xc5\x91J7:\x0b\xde\xc2D\x0e\x13\xf2\xb0!$\x1f4\x891&p\xd0\x86\xf3~%\n\x94"
        b"\xa2U\x1d\xc8u\xcau\x93\x18\xc1\xda[\x7f\xedh:0\xa5\x8b$_\xc7\xc99"
        b"2\x18\x0b\xdfYV\xd6K\x80\x04.\xe1v\xfc\x9a\x1b\xdc\xa3\xbf\x8di\x1e\xd5E"
        b"\x07\x18\xc5\xd5)\xb2\x97\xfc\xbaa\xc6a\xd3oh\xc1sk#\xb6\xb5u\xb3|\x16Z\x96r"
        b"\xa2\xb8\x9d\x7f\xc1\xd5\xad@7DOe\r\x9d\x12`C\x8bB\xf0\xe0_\x92\xea"
        b"\x8c\x02\xb2\xdc\xfe\x89\xea\xe2P\x10Y\xb5 \xdfs9\xb8+\xb4\xc8`\x9dl6#M\xa5%"
        b"0\xc5\xe3\xbb\x93\xce\x8c8}=\xd6\xd3)\x1d\xc5^\xa7G\xb0\xfal=\x9e\x16"
        b"s\xd8\x06\xf3\x0eN\xf1-\x81o+\x90x\xad\x18\x81\x9b\xd5\xb0Q{\xf7\r\xa6"
        b'\x10J|\xfa*a8\x8f\xfc\xb3d\xc1\x89\x01SdO\x1b"5V\xaf\xffDap\xb5!DT\xa4|'
        b"\xa1\x19\x91Q\\\xe0\xb5\xe3\xa8\x0eF\xa5I\xf0\x9e\xb2^\x0b\xcfP\xb1\xe3v\x9d"
        b"-\x9b$\x1e\x89\xf1v\x1d`\xa3u\xe2P\xe5U\xd8\x96\xaa\x98\xab\xcc\xa5\x9fZ"
        b"n\x1d%\xecA \xcf\xed\x9aiR\xba7B\xf2\xbb\xd2\x99\xeeP\xeb\x0b\x93\xab"
        b"\xe3\xd7\xa6gC\xa6~9\x89\x02\xaa\xdb)\xcb\xaa\x8e\x7f;q\x840'\xedJweK\x0c"
        b"Y#J\xf2hQ5f\\?\xd5\xae\xa4E\xf4\x15\x19[\xf7\xb5\x8b;\rt\x9db\x16\xac"
        b"\xe6\x83\x1e\x8c\x9e\x13\x95\xb5\xe1\xbeQ\\@\x95d\xfdj{\xa1\x96\x81r6\xba"
        b",\xdd\xd5P\x97\xd3I\x92\xb7\x1d\x94$\xe6\xc8H/\xaa[\xb3;\x11\xb9\x81\xb4"
        b"\xce\x90\x10\xda4BS\xe2\xa0W?8\xe3\xb53\xcc\x8c\xffIj\xf7\x03\xce\xab"
        b"\xcdHb\xca\x91\x1f\xa3\xf8Z3\xad?\x0e\xba\xf7\xc9\x9e\x99\xff\xf0"
        b"\xa2g\xb4\xeeK3+6\x1a\x81\x8b\x8f\xa8CtkOJ\xc9\xa8\xf0)\xbb\x04"
        b"\x98\xfe\x13\xb9\x81\xb4#\x05\xff\x91\xe2$4\x16C\x13\xcfG\xf6a\xd7ES\x88"
        b"\xdf\xc9\xa0r\x99 \xdf\xee\x00\x8b\x14\xbc/\xf9\xd9_W\xab\x97\xd5"
        b"\x12H\x97\xd5)p'q \xab\x98h\x87\xbb\x9cbCq\xac0?\x9d3\x99\x96M/L"
        b"\xd6\xf1k\x93(\xa0\x95\xe5\x181dz,\x01O7`\xf4\xe8\x89\xa6$\xbcyN\x90\xe9M"
        b"\x96\x8f\x0boY\xaf\xd0b\x9cJR\xe1\x92w\t\xe6\xd23\x1d\xca1N\xb1d"
        b"\x90\xe4\x80\xcc\xc03w\xc1Fj6\xebO\xf3h+\xf8\xc77\xd8\xdb\xd6\x9e\xaa"
        b'U\xd4\xd77\x16H\x9f>\x19"\x94\xcd\x11\x0e\xb8\x15\xa3`\xc0\xf47\x99\xd4\xe9'
        b"\x90ATb\xcc\x9f\xa5\xa9\xa9$_H=\xbcCk)\x06a\xd53\x08\x05\xc7\x9aX\xfe\x0c"
        b"\xae\x80\xab\xd3\xb2&{\xbbX!\xe2\x01O\x9aI!\xad\xe2\x8e/R!N\x87T\xdfvn"
        b'\xc4U\xb5\xda<\xea\xc7=\x9a\x99\x97h\xd5y>\x92!\x8f\xb1\xd2"\x9a\xdcER1,\x97'
        b"\x1e?\xf1\xa01/\xab\r\x98\xf8\xd9wY\xb3\x12\xefl'*\xd7\x86%\xaeh_\xf1h\x94"
        b"\xfe\xcc\xb7V\x84Z4&t4b\xb8\xd5\xa3\x89\xc1Q\xddtz=L\xe5\xd9\xec\x8b\xf2s"
        b'\xdc\xb2\x99"\xc1\xedt\xba \xa4\xaa\xa8\x08o\x918\xca\xcfW\xd2'
        b"\x17\xd7\xef\x00S\x88\xa32~\x04\x01\xf6s\x82k\xca(\x9d\xba\x1bM\x95\xb95"
        b"\x98\xd5\xec\xf7\x8d\xddD\x14\xe8\xd4ME\xebX\xa6\xb7\x9a\xe1=\x1e\x1d\xb1>n"
        b"\xa2\x8a\x7f\xa4>\x86\xe6\xa1\xec\xc1\xd1\xba\xb5\xf2<c\xa6D5\x95J\x1b\x9aN"
        b"\xbaG3\xef/\x13\x1b\xbfv\x06\xf2o\xd0=\x18\xa2\xe7\xe0A\x076\n\xe3\\%\x01d|"
        b";f:&\xcfe6\x0cc\xca\xe6\xde\xc7\xad\xeb\xa6\xb0BV\xaa+\x12\x82\x83I\xa4v\xea"
        b"\xf0\xf7U\xd6\xb6*+\xe8\xbf\xf4\xc2\x01>\xc0\x16\xda5m\x94;u&\x99\x95"
        b'\xea\r\x9eB"\xaeQ\xc4\x95\xef\xd2x\xe2\xb4\xd5\xc8\x88\x9b\x0e\x8d\xd7Vl`'
        b"\xec\xb9\xf7au\xfd\xe4Z\xdc\x91\xd81\x17&4\x96#\x8c\t\xfc\xd0\x00o\x85"
        b"p^\xd0\xd3\xacAW\xf8\x11\x0fL\x16\xc8\x94C\x85\xe6\xad\x01&\xdb\xcd5i"
        b"\xeb\x8c\x9e\t\x15\xb2\xc1\xa0\xedN\x0b\xcf\xc8F\xac\x03k\x9f\ty\x1a\xca#J"
        b"rE\xff\x94\xb84\x82\xcb\xb2K\x8f\xaa\x94\x94\xa7\xce\x83\xd0\x7ft"
        b"\x16\x12\xf5\x0bD\xb9\xf1s6:Y\x1e\x02\xb1Q\xbc\x16N4fb\xba\x1ca,\xcf\x82\x9e"
        b"/\xe2\x8co\x80\x99,\x16\xb5M\xda\xfb8\x1a\x9e\xd8@\xa2:\x9a\x81\xaf\x0eM"
        b"ub\xb5\xc6\xe8};8=\x0c\x99!D\xef\xf6M\xe3S$\x17}\xfc8ZSl\xa2\x16"
        b"\x95\x96n\xed6+\xfd\xeb4}\x1e\xb0\xb5\xf9\rL\x1b\xa7\xe1u\xe1\xb6k\x11"
        b"\xd7^\x9aqn\x03kh6O&\xd4*Q8+\xf5\xbf\x8f[\x82y\xd8\xa0W\xb9\xab\xce"
        b'B\xa7\x95\x8e\xc2\xcd+K\xba\xa0\x91j\xc3Z\x9ca"\xab\x01b\xa5<\xfc0\xfc \xe0l'
        b"\x93!k\xf7\x16:\x02,Q\t\xb2\x83\xff\xe4\xbbe\xf9\x17\xeb\xf8\x8b\x0e\xad\xbf"
        b"\x87\xf8\xa5\xee\xee\xa0\x07\x8d\x17\x95\xc8\xb1[\xdb\x06\x8d\x90\x02>\xb1"
        b"Wr\x82Tu\xd0\xd4\xfb\x16eu\x1b\xb7\xcb\xd4 \xf9V\x07\xcd$'\xf3|"
        b"\\\x8d\xb6\x15\x10\xe9\xe6\x9bU\xb9\x1e4a\x99L\x8a\xc9\xf1\x19\xf5:\xd27\t"
        b"\xf8A3\xe2\x13(j\xf4A\x8b\x94\xc8kE\xc6\nl\n\xa4\xfcy\xf0\x7f\xb3:\xa3\x87\n"
        b"\xe0j\x89\xdeS\xe1i\xd9\xbcInF\xa6\xd2K\xdd\x8d\x8b\x97ug\x91\x90\x83"
        b"&\xbf\xc1\xe8\x01\x97x\x94\x0c5\xeb?\x93\xcb.\xf7.\xa5\xb0\xe5\xcdUW="
        b"\x8a\xc4%\x0fX\t\x04\xcc/4\x03\x1a\xcbt\x01;\xd0\xe4-(\x02L_tRl\x06\xa7"
        b"\xec\x1b\xb7\x13\xabUc\xb8I\x9bw':\xf2\xd9u\xde\x8e\x04\x07u\xbaL\xfc"
        b"\x12\x17\x9e\xa5Ip4\xc6\x89\xf57\xae\x8b\xe5 \xc5 \xe2\xef\xa7\xd4\x94Bg"
        b"\x92\x9f\xe4\xb7\x1c\x0b\x0bK\x9a\x0e\xb1~\xdc>F{\xd1f\x87\xbex\xc16?"
        b"\x9e\x11\xde\xe1\x18\xe9\xa4\xcc\xe9\xb3 \xd1\x96\x1d\x9a0z\xa28\xbf"
        b"\x9d\x9bd\xc8\x83\x95nwgk\xe0\x1e\xd3\xd4G\xaer\xafm\xb3y\x19\xb1P"
        b"\xbd\xd98\xb9\x15\xeb\xe2\xe8\xe7\xb4\xd1\t\xc3F\x90\xf4\xb7\xe4\x0b\xee"
        b"\xeb\x96\xb5\x1e'P\x1b\xad\xb8\x07\xb5(\xfb\xe7\x95S\xf4\xa3Y\x0b"
        b'n\xbf\xa1\x04\xcc+brI\x12\xe9=@\xd8\x83\x88\x8e\xbc\x94\xd3\xaeo"\x8e'
        b"\xe1T\x0c\xf8\xf8F\x0fd\xaf\x1c\xfb\x89}\xbci\n\xa5%\xcf\xccJ\xb5\x1c:"
        b'\xd1\xd6`\xa5\xfb\xa7\xc3\x95:!r-\xd4\xc3\x95\x17]c"\x9d9\xbef\xc9'
        b"\xe8\x0fe\x9b\x9f\xc9\xecY\x87f\xa8\x1b\xe5F\xe9\x9e\t\x0e\x12\xa5c\xa4\xa5^"
        b"4\x8b2P\x95B\x86\x856\x05\x94p\x8a$v\x1f\x1e\x1eLjiD\x0e\xfa\t\xa3c\xff"
        b"\xd3\x80`\xd5\xa6\xc5\xa1\xf9\xa3\xf4\xa0\x9d\x9eAm\xc9\x8cW\x86^"
        b"\x05\xbf\xefh\x11'f\x02\x9c\xb5\t~WF\x1bvG\xde\x93\x90\x10\xe6-\x05"
        b".\x1f\xb4\xcdT\xa2\xc0\xda\xc7y\xfa\\9\xc9IXv\x83\x890[\xed\xa3k"
        b'\x9b\x06M\xcd\xd2\xb0"\xc3\x8d\x9e\xb4\x8bXo\xcc\x9b+\xa0w\x16C\x1d\x86\xd8'
        b"V&\x95S\\N$2\xe2wR\xa9\x9a\xab\xc8\x8d~\xd0\x05\xef\x16\t\xe9|9\xb2\xb6\xd1"
        b"&\xd3j\xab\x1bM\xfb\x94\xbd\x90\xe0\x03=\xdd2\x86\x99\xe4\xea\x16"
        b"\x998\x98\xb8\x1c\xab,\xea\x15\xb0\x88\\\x14z;\xd61\x85\r\xd06\x9d\xcc."
        b"\x0cBN\x94~\xa6\x9eO\xa8\xd6\xca H\x0b\xd7\x1f[\xda\x12\x9a\xba\xb4\x19\x8e"
        b"\xeb\x92(\xde\xcdL\xb0\x19nR\r\xbd\x17\x0c\x96\x8d\xa6\xed7\x9a\xa1'\x12\x8e"
        b"\xa4W\x8bG\xa3\xfb\xacN']4\xd5%\x14\x98\xfb}\xa3l\xf3\xea\x05<c-'\xa5\x98"
        b"\x94\x83\xf80\x12\xd1\x04\x86\xd8b,n\x12l\xd8\xcb\xd6\xb50\x9d1\xcdT\x1a"
        b'\xa9\x1b*\x15\xb7q\x97\x9ae-r\xb0\xba\x87\xf7v\x02\xc9\xad`\xc5\xc3gm"I\xf2b'
        b"mJ\x81C'\xc4\x17Ed[z[\x8am\xd2\x1d\xc9\xf8{\x87&\x90aE\x8c;A-4\xe6\xae5"
        b'\x86v\xbf6M\xbbk"F>h\xe8\x84\x89(59n\xb028\xc4\xcc\x99\x05A\xc5\xc3'
        b"\xd2\xc2\xdd\x9f\xc8\xd0\x1d\xc4e\x04\x1cl\xc3&\xa3!\xd6\x93\x142"
        b"\x87\xcc\xe48L\xd9\xe8'\xd0?J\x08\xb8\x00K#<\xc2\x00i\xa9\xe9s "
        b"\x18\x1e\x12\xa5\x18\x93\x9e\xb8y2\x01\x87v\xde\xb5Q#bR\x94n\xf5\xe4:"
        b"\xc8\xc9\x89\x8c\xdb\x01\x9b\x87\x82\x1f\xef\r\x13\x99i\x88A\xbeg~"
        b"\xa1\x1b\xfd2\xd8N\x8eZ\x19\x90X\xad\xe1\xf8\x80\xad\x123ZK\xbf\x077r"
        b'\xd1\xbc\x98\xf1\xb5\x11\xfd\xab\xf4\t\x05\x0f\xa6\x00\x9a"\xaar\xc4%\tJ&#'
        b"\x12\xae\x88\x0eM\x17\x08\xf5\x10q[\x1a\xc9J\xf7\x06\x03\xfaf\xf7\x1cI\x0bC"
        b"b`E=\xe0\xce\xbc\xc7B0\xd8/-\xaa\xb6Ly\x9bg#\x11\x1a\t\x8c#\xc9\x0eM"
        b"\xd1\xdc\\c\xa7\xf77\x920k\x94(\x92\nzmF\x8aK\x9a\xb1\xfa\x96:8\xd2\x14o"
        b"P\x80\xe6\xdcUYz\x12\xf0\xc1\xea\x0e\x0f\x9a\x8e\x91AI\xb8\x0b\x03\xeb,("
        b":\xb1\xb8\xd1\x99\x18\xdc,\xda\x9e\x99\xa5\xe9\x82\xafV\xe4m!\xb43\x95;P"
        b"Z,\xa53\xa8\x1fr\x0e\x91\xae\x86\x8ai\xa9\xf9\x83\x96\x9d\xc1gR\xd77="
        b'\x1a\t\x83\xcc<S\x91\x19cF\x13\x82{ya\x81\xdb\x1a\x13q\x8693"\x0e\xe7Uv'
        b"\x8d\xd3\x92L\x93a\x0c\x06\x1d\xdc\x9b!'\xf1N\x9b\xaa\xe4mnfw3\x80"
        b"\x95\xc1!\xe7Hf\xc7s\xb6\xea\xf5wm\xfds\xe7\xee\x8e\xe5e\x13`:\xc6"
        b"\x01Y\x8f\x17\xcb\x13\x00D\xbd\xa4\x8f\xf6\xc0o\x8b\xf1G{\\\xc7\x15G0\n"
        b"\xbbY\xf6-n;\r\xb5kIpY\x8c\xae\x08\xce\xa6H\x06+H\xde\x81\xc6l\xaf\xdc0"
        b"\x06&\xbd\x85?\x9d\x985u\xf8\x18\x94{\xdb\x842\xe8\xa4\x13\xa5"
        b"\xbc\xdd\x85\x98\x96Z(.\xd5\xb4\xd1\x8dSf\x8eAqrU\xd4@\xf1<\x1d\x02g\xdb\xf4"
        b"\xc2\x8c5\xd7\xa1\xf9\xfcP\xb4W\x98\xc6\x89\x921`\x80H-3\xa1\xdet\x1c"
        b"\xbe\x13\x01KKZl\x1aa\x92h\xb0L\xdap\xb2\xb2'\x82St\x7f\x9e1j\xd9f8"
        b"\xdb;B\xaeK\xaa\xd3\xf4\xc43\x01\x84\x04\xf7\xb6\x99\x19m\x9d\x85o\xa6t\x18"
        b"\xb1\xe3\xd9\xc63\x03\x8cRE\xb1\xedJo\xbc\xd6\xa2\x1c8\xe6#P*\x12\x0f"
        b"\xadJK\xd9\x18\xef\xe2\xe6U\x0f&w0:\x9c\xd1\xda\xe9\xa2\xc9\xa7w\x1b\xaf"
        b"\xff\xa2)G\x13'\xc5\xdb7\x86\xe5\xc3\xe4=k\xfax\xd7&JM@\x914\xe5>\x114"
        b"\xacL<\xdd\xbb\xebw34>\x9b.yG\x8c\r\xcd\x98\x8a\x9c]\xd5\xc0\xb0H*\xf4\x9d"
        b"/\xaf\x87\x82:\xa0X\xfa\x95\xc3Tb\xa3\x98h\xa9\xdd\x07\xc8l-Zx-\xba\xf0\x1e`"
        b"\xb5\xe6\xdbB=v=\xe8\xc4\xd0\x89\x84\xf5\xfaZt\xa3Y\x073S\x19\xce\x84,2#H"
        b"-\xe2\xfe\xee#\x1b\x8d\x9fL\x04\x8dw\xe07\xe1\xb8\xc6\xd8\xf5\xe2\x86\x80\r&"
        b"K\xa0\x83r;\x8f\xb2X$\xd6\x8awi\x10\xfbACV\x01%\xfa\x85&\xc3kcY_4\x19\x1bl"
        b"\xeb;\xda\x86\tY<ha\x19\xeb\xe1\xd0X\xbf\xb1\xf7~Z(yC\x03m\x05\r\xb9m"
        b"\xe3%!\x1e\xe7i\x12\xe0\x19\x1d\xeb\xd3\xb0\n\x81\x07-\xd9e\xb1\xfe\x19N\xbf"
        b"\x96\xbdNFh\x934j\xf9E3\x80\x7f\xa4\xbb6h\xecu\xf1\xe6\xbb\x13}\xf9`\x92C"
        b"\xa8wi\xda\xaf\xf0\xcf\xa7\x1b\xd0\x86\x190V\xe4\xeb$\xefx\xd8*\xd1\xecA"
        b"\xa3K\x7f\xd1\xf4\x19\xd3\x04BLq\xa3\xedi\x19\x82f\xfd\r\xa13\x14\x1e\xcb"
        b'\x95\xce\xe9K\xaf\xbc?\xc4\xfc\x19^\x94x\xd1\xc5\x06\x99"\x8f\x0f'
        b"\x073\xe3\x9d\xc8\xa3\xbc\x9c\xfe\x82[3:\xc9\xe9\xf8\xee\x94\x0bTJ4\x98\x8a"
        b">^\xf4\xb4\xac!\x19\xa5mH\xe1\xb2\"n'\xb3\xc0\xde\xd3\x9eX\xd9\xc4\xd0"
        b"\x98J\xbc\xe5e6e\xc5x\x8d\xb7\x89\x9cA+\xd4\x01\xc3\xb4G\xcc\x13\xc3\xc2"
        b"Sa\xf3\xfen\x82\xcd\x06\xa2dy?C\x12m\x96\x0e\x14X\x1dS2d\xcc\x9a\xdf\xa9\xfa"
        b"\xfa\xa0)\xc0\xb6\xf1\x86$\xc7^\x16\xa6J\xb21\x9d\xf9D\x02\x0b\xc3J\xe8<"
        b"\xe6\x8e^V \xd5\xcc\xac,\x1b\xc5\xf7AWk|b\x06\xdf\xf4\x86\x97ek\x06Q\xea\xf3"
        b"dN\xb5\x87\x1d\xf0<\x7f\xec\xc5\xb0&g\x13\xab\xdd\xe8n\xca\xb7Q\xf4\xf5\xda"
        b"$\xa4H\x18\xff\x04/\x1f4\xb9R^\x86\x90Y\xfc\xeaI\xba\xe2m\x065\xa5"
        b"\xf5\x1f\xf4~ii\x90\xc6wh\x1bem\xb1\x97\xbd\xf6\x88\xeby6\xab\xff\xf3"
        b"\xe8b\xbf\x08\xf7\x15!\x92|\xf6\x96\x9b{\x8e\xcc\xd0\xf6B\xd18I\x1c\x11\x80"
        b'M\xbf\xc7\xf5\xf7\x8eg\xcc\xeb\x19\x8dx"\xc0\x0cbd#\\O\xf9Y\xdaZ'
        b"\x82\x18@\xb8_\x01#\xe7c\x83\xb6\xab7\x1d\xda~\xf3 \x1d\xcb\x8bZ\xf35"
        b"\x87\x7fN\xef\xafD\x1b\x7f/\xa3\xa0\xef\xc2T\xe6\xbd\xd8\xe3\x01\xd4"
        b"\x16\xbdWIq\x8b=cs\x9f\x88\xa1\x82\xca\xc6\xb1\x07_\x08P\xac\xa7\x8dJ"
        b"\xe0\xd3\xfa\x89\xc3^\xd7\x1c~\x17\x0e\xc2\xce\xe5#\xc5\x84\xa7\xf8\x96"
        b"\x80#7\xc0,\xbe\xe0\xd2\x04\xc1\x9e\xe3 %r^X\xb4\x8e\x8c\xf5\x1e\x94\xb7"
        b"x\xc2z\xf5\x85p\xd6\xfe\xc8\xb4\x1e\x8d`\xec\xa9\xb3E\xc3\xba\x1b"
        b"\x86o\x9e\xe3+\xebAK?e\x9b\x81H6C^\x9e\xe6y\xd70}.\x00B|\xd1\x83\xc9eP&"
        b"\xb1\x85}\x91s\xad\xcdh\xe4\xd7\xbcd\xbe\xb1\x84]\xb1g_\xce\xb5g\xf2@"
        b"\x89B\xf6\xb7\xfe\xa8\x91\xcc\xb5R\xe5r\x9eQ\xb3\xe8\x15\x1d\xc9\xf4%<h\x9a"
        b"\xbc#\xb5I\x88\xd8\xbdoB\xd3\x13\xcd9]\x7fk\xb1Li\xa21\xf4\x9c\x1f"
        b"i\x02\n\x15\x08%\xbf\xfb\xc6@\xb07\x9eP&\x1b\x1d\xd7\xa3\x9d\x04\xbe\xdf\n"
        b".z&\xec=\t\x08y\xa3\x83=\rD\x99\x81\xdb7\x89c\x1b\x0e\x97\xce\xc3\x90}=\xee"
        b"B\xe4\xcb\x8f\xe0\x1a\xf6V\xca\x97\x9ad\x86q^\xb3\xf3]\xd0\x95"
        b"\xc9\xe7\xd5\x9ei\xec\xdbo\xc7\x9d\x1d\xeb\xf9\x0b7/\xb31\xd4\x9d_0\xed\xfc"
        b"\xbc\xb0\xb86\xdd\xab/\xdf\xa2\xf4\xdb&\xe8s.\xfb\x13\t\x19-\x916_\xef"
        b"\xa6ZJy\xda`\x8b\xadA(\xed\x81p\xda\xf4\xcf\xa8\xd9T\x1b\xa3\x1e\x0c\x9c"
        b"\x8d\xae\xebf\xa9|t\xe8`\xf3\xf6\xec\xad\xd6\x8b6\xf1L\x87\xd3+\xe6\x99%"
        b"\xf3y\xbdh~\xbd\xc7h\xdc\xce\x1c\x92\xd7\xc1\xa9\x16\xe6\ra\x8d.\xd9h\x9b"
        b'&\x06+\x94W\xa6\xe9"\xb2\x8d\xf9\x0bg\xd4\x057\xb2\x047I\xd0\x07\xdc,'
        b"\x91\xce\xec\xec~\xc0\x14\xeca\xd0\x17\xf7\x86\x81y\x04\xf6\xca\xc2\x99"
        b"\x9aC\x13\xa2\xbd\x1f2\xbc&\xe3y\xc4\xb6\x9e\x93\xc9\xe7\x81@\xe2"
        b"\x0f\xf6!\xc9\xa5I\x19\xf9\x17\x8d\x1e\xcai\xf1\xa1j\xc6^z\xa0$\xe6\x1d="
        b"\x99\x16g\xf3\x88\\8\xe8d\x8f\x0e1m\xf9\xe5\x1aZ\xff\xdaz_\xe2\x8c\xfa"
        b"$\xdb\xb8\xa4\xe5p\xf9F\x99FV\xb9\xdd\xb0r\x0e\xda^\xb4d \xf2x\xf9\x17\x17)."
        b"\x02<\xef\xa7`.\x98Ra`\xb0\x9b\x16\\\xd7s\xbc\x96\x808_i\x8f\xe6"
        b" \xc9\xdd\xa0T^\xc0\xa1\x9e\x8a2\x9av.g\t\xfe\x18\xdc\x04$\xba\x90L"
        b"\xdbJ\xbf\xef)\xd1:\x0b\xd3\xca8\x0boC\x06\x03=\x93=P\xc2\xe0\xfe\xc3"
        b"\xc1K\x95Q)\xe3\xa6D\x7f\x14\x11\x86\xddE3j\x9dn<W9\xca\xfcyX\x18\xad\xf3"
        b"\x05\xfe<\xcd\x92\xdf\x88!\x92\xdc\x1ei#\\~E\xc9\xfas\x15\xc1\xfb\xa0\xa9"
        b"a\xb5\xe3F\xdd\x1dt\xfe<<\xe6\x9aP\x0bu^\xc8:\xa6'\xd6\x83\x8e\xeb"
        b"\t\x9b\xe8\xf8\x9dy%\xa6pl\xa6\xdfF/\xad\\\xa3\x1f7_r_\xcfu14\xfe|e\xb4\x97E"
        b",*\xf9\xa2i\x0e6r\xcb\xc7\x0f\xae}\x99L\xd6\xd4\xf6\x1e7m\xff\x90\x1b"
        b"j\xfb\x9cI\xc4\xcbf\xdc\xbe\x9b\xaaUL0\xd8\xa1\x94~$7y\xe6`\xcf"
        b"\xef\xbe\x0c\x9fm\\\xa6\xe9\xd5t\xde\xbb\xed\x16\x0e\x9f\xe4\xaf^2"
        b"a\xec\x89\x99u\xbc\xb2X\x0e\xda\x9e8\xa9\xb4Z\xbc\xef#\xacg\x94P\xd3\xa3"
        b"]\xb4\xd5lP\x90\xf7z\x166\xb9\x833i\xe1\xcc\x11\x85\x82\xad\xd9C\xae\x82"
        b"{,\xa4L3Tu\xa5G\xf6\xb4\xf5\xf2g\xb5\xc9\x04\x0f8\x0f{Q\x87\xd9\xf7\x17l:"
        b"\x84\x99\x19\xafz\xa7\x06\xd9\x1eI\x0cwZ\x08E\xf6\xf6\xf0\x9a\xbd"
        b"u\xf2\xa0\xed\xb1UK\x1f^Y\xdc\xaa=7J\xb2\xf4\xf5B2c\xd8\xf7s0\xfb&\xdb"
        b"zD\t\xfa{\x9d>d0B\x89\x16\x9d\xfb\x91\xa1-\x01]\xdd@S\xdep\xb4\xa7\xd7\xec"
        b"E\xd8\xa3\xfb\xec\xa1-\\\x9c\xd7@O\x96\xa8\xa6\xbe\xbd\x96\xa3B\xfa\xb2\xcf)"
        b"\xd2~\xdf\xc1a\xd4\x99-}\xc7\xadP\xb1n\xc57\xe4\x8f_\xf00{9\x9c"
        b"\xf4\x00\x13\x9e\x97\x98g\xee\xd4\x83\xa5\xd2\xc4\xee7\x9e\xe6\xa1J\xfb"
        b"\x03?K\xc5\xe5vS[hF\x06\xdd\xb5\xa3\x99\xb9\x8cb{-\x7fZ\xf4L\xec2\xc4v"
        b"\xf3A\x99\xf6\x89<\xa1\xfcZ0\t\x866~\xaagR/\xe2r\xbdr7\\\xaa\x8c\xb1\xd4"
        b"\xf6\x10\x13\x03\x8e\xb7$)\xeb!\xa6B\x07\xe4\xfb\xfc\x91\xec[{d\x8c\\\xc3"
        b"\xfeJRJ\xf0\x187\xf3\xa2\xc3\xb2@xhe\xa7\xca\x18\xa6\xb5L\xa6\xe0F"
        b'\xa6\xa3n\xd7\xd3J"\x91}\xeb\x92\x18f\x16\xf2h\x83{\xde\xab\x99\xc5c\xcf'
        b">\xef}\xf3\xf8^\xb0W\xf1\\\xe7,#Q\x97\xc5s\x9f\xefav\xaf\x15\xf5R\x87\xf8>"
        b"e\xc5\x9bav\x99\xb9\xdf\xf7\x82i\x8d6\xca\x99\xfe)\xb5h\xcfm\xd1#\x95"
        b"\xafZ\xed\x9f\xf7\xe9\xdc\xebh\xeb\xb93\xe4\xd7i\x95a\xf8\xa5\x89"
        b"\xf9\xe6\x1a\xe9h\x05Z\xcf^\x8d\xf3d\x04\xbd\xe9f\xd5\xe1\x8f\xbf"
        b"\xbb^\xdd\x01\xf6\x98\xc4\xb1sS\x99\xeb)\xb0\xe4_\xb9k6K\xcb\xa2\xea\xc7"
        b"Q8\xe8\xee\xe6o1\xda\xd1\x1e7K\xf42\\g\xc8\xac:\xca\x9d\xde\x9dPP\x1a\xecA"
        b"\xa8|T0\xff\xa6i'\x97b\xc1\xa9\xb5\x0f\xe2\xd9\xd5{\xd8a9\x81\xcc\xde"
        b"|\xd0i\x98n\xe6\x81\x89\xe3'$\xeb}\x94\x00E9\xbc\xe8hq\x01\xb2I\xc7*I\xeb"
        b'\xb5)\xfa\xae\xdfl\xb7\xac"\x93\x03\xbd\xdc\x17\xb5@\xafC-\xee\xcd\xa1h\x19'
        b"IX\xa1\x9dl\x0fh3b\x06\xaf\xf8|\xa3y\x1d'\xda\xe8\xefq\xf2\xee\xb6"
        b"6\x05\xb0\xba\xe6\xea\xc0\xd4\x1d\xd8\x0b;\xf5\xf0\x8d\xbdw;\xf9\xfa"
        b"7\xfd\xc5\xd2\xe4 )\x88\xacG:0N]{\xb4\x1c\xbbG\x13,\xb1(\xed1\xa6\x96\x1b"
        b"GcA\xf6;\xd1\xff7\x9b0|\xf8\x86(6\x99\xf8\xe0\x06\x94\n\x9c\xacJ\xad\x10$<"
        b"\x92\x98T\x19\x9d{y\xfc\xa0md2\x93\xb8\xef\x13\xf2V\xf1c\xa3*\xe2\xcf"
        b"\x91\xd8#u\xe3H\xa9\xd6\x97\xa0C\xa5\xfaodp)\xd9\xfe3Y\xbf\xf2\xee"
        b"\x0f\x83\x03+q~\x8f&=\x87\xd5\xb0\x83\xdc\x95GUQ\xe3\x0c\x9c\x1a\xee\xda"
        b"\xed\x89\xb5n\x86\xdfE\x1b't\xd7\rD\xf3\xd1\xf2`o;\x1a`\x13\x01\x83"
        b"\xb99\x8eZ\xe72\xa2\xfb\x19\xe1\x08\xda\xa8\xcc\xf5\xaaZs\x9e\x99t\xedt\xbe"
        b"\x9043\xdf\x01\xb3\xbb;\xf4\x1a\x99\x8e\xa6;\x9b^\xd14\xaa\n\xc7\x0fG\x86"
        b"-t\xdbA\xa3qx\t\xc2\xb5\nF\xde\x102\xa3)\x9e\x0e\xd1J\xf8\xc0tP\x7f-\x12"
        b"j`\xcc\x9e\x18\xf1Z$\xd8If\xb6\xc5\xf0\xba\t\xd4.\xd9\xac\xb3v\x9f:\xa3Jl="
        b"R9\xdd\x9b\xaaT*\x98IKR`^tZF\x9e\xabi\xe2\xd5\x1e\xb3\xc4\xe9\x99\xf8\xb0"
        b"/\x06I_\x9e\xae\xab\xc1\x03m\xebPW\x177\xdaL\x9ai\xc2%\xfd-4\x95W\xbb\xa0"
        b"\xa4\x85\xe5:\xd8\xe4\xbb\xec\xf7]Vx\xe1\xb4y\xeb(\xc6\xfa\x994\x7fqh"
        b"\xba)\xac\x11n\xfb F\xa78v<\x8a\xf0\x9e`Y\xf66\xbeS;\xe8\xb2\\'j\x91"
        b"\xde\xdba\x1a\xbb\xb9\xbcw\x8eKc\xbe\x00_\x1e\x98\xee\xeb\xd0\xcb^9AT"
        b'k\x88\x9e\x96"u}\xef\xd1\x8c\x1aX\xb5\xeek\xb7\xd7^L\xfdRc\xe3\xc0'
        b"\xf5\xf3p\xf1)\xf2b\xd8\xcdz\x95\xbbz\xac\x99h\xc4\\v\xc9\x02Vh6"
        b"\x15K\xfb\x9fC\xa7\xf6q\x8d\xebA\xd7\xf5\xae\xa1\xd9i\x0emaN\xe6\xb1o"
        b"]c\xbd\xb5\xc6\xea\xc5\x8dF \xe9\x1aVl\xf0t\x156Jy\x8cl(\xc8r\x8c`z"
        b"\xcc\xca\xa8\xce\xda\xc5\xfc|t\xd3K\xd9d\x0eL0\xe43(\x9f\xee/{\x80\x9a'\x9b<"
        b"\xb3\x7f|q\xd1\xd5\xd9H\x8d\xcb\xdbinFCd\x14\xaa\x99Qt#_\xb4=\xe5I\x8b"
        b"\x94{\xa5w\xd95\xd8\xaf\xe7\xd6!\x16;\xee\xe0\x82\xe1\x8c\xa7\xb1:6\x06\x88"
        b"\xd4\x8b\xb6\xc7\x99\x99%\xe9\xe4p\xb7\xa6$\xd2\x8a\x87H\xac\x07L"
        b"\x8eM\xf6\x13\xae\x83\xbd\x85B\xbc\xf0\xbes\xccP\x16\xca2\x18X\xee\xder&"
        b"VM\xaa\x8c\x97-?\xe0\xce\x8b\x88<cG\x8f\xb2\x03\xd3tV\xc6W\xe5\xaa"
        b"\xbd6\x89\x19\xcb\xdcz\xb74C\xaf\xea\xb2\xc8\xc6E3C\xc0\xde:tz,\xd2$\x9e\xac"
        b"*\xff\xf3\x91\xbc\x04\xc0\xf3,=yC\xca\xe6\xf1\x9a\xcch\xa7\xcf\xa835\xc4"
        b"L\x8c\xe6\xa64\x806\xe1\xca\xc0\x9a\xb9\xd1\xd6\x9e\x1b\xac\xe15y\xb4\xf4gD"
        b"\\n\xea\xee6V\x8eZ3\x9c\xe8\x07\xcdS}<\xeb\xc0\x18\xe9x\xd1\x91\x8f"
        b"\xa4\xe3\xf3\x07\x8d\xea'\xe2\xbcy\x81\xa9r\xe2\x99Vm\xb0\xb2C\xf36\x08S"
        b"D\xfb\xb6\xbbhg\x12L*\x8d\x0ec\x8f\x16\xd5\xf2\xc2\xd5i\xf3\xe0\x04\xd1V"
        b"\xcc\x8e~\xddT\xae\xd9\x0c\x7f\x9e!\xbch{\x81\x95\xacUv\xe8\x15\xc6J\xf6"
        b"\x8a\xc7A\xc3\x95\x83At\xee\x81\xeb\xba\x98\x8a*\xef\xaf\xb5\xdb\n"
        b"\xc2T\xf7\xa6*\x13\x16\xed\xeda\xdeAK\x17\x8dp\xad\x96\xe6z\xd0P\xa6\x85"
        b"U\x98\x87p\xd1\xebe\xe5\xe8\x02\xa3bus\xeau\xfd\xa7\xfe\xce\xd0\x8b\xb1]"
        b"\xfb$\xf3#,\x04\x90\xceS\xb0<qd\x89(\xf6\xf3.\x9d\xd6\x93\xe9\xf8V_Kw\x93"
        b"&L5{y8\xd9\x13\xf0\x948\xcem\x02\xda\xf3I\xa6\x83\x93\xebR\xb0iZf\x81\xb4"
        b"3\x9e\x83.\x0c3>:\x83\xc9_\xf4\xd2N\x16\xc4\xbc`\x8b0\xce\xea_z\x0fe=\xaf"
        b"\xcc\xfbp\xf5\xa2\xcd)\x9bT;9t\xb0\xa5\xd1\xba\xfbnj2\xd3\x81I\xb3"
        b"\xaf\x80\xb5Ge9Z\x8a\x1b\xf6\x01\xd2\x8c\x00\xba\xf0`\x8cG[\x86)\x96\xcb"
        b"9\x14\x8d\x9b\xf3\xee\x9bl\x99\xfd\xb6bP\xbc\x88\xfaA\x7f\xa2\xae"
        b'\xa2q\x97\xd1\xe21\xdc\xa5\xbc\xd2\xc9\xa5c\xd5\xad@"3G\x1d\xba\x12\x9d`'
        b'x\xf1\x0e\xe47"\n\xbc\xfbE\xf9\xfe\xf7N\xa8\xa4*\xd6\x06<!\x98/t'
        b"\xa3\x9b\x9b\xa4\x94G\x0f\xaaHH\x81m\t;y\x10\x8f&\xdd\xf1:\xef\xd4tU{~G"
        b"2e\x87/A\xf3\xefv\xec\x82\x17M\xa7%3\xee(\xf5\xddJ\x07\xc5gS\xe4\xf2;^"
        b'\x82h\x10\x0f\x16\xc2"\xa7\xf6\xd7$\x0f*\x9b\xf9\xbb\xe3A#hl\x84\xcf<'
        b"!\x8af\xcdoD\x1e\xa8+z\xd1\xf4\xc3P\xc6\x8d\x1e\xbch\x86mv\xaa\x1b\xfb/:\xf1"
        b".t\xcc\xf3\xa2\xad:[6\xdb#\xeb\x19\x1a+\x8d\xc4T,\x1c\xfe\x8b\xa63s0h\xc1"
        b"\xa1\xc98\xc8\xc7\xe1\xd5\xd5\xf4\x85\xa6c\x91\xcc\xe2{\x97<h\x87"
        b"/\xc2\xeb\xa2\xdf_I\xfa\xca\xe6\xf1{t\xb2!Rw6\x10\x95Q\xc3\x1e2\x93#\xf2\x9e"
        b"`\xb5\xb7\xdb\x13\x83i/\x9d0\xa4\x08\x1f\xf8-\x14N\x08\x98\xc9\x7fi\x19\xf9"
        b"\x02\xd39Z(f|\xaf\xb2\x10\xea`\x82'C\x00\xcf\xb6\t~Z\xc4\xcf\x1d\t\x19\x16}"
        b"%\xb5w\xf5\x0bM5\x87E)\xca/\xba-;\xec\xa2i}\xb0\nOG\xde\xd9\xa6\x950"
        b"\xcd2\xc7{\x95t[\xcej\x1b|\xd0([\xa6\x0c\xc1j\xf7\x00\xed9\x13f\xc3\xbb}3"
        b"4\x85\xa9*\xcc\xc9I\x17M\xc7\x1e\x13\x8d\x9f\x00&h\x8b)\xdaX\x82\xbd\xef"
        b'\xbe\xe2\xd3$\xbc\x93G\xaf\xfc"5\x1c\xdbH\xa2\xbe\x08Y\x87\xe5'
        b'\xe3\xc1\x96\x1f"X\xb6\xd1\xf0\xafy9\xa2\xd7\x87\xa6\x06\xa1_\x8b'
        b"\x7f\x10\x0b<h\x0b E\xabgy\xd0\x0c9^q\xeb\xd6\xd3E\x8f%\xa4\x1fC&Y\x83"
        b'\xd6\x92\xf4_Vf_qk{\x8f\xf0A\xd7\xfdDz8Z\x04\x01`I7Z\xa9\x1f\xa6$\x13"5'
        b"\xa93\x8c\xa7\x01\xd5\xc4\x05\x86\x12\xb2Mk\xdb\x7f\xff\xff\x7f\x03\xd0"
        b"\x8f\x80i"
    )
)


class Provider(factory.DjangoModelFactory):
    class Meta:
        model = models.Provider
        django_get_or_create = ["name"]

    name = factory.Iterator(
        ["Lime", "BlueLA", "Metro Bike", "LongProviderNameCompanyLtdSarlGmoLgbtq"]
    )
    base_api_url = ""
    api_configuration = factory.Dict({"trailing_slash": False})
    api_authentication = factory.Dict({"type": "none"})
    agency_api_authentication = factory.Dict({"type": "none"})
    colors = {}


class Device(factory.DjangoModelFactory):
    class Meta:
        model = models.Device

    provider = factory.SubFactory(Provider)
    identification_number = factory.Sequence(str)
    model = factory.Iterator(["bicycle-A", "car-B"])
    category = factory.Iterator(choice.name for choice in enums.DEVICE_CATEGORY)
    propulsion = factory.Iterator([choice.name] for choice in enums.DEVICE_PROPULSION)

    dn_gps_point = factory.LazyFunction(lambda: utils.get_random_point(district10))
    dn_gps_timestamp = factory.LazyFunction(timezone.now)
    dn_status = factory.Iterator(choice.name for choice in enums.DEVICE_STATUS)


class Area(factory.DjangoModelFactory):
    class Meta:
        model = models.Area

    label = ""

    @factory.post_generation
    def polygons(self, create, extracted, **kwargs):
        if not create:
            return  # build, can't record many to many relationship
        if extracted:
            for polygon in extracted:
                self.polygons.add(polygon)
        else:
            polygon = geos.Polygon(
                ((0.0, 0.0), (0.0, 50.0), (50.0, 50.0), (50.0, 0.0), (0.0, 0.0))
            )
            geom = geos.MultiPolygon(polygon)
            poly = Polygon(geom=geom)
            self.polygons.add(poly)

    @factory.post_generation
    def providers(self, create, extracted, **kwargs):
        if not create:
            return  # build, can't record many to many relationship
        if extracted:
            for provider in extracted:
                self.providers.add(provider)
        else:
            self.providers.add(Provider())


class Polygon(factory.DjangoModelFactory):
    class Meta:
        model = models.Polygon

    label = ""
    geom = geos.MultiPolygon(district10)
    properties = {}


class EventRecord(factory.DjangoModelFactory):
    class Meta:
        model = models.EventRecord

    device = factory.SubFactory(Device)
    timestamp = factory.Sequence(
        lambda n: timezone.now() - datetime.timedelta(minutes=n)
    )
    point = factory.LazyAttribute(
        lambda f: geos.Point(
            f.properties["telemetry"]["gps"]["lng"],
            f.properties["telemetry"]["gps"]["lat"],
        )
    )
    saved_at = factory.SelfAttribute("timestamp")
    event_type = factory.Iterator(c.name for c in enums.EVENT_TYPE)
    properties = factory.Dict(
        {
            "trip_id": None,
            "telemetry": factory.Dict(
                {
                    "timestamp": 1_325_376_000_000,
                    "gps": factory.Dict(
                        {
                            "lat": 0.0,
                            "lng": 3.0,
                            "altitude": 30.0,
                            "heading": 245.2,
                            "speed": 32.3,
                            "accuracy": 2.0,
                        }
                    ),
                    "battery_pct": 0.5,
                }
            ),
        }
    )


class ProviderStatusChange(factory.DictFactory):
    """Excepted status change from the provider API."""

    provider_id = factory.Faker("uuid4")
    provider_name = factory.Iterator(["Lime", "BlueLA", "Metro Bike"])
    device_id = factory.Faker("uuid4")
    vehicle_id = factory.Sequence(str)
    vehicle_type = factory.Iterator(c.name for c in enums.DEVICE_CATEGORY)
    propulsion_type = factory.Iterator([c.name] for c in enums.DEVICE_PROPULSION)
    event_type = factory.Iterator(PROVIDER_EVENT_TYPE_REASON_TO_EVENT_TYPE.values())
    event_type_reason = factory.Iterator(PROVIDER_REASON_TO_AGENCY_EVENT.keys())
    event_time = 1_529_968_782_421
    event_location = factory.Dict(
        {
            "type": "Feature",
            "properties": factory.Dict({"timestamp": 1_529_968_782_421}),
            "geometry": factory.Dict(
                {
                    "type": "Point",
                    "coordinates": factory.LazyFunction(
                        lambda: list(utils.get_random_point(district10).coords)
                    ),
                }
            ),
        }
    )
    battery_pct = 0.5
    associated_trip = None


class ProviderStatusChangesBody(factory.DictFactory):
    """Expected response from the provider API."""

    version = "0.3.0"
    data = factory.Dict(
        {"status_changes": factory.List([factory.SubFactory(ProviderStatusChange)])}
    )
    links = factory.Dict({"next": None})


class Rule(factory.DictFactory):
    # TODO(hcauwelier) generated values
    name = "Venice Beach Special Operations Zone Global Cap"
    rule_id = "81b1bc92-65b7-4434-8ada-2feeb0b7b223"
    rule_type = enums.POLICY_RULE_TYPES.count.name
    geographies = ["e0e4a085-7a50-43e0-afa4-6792ca897c5a"]
    statuses = {"available": [], "reserved": [], "trip": []}
    vehicle_types = ["bicycle", "scooter"]
    maximum = 750
    value_url = (
        "https://api.ladot.io/compliance/count/" "81b1bc92-65b7-4434-8ada-2feeb0b7b223"
    )


class Policy(factory.django.DjangoModelFactory):
    class Meta:
        model = models.Policy
        django_get_or_create = ["name"]

    class Params:
        published = factory.Trait(
            published_date=factory.SelfAttribute("start_date"),
            geographies={
                "e0e4a085-7a50-43e0-afa4-6792ca897c5a": {
                    "type": "Feature",
                    "geometry": {
                        "type": "GeometryCollection",
                        "geometries": [
                            json.loads(
                                geos.MultiPolygon(
                                    geos.Polygon(
                                        (
                                            (0.0, 0.0),
                                            (0.0, 50.0),
                                            (50.0, 50.0),
                                            (50.0, 0.0),
                                            (0.0, 0.0),
                                        )
                                    )
                                ).geojson
                            )
                        ],
                    },
                    "properties": {"id": "e0e4a085-7a50-43e0-afa4-6792ca897c5a"},
                }
            },
        )

    name = factory.Sequence("Policy #{}".format)
    start_date = factory.LazyFunction(timezone.now)
    config = factory.Dict({"rule_type": enums.POLICY_RULE_TYPES.count.name})
    rules = factory.List([factory.SubFactory(Rule)])

    @factory.post_generation
    def providers(self, create, extracted, **kwargs):
        if not create:
            return
        if extracted:
            for provider in extracted:
                self.providers.add(provider)

    @factory.post_generation
    def prev_policies(self, create, extracted, **kwargs):
        if not create:
            return
        if extracted:
            for policy in extracted:
                self.prev_policies.add(policy)


class ComplianceFactory(factory.django.DjangoModelFactory):

    policy = factory.SubFactory(Policy)
    vehicle = factory.SubFactory(Device)
    rule = factory.Faker("uuid4")
    geography = factory.Faker("uuid4")
    start_date = factory.LazyFunction(timezone.now)
    end_date = factory.LazyAttribute(
        lambda compliance: compliance.start_date + datetime.timedelta(days=30)
    )
    lag = datetime.timedelta(0)

    class Meta:
        model = models.Compliance
