Hongyu Zhou commited on
Commit
604cb3d
1 Parent(s): faad385

update license

Browse files
Files changed (41) hide show
  1. LICENSE +41 -24
  2. README.md +2 -2
  3. medomni/__pycache__/__init__.cpython-39.pyc +0 -0
  4. medomni/common/__pycache__/__init__.cpython-39.pyc +0 -0
  5. medomni/common/__pycache__/config.cpython-39.pyc +0 -0
  6. medomni/common/__pycache__/dist_utils.cpython-39.pyc +0 -0
  7. medomni/common/__pycache__/logger.cpython-39.pyc +0 -0
  8. medomni/common/__pycache__/registry.cpython-39.pyc +0 -0
  9. medomni/common/__pycache__/utils.cpython-39.pyc +0 -0
  10. medomni/datasets/__pycache__/__init__.cpython-39.pyc +0 -0
  11. medomni/datasets/__pycache__/data_utils.cpython-39.pyc +0 -0
  12. medomni/datasets/builders/__pycache__/__init__.cpython-39.pyc +0 -0
  13. medomni/datasets/builders/__pycache__/base_dataset_builder.cpython-39.pyc +0 -0
  14. medomni/datasets/builders/__pycache__/image_text_pair_builder.cpython-39.pyc +0 -0
  15. medomni/datasets/datasets/__pycache__/__init__.cpython-39.pyc +0 -0
  16. medomni/datasets/datasets/__pycache__/base_dataset.cpython-39.pyc +0 -0
  17. medomni/datasets/datasets/__pycache__/caption_datasets.cpython-39.pyc +0 -0
  18. medomni/datasets/datasets/__pycache__/cc_sbu_dataset.cpython-39.pyc +0 -0
  19. medomni/datasets/datasets/__pycache__/laion_dataset.cpython-39.pyc +0 -0
  20. medomni/datasets/datasets/__pycache__/med_dataset.cpython-39.pyc +0 -0
  21. medomni/datasets/datasets/__pycache__/medcaption_datasets.cpython-39.pyc +0 -0
  22. medomni/models/.pyarmor_config +25 -0
  23. medomni/models/__pycache__/Qformer.cpython-39.pyc +0 -0
  24. medomni/models/__pycache__/UNet.cpython-39.pyc +0 -0
  25. medomni/models/__pycache__/__init__.cpython-39.pyc +0 -0
  26. medomni/models/__pycache__/base_model.cpython-39.pyc +0 -0
  27. medomni/models/__pycache__/blip2.cpython-39.pyc +0 -0
  28. medomni/models/__pycache__/eva_vit.cpython-39.pyc +0 -0
  29. medomni/models/__pycache__/medomni.cpython-39.pyc +0 -0
  30. medomni/models/__pycache__/modeling_llama.cpython-39.pyc +0 -0
  31. medomni/models/medomni.py +3 -518
  32. medomni/models/pyarmor_runtime_000000/__init__.py +2 -0
  33. medomni/models/pyarmor_runtime_000000/__pycache__/__init__.cpython-39.pyc +0 -0
  34. medomni/models/pyarmor_runtime_000000/pyarmor_runtime.so +0 -0
  35. medomni/processors/__pycache__/__init__.cpython-39.pyc +0 -0
  36. medomni/processors/__pycache__/base_processor.cpython-39.pyc +0 -0
  37. medomni/processors/__pycache__/blip_processors.cpython-39.pyc +0 -0
  38. medomni/processors/__pycache__/randaugment.cpython-39.pyc +0 -0
  39. medomni/tasks/__pycache__/__init__.cpython-39.pyc +0 -0
  40. medomni/tasks/__pycache__/base_task.cpython-39.pyc +0 -0
  41. medomni/tasks/__pycache__/image_text_pretrain.cpython-39.pyc +0 -0
