diff --git a/.github/workflows/Build_VIPM_Library.yml b/.github/workflows/Build_VIPM_Library.yml index 2edb323..73c1ea5 100644 --- a/.github/workflows/Build_VIPM_Library.yml +++ b/.github/workflows/Build_VIPM_Library.yml @@ -9,10 +9,25 @@ on: branches: - main types: [closed] + paths-ignore: + - '**.md' + - '**.txt' + - '**.drawio' + - '**.png' + - '**.svg' + - '**.json' + - '**.yml' + - 'testcases/**' push: paths-ignore: - '**.md' + - '**.txt' + - '**.drawio' + - '**.png' + - '**.svg' + - '**.json' + - '**.yml' - 'testcases/**' # Allows you to run this workflow manually from the Actions tab diff --git a/.github/workflows/Check_Broken_VIs.yml b/.github/workflows/Check_Broken_VIs.yml index 791000e..aa2fce6 100644 --- a/.github/workflows/Check_Broken_VIs.yml +++ b/.github/workflows/Check_Broken_VIs.yml @@ -11,6 +11,25 @@ on: - '**.txt' - '**.drawio' - '**.vipb' + - '**.png' + - '**.svg' + - '**.json' + - '**.yml' + + # Also add paths-ignore for pull requests + pull_request: + branches: + - main + types: [closed] + paths-ignore: + - '**.md' + - '**.txt' + - '**.drawio' + - '**.vipb' + - '**.png' + - '**.svg' + - '**.json' + - '**.yml' # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: diff --git a/.github/workflows/Run Testcases.yml b/.github/workflows/Run Testcases.yml index 9950e89..580ddc3 100644 --- a/.github/workflows/Run Testcases.yml +++ b/.github/workflows/Run Testcases.yml @@ -12,6 +12,22 @@ on: - '**.drawio' - '**.vipb' - '**.png' + - '**.svg' + - '**.json' + - '**.yml' + + # Also add paths-ignore for pull requests + pull_request: + branches: + - main + types: [closed] + paths-ignore: + - '**.md' + - '**.txt' + - '**.drawio' + - '**.vipb' + - '**.png' + - '**.svg' - '**.json' - '**.yml' diff --git a/CSM INI Static Variable Support.vipb b/CSM INI Static Variable Support.vipb index 434774d..2b3af0c 100644 --- a/CSM INI Static Variable Support.vipb +++ b/CSM INI Static Variable Support.vipb @@ -1,7 +1,7 @@ - + NEVSTOP_lib_CSM_INI_Static_Variable_Support - 2025.6.0.1 + 2025.9.0.1 false . vip @@ -17,8 +17,8 @@ - nevstop_lib_communicable_state_machine >=2025.6.3.135832 - nevstop_lib_csm_api_string_arguments_support >=2025.6.3.115420 + nevstop_lib_communicable_state_machine >=2025.9.13.224959 + nevstop_lib_csm_api_string_arguments_support >=2025.9.14.3643 nevstop_lib_jki_state_machine++ >=2023.8.5.2239 @@ -40,8 +40,7 @@ NEVSTOP https://github.com/NEVSTOP-LAB/CSM-INI-Static-Variable-Support - [fix] CSM - Sync Configuration Variables to File.vi will be skipped if no change to ini cache. -[fix] #81 #82 fix logic of priority oder for INI variables in multiple sections. + [fix] #87 improve performance of "Sync to File.vi". @@ -174,9 +173,6 @@ testcases - - CSM INI Static Variable Support.lvcsm - README(zh-cn).md diff --git a/CSM Tool/CSM-INI Variable Viewer - DebugTool.vi b/CSM Tool/CSM-INI Variable Viewer - DebugTool.vi index f4bfcba..6990baa 100644 Binary files a/CSM Tool/CSM-INI Variable Viewer - DebugTool.vi and b/CSM Tool/CSM-INI Variable Viewer - DebugTool.vi differ diff --git a/Example/1. Used as parameters parsed by CSM.vi b/Example/1. Used as parameters parsed by CSM.vi index ab5018e..33f4e11 100644 Binary files a/Example/1. Used as parameters parsed by CSM.vi and b/Example/1. Used as parameters parsed by CSM.vi differ diff --git a/Example/2. Load the corresponding configuration by providing the prototype.vi b/Example/2. Load the corresponding configuration by providing the prototype.vi index 5294d7f..84ca2fb 100644 Binary files a/Example/2. Load the corresponding configuration by providing the prototype.vi and b/Example/2. Load the corresponding configuration by providing the prototype.vi differ diff --git a/Example/3. In CSM API parameters.vi b/Example/3. In CSM API parameters.vi index a66dc3a..0ce456a 100644 Binary files a/Example/3. In CSM API parameters.vi and b/Example/3. In CSM API parameters.vi differ diff --git a/Example/4. Multi-file configuration systemvi.vi b/Example/4. Multi-file configuration systemvi.vi index 19b34e3..374606d 100644 Binary files a/Example/4. Multi-file configuration systemvi.vi and b/Example/4. Multi-file configuration systemvi.vi differ diff --git a/Example/5. Write and Read Configuration.vi b/Example/5. Write and Read Configuration.vi index ea5176a..69b74b5 100644 Binary files a/Example/5. Write and Read Configuration.vi and b/Example/5. Write and Read Configuration.vi differ diff --git a/Example/6. import Config.ini with __include section.vi b/Example/6. import Config.ini with __include section.vi index 569789c..a7db325 100644 Binary files a/Example/6. import Config.ini with __include section.vi and b/Example/6. import Config.ini with __include section.vi differ diff --git a/Example/7. Read Nested Variables.vi b/Example/7. Read Nested Variables.vi index 1c03192..b2ee484 100644 Binary files a/Example/7. Read Nested Variables.vi and b/Example/7. Read Nested Variables.vi differ diff --git a/INI-Static-Variable-Support/CSM - Configuration File Path.vi b/INI-Static-Variable-Support/CSM - Configuration File Path.vi index f5e8923..8b069b9 100644 Binary files a/INI-Static-Variable-Support/CSM - Configuration File Path.vi and b/INI-Static-Variable-Support/CSM - Configuration File Path.vi differ diff --git a/INI-Static-Variable-Support/CSM - Load Configuration Variables From File.vi b/INI-Static-Variable-Support/CSM - Load Configuration Variables From File.vi index 8a96e8f..2d4467c 100644 Binary files a/INI-Static-Variable-Support/CSM - Load Configuration Variables From File.vi and b/INI-Static-Variable-Support/CSM - Load Configuration Variables From File.vi differ diff --git a/INI-Static-Variable-Support/CSM - Mark All Temp Variables as Permanent.vi b/INI-Static-Variable-Support/CSM - Mark All Temp Variables as Permanent.vi index 23bc707..5206847 100644 Binary files a/INI-Static-Variable-Support/CSM - Mark All Temp Variables as Permanent.vi and b/INI-Static-Variable-Support/CSM - Mark All Temp Variables as Permanent.vi differ diff --git a/INI-Static-Variable-Support/CSM - Populate Configuration Variables.vi b/INI-Static-Variable-Support/CSM - Populate Configuration Variables.vi index 57d4a4d..cca40d3 100644 Binary files a/INI-Static-Variable-Support/CSM - Populate Configuration Variables.vi and b/INI-Static-Variable-Support/CSM - Populate Configuration Variables.vi differ diff --git a/INI-Static-Variable-Support/CSM - Read Cluster Elements From Key.vim b/INI-Static-Variable-Support/CSM - Read Cluster Elements From Key.vim index 0a14f87..696a79a 100644 Binary files a/INI-Static-Variable-Support/CSM - Read Cluster Elements From Key.vim and b/INI-Static-Variable-Support/CSM - Read Cluster Elements From Key.vim differ diff --git a/INI-Static-Variable-Support/CSM - Read Cluster Elements From Session.vim b/INI-Static-Variable-Support/CSM - Read Cluster Elements From Session.vim index 0218cdb..f04c19f 100644 Binary files a/INI-Static-Variable-Support/CSM - Read Cluster Elements From Session.vim and b/INI-Static-Variable-Support/CSM - Read Cluster Elements From Session.vim differ diff --git a/INI-Static-Variable-Support/CSM - Read Configuration Variable.vim b/INI-Static-Variable-Support/CSM - Read Configuration Variable.vim index c1017cf..9d05cb1 100644 Binary files a/INI-Static-Variable-Support/CSM - Read Configuration Variable.vim and b/INI-Static-Variable-Support/CSM - Read Configuration Variable.vim differ diff --git a/INI-Static-Variable-Support/CSM - Reset to Default.vi b/INI-Static-Variable-Support/CSM - Reset to Default.vi index b0ee267..e07c71b 100644 Binary files a/INI-Static-Variable-Support/CSM - Reset to Default.vi and b/INI-Static-Variable-Support/CSM - Reset to Default.vi differ diff --git a/INI-Static-Variable-Support/CSM - Restore Variable Value.vi b/INI-Static-Variable-Support/CSM - Restore Variable Value.vi index 1b7581e..c44c43c 100644 Binary files a/INI-Static-Variable-Support/CSM - Restore Variable Value.vi and b/INI-Static-Variable-Support/CSM - Restore Variable Value.vi differ diff --git a/INI-Static-Variable-Support/CSM - Sync Configuration Variables to File.vi b/INI-Static-Variable-Support/CSM - Sync Configuration Variables to File.vi index 5e57e17..8be8098 100644 Binary files a/INI-Static-Variable-Support/CSM - Sync Configuration Variables to File.vi and b/INI-Static-Variable-Support/CSM - Sync Configuration Variables to File.vi differ diff --git a/INI-Static-Variable-Support/CSM - Unload Configuration Variable File.vi b/INI-Static-Variable-Support/CSM - Unload Configuration Variable File.vi index 73a00e6..16d23f6 100644 Binary files a/INI-Static-Variable-Support/CSM - Unload Configuration Variable File.vi and b/INI-Static-Variable-Support/CSM - Unload Configuration Variable File.vi differ diff --git a/INI-Static-Variable-Support/CSM - Write Configuration Variable.vim b/INI-Static-Variable-Support/CSM - Write Configuration Variable.vim index 58fd62c..9550995 100644 Binary files a/INI-Static-Variable-Support/CSM - Write Configuration Variable.vim and b/INI-Static-Variable-Support/CSM - Write Configuration Variable.vim differ diff --git a/INI-Static-Variable-Support/Convert API String to Cluster(Default in Key).vim b/INI-Static-Variable-Support/Convert API String to Cluster(Default in Key).vim index 434664a..978de1f 100644 Binary files a/INI-Static-Variable-Support/Convert API String to Cluster(Default in Key).vim and b/INI-Static-Variable-Support/Convert API String to Cluster(Default in Key).vim differ diff --git a/INI-Static-Variable-Support/Convert API String to Cluster(Default in Session).vim b/INI-Static-Variable-Support/Convert API String to Cluster(Default in Session).vim index 68a2fbe..9d320e3 100644 Binary files a/INI-Static-Variable-Support/Convert API String to Cluster(Default in Session).vim and b/INI-Static-Variable-Support/Convert API String to Cluster(Default in Session).vim differ diff --git a/INI-Static-Variable-Support/INI-Static-Variable-Support.lvlib b/INI-Static-Variable-Support/INI-Static-Variable-Support.lvlib index 2cbf6b2..b2be4ee 100644 --- a/INI-Static-Variable-Support/INI-Static-Variable-Support.lvlib +++ b/INI-Static-Variable-Support/INI-Static-Variable-Support.lvlib @@ -12,12 +12,18 @@ + + + + + + + + + - - - diff --git a/INI-Static-Variable-Support/LabVIEW-Config/Key Information From Index.vi b/INI-Static-Variable-Support/LabVIEW-Config/Key Information From Index.vi index be34fbc..9f48ff7 100644 Binary files a/INI-Static-Variable-Support/LabVIEW-Config/Key Information From Index.vi and b/INI-Static-Variable-Support/LabVIEW-Config/Key Information From Index.vi differ diff --git a/INI-Static-Variable-Support/LabVIEW-Config/Write Key (Raw).vi b/INI-Static-Variable-Support/LabVIEW-Config/Write Key (Raw).vi index a5ec9da..ef7fbdb 100644 Binary files a/INI-Static-Variable-Support/LabVIEW-Config/Write Key (Raw).vi and b/INI-Static-Variable-Support/LabVIEW-Config/Write Key (Raw).vi differ diff --git a/INI-Static-Variable-Support/_Support/CSM - Read All Variable Names.vi b/INI-Static-Variable-Support/_Support/CSM - Read All Variable Names.vi index 7b091c2..cb26f37 100644 Binary files a/INI-Static-Variable-Support/_Support/CSM - Read All Variable Names.vi and b/INI-Static-Variable-Support/_Support/CSM - Read All Variable Names.vi differ diff --git a/INI-Static-Variable-Support/_Support/CSM - Read INI String.vi b/INI-Static-Variable-Support/_Support/CSM - Read INI String.vi index 006bc32..aa10588 100644 Binary files a/INI-Static-Variable-Support/_Support/CSM - Read INI String.vi and b/INI-Static-Variable-Support/_Support/CSM - Read INI String.vi differ diff --git a/INI-Static-Variable-Support/_Support/CSM - Read Key Names.vi b/INI-Static-Variable-Support/_Support/CSM - Read Key Names.vi index 7098092..7d9c5ed 100644 Binary files a/INI-Static-Variable-Support/_Support/CSM - Read Key Names.vi and b/INI-Static-Variable-Support/_Support/CSM - Read Key Names.vi differ diff --git a/INI-Static-Variable-Support/_Support/CSM - Read Sessions.vi b/INI-Static-Variable-Support/_Support/CSM - Read Sessions.vi index 54cd886..a473168 100644 Binary files a/INI-Static-Variable-Support/_Support/CSM - Read Sessions.vi and b/INI-Static-Variable-Support/_Support/CSM - Read Sessions.vi differ diff --git a/INI-Static-Variable-Support/_Support/CSM - Write INI String.vi b/INI-Static-Variable-Support/_Support/CSM - Write INI String.vi index fbfcd6a..2c8714c 100644 Binary files a/INI-Static-Variable-Support/_Support/CSM - Write INI String.vi and b/INI-Static-Variable-Support/_Support/CSM - Write INI String.vi differ diff --git a/INI-Static-Variable-Support/_Support/CSMSVMgr/CSM-Static-Variable-Manager.lvclass b/INI-Static-Variable-Support/_Support/CSMSVMgr/CSM-Static-Variable-Manager.lvclass index 3e61789..cdc066c 100644 --- a/INI-Static-Variable-Support/_Support/CSMSVMgr/CSM-Static-Variable-Manager.lvclass +++ b/INI-Static-Variable-Support/_Support/CSMSVMgr/CSM-Static-Variable-Manager.lvclass @@ -16,7 +16,7 @@ true true true - &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!#@E5F.31QU+!!.-6E.$4%*76Q!!)W!!!!3%!!!!)!!!)U!!!!"+!!!!!C&*4EEN5X2B>'FD,6:B=GFB9GRF,6.V=("P=H1O<(:M;7)D1V..,6.U982J9SV798*J97*M:3V.97ZB:W6S,GRW9WRB=X-!!!!!!+!8!)!!!$!!!#A!"!!!!!!%!!-!0!#]!"^!A!)!!!!!!1!"!!<`````!!!!!!!!!!!!!!!!&XGE(>U;5EW@7GKL]-E'>Q!!!!Q!!!!1!!!!!#PUZ9(2;YZ$K5R;:3G3P[\5(9T:DQ#S"/G!#:DM_%*_!!!1!!!!!!![ZIJ%[C+D1:R]MG0@<KX=!1!!!0`````5(9T:DQ#S"/G!#:DM_%*_!!!!%(L=A_\VAW)L/HFM6(E=\.Y!!!!%!!!!!!!!!/Y!!5R71U-!!!!$!!*735R#!!!!!&"53$!!!!!&!!%!!1!!!!!#!!*735.$!!!!!!)54'&C6EF&6SV$<WZG;7=O<(:M;7)+1W^O:GFH,G.U<&"53$!!!!!C!!%!"A!!!!!/4'&C6EF&6SV$<WZG;7=+1W^O:GFH,G.U<!!!!!!!!5)!!!!!!!*735.$!!!!!!)54'&C6EF&6SV$<WZG;7=O<(:M;7).4'FO:62P;W6O,G.U<!"16%AQ!!!!*1!"!!9!!!!!$ERB9F:*26=N1W^O:GFH$5RJ<G65<WNF<CZD>'Q!!!!!!!*#!!!)!!!$!!!!!!!#!!-!!!!!!#A!!!!C?*RDY'2A;7#YQ!$%D!R-$6R!&J-'!ZBG_-$!Q-(!!!#%/A?(!!!!&!!!!"2YH'0A9/"FY%#"$!!$A1"/!!!!4!!!!2BYH'.AQ!4`A1")-4)Q-(U$UGRIYG!;RK9GQ'5O,LOAYMR!T!,%L$"BI,PX!'EGE$B5D3D9/QR-$Y$Y",IZ`&$[!:)9!,D0+6Q!!!!-!!&73524!!!!!!!$!!!"LQ!!!Z2YH.P!S-#1;7RBRM$%Q-!-:)MT.$!EZ[?E]D)!_1Q1I!.D5!!#I/:JI9E<(DC="A2[`0)N9(\T'ZZO&R7"ZBI6#;:3E7Y@&:&/(R774B;6&X`_```@@)4H=,>(TH&('Z$;<A[A_(%8&1Y1"UCTA/D`A2EA6;DGS81#:9'U"*)'O)%I^A=!68%U6#ATF,!9(IA[@,T"B"(C5*A4IL#ZFXDTG^^Q!$UF=0!B3X?D"J$@/R&%!I6Y/E-Y*)[\=/C)!@G-*U!'>P,!@-U"^U]9S)!3&9&/%Z"&,)QQC\L:DDNIA-0"112#:5#I#AB6!+*WA&VQB#0O-$T]V\[_NYM63,-BR9E$%$?!'%SI7)_"E9%2T'2E7!N6;Q.E-U(&9(%,9CN!AYW2Q2[OZT:58A0*(">'G"[%OGIE>T#"T7"E_--!-Q^I(V20!^4>)$&@I.A"+$M%S*Y!:5=$W2_A\#1A7Q$+TA3S$2AB\$QI'WQ:!W\;W>`&&3G9Q0E#FD55A4AZN]$!1+_[/E!HWF!H/":%JDL:G.D&[DD6[I4JB.5#V3C!V"5EF_&4"A#`&JT*!!!!!B1!!!-)?*RT9'"AS$3W-%NA9G"A:G2A%'>I9%D/4UFF1!)HG"BQAN$A],$G.S\>,CI2H3YK$NU_+D'>0CIW1,9&E$<J:ODG".)MH3QK,`\]``_`^1$`F!0]L4?"/I&;,(I^7)#S&E">*MU(7=!;(&B;$Z1)>BNUMQ(.-!"CD?:D,+^&DA-:)0O!N!').DT1?;S<M`6EC83X:4?`Z=(/Q\6M10U'H;?<D\.IHA$J?]U&6XS\^8;>*L_]#^"7NGZ_:!=V`W!M^1"K!6LCX8K\`A(162JA2Z:;>)=!(?D%!D3+!_1>:%='M<2?+F(K.OI7[QR2E1&C%:!D69''A<SX\5$T%:?Y_/D9QU!(C%">,1.WS#8$<^W7L@_"LL<PVL?]WHE:[/I=I!GP1;Z_"4,I.4^=]?X8T/ZO1&@6=83R7<'8,HH^M@53`Z2$*;T]WQ[^HA.U(A@%?2;^DC$+J+'3B9&`[M''+B"VK//#Q1G$5S8=)/>]9(S:#@1MU(-/P2[]1#_!)MKG.Z!8;+..NQ.PNS=PFFASBGNB17BBA7BB[@:EQ>3S\=1/9"JCY(=^_0,HP```A=SVL_`N9A<3D%BJRA')G2FYQ7+AJ+5.&6>CE)#,\9'+&1.&G+"C&[''A.AM4!CT1-$:X]560=W#F#M#=8*OA9'"8H6VA%[UI5ZQ,)B-><)RM9P6=;L6#>-*KQ7K!1#U\?=0!!!"V1!!!P"YH(.A9'$).,9Q%W"C9'"G:'!1:WBA3-Z0376!!FO9'(##Y0#QZD=_X4%K-:UR+B\>.3I*H45K,E#W!Z#W[79'ECS>,#IP`PT``\`T7/MX`N:YI#W^TCS>,CI/T=>:Q+K+76K`F1BWG`7[A92.OPE[@61M8H->>V'R!.FB?,+<P@6!Z[%3FG["<C(,CS6GP5!:I%I>)+U$J(G!JH!!6<-Q!V5@:V%";1,<W(K!P`5^E.-.MA6I2AFL.U0T!:!F"NV!+Y$7;,3?L0-#MEXYZ2N!WLIZA:)MH4T),FY,%A=K;4\)!N2BUAX5$4-E2%8$KR.)N&[K0QKW"/CL8A_1-LDH(%!5"]B5I!M&'%%O",K9%?*3&JB,14;6OC.J"VJIURP)!D4=JMO"J=/2"3DHU?P"#Z4T!-KZ."]%-6W[(5!53B#8=(:_;$\C%R=@@2CCBQ7BBQ7CBQ6:$T#18![]0AO*T\7P\_VC!^+-3((M!-2:1"'1'#AJX)++ZS+*O5!V^$!9A-6!?#J581G1RQ26VQV6"W,PB\*TE-T2A/K*1"+<B?1/%($W>X&&4Z]AN1J!H&S18+:882WA%WWI%RQ,)F/><%TM9H7=;H8#>-*K!?!QQC1!!!!!!!!-&Q#!"1!!"$%X,D!!!!!!$"=!A!!!!!1R.SYQ!!!!!!Q8!)!&!!!%-4=O-!!!!!!-&Q#!!!!!"$%X,D!!!!!!$"=!A!5!!!1R.SYQ!!!!!"1"!!!!^6=VAHEGIIQO=V*/"EEZH1!!!!U!!!!!!!!!!!!!!!!!!!!!!!!!A0````_!!!!"DK2/Y:#GU*'-J6<BAE23E:R%4J'!!!!"`````Y!!!!'!!!!"A!,!!9!)-!'!)!Q"A)!$!9!!!Q'!9!Y"A(A_!9"_`A'!@`Y"A(`_!9"``A'!@`Y"A(`_!9$``_'!(`XZA!`XY9!$X]'!!(]"A!!]!9!!!!(`````!!!#!.X>X>X>X>X>X>X>X>X>X>X4-T-T-T-T-T-T-T-T-T-^UT0`]`0T0T-`-``T``-T0>-`-T0T]T`T`T]T-`-`-TX4-`]T]`-`0T]`0`0`]T-^UT-T]T]T0T-`0T0T]T]T0>-``T-`-T]T0T0`]`-`-TX4-T-T-T-T-T-T-T-T-T-^X>X>X>X>X>X>X>X>X>X>X>!!!!!!!!!!!!!!!!!!!!X1!!!!!!!!!!!!!!!!!!!.U!!!!!!!!+KK!!!!!!!!$>!!!!!!!+IT-[I!!!!!!!X1!!!!!+IT-T-TKA!!!!!.U!!!!+IT-T-T-T/K!!!!$>!!!!#K-T-T-T-T_A!!!!X1!!!!KKIT-T-T``I!!!!.U!!!!+KKKD-T```[!!!!$>!!!!#KKKKKL```_A!!!!X1!!!!KKKKKP````I!!!!.U!!!!+KKKKL````[!!!!$>!!!!#KKKKK````_A!!!!X1!!!!KKKKKP````I!!!!.U!!!!+KKKKL````[!!!!$>!!!!#KKKKK````KP`Q!!X1!!!!#KKKKP``KK````!.U!!!!!!+KKL`KK````!!$>!!!!!!!!KKKD````]!!!X1!!!!!!!!#D````]!!!!.U!!!!!!!!!!!``]!!!!!$>!!!!!!!!!!!!!!!!!!!!X>X>X>X>X>X>X>X>X>X>X>!!!%!(N\?XN\?XN\?XN\?XN\?XN\?XN\?XN\?XN\?XN\?XN\?Q]0$Q]0$Q]0$Q]0$Q]0$Q]0$Q]0$Q]0$Q]0$Q]0$XN\$Q]0````$`]0`Q]0`Q]0$`]0$````Q````]0$Q]0?XM0$`]0$Q]0`Q``$Q```Q```Q``$Q]0$`]0$`]0$Q^\?Q]0$```$Q``$`]0$`]0`Q``$`]0``]0````$Q]0$XN\$Q]0$Q``$Q``$Q]0`Q]0$`]0`Q]0`Q``$Q``$Q]0?XM0$````Q]0$`]0$Q``$Q]0`Q]0````$`]0$`]0$Q^\?Q]0$Q]0$Q]0$Q]0$Q]0$Q]0$Q]0$Q]0$Q]0$Q]0$XN\?XN\?XN\?XN\?XN\?XN\?XN\?XN\?XN\?XN\?XN\?XM!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"\?Q!!!!!!!!!!!!!!!!!!#!A!!!!!!!!!!!!!!!!!!(N\!!!!!!!!!!!!!!!!#'1[:'1)!!!!!!!!!!!!!!!!?XM!!!!!!!!!!!!!#'1[$Q]0$W2E#!!!!!!!!!!!!!"\?Q!!!!!!!!!!#'1[$Q]0$Q]0$Q^E:!A!!!!!!!!!!(N\!!!!!!!!!'1[$Q]0$Q]0$Q]0$Q]0:'1!!!!!!!!!?XM!!!!!!!!!/DI0$Q]0$Q]0$Q]0$Q`_:!!!!!!!!!"\?Q!!!!!!!!![:'1[$Q]0$Q]0$Q`_`PY[!!!!!!!!!(N\!!!!!!!!!$JE:'2E/A]0$Q`_`P\_`DI!!!!!!!!!?XM!!!!!!!!!/G2E:'2E:$JE`P\_`P\_/A!!!!!!!!"\?Q!!!!!!!!![:'2E:'2E:0\_`P\_`PY[!!!!!!!!!(N\!!!!!!!!!$JE:'2E:'2E`P\_`P\_`DI!!!!!!!!!?XM!!!!!!!!!/G2E:'2E:'4_`P\_`P\_/A!!!!!!!!"\?Q!!!!!!!!![:'2E:'2E:0\_`P\_`PY[!!!!!!!!!(N\!!!!!!!!!$JE:'2E:'2E`P\_`P\_`DI!!!!!!!!!?XM!!!!!!!!!:'2E:'2E:'4_`P\_`PZE:+SML!!!!!"\?Q!!!!!!!!!!/DJE:'2E:0\_`PZE:$KML+SML+Q!!(N\!!!!!!!!!!!!!$JE:'2E`PZE:$KML+SML+Q!!!!!?XM!!!!!!!!!!!!!!!![:'2E:!_ML+SML+SM!!!!!!"\?Q!!!!!!!!!!!!!!!!!!/A_ML+SML+SM!!!!!!!!!(N\!!!!!!!!!!!!!!!!!!!!!!#ML+SM!!!!!!!!!!!!?XM!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"\?XN\?XN\?XN\?XN\?XN\?XN\?XN\?XN\?XN\?XN\?XM!!!&+!!&'5%B1!!!!!A!#6%2$1Q!!!!)54'&C6EF&6SV$<WZG;7=O<(:M;7)+1W^O:GFH,G.U<&"53$!!!!!C!!%!"A!!!!!/4'&C6EF&6SV$<WZG;7=+1W^O:GFH,G.U<!!!!!!!!%)!!!!!!!!!!1!!!%V16%AQ!!!!,!!"!!9!!!!!$ERB9F:*26=N1W^O:GFH&%RB9F:*26=N1W^O:GFH,GRW<'FC!!*52%.$!!!!!!)54'&C6EF&6SV$<WZG;7=O<(:M;7).4'FO:62P;W6O,G.U<!"16%AQ!!!!*1!"!!9!!!!!$ERB9F:*26=N1W^O:GFH$5RJ<G65<WNF<CZD>'Q!!!!!!!"#!!!)!!!!!!%!!!&)5&2)-!!!!#Q!!1!'!!!!!!Z-97*73568,5.P<G:J:R2-97*73568,5.P<G:J:SZM>GRJ9A!$!!!!!!F)!!!>R8C=T6FN<&08'8\0^5VSH4D*N9-*,EZM*T=G>!G+++71<952UU,Y+'XY7.OJ<9A>]*L%R8&3_,'3+6<54+OG;20\E#LVRY;U(R-`]K033FO)$'XH([X1.+HNJ,429*I[<5QKIW0=X,XH8.`PG^D,K.29/D,7_X(/]T\H?=]Z!,2=&N>R3`#3$%3]B6`WSV#<,"+!1L=!J<`Y$)B(S(_!L!E2'89+2]30O353FM'8,-;&HM1MX%2LZ8VFUP-(_,@Y+:J7CS%-6CN$9\Y)0`0X3QOC>#%MT6:J9:MA)LZ#FLBP3Z(<QCPZ$';%@#=>`>VE#5ACRP0ZNE/$9[G]2(`V>AMB&N-LAZAIVG?FB1U9%800MZ!E[`G=4'MB!5.WQNT=H/(E6ZXC<"L<U-@T/1"@2<)L_!41:VR;[')_N=S(:.'HF#=27@I*H4NVMLMW358U2,@4J2646]V.XMH=&B=8U1X(ENN*'>:)#\O%E0"J]K/K_M@TLQ-"5HB75)DS+`4`I@]AL1+T$7!BJ#,J[#8C!0ZT1)<\]U8O/;!!+UM!8)<UM%LQ7C7_Q3LR#+O%.T%LAF'+8Z=J29)PN,8UD5S-ZV,:;'9Y/D1S/$Y?@3'<HBT-J;,*Q>SAMUD@4"2$$V%%;$*'%'A'HBMF87<!-X$_`(E%!5@$^7&U<:97>,]G8-YJ8)Y'?N)!H79VU.O"[#7_/(S#)ND2SWG]^4$?(K!D'70@@WNQ?$.SW#`;JWDB]).@!I?X*IIN,^EZX-E>*>N8Y/.$KJ0"9?YI1H/#>+\AMQV^TJIZD$E[U7>\?1ZP4R2&+YGJLYX%Z][>M`BB'8JV%P/%K#4/@[$=6?Z3+J^3@M@^EUQS+HO9RTT7!S6(**C%4'/3X:D%1NWXFK@O]-I6C&;$3F`R['!W08B]*.8^3(IE>7$Q"6N*--MFT$)6WCQNV&EY7QW83&T,]C]L6GK7@!SGNP"ZC@ZCLP&F'Y_$G($?+.:N6^Q2PXH%L_.*[(A+%F`Y`K[3W2/@]:1MZJ(&'FZQ'7ET<=/,Z*<([VC&?.64G0IS9]0J%WZAE9F\$";:8"V9Z%58M(A$L#2O@+2RD-LC0T$E:3)RL$R;V1?3R79'6?*#J._+V:9S7(%FL+I0J%9TW4-WE!:E)F**&KM3#Z&_&2[!;[8]?KU#.0^"3[G5PQ)I>]&<18K?F^L!I3[ES3G_0(Z?*^&SYEP7W/J!`^\!3:=48R)U&5+4Y#J.AHEGPOVM@*+.$\$R?\I1EX57)>;G;R:C=B`&[J\K-&HPJM.BG#0>SWMK#>NV'/9Q<)'%6`"JM?MQZACD4X>:(3;N$BWGPG6VG%4UCJ45W/.1YYP+)F#N/+B4]D%M#O:DYD+.,0QZ(,)3^CQNQK/M#%&NPX#Q&D@MY1K/%>Y$G72[/*V+\L$6QC?4+;1?(I##'A=Y`$2"%S[O>2_'IK-`IE[&,(GCB9C+B2`]_3ATC>&2<#PB/3+UU>B/U[2#48%M<`L`2`6'D!6_8^W7RRBSD<L3"#'I&R['8>>)4;,-*%:.^"1JZWQMJELFJL^9P;G_2GR?<ZBEY)EVKAR5IQT-0%.R+NE^A3KAE3S)*.M(/59SLU;SJT66ND3QD5C(P27J9K'N;H^[,$6O)^EBG8QH7@3&MCD*O[1,L>,M&BJ:2*N.M*&.I9I:@C+4:Z*&0I1XBFK4C.<A'O[$$GXL+8[W^?\=O9/6QV(P=#`T((9Y`-8<H=^V</I:.DDQ,()!W[;(29US""IQ@2A;-.,&CR=R%I[-!ZSV"!VI%G5G-4LK*4DOL*:K3C5B2E?LK:G2T[GTY>BM?H2'.KR_.E/6TW<)-BM5OE'=T9OGXO/"?GD&OJ1^_,^G\DVJF81V]2H/#*X#U-?EB6:=;+FTU+,XA/UWYK+_Q_AZ<L`)>-.GJ+S6"C\.^)4?8<R;>WG')=.8:<%NY5G^OXB,X36GTO@KE^;\C\@587,70,?77^ZX=8F(,*?ND<!64LNB<DWF`M;-_5E6=Q%08OQ__LB--NI'V^#SN0*4,M??P[&?+7700?I*V8HMK:.*&N?#FY^'.;:!EV@D/3)!N<C%$T`[%SZB9O9V1V`J!G_`K^+6@8`(^0WK[@M6%U]RT\C;:V,.=UHN64QOF/<"$0=E$Y*U7NW>><:D8$0UO3L1N7P84!J%T^DYC`GQ=]<F<,=?(CW`P_<-N<[CVNJ,$^E$]3GY]?.!E,Z,3#'I$1<7;F`8"JKVL]W'\$_AM7)@SPYU4&BF`]&F:@^IB<*@@4DT@'L-2@?XOOB_A%G!4@?X@4G[DZ@J5-^82P>\V>F]284`[[P6`3E8X;_V[0Y/B_\4IG_O10>X/H5`B%KW"4F<6P?`Z>4^%#1.8V=.X_81`8:T0F?@0I@ONVPT,+P\#:PO"X'<<9-TZ86`VE8X[T4>4]JE4_G[L;.FPG[4@OU+:\JO6S<]LH@>9T+]C@N6*.I>7Z7U03RJD8<(,^TT:P/*$&?I4P2L/K&KF1$^G0UJ'U&1B7XK0-6UAKGT23@K:<C;,!J5^(U/U5^5%&98`=+G5-V1:H1U.:;L'5].Z>+:-=`TK40];#;<UG5!XE%30'S2!562<E%>2CMD!T\Q63I$KGEZ'=$:P+OW69^*F"JR.ON80RM8C6RO.M>NIA4PO4<,0<9.QIJA&;8@GT>)3NUA0B3F?"4C-38?"P\0=!8A`=RQ_;H*J8[@[F+0F[9<0`I@/_T4-GF0&KN9CV7O9YM.EH77P5![8&MM@51*F\W_UU?5X%HH9W$=?5Y*I92X9?ZSZZ1JRTE&O^-'6$7-^T6VCDY;LQ7K9!05F6Y383B1#^696TLJ'$82[KLYH"1QGS,@>>-[?V`K4"3$?&]HJH.?#,>C&`D+SON'F_@-(O02:JG7^JB-\E]7KU-#SNG!K5""UAJRUMMKS7EI>7'+A/GZ2(W+#&O?8&W@3],[4>Y%F0Q8NY=.>^-<F:N?L^TUT`;HB&0GJ^W>[KZIU*Y3QI:>TLTB&F7\2OR)`JO9^A>]B)`G9Y1$+,4Z$BX?UY.4Y/E]_(:?]N\%F!>.:Q(BY[M4!HU>IR]DR>MO'V25.[C,0Z4_B!%JI;RE)/\']'>F##<[!O_,?\&90G'PM&N]F6MC2);VQKP#L=)@^@^;,?T80@-@E!`*>?G8%7(>@Q&*;G'A!!!!"!!!!*!!!!!%!!!!!!!!!!Q!!5*%3&!!!!!!!!-!!!"C!!!!=HC=9W"AS"/190L(50?8A5HA+Z!B`:?"7>#0]4=$![?@Q'%AT3AA#237`=P!,KA.&N9_IMP"!!7K<)Q=EBS("4H!-BQN'AT````H_(LE'FT&%2]Y5W770)=%!"2C'1!!!!!!!!1!!!!(!!!&RQ!!!!=!!!!B8WZJ8URB=X2,<G^X<E^X<GFO:UR71WRB=X.$<(6T>'6S!!!"7"=!A!!!!!!"!!A!-0````]!!1!!!!!"0!!!!!I!$E!S`````Q21982I!!!)!$$`````!"*!1!!"`````Q!""5RJ<G6T!&!!]1!!!!!!!!!#&%RB9F:*26=N1W^O:GFH,GRW<'FC$5RJ<G65<WNF<CZD>'Q!*1!6!!1(9W^N<76O>!>T:7.U;7^O!WNF?12N<X*F!!!!&%"!!!(`````!!-'6'^L:7ZT!!!/1#%*47^E;7:J:71`!%)!]1!!!!!!!!!#&%RB9F:*26=N1W^O:GFH,GRW<'FC#E.P<G:J:SZD>'Q!'E"1!!1!!!!#!!1!"1:.:7VP=HE!!"*!5QV';7RF1W^O:GFH47&Q!":!5R"798*J97*M:3V';7RF47&Q!!!Q1&!!!Q!'!!=!##.$5UUN5X2B>'FD,6:B=GFB9GRF,5VB<G&H:8)O<(:D<'&T=Q!"!!E!!!!!!!!!'UR71WRB=X.1=GFW982F2'&U962J<76T>'&N=!!!!"E8!)!!!!!!!1!&!!=!!!%!!/,^U?Q!!!!!!!!!*ER71WRB=X.1=GFW982F2'&U95RB=X2"=("M;76E6'FN:8.U97VQ!!!!'2=!A!!!!!!"!!5!"Q!!!1!!YPX2\!!!!!!!!!!;4&:$<'&T=V"S;8:B>'6%982B6(FQ:52F=W-!!!&9&Q#!!!!!!!%!#!!Q`````Q!"!!!!!!%]!!!!#A!/1$,`````"&"B>'A!!!A!-0````]!%E"!!!(`````!!%&4'FO:8-!5!$R!!!!!!!!!!)54'&C6EF&6SV$<WZG;7=O<(:M;7).4'FO:62P;W6O,G.U<!!F!"5!"!>D<WVN:7ZU"X.F9X2J<WY$;W6Z"'VP=G5!!!!51%!!!@````]!!Q:5<WNF<H-!!!Z!)1F.<W2J:GFF:$]!1A$R!!!!!!!!!!)54'&C6EF&6SV$<WZG;7=O<(:M;7)+1W^O:GFH,G.U<!!;1&!!"!!!!!)!"!!&"EVF<7^S?1!!%E"4$5:J<'6$<WZG;7>.98!!&E"4%&:B=GFB9GRF,5:J<'6.98!!!$"!5!!$!!9!"Q!))U.443V4>'&U;7-N6G&S;7&C<'5N47&O97>F=CZM>G.M98.T!!%!#1!!!!!!!!!?4&:$<'&T=V"S;8:B>'6%982B2':M>%2B>'&4;8JF!!!!'2=!A!!!!!!"!!5!!Q!!!1!!!!!!&1!!!!!!!!!;4&:$<'&T=V"S;8:B>'6%982B2':M>%2B>'%!!!'"&Q#!!!!!!!I!$E!S`````Q21982I!!!)!$$`````!"*!1!!"`````Q!""5RJ<G6T!&!!]1!!!!!!!!!#&%RB9F:*26=N1W^O:GFH,GRW<'FC$5RJ<G65<WNF<CZD>'Q!*1!6!!1(9W^N<76O>!>T:7.U;7^O!WNF?12N<X*F!!!!&%"!!!(`````!!-'6'^L:7ZT!!!/1#%*47^E;7:J:71`!%)!]1!!!!!!!!!#&%RB9F:*26=N1W^O:GFH,GRW<'FC#E.P<G:J:SZD>'Q!'E"1!!1!!!!#!!1!"1:.:7VP=HE!!"*!5QV';7RF1W^O:GFH47&Q!":!5R"798*J97*M:3V';7RF47&Q!!!Q1&!!!Q!'!!=!##.$5UUN5X2B>'FD,6:B=GFB9GRF,5VB<G&H:8)O<(:D<'&T=Q!"!!F16%AQ!!!!"!!!!!!!!!!!!!!!!!!8!)!!!!!!!1!%!!!!!1!!!!!!!"=!A!!!!!!"!!1!!!!"!!!!!!!!!!!!!!!!!"J-6E.M98.T5(*J>G&U:52B>'&597*0=G2F=A!!!%%8!)!!!!!!!A!&!!=!!!Q!1!!"`````Q!!!!%!!1!!!!=!!!!!!!!!!1!!!!)!!!!$!!!!"!!!!!5!!!!'!!!!!!!!!!!%!"!!&1!!!!1!!!'"!!!!+!!!!!)!!!1!!!!!$A!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)A!!!%Q8C=J60,<N.!&$X'TJ-GB""##<2V_A$;YAA"+T:92&3+V+#I2G(,R"Y(KYY>W:/+\PA1@IJ@9-W#@A##/\:*+U5KC@#6RH0HHJFT00=91!>6]`FP?L1"%Z_!)J\*$(84B*,-F.SR&`!9!VQA@7YUDNFIW(P\Q?C'A?O./`[:\YUK%P9_0/6"RR9_^H!87M%/*R-?C%,-<?'&A8L+T\6*'(%[J4&H500*NBCEJ6XKBY\H?NRZD4@`9#RHC;2LG1.I%EFD,J]7A/&KGA`.[T8H%OB`[/JT/OA=>,N7Z=DT?1LMMSG;JF5<MMBD)Z]<MC18]258XX^^_U(\V8<P8=_Q""/?<=S"VGQ[$3/2UOZUL@Y#IM]#.O92)7S@R@(7>2CJNU.[68*"#?7.LD_,"9`UU.74T@IU]M[9Y,L$"%//!G5YA0)4;Z3I79I8K+*E&K#[`BB&]YM;HIBUA9=O;AF$$<>26W?/3VS*`_C)O?0Q=L7_F;35S`V.OOMW8KX1J4JEFRJEW8N9JZG6K<S0&FKK_/T1FQWIBX@QA';W\!?J<#^P]=WZR:NT1WR>-=2"1K=P=?UJP5+2IT.IS-N"E8`O2SJI/#+F/H;Q3T=C9Y_[]4@7MFB=O;Q]3C,NJ),(G<2F(#%`;^(:66TZ!SA+)'FZ?NV%"<@Q%"NUE>NYAHU=%)U%+AHUE0*^CD*20[8=3#I'V4:*U$IBCX]!]G9:8Q!!!)-!!1!#!!-!"!!!!%A!%1!!!!!!%1$R!/5!!!"<!"%!!!!!!"%!]1$F!!!!<A!2!!!!!!!2!0%!Z1!!!)'!!)!!A!!!%1$R!/5347FD=G^T<W:U)&FB3'6J)&6*%EVJ9X*P=W^G>#":95BF;3"632*.;7.S<X.P:H1A77&):7EA65E"-!"35V*$$1I!!UR71U.-1F:8!!!D9!!!")1!!!!A!!!D1!!!!!!!!!!!!!!!)!!!!$1!!!2E!!!!(%R*1EY!!!!!!!!"9%R75V)!!!!!!!!">&*55U=!!!!!!!!"C%.$5V1!!!!!!!!"H%R*>GE!!!!!!!!"M%.04F!!!!!!!!!"R&2./$!!!!!"!!!"W%2'2&-!!!!!!!!#!%R*:(-!!!!!!!!#&&:*1U1!!!!#!!!#+(:F=H-!!!!%!!!#:&.$5V)!!!!!!!!#S%>$5&)!!!!!!!!#X%F$4UY!!!!!!!!#]'FD<$1!!!!!!!!$"'FD<$A!!!!!!!!$'%R*:H!!!!!!!!!$,%:13')!!!!!!!!$1%:15U5!!!!!!!!$6&:12&!!!!!!!!!$;%R*9G1!!!!!!!!$@%*%3')!!!!!!!!$E%*%5U5!!!!!!!!$J&:*6&-!!!!!!!!$O%253&!!!!!!!!!$T%V6351!!!!!!!!$Y%B*5V1!!!!!!!!$^&:$6&!!!!!!!!!%#%:515)!!!!!!!!%(!!!!!$`````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!5!!!!!!!!!!!`````Q!!!!!!!!$U!!!!!!!!!!$`````!!!!!!!!!1A!!!!!!!!!!0````]!!!!!!!!"%!!!!!!!!!!!`````Q!!!!!!!!)%!!!!!!!!!!$`````!!!!!!!!!AQ!!!!!!!!!!P````]!!!!!!!!#/!!!!!!!!!!!`````Q!!!!!!!!*1!!!!!!!!!!$`````!!!!!!!!!K!!!!!!!!!!!0````]!!!!!!!!#M!!!!!!!!!!"`````Q!!!!!!!!2E!!!!!!!!!!,`````!!!!!!!!"HQ!!!!!!!!!"0````]!!!!!!!!)7!!!!!!!!!!(`````Q!!!!!!!!BI!!!!!!!!!!D`````!!!!!!!!#(A!!!!!!!!!#@````]!!!!!!!!)C!!!!!!!!!!+`````Q!!!!!!!!C9!!!!!!!!!!$`````!!!!!!!!#+A!!!!!!!!!!0````]!!!!!!!!)Q!!!!!!!!!!!`````Q!!!!!!!!D5!!!!!!!!!!$`````!!!!!!!!#6A!!!!!!!!!!0````]!!!!!!!!,8!!!!!!!!!!!`````Q!!!!!!!!^A!!!!!!!!!!$`````!!!!!!!!%,!!!!!!!!!!!0````]!!!!!!!!:`!!!!!!!!!!!`````Q!!!!!!!"I%!!!!!!!!!!$`````!!!!!!!!'AQ!!!!!!!!!!0````]!!!!!!!!;(!!!!!!!!!!!`````Q!!!!!!!"K%!!!!!!!!!!$`````!!!!!!!!'IQ!!!!!!!!!!0````]!!!!!!!!A7!!!!!!!!!!!`````Q!!!!!!!#"A!!!!!!!!!!$`````!!!!!!!!)'A!!!!!!!!!!0````]!!!!!!!!AF!!!!!!!!!#!`````Q!!!!!!!#+Y!!!!!"^$5UUN5X2B>'FD,6:B=GFB9GRF,5VB<G&H:8)O9X2M!!!!!! + &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!#@M5F.31QU+!!.-6E.$4%*76Q!!)WA!!!3%!!!!)!!!)UA!!!"+!!!!!C&*4EEN5X2B>'FD,6:B=GFB9GRF,6.V=("P=H1O<(:M;7)D1V..,6.U982J9SV798*J97*M:3V.97ZB:W6S,GRW9WRB=X-!!!!!!+!8!)!!!$!!!#A!"!!!!!!%!!-!0!#]!"^!!!)!!!!!!1!"!!<`````!!!!!!!!!!!!!!!!&XGE(>U;5EW@7GKL]-E'>Q!!!!Q!!!!1!!!!!#PUZ9(2;YZ$K5R;:3G3P[\5(9T:DQ#S"/G!#:DM_%*_!!!1!!!!!!![ZIJ%[C+D1:R]MG0@<KX=!1!!!0`````5(9T:DQ#S"/G!#:DM_%*_!!!!%(L=A_\VAW)L/HFM6(E=\.Y!!!!%!!!!!!!!!/Y!!5R71U-!!!!$!!*735R#!!!!!&"53$!!!!!&!!%!!1!!!!!#!!*735.$!!!!!!)54'&C6EF&6SV$<WZG;7=O<(:M;7)+1W^O:GFH,G.U<&"53$!!!!!C!!%!"A!!!!!/4'&C6EF&6SV$<WZG;7=+1W^O:GFH,G.U<!!!!!!!!5)!!!!!!!*735.$!!!!!!)54'&C6EF&6SV$<WZG;7=O<(:M;7).4'FO:62P;W6O,G.U<!"16%AQ!!!!*1!"!!9!!!!!$ERB9F:*26=N1W^O:GFH$5RJ<G65<WNF<CZD>'Q!!!!!!!*#!!!)!!!$!!!!!!!#!!-!!!!!!#A!!!!C?*RDY'2A;7#YQ!$%D!R-$6R!&J-'!ZBG_-$!Q-(!!!#%/A?(!!!!&!!!!"2YH'0A9/"FY%#"$!!$A1"/!!!!4!!!!2BYH'.AQ!4`A1")-4)Q-(U$UGRIYG!;RK9GQ'5O,LOAYMR!T!,%L$"BI,PX!'EGE$B5D3D9/QR-$Y$Y",IZ`&$[!:)9!,D0+6Q!!!!-!!&73524!!!!!!!$!!!"LQ!!!Z2YH.P!S-#1;7RBRM$%Q-!-:)MT.$!EZ[?E]D)!_1Q1I!.D5!!#I/:JI9E<(DC="A2[`0)N9(\T'ZZO&R7"ZBI6#;:3E7Y@&:&/(R774B;6&X`_```@@)4H=,>(TH&('Z$;<A[A_(%8&1Y1"UCTA/D`A2EA6;DGS81#:9'U"*)'O)%I^A=!68%U6#ATF,!9(IA[@,T"B"(C5*A4IL#ZFXDTG^^Q!$UF=0!B3X?D"J$@/R&%!I6Y/E-Y*)[\=/C)!@G-*U!'>P,!@-U"^U]9S)!3&9&/%Z"&,)QQC\L:DDNIA-0"112#:5#I#AB6!+*WA&VQB#0O-$T]V\[_NYM63,-BR9E$%$?!'%SI7)_"E9%2T'2E7!N6;Q.E-U(&9(%,9CN!AYW2Q2[OZT:58A0*(">'G"[%OGIE>T#"T7"E_--!-Q^I(V20!^4>)$&@I.A"+$M%S*Y!:5=$W2_A\#1A7Q$+TA3S$2AB\$QI'WQ:!W\;W>`&&3G9Q0E#FD55A4AZN]$!1+_[/E!HWF!H/":%JDL:G.D&[DD6[I4JB.5#V3C!V"5EF_&4"A#`&JT*!!!!!B1!!!-)?*RT9'"AS$3W-%NA9G"A:G2A%'>I9%D/4UFF1!)HG"BQAN$A],$G.S\>,CI2H3YK$NU_+D'>0CIW1,9&E$<J:ODG".)MH3QK,`\]``_`^1$`F!0]L4?"/I&;,(I^7)#S&E">*MU(7=!;(&B;$Z1)>BNUMQ(.-!"CD?:D,+^&DA-:)0O!N!').DT1?;S<M`6EC83X:4?`Z=(/Q\6M10U'H;?<D\.IHA$J?]U&6XS\^8;>*L_]#^"7NGZ_:!=V`W!M^1"K!6LCX8K\`A(162JA2Z:;>)=!(?D%!D3+!_1>:%='M<2?+F(K.OI7[QR2E1&C%:!D69''A<SX\5$T%:?Y_/D9QU!(C%">,1.WS#8$<^W7L@_"LL<PVL?]WHE:[/I=I!GP1;Z_"4,I.4^=]?X8T/ZO1&@6=83R7<'8,HH^M@53`Z2$*;T]WQ[^HA.U(A@%?2;^DC$+J+'3B9&`[M''+B"VK//#Q1G$5S8=)/>]9(S:#@1MU(-/P2[]1#_!)MKG.Z!8;+..NQ.PNS=PFFASBGNB17BBA7BB[@:EQ>3S\=1/9"JCY(=^_0,HP```A=SVL_`N9A<3D%BJRA')G2FYQ7+AJ+5.&6>CE)#,\9'+&1.&G+"C&[''A.AM4!CT1-$:X]560=W#F#M#=8*OA9'"8H6VA%[UI5ZQ,)B-><)RM9P6=;L6#>-*KQ7K!1#U\?=0!!!"V1!!!P"YH(.A9'$).,9Q%W"C9'"G:'!1:WBA3-Z0376!!FO9'(##Y0#QZD=_X4%K-:UR+B\>.3I*H45K,E#W!Z#W[79'ECS>,#IP`PT``\`T7/MX`N:YI#W^TCS>,CI/T=>:Q+K+76K`F1BWG`7[A92.OPE[@61M8H->>V'R!.FB?,+<P@6!Z[%3FG["<C(,CS6GP5!:I%I>)+U$J(G!JH!!6<-Q!V5@:V%";1,<W(K!P`5^E.-.MA6I2AFL.U0T!:!F"NV!+Y$7;,3?L0-#MEXYZ2N!WLIZA:)MH4T),FY,%A=K;4\)!N2BUAX5$4-E2%8$KR.)N&[K0QKW"/CL8A_1-LDH(%!5"]B5I!M&'%%O",K9%?*3&JB,14;6OC.J"VJIURP)!D4=JMO"J=/2"3DHU?P"#Z4T!-KZ."]%-6W[(5!53B#8=(:_;$\C%R=@@2CCBQ7BBQ7CBQ6:$T#18![]0AO*T\7P\_VC!^+-3((M!-2:1"'1'#AJX)++ZS+*O5!V^$!9A-6!?#J581G1RQ26VQV6"W,PB\*TE-T2A/K*1"+<B?1/%($W>X&&4Z]AN1J!H&S18+:882WA%WWI%RQ,)F/><%TM9H7=;H8#>-*K!?!QQC1!!!!!!!!-&Q#!"1!!"$%X,D!!!!!!$"=!A!!!!!1R.SYQ!!!!!!Q8!)!&!!!%-4=O-!!!!!!-&Q#!!!!!"$%X,D!!!!!!$"=!A!5!!!1R.SYQ!!!!!"1"!!!!^6=VAHEGIIQO=V*/"EEZH1!!!!U!!!!!!!!!!!!!!!!!!!!!!!!!A0````_!!!!"DK2/Y:#GU*'-J6<BAE23E:R%4J'!!!!"`````Y!!!!'!!!!"A!,!!9!)-!'!)!Q"A)!$!9!!!Q'!9!Y"A(A_!9"_`A'!@`Y"A(`_!9"``A'!@`Y"A(`_!9$``_'!(`XZA!`XY9!$X]'!!(]"A!!]!9!!!!(`````!!!#!.X>X>X>X>X>X>X>X>X>X>X4-T-T-T-T-T-T-T-T-T-^UT0`]`0T0T-`-``T``-T0>-`-T0T]T`T`T]T-`-`-TX4-`]T]`-`0T]`0`0`]T-^UT-T]T]T0T-`0T0T]T]T0>-``T-`-T]T0T0`]`-`-TX4-T-T-T-T-T-T-T-T-T-^X>X>X>X>X>X>X>X>X>X>X>!!!!!!!!!!!!!!!!!!!!X1!!!!!!!!!!!!!!!!!!!.U!!!!!!!!+KK!!!!!!!!$>!!!!!!!+IT-[I!!!!!!!X1!!!!!+IT-T-TKA!!!!!.U!!!!+IT-T-T-T/K!!!!$>!!!!#K-T-T-T-T_A!!!!X1!!!!KKIT-T-T``I!!!!.U!!!!+KKKD-T```[!!!!$>!!!!#KKKKKL```_A!!!!X1!!!!KKKKKP````I!!!!.U!!!!+KKKKL````[!!!!$>!!!!#KKKKK````_A!!!!X1!!!!KKKKKP````I!!!!.U!!!!+KKKKL````[!!!!$>!!!!#KKKKK````KP`Q!!X1!!!!#KKKKP``KK````!.U!!!!!!+KKL`KK````!!$>!!!!!!!!KKKD````]!!!X1!!!!!!!!#D````]!!!!.U!!!!!!!!!!!``]!!!!!$>!!!!!!!!!!!!!!!!!!!!X>X>X>X>X>X>X>X>X>X>X>!!!%!(N\?XN\?XN\?XN\?XN\?XN\?XN\?XN\?XN\?XN\?XN\?Q]0$Q]0$Q]0$Q]0$Q]0$Q]0$Q]0$Q]0$Q]0$Q]0$XN\$Q]0````$`]0`Q]0`Q]0$`]0$````Q````]0$Q]0?XM0$`]0$Q]0`Q``$Q```Q```Q``$Q]0$`]0$`]0$Q^\?Q]0$```$Q``$`]0$`]0`Q``$`]0``]0````$Q]0$XN\$Q]0$Q``$Q``$Q]0`Q]0$`]0`Q]0`Q``$Q``$Q]0?XM0$````Q]0$`]0$Q``$Q]0`Q]0````$`]0$`]0$Q^\?Q]0$Q]0$Q]0$Q]0$Q]0$Q]0$Q]0$Q]0$Q]0$Q]0$XN\?XN\?XN\?XN\?XN\?XN\?XN\?XN\?XN\?XN\?XN\?XM!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"\?Q!!!!!!!!!!!!!!!!!!#!A!!!!!!!!!!!!!!!!!!(N\!!!!!!!!!!!!!!!!#'1[:'1)!!!!!!!!!!!!!!!!?XM!!!!!!!!!!!!!#'1[$Q]0$W2E#!!!!!!!!!!!!!"\?Q!!!!!!!!!!#'1[$Q]0$Q]0$Q^E:!A!!!!!!!!!!(N\!!!!!!!!!'1[$Q]0$Q]0$Q]0$Q]0:'1!!!!!!!!!?XM!!!!!!!!!/DI0$Q]0$Q]0$Q]0$Q`_:!!!!!!!!!"\?Q!!!!!!!!![:'1[$Q]0$Q]0$Q`_`PY[!!!!!!!!!(N\!!!!!!!!!$JE:'2E/A]0$Q`_`P\_`DI!!!!!!!!!?XM!!!!!!!!!/G2E:'2E:$JE`P\_`P\_/A!!!!!!!!"\?Q!!!!!!!!![:'2E:'2E:0\_`P\_`PY[!!!!!!!!!(N\!!!!!!!!!$JE:'2E:'2E`P\_`P\_`DI!!!!!!!!!?XM!!!!!!!!!/G2E:'2E:'4_`P\_`P\_/A!!!!!!!!"\?Q!!!!!!!!![:'2E:'2E:0\_`P\_`PY[!!!!!!!!!(N\!!!!!!!!!$JE:'2E:'2E`P\_`P\_`DI!!!!!!!!!?XM!!!!!!!!!:'2E:'2E:'4_`P\_`PZE:+SML!!!!!"\?Q!!!!!!!!!!/DJE:'2E:0\_`PZE:$KML+SML+Q!!(N\!!!!!!!!!!!!!$JE:'2E`PZE:$KML+SML+Q!!!!!?XM!!!!!!!!!!!!!!!![:'2E:!_ML+SML+SM!!!!!!"\?Q!!!!!!!!!!!!!!!!!!/A_ML+SML+SM!!!!!!!!!(N\!!!!!!!!!!!!!!!!!!!!!!#ML+SM!!!!!!!!!!!!?XM!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"\?XN\?XN\?XN\?XN\?XN\?XN\?XN\?XN\?XN\?XN\?XM!!!&+!!&'5%B1!!!!!A!#6%2$1Q!!!!)54'&C6EF&6SV$<WZG;7=O<(:M;7)+1W^O:GFH,G.U<&"53$!!!!!C!!%!"A!!!!!/4'&C6EF&6SV$<WZG;7=+1W^O:GFH,G.U<!!!!!!!!%)!!!!!!!!!!1!!!%V16%AQ!!!!,!!"!!9!!!!!$ERB9F:*26=N1W^O:GFH&%RB9F:*26=N1W^O:GFH,GRW<'FC!!*52%.$!!!!!!)54'&C6EF&6SV$<WZG;7=O<(:M;7).4'FO:62P;W6O,G.U<!"16%AQ!!!!*1!"!!9!!!!!$ERB9F:*26=N1W^O:GFH$5RJ<G65<WNF<CZD>'Q!!!!!!!"#!!!)!!!!!!%!!!&)5&2)-!!!!#Q!!1!'!!!!!!Z-97*73568,5.P<G:J:R2-97*73568,5.P<G:J:SZM>GRJ9A!$!!!!!!F1!!!>RHC=T6FN<&08'8\0^5VSH4D*N9-*,EZM*T=G>!G+;%IBWQIDJI8Q5>LQM<:4WR!\Y$7*C_/E]'-F5[RIG6:NUS<W)68KDQVJ0S:_Z%?VF7Y1'=LG([X1.+HNJ,2I-%W>.C;6U4&O\NZTLO`X4?RF6+ID(<HO_X(/]T\H?=]Z!,1MC/OY*8B&"C,?RC`\:+B.&AF!I6O!UC=_#_*B]B]A;U*%BBX#9@%$<IG%:@!FCX'B*T%(N^";?5?:]PQ"`CV_B+<69AC$V=L1G#`#D`Q$UK)IH1^,=V6;W#;)C+_3*?[L5O3/]'I_AREBXUF(@T>:!J+)]8S_\?$1?#IPU6_^X5+)R@4+)#;+^6FJ=1.'R.Q,,#4*?DYB-VJ)Q*#>-$]`<TDZ6;=YG]:7^0&]!M"8E?Q+0I&%M76#7ORC0L8-BW42JZ1H%6H[!:U\><+\.C7+)LKCX[H3EKGPZC@P9(\8LV^(0RR,@C>E7#-N\B2#QE@*^[PKH]S`!12)Y8F")=L0U0]\`A/U$-QWA*71CK3DDYC$_*_$-DS9,X)P!%6971,A-K3(F9,83P%F6IL(7#G]C4E2D&L]P%QN%HSBL;6`>()CF]J'-S02Y>'BC9HI3^HUV&!O&5U/Z9;=6@JSIBB[B#*!ET''1$0QX"DJ-C/?A80HTC%)/"KOD[*LM\3I_T8B=E\C=D45EQ<K.+O"XH:%,`(JI?-5Q9Y_4C/OBR&X0RX*/0P_3Y0%GZ(%@N%_21O*(`Y-3,Q&O@7+H=3>X"'S<16#0K)['34GDC!URUHH#DZ<U??-G=39IR.^NJ5H]49(C;GPD=2HTZ[V_'%:_H13]Y3I*-[`K^R4\F%KHV2_T@W44$%K?ZD(!N9$.5=EG)4-9**>G-2#X>]M4^W2F3M1L1;6PO+2I7R[[.BIKPOR^'BK`^",NJ*AFIO9:4KU76KMMX#W'C[3O*<F8V;MV#TZ'%TX]HG*`G+O]35<DY/9=-%IVBV8X"'`"=3PYWHI?!93H`L_LJ,:%Z`VF#Q7E-5;8H!*;4.DQYPEFM@L;)6YV6/9_D0D)_HD<G#2S@M-&JF;(6DE:2?Q?!/M*'Z]K2CDKPA0D(C*3!QKDV<UQ73RG6#E%O=D!V;I?MN!R:7AKN[@'MNE4^MQ'J3*K#JS9D%SI+)$=+W58S^6!00\$VAKJ@Q61,E(XAL3]\T5"AZR)>B^P$<NZ@(P$2)NJ\VE$<K;SU!`<_+ESWEP#:LKI#FQF;<!0.0?>D9_T=;(W0A.89@*/IM/;^-V[T"ZA'*V8W79L(?4Y4$-E_\F*:7%\4)-]RCW1-)L_,49:2BTB.'HO[Q-EV;($&0@MD*-)HJ&FB8DNZ2@Q65ST-29J?147"4-R\2F"FHY9TBI*?Q:7I4(72'#WH\B9#XOVU-6H#+]_T0*^%A[F>ROKY60*N.)04T`"$5/=0D8"%WYO.;^')K/`IA[&<,EC29C+B:_]/?DT#2'2\'NB/?IU%:D/UW4#D8&M<TJ`R`6'T%7_%XV3(35)>?I+UU1AHLB9=2VD>1ESERCV%20E8,/RG+K6'\[E^7<[GP%XP7G31;?7K0+1$8+Q/RT&+?3X6/I!BL*AECSP:"D*0.K*(O7EMT2PT9C(@:5J)K&NKJ^[@(5B)VE"W8SN742&]KC*/_5TL>+=\UUMIAWGW!DGU)6-`R1*M]FCXQ)<QSV*B'NQ45]!"X;VF0]</P>P8M8+Y?DXO#_R809Y0!8<X=_V\'J:]4AQ00)!?S;(B9VSB"IQ02B;-")&SZ=Q%AY-AZQVB)UI%G5G=4IK*@AG,.;KCG6B"A>L;:G2L[ATI:DM_H2'>GQ_NE-6T[<9=NM5/C'=$9PGXK0"_KB&?N3^NT`OLHXJ&83V=2H/3.U#E-@F2:<=;'FTE',XA/WSYC,_I[A+EX9\T(>M"EJ;[7"3T-^LH=8L^:>GG(9]&6:<%NY1O]OXF*XC:HTO@KE^?\C,878G$80\?77^X5%ZL$FLL52NM!J.]SNB^2@G$%`I7)OY,G,85?@F%F'W_!;7J:7@N,FW0-XV#OF\,&(0;![DTVV-MHC7P$OU;D'&'DS;DR("+!7F`$?_X`#*5T/PG\I+VXAH;MK8>HXNUX@LZC_8T<R&0.-K(GGV$Q8V6\&YU*J(MRQ8`)A3+@5X6FH/]9V1\_L!FW\>MWE103)D<_9$TOH<5>M_FE0DZ@@8`0G7F^7;_WF:_T"_$4=`(YA3*]FJ"$5"A.LN;^L!]X;VW:$^B`37,%8:8]'*KWS``#SMH_E1NGP0J2Z-48OIPN<8(1`Q#4!JPN<0RP>R\NUK0>TI`N^[GQ_*\L`R>8K`L3,\N>;>(_\1`>JU4>8I0M\H,I@1C8L2=[7V@WP/(5`"%H$VV8$>TJUP^W=T^7HX[(\\>9]S_J_QK<\1>RG7_&U?>W@=^(^/EXXET,:L>[W><$-NWUSI.XA4,@NSH4@^;J\6);X=,PC`SZ>M66&W]W3VGB8`-*^\T5@SH#:SM3!*B/K6!EQA.G@M@%$2>AGTN.-*JAY7W3C8I9LS$K5@*^$]B-62.5FP\!J6$/='2N,D?>K*F,$O82GX0.C[D1`FMGG>"'!NZ%#DVJ%1&'5WV#(U=K)A!^]F9K!;FJ/"(!W6^7G[D&*5C0/:PXK:_-CE-P.ZJB.EO"X,M]AF&D7\='+9*7EXZOX2UL>(D[5J(A5YD%FXA<_DX%&Y0X9=0GBS;6_L_J3DV?GG^`^(`PLMT*J4R;L7).6<G#$$:*VFKV!/FQ<,(V##:?^P.-HF.Q*ZUNAX(F+#;'!>W(O=K?5;==J"8P4BE3R(O.^1:WCD]:LA3L9!(8ID1S6PE@=7&!,V6B;/O]9&3SNN)L0S1+T+1<54?PMD;ET51TCB:W9$HIBX)V>Y#OLLRN>HD.\D&?<:8L;%T*Z-&GM$AEI;)/G'A6*+]2*(SMGJQ(6B3E#JP=3^3UC<(FS>8UP#?N8?2.1]F`=8D<=47^7<HKD=N-`W^]34JK@>H?I'[."?UM)'X9Z]Z[\LNIV9EPSX]+UX_9D@$1@)RR!I=VX].$O(JQ#4_@"N`/3^R;G0'![$!A@8*E5[0-9`4.3`.:FDYLK(H8RB^*('*13SEI'YCY-@U;'9+)`])[Y"YPF%`9)O]48O#6#:&ALP#<=,PR2`\@6QD\>-`]O?9`=E(Y;%><^&T5I9?I!!!!%!!!!E!!!!!1!!!!!!!!!$!!"1E2)5!!!!!!!!Q!!!')!!!"S?*RD9'$)%Z"A_M>1^Z?"3?!LE#(^FY&:U)`R.Q-$JZ`!93$.+#!*&*<^S]!OK!U7VD[CS]%!";JMD"S3()=&/=!S(#U;$0```_@Y?O1;8-52(TB4::9]BQ1!&'):!!!!!!!!"!!!!!=!!!8(!!!!"Q!!!#&@<GF@4'&T>%NO<X>O4X>O;7ZH4&:$<'&T=U.M>8.U:8)!!!&9&Q#!!!!!!!%!#!!Q`````Q!"!!!!!!%]!!!!#A!/1$,`````"&"B>'A!!!A!-0````]!%E"!!!(`````!!%&4'FO:8-!5!$R!!!!!!!!!!)54'&C6EF&6SV$<WZG;7=O<(:M;7).4'FO:62P;W6O,G.U<!!F!"5!"!>D<WVN:7ZU"X.F9X2J<WY$;W6Z"'VP=G5!!!!51%!!!@````]!!Q:5<WNF<H-!!!Z!)1F.<W2J:GFF:$]!1A$R!!!!!!!!!!)54'&C6EF&6SV$<WZG;7=O<(:M;7)+1W^O:GFH,G.U<!!;1&!!"!!!!!)!"!!&"EVF<7^S?1!!%E"4$5:J<'6$<WZG;7>.98!!&E"4%&:B=GFB9GRF,5:J<'6.98!!!$"!5!!$!!9!"Q!))U.443V4>'&U;7-N6G&S;7&C<'5N47&O97>F=CZM>G.M98.T!!%!#1!!!!!!!!!<4&:$<'&T=V"S;8:B>'6%982B6'FN:8.U97VQ!!!!'2=!A!!!!!!"!!5!"Q!!!1!!YPX2\!!!!!!!!!!G4&:$<'&T=V"S;8:B>'6%982B4'&T>%&Q='RJ:725;7VF=X2B<8!!!!!:&Q#!!!!!!!%!"1!(!!!"!!$C`>(M!!!!!!!!!"J-6E.M98.T5(*J>G&U:52B>'&5?8"F2'6T9Q!!!6A8!)!!!!!!!1!)!$$`````!!%!!!!!!4Q!!!!+!!Z!-P````]%5'&U;!!!#!!Q`````Q!31%!!!@````]!!16-;7ZF=Q"1!0%!!!!!!!!!!B2-97*73568,5.P<G:J:SZM>GRJ9AV-;7ZF6'^L:7YO9X2M!#5!&1!%"W.P<7VF<H1(=W6D>'FP<A.L:8E%<7^S:1!!!"2!1!!"`````Q!$"F2P;W6O=Q!!$E!B#5VP:'FG;76E0Q"#!0%!!!!!!!!!!B2-97*73568,5.P<G:J:SZM>GRJ9AJ$<WZG;7=O9X2M!"J!5!!%!!!!!A!%!!5'476N<X*Z!!!31&-.2GFM:5.P<G:J:UVB=!!71&-16G&S;7&C<'5N2GFM:5VB=!!!-%"1!!-!"A!(!!AD1V..,6.U982J9SV798*J97*M:3V.97ZB:W6S,GRW9WRB=X-!!1!*!!!!!!!!!"Z-6E.M98.T5(*J>G&U:52B>'&%:GRU2'&U96.J?G5!!!!:&Q#!!!!!!!%!"1!$!!!"!!!!!!!6!!!!!!!!!"J-6E.M98.T5(*J>G&U:52B>'&%:GRU2'&U91!!!9%8!)!!!!!!#A!/1$,`````"&"B>'A!!!A!-0````]!%E"!!!(`````!!%&4'FO:8-!5!$R!!!!!!!!!!)54'&C6EF&6SV$<WZG;7=O<(:M;7).4'FO:62P;W6O,G.U<!!F!"5!"!>D<WVN:7ZU"X.F9X2J<WY$;W6Z"'VP=G5!!!!51%!!!@````]!!Q:5<WNF<H-!!!Z!)1F.<W2J:GFF:$]!1A$R!!!!!!!!!!)54'&C6EF&6SV$<WZG;7=O<(:M;7)+1W^O:GFH,G.U<!!;1&!!"!!!!!)!"!!&"EVF<7^S?1!!%E"4$5:J<'6$<WZG;7>.98!!&E"4%&:B=GFB9GRF,5:J<'6.98!!!$"!5!!$!!9!"Q!))U.443V4>'&U;7-N6G&S;7&C<'5N47&O97>F=CZM>G.M98.T!!%!#6"53$!!!!!%!!!!!!!!!!!!!!!!!"=!A!!!!!!"!!1!!!!"!!!!!!!!&Q#!!!!!!!%!"!!!!!%!!!!!!!!!!!!!!!!!'ER71WRB=X.1=GFW982F2'&U962B9E^S:'6S!!!!12=!A!!!!!!#!!5!"Q!!$!"!!!(`````!!!!!1!"!!!!"Q!!!!!!!!!"!!!!!A!!!!-!!!!%!!!!"1!!!!9!!!!!!!!!!!1!%!!6!!!!"!!!!9%!!!!I!!!!!A!!"!!!!!!/!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!C!!!!4"?*SF5]NOUU!50=</ES;%%%)*N(8[!.LC#!%L.FB%6)L5I+B'9=P%(A?LDBX:EYLO_""_CF^AT9*_!))\NEEL23K*]*8'=_??G8-]^RB!"V8T_7^[N!%4HY!CHME->>/%EMS5X,%8]"A$8#"^<D3/W7D9?`P"[);"[YU\`JHPD3I3^DY]Z5((&D\W=">;Q1YH%R[)1MRNY97"?ML0N5E9=4KF-7>1]]GW'+3F8?K(DO>[X(G..`^A,'?*J'O:!WA337-OHR;!Y7K;$]XL.?=3[(`I[H-[["RUOV<FS0.Z#OST+:KG62OSS'-DHROS*"@R&2@@@XX\1@P6>O^>T\!%%ZZNT)(7<$I.)Z(3\H3N`A+CTQ)WZB%B<*`&]>:V'+GX1XJ6=E%*Z9WO0YM&D`41V:0._D4STJDAOM-%1YY#:4C!]B.LF+B:CB?IIG17I,L_'%8TCRK?C(3"BSZK#5-.NV&8:YZ,8)H`[)CZY`"SN<[6J*4,`5W[[T:?L>#F/G38'G4:?VCHG:7JP)]77KLY\.#8$;C(>`#!:L<M"[FM,W`RT<H&GX.$<&URR%&#JS^R\3G^1J'D-WD)SU'2@_Z(+GAY)K5[>L",.S*DD\LR.^;S7&SZL$R+)OWEAM?:N'5=)4^LU>F680E$+!IA;8F[X51&N`!1'X32WXC#@2Q1D11K#@31]HW+-F%`J>R)+A<6.EH1/C',@Q$S:BF@!!!!AQ!"!!)!!Q!%!!!!3!!2!!!!!!!2!0%!Z1!!!&M!%1!!!!!!%1$R!/5!!!"O!"%!!!!!!"%!]1$F!!!!A9!!A!#!!!!2!0%!Z2*.;7.S<X.P:H1A77&):7EA65E347FD=G^T<W:U)&FB3'6J)&6*%EVJ9X*P=W^G>#":95BF;3"631%Q!&*45E-.#A!$4&:$1UR#6F=!!#.I!!!%B!!!!#!!!#.)!!!!!!!!!!!!!!!A!!!!.!!!"'1!!!!=4%F#4A!!!!!!!!&A4&:45A!!!!!!!!&U5F242Q!!!!!!!!')1U.46!!!!!!!!!'=4%FW;1!!!!!!!!'Q1U^/5!!!!!!!!!(%6%UY-!!!!!%!!!(92%:%5Q!!!!!!!!)!4%FE=Q!!!!!!!!)56EF$2!!!!!)!!!)I>G6S=Q!!!!1!!!*E5U.45A!!!!!!!!,)2U.15A!!!!!!!!,=35.04A!!!!!!!!,Q;7.M.!!!!!!!!!-%;7.M/!!!!!!!!!-94%FG=!!!!!!!!!-M2F")9A!!!!!!!!.!2F"421!!!!!!!!.56F"%5!!!!!!!!!.I4%FC:!!!!!!!!!.]1E2)9A!!!!!!!!/11E2421!!!!!!!!/E6EF55Q!!!!!!!!/Y2&2)5!!!!!!!!!0-466*2!!!!!!!!!0A3%F46!!!!!!!!!0U6E.55!!!!!!!!!1)2F2"1A!!!!!!!!1=!!!!!0````]!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"1!!!!!!!!!!$`````!!!!!!!!!01!!!!!!!!!!0````]!!!!!!!!"#!!!!!!!!!!!`````Q!!!!!!!!%1!!!!!!!!!!$`````!!!!!!!!!A1!!!!!!!!!!0````]!!!!!!!!#$!!!!!!!!!!#`````Q!!!!!!!!)Y!!!!!!!!!!$`````!!!!!!!!!F!!!!!!!!!!!0````]!!!!!!!!#I!!!!!!!!!!!`````Q!!!!!!!!+Q!!!!!!!!!!(`````!!!!!!!!"'1!!!!!!!!!!P````]!!!!!!!!'@!!!!!!!!!!%`````Q!!!!!!!!B9!!!!!!!!!!@`````!!!!!!!!#'A!!!!!!!!!#0````]!!!!!!!!)?!!!!!!!!!!*`````Q!!!!!!!!C)!!!!!!!!!!L`````!!!!!!!!#*A!!!!!!!!!!0````]!!!!!!!!)K!!!!!!!!!!!`````Q!!!!!!!!D!!!!!!!!!!!$`````!!!!!!!!#.1!!!!!!!!!!0````]!!!!!!!!*7!!!!!!!!!!!`````Q!!!!!!!!N=!!!!!!!!!!$`````!!!!!!!!$W!!!!!!!!!!!0````]!!!!!!!!1M!!!!!!!!!!!`````Q!!!!!!!"I%!!!!!!!!!!$`````!!!!!!!!'AQ!!!!!!!!!!0````]!!!!!!!!;&!!!!!!!!!!!`````Q!!!!!!!"IE!!!!!!!!!!$`````!!!!!!!!'IQ!!!!!!!!!!0````]!!!!!!!!;F!!!!!!!!!!!`````Q!!!!!!!#"A!!!!!!!!!!$`````!!!!!!!!)'A!!!!!!!!!!0````]!!!!!!!!A=!!!!!!!!!!!`````Q!!!!!!!##=!!!!!!!!!)$`````!!!!!!!!)M!!!!!!(U.443V4>'&U;7-N6G&S;7&C<'5N47&O97>F=CZD>'Q!!!!! @@ -153,13 +153,13 @@ 794640 - &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)!!!!!$1!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!"*!)1V,:8EA5G6Q<'&D:71`!("!=!!?!!"()5F/33V4>'&U;7-N6G&S;7&C<'5N5X6Q='^S>#ZM>GRJ9C.$5UUN5X2B>'FD,6:B=GFB9GRF,5VB<G&H:8)O<(:D<'&T=Q!@1V..,6.U982J9SV798*J97*M:3V.97ZB:W6S)'^V>!!?1#%:2G^S9W5A2'6G986M>#"4:8.T;7^O0SB'+1!A1&!!!Q!!!!%!!B.F=H*P=C"J<C!I<G]A:8*S<X)J!""!-0````](1W^O>'6O>!!71$$`````$6:B=GFB9GRF)%ZB<75!=%"Q!"Y!!%=B35Z*,6.U982J9SV798*J97*M:3V4>8"Q<X*U,GRW<'FC)U.443V4>'&U;7-N6G&S;7&C<'5N47&O97>F=CZM>G.M98.T!"Z$5UUN5X2B>'FD,6:B=GFB9GRF,5VB<G&H:8)A;7Y!!'%!]!!-!!-!"!!&!!9!"!!%!!=!"!!)!!E!#A!,!Q!!?!!!$1A!!!!!!!!*!!!!$1M!!!!!!!!!!!!!#A!!!!!!!!!)!!!"%A!!!B!!!!!3!!!.!!!!$!!!!!!!!!!!!!!"!!Q!!!!! + &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!*S!!!!$Q!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!"*!)1V,:8EA5G6Q<'&D:71`!("!=!!?!!"()5F/33V4>'&U;7-N6G&S;7&C<'5N5X6Q='^S>#ZM>GRJ9C.$5UUN5X2B>'FD,6:B=GFB9GRF,5VB<G&H:8)O<(:D<'&T=Q!@1V..,6.U982J9SV798*J97*M:3V.97ZB:W6S)'^V>!!?1#%:2G^S9W5A2'6G986M>#"4:8.T;7^O0SB'+1!A1&!!!Q!!!!%!!B.F=H*P=C"J<C!I<G]A:8*S<X)J!""!-0````](1W^O>'6O>!!71$$`````$6:B=GFB9GRF)%ZB<75!'E!Q`````R&1=G6G:8*S:71A5W6D>'FP<A"9!0(E:KUR!!!!!C&*4EEN5X2B>'FD,6:B=GFB9GRF,6.V=("P=H1O<(:M;7)68U2F:CV*<GEN6G&S;7&C<'5O9X2M!"B!5!!#!!I!#QB798*J97*M:1!!=%"Q!"Y!!%=B35Z*,6.U982J9SV798*J97*M:3V4>8"Q<X*U,GRW<'FC)U.443V4>'&U;7-N6G&S;7&C<'5N47&O97>F=CZM>G.M98.T!"Z$5UUN5X2B>'FD,6:B=GFB9GRF,5VB<G&H:8)A;7Y!!'%!]!!-!!-!"!!&!!9!"!!%!!=!"!!)!!E!$!!.!Q!!?!!!$1A!!!!!!!!*!!!!$1M!!!!!!!!!!!!!#A!!!!!!!!!)!!!"%A!!!"!!!!!3!!!.!!!!$!!!!!!!!!!!!!!"!!Y!!!!! -1 0 true 1 1 - 8400912 + 8388624 &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!'K!!!!#1!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!("!=!!?!!"()5F/33V4>'&U;7-N6G&S;7&C<'5N5X6Q='^S>#ZM>GRJ9C.$5UUN5X2B>'FD,6:B=GFB9GRF,5VB<G&H:8)O<(:D<'&T=Q!@1V..,6.U982J9SV798*J97*M:3V.97ZB:W6S)'^V>!!A1&!!!Q!!!!%!!B.F=H*P=C"J<C!I<G]A:8*S<X)J!("!=!!?!!"()5F/33V4>'&U;7-N6G&S;7&C<'5N5X6Q='^S>#ZM>GRJ9C.$5UUN5X2B>'FD,6:B=GFB9GRF,5VB<G&H:8)O<(:D<'&T=Q!?1V..,6.U982J9SV798*J97*M:3V.97ZB:W6S)'FO!!"B!0!!$!!$!!1!"!!&!!1!"!!%!!1!"A!%!!1!"Q-!!(A!!!U)!!!!!!!!!!!!!!U,!!!!!!!!!!!!!!!!!!!!!!!!#A!!!!!!!!!!!!!!%A!!$1!!!!Q!!!!!!!!!!!!!!1!)!!!!!! @@ -171,22 +171,22 @@ 8400912 - &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!)1!!!!$A!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!%%!Q`````Q>$<WZU:7ZU!"*!)1V,:8EA5G6Q<'&D:71`!("!=!!?!!"()5F/33V4>'&U;7-N6G&S;7&C<'5N5X6Q='^S>#ZM>GRJ9C.$5UUN5X2B>'FD,6:B=GFB9GRF,5VB<G&H:8)O<(:D<'&T=Q!@1V..,6.U982J9SV798*J97*M:3V.97ZB:W6S)'^V>!!%!!!!(E!B'5:P=G.F)%2F:G&V<(1A5W6T=WFP<D]I2CE!)%"1!!-!!!!"!!)4:8*S<X)A;7YA+'ZP)'6S=G^S+1!11$$`````"U2F:G&V<(1!&E!Q`````QV798*J97*M:3"/97VF!("!=!!?!!"()5F/33V4>'&U;7-N6G&S;7&C<'5N5X6Q='^S>#ZM>GRJ9C.$5UUN5X2B>'FD,6:B=GFB9GRF,5VB<G&H:8)O<(:D<'&T=Q!?1V..,6.U982J9SV798*J97*M:3V.97ZB:W6S)'FO!!"B!0!!$!!$!!1!"1!'!!=!"Q!)!!=!#1!+!!M!$!-!!(A!!!U)!!!.#1!!#1!!!!U,!!!!!!!!!!!!!!I!!!!!!!!!#!!!!1I!!!)1!!!!%!!!$1!!!!Q!!!!!!!!!!!!!!1!.!!!!!! + &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!+7!!!!%1!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!%%!Q`````Q>$<WZU:7ZU!""!)1J,:8EA2G^V<G1`!!"Q1(!!(A!!2S&*4EEN5X2B>'FD,6:B=GFB9GRF,6.V=("P=H1O<(:M;7)D1V..,6.U982J9SV798*J97*M:3V.97ZB:W6S,GRW9WRB=X-!(U.443V4>'&U;7-N6G&S;7&C<'5N47&O97>F=C"P>81!"!!!!":!-0````]-5W6D>'FP<C"/97VF!!!?1#%:2G^S9W5A2'6G986M>#"4:8.T;7^O0SB'+1!A1&!!!Q!!!!%!!B.F=H*P=C"J<C!I<G]A:8*S<X)J!""!-0````](2'6G986M>!!71$$`````$6:B=GFB9GRF)%ZB<75!'E!Q`````R&1=G6G:8*S:71A5W6D>'FP<A"9!0(E:KUR!!!!!C&*4EEN5X2B>'FD,6:B=GFB9GRF,6.V=("P=H1O<(:M;7)68U2F:CV*<GEN6G&S;7&C<'5O9X2M!"B!5!!#!!Q!$1B798*J97*M:1!!=%"Q!"Y!!%=B35Z*,6.U982J9SV798*J97*M:3V4>8"Q<X*U,GRW<'FC)U.443V4>'&U;7-N6G&S;7&C<'5N47&O97>F=CZM>G.M98.T!"Z$5UUN5X2B>'FD,6:B=GFB9GRF,5VB<G&H:8)A;7Y!!'%!]!!-!!-!"!!&!!9!"Q!)!!E!"Q!+!!M!$A!0!Q!!?!!!#1!!!!E!!!!*!!!!$1M!!!!!!!!*!!!!#!!!!!!!!!!)!!!##!!!!"!!!!!1!!!.!!!!$!!!!!!!!!!!!!!"!"!!!!!! -1 0 true 1 1 - 8400912 + 8388624 - &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!(#!!!!#A!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!("!=!!?!!"()5F/33V4>'&U;7-N6G&S;7&C<'5N5X6Q='^S>#ZM>GRJ9C.$5UUN5X2B>'FD,6:B=GFB9GRF,5VB<G&H:8)O<(:D<'&T=Q!@1V..,6.U982J9SV798*J97*M:3V.97ZB:W6S)'^V>!!A1&!!!Q!!!!%!!B.F=H*P=C"J<C!I<G]A:8*S<X)J!"B!)2.8=GFU:3"3:7:F=G6O9W5`+%9J!("!=!!?!!"()5F/33V4>'&U;7-N6G&S;7&C<'5N5X6Q='^S>#ZM>GRJ9C.$5UUN5X2B>'FD,6:B=GFB9GRF,5VB<G&H:8)O<(:D<'&T=Q!?1V..,6.U982J9SV798*J97*M:3V.97ZB:W6S)'FO!!"B!0!!$!!$!!1!"!!&!!1!"!!%!!1!"A!(!!1!#!-!!(A!!!E!!!!!!!!!!!!!!!U,!!!!!!!!!!!!!!!!!!!!!!!!#A!!!!A!!!!!!!!!%A!!$1!!!!Q!!!!!!!!!!!!!!1!*!!!!!! + &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!(#!!!!#A!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!("!=!!?!!"()5F/33V4>'&U;7-N6G&S;7&C<'5N5X6Q='^S>#ZM>GRJ9C.$5UUN5X2B>'FD,6:B=GFB9GRF,5VB<G&H:8)O<(:D<'&T=Q!@1V..,6.U982J9SV798*J97*M:3V.97ZB:W6S)'^V>!!A1&!!!Q!!!!%!!B.F=H*P=C"J<C!I<G]A:8*S<X)J!"B!)2.8=GFU:3"3:7:F=G6O9W5`+%9J!("!=!!?!!"()5F/33V4>'&U;7-N6G&S;7&C<'5N5X6Q='^S>#ZM>GRJ9C.$5UUN5X2B>'FD,6:B=GFB9GRF,5VB<G&H:8)O<(:D<'&T=Q!?1V..,6.U982J9SV798*J97*M:3V.97ZB:W6S)'FO!!"B!0!!$!!$!!1!"!!&!!1!"!!%!!1!"A!(!!1!#!-!!(A!!!U)!!!!!!!!!!!!!!U,!!!!!!!!!!!!!!!!!!!!!!!!#A!!!!A!!!!!!!!!%A!!$1!!!!Q!!!!!!!!!!!!!!1!*!!!!!! -1 0 true 1 1 - 1082143248 + 1082130960 &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!'Y!!!!#A!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!("!=!!?!!"()5F/33V4>'&U;7-N6G&S;7&C<'5N5X6Q='^S>#ZM>GRJ9C.$5UUN5X2B>'FD,6:B=GFB9GRF,5VB<G&H:8)O<(:D<'&T=Q!@1V..,6.U982J9SV798*J97*M:3V.97ZB:W6S)'^V>!!A1&!!!Q!!!!%!!B.F=H*P=C"J<C!I<G]A:8*S<X)J!!Z!-P````]%5'&U;!!!=%"Q!"Y!!%=B35Z*,6.U982J9SV798*J97*M:3V4>8"Q<X*U,GRW<'FC)U.443V4>'&U;7-N6G&S;7&C<'5N47&O97>F=CZM>G.M98.T!"Z$5UUN5X2B>'FD,6:B=GFB9GRF,5VB<G&H:8)A;7Y!!'%!]!!-!!-!"!!%!!5!"!!%!!1!"!!'!!1!"Q!)!Q!!?!!!$1A!!!!!!!!!!!!!$1M!!!!!!!!!!!!!!!!!!!!!!!!+!!!!!!!!!"!!!!!3!!!.!!!!$!!!!!!!!!!!!!!"!!E!!!!! diff --git a/INI-Static-Variable-Support/_Support/CSMSVMgr/Initialize.vi b/INI-Static-Variable-Support/_Support/CSMSVMgr/Initialize.vi index 8175001..9f0c07d 100644 Binary files a/INI-Static-Variable-Support/_Support/CSMSVMgr/Initialize.vi and b/INI-Static-Variable-Support/_Support/CSMSVMgr/Initialize.vi differ diff --git a/INI-Static-Variable-Support/_Support/CSMSVMgr/Mark All Temp Variables as Permanent.vi b/INI-Static-Variable-Support/_Support/CSMSVMgr/Mark All Temp Variables as Permanent.vi index 4cca8e5..bd9ca0c 100644 Binary files a/INI-Static-Variable-Support/_Support/CSMSVMgr/Mark All Temp Variables as Permanent.vi and b/INI-Static-Variable-Support/_Support/CSMSVMgr/Mark All Temp Variables as Permanent.vi differ diff --git a/INI-Static-Variable-Support/_Support/CSMSVMgr/Read INI String.vi b/INI-Static-Variable-Support/_Support/CSMSVMgr/Read INI String.vi index 2a2997e..68ad8a2 100644 Binary files a/INI-Static-Variable-Support/_Support/CSMSVMgr/Read INI String.vi and b/INI-Static-Variable-Support/_Support/CSMSVMgr/Read INI String.vi differ diff --git a/INI-Static-Variable-Support/_Support/CSMSVMgr/Restore Variable Value.vi b/INI-Static-Variable-Support/_Support/CSMSVMgr/Restore Variable Value.vi index d3b66d2..bfffb27 100644 Binary files a/INI-Static-Variable-Support/_Support/CSMSVMgr/Restore Variable Value.vi and b/INI-Static-Variable-Support/_Support/CSMSVMgr/Restore Variable Value.vi differ diff --git a/INI-Static-Variable-Support/_Support/CSMSVMgr/Sync to File.vi b/INI-Static-Variable-Support/_Support/CSMSVMgr/Sync to File.vi index 418abd4..99455a4 100644 Binary files a/INI-Static-Variable-Support/_Support/CSMSVMgr/Sync to File.vi and b/INI-Static-Variable-Support/_Support/CSMSVMgr/Sync to File.vi differ diff --git a/INI-Static-Variable-Support/_Support/CSMSVMgr/_Append Variable Source File in Map.vi b/INI-Static-Variable-Support/_Support/CSMSVMgr/_Append Variable Source File in Map.vi index 13c6964..5c732a0 100644 Binary files a/INI-Static-Variable-Support/_Support/CSMSVMgr/_Append Variable Source File in Map.vi and b/INI-Static-Variable-Support/_Support/CSMSVMgr/_Append Variable Source File in Map.vi differ diff --git a/INI-Static-Variable-Support/_Support/CSMSVMgr/_Remove Variable Source File in Map.vi b/INI-Static-Variable-Support/_Support/CSMSVMgr/_Remove Variable Source File in Map.vi index 365c318..f4e1b64 100644 Binary files a/INI-Static-Variable-Support/_Support/CSMSVMgr/_Remove Variable Source File in Map.vi and b/INI-Static-Variable-Support/_Support/CSMSVMgr/_Remove Variable Source File in Map.vi differ diff --git a/INI-Static-Variable-Support/_Support/CSMSVMgr/unload File.vi b/INI-Static-Variable-Support/_Support/CSMSVMgr/unload File.vi index 6530cca..c9f1aff 100644 Binary files a/INI-Static-Variable-Support/_Support/CSMSVMgr/unload File.vi and b/INI-Static-Variable-Support/_Support/CSMSVMgr/unload File.vi differ diff --git a/INI-Static-Variable-Support/_Support/Default Ini Config File.vi b/INI-Static-Variable-Support/_Support/Default Ini Config File.vi index 1abec03..282bd2a 100644 Binary files a/INI-Static-Variable-Support/_Support/Default Ini Config File.vi and b/INI-Static-Variable-Support/_Support/Default Ini Config File.vi differ diff --git a/INI-Static-Variable-Support/_Support/FlagInstance-CSMINIVariable.vi b/INI-Static-Variable-Support/_Support/FlagInstance-CSMINIVariable.vi new file mode 100644 index 0000000..93fb8c7 Binary files /dev/null and b/INI-Static-Variable-Support/_Support/FlagInstance-CSMINIVariable.vi differ diff --git a/INI-Static-Variable-Support/_Support/FlagInstance-Update CSMINIVariable.vi b/INI-Static-Variable-Support/_Support/FlagInstance-Update CSMINIVariable.vi new file mode 100644 index 0000000..53700d0 Binary files /dev/null and b/INI-Static-Variable-Support/_Support/FlagInstance-Update CSMINIVariable.vi differ diff --git a/INI-Static-Variable-Support/_Support/INI-FGV(lvlibp).vi b/INI-Static-Variable-Support/_Support/INI-FGV(lvlibp).vi new file mode 100644 index 0000000..19d354e Binary files /dev/null and b/INI-Static-Variable-Support/_Support/INI-FGV(lvlibp).vi differ diff --git a/INI-Static-Variable-Support/_Support/INI-FGV.vi b/INI-Static-Variable-Support/_Support/INI-FGV.vi index bf60c13..7e1e151 100644 Binary files a/INI-Static-Variable-Support/_Support/INI-FGV.vi and b/INI-Static-Variable-Support/_Support/INI-FGV.vi differ diff --git a/INI-Static-Variable-Support/_Support/Populate String with INI Variable.vi b/INI-Static-Variable-Support/_Support/Populate String with INI Variable.vi index 3f60bc5..3cc3855 100644 Binary files a/INI-Static-Variable-Support/_Support/Populate String with INI Variable.vi and b/INI-Static-Variable-Support/_Support/Populate String with INI Variable.vi differ diff --git a/INI-Static-Variable-Support/_Support/global-csm-ini-db-change-flag.vi b/INI-Static-Variable-Support/_Support/global-csm-ini-db-change-flag.vi deleted file mode 100644 index 9ac8931..0000000 Binary files a/INI-Static-Variable-Support/_Support/global-csm-ini-db-change-flag.vi and /dev/null differ diff --git a/INI-Static-Variable-Support/_Support/instances/_CSM - Read File Logger Configuration - v1.0.vi b/INI-Static-Variable-Support/_Support/instances/_CSM - Read File Logger Configuration - v1.0.vi index 22234ae..f7eea7f 100644 Binary files a/INI-Static-Variable-Support/_Support/instances/_CSM - Read File Logger Configuration - v1.0.vi and b/INI-Static-Variable-Support/_Support/instances/_CSM - Read File Logger Configuration - v1.0.vi differ diff --git a/INI-Static-Variable-Support/_Support/instances/_CSM - Read Log Filter Rules - v1.0.vi b/INI-Static-Variable-Support/_Support/instances/_CSM - Read Log Filter Rules - v1.0.vi index 1b2f51d..071a15a 100644 Binary files a/INI-Static-Variable-Support/_Support/instances/_CSM - Read Log Filter Rules - v1.0.vi and b/INI-Static-Variable-Support/_Support/instances/_CSM - Read Log Filter Rules - v1.0.vi differ diff --git a/README(zh-cn).md b/README(zh-cn).md index 523ada4..1388a5c 100644 --- a/README(zh-cn).md +++ b/README(zh-cn).md @@ -2,103 +2,103 @@ [English](./README.md) | [中文](./README(zh-cn).md) -[![Image](https://www.vipm.io/package/nevstop_lib_csm_ini_static_variable_support/badge.svg?metric=installs)](https://www.vipm.io/package/nevstop_lib_csm_ini_static_variable_support/) -[![Image](https://www.vipm.io/package/nevstop_lib_csm_ini_static_variable_support/badge.svg?metric=stars)](https://www.vipm.io/package/nevstop_lib_csm_ini_static_variable_support/) -[![GitHub all releases](https://img.shields.io/github/downloads/NEVSTOP-LAB/CSM-INI-Static-Variable-Support/total)](https://github.com/NEVSTOP-LAB/CSM-INI-Static-Variable-Support/releases) +[![安装量](https://www.vipm.io/package/nevstop_lib_csm_ini_static_variable_support/badge.svg?metric=installs)](https://www.vipm.io/package/nevstop_lib_csm_ini_static_variable_support/) +[![星标](https://www.vipm.io/package/nevstop_lib_csm_ini_static_variable_support/badge.svg?metric=stars)](https://www.vipm.io/package/nevstop_lib_csm_ini_static_variable_support/) +[![GitHub总下载量](https://img.shields.io/github/downloads/NEVSTOP-LAB/CSM-INI-Static-Variable-Support/total)](https://github.com/NEVSTOP-LAB/CSM-INI-Static-Variable-Support/releases) -配置文件是应用程序必备的功能之一。这个库的目的是为 CSM 提供简单易用的配置文件支持功能,用户可以通过配置文件来配置应用程序,而无需显式读写配置文件。 +配置文件是应用程序开发中不可或缺的组成部分。本库为 CSM 提供简单易用的配置文件支持功能,使用户能够配置应用程序而无需显式读写配置文件。 ## 安装 -您可以通过 VIPM 安装这个库,安装完毕后,可以在 CSM 的 Addon 函数选板中找到这个库的函数。 +通过 VIPM 安装此库。安装完成后,您可以在 CSM 的 Addon 函数选板中找到该库的函数。 -## 设计 +## 架构设计 -CSM INI-Static-Variable-Support 库的设计如下图所示: +CSM INI-Static-Variable-Support 库的架构设计如下图所示: -![image](.github/csm-ini-variable-cache-design.svg) +![架构设计](.github/csm-ini-variable-cache-design.svg) -它的特点有: +主要特点包括: -1. 支持默认的配置文件,这个配置文件会在第一次调用这个库的函数时隐式加载,无需用户显式加载配置文件。 -2. 支持多配置文件,可以通过 Multi-File Support 中的函数来加载多个配置文件。 -3. 在内存中创建一个缓存副本,应用程序实际读取的配置信息来源于缓存副本。 -4. 配置文件和内存副本都是 ini 文件格式,支持节和键值对。 -5. 全局创建了修改标记,能够在读取VI处缓存配置信息,当配置发生修改时才真正再次读取内存副本,效率高。 +1. **默认配置处理**:首次调用库函数时自动加载默认配置文件,无需用户显式加载。 +2. **多文件支持**:通过专用函数支持加载多个配置文件。 +3. **内存缓存**:在内存中维护一个缓存副本,应用程序从该缓存中获取配置信息。 +4. **INI 格式兼容**:配置文件和内存副本均采用标准 INI 格式,支持节和键值对。 +5. **高效缓存机制**:使用全局修改标记优化性能,仅在配置发生修改时才重新读取内存副本。 > [!IMPORTANT] -> **开源声明**: 包含并使用了 [@rcpacini](https://github.com/rcpacini) 的 [LabVIEW-Config](https://github.com/rcpacini/LabVIEW-Config) 的副本。 +> **开源声明**: 本库包含并使用了由 [@rcpacini](https://github.com/rcpacini) 开发的 [LabVIEW-Config](https://github.com/rcpacini/LabVIEW-Config) 的副本。 > [!NOTE] -> 默认配置文件的位置: +> **默认配置文件位置**: > -> - 开发状态:Application Directory 下的第一个 ini 配置文件,没有时默认的配置文件名称为 csm-app.ini -> - 编译后:exe 目录下 exe 同名的 ini 配置文件。(LabVIEW 编译后必然产生这样一个配置文件) +> - 开发状态:Application Directory 中找到的第一个 INI 配置文件。若不存在配置文件,则默认为 `csm-app.ini`。 +> - 编译后:可执行文件所在目录中与可执行文件同名的 INI 配置文件(LabVIEW 编译后会自动生成此文件)。 > [!NOTE] -> 多配置文件的场景: +> **多文件配置场景**: > -> - 加载时,后加载的配置文件会覆盖前加载的配置文件中的相同配置项。 -> - 保存缓存到文件时,会将更改保存到后加载的配置文件中。 +> - 加载多个文件时,后加载的文件会覆盖先前加载文件中的相同配置项。 +> - 将缓存更改保存到文件时,修改会保存到最后加载的配置文件中。 > [!WARNING] -> 请注意,由于这个库使用一个全局的缓存修改标志,频繁的配置信息修改会导致读取VI处的缓存机制失效,因此这个库不适合频繁修改配置信息的场景。 +> 请注意,由于本库使用全局缓存修改标志,频繁的配置更改会降低读取 VI 中缓存机制的有效性。因此,本库不建议用于需要频繁修改配置的场景。 ## 应用场景 -### 作为 CSM 的参数被解析后使用 +### CSM 可解析参数 -为 CSM 提供 `${section.variable:defaultValue}` 的支持,直接使用在 CSM 发送的文本消息中。 +为 CSM 提供 `${section.variable:defaultValue}` 语法支持,可直接在 CSM 发送的文本消息中使用。 > [!TIP] > -> - section 可以缺省,默认情况下使用 SectionName=LabVIEW 的配置段。 -> - defaultValue 可以缺省,默认为 ""。 +> - section 参数为可选。省略时,使用默认配置段 `SectionName=LabVIEW`。 +> - 默认值也为可选,未指定时默认为空字符串("")。 -![image](.github/1.png) +![示例](.github/1.png) -### 通过提供 prototype 载入对应的配置 +### 基于原型的配置加载 -通过提供 prototype 载入对应的配置。既可以从 section 中载入,也可以从 key 中载入。 +通过提供原型结构加载配置。您可以从整个节或特定键加载配置。 -![image](.github/2.png) +![示例](.github/2.png) -### 固化 CSM API 参数 +### 固定 CSM API 参数 -提供了固化 CSM API 参数的功能。在这个场景下,CSM API 的参数优先级是:CSM API 参数 > 配置文件参数 > 默认 Constant 参数。例如示例中,很容易将串口初始化的参数固化在配置文件中。 +提供固定 CSM API 参数的功能,具有明确的优先级层次:CSM API 参数 > 配置文件参数 > 默认常量参数。例如,这使得将串口初始化参数固定在配置文件中变得非常简单。 -- 初始化时,如果发送了参数,就会使用发送的参数; -- 如果没有发送参数,就会使用配置文件中的参数; -- 如果配置文件中没有参数,就会使用默认的 Constant 参数; -- 参数都可以部分提供,缺省的参数会使用下一级优先级的配置信息。 +- 初始化时,显式发送的参数具有最高优先级。 +- 若未发送参数,则使用配置文件中的参数。 +- 在没有配置文件参数的情况下,应用默认常量参数。 +- 参数可以部分指定,缺失的值会自动使用下一优先级的配置信息填充。 -![image](.github/3.png) +![示例](.github/3.png) -### 多文件的配置系统 +### 多文件配置系统 -通过多文件的配置系统,可以实现分布式的配置文件系统。 +利用多文件配置功能,可实现分布式配置文件系统。 -![image](.github/4.png) +![示例](.github/4.png) -### 通过[__include]实现配置文件的引用 +### 使用 [__include] 引用配置文件 -[__include] 可以实现配置文件的引用。这个功能可以实现配置文件的分离和引用。被引用的配置文件相当于多文件的场景下提前载入。 +`[__include]` 节支持引用其他配置文件,便于实现模块化和可重用的配置设置。被引用的文件会被预加载,遵循与多文件场景相同的行为。 > [!TIP] > -> - 注意,引用可能造成配置文件的循环引用,导致死循环。内部导入时,会保存载入的配置文件列表,当第二次载入同一个配置文件时,将忽略载入。 +> - 请注意避免循环依赖,否则可能导致无限循环。库会维护已加载配置文件的记录,当第二次尝试加载同一文件时,将跳过该操作。 -![image](.github/6.png) +![示例](.github/6.png) -### 解析嵌套的变量 +### 嵌套变量 -CSM INI-Static-Variable-Support 库支持嵌套的变量解析。在 Key中可以引用其他的key,更加灵活的定义配置文件。格式为`${section.variable:defaultValue}`. +CSM INI-Static-Variable-Support 支持嵌套变量解析,允许在键中引用其他键,实现更灵活的配置定义。格式遵循 `${section.variable:defaultValue}`。 -1. **读取 API 说明**:CSM INI Read String.vi : 这个API会读取原始的配置信息,不会解析嵌套的变量;其他的读取 API 都会解析嵌套的变量 -2. **写入 API 说明**:写入的API都会覆盖配置信息。通常情况下,析嵌套的key不会被写入更改 +1. **读取 API 行为**:`CSM INI Read String.vi` 获取原始配置值而不解析嵌套变量。其他所有读取 API 都会自动解析嵌套变量。 +2. **写入 API 行为**:所有写入 API 都会直接覆盖配置值。通常情况下,包含嵌套引用的键不应通过写入操作直接修改。 -``` ini -// default configuration +```ini +// 默认配置 [network] host = ${protocol}://${ip}:${port} protocol = http @@ -128,12 +128,12 @@ root = d:/data path = ${root}/${info.operator}/${info.date}/${info.test}${info.time}.tdms ``` -以此配置文件为例: +使用上面的配置文件示例: -**场景1**:读取 ${file.path} 的值,可以读取到一个由其他信息拼接而成的实际路径,这样可以更加灵活的定义路径。 +**场景1**:读取 `${file.path}` 会返回一个由其他配置项动态组合而成的实际文件路径,从而实现灵活的路径定义。 -**场景2**: [case1] 和 [case2] 定义了不同的两组相关配置信息,通过修改 ${RT.select} 的值,可以在读取${RT.select}时实现多种配置的切换。 +**场景2**:`[case1]` 和 `[case2]` 节定义了两组不同的相关配置信息。通过修改 `${RT.select}`,您可以在访问 `${RT.addr}` 时轻松切换这些配置。 -运行范例获取更加详细的信息。 +有关更详细的使用示例,请参考示例项目。 ![image](.github/7.png) \ No newline at end of file diff --git a/README.md b/README.md index af34533..2d19d2e 100644 --- a/README.md +++ b/README.md @@ -6,98 +6,98 @@ [![Stars](https://www.vipm.io/package/nevstop_lib_csm_ini_static_variable_support/badge.svg?metric=stars)](https://www.vipm.io/package/nevstop_lib_csm_ini_static_variable_support/) [![Downloads](https://img.shields.io/github/downloads/NEVSTOP-LAB/CSM-INI-Static-Variable-Support/total)](https://github.com/NEVSTOP-LAB/CSM-INI-Static-Variable-Support/releases) -Configuration files are essential for application development. This library provides simple and easy-to-use configuration file support for CSM, allowing users to configure applications without explicitly reading or writing configuration files. +Configuration files are essential components in application development. This library provides simple, user-friendly configuration file support for CSM, enabling users to configure applications without the need to explicitly read from or write to configuration files. ## Installation -You can install this library through VIPM. After installation, you can find the library functions in the Addon palette of CSM. +Install this library via VIPM. After installation, you'll find the library functions in the CSM Addon palette. ## Design -The design of the CSM INI-Static-Variable-Support library is shown below: +The architecture of the CSM INI-Static-Variable-Support library is illustrated below: ![Design](.github/csm-ini-variable-cache-design.svg) -Features include: +Key features include: -1. Support for default configuration files, which are implicitly loaded when the library functions are first called, without requiring users to explicitly load them. -2. Support for multiple configuration files, which can be loaded by the functions in Multi-File Support. -3. Creation of a cache copy in memory, with the actual configuration information read by the application coming from the cache copy. -4. Both the configuration file and the memory copy are in the ini file format, supporting sections and key-value pairs. -5. A global modification flag helps cache configuration information at the read VI, and the memory copy is read again only when the configuration is modified, ensuring efficiency. +1. **Default Configuration Handling**: Automatically loads default configuration files upon first library function call, eliminating the need for explicit loading by users. +2. **Multi-File Support**: Enables loading of multiple configuration files through dedicated functions. +3. **Memory Caching**: Maintains an in-memory cache copy, with applications retrieving configuration information from this cached data. +4. **INI Format Compatibility**: Both configuration files and memory copies use standard INI format, supporting sections and key-value pairs. +5. **Efficient Caching Mechanism**: Uses a global modification flag to optimize performance by only re-reading the memory copy when configurations are modified. > [!IMPORTANT] -> **Open Source Statement**: Contains and uses a copy of [LabVIEW-Config](https://github.com/rcpacini/LabVIEW-Config) from [@rcpacini](https://github.com/rcpacini). +> **Open Source Statement**: This library contains and utilizes a copy of [LabVIEW-Config](https://github.com/rcpacini/LabVIEW-Config) developed by [@rcpacini](https://github.com/rcpacini). > [!NOTE] -> Default configuration file location: +> **Default Configuration File Location**: > -> - In development, the first ini configuration file under the Application Directory, with the default name csm-app.ini if no configuration file exists. -> - After compilation, the exe directory contains an ini configuration file with the same name as the exe. (LabVIEW will inevitably generate such a configuration file after compilation) +> - During development: The first INI configuration file found in the Application Directory. If no configuration file exists, it defaults to `csm-app.ini`. +> - After compilation: An INI configuration file with the same name as the executable will be present in the EXE directory (LabVIEW automatically generates this file upon compilation). > [!NOTE] -> Scenarios with multiple configuration files: +> **Multi-File Configuration Scenarios**: > -> - When loading, the later loaded configuration file will override the same configuration items in the previously loaded configuration file. -> - When saving the cache to a file, changes will be saved to the later loaded configuration file. +> - When loading multiple files, later files will override identical configuration items from previously loaded files. +> - When saving cached changes to files, modifications will be saved to the most recently loaded configuration file. > [!WARNING] -> Note that because this library uses a global cache modification flag, frequent configuration changes will cause the cache mechanism at the read VI to fail. Therefore, this library is not suitable for scenarios where configuration information is frequently modified. +> Due to the library's use of a global cache modification flag, frequent configuration changes will diminish the effectiveness of the caching mechanism in read VIs. Consequently, this library is not recommended for scenarios requiring frequent configuration modifications. ## Application Scenarios -### Used as parameters parsed by CSM +### CSM-Resolvable Parameters -Provides `${section.variable:defaultValue}` support for CSM, which can be used directly in text messages sent by CSM. +Enables `${section.variable:defaultValue}` syntax support in CSM, allowing direct use within text messages sent by CSM. > [!TIP] > -> - The section can be omitted. By default, the configuration section is SectionName=LabVIEW. -> - The default value can be omitted, with the default being "". +> - The section parameter is optional. When omitted, the default configuration section `SectionName=LabVIEW` is used. +> - Default values are also optional, with an empty string ("") serving as the default when no value is specified. ![Example](.github/1.png) -### Load the corresponding configuration by providing the prototype +### Prototype-Based Configuration Loading -Load the corresponding configuration by providing the prototype. You can load from the section or key. +Load configurations by providing a prototype structure. You can load configurations either from an entire section or a specific key. ![Example](.github/2.png) -### Fixed CSM API parameters +### Fixed CSM API Parameters -Provides the function of fixing CSM API parameters. In this scenario, the priority of CSM API parameters is: CSM API parameters > configuration file parameters > default constant parameters. For example, it is easy to fix the parameters of serial port initialization in the configuration file. +Provides functionality to fix CSM API parameters with a defined priority hierarchy: CSM API parameters > configuration file parameters > default constant parameters. For instance, this makes it easy to fix serial port initialization parameters in a configuration file. -- When initialized, if parameters are sent, the sent parameters will be used. -- If no parameters are sent, the parameters in the configuration file will be used. -- If there are no parameters in the configuration file, the default constant parameters will be used. -- Parameters can be partially provided, with missing parameters using the configuration information of the next priority. +- When initializing, explicitly sent parameters take precedence. +- If no parameters are sent, configuration file parameters are used. +- In the absence of configuration file parameters, default constant parameters are applied. +- Parameters can be partially specified, with missing values automatically filled using the next priority level. ![Example](.github/3.png) -### Multi-file configuration system +### Multi-File Configuration System -Implement a distributed configuration file system through the multi-file configuration system. +Implement a distributed configuration file system using the multi-file configuration capabilities. ![Example](.github/4.png) ### Referencing Configuration Files with [__include] -The `[__include]` section allows you to reference other configuration files, enabling modular and reusable configuration setups. Included files are loaded in advance, similar to the multi-file scenario. +The `[__include]` section enables referencing other configuration files, facilitating modular and reusable configuration setups. Included files are preloaded, following the same behavior as multi-file scenarios. > [!TIP] > -> - Be aware that referencing files can lead to circular dependencies, causing infinite loops. The library maintains a list of loaded configuration files and will skip loading a file if it detects it has already been loaded. +> - Exercise caution to avoid circular dependencies, which can cause infinite loops. The library maintains a record of loaded configuration files and will skip reloading files that have already been loaded. ![image](.github/6.png) -### Nested Variable +### Nested Variables -CSM INI-Static-Variable-Support supports parsing nested variables, allowing you to reference other keys within a key for more flexible configuration. The format is `${section.variable:defaultValue}`. +CSM INI-Static-Variable-Support includes support for nested variable parsing, allowing references to other keys within a key for more flexible configuration. The format follows `${section.variable:defaultValue}`. -1. **Read API:** `CSM INI Read String.vi` reads the original configuration value without parsing nested variables. All other read APIs will automatically resolve nested variables. -2. **Write API:** All write APIs overwrite the configuration value. In general, keys containing nested references are not directly modified by write operations. +1. **Read API Behavior**: `CSM INI Read String.vi` retrieves the original configuration value without parsing nested variables. All other read APIs automatically resolve nested variables. +2. **Write API Behavior**: All write APIs overwrite configuration values directly. In general, keys containing nested references should not be directly modified through write operations. -``` ini +```ini // default configuration [network] host = ${protocol}://${ip}:${port} @@ -128,12 +128,12 @@ root = d:/data path = ${root}/${info.operator}/${info.date}/${info.test}${info.time}.tdms ``` -For example, with the above configuration file: +Using the configuration above: -**Scenario 1:** Reading the value of `${file.path}` will return an actual file path dynamically assembled from other configuration items, allowing for flexible path definitions. +**Scenario 1**: Reading `${file.path}` returns an actual file path dynamically assembled from other configuration items, enabling flexible path definitions. -**Scenario 2:** The `[case1]` and `[case2]` sections define two different sets of related configuration information. By modifying the value of `${RT.select}`, you can easily switch between multiple configurations when accessing `${RT.select}`. +**Scenario 2**: The `[case1]` and `[case2]` sections define two distinct sets of related configuration information. By modifying `${RT.select}`, you can easily switch between these configurations when accessing `${RT.addr}`. -Refer to the sample project for more detailed usage information. +For more detailed usage examples, refer to the sample project. ![image](.github/7.png) \ No newline at end of file diff --git a/test/Example/Example/CSM with INI Config.vi b/test/Example/Example/CSM with INI Config.vi index ee8d4cc..2be8d4b 100644 Binary files a/test/Example/Example/CSM with INI Config.vi and b/test/Example/Example/CSM with INI Config.vi differ diff --git a/test/Example/testcase - Convert API String to Cluster.vi b/test/Example/testcase - Convert API String to Cluster.vi index f13342c..9e8f143 100644 Binary files a/test/Example/testcase - Convert API String to Cluster.vi and b/test/Example/testcase - Convert API String to Cluster.vi differ diff --git a/test/Example/testcase - Get INI-Static-Variable with Cache.vi b/test/Example/testcase - Get INI-Static-Variable with Cache.vi index d4d0112..5204f02 100644 Binary files a/test/Example/testcase - Get INI-Static-Variable with Cache.vi and b/test/Example/testcase - Get INI-Static-Variable with Cache.vi differ diff --git a/test/Example/testcase - load and list configurations.vi b/test/Example/testcase - load and list configurations.vi index f393a46..7d751e3 100644 Binary files a/test/Example/testcase - load and list configurations.vi and b/test/Example/testcase - load and list configurations.vi differ diff --git a/test/Prototype/references.vi b/test/Prototype/references.vi index 9a7fadb..b801241 100644 Binary files a/test/Prototype/references.vi and b/test/Prototype/references.vi differ diff --git a/test/test performance.vi b/test/test performance.vi new file mode 100644 index 0000000..a9e6be9 Binary files /dev/null and b/test/test performance.vi differ diff --git a/testcases/csm-ini-variable-addon/testVIs/test - NESTED Write with the section name you write.vi b/testcases/csm-ini-variable-addon/testVIs/test - NESTED Write with the section name you write.vi index 8bdaa29..31fe2e5 100644 Binary files a/testcases/csm-ini-variable-addon/testVIs/test - NESTED Write with the section name you write.vi and b/testcases/csm-ini-variable-addon/testVIs/test - NESTED Write with the section name you write.vi differ diff --git a/testcases/csm-ini-variable-addon/testVIs/test - NESTED read with submodule.vi b/testcases/csm-ini-variable-addon/testVIs/test - NESTED read with submodule.vi index 574329f..6b0f2ad 100644 Binary files a/testcases/csm-ini-variable-addon/testVIs/test - NESTED read with submodule.vi and b/testcases/csm-ini-variable-addon/testVIs/test - NESTED read with submodule.vi differ diff --git a/testcases/csm-ini-variable-addon/testVIs/test - NESTED read.vi b/testcases/csm-ini-variable-addon/testVIs/test - NESTED read.vi index d490acf..52d14f7 100644 Binary files a/testcases/csm-ini-variable-addon/testVIs/test - NESTED read.vi and b/testcases/csm-ini-variable-addon/testVIs/test - NESTED read.vi differ diff --git a/testcases/csm-ini-variable-addon/testVIs/test - Sync param Value to the top INI.vi b/testcases/csm-ini-variable-addon/testVIs/test - Sync param Value to the top INI.vi index 1f94192..d19c8f8 100644 Binary files a/testcases/csm-ini-variable-addon/testVIs/test - Sync param Value to the top INI.vi and b/testcases/csm-ini-variable-addon/testVIs/test - Sync param Value to the top INI.vi differ diff --git a/testcases/csm-ini-variable-addon/testVIs/test - github 85 cannot write parameters into empty ini.vi b/testcases/csm-ini-variable-addon/testVIs/test - github 85 cannot write parameters into empty ini.vi index 4f5b099..fe14994 100644 Binary files a/testcases/csm-ini-variable-addon/testVIs/test - github 85 cannot write parameters into empty ini.vi and b/testcases/csm-ini-variable-addon/testVIs/test - github 85 cannot write parameters into empty ini.vi differ diff --git a/testcases/csm-ini-variable-addon/testVIs/test - load and unload.vi b/testcases/csm-ini-variable-addon/testVIs/test - load and unload.vi index d2e0b34..415f73f 100644 Binary files a/testcases/csm-ini-variable-addon/testVIs/test - load and unload.vi and b/testcases/csm-ini-variable-addon/testVIs/test - load and unload.vi differ diff --git a/testcases/csm-ini-variable-addon/testVIs/test - loop references.vi b/testcases/csm-ini-variable-addon/testVIs/test - loop references.vi index d30e72d..977b4cb 100644 Binary files a/testcases/csm-ini-variable-addon/testVIs/test - loop references.vi and b/testcases/csm-ini-variable-addon/testVIs/test - loop references.vi differ diff --git a/testcases/csm-ini-variable-addon/testVIs/test - read Cluster From Session.vi b/testcases/csm-ini-variable-addon/testVIs/test - read Cluster From Session.vi index 6726b3c..8c12d0b 100644 Binary files a/testcases/csm-ini-variable-addon/testVIs/test - read Cluster From Session.vi and b/testcases/csm-ini-variable-addon/testVIs/test - read Cluster From Session.vi differ diff --git a/testcases/csm-ini-variable-addon/testVIs/test - restore variable value.vi b/testcases/csm-ini-variable-addon/testVIs/test - restore variable value.vi index 3311df8..0f12f6a 100644 Binary files a/testcases/csm-ini-variable-addon/testVIs/test - restore variable value.vi and b/testcases/csm-ini-variable-addon/testVIs/test - restore variable value.vi differ diff --git a/testcases/csm-ini-variable-addon/testVIs/test - submodule case.vi b/testcases/csm-ini-variable-addon/testVIs/test - submodule case.vi index 5d88ec7..4cc1808 100644 Binary files a/testcases/csm-ini-variable-addon/testVIs/test - submodule case.vi and b/testcases/csm-ini-variable-addon/testVIs/test - submodule case.vi differ diff --git a/testcases/csm-ini-variable-addon/testVIs/test - value with Special Char.vi b/testcases/csm-ini-variable-addon/testVIs/test - value with Special Char.vi index d45914a..fdf1dee 100644 Binary files a/testcases/csm-ini-variable-addon/testVIs/test - value with Special Char.vi and b/testcases/csm-ini-variable-addon/testVIs/test - value with Special Char.vi differ