From 64b5ebdd8de4cde5c2ea3183a2412b3e3b6838fd Mon Sep 17 00:00:00 2001 From: Maxim Baranov Date: Tue, 12 Sep 2023 22:48:26 +0400 Subject: [PATCH 01/10] docs: refactor deployment scenarios --- .trivyignore | 1 + docs/deployments/README.md | 13 + docs/deployments/free5gc-with-bgp/Makefile | 42 +++ docs/deployments/free5gc-with-bgp/README.md | 78 ++++++ .../manifests}/calico-bgp.yaml | 6 +- .../manifests}/calico-pools.yaml | 4 +- docs/deployments/free5gc-with-bgp/schema.png | Bin 0 -> 60601 bytes .../free5gc-with-bgp/values/eupf.yaml | 151 +++++++++++ .../free5gc-with-bgp/values/free5gc.yaml | 72 +++++ .../free5gc-with-bgp/values/global.yaml | 49 ++++ .../free5gc-with-bgp/values/ueransim.yaml | 10 + .../open5gs-with-bgp-and-slices/Makefile | 93 +++++++ .../open5gs-with-bgp-and-slices/README.md | 80 ++++++ .../manifests/calico-bgp.yaml | 28 ++ .../manifests/calico-pools.yaml | 28 ++ .../manifests/smf-configmap.yaml} | 31 +-- .../manifests/smf2-configmap.yaml} | 34 +-- .../open5gs-with-bgp-and-slices/schema.png | Bin 0 -> 148540 bytes .../values/eupf.yaml} | 51 ++-- .../values/eupf2.yaml} | 68 ++--- .../values/gnb.yaml | 4 + .../values/main.yaml | 76 ++++++ .../values/smf.yaml | 7 + .../values/smf2.yaml | 7 + .../values/ue.yaml | 15 ++ .../values/ue2.yaml | 15 ++ docs/deployments/open5gs-with-bgp/Makefile | 62 +++++ docs/deployments/open5gs-with-bgp/README.md | 60 +++++ .../manifests/calico-bgp.yaml | 19 ++ .../manifests/calico-pools.yaml | 14 + .../manifests/smf-configmap.yaml} | 132 +++++----- docs/deployments/open5gs-with-bgp/schema.png | Bin 0 -> 205785 bytes .../open5gs-with-bgp/values/eupf.yaml | 116 ++++++++ .../open5gs-with-bgp/values/gnb.yaml | 4 + .../open5gs-with-bgp/values/main.yaml | 67 +++++ .../open5gs-with-bgp/values/smf.yaml | 7 + .../open5gs-with-bgp/values/ue.yaml | 15 ++ docs/examples/open5gs/eupf-host-nat.yaml | 213 --------------- docs/examples/open5gs/eupf2-rout-static.yml | 213 --------------- docs/examples/open5gs/eupf3-rout-static.yml | 213 --------------- docs/examples/open5gs/iperf.yaml | 18 -- docs/examples/open5gs/nat.yaml | 104 -------- docs/examples/open5gs/open5gs.yaml | 108 -------- docs/examples/open5gs/smf2slice-open5gs.yaml | 32 --- docs/examples/open5gs/smf3slice-open5gs.yaml | 32 --- docs/examples/open5gs/ueransim-gnb.yaml | 4 - docs/examples/open5gs/ueransim-ue2.yaml | 17 -- docs/examples/open5gs/ueransim-ue3.yaml | 17 -- docs/install.md | 248 +----------------- 49 files changed, 1288 insertions(+), 1390 deletions(-) create mode 100644 docs/deployments/README.md create mode 100644 docs/deployments/free5gc-with-bgp/Makefile create mode 100644 docs/deployments/free5gc-with-bgp/README.md rename docs/{examples/open5gs => deployments/free5gc-with-bgp/manifests}/calico-bgp.yaml (81%) rename docs/{examples/open5gs => deployments/free5gc-with-bgp/manifests}/calico-pools.yaml (78%) create mode 100644 docs/deployments/free5gc-with-bgp/schema.png create mode 100644 docs/deployments/free5gc-with-bgp/values/eupf.yaml create mode 100644 docs/deployments/free5gc-with-bgp/values/free5gc.yaml create mode 100644 docs/deployments/free5gc-with-bgp/values/global.yaml create mode 100644 docs/deployments/free5gc-with-bgp/values/ueransim.yaml create mode 100644 docs/deployments/open5gs-with-bgp-and-slices/Makefile create mode 100644 docs/deployments/open5gs-with-bgp-and-slices/README.md create mode 100644 docs/deployments/open5gs-with-bgp-and-slices/manifests/calico-bgp.yaml create mode 100644 docs/deployments/open5gs-with-bgp-and-slices/manifests/calico-pools.yaml rename docs/{examples/open5gs/smf1-cm.yaml => deployments/open5gs-with-bgp-and-slices/manifests/smf-configmap.yaml} (68%) rename docs/{examples/open5gs/smf2-cm.yaml => deployments/open5gs-with-bgp-and-slices/manifests/smf2-configmap.yaml} (65%) create mode 100644 docs/deployments/open5gs-with-bgp-and-slices/schema.png rename docs/{examples/open5gs/eupf-bgp.yaml => deployments/open5gs-with-bgp-and-slices/values/eupf.yaml} (85%) rename docs/{examples/open5gs/eupf-container-nat.yaml => deployments/open5gs-with-bgp-and-slices/values/eupf2.yaml} (76%) create mode 100644 docs/deployments/open5gs-with-bgp-and-slices/values/gnb.yaml create mode 100644 docs/deployments/open5gs-with-bgp-and-slices/values/main.yaml create mode 100644 docs/deployments/open5gs-with-bgp-and-slices/values/smf.yaml create mode 100644 docs/deployments/open5gs-with-bgp-and-slices/values/smf2.yaml create mode 100644 docs/deployments/open5gs-with-bgp-and-slices/values/ue.yaml create mode 100644 docs/deployments/open5gs-with-bgp-and-slices/values/ue2.yaml create mode 100644 docs/deployments/open5gs-with-bgp/Makefile create mode 100644 docs/deployments/open5gs-with-bgp/README.md create mode 100644 docs/deployments/open5gs-with-bgp/manifests/calico-bgp.yaml create mode 100644 docs/deployments/open5gs-with-bgp/manifests/calico-pools.yaml rename docs/{examples/open5gs/open5gs/smf3-cm.yaml => deployments/open5gs-with-bgp/manifests/smf-configmap.yaml} (60%) create mode 100644 docs/deployments/open5gs-with-bgp/schema.png create mode 100644 docs/deployments/open5gs-with-bgp/values/eupf.yaml create mode 100644 docs/deployments/open5gs-with-bgp/values/gnb.yaml create mode 100644 docs/deployments/open5gs-with-bgp/values/main.yaml create mode 100644 docs/deployments/open5gs-with-bgp/values/smf.yaml create mode 100644 docs/deployments/open5gs-with-bgp/values/ue.yaml delete mode 100644 docs/examples/open5gs/eupf-host-nat.yaml delete mode 100644 docs/examples/open5gs/eupf2-rout-static.yml delete mode 100644 docs/examples/open5gs/eupf3-rout-static.yml delete mode 100644 docs/examples/open5gs/iperf.yaml delete mode 100644 docs/examples/open5gs/nat.yaml delete mode 100644 docs/examples/open5gs/open5gs.yaml delete mode 100644 docs/examples/open5gs/smf2slice-open5gs.yaml delete mode 100644 docs/examples/open5gs/smf3slice-open5gs.yaml delete mode 100644 docs/examples/open5gs/ueransim-gnb.yaml delete mode 100644 docs/examples/open5gs/ueransim-ue2.yaml delete mode 100644 docs/examples/open5gs/ueransim-ue3.yaml diff --git a/.trivyignore b/.trivyignore index 0725d88f..52869f61 100644 --- a/.trivyignore +++ b/.trivyignore @@ -14,6 +14,7 @@ AVD-KSV-0021 AVD-KSV-0026 AVD-KSV-0030 AVD-KSV-0106 +AVD-KSV-0117 # no way to fix it yet CVE-2023-2650 diff --git a/docs/deployments/README.md b/docs/deployments/README.md new file mode 100644 index 00000000..7e95b31f --- /dev/null +++ b/docs/deployments/README.md @@ -0,0 +1,13 @@ +# Deployment examples + +## Open5GS + Calico BGP + +[see doc](./open5gs-with-bgp/README.md) + +## Open5GS + Calico BGP + Slices + +[see doc](./open5gs-with-bgp-and-slices/README.md) + +## Free5GC + Calico BGP + +[see doc](./free5gc-with-bgp/README.md) diff --git a/docs/deployments/free5gc-with-bgp/Makefile b/docs/deployments/free5gc-with-bgp/Makefile new file mode 100644 index 00000000..87a60a7a --- /dev/null +++ b/docs/deployments/free5gc-with-bgp/Makefile @@ -0,0 +1,42 @@ +NAMESPACE?=free5gc +HELM_VALUES_DIR?=./values + +HELM_ARGS?=--timeout 30s --create-namespace +HELM_ACTION?=upgrade --install + +free5gc: + helm $(HELM_ACTION) \ + free5gc towards5gs/free5gc \ + --version 1.1.7 \ + --values $(HELM_VALUES_DIR)/global.yaml \ + --values $(HELM_VALUES_DIR)/free5gc.yaml \ + -n $(NAMESPACE) \ + $(HELM_ARGS) + +calico: + kubectl apply -f $(HELM_VALUES_DIR)/../manifests/calico-pools.yaml + kubectl apply -f $(HELM_VALUES_DIR)/../manifests/calico-bgp.yaml + +upf: + helm $(HELM_ACTION) \ + eupf oci://registry-1.docker.io/edgecom/eupf \ + --version 0.4.0 \ + --values $(HELM_VALUES_DIR)/eupf.yaml \ + -n $(NAMESPACE) \ + $(HELM_ARGS) + +ue1: + helm $(HELM_ACTION) \ + ueransim1 towards5gs/ueransim \ + --values $(HELM_VALUES_DIR)/global.yaml \ + --values $(HELM_VALUES_DIR)/ueransim.yaml \ + --version 2.0.17 \ + -n $(NAMESPACE) \ + $(HELM_ARGS) + +clean: + helm delete free5gc -n $(NAMESPACE) || true + helm delete eupf -n $(NAMESPACE) || true + helm delete ueransim1 -n $(NAMESPACE) || true + kubectl delete -f $(HELM_VALUES_DIR)/../manifests/calico-pools.yaml || true + kubectl delete -f $(HELM_VALUES_DIR)/../manifests/calico-bgp.yaml || true diff --git a/docs/deployments/free5gc-with-bgp/README.md b/docs/deployments/free5gc-with-bgp/README.md new file mode 100644 index 00000000..d56afe08 --- /dev/null +++ b/docs/deployments/free5gc-with-bgp/README.md @@ -0,0 +1,78 @@ +# Free5GC + eUPF with Calico BGP + +![](./schema.png) + +## Requirements + +- Kubernetes cluster with Calico and Multus CNI +- [helm](https://helm.sh/docs/intro/install/) installed +- calico backend configured as BIRD + +change `calico_backend` parameter to `bird` in configmap with name `calico-config` and then restart all pods with name `calico-node-*` + +- compile and install gtp5g kernel module on every worker node: + +``` +apt-get update; apt-get install git build-essential -y; \ +cd /tmp; \ +git clone --depth 1 --branch v0.7.3 https://github.com/free5gc/gtp5g.git; \ +cd gtp5g/; \ +make && make install +``` + +check that the module is loaded: + +`lsmod | grep ^gtp5g` + +- configure helm repos + +``` +helm repo add towards5gs https://raw.githubusercontent.com/Orange-OpenSource/towards5gs-helm/main/repo/ +helm repo update +``` + +## Deployment steps + +* install free5gc + +`make free5gc` + +* create subscriber in free5gc via WebUI + + redirect port from webui pod to localhost + + ```powershell + kubectl port-forward service/webui-service 5000:5000 -n free5gc + ``` + + open http://127.0.0.1:5000 in your browser (for auth use user "admin" with password "free5gc"), go to menu "subscribers", click "new subscriber", leave all values as is, press "submit" + + close port forward with `Ctrl + C` + +* configure calico BGP settings + +`make calico` + +* install eupf + +`make upf` + +* install UERANSim + +`make ue1` + +## Check steps + +* exec shell in UE pod + +`kubectl -n free5gc exec -ti deployment/ueransim-ue -- /bin/bash` + +* run ICMP test + +`ping -I uesimtun0 1.1.1.1` + +## Undeploy steps + +* undeploy all + +`make clean` diff --git a/docs/examples/open5gs/calico-bgp.yaml b/docs/deployments/free5gc-with-bgp/manifests/calico-bgp.yaml similarity index 81% rename from docs/examples/open5gs/calico-bgp.yaml rename to docs/deployments/free5gc-with-bgp/manifests/calico-bgp.yaml index 6d7d1d53..427c5fd4 100644 --- a/docs/examples/open5gs/calico-bgp.yaml +++ b/docs/deployments/free5gc-with-bgp/manifests/calico-bgp.yaml @@ -2,11 +2,11 @@ apiVersion: crd.projectcalico.org/v1 kind: BGPPeer metadata: - name: eupf-10-45-0-0 + name: eupf-10-11-0-0 spec: nodeSelector: all() - peerIP: 10.233.64.1 - asNumber: 65000 + peerIP: 10.233.64.11 + asNumber: 65001 --- apiVersion: crd.projectcalico.org/v1 kind: BGPConfiguration diff --git a/docs/examples/open5gs/calico-pools.yaml b/docs/deployments/free5gc-with-bgp/manifests/calico-pools.yaml similarity index 78% rename from docs/examples/open5gs/calico-pools.yaml rename to docs/deployments/free5gc-with-bgp/manifests/calico-pools.yaml index 89d69677..4eace3be 100644 --- a/docs/examples/open5gs/calico-pools.yaml +++ b/docs/deployments/free5gc-with-bgp/manifests/calico-pools.yaml @@ -2,9 +2,9 @@ apiVersion: crd.projectcalico.org/v1 kind: IPPool metadata: - name: eupf-ue-pool-10-45-0-0 + name: eupf-ue-pool-10-11-0-0 spec: - cidr: 10.45.0.0/16 + cidr: 10.11.0.0/16 ipipMode: Never natOutgoing: true disabled: false diff --git a/docs/deployments/free5gc-with-bgp/schema.png b/docs/deployments/free5gc-with-bgp/schema.png new file mode 100644 index 0000000000000000000000000000000000000000..afb2b9a795a8e8e392cb60ae266adb821de4b7fc GIT binary patch literal 60601 zcmb5WWmH>Hx3Jp+1=?aM#ogWAp;%j7in|sG?pg|^IK|!Fi@OyMt^tBuaCiMe`<`>p zcgMLu?jC~?vi1sDGS{5XlufXryfo??{5LONyg>c*Q9}8}3;668FW_DvBf?q|wZ~^* zF9?nwKB*$ZE-z%0AlUntj>^&>UX+gz?mXW#7n2iv@uD*F?Y-eE*!$OZA2l6cyuhY< z{(1RHnerIci034!;iO_~=HzPVVEV$`#ujMG}t{7oSIhr z1t2Q8u#k3tzE)-w002Z)SS>WLt*x(L5Gp+ylYW+%LwNPd&lf)^DCizZ1Tp}5KlX$P z>j%3wUn6Eq{JmleaD(3cZBt4&f_>)i%0jnRmQ*A3tS&}0nmPF3DOha@V=gtUkZf%HPbG12J+>~ z^_7h4S=SP@nfDFo6~dEvW%#NyR>3WA zpNGzhL6vQNZ78`xz7nO14kEY4_In;z zr?sF$o@aJLniO%jy8k6n)rrtwkwvks!@Wh{jZrwIo!ERte_SRws2}_99EG=2^xus= zZaL(ydPFI|dK5bfvpt?e*S>g1PG0rnc|oGk=UqwhF5XgZ^POU&z9ssTo~tS(Eg?|{ z8yz|MshB|YXpTh|yhlWfq)ArJM?vrBZHZz+kq8b7@*3;05~Ih84GQYVVSDZlyRrp) zL}3lj*XetBrN3?DAeF!UVQsVue>=Xxupj)E8EljcPdG7Hdh@YV9TI%tEw<&ZDZeIo zYdh#u&Rw4nvjF|Q^eZSx@OiBPN|}5w@4eJS>L}xVX=d)S=^|gs$mP>v`OWHoLk8&d z?f_*qZCDC$D+MnF0AY|O;m0*aLgC$IMBw-D7$)qs7Lz0-J)7qoKd$)Cl?b}rYi?-! zNVEvC!TS0c+}Hg)ET~cHe}(1!$KoIZ8QJBz>kmZrShJKf^)qK}lvUIiKz7u_HzqB# zBa#R+i=|VCTClIfL&qKQ4r)Mq{QSxqu*gd3g2`QL6P`#XQ|YwxzB>qWxrPo~yh$=s z&etkS01$QecU9l83hjn`TgTa}4G3M6B&D9=89U2IBSM_Vopf==-;>6+D1GR0NSe2d zf3(b#QjRm#Vaew9P<6L^Mh(;6OwaH|H6 zdClmexox_`I>&<|h{Ny*IDT>V9AkFp&)OI;ewIk@e%>D14v8uDsavKhl(ra52 z$F9;Maq^F0*YbjeUq2ekO<0tQce4+2$FbKsw_N+~ga#fkT2XQgzI&N%pMqG>%}vhB zz1h#^_>Rc%+V^QW@X3+f-_RYE7!%z8MEFN~eRJ-0Splhq6epuX^~_4tF1}3Vx}35O zx_7`M&}r9dYYOo}B!uH;RWx?F_jkG6Q>5yy?N(iHp<0~rg1!RqmZIKzMcjVo60@(q zF=xP$ZLlC*+_$yeuyJ6Dv-d@Rf0i+SR?4UFQv2vmyD(%oq)_OlE80WYk(24yy}rXy>;QZTV<{;_ z_Kh0*--ZNpQtU>^Mm)i3+IR?f}4|%kq(Q+d)*i0Fd zcR{I4=}*e*X>|2~vrilt2P=<7;9BmSO^7s|B(`8&l;G1<7fo?oTFv0B{NIPP9=sm(O#mf=Yf+b_!cwB43bT{hVCw7Fi$qGH4j%EmNUHLs~e0{9j3ZB~t7{u^ff#|Ki< zp0FvdT&eMjy$%_jiU;iJy)u%nhkOF_cnY{Gu$&dV)#_uP6Io?wmA>QT`W0)1WLSEZ zl?{iPMp@73msXD?V3u(ofydkUBY36X%slXF49sbKID>m)5`T3R-1Od6@Qbx?)&piA z{eetdM2{a>zKh{?XrbZ?^>iBd?%>i*j5tA%7nPz)xXPETZL>{L^Oe+^rOpf$wQ}_8 z=6AG$IHepsF^4A|2_)tVZ#e3zhmzR^6#nSVdTFUe9u?oQQP91XG1khdJ!InjbG=}4 zr&4`cF~e)e%w2(`wDL~}Wm*Q?_Eu43WjO9-7UXALPR;+KF4iqFu>ECT%?LOTj|4|j z@erw8HbLa#2~2%|r8)H;w=Y6B7%UgjjejiWANkY)OsEXo+2YyXrgL{zO{gH21$$nI zH^Va-3&>baTBFoy2Gy=N`?+CCjLrsyHzBGDqfg7L)``R&=sWJK_Rl$zkq7_NyYKvF zjK4_yz6y0?d~6r_*&#EN4&u(UOvC~#47{j#BCM>iR=-U&<|;BX4St~-58is}WD64mI=QGwPOiHh5u-iEoyUgxQ|5=G@dRWgVqwlXmky^iX z|^H)0C~T zA@c8&YAg3}<#MD&d$^0JpKaqZ$`9+_^ABH-0$t_-0<|U*^VELQvJrw=_dikdQHIqT zC-c4slX&;_fdJZ7HQ0S5eA);@x7+03RDqmdj@sBU1Opl#y(R6wR>jOp=P!b&*k_mA zeBTLs_zJdRLK3lodUXTtbb-WnM+%?=9fx*e_u!0!4IpfXl(_GIlb`yu5e8jmAa|?1 zj2C`^i^=c1WLX%VdYXL{xw`Y#kMm zk+@3Vg$eOkqq~aTP+X|JQf1CFhc#3Gv*%alrCv~R)bxym2} z_56%AAnGshdF4ksP!sdBUikmqj_j5{?K~3h{zqJ=+_J;}e=rXQkdFI>K`p5N0YMh~ zhg;`|p#FCIYix2*pl%DMlHTev0lB|+y^SHbT$fg@6n7*;BvPx^a`h6z$IW!ZGV_n* zH>)Y6BUY|Y)@gN{I6sJsSK2J{>omK_RZyLZ{D&=1=Y~^wPDVwZ3cqpk@!_>UToTj) zA^G5UHzfI6Fu{_Iqxd%yO_#%k;Hza{lD9a_sz6DrsX{+21~pQ0@(;FR8zTRN(CDLt z`ww4R+A*CrFFY%7c~7T55`d7fG=88ilZfA`!}sYC`i+|TaPp5R3h834$pn2L zyuJt`71PA|YIBxD%ego0Pi@jHY&_d>WVoDPe|y~D?%A&Wz_~5y%lCP7r_)-PR(|#8 z)2B~g=SyF4+sx;J&2}d1S&A2xh@5w4q+{}j$4lMcUNlH)$O+ybQ_wFqd`YR(XtqgP zqL3L)Z#^C<9N#^GE$4Vkk8V&slwj) z!NI}BTS_y`peNG~I{zU89-G4XKSG|D22+Jf#g5r9nKgz<{@3yBSMzni&=U0uqlw&4 z+u(|fVkO-=YrK59l>B(jXw&?3LBE}+D_@UK@wvI;i9EK<%ukM*!%q)a%e>CJH6GTV zg?Z-Gz6kSZuG96g#Su|zT2AEBH8~xAmrvs#uvFA(jE;cG0=jOK6L#mZF8yqLXH~8D zsMfwF;__;AnLyanIUQDtd{yun6w(%5~+WPu6;-TdaR-<$g50n2jwBX40xD{2Ub*4hCZ$;>OEKY#w%!B)E@St+M}$>Z&)@Lg#- zhkAn@0C1e%d;XM?mGGiZA+_VF?e?=!o%Q4n+UdQCfP(Y_sDbMH6zLc77W;MTFK-!D zLN=e+d#>j%_B>?XP{LGKe_3xBUe03zNq%qNslTFdd>Ti8pT5rx)l8{o4)NgAW{Vdi zn1DpafkZQcQY0We(v&|Ym9lZ@`Xx{>;-r#s&`s8zaGgyql7eK=d&78O#(v|ecinAm zK{nFZ%lhE&%l?2Phfsu<^&ae93=Wif&e0~n@8rBOiI}DUc1K<>HDw3(vAU7rbKcWR zn$hQ%!A6t4g|I$0;mZwJzdjxD>i%u&+eZRlo#V?SRD;HM{g8cCgN7v6vq(8pv)+N^eDGYDeQgiN|5K zQrSnWVo_d&?F7>$iM;mN!XbQkDDjM%aFK%ZZ>!r=!>6WHYrW=ccF0AU0-CkzdgB<> zr`VJDt;*^q7OjcI^B+Nb4@OV8_t)#_#Z1N4=JPF*G7IkJ6g3u(^}DmdaBn?_VOnwH z=Z|V%e4V)jn1zP)8>k}2@0xxG}!k0!%IE3Vz<0Kc`qv&DURt>-2DZ%_3W%gOoT zi$#qFJ7L&~Ev@e_Hy`ag1}AZ7RC~nf!C@hQLkh!f+ivjDg|5HpS&r3cIy$#y^x#_p zeeX}Ctzpv@V%EsaY+zPrrMTn}yqJm!N{ec3W%z48qqNzOsmQZM$wjW(?hXY?wd>_y zIaUD+tug6UocCtRO6EU;BHT>u=&e2{4Bh@T6Q&g z3P`6uBG#Yc!b`B;%t14ZXZLIip=Z&F3JUG?>8XYSbJSnZaH@e2mo7NDnI$bB8v;li z{|B@ua)=v<>?`AdOJRPW+jiE^<0W6}Vv9ckC)dYa=*QbRkp@qX4<2vdy#IR`!swJ? z;krlC`gz49H3t9Dt>KgsQkA-g`@M>GRZ$xMvEnZ!#nxn+lXU*k#ReX?6}@LJvjC^6Q*A57sls1lSuV(?Q*fcd>k*lPJ?L_TRofw zk30OYx7UlVcM7O9ZqJmhXB(9ACP4>bm1`C4kHvw`nl0BfTufT$6!8@rSspuaD3D~N z3ieE*%lVRP`*HN`#k)^KX#xsyWCFlw@Snu*?JfuW_pnLrUOPm0L14B_5n+H}+Bv7= z&y)^1s5kCh%TqZKX4buav}Od0|3vG7@rkNjf%O%gieorero-3wbB+f@t_xX~;+r0L zUga1s)2(UvZ5DWA88wv?Oh}Rty{;BrOQ!VP!(OtqhCQVSquyN}Nw+pR+xuQ2*J@&-?7nEFZG~a;d3^RnMgA)e8f>J$?J;s-a`K7997EH`#hIk~WS8PkIYJcLxnm zk4Sb}2np@L#ZoYSf2P|;zfvOaiEb<9Ac1XLo~7uK^%SnB&vIFU8J%u^D)MLFKa0Tm zZL0Uke?iF_`UwWxq#WK3gO`nNC*;C68<<~GXa(@2Yg6S?xWCi}A)ymXxViCy;us19 zaOsOI#ZBLom(sf7^LDrTv3EEH8TGYTU&K{0+7Go-onS|DQmzB1?X9vDTBVi%{s@#z z(?<6G!>JwN)*p?F?N1RB_9Hwt3#xq$RF?@meO#7P9aW}-!92gWJ$AUp znv*#U!{cD}y0+uAnvtCj629B7rk4cs_7++{l6#KC0l5`2gu~MWT#J*HvPJ)JXG_F} zi_`;JT^^{h%jN!rq|tp8wtxAga}utf^%jf%8$TB)+jJ4+R%NUkORpzUVV_o^hdHna z{sI0&I#wZ0njx|bKgV~QL~F%w`uUJ&*~=gHgGu6ZO%{lP_kAQypag&XVh>!B?r5q# z0pt2YVrSEW4^`n7G1PKSbP|t|uw^h^|4h0&{4O%B=QwFkvCaXpH~>fD=FJa9%GtI$ zk(-09aFo=~t$rer%N+x`C|<`#ND^uc1z`Tsgo@yek-a}wh8WvmvR|VaM=$qamel|9 z0J6t-H=HJbV`ymjb*?JU5{KTmFs`eyA72qK2!uZYv1yiLD)~|pkN;EE#YW;i?O*vW zN622n?*{4Lct+d+%9?N_=OAx(^V)VMerV6uY|sn))-r$+=<*ZzM>5KTH$cv-wXDeJ zdl>!D(W`I35yb3xlaQl=44)9#Hm*&p>wh7_9^lmDiw)kfqm%Ia?kWUmjH5{7-^hEq zv*0P7p7=dL>|G8_dCfS%XM({-ujESqxpF~dZEv5mA9drkR~T4 z7JgUKgs1PrW>U^YhOxg!%NdL&2zRE)Sb%c8!Jns5;J@DagSg%p4z{TZK?!}EsiUj^ zuT83JtX}qqorPU#cLg&>fIBA4sohXpx)n?Cx+e#zA4lrn<{44FS-J1A@)+TJbdjSp zuXtPWLo8GOr>L-R8&VK$#dA2n{&Z$)0S2~N24s);)*)cZ|JlcS{kMrkdMC^yS^#OQ zIKupz)J`9vV8LfdZp4CQVgRBffq%kP!uz7J4A?4#)M-;wX|IE?Z^%gxY?& zyrbkPe@u&Qan@j$z8Q4?^<)rE3y7*hZSG0PushjAUbg8KZk?i%#xYb*P@4U=yNxA) z2EWNkt`#c+KiTAEy@`8KRac#u4VioD8Pw(O*6@r_<8??E_K_Ph^|fgwuJ~zU&upBo z5uoD1V6nUnW~DX@>~Rm>R!O_E((qQbO&mxWg`_TC1sgrIct{@LY@T=J^3hzlNVPc< zIheTomX4>25VzzwN2$YqP%k;d0Ki|4XcJ)b9MAs8vBQw38sp{I9+_os%b; z0b+}N;LLuS#9j^RI&}7EoRl}Z(B}A6YRRQ1_R}*tr!Doi<-6hFU5T+QL93jtl`0Wd zI7CxEzBVMC8qQ&FbUc~@y0Z?ZOxYhT>zYMpHIonmNDOtb^m=|>>`S~n@cH6@RkZ0& z6V|mj8+l`!gjBxdy+pm=rVv(|q5iXxL-N;4%D#uK6fl{3Jak-qks$+gC%go@2o337 zB;TH|obl+WwT<^88L&EHAQbfdd4xG?WXb%W88|@QtlXs$K2ENG>(dTqsb?Bf^%|dJ zU1Vpqn|hrK!Vm4IpPK|1Ux}WtuRV2Ry5E|D*ns0SYBQ=M)ymrDps2I+3oE0H5H48? zN^jfXmFCE4&WWuCg;(W#Q$Froo<}hYs!}~4PxS9ec!3%ixM5e`b$hNz_>y4p(|}iM zmT#RerJS_wr@c~#&+4gs4`V8g`*x)zHsq81zN)Imf{38q!7)#=r`~cdV-_~9uCWKD z^f_HGPI~4yJ2KyV*xXF8Xj20fiEyK3%v(QgQXTFTDX&(6XObK?1RqwCc|R{}uZ}ZW zr>pk}ldMbzppSJHSYFG{I%jNbQOZ+=JY^q>zUun^O{qQS+SC8xW38Kl>Q{3Lfv&{X z@q!S&6^M0OyYr1>1}j%WKL(Y;A-HPe5hq~YgPh6MCu{t=o)V}Or^lM%Ygy!#a%q`+Vqc4D2vPR_(!jo zHR;&UZ@a@M8wtm60|_%WHhS9Kn7!VT>!>L6nA#r&_9~={iOxPzVr9 zyq{o>xCz(1;pR63+-((vcNdEahGgL%d$?=MXGKewcXJDF=B}(eKW!jv zt4K0W3NMLKFWJH2lC!JwyMUs`|FQ=K%8rrDA5wR{tITJ9;Zy5-sM_XJTi9b+hPZc= zjm#(PJHH)*Fc&5Nen=D_ zeMG5fwbi@6np~ysFlJ%<+aeC{xhpA7!PJ=Wniv{Tm;odoY67)zG`W-#;v9yasGQy2 z4_}XYe~@T=E-tXylqqTq05fYICE|VBLcszVL zt|d96=?6l{+xrxT&(7+pBabj)!Ay6=zp}LaX_(7JIaXXQmaUAvdNLbiDSF{Yk==un zg_lUe@n*7{Qy)Rm&5N*ii0dd*3X#+}K9VE%TAtNffXNI|KARtr`Kkwv$7we&o#R3zvy$>RN(UbeU!l8N$70~;x zQuGl6?R^!G5&K6s7*Uk}U$hXDBrFUDWMJKwD=Y$szCd_BL4;F!i^_PPF6Iny8 zqK*n$7+n?Rw3&H_aH0SGvH2YCt>r@lCE>(bhh%q8nK(gZ+{ribH68!kBZ<^>*HB#nrgDpTaeDz+42U`YVCrNtTK1AH$t-UN6(v=Gr|+nK z|Eg5%a=k#aRX&8j!1! z22MxHnGoy884EtTNN6AoO4-Yx8%^p);g%|NEMkIJy+I+}!Ig?K0kO|0w}28z!iF(a0K z9S_rI2ivl&48Hd`kwN3^ANlCMb6YX5L4i1`nRQACcC{Zqlkv~DS?#4)>GJyQQrV-& zeF&J9K1|@-xsXpdIDUu^e4Jz<+hQI>r;AxHaj1%jETbulul{OfA-j{Gqv)9-Ee`<> zW?jamo=%8|NBw@_w^=%ljKIINX^K$yY~tSd2~!6HbN?6nLlTo^Ht^(Uf&z^$zk$|d z+_OK?XJZv_m2mEwesQ7$WVt-@$HfOm_713mOKW<#$*;M*#Bjs{G~&y)KISKDeF`7u zdl*-Y*TLo)+;Cg3N^txbyKJVT#s_4dtMbXW*a)lk9C^75G&Pb&f}UD>p8R~Tl?xd zW7|mD7UE(Y-W^39a-))fHJ^3+125vAYbronS8^;7s2yr+QhokbU_6VTm{79OX1%)I z`50I0)KxBVGxNwQ$@$JK25OfrSSD?q1uWrk(R8eZi*W0Vym1Eg?BIS@8-ZP2_5GJl zixFU{i9(EfK^vw(QQ?Sw6#A+ebEfLtx;ZU88FNlQLlZ_T6N7qPug;1vI&`TZmYal= zvk3{5IggiRo;6*)+k=)5dKV3`OVYpmww<=CObL`u2qhKaQ#Sj(FDfMz$8O6N!}hVi z2h~uXr}?}~IkXH!Nn^MC2!4OJ_(dD&e@z*dP#e+i&)mz9}VvF5NX{9BI76p%GO+0o6Rx)=jRhL<h|B;N!F$L z624=sggx49Z`!>A*A{xUIAVIL_WB%m4CNEYVdqM374WNCbH9#CE0NKiPYhjSrIDt5 zZFu0k3@LSWHF;7<8xa6o=)+)LF5eOl-{RHU0!axuB)pfvVNWpLp#EKWOAQb%aasb3ceAm0(2`^x1BQPL+<@qNw|205%bkQTSe_63oC z@De++0`|Y2E>}Rbs{O(=8`gU{9YEhyXPvXFQ9u-pI3)!?2N?T0d4fM&M6Aiw!19qX zoQ^!RpU|e;sfwn-g$6*VS;kd8t`s4@PX}4-Q@^t)k4+nVFl!KTGFSFcCXx-lQ-7Sz z;*YIzCVXhQ%m>}wlM8Eky({yS(6EJCUwN}EiL4RxxDeN#@M%I=BK6-zmA3@m1f}sm zJNqXyh66!fX#{Xeos^QU_x7!_pHzri3P-#MrmR!<@1(QfjS{m0e7#9CVc(KQkST$ik~s25a)Ky$6vp& zjtBH2u#8Dd^{u*2dMfh=UyL7X^}#~=X1SWS^-24!N8;qH%K4ii>n6IPZqtK~L;h%w zcI%QbqX~<_OI*TU4xxXJnbg{7OPnN5Ug>&ijuK*v=L>1YL5`WeUmGona04o7sz6_L z^Vp?&gC100*o`0ec$XNq5~`WH#DoU@#%}fiwbh0p|9`S5%TFea&d+cevlg0Oiwr=v?hVX zRZ$g0u)s451w{DG+J2iIWe=a}tO`GynQL2~^1<$^FO(1LZZ-87t-R?u{ob+YSFHR~rHD`35GF$)dHyC} zW{cqe>-z$`{I*XGM{}IQp(m&GtsURBmc8lF_S{KP2aWr(TVdR$-qfqnLYR^dcGtqs zckv}YINNvYFtjhvv+|1A^jKn2^R}^f;FJ&W~5PBNp%!4iYo;SQ>dKvjMYQot>Ngt8&TK z31$iZYpgxX^redK`b=s{m>+$C1$xOnzaODt;+8h%y`q(i9r{yY@yRDA5BU(c=v9pa zv)oCeI=b7& z*}lwpRlS~GQ$naxHN=KTLbIpoc{OSwz|$(S@2#)x;38sizCC`cWZ<}of6MW|i5{;e z#XKR0c^v{aBljoC8geQuPbJjau8Wp;-~0J*4Q-Uy*lL?)orgbbTZ=I26-4!}n^rPv z4@b#z)kfo|INs)DF*aJ?u*R%AkLryWD*4=0^V$(DlaJDhizJ$^`2V+;fl_zEU3GQJsZMM4?4_?Ecek~~{ zlo4KST9T|bc!yeur70)!ZoiS{fUd85b+#vQGLx@qXI|0sN~Fah<>27brfVW~Nn0;$ zy$n`EArjR({4VN_Z&_2R@6fHjldVOl-{bBBRVl#?AzoTiIqiUGIT#LLf^uLcfT1K| z05-&5lEP{cP|3H!pTKryP7L%x%V#=FWqsF*t=^eKy{RGNn>uNWNF73|ofj4&+B~2K zP)x4TR^7>FkE6m zTNY21c{Zz_4S`TjDy$E`RW2bBTG?A;romW}SBGVScWWruxEMWtON@hqQVi=x{q52anH5VV<^6k>K{@;Z=3*gR?=a zUEa-IpGU`@z<*T7C8ELx9y3Dr2Mr#q(t}i13g~;?EHhbOfD^7Iex)b^5x0kBEvNY@ zG_i@E$q~XFBi#3cs&P7BYkQ7U8)L#W6FIx`l}J+VAh-MP-~$KsgAPIfq0l^?1j`sd zw4GXEhiHtdQNgJq#46+R1%rfZFnD>?bQ zpIn_es3sV~@GOJ)hDjm9){Guhs+d>Qu<{&t_`fcZm0uxg`w%oayQDv}OL4N$65wbB zPoqL>3e-%))R?uU%vOB^J^RW60rKOPat5PJN9s_GRQt1~P4UWMzAQ$jey4((vO%Yi zZ~K?>(8UrWl;+_68}rCBJsX>|c;-H7h)RYsx4nHEkWLOl_4~KE+3^p z@Q)7z!=4EcZRp};lyK}u2QtsNSJgqP{~6-H5wleX(qxs8a2PoN_H-b)u>ZCBYqZIef<$0;Xr7lFn1{2X3?yu z4vJrQ5BX+;Myym@p5era{_dcS#*t2X#z{V{rN_5so=Hci|g+m4f-Bd()%;-vJ6x!dxx zV}l6d=8SWme6`csg-KtkuCyn=sm$m&chRtKe|afRYsoWKBC7$^Pna9w2wml?>4v|o zgG|viAcfa{O;Vw!cEt@IKsyiG!{#q@luxy2{%qi$N{BPnL)r_|>OyTEx@G55r9Pr# z6+b7T)B+9B>+WbZNo_!w40!SdrhAv=S~9rovkVy22AbM}0$<>u(wo=vP-i%8g0SWk zgbM_dDXj+i>_H{LSDB76EGFZ)@L$OtSgsJVzq3iY7VI1L_s>?Bmv-uyeubxj3>J~e z%OXD2e@61LMUMtbY_?hOwph~X5mP=>UJvU=prt+yBJQ5kQ4Gd1C$6@?LP4oq~z4P%5K#{kpfSLE(I#*92tNQDI(bNtMHzBg=xE-m$ z4!I0opGpjDt&-M>x%9DYh=2XXNz-GlcyzpC8Cy3(_`mQ^RcJrt6lIf8JR>PXVA|0} z9;}0C{6LMH5xMD(H`;kwsY|EruzStEl3d4o=B#oz{Qk~VCdawddcDP&NlvdX^=Lq6 zP*WEVQ^2|_r=%KvoP6#{kTMiHA&T%@{H`P-b)j?Vs+P+9Dh5^!)UVlcMB9Ese69~G z0u#HtJh(_bS`+%b)C+q!CCKY%^^ukOBXNHnr?rB(dw7On?6MpBEsL)^&^C`{sFJ967#Vg(={AavElaboMgCWLWQoFhO z=7oBs39@ZL8i1S-Q`vUGN+KN?Zp2{EU~RC>z9fkA$*T%D!|GXmpX*LW4PY@m5=U4R7PJi0c*;I2=D3?YOa708`g+<+ zIU7I?ioZ|DnZWz=z>Y32h7eB;;+l8~g=wCifmqoQeyEd>EnWS^VchqcaxOaqkC61M zmh+v(o(sG{$7jq#t9BorC_wM>Q|z*OM>0=D7m;2PYAWD-zo8N1Et{WJa*l{NlBWG; zBpBQg^s^cjDXL}WUaDIYL6Ovg$^QT+b zp?%20LAurN%rt{w{w3Y|w-qIac1`4iv_T*4!%xzYzBaoExmUy?zwCr;p=ZCFbV&rt zvvAf~`ko&Zj3t1=jZ2{d!d`u>EbIi$(dV9j5}jK@y%5}_^u8q}{5q+JKzAlNW_A$T zicIOdzyO!0N&oFF8oK!0OBswA0py+a{LO0$KbZfydj0cVx6u2dOSY7AkAgw@2+3W+ z%zeVjgBOkZ(gCs~79!eLxjB9MKdR60Nu7S7J!=?{DUYo}xPq(?dI)LZKWsk#2(eg4lb`naoz;jmx@; zq_Wr8ehR9)N?ZdSlqnl=yv^DOY>QQvfV`^3?!E5_xzOXLhCFMWh>UdF?=4MSa&QW7 zN8-yYwFojbn=`)f1WsqkVw(PsxeT z8{M`*_pKQcsl0VObMG~fHn&Pg*d9)FGQ`&0$ou0hvK>9h-0I!SDn5hvIrI^f)^t>x z%!mwhM6d|qiF&H0jgm@r_e^PxtJr=O`L9UXl)qN%jEI{bN{%A$fP^yq{BNuyefWl4 zhw<}$$;(z)kT#7vc*WzBnMY~V8!x6!Ck1||`!64f>TyiU zRuVRt69~H;*1bqWSOdKHKOk6PI=n_PyWz5rLveI)V$i!6evR&M!NV4xGq*^_NDK&}{8* z^PFf~C$JQkCgrRL&&;2V`5nw{ZXJ=7_*J9-eWK!@yBYY_uMmSc=X>qBy}xz-Ht4+1 zvDKWPC?M_50Cz$y-vlw;l!ioXiXF*+ercRqEJ$olj6A3pE|u$30;*4842;}*gTK|h z1UXk0itSMjju6ZKVp^r;F{j=I;fsfoAQFDM7|{*++!t}gLDE@OR`6-KpybK~TU>jB z@F;~a9qErimJS780Q!fJQb2ssws*!AMEZT9iNKt^#s+TWa_1X7{f}yXw0}Xm&M0iYXnBbL6n7vric5$FZVDxr zW=q;%_`lgr9Ok7~zp@D=L6n`;)8*v>jO96Tol9w}RwsaYEZjE3<4WEKMD#XI*}L z-m6iz%Ae8>f6H%)W$Rw$>h>v!%_F^KRQ8eE zI2Ei4x{7S*3r~|Cs5vs|U!M~D-RvVWVEiws_BtgM!#(g{B#!6en;v!lyz<~TIp?j( zZJ@Zh2w$F5d2H))GGc1gVm@yKiU*n1$RDNBC_U3ZmUm4z9aZ01ss)EPq}+2N zeZ3^z`5D_9MbIS?ON#5wgeq|1bhu!Tw0wYR<{KK?eo*A3#0L96M&t3Wx6n#A9iygh zl@cC_Lc3Sihk=>tUE}-QiZDr#%-Y+wH>8r9&XO-EAm9P++}=y)v(mg*BhsJM7iUy$ zX{=AT|s;=S9iYyg2(=mR6M zC~5codlV3IEtjD6g~|gu$iR9D*xAoVsA^s^xt&-(z6^2_i1tSPE>XdQp!slM0cLB8 zQ8<5^?cu3c?ztncvNa(=52?XM7|K1K{i`FbEy(|DHM__8*N32>g#n;n;r(ejEUli$ z$uEialU>DYM?ut*1b|Uv5ee_T^hNCJZ0{#}Tv`Fm`idCwN?Ztdc*k^hQR28z6Pcrq z3k#Arf_Vp8vL(WomqLWdNZdF}97E9QdZ8+=2)oHs9;`lSP=W?(9e?=qT*_}qo*$=*@ zg<;&_m@k9N?}dK((OOB;Rh)2yoe~_0J#Dg7FdZqKa@#z|!Tv?QaD2)E|H*Yf6D;f@ za2r@vUX-?d3)iy>xc7_e=a~Hu9c?YcpK`UB)BP_b_b-q9zp~h~3y26C=6xcJ^B#pr z^}9Ud|Bj~TFFO4P@0w4qzWK_)jV7I`|E4%m*q0X$*Zuh4N3+g-93NS-MVz$eSQzz4luvU~c}g7g4RWHX-H*t@=weg5YGQ6z(rqEq@l zeAIVC`Y}Os3|E;tKfcqd016cwG3W!aC#>MRmJ4jwRCk?qcw=C7j*Ak|d_%XL&R$yO zhRmh!f3e-*}0by+K!G&TKpzHchK_h=^ay975i?p9}iBTxa!BDArE_aq;Ka zDb=~M1I>~z-@4Gp8CXS`?Yfh>BttuXMEI?J#8krdRg}(-a~MezietJD(d>iptxvO- zt>_F3Uh59UeZ^P z>%BYPg>6$n0O(s4!;20)fx+Pf}-~KxT47 z9dMqd+YNwAq{l|l_Z+qKzPOG!tjFJT0r$PV3R&4bm-V891Ia6}bRSppO9<-!}!9{@e$MdXimuiE#W;OL@s3Rs1ijSj^n7oGW<&*TG&>3}IgI~U(l-`pS{ zHOP0>I0jnXdw+ATS&5EE{*irzFfphNH8YpuQ3oMVhR zCPiT0G$zK>JLpUsxysH;wF=wx;5Aoa&}08^S4U~cl)+!|*8jmQL)r;$p$$!)3~|7{ zP!tv5aFifl6#mm|4^Pr`2Jg`vuP3yzZqmo}q}_xXrHwN!-Jjh5UcBl~1K*ACUYU_p z{p8UZ=}7p>fQJ?kGYCdofFC_bO^5~3d6nUf)b{lQl6E8R(0{VOI@Y`92=QeJ`(bzb z!YBAcHy@ae75Q}R5DGU%dN)5`l(u;-bCt}oQj(jtZ7@r&>9lnAI3J+~nYtS_&nyiR zaqc7*f8!axUd<#E7lw98bA(628R~Vfh#}!Cn;G?6!rd3kRSQkG?iN!pspF^?p`Yp& zARHh?`@>`M1p(5YzCEy zeYU-P-jy)N5LU4YZIbi=T`BK{-||IB78&GL36F$lfdI6hH3L;l5n7(_q#0pmWt5%i z-qlY1z684UB$JrqJNg4xiov-HOMH)i=3#m$bH78$8^{J8arbjRNIh z7v)SUJf%=dqeKLnTBT5AVaf85Ap;p!yGg%XIo28WE~9xOD{bNA9AdSEMR3iS)s|dE zEYYUM%t%wj^DP}Lj{*Rr;wcDY+Vi%*blYjqfBWMI==ZD3Lu0jWGavTAk zmy!EDswmVVhaGpLj;-*z4Q>Zo&*x!X`ycGvVuOR@@L3=dH8UVaQI9`3`5DxJg#N?N zRH9^eP(RrC@R2Mvz&yPV^SCsRKZavBgC4nY7z~7@s2b*{gjOr_<8DpOZdWU}Z|bx! zc=8gs`t+~3)ug3YM#hq-F8N7$wY{*2#Huu<>pAO+E)uDmXnUO8pRRu)np8Gzv|~hP zcGzOSwD&+VPpVWv8|Y))<#xh866`y9>q6vj00g2b{%U12k3l-hF7%7*18n_TYwa7# z+%Wc_{s)jJn+8kTgNfj@q|S4)+5WFQZZ*F>O=O{~M9O&Y&BG1z z_}*p5NK;pFR~14wSKYgV?10gUx4o=06ISw-z1=a$;4L>lt(jQurBxPk_p7e!hRxF# z9dbnXi*cAZj@shUvKEY~B3|pg^!ySPYY$soD?t^;378O2&QBVJx|!#fOPXBXgN&<< zG43t7&gBg6jbb``Ri7OBu7u_i_PfDEIZ^NFePuQ8F+QWcg{=COoM#$XJ;r|4PlD+x zg}Ch7;%h6eTqupOS!VA*nTCdtY1CqSyl$f<_p~#MUn!*N zeRcUUxrXS`dk9rhxD-`r+S2^nL->+!aeLDS9FsO4uxjpXN-#dnMRCbr?@vK7=qRcB zLKE6uC7uWcToA0wO%dXCbE!D(7)h?ldoj}2Twc5)H>03geo`~wz(CvXg@rj=rnZ%v zHQEPV=38R=DWZVZmW}(aoFM%YzKAVJvYO9NuV*Eu7$Fee& zO)>PZi@0lDu)7N-dZEa(5_OtC-SkF?7M~9^?n8Gkinb;CpyBSl};^Xr|zs-yKsHL+rtbbe3=oDEKvtT!(R=Z$CJ z&8z4ysextw>tTy@zXtUgyaR@}Vu6zfpK%%;$d0_intoo$({)mV=~^J=2$xPQS9Q#?Y0gUa zl2BXQ96o2=)_<e1t<_fH}Gbm{Sh`@hxP%-MP5G|(&N^tx=;3M zVPB<2KL!(>+&XexjM2Ig!fB=EE~?HfDhP2mBP29OcEYKQHgmogi|}@UD{#G;yY=nA zV>CF1R|62f=i8amaT;hI2H}RjKlfh%5jxI+P$AC{;tGwwPl%G4>$_XpxnRw zFtBN@mE`HmVDn&u{Oxu!$Os_b|`LH%jAWLxDKexEj( zd8Ss&+krJipFHpLKyR(zc5`z6Y%^-M8m4I+mP(~1DJD1}mTElV)zjP&KQN zguQgxVcSr)=;4A@WM){sp(Kv+Q6zC!Ksy`&`yp7lS&bdgWfM+-!syEGa2cmP=}XlnMSAeL zT}_AX7}5HXfO+~W60dl4@}aUL3Iv3)+{!rUI1QM#w~WHEX)`(gOX6S#_ll&w?rK0g zTR)n%@a16ZCwG{yS(vkx3XK9L>o5=A` z;rP~`OCVyK7Bbf;=W*Al)xAw~qI>TocEO7l{Ve;AA=;I|aMb_25GvvMbR&4_E3|?4 zyc#nOrhY3dh@;aTimi&{oMSkLtgVgPj+3+Dj-f~z_e|xzGr}paL)fozmS~bA(k66Q zP8!spY2ZvXlSr8$;8M3+Dy!SB#||C8qdN#7yo!TrTw2LM5a}!LiCrgW&CaGVztuvI z+?73zCCwba#PPTg7wnUZ*ic{u#eN~NR$YXAOqq+f+j)NbxSvx@D8-%Y4Oe-%={q@% z^a?^kVmy$EY?jqqpYB)wLY+>OfZ{&!$RtX)d%G@F!v!P#oW(;2CgYj(U~{fa4l#**QIl6- zZ5EQv6xXRk5AGOf!l-j)SX<(mHpDDt!Yt!&?jtw58S2ZpFW8JJ#lb-7XSQ;oxK|O* z??b5hka?0pS)d%m;OD7hFx&B~JSO`0a;y#*)65PxGDv#~%Jh^+g8t9o?DGb*DPv`K z?z|kw+{H9tK$ZSIVlHCBgN~+@L$L%~OX=SGRoD!R9c)A5-bQtTl6WkhmdL2)Z<(f= zWYv9TMzK+A0A(5Db3~W)S|LGxFjhX9o1ilVKxeF_rM6)MZ>MAjX@@cLZ31FMLN`{br74d23L-<_*7P+oJ z;od#Dn4~NI0U`g{#RtjO%Zp$943AZ^h(eq@viW5q4=jZ{5JpVIlalOWScPahSAv$b z`JnBR7|isQL6znUPjo^1mKRH^c)>h)L5-S=)eWABJ@s()fy<4V97_6Op)YZPgX)=P ziCfg|eZ>4xu%6GvQj1)G@c717;?p!rLPq|gS5{GE{-~*VMu{#}nqi)#w+d?%E!lgR z7SZ>WT@oz}C2rpxjfhh(0iD&K=N;yGMRTpBVFlu`E|40le3B&iN%4h#(aKJ?Tf#0> z9Q7a`d{EKju4+wY`97g+L7|$@NKvx(2OICneJ@8>V#`NTpgzg%`?|6yv$v4#_Ze+K zYX>Db`wt$OA$7Tx~O{syVlD*k9ekVxfJh;I-gS2FK1g3^Y^MQ&!cVl71Q1)*DoRx-AYZVv_5oY3v} zE_jGf?j1JacaIn-2QA^WDfW0A6hKfiC>(n|(O>Z+v|mO+A$AffUuJmoi}mAH$VJG> z$yJNP+No>?GEHPDp0HPx@b9nMMH<&{q}Ji^IjF-6Y{Pfh+4h21=ib~U0@)#3%nkl1 zSWRy<4(x#%zcFae8%GJ86uCA!H&tu!nf~1IZcuq`OM(2wPX?<=FB{(`I)h}POi0R( zRaF?=poxwc!@_eupQrukA^G9kN{t3~y`W&YcS71}|Mu&49MP*-xFftrp-h@fs;)dx zq+#nRh6Tvv$bdXACzDDr8?d|th>@jmVyDOTEqdzfS#R2Et{WD&e4Igcgd{ssgpf*j zl| z$Px8st;<^C6kpI*d^VJ?rYXAi^Tx7Q5w0BI1^C-g_S}EyRI`zc_Q1GWjuygCQr?ph zhReOBTyajaz~#0c+XC=OP0tCNXiCh;Gb9r-%{IY^5vc1w+x^6@jJ3yF`X6NaD6N6`tqR!*E^RU0I2ad|27Za55Pw9`H3^KEjl82yfNDcYmIG^Ol^-%=gw8# zzP4LIXw_eP;_*bJ-&2`!-Y6-k6DRQk9UbLKmp%z~3|OB?9ixcBWzR|<;AmYFBhj=$ zlbe@~o*5)wecgK>^R^rU4Lx4~h#%Ty-Q>O>ZR2H#8iKoBpT3gF=`(!H3wc?pcCNCE zti!8~8&l63y&+X$h3m(=t6Cn~b$5EG*L*UIo#Ew7bc;1tZpEd0B9;S2xHZ9KsBm}4 zpr!$8Y7YOLDr4IT&C10;=Uql-mF7kB9ssT`|Id~W1nzCN%SV)smuABJTLLMH zxaJdf+uTnS);Vf^-mqj@7N7s(jVVe!5e71V_owS`?3f1r!@R7O@6_PoBA#5#yh{v=-5!i{d^{yeDzh$#$9O2Xsz?Rvs% z6uO&*#HBZaA^srPSuRN#fPie&)M z<`t33RZd{4?;A3vttaXj%#?`p*tgH%yNJ=-eJhJo-hnt5P?d{w5ucISKe;%fH8F z^UkTwBD1Fie0l$QEY}$O+Grnc>G^oQIUk$75bal#VK2g)1PI^f2Xc<(sBzzyO6vjx z=`L1Z8B&@*L^>T+m&-zb=VNqw?HHM3=(3F|N;NO>$`F-B2yY;S6?@THvA9I|8_Ih>m@_(k_OWK}x z@Kfx^`SchvI|W3x3N#SISQo=hdwx z1x3GEjcw_a_AjvOy43GOH;l`XA68NlNLJ8n1;w&cB4yz zoYxn$Vch1M@^lKLeYwzgqP##dcJ?fvk^6UF45m7bA|HHA^c0%sZf;dH(nPuIf5B&} zH?mX5{r7GVFzgxHT0;9H_itwA1(7TEr9F+MPc@OQ%}^->)rb$shW7F=t5FoidL|#b>dG;Qxkv@ffo~12XNb{pd2fgHXYDt21x2nJ-GQLuslpCMSXElx>(yI z`{v=ZJIm6`PcBdXSjBHVW#3O?P#$^{x{rE52XVBeTcgn=W%|G<7E4TH%`6U9Ne+a> zMZ;0elG7R_1X@p{KT(kI&okK%&~Ng1?w@yq5u%Z1oz=LME6Pl<@32aXx9WcN!~L*p z8c9TO(btM}A}EI+gln>|{Rgs!_@*{t_i3NWIawrA3ap0ZnNOf|ZZmvJWGI>CGMlYN zv`|U1Y!Fi=Q1467N9k@U6zDpSw4Zu6@bu(u_vY4*6Dw+oTP))BkFp}XFoXS`q%N-& z#mmIKscPj|KcV{+uHmwWt$>}nJ*;kR8l9i(nJ~z4k6W$fhbuzETB(9ELkROzMb)a zeDn8h8=yyKhyt1m4kS07=6k2i7F9a3Y(x9={$+fRn9o}tt{vUe@YC|;K1hP6JZthm z1M}bYKu!Tt>UEv((yk_P{0P07lnug_pKbeU6#8PNa0R8{x zm|J%-9WwGE=%7uShe? zU|OIH%uuk6Gdkb1!{CFO)DkfnV#o7T-5`shJRaa9sRN|gCvW<|tH z0~(YkLgy)gn&?9o863o_triBPJX4m%pbrEKMDWdKs4r}53w0=?mnGc@zrUb%(z9cv zM9(PkW#Pqk%3VsDjBRd#5`hnEx9@dgrK}4w_yEh1evW@L_an;|X`#-#@IT?6k(J$J zoM>&NZhTR&*@@UNIpo^T^Xhtx>RZu0&UM*|`UT(E0Bb;7S=o`vYl%^oFn~ z>I(<7w;r1+c;1yLwl(fz&nk=P>xW&t9~u%Uf(T4_MY;7TZ*bHFFu`H%8Spo#KwuB? zGaJ@s(dF>kwclPWDUk?La8nTz3$TLJNBpNM#%(v&ePfIcx@|s)@s>j*rkB*K*nFSI z?QK+P(zrA5--G@I3HtlK>9^;Q7UzM&#JrTVJv%Ud+x< zz^6~*(H>&=M@CE#bN2I7C6mFq$-BtCkFhVemYo3GzJY_K5#6R}#==K+{^TW3yHo#l z#|^JZ>o1cKkG~}61eq91$loVC{|xc`BV0GO{`-%77Q`;lSR42$qm_$u9k{%0Ch#jl z?gr+q(W1U+h@GGl#1(L(=kF)slkHku3h4lv% zR>F%C$+Oa6RN%1$zT_dUz=;yT8khHJQ$`-f01lW+)Z;lt0FpuXd=231xqPv)Zj$+H z0#j7o*1!!RPdWkaOa02vgYkthZF7FUMfJr(i>E1g>aIEu@}{SWUy+0bDL_hqU0aCr z)(8-81HT0D;N%_v|NgfJ#|D%oPDRP(S5)?rPozX$7fP$7yfm-9@6O5|V*BL8lJVC_BbvN%sBWTqODCq6qHgJP`1MiYj3NUIzW8J~lwWvvxkUIyFX@ zKwMgwa?1hXfc|}pj#gXB=`lL}bK4DN;O)g`4hKh)cRwXgNduD>x)cFfHkcEYtDR#< zm+O7YmZ1bwot1(0x_z1i5M6W@q@6{-a7{gv*RGlhBXMNYD5voJ+UE=Wr>eaD1!%~I#`qDN7N$bP`_(tVN@01Sn||IP)r0(vP4(~U z^Mow1xG*yFM@7+Ewh|?+=}&MtC}n~PfNeAIb@~!=SF$L>AYSr#(c0Fzie^20u7BPZ z8*bU#4WI{Ldj-jKovD z`>)iQ>2sxclbDX)k+jf$?vtEp^dv8pQS>GT#x`dT04ozj^3obrB=PdtRewg%hIoNJ zKKCQA3jjfg>1_fs-Y2b&=lP>zgsj(g&ifFUpDR8()0frA-(3G0LkwUHPqm#a-pte5 zr5b%!DHIFfW0SVSm|(~O;+Vf{Llc7kGTKTCM5rCvc5ffXd6ZhygA>an+x?_rbIa%f zAP_LG21fNhnlR1uIv1wQuN->;vL6h*nHKntzZe3nc*PaSp5P}sv(JBWBexHD_BjR} zihS6~1#H4iqz5&>BheND_T+%CG{j-=1~ye|VHb?-QKT5Ui^ti>^wc_UeRUFHp;8B6 zg}JSX0$|>?kctWC0wo8#TP8w;@|@t$VW3`3HNLWp?E*v?XTR6lL8-PbDPM+X)*^iw~dg<$%{fp^Wz?4uO4dAyx+ln!< z+X+k<(pzYKRzatOjY$iyk~2g=!I}Ih339LwJ$IaRkh3=(;NRqN-#-_9CA4gjn6#KK z=LJ^Yr04^w!sbY`Tv781@f{L>s*0lL6^NZtXED6cD2CGOKdo||;Fl0TCulb8UB zf>*Is=1`!cIYe_wt)@I`-4TcUaoH)eSoMRaCG((d28=ZsXv@nslxh@Mf0ge4_axnb zB{5*v>)-#pKZg&1cMU)E5w=|`Q~=Lg9F7vy7i@Mi^hj`{lg23TAQ0&CxV@f04Sm8W zOs#w3WAas1(;P`$w2Vg}Od;vsANBc93gYme6eKyc6%ShRR4ZhHA>6=`@|L0bYswd1 zz$C^FK+!usx_!W>EqF_g-eOTM?vRwpJLtMQx7L_mqSC9>1Rh}HZgUy>pGEctYtA6d5Eb6#@e}B@{)3ebDuz>*Q+8eym2S*Ny$q0lBMtOBGrYr z`BU%2Bvym+-J#O!^MA*#{3PoeF$N;s=#WDDzH!!_xqCALl;JfBU?XuFxj5gO6R>AB z6Xd`n=I|AjjlX|7gQqY$OR;t&9af8w@}EREEG|W_qob&evY3ZT5Mx?+@r4u5l4HV? zD6UNjD3*gV--{MnR!KP5Zt~F~s{H{}EI|WMSio zE2pM5P5Q(4WJlV@d>zV|%tV@(;4uuZk=N#fN$iV)0*E%bC9q9yrK27-ZL@h8CUifT~$+MzNz-|qHYQYPH%4W z$*oeRg58KY0S}Cl`&0S_qC0Wm-r8phh^vpHs68qV(dY?^_REI;fk9?Rmx!E}{sQ2}Uy5({-jl zMfBnD${X)gmzqs-dXE}(w=Qp=jEr8l_q6YUe-1CYVF1AvCJ;+}dK*O#vU7R`c(oEH zBs*XzFSbTK9QlMligT=2gWB^X!&nh$y%ZrcIW8 zKFXIgZk0&K*9qW19A4VUfNgIB%%WnEEA!#rUI6)mS z4QS$=j5pTdI_0t?3z#Dk3KYtb5br z+t?A6=5e#0v3AZ^?QI<{bbf~NzE=2Npk&3=OV*AD~mQ_DQ&a@*(8Wd_0GhNW<#urwvg1-9r_arhGI$e(oe|) zlIbzIpgq$D!0^a@$(W@(uNX+8(BrMmhdRFaYoljr=kKYh_xF;`n6qW5H5Iugo+WFeo zE`tWOXmy6-`G3rp5B~RjSz1gWX!Wq4vp7+aRwdl>k|V(lNc0P1G9M8A|9^N}xzI>H zR~u(*_sk#NH|@rgg5nMW{U?t6Pr|}BZAw@{{(O;lhg2OontYK!`rDL1gfe_^_R4Gd zR(9H~$!fd{%r4i;oYP#7n;4%`FJ2P_$C^6nqO6OYD_$@ggq+exCAr34~L%(UQl02J({+>!lw3wiX(VDemK2lkBZZ(BEeKACVc*g05Qq$7g6hNCHm+Ba){NWNim+v~F zQJb(x%*mEKJrp~7j>{f41SVTzchOlL++11F))6w359^)CW%I5wjHK?69II*Z@dA$R zQxGx8t;l&D#?2QD$yHzr{)W)7KqJMJD5{}C!NXqfA(Y=S+Ts@&SB=QC$0k9iUwDc# z^+XO&_xG1Aa2yG;EOliWNkP((Qz{D4iZG3wQ^Hb#eQ2?$Xzr_Qn6<{m z?>w(pP0~}>u7H-x7_ib#A%DvoG2Qa`BN;lFW7$8eDR9!fvZ$}EqDOt`#444DN_{&` zFTNI&vocRg_>M(%1)!i7^&9m^Z(?3=hUX~V80|VvhN8LHsX@n0fARfI2bY_OgByB_ z283pRc-orL2pDlXR9hB9!VfmQ`=f``O*2MQ1fw5i+*DNTwpny;zNPDlY;dJ=Jgqh@ zDpXm((S+a#<(C8#=Sn3}hsNhWm4x6X+t>Z1+Je-v|$q4|Uq@>qhDU=9wdFeNuwO{F^4-ud`Kol8ZHL-7U z6_MKI2KDLOZ{cS>*b^H0&j+CJ2aO*TV^}Pe;EI%Dt0lC<Va9sp^u$;XA@wwv zul!#jxoF3a=9+RTZ}vN~AU7QOr{roS5Lny^Rq4ZK&S2SUKv7oW%sL-B-@a!GSEtR{ zy4SD9fF0xE!Hp{qfFfq>iw^SNWf#Nh2RI*?f-}k zmss2;L(DMiF0tN0y-IkT3bfnASW`z0YalA*N+VnWu%#F*Fin}ZF&Rw1()j_1jZM!+ zU6+v*FhJjEXS&?GXe_l>Y)2J}VgPIctwmFegsMHj-TZA&lrJqSU4(B|>Mr7cIMVY& zYbWb>4UG?v6&PZJ6Kw$SVH36<{el!pY=B@u|BK+wiTl0hb2U>$pfEq-6YcO31H`@hx_@(!%uuFdDV_+>6jY>v zfal^B8>hXA!Nt|imungC$1h(HAxjb{VG7M~I=GdM{L+MniL)<~6wE$;FyLk}QSerz zBw0P7Fi1i2ZJ|nBAQg%zJoX{Uq|*=%N+;3p;E!4~O5Yv+c(U85A?m)hj&MV*>yAv4 z^tf!NRb6BsOx-Wq?oXw)A(KM!G+m&XYH1Pr0h^=LbG2yPanbBG;#yj%E>Yd)4rhZ# zgH4C^DOoqdXzr<8E!$8G>kE)Q-7w*KAZIkcnH@@ee+RE!@`AqIWqShGHN3IXe1P}$ zs!(1LeiPgTxfHf&dWEbi+GA%(dktBnPJeW`RU%_BaAcmzU&evg&9IsR!gC(yo8;`m zIZHl@paPyv+I8m`TL*1w=plR4!Z%y^+vEY#k41`2YQjG?o8$o$NvO*nBqkvB7=FL| zWc%YFZdw8CrV3_zQbC{&;c+efT5#RDTk;y#?yH=IC7XqkGUGsI2|2is6wa?Tm_3i% zKtg<@=;UcJ(CiA%tB6ez4EZSY5bgtsk?I}tFc^! zKNV8HR&8=$0P#e>L{#b-!QhJGE7cP9Dd|)F()tU9b|*`*H*LXzPN8q$vC;0P=zNHx zXkqduA7sy!?vkk0F)p-bdT6uDfD)96LrfeMU=O~GwH+NwW-RjJM|MdPXhJQ#U5$vD zOgHMAE~9{Ml9XZ0yX3z0;8pqJD)<_UzGya9X1rXd9D(DAw>Sk&k>oceVjOCGu@kkw z{z-V6f^=pxr+8m7`*_*5stS#P|A7UBr3GC!6)LJOJvktr!1gpTTGyC;7ut!x_A(9B z6Da`7`=jR?k6>uj*41J27PBfsXd;Mvf{WC?I2BXZ>s5TL<*b=~GlUZ6rpFM&I7wh6 zS(i-p)E?rnIHZUqQjYKnu@jIMTo9teV)!+q-F&r-@RL|BK=&HCo3d7cjuDuDQ*M%~*y`z)bvws|0EFS!3GoK5?Eus%FofXc|;b(?(P;48yc^7A12*D;Hi zeT_;r5UENF1@UW_PHDNv_A$^_j8YVMry4@mNju{=R{GiCU(K6nEYh_^&bv<56-pIoJyjq&Y zm2Vw;mcC~y0YL4>^7YxnSB?8k}^Z&5}7R?$UPBfr7u0BZ7Ba1 zYKR4V%4QG~FdGUGRIGM-M4nuuwL_(jSVhgAaefCNvrbcj>ULj0IK*ZF1@lhX|8;&3 z$AV~hhv(fl=;EWZdvIlA9zLCdu$){Sd8ZvFHUGY zOb-)qG9T4q&)r+vgFof=R(9d|6686u!{wP||6$f&Z<@XC!ttE>*QYmHX0yj#?ndCr zaBR{m`sH|+a{FM)6$!K=C5#sd4ev)h&MnS;0VlX5E0s>$hLra=uT2$lRhYq_-CKN4 zUXNr5#I!#(e`M`@66u)`Xa3!!My21&ndRToadtA+&hz!dc&FE^c^2vavm_Fg z_)%2>^P44JfeHKuaTU?kD>b9_x2xN8f3j(3aX-a({lyPGG5yF$TL#j`44)d_${yNA zR`ING`sLS_s8oh}iwp4>9=d(YI*B?r0!jRXh*JPZhaC$MXRf1cyG=TkHE!Ml$B)p| zbRg7uS{o+9CW_L5h1SW0z#cG$?h@v;Me+T`iD z7k|8q+7hI3PxwGVI4S*;C^|Dh4^!@I$Ip{cefk1)RVMS!4-r2Yc-joAJIo1*>Q0@dmg~#Hz~aa3sV)1hsQaa zfjN)4owCaLM2=96pl6*DJpA>i?d|$99B3?(bp~Ov7Wp4I({0{)!+uGv<0-_4%H7-Y z-Tg@eAQ?hknNw6uk<4E2M1RIOl$5G*rjIQO%NE3n&4y{#Rxv-wF#ptcl5UcFd#8|# zz(OW^k%2vuNNcUxBLMM4Q=_fHuey4NGLWju%hWf>VYWXX4A|hI0vSWgJ3{WD*QAfD z<6%hkF&TUSWP0CKVZ1fo2v|>Uk*T~e6ZbG>>tH5y;RsrJM#S(jFuVQ3q<=2>*T+Q7 z)+GnBZo2vC!A$2dQ^}0dLd>Xe$7-pY`!#77`>}pCT&Z=nK<6PL{?{cP`q4nEb$8d| zY$aM!qjBcn)_&<3n2VSqrPvCp68xn3@yRl@X2CGNc7mzy?gP3|efPcOJoJZY;RJ-h zJd@WBqwwRybRXHP%n1NeME;r3+Il9Zm{6A2G!?Hm`aN_sCg=ea39tcUb{1nd=rEG0 ziyPSs?J6~~Zy~F$8X*f6JZ;V4m=YQO@)#@^tA;8T1cMIauAin#Ryq%vj<`Z#aDax6 z0;y@G6RPD^<7N|f0R4MjJ-p~A#m>tAqNs$c9iMW;P%Bn zW9f4J>GSn4dnVuWJ6yF**s|=N>d&F~0B#8a3I0i_%aOtgE-{of`?aZRX=WV6fj6#O zm>*7JJE!se=shpo?y*lREu4(d*AI|8nmYu1S4* zR&M*35A`qjiB*WOfR7YMx!mkPG|;71{DN&qpEvIQ`0f4jJ=SB>di=Z#!!9FXt3T)E z#d0+F6DQHr4ig5>#9SCjoFJrxX`|1lDGxNCtmt-K+pzk9pJV$K8!q!(YaVrZeqp}R+g?#zSVkm$`=a_Qw(&jGdw)kOMyAgGjtVS1I z$*xt`HkKQa)>U{6yev|!iZmj>=H-~Dx2lH1o1F=#MzcIQ8y94a%Bv#tMC#b*tLub7e}h3#bksqXLSKq?eqr7CHC3nx@(v zPDYg*{Win(j1`J3&{bOVUP~o2hETRlbw%*w@3B7?&J9UBx;d$@T9Zk69)`F|e&O+l zXUO6X`A$Yz)@DDbTK)-R&3E#vrz4xKwo)Z&&Ed>+`keoh`v)(kx3fb!lhT=FLF2*F zN1f>rk5REa03q@O;LxWcez3XsW+GyK>-Y20*OrG`WxC&?UbUC?om?+-`Lkd@W$>GG z=zie+EZW|)ezj?Ryo1xe7Qp$&Nd8p68SCkHEfKb277w7~_U(I$d^PFcQL(w_;4tZy zew3cKctv8k31_2|5$XAKg(H{GquwPRKzcEmdCj{fp916<1-ozUs!&&v9%LAE?!S8x zDjdksDii-Iuk2pM24|8*hd!9#m0q-#Mvk78BYOqF*6H!-OJtR{WarhIg>UJ~^7-rc z*;9&b;Ghs)Lq|Mal_D^3l593)HagN@F$y%;EqBH(-&M2Q@x#gJ1m2WloZ~+(R4pi8l!4zJ^Hp&$r({qW#bDbLncFb6Hp4c4rSij!Emd zGoKPFp%8YS=t^8*4B8tD!2bCnV{8Sb|Ab=!7&6_X%tW^N4R~iErUJX6Cmo*kZDP+? zfk{K~BlX?w!+Q69W__V2hu;q9inZ-ceMOU&{gL%-VJ#JyA{c)bkaRVj>_)H%O2@_K|AT| zzHLi2YU5*xaJkplWNo-vmmbP-Et_}-nrXZ?zDXL|(P*%NkDswuWM{9KYj@-oxVIwX zIJ$^o4ANE_$u-60rOw@lXw}_~IDcJDr|bHy60Woo5F}@IhGET4GWx3XpNA8L1W+hf z_U)10EaKrN&=(E2l{<#pZ3)^Ek9L#)*7mR2Vg7fO~@cbbjB{98NpbDD9Oz&EW) zlsP6{w^(Er>x+iHe9fB5lscMU$o$QC)Y{xJ=dw-|08?X)tpy5H_EfKnGB;YD6x*J3o>9b_TcTAy_mnLb;( zo-ROpp5bfaFed@y?(7H8vu$c-!gPsooQUx9$=QA8QXUM|O0|MW4br&%P_{abt04$q zMEXa)5_2(B$bJNaLE1_s|>TyzbVzEvn=TH2s0y?X$$lQM}%Vci?4cqjoG+Chx;dwsg& zi;6O9ih*CJg<5L?9$7(s5!U6j`WsHEaJF>%!x6rlXDoK>2$yMlqPU^WfdNIOeAuCn zb%qFkTF=SPac>YXp^Rpaub6#%y5{vGz69akP5ALOo4_ul-*-4uq4h}pY^lYOYpcer z6dRU}pIEaI9i`iLWq*>xhDv#>?%Jp*sdEdr6D}fI{VC z9?{zw^-EJ4B{YV5x9`Q+Kh08?q+Elp;BqytnDxTL5c`E(i&nq+KQ0LZz3{{vY*7S#j#=gsVU)J`}jZFoR$PCsXiIo!# zdAv2Id)c3nm51~?!9-g#VbAy`V^css9j-*nOsM#(HiMG|S!~+4+9sN6(S<;wY8L4K z$m#DptqGH?|B|25=tq1e?!%6liog`&4tafqhx&-8Fv}nP8ea{8h7Gw zuu^Zt0$jRqzaL_`8zX@Kl?JF*E;AgD$**1(Z&r34fcO zQbl+0qkr`NaoV7bE;e+$Ur6Y8bO?GmNVLXXjHRb|DGzekKaDgLJaHA#B+srzAXNQT z7IQHLcIwq>$L)IReZW#|D}OPGTO>e!>CAyJEbl{^U_ZxBXk6~*v2H_RqFoBO0T^_= zOeq8!ry30<(=*8T#Sn9*OW`@>G$GejrTYd7;HG3aWgY~v68U~64c1^3Ew+?QEV z5c~GlWSUVf%_|Fj{}TkbAtOB=He|Ll?W z2i%Vq>d!j2g+bOy;b?*PzOVB^Gh+j)>*u6jHA7T3Li|fa)~UhPd9}G)CEFK|IWl{^ z3TuE?X-l9-4okv=cCOrx7SUtTS#Ww|2sF z0>+oT=vXK>QjAq3A$gkZ-Ge4^BG&I`(*}PjX1Ob$+?x!WOPsX7HgH9@z*#a?z6&F#mq)l?~bM>w0w8q{YQhJKR8FwFPe}wMCya@S8uC zv(zCAp?}&0IQ8ZA!-Lw(8m#xbgq*7}rf1E$`yL4repD>4*;7G*}qm<2)3&X3iVd5SS+USa-cJsi0;oOAVzVeq{i zv2PCOqUaVa%&h$_xBTko7DhZW3P7<5!r7KBvR_=VOiY@WviKOoZ-xD%YzfUpr zd9)9eg!xu*AWURQcAJ1;F}zUzy1-V9eEp2&V7niEzpOum3C&e@qyrv$e91$dgl2oi z{-jsVMb>Ujfuv-iAY3qGCfYXUsQn(++kZav{0yjPzM@k3hJf$Z25&96Q=W4D2GB=w zd%AR^YCN5J#kAU6t zA|TyJr=)~*hqQup#{s0f>(C(}Dbn5Dormu3?(Rc(%U5H4OzdWULvF4 zz*iiqRhG}|Rvmwkid#^4uf%b@JQkPoPSv2@Au=5L!KDWE=9AXUw6JTtn+SJfxmv z+LG!=CF_B}W~iD07|;*qf--);aY%eINT-a(UNPE4Yo(N>8XEm`n3;w3wLqD?hR9F4 zv5nX;3bRL{(Zfz)&mCyy?BslPg^h&Re2=?%o?b@e*cmgn3r;pL;@@yW`XU7KIFGQ_ z&#jALSYc@bMnV@A^5WSCRWR0`ce{_l%Ag-2^#-pOM-CVwHx2slGt31ms5^gY~)(;|3XZY1=Y-f4F9IVDrk@!EiLAy7FkmF%6^);XqFg$bBx zAuT(~wTwOt%eNGnKHQK`VStr!&b5Sh(>=Py`a=C;ap28dBEgRVSJ~E>tRVsgnhJ?& zm8MxGxD)}JtN}>vH2g!M?pog{Y#Vv*IUC*=nqs&Sd8AuplJLg0LwN5VKHd#y8W?rj{C%^h?35K%k5+zZE$L z2Q_~2kX}4zQ@=SO_*Ax#^Y3wthQs5y^WtA*5@9}P6m46IJlyeT$;oz@i+x%G;GE6a zSEimc6~b#w3qxT#p}lQGU0V&tB9c>g3L+;0*dwae?{nZmpUd+X)5Xe=4L0)`{^L7m zp}*N#EVkCF;nWsl4mY=QL3aB`D%_Y5U1mGk@RQn!+<~tBXHuSagY~mn0)-3a5{%q8 zm=QM)&Oh4;H@mjSZ5ccYKjwv+WtMmz@#wy1QJv&=@l0$?-MJbf1rypYp2(HAo8E&N z@FEUYl7o*PVCaXGwVL_fk3;qkc^uj_JWsZdR(6&4{N?F#%-v#WwZ5a|L77+~6(Td= zP1hQVK%4H)#3n#jakj>pYFV|_5fw^^@4Cv$U&Hnx7MjeOxuft;^w}M+A^}X3WU&=v z|HBP)X&|AWl(6glSyey~)j-BiesIMKZCcDUln>)YR5Twv!I%L0Q0ryplUHAh&_EW` zzg7vvu@a1H8((!w^VG7P5)M)&NsXI=BLUg`)Sk&k3){0f6!32gbFrDeqi4P?T^-Nc zV&lflp{R>f2(4Difra6JATPa5%%|2#0cbLP_+f_UnC> zja|_%&#n2mH8q5pO^eMa7P-t52jc6=_D%wYK_r0NoaIr4c{!a>B3khpY50_z&#?vS z?$ntLbUJ6k5gE*M-m+D0tS$p>wp`4JOx&Ep2@(fT=ji<73nGiqNdl9k`b1BT$oK~n zyf;0TM(tHZ(I;{c{pAN03hPwly?3?>ocdM@p2e|Z)`QuylL2}s! z=kQ-{>d|00KTut`0HE(X5X}{cl{9j8v3%0L@6c>76O6ZRXjA7_Y7`_<2D< z-hRv*OpPj7szc?yb$oS=+V%!;l;9$pI_ZvLpPU?^1x$gXs~!v8 z@J^q`E_vR7TimENK<$SGK$mO4PxB4*yTnuPv(!p@K-+5t^L4S<{Sx}ZrY!$N?%TBH zHu4Z`=O?5_E&wu!NxmwcV{ro$d4Vt@2cR!VL9eZW_-oMa3BWq-sNflz3^)Lacj4xa zH>e!WV%RhIaFU>wuTFfSNJYLuodv=f zdZ?ajPkUHvV0??VRm0N&P0vXH@HlIevCaE%N2kdg}0>--?Y*x)553}eUvDL>v_s?(Z0Yf!KelPM9jy3zS7$g^(wUC8Gf+mLw%8j zLS=bVi*n#Ci0{cW(+49-al?_nIOqF!XJX4MteC}Kc>2Iiq$rN`K;=|>Y8~>yWVyi|4g3uUYU_Q8R!s1^u`yUVc0@0-P z^$lg-@q|O3EcwP`Im?Of+!v7_r0b7RxdW$0J|aHc+@PK#9wjq%l1HA!IaiY08FpOe zzPtk`i5p7;a$r))jfRqY^>YfX+UdWJJ?f+751z29Hl{CY#ws`VXyuq=mCbg9=gZyK zJSB5c-gmYSipy*6m>}?}pa&KodMtg#$`^o#|M6dUU*s3!=5Ba0&`=7i48s`*mveyC(fZyt>WE;2WL|{+g zAvrJZVb4O`mBBN^{jym7gL8nUvihs^aQsrT44Z+-72IfSv&X#DmFAnPiN|45U(3gm zR1QL28~Wh??)hhfVa#Usf)8&6&enyyDoq66F(d@i7I*O86D+{hY;|GTZiw)zK7S#) zt+mJiVO%U+tG+oNwvqedQ!27k|W-rIz<{z4$g$PKrE@@AnoomzBoZb`8 zA@?Cs9%lF_oD!eYQkU^$&EYRphg*T%k8Ma*B2(z%`#%DRU2}jMT_^wuW$Zo8?S!hy zXKEt|NT$Vo+2QaQe--dJ>yb?XT)s~_G%+$%-EMSUbHv4C${F$`(*VVoQOeyG^jmII+=H2KTLbG{*D!w?6b~WGtoOOA4}*z*MX_y~dR#LzlY>?&$vy0HKqN zAKA6($NzFbi#)iTC$x%V*Pp^|@Fy{_FuFe2AhIthfwrrX&$&y+&XQqX|1zcjae!Q- zx8+tKE$klq6@P}%VAbQj(f5yY7QeM!&X?&h0=&XU&S!(}8t)#7EJNhP6K^QdpT|Eq zh9mY&+##q(Nq?aqVw8W94AZKVV`gyyTp?Xe#3?${L4iD?@%qktQYGpWILry}jew&# zQaL5r-P#4Ym?vyI32|{IBpI@QUBP#bmEM-d3;wG^FjwR=Wwv*f^2+P*z)w*WH|4Nx z<`n4RgCK;TCrErPqC_J{juSgkU?dJ{&+t&uXif-hD^bfbj?-#(fX68@ivAk{DF~G0 zGn!HS&S9a7@tP+5Gvsb8&8mbuhSqObYALmYTjf8($LTsef*RGF4`jD#-Q?%o`Y*VK z84RZ-$)b|tbbOVz<*^2#88@9#z*K;-Xq$VZ6A;HI>4V9R`PRcVb17U37v4(i51U>o zJ`HzP6)!*Zm~TSg)XFH60%Z=x_gI{%R5^0qBKpz3@|tr|1J%Z!(ATn;2%~xe-QU8c z#(?8!3kXHIm@MxGizVN|lL*8DLwK@E-5kC)`!#()XTqchZPn#?itRl2g9x7hM1Ew@ zeyK(`_&nUFtF7GcnxB+ntxGuOSg~G{NBiY5EA3L(`_&Cqq1JlNAqEqjwKgPbb4~2YPV>oRj8nD7jsI;i4IVX=?}q%Gt5MKgdHiyb z7_hh$dJZ}ZN~5`O0su{>6|JDH-rOPXRA*J@b0IaR{H?KU@68Ek3;=V?R zWj_#c-CI$Vv9WQ9D|ay`lP`zTt)L1FtEO-z(JBuicc}=`Ds;Eydv=UqO$F-rMz%yB zOUi2e5&KIDnD%jw_Kz9NB?s%$Fmz)9bX^R~J5SQ_0=D^Aj(dPHV_5I< zSS#`L0P$Kfo2cV(|FZepm{ujlU^}Wh>uezEyrCjT%b0M2iDm4FGa-~^MuNAT615!g z&xz>nbUD#k~lq*1M^8B&{Sm$FN?Py8O!%v9^VickTguj4X9Hc zEkgt!$laKEJ`GWN3MqhvKX0SK?XRAjTo&*iox zgT3EY??~ z6EQM+|I($@=M^#rY!q8$B()^8_$+WstQD;heX+ojy5=>{_qjWMEogO+nl)R^h-2OV z1;OFWDFZGB%P)Q3mlbTBM+Me^nDw1+8h~DD`p6P4rt0ntmshMx2>u#%O)3!m{nZlr zy`xqn_gGcj%p|B%g|19Bp)Rw=gwSMruM$TCNmEjw>Gr_r?)cnmvz$H38(|Rr%AiU~ zULO73bJahv2x*R5zh~4yO3)7VRl6~7?k;e%C!~PfY>}g+WHI1Dk=MF7emCq<_wUo3G<%N znj-@;wqo-2?&diY0C1}}9uyA33r1>U%#E^?#OL^m`g@X8)aXr}J;K9}`F91GKahPv zr%S5di{7ynT|zV~@=5zF+I8yDsmv)FaN`Q(D@tNvJm>bpIk?5QTU zxmFZ7o@QlF?Ou6ZW^kmu{C%pj=@vrrI!d>;_x}o~ki}8~1>1#EJ=e#~6;Vcoe*}?k zp?O3xqm0C}=kFzhL>4uyNdtD`D(LjTg&q6d)xix24^M{Pz`29$R7!tQc<&PkvMkPw zwB#%Fm-k<;V>w{&p9ir~ktpRe_AViX5g&(oijC7O85-M_ENjxc)=cQPeIRqcDfHzV zf;W)5b8F!@W!XLE;JFEgXHky8FN&86G7wVpEw8*?rKXTir7J`8mxq!E8RB2usJWgN zx?j|CX#>G#08D0%%7gA1LmRcyJf^0oFQC(zOCL05fR_VkO#CR_`Et81p|4S zAlCagazg~Yo@`&Nd(eEooy9+LQdB(Na6CPjd`fepa%WmlBO1Vf5f`Fn1(TLAU8lv>?CVH?cZY?h@IdXVlvsnKuH5kLSP8(RmWeV~R z*zx@^Cv#Zq&8a5+TpLsOZsLiz4%zy#WImsyJkb^XBxp`GGB@MT9LpolZQcPO%KYE| z{Q2u6iZ?E@#7W@HHD=Xr_k_|N-vOR6GDMB}Tz4msNpi6HHtV0i2EsiB5Wcn#hR$aH zz>i=0;)2ay4sUjE_s7}rsHCf<5iW@EgLnJl^>qJyT;stHR{RH$8rr=B3Q;-Y?4r#v zp_vlB6SxF@suy zOSS4Lcz86Py^nB(KGE4?(`lp2xfJ;a=)@V={!y4*6&kPn#u3B3^{Q)KmzUC|qi=Lg zbdLzEh$otyylBB*Ca)z(RUUlg%~?2*dtL6E{n^0 zx&0T?N89!Gw}9v7JE505N+#Xbk~z$KA&t)u0~t5-wKpz#`$>Q38rw=2f7y9z!HHQF z)KKj(Xa>dtsp$x?Zp5T%!Eo0_KWES=(KXnV%g;d<$e9u_607brouI--}n znI9N+MgH+XH=}(`m6c--#g9+w*8qbmfwS{IQc7xSxOk>Y=iqliPwQT{iE;A{j)ebc zy38ortYm9sWj%l33A6rj-wM4AB*k05q7Gb0t= zy4}M@^!hyw86Q^}=e}G`EH}1~2=-&|YI?`IVJv$TeyUIhqVdMR)V6QreZB3Wn9TVE~> zTHsAqo3$I3qboRrxFYr&9ronwN;0>?uaD*o<}382q@_h`&1d8r?TrAD@%q)lRB%{W zce^i)LJ8ih4~7oFBX516dMjitCDBieBVW0A(m=^CR(>s)KQ+2JzoDGM{Y1mdS(>*P z0Jr!tX+!8!hD@c1Yw>5khcixlskpaYt-_ZDNqBwP9QK;rAP6Qg6^p5x8}VFi=$*uPKawCV&<4Q1Q=Rd=ZVX7_LP%Ac^O zEtj$>{BD>W=F`Hz5OFF1)0C&D%Q3JV1?%6p2O(CHm8ZAS^EG=7pu=>E;&{p1X7dbB zczLgA;Ch%0%BfdTfKd82OCcM)M@t+C32kOVi>tcG;(q>D ziWHCi1Wp=Qixj{#UwOdPEVl)H+;?Bg29j&eQ*W~t@jaHlur3YS_A01as+kM!1AG>e z#(TpFi`%d2*SwT!b6JIJ`x4nqrU~!smaGBx-Lu^>o`|T3GFnTOgz8PNR)IV@1osfF z9XKQkIZ_zd%ph(4R&$nIk!d;t&lreT*DGmY@fkC8uoZwvxLIobUf@4dm zS?e6TCmAWfn6lJ$6WDVmi*H$sH% zf>ZB22366jI|p=nj#3?j>b3pAqOY0i?3WaE!8JUPBbJ?iYhO&;wybcN1$fokTZv6Uq)<^2SJ|!pAGn&db zQKG@N?6T&GCjhQNBq-IWw1ds;3x zDAaz9?O2;-)Ecibi&=eFgj)@I<~yHOlGE#K-kNCX(J2Z)oYQ@lv(c}(%cn}&e5d2?7z!DhHJ?$cxk&o}7pnuR7}9?wSad#f z*Z5nVbLBBku-UqlfCIk8W+ad%V;>6`_HUB2hLkA4t!Pb)6vM?TPzDee^Z5Vk;=Ne zV2$PcJm9(Gys@!sWe*~};T3$+!%RD!`uLjsoC`vnIjzyC#^rvVGb_<;lg-^5Bp627 zv{P0#fW(rc$8sb=+=U|SD10m(T(qvATAzN#tx_~=RJXP#+n`8x`g+ppwzgQ$cgP%Tu1 z4MHVWtj%}W9acCI<#XKk0q#&CnF76984)gn`X9y*Dp!xUed0ntp{t&O`1*MtaFvwg zGE67*Al;r}be&Zz1yRTi4nMVZ>tygPm+FZ5oKL&c1l%hu=9r$CUg8f1#KbUztOtZh zWpzU$(BzawtNKxY;{^b^ejcVV7=;D8NaRmOBe};dl5kmcbad*~#^HywQgHEACfWv! z`-MvRVrLC%Cp7i(#ApLM}HcPuuY`0 zX(e$32A($yd;8Ok#YNvBPM3L_OpV!WWLxEGacw^b-0qL!IOL>;eJ@5sIpwIq=hcm_5<}*d~*L7x7dGy3;sACis5=JL^mPqs#0!H%mFyafvrxV$d z3JtdUB_N3Ab;aj;z!gVV`A0#CO0D>;tSZ*m{bJFe_2TkY)!MSlUC(@80Rn#4KZwRg zE$YJWGwheVUs$HAnzX*IBwK@-IFf-081Lhlb$#nsJzzwGkb9510yk#Vf{KoAPMfi= zRK>6h050(=(31&sgS!7qhhEr<{&{3D4O#%sv)dv3C}Kv32g{8PDkr%_S>m(SgRd$k z!W4gEj)r3Bvi%eRk(prCnQq*9y*o{L=~;&YY(C>bj*YlUgfe9p%O(qoDIqd-vk z1w1!Js3Cb?7YGkm_aCzexPT$$LJeM9y!62aszvGuQ-U1O8C5}eo=>4>j3!YOqn-$b zx@{!5OzOd(sp*>kB3JydkmGYX4FFuo*CDqr{s>sTTmIjmTfbK!m9On@A+Q**^m#kG zsk*bL;?)t*495e#k_Y{OwQwZB%Opnkf*rVAkpN5sJjz-6U4iuTF~leXnu;1nbnc~$ znl-e*&g3qt4iXHty*xuoWSq$m9_ju5{6N* zeRF0G)V0|YI#c&vI*y?SIAnonf=}{ev@+O5A)7{D1eUJWOrzkVE>tw^SZ9Y za(ed8`EBdrVfvO3Gk;`yngi3S=bqJ;X>{xJrhJVff~?SriyJ{!owB78xmhj>erR3B z)pqoH%joS#0?asuP@mysYJ<2GMI!)szZgEC{TA+ogP1{ih;p!6-0E}iBZGG8U8tQD zAqmngQB~%&*3&U&jwiuhV{e^3)g-RU0|=`dBCeJGqe75r$q%h{F^qZcm_6dnkTb9C z?!4FCb>h|^e!EW;l&D_Xd>jWS(pBgRa~&EEg=|+zJ6bv7SCxGvQ(OE-_t*%&tg_0Q z5_9FcPF7o2j)4R0?^SRXGXrGN>4HCkg1cBy*hXQ*qj|`q51X$DH_=}7-JE#!~PaKvquB%_Qnea_EF%+suLfc_3HgQ zwJNl0IWO}?op~luW7``fd zRbM{et{J>M-8WgB3cZ}832-XMIciiH{?EPp@yFK72=B(H64T`l+(49+ZZ=c6uEGe~Wv?ULO9hu(Y6$kTp574wTz-zK$E6 zzg+(n2$sOe4+`+>^X<`&R`+PB{-(*@f{6M(S50Lju$lL(BYh^+G9(kqYW>&W zKks9zufCtONs9P;q>Y7rZ@#rk?)ns7ekKaRccPafVOUYAM@+cw-0Q`#kEYUK8t9*q zu43>!kX`mjwRpz|h;0r%f;fU@Q@9nFC+s^BX!a38%UUkJ3ot47`g=W|)Pomr4?;d0 zh#B213=hi;CviyE7ho#DD`YYv#L{XXG@}~#%$i?Ay`=bq$rgH3qf^;om?PFG}Ec_xZU7v&Y^?4&D>#orHl&4*uvyN6L; z4I`22^~RzVpWQ39)R7T(1$Gmf0PoAbEqBS+>61l^@|jF!DcT?3zD?*~{gr0=s-S?u z)N&>Q*$!n`vp?_ocyyjEHmwk7Fgwg0!=#CDR74MXF%m!j*gt+`qRAh9wJp$$On1wL zrq76!2RwKJW}jFqVa=+TcZ`(YD(G${D$@pl)fWChcu*V7Je`ILTYIYyko;O)9z7b& zv5I6cY#oIy3hKkJjTv5CQ!D4(|Fg&ZXhy|c8!L0KKIyV@tfPP^ZenA42UEw@l{?Mr z!E6Qgw!ZC|5fcmRT3tayD<&8x7bUxi@FKVuN@#4pG~jfcNTf`U-gGHT~(TiZFGV!?)nYP=MNY ztk|qS>$Jah)SlBOKMGAFvU@`nsjE+PAYk|{ZV7tN#dN=*EPxtQy@9FV(&HosJWxOw z1;+p6+ItHSq!0_8>QFNlmD{l2fZ;X%?&R^k7RDR8-Bijv-Q=+c$^({POd*U} zCZp9=ATgEjuKDa$TF&0E+Y8>;Jy^I2^e=!pzGUNtTo3J{dJw%*gI$h+SeNhA)`{y8 z^G8BSFtx^Cam}xfeb*iSx1f#%+usF}8)GTc(JaA%K5N*)O?B5x^p)FN9P0W@fmI7vRa`7Pw2DA!9y@Xkw#?64_~=>aiRsIWcwJyu`@a$oR-j(gbp>WXvAjR=*X z&4&u>gRk677jGs zJ{^3)@AJh}i0nz{DWow#M^VgP@vT?mTt87kxr4f=Z$4Ff`8iNaZY&RAd|-2V5~CEG z_L6I<#Qa=m*&Z{MjgGtO`Qp-;Q-PS9+*$dN7^@&h>-1YCylqeIxz47;-C;B@G8bCM zu`V^CqzI*SRX_K*i{KMMq~MvfOe+50H4nfpa1thV21QvMF%n=&FIE5Jg`5vqZA6W5<_K{72_ zC=@MtaLxdR0KU@o?X<*1U#LB~rMG&?apZSUAIj*Kt@vhAHbK?D4h7Jrd|^TElOz@n zsD54(0KZ75d@137X44Ao@TNM3bY98$lYs7#6m`olM99#geA6lUQ z2!aRE74{sF&Sfb!^%eRYn3k}N!cD1+Ub7^18R$jq2Q~DYYkPcWXOjNiIsT&mK!ice ztHh?;?&N~Zdeg*g#^X`G|Av!8LN8ljkbAL7e-|z+yr5?w|GI;v58h>D@q=0g6Q6Ju2(Vm(63i#)t*ZJe_u~~&_1{Jyy!HCXLtOLI0@=D zi~i%Z!>;Xh!_o`bx2}f&`*adgF`>^k?MTqMj4Qroka2FMb^4(HWKXH5j_r=pUk>rt zC=NV2tnBj%uG;?LrQiEf)eqGA*oa9*!`Ojm1+Lu3PEvxrGVqhpk-%9(#PQ$XsO?Y< zbk;Bds>*&t^J7 z^^!euX0b76rsi{bWg?a`cnsMTS6l&N*Cs->%zZGiHl9kiYHEX*{lhJ!OPy!Qewxd7 zV!2+{6o(J3iK!vUk>7f}@IWAW=-RS|BS z|5C9eur|7%`Y^rXvqBv`6UX`OI>5pmv8gujgb{HZy9qSo`Pm9iZJ92z<-p#MKy>e?X zs&%_{@p-!Tvdo4BS(cwq<=Gvk&c^n{o#7FW^nf|!JlFffYK2CR&iZt9e$x%W3T|2V zTE^6qP8FP_b+BD^Hz4&=Z+yrQEm%q#YwJyaeP%f%^q?^XJ|HVCyYIaMf>U++T4>70 zkvrq;Z*n4^l274^H#a*J7qDtkP$A2q^Cd4ao;+S>IhY7JWhNlVM3_*k;Ve{COlN)@ z0WbgE29^Yp;ZWSxP`rvT!`f`!7lcTNX?V)n_~j@J|p5VQDh7OuVe z>;=mC+ggHJ#-vG4=lX&RKJ%i?VduPKZVR}5)?$Jj#C?DD;l>oj3TKAFzr;$R{pvJg zyyY|Rce2yoFg;}J*EB2CeX3rq`D=QL_mdu6@lPj4XRCShW2cl-3-9*7k@R5#|4xA! zSPVUOcKp{X-#TK3?6)9dLg5o<8uLS<0*g0reT}nkh;v?Io|AZKj#15=PNWX+XWaWA z8J=`&i;-+Tgp~UB=0Dh|ViWGb6!nXSD9kRJcXVY_F!x-O(7ElOk!pmN_L{^1Y(ah* zMxJL@Z9z8<+|?ZclIgL8#D>e}woRFGp9ar`wX=YlzpLz6qTvRuVHpn>eLr-(xjX`K zKGUpsA5iM(xTw9Lt+~FdD4ucBK9tiefR5h*m-3MKB$=EGkK?hZ0<6O(7 zme%cjrCU7AXs;$EcLD9ki(N#WaQZP-65B&Y`pK|>sHld+uvTu9?_r36vMKIAk;@WR zKT4vYNs1-lKPopC5g_FLaB4V2a$-BUU1*r{wK{x8m1VUL4UxyTO@<9s2niNp!88#x z>}iO-cV!A5@U9bb2}+|il{IGR)v*)u0yo)Fym__DDl4lu_@eyobyTYBD`l5y^-UDf_hwJDYiz7#q{lWhXEH#y9JMEh3O6Y)Abw-2Jr@B;>BKe zBFuU3ai*(y>gy2-%pb5~4PtJ)wUej+CyllT2z06-%^(s?;#MYXWEg$x3oeIpk{qKM ze3O#-A#UEz_!dEejskH4*r(l71a&@Wd8x~UN+8Gqez)Zsd3T=)a{Du4Y`DqmsrUC` zS-o0{-*2!DwuB6vAb1XkR)?GehlU-gj!{O{afNp4sUr%NT-JS0mcAx$U9fwladQ5$ z4#ftCKb)<1)rT9h5~PJxhrhSzYPv~+U&)*3;w{R zUyhjgk`vbicRzq~HzW7BQKj^_zZbn{DJziAL!?`FltQILA5tpy&8~j8sV*kWGKOFe zqJq8Gai}&M^B1#$&_+C?N)@|)Vx>0MU0tiC;+>nsJ$8C)O-}{E92c>gQK>{dsGLz; zC|*HM(^sJmdjXfn#?ip~+Os9CBWce)vTVLSkvHu9@X*p>R&jXuIEy*oGv_j${&c>3 zDQUW0R&Ri08or(6&!30y<>qwO{v4M68VH$Ya|{sloWAWyFf}OO3Xqh@lFPB64OmKY zT2fZ`Aeb9N;{QF7 z1`)!F6yKKeIoRHRZs+LbK!QqCTPz!qoH03gMj&QO_-0R@g`M*YF0D-YJncNZEl~SfBWop6_D7Fi$AX!!mKmh-^&&34 zM}Pj!8mZ6nrwZ`vft<(zlqpi}RnGInXey?^fQmCQ`;K7MOcA=d+MM7|;$R`r3Mm?h z4_yf>`^tgSWDk_Z4qL7m%Nxz+;8ee|JZuPA3qvf4tFgqsi;e9Z2^r#+ z4s}`3mQskpB^#L>oF7s>Rrq6kj+Aslr9a_kSqKp8c({~2sb+>8MkF`i5n75THq{h| zE!OW)))GUNH2;*IzMZQ*gf1sCuP_wunKy=(74up97=glY<>YP`jaxeNKy^L!Jr4U< zQ`6UzPIGvqysZYBJWB@s{U5~odI{W#X{u~U!-#Se%Qi~+Y}&Wk9KN`%(%f}&?^;li zsC=~_Tv6rsy0Hxt`fioTRj|%ZpgXMPS0ASM!kf1`ehQKB>aZRD%`G?RZqs}J=TJv2 z0N&|C>Ph2n%kYA_EB;wevaVh@Qw?TlIBVN^Oy#EUCme~;WX%A9v8~lvCWUmY3fpf< zb8G-k_A74*eqs;?RoT)iAiHvwdvmB{wPLc^NKupf)#F)sg`RH1#yeHCKKtcf6QK}> z#Y6A%O_Q;Oe_HHqY@{KamdiZHhDz=0Mb)!}ldw|n@KK+g$Pq8=@)jxoHT^7d^? z_*;L~wf!$1wXJVw`zNVD1g; zR*33vv#LPt+I;+h(m-zWQT27)NAQpbMxd=_?yWnrC4E?6+0HUUXa*LEWbNp~( zYpF8=+oY3prlfe|Lq~s4o8@7N_F7dMc;?x}E&fM)m}9nKN7k-yRqWokk$CIjsvXMh zo1Or%Px!jH!?hIU4exL+rZmi373#6x5;FUP(?zhGS`~XH$w`^7nNFFSEFeJyO(wGf zP}G(-%SP*tr`<-rFD7Y@`H)Ey&K2XZZ@&e>ZcaYl;bYK zq+)$HY!O8K2XTDc!TQ_=lNh~GWczP$+Z&=1{KD_NN-Nhu9n*x9kowFgzH7;Q%=Ghg z6YLUpO~zRHLxD#)oFbDgE;@RpTfi~~0B!6XtB6Gd{=(Z{L zvl;Db3L7>JDVEXn?gdbMG+fCEZH{^$cV0kqb7y|vwHhOnu0J$53M(7xM(|Aw2)@+e zYRDCiKeRhDFyE$ry*U0hp>Dq>&ydFUekw9_R>zmr&5D#s&FEE4wU|Z%@oKqjBy*K{ zm#lfOj#VQ{PX2rE`&T+gh)A-rmX%{0ihP~;DNEdsGQ>+Ea%M^{yE$TY0XN?zKI#~Zi4(h@<1gF8R(!bx z4f8-j{48kP*QbvxdxEzKV{r}CRDZt(y{mO?GM-hzlyo|*Vq6_bW&)|F{<3O&WF{j|3%w9d>^g4I`U?U1a5Y>_>#dny(K`I}puF z%lP(deE`^lDkPZ5XGfP?NU9DnmZMUHwMYw+ zRp0zL<-^kkYtc;|#7<2a_n*^Zw!n}7>W-qZYu}?7^doxGik+*gCGBh24>e7#P-~ix!+Qu)QC#o7yWNH1mN=5AWh|N*kPp}H!Z*6-)F;=T#M?FcvY!dBL=J0hxtW;lGCxC zgpNAc+*O3x;^J~@EL8k-;O!h_8{nQGx(y#1)N(7ET{Xc_Jz^DuNMG=rbAt~}iQG2D z61uv8W&vCB2%dZAdl{iULw@j*M(>34_=*aQss6CxxL+aHw)Nm z3E2;3K8iiVgQz^FeCxu59qWtB&qrx}`QMZvxeIYVMr;mM?;Lfl9!UlotCi`z5u_{$ zo(h}iarZQ$HedBtzjBSt;HY`yx`D3q$AtZi-f7Dzgv>}A5fxGe-zNS-C}aK&PIX`= z^T6KMPV88}u7Kahm?{NuLtrx#XgOCBVig zLC!M0BLOUHjCs2x-0Xi;z{-oa7+tQ|9-=ndkpb61;ue~q(loV&3(7=5vZS%tvZuz}4 z$A=TblQ|BxlOdjk9If)dY2kX;tR#1e3xroEYJwkC|xFe+5`WAFzzu+2ErP z({QEXE*LT)XbLtg=iPYPFGu7F_Aiy(yZHnA-rclf-Rz`CbXb@@kwm@-`Ook7K>Wl= z#=60TCbEc(0p`(m&7j#&r1h=MBPLekbS}Djj?yaRC!>$Hy|7;czc40%MH_AxXf_Ev z{DzEl2Z!=H0pv)aP@eX>wYfXN(e(X#*&F~Qg{i7Fx_X;^sY$pDVd z^t))Kq~)fO=~KeIKI0I`Bk|qdtI7t~$6j*&VPYN~ zLyAnEG3d-ty;T3xo=viG3y$~@+WMlTGX?Ktj+W5g)6X|~_dh&7%?UK-U?vt;rja%0 zFGe7pu0+t|fQ(YizjS89Z~6_?f_V~{q?=j}^EwRYs;E*5gLoAdp}Jj(@#5LKzyQu? z&B!YEW@26D^4?w!lmeTxXV4rCEAmtXal~}YIq;&JZkgH|o{SCIA<-xQXsrfHNQMso zG>)&5TLc>ZY*Q;qCN;PK(D}AkCJOjW2|8o*=n*CjD>hQ zg@pzigv^>&gKT0X+rP4g}%;1X&@Qj>*-N|wST*Md*WsX|&KRHw_Tv*9+7lmB*8`SJ$KU=H_!UVqEs^-K+~i zp>rMFc)P)^cw9NC%&!}^BcTVXzAe~Dj*&WMu)~SJ{#RSy9SwIEt^G!VC`kyT3n4_W z5e%cnh#tMSM2+4>kKSwa5oC13h+d<&Xrqr{h-fi_C`0r+B==kETkGzBXVyC9xA(L6 zInQ&>p%$pAaF7ttx|`Zv-BQ-R@YUm@JCeglsu4s~INgi8 zPrT*S*Tb)3EyX=B3QG2^HuwosoFwYm$*^|7X3l*35%c9T~u+5&oRo($AjRPsMg zT}AHOT2#gj6{PJM?YB9R&rBCtsB-;Hi;<+L+8TAQmQ)gU%#elL&=3Tj;u}Xz5q}!~ zJ;yX>%p!h_yIhuh7R!(2`@DE2;oG9>g?{cT{%+&Yu@4z$CrG`=%EL4tqUX*Vp7J3%3 z+3|DxD~mREy(W!__MME?TPYbDRm2}foTwv)X<;~($4^@t=Hg+aKO-cKC!a}R;DI}x zFou)GcA?ivRU*p+K=Os>10piAL9P1Lc)WpsxCfEDg7IU^e4bidqYxm4Z~?s&-D4)` zkr~nm{k7Q=yS3O$WOWr;)_hlFyR(jDP!=o<`~Ggja<7l{Cw~@0>NM0eHdO8@nkLUs zo|azqOVLj^ulwqc#{shR=+@9NZ{BUNR;U6Z9O9-OxKM(AMr-V0DZ`uzK8}e7W=vZO zK;S8<2M<+WN%GKK4bYSiMW0mu>ef_(Wrd;AGP;;ZX{Yn7FEF`USUNf~(&xshnk}k)Y|*MviHYM#O2QcSooHhz10<)&WWtm^YY%H^ z4tFWTu}iO01WWEriJ-~~xbU2)ogvuTi6MAvH15TZ68TwrR^zJxk6bj(lG77@v^NgO zS_#rx+3JPcLWj+8SmlcF40p&+ptSjkv$korSX~tbN17t<*bwo^IrB~IcUoSnN zc^)l{&6oXhMwj0mMd&z^fRN_7W`#W3hYaCL$!BJViOwKLx7q&$<3*Xeghs0YVw~F? z7IPSoy&=tK*hG+N?$U!5xmtP?%k8mqD2IoW;6pjN?4@RCu6c}QW?b)IT$K^%zKB%?wIOj z)&OLnyy5B+WtN>mVoB$blqUBTzC0moo2YC0TUAJB7F}i8KtHebXWnpI$|1x~c|C^% zznV9`|5vUschf|&q(lRL0x!Hr${f!qlUrCd?E9ySZoW5CRICXJvR1ZS!zQ1!a(G6D}|MC*j=~GJXU599^e7U!Q|9kV;qr~Yyfyp;6y_^1V`>H4*9h}w3 zpykNBZYqkaj-sh*SzaqrM$WDbUzW0 z*5`6NPLW<5hGgd%xUf-uX@$&H4IQV~$A0tzw>?-l*Rh(v8lF+&fLx+wX5? zRCa3Gy@l}uOXz`*rW3Jpze9nb zUVlrSN)Qt8eB( zP%nI%;-rRPUOrOMPH+cMOaR3W+P2x|)eD%Oc6+lbA+gx>b#15!*a@7LT7r>oosW8V)3)hwiK&~#8Mrq?S@*~4MaX@h+veSv ztdAi-x?a!Q_xqa8P}kk+#tU7ZAzD%Q?%32s+ydO;&7MI%)l%GAXULt8K`K7@o`dVF zwp*8NZ4pX9sj`({c>sUe=f9Xiu|e?Z%{QdSA5ZiA0G_uPIuhFO01okVr?)-$Xd~m> zB%c<$TXKq2E(%MJ8Q?jPYdDN75kq@QA6h@{?-*y379du&KJXAJtW!5&G&fhyA=&ho zU>c4pPSZixNul7PExZ#&eP$aHsa)EbaxJ$n&dSWZ6=T)A*48Ys7o(U)xO8__`Mdy` zoaW7mthg@MQi0^O;ORb|+RuLsujD&-pIpQ~JpJ4jnDOnn30zB9QyowmOPhN9TVi+4 z!nKGGb6JNraqyzVKHY~kbTrl_L6;@+=Re#d9zCUwmKe7xH_(g-{IX5UbmfZrPZ%=qco>j~)ZFsA2nLEdXCLzO_Yh*?W@h%9lygFcw0pnpQX{v>W`1SPEgU`phq&ykr#5r) zUuOwYb+74dR!&z~nalU|2fMv#Uy|TaF=X({D!53{K}=hk;f5|DHvMA`FjBI3;D zt)gjfyr%K0o`*c$oEN#^bqo*jufV{*On z-YA7QsyHAc;Fr-|&=r1xw)==BQK^Q(n?yzGp^JJRNjSfbX9UrWYxcpXJ2LPnVED}Z#h%4pEn1!)MX6EsaRf#`mPIxEo zofsYOj$2zxp6Eggyq+?Wxi)e_w|CE=Ov8V4Jtd#S#`49J-HhAg6?Q=#-5{})AlYUg z`~|LI`Md=<(Zu%=(S{T?fW zwnqioy*O2Rpk=rrbvt!r%1Jw~?e7jH-zxLm+k5_Vv@*s_r^KDS8uy)zu##0$bzUY( z^P~3+lTleNR}CoU;F5vUGe^JbdWK&@VpH>VPQ-<>3e@xZ`YYE&9zV=)#ZRnn0T@||c9;_^{T>0?SmCMk2S*D`)E9#I5+4AYS``u z;HxS{_f6`Dn0ZOPQafBi*g5xn=cDtN4PA_ry*UJ3e*OBlT4TA^08OtnuQy*TQQ{{a zFaTt?U{ge8wN$cHsRU6LcnjCX3V%NH@0n;C?D~VO`!r(HZ34()F0mFO0DGXy+Mimv zeINOflGI8jg)qLlcIe386I;RFeT${@^!<51wix@*{?0@2}v%gouQIuffZy8=Uh4wYU-`$?;VrKA2OcFLB`unsqjj; z+bXFqPBTc0pMOhNVFf0Cjd|ic_-?E)SHX_Uj2aL$&l5d~!G9U1k6CC3c8`)=zn3d3 z3(`p-g8snfAM?3J4geZ&i;bhSrBEg9ji{@Q2waR;)wHF3GztK?2lT_^;Dyvi;{kaf zMh&(OpfWq7Iy)c(P72j|W-DFd$VPvUfw^GcgD@c8e(i{z^v*=Fl z;+r$V-PbbP{l4@xw7g%q{leXq0d$g}j8kwqPu%zwm^+@t+Ji}2f)4PXBs6+AeHYHW zn3)#f`0%J{hV-76YG2sks%+e;=--IIr`1WfdSlgLZ%Axs5JXtYGVn@;Fa8!msXiO~ zpzPZtKi#3X;70=0pK#m=s>RnHCT2OkfD`5)w8(#lcKCoL)iTeYdi&Mo5X%?0!=*qG z;s|yhSLnMH#_N%)Q|j1^ z0cMjQ?JbvjEF@%lLFG`JJ*SiZOq5r%!Z&bHhXRko4~jC>KI$d+2l3* zXW|qbSNB(rO>^kT*Am- zz2_K_TMosAOR;r6y`9n2G3`IIY4n~Tj6(MqF*Ev@R3URyFApa_y9U5g`ab2;uDZGj zD{kwb1bq*X(t+!CUJf^N#aOYDlaD@)fP1eioOl!5Cu#^xTn}(8to;v$IU8y+Qt-^! z`o=4x(P_kmS#82eQ5gtQS$fe-`NAKra;pt6YGs6f)1uQ?z1c?j^J{$sz0){M@mz zdoqR=lGci)eH3&Cj}8|Vr(ty~I8`Eg<~{a!ams(~vZgY20`cMoF)E(Cdf)p;V~A^? zu)J@5hjPA46l4xBCU~XQG1-v`B+KNm!KGU%Z8@aTN>t?GKD70B-!k~HPxr9Gf4x(q zQ`ofYI9NX;H6wC=|72hc8#xhFsNuUIZnge zG+0Zu$lXI_uj!?WNq8BoFe=gLe0K@$rn~w&z>{6T5cV02n*rGX9ce92V(dRH7S|!_ zK!?1yEj*V)?>s3eV&b%;m=IJ_*I8`yk(u5KE@@mZu6lQlw90lfVveU@dvB@dAK?_$ z{iOlVKi4h6sfR4{_37pH9Lb_`2t!!Fn{3&3K`@979^qt+J0-Gyl$%Xa=F|9>DFI~0 z#SDu3nGnNs4{mX!V&=4uc;R5lqta{6yv%1}VT~)J1xOEmURh{{v)9sYq?@sNY`+8K z4pRfvi=L>PWy<$6S-e}6UYvYaueLimw=q|C=Sk61Usg`V0fYC@0vWwn>q$)BU81@2 zV)KmbiTG<#6?P>XekWumK)L& zGP6)GsSw|ddFeI&wN9Qq%v9`%+Fw+xei&Obf|!p^R!dAUd?A?r=dcEWch8If#H9hcI6-aspj`EL0^C~NAyAB4;0I+!7qX#K(9^#Rlk2Tv(oW8 zIp=;ky95$&w!Jmc%vlT2sdQs)n%Oe9xsdQ4*;!eh{HSld0k7@dDiE3q{-u$}s6sCs z?=9)|-4V%cj(z#&8kG}&s{J5fg7f{LPdP^zuH!V-`(X>2hsuK1G-st5nfmX+BgrK| zK~BoMvtZpYRmeS2G97bAIXtdD!FR#hQUS-~h{O=Cm?{Qhz^uRoVN%ZI6pP3gt`R^Q zrb(cHl6u2_Q!1;lRLSn`EuB|-X4#s%+KJ&!ITuV%0K*vD5pJn(p>(r{pzP0UB?+Bx zV$B^6B)*v(yG+9*DF`6c9mBYA;Kxzi47J%A4}t-Xs>j0LemZ`vyzGnKV6Nao9oUaT z-BV7yS{!lzeZ8=P6DswkH2I~2=j4Uy-X1j-Qi}^X^gRpGLMomcct67-iD9_OV2B4w z`(c5YqlBWO;-SC&!^mpxTdbnC$v{CeT)BtbCR*=@i&*FKh}@OeHUON_^agOXhcquVm*^R)%7E?2$$o0w+PWoymWJ^NgPY z0naD7c1%gAxIa1=A!99rIWps7$zg<--W+s@j$j=F=mr1Zh)c?)=!%F|iIT>PTh}tn zPKsZhm>$#KA_x{xUnMB32GohP2|l*F#kFctCVclChi9Tt zx8bm<8LvSw!ZR=vY?9klrNC+JTk;*kyX@P^HLR#C>wV&9@pGrC@8mi5%*-_sBvEcQ zb8vr{DY8`4G8-BikSi^wb%=B)GNT^U{sN}}U7fBj7P1kGOse5jQ>;R{xbNZaFh8^> zdXnATA2FD}E=^-#=(MIBc6h`+oUt`6B=Qb^Mq_L&gp948Alwq&5HfKK@O;~1XlzW# zCyem@wdrR8`^}>r=96oM^alC*{xroI&=4UY;5aY7!Q|;Bqy%fzgQc-AUOj=&d;@c&Nj)8HHF^}Ag>IbxKkQew!v)MW&89; z>!?;fd#$7$@C##9ktCjW89|$E3h4+7ddhhOq%=rc}9K!t=aDczsupn-s{RJ{75Y@teO<%LG;J<^PMo#>xO{pc|e;7N}9I9oJO8&U!8SMczU+L|CeNiXT;1?ug7%vSrk#hDVzs@=?@bcvLA=ANYt zg<^J%Srvep7eTmnE(3UKIA--tdDWtjsdH9I{$pXV{VfUw8~bg8p*tRy&jmE5_FBaO zM%HFQHFxyOpwWe4Y}_MqS-mJG+u8}VVkxKDKNPLk<^sQdD==YQQlM)OR#e1GE9(}t z8ty7Trvnfgj^$Ke8nozyVRa`@6)8$qqN3P%a}$VBAf!mHzC~@gkHdtFk}=Ld1gnEX zsb;WpRjc(z1G=FhwXBqQ>e5nq`9!nkl3t4O`XLH4N0Z43K0xn5l5tj4<^-%E)sAyt z!z@|fZ+h>Jhs58~217LyO1&wc#?zX^pAXOU(-cvy9s1W_CdtBqBX>J(h$YWpaH{HMx^JtE@0P0SoW+e|3lLm+}GG33OARH`!E0qTNu$LTQ~{Qr&-G zg|M70`Lj2P3(yLad-jw_rn5x<~-AAyu(ZgkV9W1W>9FLK9FCQBhGkC{3wKQ4j(m zO{Mo5Km_R}v;>lTb6L)I|IR&UU;Liu-hZ~w!zRWgE9+hJopa1F#$5ZBp3YGoE&(nE z1_mCDV~0*MFtEX6W)==Mc*fQozlMQfg_@A}LzhV&E~O>X^dO%^%g87%SEd1YY!^4t)uE zF!Vgpi@}j$-90b9fN+TmM-KZj8~C>qLS0%I#j)wFn%T5AIwp`UIJ%sb;g*j=P-uCT z-vR@JE6>@@)$Cr|zE&lC4Sc@-Ow1O4#)I#U-InfubL4hIziaU4t-JkMuPQMd-ywKc zftjI6^Ijsqy>yJfmCA>^2cuLuyaa?UM0a*>KX6lDEXQ9?{AN7mPL_z{K3c+4xs=M@ zODist&s{paUG<*C$KKBiDh*QvP20PdDgw5o?0DLDZ~aij`EJ|Gx||^w*4UU1=+afk~&Arhpyxd38cPEeDQDF(u6&ILq`rc4n)ysvJG+Ft5C6WT@wz{owi1&)|Q{* zmj1F@EJ4-ARP@+QFN1X#0^W_b?(wT?eXn)q!@VGb)tiEdf_>`?_q1Ztg4aC{^u4fl zF8=LxbyBI^WvcldWG8mLkly+i_)TnyRH-*cEjTCI9@Kh%W!vqotK!K5)NQ zh&?gwI{8&pFhi9ghM6sj}EyGJDN1y!)=idM6p7iI6(y!7lwN%!iaixnKS-bm)1 z{AJ)=e9xkDcB4YBSqv=9^+4MB{kUf){&CT@~I@iidAV+Xu&9 z$K^^K5OZ85ygF@F9%t@W?%N+!4lD9Hs#8S|@2Ayjpuz^YuZx#-g3{!g<-X&XO~JBQ z1!78XR5bN9z5@TAuxm5x?z;XnODh2mT`acZP|-LttYk%cbf#8=UZ18-`N#q zleB3efDrrW(dB(LncbN!Q-SZKqE$>NciB?5$8ETvcH}ZTl9RxJ+izUqwEnQmHOFgg zsuYj=gu?Dap9(kL)G2qdEf!&L&E@6g6{c1D)iBZ^tbW5bUewjVZ0d!dm>;&7#LnXBej^bh7I)}OIE;w#Cy44(~RCi>C#f`DR-}#wTE#nHak570n z`?OtLamVlQg-V0{TgwK_;tg2O1j?F8+DE3Fbs31vt&-@IiMZQQA|&Wj{^cBQ2bvw@ zbGEl*>c~4Gf{#kk;*=fBj$$vfqm!F6IKOaixM6u?^+DG2J9|ZY*Ww<#aZKDi6vtb4 z`x|d`>E;W3SGQi}yef26eo7%TaN(wcs`&kxW6qoHPHw)X{!!x5z2*nb4~#TIHI$#D zj(x_i)J>|;#mxQmgUEgq>`>h}Dey2K3 zt1iai#JlZRAMW~yJH92}``Ybmq0>hU4ckt&sVf>8#vIUnd-8hlwBc9wk0PgKPTQO| z*s*=b>PPWAI!@hv*?IE1di+VrWPIZ#E40)0?7MCc+@dLJj}nGsKA!oSTzxwA4E9t( z3gu)_%H`OyQ{m6gB%O)P!HmTjMejH4IvE*XeIojqX)690)t}^L!%2o#n z2@J|aSw4`Flx3E^9#$F_E~{&Wjyo?SEf821FByZ4jf|VUvMM_ztJTQR$lNGDYkxK+ zTQ=JyYfV<7^;v6?rt#)t$6ZdX`xWWT>;0#F@n-RzWiYl|qL5uMsOc*pj?c z)$SB)`Bt$Bu`&A}@h|olFUj_o;90!mcxUO(t2<{l2uTmiCTv(-&wc0YhFk%aMC*p9 zGlFhg3L?AhE|{&pAilTlQoZGLTjNKW?yL&O+#zM@+Z#%Db=f>J3^yda%_J+33NYkq+-kHt%jOmCa=dkE&W@}Xxp~&w*>l-ZRwmXSP5xI(GAeTn zEgUNOvYoQ4vQl#jt^~BdZQ~qmZgUC}zcamli{NRcVgG{L$_<4@h21o7-@EE>)bFc@ zlzgficouRreZ9x!8Tq4U%LU6N@4A#-xyvb}FOy*Y*;>L_B27QL;k3mIhkK-RgO>-- z?sndd3!U99Z(^DD$=2_mJgv{j7Ju0 zYd!}L<~B`iZ}5Lw+F6Mkn)oI)r}B*+^|dmrYQL}-D+~KWHb*uqwlelJtlg-6JRdn; zpoUS-JW(5P2X3rf&G$;YpRMCwm3d3%qI#FQMLoBoTrL@y zzs62T>Xx0Rp5`%)Bu&@o_4f>-T9xrL3vFMdHV;W~J_rlZsN}3P4q@NQqGO;OD^V&N zzxgZW(92s55>esLRkmBy*Hv1DD2B`@u0FX&-{m>J_s}&fMP|#~|$pZRih_lE8BI38M|b4q+TYFN=}wh@2ziL15n1Npt_iWqKMh0C#&Eresj zYZum@;>SICya!8n3>tbrBqVKPu`6mSYfsW-?$ZUW@y|JiTVD^_Eb!>Ekt_ijPk}^e}vHa*fuqmvDx*|BZ}?<>0SuOmF@L z_qRu`pC>xI{ox?%M0pD zmzMR7yV9-`?&gk9yAfu2Hm;C=h+W7!kuf!p(4!rc{WyDF_^ohmIhD2t8DBr!-60O= z4BJU|P@KZ;jpyf{jEy;sJ2@$>aNhOu=*X7Y0wsNC)An^4FW(jyo^P;?>@s&R60VFI zbl0CZCGzK_V^uDCmM{h~%d%UtYi_(>wjqeB{ZzZFN~6jo;2N-I_HL2PUqIxlO%I@7E1d zu{Jd#9GDCxVuYw)7Try6VR#Bnr;kij<>ctKsx8z+47m?wJ-u@|5^RQ92x$PX8W zh6XJ$$1pnx?Kmu%Z*FYdY`iDt=B9xPJnJ5Vx*10XQ#)p_Fct=$sG4nS`Uh1E)%q>Y zY+#~ueyX|os*g>TdC4<)+}BfHo}u+Mt1uy^(1?rS#3_cp0}R8X2hIglTfK6K&sy25 zXm+u`C96|r((d-sXR>;yO0MdQVJ5sSo%MDUPRnyR$Ps#q+vWxum$kJScEDo}1{OvE z23B~)2tR1XjsNxd2;(*e=I_rlF)##JGO+x7jSl=q{@jBfFxw);w6+6fG{pn)x1gHHmLk9*1zAeZPqsGb2 zlkoX1mZuCH4YalPU$n#SK7YyXg86P&tUdBM3^U?b#=_Z=WQ*Lek;7t>bxDNn3|aKR)Ew=NvM3xOmOd z-qF&|RuuW%^B3%#9F@hzkpunLpC8}T+|}~0BiTCqJS{juDdbHb2c(cw|7|ILtn>G0VWH7n2c-V%qM^BVcRtz;*HO^&knSn? z4N->tVf2CjZ2R#W9y6|WT0Ot&1p|XBgT^7XQ?87ok?imInr5@*GwH zvn(%;wP#x=uOB7Qsp+xozUsXUGb=@VRti>V%;+6br}#?MGP~(9od^k8ICxr3Cysq4 zh9z#R#FXC)pNK=KZ)%)}v~~KpPakemY`g8vbjKi`A$u%h_*Kx8hC*vh&q^8iB!%;8 zsD9tos;J|>5i11xHy0N1A7@bB#&d1om3tuzOqgwqGcht1l`(2MeSteXidEIrL^fUc zup=l5J9x?=ri}l^(QB)flY}eSXS{?Tsy4z0=$*b7@{Lh>n|D&B1}^r6s6^dg-|>XA z&OSZ8+VY$0Gmmew>QHPlXFsX4nC9WFUMni$%k1XGOpalx^{t0D`3`%3VReJ=C2DnT zH702Xobq2sco-S7V(r?Qz2Zkw>Tk9?>o~P}Km2)46_q_+!ab_!A75N!CdRGD)mymM zclFJ%h!6ZPxZvx?uy0u@t9VQ5)H?IQ&CIN<9(Qi8dMOi^6RB_FEc!KTqMcuX1r|Ud zhF#$v>c?sz=cr&B^FJ?e<=<8&ROp!ESpFO?>9!?UrT%l^@9B_|G&%g|M&8w z9tjed#f+(HrU~I;>ly81niFDL>7^RNQc<~eYH~A+CO-Ui#l2s>aZ6fQz0@3)UP$?PIpXRO>y|VVHjK8c z$>fPou;b&Eb{gf{nrKVxyRwdVYD*C#uhpMyC6`Tif24{MRYqo3%XS7ftrfh7(GP__ zyXjRVZXdss5E2SQT&mwKZ z2C1o-QMt$)r^ob7%@W?EHd{2s^xMAf-~3zV_*kvM#>GWhziQJN%R^YD#Jo|}kCw!2 zDSHlq{!8|-Jfb2G8Qk<@G#!{G}{N)8$N-ZC75H&ZXKNf_<7^%z}+~zcU~A zP`_Qtzp=J|W0rq{z=N6GqG{iXECmLvR?2uZky7R*_eC!+B#*q-oiaG zg$N5htNNYjA$$ErHT}!N{!3E-f6U|;v!7Z-84~wt zHzT^m`DX}8niL&EIj8wzinUO$;QJHbS<~22oY_BfngP8f0Uh_m)JLBMqhGDsbfh&g z8Xv~ScI2+0<+CF}`)XEnT@J_Q$e8UR;z&>FgTCz9^fRW{&BL9V4QIbry#lt@+86d? z(KoRx_UKzulYYPHGD-FPf0I09*{yJ~ZkxXgB|zy)o<_mueto{gzb!`1cXX;;BsZ6c zH$I_tM)}Jf>Gr&lH0yAiSGTZldi|RVJr*k|?_P9kp;@jg6salS6!u{oT%Ood`(S3z z<6}(@Bu|}fxE4^cfX0LQl9UWTO56znCy?UKkvWca)!}e zN+g?z=TfG}WHI~Pc>Y9tYvx63krVSSl%d4j>}I1+a$SxMGFK*FVyG|1-*$3OixrB& z7c96f>~lntz2k=-rhiEC#Szq$QwcEUxS5qQ6&kn`@lxx5XNs+O8y61F9{ZJcjC_Qb zd}!G%rq=RZjv*e4W4U>slIJk=^vp7WoR2$R8kFA^8Vfc3?D-`~el$MR^cBR2oc6^T z+Tw(6?U|A0RBU$Bnb(rJo%K0wmp78sZbZn#Hxq(y<^kVqxl6Z4a-=s@rPsHixzQlVM8t2;1br5OIa_v{1CFks!vQ96!9E_$Ub$QaMbHgvwo3kfM`vRqG zJt#AoyG`=6CS7&tq9T1ANDdGEgP3WE6E0ku*4((q%&W`3glDelET(C!@A%HtOG;x| zA=GgfLb#PLvr|yh&L~gX^?d4F$Jk?I+oxu?#R(zB>?@XZ{5$1fAyy%m=+>Vs#87dI z=wv>78iD3UD)wp5nJU|894xGy;xJg99k63j$!+FaBf&cDZ5bNks4*A{X1tOhZ8AW` zAb?kB$A~f2zcN6SiCrN{zE-`q2e%s2!~H{`*zo@%DiYQyzgy@FbpEjFXlsB7-XK>K zy{Go&St(s4U~6d}pJ4bz0u=j(qqARo2AE=dM-C zTwix|+LtI}oa+UwVN5o6yrj}2CyOR_;#1gN55X*uhbzqDa5 zh1pQTHsyj2cL49~7(1A#6FJ%+qMLL2jNxII?N07x8!Tk#tcCPpyio_v z`ywWS9OXW)kv}lPcMeuIzI(44`o@bM2KFj`$XN=}ANUsz{t&^~ctGDiHN^cljVg>; zwop&`0itZFqGJLE;sT@!7v9gcS%|oQeRTF@C>(Rhu@^`F8rov=WMJ5#Mp?c~tyc+- zCg?tzne%CP{=-+%{px1^kQ(g&AT?B}p$d76yWJ99G6Z9{jPqc&w*FTlmua+Cp~`E@1t*uzeAu^S9UlohB0r5hf|Yo|q%*C^cV_2F_dRhmLm% z%mh=19~J(+Vk_!>;cnXWUAydOcB?Q%Z8~~4t6;AE6X1Zz#wsG6Ht*bSnP?eme2O~y zx+Xzw4WZ<{JmIBTjq-ei)e6`S+z_0Ve-ND4no0l&SfTe!)_BsSo$5TbJ^OA+Sh*Nq zqE3I3GM*prs$xHZ8;*TlgYL+48j(9~a1Z6Z4tBb4?DBVde^LM-kLQ8C69x08!%^wF z_S2OT)@O|!$9!4y$8y4{gDP|lZb6LOP<-=Shr#XDH*g%!?Y(@%xRqIWswEKI^Fvex z>%s^A(-fb-Nx}oFK~krJfAtGu^2!T>OG*>(UKc>>PPWb;&wCl^P_5XmJuJexLTG=Z zbDKFoNz1MyC)LD#EIX(E_)hH;a{cN(Hy|tx{va&h4)rEIyZb7CqEN}nI#4nvV`uui zlljLaS%e|#9S8kX8Vfz#7aO8!mo%jcvff>oK0YnBPz({d`41v8V#dBfTfS|3V#I^I zEXwf94k4G$^YBch^Zh(wZ*OLHqlxZmbMxJoMqg&M$N4A&DET*kB!?i&X=T|etE`uw&`rg{*e^vRTDN# zTl&>Aydhw={6WB+9_dYaUHyuYneDmlf>dvf!j~0et7kW_bcF+?f+J(VSE|s|TZ&5= z0EX^+39W^b(_*gR#TZ`k2LZEVcCyD8)qXxe=y6^~-|e04%%}q~U9mJ)7TdR9`IP!@ zZmL%Tu;)OU<;D*kL9-~rRa3sP{Hvz-NEm10Bbn3s9^l)jM!&@g0&&07@N+nnAB)@k zIF^~6S8D>nOxTyHIh4cEhtMo?a4eobJJ#I;)5r1$qufuDJeR(RU+}C9@wo`?_(h`qq(~ZsJLu9crM=41GVr%^v&6E8jru%kus~?6n0&CGEIooB_`{XOn)8`bSIzT zrB(TK+9DPj61yz+e)Sk6yKnx3CDhkPsVq(UVxcV`dY_f9G5J}#=88k(x|QpprG;vJ zHQ8LGs0~g`V2qW#@(Qwh|7h(ROA6+@t)cDK(2ltFaeMQ#qbTg%JaH!L)a)}x25wQ; z2Qs09Y;DiMc9`i_1Qa1HsoEa^fP}}w=Zpbj2NjS9!kc5&+1&y0XKx?o;yefN$$4q2 zJW*H>ztEdAQMf4Ax^Y@81F;RR{DV@J93PM)y>UfJ4HaKrT6QHSALF@Ov z9|*JF?G6yt23VT~4GVz2$QddA*%>)^VCCJRp-qJnF;}lC)uts~^<4YJS*;#mieA00 z-oJA;4nx3OO5UQFh>Q4eK$7TIU2Z~G|5RTBWYQSmr(<*k;%1(BcBJiF-Lo|}HdsXL zHEE0nSc(M%B@<1ch1w#JeynhDd}yq|ZT1!LVYK?-J`ep{UY-*>)853r-P&yGjwKD< z9JbR}5-AH7v5Uq{-=Z!O={bm-vk zsf*=}AN{cQ3JWjeD&Asm5@4WApWh9W|7e6(*Q{VCEKq>%Nx;l4rY~afWb;M1Tuv<; zQ>jd2*FH&FMDBNbb^5G{EVU&;JNyVHU3U~1KRMUQo|#%`@ojqj_?r`xrN!(!ua>uY zF)|~#YOYot)g~UeYoA(8f};+v2>L+k>8W`Fz01^->V(wsQGnLrF;!)>USF0^yI$W( zef4q2K*Lrt5rAiYW~gpmd7@0f_V%}{RaWpaZv1&_Q-AZJ|Kq8ZWQCzHp44oF)^aWv za%okeO`%8_tnMxBz*CEy*%k~jr}YB&Nax$vWFZb7tlhgQe=M{v1Hv6{BdMv-hVm5L zDc>jB!#^V5?fRuLBud#Gf#MS1njThYU_Q6ceq&xGf}1R6iB@?_H*l;wjO}u2$sWrk zqItx%#s_8RXxocpGiz*hf=k2-B^6lMtARxw;4l2m`3aW!e{gg+7@^-yf82>cxGy!cfWlunN@qx(n<`Y660J~hbYiy zV*4xZ&($3jX(P~PrATVqL^`irAt_;?<(25bk*X3G+}0Bws;g6Ns)LKg3YCAY%7$gG z%5n5U=@Qb&;!GI2E3%Dz!)DC=oid16tJulR*F#?^IY%v(^S?B~a5ow_zVIhU% zrP}gcmk>m4M2{Qy#qU~bp>M=yoe)qk@|bOEXlJG@eP~8=$T@zieXb$WI>{*6h07?O zxH6@*8Od-S!~88FAA9-bACforuEeYq^kE(Z!etXT<~N`JKYE@52BJ`#j@-!r%DZSB zQp(JyiFVq;j4FPrTk0{Tlcax*lzee1v=5)?C8cWIfgAHNap`Kp+4nur+^vC%{!vbX z+cg)$_cBIL5GOWIF>b-Uj>*xs(V^t=%XixQnm}||p6F{|?8w1}j~{3Q4dF98dqUa3 zh;64+i^-6!045?ohupP~UC>_D=#=rqgCu2@?Vb{kOP=E{JK!V*`;2|n?SURuzH+zs zcenLFDloO@NX5#yvFw(1$TQ}&Pt^7S{)_X#3T4$=k7Xv4TM{2lq2JB5TdP=>vGd|Q zSVR=eK1CNHNTT_{q<1{Kuxk-6YzJ}cRtZ43CzJ*w9JU&G7V#hM25Q>|XvQaf4Ggk} zNo5=Dw3vm^hfiQhep$f>rYrKY*INbaek9)N-LpNq+#cj);>@+Jc7grT*K=ULe(du}bd=`)acw)CYzm651+pwY(eNLME< z${+4#!DU#4Xv=9t&J-u0Jt)ufk|Sm;{dLgfOYWdvj5t>(=I&qU@of-Q>+)T<7JbvH z?l6D66OUEZV%KV5d-AGO=u6oFTPb$>f?Fx-3Euqg#R?Do+*M@)%iC2|k|Ik!h^B*) z&kn>)BE3+m7VX~JVd41q1cCx$9pa4d^d5%F*Ks zQD$HF@0meFrR2mYD+r=v!>{Oc=IGUx6A@4Flp*WFbp>(v$R>T?~~upEz$X( zTOt*IPH&umMy1fBD}nqpT0Gdr#QBDyPJP8%KwH@yMf|d>mz=r>ZvtgqHzy^$F zl<>Y>bg3?tZ8>)l>8(fd-T*}w&v+LWF>ySzjO%Od1G*=l;6X9_E1$PZlCI8pNu45t zOrIp2ROf3IGm5)13;p7f%hJNs5M5OV z8z^4;r0XaQ3+Ip7rp8yr^ns*+8ua34x4BWvY(GO!>If!WH~zthRPG}QC(`B~W<6a9 zcmdG`0)0^hq|3H?^7C|+UTf5Xz=lGnZ?(nM%Jb()jD7=I1(WZ&EvbHCiI7>-vP9?i zecIK~Z`=O_rS0sxLzy#xfjgk5h`iaYHmUgc@h5PM7(R=MsSz}zOJ7iT`1sa7)|b9Gg9~LXctp4Ix$c8JJm;}B#G@g%-IR*mGey9 z(ZrgWeD<6UTcwTr9j_Sea-aEDH#9ZdY+M7qt_2Bb<+a%S6x8Behg}1$6ILl%W4>|S z*>mRsNm*ra_h0(ah(zcjb1A>u75;fL=2}$%3cVo8vwG9bIELNN2JNk*muC7q%ij=VqidB3i^>BXIv* z8at9Khu zQ2sIKD2=Cpsd&Jf+ivx8Uszg75RiqfSIdP$+Y#QHY{UaCc*+Q>JW!R9U7_)5U%3wg z=MhSC8FP*5I^-Via!RQN5trEt)Unlkl9=8OZ$Pd{(Xj|MaekWmb|5T1$K>?I!kA2= zVs8grh>LiO(j`(&G_7h%{QR*7J#tI}N;KQHYrn9KH$70ePje77&m`*9?{kv>XiTiw zB4V32v{mWrL;aI3j}0zx=7SP#Q>{4IIDSGs<`fg&;?sL>DVwzN$5{xM-<*yiWPQS) z^>cTCr2LiXx){^la7Lyd(Eq;;q5dQISLY>9f|MPWet3`bXls`1D1x0~|JA3RP-kG; zvRYxfVp9WyxBOcgWh5~kS!05Z@kBaFto3-X0LX6ja~T{`Cb{9WDs&mmUzCUQ>$54mw`;TRxc=XwnZ%g`h-2JhP($esj+=duWX z;e1#y9bkDbcs~N(lIe>WHZ6SP=0VhXt?KWSu<9!z>VHktKJ<9^cQNZf2NMEzkcvH1 z-vO(V$gQ(8HR}P$pC0W(RvfA^7nmT2KOcMbX?HR|#9D3_#P%FGEN&mh8Ge4^?eji7 zLYIxBTB29aK%A=fUw$q1HgeJbKGS;oYYCFr5WXTvP;sAAamyA1D9G7LjW9^b#|m`-v)d2PNQeWI$Fjd zjWpt-(H^5H&jnv+KLMtd6*pB8@eniy9p&kvVnoZk<962etb#3@-A~-Lb>;GK*XjNe z5G3mTjg|8y5k`PMiJ9ocz{sOt&N-pCQ3sMbU& zk9o5TA5%W?lNQ`C?>y`n1Xu4DdaCbPRzsn88I7aPw&VbT(t&uR5~MclyL7V(@J~A{ z#H#2;COV~sU;{6aCrBr$2k<%rlre_BM|ynf;e~CKN1S+ToT7PwP!sxp!r#k~;5WYONu&^86%K z_AZkzG9=p%#fP>79E=DfIdS4VnB-vdUtj$OxI!DyY&0W@Hm|EbPw-i7-&kI?knl4~ z!#tK5rT0;I{$hkk#^9#>Br`v(o&#ft)oWzWOK;8qsv7a1ovdN!6}*DLDu4IALnZ@n zHhliozKJjUcrE7~f{;p-oD5{)Cy+B-u#X`=ulTb7@w#ELYXTqYR#?oou`yMpeuazq zgS^jIrR|Hw6u?3!ETcNPtm62jo!n#E;rb;Ap-cXYfz=r1Q|*Da;uY{so5qH?cBYtt zu-1NPY!(>P3lOH-=_bItq-uulUh^(}?k$jk0kC_W*Bof6Rk1CYJ+lZqHsxrraPy1P zFa1p)2$N=IOd%9y*aAECVUq%=g=&z#ZrK&rPb)UQ~?#McbPj1A)kbZYC~a>0;?I zQ1aaKloCKh;8E`C6Go_CM20-Rh>+SHAl>Y#lJ0r40kiif-=dCM9^aB2i2`QKiDEtn zt@;yuyfWfR32Bt{QXTW5ML1L=R?FketZ1{^MmgMqy)iIPpJ)55jh8xAivdj8=^mK6 zkqzIjE*NVSV+NfQVkSwzlrFL(+a%e8?zgl;`m-5GOGbGc2L{6Jyh zJJMmjU3X@*twGqehtYwrup*O4-79G)DF3D7S5E9+UPap@OFG}0aXtrxt%R+4U@$}2 z1G%GJ2RRzqxPV)cLi~ATqQ0(jc4dLe#5>X`oJH<;y9&^nvWj{={3M`LXS3$~(!J|i zn;TWVQ4BLf4dqLB8R@5&;7hmnlplaXJe2lCSA{B5kd`pPhJjn}Ic^2oO}*VXn#sy& zUa`DtrQDAzBE|uI?q9dP_=xuW2kepj6b0})jz>^okL(mE;9)hoHO(^KdoPwfSK3o{ zS17#M(EvP9fHR1g2@<_Vra>!brd~6g__nTfAbl3&Q3Ktglhk#{^$n*E&~{F;@)^X8 zPZ{-+NCfB+=714SRHTGcO7UaLv-D;*F5CPuxejQh^cTSub>W%EEM_zv&~vgj;mQOv zw|3Wwo@hj{ZioG2;YlM!V}Zg-Bl^uul(BK)h|MN0CZs?*zlr0CE~Ww=d_^z{4X86& z7dpgf>X@D9YtV7z=IZ%KZ%|Jb!d8Jh&Li*Qb1_NnoqH5)%j7wKmLQvw|LA1@_Y!p8 z>T3xQ^hgh4YILAkiqZ{0tbMJMG86uO(_oqBe3y%aYZ<@S9CvTv?!0d-!Hel{!2S7+ z({zI0GLj4gyfuDRJ`FL^#1}I}3lF4wQeQ>_%(2vak8!CG3urxYROs|PAHj9p`uIWw zmFP+LaO>nxnGKwzQf4)M*E>nkp2o@P^^BP!gyNJj-8j6Xkk-Kt$d_#`uC5o5XgSh^ zZDr?T;}N(-i$-ZlzN!$nBnsrY5?fV^ADuO|l!$bEfFylON?cj9R4tw tgl~qGx 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 literal 0 HcmV?d00001 diff --git a/docs/examples/open5gs/eupf-bgp.yaml b/docs/deployments/open5gs-with-bgp-and-slices/values/eupf.yaml similarity index 85% rename from docs/examples/open5gs/eupf-bgp.yaml rename to docs/deployments/open5gs-with-bgp-and-slices/values/eupf.yaml index c85be287..67153494 100644 --- a/docs/examples/open5gs/eupf-bgp.yaml +++ b/docs/deployments/open5gs-with-bgp-and-slices/values/eupf.yaml @@ -1,19 +1,21 @@ --- +global: + imagePullPolicy: Always + +deploymentStrategy: + type: Recreate + +image: + tag: 0ac3d9fb28808dbca7e123205323e2c09f377971@sha256:a03bdd30efa623b0d3ddc99d9a6472453a43d2d64ed715a9a042e893d82ffb68 + args: - --config - /app/conf/config.yml -securityContext: - privileged: true - -podSecurityContext: - sysctls: - - name: net.ipv4.ip_forward - value: "1" - -deploymentStrategy: - type: Recreate +env: + UPF_PFCP_NODE_ID: $(MY_POD_IP) + UPF_N3_ADDRESS: $(MY_POD_IP) configMaps: config: @@ -24,10 +26,6 @@ configMaps: pfcp_address: :8805 metrics_address: :9090 -env: - UPF_PFCP_NODE_ID: $(MY_POD_IP) - UPF_N3_ADDRESS: $(MY_POD_IP) - volumes: - name: sys hostPath: @@ -48,6 +46,12 @@ volumeMounts: - name: config mountPath: /app/conf +bird: + enabled: true + env: + BIRD_LOCAL_AS: 65001 + BIRD_LOCAL_PREFIX: 10.11.0.0/16 + metrics: enabled: true serviceMonitor: @@ -58,6 +62,18 @@ metrics: port: metrics path: "/metrics" +podAnnotations: + cni.projectcalico.org/ipv4pools: '["default-pool"]' + cni.projectcalico.org/ipAddrs: '["10.233.64.11"]' + +podSecurityContext: + sysctls: + - name: net.ipv4.ip_forward + value: "1" + +securityContext: + privileged: true + extraContainerPorts: - name: gtpu containerPort: 2152 @@ -98,10 +114,3 @@ readinessProbe: port: http initialDelaySeconds: 5 periodSeconds: 10 - -podAnnotations: - cni.projectcalico.org/ipv4pools: '["default-pool"]' - cni.projectcalico.org/ipAddrs: '["10.233.64.1"]' - -bird: - enabled: true diff --git a/docs/examples/open5gs/eupf-container-nat.yaml b/docs/deployments/open5gs-with-bgp-and-slices/values/eupf2.yaml similarity index 76% rename from docs/examples/open5gs/eupf-container-nat.yaml rename to docs/deployments/open5gs-with-bgp-and-slices/values/eupf2.yaml index adbac420..5122c9f7 100644 --- a/docs/examples/open5gs/eupf-container-nat.yaml +++ b/docs/deployments/open5gs-with-bgp-and-slices/values/eupf2.yaml @@ -1,29 +1,21 @@ --- -image: - registry: ghcr.io - repository: edgecomllc - name: eupf - tag: main - pullPolicy: Always +global: + imagePullPolicy: Always -command: - - /app/conf/run.sh +deploymentStrategy: + type: Recreate + +image: + tag: 0ac3d9fb28808dbca7e123205323e2c09f377971@sha256:a03bdd30efa623b0d3ddc99d9a6472453a43d2d64ed715a9a042e893d82ffb68 args: - --config - /app/conf/config.yml -securityContext: - privileged: true - -podSecurityContext: - sysctls: - - name: net.ipv4.ip_forward - value: "1" - -deploymentStrategy: - type: Recreate +env: + UPF_PFCP_NODE_ID: $(MY_POD_IP) + UPF_N3_ADDRESS: $(MY_POD_IP) configMaps: config: @@ -33,23 +25,6 @@ configMaps: api_address: :8080 pfcp_address: :8805 metrics_address: :9090 - run.sh: | - #!/bin/sh - - set -x - - mkdir -p /etc/iproute2 - echo "1000 n6if" >> /etc/iproute2/rt_tables - ip rule add from 10.45.0.0/16 table n6if - ip route add default via 10.99.0.254 dev n6 table n6if - - set +x - - exec /app/bin/eupf $@ - -env: - UPF_PFCP_NODE_ID: $(MY_POD_IP) - UPF_N3_ADDRESS: $(MY_POD_IP) volumes: - name: sys @@ -63,9 +38,6 @@ volumes: - key: config.yml mode: 493 path: config.yml - - key: run.sh - mode: 493 - path: run.sh volumeMounts: - name: sys @@ -74,8 +46,14 @@ volumeMounts: - name: config mountPath: /app/conf +bird: + enabled: true + env: + BIRD_LOCAL_AS: 65002 + BIRD_LOCAL_PREFIX: 10.22.0.0/16 + metrics: - enabled: false + enabled: true serviceMonitor: enabled: true additionalLabels: @@ -84,6 +62,18 @@ metrics: port: metrics path: "/metrics" +podAnnotations: + cni.projectcalico.org/ipv4pools: '["default-pool"]' + cni.projectcalico.org/ipAddrs: '["10.233.64.12"]' + +podSecurityContext: + sysctls: + - name: net.ipv4.ip_forward + value: "1" + +securityContext: + privileged: true + extraContainerPorts: - name: gtpu containerPort: 2152 diff --git a/docs/deployments/open5gs-with-bgp-and-slices/values/gnb.yaml b/docs/deployments/open5gs-with-bgp-and-slices/values/gnb.yaml new file mode 100644 index 00000000..12711177 --- /dev/null +++ b/docs/deployments/open5gs-with-bgp-and-slices/values/gnb.yaml @@ -0,0 +1,4 @@ +--- + +ues: + enabled: false diff --git a/docs/deployments/open5gs-with-bgp-and-slices/values/main.yaml b/docs/deployments/open5gs-with-bgp-and-slices/values/main.yaml new file mode 100644 index 00000000..ce0f1487 --- /dev/null +++ b/docs/deployments/open5gs-with-bgp-and-slices/values/main.yaml @@ -0,0 +1,76 @@ +--- + +mongodb: + persistence: + enabled: false + +upf: + enabled: false + +hss: + enabled: false + +mme: + enabled: false + +pcrf: + enabled: false + +smf: + enabled: false + +sgwc: + enabled: false + +sgwu: + enabled: false + +amf: + config: + guamiList: + - plmn_id: + mcc: "999" + mnc: "70" + amf_id: + region: 2 + set: 1 + taiList: + - plmn_id: + mcc: "999" + mnc: "70" + tac: [1] + plmnList: + - plmn_id: + mcc: "999" + mnc: "70" + s_nssai: + - sst: 1 + sd: "0x111111" + - sst: 1 + sd: "0x222222" + +nssf: + config: + nsiList: + - nrf: + hostname: "" + port: 7777 + sst: 1 + sd: "0x111111" + - nrf: + hostname: "" + port: 7777 + sst: 1 + sd: "0x222222" + +webui: + ingress: + enabled: false + +populate: + enabled: true + initCommands: + - open5gs-dbctl add_ue_with_slice 999700000000001 465B5CE8B199B49FAA5F0A2EE238A6BC E8ED289DEBA952E4283B54E88E6183CA internet 1 111111 + - open5gs-dbctl add_ue_with_slice 999700000000002 465B5CE8B199B49FAA5F0A2EE238A6BC E8ED289DEBA952E4283B54E88E6183CA internet 1 111111 + - open5gs-dbctl add_ue_with_slice 999700000000003 465B5CE8B199B49FAA5F0A2EE238A6BC E8ED289DEBA952E4283B54E88E6183CA internet 1 222222 + - open5gs-dbctl add_ue_with_slice 999700000000004 465B5CE8B199B49FAA5F0A2EE238A6BC E8ED289DEBA952E4283B54E88E6183CA internet 1 222222 diff --git a/docs/deployments/open5gs-with-bgp-and-slices/values/smf.yaml b/docs/deployments/open5gs-with-bgp-and-slices/values/smf.yaml new file mode 100644 index 00000000..b05e32f8 --- /dev/null +++ b/docs/deployments/open5gs-with-bgp-and-slices/values/smf.yaml @@ -0,0 +1,7 @@ +--- + +replicaCount: 0 + +config: + pcrf: + enabled: false diff --git a/docs/deployments/open5gs-with-bgp-and-slices/values/smf2.yaml b/docs/deployments/open5gs-with-bgp-and-slices/values/smf2.yaml new file mode 100644 index 00000000..b05e32f8 --- /dev/null +++ b/docs/deployments/open5gs-with-bgp-and-slices/values/smf2.yaml @@ -0,0 +1,7 @@ +--- + +replicaCount: 0 + +config: + pcrf: + enabled: false diff --git a/docs/deployments/open5gs-with-bgp-and-slices/values/ue.yaml b/docs/deployments/open5gs-with-bgp-and-slices/values/ue.yaml new file mode 100644 index 00000000..542cb349 --- /dev/null +++ b/docs/deployments/open5gs-with-bgp-and-slices/values/ue.yaml @@ -0,0 +1,15 @@ +--- + +count: 1 +initialMSISDN: '0000000001' +gnb: + hostname: gnb-ueransim-gnb +sst: 1 +sd: "0x111111" +apnList: + - type: 'IPv4' + apn: 'internet' + slice: + sst: 1 + sd: "0x111111" + emergency: false diff --git a/docs/deployments/open5gs-with-bgp-and-slices/values/ue2.yaml b/docs/deployments/open5gs-with-bgp-and-slices/values/ue2.yaml new file mode 100644 index 00000000..c0600c2e --- /dev/null +++ b/docs/deployments/open5gs-with-bgp-and-slices/values/ue2.yaml @@ -0,0 +1,15 @@ +--- + +count: 1 +initialMSISDN: '0000000003' +gnb: + hostname: gnb-ueransim-gnb +sst: 1 +sd: "0x222222" +apnList: + - type: 'IPv4' + apn: 'internet' + slice: + sst: 1 + sd: "0x222222" + emergency: false diff --git a/docs/deployments/open5gs-with-bgp/Makefile b/docs/deployments/open5gs-with-bgp/Makefile new file mode 100644 index 00000000..b33a4a69 --- /dev/null +++ b/docs/deployments/open5gs-with-bgp/Makefile @@ -0,0 +1,62 @@ +NAMESPACE?=open5gs +HELM_VALUES_DIR?=./values + +HELM_ARGS?=--timeout 30s --create-namespace +HELM_ACTION?=upgrade --install + +open5gs: + helm $(HELM_ACTION) \ + open5gs openverso/open5gs \ + --version 2.0.12 \ + --values $(HELM_VALUES_DIR)/main.yaml \ + -n $(NAMESPACE) \ + $(HELM_ARGS) + +smf: + helm $(HELM_ACTION) \ + open5gs-smf openverso/open5gs-smf \ + --version 2.0.10 \ + --values $(HELM_VALUES_DIR)/smf.yaml \ + -n $(NAMESPACE) \ + $(HELM_ARGS) + # change default configmap to our + kubectl apply -f $(HELM_VALUES_DIR)/../manifests/smf-configmap.yaml -n $(NAMESPACE) + # scale deployment from 0 to 1 + kubectl scale --replicas=1 deployment open5gs-smf -n $(NAMESPACE) + +calico: + kubectl apply -f $(HELM_VALUES_DIR)/../manifests/calico-pools.yaml + kubectl apply -f $(HELM_VALUES_DIR)/../manifests/calico-bgp.yaml + +upf: + helm $(HELM_ACTION) \ + eupf oci://registry-1.docker.io/edgecom/eupf \ + --version 0.4.0 \ + --values $(HELM_VALUES_DIR)/eupf.yaml \ + -n $(NAMESPACE) \ + $(HELM_ARGS) + +gnb: + helm $(HELM_ACTION) \ + gnb openverso/ueransim-gnb \ + --version 0.2.5 \ + --values $(HELM_VALUES_DIR)/gnb.yaml \ + -n $(NAMESPACE) \ + $(HELM_ARGS) + +ue1: + helm $(HELM_ACTION) \ + ueransim1 openverso/ueransim-ues \ + --version 0.1.1 \ + --values $(HELM_VALUES_DIR)/ue.yaml \ + -n $(NAMESPACE) \ + $(HELM_ARGS) + +clean: + helm delete open5gs -n $(NAMESPACE) || true + helm delete open5gs-smf -n $(NAMESPACE) || true + helm delete eupf -n $(NAMESPACE) || true + helm delete gnb -n $(NAMESPACE) || true + helm delete ueransim1 -n $(NAMESPACE) || true + kubectl delete -f $(HELM_VALUES_DIR)/../manifests/calico-pools.yaml || true + kubectl delete -f $(HELM_VALUES_DIR)/../manifests/calico-bgp.yaml || true diff --git a/docs/deployments/open5gs-with-bgp/README.md b/docs/deployments/open5gs-with-bgp/README.md new file mode 100644 index 00000000..d0386799 --- /dev/null +++ b/docs/deployments/open5gs-with-bgp/README.md @@ -0,0 +1,60 @@ +# Open5GS + eUPF with Calico BGP + +![](./schema.png) + +## Requirements + +- Kubernetes cluster with Calico and Multus CNI +- [helm](https://helm.sh/docs/intro/install/) installed +- calico backend configured as BIRD + +change `calico_backend` parameter to `bird` in configmap with name `calico-config` and then restart all pods with name `calico-node-*` + +- configure helm repos + +``` +helm repo add openverso https://gradiant.github.io/openverso-charts/ +helm repo update +``` + +## Deployment steps + +* install eupf + +`make upf` + +* configure calico BGP settings + +`make calico` + +* install open5gs + +`make open5gs` + +* configure SMF + +`make smf` + +* install gNB + +`make gnb` + +* install UERANSim + +`make ue1` + +## Check steps + +* exec shell in UE pod + +`kubectl -n open5gs exec -ti deployment/ueransim1-ueransim-ues-ues -- /bin/bash` + +* run ICMP test + +`ping -I uesimtun0 1.1.1.1` + +## Undeploy steps + +* undeploy all + +`make clean` diff --git a/docs/deployments/open5gs-with-bgp/manifests/calico-bgp.yaml b/docs/deployments/open5gs-with-bgp/manifests/calico-bgp.yaml new file mode 100644 index 00000000..427c5fd4 --- /dev/null +++ b/docs/deployments/open5gs-with-bgp/manifests/calico-bgp.yaml @@ -0,0 +1,19 @@ +--- +apiVersion: crd.projectcalico.org/v1 +kind: BGPPeer +metadata: + name: eupf-10-11-0-0 +spec: + nodeSelector: all() + peerIP: 10.233.64.11 + asNumber: 65001 +--- +apiVersion: crd.projectcalico.org/v1 +kind: BGPConfiguration +metadata: + creationTimestamp: null + name: default +spec: + asNumber: 64512 + logSeverityScreen: Info + nodeToNodeMeshEnabled: true diff --git a/docs/deployments/open5gs-with-bgp/manifests/calico-pools.yaml b/docs/deployments/open5gs-with-bgp/manifests/calico-pools.yaml new file mode 100644 index 00000000..4eace3be --- /dev/null +++ b/docs/deployments/open5gs-with-bgp/manifests/calico-pools.yaml @@ -0,0 +1,14 @@ +--- +apiVersion: crd.projectcalico.org/v1 +kind: IPPool +metadata: + name: eupf-ue-pool-10-11-0-0 +spec: + cidr: 10.11.0.0/16 + ipipMode: Never + natOutgoing: true + disabled: false + nodeSelector: all() + allowedUses: + - Workload + - Tunnel diff --git a/docs/examples/open5gs/open5gs/smf3-cm.yaml b/docs/deployments/open5gs-with-bgp/manifests/smf-configmap.yaml similarity index 60% rename from docs/examples/open5gs/open5gs/smf3-cm.yaml rename to docs/deployments/open5gs-with-bgp/manifests/smf-configmap.yaml index 481192c6..22c99462 100644 --- a/docs/examples/open5gs/open5gs/smf3-cm.yaml +++ b/docs/deployments/open5gs-with-bgp/manifests/smf-configmap.yaml @@ -1,69 +1,63 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: smf3-open5gs-smf - labels: - app.kubernetes.io/name: open5gs-smf - helm.sh/chart: open5gs-smf-2.0.10 - app.kubernetes.io/instance: smf2 - app.kubernetes.io/managed-by: Helm -data: - smf.yaml: | - logger: - level: info - parameter: {} - sbi: - server: - no_tls: true - client: - no_tls: true - smf: - sbi: - - dev: "eth0" - port: 7777 - pfcp: - - dev: "eth0" - port: 8805 - gtpc: - - dev: "eth0" - port: 2123 - gtpu: - - dev: "eth0" - port: 2152 - subnet: - - - addr: 10.43.0.1/16 - dnn: internet - - - addr: 2001:db83:cafe::1/48 - dnn: internet - dns: - - - 8.8.8.8 - - - 8.8.4.4 - - - 2001:4860:4860::8888 - - - 2001:4860:4860::8844 - mtu: 1400 - info: - - s_nssai: - - sst: 1 - sd: 333333 - dnn: - - internet - tai: - - plmn_id: - mcc: 999 - mnc: 70 - tac: 1 - nrf: - sbi: - - name: open5gs-nrf-sbi - port: 7777 - upf: - pfcp: - - name: eupf3 - port: 8805 - \ No newline at end of file +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: open5gs-smf +data: + smf.yaml: | + logger: + level: info + + parameter: {} + + sbi: + server: + no_tls: true + client: + no_tls: true + + smf: + sbi: + - dev: "eth0" + port: 7777 + pfcp: + - dev: "eth0" + port: 8805 + gtpc: + - dev: "eth0" + port: 2123 + gtpu: + - dev: "eth0" + port: 2152 + subnet: + - addr: 10.11.0.1/16 + dnn: internet + - addr: 2001:db8:cafe::1/48 + dnn: internet + dns: + - 8.8.8.8 + - 8.8.4.4 + - 2001:4860:4860::8888 + - 2001:4860:4860::8844 + mtu: 1400 + info: + - s_nssai: + - sst: 1 + sd: 111111 + dnn: + - internet + tai: + - plmn_id: + mcc: 999 + mnc: 70 + tac: 1 + + nrf: + sbi: + - name: open5gs-nrf-sbi + port: 7777 + + upf: + pfcp: + - name: eupf + port: 8805 diff --git a/docs/deployments/open5gs-with-bgp/schema.png b/docs/deployments/open5gs-with-bgp/schema.png new file mode 100644 index 0000000000000000000000000000000000000000..7a6a2d8fc18f6bf4ed6c8a90fa65f947f456e297 GIT binary patch literal 205785 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 o^^K$VzdgQT> /etc/iproute2/rt_tables; \ - ip rule add from 10.45.0.0/16 lookup fromn3gtp; \ - ip route add default via 10.100.111.1 dev n6 table fromn3gtp ;\ - sysctl -w net.ipv4.ip_forward=1 # to overcome the problem of switched off net.ipv4.ip_forward appearing in some environments ;\ - /app/bin/eupf $0 $@ - -args: - - --config - - /app/conf/config.yml - -securityContext: - privileged: true - -podSecurityContext: - sysctls: - - name: net.ipv4.ip_forward - value: "1" - - name: net.ipv6.conf.all.forwarding - value: "1" - -configMaps: - config: - data: - config.yml: | - interface_name: [eth0, n6] - api_address: :8080 - pfcp_address: :8805 - metrics_address: :9090 - -env: - UPF_PFCP_NODE_ID: $(MY_POD_IP) - UPF_N3_ADDRESS: $(MY_POD_IP) - -volumes: - - name: sys - hostPath: - path: /sys - - name: config - configMap: - name: eupf-config - -volumeMounts: - - name: sys - mountPath: /sys - readOnly: true - - name: config - mountPath: /app/conf - -metrics: - enabled: true - serviceMonitor: - enabled: true - additionalLabels: - release: kube-prometheus-stack - endpoints: - port: metrics - path: "/metrics" - -imagePullSecrets: - - name: gh-container-registry - -extraContainerPorts: - - name: gtpu - containerPort: 2152 - protocol: UDP - - name: pfcp - containerPort: 8805 - protocol: UDP - - name: metrics - containerPort: 9090 - protocol: TCP - -service: - type: ClusterIP - port: 8080 - extraPorts: - - port: 2152 - targetPort: gtpu - protocol: UDP - name: gtpu - - port: 8805 - targetPort: pfcp - protocol: UDP - name: pfcp - - port: 9090 - targetPort: metrics - protocol: TCP - name: metrics - -resources: - limits: - cpu: 100m - memory: 128Mi - requests: - cpu: 100m - memory: 128Mi - -livenessProbe: - tcpSocket: - port: http - initialDelaySeconds: 5 - periodSeconds: 10 - -readinessProbe: - tcpSocket: - port: http - initialDelaySeconds: 5 - periodSeconds: 10 - -podAnnotations: - k8s.v1.cni.cncf.io/networks: | - [ - { "name": "n6ptp-upf", - "interface": "n6", - "ips": [ "10.100.111.12/24" ] - } - ] - -extraDeploy: - - apiVersion: k8s.cni.cncf.io/v1 - kind: NetworkAttachmentDefinition - metadata: - name: n6ptp-upf - spec: - config: | - { - "cniVersion": "0.3.1", - "plugins": [ - { - "type": "ptp", - "capabilities": { "ips": true }, - "ipam": { - "type": "host-local", - "ranges": [ - [ - { - "subnet": "10.100.111.0/24", - "gateway": "10.100.111.1" - } - ] - ], - "routes": [ - { "dst": "8.0.0.0/8" } - ] - } - } - ] - } - - - apiVersion: batch/v1 - kind: Job - metadata: - name: rout4eupf - # labels: - # app: rout4eupf # Deployment labels to match with replicaset labels and pods labels - spec: - # selector: - # matchLabels: - # app: rout4eupf # Replicaset to manage pods with labels - template: - # metadata: - # labels: - # app: rout4eupf # Pods labels - spec: - hostNetwork: true - restartPolicy: Never - containers: - - name: iprouteadd - env: - - name: UPF_POD_IP - value: "10.100.111.12" #addr at n6 in eupf pod - - name: UPF_POOLS_CIDR - value: "10.45.0.0/16" # {{ .Values.config.subnetList.addr }} in https://github.com/Gradiant/openverso-charts/blob/master/charts/open5gs-smf/values.yaml - image: alpine:3.17.3 - imagePullPolicy: IfNotPresent - resources: {} - securityContext: - capabilities: - add: - - NET_ADMIN - privileged: true - runAsNonRoot: false - command: - - /bin/sh - - -c - - | - echo "start script"; set -x ;\ - i=0; DEVNAME_PTP=""; \ - while [ -z "$DEVNAME_PTP" ]; \ - do \ - echo "$i: wait 1 sec for DEVNAME_PTP"; sleep 1; \ - DEVNAME_PTP=$(ip route list ${UPF_POD_IP} | awk '{print $3}'); \ - i=$((i+1)); \ - done ;\ - ip route add ${UPF_POOLS_CIDR} via ${UPF_POD_IP} dev ${DEVNAME_PTP} onlink ;\ - if [ $? = 0 ]; then \ - echo "OK"; \ - else \ - echo "If ERR is File exists, possible it's OK, route already created."; \ - fi diff --git a/docs/examples/open5gs/eupf2-rout-static.yml b/docs/examples/open5gs/eupf2-rout-static.yml deleted file mode 100644 index 0740b882..00000000 --- a/docs/examples/open5gs/eupf2-rout-static.yml +++ /dev/null @@ -1,213 +0,0 @@ ---- - -image: - registry: ghcr.io - repository: edgecomllc - name: eupf - tag: main - pullPolicy: Always - -command: - - /bin/sh - - -c - - | - set -x ; mkdir /etc/iproute2 ; echo "111 fromn3gtp" >> /etc/iproute2/rt_tables; \ - ip rule add from 10.46.0.0/16 lookup fromn3gtp; \ - ip route add default via 10.100.111.1 dev n6 table fromn3gtp ;\ - sysctl -w net.ipv4.ip_forward=1 # to overcome the problem of switched off net.ipv4.ip_forward appearing in some environments ;\ - /app/bin/eupf $0 $@ - -args: - - --config - - /app/conf/config.yml - -securityContext: - privileged: true - -podSecurityContext: - sysctls: - - name: net.ipv4.ip_forward - value: "1" - - name: net.ipv6.conf.all.forwarding - value: "1" - -configMaps: - config: - data: - config.yml: | - interface_name: [eth0, n6] - api_address: :8080 - pfcp_address: :8805 - metrics_address: :9090 - -env: - UPF_PFCP_NODE_ID: $(MY_POD_IP) - UPF_N3_ADDRESS: $(MY_POD_IP) - -volumes: - - name: sys - hostPath: - path: /sys - - name: config - configMap: - name: eupf2-config - -volumeMounts: - - name: sys - mountPath: /sys - readOnly: true - - name: config - mountPath: /app/conf - -metrics: - enabled: true - serviceMonitor: - enabled: true - additionalLabels: - release: kube-prometheus-stack - endpoints: - port: metrics - path: "/metrics" - -imagePullSecrets: - - name: gh-container-registry - -extraContainerPorts: - - name: gtpu - containerPort: 2152 - protocol: UDP - - name: pfcp - containerPort: 8805 - protocol: UDP - - name: metrics - containerPort: 9090 - protocol: TCP - -service: - type: ClusterIP - port: 8080 - extraPorts: - - port: 2152 - targetPort: gtpu - protocol: UDP - name: gtpu - - port: 8805 - targetPort: pfcp - protocol: UDP - name: pfcp - - port: 9090 - targetPort: metrics - protocol: TCP - name: metrics - -resources: - limits: - cpu: 100m - memory: 128Mi - requests: - cpu: 100m - memory: 128Mi - -livenessProbe: - tcpSocket: - port: http - initialDelaySeconds: 5 - periodSeconds: 10 - -readinessProbe: - tcpSocket: - port: http - initialDelaySeconds: 5 - periodSeconds: 10 - -podAnnotations: - k8s.v1.cni.cncf.io/networks: | - [ - { "name": "n6ptp-upf", - "interface": "n6", - "ips": [ "10.100.111.22/24" ] - } - ] - -extraDeploy: - - apiVersion: k8s.cni.cncf.io/v1 - kind: NetworkAttachmentDefinition - metadata: - name: n6ptp-upf - spec: - config: | - { - "cniVersion": "0.3.1", - "plugins": [ - { - "type": "ptp", - "capabilities": { "ips": true }, - "ipam": { - "type": "host-local", - "ranges": [ - [ - { - "subnet": "10.100.111.0/24", - "gateway": "10.100.111.1" - } - ] - ], - "routes": [ - { "dst": "8.0.0.0/8" } - ] - } - } - ] - } - - - apiVersion: batch/v1 - kind: Job - metadata: - name: rout4eupf2 - # labels: - # app: rout4eupf # Deployment labels to match with replicaset labels and pods labels - spec: - # selector: - # matchLabels: - # app: rout4eupf # Replicaset to manage pods with labels - template: - # metadata: - # labels: - # app: rout4eupf # Pods labels - spec: - hostNetwork: true - restartPolicy: Never - containers: - - name: iprouteadd - env: - - name: UPF_POD_IP - value: "10.100.111.22" #addr at n6 in eupf pod - - name: UPF_POOLS_CIDR - value: "10.46.0.0/16" # {{ .Values.config.subnetList.addr }} in https://github.com/Gradiant/openverso-charts/blob/master/charts/open5gs-smf/values.yaml - image: alpine:3.17.3 - imagePullPolicy: IfNotPresent - resources: {} - securityContext: - capabilities: - add: - - NET_ADMIN - privileged: true - runAsNonRoot: false - command: - - /bin/sh - - -c - - | - echo "start script"; set -x ;\ - i=0; DEVNAME_PTP=""; \ - while [ -z "$DEVNAME_PTP" ]; \ - do \ - echo "$i: wait 1 sec for DEVNAME_PTP"; sleep 1; \ - DEVNAME_PTP=$(ip route list ${UPF_POD_IP} | awk '{print $3}'); \ - i=$((i+1)); \ - done ;\ - ip route add ${UPF_POOLS_CIDR} via ${UPF_POD_IP} dev ${DEVNAME_PTP} onlink ;\ - if [ $? = 0 ]; then \ - echo "OK"; \ - else \ - echo "If ERR is File exists, possible it's OK, route already created."; \ - fi diff --git a/docs/examples/open5gs/eupf3-rout-static.yml b/docs/examples/open5gs/eupf3-rout-static.yml deleted file mode 100644 index 20129363..00000000 --- a/docs/examples/open5gs/eupf3-rout-static.yml +++ /dev/null @@ -1,213 +0,0 @@ ---- - -image: - registry: ghcr.io - repository: edgecomllc - name: eupf - tag: main - pullPolicy: Always - -command: - - /bin/sh - - -c - - | - set -x ; mkdir /etc/iproute2 ; echo "111 fromn3gtp" >> /etc/iproute2/rt_tables; \ - ip rule add from 10.43.0.0/16 lookup fromn3gtp; \ - ip route add default via 10.100.111.1 dev n6 table fromn3gtp ;\ - sysctl -w net.ipv4.ip_forward=1 # to overcome the problem of switched off net.ipv4.ip_forward appearing in some environments ;\ - /app/bin/eupf $0 $@ - -args: - - --config - - /app/conf/config.yml - -securityContext: - privileged: true - -podSecurityContext: - sysctls: - - name: net.ipv4.ip_forward - value: "1" - - name: net.ipv6.conf.all.forwarding - value: "1" - -configMaps: - config: - data: - config.yml: | - interface_name: [eth0, n6] - api_address: :8080 - pfcp_address: :8805 - metrics_address: :9090 - -env: - UPF_PFCP_NODE_ID: $(MY_POD_IP) - UPF_N3_ADDRESS: $(MY_POD_IP) - -volumes: - - name: sys - hostPath: - path: /sys - - name: config - configMap: - name: eupf3-config - -volumeMounts: - - name: sys - mountPath: /sys - readOnly: true - - name: config - mountPath: /app/conf - -metrics: - enabled: true - serviceMonitor: - enabled: true - additionalLabels: - release: kube-prometheus-stack - endpoints: - port: metrics - path: "/metrics" - -imagePullSecrets: - - name: gh-container-registry - -extraContainerPorts: - - name: gtpu - containerPort: 2152 - protocol: UDP - - name: pfcp - containerPort: 8805 - protocol: UDP - - name: metrics - containerPort: 9090 - protocol: TCP - -service: - type: ClusterIP - port: 8080 - extraPorts: - - port: 2152 - targetPort: gtpu - protocol: UDP - name: gtpu - - port: 8805 - targetPort: pfcp - protocol: UDP - name: pfcp - - port: 9090 - targetPort: metrics - protocol: TCP - name: metrics - -resources: - limits: - cpu: 100m - memory: 128Mi - requests: - cpu: 100m - memory: 128Mi - -livenessProbe: - tcpSocket: - port: http - initialDelaySeconds: 5 - periodSeconds: 10 - -readinessProbe: - tcpSocket: - port: http - initialDelaySeconds: 5 - periodSeconds: 10 - -podAnnotations: - k8s.v1.cni.cncf.io/networks: | - [ - { "name": "n6ptp-upf", - "interface": "n6", - "ips": [ "10.100.111.33/24" ] - } - ] - -extraDeploy: - - apiVersion: k8s.cni.cncf.io/v1 - kind: NetworkAttachmentDefinition - metadata: - name: n6ptp-upf - spec: - config: | - { - "cniVersion": "0.3.1", - "plugins": [ - { - "type": "ptp", - "capabilities": { "ips": true }, - "ipam": { - "type": "host-local", - "ranges": [ - [ - { - "subnet": "10.100.111.0/24", - "gateway": "10.100.111.1" - } - ] - ], - "routes": [ - { "dst": "8.0.0.0/8" } - ] - } - } - ] - } - - - apiVersion: batch/v1 - kind: Job - metadata: - name: rout4eupf3 - # labels: - # app: rout4eupf # Deployment labels to match with replicaset labels and pods labels - spec: - # selector: - # matchLabels: - # app: rout4eupf # Replicaset to manage pods with labels - template: - # metadata: - # labels: - # app: rout4eupf # Pods labels - spec: - hostNetwork: true - restartPolicy: Never - containers: - - name: iprouteadd - env: - - name: UPF_POD_IP - value: "10.100.111.33" #addr at n6 in eupf pod - - name: UPF_POOLS_CIDR - value: "10.43.0.0/16" # {{ .Values.config.subnetList.addr }} in https://github.com/Gradiant/openverso-charts/blob/master/charts/open5gs-smf/values.yaml - image: alpine:3.17.3 - imagePullPolicy: IfNotPresent - resources: {} - securityContext: - capabilities: - add: - - NET_ADMIN - privileged: true - runAsNonRoot: false - command: - - /bin/sh - - -c - - | - echo "start script"; set -x ;\ - i=0; DEVNAME_PTP=""; \ - while [ -z "$DEVNAME_PTP" ]; \ - do \ - echo "$i: wait 1 sec for DEVNAME_PTP"; sleep 1; \ - DEVNAME_PTP=$(ip route list ${UPF_POD_IP} | awk '{print $3}'); \ - i=$((i+1)); \ - done ;\ - ip route add ${UPF_POOLS_CIDR} via ${UPF_POD_IP} dev ${DEVNAME_PTP} onlink ;\ - if [ $? = 0 ]; then \ - echo "OK"; \ - else \ - echo "If ERR is File exists, possible it's OK, route already created."; \ - fi diff --git a/docs/examples/open5gs/iperf.yaml b/docs/examples/open5gs/iperf.yaml deleted file mode 100644 index 513f5c41..00000000 --- a/docs/examples/open5gs/iperf.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- - -service: - type: ClusterIP - -containerSecurityContext: - runAsUser: 0 - privileged: true - -command: - - /bin/sh - - -c - - | - apk add ethtool; \ - ethtool -K eth0 tx off; \ - iperf3 -s --interval=1 --format=M - -args: [] diff --git a/docs/examples/open5gs/nat.yaml b/docs/examples/open5gs/nat.yaml deleted file mode 100644 index 18094588..00000000 --- a/docs/examples/open5gs/nat.yaml +++ /dev/null @@ -1,104 +0,0 @@ -apiVersion: k8s.cni.cncf.io/v1 -kind: NetworkAttachmentDefinition -metadata: - name: edgecomllc-eupf-nat-n6 - namespace: open5gs -spec: - config: | - { - "cniVersion": "0.3.1", - "name": "edgecomllc-eupf-nat-n6", - "type": "bridge", - "bridge": "eupf-n6", - "ipMasq": false, - "isGateway": false, - "isDefaultGateway": false, - "ipam": { - "type": "static" - } - } ---- -apiVersion: v1 -kind: ConfigMap -metadata: - labels: - app.kubernetes.io/instance: edgecomllc-eupf - app.kubernetes.io/name: nat - name: edgecomllc-eupf-nat - namespace: open5gs -data: - run.sh: | - #!/bin/bash - - set -x - - ip ro add 10.45.0.0/16 via 10.99.0.10 - iptables -t nat -A POSTROUTING -s 10.45.0.0/16 -o eth0 -j MASQUERADE - - set +x - - # apk add ethtool - # ethtool -K eth0 tx off - # ethtool -K n6 tx off - - while true; do echo "i am alive"; sleep 30; done; ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app.kubernetes.io/instance: edgecomllc-eupf - app.kubernetes.io/name: nat - name: edgecomllc-eupf-nat - namespace: open5gs -spec: - selector: - matchLabels: - app.kubernetes.io/instance: edgecomllc-eupf - app.kubernetes.io/name: nat - template: - metadata: - annotations: - k8s.v1.cni.cncf.io/networks: | - [ - { - "name": "edgecomllc-eupf-nat-n6", - "interface": "n6", - "ips": [ "10.99.0.254/24" ] - } - ] - labels: - app.kubernetes.io/instance: edgecomllc-eupf - app.kubernetes.io/name: nat - version: latest - spec: - containers: - - name: nat - image: praqma/network-multitool:c3d4e04 - imagePullPolicy: Always - command: [ "/conf/run.sh" ] - resources: - limits: - cpu: 100m - memory: 128Mi - requests: - cpu: 100m - memory: 128Mi - securityContext: - privileged: true - volumeMounts: - - mountPath: /conf - name: config - securityContext: - sysctls: - - name: net.ipv4.ip_forward - value: "1" - volumes: - - configMap: - defaultMode: 420 - items: - - key: run.sh - mode: 493 - path: run.sh - name: edgecomllc-eupf-nat - name: config diff --git a/docs/examples/open5gs/open5gs.yaml b/docs/examples/open5gs/open5gs.yaml deleted file mode 100644 index 1051ab3c..00000000 --- a/docs/examples/open5gs/open5gs.yaml +++ /dev/null @@ -1,108 +0,0 @@ ---- - -mongodb: - persistence: - enabled: false - -upf: - enabled: false - # enabled: true - -hss: - enabled: false - -mme: - enabled: false - -pcrf: - enabled: false - -smf: - config: - subnetList: - - addr: 10.45.0.1/16 - dnn: internet - - addr: 2001:db8:cafe::1/48 - dnn: internet - pcrf: - enabled: false - upf: - pfcp: - hostname: edgecomllc-eupf-universal-chart - port: 8805 - info: - - s_nssai: - - sst: 1 - sd: 111111 - dnn: - - internet - tai: - - plmn_id: - mcc: 999 - mnc: 70 - tac: 1 - -sgwc: - enabled: false - -sgwu: - enabled: false - -amf: - config: - guamiList: - - plmn_id: - mcc: "999" - mnc: "70" - amf_id: - region: 2 - set: 1 - taiList: - - plmn_id: - mcc: "999" - mnc: "70" - tac: [1] - plmnList: - - plmn_id: - mcc: "999" - mnc: "70" - s_nssai: - - sst: 1 - sd: "0x111111" - - sst: 1 - sd: "0x112233" - - sst: 1 - sd: "0x333333" - -nssf: - config: - nsiList: - - nrf: - hostname: "" # if empty default is autogenerated open5gs svc fullname - port: 7777 - sst: 1 - sd: "0x111111" - - nrf: - hostname: "" # if empty default is autogenerated open5gs svc fullname - port: 7777 - sst: 1 - sd: "0x112233" - - nrf: - hostname: "" # if empty default is autogenerated open5gs svc fullname - port: 7777 - sst: 1 - sd: "0x333333" - -webui: - ingress: - enabled: false - -populate: - enabled: true - initCommands: - - open5gs-dbctl add_ue_with_slice 999700000000001 465B5CE8B199B49FAA5F0A2EE238A6BC E8ED289DEBA952E4283B54E88E6183CA internet 1 111111 - - open5gs-dbctl add_ue_with_slice 999700000000002 465B5CE8B199B49FAA5F0A2EE238A6BC E8ED289DEBA952E4283B54E88E6183CA internet 1 111111 - - open5gs-dbctl add_ue_with_slice 999700000000003 465B5CE8B199B49FAA5F0A2EE238A6BC E8ED289DEBA952E4283B54E88E6183CA internet 1 112233 - - open5gs-dbctl add_ue_with_slice 999700000000004 465B5CE8B199B49FAA5F0A2EE238A6BC E8ED289DEBA952E4283B54E88E6183CA internet 1 112233 - - open5gs-dbctl add_ue_with_slice 999700000000005 465B5CE8B199B49FAA5F0A2EE238A6BC E8ED289DEBA952E4283B54E88E6183CA internet 1 333333 - - open5gs-dbctl add_ue_with_slice 999700000000006 465B5CE8B199B49FAA5F0A2EE238A6BC E8ED289DEBA952E4283B54E88E6183CA internet 1 333333 diff --git a/docs/examples/open5gs/smf2slice-open5gs.yaml b/docs/examples/open5gs/smf2slice-open5gs.yaml deleted file mode 100644 index 0ba7f430..00000000 --- a/docs/examples/open5gs/smf2slice-open5gs.yaml +++ /dev/null @@ -1,32 +0,0 @@ ---- - -# Helm Values openverso/open5gs-smf :: SMF for second slice with sd: 112233 -# smf: - config: - subnetList: - - addr: 10.46.0.1/16 - dnn: internet - - addr: 2001:db88:cafe::1/48 - dnn: internet - pcrf: - enabled: false - nrf: - enabled: true - sbi: - hostname: open5gs-nrf-sbi # autogenerated open5gs svc name - port: 7777 - upf: - pfcp: - hostname: eupf2 - port: 8805 - info: - - s_nssai: - - sst: 1 - sd: 112233 - dnn: - - internet - tai: - - plmn_id: - mcc: 999 - mnc: 70 - tac: 1 diff --git a/docs/examples/open5gs/smf3slice-open5gs.yaml b/docs/examples/open5gs/smf3slice-open5gs.yaml deleted file mode 100644 index 9465ca67..00000000 --- a/docs/examples/open5gs/smf3slice-open5gs.yaml +++ /dev/null @@ -1,32 +0,0 @@ ---- - -# Helm Values openverso/open5gs-smf :: SMF for second slice with sd: 112233 -# smf: - config: - subnetList: - - addr: 10.43.0.1/16 - dnn: internet - - addr: 2001:db83:cafe::1/48 - dnn: internet - pcrf: - enabled: false - nrf: - enabled: true - sbi: - hostname: open5gs-nrf-sbi # autogenerated open5gs svc name - port: 7777 - upf: - pfcp: - hostname: eupf3 - port: 8805 - info: - - s_nssai: - - sst: 1 - sd: 333333 - dnn: - - internet - tai: - - plmn_id: - mcc: 999 - mnc: 70 - tac: 1 diff --git a/docs/examples/open5gs/ueransim-gnb.yaml b/docs/examples/open5gs/ueransim-gnb.yaml deleted file mode 100644 index e7a1fc3b..00000000 --- a/docs/examples/open5gs/ueransim-gnb.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- - -ues: - enabled: true diff --git a/docs/examples/open5gs/ueransim-ue2.yaml b/docs/examples/open5gs/ueransim-ue2.yaml deleted file mode 100644 index 2559133c..00000000 --- a/docs/examples/open5gs/ueransim-ue2.yaml +++ /dev/null @@ -1,17 +0,0 @@ ---- - -# Helm Values openverso/ueransim-ues :: second UE for slice with sd: 112233 - -count: 1 -initialMSISDN: '0000000003' -gnb: - hostname: ueransim-ueransim-gnb -sst: 1 -sd: "0x112233" -apnList: - - type: 'IPv4' - apn: 'internet' - slice: - sst: 1 - sd: "0x112233" - emergency: false diff --git a/docs/examples/open5gs/ueransim-ue3.yaml b/docs/examples/open5gs/ueransim-ue3.yaml deleted file mode 100644 index 42063e15..00000000 --- a/docs/examples/open5gs/ueransim-ue3.yaml +++ /dev/null @@ -1,17 +0,0 @@ ---- - -# Helm Values openverso/ueransim-ues :: second UE for slice with sd: 112233 - -count: 1 -initialMSISDN: '0000000005' -gnb: - hostname: ueransim-ueransim-gnb -sst: 1 -sd: "0x333333" -apnList: - - type: 'IPv4' - apn: 'internet' - slice: - sst: 1 - sd: "0x333333" - emergency: false diff --git a/docs/install.md b/docs/install.md index 5fd6f2ac..2510ec41 100644 --- a/docs/install.md +++ b/docs/install.md @@ -19,253 +19,7 @@ We have prepared templates to deploy with two opensource environments: **open5gs [UERANSIM](https://github.com/aligungr/UERANSIM) project is used for emulating radio endpoint, so you'll be able to check end-to-end connectivity. -## How to deploy eUPF with open5gs core: -
Instructions -

