From 2a9743e89ffbcbee20f45b9b6187d6cd36c26f0f Mon Sep 17 00:00:00 2001 From: PProfizi <100710998+PProfizi@users.noreply.github.com> Date: Thu, 30 Oct 2025 07:51:04 +0000 Subject: [PATCH] update generated code --- doc/source/_static/dpf_operators.html | 16 ++++++++-------- .../math/accumulate_level_over_label_fc.py | 6 +++--- .../math/accumulate_min_over_label_fc.py | 6 +++--- .../math/accumulate_over_label_fc.py | 6 +++--- .../operators/math/average_over_label_fc.py | 6 +++--- src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll | Bin 12977664 -> 12977664 bytes src/ansys/dpf/gatebin/DPFClientAPI.dll | Bin 872448 -> 872448 bytes 7 files changed, 20 insertions(+), 20 deletions(-) diff --git a/doc/source/_static/dpf_operators.html b/doc/source/_static/dpf_operators.html index 05bb6f293fd..acdd495d1e1 100644 --- a/doc/source/_static/dpf_operators.html +++ b/doc/source/_static/dpf_operators.html @@ -5348,8 +5348,8 @@

Configurating operators

Outputs

Configurations

Scripting

Changelog

math: sqrt (field)

Description

Computes element-wise sqrt(field1).

Version 0.0.0

Inputs

field or fields container with only one field is expected

Outputs

Configurations

Scripting

Changelog

math: accumulate min over label

Description

Compute the component-wise sum over all the fields that have the same ID as the label set as input in the fields container and take its opposite. This computation can be incremental. If the input fields container is connected and the operator is run multiple times, the output field will be on all the connected inputs.

-
Version 0.0.0

Inputs

Label of the fields container where it should operate.

-

Outputs

Configurations

Scripting

Changelog

result: y plus (y+)

Description

Read Y Plus (y+) by calling the readers defined by the datasources.

+
Version 0.0.1

Inputs

Label of the fields container where it should operate. If not defined and the input Fields Container has only one Label, the operation will be done over all the fields.

+

Outputs

Configurations

Scripting

Changelog

result: y plus (y+)

Description

Read Y Plus (y+) by calling the readers defined by the datasources.

Version 0.0.0

Supported file types

Inputs

time/freq values (use doubles or field), time/freq set ids (use ints or scoping) or time/freq step ids (use scoping with TimeFreq_steps location) required in output. To specify time/freq values at specific load steps, put a Field (and not a list) in input with a scoping located on "TimeFreq_steps". Linear time freq intrapolation is performed if the values are not in the result files and the data at the max time or freq is taken when time/freqs are higher than available time/freqs in result files. To get all data for all time/freq sets, connect an int with value -1.

nodes or elements scoping required in output. The output fields will be scoped on these node or element IDs. To figure out the ordering of the fields data, look at their scoping IDs as they might not be ordered as the input scoping was. The scoping's location indicates whether nodes or elements are asked for. Using scopings container allows you to split the result fields container into domains

result file container allowed to be kept open to cache data

@@ -9509,8 +9509,8 @@

Configurating operators

if 0 cyclic symmetry is ignored, if 1 cyclic sector is read, if 2 cyclic expansion is done, if 3 cyclic expansion is done and stages are merged (default is 1)

elemental nodal beam results are read if this pin is set to true (default is false)

Outputs

Configurations

Scripting

Changelog

math: accumulate over label

Description

Compute the component-wise sum over all the fields that have the same ID as the label set as input in the fields container. This computation can be incremental. If the input fields container is connected and the operator is run multiple times, the output field will be on all the connected inputs.

-
Version 0.0.0

Inputs

Label of the fields container where it should operate.

-

Outputs

Configurations

Scripting

Changelog

utility: merge scopings containers

Description

Assembles a set of scopings containers into a unique one.

+
Version 0.0.1

Inputs

Label of the fields container where it should operate. If not defined and the input Fields Container has only one Label, the operation will be done over all the fields.

+

Outputs

Configurations

Scripting

Changelog

utility: merge scopings containers

Description

Assembles a set of scopings containers into a unique one.

Version 0.0.0

Inputs

A vector of scopings containers to merge or scopings containers from pin 0 to ...

Outputs

Configurations

Scripting

Changelog

result: thermal strain XY

