From 523f4955d33d49fce1687ba2adebb37fd34424b7 Mon Sep 17 00:00:00 2001 From: lzr-google Date: Wed, 6 Nov 2019 14:51:06 -0800 Subject: [PATCH 1/9] TF2 TPU SavedModel RFC Doc Draft --- rfcs/20191106-tf2-tpu-savedmodel.md | 333 ++++++++++++++++++ .../20191106-tf2-tpu-savedmodel/cpu_graph.png | Bin 0 -> 60150 bytes .../customized_embeddings.png | Bin 0 -> 46331 bytes .../20191106-tf2-tpu-savedmodel/tpu_graph.png | Bin 0 -> 107196 bytes .../tpu_result.png | Bin 0 -> 49504 bytes 5 files changed, 333 insertions(+) create mode 100644 rfcs/20191106-tf2-tpu-savedmodel.md create mode 100644 rfcs/20191106-tf2-tpu-savedmodel/cpu_graph.png create mode 100644 rfcs/20191106-tf2-tpu-savedmodel/customized_embeddings.png create mode 100644 rfcs/20191106-tf2-tpu-savedmodel/tpu_graph.png create mode 100644 rfcs/20191106-tf2-tpu-savedmodel/tpu_result.png diff --git a/rfcs/20191106-tf2-tpu-savedmodel.md b/rfcs/20191106-tf2-tpu-savedmodel.md new file mode 100644 index 000000000..d2f33622d --- /dev/null +++ b/rfcs/20191106-tf2-tpu-savedmodel.md @@ -0,0 +1,333 @@ +# TPU SavedModel Export API for TF2.x + +| Status | Proposed | +| :------------ | :------------------------------------------------------ | +| **RFC #** | [NNN](https://github.com/tensorflow/community/pull/NNN) | +: : (update when you have community PR #) : +| **Author(s)** | ylc@google.com, lzr@google.com | +| **Sponsor** | jhseu@google.com | +| **Updated** | 2019-11-06 | + +## Objective + +Provide an API to allow TF2 users to export TPU saved models for +inference, which: + ++ Provide a user-friendly way to specify which function to run on TPU; ++ Hides Graph construction and TPU inference specific logic (multi-core + support, etc) from users; ++ Allows specifying tags in SavedModel. + +## Motivation + +### Limitation of current `tf.saved_model.save()` + +MetaGraphDef allows saving customized tags. Current downstream components like +TPU model-server, TFX infra-validator use the tags to load the specific +MetaGraph. However tf.saved_model.save() does not allow users to specify the set +of tags in MetaGraphDef, but hard-coded the MetaGraph to have only one ‘serve’ +tag. + +### Special Logic in TPU Inference Graph + +Under the status quo, TPU computations have to be represented by a drastically +different graph from CPU. Inference-specific requirements (e.g. batching / +core-selection) also adds another layer of complexity. + +Some major differences between CPU and TPU Graph: + ++ As a protocol between TensorFlow Graph and TF2XLA, TPU device placement of a + Node is done by attaching `_tpu_replicate` attribute; ++ For multicore efficiency, TPU computations have to be encapsulated as a + function and saved in FunctionLibrary, and will be called by + TPUPartitionedCall. A TPUOrdinalSelector node has to be connected to + TPUPartitionedCall to do efficient round-robin core selection; ++ Variable nodes have to be lifted from TPU functions, rewritten as + VarHandleOp, and consumed by ReadVariableOp. + +Also for reducing the number of TPU compilation, serving platforms(For example, +Servomatic) prefers batching the inference requests with a few allowed batch +sizes. This requires wrapping TPUPartitionedCall in another function, and called +by BatchFunction. + +Below is an intuitive example of how a TPU graph is different from a CPU one: + +![Original CPU Graph](20191106-tf2-tpu-savedmodel/cpu_graph.png) +
Original CPU Graph.
+ +![TPU Graph](20191106-tf2-tpu-savedmodel/tpu_graph.png) +
TPU Graph.
+ +### User Control of Device Placement + +There has to be a way for users to specify which part of computation should be +placed on TPU, because there’s no perfect device placement policy that can work +for every use case. For example even though dense embedding ops are allowed on +TPU, serving models might still want to run embedding lookups on CPU because the +embeddings are too big to fit on TPU. + +![Customized Embeddings](20191106-tf2-tpu-savedmodel/customized_embeddings.png) +
Example of user control. In this graph, both ‘custom_embedding’ and +‘dense’ can run on TPU. But users want ‘custom_embedding’ to run on CPU for +whatever reason, e.g. CPU computations can be parallelized, users don’t have +enough TPU resources, etc. In this case, there has to be a way for them to tell +SavedModel that only ‘dense’ is to run on TPU.
+ +## User Benefit + +Enable TPU Inference. + +## Design Proposal + +### User Facing API + +For General TF2 Users + +Users need to do the following things to export a TPU SavedModel in TF2.x: + +1. Replace @tf.function with @tf.tpu.function for functions they wish to run on + TPU; + + ```python + @tf.tpu.function + def predict_step(images): + ... + ``` + +2. Create main serving function and call the tpu function above. The main + function might have additional TF ops which can’t run on TPU (e.g. + `tf.decode_image`: + + ```python + @tf.function + def serve(images): + image_tensors = tf.decode_image(images) + return predict_step(image_tensors) + ``` + + And then create a signature: + + ```python + signatures = { + 'serving_default': + serve.get_concrete_function(...), + } + tags = [tag_constants.SERVING, tag_constants.TPU] + ``` + +3. Pass the both signatures to `tf.saved_model.save()`: + + ```python + tf.saved_model.save( + model, + export_dir='...', + signatures=signatures, + tags=tags) + ``` + +The resulting TPU inference graph looks like this: + +![Resulting TPU Graph](20191106-tf2-tpu-savedmodel/tpu_result.png) +
Resulting TPU Graph.
+ +For Advanced Users who need customized Ops + +In such cases, we provide the flexibility for users to tweak `@tf.tpu.function`. + +1. If users wish not to use TPUPartitionedCall, they can disable using + TPUPartitionedCall: + + ```python + @tf.tpu.function(use_tpu_partitioned_call=False) + def predict_step(images): + ... + ``` + +2. Users can nest TPU functions within BatchFunction: + + ```python + @batch_ops.nondifferentiable_batch_function + @tf.tpu.function + def predict_step(images): + ... + ``` + +3. User can also use their customized PartitionedCallOp: + + ```python + @batch_ops.nondifferentiable_batch_function + @my_partitioned_call_op_constructor + @tf.tpu.function(use_tpu_partitioned_call=False) + def predict_step(images): + ... + ``` + +For Keras Users + +Keras users only need to pass `export_to_tpu=True` to save to TPU SavedModel. +(Currently, we require the Keras model being saved to be completely +TPU-compatible.) + +```python +tf.keras.models.save_model( + model, + filepath='...', + export_to_tpu=True) +``` + +### Changes to TF2.x API + +1. In addition to taking the keyword argument `signatures`, + tf.saved_model.save() will take an optional argument `tags`. + + Originally, concrete functions specified by `signatures` will be saved in + one MetaGraph, which has ‘serve’ tag hard-coded. + + `tags` is an optional argument. It is a Python iterable, representing the + list of tags for MetaGraph. This allows user to specify customized tags. + +2. Implement an additional `@tf.tpu.function` decorator in + `tensorflow/python/tpu/tpu.py`. This decorator handles TPU rewriting under + the hood. + +3. An additional `use_tpu_partitioned_call` keyword argument for + `def_function.function()` and `Function.__init__()`. This argument will be + passed through to the place where PartitionedCallOp is created. Originally + all stateful functions will generate StatefulPartitionedCallOp. Now we + switch to TPUPartitionedCallOp, and this routing is done by checking the + value of `use_tpu_partitioned_call`. + +### Changes to Keras API + +Keras users would like `tf.keras.models.save_model()` to work directly for +exporting TPU SavedModel, without having knowledge of tf.function / tags / +signatures. The only way to achieve this is to hide those logics under +`tf.keras.models.save_model()`. + +After the change, `tf.keras.models.save_model()` will have two additional +arguments: + +1. `export_to_tpu`: Simply setting this to `True` will export TPU model; +2. `tags_signatures`: Optionally for advanced users, if they want to have more + control of what tags / signatures they are using, they can use this argument + as if they are using TF2.x saving API. + +## Detailed Design + +### TF2.x API + +Under the hood, exporter API is doing the following things: + ++ The @tf.tpu.function wraps user-specified function; ++ `use_tpu_partitioned_call` as an attribute in Function class is controlling + whether TPUPartitionedCall is generated instead of StatefulPartitionedCall; ++ Tag the MetaGraph with user-defined tags. + +Step 1: Use a new decorator to wrap TPU version of the user-specified TPU +function. It calls tpu.rewrite inside the original function to generate a TPU +version of graph. By default, this will create a tpu function. If users wish to +preserve both CPU and TPU function, they can set `preserve_cpu_fn=True`. + +```python +# tensorflow/python/tpu/tpu.py + +FunctionCollection = namedtuple('FunctionCollection', ['tpu_fn', 'cpu_fn']) + +def _rewrite_func_wrapper(func): + def tpu_fn(*x): + return rewrite(func, x) + return tpu_fn + +@tf_export("tpu.function") +def tpu_function(func=None, *args, **kwargs): + """Compiles a TPU function into a callable TensorFlow graph.""" + def inner_func(func): + preserve_cpu_fn = False + if 'preserve_cpu_fn' in kwargs: + preserve_cpu_fn = kwargs['preserve_cpu_fn'] + del kwargs['preserve_cpu_fn'] + + if preserve_cpu_fn: + cpu_fn = def_function.function(func, *args, **kwargs) + + kwargs.update({'use_tpu_partitioned_call': True}) + tpu_func = _rewrite_func_wrapper(func) + tpu_fn = def_function.function(tpu_func, *args, **kwargs) + + if preserve_cpu_fn: + func_collection = FunctionCollection(tpu_fn=tpu_fn, cpu_fn=cpu_fn) + return func_collection + else: + return tpu_fn + + if func: + return inner_func(func) + else: + return inner_func +``` + +Step 2: Pass the `use_tpu_partitioned_call` argument all the way through +to `functional_ops.py`, where TPUPartitionedCall will be created, instead of +StatefulPartitionedCall. + +```python +# tensorflow/python/ops/functional_ops.py + +if hasattr(f, "_use_tpu_partitioned_call") and f._use_tpu_partitioned_call: + outputs = tpu_functional.TPUPartitionedCall( + args=args, + device_ordinal=tpu_ops.tpu_ordinal_selector(), + Tout=tout, + f=f) +``` + +Step 3: Create MetaGraph for SavedModel. + +```python +# tensorflow/python/saved_model/save.py + +saved_model = saved_model_pb2.SavedModel() +... +meta_graph_def = saved_model.meta_graphs.add() +asset_info, exported_graph = _fill_meta_graph_def( + meta_graph_def, saveable_view, signatures, + options.namespace_whitelist, + tags=list(tags)) +... +``` + +### Support for Keras saving API + +Adding an argument `export_to_tpu` for `tf.keras.models.save_model()`, which if +set to true will rewrite the model for TPU inference. + +Adding an argument `tags` for `tf.keras.models.save_model()` which has the same +semantics as that in `tf.saved_model.save()`. + +```python +# tensorflow/python/keras/saving/save.py + +@keras_export('keras.models.save_model') +def save_model(model, + filepath, + overwrite=True, + include_optimizer=True, + save_format=None, + signatures=None, + tags=None, + export_to_tpu=False, + options=None): + ... + if (export_to_tpu and + (not tags + or tag_constants.TPU not in tags)): + checkpoint_graph_view = save_lib._AugmentedGraphView(model) + signatures = find_function_to_export_tpu(checkpoint_graph_view) + tags = [tag_constants.SERVING, tag_constants.TPU] + + saved_model_save.save(model, filepath, overwrite, + include_optimizer, + signatures, + tags, + options) +``` diff --git a/rfcs/20191106-tf2-tpu-savedmodel/cpu_graph.png b/rfcs/20191106-tf2-tpu-savedmodel/cpu_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..9014e1113582fbc54896ad1029478461cacdca15 GIT binary patch literal 60150 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�FBo{%uOKf!z3VJ0WonvF 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 literal 0 HcmV?d00001 diff --git a/rfcs/20191106-tf2-tpu-savedmodel/customized_embeddings.png b/rfcs/20191106-tf2-tpu-savedmodel/customized_embeddings.png new file mode 100644 index 0000000000000000000000000000000000000000..3d9265c756854abccf437f88dae9a45c0f34f48d GIT binary patch literal 46331 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 DRhQu7 literal 0 HcmV?d00001 diff --git a/rfcs/20191106-tf2-tpu-savedmodel/tpu_graph.png b/rfcs/20191106-tf2-tpu-savedmodel/tpu_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..5928ad730c973e3e7b3d50724f59d0e3922b7a86 GIT binary patch literal 107196 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