- -### To deploy: - -0. [install helm](https://helm.sh/docs/intro/install/) if it's not -0. add openverso helm repo - - ``` - helm repo add openverso https://gradiant.github.io/openverso-charts/ - helm repo update - ``` - -0. install the eUPF chart - - - Option 1, fast pure routing to nodes's network: - - 📝 Here we use subnet `10.100.111.0/24` for `n6` ptp type interface as a door to the outer world for our eUPF. And `10.45.0.0/16` addresses for subscribers at UE. So make sure that both IP subnets is not occupied on your node host. - - ```powershell - helm upgrade --install \ - edgecomllc-eupf .deploy/helm/eupf \ - --values docs/examples/open5gs/eupf-host-nat.yaml \ - -n open5gs \ - --wait --timeout 100s --create-namespace - ``` - eUPF pod outbound connection is pure routed at the node. There is no address translation inside pod, so we avoid such lack of throughtput. - - If you need Network Address Translation (NAT) function for subscriber's egress traffic, see the chapter [about NAT](#option-nat-at-the-node) below. - - - Option 2, with an additional pod that handles the NAT function: - - 📝 Here we use separate container for NAT: - - ``` - kubectl apply -f docs/examples/open5gs/nat.yaml -n open5gs - ``` - - ```powershell - helm upgrade --install \ - eupf .deploy/helm/eupf \ - --values docs/examples/open5gs/eupf-container-nat.yaml \ - -n open5gs \ - --wait --timeout 100s --create-namespace - ``` - - - Option 3, BGP connection with calico CNI: - - * configure calico backend - - change `calico_backend` parameter to `bird` in configmap with name `calico-config` and then restart all pods with name `calico-node-*` - - * configure Calico BGP - - ```bash - kubectl apply -f docs/examples/open5gs/calico-bgp.yaml - ``` - - * configure Calico IP Pool for UE devices - - ```bash - kubectl apply -f docs/examples/open5gs/calico-pools.yaml - ``` - - ```bash - helm upgrade --install \ - eupf .deploy/helm/eupf \ - --values docs/examples/open5gs/eupf-bgp.yaml \ - -n open5gs \ - --wait --timeout 100s --create-namespace - ``` - -1. install open5gs chart - - ```powershell - helm upgrade --install \ - open5gs openverso/open5gs \ - --values docs/examples/open5gs/open5gs.yaml \ - -n open5gs \ - --version 2.0.12 \ - --wait --timeout 100s --create-namespace - ``` - -2. install ueransim chart - - ```powershell - helm upgrade --install \ - ueransim openverso/ueransim-gnb \ - --values docs/examples/open5gs/ueransim-gnb.yaml \ - -n open5gs \ - --version 0.2.5 \ - --wait --timeout 100s --create-namespace - ``` - -### To undeploy everything: - -``` -helm uninstall open5gs ueransim edgecomllc-eupf -n open5gs -kubectl delete -f docs/examples/open5gs/nat.yaml -``` -### Notes -📝 Pod's interconnection. openverso-charts uses default interfaces of your kubernetes cluster. It is Calico CNI interfaces in our environment, type ipvlan. And it uses k8s services names to resolve endpoints. - - -For more details refer to openverso-charts [Open5gs and UERANSIM](https://gradiant.github.io/openverso-charts/open5gs-ueransim-gnb.html) - -### Option add second network slice -This will install eUPF2, SMF2 and UE2 with slice `sd: 112233`. UEs subnet is `10.46.0.1/16` -```powershell -helm upgrade --install \ - eupf2 .deploy/helm/universal-chart \ - --values docs/examples/open5gs/eupf2-rout-static.yml \ - -n open5gs \ - --wait --timeout 100s - -helm upgrade --install \ - smf2 openverso/open5gs-smf \ - --values docs/examples/open5gs/smf2slice-open5gs.yaml \ - -n open5gs \ - --set image.tag=2.6.2 \ - --version 2.0.10 \ - --wait --timeout 100s -kubectl apply -f docs/examples/open5gs/smf2-cm.yaml -n open5gs - -kubectl apply -f docs/examples/open5gs/smf1-cm.yaml -n open5gs - -helm upgrade --install -n open5gs ueransim-ues2 openverso/ueransim-ues \ - --values docs/examples/open5gs/ueransim-ue2.yaml \ - --wait --timeout 100s -``` -To undeploy second slice: -`helm uninstall smf2 ueransim-ues2 eupf2 -n open5gs` - -

