From 303d3dcad3d2a5bf7a903802bd7944e6df29f4e5 Mon Sep 17 00:00:00 2001 From: Xun Jiang Date: Thu, 18 Nov 2021 22:25:37 +0800 Subject: [PATCH] feat: migrate kubebuilder from v2 to v3 1. remove config/crd/v1beta1 2. remove PROJECT file 3. update controller-gen and kubebuilder version 4. generate client and CRD file 5. add changelog and remove v1beta1 CRD generated code. 6. add kubebuilder test bundle setup command. 7. due to apiextensions.k8s.io/v1beta1 is not supported, only k8s after v1.16 is supported, so remove v1.15 check. 8. add CRD and k8s suppored version update in changelog. Signed-off-by: Xun Jiang --- .github/workflows/crds-verify-kind.yaml | 1 - PROJECT | 7 - changelogs/unreleased/4382-jxun | 4 + config/crd/v1/bases/velero.io_backups.yaml | 2 +- .../velero.io_backupstoragelocations.yaml | 2 +- .../bases/velero.io_deletebackuprequests.yaml | 2 +- .../v1/bases/velero.io_downloadrequests.yaml | 2 +- .../v1/bases/velero.io_podvolumebackups.yaml | 2 +- .../v1/bases/velero.io_podvolumerestores.yaml | 2 +- .../bases/velero.io_resticrepositories.yaml | 2 +- config/crd/v1/bases/velero.io_restores.yaml | 3 +- config/crd/v1/bases/velero.io_schedules.yaml | 2 +- .../bases/velero.io_serverstatusrequests.yaml | 2 +- .../velero.io_volumesnapshotlocations.yaml | 2 +- config/crd/v1/crds/crds.go | 22 +- .../crd/v1beta1/bases/velero.io_backups.yaml | 439 ---- .../velero.io_backupstoragelocations.yaml | 179 -- .../bases/velero.io_deletebackuprequests.yaml | 73 - .../bases/velero.io_downloadrequests.yaml | 96 - .../bases/velero.io_podvolumebackups.yaml | 162 -- .../bases/velero.io_podvolumerestores.yaml | 145 -- .../bases/velero.io_resticrepositories.yaml | 89 - .../crd/v1beta1/bases/velero.io_restores.yaml | 1765 ----------------- .../v1beta1/bases/velero.io_schedules.yaml | 401 ---- .../bases/velero.io_serverstatusrequests.yaml | 89 - .../velero.io_volumesnapshotlocations.yaml | 74 - config/crd/v1beta1/crds/crds.go | 69 - config/crd/v1beta1/crds/doc.go | 4 - hack/build-image/Dockerfile | 18 +- hack/crd-gen/v1beta1/main.go | 136 -- hack/update-generated-crd-code.sh | 35 +- hack/verify-generated-crd-code.sh | 17 +- .../versioned/fake/clientset_generated.go | 5 +- .../clientset/versioned/fake/register.go | 2 +- pkg/generated/listers/velero/v1/backup.go | 5 + .../velero/v1/backupstoragelocation.go | 5 + .../listers/velero/v1/deletebackuprequest.go | 5 + .../listers/velero/v1/downloadrequest.go | 5 + .../listers/velero/v1/podvolumebackup.go | 5 + .../listers/velero/v1/podvolumerestore.go | 5 + .../listers/velero/v1/resticrepository.go | 5 + pkg/generated/listers/velero/v1/restore.go | 5 + pkg/generated/listers/velero/v1/schedule.go | 5 + .../listers/velero/v1/serverstatusrequest.go | 5 + .../velero/v1/volumesnapshotlocation.go | 5 + pkg/install/resources.go | 6 - 46 files changed, 120 insertions(+), 3796 deletions(-) delete mode 100644 PROJECT create mode 100644 changelogs/unreleased/4382-jxun delete mode 100644 config/crd/v1beta1/bases/velero.io_backups.yaml delete mode 100644 config/crd/v1beta1/bases/velero.io_backupstoragelocations.yaml delete mode 100644 config/crd/v1beta1/bases/velero.io_deletebackuprequests.yaml delete mode 100644 config/crd/v1beta1/bases/velero.io_downloadrequests.yaml delete mode 100644 config/crd/v1beta1/bases/velero.io_podvolumebackups.yaml delete mode 100644 config/crd/v1beta1/bases/velero.io_podvolumerestores.yaml delete mode 100644 config/crd/v1beta1/bases/velero.io_resticrepositories.yaml delete mode 100644 config/crd/v1beta1/bases/velero.io_restores.yaml delete mode 100644 config/crd/v1beta1/bases/velero.io_schedules.yaml delete mode 100644 config/crd/v1beta1/bases/velero.io_serverstatusrequests.yaml delete mode 100644 config/crd/v1beta1/bases/velero.io_volumesnapshotlocations.yaml delete mode 100644 config/crd/v1beta1/crds/crds.go delete mode 100644 config/crd/v1beta1/crds/doc.go delete mode 100644 hack/crd-gen/v1beta1/main.go diff --git a/.github/workflows/crds-verify-kind.yaml b/.github/workflows/crds-verify-kind.yaml index 41ba94440..45b6d71a9 100644 --- a/.github/workflows/crds-verify-kind.yaml +++ b/.github/workflows/crds-verify-kind.yaml @@ -57,7 +57,6 @@ jobs: matrix: # Latest k8s versions. There's no series-based tag, nor is there a latest tag. k8s: - - 1.15.12 - 1.16.15 - 1.17.17 - 1.18.15 diff --git a/PROJECT b/PROJECT deleted file mode 100644 index 88609cdaa..000000000 --- a/PROJECT +++ /dev/null @@ -1,7 +0,0 @@ -domain: io -repo: github.com/vmware-tanzu/velero -resources: -- group: velero - kind: BackupStorageLocation - version: v1 -version: "2" diff --git a/changelogs/unreleased/4382-jxun b/changelogs/unreleased/4382-jxun new file mode 100644 index 000000000..c2dd49743 --- /dev/null +++ b/changelogs/unreleased/4382-jxun @@ -0,0 +1,4 @@ +feat: migrate velero controller from kubebuilder v2 to v3 +From Velero v1.8, apiextesions.k8s.io/v1beta1 is no longer supported, +which means only CRD of apiextensions.k8s.io/v1 is supported, +and the supported Kubernetes version is updated to v1.16 and later. \ No newline at end of file diff --git a/config/crd/v1/bases/velero.io_backups.yaml b/config/crd/v1/bases/velero.io_backups.yaml index 9aeeb5d98..fec76fbee 100644 --- a/config/crd/v1/bases/velero.io_backups.yaml +++ b/config/crd/v1/bases/velero.io_backups.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: backups.velero.io spec: diff --git a/config/crd/v1/bases/velero.io_backupstoragelocations.yaml b/config/crd/v1/bases/velero.io_backupstoragelocations.yaml index bdef97594..24ac9e945 100644 --- a/config/crd/v1/bases/velero.io_backupstoragelocations.yaml +++ b/config/crd/v1/bases/velero.io_backupstoragelocations.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: backupstoragelocations.velero.io spec: diff --git a/config/crd/v1/bases/velero.io_deletebackuprequests.yaml b/config/crd/v1/bases/velero.io_deletebackuprequests.yaml index d267d7310..761036ddb 100644 --- a/config/crd/v1/bases/velero.io_deletebackuprequests.yaml +++ b/config/crd/v1/bases/velero.io_deletebackuprequests.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: deletebackuprequests.velero.io spec: diff --git a/config/crd/v1/bases/velero.io_downloadrequests.yaml b/config/crd/v1/bases/velero.io_downloadrequests.yaml index ed98240fd..17517342b 100644 --- a/config/crd/v1/bases/velero.io_downloadrequests.yaml +++ b/config/crd/v1/bases/velero.io_downloadrequests.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: downloadrequests.velero.io spec: diff --git a/config/crd/v1/bases/velero.io_podvolumebackups.yaml b/config/crd/v1/bases/velero.io_podvolumebackups.yaml index 1e318061b..80364ecbe 100644 --- a/config/crd/v1/bases/velero.io_podvolumebackups.yaml +++ b/config/crd/v1/bases/velero.io_podvolumebackups.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: podvolumebackups.velero.io spec: diff --git a/config/crd/v1/bases/velero.io_podvolumerestores.yaml b/config/crd/v1/bases/velero.io_podvolumerestores.yaml index 444c1fc98..2ca79c571 100644 --- a/config/crd/v1/bases/velero.io_podvolumerestores.yaml +++ b/config/crd/v1/bases/velero.io_podvolumerestores.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: podvolumerestores.velero.io spec: diff --git a/config/crd/v1/bases/velero.io_resticrepositories.yaml b/config/crd/v1/bases/velero.io_resticrepositories.yaml index 4a67f1ee8..65ff08eb3 100644 --- a/config/crd/v1/bases/velero.io_resticrepositories.yaml +++ b/config/crd/v1/bases/velero.io_resticrepositories.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: resticrepositories.velero.io spec: diff --git a/config/crd/v1/bases/velero.io_restores.yaml b/config/crd/v1/bases/velero.io_restores.yaml index 56192b814..09df605e5 100644 --- a/config/crd/v1/bases/velero.io_restores.yaml +++ b/config/crd/v1/bases/velero.io_restores.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: restores.velero.io spec: @@ -892,6 +892,7 @@ spec: by services. type: string protocol: + default: TCP description: Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP". diff --git a/config/crd/v1/bases/velero.io_schedules.yaml b/config/crd/v1/bases/velero.io_schedules.yaml index fd76c5c3a..afb7b14a0 100644 --- a/config/crd/v1/bases/velero.io_schedules.yaml +++ b/config/crd/v1/bases/velero.io_schedules.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: schedules.velero.io spec: diff --git a/config/crd/v1/bases/velero.io_serverstatusrequests.yaml b/config/crd/v1/bases/velero.io_serverstatusrequests.yaml index 7ac36c8e8..7efbd9694 100644 --- a/config/crd/v1/bases/velero.io_serverstatusrequests.yaml +++ b/config/crd/v1/bases/velero.io_serverstatusrequests.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: serverstatusrequests.velero.io spec: diff --git a/config/crd/v1/bases/velero.io_volumesnapshotlocations.yaml b/config/crd/v1/bases/velero.io_volumesnapshotlocations.yaml index 4a63234c3..56ef139d2 100644 --- a/config/crd/v1/bases/velero.io_volumesnapshotlocations.yaml +++ b/config/crd/v1/bases/velero.io_volumesnapshotlocations.yaml @@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: volumesnapshotlocations.velero.io spec: diff --git a/config/crd/v1/crds/crds.go b/config/crd/v1/crds/crds.go index 29a5d369b..fde97d2ca 100644 --- a/config/crd/v1/crds/crds.go +++ b/config/crd/v1/crds/crds.go @@ -29,17 +29,17 @@ import ( ) var rawCRDs = [][]byte{ - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec<]o#9r\xef\xfe\x15\x05\xe7a\xee\x00K\xbeŽ\x04~\x9b\xf5x\x11a7sƎ\xe3<\x04y\xa0\xbaK\x12\xcf\xddd\x87dˣ\x04\xf9\xefA\x15\xc9\xfeR\u007fP^\xcf\xdd^0|\x99q\x8b,\x16\xab\x8a\xf5\xc5\"\xafV\xabՕ\xa8\xe43\x1a+\xb5\xba\x03QI\xfc\xeaP\xd1_v\xfd\xf2\xcfv-\xf5\xed\xf1\x87\xab\x17\xa9\xf2;\xb8\xaf\xad\xd3\xe5\xafhum2\xfc\x84;\xa9\xa4\x93Z]\x95\xe8D.\x9c\xb8\xbb\x02\x10Ji'賥?\x012\xad\x9c\xd1E\x81f\xb5G\xb5~\xa9\xb7\xb8\xade\x91\xa3a\xe0q\xea\xe3\x9f\xd6\u007f^\xff\xe9\n 3\xc8ßd\x89։\xb2\xba\x03U\x17\xc5\x15\x80\x12%\xde\xc1Vd/ue\xd7G,\xd0\xe8\xb5\xd4W\xb6\u008c\xe6\xda\x1b]Ww\xd0\xfe\xe0\x87\x04<\xfc\x1a~\xe4\xd1\xfc\xa1\x90\xd6\xfd\xdc\xf9\xf8\x8b\xb4\x8e\u007f\xa8\x8aڈ\xa2\x99\x89\xbfY\xa9\xf6u!L\xfcz\x05`3]\xe1\x1d|\xa6)*\x91a~\x05\x10\x96\xc3S\xae\x02\xc2\xc7\x1f<\x84쀥\xf0\xb8\x00\xe8\n\xd5\xc7\xc7\xcd\xf3\x9f\xbf\xf4>\x03\xe4h3#+\xc7D\U00048074 \xe0\x99\x97\x05&\x90\x1f\xdcA80X\x19\xb4\xa8\x9c\x05w@\xc8D\xe5j\x83\xa0w\xf0s\xbdE\xa3Сm@\x03dEm\x1d\x1a\xb0N8\x04\xe1@@\xa5\xa5r \x158Y\"\xfc\xe1\xe3\xe3\x06\xf4\xf6\xaf\x989\vB\xe5 \xacՙ\x14\x0es8\xea\xa2.я\xfd㺁Z\x19]\xa1q2\xd2ٷ\x8eTu\xbe\x0e\x96\xf7\x81(\xe0{AN\xe2\x84~\x19\x81\x8a\x98\a\xa2\xd1z\xdcA\xdav\xb9,!=\xc0@\x9d\x84\nȯ\xe1\v\x1a\x02\x03\xf6\xa0\xeb\"')<\xa2!\x82ez\xaf\xe4\u007f7\xb0-8͓\x16\xc2a\x10\x80\xb6I\xe5\xd0(Q\xc0Q\x145\xde0IJq\x02\x834\vԪ\x03\x8f\xbb\xd85\xfc\xab6\bR\xed\xf4\x1d\x1c\x9c\xab\xec\xdd\xed\xed^\xba\xb8\x9b2]\x96\xb5\x92\xeet\xcb\x1bCnk\xa7\x8d\xbd\xcd\xf1\x88ŭ\x95\xfb\x950\xd9A:̈\x91\xb7\xa2\x92+F]\xf1\x8eZ\x97\xf9?E\x01\xb0\x1fz\xb8\xba\x13\t\xa3uF\xaa}\xe7\a\x96\xfa\x19\x0e\xd0\x06\xf0\xf2\xe5\x87\xfaU\xb4\x84\xa6OD\x9d_\x1f\xbe\xe9_\xd1:\x99\r{\r\x90\xfa4:(\"\x85\x16^\x0f\xe8\x0ehH~\xf8\aޒg0\x81Yj1\xe7\x1d)^\x10D\xc0\x9e\xb7vQ@\xa5\xa3\x16\xb2\xb0=Ed\xd7g\x90~\xfe\x84\xf9\x1cy M\xf2\xce\x16\xf2q\x80lw\xea\xe0\x94\xa7.#\xb8>M|\xe3S\x1a7 \xe0\x05O\xdec\x11\n\x889\x82&\x9a\x88tΉù\x15\x16\xb2\x17<1\x98\x90,Y\x1c\x9d*\n\xbe\xbd\xe0)\xa5ۀ\x80\x84\x93\xb4!\tD\x94\xa4\x0fL\b\x8e\xadӉ\a\x9c\xf8\x8a\xbahyq\x90\xaeHb\x8b\xb4\u007f\xc32\x1b\xb6u\x92\x86\xcc\xd8\x0fֳ\x88v\xc1AV\x89\v%3\a\x16y\xb7\xc4\xd4׳(d\xdeL\xe4\xe5~\xa3\xa6\xbd\xe1~\xfb\xac\xddF\xdd\xc0\xc3WiC\xf6\xf1\x93F\xfbY;\xfe\xf2M\xc8\xe9\x11\u007f\x031\xfd@\xde^ʫm\xa2C7\x87\x96 ܾm|\x84װGZ\xd8(\x8a[\x02=8#\ua9db\xb7\x0f\xfdV֖\x93dJ\xab\x15\x9b\xca\xf5\xd8L\x9e؉ \xb5\xe9q\xe4\x1c\xb5fR?a\"\xd8'\xb2$~\xbc\xcf\xf1\x16\"\xc3\x1c\xf2\x9a\x89əI\xe1p/3(\xd1\xec\xe7\fG\xb7U\xa4\xdf\xd3PHԺ\xbe](ai\xa6=\xb6\xa0\xba\xf3edV\xb4s\x13zEf/v\x9dHHNw]^\x11\x9bX\xf6?\x16\xa9+\xf2\x9cϒD\xf1x\x81ƿ\x80\x17\xe7\xb6\xdf#\xe6-d)8\xc9\xf8?d\xe6X\xa0\xff\x17*!M\xc2\x1e\xfe\xc8GC\x05\xf6Ɔ,Vw\x1a\x9aAZ \xfe\x1eEq\x9e\xea\x1eY\x9c&݂\x857\xe4zw\xe6\xb1\xdc\xc0\xebA[oSw\x12GS\xaa\xfd&-\\\xbf\xe0\xe9\xfa\xe6L\x0f\\oԵ7\xf0\x17\xab\x9b\xc6[Ъ8\xc15\x8f\xbd\xfe-NP\xa2$&u\xe3#\xb8TW\x99b\xc9\xe8\t\xd0\xc0\xe6܉\xdc\xdc9\xac\x93\xe4\xb0\xd2\xd6%\xa3\xf2\xa8\xad\xf3\x99Ş[zI\x16\v\xbc\f\x85\xec\x15\x88\x9d?\xf9\xd3&\x9e\xe9\x90\xda\x1b$\\\x89kv^\xc3\x12\x1b\x9b\x8c\x98\aJ\x81\xd5u\xbb\x83\xbd>\xbd\xf6\a=<\x89\xc8عX\x84[\x19\x9d\xa1\xb5\xf3\"\x92\xa0\xad\x17\x92\x84M\x82P\xf8\x00\xc6\x1f\x98\xcc'%cKwH\x89H\x17\xba\xf2\x0f_;\xd9K\xda\xfc\xf4\xf7\x92\xf0]\x8a\x17\xf0\x9e-K1<\x19LB\xf1ޏ\x8c\xdb$\x00\xf2\xa1\x81\xd9\u05fc\xd5\xd3=\xc8 H\xbf\a3]J\xb5\xe1\t\xe0\x87w7덒ķ8\xee\xf7qlK\xf4\xe6\x03\xef\xdeT\x8fHs\xe6\xde`\x8fs\xe7ynr\x14\x13A*\xed\xba\xe9\x04\x82[\xe9\xfc\x83\x85\x9d4\xd6u\x11M\x15\x8aza\xf7\xb7\xed\xd2\xc8I=\x18\xf3\xa6\xc0\xe9/~d'\x91uЯ\xf1|u\xf20s\xac\xf1\xa1\x10\x82܁t\x80*ӵ\xe2\xf4\vmu\x9e³\xc0+\xe8d\x92\xa5)\bj\xa8\xea2\x8d\x00+\x96:\xa9f\xf34\xdd\xee?\tY|\v\xb69Y\xa2\xaeg\rg\xdbzl{\xf2#{\a\xe5\xa5\xf8*˺\x04Q\x12\xe9SÞ\x9d/\x8e\xe9q\x1c^\x85tl9\b.\x9b\x11\xa7iSU\x05\xba\xd4\x1d\xb9ŝ6\xbc\x9f\xaḏ1\xccA\n\xb4\x02\x01;!\x8b\xda$jȋh{I\xac\x11\x94\xc5\xfb\x05\x11i\x93\xaf\x98\x14\t\x89\xd8Dgq^[W&\xddU|4\x98\xe6\x9e-%\xa5\xa3{V\x19I\xb2\xa4\xdf\xdbC\v\"&\xd4黋v־\xbbh\v\xed\xbb\x8b6پ\xbbh\xcb\xed\xbb\x8b\x16\xdaw\x17-\xb6\xef.\xdaw\x17m\xaeۜ\xb6^\xc2\xc8W\xdcO\xfc\xb8\x88E\xc2\xf1\xf4\x1c\x8a3\xf0C5Ž\xaf\xbeO\xad\xb0܌\x8f\x1a\xa9\xab\re\xfd+\xbe\x910&\x01m\xd1EkJ\x9a\x92K\xda Q\xbc}\x01\xf1B\x11fR9\xe5x\xf5mJ\xc1\xcfR\x99O\xbfδ)\xb3\x89\x85\xa6:N2B\x87x\xb3\x81\xdc\xden\rI\xbf^\x87\xfd܈\xe9߽\x065\xa1\x14g\xa1\x00g\xbe0w\x8e^\x83УO0\xd3+\x18\xfd\xdd\xd0k\xa1Jf\xba6&\x9c\x04\xa1\x13\xc7\x1f\xd6\xfd_\x9c\x0e\x952\xf0*\xddad)\xaf\aT|\x86\xa5\xf6ݲ\xd7(o\xe1\x8aɐ\x8e\xa0\r(Y09g\xa4\xb5G^\xf8K\xe5C\xb8\x8b\xf7\xe5|\xf8\x91VK\xf3\xe6\n\x9a~\x85̄\x8a\xbe\xf4\xc8(\xbdP8\xbdFf\xbe\xa8\xe5\x92ʘa\xdd\xcb$\xd0\xe5z\x98\x94\xc8q\xa1\xf6\xe5\r\x15/\x89Վ\xbf\xf9`,\xa5\xa6\xe5M\x95,\x8b\x05\x81\x89\xf5+\xfdʔy\x90\x17T\xad$\x11g\xb9B\xe5⺔P\a2\xbb\x8e\xe4j\x94\x91:\x93Y\xc0\x935(s\xd5%\vY\xa9\xf3ʓ\xf4\x9a\x92Y\xd0\\o\xb2\\I\xf2~\xf5\xa2\xef\xe1\x03O\xab\x9a\xc5j\x90E\x1fy\x1e\xbf\xc5z\x8fK\xaa<\x16)\xf6Ɗ\x8e\xa6bcb\xdeK\xeb8\xfau\x1a\x13@S\xaa7&\xaa3& \xce\xd6l\xa4\xd6dL\xc0^0\xbb\xb3R2\xf3\xe3\xf8EHX\xb4o\xc5\xdfJ\xa2\u07ba0mr4\xb3\x1ez*\x9a\xb3(\xf63^\x839\ae\xf6\xf1\xe2$\xf5\xeaz\xfdc,\xd7MIx\x06?K\x95{9!A\xef\xf8\t|Q\x98\x8bb\x1aw\xa5\xf5\xf7Ɓ\x0e\"\r\x8b\x950|\x93|{\xf2\xd9\n\xbb\x86\a\x91\x1d\xfa\x1d\xe1 ,Ť\xe5\xa8\x1bv݄i\xb7q\x14}\xb9^\x03\xfc\xa4\x9bH\xb8{\xcd\xcaʲ*NP[\x84\xeb\xfe\x90\xb7\xc5\x1c\xa3\x12`\x95\xa8\xecA\xc7;\xb0\vaǗ~\uf448>ހ\xcd\n]\xe7\r\xf4\t\xe6\tu\x82\xc7g\xf6}\xf8\xee`\xd6ޣ\f\xfeM\x8c$\x86\xd7,\u007f|\xff\b\xdf:m\xc4\x1e\u007f\xd1\xfe2\xf2\x12%\xfa\xbd{7у\x0e\x8b\x19\xb7X\x90%F\x88\x10\xaeE\x0f\x80\xb5\x89\xf4\xb0\x1b\xda\xe4\aa9\xa6\xdef\xf6\x9fs\xc5\xc2b\x9e\x9e~\xf1\vp\xb2\xc4\xf5\xa7\xdagSV\x950\x16\x89\x9aqa~Ж\xfe{Яc\nO\x875\xff8\xc4\xdb '\xeb9is\x11\xf6\xfe\xdat\x14\xbcH\xa2%A}\x1e\x1f\xd5\t\xf4:L\xf2\xbb\\\x8f\x9dKL\xc1\xe9\xbc.A\x81\xb5/\xb6{\u07fb\xbfS\x1e\xcb\xd4\xfd{'\\m\x97o\xe0s\xb7\xf8\xdeF8\xf2\xa9\r_\xdc\xf5 \xfcE\xd77]\xc2\x0f\x19\xea\xde\x1b(\xf3|\xba?\x1f\xc1/]\x98ܣƹ\xf1\xe66\xfd\xab\xb0M\x16|\xd4ķ\xe0\xfcH\xf6\xa0\t\x1a\xe6\x80GT\xa0\x15'\xbd\xf9J\xac\u007f\x8de8f,\x99ԁ\x12\xb2\xeauUh\x91\xc7\x1d\x1emVx\xc1\xe3\x89\xf5\x979\xa2\xf9`g`\xf2\x8b\x01;mƈp\xae0\xbda\xb9\x83\\8\\\x8d\x02M\xd2}\xa3\xc2\xc6\xe7C\x8b\xf7湓\xdfA|\xb8\x14\x1f7\xf0\xa7K%Z+\xf6\xf1\xc2\xfc+)\xb0=*d\xbb9\xb2\xfe\x10ϴ\xa7\x11\xfd\xeb\xe2>\xa5\"2W\x8b0A\xcc&uz}\x183+\x85\xde\xc3N\x16\xdc5<\xed\x114\xfb\x94ڑ\xca\xe1\x1e\x87\xee*~\xad\xa4I\xb1\x04\x0fMG\xa2\r\xe7\xd3X\x1b\xb4O\xe0`!\xf7\x92\xd4(1{/\xccV\xecq\x95\xe9\xa2@.]8\xc7\xeb[\xf2\xda\xc3\x1e}\xe2\xe6li?u\xfbF\u007f*\b\xbb\x87\x13_\xbc\xb9\t\x16z\xdcA-\xc5_\xb5\xb9\x81R*\xfa\x87\xdc0\x8eL\xe3\xe0\x8b\xec\x01\xbf.\xb0\x80\xf7#\xf5i\x0e\xb4;\xda\r\xa3\x98M\xf9\x0f㇘+\xf8\x8c\xe7\xe6ΟKbι\x97\xb1w}\xa8\xcbF=\x1a\xbd\xa7\xd0i\xe4\xc7\xfb\xa8\xcbF~{\x14\xc6IQ\x14'?\xc9\xe4\xec#?|B\xd2&\x93&e\x9c\xac\x01\xcb%ʆnm\x9c&\x95\x97\x04>Q\xdc\xea\xda\xf56h\xbb\xc1G\xc4\"ι\x86\xcf\xdaaL\xe3\xc9>L\xb2\xabh\xdd\nw;m\x9c\x0f\vW+\x90\xbb`\xa2F\xe0\x92\x86\xe7Ե\u007ff\a\xa4k\xd3'\xad\xf4\xb2\xf7iPX\x96^Ǐ\xfd\xf0\xe9\x92\xc82\xf2\x80\xf0\xd6:Q\x8ch\x8dߔ\xadf_\x80\xa4\x0f\xf3\u007f\x1b1\x8eg\x04\xdft\xfb7%\xfeu\xb9\xf5\xd1\x11\x83\xf3\x94\xe3\xd3\u007f\xaf1\x8b\xa9<\xca\x16Q\xc1\xab\x91Α\x96\xea\xe6\xf6\xc1\x91^*\n\xb0\x1avb\xe2A\x879}ɿk'\x8a\xcdtN\xa9\xeft6\x9d\xe3\xb2x\xf8\xf9\xe24\xb1e\xcb$\x98X\x96\xaf.\x936\x8e%Vf\a\xa1\xf6$TF\xd7\xfbC\x94\xcb\t{3\x95\x89\xaf\t)\xa8\x8azO\xa2\x1er\xe3\xae6\xaa\x13\x17\x87ly\xdeAWd/\x93\x98\x86\xec`|\xea\xed6<Ѱ\xda\x19]\xae\x02/8op\x13\xe2U#59e\x14]M\x00m\xefB\xb3\x18T\x15*\x106\xe0\x93P\xfa6\xcfֹ\xe0\xd1\t\xe3R]\xbd/\xbd\xce\v^\x1eC\x1e\xc7\xf7K\x88\xc6}\t\xe0\xfd\xf0\xd1=\x8a\x9bU|e\xceG\xfb^\x14,9\u007f\x069\x80\x1a=\xaf8s\xdbzNZ\x1f\xfd\xbf\xad\u007fvl,\xccC\x8a\xa7\xf6<\xe8>8G\xa5]\xdeB\f\xde\xd5\b=\xfe w\xfe %#\xac\xff\xf8w?\x1f=&\xf9,\x1ff\xdd\x15\xf6D\x1a\xbf\x03>ae0\xa3\xdd;\xb6\x8c\xc7\x02ɏ\xb0\x88}O\xe8\xc3E\x8ed?\x80\xb5\x1f\x9dò\x1a\x9dq&\x82m\x87M)K\x11;\x8c,$>\x80\x18\x81\x85Ң\x99\x90\xf5\x82\x055N\xcce\vj\x86M-\xc8\xd6\x19)\xad]=nΚ8\xf0\x9dW\xf7*\x8c\x92j\xbf\xb4\xc7\xfe=t\x1b\x89\x87\x02\x84\x91\x88hd\x19M\x8c\xb4\x18\x11u\x02\xa2\x88\xe3Ļd\x83 \xe9\x9dB\xa2Q;p\xf6\x91\x15h\xde\xd9\xdba\xa6\xf0\xa5\xcdR\x88,C\x12\xd7\xcfÇN\xaf\xaf\xf9\x8f\xf8\x96)\xff\x99i\xe5ͭ\xbd\x83\xff\xf8\xcf+\bi\xb0\xe7\xf8h)}\xfc\xbf\x00\x00\x00\xff\xff\bB\tb\x14V\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xc4YK\x8f\xe3\xb8\x11\xbe\xfbW\x14f\x0f}\x19˳\xd9K\xe0K\xe0\xf1$\xc0 =ۍq\xa7sH\x02,M\x96lnS\xa4BR\xf6:A\xfe{P|H\xb2$\xb7݃d\x97\x97n\xf3Q\xac\xfa\xeaM\xcd\xe6\xf3\xf9\x8c\xd5\xf2\x19\xad\x93F/\x81\xd5\x12\u007f\xf1\xa8\xe9\x97+^~\xef\ni\x16\x87\xefg/R\x8b%\xac\x1b\xe7M\xf5\x15\x9di,\xc7OXJ-\xbd4zV\xa1g\x82y\xb6\x9c\x010\xad\x8dg4\xed\xe8'\x007\xda[\xa3\x14\xda\xf9\x0eu\xf1\xd2lq\xdbH%\xd0\x06\xe2\xf9\xeaÇ\xe2\x87\xe2\xc3\f\x80[\fǟd\x85γ\xaa^\x82n\x94\x9a\x01hV\xe1\x12\xb6\x8c\xbf4\xb5\xf3Ʋ\x1d*\xc3\xe3]\xc5\x01\x15ZSH3s5r\xbazgMS/\xa1[\x88\x14\x12[Q\xa4\x8f\x81\xd8&\x12\xbbO\xc4º\x92\xce\xff\xf9\xf2\x9e{\xe9|\xd8W\xab\xc62u\x89\xad\xb0\xc5\xed\x8d\xf5?vW\xcfa\xebT\\\x91z\xd7(f/\x1c\x9f\x018nj\\B8]3\x8eb\x06\x900\v\xd4\xe6\xc0\x84\bZ`\xea\xd1J\xedѮ\x8dj*\xdd\xde%\xd0q+k\x1fP\x8e\xb2@\x12\x06\xb24\xe0<\xf3\x8d\x03\xd7\xf0=0\a\xab\x03\x93\x8am\x15.\xfe\xa2Y\xfe?\xd0\x03\xf8\xd9\x19\xfd\xc8\xfc~\tE\xfc\xe0J\xa2\x1e\xc2\xef\x9am%=\xe9\xfd\x9f\r:O\xba*`\x1d2\x16l\x11\x9a:\xf8}\x01\x9f5\xacY\x85j\xcd\x1c\xfe\xdf\x15@H\xbb9\x01{\x9b\n\xfa\xc9v\xb89\xa2\xd6[ȹ\xf0\x82\xbe&\xbdxS#?\xf3\x1f\x81NZ\xb2p\xcf<\x06\xbf\x18\xe0\x9a\\\xfcr2\xcdcڹi0\xceѹ/F\xe0pe\xc0\xf2\xaa\xddx\xc6c\x8d\xb6\x92.\xa4E(\x8d\x1df\f\xd6F\xe0\xfeȑ\xaa\x18\xad\xa1n\xaa1#s\xf8\x8aL\x86\x8d\x19\xe3x\x8cxi\x1c\x86\xe0{\x8d\r\xb8n㜭\xd1\xde\xc2\xcbzE\x1b\xdb4\xc9`\xbd\x82m\xa3\x85\xc2\xcc\xd1q\x8f\x9a:\x04Y\x9e\xa6\xef\xa2\xf1t\xbfɨ\x86\n#\xd5\xf8\x19\xdbi\x19b\f_\xc2\xf64Q\x13\xdc dm\xb1\x94\xbf\xdc \xe4cؘ\x01\xaf\x99߃\xd4N\n\x046\x01\u007f,\xd6.\b\xda\xe6\xff\x87\x14E\xbeA=\xafy{d\xe7-\x0e\x9f1\xbe\xe2?\x8fi[\x8bB\xfe\x9d\"\xffy-xɏ'%:\xb4\x0f\x06\u007f\x8a\x15\x16\x9fH\x95g\xcc<\x8fO\xbcR\xa9\xe5g\x8b)g\xa6\xba\xc0X\x8b\xae6ZP\xf3t[\x9dֱ\xfc\xbf\xab֦\xd5:?\x8fr\x83\xb5\xac\x85\x9bZ\x95\xf0D\xf3\xe6f%>\\\xf5[\x01\xb3u\xd4)v\xfd\xca@\xc6_\xa5My\xd7\xebS\xa8\x1f\xd6\xd0\xe8P\xa9\x85\x8c_\xc0\xdf5|\xa2ޖ\xb2\x93X\x12\xdfv\xca\x00\xa4\x03m\x8et\xbcG/\x90\x00\xa3c\xbe\xa6n\x8di\x91\x9a\xe1\xb0t\x94JQƶX\x99\xc3dƦBӢ:\x01sd:\x87\xdf\x15\x1f\x8aw\xbfY\x17\xa4\x98\xf3\xd4Ԡ\xf8\x8a\a9~\xe5\x19\xa3{?:\x91\x1d\xbfu\a\xfa\xf1Sn\x96\x176m\xfbi\x02\x8cR*\xaa\x05'\xe2DW1\x8c\xdf#?n\xee\xef\\(\xe1Q\xfb\xa9\xb2\xef\x88\x16CDŽ\x82\xaax\x93\xde%\x1a\xe7\xd1N\x18@\xab\xbd\xa0sPF\xef\x06\x8e\x13Gz\xa5\xa0\n-\x1a\x94\xb1 \xd0Sj\xd2;\xe0{\xa6wؽB%\xfe_\xe7\x94\xccg`3\x9d\x85H}\xc9\xa6-n\x13\xf5\x0e\xb9\x14\x9f\x8e>|h?\xb5\x1f\x1a\x00\xcbXҿҀ\xa2f\x88\x1b\xf0\xa9\xef\x1b\x00o\x06܀\xc3\x1e\x15\xb7\xc6>\xa6\xc8\xf8gBQi\x0f\xd8#\x87\x96B#\x11m>x\xcf!\xc5\r\x1c\x1d5\u007f\x04U/\xf4\xb9\x94\xfa\xa9\x94\xba\xab\xa5\x8a\xb7'џ_\x8b\xf8\x85ƨ\xd8'6\xfd2\xa0\x12 \xe4\xf7\xa97\xbc\x18\xd2\x00\x88\r\x117p\x93aEc\xd15\x00#\x1f\x05\xe6j\xbc\xf1\xe1c-g;\x1cL\xc5\x0f\x10\"\xfa\x1fo\xaf\x1f>ݟ\x99\x01\x1c\x8ae\x8aZX]\xc0\x0f$``D\x01\x1aFp\x10\xa3\xacQ\xe0rϠ\x80v8\xdd\x14\xddx1\b;Ў\x04\x18#\xa3\xa0\xaf]tV\x18r\x90\xf1\x10\xb6\u007f\xa0\xd5\x16\xee\x91s\x19\x90.\xa4\xde\xe5V; +0ڰ\xf7\xf4\xf7Km\xc9\xf7̇\xf6F'\x91\x8f\x0fyE\xf6\xa6\x87\x83\xe9\x13~\x0f\xc6;\x18\xcc30\xe6S \xf9\x93z%DZ\xf85\xd3D~\x176ЩF٬\xd7{\xd2idl\x18\x86\xe4I\x9fץ\xfbi\x9b4\xb0\xac\x1d\x1e\xb0_\v\xedW\x86mG\x8aV\x13\xe3\xdaDZ\x15辌M;\xb8\xefx\x1c2y\u007f\x86U\x9fsÈ2\xf9\xfd\x89\xa3t\xf37\x14Ƚ\\e\xaf\xa9\xf5\x16G\xa2\xb3)\xb3s\xf7\xe5\xfe+LG\x171\xe6\xec\x17ޏ\x89r\x94 \x13F~\x87\\E\xdcq\x18JM\xf4.\x06\xf2Z^lO\xe8\xe7\xf4K\xda\x0e\xa42\xb5d֪\x85\xab\xb2G`\x8b\x90\xa23\x8a\xae\x85k\x0fWf\xc0\xfe\xca\b\xfe\xef\x02d\xa6e\x95\x89}\x9b\x04\xa7+p\x1e\\Y;qL;\xea\x15\xbd\x16\x86\xf6>\xa2\xcd\nf\x12s6\xedȖ\xf1\x80]`x\xea\xc8v\xd3\xd0\xce\xd8}\x19\xf0\xf6̱<\xd0\xf9\xa9e\xf2R\x9a{^\xbd<\x14\xed\x88qօ\xab\x93bo\xe2E\x8d&\xf9\x8f̔\x9c\x89\x1b\x9b\x98\xd1\xebX\xa9l\x8b\xa5\xa4\xb7r\x81́/\xac3P_JP\xf9\xce\x19\xf2\x02\xc6?\x8f\x89\xa0\x9dQxB\xcec`C\xca{\x06\x1d\xb8t\xc1\xdfHK\x87U\xac,l\xe4`Q\xa4\xbd\x88#\xc5a\x01\xd37\xd4\xc9O\xfe\x86\x9am\x8f\x1bPN\xf8\x8a\xb2\x86\xd9<\xcf|\xb13\xb2\xd0\ng\x14\xdc\xe6\x98%\r\xb0nu\xfcw\x11\n\xdd>\r\x97'\xad\xe0\x06\x9f\x16\xac\xd7\xfe\x96ÞQ\xe6-\x9f\x9d\xb7\x95\xbd\xf2M}#K\x8bMya\x94\xbc\xef\xdc\t\x8b\xa2\x81\xcd~\xe2\xf5\xd8\xc2\xc6Z\x8c\x8a\xeef\xfe\xd7\xf1\xee\xdd\xd9\xefCy\xb5\xc1;\xaa?M\xf0\xdb\xefM\xad\x8a\xeea\xfa\x1b\xc8\xc6\u007f\x02\x00\x00\xff\xff~\x96\x80P\xae\t\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4WMo\xdc6\x10\xbd\xebW\f\xd2CZ \xd2&ȥ\xd8[\xeb\xe4\x104\r\x02;\xf5\xa5\xe8\x81K\xcdJ\xac)\x92\xe5\f\xd7q\x8b\xfe\xf7bHi?\xb4Z\xdb9T\xb7%\x87\xc3\xc7\xc7\xf7\x86\xb3U]ו\n\xe6\x16#\x19\xef֠\x82\xc1\xaf\x8cN~Qs\xf7#5Ưvo\xaa;\xe3\xda5\\%b?\\#\xf9\x145\xbeíq\x86\x8dwՀ\xacZ\xc5j]\x01(\xe7<+\x19&\xf9\t\xa0\xbd\xe3\xe8\xad\xc5Xw蚻\xb4\xc1M2\xb6Ř\x93O[\xef^7o\x9b\xd7\x15\x80\x8e\x98\x97\u007f1\x03\x12\xab!\xac\xc1%k+\x00\xa7\x06\\C\xeb\xef\x9d\xf5\xaa\x8d\xf8WBbjvh1\xfa\xc6\xf8\x8a\x02jٴ\x8b>\x855\x1c&\xca\xda\x11P9̻1\xcduI\x93g\xac!\xfeei\xf6\xa3\x19#\x82MQ\xd9s\x10y\x92\x8c\xeb\x92U\xf1l\xba\x02 \xed\x03\xae\xe1\x93\xc0\bJc[\x01\x8cgϰ\xea\xf1t\xbb7%\x95\xeeqP\x05/\x80\x0f\xe8~\xfa\xfc\xe1\xf6\xed\xcd\xc90@\x8b\xa4\xa3\t\x9c\x19\x9ca\x06C\xa0`D\x00\xec\xf7\xa0@9P\x91\xcdVi\x86m\xf4\x03l\x94\xbeKa\x9f\x15\xc0o\xfeD\xcd@\xec\xa3\xea\xf0\x15P\xd2=(\xc9WB\xc1\xfa\x0e\xb6\xc6b\xb3_\x14\xa2\x0f\x18\xd9L,\x97\xefH\\G\xa33\xe0/\xe5l%\nZQ\x15\x12p\x8f\x13?؎t\x80\xdf\x02\xf7\x86 b\x88H\xe8\x8a\xceN\x12\x83\x04)7\x9e\xa0\x81\x1b\x8c\x92\x06\xa8\xf7ɶ\"\xc6\x1dF\x86\x88\xdaw\xce\xfc\xbd\xcfM\u0090lj\x15Or8|\xc61F\xa7,\xec\x94M\xf8\n\x94kaP\x0f\x101\xf3\x94\xdcQ\xbe\x1cB\r\xfc\xea#\x82q[\xbf\x86\x9e9\xd0z\xb5\xea\fO\xa6\xd2~\x18\x923\xfc\xb0\xca\xfe0\x9b\xc4>Ҫ\xc5\x1d\xda\x15\x99\xaeVQ\xf7\x86Qs\x8a\xb8R\xc1\xd4\x19\xba\xcb\xc6j\x86\xf6\xbb8ڐ^\x9e`\xe5\a\x91\x19q4\xae;\x9aȚ\u007f\xe4\x06D\xf5E0ei9Łh\x19\x12v\xae\xdf\xdf|\x81i\xeb|\x19s\xf6\x8br\xf6\v\xe9p\x05B\x98q[\x8c\xe5\x12\xb3\xf2$'\xba6x\xe38\xff\xd0֠\x9b\xd3Oi3\x18\xa6I\xccrW\r\\\xe5J\x03\x1b\x84\x14Z\xc5\xd86\xf0\xc1\xc1\x95\x1a\xd0^)\xc2\xff\xfd\x02\x84i\xaa\x85\xd8\xe7]\xc1q\x91\x9c\a\x17֎&\xa6Jv\xe1\xbefV\xbf\t\xa8\xe5\xf6\x84@Yi\xb6Fgk\xc0\xd6GP\a\xe7\x8f\x046'\x99\x97\x9d\x9b\xc1\xa9\xd8!\xcfGgX\xbe\xe4 \xd9\xfe\xbeW\xa7\x85\xe6{l\xbaFj\x05\x8d@J\xf5\xf8\xa19\xcbx\x19\x03,\xaaw\x11\xc9$b\xa1Ax\x95R E\xea\x18\xd3\xf9\xd6\xf2\xa1K\xc3\xf2\x065\xfc\x9c1\u007f\xf4ݣ\xf3Wޱ\xc8\xfdѠ[oӀ7N\x05\xea\xfd\x13\xb1\xd33\xbb\u007fz\xce\x03\xafQ\n4^\x866\x06\\#%{a\xbb\vb\x9d\xbe\xfc(=ͼ/\xcc\xd7&\xf5\x88\xc8k\x93\xdd\xfd\xed\xf0E\xed&\xe2\x82t\xea,\xa9\x85a\x01\u007f6|\xc1\xa3\x976\xa8G\xdf<\xcb\xe7\xac8\xd178=\xc7OT\xeb\x14#:\x1e\xb3\xe4\x97o\xbe\xe0\xb9V\x9f\xfc\xf1\xdb\xf5\xc7'\xfc\xfe\xee\x10\x99{;e\\A\x13\"\xd6d:y\xafeN\x1c\x9f\x9dxNF\xf9N\xfb\x87S\xa2\x16o\x14\xbf\x06\x13s]{\x02\xe2\xfb}`)K\xe8ʓ3\xef\x90rB\xa4\xfc\x9ck5o$\xe4\xdb \xb4h\x91\xb1\x85\xcdC\xa9\xaf\x0f\xc48\x9c\xe3\xde\xfa8(^\x83`k\xe7\xa0;\xa5&\x00\x1a[\x9a\x835beT\xd7\xd2\x12\xcb\xe7\xce\xfa\xe9\x8a\x1493\x95f\xe2-\x95|i\xedLg\xe7\xb0\xdbHg\xb3@I\x99G#>F6\xef\"\x9b\xb8\xa3\xa4\x0f\u007f\x1f\xdb\xfdM\xfa\x10)\xac\xea\x1c\xaac!⦗\xba\xee\x14\xba\xa3\xed\t\x80/\x8d\xa59<\xb0\x18\x16K\x12\x13\x80\xac{\x14\xab\xc8ڭ~L\xacʆZL\xf2\x02\x18K\xfa\x97\xc7\xfb\x8f?/\x0e\x96\x01\xac3\x96\\\x90\xbdj\xe9\xdb\xf3\xe8\xde*\x80 _:iC\xb4\xf753LT ؕ\xe4!4\xd4\vE\"\xcb\x00\xa6\x82\xd0H\x0f\x8e\xac#O:9\xf7\x8010\x11j0\xcb\u007fR\x19\xa6\xb0 \xc7l\xc07\xa6S\x82#`E.\x80\xa3\xd2\xd4Z\xfe{\xcb\xdbC0\xf1R\x85\x81\xb2\x85w\x9fԁ\x9cF\x05+T\x1d\xdd\x00j\x01-n\xc0\x11\xdf\x02\x9d\xde\xe3\x17I\xfc\x14~7\x8e@\xea\xca̡\t\xc1\xfa\xf9lV\xcb\xd0Griڶ\xd32lf1(\xe5\xb2\v\xc6\xf9\x99\xa0\x15\xa9\x99\x97u\x81\xaeld\xa02t\x8efhe\x11E\xd71\x9a\xa7\xad\xf8\xce\xe5\xd8\xf7\xd7\a\xb2\x86\r\xfb\xd6\a'u\xbd\xb7\x11\x03\xed\x8c\a8\xd4@z\xc0|4i\xb134/\xb1u>\xfce\xf1\x04\xfd\xd5\xd1\x19C\xebG\xbb\xef\x0e\xfa\x9d\v\xd8`RW\xe4\x92\x13+g\xdaȓ\xb4\xb0F\xea\x10\xff(\x95$=4\xbf\uf5ad\f\xec\xf7\u007fu\xe4\x03\xfbj\n\xb71\xbdaI\xd0Y\x81\x81\xc4\x14\xee5\xdcbK\xea\x16=}u\a\xb0\xa5}\xc1\x86}\x99\v\xf6+Ӑ8Ymo\xa3/\x1f'\xfc5\xa8\t\vK%{\x8f\r\xc8'e%˘\x1aP\x19\a8$\x9f\x1e0\x1eO\\\xfeR\xc5X\x04㰦\xdfLb9$\x1aH\xf6n\xecL/\x1bו\x94Ĕ\x99\x83O\x94GL\x01T\u007fxݐ\xa3xƑ\x0f\xb2\xe4\xe02^\x06\xe36̘9\x90\x98\x1eq8\xe1\x06\xfe\xb4\x11tA\x8f\a#hLl>\n\xa1\xc1\x14\xad\x8f&f\x8d\xeb\xb4>\xbe\x85?\xa3_%\x985\xe2\x82\\\xf9F\x04G\x159Ҝ\x85\xa9pY\x13\xcb[@\xa9\xfblM\x85\x1f\x82\x19\x91l\x99\\@\x02\x86\x01\x01g\x83\x02\xceT\xf5Q\x89\u007fy\xbc\xef+yo\xc4,{8\xbe\xf7\x82}\xf8\xab$)\xf1\x88\xa1y\xc1\xdd\xd7\xf7U\xba,ִ`\x00\xc1J*\xe9\xa0I\x80\xd4>\x10\n0\xd5(G\x06\x12\xc0\x89\xef(\x9f\xb8I\x15,\x97\xca]ka\xdb\x03r\xed\x94\x02\xfe\xb6x\xff0\xfb\xeb\x98\xe9\xb7Z\x00\x96%yf\x84\x81Z\xd2\xe1\x06|W6\x80\x9eՐ\x8eĂw\xa6-jY\x91\x0f\xd3|\a9\xff\xe9\xa7\xcf\xe3\xd6\x03\xf8\xd58\xa0/\xd8ZE7 \x93ŷe\xb9\x0f\x1a\xe9\x939\xb6\x1ca-C#\x87\xcdtk\x01\x0e\xaf\xac\xf6:\xaa\x1b\xf0\x99\xc0du;\x02%\x9fi\x0eW\\~\xf6\xc4\xfc\x0f\xe7\xce\u007f\xafNp\xfdCJ\xed+&\xbaJ\xc2m\xfb\xf0~\xd2\xed\x84L\x99\xe7d]\x93\x8b\xc0e\xec\x8bM\x85K\xf5\xf7`\x1c[@\x9b=\x16\x911{/\x15J\x12GB\u007f\xfa\xe9\xf3I\x89\x0f\xed\x05R\v\xfa\x02?\x81\xd4\xc96ֈ\xef\xa7\xf0\x14\xa3c\xa3\x03~\xe1\x9b\xca\xc6x:eY\xa3ՆunpE\xe0MK\xb0&\xa5\x8a\x84\x83\x04\xacq\xc3V\xe8\x1d\xc7\xf1\x86`х\xb3\xd1ڣ\x9f\xa7\xf7w\xef\xe7I2\x0e\xa8:Vb\ue695d4\xc30&\xf5\xe2\x18\x8dGͼ\xff|\x97\xc2'\x18(\x1b\xd45%}\t\xaa\x8e\xbb\xe3\xf4\xfa-y|\fI\xfao\x04\x9a\f\v\xc7\xff\xad\xb9\xbfP\xb9\x88\xa0_\xa0\xdc\xc3^\x94\x9fU\x8eg\x15\xa7)P\xd4O\x98ҳj%\xd9\xe0gfEn%i=[\x1b\xf7,u]ph\x16)\x06\xfc,\x8e\x1b\xb3\xef\xe2?o\xd6%\x0e\n/U(\x12\u007f\v\xad\xf8\x1e?{\x93R=\x86}y\x1f\xbb^dd5<\xcbi\xb1nd\xd9\xf4\xc3I\xae\xb1'\x92I2\x12\x16\xa94\xa3\xde|\xf5Pf\x83v\x8e%\xda\x14y\x00.P\v\xfe\xbf\x97>\xf0\xfa\x9b,\xd8\xc9\x17\xa5\xef?\xee\xef\xbeM\x80w\xf2M\xb9z\x02\x80\xa7\x18\xb1\xe6^\xb0)+I\xee\x020\xfbp@\xdcC\xc7\x11ĺ\xa5y\x152\fX\x8f@1\x14\">{\xa0z<\v\xd8\xceZ\xe0@\x8d'\xac=\xa0#@hѲ\xe7\x9eiS\xa4\x16oQr\u007f\xe6\x16\x9c1ϒ\x00\xadUr\xb4\x15\xe7F\x9eAh\xc6\xfb\xea\x87\xc4\xe1\x82\xfdӀ3\x06ٳ\x00\t\xdfla{0\xb0\x1cK\xd13\xa0\xf8\xa4\x15y.e\xb4v(b1>@\rhx\xa0\x18,Y#\x06+\x87\x918\xd8L\xfa\xbdh\xaa\f\x18:\xff\x8a\xb92\xd2\xf76MU$d.\x11B\xbfu\xb2,\r\xa3\xd3ç\xb5\xf3\xee\xbd=>\x11\x1fq\x9cH\xc2\x05\xd9r\xcc\xe6([\xa3\xef\xef\x18\x1b\ra\x8f]:\x19\xeb6s#\x11\xa1##\xdb\n\xa5\"\x01\xfd\xdb\xde\xf0\xcc\b\xd7}.K\xaa\xb8\xc8uV\x19\x14\xfd@\x96\xc5\xdb\xc23\x9e\xd7\xe3\xebȵ?ó\xf3$\xe2$?b\x84c\xc8V\x19\xd7b\x98\x83\xc0@\xc5(S\xdd)\x85KEs\b\xae;\xde>S,Z\xf2\x1e\xebK\xa9\xf8{\xa2Jsj>\x02\xb84]\xd8\x0e\xaa\aE\xe1\xda\xe7\x98zݬ<:\x02\x1e\x8632D\xf7\x19\xaa*\x15\xcf\xec\x17\x82݃p\x94jI\xe3\xad\xee-5\x01\xc06\xe8/\x99\xea\x91i\xc6\x12l[\xbd\xcef\x18\u007f\xa4\xbb\xf6\xf8\x96\x02\x1eh=\xb2z\xaf\x1f\x9d\xa9\x1d\xf9\xe3\xc0)\xfa\xf8\x1a\xa9\xe6\x05\xfc\x1a\xb3\xe1U\xfa\xe7\x8b.\x99 \x93AcT\x9f\xcc&\xa0\x02ݵKrl\x87\xe5&\x90?,\xe7c\xaf\x12q\x9aٙq\xef|\xef\xbf\xc4)\x0fh%\xea\xf8z\xc8\xd9\x15\f\b\xe9\xad\xc2\xcd\b\xe3^\x91\x88X8\xb9\xb8\x04\xec\xe2\xb9OjK.n\xbd\xf65%\xcatg\xf4\t|\xdd\xe7\xb3\xd4\xe1O\u007f<\x83o\xa4\x0eT\x0f\x9aC\xdegs\xbe\xe3[\xbe\xce\rgZ\xb7\xd7h}c\xc2\xfd݅(Xl\t\xfbl\xd8\x01\xa5X\xfb\xe2\xdbf&ʡ0\xe6\xaammyU\xaa\xfa\x80.\xbc\xb4\x15-\x0e\x88/t\xa1\xc8y\xbc\a-Ȣ\xe3L\x8f/\xe1\xb7\xc3ߚn\xc0\xcb\xf8\xbc\xc7x+\x01\xb04|{nN\f,\x8d\xa3\x91\x92\t\xc7m堉\x1c\x8a\xff-\xfb\xc7h\x9c\x1c-F\xc9\xc5\x1e\xef\xfcD\x9cWv\x18\x06K\x9e\x0eH<\f\u007fO\xbbJ\xaf7\xfd\x0fd\xf1\xcf\xd2\xe8\x04\x95\xfd\x1c>}\x9e@~6\xfe\xd8\xff\xeeŋ\xff\v\x00\x00\xff\xff~\xe4\xff\xab\x84\x1c\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xc4YKo\xe3\xc8\x11\xbe\xebW\x14\xbc\ag\x81!\xb5;\x1b\x04\x81n\xbbv6P\xb2\xeb1F\xce\\\x06sh\xb1\x8bb\xc5d7\xd3]\x94\xac\x04\xf9\xefAu\xb3\xf5\xa4\x1e60\x13^l\xf5\xa3\xfa\xab\xaf\x1e]E\x8e\xb2,\x1b\xa9\x96>\xa1\xf3d\xcd\x04TK\xf8\xc2h\xe4\x97ϟ\xff\xecs\xb2\xe3口g2z\x02w\x9dg\xdb|Do;W\xe0=\x96d\x88ɚQ\x83\xac\xb4b5\x19\x01(c,+\x19\xf6\xf2\x13\xa0\xb0\x86\x9d\xadkt\xd9\x02M\xfe\xdc\xcdq\xdeQ\xad\xd1\x05\xe1\xe9\xe8\xe5\x0f\xf9O\xf9\x0f#\x80\xc2a\xd8\xfeD\rzVM;\x01\xd3\xd5\xf5\b\xc0\xa8\x06'\xd0Z\xbd\xb4uנC\xcf֡ϗX\xa3\xb39ّo\xb1\x90S\x17\xcev\xed\x04\xb6\x13qs\x8f(j\xf3h\xf5\xa7 \xe7c\x94\x13\xa6j\xf2\xfc\xf7\xc1\xe9\xdf\xc8sX\xd2֝S\xf5\x00\x8e0\xeb\xc9,\xbaZ\xb9\xe3\xf9\x11\x80/l\x8b\x13x\x10(\xad*P\x8f\x00z\x02\x02\xb4\xacWq\xf9c\x94UTب\x88\x19\xc0\xb6h~~\x9c~\xfai\xb67\f\xd0:ۢcJ\xea\xc5gǬ;\xa3\x00\x1a}\xe1\xa8\xe5@\xfa\xad\b\x8c\xab@\x8b=\xd1\x03W\x98@\xa1\xee1\x80-\x81+\xf2\xe0\xb0u\xe8\xd1D\v\xef\t\x06Y\xa4\f\xd8\xf9?\xb1\xe0\x1cf\xe8D\f\xf8\xcav\xb5\x167X\xa2cpX\u0605\xa1\u007fod{`\x1b\x0e\xad\x15c\xcf\xf1\xf6!\xc3茪a\xa9\xea\x0e߁2\x1a\x1a\xb5\x06\x87r\ntfG^X\xe2s\xf8\xdd:\x042\xa5\x9d@\xc5\xdc\xfa\xc9x\xbc N\xee\\ئ\xe9\f\xf1z\x1c<\x93\xe6\x1d[\xe7\xc7\x1a\x97X\x8f=-2劊\x18\v\xee\x1c\x8eUKY\x80n\x82K\xe7\x8d\xfe\xce\xf5\x01\xe0o\xf7\xb0\xf2Zl\xebّY\xecL\x04g;c\x01\xf16 \x0f\xaa\xdf\x1a\xb5\xd8\x12-C\xc2\xceǿ̞ \x1d\x1d\x8cq\xc8~\xe0}\xbb\xd1oM \x84\x91)\xd1E#\x96\xce6A&\x1a\xddZ2\x1c~\x145\xa19\xa4\xdfw\xf3\x86X\xec\xfe\xaf\x0e=\x8b\xadr\xb8\v1\x0es\x84\xaeՊQ\xe705p\xa7\x1a\xac\xef\x94ǯn\x00a\xdagB\xecu&\xd8MO\x87\x8b#k;\x13)\x85\x9c\xb0\xd7aZ\x98\xb5X\x88\xf9\x84A\xd9J%\x15!6\xa0\xb4\x0e\xd4\xd1\xfa|O\xf4p\xe8\xca3W\xc5s\xd7\xce\xd8:\xb5\xc0\xdfl\x94y\xb8\xe8\x00\xdb/C{\x128\xc9,1\x8c\xb1\x17\x0e>\xae<\x12\nP\xa7ͫ\n\x1d\x86=\x92Ũ\x10\xf7\xb2\x9eغ\xb5\b\x0e*\xe9\xfcH\xc2\tC\x04\x95\xad\xbe\xa0ƣ\xed\x03\xc2a\x89\x0e\x8d\xb8{\xcc\x10\xad\ry\x84\x15\x99\x14\x161\xc5\x02\xdb\x01-\xe6\x11\xf50\xc4\xd3\xd4Ù\xec9\b\xf8\xe7\xc7iʘ\x89\xe1\x1e:\x1f\x9f{\x81\x1eyJ\xc2Z?*\xae\xae8\xfbvZ\xc6\xc3B\xee`\v\nZ\xc2\x02\xf7\x921\x90\xf1\x8cJ\x83-\a%ʭ\r\x12`\x0e\xfb\x1d\xefb\xa6\xe8S\xd26\x85\v\xf5\xa0$G\x91\x86\xbf\xcd><\x8c\xff:\xc4\xfcF\vPE\x81^\x04)\xc6\x06\r\xbf\x03\xdf\x15\x15(/j\x90C=\x93\x99\xbcQ\x86J\xf4\x9c\xf7g\xa0\xf3\x9f\xdf\u007f\x19f\x0f\xe0W\xeb\x00_T\xd3\xd6\xf8\x0e(2\xbeI\u007f\xc9g\xc8G:6\x12aE\\\xd1\u1975a@\xbc\xabW{\x15\xd4e\xf5\x8c`{u;\x84\x9a\x9eq\x027\x12\xe5;0\xff#\x81\xf5ߛ\x13R\xff\x10\x03\xe8F\x16\xddDp\x9b\xfbn7\"\xb7 \xb9R\f\xech\xb1@\x17\n\x84\xa1'$oI\x89߃u\u0080\xb1;\"\x82`\xb1^\xccG\xa8\x8f@\u007f~\xff\xe5$\xe2}\xbe\x80\x8c\xc6\x17x\x0fd\"7\xad\xd5\xdf\xe7\xf0\x14\xbccmX\xbd\xc8IEe=\x9eb֚z-:Wj\x89\xe0m\x83\xb0º\xceb\xbd\xa1a\xa5\xd6\xc2B2\x9c\xf8\x9b\x82V9>뭩\xcax\xfap\xffa\x12\x91\x89C-B\xbe\x93۩$\xa9\x1a\xa4\\\x88w^\xf0ƣK3=\xbe\x8b\xee\xc3\x16\x8aJ\x99\x05F}\x11\xcaNn\xa1\xfc\xf6-q||\xf5\xa7g\xa0\x048L\x1c\xff\xb7K\xf4J\xe5B\xa5z\x85r\x0f;^~V9i\f\x9cAƠ\x9f\xb6\x85\x17\xd5\nlُ\xed\x12ݒp5^Y\xf7Lf\x91\x89kf\xd1\a\xfc8\x94\xf6\xe3\xef\u009f7\xeb\x12\n\xf2k\x15\n\x8b\xbf\x85Vr\x8e\x1f\xbfI\xa9T+^\u007f\x8f\xdd\xce\xfa\x02\xe6p\xaf\x84Ū\xa2\xa2JM@\x9fcO\x04\x13IũcjVf\xfd\xd5]Y\b\xed\x9c Zg}\xb7\x99)\xa3\xe5\u007fO\x9ee\xfcM\fvtU\xf8\xfecz\xffm\x1c\xbc\xa37\xc5\xea\x89B7\xfaHk\xa7Z\xa8,\t݅\xba\xec\xe3\xde\xe2TW\x0eԅ\x9b5\xaf*\f\xbdQ\xad\xaf,O\xef/\xe0\x98m\x16&\f[\x03\xf4\xe5`\x92%\x8e{\xb6\n<\x83'\x8a\xba\x80%\xd6\xf6C5v\x8f$\xd6\x1caD\xeaڀg8X_\x8bPZ2)\xa0\xf6\x11fÝ\xc3\xc1\x9a\xd6ꃑ}O8\x98ܚ\xe6`\"*yU[Ŋ;\xff\x9a\xc6*lH\xcc\xc6\xf8\xe6^L(n\xdf\xdcZ\x15V\n\xc7\xfdWL\xe7\xad|w\xbc#\xbc\xc7p:\xa2cj0\xf4+\x01\a\xac\x94O\x87\fY\x14v\xe4ŭ!\xa7\x8a8ԡ\xac\x93\xaa\xb3TT\xa3\x86\xcdK.x\x92\x0e34\xf4\xb7CUL\x12\xd4yԡ\xf7\x1c\x00}\xbc\xaf\xb4\xaeQ<\x01i\xe33\x11q\xb4\xc2tu\xad\xe65N\x80]w<}&\x80\x1a\xf4^-.E\xd0\xefqU\xec\xf8\xfa-\xa0\xe6\xb6\xe3M\xcbׇROŭ\xef\xbd\xe0umg\xa5\xfc%(\x8f\xb2f\xc8\xe36A}\xde\xe5\xe4A\xd35\xc7\xc7d\xf0\x80\xab\x81ѩytv\xe1\xd0\x1f[&K\x06\x1ch\x022\xf85xǫ\b\xe8\x0f\xba\xc4A\xbf\f*['ﶬj0]3G'D\xcc\u05cc>1\x92R\xc3P\x0f\x1dj\xef-\x93[\t)\xdbEQ}7Q(\x13^)\x89\xff\xb2\x05M\xbe\xad\xd5z@n\xd2$\\\xaf\xe2\xbe\x12G[\x8fIQ(\xe1\x1f\xe6^\xdb\xfb\aP\xf7֜\xa8\x06SȐ\xe1?\xfd\xf1\xccmL\x86qq\x90J\xfby!\xf4\x179\xe5\xeb\x9cp\xe6\xc2\xf7\xac\x1c_\x9b\xf6f{\x8b/e\xbc z8\xdf\xed\xa6\xae\xe3D\xb5\u007f̷\xccQ\x83D\x1d\r\x06\xe4zGv\xffެ\x1f\xd9\xdel\xaa\x90b\x0e\xf5\xc3ᧆ\x9b\x9b\xbd/\a\xe1ga\x8d\xa6\xf8\x99\x04>\u007f\x19A\xff.\xedS\xfa\x1c \x83\xff\v\x00\x00\xff\xff\xb9\xf7H\xe3\xa0\x19\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4W\xc1n\xe36\x10\xbd\xfb+\x06\xdb\xc3^*y\x17{)tk\xd3\x16\b\x9a\x04\vg\x91K\xd1\x03E\x8d\xeci(\x92%\x87Nݯ/\x86\x92bYV\xe2\xcd\x02\xab\x9bə\xc77\xf3f\x86\xf4\xaa(\x8a\x95\xf2\xf4\x80!\x92\xb3\x15(O\xf8/\xa3\x95_\xb1|\xfc)\x96\xe4\xd6\xfb\x8f\xabG\xb2M\x05W)\xb2\xeb6\x18]\n\x1a\u007fŖ,19\xbb\xea\x90U\xa3XU+\x00e\xadc%\xcbQ~\x02hg98c0\x14[\xb4\xe5c\xaa\xb1Nd\x1a\f\x19|\xb0e\xf1\xff\x00\x00\x00\xff\xff\x1b\xa0}D\xf4\f\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec}\xfds#\xb7\x91\xe8\xef\xfe+P\x8a\xebI\xba\x88\x947\xb9\xa4\xee\xb6R/\xa5\xecʎ\xca^\xadj\xa5\xac_\xca\xf1\xf9\xc0\x99&\x89\x13\bL\x00\f%\xde\xf9\xfe\xf7Wh\x00\xf3A\x0e)\x02C\xed\x87=\xb8\xaa\x8b\x97\x9a\xe9\x01\x1a\x8d\xfeF7-\xd8{P\x9aI\xf1\x92Ђ\xc1\xa3\x01a\xff\xa5\xc7\xf7\xff\xa6\xc7L\x9e/_|q\xcfD\xfe\x92\xbc*\xb5\x91\x8bw\xa0e\xa92x\rS&\x98aR|\xb1\x00Csj\xe8\xcb/\b\xa1BHC\xed\xcf\xda\xfe\x93\x90L\n\xa3$\xe7\xa0F3\x10\xe3\xfbr\x02\x93\x92\xf1\x1c\x14\x02\x0f\x9f^~5\xfe\xfd\xf8\xab/\b\xc9\x14\xe0\xebwl\x01\xda\xd0E\U00052212\xf3/\b\x11t\x01/\x89\x02m\xa4\x02=^\x02\a%\xc7L~\xa1\v\xc8\xec\xc7fJ\x96\xc5KR\xff\xc1\xbd\xe3'\xe2\x16\xf1ν\x8e\xbfp\xa6ͷ\xcd_\xbfc\xda\xe0_\n^*\xca\xeb\x8fᏚ\x89Yɩ\xaa~\xfe\x82\x10\x9d\xc9\x02^\x92k\xfb\x99\x82f\x90\u007fA\x88_\x13~v\xe4g\xbd|\xe1@dsXP7\x1fBd\x01\xe2\xe2\xe6\xea\xfd\xefo[?\x13\x92\x83\xce\x14+\fb\xc6ύ0M(y\x8fk\xb3\x13\xc0M fN\rQP(\xd0 \x8c&f\x0e\x84\x16\x05g\x19\"\xb1\x82H\x88\x9cVoi2UrQC\x9b\xd0\xec\xbe,\x88\x91\x84\x12C\xd5\f\f\xf9\xb6\x9c\x80\x12`@\x93\x8c\x97ڀ\x1aW\xb0\n%\vP\x86\x05ĺѠ\xa3Ưkk9\xb6\xcbuO\x91\xdc\x12\x10\xb8){\x94A\xee1dgk\xe6L\xd7K[_\x8e_\x12\x15DN\xfe\v23&\xb7\xa0,\x18\xa2\xe7\xb2乥\xbb%(\x8b\x9cL\xce\x04\xfb\xef\n\xb6\xb6\v\xb5\x1f\xe5Ԁ\xdf\xefz0a@\t\xcaɒ\xf2\x12\xce\b\x159Y\xd0\x15Q`\xbfBJр\x87\x8f\xe81y\x83\xdb#\xa6\xf2%\x99\x1bS\xe8\x97\xe7\xe73f\xc2\xf9\xc9\xe4bQ\nfV\xe7x\x14ؤ4R\xe9\xf3\x1c\x96\xc0\xcf5\x9b\x8d\xa8\xca\xe6\xcc@fJ\x05\xe7\xb4`#\x9c\xba\xc034^俩\xb6\xed\xb85W\xb3\xb2\x94\xa7\x8dbb\xd6\xf8\x03\x92\xf9\x8e\x1d\xb0\x04\xefhɽ\xeaVQ#\xda\xfed\xb1\xf3\xee\xf2\xf6\xaeIgL\xafc\x1f\xf1\xde \xbez\v,\u0098\x98\x82r\x9b\x88\xd4fa\x82\xc8\vɄ\xc1\u007fd\x9c\x81XG\xbf.'\vf\xec\xbe\xff\xb3\x04m\tZ\x8e\xc9+d*d\x02\xa4,rj \x1f\x93+A^\xd1\x05\xf0WTóo\x80Ŵ\x1eY\xc4\xee\xb7\x05M~\xb8\xfe\xb0\xc3Z\xe3\x0f\x81ym\xd9/\u007f\xfao\v\xc8Z'ƾƦ\xfe\x98\x93\xa9T-\xe6`_\x19\xb7\x80v\x1fZ;\xdc\xe9\xb7\x1cl\xfd/kS\xf9K\xf5\xa0\xa5\x1f;\x89R\xb0\u007f\x96\x80,ΝX\xd8`)\x1b I\x98\x1f\x92\xc5x\xe3\xef[pj\a2m\xa7&r\xf2Z\x82\xbe\x96\x06\u007fy\x16t\xba\x89' ӽ\x88\xc7K8\xb6m\xf1\xd0\xf47\xedA\xdcn\\9\xb7B\xb5=L\x93+a\r\x17\x8f\x0f\xf4\x1e\xba\xcf\xed\x96\x0f\xed\xb1(5:\x94\x84\x14#\x14\x95\xe3\xae/9d\xef\tR\xaa֎lN\xad\xfa\xa8\xfb\xe0\x9e`\xef\xac$q\xef;\u007f(\xa7\x19\xe4\xc1\xdaD/\x1e50c\x19Y\x80\x9a\xed\x12\x1c\xcdQX\xfe\xbe\xdf\x14\xf6\xe4\xbanDR\xd8~\xa2=\fϺ\xf3\xa7'3\xb2'w\x8f\xa7\xc2f?\xf9\xe8\x16\xe7\xdd\xf6G\x9f^\x11\x8aX\xd4?\x9e\xc4.\xcds\x8c\xb4P~\x13\xc1\xf1#\xf6bS\xf6\xbb\x899\t\xb9\xa0\x85=\xbf\xffc\xc5\x1c\x12\xf4\xff\x92\x822\xb5\xc7\x19\xbe\xc0\xa0\t\x87ֻ\xdeM\xd4\xfc\x8c\xfd\x02\xd3\xc4\xee\xef\x92\xf2M\xb7p\xc7\xe2\xa4\xe5-\xc0\x9d \x97\xd3\r\x8d\xe5\x8c<̥v2uʀw\xb9lڃirt\x0f\xab\xa3\xb3\r>pt%\x8e\x9c\x80\x8ff7\x95\xb6 \x05_\x91#|\xf7\xa8\x8f\x12\xb4'%\xee\xf5\x98\xe8t\xfa֣E\x16M\xc7o\xed\xf1\xf5j\xee\xaeY\xefE\x87\x85\xd4\xe6\xaf\xdd\x0e\xbb-\xf3\xb9\to\xb4u\xd3\x0e\xbfד:\xbb\xf7aUL\xd5jrS\x03\xca;\xf1\x1c\xa3\r\x16@O\xdb\xe8)']堣\x95\xa3\xdc\"\xf8\t\xaap\x01\x80}\xa6\x18\xa35Z\xbcD\xeaۗ\x8f\r\x1f\xa3=\xa1\xf6\xdfͅ\x1cZ\xab\xcd\xe4bA\xd7C^{M\xf5\x95{3д\a\xe4v_\xcdJ<\x97\xfb\xab{\x81\x860\xd8\xf5\xc0̜\tB\xc3\xf1\a\xe5\t\x8a\x92B>͉ܘSM&\x00\"\xa0\xefI\xd6\xe0\xc6\xf3\xca\xeb\x05\x13W\xf8\x01\xf2\xe2\xe0\xf2\x9d\xd4\xe8J\xda\u0380\xeajC\xab\x1fP\xe2\xec\xab\x1aɜ<\xccAA\x8b*6\x1d\xdeVc\xdc\x13\xa4\x90\xa6\xe9W\xb0p\v\x99\x1fk2eJ\x9b\xe6D\xf7%\xb8R\xefK\x0e\x91;lWw\xc7\x16 K\x93\xb0\a\x97\xf5ۭh\xe5\x82>\xb2E\xb9 t!\xcb=\x84\xbb\x1bV\xbe\xb0E\x15R\xf4;\xf0@\x99Avgᢇ\xc5H\xbbK\x05\a\xb3\xef\x16O`j\xd9Q&\x85f9\xa8\x10\xf2v;ˤ=\xb8S\xcax\xd9\x15\xbe\xe9\x1a\xb1f\xaa\xb8T*\xc9J}\xeb\xdelx\r\xe7\U000a1360\xbdQ0\xa7K lJ\x98! 2\xbb/\xa0\x1c\xcb\xc6Oxd j\xf6&\xcb\xfd\x18\xbc\x1d \xca\xc5~\b\x18\xe1\xc9fb\xa7S\xac\xf9\xf8ה\xf1\xe7\xd86Ky\xe9G\xe3\xfb\xfa\xed\x0fr4*\xa6\xb2\xbf\b\x9b\x00y\a4_\x85\xf3A\x8d\xb1\xa6*Ҁ$\xaa\x14M\x8e\xf8\f'#ƾ\xf3\xb38\xa4\xe1\xc6\x04\xdbcc\xd7\xfc\xf9\xcc4\xb5\x1d\v\xe2Y\xb5\x1d\xfb\x81JХ\xb8f\xaeZ\x00\xac\xa8\f\x8a3ν\xa2\x9a\b\xcdg\x02\xd6@\x85\xdc9\xbd\xac\xf8\xf4z\xb4K\xe4\xd9\x12\x06\xef\\]\x8c\xea\xb2\xe6\xe6\xf5\x86f#\xf9-\xfa\bx\a\xefJ\x96\xe4\x81\n\x13\x88\xbeR\xe6\n\xb9'\xd5\xc7\xee\xaa\x1bT\xcd\"\x9e\xdeȬ\v*kHo\x03a\xd4\nӭ\xf6\x9d\xb4\x1b\xd64\xcdevoՑ\x05\x9d\xc1\xf1\xb1&\xaf\u07bc\xb6\xa4b\xb5\x0e+2\"$\x82\x1b\xccEb\v%\x97,\xb7\xaa\xd3{\xaa\x18\x9dpk\x04OA\x81\xc8@\x93/O\xde_\xbc\xfb\xe9\xfa\xe2\xcd\xe5i\x14pk:\xc3cA\x85\xa5\xc1R\ai^\xed\xbe]\x00\x88%SRX\x04\xc5a\xe3jJ(Y\x86\xd9fU&\x9a5\xb5\xf8\xd2ksQ\x10\xab\x15\aG\b\x13Ei\x82w\xf4\x81qN&q\x10K\x91ͩ\x98Y\xbc\xbe\x96\xa5\x9d\xe7\x97_\"V\x14\xe4e\xe6\x0ff\x14D\u007f\x98\xbe<\xf3\xe1,ʹ|\xd0([@g\xb4\xf08\x8e\x82\xd9\xd8^\xa2W\xc2\xd0Ǘ\x84\x8daL\x8e\xbel\xfc\xe9(\n&b\xabP\xd2.\xd3\xc5#\x1c\x1693\xa0('GM\xc8q\x1b\u007fi\xd7\ty\x93@\xf1k\x02\x96\xa0\x9c\x1d\xe0Hn_\a\xbe\x1b\nfT\xe5\x1c\xb4\xb6<\xf7a\x0ef\x0eʻ\x95<\x91A\x8c\xd7\xd9\r\xa9\xec\xf9\xea̔\xacs#\xa3 \x86<\xca\xfb*\x11x\xcc\xe4y.3}n\xa8\xbe\xd7\xe7LX\x91:ʩ\xa1\xa3\x06\xd3=w\xd2p\xe4\xe5\xf3(Xң\xea8\x9e\xffF\x95B01\x1b\xd1\xea)&Ft\xa4\xe7\xc0\xf9q\xc4,\xa3ą\x1b\xd1\xf6n\xf3\xb5\x98\x00C\xa4c\u008d6G\xbf\xac\x18\xb8\xfb\xf2\x98\\K\xb3+\x03m\xfb\xa8D\x18\xe2x\xdc\xc9\xe3/\xaf\xef\xde\xfd\xfd\xe6\xed\xd5\xf5],ko\x8a\x85\xed\xac>\x8dI\xb6\xc4B\a\xab\x8f\xdb\xfd]b\xa1\xcd\xea\xa3\xe0n\x11\v\x1b\xac>\x0e\xb1\x1dba\x93\xd5DZ\xe0M\xb1\xb0\x85\xd5G\x81]\x17\v[Y}\x14ԶX\xd8\xc6\xea\xa3@v\x8b\x85\x0eV\x1f/\x846\xc5B\x9b\xd5\xc7A\xdc.\x16\xd6X}\x14\xd8n\xb10\xb0\xfa\x8e\xd7\xe2X=\x88e2\x9b\xffΛ_\rVT\xedy\x1c\x1d\x1a\x89\x19\aL\xb4\xf9\\\x97V\xf0\xbc\x98o\xbb\x04\xc5\xf2=m\xa7U\x88\xe6b\xa3 \x93\xfa8\x84\x8cm\x14k\x95E\x1b\xc7bR\xac47\x9e\x8a\x9cu\x8f\xcdx\x9a\xbf5\x91\x8e\x0f\xd2\xc0ɘ\xbc\xf1\x19\x06\x94\xbc\xfa\xe9\xea\xf5\xe5\xf5\xdd\xd5\xd7W\x97\xef\xe2\x90B\xd2\xcf\x0e\tI#=Qs\xdca\x1e&\xe0e\xb7\xe6\x10-\x90\xdd(\x14,\x99,5_U\xe9\xed\xfd\x8f\xae\x1b\xeb'ק\x94\xad\x88\x06\xb5dY\xcal;\xa7\xd6G\xd5q\xe3I\x85'}\xf5O\xa8=\t\x80\xb7\xdb\xc4^\xf9I!\xadCZ\xc6\x1e\xe43\xd8\xc7n\xfb\x19uX\x8b\x9e\xb4%\x91~\a+\x8c4\xed.\x8c\xb6*\xd3P\xf3\x92!V\xfe\x10\xb3\xaf\xe1\x96I\x91Aa\xf4\xb9\\Z\xdd\x01\x1e\xce\x1f\xa4\xba\xb7\x96\xd8\x033\U000d12c7\xe9s\xbc\x86s\xfe\x1b\xfc\x9f\x1e\xb3\xbb{\xfb\xfa\xedKr\x91\xe7D\"\xab-5LK\xee\xd2\xee\xf6\xce\xf4\xed\x1auQ\x813\xbc\xd8~FJ\x96\xff9\x9eنq\x00ڐ\x85\xcb\xc4<\x10}\xdcb$\u007f\x15\xa4T\x0f\\Y\x16^q\x04\"\x15\x86\xdf\xf6I\x83\xdd>B²Wt{\xa2}\"%\a\xba^\xc4a\xbf\xb1\u007fh\xb8k\xec\x97\x0e\xdc5\"\xc2\xc7]\x03O\xc0a\xa4\xc6q-6\xf6Kg\xed\x1e\xde\xe0,d\xfe\x92\xe8\xb2(\xa42\xba*X0\xb6\x8c .\x9eQ\x8f\x16\x10\xbc\xdbwF\xfe\xb3\xfa\x11\xef\x8e\xe8\x1f\x8e\x8f\xff\xf4\xed\xe5\xdf\xff\xef\xf1\xf1\x8f\xff\x99\xfa\x9d\x1af\xa3\xd6\xcc!\x00\xeb\x02\xb2\xb1\x909X\x96}\xe6\xfe\xe9-\xaf\x8b\f\x13d\xae{\xa0G\x1bjJ=\x9eKm\xaen\xce\xc2?\v\x99_\xdd\xf4\x04\x890t\x82\nJ\x0e\xa2\x04l+\xfc\x123Z\x94\x1e\n\xc4\xf4\x16\x9a\xbe\x96\x8c\xa5\xf7\xaf푹\xa1f\xbe\u007f\x8a]\xd7xP\xcc\x18\x10h\xab\x82Zh\"\xa7g\x96;\xa2)ЇwKr\xb4|\x11\x19\xa1l\x01\xe8/ئ\x01E\a\xdaFĶg7}8\x16\t\xaeM\xcb\xfe\x82\x97\xa0ʦ\xec\x01\xf4\xe2\xe6*\x14\x1e\xfa\x88\x88\xef+٪m\xfb\x18\xf2-$\x9c\u007f\xfd,r.@\xef'\xea\xea\x9cbw\ac\xbf\x9b\xbc\xdb\agX\xa1\x88\x8a\xbc\xaeRt\xe2~\x1cgE\x99\xca\xcc=\x84\x05,\xa4Z\x9d\x85\u007fB1\x87\x05(\xcaG\xdaHEg\xc9\xe2'L\x15\xa7X\xff\xcb}.\x95\xf37P\xb09Ӹ$\x9e\x06T\x05$+\x95\xb5v\xf8*\xe8(\x90\u007f4\xf9V\xd1Ow\x89\xa4}G\x9b\xc8\xebd\xf5~\xb6f\xcd?Ѝ\xb3\x94\xbc\\\x80>\xab\xac\x94\x1e\x80ѥ)\x96dI\x95\xfe\xa8\x16WΖL\xef\x9b.\xdd5\xa8X\xbdMdM\x04y\xac[\x04\x13\x06f=L\xb4\xd1!\x90\xd1i>\xfa\xf2\x11=6[\x96\xa6(1yxAM\x15\x95z,d\x9a\xe7.\x8cFA\x9f\xbc\xe90}\x91\xe2\xc6v\xa3\xa0ƀ\x12/\xc9\u007f\x9c\xfc\xe3\xb7?\x8fN\xff|r\xf2\xc3W\xa3\u007f\xff\xf1\xb7'\xff\x18\xe3\u007f\xfc\xcb\xe9\x9fO\u007f\x0e\xff\xf8\xed\xe9\xe9\xc9\xc9\x0f߾\xf9\xe6\xee\xe6\xf2Gv\xfa\xf3\x0f\xa2\\ܻ\u007f\xfd|\xf2\x03\\\xfe\xb8'\x90\xd3\xd3?\u007f\x99<\xe5\xc7Q\xed\xa1\x191aFR\x8d\x1c\x11\x82\x9b\xb9n\xe4\x82s\u0084\x13\x92\xf8\xb1\a\xc6\xe3\xec`Lkr^\aB]\xbe\xe2Ң\xe1a\x0e\"\xe9n\xa5\x1bL\x13m\xa82L\xcc\xc6\xe4{\v\xcbic>\x17\x85\t\xb2(\xb9aEdBReaU\xb5I\b\xd5Zf\x8c\x1a\x8f\xe1h\x81ʩ6aK0-\xc7\xd0{̸\xcc \a\x91\x01ֲ*#\xe5`\xd8\xf3\xc9\xcab\xf4R,\xdd\xdc(\xc9K\x97R\f\xd1ܧ{n\x1f;\xdd\xd5\x1e_\x9fZSg\xbdF2E\xf4q;\x18rZ\x97\x12\xab\xe2\xbbq\xf0\xd2U\xec*\xfb%\xc9\f\xd9Э\xeb\xf8t\xa5\x19\xa7DU\x95\\|\xe0,\xa0t5w\xab\x8a[+\xaa\x89\xfa§\xa6\xde>\x8bj{H\xb5\xb6\xa7J\xdbO\x9dݥ\xca\xf6\xb0x\xea\x13u\x88d\x8d~\nh\x0f%\xb0P0e\x8f=9̅\xa8\xf6\x88\xb0\x1c\x84aS\x96d'X\x9dIA\x01\x02ӄ\x81fsW\x06S\xb4\x93lRh\xfa\x13\xc8\xd0w\x9e\x83\xc30\xf4\xdb5?\xc7\xc0\xcd\an\xbec\f\xdc|\xf7\xf0\xc7\xe93f\xe5\x1f\xd0Rƛ\xcb\xe9\u05eb_7\xee?#Gx\x8e\xbb\xf2\xd5y\xad\v\xab\x9c\xe3\x17\xe3\x8e%\x16\x81ţg\xad\xc8Jȹb\xfa\xf2\x81\xcc\xd9,\xd6#\xc6a\t\xdc\xeb\xf7dA\x05\x9d\xb9R\x9aF\x86P]\xec\xed\b˒\x14\xcb[\x85\xd7p\xa9VpZ6\xc5%\x8d\xa3\xe5\xbaw\x9c&\x9c\xdd\x03y\r\x05\x97+_1S\xe4\xe4\xd6Pc\xd9\xd2-\x98\xb8\x04\xb8$恫\xb9)9\xbf\x91\x9ceQ1\x876\xe9]!\xcd\x15%\xe7\xa4@Pc\xf2V@lX\xe6\x82?Е>#װ\x04uF\xae\xa6\xd7\xd2\xdc8s\xb3\xbe\x9f\x12wx\xa5\aJؔ\xbct\xfdш\xa13t]T\xf5\xeb\xe2\x88B\xb5&\xe6\x84\xc9\x03\xd3}\xed\xf4h\x81\xb9q\x00\u007f\x83_\xb5\xa2\xd3\xfd\xfb\xd9ɇ\xb3)d\xab\x8c\xa7\xf3\xac\x8b\f\x93]\xeb\xf2\xeb\xf5\xb9\x8ds\x19\xad\xb4\x81E(\x1b\x86\x0e\x14\x86e&\v)4\xb8\x82z)\x1e\xaej\x85\xcea\xa6{\xeeq\xaa\x92WHmn\rU{\x96i\xabG\xfb\x94\xde\x040\x96\xfc3\xca9\xe4\x84-\x16\x903j\x80\xc7\xfb\xc9C\x05\xd0f\xb9G\xd7\xee\xd2\x15\x93L\xd2\x1b\xe6T\xe4\x1c\x14\xd6+\xf4>\xc0\x16|\x03j\xc1\x04\x8d-\x18B\xaa\xf4.tYBNh\x96I\x95\xfbZp\xa1\xb2\x17U\xf1\x1a\u007f\xc5\xf1PWjH\x9e\xf5|\xbdh\xc8\x13.\xb3{MJa\x18\xaf\xcbC\x86ڐ\xbeQc4\xd4$\x16S\xfd\xe7\xa8:\x13#\xecGv\xfe\x9b\xfaO\xf8C\xac\xf2\xdb\xc7\xf2ٯ\x9e\xef\xe6X\xabA\tH\x1a\x98L)\xe3\xc5V\x18\x98\x17,\xad\xfab\x89\xaa\xae\xafZ\t\x9a4#\x03\v\x10\xb7\xbb\xeaPd\x9bX\x17\x8d\xdeGV!q\xa3o\x8eBB-\xa0\xe6\xd8Q\xb689\xd6\x18\n\xdbr&\xa0Y\xbf\x98aM\xd4\xf4\x10f\xf3\x04;~\xe4-\xd4\xf4 0S\xd8cdըm\xe9\xe6\xde'\x99_Ii\xc8\xc9\xf1\xf9\xf1\xe9FP\xeb8\x1d\xea\x94qp\xd2\xd5\x15Yʪ\xcdJ\x06\xa9٢\xe0+ܟ\xe3\x1c;:\xf9밪L\x8b\x11\x13djv\x97CA\xa83\xa2%1\x8a\x86.\x03\xe9s\xb5\xd0,p\xa3J\xaf\xab\x9c\x1c\xff||F\xc0d\xa9\xf9\xc0\x84=\xfaʿ\xb9\xd4I\x98!\x9b\xfdZ\xb5q\xdd'\x9c\x91\"\xd2|\xcen\x18\xd9NK\xf6\x19\x8d\xe4\xea&=\x11\xebﲴؚ\xd0\t_UUd5\x18rd\xa7\x9e\x9e\xf6\xcc\x04\xee\xe7_\x81\xe6X\xb7Wh\x034QE:\xc0Qk\xcc\xe50J\x8d\xeb\xbb;w {\xech\xb3\x04\x96\xa7\xfd1\x9e\xa9t6\xe9*\xbc((\x1c\xfb\xf5s\xfcHLr\x83W\xb8]\xf0\xbfOz\xe5&\xd2\xd0\xfe\xd8-\xd1\xd7vN,\xde\x11\x06\x138M<\x14=f\xd7?K\x98\xf4\xceV%]\x110\x87\xab^0\xfd\xdd\xcb\xf8\xb4\xb4\xf5q\x90\xfb%\xc9%\xbc\x9a\xe39ф\xd3\xfb\xf8x\xea\x97jI\xd2\x12\x11ۯ\xf7\xc3D\xcf\x1b\n\xa4\xb7\xbe\x85\x97y\x92\xaf\x1bo^66\x92\xd0,K+\x14\xe5\x86\xef^\x8e\fK\x83Z\xc6&8֣7\x89\x152\xde\u007f\x19F\xaf\vo\x87\xb9\xeev\x90\xcbn\x1d\xf5\x12\x15\x11\xe5b҃\x93T\x050\x94\xa9\t\xc6o|\x0fgJUl\xf3\x1a\xa7\x17B\xb8}\xf4=Ta\xa8\x98\x01yag\xfa\xc7?\xfc\xe1\xf7\u007f\x18#\x1a\x92\xa1\x86\xc02\x15\xe4\xea\xe2\xfa\xe2\xa7\xdb\xf7\xaf\xb0\x88[*\x95?\xcb\xcd6,ې,\u007fڑy\x04e\xb1Wj,t\xd6g\x87\xad\xad\xe1\xfd\xdfι\xacS\xe3l\xcda$\xb2\x9b\x8f\xc4g\xfa\b\xb1\x11\x1e\xa2\x0fmg\x9b\xac\xb8\x95\xd9\xfd\x01,\xed\xe3\xbbW7\x0eTml'\xed\x02\x15\xc1\xc5\xcc\xc4R\xf2\xa5\xeb\x17x\xf7\xea\x06\x11\x94\xb6\xb3\xf6m\x8c\x0f\xa0\xaboe\xe7\x18n»Ԝ$\xa8lQ\xf8\x8e\x99\x94(\xa0\x9ci\xc32\xfcV\x15\xa6H\xb4\xef\xe5}J\x16\xcf'\xe3W8~\x1bҁ\xd0Ő|\x9a\xd7\\\x13-\x17C\x1f\x16\xd1pM\xa4^\xe9\x1a4\x92\x83k$N\xd4K\xd5O\x8f\x1f4\x92O[#\xf9\xdcdd\U000ab142[#\x8b\x9eY\x13\x0eȁr&B'\xbamI\r$O\xd8R\xd7;\xfa\xe2\xe6\xaa\xf2\x8e\xcbV\"\x02&\xafDC\xd5e6\x0f\xb1\x19\x01Z\x9fczDY8\xcfWh(\x19\x1f\xb1*\x14`\x17>)Ϊ\x8a\x04\x88\x0e\x10\xeeG0Y\xfciA\x9f\x8c\xcf\x1d\xf1\xf1İ]}\xd302E\xf5\x1c\xb0S\x05<2\xa3C\xb7k\xaa\xa5p!\\\xbf}L\xc6\a0\x99&\x05\xd5\xda\x05\xeeL\xbd\b\xf7\x91\x1b\x99\x1f'Do\x1b\x13\"3E3 \x05(&s\x82U\xffr\xf9\x10?\xcf\t̘Ё~\xedD\xc3\xc1\xb0\xba\x12$E\x84\xebγ\xefZ]\xa4\xb0]yi2\x99\xc0\x87\xfd\xeb\x1e\x8b\xeb\tD\xd1W'q\x9a\xf6\xf8\x94\x94\xf3U}P\xc3MOs\xf8M\xda\xcc$JEB\xbd\xee\xf5L\xa2\xf8h`+\xf3\xc8\x1e\x85:+\xa9\x0f\xf9\xb7\xa8\x93i{\xaa\xb2y\x8f6_$>}yHmzr\f\xa9M{\x8f!\xb5iHm\x1aR\x9b\x86Ԧ!\xb5i/\x10CjS5\xa3!\xb5i\xc7\x18R\x9b\x86Ԧ\xa7ǐ\xda4\xa46\xd5cHm\xdak\f\xa9M{\x8c!\xb5iHm\xda:\x86@\xe2\x90\xda\xf4k\f$\x0e\xa9Mq\xaf\x0f\xa9M\x11cHm\x1aR\x9b\xc2\x18R\x9b\"Ǡ\x91\f\xa9M\xbfF\x8d\xe4s\x93\x91\xbd\xaa\x8bE\xbe\x16\xf2xn\x94\x9c\xf4(3v\x83\xb1z\x96\xf94 9M\xae\xad\xe3\xa63&\xafZ\xe9\x19\xbe\t\xbf\xab\xd2\x12\x05\xd1'\xfa\xd4\xe9I}\xeb\xf5D\xd7d\nE\xc1\xf4y!\xdd\xff\xabs\n\x1a\xc9\x04ο\x16#\x1cR\x85oJ\x16\xc1S\x19\x04I\xbcnw\xf6\x00f\x02D\xc3|\x84\xff\x19\xa2\xfb\x87\x8f\xec\xef\x88ꓕ,\x93`n\x89\xe8\xfb\xc8|\"mvF\xf3CT>\rfw$\xbf\x15\x91O%\xa6^Q\xfc\x1e\xc1\xa9\x9e\xcau\xba'9YS\xf2\xc9\xc6ws\x05z.y4\xafm\xf1\xd97L\xb0E\xb9\xb0lB[\xf6ȖU6s<\x8d\x84<'\xa7u\xb80\x9c\x05\xccr\xc0&\x96\x94\xf1\x94RuXZoN\xd1?\xa1\xcb,\x03ȭ\x9c|]\x87\xc0\xa3a\xfe~\\\xad\xdcu\xd5`\x9a\xbc\x88\xa5<\xd7P\x11\xed\xbb\xdf\xff.i\xf7S,\xc3Ą\x8d\xa7\x935\x10r4&\xfb'j\xf4Q7R\x1d)ϓ\x9c\xb1#1\x83\xfc=Q4\xecH\xca ,M\xcc\x1e(!\xa3\x17\xe7왈\xb1#\t\xc3\xe3(Q\x01\xd9L\xc0XO\xa4HCyz\xf2E\x0f\xd9\xf6\\I\x17\xdb\x13.RI\x92\xf4N\xb6\xe8\x9fhq\xc0n\x87u\xe6@\xef\xee\xf8\xbd\\t\a\xf0\x1c\xf6L\xaax.\xb4\x1c\"\x85\xe0#v\x9fM\xde\xd5>\xc9\x13=\x13'\xfa$M\xa4&L\xecH\x96\xe8\xe3i\xee\x99(ы|R\xc3\x11ɡ\x88\xfea\x88\xde!\x88\x1d\t\x11}z\xc2v\x86\x1eR\xfb\x17\x86\xd1\x0e;\xac\x85\x0f\x12\xd5\xc2f\xc8ᠡ\x83\x83\x87\rғ\x18v'04\x12\x11Rq\xb8\x99\xbc\xd0'\t\xa1\aE\xa72\xff\xa4\xa0J2\xd3f\x82\x19F\xf9k\xe0tu\v\x99\x14y\xb4f\xb4\xd6\x10\xa9:\xafځs\x96y|&D\xeb6\xe6\x9c\xfaΙ\x90\x87\v\xb5!\x1a\x12\xcfZQ}$\x14\xe3\x14v\xf5\xa6}{\xf2\xe3\xc6-\xc8Gs\x19\xb8+\xa5\x87 \x82\xbf\xca\a\"\xa7\x06\x049a\"\xd0A\xbc\x1f\xb5v\x16\xd4\xfe\xa2\xeaXۿ\xbe\xf8*\x9es\xb9\xc9|\xbe\x8e\x1dtmi\xfd|~=\xff\x81\xc3;\xf6<\xe0i\x19\xef\xa3o9\xf7\x9c\x83\xb0\xcdߣ7\xafn\xc3\xf7\x02\xe7\x1d\xb8\tz\xa9}ن\x04\x98\x9f)Q%\xa7\x9d=\x99rF\x12:\x8f\xedJ7\xabSǢ\xc1nI5\xab\xd3\xc6\xe2'\xba-\xcd,)e\xec\xa3{8\xd7\xd2\xc4\xd2\xcd\xcf-)b^=KT\xe2\x93\xd3\xc3\x06;,r\xecH\x03\x1b\xec\xb0O\xc8\x0e\xfb<,\x8cF\xad\x93o\x14\xcd\xe0\xe6`jf`W$/\x15\xf5\"#(xI\xf6\x86e2\x02 w\x9c\xaa*\\\x83\x15W\xa6%O(^U\x16R\xb4\xab?\xb9\x9c\x8af\x11\x97h\xa0>ۥc\xd5^QJ9\xa1\x85\x92N\xed#\xaa\x14\xc2J]\u007f\x96,R\xac\xad\xa4\xd3$d\xb3f\x8ff3\xbb]V\xc5\xc2*8,A\xbe<\xccA\x04-\xd3O\xd8\xcen*U\xc6&|E攧\x84_\x1e\x98\x99\x13J\xee\x19\xe7~\x9acr\v\x86\x989Ӊ\xceT.\xc5\f7\x83\xba\t\xc3c\x01\x99U;2\x0eT\x94E\xda\xfa\xad\xb2\xba\x92\xa5\n\xeb\xf7m\xe3\xc2,S\x926\x04\xe3ga\xab\x8f\xf5\xee\x03\x9b\x80X\x97\xa0Xj\bu\x9a\x1e\x98\x86\xb3>\x98\rmF\xdd9p\xeb.\x94\\\xb2\x1cr2Y\xa5ѿ\xccQk\x1d\x93\xf7\b/\xf0}!\xc5H\xc0\x8cZ\xdb(\xfe\xa4:!\xeeμ\x9b\xa7\xabG!r\x96Q\x93`ci,\xacW\x97\xd3#KF\x11\v\rʍ\x06z\"$\x91\xa8\x14\x97\x82\x99\x15\xc6F\xe7\xa5!\xb9|\x10\xa7cl=\x9b¤(\x99\x80\xa1\xfe^\xabk%\x88\x02K\x13\x10t\xc2S\x94\x13\xccĽ\xeb$P2\x05jʄ\xee~3j\xa0\xd3\x1f\xe0\xe8\xe1\xb0ǁi\x1f\x01\x9d\x92Rh\x88\xbe?Ӱ\x0f\xff\xf8\xaf\x1f\xce>d\v\x90\xa5\xf9\xa4\x1c\x84\x0fs\x96͛\xfe\x06\xb6\x00Md\xd9\xe7ښ\x91䅟V7E\x99\xacáZB\xc7\x18\xaa%l\x1dC\xb5\x84\xa1Z\xc2P-a\xa8\x96\xd0=\x86j\tC\xb5\x84\xcf*\xffy\xa8\x96\xd0\x18C\xb5\x84\x841TK\xd86\x86j\t{\x8d\xa1Z\xc2\xe6\x18\xaa%t\x8e\xa1ZB\xc7\x18\xaa%\xec;\x86j\t\xd5\xf8\xe5\xdc\xd2\x19\xaa%|\xaa\xb7t\x86j\t\xfb\x8c\xcf\xe3.\xd3P-a\xa8\x96\x10\xf02TK\x88\x1aC\xb5\x84\xb51TK\xf8\\\x89j\xa8\x960TK\x18\xaa%t\u007f\xf7\xd7n\x87\r\xd5\x12>U;\xec\xf3\xb00\x86j\tC\xb5\x84\xa1Z\xc2P-a\xa8\x960TK\x18\xaa%\f\xd5\x12\x86j\t\xbf\"\xafb\x92֨@\xcbReqvp\x9b\xc8^\xc9EQ\x1a \xef\x02\xa8JY\x8eZ8\xca\x12\xa6\x9b\x97\xf2?l3\xc1L\x8a)\x9byE\xef|A\x05\x9d\xc1\xa8\xc2Ϩ\xbeBw\xfe!r\xe39[\xb0\xb8:\tv\xd4E\anzx8\x12\r\xea\xbe\xe6tOc\xba\xa0ƀ\x12/\xc9\u007f\x9c\xfc\xe3\xb7?\x8fN\xff|r\xf2\xc3W\xa3\u007f\xff\xf1\xb7'\xff\x18\xe3\u007f\xfc\xcb\xe9\x9fO\u007f\x0e\xff\xf8\xed\xe9\xe9\xc9\xc9\x0f߾\xf9\xe6\xee\xe6\xf2Gv\xfa\xf3\x0f\xa2\\ܻ\u007f\xfd|\xf2\x03\\\xfe\xb8'\x90\xd3\xd3?\u007f\x19=\xd5\x03\x1b\xa7\xed\xf3\xf8\x1dRN\x9dR\x84|{A\x1f-\x83\x8d'\x85\x85,\x85q\xb7l\xdc1\xafN\x84KÊ=\x94\xe4S9\x98\xa4\x8f\xa1\xed\xf3ц\xf3\x191\x86\xf3\xe9\xce\xe7;O;\xed\x13\x1a=DžW\x99v\x9c\xd0h\x98Ap\xa3\xa1[͓i\"\x17\xccXs:\xe5\xa6p\xa3\x16\n^Ii\xba\xa8\x1d\xaf\x8a\xd7\xf2\xa6\xee6\x05\xd3\xcd\v\x1a\x8d{\xdd2ؾ)j)\x15u\x9c\x02y\xce(\x87)\x13\x90;\xf5\xf4\xd7\xc7\xef\x92^Ӑ\x95\x8a\x99\xd5+)\f\xe5Cú\x19\xe7\x85q\xe5eH\n\xfa+\xa09֔)\xa8\x99\xbb<\xd5\x05\xd5\xf7\x90\xbb\x1f\x12u\xec*$kg\\-\xfdnU@r<\x15uk\x97\xfd\x8bq\xdexol\x8f\xf2^4\u007f+\xf8Ꝕ\xe6몌I/B\xfe\xde[K\xed8P4R\xe6Xy\xdb\xceo\x84\x9b\x88e[\x9a\x95V<\xf5\xa5X\t\x1f\x98A\xa8R\\\xe8o\x94,\xa3U\x81\re\xfd\x9b\xab\xd7\xc8/K\x9f!#\x8cZai\xaa\x14&\xd1>s\x95=\xf67\x9fӔ\x94mS\xb1\x87\x10\xae'o\xe8\x8aP\xae\xa57\x1c\x13\x82\xc1]\x1e\x12\xe2]5)7\xa3'\xd2\xcc\xd7}:\xc8\x1e6\xbf\x13_\xc0\xa8N\xb0\xa9<\x99v\t}\\H\b\x96ރ&\x85\x82\fr\x10Y4\xf5~\x9c4\b\xa4\xfck),{\xe9E\xfbW!\xffǹ\x8c\xfbY\xf5\x98\xa9\xe4mz\x8a\xf9J\xc8\\J\r\xca%\x87\xa9\x12\xd26\xfe\xdbr\x02\x1c\x8cs\x94`\x9dZj\x9c\xe7\x8f-\xe8,\xfe4QS\x89B#\t\b]*\xf0NsCr\x99`\x06\xf8:Rv\xe9\u007f\xbbzM\xbe\"'v\xed\xa7H\xfeS\xcaxJ\xd5\x17\xbc\xfd\xb1\xc6M\xd84LѢ4^'\x10h\xec+Ǫψ\x90D\x97\xd9<\xe04\xc5;\x14\x9cW\xfe\x86\x14^a\x1bX\xd3'\xc0\x9az\nֿiP\xbd\xe5\xea\xdf>\x80\\\xed\xe3\x06\xb3\xbc\xa9\xbdk\xc8P\xc8\x02\fͩ\xa1)\xc1\xb7R4\xaa#\xae\x1d\x85\x14\xda\xdd}\x14\x90\xb4\xa3a\xfeʎ\xc2Ǒ\xd2\x1a\xbec\xa2|t\xb7\x03\xfa;\x94o/\x11\x1c\xf1\xa1\xa4\x14\x892\x01B\x8b\x823W\xbeo\xad\xcb\xcbU\x8bt\xd3\xf6~\xd3\xd4D\xf1@9\x97V\xcdH\b\x8f+*r\xb9\xd8X\xbc5D\x81&Xō\x05w\x1c\xcem\x87-^vׇ\xf3\xd7v\xd8\xfa\xb8\xee9,!\xa1\xd0\xf8z\x1f$\v\xc5\x1a\xa4\x81j\x10l\x92\xf7\x93\xd3\tp\xa7\x1a\xba\x93\xa37ON\xb2W4ѩ\xaa$\xef_\xf2\xe2\x9d\xe4\xe0r\xe3\x03\x92,\xd8_\f\x8e\xf0\xe5\xbe8B\xefS\vG\xc9^\xf4O\x11Ge\x82\x86G\xd6qd\xd5\xc46\x8e,\xd8_\b\x8e\x92C\x10\x1a\xb2L.\x8a\x1b%\xa7,\xfe\xb0n\x88~\x0f\xaeNΉ\x17\xfd\xa5\x86\xae,r\xd4#\x11x\xbcF\xee'CU\xe3\xd2\x135N\xe6\xf9[\\\xd1@\xffOC\x85@\xae}\xb6\xa6W\xf8\xaf\xc6϶\x99/T\xc8<\x00\xfa\xa0\xd2Mf\x94cS\xa14\xba 봱\x0e\xb0\xc7}.\xe2z\xd3y8!\xa7\x0f\xbb\xaa\xe0/\t\x9e\x01\x12\xfa\xf3\xc9\x1c\x1a\xb5\xe3\xdd\x05\xbc;w_\xc6\xc2N\x02\x1c\xae\xc5Y=%$_\xe5!ve\xbf\x986]\xe9Ke\xbf\xa9\xda\"Y\x84\x83\xc8S+A\x15\xd4\xccψ\x02\x8e\x17\xf7\x02C\xbbw\x0e\xad\xe3\xb4}j,8p\x86\xb0q\xa8g3)\xd2.\xb1\xe3\xaa1,\x104\xe2)\xf2@\xcb\xe0\x8f\xbe\vĖ\xd0'\xe5S\x90\xe6Gn%\x95\xc73-\xaaf\xc7=\x13\xb9\xbf7\xd6B\xbew\x85\xa5\x9d=g\x97\xe1\xadO\x967\x99\xebK\U0008fd33Wm\x18\x19m\x1e\xed$\x88Mv\xd0q\xb4\x93`:v\xf0Ι\x8b\xa1\xa6Ҩ\xa7+\x9a8/V3\xd8Y! !\x975\x8c\x8a{\xfdM\xe0\x19\xb4,rD\x84\xec\xc5\xc9j\xce\x18h\xe0\xe8Þ\xaf\xf4\xf2\r\t\xeap\xb2J\xf5\xc0D.\x1f\xf4\xa1\xbc)\xdf;p\xc1t\xce,\xbb3L\xcc\x12R0j\x8f\n引\xa1w\b\x97J\xe0\x04U\xab\xd3M\xd7A\xb2\xcf\xde\x11sۗ\xd8\xdb\u007f\xb0ŽQ\xbb+\xe2\x9d);\xdc\x1b\xce]\x11\r\xf2\xe3\xb87f\vM_)\xfb]\xc3(\xbf-\xe2;\xfc\x90uZ\xfe\xe6\xcd\xedE\x1bd\x1agǼ^\xe5\xd4c\v\x93\xd0|\xc1\xb4fR\x90\a\x98̥\xbcO\x82{\x12R\xe7g\xcc\xcc\xcb\xc98\x93\x8bF\x16\xfdH\xb3\x99>\xf7'{d\xb1\x93\xd6\xe4\x84\t\x1en=8\x0f\xa10:D\f\xecbҴ\xac\n\xabH\x80\xbe٠Op\xddD\xfbuj\x91*\xbc\xb1\xf0\xc1U\xaaMR\xbcN,(\xfe\x049&\xe3\xc5W\x97iT{r\x84Y\xefK\x9a\xb8\xb5{\xe9B?\x1f\xbe\x8d\x803\xd52\xd0\xfd\xdb\b\xfc\xb5\x86Erp\xc5!\x12\xed>6m\xf5\xe4\xae\x15\x12\x17\xd1N\xb4%\x8f\xb1v\x9b\x9f\xe2q\xd3\xe9\x90Tǃ\x84\xa3\x82\xde&^\xcc\xe9\b\x1d\x04(o\xac@K\x82\x18\x8c\x9d\xb9\x14R\xb9\xe3mUz)\x12\xdav\xbb\x81\xfe+\x97o\x864\xeb\x15\x8d\xc6v\xbdJO\xf7\xb4ç\xc3az\x1b\xd6\x06\xb2j\x8bs줗\xa9\u007f`f\x8e\xed\x9b\xe6\xd0\xfa@:f\x15hLX\x12\x04\x94\x92\xca\xdf\x1b\t\x89\x06\xa9u\x95\x9d\xfe\x83\x97[,S\xa0\xf6_ǺO\x06-iu\x80\xb5\x1fЖ\xe3\xc0t\n\x19\x9a썝K\x02\xeeB4'u\xbf1\u007f5\xdc2!\xfb\xcd\xc4\xe3\xb5`\x8f\x16\x03M6\xd0\x13\v\xa1/V7\xc8\xd31!Wi\x86h\xb8\xd8}f9M\x13\xba\xbfY\x94J\n\xa2\xd5\\\x1a7ч\xf3\xd2$\x03`V\xaf\x9dQ\xbadHɷ ͜\x8b\x83\x88a̽\xf0\xc0\xec\x11\xf4L(\xd5'\xb6\x99\xbf\xb1\x91\x8f\x91\xe6\x1c[\xcf\xe1\b\xfe\xb1\xe4\x18\u008e\\\x0e\xc2\xe2ø\xc4\xe5L\x1d4\x9f\x83l\xc9\xe9H\xcfn\"ϝ\xe1D\x9e/\xdaL\x0e\x10q&\x1f%ʓv\xf1\xdbUt\xee\xd9\xe6\xf7\xb6\x01\xa5\xe1Ѵ\xaaG\xd4ڽ8uU\xed\xab\xaa\xd8|\x15\xaa\xf1\xb3\xff\x8e͙ow\x90\x17\xd2\x15\x1bh\x96\xba\xf7}M\xe3ԔR\x18\xc6C\xf0jQpk<\xb6f\x1c\x9d\r\x89\xb0\x1a\xfd\x86\xcf*d\xd4\xed\x8d}\xa1\xff\xb8\xf3\xf2_(\x86\xaa\x96ơ\x9e\xf7M\xf5)\x17\xfd\x88Ԁ}\ay,\xd9fd\x88\xb7\x91\x9cM\xa7\x10n8G\x8a\xbd\x82*\xba\xb0\x86\x83&>\xf5w\x023殙V\xaaUd\x84\xa2*\x12v\xe6\xd4=fȂ\xcd\xe6\xceKC(\x96\xa2\x8c/7i$\xe1\x92\xe6\x04\xb9\xb8T䁪\x85\xb5Xh6\xc7\xfa\x8dT\x90\xbc\x8c>\xf8\xd8In5҆\x1a \xb2\x00WR\xc2\xed\x8dŷ\xab\xae\x15G\xa6C\xf3\xe9\xa1\xf9\xf4\xdech>=4\x9f\x1e\x9aOǎ\xa1\xf9\xf4\xd0|z\xef14\x9f\x1e\x9aO\x0fͧ\xdd\x18\x9aO'\x8c\xa1\xf9\xf4\xb614\x9f\xdek\fͧ7\xc7\xd0|\xbas\fͧ;\xc6\xd0|z\xdf14\x9f\xae\xc6/\xa7\xe9\xd9\xd0|\xfaSmz64\x9f\xdeg|\x1e\xad\xe1\x86\xe6\xd3C\xf3逗\xa1\xf9t\xd4\x18\x9aO\xaf\x8d\xa1\xf9\xf4\xe7JTC\xf3\xe9\xa1\xf9\xf4\xd0|\xba\xfb\xbb\xbfv;lh>\xfd\xa9\xdaa\x9f\x87\x8514\x9f\x1e\x9aO\x0fͧ\x87\xe6\xd3C\xf3\xe9\xa1\xf9\xf4\xd0|zh>=4\x9f\xfe\x15y\x15\x13o\x8a\xe4,\xaae\xdb\x1e\xdd\x02Rj\x9f\x84ڝ\x96\x91\x95\xd3)(\x14\xbe8\xbb\xa0\x1c\xa5]\x02\v\x9d\xa1*\xd1\xed3b\xb1Q\xa0\x02\x9a\xbb\x9a\x17q~\xc1\xcei\x85\"\xa4ؾ\xcc\xddK\x8d\f\x0f\x90˷_\xd7NהV\ai\xb7\x03q=oE\x96~W\xa8&\x84\x8e\xea\xacq\xb8u\t\xf8\x19\x97\xdaߓEdgs*\x04p\xaft\xb38\xccΩ&\x13\x00Ad\x01©-\x94h&f\x1c\b5\x86f\xf3\xb1]A\x9c\xf7\xcc\x13\x81\xefZW\xcfT\x1b\x05t\xe1\x88A\xc1\"\xb6Ϡ\x9d\"\xa1\x99\x92Z\x93E\xc9\r+\xaaI\x12\rX*#2i\xe9jZo0&\x89\xd7\x17PϪUD\xcfѕAk\x9cyC\x959\xc3v\xb0\x8b¬\xdc]\xaa8\xc1\x87];\x956$\xe3\f\x84\xf1\xabv\xf5\x19q\x9eg$67\x1e\xaf\xef\xba]\xd0\x1e\xb5\"G\xafHa\xb4\xbb\xe9\x936Q?Ŝi\xef}\xd3g\x84\x9a (\xa3\x89>\xd0\x12\x92}P\xe0ܬ\xfdO\x89ӬK\xfa\xeb\xfa\xaaY\xcd\f\xa7\x9c\xc6)\x86\x81)\x9d\xb5j9\xd4\xf6!&\xb9#[\x8d\x02\x8be\x87\x1c\x16\xf0\xe0\bXZ\xfe\x01\x19\xb0%\xfa\x83,g\x8c\x82\xb8\xceE\x9f\x9d\x896t\xd77\xa05\x9d\xc1Md\x8a\xcd6\a1f\xd9\xd4\xc4\x15ipa52#\x1b:\\}\x01\xa5m\x81F\x81]\xb85V6\xe7\x83b\xc6\x00\x121v\xae\xc2\xcc\xc3\xc8<\xf0\x8d\xc95\xafǼ\t\x1ft\x1f\x8a\xa5Z\xabO\x89\xdc]\xea\x98\x00\x99(\x06S2e\x82r\u007f\x0f#\xee\xc2\x11\xf6\xb3\xa0ڒ&\xd5\x1a\x14\xfa\\\xbc\xdb)\xe0&\x8e`\xbf\xf7\x884\xaa\x14\x19mt\xb9\xc4\xeawlJfx\xd7#Ҙ\x98SA\xfe\xf5\xab\u007f\xff#\x99\xac\xac\x16\x8cƱ\x91\x86\xf2j\x039\x88Ydm\u007f/\x9e\xdau\xc8*J\xe0l\xc1b\xddB\xd6\x18\xf8\xdd\xfd\xa4\x1dh<\xcfayޠ\xcf\x11\x97\xb38\x9c\xbe\n\xf7+\xab;\x931\x8a|\x92k\xbf\x83\rHβU2#\b\xcds\xc8\\>8W^\xcf\x13[_q,dQr\x97\x92\xf1u\xa8,\x19\x05\xb2\u0530Y\r\xab\x93\x0f\xc6RC\x98\xdaz\x87pwe\xca/%Ni\xf1\x85\xe7|h\xbcꙃ~\xe2\xaf)\xe7\x13\x9a\xdd\xdf\xc9\xef\xe4L\xbf\x15\x97JE\xb6\xd9G\xea\x0f\xf8\xe0\xd4j1\xf3R\xdcc\xcbۺְ\x8c\x93\xb6\xb24Ei\xc2%\xef\xa6{7lft=\xc8JA\v\x9e\xe1zv\xf0h\xcf-\xbag\xe3\u0601/\xbe\xe3\xb8\v\x97\xb3j\xde:0\x83\xd8\x1bA\xbf\xfb\xea_\xffͱ,\"\x15\xf9\xb7\xaf\xf0ʨ>sB\fu\x03\xab\xc8.(\xe7\xb1\xc1\xac&\x83\xb1D?\xee`\x12\xcf\xce#L:;x\x16\x93\xfb\xee\xee\xefho3\xa3\x81O\xcf\\\xed\x91\xe0A\x8c\x02z\x8cJܱ\x97\xb2X\xe4\xe6#\x18\xb4K\xc9\xcb\x05\xbc\x86%\xcb\xe2\"\xfc-T\xb7\xa0\x84H\x10g\xda\x10\x19W\x05b\xc2evOr\x0f\xa8q7c\xbd\x8fu\ff\x12n\xa1l]]}\xff\x84\xc46#ZТ\xa8j9(\xfa\xd0Z,\xf2\x92\xe8\v(45P\x9d\x9e\xd5\xe1\xa6\x1b\xab\xb0\x87w\x1bX\xad\x01\x05\x82)b\xa5\x9f\x1b\xfe\xe6\xf5FC\xaa\xd0A/)\xd7\xc0\xef\x89\xd3\xd3\xec\xce!g\x8e\x0f\xaf\xf7HzH\xbb\xd3\xd3±\xa8r\x05\x16\xd4x\x9b&1\u007f\x06\xa9\xb6\x00\xa5\x99\xb6\n\xcc{<\x13\xaf8e\x8b\xf4\x1b\xfe)\r\tz\xb4\x80M\xc9K\x185\xe84\xf2\xc5hD\xf7\xaa{\x14w\xb7ű4l\xe9\x9b\xce\xf5od\xee\x01!\xabvm\x98\xad)\x1bM\x0e\xdb\n=\xf4R8\xfa\xb2\xfd\xf75\x8e\x9a\\߭3\xfe8\xe3\x01r0=\xb3\xff\x18\xec\x1b'\u007f\x00\xee\x8d|\xdb/\xa3oݹ\xa6\xc3\xc6\x13T\xc3\xf4\xf2>\x92\xb1ˍM\x00o)\xc8O\x8f\x1c\xbf<\xfe\xa0<ܡ[ɂ\xce\xd0\x1a\xe9\x89\xf5up\xfd\n\xcdZ3\x19!V=c\x10.\xe4Um\xf3$\xa0\xeeB}-\x87\x83\xf9\x84\x95\xc7\x12 >\xd0\x15\xa1J\x96\"w\xb1\x87:(\xf5f\r\x1d\xd7R\xa4L\xd9G\xbf}\xa5\xa9\xaa\xa6-\xa6\t0A^\x8c_|\xf5\xb9\t~\\ɚ\xe0O,\xfc\xdc\xe0[\x1f\x14\v\xa1e{OL\xbc\xf1.ֺ\xc3zR\xd9I\x17\x03B \x0f\x8a\x19O\xcd\x0fL\x039\x89\xf5\x9a\x87!U\xb3\x96\xe5iۥ\x97Ի\xbd_\xd1S]N\x9eA28\x86\x9e\x80\x1edB]\xbex\x9d\x0e\xb3C\xac4\x91~\x94\xd2\xe9\xe3\xc4\xcd\xe6\xd8U\xbd:\xfd\xa0\x87\xc4o\xd9\xe5c\x91\xd09\xae\xb5m\x97\x8f\x05E\xaf\u007fQ\xef_\xca9\xa9E\xf8\xf6\xfdK\x80\xbb]-\xf8\v\xcc\xe92I\xfei\xb6`\x9c*\x8e\xa9e\xb7\x0e\x93dR\x1a\x02bɔ\x14I\xb7/\bYRŰڸ\x02\xac\x05\x99\x81&_\x9e\xbc\xbfx\x87\x19\xda)\x85\xbb\\\x99N\xbf?\xa5v\xe5\xc5\xfbb\xb4\xb1\xc8\xf5CP\x93t\x02\\w\b\x02>-e\xa2\x06\x10\xf0K\x13R\x95\bY\x94\xa6\xa4\x1c\v\xb6e\xbc\xd4l\xf9!eQ\xaa\xe5X\xe9ڿ \xc3ї\f|͢\xf8\xcdZyĚ\x91oT \x8cN\xd8@e\xb0\xaepۙV\x13IǡAU3I\xd8;\xd4}\xf5Tw\x85\xd0\xf7|\x8bM]Z\xcb6X\xd0\xd9Gp\xad\xc7\xd2t\x14UF\xd3c\x1c%\xfa\xbc\xcf\xfd\xa6\xdeV\x8bݛ\xbe\xe7\x9a\xf3:.\xe8#&TR<\xae{\xaePNq\x16\xe4=pP2\x88\xa5\a\xcaLuߔ\tf\xa2;K\xa0\xe1\xe4\xea)\xefG\x00Q[\xbf\xf7\xbe\xec\xf9\xe0\xd3\xdb\xf6\x14\x99\xed$\xab'g\xb1\xeb\xfb;^f\"\xe3e\x0e\xafx\xa9\r\xa8w\xa0e\xa9:\xa3\x1fk\xd1\xe5η\x1a\x97J\x1f|\xc0)s\x8f\x8ct&\x8bN\xf6\xa0\xea\x97+}\xc6O*\x0f\x05'\xf0~ru\x93\xc6U\xf6\xd2F*\xd8RY[\x94\x9c\xaf]j\xec\xec\x9b`\x9f\xb3\xdaɖ\xbb]\xbb\xec\x870EkH\xea\x82\ue372\xc6\v.\x01_s\x96\xa1\xc3^\x84?\xb8\xff\xb2\xb3\xf6\x1f\xe9X\xa1\xdbK\x97\x84\x8ayY\x18\x9d=\xc3\xe4\nQ\u007f\xc1UPp\x1f\xde\\\xfeV\xa7\xe0\u0383\xb4\x17Һ\xe80L$\x92\xc8\xea\xe7\xd7\x10\x16(g\x1f|m\x92M\x13c5\r\xfa\xe7&4\xbb/\x8bO\v}\u0601\xfa\x168\xea\x06O\xa0\xee\xbb\xe6\xb3\x0em\v0t\xf9b\xdc\xfe\x8b\xb5\xad\x197\x98\x85ܩ\x9a=\xb8LH\x8b5w\xe1,gK\x96\x97\x94\xb7(\xb0\x81\xb3\x1a\xb5x!\x95\xf1\xae\x04),\x89\xeb\xdfoḺ0\x18}Vw{\x81\xd1\xf1c\xd5o\x9f\n\xdb͂\xdb\xeeŵW\x1c\x16}\x1c\u05f7\x03\xd7\x01\x8f\x9e\xb5[\xfbak\x9a\xed\x9d/H\x18\x9eÕ_\\\xbfަ\xde\xectٷ\xa6z\xb1c:\xfe\xccT\x1b\xbe\xab\v\x83W\xc4\xfc\x9d/}F(\xb9\x87ՙK~\x15\xbe\f\xbd\a\xe2\xba\x06{\xb5\xe1\x1e\xb6\xab*\xf6e\ao\x1bb\xf6q\xe0\xdf\xc3N\xdfW\v\x1d\xf7\xb0\xaa\xc2\xee\x88\x17\xfbC\b\x80֨\xf0m\xdcw\xcb\xfe\x9dQν\U0010d035\xbd\xa7_\xa1Y\x81%>G*v\r\xc7ڷj\x96B\xcfY\xf1Tr\fŔm9\rد\x9a\xf7:\xf0\x8e\xfe\xae\xc4\x19\xb9\x96\xc6\xfe\xcf\xe5#\xd3O\\ȱ{\xf9Z\x82\xbe\x96\x06\x9f\xee\x8d\x1c7\xb5\xbdQ\xe3\x1eG\x92\x16\x8eG\xe2%%\xfcF\xb5̫\xa7\xef\xbfW(f\x9a\\\t˨<\x0e\xaaˊڃo\xde1D\xae\xb6[\x13u\xdfn\xc1wh\xb5\xdfhb\xae\xf9\xa9\xdd(oM\xc3M\xc1y\xb4\xdd_0A\xbb\xe04\x83\xdc\xf7\x99\xb0\x1bo\x1450c\xbb\xdb\x0f,@\xcd0\xd1 \x9b\xefZ\xd5\x1e\xa1\xc3=\x15\xefC\xa8\xc8\xdbYͨB\xfbs\xa8\xd0^\x86\xa0\xf8܂\x8d\xd0I\x8c\xf2\x9b'9ړ\x18۔E\xee\xd3^\x98\xd3\xc2R\xfe\xffX\xf6\x8cD\xf4\xbf\xa4\xa0L\xe91\xb9\xf07T\xb6|\xb7\xf9\x86\xd7u\x9a\xc0-\\\xa6\x89݅%\xe5\xe0\n\x15SA`g\xf9\x159ݐ\x96g\xe4a.5J\x86:\x88tt\x0f\xab\xa3\xb3\xd6\t\xd9\x02\xd1>|%\x8eΪxY\xebPVr\nC\x18G\xf8\xb7\xa3\xf1\x86\x80\xdd\x02\xfb\t\xb1\xbb\x93Jv\xfc\xb1Һ߸Ԧ͝ߗ>v\xd2\xc6F\x05\xc6\xe67[\xc4\xd1T\x8e[fE\xd7'\xa9\x9a\x81\xe92A\xbcƌ\xa9\fcr!V\x1bp\xf1b\\\xa7\xca퍸\x8aΊV\xfb\"li\x89\x19\x12\rP>qIw\x1b\xc2\xf6\xc1\xcd]۱)(@\xd5\x12\xaee\x0e7Ru\xe5w\xb4\xe35\xeb\xcfwX\xb4\r\xa4H\x9ec\x9e=>\xda1_ԍ\xbd^|H\xe3\xd3\u007f\xff\xe6\xfdS\xebyW=\xb8{!\x14{k\xb8\xfd\xeaX\x87}\xdfݵ\x11\xb4\xd0si\xc8I\xb8ԞqY\xe6\xfef\xbf\xea\x88\xf7\xf4X\xa5\xce搗\x1c\xba\x9b\x0en\x94\xa9\f\x8f\x06ݯ\x14\xec\x9fe\xbbEo\xf0P\xf9\xa7\xbb\x0eB\x8d\x93ʴnxT-;\xfa\v\xeeg\xf8\x92\xb7\"=\xe4-\xa9\xf0M\x90\xee,Hm\xf0\x9e\x920\x8d\xa2k\xc1\xec\xcc|{\x0e\xffx\xe75\xbb\xb0\x86mǡ\x83}t\vב\xff\xeaFD|˱r\xb9\xf4m\x18]4w\xebr\xee3Z\x98R\x85\xf6ץ\xc2~`u\v\x13\x1a0\xe7Q\xd4\x02\xbb\xdd0\xf0~A&\xc5\x1d[\x806tQ\x18yw\x0e\x88\x0e\xa0wh\x9c\xa8%\xc6\x02\x02\x1c\xcc\xf7\x9dJE\xb0\xab^5\xf5M\x8a\bW\xc7sj`\xd4y\x93p\xaf\x93\xd8)u\\\x8f\xdc'\x10|\xe9\x1a\xe9\xa2\x04\xca0O\xccn/\xe7\xee\xedp\xf3\xc0_\xf5{\x00\x05d\x06¢\xb8\x93\xe3xUֵz\xb2\x88\xf5'\xb8r\xe0ܹ\xeeX%塅/V\xc0\tRe\xab\xcb\f\x1f\xe9\xbce\xb5\xeb\x02\xbd\xbf\xf1\xf1\x0e\xa8\xee\xca[j!\xe2\xeb\xe6\xb3\xdeVq8\xc0\xa5g\xd4\xf5\xc9s\x1dK\x99\x82N\xd2\xf7S\x92\xf8\xe5\x883NH1\xa7\xfa)vyc\x9f\xa9Zr5\x0ee\xc5)\xdfm\x99\x13\x88r\xb1\t|D\xae\xe1\xa1\xe3ׯ\x91\xe8\xdf\xfb\xb6\xca\x1dGiD\xaeč\x923\xd5U%v\x14\x0eV\a\x85\x8c\xc8\rU\x86Q\xceW_ww\xa3\t_\x8f\u009d\x9fʓZ\x82{\xacVD\x99p\xe7\xcfR*\x9d\x84^\xd5~c\x8fuM\xc7\x1d\x9b\x1c>:\xb6F(\x04G\x05k\x03\xc5\x14,mF0\x9dJe\x9c\xe2;\x1a\x116\xf5\xfc\xb3K\xf9\xa0\x8c\xa3\n\xe7\x82h\x84\x99\xda@\xac\x04\x92T\x84\x8a\x15QH\xac\xd8\xfakAW\xce\x05O\xb3\xac\xb4\xc7\xf3\\\x1b\xda%gz9\xe4Ш\xf4D\xb6\xc5\xdak\xfb\x82\x9b\xcfW\xdd\xf7\xab:%\bΡ\x0e;e;ΰ\xb5\x1a\x18\xde\xea\xaftPmOY\xb7%\xf2TQ\r\xbc\x13y\xb5\xdd@n\aܪ\x87\xc3\x02ܕʍeȦ\x8a\xbcݝ\xc8tx\xd5\xeeY6NJzf\xaed9\xabڥoc\xa0\xdb܊%^\xfa-x9\xb3d\xed\x1d}\xa6T\xa2a\xbdx\xd7_^Ow\x17\xd0\xdd(ܡ\xbb\xeb\x96\xc4{J\x01l=\xdcO\xb2W\xd7\xdd?]\x89\xbc\xacX\xea\xe5>\xb2\xf9\xfd\xda\xe3k\x81\x14+\xa5k\x88^\x9ev \xe7\x84M\x9d\xd74\xb3\xb3\xdeL\xde\xf9\xc0\x01\x91\a\xaa\x04\x13\xb3\xa7\x16\xff\xbd\u007f\xacC5\xf1\x10:\x94\x93\x8eET\xeaJ\x94r\x12&\xb9%קRXz\xa8'\x9dgh\xe3G$企d\xff%\xffK\xadֻ2\x17>P\xe9p{\xcfD\xfe2$\x04\x16\xbcT\x94\xfb\u007ffR8\xb6\xa0_\x92\x1f~\xfc\",\xe8=(]\xfd\xf8\xff\x03\x00\x00\xff\xff\xe2w\xf4\xcch\xec\x01\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec<\xcdn\xe4\xb8\xd1w?E\xc1\xdfa\xbe\x00\xee\xf6\x0e\xf6\x12\xf86\xeb\xf1\"\xc6Nf\acǗ \a\xb6Tm1\x96H\x85\xa4\xda\xee\x04y\xf7\xa0\x8a\xa2\xfeZjQ=\x1ed\xb30/vKd\xb1\xfeXU,\x96x\xb6Z\xad\xceD)\x1f\xd0X\xa9\xd5\x15\x88R\xe2\x8bCE\xbf\xec\xfa\xe9\x8fv-\xf5\xe5\xee\xfdٓT\xe9\x15\\W\xd6\xe9\xe2+Z]\x99\x04?\xe2V*\xe9\xa4Vg\x05:\x91\n'\xae\xce\x00\x84R\xda\tzl\xe9'@\xa2\x953:\xcfѬ\x1eQ\xad\x9f\xaa\rn*\x99\xa7h\x18x\x98z\xf7\xc3\xfa\xc7\xf5\x0fg\x00\x89A\x1e~/\v\xb4N\x14\xe5\x15\xa8*\xcf\xcf\x00\x94(\xf0\nl\x92aZ\xe5h\xd7;\xcc\xd1\xe8\xb5\xd4g\xb6Ąf{4\xba*\xaf\xa0}\xe1\a\u0558x*\xee\xea\xf1\xfc(\x97\xd6\xfd\xd2{\xfcIZǯʼ2\"\xef\xcc\xc7O\xadT\x8fU.L\xfb\xfc\f\xc0&\xba\xc4+\xf8LS\x95\"\xc1\xf4\f\xa0&\x8c\xa7^ը\xef\xde{\x18I\x86\x85\xf08\x01\xe8\x12Շ/\xb7\x0f?\xde\xf5\x1e\x03\xa4h\x13#K\xc7\xec\t聴 \xe0\x81\t\x04S\x8b\x02\\&\x1c\x18,\rZT\x8ez\x94\x06W\x01ô\x01\t\xa0\r\x94h\xa4Ne\x02?\x89\xe4\xa9*\xfd`\x9b\xe9*Oa\x83`*\xb5n\x06\x94F\x97h\x9c\f,\xf4\xad\xa32\x9d\xa7\x03\x8c\xdf\x11Q\xbe\x17\xa4\xa4+h\xc1e\x18\x18\x83i\xcd\a\xd0[p\x99\xb4-\xfe,\xfe\x1e`\xa0NB\x81\xde\xfc\x1d\x13\xb7\x86;4\x04&`\x9dh\xb5CC\x1cH\xf4\xa3\x92\xffl`[p\x9a'ͅ\xc3Z\xaem\x93ʡQ\"\x87\x9d\xc8+\xbc\x00\xa1R(\xc4\x1e\f\xd2,P\xa9\x0e<\xeeb\xd7\xf0gm\x10\xa4\xda\xea+Ȝ+\xed\xd5\xe5\xe5\xa3ta\xa9$\xba(*%\xdd\xfe\x92\xb5^n*\xa7\x8d\xbdLq\x87\xf9\xa5\x95\x8f+a\x92L:L\\e\xf0R\x94rŨ+^.\xeb\"\xfd\xbf Q\xfb\xae\x87\xabۓ~Yg\xa4z\xec\xbc`\x85>\"\x01\xd2l\xaf0~\xa8\xa7\xa2e4=\"\xee|\xbd\xb9\xbb\xef*\x93\xb4C\xee3\xdf;\x1a֊\x80\x18&\xd5\x16\x8d\x17\xe2\xd6\xe8\x82a\xa2JK-\x95\xe3\x1fI.Q\r\xd9o\xabM!\x1d\xc9\xfd\x1f\x15ZG\xb2Z\xc35\xdb\x0f\xd2êL\x85\xc3t\r\xb7\n\xaeE\x81\xf9\xb5\xb0\xf8\xdd\x05@\x9c\xb6+bl\x9c\b\xba\xa6o\xd8\xd9s\xad\xf3\"\x98\xa9\ty\x855~Wb\xd2[24Nne\xc2\v\x03\xb6ڴ&\xc0v\xadYh\xe3\xab\x16j\xd3C݇ϏZ\x9bk\xa3\x15\xe0\vɾ]ͤ;\xcf\x19*Za\xa6R\x84\xe7\x01L\xa8M\xcc\xfa\xe0\xcd\x047\xf9\x15\x16%-\xd7\x19\x14\xef\xebn\x84\"\xf1(mܑ7(ؘ7][580*<]\x86į\x9dLk\xabq\xc0\xcd\xe3\x1c\xf5\x88mE\x95\xbb\a\x9dW\x05\xda{\xfd\x15\xad\x93\xc9X\xcf\x01\x11\x1fG\a\x06y\xa3%\x0e\xbb\f\r-N~\xc1\xf6n\x14.\U0001ac58\xb2\xc9\x13O\b\x026\x9e\x03d;\xf3\x1cJ\x9d\xc2\xce\xcf\x04\x9b}@\xfaP6\xad|6Z\xe7(Ƹ\x86/I^\xa5\x986.o\x94/\x03jo\x0e\x06qp \xa4\"-#WL\xa8\xaa\xe6\xed\x04\x9d쯄A C!\x95\x87\t\x92U\xb0&y\x9c(鰘\xc0\xf3\xa8F\xfaFA\x88\xd8\xe4x\x05\xceTc\xba\x1e`\bc\xc4\xfe\b\xcfB\x00\xb5\x84e͘ڜ\xe72AbVc\xb4\x99k̚\t\xfa\xfe\a\x19\x96i\xfd\x14ä?Q\xbf\xd69A\xc2q*l0\x13;\xa9\x8d\x1dF8\xf8\x82I\xe5pj\x1d\t\a\xa9\xdcn\xd1\x10\xac2\x13\x16m0)ǘu\xdcDP3\xc7\x05\u007f@W+t\x12\x1esc\x8a\x146œP\x81\x11'\x8b]\x95 U*w2\xadD\x0eRY'T\xe2\xe9\x13\r~\xe3\xf4\xc1\x9cB\x1c\xe0\xef\rp\xa0\x82\xa4\xd4\xf3lZ!\x85\xa3\x856\xe3\xca\x11\xda!\x98i6l\x04Y@=\xe5\x8e\xdaf(\xa2\xafQI٥\xb6v碕\x94\x0f\ns\xb1\xc1\x1c,\xe6\x988m\xa6\xd9\x13\xa3\x04\xbe\xc5\xda\xcf\tΎX\xd2\xd6g\x90\xa2\xce\x1aѶ9\rϙL2\x1f\xbf\x91\x961,H5Z\xb6\x18\xa2,\xf3\xfd1\xa2!F3\xea\xc9\xe6\x8cF\xdb\"\xcc\xc7\x10\xee\x94!i[\xa4\rnی5\xees\xbdQ\x9b7\xa6\xf7\xd0Tߤ\xec\xb7\a\xc3__ىݒ\xf6w\xb7[\xc0\xa2t\xfb\v\x90.<\x8d\x81J\x01V\x8b\xc7\xefLp\xa7\xad\x96\xdb\xe1\xe8W_-\xaf\"\xb5\x06\x8d߉\xd0\xd8Y\xddվj\x91\xc0>uG^\x80\xdc6\x02K/`+s\x87\x1cK\xcd!\xda\ttf%\xf7\x9a\f\x8a\xf5\xbd\xd4\n\xe1\x92\xec\xa6\xd9\xd2F\x8c\x18\xf0j\b\xc0\xc7\xe5a\x0f\xc32\x88\x00\tMP\xc1Y\x10i\xb0\xf0ٕ{^\x1f\xed\x13\x8e\x00?|\xfe\x88\xe9\x1c\xcb ^S\x0f\x88\xfa0\x88t\xba(0\x81Q ;Dq\x98\xd6\xec\xf1|\x0e\xed\x02\x04<\xe1\xdeGV\xa3\x9b˱F\xa2\x15\rH\x83\x9c\xd0c3\xf2\x84{\x06Ug\xe8\xa2\xe0-Q\x15ߞp\x1f\xdbu\xc0T¯\xceQx\xee\xd2\x03\xa6\"f)\xb5\xadaj\xbdv\xc0\xe98ba\x99Q\n-p\xfcD\xb2\x1b\x81\xf5\xd2\xd2O\xb8\u007fg\xbd\xf8h\xd5d\xb2\\\xc0\x012\xd8`\x91WX\xc8\xc7>\x88\\\xa6\xcdd\xbcN\x16@\xbcU\x17\xf0Y;\xfas\xf3\"-\xa1\xa8R\xf8\xa8\xd1~֎\x9f|W\x16{\"Nd\xb0\x1f\xcc\xcbRy\xb7@|Y4\u007f\x8b\x03\xbbPR\xd1Fl\xd2\u00ad\xa2\xfd\x99\xe7\xcf\x121e\x18\x90\xf3h\x15\x95匮\xd2j\xc5n:̶\x00h\x17\xafZT\xda\xf4$u\xb1\x10\xe2(\x8a5z\xf7\xe4\xad\xfc\x9b\x83\\\xf8\xb1f\xb0\xccE\x82)\xa4\x15\xe7\xdb9\xf1.\x1c>\xca\x04\n4\x8f\b%\xf9\x8dx\xa5Z`\xc9};A\v\xe3C\x8b\xd0j\xb7\x90\xc6!\xb6\xa2U\x1f\xd93\x889\xaa\xfbD\x96\xfdx\xf78*ٽs<\x14\xc5}\x91\xa6\x9cz\x16\xf9\x97\x85\x9ee\xa1\xbc\x0ec\x10\x8f\xa4\x0f?\n\xc1\xc9\xde\u007f\x91{e\xf5\xfew\x9c7\x14\xd2\xd85|\xe0\xc3\xcd\x1c\xbb\xe3C\x96\xb03U\x14H\xc2DZ =ى\x9c\xc2\a2\xde\n0\xf7\xc1\x84\xde\x1eDPq&\xe69\xd3\xd6\xfb\xfc\xadĜO\xb7Οp\u007f~q`\xbd\xceo\xd5y\x1cL\xb2\xf9\aF\xab\x89Z\xb4\xca\xf7p\xce\xef\xce90[\xb2DN\b\xde\x16hutW>~^\xb2\x15\xa0\xbdv\x88ZhpsHK!\xfc\x1c\x15\xd1:]j\xeb\x16\xa1\xf5E[\xe7\x13\x80\xbdp{$C\x18\xb3\xfb\xab\xb3\x86 \xb6\x0e\rX\xa7M8\x10%\xb3;H\x90\x93\xe4\xed\xbc\xecI\xd4M6\xd2\x03\xa6M\xe6yk!\xbcM?\xf7'\xa5\xf4\xff<̄\x83%\x86]\x1a\x9d\xa0\xb5\xf3\xaa\x14\xe99f\x12\xb6M\xb2V\xf8\xcd\xdb6\xca4Ǥ\x92C[\x16\x8a\x13kO\xd8\xd8ܼt\xf2\xced\x86\xe8w\x8c*\x9f\x82#p\xd1KQ\x88\xe1\xe1|4\xba\xd7~tX\x8050\xbfa2\x8f\x15\x1b\x95eqs\xad\x92\xbf\xb5\xc0\xa3\x90\xea\x96'\x82\xf7\xdf-X\x81`\xca\xf1ԭ\xccu\x18\xdf\n\xa4y\x10\xbb\u007f\x85pԬ\xf9\xac\xc6`O\xb2\x87'\x19\xf1\x92\x02\n\xa6\x95v\xdddM=\xd3;\v[i\xack\x11^\x00UZ>N\xfe\xbe{Luc\xcc\xc9[\xcc_\xfd\xe8NZ1\xd3\xcfuaĒ\x8du`~&v\br\v\xd2\x01\xaaDW\x8a\x13^d.h\x9a\x05\x10\xbd\x10\xbd3\x89\xf4\x99\x9d\xc1\xaa*\xe2\x19\xb2b\xed\x94j6;\xd6\x1d\xf2\xb3\x90q\xd9)8M\xacN\x16\xa8\xabY\xd7\u07b6~e\x87\x1fݫ\x80)ċ,\xaa\x02DAbY\xb2o\xdc26M\xb9\x8c\x97\xf5\xb3\x90\x8e\x0f\xfd\b6\x89g\x995MtQ\xe6\xe8\x106\xb8Ն큕)6\xe1C-\xff\xd1z\x93\xa9&`+d^\x99\x056z\xb1d\x96\xee\xdbj\xf3\xf4\xfa\x9b\xb1xDV\xcc\xccȤ\xfb\x82\xa0y\xde\u007f\x94fY\xc8\xfc\xc5\xe0뇦\xa5\x91\xa4\xa5z.:\x9d\x85\xc9\xd1k?:\xad\x95W\xa8\xfdTx:\v\x951y\vO\x9b\xf6\x16\x9e\xbe\x85\xa7o\xe1頽\x85\xa7o\xe1\xe9[x:\xde\xde\xc2\xd3N{\vO\xa3\xfdG\f\x86\xfe\xab\xa3#\x1d\xa2\xb0\x8a,\xc1\x98C{f\xae\xba\xd2\xe8:\xaf\xacC\xb3\xa4B\xfav|\xe4H\r}⻬\xf8k\xad)\xadiKWZ\xa7הLӒ\f\x8b\xc9\u007f\x8b\x11\x11\x85G\x97AOW\xdb\xc7\x16\xd0͕\xcd\xf5kǛr5\xff\xdf\x04C\x9c\x0e\xd3\xd7\xd2\xf3\xdf\xf8tk\xae\xfa\xb5o\xbc\x0f\b\x18\xff&\xeb\xca#\xcb\xdaf\x8aَ\x17\xe2Oy\xf8\xc0\xcb\xc1\xe1B\x9f\x99\xa6W\xf8\xfd\x9b\xe6eD\xb5\xd9t\x8dY}j\x89N\xecޯ\xfbo\x9c\xae+\xce&({\x96.\xf3\xdf\x1f\xd1\xd6U=v\xcbڃ\x9e\xd6\xdf\xfe\ry<\x01Q\x1bP2\xf7\x02\b\x10z\xec\x87_K\xbfE>y\x9d\xcfo\xd4\xe2\xebҖV\xa35\xf5C\xf3^\xe5\x1bjЖ} 0[o\x16\x834\xc4T\x99\x8d\u05cf\xcd@]R[\x16\xbb\a\x8f\xa8#\x8b\xaf\x1e\x8bc\x0f\xf0\x17\xbb\xb15c\xd1Q[l}\xd8\xf7\xa9\n\x8b\xac\x05\xebTx͂<\xb1\x02,\x9aaq\xd5^\xd15^\x9dʭyn\x1d\xa9\xec\x1a\xafך\x059V\xcf\x15S\xa5\x15\x85ktmVSq5\x9fI\xfc\xa6\x8a\xacׯ\xfd~\xcd8\xffx}UTUU\xd4^`\x1e稺\xa9\xa5\xd5RQ\\]Z\x19\xd5T=\x1d\x998\xaa\x1e\xea\xb0\xd6\xe9\x18)\xb3UP\xd3\x15N\xc7\xc0\x8e\xd5>E\xd45\x1d\x01٭xZ\x1c\x06\xccj\xd3L\x87\xf1\xaf\xeaC\x9b\xf7\xb5\xf9\u007fC\x03\xbf\x95hmR4\xb3\xbb\x92%\xa8Ϣ\xdd\xcfW\x0e\xe6\x1f|\xae\x13>&\xa7^\xdd\x1d\xcfT\x14\xa5\x9b\xcfG\x12\xf8E\xaa\xd4k\x12-\x96NL\xc37Tp\x81Y\x13fMWܶ\x11\xed`\xb7e\xb1\x14d\xd4S\xd8\xec}VȮ\xe1F$Y\xd3q\x02\"Ϝ\tK;\xfbB88o\xb6\xb1\x97a$=9_\x03\xfc\xac\x9b\fB\xe7\xf3\xd0\t\xb8V\x16e\xbe\x87\xca\"\x9c\xf7\x01}\xdb.lRw\xac\x12\xa5\xcdt\xb8I b#v\xd7\x1f1\x92/\t\xf7\b$\xb9\xae\xd2f\x86#\xe2\x16j\x0f_\x1e8\x92㯧\x93\xf6+\xf3:R\v\xfb\xaa\xc1G\xe8\x13 \xa7.\x8fXIJ鬊uڈG\xfc\xa4\xfd\xbd\x1a1<\xeb\x8f\xe8]\xadR\xdbՐc\xad\x8b&'5\xd9\xd36\x04\xd8\x1e\xbdԫ\xadMB\x11\xb6S&wf\x9d;\x97G\x10w\u007f\xff\xc9\x13\xe4d\x81돕\xcfp\xadJa,\x12\xa7\x03\xa1~\xd0f\xda\x12f\xfa\x19r]\xf3\xe1\xa7!\x1d\x06\xf9\xa8\x87\x93i'Q㯰\b\xea\x1bX\x17\xa3\xf2\x0f\xe3#;\x9b\xe5\x8e\x10\x8f\xe5\xc4\xf4v\x12\x96\xb0V'\x92m\x11\xa7(\xf8\x84\xe5\xfbݱp,\";b2*\x8b\xbf>+4_\xc3B\xb5\xb7\xcaKj\xe6֕\xbf\x1c\f\f\x02\x1e3\x1fd\xff\x06\xdd\xc7\xfc\x9e\xaa\x19d\xfd\xdd_ތ3\xe3\xc2=4\x87\xac\x9bY\xff\xd3k\u007f<\xa2^\x8d_\xfd\xb2jn\xa39\x8b\xe0\xacu\xc2U6\xe6\x82\x1f\xee\b\x89(]ej\xf7\x9aT\x86/\x9c \xe8\xefc8튟\\X\x17%\xcbOM\xc76\xc3`\x9d?\x8f\n\x06\n\x9e\x85\xe5\xbbs\xfciԨkn.\v\x9a\xbc=\xc7{\xd7+H\x85\xc3\x15\xc1?M\x9c\xa3\xeb\x80/蘡\xf4\v\xf5iN\xc7kF\xf3\xc0p\xb1\xc7\xdd\x14\xea\xe3ǝ+\xf8\x8c\xcf#Oo\x14\x11q\xb8\x19\xf5g\x9a\x98r\x86b\xecz\xb3\xa3$\xee\x9aQ|\xa0\xfc\xe8\xde\xfew~\xce?\xc2\xe5~\xfc3\xd1\xca\xc7\xd4\xf6\n\xfe\xfa\xb73\xa8}\xedC\xb8\xc1\x8f\x1e\xfe'\x00\x00\xff\xffa\r\b,+Q\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4V͎\xe44\x10\xbe\xe7)J\xcba/$\xbd\xab\xbd\xa0\xdc\xd0\xc0a\x05\x8cFӫ\xb9 \x0en\xa7\xd2mƱCU\xb9\x87\x06\xf1\xee\xc8vҝN\xd2̀\x84o\xb1\xeb端~REY\x96\x85\xea\xcd\x13\x12\x1b\xefjP\xbd\xc1\xdf\x05]\xfc\xe2\xea\xf9\x1b\xae\x8c\xdf\x1c?\x16\xcf\xc655\xdc\x05\x16\xdf=\"\xfb@\x1a\xbf\xc3\xd68#ƻ\xa2CQ\x8d\x12U\x17\x00\xca9/*^s\xfc\x04\xd0\xde\tyk\x91\xca=\xba\xea9\xecp\x17\x8cm\x90\x92\xf1\xd1\xf5\xf1C\xf5\xa9\xfaP\x00h¤\xfe\xc5tȢ\xba\xbe\x06\x17\xac-\x00\x9c\xea\xb0\x06F\x8aJ\xa2$0\xe1o\x01Y\xb8:\xa2E\xf2\x95\xf1\x05\xf7\xa8\xa3\xe3=\xf9\xd0\xd7py\xc8\xfa\x03\xa8\x1c\xd06\x99\xda&S\x8f\xd9Tz\xb5\x86\xe5\x87[\x12?\x9aA\xaa\xb7\x81\x94]\a\x94\x04\xf8\xe0I\xee/NK`\xa6\xfcb\xdc>XE\xab\xca\x05\x00k\xdfc\rI\xb7W\x1a\x9b\x02``*\xd9*\a.\x8e\x1f\xb39}\xc0Ne'\x00\xbeG\xf7\xed\xc3\xe7\xa7O۫k\x80\x06Y\x93\xe9%\xf1\xbd\x12\x19\x18\x06\x05\x03\n\x10\x0fJkd\x06\x1d\x88\xd0\td\x94`\\\xeb\xa9K9:\x9b\x06P;\x1f\x04\xe4\x80\xf0\x94(\x1f\"\xab\xce\"=\xf9\x1eI\xcc\xc8Ơv\xa9\xbe\xc9\xed\f\xeb\xfb\x18N\x96\x82&\x96\x1dr\xf24P\x82\xcd\xc0\x00\xf8\x16\xe4`\x18\b{BF's\x94\x89\x9f\x16\x94\x03\xbf\xfb\x15\xb5T\x03\x0f\x1c\x93\x15l\x13\xab\xf5\x88$@\xa8\xfdޙ?ζ9\x12\x12\x9dZ%c\x9d\\\x8eq\x82䔅\xa3\xb2\x01\xbf\x06\xe5\x1a\xe8\xd4\t\b\xa3\x17\bnb/\x89p\x05?y\xc2Df\r\a\x91\x9e\xeb\xcdfod\xec:\xed\xbb.8#\xa7Mj \xb3\v\xe2\x897\r\x1e\xd1n\xd8\xecKE\xfa`\x04\xb5\x04\u008d\xeaM\x99\xa0\xbb\xd4yU\xd7|EC\x9f\xf2\xfb+\xacr\x8a\x95\xc5B\xc6\xed'\x0f\xa9!\xfe!\x03\xb1\x1dr}d\xd5\x1cŅ\xe8x\x15\xd9y\xfc~\xfb\x05F\xd7)\x19s\xf6\x13\xef\x17E\xbe\xa4 \x12f\\\x8b\x94\x93ؒ\xef\x92MtM\xef\x8d\xcbե\xadA7\xa7\x9fî3\xc2c\xed\xc6\\Up\x97F\x11\xec\x10B\xdf(\xc1\xa6\x82\xcf\x0e\xeeT\x87\xf6N1\xfe\xef\t\x88Ls\x19\x89}[\n\xa6St.\x9cY\x9b<\x8cc\xeeF\xbeV\xba{ۣ\x8e\x19\x8c$Fm\xd3\x1a\x9d\xda\x03ZO\xa0\xd6T\xaa7!I\x1a\xff\x12\xcb0I2\x9a\xd9|\x89\xfd\xf9:\x9a\xf5q\x92^\x0e\x8aq~9\xc3\xf4\x10e\xe6\xfe\xadiQ\x9f\xb4\xc5l\"O\x13|\x1dJ<\xe8B\xb7\xf4Y\xc2=\xbe\xac\xdc>\x90\x8f\x935\xcd\xf5\xebs\xa36 \xffo\xf6\xc6-\u009dG\x96\xa5\xd2?l:\xaa'\x03z0\x04\x14\x9c\x8b}\xbb\x98\x90\t\xc8|\x92/d\x8c`\xb7\x82f\x15\xcfg\xd7\xfa\xb4\t\xa8\xe8XI\xee'\x1c\x92=\xf8ɸV\f\xde\xceu>\xcb\xe1\xf5&B\xf3I\u007f\xd2\xff\xa6\x1cǍ!\\\xf5]&T\xab\x0f\xd1\xe3\x1a\xe3\xeb\xfd5\xa0\f֪\x9d\xc5\x1a\x84\xc2R;\xeb*\"u\x9aW\xcdXj\x97}\xea\x95\x02Z(\xc4>y9\xa0\xbb\xd5\r\xf0\xa2\xe6S\xfe\xca3\xecN\xb7T\xef\xce\xcbᲥr\xe9\xd6\x10gw)f\x85\xb37\x91\xb2\x9a\xbd\\ҫ\x9bǂ\x90\xedTv\x9c\x19W\xad1.\"\xcb\x18nBXM\xf6\xe22\x99o&\xe1\xb1xR\xfbi\xc0\x1cv\xe7?\xfd\x18\xc80\x92\xe1Ͽ\x8a\xcbt\x8e\xcb\\/\xd8\xdcϷ\xe0w\xef\xae\xd6\xd9\xf4\xa9\xbdkL^\xe2\xe1\xe7_\x8a\xec\x18\x9b\xa7q\a\x8d\x97\u007f\a\x00\x00\xff\xff!\xec@\xb2>\f\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4VM\x8f\xdb6\x10\xbd\xebW\f\xd2C.\x95\x9c \x97B\xb7\xc0\xed!h\x1a,\xe2ԗ\xa2\a\x9a\x1c\xd9ӥH\x963t\xbb\xfd\xf5\x05)j\xfd\xb1\xf26\v4\xbaq8|\xf3\xe6͇ݴmۨ@[\x8cL\xde\xf5\xa0\x02\xe1߂.\x9f\xb8\xbb\xff\x81;\xf2\xab\xe3\xdb果\xe9a\x9dX\xfc\xf8\x19٧\xa8\xf1G\x1cȑ\x90w͈\xa2\x8c\x12\xd57\x00\xca9/*\x9b9\x1f\x01\xb4w\x12\xbd\xb5\x18\xdb=\xba\xee>\xedp\x97\xc8\x1a\x8c\x05|\x0e}|ӽ\xeb\xde4\x00:by\xfe\x85FdQc\xe8\xc1%k\x1b\x00\xa7F\xec\xe1\xe8m\x1a\x91\x9d\n|\xf0b\xbd\x9e\x82uG\xb4\x18}G\xbe\xe1\x80:\xc7\xdeG\x9fB\x0f\xa7\x8b\t\xa2\xf2\x9ar\xda\x16\xb4ME\xfbXъ\x83%\x96\x9f\x9fq\xfaH,\xc51\xd8\x14\x95\xbdɬ\xf80\xb9}\xb2*\xde\xf2j\x00X\xfb\x80=|\xca\x14\x83\xd2h\x1a\x80*O\xa1\xdc\xce\x02\xbc\x9d\x10\xf5\x01G5\xe5\x02\xe0\x03\xba\xf7w\x1f\xb6\xef6\x17f\x00\x83\xac#\x05)\"/'\x02Ġ`f\x02\u007f\x1d0\"l\x8bj\xc0\xe2#r%\xfd\b\n0\xf3\xe7\xee\xd1\x18\xa2\x0f\x18\x85f\x81\xa7\ufb3dάW\xbc^g\xea\x93\x17\x98\xdcW\xc8 \a\x9c\xd3GS\xb3\x05?\x80\x1c\x88!b\x88\xc8\xe8\xe4T\xae\xd3\xe7\aP\x0e\xfc\xee\x0f\xd4\xd2\xc1\x06c\x86\x01>\xf8dMn\xc7#F\x81\x88\xda\xef\x1d\xfd\xf3\x88\xcd \xbe\x04\xb5J\xb0V\xf6\xf4\x91\x13\x8cNY8*\x9b\xf0{P\xce\xc0\xa8\x1e b\x8e\x02ɝ\xe1\x15\x17\xee\xe0\x17\x1f\x11\xc8\r\xbe\x87\x83H\xe0~\xb5ړ\xccc\xa5\xfd8&G\xf2\xb0*\x13B\xbb$>\xf2\xca\xe0\x11\xed\x8aiߪ\xa8\x0f$\xa8%E\\\xa9@m\xa1\xee\xa6n\x1f\xcdw\xb1\x0e\"\xbf\xbe\xe0*\x0f\xb9\x8bX\"\xb9\xfd\xd9Ei\xf7g*\x90;}j\x84\xe9\xe9\x94\xc5I\xe8l\xca\xea|\xfei\xf3\x05\xe6Х\x18\xd7\xea\x17\xddO\x0f\xf9T\x82,\x18\xb9\x01\xe3T\xc4!\xfa\xb1`\xa23\xc1\x93\x93rЖ\xd0]\xcb\xcfi7\x92\xe4\xba\xff\x99\x90%ת\x83u\xd95\xb0CH\xc1(A\xd3\xc1\a\ak5\xa2]+\xc6o^\x80\xac4\xb7Yد+\xc1\xf9\x9a\xbcv\x9eT;\x1f\xb0\xba\xc4n\xd4ky\x927\x01\xf5\xc5\x00e\x14\x1a\xa8N\xf6\xe0㕮j\x9e\xf3e\xbc\xee\xc2}y\xc0a\xda\xf1\x03\xed\xaf\xad\x00ʘ\xf2\v\xa1\xec\xddͷ\xcf\b\xb6\x90\xf7\xbaDʍ:\xf8\x98\x19\x1d\xc9`l\xe7<+\x93\x14k\u0084\xd6p\xf7\x04\xf2\x86\xe65\xc9\x02\xf9\x94\xe6\x05\x8f\xbbꖙd\xa1\xe7gӆº0\xcb\xfaT{\xbc\xc5`!\xe3\xdc\xe1\x14\xf1jV\xdb\xc7\x00_\xd5;\xa2$\xf1˻\xa7<\xab\x9e\xbb\xdaA:ňN*\xe6¦\xfd\u007f:(\x1c\x14\xe3\u007fh\xbe\x1c\xe1.\xbf\x9c\xcb`i@\xfd\xa0-N\x80\xe0\x87\x85n{\x11\xe5\xfc\xa1K\xe3Sn-\xbc?*\xb2jgq\xe1\xeeW\xa7n\xde\xde,\xfeb=\x9f\x189\xafSӃ\xc44a\xd7.\xab\x96S\xf5\x95\xd6\x18\x04ͧ\xeb\u007f=\xaf^]\xfcq)G\xed\xdd4\xac\xdc\xc3o\xbf7\x13*\x9a\xed\xfc\x0f$\x1b\xff\r\x00\x00\xff\xff2\x1e\xaa\xc01\n\x00\x00"), + []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec<]o#9r\xef\xfe\x15\x05\xe7a\xee\x00K\xbeE\x1e\x12\xf8m\xd6\xe3E\x84\xdd\xcc\x19;\x8e\xf3\x10\xe4\x81\xea.Ib\x81F\xaf\xa5\xbe\xb2\x15f4\xd7\xde躺\x83\xf6\a?$\xe0\xe1\xd7\xf0#\x8f\xe6\x0f\x85\xb4\xee\xe7\xce\xc7_\xa4u\xfcCU\xd4F\x14\xcdL\xfc\xcdJ\xb5\xaf\va\xe2\xd7+\x00\x9b\xe9\n\xef\xe03MQ\x89\f\xf3+\x80\xb0\x1c\x9er\x15\x10>\xfe\xe0!d\a,\x85\xc7\x05@W\xa8>>n\x9e\xff\xf1K\xef3@\x8e63\xb2rL\x14\x8f\x18H\v\x02\x9eyY`\x02\xf9\xc1\x1d\x84\x03\x83\x95A\x8b\xcaYp\a\x84LT\xae6\bz\a?\xd7[4\n\x1d\xda\x064@V\xd4֡\x01\xeb\x84C\x10\x0e\x04TZ*\aR\x81\x93%\xc2\x1f>>n@o\xff\x82\x99\xb3 T\x0e\xc2Z\x9dI\xe10\x87\xa3.\xea\x12\xfd\xd8?\xae\x1b\xa8\x95\xd1\x15\x1a'#\x9d}\xebHU\xe7\xeb`y\x1f\x88\x02\xbe\x17\xe4$N\xe8\x97\x11\xa8\x88y \x1a\xad\xc7\x1d\xa4m\x97\xcb\x12\xd2\x03\f\xd4I\xa8\x80\xfc\x1a\xbe\xa0!0`\x0f\xba.r\x92\xc2#\x1a\"X\xa6\xf7J\xfew\x03ۂ\xd3\xa3\xc1`u\x0fg\x03ؤ\t\xa9hא\x11!\xf4T\xfb+)\xe6\x91\xc5\t\x83@r+\x95\x87\xc7:\xf7\x80\xa3\f\xa2&\x1d\x96#\xb8M\x8a\x99od*Ŷ\xc0;p\xa6\xc6\t\xca\bc\xc4i\x82.Ѽ\xa7\x92\xa5\xe9\x1f\xb4H!3\xb6?\x8d\xae`\xcaxk%\xcc9F\xf0{&\xcaA\xeb\x97%B\xfc\v\xf5i\xf5\x1ed\xec%\xc1\x16\x0f\xe2(\xb5\tK\x0ffh\x8b\x80_1\xab\x1d\x8eɿp\x90\xcb\xdd\x0e\r\xc1\xa9\x0e¢\xf5\xa6o\x9a \xd3[\x99\x9a\x99f\xe6\xd9:ZF\x92\xa4\xf2ʧP\xa7\r=\xdcW\xb1\x11\xa2d4\xc8mQ\xb9<ʼ\x16\x05He\x9dP\x99_\x8fh\xf0:_\x0f\xcc1\xf9\fg\xaf\x0e#\xe6ĉ\x9ej\xd4\nA\x1b(\xc9\x1e\x9cw\x1dZ\xb0\xb6M-{+H;i/\xa2\xa6.І\xa9rֹ\xad\x0e\xb8\x99\x04\xddp\xc4\xfb\x12\x85\xd8b\x01\x16\v̜6\xe3\xe4Xb\xb2o)zm\x82\x8a#\x1a\xae\xd5ݴ\xd4va3 \x81\xd4\xf6\xebAf\ao\xe6I\x82\x18\x0e\xe4\x1a-\xefrQU\xc5ij\x91\xb0\xc4\xf90\xc9\xdcFo\xdb\u0096\x1f\xc2\x1b\xdb\xfcmKЍm[В}\xca6\xe2\x00N\xcf.\xfb\xff'a\xa3\xda\u007f\x83\xd0nΆ\xbe\xaf\xd0\x12I%\xb9\xf3\x9b\x1d`Y\xb9\xd3\rH\x17\xbf.A$g\xa5\x9d\xff\xef\x981\x97K\xfcf8\xf2]%~\x96+K\x10\x89+\xcd\xf4\u007f\x87Lac\xf1%؊d\x86\xfc\xd2\x1du\x03r\xd70$\xbf\x81\x9d,\x1c\x9a\x01g~\xd3~y\x0fb\xa4\xd8;j\xa5p\xd9\xe1\xe1+y^\xb6M8%\xd2e8\xd8\xfb\xafџ\xef\x1b\xe6\x05\xb8\xc0\x01\xaa4X\xfa\xc0\xf7\x89\xa9\xd9~a\x8f\xea\xe3\xe7O\x98ϑ\a\xd2$\xefl!\x1f\a\xc8v\xa7\x0eNy\xea2\x82\xeb\xd3\xc47>\xa5q\x03\x02^\xf0\xe4=\x16\xa1\x80\x98#h\xa2\x89H\xe7\x9c8\x9c[a!{\xc1\x13\x83\tɒ\xc5ѩ\xa2\xe0\xdb\v\x9eR\xba\r\bH8I\x1b\x92@DI\xfa\xc0\x84\xe0\xd8:\x9dx\xc0\x89\xaf\xa8\x8b\x96\x17\a\xe9\x8a$\xb6H\xfb7,\xb3a['iȌ\xfd`=\x8bh\x17\x1cd\x95\xb8P2s`\x91wKL}=\x8bB\xe6\xcdD^\xee7j\xda\x1b\xee\xb7\xcf\xdam\xd4\r<|\x956d\x1f?i\xb4\x9f\xb5\xe3/߄\x9c\x1e\xf17\x10\xd3\x0f\xe4\xed\xa5\xbc\xda&:tsh\t\xc2\xed\xdb\xc6Gx\r{\xa4\x85\x8d\xa2\xb8%Ѓ3\xa2~\xbay\xfb\xd0oem9I\xa6\xb4Z\xb1\xa9\\\x8f\xcd䉝\bR\x9b\x1eG\xceQk&\xf5\x13&\x82}\"K\xe2\xc7\xfb\x1co!2\xcc!\xaf\x99\x98\x9c\x99\x14\x0e\xf72\x83\x12\xcd~\xcept[E\xfa=\r\x85D\xad\xebۅ\x12\x96f\xdac\v\xaa;_FfE;7\xa1Wd\xf6b\u05c9\x84\xe4t\xd7\xe5\x15\xb1\x89e\xffc\x91\xba\"\xcf\xf9,I\x14\x8f\x17h\xfc\vxqn\xfb=b\xdeB\x96\x82\x93\x8c\xffCf\x8e\x05\xfa\u007f\xa1\x12\xd2$\xec\xe1\x8f|4T`ol\xc8bu\xa7\xa1\x19\xa4\x05\xe2\xefQ\x14\xe7\xa9\xee\x91\xc5i\xd2-XxC\xaewg\x1e\xcb\r\xbc\x1e\xb4\xf56u'q4\xa5\xdao\xd2\xc2\xf5\v\x9e\xaeo\xce\xf4\xc0\xf5F]{\x03\u007f\xb1\xbai\xbc\x05\xad\x8a\x13\\\xf3\xd8\xeb\xdf\xe2\x04%JbR7>\x82Ku\x95)\x96\x8c\x9e\x00\rlΝ\xc8͝\xc3:I\x0e+m]2*\x8f\xda:\x9fY칥\x97d\xb1\xc0\xcbP\xc8^\x81\xd8\xf9\x93?m\xe2\x99\x0e\xa9\xbdA\u0095\xb8f\xe75,\xb1\xb1Ɉy\xa0\x14X]\xb7;\xd8\xeb\xd3k\u007f\xd0Ó\x88\x8c\x9d\x8bE\xb8\x95\xd1\x19Z;/\"\t\xdaz!I\xd8$\b\x85\x0f`\xfc\x81\xc9|R2\xb6t\x87\x94\x88t\xa1+\xff\U000354fd\xa4\xcdO\u007f/\tߥx\x01\xefٲ\x14Ó\xc1$\x14\xef\xfdȸM\x02 \x1f\x1a\x98}\xcd[=݃\f\x82\xf4{0ӥT\x1b\x9e\x00~xw\xb3\xde(I|\x8b\xe3~\x1fǶDo>\xf0\xeeM\xf5\x884g\xee\r\xf68w\x9e\xe7&G1\x11\xa4Ү\x9bN \xb8\x95\xce?X\xd8Ic]\x17\xd1T\xa1\xa8\x17v\u007f\xdb.\x8d\x9cԃ1o\n\x9c\xfe\xecGv\x12Y\a\xfd\x1a\xcfW'\x0f3\xc7\x1a\x1f\n!\xc8\x1dH\a\xa82]+N\xbf\xd0V\xe7)<\v\xbc\x82N&Y\x9a\x82\xa0\x86\xaa.\xd3\b\xb0b\xa9\x93j6O\xd3\xed\xfe\x93\x90ŷ`\x9b\x93%\xeaz\xd6p\xb6\xadǶ'?\xb2wP^\x8a\xaf\xb2\xacK\x10%\x91>5\xec\xd9\xf9\xe2\x98\x1e\xc7\xe1UHǖ\x83\xe0\xb2\x19q\x9a6UU\xa0Kݑ[\xdci\xc3\xfb\xd9\xca\x1c\x1b\xc3\x1c\xa4@+\x10\xb0\x13\xb2\xa8M\xa2\x86\xbc\x88\xb6\x97\xc4\x1aAY\xbc_\x10\x916\xf9\x8aI\x91\x90\x88Mt\x16\xe7\xb5ue\xd2]\xc5G\x83i\xee\xd9RR:\xbag\x95\x91$K\xfa\xbd=\xb4 bB\x9d\xbe\xbbhg\xed\xbb\x8b\xb6о\xbbh\x93\xed\xbb\x8b\xb6ܾ\xbbh\xa1}w\xd1b\xfb\xee\xa2}w\xd1\xe6\xba\xcdi\xeb%\x8c|\xc5\xfdď\x8bX$\x1cOϡ8\x03?TS\xdc\xfb\xea\xfb\xd4\n\xcb\xcd\xf8\xa8\x91\xba\xdaPֿ\xe2\x1b\tc\x12\xd0\x16]\xb4\xa6\xa4)\xb9\xa4\r\x12\xc5\xdb\x17\x10/\x14a&\x95S\x8eWߦ\x14\xfc,\x95\xf9\xf4\xebL\x9b2\x9bXh\xaa\xe3$#t\x887\x1b\xc8\xed\xed\u0590\xf4\xebu\xd8ύ\x98\xfe\xcdkP\x13Jq\x16\np\xe6\vs\xe7\xe85\b=\xfa\x043\xbd\x82\xd1\xdf\r\xbd\x16\xaad\xa6kc\xc2I\x10:q\xfca\xdd\xff\xc5\xe9P)\x03\xaf\xd2\x1dF\x96\xf2z@\xc5gXj\xdf-{\x8d\xf2\x16\xae\x98\f\xe9\bڀ\x92\x05\x93sFZ{\xe4\x85?W>\x84\xbbx_·\x1fi\xb54o\xae\xa0\xe9W\xc8L\xa8\xe8K\x8f\x8c\xd2\v\x85\xd3kd\xe6\x8bZ.\xa9\x8c\x19ֽL\x02]\xae\x87I\x89\x1c\x17j_\xdeP\xf1\x92X\xed\xf8\x9b\x0f\xc6RjZ\xdeTɲX\x10\x98X\xbfүL\x99\ayA\xd5J\x12q\x96+T.\xaeK\tu \xb3\xebH\xaeF\x19\xa93\x99\x05\xf0\xb4\xaaY\xac\x06Y\xf4\x91\xe7\xf1[\xac\xf7\xb8\xa4\xcac\x91bo\xac\xe8h*6&潴\x8e\xa3_\xa71\x014\xa5zc\xa2:c\x02\xe2l\xcdFjM\xc6\x04\xec\x05\xb3;+%3?\x8e_\x84\x84E\xfbV\xfc\xb5$\xea\xad\v\xd3&G3롧\xa29\x8bb?\xe35\x98sPf\x1f/NR\xaf\xae\xd7?\xc6rݔ\x84g\xf0\xb3T\xb9\x97\x13\x12\xf4\x8e\x9f\xc0\x17\x85\xb9(\xa6qWZ\u007fo\x1c\xe8 ҰX\t\xc37ɷ'\x9f\xad\xb0kx\x10١\xdf\x11\x0e\xc2RLZ\x8e\xbaa\xd7M\x98v\x1bGї\xeb5\xc0O\xba\x89\x84\xbb\u05ec\xac,\xab\xe2\x04\xb5E\xb8\xee\x0fy[\xcc1*\x01V\x89\xca\x1et\xbc\x03\xbb\x10v|\xe9\xf7\x1e\x89\xe8\xe3\rج\xd0u\xde@\x9f`\x9eP'x|f߇\xef\x0ef\xed=\xca\xe0\xdf\xc4Hbx\xcd\xf2\xc7\xf7\x8f\xf0\xad\xd3F\xec\xf1\x17\xed/#/Q\xa2\u07fbw\x13=谘q\x8b\x05Yb\x84\b\xe1Z\xf4\x00X\x9bH\x0f\xbb\xa1M~\x10\x96c\xeamf\xff9W,,\xe6\xe9\xe9\x17\xbf\x00'K\\\u007f\xaa}6eU\tc\x91\xa8\x19\x17\xe6\am\xe9\xbf\a\xfd:\xa6\xf0tX\xf3\x8fC\xbc\rr\xb2\x9e\x936\x17a\xef\xafMG\xc1\x8b$Z\x12\xd4\xe7\xf1Q\x9d@\xaf\xc3$\xbf\xcb\xf5ع\xc4\x14\x9c\xce\xeb\x12\x14X\xfbb\xbb\xf7\xbd\xfb;\xe5\xb1Lݿw\xc2\xd5v\xf9\x06>w\x8b\xefm\x84#\x9f\xda\xf0\xc5]\x0f\xc2_t}\xd3%\xfc\x90\xa1\uef412ϧ\xfb\xf3\x11\xfc҅\xc9=j\x9c\x1bonӿ\n\xdbd\xc1GM|\vΏd\x0f\x9a\xa0a\x0exD\x05Zqқ\xaf\xc4\xfa\xd7X\x86cƒI\x1d(!\xab^W\x85\x16y\xdc\xe1\xd1f\x85\x17<\x9eX\u007f\x99#\x9a\x0fv\x06&\xbf\x18\xb0\xd3f\x8c\b\xe7\n\xd3\x1b\x96;ȅ\xc3\xd5(\xd0$\xdd7*l|>\xb4xo\x9e;\xf9\x1dćK\xf1q\x03\u007f\xbaT\xa2\xb5b\x1f/̿\x92\x02ۣB\xb6\x9b#\xeb\x0f\xf1L{\x1aѿ.\xeeS*\"s\xb5\b\x13\xc4lR\xa7ׇ1\xb3R\xe8=\xecd\xc1]\xc3\xd3\x1eA\xb3O\xa9\x1d\xa9\x1c\xeeq\xe8\xae\xe2\xd7J\x9a\x14K\xf0\xd0t$\xdap>\x8d\xb5A\xfb\x04\x0e\x16r/I\x8d\x12\xb3\xf7\xc2l\xc5\x1eW\x99.\n\xe4҅s\xbc\xbe%\xaf=\xec\xd1'nΖ\xf6S\xb7o\xf4\xa7\x82\xb0{8\xf1ś\x9b`\xa1\xc7\x1d\xd4R\xfcE\x9b\x1b(\xa5\xa2\u007f\xc8\r\xe3\xc84\x0e\xbe\xc8\x1e\xf0\xeb\x02\vx?R\x9f\xe6@\xbb\xa3\xdd0\x8aٔ\xff0~\x88\xb9\x82\xcfxn\xee\xfc\xb9$\xe6\x9c{\x19{ׇ\xbalԣ\xd1{\n\x9dF~\xbc\x8f\xbal\xe4\xb7Ga\x9c\x14Eq\xf2\x93L\xce>\xf2\xc3'$m2iR\xc6\xc9\x1a\xb0\\\xa2l\xe8\xd6\xc6iRyI\xe0\x13ŭ\xae]o\x83\xb6\x1b|D,\xe2\x9ck\xf8\xac\x1d\xc64\x9e\xec\xc3$\xbb\x8a֭p\xb7\xd3\xc6\xf9\xb0p\xb5\x02\xb9\v&j\x04.ixN]\xfbgv@\xba6}\xd2J/{\x9f\x06\x85e\xe9u\xfc\xd8\x0f\x9f.\x89,#\x0f\bo\xad\x13ň\xd6\xf8M\xd9j\xf6\x05H\xfa0\xff\xb7\x11\xe3xF\xf0M\xb7\u007fS\xe2_\x97[\x1f\x1d18O9>\xfd\xf7\x1a\xb3\x98ʣl\x11\x15\xbc\x1a\xe9\x1ci\xa9nn\x1f\x1c饢\x00\xaba'&\x1et\x98ӗ\xfc\xbbv\xa2\xd8L\xe7\x94\xfaNg\xd39.\x8b\x87\x9f/N\x13[\xb6L\x82\x89e\xf9\xea2i\xe3Xbev\x10jOBet\xbd?D\xb9\x9c\xb07S\x99\xf8\x9a\x90\x82\xaa\xa8\xf7$\xea!7\xeej\xa3:qqȖ\xe7\x1dtE\xf62\x89i\xc8\x0eƧ\xden\xc3\x13\r\xab\x9d\xd1\xe5*\xf0\x82\xf3\x067!^5R\x93SF\xd1\xd5\x04\xd0\xf6.4\x8bAU\xa1\x02a\x03>\t\xa5o\xf3l\x9d\v\x1e\x9d0.\xd5\xd5\xfb\xd2\xeb\xbc\xe0\xe51\xe4q|\xbf\x84hܗ\x00\xde\x0f\x1fݣ\xb8Y\xc5W\xe6|\xb4\xefE\xc1\x92\xf3g\x90\x03\xa8\xd1\xf3\x8a3\xb7\xad\xe7\xa4\xf5\xd1\xff\xeb\xfag\xc7\xc6\xc2<\xa4xjσ\xee\x83sT\xda\xe5-\xc4\xe0]\x8d\xd0\xe3\x0fr\xe7\x0fR2\xc2\xfa\x8f\u007f\xf3\xf3\xd1c\x92\xcf\xf2a\xd6]aO\xa4\xf1;\xe0\x13V\x063ڽc\xcbx,\x90\xfc\b\x8b\xd8\xf7\x84>\\\xe4H\xf6\x03X\xfb\xd19,\xab\xd1\x19g\"\xd8vؔ\xb2\x14\xb1\xc3\xc8B\xe2\x03\x88\x11X(-\x9a\tY/XP\xe3\xc4\\\xb6\xa0f\xd8Ԃl\x9d\x91\xd2\xda\xd5\xe3欉\x03\xdfyu\xaf\xc2(\xa9\xf6K{\xec\xdfC\xb7\x91x(@\x18\x89\x88F\x96\xd1\xc4H\x8b\x11Q' \x8a8N\xbcK6\b\x92\xde)$\x1a\xb5\x03g\x1fY\x81杽\x1df\n_\xda,\x85\xc82$q\xfd<|\xe8\xf4\xfa\x9a\xff\x88o\x99\xf2\x9f\x99V\xde\xdc\xda;\xf8\x8f\xff\xbc\x82\x90\x06{\x8e\x8f\x96\xd2\xc7\xff\v\x00\x00\xff\xffy\x8fd\x10\x14V\x00\x00"), + []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xc4YK\x8f\xe3\xb8\x11\xbe\xfbW\x14f\x0f}\x19˳\xc9!\x81/\x81Ǔ\x00\x83\xf4l7Ɲ\xce!\t\xb04Y\xb2\xb9M\x91\nI\xd9\xeb\x04\xf9\xefA\xf1!ɒ\xdcv\x0f\x92]^\xba\xcdG\xb1\xea\xab75\x9b\xcf\xe73V\xcbg\xb4N\x1a\xbd\x04VK\xfc٣\xa6_\xaex\xf9\xbd+\xa4Y\x1c\xbe\x9f\xbdH-\x96\xb0n\x9c7\xd5Wt\xa6\xb1\x1c?a)\xb5\xf4\xd2\xe8Y\x85\x9e\t\xe6\xd9r\x06\xc0\xb46\x9eѴ\xa3\x9f\x00\xdcho\x8dRh\xe7;\xd4\xc5K\xb3\xc5m#\x95@\x1b\x88\xe7\xab\x0f\x1f\x8a\xdf\x15\x1ff\x00\xdcb8\xfe$+t\x9eU\xf5\x12t\xa3\xd4\f@\xb3\n\x97\xb0e\xfc\xa5\xa9\x9d7\x96\xedP\x19\x1e\xef*\x0e\xa8КB\x9a\x99\xab\x91\xd3\xd5;k\x9az\t\xddB\xa4\x90؊\"}\f\xc46\x91\xd8}\"\x16֕t\xfeϗ\xf7\xdcK\xe7þZ5\x96\xa9Kl\x85-no\xac\xff\xa1\xbbz\x0e[\xa7\xe2\x8aԻF1{\xe1\xf8\f\xc0qS\xe3\x12\xc2\xe9\x9aq\x143\x80\x84Y\xa06\a&D\xd0\x02S\x8fVj\x8fvmTS\xe9\xf6.\x81\x8e[Y\xfb\x80r\x94\x05\x920\x90\xa5\x01\xe7\x99o\x1c\xb8\x86\xef\x819X\x1d\x98Tl\xabp\xf1\x17\xcd\xf2\xff\x81\x1e\xc0O\xce\xe8G\xe6\xf7K(⩢\xde3\x97W\xa3\x8e\x1e{3\xfeD\x028o\xa5\xdeM\xb1tϜ\u007ffJ\x8aV\xeb \x1d\xf8=\x82b\u0383\xa7\t\xfa\x15\x11\x02\x82\b!#\x04G\xe6\xd2=\x00\x87H%`4ͩ\x1a\xddu\xc66\xb1\x02\xcf\x03*\x91\u007f\x9aI\xdc\xf7\xc8f\xc3/FF{Fw\xb5\xc3K\xc4Π\xf8\x84%k\x94\xef\x8bJZR}\xbb<\x17\xabF^\x88x\xea\xec\xc6Ogs\xf1֭1\nY\xa4\x12w\x1d\xbe\x8fV\xc8\xf7X\xb1e\xdaljԫ\xc7\xcfϿݜMÔ!\r\x9c\x82\x14\xc7z\xba٣Ex\x0e\xfe\x17\xf5\xe6\x92h-M\x00\xb3\xfd\t\xb9\xef\x94X[S\xa3\xf52;K\x1c\xbd ՛\x1d\xf0tGl\xc7] (:a\xb4\xa3\xe4/(\x92\xa4`J\xf0{\xe9\xc0bmѡ\xf6}x[\xc6J`:\xb1W\xc0\x06-\x91!_n\x94\xa0\xa0v@\xeb\xc1\"7;-\xff\xd5\xd2v\xe0M2^\x8f\xce\x0fh\x06\xff\xd4L\x91\xa96\xf8\x1e\x98\x16P\xb1\x13X\xa4[\xa0\xd1=za\x8b+\xe0\vٻԥY\xc2\xde\xfb\xda-\x17\x8b\x9d\xf498sSU\x8d\x96\xfe\xb4\bqVn\x1bo\xac[\b<\xa0Z8\xb9\x9b3\xcb\xf7\xd2#\xf7\x8d\xc5\x05\xab\xe5<\xb0\xaecЬ\xc4w6\x85sww\xc6\xeb\xc8k\xe3\bQ\xf3\x15\rPČV\x10\x8fF):\xa0i\x8a\xd0\xf9\xfa\xc7\xcd\x13䫃2\x86\xe8\aܻ\x83\xaeS\x01\x01&u\x896*\xb1\xb4\xa6\n4Q\x8b\xdaH\xed\xc3\x0f\xae$\xea!\xfc\xae\xd9Vғ\xde\xff٠\xf3\xa4\xab\x02\xd6!c\xc1\x16\xa1\xa9\x83\xdf\x17\xf0YÚU\xa8\xd6\xcc\xe1\xff]\x01\x84\xb4\x9b\x13\xb0\xb7\xa9\xa0\x9fl\x87\x9b#j\xbd\x85\x9c\v/\xe8kҋ75\xf23\xff\x11\xe8\xa4%\v\xf7\xccc\xf0\x8b\x01\xae\xc9\xc5/'\xd3<\xa6\x9d\x9b\x06\xe3\x1c\x9d\xfbb\x04\x0eW\x06,\xafڍg<\xd6h+\xe9BZ\x84\xd2\xd8a\xc6`m\x04\xee\x8f\x1c\xa9\x8a\xd1\x1a\xea\xa6\x1a32\x87\xaf\xc8ăV\xa7\vK\u007f\xb5ҏ/\xba\xa0H\x1a\x91\xc5\xcdI\xf3G\xb4҈+\xc2\u007f\x1clo!؛#\x94\xc1\xac\xb5W'\x8aA\xee\xa4\xf98\xda\xe6\xb1z\xfc\x9c#ot\xa0\xe4o\t\xab\x02V\xc9sM\t\x1f@HG\x05\x80\vD\xc7`QyF\xebK\xf0\xb6y\x93\xf8\xdc\xe8R\xee\xc6B\xf7k\x9aK\x16s\x85\xf4\x00\xb9u\xb8\x89B\x13YGm\xcdA\n\xb4s\xf2\x0fYJ\x9e8il\xcc\\\xa5D%\xdcX\xd2\v^\x16D\xb1(ȫ\x99\xba\xa2\xc3u\xbb1\x94\xc6L\xeah\xc1\x1d\x81\x10ll\x95R\xaa\xf6\xa8E[\x8d\x9cqcB\xd4r(\xe0(\xfd>\x86C5\xe5w\xf0\xaa\xef\xd1x\xc1\xd3\xd4\xf4\x80\xf7\xa7=\xd2Θ@\x11\x1cr\x8b>X\x1b*2\x1f2\xa5\x02\xe0K\xe3B@\x1dƉ\x86\x8d\x19\xf0\x9a\xf9=H\xed\xa4@`\x13\xf0\xc7b킠m\xfe\u007fHQ\xe4\x1b\xd4\xf3\x9a\xb7Gv\xde\xe2\xf0\x19\xe3+\xfe\U000d8db5(\xe4\xdf)\xf2\x9fׂ\x97\xfcxR\xa2C\xfb`\xf0\xa7Xa\xf1\x89Ty\xc6\xcc\xf3\xf8\xc4+\x95Z~\xb6\x98rf\xaa\v\x8c\xb5\xe8j\xa3\x055O\xb7\xd5i\x1d\xcb\xff\xbbjmZ\xad\xf3\xf3(7X\xcbZ\xb8\xa9U\tO4onV\xe2\xc3U\xbf\x150[G\x9dbׯ\fd\xfcEڔw\xbd>\x85\xfaa\r\x8d\x0e\x95Z\xc8\xf8\x05\xfc]\xc3'\xeam);\x89%\xf1m\xa7\f@:\xd0\xe6H\xc7{\xf4\x02\t0:\xe6k\xea֘\x16\xa9\x19\x0eKG\xa9\x14el\x8b\x959Lfl*4-\xaa\x130G\xa6s\xf8M\xf1\xa1x\xf7\xabuA\x8a9OM\r\x8a\xafx\x90\xe3W\x9e1\xba\xf7\xa3\x13\xd9\xf1[w\xa0\x1f?\xe6fyaӶ\x1f'\xc0(\xa5\xa2Zp\"Nt\x15\xc3\xf8=\xf2\xe3\xe6\xfe΅\x12\x1e\xb5\x9f*\xfb\x8eh1tL(\xa8\x8a7\xe9]\xa2q\x1e\xed\x84\x01\xb4\xda\v:\ae\xf4n\xe08q\xa4W\n\xaaТA\x19\v\x02=\xa5&\xbd\x03\xbegz\x87\xdd+T\xe2\xffuN\xc9|\x066\xd3Y\x88ԗ\xcc\xe3&\x8d>ɩ2}\xf4\x02\xdcm\x9e~\xfd\xcd\xdcg\xcd^ls\xae\xe0>ڟ\xb34\x81:\xf7\u074bp7\xbe\xbd\xbd\x1d?7߀\xc4[\xdf\xc2_y׀#sݫ\xf8\xaf\x87C\xf8@p-\x81Ӟ,-o,\xb5i\u074bSp\xb8\xa9\xb8}\xfb\xd3\xcdj\xf0\x1d\xa3\xbf6\xfe\xcaq\x83\\\x93yl4\x19sQ\x0f\xb3\x14Z\xfa3Ͷ}\x85͜\xa7l\b\xff\xfeϬK\x8c\x94}j\x8f\xe2\x87\xe1g\xacw\xd19\xf3\xb7\xa8\xf0\x93S\xc5\x10\xbf\xc3\xc1\xdf\xfe1\x8b\x17\xa3x\xce\x1f\x8fh\xf2\xbf\x01\x00\x00\xff\xffHX\xbeK\x01\x1c\x00\x00"), + []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4V=s\xe36\x10\xed\xf9+v.\xc55\x11u7)\x92Q\x97\xf8\xae\xf0$\xf1x\xec\x1b7\x99\x14\x10\xb0\x127&\x01dw!\xc7\xf9\xf5\x19\x00\xa4%Q\xf4\xc5)\u008e\xfb\x85\x87\xf7v\x97lV\xabUc\"= \v\x05\xbf\x01\x13\t\xffR\xf4\xf9M\xda\xc7\x1f\xa4\xa5\xb0>|l\x1eɻ\r\\%\xd10ܡ\x84\xc4\x16?\xe1\x8e<)\x05\xdf\f\xa8\xc6\x195\x9b\x06\xc0x\x1f\xd4d\xb3\xe4W\x00\x1b\xbcr\xe8{\xe4\xd5\x1e}\xfb\x98\xb6\xb8M\xd4;\xe4R|:\xfa\xf0\xa1\xfd\xbe\xfd\xd0\x00Xƒ\xfe\x85\x06\x145C܀O}\xdf\x00x3\xe0\x06\x1c\xf6\xa8\xb85\xf61E\xc6?\x13\x8aJ{\xc0\x1e9\xb4\x14\x1a\x89h\xf3\xc1{\x0e)n\xe0\xe8\xa8\xf9#\xa8z\xa1O\xa5\xd4O\xa5\xd4]-U\xbc=\x89\xfe\xfcZ\xc4/4F\xc5>\xb1\xe9\x97\x01\x95\x00!\xbfO\xbd\xe1Ő\x06@l\x88\xb8\x81\x9b\f+\x1a\x8b\xae\x01\x18\xf9(0W\xe3\x8d\x0f\x1fk9\xdb\xe1`*~\x80\x10\xd1\xffx{\xfd\xf0\xdd\xfd\x99\x19\xc0\xa1X\xa6\xa8\x85\xd5\x05\xfc@\x02\x06F\x14\xa0a\x04\a\xc1#\x04\x86!0BE*\xedK\xd1\xc8!\"+M\xfc\xd5\xe7\xa4uN\xac3\b\xef3\xca\x1a\x05.\xf7\f\nh\x87\xd3Mэ\x17\x83\xb0\x03\xedH\x8012\n\xfa\xdaEg\x85!\a\x19\x0fa\xfb\aZm\xe1\x1e9\x97\x01\xe9B\xea]n\xb5\x03\xb2\x02\xa3\r{O\u007f\xbfԖ|\xcf|hot\x12\xf9\xf8\x90Wdoz8\x98>\xe1\xb7`\xbc\x83\xc1<\x03c>\x05\x92?\xa9WB\xa4\x85_3M\xe4wa\x03\x9dj\x94\xcdz\xbd'\x9dFƆaH\x9e\xf4y]\xba\x9f\xb6I\x03\xcb\xda\xe1\x01\xfb\xb5\xd0~e\xd8v\xa4h51\xaeM\xa4U\x81\xee\xcbش\x83\xfb\x86\xc7!\x93\xf7gX\xf597\x8c(\x93ߟ8J7\u007fE\x81\xdc\xcbU\xf6\x9aZoq$:\x9b2;w\x9f\xef\xbf\xc0tt\x11c\xce~\xe1\xfd\x98(G\t2a\xe4w\xc8U\xc4\x1d\x87\xa1\xd4D\xefb \xaf\xe5\xc5\xf6\x84~N\xbf\xa4\xed@*SKf\xadZ\xb8*{\x04\xb6\b):\xa3\xe8Z\xb8\xf6pe\x06쯌\xe0\xff.@fZV\x99طIp\xba\x02\xe7\xc1\x95\xb5\x13Ǵ\xa3^\xd1kah\xef#ڬ`&1gӎl\x19\x0f\xd8\x05\x86\xa7\x8el7\r\xed\x8cݗ\x01o\xcf\x1c\xcb\x03\x9d\x9fZ&/\xa5\xb9\xe7\xd5\xcbCю\x18g]\xb8:)\xf6&^\xd4h\x92\xff\xc8Lə\xb8\xb1\x89\x19\xbd\x8e\x95ʶXJz+\x17\xc8\x1c\xf8\xc2:\x03\xf5\xb9\x04\x95\xef\x9c!/`\xfc\xf3\x98\b\xda\x19\x85'\xe4<\x066\xa4\xbcgЁK\x17\xfc\x8d\xb4tX\xc5\xca\xc2F\x0e\x16Eڋ8R\x1c\x160}E\x9d\xfc\xe4o\xa8\xd9\xf6\xb8\x01儯(k\x98\xcd\xf3\xcc\x17;#\v\xadpF\xc1m\x8eY\xd2\x00\xebV\xc7\u007f\x17\xa1\xd0\xed\xd3py\xd2\nn\xf0i\xc1z\xedo9\xec\x19e\xde\xf2\xd9y[\xd9+\xdf\xd47\xb2\xb4ؔ\x17F\xc9\xfbΝ\xb0(\x1a\xd8\xec'^\x8f-l\xacŨ\xe8n\xe6\u007f\x1d\xefޝ\xfd>\x94W\x1b\xbc\xa3\xfa\xd3\x04\xbf\xfd\xdeԪ\xe8\x1e\xa6\xbf\x81l\xfc'\x00\x00\xff\xff\x8c\xdb\x1fܮ\t\x00\x00"), + []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4WMo\xdc6\x10\xbd\xebW\f\xd2CZ \xd2&\xe8\xa1\xc5\xdeZ'\x87\xa0i\x10ة/E\x0f\\jVbM\x91,g\xb8\x8e[\xf4\xbf\x17CJ\xfb\xa1\xd5\xdaΡ\xba-9\x1c>>\xbe7\x9c\xad꺮T0\xb7\x18\xc9x\xb7\x06\x15\f~at\U0008b6bb\x1f\xa91~\xb5{S\xdd\x19\u05ee\xe1*\x11\xfb\xe1\x1aɧ\xa8\xf1-n\x8d3l\xbc\xab\x06d\xd5*V\xeb\n@9\xe7Y\xc90\xc9O\x00\xed\x1dGo-ƺC\xd7ܥ\rn\x92\xb1-Ɯ|\xdaz\xf7\xba\xf9\xa1y]\x01\xe8\x88y\xf9g3 \xb1\x1a\xc2\x1a\\\xb2\xb6\x02pj\xc05\xb4\xfe\xdeY\xafڈ\u007f%$\xa6f\x87\x16\xa3o\x8c\xaf(\xa0\x96M\xbb\xe8SX\xc3a\xa2\xac\x1d\x01\x95ü\x1d\xd3\\\x974y\xc6\x1a\xe2_\x96f?\x981\"\xd8\x14\x95=\a\x91'ɸ.Y\x15Ϧ+\x00\xd2>\xe0\x1a>\n\x8c\xa04\xb6\x15\xc0x\xf6\f\xab\x1eO\xb7{SR\xe9\x1e\aU\xf0\x02\xf8\x80\xee\xa7O\xefo\xbf\xbf9\x19\x06h\x91t4\x813\x833\xcc`\b\x14\x8c\b\x80\xfd\x1e\x14(\a*\xb2\xd9*Ͱ\x8d~\x80\x8d\xd2w)\xec\xb3\x02\xf8͟\xa8\x19\x88}T\x1d\xbe\x02J\xba\a%\xf9J(X\xdf\xc1\xd6Xl\xf6\x8bB\xf4\x01#\x9b\x89\xe5\xf2\x1d\x89\xebht\x06\xfc\xa5\x9c\xadDA+\xaaB\x02\xeeq\xe2\aۑ\x0e\xf0[\xe0\xde\x10D\f\x11\t]\xd1\xd9Ib\x90 \xe5\xc6\x134p\x83Q\xd2\x00\xf5>\xd9Vĸ\xc3\xc8\x10Q\xfbΙ\xbf\xf7\xb9I\x18\x92M\xad\xe2I\x0e\x87\xcf8\xc6蔅\x9d\xb2\t_\x81r-\f\xea\x01\"f\x9e\x92;ʗC\xa8\x81_}D0n\xeb\xd7\xd03\aZ\xafV\x9d\xe1\xc9T\xda\x0fCr\x86\x1fV\xd9\x1ff\x93\xd8GZ\xb5\xb8C\xbb\"\xd3\xd5*\xea\xde0jN\x11W*\x98:Cw\xd9X\xcd\xd0~\x13G\x1b\xd2\xcb\x13\xac\xfc 2#\x8e\xc6uG\x13Y\xf3\x8f܀\xa8\xbe\b\xa6,-\xa78\x10-C\xc2\xce\xf5\xbb\x9b\xcf0m\x9d/c\xce~Q\xce~!\x1d\xae@\b3n\x8b\xb1\\bV\x9e\xe4D\xd7\x06o\x1c\xe7\x1f\xda\x1ats\xfa)m\x06\xc34\x89Y\uea81\xab\\i`\x83\x90B\xab\x18\xdb\x06\xde;\xb8R\x03\xda+E\xf8\xbf_\x800M\xb5\x10\xfb\xbc+8.\x92\xf3\xe0\xc2\xda\xd1\xc4T\xc9.\xdc\xd7\xcc\xea7\x01\xb5ܞ\x10(+\xcd\xd6\xe8l\r\xd8\xfa\b\xea\xe0\xfc\x91\xc0\xe6$\xf3\xb2s38\x15;\xe4\xf9\xe8\f\xcb\xe7\x1c$\xdb\xdf\xf7\xea\xb4\xd0|\x8bM\xd7H\xad\xa0\x11H\xa9\x1e\xdf5g\x19/c\x80E\xf5.\"\x99D,4\b\xafR\n\xa4H\x1dc:\xdfZ>tiXޠ\x86\x9f3\xe6\x0f\xbe{t\xfe\xca;\x16\xb9?\x1at\xebm\x1a\xf0Ʃ@\xbd\u007f\"vzf\xf7O\xcfy\xe05J\x81\xc6\xcb\xd0ƀk\xa4d/lwA\xacӗ\x1f\xa5\xa7\x99\x97gmb^\x96\x94J\x8d \x8f}t\xc8H\x87\xa2qo\xb8_\xcc\bp\xdf\x1b\xdd\xe7\x85\xf9ڤ\x1e\x11ym\xb2\xbb\xbf\x1e\xbe\xa8\xddD\\\x90N\x9d%\xb50,\xe0φ/x\xf4\xd2\x06\xf5\xe8\x9bg\xf9\x9c\x15'\xfa\n\xa7\xe7\xf8\x89j\x9dbD\xc7c\x96\xfc\xf2\xcd\x17<\xd7\xea\x93?~\xbb\xfe\xf0\x84\xdf\xdf\x1e\"so\xa7\x8c+hBĚL'\xef\xb5̉\xe3\xb3\x13\xcf\xc9(\xdfi\xffpJ\xd4\xe2\x8d\xe2\x97`b\xaekO@|\xb7\x0f,e\t]yr\xe6\x1dRN\x88\x94\x9fs\xad捄|\x1b\x84\x16-2\xb6\xb0y(\xf5\xf5\x81\x18\x87s\xdc[\x1f\a\xc5k\x90\xa7\xa8f\xb3 #\xe9b\xd5\xc6\xe2\x1a8\xa6K*[\xaa\f\xb8X\x05k\xf8\x88\xf7\v\xa3\x9f\xa2\xd7H\x84\xe76\xbax\x92E\x13\x9c\r\x92\xf4\v\xed\x11Kc\x1bz<\x926\xfb\xfegBwKZvR\tr\x91y\u007f\xf5\xea\x87韦?L\x00JG\xf1\xf8\x93l\xc9\al\xed\x1ct\xa7\xd4\x04@cKs\xb0F\xac\x8c\xeaZZb\xf9\xdcY?]\x91\"g\xa6\xd2L\xbc\xa5\x92/\xad\x9d\xe9\xec\x1cv\x1b\xe9l\x16()\xf3h\xc4\xc7\xc8\xe6]d\x13w\x94\xf4\xe1\xefc\xbb\xbfJ\x1f\"\x85U\x9dCu,D\xdc\xf4RםBw\xb4=\x01\xf0\xa5\xb14\x87\a\x16\xc3bIb\x02\x90u\x8fb\x15Y\xbbՏ\x89U\xd9P\x8bI^\x00cI\xff\xfcx\xff\xf1\xf7\x8b\x83e\x00\xeb\x8c%\x17d\xafZ\xfa\xf6<\xba\xb7\n ȗN\xda\x10\xed}\xcd\f\x13\x15\bv%y\b\r\xf5B\x91\xc82\x80\xa9 4҃#\xebȓN\xce=`\fL\x84\x1a\xcc\xf2\x9fT\x86),\xc81\x1b\xf0\x8d\xe9\x94\xe0\bX\x91\v\xe0\xa84\xb5\x96\xff\xde\xf2\xf6\x10L\xbcTa\xa0l\xe1\xdd'u \xa7Q\xc1\nUG7\x80Z@\x8b\x1bpķ@\xa7\xf7\xf8E\x12?\x85ߌ#\x90\xba2shB\xb0~>\x9b\xd52\xf4\x91\\\x9a\xb6\xed\xb4\f\x9bY\fJ\xb9\xec\x82q~&hEj\xe6e]\xa0+\x1b\x19\xa8\f\x9d\xa3\x19ZYD\xd1u\x8c\xe6i+\xbes9\xf6\xfd\xf5\x81\xacaþ\xf5\xc1I]\xefm\xc4@;\xe3\x01\x0e5\x90\x1e0\x1fMZ\xec\f\xcdKl\x9d\x0f\u007fY[S\xe1\x87`F$[&\x17\x90\x80a@\xc0٠\x803U}T\xe2\x9f\x1f\xef\xfbJ\xde\x1b1\xcb\x1e\x8e\xef\xbd`\x1f\xfe*IJ\xbc\x9ft;!S\xe69Y\xd7\xe4\"p\x19\xfbbS\xe1R\xfd=\x18\xc7\x16\xd0f\x8fEd\xcc\xdeK\x85\x92đП~\xfa|R\xe2C{\x81Ԃ\xbe\xc0O u\xb2\x8d5\xe2\xfb)<\xc5\xe8\xd8\xe8\x80_\xf8\xa6\xb21\x9eNY\xd6h\xb5a\x9d\x1b\\\x11x\xd3\x12\xacI\xa9\"\xe1 \x01kܰ\x15z\xc7q\xbc!Xt\xe1l\xb4\xf6\xe8\xe7\xe9\xfd\xdd\xfby\x92\x8c\x03\xaa\x8e\x95\x98\xbbf%\x19\xcd0\x8cI\xbd8F\xe3Q3\xef?ߥ\xf0\t\x06\xca\x06uMI_\x82\xaa\xe3\xee8\xbd~K\x1e\x1fC\x92\xfe\x1b\x81&\xc3\xc2\xf1\u007fk\xee/T.\"\xe8\x17(\xf7\xb0\x17\xe5g\x95\xe3Y\xc5i\n\x14\xf5\x13\xa6\xf4\xacZI6\xf8\x99Y\x91[IZ\xcf\xd6\xc6=K]\x17\x1c\x9aE\x8a\x01?\x8b\xe3\xc6\xec\xbb\xf8ϛu\x89\x83\xc2K\x15\x8a\xc4\xdfB+\xbe\xc7\xcfޤT\x8fa_\xdeǮ\x17\x19Y\r\xcfrZ\xac\x1bY6\xfdp\x92k\xec\x89d\x92\x8c\x84E*ͨ7_=\x94٠\x9dc\x896E\x1e\x80\vԂ\xff\xef\xa5\x0f\xbc\xfe&\vv\xf2E\xe9\xfb\x8f\xfb\xbbo\x13\xe0\x9d|S\xae\x9e\x00\xe0)F\xac\xb9\x17l\xcaJ\x92\xbb\x00\xcc>\x1c\x10\xf7\xd0q\x04\xb1ni^\x85\f\x03\xd6#P\f\x85\x88\xcf\x1e\xa8\x1e\xcf\x02\xb6\xb3\x168P\xe3\tk\x0f\xe8\b\x10Z\xb4\xec\xb9g\xda\x14\xa9\xc5[\x94ܟ\xb9\x05g̳$@k\x95\x1cmŹ\x91g\x10\x9a\xf1>\x0f\xdaX\xfbS\xba\x8f\xfa!q\xb8`\xff4\xe0\x8cA\xf6,@\xc27[\xd8\x1e\f,\xc7R\xf4\f(>iE\x9eK\x19\xad\x1d\x8aX\x8c\x0fP\x03\x1a\x1e(\x06Kֈ\xc1\xcaa$\x0e6\x93~/\x9a*\x03\x86οb\xae\x8c\xf4\xbdMS\x15\t\x99K\x84\xd0o\x9d,K\xc3\xe8\xf4\xf0i\xed\xbc{o\x8fO\xc4G\x1c'\x92pA\xb6\x1c\xb39\xca\xd6\xe8\xfb;\xc6FC\xd8c\x97Nƺ\xcd\xdcHD\xe8\xc8ȶB\xa9H@\xff\xb67<3\xc2u\x9f˒*.r\x9dU\x06E?\x90e\xf1\xb6\xf0\x8c\xe7\xf5\xf8:r\xed\xcf\xf0\xec<\x898ɏ\x18\xe1\x18\xb2UƵ\x18\xe6 0P1\xcaTwJ\xe1R\xd1\x1c\x82뎷\xcf\x14\x8b\x96\xbc\xc7\xfaR*\xfe\x96\xa8Ҝ\x9a\x8f\x00.M\x17\xb6\x83\xeaAQ\xb8\xf69\xa6^7+\x8f\x8e\x80\x87\xe1\x8c\f\xd1}\x86\xaaJ\xc53\xfb\x85`\xf7 \x1c\xa5Z\xd2x\xab{KM\x00\xb0\r\xfaK\xa6zd\x9a\xb1\x04\xdbV\xaf\xb3\x19\xc6\x1f\xe9\xae=\xbe\xa5\x80\aZ\x8f\xac\xde\xebGgjG\xfe8p\x8a>\xbeF\xaay\x01\xbf\xc4lx\x95\xfe\xf9\xa2K&\xc8d\xd0\x18\xd5'\xb3\t\xa8@w\xed\x92\x1c\xdba\xb9\t\xe4\x0f\xcb\xf9ثD\x9cfvf\xdc;\xdf\xfb/q\xca\x03Z\x89:\xbe\x1erv\x05\x03Bz\xabp3¸W$\"\x16N..\x01\xbbx\xee\x93ڒ\x8b[\xaf}M\x892\xdd\x19}\x02_\xf7\xf9,u\xf8\xe3\x1f\xce\xe0\x1b\xa9\x03Ճ\xe6\x90\xf7ٜ\xef\xf8\x96\xafsÙ\xd6\xed5Zߘp\u007fw!\n\x16[\xc2>\x1bv@)־\xf8\xb6\x99\x89r(\x8c\xb9j[[^\x95\xaa>\xa0\v/mE\x8b\x03\xe2\v](r\x1e\xefA\v\xb2\xe88\xd3\xe3K\xf8\xed\xf0\xb7\xa6\x1b\xf02>\xef1\xdeJ\x00,\rߞ\x9b\x13\x03K\xe3h\xa4d\xc2q[9h\"\x87\xe2\u007f\xcb\xfe1\x1a'G\x8bQr\xb1\xc7;?\x11\xe7\x95\x1d\x86\xc1\x92\xa7\x03\x12\x0f\xc3\xdfӮ\xd2\xebM\xff\x03Y\xfc\xb34:Ae?\x87O\x9f'\x90\x9f\x8d?\xf6\xbf{\xf1\xe2\xff\x02\x00\x00\xff\xffTTw\xa4\x84\x1c\x00\x00"), + []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xc4YKs\xe3\xb8\x11\xbe\xebWty\x0f\xceV\r\xa9\xddI*I\xe9\xb6kgSJv=\xae\x913\x97\xa99@DS\xec\x98\x04\x18\xa0)YI忧\x1a \xf4\xa4\x1ev\xd5Lx\xb1\x85G\xe3\xeb\xaf\x1f\xe8&GY\x96\x8dTK\x9f\xd0y\xb2f\x02\xaa%|a4\xf2\xcb\xe7\xcf\u007f\xf69\xd9\xf1\xf2\xc7\xd13\x19=\x81\xbbγm>\xa2\xb7\x9d+\xf0\x1eK2\xc4dͨAVZ\xb1\x9a\x8c\x00\x941\x96\x95\f{\xf9\tPX\xc3\xce\xd65\xbal\x81&\u007f\xee\xe68\xef\xa8\xd6\xe8\x82\xf0t\xf4\xf2\x87\xfcO\xf9\x0f#\x80\xc2a\xd8\xfeD\rzVM;\x01\xd3\xd5\xf5\b\xc0\xa8\x06'\xd0Z\xbd\xb4uנC\xcf֡ϗX\xa3\xb39ّo\xb1\x90S\x17\xcev\xed\x04\xb6\x13qs\x8f(j\xf3h\xf5\xa7 \xe7c\x94\x13\xa6j\xf2\xfc\xf7\xc1\xe9_\xc9sX\xd2֝S\xf5\x00\x8e0\xeb\xc9,\xbaZ\xb9\xe3\xf9\x11\x80/l\x8b\x13x\x10(\xad*P\x8f\x00z\x02\x02\xb4\xacWq\xf9c\x94UTب\x88\x19\xc0\xb6h~z\x9c~\xfa\xfdlo\x18\xa0u\xb6EǔԋώYwF\x014\xfa\xc2Qˁ\xf4[\x11\x18W\x81\x16{\xa2\a\xae0\x81B\xddc\x00[\x02W\xe4\xc1a\xebУ\x89\x16\xde\x13\f\xb2H\x19\xb0\xf3\u007fb\xc19\xccЉ\x18\xf0\x95\xedj-n\xb0D\xc7ర\vC\xff\xde\xc8\xf6\xc06\x1cZ+ƞ\xe3\xedC\x86\xd1\x19U\xc3R\xd5\x1d\xbe\x03e44j\r\x0e\xe5\x14\xe8̎\xbc\xb0\xc4\xe7\xf0\x9bu\bdJ;\x81\x8a\xb9\xf5\x93\xf1xA\x9cܹ\xb0M\xd3\x19\xe2\xf58x&\xcd;\xb6Ώ5.\xb1\x1e{Zd\xca\x15\x151\x16\xdc9\x1c\xab\x96\xb2\x00\xdd\x04\x97\xce\x1b\xfd\x9d\xeb\x03\xc0\xdf\xeea\xe5\xb5\xd8ֳ#\xb3ؙ\b\xcev\xc6\x02\xe2m@\x1eT\xbf5j\xb1%Z\x86\x84\x9d\x8f\u007f\x99=A::\x18\xe3\x90\xfd\xc0\xfbv\xa3ߚ@\b#S\xa2\x8bF,\x9dm\x82L4\xba\xb5d8\xfc(jBsH\xbf\xef\xe6\r\xb1\xd8\xfd_\x1dz\x16[\xe5p\x17b\x1c\xe6\b]\xab\x15\xa3\xceaj\xe0N5X\xdf)\x8f_\xdd\x00´τ\xd8\xebL\xb0\x9b\x9e\x0e\x17G\xd6v&R\n9a\xafô0k\xb1\x10\xf3\t\x83\xb2\x95J*Bl@i\x1d\xa8\xa3\xf5\xf9\x9e\xe8\xe1Еg\xae\x8a箝\xb1uj\x81\xbf\xda(\xf3p\xd1\x01\xb6\x9f\x87\xf6$p\x92Yb\x18c/\x1c|\\y$\x14\xa0N\x9bW\x15:\f{$\x8bQ!\xeee=\xb1uk\x11\x1cT\xd2\xf9\x91\x84\x13\x86\b*[}A\x8dG\xdb\a\x84\xc3\x12\x1d\x1aq\xf7\x98!Z\x1b\xf2\b+2),b\x8a\x05\xb6\x03Z\xcc#\xeaa\x88\xa7\xa9\x873\xd9s\x10\xf0O\x8fӔ1\x13\xc3=t>>\xf7\x02=\U00094135~T\\]q\xf6\xed\xb4\x8c\x87\x85\xdc\xc1\x16\x14\xb4\x84\x05\xee%c \xe3\x19\x95\x06[\x0eJ\x94[\x1b$\xc0\x1c\xf6;\xde\xc5Lѧ\xa4m\n\x17\xeaAI\x8e\"\r\u007f\x9b}x\x18\xffu\x88\xf9\x8d\x16\xa0\x8a\x02\xbd\bR\x8c\r\x1a~\a\xbe+*P^\xd4 \x87z&3y\xa3\f\x95\xe89\xef\xcf@\xe7?\xbf\xff2\xcc\x1e\xc0/\xd6\x01\xbe\xa8\xa6\xad\xf1\x1dPd|\x93\xfe\x92ϐ\x8ftl$\u008a\xb8\xa2\xc3KkÀxW\xaf\xf6*\xa8\xcb\xea\x19\xc1\xf6\xeav\b5=\xe3\x04n$\xcaw`\xfeG\x02\xeb\xbf7'\xa4\xfe.\x06Ѝ,\xba\x89\xe06\xf7\xddnDnAr\xa5\x18\xd8\xd1b\x81.\x14\bCOHޒ\x12\xbf\a\xeb\x84\x01cwD\x04\xc1b\xbd\x98\x8fP\x1f\x81\xfe\xfc\xfe\xcbI\xc4\xfb|\x01\x19\x8d/\xf0\x1e\xc8DnZ\xab\xbf\xcf\xe1)x\xc7ڰz\x91\x93\x8a\xcaz<Ŭ5\xf5Zt\xae\xd4\x12\xc1\xdb\x06a\x85u\x9d\xc5zC\xc3J\xad\x85\x85d8\xf17\x05\xadr|\xd6[S\x95\xf1\xf4\xe1\xfe\xc3$\"\x13\x87Z\x84|'\xb7SIR5H\xb9\x10\xef\xbc\xe0\x8dG\x97fz|\x17݇-\x14\x952\v\x8c\xfa\"\x94\x9d\xdcB\xf9\xed[\xe2\xf8\xf8\xeaO\xcf@\tp\x988\xfeo\x97\xe8\x95ʅJ\xf5\n\xe5\x1ev\xbc\xfc\xacr\xd2\x188\x83\x8cA?m\v/\xaa\x15ز\x1f\xdb%\xba%\xe1j\xbc\xb2\xee\x99\xcc\"\x13\xd7̢\x0f\xf8q(\xed\xc7߅?o\xd6%\x14\xe4\xd7*\x14\x16\u007f\v\xad\xe4\x1c?~\x93R\xa9V\xbc\xfe\x1e\xbb\x9d\xf5\x05\xcc\xe1^\t\x8bUEE\x95\x9a\x80>Ǟ\b&\x92\x8aS\xc7Ԭ\xcc\xfa\xab\xbb\xb2\x10\xda9A\xb4\xce\xfan3SF\xcb\xff\x9e<\xcb\xf8\x9b\x18\xec\xe8\xaa\xf0\xfd\xc7\xf4\xfe\xdb8xGo\x8a\xd5\x13\x85n\xf4\x91\xd6N\xb5PY\x12\xba\vu\xd9ǽũ\xae\x1c\xa8\v7k^U\x18z\xa3Z_Y\x9e\xde_\xc01\xdb,L\x18\xb6\x06\xe8\xcb\xc1$K\x1c\xf7l\x15x\x06O\x14u\x01K\xac\xed\x87j\xec\x1eI\xac9\u0088Ե\x01\xcfp\xb0\xbe\x16\xa1\xb4dR@\xed#̆;\x87\x835\xad\xd5\a#\xfb\x9ep0\xb95\xcd\xc1DT\U000aad8a\x15w\xfe5\x8dUؐ\x98\x8d\xf1ͽ\x98Pܾ\xb9\xb5*\xac\x14\x8e\xfb\xaf\x98\xce[\xf9\xeexGx\x8f\xe1tD\xc7\xd4`\xe8W\x02\x0eX)\x9f\x0e\x19\xb2(\xecȋ[CN\x15q\xa8CY'Ug\xa9\xa8F\r\x9b\x97\\\xf0$\x1dfh\xe8o\x87\xaa\x98$\xa8\xf3\xa8C\xef9\x00\xfax_i]\xa3x\x02\xd2\xc6g\"\xe2h\x85\xe9\xeaZ\xcdk\x9c\x00\xbb\xeex\xfaL\x005\xe8\xbdZ\\\x8a\xa0\xdf\xe2\xaa\xd8\xf1\xf5[@\xcdmǛ\x96\xaf\x0f\xa5\x9e\x8a[\xdf{\xc1\xeb\xda\xceJ\xf9KP\x1ee͐\xc7m\x82\xfa\xbc\xcbɃ\xa6k\x8e\x8f\xc9\xe0\x01W\x03\xa3S\xf3\xe8\xec¡?\xb6L\x96\f8\xd0\x04d\xf0K\xf0\x8eW\x11\xd0\x1ft\x89\x83~\x19T\xb6N\xdemY\xd5`\xbaf\x8eN\x88\x98\xaf\x19}b$\xa5\x86\xa1\x1e:\xd4\xde[&\xb7\x12R\xb6\x8b\xa2\xfan\xa2P&\xbcR\x12\xffe\v\x9a|[\xab\xf5\x80ܤI\xb8^\xc5}%\x8e\xb6\x1e\x93\xa2P\xc2?̽\xb6\xf7\x0f\xa0\xee\xad9Q\r\xa6\x90!\xc3\u007f\xfcÙۘ\f\xe3\xe2 \x95\xf6\xf3B\xe8\xcfr\xca\xd79\xe1̅\xefY9\xbe6\xed\xcd\xf6\x16_\xcaxA\xf4p\xbe\xdbM]ljj\xff\x98o\x99\xa3\x06\x89:\x1a\f\xc8\xf5\x8e\xec\xfe\xbdY?\xb2\xbd\xd9T!\xc5\x1c\xea\x87\xc3O\r77{_\x0e\xc2\xcf\xc2\x1aM\xf13\t|\xfe2\x82\xfe]ڧ\xf49@\x06\xff\x17\x00\x00\xff\xffñ\x1b\xae\xa0\x19\x00\x00"), + []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4W\xc1n\xe36\x10\xbd\xfb+\x06\xdb\xc3^*y\x17=\xb4ЭM[ h\x12,\x9cE.E\x0f\x145\xb2\xa7\xa1H\x96\x1c:u\xbf\xbe\x18J\x8aeY\x897\v\xacn&g\x1e\xdf̛\x19ҫ\xa2(V\xca\xd3\x03\x86H\xceV\xa0<ῌV~\xc5\xf2\xf1\xa7X\x92[\xef?\xae\x1e\xc96\x15\\\xa5Ȯ\xdb`t)h\xfc\x15[\xb2\xc4\xe4\xec\xaaCV\x8dbU\xad\x00\x94\xb5\x8e\x95,G\xf9\t\xa0\x9d\xe5\xe0\x8c\xc1Plі\x8f\xa9\xc6:\x91i0d\xf0\xf1\xe8\xfd\x87\xf2\xc7\xf2\xc3\n@\a\xcc\ue7e9\xc3Ȫ\xf3\x15\xd8d\xcc\n\xc0\xaa\x0e+\b\x18\x99t@\xef\"\xb1\v\x84\xb1ܣ\xc1\xe0Jr\xab\xe8Q˱\xdb\xe0\x92\xaf\xe0\xb8\xd1{\x0f\x94\xfap6\x19h3\x02\x1d\xf2\x96\xa1\xc8\u007f,n\xdfP\xe4l\xe2M\n\xca,\x11\xc9ۑ\xec6\x19\x15\xce\f䀨\x9d\xc7\n\ue10bW\x1a\x9b\x15\xc0\x90\x82̭\x18\x82\xdc\u007f\xec\xb1\xf4\x0e;Փ\x06p\x1e\xedϟ\xae\x1f~\xb8?Y\x06\xf0\xc1y\fLc|\xfd7\x11v\xb2\n\xd0`ԁ<紿\x17\xc0\xde\n\x1aQ\x14#\xf0\x0eGR\xd8\f\x1c\xc0\xb5\xc0;\x8a\x10\xd0\a\x8ch{\x8dO\x80A\x8c\x94\x05W\xff\x8d\x9aK\xb8\xc7 0\x10w.\x99F\na\x8f\x81!\xa0v[K\xff=cG`\x97\x0f5\x8aqH\xf2\xf1#\xcb\x18\xac2\xb0W&\xe1\xf7\xa0l\x03\x9d:@@9\x05\x92\x9d\xe0e\x93X\u00ad\v\bd[W\xc1\x8e\xd9\xc7j\xbd\xde\x12\x8f\x05\xad]\xd7%K|X\xe7ڤ:\xb1\vq\xdd\xe0\x1e\xcd:ҶPA\xef\x88Qs\n\xb8V\x9e\x8aL\xdd\xe6\xa2.\xbb\xe6\xbb0\xb4@|\u007f\u0095\x0f\xa2m\xe4@v;\xd9\xc8\xd5\xf6\x8a\x02Rn@\x11\xd4\xe0\xdaGqL\xb4,Iv6\xbf\xdd\u007f\x86\xf1\xe8,\xc6<\xfb9\xefG\xc7x\x94@\x12F\xb6\xc5Ћ\xd8\x06\xd7eL\xb4\x8dwd9\xffІ\xd0\xce\xd3\x1fS\xdd\x11\x8b\xee\xff$\x8c,Z\x95p\x95\xbb\x1cj\x84\xe4\x1b\xc5ؔpm\xe1Juh\xaeT\xc4o.\x80d:\x16\x92\xd8/\x93`:\xa0\xe6\xc6}\xd6&\x1b\xe3\fyA\xaf\xf9\\\xb8\xf7\xa8E>ɠ\xb8RK:\xf7\x06\xb4.\x80:\xb3/O\xa0\x97[W\xbeZ\xe9\xc7\xe4\xef\xd9\x05\xb5\xc5\x1b\xd7c\u038df\xdc~Y\xf2\x19\xc9\xc9d\xe9\xdb\x18\x97\rϰ\x01x\xa7xҿ\xac\xc8>\x8f\x81\xc5x^\x11!\v\xa1\xa4\x9d\xad\xb2\x1a\u007f\xcf\x15e\xf5\xe1BL\xb7\v.\x12\xd2\xce=\x81k\x19\xed\x14t\xe0\xba\x10I\x8d\x10\x92}\x13\xd9~~_7Rx-a\xb8@t33\x1f\xf3\xde&c\x06\xacB\xbb\xce+\xa6\xda\xe0\xf2\x91\xf2I\xd9P\x8fr\xe8{\xff\xeb\xf3\xbdw&u\xf8|\xdd\\\x88\xe0\xe1\xd4zZ8\xfd\xc2@EB\x81pzq\x9e~C\xadD\xf0\xae\x19H\f\x05\x1d%\xbe7\xc4 \x92S\xc0\xd9\x04-\x96\xdbcf\xb3Tm3\x93\xb9Ƴ\xedY\xfe\xbeh|\xb0\xe2\x14\xdf2@\xb2Øl\x9dB@\xcb\x03L\xbeQ\xbfz\x84\x18\x15y\xd2>\xf2\xa2\xbaP\x017\xe7\x1e#1\x01\x03\x96\x85i\xbf=\xa9\xf9-\x94E[\xea\xb4օNq\x05ra\x14\x02tf!\xef-\xacnP5\xe7}\\\xc0\x9d\xe3\xe5\xad\x17#\\슳\xc5(\xef\x92f\xa2s\xec\x1byX9\xf6\x90\xd2\x1a=cs7\u007f\xbd\xbf{w\xf2\x18\xcf?\xb5\xb3\r\xf5\u007f=\xe0ϿV=*6\x0f\xe3\x03[\x16\xff\x0f\x00\x00\xff\xff\x83\xf9\xd9\xe0\xf4\f\x00\x00"), + []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec\xbd}s#\xb7\x910\xfe\xbf?\x05Jq\xfd$]Dʛ\\\xf2\xbb\xdbJ=)eWvT\xf6jU+e\xfd\xa4\x1c\x9f\x0f\x9ci\x928\x81\xc0\x04\xc0P\xe2\x9d\xef\xbb?\x85\x060/\xe4\x90\"0Ծ\u0603\xab\xbax\xa9\x99\x1e\xa0\xd1\xe8wtӂ\xbd\a\xa5\x99\x14/\t-\x18<\x1a\x10\xf6_z|\xffoz\xcc\xe4\xf9\xf2\xc5\x17\xf7L\xe4/ɫR\x1b\xb9x\aZ\x96*\x83\xd70e\x82\x19&\xc5\x17\v04\xa7\x86\xbe\xfc\x82\x10*\x844\xd4\xfe\xac\xed?\tɤ0Jr\x0ej4\x031\xbe/'0)\x19\xcfA!\xf0\xf0\xe9\xe5W\xe3\xff\u007f\xfc\xd5\x17\x84d\n\xf0\xf5;\xb6\x00m\xe8\xa2xID\xc9\xf9\x17\x84\b\xba\x80\x97D\x816R\x81\x1e/\x81\x83\x92c&\xbf\xd0\x05d\xf6c3%\xcb\xe2%\xa9\xff\xe0\xde\xf1\x13q\x8bx\xe7^\xc7_8\xd3\xe6\xdb\xe6\xaf\xdf1m\xf0/\x05/\x15\xe5\xf5\xc7\xf0G\xcdĬ\xe4TU?\u007fA\x88\xced\x01/ɵ\xfdLA3ȿ į\t?;\xf2\xb3^\xbep \xb29,\xa8\x9b\x0f!\xb2\x00qqs\xf5\xfe\xf7\xb7\xad\x9f\t\xc9Ag\x8a\x15\x061\xe3\xe7F\x98&\x94\xbcǵ\xd9\t\xe0&\x103\xa7\x86((\x14h\x10F\x133\aB\x8b\x82\xb3\f\x91XA$DN\xab\xb74\x99*\xb9\xa8\xa1Mhv_\x16\xc4HB\x89\xa1j\x06\x86|[N@\t0\xa0I\xc6Km@\x8d+X\x85\x92\x05(\xc3\x02b\xddh\xd0Q\xe3\u05f5\xb5\x1c\xdb座Hn\t\bܔ=\xca \xf7\x18\xb2\xb35s\xa6륭/\xc7/\x89\n\"'\xff\x05\x99\x19\x93[P\x16\f\xd1sY\xf2\xdc\xd2\xdd\x12\x94EN&g\x82\xfdw\x05[ۅڏrj\xc0\xefw=\x980\xa0\x04\xe5dIy\tg\x84\x8a\x9c,\xe8\x8a(\xb0_!\xa5h\xc0\xc3G\xf4\x98\xbc\xc1\xed\x11S\xf9\x92̍)\xf4\xcb\xf3\xf3\x193\xe1\xfcdr\xb1(\x053\xabs<\nlR\x1a\xa9\xf4y\x0eK\xe0\xe7\x9a\xcdFTesf 3\xa5\x82sZ\xb0\x11N]\xe0\x19\x1a/\xf2\xdfT\xdbvܚ\xabYY\xca\xd3F11k\xfc\x01\xc9|\xc7\x0eX\x82w\xb4\xe4^u\xab\xa8\x11m\u007f\xb2\xd8ywy{פ3\xa6ױ\x8fxo\x10_\xbd\x05\x16aLLA\xb9MDj\xb30A\xe4\x85d\xc2\xe0?2\xce@\xac\xa3_\x97\x93\x053v\xdf\xffY\x82\xb6\x04-\xc7\xe4\x152\x152\x01R\x1695\x90\x8fɕ \xaf\xe8\x02\xf8+\xaa\xe1\xd97\xc0bZ\x8f,b\xf7ۂ&?\\\u007f\xd8a\xad\xf1\x87\xc0\xbc\xb6\xec\x97?\xfd\xb7\x05d\xad\x13c_cS\u007f\xcc\xc9T\xaa\x16s\xb0\xaf\x8c[@\xbb\x0f\xad\x1d\xee\xf4[\x0e\xb6\xfe\x97\xb5\xa9\xfc\xa5z\xd0ҏ\x9dD)\xd8?K@\x16\xe7N,l\xb0\x94\r\x90$\xcc\x0f\xc9b\xbc\xf1\xf7-8\xb5\x03\x1e3^\xe6\x90W\xdcvc-k3\xbe\xdcx\x01\xc5\x11e\xc2ҿe\xffvڢ\xfe\xabe\xa7\x1d3\xa6\n\x88\xa5@&\x1c<\xc2\x04.\xb6\x13\xd3v0\x03\x8b\x8e\xc9\xed\\\x1dA9G'\x1c^\x12\xa3J\u0602\x19\xaa\x14]mAL\x90\xcd\xfb\xe2\xa5z\xde3\x04\xce2h\n\n\x87\x1a'd\xa8ڜ\x11\xf9\xa4\xb12\x97\xf2\xfe)L\xfc\xd5>S\xf30\x92\xa1\x8eC&0\xa7K&\x95_\xbb\x17)\x13 \xf0\bYiP\xcco\xc0-\x91\x9dJE\n\xa9\xcdv,l?\x89\xc4\x1d\x8em[\xb8\x13\x85\x1b+\xf3\x8c#l\xb1]h\x8b\x89H\x01v\xae\v{\x12\xebg\x95,ݳ\xebܾ\x81\xf0n\x8c\x90\tՐ\x13\xe9i\xa0\xe4\xa0\xfd\xb7rdO\xf5);\xdb\n\xbaZ\xbc\x93\xbb\x9cN\x80\x13\r\x1c2#\xd5&&\xf7\xc1\xa7\x1b\xfbp\x8e-x\xec\xe0!\x9e\xf7zN\\/l\aHb\x95\x8e\x879\xcb\xe6N$Z\xdaD8$\x97\xa0\xf1\x18Y\xb5m\xb5m\x91䩽\xf7\x1f\xd9u\x90\xea\xf1đZ\x87\xd7u\xb8\xea\xb1\a\xf3\xa9\xc7\x13l\xa8\x8d\xd9Z_\xed\x94#\xf5\xf8e\"6\xf0\xd5\x04\xa2\xbd\xdax\xf5\xb0D\x8b&\x86U}\xaf\xa6\x04\x16\x85Y\x9d\x11f¯OA\xa4\x9c7\xbe\xff\x19oL<\xc5_\xad\xbfyP\x8a߹+OA\xb4\xbbR}\xfe3\xdc\x14\x14\x16\xb7^V\xec\xbd!\xdf5\xdf:#lZmH~F\xa6\x8c\x1bPk;\xd3\xeb\xbc\x1c\x02\x19\xfb\xc8;;\x16\xd4d\xf3\xcbG\xab\xd9\xe8\xda\x1d\xb3'^\xd6_v\nbИۂ\xf9\t\xb8\x04\x8d9\xa6`\xe1\x8c\xc4;\xc4f\xfd\vj\xd7\x17ׯ!߅\x1e\xb2\x1f\xe5m,\xe4bm\xb2\xcdO{\xadw\xdfexէ\xb2 \x9c\xf9\u007fF(\xb9\x87\x95\xd3X\xa8 vs\xa8\xfd\xd0\x16[b\x139\xe8\x87@\"\xbb\x87\x15\x82\xf1\x8e\x85'\xdfޗ\x14ܸ\x87\xd5>\x8f\xad!\xd0\xceɛ{\x0e\x93\xf6\aD\x04\x9a\xa1\xfb#\x8f\xa0\x93(\xf0\xa2\xa7\x17G\xf6g$a\x04\xdc',\xb3ڶ\x863\r7\xf6X\xbb-\xb2\xa7`Ί=\x17\x8a\xbe4\rxZ\x82\x9b\xe8=\xe5,\xaf>\xe4\xe8\xfeJl׆\xdb\xe3Z\x9a+qF.\x1f\x99\xb6S\x139y-A_K\x83\xbf<\v:\xdd\xc4\x13\x90\xe9^\xc4\xe3%\x1c۶xh\xfa\x9b\xf6 n7\xae\x9c[\xa1\xda\x1e\xa6ɕ\xb0\x86\x8b\xc7\az\x0f\xdd\xe7vˇ\xf6X\x94\x1a\x1dJB\x8a\x11\x8a\xcaqח\x1c\xb2\xf7\x04)UkG6\xa7V}\xd4}pO\xb0wV\x92\xb8\xf7\x9d?\x94\xd3\f\xf2`m\xa2\x17\x8f\x1a\x98\xb1\x8c,@\xcdv\t\x8e\xe6(,\u007f\xdfo\n{r]7\")l?\xd1\x1e\x86g\xdd\xf9ӓ\x19ٓ\xbb\xc7Sa\xb3\x9f|t\x8b\xf3n\xfb\xa3O\xaf\bE,\xea\x1fOb\x97\xe69FZ(\xbf\x89\xe0\xf8\x11{\xb1)\xfb\xddĜ\x84\\\xd0\u009e\xdf\xff\xb1b\x0e\t\xfa\u007fIA\x99\xda\xe3\f_`ЄC\xeb]\xef&j~\xc6~\x81ib\xf7wI\xf9\xa6[\xb8cq\xd2\xf2\x16\xe0N\x90\xcb\xe9\x86\xc6rF\x1e\xe6R;\x99:e\xc0\xbb\\6\xed\xc149\xba\x87\xd5\xd1\xd9\x06\x1f8\xba\x12GN\xc0G\xb3\x9bJ[\x90\x82\xaf\xc8\x11\xbe{\xd4G\tړ\x12\xf7zLt:}\xeb\xd1\"\x8b\xa6\xe3\xb7\xf6\xf8z5w\u05ec\xf7\xa2\xc3Bj\xf3\xd7n\x87ݖ\xf9܄7ںi\x87\xdf\xebI\x9d\xdd\xfb\xb0*\xa6j5\xb9\xa9\x01\xe5\x9dx\x8e\xd1\x06\v\xa0\xa7m\xf4\x94\x93\xaer\xd0\xd1\xcaQn\x11\xfc\x04U\xb8\x00\xc0>S\x8c\xd1\x1a-^\"\xf5\xed\xcbdž\x8fўP\xfb\xef\xe6B\x0e\xad\xd5fr\xb1\xa0\xeb!\xaf\xbd\xa6\xfaʽ\x19h\xda\x03r\xbb\xaff%\x9e\xcb\xfdս@C\x18\xecz`f\xce\x04\xa1\xe1\xf8\x83\xf2\x04EI!\x9f\xe6Dn̩&\x13\x00\x11\xd0\xf7$kp\xe3y\xe5\xf5\x82\x89+\xfc\x00yqp\xf9Njt%mg@u\xb5\xa1\xd5\x0f(q\xf6U\x8ddN\x1e栠E\x15\x9b\x0eo\xab1\xee\tRH\xd3\xf4+X\xb8\x85̏5\x992\xa5Ms\xa2\xfb\x12\\\xa9\xf7%\x87\xc8\x1d\xb6\xab\xbbc\v\x90\xa5I\u0603\xcb\xfa\xedV\xb4rA\x1f٢\\\x10\xba\x90\xe5\x1e\xc2\xdd\r+_آ\n)\xfa\x1dx\xa0\xcc \xbb\xb3p\xd1\xc3b\xa4ݥ\x82\x83\xd9w\x8b'0\xb5\xec(\x93B\xb3\x1cT\by\xbb\x9de\xd2\x1e\xdc)e\xbc\xec\n\xdft\x8dX3U\\*\x95d\xa5\xbeuo6\xbc\x86s\xf9\xd0F\xd0\xde(\x98\xd3%\x106%\xcc\x10\x10\x99\xdd\x17P\x8ee\xe3'<2\x105{\x93\xe5~\f\xde\x0e\x10\xe5b?\x04\x8c\xf0d3\xb1\xd3)\xd6|\xfck\xca\xf8sl\x9b\xa5\xbc\xf4\xa3\xf1}\xfd\xf6\a9\x1a\x15S\xd9_\x84M\x80\xbc\x03\x9a\xaf\xc2\xf9\xa0\xc6XS\x15i@\x12U\x8a&G|\x86\x93\x11c\xdf\xf9Y\x1c\xd2pc\x82\xed\xb1\xb1k\xfe|f\x9aڎ\x05\xf1\xacڎ\xfd@%\xe8R\\3W-\x00VT\x06\xc5\x19\xe7^QM\x84\xe63\x01k\xa0B\xee\x9c^V|z=\xda%\xf2l\t\x83w\xae.FuYs\xf3zC\xb3\x91\xfc\x16}\x04\xbc\x83w%K\xf2@\x85\tD_)s\x85ܓ\xeacw\xd5\r\xaaf\x11Ood\xd6\x05\x955\xa4\xb7\x810j\x85\xe9V\xfbN\xda\rk\x9a\xe62\xbb\xb7\xeaȂ\xce\xe0\xf8X\x93Wo^[R\xb1Z\x87\x15\x19\x11\x12\xc1\r\xe6\"\xb1\x85\x92K\x96[\xd5\xe9=U\x8cN\xb85\x82\xa7\xa0@d\xa0ɗ'\xef/\xde\xfdt}\xf1\xe6\xf24\n\xb85\x9dᱠ\xc2\xd2`\xa9\x834\xafv\xdf.\x00Ē)),\x82\xe2\xb0q5%\x94,\xc3l\xb3*\x13͚Z|鵹(\x88Պ\x83#\x84\x89\xa24\xc1;\xfa\xc08'\x938\x88\xa5\xc8\xe6T\xcc,^_\xcb\xd2\xce\xf3\xcb/\x11+\n\xf22\xf3\a3\n\xa2?L_\x9e\xf9p\x16\xe5\\>h\x94-\xa03Zx\x1cG\xc1ll/\xd1+a\xe8\xe3K\xc2\xc60&G_6\xfet\x14\x05\x13\xb1U(i\x97\xe9\xe2\x11\x0e\x8b\x9c\x19P\x94\x93\xa3&不\xbf\xb4넼I\xa0\xf85\x01KP\xce\x0ep$\xb7\xaf\x03\xdf\r\x053\xaar\x0eZ[\x9e\xfb0\a3\a\xe5\xddJ\x9e\xc8 \xc6\xeb\xec\x86T\xf6|ufJֹ\x91Q\x10C\x1e\xe5}\x95\b7T\xdf\xebs&\xacH\x1d\xe5\xd4\xd0Q\x83\xe9\x9e;i8\xf2\xf2y\x14,\xe9Qu\x1c\xcf\u007f\xa3J!\x98\x98\x8dh\xf5\x14\x13#:\xd2s\xe0\xfc8b\x96Q\xe2\u008dh{\xb7\xf9ZL\x80!\xd21\xe1F\x9b\xa3_V\f\xdc}yL\xae\xa5ٕ\x81\xb6}T\"\fq<\xee\xe4\xf1\x97\xd7w\xef\xfe~\xf3\xf6\xea\xfa.\x96\xb57\xc5\xc2vV\x9f\xc6$[b\xa1\x83\xd5\xc7\xed\xfe.\xb1\xd0f\xf5Qp\xb7\x88\x85\rV\x1f\x87\xd8\x0e\xb1\xb0\xc9\xea\xe3X\xf0\xa6X\xd8\xc2\xea\xa3\xc0\xae\x8b\x85\xad\xac>\nj[,lc\xf5Q \xbb\xc5B\a\xab\x8f\x17B\x9bb\xa1\xcd\xea\xe3 n\x17\vk\xac>\nl\xb7X\x18X}\xc7kq\xac\x1e\xc42\x99\xcd\u007f\xe7ͯ\x06+\xaa\xf6<\x8e\x0e\x8dČ\x03&\xda|\xaeK+x^̷]\x82b\xf9\x9e\xb6\xd3*Ds\xb1Q\x90I}\x1cB\xc66\x8a\xb5ʢ\x8dc1)V\x9a\x1bOEκ\xc7f<\xcdߚH\xc7\ai\xe0dL\xde\xf8\f\x03J^\xfdt\xf5\xfa\xf2\xfa\xee\xea\xeb\xab\xcbwqH!\xe9g\x87\x84\xa4\x91\x9e\xa89\xee0\x0f\x13\xf0\xb2[s\x88\x16\xc8n\x14\n\x96L\x96\x9a\xaf\xaa\xf4\xf6\xfeG\u05cd\xf5\x93\xebS\xcaVD\x83Z\xb2,e\xb6\x9dS\xeb\xa3\xea\xb8\xf1\xa4\u0093\xbe\xfa'Ԟ\x04\xc0\xdbmb\xaf\xfc\xa4\x90\xd6!-c\x0f\xf2\x19\xecc7\x9e\xb0\x92\x13 \x1eV\x81j\xccr\xa7\x1a\x95\x00t\xb7\x8dM\xf6N\\l\x0eT\xbf^Ô\x96\xdcyێ\x8e\xc61\xba\x8c\x1b}Y\xec\xd7J\xee\x19@i\x8e\x16\x9b\xbdu\x97\xbcB\xc4\xe00B\xe8\xd8'ƶ\xd4\x0e\x1di\xaf\xba\xc1|\xeed\xb0)\xa3\xf2\xe6\xea\x91.\xe5\x89\vIO\xd9\xec\r-\xbe\x85\xd5;\x98\xa6\x80XG;\xe6\xcc\xfa\xf4\xd2XӠ\x1e\xa8\xf5\xb8\xa9\xa5pžx!1\x19\xc5]\xa3\x85\x93;\x9f\xfd\x8c:\xacEOڒH\xbf\x83\x15F\x9av\x17F[\x95i\xa8y\xc9\x10+\u007f\x88\xd9\xd7pˤȠ0\xfa\\.\xad\xee\x00\x0f\xe7\x0fR\xdd[K쁙\xf9\xc8\xc5\xc3\xf49^\xc39\xff\r\xfeO\x8f\xd9ݽ}\xfd\xf6%\xb9\xc8s\"\x91Ֆ\x1a\xa6%wiw{g\xfav\x8d\xba\xa8\xc0\x19^l?#%\xcb\xff\x1c\xcfl\xc38\x00m\xc8\xc2eb\x1e\x88>n1\x92\xbf\nR\xaa\a\xae,\v\xaf8\x02\x91\n\xc3o\xfb\xa4\xc1n\x1f!a\xd9+\xba=\xd1>\x91\x92\x03]/\xe2\xb0\xdf\xd8?4\xdc5\xf6K\a\xee\x1a\x11\xe1㮁'\xe00R\xe3\xb8\x16\x1b\xfb\xa5\xb3v\x0fop\x162\u007fItY\x14R\x19]\x15,\x18[F\x10\x17ϨG\v\b\xde\xed;#\xffY\xfd\x88wG\xf4\x0f\xc7\xc7\u007f\xfa\xf6\xf2\xef\xff\xe7\xf8\xf8\xc7\xffL\xfdN\r\xb3Qk\xe6\x10\x80u\x01\xd9X\xc8\x1c,\xcb>s\xff\xf4\x96\xd7E\x86\t2\xd7=У\r5\xa5\x1eϥ6W7gៅ̯nz\x82D\x18:A\x05%\aQ\x02\xb6\x15~\x89\x19-J\x0f\x05bz\vM_K\xc6\xd2\xfb\xd7\xf6\xc8\xdcP3\xdf?Ůk<(f\f\b\xb4UA-4\x91\xd33\xcb\x1d\xd1\x14\xe8û%9Z\xbe\x88\x8cP\xb6\x00\xf4\x17lӀ\xa2\x03m#b۳\x9b>\x1c\x8b\x04צe\u007f\xc1KPeS\xf6\x00zqs\x15\n\x0f}D\xc4\xf7\x95lն}\f\xf9\x16\x12ο~\x169\x17\xa0\xf7\x13uuN\xb1\xbb\x83\xb1\xdfM\xde\xed\x833\xacPDE^W):q?\x8e\xb3\xa2Le\xe6\x1e\xc2\x02\x16R\xad\xce\xc2?\xa1\x98\xc3\x02\x14\xe5#m\xa4\xa2\xb3d\xf1\x13\xa6\x8aS\xac\xff\xe5>\x97\xca\xf9\x1b(\u061ci\\\x12O\x03\xaa\x02\x92\x95\xcaZ;|\x15t\x14\xc8?\x9a|\xab觻DҾ\xa3M\xe4u\xb2z?[\xb3\xe6\x1f\xe8\xc6YJ^.@\x9fUVJ\x0f\xc0\xe8\xd2\x14K\xb2\xa4J\u007fT\x8b+gK\xa6\xf7M\x97\xee\x1aT\xac\xde&\xb2&\x82<\xd6-\x82\t\x03\xb3\x1e&\xda\xe8\x10\xc8\xe84\x1f}\xf9\x88\x1e\x9b-KS\x94\x98<\xbc\xa0\xa6\x8aJ=\x162\xcds\x17F\xa3\xa0O\xdet\x98\xbeHqc\xbbQPc@\x89\x97\xe4?N\xfe\xf1۟G\xa7\u007f>9\xf9\xe1\xabѿ\xff\xf8ۓ\u007f\x8c\xf1?\xfe\xe5\xf4ϧ?\x87\u007f\xfc\xf6\xf4\xf4\xe4\xe4\x87o\xdf|sws\xf9#;\xfd\xf9\aQ.\xeeݿ~>\xf9\x01.\u007f\xdc\x13\xc8\xe9響L\x9e\xf2\xe3\xa8\xf6Ќ\x980#\xa9F\x8e\b\x9e,\xf6\xb0k\x04\xe4\x1e\x8a'\xbd\v\x9aH_\xc1K\x9a\x1a\xdbGd\x1d}U\xab^h\xe8\xa9Yi\xc8\x14\x98O\xcf\xe7\xec\xe6\x15\xd4pw\x8b\xa92\xf8\u007f1n\xe8\xfe\xa6\xa7CSm\xb7`\xb1C\x82\x01\xfa\x1e`1\xb4\xbf\xc4:\x12\xfe\v\xf7\x90\x10\x11\tcp\x95\x0f\xae\xf2m\xe3\x97\xee*\xbfu\xe7\xa7\xf6\x93\xa3\xb7\xbb\xdf\xd9\x1c\xfc\xe4I\xd2.\xf9\xe5\xb4պ\x9a\xdcQ\xaf$\xce01\x9706\xb4ߙOX\x17\x92#\x85,JN\xf7\xbe\x1d[\xcdc3sh3\xb90\n\xa6\x17\xafua\xd0:/ݥ\"D\x1f\xc1\xcd\\7r\xc19a\xc2\tI\xfc\xd8\x03\xe3qv0\xa659\xaf\x03\xa1._qi\xd1\xf00\a\x91t\xb7\xd2\r\xa6\x896T\x19&fc\xf2\xbd\x85\xe5\xb41\x9f\x8b\xc2\x04Y\x94ܰ\"2!\xa9\xb2\xb0\xaa\xda$\x84j-3F\x8d\xc7p\xb4@\xe5T\x9b\xb0%\x98\x96c\xe8=f\\f\x90\x83\xc8\x00kY\x95\x91r0\xec\xf9de1z)\x96nn\x94\xe4\xa5K)\x86h\xee\xd3=\xb7\x8f\x9d\xeej\x8f\xafO\xad\xa9\xb3^#\x99\"\xfa\xb8\x1d\f9\xadK\x89U\xf1\xdd8x\xe9*v\x95\xfd\x92d\x86l\xe8\xd6u|\xbaҌS\xa2\xaaJ.>p\x16P\xba\x9a\xbbUŭ\x15\xd5D}\xe1SSo\x9fE\xb5=\xa4Z\xdbS\xa5\xed\xa7\xce\xeeRe{X<\xf5\x89:D\xb2F?\x05\xb4\x87\x12X(\x98\xb2Ǟ\x1c\xe6BT{DX\x0e°)K\xb2\x13\xacΤ\xa0\x00\x81i\xc2@\xb3\xb9+\x83)\xdaI6)4\xfd\td\xe8;\xcf\xc1a\x18\xfa횟c\xe0\xe6\x037\xdf1\x06n\xbe{\xf8\xe3\xf4\x19\xb3\xf2\x0fh)\xe3\xcd\xe5\xf4\xebկ\x1b\xf7\x9f\x91#<\xc7]\xf9\xea\xbcօU\xce\xf1\x8bq\xc7\x12\x8b\xc0\xe2ѳVd%\xe4\\1}\xf9@\xe6l\x16\xeb\x11\xe3\xb0\x04\xee\xf5{\xb2\xa0\x82\xce\\)M#C\xa8.\xf6v\x84eI\x8a\xe5\xad\xc2k\xb8T+8-\x9b\xe2\x92\xc6\xd1r\xdd;N\x13\xce\ue07c\x86\x82˕\xaf\x98)rrk\xa8\xb1l\xe9\x16L\\\x02\\\x12\xf3\xc0\xd5ܔ\x9c\xdfHβ\xa8\x98C\x9b\xf4\xae\x90抒sR \xa81y+ 6,s\xc1\x1f\xe8J\x9f\x91kX\x82:#W\xd3kin\x9c\xb9Y\xdfO\x89;\xbc\xd2\x03%lJ^\xba\xfeh\xc4\xd0\x19\xba.\xaa\xfauqD\xa1Z\x13s\xc2\xe4\x81\xe9\xbevz\xb4\xc0\xdc8\x80\xbf\xc1\xafZ\xd1\xe9\xfe\xfd\xec\xe4\xc3\xd9\x14\xb2U\xc6\xd3y\xd6E\x86ɮu\xf9\xf5\xfa\xdcƹ\x8cV\xda\xc0\"\x94\rC\a\n\xc32\x93\x85\x14\x1a\\A\xbd\x14\x0fW\xb5B\xe70\xd3=\xf78U\xc9+\xa46\xb7\x86\xaa=˴գ}Jo\x02\x18K\xfe\x19\xe5\x1cr\xc2\x16\v\xc8\x195\xc0\xe3\xfd\xe4\xa1\x02h\xb3ܣkw\xe9\x8aI&\xe9\rs*r\x0e\n\xeb\x15z\x1f`\v\xbe\x01\xb5`\x82\xc6\x16\f!Uz\x17\xba,!'4ˤ\xca}-\xb8Pً\xaax\x8d\xbf\xe2x\xa8+5$\xcfz\xbe^4\xe4\t\x97ٽ&\xa50\x8c\xd7\xe5!CmHߨ1\x1aj\x12\x8b\xa9\xfesT\x9d\x89\x11\xf6#;\xffM\xfd'\xfc!V\xf9\xedc\xf9\xecW\xcfws\xacՠ\x04$\rL\xa6\x94\xf1b+\f\xcc\v\x96V}\xb1DU\xd7W\xad\x04M\x9a\x91\x81\x05\x88\xdb]u(\xb2M\xac\x8bF\xef#\xab\x90\xb8\xd17G!\xa1\x16Ps\xec([\x9c\x1ck\f\x85m9\x13Ь_̰&jz\b\xb3y\x82\x1d?\xf2\x16jz\x10\x98)\xec1\xb2jԶts\xef\x93̯\xa44\xe4\xe4\xf8\xfc\xf8t#\xa8u\x9c\x0eu\xca88\xe9\xea\x8a,e\xd5f%\x83\xd4lQ\xf0\x15\xee\xcfq\x8e\x1d\x9d\xfcuXU\xa6ň\t25\xbbˡ \xd4\x19ђ\x18EC\x97\x81\xf4\xb9Zh\x16\xb8Q\xa5\xd7UN\x8e\u007f>>#`\xb2\xd4|`B\x1e\xa486HFcr'I\xa9\xeb\x89'\xc3\\ɒ\bpu\x00\xe0\xb1\xe0,c\x86\xafP\xcc'Ô\xa5q\xc5\x17\xb1A\"\x16ں|d\xc6\xdf\xd3I\a;%_\xe1iw\xaa\x02\xa1\xd6\x18Z\xc2\xf9\x1c(7\xf3\xf4\xfb}\x96.\x85\x14\xa3\xff\x06%\xb1\x8c\x97\xf0\x10S\xbd;\t\xb1\xb3\xe68@\xc6I\x8a\x1ba\xfd\xed\xc4$\x06\xab |\x03\xd1*'\xd9\xe8Hzww\xf3\r\x98\xb6\bKB\x87\x9dQ\xc8\xcfG\x976\xa8\xa9T\x1d-w\x9f\x1e}\xe5\xdf\\\xea$̐\xcd~\xadڸ\xee\x13\xceH\x11i>g7\x8cl\xa7%\xfb\x8cFru\x93\x9e\x88\xf5wYZlM脯\xaa*\xb2\x1a\f9\xb2SOO{f\x02\xf7\xf3\xaf@s\xac\xdb+\xb4\x01\x9a\xa8\"\x1d\xe0\xa85\xe6r\x18\xa5\xc6\xf5ݝ;\x90=v\xb4Y\x02\xcb\xd3\xfe\x18\xcfT:\x9bt\x15^\x14\x14\x8e\xfd\xfa9~$&\xb9\xc1+\xdc.\xf8\xdf'\xbdr\x13ih\u007f\xec\x96\xe8k;'\x16\xef\b\x83\t\x9c&\x1e\x8a\x1e\xb3\xeb\x9f%Lzg\xab\x92\xae\b\x98\xc3U/\x98\xfe\xeee|Z\xda\xfa8\xc8\xfd\x92\xe4\x12^\xcd\xf1\x9ch\xc2\xe9}|<\xf5K\xb5$i\x89\x88\xed\xd7\xfba\xa2\xe7\r\x05\xd2[\xdf\xc2\xcb<\xc9\u05cd7/\x1b\x1bIh\x96\xa5\x15\x8ar\xc3w/G\x86\xa5A-c\x13\x1c\xebћ\xc4\n\x19\xef\xbf\f\xa3ׅ\xb7\xc3\\w;\xc8e\xb7\x8ez\x89\x8a\x88r1\xe9\xc1I\xaa\x02\x18\xca\xd4\x04\xe37\xbe\x873\xa5*\xb6y\x8d\xd3\v!\xdc>\xfa\x1e\xaa0T̀\xbc\xb03\xfd\xe3\x1f\xfe\xf0\xfb?\x8c\x11\r\xc9PC`\x99\nruq}\xf1\xd3\xed\xfbWX\xc4-\x95ʟ\xe5f\x1b\x96mH\x96?\xed\xc8<\x82\xb2\xd8+5\x16:\xeb\xb3\xc3\xd6\xd6\xf0\xfeo\xe7\\֩q\xb6\xe60\x12\xd9\xcdG\xe23}\x84\xd8\b\x0fч\xb6\xb3MV\xdc\xca\xec\xfe\x00\x96\xf6\xf1ݫ\x1b\a\xaa6\xb6\x93v\x81\x8a\xe0bfb)\xf9\xd2\xf5\v\xbc{u\x83\bJ\xdbY\xfb6\xc6\a\xd0շ\xb2s\f7\xe1]jN\x12T\xb6(|\xc7LJ\x14Pδa\x19~\xab\nS$\xda\xf7\xf2>%\x8b\xe7\x93\xf1+\x1c\xbf\r\xe9@\xe8bH>\xcdk\xae\x89\x96\x8b\xa1\x0f\x8bh\xb8&R\xaft\r\x1a\xc9\xc15\x12'\xea\xa5\xea\xa7\xc7\x0f\x1aɧ\xad\x91|n22\xf9\xd5B\xc1\xad\x91EϬ\t\a\xe4@9\x13\xa1\x13ݶ\xa4\x06\x92'l\xa9\xeb\x1d}qsUy\xc7e+\x11\x01\x93W\xa2\xa1\xea2\x9b\x87،\x00\xad\xcf1=\xa2,\x9c\xe7+4\x94\x8c\x8fX\x15\n\xb0\v\x9f\x14gUE\x02D\a\b\xf7#\x98,\xfe\xb4\xa0O\xc6\xe7\x8e\xf8xbخ\xbei\x18\x99\xa2z\x0eة\x02\x1e\x99ѡ\xdb5\xd5R\xb8\x10\xae\xdf>&\xe3\x03\x98L\x93\x82j\xed\x02w\xa6^\x84\xfbȍ̏\x13\xa2\xb7\x8d\t\x91\x99\xa2\x19\x90\x02\x14\x939\xc1\xaa\u007f\xb9|\x88\x9f\xe7\x04fL\xe8@\xbfv\xa2\xe1`X]\t\x92\"\xc2u\xe7\xd9w\xad.Rخ\xbc4\x99L\xe0\xc3\xfeu\x8f\xc5\xf5\x04\xa2諓8M{|J\xca\xf9\xaa>\xa8ᦧ9\xfc&mf\x12\xa5\"\xa1^\xf7z&Q|4\xb0\x95yd\x8fB\x9d\x95ԇ\xfc[\xd4ɴ=UټG\x9b/\x12\x9f\xbe<\xa46=9\x86Ԧ\xbdǐ\xda4\xa46\r\xa9MCjӐڴ\x17\x88!\xb5\xa9\x9aѐڴc\f\xa9MCj\xd3\xd3cHm\x1aR\x9b\xea1\xa46\xed5\x86Ԧ=Ɛ\xda4\xa46m\x1dC qHm\xfa5\x06\x12\x87Ԧ\xb8ׇԦ\x881\xa46\r\xa9Ma\f\xa9M\x91c\xd0H\x86Ԧ_\xa3F\xf2\xb9\xc9\xc8^\xd5\xc5\"_\vy<7JNz\x94\x19\xbb\xc1X=\xcb|\x1a\x90\x9c&\xd7\xd6q\xd3\x19\x93W\xad\xf4\f߄\xdfUi\x89\x82\xe8\x13}\xea\xf4\xa4\xbe\xf5z\xa2k2\x85\xa2`\xfa\xbc\x90\xee\xff\xd59\x05\x8dd\x02\xe7_\x8b\x11\x0e\xa9\xc27%\x8b\xe0\xa9\f\x82$^\xb7;{\x003\x01\xa2a\x1e2s\xa0\x8fv\xd3#c`G\xb6@\x00\x9b\xc4\\\xbb3\x05\xd6\"\xfeɩ >K`3\xda\xdf'\xe1\x02S\xe16\"\xfd\x89\x10\xab\xec\x80mQ\xfe4\x95\\\x1f>\xc2\xff\f\xd1\xfd\xc3G\xf6wD\xf5\xc9J\x96I0\xb7D\xf4}d>\x916;\xa3\xf9!*\x9f\x06\xb3;\x92ߊȧ\x12S\xaf(~\x8f\xe0TO\xe5:ݓ\x9c\xac)\xf9d㻹\x02=\x97<\x9a\u05f6\xf8\xec\x1b&آ\\X6\xa1-{d\xcb*\x9b9\x9eFB\x9e\x93\xd3:\\\x18\xce\x02f9`\x13K\xcaxJ\xa9:,\xad7\xa7\xe8\x9f\xd0e\x96\x01\xe4VN\xbe\xaeC\xe0\xd10\u007f?\xaeV\xee\xbaj0M^\xc4R\x9ek\xa8\x88\xf6\xdd\xef\u007f\x97\xb4\xfb)\x96ab\xc2\xc6\xd3\xc9\x1a\b9\x1a\x93\xfd\x135\xfa\xa8\x1b\xa9\x8e\x94\xe7I\xceؑ\x98A\xfe\x9e(\x1av$e\x10\x96&f\x0f\x94\x90ыs\xf6L\xc4ؑ\x84\xe1q\x94\xa8\x80l&`\xac'R\xa4\xa1<=\xf9\xa2\x87l{\xae\xa4\x8b\xed\t\x17\xa9$Iz'[\xf4O\xb48`\xb7\xc3:s\xa0ww\xfc^.\xba\x03x\x0e{&U<\x17Z\x0e\x91B\xf0\x11\xbb\xcf&\xefj\x9f䉞\x89\x13}\x92&R\x13&v$K\xf4\xf14\xf7L\x94\xe8E>\xa9\xe1\x88\xe4PD\xff0D\xef\x10Ď\x84\x88>=a;C\x0f\xa9\xfd\v\xc3h\x87\x1d\xd6\xc2\a\x89ja3\xe4p\xd0\xd0\xc1\xc1\xc3\x06\xe9I\f\xbb\x13\x18\x1a\x89\b\xa98\xdcL^蓄Ѓ\xa2S\x99\u007fRP%\x99i3\xc1\f\xa3\xfc5p\xba\xba\x85L\x8a\x13\xa2u\x1bsN}\xe7L\xc8Å\xda\x10\r\x89g\xad\xa8>\x12\x8aq\n\xbbzӾ=\xf9q\xe3\x16䣹\fܕ\xd2C\x10\xc1_\xe5\x03\x91S\x03\x82\x9c0\x11\xe8 ޏZ;\vj\u007fQu\xac\xed__|\x15Ϲ\xdcd>_\xc7\x0e\xba\xb6\xb4~>\xbf\x9e\xff\xc0\xe1\x1d{\x1e\xf0\xb4\x8c\xf7ѷ\x9c{\xceA\xd8\xe6\xefћW\xb7\xe1{\x81\xf3\x0e\xdc\x04\xbdԾlC\x02\xccϔ\xa8\x92\xd3ΞL9#\t\x9d\xc7v\xa5\x9bթc\xd1`\xb7\xa4\x9a\xd5ic\xf1\x13ݖf\x96\x942\xf6\xd1=\x9ckib\xe9\xe6\xe7\x96\x141\xaf\x9e%*\xf1\xc9\xe9a\x83\x1d\x169v\xa4\x81\rv\xd8'd\x87}\x1e\x16F\xa3\xd6\xc97\x8afps053\xb0+\x92\x97\x8az\x91\x11\x14\xbc${\xc32\x19\x01\x90;NU\x15\xae\xc1\x8a+Ӓ'\x14\xaf*\v)\xda՟\\NE\xb3\x88K4P\x9f\xedұj\xaf(\xa5\x9c\xd0BI\xa7\xf6\x11U\na\xa5\xae?K\x16)\xd6V\xd2i\x12\xb2Y\xb3G\xb3\x99\xdd.\xabba\x15\x1c\x96 _\x1e\xe6 \x82\x96\xe9'lg7\x95*c\x13\xbe\"s\xcaS\xc2/\x0f\xcc\xcc\t%\xf7\x8cs?\xcd1\xb9\x05C̜\xe9Dg*\x97b\x86\x9bA݄᱀̪\x1d\x19\a*\xca\"m\xfdVY]\xc9R\x85\xf5\xfb\xb6qa\x96)I\x1b\x82\xf1\xb3\xb0\xd5\xc7z\xf7\x81M@\xacKP,5\x84:M\x0fL\xc3Y\x1f̆6\xa3\xee\x1c\xb8u\x17J.Y\x0e9\x99\xac\xd2\xe8_樵\x8e\xc9{\x84\x17\xf8\xbe\x90b$`F\xadm\x14\u007fR\x9d\x10wg\xde\xcd\xd3գ\x109˨I\xb0\xb14\x16֫\xcb\xe9\x91%\xa3\x88\x85\x06\xe5F\x03=\x11\x92HT\x8aK\xc1\xcc\nc\xa3\xf3Ґ\\>\x88\xd31\xb6\x9eMaR\x94L\xc0P\u007f\xafյ\x12D\x81\xa5\t\b:\xe1)\xca\tf\xe2\xdeu\x12(\x99\x025eBw\xbf\x195\xd0\xe9\x0fp\xf4p\xd8\xe3\xc0\xb4\x8f\x80NI)4Dߟi؇\u007f\xfc\xd7\x0fg\x1f\xb2\x05\xc8\xd2|R\x0e\u00879\xcb\xe6M\u007f\x03[\x80&\xb2\xecsm\xcdH\xf2\xc2O\xab\x9b\"\x9e\xb9}\xe4/Ϋ\x98\xa45Ɔ\xd8;\xe2F\xeb\xd5\xfc\xaa\xc4\xe9\xa8uS\xcb\xc3^_\xdf\xfe\xf4\xdd\xc5_.\xbf\x1b\x93K\x9a͛eH\x05\xa1VnD\xc1D\xb92\xa7K \x94\x94\x82\xfd\xb3t\x9d\xc7\xc9I\xf5\x9dӐ\x83\x1f\x057-_?\xc9R\xb4\x82\"\x8a\t\xb46\xe8;\xa6\xb1\xd1+B\xf1\xe9\xacR\x03\x99*\xb9\x88cJ-\xeb\x91\\Z0\xce[\x84\x96\xe6\x1c\x14\x90\x19[F\nY\v\xd57G\xa6yH*\xc6#lO\x8f\xd5b\xe9D\x96\x91&\xd0\x1c\x88\x00cOw\x15\xe1\x92B\xb7jږ\x1at\\~\xf9\xa4\xc4T\xeaB\xb1\x05U\x8c\xaf\x9a\x93\xb4\xea\xeb\xb5\f~\xb8U\xac\xa8m\xa2\xf0\xf5\xdb\xcb[r\xfd\xf6\x8e\x14\n\xcbz\xba\x9c\xe1h\v\xd2n/\x99\x80\xdd \xb7\xe1\xf9\x98\\\x88\x95\xfb\x90\xe3\xe5\x91Z\x06g\xda\x00Z*ޕ\x10\x9a\xd6\x1f}5\xc6\xff;\xb2;\xa8bCDUzy\xb6q\xc9\xc6y.\xd8$\xf2\x1e).\xbdA\x03=\xef\xd8$\xa4z\xad]\x9a\xf0뺱\xa8WP\xb8\xbe\xec\xb1ҒV$\x8d[\x88\xccО?\x9e\xec\xd3Iw\x80f\xcd%\xc5{\xdd:\x1d^\xd3\xcaa\xe5\xe85\xc1\xdf#Eì\xba\xba\t\xe4\xe84j\x94\x04\t@-\x1dZ\x9d\x84\xe5n\x82.A\xe2\x8c|E\xfeD\x1eɟ\x12 \xfe\xf1\x0f\u007f\xf8\xfd\x1f\xe3\xfdY}\xf4\x89>ʨ\xf3v_\xdd\xf4\xdc\xe7\xef-\x1b\xb3\x90\xec\xce\x18I&,鎋\xb3\xec\r(+&<\xc5\xc4㲇\xc7\xd6.\xe1\x93${\x97\x85q5\xad\x95/g\xf4'@\xac\x9c\xb0[\b?\xc5\x17K\xfe\xe4\t\xdfN\xf1\xafR\x9bk\xcfΘn\xcc8\x89\"\xfc\xe1&\vj\xb2y\x9b\xdfZ\x13\"\xe9\xd8\xd7\xe5\x97I.1\x96\xe5\xae\x03\xcdYB\xbe\xf0\xc7;\xbai\xe9\xb3-Jݤ\xa8>\xactͭ\x8f~\n\xaf\x97\xbb\x82\xe5\x89<\xa1\x90\xb97\x18\xec\x92\U000c640c\xb5\x18\xdc\xd8b7\xf8(EZ\xf1\x97\xfab\xbe\xe5\x85\x19\x15\xee&\xf1\x14\x94\u009bf)(]a\xc6$\xcb \x81,{p\xc1BI#3\xc9Sh\v\xb5Ɨ\xe4\xeeU|\x19\xc5v機\x03\xfah]\xb4\xfaM2a\xfe\xed\xf5͙\x9d\xd2\x19\x91\x8aܾ\xba\xbb\xe9w\x95\x89\x90\xa3\xbbW7G\x1fpOҢS\xa3\xb6.\x17\xf9n\xa0\x828\xeb\xacOE\x81\xd8D\xe7V\b\xd0Z0\xa3\x05-F\xf7\xb0\x8a\xd2yӱ\x94\x84\xa3\xcdI\xbb\xc5/\xe8\xfe7\xc1\x14М}B\xc5\x14<\x97\xaa\xe7\xd5]Ua!\x97\x91N#\xb4\xf6\x02t\x10y!\x990\xba\xab\xd4B\x14\xd8M\x93\xf1\x93IY\x1cJ-t\x8c\xa1\xd4\xc2\xd61\x94Z\x18J-\f\xa5\x16\x86R\v\xddc(\xb50\x94Z\xf8\xac\x92\xa7\x87R\v\x8d1\x94ZH\x18C\xa9\x85mc(\xb5\xb0\xd7\x18J-l\x8e\xa1\xd4B\xe7\x18J-t\x8c\xa1\xd4¾c(\xb5P\x8d_\xce\x15\x9f\xa1\xd4§z\xc5g(\xb5\xb0\xcf\xf8<.B\r\xa5\x16\x86R\v\x01/C\xa9\x85\xa81\x94ZX\x1bC\xa9\x85ϕ\xa8\x86R\vC\xa9\x85\xa1\xd4B\xf7w\u007f\xedv\xd8Pj\xe1S\xb5\xc3>\x0f\vc(\xb50\x94Z\x18J-\f\xa5\x16\x86R\vC\xa9\x85\xa1\xd4\xc2Pja(\xb5\xf0+\xf2*&i\x8d\n\xb4,U\x16g\a\xb7\x89\xec\x95\\\x14\xa5\x01\xf2.\x80\xaa\x94娅\xa3,a\xbay\xa3\xff\xc3v\"̤\x98\xb2\x99W\xf4\xce\x17T\xd0\x19\x8c*\xfc\x8c\xea\xfbw\xe7\x1f\"7\x9e\xb3\x05\x8b+\xb2`G]\xb1ই\x87#Ѡ\xeekN\xf74\xa6\vj\f(\xf1\x92\xfc\xc7\xc9?~\xfb\xf3\xe8\xf4\xcf''?|5\xfa\xf7\x1f\u007f{\xf2\x8f1\xfeǿ\x9c\xfe\xf9\xf4\xe7\xf0\x8fߞ\x9e\x9e\x9c\xfc\xf0\xed\x9bo\xeen.\u007fd\xa7?\xff \xcaŽ\xfb\xd7\xcf'?\xc0\xe5\x8f{\x029=\xfd\xf3\x97\xd1S=\xb0q\xda>\x8f\xdf!\xe5\xd4)Eȷ\x17\xf4\xd12\xd8xRX\xc8R\x18w\xcb\xc6\x1d\xf3\xeaD\xb84\xac\xd8CI>\x95\x83I\xfa\x18\xda>\x1fm8\x9f\x11c8\x9f\xee|\xbe\xf3\xb4\xd3>\xa1\xd1s\\x\x95i\xc7\t\x8d\x86\x19\x047\x1a\xba\xd5<\x99&r\xc1\x8c5\xa7S\xae\x197\n\xa9\xe0\x95\x94\xa6\x8b\xda\xf1\xaax-o\xeanS0ݼ\xa0Ѹ\x14.\x83훢\x96RQ\xc7)\x90\xe7\x8cr\x982\x01\xb9SO\u007f}\xfc.\xe95\rY\xa9\x98Y\xbd\x92\xc2\xc0c\x94c\xbf}^nۀ\x88ی\xf8C\x13&Dd\xe1\xae\x1d\xadU\bÛ\u007fq*+\x10U\n\xf4g\xb9:\x17`\x9cs\a\xcdp\xbcٳ6\xf9(\xf0\xc1\xf5\xe2\xa8)\xb6\xe4\xaeO)\xd7ь<]\x1a[E\xe6\x8d5\xdf{\xedb\x05\x85\xe4 \xa4\xf1\x1e\xbf\xa4\xd3 \xa7\b\x8d8\x9fB\xe3\xb2@K\xe2%)\x99\xb50f:\xe0\xfc\xa6\x9a9F\x98\xe2S>4\xac\x9bq^\x18W^\x86\xa4\xa0\xbf\x02\x9acM\x99\x82\x9a\xb9\xcbS]P}\x0f\xb9\xfb!QǮB\xb2v\xc6\xd5\xd2\xefV\x05$\xc7SQ\xb7vٿ\x18\xe7\x8d\xf7\xc6\xf6(\xefE\U000f70af\xdeIi\xbe\xaeʘ\xf4\"\xe4オԎ\x03E#e\x8ee\xbb\xed\xfcF\xb8\x89X\xb6\xa5Yi\xc5S_\x8a\x95\xf0\x81\x19\x84*Ņ\xfeF\xc92Z\x15\xd8Pֿ\xb9z\x8d\xfc\xb2\xf4\x192¨\x15\x96\xa6Ja\x12\xed3W\xd9c\u007f\xf39MI\xd96\x15{\b\xe1z\xf2\x86\xae\b\xe5Zz\xc31!\x18\xdc\xe5!!\xdeU\x93r3z\"\xcd|ݧ\x83\xeca\xf3;\xf1\x05\x8c\xea\x04\x9bʓi\x97\xd0Dž\x84`\xe9=hR(\xc8 \a\x91ES\xef\xc7I\x83@ʿ\x96²\x97^\xb4\u007f\x15\xf2\u007f\x9c˸\x9fU\x8f\x99Jަ\xa7\x98\xaf\x84̥Ԡ\\r\x98*!m\xe3\xbf-'\xc0\xc18G\t\x16\xb9\xa5\xc6y\xfe\u0602\xce\xe2O\x135\x95(4\x92\x80Х\x02\xef47$\x97\tf\x80\xaf#e\x97\xfe\xb7\xab\xd7\xe4+rb\xd7~\x8a\xe4?\xa5\x8c\xa7T}\xc1\xdb\x1fk܄M\xc3\x14-J\xe3u\x02\x81ƾr\xac\xfa\x8c\bIt\x99\xcd\x03NS\xbcC\xc1y\xe5oH\xe1\x15\xb6\x815}\x02\xac\xa9\xa7`\xfd\x9b\x06\xd5[\xae\xfe\xed\x03\xc8\xd5>n0˛ڻ\x86\f\x85,\xc0М\x1a\x9a\x12|+E\xa3:\xe2\xdaQH\xa1\xdd\xddG\x01I;\x1a\xe6\xaf\xec(|\x1c)\xad\xe1;&\xcaGw;\xa0\xbfC\xf9\xf6\x12\xc1\x11\x1fJJ\x91(\x13 \xb4(8s\xe5\xfb\xd6Z\xc4\\\xb5H7m\xef7MM\x14\x0f\x94siՌ\x84\xf0\xb8\xa2\"\x97\x8b\x8d\xc5[C\x14h\x82U\xdcXp\xc7\xe1\xdcv\xd8\xe2ew}8\u007fm\x87\xad\x8f\xeb\x9e\xc3\x12\x12\xaa\x94\xaf7Q\xb2P\xacA\x1a\xa8\x06\xc1&y?9\x9d\x00w\xaa\xa1;9z\xf3\xe4${E\x13\x9d\xaaJ\xf2\xfe%/\xdeI\x0e.7> ɂ\xfd\xc5\xe0\b_\xee\x8b#\xf4>\xb5p\x94\xecE\xff\x14qT&hxd\x1dGVMl\xe3Ȃ\xfd\x85\xe0(9\x04\xa1!\xcb䢸Qr\xca\xe2\x0f\xeb\x86\xe8\xf7\xe0\xea\xe4\x9cx\xd1_j\xe8\xca\"G=\x12\x81\xc7k\xe4~2T5.=Q\xe3d\x9e\xbf\xc5\x15\r\xf4\xffk\xa8\x10ȵ\xcf\xd6\xf4\n\xff\xd5\xf8\xd96\xf3\x85\n\x99\a@\x1fT\xbaɌr\xecH\x94F\x17d\x9d6\xd6\x01\xf6\xb8\xcfE\\c;\x0f'\xe4\xf4aK\x16\xfc%\xc13@Bs?\x99C\xa3v\xbc\xbb\x80w\xe7\xee\xcbX\xd8I\x80õ8\xab\xa7\x84\xe4\xab<Į\xec\x17Ӧ+}\xa9\xec7UO%\x8bp\x10yj%\xa8\x82\x9a\xf9\x19Q\xc0\xf1\xe2^`h\xf7Ρu\x9c\xb6O\x8d\x05\a\xce\x106\x0e\xf5l&E\xda%v\\5\x86\x05\x82F\x947\xe5{\a.\x98Ιew\x86\x89YB\nF\xedQ\xa1\x9c\xb72\xf4\x0e\xe1R\t\x9c\xa0ꓺ\xe9:H\xf6\xd9;bn\xfb\x12{\xfb\x0f\xb6\xb87jwE\xbc3e\x87{ù+\xa2A~\x1c\xf7\xc6l\xa1\xe9+e\xbfk\x18\xe5\xb7E|\x87\x1f\xb2N\xcb\u07fc\xb9\xbdh\x83L\xe3\xec\x98\u05eb\x9czla\x12\x9a/\x98\xd6L\n\xf2\x00\x93\xb9\x94\xf7IpOB\xea\xfc\x8c\x99y9\x19gr\xd1Ȣ\x1fi6\xd3\xe7\xfed\x8f,vҚ\x9c0\xc1í\a\xe7!\x14F\x87\x88\x81]L\x9a\x96Ua\x15\t\xd0w*\xf4\t\xae\x9bh\xbfN-R\x857\x16>\xb8J\xb5I\x8a\u05c9\x05ş \xc7d\xbc\xf8\xea2\x8djO\x8e0\xeb}I\x13\xb7v/]\xe8\xe7÷\x11p\xa6Z\x06\xba\u007f\x1b\x81\xbfְH\x0e\xae8D\xa2\xddǦ\xad\x86\u07b5B\xe2\"ډ\xb6\xe41\xd6n\xf3S\xe5\xa2\x1f\x91\x1a\xb0o?\x8f%ی\f\xf16\x92\xb3\xe9\x14\xc2\r\xe7H\xb1WPE\x17\xd6p\xd0ħ\xfeN`\xc6\xdc5\xd3J\xb5\x8a\x8cPTE\xc2Μ\xba\xc7\fY\xb0\xd9\xdcyi\b\xc5R\x94\xf1\xe5&\x8d$\\Ҝ \x17\x97\x8a=4\x9f\xde{\fͧ\x87\xe6\xd3C\xf3\xe9\xd814\x9f\x1e\x9aO\xef=\x86\xe6\xd3C\xf3\xe9\xa1\xf9\xb4\x1bC\xf3\xe9\x8414\x9f\xde6\x86\xe6\xd3{\x8d\xa1\xf9\xf4\xe6\x18\x9aOw\x8e\xa1\xf9t\xc7\x18\x9aO\xef;\x86\xe6\xd3\xd5\xf8\xe54=\x1b\x9aO\u007f\xaaMφ\xe6\xd3\xfb\x8cϣ5\xdc\xd0|zh>\x1d\xf024\x9f\x8e\x1aC\xf3\xe9\xb514\x9f\xfe\\\x89jh>=4\x9f\x1e\x9aOw\u007f\xf7\xd7n\x87\rͧ?U;\xec\xf3\xb00\x86\xe6\xd3C\xf3\xe9\xa1\xf9\xf4\xd0|zh>=4\x9f\x1e\x9aO\x0fͧ\x87\xe6ӿ\"\xafb\xe2M\x91\x9cE\xb5lۣ[@J\xed\x93P\xbb\xd32\xb2r:\x05\x85\xc2\x17g\x17\x94\xa3\xb4K`\xa13T%\xba}F,6\nT@sW\xf3\"\xce/\xd89\xadP\x84\x14ۗ\xb9{\xa9\x91\xe1\x01r\xf9\xf6\xeb\xda\xe9\x9a\xd2\xea \xedv \xae\xe7\xad\xc8\xd2\xef\nՄ\xd0Q\x9d5\x0e\xb7.\x01?\xe3R\xfb{\xb2\x88\xeclN\x85\x00\xee\x95n\x16\x87\xd99\xd5d\x02 \x88,@8\xb5\x85\x12\xcdČ\x03\xa1\xc6\xd0l>\xb6+\x88\xf3\x9ey\"\xf0]\xeb\xea\x99j\xa3\x80.\x1c1(X\xc4\xf6\x19\xb4S$4SRk\xb2(\xb9aE5I\xa2\x01KeD&-]M\xeb\r\xc6$\xf1\xfa\x02\xeaY\xb5\x8a\xe89\xba2h\x8d3o\xa82g\xd8\x0evQ\x98\x95\xbbK\x15'\xf8\xb0k\xa7҆d\x9c\x810~ծ>#\xce\xf3\x8c\xc4\xe6\xc6\xe3\xf5]\xb7\vڣV\xe4\xe8\x15)\x8cv7}\xd2&꧘3\xed\xbdo\xfa\x8cP\x13\x04e4\xd1\aZB\xb2\x0f\n\x9c\x9b\xb5\xff)q\x9auI\u007f]_5\xab\x99\xe1\x94\xd38\xc500\xa5\xb3V-\x87\xda>\xc4$wd\xabQ`\xb1\xec\x90\xc3\x02\x1e\x1c\x01K\xcb? \x03\xb6D\u007f\x90\xe5\x8cQ\x10\u05f9\xe8\xb33ц\xee\xfa\x06\xb4\xa63\xb8\x89L\xb1\xd9\xe6 \xc6,\x9b\x9a\xb8\"\r.\xacFfdC\x87\xab/\xa0\xb4-\xd0(\xb0\v\xb7\xc6\xca\xe6|P\xcc\x18@\"\xc6\xceU\x98y\x18\x99\a\xbe1\xb9\xe6\xf5\x987\xe1\x83\xeeC\xb1Tk\xf5)\x91\xbbK\x1d\x13 \x13\xc5`J\xa6LP\xee\xefa\xc4]8\xc2~\x16T[ҤZ\x83B\x9f\x8bw;\x05\xdc\xc4\x11\xec\xf7\x1e\x91F\x95\"\xa3\x8d.\x97X\xfd\x8eM\xc9\f\xefzD\x1a\x13s*ȿ~\xf5\xef\u007f$\x93\x95Ղ\xd186\xd2P^m \a1\x8b\xac\xed\xef\xc5S\xbb\x0eYE\t\x9c-X\xac[\xc8\x1a\x03\xbf\xbb\x9f\xb4\x03\x8d\xe79,\xcf\x1b\xf49\xe2r\x16\x87\xd3W\xe1~eug2F\x91Or\xedw\xb0\x01\xc9Y\xb6Jf\x04\xa1y\x0e\x99\xcb\a\xe7\xca\xebyb\xeb+\x8e\x85,J\xeeR2\xbe\x0e\x95%\xa3@\x96\x1a6\xabau\xf2\xc1Xj\bS[\xef\x10\xee\xaeL\xf9\xa5\xc4)-\xbe\xf0\x9c\x0f\x8dW=s\xd0O\xfc5\xe5|B\xb3\xfb;\xf9\x9d\x9c\xe9\xb7\xe2R\xa9\xc86\xfbH\xfd\x01\x1f\x9cZ-f^\x8a{ly[\xd7\x1a\x96q\xd2V\x96\xa6(M\xb8\xe4\xddt\xef\x86͌\xae\aY)h\xc13\\\xcf\x0e\x1e\xed\xb9E\xf7l\x1c;\xf0\xc5w\x1cw\xe1rV\xcd[\af\x10{#\xe8w_\xfd\xeb\xbf9\x96E\xa4\"\xff\xf6\x15^\x19\xd5gN\x88\xa1n`\x15\xd9\x05\xe5<6\x98\xd5d0\x96\xe8\xc7\x1dL\xe2\xd9y\x84Ig\a\xcfbr\xdf\xdd\xfd\x1d\xedmf4\xf0陫=\x12<\x88Q@\x8fQ\x89;\xf6R\x16\x8b\xdc|\x04\x83v)y\xb9\x80װdY\\\x84\xbf\x85\xea\x16\x94\x10\t\xe2L\x1b\"\xe3\xaa@L\xb8\xcc\xeeI\xee\x015\xeef\xac\xf7\xb1\x8e\xc1L\xc2-\x94\xad\xab\xab\uf7d0\xd8fD\vZ\x14U-\aE\x1fZ\x8bE^\x12}\x01\x85\xa6\x06\xaaӳ:\xdctc\x15\xf6\xf0n\x03\xab5\xa0@0E\xac\xf4s\xc3\u07fc\xdehH\x15:\xe8%\xe5\x1a\xf8=qz\x9a\xdd9\xe4\xcc\xf1\xe1\xf5\x1eI\x0fiwzZ8\x16U\xae\xc0\x82\x1ao\xd3$\xe6\xcf \xd5\x16\xa04\xd3V\x81y\x8fg\xe2\x15\xa7l\x91~\xc3?\xa5!A\x8f\x16\xb0)y\t\xa3\x06\x9dF\xbe\x18\x8d\xe8^u\x8f\xe2\xee\xb68\x96\x86-}ӹ\xfe\x8d\xcc= dծ\r\xb35e\xa3\xc9a[\xa1\x87^\nG_\xb6\xff\xbe\xc6Q\x93\xeb\xbbu\xc6\x1fg<@\x0e\xa6g\xf6\x1f\x83}\xe3\xe4\x0f\xc0\xbd\x91o\xfbe\xf4\xad;\xd7t\xd8x\x82j\x98^\xdeG2v\xb9\xb1\t\xe0-\x05\xf9\xe9\x91\xe3\x97\xc7\x1f\x94\x87;t+Y\xd0\x19Z#=\xb1\xbe\x0e\xae_\xa1Yk&#Īg\f\u0085\xbc\xaam\x9e\x04\xd4]\xa8\xaf\xe5p0\x9f\xb0\xf2X\x02\xc4\a\xba\"T\xc9R\xe4.\xf6P\a\xa5ެ\xa1\xe3Z\x8a\x94)\xfb路4Uմ\xc54\x01&ȋ\xf1\x8b\xaf>7\xc1\x8f+Y\x13\xfc\x89\x85\x9f\x1b|\xeb\x83b!\xb4l\uf2497\xde\xc5ZwXO*;\xe9b@\b\xe4A1\xe3\xa9\xf9\x81i '\xb1^\xf30\xa4jֲ\x0e\xfc{\xd8\xe9\xfbj\xa1\xe3\x1eVU\xd8\x1d\xf1b\u007f\b\x01\xd0\x1a\x15\xbe\x8d\xfbnٿ3ʹ\x97\xbe\x11\xb0\xb6\xf7\xf4+4+\xb0\xc4\xe7HŮ\xe1X\xfbV\xcdR\xe89+\x9eJ\x8e\xa1\x98\xb2-\xa7\x01\xfbU\xf3^\a\xde\xd1ߕ8#\xd7\xd2\xd8\xff\xb9|d\xfa\x89\v9v/_K\xd0\xd7\xd2\xe0ӽ\x91㦶7j\xdc\xe3H\xd2\xc2\xf1H\xbc\xa4\x84ߨ\x96y\xf5\xf4\xfd\xf7\n\xc5L\x93+a\x19\x95\xc7AuYQ{\xf0\xcd;\x86\xc8\xd5vk\xa2\xee\xdb-\xf8\x0e\xad\xf6\x1bM\xcc5?\xb5\x1b\xe5\xadi\xb8)8\x8f\xb6\xfb\v&h\x17\x9cf\x90\xfb>\x13v㍢\x06flw\xfb\x81\x05\xa8\x19&\x1ad\xf3]\xab\xda#t\xb8\xa7\xe2}\b\x15y;\xab\x19Uh\u007f\x0e\x15\xda\xcb\x10\x14\x9f[\xb0\x11:\x89Q~\xf3$G{\x12c\x9b\xb2\xc8}\xda\vsZX\xca\xff\x1f˞\x91\x88\xfe\x97\x14\x94)=&\x17\xfe\x86ʖ\xef6\xdf\xf0\xbaN\x13\xb8\x85\xcb4\xb1\xbb\xb0\xa4\x1c\\\xa1b*\b\xec,\xbf\"\xa7\x1b\xd2\xf2\x8c<̥F\xc9P\a\x91\x8e\xeeaut\xd6:![ ڇ\xaf\xc4\xd1Y\x15/k\x1d\xcaJNa\b\xe3\b\xffv4\xde\x10\xb0[`?!vwRɎ?VZ\xf7\x1b\x97ڴ\xb9\xf3\xfb\xd2\xc7N\xdaب\xc0\xd8\xfcf\x8b8\x9a\xcaqˬ\xe8\xfa$U30]&\x88ט1\x95aL.\xc4j\x03.^\x8c\xebT\xb9\xbd\x11W\xd1Y\xd1j_\x84--1C\xa2\x01\xca'.\xe9nC\xd8>\xb8\xb9k;6\x05\x05\xa8Zµ\xcc\xe1F\xaa\xae\xfc\x8ev\xbcf\xfd\xf9\x0e\x8b\xb6\x81\x14\xc9s̳\xc7G;拺\xb1\u05cb\x0fi|\xfa\xef\u07fc\u007fj=\xef\xaa\aw/\x84bo\r\xb7_\x1d\xeb\xb0ﻻ6\x82\x16z.\r9\t\x97\xda3.\xcb\xdc\xdf\xecW\x1d\xf1\x9e\x1e\xab\xd4\xd9\x1c\xf2\x92Cw\xd3\xc1\x8d2\x95\xe1Ѡ\xfb\x95\x82\xfd\xb3l\xb7\xe8\r\x1e*\xfft\xd7A\xa8qR\x99\xd6\r\x8f\xaaeG\u007f\xc1\xfd\f_\xf2V\xa4\x87\xbc%\x15\xbe\tҝ\x05\xa9\r\xdeS\x12\xa6Qt-\x98\x9d\x99o\xcf\xe1\x1f\xef\xbcf\x17ְ\xed8t\xb0\x8fn\xe1:\xf2_݈\x88o9V.\x97\xbe\r\xa3\x8b\xe6n]\xce}F\vS\xaa\xd0\xfe\xbaT\xd8\x0f\xacnaB\x03\xe6<\x8aZ`\xb7\x1b\x06\xde/Ȥ\xb8c\vІ.\x8a'(\xe4\xd5\xe6\x1bv\x03\xa4\xcauU\xe9\xa4\xe9\"\xa8\x9bnuYŴn\xf5\x96\x8f\x1b\xb0\x1d\x18\xd4\xc9,h\xc8\t,A\x10\u007f\xc9\a#\xef\xce\x01\xd1\x01\xf4\x0e\x8d\x13\xb5\xc4X@\x80\x83\xf9\xbeS\xa9\bvի\xa6\xbeI\x11\xe1\xeaxN\r\x8c:o\x12\xeeu\x12;\xa5\x8e\xeb\x91\xfb\x04\x82/]#]\x94@\x19\xe6\x89\xd9\xed\xe5ܽ\x1dn\x1e\xf8\xab~\x0f\xa0\x80\xcc@X\x14wr\x1c\xafʺVO\x16\xb1\xfe\x04W\x0e\x9c;\xd7\x1d\xab\xa4<\xb4\xf0\xc5\n8A\xaalu\x99\xe1#\x9d\xb7\xacv]\xa0\xf77>\xde\x01\xd5]yK-D|\xdd|\xd6\xdb*\x0e\a\xb8\xf4\x8c\xba>y\xaec)S\xd0I\xfa~J\x12\xbf\x1cq\xc6\t)\xe6T?\xc5.o\xec3UK\xaeơ\xac8\xe5\xbb-s\x02Q.6\x81\x8f\xc85\xb3%&4ۣ\xd1Uy\x05\xed\v?\xa8\xc6\xc4SqW\x8f\xe7G\xb9\xb4\xee\xe7\xde\xe3O\xd2:~U\xe6\x95\x11yg>~j\xa5z\xacra\xda\xe7g\x006\xd1%^\xc1g\x9a\xaa\x14\t\xa6g\x005a<\xf5\xaaF}\xf7\xde\xc3H2,\x84\xc7\t@\x97\xa8>|\xb9}\xf8\xfd]\xef1@\x8a61\xb2t̞\x80\x1eH\v\x02\x1e\x98@0\xb5(\xc0e\u0081\xc1ҠE\xe5\xa8Gip\x150L\x1b\x90\x00\xda@\x89F\xeaT&\xf0\xa3H\x9e\xaa\xd2\x0f\xb6\x99\xae\xf2\x146\b\xa6R\xebf@it\x89\xc6\xc9\xc0B\xdf:*\xd3y:\xc0\xf8\x1d\x11\xe5{AJ\xba\x82\x16\\\x86\x811\x98\xd6|\x00\xbd\x05\x97I\xdb\xe2\xcf\xe2\xef\x01\x06\xea$\x14\xe8\xcd\xdf1qk\xb8CC`\x02։V;4āD?*\xf9\xcf\x06\xb6\x05\xa7y\xd2\\8\xac\xe5\xda6\xa9\x1c\x1a%r؉\xbc\xc2\v\x10*\x85B\xec\xc1 \xcd\x02\x95\xea\xc0\xe3.v\r\u007f\xd6\x06A\xaa\xad\xbe\x82̹\xd2^]^>J\x17\x96J\xa2\x8b\xa2R\xd2\xed/Y\xeb\xe5\xa6r\xda\xd8\xcb\x14w\x98_Z\xf9\xb8\x12&ɤ\xc3\xc4U\x06/E)W\x8c\xba\xe2\xe5\xb2.\xd2\xff\v\x12\xb5\xefz\xb8\xba=\xe9\x97uF\xaa\xc7\xce\vV\xe8#\x12 \xcd\xf6\n\xe3\x87z*ZF\xd3#\xe2\xceכ\xbb\xfb\xae2I;\xe4>\xf3\xbd\xa3a\xad\b\x88aRm\xd1x!n\x8d.\x18&\xaa\xb4\xd4R9\xfe\x91\xe4\x12Ր\xfd\xb6\xda\x14ґ\xdc\xffQ\xa1u$\xab5\\\xb3\xfd =\xac\xcaT8L\xd7p\xab\xe0Z\x14\x98_\v\x8b\xdf]\x00\xc4i\xbb\"\xc6Ɖ\xa0k\xfa\x86\x9d=\xd7:/\x82\x99\x9a\x90WX\xe3w%&\xbd%C\xe3\xe4V&\xbc0`\xabMk\x02lך\x856\xbej\xa16=\xd4}\xf8\xfc\xa8\xb5\xb96Z\x01\xbe\x90\xec\xdb\xd5L\xba\U000dc862\x15f*Ex\x1e\xc0\x84\xdaĬ\x0f\xdeLp\x93_aQ\xd2r\x9dA\xf1\xbe\xeeF(\x12\x8f\xd2\xc6\x1dy\x83\x82\x8dyӵU\x83\x03\xa3\xc2\xd3eH\xfc\xdaɴ\xb6\x1a\a\xdc<\xceQ\x8f\xd8VT\xb9{\xd0yU\xa0\xbd\xd7_\xd1:\x99\x8c\xf5\x1c\x10\xf1qt`\x907Z\xe2\xb0\xcb\xd0\xd0\xe2\xe4\x17l\xefF\xe1\x02\xaf\x19\x8b)\x9b<\xf1\x84 `\xe39@\xb63ϡ\xd4)\xec\xfcL\xb0\xd9\a\xa4\x0fe\xd3\xcag\xa3u\x8eb\x8ck\xf8\x92\xe4U\x8ai\xe3\xf2F\xf92\xa0\xf6\xe6`\x10\a\aB*\xd22rń\xaaj\xdeN\xd0\xc9\xfeJ\x18\x042\x14Ry\x98 Y\x05k\x92lj\x92\x0e\x8b\t<\x8fj\xa4o\x14\x84\x88M\x8eW\xe0L5\xa6\xeb\x01\x860F\xec\x8f\xf0,\x04PKX\u058c\xa9\xcdy.\x13$f5F\x9b\xb9Ƭ\x99\xa0\xef\u007f\x90a\x99\xd6O1L\xfa\x13\xf5k\x9d\x13$\x1c\xa7\xc2\x063\xb1\x93\xda\xd8a\x84\x83/\x98T\x0e\xa7֑p\x90\xca\xed\x16\r\xc1*3a\xd1\x06\x93r\x8cY\xc7M\x045s\\\xf0\at\xb5B'\xe117\xa6HaS<\t\x15\x18q\xb2\xd8U\tR\xa5r'\xd3J\xe4 \x95uB%\x9e>\xd1\xe07N\x1f\xcc)\xc4\x01\xfe\xde\x00\a*HJ=Ϧ\x15R8Zh3\xae\x1c\xa1\x1d\x82\x99f\xc3F\x90\x05\xd4S\xee\xa8m\x86\"\xfa\x1a\x95\x94]jkw.ZI\xf9\xa00\x17\x1b\xcc\xc1b\x8e\x89\xd3f\x9a=1J\xe0[\xac\xfd\x9c\xe0\xec\x88%m}\x06)\xea\xac\x11m\x9b\xd3\xf0\x9c\xc9$\xf3\xf1\x1bi\x19ÂT\xa3e\x8b!\xca2\xdf\x1f#\x1ab4\xa3\x9el\xceh\xb4-\xc2|\f\xe1N\x19\x92\xb6E\xda\xe0\xb6\xcdX\xe3>\xd7\x1b\xb5ycz\x0fM\xf5M\xca~{0\xfc\xf5\x95\x9d\xd8-i\u007fw\xbb\x05,J\xb7\xbf\x00\xe9\xc2\xd3\x18\xa8\x14`\xb5x\xfc\xc6\x04w\xdaj\xb9\x1d\x8e~\xf5\xd5\xf2*Rk\xd0\xf8\x8d\b\x8d\x9d\xd5]\xed\xab\x16\t\xecSw\xe4\x05\xc8m#\xb0\xf4\x02\xb62wȱ\xd4\x1c\xa2\x9d@gVr\xafɠX\xdfK\xad\x10.\xc9n\x9a-mĈ\x01\xaf\x86\x00|\\\x1e\xf60,\x83\b\x90\xd0\x04\x15\x9c\x05\x91\x06\v\x9f]\xb9\xe7\xf5\xd1>\xe1\b\xf0\xc3珘α\f\xe25\xf5\x80\xa8\x0f\x83H\xa7\x8b\x02\x13\x18\x05\xb2C\x14\x87i\xcd\x1e\xcf\xe7\xd0.@\xc0\x13\xee}d5\xba\xb9\x1ck$Zр4\xc8\t=6#O\xb8gPu\x86.\n\xde\x12U\xf1\xed\t\xf7\xb1]\aL%\xfc\xea\x1c\x85\xe7.=`*b\x96R\xdb\x1a\xa6\xd6k\a\x9c\x8e#\x16\x96\x19\xa5\xd0\x02\xc7O$\xbb\x11X/-\xfd\x84\xfbw\u058b\x8fVM&\xcb\x05\x1c \x83\r\x16y\x85\x85|\xec\x83\xc8e\xdaL\xc6\xebd\x01\xc4[u\x01\x9f\xb5\xa3?7/\xd2\x12\x8a*\x85\x8f\x1a\xedg\xed\xf8\xc9we\xb1'\xe2D\x06\xfb\xc1\xbc,\x95w\vėE\xf3\xb78\xb0\v%\x15m\xc4&-\xdc*ڟy\xfe,\x11S\x86\x019\x8fVQY\xce\xe8*\xadV\xec\xa6\xc3l\v\x80v\xf1\xaaE\xa5MOR\x17\v!\x8e\xa2X\xa3wO\xdeʿ9ȅ\x1fk\x06\xcb\\$\x98BZq\xbe\x9d\x13\xef\xc2\xe1\xa3L\xa0@\xf3\x88P\x92߈W\xaa\x05\x96ܷ\x13\xb40>\xb4\b\xadv\vi\x1cb+Z\xf5\x91=\x83\x98\xa3\xbaOdُw\x8f\xa3\x92\xdd;\xc7CQ\xdc\x17iʩg\x91\u007fY\xe8Y\x16\xca\xeb0\x06\xf1H\xfa\xf0\xa3\x10\x9c\xec\xfd\x17\xb9WV\xef\u007f\xc7yC!\x8d]\xc3\a>\xdc̱;>d\t;SE\x81$L\xa4\x05ғ\x9d\xc8)| \xe3\xad\x00s\x1fL\xe8\xedA\x04\x15gb\x9e3m\xbd\xcf\xdfJ\xcc\xf9t\xeb\xfc\t\xf7\xe7\x17\a\xd6\xeb\xfcV\x9d\xc7\xc1$\x9b\u007f`\xb4\x9a\xa8E\xab|\x0f\xe7\xfc\xee\x9c\x03\xb3%K\xe4\x84\xe0m\x81VGw\xe5\xe3\xe7%[\x01\xdak\x87\xa8\x85\x067\x87\xb4\x14\xc2\xcfQ\x11\xadӥ\xb6n\x11Z_\xb4u>\x01\xd8\v\xb7G2\x841\xbb\xbf:k\bb\xebЀuڄ\x03Q2\xbb\x83\x049I\xde\xce˞D\xddd#=`\xdad\x9e\xb7\x16\xc2\xdb\xf4s\u007fRJ\xff\xcf\xc3L8Xbإ\xd1\tZ;\xafJ\x91\x9ec&a\xdb$k\x85\u07fcm\xa3LsL*9\xb4e\xa18\xb1\xf6\x84\x8d\xcd\xcdK'\xefLf\x88~Ǩ\xf2)8\x02\x17\xbd\x14\x85\x18\x1e\xceG\xa3{\xedG\x87\x05X\x03\xf3\x1b&\xf3X\xb1QY\x167\xd7*\xf9k\v<\n\xa9ny\"x\xff݂\x15\b\xa6\x1cO\xdd\xca\\\x87\xf1\xad@\x9a\a\xb1\xfbW\bG͚\xcfj\f\xf6${x\x92\x11/)\xa0`Zi\xd7M\xd6\xd43\xbd\xb3\xb0\x95ƺ\x16\xe1\x05P\xa5\xe5\xe3\xe4\xef\xbb\xc7T7Ɯ\xbc\xc5\xfcŏ\xee\xa4\x153\xfd\\\x17F,\xd9X\a\xe6gb\x87 \xb7 \x1d\xa0Jt\xa58\xe1E悦Y\x00\xd1\v\xd1;\x93H\x9f\xd9\x19\xac\xaa\"\x9e!+\xd6N\xa9f\xb3c\xdd!?\t\x19\x97\x9d\x82\xd3\xc4\xead\x81\xba\x9au\xedm\xebWv\xf8ѽ\n\x98B\xbcȢ*@\x14$\x96%\xfb\xc6-cӔ\xcbxY?\v\xe9\xf8Џ`\x93x\x96Y\xd3D\x17e\x8e\x0ea\x83[m\xd8\x1eX\x99b\x13>\xd4\xf2\x1f\xad7\x99j\x02\xb6B\xe6\x95Y`\xa3\x17Kf龭6O\xaf\xbf\x19\x8bGd\xc5̌L\xba/\b\x9a\xe7\xfdGi\x96\x85\xcc_\f\xbe~hZ\x1aIZ\xaa\xe7\xa2\xd3Y\x98\x1c\xbd\xf6\xa3\xd3Zy\x85\xdaO\x85\xa7\xb3P\x19\x93\xb7\xf0\xb4io\xe1\xe9[x\xfa\x16\x9e\x0e\xda[x\xfa\x16\x9e\xbe\x85\xa7\xe3\xed-<\xed\xb4\xb7\xf04\xda\u007f\xc4`\xe8\xbf::\xd2!\n\xab\xc8\x12\x8c9\xb4g\xe6\xaa+\x8d\xae\xf3\xca:4K*\xa4o\xc7G\x8e\xd4\xd0'\xbeˊ\xbf֚Қ\xb6t\xa5uzM\xc94-ɰ\x98\xfc\xb7\x18\x11Qxt\x19\xf4t\xb5}l\x01\xdd\\\xd9\\\xbfv\xbc)W\xf3\xffM0\xc4\xe90}-=\xff\x8dO\xb7\xe6\xaa_\xfb\xc6\xfb\x80\x80\U0006fcae<\xb2\xacm\xa6\x98\xedx!\xfe\x94\x87\x0f\xbc\x1c\x1c.\xf4\x99iz\x85߿j^FT\x9bMטէ\x96\xe8\xc4\xee\xfd\xba\xff\xc6\xe9\xba\xe2l\x82\xb2g\xe92\xff\xfd\x11m]\xd5c\xb7\xac=\xe8i\xfd\xedߐ\xc7\x13\x10\xb5\x01%s/\x80\x00\xa1\xc7~\xf8\xa5\xf4[\xe4\x93\xd7\xf9\xfcF-\xbe.mi5ZS?4\xefU\xbe\xa1\x06m\xd9\a\x02\xb3\xf5f1HCL\x95\xd9x\xfd\xd8\f\xd4%\xb5e\xb1{\xf0\x88:\xb2\xf8\xea\xb18\xf6\x00\u007f\xb1\x1b[3\x16\x1d\xb5\xc5և}\x9f\xaa\xb0\xc8Z\xb0N\x85\xd7,\xc8\x13+\xc0\xa2\x19\x16W\xed\x15]\xe3թܚ\xe7֑ʮ\xf1z\xadY\x90c\xf5\\1UZQ\xb8F\xd7f5\x15W\xf3\x99\xc4o\xaa\xc8z\xfd\xda\xef\u05cc\xf3\x8f\xd7WEUUE\xed\x05\xe6q\x8e\xaa\x9bZZ-\x15\xc5ե\x95QM\xd5ӑ\x89\xa3\xea\xa1\x0ek\x9d\x8e\x912[\x055]\xe1t\f\xecX\xedSD]\xd3\x11\x90݊\xa7\xc5a\xc0\xac6\xcdt\x18\xff\xaa>\xb4y_\x9b\xff74\xf0[\x89\xd6&E3\xbb+Y\x82\xfa,\xda\xfd|\xe5`\xfe\xc1\xe7:\xe1cr\xea\xd5\xdd\xf1LEQ\xba\xf9|$\x81\x9f\xa5J\xbd&\xd1b\xe9\xc44|C\x05\x17\x985a\xd6t\xc5m\x1b\xd1\x0ev[\x16KAF=\x85\xcd\xdeg\x85\xec\x1anD\x925\x1d' \xf2̙\xb0\xb4\xb3/\x84\x83\xf3f\x1b{\x19Fғ\xf35\xc0O\xba\xc9 t>\x0f\x9d\x80keQ\xe6{\xa8,\xc2y\x1fз\xed\xc2&u\xc7*Q\xdaL\x87\x9b\x04\"6bw\xfd\x11#\xf9\x92p\x8f@\x92\xeb*mf8\"n\xa1\xf6\xf0\xe5\x81#9\xfez:i\xbf2\xaf#\xb5\xb0\xaf\x1a|\x84>\x01r\xea\xf2\x88E,\x9bΪX\xa7\x8dx\xc4O\xda߫\x11ó\xfe\x88\xde\xd5*\xb5]\r9ֺhrR\x93=mC\x80\xed\xd1K\xbd\xda\xda$\x14a;ergֹsy\x04q\xf7\xf7\x9f\xb2\xb3Y\xee\b\xf1XNLo'a\tku\"\xd9\x16q\x8a\x82OX\xbe\xdf\x1d\v\xc7\"\xb2#&\xa3\xb2\xf8˳B\xf35,T{\xab\xbc\xa4fn]\xf9\xcb\xc1\xc0 \xe01\xf3A\xf6o\xd0}\xcc署A\xd6\xdf\xfd\xe5\xcd83.\xdcCsȺ\x99\xf5?\xbd\xf6\xc7#\xea\xd5\xf8\xd5/\xab\xe66\x9a\xb3\b\xceZ'\\ec.\xf8᎐\x88\xd2U\xa6v\xafIe\xf8\xc2\t\x02\x82\xfe>\x86Ӯ\xf8ɅuQ\xb2\xfc\xd4tl3\f\xd6\xf9\xf3\xa8`\xa0\xe0YX\xbe;ǟF\x8d\xba\xe6沠\xc9\xdbs\xbcw\xbd\x82T8\\\x11\xfc\xd3\xc49\xba\x0e\xf8\x82\x8e\x19J\xbfP\x9f\xe6t\xbcf4\x0f\f\x17{\xdcM\xa1>~ܹ\x82\xcf\xf8<\xf2\xf4F\x11\x11\x87\x9bQ\u007f\xa6\x89)g(Ʈ7;J\xe2\xae\x19\xc5\a\xca#֢o\xe6\x06\xdd\a\x99j\x91\xe7\x1d\x88\xfe\xf0xL\xac\xff/\xb7>m\x94\x10M\xbf;\xe81i\xb8\x8e\x1a\xad)\x835\xba\xa4\x0e\x1eZ4;L;JR\xfb\xf0\xfaI\xbb\x00E\x92`\xe9\xeaÏ\xee\xed\u007f\xe7\xe7\xfc#\\\xee\xc7?\x13\xad|Lm\xaf\xe0\xaf\u007f;\x83\xda\xd7>\x84\x1b\xfc\xe8\xe1\u007f\x02\x00\x00\xff\xff_q\xf0n+Q\x00\x00"), + []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4V͎\xe44\x10\xbe\xe7)J\xcba/$\xbd+\x0e\xa0\xdc\xd0\xc0a\x05\x8cFӫ\xb9 \x0en\xa7\xd2mƱCU\xb9\x87\x06\xf1\xee\xc8vҝN\xd2̀\x84o\xb1\xeb端~REY\x96\x85\xea\xcd\x13\x12\x1b\xefjP\xbd\xc1\xdf\x05]\xfc\xe2\xea\xf9\x1b\xae\x8c\xdf\x1c?\x16\xcf\xc655\xdc\x05\x16\xdf=\"\xfb@\x1a\xbf\xc3\xd68#ƻ\xa2CQ\x8d\x12U\x17\x00\xca9/*^s\xfc\x04\xd0\xde\tyk\x91\xca=\xba\xea9\xecp\x17\x8cm\x90\x92\xf1\xd1\xf5\xf1C\xf5u\xf5\xa1\x00ЄI\xfd\xb3\xe9\x90Eu}\r.X[\x008\xd5a\r\x8c\x14\x95DI`\xc2\xdf\x02\xb2puD\x8b\xe4+\xe3\v\xeeQG\xc7{\xf2\xa1\xaf\xe1\xf2\x90\xf5\aP9\xa0m2\xb5M\xa6\x1e\xb3\xa9\xf4j\r\xcb\x0f\xb7$~4\x83To\x03)\xbb\x0e(\t\xf0\xc1\x93\xdc_\x9c\x96\xc0L\xf9Ÿ}\xb0\x8aV\x95\v\x00־\xc7\x1a\x92n\xaf46\x05\xc0\xc0T\xb2U\x0e\\\x1c?fs\xfa\x80\x9d\xcaN\x00|\x8f\xeeۇOO_m\xaf\xae\x01\x1adM\xa6\x97\xc4\xf7Jd`\x18\x14\f(@<(\xad\x91\x19t B'\x90Q\x82q\xad\xa7.\xe5\xe8l\x1a@\xed|\x10\x90\x03\xc2S\xa2|\x88\xac:\x8b\xf4\xe4{$1#\x1b\x83ڥ\xfa&\xb73\xac\xefc8Y\n\x9aXv\xc8\xc9\xd3@\t6\x03\x03\xe0[\x90\x83a \xec\t\x19\x9d\xccQ&~ZP\x0e\xfc\xeeW\xd4R\r9\xb8S\x1d\xda;\xc5\xf8\xbf' 2\xcde$\xf6m)\x98Nѹpfm\xf20\x8e\xb9\x1b\xf9Z\xe9\xeem\x8f:f0\x92\x18\xb5Mktj\x0fh=\x81ZS\xa9ބ$i\xfcK,\xc3$\xc9hf\xf3%\xf6\xe7\xebh\xd6\xc7Iz9(\xc6\xf9\xe5\f\xd3C\x94\x99\xfb\xb7\xa6E}\xd2\x16\xb3\x89N\xd64ׯύڀ\xfc\xbf\xd9\x1b\xb7\bw\x1eY\x96J\xff\xb0騞\f\xe8\xc1\x10Pp.\xf6\xedbB& \xf3I\xbe\x901\x82\xdd\n\x9aU<\x9f\\\xeb\xd3&\xa0\xa2c%\xb9\x9fpH\xf6\xe0'\xe3Z1x;\xd7\xf9,\x87כ\b\xcd'\xfdI\xff\x9br\x1c7\x86p\xd5w\x99P\xad>D\x8fk\x8c\xaf\xf7׀2X\xabv\x16k\x10\nK\xed\xac\xab\x88\xd4i^5c\xa9]\xf6\xa9W\nh\xa1\x10\xfb\xe4\xe5\x80\xeeV7\xc0\x8b\x9aO\xf9+ϰ;\xddR\xbd;/\x87˖ʥ[C\x9cݥ\x98\x15\xce\xdeD\xcaj\xf6rI\xafn\x1e\vB\xb6S\xd9qf\\\xb5Ƹ\x88,c\xb8\ta5ً\xcbd\xbe\x99\x84\xc7\xe2I\xed\xa7\x01s\u061d\xff\xf4c \xc3H\x86?\xff*.\xd39.s\xbd`s?߂߽\xbbZgӧ\xf6\xae1y\x89\x87\x9f\u007f)\xb2cl\x9e\xc6\x1d4^\xfe\x1d\x00\x00\xff\xff;,8\xce>\f\x00\x00"), + []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4VM\x8f\xdb6\x10\xbd\xebW\f\xd2C.\x95\x9c\xa0\x87\x16\xba\x05n\x0fA\xd3`\x11\xa7\xbe\x14=\xd0\xe4Ȟ.E\xb2\x9c\xa1\xdb\xed\xaf/HQ돕\xb7Y\xa0э\xc3\xe1\x9b7o>\xec\xa6m\xdbF\x05\xdabd\xf2\xae\a\x15\b\xff\x16t\xf9\xc4\xdd\xfd\x0fܑ_\x1d\xdf6\xf7\xe4L\x0f\xeb\xc4\xe2\xc7O\xc8>E\x8d?\xe2@\x8e\x84\xbckF\x14e\x94\xa8\xbe\x01P\xceyQ\xd9\xcc\xf9\b\xa0\xbd\x93\xe8\xad\xc5\xd8\xee\xd1u\xf7i\x87\xbbD\xd6`,\xe0s\xe8\xe3\x9b\xee\xfb\xeeM\x03\xa0#\x96\xe7\x9fiD\x165\x86\x1e\\\xb2\xb6\x01pj\xc4\x1e\x8eަ\x11٩\xc0\a/\xd6\xeb)XwD\x8b\xd1w\xe4\x1b\x0e\xa8s\xec}\xf4)\xf4p\xba\x98 *\xaf)\xa7mA\xdbT\xb4\x0f\x15\xad8Xb\xf9\xf9\x19\xa7\x0f\xc4R\x1c\x83MQٛ̊\x0f\x93\xdb'\xab\xe2-\xaf\x06\x80\xb5\x0f\xd8\xc3\xc7L1(\x8d\xa6\x01\xa8\xf2\x14\xca\xed,\xc0\xdb\tQ\x1fpTS.\x00>\xa0{w\xf7~\xfb\xdd\xe6\xc2\f`\x90u\xa4 E\xe4\xe5D\x80\x18\x14\xccL\xe0\xaf\x03F\x84mQ\rX|D\xae\xa4\x1fA\x01f\xfe\xdc=\x1aC\xf4\x01\xa3\xd0,\xf0\xf4\x9d\xb5י\xf5\x8a\xd7\xebL}\xf2\x02\x93\xfb\n\x19\xe4\x80s\xfahj\xb6\xe0\a\x90\x031D\f\x11\x19\x9d\x9c\xcau\xfa\xfc\x00ʁ\xdf\xfd\x81Z:\xd8`\xcc0\xc0\a\x9f\xac\xc9\xedx\xc4(\x10Q\xfb\xbd\xa3\u007f\x1e\xb1\x19ė\xa0V\t\xd6ʞ>r\x82\xd1)\vGe\x13~\v\xca\x19\x18\xd5\x03D\xccQ \xb93\xbc\xe2\xc2\x1d\xfc\xe2#\x02\xb9\xc1\xf7p\x10\tܯV{\x92y\xac\xb4\x1f\xc7\xe4H\x1eVeBh\x97\xc4G^\x19<\xa2]1\xed[\x15\xf5\x81\x04\xb5\xa4\x88+\x15\xa8-\xd4\xdd\xd4\xed\xa3\xf9&\xd6A\xe4\xd7\x17\\\xe5!w\x11K$\xb7?\xbb(\xed\xfeL\x05r\xa7O\x8d0=\x9d\xb28\t\x9dMY\x9dO?m>\xc3\x1c\xba\x14\xe3Z\xfd\xa2\xfb\xe9!\x9fJ\x90\x05#7`\x9c\x8a8D?\x16Lt&xrR\x0e\xda\x12\xbak\xf99\xedF\x92\\\xf7?\x13\xb2\xe4Zu\xb0.\xbb\x06v\b)\x18%h:x\xef`\xadF\xb4k\xc5\xf8\xd5\v\x90\x95\xe66\v\xfbe%8_\x93\xd7Γj\xe7\x03V\x97؍z-O\xf2&\xa0\xbe\x18\xa0\x8cB\x03\xd5\xc9\x1e|\xbc\xd2U\xcds\xbe\x8c\xd7]\xb8/\x0f8L;~\xa0\xfd\xb5\x15@\x19S~!\x94\xbd\xbb\xf9\xf6\x19\xc1\x16\xf2^\x97H\xb9Q\a\x1f3\xa3#\x19\x8c\xed\x9cge\x92bM\x98\xd0\x1a\xee\x9e@\xdeм&Y \x9fҼ\xe0qW\xdd2\x93,\xf4\xfcl\xdaPX\x17fY\x9fj\x8f\xb7\x18,d\x9c;\x9c\"^\xcdj\xfb\x18\xe0\x8bzG\x94$~y\xf7\x94g\xd5sW;H\xa7\x18\xd1I\xc5\\ش\xffO\a\x85\x83b\xfc\x0f͗#\xdc\xe5\x97s\x19,\r\xa8\x1f\xb4\xc5\t\x10\xfc\xb0\xd0m/\xa2\x9c?ti|ʭ\x85wGEV\xed,.\xdc\xfd\xea\xd4\xcdۛ\xc5_\xac\xe7\x13#\xe7ujz\x90\x98&\xec\xdae\xd5r\xaa\xbe\xd2\x1a\x83\xa0\xf9x\xfd\xaf\xe7ի\x8b?.娽\x9b\x86\x95{\xf8\xed\xf7fBE\xb3\x9d\xff\x81d\xe3\xbf\x01\x00\x00\xff\xff\xbf\xca\xff\xa71\n\x00\x00"), } var CRDs = crds() diff --git a/config/crd/v1beta1/bases/velero.io_backups.yaml b/config/crd/v1beta1/bases/velero.io_backups.yaml deleted file mode 100644 index 860731487..000000000 --- a/config/crd/v1beta1/bases/velero.io_backups.yaml +++ /dev/null @@ -1,439 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - creationTimestamp: null - name: backups.velero.io -spec: - group: velero.io - names: - kind: Backup - listKind: BackupList - plural: backups - singular: backup - preserveUnknownFields: false - scope: Namespaced - validation: - openAPIV3Schema: - description: Backup is a Velero resource that represents the capture of Kubernetes - cluster state at a point in time (API objects and associated volume state). - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: BackupSpec defines the specification for a Velero backup. - properties: - defaultVolumesToRestic: - description: DefaultVolumesToRestic specifies whether restic should - be used to take a backup of all pod volumes by default. - type: boolean - excludedNamespaces: - description: ExcludedNamespaces contains a list of namespaces that are - not included in the backup. - items: - type: string - nullable: true - type: array - excludedResources: - description: ExcludedResources is a slice of resource names that are - not included in the backup. - items: - type: string - nullable: true - type: array - hooks: - description: Hooks represent custom behaviors that should be executed - at different phases of the backup. - properties: - resources: - description: Resources are hooks that should be executed when backing - up individual instances of a resource. - items: - description: BackupResourceHookSpec defines one or more BackupResourceHooks - that should be executed based on the rules defined for namespaces, - resources, and label selector. - properties: - excludedNamespaces: - description: ExcludedNamespaces specifies the namespaces to - which this hook spec does not apply. - items: - type: string - nullable: true - type: array - excludedResources: - description: ExcludedResources specifies the resources to - which this hook spec does not apply. - items: - type: string - nullable: true - type: array - includedNamespaces: - description: IncludedNamespaces specifies the namespaces to - which this hook spec applies. If empty, it applies to all - namespaces. - items: - type: string - nullable: true - type: array - includedResources: - description: IncludedResources specifies the resources to - which this hook spec applies. If empty, it applies to all - resources. - items: - type: string - nullable: true - type: array - labelSelector: - description: LabelSelector, if specified, filters the resources - to which this hook spec applies. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label selector - requirements. The requirements are ANDed. - items: - description: A label selector requirement is a selector - that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the selector - applies to. - type: string - operator: - description: operator represents a key's relationship - to a set of values. Valid operators are In, NotIn, - Exists and DoesNotExist. - type: string - values: - description: values is an array of string values. - If the operator is In or NotIn, the values array - must be non-empty. If the operator is Exists or - DoesNotExist, the values array must be empty. - This array is replaced during a strategic merge - patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: matchLabels is a map of {key,value} pairs. - A single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field is - "key", the operator is "In", and the values array contains - only "value". The requirements are ANDed. - type: object - type: object - name: - description: Name is the name of this hook. - type: string - post: - description: PostHooks is a list of BackupResourceHooks to - execute after storing the item in the backup. These are - executed after all "additional items" from item actions - are processed. - items: - description: BackupResourceHook defines a hook for a resource. - properties: - exec: - description: Exec defines an exec hook. - properties: - command: - description: Command is the command and arguments - to execute. - items: - type: string - minItems: 1 - type: array - container: - description: Container is the container in the pod - where the command should be executed. If not specified, - the pod's first container is used. - type: string - onError: - description: OnError specifies how Velero should - behave if it encounters an error executing this - hook. - enum: - - Continue - - Fail - type: string - timeout: - description: Timeout defines the maximum amount - of time Velero should wait for the hook to complete - before considering the execution a failure. - type: string - required: - - command - type: object - required: - - exec - type: object - type: array - pre: - description: PreHooks is a list of BackupResourceHooks to - execute prior to storing the item in the backup. These are - executed before any "additional items" from item actions - are processed. - items: - description: BackupResourceHook defines a hook for a resource. - properties: - exec: - description: Exec defines an exec hook. - properties: - command: - description: Command is the command and arguments - to execute. - items: - type: string - minItems: 1 - type: array - container: - description: Container is the container in the pod - where the command should be executed. If not specified, - the pod's first container is used. - type: string - onError: - description: OnError specifies how Velero should - behave if it encounters an error executing this - hook. - enum: - - Continue - - Fail - type: string - timeout: - description: Timeout defines the maximum amount - of time Velero should wait for the hook to complete - before considering the execution a failure. - type: string - required: - - command - type: object - required: - - exec - type: object - type: array - required: - - name - type: object - nullable: true - type: array - type: object - includeClusterResources: - description: IncludeClusterResources specifies whether cluster-scoped - resources should be included for consideration in the backup. - nullable: true - type: boolean - includedNamespaces: - description: IncludedNamespaces is a slice of namespace names to include - objects from. If empty, all namespaces are included. - items: - type: string - nullable: true - type: array - includedResources: - description: IncludedResources is a slice of resource names to include - in the backup. If empty, all resources are included. - items: - type: string - nullable: true - type: array - labelSelector: - description: LabelSelector is a metav1.LabelSelector to filter with - when adding individual objects to the backup. If empty or nil, all - objects are included. Optional. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. - The requirements are ANDed. - items: - description: A label selector requirement is a selector that contains - values, a key, and an operator that relates the key and values. - properties: - key: - description: key is the label key that the selector applies - to. - type: string - operator: - description: operator represents a key's relationship to a - set of values. Valid operators are In, NotIn, Exists and - DoesNotExist. - type: string - values: - description: values is an array of string values. If the operator - is In or NotIn, the values array must be non-empty. If the - operator is Exists or DoesNotExist, the values array must - be empty. This array is replaced during a strategic merge - patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: matchLabels is a map of {key,value} pairs. A single - {key,value} in the matchLabels map is equivalent to an element - of matchExpressions, whose key field is "key", the operator is - "In", and the values array contains only "value". The requirements - are ANDed. - type: object - type: object - metadata: - properties: - labels: - additionalProperties: - type: string - type: object - type: object - orderedResources: - additionalProperties: - type: string - description: OrderedResources specifies the backup order of resources - of specific Kind. The map key is the Kind name and value is a list - of resource names separated by commas. Each resource name has format - "namespace/resourcename". For cluster resources, simply use "resourcename". - nullable: true - type: object - snapshotVolumes: - description: SnapshotVolumes specifies whether to take cloud snapshots - of any PV's referenced in the set of objects included in the Backup. - nullable: true - type: boolean - storageLocation: - description: StorageLocation is a string containing the name of a BackupStorageLocation - where the backup should be stored. - type: string - ttl: - description: TTL is a time.Duration-parseable string describing how - long the Backup should be retained for. - type: string - volumeSnapshotLocations: - description: VolumeSnapshotLocations is a list containing names of VolumeSnapshotLocations - associated with this backup. - items: - type: string - type: array - type: object - status: - description: BackupStatus captures the current status of a Velero backup. - properties: - completionTimestamp: - description: CompletionTimestamp records the time a backup was completed. - Completion time is recorded even on failed backups. Completion time - is recorded before uploading the backup object. The server's time - is used for CompletionTimestamps - format: date-time - nullable: true - type: string - errors: - description: Errors is a count of all error messages that were generated - during execution of the backup. The actual errors are in the backup's - log file in object storage. - type: integer - expiration: - description: Expiration is when this Backup is eligible for garbage-collection. - format: date-time - nullable: true - type: string - formatVersion: - description: FormatVersion is the backup format version, including major, - minor, and patch version. - type: string - phase: - description: Phase is the current state of the Backup. - enum: - - New - - FailedValidation - - InProgress - - Completed - - PartiallyFailed - - Failed - - Deleting - type: string - progress: - description: Progress contains information about the backup's execution - progress. Note that this information is best-effort only -- if Velero - fails to update it during a backup for any reason, it may be inaccurate/stale. - nullable: true - properties: - itemsBackedUp: - description: ItemsBackedUp is the number of items that have actually - been written to the backup tarball so far. - type: integer - totalItems: - description: TotalItems is the total number of items to be backed - up. This number may change throughout the execution of the backup - due to plugins that return additional related items to back up, - the velero.io/exclude-from-backup label, and various other filters - that happen as items are processed. - type: integer - type: object - startTimestamp: - description: StartTimestamp records the time a backup was started. Separate - from CreationTimestamp, since that value changes on restores. The - server's time is used for StartTimestamps - format: date-time - nullable: true - type: string - validationErrors: - description: ValidationErrors is a slice of all validation errors (if - applicable). - items: - type: string - nullable: true - type: array - version: - description: 'Version is the backup format major version. Deprecated: - Please see FormatVersion' - type: integer - volumeSnapshotsAttempted: - description: VolumeSnapshotsAttempted is the total number of attempted - volume snapshots for this backup. - type: integer - volumeSnapshotsCompleted: - description: VolumeSnapshotsCompleted is the total number of successfully - completed volume snapshots for this backup. - type: integer - warnings: - description: Warnings is a count of all warning messages that were generated - during execution of the backup. The actual warnings are in the backup's - log file in object storage. - type: integer - type: object - type: object - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crd/v1beta1/bases/velero.io_backupstoragelocations.yaml b/config/crd/v1beta1/bases/velero.io_backupstoragelocations.yaml deleted file mode 100644 index 86bc003e0..000000000 --- a/config/crd/v1beta1/bases/velero.io_backupstoragelocations.yaml +++ /dev/null @@ -1,179 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - creationTimestamp: null - name: backupstoragelocations.velero.io -spec: - additionalPrinterColumns: - - JSONPath: .status.phase - description: Backup Storage Location status such as Available/Unavailable - name: Phase - type: string - - JSONPath: .status.lastValidationTime - description: LastValidationTime is the last time the backup store location was - validated - name: Last Validated - type: date - - JSONPath: .metadata.creationTimestamp - name: Age - type: date - - JSONPath: .spec.default - description: Default backup storage location - name: Default - type: boolean - group: velero.io - names: - kind: BackupStorageLocation - listKind: BackupStorageLocationList - plural: backupstoragelocations - shortNames: - - bsl - singular: backupstoragelocation - preserveUnknownFields: false - scope: Namespaced - subresources: - status: {} - validation: - openAPIV3Schema: - description: BackupStorageLocation is a location where Velero stores backup - objects - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: BackupStorageLocationSpec defines the desired state of a Velero - BackupStorageLocation - properties: - accessMode: - description: AccessMode defines the permissions for the backup storage - location. - enum: - - ReadOnly - - ReadWrite - type: string - backupSyncPeriod: - description: BackupSyncPeriod defines how frequently to sync backup - API objects from object storage. A value of 0 disables sync. - nullable: true - type: string - config: - additionalProperties: - type: string - description: Config is for provider-specific configuration fields. - type: object - credential: - description: Credential contains the credential information intended - to be used with this location - properties: - key: - description: The key of the secret to select from. Must be a valid - secret key. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the Secret or its key must be defined - type: boolean - required: - - key - type: object - default: - description: Default indicates this location is the default backup storage - location. - type: boolean - objectStorage: - description: ObjectStorageLocation specifies the settings necessary - to connect to a provider's object storage. - properties: - bucket: - description: Bucket is the bucket to use for object storage. - type: string - caCert: - description: CACert defines a CA bundle to use when verifying TLS - connections to the provider. - format: byte - type: string - prefix: - description: Prefix is the path inside a bucket to use for Velero - storage. Optional. - type: string - required: - - bucket - type: object - provider: - description: Provider is the provider of the backup storage. - type: string - validationFrequency: - description: ValidationFrequency defines how frequently to validate - the corresponding object storage. A value of 0 disables validation. - nullable: true - type: string - required: - - objectStorage - - provider - type: object - status: - description: BackupStorageLocationStatus defines the observed state of BackupStorageLocation - properties: - accessMode: - description: "AccessMode is an unused field. \n Deprecated: there is - now an AccessMode field on the Spec and this field will be removed - entirely as of v2.0." - enum: - - ReadOnly - - ReadWrite - type: string - lastSyncedRevision: - description: "LastSyncedRevision is the value of the `metadata/revision` - file in the backup storage location the last time the BSL's contents - were synced into the cluster. \n Deprecated: this field is no longer - updated or used for detecting changes to the location's contents and - will be removed entirely in v2.0." - type: string - lastSyncedTime: - description: LastSyncedTime is the last time the contents of the location - were synced into the cluster. - format: date-time - nullable: true - type: string - lastValidationTime: - description: LastValidationTime is the last time the backup store location - was validated the cluster. - format: date-time - nullable: true - type: string - phase: - description: Phase is the current state of the BackupStorageLocation. - enum: - - Available - - Unavailable - type: string - type: object - type: object - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crd/v1beta1/bases/velero.io_deletebackuprequests.yaml b/config/crd/v1beta1/bases/velero.io_deletebackuprequests.yaml deleted file mode 100644 index 05ecbdfc2..000000000 --- a/config/crd/v1beta1/bases/velero.io_deletebackuprequests.yaml +++ /dev/null @@ -1,73 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - creationTimestamp: null - name: deletebackuprequests.velero.io -spec: - group: velero.io - names: - kind: DeleteBackupRequest - listKind: DeleteBackupRequestList - plural: deletebackuprequests - singular: deletebackuprequest - preserveUnknownFields: false - scope: Namespaced - validation: - openAPIV3Schema: - description: DeleteBackupRequest is a request to delete one or more backups. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: DeleteBackupRequestSpec is the specification for which backups - to delete. - properties: - backupName: - type: string - required: - - backupName - type: object - status: - description: DeleteBackupRequestStatus is the current status of a DeleteBackupRequest. - properties: - errors: - description: Errors contains any errors that were encountered during - the deletion process. - items: - type: string - nullable: true - type: array - phase: - description: Phase is the current state of the DeleteBackupRequest. - enum: - - New - - InProgress - - Processed - type: string - type: object - type: object - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crd/v1beta1/bases/velero.io_downloadrequests.yaml b/config/crd/v1beta1/bases/velero.io_downloadrequests.yaml deleted file mode 100644 index e7b4832d7..000000000 --- a/config/crd/v1beta1/bases/velero.io_downloadrequests.yaml +++ /dev/null @@ -1,96 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - creationTimestamp: null - name: downloadrequests.velero.io -spec: - group: velero.io - names: - kind: DownloadRequest - listKind: DownloadRequestList - plural: downloadrequests - singular: downloadrequest - preserveUnknownFields: false - scope: Namespaced - subresources: - status: {} - validation: - openAPIV3Schema: - description: DownloadRequest is a request to download an artifact from backup - object storage, such as a backup log file. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: DownloadRequestSpec is the specification for a download request. - properties: - target: - description: Target is what to download (e.g. logs for a backup). - properties: - kind: - description: Kind is the type of file to download. - enum: - - BackupLog - - BackupContents - - BackupVolumeSnapshots - - BackupResourceList - - RestoreLog - - RestoreResults - type: string - name: - description: Name is the name of the kubernetes resource with which - the file is associated. - type: string - required: - - kind - - name - type: object - required: - - target - type: object - status: - description: DownloadRequestStatus is the current status of a DownloadRequest. - properties: - downloadURL: - description: DownloadURL contains the pre-signed URL for the target - file. - type: string - expiration: - description: Expiration is when this DownloadRequest expires and can - be deleted by the system. - format: date-time - nullable: true - type: string - phase: - description: Phase is the current state of the DownloadRequest. - enum: - - New - - Processed - type: string - type: object - type: object - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crd/v1beta1/bases/velero.io_podvolumebackups.yaml b/config/crd/v1beta1/bases/velero.io_podvolumebackups.yaml deleted file mode 100644 index 094dd3e16..000000000 --- a/config/crd/v1beta1/bases/velero.io_podvolumebackups.yaml +++ /dev/null @@ -1,162 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - creationTimestamp: null - name: podvolumebackups.velero.io -spec: - group: velero.io - names: - kind: PodVolumeBackup - listKind: PodVolumeBackupList - plural: podvolumebackups - singular: podvolumebackup - preserveUnknownFields: false - scope: Namespaced - validation: - openAPIV3Schema: - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: PodVolumeBackupSpec is the specification for a PodVolumeBackup. - properties: - backupStorageLocation: - description: BackupStorageLocation is the name of the backup storage - location where the restic repository is stored. - type: string - node: - description: Node is the name of the node that the Pod is running on. - type: string - pod: - description: Pod is a reference to the pod containing the volume to - be backed up. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: 'If referring to a piece of an object instead of an - entire object, this string should contain a valid JSON/Go field - access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within - a pod, this would take on a value like: "spec.containers{name}" - (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" - (container with index 2 in this pod). This syntax is chosen only - to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change - in the future.' - type: string - kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - resourceVersion: - description: 'Specific resourceVersion to which this reference is - made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' - type: string - uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' - type: string - type: object - repoIdentifier: - description: RepoIdentifier is the restic repository identifier. - type: string - tags: - additionalProperties: - type: string - description: Tags are a map of key-value pairs that should be applied - to the volume backup as tags. - type: object - volume: - description: Volume is the name of the volume within the Pod to be backed - up. - type: string - required: - - backupStorageLocation - - node - - pod - - repoIdentifier - - volume - type: object - status: - description: PodVolumeBackupStatus is the current status of a PodVolumeBackup. - properties: - completionTimestamp: - description: CompletionTimestamp records the time a backup was completed. - Completion time is recorded even on failed backups. Completion time - is recorded before uploading the backup object. The server's time - is used for CompletionTimestamps - format: date-time - nullable: true - type: string - message: - description: Message is a message about the pod volume backup's status. - type: string - path: - description: Path is the full path within the controller pod being backed - up. - type: string - phase: - description: Phase is the current state of the PodVolumeBackup. - enum: - - New - - InProgress - - Completed - - Failed - type: string - progress: - description: Progress holds the total number of bytes of the volume - and the current number of backed up bytes. This can be used to display - progress information about the backup operation. - properties: - bytesDone: - format: int64 - type: integer - totalBytes: - format: int64 - type: integer - type: object - snapshotID: - description: SnapshotID is the identifier for the snapshot of the pod - volume. - type: string - startTimestamp: - description: StartTimestamp records the time a backup was started. Separate - from CreationTimestamp, since that value changes on restores. The - server's time is used for StartTimestamps - format: date-time - nullable: true - type: string - type: object - type: object - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crd/v1beta1/bases/velero.io_podvolumerestores.yaml b/config/crd/v1beta1/bases/velero.io_podvolumerestores.yaml deleted file mode 100644 index 43a738e5f..000000000 --- a/config/crd/v1beta1/bases/velero.io_podvolumerestores.yaml +++ /dev/null @@ -1,145 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - creationTimestamp: null - name: podvolumerestores.velero.io -spec: - group: velero.io - names: - kind: PodVolumeRestore - listKind: PodVolumeRestoreList - plural: podvolumerestores - singular: podvolumerestore - preserveUnknownFields: false - scope: Namespaced - validation: - openAPIV3Schema: - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: PodVolumeRestoreSpec is the specification for a PodVolumeRestore. - properties: - backupStorageLocation: - description: BackupStorageLocation is the name of the backup storage - location where the restic repository is stored. - type: string - pod: - description: Pod is a reference to the pod containing the volume to - be restored. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: 'If referring to a piece of an object instead of an - entire object, this string should contain a valid JSON/Go field - access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within - a pod, this would take on a value like: "spec.containers{name}" - (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" - (container with index 2 in this pod). This syntax is chosen only - to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change - in the future.' - type: string - kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - resourceVersion: - description: 'Specific resourceVersion to which this reference is - made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' - type: string - uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' - type: string - type: object - repoIdentifier: - description: RepoIdentifier is the restic repository identifier. - type: string - snapshotID: - description: SnapshotID is the ID of the volume snapshot to be restored. - type: string - volume: - description: Volume is the name of the volume within the Pod to be restored. - type: string - required: - - backupStorageLocation - - pod - - repoIdentifier - - snapshotID - - volume - type: object - status: - description: PodVolumeRestoreStatus is the current status of a PodVolumeRestore. - properties: - completionTimestamp: - description: CompletionTimestamp records the time a restore was completed. - Completion time is recorded even on failed restores. The server's - time is used for CompletionTimestamps - format: date-time - nullable: true - type: string - message: - description: Message is a message about the pod volume restore's status. - type: string - phase: - description: Phase is the current state of the PodVolumeRestore. - enum: - - New - - InProgress - - Completed - - Failed - type: string - progress: - description: Progress holds the total number of bytes of the snapshot - and the current number of restored bytes. This can be used to display - progress information about the restore operation. - properties: - bytesDone: - format: int64 - type: integer - totalBytes: - format: int64 - type: integer - type: object - startTimestamp: - description: StartTimestamp records the time a restore was started. - The server's time is used for StartTimestamps - format: date-time - nullable: true - type: string - type: object - type: object - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crd/v1beta1/bases/velero.io_resticrepositories.yaml b/config/crd/v1beta1/bases/velero.io_resticrepositories.yaml deleted file mode 100644 index 727e66bdf..000000000 --- a/config/crd/v1beta1/bases/velero.io_resticrepositories.yaml +++ /dev/null @@ -1,89 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - creationTimestamp: null - name: resticrepositories.velero.io -spec: - group: velero.io - names: - kind: ResticRepository - listKind: ResticRepositoryList - plural: resticrepositories - singular: resticrepository - preserveUnknownFields: false - scope: Namespaced - validation: - openAPIV3Schema: - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: ResticRepositorySpec is the specification for a ResticRepository. - properties: - backupStorageLocation: - description: BackupStorageLocation is the name of the BackupStorageLocation - that should contain this repository. - type: string - maintenanceFrequency: - description: MaintenanceFrequency is how often maintenance should be - run. - type: string - resticIdentifier: - description: ResticIdentifier is the full restic-compatible string for - identifying this repository. - type: string - volumeNamespace: - description: VolumeNamespace is the namespace this restic repository - contains pod volume backups for. - type: string - required: - - backupStorageLocation - - maintenanceFrequency - - resticIdentifier - - volumeNamespace - type: object - status: - description: ResticRepositoryStatus is the current status of a ResticRepository. - properties: - lastMaintenanceTime: - description: LastMaintenanceTime is the last time maintenance was run. - format: date-time - nullable: true - type: string - message: - description: Message is a message about the current status of the ResticRepository. - type: string - phase: - description: Phase is the current state of the ResticRepository. - enum: - - New - - Ready - - NotReady - type: string - type: object - type: object - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crd/v1beta1/bases/velero.io_restores.yaml b/config/crd/v1beta1/bases/velero.io_restores.yaml deleted file mode 100644 index 8f3b01439..000000000 --- a/config/crd/v1beta1/bases/velero.io_restores.yaml +++ /dev/null @@ -1,1765 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - creationTimestamp: null - name: restores.velero.io -spec: - group: velero.io - names: - kind: Restore - listKind: RestoreList - plural: restores - singular: restore - preserveUnknownFields: false - scope: Namespaced - validation: - openAPIV3Schema: - description: Restore is a Velero resource that represents the application of - resources from a Velero backup to a target Kubernetes cluster. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: RestoreSpec defines the specification for a Velero restore. - properties: - backupName: - description: BackupName is the unique name of the Velero backup to restore - from. - type: string - excludedNamespaces: - description: ExcludedNamespaces contains a list of namespaces that are - not included in the restore. - items: - type: string - nullable: true - type: array - excludedResources: - description: ExcludedResources is a slice of resource names that are - not included in the restore. - items: - type: string - nullable: true - type: array - hooks: - description: Hooks represent custom behaviors that should be executed - during or post restore. - properties: - resources: - items: - description: RestoreResourceHookSpec defines one or more RestoreResrouceHooks - that should be executed based on the rules defined for namespaces, - resources, and label selector. - properties: - excludedNamespaces: - description: ExcludedNamespaces specifies the namespaces to - which this hook spec does not apply. - items: - type: string - nullable: true - type: array - excludedResources: - description: ExcludedResources specifies the resources to - which this hook spec does not apply. - items: - type: string - nullable: true - type: array - includedNamespaces: - description: IncludedNamespaces specifies the namespaces to - which this hook spec applies. If empty, it applies to all - namespaces. - items: - type: string - nullable: true - type: array - includedResources: - description: IncludedResources specifies the resources to - which this hook spec applies. If empty, it applies to all - resources. - items: - type: string - nullable: true - type: array - labelSelector: - description: LabelSelector, if specified, filters the resources - to which this hook spec applies. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label selector - requirements. The requirements are ANDed. - items: - description: A label selector requirement is a selector - that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the selector - applies to. - type: string - operator: - description: operator represents a key's relationship - to a set of values. Valid operators are In, NotIn, - Exists and DoesNotExist. - type: string - values: - description: values is an array of string values. - If the operator is In or NotIn, the values array - must be non-empty. If the operator is Exists or - DoesNotExist, the values array must be empty. - This array is replaced during a strategic merge - patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: matchLabels is a map of {key,value} pairs. - A single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field is - "key", the operator is "In", and the values array contains - only "value". The requirements are ANDed. - type: object - type: object - name: - description: Name is the name of this hook. - type: string - postHooks: - description: PostHooks is a list of RestoreResourceHooks to - execute during and after restoring a resource. - items: - description: RestoreResourceHook defines a restore hook - for a resource. - properties: - exec: - description: Exec defines an exec restore hook. - properties: - command: - description: Command is the command and arguments - to execute from within a container after a pod - has been restored. - items: - type: string - minItems: 1 - type: array - container: - description: Container is the container in the pod - where the command should be executed. If not specified, - the pod's first container is used. - type: string - execTimeout: - description: ExecTimeout defines the maximum amount - of time Velero should wait for the hook to complete - before considering the execution a failure. - type: string - onError: - description: OnError specifies how Velero should - behave if it encounters an error executing this - hook. - enum: - - Continue - - Fail - type: string - waitTimeout: - description: WaitTimeout defines the maximum amount - of time Velero should wait for the container to - be Ready before attempting to run the command. - type: string - required: - - command - type: object - init: - description: Init defines an init restore hook. - properties: - initContainers: - description: InitContainers is list of init containers - to be added to a pod during its restore. - items: - description: A single application container that - you want to run within a pod. - properties: - args: - description: 'Arguments to the entrypoint. - The docker image''s CMD is used if this - is not provided. Variable references $(VAR_NAME) - are expanded using the container''s environment. - If a variable cannot be resolved, the reference - in the input string will be unchanged. Double - $$ are reduced to a single $, which allows - for escaping the $(VAR_NAME) syntax: i.e. - "$$(VAR_NAME)" will produce the string literal - "$(VAR_NAME)". Escaped references will never - be expanded, regardless of whether the variable - exists or not. Cannot be updated. More info: - https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' - items: - type: string - type: array - command: - description: 'Entrypoint array. Not executed - within a shell. The docker image''s ENTRYPOINT - is used if this is not provided. Variable - references $(VAR_NAME) are expanded using - the container''s environment. If a variable - cannot be resolved, the reference in the - input string will be unchanged. Double $$ - are reduced to a single $, which allows - for escaping the $(VAR_NAME) syntax: i.e. - "$$(VAR_NAME)" will produce the string literal - "$(VAR_NAME)". Escaped references will never - be expanded, regardless of whether the variable - exists or not. Cannot be updated. More info: - https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' - items: - type: string - type: array - env: - description: List of environment variables - to set in the container. Cannot be updated. - items: - description: EnvVar represents an environment - variable present in a Container. - properties: - name: - description: Name of the environment - variable. Must be a C_IDENTIFIER. - type: string - value: - description: 'Variable references $(VAR_NAME) - are expanded using the previously - defined environment variables in the - container and any service environment - variables. If a variable cannot be - resolved, the reference in the input - string will be unchanged. Double $$ - are reduced to a single $, which allows - for escaping the $(VAR_NAME) syntax: - i.e. "$$(VAR_NAME)" will produce the - string literal "$(VAR_NAME)". Escaped - references will never be expanded, - regardless of whether the variable - exists or not. Defaults to "".' - type: string - valueFrom: - description: Source for the environment - variable's value. Cannot be used if - value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a - ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: 'Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. - apiVersion, kind, uid?' - type: string - optional: - description: Specify whether - the ConfigMap or its key must - be defined - type: boolean - required: - - key - type: object - fieldRef: - description: 'Selects a field of - the pod: supports metadata.name, - metadata.namespace, `metadata.labels['''']`, - `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, - status.hostIP, status.podIP, status.podIPs.' - properties: - apiVersion: - description: Version of the - schema the FieldPath is written - in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field - to select in the specified - API version. - type: string - required: - - fieldPath - type: object - resourceFieldRef: - description: 'Selects a resource - of the container: only resources - limits and requests (limits.cpu, - limits.memory, limits.ephemeral-storage, - requests.cpu, requests.memory - and requests.ephemeral-storage) - are currently supported.' - properties: - containerName: - description: 'Container name: - required for volumes, optional - for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource - to select' - type: string - required: - - resource - type: object - secretKeyRef: - description: Selects a key of a - secret in the pod's namespace - properties: - key: - description: The key of the - secret to select from. Must - be a valid secret key. - type: string - name: - description: 'Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. - apiVersion, kind, uid?' - type: string - optional: - description: Specify whether - the Secret or its key must - be defined - type: boolean - required: - - key - type: object - type: object - required: - - name - type: object - type: array - envFrom: - description: List of sources to populate environment - variables in the container. The keys defined - within a source must be a C_IDENTIFIER. - All invalid keys will be reported as an - event when the container is starting. When - a key exists in multiple sources, the value - associated with the last source will take - precedence. Values defined by an Env with - a duplicate key will take precedence. Cannot - be updated. - items: - description: EnvFromSource represents the - source of a set of ConfigMaps - properties: - configMapRef: - description: The ConfigMap to select - from - properties: - name: - description: 'Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. - apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the - ConfigMap must be defined - type: boolean - type: object - prefix: - description: An optional identifier - to prepend to each key in the ConfigMap. - Must be a C_IDENTIFIER. - type: string - secretRef: - description: The Secret to select from - properties: - name: - description: 'Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. - apiVersion, kind, uid?' - type: string - optional: - description: Specify whether the - Secret must be defined - type: boolean - type: object - type: object - type: array - image: - description: 'Docker image name. More info: - https://kubernetes.io/docs/concepts/containers/images - This field is optional to allow higher level - config management to default or override - container images in workload controllers - like Deployments and StatefulSets.' - type: string - imagePullPolicy: - description: 'Image pull policy. One of Always, - Never, IfNotPresent. Defaults to Always - if :latest tag is specified, or IfNotPresent - otherwise. Cannot be updated. More info: - https://kubernetes.io/docs/concepts/containers/images#updating-images' - type: string - lifecycle: - description: Actions that the management system - should take in response to container lifecycle - events. Cannot be updated. - properties: - postStart: - description: 'PostStart is called immediately - after a container is created. If the - handler fails, the container is terminated - and restarted according to its restart - policy. Other management of the container - blocks until the hook completes. More - info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' - properties: - exec: - description: One and only one of the - following should be specified. Exec - specifies the action to take. - properties: - command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The - command is simply exec'd, it - is not run inside a shell, so - traditional shell instructions - ('|', etc) won't work. To use - a shell, you need to explicitly - call out to that shell. Exit - status of 0 is treated as live/healthy - and non-zero is unhealthy. - items: - type: string - type: array - type: object - httpGet: - description: HTTPGet specifies the - http request to perform. - properties: - host: - description: Host name to connect - to, defaults to the pod IP. - You probably want to set "Host" - in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to - set in the request. HTTP allows - repeated headers. - items: - description: HTTPHeader describes - a custom header to be used - in HTTP probes - properties: - name: - description: The header - field name - type: string - value: - description: The header - field value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on - the HTTP server. - type: string - port: - anyOf: - - type: integer - - type: string - description: Name or number of - the port to access on the container. - Number must be in the range - 1 to 65535. Name must be an - IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: Scheme to use for - connecting to the host. Defaults - to HTTP. - type: string - required: - - port - type: object - tcpSocket: - description: 'TCPSocket specifies - an action involving a TCP port. - TCP hooks not yet supported TODO: - implement a realistic TCP lifecycle - hook' - properties: - host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: Number or name of - the port to access on the container. - Number must be in the range - 1 to 65535. Name must be an - IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - preStop: - description: 'PreStop is called immediately - before a container is terminated due - to an API request or management event - such as liveness/startup probe failure, - preemption, resource contention, etc. - The handler is not called if the container - crashes or exits. The reason for termination - is passed to the handler. The Pod''s - termination grace period countdown begins - before the PreStop hooked is executed. - Regardless of the outcome of the handler, - the container will eventually terminate - within the Pod''s termination grace - period. Other management of the container - blocks until the hook completes or until - the termination grace period is reached. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' - properties: - exec: - description: One and only one of the - following should be specified. Exec - specifies the action to take. - properties: - command: - description: Command is the command - line to execute inside the container, - the working directory for the - command is root ('/') in the - container's filesystem. The - command is simply exec'd, it - is not run inside a shell, so - traditional shell instructions - ('|', etc) won't work. To use - a shell, you need to explicitly - call out to that shell. Exit - status of 0 is treated as live/healthy - and non-zero is unhealthy. - items: - type: string - type: array - type: object - httpGet: - description: HTTPGet specifies the - http request to perform. - properties: - host: - description: Host name to connect - to, defaults to the pod IP. - You probably want to set "Host" - in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to - set in the request. HTTP allows - repeated headers. - items: - description: HTTPHeader describes - a custom header to be used - in HTTP probes - properties: - name: - description: The header - field name - type: string - value: - description: The header - field value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on - the HTTP server. - type: string - port: - anyOf: - - type: integer - - type: string - description: Name or number of - the port to access on the container. - Number must be in the range - 1 to 65535. Name must be an - IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: Scheme to use for - connecting to the host. Defaults - to HTTP. - type: string - required: - - port - type: object - tcpSocket: - description: 'TCPSocket specifies - an action involving a TCP port. - TCP hooks not yet supported TODO: - implement a realistic TCP lifecycle - hook' - properties: - host: - description: 'Optional: Host name - to connect to, defaults to the - pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: Number or name of - the port to access on the container. - Number must be in the range - 1 to 65535. Name must be an - IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - type: object - livenessProbe: - description: 'Periodic probe of container - liveness. Container will be restarted if - the probe fails. Cannot be updated. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' - properties: - exec: - description: One and only one of the following - should be specified. Exec specifies - the action to take. - properties: - command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it - is not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. - items: - type: string - type: array - type: object - failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to - 3. Minimum value is 1. - format: int32 - type: integer - httpGet: - description: HTTPGet specifies the http - request to perform. - properties: - host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in httpHeaders - instead. - type: string - httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. - items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes - properties: - name: - description: The header field - name - type: string - value: - description: The header field - value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the - HTTP server. - type: string - port: - anyOf: - - type: integer - - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. - type: string - required: - - port - type: object - initialDelaySeconds: - description: 'Number of seconds after - the container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' - format: int32 - type: integer - periodSeconds: - description: How often (in seconds) to - perform the probe. Default to 10 seconds. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. - Must be 1 for liveness and startup. - Minimum value is 1. - format: int32 - type: integer - tcpSocket: - description: 'TCPSocket specifies an action - involving a TCP port. TCP hooks not - yet supported TODO: implement a realistic - TCP lifecycle hook' - properties: - host: - description: 'Optional: Host name - to connect to, defaults to the pod - IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period - is the duration in seconds after the - processes running in the pod are sent - a termination signal and the time when - the processes are forcibly halted with - a kill signal. Set this value longer - than the expected cleanup time for your - process. If this value is nil, the pod's - terminationGracePeriodSeconds will be - used. Otherwise, this value overrides - the value provided by the pod spec. - Value must be non-negative integer. - The value zero indicates stop immediately - via the kill signal (no opportunity - to shut down). This is a beta field - and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. - format: int64 - type: integer - timeoutSeconds: - description: 'Number of seconds after - which the probe times out. Defaults - to 1 second. Minimum value is 1. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' - format: int32 - type: integer - type: object - name: - description: Name of the container specified - as a DNS_LABEL. Each container in a pod - must have a unique name (DNS_LABEL). Cannot - be updated. - type: string - ports: - description: List of ports to expose from - the container. Exposing a port here gives - the system additional information about - the network connections a container uses, - but is primarily informational. Not specifying - a port here DOES NOT prevent that port from - being exposed. Any port which is listening - on the default "0.0.0.0" address inside - a container will be accessible from the - network. Cannot be updated. - items: - description: ContainerPort represents a - network port in a single container. - properties: - containerPort: - description: Number of port to expose - on the pod's IP address. This must - be a valid port number, 0 < x < 65536. - format: int32 - type: integer - hostIP: - description: What host IP to bind the - external port to. - type: string - hostPort: - description: Number of port to expose - on the host. If specified, this must - be a valid port number, 0 < x < 65536. - If HostNetwork is specified, this - must match ContainerPort. Most containers - do not need this. - format: int32 - type: integer - name: - description: If specified, this must - be an IANA_SVC_NAME and unique within - the pod. Each named port in a pod - must have a unique name. Name for - the port that can be referred to by - services. - type: string - protocol: - description: Protocol for port. Must - be UDP, TCP, or SCTP. Defaults to - "TCP". - type: string - required: - - containerPort - - protocol - type: object - type: array - x-kubernetes-list-map-keys: - - containerPort - - protocol - x-kubernetes-list-type: map - readinessProbe: - description: 'Periodic probe of container - service readiness. Container will be removed - from service endpoints if the probe fails. - Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' - properties: - exec: - description: One and only one of the following - should be specified. Exec specifies - the action to take. - properties: - command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it - is not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. - items: - type: string - type: array - type: object - failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to - 3. Minimum value is 1. - format: int32 - type: integer - httpGet: - description: HTTPGet specifies the http - request to perform. - properties: - host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in httpHeaders - instead. - type: string - httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. - items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes - properties: - name: - description: The header field - name - type: string - value: - description: The header field - value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the - HTTP server. - type: string - port: - anyOf: - - type: integer - - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. - type: string - required: - - port - type: object - initialDelaySeconds: - description: 'Number of seconds after - the container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' - format: int32 - type: integer - periodSeconds: - description: How often (in seconds) to - perform the probe. Default to 10 seconds. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. - Must be 1 for liveness and startup. - Minimum value is 1. - format: int32 - type: integer - tcpSocket: - description: 'TCPSocket specifies an action - involving a TCP port. TCP hooks not - yet supported TODO: implement a realistic - TCP lifecycle hook' - properties: - host: - description: 'Optional: Host name - to connect to, defaults to the pod - IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period - is the duration in seconds after the - processes running in the pod are sent - a termination signal and the time when - the processes are forcibly halted with - a kill signal. Set this value longer - than the expected cleanup time for your - process. If this value is nil, the pod's - terminationGracePeriodSeconds will be - used. Otherwise, this value overrides - the value provided by the pod spec. - Value must be non-negative integer. - The value zero indicates stop immediately - via the kill signal (no opportunity - to shut down). This is a beta field - and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. - format: int64 - type: integer - timeoutSeconds: - description: 'Number of seconds after - which the probe times out. Defaults - to 1 second. Minimum value is 1. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' - format: int32 - type: integer - type: object - resources: - description: 'Compute Resources required by - this container. Cannot be updated. More - info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Limits describes the maximum - amount of compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Requests describes the minimum - amount of compute resources required. - If Requests is omitted for a container, - it defaults to Limits if that is explicitly - specified, otherwise to an implementation-defined - value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' - type: object - type: object - securityContext: - description: 'SecurityContext defines the - security options the container should be - run with. If set, the fields of SecurityContext - override the equivalent fields of PodSecurityContext. - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' - properties: - allowPrivilegeEscalation: - description: 'AllowPrivilegeEscalation - controls whether a process can gain - more privileges than its parent process. - This bool directly controls if the no_new_privs - flag will be set on the container process. - AllowPrivilegeEscalation is true always - when the container is: 1) run as Privileged - 2) has CAP_SYS_ADMIN' - type: boolean - capabilities: - description: The capabilities to add/drop - when running containers. Defaults to - the default set of capabilities granted - by the container runtime. - properties: - add: - description: Added capabilities - items: - description: Capability represent - POSIX capabilities type - type: string - type: array - drop: - description: Removed capabilities - items: - description: Capability represent - POSIX capabilities type - type: string - type: array - type: object - privileged: - description: Run container in privileged - mode. Processes in privileged containers - are essentially equivalent to root on - the host. Defaults to false. - type: boolean - procMount: - description: procMount denotes the type - of proc mount to use for the containers. - The default is DefaultProcMount which - uses the container runtime defaults - for readonly paths and masked paths. - This requires the ProcMountType feature - flag to be enabled. - type: string - readOnlyRootFilesystem: - description: Whether this container has - a read-only root filesystem. Default - is false. - type: boolean - runAsGroup: - description: The GID to run the entrypoint - of the container process. Uses runtime - default if unset. May also be set in - PodSecurityContext. If set in both - SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. - format: int64 - type: integer - runAsNonRoot: - description: Indicates that the container - must run as a non-root user. If true, - the Kubelet will validate the image - at runtime to ensure that it does not - run as UID 0 (root) and fail to start - the container if it does. If unset or - false, no such validation will be performed. - May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. - type: boolean - runAsUser: - description: The UID to run the entrypoint - of the container process. Defaults to - user specified in image metadata if - unspecified. May also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. - format: int64 - type: integer - seLinuxOptions: - description: The SELinux context to be - applied to the container. If unspecified, - the container runtime will allocate - a random SELinux context for each container. May - also be set in PodSecurityContext. If - set in both SecurityContext and PodSecurityContext, - the value specified in SecurityContext - takes precedence. - properties: - level: - description: Level is SELinux level - label that applies to the container. - type: string - role: - description: Role is a SELinux role - label that applies to the container. - type: string - type: - description: Type is a SELinux type - label that applies to the container. - type: string - user: - description: User is a SELinux user - label that applies to the container. - type: string - type: object - seccompProfile: - description: The seccomp options to use - by this container. If seccomp options - are provided at both the pod & container - level, the container options override - the pod options. - properties: - localhostProfile: - description: localhostProfile indicates - a profile defined in a file on the - node should be used. The profile - must be preconfigured on the node - to work. Must be a descending path, - relative to the kubelet's configured - seccomp profile location. Must only - be set if type is "Localhost". - type: string - type: - description: "type indicates which - kind of seccomp profile will be - applied. Valid options are: \n Localhost - - a profile defined in a file on - the node should be used. RuntimeDefault - - the container runtime default - profile should be used. Unconfined - - no profile should be applied." - type: string - required: - - type - type: object - windowsOptions: - description: The Windows specific settings - applied to all containers. If unspecified, - the options from the PodSecurityContext - will be used. If set in both SecurityContext - and PodSecurityContext, the value specified - in SecurityContext takes precedence. - properties: - gmsaCredentialSpec: - description: GMSACredentialSpec is - where the GMSA admission webhook - (https://github.com/kubernetes-sigs/windows-gmsa) - inlines the contents of the GMSA - credential spec named by the GMSACredentialSpecName - field. - type: string - gmsaCredentialSpecName: - description: GMSACredentialSpecName - is the name of the GMSA credential - spec to use. - type: string - hostProcess: - description: HostProcess determines - if a container should be run as - a 'Host Process' container. This - field is alpha-level and will only - be honored by components that enable - the WindowsHostProcessContainers - feature flag. Setting this field - without the feature flag will result - in errors when validating the Pod. - All of a Pod's containers must have - the same effective HostProcess value - (it is not allowed to have a mix - of HostProcess containers and non-HostProcess - containers). In addition, if HostProcess - is true then HostNetwork must also - be set to true. - type: boolean - runAsUserName: - description: The UserName in Windows - to run the entrypoint of the container - process. Defaults to the user specified - in image metadata if unspecified. - May also be set in PodSecurityContext. - If set in both SecurityContext and - PodSecurityContext, the value specified - in SecurityContext takes precedence. - type: string - type: object - type: object - startupProbe: - description: 'StartupProbe indicates that - the Pod has successfully initialized. If - specified, no other probes are executed - until this completes successfully. If this - probe fails, the Pod will be restarted, - just as if the livenessProbe failed. This - can be used to provide different probe parameters - at the beginning of a Pod''s lifecycle, - when it might take a long time to load data - or warm a cache, than during steady-state - operation. This cannot be updated. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' - properties: - exec: - description: One and only one of the following - should be specified. Exec specifies - the action to take. - properties: - command: - description: Command is the command - line to execute inside the container, - the working directory for the command is - root ('/') in the container's filesystem. - The command is simply exec'd, it - is not run inside a shell, so traditional - shell instructions ('|', etc) won't - work. To use a shell, you need to - explicitly call out to that shell. - Exit status of 0 is treated as live/healthy - and non-zero is unhealthy. - items: - type: string - type: array - type: object - failureThreshold: - description: Minimum consecutive failures - for the probe to be considered failed - after having succeeded. Defaults to - 3. Minimum value is 1. - format: int32 - type: integer - httpGet: - description: HTTPGet specifies the http - request to perform. - properties: - host: - description: Host name to connect - to, defaults to the pod IP. You - probably want to set "Host" in httpHeaders - instead. - type: string - httpHeaders: - description: Custom headers to set - in the request. HTTP allows repeated - headers. - items: - description: HTTPHeader describes - a custom header to be used in - HTTP probes - properties: - name: - description: The header field - name - type: string - value: - description: The header field - value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the - HTTP server. - type: string - port: - anyOf: - - type: integer - - type: string - description: Name or number of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: Scheme to use for connecting - to the host. Defaults to HTTP. - type: string - required: - - port - type: object - initialDelaySeconds: - description: 'Number of seconds after - the container has started before liveness - probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' - format: int32 - type: integer - periodSeconds: - description: How often (in seconds) to - perform the probe. Default to 10 seconds. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: Minimum consecutive successes - for the probe to be considered successful - after having failed. Defaults to 1. - Must be 1 for liveness and startup. - Minimum value is 1. - format: int32 - type: integer - tcpSocket: - description: 'TCPSocket specifies an action - involving a TCP port. TCP hooks not - yet supported TODO: implement a realistic - TCP lifecycle hook' - properties: - host: - description: 'Optional: Host name - to connect to, defaults to the pod - IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: Number or name of the - port to access on the container. - Number must be in the range 1 to - 65535. Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - description: Optional duration in seconds - the pod needs to terminate gracefully - upon probe failure. The grace period - is the duration in seconds after the - processes running in the pod are sent - a termination signal and the time when - the processes are forcibly halted with - a kill signal. Set this value longer - than the expected cleanup time for your - process. If this value is nil, the pod's - terminationGracePeriodSeconds will be - used. Otherwise, this value overrides - the value provided by the pod spec. - Value must be non-negative integer. - The value zero indicates stop immediately - via the kill signal (no opportunity - to shut down). This is a beta field - and requires enabling ProbeTerminationGracePeriod - feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds - is used if unset. - format: int64 - type: integer - timeoutSeconds: - description: 'Number of seconds after - which the probe times out. Defaults - to 1 second. Minimum value is 1. More - info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' - format: int32 - type: integer - type: object - stdin: - description: Whether this container should - allocate a buffer for stdin in the container - runtime. If this is not set, reads from - stdin in the container will always result - in EOF. Default is false. - type: boolean - stdinOnce: - description: Whether the container runtime - should close the stdin channel after it - has been opened by a single attach. When - stdin is true the stdin stream will remain - open across multiple attach sessions. If - stdinOnce is set to true, stdin is opened - on container start, is empty until the first - client attaches to stdin, and then remains - open and accepts data until the client disconnects, - at which time stdin is closed and remains - closed until the container is restarted. - If this flag is false, a container processes - that reads from stdin will never receive - an EOF. Default is false - type: boolean - terminationMessagePath: - description: 'Optional: Path at which the - file to which the container''s termination - message will be written is mounted into - the container''s filesystem. Message written - is intended to be brief final status, such - as an assertion failure message. Will be - truncated by the node if greater than 4096 - bytes. The total message length across all - containers will be limited to 12kb. Defaults - to /dev/termination-log. Cannot be updated.' - type: string - terminationMessagePolicy: - description: Indicate how the termination - message should be populated. File will use - the contents of terminationMessagePath to - populate the container status message on - both success and failure. FallbackToLogsOnError - will use the last chunk of container log - output if the termination message file is - empty and the container exited with an error. - The log output is limited to 2048 bytes - or 80 lines, whichever is smaller. Defaults - to File. Cannot be updated. - type: string - tty: - description: Whether this container should - allocate a TTY for itself, also requires - 'stdin' to be true. Default is false. - type: boolean - volumeDevices: - description: volumeDevices is the list of - block devices to be used by the container. - items: - description: volumeDevice describes a mapping - of a raw block device within a container. - properties: - devicePath: - description: devicePath is the path - inside of the container that the device - will be mapped to. - type: string - name: - description: name must match the name - of a persistentVolumeClaim in the - pod - type: string - required: - - devicePath - - name - type: object - type: array - volumeMounts: - description: Pod volumes to mount into the - container's filesystem. Cannot be updated. - items: - description: VolumeMount describes a mounting - of a Volume within a container. - properties: - mountPath: - description: Path within the container - at which the volume should be mounted. Must - not contain ':'. - type: string - mountPropagation: - description: mountPropagation determines - how mounts are propagated from the - host to container and the other way - around. When not set, MountPropagationNone - is used. This field is beta in 1.10. - type: string - name: - description: This must match the Name - of a Volume. - type: string - readOnly: - description: Mounted read-only if true, - read-write otherwise (false or unspecified). - Defaults to false. - type: boolean - subPath: - description: Path within the volume - from which the container's volume - should be mounted. Defaults to "" - (volume's root). - type: string - subPathExpr: - description: Expanded path within the - volume from which the container's - volume should be mounted. Behaves - similarly to SubPath but environment - variable references $(VAR_NAME) are - expanded using the container's environment. - Defaults to "" (volume's root). SubPathExpr - and SubPath are mutually exclusive. - type: string - required: - - mountPath - - name - type: object - type: array - workingDir: - description: Container's working directory. - If not specified, the container runtime's - default will be used, which might be configured - in the container image. Cannot be updated. - type: string - required: - - name - type: object - type: array - timeout: - description: Timeout defines the maximum amount - of time Velero should wait for the initContainers - to complete. - type: string - type: object - type: object - type: array - required: - - name - type: object - type: array - type: object - includeClusterResources: - description: IncludeClusterResources specifies whether cluster-scoped - resources should be included for consideration in the restore. If - null, defaults to true. - nullable: true - type: boolean - includedNamespaces: - description: IncludedNamespaces is a slice of namespace names to include - objects from. If empty, all namespaces are included. - items: - type: string - nullable: true - type: array - includedResources: - description: IncludedResources is a slice of resource names to include - in the restore. If empty, all resources in the backup are included. - items: - type: string - nullable: true - type: array - labelSelector: - description: LabelSelector is a metav1.LabelSelector to filter with - when restoring individual objects from the backup. If empty or nil, - all objects are included. Optional. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. - The requirements are ANDed. - items: - description: A label selector requirement is a selector that contains - values, a key, and an operator that relates the key and values. - properties: - key: - description: key is the label key that the selector applies - to. - type: string - operator: - description: operator represents a key's relationship to a - set of values. Valid operators are In, NotIn, Exists and - DoesNotExist. - type: string - values: - description: values is an array of string values. If the operator - is In or NotIn, the values array must be non-empty. If the - operator is Exists or DoesNotExist, the values array must - be empty. This array is replaced during a strategic merge - patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: matchLabels is a map of {key,value} pairs. A single - {key,value} in the matchLabels map is equivalent to an element - of matchExpressions, whose key field is "key", the operator is - "In", and the values array contains only "value". The requirements - are ANDed. - type: object - type: object - namespaceMapping: - additionalProperties: - type: string - description: NamespaceMapping is a map of source namespace names to - target namespace names to restore into. Any source namespaces not - included in the map will be restored into namespaces of the same name. - type: object - preserveNodePorts: - description: PreserveNodePorts specifies whether to restore old nodePorts - from backup. - nullable: true - type: boolean - restorePVs: - description: RestorePVs specifies whether to restore all included PVs - from snapshot (via the cloudprovider). - nullable: true - type: boolean - scheduleName: - description: ScheduleName is the unique name of the Velero schedule - to restore from. If specified, and BackupName is empty, Velero will - restore from the most recent successful backup created from this schedule. - type: string - required: - - backupName - type: object - status: - description: RestoreStatus captures the current status of a Velero restore - properties: - completionTimestamp: - description: CompletionTimestamp records the time the restore operation - was completed. Completion time is recorded even on failed restore. - The server's time is used for StartTimestamps - format: date-time - nullable: true - type: string - errors: - description: Errors is a count of all error messages that were generated - during execution of the restore. The actual errors are stored in object - storage. - type: integer - failureReason: - description: FailureReason is an error that caused the entire restore - to fail. - type: string - phase: - description: Phase is the current state of the Restore - enum: - - New - - FailedValidation - - InProgress - - Completed - - PartiallyFailed - - Failed - type: string - progress: - description: Progress contains information about the restore's execution - progress. Note that this information is best-effort only -- if Velero - fails to update it during a restore for any reason, it may be inaccurate/stale. - nullable: true - properties: - itemsRestored: - description: ItemsRestored is the number of items that have actually - been restored so far - type: integer - totalItems: - description: TotalItems is the total number of items to be restored. - This number may change throughout the execution of the restore - due to plugins that return additional related items to restore - type: integer - type: object - startTimestamp: - description: StartTimestamp records the time the restore operation was - started. The server's time is used for StartTimestamps - format: date-time - nullable: true - type: string - validationErrors: - description: ValidationErrors is a slice of all validation errors (if - applicable) - items: - type: string - nullable: true - type: array - warnings: - description: Warnings is a count of all warning messages that were generated - during execution of the restore. The actual warnings are stored in - object storage. - type: integer - type: object - type: object - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crd/v1beta1/bases/velero.io_schedules.yaml b/config/crd/v1beta1/bases/velero.io_schedules.yaml deleted file mode 100644 index ffa190915..000000000 --- a/config/crd/v1beta1/bases/velero.io_schedules.yaml +++ /dev/null @@ -1,401 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - creationTimestamp: null - name: schedules.velero.io -spec: - group: velero.io - names: - kind: Schedule - listKind: ScheduleList - plural: schedules - singular: schedule - preserveUnknownFields: false - scope: Namespaced - validation: - openAPIV3Schema: - description: Schedule is a Velero resource that represents a pre-scheduled or - periodic Backup that should be run. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: ScheduleSpec defines the specification for a Velero schedule - properties: - schedule: - description: Schedule is a Cron expression defining when to run the - Backup. - type: string - template: - description: Template is the definition of the Backup to be run on the - provided schedule - properties: - defaultVolumesToRestic: - description: DefaultVolumesToRestic specifies whether restic should - be used to take a backup of all pod volumes by default. - type: boolean - excludedNamespaces: - description: ExcludedNamespaces contains a list of namespaces that - are not included in the backup. - items: - type: string - nullable: true - type: array - excludedResources: - description: ExcludedResources is a slice of resource names that - are not included in the backup. - items: - type: string - nullable: true - type: array - hooks: - description: Hooks represent custom behaviors that should be executed - at different phases of the backup. - properties: - resources: - description: Resources are hooks that should be executed when - backing up individual instances of a resource. - items: - description: BackupResourceHookSpec defines one or more BackupResourceHooks - that should be executed based on the rules defined for namespaces, - resources, and label selector. - properties: - excludedNamespaces: - description: ExcludedNamespaces specifies the namespaces - to which this hook spec does not apply. - items: - type: string - nullable: true - type: array - excludedResources: - description: ExcludedResources specifies the resources - to which this hook spec does not apply. - items: - type: string - nullable: true - type: array - includedNamespaces: - description: IncludedNamespaces specifies the namespaces - to which this hook spec applies. If empty, it applies - to all namespaces. - items: - type: string - nullable: true - type: array - includedResources: - description: IncludedResources specifies the resources - to which this hook spec applies. If empty, it applies - to all resources. - items: - type: string - nullable: true - type: array - labelSelector: - description: LabelSelector, if specified, filters the - resources to which this hook spec applies. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label selector - requirements. The requirements are ANDed. - items: - description: A label selector requirement is a selector - that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the selector - applies to. - type: string - operator: - description: operator represents a key's relationship - to a set of values. Valid operators are In, - NotIn, Exists and DoesNotExist. - type: string - values: - description: values is an array of string values. - If the operator is In or NotIn, the values - array must be non-empty. If the operator is - Exists or DoesNotExist, the values array must - be empty. This array is replaced during a - strategic merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: matchLabels is a map of {key,value} pairs. - A single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field - is "key", the operator is "In", and the values array - contains only "value". The requirements are ANDed. - type: object - type: object - name: - description: Name is the name of this hook. - type: string - post: - description: PostHooks is a list of BackupResourceHooks - to execute after storing the item in the backup. These - are executed after all "additional items" from item - actions are processed. - items: - description: BackupResourceHook defines a hook for a - resource. - properties: - exec: - description: Exec defines an exec hook. - properties: - command: - description: Command is the command and arguments - to execute. - items: - type: string - minItems: 1 - type: array - container: - description: Container is the container in the - pod where the command should be executed. - If not specified, the pod's first container - is used. - type: string - onError: - description: OnError specifies how Velero should - behave if it encounters an error executing - this hook. - enum: - - Continue - - Fail - type: string - timeout: - description: Timeout defines the maximum amount - of time Velero should wait for the hook to - complete before considering the execution - a failure. - type: string - required: - - command - type: object - required: - - exec - type: object - type: array - pre: - description: PreHooks is a list of BackupResourceHooks - to execute prior to storing the item in the backup. - These are executed before any "additional items" from - item actions are processed. - items: - description: BackupResourceHook defines a hook for a - resource. - properties: - exec: - description: Exec defines an exec hook. - properties: - command: - description: Command is the command and arguments - to execute. - items: - type: string - minItems: 1 - type: array - container: - description: Container is the container in the - pod where the command should be executed. - If not specified, the pod's first container - is used. - type: string - onError: - description: OnError specifies how Velero should - behave if it encounters an error executing - this hook. - enum: - - Continue - - Fail - type: string - timeout: - description: Timeout defines the maximum amount - of time Velero should wait for the hook to - complete before considering the execution - a failure. - type: string - required: - - command - type: object - required: - - exec - type: object - type: array - required: - - name - type: object - nullable: true - type: array - type: object - includeClusterResources: - description: IncludeClusterResources specifies whether cluster-scoped - resources should be included for consideration in the backup. - nullable: true - type: boolean - includedNamespaces: - description: IncludedNamespaces is a slice of namespace names to - include objects from. If empty, all namespaces are included. - items: - type: string - nullable: true - type: array - includedResources: - description: IncludedResources is a slice of resource names to include - in the backup. If empty, all resources are included. - items: - type: string - nullable: true - type: array - labelSelector: - description: LabelSelector is a metav1.LabelSelector to filter with - when adding individual objects to the backup. If empty or nil, - all objects are included. Optional. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. - The requirements are ANDed. - items: - description: A label selector requirement is a selector that - contains values, a key, and an operator that relates the - key and values. - properties: - key: - description: key is the label key that the selector applies - to. - type: string - operator: - description: operator represents a key's relationship - to a set of values. Valid operators are In, NotIn, Exists - and DoesNotExist. - type: string - values: - description: values is an array of string values. If the - operator is In or NotIn, the values array must be non-empty. - If the operator is Exists or DoesNotExist, the values - array must be empty. This array is replaced during a - strategic merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: matchLabels is a map of {key,value} pairs. A single - {key,value} in the matchLabels map is equivalent to an element - of matchExpressions, whose key field is "key", the operator - is "In", and the values array contains only "value". The requirements - are ANDed. - type: object - type: object - metadata: - properties: - labels: - additionalProperties: - type: string - type: object - type: object - orderedResources: - additionalProperties: - type: string - description: OrderedResources specifies the backup order of resources - of specific Kind. The map key is the Kind name and value is a - list of resource names separated by commas. Each resource name - has format "namespace/resourcename". For cluster resources, simply - use "resourcename". - nullable: true - type: object - snapshotVolumes: - description: SnapshotVolumes specifies whether to take cloud snapshots - of any PV's referenced in the set of objects included in the Backup. - nullable: true - type: boolean - storageLocation: - description: StorageLocation is a string containing the name of - a BackupStorageLocation where the backup should be stored. - type: string - ttl: - description: TTL is a time.Duration-parseable string describing - how long the Backup should be retained for. - type: string - volumeSnapshotLocations: - description: VolumeSnapshotLocations is a list containing names - of VolumeSnapshotLocations associated with this backup. - items: - type: string - type: array - type: object - useOwnerReferencesInBackup: - description: UseOwnerReferencesBackup specifies whether to use OwnerReferences - on backups created by this Schedule. - nullable: true - type: boolean - required: - - schedule - - template - type: object - status: - description: ScheduleStatus captures the current state of a Velero schedule - properties: - lastBackup: - description: LastBackup is the last time a Backup was run for this Schedule - schedule - format: date-time - nullable: true - type: string - phase: - description: Phase is the current phase of the Schedule - enum: - - New - - Enabled - - FailedValidation - type: string - validationErrors: - description: ValidationErrors is a slice of all validation errors (if - applicable) - items: - type: string - type: array - type: object - type: object - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crd/v1beta1/bases/velero.io_serverstatusrequests.yaml b/config/crd/v1beta1/bases/velero.io_serverstatusrequests.yaml deleted file mode 100644 index 379cc09f9..000000000 --- a/config/crd/v1beta1/bases/velero.io_serverstatusrequests.yaml +++ /dev/null @@ -1,89 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - creationTimestamp: null - name: serverstatusrequests.velero.io -spec: - group: velero.io - names: - kind: ServerStatusRequest - listKind: ServerStatusRequestList - plural: serverstatusrequests - shortNames: - - ssr - singular: serverstatusrequest - preserveUnknownFields: false - scope: Namespaced - subresources: - status: {} - validation: - openAPIV3Schema: - description: ServerStatusRequest is a request to access current status information - about the Velero server. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: ServerStatusRequestSpec is the specification for a ServerStatusRequest. - type: object - status: - description: ServerStatusRequestStatus is the current status of a ServerStatusRequest. - properties: - phase: - description: Phase is the current lifecycle phase of the ServerStatusRequest. - enum: - - New - - Processed - type: string - plugins: - description: Plugins list information about the plugins running on the - Velero server - items: - description: PluginInfo contains attributes of a Velero plugin - properties: - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - nullable: true - type: array - processedTimestamp: - description: ProcessedTimestamp is when the ServerStatusRequest was - processed by the ServerStatusRequestController. - format: date-time - nullable: true - type: string - serverVersion: - description: ServerVersion is the Velero server version. - type: string - type: object - type: object - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crd/v1beta1/bases/velero.io_volumesnapshotlocations.yaml b/config/crd/v1beta1/bases/velero.io_volumesnapshotlocations.yaml deleted file mode 100644 index 1f281fa61..000000000 --- a/config/crd/v1beta1/bases/velero.io_volumesnapshotlocations.yaml +++ /dev/null @@ -1,74 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - creationTimestamp: null - name: volumesnapshotlocations.velero.io -spec: - group: velero.io - names: - kind: VolumeSnapshotLocation - listKind: VolumeSnapshotLocationList - plural: volumesnapshotlocations - singular: volumesnapshotlocation - preserveUnknownFields: false - scope: Namespaced - validation: - openAPIV3Schema: - description: VolumeSnapshotLocation is a location where Velero stores volume - snapshots. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: VolumeSnapshotLocationSpec defines the specification for a - Velero VolumeSnapshotLocation. - properties: - config: - additionalProperties: - type: string - description: Config is for provider-specific configuration fields. - type: object - provider: - description: Provider is the provider of the volume storage. - type: string - required: - - provider - type: object - status: - description: VolumeSnapshotLocationStatus describes the current status of - a Velero VolumeSnapshotLocation. - properties: - phase: - description: VolumeSnapshotLocationPhase is the lifecycle phase of a - Velero VolumeSnapshotLocation. - enum: - - Available - - Unavailable - type: string - type: object - type: object - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crd/v1beta1/crds/crds.go b/config/crd/v1beta1/crds/crds.go deleted file mode 100644 index dcbb0138f..000000000 --- a/config/crd/v1beta1/crds/crds.go +++ /dev/null @@ -1,69 +0,0 @@ -/* -Copyright the Velero contributors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by crds_generate.go; DO NOT EDIT. - -package crds - -import ( - "bytes" - "compress/gzip" - "io/ioutil" - - apiextinstall "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install" - apiextv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" - "k8s.io/client-go/kubernetes/scheme" -) - -var rawCRDs = [][]byte{ - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec~\xe2\xc6\xd2\x0f\x85(5\x13\xd5L\xf4\xcdp\xb9+\x05\xd3\xf1\xeb\x19@\xa1Ѡ>\xe0/\xf2I\xaag\xf9\x91\xa3H\xcd5dL\x18<\x030\x89*\xf0\x1a>;\f\n\x96`z\x06p`\x82\xa7\xb4:\x8f\x93*P\xbe\xbf\xdb<~\u007f\x9f\xec1g\xfe#@\x8a&Ѽ\xa0~\x019\xe0\x06\x18<\xd2\xd2@\a\x16\x80\xdd3\v\x1a\t\x13i\r\xd8=B\xc2\n[j\x04\x95\xc1\x8f\xe5\x16\xb5D\x8b&\x00\x06HDi,j0\x96Y\x04f\x81A\xa1\xb8\xb4\xc0%X\x9e#|\xf3\xfen\x03j\xfb+&\xd6\x00\x93)0cT\u0099\xc5\x14\x0eJ\x949\xfa\xb1߮\x03\xccB\xab\x02\xb5\xe5\x91ή5\x04\xab\xfa\xd6Yօ[\xb7\xef\x03\xa9\x13%\xf4\xe8\a\x81\xc0\x14\f\xd1ĭ\xc3\uee69\x97I\xf4k\x80\x05ׅɀ\xf4\x1a\xee\x1dS\xb4\x01\xb3W\xa5H\x9d\xfc\x1dP;2%j'\xf9\xbf*\xc8\x06\xac\xa2)\x05\xb3\x18X\x1f\x1b\x97\x16\xb5d\xc2q\xac\xc4K\"DΎ\xa0\xd1\xcd\x01\xa5l@\xa3.f\r\xff\xaf4\x02\x97\x99\xba\x86\xbd\xb5\x85\xb9\xbe\xba\xdaq\x1b\xb7R\xa2\xf2\xbc\x94\xdc\x1e\xafhC\xf0mi\x956W)\x1eP\\\x19\xbe[1\x9d\xec\xb9\xc5\xc41\xef\x8a\x15|E\x88K\xdaI\xeb<\xfd\x9f\xc8ts\xd1\xc0\xd4\x1e\x9d\x8c\x19\xab\xb9\xdcU\x9fI\xd2G\xe9\xeeD\xdeK\x93\x1f\xe6\xf1\xaf\xc9\xeb>9\xaa\xfc|{\xffД4n\xda4'j7\x84\xaf&\xbc#\x14\x97\x19jϸL\xab\x9c \xa2L\xbd\xac\x91\x98\n\x8e\xb2MtSnsn\x1d\xa7\xffY\xa2q\xe2\xac\xd6pC\n\x05\xb6\be\x91:)\\\xc3F\xc2\r\xcbQ\xdc0\x83\xbf;\xd9\x1d\x85\xcdʑt\x9e\xf0M=\xd8\xee\xe8\xa9U}\x8e\x1ak\x90C~\xc3\xdf\x17\x98\xb46\x86\x1b\xc33\x9e\x90\xf8C\xa6t\xad\x0f\xbcJZ7\x00\x0emJ?Q\xc6Ja\x1fi#\x9b\a\xf53\x1a˓v\x9f\x0e:\x1f\x06\x87Dt\xd0\xc0\xf3\x1e\xed\x1e\xb5\x93\x15\xfa\x81\xb6]\a\"\x10\x03\r\xa6\xb4\xe7\xd8\x13\x02\vX\xd3\xe6\x15\x02\n\x15\xf5\x8b\x81\xed1\"\xba\xee\xc0\xf1\xd4\xdc*%\x90\xb5u\x00\xbe$\xa2L1\xad\xf4\xad\x99\\\xd5m\xaf;\x19*ƥ\xdb\x19\xce48\xc4d\xfd+\xa9Z\xa6\xb1\xb70'\x9d\\zh\xa4E\xf78\xc0\x10\u05f8ż\x87Ո(\x05إ\x10l+\xf0\x1a\xac.\xbbS\xfbqLkv\x1c\xa4D4\xd4\xcb\bQ\xf5\x0e\xbaA\xf0\x84lH\xa5\x01\x88\x16\u007f\"2\xec\x95z\x9a^\xfa\xff\xb9\x1e\xb5\x06\x83\x84\xfc\x1b\xd8\xe2\x9e\x1d\xb8\xd2a\xb1\xc1\x8cl\x11\xf0\x05\x93\xd2b_\xb6\x99\x85\x94g\x19j\a\xa5\xd83\x83ƛ\xad1\x12\x8cmO\xd7\xf4\x18\xdbz\xf8\xd7,c\x1a\xfdz\xc7Pv\x9bT\x122}\xea\xfa\xe6\\\f\x99\xf2\x03OK&\x80Kc\x99L\xfc:X\x85Sw\x1d0\xce\xce\x1e\xb6^\xadE\x9c\x1d\xed[*NI\x04\xa5!wڼ\xdf\xd5\f\u0087\xd1\xe5n\x99\xd35ʋ\xa1.\x05\x9a0QJ\x9a\xb3\xdeח#\x80+.x\xdb/\xd8\x16\x05\x18\x14\x98X\xa5\x87\xc80\xcdT\xdf\xe6u\xd4\b\xed\x06\xb4U\xad\u007f\xdd\x12\x9b\x8aJ\x8d\xc2\x04x\xde\xf3d\xefͲ\x93\x17\x82\x02\xa9BC\xfb\x97\x15\x858\x0e/\x0e\xa69\xed\xdb\xc4\x16\xae\xdb\xe4f\xee\xc2\xeao\xeb\xba\xcd깺\xcdh\xbc6-+\xd6\xffuH\x19\x15\xf7ɂ\xb9\xe9\r|K\xc1tD\xe4ε\xded\x80ya\x8f\x97\xc0m\xfc\xea<\tFq\xe1(y\xaa\xb9\xfft\x8c8U\xa67\xddqo(ӿ\x91\v\xd5\xd4\u007f\x1a&\x90\xb2\xbf\x0f\xba~!\x03>5\xc7\\\x02\xcf*\x06\xa4\x97\x90qaQw81\xb5\\5͉\xdfJ\x82yK\xe5Z\xcel\xb2\xbf}qޑ\xa9\xd39\x8b\xa8\xd1\x1d\xea}\xca\xe8U\xb7\x8d\xe9$T\xa0`\x90k\xcc}\x88\xf9@\x14\xac\xbf\x90\xe7\xf3\xfe\xf3\aLlj\x02K$\xac\xb7\x84\xf7\x1d4\x9b\xd3\x06\x17y\xd9\x02\x82\x93RE\x17>]p\t\f\x9e\xf0\xe8\xbd\v&\xc11\x84\xb9i\\\xe7Y\x88\x1a)gA\x02\xf5\x84G\x02\x12\xd2\x103c\x97\xb1\u07b7'<\xcew\xea\x90\xcda\xc3MH\xab8\xfa\xb9\x0fD\x00\x8aa\x97\x92\f(\x89\x145\xccܢ`\xa9\x8a\x88-R\xfb\xe4\xe5Ulj$݈\x91\x17\xc63\xc5I\xfb\x9e\x17\x8b\x16\xe8T'\x18\xa4=\x11\x93H\x8fL\xf0\xb4\x9a\xc6\xcb\xf7F^\xc2ge7r\xccYm\xb7\xdb\x17nB\xee\xee\x83B\xf3YY\xfa\xf2\xe6D\xf4(\x9fLB?\x8c\xb6\x90\xf4jح\xbf\x99\x8b\x9a\x15b\xdf6>ªX\xc2\rl\xa4\x8b!<\xad|6\xd1O6\xa5\xed\xdb-/\r%\x9b\xa4\x92+2v\xeb\xa1y\x02\x89\x17\nr\x93\v}\xb4\xaa)\xfdt\x8b >8\xbb\xe0G\xfb̨`\t\xa6\x90\x96DD\xca\xec1\x8b;\x9e@\x8ez7n\b\x9a\xadp:{\xc9\xf4\x8bt\xa9o'\xc9\xd3\x12\xd3\x1c[P\xc6\xe9\x1c\x1a+\xb77g\xfbD\xd6\xcet\x1cL\xe5\x8dw\x9c[\a\x19I\xf2\x1bf\xa8\xc9Ҕ\xceY\x98\xb8[\xac\xbd\x17S\xbeo\xb7=J\xde\xc6\xe5\x8c\x12t\xffv\xa6\x8a\x84\xf6?P0\xaegw\xe8{:0\x11\xd8\x1a\x19\xb2B\xcdI\x1c|n\xc0q\xf3\xc0D7!<\xb0,\xe5\xb4\x06\no\x86U\xd6\xf34.\xe1y\xaf\x8c\xb7\x8a\x19G\x91\x02\x9f\xf2\xb4\\;\u007f\xc2\xe3\xf9eo\x8f\x9fo\xe4\xb97Ͻ\x1d\x1bm\xf9\f`%\xc5\x11\xcei\xe4\xf9\xeb]\x97ER\xb7\xa0\x13\x9d\x9e-sf]4\x17\xad\xb8\x1bV\x9d\xc18Wt\x1c\xdb\x052W(c\x17\"q\xa7\x8c\xf5\x19\xba\x96\xf38\x90\x1b\x9a\x8eiBN\bX\xe6Ͻ\x94\x8e'\x1cN\x91uR\x95\x8eK\x06\a\x13\x9c=\x88i\x00Ʉ\x80\xf3z\x8fz\xfdx\xee\x8f=h\n\x96\x90[0\x01щB\xa1U\x82\xc6L\x89ì\xe6\x9dI\xb8U\xc96\xe6\x83\n\u007f\x880\x95܋m\xa9\xdb\xe8Hs\x92\x9b}\xfb\xd2\xc8\x01\xba\xad\xed\xfe\x9f\x16\xb3\xd30\x02:\x82\xces&g\x8dE\x0f\xb9\x1b?.n\x85\x00ƻ\xeczW\xd26^\xea\xe9\x05\xa1\xf9\xb2\x066\xe7rC\xc0\xe1ݛ\x9ac\x88*\x11Ow\xa9o\xe2Ț\xcc\xd5\a\xbf7\v\xd5O\xb9\x0f\xb5\xe7=jlq\xaa\x9f\x19&wN*\xdb\bϗ\x11\xda\xe3qa \xe3\xda\xd8&\x92\x86\x0e\xb6\xde>F\x91\xb7Z\xbf\"D\xf9ɏk$\x80\xf6\xea9\x9e\x14\x8e\x1c\xce\r5:\x06A\xe0\x19p\v(\x13UJJb\xb8MJ\x13x\x92ze:kd}[\xb2\xb1]CY\xe6K\x16\xbe\"\xe9\xe1r\"\xd7\xd1\xec\xfc\x91\xf1\xa9LUl'\xb1\xc9\xf2\x1cU9a\xd4\xea\xd6bӃ\x1f\xd7:\xe2\xcd\xd9\v\xcf\xcb\x1cX\ue23d\x88\xa2\xce2\xf3\x1c\xdb\xfc\x85g\xc6-iw\a\x95T\xbdUnS\x14\x02\xed\xb2h`\x8b\x99Ҵ\x17\rO\xb12\x99\x81\xe7J\x02\x83\x8cqQ\xeaE\x1a\xed\x04\x8a.\xf7\xec\xc3&\u007f\x1b\xa7}ɴ+Z\xfel\x9ar\x91\xab6\xa5U\v\xbd\xd4Q\xbb\xd3\xf8\x96.R\xa1\xb9\x93\x19\xf5\xb6^R\x10%&\x8f_ݤ\x06m\xbe\xbaI\xbd\xf6\xd5Mj\xb5\xafn\xd2W7i\xb2}u\x93\xbe\xbaI\u007fU7i\x1a\x93\x15\xe5\xad\x06\u007f\x9a\x99}\xf6\bu\x1c\xb1Q\xc8\xe1T\xff\xc6\xd7^/\xab\xcb\xdb\f\x8f\x19\xa8\xbb\f%\xdd+*8\xef\xf3\xb9>\xfa\xaf\xd5|U\xa8\xe7\x84?\n\xaf/,\x9d,\xdd[P\x887T\x9b9_^2WTҮI\xac\n;bQ\xa2\x8aS\xf4V\x1f+ٝ\x9b٬``B4kS\x98\xae\x89\xf2\x85\xea\x15gK?f\n>\xa6\xcb6\xc7)\xd4q\xed\xdb$ҭ\x12\xc3/L\xa1ɺ\x8c\xf1j\x8cp\x92\x81\x96\x1dޭۿX\x15j3\xe0\x99\xdb}o\x01T4\xe9B\x16\xb9k\x16GF\x99\n\xd7\a\xba\x94\x03\xa5Arq9X\x17Sݬh\x92\x13~*|Pt\xd2~\x9br\xed\x97\xd4n\xbc\xbab\xa3]\x931\xa8dO;\xecXZB\xba\xbc&\xa3]s1bd\x16Tb\x9c\\i1\x1foMVU\xbc\xa2\x96\"\xd6IL\x19܉\n\x8a\x05>\xc7|\xb5īj$\xe80o\x02\xeb\x93*#\x1aU\x0f\x13 \x97\xd5C, \xc9\\\xed\xc3\xc9\x15\x0f\xdd*\x83\x89E\xcc\xd59\x8c\xd70L\x00\x1d\xacnXR\xb90\x01\xb3\xaaix\xc3z\x85\x99*\x85\xb7\xa9$\xfc\xad\xbe\xe7X\xcd\xc1L\xa5\xc1\x8cg:\x85\xd5L-\xc1\xf2\n\x82\x19\xfa\xbc\xb2Z\xa0\xaa\a\x18\x9c\xf3\xd4\x1a\x81v\x15\xc0 ȅ\x95\x01#g\xff\x83 \x17\xd4\x03̜\xf8\x0f\x82\x9d4\x8c\x13\x121\xfa\xd3\xd0%4\x98\xb1L\xe2\xf7\x97\x9c\xd7,E\xe9\x14\xf5\x84G\xbc\f\xb9\t\xc4\xda\x19\xa1\xcel\x9d\x12\xeax]\xcd\xf5jz\xd8}\xb6\xaa\xaa\xf87\x81\x1f\xb9L\xbd$81nXt\xba\x86I\xc5\x15\x95KQ\xfb\\C ;\x1e\xbd\xc1\x82i\xba\x95\xbb=\xfa\x18߬\xe1\x96%\xfbvG\xd83㢼|\xa0\xaa\xf4\xbc\n\x80\xae\xe2\x18\xf7\xe5|\r\xf0QUqe\xf3*\x8c\xe1y!\x8eP\x1a\x84\xf3\xf6\x90\xd3\xfd\xfb\x01~\x1b\xc9\n\xb3W\xf1\xaeᤋ\u007f\xdf\xee;\x10\x17Ǜ\x86\x89PeZ\xc1\x1ed\x17\x93G\xb8{$\xff\x84nq%\xf5\x1d\xb6\xe0\x85D\xbf\xbd{\xc5퇷\x8c\x93\x8dU\x9a\xed\xf0\x93J\x1aw\xc4\xc7\xd6\xdf\xeeۺ\xd1\x1b\xf4Q\xccF\xc5\x12\x1e\x16\xaf\x96\xb6\x87\x0e\x85=!A\x1cd\xbeN\x1c8\f\xfb\xaajt\x87Y+&\x17\xf1\xf0\xf0\xc9#ny\x8e\xeb\x0f\xa5\xcfA\xac\n\xa6\r:\xfa\xc5\x05\xf9A[\xf7\xe7^=\xf7\u0557\n+\xfd\xa1\x8b\xafFJ?S\xa2c1\xd6\xfe\x1aj\x14\xb0H\xa6iq|\x1c\x1e\xd3\b\xa3\x1aL\xf1;Xec\xa3z\vl\xdc\xc1w\x81\xaa/\xc6z\xabە\xc3~\xc5\xf0\xbde\xcbli\xe6n.S\xa7\xf8\x0eA8\xac(5]\x8e\xf4\x00\xbc0\x9e|y9df[oCL\xf1\xe4\xa6ߟ^\x01ЩG\x8a2\xc2\xd5=\xe4gf\xaa\xdc\xef\x801\xae\x81\xf9q\xe4\xc7:X\x98\x02\x1eP\x82\x92\x94\xea\xa5ˇ\xfe\x85\x8a\xee\x98~\xea\xa5\x01#d\x92\xcbB(\x96Ɲ\x1bmNx\xd9\xe0\x81\xf4\x91>\xa0\xbe0\xa3\x10\xe9\x96u\xa6\xf4\xd0\xf2\xbb\x92\xe5\r\xc35\xa4\xcc\xe2j\x00\xe0\x02=6 Rt\xee1s똺\xf8\xddAG&\xf1\x1a\xb8?3\xc9\xd1\x18\xb6\x8b\u05cd\x9f\x9d:ڡD\xb2w\xbd5\x87(\xa2ι\xb7\xaf\xde\xfad\x04Kl\xc9\x02\xf8\x98}i\xf4\xba\xe8\xef9\xa1v\x90qA\x1d\xc3c\aA?\x0f+\x12.-\xee\xb0\xed\xd9\xe3K\xc1\xf5\xbc.\xbf\xad\xba9\x8aP։vx\xfd\xf4\a\n\xbe\xe3N!:\xc6\xee\x98\u07b2\x1d\xae\x12%\x04ҡy\x17\xa3߇\xaf\x1e\xea\xc0\xc3\x1e\xbd\x05}l\xf6\x8c\x1eO\x10f\x0f%\xbe\xf3q\x19,\xaa\xe3`\xce~U\xba\u007fΘs\xa9\xb4\xf7\xbc)\xfa\x8bC\x17\xebs\xba\x91=\x89\xef\x9d\xebQ\x1d\xac6t\x15Fa\x1a\xb6\xf3C\ap+\xf8\x8c]\x13\xe5\xcf\xd40}\xac\xde\u007f\xe9u\xd8\xc8;\xadv.X\xe9\xfdt\x13\xb5R\xef\x97;\xa6-gB\x1c=\xf8\x91Y{\x9f?\xa0\xd3\v#\x86`\x88\x80\x01\xb3i\x1a\x86Nu4ĥ\xe75\x9d\x83mUi[\x1b\xaeް=\x8e\xc7\xf9\xd6\xf0YY\x8c)/ކ\xe8, \x1a\xbb\xc2,S\xda\xfa\xd0k\xb5\x02\x9e\x05\xc3҃\xea\xb43%m\xfdC\"\xc0m\x9d\x80\xa8e\x93|A\x8d̐lZz̄NLX\x928\xff\x04\xaf\x8ce\xa2\xa7\x03^\x9d\xa9%{\xed\xa4\v\xd3_z\xe6\xacG\xe4M\xb3wU\xa2]\xe6[\x1f\x93\x100O/:\x95\xf6ZO\fg#\xb6\x88\x12\x9e5\xb7\xd6\xe9\x9bf.\x1b\xac\xd30B\x80Q\x90\xb1\xc1\xeb\xee\xe3:\x8f~U\x96\x89\xcdX.\xa6\xed\x02V]\xe3rhp\u007fQʱaKK\x1f\\\x8e\xafK\xe2&\x8et\x8cK\xf6L\xee\x9c\x00iU\xee\xf6Q\x02G,\xc5p\xfe\xb9t\bA!ʝ\x13\xe9\x90\x13\xb6\xa5\x96\x8d\xe83d\x89\xd3\x06\xaa,y\x82\xb2\x18.\x9a\xf0\xcf\x1c\x85G\xaa\xae\xc25\xf6U\xa6U\xbe\n\xf4\xa7x\xfc2D\x86\x9a+\xe72QL\x13n\x92\x8e\x80%\xb6\x17\x05J`&\xe02[25\xc5\xc8\xf1@\xcd2m\x979a\xf7\xad\xae3\xfe\x17\xc1\xc5t\r\xf7!\xba\xedob\xadr\xb8\xe9>\x11\xe6\"S\x19\xdf\xc3\xf2\xb1\xb4g\xbdqn\x99F\n[\xfc\xf5\xd1\x1eĖC\xd5r\xa0ڨ\xff1\xbeS\xfdB\xd8\xed\xbc\x17\xf5\xd8\xe9\xdc9\x03t;\xb8\x86\x17}\x9fox֏/\x8aB\xf0\xc4a\xfb\xed\x17:\xdb;,\xf0*.&\x1d\n\xf2\x1e*\xdf\x00>`\xa11q\xbb\xb2\x8f\xfc\x9d@g\xef\rb\xdbS\xb9X\xecصCD\xf3\xdeZ̋\x81\xb9&b\xc4zИ\xe2c\xb1Co\x01\xf1!\xb6\b*\x14\xb1\x8c\x06\x85\x8b\x17R\xb9\x1a\xa7,\xa4\x1a4\xb6\x10S&N\x01e\xe5\x90)\xaab\xae7\\\xd53\xd3.О\xde=\u007f\v\x9d\x06\xa2\x900\xfem\xe3\x90F\x18\x12\xf1\xfb\x83\x02\x91\x01=\xde\xf9T?\xc3\xf8\xae\xfe\x8fȷ\n\xcf.\x1e|)$i˴\xb1\xb5\x03*\xe1K\x9d `I\x82Nv?w_`\x9a\xb2R\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xbcYKs\xe3\xb8\x11\xbe\xebWt\xcd\x1e|\x19Q3\xd9KJ\x97\x94F\xceVM\xe2\x19\xbbF^琤j!\xa2)!\x02\x01\x06\x0fi\x95T\xfe{\xaa\xf1\x10)\x92\x92\xec\xad\xdd\xe5\xc5&\xd9\x04\xbe\xfe\xfa\rM\xa6\xd3\xe9\x845\xe2\x05\x8d\x15Ź5\x02\u007fv\xa8\xe8\xce\x16\xbb?\xdaB\xe8\xd9\xfe\xe3\x1a\x1d\xfb8\xd9\t\xc5\xe7\xb0\xf4\xd6\xe9\xfa\x1bZ\xedM\x89\xf7X\t%\x9c\xd0jR\xa3c\x9c96\x9f\x000\xa5\xb4c\xf4\xd8\xd2-@\xa9\x953ZJ4\xd3\r\xaab\xe7\u05f8\xf6Br4a\x87\xbc\xff\xfeC\xf1}\xf1a\x02P\x1a\f\x9f?\x8b\x1a\xadcu3\a奜\x00(V\xe3\x1c֬\xdc\xf9\xc6:m\xd8\x06\xa5.\xe3^\xc5\x1e%\x1a]\b=\xb1\r\x96\x01\t\xe7\x01\x1e\x93OF(\x87f\xa9\xa5\xaf#\xac)\xfce\xf5\xf8\xf5\x89\xb9\xed\x1c\n\xeb\x98\xf3\xb6h\xb6\xccb\x80\xccіF4.\x00\xfb\x14\xf6\x83U\xdc\x10\x1eҎ\x10\xbf\x02\xeb\xcb-0\v\x8b=\x13\x92\xad%\xce~T,\xff\x1fV\x8b\xb0\x9fN\xab\xbbc\x83s\xb0\xce\b\xb5\xb9\x00E2\xeb^\x98\x14\xfc\xc4\xc4\x10\xd7\xc3@\x06\x84\x05\xb7E\xa0\xaf\xc1\xd1\x03\xba\x8b|\x01\x11\x86\x90\xf9\x82\x03\xb3aI\x80}\\\x03y\a,\xad\r/g/\"j\xba\xefc\xce\xd6/\x06\x96문\xd8\xe0\x8de\xc8l\x05NJy\xe9\x86\xda\xde\xc7\x17]m\xc8\x1aY\x9f\xceN\xf7\x9d%\xe2nk\xad%2\x92\xd9\x18\xed\x9b9\xb4\xbe\x12?J\x9e\x1a\xbd<\xda;\x99\xfb\xa1\xbb\xbe\x14\xd6\xfd\xf5\xb2̃\xb0q\xd7Fz\xc3\xe4%O\r\"v\xab\x8d\xfb\xdan=\x85\xb5\x95\xf1\x8dP\x1b/\x99\xb9\xf0\xf9\x04\xa01h\xd1\xec\xf1G\xb5S\xfa\xa0~\x10(\xb9\x9dC\xc5dp0[jR:,ް2\x98\xcf\xfa\xb5Ia\x9b6\x8c\x8e6\x87\xff\xfeorr\x01\":\xbc\xd4\r\xaa\xc5\xd3\xe7\x97\xefW\xe5\x16k6O\x9e2\x12\x16=\n\xc8\x03Y\xc7ɶh\x10^\x02\xdb\xd1\x01m\xd2*\xad\b\xa0\xd7\xff\xc2\xd2e_l\x8cn\xd08\x91Q\xd2\xd5IR\xa7g=,w\x046\xca\x00\xa7\xb4\x841\x10RrA\x0e6(\x02\xba\x02\xb7\x15\x16\f\x06\x12\x95k\x8d{\x02T\x01S\tV\x01+\"\xdaX\xb2\x97\x97\x9cr\xd9\x1e\x8d\x03\x83\xa5\xde(\xf1\x9f\xd3\xca\x16\x9cN\xb1\xe70\xb9A\xbeB\xeeQL\x12\xcd\x1e\xdf\x03S\x1cjv\x04\x83\xb4\ax\xd5Y-\x88\xd8\x02\xbeP\xb0\nU\xe99l\x9dk\xec|6\xdb\b\x97\xd3r\xa9\xeb\xda+Ꮃ\x90\\\xc5\xda;m\xec\x8c\xe3\x1e\xe5͔̊\x99r+\x1c\x96\xce\x1b\x9c\xb1FL\x03p\x153eͿ;9\xc3]\ai//\xc5+\xc4\xc4E\xde)\x1a\xa2\xcd\xe3g\x11\u007fK/=\"V\xbe\xfdy\xf5\fy\xd3`\x82s\xce\x03\xdb\xedg\xb6%\x9e\x88\x12\xaaB\x13\rW\x19]\x87\x15Q\xf1F\v\xe5\xc2M)\x05\xaasҭ_\xd7\u0091\xa5\xff\xed\xd1:\xb2O\x01\xcbP\x9c`\x8d\xe0\x9b\x90\xd9\n\xf8\xac`\xc9j\x94Kf\xf17\xa7\x9d\x18\xb6S\xa2\xf46\xf1ݚz.\x18\xd9:=\xce\xe5n\xd4B\xa3Q\xbaj\xb0<\x8b\x13\x8eV\x18\xf2e\xc7\x1c\x86\bHA{F\xe9\xe5\xc4x9xC\x00\x97%Z\xfbEs<\u007fރ\xba8\x89\x9dak\xd0\xd4\u0086\xae\x04*m\xfa%\x8d\xa5\xbaҽr\xfe)zoP\xf9\xba\x0fa\nߐ\xf1G%\x8f\xa3/\xfef\x84\xebo0j.\xba\"\xac\xd5Q\x95Oh\x84\xe6W\xd5\xfd\xd4\x13>)\xbd\xd5\a\xa8\x82\xdb*'\x8f\x94W\xecQ\x95\xfd\xbc\x99\xaf\xc5\xd3\xe7\x9cCcp\xa4XJ\xdc\x14\xb0H1\xa9+\xf8\x00\\XjKlX\xb2O\x0fuY\xf4v\x0e\xce\xf8W+]jU\x89M_\xd5n\xef5\xee\x15W\x17\xedq\xb5\f{P\xa2!\x0fh\x8c\xde\v\x8efJ\x9e/*Q&\f\xdeĪS\x85\x82\xd8\xd7n4v\x82\x02\x069\xc5(\x93W\xed\xb5<\x89\x85\x8e\x96\t\x15\xfd\xb3\xfd<$\x0eS\xa7B\xa8\x1c*\x9ez\xa73\x1c:\xe4\x1f\x8b\x1c\x0e\xc2mcZ\x93\xc3h\x82+\x11E\xd7\x0e\x8fÇ=\xcc\xcf[$\xb9X\xf6\x10,\x96\x06]\xf0(\x94\xe4$\xe40\x05\xc0\x17oCRd\xb1\x11\x18Y\x15\xf2\xb7;<\xf6\x89\xbda\xc8Ԗ݂zG\xfdJ\x06j\xb0B\x83ʍ&d\x1a \x8cB\x87!'s]ZJ\xc7%6\xce\xce\xf4\x1e\xcd^\xe0av\xd0f'\xd4fJ\x14OS|\xccB\xab7\xfb.\xfc\x19U\xf2\xf9\xf1\xfeq\x0e\v\xceA\xbb-\x1a\xb2R\xe5ev\xa8N'\xf2>\xd4\xc5\xf7\xe0\x05\xff\xd3\xdd[\xf9\xd0M\x8c\x8c\x9b\x9c\xac\x82\u007f\x1f\xa9\x8d\np\x88\x9aU\xb4\x836@Ս\x8c['\xeb\xc5\xfc1f\xbd~\x17ܽ(\xd1P\xee\x1f\xe6\xc5\x1d\xf6S\xe2\xc5\x10J]\xfb\xd5\xf8\xc9\r\xbcP\\\x94\xd4$\x9d{~\x9e]\xf8h\x9f\xff\xea\x14\u007fY\xd5\b;U\xaf\xabH\x1f\xbb\x92\xed\xb8\x17\x93M\xaaJ\x16\x1d57\x16\x14R\xd5b\xa6\xcfU\b\xf4R+Eq\xe64\xb0Sں\xb3\xfd\x1c\xfd\x86\xa8_\xfbr\x87\x03\xa2\a*|\nb\x99\xd3\xf8\x11\xa1\xf0\x16C\n\xbd\x0e\x00nypɖhn\xa3X.H\xecT\xd8\x18,\x17\xb0\xf6\x8aK\xccX\x0e[Tԥ\x8b\xeaH\xad\xe2\xf3\xc3j4.\x13\x8f\xa1\aH}vfs\f{\xcc\xc2sX\x1f\a\xb5\xfb\xa6j\x8d\xc1J\xfc|S\xb5\xa7 \x96\tn\x98ۂPVpJ\xa2C\xbaG\x9a\xa9|\x9d\xea\xf4c\xca\no4\xc6\xe5\xf8\x8d0^\x1b\u0099ϫ\x91\xf1\x94\x84Nz\xe7\xfb\x94\xb7σv<6G\xb4h\xc7\xcf\x1fb\xdfS\x0eJ\xdb\x19\x8c\x97\xa1\xfc\x95\xee)\x9fo\f\x03\x94\xaa\xb76\x06m\xa3\x15'\xff{]\xef\xd4\xc2\xfd5:\xa81\x03Nϳ\xd5ٛ\xcc\xf9ͱ \x0e\xf8o\x1b\f\xe2\x91V\xb7\xfd\xd6\xebp\xd6Й\r~\xe31\xe0]g\x0e\xa0\xc9R\x81W\xa1[\nU\xb8\x80\u007f(\xb8\xa79\x91j\b\x9f\x13F\xea\x10\x86\xf5\\\xe9\x03}\xdcY-,\x00Z\xc5:J3\x10M\xe2q\xac\f\xaf\x0eBJ\xaa\xa4\x06k\xbd\x1f\xa9\xa4\xd4\xe6\x19\x94G`\x96\x88\xd8\xff\xa1\xf8P\xbc\xfb\x9dg\fɬ\xa3\xa1\x01\xf97܋\xfe\xa9Ȑ͇\x81|\x0eޓk\xd3\xcdOyܜ\x99$\xf6\xd3@\xfdJH\xea\xc5F\"\xbd\xad\xe2\xc3\xe3\xc7O\xab\x87;\x1bZf\x1a\xec\a\x8b\x1e\xc8|6\x00\xa4\x9eY\xa7y\xde[\x87f\xc4\xd8'[\t\vJ\x83\xd4js\x16\n\xf1J\xd3=uI\xd1u\xb4\x01\x8e4\x98S\x94\x97[\xa66؞\xd8$\xec\x1d\x94\xe4\x18C\xa4\xe7\xde\xd1z\x83P\xe3\xae\xf0\n\x1b>\x8bak<8\xe4mE\xc7\x0fxO\xa8\x93-/\f\x137\xb8\xeeI\xe7\x1aJDN]>\x80n\xaf_6,\x0eϵoj\xff\x8b\x8f\xb8\x87\xea3\xdb\x1ev\xff\xfe\xba\x87\x9f\x17\xae\x97W\x92\xc8\x1a\x96\xde\xd0\b\xd4\xe6\xdd\x10Lc\xb9\xf7u\xc7\x1c\x8b\xb3\xdf$\xbao\xfa\xbfW\xdc\xd4e\xa4\xde\xf4\x1e\xb5\xbf\xea|l\xef\xd2\x0f/\xf1\x94>\xbc\xa0\xb1\x92\x8aK\x87ȔQғ\xb6\x88Q\xf5h\x1c\xf2\xaf\xfd\xe3\xfaw1\xec\xf2\x99{\xb8-\xa9\x9eǟ\xa0\xe0\xef\xff\x9c\xc4U\x91\xbfd\x1c\xf4\xf0\xff\x01\x00\x00\xff\xff\xed\x93\x00\x8d\x01\x1b\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4\x96\xcdn\xe46\f\x80\xef~\nb{\xd8Kdz\xc1^\n\xdf\xda\xec\x16\b\xda\x06A\xb2ͥ\xe8A#q\xc6ldI%\xa9Iӧ/$ۙ\x9f8\xc8\xf6\xb0\xbe\x89\xa2\xf8\xf3\x91\x94լV\xab\xc6$\xbaG\x16\x8a\xa1\x03\x93\b\xffQ\fe%\xed\xc3\x0f\xd2R\\\xef/6\xa8\xe6\xa2y\xa0\xe0:\xb8̢q\xb8E\x89\x99-~\xc2-\x05R\x8a\xa1\x19P\x8d3j\xba\x06\xc0\x84\x10\xd5\x14\xb1\x94%\x80\x8dA9z\x8f\xbc\xdaah\x1f\xf2\x067\x99\xbcC\xae\x1ef\xff\xfb\x0f\xed\xc7\xf6C\x03`\x19\xeb\xf1/4\xa0\xa8\x19R\a!{\xdf\x00\x043`\a\x0e=*n\x8c}ȉ\xf1\uf322\xd2\xee\xd1#ǖb#\tmq\xbc\xe3\x98S\a\x87\x8d\xf1\xfc\x14ԘЧj\xea\xa7j\xeav4Uw=\x89\xfe\xf2\x9aƯ4i%\x9f\xd9\xf8倪\x82P\xd8eoxQ\xa5\x01H\x8c\x82\xbc\xc7\xdf\xc3C\x88\x8f\xe1gB賈\xad\xf1\x82\r\x80ؘ\xb0\x83\xeb\x12u2\x16]\x03\xb07\x9e\\\xc53\xe6\x11\x13\x86\x1fo\xae\xee?\xde\xd9\x1e\a3\n\x01\x1c\x8aeJUo)\a \x01\x03S$\xa0q\n\x10b@\x88\fCd\x841Zi'\x93\x89cBV\x9a\t\x96\xef\xa8\u007f\x9eeg\xceߗ\xe8F\x1dp\xa5cP@{\x84\xa9\xee\xe8@j\xe4\x10\xb7\xa0=\t0V,a\xec\xa1#\xb3PTL\x80\xb8\xf9\v\xad\xb6pWб\x80\xf41{W\xdal\x8f\xac\xc0h\xe3.пϖ\xa5\xe4W\\z\xa3s\x81珂\"\a\xe3\v\u05cc߃\t\x0e\x06\xf3\x04\x8c\xc5\a\xe4pd\xad\xaaH\v\xbf\x158\x14\xb6\xb1\x83^5I\xb7^\xefH牱q\x18r }Z\u05fe\xa7M\xd6Ȳv\xb8G\xbf\x16ڭ\f۞\x14\xadfƵI\xb4\xaa\x81\x87:0\xed\xe0\xbe\xe3i\xbc\xe4\xfdQ\xa4\xfaT:A\x94)\xec\x9eŵ\x87_\xe5^\xfaw,\xf3xl\x8c\xff\x80\xb7\x88\n\x95\xdb\xcfw_`vZKpʼ\xd2>\x1c\x93\x03\xf8\x02\x8a\xc2\x16y,ܖ\xe3P-bp)Rк\xb0\x9e0\x9cB\x97\xbc\x19Hen\xbfR\x9f\x16.\xeb\xbd\x01\x1b\x84\x9c\x9cQt-\\\x05\xb84\x03\xfaK#\xf8ͱ\x17²*H\xdf\x06\u007f|ݝ*\x8e\xb4\x9e\xc5\xf3]\xb4X\xa1\x85\xb1\xbcKhK\xcd\n\xb8r\x96\xb6d\xeb\x18\xc062<\xf6d\xfby,O\x88>\x0fp{$^\x1a\xd8\xf2\x8d\x06ʭr*\u007f%Y\xa8u\"Ɠ^[\x1d\x99y\x93\x82\x1a\xcd\xf2\xbf8\xd4\x133\t\x9b\x991\xe8d\xa7\xde\x02K\x87\xbe&wd\x8e,\xe7y\x9f\x84\xf3\xb9\xaaԿ\x96\xa1 `\xc2\xd3t\f\xb47\n\x8fȥ\xc5m\xcc\xe5\xee@\a.\x9f\xf1\x9aP\xf48\x16\xa5\x94/q\xb4(Ҟi\x91\xe2\xf0\"\x9aW\xebP\xbe\xf2'4\x1b\x8f\x1d(g\\\xac\x9fa6O';\xa97\xf2\xa2\xd8'I\xdf\x14\x8d%\xde8\xde\xcb\xf8\x16\xf0\n7\xe4\xe1\xdc\xcb\n\xae\xf1\xf1\x85\xec*\xdcp\xdc1\x8a\xbcغ\x19I՟\xddW0Yh\xb83\xd1\xe1\x81qqXU\xe8\xab\xe9AQ7\x00\xea\xaf\xd8\x1d\x81\x15\x8dlv3\xeaC\x17\x1bk1)\xba\xeb\xf3\xe7Ļw'\uf0ba\xb418\x1a_C\xf0ǟ\xcdh\x15\xdd\xfd\x1cG\x11\xfe\x17\x00\x00\xff\xff\"\xf7\xf4 \x8c\t\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4WOoܶ\x13\xbd\xebS\f\xf2;\xe4W \xd2&ȥЭuR h\x1a\x04\xb6\xe3K\xd1\x03E\xceJ\xac)\x92\xe5\x90\xeb\xb8E\xbf{1\xa4\xb4\u007f\xb4Z;=to\x1a\x0e\x87\x8f\x8f\xef\r\xb9U]ו\xf0\xfa\x0e\x03ig[\x10^\xe3\u05c8\x96\xbf\xa8\xb9\xff\x9e\x1a\xed6\xbb7\x1dF\xf1\xa6\xba\xd7V\xb5p\x95(\xba\xf1\x1aɥ \xf1\x1dn\xb5\xd5Q;[\x8d\x18\x85\x12Q\xb4\x15\x80\xb0\xd6E\xc1a\xe2O\x00\xe9l\f\xce\x18\fu\x8f\xb6\xb9O\x1dvI\x1b\x85!\xaf0\xaf\xbf{ݼm^W\x002`\x9e~\xabG\xa4(F߂M\xc6T\x00V\x8c\u0602r\x0f\xd68\xa1\x02\xfe\x91\x90\"5;4\x18\\\xa3]E\x1e%/\xda\a\x97|\v\x87\x812w\x02T6\xf3n*s]\xca\xe4\x11\xa3)\xfe\xbc6\xfaQO\x19ޤ \xcc9\x88\x9cmp\x91w\xb6A\x91G\x99V\xf0\x1f\xe8\xe5\x10\xb3r\xfd\xfe\xe6\x16\xe6E\xf3\x11\x9cr^t\xb2\x9fF\a\xe2\x99(m\xb7\x18\xca\xc1e\x95qE\xb4\xca;mc\xfe\x90F\xa3=%\x9dR7\xeaH\xb3l\xf9|\x1a\xb8\xcam\a:\x84䕈\xa8\x1a\xf8`\xe1J\x8ch\xae\x04\xe1\u007fN;3L5S\xfa<\xf1\xc7\xdd\xf24\xb1\xb0\xb5\x0f\xcf\xedl\xf5\x84\x16V\xbe\xf1(\xf9\xbc\x984\x9e\xa7\xb7Zf\v\xc0\xd6\x05\x10\agO\xb45Gu\u05fc\x99A\x89\xd0c<\x8d-P\xdc\xe6\x14^\xf8a\x10\xa7-\xe4\xff\xd8\xf4\r\xf7\x01\x9a \x94\xce\xf0]\xb3\xa8wi\xf55\x8d\xaeb\x98\xa5\xca[g\x1e\xd9\xe8\xdcz\x8e\xd1,\x17\xe5\x1f\xda4\xae\x15\xaf\xe1nj\xf4\xa3\xeb\x9f\x18\xbdr6\xb2\xa0\x9fH\xb9s&\x8dxc\x85\xa7\xc1=\x999ߩ\xfb{f\x99v\x8d\xdcj\xf1\x12\xa4i\xf8\x1a)\x99ՅV\x858\xff\xf2\xbd\xfa\x1c\xcb|5\xcd,\xf3\x84\xd2q\x11\xf8>\x0f\x16#ҡ\r<\xe88\xc0à\xe5\xb0R\x15\xf2\xb4|@\xdc_\x88\x9c\xd4ٱ\xff\x0e6\xebX\a<\x93G\x9dEs\x16d\xc8\xd5Z\xf1\x85\xe7\xd6\vד\x17\x9eul\xb9\xa0\xbfճ9{&U\xa6\x10\xd0ƩF\xbe\xad\x96\x13\xbeŴ\xb3\xe2\xbf\\\u007f|ҹ\xef\x0ey\xf9\x89&\xb4-8|\xc0\x9at\xcfw+\x8f\xb1w\xb3\xb3\x96\x04\x94\xdf\xf1\x1d\xff\xec\xa9\xe1W\xaf\xc3ѓ\xe5\x02\xb4\xf7\xfb\xb4\xd2XЖ+b\xf9z\xc9\xe5\x90\xf2\xb5+\x85=\xc3\xd6!(4\x18QA\xf7X:\xe3#E\x1c\x97x\xb7.\x8c\"\xb6\xc0\x17G\x1d\xf5\x99P\xf8\xf9):\x83-Đ\xd6U\xb4\xb2Y?\b:\xb3\xd5\xc9>?s\xc6\xda\xf1\xef\xcd\xf5\xc4\xf9Å\x0eV\xc3'|8\x8b}\x0eN\"\x11.\x8dq\x01\xfd\x8a\xb8\x17\xa1û\xfd\xcd\xe1+K\xb1\x9e\xde\xe9y\x00 \xbfz\xd5\x11uӛq\x8a\x1c\x1c#\xa4D\x1fQ}Z\xbe\xd4_\xbc8yz\xe7O\xe9\xac\xd2\xe5O\x06\xfc\xfa[U\xaa\xa2\xba\x9bqp\xf0\x9f\x00\x00\x00\xff\xff]]l+\xe3\f\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xc4Y\xdfs۸\xf1\u007f\xd7_\xb1\x93{\xf0\xf7fB\xea\x92\xfbN\xa7\xa3\xb7\x8b\xddt\xdc\xde9\x9eȗ\x97L\x1eV\xc4JD\r\x02(\x16\x94\xa2v\xfa\xbfw\x16 %Q\xa2e\xf9\xdaK\xf9b\x13\\,\xf6\xf7~\x16\x9a\x14E1A\xaf?Q`\xed\xec\f\xd0k\xfa\x1a\xc9\xca\x1b\x97\x8f\u007f\xe4R\xbb\xe9\xfa͂\"\xbe\x99\x94+\xd74\xad\xd5q;M\x01\xa9\x17mt\x81\xa7\x8a\xd6d\xa6\xacW\x05\x86\xaa֑\xaa\xd8\x06\x9a\xa2\xd7E\x12ܦH.\x1b\xf5]\xe8➯\x0e$\x8d[q\x1bǠ\xedj\xb7\x9c\x02\xecI\xbbK\x80\x81f\xc0n[\x96\u007fo^Y\x12\xab|\xfc\xd3\xfc\x01\xfaC\x93\v\x866O\xd6\xdeo\xe3\xbd\xe1\xc5P\xda.)d\xc7-\x83k\x12G\xb2\xca;mcz\xa9\x8c&;4:\xb7\x8bFG\xf1\xf4\xdf[\xe2(\xfe)\xe1:%4,\bZ\xaf0\x92*\xe1\xd6\xc256d\xae\x91\xe9w7\xbbX\x98\v1\xe9\xf3\x86?\xacCC\xc2l\xad\xddr_(F=t\x94\xfbsO\x95\xf8K\x8c&\xfb\xf4RW)\x05`\xe9\x02\xe01yy\xc0v,5\xe5\xc9Ua\x1e]\xc0\x15\xfd쪃$\u007fB\xa6wc;z\xa9\xa4\xb6\xe54\xa5\x8e5p\xa6\xf1\xacE\xe4YJ\x97\xb9\xc7X?{\xea\xd5\xed2\x1f\x93*Rt\x80\xe05U4(\xed\xa0-GB\x95\x17GX\x02H\xe2\x06\xea\xe8_\xe7\xfaӕ\xb9};\x10[\x03\xe6\xfe\x06\u007f\x99\u007f\xb8\x9b\xfe\xd9eYGybU\x11\v\x1b\x8cԐ\x8d\xaf\x81۪\x06dQA\aRs\xf9R6h\xf5\x928\x96\xdd\t\x14\xf8\xf3\xdb/c6\x03x\xef\x02\xd0Wl\xbc\xa1נ\xb3\x95w\x05\xb5\x0f\x10\xcd\xd9\x10;~\xb0ѱ\xd6㊣\x04R\xa7\xf0&)\x1a\xf1\x91\xc0u\x8a\xb6\x04F?\xd2\f^I\t9\x10\xf1\x9f\x92\r\xffz5\xca\xf3\xffr\x92\xbe\x12\x92WY\xb0]\xcfr\x0eO_\xacN\x8f+/\xedJW\xf3\x0e\xf9\x1c\uf514\xd8Ժ\xaa\xfb!a_=Gs\xa4A\x95K.\xda\xed\xef\x1e\xb6b\xc86\x88<ۢ\x1bC\v\xb4J\xfeg\xcdQ\xd6_l\xb9V_\x90\xa4\xbf\xde\xde|\x9b`n\xf5\x8b3r\x14\x10\xe7\x98\xf0\xeeV\x89\xf9\x96\x9a\xc2Y8\xf5q@\xda\x03\xbb\x11$\xb9\xa3\xb9\x18\xc9E\\\x9d\x00(T*]4\xa0\xb9?\x03\xb2\xce\xe8<\x10\xfe\x01W\f\x18\b\x10\x1a\xf4\xe2\xa7G\xda\x16\xb9I{\xd4\xd2c\xa5\x8dvxeA\x80\xde\x1b=\xd2N\xbbV\xdc\xc1\xc5\x0ey\xcbX\x8b+\x1e\xd7w\xc4\xeay\xf7Yk\xe7\xf1b\f>wGg\\\xb2\x83\xd0\xd1\xed\x81\xeai\xfc\x9e\x00\xd7'\xec&S\xa0\xa0\xabCъ\xf1\xd1e@!\x90~\xb0\xe0\x9d\x1a\xbc\x0f\xe3l\xf0)\xeb\xf3\xec\xf4\x161\xb6|\xf1\xfc\x96\xa8{\xeb\xe5z\x10;\x1e\t+\xfc\x96\t\xaer\x82\x1d\x87\xd7T\xe7\\x}J\x9f.D\x82\xcabE\xddH\xbd~\xc94y>\xec6\x00.\\\x1bw\x03\xe2 ů\xb8\x8b\x9e˧ӑ\x11l\x18\xb2(\x80\x99;\xf8hL\xdaq\x98\xd6\xfbK\xd4$ς\xc4-\xffi\x86\x03\xf8\x1a\xf9\xbcq\xee\x85b,yv5\xe8L\xf6@\x9a\b\xdb\xe6\xf8\x84\x02\xeehs\xb2vk\xef\x83[\x05\xe2\xe3\xd0(\xfa\xf89Q\xb6\x80\xf7)\xce/ַ;\xe0\xbc\xca\x1d\x11\xd4\xce\xf4\xe9\xe9\"\x1a\xb0m\xb3\xa0 z/\xb6\x91xX\x84Og\xfe4E\xec\x8dv\xb0\xbb\xbfB\xc8|\xba\xa1\xa8B\x9bn\xd9$g\xa2\x03\xa5\xd9\x1b<\x9d\x8az\x15\x12\x92\x90\x94\x91\x94\xdeGk\x9f\xa6\x9eB\xfa\xf4\x92[\x8a$͍\xb3\xa3\x18\xb7\xcfOm\xe3\x1f\xfe\xffIġm\xa4ՠ\xa8w_ŀ\xef\x84\xff\u007f\x9b\xf7\x93\x8d\x95-z\xae]\xbc\xbd9\xeb\xed\xf9\x8e\xac\x8f\xf2=hI\xb5+\xdd\xfbuD\xbdˇ--?9\f.N=\x8e\x18\xe2e\xcdc> }\xa6o$\xbe\xa4J\x98\x93ǀ\xf140\xd3}\xf0\xf5\xf1\xaf,\xaf\x81u\xba\x16\x13\xec\x93\xc1P\x1euYډ@;\x17r\xac\x9er\x1c4\x82A\xe1\x1f\x8a\xfe-j\xfeH<\x1c-\xed\u007frz\xb3\u007fKqYt?1\xa5\x0f\x9dZ\xea\xe0\xf0\xeeV\xb5[\xd9\xc3\x10\xac\x04\xb2\x93\xba;\xfe\x91\xe9U\xbe*\xe9\u007f5J\xaf\x95\xb3\x19\xcd\xf2\f>\u007f\x99@w\xd7\xfa\xa9\x97C\x16\xff\x1d\x00\x00\xff\xff\x81\x16-\x05\x9e\x1b\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xc4Y_s۸\x11\u007fק\xd8\xf1=\xb87\x13R\x97\\\xa7\xd3\xd1\u06dd\xddt\xdc\xde9\x9eȗ\x97L\x1e b)\xa2&\x01\x16\xbb\x90\xacv\xfa\xdd;\v\x90\x92(Q\xb2\x9c\xe9\xa5zI\b,\x16\xbf\xfd\xed\x1f,\xe0I\x96e\x13՚O\xe8\xc98;\x03\xd5\x1a|f\xb4\xf2E\xf9ӟ)7n\xbaz\xbb@Vo'O\xc6\xea\x19\xdc\x04b\xd7|Dr\xc1\x17x\x8b\xa5\xb1\x86\x8d\xb3\x93\x06Yi\xc5j6\x01P\xd6:V2L\xf2\tP8\xcb\xde\xd55\xfal\x896\u007f\n\v\\\x04Sk\xf4q\x87~\xff\xd5\x0f\xf9\x8f\xf9\x0f\x13\x80\xc2c\\\xfeh\x1a$VM;\x03\x1b\xeaz\x02`U\x833h\x9d^\xb9:4\xe8\x91\xd8y\xa4|\x855z\x97\x1b7\xa1\x16\v\xd9u\xe9]hg\xb0\x9bH\x8b;Dɚ\a\xa7?E=\x1f\x93\x9e8U\x1b⿏N\xffb\x88\xa3H[\a\xaf\xea\x11\x1cq\x96\x8c]\x86Z\xf9\xe3\xf9\t@\xeb\x91Я\xf07\xfbd\xddھ7Xk\x9aA\xa9j\x92i*\\\x8b3\xb8\x17\xa4\xad*PO\x00V\xaa6:\U00091c3b\x16\xedO\x0fw\x9f~\x9c\x17\x156*\r\x8afעgӛ(\xbf=\xefn\xc7\x004R\xe1M\x1b5µ\xa8J2\xa0şH\xc0\x15B\xe7\x15\xd4@q\x1bp%pe\bE\xe5\b-8[o\xc6\xd1:\xa8\xd4\n\x81\\\x83\xb0ƺ\xceR\xaf\xa0a\xad6b\u007f\xef.\x890\x05\xad\xf2<\xec\x06F\xb5>~\xb8\xfd0K\xa8$\x84\x96\xb1\x8e\xc9)S\x1a9\xf3\xe5\xb0O'\x97\xc4d\xa4#\xa4\xe0`\aE\xa5\xecHY\x83\xd84Dv\xcb gI~\xfd\xdal=<\xb6\xfb\xdf\xc8\xf1}X\x18\xfeO\x87\xe0Ef\xc5\xd6\xf9E\xb3\xee\xf7\xe2\xf9\xacY\xd2\xc4{\x8b\x8c\xd12\xed\n\x12\xa3\nl\x99\xa6n\x85~ep=];\xffd\xec2\x93@\xccR$\xd04\xb6\xe1\xd3\xef\xe2?_eE\xec\x8c/3%\x8a~\v{d\x1f\x9a\xbeڜ\xbe\xaf\xbb\xf4T\xba\x9ew\x8d\xc7\xe1JI\x89ue\x8a\xaao\xd2w\xd5s4G\x1a\xa5S\xc9Uv\U000fb1ed\x10\x19\xbc\xe0\xd9d\xdd]0SV\xcb\xff\xc9\x10\xcb\xf8\xab\x99\v\xe6\x82$\xfd\xed\xee\xf6\xdb\x04s0\xaf\xce\xc8ц4\xc5D\xeb\xee\xb4\xd0W\x1a\xf4g\xbb\xa9\x8f\x03Ѿ\v\x1c\xe9\xe3\xb62\x177rdUK\x95\xe3\xbb۳\b\xe6[\xb1~\xf7\x1d\xe5]\xfb\xd6k\x92\x10=ӷ\x9dD\x92ԜE\x91\xfa\xee\xb1.\xb8Ð:\x868\"\x1d\xe8W!\x91됴9\xfbH\xb2\xf1\x0e~ \xd1:=\xf8\x1e\xfaw0\xb5#}0\x9c\x8cx\xf12Ê\x03]~\x9d\x89\xe2=g)?\xb9S\x12\xcf\uebfa\xd0\x14N\x9a\xb9\xe1\xe3\xcd9\xcf\xdd\x1c\xcb\xc7\x17\x02\xaf\x13.6\r\xc6\xdbBD\x00kE\xfd\x16\xc7~\x83=mia\xac\x84\xa2\ful\xb6\xa4\x0f,\x95\xa9Q\xc3\xf6\xe9\b\x1e\xe5>\x17\xaf\xcc\xd7ǵ\xb2W\x13\bu\xbc\xe7\x8d\x00>\\U:\xdf(\x9e\x81\\\x933Qp0oC]\xabE\x8d3`\x1f\x0e'O\xa6A\x83Djy>\x0f~M2\xe9\x86\xd5-\x00\xb5p\x81\xb7W\xac.!:\xf3\xaf\xa9\xf3\xf8\xe5\x17\xbcJ\xd1y\x10\x0f\"1\x16Wۤ<\x17X\x10o/\xa19\xdc\"\x83{\\\x1f\x8d\xdd\xd9\a\xef\x96\x1e\xe9\xd0\aY﨣\xf6;\x83\xf71\x02.6\xb8\xdb\xe0\xbc͝\x10T\xae\xee#ױ\xaa\xc1\x86f\x81^\f_l\x18\xa9g\xa0O\xf4\xe3\x1bj\xecyw\xbc\xed\xd6\xf7\xd5*)\xea:\xf8B\xd9\xf8$#\xd1\xc9\x0e\xb4\xa1\xb6V\xc7-|oC<\xf6$8%Cvq\xd1g\x97\xa4t\x9c{͝:¹uv\xb4#\xebS\xc1X\xfe\xd3\x1fO\x9e\x8f\xc62.\a\xa5\xb0\x9b\x15\n\u007f\x16\xfd\xffk\xdd'\x0f_b\xe5\xf9\xb2\xd25\x1f\x88\xbeT\xb5\xa2ⱚ\xb5_~\x8e\xcb\xcdp\x93oQiF\xa89\x18\xda=ؿ\xdd}E\x17e\xdd\x03}\x9c\x80d\x96\xdeۼ{\x8c\xeaFv\a\x96*\xa4\xd7B}\u007f\xf8B\u007fu5xp\x8f\x9f\x85\xb3ڤ\xbf.\xc0\xe7/\x13螨>\xf58d\xf0\xbf\x01\x00\x00\xff\xff\x98\xaaEc\xdc\x18\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4W\xcdn\xe36\x10\xbe\xfb)\x06\xdb\xc3^*y\x83\xbd\x14\xba\xb5i\x17\b\x9a\x04\vg\x9bK\xd1\x03E\x8d\xeci(\x92\xe5\f\x9d\xbaO_\x90\x92lٖ\xbd\xc1\x02\xab\x1b\x87Ùo\xbe\xf9!\xb5(\x8ab\xa1<=c`r\xb6\x02\xe5\t\xff\x15\xb4i\xc5\xe5\xcbO\\\x92[noj\x14u\xb3x!\xdbTp\x1bY\\\xb7Bv1h\xfc\x15[\xb2$\xe4\xec\xa2CQ\x8d\x12U-\x00\x94\xb5NT\x12sZ\x02hg%8c0\x14k\xb4\xe5K\xac\xb1\x8ed\x1a\f\xd9\xc3\xe8\u007f\xfb\xa1\xfcX~X\x00\xe8\x80\xf9\xf8\x17\xea\x90Eu\xbe\x02\x1b\x8dY\x00X\xd5a\x05\x01YH\a\xf4\x8eI\\ \xe4r\x8b\x06\x83+\xc9-أNn\xd7\xc1E_\xc1a\xa3?=@\xea\xc3YeC\xab\xd1\xd0.o\x19b\xf9}v\xfb\x9eX\xb2\x8a71(3\a$o3\xd9u4*\x9c)$\a> c\xd8\xe2\x1f\xf6źW\xfb\x89\xd04\\A\xab\f\xe3\x02\x80\xb5\xf3X\xc1c\x82\xea\x95\xc6f\x01\xb0U\x86\x9a\xccH\x0f\xdey\xb4?\u007f\xbe{\xfe\xf8\xa47ة^\x98,;\x8fAh\x8c1}\x93\xfc\xeee\x00\r\xb2\x0e\xe4\xb3Ex\x9fL\xf5:Ф\x8c\"\x83l\x10\x86\xbc`\x03\x9c݀kA6\xc4\x100\xc7`\xfb\x1cO\xccBRQ\x16\\\xfd7j)\xe1)\xc5\x19\x18x\xe3\xa2iR\x19l1\b\x04\xd4nm\u9ffde\x06q٥Q\x82\x03\xc5\xe3GV0Xe\x12\t\x11\u007f\x04e\x1b\xe8\xd4\x0e\x02&\x1f\x10\xed\xc4ZV\xe1\x12\x1e\\@ ۺ\n6\"\x9e\xab\xe5rM2V\xb4v]\x17-\xc9n\x99\xeb\x92\xea(.\xf0\xb2\xc1-\x9a%ӺPAoHPK\f\xb8T\x9e\x8a\f\xdc\xe6\x82.\xbb\xe6\x870\x94?\xbf\x9f \x95]J\x1bK \xbbދs\x95]\xe4=\x15\x19\x10\x83\x1a\x8e\xf5\xf8\x0f\xf4&Qbe\xf5\xdb\xd3\x17\x18\x9d\xe6\x14\x1cs\x9e\xd9>\x1c\xe3\x03\xf1\x89(\xb2-\x86>qmp]\xb6\x88\xb6\xf1\x8e\xac\xe4\x856\x84\xf6\x98t\x8euG\x922\xfdOD\x96\x94\x9f\x12ns_C\x8d\x10}\xa3\x04\x9b\x12\xee,ܪ\x0eͭb\xfc\xee\xb4'\x86\xb9H\x94~\x9d\xf8\xe98:V\xec\xd9ڋ\xc7i1\x9b\xa1\xd3\xfe\u007f\xf2\xa8S\xc2\x12k\xe9 \xb5\xa4s\x0f@\xeb\x02\xa83\xfdrbx\xae9\xd3W+\xfd\x12\xfd\x93\xb8\xa0\xd6x\xef\xf4\xa4\xcd/\xa0\xfae\xee\xc4\b+\x8d\xb8\xbeQq^\xf1\xc42\x80l\x94L:T\x14\xd9}\x9b\xcf\xc4q\x91\xf2L\xbbJ\xedj\x95\xd5\xf8)\u05ceջ\xab\xb1<\xcc\x1cH\xa1l\xdc+\xb8V\xd0NM\x8e(k<\v\"D\xfbf\x90\xfdL\xbekRi\xb5\x84\xe1*\xc0Չ\xf2\xc8s\x1b\x8d\x19,\x15\xdau^\t\xd5\x06\xc7Fn]8\x83H\xbd\x8d]\xdf\xd5\xdf\xc6\xef֙\xd8\xe1\xfen\xb8\x8a\xfc\xf9XwZ \xbd`\x00\x91B\x80p|\x05N\xbf\xa1&\x18\xbck\x06\x00C\xd1r\x8a\xf3\x8d\xd8Sr)\xe0\xd14,\xe6\x8b\xffHc\xae\xa2\x8e\x14N\xb3y\xb4y\xc2\xd7W\x87\x81(\x89\xfc\xf6q\x90\xd5Gbu\f\x01\xad\fF\xf2M\xf8M\x03\xc1(\x96I[\xa47\xd0\xd5<ߟ돐\x92)\x90$\x98vѫ\xe2\xb9~i]\xe8\x94T\x90F{\x91\x0e\x9d\xec\xa7\x17\x98\xaa\rV !\x9en^\x9e\bȬ\xd6\xd7#x\xe8u\xfa\xabp8\x00\xaavQ.\x10\x9b/\xc5+\xd4^E\xe47\x8a\xaf\xe3\xf9\x9c4\xe6Ҋou\x8e6v\xa7.\nx\xc4\xd73\xd9\nUs\xdas\x05<:\x99۸\x10\xd3L-\x9f\x88\x0eO\xec\x9b\xc3*\xd7]1<\xa9\xf3\x06@~\x996\x93\x14sߛ\x83\xe4\xd0 Jk\xf4\x82\xcd\xe3\xe9\x93\xfaݻ\xa3\x17r^jg\x1b\xea\xff\a\xe0Ͽ\x16\xbdUl\x9eG\x1cI\xf8\u007f\x00\x00\x00\xff\xfflC\xbf\xee\x8e\f\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec}\xfds\x1c7r\xe8\xef\xfe+P<\xd7#\x99\xe3.\xa5\xbb\xe4*Q\xa5\x9e\x8b'Q>\x96-jK\xa4\xe5w\xe5s\x1c\xecL\xef.\xc2\x19`\x0e\xc0,\xb9\x89\xf3\xbf\xbfB\x03\x98\x8f\xdd\xd9\x0f`HJ\xf2\rR\x953W3=@\xa3\xd1\xe8\xef\xa6\x05\xfb\bR1\xc1_\x11Z0x\xd0\xc0\xcd_j|\xf7\xafj\xcc\xc4\xf9\xf2\xe5\x144}\xf9\xd5\x1d\xe3\xe9+\xf2\xbaTZ\xe4\x1f@\x89R&\xf0\x06f\x8c3\xcd\x04\xff*\aMS\xaa髯\b\xa1\x9c\vM\xcd\xcf\xca\xfcIH\"\xb8\x96\"\xcb@\x8e\xe6\xc0\xc7w\xe5\x14\xa6%\xcbR\x90\xf8\x05\xff\xfd\xe5\x8b\xf1\x1f\xc7/\xbe\"$\x91\x80\xaf߲\x1c\x94\xa6y\xf1\x8a\xf02˾\"\x84\xd3\x1c^\x11\tJ\v\tj\xbc\x84\f\xa4\x183\xf1\x95* 1\x1f\x9bKQ\x16\xafH\xfd\x0f\xf6\x1d7\x11\xbb\x88\x0f\xf6u\xfc%cJ\u007f\xd7\xfc\xf5{\xa64\xfeK\x91\x95\x92f\xf5\xc7\xf0G\xc5\xf8\xbc̨\xac~\xfe\x8a\x90B\x82\x02\xb9\x84\x1f\xf8\x1d\x17\xf7\xfc-\x83,U\xafȌf\xca\xfc\xb3JD\x01\xafȵ\x99EA\x13H\xbf\"dI3\x96\xe2\x12\xed\xbcD\x01\xfcbr\xf5\xf1\x8f7\xc9\x02rj\u007f$$\x05\x95HV\xe0s~~\x84)B\xc9G\\\x9f\x99\x04n\x04\xd1\v\xaa\x89\x04\x9c\n\u05ca\xe8\x05\x10Z\x14\x19K\xf0+D\xcc\x1cHR\xbd\xa3\xc8L\x8a\xbc\x865\xa5\xc9]Y\x10-\b%\x9a\xca9h\xf2]9\x05\xc9A\x83\"IV*\rr\xec\xc0\x14R\x14 5\xf3\x885\xa3AJ\xd5okk86\x8b\xb4ϐ\xd4\x10\x0fة:\x12\x80\x94(D\x00\x113\xa2\x17L\xd5K\xc2e4\xc0\x12\xf3\b\xe5DL\xff\v\x12=&7f\a\xa4\"j!\xca,5\x14\xb7\x04iP\x92\x889g\xff]AVf\x81\xe6\x93\x19\xd5\xe0v\xda\x0f\xc65HN3\xb3=%\x9c\x11\xcaS\x92\xd3\x15\x91`\xbeAJހ\x86\x8f\xa81y\x87[\xc2g\xe2\x15Yh]\xa8W\xe7\xe7s\xa6\xfd\xe1ID\x9e\x97\x9c\xe9\xd59\x1e\x016-\xb5\x90\xea<\x85%d\xe7\x8a\xcdGT&\v\xa6!ѥ\x84sZ\xb0\x11N\x9c\xe3\xd9\x19\xe7\xe9\xef\xaa\xcd:n\xccT\xaf\fA)-\x19\x9fW?#ioŻ!qK9\xf65;\xff\x1a\xbd\xe6'\x83\x95\x0f\x977\xb7M\xaab\xaa\x8ds\xc4v\x83\xd0j\xc4\x1bD1>\x03i7\x0ei\xcb@\x04\x9e\x16\x82q\x8d\u007f$\x19\x03\xdeF\xba*\xa79\xd3f\xa7\xff^\x822\xa4+\xc6\xe45\xb2\x102\x05R\x16)Ր\x8e\xc9\x15'\xafi\x0e\xd9k\xaa\xe0\xc9\xd1n0\xacF\x06\xa5\xfb\x11\xdf\xe4|\xed\a-\xb6\xaa\x9f=\x8b\xea\xdc!w\xbao\nHZ'ü\xc4f\xfe\x18τl\x1d~\xf3ʸ\x01\xb2\xebX\x9aa϶aA\xed\xdf\xd7&\xf1\xe7\xea1C+\xe6\xf3%g\u007f/\x01Y\xa8=\x93\xb0\xc9.d\x83\x9d6\x87!\x81\xf1گ\x9d\x184\x03\x1e\x92\xacL!\xadؤ\xda9\xd3ˍ\xc7\U0005284c\x1b\x1a7L\xddL\x97\xd7\xff\x8a\f\x92v\xcc\xd2\xd0\x19\xe3\x16\x1aa\x1c\x97\u0601Y3\x98\x86|cZ;\xd6D\xf0֢\xd3\f^\x11-\xcb\xf5o\xdb\xf7\xa8\x94tՉ\n\u007f\xcb\x1e\x86\x89\xeaiw\xcc3\x96\xe0\x96U\x87\x19\x91\xf1%\xe1a!\xc4\xdd\xee\xb5\xff\xc5c\xe9\xfb\x8a\x9f\x91k\xa1\xaf\xf86a\xb5=.\x1f\x982\xd3\xe2)y#@]\v\x8d\xbf<:\x12픃Qh_\xc3#\xc4-\x1b6\xebo\xdan\xf6\x12\xb1\x1dWVi\xaf\xb6\x84)rō\x12aqe\xado\xf6c\xbb\xb8}{\xe4\xa5B\xe3\f\x17|\x84\x97ݸ\xeb;\x0e\xc5\a\x12rs\x176\xa7U}\xd2~\xee \x88\xb7\xe6^\xb0o[KbF\x13H\xbd\xae\x87\x960\xaaa\xce\x12\x92\x83\x9co\xbf\b\x9a\xa30<\xfb\x90\xcf\x1f\xc4K\xed\b\xa2\xa7C\xaef?\x1c3N\xf7Mcd\xce\xe6\xdeg\xfc\xd6\xeey\xb0\xd3\xf4\xb5\xfd\xc1}\xeb\xc0K\x12\xe5\x86=ؤi\x8a\x9e\b\x9aM\x0e\xe6\xde\ac~\xf3\u07b6S\xb2w\\N\vs:\xff\xc7\\UH\xb4\xffK\n\xca\xe4\xde\x13z\x81\xee\x84\fZo:\xd3K\xf3#\x06>S\xc4\xec\xe6\x92f\xeb\x06Ԏe\t\xc35 \xb3װ\x98mH\x1ag\xe4~!\x94\xbd\x15g\f\xb2\x94\xb0]\x92\x96\x19Gw\xb0::\xdb8\xe3GW\xfc\xc8^\xcf\x1b'\xd6\xdf\xe5{\x00\v\x9e\xad\xc8\x11\xbey\x14/\xba\x1cDu\a<\xc4;L\xa4\xf5h\x91A\xd3LZ\xdbG\x9d(\xba}\xb6\a\xd0\\!\x94\xfeK\x97\xf1k\xcbL&\xfe\xf9\xb6\x04\xd9aMڣ\xd98\xcbP\xc5\"\x8d\xd45\xd3 \x9dA̲M/\x9b\xf7\xd0T\xf6\x19\xbd*\x83\x17\xf5\xa68D\xeaN\n\xb0\xa6\xf1\xfd\x93;\\\xba3\xd8\b\x92\x86/\x1f\x1a\xb6:s\x02\xcd\xdf\xcd\x05<\xa6ܙ\x88<\xa7|/oߘ\xe4k\xfb\x9e\xa7\\\a\xc6\ued5c\x97x\xea\x0e\x15\xcc<\xbd\xa0\xb3\xe7\x9e\xe9\x05\xe3\x84\xfa\x83\x0f\xd2\x11\x0f%\x85\xd84\xb9v\x8d\x05Ud\n\xc0=\xd2\xf6\x1cz;\x9e\xee\xa6\xcd\x19\xbfB\xe0\xe4\xe5\xa3\xdeˤFQ\xc4\xf6y\xe4V\x1bX\xfd`o\x8eC\x91}\xbf\x00\t-\x1a\xd84\x11\xa3\\Džn\xe8\xe9\x87!\xda\xce\xe3X\x91\x19\x93J7'\xa9H\xa9\x0e\xdbؠ\xdd23\xbee9\x88R\a\xe3\xf4\xb2~\xb7\xe5{\xcb\xe9\x03\xcb˜\xd0\\\x94{/];\xcc\x1d\xc0\xf2\xcaI\xe60zO\x99F\x06e\xa0\xa2\xa5B\v\x83\xf5\"\x03}\x98\xdc9\x85\x99a\"\x89\xe0\x8a\xa5 \xbd\xbb\xd6\xee\x13\x13\xe6\xd8\xcd(\xcb\xcaM\xa7E\xd7\bS\x03\xf9\xa5\x94\x11Z\xe0{\xfb^\xc3ƶ\x10\xf7m\xc4\x1c\xb8\xf4\x05]\x02a3\xc24\x01\x9e\x98\xbd\x00i\x19,~\xc0!\x01Q\xb2W\x8e\xb1\xe3\x10fl\x06\xf02?d\xe1#<\x97\x8c\xef0'5\x1f~K\xd9.c\xa0\x1fA\xdbdh,\xf6\x00\xfcX\xbf\xfb\f\a\xa0f\x06;\x85\x91zL\x81|\x00\x9a\xae\xfc)\xa0Z\x1b5\x10w\\\x10Y\xf2&\x17{d\xfa?\\\x87r\xdf\u007f,\xf5\x88q\xb6w#\u05ec\xdbL7\xa5\x0f\x03\xe0ɤ\x0f\x03\xbc\xba\x8a\xc2\xcd\x1bW\xad\xd7ͥ\xe0\x85V\x9cuE!\aK\"S0\n \xa4\xd6\\T\x88Jͷ\xa1%\x9d\xee\xdc\xceu\x1d.L\xac\x19B\x9d*\xd7\f\xbaj\x10\xfa!\xf6J;V\xa2$\xf7\x94kOڕXU\x88\x83h;l\x1f\xed\xa0r~\xf0\xb3\x1b\x11]^h\xf4\x81U\xc0\xb5\\a\xc8\xcfaӵ\xc3(~\xa9H\ue308\x90\xd39\x1c\x1f+\xf2\xfa\xdd\x1b//\x18\xf6\u007f0w\xb7\x83Y\x1fc!Œ\xa5F\x94\xf9H%\xa3\xd3\xcc(\x983\x90\xc0\x13P\xe4듏\x17\x1f~\xb9\xbexwy\x1a\x00\xda(\xa5\xf0PPn(\xaeT\xfe6\xae\xf6\xdbL\x1e\xf8\x92I\xc1\rjB\xf0p5#\x94,\xfdL\x93*\x0e\xca(6\xd9\x12\xd23\xe7\x1fq+\b\xc1\x87e\x93\x8c\x17\xa5\xf6\x96\xc4{\x96e\x18eœ\x05\xe5s\x83\xa57\xa2\x9cf!p\xbf\xfe\x1a\xf1!!-\x13\u007f\x00\xdda\xf8\xfa̹hh\x96\x89\xfb\x90\xcd3w\x05\xa8\x84\x16\x1e\xb7\x8d\x8d\"j\xc55}xE\xd8\xf8\xa03\xed\xc7\xd1\xd7\r Gv\xed\x85\x14f\xda\xd6\xeenq\x921\r\x92\x1er?׀\x1bp\xc7\xe4\xd2\xcc\x1b\xd2&\x99\xe1\xb78,\xe10[\xa8\x1dӚ\xc8Έ\x849\x95i\x06J\x19.y\xbf\x00\xbd\x00\xe9\x8c.\x96X\x02 \x83\xb7̚\x13\xd2\x19mW\xc7\xd7\x05\x80\xf5\x91xwU\xd8蘉\xf3T$\xea\\Su\xa7\xce\x197\xd7\xde(\xa5\x9a\x8e\x1a\x8c\xf2\xdc\xdeZ#w\x83\x8e\xbc\x1e:\xaa\x0e\xd4\xf9\xefd\xc99\xe3\xf3\x11\xad\x9eb|DGj\x01Yv|\xf0\x1c\x03ػ\x1d\x81\x1ac\xf3\xa5\xc3\xcd\xe9Aʼ\x1dm\x1e|Y\xb1\\\xfb\xd51\xb9\x16z{\xb4\xd3\xf6Q]6\x88\xd7q'W\xbe\xbc\xbe\xfd\xf0\xd7\xc9\xfb\xab\xeb\xdb0f\xdcd\xe3ۙs\x00\xccn6\xde\xc1\x9cC\xf6{\x17\x1bo3\xe7\x00\xa8{ٸc\xceA\xdc\xfc\x106N\xbe\xfe:\xf0Z\x1b\xd8\xf8\xc0\xc6\a6\xdex)\x84\x8d\x03_F\xb2\xf0\xef\x9d\xfa\xd3`7\x15E\x84\x1c8-\xd0W\xcex\x9b\x93u\x11\xc7\xd3a\xbbm\\\xe3ˏ\xb4\x1d\n\xc0\x9b\xcb\f\x80Kj\xc1\xd8G\xfc\xe2eUi\x92!l$\\K\xb2c\xb7\x87\xa8{l\xfa\x8d\\,},\x1eH\x03\x17c\xf2\xce\xf9\xc6)y\xfd\xcb՛\xcb\xeb۫\xb7W\x97\x1fB\x90Ab\xcf\b\xf1!\x0e\xbdPr\xfcx\xaa\x99\x1d[\x14\xb4B\u0092\x89Re\x87\x1e\xe8\xe6|m`t\xe7\x01\r\xbf\xbe\xedhxJ\xd0\x05\xb3\"\n\xe4\x92%\x8fC\x18j\xbcM\x9b\f\x06\xb9[l\xb1\xc2H0\xd0\xc7\x15^\xecx|\x11ƎC\x04\x99`\xa0F\xf0\xd9'\xce\xc4bՉ?[\x84\x9a\b\x02\xe8\x10\x82Z\xa2M\x04\xc8G\x14\x85\xecX\x13\x88\xde\xc0\x8c\x96\x99\xb5L\x1d\x1d\x8d\x0f\x97/\xec\xe8\xc7\x10\xdfJq\x90\xeb\xa09ZL\xf1Ʀ\xedx\xab\xf9cp\x84c\x17X\xd9\x12\a\xacZ\x16\x013+\xc1\xebq\x01QY\xf5\x88\xbd\x81\x89\xe5\x9c36\u007fG\x8b\xef`\xf5\x01f\xe1\x00֑\x8d1\x97.L\x11SK# \x12#\x89\xd8i\x85\xe2\x82\xf4\xc4\a9<\x12\xb5k\xb4pq\xeb\xe2eQ\x964h\x89Y\f\xe9s\x80\xfc\x88\x91\xb5\xfch\v\x18M\xa1\xcb\xf1\xb2\xe8e\x91\xae\xec\xd3\x0ee)\x11<\x81B\xabs\xb14\xb7:ܟ\xdf\vyg\xb4\x9f{\xa6\x17#\xeb\x03R瘀q\xfe;\xfc\x9f\xe8\x19ݾ\u007f\xf3\xfe\x15\xb9HS\"\x90\x8d\x96\nfef\x83\xbb\x0e\x8c\x14\xed\x1auJ\xf7\x19&\x18\x9f\x91\x92\xa5߄2R?zӃ(l\x84ߣ\xd0\xc4\r\xfa\xa5W\xfe\xe6\x89Ƒ!\xa9\xeaܛ\xbb\x87i\x85\xe7'/U8\xab\xf6c\n^\xe4\xec\x85\xec\xa9\x10\x19P\x1e\x01\xe3P\xc7g\xd78$\xa0\xb4k\x1c\xec\x1c\xed\x1aH\xeb\x8fq\x17\x1cח\x81\r\x8e\x14\xe1\xb7#\xa9\x83`^\x11U\x16\x85\x90ZU\xa9\xe2cs\xd8\xc3%&\xd2\xc86\x1fWy[g\xe4?\xab\x1f1\x9b@\xfdt|\xfc\xef\xdf]\xfe\xf5\xff\x1e\x1f\xff\xfc\x9fq_\xa9!6jy\xf4\a\xab\nH\xc6\\\xa4`\xd8\xf1\x99\xfd\xd3i<\x17\t\x06v\\G#Fi\xaaK5^\b\xa5\xaf&g\xfe\xcfB\xa4\xeb\u007f\xa9`A\x90<\xc2\xe5\xdc]\x1c#d\xb4h\xd4\x17ѰWZ4\x97q\xd56\f\xa5bْ\t\xd5\v#\xd3\xddK\xa65İ\r;\x8c^\b27\x92\xfd\x99\xe1c\xb5\x18\xbe|y\xf4\xc9ĉ\x99_\xe2\xa3l\x01\xe2ʉ\x14\b9\xfe\x06\xf1\x82\x96ק\xabh\xbbh\x90\x17\x93+_T\xe5\x13\xa1\xbb\xdf\xfdQm\xd5s\xdf\">\x80\xf8\xed\x13\xdc&\x1ev\x9c\xec3k\x9bt_\xd9\xc8\xf9C2%\xb7\x8f\x8ca\xed\x15\xcaӺ\xfeʉ\xfdq\x9c\x14e\x1c'v\xef\xe7\x90\v\xb9:\xf3\u007fB\xb1\x80\x1c$\xcdFJ\vI\xe7\x91l\xdeO\x13\xa7W\xffe?\x16Ǚ\x1b\x8bߜe\xb8\xed\x9183TRJ\xa3ed+\u007f\xffC\xfaIn\x9e\x8ab\xbaʿ\x1c:\xda$]\a!\xf7\xd1\xd0j\x1e\x81F\x8e\xa5\xc8\xca\x1c\xd4Y%\xe5G\x83Ec\x1d_\x92%\x95\xea\x93\xe9*)[2uX\xd8lנ|\xf5>\x8a\xf9\x10\xe4\x9fv\xfa\x8ck\x98G\xab6\xa3\xfeH\xe8T\xb9|\xba\xbd(u\x8c\xd9؏\x99\x909Օ'\xe5\xa1\x10\n\xbd\xb5\xbe$I4\xe0\x96\xbc\xf2\xf2(\x12NA\xb5\x06\xc9_\x91\xff8\xf9\xdb\xef\u007f\x1d\x9d~sr\xf2Ӌѿ\xfd\xfc\xfb\x93\xbf\x8d\xf1?\xfe\xe9\xf4\x9b\xd3_\xfd\x1f\xbf?==9\xf9\xe9\xbbw\xdf\xdeN.\u007ff\xa7\xbf\xfe\xc4\xcb\xfc\xce\xfe\xf5\xeb\xc9Op\xf9\xf3\x81@NO\xbf\t7\x9a\xdb\xf10\xaam\x18#\xc6\xf5Hȑ\xdd\xfa=\x89\xf2\xbb\x86ߎ\xc7\xe1;\x1f\xbcL\xd1\xef*%M\x99\xeb\x131\x88~\xe2Q\x8f\xe5\xf7\x92\x8e\x14$\x12\xf4\xe7es\xb5sjd\xbf\x1c\xab\xba\xa8\xc9o\xc0\f\xdbWų\xe8\xa9u\f,\xcbF\xd0i\xdc\xc7:Em\x11K\x0f\xff\x0e\x82\xed\xff~\ff\xe2\xc1L\xdc\x1c\xbf]3\xf1\x8d=+\x83\x8d\xf8\xd3؈#_\x8dY\xe5\b\x99RH\xe0V\xccܢ\"\xd4\xc2\x1cӝQju\x99,R\x88\xa2̨\x8e\xf5O\xaf\x87\xd04C\xd6\xdc\x05\xa8\"\x88\xbc\x8ec\xb6N\xf4\xbcw\x84\xd4E\x96\x11\xc6핇\x93\xf2a+\x12\xacnO\xa8\"A\x87\b\x96\xc0\xb5a+|=\x8fW\x11\xa5\xa9Ԍ\xcf\xc7\xe4\xc7E\x90\x19\xd6\xcaR.\x0e\x82q\x92\x97\x99fE\x06\xa4*\xd4X\xd5i\b\x81\xaa\x94H\x185\xab4\x98u\x85\x8b\x94\xf6\xe8E\\hz\x17\x02\xb3\x90\x90@\n<\x01\xac\xe7S6\x8aONW\x84rrɗ\xf8\xb5\xa0է\xa5\rG\xb5\xa2S5\xaf\xd6\xd7l\xecC\x00\xd8O\x124i\x8e\xa9\v\x01i\xd7\xf5\x0ebzn\x83\x8cp\xed\x8b(U\xbe\xca\x101\"V(\xae\xe24\"\x14\x86\ri\xb8\xf6\xb2V\xd2l\xb8\x97P\x8a\xfc\x19\xe3TbEӧ\x12K?/\x91\xf4\t\xc4\xd1\xc7\x13E{\x89\xa1}D\xd0]\xe2g\xb4*X\x9f\x1d\u007f\x17Ƌ\x8e}\xc4\xc6h\xf1\xad\x900c\xc1A\x96\xed$]^\xed\va)p\xcdf,B\xa27R\x8f\x84\x028\x86\x98\x02M\x16\xb6\xa0\x1fo\x87\x82\x84\xd3\xef'\x8e㶚\xfcc0\xea\x9b.\x9b\xc3\xc0u\a\xae\xbb\u007f\xfc\xb6\xb8\xae;\b_$\xcb}&\x8d\x14\xf3Jc\x13_\xdf4rS\xf1\xd4?~\xca[u*\xeb\xa2\x14\xe7\xf8\xbd\x90Ç\xa5(}\xa5\xbd\xfa\x12\xb2e\xa1\xc5=Y\xb0\xb9!\xb3\f\x96\x10\xe2\xf6\xb4\xd25\xc9)\xa7s[\xecO\v\xef\xbe\"B\x12\xc3H$K\x83RUk5\x14\x17i\xae5Æ2A\xd3F\x1f\xa7\x90\xc5g\xec\x0e\xc8\x1b(2\xb1r5\xfdxJn4Ն\xed܀\x0e\tȊ`\x0f\xb8\x8eI\x99e\x13\x91\xb1$\xc06\xdf&\xb5+\xa4\xb1\xa2\xcc2R \xa01y\xcf\xf1~\xb8\xc8\xee\xe9*\xc8\xdfx\rK\x90g\xe4jv-\xf4Īv\xedl\x05\v2\x00\"\x9b\x91W\xb6\xa3\x11\xd1t\x8e&\x84\xba\xb2\xb6\x90\xadO\x05\x80\xc5\v\xe2\x9e)x\x96\xec\xd2\xedG\xedw\xf8Ms\x15ڿ\x9f\x94`26\x83d\x95d\xb1\\\xe9\"\xc1pɺ\xa0s\xe3|\xaa\x95\xd2\x10\"\n\xb9\x02Jh\xc4`X\x18\xaf\x10\\\x81- \xe6\x8fj5\xe3P\xf3\x93\xea\x95\x18\x1a'\xa2\x15B\xe9\x1bM\xe5Ae\xaa\xea\xd1>\x8d\x13\x0fĐzB\xb3\fR\xc2\xf2\x1cRF5\x04\xa7\xf7\xf9:\x85-\x1b\x1c6\xa1s%\xf0\xc2\xef\xff\x05\xe5i\x06\x12\xab\xb29\xab[\v\xba\x06\x993N\xc3\xca3\x90*\\\t\r\x84\x90\x12\x9a$B\xa6\xae\x12\x96\xafuDe\xa8]\xa4\xe2h(\xed4\xe8u=\xea,\x10\xee4\x13ɝ\"%\xd7,\xab\x8b\xdf\xf9\xcaw\xae}Z \xcc\xc3\xe5\xe8\x06\x1b\xa9\xfesT\x9d\x95\x11\xf6\x17:\xff]\xfdO\xf8C\x98\xd0\x1a\xaf\xa5\x1cR]ts\xacU\xd8\x03$\a\f\x04\x14\x1c\xe2]\xc53a\xc4\x10CFu\r\xc8\xea\x02\x19c\x81\xc4\b\xa8\xed\xee\x1a\x14\xd9\"V\x89\xa2wA\x15\x1f\xec\xe8\xe7\x97\x0f\xae\xb0\xd2\x1c\a\x14P\x8d\xf4\xc0e\x8cC\xb3\x92*\xc3\xfa\x8e\xed3\x17\x1b\xc9d\x808\r\x92\xa4LbO\x81\x95\xcf'\x8c\x84\xe9K\x85bEu!499>?>\x8d\xcd\u007f\xf60}\xbd\x15##g`\xefH\xf4\xff\xf4\x9c\xa5\x11\x83X^d+\xc4\xefqzFX\xac\xb7\xd5%:ʒ\xfb=rErΈ:\xac\x8a\xe1\xe6В\xfa\x9a\xe5\x16\x96\x01\xadei\xe5\x87H\xa0'ǿ\x1e\x9f\x11\xd0\xc9)\xb9\x17\xfcX#\t\x8cɭ0z~$\xccj\xa9+Q\x12\x0e6\xb7\x1a\x1e\x8a\x8c%LG$\xd3\xdba\xaem\"Jm\v\xc7a\x8b2,:t\xf9\x10\xbdK6\xcf\xc3\xf0\xc1\x17x>\xed\x15N\xa8\"\x19[\xc2\xf9\x02h\xa6\x17\xb1\xf35\x14\xc5\x05\x1f\xfd7H\x81\x05\x8d\xb8\x83\x17g3\t\xf6\x105G\xef\x18\x89pE}\xfd\xdd(\x17\xbc\xb9\xb6\xbf\x85@яl\xf4\xfd\xbb\xbd\x9d|\v\xba}\xc1D\xa0\xc1\xcc\xc6\xc7~\xa3Y\x17\xe4Lȍ\xa6\x95\xfbG\xbf\xbbi!T\x04F\xc8f7D\xa5m%z\xab\x1c\xf0\x18\xff\x98\x1dZ\xb4\xd3v\\d\x1d\xb9\x9a\xc4\x06\t\xfdU\x94\x06KS:\xcdVU}K\x05\x9a\x1c\x99i\xc7\x06\xd92\x8e{\xf8\x17\xa0)\xd6\x11\xe5J\x03\r\xd0`\x9a\xa3\xe7\x91j\xcc\xe31\x84\f\xdb\xc9r\xe1\x16v`\xa1\xdc\xcd\xd1(\x06\xe4\xe8|\x8c\xa7'\xb6\x0e\x86\x1d\x12\n\xcbX\xdd\xfc>\x01\x03\xdc\xe0\a\x16\xf7\xee\xf7i\x8f\x189\xeaۈ\xdaŹ겥ꑍŸE\xba9\x00\xd13\xeb\x1b\x97JzFJ\x92.O\x8f\xc5Q\x0f\x88.+/4\\j}\x91\x91\xfb\x18\xef\xee\xef\xe5\xea\x8fw\xf3ǹ\xf8w\xbb\xf7#\x8d\xf0\xbd\\\xfb=\x88%\xce\xf8\x1eix\xefkt\xefip\xdf\xed\u008fܸ'0\xb4\xef0\xb2\xa3\xb9<\x02d\xb7\x81\xbd\xaf\xa9\xfc\x91\xcd䱎\xf7\xddN\xf7\x86\xfb\xa95\xf1\x91\u0096v\x87,\x91B\xc4\xe8\xd8Q\xe1J\x83\xa6t\xd0\xd8\x1d\x964hJ\x9fVS\xfa\xdcu\x81F\r\x89o%M`\xf2H¡gF$-%u1\xb0^\x90\x8b\xd0\f\n\x91\xa2\x13\xda\xf2!_4\xc4V\xbd\x98\x95Yp\x86tY\bޮ\x9bc\xeb\xbc4\xcbh\x84^s։ձ^'脟\xc4B\n+\xb0\x11YrnnPwj\f:\x8cF\x13\xd8닠e\xbdY6D\xb1\xb9\xd9$# aE\x11\x96\x03\xf6+\x8f٢j\xb2ff3!\x136\xcdVdA3\xdfT\xe8-\x94\xee\x15\xf8\x1a7\xf7L\xc1Ys\xbe\xbe\x95`\xcc\xf9\xb4\x10\n)\x96,\xb5\xed\xdd=\x99\x1a\xf91\x94\ac\xb3\xf8\x8a\xa3s\xc1G\x1c\xe6\x14u\x18w\xc9\xc6T\xa4\xb2s\xb4Q\x1d<\xc5\x16\xf2\x8a(,\"\x16]:l\xc9(\xae\xb4A\xa9\xe4\x84\v\"P8-9ӡ\x10\xb5 jQj\x92\x8a{~:\xb6m%\x99\"\x94LA\xd3('\x87m'\x86א\"\xc0\xe943\x9c\x04c9o;I,T=\x04\xaaK\tdN5t\x863X\x1a\xd8I\xce\xe1\xbc\xd6\xfa\x02g\xa4\xe4\n\x02s)\x1a:ٟ\xfe\xf9yt2\x96\x83(\xf5gcl\xbb_\xb0d\xd1\xd4\xe9Y\x0e\x8a\x882>Q\xc9h\xebnJ\xdd4\xf0\xa4m\xe0~C\xf6\xb9\b9.̹\xdc\xe1YY\xabpV\x87\xdb\x06\xac\x97\x1a\x1e\xf5\xe6\xfa\xe6\x97\xef/\xfe|\xf9\xfd\x98\\\xd2d\xd1,\xa8\xc8\t\rT\x1e\x91\xff/\xe8\x12\b%%g\u007f/m\xff_rR}\xe5\xd4\xc7j\a@\x8d\xe9\x82\x19\xa1\x9f\x19\xf6\x1fp\xd0[\x9b\xf2=SXv\x0ea\xb8B@BAh\x8b\xf5\xb6\xc6F.\r\x10k\x85A\xedn\x01\x86g\xb3e\xd0}o`\xda([BӪ\xb4\x929\xa8\xe6\x94\x18\x89\x92NE\x19\xa4\x80,\x80p\xd0\xe6\x04W\xde\x1f\xc1U\xab\x1ag\xa9 \xa8\xf9\xee\xb4Ħ\xa1\x85d9\x95,[5'hD\xc9k\xe1\xedZ\xab0\x8d\xbb\x89\xba7\xef/o\xc8\xf5\xfb[RH,hhcZ\xf1\xdf\x037j\nf[\xec&\xa7cr\xc1W\x16\x8c\xe5\xd2L\x91\x8c)\r\xc0\xa6\x99\xa5\xce@\x1d\xc7\xed{\xaf\x0e\xb5\xc1\x81Kk\x01\xf5nE\x13\x83p\t\x85ퟬ\b\rb\xf5\x9e\x80qېՙ\x93\x96EZLb͈Is1\xa1v\xacN3Ҭ2\x04Y\xea\f\xb6\xa5\b^\xab?\xe4j\xe2\x89\xcfɵ\x86\xc3\a\x834Tg$\v\x96\xda\xc9٠\x803\xf2\x82\xfc;y \xff\x8eF\xa1?\x85\xea\a\xf1\xb7|\xbcPh\xad\xbeW\x93^;\xf5\xa3a:\x06\x8e\xc1\xae\x16dʬ*\x1f\x8cVx\xd0 \r3w;\x1e\x8a\xc1h\x1b\xa6\x99\xfcgG\xb06\x86\xe0j\xd6챮?/\x92%fz\u007f\x11J_;\xe6\xd3\xee\bof\x1b\f\x11E\xae\x9c\xead\xd1\xe6\x8cF|W\xbaf0\xe1\x90S\x81\xd906\x91d\xc1\x82\x9d\xb9\x9f\xe6\x80Ƅm\xb6\xe8\xf21)hͰ\x8dz\xbd\x93\x8bm9\xe4p\x0f\x8be\xcdNX7\x8bM\x1bWX\x8c\xabg\x8b\xcc\xeel\xf41e5\xea\x04i\xc3\xe9\x12\xcam\xa6\xe7\f\xa4\xb4U2\xa7\xe19>\n\xe4\x92%\x10L\x84\xd1<\xae\x90B\x8bDd\xbdhi†\x99\xd2:Q\xdfE\xd2\xd2\x0fo&g\xe4\xf6\xf5\xe4\x8c\bIn^\xdfN\xfa\xe4\xb0\x10rt\xfbzr\xf4LȌq\xa8\x8cڢQЛ~\xebBT\x9a\xf8\xb4\xec\xb0\xc8ؖ\xa7\xca(\t\xa3\x9c\x16\xa3;X\x05\b\x8e\xb1\xb8\x89\xc0\xcc\xe6t\xed\xa2szhڏ\x04\x9a\xb2\xcf$\x13\xdd1\x91zN\xdd)\xe9\xb9X\x06\xd9QP\x8d\U000b0067\x85`F\x1fq\x8d\x13\x9ay\xea\x01@\xb7d\xb4\u007fz\vې\xa7\xde9\x86x@\x95\xd8\x1a\x96\x05\x82\x97I#5\xfa9\x1b~%\x82\xcf\xd8\xdc\t_\xe79\xe5t\x0e\xa3\n3\xa3:\xc5\xea\xfc\xa9\xa3\xa83\x96\xb3\x90\x1cu3\xea\xa4\xefI\xb4\r!J}\xed\xa7\xbc\xf6R]\v\xaa5H\xfe\x8a\xfc\xc7\xc9\xdf~\xff\xeb\xe8\xf4\x9b\x93\x93\x9f^\x8c\xfe\xed\xe7ߟ\xfcm\x8c\xff\xf1O\xa7ߜ\xfe\xea\xff\xf8\xfd\xe9\xe9\xc9\xc9O߽\xfb\xf6vr\xf93;\xfd\xf5'^\xe6w\xf6\xaf_O~\x82˟\x0f\x04rz\xfa\xcdׁ\x13}T\x85\xb0}\xf2\xbeGZ\xa9\x83e\x90'\xe7\xf4\xc1\xb0\xcf\xd0\xed\xcfEɵͺ\xb0ǹ\xa2~\x1bX\x14\x92\xfdmG\xa0\x97\xe4)\x8e \x89Wm]l\xd5p\x12\xf7\x8e\xe1$\x92\xe3\x0f\x8eZ\xd6Ϣ\x15e\x1e\xf1,\xfa\xab5\xf40^\xcdH5G\xa6\x88ș6\n\xac\xd1Yi|\xd2\x06\xd3-\x13\xaf\xe3G\x98\x15E\xb1\xd8G\x1d\xc0\x1f\x1a!P\xe7\xe7\n\xafo\xa2I\x91\u05f6z\xe4\x14\xa3\x14f\x8c\a\x87;\xa2p\x19\xec\xc9\xfd\xacxT\xc4K\n\x92R2\xbdz-\xb8\x86\x87\x00#w\x9b\xdao\xda`\x88\xdd\x02\x15h\xa3\xf2\x93!\xa2\xb0I(k\xe5\x8e|\xfeV\b\xd3.9ڊl\x91\x00\xd0\xd6|\x82j/\xe6z\xacM<\x00\xb27oX\xfb\xcf\xdfK\xb6\xa4\x19p݀=Au\xb4\t>\xe4\x8c\x1eF\x88\x9a\xaa\xbb\x9a\nadT\x95\nc\xe7\x1e\xa1\xf8\x13<\xe8'\x97UQ0\x98H\xb6d\x19\xcc\xe1R%4Ó\xd1GE\xbd\xd8\x023\xf0|\x1b\x14H\x91)r\xbf\x00\xc3?\b\xf5\x866\xccV\x9f\xd3\xe0@\xe0\xdc\xecP\xe1'\xa6\xac5а\xbb\x82JC\tގ\x17l[b\x8aL\x85\xc8\\\xc6[\xb6\xaa\xe7\xee\xd2K\xb9\xf8\x85\xc3\xfd/\xe6\xdb\xc1\xce\xf7\x8cΫ\xb4W\x05z\xc3\x17\x13;\xedm\xdbd\x93\xa9J 4\xbb\xa7\xab\xd0\xe9\xde/`}~L\xbd\"/O\xf1dSE\xaa/\x86\xf2\xfb?\x9cbT\xd0\xeb\x8b\xc9/7\u007f\xbd\xf9\xe5\xe2ͻ\xab\xeb\x18\x1emv\n\x82\x1a\xab'\xb4\xa0S\x96\xb1pQp#V\xb9\t\n/\xc34=O\xa5\bM{A,{\x9f@}g\xf5\xc9Dj\x16\xb5B2\x9b\xb5';\x97\x94\x87\xe7$8CpM\f\xb2\xe4\x9a\xe5ϖvKӾ)\xb7\x17i\ni\v\x15\xc1\xf0\x1e'\xb7ⵟª\xae\xa7\x15\x01\x93\x90\xc9\xfb\x9b\xab\xff\xb7F\x89\xab\">\x14\xfc\x99\xb3\x14\t1\a\xa6\xe7\xae~\xb0\xf5\x03\x86}\xed\x1c_R\xf6iu\x9f\xf7\x89\x96\xfbP\xf2vM\xcd\"\xf6\x96\xcaE\nc2\xa9|\xa1-X\U000457a8\x04b\x00r\xcdh\x96\xad\x9a\xf2\xab\x1663>X\xc0ꎕ\x9e\xd1L\x05\xb2\xe7\xd8{\xd5\b.\uf322\xdcc\xe7*\x18$\x05.\xb4\xd3\xda#\xe8^\xcc\x10\x16\xb1\x9a{#$\xbdu\u007fE\b\x87\xf5\xb5ʔ\xc7\xf4\xa4\x9a5zb\u009d\xb8몖\xbbV+]>T\xc8\x14\x12\xeb\xad`厂ꅍ\x99̩\xba\x83\xd4\xfe\x10%\x15WnG3\xdbjѷ\xab\x02\xbc\xd70F\x1a\xb6\x11\xa8\xe8\xc9\f5\xa3D\x17G\xa2\xe9{\x9e\xad>\b\xa1\xdfV\x85&z\x90\xed\x8fN\xa7i{L\x8c\x80\x1b\x1c$a\xe66\u008dC6Ш\x83\xe1\xa9-ܹ\xfa\x8cL@\x96\xfcB}+E\x19x\xa5o\x88\xd6\xdf^\xbdA^X\xba\b\x0f\xae\xe5\n\x8b\xfc\x843\x82n\xfd\x8a\xfc\xe0\"q\xccI\v\x15Y<\v\xf0\x0ek\xf2\x8e\xae\b͔\xf0j]\xb06\xdba\xad \xcehbn\x9d\xa9\b\x0e\xb8Y7\n\x19\x16\xb0\xf9\x95P\vc\x1d\x1eRY\x04\xcd\xfc\xe2\r9\b\x94ށ\"\x85\x84\x04R\xe0I \xad>\u007f\x00\x00R\xf9\xb5\xe0\x86\x81\xf4\xa0\xf3\xab*n\x05ͳ-:\r\x15TJ\xa5\xbdNN1\xc6\x06\xd9G\xa9@\xda@&YB\xccV\u007fWN!\x03mM\x16X\x9b\x93jksc9\x9d\x87\x9e\x1b\xaa\xab\xabM\v\x02\\\x95\x12\x9ciZ\x93T@L\xf4\xb8[\xf4\x0fWo\xc8\vrbV}\x8a\xa4>\xa3,\xc3\xf0\x1bM\x03c/׳\x97\xd8\xccO\x0fQ\x89'\x9e\x04\xd7hD&|F\xb8 \xaaL\x16\x1e\x97L\xf0\xca\x1c\xe42g\"\x1c{\x1b\xccg\x1b;\t5\xfa\xd7\xcc\xe7\x1f\x87\x9d\xf4\xba\xfa~P {\xde|?<\xf9\xcd\x17oV2\xfc\xa4\xbdS\xc8\x06H\x0e\x9a\xa6TS\xc2BI\xac\xe4\x8djp\x03!\xaf\x01\xfd\xc2\xeeE\x05\xdf3^>\xd8h\xf1\xbe\xc6՛K\x04F\x9c\xf3\xc4\xea\t\xa1\x17NQd\xcc\x16\xc0]\xeb\xf3`\x19y\xe5\xd4\xecuA\xf8;\r\x199\xcd2a.\xf5pɟ\xf2T\xe4\x1b\xcb6\xca\x1c\xb4\xba\x84\x8c\x91\xe3\x87\xc2\x1f\x8eU\r\xb4ױ\x8a7_g\xb0\x84\xe0\xe2\xc6\xeb]O\f\f\xa3\xd4y:A\xa0\x11V\xc1\x8cN!\xb3\u0097=%j\xf3\x94DZ\v\xa3L\x8dRd}\v\x10|\x10\x19\xd8\xe8j\x8f\x1c\x03\xf47\x80\x1b|\xb5\x1fn\xd0J\xd3\xc2M\xa45\xf9s\xc3M\x19,q\x91u\xdc\x18\xa1\xad\x8d\x1b\x03\xf4\x8b\xc7M\xa4\t^A\x92\x88\xbc\x98H1c\xa1Gr\xe3\x12w\xc0\xea\x90\x12\xb4\xc4Ƹ\x1d۱\xc8h\x19i\x81\x8e0\xc1W\t.T\xdb;\xccg\xb9\xfc\x9fh=\x1c\xb9\xf1ٚ|\xe0\x17\xefcV\"\xee@3+\a\xe6\xd9n+\x91\xd0\fێ\xc4P\x02Y\xa7\x86upu\xd6N\xc4A\xc3\xe0\x11\x84\xe2\xa2\xcdl/\x06\xfc%\xba\x10\x14\x17)4\xaaT\xdb\xe4\xaa[\x9bUa G\x80\xf4IOF\xd6\xf0AB\xa9\x8f\xf90ߋq\xe7\tW\xdaחG\xa0\x88h\xe0)\xe3s\xb4\xeeǔz\x96\x90ٔ,ǰ\xee\xac\xe1\xe7\x18O\x9d\x9bx\x04X\u007fH\xfdv\xa1l\xcc\x04w\xb3\x17<8\x10\x91\xd8\xde\f(zΐ\xc7\x19\xd6}\xf4\xbd'\xaf\xe0\x0e\v\x9f\xfaf>\xb2k\xa8l\x811>$3\xee\x18O]&Q\v\xe5q\xa9\x85\xa4֞\xc6\xe4#6\xe5\xf1l\x8cJxE\xfe\xc6I\x85\xf2\bУ=G8\xe6\\\xb8#\xb5q\x84?X\xf5,\xce}b'\xbb\xd3=\x17\x01\xd1/}}\xaa?pX$\x8d\x14q\xee\x19OŽz\x1c;ŏ\x16\x98WP\x13Ú4\xe3\xf3`\x89\xa4\xb6U\xd0,kŁ\xf57V\xf8\xb3\xeb\xdb\x0fv\xa8\xe6\x81P\xbd\xd5\xda\x12n\xdbS\xd5S?\xdfb:\xe82\x06\x84:C7L\a\x9f\xcc\x180\xcf\x15}-\xcd75\xa3\xd9M\x11ګ\x83\xac\xd3\xe2\xb7\xefn.\xda\x00\xe3\x1a3\xdcc\xdfN\x83k\x03\x91\xd04gJ\xa1\x9f\x02\xa6\v!\xee\"@\x9e\xf8\x10\xea9Ӌr:NDވ\xa6\x1e)6W\xe7\xeeL\x8e\f^N#\xbe\xc1x\xe6cޭ\xed\x8ck\xe5m\xe0f!\x11 \x93\n\x9bHp\xae\xf5\x97\v\x82\xdcD\xf7u\\\x89\x1e\x8cX\u007fV\xa1e\x93\xf4\xae\xa3\n\x1a\xef!\xbfH|\xb8\xca\x1b\x8d\x8a7\x96\x10\xeb݈\x91C\xcd\xfeY\xe5\xf3yK\x95[\x85'\x01շT\xf9_jH$\x05\x9b~\x1f\xa5;\xb1Y\xabGm-(XOj\x946v\x8c5\xaa\xdc\U0010e6ca\xfamL\x83Ew(\xd0&\x93\x15\v:B\xb5\x1a\xef\x05\xbcv\xe2Ն\x85\xe0\xc2&Bc.\x97\xe0\xc8&\xd0bc#\x90\"\x05O'\x0446\xe9u|\x17Ⱥ\b\xc3,\xa3s\xac\x95b\x04\nk\x04\x89-\x8c}\xcf\xf4\x02۵,\xa0\x05\xdebT\x82\x8a\x93d\x19' \xa5\x90\xcaF\xb1{\xb76\xce\x16\xa5\x8c\x98\xe2R\x17f\x8f\r\x99N\xb0#n-\n՝\x13#\xf7I\x19\xae\x02\xb3\x19$\xa8\xec6\x0fUl\x05\xed\x13\xa6}w \x97\x98k\x18\x8d\xeb\ue633\x87\b\x90b֚Yc\xfd\xbe\x9bM\xe3\x9fc.\xb6\n\xe0阐+^\xa5ɞ\x19\xee\xd0\x0f\xb6\xcf7ц\x1c\x9a\x8dWq\xebh\xa6bJ\x839\x85_\v\x84\x1d\xcb\xc1\xc3}\xfa\xa4\xe9\xd7\u007f\x84K\x12\xfd\xfb\x0e\x949:\x8em\xc4Y\x816#\x046|\xfeq\xaa\xe9F\x94\x00\x02m\xfb\xfe\xe3X\xc5F\xb4@\xcb\xff\x1f\x01\U000f0201\b\xc0\xbb\x15\x1a\x12ק\xedi\x94\x1a\xf2\x14\x8a\ryv\xcfCL\xfa\xac\xad\x02۫\xcd\xe5M\x03F\xc3\ngD\x82\x805\xbb\xcb\xceV\xba\xae*\xe8f+_\x9d\x9b\xfd\xb7ՒC\xfc0u\xc65\x176\xe9\xbaY\xfe\xda\xf5\xfa\v!\x96\x92k\x96yWJ^d\x80%\xb3\x1a\xb3\xadj\x9e\x05\x00m\xf4\xda<\xab\xd0P7\xf6te\xbfCl\x16\xff\x85\x17E\x95m\xe9\xeb\xfeN\xaa\x0fY\xbb|\xd0,]Gd,3\xa5\x85\xf7\xfc\x90\x94\xcdf\xe0\xb3E\xa7@\n*in\x84\xeb\x10\xd8.ts\nsfS\xf8*\xd1\xe5X\xd5\x05hC0\x80\xa2\x14\xd3$g\xf3\x85=Ȅb\x89<\xe2c'3ASbxh\x00T!\xc9=\x95\xb9\x91\xfei\xb2\xc0jq\x94\x93\xb4\x94\xd8\xffL\x03MW#\xa5\xc3BWD\x01\xd2\x19\xf41E y\xc6\x1aAC\xb3\xd5\xedch\xb6:4[m\x8c\xa1\xd9j5\x86f\xabC\xb3\xd5}/\x0f\xcdV\x87f\xab\xbb\xc7\xd0luh\xb6\xda9\x86f\xab\xcd14[\xdd5\x86f\xab\x87\x8c\xa1\xd9js\f\xcdV\x9bch\xb6z\xc8\x18\x9a\xad\xfe\x03\xb7\x10\x1a\x9a\xad~^-\x84\x86f\xab\xbb\xc6\xe7\xde`ih\xb6:4[\x1d\x9a\xad\xee\x1dC\xb3U7\x86f\xab_\x12\x11\r\xcdV\x87f\xabC\xb3\xd5\u007fTMih\xb6\xfayiJ\x9f\xbb.04[\x1d\x9a\xad\x0e\xcdV\x87f\xabC\xb3ա\xd9\xea\xd0lu\xdf\x18\x9a\xadn]\xe1\xd0lu\x03%\xcf\xd5lU\xe9\x94\x05\xb4G:\xa4\xea\xb7\r\xbd\rX\xae\xaf\x18h\x18U9\x9b\x81\xc4\xcb\x14g\xb6\x11\xad\x19\x00\xd6\xf7f\xa9\xaeV\x17U\x89m\xb8$\xd0\xd4V\x03\b\xb1\xb1uNɗ=\xbc\xa7+\x15\x9eG\xc88\xb9|\xff\xb66[\x86\x97+\x8f\xc9\xed\u0095\xbc\xe7Il\xd6H\xbd\xf5\x1duAB0jô\x93L(\x1bAlQ\x9c,(\xe7\x909\xe17(\x84vA\x15\x99\x02p\"\n\xe0V\x9c\xa0D1>πP\xadi\xb2\x18\x9bهH\xa9n\xdb\xeb\xbc>\xf7\x8b\xd2\x12h\xee\xf3G\xf3\xb0\x0e^fz\x84&R(E\xf22Ӭ\xa8&H\x14`\xc1\x01\x15\x9a0\xe37\x15Ð\xebt\xc1\xb3z\x05\x16)!\xd3lv\x12A;\xe8\x19\xb6Q\xcc\v\xbd\xaa\xf2i\x80̘\f*\x83\x93d\f\xcdm\xb8^[%\x0e\xe7x\xe6\xd5\t\xee0\x1ar\x97X\x94\xf2\x14-\x0f\x85V\x98\x1fҘ\xa4\xfbhʔ\xb3R\xa9\x900u\xaa\xfd\xd5g\xc4\xfd\n\xa3H\xba\xa9\x13\x94Bg\xec^nL\xb1\xd1f\xacN\x1e\n\x11Q<\xb3\xc3\xd4f\xcfL\xceZ\x19\uf576\x15\"\x85,\xa8n0M\xb7~$}\x0eKs\xf6!\x01\x16\x94\x96L\xb7p\xbe'e|\rI\xf2\x1d(E\xe70\t\n\x0e\xd9f6\xc5\xf8\x90\x9aD\x82\xd4u\xacW\xa4EC\xb2\xaa\x93\x13\x8eUs\xca\x01@s\xbb\xba*\x13\xed^2\xad\x01I\x16{\xc2`4\\\x90\xe5lcb\xcd\xde\x1c\xef\xfc\xe7\xecgB.@\x85r\x0eOmf\xda\x14\xc8T2\x98\x91\x193\n\x91\x8d\xd4?Ú\xf1!\xb4e]\x0eJ\x81D[\x853\xd4x\xac\x8cɏ\xc1*\xb0\x96%O0M\xc0i\xa8Xk\x8b\xcd\xc8\x1c\xb3\a\xa45\x10\xfc\xf3\x8b\u007f\xfbS\x00\xd0\xe9\xcaȤ\xa8bj\xa1iVm[\x06|n(\xca^\x104\v\xf1\x8f5\xd2\xe5\xfd\xeec\x13w\x8b\xe0\x97\u007f\xb8\x9bF\x89\xeaZ\x90\xf3\x14\x96\xe7\rz\x1ceb\xde\xd5\x17\xffp19\xc2|\xddq\x84EƒU\xe4!\xf6M(\xc8B\xdc[CV\xaf\xf3V'\x9e\x15\xa2(3\x1b2\xf0\xb6\xaaC\x17V\xfcs\xa3\x96O'\xf7\n3\x80\xfbi\xadw\xb7\xb5)1~\x19Ak\xc7\fq\xe7ʭzO\xa0]\xf4-Ͳ)M\xeen\xc5\xf7b\xae\xde\xf3K)\x83\x1aGx\x9c\xd9DX\xaa4I\x16%\xbf\xb3\xad\xa8\xfd\xd43\x11\xe2\xf9\x10\xa5.J\xed\x93k\x9b\x06M\xbfv[\x9d3\xe4hXq\xc8[B\xeb\x99\xc1\x03\xf3\x06LÏ\xb0PH\xc8en\xf8B&\xe6՜U\xf3 \xff\xe1\xc5?\xff\xabe !\xab\x97\xe4__`\n\x9f:\xb3\x17\x0e\xde\xdeF`\xcci\x96\x81\x8ce\r\x86ĻX\xc1\x93r\x02\x1d{\xe8\x9f@u\xbd\xbd\xfd+\xea\xadL+\xc8fg\xb6*\x83\xb7\x9d\x05\x80\xc5\x16U9}t~o\x19u0\x16\x90\xc9tY\xa4U,Ď\xab\xa2\x89\xea\xa3\xf0\xfa\xfc'v&\xc7\n\xeb\xfb\x04ou\xf4qp\xdbt\xf9P\x04w^jm\xd5\xe5CA\xd1\xee]\xb4\xf7,\x18\x11\xee2\u07beg\xb1\x10;\xf6\xecϰ\xa0ˈ\xfbL\xb1\x9ceTf+\xb3\xd97\x16\x83dZj\x02|ɤ\xe0yx<\"!K*\x19\x9df@$`\x1d\xbb\x04\x14\xf9\xfa\xe4\xe3\xc5\a\x8c\xdf=57g0L\xf0\xbbR*_ƷI\xfd\x8d\xe9\xf6\xe3-GG\x1b\x04\xec\xf1b(+\xfc&\xe6i\x85W#1\xe4\xa5.i\x86\xa5\xa8\x92\xacTl\xf9\\\xf7E\x9c\x96VI\xbb\xbf\x01%͕1{\xc3\x02\xf8\xc3Z\xb1\xb6\x9a\xe06j\xa2\x05\xba\x83Q(\xabkiv\x86l\x04q\b\xdf\xfd\xbd\xd9\x01\xc3\x19\x93]\xc5F\x9b\xe4\x15\xde5i#\xb4\x06\xeb\xe5>\xafY9\x8cz\x03(0\x90\xf6B\xa8\xce\xc5\b\x1e2\xe5\xb6Pj\xdfs\x1d\x88\xac\xbd.\xa7\x0f\x18\x80G\xf1@\x1e\xb421\xb3A\x11\x1f!\x03)\xfc\xa5qO\x99\xae\xf2\xff\x18g:\xb0\"<**\xb6J\xeb!\xdb\x1d\xb0\xd1\a\xee\xc4A\x8f\xedۦ\xdd䴃|\xf6|}\xfbw\xb7\xbe\xc8x\x92\x95)\xbc\xceJ\xa5A~\x00%J\xd9a\xe1_\xf3\x8ev\xbe\xd3H\xed\xbbw\xae\x94\xc4>2R\x89(:\x0e\xbd\xac_\xadd\n7\xa1ԧ\xefcVh\x95\x01ak\x1c)-$t\x06B\xf12\xcb֒\xcc:j\xa3\x9b\xa7\x8c\x84Й\u007f\xb3]R\xf7S3*\x9a*\xe8\x81hj\xdb\v%vR\a\"\xc4>\x8c\x04\xca-o\xc3T\x12\x84_-\xefj\xe6\xda\xed\xd9\xf5\xedX\x04S\xe4\x8a\x1b&\xe3V^\xa5\x82)\a\xbc\x99Å\x1c\xc9C\xdf\x01\xb4\xda4\xa6<*\x85l\xe1kˇv\xc0\x9c\x02q\x9fG\x1b\xae}\a\xc3s\x8b\x8c&\x90\xfa\n\xf2\xd4\xe0\x82j\x98\xb3\x84\xe4 \xe7\xbb\xe6Y\x18>\xb5}\xeb\xf6\xba\xc1\x0e\x12v\xfb\x8a\xa6w\xd0\xfd\xdeh\xf7\xf6F\v\xae\x8e\xdf\xe3\x05\u05f9zߥ\x87f\x93=\xfci\x0f~6\xef\f\xfbQw\xd1\xd2\xc2P\xf6\xff\x18v\x8a\x84\U000bf920L\xaa1\xb9p\x99\x04\x9d\xdfl>\xef$\x8f&h\x03\x95)bp\xbe\xa4\x19\xd8⨔\x13\xb0\xa5':A\x8a\xd9ƍf\x14m\xa1,\x17\xaf\\\"Gw\xb0::k\x9d\xbcm\x01lGW\xfc\xa8\x8a\xb2o\x9f\x03\u007f\xcf\xd8\"\xfcG\xf8oG\xe3\x8dK\xb0\x13\xec\u038bq\aEl\xfd\xa7J\xd2}g\x03k\xd6\xf7\xf90Z\xd8A\a\x1bU\xe2\x9a_k\x11BS,m\x89\U0001b7e3r\x0e\xbaK\xd8w\xb2*\xba\xd9\xc7䂯6\xa0v\x173\xa9T\xa4\x8a\xa2\x8aVs\x11l憾\xfb\x06 \x176\x83\xbd\xbe\xcc\xcf\xeb{\xb2\x15\xe9x\xd1\xc9%\\\x8b\x14&BnF\x18\xb4=\r\xebOwh\x85\x8d\xa5\x8b,Ři|tc\xa1(\x87:\x19\xf4qT8\xf7\xdd\xc9\xc7ݫ\xf8P=\xb6{\xfa\x14\xab\xe6\xbbݘ|ܲ\x02\xc5i\xa1\x16B\x93\x13\x9fޛd\xa2L]v\xb3\xdc\xf0QD\xaeM%\vH\xcb\f\xbaZrm\x94\xc9\xf3\x0fz)\xac\xe4\xec\xefe\xbb\xc1\xa4\xb7ܸ\xa77\t\xbb\xc6C\xa5\x966l\x8a\x86\x9d\xfc\x19\xf7\xce\u007f\xc7\xe9c\x0e\xae\xa1\xd8.\x8b@\x05\xd0ҶP\x1a\xf3H\xb8n\x14\x86\xf2\xea[\xe2\x8a\xf4\xbbǙ\xaaf\xdbM\xde\x1b\x87\xbe\xeb\xba\x1b9\xe8k\x9e\xd8\xce\x03b#\xa4\x9bow\xd1э\x8d\xa3Nh\xa1K\xe9۱\x96\x12{\xec\xd4m\a\xa8njCB\x03\xe86\xd1\xdb\xd9\u0098\xe0\xb7,\a\xa5i^\xec\xdc\xf9כ\xcf\x1b\xe4\n\x99\xaa\xba^CC\x8d\xae[\xd9lj\x91\xb4n\x98\x94\x8e\x1b\x90-\x10\x94\x85\f`H\t,\x81\x13\x97p\x81\xbe^\xab\xa2o\x80\xbcE\xd1_.\xd1\xc2\xed\xa1`d\xe7LH\x82=\xa9\xaai\xaf\x1f5\x9fV\x9bR\r\xa3\x8e\x84\xc3\x03\xceTǍ`\xbb8\xeeD\xe9\xa5m\xf4\x88wC\x82QFf+\xb3̾\xeb\xe3\xc7];\xcd{\x90@\xe6\xc0\rR;\xecaNh\xb4MT\f*\xddI\xac\x8c\x1a\xb7\xb6ߌ\xd1\xd5]\x83I\xac\xda\xe19\xfe6\x01\xcb<@\xe7[\xceDWB\xb1\x8b\xd5\xff\x00TmF\xbf\xb4\x96\xff\xb6\xf9\xa4\xd3\x03\xecʭ\x9aJmw)ۑ\x8fI\xe8 n7\x19\x81_=\xf0\xdc\x12R,\xa8\xda\xcd\xe6&扪\xb5M\xe3\xb8U\x1c\xeeC\xe7\\\x80\x97\xf9:\xe0\x11\xb9\x86\xfb\x8d\xdf\xde\"A\u007ft\xed=7\x0eɈ\\\xf1\x89\x14s\xb9Yer\xe4\x0f\xcc\x06\x15\x8cȄJ\xcdh\x96\xad\xdev\xf5\x94\xf0_=\x18On\x02{nm\xfbP-\xee1nO\x94\xa1B:\xf5=R\xdd\xe6\x1d\xab\x9aF76\xd2\u007fpl\x948\xf0J=k\x83Đ\x1d\xa5G0\x9b\t\xa9\xadp9\x1a\x116s]\xf5t\xae*0 0\x8b0\xdb)5\xb1\xce\xdaN\xe1\x1a\xf3\x99+iO\x99\xd3ӥz\xed.\x1a\x80\xf9eW\xdb\x14˶[\xa8z\xd4O\xdc&\xa7mL_4\xc5\xd0m&4\xa6\xfc\x8bf\x87\x92\x05V\xed\xd2\v)\xcayՐw\x1b\x1b\xec6\xa6\x95\x98.Yd\xe5ܐ\xaf3p\xe9R\xf2\x86V\xe0L^i=\xd5\xed w!n\xab\xac\xacZw\xd4n!\xac\xf5職\xb0\xb9u;\xb8\xbbM\b\xfe\f\xef\xcfe\xc5\x1a/\xf7ߤ\x1f\xd7\x1e^s\x05\x98;\xb5\x86\xe7\xef\xbf\x13\xb6\xe9\x04B\xababf\xbb\xde3\xff\x99L\xfa\xf7Tr\xc6绗\xfb\xa3{\xa8Ctp\xef?\x9d\xf0\xe0'\xd8\x16\x1f6@Z\n\x0f\x15\x1f:N\xc7\xdaOK\x90ʚ\x0f_\xd6\u007f!\xb6\xac\xef\xd3\xfd\x03\xb1Ԝ6p\xef\xa6\xe2~\xa9\xa5o\x9b\xdd\xef|m\x16\xedw\x8c\xa7\xaf|\x04Y\x91\x95\x92f\xee\xcfDp\xcb\x11\xd4+\xf2\xd3\xcf_\x11\x87\x81\x8f~\x1e\xe6\xc7\xff\x1f\x00\x00\xff\xff=C\x02\xc8\xfa\xd8\x01\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xec`\x86F\xaf\xa5>\xb3\x05&\xb4ڽ\xd1eq\x05\xcd\x0f~R\xc0\xc4\xef\xe2[\x98\xcf]\x99\xb4\xee\xa7N\xf7'i\x1d\xffTd\xa5\x11Yk=\xee\xb5Rݗ\x990M\xff\x19@aТ9\xe0/\xeaA\xe9G\xf5\xa3\xc4,\xb5W\xb0\x13\x99\xa5\x9fm\xa2\v\xbc\x82τI!\x12L\xcf\x00\x0e\"\x93)\xef\xd3\xe3\xa6\vT\x1f\xbel\xee\xbe'aR:\x1c\xd6\x11\xe1 \x95\xbb\x1d\x1a\x82T\xec\x85E[\x19\x89q\xf2L\xa9=53\xc5\xe2\x93\xfd4\xec%F1\rƶ\xc0\xe6t\x04&0\xc2ds\xcb\x02\xa4J\xe5A\xa6\xa5\xc8@*\xeb\x84J\xfc\xbeD\x8d\xdbо`\x9a\xf5'\x98{3Z\xe1O|\xe9x$\xad\x10\xb4\x81\x9c\xdc\xef\xe9P;\xba\x06\x8cn\u007f+Ȟyc\r\x86\xe2\xe9\xb0X\xcaή\xb1\x17\x17\x13\xc0k\xee\xf8\xa0-\x13[\xcc\xc0b\x86\x89\xd3f\x8c,\xf3L\xf7-\xce\x16\x8e\xd0s\xc0*6v\x9f\xb6\xdclp\x12(\x90\xc9\u007f\xdc\xcbd\xef\xe3+\x92)\x86\x04\xa9F˶@\x14Ev\x1c\xdf,\xccKBXh\xda\x1c4m\xd60\xf4a\x0e\x9b\x88\xa6E\xd9Ӧ\xcdX\xd6.\x9dk\x11y#s\xe54\x9e%Л\x93\xc9/-\xd0D`Ig\xab\xcd\x0e0/\xdc\xf1\x02\xa4\xabz\xe7aR\x18\xd4\xe0\xf0\x87`\xd4s\xf4aӟ\xfb\xc2\xfa\xf0\x02\\\xaaQ\xf8\x9ff\x12;\x9bo\xc1\xd7,`Ч\xf6\xbc\v\x90\xbb\x9aA\xe9\x05\xecd\xe6\x90\xe3\x9ei\x14[\xaeo\x96S/E\x968\xafI-\x17.\xd9\xdf\xd4G\xc8\xd9\xf1=\n\xf5\xa7\xfbX\xb9:It\x9d\xfc,d\xe0\f\x834\x98\xfb\xbc\xc5-\xeb@\xd3Ñڇ\xcf\x1f1\x9d&\x14\xc4J\xe4\xc9v>\xf4Pn/\x1f\x8e\x01\xf1\x9b\t\x01U}\xc2\xf2\xf9\xa8\v\x10\xf0\x80G\x1f\x05\t\x05\xc4(AK\x8d\x1e$N\x89ĉ16\x11\x0fxd@!\xd7\x151?^4|{\xc0c\xdc\xc0\x1e)\t\xb3\x90\t\xf04\xa5\x0e&\b\xa7L\x96\x90\x118s\xc9\x1a\x02N\xc7l\x12\x96\x98\x9b\xaaU\x9cx\xd6vk6vҸ\x0fx|g=\xc3H;\xf6\xb2\x88\xde0\x19`\xb0\xc8zTe2\xefD&\xd3z)\xaf\x0f\x1b5\x15uw\xdbg\xed6\xea\x02n\x9e\xa4%\xf4T\n\x1f5\xda\xcf\xdaqϫ\x11֣\xff,\xb2\xfa\xa9\xaczʛy\xa2G;A\x1a%\xf4\xbem\xfc\t\xb3f\x95\xb4\xb0QtV\nt\xe147Ì\x17KF)/-gB\x95V+v\xb4끵\xa2a\x06\xf6h\xd3\xe1N\x1b\xbdֲ\xd1P\xe9@\xe7Q\xbb%\xdf\xe3!\xf8\xf4}&\x12L!-\x99\xa8\"\x1a\xa2uF8\xbc\x97\t\xe4h\xee\x11\n\xf2\x05\xb1܈\xb6Ͼ-\x96\xb9\xd8Рj\xc1Ч1(\xadH\xaf\xa3\xc6U\xec\x8f\x18<\x98\x8f\x9e\x1e\x1c\xb37v\xd0\x1c\xc7DP[\xa4)'lE\xf6e\x91\x97Xĝ\xd3\xf8\xc1\xa3\xe7\xfdk.8Q\xfaor\x91,\xec\xff\x81BH\x13\xa5\xe5\x1f\xf8\x8a/\xc3\xce\xec\x90uk/DkH\v\xc4\xf1\x83\xc8\xfa\xb7\x1d#[\xd4d\x810\xf3\xa1\x80ޝD>\x17\xf0\xb8\xd7\xd6{\xe4\x9dđ\xe4p\xb7I\v\xe7\x0fx<\xbf8\xb1K\xe7\x1bu\xeeC\x84\xbe\xd6G\x80\xad#\x0e\xad\xb2#\x9c\xf3\xec\xf3_\x17NEKg\xe4@\xbe\x0f\x8e\x0f\xc4\xe9$[E\x134\xb5\xbe|\xa4\x10z\x1a\xfbH\xd9,\xb4u\v\x10\xfa\xa2\xad\xf3\x19\xd1N\xc0\xbb,\xdf\x06^\xaeB\x9e\r\xc4Ρ\x01봩\xae\xfa\xc8H\xf6\xd2\xc6\xc4E;w\xe0 \xc6\xd6\xd9;\x0f\x96\x0es\xe7\x8d~{\xfb{\xee\xef\x00\xe9\xef9\x88\t\a0\f\xb90:Ak\xe7\xc4&\xca\xc2\xcf$6뤦\xf0\x87%\xbe[\x9b\x15ֹdkՖ\x84\xc2D\xce\xc5lj\x9b\xa7V^\x96\xcc\a\xfd?/\xb2˱\x03\xd6\xfa<\x17*ʁ\x9d z\xed\xe7V*\x16@\xf9#\x8a\xb9/\xd9\\,\x89\\\x83\xf0\xfd~\x82\x81\\\xaa\r/\x02\xef_%|\xa8\x8d.>\xef\xf8p]\xcdnXPw\f_\x92\x8e\xb5B\xf3}\x85\xc1\x0e'O\xb3\xfa\x8b\xc2f\xa5];\xf5A\x90\v\x9d\xbe\xb3\xb0\x93ƺ\x06\xd9h\x98\xd2\xf2%\xe9\xeb\x9d\xe5ԍ1\xcf<\xca\xfd\xec綒q{\xfdX_\xe8\x8f_\xfc\x0e5\xbe\x1eC\x90;\x90\x0eP%\xbaT\x9c4\"c\xc0\x8bxv\xc4\v2\xc4\xfa\xbd\xa6\xa1*\xf3XB\xacX\x12\xa5\x9a\xc9/\xb5'\xfc(d\xf6Zlt2G]\xce8\xe6\xa6u\xeb\x11\xfc\xdcN\xa5F.\x9ed^\xe6 rbD4\xc9)ڐ9ve\x00\x1e\x85t\xec\x91\b2\xbb'\xa7\xa3A&:/2t\b[\xdci\xc3\xfane\x8a\xb5\xeb\x0fr\xa1\xc7\xef\x1d\xfbM\xc0NȬ4\xd1Vw!7\x96\x9d\x90\x82\xe1yكO,\n+&_T:::\xa4\x9d\xf3\x04\x85Y\x12\xd0~1\xf8\xd2\xe1ca$ɢ\x9e\x8b g r|ٍ \x83\x88\nu\x1c\v!g`2\x16o!\xe4[\b\x19\a\xf7-\x84|\v!\xe7\xdb[\b\xf9\x16B\xc6Lx\v!\xdfB\xc8\xe5(\xfc\xf6!\xe4\x8dW<\x85\x1b9t\xe2\xf0~\xdd\xfd\xc5\xe9P\xff\x04\x8f\xd2\xed\a7\xc5ߠ\xd0qQݷ\v\xa3+Y\f\xdfx\xf5\xa9\nڀ\x92\xd9pM\x03\x11\xbc\x9a\xdf!7\xfc\\\xf8C\xe9\xb3\xf4w\xee\x98\x14[#\xf5\xecʨn\xddӨ\x81_~\x81\xb7\xa4\xac<\xbe\xf6i\xaeTiI\xc5S\xbb\x9ai\x02dl\x9dS܉w\xb6\xa6\xe9\x19\x95L\xd1u\x95/r]\x19W\xab\xf4\x1a\x15J\v꒺\xf5F3p\x97U#E\x92)\xa6\xf2hq\xbdQ\xa8\xed\x99\xd9OD\x95\xd1h\xf5\xd0\f\xe8\x81:\xa6\xf9\x9a\xa19\xf2wPy\x91J\xa1g\xd4\a\xbdl\x1d\xf1KE\xddS\xd5>\x115>\x11q\xf9\x1c\xa6\x11U<\xcbjw\"h\xf8\xcc:\x9d\xba\ngt\xed\xa5\xd59\xddڛQ\xb0159#\x157\xa30'+qb\xeblF\xa1Ϻ\xef\x19ə\xfcy\xe8\x9b\xe7\xaa\xcdy\xc9췕\xb4_\xb3MmR43g\x83x\x84g\x90\xed\xe6\xf8z+\xf7>ި>\xfa\xa5Q\xed3ǰ8\xe8\xfaӂ\x04~\x92*\xf5RD\xaaЊ>\xf8\x85\x00.\u007f\xaaC!V\xc6a\x1e\x86H\xb3wֱX\b2\xcb)l\x8f>\xc3b\xd7p#\x92}w\xe0 Ƚ\xb0t~΅\x83\xf3\xfa\xd8xYͣ\x9e\xf35\xc0\x8f\xba>\xa5\xb7?\xfa\xb32/\xb2a\xebVZ\x84\xf3.\x98矂F\xe4\xc4*Qؽ\xae\xbe\xf0\x9e=\b}\xeb\x8e\x1f\xc8DT\xdfw'\x99.\xd3\x1a\xfe({\x85:\u0097;\x8e\xb5\xf8\xbbפ\xf9\"8DS\xd5ɦ\xff\xc1\xf0\xf0\xc7\xfa\vH2\x96\x99\xb0N\x1bq\x8f\x9ft\xd2z\xcdd\x8a&\xdd\xf1\x9d\xc7*\x82-\xacr\x8f\xa1Ho\xf8\x14\x17v\xd4\a\xd7\\9\x04\xddi\xd27\x84鰙\x9c\xd4X\xe7\xb2\xd9M\xdd\xde~\xf2\x1bq2\xc7\xf5\xc7\xd2g\x85V\x850\x16\x89\xb6\xd5\x06\xfd\xa4\xed\x98\x15\xdb\xebG\xc8t\xd8\xfd\x0f}\xfc\r\xf2\xe5\x06\xa7\x9f\x16\xef\xc2?\x16P\tdE\xaey\x11\xbe\x1b\x9e\xd7:\x88\xb6\x98\xc6\xfa<&\xbbc\x90\x84\xb5:\x91lM\x1e\xa5\v_5\xbd\xc6\xf7\xed\xe3\xf1Ѩҗ\x16\u007f~Th\xbeV\xeaf7\xca\xf3e\xf2\x15\x8b_N\xa6U\xcc\x1c2\x00d\xb9z\xc3O=\x94\n$\xb1\xfe}$oz\x99T\xd5k\x1e}bM\xea\xf5\x98N\x0fE\xb2\xab\xa1'4V\xf5{\x1eg3t\xb4N\xb8\xd2\xce?\x88\xc2\xc3 \x11\x85+Mp\u007fIi\xf8\xe3~\x02\x81\xfe\x1b\xf8\xe5O\xa2dº\b\x9e}\xaa\x875\xe7t\xeb\xfc}Kel\xe0QX~s\xc4߶\xb4\x88\u007fj\x16\x87\u007f\xf0\x9e\xef\nR\xe1pE\xb0\x973m@\xbe\xf9\xf1\x83\xc9\xdd}\xa1\x11\xf5\x9dn +O\xab\x9eL\x18\xd9\xc9Х\xdd\n>\xe3\xe3Iߍ\"\xc4\xfb\xd9t\u007f/\x87\xe9]\xfd\xdeU즚\x17\xb2\xf8\x1a\xf4D\xe7\xbbf\xaa7\xb8\x97\xab\x15Yւ\xe7\xaf<-\xfc\xbf<\xf5-\x9c\x80Ih'\u007f\xea\xfd6bx&\x8cΰ\xc1\x19P\x92^W\xf3&\xda\xfb\xe6?^z\x15\xde@;\xf8\xea\x01~t,m\xc9Jpơ\xa7\xd1<\x91$X\xb8p\x17\xd0~\f\xed\xfc\x9c\xff\xa9\xde:\xe3\u007f\x13\xad|\xa8k\xaf\xe0o\u007f?\x83\xe08\xef*<\xa8\xf3\xbf\x01\x00\x00\xff\xff*\xdd\xe8w?N\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4VM\x8f\xe44\x13\xbe\xe7W\x94\xf6=\xec\xe5MzG{A\xb9\xa1\x06\xa4\x110\x1aM/sA\x1c\x1c\xa7\xd2mƱCU\xb9\x87\x06\xf1ߑ\xed\xa4?\xd2\xe9\x9d\xdd\x03\xbe\xa5\\\x1f\x8f\x9f\xfaH\x15eY\x16j0\xcfHl\xbc\xabA\r\x06\xff\x14t\U0004bad7o\xb82~\xb5\xbfkP\xd4]\xf1b\\[\xc3:\xb0\xf8\xfe\t\xd9\a\xd2\xf8\x1dv\xc6\x191\xde\x15=\x8aj\x95\xa8\xba\x00P\xceyQQ\xcc\xf1\x13@{'\xe4\xadE*\xb7誗\xd0`\x13\x8cm\x91R\x84)\xfe\xfeC\xf5\xb1\xfaP\x00h\xc2d\xfe\xc9\xf4Ȣ\xfa\xa1\x06\x17\xac-\x00\x9c\xea\xb1\x06F\x8aF\xa2$0\xe1\x1f\x01Y\xb8ڣE\xf2\x95\xf1\x05\x0f\xa8c\xe0-\xf90\xd4p\xba\xc8\xf6#\xa8\xfc\xa0Mr\xb5I\xae\x9e\xb2\xabtk\rˏ\xb74~2\xa3\xd6`\x03)\xbb\f()\xf0Γ<\x9c\x82\x96\xc0L\xf9Ƹm\xb0\x8a\x16\x8d\v\x80\x810]\xfc\xe2^\x9c\u007fu?\x18\xb4-\xd7\xd0)\xcbX\x00\xb0\xf6\x03\u0590\\\x0fJc\x1be\xa1\xa113c\xb8촆\xbf\xff)\x00\xf6ʚ6\xf1\x9a/\xfd\x80\xee\xdb\xc7\xfb\xe7\x8f\x1b\xbd\xc3^e!@\x8b\xac\xc9\fIo\xe9\xf1`\x18\x14\x8c@A<(\xad\x91\x19t B'cL0\xae\xf3ԧp\xa3c\x00\xd5\xf8 ;\x84甓\xf1\xe9ը0\x90\x1f\x90\xc4L\xe8\x93ɩ>\x8f\xb2\x19\xc6\xf7\xf1\x11Y\a\xdaX\x91\xc8)\xc6XW\xd8\x02\xa7\a\x82\xef@v\x86\x810\x91\xeb\xe4\x12]\xe2\xa4\x03\xe5\xc07\xbf\xa3\x96j|=\xc7,\x06\xdb\xc62\xde#\t\x10j\xbfu毣g\x8e4ĐV\xc9T@\xd31N\x90\x9c\xb2\x91\xfe\x80\xff\a\xe5Z\xe8\xd5\x01\bc\f\b\xee\xcc[R\xe1\n~\xf6\x84\x89\xc0\x1av\"\x03\u05eb\xd5\xd6\xc8ԑ\xda\xf7}pF\x0e\xab\xd4W\xa6\t\xe2\x89W-\xeeѮ\xd8lKEzg\x04\xb5\x04\u0095\x1aL\x99\x80\xbbԐU\xdf\xfe\xefX$\xefϐ\xca!\xd6\x13\v\x19\xb7=\x8aS\x8f\xdc\xe4=\xf6G\xae\x86l\x96\xf1\x9f荢\xc8\xca\xd3\xf7\x9bO0\x05M)\xb8\xe4<\xb1}2\xe3\x13\xf1\x91(\xe3:\xa4\x9c\xb8\x8e|\x9f<\xa2k\ao\\\xae%m\r\xbaK\xd294\xbd\x11\x9e\xaa4槂u\x9aK\xd0 \x84\xa1U\x82m\x05\xf7\x0e֪G\xbbV\x8c\xff9\xed\x91a.#\xa5o\x13\u007f>N/\x153[G\xf14\xeb\x163\xb4н\x9b\x01u\xccY$.ښ\xce\xe8\xd4\x06\xd0y\x02\xb5dR\xbd\x89!O\x99\xafA1Έ\x8cc69b\x0f\xbe\x85ciT$\xf9N1^\x8afh\x1e\xa3\xc6<\xb25\x1dꃶ\x98\x1d\xe4I\x81o\x81\x88\a]\xe8\xe7\xf1Jx\xc0\xd7+\xd9#\xf98'Ӥ>?\x8b\xf9\x87\xfcs\xd9\x1aǟ\u007fM\xd6I\xbf\xab\xf3\x91{6jG7@\xc1\xb9ؑ\xdeE\xf1\xcc)\\N\xe4٭\x11\xec\xafp,\"\xb9w\x9dO\xbf{\x15C*\xc9}\x82cR\xc7\x18\x19ѕ\xbb[9\xcdg>\x8a\xbe\x80\xc0|\xd2\xca\xf0\xf5\x86qt\x18\u0085\x98e² \x8e\x91\xaeċ\x1d3\"\v֪\xc6b\rBan\x99\xed\x14\x91:\\V\xc5TF\xa7\xe5\xe8\xb3\x05r\xa5\x1ek\xffu\x87\xeeV\x85ë\xe2\xa5\xdcd7\xd0\x1cn\x19\xae\x8f[\u07bcIrY\xd6\x10\xa7n)报/ b!K\xb9T\x17\xb6\x83+\x126\xe7\x9aS\xef_\x14\xfc\xb4,̑\xdf\b\xbe\x90ԙ\xe8\xb4\xd4ޝ\xbeRa\x97\xe3\x12\x9b.\xc6W\xb4g/g\xf1\xa4\xb6\x13\x17\xa7\xd9\x1a\u05ecA\xb0}\x98\xaf\xb0\xef\xde]\xec\xa2\xe9S{ך\xbc\x81ï\xbf\x15\xd9+\xb6\xcf\x13\x8e(\xfc7\x00\x00\xff\xff\xad\x01\x9a\xeb\x00\f\x00\x00"), - []byte("\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\xb4V\xc1\x8e\xdc6\f\xbd\xfb+\x88\xf4\x90K\xed\xc9\"\x97·`\xdb\x02A\xd3`\x91M\xe6R\xf4\xa0\x91\xe8\x19veI\x15)\xa7ۯ/$\xcb;\xe3ٙ\xa4E\x11\xdfDS\xe4\xe3\xe3#\xa1\xa6m\xdbF\x05\xdabd\xf2\xae\a\x15\b\xff\x12t\xf9\xc4\xdd\xc3\x0fܑ\xdfL7;\x14u\xd3<\x903=\xdc&\x16?~@\xf6)j\xfc\x11\ar$\xe4]3\xa2(\xa3D\xf5\r\x80r\u038b\xcaf\xceG\x00\xed\x9dDo-\xc6v\x8f\xae{H;\xdc%\xb2\x06cɰ\xe4\x9f^u\xaf\xbbW\r\x80\x8eX\xae\u007f\xa4\x11Y\xd4\x18zp\xc9\xda\x06\xc0\xa9\x11{\x98\xbcM#\xb2S\x81\x0f^\xac\xd7s\xb2nB\x8b\xd1w\xe4\x1b\x0e\xa8s\xee}\xf4)\xf4p\xfc1\x87\xa8\xb8暶%\xda}\x8d\xf6\xaeF+\x0e\x96X~\xf9\x82\xd3;b)\x8e\xc1\xa6\xa8\xecUdŇ\xc9\xed\x93U\xf1\x9aW\x03\x10\"2\xc6\t?\xb9\a\xe7?\xbb\x9f\t\xad\xe1\x1e\x06e\x19\x1b\x00\xd6>`\x0f\xefs\x05Ai4\r\xc0\xa4,\x99r\u007f\xae\xc9\ato\xee\xden_\xdf\xeb\x03\x8ej6\x02\x18d\x1d)\x14\xbf+\xc5\x001(X\xd0\xc0\xe7\x03F\x84ma\x0eX|D\xae\xc0kH\x80\xa5\x02\xee\xaa)D\x1f0\n-\x04\xe7\xefDaO\xb63_\x9b\xf1\x1f\xe9ͦ\xccʇ\x9f\xee?\u0092\xb4\xb4`\xcdya\xfbx\x8d\x8f\xc4g\xa2\xc8\r\x18\xe7\xc6\rя%\":\x13<9)\am\tݚtN\xbb\x91$w\xfaτ,\xb9?\x1dܖ\xcd\x02;\x84\x14\x8c\x124\x1d\xbcup\xabF\xb4\xb7\x8a\xf1\x9bӞ\x19\xe66S\xfau\xe2O\x17\xe2\xdaqf\xeb8DuU]\xec\xd0\xe5I\xbd\x0f\xa8W\x83\x92c\xd0@ur\a\x1fA\xadجS|9Zw\xe2zi\x80a\xde\xe0\x03\xed\xd76\x00eL\xd9\xfe\xca\xde]\xb9w\x95\x9e\v\xb5ޖ\x1cY\x8e\xb9\x80\x10\xfdD\x06c\xbb\xd4V1\xa4X\x8b,\xbb\xb1k.\xe5:c\xb8\x16V\u009d\xc3[!\xb8\xabN\x19C\xa6u\xb94\xef\x1d\xac\xeb\xaf,C\xb5\xc7˹\x9fՙ\x15L\x11WS\xd8>\x85\xfe\xaa:DI\xe2\xff\xaa\x8fr\xa9z\xee\xaaFt\x8a\x11\x9dԈ\xe0\x87\x15|\xf5\xff5\x12\x0e\x8a\xf1\x8b\xfc^\x8e}\x97\xef-\x94[\x1aP?j\x8bs\xb8\xb2Ο)\xea_C\xcd\x1f\xba4\x9e\xa3j\xe1ͤȪ\x9d\xc5g\u007f>9u\xe5ߕ\x06_\xe8ۙ\xe9\xf8¹9\x9e\n{\xed\U000a2e59\x9f\byk\x9a\x1e$\xa69y\x95Z\xb5\x1cŠ\xb4\xc6 hޟ?f^\xbcX\xbdG\xcaQ{7\xcf)\xf7\xf0\xdb\xef\xcd\x1c\x15\xcdv\xc1\x91\x8d\xff\x04\x00\x00\xff\xffJ\xbeWz\r\n\x00\x00"), -} - -var CRDs = crds() - -func crds() []*apiextv1beta1.CustomResourceDefinition { - apiextinstall.Install(scheme.Scheme) - decode := scheme.Codecs.UniversalDeserializer().Decode - var objs []*apiextv1beta1.CustomResourceDefinition - for _, crd := range rawCRDs { - gzr, err := gzip.NewReader(bytes.NewReader(crd)) - if err != nil { - panic(err) - } - bytes, err := ioutil.ReadAll(gzr) - if err != nil { - panic(err) - } - gzr.Close() - - obj, _, err := decode(bytes, nil, nil) - if err != nil { - panic(err) - } - objs = append(objs, obj.(*apiextv1beta1.CustomResourceDefinition)) - } - return objs -} diff --git a/config/crd/v1beta1/crds/doc.go b/config/crd/v1beta1/crds/doc.go deleted file mode 100644 index 16e695f91..000000000 --- a/config/crd/v1beta1/crds/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Package crds embeds the controller-tools generated CRD manifests -package crds - -//go:generate go run ../../../../hack/crd-gen/v1beta1/main.go diff --git a/hack/build-image/Dockerfile b/hack/build-image/Dockerfile index 395822ffc..39e53ec30 100644 --- a/hack/build-image/Dockerfile +++ b/hack/build-image/Dockerfile @@ -24,17 +24,19 @@ ENV GOPROXY=${GOPROXY} RUN mkdir -p /go/src/k8s.io WORKDIR /go/src/k8s.io RUN git config --global advice.detachedHead false -RUN git clone -b v0.18.4 https://github.com/kubernetes/code-generator +RUN git clone -b v0.22.2 https://github.com/kubernetes/code-generator -RUN wget --quiet https://github.com/kubernetes-sigs/kubebuilder/releases/download/v2.3.1/kubebuilder_2.3.1_linux_amd64.tar.gz && \ - tar -zxvf kubebuilder_2.3.1_linux_amd64.tar.gz && \ - mv kubebuilder_2.3.1_linux_amd64 /usr/local/kubebuilder && \ - chmod +x /usr/local/kubebuilder && \ - export PATH=$PATH:/usr/local/kubebuilder/bin && \ - rm kubebuilder_2.3.1_linux_amd64.tar.gz +# kubebuilder test bundle is separated from kubebuilder. Need to setup it for CI test. +RUN curl -sSLo envtest-bins.tar.gz https://go.kubebuilder.io/test-tools/1.22.1/linux/amd64 && \ + mkdir /usr/local/kubebuilder && \ + tar -C /usr/local/kubebuilder --strip-components=1 -zvxf envtest-bins.tar.gz + +RUN wget --quiet https://github.com/kubernetes-sigs/kubebuilder/releases/download/v3.2.0/kubebuilder_linux_amd64 && \ + mv kubebuilder_linux_amd64 /usr/local/kubebuilder/bin/kubebuilder && \ + chmod +x /usr/local/kubebuilder/bin/kubebuilder # get controller-tools -RUN go get sigs.k8s.io/controller-tools/cmd/controller-gen@v0.3.0 +RUN go get sigs.k8s.io/controller-tools/cmd/controller-gen@v0.7.0 # get goimports (the revision is pinned so we don't indiscriminately update, but the particular commit # is not important) diff --git a/hack/crd-gen/v1beta1/main.go b/hack/crd-gen/v1beta1/main.go deleted file mode 100644 index 2f204a0d2..000000000 --- a/hack/crd-gen/v1beta1/main.go +++ /dev/null @@ -1,136 +0,0 @@ -/* -Copyright the Velero contributors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// This code embeds the CRD manifests in config/crd/v1beta1/bases in -// config/crd/v1beta1/crds/crds.go. - -package main - -import ( - "bytes" - "compress/gzip" - "fmt" - "io" - "io/ioutil" - "log" - "os" - "text/template" -) - -// This is relative to config/crd/crds -const goHeaderFile = "../../../../hack/boilerplate.go.txt" - -const tpl = `{{.GoHeader}} -// Code generated by crds_generate.go; DO NOT EDIT. - -package crds - -import ( - "bytes" - "compress/gzip" - "io/ioutil" - - apiextinstall "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install" - apiextv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" - "k8s.io/client-go/kubernetes/scheme" -) - -var rawCRDs = [][]byte{ -{{- range .RawCRDs }} - []byte({{ . }}), -{{- end }} -} - -var CRDs = crds() - -func crds() []*apiextv1beta1.CustomResourceDefinition { - apiextinstall.Install(scheme.Scheme) - decode := scheme.Codecs.UniversalDeserializer().Decode - var objs []*apiextv1beta1.CustomResourceDefinition - for _, crd := range rawCRDs { - gzr, err := gzip.NewReader(bytes.NewReader(crd)) - if err != nil { - panic(err) - } - bytes, err := ioutil.ReadAll(gzr) - if err != nil { - panic(err) - } - gzr.Close() - - obj, _, err := decode(bytes, nil, nil) - if err != nil { - panic(err) - } - objs = append(objs, obj.(*apiextv1beta1.CustomResourceDefinition)) - } - return objs -} -` - -type templateData struct { - GoHeader string - RawCRDs []string -} - -func main() { - headerBytes, err := ioutil.ReadFile(goHeaderFile) - if err != nil { - log.Fatalln(err) - } - - data := templateData{ - GoHeader: string(headerBytes), - } - - // This is relative to config/crd/crds - manifests, err := ioutil.ReadDir("../bases") - if err != nil { - log.Fatalln(err) - } - - for _, crd := range manifests { - file, err := os.Open("../bases/" + crd.Name()) - if err != nil { - log.Fatalln(err) - } - - // gzip compress manifest - var buf bytes.Buffer - gzw := gzip.NewWriter(&buf) - if _, err := io.Copy(gzw, file); err != nil { - log.Fatalln(err) - } - file.Close() - gzw.Close() - - data.RawCRDs = append(data.RawCRDs, fmt.Sprintf("%q", buf.Bytes())) - } - - t, err := template.New("crd").Parse(tpl) - if err != nil { - log.Fatalln(err) - } - - out, err := os.Create("crds.go") - if err != nil { - log.Fatalln(err) - } - - if err := t.Execute(out, data); err != nil { - log.Fatalln(err) - } -} diff --git a/hack/update-generated-crd-code.sh b/hack/update-generated-crd-code.sh index 35bd93927..e3355be48 100755 --- a/hack/update-generated-crd-code.sh +++ b/hack/update-generated-crd-code.sh @@ -44,24 +44,21 @@ ${GOPATH}/src/k8s.io/code-generator/generate-groups.sh \ --output-base ../../.. \ $@ -# Generate both apiextensions.k8s.io/v1beta1 and apiextensions.k8s.io/v1 -for version in v1beta1 v1 -do - # Generate manifests e.g. CRD, RBAC etc. - controller-gen \ - crd:crdVersions=$version,preserveUnknownFields=false,trivialVersions=true \ - paths=./pkg/apis/velero/v1/... \ - paths=./pkg/controller/... \ - output:crd:artifacts:config=config/crd/$version/bases +# Generate apiextensions.k8s.io/v1 +# Generate manifests e.g. CRD, RBAC etc. +controller-gen \ + crd:crdVersions=v1\ + paths=./pkg/apis/velero/v1/... \ + paths=./pkg/controller/... \ + output:crd:artifacts:config=config/crd/v1/bases - # this is a super hacky workaround for https://github.com/kubernetes/kubernetes/issues/91395 - # which a result of fixing the validation on CRD objects. The validation ensures the fields that are list map keys, are either marked - # as required or have default values to ensure merging of list map items work as expected. - # With "containerPort" and "protocol" being considered as x-kubernetes-list-map-keys in the container ports, and "protocol" was not - # a required field, the CRD would fail validation with errors similar to the one reported in https://github.com/kubernetes/kubernetes/issues/91395. - # once controller-gen (above) is able to generate CRDs with `protocol` as a required field, this hack can be removed. - kubectl patch -f config/crd/$version/bases/velero.io_restores.yaml -p "$(cat hack/restore-crd-patch-$version.json)" --type=json --local=true -o yaml > /tmp/velero.io_restores-yaml.patched - mv /tmp/velero.io_restores-yaml.patched config/crd/$version/bases/velero.io_restores.yaml +# this is a super hacky workaround for https://github.com/kubernetes/kubernetes/issues/91395 +# which a result of fixing the validation on CRD objects. The validation ensures the fields that are list map keys, are either marked +# as required or have default values to ensure merging of list map items work as expected. +# With "containerPort" and "protocol" being considered as x-kubernetes-list-map-keys in the container ports, and "protocol" was not +# a required field, the CRD would fail validation with errors similar to the one reported in https://github.com/kubernetes/kubernetes/issues/91395. +# once controller-gen (above) is able to generate CRDs with `protocol` as a required field, this hack can be removed. +kubectl patch -f config/crd/v1/bases/velero.io_restores.yaml -p "$(cat hack/restore-crd-patch-v1.json)" --type=json --local=true -o yaml > /tmp/velero.io_restores-yaml.patched +mv /tmp/velero.io_restores-yaml.patched config/crd/v1/bases/velero.io_restores.yaml - go generate ./config/crd/$version/crds -done +go generate ./config/crd/v1/crds diff --git a/hack/verify-generated-crd-code.sh b/hack/verify-generated-crd-code.sh index 90d1f04b9..ef7490c83 100755 --- a/hack/verify-generated-crd-code.sh +++ b/hack/verify-generated-crd-code.sh @@ -19,14 +19,11 @@ HACK_DIR=$(dirname "${BASH_SOURCE}") ${HACK_DIR}/update-generated-crd-code.sh --verify-only # ensure no changes to generated CRDs -for version in v1beta1 v1 -do - if ! git diff --exit-code config/crd/$version/crds/crds.go >/dev/null; then - # revert changes to state before running CRD generation to stay consistent - # with code-generator `--verify-only` option which discards generated changes - git checkout config/crd +if ! git diff --exit-code config/crd/v1/crds/crds.go >/dev/null; then + # revert changes to state before running CRD generation to stay consistent + # with code-generator `--verify-only` option which discards generated changes + git checkout config/crd - echo "CRD verification - failed! Generated CRDs are out-of-date, please run 'make update' and 'git add' the generated file(s)." - exit 1 - fi -done + echo "CRD verification - failed! Generated CRDs are out-of-date, please run 'make update' and 'git add' the generated file(s)." + exit 1 +fi diff --git a/pkg/generated/clientset/versioned/fake/clientset_generated.go b/pkg/generated/clientset/versioned/fake/clientset_generated.go index 2b780e794..971ea5491 100644 --- a/pkg/generated/clientset/versioned/fake/clientset_generated.go +++ b/pkg/generated/clientset/versioned/fake/clientset_generated.go @@ -74,7 +74,10 @@ func (c *Clientset) Tracker() testing.ObjectTracker { return c.tracker } -var _ clientset.Interface = &Clientset{} +var ( + _ clientset.Interface = &Clientset{} + _ testing.FakeClient = &Clientset{} +) // VeleroV1 retrieves the VeleroV1Client func (c *Clientset) VeleroV1() velerov1.VeleroV1Interface { diff --git a/pkg/generated/clientset/versioned/fake/register.go b/pkg/generated/clientset/versioned/fake/register.go index 0ee7ffaba..3482b9c35 100644 --- a/pkg/generated/clientset/versioned/fake/register.go +++ b/pkg/generated/clientset/versioned/fake/register.go @@ -29,7 +29,7 @@ import ( var scheme = runtime.NewScheme() var codecs = serializer.NewCodecFactory(scheme) -var parameterCodec = runtime.NewParameterCodec(scheme) + var localSchemeBuilder = runtime.SchemeBuilder{ velerov1.AddToScheme, } diff --git a/pkg/generated/listers/velero/v1/backup.go b/pkg/generated/listers/velero/v1/backup.go index f61b1bab7..fa3f5cb6f 100644 --- a/pkg/generated/listers/velero/v1/backup.go +++ b/pkg/generated/listers/velero/v1/backup.go @@ -26,8 +26,10 @@ import ( ) // BackupLister helps list Backups. +// All objects returned here must be treated as read-only. type BackupLister interface { // List lists all Backups in the indexer. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.Backup, err error) // Backups returns an object that can list and get Backups. Backups(namespace string) BackupNamespaceLister @@ -58,10 +60,13 @@ func (s *backupLister) Backups(namespace string) BackupNamespaceLister { } // BackupNamespaceLister helps list and get Backups. +// All objects returned here must be treated as read-only. type BackupNamespaceLister interface { // List lists all Backups in the indexer for a given namespace. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.Backup, err error) // Get retrieves the Backup from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. Get(name string) (*v1.Backup, error) BackupNamespaceListerExpansion } diff --git a/pkg/generated/listers/velero/v1/backupstoragelocation.go b/pkg/generated/listers/velero/v1/backupstoragelocation.go index 8c6c140bd..74daf16dc 100644 --- a/pkg/generated/listers/velero/v1/backupstoragelocation.go +++ b/pkg/generated/listers/velero/v1/backupstoragelocation.go @@ -26,8 +26,10 @@ import ( ) // BackupStorageLocationLister helps list BackupStorageLocations. +// All objects returned here must be treated as read-only. type BackupStorageLocationLister interface { // List lists all BackupStorageLocations in the indexer. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.BackupStorageLocation, err error) // BackupStorageLocations returns an object that can list and get BackupStorageLocations. BackupStorageLocations(namespace string) BackupStorageLocationNamespaceLister @@ -58,10 +60,13 @@ func (s *backupStorageLocationLister) BackupStorageLocations(namespace string) B } // BackupStorageLocationNamespaceLister helps list and get BackupStorageLocations. +// All objects returned here must be treated as read-only. type BackupStorageLocationNamespaceLister interface { // List lists all BackupStorageLocations in the indexer for a given namespace. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.BackupStorageLocation, err error) // Get retrieves the BackupStorageLocation from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. Get(name string) (*v1.BackupStorageLocation, error) BackupStorageLocationNamespaceListerExpansion } diff --git a/pkg/generated/listers/velero/v1/deletebackuprequest.go b/pkg/generated/listers/velero/v1/deletebackuprequest.go index 45d270213..954e9aaf8 100644 --- a/pkg/generated/listers/velero/v1/deletebackuprequest.go +++ b/pkg/generated/listers/velero/v1/deletebackuprequest.go @@ -26,8 +26,10 @@ import ( ) // DeleteBackupRequestLister helps list DeleteBackupRequests. +// All objects returned here must be treated as read-only. type DeleteBackupRequestLister interface { // List lists all DeleteBackupRequests in the indexer. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.DeleteBackupRequest, err error) // DeleteBackupRequests returns an object that can list and get DeleteBackupRequests. DeleteBackupRequests(namespace string) DeleteBackupRequestNamespaceLister @@ -58,10 +60,13 @@ func (s *deleteBackupRequestLister) DeleteBackupRequests(namespace string) Delet } // DeleteBackupRequestNamespaceLister helps list and get DeleteBackupRequests. +// All objects returned here must be treated as read-only. type DeleteBackupRequestNamespaceLister interface { // List lists all DeleteBackupRequests in the indexer for a given namespace. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.DeleteBackupRequest, err error) // Get retrieves the DeleteBackupRequest from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. Get(name string) (*v1.DeleteBackupRequest, error) DeleteBackupRequestNamespaceListerExpansion } diff --git a/pkg/generated/listers/velero/v1/downloadrequest.go b/pkg/generated/listers/velero/v1/downloadrequest.go index 206c42e25..6552cf02d 100644 --- a/pkg/generated/listers/velero/v1/downloadrequest.go +++ b/pkg/generated/listers/velero/v1/downloadrequest.go @@ -26,8 +26,10 @@ import ( ) // DownloadRequestLister helps list DownloadRequests. +// All objects returned here must be treated as read-only. type DownloadRequestLister interface { // List lists all DownloadRequests in the indexer. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.DownloadRequest, err error) // DownloadRequests returns an object that can list and get DownloadRequests. DownloadRequests(namespace string) DownloadRequestNamespaceLister @@ -58,10 +60,13 @@ func (s *downloadRequestLister) DownloadRequests(namespace string) DownloadReque } // DownloadRequestNamespaceLister helps list and get DownloadRequests. +// All objects returned here must be treated as read-only. type DownloadRequestNamespaceLister interface { // List lists all DownloadRequests in the indexer for a given namespace. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.DownloadRequest, err error) // Get retrieves the DownloadRequest from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. Get(name string) (*v1.DownloadRequest, error) DownloadRequestNamespaceListerExpansion } diff --git a/pkg/generated/listers/velero/v1/podvolumebackup.go b/pkg/generated/listers/velero/v1/podvolumebackup.go index f92949685..08ed20d6f 100644 --- a/pkg/generated/listers/velero/v1/podvolumebackup.go +++ b/pkg/generated/listers/velero/v1/podvolumebackup.go @@ -26,8 +26,10 @@ import ( ) // PodVolumeBackupLister helps list PodVolumeBackups. +// All objects returned here must be treated as read-only. type PodVolumeBackupLister interface { // List lists all PodVolumeBackups in the indexer. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.PodVolumeBackup, err error) // PodVolumeBackups returns an object that can list and get PodVolumeBackups. PodVolumeBackups(namespace string) PodVolumeBackupNamespaceLister @@ -58,10 +60,13 @@ func (s *podVolumeBackupLister) PodVolumeBackups(namespace string) PodVolumeBack } // PodVolumeBackupNamespaceLister helps list and get PodVolumeBackups. +// All objects returned here must be treated as read-only. type PodVolumeBackupNamespaceLister interface { // List lists all PodVolumeBackups in the indexer for a given namespace. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.PodVolumeBackup, err error) // Get retrieves the PodVolumeBackup from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. Get(name string) (*v1.PodVolumeBackup, error) PodVolumeBackupNamespaceListerExpansion } diff --git a/pkg/generated/listers/velero/v1/podvolumerestore.go b/pkg/generated/listers/velero/v1/podvolumerestore.go index c17dd3857..93f96b24b 100644 --- a/pkg/generated/listers/velero/v1/podvolumerestore.go +++ b/pkg/generated/listers/velero/v1/podvolumerestore.go @@ -26,8 +26,10 @@ import ( ) // PodVolumeRestoreLister helps list PodVolumeRestores. +// All objects returned here must be treated as read-only. type PodVolumeRestoreLister interface { // List lists all PodVolumeRestores in the indexer. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.PodVolumeRestore, err error) // PodVolumeRestores returns an object that can list and get PodVolumeRestores. PodVolumeRestores(namespace string) PodVolumeRestoreNamespaceLister @@ -58,10 +60,13 @@ func (s *podVolumeRestoreLister) PodVolumeRestores(namespace string) PodVolumeRe } // PodVolumeRestoreNamespaceLister helps list and get PodVolumeRestores. +// All objects returned here must be treated as read-only. type PodVolumeRestoreNamespaceLister interface { // List lists all PodVolumeRestores in the indexer for a given namespace. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.PodVolumeRestore, err error) // Get retrieves the PodVolumeRestore from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. Get(name string) (*v1.PodVolumeRestore, error) PodVolumeRestoreNamespaceListerExpansion } diff --git a/pkg/generated/listers/velero/v1/resticrepository.go b/pkg/generated/listers/velero/v1/resticrepository.go index 67a8168dc..96bcfdc7c 100644 --- a/pkg/generated/listers/velero/v1/resticrepository.go +++ b/pkg/generated/listers/velero/v1/resticrepository.go @@ -26,8 +26,10 @@ import ( ) // ResticRepositoryLister helps list ResticRepositories. +// All objects returned here must be treated as read-only. type ResticRepositoryLister interface { // List lists all ResticRepositories in the indexer. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.ResticRepository, err error) // ResticRepositories returns an object that can list and get ResticRepositories. ResticRepositories(namespace string) ResticRepositoryNamespaceLister @@ -58,10 +60,13 @@ func (s *resticRepositoryLister) ResticRepositories(namespace string) ResticRepo } // ResticRepositoryNamespaceLister helps list and get ResticRepositories. +// All objects returned here must be treated as read-only. type ResticRepositoryNamespaceLister interface { // List lists all ResticRepositories in the indexer for a given namespace. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.ResticRepository, err error) // Get retrieves the ResticRepository from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. Get(name string) (*v1.ResticRepository, error) ResticRepositoryNamespaceListerExpansion } diff --git a/pkg/generated/listers/velero/v1/restore.go b/pkg/generated/listers/velero/v1/restore.go index 9c1360554..de0b89ce8 100644 --- a/pkg/generated/listers/velero/v1/restore.go +++ b/pkg/generated/listers/velero/v1/restore.go @@ -26,8 +26,10 @@ import ( ) // RestoreLister helps list Restores. +// All objects returned here must be treated as read-only. type RestoreLister interface { // List lists all Restores in the indexer. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.Restore, err error) // Restores returns an object that can list and get Restores. Restores(namespace string) RestoreNamespaceLister @@ -58,10 +60,13 @@ func (s *restoreLister) Restores(namespace string) RestoreNamespaceLister { } // RestoreNamespaceLister helps list and get Restores. +// All objects returned here must be treated as read-only. type RestoreNamespaceLister interface { // List lists all Restores in the indexer for a given namespace. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.Restore, err error) // Get retrieves the Restore from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. Get(name string) (*v1.Restore, error) RestoreNamespaceListerExpansion } diff --git a/pkg/generated/listers/velero/v1/schedule.go b/pkg/generated/listers/velero/v1/schedule.go index b1431af94..90a262a46 100644 --- a/pkg/generated/listers/velero/v1/schedule.go +++ b/pkg/generated/listers/velero/v1/schedule.go @@ -26,8 +26,10 @@ import ( ) // ScheduleLister helps list Schedules. +// All objects returned here must be treated as read-only. type ScheduleLister interface { // List lists all Schedules in the indexer. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.Schedule, err error) // Schedules returns an object that can list and get Schedules. Schedules(namespace string) ScheduleNamespaceLister @@ -58,10 +60,13 @@ func (s *scheduleLister) Schedules(namespace string) ScheduleNamespaceLister { } // ScheduleNamespaceLister helps list and get Schedules. +// All objects returned here must be treated as read-only. type ScheduleNamespaceLister interface { // List lists all Schedules in the indexer for a given namespace. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.Schedule, err error) // Get retrieves the Schedule from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. Get(name string) (*v1.Schedule, error) ScheduleNamespaceListerExpansion } diff --git a/pkg/generated/listers/velero/v1/serverstatusrequest.go b/pkg/generated/listers/velero/v1/serverstatusrequest.go index ae35c2d6c..c03b60c48 100644 --- a/pkg/generated/listers/velero/v1/serverstatusrequest.go +++ b/pkg/generated/listers/velero/v1/serverstatusrequest.go @@ -26,8 +26,10 @@ import ( ) // ServerStatusRequestLister helps list ServerStatusRequests. +// All objects returned here must be treated as read-only. type ServerStatusRequestLister interface { // List lists all ServerStatusRequests in the indexer. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.ServerStatusRequest, err error) // ServerStatusRequests returns an object that can list and get ServerStatusRequests. ServerStatusRequests(namespace string) ServerStatusRequestNamespaceLister @@ -58,10 +60,13 @@ func (s *serverStatusRequestLister) ServerStatusRequests(namespace string) Serve } // ServerStatusRequestNamespaceLister helps list and get ServerStatusRequests. +// All objects returned here must be treated as read-only. type ServerStatusRequestNamespaceLister interface { // List lists all ServerStatusRequests in the indexer for a given namespace. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.ServerStatusRequest, err error) // Get retrieves the ServerStatusRequest from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. Get(name string) (*v1.ServerStatusRequest, error) ServerStatusRequestNamespaceListerExpansion } diff --git a/pkg/generated/listers/velero/v1/volumesnapshotlocation.go b/pkg/generated/listers/velero/v1/volumesnapshotlocation.go index b5ff7fe53..8c8aa432f 100644 --- a/pkg/generated/listers/velero/v1/volumesnapshotlocation.go +++ b/pkg/generated/listers/velero/v1/volumesnapshotlocation.go @@ -26,8 +26,10 @@ import ( ) // VolumeSnapshotLocationLister helps list VolumeSnapshotLocations. +// All objects returned here must be treated as read-only. type VolumeSnapshotLocationLister interface { // List lists all VolumeSnapshotLocations in the indexer. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.VolumeSnapshotLocation, err error) // VolumeSnapshotLocations returns an object that can list and get VolumeSnapshotLocations. VolumeSnapshotLocations(namespace string) VolumeSnapshotLocationNamespaceLister @@ -58,10 +60,13 @@ func (s *volumeSnapshotLocationLister) VolumeSnapshotLocations(namespace string) } // VolumeSnapshotLocationNamespaceLister helps list and get VolumeSnapshotLocations. +// All objects returned here must be treated as read-only. type VolumeSnapshotLocationNamespaceLister interface { // List lists all VolumeSnapshotLocations in the indexer for a given namespace. + // Objects returned here must be treated as read-only. List(selector labels.Selector) (ret []*v1.VolumeSnapshotLocation, err error) // Get retrieves the VolumeSnapshotLocation from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. Get(name string) (*v1.VolumeSnapshotLocation, error) VolumeSnapshotLocationNamespaceListerExpansion } diff --git a/pkg/install/resources.go b/pkg/install/resources.go index dbe19fba9..40ec711f3 100644 --- a/pkg/install/resources.go +++ b/pkg/install/resources.go @@ -27,7 +27,6 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1crds "github.com/vmware-tanzu/velero/config/crd/v1/crds" - v1beta1crds "github.com/vmware-tanzu/velero/config/crd/v1beta1/crds" velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" ) @@ -226,11 +225,6 @@ func AllCRDs(perferredAPIVersion string) *unstructured.UnstructuredList { resources.SetGroupVersionKind(schema.GroupVersionKind{Group: "", Version: "v1", Kind: "List"}) switch perferredAPIVersion { - case "v1beta1": - for _, crd := range v1beta1crds.CRDs { - crd.SetLabels(Labels()) - appendUnstructured(resources, crd) - } case "v1": for _, crd := range v1crds.CRDs { crd.SetLabels(Labels())