nm 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 PJs7X#Rpm-$O#}ZAxO-kC literal 0 HcmV?d00001 diff --git a/rfcs/20191106-tf2-tpu-savedmodel/tpu_result.png b/rfcs/20191106-tf2-tpu-savedmodel/tpu_result.png new file mode 100644 index 0000000000000000000000000000000000000000..9b6b41bafc681efca6c24f567ea54f4ff0fb63bd GIT binary patch literal 49504 zcmce;Wm{a)vNeh{(0JqS?hZi$1b6q~kl+%W;O-LK36MZ=_uvxTU4s+cUG8F^=iTT0 zg8PX@H@$k!npLAljjBb2ijp)c5+M>46cnngjD#8#6f7bX6pT9<26#oKFmeqFiX2K- z;)8|<^idnShWcX8UMs~bIo&p!EH$EEpqLzmHfst^LChyS^;tbP)wRh3($WXnRb5Am zUf&q^l$C!0f|ZUfCc8ZC?s=`qdpsj`O)WoKXX}}d)OME^QZ#1!)S5Nm>R{yJMKA)X z=_u&p{kF>!VJSrKUfF`zb(t3}a@+hK8$|>&D!pEBgiT1}5W3(%{!kDo7*QxN6g2r? z8VDNk|M?vXpf}d3zTM^q;rF+wtMe3e0#jM~~gu3fYsOVgBdCz}uo{knfY0 zw!DIroTlGcM~h=t>~Al}_JY_D!i-RZ81<+X>EZw9CcsBPbkKw`w2`=WiFWcU-((6V zcfW8l8#BB4Irt41;D)VkloIqsn6l%yf0TiO{(oOCYOD@%6v(EU!^kaFz~y?rcJVA* zN#&x#5G8tV=l39S38IidF0xy1H=u`HcnIm;c_Z0`sy4yF{NFV?#Ub|j- zuhb7dRy$ovui^S0##OKS2c0BC3sp>p8v9u5G&Wr4Xj5PGFdp&0tA+~rOTo^|d$WA% zYtyX=rf|&=xUb({Y*(C?3jH8H-N8)}oZwD#!K3Zs}5)dGyxZ3Y3I6prpc+QxT z8W+fkiHVuCtXn-;mnNK zlp=Vg!pcE1b3#fZ-VKDT#D%mm4&{RSUl&W0@+TRT0ynR0qkKEfxb(4Z$Bc*i-vjI{ zBo{TCO2g;+Udq}!Y?Xco-@G6$1+mShIl`I*o71 zNgR!2jT)p7$Cj+UX4R7&{`&df4%dO=CU4V!4tGHY#y-qzhNDFcU6iOCLau=T6Gc7Y zTHbUgAfRiQp_o%tJ@KhUTi2~rvFcHyYZ<9sqFLpON4q`@Nqx~U;SVycq~BBq6%lq%@iUZTyBy>bn^fRSa`jqmdA@-)wPuDmLk7->#%Zn0%p#pwlK-txC8>$e3 znNy*#%*?!LgQ}Yzmb79LzxiGqMKC)d!|B^d`9~nK3-e05bTigl&uZW$uW-n?k&St3 zcU4&tIjppK7)mE;<;akK+;36U@Q|ciNOl#H4&i^STjyRYW1QhH8KQ5Na#`(gZrf0D zUXJHeGS!~rt|T^?mqTJZgewkAAiG2Se%`U8-HbuQ-9Jv*;hMdYu?q+m-ypN3(rx{Z#K4QBE}` zzLgp1ys$YKzHXjJaCt$#>iZSI((I(9n5%PXORp(OTST6&Ssi%of%y9t)*bIlQabor z$(1KBtZ42z9Xp1vMt559My{SN62xcpr@o9O^e)&q$U^>y4_&nKavDuSu;Aed7!HUru zcl;=C^798Q(;vBy%Lzf-#Qyb%Ydgby89d_KQxOlHgDdFhjK7^>4Q)nxn*W7#(Y>;KeAhTq^Kor-)F(`@(2Di>mqP2Se!$a*)ok2V$UXOE(9?=| z5=V`Rjr-P){CtKW>N`_8%qeugG%w1&#%Qi0qRVgHWJaYGHkR`Qw&85*KRYrLA7h7Z zXYCG}47`56d?@Pb>cnQyEpl?YQE}+AuYBkFQnC3w9XWQWsH`xw@|tqK(@gl}cwcm1 zGT6^OTNHUJtMq!%jZrf+<#RdJFI-k4R46*&(n`HYd2ZOXEU~qRUMG&$tNw#*bX279 z#+8&HqqNi}Gv^8mC4!Pg(7m#utmc!E>gr;hY}n^#Hy4{n{HGD|Bz8(NuEc5eMZVL` zCL9VhwY?WfS2Wr*>%gp`i`oRok|&2txNT9J`r5+4mZesR`1Rac@ls@+%OFm+RXDj_ z50H^MYry`zdbqs5Kp?FEQE7wwPuHz<$g$@UW0|Ry`mE02lE_-n1yzXT!K3!Dy;~6} z+q;}0Z0dydaI|BKKFQo$*_(tz&R9If>qb^=R1PL&F4_(pSJe8#nddO&_Hvb|K|IiG zD$bmX>A$d8vRI3o_hk;h7$S)k;ZF@hQPgJR(@17F=kXj|Gjug# zVrVbhD*EgbUv7@Sbi$)AY-CAaGN8Q0+#MsTPn=P*d5Id#d8u>qg*Wf9usyHv*SN0d z20cHEsa-iebE|x>1?da>$IThuwI<&ep^XmenH$d-6Zg4u;t*>74?7AK<#x^M0UAlA zGRrfOTnS2_YNb3{j1alYXD($7{`8Dixtz%GE1hrF$_HTB6%+ug+J=Qh+Boao;_Io{wfpI3sc|*3g|C=jB{nr$AkP*8*WxzqqdoOyUmP1D2dD%6V$|s$jXGYv96b_A3FSyMM@5~bh&p%3R^bA7#F`u-GXgH&g zt${2nqU8+{_i<-kC+SwZ93K7!S7!EyOnW=`^|R`qpLg|Uv-)jop$X3GH;TUB&|52T zbDn>%e~iw}G1Brj*4^x%)O4>8i6w5|H7$O!&R)wqULhU|IPj2&iBF>!(L$_ z_a4R6c`G27i#A1#bON&DN4cdvePBvM^{^q zJ|!Uqavw(udl;5~Bv&#GpQa^<2xYS5rc`=79??nWV(;V*MY}g>q-xZ$Zs{`}ZY|Xu zejW6>=T{FBEXQa9*p#s<$au|CHSIeDqJsw`{GPp*Cuq$-{&M#|D|0%RJyZdF-(KP~ zjv@dnw%htir1fz4g7%J9E?Z$-5~YJ5e#O{{GD2Z9H3ZusYv5eV$}oc{ag;ij*~3Wt z#q-n4xb?Pd@j+X6pcuwwt8NT3n9Uhz%9{2L*9G&ITs1nle&wG(=hY>G* zX_(1;L)OauzBo6Ro1yaa${O3ulAio6_DT9p;y-p%_GljCa{Q>`;s3K)Q6d&3ENmE< z52EDvZO(MlMSh20%%MBpw-L(UXm$NbSLY%(M@XBBfNM&=`h0GGr?>G-gt3%=Y4*ZS zeb_xCg$a+aLVs+8jYWw3npN7Q7yuCA9uBvBzjrm`5HXpmTNa)zvCDZM{^(uY_u|i8 z!X5EjpYC=Y1dYEI%YTNBiBFF`v7y=FJO8nA@f1{heWbxt_|*t=?o6eKCf<}4N&P3C zn$PW!T*W^1X(~<|))^H?DU3N3G&wsT^n{diZ2+Apxg{9f3lr?vyIyNS3GeAUPK_ii zCa&~S@!qS@rue?}oANy-G^|w^3feX*^sQFajg2d)P(h1%GA3e<*dsTfllr1J+8vW? zjUx59#8-92vH0XHpq4QLO56@4UQIXJ_`4}SPUqpHRWx#W%xId_9~luPsqn=43-6D= zIJg(qrE~ra?2&J4gkv1c-SEe|6l)BY-^G0Tnfka>Bo|pzG%7@3kN3REdG7X4qKWU{ zMDNvx>3Fx;z?Ge+Y%;u8>#r-Sj_W^gkMM8+yGaXz>LnV5hOY?_WyerCR!$}FSuKre zKckeebnu&7!1KUS%J3D9upM=EfAG$ByyBaC(Q9=?K`tCy=_A)8$~YS=L9;XPH2LDn z6+3~snpX9_RW;%DGQZ_SHYiPv#*Cck!#fBU16Ov8OXC5lGRsXmso$6KMX%5<^ALg# z{(laIW^9Bu?facmoYQm`S}A+WDAU{J!Yg zfyL#nk&aO6?aaTMf0wEC_*MSe?;VjLj}Yr3cR?qrZ_lIVRy+nJ{8Wli&&?J^bjq%% zK|E$-9$wz!3&H(GzYPsdUiA)!-J$NCk_r;omN{Tsy=dK*;jyOXyF_A}QOKeT`U!W# zyBRnK3kL5G)4rsPYoj7Bu9MeG-GO60x~rRhru=>7?m+_IcompYzhXsj^QEb{c zcvkCU8k`S$Co4YRQ-5o^r0JLF<`X4Jm$=6jt+jfz)pa_OGiipRC=(L3J725|WerJ$ zr+>?AR95$FJi_ysTYgMJ3A!;co5uPa`i?0G1%mGVWvXUs5j|sMp`EV?4OK740h-X! zZ6+z}P{2i{kFS2!#&U`az?}3AP2;IX=Nfw)J`FtFdW*tgRU;eqX)NMASy$Z76u#lS za#j`x!i1wo_Q|uV>dDG9bL|wpeBl?>ugAca^G-z@0g6s{(RfWp8=ZqE z4+$5U&qp&`t>GzNFAeu4&t8R!DsUC(&2PmnIn)w86!riN%q5m1gqBhT8!2eau?0pr z%{OEHX%1Fo=ZIfjHAO?+tMq5ZZbjmU930&w@$5saUoh&)>S`5DUz=YJAC?@l!s)b0 z-f3rXebF-ij^yi!NGB&(J)C-wS!rl1nnq3W{x)&t2-{lDREclbyc^e%S{itNNq#=_ zWQLa?gI24s-6-jCvX?sSujm&VxAI+U@#$IIlIFzRJ2IYsdueQg3VuweHr9&c84c<_ zy6yM2517A4rpZju?e$A1x5A57ZcXf8I8HaD%zvi{ye2AF9c1)7RM=n`Rr9r;^`z7= z3DlI_x=`lE6oX)~{$`}$DFvgTS7->Qef5W!9x)AQ$fr$-)9gIiq*n5-v`tBnE94}3 z3ar1{*-RgdG;z3cyT^MGEmzFfDf%UO3!v6bx==eJfN&MbN4Cz%gRguZ*1fNZs%3uP zUbjV6Aj1W8&QTlNG2d5R$ojVryE8p>AlD7ll>U{I)sm@n9~qS3|FZ1@rGJ>rQ|ZuZ zzxQ&nTjyN;h@PsoSBkf%zaA6##MJBMXXv~w`$3o{;j;$Hb6)PG2_P3_MtAo7K@T%T z{q&?1s?XtC0Y5@ySECAY5Auhid)`tOJ`dTt=Cs4Xack^6WMwutpjG`6C@(lxwIIoqH5=}8$AM$$RtWuo#> zN6bvr*yoM)l8sHs$zVXJ6-c#7)K>LWEdtYJjn|0{M%@pX+O4`VMBbZxY2ChJiE(G0 zZ)hMEu2bId$&{N$mU2>3g2&2>n2ylug)jn@FN7MW7-|4Iv0CBO>H8I{=oR}`{!g83f9dk+=(_`mlr!30X)l6PJB|NFr~fRZk4!-7x# zQ{n&TTTA7j>LyDzLH~a&Y=nA3)8|G*@^M7J2>}LJDRTm_Imy64Q{Wmz0j;QMXg@pj zDSqS2b0v?K!)x7aa}k>rhFIav@^yL8hXo5qM4*(frv>a*ju_+vm?$vEzy04*Iqu3~ z;l*=z?J1+I-He{!aUR9K0Rln*6hy}d=4zG?5f`|Gf;m+F-cg;OUnm;~YMr71C8(f5 zGHh@(=X3Gnb$o+?8D{Cv-Cru7o08qQK?in&zfz zaYQO_{=_5O1ThMJdUs8xPWV#B(^^O^??3SuZ*Q!Dw3u~lv&;`6PZC()Tolv@Q8}KK zB?7Q;9_k5gBh3PNhLZcTh9~;ZHL5J>giJ$(G|ig1vzp$Wzbeb9QimW;_>P)}o{FxT z6+eF7NTpt7Ck$I~-Pasl9CV}5YJU52cC<6)zVjq5nHm-M<9JlVh0hA?#9F*#(s3aw z0H#91dO`$=B?E?4A<^B(gDl8_&Qcy%OODWIV0y8CkSO7KJ;w5_`sRjrAa-UfX%V~b zb3wp7FijE0m-h=-_8UP>wdK1b=NS>U%u!j7=Ny~9B2zs7UtbQkf zXCS}|@o$h$9f~0U4QhA?-43e#=LkdL=h>TbvH0lpTIk{QGuqtzzzB^&QcvKfZ}kwR z-29c{pA(8G31ClNENC6|WrYH`b{HU1)1XA2jRPBAO8U1QQGAytIJa47WJTy5N?Y?e zD1seF>kqz`Q#so88gphBelT4!qwROugvUxwjZY8YnfD9&^do>fBZ$HrHUL5itSJ~C zs|5zszzS{U=39~9#(Z1EPvcIE#JC1#s6j?nYh}6=5%B$8C54w;k_E2M31MJhN__o( zWbx_t8Fv-iN_Qx>WaaXDjVl(D>sBuQ9hbOpDeD`jgE)b@g-FrGWY&vbN3}aJqI$iI z)`^^ag3g)vPTNekL~2|>0JUWCNtDB?@R_xOgfJ%q1FAbJ2A|0Y5KGJ810!^-3S z$0edzxKh!d{(k%A21RO2mKq1jQye0qC`gSCGb}8ufq?;S?Z4{XFQ)qWoLbE?f+{G0 z+d|&l76gyc0^A6SkP}U{Tc%ipmX2&K4!fL5`2She(1Ygm3VYW69V9A*wAR1REa}huik?xT6-$UW)2aq!4wom zzZMGdDWpQf!cNyaD%Fayk@__1Km7!LUtV4=hK+YSr7np53j@?|Q4qkLCE*EM5J9}} zp;Lz?qcI1tny4uA=z}uPSEoi`Sa(G&$BvX5@&HV z65>*7!|BhBPuj}!`}@DfyeNWy)kZmdE z9IF)ON9UtK4nP?Q`cANeCX_$`5fqr)*<_J5C90K~T!qn~y4++T1|=yaagpyq%!^=V zM$B7OUJ#QdDi+>n-q!HUgXX12trAU5D}@>K(UHoYm=jGG@epN_O9Tn6AHxxDCTez< z4N>_G7Bm4*7IQVvGZH0VKwKbkQ-h6JECVrw_7h{B3L~SV?^W?nSu*tZv-9@H8i$1` zFY|~YQc)PCCB<{k-*5=0j_+MyZDAU)rVg4CR>zVDd!J$wP)M!V^M#G(?FQ#p(F@_jbBY09NR+^8b3fRs(wo>MRXIah?n zw)e!K)j}rso$dPL9UJpi$eh?!M+aXpfn_slz$#CM87V4*gN55qIrMyEW?RD$+u_CZ zQpB~{U}pD~)JNIWHs8+#H<1QI7NrN?sBqP!QSb-|F@cydbIuP$_X9xBE|?KuVR-^I z6Kv#FYan7J1OoQ$YywKD2#&{ILV_5n9?EL`FDN`Ly|Lz%y|n~tpFImh6?-)LQbSWI z+bu(R9gK4)LGH9x8Qy<1Chc6kkg2ke~W=oB~d#y>n9a# z6Y5ga;zlxXUhHO$~zF4gf&VNu#24I@l2|Y;JFfhXue@Wfdr^RNpY9=`@j4gxX z*^KFtqPiD!%q6y+$`BMujF>TaD7M{NBUDXqh6s6FgR41mx7Z$xPzb`3s^!vyg{(2( zkn{gA7@ahKuNB1{7H+v{2$fd%K~&D?2?Bf~taHhzMU4(et}cy0Aq}gf@Nc~XKb>Ah ze|2dGv7xd(kHdX0jD4z~ylFai3p1E6<@z`>IJ8Y}B!EJD@D~}fU=Ac0yBcU%_kd2h zx1=_}!&!-$;n}T1O^cz(oX9~il3a&5;`#;oL=fhCY0D+{h3`RzByH>>EM7we5o8-~5Lob^;loDE@$lEtP3?mxkGD9W?cwRXL*d ze~bK~0G}B24SMFI1yb<%&SPQJzDtW;lK0Og{nW}IegW@viF1cA_f^XuKsGxFA{c`@E2BU+c!7Ro^20>=DkaWXpZBLfwnLIb2k4Qbp5oFS0Z zAF1MWim2Jmk2sM)YFNm^mqqa$fb=iwKOXRz*I90C^DD64_I^tqKKn3$#b}n?Vo1Uv z_at*o6)!z(4A%4)g}gaYa1abDbU-@jS2AbRET>qs%4xhbm}4IWt)C(;_cK03Ap{EQ ze`W!k0l2y|&5^as^NNmPFiRF1i!>aiO&r+g{%YaAce`}@fs`efI0rUh6foZ8E*tqpG^yw@Ej$N#kL$Z>X-#}5lIl_Ji zPOYMOtOLYIK>He~*68p4fQ44X-Znc*^|^Ld$dsg7@CZyn8$=KyX@})NHEs~yn{qYu zzyh)_XpO9{o}aCBsKc9h%hRRez%mXTK}@2?o}gdTc;&pMp1ro!dI0*?cM0p^kM6`L zilYdad8XvenSx!eT^31hvIX5(3(ri4AiROzf*Sjr z;TVh_;gLT+bEf^K&r!>Z?#^HMcBFFR9e+J~Qk7Z0tLYM{R0RB_8_y9vnq*XiQx`SP ze#3E#zY{B3)PK)C!c_w^2sq=?ied57QE2%hnNo+EiS0p5rc6$Vfx>3CBbK}s`Bcob z^4VqfK1)b>i={F+3eW+rZ>3mvfVlI=aQ{B*Y8{p)II`;4Xs`a_>`yQi{s0mcG<_=@ zeeR!Q;f|L-V(jlvz)TQm70kUAQr4nntLDW9=%?}4TUC0;0fi1U;`bMR4VredG=1vb zBz30>rcA?_?6wq6B@2=4dQz#1;o+eSjydxyIvUDO3a18BFqs%MGgJYTtn=ZG1HX*q z^{G((b!(0JT!6v1N!2tgNlHENol64dn?K!O$#e2FfwVuFczsbZ5e5b(64%<42`Weo zX|3q(Z_GCyAPfFF+H6DOpOuozFciH@NMwQ^$9Zn*z(9x@$tZ;M5Uu6LILG zKB~uE!MABphd9U0VRPamz?90r9q|RoCQsSF3Zqh?GW6W!KuC%bt$LWuUWYcBtM(x;Zsl2684h2XtE}^>a)J%+i61D`+& zhvRI-4FE`>mR4F|&s2?^PjX=hj8^ z=Ymy}FvZwR>y^&Ma-g|CsYQHUzPN{BD&a7Jo*DX{R2fK!H)+QJ)X+vY?1pu9%q!=< z|2b)Sc&4UNTINlZvIR~RZaLgvr1Z_V4B8BEOKF&y6?*adWK8Ey z*fVEuNtr7+pi`H3oDv3JC0%vf=FENToy3=RZ*8rU z^sM($o>b`@UwoJ@%iU*)XWYxHWNuXzP4xUP@kx~aM7`jJn!t+D>*15IMTMxwtx*j7th&MoVAK)w40%pyI?>EeGjK(R6rZu)TO+$bdv&L}Ya`?B5kLowE zP!wUsZ54ID%cKllok$x!!sJUYXTcQtr@pR(AxN^4gBbsWc8aAR3T+xe|9K&96l5t$cJJ%>>s{C2r!zzYtjP(P5{)XSGla))I%zQ5SO^^FFC^ry2k zUMUQ{B!iY!Omg!6PA4vvaQ6Ih4Y9(q2N3f*=wU6jZEI`mKM)>_*EPl?7Jo`bzAiq&VbGsy2DU91Gq>edHqf zqCVF+c&K4RHu5x~Y;s7Y2b?0K@)83Zz15BKhiEeC;7_uQN(Puon%nd$xo%Tcf3^rb zcqU3uU0bq>PFJd(p&S2l0Jb2K2K=MH8oete z+m45Sk;nWGzR;)s>dh7I!pnK*+vydRCj`{BsWc&m+VA8aBZ+k_n9zo0QGdwDr|QoV zLgXaE2bFw=nWABqYGRgr_a97LY?DX^*DyN72aJjeo?rxE(?yLxz(Abp$SHwy;7xf8 z-W@X2^2g1X!iP^8a$|D$z*P=A!Cg?)Y-7E+QZP7?%k^N8m?5*eAK7P?)>FLqX%?SRrYSX>)#5S_tJuXY$}i55Rk7 zgNPj##_YS?X}jl4`bz^!4Y+f;AkY+FYyoks!l&frVfePC46OT@$+kYhi1uTwnP5~F z0*KuL#A8%2Wf{AMv*wYk>iVGS$em+Myuk_&d7al8ciP+439fx(i60tvNNN^3W z*qv)%thY!HLLslJc=H1$drK5Ba};2qPbNWfQFP?|YC0YZ=aRBxWW?i4rBrCx$;9$m zwY({wjM90<1J7p)gNi@oa0C&TM`~DiG6kvH?@NuIB*QW(OeWb?^>uV!gP1g3%eODG zPm~mA@$?YHV#f|OQ|%8w&xHbQ_Aby5N~@)@!SZCHBV=wsy%sfwc^itP_;EV@x?8#) zF1guOd5WqJaS9NHKss5P8srb1TFuqc)$&ka;yObVl|>6?7f5d2*wI6dD1twr(+UKH z#gU=45f0sDqcoc`n&N1+r=nq6+d=|>n(cJhkT&SP;0Kwci7L@H95<0QNCIYZVPWCx z&Cp3zZCcs2EymJYT_g)wg9Q-}dkr7PzVR`vg3J+lZ12KI-WzpnbUDogJgGI$f|R)_ zy%0WERBoM282cA#5*^!x3Hz6ZfTW4-S^{9h8nFSo|IxaMuf2A|h;OpJiD2!<=T7?;@9OiD zI~r!?sZWFY&O*D-e5?UXj&T>G3ZQ!@19XX?HcnO|;is0qp(k^KPN0g%Qf_OazgV8piY`FTBrZ?$N(rTIr_Pe%*c_3U#S*t6;P`8xl*m&e5lzsJc0 zW>FLJD)NAr0N>i#-}XyjtzbN2jJLqaf;!q*KcfJDLg*g(+;5arJ!NS2wAcL;iOP@F z1efc0PEpF&P-02xVcl={6+9(s90Jm}PhD25a4z42DsgE!JE`jbbc=zPqo01C`IWf)KJbx}I?Oo_K*41C`|JHI)SBZB zsQgO_Sx5lR$8ONX=us)``nPdgI>zT4SC3DolS8>n;J#zj%-|awr??GgTcdnCN_?5o{@b{{6-d$#=2# zE23n6zx~<8z(0TH)mjX8zl(j@F;Y>A?I_sDIQ{qfJpSwq9AS#IKVF}ibWN%@p7k5` zds|q@c9p$j(ZFAu*Q&$Yb!h>T7MF-5!Qoak63Ws;7t34wTZkJ#S1HI4f5K!{4Ii<)w3j{|be^IAU*? z(7i&P5IRMBT?;l7n!#(>cI!<8INm<>8hLn8+$8za< zLbaS+-3xMGu%EZ-go$z%-Wd^MiW)D1TE4b$lVp6-4vT!NS4p84ig3T0wfMe|jEOit zIkAhQI=u*aoEsCL^o{u$g1_Rc$Hp!V++0`YEp7kEAeNCV$z`wj>gB4JSG zGW4giger{Q{a$n&6S<PEC;k-MJo(pUD`_r!FtajXWE&QntZ@1MMd(}i6uOHjnN zuQ2N!=T;T%|DK-Y+_+qPz8W8jW?<0riR-hbunm6goju8J<+mL(|8R#2!lmsrt-)oj z`$_{S3m8UqUvD}w-)N))kh&OQSFLyVxm$FoX&(whY?@YBaT9m$Uti`t>7!n9$3t|P zxvJ|LSOvj@Jv+eGVjj_5+}t1JDN7K4iXj4I*sjSayi>r2DqW%>Uiyp}IQW>in5FvX zu-3q$71d|m#c~(!YQDlHTtFqb=`K_7b9=a7`Q_W=>a8W-YvhZ_i-5mahN@lONA%Rg z2Xwz9;b*_E9zqmi41)~EB*!lo03BTk5-Kn&_=fQfnILFS)Ho0-Tk7@|8yXMbqW(~p zRCg%MDgOT{B1fn`Uk>zI&0~~-t7S&wHV?zDsOB(&A=y&Oaxxcj*XL&*6(Y|+50(97 zftdRJ&-ZTrwr4p7_g0`#jo&fb&-a$Yw88wX`l`;|8ya6`v}w`fJz>(ap(9JMbSVM!EOBlMJR9OoC5-# zeHV+?Fqi`Bo#WvFhOmN`wkq#cLDL-1+n-(v$>D2}YBKB-6~+1c|(FMWWd zX>o~$fZc|25*_PW{l0TVZzcRFTaGI1R%VSUhb}B!I;@n+NCo{V*Sf$Z!B?e{ zY=$bhiMYc5tvm+S`132=j(9|;L++Cn?YF+czfEN-gqr)v5FHF4W|_JhJ((WohDWG& zF#=I=D2p@~(iAASB+u{keLe0>i!`%X_r{I|=fQBX!L`TYO204x zu`6$h2k2r#!3eF{$I0_B9&fQpIju-U*>Ocn%}Yq}0_@VNyk$ zTTwMGKmXpl2NuJ@%iG%bBlrgamqP7ua9D`?hBTNWY}$k~G0L7c>R<9d95G-uyUzFK z8dzaOxV#v9+{@tYU=(P^c#*$y=S$ZdytHoRuXAPDm&OEOTevp~-Y-cSkh^xM0Y6!C zARCNKl9C_1&*R?=3q(Q+8wE`7hTyrx6E%2nbTZ>&IWu_Re_<(m_*DU3oscD2N}gfX zk~7m0S&5|uP+Jqf$qGT|4#$~yML>PHj?huGptswOIx$k5c3uv=Zf#!d#3F}azXetw zdsz!sJG=QxpkNkSFeGX)5?AW7;Ldw(_ai@`$+id^L{o<*2phC*BUiZ{FZAu)wbk3f zL4Ya`sOwUDVp9JA_4i63(df1kU*e*~u?v2o-t0Dn3#en>66VOfN%Y+WzA?f2ks64YIk9EyPA zJWEYO4RD%Sy9A{oY2<=}5OWY8hn&jtiXmE?H~&>ah63hAuvj}JR#DI3i0G3dWdhK! zn!9(9{wSTPz!>!YiHK)^f)%3kro_NuzN02VNT$J`4ss!e za6!m{;#*tF^VoEklOa8#kA_z_xf$_6mb_{V*lju2nWoJcuQgXjjMR$EF{jxC!M3M} zkW=lf076QIUg|Cnb)u3NT(UChD3%v@W!um9SGfv=6jB3r_Mg>XMg3kyMPj6|E`lio z!pC=}yRGDFk$>_k`dDUNJO2ByipiBZsgX@R{q$EVZTY0;rO;)(z z2q4Qv+98F1Jx`VPn)OO`hwrKpfp!tdUfSh7A^0z;)J3Q`5&F2mk>5L!b(CoK@4^d1N!?@tP;zYW?F-bQon zM_Zb3*So=}5>c4f>&oKT@Vec) zy5G7=S5X3rT{v6dbR%s3@^^*%ja-Svp4B$f>qo(+lpH*I$+ny&8D{LLyL{9GL2hI~ z{_6(Lk7dL%TfS-4zF_fg=n9E%Yb)o=0ZI$(oXWIAhIx43{ zTPaSKhxosOP`R&U;v)B*^@JtwS0U1P3Hi;|_x6Gua{FIhfqqc-t=aevUDO~DqJW(9 z&j~Gapy~(EqJR~L1^NfQco89{?^vu@T@DjPK9d2IblwQRT>11rf|HgQKvd-R%avAD zANM;aIw#KJr*}}$k>hYB)WftYW3S6iLZk}%hPMEzYDr`w7e5tWBOBO{2TelQ;*9pbA4v)*6ioh7rz!sXpxv)6 z-Xk7V2|ox61DXURzg>1*S*Kb&Adv8hVD0J_|6n|!o4om=vE!d3GeEEmixwx1qvNFH z{E$N)kg?#@*i#U@dy32>h|d!47T2oSG-%ANGHiz;AkK`Ph~S6t zHSy$$cjMnCBK~N9S6)|437L;Y!~@ zVSf8j+d6H_fzZr*;hK&s%#jH6pp4Q7LU`LgRPyapQBnS+EY_h8iX*H`e@W9&?x|VS5@_PA;CVgKseYp3i3m{ zMc&81Jue6}KY(+ft~t03j+war2QWKE!*^1cuns9Yt^-M3lc)A>n3yK>W@9&9Wcp-J z)FIVUsO8zZKu0rm2uP?VR46^66kG8P^6~|f)MA6Y=e%yzUdI`0NGaFwZIiaqF%hc^ zn)0k+!+RHvFpm3FkcA&_(6`YUv-roQO`u>ApOlo82n%Qc1aV1upkkC&S`{JZO)B|# zm>Qy36FXDX-Pe6X2TFq^+fRX%fEWb$F>EC~0Pww()pnb9!08Li2&>4;rLk>i-LkGbn01gI4fK5GZG(8f@-w0{x3_f5nDJI321Kl zLtyOc9>{_KMHy(HY8PtjqiHAq3S_IAl_s9pw7h)|gU!!|AyCfB!nK~H26(8RO%F@c z+IK(xE2qD+qIKi~O1OAkk>CMXP9M;Uy}Qb>;SAALm$OW9940m31!urhWZUA^0ujI$ z+>G5|m{NcEMxHvP{fAyh7X`XSW$1ad;IXi)PGOCg8a2eK0BRK=7T&DufC~VU)19^B zz&mV~@YvKpL1IWy!j4Xgk0Z5tJw~5@pE=C{7Uni$sEK%7``(vj zvuYJ$wz#m-I4)r-z>!=mAz}yS;Pdn@c>A}3oC<-I|4z7W_#|Ygezqw8<>4kf8Q7cy5s^u30LJTP77b^*nJD;8jPMo6-ha z%ve%HtsHhNUWg6Ay@8QCVCvagVU%hYkn{m4GM_^A#d#`mwVK8^O=Es<;PXUP*+%# z+lpYdzR2%O8yN+)prPis0v)}borz&mpYhI8=sw=Q6ao90lPVFD~@&@cJeuCY%upj0rbDm-_1c z!v~)lPERJ{UR!P=0C>Q8y$ijlf6)|SfZ~l2M2_p_D&@4o6$^^A7jn$6n6dmiHT%3d zckFkvoSqlydw-SUIlh6@K@m))U5xpoU6Kc(qU}}pzM1RiZN$Anjhl~wfnJu^LBZCZ zy~iLIT%>tDOlHSih6vCJ8PeH_Q}-qAinKhn^}E?j_gZP&Ew|T)Z82O0n$fxnDFV7I z7;vuK?Q7rNTg5$@c~8`#SYQKYDWEQ;0{8{mS^0IXM(+=i7o#5eQkLM%>UH}lzZgd` z4P^gA5#iwJE6z9kWByCz_D_9QU`qn*+Nn#ZL~_DVs>9X%1(HB(T1k-dsbAQij%F`+ z%)>{ANA#?(r`K0~8XsKC13XI$xzz~XRiM_BIlGT>^e0u@eu{%X0cjCzoX@_#~Q)!x|jNJcMqNF?=J#S z!WZt8+`^D)N-D~7-c#y)cs8h-4>eE%=zo3#K zvo)}>zVoq~op|ZkUvoLk84^0K<58~Nf5rfl8S)=1xiX(jK z++5?W7$Lu!Km9s8YN3i)m*ZE~d^00-aK`Sjd`sq4 z+gj@7ZYrj)e4YNgF!+`;0s%EUb|in;LS1EjUQ<&$19)VVS@`|quOH1VvKyn)VAO^= z!{0N%fQJWIRFB`MXQn3ayH3A4ck-*~c>0gvQ^S_*H7fv*kYKeUDXx=Q3P= z$r!Z#3WN#`M6qm3{?PukKtBx=9P%nyakKx+ zNv>o_L_t#K-cVI?C*23jh&($cCbq2hr>3T4Gvn`bG2NKY4+LJE5z$How`u)__gvED z?QC+9*2`6m%6L9%dRJdswhobL>V0pn6l26o67NIq!wk`nP!{32s48pn_utcq6_cfC zC-064-OdBgh%gi%ViS)sF|v$|n%C(I8F`m`4FS)V4=XN2bWfE;1}c=*7hWNGdb5jd zQ>vcN3inM0=66r0rxg|+iBaLGD{!Z#YVl(HFbg3gGheZ>JV)ZH!8~s|@YaQ`5YSc8 z({q#yS!WS6x=u?{Dtz4OOJ2{9j*FBNVc>7eomNxVzdu&9n9ow0kNWtka{sFTFETvk zSKP~$vdCA|S4F!vSw=Gt11Yedhc?p~D?R;yl4$HrNx~3((2?UybN*8!+-UCV(b@f? z!ACViku=Aev&5-xboB@aM){JA)PqrpL_l9?_&Htt_mCAgN8klvagl5X*T9-r@jY69 zl0Th{vTR&<_}$4rcVOrVn4dGga-zru{^0`vX*_zT0rQMJ;DQkUF6X!ULJDd(=JTZ~ z(l%0A=AbBAF|+E2kZTWjcf71YN;87(sX*`Yo79-=|2(YyJf104z+j3kQYV0cl*!2` zOk9PVlA@lFuR;UYc3BNtFR1z%<+4Jt1s~BDSPHcJo@_+ zHx%{xuU|(=)SZ+xH&hwKER`{*o{z+y+uF;_BD=g?(MN{VX+n~^qOnID3lkDxf^H8o z&bC*S$4Du*>}C!?7VG0S4h_2}{GBpS-+yIQs;N55Fr=MqEQW^ZUGDKIDFbhUiQE(!ciMSw5HU=8P_SKASJ3@Pe|esQ=wSR= z-+8lkQ*%Y_b$byjY8I0StJTv;7XGvYxv&EZm^4cR#&sqYD4o~13S;5SX;0-p@zuHB z6u?f$b`!K-?j<)4d`gQF8Ey}UmGS#=!9bZPVlL>G?N+p6D~dlMOOGs(B))K`@vq)#%(d(HS} zhqEpwcW5<}t9AdlRLDkSYqW>85h>Y0=zm&Kr}qZO7io{gCDr>qGm|m?$Rvt9R^ufY z`|P{wRXmGu$N8P17`;SKNlfXqPNwFE#C;5z4`gh2+Cs-!P6Z0_BF)+_+*R{PsmbPJ zx$wRS2@Ut{n&h#Xc=j$luW{er>v*#P@@>`9@{cF(?^=>x$fH#`5^}aQZ+@Rsxg$+A zHj|mQ{C3$a%Psj$f3UEkq)=9#d&G;5Y5pmTpS9-1lKboFmqf|Ei`@m; zJmLJNvz@2YRMWk{r+7bpoR~tJPaqfxdm-#(Qd(xe{}b0BHGrpf@uTl?=&H4k z&YvSkpZ$&EZ+~_zDK2C(H#ad@ryJShguiw-SO{a_{!_q@I1$9^OesM824=o)r=&;x zsr#v+=t@iA{=!Cc^Yu*2O-|{|!kt!Gn@P%}aS{#j9@at4!zl&7{7tEXz+Sq7$9~b} zL{^kHKZou+?zf$8vIoR3@gZKHCbMsj8Z7 ziz$!Y(B)!kLAOmwW!V>KOf3>c(k7`AXjXl_Qex|&1cf~rKAvxz08tk)SD8tDQ&~As z61BcdC4vNsfIlLNUdL?&N(F+y1{K_mwBwo!cFXbV$IOJrcVEN-L?~9sB1p+`dvafQ ziY_brbwA}ky=A!0foC6wzqt6yEqajbktwX+`0n*l5ycNQ-3x(b@0OtJ3WB8XjGDi3 z(kL<_jvNbk4caAR%dhMQpx}QX^W!4bqU}V>7kSO_&*-2x%A7_D4TGx5jTNV=8kRoq`rOp_BPUexLZ@UtZ2Mkd={Ws3i}| zt9<Xab$nAqZZOChW;3&FQZ-%5E+^8{dod@jc+j9x(8hbeL*d&Y>X4k4#O;amsVKnn z$T>>0fn8_be!{~bA%E_BOX*qFk6B`z_UtnatSQXF+wj24g8&)%&9_4b*wmk!G>rKP z@gr$luHU9A`Txm1vc;|5)w4D6)7^CL=k$465|iYu zzSR4V@d8IQ9~4%}!af!oDSmdgJ9C_CS5AD@O{Sgpet2$nSr{d)&ct_J>vBRz29E7| zYyU^pu;e5;)y_@7&%9dXkI42g4ntGc;_#NQG3Ml2WI~UbEA^^G;+re?InADeG5Nkx zD9ZeFX(o$ZS8ox=!J5t8Uw5aiJxSO6m^=mH_t)ikTh%{$yGQm|mSeNCa1Tc3?WwWe zr)ZyKV)ttG33|-P)aP6g5EA~xeks#kY@BLb?Iq@W#2(|QBKygC&HYQomvW~>bKPQ9 zD7RNW!}OIq%D0S;$d}G3<3>UasLrLOcIvCzW3P1*5=}F2GJbup{&>A0c3C!`Lxj-< z|>C=&m(K5}WRa$?aI!yH&`Q zyCXjAr0g$$J6HLfph?`vLvUuPIabiO;#WzeYFvM{3wvybAub1#?YG&~UNM>TWtKi1 zGr1|ahAz4E1{}zcxE(&HjU+k^@VaatOT2!x%WijH8sm~1aZ5o)=XE5HVYB&=bN4hF zlnm`)Ay;J%NviBD=2Zw;tm}w~x;Z}|!cV(cG-$B^uG5@Gs|9gS$(cmmxlVpw_U999hO(e-`yF1cq1r4k z*ph|iTX%A^Efkhok?BzF%?*+2J48svFa1Kcst_5BwN{lMkh6P3sp7eK`Z`aJ84sNr z*Og2uVYbojvfX;Hc2#Dk$sQ|HrPK2wEZgL*z+(!s5BJAbK7uE!GfY3#p5KnqL)5E8 ze~mUp#$u%Oi+fm6sF{bAFMWu`4SX+BZ%Wm*ZoMF0Byb~XbsL_x?7BQUgKlmAdO$iU zD_fLPdBcQba^!YG{L;&q!ZyQZO*l{^DO^3lqUzQY4mH0T66H!I4&|7Fn^PXI_y&pS z%?{6h#-%9t4OJ>RqtG(Wj0n$mbSfunms8V}0jI0no)YrBR~ zs9l>jNO^Bty8FqWKFzR>Yi9Vx_Xzj?Y^q&^V1zTGoqBZYJ&NXqlVn=3If!C#7qO*U( zV>KnmS5!#NUt)gQ-rUKkQF$rtF=cshDOaDpYQ+HkO*?`M!zN7Pt}rZZ&^LDQVJDuR&nB-;11$sb@-B zC7V&@5n)=f-Tt_-4dsd_hU)pm*h-z*RaDB%9{oyd_YdWD#>ec6mCC*5-x^8VZOGnb zFq>0Pc%oEK0WJ;A>qP44kb6-4(U4JDEt7U@mEN_upG>NFe(I}Dj3!L^yp``e7sAB|f)#ktl7`c8~Gf-J#bGN=A5B>VP#V)}NanfwV0<6bn=)wz)$3$AL=) z7^epb?GZj-SGhf2+6KIi;wKA}jk|ia)Ya=vBc52?sJe4*@oMgu4Zw1AWladXB#c2&sBxx6vc10D?jxUZ+3l=8Wz%dkjwQYPs zGnf&r*;Y?r=*Hm&(U$&*?8?@Qw({-)F{wl1&u?_JGjlah%5-Y4isqZHpDI_^e4n%H z)p)+$J>SsM!1&$wpgLfuR;&aY*X>&btq`uchgHLmf;8o|Yc zs{g(G!D_zLOd0daHh#56W{P}XO1Z+cFa3hw%IMxg%a98FQ1j8gLiZhm0nFBCvoe-~ zT>MJ@*6n)c*ukY6zh@M>fOL?73 zU{FmA-fuzZsz@!OoguoHN&W1V#4UdPU3i`nIXBS5gQ{Oj+#ALLe-Ba|_;}(87aE*n zXOBiJ-#Rgvpxhnz^9LLSbXWcG`Sjj9_I?wbBHNlgza=`!<2V<)9G#-65IG_L)N;}+ zTANN^^y#(D2c_v2x5LOhdF;RgR`VZjaa-$!UFJ=AnFBueC*o#5t3LF>moE=5IJZ-U z16_#fj|VF!Jl-1njMpUT`PrQ*<6A1LqxEqwMGmg3T2&57!3A!x4r**-@3_1nSPiZKRNv*XKz?qydkAhCxmv! zkeq-eU#A$=7ZpXmXF=q{&FVtH@n~h(=;*7B2kcMo#@m&cP8OOks4vGNX@)Wm*>|1) zF6Sm=TzH^n1@8ZOULktE7j}1c?JN9&`IhH;U$*%|Jn+`pi}=2OWu`slK6`?F{@Ua& zAg3w>YvrA-Rb4#yek(2^(z;79_=7ib@1c6FLMo^MAmH^T(}?8vm3+$UNdn7 z?9JtsH{6{E-i;4rzU|X`fb;9~pCZyken{@kxCDJ@QArbqG{Y>Wfe0=I+2f=LIe2ABQz`c@^=15v*jVJEiVvMuVT%kz`J zZ4SPZo+|6EZ{RnZ4MDf;h9-vvX&7UB*JP(?D@<|1a`xmk zuea^rKZ7%#Q6#c!cCvRo-|ahwrwWzy*=cNKHz&2dWzUarp%Otf(43fJa+qV{_!ry8 z9H%oCztAO9Rj;_3X9kW8#m3na2jnNQYp#N+S~V}Pv19Z#J&4qn-k=pGZ)k{PI^vZ-Z){ z*&lpw=$_RrH+eNlmhPGHSW>eu`AnrjftF;GHLa=1w!@$G;{aQhY4-$5t1}$VgKU$R z7Op$1S(9eBT^oM7RUGlU8&km1}9IMZ*@laiX(*{A= z0J^Fq5>x;LU7H8Fsrgn_Q>FU(YzN;m1qg`vqY`^p5670Mok7LHk{Dy9-n*@+p*7cF zHA*=8yC3pvT=gn>_O;)4cxtEn>w2~a;(E1Q9b9*H?0%W*)zH0Sd}OXjSWNweq3BSI z=A8`n@a!xZl|?{+SW5pTM9idB9;RM0>KoHs)r3#IWkoEI8r4ai*xakY@?ME9n(R?@ z7sEC9`k*dhmCtWcn?0{VzC5qzCN;>7>*(ut-NkDJ%{P}Y?H_*S95*pf8R8*wK*y$!(DLb1n^ z)hSwM(M6$k68R88bQfWCmkkdeKR@%MDBhc13$EP;$q^o!g*7f8Y3b13uXUW4Bwafj z!x9HUiftwMkvj~0Hcw$J@WR^L7{cmdnqGylP50yX^C7v+(wcWqrC=j*?Jx*v)#E(T ztg$+rieXLW`BvSTrIaOo0Nd!XdClc8xLms99D7##a`=`W3tzK~Wz~xWg;DzhN8VaO zE4|cM&7+ghjmMXNhKJ3n^<#co?w7HA+a_Oc_`T=JZKOyNV|Bhi_iLiSc`5DVN6^Ri zQPf<67x#N+V$9gMIPP;<>IAp9ZuoOXB|@R;mQ);T*(5)>WMF2e`#g4hw4u4)g(0%a1}e#xU&%^G{IngT7}-tDyUyNb$AyL4C>gy=0ho|FS$ddHIK zN;N@+$djR-9tFPi>KBe@gW;LgwdUBCz!4>KN})Pqav?_i#u02j$N3a-w?p@L`8z}R zH$71u?0(sTcY(Lp@-1R6cVp4#K%!g7yy|K_2)JCJad=g+@Eo>vaA3_FCPTe-Fm(Tr z47Sei#dd`LCe)fOL(pwWiG%DN@Fe2Bnc51LcE-T*aG7s@=T7OYEfZ(eq!Z(ZeWL4w zYp$%UtfkWiG;Wb`@8nj3AE5G(V2wm}eK7z0UM?@!Hf@X9{0XOiRenBQN`KiNt37%o z6WsKR{yDp$C9d4NU(>bhfxFq(v!UTTO7Ni{gIA%Ypy!>m9Oms;rU8QGO_49};z4oq^kv3AM{nygutW8(h0RG#Kr6X^vc5eGsknx<^v%JGFrcTgf`7qh8 zt<})6BoKIaGdlW+W^S^;v*ER`Z(62P*S!2E9q32BN8z?RgCLQ=zVKWGw;RqxMVr#U zRK0NJ_Yi|pO%URd8&eaa%9dDhW$-Rlc6e&Mem_f8_LdsGUaCx^8~;d;rG}tehqZsw z&@V!fr4Lm!LBYW(cDVSIi=R97CW~KI=smpMJ70?_x{vEJ+G+Xa0NQV!fwT7?`X7TU z)|a+ngFpt;N|G?L$tyP!E-<+~{3$Lr!pkQ_Lbosr8>aWrq$LCqDqNA881oMgD`BK_ z%iftsOyzV$rfcV~3$yiQfy_Y<)})WYUu;wQyE2x3$l1?>`GqR7jiq%S{;dBQco5N0Ya@j-h4pD?kD=rB{*Yk$Y&{z@^X zLGb+Jr4NrXce=8}AWShB39KG3+Gsf6`vtd6@%x4QLw>Itjfs`tcFzqmY92w;$N1K= z&6`hCoxRe&up9l5flUopy?i<$B>qCXa}|Wk+t@qccntLP=9PMZf%k;Giu8#`-Xc!5 z=~Dr=dygy1*2mRoS1~RIGXzIKr{t0ul5tWt)-)BlMBZqd3+g!fdAd73#;zifJ zG5jUv>uF7sH>`J6i>o~Hi%_1MoBJ2b#267fqOoxwD zRgH@~2etZTV7EMCBF5x8yS~15PGgURI{__VtOpJEz>?{V`sTRh0>L;N!@( z6q<;x<@I%|^*Kf(32tFwjsqm_q%S%}*M3(MdcrT}>0K74KYEqs*UQo;zgp1th5;P- zbz6wnChz@nR<9NP7ka6Lo1edxx9JnxzW+qlpnGB1lQdw}-T3ks@~Oj9t84l7m+FBU z^oeF+3e*XvKTjt$gkqcwCTg&h-Ic$*pKvl{p1n&*r5aSi)L=@MHF*neJ{3euikj`8 zKjoT?D@L{$qs+BQPPFoddHDGYMr^Z(bnE1R7~!xpU31pRI4*`a#sH6$EuX9V$w>Rf zGhE87Qjd74eAp)Hkw{5sD!Jr~w*W3Qjl`Bq62kBRkTs-1a_p>*nElIu7ky!UQ!CW4 zV%59`V9e)<&4B@{CY=`B%!C1}2e}fAc>1UA5o-h=u51GWnhyr%75*M%Cu~ z2Kld1wr1=Tp}%dfxWb~ID_f?c)Tet|g4lnK3V!q<&OF7;!WAibgnAojj zvn2G)U(R$&;!|D2|E&dJu(gUbnXF&`ucizdf9J&}Kk)GI{2CbG+^FpT{0%hY=NIpuwblopNFP=H)yLZ; z7gy1XXM(bCp;%IL<_3UYKxH;7cLTCOJpF{dM++t4L|)v*lf=iutCjbzXuVblPUl3+=H) zjt)TgcCyW*z6Cd$Q-gm}EN>glsOSySOlIaS%fVWkRt=hJ<$%y(1j2H9iXlZ9GnyjZ9a z+rVZBQ^$Sm4|e@UN@N=vY?QSx&y@;rPo^mT7W^qnABu+{m*d4hvqZ@ZK2>4C!}*K- zXx@y13ZP{q2pKJ~mbM(0A6k>PowHICxL$b=hd$ujaMyD3fBw^D3GL6GIAsVO|C+nU zw@pGwf&;0h47!x7&N0@{49}EPLi;7e6hr1ZmIZhMb7G&ymX@_W!_VQU<>A_ z5G0sO6w+0U06}c};MYt!FkMUuOa#%W)t`1Y>1jUKDF?l{8FE6;RxB9&G5D>a(rw1e z8x=ySHUXwjfaLD!eUhYgUEV>g(SwFRsoy2-Cj%$$_Karos?>i8E!+HB9CwAtH4W!* zN61EJj$A%d&<_Q)>GYkG4MXpmPWWLj_kJ#35?nuoFDOU?%~UBSFIfAj*01cj@VjcB zTH@26lMa~Cml&0l1Il1g>bmM2>YF>()k;QvEG0CB{k)=NsGWR`Z7UiBDimlno@ytT z!_EMl;FCwXl}lgIInt=rAEg1C$7$iRSS|!UNg14cV3%HBR?xtZtitKn?EL%5H^g#E z@WOHy3Q3aGQNh0Syw!mxJ;v&c2H~%it-O#;{$+icMI6{DZtzk`N3Km_EXlhsVCoKo zk-p{5?O*-+0#^OBjkYfhIxvN>u6)2MSe^pv9{^hK1TguzAu@AUD*& z3M#zY4B&7QWVt8RY5LkxzAr}hPyH&Nr~aOQ`CVQQEJqlD>UR{Vw*vU?luqEP4 zp~$0hu67oDZPSIr$$-hWg+IcAAkX8$BV``MB1`rB9?KOHcZ;dz3|pb3gn}QIilCkb z9GxmhqZk~94pEu?*huwJj(}H&7LQZZ;(vVF#R?`5LFNbkOo&GO{Y}>X6J(0Inu&U% zHWc6-T;NJ<@~F+h5}A0d!S)^`-aMqxI!UCLcC!%=8j+CUdXkhW{XVzz1hqba9Xsdd zd;|x15h$=Ua2zS8Bl>4BQZ^ctMslc5-n%=}`=@B)NTPo%ravljFd)}>-a*46@I`jy zs^L;C#<>-zzuyk|BM!-+7YZP<#Hoi4QL3>+YdoC#*IYL(i&DJvGAUcJz|j7C?U*3B zGEN(;k2zH&q_Yo@;f0R?k5)_wHv(Ax8~m%+^Z-hg0xeTCZ!B@!og5h&bQURC8_g8! zzF5x%AE*h;ARMGNjSLbv_bqkbHJqh%U^*Zm5W@SIWC=Zi)%Gb+*19AQQz{`qM{5~O zf^;qlb03(eOGGP}a`hp`w`9{H%vvGseGROK((3R+0dNmdG;$Atof2w<*JskezUC_;~Q8pfmvJv(#R+lY*OvfPX*ah)0Ac zCgjj@30R~IjiCoT0Ne!ZEtpyt^T-cDL0`dwp+tQNo09`(A`yfEOr{PVK5zxUyp3KE zy}@l};p@j)yO3?2xAmGNyE(qpnUCt46kpSEaG`+OsUqEr*;7352JWPWj-0BcqsX_v z@#;*l@|@&vB!dtBPYriNVDK5Fqe^_{`Nu#mwf1 zOBlimeNm_BYUcb52>;ZkcMKEPNEN+yUqqINS-44EYy{nc%L@JHvY?Nso`8!c(+lu? z00vb55CFViLZ;~*LsUj5(X?vo~Meu==e>j}B76p0WSc-M!jNyGTsy0fdZRf{qcnhX(t>8+%GM6X>9k z0MSRZ-6m^iKly+-vh{ZVJUYA!G%#B}5UmhbtOoNV;tkR8P+++t^dP#eEVg;T3;7}S z^<-3G2mKeSCIWjnS39hpHtev&2oPrDLLTZ$=FFpU$QO4N2`os`YCdb`N4^UU3PLkw z&J5!<9}{AS zL6#H*$S^8ys=WX33vL;Bx<~Yy{@MBK8}r1js8KzLcOSo%O@1~GR|JY|3_{4X#6|ls z2bD~j#`8`~1L^Dms{)8-uxSvd@oG$)DPyBFyWy`)2}U^VA&km3)v#c=+F%-}Qf5}4 zB_-maD88s#==1C=L>4x`8R2kD;JNRmwjQ6?bc;jVkR8KN?+bL2MrM&ZdLof9SC;%tR1=Z#S~^UO43}L zU(nE9Xt1#$urLF=mkdJe(&IP_zms#H-an!W+v>`-6iya{sh`_-;qebR^si{D9h?0T zP!j(D7@-{Wmz-OSom@3oM>^bAp=wzrnwG1d^VtEZ_Z$~1O$%cC2A_yvC|_Fv+PH}ZGwNOFiLt+35}N_N(Q9wI+Ic~&WK91D zhj|PKT8!L^ivV$jYyB)3OY%r^RMa93>@cPE#l#Dipbh7XMM2nM2q+sf|L98*VCZ+% zfh#4a67c!;1#-W}-^KuTs?RMgCb?=XbNzv|VbGAvEipRdaP+4tUH=Fo^R>>|UF|yB zpYq45p3&j~m|ryoqoUbQ7~@`IgB@l|u%)bAL%e&0?^@p21h)d5;`p>RGfsrs@7OCZ zu3xo}BJgy5i%f|^NxdLehMJQY6Fj&mRQxpuKYy)-`EB+)srL%B=9QD?l{P$O(xu=07LAsh!jShG`%VxR!llOrKrzU;9G%cGJ&g;6tWmob{ z$|GU%FTJp^{iLRk^r=4;~TL6uKadNJ%}ND%Ihc;z7C2mcEX z(Hq#*$;zsDz0(;9?w`+2KyDPvu5j7Y;~@TQtIvXWe!h-6G2X1_XfaBf`fO^-;Vkha zyVIQWpFWrqY{plbKPjm?EjW^m(FGA&%|9=6fK~{8Z~89=2QTzeuqDZLT2(76tNMs! zDbc^I)=%{?qoKJ(6BYLLeDuhexwn{_K2eWl-|MdlS+f8qCvJ4t)%7(-_=Nr&rz4ic zUT={nwKJImR%1-n9s6~%a{3UMuPd_(4yijZNc zcUx4E>sC@y`dYu2>6uvhc|Wyc;q>&=!yBcEL7-*XM!GNq@##K?wFkBVch^ThVnEFlzqm=zT`(B8 z|9<%O*_eCn$$n%}q@Ku!0V_ar0ClI=9?|Ia2q=Ffr-WRs_) z>a26&^Z_DruGS}8p#%lE6ka5hyS#h6Y-F>>!?9z0k_ApH5mW_*QXUBO6UGKhya1a% zt6AelguR(xUj9&jfMO?JI&X_eb7KmST)d|DGS2|hj|zk2N@PTF8%gGC0g(ta$CI@F zZGZYP&E|#ikm%^sjUf52CC?+U z@fDV-Pz*8Aut(>XT3fvxt_^Rsd0?Jho17@6S^)x(kY2Q_(ENPvPX3Bt|FBdax|`{l ztf5^t&7^^|Y9#x$oe`E42U@{h>V25eFe|`)Nopj&W`*fTsrCQ@iTC2odBY@`69s;# z80JT#UHLyYq*%$=QV2JaC(Vs$gwS&Mdk7G+-wO^vXv66NNOJf9;*M3XcHL}JU|$aR zF3DuIy{WEHBA*SGUxr_emt)+ZT%~DQ`>t8m2vllVjh1lfd-RSVs!#0`DiPFR68zRX zIbQ76vf_zC-tqC9;hJ#W=WfyJ&hG|(0s^`8`ZJhKZyCx*SVc)pG5Q@e*-K2YQ3B+@ zq_22pr|I{Kvm#~9L$M3!O8Zdw|MkusOfZN(BwYG`rw<7Vl}4IY;K-GcmdIg)0VD?w zxf3bN(tyv~$snD?*g>C+0Y2jpC9!bUtem`}M%5#X{qR9K=#>n9NhdGF53x{coQP>6 zc=@1%vK0+NthpjXya)x{DH1BO@`On;`Qzg$#05?9!FTwOv1Gv;JGs`Ka}=7kG;NdE zD5`@#NnAdOoDe9-7ahqu4lKm-GoyLm8Yd`po@*}Y)L?i?NN@nSNBdFj6V?CB!xET> z7D@!iKa3dhS4v_K4MNc9NFWdoNr}AiLhbDzHcTV{U8vDOK00gB92NqEWU7hSbosPn zrNfiZ=~l_#E+gwom_7s>FM)y!*t~!o_H5B!xLN1f$yabIU$w!IW|$9{3i2mIU zyn%s5@aKl)fqTb9t|Z2AIAQ}gs1=VC(4_@uQv!od%4|jOo;j;iEU9_zY(YC{@E