-
- ## How to deploy eUPF with free5gc core -
Instruction -

- - -### Deploy in Kubernetes cluster - -Deployment configuration is derived from towards5gs-helm project [Setup free5gc](https://github.com/Orange-OpenSource/towards5gs-helm/blob/main/docs/demo/Setup-free5gc-on-multiple-clusters-and-test-with-UERANSIM.md) -![Architecture](pictures/Setup-free5gc-on-multiple-clusters-and-test-with-UERANSIM-Architecture.png) - - -0. [install helm](https://helm.sh/docs/intro/install/) if it's not -0. add towards5gs helm repo - - ```powershell - helm repo add towards5gs https://raw.githubusercontent.com/Orange-OpenSource/towards5gs-helm/main/repo/ - helm repo update - ``` - -0. install eUPF chart - - - Option 1, fast pure routing to nodes's network: - - ```powershell - helm upgrade --install \ - edgecomllc-eupf .deploy/helm/eupf \ - --values docs/examples/free5gc/eupf-host-nat.yaml \ - -n free5gc \ - --wait --timeout 100s --create-namespace - ``` - - 📝 Here we use subnet `10.100.100.0/24` for `n6` ptp type interface as a door to the outer world for our eUPF. And `10.1.0.0/16` addresses for subscribers at UE. So make sure that both IP subnets is not occupied on your node host. - - eUPF pod outbound connection is pure routed at the node. There is no address translation inside pod, so we avoid such lack of throughtput. - - If you need Network Address Translation (NAT) function for subscriber's egress traffic, see the chapter [about NAT](#option-nat-at-the-node) below. - - - Option 2, with an additional pod that handles the NAT function: - - 📝 Here we use separate container for NAT: - - ``` - kubectl apply -f docs/examples/free5gc/nat.yaml - ``` - - ```powershell - helm upgrade --install \ - edgecomllc-eupf .deploy/helm/eupf \ - --values docs/examples/free5gc/eupf-container-nat.yaml \ - -n free5gc \ - --wait --timeout 100s --create-namespace - ``` - -1. install free5gc chart - - ```powershell - helm upgrade --install \ - free5gc towards5gs/free5gc \ - --values docs/examples/free5gc/free5gc-single.yaml \ - -n free5gc \ - --version 1.1.6 \ - --wait --timeout 100s --create-namespace - ``` - -2. create subscriber in free5gc via WebUI - - redirect port from webui pod to localhost - - ```powershell - kubectl port-forward service/webui-service 5000:5000 -n free5gc - ``` - - open http://127.0.0.1:5000 in your browser (for auth use user "admin" with password "free5gc"), go to menu "subscribers", click "new subscriber", leave all values as is, press "submit" - - close port forward with `Ctrl + C` - -3. install ueransim chart - - ```powershell - helm upgrade --install \ - ueransim towards5gs/ueransim \ - --values docs/examples/free5gc/ueransim.yaml \ - -n free5gc \ - --version 2.0.17 \ - --wait --timeout 100s --create-namespace - ``` - -### To undeploy everything - -``` -helm uninstall free5gc ueransim edgecomllc-eupf -n free5gc -``` -📝 Pod's interconnection. towards5gs-helm uses separate subnets with ipvlan type interfaces with internal addressing. -The only added is ptp type interface `n6` as a door to the outer world for our eUPF. ### Option add second network slice 1. This will install eUPF2 with slice `sd: 112233`. UEs subnet is `10.2.0.0/16` @@ -274,7 +28,7 @@ The only added is ptp type interface `n6` as a door to the outer world for our e eupf2 .deploy/helm/universal-chart \ --values docs/examples/free5gc/eupf2-rout-static.yaml \ -n free5gc \ - --wait --timeout 100s + --wait --timeout 100s ``` 1. Create subscriber in free5gc via WebUI: go to menu "subscribers", click "new subscriber", leave all values as is, except SUPI (IMSI)* : `208930000000004` & SD* : `112233`, press "submit". From be69faf10aa579ab09a3b41d65195dd934bcd8da Mon Sep 17 00:00:00 2001 From: Maxim Baranov Date: Thu, 14 Sep 2023 19:43:52 +0400 Subject: [PATCH 02/10] f --- docs/deployments/README.md | 4 ++++ docs/install.md | 36 ++++-------------------------------- 2 files changed, 8 insertions(+), 32 deletions(-) diff --git a/docs/deployments/README.md b/docs/deployments/README.md index 7e95b31f..98c89963 100644 --- a/docs/deployments/README.md +++ b/docs/deployments/README.md @@ -11,3 +11,7 @@ ## Free5GC + Calico BGP [see doc](./free5gc-with-bgp/README.md) + +## Free5GC + ULCL + +[see doc](./free5gc-ulcl/README.md) diff --git a/docs/install.md b/docs/install.md index 2510ec41..b95c6c0a 100644 --- a/docs/install.md +++ b/docs/install.md @@ -2,6 +2,8 @@ The easyest way to install eUPF is to use helm charts for one of the supported opensource 5G core projects in your own kubernetes cluster. Alternatively, eUPF could be deployed in docker-compose (only with free5gc config is ready at the moment). +## Node requirements + **eUPF need Linux kernel > 5.14 version (we used Ubuntu 22.04 LTS)** ## Kubenetes environment @@ -19,29 +21,10 @@ We have prepared templates to deploy with two opensource environments: **open5gs [UERANSIM](https://github.com/aligungr/UERANSIM) project is used for emulating radio endpoint, so you'll be able to check end-to-end connectivity. -## How to deploy eUPF with free5gc core - -### Option add second network slice -1. This will install eUPF2 with slice `sd: 112233`. UEs subnet is `10.2.0.0/16` - ```powershell - helm upgrade --install \ - eupf2 .deploy/helm/universal-chart \ - --values docs/examples/free5gc/eupf2-rout-static.yaml \ - -n free5gc \ - --wait --timeout 100s - ``` -1. Create subscriber in free5gc via WebUI: go to menu "subscribers", click "new subscriber", leave all values as is, except SUPI (IMSI)* : `208930000000004` & SD* : `112233`, press "submit". - -1. Open UE's console and put -`nr-ue -c ue.yaml -n 1 -i 208930000000004 &`
-New `uesimtun1` interface will appear with IP address from 10.2.0.0 +## Deployment variants -To undeploy second eUPF: -`helm uninstall eupf2 -n free5gc` +[Here](./deployments/README.md) you can read more information abount deployment variants -