Description

Read/compute element nodal component thermal strains XY shear component (01 component) by calling the readers defined by the datasources. Regarding the requested location and the input mesh scoping, the result location can be Nodal/ElementalNodal/Elemental.

Version 0.0.0

Supported file types

Inputs

time/freq values (use doubles or field), time/freq set ids (use ints or scoping) or time/freq step ids (use scoping with TimeFreq_steps location) required in output. To specify time/freq values at specific load steps, put a Field (and not a list) in input with a scoping located on "TimeFreq_steps". Linear time freq intrapolation is performed if the values are not in the result files and the data at the max time or freq is taken when time/freqs are higher than available time/freqs in result files. To get all data for all time/freq sets, connect an int with value -1.

@@ -14339,10 +14339,10 @@

Configurating operators

Version 0.0.0

Inputs

use_absolute_value

field or fields container with only one field is expected

Outputs

Configurations

Scripting

Changelog

math: average over label

Description

Compute the component-wise average over all the fields that have the same ID as the label set as input in the fields container. This computation can be incremental. If the input fields container is connected and the operator is run multiple times, the output field will be on all the connected inputs.

-
Version 0.0.0

Inputs

Label of the fields container where it should operate.

-

Outputs

Configurations

Scripting

Changelog

math: accumulate level over label

Description

Compute the component-wise sum over all the fields that have the same ID as the label set as input in the fields container and apply 10.0xlog10(data/10xx-12) on the result. This computation can be incremental. If the input fields container is connected and the operator is run multiple times, the output field will be on all the connected inputs.

-
Version 0.0.0

Inputs

Label of the fields container where it should operate.

-

Outputs

Configurations

Scripting

Changelog

utility: make for each range

Description

Generate a range that can be consumed by the for_each operator

+
Version 0.0.1

Inputs

Label of the fields container where it should operate. If not defined and the input Fields Container has only one Label, the operation will be done over all the fields.

+

Outputs

Configurations

Scripting

Changelog

math: accumulate level over label

Description

Compute the component-wise sum over all the fields that have the same ID as the label set as input in the fields container and apply 10.0xlog10(data/10xx-12) on the result. This computation can be incremental. If the input fields container is connected and the operator is run multiple times, the output field will be on all the connected inputs.

+
Version 0.0.1

Inputs

Label of the fields container where it should operate. If not defined and the input Fields Container has only one Label, the operation will be done over all the fields.

+

Outputs

Configurations

Scripting

Changelog

utility: make for each range

Description

Generate a range that can be consumed by the for_each operator

Version 0.0.0

Inputs

if true, already iterable values connected in pin 3 like vectors, Scoping, TimefreqSupport, Containers and DataSources are split to iterate on it (default is true)

Iterable object, generated by make_for_each_range oeprator, that can be combined with the one currently generated.

Operator that must be reconnected with the range values.