2L)dpk5PzS&UHWWyGkVr?E;7rni?zI#YPO+g|2clG7M z>)l@I?m;=GJ%U}t@1}w&n&)#fNR4SH15D!F*T>&3&C#*^`(EVWFb ztDkEI=@@Ef1+h&h?A=+MuV4MGuEJp29#1`jLc?SME%rA-V#kXNBftktI!q1>i5oXr zL7`oIDdzdWIfegPPoik8XX!>8D!CoCqu^ng=#PGDd8bTVRS5}is9{I>)*?^E3>}hB zxBZ>V6X-Y{h-+-0m@L%}0`CqNp4}bxxv7d=-z4D7J+?(V-4@bHg@w!7)8$AJQsDwo zw9zRR39QOxhYwsY1w@q}5yeSV`{yP50ZVJT^8!bI@QZN*19sgr;7_S+?P9KI@RKwO zm}F(k%%E|=oQqY04vx#WTh*vwTFJn)v|m-Ir{0Isus2^_qeUrb`zD9=79RYTMH#A3 zoLcSNQkCO+o?mgZbUW-VB>L)jFRtjWsp)y`5umI8+2u`lpkLnv?qK%6Y`e=0RV5R> zT0Reu#m#hFILF!7#s3uWFP9ju``$F>(5w z2gafgK9c}CJw~8VM%geIb2gSCZ0E`m$7g@pqh6yHXDxsYc7|%nr3<{BhQ$J=s$u(sR ziFxfOcy>s^`gpA$^;x$njJyO$thiQP1(_r{DF|F2`mRi@zbOb|Xgz;;xPdzKvN>UK zL4zkA0lVw)njQE^W5aK`@BWk6olQGdRlY1hciyh{ZPIb(`Z&r|s>KWq<$)arApxJm zfp^HlCn3P+G?pyCr3xgAH`U;Tcu zBC_Su)_w&ldCYz9;{F#jNrCNY;c*Vtb&IZBRc%*afue*Ov6{8V=Rllkdy-+xL7bMJ z&Po_9muI%4&zsO|5z>}3w1I&V%A<@b6)eG+GqFw1hx#Kyhwe@KzrU(R4est#^0na2 znv#ti3nBOW@Gn~~JU3G&Vl%b&*)olFR4XJpDgmy4%)InwO2d6XIhs6l|LrfuLZZCuxcrQQiJy4uTr_-(XMiNuZ(EyEz}qvVZZILs)~t? z^%cniIc4;E$cnu^yo1IV|99cUmiAh}&Q;C1?U?@lH5!g&juS%BG2it2|B(zi;x#W! z6Ft^l7Xdvp8ALLY0kDi<2hc?rIWHbe$nnq47*hda*uzfqqvqGwHH_~jiFBzG{+^!; zlVMBsfF$JPwE~EjE-^up_5ctVVxZq32TK9vQUBBMWe?3ahCu$Sx|`28N4m~gg9(aj z{AtVx$QjxOM-RWd7^c`*U;m&~dY`EBC)5Nhs>|F;4J2nvO{{1HKhEbVuzX99>cN2c zQ@f0Nj5}2WaZ^kX%LD-|WI>F>(w(5e>1{c`VqaTLFmeCJ-&=Oq7~N$a7XQQ`u2B6S zx&fvpyjB}M`O7o>)EEvzbP7jNa!eF7DuZm=W)D?UWGIsi5a-HfS3gO4X!o$J8ilvE zv%r#~K@?MdZ-gT*b#^0gsal@iBo{{P{zidi`Q#EEwI!s@lrNnix>K|!D}Bv5!Mr*_ z-PwJTT&{^TeIUT~4lssw*ZK^V4c0!#3%-}}@R0gRQmeOMo0ml(5$(_6#S%Fvz}e7q zyu=P$TMt%oh!ko53{Nj*o`K~AM5Iy=;NzhUQVI%&u-(lmbv5rY+LEY`N`Q>jcWjZk zDk~|0N{0FQdGI8H>b{EecZlrT-jO$q3ZyLNZA~hmS^wLvOI1LHUQqvJH--HNtim;G zl1Mt?YfodqXDVGP|KT9RodJe4N2d+VPNPH>G9$L`4Je+#S?H8U*i!5*EIR)we5n2Y zy)|0&|g05mE6D)3tSyL|8PpeD&nBQ zJGa+3vvEG4QRV)gZxeIi&HDe%KbnC04kUTMU&)_zGgca9g&nOKJ z;&*a+;oaEaK?jaTGaMr}nWl@J_h^%)e0k*;aaec!7_0!RAOJ>QzUi!6=job;Zsdz) ze%_+A-_JWE7u(Q)R*%3oST)2`l0nvBjRlA}0BWr(@nFgn68APP7&~>ZXrYgFiwTyd zRC9uW@H->Chfa zak6k^r5l|f8L0o%UoE@)Yi=cpZ(18#$lw*sg@Yr75IQ(KsF68089Y(zADL=vkzkt& z@CzX=7a)UzT~dM(5$j2N5yYcks;JYbW$E$1@a`}bP%f{$S`D<^ors3v5bH5&Q^)_C zu?UcO*NiCSt39LB$d`IbxJE=!{z!?;5os0@+y~!u*wF$RjY=cB5@73)7&{5mD#U(V zwaR4Z^h?-^FHLwx$Wmi!3!`8_&P~@(ml4l3t^o`|iK)cpmIDZgYEL1Vj+x0^SPft( zYX}sL9Yyffj4!QPd78QdC9@5*dbZB{EhlSnSQ!ArGy$zOzT1zcUD@{k z*P%v@9jm*Pe2Km6dgS34Rs}~!hjz^gyN2VpaG;4rVLOdXrZ|S=0pHAtvil& zQ(A(59FOnl-^@jq&`~pxk>PN$V9o>Lg|*DX&@jSr1dP9m71sv_@t;wA%>Yr^^~nYFzkg6$0Bf)< zd}kvHJB$fZpnc!J>VHCVhsbb6B8?xOJk>u08nS7H8~XwkpeYU}z2}tefo6!bil_gu z5E$wpF7T5TGED&}#F8$Ev-;a|80dN%jE)Z~fa(p)+ml;G0Jt&&-zeTW%sZlN6$WcF z+`IK`zTRk)W7UWX>$7A~D8kE$lQfKe9BwBr+{ZMG&h~(H1Zfz=@*<(JOXO&Pk1)xe z>3DXe1l~87{A#$0Z9MyRZbDJ79aHze0jddsA^&-i%wRovdgnZJ+5ghMH)`(yyZJEQ zaSJ~Hj0G6uljO z9@liyeHb!ucz`4Bd7+g7$7{K}ra{fVxg0XN>}6l5hrjUt=-CpudadezUde#n{1??3 zG&EmrN-@4P4Nsq-2Dca}rLXGv$DevCh(tuXdwxGhUDxme=9|IOw8_q1{M zvCm15!RRgf?Nuf|`z&(|hmcK?!}YwMa;Wv&WB!ivs>Iv#`67Mauxv`oN094-=>;pN z6+e5*1NEVgFaBE#@Q+_P05jr^sTlR&c;K~_Uvdrix?RGU3sv1afa9OWz82O_8H$CU zztCMBbQZPK#kIW-ZkbpA{95R2f5JpaR7&9{+6}+np2*!fDU^O`CkXF1M`&6Y~t%2oJ8(c`k z4AV+M`Z-$MpAIilOpCne=(k44rFOKPP|dhD7s|wr%euMnooB8-nGfDM$hhzqdahu8 zoH#Mx1ZOz&%PeM}4+soX>}F8Cv$a_>+=*>!$Y&70`1Ig`-555@cFB`q2R?(QJ|?vh zP}4io#^t=Kj?8a{2i*oNPrdr(!cyY`pYLvJcC*RflFD;~q1~7a?|pHxqnk*yWZO38 zxm$6O3)9sBBIC=;A)J<1>I)+!^qmMwwyE;uZXSQ=i6ArQmagwY<@G%FvjdZt5{`5v zv&bOxyx7pVf~g#0nAieJ|G%BvB&~c ziVa;z538}IF!vF_P#|p*OUeLoOl&I4;eXbkBK-VNb@67=r}@B{7RiU>(n>Ho2e0B1E(ljdutTHySHV>NNWpywc$mG{wG^G87q-=tpa7n(+HGDr1bEb| z{im`|GH+HtckF+yd4XZyXH`YSW@LI5rLV7Fs#DVStNtU-HB95l z;i|l`S$#dCKmXg-@)5dZbg5jxX-t#&E!Vvnpj<7lXKTZL3-85rQj^52|C7yeUf7>& zz#$Vbt(pR44pS27t1IViaURMxz*l&7IQyqX)-L4${~J-(H**KF5B@JFHva0;0q z-s>iYT%-aYn4CjS!xJBcyQYc2rwnm7pB6vU1Lbp_QHdkE%W1}Qri|-rDryUf#R#Gm zZGpNyWC`hI?&0wGNSkRq{F6>mtrI#S0w&2Iv~?*9Q$nbK6w>sj73Gg70b#qBua2_~ z`Tb&GoTLK@dKRGc(T3;Si%pi%ssS=}badl;2gC++^onE)ZQR6XEQII6S4Pt1k&%(69Fza4 zPt>_Q%^Kzr<>KPvIU_e5u=nkBO3M6g#;jXkRjBHdLY0@ep7QOGrNZ%Azat zA}I_8!0WJvg}C76P1{CXrc+xY`Gl`eHtK*rf@!U10`r&^de?IhDd`tt0 z?8Nx~Rdk<#I%Vnvo}#o>Ebze-hX(($XD{ zGfp$}O_}fzl{|Esx1h-2AH84iEx;4w$XfN?CnqO)`|3in=Z**9XpY5_p@G8-Ey2aF zESQjSof37glSOMY9`rH<^+psGrG>w2=f{l=ZDJZo~oT2UI-EkdDDl0%L1y~B)4F;Wh%d)G2&Gb-et`U?qCZQ;6KH}-Gm+J3c^d!7~o z{+%-p{Zuuqz@lN#t_DI!D=To_IXq>$CmbggfVNIuP9zsTcpiyJ;sHwX0E(&q;EaD7iQNK# z%}D{|Uk~R6s$x=l2G-tGV86UO{n?ufg+0OtD?(w(jg40NXxPPI3G_d zGBp7Uara;l(>D0O`P9IvEz5P2mkhI5YSKFJI$ofmf)?M-w;8CaAXNmXtaW*R!5vwM8@4buOiRe8_h#H;fy@ViI5CqXXK}3sQf)Fiw@6mhjd}s5% z@8|csuKk0{nrEIfXU?2*-)HVM1$mdrVij^9H#|5lXND2wO9bd3O28hS!~;RC?}4Q3 zp1ur6`FuG6LMI1r^0O8;Y@+W7P#E}#_k+J{F+uk@`DHX_8fr@twiL#Y5dr>xKC1vt zqiLUwapr@ZA-1vq&E@l>{12K)ITWhpKvwVcLR$E@cyHeD!!$!cXqQCp?83K2=4>-c z)Yrl$W}y4k8v@ZqDp#{{Au^nk!$A@cXaJM`O+svOR}I(|)#oO6uE|TF&H@W+1solU z=|I_l0AqlNDE*R^mYPA_EZEoAlBkfo%7dv7CWHY6;EOZ<_69ILRW)z|u69IRPORpl z=~H|oLLU4Px_?a^r4j{juwz7_-ryg;AhfTB;{wvWnY;-=$ZJMPQH+lQ1K?-?T$^v1 zA2P{Rg$9L!W3Ny+Fp_?`?`C^1dhbX#82`W94kYVA<&EjVsSBNmkL%}T|G7z|Tyt@B z-2X~Ql^JqDwZL>)cUgyh4u~kbGxMRB6Z(1KM-<=4kYnY8Z==TF1+Rl|>r(~r-src> z!JK01Ob;i|*mnGzwBi`BAbIe~?OA;VKDPD1#+A1&;HW@&do?FSii3(OgNn60wN*T| zwmookkUAX2L}an*!|{pq3P5V2=CZZ&xExgR`}HNBg8(@S{x3kbr>6b*?*QPF&1|kx z^EtT%k)_YhKDqDC)IRxLzp;nZ*PAEv_bbLeMKJDrJsOZPZuW)p~An{JLNH1CX z0($0GO0>)YjU_aOlMe&A;Dz*dJePM%NelE?c~iu#^7CeP_cQ>)FVH z`$g1G{~5{d?o{@c1kasrhk4KKKdd{beM?c)Pa5 z|LTX%#Mwsd#AEviR5~AAz@Q|Em-)f|Q19V?cZjP(rr%Z6aPp(rVom0i*}Kx8ax|ou z<`#3_4imn@*pwYCu?k$Hr{SA(51Le3Tq5JPl0MMl93F1#Xrbe;8L?BgslW@FfU3|C zOboJ@6@Qlj1!~Bnz^hAqYEUdp$%ei5jwV<@=1ulnpJcWym*b*QlIdd22 zx)v_AkV-RmE_!&vea>!OTxX*b8bzfBxUPLIU1F5*LNw&pECETqe|fV)6@X|IC{@Kw zt-ZV({7kyjUS;Emoepz{`im*G(;Ho08V@?ly%O=e8I$ra)mK&C{3d4Vy|XwN({eW* zp?rR*GyfKsOHAearmEZPyJ|%yeXe&Ih>h@#6OjaP;7j4xepm;dQ7oV7SB1UlyP;OO zeNi!j>m<1xPfqH89p|}_#!5q)KTOCJpVhuM(sEA~HxNk@C)@w+wiy(`mVYtxkj#6J(~jmMVb(3_ ztoDBQ&pqY!>C%G|MSUh4UE@bk@kIhqeP#O>xgHY?dO8XT5^FJ!QN@O#Hn+>b3tvDm z!66(B-w!_TqqkI)9oaK%*pB%lKAnR;jF#4cp^OdztIcZH14qgPETj92BLN4Zo6%|gu&Pd_1 zCEV=@R4^uj=R(X9xB~<}23Q|e1lyOFm*r)?2?MzfGj6GxdX24irEwnr(@Tn06<{E3 zI(NJNMs3)Rj=%nSvt7*r(#aq*amHWF<}msY;wqP!zGhNRFe`vRXvQ7;)LB_iG*p*G zn|UnwBj8Ox6PfzzU~kh_6)-lrL41#zTy`KL!^*=p~dfPWF_H6#n_kbu@ne)6lx zgVL$9J#WmK7RQ2^8YfB?5WeOoPudfDSHY3PzDONhsAXL_WNTNw?9eRvUj7}RPvs6X zHaj#kA$jWbhvl%r3q=F#|H!Urtbh>L^eh69qyT%=qyjK(04vlr97M9l90GuFBqBmu zuUnW>}H=msDQRRRd2+z%#|D9{drIVJ|QR>ykx zks^w86(gIog-m*c+`a9q$Cn^NqQG;E0X3epgegZ<#Hl|{*Xr(B>$ZJ>2fa`hU$nUp zSs|0`MwIs0A}8hbSrUD(&#)z*uI%{I{MRK1X=QQo?&+|X$%BtRB=Bo~?QieAUoC}< z|KH!OCB?f3AOp}pt$@^Zp#6gah~YASLxaCY!6n${_>UR1Oe&Awfc*(6Xqfo}>F4 z3**(h(@{3f;;$A!M4enWXdBueMw2rn4|`3IgDn}?p=== z2exEfkr`J)ZamMi5m$nu<#6!F#I??6ae#>yu1l5FgYu2xeSrf#fH5v%hjkvmFmM9y zn`5%LuT@UFJV&-1xV(pd5Gx&!5KC+ zrZm9UW^2NG3li6w$pQV=rb6x|2E4@x76Kxx5D`e0L1d|Jo2@*L#DfdHkjd zJQ?kz$>57ZfnNLkpkCoSbM?Vb3#17Fsl@iO`#g#G?i~^;TE{Xci~5SO!6FU}52w)G zF4u0DV3|R&{IHON7?ExoqX8v3BG=0itV@r)VMfU?1Ge>?;{!qvK8iQR6yeM2vBjfO zUmlzPTfancOMQAvU;PPA(1D?H`l4ia+>U}PAbfNID8c$0>i!CWN&jQ1N>L0ev zoTl}>iMclnl8*p+W=7e+&j(aSszie(r_(joT(I#4WQ|9;6=)fvpP{&eU!kBJzhNOD z6P3L?H-qb9va$82zd;_MI^p6Jc#E5p?x6SyRGWot1xNV;0?u)C5c`>{0t85TDL)A& zR`jD`Mz1MuA4CWm$O<>6F&rwMWSsd5fzpMAPji6EOm6jO7TL6ltgP3k zTt5&-#1lePEnBLt)11yV0pcVXDz%7;ygs+rAnA|^0m2#&Vj_rW5ULlN5weuzZVqth z5TU{ej}*)SAbmb7%D8cpP)iC`LPR1jfz#k+3838liwi5Qk3Sq8wz zd?l=Kbl}r--#@1vwvckJY_5AgR)wtJ4T_`R7$NCSF;j2WVh7~&H2CQp1Z<;~c%Os- zp;&_o;T!HhN)O|EjDN4bjh&Kbz(I#Tn70BHwc+Aw!BXXkT#au0)QSi$pn==i2Uo}U z;~u$DWd_l<;W~tZS5}&xV!>6q#}umdiuSDc74qZSvYwgaIK8RIoqo0llTZC!2+_ zPH}#I7<`mrS@9<w9d<2(EpXZx&~Q8xc@CSZ z@I`$B3Kif@Ye8h{V#BBJm;I3$?`_D`8@k}W{z1SlErQ}lAYwZ}+YN@-X_jfP3VqR3 zNYE=Hh`^3!l?p}9!d)D?lbsQ)bzQCJNTEB?!P&*7K=vWjVJwWoj8b%0(|^(IE|S_W zyD~IsYnzyYDI4_9-3!;vRxkd9o~IY9^8x^Sa1)C0$TWYFLmDR+!W2}Q@)W8Z4^df# zLFPag@GLb`btG5_h+SnZ$oMH~2x7p@R>B2jG(d{|^m(2tXJs8grz-^ZtLbvc2Ozm4 zqOJ#7z`^Rt>2#URLmL#&Bmin_E#WJZ)@NpS<|d4-@&}Dcq7&EYK5~J7-;@l<$ESQa zNV(mGmf#7Fs|B7)ps<2g%9|lNoxAbQLS=?D0iZ2St^265EEXW?PBmnO5_A}-akSCB7GiD1%Et(bOJej2tU|!HkG30 zerQP*LHZ)XIy@h@r_mx?9gkW$sht$+)Y;-qD`^QxaRAwRqOSIR^%HH<5AQ)w zn_xK01basi4-BMis$!9Xe)Q1E)2bIq7uyYgUnQ*mBv1DlO)*xN29D05LQF(thLbFr zWh|J;;Tj(DUfLH2CL;y#YYFJ9(Yr!_2K6%bk@Q%Nf%GAd_ui-0sI!8mLl(p8clR!S zTk1>Se*i(%88rV8P%hJCIC}Ayh}cnn_I*!|_$ElffdZ%D@jHPk>(YK}8_t^1+4$ih zN_t@S!oeCSK(z{{q^Z>6i;JF*X-@jNZQg`Cm*lhF9IhFP6oiqOPy8Ata{H}!{Kom zRaHDs0ka!jMKm^y7IcpQ+VL0NLIpWQu`O-03V%HWJy_D%$Jz(rS^f|`n(id!2_ELE zdI0=fLd3}?aPWErs;QtgBuHxUlB9A~oh$i~Y*3v+bTzv*9_SuZ$J3&tai=HG@E4u$ z0S-kgDP+fs2lN6cbtZNvc}EYdP68sKgjW15nZC7eg6#%FD5;lLqsL4z`QD!^L!JhA zN!P>AFI}c<$2K|RXBEf3K3jZmE*DFz=_Q34F63R#yWo$_yS^d&&Pu`(d0;#(#CRy( zg(k5;kMyRRq+viqJgci52^4@osNrJE*JZE$9M*Hr)N|b6&CQ(*Or10f^7s{vYW!^! z316soX=h*EmCx#*EkT6Q36)qkh)+IslJQ384hmOZb3a$6i$KAxG|Dre(_!tq&}P7U z%jjmjY+%N`q&jxSe{|L4#56z>{eCZ7AsB~G;-6z7K%C;`ZmZSyXOE*q zfJA}xTv|eN+{%J4E`8%AWaqIWUYZyNtpq)K%yhrQ%errr9)1a56k{`PS$hYsyO^F4 zQ0(Jq1_9HNKsM)?y)!Ax6Qpfs8Q8 zf(=ck1Vvg)9PW~@aq+7yQ2{oST0^%{0I2mcQv2DZmY!5BsQYJH zAS~>AGJKtAalhnLMKuo+bV@UO`)K9ih?2jbix$GA8E{PI-q^kYT?NpSgQj-$i&VLM zm2Dr=1SY&1qR!lg~N zoBIa`QGZGZ%0x(0aiVXp z8a!*A+kd{r+dsa(=w!JY!3IH;`FXLBN#JzI`SC^1t9M?+?wVz5@Hl6Ko)?i_*&(R8 z-MJX49IUq89esCTt0kmfiTId*#+FS>OKWOsQkBv7C)Hxo0`*ZFo9)hsCmKbg1?ytB zCAa>x37NR|+izYYLyM(BGFl;14HKk+CzbQtcbOxUKbd-^TD14_nVHC~9{Flwr0O!6 zeJE7{m#jVjr69?$kxg4GD~ZV8@~y@kv(AGe8GcucN+TJ*hf_`7d#pK5pAi8q1F(P} zmP4H24B@TCsJUj9FWva_p=rS11TcvuLPpTBV@Y_8V*Vyk8G}0+kcFOWv6)@<=C!~j zr>CbWA{9cly_73-cU%MqzdXbJ5L~8Wu)nv#*2IE{qW~+bN)2-<#~Q910eV7dM~qqL z)pOu-GbNG7=?mzwB`c`&;D30(w!WTh+o$(TmYY-VfGedaD=X{IV@k7Oet_9XRve$0 z&^dvT_sWRp0MCmr=GXC9LOCcG$l!wpjKg5BGATVhlgRu6om8un%mF?bIG(2rC|b_l znLx&wE9yC20;km5KA!x;9w$k8Ik{iszt+&xBa54Mnue2A)PIu%O#j zNqBTWhE!7mTT8rGh!2=)#$#5B;0RG3LKAedSbIb%T_B|*+bNZWX!fG;$9%H4VYxXQ z0v;&&Edp&G0xx8TP{qoZYI1ATXffdv?CMb7=#?gdyR$S=MhhX(--u!a%hT6TsE4dE z8-LP*hOx7^aQ!RatNj-5zsF2`o)NsS{LdFhRLJjE)&>=3Of(1wc6=^b^`x8-VHqx{ zH07cF6a|NJDcVN;^>tdkn^x(q_$@eXZop~N5hKv{0(`L__s_Eo(T!OjC*bVE3%P-A zyAn9^JOLFbie0hWwTfC5!$S+2{JlA>-B+Ro0wR}}GY-wZTi^L()l$6n{BEWS&T837 zKVmyIU0=!pSR|x%}gv?)M`j?Md?`k&ey$ z=|bZ{&biCr&D8l75K2!9KcB?SetO0_6D@W&$)&&y^~C)Mszb(+5INtqN|Ptk zpR+%MuWsz!n=?nI*wJnlFB-^|=g$p$ig3wiRsB{vpJW*Rk?h#qNxa#R+i$wt`{^n3 zeUs>g{rAo0bw9@p>WsOY(t>@V(~S8DfehcfRE%A2v75AOQQ`CXKjvbad`Y%&LJ*?` zOCxQM2IDCKvczwdfcoVloKk0U>d2!rEhf?#8<*AD)!^Lq=D8i?&sMb~pXx+iM3f3C zCr%@KJQspE^bTIQFSOlX85#LZN*881PjKfqkQ)c9-6dCDH(%F>O{}KSn2qoz&U=Kv zwfYkSPk1g9RyNZyueN#Q`zls(bL}I@BZ})HXnS8hvUw3;Y(l13N`q9@h{uV~D8CiwA#9 z&C%ARDNi~wPQv;a|dC)|J82WyPLe&zgDKcP><9d7f)~jeKw(-NuMv?)t z=k4CKueU79`O?Z*7ld-Bmv$1N1_kBptF)u*<#&ryQv0urd`|9b-S;`|3_ZzOV>tbY zO*y)dQ;PzTlmZfIq>^gl`K;-*3baNdr(F^>6`o>#9d*&}A^)i$<%ZA1N@(?2tX-b6 z;YD$prv691sFeKFsuUW0rBu``WUf#7jgh#Ikcq!>o=-2Le(j^}q6~a$YI=ROE!KY6 zw4VNJ-FW?1)A^T~WevI^Bis5H!x0}wgP{gFwNx||NXW3SvPkQIqZw*S34Z`7nsICK zS=s=XwR<+W+kQzca679xZWHFc#K>!4C$ksOmT}vkPo#EA@k$v;w@XSQ6KYgSueaN; z!61KCSQNW67fbE5p)V?Si&@I*-Nt=u^XqORRrF?7V{NTpyE3v#Bju?_j1}$u6VUT^qF_fSt=U6%GW-| zd3~+lihA*XlXP^Lw#DjnjYc?Xn}=%Njd>e=X^89^^ex{CJ1WO~qCD}+c$|OQH`hhy z?&kLx^2COt$DqB)8}j?C2w&z?H@y=nFOdZkYG;1#A+M%a?6n*T0!mjBw;!jE?X_IL zRw;F3A;W_80)7fFTXu7}+%{}0gnYkP@60O0S(QS9ynd2tcarD8js^{~o2dzD;%u`L zcfUow_Zm8pe;F^f^QgryUG!v5? z>6a#ddC*t`!M#Y>t-{sjj^8jKwglj042G|@*zuin&-$h&Cs)ku2E+3t3HNF;{b1s) z?8qImew>uJ&`J7_v569}I`@5mnK3cirz(*1_4N(@=%VE%{A7KT+EVuq4vd99VDil~ zQb59tKpEDw+WxeipPxTHGxKt`|G>@8$H$;x1Y45tuPw~sg{lygVzC9ug!;bpBQC@i zchcZT^59BLRMcFZbEutfM8F+j@>f+?V@p;M>J@c3qu{c`#3`7daAKKGj;vTXEF3B3 z*UV8L!P@WXYMTk$nqMM|)HJ-6jekJb(Y?Jr&_oUdcA)=32Ai2@=#U8P+Y6)$?1nDf zrodKo6m<=Cetg?yM}heGc%7Dp>4k;CubwsSCLetz0@C=Bc7TyX5o>ZD!BW(Mr8`zIOneO1INC$!9UZ8 zg`l9|y}#!+JrxW^GTh@X*-@o0@)0~hyaSzr@55x4#7_!1A2PBL#Ue(#c9Tk{$Q9W{ zq~#^83=T8F{@Er`+`q3bK5h#mCE|GmsbJ%9^lufgIANJr@=TX|{{%__uCl`xx2@tE zC`3W%TWj}5cT<-4yeS|E?E_7)E) z>fiwZI!G0n0=LKSwxF`;IE zj00q_0d-Vjb*W(>1hX(`-F4I8W0FV#-H+D0*55c&y=ML0di{=?5-D&4$O2EqG$c`y zA`wc*FqnJW5iIRcFruaQji;uzS{_Voh#9<)*RRK{p-8DHpHs_yO{w|L34GrnL8+bt zLD57#oQ5F7gyEkv>4G7Y?CIym5BwyNfNZJ3cC&#-S%deyN3pQ5ctf1VVE7|*?Y^QL z4H+hGoB;V;P@^DD0wf95Z++&mn~I#;$L78mQ)@hvEe!T67P8OjMPM)sJfM{bJ(9b?%4P@ltOd}Jj@O}rb6UyLj+2t5+Jv8u2&YBcY6~hna6OH5=tO} z1o`@;m6vxMi&GF5xPkL@C&}L5P0B$Ja@y~))H^7vvofRy6A!=y`Z>w*VdDXGlA7b$ zJQv5)Uns^RQxeL z!3LAzLH@%3p$c2Vn*u%pIlFfE+Zm}tArxBh)ro3|GP!a`P74Jc$sFeyY)=ZGLf{_K zndie%FLx_bjk;-*nysrvzY`PxJN5#BA>Oo(JPw=$PypYc#2Y2%Wg1+MU(f{|8nlH)~8@8N^pQeS-|oc3zERVk2P)vq9`@ry+h?^F7Q86P|0 zs)Q^T#1mhDO{f?5PzY=yUVL~F%>zq)S@raZx4VZ$Xf}HMOh6|nzEK3&SYr^#gE3#@ zt3GMGvI)=95u~2I>&5($O)y>|z6uYs0!zjza5 zNyh#CXpORe`DNWv_2(7tWsn1 zn9SkknAp$U$a<$g%_!Z*GMo8l0sgi1w9~LPBa>|meqhaBUAvM)_vk8g!B z=WcdZ?rj@8hX~dSTnu-=_c)QC700R}mWC;iAuQ_A`ry+K=XOcgV=BMRvc^z6-!>c7 zB@LL_i=A6VIN7&YczbrHe;FhA;i5J9AaDcT?NhS+XFIvXu0-nmbhFoxFT-S*AD>A> zri@%j-!DaeAycW(Ybkq>2Vf|zhhy^80waO+CcP!)qZnc2RBWh zuSLbaa!Rl|HN$D$i-PI20TnFmYKyh_GO~A_S)RM9t9L$(l$sNl)20RbQOe=@9`|hz z^f6t{>GfE6p4AWjC|`42(s7lG%8SAWz3q`bDO&Xc%LYrfJ+$Z*D(y!b=elRoc_xdw zhvKro{|v3Mk^fb3q-Wavevk7rX=CFYK7P5y;pyrAga8(an5sN%^DA@7ik2qLm=6D$ zP#S6I{C>HB6GcYFa_Rk8Lt^y4=M>}a{oxSD683G;d5I8DT}LK)mB48Er@g=YX_s!@ z^6`x#sLbwbR30X~`%eWQ2EwqzE{nA7n+T3Ja55h)P0vz%5Ddi&ctIz#y7DYLWGZe80iSB2|=j2Lp3zxba> zj~~jW+m1wUTK%e0q%sufS{rS2J?S{q;BDyEsg61++lv3CGPaXRMBJQ5z(ommlQ;zp z1lxbU+l1$s=6Tz-R4hB2$7&soWSBxKF!nx$wnWiY^OQBw@k8O)u1aXv7 zS#Vg3_!@?OTh1-X$?cQZ1X5orxLmN?nqhZWfD;rotI7lO3?aPM^CMxSs46F!j(vf8JDCs@NO zq6E)?fs;dF$O%dGxSL&(zX*zMh32|0IeP(1#bbeiC*BT|8F)b6eq zxfa?y)o;iz^x5i`I*q@6E#>diMpr3v)xR}n&fgwD)R>HKvWk8x!p5dN_T-eF`{Afr z$JrY4*E6Ep{TLp-T6B0U8uJ-b)_Sip;bwM^f8uxgaODE@AxHq(-=qc6Kf6&h4IDNS{7-_go4pZM)~A*>VxW9&!QLX$?fb+ zB_4A_7wq2icLl}0%in)Ch&V6v$jopzZ2uM&uKgC2n^#?Nr&+oFSVPKL%Fwi7y`=em zxu^cv5SeE$D{&bUI!Qqht2>~X*xb~T&+B^MmS!zUqu+Z*$Ls&YeGqlbNJwM7T>lv3 z)r@TO-M2>jyT|rioX;d+FYj;4jMgr_$zyZY73YjvcIbnJ_cVGQzBoY!j!X%XrQ5i3 zi2wgTe0gm*Xv$PzKTcAws;W_4UG3$+yBl&W)_5ut?mi>eMC?)IK=$lq`t@g=Z)jkM z3UOc%1bdcnSM^%9H_O=B9cwHDCTGzL6->x!EdFHJ$gw|11M~0dvAMbh2DLYVlNi9^kP)YgJ^cHE z{oA1AwS5`1|2W|y4VU&n9bVDS4}vVkCXgx?I3|LK!&ti6i&?H9gTO_l&S z1Ri<_$lWsF^~okHcCGaLW6$imrS`A62$pJ>06N`3(|e_#Kl7KG8+-#FFejJ zJYIf82-VEO>}upGvCJ6R?N1d_yWo#BMZxLm^%D!;E^NZn>PK;6v=mq%7yzEB?va0s z)$HihT+bH<^&(A1Mn?1yNjm+#hblv}5%BN!b2l%k8s%P!g%YG$9(q{4$e zV1~;9Z>j{(*q-D22v5c@r5AC>%XPtUdlGs>O7hBKiw}2SmvS0>=YHJ2Nf;0y0gu2B zyYjSVODd^sh=<3ers^9QkT@FujmTDIc;&T8o1n1j*3fWO@8eF13Bs7TBG)UYYdMuqE%j7SixPGOu=D5ibK?Y!=)U=pOjw$dfC_N+=hRy>Vr{rE@Uu3W9X z0a_*-2~c!#<5=<0U$Tn+jw2`8PM!KN>GD<)!@(9(mfNBn*65#V%zxkZyw&MJY4oV3 zddadlvu-aYICHTuG~-kS-ZKmySQrzPYcfbgzp}FO;K747Ktnt+D30&_+r~GkY{(^5P@D1{MX z)a8{G=SpFn5&MPaxv42|d1l7;?o59|-mcsA>GlNX!@&o$N8gXM-8kNYs4x(n#sA&V zQ65(!=gazWP<+Vb_4?+#z&_D%dR7 zoJJn!YVYjj*TlQJCzQeAA3tkF`{?+dxE>l_IJvltuD<2;o?x6X7fXnmx^C8%m!gn{ zh%!Iz%%knSsf(`BeDQfE=G)bfy67Ybzb>d-<0ixEIN!WjBKVO1UiN*THn)t1sdKpu zdLNB{!(8(lp<`{P*!+^=gdPQHnV8cySs2u?wIK+bl7=lhQfb&M?y)wj?k$6E90MwZ zlNRjcFhV|nkeK!R`?gMTCEuy{V)W!w@9vSPxtp3M4IV56@;ZoyQX=K!r_aG38S?$E zho-(^c#y|-RduYUJJneR%`gf3u>MGAz=Tv#AncBi#o^(hRgo3=%(E)Cn^eOkb4?iY zZ`tG8^kH8s0-~~OKH1Kxe|L@AmT^UBYT^@PJKHMFT26X@Mnc=rRw9hByx{^2{!*vB z!pFdzwc?^=`#rwL^$r8+1#mV3>nh&r4+4`reM;cUBYs7K>^u>-?YQHV#X>|<|MspC zh`{f){{^sMD+eH5qrizP{3C~?{{0yYbOZk7ZwvlgL<6j~xHB+|pzVe6({%4>X^gn!F78dV+E_LIWH~Sj=$WQz#-&I6y zMD%|{8CM`V*D1zkhef1fg?=7jYkaPiha>6YMVf40@u2?Ue_j`i21};Bz4DWU;oe_- zVCj&3xm^h^RWWZL9+_B4ePH#!x29<23QTV%>kSU+UA3^VWZRmSw57pA<0r7E2|hVF zjZFRZWc8>1|M%_3frp1qYl^CO+?SHEmVzn!HVC!;E1H&Crc58qQ_FLHb~-Syyp>Xp zKm32fscqfav2`$VI6m(WhP%EOq-S3rx^pBz5eN58U%5}n?Zv<)&CtFp$)wVl^yGxT z#`xbd!o%2*r)6uaYhTifFcTCF$IW~^MnXbbKwtqh2k)0JWtfRM=U$Q!bL!7HRG*)o za9YKx(!?s@(4fs;glfxvV0&Bz@;U!x8#syQ*f1MEN~1J##wbMnF)iM(D(?+r)URK% z!SINwqZKT%dGf}V(OAUB`tOQl%TutiDJSIr_NNo$ Date: Wed, 6 Nov 2019 14:54:55 -0800 Subject: [PATCH 2/9] Update 20191106-tf2-tpu-savedmodel.md --- rfcs/20191106-tf2-tpu-savedmodel.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rfcs/20191106-tf2-tpu-savedmodel.md b/rfcs/20191106-tf2-tpu-savedmodel.md index d2f33622d..1b83b5548 100644 --- a/rfcs/20191106-tf2-tpu-savedmodel.md +++ b/rfcs/20191106-tf2-tpu-savedmodel.md @@ -4,8 +4,8 @@ | :------------ | :------------------------------------------------------ | | **RFC #** | [NNN](https://github.com/tensorflow/community/pull/NNN) | : : (update when you have community PR #) : -| **Author(s)** | ylc@google.com, lzr@google.com | -| **Sponsor** | jhseu@google.com | +| **Author(s)** | Zhuoran Liu (lzr@google.com), Youlong Cheng (ylc@google.com) | +| **Sponsor** | Jonathan Hseu (jhseu@google.com) | | **Updated** | 2019-11-06 | ## Objective From 4a6fa51b97c7d607199c3db301ce28644ba464aa Mon Sep 17 00:00:00 2001 From: Zhuoran Liu <49047362+lzr-google@users.noreply.github.com> Date: Fri, 8 Nov 2019 16:36:40 -0800 Subject: [PATCH 3/9] Update rfcs/20191106-tf2-tpu-savedmodel.md: Set RFC# Co-Authored-By: Edd Wilder-James --- rfcs/20191106-tf2-tpu-savedmodel.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rfcs/20191106-tf2-tpu-savedmodel.md b/rfcs/20191106-tf2-tpu-savedmodel.md index 1b83b5548..09bb09c92 100644 --- a/rfcs/20191106-tf2-tpu-savedmodel.md +++ b/rfcs/20191106-tf2-tpu-savedmodel.md @@ -2,7 +2,7 @@ | Status | Proposed | | :------------ | :------------------------------------------------------ | -| **RFC #** | [NNN](https://github.com/tensorflow/community/pull/NNN) | +| **RFC #** | [171](https://github.com/tensorflow/community/pull/171) | : : (update when you have community PR #) : | **Author(s)** | Zhuoran Liu (lzr@google.com), Youlong Cheng (ylc@google.com) | | **Sponsor** | Jonathan Hseu (jhseu@google.com) | From b83d5455ab8e508bd3f516799f03aa0db094fd0c Mon Sep 17 00:00:00 2001 From: Zhuoran Liu <49047362+lzr-google@users.noreply.github.com> Date: Fri, 8 Nov 2019 17:07:06 -0800 Subject: [PATCH 4/9] Update rfcs/20191106-tf2-tpu-savedmodel.md Co-Authored-By: Edd Wilder-James --- rfcs/20191106-tf2-tpu-savedmodel.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rfcs/20191106-tf2-tpu-savedmodel.md b/rfcs/20191106-tf2-tpu-savedmodel.md index 09bb09c92..475ca8693 100644 --- a/rfcs/20191106-tf2-tpu-savedmodel.md +++ b/rfcs/20191106-tf2-tpu-savedmodel.md @@ -46,7 +46,7 @@ Some major differences between CPU and TPU Graph: VarHandleOp, and consumed by ReadVariableOp. Also for reducing the number of TPU compilation, serving platforms(For example, -Servomatic) prefers batching the inference requests with a few allowed batch +[TensorFlow Serving](https://www.tensorflow.org/tfx/guide/serving)) prefers batching the inference requests with a few allowed batch sizes. This requires wrapping TPUPartitionedCall in another function, and called by BatchFunction. From 474d9845d23352dd0a10bf04d70d171c7ae26ca6 Mon Sep 17 00:00:00 2001 From: lzr-google Date: Wed, 13 Nov 2019 12:10:37 -0800 Subject: [PATCH 5/9] Update: 2019-11-13 12:10 pm --- rfcs/20191106-tf2-tpu-savedmodel.md | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/rfcs/20191106-tf2-tpu-savedmodel.md b/rfcs/20191106-tf2-tpu-savedmodel.md index 475ca8693..62fa65d48 100644 --- a/rfcs/20191106-tf2-tpu-savedmodel.md +++ b/rfcs/20191106-tf2-tpu-savedmodel.md @@ -2,10 +2,10 @@ | Status | Proposed | | :------------ | :------------------------------------------------------ | -| **RFC #** | [171](https://github.com/tensorflow/community/pull/171) | +| **RFC #** | [NNN](https://github.com/tensorflow/community/pull/NNN) | : : (update when you have community PR #) : -| **Author(s)** | Zhuoran Liu (lzr@google.com), Youlong Cheng (ylc@google.com) | -| **Sponsor** | Jonathan Hseu (jhseu@google.com) | +| **Author(s)** | ylc@google.com, lzr@google.com | +| **Sponsor** | jhseu@google.com | | **Updated** | 2019-11-06 | ## Objective @@ -46,16 +46,16 @@ Some major differences between CPU and TPU Graph: VarHandleOp, and consumed by ReadVariableOp. Also for reducing the number of TPU compilation, serving platforms(For example, -[TensorFlow Serving](https://www.tensorflow.org/tfx/guide/serving)) prefers batching the inference requests with a few allowed batch +Servomatic) prefers batching the inference requests with a few allowed batch sizes. This requires wrapping TPUPartitionedCall in another function, and called by BatchFunction. Below is an intuitive example of how a TPU graph is different from a CPU one: -![Original CPU Graph](20191106-tf2-tpu-savedmodel/cpu_graph.png) +![Original CPU Graph](https://cs.corp.google.com/codesearch/f/piper///depot/google3/experimental/users/lzr/tf2-tpu-rfcs/tf2-tpu-savedmodel/cpu_graph.png)
Original CPU Graph.
-![TPU Graph](20191106-tf2-tpu-savedmodel/tpu_graph.png) +![TPU Graph](https://cs.corp.google.com/codesearch/f/piper///depot/google3/experimental/users/lzr/tf2-tpu-rfcs/tf2-tpu-savedmodel/tpu_graph.png)
TPU Graph.
### User Control of Device Placement @@ -66,7 +66,7 @@ for every use case. For example even though dense embedding ops are allowed on TPU, serving models might still want to run embedding lookups on CPU because the embeddings are too big to fit on TPU. -![Customized Embeddings](20191106-tf2-tpu-savedmodel/customized_embeddings.png) +![Customized Embeddings](https://cs.corp.google.com/codesearch/f/piper///depot/google3/experimental/users/lzr/tf2-tpu-rfcs/tf2-tpu-savedmodel/customized_embeddings.png)
Example of user control. In this graph, both ‘custom_embedding’ and ‘dense’ can run on TPU. But users want ‘custom_embedding’ to run on CPU for whatever reason, e.g. CPU computations can be parallelized, users don’t have @@ -75,7 +75,8 @@ SavedModel that only ‘dense’ is to run on TPU.
## User Benefit -Enable TPU Inference. + ## Design Proposal @@ -127,7 +128,7 @@ Users need to do the following things to export a TPU SavedModel in TF2.x: The resulting TPU inference graph looks like this: -![Resulting TPU Graph](20191106-tf2-tpu-savedmodel/tpu_result.png) +![Resulting TPU Graph](https://cs.corp.google.com/codesearch/f/piper///depot/google3/experimental/users/lzr/tf2-tpu-rfcs/tf2-tpu-savedmodel/tpu_result.png)
Resulting TPU Graph.
For Advanced Users who need customized Ops @@ -331,3 +332,7 @@ def save_model(model, tags, options) ``` + +## Questions and Discussion Topics + + From 9008400a9087fbeec55d58910696878d44d622b9 Mon Sep 17 00:00:00 2001 From: lzr-google Date: Wed, 13 Nov 2019 12:14:09 -0800 Subject: [PATCH 6/9] Update: 2019-11-13 12:15 pm --- rfcs/20191106-tf2-tpu-savedmodel.md | 267 +++++++++++++++------------- 1 file changed, 143 insertions(+), 124 deletions(-) diff --git a/rfcs/20191106-tf2-tpu-savedmodel.md b/rfcs/20191106-tf2-tpu-savedmodel.md index 62fa65d48..93f89cdba 100644 --- a/rfcs/20191106-tf2-tpu-savedmodel.md +++ b/rfcs/20191106-tf2-tpu-savedmodel.md @@ -1,12 +1,11 @@ # TPU SavedModel Export API for TF2.x -| Status | Proposed | -| :------------ | :------------------------------------------------------ | -| **RFC #** | [NNN](https://github.com/tensorflow/community/pull/NNN) | -: : (update when you have community PR #) : -| **Author(s)** | ylc@google.com, lzr@google.com | -| **Sponsor** | jhseu@google.com | -| **Updated** | 2019-11-06 | +Status | Proposed +:------------ | :----------------------------------------------------------- +**RFC #** | [171](https://github.com/tensorflow/community/pull/171) +**Author(s)** | Zhuoran Liu (lzr@google.com), Youlong Cheng (ylc@google.com) +**Sponsor** | Jonathan Hseu (jhseu@google.com) +**Updated** | 2019-11-06 ## Objective @@ -20,6 +19,46 @@ inference, which: ## Motivation +### TPU Serving Requirement + +Serving a model on TPU is not as straightforward as serving on CPU and GPU, +because TPU serving has special requirements, listed as follows: + ++ Contract between TensorFlow graph and TF2XLA Bridge. The new bridge will + still respect this contract. The information of “which part of computation + should run on TPU” is conveyed from Graph to Bridge by tagging a special + Node attribute `_tpu_replicate`. Because of this, we need to provide + information during Function object instantiation in order for this attribute + to be correctly attached to Nodes during Graph building; + ++ Multi-core TPU serving. TPU has various deployment configurations, for + example 1x1 Dragonfish chip has 2 cores, 2x2 Dragonfish chip has 8 cores. + The exported saved model should be able to run on different configurations + and can leverage all the TPU cores. + + - When users write their model code, they likely don’t have information + about how many TPU they have for serving / which core they can use. + Therefore we need a Graph level abstraction to express graph + partitioning information. tf.device() cannot serve this purpose, because + it requires users to have knowledge about the physical device they have + during serving; + - To make efficient usage of multicore TPUs, we need to encapsulate TPU + computations as FunctionDef, and construct TPUPartitionedCall / + TPUOrdinalSelector to perform round-robin core selection; + ++ Tagging system of SavedModel. Users rely on a tagging system to load their + models for serving. E.g. CPU MetaGraphs have one tag ‘serve’, while TPU + MetaGraphs have two tags ‘serve’ and ‘tpu’. Only with correct tags can + SavedModels be loaded correctly. + +Below is an intuitive example of how a TPU graph is different from a CPU one: + +![Original CPU Graph](20191106-tf2-tpu-savedmodel/cpu_graph.png) +
Original CPU Graph.
+ +![TPU Graph](20191106-tf2-tpu-savedmodel/tpu_graph.png) +
TPU Graph.
+ ### Limitation of current `tf.saved_model.save()` MetaGraphDef allows saving customized tags. Current downstream components like @@ -28,36 +67,6 @@ MetaGraph. However tf.saved_model.save() does not allow users to specify the set of tags in MetaGraphDef, but hard-coded the MetaGraph to have only one ‘serve’ tag. -### Special Logic in TPU Inference Graph - -Under the status quo, TPU computations have to be represented by a drastically -different graph from CPU. Inference-specific requirements (e.g. batching / -core-selection) also adds another layer of complexity. - -Some major differences between CPU and TPU Graph: - -+ As a protocol between TensorFlow Graph and TF2XLA, TPU device placement of a - Node is done by attaching `_tpu_replicate` attribute; -+ For multicore efficiency, TPU computations have to be encapsulated as a - function and saved in FunctionLibrary, and will be called by - TPUPartitionedCall. A TPUOrdinalSelector node has to be connected to - TPUPartitionedCall to do efficient round-robin core selection; -+ Variable nodes have to be lifted from TPU functions, rewritten as - VarHandleOp, and consumed by ReadVariableOp. - -Also for reducing the number of TPU compilation, serving platforms(For example, -Servomatic) prefers batching the inference requests with a few allowed batch -sizes. This requires wrapping TPUPartitionedCall in another function, and called -by BatchFunction. - -Below is an intuitive example of how a TPU graph is different from a CPU one: - -![Original CPU Graph](https://cs.corp.google.com/codesearch/f/piper///depot/google3/experimental/users/lzr/tf2-tpu-rfcs/tf2-tpu-savedmodel/cpu_graph.png) -
Original CPU Graph.
- -![TPU Graph](https://cs.corp.google.com/codesearch/f/piper///depot/google3/experimental/users/lzr/tf2-tpu-rfcs/tf2-tpu-savedmodel/tpu_graph.png) -
TPU Graph.
- ### User Control of Device Placement There has to be a way for users to specify which part of computation should be @@ -66,33 +75,35 @@ for every use case. For example even though dense embedding ops are allowed on TPU, serving models might still want to run embedding lookups on CPU because the embeddings are too big to fit on TPU. -![Customized Embeddings](https://cs.corp.google.com/codesearch/f/piper///depot/google3/experimental/users/lzr/tf2-tpu-rfcs/tf2-tpu-savedmodel/customized_embeddings.png) +![Customized Embeddings](20191106-tf2-tpu-savedmodel/customized_embeddings.png)
Example of user control. In this graph, both ‘custom_embedding’ and ‘dense’ can run on TPU. But users want ‘custom_embedding’ to run on CPU for whatever reason, e.g. CPU computations can be parallelized, users don’t have enough TPU resources, etc. In this case, there has to be a way for them to tell SavedModel that only ‘dense’ is to run on TPU.
-## User Benefit +## Design Proposal - +### Caveat -## Design Proposal +`@tf.tpu.function` should only be used for serving. It should never appear in +training code. ### User Facing API For General TF2 Users -Users need to do the following things to export a TPU SavedModel in TF2.x: +Under the proposed design, users will need to do the following things to export +a TPU SavedModel in TF2.x: 1. Replace @tf.function with @tf.tpu.function for functions they wish to run on TPU; ```python + # `model` can be any Python Callable. E.g. A Keras Model. @tf.tpu.function - def predict_step(images): - ... + def predict_step(image_tensors): + return model(image_tensors) ``` 2. Create main serving function and call the tpu function above. The main @@ -128,7 +139,7 @@ Users need to do the following things to export a TPU SavedModel in TF2.x: The resulting TPU inference graph looks like this: -![Resulting TPU Graph](https://cs.corp.google.com/codesearch/f/piper///depot/google3/experimental/users/lzr/tf2-tpu-rfcs/tf2-tpu-savedmodel/tpu_result.png) +![Resulting TPU Graph](20191106-tf2-tpu-savedmodel/tpu_result.png)
Resulting TPU Graph.
For Advanced Users who need customized Ops @@ -144,30 +155,35 @@ In such cases, we provide the flexibility for users to tweak `@tf.tpu.function`. ... ``` -2. Users can nest TPU functions within BatchFunction: +2. Users can also nest TPU functions within BatchFunction: ```python - @batch_ops.nondifferentiable_batch_function - @tf.tpu.function + @tf.tpu.function(use_batch_function=True, + # Below arguments for BatchFunction + # are optional + max_batch_size=..., + allowed_batch_sizes=... + ...) def predict_step(images): ... ``` -3. User can also use their customized PartitionedCallOp: +3. User can also customize their TPUPartitionedCallOp: ```python - @batch_ops.nondifferentiable_batch_function - @my_partitioned_call_op_constructor - @tf.tpu.function(use_tpu_partitioned_call=False) + @tf.tpu.function(use_tpu_partitioned_call=True, + device_ordinal=0) def predict_step(images): ... ``` For Keras Users -Keras users only need to pass `export_to_tpu=True` to save to TPU SavedModel. -(Currently, we require the Keras model being saved to be completely -TPU-compatible.) +Option 1: + +Introduce argument `export_to_tpu`. For Keras users, they will only need to pass +`export_to_tpu=True` to save to TPU SavedModel. (Currently, we require the graph +defined by `model` to be completely TPU-compatible.) ```python tf.keras.models.save_model( @@ -176,31 +192,51 @@ tf.keras.models.save_model( export_to_tpu=True) ``` -### Changes to TF2.x API +Option 2: + +Keep tf.keras.models.save_model() unchanged. Users use a keras model as if they +were using a TF2 Function. + +```python +# isinstance(model, (tf.keras.Model, tf.keras.layers.Layer)) == True +@tf.tpu.function +def predict_step(image_tensors): + return model(image_tensors) +``` -1. In addition to taking the keyword argument `signatures`, - tf.saved_model.save() will take an optional argument `tags`. +### Changes to TF2.x API - Originally, concrete functions specified by `signatures` will be saved in - one MetaGraph, which has ‘serve’ tag hard-coded. +1. `tf.saved_model.save()` will take an optional argument `tags`. - `tags` is an optional argument. It is a Python iterable, representing the - list of tags for MetaGraph. This allows user to specify customized tags. + `tags` is an optional argument which represents a list of tags. This allows + users to specify customized tags. For example, Servomatic or model server + requires both ‘tpu’ and ‘serve’ tags to load TPU saved model. 2. Implement an additional `@tf.tpu.function` decorator in `tensorflow/python/tpu/tpu.py`. This decorator handles TPU rewriting under the hood. -3. An additional `use_tpu_partitioned_call` keyword argument for - `def_function.function()` and `Function.__init__()`. This argument will be - passed through to the place where PartitionedCallOp is created. Originally - all stateful functions will generate StatefulPartitionedCallOp. Now we - switch to TPUPartitionedCallOp, and this routing is done by checking the - value of `use_tpu_partitioned_call`. + `tf.tpu.function()` takes the following optional arguments: + + - `func`: A Python function. If not set, will return a wrapper that takes + a Python function. This allows @tf.tpu.function to be called w/ or w/o + arguments; + - `use_tpu_partitioned_call`: boolean. Controls whether TPUPartitionedCall + will be used; + - `device_ordinal`: Used in conjunction with `use_tpu_partitioned_call`. A + tensor or a TF Function object that returns a tensor, designating the + device ordinal. Default to tpu_ordinal_selector(); + - `use_batch_function`: boolean. Controls whether BatchFunction will be + used; + - `num_batch_threads`, `max_batch_size`, `batch_timeout_micros`, + `allowed_batch_sizes`, `max_enqueued_batches`: arguments used to + configure BatchFunction. ### Changes to Keras API -Keras users would like `tf.keras.models.save_model()` to work directly for +Option 1 + +If Keras users would like `tf.keras.models.save_model()` to work directly for exporting TPU SavedModel, without having knowledge of tf.function / tags / signatures. The only way to achieve this is to hide those logics under `tf.keras.models.save_model()`. @@ -209,9 +245,14 @@ After the change, `tf.keras.models.save_model()` will have two additional arguments: 1. `export_to_tpu`: Simply setting this to `True` will export TPU model; -2. `tags_signatures`: Optionally for advanced users, if they want to have more - control of what tags / signatures they are using, they can use this argument - as if they are using TF2.x saving API. +2. `tags`: Optionally for advanced users, if they want to have more control of + what tags they are using, they can use this argument as if they are using + TF2.x saving API. + +Option 2 + +No change. Users can save a keras model for TPU inference with +tf.saved_model.save(). ## Detailed Design @@ -220,69 +261,51 @@ arguments: Under the hood, exporter API is doing the following things: + The @tf.tpu.function wraps user-specified function; -+ `use_tpu_partitioned_call` as an attribute in Function class is controlling - whether TPUPartitionedCall is generated instead of StatefulPartitionedCall; + Tag the MetaGraph with user-defined tags. Step 1: Use a new decorator to wrap TPU version of the user-specified TPU function. It calls tpu.rewrite inside the original function to generate a TPU version of graph. By default, this will create a tpu function. If users wish to -preserve both CPU and TPU function, they can set `preserve_cpu_fn=True`. +preserve both CPU and TPU function, they can set ‘preserve_cpu_fn=True’. +Optionally, they can use `use_tpu_partitioned_call` and `use_batch_function` to +customize the Function object they get. ```python # tensorflow/python/tpu/tpu.py -FunctionCollection = namedtuple('FunctionCollection', ['tpu_fn', 'cpu_fn']) +def _tpu_partitioned_call_wrapper(tf_func, device_ordinal): + ... + +def _batch_function_wrapper(tf_func, + num_batch_threads, + max_batch_size, + batch_timeout_micros, + allowed_batch_sizes, + max_enqueued_batches): + ... def _rewrite_func_wrapper(func): - def tpu_fn(*x): - return rewrite(func, x) - return tpu_fn + ... @tf_export("tpu.function") def tpu_function(func=None, *args, **kwargs): - """Compiles a TPU function into a callable TensorFlow graph.""" - def inner_func(func): - preserve_cpu_fn = False - if 'preserve_cpu_fn' in kwargs: - preserve_cpu_fn = kwargs['preserve_cpu_fn'] - del kwargs['preserve_cpu_fn'] - - if preserve_cpu_fn: - cpu_fn = def_function.function(func, *args, **kwargs) - - kwargs.update({'use_tpu_partitioned_call': True}) + ... tpu_func = _rewrite_func_wrapper(func) - tpu_fn = def_function.function(tpu_func, *args, **kwargs) - - if preserve_cpu_fn: - func_collection = FunctionCollection(tpu_fn=tpu_fn, cpu_fn=cpu_fn) - return func_collection - else: - return tpu_fn - - if func: - return inner_func(func) - else: - return inner_func -``` - -Step 2: Pass the `use_tpu_partitioned_call` argument all the way through -to `functional_ops.py`, where TPUPartitionedCall will be created, instead of -StatefulPartitionedCall. - -```python -# tensorflow/python/ops/functional_ops.py - -if hasattr(f, "_use_tpu_partitioned_call") and f._use_tpu_partitioned_call: - outputs = tpu_functional.TPUPartitionedCall( - args=args, - device_ordinal=tpu_ops.tpu_ordinal_selector(), - Tout=tout, - f=f) + ... + if use_tpu_partitioned_call: + tpu_fn = _tpu_partitioned_call_wrapper(tpu_fn, device_ordinal) + ... + if use_batch_function: + tpu_fn = _batch_function_wrapper(tpu_fn, + num_batch_threads, + max_batch_size, + batch_timeout_micros, + allowed_batch_sizes, + max_enqueued_batches) + ... ``` -Step 3: Create MetaGraph for SavedModel. +Step 2: Create a MetaGraph with designated tags for the SavedModel. ```python # tensorflow/python/saved_model/save.py @@ -297,7 +320,7 @@ asset_info, exported_graph = _fill_meta_graph_def( ... ``` -### Support for Keras saving API +### Support for Keras saving API (Under option 1 for Keras) Adding an argument `export_to_tpu` for `tf.keras.models.save_model()`, which if set to true will rewrite the model for TPU inference. @@ -332,7 +355,3 @@ def save_model(model, tags, options) ``` - -## Questions and Discussion Topics - - From 0bfae5b20f62edf29e3c3ffa4049eaffb1fa971f Mon Sep 17 00:00:00 2001 From: Zhuoran Liu <49047362+lzr-google@users.noreply.github.com> Date: Wed, 13 Nov 2019 13:48:01 -0800 Subject: [PATCH 7/9] Update 20191106-tf2-tpu-savedmodel.md --- rfcs/20191106-tf2-tpu-savedmodel.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rfcs/20191106-tf2-tpu-savedmodel.md b/rfcs/20191106-tf2-tpu-savedmodel.md index 93f89cdba..2064b7728 100644 --- a/rfcs/20191106-tf2-tpu-savedmodel.md +++ b/rfcs/20191106-tf2-tpu-savedmodel.md @@ -231,6 +231,8 @@ def predict_step(image_tensors): - `num_batch_threads`, `max_batch_size`, `batch_timeout_micros`, `allowed_batch_sizes`, `max_enqueued_batches`: arguments used to configure BatchFunction. + - `preserve_cpu_fn`: boolean. With this set to true, users avoid having to + copy-paste the same block of code for CPU inference. ### Changes to Keras API From b269f1326e5235e65327d29b10ac9a548d86c604 Mon Sep 17 00:00:00 2001 From: Zhuoran Liu <49047362+lzr-google@users.noreply.github.com> Date: Wed, 5 Feb 2020 11:38:49 -0800 Subject: [PATCH 8/9] Update 20191106-tf2-tpu-savedmodel.md Since this API change has been approved and checked in, I now update this doc with the final accepted design and switch status to 'accepted'. --- rfcs/20191106-tf2-tpu-savedmodel.md | 60 +++++++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 3 deletions(-) diff --git a/rfcs/20191106-tf2-tpu-savedmodel.md b/rfcs/20191106-tf2-tpu-savedmodel.md index 2064b7728..5a738ab6c 100644 --- a/rfcs/20191106-tf2-tpu-savedmodel.md +++ b/rfcs/20191106-tf2-tpu-savedmodel.md @@ -1,11 +1,11 @@ # TPU SavedModel Export API for TF2.x -Status | Proposed +Status | Accepted :------------ | :----------------------------------------------------------- **RFC #** | [171](https://github.com/tensorflow/community/pull/171) **Author(s)** | Zhuoran Liu (lzr@google.com), Youlong Cheng (ylc@google.com) **Sponsor** | Jonathan Hseu (jhseu@google.com) -**Updated** | 2019-11-06 +**Updated** | 2020-11-06 ## Objective @@ -82,7 +82,61 @@ whatever reason, e.g. CPU computations can be parallelized, users don’t have enough TPU resources, etc. In this case, there has to be a way for them to tell SavedModel that only ‘dense’ is to run on TPU. -## Design Proposal +## Design + +The general idea is to allow users to store a function-alias mapping during +model saving, so that they can refer to the function they want to rewrite for +TPU inference when they use downstream graph transformation tools to rewrite +their models for TPU serving. + +This alias mapping mechanism is because a single tf.function can generate many +ConcreteFunctions. If a downstream tool wants to refer to all concrete functions +generated by a single tf.function, it can use the `function_aliases` argument to +store a map from the alias name to all concrete function names. + +### Major changes + ++ For `tf.saved_model.SaveOptions`: A new slot `function_aliases` is added, to + allow users specify alias of functions they potentially wish to be rewritten + by external graph transformation tools (TPU Inference Converter in this + case); ++ For `MetaInfoDef` in `MetaGraphDef` in `SavedModel`: A new field + `functions_aliases` is added, to store names of FunctionDef mapping to their + aliases. + +### User facing API + +Users can give `FunctionDef`s they potentially want to rewrite for TPU inference +an alias when saving model: + +```python +class MyModel: + @tf.function + def func(): + ... + @tf.function + def serve(): + ... + func() + +model = MyModel() +signatures = { + 'serving_default': model.serve.get_concrete_function(), +} +options = tf.saved_model.SaveOptions(function_aliases={ + 'my_func': model.func, +}) +tf.saved_model.save(model, export_dir, signatures, options) +``` + +And leverage some model conversion tool to convert their CPU model for TPU +serving: + +```python +MyModelConversionTool(input_saved_model, output_saved_model, function_alias='my_func') +``` + +## Alternative Design Considered ### Caveat From f0999ed44432a9909bc8d16f8d96b12cc32f2dc4 Mon Sep 17 00:00:00 2001 From: Zhuoran Liu <49047362+lzr-google@users.noreply.github.com> Date: Wed, 5 Feb 2020 11:41:51 -0800 Subject: [PATCH 9/9] Update 20191106-tf2-tpu-savedmodel.md --- rfcs/20191106-tf2-tpu-savedmodel.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rfcs/20191106-tf2-tpu-savedmodel.md b/rfcs/20191106-tf2-tpu-savedmodel.md index 5a738ab6c..097f655ef 100644 --- a/rfcs/20191106-tf2-tpu-savedmodel.md +++ b/rfcs/20191106-tf2-tpu-savedmodel.md @@ -5,7 +5,7 @@ Status | Accepted **RFC #** | [171](https://github.com/tensorflow/community/pull/171) **Author(s)** | Zhuoran Liu (lzr@google.com), Youlong Cheng (ylc@google.com) **Sponsor** | Jonathan Hseu (jhseu@google.com) -**Updated** | 2020-11-06 +**Updated** | 2020-02-04 ## Objective