-
-

## How to deploy eUPF with free5gc core (docker-compose) @@ -79,17 +62,6 @@ So you can clone free5gc docker-compose and test free5gc upf, then add edgecom o -## Option NAT at the node - -If you need NAT (Network Address Translation, or Masqerading) at your node to access Internet, the easiest way is to use standart daemonset [IP Masquerade Agent](https://kubernetes.io/docs/tasks/administer-cluster/ip-masq-agent/): -```powershell -sudo kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/ip-masq-agent/master/ip-masq-agent.yaml -``` - > The below entries show the default set of rules that are applied by the ip-masq-agent: - ` iptables -t nat -L IP-MASQ-AGENT` - ---- - ## Test scenarios ## case 0 From f7bd9054f40cd996151825a7ae76f49c970c6905 Mon Sep 17 00:00:00 2001 From: Maxim Baranov Date: Thu, 14 Sep 2023 19:47:55 +0400 Subject: [PATCH 03/10] f --- docs/deployments/free5gc-with-bgp/README.md | 16 +++++------ .../open5gs-with-bgp-and-slices/README.md | 28 +++++++++---------- docs/deployments/open5gs-with-bgp/README.md | 18 ++++++------ 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/docs/deployments/free5gc-with-bgp/README.md b/docs/deployments/free5gc-with-bgp/README.md index d56afe08..4c7097ce 100644 --- a/docs/deployments/free5gc-with-bgp/README.md +++ b/docs/deployments/free5gc-with-bgp/README.md @@ -33,11 +33,11 @@ helm repo update ## Deployment steps -* install free5gc +1. install free5gc `make free5gc` -* create subscriber in free5gc via WebUI +2. create subscriber in free5gc via WebUI redirect port from webui pod to localhost @@ -49,30 +49,30 @@ helm repo update close port forward with `Ctrl + C` -* configure calico BGP settings +3. configure calico BGP settings `make calico` -* install eupf +4. install eupf `make upf` -* install UERANSim +5. install UERANSim `make ue1` ## Check steps -* exec shell in UE pod +1. exec shell in UE pod `kubectl -n free5gc exec -ti deployment/ueransim-ue -- /bin/bash` -* run ICMP test +2. run ICMP test `ping -I uesimtun0 1.1.1.1` ## Undeploy steps -* undeploy all +1. undeploy all `make clean` diff --git a/docs/deployments/open5gs-with-bgp-and-slices/README.md b/docs/deployments/open5gs-with-bgp-and-slices/README.md index 083c0f03..83858a00 100644 --- a/docs/deployments/open5gs-with-bgp-and-slices/README.md +++ b/docs/deployments/open5gs-with-bgp-and-slices/README.md @@ -19,62 +19,62 @@ helm repo update ## Deployment steps -* install eupf for slice 1 +1. install eupf for slice 1 `make upf` -* install eupf for slice 2 +2. install eupf for slice 2 `make upf2` -* configure calico BGP settings +3. configure calico BGP settings `make calico` -* install open5gs +4. install open5gs `make open5gs` -* configure SMF for slice 1 +5. configure SMF for slice 1 `make smf` -* configure SMF for slice 2 +6. configure SMF for slice 2 `make smf2` -* install gNB +7. install gNB `make gnb` -* install UERANSim for slice 1 +8. install UERANSim for slice 1 `make ue1` -* install UERANSim for slice 2 +9. install UERANSim for slice 2 `make ue2` ## Check steps -* exec shell in UE1 pod +1. exec shell in UE1 pod `kubectl -n open5gs exec -ti deployment/ueransim1-ueransim-ues-ues -- /bin/bash` -* run ICMP test +2. run ICMP test `ping -I uesimtun0 1.1.1.1` -* exec shell in UE2 pod +3. exec shell in UE2 pod `kubectl -n open5gs exec -ti deployment/ueransim2-ueransim-ues-ues -- /bin/bash` -* run ICMP test +4. run ICMP test `ping -I uesimtun0 1.1.1.1` ## Undeploy steps -* undeploy all +1. undeploy all `make clean` diff --git a/docs/deployments/open5gs-with-bgp/README.md b/docs/deployments/open5gs-with-bgp/README.md index d0386799..20beaefc 100644 --- a/docs/deployments/open5gs-with-bgp/README.md +++ b/docs/deployments/open5gs-with-bgp/README.md @@ -19,42 +19,42 @@ helm repo update ## Deployment steps -* install eupf +1. install eupf `make upf` -* configure calico BGP settings +2. configure calico BGP settings `make calico` -* install open5gs +3. install open5gs `make open5gs` -* configure SMF +4. configure SMF `make smf` -* install gNB +5. install gNB `make gnb` -* install UERANSim +6. install UERANSim `make ue1` ## Check steps -* exec shell in UE pod +1. exec shell in UE pod `kubectl -n open5gs exec -ti deployment/ueransim1-ueransim-ues-ues -- /bin/bash` -* run ICMP test +2. run ICMP test `ping -I uesimtun0 1.1.1.1` ## Undeploy steps -* undeploy all +1. undeploy all `make clean` From 0b78f62456cc8e7e051f94682a8d72cbf94f9ad6 Mon Sep 17 00:00:00 2001 From: PapaySail <125686203+PapaySail@users.noreply.github.com> Date: Thu, 14 Sep 2023 23:59:39 +0600 Subject: [PATCH 04/10] restore lost text. Stylish fixes. --- docs/deployments/README.md | 24 +++++--- docs/deployments/free5gc-with-bgp/README.md | 59 ++++++++----------- .../open5gs-with-bgp-and-slices/README.md | 38 ++++++------ docs/deployments/open5gs-with-bgp/README.md | 28 ++++----- docs/install.md | 5 +- 5 files changed, 74 insertions(+), 80 deletions(-) diff --git a/docs/deployments/README.md b/docs/deployments/README.md index 98c89963..c964e644 100644 --- a/docs/deployments/README.md +++ b/docs/deployments/README.md @@ -1,17 +1,25 @@ # Deployment examples +The eUPF can be integrated with different 5G Core implementations in different scenarios. -## Open5GS + Calico BGP +eUPF pod outbound connection is pure routed at the node. There is no address translation inside pod, so we avoid such lack of throughtput. -[see doc](./open5gs-with-bgp/README.md) +>If you need Network Address Translation (NAT) function for subscriber's egress traffic, see the chapter [about NAT](#option-nat-at-the-node) below. -## Open5GS + Calico BGP + Slices +BGP is used to announce the subscriber subnet to the route table of a node. -[see doc](./open5gs-with-bgp-and-slices/README.md) +## [Open5GS + Calico BGP](./open5gs-with-bgp/README.md) -## Free5GC + Calico BGP +## [Open5GS + Calico BGP with Slices](./open5gs-with-bgp-and-slices/README.md) -[see doc](./free5gc-with-bgp/README.md) +## [Free5GC + Calico BGP](./free5gc-with-bgp/README.md) -## Free5GC + ULCL +## [Free5GC UpLink CLassifier (ULCL) architecture](./free5gc-ulcl/README.md) -[see doc](./free5gc-ulcl/README.md) +## Option NAT at the node + +If you need NAT (Network Address Translation, or Masqerading) at your node to access Internet, the easiest way is to use standart daemonset [IP Masquerade Agent](https://kubernetes.io/docs/tasks/administer-cluster/ip-masq-agent/): +```powershell +sudo kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/ip-masq-agent/master/ip-masq-agent.yaml +``` + > The below entries show the default set of rules that are applied by the ip-masq-agent: + ` iptables -t nat -L IP-MASQ-AGENT` diff --git a/docs/deployments/free5gc-with-bgp/README.md b/docs/deployments/free5gc-with-bgp/README.md index 4c7097ce..78dbba62 100644 --- a/docs/deployments/free5gc-with-bgp/README.md +++ b/docs/deployments/free5gc-with-bgp/README.md @@ -8,71 +8,58 @@ - [helm](https://helm.sh/docs/intro/install/) installed - calico backend configured as BIRD -change `calico_backend` parameter to `bird` in configmap with name `calico-config` and then restart all pods with name `calico-node-*` + change `calico_backend` parameter to `bird` in configmap with name `calico-config` and then restart all pods with name `calico-node-*` -- compile and install gtp5g kernel module on every worker node: - -``` -apt-get update; apt-get install git build-essential -y; \ -cd /tmp; \ -git clone --depth 1 --branch v0.7.3 https://github.com/free5gc/gtp5g.git; \ -cd gtp5g/; \ -make && make install -``` - -check that the module is loaded: - -`lsmod | grep ^gtp5g` - configure helm repos -``` -helm repo add towards5gs https://raw.githubusercontent.com/Orange-OpenSource/towards5gs-helm/main/repo/ -helm repo update -``` + ``` + helm repo add towards5gs https://raw.githubusercontent.com/Orange-OpenSource/towards5gs-helm/main/repo/ + helm repo update + ``` ## Deployment steps 1. install free5gc -`make free5gc` + `make free5gc` -2. create subscriber in free5gc via WebUI +1. create subscriber in free5gc via WebUI - redirect port from webui pod to localhost + redirect port from webui pod to localhost - ```powershell - kubectl port-forward service/webui-service 5000:5000 -n free5gc - ``` + ```powershell + kubectl port-forward service/webui-service 5000:5000 -n free5gc + ``` - open http://127.0.0.1:5000 in your browser (for auth use user "admin" with password "free5gc"), go to menu "subscribers", click "new subscriber", leave all values as is, press "submit" + open http://127.0.0.1:5000 in your browser (for auth use user "admin" with password "free5gc"), go to menu "subscribers", click "new subscriber", leave all values as is, press "submit" - close port forward with `Ctrl + C` + close port forward with `Ctrl + C` -3. configure calico BGP settings +1. configure calico BGP settings -`make calico` + `make calico` -4. install eupf +1. install eupf -`make upf` + `make upf` -5. install UERANSim +1. install UERANSim -`make ue1` + `make ue1` ## Check steps 1. exec shell in UE pod -`kubectl -n free5gc exec -ti deployment/ueransim-ue -- /bin/bash` + `kubectl -n free5gc exec -ti deployment/ueransim-ue -- /bin/bash` -2. run ICMP test +1. run ICMP test -`ping -I uesimtun0 1.1.1.1` + `ping -I uesimtun0 1.1.1.1` ## Undeploy steps 1. undeploy all -`make clean` + `make clean` diff --git a/docs/deployments/open5gs-with-bgp-and-slices/README.md b/docs/deployments/open5gs-with-bgp-and-slices/README.md index 83858a00..dd9bd301 100644 --- a/docs/deployments/open5gs-with-bgp-and-slices/README.md +++ b/docs/deployments/open5gs-with-bgp-and-slices/README.md @@ -8,73 +8,73 @@ - [helm](https://helm.sh/docs/intro/install/) installed - calico backend configured as BIRD -change `calico_backend` parameter to `bird` in configmap with name `calico-config` and then restart all pods with name `calico-node-*` + change `calico_backend` parameter to `bird` in configmap with name `calico-config` and then restart all pods with name `calico-node-*` - configure helm repos -``` -helm repo add openverso https://gradiant.github.io/openverso-charts/ -helm repo update -``` + ``` + helm repo add openverso https://gradiant.github.io/openverso-charts/ + helm repo update + ``` ## Deployment steps 1. install eupf for slice 1 -`make upf` + `make upf` 2. install eupf for slice 2 -`make upf2` + `make upf2` 3. configure calico BGP settings -`make calico` + `make calico` 4. install open5gs -`make open5gs` + `make open5gs` 5. configure SMF for slice 1 -`make smf` + `make smf` 6. configure SMF for slice 2 -`make smf2` + `make smf2` 7. install gNB -`make gnb` + `make gnb` 8. install UERANSim for slice 1 -`make ue1` + `make ue1` 9. install UERANSim for slice 2 -`make ue2` + `make ue2` ## Check steps 1. exec shell in UE1 pod -`kubectl -n open5gs exec -ti deployment/ueransim1-ueransim-ues-ues -- /bin/bash` + `kubectl -n open5gs exec -ti deployment/ueransim1-ueransim-ues-ues -- /bin/bash` 2. run ICMP test -`ping -I uesimtun0 1.1.1.1` + `ping -I uesimtun0 1.1.1.1` 3. exec shell in UE2 pod -`kubectl -n open5gs exec -ti deployment/ueransim2-ueransim-ues-ues -- /bin/bash` + `kubectl -n open5gs exec -ti deployment/ueransim2-ueransim-ues-ues -- /bin/bash` 4. run ICMP test -`ping -I uesimtun0 1.1.1.1` + `ping -I uesimtun0 1.1.1.1` ## Undeploy steps 1. undeploy all -`make clean` + `make clean` diff --git a/docs/deployments/open5gs-with-bgp/README.md b/docs/deployments/open5gs-with-bgp/README.md index 20beaefc..0f791b25 100644 --- a/docs/deployments/open5gs-with-bgp/README.md +++ b/docs/deployments/open5gs-with-bgp/README.md @@ -8,53 +8,53 @@ - [helm](https://helm.sh/docs/intro/install/) installed - calico backend configured as BIRD -change `calico_backend` parameter to `bird` in configmap with name `calico-config` and then restart all pods with name `calico-node-*` + change `calico_backend` parameter to `bird` in configmap with name `calico-config` and then restart all pods with name `calico-node-*` - configure helm repos -``` -helm repo add openverso https://gradiant.github.io/openverso-charts/ -helm repo update -``` + ``` + helm repo add openverso https://gradiant.github.io/openverso-charts/ + helm repo update + ``` ## Deployment steps 1. install eupf -`make upf` + `make upf` 2. configure calico BGP settings -`make calico` + `make calico` 3. install open5gs -`make open5gs` + `make open5gs` 4. configure SMF -`make smf` + `make smf` 5. install gNB -`make gnb` + `make gnb` 6. install UERANSim -`make ue1` + `make ue1` ## Check steps 1. exec shell in UE pod -`kubectl -n open5gs exec -ti deployment/ueransim1-ueransim-ues-ues -- /bin/bash` + `kubectl -n open5gs exec -ti deployment/ueransim1-ueransim-ues-ues -- /bin/bash` 2. run ICMP test -`ping -I uesimtun0 1.1.1.1` + `ping -I uesimtun0 1.1.1.1` ## Undeploy steps 1. undeploy all -`make clean` + `make clean` diff --git a/docs/install.md b/docs/install.md index b95c6c0a..35868c88 100644 --- a/docs/install.md +++ b/docs/install.md @@ -23,10 +23,9 @@ We have prepared templates to deploy with two opensource environments: **open5gs ## Deployment variants -[Here](./deployments/README.md) you can read more information abount deployment variants +[Here](./deployments/README.md) you can read more information about deployment variants in Kubernetes. - -## How to deploy eUPF with free5gc core (docker-compose) +Or deploy eUPF with free5gc core as docker-compose:
Instruction to deploy as docker-compose