diff --git a/src/ansys/dpf/core/operators/math/accumulate_level_over_label_fc.py b/src/ansys/dpf/core/operators/math/accumulate_level_over_label_fc.py index 9aa0a6c2477..7013943f343 100644 --- a/src/ansys/dpf/core/operators/math/accumulate_level_over_label_fc.py +++ b/src/ansys/dpf/core/operators/math/accumulate_level_over_label_fc.py @@ -28,7 +28,7 @@ class accumulate_level_over_label_fc(Operator): ---------- fields_container: FieldsContainer label: str, optional - Label of the fields container where it should operate. + Label of the fields container where it should operate. If not defined and the input Fields Container has only one Label, the operation will be done over all the fields. Returns ------- @@ -90,7 +90,7 @@ def _spec() -> Specification: name="label", type_names=["string"], optional=True, - document=r"""Label of the fields container where it should operate.""", + document=r"""Label of the fields container where it should operate. If not defined and the input Fields Container has only one Label, the operation will be done over all the fields.""", ), }, map_output_pin_spec={ @@ -198,7 +198,7 @@ def fields_container(self) -> Input: def label(self) -> Input: r"""Allows to connect label input to the operator. - Label of the fields container where it should operate. + Label of the fields container where it should operate. If not defined and the input Fields Container has only one Label, the operation will be done over all the fields. Returns ------- diff --git a/src/ansys/dpf/core/operators/math/accumulate_min_over_label_fc.py b/src/ansys/dpf/core/operators/math/accumulate_min_over_label_fc.py index ebf37f5c548..ae6fbb38771 100644 --- a/src/ansys/dpf/core/operators/math/accumulate_min_over_label_fc.py +++ b/src/ansys/dpf/core/operators/math/accumulate_min_over_label_fc.py @@ -27,7 +27,7 @@ class accumulate_min_over_label_fc(Operator): ---------- fields_container: FieldsContainer label: str, optional - Label of the fields container where it should operate. + Label of the fields container where it should operate. If not defined and the input Fields Container has only one Label, the operation will be done over all the fields. Returns ------- @@ -88,7 +88,7 @@ def _spec() -> Specification: name="label", type_names=["string"], optional=True, - document=r"""Label of the fields container where it should operate.""", + document=r"""Label of the fields container where it should operate. If not defined and the input Fields Container has only one Label, the operation will be done over all the fields.""", ), }, map_output_pin_spec={ @@ -196,7 +196,7 @@ def fields_container(self) -> Input: def label(self) -> Input: r"""Allows to connect label input to the operator. - Label of the fields container where it should operate. + Label of the fields container where it should operate. If not defined and the input Fields Container has only one Label, the operation will be done over all the fields. Returns ------- diff --git a/src/ansys/dpf/core/operators/math/accumulate_over_label_fc.py b/src/ansys/dpf/core/operators/math/accumulate_over_label_fc.py index ddbe5c272aa..44644d5e2b8 100644 --- a/src/ansys/dpf/core/operators/math/accumulate_over_label_fc.py +++ b/src/ansys/dpf/core/operators/math/accumulate_over_label_fc.py @@ -27,7 +27,7 @@ class accumulate_over_label_fc(Operator): ---------- fields_container: FieldsContainer label: str, optional - Label of the fields container where it should operate. + Label of the fields container where it should operate. If not defined and the input Fields Container has only one Label, the operation will be done over all the fields. Returns ------- @@ -86,7 +86,7 @@ def _spec() -> Specification: name="label", type_names=["string"], optional=True, - document=r"""Label of the fields container where it should operate.""", + document=r"""Label of the fields container where it should operate. If not defined and the input Fields Container has only one Label, the operation will be done over all the fields.""", ), }, map_output_pin_spec={ @@ -190,7 +190,7 @@ def fields_container(self) -> Input: def label(self) -> Input: r"""Allows to connect label input to the operator. - Label of the fields container where it should operate. + Label of the fields container where it should operate. If not defined and the input Fields Container has only one Label, the operation will be done over all the fields. Returns ------- diff --git a/src/ansys/dpf/core/operators/math/average_over_label_fc.py b/src/ansys/dpf/core/operators/math/average_over_label_fc.py index 2a88b46a422..c8571c1cc66 100644 --- a/src/ansys/dpf/core/operators/math/average_over_label_fc.py +++ b/src/ansys/dpf/core/operators/math/average_over_label_fc.py @@ -27,7 +27,7 @@ class average_over_label_fc(Operator): ---------- fields_container: FieldsContainer label: str, optional - Label of the fields container where it should operate. + Label of the fields container where it should operate. If not defined and the input Fields Container has only one Label, the operation will be done over all the fields. Returns ------- @@ -86,7 +86,7 @@ def _spec() -> Specification: name="label", type_names=["string"], optional=True, - document=r"""Label of the fields container where it should operate.""", + document=r"""Label of the fields container where it should operate. If not defined and the input Fields Container has only one Label, the operation will be done over all the fields.""", ), }, map_output_pin_spec={ @@ -190,7 +190,7 @@ def fields_container(self) -> Input: def label(self) -> Input: r"""Allows to connect label input to the operator. - Label of the fields container where it should operate. + Label of the fields container where it should operate. If not defined and the input Fields Container has only one Label, the operation will be done over all the fields. Returns ------- diff --git a/src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll b/src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll index 62b6e840621106893d81227efb437c8803e9164f..0d4a92e04a10f6f3c46dcc259e4ac29bcb22c7e1 100644 GIT binary patch delta 9472 zcmZu$30#y_*MIH|1A{;evFE}vD3qz-lDH);0@>iAK-Do7w`l8 zfdC*72m*qECxGri51=Q|3kU&1fiQU-3*WPW<;%?*!#8*H41A$Lvi&iBp|oX`2QAJH z-^8}d-(-iUGqzNozb$;Zr{|x;K(X~1L2;ixqHqISCC}Iw9?RGlv@<{ab=AKI%kBB$ z%UwKGgF$(BfS~-1)*cLB&9=z*4u;QEvCrhO=I|(u=ZU_8B2rM4(AtvlH`ze>`;zcQ zDz-*WC<|}bitmYVjf$1ZGfsuyVXR(`Jrh3Eg}oxDo(u2oqZ;5U)3xwtrmzX}%^vz` zj2)4~d+DFjywX^4K(e_VSpe4OQEm6mSo3>(yZ211w~uBKI=p9I{l$Be*D_ScRQHx7 zDL%)4+yj{4mZizQoV*#gOk#+zi;>;Hu%Hb&?-x_Ulc3c8tvVu?`F z_SMI;W_e0qeYA>QmjBUDKTs2DJlMI=UQ|05YTc$RlqP>TP(R6)^^*0&^h+39E^i&K z|Jvh~e{KWgZ!-nsE2u*DvY$I-Uycrk?5U`ZsqSHy{m-`)mM@8^14b*drw2mz_6)o1 zo8(K+>q8j(jJ}$n|BaoOKaJPxJVK9b=ww%kYA3t>uPN-dllyf2RW@7x=XCw6jP;j? z&d}fU80nFURR*pQ0=BPG1T5|pFcKXO0iQ;-ljDTB3P&x?Tc{6Wvb=Vo{(Z*Yk$o2F zwakC@iUZQd7op?VP_e}<6RhV`|Hb-V{x zhdQ7t1+(X1Hb=$w^&&C*KniVGrjH3}Kv#Uu%ZawrdUs{+EI~6EH1XTK%2MPT%k+!Y z{@*TgaQGY*ThIc*;WkZJsUH~fCwjmj)^;z%&R~ZiS(dCY_+k+a->B~{pIoW8vVh`+ z;4%+#96-hP$$Y`ZxRA0}=?8^WqYG?;Y^6QzY$ghtKA?F?-EaRw`fQcHig7t7Rqvvn zvvauzdx}Eu${dhBf*me?CW1z7^xP z!T+)=|0Q~`Mt`3b$#>T3^=f~=M2G4;P_aEfUCeH$;B`>llju=&ALMJ_^ZA(|p=pZh zJQL;D*6CkU2aKQYU@!s|+u8)dV8C>`w*l6hg)T+;@!ob0KTHG7mB|W+k<(=;e>Mwv zcdA2O>rt_tnIt%@no8xHpm#!-qWAZ_>>QpFG#b!A@9U=0Uz?!!Pvi=NUag*^p5$Qk z$IBqfe^D^{3Dr)$PelWIpJV^b#mAxd?BR;u2cpOJ4O8^~pHHCo)A4q_m&u;*iX(KI zQZw{^!KRm-)V>=H+a(Zg8I?%|8Bn`*Vwc+euG`h_M?UXC?dN5dDb)V!1c%nXN5$4> zyqNtZ4ciK}yT?1!-lno|`G6pKYn-CAA126Kw+gjKjCU~Tj*4wYoM7NRp1SRT+J~V_ zQF~OoRyj1+$APAFw8EjsczN~?q4q^%9om|MiY@P1!C~@P`d}y2{ua6vwJ-VG&Y_#2 z`DT=&_Ss{phY@POFW)pm?f$EubufAj72Dgx1*7@&?QZ>ZELeVekG_?$Cb?&xUd`Bb zIgG^iKOE|i{u(Ma*TG`SMVj?Kwtp8rSUS2*!}Id+mKYgQJ2ZbAZC&uR-#NFz=9Dph;5eBY$c8LVn*lQ({(uhO!;a`YE^+;(pC zOpCsdsp-F4^tmjJR@~8_VNb~Vuk=gQY?{3F8@<|xO_q23rr+tJ^8Qc``BVS#H1*6) z8|d~~eW2_;IbxfJosjoWj~E%rddkh~BPOq4i{&U=gtsfpkYj&}SmMJj$cNe^cKEXa za)1Bcm$TTM%%2N-1ATxF~C@0955bu4tO4z0K@|?051X)ftP@nfl0t*AOV;H zOa-O^(}7oj8Nf^+5ts$c2Ic^BfqB4uAPGnY761!@SAj*qVqgid6i5M<0j~keffc|? z;B{aXkP4&$Zvd--H-R<4THq}p9e5j92doF)0X6^|flYt`*bMvw*aEyOyC!G644cvP z%#8bNGmX!}XBZ96&e+Lj$#vNotK8Tf8l0OknHAH!xf!F`2DvUbBZ)D0irAg;CCet4 zJsHPUi$~GvJsB0Oh8FDwQ9c#z&1etv88KYC8#=VT{W=P+sWj2nb+tEV*5zdY@5yy} znd9nxhO8MX#c%mT_eM1CN*x*$Hhe@V#m>$0_xtY6p;CjU34cLS7j?PazxZ*g+L{^Q z^P}^u#?DzBv)m4$*`Udyy17}qeR^YZCwmDEJNvA8VE@T#L1@L_4)(A3P}uyem+0?# zSvo&bh7C@`-{`37^{hZ0x;lAQqG9KmG9NrMl}V{ilh$C85c%{QPP2??*k?6kmfKP^ z8#D>@>wJhj&zUf`ldw7|%U|oQ5Voadew362WCL4)ZNPRQ2iO7Zls`%`uKo<^_X{I( zfnC6EU=Oet$O8!22jm0q1N(skKml-2eqqF+(ht~k^gv_k&W4hgt7&&vtH#xIxvN#+ zW?J3V>Zdhr>1y53I*rNm+)ci!uE87+)2m%AFHff>|c_=ebRShWP=yr{nSUN4cU_P#DYoI4CnxA3G@|26_Ko+dK z#tjTO;t2vT|QgE$#lREi4-|Jx-#rDyswdN$2K*KJX zH>nH_bncS57n+}5G9QOz*_X{BDyf#rFPk^2wB__vow?VOw&V7Ntat4Tnd<^fqWXwS6C{2+JJ>(iCw{#O!9&&<^hZ)Qf{L;P#ssv zY2t^6*04qjyK0`mbhPZM`H;H$w4w(xd|*zc_z%pn5I6W5R31l=A(92rlxxs@5T#wi zR)XZJYvxZFOQx$g%tI;bhB+?pra8*TB-;i2p9uRtQYiN(W`)wQo93CUnW}D@FJj@e zTZ(x3x3I@3x_b+@jHS&@VBAc#P3G@doLqL>{7F%#E6D|G51(}DYOY*=c+1AlCVBmF z*xB#@IQ(_zm|XMc;VoU>EYJJTVZ60FT$F0son~gNEIhrk=&g_uc$6=L<4AaDNGpN5 z>?2a$+ebu~)G_9Xx*srj>k(=2y3Vo8kkBHa7$^Zs<&aSRN{ZUr$mw`a@e`Dr#RH+X zm?GZYy*0@qwUlzHnl=~lz}#pTG8UC;RA)K0uF3OvkDg+YQm%8UO$_@|Xf_Xm^9;-8 z6WppVaVa&Q=Y|F6jpiCvseOi~GQ%QOQf)SmRNFq_yYDvyYf{%(z~6lAGW+O)G@tV{-UVx2TI;N+}R(pr$FM8Y%!G9J*GF z@f#SssEoCwmT0Kw4k$jBhU@?@hc*16&a@qTxjOndr%h8!0#pt5HOO-(Pgkc@J61HL zS)^n#@8qj+D13~3wYu@LgYbZnM^Qu$57Hz+_eQ#7-EZs&6D!4DaJ1mz^^tN5; z+FnZ?rvY!4_9R0DbD;ydJW6di$?4+$k^uTV7aPbTwu_I()G@nwBz<_8`%&oYMOtQ} zj9q*LKDE2}QFKtvY+jyBxrloKJG!u`*>7$TO&?KS+Sxt=RfIit-^i0x4-Q| zmvn-_Sj(k2no`Gm(C_;ctFT(3H{nH3=W|c0%;!O(=}9Z{v55p4^Hv$cMt!lCjQKp2 z8uR&@ZkZNIhjXYc=hWU((#z#awbVpo-scn5&8IjeT`3Ld?{rLcXCIcqilb_{Uo18E zE|HAi6-zCrIqlY#zW7)}7oF~gBg`Z>lz7q0`*~kYJjYq2s>?8~aX+G13zhBXN$RF6 zcAalOz_se2qsmz|%r4fb;G-e}dc`e3D8iD7N5P)bB3O5irsW86`ys_q9NC!iUUd2Z z9~3A;jdN){1NS@z3k5sOUBG*&+A3*y0iU6+th4*U&m|hw8HD8m9_E{T;$a5-irs^h z>3IivG#SShX;fShETG#giJ?$;Wetjw75M10q3l1S7#0y{Qu5P+uSC5DB4T}^6&07(^zU*Jp zEBtlDdJ~tBmvk)A`AxAX?xtu&s2E0qiUVkriM#nDC+H;XsOTuo1TRaWY!f168}xC1 zNpS$XO23(SI4QOrW#(=;evG)Uy0zY6^;9ztQdO4HRx=-ta480<8GQqUqz@HDRgs>F z;(X6o?WQ2_!#s>>DdsTmj+n0SNxkptg1V2mQcT&nDlJ$vwIsj=m#E?&zUp`gx~jS~ zfPOrT(-?GIF|~0jOkK<=vXC$K<~O_KFx*te1z(L$D1p*k^8DBVx=_f&k^0;z2qr<`M-NJPpg!dh_lg$Y>Qs_T9j=gA%HxQaAoT1j0ouNl1x)LB6ARpDTUa^ zm~t;V#<`o?P_3}k{V%qC3HC1IVJhPZ`h)X6ZY_2vr%yN!>(Ec@*bNPRK!iHQ2tf?6Gl!X9`r;|Md7aZkoZdrCNq(8=E+$)j(?JF1e|Ba)(uPXK| z{c)5(lP7aecjE?&Wc@F3l_8UYSHpJN)fOr0wzwihms`ta2zyR3q>|Ou9K)TdoCpK7 z-h2cBPY@~zbM(q04SjTs4{(>};bg)ygG8+KrT7Y-LX8zXiiJ{D1#Ft&SL{iDRdCPl zV&7`V?wkV;bRn*EC9pVhaJqh+YyIPpW&qPZy8bYtSe+i(m}T>VeFtPq>)y0v8TIjDb({%tY^=J z8Y^+9r&jR5N`=G*3U zPQ^5SSW&$=>z+>M3<;N*l8z}XMfgH@+?%x`;OV}>jy^xd^*+^)vZ5)caa%|*&GBE0 z0v^L%*-c_Hs?)s3V@r^HAhhCV21TazXZSoJh&VMWMB`gB z4_4bm%=9O5RghOTb{JKysBTO(pP<17idO*cU|%J(bT=m8!oUvq+51c&^)WtjJan`f z;U!qSf}BeeloN#~gCm_r^o$Y;2#ba;xk&P^K1?s>h9b#Ir^RP^Uw`oub}k0EoRSye zCWC(H$Ftl`(=2!>_HZ{M9&3?fOVslmPr`2^8_x03?h=v?E40n2{v3bR9of2spNl%@ zyotOH5iyotvG5UUJRijy+Cx}Tha>>M!*phpb$j8G39ubbnba&;*bB8=_zSo@ZWka^ zlb~baP^trt<5!9FL7WT&6`bdN1I1d-MT>*4m?M}(MDeydsU!}sQI8rvCd`PJg%u0N zKB8a2s8hebESfgg;J#_DLD+yV**9WEQsFy$tkIg4-k9fN( zLXC(gJWKYAFOTqsYKF}$zi9W2?y_HE`B4q-gW7rJfogcYLip>v^14aE9ox}jPY-QJ zzJ0X(-`D+zxp+R65E&bP)be*p!L6!7@lNRY%`Wrzw~qivfnz`ga2%)vs(=%~N#GQ4 z8aM;UKs9hy{{8K9U)-dfwdcCgm=`Qd=+KO_9`sebWxibbf+bcv;5{lC5e^<>XT?O$iF38daCHpp%yK~$7vX^~wPSbova=<0J`v}mbiEFJvmoQ_-i(8A0 swEVC7o*~i4jK^A!C0AH0l8;-DV+JBlB0kBcN|Vl9DVP3LKg<3900UGoLI3~& delta 9374 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