LICENSE CHANGED
@@ -1,24 +1,41 @@
1
- Copyright President and Fellows of Harvard College, 2024. All Rights Reserved.
2
-
3
- Redistribution and use in source and binary forms, with or without
4
- modification, are permitted provided that the following conditions are met:
5
-
6
- Redistributions of source code must retain the above copyright notice, this
7
- list of conditions and the following disclaimer. Redistributions in binary
8
- form must reproduce the above copyrightnotice, this list of conditions and the
9
- following disclaimer in the documentation and/or other materials provided with
10
- the distribution. Neither the name "Harvard" nor the names of its contributors
11
- may be used to endorse or promote products derived from this software without
12
- specific prior written permission.
13
-
14
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOTLIMITED TO, THE
16
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17
- ARE DISCLAIMED. IN NO EVENT SHALLTHECOPYRIGHT HOLDER OR CONTRIBUTORS BE
18
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19
- CONSEQUENTIAL DAMAGES(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21
- INTERRUPTION)HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
23
- OTHERWISE)ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
24
- OF THE POSSIBILITY OF SUCH DAMAGE.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ## Non-Commercial Research Use Only Software License and Terms of Use
2
+
3
+ MedVersa_Inference is a software package that includes original code created by the Harvard researchers listed below (the “Software”), and third-party code that may be obtained by End Users under separate terms of use. The Software is designed to facilitate medical artificial intelligence research. The Software was developed by Hong-Yu Zhou, Julián Nicolás Acosta, and Pranav Rajpurkar at Harvard University. It is distributed for free academic and non-commercial research use by President and Fellows of Harvard College (“Harvard”).
4
+
5
+ Using the Software indicates your agreement to be bound by the terms of this Non-Commercial Research Use Only Software License and Terms of Use (“License and Terms of Use”). Absent your agreement to the terms below, you (the “End User”) have no rights to hold or use the Software whatsoever.
6
+
7
+ Harvard agrees to grant hereunder a limited non-exclusive license to End User for the use of the Software in the performance of End User’s internal, non-commercial research on the following terms and conditions:
8
+
9
+ 1. NO REDISTRIBUTION. The Software remains the property of Harvard, and End User shall not publish, distribute, or otherwise transfer or make available the Software to any other party.
10
+
11
+ 2. NO COMMERCIAL USE. End User shall not use the Software for Commercial use and any such use of the Software is expressly prohibited. “Commercial use” includes, but is not limited to, use of the Software in any manner to generate revenue for the End User, including, without limitation, selling the Software or any improvement, modification or Derivative Work of the Software for a fee or as a service (i.e. Software as a Service), or including the Software or any improvement, modification or Derivative Work of the Software in any product for commercial sale. If End User wishes to use the Software for Commercial use, End User must execute a separate license agreement with Harvard.
12
+
13
+ Requests for use of the Software for Commercial use, please contact:
14
+
15
+ Office of Technology Development
16
+ Harvard University
17
+ Smith Campus Center, Suite 727E
18
+ 1350 Massachusetts Avenue Cambridge, MA 02138 USA Telephone: (617) 495-3067
19
+ E-mail: otd@harvard.edu
20
+
21
+ 3. OWNERSHIP AND COPYRIGHT NOTICE. Harvard owns all intellectual property in the Software. End User shall gain no ownership to the Software. End User shall not remove or delete, and shall retain in the Software (including in any modifications to the Software and in any Derivative Works), the copyright, trademark, or other notices pertaining to Software as provided with the Software.
22
+
23
+ 4. DERIVATIVE WORKS; IMPROVEMENTS; MODIFICATIONS. End User may improve, modify and create and use Derivative Works (as such term is defined under U.S. copyright laws) of the Software; provided however, that the use of any such improvements, modifications or Derivative Works shall be restricted to non-commercial, internal research by End User. End User may not distribute such improvements, modifications or Derivative Works to any third parties or use such improvements, modifications or Derivative Works of the Software for any Commercial use.
24
+
25
+ 5. FEEDBACK. In order to improve the Software, comments from End Users may be useful. End User agrees to provide Harvard with feedback on the End User’s use of the Software (e.g., any bugs in the Software, the user experience, etc.). Harvard is permitted to use such information provided by End User in making changes and improvements to the Software without compensation or accounting to End User.
26
+
27
+ 6. NON ASSERT. End User acknowledges that Harvard may develop modifications to the Software that may be based on the feedback provided by End User under Section 5 above. Harvard shall not be restricted in any way by End User regarding its use of such information. End User acknowledges the right of Harvard to prepare, publish, display, reproduce, transmit and or use modifications to the Software that may be substantially similar or functionally equivalent to End User’s modifications and/or improvements if any. In the event that End User obtains patent protection for any modification or improvement to Software, End User agrees not to allege or enjoin infringement of End User’s patent against Harvard, or any of the researchers, medical or research staff, officers, directors and employees of those institutions.
28
+
29
+ 7. PUBLICATION & ATTRIBUTION. End User has the right to publish, present, or share results from the use of the Software. In accordance with customary academic practice, End User will acknowledge Harvard as the provider of the Software and may cite the relevant reference(s) from the following list of publications:
30
+
31
+ Zhou, Hong-Yu, Subathra Adithan, Julián Nicolás Acosta, Eric J. Topol, and Pranav Rajpurkar. "A Generalist Learner for Multifaceted Medical Image Interpretation." arXiv preprint arXiv:2405.07988 (2024).
32
+
33
+ 8. NO WARRANTIES. THE SOFTWARE IS PROVIDED "AS IS." TO THE FULLEST EXTENT PERMITTED BY LAW, HARVARD HEREBY DISCLAIMS ALL WARRANTIES OF ANY KIND (EXPRESS, IMPLIED OR OTHERWISE) REGARDING THE SOFTWARE, INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OWNERSHIP, AND NON-INFRINGEMENT. HARVARD MAKES NO WARRANTY ABOUT THE ACCURACY, RELIABILITY, COMPLETENESS, TIMELINESS, SUFFICIENCY OR QUALITY OF THE SOFTWARE. HARVARD DOES NOT WARRANT THAT THE SOFTWARE WILL OPERATE WITHOUT ERROR OR INTERRUPTION.
34
+
35
+ 9. LIMITATIONS OF LIABILITY AND REMEDIES. USE OF THE SOFTWARE IS AT END USER’S OWN RISK. IF END USER IS DISSATISFIED WITH THE SOFTWARE, ITS EXCLUSIVE REMEDY IS TO STOP USING IT. IN NO EVENT SHALL HARVARD BE LIABLE TO END USER, IN CONTRACT, TORT OR OTHERWISE, FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR OTHER DAMAGES OF ANY KIND WHATSOEVER ARISING OUT OF OR IN CONNECTION WITH THE SOFTWARE, EVEN IF HARVARD IS NEGLIGENT OR OTHERWISE AT FAULT, AND REGARDLESS OF WHETHER HARVARD IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
36
+
37
+ 10. INDEMNIFICATION. To the extent permitted by law, End User shall indemnify, defend and hold harmless Harvard, its current and former corporate affiliates, directors, trustees, officers, faculty, medical and professional staff, employees, students and agents and their respective successors, heirs and assigns (the "Indemnitees"), against any liability, damage, loss or expense (including reasonable attorney's fees and expenses of litigation) incurred by or imposed upon the Indemnitees or any one of them in connection with any claims, suits, actions, demands or judgments arising from End User’s breach of this License and Terms of Use or End User’s use of the Software. This indemnification provision shall survive expiration or termination of this License and Terms of Use.
38
+
39
+ 11. GOVERNING LAW. This License and Terms of Use shall be construed and governed by the laws of the Commonwealth of Massachusetts regardless of otherwise applicable choice of law standards.
40
+
41
+ 12. NON-USE OF NAME. Nothing in this License and Terms of Use shall be construed as granting End User any rights or licenses to use any trademarks, service marks or logos associated with the Software. End User may not use the terms “Harvard” (or a substantially similar term) in any way that is inconsistent with the permitted uses described herein. End User may not use any name or emblem of Harvard or any of its schools or subdivisions for any purpose, or to falsely suggest any relationship between End User and Harvard, or in any manner that would infringe or violate any of its rights.
README.md CHANGED
@@ -4,7 +4,7 @@ app_file: demo_inter.py
4
  sdk: gradio
5
  sdk_version: 4.24.0
6
  ---
7
- # MedVersa: An orchestrated medical AI system
8
  The model card for our paper [A Generalist Learner for Multifaceted Medical Image Interpretation
9
  ](https://arxiv.org/abs/2405.07988).
10
 
@@ -76,4 +76,4 @@ For more details and examples, please refer to `inference.py`.
76
  `CUDA_VISIBLE_DEVICES=0 python demo.py --cfg-path medversa.yaml`
77
 
78
  ## Prompts
79
- More prompts can be found in `medomni/datasets/prompts.json`.
 
4
  sdk: gradio
5
  sdk_version: 4.24.0
6
  ---
7
+ # MedVersa: A Generalist Learner for Multifaceted Medical Image Interpretation
8
  The model card for our paper [A Generalist Learner for Multifaceted Medical Image Interpretation
9
  ](https://arxiv.org/abs/2405.07988).
10
 
 
76
  `CUDA_VISIBLE_DEVICES=0 python demo.py --cfg-path medversa.yaml`
77
 
78
  ## Prompts
79
+ More prompts can be found in `medomni/datasets/prompts.json`.
medomni/__pycache__/__init__.cpython-39.pyc CHANGED
Binary files a/medomni/__pycache__/__init__.cpython-39.pyc and b/medomni/__pycache__/__init__.cpython-39.pyc differ
 
medomni/common/__pycache__/__init__.cpython-39.pyc CHANGED
Binary files a/medomni/common/__pycache__/__init__.cpython-39.pyc and b/medomni/common/__pycache__/__init__.cpython-39.pyc differ
 
medomni/common/__pycache__/config.cpython-39.pyc CHANGED
Binary files a/medomni/common/__pycache__/config.cpython-39.pyc and b/medomni/common/__pycache__/config.cpython-39.pyc differ
 
medomni/common/__pycache__/dist_utils.cpython-39.pyc CHANGED
Binary files a/medomni/common/__pycache__/dist_utils.cpython-39.pyc and b/medomni/common/__pycache__/dist_utils.cpython-39.pyc differ
 
medomni/common/__pycache__/logger.cpython-39.pyc CHANGED
Binary files a/medomni/common/__pycache__/logger.cpython-39.pyc and b/medomni/common/__pycache__/logger.cpython-39.pyc differ
 
medomni/common/__pycache__/registry.cpython-39.pyc CHANGED
Binary files a/medomni/common/__pycache__/registry.cpython-39.pyc and b/medomni/common/__pycache__/registry.cpython-39.pyc differ
 
medomni/common/__pycache__/utils.cpython-39.pyc CHANGED
Binary files a/medomni/common/__pycache__/utils.cpython-39.pyc and b/medomni/common/__pycache__/utils.cpython-39.pyc differ
 
medomni/datasets/__pycache__/__init__.cpython-39.pyc CHANGED
Binary files a/medomni/datasets/__pycache__/__init__.cpython-39.pyc and b/medomni/datasets/__pycache__/__init__.cpython-39.pyc differ
 
medomni/datasets/__pycache__/data_utils.cpython-39.pyc CHANGED
Binary files a/medomni/datasets/__pycache__/data_utils.cpython-39.pyc and b/medomni/datasets/__pycache__/data_utils.cpython-39.pyc differ
 
medomni/datasets/builders/__pycache__/__init__.cpython-39.pyc CHANGED
Binary files a/medomni/datasets/builders/__pycache__/__init__.cpython-39.pyc and b/medomni/datasets/builders/__pycache__/__init__.cpython-39.pyc differ
 
medomni/datasets/builders/__pycache__/base_dataset_builder.cpython-39.pyc CHANGED
Binary files a/medomni/datasets/builders/__pycache__/base_dataset_builder.cpython-39.pyc and b/medomni/datasets/builders/__pycache__/base_dataset_builder.cpython-39.pyc differ
 
medomni/datasets/builders/__pycache__/image_text_pair_builder.cpython-39.pyc CHANGED
Binary files a/medomni/datasets/builders/__pycache__/image_text_pair_builder.cpython-39.pyc and b/medomni/datasets/builders/__pycache__/image_text_pair_builder.cpython-39.pyc differ
 
medomni/datasets/datasets/__pycache__/__init__.cpython-39.pyc CHANGED
Binary files a/medomni/datasets/datasets/__pycache__/__init__.cpython-39.pyc and b/medomni/datasets/datasets/__pycache__/__init__.cpython-39.pyc differ
 
medomni/datasets/datasets/__pycache__/base_dataset.cpython-39.pyc CHANGED
Binary files a/medomni/datasets/datasets/__pycache__/base_dataset.cpython-39.pyc and b/medomni/datasets/datasets/__pycache__/base_dataset.cpython-39.pyc differ
 
medomni/datasets/datasets/__pycache__/caption_datasets.cpython-39.pyc CHANGED
Binary files a/medomni/datasets/datasets/__pycache__/caption_datasets.cpython-39.pyc and b/medomni/datasets/datasets/__pycache__/caption_datasets.cpython-39.pyc differ
 
medomni/datasets/datasets/__pycache__/cc_sbu_dataset.cpython-39.pyc CHANGED
Binary files a/medomni/datasets/datasets/__pycache__/cc_sbu_dataset.cpython-39.pyc and b/medomni/datasets/datasets/__pycache__/cc_sbu_dataset.cpython-39.pyc differ
 
medomni/datasets/datasets/__pycache__/laion_dataset.cpython-39.pyc CHANGED
Binary files a/medomni/datasets/datasets/__pycache__/laion_dataset.cpython-39.pyc and b/medomni/datasets/datasets/__pycache__/laion_dataset.cpython-39.pyc differ
 
medomni/datasets/datasets/__pycache__/med_dataset.cpython-39.pyc CHANGED
Binary files a/medomni/datasets/datasets/__pycache__/med_dataset.cpython-39.pyc and b/medomni/datasets/datasets/__pycache__/med_dataset.cpython-39.pyc differ
 
medomni/datasets/datasets/__pycache__/medcaption_datasets.cpython-39.pyc CHANGED
Binary files a/medomni/datasets/datasets/__pycache__/medcaption_datasets.cpython-39.pyc and b/medomni/datasets/datasets/__pycache__/medcaption_datasets.cpython-39.pyc differ
 
medomni/models/.pyarmor_config ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "models",
3
+ "title": "models",
4
+ "src": ".",
5
+ "entry": null,
6
+ "version": "2.1",
7
+ "is_package": null,
8
+ "manifest": "global-include *.py",
9
+ "output": "dist",
10
+ "runtime_path": null,
11
+ "restrict_mode": 1,
12
+ "obf_code": 1,
13
+ "obf_mod": 2,
14
+ "wrap_mode": 1,
15
+ "advanced_mode": 0,
16
+ "bootstrap_code": 1,
17
+ "cross_protection": 1,
18
+ "mixins": null,
19
+ "plugins": null,
20
+ "platform": null,
21
+ "package_runtime": 1,
22
+ "enable_suffix": 0,
23
+ "license_file": null,
24
+ "build_time": 0.0
25
+ }
medomni/models/__pycache__/Qformer.cpython-39.pyc CHANGED
Binary files a/medomni/models/__pycache__/Qformer.cpython-39.pyc and b/medomni/models/__pycache__/Qformer.cpython-39.pyc differ
 
medomni/models/__pycache__/UNet.cpython-39.pyc CHANGED
Binary files a/medomni/models/__pycache__/UNet.cpython-39.pyc and b/medomni/models/__pycache__/UNet.cpython-39.pyc differ
 
medomni/models/__pycache__/__init__.cpython-39.pyc CHANGED
Binary files a/medomni/models/__pycache__/__init__.cpython-39.pyc and b/medomni/models/__pycache__/__init__.cpython-39.pyc differ
 
medomni/models/__pycache__/base_model.cpython-39.pyc CHANGED
Binary files a/medomni/models/__pycache__/base_model.cpython-39.pyc and b/medomni/models/__pycache__/base_model.cpython-39.pyc differ
 
medomni/models/__pycache__/blip2.cpython-39.pyc CHANGED
Binary files a/medomni/models/__pycache__/blip2.cpython-39.pyc and b/medomni/models/__pycache__/blip2.cpython-39.pyc differ
 
medomni/models/__pycache__/eva_vit.cpython-39.pyc CHANGED
Binary files a/medomni/models/__pycache__/eva_vit.cpython-39.pyc and b/medomni/models/__pycache__/eva_vit.cpython-39.pyc differ
 
medomni/models/__pycache__/medomni.cpython-39.pyc CHANGED
Binary files a/medomni/models/__pycache__/medomni.cpython-39.pyc and b/medomni/models/__pycache__/medomni.cpython-39.pyc differ
 
medomni/models/__pycache__/modeling_llama.cpython-39.pyc CHANGED
Binary files a/medomni/models/__pycache__/modeling_llama.cpython-39.pyc and b/medomni/models/__pycache__/modeling_llama.cpython-39.pyc differ
 
medomni/models/medomni.py CHANGED
@@ -1,518 +1,3 @@
1
- import logging
2
- import random
3
-
4
- import torch
5
- from torch.cuda.amp import autocast as autocast
6
- from torchvision import models
7
- import torch.nn as nn
8
-
9
- from medomni.common.registry import registry
10
- from medomni.models.blip2 import Blip2Base, disabled_train
11
- from medomni.models.modeling_llama import LlamaForCausalLM
12
- from transformers import LlamaTokenizer
13
- from transformers import SwinModel
14
- import torch.nn.functional as F
15
- import math
16
- from einops import rearrange, repeat
17
- from einops_exts import rearrange_many
18
- import open_clip
19
- import segmentation_models_pytorch as smp
20
- from medomni.models.UNet import UNet3d
21
- from huggingface_hub import PyTorchModelHubMixin
22
- import ipdb
23
- from peft import (
24
- get_peft_model,
25
- LoraConfig,
26
- PrefixTuningConfig,
27
- PromptEncoderConfig,
28
- PromptTuningConfig,
29
- TaskType,
30
- )
31
-
32
- class GroupNorm(nn.GroupNorm):
33
- """Subclass torch's LayerNorm to handle fp16."""
34
-
35
- def forward(self, x: torch.Tensor):
36
- orig_type = x.dtype
37
- ret = super().forward(x.type(torch.float32))
38
- return ret.type(orig_type)
39
-
40
- class LayerNorm(nn.LayerNorm):
41
- """Subclass torch's LayerNorm to handle fp16."""
42
-
43
- def forward(self, x: torch.Tensor):
44
- orig_type = x.dtype
45
- ret = super().forward(x.type(torch.float32))
46
- return ret.type(orig_type)
47
-
48
- def replace_batchnorm_2d(model):
49
- for name, module in reversed(model._modules.items()):
50
- if len(list(module.children())) > 0:
51
- model._modules[name] = replace_batchnorm_2d(module)
52
-
53
- if isinstance(module, nn.BatchNorm2d):
54
- model._modules[name] = GroupNorm(num_groups=16, num_channels=module.num_features)
55
- return model
56
-
57
- def dice_loss(input, target):
58
- input = torch.sigmoid(input)
59
- smooth = 1.0
60
- iflat = input.view(-1)
61
- tflat = target.view(-1)
62
- intersection = (iflat * tflat).sum()
63
- return ((2.0 * intersection + smooth) / (iflat.sum() + tflat.sum() + smooth))
64
-
65
- class FocalLoss(nn.Module):
66
- def __init__(self, gamma):
67
- super().__init__()
68
- self.gamma = gamma
69
-
70
- def forward(self, input, target):
71
- if not (target.size() == input.size()):
72
- raise ValueError("Target size ({}) must be the same as input size ({})"
73
- .format(target.size(), input.size()))
74
- max_val = (-input).clamp(min=0)
75
- loss = input - input * target + max_val + \
76
- ((-max_val).exp() + (-input - max_val).exp()).log()
77
- invprobs = F.logsigmoid(-input * (target * 2.0 - 1.0))
78
- loss = (invprobs * self.gamma).exp() * loss
79
- return loss.mean()
80
-
81
- class MixedLoss(nn.Module):
82
- def __init__(self, alpha, gamma):
83
- super().__init__()
84
- self.alpha = alpha
85
- self.focal = FocalLoss(gamma)
86
-
87
- def forward(self, input, target):
88
- loss = self.alpha*self.focal(input, target) - torch.log(dice_loss(input, target))
89
- return loss.mean()
90
-
91
- def trans_seg(sample_num, bsz):
92
- labels = torch.zeros((bsz, 10))
93
- c_bsz = 0
94
- for num1 in sample_num:
95
- num2 = num1.split('-')
96
- for num3 in num2:
97
- if num3 != 'n/a':
98
- c4 = 0
99
- for num in num3.split(','):
100
- labels[c_bsz, c4] = float(num)
101
- c4 += 1
102
- c_bsz += 1
103
- return labels
104
-
105
- def trans_det(sample_num, bsz):
106
- labels = torch.zeros((bsz, 4))
107
- c_bsz = 0
108
- for num1 in sample_num:
109
- num2 = num1.split(';')
110
- for num3 in num2:
111
- if num3 != 'n/a':
112
- c4 = 0
113
- for num in num3.split(','):
114
- labels[c_bsz, c4] = float(num)
115
- c4 += 1
116
- c_bsz += 1
117
- return labels
118
-
119
- def trans_keypoint(sample_num, bsz):
120
- labels = torch.zeros((bsz, 2))
121
- c_bsz = 0
122
- for num1 in sample_num:
123
- num2 = num1.split(';')
124
- for num3 in num2:
125
- if num3 != 'n/a':
126
- c4 = 0
127
- for num in num3.split(','):
128
- labels[c_bsz, c4] = float(num)
129
- c4 += 1
130
- c_bsz += 1
131
- return labels
132
-
133
- @registry.register_model("medomni")
134
- class MedOmni(Blip2Base, PyTorchModelHubMixin):
135
- PRETRAINED_MODEL_CONFIG_DICT = {
136
- "medomni": "configs/models/medomni.yaml",
137
- }
138
- def __init__(
139
- self,
140
- config,
141
- ):
142
- super().__init__()
143
- freeze_vit=True
144
- llama_model=config['llama_model']
145
- max_txt_len=config['max_txt_len']
146
- low_resource=False # use 8 bit and put vit in cpu / have not been tested
147
- end_sym=config['end_sym']
148
- # self.tokenizer = self.init_tokenizer()
149
- self.low_resource = low_resource
150
-
151
- print('Loading VIT')
152
- self.visual_encoder_2d = SwinModel.from_pretrained('microsoft/swin-base-patch4-window7-224')
153
- self.visual_encoder_3d = UNet3d(in_channels=1, n_classes=1, n_channels=32)
154
- self.ln_vision_2d = LayerNorm(1024)
155
- self.ln_vision_3d = LayerNorm(256)
156
-
157
- if freeze_vit:
158
- for name, param in self.visual_encoder_2d.named_parameters():
159
- param.requires_grad = False
160
- self.visual_encoder_2d = self.visual_encoder_2d.eval()
161
- self.visual_encoder_2d.train = disabled_train
162
- for name, param in self.ln_vision_2d.named_parameters():
163
- param.requires_grad = False
164
- self.ln_vision_2d = self.ln_vision_2d.eval()
165
- self.ln_vision_2d.train = disabled_train
166
- for name, param in self.visual_encoder_3d.named_parameters():
167
- param.requires_grad = False
168
- self.visual_encoder_3d = self.visual_encoder_3d.eval()
169
- self.visual_encoder_3d.train = disabled_train
170
- for name, param in self.ln_vision_3d.named_parameters():
171
- param.requires_grad = False
172
- self.ln_vision_3d = self.ln_vision_3d.eval()
173
- self.ln_vision_3d.train = disabled_train
174
- logging.info("freeze vision encoder")
175
- print('Loading VIT Done')
176
-
177
- print('Loading LLAMA')
178
- self.llama_tokenizer = LlamaTokenizer.from_pretrained(llama_model, legacy=False, use_fast=False)
179
- special_token = {}
180
- special_token["additional_special_tokens"] = ['<ImageHere>']
181
- self.llama_tokenizer.add_special_tokens(
182
- special_token
183
- )
184
- self.llama_tokenizer.add_tokens("<DET>")
185
- self.llama_tokenizer.add_tokens("<2DSEG>")
186
- self.llama_tokenizer.add_tokens("<3DSEG>")
187
- # self.llama_tokenizer.add_tokens("<2DPOINT>")
188
- self.llama_tokenizer.add_tokens("<N/A>")
189
-
190
- ### transformers == 4.28
191
- self.det_token_idx = self.llama_tokenizer("<DET>", add_special_tokens=False).input_ids[0]
192
- self.seg_token_idx_2d = self.llama_tokenizer("<2DSEG>", add_special_tokens=False).input_ids[0]
193
- self.seg_token_idx_3d = self.llama_tokenizer("<3DSEG>", add_special_tokens=False).input_ids[0]
194
- self.na_token_idx = self.llama_tokenizer("<N/A>", add_special_tokens=False).input_ids[0]
195
- self.llama_tokenizer.pad_token = 0
196
-
197
- ### transformers == 4.41 (not recommended)
198
- # self.det_token_idx = 32001
199
- # self.seg_token_idx_2d = 32002
200
- # self.seg_token_idx_3d = 32003
201
- # self.na_token_idx = 32004
202
- # self.llama_tokenizer.pad_token_id = 29900
203
-
204
- if self.low_resource:
205
- self.llama_model = LlamaForCausalLM.from_pretrained(
206
- llama_model,
207
- torch_dtype=torch.bfloat16,
208
- load_in_8bit=True,
209
- device_map="auto"
210
- )
211
- else:
212
- self.llama_model = LlamaForCausalLM.from_pretrained(
213
- llama_model,
214
- torch_dtype=torch.bfloat16,
215
- )
216
-
217
- self.llama_model.resize_token_embeddings(len(self.llama_tokenizer))
218
- self.embed_tokens = self.llama_model.get_input_embeddings()
219
- self.embed_states = self.llama_model.get_output_embeddings() # cannot remove
220
- # ---LoRA---
221
- class CastOutputToFloat(nn.Sequential):
222
- def forward(self, x): return super().forward(x).to(torch.bfloat16)
223
- self.llama_model.lm_head = CastOutputToFloat(self.llama_model.lm_head)
224
- # ---LoRA---
225
-
226
- print("Setup PEFT")
227
- peft_config = LoraConfig(
228
- task_type="CAUSAL_LM", inference_mode=False,
229
- r=16,
230
- lora_alpha=16, lora_dropout=0.1,
231
- target_modules=['q_proj', 'v_proj']
232
- ) # 8 32 hyz 9.21
233
- self.llama_model = get_peft_model(self.llama_model, peft_config)
234
- self.llama_proj_2d = nn.Linear(1024, self.llama_model.config.hidden_size)
235
- self.llama_proj_3d = nn.Linear(256, self.llama_model.config.hidden_size)
236
-
237
- # # Detection
238
- text_det = nn.Sequential(
239
- LayerNorm(self.llama_model.config.hidden_size),
240
- nn.Linear(self.llama_model.config.hidden_size, 256),
241
- nn.ReLU(inplace=True),
242
- LayerNorm(256),
243
- nn.Linear(256, 4),
244
- )
245
- self.text_det = text_det
246
- self.det_loss = torch.nn.SmoothL1Loss()
247
-
248
- # # Keypoint
249
- # text_point = nn.Sequential(
250
- # LayerNorm(self.llama_model.config.hidden_size),
251
- # nn.Linear(self.llama_model.config.hidden_size, 256),
252
- # nn.ReLU(inplace=True),
253
- # LayerNorm(256),
254
- # nn.Linear(256, 2),
255
- # )
256
- # self.text_point = text_point
257
- # self.keypoint_loss = torch.nn.SmoothL1Loss()
258
-
259
- # Segmentation
260
- self.model_seg_2d = smp.Unet(encoder_name="resnet18", encoder_weights="imagenet", in_channels=3, classes=1)
261
- self.model_seg_2d = replace_batchnorm_2d(self.model_seg_2d) # GN is much better than BN
262
-
263
- text2seg_2d = nn.Sequential(
264
- LayerNorm(self.llama_model.config.hidden_size),
265
- nn.Linear(self.llama_model.config.hidden_size, 512),
266
- )
267
- self.text2seg_2d = text2seg_2d
268
- self.text2seg_2d_ln = LayerNorm(512)
269
- self.text2seg_2d_gn = GroupNorm(16, 512)
270
- text2seg_3d = nn.Sequential(
271
- LayerNorm(self.llama_model.config.hidden_size),
272
- nn.Linear(self.llama_model.config.hidden_size, 256),
273
- )
274
- self.text2seg_3d = text2seg_3d
275
- self.text2seg_3d_ln = LayerNorm(256)
276
- self.text2seg_3d_gn = GroupNorm(16, 256)
277
- self.seg_loss = MixedLoss(10.0, 2.0)
278
-
279
- self.max_txt_len = max_txt_len
280
- self.end_sym = end_sym
281
- self.prompt_list = []
282
-
283
- def vit_to_cpu(self):
284
- self.ln_vision.to("cpu")
285
- self.ln_vision.float()
286
- self.visual_encoder.to("cpu")
287
- self.visual_encoder.float()
288
-
289
- def encode_img(self, image, modals, task_types=[]):
290
- B,S,_,_,_ = image.shape
291
- device = image.device
292
- image_embeds_list = None
293
- if self.low_resource:
294
- self.vit_to_cpu()
295
- image = image.to("cpu")
296
- with self.maybe_autocast(device):
297
- if 'ct' in modals:
298
- image_embeds_list = self.visual_encoder_3d(image, encoder_only=True)
299
- image_embeds_list = [_.to(device) for _ in image_embeds_list]
300
- image_embeds = image_embeds_list[-1].detach()
301
- image_embeds = F.adaptive_avg_pool3d(image_embeds, (1, 3, 3)).view(B, image_embeds.shape[1], -1).permute(0, 2, 1)
302
- inputs_llama = self.llama_proj_3d(self.ln_vision_3d(image_embeds))
303
- inputs_llama = rearrange(inputs_llama, "(b s) c d -> b s c d", b=B, s=S).to(torch.bfloat16)
304
- atts_llama = torch.ones(inputs_llama.size()[:-2], dtype=torch.long).to(image.device)
305
- else:
306
- image = rearrange(image, "b s c h w -> (b s) c h w")
307
- image_embeds = self.visual_encoder_2d(image)['last_hidden_state'].to(device)
308
- image_embeds_unp = image_embeds.permute(0, 2, 1).view(B*S,-1,7,7)
309
- image_embeds_unp = F.adaptive_avg_pool2d(image_embeds_unp, (3, 3))
310
- image_embeds = image_embeds_unp.view(B*S, -1, 9).permute(0, 2, 1)
311
- inputs_llama = self.llama_proj_2d(self.ln_vision_2d(image_embeds))
312
- if 'segmentation' not in task_types:
313
- inputs_llama = rearrange(inputs_llama, "(b s) c d -> b s c d", b=B, s=S).to(torch.bfloat16)
314
- atts_llama = torch.ones(inputs_llama.size()[:-2], dtype=torch.long).to(image.device)
315
- else:
316
- inputs_llama = rearrange(inputs_llama, "(b s) c d -> b s c d", b=B, s=S).to(torch.bfloat16).detach() # add detach() for segmentation tasks
317
- atts_llama = torch.ones(inputs_llama.size()[:-2], dtype=torch.long).to(image.device).detach()
318
-
319
- return inputs_llama, atts_llama, image_embeds_list
320
-
321
- def prompt_concat(self, img_embeds, atts_img, prompt):
322
- if prompt:
323
- batch_size = img_embeds.shape[0]
324
- p_after_embeds = self.embed_tokens(prompt.input_ids).expand(batch_size, -1, -1)
325
- wrapped_img_embeds = torch.cat([img_embeds, p_after_embeds], dim=1)
326
- wrapped_atts_img = atts_img[:, :1].expand(-1, wrapped_img_embeds.shape[1])
327
- return wrapped_img_embeds, wrapped_atts_img
328
- else:
329
- return img_embeds, atts_img
330
-
331
- def prompt_wrap(self, img_embeds, atts_img, prompt_list, num_imgs, seg=None):
332
- bsz = img_embeds.shape[0]
333
- if prompt_list:
334
- img_idx = ([], [])
335
- for i in range(len(num_imgs)):
336
- for j in range(num_imgs[i]):
337
- img_idx[0].append(i)
338
- img_idx[1].append(j)
339
- prompt_tokens = self.llama_tokenizer(prompt_list, return_tensors="pt", padding="longest", truncation=True, max_length=256).to(img_embeds.device)
340
- idx = (prompt_tokens.input_ids == 32000).nonzero(as_tuple=True)
341
- prompt_tokens.input_ids[idx] = 123 # avoid memory issue
342
- p_embeds = self.embed_tokens(prompt_tokens.input_ids).expand(bsz, -1, -1)
343
- if seg is None:
344
- p_embeds[idx] = rearrange(img_embeds[img_idx], "b c d -> (b c) d").to(torch.bfloat16)
345
- else:
346
- p_embeds[idx] = rearrange(img_embeds[img_idx], "b c d -> (b c) d").to(torch.bfloat16).detach()
347
- return p_embeds, atts_img
348
- else:
349
- return img_embeds, atts_img
350
-
351
- def forward(self, samples):
352
- image = samples["image"]
353
- bsz = image.shape[0]
354
- img_embeds, atts_img, img_embeds_list = self.encode_img(image, samples['modal'], samples['task_type'])
355
- prefix_list = []
356
- tag_list = [[] for _ in range(bsz)]
357
- placeholder = ['<ImageHere>'] * 9 # 9 = the number of visual tokens
358
- for j in range(bsz):
359
- num = samples['num_imgs'][j]
360
- prefix = '' # Can add some prompt, such as 'You will be given an image, please describe everything you see'
361
- for i in range(num):
362
- prefix += '<img' + str(i) + '>' + ''.join(x for x in placeholder) + '</img' + str(i) + '>'
363
- tag_list[j].append('<img' + str(i) + '>')
364
- prefix_list.append('###Human:' + prefix)
365
- img_embeds, atts_img = self.prompt_wrap(img_embeds, atts_img, prefix_list, samples['num_imgs'], seg = None if 'segmentation' not in samples['task_type'] else 'yes')
366
- self.llama_tokenizer.padding_side = "right"
367
-
368
- prompt = [t for t in samples['question']]
369
- for i in range(len(prompt)):
370
- tags = ''
371
- for tag in tag_list[i]:
372
- if tag not in prompt[i]:
373
- tags += tag
374
- prompt[i] = prompt[i].replace('_*_', tags)
375
-
376
- if 'detection' in samples['task_type'] or 'keypoint' in samples['task_type']:
377
- sample_ans = [ans.split('|||')[0] for ans in samples['answer']]
378
- sample_num = [ans.split('|||')[1] for ans in samples['answer']]
379
- else:
380
- sample_ans = samples['answer']
381
- text = ['###Assistant: ' + str(t) + self.end_sym for t in sample_ans]
382
-
383
- prompt_tokens = self.llama_tokenizer(
384
- prompt,
385
- return_tensors="pt",
386
- padding='longest',
387
- truncation=True,
388
- max_length=256,
389
- add_special_tokens=False
390
- ).to(image.device)
391
-
392
- img_embeds, atts_img = self.prompt_concat(img_embeds, atts_img, prompt_tokens)
393
-
394
- to_regress_tokens = self.llama_tokenizer(
395
- text,
396
- return_tensors="pt",
397
- padding="longest",
398
- truncation=True,
399
- max_length=self.max_txt_len,
400
- add_special_tokens=False
401
- ).to(image.device)
402
-
403
- targets = to_regress_tokens.input_ids.masked_fill(
404
- to_regress_tokens.input_ids == self.llama_tokenizer.pad_token_id, -100
405
- )
406
-
407
- empty_targets = (
408
- torch.ones([atts_img.shape[0], atts_img.shape[1]+1],
409
- dtype=torch.long).to(image.device).fill_(-100) # plus one for bos
410
- )
411
- targets = torch.cat([empty_targets, targets], dim=1)
412
-
413
- batch_size = img_embeds.shape[0]
414
- bos = torch.ones([batch_size, 1],
415
- dtype=to_regress_tokens.input_ids.dtype,
416
- device=to_regress_tokens.input_ids.device) * self.llama_tokenizer.bos_token_id
417
-
418
- bos_embeds = self.embed_tokens(bos)
419
- atts_bos = atts_img[:, :1]
420
-
421
- to_regress_embeds = self.embed_tokens(to_regress_tokens.input_ids)
422
- inputs_embeds = torch.cat([bos_embeds, img_embeds, to_regress_embeds], dim=1)
423
- attention_mask = torch.cat([atts_bos, atts_img, to_regress_tokens.attention_mask], dim=1)
424
- with self.maybe_autocast(image.device):
425
- outputs = self.llama_model(
426
- inputs_embeds=inputs_embeds,
427
- attention_mask=attention_mask,
428
- return_dict=True,
429
- labels=targets,
430
- output_hidden_states=True,
431
- )
432
- loss = outputs.loss
433
-
434
- if 'detection' in samples['task_type']:
435
- with self.maybe_autocast(image.device):
436
- hidden_states = outputs.hidden_states[-1]
437
- token_mask = targets == self.det_token_idx
438
- target_states = hidden_states[token_mask]
439
- with self.maybe_autocast():
440
- det_states = self.text_det(target_states)
441
- labels = trans_det(sample_num, det_states.shape[0])
442
- labels = labels.to(targets.device)
443
- det_loss = self.det_loss(det_states, labels)
444
- loss += det_loss * 1e2
445
-
446
- if 'keypoint' in samples['task_type']:
447
- with self.maybe_autocast(image.device):
448
- hidden_states = outputs.hidden_states[-1]
449
- token_mask = targets == self.point_token_idx_2d
450
- target_states = hidden_states[token_mask]
451
- with self.maybe_autocast():
452
- point_states = self.text_point(target_states)
453
- labels = trans_keypoint(sample_num, point_states.shape[0])
454
- labels = labels.to(targets.device)
455
- keypoint_loss = self.keypoint_loss(point_states, labels)
456
- loss += keypoint_loss * 1e2
457
-
458
- if 'segmentation' in samples['task_type']:
459
- if 'ct' in samples['modal']:
460
- masks = samples['answer_img']
461
- with self.maybe_autocast(image.device):
462
- img_embeds_list = self.visual_encoder_3d(image, encoder_only=True)
463
- img_embeds_list = [_.to(targets.device) for _ in img_embeds_list]
464
- hidden_states = outputs.hidden_states[-1]
465
- token_mask = targets == self.seg_token_idx_3d
466
- target_states = hidden_states[token_mask]
467
- seg_states = self.text2seg_3d(target_states)
468
- last_feats = img_embeds_list[-1]
469
- last_feats = last_feats + seg_states.unsqueeze(-1).unsqueeze(-1).unsqueeze(-1)
470
- last_feats = self.text2seg_3d_gn(last_feats)
471
- img_embeds_list[-1] = last_feats
472
- seg_preds = self.visual_encoder_3d(encoder_only=False, x_=img_embeds_list)
473
- loss += self.seg_loss(seg_preds, masks.float()) # +
474
- else:
475
- masks = samples['answer_img']
476
- with self.maybe_autocast(image.device):
477
- feats = self.model_seg_2d.encoder(image[:,0])
478
- last_feats = feats[-1]
479
- hidden_states = outputs.hidden_states[-1]
480
- token_mask = targets == self.seg_token_idx_2d
481
- target_states = hidden_states[token_mask]
482
- seg_states = self.text2seg_2d(target_states)
483
- last_feats = last_feats+seg_states.unsqueeze(-1).unsqueeze(-1)
484
- last_feats = self.text2seg_2d_gn(last_feats)
485
- feats[-1] = last_feats
486
- seg_feats = self.model_seg_2d.decoder(*feats)
487
- seg_preds = self.model_seg_2d.segmentation_head(seg_feats)
488
- loss += self.seg_loss(seg_preds, masks.float())
489
-
490
- return {"loss": loss, "modal": samples['modal'][0], "task_type": samples['task_type'][0]}
491
-
492
- @classmethod
493
- def from_config(cls, cfg, finetune=False):
494
- model = cls(cfg)
495
-
496
- # load checkpoint
497
- ckpt_path = cfg.get("ckpt", "")
498
- if ckpt_path:
499
- print("Load Checkpoint: {}".format(ckpt_path))
500
- ckpt = torch.load(ckpt_path, map_location="cpu")
501
- if finetune:
502
- current_model_dict = model.state_dict()
503
- weights = ckpt['model']
504
- new_state_dict = {}
505
- for k in list(current_model_dict.keys()):
506
- if k in list(weights.keys()):
507
- if weights[k].size() == current_model_dict[k].size():
508
- new_state_dict[k] = weights[k]
509
- else:
510
- new_state_dict[k] = current_model_dict[k]
511
- else:
512
- print(k)
513
- new_state_dict[k] = current_model_dict[k]
514
- msg = model.load_state_dict(new_state_dict, strict=False)
515
- else:
516
- msg = model.load_state_dict(ckpt['model'], strict=False)
517
-
518
- return model
 
1
+ # Pyarmor 9.0.3 (trial), 000000, non-profits, 2024-10-28T10:25:17.968530
2
+ from .pyarmor_runtime_000000 import __pyarmor__
3
+ __pyarmor__(__name__, __file__, b'PY000000\x00\x03\t\x00a\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00\xb1T\x00\x00\x12\t\x04\x00\xbe\xe1\xbaxzwT\x97ix\xf0Y[)K\xa3\x00\x00\x00\x00\x00\x00\x00\x00\xe1\xc5\x9d\xf1z\xce\x98\xd6{\xc40V(i\xee\x0c\x97dK\xc3/Ct\xa8\x98\x19\x84\x08\x1fR\\\xdf\xef\xdb{\xf2 \xdd\xb6\rz_\x0ed\xed\xe7\x06\x16`\x12up\xdci\x87\xa7\x00\x04\n\xec\xde\x00\x1d\x7f\xe7\xc4v76\xfa\x11\xc2\xd3"\xad}\x06\xf6VF\x8aPf_y\xc8\xd8\xfa\x13\xef\x1bf4\x91\x1c\xc5|\xce\x08R\xf2\xaa\xbf\\\x16>F\xbf\xd5\x85\xf1:\xa6\xbb\x079\t\xe9\x7f\r!\xcc\xbf=\xbf0\x03E\xab\xc6R%\xdc\xf1\xf1\x83\xa7\xacIT\xe6\x1d\xa68\xdc\xf8\xb9\xd3B\x07\xeb\xc6\x0e\xb1\xc3yuR\x83E/4\xd4%\xca\'\xd9Lk\xffW\xd1\xf0Y\xae\x80<P\xda:P\x85-?\xbc\x99\xdb\xe4&\x8f\xeay\xfa\x0e+\xdf%r`\x98m\x12\x06y[om\xdc"\xf351\xa9e\x8aw\xed(8@M-\xe1\x0b\xa1D\x16\x9e\xe7\xd6\x9e\xf7(\xa4\x99\xb9\x1d\xc0\xdc\xeb\x80\x11m2\xd5X"\x8a\xb2v+\x9f\'\xd2\xff[*61\'\xde\x99\xd4\xcf\xed\x084\xed\xfb\xe0\x86\xae\x8b\x82+I>)\x97\xc0\xe4\xd1\x18$_\x1c\xb1\x0e\xa6\xac\x14\xda\x1b1\xe2\x13\xe4\x7f\x99\xfav\'\xfd8X1\xf7\x81[@\xf2Z7x\x91\xf2}\xc1\x8d\x06j\x8e\x88\xa5\xfd2\xa7\x9a\x93\x028\xbc\xc63_\x91#\xa1\x1c3\xbe9\xc3\xde Y\xed\x938\x82\xb2\x0eZ\x1e@h\xb4O\xa0W`\xbb\xb6\xf4\x89\xf1\xff\xc8\xbbd\x16\xf9,\x1d{\xda\x80\\m\xad\xccN\x94Y\xa2\xf1\xfc\xca5\xae\x0f\x12\xff\x9dxdk\xb3\xcc\xa5\x81\xe9F\xf4\xd8\nD\x82o\x16O\xb9M\x92\xc5\x0f|2>R\xd1\xcf^\xc9\xd4\x96cGcc\xd3\x816\x11\xd8\xbb\xc9\xd1Um\xb0\xe8-\r\n\xd7\xb8\x08\xbb\xed%\x16\xda\xff3:\x96\xc1\xcbb\xf8$\xb5V\xe9vh\xaf\xbf\x8c#+\x7f 3\xad\xd5\xce\xe2S\x8ec\xd6Ct\xa5x\xd6\xdeq\x00\x019\x9e\x85K\x93\xaf\xeb\xc0\xf8\x8dX\xa8\x1ad\xee\'X\xe4Q\x92\xd9]S\x128\x00\xd7\xf8[D_\x00\x02\xb9\xc3\x99\x10\x84\x8e\xc6\xf5\x9c\x127^\xe5:n"\xd1\x1fs*o\x94l\xff\xdc\xdaMq\xd6\xac\xb8q\xa9+\x17\xbf@\x01\xea\x04)\xcd%\x81vT\x9bc)\x8e\xdb@ \x95j\xde\x0eXy\x1aH\x8f\xfc\xa6\xf49\xc1m{\x9d\xc6^\x94\xfb\xa6\xd9\xae\xdbv\x08\x07\xbc\x90\xed\x98\xf9\xa6\x9e\x1b\xa9E\x84h\xe8\xd1\x95\xd0S\x9a%\xb6k\xdbmW\x1f\x8a6\xb9\xa2k\xaa\xfc\xc0~\xaa\xf0\x8by\x96\x85\x1fF\x82\xf0h\xfc\x00\x80\xb3K\x81T\x7fNB\x14\x8ej\xe0\xf4s\xaa\r\x8e\x1b\xee\x17\x13\xfd2\x8cx #\x15>\xed\xdf\x8c\xed\x12\xea_\xc1\xe3\xf4\xb4_\x84u\x01\xfd\xc1\xbeOm7Z\xa1g\x1f\xde\x86\xd9\xd6\xd1\x8c\x89\xae\xe2\xff\'\xa9\x11\x0f\xe0\xd6\xd9\xe0\xa3@{\xdb\xd8k(\xe9\x85\x9d\xb2\xd3ki\xe7\xe5\x1c\xa81S\x99\xc9\x90\xf6o&M\xc5\xbd\xfd\xe0\xdeM.?+7\xd1"w\xedR\x01\xde\x9fg}zZ\xf0$\xb4\xcf\x92\x18\x97l\x8c\x18\xb8r\x1c\xdd\xbdt%\x91:\x1a\xcbFwJ\xf8\xe3<\x95\xd1\xaen\x02k\xc2>\x94\x7f\x1d\xb8s\x8eH\xf7\x9a&\x19\x0eq\xe1\x96\xcd\xed*WN\x9b\x93w\xa2\xecu\xd0:\xed\xa4\x90\x14%\xb3\x86cX\xf0\n\xa9v#54\xf5\xe6\x83\r\xd0\xd6\x9dd@\x9e\xedLH\x19\xeaJ4w\xb0z\xdb\xcb \x8d\xb2\xca\xcc\xc0\xa8$c\x05\xdf\xbe\x8b\x1aYo\x10\x86?\x01\x06\x08^)\xe6\x03\xfd\xb1\x93\xec\xd6\xb2\xb0.\x11\x9d\xd7H\x00d{\x16\xea\xa4T\x93\xcb\x8eR\xa9\x1b\xb8\x81\xce\xdaG\xae\x08\xcd\xcdFZ\x99\xc5\x7fVI%\xca\xbb\x97m\xce\xfeJ[\xdfL\x80\xcdi\x88\xa0\xb2\x8a\x06Wj\x0b\xf1O\xbd\xac\xe5\xec"\x10\x0f\xafl\xc3\xfa\x82\x85\x83\xc7-\xe9We\xa9T\xf1\xbf\xd7_w*\xd4?0[Vv`6C\x14\xc5\xa5\x93\x05+T\xe9\xa2\xbb\xfcf6Y\x8d\xff\xec\x1az\'\x98\xeb\xb4pl\xc8\tn.\x04\xe5[\x8e\xfb\xaaLXM\x93Jw\xa3 \x9f\xaf\xa0\x07z\xab\x8c\xa4+R\xeeb,\xab\xaa\x8e\xe7\xd2l\xdd\xaa\xc3\xa0\xf3\xb2\x17\x01A\x02}\x809\x01\x1b\x86\xbe\xc0<\xe8\x88\xca\x1a\x95\xbfL\x9c,nO\xa8#\xa0El@J\xec\x19+\xbf)\xb4\x89\xbb\xa7\x91\xd7\xd3$P\xcc{\x97K]\x0e0\xe9\xd1\x9b+\x93\xc3\xc5\xa8\xa3~\xbdSIIv`\xb6\x0e\x14d\xeb\xfc\xbf\xb7z\x97\xa2\x1f\x08\xb6\xc9\x8fT\x9c\xeb\xc5\xda\x88\xab\x959\x0c\x1c\x9ey=\xcf\xb7\xc7m"w\xd9j\xd4TW\xcfv\xa0\xbf\x9d\xdb\xda\xf4f\xe1\x18*\xa6\x8c\x17Ov\x19\xda\x01\xaf\xec\x0c\xf8a\xeab\x8c\x01c_\x9d\xb5\x02\xb2\x0f\x91\xa5\xe6R\x1eQ\xe71eY\xc3z\xe2\x02\x10B(\x166n\xcd\xdb\xd8\x852s\xe5\x1e\x1e\xb1\x9bm\xf2y\x8bw\\\x04\xc1\x08<\xef\xe06k\x8e\xb7\xafJ\xa27<4\xa9\x03\xf3\xaeS,\x93.\x0c;\x07\xd2@\x9f\xa2\xa98\x87]\x1b\xbc\xc4\xf4\xe3\x8e\xff2\x8a98\xcaa\x1a\x00]\xa6\xd4\xc4\xc1\t\x07A\xa4\xa1\xae\n\xb9\xeal\x8c-\xa4e\xcc\xf1\xf1\xb9\x03\xf6g\xfc^Q\xd3O\xd4\xf7\xb9\xac9\xdc\xaatkv\xb9j\xae\x99\xce<r\xb1/\xcc\xe7\x85I.S*\x10YbYK\xa4\x97\xb21G\x13i\xf8\xba\xe7w\xea\xaf<Xw\x02\nTHQ\x87C\xe6I\xf6\xcb\xef\x8b\xf7\xd4`\xfa\xda\x90M\x0e\x97\x15U_?N\x8d\xe6/\xb2\xbe\xa0y:x\xf1\xdb1\xd8JR\xf9\x8dz[\xb8r\xc6\xa1\x82r\xddS\xfdZ\xf5\x04\xe8\x00|\x1c\xce\x10\xec\r6\xfc\xf5\xc7+\x06\xbc\xdb\xd20\x10t\x96C\x12\x87S\xe6\xfc\xda?\xa6\x0f\xb9\x02}\x7f\xfb\x90\x05\x10\x9d\xda\x7f{\xb0n\xff\xa0\xf5\xf2\xbf#\x98\xbc\xb5\xcd ~\xd5\x93f\x9f\x15\n_.\x03\x88\xee\x05\xadN2[\xa8\xd4\x88*\x937\xe8\xd7\x83i(\xb0T\xba\x15\x95\x1a\xbd\x95\'fj\x9d\x02\xc7Z\xe9\xd1t\x8d\x8d\xed(\x9cMX\xd0\x8e\x10\x8d@\xf1\xb9-\x84\xa3\x9b\x80!\xa5h\xfc\xf7m\xbc\xf9\'=\xf8k\x96<\x1d\xbd9\xc9;\xad\xf4.1j\xa2s\xf2\xe0\xb0\xcd|\x84\x04P\xa0~U-\xa1\xa5\xe7c(7q :!\x89\x18\xa8Q\x15kD\xc9X\x14d\x88\x1c\xd9\x8a\xda\xeb^\xea\xbc\x81\x06S\\\xefZ\xcf\xcfa\xaa\xb6\xc2\xdd\x8c\x80\xd7\xeess\n\x15\xd7\x1ax\xef\x0ek\x95\x02jM\xb3\x7f\x0eC#8\xc5\x96-L\xb9\xf2\xe5z\xa7\xa75\x01\xfd\xc8\xaaU\x81\xcb\x1bPp\xaf\xaf\x17\xd1\xf6\x8aq\xd2eY\xa0dI\xf8qC\xcd\x19\xb5\r\xd6.\xc8\xdf4\x0e\xf1\t.\x0fG<\x93yFw<\xdc\xf4?\x98\x97\xf3\x83{\x0e\xda\xa2\xbd\x84\xab\xc64\x83=IX\xdd+\x91"t\xf7!\xd7\xfa\xcdR\xff\xcb\xed\x08\x19\x87fT\xce\x0f\xe4\n\x8a,\x16u\xda n\x07\x8e\xc9^\xac\x82\xab\xfc\x85"z\xdb\x83\xf6\x9c\x91\x9f\xaf\xe5\xee\x94\'5[\x7f)\xb9x\x12\xa8\xfd\x83\xd0\x1b\x9cL\xbe\x19/\x92\rUD\x88\xcfh\x19\x88vF\xf95\x95\r\xab\xe0}]\xfa\\\x06\x98:g\xa1\x1c\xf43\xfeh^M\xf8$9nY\x88\xc3)\xe1\xe5o\xba!\xba*\xb1\xb91Y\rCO\x83\x13\xa3\x8c\xbe\xa7O\xf3\x04\'L\xc1\xdb\xdd\xa0\xdeK\xe2nh\xee\xbb\xd6\xfb\x0b\x11H\xb2g\xc5\x07*\xb1\xcdxK\x93\xde\xf8\xf0\xe0\xde\xe4\x14\xab\xd6t\n\xa8\xb1\x9c\xf79K\x1a\xe1\x81\x890y\x7f\x1b\x80\xf1\x8dtyz\x88\xe1\x1a\x1b;\x04aVX\x16<c\x8c\x07\xda`\xf62\xb8\x13\x82\x05\x8f\xae\xd2\xf3\x82\x8bh\x95\xc3l6\xe06\x1dO\xd9(\xb0\xb2Hz*\xb7A\t\xc6qCw\x8f\x01$\xc7\x16Nk\xc5\x1b\xdc\x14\xfa\x97\x0bz\x1c\xb7A:%S^\x08d\xc0\xa7\xdf\xd0F\xcf\xa0r\xce"\x86!%\xcf\xd0\xaacAX\xa4K\xb4\x1b\xb3\x9e\xd2\xed\x10\xd1OWX\xc4\x9e\x8bv\x82\\\x98\xe9x\xc96+f\xb8\xedX\xef_\x14\xf1W\xbb\xa9\xd9\x8e\x00z\x8f\x01O\xb4\xfe\x1dd>y@\xe3\x00\xe02]>\x96\xdan\x179\xa9\x14)\x87g\x15\xe1\xf7\x97\xec15\xa2\xf0\x02\xd1s\xf3\x19\xac\x9f\xae\xfb\x18g1\xab21\x1dJ\x94\x92\xfd!\xae\xbfKB\x8fe\x1a\x14z \xd6\xa5\x18\xc6 \xd6\xa3\xaf\xd36\x04F\x82\xe4\xbe\nx\xb8Wd\xd3\xc1\xd3L\xc2\x06\x01@N\xff?\x81Ja$}8Mu}\x82F\x98\x87\x90\xb3L\x9e\x95x2\xfa\xc0D\xaf\x0c\x8b\x12\xa1^\x9e\x02`sC\x01\xb8+\xa7\x8d\xe6\x87n>c\xe4\xe6$-g\x92\xb3\xc3\xca\xfe\xc7\xbe\xdaU|\xfegJM@\xa9e\xa4\xfb\x05\x82\x0eA\xef\x91\xcc\xe6\x8bH\xa6\x89+?\xff\x94/\xab\x94\xf0\xad\x8c+\xd0S\xf8\rz\xc6\xea\xec\xd5:/\r\x94&\xfc\xb0\xdf\xa5\x7f>55\xc5T\np\x9e\xa5\x1f>L\xf4\x19UR9\x17`\x94h$\x8a9\x80\xfa\x84\x89r#^\x96n\xb6T\xc5\xa1\x85\xc2\xdb\xb2r\x9c\x17f\xfdyF\xf3\xe6\xc1\x82{\xfd\x81\xa3e\x8c\xb8\xf9H\xbc\xe5\xd1\xae.\x05t2x6\x9a\xe6\xa7\xc6\xc0\xbb{Uf^v\xb0%\xb6\xe4l,\xa3\xbd\xc7{\xe0\x1f"E\x91+\x12\xbe\xd0h\t\xa7\xdcj\xb5\x89\x83\xa2\xab\xb9\xa0\xe62\x922\xc7V\xb7\xc0\xc1I\xb1\x8d\xefqK\x01\xf4,\xf3\xff\xe5rs>\xcb\x16\xe60\xe25\xd2\x8e\xc2\xb1"-\xb1\x1d\xffp\xf4S\xe9y\x91\xa7\x0c\xbc\x93\x07\x8e}\x13`\x02\xd7+\xab\xd8\x03(%\xba>$\xb7#@=\x84\xb0\xbe&7\xa5w\x1a\xbc.d\xff0<?\xd1\xbfzr\xde\xe3\x89\x14L\xe8\x01\xaf\xe1\xc2\xd5M\xbd\xc2-*"5k\x9d\x1bI\xdc%\x01\x9708,\xbe\xb1R\xf7a{\x15\x95}\x063k\xe0\x96;\xa5\xaf2;\xa9\xf0\x0c\xcf\x93\x92\xed\xa3\x1d\xde\xbf\x12\xdd=\x82\x1bp\xb3\xc8\xcff\xc4\xa2]T<4\xc2\x17\xedc>g\xea\x14\xcbP\xf7}\xdb\x99\xf7"7=\x06\xb4\xbb,\xe1\x0c\x0eH\xc6\x85\x8dj#\x01^\x10m\xdd\xe36\xcd\xdf?8\x8c\xa9\xfaB\x90=\xb0\x85\x1e\xb9ib\xbc+\xcf\xb4\xfe\xcd\xc2j\x99\x99c\xde\x81z!\xcdl\xf4\x02\xc2\x90\xc7\xc1\xa5~r\xf8L\xe6\xb14\xb8n\xd4\xf9\xe6k\xcd\xcb\xd9\xe2Z\xd3=O\x86g\x89\xcc\xd4.={\t\x9dX6\xb3\xce\xd5\xab\xbb\x177eO2#| \xc38\xc7v\xd7\x13\x94hyQ64\x9c\x1e\\\x872\xaaC\xde\xff@`\x9d\xfb]\x1e\x1a\xe9\xac\xbe\rNl\x83\xc0\x02\x96\xd6\x01\xb7}~-f\x11Y\xd3\\\x00\xcfr\x03\xdd\x8c(\xc6\xd6E\xc13\xcdt\x8eK ;\xe4\x8e\x10O\xf4\xaec\r\xab\x07\x1dv\x882 SC,\x9a{\xb3\x9a\xc1e\x14#P\x93\xe2>\xf4\xbc\xae)\xaa\xedt\xb6\x07`\xea\x13^\x02-\x16\xf0Q\xce\x8a\x83\x0e\xf9Dwd4\x0e\xc6\xf4\xa4\x8ey|9\xd5\x98\xca\x02\xad\xf32{\xc4\x18&\xb6i\xab\xe9\x91\xfc\xc6\x8fW\x80\xb6\x9c\xe8\xdct\xfe\xfbK\xe4s\x1663\xd1!\xaa\x7f\xc8\x1cm\x86\x1c\xa9\xa9\xcd \xfd\x1a\x120\xd39\xe1\xca\x14\xb9\x82]g\xe0i\xe5\x85\xa0\xabg\xd6\x1b\xf3\xe1\x90\xe0\xc6\xa1N\xdc\xdc\xc2\x86\xaf\xff`\x0c\xff\x95MW\xe1\x10\xca\x8e\xa9\x94\x05S\xcf\x15\xef\xb4\xc8#"\xc4\x1f\xc7\xaf\xe5bc\x9e\xfa\x07 \xc4\n\x19s\x04\x9c\x18Rg\x16\xc1j\x84\x8b\x15\xc4\x8e\xe3\xedLMW\xad\xda.\x98\xcaY\xa6u\xfbrc-\xb9Zy\xfd\x00\xf1\x80Y\x850d\xed_\xca\x97\x16C\t\xd4j\x1e\xdb\x0b\xb3\x89\x1e{\xbaCV\x86\x1e\\p\x17\xc2VGY\xd7\x91P\xb3*\xee\t\xd0\xd1\xf6\xbd+\xe1\xc8V\xea\x80\x98\x85\xe9\x19\x97\x08/\x16\x8dJ\xaf\xba\xd7w\x04\xebhJD\x8d= \xc3.a"\xa8*\xf2\x8a\xa2q\x975\xfc\xc8b+\xf8S\x88\n4,\x07rC\xf0\xd3\xff\xa3\xe7\x1a\x05\'>_\\xk\xd6\x1c\xe1\x8a\xbfL\x18\xc7\xc3a\\+\xd0F\x978\xd4\x1eo\xfbK\xa28\xdf\x03\xb8\xf2\x1b\x9c\x9cXb\x0f\xcb\xf2\xbf\n\x94\xee\xaa\xb9\xc3Ro\xf0\xbd\x01\xe2C!\x91\xb4:\xf0\xab*\x08f\x9fd:\xae24\x17\xdcW\xb2\xfd\x90\xed\x0b\xa1\xfags\x10\xd5\xdd\x0c1)\xf4G\xedU\x93L9|\x1eq\xcc\x98\xe2z\xe2\x94\xc4\xfc\xc1\xd7QI\x08f\x84U\xe0\x8d?\x82\xf0\xabD\xeb\xcf,~\x9d!G\xe5O\x8f\x86\x85\xb9\x1a\xe2\xd8\xbc`\xb6\xa9\xbc\xa5s\x18\x94\xec\x89%h\x1a.\xce\xff?W76\xbe< oV\x01\xda\xe4t\xeeCDh\xad\x1c=$\\\xe7\xeaf\xd4\xe8\xfd\xd1\x95\xb4TY\x8ef\xa7\x1f\xc8\xea\xeaH\xb2Pu\x19O\x7f\x893\x98$\xd8\xfb\x0e\xba>`\x06K}b\x82j\x1b\x93\xfc\xday\xd0\t!\xd9/Q\xd9\x89&3\x85.f\x9d\x80<\x88#\xa5\x02\x93{\xe3-\x87#l\xc5\x88D\xd0b\x07\x1exV\x8d\xfd\x8dJK\xdd\x1f\x91D\x99\xc9\xc2\x85\xf6D\xadu\xe0;,\xa3[\xc5A\x16u:\xb73,\x06\x17B\xae#:\x07\xf9\xe5\xa2\xb0l\x87\x97\x07\xb0t\\\x1aW\x16/\xfa\x07M\x1a^\xe9U\xc8\xa1h\xe6\xc9\xbfL\x82\x84\xdc\xe7\xea\xd7\x99\x15\x06\x9e\xd3j\x8c\x8f\x08\xc9Ob[\xa7\x9cQ;{\xe9\x8e\xcb\x9eW\xa9\xa6BE\xd6\xf66c\x96\xb3\x86\x0fF\xb6\xf2\x97\x80\x93U\xcf\xd2\xeb\xf3\x8e\x14k\xba\xa5\xa5\x1e\x05\xee\x8a\x94\xc5\xd9\x87bc\xae\x1a\xb4\xc9~\xdfF\xabF\x817\x02e\xd6\xad\x85,A\xf7\xd0s\x99\xa3\xe7\x84\xf5\xd6\x8d\xc0M\xb6n$(\xae\xeb\xa5\xe80\x94\xe1)\x89\xa7\xdb\xb2\xb9Z\x9f\x9a\x0b\xe8c\xa2\x18C\xa8\xe8\x99\x1c\x9e\xdcgN\x92\xaa\x04\xd2g~\xf2b\xd8C\xf3\x17\xe3\x99:\xd4\x95S\xfdz\x17`\xa1K/\xad\xbd\x10k\x8c\xf0D)\x8a\x8cA\xa6p!\xb6\xa9\x94\xd4B-\xec\xc4\x85\xa4\xeb\xff\xc2\xd5\x93\x9f\xef\x03\xd8\x8b\x14\xab\x06\xaf\xbc3Y\x142\xed\xb3P\x83>\xf1e\xa5\n}\x12\xed\xb1\xf8 \x96\xdbF\xfe\xffE\xd4\xd0\xaaK\xb1\xfe\x81z"\xf2!\x89\xb3l\n\x85w\xfe\xfe\xd7\xc0Qe\x0b\x8d\xfd\xc5\x81]8O\xe1\x10\x0f\xfa\xfe\xaa2p\xa9cz\x11\xf2\xf7\x89:\xb8"}\x8d\xdc\x8e\xaa-\xecY\xb4Q\x14\xc1\xae&d\xd2\xb8\x7f\xc8\xc3E\x1e\xad}\xf7\xe9\xfb\xc4\x08,\x89\xa5A\xe3u)\xf6\xab\xd7|\xcdnmzul\xc9:\x8dN\xfdk\x8c\x04%\xf2\xa4\x088\x87\x10>D\xc6\x93\x94r\xbbF[|\x16\xfcsZbn%\xfeN\x88\xd5\x91\xb70\xd6\x19\x85\x8c\x94=\x8e\xef(FU\x93\x8f\xaf`M\xa9\xb3z\x0c\xf7\xd5\xc1\x04\xec5\xa6\xc5\xae\xab\xb7\'vj}\xa1\x04\xabwp\xd2\x1cC\x03\t\x88\x8c\xf8\x0f\x89\x00\xb5/\xa9\xa6\xb8\xfbE\x08\xfb\xb7\xba\xde\x1f\xf3\x91&\xb3\x1c\xceP\xb1\xacB~q\xf5$\x98\xb7a\x10W\xf0\xec\xa2\x96;>\x13o\xaeG\xd6\xda\x96\xaa\xa6\x7f\xc0\xb843\xc8\xf4r\n\x19\xbe\xdfn\xfdgN\x84\xfa\xb5\x8f\xc9R\n\x0e<7^\xb5\x86\xea\xda\tl+_e\xb7IE@4m\x13\x9b%\x7f\xae-\xba%~$\xa1\x1b\xcc\xea\x0el\x92\x828\x9a\x13\x9a\t(\xa5\xacFog!r\xcd\xa9\x03\'\xab\xd3\xdeF\xe3&\x03\xe7Cn\xbba\x9a\x86\xce\xf2\x01\x11\x7f\x02d\xa2\xf8\xe8h\xf0\xe9\xf2Hn"i\x90\xa7\xb9\x16\xd7\xd7\xc5GZ\xb3x\x17\xc1\x90=D\xbb\x86k\xdc\x13`Y\xe3t+e\xd9_\' \x02\xac\x7f\xca~=\x0f\x07\xf9l\xb2\xcc\xd2\'\x8c^\xdd\xa4c\xb4\xd19\x87\xb4\xc9\x1d}rg\x11\x88\x00\xed\x0c\xd0]\xb3\xe3\xd0\xb6\xedv\xc6 \xcc${\xab\xb2K\x0bC\xcbq\x9ey\xa3\x07\\\x16<\x08\x00w\x0crS\xceS\xc4CE\xc4\xc1hUg2\xe5\x11\xaa\xc63\xf4XXC\xb6\xa3\x88\xb0OY\xd1\xfe\xa4;\xcd|;\xa3RW\x05M*#G\x82]2\x98\xcb\xff\xc8\xfa\x7f\x82\xa6S\xcd\xb6zS\xd2\x1f\xcd\x95Fj\xd8\xa6U\xb6\xd51\xc5\x18\x94\x81\x050a\xa67\xec\xd1\x00\xa4\x88\xeb5\x17\xb4\xd7\x84\xf6\xcc\xe9\x89s<0Bfn\xb4\x18\xf0d394\'\xfaI\x7f\\M\xd1\x82\xb1*\xa8\x94r\xe4\x8e\xc2;\xb2\xdasw\x85\x86v\x14\xf6\xe1\xc2\x8a\x93\x1c\xac\xfe?*#\x9d}\xfc\xc5H\xa1\xdb\xa8\xf3\x11u+V\x04\x9b\x9eg\xe4Rc\xbc&\x94\xf3\xc8\xe8\xc4\x92\xcbj\xcf\xf5 \xae\xa0\xa4\xa2\x10\x16\xa9\xa3\xdb\xf0G1\xa7Y\xb3\xd0\xab\xcb\xed\n\x83\x16-\x7f!\xb0\xb7\\\x85\xe4h@\nG)g\xec\x14\xf8\x00\xf5\xb3]r\xe4z\xc5\xc6\x86l\xab \xc9\xee\xb1%\x8fY`\x90\xca\x83\x13\x8e\x97\x85g\x8b\xfb\x08[\x8e\xab\x87[m\x9bVb-\xee\xe0\x89\x96s}A\xaf\r\x96\xeb\xa7\x9b\xf2\x82"oR\x91E\xf5\xb0MQ\xc3\x94:\x86Qd\x80\xe4\x11\xb07\x1f\xf8ph\x87*EH\xb7\xc6\x964\xde\xb4\x8a\x01\x88!\xb40)(\xa4\x9d\xf4\xe7f\xd1\x8d\xb3\'\xa0S~\x9f\x9d\x96U\xb9\xfb\xd4\x03_c\xde\xc88-*\xad\x0b\xe3\t!\x83\x8a\x88\xb2\xbd\xf7\xfd\xb9\xb6\xb60\x9ae\xe4C\xeb\xc9\xa1}\xac\x87\x9f\x1e\x8c\xcb\x87\xb5\x98\x19b\xf79\x9f\xa2 \xa2<S\x96\xf3\xd0\xfe@\xdc \xba\xbe(\x00^\xc3\xb6m\xb3\x11\xcd\xcf\rz\xd6\xf3\xa8\xfe\xa5!FFf\xfbk,\x8f\x8b\x07\x7f\x1e\xac\x18\xeeA\xca\xc6\xe4q\n]OH\xe6\xd2\xea\xdf\x9aV\x1f\xdc5XJ\xd35\x82]\x80\x89q<f\xa0^\xa7\xae\x03O\xe5\x08O\xd4\xac\xfdT\xd5\x03\xb0\x11\xbe^5\xb0\xc3\xe9\x11\xfa\x87\xe5\xaf\x0eC\xb7aF\xee\xbb~\r`\x89\x06E\xe2\x9c\x1b\x14\xba2\x16\x1fS\xab\xc0Oj\xdd-\r\xe8\xe6\xdb\x10\x95)I\x85\x8cn=\xe5\xe9\xb3qX\xbd\xee\x86\x17/\x0e\xc2\x9d\xda2^?\xd2c\xbd\xbc\xc5\xf0\xd6R\xa6r\xf6\x96\x80\x0cA\xc5.\xdf\xd6h!Z\x0e\xa4T\xb3~\x9f\xeaoZ\xd1\xfc\x818`\x98\xc3\x13\x99\x8a\xa1\xb8|\xda\x0c\xdc9\xda-9\x15d\xf1>\'\xbb\x0e\xa6\xfa\xf9g{T[(\xd8 \x9eK\x83\x15Tjq\x855}!R\x13\xd2N>\xc3\'\xe9`\xd4=\x8f{\xdb\xa1\x93]\xb2Br\xacc\xf2\xe2\x1d}\x96K\x8e\x8fv\x16\x1a\xa7d\x80\xe9w"\x05\x12j\xd0\n%I\xeb\xbe1\xa3!\x08\x0eNb\xec\xff\x14\xd7~\xdc\xdco\x17\x10?\xbc\xa0\xbdu\x11\x9dX\x0b\xc1\xb3\x01 \xd1\x9fC\x13\xde\xc4f\xfc\xa8G_\x8b\xb2\x0f\x17\x8f\xedBa\x16\xe6q\x96w\x18\xc7\xb0\xc8\xd6x\xdb$y+\xd0Z\xa5\xeb\xb5s-\xee\xf0dxj\x9e\x9bV\xef\'4\x90@\xf8\x10;\x8by\tc\xa9_\xe7E\x1b\x8c\xb80\xbdKD\xaa}\xb6;V\xf7\xc9\x04cb"l.\xa2\xa1\x91>\xb6\x17\xe1N\xeb(\n\x9b\xf3\xf9L\xa1\x86\xd3\xd6<\'~=\xe3Wh\x99\xd8.\x00\xed\xa7\x1e\x10F\xdf\xaf(\xaf\xba1\xb1\xbc\x9f\x89\x1a\xc8(\x89\x93T\x8b\x17\xecwR\xda\xec\xc1\xa8GAt&\x0fZ,\xd3\x1d\x86p{\xcd\xe8\xe2\x90\xb7\xe6\x8c\xe6\xe3\n\xc4!\xcf\xe5\xe3\x8b\x8c\xa7\xa2\xa8\xa6A\xe6W\x8e\x19U\xc1\x9a\xf9D\xd6\xe4\xad\xba\xcc\xa0R)\xdd\xc1\x9du\xafek\xe0+\xbb\x18?6\x1f\xf5\xaaiZ\xb3^\xbbb=\x05\x8b\xee\xe4hY\xd5jTMS9\x97\xfd\x9c\xd2)\x05\x1c\xb7\x10\x12\x9eg\xad\xaeq\xb2\x11d\\mS\xf1\x8e\xf8]\xc7M\x8dO\xe3o\xfb\xab\xbf\xe5\xa7\xe6\\\x07\xe8\x1d\xaf\x1c\xcf\x9a^\xdf\x83\x95\x18\xbe\x0e\x10\x9f\xa9\xedxO\xa8Z\xec`\xf5\x00C&g\x00l\x9e\x7f\xe0\x14\xe1\x88\xeelncY\x1c\x0e<;\xcd\xe81\xc9.\x85\x8d\x04q\xac`\xa4\xd4\xcc\xee\x94\xa5\xa3\xa4!\xff\x8d\xcb\x95\xd2\xd7Q%L\xe4\x17\x1a\xabw\xb0\x03\xc2koP\x91\xd8\xc3\x12\xe6\xf4\x0f\xbf\xf8g!\xde\xa5\x17w\xbc\x89\x0ek\x9a\x1b3\x1b\xa5\x80\xc1Bl9,\xfaq\x04\xbd\xee\x9e\xe3\xea\xb5\xe0\xa5\x99$\xdb\xe8\x8d\x18\xa9\x17\n\xd8x\xcf\x98\x8a#\xb2t\xf0e"\x9e~\xbeo,\x86\x80`t\xb7\x1d\x19\x93\x11d\x01\xad"(\xc5\xb3\xd7\x81\xb6~Bo\xceA\x90\xa8@\xa5j\x8aB0h\xd7\xfc\xa2\x8d\rt\x04\xb9\x98*q\xa4\xe8,b\x15Y\xba]\xb6\x8bX\xb9\xd0E\xa8\xd5a\xdbk~p\x8f;\xd7\xd1\xcd\xeb\xb3\xfd\xc6d\x9a\xddz\x80;\xe8\\\x0b\xb1\xb3xe\x87\xf6m\xffND\xd8\xa0z\xa2\x7f}\x81\x8e\xe9\x89\xacR\x8eB%\x9eY\x8c@\xb3\xd3j\x8c\x8f\xe8\x9b\xdd\xa6\xde\xe8\xa2\xac\x89\xe8m#s\xec\xa7\xf9\xc4\xb05\xefb\xc5<\x8dJG\x90\'\xaf\x06F\xd1\xd0\xa4\xc1R\xf0r<\xe2\x1d\x98\xc6\xe5\xce\xcbr\xc4y<\x04\xeae\xeeV\x89\xb6ES\xb1\xf4G=\x89\xf3\xd0\xdb\x06\xd8Y\x88\x9b(\xd1B\xffL\x8c\x19\xea?1B\xb68N\xd5\xc3\xd4\xafU6\xc6\x05\xc9\r\xe4\xde4\xbah8\xd8\xa4E\x0c\x16\xdf\xb7,\xd0\xd4\x94\'e>m(\xb0\x8a\x95\xe2\x8e\x1d\xa8\x15l:\x94}\x02\xd3\xf4\x9euIb8\x93\xea\x99Y\x18\xbe\x98U\xe9NX}\xb1\xca5(`\xa2dK\\\xeb\xeb\xe2^g}\xa5`\x1a\xc3.\xb4\xa0ZH\xfe\xe28\x08@\x11\x1f\t\xbe\x83D\xce\x0f\xee\xfd\x15\xe0\x81\x9d\x97\xe2\xd2\t\x18\r\x99\xf2\xbebo\xe6\xa7\xbd\xc5\x1b\x9d,2\x12\x9b\xa3\xae\xbb\xedj\ri\x05\xdcY\xca9w\x95\xc1\xc2\x88\xd4\xbes\x06\xf7{\xe5V\xdb\xf8\xaf\xe1\xb8/\x08\xe4Ya\x08\x14\x9c\xf2\xdc\xaa\x9ap3s\xa1\xa6\x9eD\xb97O\xf6\xd5\x03\xbf\xba%\x0e]\x89\xd6\x89\n\t\xb7\x07`\xa3\x00\xe9\xab\xddo{\xbe^\xf2\x84J|\xa6d\x96\xb7\xf1_\x1c\\4z{\x1b\xb9\x0b\x18\xed\xfb\x04\xcc\xd55m\xcf/\\]\xac\xcd\xac\x9ea \xc9\x1e\xab<\xd4X\xe5 L\xf6\x1dY.&\xc3\x1cA\xb4\xe1\x9a\x81\x92@P\x17\xdby\xef\xe9\xf8\'\xf0]\x8e\xae\xf1\xc9\xcc&i\x07\x0cU&ca]\xf7q\x12\xf7\x86\xb5\xc3iiwO\xeb44\xd5\xbcT\x1a\xb3\xe7@g\x92w>\\R\xcf\xfd\xeb*3\xbe\x8cc\xd7\x15?\xfa\xe9/\xde\x83\xe6\x87\xfa\xd6\xa4?\x9ey\xfb_\x85M\x87\xe7\xaa\xada\xcb\xeb-"\x92bJ\'\x10Hc\xd4X^l\xc1\xc2\xc2\xea\xbe\x11\x9c\xa1T\xe9\xa7L\\*6J!\xab\x1b\xc6\x06<\xc6\x03,\x85\x1dk\x1f\xeb\xc8\xf6*Q6\x05\xa1\xfa\xa1t(\xf9"Q\xe1"\xa3\xef\xc5\xc2\xd8\x0c\xb8\xca\xd7$5\x06\xe9\x168\x89\xba\xdb\x13t\x1b\xf4\xc9\xfa\xd2\x9d*y3+\xc6\xb4\x16\xf1\x8f\x12\xac\x84\xd4\xeb\xea\x9fu\xc9\xb5\xf4D\xcd\xf7)\'\xcel\xban\'\x18\xd0\xc7`\x02\xed\xf8\xbf\x86\xb1\xe1\xd1\xe1\x17\x80\x96\xf3\x9f\xdd+l\xcdT\x84\xb8\xd4\xc4)c\xbb\x84\x1e\xf8~\x05\xe9\xc8\x0c\xfa\xbb\xd0IF\xa6\xffI\xa6Z\x86\x1d\x9b\x9f\x88\x14\xc8\xd46h&\x83\x98\xc1\xfc\x13\xb2{\x08\xc3\xb1\x86\xf8kv\xd3\xf65K\x1co!\xea\xf5\x99:\xe7\x17\xc5\xfa\xe1\x9be\xc0\x9e\xca#L\x00\x1a\xddO!\x0fc\x1ds8a\xab\xb3\xc2?\xba\x81a\xa7*Y\xc8T\xe5@\xc8\x05\xa7\xec\x17WN\xf6\xb0\xc5I"\x01=\x0f\xaa\xa4\xdc:\xe0\\d\x98\xe8\x11$\xfa\xb5\xdaNP\x83\xfc\xee\xa3\xd08\xaf\x93-\x94\x9e\x0el\xab\xc2\rh\xc7O\xe9\x82\x9a\xb2\xc6\xe7I<j\xa7j\x8d\xee\x9ck\x06\x01\x9e\xe4\x81\x8e)\xdb\xe6\xb0\x1fT\x87\x8a&\x8b\xf1\x0e\xea\xf0\x8b\xcb\xee\xb0\x0bg\x93Sbu\xdbH\xe3\x81\x1b\xd0V\x90\x13\xe9\x1d\t\x07\x80\xe8\xd5\x94s]v]\xa8\x02_\xf8h\xf2*\xfb\xd0U^\x04\xdfZ\x97v\xe1\x84\xb1\xa0\xbd,d\xe5d\xe2C\x04\xac\xe2\x1d\x06m\t\xb4\'\x9c\xcba5\xffW\x898\x9c\xb8\xb9l\xe3#O\x17j\n\xdf\x9a\xe2z`X\x1d\x05\xaa\x7f\xdf\xfaO\xe5P;+\xdc\xf0\xee\xe8L\x81\x07\xad]\x1b\x06\xdf2\x8bn\xa4\x9coV\xd3y~\x05b\x82\x8az:\xe9\x9dwx\x11[\tE\xd7\x1c@\xdfF\xea\xd3\xb3\xbd\xc1\xf7<\xbcbmG\xf4O0\xea\x1c@\x02] \xc4\xadL=\xb0\xf9R-\xba\x93\x00\td\x06}\xcc@!<\xe3k\x8e\xda\x81``\xb4\xc7NR\x1e\x82\xf7\xe8\xd8\x84B\xfbf\xbe.\xe7\xa7\x95\x86i\x83\x04^\x9a!Z\x8e\xc9P\x02>\x8b\xf2\x0f\xe6j(\xb6\xbe)\'\xd5\x12\r\x8b\xfcp\xdb;\x07\xbbs>\xa9\xfb\x17\xd9\x9a\x99@\x99j\xa2\x04?>\xe7a\x0c\xb4\x8e\x1d\\\xa9\xcc\xf6\xb2\x94\xa2\xaf\x93 U\xbe\xb5[\x9e\xc9\xff\xc6\xbf\xec*\x84\x11n\xc3\xcd\xf3\xb6\x8b\xc8q\x17\x03\xa1\xa1\x8cL\xc1L\x8d\xa8~7m\xeb\t\xb0#\x0e\xcff5x_\xc2\x16\xe3\xab2UFq\x02\xb9\xb20P<lM~\x99,H\x1c\xea%\x9aG\x9c\x1e\x02\x9abf\xbd\xd5z?\xe3\n\xfep([\xb9\x8c\xd5\xc1V\xf8\xa7\xa3wE\xa1L3\t\xab\x82\x93\r\xa2\xf8\xd4\xf9x\xdb\xb1-\x8f\x8b\xf6\xcf\xe4\xe1TJ-\x90_\xa2\xf6\x88\xb7c\xf9VP\xf7C\xba\x1fdJw\xaa\x92\x90\xaeh\xc6t\xcc\\I\xe2\x8f\xa1\xe99\x86\x91\xb1\xf6\xb3n+I\x1f\x1c>`\xe3\xe5\xe36\x81kY\xf4\xd85Q\r\xfc5|c\xb6q\xf1E\xf2}\x0e9\x8aO\x86\xecH\x95\xf2\x13\xd7\x99\xbe1\xba\xf0\xe7\x82\x04\xc8\x03\xa3Ha\xea];Q\x03\x01#\xaay%\xd0\x8c\x98^\x0b\xf87\x84\x19\xe5w\xa0\xe5\xaa\x9c\x02\xe9\x08\x95\xdd\xf6\xbe\xe0\x0cWB$HO\x1e\xc3#\xe6.$$\x96\xfc\xd7\x01sS\xf2\x87\x143uL\x13$\x97\xfb\x18d\x9c\xc41\xb9\xa1\x8bVO\x14\xfd\xa0\xed\xca\xb2G\xc3\xbd\xc1\xcc\xe7\xb0E\xc9Bp\x00\xc5\xb2\xe9\xcf\nU\x84)\x03\xef~\x14\xed8\xfe\xd4\x05\x00h\xf2\xefQu(\xbd\xd5\xb6E\xd3X\x97\\\xb1\x13m\xa9\xd9\xb9\x8aDMN\x1a*\xabQ\xec&\xbc\x9b\xf3\'Q\xb5\xc2\x88SbfW\x08\x9d8:!>\x11{\xa1:?\xc3bO\xd3\xbb\x12\xc8\xf9o\xdbl\x1fK\xadk\x0bd\x9bE\xf9\x11\xa1-\xd0\xe5\xa2\x81\n\xcc\xc1u\x1c\xec\x8e\x1b69\x0e\x92\xbd\x8bt\xda\x0c\xc5\xf6\xe6x\xee\x1c\nf@\xd7\r\xb4\xc7\xad\xd4\x1a\xd5\x9f\xb3\x95\x8e\xe2\t\xc3\x1b\x8c\xc9\\\xe5#\x02\xcfJ\xc4\xfd\xe5\xb5\x85IX\x9e\x03\xf5Z\tHDMv)\x9b%H\x03)\xa2\xed\x8e\xb2\x9f;\xff\xbc)\xa1{\x17\xd0\x18{\xe4\xa73Y\tb\x0c\xb5\xd9\xb4\xe6\xdc/\x9f1\xbd\xec\x81\x92]\xb3,\xc0\xe8\tT\xa7\xfc\xf1\xbd\n\xba\x88%;\x1d\xe3\x85\xee\xa7\xe6\x8c\x04b\xa2\x85\xd3 v\xf0\xb9\xdc\x02\xef7\x1da?\xc69\x91\xe5\x13\x83\x12\xacH`W\'\x1a\x90}\xc5\x89\x1b\xb6\x87\x19V0\x96\xf9Wp\x00.\xc6\xa4\xd0\x111 e\x0f\x1cW\x95\xa8\xa6\xea(!\x01\xabR\x03\xe0\'|\x89<mT\xf3\xdd\x97\xb0\x89w\xe6T\xe1#h]\xc7\xef\x8a\x82\x9b4\xc3\xe8\x82s\x88I\xfa\x93\xb5\xe0\xa5Veom\xceS\xa7\xd3i\xc0\xfd\x89Z\xaa\xc5\x00\x98\x90=\x122\xb4C?\xee\xd7\x16\'\xf4ai&\xff\xe5\x1a#&\xf2\xff\xa1\xc6\x0b\x01E^.\xfc~\xff\x8bf\x9e~\xc1\xad\x9a\xcc\xe2\xe5\x01x\xaby\xe3?\x92p\xb5\xd8c\xf3b\xe7\xc0\x11z\x11L;\n\x8b\xa2\xdfwD\x1aZ\x1dsr*\xdd\xcf\x85J\xe1/\xbd)5*\x8e\x84j\x849\xfe\xfa,\xa6\x1e\xde\x02\xf0!\x960@d\xea\xab1\x12b\x95\xf1\xe2\x0f\x17\xe2\xc0\xb6\xb7\xbe\x12\x88{Pylx+\xb9\xa0d\xdeD\x81\xc0\x18\x80h\x8a\xe9\xc9!\xc9E+N\xc1\x9c\xf5\xec \x82\xe0\x90\x96\n\xfd@FezT\xcb\x1eB\x06$\xe5\xfeb[\x96:\x088xC\xef\xb9\x0f&\xfb/\xcb\x13\xb3\x06\xd8k\x94\xbc\xd1\x8bT\xcb\xc1\x02\x9d\xb3|\xfc\x0b\xa8-e\x8b\xdb\xa6b\x10\xb2\xe1\xd5-\x10\xca%n\x87\x1a\x10\xf5\xe5J9!\x04\x97\xbb\x14BJs\xd3\x9d\x94\r\x85\x90e,u\xe3V:\xd6\xb1\xaf\xe5\xd5a\xb4\x97\x81\xf0U\xbf\xd1^~\xf0\x1ak\xd5B\x0c\xee\xac\x7f\x88\x0bC\x0bF\xc8\xa4F\xcb]9\xee\x96\xf0\x83^`\xbd\t\xd2c\x83\xd1_\xb6\xbb\rG8\xd5\x1ej0\xb0\x17\xe9@\xb8l)\xdc\x0f\xb8\xc8\xb6\x1c\xa1;\xb73\xaf!\x95p\xdc\xe2\x02\x90@DrF2\xec8\xbbk\xf5\xb9\xddG\xc4\x0e\xf5\xfd\x1e}\xea\xfc\xe9\xd3k0\x8a\xdc\xb0\x8e\xd7AX\xf3\xaeg:\xef\xad\x1b\xad\xe9M8@^\x85\x83a*T\x1d\xceq\xa6\xe9\xa1\xdf\x1a\xeb\x9a\xe4\x15n\x0b\xd0\xd4\xd3\xa9J\xf7\xfd\x0c\x11+9wZ\nZ\xab9\xaa\xf3\x14\xcf\xc2}\xc3\xe1\xfeM}nZ<\x86\xdc\xc7b\xb8.\x91\x91\xe3\xee\xbd\x18\xab\x94\x16q\x88v_X\x87-\x1bf\xb7\xae_\xcb\xef\x85;=\x12\xb1=J\xadl%\x0b\xe5\xf8\x1a3\xdeS\x9d\xca^\x16+\xce:|87J\xe74\xa6\xe2\x9aF\xa7\x80\x85\xe6\xf1\xd3D\n\x8f\xdb\x1d$\x1d\xf6\xe6\xf4n\xfb\xaf\xcd\x90\xfbpJ)\xf8]O\xc9\x13)\x88I\x81m|%\x80[09-\xe3\x1e\xc1j\x10;\xf3\xe7\xf3=\xac-\xc2v\x8d\x05Ht_\xb9\x7f1\x03\xed\x81\xe4\x80g\xe0\xf0Rn\x96Y\x02\xccK\xb3\xea\x99\x90\xbcS\xe7\x7f_Qz\x8e\x07\xc1\x80l\xdb\xec\x13\xd0\xcau\xb1~\xe2\x87\xff\xcbIW:\xdc^`\x0c\x12p\xf2\x018\x8a\x05\x99\x914N\x18~v\x12\xa2\xe0\x19\xdfjV\x02\x10\x88"\x8d\'\x8b\xb4\xbb\xd1\x05\xf9\x1d\xea3So\xb2\x14i\xf3S\xab\x08\x8a\xcc\xfb\xda\xf5\xe8^G\xf71\xea\xf8a\x17X\xfb\xdd\x06bi\x10K\xb4(\xe1\x8e\xcc \xe9f\x86CQ\x9e*\xf0\xedG+_q%<\xefdD\xa9\xc2hk\x06\xa77\xe1\xb4\x00\\\x85X(6\xf0\xf4\xcaz\x037@\xf1\xcaT=\xf2h<\x07\x14\x066d\xcekwO\xb4x\'b<*c\xb6M!=Rsh\xb0&MN\x0c6\xce\xd7\x88\xbe$s\x0b\x86$\x96`>\'\x92\x9a\x1b\x02\xc9\xc4m\xe5E!x34[\xec\xdb\xd7\xd2\xc9\xc1un\xbf\xebx,\xaf)\x03-\xc4\x9d\xe64\x031=89\x18\xb7\xde\xf0\x05\x98\xde\xb5\xa9E\x81\xa8\xee\x93\xca\x8bq{#L.\xbd\xcce\xa6\xc7Z}\xeb=\xb8\x1cj$\x10>\x7fp8\x86\xc0\xea\x8e\x9be\x0c4\xf5d\x05x\x9dol\x18ZW%\x07\x83\xf9\x06p\x17\xdf\x1b3\x8a\x14\x8d\xd6\ru:T8\xfaCw@\xaeGvH(\xcc\xd0%\xb6\xa8\x90=\x97\xac\xacKP\xcf\xd9\x03\xaf8\x0c\x92*W\xe9j\xbb\x03\xd1|\xf36vJ;\xb4\xb6\xaf\xb0\xb2\xe2W<\xa7\x86\x04\xfd\xf5)\xad!\xb8\xdf\xf8O\x0f|\x13j\xdc\x08N<Oo\x8e::\x9b\x9e\x8c\xa4\x11\xa6\x0fP\x85\xab.5\xad\xf3v\xe3\xe9\x19\x03\xb5\xc7\x124~\xa5+\xf0\xca\xd1"\xfa\xe3\x11\x1a\x14\x049\xd6\xa3\x95\xe6\xa0\x97\xf3 T\'\x9d\xe9\xf5\xa4\x93\xb5?c\x96\x90\xc0|E\xaa\xc2\xcaQKiJQ\x05\x02\xaf\x06\xb0\xb0\x03\x0bEW\x99\xc8\xe3\xf7\x82I\xacu\n~U\xbeS<\xf3/i@\xbf\xea\xdd=\xe4\x8b%\x99\x8c\n\xf3e\xb0\x0f\xe6\xd9\x9e\xce\xcbY\x982\x08\x7f\xa3\xfb\xe0\xe6\x96\x0f\xd0U \xce\xb8\x8a\xb2\xbf\xb5\xef/z\xd4\xb08N"\xe0W\x18\xde\x12\xe1g\xd4Y\x08~\xaf5RP\x8b\xces\x14\x8e\xe5U\xcb\x1a\x8c\x9a\xac\x8awx\x9fx\xa7,{\x01\x93e\x1e\xcb*\x08\x0c\xa8\xce\x92\xbc\xe75\x13\x83q\xeaG\xbd )\x90\xb0%\xd5\xa1\xdf\x80\xa3\xe5\xdf&4\x1f3\xdc\x0c\xf6l\x8a\xab\xda11\x82\x90\xfch\xda\x92]4\xf9h\xdc\x0e)\xe9zX\xe6P\x05Drn\xcf\'o$N-\xc8\x803\xe4\xb7\x9c5\x0f\xe6\xb2z\x11b\xadHLb#\x13<3\xf4\x0c\xc8H\xe5\x896\x1a\xfb|\x17\xc1\xe1\xa2\xc1\xa9\xa7p\x12R&{\xc5\xc5\x85(\x9a=\x16\xe2(\xc1\x9e\xb3\x17\xe5cw\x17\x17uY\xf1\'\xde\xee\x8e\r\xda\xc4\x19\xf3\xe7\xa7\x08U\xcc\xb0\xda_\xaeI\x9aV\xa0\x08\x80\xc0\x16N\x9e\x1c\xc5\x1b\xce(\xc8@3\x10\xb0#\xf1\xebd01\x0c\xdd\x12\x95\x8c\xc1\xdb#)UI.\x1chR\xc0p\xa8\x13\xf4zZ\xd5\x87\xb7\'\xfc\xec\x7f\xc0VE\x13\x95T\x8b\x1d\x08\x87P3\x17\xe7\xd3\x1a\xcdb\xc2\\\xd2\xfbB\x15\xc3\xfa\x01{-\xbbv\x9e \xa4\x17up\xcc\xd7\xa4\n~(\xfe\xc4\xc3\x9c\xfe\xa6\x0bF\xce\xd6?\x1f\x83\x99\xc2\xe6\xefM\xe8\xd5\xed\xebU\xc9\x0f\xd9I.\xde\xf1)\x18"Z)\x18\xd4d\xb3!\xda1\xb3\x15\xe2\xbceG4+\xc8\x16c\xa8i&@\x99\x01\xbb\x07F\x83\xa3f\xb9PE\tc\xcd\xea\x97y7((w]\x1fap\x8dP!p$\xbe\xcc\x0e\x8aPVsbp#\xf7\xf7G\x01\x00\\\x01(\xe0\xa4h\xff:\xf3kJ\xa1\x0b)\xfa\xfc\xc1\xe5\xd1\xf5\x8cS\x84\xd1`\x9ei\x7f\x8a:\xcd\xba\xbbK6 $I!\xf1\xd9\x0b\x9a\xec\xb3?\xa6\x18\xe7\xa7\x86\x04\xfc\x87\xfc\xde\xed\x04\x8d\xe7\\\xae\x12`w\x94\xb7XA\xbf\xfanj\xb8W\xdb\x1d\x08K\x13\xcd\x871\xd8\xa3`\x18\xdd\x88\xaez\xdd6\xdd\xc2I_\xa3\x8e\x98 \xfd\x9fV\xa8M\n_\xe3\x0b\xaa\x0b\xdf\x04\xb9w\x1c\xe1\xd0\xaeX0\xab\x01NX\xbe\x15\xf4.I\xc6^\xbcy\r\x10"\xb6q\xad\xe4\x84m\xde\xb3D42r\xf2\xd4\xc6\x01\xb0\xda\xdc\x93\xa0\xfb+\xc4\xfb\x9b\xbbfr\xc5\xfd\x0b\x03#\xf1i\x9d\xb2\xd3\xe4o\xa5\xd0\x08(\xbc\xf5\x91\xf48\x1f\x05\x00j\x9e\xf7s\x0e\x05VMUpL\xc2H\x12c\xef\x00\xe7]\xbdJU\xf8\x86\xbf:\x81\xa9\xcc\x0c\x94\x0b[\xd27\xab\xf1Z=\x05\x98\xc8 \xc0E\n~\xd4(D\xe5\x93\x94\x04\xcfq\xec\x0c\x93\x11\xf5\xf6\xe2#\xc5\xe0\xabb\xb9\xd8\x18qT\x1bL\xc6\x9c\x87\x01\xff\xc6~m\xad\xe5g&\xcc\xb6J\x13\x9e\xa7\xaa\xde3\xfe\x9e\xa6\x89\xb2\xa4,\xb5V\xd7\x96\x1dW\xec\xb7\xcf\xb1\xb9s\x1c\xc5\xed\xae&9A\x0eVu\n7\xf2c\x99\xd3wDH\xa72Q\x14MK\xe5\xd7@\x01\x89@+\xdd\xc2r \xa4g\x0et\xe7v\x93\xf9O|g\xd3\xad\x8a\x9bc\xedv\x98\x14\xe6\xb7$o:ds\xe5\xccy)\x96`+\xbe\xa0\xf0\xa2\xc6\xfc\xa7\xceei\\\xff\x92\xb8\x8a\x1f(\xad\x92\'1Y\xc3k\x14`\xc9wqt\x03M/\xe1\xb5/\x97\xdb\xb2\n\x80\xec\x06;s\xe5\xac>\x99vlc\xfb\xf9\xe2C\xdcvu\xd0.}\x03\x8b\xfa\xf0,!5\x83\xdfe\xeb/\xc9,R\xbaW\xcd%\x11\xd4\x1a\x8b\xfe\xaek\x05>\x97lp\xfe\x193\xdd?U\xd1\x18|X_i\xdc\xc0\xbb\'\xed\x06\xd5\xca,\xf0h\xfc\xc7\x06\xc0\x95F4\xac\x8c\xec\x90E\x17\x17\xf7o\xca}\xecp\xce\xe3\xc3\xc7{W\x15P,\xcb \xd7\x97\xfe};\xc5\xf6\xbe\xe6MB\xf3\xe6FrI0FAZ\xc9\x120\xdfnp\x94\xd0\xc6;[\x91\x9b=r\xb0\x94\xbaM\x1b\x7f\x14*\xc7v\xcdlI\x9e\xac\x9c\x11H\xa9\x17\xdd\xc9qr\xf4\xf6H$9\x91\x02\xf6n\x82\xa9\xa1\x01\xa68\xc9%SBY\xd9\xfb-=\xfdp\x86\xa3\x98KR \xd6DE\xa7*\xfc\xa8@.\x88X\xbb\x99\x0e\xb9\x12\xa7\xd2I\xc8\x93\x91-\xee\xd1\xec\xae\xce\x03\xf1\x9aoF\xef\xce\x8e\x08\x16%\xa3\xcdhi\xbb\x91\xba\xb37r\xfam\x85\x1c\x80\x04\x80\x8eO? \x03\xa0u\xfd\xb7\x8a\xc2\xca\xb7\x92\x9f`\xe0\xde\xb1\x0b,\xd8k\x8d\xc0\x14\xe7\xd0\x83Q\xd9\xaad\xe9,2B\xbc\r\xcacCpO\x8c\xcc,u\x13\xc6\x02\x99\xf2\xe6f\x17\xfb\xb1R\xcef3\x01E_`\x98"!\x0b\x93\r\xe0\xd2\x89\xa5\x19.\xb8\xcex\x85j\x03C\xa4mQhs\xdb\r\xde?\x8a\xf6\\\xb2 ,n+\x04\xe0\xdc\xea\x8a%\x8dzL{\xc3s\xb4\x0c\xfd\x8aD\xcf\xd9E`^\x91\x143\xa0:\xd2\x03\xa1\xd79\x08\xde\x02\xd2\x8dd\xad\x9c\xec\x1a8\xb9\xf0c\xe3p\xd5\x1d\x03\x16\xc2j\x0bO\xe7\xbd\xf80d\xe7\x9cbM\x15\x98\x0c\xf9\xb9\x02F\x96Sv\xb5\x06\xa5Y\xbfZ,*^C\xecD\xb80\x1e\x18\xe5|\xab$\xaam\xe7~\x01\xb7\xc7\xe8J\x98u[@\xaf4-\xeeO#\xc7\xaa\xda %d\xec\xb8\x1ahe\xff\xb4%\x81P\xe8\xc5\x06\xb6\xef?\x1d{\xb0\x81]\xfa\xbdc\xc2pS\xdf\x88ca}\xe0\x1b`\x16"\xa0+x\xfd\xd5\ng\xc1K\xb2b\xe9~\x87rec+\xfc\xb8v\x14\t\x13\'O\xeb\xed,\x85\x7f\x15\xee5\x9a\xacZ\xad\xe1\r\x8d\x02\xab\xe033\xd7::@`\x94\xc6:/d6\r\x16\x1f,\xcf\xc3\x8cX\x1d\x1b\xca\xe2\xa8\xb9\x0b&\x90\xf3P\x8b\xdf\x9e\x8b)\x1bG&/\xeeJ\xfe\xed\x8b*P/S\xb7\xd1\xe1\x19\xbc{\xcbv\x03\xae\xad\xe3|\xda\xa2\x97\xd0\x11\xb4&v\xe8\xcb\xc0\xf1\x18\xc6\xc9\xf9H\x82~F@\xbcH\xdd\xe6\xe3\x0e\xcb\xd8\x82\x070\xd3\x8f\xf3\x0e\x9ag\xd5\xbc\x87\xa7\xcb\x9f65\x9am\xeeI>9}p\xff4\xd1d\n\xe0\xe9K\x9a\xadc\xf12\xf0\xa1\xad\xf0\xc5\xf9\x83\xdf\x81\xa4w\xf7\xd1\x03\xa7\xa69\xabySW\xe4B\x04\x90 \xbd\xed>2\xfa\xc5\xbe\xc4\xaabZ\\\xaf\x7f\x91\xf8\x89\x07\x9bp\x15O\x90\xbe\xf3U\xf6\x88`\x9d\xc3\xd2\x1d3\xee\xbcT\xc8\xc1?\x07\x0f\xf5`\xc2\xd4\x81\xff\x15\xee\x11u\x8c\x0e :\xa6\xa7\x9dm\xb9\xb2\xc6}JyP\r\xaa4\x1cl\xad\xc5\x9e\x8d^\x93\xea\xe8\x9b+2\x85U\xbau)\x90S\xf0\xc4F\x0cK\xfe\xca\xc64\x91\x02\\\x84`!\x12\xc1\x17\x02\xe8\x9d\x8c\x9f\x90\\\xa4\x8d\x9b0\x0cq\x19\xfe\xf0\x81\xa8V\xb9J\xef>\xfd>\xa5\x92H\xf3\xd82\xdae&\x9di\xba\x1a\xeb\xe3\xf9\x8a5\x7f=\xf1\x8aS[\xc9\x91~D\x07?\xf7\x1a\x0b\xe7\x8b9\x14Sm\xed\x8c\xae\xde\xc7\xc97O\x88e2\x17\x95.c\x03BEt\x171\x15\x80+4\xf9no\x17g\xcd$1\xe9\xecl\xaf\x8dM\xd6\x9d\x08dU\xb2\'4\x14;{\x8bK\x8ao\x03\xaa\x95\x7f\xea\x9a\xe9\xf7}\x13\x14\xa9a\x13\t\xf1Y\x84\x1a\xd5r\xae\xf0i\xba\x03\xe4\xbe\xcf\xf2\xa5W\x10\x8bR?|(\xa5\x1c\x1d\xde+^%\x81\xf2\x93\xd7\xaa\x1et\xb99E\x7f\xb9\x98lo\xfb\xa2VEW\xf2\x8b\xa5x\xe0\xb7Lw\xed\x1aT\r\xaaF\xf9\x8b\xffU\x8a\x1f\xcd\xd9\x89\xb7k\\#L\x15}S\xfa\xbd\xa9#\x7fo\x12d\xfb\x1c\x85\xe0\xbb\xd3\xcc\x12\x11\xda\xf2\xda\xbfD=km\x1eY\xdeE\xc3\xfd\xa2\x1fF\x00}a,\x91\x00VH\xccx\xac\xacY\xee\xb0\xf8\xcc\xc6\xa7&4\xf6\xad9\x15v?\xa0\x7f^s\x82"\xe5\x88E!2\x18\xb1fA\x04$uH\t\xcdv\xa0\xd7}\xf6\xbc\xd3X%\x9b\xbd\xa6\x90\xce\xbb\xd0\xc9\xee\x87\x8f\t\t bN\x03NOCt\r\xdf\xdd:\xd9\xba\xfc\xe9\xb9K=\xe5\xa3\x93\xe1j\xf7\x95\x93\x88\xbe|B/\n\xab\x021,/\x15\xceY\x8e\x12J`\xd0\x90b\x18\x12\x01\x13i\xb5O\xc3\xe5\xb8\x9f0\xfaDpM\xcc\xa4=]\x97\x84\x0ch\x7f;\x08\xd3\x8a\x84\xdaJ\x12#2\xc4#mh\xa0Y\x94% \xa65\xe9q\xf0\xfd^\x85\xf0\xe4{%\x88X\xfeL\x18\x1c\\\x05\x1e\x98\xa1\x8a\x8b\xa7`\x05\xa2\x0f\xd1\xff\x17\xa2\xd1BU\x86\xab\xc4\xbf\xc8\xd5_\nh*\x1f\x9cro|\xfc\x89\xe5\x04a\xa8\xe9\\\xda\x1d|\xfc\x823C2\x19\xfd\x89\x1d\xf21\xd0f\xd8\x90\xa2\x08\x13\xa7rk\xa2\x97)s\x84g\xe57\x1eRU\xe6\xf8\xb4\x92HU\t-\xd2~c\xc8\xaeU\x8c\xccx\xd4\xe7\x8b\x8fqa\x0f\xbd\xc5\xce\xb6S\x1a\xe8\xf8;n\xfe]\x0bM~\x10<\xe4-\x087\xc7~)\xde\xbc\xd7k\xde\xf5Iy\xbf\x88\xbf+`\x11\xb0\xed\xda;K5E\x92\xa2cq\x0f\x87\xa4\xac\x9f\xfaJ\xebCQ\xd1\xe97\xfe]\rF\xb9\\\x10\xda%o\xd1\x8b\x82\xcb#\x17\x89\x8d\xa2jj\x8aO,C~\x03]\xfd\xa7\xdc\xb0v\x10\xc8\x9c\xcb\x9c\x9f&\xe0\x18v\xb9T\n0\xc2\x14Cq\xdb\x0e\x17\xf8\tQ\xf7\xab\xbaE\xf1\xf8\x9d\xe3UMm\xed\xef\xd3\xf0D\\\x07n\xdf\xcc3\x08\x1d\xdbv\xbf\xdb\x16\xb02\xd0\xad\x0cE\xb7\xee\x08\xce\xf2|\x89\xe2;\x8f\x80\xac\x02\x07\xee\xf6K|L\xef\xda\xd8\x1f\n\xc1\x0c})\x14q\x8f\xca\xa4\xb7\xcc\xc2\xcd\x9e9\x85H\x8e\xe07\x1a\xa6\xf2"\t?\x0e\xadt\x1a\xaab\xf4\x18\x0e\'\xd2\x1az\xce\xa0-~>\xa5\xdd\xf1\xaa\xc6-\xbd\x1a^\xa7\x0f\xa0 \xf0\x1a&_\x7f\xe1\xa4O7\xbe%dSrV\x99HI\xb8\xfb\x04\x89\xcb\xe9\xc2(\x01M\x93\xbf3\x1b\xb6\x8a\xb04+|\x9bn\xb1\xff\x80\xfcAa\xa4E@\xc82\xea O-\xd0P\x91\x1fV\xa3\x9d\x87\xd6b\xcbV\xbc\xa8\xfb\xdf\x05\xb91\xbd\xab\xa0XV\x08\x8b\xe0\xff\xc3\xe1X\xf0\x10F\x85t\xd4g\xf8{\xf8\xeb\xb6\xd31h\x92\xfa~\xae\xaf\xf6\xf1\xdb\x18\xe9E\x80Il\xd8\x82-\xcc\x91\xc4/{\x12s\xb8\xde 3>u\x9c@Z<\xec\xe8\x07\x9b<2\xce\xc8i(Wt[}\xec\xddqN\xed%J\x93\xe1.J\xd1\x00\xf1\x8d\x12`\x87\xb6\xbc\x0e\x08\x9bT\xc8\xc0f)Q\x90\x86>$\x10e\t\x01PL\xd5G<\xd3\xc8FX\xbf\xdfd\x02\xe9\x9a~\xd09\x0e0\xf1G\x04\xd2e\xff\x89\\\xe52\xdd?U\x05TP\xd0\xc9\xf4u\xcd_\xe4\xda\x06N\xdf~\x9b\xd8_[\xc0/z\xd5\xec\x88\xeao\x01Y4\xbdL\x1c(\xbdZ2fI3\x10\x1a!_\x0f\x08\x82\xfb\x81\x83d\xd1\t\x87\x07\xd6\xecS\x1a\x1cb\xfa\x89k0-\xc4\x91\x8dr\x10\xd7X\xefu\xbf\x1b\xd4R\x97\xb5\xca\x98\x165\xe8\x96 J(\x97||\rwZ\xf9\xdb\xb8:g}\xd6R\x01_\x90\x1f\xad \xba3sQJ\x1d\xb9\x1b\x12\xa6\xe81\xb3F\x90K`\xaa\xe9\xb3\xa4\xc1\x85\x9dsIP\xa2\xd1R\xf6b\x03\x95\xff\x07\x1eJu\xdc\xca\xb6T\xe80\xf1J\x06s\xcfQ{=\xaf\xdb\x0cx\x8e\xa3-:\x06\xdc\xdc)\x93j\xe9\x86G\xe4\x06\xd2\xb2\xae{2\x98v\xf9]\xe5\xaf\x10\x16\x14\n\x17J\x85]\xf5\xac\n\xdcM\xa2\xb9\x15;HIf?"\xd9\xf5\x97\t\xe8\xe1\x92\x16]\xfc\xd6\x1c|\\\x92w\x8c\xfeSh\xcf\x0b\n\x80\xc6?.,\xae\x12=rs"Me\x06\xb1M\xb4?\xac\xed\xd4U\xf2\x89T\x01\xa6\n\x8dD\x9a\x0c\x0bx\xa7\x01\x180\x08\xe9L\xbd\xcd>\xdc\xe2\xa5N\xd8\xcc(o\x9b\xc9N\x07~\xdc\xf8=\xb8fI0EQ\x0b+\xd2rS\x8c\x7f\xc7\xf1-A%}6\xd1\x86N\xd8\x9e\r\x18\xd3K\x19\x91\x93C\x06E\xdc\x9a\n\xaa.\xda\xcf\x13g\xd0o\x7f\xfe\xddC\x92T\xaay="\xec\xd5\xa8\x12\x130\x84\xd0\x98zgy\xec\xa7\xf6\xd76yv\xd1\x05_\r\x95\x16\xcbD\x12\xaf\xe0\xa3w\x06\x01\x03\xa8\xad\x84\xf2i\xc6\x033ba*#\xa5\x89\xdez*\x16\xb0\xa2\xce\xd4\x83\xcf\xef\xd5~\x13\xa1\xd6"fR\xc8\xbb\xd6?g\x1an!\\w\xaa\xaa\xcb\x8c]B5\xe5\xc0+\xd6_\x85=p\x90\xcf\xde\x92\xa9\xce>H\xec\xc8{\xf7\x19\xe8\xd8\xf2\x8b\x1e\x9e\x8d\xda1u\xfc\xb3;V\xe8\xe0\xfc\xb0\x86Sy\'^T\r~,^\xe1\xfd%\x06\xb4\xe0\xef\x98\xb3\xc6\x8a\x11&,&\xa2\xa9\xbfd\xb6\x97\x8b0`\'\xef\x80\x99\x94\xf2\x18P\xb4_\xe2m\x16xo{\xe5\x14-Qc:5h\xe68\x08\x99\x85)\xb2?_\xb4\xcd\x1b\xd4s=\xf3\xc2\x95\x08\x02[e\xe1\x19\xd0\xaaF\xfb\xd3r\x96\xe1c\x8c\x00\xdf+3\xc8\xd2\xcd\xff\xda\xdb\xa8\x0b=\xd2\x1b\xa8C\x89\xf4\x94}\x12\xd3\x86\xa8d\x86\xd1\xcak\x8e\xac\xdbY\x04\xef\xa75W\xfe\xa3\xcc\xed\x7f\xefQ\xbe j \xfa\xa6\x9a\xf0\xee\x88\xf1\xa2\xf2P\xf8\xab\xbc\x12\xc0\x8d\x86n~\x8fyz|f\x1c\x98"\xcf\xee\xfb\xc4\xf40L\xc5\xc0\xe4}\x1f\xfcJ+\xbac\x03\x0fr~-KA\xab>\x1e\x80z\x9eE\xab=\x1a\x87\xf6G\xbf\x8c:\x97S\xc5\x81\x1d\x87\xf4\xbb/\x00\xac\xb9C\x88\x14+7z\xa2\x82\x18\xe6\xa8\xa0Hj^f9n\x00q\xc1\x0f\xe0Wh\xd59,\xfeW\xde\x88\xf5\xe5\xbc\x88\xb4<\\\xf0}\xa2\x81%\x0b\xba\n\x00"\xae\xf7\xa1\xc6\x7f\xc9\xeaT\x80\x1a\xb5\x15`\xc5[\xf5\xea\x96\x0e\x12\x0cP\xbfjl\xe4\xc4\xd0\x06I\x11"\xe7\xfe\x18Q\xccovU\xf3\xdfc\xb1\xdf\xec\xdce\xe5\xa4\x94\xa4\xad\xe9\x8a\xaf\x8aH\x93/)\xf4M]*\x0bF\x1a\xf4KUOq(\xcc\xf0\x87\xa8*-\x80\x1b\xf8\x94\x05&l\xa3p\xe7t\x17\'\x9f#\xb4_\x04\xfbB\x9c\xeb\xbcR\x82Y\xca\xcbv\xea\x8fmM\xda\x1a\x13}U]iI\x08\xc6{\xd09K5)\x10\xce\xca\x81.~\xf7\x1ao\xa0\xdc+\xf9}\x9b\xc7bP\'\xae|\xd3N\x86\xd54\xe7\xa7\xe6g\xe5K\xdb\x1d\xcaWoj\x15\xdc\x11\x9b\xe2v\xec\xddqtE\xe7\x85\x0f\xc8\x80\xa3\x98uW(#F\x0b\x07\n\xe4\x9e\xfe\xd5qp\xcd\xc9\x97\x0c\xd8\x8d\xcb:9\x14r\x8a>=\xbe_2\xad\x99\x1bz7\x17\x94\x8a\x8c\xc4\x89z\x88y\x860o\xdb/q0\x87\x04\x9c\x83\xecV,\x0ev>\x11\x9f\xd3l\x1c\x0f\x02yU\xc9\xcb[\xa7Q\xa9lV\xd65=\xda\x9a\xce\xdd<\xfc\'\xa2\xfbw\x0e\x01I\x18\x1b\xc9\x9d\x11\xdf\xdc\xcb+\xddg\x82\xc1/\xf6\xd6\xf7\x8f0\x91!g\x9aR::\x1b\xd1\xdfD\xaeI\\a\x9a\xb1\xb7\x82\x9a3\x95$:\x82\xb0\xbd\xb5,c\x80\xbd+\xeaza\xf5w]\x96\xc9~\x86\xe7\x16\xb8\xd9\xb2F\x1d\x88\xc9=\xb0\x04\x12\xe81\xc7\xad\xc3\x0b\xce\x91\x92\xac\xab\xa4\x1e\x16\x8f1@\xa8;\x8c\xa0\x0bAF\xc9:w\xd6\xc5\xab\xb6\xeb\x1e\xce\xf0\x06\xee\x8by\x98\xc8grf\x06\x10\xa1\xce\x0e\x05\xb9\xb5\x16k\xefb>\n[,\x91\xeb\xdfeJww b\xb0";\xb6\xa8\xab\xd1I\x85\x0ed\xc1n\xac\x85-\xa7E\xe3\x98>K+\x17ul\x9f\xf5\x9ehD\x04<\x16\x8c\xb7-x\xaan\xb6\xb2\xbd\xda\xec\x80\xf4\xb6S\xd5\x1d\xc3\x94\x8d*\xce\\\xf9\'S\xabT\xfc\x8a\xea~\xe5\xfbgO\x85\x15\xd9C\xbd\xe3\x14\xa9CB9\x18\xf2\xeb\x9d\x8c\x8c|&~]\x9d\xd1@\xecl\xc9\xc9\x0e\xf1\x8a\x96Q%\xd3\xb7\x8c\x9d\xbf\x02\xa3^\xe1+V\x06\x9brB_K_\xdd\xc0z\xf4\xbf/\xf5\x05\x06O\xd7};\xa6\x91\xa4\x02s\xf5\x95`\xde\x1f7\xa9\x8e\xbc\xb3\x05\x0c\x80\x1d6\x87u\x82t\x14,\x81)\xbc\xb4\xae2\xaf\x9aD\x1a~\x173\xeaY\x16\x1a\xbc\x8eX\x06\xfa\xa8\xae\xe6|*\x83,>i\xa1T\x1as 8\x1a\xfd\x11w\x10\x0b0\xfb\x88\xec\xf0\xbb\x1d\x97\x95\xff\xa7\xb0=\x05\xad\x98\xa7\xfd\xd3Lc=\x9c\x18\xffeIh\xe4\x04\xaf\rw\x82\tj!VijS\xee\xf5\x08\xce\xf9\xfd\x83;3*GVY\xda\xc0&\xd4\x01\xf6j\xc1\n\'n\xac\x07\xa5\xc7Ew\x84\xbe\xa2\xe12\x8d\xfa\xa3\xde\xf6\x11\xfd82\xae(\xa9>\x1aN\x0b\x80)\xc6\xf3n\xcd\x8f\xc1\xa3Uo]\x81F8\xc8\x96s\xfa\x00\x92\xbel\x8d\x92\xb9Z\xb2\xe3\x02\xa5V\xa6\x9b\xeb\xfe"\xc8;\x904\x8c\xdf\xdaU\xd4\xa3\xb2\x92\xc9\xf9\x9e\xa5gqrX\x14\xfe\x8acg\xf3\xbc%\x04\xcd\xba\xcfB2*\x90\r\x8d\xf9\xa6\x17\x08\x93\x8cg\x1f\xb1hB\x94\xeb\x9f\xf6\xf9\x8b\xa3Ga\xe9\xff\x02\xaa1\x92\xe5\xf2\x8a\xde\xa8>\xfb\x8a\x05Z\x11I\x8b\xfc\xc7e\xee\x90\xed\xdf\xae\xb3Z\xb17\x18\xe6\xbd\x12t\xc8\x82\xb3\x89\xda_K\x98VM_W\xe1\xa9~5\x81q\xe2\xcf\x93RD\x116c\xc2~\xf3\n\xaf\x01!g\xb6\xfe\xe9?q\xc6\xdd\xdd\xa7m\xc8\xb4\xf2(0;\xf4\x19?8\x80S\x13^K\xe4]A\x9e]\xc93|\xd0N\'[\x1e\x9c\x17\x8b$H\x8f\x7f\xa4\xe1\xda[\xa3m\xe2\xa1~\xb64\xb9\x146P_b=Z(\x1d\x85\x0e\x0f\xea\xa3}CsU#\xb4\xf6\xb5\xbd\x0e=\xa3\xc1\xbc\xd3\x8b\x81\xb4\xfe\xbc\xe7\xcaKH\x96\xd0\x15E.Ov\xa0\x8d\xcfC\xf2\xc4Rh\xe6V\x98$H\x82\xc1\x03\x9f\xcc\x7f\x17\xdb\xa1g!\xa8\xd7+\xed\x84\xeb\x04%\xa4Z[\xacg>0\xdc\xa3\x80\xab\xefY*zf\xcbp\xd1\xe0\t(\xbc\x8eKN\x98\x1f\x0b\xb0\xc5\xa3M\xaf\x08\x1aP\nD\xad\xf4\x9c\xa5\xe3\x82:\x0c\xfc\xd59b\x97\xfc\xe8\xbc\xbau\xfa\xf6I1J\x9b\x86+\x03P\xe2p\xb0\xb5\xf9\x87\x0ex\xb0\x1c\xcf\x80N\x8aN\xf1\x02\xe9eq\xaajkR\xc9(\x07M\xab$\xfc\x07\x84{z\x9c\xe4\xa3\x95\x90\x02<?o\xf7\xaba\x80\xa89\xfcu\x99\x8b\x0e\x19d\x01!\x14b\x83tx\xe6_\xf4\xcd\xd3hx\xbb\xf1H\xb3x=\t\x8d\tl>\xa7\x1a\x9d \xa4\x9b\xbf\xb5\x96\xe4\xcd\xff}\xb2\xd1\x13\xbe(6l\xe0M\xae\xd1\xd4\xa6,\x9e\x98\x03\\\xf7R\x1e\xc9\x91~\xc8\xfet\x8e\x9d\xac\xa8k\x1e)\xb9\xad\x82v\x9d\xb7\x06\x1a\x96\x1c\x8ea\xeai\x98\xb5\x83\xa6\xf8"\xc5\x1d\xa7\xc8q\x9d\x90]\xc0u\xd3"\xf3H\x17+\x04\x13\\\x95p\xf8\xa0\xa3V\xd6\xe8"\xe3ov[\xba\xd4\x19\xa2\x0f\xad\xeaL\xba!d\rI\x02\x95Y\x80\x8d<\x03\xf6\xa6\xaax\xd2[;d\x11\xa1\x94\xe6\xb0b\xb1\x160\xa1\x8c\xb9\xc8*\x15\x9d\x16\xa2\x99\x17\xf4\x90\xfc\x7f\xb8\x02b`D\x97L\xd30\xbb \xe8J\xe8\xb3E.w[\xc1+\x05GBn\x92\xee&G\xce\xb2~C\xaa\n\x02\x82\xb33\xe8\xa0\x19\xa5\xbc=jjs\xc6\xcb\xc4C\x80os\x9aY\xc4\xb4{\xad\xe7\xc1%\x0fH\xcfn\x7f9\x9f\xb5\xd2\x0f6\x94\x08\xfc\xb3\xa9R\'\x0c\xb9\xb9\xf2\x0f`0>7&W#{\xd6#\x89\x92\xbfy\xbf\xeeq#-\x90\xdbx\x9c\xe0\x92\r\xfc\xe8\xd3\xe6\xaej\xa6*8IY47<\x1b\xa3\xa7e\x85\xcf\x84z\xb5\x1c:O\x1b\xcf\xbb\x9f\xc0\x1f\xd9\xed\xef\xb8\xc5`y\xf9\x1a*{\xb6\xadI\xa2\x82zIdI\xf2h,\xacz~Q\xb6\xcf\x18F\x1cD\xd7 UB\xf1\xbfi\x80\x9er\xfa\xe7\xfe+\xad"Y\x0e\xe9\x85\xa6\xaa\x1b\x1aB\x1aX\x04a\xb5\xf8\xb7V-W\xaew \x94\xf0y^\xbc\x9ee\x91\x1f\xef\x97?\x11S\xa4Z\xb8sa\xb1\x9b\xb2Ib\x8f\xec\x1c"d\x14\xb0\xfd\xf4w\xf2\xc0\xc0\x83\x03\xed\xe7\x8f\xdb\x06N\x891\x02\xf2!\xf7`\xa2\xbf\xb8_Y\x13\x92E\xe0\x93\x9e\xddN\xf3CB\xfb\xb7D,\\\x83\xc5a\x1c\xaa\xcf\xdd}\xde\x8b\xe5\xc8\xc4\x98\x8f\x9a\x8cZ\x18\x08\x8f.>\xd7@0\x15\xb6D\xa25x\xa2\xe2\xf2\x15\x10\x95M\xa1Y\x0c\xe3\xce\xa14\x02A\x95\xbeY\xc5\xc5\x13\x8f\xf4\xfaX\x86\x0c=\xe3\xba2\xdf\xe0\x88H\x93\xf6^I\xe8\xe0\x8e\n\xc7\xf5\xe3J+3\xfc\xd7\xff\xfe-r\xcf|5\x1eD#\x00L\xdd\xbfrC\xfc\x17y\xd4\x98\xee\xd3U\xae\x01V\xec`\x0b\xcfT:\x00\xe8\xb7#\xed\xaa?\xc6\xb1\r\x92\xaf\xeb\xc7\xdc\xa0\x17\xf7F\xadF\xed\xa4C\xfbm\xdf\xaa\x1f:0\xe7\xa2/\x82\xdb\xb5\xe8\xbb\xd0\x08\xf0i\x99t\rT\xe8\xe4\xb6\xc3U\x90rCFb\xbd\xeb\\\xa2V\xda\x9c\xdd$2\xe2\x86b\xefZ\xc3=*\xcf\xd82\xbb\r]2\xdd~\xbf{wM@B%~\xcf\xe3\x97\xb0\x14A\x90\x8f[M\xf8\xda\xb3\xf3V\\\xec\xd0\x84~\x16\xc5\x06[U\xd0\xeb\x1f\xed/\xd3C\xd3\x8e{\x99\xc5\xcf\xf2\x98\xdf@\xd1\xfc\xca\xee\x9f\x16rd\xacj\x07\xcb\xf6\xb0>\xa9\x14\xe0\xb86B\xb4`\xac\xd85\xb6\xc8\xc5\x90\x0e\x83\x9c,\x19\x8fk\xe5K\x17Y\x80\x06\xc3\x99U\xbd\xd9_J\x97\xfd\x88\xd5\xa8P\xccA\x04<E\xe4\x14\xa9h!\'\x7fNO\xab\xef\xb9M\xd0\x0f\xc5\xda\x06\xa7B\xb0}\xb1\xa0\xae\xc7\xf2@+m\xfe\x83\xd3\n]\xfb\x81\xcb\xe2\x81YL\xafO\x81\xb7\x88\xcd{C\x10-y\xac\xd5|\xe9H\xba\xcfo\x19\xe6>\xc4\xd9\xad\xbe\xa2\x08\xab\x0e6\xce\xe4`\xcb\xe3\xe0t\xfeZ\xa7\xa0 \x86|\xb1\xa4M\xf9\x12*\xda\x0c\xd4\xe8X\xd8\x94\x04>\xae\xcb\xcf\xb8^\x9bT\xf3\x0fj?\xee\xbd~\xa0\xa4w\xec\xbc9\xe9<\x884\x93\xf7C\x1a\x96\xb3k\x9aG\xc0\x1f=\xf0*\xc8e\xbdU\xf5$U`\xdf08]2c\x0b\x14\xa4\x82\x0b\xee\xc3G\xabc4F\xf0\x1d~-\x0f\xeb\xeaj\xfd\x12s\xe8S\xf6\xb8\x8d\xe6\xa2\xaf\xab_p84BUk\x86\xf7\xd4\x1c\xe8g%J\x87R\x80\xb1\x10\xe3\x05\xd9\xddm\xf3\xbb6J\xcd\n?\xb8\xac\x18\xb3#\x8b,\x97\xb3|\x80\xc9\xa8\x8174\xfd\x9cY$\x1a\xc3\x05_I\xd1\xcc\x03\x00\x89}\x1c[\xa1,vTh\xccC\xefH\xf4\n\xd1\xb3B\xff4\x9dg\xe99\xf0!\xf3K\xc5\xe7\xe1\x83\x94Mu\x8aA\x04<ShW\x95\xbc^\xe2\xc5\xdc\xc2\x0f\x0c\xe9;\x07z\x9b\xc0$\xbf\xdb\x0c\x99\x98\xf3\x80\x937YrT\xf7\xe8\x82GCI\x9c\x12rH\x18\xebN\nqq\x13\xde\x91\r\x8b\xeb\xd5\x02\xfb=\xe42\xeft\x1f\xd5\x18S\x8f$s\xfa\x1a\x08\xa5\x07\x07\x16\x00\xa5D\xd32\xf3\xc4\xab=b\xf9g\x1d\xfd4\xe9\xe7\x94\xed\\\xae\xce\x82\xb0\xa4\x8fQ#\x92\xbf\xb5Q\xe7v\xab(\xfb\x01]Xa\xd5:\xa19\xa2\xb6\xb6 \xc3\xb0"\xa0{\xf3IR\xac\xab\xe3o\xa0\xb0/\x80/\xd3\x15\x0bY\xea\xfd|\xb78\xee(}\xca_\x91\r\xe7\xb4\x9c\x90\xf2\xd4\x1b\xbc\x1f\xb2\x8a\xe0\x81\x91\xb4\xb6\x8d\x0b\x19\x81J\xb0ig\n<\xe3\xb5l*B\x03%_\xdf*\xe5e\xe1\x83\x99\x91\xa57+\xb7>\xf4B\xddK\xc2d\xb5\xd638\xf9\x90Q\xe8p\x9a\x1b\x036HFw6\x89\x1f\xac\xba\xc7gb\xf6\xc0\xd6\x7f\xd2q\t}c\xef1\x93D[\xc4SD"w\x88\xa7\x0e\xac\x06\xfa\xe3J$\x9ez\xe7\xbb\xd5~4\xb1r@`\'SN&\xb1\xac\x14\xba\x12\xa5<\xde\x8a\x1e\xf4\xe7\x1c\xef\r\xca2\xb1B=v\x9e\x89a\x97lU\xa1y\x01\xcd\xdf\x93o\xcf1V\x93\xb3eR\xb3\xcb\x8aa\x95\xc1\xf3\x1c\xba\xa5f\xfa@1\x1c;\x96\x15\r\xff\xdb??\xf0\xfd\x00\xa4\xb6\xacg\x86q\xd2\x99\xa4\xe4\x7fA\x16\x0e6\xb6/\xfd\x98\xc0\xddl}]\xb5q\x8b\x8c\x9a@My\x95\\$\xef\x01\xc0>\xce\xa4\xcf`\xbf\xb0\xafBNWO\x89\xe0$\x9f\xed\xc2\xe2\xc2P\xd4 \xd0\xe9[\x8c\x13L\xad\x8e\x00\x81\xc94T\xd5[\x06#\x9a\xcf:9\xaea\xe9\x94\n#\xbaM\xb6R\x99\xddV\x8b\x1c<\x1f\x0f\xa5\xa8\xf2\x15\xbb\x06\r\x12\xee\x86Q\xfcd\xce\xef\xbe\xe5xZ\x8c\x05ZS~\xcd\xce%y\xbbMy\x9e\r*\xd1!\xf1\xfa\x07dH5\x01\x976s\x063k\x92\x95j\x81f\xb8\xabm\x8a\xd7\x11\xa9\xf2o\x01[7s\xea\xfb\x1cUp\xe8\xe1\xdd\xcf\xbe\xd9\r#O\x9d\xf3\xab\xd3\xe0T\xd7\xce\xc8A\x16\xa5\n\t\xe6\x81\xe9\xf1\x9e\x19\xcc \xc7\xb3Y\xd2v\xd9\xa3\xc7\x8d\x89-\x86uO\xa4\x1dH\xd4\xe3\xc4\xdc\x07G\xd8\xb4\xf0\x05B\xcc\xcce8N\x8ci\x9e\xfc~I\x8b,\x05\xfa\xe2D\xb4["i)\x80\x7f\x1d\xf6u\xcdL]\xe1\xd7\xe2UNS\xca\t\xe9U\xf5S+\xa3p\xa4\xf3\xaf\xd6\xd6x\xee\x0b\x13\x1a\xa4f\xc0"\x9f\x8f0z\x92?\x8d\x95\xac95\xda\x06p`\\\xd7\xf3+\xd4cN\t\x06\xcc\\\x987\xbf<\x0c\x92\x87\x05\x80\xad\xc1\x8f~}\xff\x8d\x85;\x18\xbd"bT\x12n/`0\x89V\xc3W\xa4\x9biY\xb8\xf0\xdd\x15~\x86d\xb69n\xf8\x0f4\xd3\x88\xfa\xaedX\x8c\xb3\xe3@\xb5Fs#\xadB\xdf\xc9\xbd\x9e,.(e{\xbf\xdc$\xad;\xb5\x80\x12\xf6w\'s\x17\x91B&\x16\xfc<\xecL6\xd8[.\x03\xe5\xb7\xe0/\xf6\x89V\x06\xeaA\xe3\x8c7\xabX\xde\n\xb2\xf3p\x11g\xfcL\xefV2\x96\x14,h\xff\xe0qks\xd2\x93\xb2\xe3\x91lA\xfej,\xce\x98\x84\xc5x\x8e\xcc\xa0\x8e\xaf\x05\xe0$.d\xdd1\r&v\x02\x95]\xcdixT\xde,\x19\xa8\xefXW\xc2~\x95\x92Q\xaf\x94?\x9e5\xc3.N\xc8uw}\x12\xe6\xa79\n\xb6.Afg\xcd\xea?S\xa6\xd0\xe0\x8d{v\x0c\xf6m\x83\xf6\x8a\xbc\x15>x\xa4\x88\xb9Gg\xeb\xa5\x85G\xf8\x02\xd9\x06\xae\xd0\xce%\xd3\xcd\xe2\x18n\xc1|Q*^a\xe0k\x0b\x128\xa1\x80\xd4\xc5\xc5Q\xc7:\xba\xb34\xd46\x8a\xae\xbb2\x8ch\xe0\x90\xf9\x95(69k\xc9\x97o\xc1E;L\x9a\xdb\xa1\xdc\x91\xd0\x9b\xfcs0\x95\xfd\xd5\xe4\xca\xbe\x89>0\xfc}\xfa\x8f\xed\xd9A(\x0c\x9al\x8eK\x9a\xb3Y%j\xf9\xa4=\xb2\x94\xefW\xf1*K\xac\x15Dy\x1e\xecFd\x0c\x1bigZ~\xd0L2\xfe\xfc\'/U\xd3\xbe\xc6\x8f\x8a\x8cv\xa2\xf1?\xac\xdb\xa1\r\x1e\xd6\xda\x0f\xf4\xfa\xaf\xb8c\xb3\xb9\xaaF\xfav\xf9\x10\xfb0/\xcf\xcc\x15\xe0\xc1\x98\x896\x18\x0e\xb2\xa4\xf6;\xbe\x8b\xa1@3P[N6\xd2\xd7E\xcc\xff\xce\x9b1\x89cf\xb2+yu\xd9\xd0\xf3\x12\x10\x04lb\xe32_\x8c\xa5\x166\xc4\xdf~\xb2V"\xbf\xd9\x0bla\xb8\x92\x8e\xa0\x890\xaf\xd6\xf5\x81\xd21\xfe\xf5\'c\xba\x91\x9b\xc1\xbc\xe5\xc7\xbe\x91\xf9\xd6\xf0?\xdb\xb0*\x97\x99\x7fm\xc2\xa9\x9f\x02\x0ec\xe6\x91\xf9\x10 \xfd\x11^\x0f;\x85\xeb\xb6[`\xca\xc3\x01]\x15Y\x84\xb3\xf4\xcbge^2\xe5]\x04B\x16u$/Gv\x1e\x9f\x8e\xe9_\x9d\xd6\xa5hH\x17\xb4\xff/\xcf\x18\x1dA\x10\x16D\xd3z\xf0/\x1f\x85\xdd\xda\x11\x9c\xf7\xd4<M\xab\x01r\xf7\xf6\xd1\xac%Z\'\xa7\xa4\xc7:m)Y\x1c\xab\xae\x0b5\xac\x9b~\xea\x92\x90\x81<Pm\xa0\xa8\xc2\xceV\xd9\x12\x18\xc8H\xc2\x80\xc4\xdd#\x1bP\xef\xd0u\xa5ME\x91\xee\x8c\xf0|i\x12\x8d\'\xaf6\x98N\xfd\xdf?\xf7#\x1e`\xc2\xf0\xad]\xce\xbbcG\xb0\x91\xd1z+\xc8\xea\xb7\x92\xed\xec[\xd1Re\xc1u?\xd2\xff7\x11%+\xf6[\xdc\xfb\x1f\xf7\x0e+\x0e\xc9l\x03\x04\x03f\x00\xdd\xa2s\x07\xac\xa6\xaex\xeaI" \x8c\xeaS\xb9i\x02\xd4\xdb\x03\xecu\x86M\x8b(\xfad\x11\xe1\xceb\xf6\xc8\x83E\x95\xd8!>XY@\x1e\xfd\x08\x85=N\xca\xa81S\x84\xfc#\xb0\x94\x8d\xb3B(H\x9b\x97\xdc\xf2)\xe2m\r^\xccp\x8c\xe7\x90\xe9\x83\x007r\xf8\xa9\x8b*\xd0\xadF\xc1\xd8\xf9\x9d\xb6t\xa77x\xc91@\xa0\xb2a0\xe0d\x8aX\x8c\xfb<.\xa4ur#\xde\xbb\x99C\xee\xd4VI\x93\xab\x01\x0f_\xf2\xa8\xbaS9\x05Br:\x04?\xd4`36\xa8(\xb0\xbd3\xed\x10k\x0e\xdb9\x1d\xf1\xd9\xd9\xdfGH|\x9d\xad\xce%\x8c\x10U\xa3\x97>\xbb\',\x1a\xc8\xe7\xe8?\xf8"A\x14vN\xc2\xb4H"\xdae\xd7\x0bD\xbcG\x01\xde\x9dJP\xc0<ny9\xa8\xc6\x97\xe6;\tA\x05f\x86\x86o[\xc2\x9f\xa1\xe2\xb0;R\xd5\x92\xe3\x07\x15\xbc\x00)B\xc7ju\x16\x05\xa3\xfc\xab\xd9\x02\x99<\x1c\x9735\xf4S\x976\x8aZD\xee\xb5\x071"\xabr\x90\xf3\x85\x88\x0f\x12r\x94\xf8\xef\x9cB\x13\x93\x08\x80\x7fo\xa1\xee\xad\x1ak\xd3\xa7\xb8\xeaZS\xa4\xbe)\xb8&\r\xf6D\xe0\x0c\xe6\xf4\xc6i\x10\x0e@\xcc\xef\x94T*\xefE \xab\x9cy\x92\x1a\x8b\x80\x96\x00\xbd\xed\xc9\x9d\xd8nN\x99\xa3\x1e\xba\xa0\xcbD\x91c\x99\x9cn\xaeD\x11[\x0f\xe3\xbe\xe3\xc1U\x84\x84\xd1\xdc\xe1M|ap6\x82\xbf\xf1G\x8a.\x12\x82\xfa\x8fTYIm\xea.\x00\xec\xd4p)\x14\x94&\x8aD\xe1-\xb8UM\t\x06"{\xc8\xb8\x02;\xd8E \xad\xda\xac\x869\x10\x9d\xcb\x89\xa5 L\xdc\xb9\xb9\xe7\xa4\x80\x99jt\xa9Wt\xbc\x92\xeaWT\'\xc5)#\xfd\xd9\xf4\xc9\xc8\x92\xa5N\xd3\xa7s4\xb2\'\xee\xd7\xdc\xb2\x85\r)\x96\xec\x15\xf2x:\xcd\xd5\x84\x19/\xd0\xda\xab.\xdd\x9168\xadA\x9f\xfa0\xb4\xf8\xdb\xf5\xe7\xf3\x13\xbf}\x05n\x1a\xfc0iD$\xee\\\xb8\x88\x01\xfaQ\xb4\x12\x01v\xa2\x01\xcc\xde\xa7\xf7\xe6\xf50\xc9\t\x90\xa4\xef.\xff\x10U0\x8a\xc6\x80\x9a!\xb9\xfdJ\x9c\xdb\xec\xa0)\xae\xf5\xc2#\xb3!=+\x1a\xedHUC\x97\xa6\xf8\xb8I\x86\x8a\x89\xae\xad\xa5P+\xea\xece\x05Vp\xe5\x18\x8a\xb56\xbc\x0f\x08o$\xfd\xa0\x1f\x7f\x1c\x9f5g\r\xc6\xaf\xa27\xb8\xfdG\x03\x83r\xaaTD\x1a@l\x0b\x16Ii\x146c\xf0\xc7\xe0J\x83\xb5\xb9%\xeeT\xd2\xbb\xac\x82\xdfj[\x9fUrJ\xf4\xe9\xf1|+ \x1b7\xd4\xa8D\xfe\xc5}\x98\xa4\x9b\x94\xdf\xa1\xe0\xbf`\xa0o\xdbpt\x9b\x8e\xe1\xb8\x1e\xa5D\x13\xd3\xa4r\xaa\'\x84.\xd9u\xf3\x9a\xc2(8"\xb1M\xcaG\x89G6#\xd5\xfdk\xccH\xd1\xd1\xf8\xb9\xbc\xf4/\x18\xb9]VR)\xa3\xe2\xe1\x87\xf9hQh\xb8\x9c\xc7 Z\xe8E\x9d\xbd\xfb\xe7F\xd1\x03P\\\xfer\x9d\xd5\xb4\xfe\xaf\xce\xc3\xd6\x9f\x11&e*Q\x13\xee\xee\xa0%\x9eM\xbde\x7f\xaf\x83\x1b\x03J\x99\xf7\xb5\xcf\x93a\n\x83\xc9\xb24\x05T\xb8\xbc\x99W\xa8v\x84!\x13h;1\x04p$8(\x99zV\xc6i\xff-\xcb\xc6\xa6N\xfev\xd7\xdcY\xc2@XL\xa5_\xcf\x80p\x00\xa4\xa54M\xa4\xf2\xd60\xdd \x95\x1dB\xf0\x83T\x83\xf7\xb7W\x89\xe7eu\ni\x9a\x84Ao\xb4%\xc72\xe6\x8f|\x10*\x00\xccJ,\xdd\xc0\x0eEU\x08\xc6\x12|\xff\xdd\xc4B\xc9\x1e\xc0<\x96\xad\xefi\x85\x02\x04\x80\x18\x9ek\xb0\x0f\xf1\xfd\xeb\xcb\x8en\xba\x82V\xd0~\xb5\x8ctJ7\x1bg\x1a(y\xad\x05\xc2\xfc\x1d\xc4h\x14\x8b\xf2\xd6u\xe4%\xbef\xf56\xe34\xc2\xc4\x94\xbeK\xad?\x8eY\xd0E\x06\xa1\x92e\xa0@\xe7\xf6\xf4\xd7\xd0\xea?J\xb1\x00\xb0\x96\x8e\x93J\xb2\xe1zO\xd5\x92\xef\xa7\x81\x1a\xcf\x1f\xc2\xc3\x13Z\x17e\xc4a\x9d[\n g\x97\xd4\xb8\xd3\xf1\xb7ub\xef\xa8\x05\xdd#k/\xbb\xdd\xe2\xbe\xa8"j\x00\xf7\x18\xae\xe2|\xce\xbe\x95z\x83\x9fG\xba\xb1\xe4 l\x8e\xd0\x96\xc7\x01\xf8\xba\x01S\x87\x06\xbc\x15\xca\x1e\xecZ\xba\xbaV\x19\xda?\x1e\xe0\xd2\xf1\xe1[F"8\x8e\xed%pX\x91Y\x82\xe9^\xcbq\x1e8\x81\xcbfgm\xf7\r\xcc\x02uy\xf0ID\xa8\x85)\x05\x15\x12\xc1\xc8\xa7\xe5\x08\xd7\xdb\xcd\xaa\xdf\xa8gC|\xea\xb6e\xcd\x0e\xfa\xcb\xe7\xf8\xeagf\xc5~\x9a\xd5\x0c\xed\x06S\x94\xdb7~\xb6\x9dE\x7f\x17\x1cd\x19\xe4\x04\xca\x17e\xbeb,G+\xfdm|\x86X\x8a\xb7E{\xcc\xdc"\xa4>\xfc\x1e\x0e\xf0V2\xff\xadU\xed9\xd4\x10\x15\xc0D%\xb9 u\x10[u\xd4\x0fk\xb7\xb2\xff)Vb\xb7\\!\x96\xc5\xcd\x1d&\x97\x9a\x12\xf1\xecU\x85/\x99\xa5\xd0\x03\xb0\xc1j\x89\x1cQ\xd102\xea\xa0\xebB\xbf\x17\xb4>\xe9\x17|\xe1\xcf\x9b\x88u\x84\xf4\x139|<\x91\x00\xf0\xb5\xb4?\xbb,\x9e\x02\x95d\xf2]\xc2\xc8z!m\xe1\\QW\xba\x8c\xba\x85\xdb\xa3\x10r\xe6z5u\xda\x04Y\xec5\xa6\xe6O\xf4\xb5\xf9\xe2\x9d\xef#\x16\x96}X\x1d\x7fe\x82t\xcbV\xa3\xc4\x8a\x01\x19\xf8\x17\xce3\xd3tu$~\x9c\xe7\x80\x9f|\xaa\x13g\xa8\xd8\x95;?\xc8\xe6\xc6\xda!{0\x93\t;L\xb7\x8a\xa7K\x1e\xa1Q\xa6\xc0\xaa\xf7\x90\xed\xf1\x94Us\xbe\xdb\xc7\xc7`\xcd\xe0\xad\xdfv\xda\x8d\x0f\xb0y\xca\xcbb\x975\x12s\x1fW\xeas\xb6\xb6f%\xf9\x9c\x13\xf3\xa8\t\x19\x1f\xff\x16g H\x1d\xd6\xcb\xff\xed\xd7ED\xfe\x04\xd0Tx\xff=\x13\xc9Ra\xa8-<\xcf\xdbK[\xb2C\xbf\xcb\x13\xfc\x16=a\x9b\xbc\x96~\xa3\x07\xe0K):\xa8\xfb\n\xbe\xa2k\xba\xc9: :\xc7g\x12\x8f\xdf\x8e>\xd8\xd5\xfd\x98\xfeZ\xeflz\x8f\x05\xd7\xa9\xf6\xc9\xee?\xc32b\xf80\xe6\xef\x86\xd9P\xacB\x00`\xdc\x9b@O\xb8\xfd\x83\x16I\\7X\xe3\xb8\xb1\x8c\xeb\xd7=V\x80\xdd\x0be\x15 \x1b\xa2Z\x88\xc6\xd6\xfe5\xc2\x0eT\x02\x87C\x93Of\xe0o2\x0f\x1a\x06}\x9c\\N\x92\xbbT\xac\r\xaf\x98\x05\xa9\xcbthRk\x13\xb6\xc6\xc5\xed\xdc\xbb&\x9e\xe4\x19\x8c\xa9\x11)\x08\xf1}#\xce`\xe0Ff\x1b\x95\x93/\x88\x05P\x1d\x91\x07\x9etX\xc1\xab\x8aY\xe2\x83\xf0\xbe%\xc7\xcd\xe7~ \x92KO\xb9\xf9\xb7\x97\x02\x10\x11\xa6\xbd\x1b\x95\x00\x8fc\xf5\xf4T\x05\xbe\xf2\xba\x9e\x95E\xd6\x1d\x05}\xbfh\xd9n\x1a)|\x04\x96\xcd\x0cL\x82\x80\xb9\xfd\x9dp\xa2\xf1\x1e\xf87;X<\xf2\x96\xa0\xb4\x96\xf6\x1a;\xef\x1b6\x16\xa0,\x02\xf2\xd5o\x86\xb4\x99J*t\x88Kw\xc2\xa2\x17\x9e\xf5U\xa4\xe9Ef\xf0\x127\xd8G|8\xb1]\xbe\x90-\xa2\x08\xf6twJ\xf3z\x1d\xb2\x96C\xf8@\x0f\x13\xebxN\x90l\xfc\x8d\x9c\xf0\x1b%RFTs\x8fw>\x9a\x02g\xd5H@\x99\xe3G\xa8r\x91\xc2\xefA\x1b0\x05\x01\'\xf2\xef\x13\xca\x04\x84a\x1d\xc0\x05+\xfa>\xd10t\x9b\x13%\xb1,\x0b\xb6\x06\xfb\xb9\x8c\x06-\x8a\x96\x98\xf3K\x8a\x81t?\xebJ\xd0\'\xe6\x8b?\x06\x99x\xad\xa2\xa6Z\xef\xd8v\x08\xb7\xb1W\xe9\xd0\tM\x89\x16x\xe9\xb2\xa8\x93\xeeQ\x16\x89\x86\x05\x9e\xa6\xdc+\xdf\xc8c\x88\x8c\t8\xb1~\r8\x9e\x1d\xce\x17\xe9\x0c\x7fP\xd3D\xfe\xd1\x0e\xafo\xe0\x16\xf6\xa2=\xdea\x9b,?/<\xc6bnZl\xba\xca\x03\\\xd0]\x10\x8b\x08\xdbG\xa5O\xd5\x12e\xe68\xc2\xcb\x93X\x10.\x96\xed\xfa\xd9\xff\xe1-\x0f\x85\x07z\x80\x9b\xabNY\xb4\xf6\x8c\x1f\xaf\xbb\xdd\x08\x8a\xe9\xd8\xb7\x93\x1d\'\\\x9c U\xfe\xb1\xc1)V\xec\xd5\xfb\xc9!\x9f\xe5Z\xaf\xfa+\xf1|\x0e\x96-T\x19\x1ae\x11/\xfd\xac\xab\x05\xc0\xbb(?\xb4uM|:\xdcO\xae\xeb\xed\x92f\xea\xdaJ\xdbi\x17M:\xe0\xea\xab\x98\xe2\xa1]\x0f0\x9b\xb9{\xe5\xc9\xe9\xeb\xd5\\\xa2\x12,RB\xb8^\xfa\x8b`x%\x91L\xd8\x14\x04\xbb\xf4\xd4W:\xdd\x17m^j\rq\xf2\xfcH\x1f\xd87 \xc9EI1x\xbd#\xa8\xb4\xdb\x8e\x85\xa53\x9d\x82\x13\xa0!v{\xba\xeb\xb3\x9b\xad[\xf5\x9dU\xa7nZ!D\xdfC*\xfd`bhz2L\x00\xed\xe2\xc7\x83\xb9e\xbb\xe12N\xae\x8c\xf1Y\x95iY\xa4G\xbf;H/Q\x98I\xcag\xf4M\xc4\xab\xd8wv\x82L\xe0Ik\x91\xd6db\xf8\xa6<2\'4\x8f\x8e]X*\xb62\x15\xf8\xfb\xf7\xb7*\x08L\xe2TI\xe7\x1a\x92\x9f\x96T\x9d\xc6,/\xa7\xeb%7\xee:\x97wX\x95!h\xa6P\x9e\x93\xa7R\x9e\xaa\xe8\xe2\x1bE4g{\xe4\xe9\x0ce\xfaNa\xbb\t\xf4\xa1~\x17\x07}\xb7\nh\x18\xb6\t\x13s\xddB\x90\x98\xff\xf5\xec\xea\xed\t\xab}\xcf>\xea\x05EQ]c\xab\x94E\xb2\x8a \x1e\x8aA\xc4\x9fS>cwF\xbf\xe4\xb5D(\x0c\xe5\xc2\xa5\xe6\x0e]\x03,\xc11\xe6L\x94\xcc\xa9`-B\x16\xd2?\xcf\x0cX\xdbi<\xcd\x96\xcc\xb1\x86\x983\xa3k\x91\x91QK\x00\xbc\x02\xb4cM&\x10\x97W\x11\x81\xe2\xdeh\x9d\xb9w\xb7/\x82\x1b^\x83W\xa4\x89\x04~5\xb6R\xb2\xee+\xfc\x82\xd9.\x7f\xeb\x06\x90j\xef~f\x9b\xb6HT\xc3\x06\xec3\x04`\xbb\x84\t \xb4,\xc8V.\xe4\x83.|\xd6\x84C\xd1\xd5\xf4f\x8a9\x03\rb\xfe\x97\x89\x00/\xa36\x85\x01\xa0\xb08|\x01\xf9\xd2\x11zR\xf4\xc7\xa2\xe3X\x07\xa51DQ&\xec\x90\xd9Y\x96r\xca\xbdX(\xe6\xe3c\x12\xb2\x1fv\xecvY\x8e\xaa\xcc\xda\x10\x19g\xaaf\x1d\x83b\xa5L\x02\x962\xf5~N\xd0\x0c\xad\x1b\xa8J\xf2\xc0\xe3\xddR\xef\xe5\x8f\xf8\x07i\xa7\x8d\x99ej&\x01O\xbd\x00&\xb8ur\x95^\x8e\xae`\xd51#NZ\xa7\xb15\xce\x94\xcf!\xaf\xab\xbaD\t\xf5\xc2q\x08r[\xbc\xc0\x98[E\xe9&\x84-\xdf\xd8\x82V+l\xca\xc9&`F\x02j\xadEf\xfd\xde\x02\x15Ao\xa9j\xa2zxT62\xd3\x9cnV_g\xef\\a<T\xc5F\xf2\xcf~\xb4qa\xe5\xa0]m\xd36\xde\xdd"\xd7/D\x1f\x9f\xd0&\xae\x0c\x1e<z\x93\x7f\xa8\x07*\x84\x87\xa2^|y\xf8p\x86\x88+I\x9b\xdbc\xc0\xdfa0\x18\xde\x05\xebI\xa2\xdd\xdc\xb2\x8a\x18\xb6U\x89\xe7$\x8b\x82\x051\x16\t\x10%\xb4 4\xc0\xcaF|\xeeR\xa6\x88\xb0\xa7K\xff\x89!\x1a\n\x81tu\x8d\x82\x03\\\x8f\xfa\x92\xe59\xe0z\x00\xf5G#a\r\xad\x9f\xcb\xde\xec<\x9c\xd34>a%0[\xbc.\x9c\xcer\xc9\xcb`\xb8[\xf0\xb1R\x0e\x00\x97m\x0fm\xffT%\xef\xf9<\x84\xc7\x9fg-p\xe9\x03tGN=\xe3\xdd3K \x14\x86~\xd8N\x81\xb9\x19\x98gpMU>\x037<o\x86[ v8/h\xfcZ}\x007t\xc9\x7fM\x7f\x83\x07\xe6\xbf\xce\t\xa4`\x98\xf7P\xec\x96\xcbgOK9\x12\x9f\'\xad\xec\xb4$r{\x99\x0b\x97\xde\x0ek\xa8\xb8\xe5\x0fA\xaf\x8d\x06~>}\xa9\x1f\x8fh\xf8]z\xb6\x89\x02S\xc1u~i\x91\xa3q\x8az\n\xd9\xdb\xa0\x04\xd3\x8c\xc1\x15?1\x07k\xddX\xa7f\x81\x90\xb4\x1d-Z\x92\x1fH\x01\x00\xcf\x81F\xbe\xf6R\x98F\x00\x89\xa4\xf6\xbd\xec\x06\xbc@\x95C\xaa\xde\xd1P\x1bs\x1a\xe8\xa1R\xda\xc4\xd7g\xa5\x16\xd7\x05#\xc4\xc2c\xa4"_V\x83\xbf\xc4\xa9\xff\xc3F?\xad\xd8|\x00P\x94y?v\xba\x04\xc8&\x18n1z\x1fQ\x07^!\xac\x1dw\xca\x9d4:\x83\xc6\xda\xf1\xa3\x89\xf0w\x1b\xc1\x8f\xd9\xb8\x87\x9b\x92\xd6<\x0b0Ak4\xf0r\xf9\xd6Qr\xf2&\x80aPx,\x8e\n\xd9\xd8\xccp\xbcN\x03\'L\xb4\xa9\xd2Q\xe66\t\xd2\xbci\x1d)w\xce\xec\xdb\xc43s\xf6\\VS\x8e;\xa9\x1ck\xbaG0j\xe4|\xa4\xe9\xa2*\x07k\x82\x86\xe4\xe3\xe7\xebt\x14\x83g\x9d\xb5\x15\xad\xa8\xc9\xea\x1a\xb6\xca!\xf6\xff\xcd)Ix\x80~\xcc\x9f\x8b\xa2\xd6\xbb\xcbd\xd4\xaf\xa0\xe4j\xbdo\xcbSb\xc4\xbd<\x0f[\xa5\x7f\x025\x9c!b\xcf\x14\xfcq\x1d\x98D\xd0\x0c\x19?9\x9b:\n{PM\xcd;Tl\x0b/*\x91\tuGllPk\x8eX\xc0\x84\x12\xc3vG=\\>\x16\xc3\x97\x90\x8eGj\xb7\xa7\xdac#wJ\x7f\xb7d:\xfb\xd7\xe0*\x97\x00\xf9{hH\xe6\x14\xb7AO\xb11\']\x921\xab\xa3Pc\xc1B\x8a\n\xbe\x18\x17G\n,\xc7Hf\xaf\x9c`Z\xb6\x94\xac,\xd1\xd7iV\xbaX\xa1F\x85&q"\xedC\xb7\xb0\xae\xcf\x84"\xc6\xf9\xfeo\xa3\x9e\xd5\xb8}\x11\xb1L7h@\x81\xf0H{\x07\\\xb9+t7\xc4\xff\xb4dsW\xed\x8f\x89\t\xd3\x03\x04h%"\xf2<\xec\xea\xe5\x93\x1e\xb1\x1e\xab\x7f\xf4W\xcc\xd6\xdd\xd5\xbe\xcc@=\xd1\x1e\xc6Y\xed[\x86Y\xe4\xae\x19S+\xe4N\x049>Gb\x89\xac\x06\xfa\x88\x8f\xd2\xc8\xfe\xb0d\xf1\x0f\x87\x92R\xec\x97Fn\xf2\x80\x84y\xd9b\xab\x1a\x0b$\x02y=\xf4\xe7\xdb\xd9*;\xf3\x9bL\xfe\x83\xb9\x95$Z\x97]\xb0\xd6\xdc\x92\x89\xf0r\xe1K\xbf\xff4R\x8d\xa6\xce7\xa0$\x99\x7f\xbd\xaap\xff\x05\xcf\x00s\x18\xe9\xae\x98X\xafT\xc6!J\xf8\xfa\xe9\x96\xf2\xf5.o\xf4\xfbsX\x1cr\xc1x\x0b\x92\xbbC\x97\xd1C\xae\xb3\x06\x80^\xbf\xf3~OU;\xe3\x89\xde\x81\xfd\xb7\x81\xa3\x17\x07HR\xba\x05\x18\xed\x8b\xc5\xee\xd0\xc3\xbe\xef\x9b$:\xf4\t\\\xbbm\xaa\xaat\x8cn9\xb4\xa6\'\xce\n\xdccQ*9v\xfc\xd5\x84\xb3\x0e\xad\r)\xb7\xd8n\nr\xdf&P \xadG\xa6fl*`\xde(ggl\xbd\x16?h\x1fH/\x13\xad\xce~`\x9c\xb2J\xed(\x1d\xb4P\xeez\x17\xc9\xe1Cii\'\x02\x11\xf5\xf1.\x13#!\x91\x80\xd1\x02\xd3\xb4\xe4\xedD\xd7\x11\\\x0b\x99\x1d(`B\tM\x89\xf6\xe6\x8fpC\x1e\xba\xfb\x07\xa2@\x1f\xb3\n3\x890]\xb5}C\xe2\xe9\xa0-TDl\x93\x86\xa4\xea>\xa6\xfa\x94\xff\xa6\xd4\xa1o%4\xf3Ej\xe1l_\x8f3\xfd[Q\xcc\xdaX\x01X\xc3Z\xa41`\xaf\xa7v$\xd5\xf59\xea\xe9Ol\x1c\xfc\x9a\xfcJ+h\xf3F\x1ag\x13\xde\xfdep\x94\x89\x08\x14 [\x90\xc1\x9da\x19^+\x94E-\xca\x9e/\x93\x1d\x16\x98\x07j\x02&\xdf%)pF\xad\xf8]\xe0\xa0m\xc3\xe4\x85\xe8\xbbhf\x19j\xff\xec>">\x91\xd2\xbc\x86\x12-\xbd\x83\xc1rJZ\xb69\xd4\x0c\xa2\x7f\xc1\xa8\xcb_]\xbd\x167\x03\x9a\xf7\x07\xb3\x1e\xdd\xf4\x14.3r\x03\x87\x1e\xb6B8\xa5\x8f\xb2\xe1\xc1\xef\x8b\x99\xe3\\;\xd4#jx\x9eun{\xb5\x17L\xf9\x8f\xaa\xa8<\xf1\xda\xb4\xb6Ti!\x11,\x94\xe5\x9e\xae\xe2\x02\x97\x97\x01\xc3M\xa6\x96\x8d1\xc4K:\xe7\xae\x00\x00<\xb1\xd8\xf0\x97\xeck\xe3\xfe\x97\x0f\x1a\x8a\xc5\x11\xd8$|\x14\x9d|!\x1e"\x03^5\x16\x91\xb8K\x99yj\xa2\xaf\xd3\xaf@=\xc2\xf4@\xbc/\x19\x9a\x88#a\xdf\xba\xd5"q5\xa0z\x9d\xf1\x8b\x1f>k*\xf7e\x97\xa9\xeaC\x1e+\xf85_\x07\xe2\x94<\x80\x98^\xc3W\xcf\xc5\xe6]\xc2F\xe9`\t6\xc9z\xad\x0b\xf0\xc3\x82_\xc7#jdW\xaa\xbe\xd0\xb6DB)\xf7\x0c\x9b`\xf6\x06_\xf5m\'3k\x04\x9a\xeaY\xcc\x9f\x04y\xfc\x87o\x9a7f\xbd\x8d\x98Nd\xd4QU\xdb\x81\x89upN\xafK\xb5\xa0,(X\x07~\xc2\xdd\x9e0VI\x9e\x83\xe3\xf8-\x8a\x1a\xf1`\x97\xe1\t>R\x8a\xe5y4\xebv\x14\x8cR\x04\xee\xd7\xc5V\xa2\x17\xb6\x97\xe5~\xa7\xcaE\x1f-\x82`\xf4?\x9bDK\xfd\xef\xech\xf8s\xb3\x0fB\xe5\x96au\xc0\xf5\xe3\x8b\x96\nr\xb1dvJ\x94.\xca\xb7\x80\xe2f,\x91\x8c\xd3`\xa1\x18\x95\xd8\xef\x84\x95\x0ej\xe2"s\x8erF\xb3\xc4yo\xf4 \xa5\xf57\xc5\x8b\x81\xa6\xd2p*\x1d\x8f\x1f\xfc\xe6I\x9a\xf6\xf3\xc9\x03\x98\x10\xdb\xca~o\x1fEj/"\xcf\xf4_Jf\xc0P]7\xadd\xb5a\xab\x7f\xcf\x05c\xcb\xee`\x8cf\xe8X\xa4SK\x9d\xafc\x0f:\x9b\x1a\xfa\x19V\x8e\xcb\xb2\x8a\x85\xd4T\xee\xd8\xd4\x00d\xc7$=\x15\x87\xb7\x8f\x8b%\x9bBU\xdav\xa0\xb0\xb5\xb5\x90\xc2\xc5\xae\xc6\xd8\xcb\x84=\x85z\x98\xf2b\x84\xb1\xb2\x88|\x07\xd0N\xde\x02\xd8H\x95\xabN*j\x0f(\xc9kJ\xad\xbe\x94\xd5}\x984\xcceLM\x18\x07\x02\xd0\xaf\x8a\xc6d\x043\xc2e\x13\xef%\xd2\xeaR\xe5q\xf1\xcb\x01\xa6Lk\x12\xd6lK~\xf7\x16\x00i5C\x9c\x9cb}\x07pL\x06~\x1a\xf7~\xaaJ\xe3l{\x95|t\x8cp\x80@\x03\xb5xX\xbe\x85\xe8lg\x9b\xb6\xb8\x92\xb1\x86\x19\xf2\x01\xbei{\x85u\x1aG0\x06\xd34\x9b\xe3\xda\xd9X\xaa\x81\xe5\xac\x1e\xcaSL&%\xc9\xdf\xd1,\x94\x15\xb75\x97\xef\xe9\xd6\xce\xe5U\xe6\xfdD\xa1\xfcH\xc6\xa2z,\xba6\xe8\xde\x1aR\xd5d]\r\xf0\x89\x0c\x83\xef=\x07\x0c\x0b\xc37\x97F\x19\n*6\xa6\xb1\x9cB\x1b\xfbv\x1f\xb4\x8d\xeb\x15\x84\xed\xf7\x0b\xa2\x18f\x125|\x17At\x84Y\xcfa\xc1U\xaa\xb2\xc5\xc6\x06X\xf1\xc22z\xfa\xcc\xf8\xe6\xf5R\xfb\xd9\x13-~$K4,F\x94\x9dnj\x1a\x08\x1f/\xc6g\xbd\xcf\xbe\xdc)\xda/&\xa1ni\xbe\xbcJ\xf6\xbe\xab\xe3\xde\x17}\xb9\xefc\x92}\xf0\x13\x05?\x1a32D\xb3y\xb89\xe4\xbdhD\x86^:\xf7\x92c#\x10\xe4`DdCl\xafX\xd9\xbe\xcfWb\x9a\x08\xd5T\x8e\xcd\xdd\xc0\xb0\x9e\xcd\xd8%\x08+^]y2li\xdb\xcb\x18)\xd4\x97\xc7S\xcc\xd6o\xf5\xfb|\xc7\xc0\x14\xd4N\xd9\x90t\x1f\xd5\x8b8\xe2,uPu\x99\xf4\xe7\xc3\xb6\x02&\x06\xf6q]\xf7\xeb\xb9_R\xffb\xfbHn\x9a\xb8\xc4G\x9a\xba \xc2\xd8\xc1\x86v\xfd\x92\xb1\xc9\xff\xe0\x857b\x19\xf8\x1c\xde\xdf+<B\xd2j\xebm\xe5\xd9s\xa8y\x00\x17\x0f\xd2\xf8\xe3\xf7\x91\x03[\xd4\x05\xe4\xdb\xb9\x10\x91P\xf9\xe5\xf9\xb8{^\xd7`~\xbe\xe0\xef]\xbf\xa7\x91\tU\xb7\x83\xc3\xba\x84\x84\xd7v\xbf*\xb8\xd48\xbb\xb1Y\xdc\t\xd6^<\xba\'\xc5\xcf$2\xd0\xd3W\x16}\xf1\x14\xf3\xe6:\xb5\x87\x01QE\xb5\xa4g\xb1\xd0\r\x1b4\'\xa8\xe8\xa8\xe0\x90i&\x1dR\xa6\x10U)\xf2@j\xb6\xb1\xa9\x9f7\x07\xf9\xda\xfe\x13\xe7\x01\xd3\x0f\xb3\xc4ji\xaax:\xeb\x1dt\n\x84\xaf\xe5\xe3L\xb6\x84\x9f$b\xba\x85EI\xf6\x91\xd0R:\xa2\xfe\xee\x1e[\xca\xff\xe3\xb9\xf6\x84\x86\xdbg\x0c\x1f\xce}+\xce\x16\xf0\xe1\xaa\xc9\xea\x99\nSe\xb9\x87W\xe4\xfb\xc1\xc6\x08\x8cw\xebl\x909\xd2\r\xf4;\x8c\x9c\x96\xe4\x0b\xbe^\xac\xa1\xacyE\xc1\x96\x1a\xfb\x87\x81\xca\xf4p\x0e\xab\xd1\x7fqe\x831D\xc1\xc7\x0f\xa0\xf7\x84.q\xfe\xb5\xdc7\xa0\x13\x0cO\xa0\xa2A/\xbdZ\x0e[\xb7\x1f\xc6\x9cf\xd9\x87\x84\xc3<n\xd1Y\x13\xda4*\x1di\x00\x1e\xa1u\xe3\xb9T\xebzR\xef\xda\xf6\xc1.8L\xcf"\x19H\xc0\xe1\x8e!\x07\xafc5O|%\nC`\xa4\xf5\xc2gN/\xc3\x9cz\xa9\xe5\xdbSY\xceFH\x97\xba\x8a\xdb=\x84\x8a\xa0\xb8[\x15\'\x86\x8eO \xf0\xc4QP\x96\xb8\xbc\r\x17-\xf7\x84k\xeaX\xc1\x88\xce\xd8\n\xf9\xc2p\xa0\xb4q\xb3\x02\x86\xa3\xe6U\xa1p1\xbf\xe5\xd6\x99\xe4p\xa9\xd6\xc2\xa4\x89)Y\xce\xd6\xc4\xde\xc9\x92\xca)\x05\x1e9\'Q%^be\x9f\\\xcbx[\x10\xb6\xedQ:\xce\xe2\xd7\xb9\xf1\x95\x8e\xba\x8eCo\xf4\xd4k\xc3 Q\xea{\x9c\xe8\x9dLiimY\x8b\xe5\x9c\xf2\xf0\xd0\xf2:q\x8a}\xa5\xd6\x83i\x9a\xb3\x00N\xa0l\xc8mCDJ\xc3\xf3Z86kHm\xe7\xa4\x1b=\x03\x90\x14\x10z\xea\x04\xce<\xa2M\xfc\xeb\x80\x90\x89\x9b \xa47\xac,xy\xf6\x08K\xa8\xb2\x1cH\x8a*=\xfd\xf8\xdcu\xc2\x8d\x1a?\x95\xd5\xa5\xd4\x07\x93d\xdd\xdaHPf\xeb\xa3\x1d1\xc804\xee\xbd\xd1\xe3\xfc$oi\xb9m:V\xe7E\x19\x8f\x89 S\xb6\xaa\n\x19S\x06\xb5\x9a\x83b\xfd\x10\xf3n\x92z[U\xdc\xe6*,\xa6\xa8\xd2\xbd\xcd\xed\r\xbe\xdb \x02\x9a(\xcc-\xd1d\x9c1\x8a\x9f\xb9b\\\xf4\xce\xbe\x01\xcc\xdaO\t\x15(\xbdo]\xcbEM\xd5\x93\xc7\xa4\xbe9\x8e\xd6O\xf2<)"j\x88\xbc<b\xd1~\xf8\xfe\xaa)\xd5\x94\xfc\x1b\x84\xf0\x06-"\xb1\xf4\xbe\\u\xde\x10\xd8\xc5\xf19\n\xfbW\x04\xf9\xd6x\x9f|`\xda\xc2\xa9\xc6\xca\trE\x07\xe4S\x99\xb4!\x92\xc7\xaaB\x1b\xd2*\x10\x90bu\xf1\xc0V\x0b\xb6\x11\x0e\x14"}\xd4\xea\x82\xfb`r\xd5\xceZ\x95:F#\xa1\xc1\xa9\x10\xe4\xa0ml:\xd4\xb9r\xef\xf8\xa1\xe0\x9c7\xab\xf8\xe2\x8d@\xe3V\xda\xe6\x9f\x86\xf8PEw\x8e\xb6\x02\x7f%w%aX\x15f\xc6J\x02n\xb7\x9fA\x8f\xcc7m\xbd\x96\\#\x84\xb8\x9a\xa2Vt\tPmJ\x80\x83\xf4\xa5\x94\xe8\xc85A{\xb5\xb2\xdfLU)\x06\x19c/5\x97{\nG\xa0\x1b\x91\xee`\xe1\xe1\x9c^b#\x07N\xe4\x12B4\xfe\xa5\x9a\xb0\xee \x16\xa4L\x9d\x07u\xdaI\x95\xa6 \x9e+<\xfd\xb1\xd2\x8f\xf1\x9ca\xda,\x99Jl\xda?\xc56\xc0\x0c2\x17\x99\xb5\xee\x0b\xd5UB\x08\xd8$\x88R+$\tf\xb8\xe4Np$\xff\x12\x01\xd7b\x06\xa5\x1bvw\x83Y\x00\x13G\xf1`\xad\x9d\x94\rz0\'[\x9fn\x8d\x95|t\xd4\xd6\xe8g\xc4\xca@\x98@\x90\x999D\xd3\xc1OQ\xd8\xb1q\xc9\xce\x98Sp[\x81k\xc4\xcb_\xffq\x18A\x8f!\t\xe7y\xd40\xeaD\xac\xb8\xd5m/,!J\x08\xe5#|\xce\x96\\U\xcflY\xba)-:\xc8\xb3k\xdc\x11w\x9e\x98\xbd\xc0\n\x12\xe5\x1f\xa0\x881\x9f\xd6\xf0\x17C`\xdc\xf0y\xbd\xf7\xbdf\xe7\x87\xb9\x86\xe4\xdd\xc5\x1f\xa8\x1b%G\x8c"\x93\xf4\xff\xa8\xc0xw\x9b\xf0\ng\x90\xd8L\x83\xda\xd0k\xfc\x9eQ\xeb\xd2\x04\xe3\xa4E\xf8\x95\x1a\xbe\xbc\x14\xc07B\x96:\xde\x8f\x98O:\xd8\xc7/!I\xd3\xde\x8a[$\xe3\xdcJ8\x8e\xb0C,H\n0\xfa\xf9;#>\xa2j\xa0\rG\x10 z?\x147\xd5bj6\x8d\x14\\RtR\xf90\xf8\xf5\xec|Q\x83\x8e\\\x08=\x0c\xa9YfNCg<@\xbe\x10\xec]\x16Enu\x85\xcd\xcb7\xe6\xe8\xb9\xc15==\x84\x9a\\ \'\x86\x9d\xac\x0f\xac\xfe9\x1f\xba&coN\x1e\x84\xa3\x9e.\x85\x8b\xb3\xbe?\x88^\x18\xa4\xdaa\x14\xd2\x1d~4xUh\x0e\xb1\xeeDl\xe4\x17\xbc\x96\xa5\x83c\x00\xa9\xf4\xe9q\xb7\xbe\x8cv|\xe3\xf3{\xb3\x1f!z\x1eVF\x90`U\xea<\xe7\xf3}\xdf\xcf\xd8\x8d\xb0\xb0Y3\xff\xfa\xc3\x16\x14\xa7\x9f\xd0\xd9\x0c#\x90\x95\xfa\x0f\x01V>\xe06\rZ\x92\x968H\xd8\x9cq\xd4\xd7;W\x05\xf0\xb7\xa1\x0f4\xf3\xee\x8e\xca*\x19\xca\r\xef\xad\xe8\xd0\xaaWj\xa2d\x03\x8e\x1d\x88\xbb\x03\x8b\x19\x82\xa9\xaem\x8b+Y\xf3\xc5/\xacp\x81\x05y\x1f4\xebV\xee\xdfe\xa8\xfdS\x8f\xe7\x11\xb4\x08\x14L<\x06\xba\t_\x91|\xbc5\xda\x10\xc1<m\xb4\xa6\xd3T\xc0\xf3-}\xe2p\xc4"\x0f\xc5\x8c\xee\x9e\xab\x1e\xb2&\x19\x0b\x89\xc2\xcc\xf6\xf6\xe6\xfb\xa5s\x13\xc4\xc4\x83Gi+\t\xd4cK8`\xb3\xfaI\xb0\xdbS\xe3\xc1\x00@&\xfc\x10E\x12\'w\x91\x8b\xb4T\xd1Q-\xfb\x81\xc1f.o\xa4\xb1TlJI\x17E\xe8)\x02MfNN\xb4j\xd7\xfcr\xc6\xac\x11jQ\xb0\x82+\x86\x95\xe9\x88\x93\xbc6o\xd4\xe6\xdbOHnu5pr\xfb\xbf\x87q\r~\xdd\x8dX*\x13\xf3\xe5\x14\xd7\xaa\x02&+\x0e3X\xba\x0e i*\xff\xb8D\xde_c\xfd\xf0\xc8\xbf\x82Di:Z@\xdf\xe5\xeb\x14\xe8\x96C\xbe\xa6\xef\xb2\xa2\xc2^\x83\xc5\ts\x86\xd1Te\xcc\xda\xb6\xe8\xb2yT\xb6\x9eO\xb7\x16<B\x0b\xe8\xf9\xbap\x0bRp(\xbd\xd6\x82~\x00^i\xf8\xd8N\xe5\xbe\xa0M\xaf\xce\xbf?(_\x99\xdd\xb5*\x06\x88\x02\xa7W\xa6a\xca\x97\xed\xbf\xae\xb4T\x96\xdd?\xb9\x80=\xdb[4\xde\x8aiw\x0e\x14\x93\xb8\x0f\x80q\xb0\x13\xff\xaa(\xde1\x05yr\xf1>\xadO$\xd4t8\x0f\xb3z[\xea\xdf\xb3^v\xe3\x14=d\x13\xfcs\xabY\xd24\x84\xd2\xf3\x80U\x88d3\x1e\x83\xf2\xba\xc50|\xa5\x9a\x90G\rS\x8f\x18\xe3\x8c\xcd\xd89\xd6\x0bP\x9e\xb3,(r)5\xc2#\xfbI\x08\xe9^\xe1\x13\xce\x80\x18\xf6\x08`O\xae1\xca\x81\x1f\x05:\x95\xa1\x17\xbb[\xc5q0\xb4\xd6\x82\xc6W\x15\xe6\xac\xbd\xef\x8e\x1c\xa8\x06\x89&\xea\x07&\x06)\x8f\x12\xde5\xbb\xd8\xc6\xf34\x9cUK]\x91^]\x86j\xdea%\x03\x97@\x96\xdfi\xe0\xac\x9e\xc1\x02A\x83Q&O2\xebg\xddeM\x8b\x13\\\xf9\x86\xff-\xa4n\x83)ulQ\xe2\xe9\xe89\xf9\x18\x99\x8a\x96`aE4\xed\x9c++]\xbe\xce\xe6\x11\x02\xf2,(\x1f\n\xe0\xe2\x12\x0f\xd3\xd1\xcaI\xba\xf9\xe9{\x16N\xe4\xcf\'\xcb\xd3\x90\x82\xb1\xf5 ]\x8d\xef\x95!\xc0\x05?\xe5y{Z\x9e\r5\x7f\xee\x7f\xb0;\xe9\x8d[\x13o\xc7\x1b\xc8h\x02S\xe7\x90\x95W\xecMRv\xea$G8\x92\x1a\xd6\x11\xa2\rR"\x0f{\xeb\x16AD\xdb\xc2Km\x85w\x03Y\xc8"\xd0\xa8\x94K\x01\x0bg\xe1\x840\xe0uy\xdc\x17F\x8c En\xd3\xf9\x8d\x92\x1a\xaf\xaeZA-\xe0\xf6\xd7a\xf7 \xefb\xd0pEhB\xa8\x8a\xb7jp\xdeIL,C\xde\xafm\xd0\xd9+= \xaf\xe7d\xd8\xd0\xa2\xb8-\xc1Y\nII\x17?\x16\x8bq\x1b\x809\xf0\x03@\xda\x9e\xb3\x08\xdd\xdchw\x87\x97\xa3\xad\'C\xc8?w\x15\xac3\xd7\'\xef~\x8cO,aQ\xd3\xc4\xe3')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
medomni/models/pyarmor_runtime_000000/__init__.py ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ # Pyarmor 9.0.3 (trial), 000000, 2024-10-28T10:25:17.919106
2
+ from .pyarmor_runtime import __pyarmor__
medomni/models/pyarmor_runtime_000000/__pycache__/__init__.cpython-39.pyc ADDED
Binary file (229 Bytes). View file
 
medomni/models/pyarmor_runtime_000000/pyarmor_runtime.so ADDED
Binary file (805 kB). View file
 
medomni/processors/__pycache__/__init__.cpython-39.pyc CHANGED
Binary files a/medomni/processors/__pycache__/__init__.cpython-39.pyc and b/medomni/processors/__pycache__/__init__.cpython-39.pyc differ
 
medomni/processors/__pycache__/base_processor.cpython-39.pyc CHANGED
Binary files a/medomni/processors/__pycache__/base_processor.cpython-39.pyc and b/medomni/processors/__pycache__/base_processor.cpython-39.pyc differ
 
medomni/processors/__pycache__/blip_processors.cpython-39.pyc CHANGED
Binary files a/medomni/processors/__pycache__/blip_processors.cpython-39.pyc and b/medomni/processors/__pycache__/blip_processors.cpython-39.pyc differ
 
medomni/processors/__pycache__/randaugment.cpython-39.pyc CHANGED
Binary files a/medomni/processors/__pycache__/randaugment.cpython-39.pyc and b/medomni/processors/__pycache__/randaugment.cpython-39.pyc differ
 
medomni/tasks/__pycache__/__init__.cpython-39.pyc CHANGED
Binary files a/medomni/tasks/__pycache__/__init__.cpython-39.pyc and b/medomni/tasks/__pycache__/__init__.cpython-39.pyc differ
 
medomni/tasks/__pycache__/base_task.cpython-39.pyc CHANGED
Binary files a/medomni/tasks/__pycache__/base_task.cpython-39.pyc and b/medomni/tasks/__pycache__/base_task.cpython-39.pyc differ
 
medomni/tasks/__pycache__/image_text_pretrain.cpython-39.pyc CHANGED
Binary files a/medomni/tasks/__pycache__/image_text_pretrain.cpython-39.pyc and b/medomni/tasks/__pycache__/image_text_pretrain.cpython-39.pyc differ