From d2a91b7f6ea161dfbb178afa718206d3743dfb83 Mon Sep 17 00:00:00 2001 From: PapaySail <125686203+PapaySail@users.noreply.github.com> Date: Fri, 15 Sep 2023 13:22:41 +0600 Subject: [PATCH 05/10] Kubenetes environment: enabling-unsafe-sysctls --- docs/install.md | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/docs/install.md b/docs/install.md index 35868c88..7c544196 100644 --- a/docs/install.md +++ b/docs/install.md @@ -9,21 +9,36 @@ Alternatively, eUPF could be deployed in docker-compose (only with free5gc confi ## Kubenetes environment - Kubernetes cluster with Calico and Multus CNI + - with [Enabled Unsafe Sysctls](https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/#enabling-unsafe-sysctls) net.ipv4.ip_forward: + + `kubelet --allowed-unsafe-sysctls 'net.ipv4.ip_forward,net.ipv6.conf.all.forwarding'` - [helm](https://helm.sh/docs/intro/install/) installed - [kube-prometheus-stack](https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack) installed, or
create CustomResource ServiceMonitor as a minimum:
```kubectl apply -f https://github.com/prometheus-community/helm-charts/raw/main/charts/kube-prometheus-stack/crds/crd-servicemonitors.yaml``` -In our environments, we use one node K8s cluster deployed by means of [kubespray](https://github.com/kubernetes-sigs/kubespray). You can see configuration examples in this [repo](https://github.com/edgecomllc/ansible) +In our environments, we use one node K8s cluster deployed by means of [kubespray](https://github.com/kubernetes-sigs/kubespray). +

With additional file inventory/mycluster/group_vars/kube_node.yaml +

+ +```yaml +--- + +kubelet_node_config_extra_args: + allowedUnsafeSysctls: + - "net.ipv4.ip_forward" +``` +

+
+## Possible use cases We have prepared templates to deploy with two opensource environments: **open5gs** and **free5gc**, for you to choose. [UERANSIM](https://github.com/aligungr/UERANSIM) project is used for emulating radio endpoint, so you'll be able to check end-to-end connectivity. -## Deployment variants -[Here](./deployments/README.md) you can read more information about deployment variants in Kubernetes. +### Go [Here](./deployments/README.md) for more information about deployment options in Kubernetes for eUPF with **open5gs** and **free5gc**. Or deploy eUPF with free5gc core as docker-compose: From 317a63665776edacb2a79ab3651ec809c2140a3b Mon Sep 17 00:00:00 2001 From: PapaySail <125686203+PapaySail@users.noreply.github.com> Date: Mon, 18 Sep 2023 15:16:17 +0600 Subject: [PATCH 06/10] add script to set physical network interface name as a MACVLAN master interface. see issue #411 --- docs/deployments/free5gc-ulcl/Makefile | 4 ++++ docs/deployments/free5gc-with-bgp/Makefile | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/docs/deployments/free5gc-ulcl/Makefile b/docs/deployments/free5gc-ulcl/Makefile index 2d7a82ee..1184a347 100644 --- a/docs/deployments/free5gc-ulcl/Makefile +++ b/docs/deployments/free5gc-ulcl/Makefile @@ -3,6 +3,8 @@ HELM_ARGS?=--wait --timeout 100s --create-namespace HELM_ACTION?=install free5gc: + phy_if=$(lshw -C network |grep -Fm 1 'logical name:' |awk -- '{print $NF}') + sed -i "s/masterIf:.*/masterIf: $phy_if/" global.yaml helm $(HELM_ACTION) \ free5gc towards5gs/free5gc \ --values global.yaml \ @@ -13,6 +15,8 @@ free5gc: $(HELM_ARGS) upf: + phy_if=$(lshw -C network |grep -Fm 1 'logical name:' |awk -- '{print $NF}') + sed -i "s/masterIf:.*/masterIf: $phy_if/" global.yaml helm $(HELM_ACTION) \ free5gc-upf towards5gs/free5gc-upf \ --values global.yaml \ diff --git a/docs/deployments/free5gc-with-bgp/Makefile b/docs/deployments/free5gc-with-bgp/Makefile index 87a60a7a..f79010ab 100644 --- a/docs/deployments/free5gc-with-bgp/Makefile +++ b/docs/deployments/free5gc-with-bgp/Makefile @@ -5,6 +5,8 @@ HELM_ARGS?=--timeout 30s --create-namespace HELM_ACTION?=upgrade --install free5gc: + phy_if=$(lshw -C network |grep -Fm 1 'logical name:' |awk -- '{print $NF}') + sed -i "s/masterIf:.*/masterIf: $phy_if/" $(HELM_VALUES_DIR)/global.yaml helm $(HELM_ACTION) \ free5gc towards5gs/free5gc \ --version 1.1.7 \ @@ -18,6 +20,8 @@ calico: kubectl apply -f $(HELM_VALUES_DIR)/../manifests/calico-bgp.yaml upf: + phy_if=$(lshw -C network |grep -Fm 1 'logical name:' |awk -- '{print $NF}') + sed -i "s/\"master\":.*/\"master\": \"$phy_if\",/" $(HELM_VALUES_DIR)/eupf.yaml helm $(HELM_ACTION) \ eupf oci://registry-1.docker.io/edgecom/eupf \ --version 0.4.0 \ From de58a334c34e3c7d342a8e4c04cd6f57aba49af7 Mon Sep 17 00:00:00 2001 From: PapaySail <125686203+PapaySail@users.noreply.github.com> Date: Mon, 18 Sep 2023 21:50:32 +0600 Subject: [PATCH 07/10] remove deprecated text about IP Masquerade Agent. --- docs/deployments/README.md | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/docs/deployments/README.md b/docs/deployments/README.md index c964e644..8d27881e 100644 --- a/docs/deployments/README.md +++ b/docs/deployments/README.md @@ -3,9 +3,7 @@ The eUPF can be integrated with different 5G Core implementations in different s eUPF pod outbound connection is pure routed at the node. There is no address translation inside pod, so we avoid such lack of throughtput. ->If you need Network Address Translation (NAT) function for subscriber's egress traffic, see the chapter [about NAT](#option-nat-at-the-node) below. - -BGP is used to announce the subscriber subnet to the route table of a node. +BGP is used to announce the subscriber's subnet to the route table of Kubernetes cluster. ## [Open5GS + Calico BGP](./open5gs-with-bgp/README.md) @@ -14,12 +12,3 @@ BGP is used to announce the subscriber subnet to the route table of a node. ## [Free5GC + Calico BGP](./free5gc-with-bgp/README.md) ## [Free5GC UpLink CLassifier (ULCL) architecture](./free5gc-ulcl/README.md) - -## Option NAT at the node - -If you need NAT (Network Address Translation, or Masqerading) at your node to access Internet, the easiest way is to use standart daemonset [IP Masquerade Agent](https://kubernetes.io/docs/tasks/administer-cluster/ip-masq-agent/): -```powershell -sudo kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/ip-masq-agent/master/ip-masq-agent.yaml -``` - > The below entries show the default set of rules that are applied by the ip-masq-agent: - ` iptables -t nat -L IP-MASQ-AGENT` From 07d64ffa180b24cdf20fa68aeebf09dd8998373f Mon Sep 17 00:00:00 2001 From: Maxim Baranov Date: Tue, 19 Sep 2023 23:47:30 +0400 Subject: [PATCH 08/10] f --- docs/deployments/free5gc-with-bgp/Makefile | 4 ---- docs/deployments/free5gc-with-bgp/README.md | 4 +++- docs/deployments/free5gc-with-bgp/values/eupf.yaml | 6 +++--- docs/deployments/free5gc-with-bgp/values/global.yaml | 10 +++++----- 4 files changed, 11 insertions(+), 13 deletions(-) diff --git a/docs/deployments/free5gc-with-bgp/Makefile b/docs/deployments/free5gc-with-bgp/Makefile index f79010ab..87a60a7a 100644 --- a/docs/deployments/free5gc-with-bgp/Makefile +++ b/docs/deployments/free5gc-with-bgp/Makefile @@ -5,8 +5,6 @@ HELM_ARGS?=--timeout 30s --create-namespace HELM_ACTION?=upgrade --install free5gc: - phy_if=$(lshw -C network |grep -Fm 1 'logical name:' |awk -- '{print $NF}') - sed -i "s/masterIf:.*/masterIf: $phy_if/" $(HELM_VALUES_DIR)/global.yaml helm $(HELM_ACTION) \ free5gc towards5gs/free5gc \ --version 1.1.7 \ @@ -20,8 +18,6 @@ calico: kubectl apply -f $(HELM_VALUES_DIR)/../manifests/calico-bgp.yaml upf: - phy_if=$(lshw -C network |grep -Fm 1 'logical name:' |awk -- '{print $NF}') - sed -i "s/\"master\":.*/\"master\": \"$phy_if\",/" $(HELM_VALUES_DIR)/eupf.yaml helm $(HELM_ACTION) \ eupf oci://registry-1.docker.io/edgecom/eupf \ --version 0.4.0 \ diff --git a/docs/deployments/free5gc-with-bgp/README.md b/docs/deployments/free5gc-with-bgp/README.md index 78dbba62..336fc875 100644 --- a/docs/deployments/free5gc-with-bgp/README.md +++ b/docs/deployments/free5gc-with-bgp/README.md @@ -1,5 +1,7 @@ # Free5GC + eUPF with Calico BGP +Be careful, this document work in progress + ![](./schema.png) ## Requirements @@ -36,7 +38,7 @@ close port forward with `Ctrl + C` -1. configure calico BGP settings +1. configure calico BGP settings. Here, we configure Calico BGP peer and create Calico IP Pool (for NAT) `make calico` diff --git a/docs/deployments/free5gc-with-bgp/values/eupf.yaml b/docs/deployments/free5gc-with-bgp/values/eupf.yaml index 5db85013..9238661c 100644 --- a/docs/deployments/free5gc-with-bgp/values/eupf.yaml +++ b/docs/deployments/free5gc-with-bgp/values/eupf.yaml @@ -53,9 +53,9 @@ bird: BIRD_LOCAL_PREFIX: 10.11.0.0/16 metrics: - enabled: true + enabled: false serviceMonitor: - enabled: true + enabled: false additionalLabels: release: kube-prometheus-stack endpoints: @@ -141,7 +141,7 @@ extraDeploy: { "type": "ipvlan", "capabilities": { "ips": true }, - "master": "ens3", + "master": "eth0", "mode": "l2", "ipam": { "type": "static" diff --git a/docs/deployments/free5gc-with-bgp/values/global.yaml b/docs/deployments/free5gc-with-bgp/values/global.yaml index c90edbe1..9964bb78 100644 --- a/docs/deployments/free5gc-with-bgp/values/global.yaml +++ b/docs/deployments/free5gc-with-bgp/values/global.yaml @@ -14,35 +14,35 @@ global: ipAddress: 10.100.50.244 n2network: name: n2network - masterIf: ens3 + masterIf: eth0 subnetIP: 10.100.50.248 cidr: 29 gatewayIP: 10.100.50.254 excludeIP: 10.100.50.254 n3network: name: n3network - masterIf: ens3 + masterIf: eth0 subnetIP: 10.100.50.232 cidr: 29 gatewayIP: 10.100.50.238 excludeIP: 10.100.50.238 n4network: name: n4network - masterIf: ens3 + masterIf: eth0 subnetIP: 10.100.50.240 cidr: 29 gatewayIP: 10.100.50.246 excludeIP: 10.100.50.246 n6network: name: n6network - masterIf: ens3 + masterIf: eth0 subnetIP: 10.100.100.0 cidr: 24 gatewayIP: 10.100.100.1 excludeIP: 10.100.100.254 n9network: name: n9network - masterIf: ens3 + masterIf: eth0 subnetIP: 10.100.50.224 cidr: 29 gatewayIP: 10.100.50.230 From cb171aca00c05a579d6144a28ca88f3504f88813 Mon Sep 17 00:00:00 2001 From: Maxim Baranov Date: Tue, 19 Sep 2023 23:49:13 +0400 Subject: [PATCH 09/10] f --- docs/deployments/free5gc-with-bgp/README.md | 2 ++ docs/deployments/open5gs-with-bgp/README.md | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/deployments/free5gc-with-bgp/README.md b/docs/deployments/free5gc-with-bgp/README.md index 336fc875..9f26ec03 100644 --- a/docs/deployments/free5gc-with-bgp/README.md +++ b/docs/deployments/free5gc-with-bgp/README.md @@ -20,6 +20,8 @@ Be careful, this document work in progress helm repo update ``` +- update values files, you should set name of network interface in file `global.yaml` (parameter masterIf) + ## Deployment steps 1. install free5gc diff --git a/docs/deployments/open5gs-with-bgp/README.md b/docs/deployments/open5gs-with-bgp/README.md index 0f791b25..4a8af1c1 100644 --- a/docs/deployments/open5gs-with-bgp/README.md +++ b/docs/deployments/open5gs-with-bgp/README.md @@ -23,7 +23,7 @@ `make upf` -2. configure calico BGP settings +2. configure calico BGP settings. Here, we configure Calico BGP peer and create Calico IP Pool (for NAT) `make calico` From 39e603f733dbb6bc48706be47164116b7047965e Mon Sep 17 00:00:00 2001 From: Maxim Baranov Date: Wed, 20 Sep 2023 16:40:42 +0400 Subject: [PATCH 10/10] f --- docs/deployments/open5gs-with-bgp-and-slices/README.md | 2 +- docs/deployments/open5gs-with-bgp/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/deployments/open5gs-with-bgp-and-slices/README.md b/docs/deployments/open5gs-with-bgp-and-slices/README.md index dd9bd301..5feaf37a 100644 --- a/docs/deployments/open5gs-with-bgp-and-slices/README.md +++ b/docs/deployments/open5gs-with-bgp-and-slices/README.md @@ -4,7 +4,7 @@ ## Requirements -- Kubernetes cluster with Calico and Multus CNI +- Kubernetes cluster with Calico - [helm](https://helm.sh/docs/intro/install/) installed - calico backend configured as BIRD diff --git a/docs/deployments/open5gs-with-bgp/README.md b/docs/deployments/open5gs-with-bgp/README.md index 4a8af1c1..9cf36b75 100644 --- a/docs/deployments/open5gs-with-bgp/README.md +++ b/docs/deployments/open5gs-with-bgp/README.md @@ -4,7 +4,7 @@ ## Requirements -- Kubernetes cluster with Calico and Multus CNI +- Kubernetes cluster with Calico - [helm](https://helm.sh/docs/intro/install/) installed - calico backend configured as BIRD