From d89a566d84b87654bf6384f7c4fb6a13c098a617 Mon Sep 17 00:00:00 2001 From: Erika Date: Tue, 24 Mar 2020 11:18:15 -0700 Subject: [PATCH 1/5] Initial commit Initial commit to add new `cppgdb` configuration type & clean up a few things. --- .../configure-cmake-debugging-sessions.md | 54 +++++++++++++++---- 1 file changed, 44 insertions(+), 10 deletions(-) diff --git a/docs/build/configure-cmake-debugging-sessions.md b/docs/build/configure-cmake-debugging-sessions.md index 0f5d061c87a..4ed69dcba8c 100644 --- a/docs/build/configure-cmake-debugging-sessions.md +++ b/docs/build/configure-cmake-debugging-sessions.md @@ -14,7 +14,7 @@ Native CMake support is available in Visual Studio 2017 and later. ::: moniker range=">=vs-2017" -All executable CMake targets are shown in the **Startup Item** dropdown in the **General** toolbar. To start a debugging session, just select one and launch the debugger. +All executable CMake targets are shown in the **Startup Item** dropdown in the **General** toolbar. Select one to start a debugging session and launch the debugger. ![CMake startup item dropdown](media/cmake-startup-item-dropdown.png "CMake startup item dropdown") @@ -22,17 +22,21 @@ You can also start a debug session from Solution Explorer. First, switch to **CM ![CMake targets view button](media/cmake-targets-view.png "CMake Targets View menu item") -Then, right-click on any executable and select **Debug** or **Debug and Launch Settings**. **Debug** automatically starts debugging the selected target, based on your active configuration. **Debug and Launch Settings** opens the *launch.vs.json* file and adds a new debug configuration for the selected target. +Then, right-click on any executable and select **Debug**. This automatically starts debugging the selected target, based on your active configuration. ## Customize debugger settings -You can customize the debugger settings for any executable CMake target in your project in a file called *launch.vs.json*. There are three entry points to this file: +You can customize the debugger settings for any executable CMake target in your project in a configuration file called *launch.vs.json* located in a *.vs* folder in your project root. For most debugging scenarios, creating a launch configuration file is beneficial because it allows you to configure and save debugging setup details. There are three entry points to this file: -- Select **Debug > Debug and Launch Settings for ${activeDebugTarget}** from the main menu to edit the debug configuration specific to your active debug target. If you don't have an active target selected, this option will be grayed out. +- Select **Debug > Debug and Launch Settings for ${activeDebugTarget}** from the main menu to edit the debug configuration specific to your active debug target. If you don't have a debug target selected, this option will be grayed out. -- Navigate to **Targets View** in Solution Explorer. Then, right-click on a debug target and select **Debug and Launch Settings** to edit the debug configuration specific to your selected target. +- Navigate to **Targets View** in Solution Explorer. Then, right-click on a debug target and select **Add Debug Configuration** to edit the debug configuration specific to the selected target. -- Right-click on a root CMakeLists.txt and select **Debug and Launch Settings** to open the **Select a Debugger** dialog box. The dialog allows you to add any debug configuration, but you must manually specify the CMake target to invoke via the `projectTarget` property. +- Right-click on a root CMakeLists.txt and select **Add Debug Configuration** to open the **Select a Debugger** dialog box. The dialog allows you to add any type of debug configuration, but you must manually specify the CMake target to invoke via the `projectTarget` property. + +When you save the *launch.vs.json* file, Visual Studio creates an entry for the new name in the **Startup Item** dropdown. You can edit the *launch.vs.json* file to create multiple debug configurations, for any number of CMake targets. + +## Reference keys in CMakeSettings.json To reference any key in a *CMakeSettings.json* file, preface it with `cmake.` in *launch.vs.json*. The following example shows a simple *launch.vs.json* file that pulls in the value of the `remoteCopySources` key in the *CMakeSettings.json* file for the currently selected configuration: @@ -51,8 +55,7 @@ To reference any key in a *CMakeSettings.json* file, preface it with `cmake.` in ] } ``` - -When you save the *launch.vs.json* file, Visual Studio creates an entry for the new name in the **Startup Item** dropdown. You can edit the *launch.vs.json* file to create multiple debug configurations, for any number of CMake targets. +**Environment variables** defined in CMakeSettings.json can also be used in launch.vs.json using the syntax `${env.VARIABLE_NAME}`. In Visual Studio 2019 version 16.4 and later, debug targets are automatically launched with the environment you specify in CMakeSettings.json. You can unset an environment variable by setting it to **null**. ## Launch.vs.json reference @@ -60,11 +63,42 @@ There are many *launch.vs.json* properties to support all your debugging scenari - `projectTarget`: Specifies the CMake target to invoke when building the project. Visual Studio autopopulates this property if you enter *launch.vs.json* from **Debug > Debug and Launch Settings for ${activeDebugTarget}** or **Targets View**. -- `program`: Full path to the program executable on the remote system. You can use the macro `${debugInfo.fullTargetPath}` here. +- `env`: Additional environment variables to add with the syntax: + +```json + "env": { + "DEBUG_LOGGING_LEVEL": "trace;info" + "ENABLE_TRACING": "true" + } +``` - `args`: Command-line arguments passed to the program to debug. -## Launch.vs.json reference for remote Linux projects +## Launch.vs.json reference for remote projects and WSL + +In Visual Studio 2019 version 16.6 we added a new debug configuration of `type: cppgdb` to simplify debugging with **gdb** and **gdbserver** on a remote system or WSL. Old debug configurations of `type: cppdbg` are still supported. + +### Configuration type `cppgdb` + +- `name`: A friendly name to identify the configuration in the **Startup Item** dropdown. +- `project`: Specifies the relative path to the project file. You shouldn't need to change this when debugging a CMake project. +- `projectTarget`: Specifies the CMake target to invoke when building the project. Visual Studio autopopulates this property if you enter *launch.vs.json* from **Debug > Debug and Launch Settings for ${activeDebugTarget}** or **Targets View**. This value must match the name of an existing debug target listed in the **Startup Item** dropdown. +- `debuggerConfiguration`: Indicates which set of debugging default values to use. Valid options are **gdb** and **gdbserver**. +- `args`: Command-line arguments passed on startup to the program being debugged. +- `env`: Additional environment variables passed to the program being debugged. For example, `{"DISPLAY": "0.0"}`. +- `processID`: Linux process ID to attach to. Only used when attaching to a remote process. + +#### Additional options allowed with the `gdb` configuration + +- `program`: Defaults to `"${debugInfo.fullTargetPath}"`. The Unix path to the application to debug. Only required if different than the target executable in the build or deploy location. +- `remoteMachineName`: Defaults to `"${debugInfo.remoteMachineName}"`. Name of the remote system that hosts the program to debug. Only required if different than the build system. Must have an existing entry in the [Connection Manager](../linux/connect-to-your-remote-linux-computer.md). Press **Ctrl+Space** to view a list of all existing remote connections. +- `cwd`: Defaults to `"${debugInfo.defaultWorkingDirectory}"`. The Unix path to the directory on the remote system where `program` is run. The directory must exist. +- `gdbpath`: Defaults to `/usr/bin/gdb`. Full Unix path to the gdb used to debug. Only required if using a custom version of gdb. +- `preDebugCommand`: A Linux command to run immediately before invoking gdb. Gdb will not start until it completes. You can use this to run a script before the execution of gdb. + +#### Additional options allowed with the `gdbserver` configuration + + The following properties are specific to **remote debug configurations**. You can also [execute custom gdb commands](https://github.com/microsoft/MIEngine/wiki/Executing-custom-gdb-lldb-commands) to send commands directly to the underlying debugger, and [enable MIEngine logging](https://github.com/microsoft/MIEngine/wiki/Logging) to see what commands get sent to gdb, what output gdb returns, and how long each command takes. From f6dfdb1a1d7e13d71e02db1cb3fa05d972d8162d Mon Sep 17 00:00:00 2001 From: Erika Date: Tue, 24 Mar 2020 17:05:52 -0700 Subject: [PATCH 2/5] Add photos for debugging entry points --- docs/build/media/cmake-debug-menu.png | Bin 0 -> 30752 bytes docs/build/media/cmake-select-a-debugger.png | Bin 0 -> 41673 bytes docs/build/media/cmake-targets-add-debug.PNG | Bin 0 -> 21939 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/build/media/cmake-debug-menu.png create mode 100644 docs/build/media/cmake-select-a-debugger.png create mode 100644 docs/build/media/cmake-targets-add-debug.PNG diff --git a/docs/build/media/cmake-debug-menu.png b/docs/build/media/cmake-debug-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..5b634d15479e136a346be6c4d2780c922dab6e4b GIT binary patch literal 30752 zcmb5WcU)87_9h$^r56PSMLs>{|w8^65rKWQ{xJqhetDzRceEN*S~ucz@m88Z>wwGIzkiB+VRf zmZ@fjl1924$$PNYfPog&;ZK0xv73t73s6~m6=sIYcHZAHP9MlQP7WuF_9P$s=dy8ropm*~^p$e*Dklr_CNNkbhv^{oqOFiYiZzV(VE!U*T{QSIb0Req0evtPVS zXFPKDmwCN{oc8-RhE8mbD{xY7v6XpQPuU>KD)WV_R!-218HgZ?sPNdI1AF3J8+DY+ zgzv?w@JR=EWxVvO6s~AluGQVUPESR11u|jwnJTE@>s)MI;guCeF7lf~4Qp#1H|P2= zzvAiNX!MqjXt){3o7d!X{Sq&Fu+PzW{` z>gXldhYg1ckF`X;2S)4THC~!Mla&E+-3UQPL`k0&IH-cWHa)Uc{c;wz8djV^o=}>L z+HZ;Zh+Q-0#;w(&Lsc!UB)m!*;f^8{2|=J%tWMm)JA$`dsTbLe^5lQK{)srU$%LSu zOGiK+8}W^NbxF6g5ovxkaO93F9lPVPQ1~=LRbIHzeJNQOiG6jZ(w`YQYL6&FHy<4G zKx}+*_XNEf9yqYex|M_R^!%Ee3Xd(AM)c3_x^c9+Zt*?ky zM=m`{J%lSBE5W0%ZKXSf;uHJ>m>oBzgjl-3pZq`X{HoEfb8q)Xs8Q#|Pj6PQn{?5*)07;L7R^T z#Wz1yK^@pDRSxtb)U<9;9EdF?6@0I^bk@db#Fd)fvA0>?uWM8?^a597dYU_3`N)G3 zWnNbhLCOqr81Y`X-@0LS{;?Q!5O*@o@_Sn93})S%qS`Kp8g#3X>0^wn;9yEEMekJ2%GWLFvZE#Y zGG;gG)`=#Dc$}254B}5VSyp5f^-TVwZ4> z-1vqpnO?hKUM7jj@CFalPc8BHV)_+*tao`I26LpwFRLoT_K9WYqe>rh%Y)aUhyCi9 zgR1I|TceSe1HZV@zYKhl@^$yqnU$c*C1l`~rrCW(^X)^9i6YlPa!>6-v1*20HT5Pg ze)fAA)!m^c9+&9-KE~D)B_+wp`pPJ%K+G=bhpSldqxN^o7lfi+A*g!u++uFMh!Ggr zWyos8LMeE?wH+?1XXF)p%@WasaTc#;^Q9X~x9s;?{l_zHY9(%TgYzcF`^!ik{k~t_<|n}*%^5}v;kUH9sOH^*1JzU=~{Q7(1 z16&0U({xE(M2hR*=JziNPTaEZ0 zzIr{ylePy;FXE)92BWRK6tIH!6MS6!f$l$t`YKay6sERvILLrJMT32quyP~^l@EpP zmc`h_(Allu6ouYx@1B)~^#Cn1 zJS>IOC+MQ5*Y5@NwyFLy&x@Qv*;1Lf3ysnWu3F%CeFAh6i2G9EP##PAR&#Eji$rt$ zJYj(-Dq&_tOiLn5AOc*}@TDq+??~hId9p-qh;M+vBu=&(S|GrVzk6J#Bj&;?Ra#1Y ze5(C4BPV{3lH({~*F2rajoq6X*9e8< z`(gWOiSfJUyRoiAdwCvlKQkWN2l&M-xL%s6T!oa2+l87JPaop!c^`M&t$nER!yYUa znzF0fWc+q_p+(XhUD>c_d5?GR3`(l_smXp6dy3q8Fj%wJ=NcR_Sc5NeY|g<8j%pZ` z3fZXX;|!|DF`r|J#DUPB`RH1UhS_(cKn4rB7xGMf}=0T+QjD9k?`*0=*o8Mz+k7?c(1#0 zit2qC%rs^F8RmzrmHB?O6`6KCur~cu4T;km5oS7wBhjUtie`9y`-JquB>?GAgE0)F zNGadS!7zpVVm9Q9qsAYQZM8E-StD#q(J=zn;jr4!&H#2t2cX(_c;WqHwJUU@z@{aI&oG_nnpf*c)nEcu1={6tDhKCx`8Bk-D zn7mTf&0Ccx`WC|5cFva7&@dX^Bd{)^f8fEpgNnSdu{|rYxFm0j$2ix_Qc1534Sqf| z__t_+1Q8p&i0=^vzGu@{%0ro6156o zDe$&6wX4;!Wg5ZW#b=q8IvQfmIRV6V!qs>E7J_geVT4M*z>LiFpG@2lbp!3GFR+f$ zVN+^=C--O_uikN(hGEBF&T1&2UqkT*;NiVY%+TCm)4n>2?H$?udc8fsuz{OxaDNFg zGg6hZ@<+B~Dp%s@C)@U>&?(UO*#DxPmJtwYl8%JJ!U@>I12vaJCtlDuKY(^bK;N2d z@$TP04Z3?3dAU-gN?huO9>d+BB(Jm=So;DtP>`wf1t}qaG$SgZc`wUpOXWoaP7Dhv2$`u7Qxh0t7h`5#id6Z+MI0elQeG*7RF*BH1d1Be zP;-5Q;+G!I2AF*~xm9FC=uaIplGjk80Eskk3YBu-tgdo$yq&y&ai4C zvJpZ^UL$*y$Gwswmy;*3C1uo?|X?i#Sv8#p>N+9hQ`b{X#QEcB?4N6Buy{T0&Ct8o10yJ`NPQb>69 znJ@fsmrUclk_Q4z?Ye5a#wM{G7h=Qv0_oQerM{8`%YrPFUsTg;v-!8nb$enY2tvuB z<)*M}`Ygr2DMGEm%%c|L?jX=0_Xd>=Lz{ixm}=4&!+rnEjvOJRxN}={{Y8 zqg_|mm++m$$5XK`O5xl=K#wA7UwfEa>8OKmpF#D|2}yD!-21^8yAh;DM@BDr&NCzL zeSpmn3u;UxUY@d*y0luh3FF!amYQZJTPQuhUl#droI7ea;vQJ+kBvtHqg6{FK8mBt zHkZ-~v#y02zq|XSr6+8_iQ!#|K0L=&<0S3{Wj;)e_Y98ZAv=AK-_;X5Kv}b*mfI1l z|FF(-EwM&JjXO0a%RR22K?UXX_j2xwJQVZO{-#jq#~(@+{oV5$=Cq8K z1t-VcptDz~Fg$g4Uz8sLOwP*pdpa z@C&qC7kVl&_~YM&j?RJl4dn_L&{H=yzsLvq)L*=DxUC~#m}%zoH zHZInTY&N|NUfAB&k)x{owLg}pQCqu52EZkRStA9TJ_7XZn0c+pUdtLbn-QhrmU za`VRU-)ec?yud{L2vH4Y0czUu2Fl~F^DiqFLqZJ(kq-o7WnyDvXSb$)sUX!T7yk8v z$G|0>IppSo%CX^!M)vt1ZLN%qKs&8&1Ftbw{@*wFzl>_2b8GkMs;@336E}NLfj~U+ z5R@JM)51cM493tUzQ^|l;AKOLl5*pLiv=3s+j2$cg+Zlyyodh0Muo_P)S@Bbzujo7 zy1%UxHKbwVHKTDvFJ}wnt)mvJr4fiP8`PHQ)z=o3kx-oie^%s! zD`}9eqSkpkz`SQ?K5xQLZ|c|YAL^y4y#p5huEuvP!(9AdyYMbJdeTZ@$B?jPM`@FB z9Zw??1@2f-YmT=4VWZqlUnH8=9>NF&_JY)E)k3%CrHfUBrlsL@;*lS}x(!7aD^tAE z(H$@@Q+qzvGdlFSAD)kH@N4l=Q@f|q@Io-(FuJu`mC|`1zwP}TJ!6Bbvs!T!gQxVA+*9j@z}GQ3Z`PIQP5;rTZ>0d z+?cSAYVC0hQIfoCJ6VX<(O<40?6wMnK*`q=ia%cLh|s>^3+CeAChMuAQZ`C@Bq#mB znn9P{@J?IHJfM&i{h5wi^W=a}5BQnp=S1bK!~_`a;NwkUSUp|K2{xe4l6+^_mACE^ zNEMP?OYC+(A|Sl)Y_pM7g1zTjjSo;U$_I~Q-BM>oc~UKd`AYLY`X613jXMFn9_`mI z@a3sokbauH7zFh~&G=kcq10HHjW~jZFHBLT??!3_M5R&DG&$*f-swrkeENm9;Id4q z>Z8e(?R5a#X_p9b-_Jp8y5J10Mtl#V!@(4Ab(RJ{wR}Oy7G1pe=uR~s0%KmvP#6=$ zbt_F`gBh6U-V8|2XT%JEEQB~-<_+v+A$&5dCqPH##tNVA#Ssfq$Un7>$*SO#>djR_a;>u~be;mm) zexB1%3H}@8T>XD5>DzP2Tt@JYH&Do4YZzn>UPT#anFAV;l_Y$DiD=ll09=vc<77o< zj(L9y`2AAyPYVqqIIH>n83Z+w+0msmylT(vWP@^A`NRh?0oc~qcY_vcziHWz#JJ69X6BxeRo8xu zlu_O#rm8|UZ3&5(E1(xc^h1CNFiB}?mtnIg<^+YDS!}{_ZPaRrKh$SOPVDiEa5poS zOo{b+xtJ9t#!!AQ+opp+w*|Sbe&$9Eemb20bC@Fn(60;c{#T>{QCRXtYI zp7~l%Q#nTp(z$pQNi_F6F(lRuSS3^CyiqlDsf7p##CH`a#1{okU7P=7TL~SS)4IvY zJJKUjyc&3R7gjga4PA*)eFzNN(1&wO>vzLNePY|DmhHhoeHRg5`l*s}n`WPK^;TmDG6s#3_+sR1eZ0B$CB+Mx`rC%Y!$_14PL zADE9l2V45=XQxwXTMXmu$e+lEz%Xm7cRxabgD!=WeilLfuxiaZ>xW&IyKso3N}T@T z!{@E$*S?Kww6@IK0DEnk@7YXAF^bw-caanH}xzkNG(y60d?U$uV4LmK|SF{6!L! z;%B<`Q}G07Sx*n_-Sjd0+m-K!sea%!{JbqNtJ+;YqrR$TN&tcPkeO z*47U-TL7m+bOAy>YVxvB5<%)&?G{Bp^PPqzO;kB2kymsOUo3;RA5lysL_6=Ay{It)Ez_LYafw?w}>NEQ|*nm<39Bok^ z?nraMsDXy0e?Si+i?j`N4%d*%JWT&%RUybLM_IJRo`|AAqB3^=IZ#*r6hH7VZPx@* zD(6NCP_=dF?6KLAD>jER_l$li!8Wv816T>fv=b(-0O&bvwnqG5BA)WD9(&%x z31<&TjQVfIX!7HQ?r0MXD0(nnQsgv)KV^s&DLyg2mN|Ta%SHjF!VeJ)X>Zw2utC(= z`vY4PX}(R)m2ArG`NI(x zk@|^Qw47QPj+I-#%!<5IA)tOZs-OfI+HeCpY+hjI=nhQ-oaU;}j5N#igEqqZ@HdBq zj}-1~V;%f;uQ`@!ldg(NM9J<1T$1eV++VuRRlT}*85rQ*QUf*I4h`qc{$tm9_IKPl zCSD4H#n}n9wQV6;u(?UiRdk~w3NmD?50HH(3ri$ z3Dt0@f`L9Oa+D;WX_X>B-qF?HC+%~UTYmhPeD2zxl8mX3yfv0Jh!fvOZ=CJMa9etu zm5Yx}xY4sh#@I(kTTU1?_w6i9M^`=YbD9<=q(inQJ<4b;@Gw|s(l*gXDi~U`PcaZz zQrNt?KJmF2p^1;N$km!0rvDbiNNzdvfVA9*#h;?WyYiQCZc5j=E>KM$^vQiJJN|`~Asj*u5hIx`lSiS$R zJxz69fADO|dp)vd2I#8_VQ&KK!3kyfMfp7%}@cvc|j&1d1vIw^9lw%w!N zm)kMjio&I-f6KINBQyPYM2z~7VKoV)V)C6XXX|2>kxj$${m@B+Pu&T8)G_!KXhWPZ$(-v>I z8~u2m3t75Q+r5SryLnz!r8y2d_9Bx*b_A+G?Pw>Tk$A^+T3*AE?mCO? zqV3>N8uL~7>qq$FB>D@DtSfJBtj>>gG2sQ>)eL8?174jV+waP4O;kDz+{@Rai_0n% zpSX5`Nr)ixCct4_F1Y;YmvH;id6oo}2mX`6%;9gEQH4cL$`kO~!2Ivu_n8<(avDQ!2i}6Y<$O~8L1q5D zfAZs~NxsC^^WN%m($7b!#_TqfGIIA&I>++|t8xrxb?14b?Wt64S5EXg{i;%2H<{Tj zFd_DBD1o_IIeuXp_F%uqD$_Cl5reiEULek}qf{#x)O!QPF8{|WOHZXgs`6*lH5#-E$9` z=Uo+d_m4I$fBx8cDczUQ##}eLi>YC6p2dCeL@TLK213ijeB~q z5!mFgL27eS*fDGmruVDQ^@~{PDfu)P^w-hMcPD~#8YtsbC)`GoW{PkHKa>11x-w7P zth$#ROLI^(d_gO(aw-DCWQ(l9Gry%j0-1L^iot4CW^h%&{3l$|)0&{Z_&Q39Rl$(9 zQpwKSv3w0iB~~E1b^b)wF|+j~3A$KRD4U7ccz`(-R7D#0c>hyWq&mC>>Rswq^rx>ZGEo|oAARo@i6i^!bW5)CWcI70eAZ5HJ~M-Voz}z&ZjRZ- zimPYhPYE1^FoqCS$UUAD&mcC!YG?5}qqj+nQzM;O1u9(dnA+DI5 z-TC>eTqlk1YpR*^FAt*6{!aq%l@N^`0(#J(QHi|G{9Jmb=xik`qfj)_I_jI%hw zQl(T?9>bbV#v5a<2QW7Nnnl5aG|BiIHR~l$n|OFfaf9KX+vYi)h0L1D(w$=r>NY+X zA5HKq9(pXE`j(Rt_-LHF9dW~l((qNXkB*qw;+YO`-DYnsbaXuM0Be71>9PnDSb~5h{L>1_DxCHORAiPm}F*?FC zw3YSCN``sG6%9uLmAj`vd4g-3RQN~~!GGw|jdvrQ*?2K7OP_Ij;m(!2OW{};el&&1 z!tXovYT>qT{Gc{v(YMJxZ`%K8Kv;lD6eV)bvSDE-waNRRywmSr8)q@#(ye&rPA4SA zYI4`y`IYn$cfQchd)mgvR2rM78(8_^SF>KMD$Vxdz6;1(gK@o5on2*E88T{L&yJ)$ zUNHxk#m%Pjo8P{E!y&90RoA8~Wiwqin>e8*3DK(C9C2;0wn)#|)Ts=8vaA>bg_2J?FHIox;}3H6+!iXSEy0Vf6~TR_!5(RFrICfTpgGp zf8;*)_1@*{l@d*UjVbvnxVWGob0>waRCn^ax{YQ2hC0goHEA-+wO&SL^qz5~EBFbZ z1PG{hUebl2Dy=S|IPM<(3Cg6R8cLl2m#{t%LSlW^ zUGl4#kdc%NXnK&Qo-KlJeOHE)1^HsK3>00K`UqSZ8!bOezJGno6|?HJ%ilT%M#)j3 z$x6w$M+6!alYm-j#>pza66X2M5Gm6H*fNLj+` z5w3DMwZETTuza?oWfdI;d1-0ih*h-3^NVx6aIwC*tVjl4WR{U(^=*UpOfe%|j_W#q zrXR)G@pw@@c9j_>%|$fj;XqQChPWAt5nnz_O2P}>*LFW=$FN?a5Vtb)Mk)myoNZBC zEqs#6A-K`~2wK(TF;;{CY4yL67!YR2AADKl*yFn^4`3F~{3wg@)qD=_@o}7mr@0?u zlmB0^HT~CF?B)8mclf_(%l_W+{NH$*RRlFYT=iRB95vi@mmf6St-E4%yFZS8Wh*2Y6|cIn8M3S=A*U-XmbYNH6+z^ zRT?%KZ&7(?55fa_%w|3(ikbYJ@Lx&?q+UQ!?d}q4D^FwdSr2WSbv5gjRS^)HFx`Db zdYvv=_*Am-nFVZG4mPs5dHrv$%R7G;TD#koG#oQ6`NgYL4cFi!aAOnh(>zf{xvrnr zB^HKd73Chr{sl?2@)kERnJ-Um?kb0zZyp2+|Iz)q2pmv1>8E@(G=T;*{r z%60bXT!{Dz>)UZj4{Jeb{yM0|+EuBSSSGp--DzHa_qyq3Dee>P>N=Sf9q8&AOnOm; z9ad>7=_jL%;hn`}3gDy~8fXeH;nOYJvtZjH$JOmj)e@ieY4j-C z3eBc^@aqa4e06VVL|22)peaKWYz{cWUip*Jxzmh|3J?^|@Hk>izGhWdXX*ofP#AO7) zNTC$~)ESW9TyFB$>??4st_x4o_mZPj(ZX4$Dbl3@*TNtsa2B#38o-vBYP)FvXT^vn zr(KoRK6kj+br5+CJXa-u^sNEs(NW4hG8ZAB+6V<}NowbeQBGo+!Oc?LJD>Jy#cLH> zR~9ghik%_`LG@*X9B&SS>w>v;;rcT%BhvW7NSBz=4Nlb=Zd|&S0L$DYF_UXe?$TuT zigC;)&qY?iA}gzw$(1kgPS!0NC*UQz$>{es{p>GQLw@|h`FSPZK(~j}$~@CG$Pq!Q zbKbrx8)UtcaVxkUn&75>?!pxLeHH%;tJFzpXyuY0LRTR6{{_F(p$?KD;{6+WtlA$w z{d$qqHEN-PI-F(0!rJnZM9OR6DkYw_k72k;aZ6lD{{A1_RqneBDx8JuT*I%Ra>W{F z|4b>q+#x)}bDH^DYN!k_DpZ&Dq><}~rUP#C_iXcJ$IEf$Ue45Ppbkym@hR3cdFg*d za9E-b*#?)w<^p^ZaGwYBPX}Ast9)!~sHLT1KUi9Qb-A(@N^REpXzIn+c--%NG%ojIyt48#6zlO)lLdg||M zzum$z81%Hc?U(W92HCN7j|>aKRIaX^1W!md*P2$w`Q7`|L*cdw%CueQDphJ`pi*P1 zG^XX~4`p^R6a3kga$K_fndX)QVKEigMsBPd8(8J9n-#-B-<`L5JPDYp9p_ics#+TY z-!C!c(j>}hS#Us_ig~XLF(dcf-k6Q|zQ6xVn%Q-9l(|GN@O2YlO+#y3g zLRE3XuxoSfp%SmSG>v`NV@L3lVDDs$2zzJmvfG{7d zW^E8>>n}K?z0@}ZK9NJd9+m4+%C=^1B=Q-lyg7sp3=5g*6lbo70$!KaET*-gX+2}9 z?}%5%xT1(=0HH;PQe%!;z&RywUB>#vozWFsbyp`a2{!%&-`yj_ zhAo%Er_^$$vTrvwIaodCg1!H;A9{}ptob%oU+8Rn`H(Ci5!N_C7%302rv-mLT;?edN@~+X*_3`8iwMsj5HA_VNKHWXc=$kO{dy zF|O^bXt=(w!i}a6kw|ey6H#9a1#T?jM%>?^23?dcSO+>>MGdM-%mm>%6Ta1~d@1S+ zWU6aj=~KBAO1L0WSy^0f?h;Vew0b&jB-by!f&Ve~ z^k7rEIe{;-`JG9uZ&~}OiXK=~IkC)@euy_l_sPEqx8VQ~d{i=|VeBZXQ=}8t-WWAz zigKVU2IswI>eA3}7wrEdY4l9VJ4>rd%_mvAWb9YCT|va?*ixQrzK-xYCUN2bF89+5 zFpJwi?GNTXb$WlbRrGN0MV`$_lM7+#E*UeXQ&$V~>uJwl60wD)!xrX;L@!B(Kqh@| zwk!VA($F1Xw$|Z*l8W;Xo2+s@{O^`;&OHxWma5uyMkHy{YdoQn=#KgY=;tKwO^Vpfy7kOS+l_&1AU z2Zb~x?@^;D^L|=D8P>#a{Yl+KRwv(CiWeuHeDE$CApvck<8%1y!7h1|wz1iJ$c{K@ zU2GMZ4#xt*9*EBy@nSvRHqy|Ko;djYm*RA9GlSzSfCM{eIlaU=kvW(I$Y@f{o4Wiq zjrxdx`Zr>u_xORlfiZkRbMbI@KwjvzB50m-P5jf2@|kw1Y^n20@1V9qyHjne&7jpb>I10o@&FJB15RaGRak z;FlTwkm#YqRwJJmICHhJLra`%f;~BCLDWiG5K8~8gh;JqL2_F)%xKmh?uZU6&62bU zjhoHZ-T2L0@uPPz$9ki~nvjV&jKYmKoDy=uEDtfAm@i4*Ezfsm6(f$sIYEO}S2^;+ zQWJ?EwvpJ%Ku;-mb7I4TfY?-HaOI}ZaCYz~+UiBh4ZHP4r3`7otvsa+10(mQ*~4N! zuimm3w4H^X`d}T@osUtc`0iXhv%rA-A-DRK57_q66RP!lGRJg(MT;n^qPB9jc-(DQ z#eWPsW*mE5{9W*{poGBrVJm2G`+1`RvkiEE11+_g#JhWsQ{|lBm`y}VM~58C#$gLH zAWR^~EA9=dk3^{M3GTi%LDazjjidRsg-F>0)^>3_?WVQo1)cDrD6N5{9^CZ-ulAk< zk>FP{qv)4eO_pUck$ex<-bfG8b8DIqZ85VZIquCUK5F%Lb@u5=C#UG}{nH`i`g^&I zRI@QP_QYty`hxdM6$ur!>s)zLak9RFFhW8i?@g`%Vy*v>E4cS$8db*0bx2k|MYkCZ zCloDKu|*Qq_CJ$MFYz7jH4vMKjjMm+bR;x5)~#gA@IMgy+Eb&Cc2M3#x=5Pvd5XB8 zoQl%xFCvz;B{GB0v}cOb0=HL48%V>n3q?u6LBA{-NY#I4J8xd)emCo8KOM?k z(Z0_+(a|qZiJVNc zTG;<9SB>n=m0um&#nnTnX^+!9&mu)${&o+9aaY#%wGp1U8qyi~n)y$2O8n8QrIPm} zhimkj8$u%mQu9b4DG}4DqIa0UM@3D+Qq9s_)wLq@lTW9bzXx2KnP1e(M?r^P55|y# z{|E`_0_YFT&j@h3qXoF)TYkOL9m!V;n!h}h%-7%~SluR(am_OpJYt<9udcbYY1dA0 zmKht#H9vDh-}%rcQ9icERAxEnZc~~w8x|Fv-OXNFrdT}=SEpR#W1pniP(8JFPgrXY z&lJ&p-033b+LE^5Hn}tMe*!&S0?Pv5nA2;qg;d!uLIIZ|mf_RcW_Pt`O;*q$0kI!L zXxjd%yfk=N@vO7MQCd2@th)&*LT_uiMA1NzDz4Z z$muX__kQYx2#R{LUFJu%Gf@$93`3argpkSxOT^nq*Ou z5TqnPX-g};$9Hn}h{oBA4`o+1R@rW2UR~`YCfe^&7_K@SK^h<8GTX@HPpi$3l;}XwcVAf*us$&C34AmZ{CFVNUB0Z@ zcT~VdQqRgNSVblbyB))|s?ox26;ww0^_F%wk_~BO<%?zvn?3k0yi5KZP0J6MrOdqS z4yM%C?`m{l$%=8FJ9HusUE-g9vSbNW5~;oOnsA$VO>VLv@m9|Tv>msJOMpR6Q+pGo zXNlmR_q)Rg@cF3mUh%zj$k-rfWj zm&(Kv_uioc5AW}c%WgWQXmmBd>2DRc8SisUJvvM;*8-W`yJC{r-UNg}kD93{gzT(} z!>oP*jEH;keDS#x%Uu$qA>*}u+b1b*tvdHI!*(9%yL8w{veX3y1za(-;(d|kDqN!T zw8456KlXyMy)Qi#%(58KV^}kEI}^%a&CeM8^(?8~Ty#TFXf}!N#dsp|`K!PmftJjX z$0kV^JdEg;U=Ik0A5^`nN}Ss56`E(3Jd9!t3;4wUcv#@(%6{uLfEpAGnSh61LlGnI zX#5ar)vbX0gK(Ai@aM%=_`3y1wvjaG6IDHMF`!NXrQ;>IoJ@50DR=@rtV0%XWBoO%d<_%ny zr93i5%w|z-ov6)JC}Zq9;JG~X?%!Y$P3V6pga4%skomuGAPf_-J+rz3Q3VhM5Ovf9 zd^n@eUXY)0lt3~$ic~7Q44e)?RX`8g@oMN9pAFP1Il`@1gALJE0MzBK6;PL>y`iI) zgU<6s!>yEz&Q_G57$A@fDNK3vUwVQ5`d6-`NB+JSScuP$BEkqjRkQRtnURJIA3a%O zKZ*W_h`?VSO=*Jlc~*V>`oxuE@dQYUm6ILmelT?o)|H4(k?~bKU_NF@g`sSU1>W23 z+(xH9%awhoH7POfgghE>8_lNA2EbXS(aPW{ZjGaRzh_u|4$ul0;@svP)PPV}mOBs& zwW6k|>1NihJ|i6HWE#}(Z^+NNlXeyo?m8TEsnv$v{#$YuFv6cVbKeb2KqhXGZ&B~D zK|<^?bBAMlKi+e_+f#jfLO8X_Pu(Wk&K@#%%wW_8XeXtoq>uGH_Tgl9^dS-Bs zq!joFj96e7bLSyTsI<@C*GVGpVz#3qc;w7S+dp82lVvM*QbAHTA2JxZU0Cc3*M``n z+MNgV1p3XNNYcQ#-JSiP<0Ut3HXApC(HK(9%VD9|#sYpaO>!8RNJa8Z+wT_+JA50n zN@s%5q&w_LzL*ObdBiQug}NUD&%k02D;SUlb}Y!&YH5H|56b^X4kNX+?s4Oamix`t zjJ#8G?C^s(jPSn{kA*NG?>=sn_~Z3f@2!E`YQB6-eOee6flyub8co%kf4Z=DT>_fY zw&1GLciVarT7Y;H0bkgSA65S6{N%%fw{`xAGp|L&L{FDxQPT)j(?n|v%Ppp*m#Y(H z(p(d;fD;2~G`GvV>mT=`WPxF6x!^71z^_d~rhZ~(@vdW;I|}FBjkcCffyn3zr~_oG zf^1_O7S24smpO1OrgXLMtO_C){?1T z6`t*Qna*1IiLt=br~2PFFFv%WdEc#ieNAV^Cm?tv#4ewG)QB$iN#hwxN$zG~S>}xD zVo%^bQJ>;#dBp<5U*34-8XslBZ9<%?rv2HEkurus#qcUHR1QUD5*u&t4IdZ#B*; zV7=6iDJR)TJ!N@_WmOKaLrXJ6jARYD@xmx}HG=eEtIG8me#=jajAp_Ueu!&8Gbij8 zr0wSkLpSj{%4()Hx_01V=TivF=<-O)t=>97iIoJ*)d$xA$0A`FE7wS@fi+L`2pjs4|y8hPXw6 zPc&%c-_8|#&*2ooAK;*YlJaRKEY{1{k7?=scVr&69*!{?WxW1)^3j9#zNDu&uqFKh>;HOGy?EJPJYfm^N7U+HSAWv0|T30s}*M|z#qpKIW8P zKbS+!rnYfZF`7#$yvbUicx>6G#RAd7YOvz^C(##YuvTQ{iwJ&kwClqL@klLarRWDL zcdr2EZ@Ho?4BNXA+^tOG3$Ik&GrH&(=ARs{ylkLBww;JS4eE`HL_);)!>}3B*+HyA zsfMZLppZHUxNYn#Q@(ml;9414tx?Ma^zHZEf1SI3tT7lyAD{aCAA9isLgatsLjF?_ z|8MyG4{gE!5n2^q{N1Pm>_#!PnGu@+Hk6ne1JX){T>!cduW%`9W|?gjPl+YIPca2g zRU3*E@Rr8F?w1D5H%&;$Hje>^^$8Hq85C6XRDuB5r(mRKZ*RegAm@vzHYw>$G$|`n z491|OEOq#j4>5Vmghw{7rozY3T^|O{fl_41 zDrr+a2+o4?plf6=0VY~5ec%jXgIH)02*1%UaJ(JF5hcPNlhE zQG=sq{M+wFY&e+Kv%Py}4U5I?hUjCf=<%FbUp{GX5~0^`veX@Sf$+t#9^-XCO)^~o z1iD{K{D5n8i^Ob;y@Yf@8pwapX<)KoEp2{pMJkMP%EL4@h|L}3uM~78&;$QZV?hT^> zb+qhG;O@8o*uG*qg@QIX_DmqLdAgO4LS*J%eRXM)aDOiOeOTl=*My8CjG=Wlq|oZ3 z+f_Vgo>7t)-MylFzqfa5xSer(0l8J_=FQ5_^U{DHo@hG&vM9g#G@|YG&oWg!)MOMa zfuK0VZVuVmd{5YI>avBZVUn$fJ&!{wi3d?by_{#hvl8Jssu>Kqoiz!bf1Fq&W(0qEiJtVw8Qvrtbx z3#Om+o~s8Pca??b_JO>0p^@oid;iCfBg^|B(4~go=Me=G<6BySIwJ+8 zj^fzb4S1n9QKi**ZbDmCqukLl*#(w%0@V2q*eAn?8q__*py7JAOb{aKwpYg6pfGLG z^egS2(*NBqfetYu-rCEUQ)Ky~naM6zxbe^X5pdDYUl>;4uTt~ile4o3RDhvcMg+*A6GCl8aNmzTFH2dY5ZruYkx(&Ax8c33QM!PNKoA9~5fl+=O7BrfKm=nzUm!kw`9+2@>R-+P{O|0G$NwPrE%tMB`cdP=f}IHyug)8nB( zj-~v5-vLhZyvwjg?Zcj-vA64r99?=2erZ}ZMwRm&wX9n;99{K>LQ-hW;#8qdnOK18 zwTAWcM~43DtA<`l%h!0RS8dW7ZSOD^;U#kTuR~}}(~HpAb&hkYYN3eha6x|e9dQ?@ zulg4i>nqp25{KDqn9$-aSSIuRoQbNLuhJ4q*J`~_vdHf$^f#;|RV8gyu=!xVgAg!Y zkR@wPkEt64M%02kd5S*cVqwM{YD(2ILN{W|l;@nf$=QNcZd;Z}N7{-7JSA~M#N2Ru z@A_p^r^F7o9r>j)e#*miVQhCFKg*J9uC@JbkB2j^#nyAGRSdki)Hpk;Gw;SbRIb!t zI(C5$8hMskwRM#=xg8&hSfRyWF zf}H%SBXMu0x2~&=1uOTKM^tOz<2kp*uOeFmi;3=ArRTjGuEl8N&IU+p=~!o;e3I0O zybK)-EO08E4UlcEQSND72=P-Wzni<|m8I0z^>#>f_>pRT&EkFEUBQkcfdw9_;hu+% z15#9*$77Nb@zfV+>Ueqx%N1g4!_EZ9JV(FU*L8-?#2V7Yr9#lyQOZQSx5edzzTNTIe{_lVz_Pcv z1R3HL(H74-R4@>VH}I{`#T!@4=nt_BmcMX_3b0tOCJ4vZHN;jpUPVQaj(1o4n|qh85fa>ln+GMoJG(oW$#+!P4ALkR zyH3ocXL(fdu`b4a&&&DdS@$f;T~(N5S;1 z)boKi1{eqY(3G@6K8B45@G^yNQ#)=En3@bO*+28h zS{XL&KKQG9yzYi8rEH^Q8q-+k9D&!kGDq|p8mYk4s^AKC6%akvIddUMJX3YP&f}FB zvUcasS21#v)qituTM-0osoLj?sn312;U0+`Ihk5;<-8L4n}jcZ`~Z-<-_0}TX!ifJZC zENR+PdPrsMQVj9J(6Oz{q=4&e3hT6}?on})fa!@fOYt{1Dx8FBt&O+Sae$ps{DYgt zDpTu~CzE!T@xpaRrLdws_0hzebXQ5tW1PvTf!ZqZ#t*E85@U#yhOlDk6Z?;hFWk1G zdO21bDzqp#t1KnhwRt@*2;n|heI&i1DDJ3dzh5hkh2q}(_=hg>$Vk8kvlfOgW{~-M zHof^w@X^Ounzr)Ldd2!YU11p&1}e)1nOg=qNX^87UCZb~v4w%=3Wq`QMfdY94ENAX z80j7nW}zp)jKWj3f4wlhQoQ(mJf=g-u%ZsnoM_Ouk`PSdO--^MT^jhO<0W&*AB)?( zm^J!S=}k1@Hx~;JF=^06bm?7z-kP$n3PZhGW5e;G+_JkxhUTQx0CX|i3Lc7eo@^~CPtNiBF;j{uQVQW`iF_jkEZ<{vui&ON;nC%1W+ z$k(W0Hfm*>@n8dQuUr*lpfDws+eS$ZSo|(x0K-btXy7fy-pI}^6V4eiUotk@CnytJ zTe3LO#CGk@;!t-9_|$vRMh{$2{+8$hKP$y_NZ4fLb;G4M>_jIQ|L`K0rfNm~E1@kd zDXtm=Kelmhk;gibrP77VGrNlhuF9~}o}@ndE*iO`CK_aQgvc~#ntR1Gpt+$p&mIvq z>vd>W2>W!IN$G65e2QyC-%}Am^)w(`pg(z?LH0QKw(U6v6##!!z&guU(cX@sx6m(D_?Tr5k z4!d^-yL!c93$$3%PtBaAfBxmP=*%bW1HK+2>i;9?NU((um%8Gvp9i7#a~J)K(B;v& zx_$=4>DVKnV3-AfkDl`qP1ai*H~2;hf~LAR*r=uKn9N8XE>IZk&JPc3l;hXYv^l|~ z-~jqv5dPX6w5Fb*xW^45`0LAn{#EFE)W{*iFR?TQH9ah%tH zD!PP+jyg{2vuoC|5r#mVoh^BXSMmnx9|4BajqPu}Zu42;VVXiT+BjP8*3O0&7BqSP zJck!N7=9HYdMUhgA;clM?^RO7Cu0Ch6z>;+bQ{h#R04AAxpr2zqxys<>nE2t{{ZSB z#|!1XddkL_xE7XXW?0JbOb%OgDV$!(yPSF1T&cCPyv1im)B*gzzI=#=vTSI)yE_@(7Vb2|DayZ;*dBHr}_eB9z;F&}wr}XpFJC`RU zI5B?IKGtpnSGG`q+rTgM<1MF0$+n~l%Hoo1!>FRr5y<^nE*5UUZf>*QlJgu-rddR@rq{Fpm4uZ9iYhx^qLjms1X%Ma z%~O7Ar=ilv0Y@r{J+y}dE&c4FA&Y6T(Ir>E2G!kSr;)nbl28^tS6QpP2dX#uYahQO zfL~fgLQmU%2K_FZBAFLYzxdag^RR@Bm9dnbWZCEp1}oJ)0`c;tcvzz(8=>&McnpfK zn(_RL{Bux~L#B`WHEnJK7G^2^k_AkogwQMxqZE!!c(=5NH`+pdL_2o%svLepX*(0fD-!Y32IH! zbh6`d7DLtDX*n+Q78ojk#=mQ3lV~uF{n^0zRK4onE6C$2QHSNtV1e=0mSV-1vB#S5 z*RirZxs^h^lEio1{mhUAd9>!WTUVh;Mqea%guDi9G~m7K(Txp(s}FtZbUEpGPO$1l zSp#8v0t zLolD4$*utjFx?-@d(PD>b5E#b65&IHv>fc}Pnb|!Tl;ys-AFiM%#2A2bhV*X-HYN_ zHZ^3W(+a!mb1-z9v&r~Bn58H1y;QtlR>MD7!vVvHo#cHyH^DvrzzQ8ty-EK*`!4bT z3L>ejI43nvza&|CXNvC_og#T$AbG=@;wHp`GN#hjqjGX9M=y^c9@7-pQ>g3@fjv?! zy$q`7NLlP^WzgKdkyr|oUfF0j%r%bMHTG0L&Vrir4$`gP;~Y&ls2e|8 zz9EJaM8bO+y3k)F7gfm9rG($fFe7^;sNnC_Mtu$wM%AzdpF4Bhj){K%5%6?*rJc8t zC-!Ih2>l%j~H=Zs9)TMRI*pf1Uar zJ9osIQY_IITZzI+QW(W7HR*_y1c(weXtxb%BA{elP*6Yq(6bk{=S@K2v9hH_Mfcfw zSvtaW-j5Vks8v|hlRuiiwCUd7oFw@2B0HNiDFkocDG6I;7XECb`Cj zs%EJvCtNaQS=|k9sY)1tZEc?vgAT6+a-__w7!)?v3 z+Y7Og{M!B5KRHK!sJayVP9<420aU`WtM4gS0xSPSy6o-~ExY&iT-6W;NO*go45{G) zQ-B-1eI;rcg5h{O9RJ8z68dJQr)4%o)atGuz?T=%MGk7r`K*^ zGxf5h=!jO&vekStfKm5!&8(cgy6|C0KbwLa-LfNHQ~ZU-eTZbIOW)L_cut$)4dKwi zG4v##?i6LGRks#%VE1>wVvH=W8vL1kn@Agq%dszZ-ky6>Z5y~;7fOyNo)<1{BZB&9 zq)Aj%`8{~viMNmI**7)pu?Q3l%i)G{o18h7T}O!WlKCP4EH-DrJ&!J zx!2a`D}jv$zF(4S)NR|H@KW>*LN8A80>|ZPF3%CE+V;AiN3?{hY;9Uqurtw@EDBB@ zFD>aj@^@IHY?*dQN(R%XVpf@;XMB9KB|lu9m`R`=`6cDV19;3)>D%vvv1!1{FTt_2 zT3^L~xEWy<%uJ0@N;|`Zt@vLt6K@Ktdstn5oR{GcSiHF;lW_IAi30W9BQ1x`3(vHu z08l4u574p-E7q+l4;}%~l<>d2%#FbG4FA3Fz~DUk3c`zMOao`oYKX?EtK|8Q9d#pJ zEN$%v0uTvDKtFd&1@rGtX1(wecUXP|S^59B!rX)!lD6h%mKT|Niz+1S1 z(rMj(t9)O$Sb?b$^TrnKaa7HuJe5Prms+Z9l9E&4b4_|oiGEx13&f>T?5c2i=ix6! z%Su)UQ(59-aRjVO-WRLE{%GG)3|NZlYFsS#ve3>)Z)53Ra-LDsM(fMEmfkKo+Oh9M zCuOIz$}OtYa&6!;|Ib{5uFAj<=H9s$nGR6dievlmd-z$-vixSmF+SBp)d2w z$dD?Q8}fXanH+{MRz96^QSzGhv!kRlQo#J)#qt(whN~>doUj90eJicv&_ed=^=_ zmHaKKlfQKa9yyJfAGHC2g)p{=6GTE5uGy*{cNJn3M4viqVdbSPDvkc6aaWk3ac=d1 z>kn3j2z1LXWA&SS--$nUG2=YBTG-7oT@=gtT;O{Y0R#w)7ec@~8J_^H8uX%38H{9_J*xT!L&5mlA-M)2dPi>!Y=U)T$ z*uOXPHJq4=Qv2XS3scG-y8?uh$CLZBYl9l-W)mU{q-QqN9hpcl< zf~exEkN*PSb^-1aW$dbUJ?*(9l(rVutKc7`GW1^((@*!{!?doJT+;#xB+FS>Wb*TLvuxAsP08W{_BipcIDbfRAHq?XFlcEFN^kig(;`ACzMT^xY3`0uBY ze{10mHha5#@&=9QKr{V4oG%>+w9Z;u_Sc&5*(11F2?y}Y*|-j090^rtM5QM7$rO(I zQ}}u(P}yU~Koaboci@Zvn3?~dHtWow?Wj?p$vrXNHLS9~XV^Psin=AW8~Be2;+;DE zXIyc&sI#uLOmiQSe;)?#Dz(4079rD+Z5==`@%)9llJpAor~$35dsk;ln-qbCc0C=Ny2rc0Z|+mP)rZ z@F6Tnf>a2vx*~I=81Bb~Z-)%mSfsi|S>|?Tx2MrmxJS%;u|*#)?Mm=nE;tBsu>_!7q&w}8*of->@BOaQsTzsnL;-r5s#%B5s#bR`2X^DJ_mzs zZw^DAV=sm_PR7r(F0W-8(%!%Lc^V2-7Q+E6?MnJBk`6Wu5Ih(l}HWBm5s>pN_$9xh$y;IV_&edX;BnvKB!iE>@0}_Ap^U zb@egm>OYNXi$w}=kK{(a2+me{z}k7l>m6BT`45r|KCN1*JnMb1nb zH+3GW@pXPUTRDn{Z&3 zwF#furEUW)KE9oF_iR?oZ$*V#t5T;eW%K=84fVEWsOjR{I?EoPHwFbi7D-Pw+yp5w zWcJ1rIP@D?AJmeteR7~>%Y(8`E*U*?>E@+yv?k7-OJ*l#NvCy(D8H16OkQeTk}W{Y z7q%4Y<+-zFg3zb^9ahVRb_U)*XA7Q5YT`SLm3@NJ`3isg&#ApKaU%Zfm<#Kp5u5HO zEC$u+rB`3Yhw*Yy0zUeF0{#Y}sL?M2_OZyx>Cb&-!1}&=LJ_L7ESdlV|AU$}zMj4D z`C!=+dh)A%;fh=J;>^Pi|*eVL1U=e0oU0O$`P zh=FqS*pHjet(_O>X7`;gT#!fTVX*GEW>H;~UvfzVz3lh=Ct$JbtNms(BbnnQvf9R{RLtkUBD}V*{x^7U2I~qGc=GZtyfz83;h8jTbwedCvQyNf@dmo7hqt^!$9Q zDc<<%N%r7uEf$RCfOw@ttN&18j$=V~n8o+pcc3cQG7u8jI%J4futZ8G{PASlVYuYf zMK?7rL!rcu-f|#0CI77+SHJA3*PA-z{c2|L6x2jBev_sk0zJym#p?YiweM*n<2m1v za#1r4cudH{6Ty4qJ$Fo{KnS&u4&2hRX{i69s*`EDEkCAHt};!E6Dhj=-J*i2Db|^3 z0=R$Qw_~o1*1N5yIj&OUuo>+rD zw=;u9a8&pC+B|*}{~E1{9SL42rZPhAf4{qoPdrfTgum&p#%gn5XkUw3A(I8B`<7^4 zA$hZ9G@sDcV z(gjT6oA{}NLHr2Cphy3G-hb@{qj0t=Y6~;D2cRntux+Y93U&B!gvN93(b{t*qAwgv zA=3wfp3n)|d!0NvNaLriXM69m8F-B`5+$^-K|;)-zNs1M0{x=L7jL)HOHvUd|4r|c zpB`L86^m_L~FFL$er*EGBZ~4WXVZlQq98uIguYbF1uQG%2{=`}p5$As|&EUYl7$UUe{8*k)w-mfjl{?M!p zZb_Rfze|eKA71S1W5y*F6yj9Xpm9B$a?P82p8av74YhTmTM>G}@?Rf;!0iC8@V`%sK)}{*1rHeX zxv?~|ZM)@%lXt}>y3EG*lCzrkaZJ&%SuN zEswjnem?<&bD|j=?rW-SHNkRpy{>)~rhZi|ciir3-waT3$p(Samnu)NVb!ZVvb~BGAi{i98ABXpi2Smd19U>K$Fs{8C9P?hS)SQhx`(jtlaP+>iCrX86Fu%yfWOwMo**x9jX zcu`wO2w}XIC zV{2ab(h?jR3XU-0s)_pBQ?@tlk_!(T%+F(G2PTqyNYo0Vc+Hnl?$=X3orVsZ3jFo7 z?6k{0Dd=JnCyXUmtkle<@#|AXEt{|w0mzePMi!TvFH5)~l5x`rMNm7N<)~fB0?=P; zE@NGO*6Q$p5T#EQSVlFf&Te-sFg6)zVxdeV(Fgk~q0S*TyDxZblC>g28;6S+?6X-v z?sVAfiHP8sHkt34%Al-&t1@A`tu4Q5k6?k982+<%^trP3DYoF~bUQVL-ugl)s}pvj zQoagik{Ok&=E8;{VLkrd*1sW!?GBW|QiL^ypi3T9-ivAh>%Q_uZwm_+H4Czbt6= zo1wCwp^X(>k|PGiz{^+>p!VGRRC9<$>8%F#D1V!aPK5>vvf9!wBaw3%Ja`5 zZ86*ZLshQLt|l%g3VYsaVx5g^3q#(>S|amAnWFRtqIHHkhGZ%`nn;gQ0$FA&_dXql zJS>j>jIdI>yX9`3W^LfzKlOWqsCl=cgX~{o;?jac`B3iWMCIq2s*XJZV5z9u27s{5 zEgFq}1K`H!l>JY~z-b&srC+<*U-(`8b+l>V<3lS&T@%ZfikyoHY^#{)SF14$8mXTGRFMF`@{x$K zd-c@#eu;`?oYSupcPm7MS8VqshB^p;d*m^sYjn>kz8sFX4Xhc1kvI3q&U}G|{YCHZ zf%6a4@(f2?j(Waa%qlFV>0`T>)4H?fC>P@a8&bR%RbW82eIm5CXQTn@%JW!`uw{>> z*`Z|#nx!@4nDJu+^nudbUy0tQ?-+h7vwNbY*;8`ic6Cj}aJ5fk#Etv?X|cIX#ItFO zO)JSrC6EwB;hziA+!iRp{brVm0}Vxmlh1x!iOhV%3<>?4Kj^0Cb_DwCk+k<|$F4i0 zoSBGvOZH9VX*+;c*RHoR5X$iXbssf%0lG|yJ;5GB^RN;UI^~(riyG}TsHJv>^-UR4 zdv7V(7!QuZ+rtqs_4Saug4qM%Q~HJUH~MnscKmB5876&>2SH}OW>M9Ux_4FC7F5h- zczlJcb}GqF%06(G->%U0n6zT9o1o*|%vVXT2@3IsbLD-%rJ(+_cM#c_Z~nUCw;P<* zOc!b;ZZG3(s(Y8hX3RqyD@ca?y|Q(y*+gUSsH7OM2Z55#nBM%+259Bz+H+=~0gYtzouJ9JgU>ubp5X5jmjC!V|Qle9!OHNR=B@YY82nU`qI{YEZ)Y>6v9Bxr9SfRJEa`wBfX5i17~ zi_{j<90p+%?bi)IMj6jsSl$~%@c!yuF{f=7St7M;GOT&}Z@_z3s68uUF`7srYLywI zhRW|M`(YS7{DPR~BIJ0~I-2LR!)B)6=}alnw3zU=qe*eB+xfe;$F2cYnIkDhuAa`5 zd0kFj4Q~!N)fxOQ<{)y9ZO@hz+l4HIr*^NVvO$<$HHe8nzediP4(j|k$H^1W?l*TC z0USL^2IUg7463x9(+ zD@D9<`D^{VN^tw@Vs1uAZ?zA^C&QI>`oUb8S(k~qXidssZb<4ZUJ032$r(K*6HD5b zswkZBSn#p$se3DE0p3Rby#Gu?YrWV_>Yd~u=@i)T)J;DNP1z^U4A-*4W=>;eOVS$1 zWcyoIM6C&`X+dEp-%3c&FC+L~IkPueB^U@gFHFnCT`X4GSJ(Po$rsb4l0L~iRCEjR zot;s zCKK_P5uTUnPnz}sp}{uq@-XSahS*XDWWFcuQa>Pc?Wv&em9-+^K*98WF;NyeJ9al) zcRzz`{`bn+UIw}SnBqFs`ye=mKqf(pVz8(A!9yyhm%JjR_hPkkDJpRrX0TU}rpqq_ zFfgD-y$-}FiasZ|<&hqz)0Q<<{Ib}5cb0tKIW8G5Go|2QA+ABCXf+VH*3xO#9E{JL*Ay?#{ms!JJ6MoAs&uTuuoT_wsKbj_m7l6o6?!0D^`gZNz>sS z()yCnTH?e;oXly{}_LdLsxIX|;t@RrmoL4ZVFD-0S-=kRvf=@CV{ z`nFk|?Qpv zID|EkY3rveFQ4xOk!V7SffhJ-L@OJ1Lhr>&)zlkfVt>9dpY;x}Ct&ZtwA&PW=UKG4 zc}R?|$#d>75Qaa$@oK!H2;fF$4O|^d&7<>C%{tydtqXL)bt|#5tZu)`_ZrA0aei_i@R?emWI9&~d#Jkznv`@Xt z-3y$tRVyMMfVGwO`KT6^reR?a)&26q4QFKz!L#IRO!Y8h74R|O1`s&y~RliIv>oLfcbO$m(Nv-r=zwf1( zipw#R+%AojqaBa28`<7m=axig8I<<=>J5J(?E?~J%i`MNq8i+9KV|R7|Dl`#=M&@+ z06%CvbBuNV=oLL&7=lqvMKk*lHnl+ah%zK%hf{;aD?K%pT zd|pv1>yh{v939;#3q2lHQlFj>RzvV=O`nS!scIdn*lcKa5};3He1Sf`*X~Sw#MkA? z2z>lR7wG10{oq8lYfUI9nPyr%;KWD?6TbtQG$*dDV_G)+$MTdi-2`- zZy3BxGEWQOm5~kc3!D*EUzdT#p!x|GQv6*&%T%E{A}QvVtxUgL&A!#*Fv>~`s;QZH zlhr~2szi=WQP9vR&t~5n*rK4`-$;8&b(5?i-Jy>`ekVbeR0~|@ZhE-zueNzZPU317 zE@3eAD%Dz30OGyqS1c&fTcNgDXjhHfYs1}1E@-e`@>$0}vQlE2k=^1-(Z!ScrU`a9va(3O2XR*dHh>Gk)G6@D%Lyy%EJGwX<5_F_cAIHu zabSdv&qIhECt4r|ym^=I9++w|O!nD=8#%gIO&_&e&Jp@s@w+%D^6u*>cjvbfyDy3m z0alSlhZQal{5eJ7(lm2}d*FHU=q4262E--;cfF4jI3wntdeb*ENQq#ozfd{f*ilK+ zSxsqxjH}DE#HgqNf;IM-)Pvj6Mq_x!FnRLj6`aQ#s_ffo>NXSL2Y z2VBt{s8r9Uch$aJUAPK;qRc-#AH|-RQ4Q?*TcCIaq}qeXy?q8wssx zbbM!XOs*gG>6$$9mKD0u?4WhG@etV2?b6-H*b_qS^Jy)V=3Zc3uPc<(XYibMAkOwb z<#lA+DxaLZ z9jGBhdtcg%UD=B{A=Ud85yda1_z4^vVRSv66_${lUYU)IvZm)&1dDwz|5V;&5=1&_t2UCda{O?e?l4X^UMn z$)~?>h=tG89?vzzXO`on>6U3izU%4(9p(|;7BW&3-mc3U6)?sZao;D-HzsfF!2ln* z`VxJ?uLy1>4<%W&Z ze%*wnt%lQZoSRwpz)9^}2COwd`T6%*Uep>N3QJo^%XHswppl7vEo!v2&N`yi3d@#h z4{Y--L0%kizk!mX?sq?QHz%5m1jv?rg$V>|=NjX;hVCoCF_Gu~){_RpB^EUvIeuOK zqaRh*!VR+>3+qiJ)riAX&%g;*Bv+f^-(aP3ge;3b*haP?9_KId)&s^;I!d~BQI15{ zBlvDHMmFI|%5d9g96{p$*r!RwrIpp7v_cz$CSdzJ^e2l#QTHlsnnLCHg#tH!5t1AW z#An;*)Vxtvb1CiyMjvqdOqji?e_mWzigLNGJb~uvU8)?jZcpq&p&P~j<4gKTSz5mZ yMpuvWM5=BTN9E`W`(`A_r|mydf}SVsA37BC^O~vBRx{WmkQ>?t*9tW62mc>%pORhx literal 0 HcmV?d00001 diff --git a/docs/build/media/cmake-select-a-debugger.png b/docs/build/media/cmake-select-a-debugger.png new file mode 100644 index 0000000000000000000000000000000000000000..3efa18ca0e1242a00733fe648a3b0cef790899ba GIT binary patch literal 41673 zcmeFZcT^Kt*Ds9Yj5sPFgGvV#0RaW6kv@(Hf)q)jbRr-kB}52CN{F2fN~8vfLMWj{ zdIyzW0wRF`0Wt~%NCc#W77}g%=Y5{{-u1of`|kSgKX<)nkIktcX_=(r=Ok8+xYXwkKfX4JEROweB@3AdL*Qt2fn)pyyh{|Wk)q@ zRpbBt_>?qOV&c=|<~6P(hoc?>r_Q8?ObpJXBZ~EyG?!jws;!iB(MgPjC#5p5N1ZB! zSY6s`vsXA<%&OX1qlok)S@<3Q&$9ZPowt!Y>qtuIHv!Cj#!@`8ez09{t>m^OYu1RH zHBMoTzl{%_k~)0m+3~+-ue%~JjHfjILDl^56Z*J`FI#4ex0z@FEbd&njJis$$IT*5 zMh^HXi`>K_U)h;%+7{$YJAB3uTiVzsYUOENWOEBPN1(m7Y&azh_HXnsAAFnBgX7s= zs9QALTf#`5&dlk_55BIR?{OPssIG>ac$>cx+k;cj7Wq!uCQ!<^euV4C>=JzzcOA(h zAsc+m8Zdxj59bMpVHzTkkt9Ntzt%wzZmTzIzdL!Sm!s1qurJ1hTu9S#i zc`7&tmj?XZAa)kBvxxy9*W8dp^)tGQ?h~wqK)_-!sm^xXpX9KofZ6NW85Y}^jX#&3 zedB2@k8-+ICa?De`RnQSJQ=fmy(@`P+5GONBB!p(f4u$xxs{6?9jo@q3YyWTjEn`% zydh{$EX7ghVaSjI?S<-tyH-0a{&-@ovWn-6CvCH3Cz9`k{`rZUF$Ejflna(0fh7D4 z4b@d}Z0ODq*3iOon!gBq;n40r(AkskFPnti0uOMOY<`Ue2ygQ=pEIQF*X6ZFohylL zoQ=-KMLkYAzgXEVaBDLquU-L$%#&}=i!;p^0oNF(7gsw5Mai2Bp>|Iamu3X)b^L)2 zBZKLgl&N>QtU2UPGguBKUrWVg(%dYkm5V|vx&Ae@58vemo*w}3fOgpK9;-<^>N_WH z$-nG7-eJf3!XPo3%wWMFW>QnVlu{TlBZp?e%+1JoA#;mDP5$JI0-sLol(O~tm;&A% z-f<;#Qgq_Si#4lTb9U@ye&CMUV3>w_a5u6UJKC4k#qHSon+xy&XXI(_rC2ze~xZ75fWk@SnWjL}5*=HL3-B%3>6O<5<1q zU^C<$lOqMjC)*V;QZFHA9vSaCp+{mZ0CvA5%aYj)+NuEubweZ`nKw-9djh9rd}_Wu zoR(!yul)M2H9R5AQEDtK)P?yTw2j?PM0wU=b(Dn}92-F*25VMq)*)utb~UBhrd_{#v*iK1iA~vYsITNTxE>e00lt(!d0iYPu@I4h@z}hAA)%wEYn* zn9ia7UP1BG+aug}fZ9VZJhFMp(k@xf3sh7b5JeNE*MD85y5p46iXivN9m+Uc89WSq z&(G|3@e_I{+bg9fq4YPG)^O zT*Ft}ag@e*TxF~nYE-nmu(2jYY?9<_MkAt}c5JVV^svvFDRJm{#R>sEOffdw zMsCjaU&Vy=vp%;>jiFSGlG0Ul$5D+X%H1lrp`rsa71c0kNwW&h5@Il_v+EAt^2%LJ zt8F~WOT=mkB)XrFk^%(v6?Ywu^wn0zA;u?&gjTh#cP`tb8G6S4d)p(RFP;BQ2ttmt zaqO*a0N7kKTgQ~Lbn ze$yH;7<;tpZ8?r6C~{eV!Kz-Y$+1bXK%bg=7?C7uR727DWBSIVy_`r{LMe##ao1&h zj{|b{aaJ&wOoi$N7wHW7{5fS2X6~Rm%=zBJ+;EHwxNWE;Xhp>3gMss>(wM|LSW#p= z*I`uz-IUf9<4u$db$Oqu0Hd4ed|hQ!u;{+kPShJ+ioy_%(ygDRmu0^Ib#)`^?(~_- zi}Af#N?-orY0|}6_k;2iPlz1iL!Onlf7eO%_`-aY5qEz+6x343<$8!sCv8&C>(FZ_6Y z(es?=5meM()KKagd)LefxEBfBtSo$0C}%3achz+zsVAsEH@>!a4Ud!>mgZc-?frh< zZs_{ZiGM9(Tu`^zSa;o0{Pw@mFFGqF&t6<3!}uW4wDxCvq8TUAiiRPz6)1zR4D%I4u8wkjOD zDk40X$E)yfa@=;-8I0%>0CR|Xf~V>K%a^T>ICC96z|%Yb3(>}{LA*rjm+ST8@q79T zQ1m=kR4@Dn1P(v>FCF~DPRniDc5$kK`n5a2JTusD=?Kwy zSVkaef&3@OB%cQpw^i62yH}7_8go?xUIjR<6<(RAwd~n`_Qwg~E|E{zwKNr6KAp1i z_=z<;lo2a zZ`}Y&#T$OAuE52Io1DAFbr>sZRI-Tj#;|8t@%aGriv z{pH#mHd*9Dw#+TH@~8WxGyWm%1}sW_Et_pTIgC{MFa%l-K!O)5WhyRqlUci4b@cJs zt2S3th>qD7z}$??{8i|V7)nIfvUN`}_bLBUjLRgcVF5|g|B`N8!7$w4uK)U84Y!ud z96Xlh32#c0cLzcn+Ai~!^axw*?=VH{SMLhXn0nw}8&|-Z$t1%={o@0T_hRmJVLisP zf{Rj*#pGT`zV$d^7ip}ne0opBp8~k*!_yL26*n_+Ron9eT~jEqi&!}G_6x>i50!&g z(O(KV6OOI_FxWfL&!djH@;CuQ%uv#8q87IWER-AiPfC5KERaey+Ik;(5200X zP&>uj`<$7a+_U^o4{+^8>5Kn3O?xc=Jm|OgEcnwM{FhVSMXTfDne6vvdyZiC(yjt) zkE4QTL>-59W{e@^&>^?b;9;9RH{&O?%kV9A+#+(vfgrgpY2nqljjWv*o0M3;uQxxS zck%m${iNa8E^GOz#HQ`PF&aw2)MoU~=1_?GIwvVWhlF;`sI526i#GS}%h9~MN%NwN zS@fnb*vc}JRYB0NB{igl6s_WRrj!X~kk9I;{7>zN`Y(1jz%5f+2xJXJIH*6JH1w98 zMb4PmX6iSV6^Wsu4EmTEbOM80w=QVOLGozRM8!fi{Wn4u9s-lth^cyx&+;9VD06u| z^?k?=1}%mlLs#l=^pMZs!?R18HiWAjf+zU3WOn%vfB`8x+yo2VA0V`yw@oTB1c_Wh zHY|*DuPfyFN!8QPqvC-LML}Cn17L=iaNS@}outDk+Z=?7aSE~e*k9)%9Gkp*lSbV2 zra|3!gw=|T!qedHi;_e3%)6&+w4)q~h@Fg1Y86T-vc`%kB2q^#a0RVeEq1 z+&s+kN&SKPsqsaag4Q`yK6jMYle)_hyT?4xIlz;Cc2Y+O6@1#o3WO5_OO{D>HH?EY zNlLcb>Nr6ibB-5SySmHycp8z684n%I?E(=kV2xh|cd9wbA>U_gC3*o$7=W-#79u@% zcJjR9c&FbtbX-=(g=c|zFX1*nVHf^Ig(E*;dl51anqNP-gX440V2tufOku7;0cGqT zX5xyts>N-8&5mhq>B4Q@M$__F#eiY&r)&OmSH9v4)D#ip$*EDQDpDW@p+b7ue-xj! zW^mQ}DXB1&ISvqB`dIl2Ac%65bOf+cYONMw_@c)C5xpuH+^2cztTl`y11w>&hlk*dWuxG@1;R+ z_YA3P^VD9BOq2fQsQMFykfH&qv~+BHrM@jhdOn9{>rkL+KF@e^S!!NuZA|kOEzqyw z97hJTpE9^12N^@yuq`PzbY*MMjN1)p6@JGfOH$nHsD?^YWEHxC{NWmoM`LstBpR0Q ztpJe$^rqJ~P-*WWxxQrTot$y7mu9$i$apNWf4DA$Y&`}5WJ23jwnxWjTzXisic z8BYQ{3&XEl_GE94JZ$*u`w09ORMgF+pI0FWo#Oqhxy^b6yJZb5nYND~6%0bX0x8}y zOeAxbW!o~5$)0#=Zo7QR{5<=G21|?qIVL;w4N4oS3!q-FaS?IA_ZN3m_OmI3f2}O& z3N%6#yq7q8Z9R$FUSRm27fl3;4z$s!H{*ES$J4!Zab{}%9Y!Tsjp20q(wWi`O!{TF zmDeLliy#s`C}ezb6xb+L>4;9zD(4SR_6g7fcefJn(OJ(Xp>Rt z{bDGZ>#lt=m-4=XB8sp_ydfvy2ap#D|wjxrMCVNy2Y!Qsa3$uvD+~T46GeF+guH3t2?& z@k(8r2vZe^)le(jTn4=dJL^M`oDyfaP-NSBZ zgiyk)VBb!wvu=$%?M)Vr9q(xXAx7_AfWrkH`sQHRv7lGAjoksaKya6iRLs#UVb`K3 zyX~8#Il)*(V=ZZA6xzM;aMuHZjQ9NCT>9tDisAx#G$veH`K+JmZUit-#PT-DGT@Tr zZTAva(@yHix{85jhA8uU~Vv}I-(_t9wf=5F9IiZd2xe(lGdGvjPMQ+fFWukCrax=X?x za)I7=fc@7xkP;PWw9b`lR(sdmn>29Hl6Vtam*7?b+eDhcDebJ_mD<22?)^l{@7$iO zV^}r;QeV0GJRE7rRAV?|d?{2Wa=L;*rfiz;M`fS+ccZ`Z5LB)FYNP)4b1Gfmg%ef# z`5yB&hl>r&x!3*KSw`S;EV>hV%ZD`GH-K$vXe|`X7_hti(_cIi<>yYjL!G) zG}w0B;!*ABy$pqSk6(EiMzbXQ2Q7zBWAS09k{V?#2ve$pTlZS)buy@AgZkEXmD?{~QTk zLdhrIaItjThn1c7gWR79%EG+C%QXZ9Di!+NxNK%`FE-$5q$eL)WILv_$Axzu2&;P+41IC}ME)yrJK4mvU)IOGvDqFdvaVGcs_iFAEj|Pwn2bh{R*h}sd z47uSSLCFk(4#t`4a>Z+lO_xv}F_jY-6_C1Ven*;^s0Fw;E%9~E@+CLm{KmB})*v5K z;Y_HRhe_IGKdY_$nvDP0Z9xkf`!E4SOvaU*8mWbMCrw?6Y>fPsWA4a3b6Z_dPFnlB zD(AkjLz46hc&BcZ`tMHV}p?$)IAIhQj0IFxG zu136O4acwZFhyURt#vyFYHBae{3Wj!-75;~%Ci4GAjAEbtE)iJ^_bKw*?GU7^C*}@SN5J6$KofKZWQ|UX!4- zozRr=_YwlQD9DShT6HSp*0ea_?N4H#B#CefheF|%aEQBugl_eX1v}sPms?^uQpW>D zWn5d#F#V}JNJ_=BibE45(*~C|rR8~zVn@Spz?!Q2#W@qk?=@qb&&zASTErT^vCidS ztm%7Nsc4r-$?U++UYQ{z=3*7&C+Lf*&i%SWhpVqbt~cnZBoy!9NJIncs{)A?&?v(f zE`vs!wJqh@5vHHp7?$H`(v4A&;uma`8gi&5c8lI9_nuOYrRFB6Jj&8CtG7IM&DDY8 zSDZ^b?&q*U=d3Eu3A4|b=6{rkd!>ac*SG-6xs+QRaa0w@(#<5I$~wv)O1UpuG~A1A zd4O;wniKEZOy2#rOk2jlMu9P=x$br;9+2|ht6?Eggj_4Z_Iq!#S#QvRujWKY(=LT( z^s~I#rVP+sc!u3jWpV;$$2QO->>$?%m3>EUbhmu;sX5>BL`#qOw@>yC$;Nm8)RmK> zo4NIJE=yzd)5sr&$|`lNfp*})DP>pS^Jiy@ev@6ic+v(g zsM~5<;&>Eo@uFS1gD&G}1v4LsWglAUbe?hgw>62s7;;NnxN!|p?)Mai_k%`{T5H$% z9N_v>b59W-2S65aT*YVm0p2sYlZ>wzQ&L!|rVuez_9I7GF}u-5YZ`HJE3Gkv>p|gg z)ndcL(%-orZ0sJ@q%>lD{mvSdvawFu^99+0XzrMAOkBh7Q>Tb*z zY0OdrgcWRlWU`tEYv2vHLU_m5!}sCh_FdPLN5oDb)y^fyiI{^z)fkD9g8umNIP-ospJom-ypw>us`un z)}Nf>zoV~7Y!IgHa<(P82>+6ij$A>tq$ijjgR=(^^{?37aSQ&(d1%J<#w-_zh zM8k5b)wlUDW>ss0d9U|scGpKN6&@k_P7=aWeHT6y-yO#+9WtJil(^n%W6NjnkVD;S zT#!rw|Jb!(<7S8?V9S)od0wVcH}#jFE1-fo@f&1omAXzrWSi2c@0@oQHWHdN!)(GA zEAKZUFd$Ok$9K?Y&5xbg#F;ZG#QVpTR2R<2SM-Y+c&==#X(Wr}vU2>5bst!N5AJKm zQY}{sAMZI_UB!)$IMNPSxitlXos0H7lV=B@G=6Z!IQupUL<=*%`R*g?Xa9Yqr^3=3?-i1psnJ zhJg$NuPjbHGKSg&pLPPSe8f5)V^(fL{3Mc#I|IVf7)^xHq*{|LJ6nl>_F~de8TEJs zIrom~?gssWouGdtGzIg>_`h|?^M?07R}1AOT%2OOAd0u(`U-epE0+b*8z)k!KAgwA znr2fvF@(%CV|}q;rZr~ND)tQGOcO;l{=y8r&4@@B3YE-kK6^5pKqssWSn6iRh7AWL zC_B!TOw{X@_qV^BCrp1>r!-2mUfc*tqF!*8k2kSoDoSR6<7PfD4IG5K>qfQMIcweM zwu@S}x*YatEd7SE`n^qNzMU1KPIO)NTWWVKvf-i&EiGErxfjbDGzaMuMiWC{@yL)$RbhH_}jsjo;CLz@7Q+9v-4DX+dcWXCF(?M zYc}C!2Bp4_IeI_Vn|k zqD?WHg0DnWG35Jf{QBS>eZAC)+~)~nvn?ox25^qwoBRz7ky8? zLL0fFLtpnmq@!TQx~C$m?!HM%66{*3^4dNNgxb|=w7VpEsE%48>i;70eQZZXDS7CN z(8n%IC8ZE+N{rhC7`cFiFPLK3z|s*-<-;{W70TG*fY>VzdlvvPBfZrFkWBn#nUt%6 zwM3+%V-y!=Kcoc{vKUd1Z;ue9tB^@JEx1ND@lbMYanGP`vY@_Ujn91~qM_2h^Wk*w z0VjFc8|@kZZzuQOvza;z`G`K^wpsu9B=78};PQHLfdZa`H?1e&uO?-C2sIIT3t&f< zzhqMayg?0MX9kPt*IJan0|j zbMU0(#g4E8BW5EW-l``*UDGb>G==^OM?X8udMO0eZ2CRX`xD%s>UCM~5GTY zPK6Oh48N-~wd@u5FEWd&)6}Mdf!|W<9_46Ym)cURcA3@Wc9ZvR`aQer8VOG8>9p!K z6jHWYw|Cs;Fv*{);6z+}vLvs0KT`C!R!RcJDndVbP|)CULrT5{jB#=hMH^v$#?6e;8h#P zi)j|*HVw@eTl-P1?)Z}kGur#l^S_u}2(zfV1fa(*#B2QGuwknhb?sHGQKQrwt)5Rj z02;*k>EXq`JXKkUrl?bkhQHA|we8*dRw&t5k1y$deP$&~?D!{NySO5}s>jt~88?2- zpz_z{lJ8g;TUnF3Fabsqaq`u}8w&~-mA;=v!h;BJ;QW^3mR|gF&8U!ua{v?~JyP}T z$*gZK-QwuW7<5RuBZ_Tc0g$SUywcH`EaIlC0Ail_&b{khIWHvzZEK0%SAM-$3OWDv z6Wy%s;fgJkE2q%w`n;X6x72;XvN|e#;Q9Cj43OGrU;e6#fos0t`fzm1bj-Gwbkd=( zST)LSVZO;6`T$2ys;LD{3dLUa7SqzxGZLLX(xwo|YoL5D{_3R{pA5%Na*kiuq~fTB za*VMMyowL|t#pbgaAwJTkS=#o$-ZS{y0<0*JRZh#7^t5+H$HS=qxe`I zMtWaDSFnWv96bY9`&*rRfyw9!2_z%)J@Dhh>7K{n7;+5M+Phsd z`ueoxa3xDFvzENYtQeX04Q3sMGwfvqRl-u?y{fllLLmO@N%nn&*q3F3`CjS#VTgiq zC?+|fB$cc^8ZwqXv=lvr0se8-+%c;`E1xpsK#%MC)cVI>6eGc3`(sAKc$iNJ&&tt# z6no|X*Q5QMgAws^QEMh+`xE=a!+E7Gzew0=E-sDz42bV|(2e#c^(EQuR$-w^je^cX-&!y&V%xK%WIUxVF|jtxU9=UVFaRg4u{kR|iziYJZQrDvIhC zp}9;<*Z%ToayKe|X3SIV6Y#}*$T4?jsjX-_i_lPB-2F*Jqra1ruq3jat-^7Oi`P=X z>Z(`Kxic&U7vQw_gbvIc?@6hOU#G^FQL*^G8#B4Ft$iaUos#jb=ZBsJX-D~&O)4+N zP(z#>UzZjcPm4-(?MFF0pzzA`TBql!-m&8ewTdVn7d0QQxsPJvX(0Uk6NeO{kGSCa zul`c)SGF}O-=%j>D;|5Iep_yCyZl~%JZ?U|FH8M>KR~Cw)caXlPLbhw)+U8yS6lp| zTD}O*H4NLo$R&^um``u<(m!L@!b^0q$sDlAAV=DDqA>CYH<9RBm$`Z=_C2e}=>o8j zr@ix~tUjMwcx8_we6C%K*7OFGrL68Mr3#&?QLk#R_4ZKhc`lBWsyK?WRnXwNeC+2E zOmK%}9LT^zYZr>jdv~8Ny)0Gsj)0*bt-`@aOomaeIjC2y!{cJviM3rx0WF@llA#0? zW^KJ_lxdq48Zv{v5SxE^asCtbNX55^K|{lsA*Q0fQMRwpJ6Gh2bLD;bM$d8m>ivGVmM zBvDg+hqPSTJ5XlUEGZmG@TB9(o{?c@t#dZ*(2U?THZLObSUmdbCk^_&G0GCC9$Y6< zK%4p=nw2h&cGCHS;>Y7k4neTH+s-{F7?m6PZegchkH?G@6`a1O&Fwq$2bb9HJ#@yD zcBC${FIB92>vyc?@TsBfS(e~EAmK{kx>1h7XS(B;J{;-UYt0iQS1$+u<<>pYtd@<_ z=}84^hrJrgk&knseUK17Gthg}jk3PR_;4C35?LR5Y@Mv78k67*&ne+W*bFu}a*v0W z98wU8hLU10deY;m%fxyCcZpER?FLU(zyi6_CE+jTEa~k_a&AKD4d=?uN>3rKILtn@ zbFK3L4$J#Z+TUiCJ^R3-WJ;n{!uhF9+H7;j?1_4+u=qmcQ{UI5TjOp88$b@6gubff zyh`kSE$#rI-r*ohXEkdiQ^DjNJ*%gdwg~ZQ-`8cSmkrlFM_Q^44GkChLoZaCx%V|H z!mpDfj}0jfnR#r#*ygDj5d+xuPAoD{55wvY9h^uOZJh8m1#UE+zlM;PM@IyK+aK!8 zd!~RN6$RCvkHA1~A9n}#gNVC)&Q6`W{QU>W4)J_|kD{l#iJnoqr*FNoygvT# z2$bjBUqu5wTaJu^+GGax8c=u=qk_R*6ES+BvpvszVDW(|(7zLb(Dlr^w_FqDKZf^l z45;uPg8q8XawSoy@BTK6W!n}O_VDh9Eas^g<0vq1^w#SOp5Ibt!<}cs)w3$injE?Q zuKo$j#qchsHeVHj&My2po>TmK^|WQun1GYZn=i9>N?B-HT@X}pqUP#gf|e|Q9q9Z0@WK=Y<}r`Yl!E`QMg}rPLc!v*tq6fXsoHK-;@b#rWbg+Z6Wpby;$U8 zQIKPs$LsE}#?d7)w1R+9Cf`$jNUNqjgoV5muPuVwMZ$_LuDQxOb8196FqoMBKb!DM zG&SRh0e2?QHra?TDS??ZCN=w2Th{Zu;XUWB`@i+5JmsbR)&U$dzT1)F#SH6|}w&s;=vaD@eO#djj2tvt2w$s~sF>t89i_T0NWUJV) zUfi>xQNG}iJ?BApWh@2ze$!mnCxZ^M9EluGknwlcIq;9lLcYIHTn@*25o`HF;L~!r z?yU8#kQ{5jc-_1w2UQtc9Xd7aT*tCQhJ0grg;0>1)^RJuYkZ(H*ORNklUsQU1Ud&{ zn!p|z;)*Em%i8|lfvqH&HDs0q8LxLzWJO}*L&nhxP9%C;^7?v=Z%Rjy8r!41g3q>Z zYs)X=M*F!>Z5drF_L!)yv|)p^cCh#pDzaFK>p|##+4+qD<)=nw;3Zjy(* zfe3!SsY#!araSwB&U#E?Q$(JBc$inaz4(F4dSLF@0GOHSFR@GpokgXo9LS<;tKmM` zOI{OQPuZ#^jSJ`j*3j#VVdGwHYTlst@XKF@v9()&98&a;uatDSk!YqYPakqK#`tz` z=@~9hYV^#sun%yx?<4fIh?v`T{PY7v$sh3Wm`he9S7$!FX7gB^7w=h^7Tj^A?fR$~ zuO>Y2h~>nKTw85rF8UUN{MQ(}x;J6%^}8lqwLp-VuTXi7nI7{IhaYRD9(!VO(n`)l=X;j+`lzoV)bg-d%d}4z2SLR}0Y=0Jms) zzB1s0X3Nbt>i-sVjP1Jaekm_9{oseCpJCaDD_`}iv|PjH?ZzF$w@&;JV*bh%zV8W+ zaB)9Z$H6i4F=5B)pDDjKJyMb38xIHeoZOzo`s?Vp&({^~X?JRg2_sQCn}abq@7)OE%rWCFUFGpit{u+B8>wl3N z)l4016we!-4SypmJeep#C(y5oBE&`~?0G|X=INGWPnz5~xJJ%$-iciR$$0u<+}FPs z`L_4)qsTe=i%QtGb0^{E8P8*V@3DvJYwAwk_!HaP7e`1h*lYedTNqUPN341Ic;YLu z*qIma&z*YXA`Q>ihK$*$v{YysRm6_fOtr6O4rTOVRESQF-6M8cTYh?R?RUhonqV8j zAJeroehMvyqBR{|Md{c+^X&`%T1X$F!^0i@9LVAhsz?33KX%AyIHsUQlPkYA9kp;& z%7aTSusuh(M(sy<@+cekm};P^wn;#Kz<`g7>dEl=s<_yA0?eys@|Fts3n9eF#kK&c zg(JIJq0cVzCox|K^Nb6a=XSBRjX%4TG-hY(m?9!zXXTv{9(13M3Yo7r@41M<-#7P6 z?XS?&kc1nE;v=E?J7sX+TjtD#b;QRuyz;14a!W$j_=$eqN~olfw`g+18gO!Il7ye3 z#)wKGX1b}1C#h-=Jo84Jzl z|4O!qbqW}>o4Rlo5Z|S-c|NttvAQ@@hJ~8dds=znV>7|I2b4x^IuRkP=mMe(=xxN3ov2ENy5Bbd|EnDA*A8%8|)7jVGbFkd2l>ze(f%~ zNxB5Pd^eKjj-L~%@GqRKEXiIIwCGGf4n(X>t@eE*FZr0Y3O5Y3X^NA!;yJM6}A2}$TEhVN|V;%x_8WE?o-Umu_L>RGw< z9-4N!2_z-f)XprctdEy{!y8deg#O<`aZrUsfsh8Zz9(aN=9r=5lbUSOs)Ul9_DLh} zVgwSth53Xg7W0jh8skMU^D7C~zFWeBE-vG00rUnbKs@QaZO;Eky@1rZKS71YE zsLobv&UB{r2^+8FyJstE4u3uK2Sdr{{j+s9Vk!!sE&AdA8-y1HIG2+os6+s5Q}i`kqEzY?0Iap0>>{T zwmXz#oP|)AsNRy-TU|SGvVVPhlTQNKI$ob{f%Fl|94xvF9U^O{XDU7?Rji*XL>-pA z;k_euE{O+~Pw!qNv;4_bQ0K_y)3c#5G#iZSN8zD%!NJsTrKAj%(VZvD+3*}@4ydu; zn&e9UF`XPUNxUpBuz&r>zZt&WpIJ3~wxkq&YyF&mMVA z!FM>m$*RjJx^E3y{`;>S>C{AXOjZ)h4wx$6s=5P^x@8=~t{nnYmHf_e6RO-mWpC9= zryB7Yj%Y?sLDTC#G-#TG36xqIBfZdUZ zR3BxMS!1il!xhFSzrf`);?t_YO<3_7%1lU9w|&T|aX!!_M8&PVu&Efjv3)_IWSM>?N8( zou6Q*M(pVO5u(KDS)gi}6#`7nEWI zx&G91)~iGKZb8G=hPwB!kN+-H`roM0%9depnxnnhYp|VDdo589PVNS9(`iIL#O&3g z^%JNr)ZV+cf(a*W??4j+>nFtt4uRw9Dd45l{TFeri<}MpZcG-p-+XnLXSc0luWJ>} z*&R1=oYqck7isy`qpJGpi}MKNsu7Y{PrHTxwAYg*roB5`a^taNhYD_a2hg-hAl!g# zeW8*#?bm2Gy_Hk~Dq|H(4QZSSNrSP5V9>@j&!(Tue&2P55=#+AYJEud3YyfoR>A3T z-MLXi*@&gw596#<9<?Q zcO~d!fA8~NfMb|yva+&-0StSUy1iYGu-kD}3b9!k&}R)0NQiNgI)u~gJthL)F9(- z`f;@BePRkY$YbksxL!F+j=kFf3}X|THUWfa$JNaJMqSUmi5>QORTChQvcEZg+dYbi znZPi&6_oxaim+>=a2bYnOLeRDDi0#D|m89Qn>QE)C+t{F(IZ zv#70Iy%D(eH?FY1o#2e%vM)4FgitXmxScf$+m3xL71QPQi+yz9K?5UUT84V82S~h z_o#V4%T*t%_ZdoGl{p8zdtv?z+&3VrskX2<`d$|{KS}I!d*}~G#?@P~Tg5SG=`=vH zda_5%N}f^*@$nhbN$LqM;+dauhDE2r(1Rn(25M@!nOxR^var(1at@WtVq>5y^B{S) z=H-X+0?b&FG8#NTQ;bP+0lIihi*oIiU~rnvhI6B&b1npbE9Fd*aRvV73BJK+!8(r*3RC^V^XGRVEDtR? zehAxtw<>;*#(NjStpyTCJK*%vS=L@5-X~7`8g~&0amv7IVc%r)@IefLqcv=`RDM~ z{{6PRrh?mnc9X$*zEplLbA`;eU?B|X2I~P4e`xq74%{|IL{=w|R848OS<%a)4&;wI zrtg%e*Rs4a(jLlCUzfg;1i|bk2n+{m>mpB9*qTdI_nH?=!;R}bX8(jL7>2{zoHR!L z-q;LtAW{w9tl!oROjC(VAHPU~7hcAw1)et(5fE4z`>M1qkJHk@Rfn4XRcUM{^aqEF zoCS=ETxX>T?M6#tz4y$TYZ@5jX7XhSY%iylgA3~+G-Q?vC>ySP37gEze&$G~m z_7wuqs$9bs`?>MS0D-|+|05yROrDBz#dz;+>Gg{>Mk#7IDpwRQ1y^apI{_ZiM0t?o zy9}|TQ9Xa|uDz>)9N*ek1?jtMQ}uihd}g#SK`DRH*F4V-QY%;dZRO7w^4tcZ4TU*d{Pu|TGhJOmH&XnjKYS*rj=sMr?H{x{fit6&O-Y>LG+KVW z4-pl&XCF@{1y4HjNxy1SSJCviY;Qy8K7UB}^HV0sRSFoM-2fr?sh_A!Z-Bh?d4aSB1>R7zUn8-`LB%#SdE2Jj*5<$(8acNb13sw+q33`LD$VvJ2` zaVwcij`}u)qQ?4hmw=Is1t-uF*9Z3Tz4uU&?`Qt#L_d-PrGTtjTvLd0o0lt!u5bAf zBx&UR4Qu+^w2^|U90h`xqsv@pij4PG8Tp|tG3-{N?N3zf1 z@$gJqPrvt;;26#1}XnsA`f=X}l6o;1bQwlC9e z1Lx!?OTQGmFaBYge_W(mPgXPBFBEA!^0)DjDFRn5!<>ul_Q=?EKf2N-ey%c9r{h*F z!Ljjh`PV%S>7}B|=7otJSVPw6El01KN-t+9l$_C^KPt*~XJ_9*9uxJLGA@BaGIZ0{Z9 zfB)meSCk^_<-lg8UpBL+m~25u-ZO2`kz75RQa+`s=E#G>4F>Y$n$Bg3f8Ou_)&EhM zr#LC^HO&0d-kp|}-6W=e(#>7>z4(@_i!zw}*!cO?pJm^3oVvS@_jdHw6PgII#tv;7 z%CwYuCItxj((bShy(A{M;ig-`*I)YsDY=VF0%C5^9?#d9$W%}rIeq>AP%%ygXOI7R zO6Sc-tfC8Ah=JR%Oe2b~UsOS=3&*&=lUt*6s?4~giDNgmxAdPOg#Y}BAW}_fU#{|_ zYLA(E^t?k8v+3^$i8dkRLIqp_wkdo1>qAaYf6Kl;b>T9%?gRJ(FVSQ)LQnNVRp`y- zst0j>J=qfhW{^eGmFmWY(Xq!gz*Xo~x(8i#KCwlEIKTWytJld_IFw1P2@2E7FKB3Iv{wlWH@}laAaDVomHWIqN%SwlCnDD~ zO+75xDnl`D-o2disti75bmQHknHI6mPSnc*io^66Nov#;`9f=p&h~WjHtTCWa5H-E zEL7x@kL8%wgeE>(@(3v1|{2kMKq%yRWbWoaSmSJy&nLcmb ztVIan^$LVpZ?RCN$opvYr>e(aT$(V@nRgmVHcsUlnf-q6M5;imw@K&LAEGGAufH|n zvagTBM&vb;+Y|K8*DwqWxNns5eSEkX@cg{Q$91W|`YgOuXexB;6sM9%6BTt)GpUV; zjc~?D?N_-4ddFIubRV7Gw9_C-amw5(-^{=vA+^DPnd`L1yBXBc^Ed^m8C=cnEd4b) zaf7M;ChFkZ-LhFu$GAn6Fx0y@$=hX7;~9}UjVFibWNiV_33bI3oKZNH=$Uk1YA~SX z4(=YH=kH(-lmzU9Lpn%CDmUXq|FD;~V+{%3Zg*Zhe2sCD!`^(X>EAs%U2{eT<~kV* z5^gfPNSj9PZP9z#@9W*HHoJT2J?W9x2?Jwvjmm6#%{dD=l-L#IQ4A$Zek3_HnOD&9 zxmyQr?j}K;|4Sg(ZhIiyqC9f==|>a5D`JjP4B)Gd)a45PUTA_zxu!|aTB9XI)kOe^ zzW2J0_*iO+h&r2(BrkO}WN1%3S&R<7Sb}ZaGq2W*NF3} zd;#d@eoT5gFtI7U-b7f~g?zggLGFc<+rBXD6LM=bJf?L97b;o&q2g=wG4(ez?mwYF z0cLN|bu@Tf&F^3uSuN3iz}H4b-AzDG236};5-vBGyNvJ{*1}5b& z?CuPDA8GX2x~a{1oBzM+z3ENU8-cn$D=loP7qwd?_W{o`E(Pn)RUdD-%pOEPR z{`BBw|5ni=51z%CrHbG-u@|gxny9jXIE-~uC12Qo4-NdOXz+fUQ`S|$XY#<`USJ*B z;kJ+*2CN~B!FPqzF*^8i3n0>|6%m_jS{kITn|H#Kt2KZVa7j&!{SD* zp5sUR7eQwY%(|)z*R);5p_LX*!nw|ls*m7p%pP()zm02OWFcjTQekOe9V&I7wnFAb zdEeSQObqcwk!ths>Si|K!J?c{e`t-b*C#hWrS{1LgGs zxl4P|eT+U(sR0H2xrP~#l_a8?B4WJ*8IS$>o&y~?vY>;2MoF=rjk%&tSGOCIvGh`X zMrpx*CLZvSBgco##wVq%C#F3}rIlr?oBMs@Pg>kuSoFlMBXJl_P0a^lYajPIuwfE* zS3U!tZ;Rw~-e4Elut()Hpst^h6kl&8%i)&gkO1JI_yGIU1XtD{A3PLaei)X!4W6*1 z6MuppR)JP7#?pV^tMkYDH^t3w1AlP7qVODhg=81k|B)4zemGV(>*q;c|H~^mM!LD{ z*hL1G42T-^wirTwYuaSzOhCY)(PO z*a%H3V5w0KUEKoEGoKZ0+=}-6G#Ih!i>PGQqXp__4Db<HfUs%9S_xQqI;A^W6 zu=de4U6!5Kzmo%A4vB$;DCTa+hpdN%EWI%Yj1`gM8};JuTZeKtE^LW!eiio&nKTMP z`L|o9_HN8XZ@Mrl>1nJW)TcS>4{WSOZ}~BN8SBGL))QF&4osuhYlci+^f$@H+LbP{ z?P7p6MSgr0ySfy}4o|!PZld~c_H-Y|qUnD!Wq$a1q}D%EQyVij5drH3rI<&qkmMeAOo->%br?3Trrh>AGyl#<(6J7yhkkMBjX0nFjTy~Y5 zH0n7L)Rh!FcH~lc!|&Wt@Loo^?8!5%9Zs^cf9Yn_EXegm zc6;R?%)TMvc5b)71mOF&xj$K5$b?euqJ$RBlzu1RvM2iF)-h(YJCQl`%(&pFFd*UN ztgG`D4JVefyu)YOdU~rBgiKxcO2I*gm_ti_?Y0S4={JIaP~c$s@TRp=#JXV%_I;7L zVLZTZiyb-)s{yLomQzzfSsE&Qqg1n%$_EMq5C%hDC@-$D_||weo<@p1X-rk@kNye= zRS0_>G9T=N*(q$j;gf3{&-vb2HK;R~92JsqR$1do0c=imZ-3j6|8eANOCO(+(3|CB zXk~yW3@9C0?m|a1L#w{XM2LN-eYRl%LyI-WM+>6-v4S6*EQJzLVcoQV*rZ;oyJXW` z(eBF@Jo#CNdMc#UPvggDHlKL)_<>iATv9WzrudU@3bZTTjm6&1Ag^$7o!KTGmNecZ zg^nft0TATgu^}f-seXRJ`1kiOqm*rSzEQcCsZ-RRwp&U)zq|1WUlYb_bkZd#Sa0A+ zjS?EO4xF>osyl|(f0zw!Y`nzU^Jm=IKM?8q_bSV?fBC9b6m8XA(8fhDu*gYTMtFG3rQZf6;I5%q+l{d|lxj`k*<{MTTGet3u;CVPOLL6Mf z_A4(LlYMsJCB2~#z*NKlr#=>@qHf%*c2iYv1mt+ULIbU1Jlbh|9?|F2C)H0giKD*y zElqAb-ioIIV*&P&7&ng9D)HRGb%Mi51ca5ZGg{xy)RWDU{wl0&(*@AA-i9%(p31Ao z_P;(D&%c$RDp1mP8_D0(`Y@k<77|a0mv{i4|Fg6*tJ&bk_z{;N+Sn19o#%4<8il)} zVm=f?wN@?R`>L;Q{H+)2gAGbx=kS3&PVGm?gri=9QtDv0J)MvB??41|`PDBrf9a%x zR0Iajo+?@mjvz!C-3sOd%tB4e6??tTJ}^(jBd$3=KvW9G%QQ?2jxMIwUj3Vv62g1i zw=343i|aCHPHN@bmk9AJJjqsu!EH5Gq#ley;u1c5Ee4S<6jR~BBWj5EQYJ5#bIir# z3Db!x=nEs*Xl0zPlin5*t}wf}QI-EU6{YY$s3-|B0lk1T-nJxpcO;KtYBQHR3$h4~ zOzpk<@pgL@@ZV%k4sUaRU8(!PucJgV$`L(dE@hmXf8%u z`U1Y#<}XM^W#gZaieEt&^atqD7kCTA<3(4U3KDzuwO)spmWfqWo8qa#qxwqd6Wg_E zit(t<WEMew615fvNJ@_g9+J3T{S+r}@L@ zBMhd)1Gc=d?)${LQp@`Uf-WH91H4v{n^f!k0fOtR!bcsUX`>@cVdi(ZW2=Au`U$15 zGd4i^4jd@0f-6?~zV9B+hjHKxd%&tt(HYu|S`cTYbOok!^1PlQUth^NfS>tzRdX8% zbpIGqt@I-zulcTJ>1ArvmQR>Iqz5=BwNT+iGLI6j%|-aOwN2WCqEi*=p7HT#vH+Zd zx^^7gNi}}0VF>t_7+ghorl!4`Gvz!CH9Emdc>|;di+@tH8a0nSmbA&5Jf-v)kEQcZ1xcR)--!E=a zt#n~bWM1IlOS91nNCD8*A?7UXtK)DhoIEJsj#1QBEqv1K$dGVvv_0v}ht^SW9iM8* z3|{rX_blwJPk1+wdAauVDj=s*aNke?)LyQgL7tiGxG~4jIsi-QK6b@BbCsbp*(mt6 z`-r)4XqcR{`;}E52(CNSS@!v9f6;FrsBLvpT~=dX*}aihM^^?-S!?iOr{0m@*`$81 z{js>UDVsGUD*~!tzV6&oXV4|#y^`Y|8-02&ghO6h97!q%NGAUv1a$ltg@E-7 ztR+KU18|^QClB#r-!r#7y8RjbfiX$9)i&t_DYaZhm}AdwQBi=1e=7rjahUI7L9Ys? zWIsBp?QZwbTkpBB1VCtK6jJLw@%heLKxW8vwS&bnZXnJHvPMZX}%7KNDhd1Fjk-`_wlHaDUeqUIx6ku?0< zvxn(j?q@9{5T1_LHl!pWCIH5=^gI?fyIvi4#@AB#>Q&(M1l~QB6G$%+D;hbcCV(BY zz#VM%wAM@$vOXDC^k=>mjA{q~Es@6ly2sF^YR_Yq1vEpz_dQucyoymrSYbR_>b4@F zYBWvZebQ|r8&3;p8%v*zd=tY`;O)jhU=@6fPArdrIqTWwV(BFUYUWi_?|iQ6F0H;A zLCs0@7{u4OWND-?-A}A6F_qsOY49#fJVjR?d$8nY-#L{6(>fZ%)m^yWGNcUUGzMJhbNEEvCa@~yMuAd)5yx;?~Zs;+>b8{!fC^)uv#hj z%@LoTQ^#tvZ6c9W!&RdQh(OJ|2nUOMrElsJv_Bdmjmu{DuppdC54#l>fa8FyhP7P! zK?F>E0&Nu9^A1PZ5_~+nU@hw9>kO?-ji(-f=q}dC#F)WH+QO(ymbqzK0K!+Xu*ykn z@A4;wWl%hk)sKGBrekkZbTC8{Z`Gle#B-8hWm&z7k&>_#490gxeb)TvBUK0F@u$f_ zXs-d7YPoqmTSrO)oYuba>y43OD((zHK*C%;kA^Om7y>kuFbkvGqoj@l7=z8d zSrOLdpVfYEv1DN^hJwNHWl$wLn*_fSE3XXG{AC1@n7Yim7W@NIoC{OtwDRPnIw>!c z9t`+F=A7m9;iYH-0f%6~l7?>(c}OU+oz;WW8is@V$7}wg9IR?*?ZrM0;H}MhJj}BJ zbysUSg**}q0fN;R_C5>1NOCUsC7;9dFw#?X^w1oD3oN5>Z zRDbC?ur!U;u6tfZMn9IgwU-BOIEe2#G0i4e*M`9 zdIzv$(gFC!C@DJRXC}Tyf76RY_+UFgJmvVO{~L524#VbueVP78MsU(>Ze4NfDr}xl z(LI&cviKl`nyBbf7(5)2IX%G_Q^@sYjg{#? zlPX8lAnt+ne|C}I01g}TL%!uwQ~;LjPFh^+iZf<5t%{C2gQ3YOWyn(EtbeVA+q#RY zVgW@$kf(2_@;$y9Ez^SYbvel{n=drXyBXHasP<7dlV*JM_!yfeL-n5xDlb{n)X`X< zC^_Dgqy&9Y{pxIu7=O15R+?-gGn_=Ys5-?}tjn5lO;Xfm?WDj6W99-e|0ii;&2)}% zQa+sLQcYr7^5{&FLLMcf9_15Bsj9l;p3r?FM0ogGS3<1q@m+5D;NEptd z;3Em1A+oHsOi=SspA*Ax?UuTJ{2S?w*Ph>*tfS1b0^_<>Xvo^RR1`gwB#!bv_d=>% zKWIL^mQBIASy*eFf@rr6E&qB>Fft)cz_r&s(N<`OzIEp2@Vcv6ro3?C1MS5EjBW+| zk;NgHeG3K7aknZ?dr7R>2c%FfG#{MM^BJXNiGU9!K%;wNNnYz5S>(B$x#Yrk#^q$? z>@kZ%Q*5SmY6X^hC!%HMHL=G)dD7*@gd*U<#Sum}0I2e9S8(*)-fZyRMG=~vSgM+Q zzDbYtmD4YlV*;O+djTgkZVvh1`SWL9QwpI;ID7+?S&kcb;EuTBFqjV=z0a0N{uznc z10XReTXDvJ(MMA6^yzuf>dxX!rd`#b1LhaZAQ{TM&Av#u+QOorST?Eu=5=Z3Y2m5w zgNG*Uza8TC3oPp1TGoV?tiMbZoBnCsCQ~C=YGZxA(}!oW>onIn)7r%R_a3HmEeiq8 zFzEVGE4fU%IPbdkwIQ>bNtus7-gb!HJ4gZl+zbYxGs@F1C+u)jd(xnI8d*8BKcyW> z0PM3=0Q)RI!*Fjqb+}!0 zAF)f0CG%PzoIIEnh=5>My$Cg4EbrzRHArmLV_4ZZJvef})ido%yF%Cy*=Bk-mx%P3 z=|HcB)b)@=;69ZlELj^z`G`nFv^~y2@r-fQl1ePKaW5C0h2soa8c?UZbI zdv3(Y|8AWAK~vY8X<;%F;joG7ww^V5P`-?zR6n^m4a8DP>du*O(a$WZdOck?>+ElB zozZ;~-BcknKSUgco}&9?_*X>0-wNSQA})GrwBX;Bt}^uYY26)V+Cs`keo)^z#(Y{e zkeLHSb(cCbwVEd$u>872K)^%CfY8><-5KvhUS65|B45xUzUR&NdbzV0>5N7cDYUav zSu4S;CUd8}tQ$}JOf~2t-)ZXmm*3orkR@e%t`x7kMBO|e*gl9NW&18utFaZECj{)f z4lFC@_Wjfrp;*~^k3Y9iUBA<$wLm4!-17L6jz~?u8o%hJ(;P3p38wGKqWoj!xyD5Qo9w z|4}W8yTMXRN^;baW0!~iNwuUn+gcy~Z1lAO%zQ`2&TBFS9hrNL+k#CN_y!Cm?ZNo; z`(}+ZKT^+q20*QWoOAq{Zwc`ZP}5xW#AIV)8fUERi^77$E#doOHLQn!=LgPW<= z)iKE2>DBMNUX8*YF^+X8ik=&*z1y4m%`DdrCe^D)R6@_gEsI>-@Ad{SuZ9^;Ox%qo z4;B*NC@wAvPAR=vaoOm1aT6~~rBY{g;$Im*jnV~016bMX)vN&<7iYkD5LLO)cV_Exz-e_*@vVjm=09bnRj$OoI%+3T0uuA_qSVirpcC8^lFsKZi}OY&jwLS*Yg zbVsuRI#J1P#_vsC=37EsBAkdS|GlRf-}lS!2826CuCkJn@e=esb`XnDO@V2HRT+>1 z*Et^c)ekIBGZn5A(YGls3t?3cL$o~m^xu!JX8-=C9`{|3dyo1X7}q&H&MgsKB5Iqk zJWDbW+dmJ_G2angV$M}Oev^IA1lKv2eB%^`yYtV`n=dxIT9s-0xoE=dYbV%eUPIeI z2IQ`-&FpI`I0zo+W(ihG`+@UrS$};U#h$DjzWnxg10UaWWZzsNCy8rNnqKsVoLcU{ ztul)mL@q?~H9*FPN|p81S|>a;3Dn6RTo#-~g#Cpp{xQ3)`4R+$!e~-q|?-Ygpg#A^0zt|4z z@fYD~yI}c!HR3(>&Jn=70v*y1I0+gbr9Nw=&Y@ezgvvgf|^}Ak1**t7+;e5 z3Xe)np>FMQZqzC)rH$ME#5}rc;F#}~Qur;r`I`#)*@tLn$w|&z3j|I>J}bCX0?zmY zm7yC?Ac~C(KSbLx70)aAllNbRENY~A1^WwEjVF|G7vvRmmsuYkzE;^`a-`3y1|1M| zNQO*5by+x*7|N}htxuc(t=~}pdve?H8UxM6iO)2$_ZJ2f68-JihOP2HGM_M{M)HubZMov;wsGHl~_^ejT z6|$A@Ko!jCr5o&(t1t%E7CmcFpqr-el+#fAuC&sSIvXSsU4PCHG5&-4L=%2!J04hq z$dwg-?c08UAhLulh}>(-5kyA7Jm0J}NeK`6dA$;V8@q#j{{b|#VK`Hck!q{F+84~z z4vG&O7OJ**T66^uC3+oI6B`z=|4-zQ;`^G*%ES!5$zv+ZYL(QbDhfw*cvn6TNUxIo zQxa_SAU(+gDu5ixU61@y<1YWO)t2-0WNtETG;PO|D2QVjTp{dqT#Zadp!=}is}T)_ z!1?#hZ7oHB!bng%wf*7M;f<=2pX z{xC5n;mn8ex2k9}%3ZX)v?Pyikyz>~xCJmzPWqa9uZScno4<|EF{@uhww)W%GXA>Q zJ&$-ACI8(rumGXkhw5sINwRc(VpTDQSDwQT+%a&r?9wuRW$+qT2(7UVM0>eTtolcN zdjvCVY3(|RsbpMk)S@XsC`G|Qf)kHNJAP!ZO0>Z!sb{u?HnT?CG}1mp>S?J;oS3|l z)110VSweY=%g)Xyv&$YwXaQY2;w@SD3QTi(B2M@P`4dr?s_p#U=MC(9htUKHo0`yq z@j3_uBj1#l^?V>WI8EYj@Zvusg>?S!NFir9fhdOiL-PA%pTRLvp^TnOpoosco^;hL z)FWlXOA%%cV>cT~#LmH|gkPe(t*dtczD(_`{vej{{^VAw*stLLNr-9+sdq- z_Lw}KV57+(TZv#WG?ujU02ExK_Xxt!a}BEKHgRa1b+(F*g7*y;0H~r)S6od_`Si-% za7wOX0Df$I6Bm8!TfBFV-X!DQoSP>Pk0@t7as;LB8;yL_OUKJJVUYwYeM2V|M}F^P zo>v$CjPkzJP-oecl?-c4Yfi{cMj=v?4KDeQTxal|c2a-k;u#0{eFa(uN1Oo`f^Vh3 zBfIzb-y42O9vGn?$@-QMVX?%1Vz&)a5njk0=D-l?eDl7fv*}o!Cs4UA(4y@R*`|Tt zc78wi#P3c+@rMe+EA57HaPS5ua{pL5AzYnS)SV7^!;F)Ut%FV&Ne zrGeC-@8)PA?UvOf%G1wOr2IIspVS&=)_SW-^ZyJ(Itc}(SO|a8(2Qtp%Y2Vw?wj8l zN#d(LS@QO;HfAXAZ$;Vd2L3en1Pog9-1X>pVc%{Rw-`VG_u6CQisy^k7O$3<%+Sk% z?+SH{Bq!xh|9m9Llb*MN($qEUb~4XRiMSK^Nr`9LR@`vH;+%6?(5hU+MzU?NJkGPT ze~O`zxYa2lqQc&`%bgRF0TJZE2d>M}ps)Q>fC#c)%4viDrH=#~qr41=ASJg&kahQV znkS}Kg!Dy^40;QA4(<(mzoiAN3V_R*BWXZ1%JM4WxfwK>5#_zxvC^!ow541TB<%Yv z*#Na%6+yE+MQ^;U#_*J1^^UHbn+Sn<6l8B9?FqZuH2|SM*2V-djdcF z)v*m&8X7;?gW)`ruIiqCjPaaA$R4NDRZQok&!8 zvUcsqTGJFIhLO2Df#0U<)AjGqF&q-xOP0%-Ae!ZJR*uC)nVk`=@$gR7F7)AXtNTX@ znvg0aauMijYR{Un=DBUqX5-qCWiI3tIsuE##mRff0tc%fr~67 zAVTeX`sw*rrrx;a9WtqOCL}>tvyA|A7^tE{>!&^exaGD2(t(qg01UX1sF#aJcy~7QaGelWP8-$JWNPRKQkopt zU%@88{lAkH{+mtL8V9!kL>MA=N?#*-&3y5}7~_+*1`#`NfG;<~R$*v4@r929R~8qs zfeolln&PHCY`&+6bB(2lHcd_yctlbC{+6sI!qm5)jHyI~zk?vACUJkfVm4&cjC(M(&*J<(U#E`F}+eW@em+pUf z2iReZEkx_Z(ihX}RM6&_O#i-drYHyK%e4oFRbB->zSK+xr5FbfuRz$hIC7oy0n%o) zhuNGBVg(KWbs_Utpe%cB07}*d=B^cBGW_GkI8kRphEmD+6AU=97jT;fF0|Xj>DgVz z5Xdu$5I;J0hw&;Nl*SMicR@UybM&n%#jLiY#u$~Gd$vWHKY&M#0U$>JZH(R;)!rLR zPp`yc)eZT3NgRD1)(<%u!wrU%RT)+l?eZ7FpQzbSQo_Bj8O{* zY&bZl-M`+-Ho*PgtYQAs2mCLa=1Bss7*=zZCL(R1b>)~4W|=0=zZCI489ANpp=)a^ zjUS4df&*=e$gvk@^)JmsZFV>EuXa23WlTxNTHPiZc!%VY7anpC0ZWH^j=&p!d|hkz zvyxk4tFvVM3i)Ti_;_q7*>EeV&eN$wq`?pH;hy3o?%W_~vbuEr`67S_rfw|l45H_C z%&`ew6Iu#V0yJbig(XYmakC578TdFCWD+cSipBl>Sh!uQY#P5+PkwUzF<}3eRWG)& z%?3kf$Euf%H%6wtEM#PUSZNUgCteIG9P;lUfQJL855JFcR*b;!eR5FQ?BhI}U&5{f z3Q2CM@(HkMu18;^sP5xR^V>wnfzeo%8om~#F@T7>&ROb?$}}jwP~S)2<@PsYem-wg zlevP)C}|(pBSz-CLHO}3w1~c@si3^u#`V$IOAr=EEGbZKGE8aly1pIlArxs^V z|Mqr^8oS;{wt_@^XA_grC}5r@RQN!1P@fK* zm<^chYe0Kq4dOs(8M7&;E);1g^2pRj*LD=CqCC~!^oHim?jp}1cRi0Z@Sd?yR!w-J~K)%e%fXG9-UW%=VbO(k3L$miuKn6{dXlyB%8z@WVKyE`<)%0gCcDk1oQ~q~p(t*2J!# zTdLz5ex=n*7VMje-8ogdtv&a1mxY4cTN?TA0cMv_CfhX(xGUDNH(&Wf^8=Ef=L2x` zhH>s69<9fdXP8+pEyQ#3p4$AJr-m|>&k&c(% z0{TtB%3tVIaPU2mof9&>*jt%ptthF~eFu7{WdI4PP^?t{UGe@p|2mXz1U}o9V7^){ zo=1a&crE=|%jaKS`X0Aj33!$ZVD4&af7O;R-X1JjeqUbcn#05A(jmnOE)1p>NJ)? zBdbhkxi|pX&{vmMJvw>0m;K7CzEeYT7~e3f}6mj>_QlnoV(d3T32g&n7~Q5KUt6OddOS8cxzX`+lv$&;wjUoQ___<5r-fbY?Z#cN&V zar6bn;5wU^6ZC2~*xrQkUH=#K1}~efPalZ+=h2({h-(UeMQ@-o?U1i)`(ZGJrqARj z>r$rWNPf%Q;Ev?w9qp`@vDDU9l&FWzJ3_Q9cFy7f$ zuW-OypyNJPjaQ?{1LxcYv-dQGi@YnW+@2w{$pkC?^!`8QcD>RN8NIXdqzBN^u%Mf$ zW4Q#)%0He*nJ`L7T+PDMKF`tfMS0`2>z8TiTLHPLm`!|t0docESXSb+n%(^@+C!3< z=vaAX8Vj(C4+uriM-=mI7c?wvDw;N0scuxmyX#LjR#nAI9SJZ#50Q$xCw|VvKtoe3 z^QGp+2}*05!nLnOSC0XeCqDB7;N%Cu8Gn((;csut;X?S(74le9uUb`V zp!aa;S!FcL-*ig7y0F=Vd%QoI*tCekb_A{8f7 zss+lrU~~Vz=N*IXiP@D=$*)!ZE0c=Ztws=V7rEdX`;rHZCZ6qij+&o&QW2pA(l}W@ zG(^!9w%w*mwMJWeiX zP8r-ibb5VZA}ImJ>Oy#X`O*WVCw@rTe5y?{*rjEpNf+ov{0d&=E_{10g6!kVe5MO~ zIP(d4d)L=*X+!y08gDUp!zJPPAbI6sMldO}l{C6*7RwCF8rfKI!a zcaVbY!13FFZS^zttV7#CoeE{J*-*5RU0&o znMl&Q_MagvSv-0FpxRUTL`)He9>JXkWnr-UVb7&1c{Qgp;Dtn#V#=))4eL)D%KKpJ zM+xUBg7G9v3DhXzj;EuRt|;AomUQmHRr8KR_iUyQ$7=O#<%M%P(_@UYmtyP|Q1~)- zGZOT%-_W7GeHV26u-CzQ#bfovY~f3RxY2z2wyD$tSE(?#{bv~!88X>?pHi_#u@^t} zZj&++Ai=VgdSK(Lc2$!(yYdx=vnXVfrf5~PsrwV0J12a5Lc;A$KPA-Yo;(_VIy-e= zm~ZY~bHMLVf^FTuR&DYv<@O>*8BaCKaRNsS_-~cJD=9L%*YY|MiqCV(ENo0Y+(TA- zX?`;;rRQR5A$OW&dY}g^S*=^65Ti_`gtP`qkn=dz)qIbEZ0w-xLcy+-wHpIvJP{xJ z({3NHRwBZikZ+#xd)#fh?hokP>I+)H`57JItiz}Nh zV&F~pGi;T7h9`A=@63w~1T=VScip-q8~v$b-kh(0bYQ%wPa(c9@UfD0x0CnDiFnOv z9gD;fzh`J_D!=8`$PoG5pV$$tObU!r3-G@5=dH_byp1{Ty(~JVnXAuwMR#01T(&ak zyJtfQ&{g=!@RBIWn>d(bE}R>N?zWK4+U}38#Kw~+4UbEPp`?q!-->tt?oIePPr*t{ z9lI#RnL5!g7ixOfvvrFRY%rzgtMIJj8AOmFE}WC%Cr3(EsTJwSTP`1(L^q{;ckQ zo6eWv2=%rPFaNax39s^BF@*Ve*I}pwHb@GKIE4f;tXcWHET>Wo>@wG$cwZe7Fosi+ zsvIeK!eZ`Kk+!oo?iGIkEAZXZDO8p&0&uHXC#r?NuuH;nBeOYbY%F;)V0Ehx#^O|! z7Y(T-ux+0{Ugs1gw0yI<2e4eJPQlMW{vIr7D$9bM{!%&w?uiWub^_zKsPYK6uB+YE z(z#=(+%W0~^Ls{8MFj{ZJPP4-q)MRf4~4yOuvwyyM!?sk>X z3eZMU>K<4&NI`63oy}6D1KdWCR>1+9xqUkI)JAw=S~w}Npe>RlE=U|pfZ#%UlSj|w z0h%PPLLSaII0N@$7n-3}3zmO+ccBc;Ph5<3>4X3#m$$P0m)*uchzpv@YcCzSej1LV zM4Bl8zj=pydt(Qo2Y}nR09ptEFqJ>{Aj}wFsJiC&M7gpe1H+)KtHAG7X>GstR#a9bX(qsK&dT8z zbAq1&APa*Z5JFt3$Pd0UcT~5;Y(ERLdq~}`M$(PTn|l%}TTutbHrir|>0`U4%Ii`s zvK`EvR^Ji`v+Y@jii1DMz9q0a(-O^Dyd1#yg@AwB$*>2Jdik6_w;seb^(`swGfPBz zle4Gk9{xVOd{@T+h`ZlySy-h#IC|F>a^G#3P*5|=UCU0G-B%W*_m|`Se{F`ae(@if z0|k*An_x!e+DXH$3j?g16As+bI1RJjOlYJ6C|C22?iI(G25gBrB}sRWoiAtD#2CH{ zfRi$ThDTNG^^y?7pC>>@zf2Wb0|Y`qkvTN~xNFA;gh;5dd}3Y#VHALC&RxxaQ&!Db zsEIhzZ~x4Ae)bTF3~}j=GV7d+!69%^DJpQM<_E>Yd9}wx39fcidZu$<|L`x+_2q3t zWqCg_9@S-(6%ILa`Mgk%x#6G##W88zs&l7PuWd%n6$6%9DAU|t-N$FQR5Jse!O|M8 zvlDH`B2Z#<0OEe!P81If83BG(k1|BDn*vOjCK`o|0ajFZ;Mj^()SS&YeSmBoGG$HL zGJ@Z<2eS^~Js&Rn`0i)i2S1xp8rV!pwe8x`wFA7@bWRE&CGU(q@G$wN6Oh!&zZ5(q$5DO>g;LA#9lv9G&`e$g}dvoBPeXX=hk!*ER3uIwUT;e{$} zt=YK%Sy}O&#a<*@27Xk0rh%v+ZgG~BJu>*-Q+_y3Jo@}Sg-3VXgDn(5b6smv_gp(q zS9;@xPT9Hifj*?K?WzKCpZyVljB z%NP5hE6ygKStpEn2q#Ax$?DIvgLnR}JaGAT z*wPW0kl^*;C$dBcHP_l6Y%-&fi*F!)(0f^}viUn9s>d_m_4Y>n0^amd(XX~dmb&M$ zs_%&z=D_9k&=F4pY>MiJt2atR$cF_h`7V5R8P-_;e#j?z+(IWf_;B}Y>#gbzoV0Ui z=13%|Ek`mjyPs%64j0{d-uu`T>260#&4mZzFNzK>x^C0qeXsA*A#La4#blBJZ?CRkZv809^6q`tk_ zjj7csXmYX=dj!phyT?2qRI?z=1Uo?tmquP?n3FoJajP{rd z_Q#WyMyWG@+{n7SQYO5fqe#IUj0*#lh1M8ja$YAfa=y-zW3tzL9l6m*zn zTz`0c>J{d**dys|{A@1w@QY+E_f1Lf>G0RC=AV}xE?xII1e-2Y5}MA}dp8X^BkEk= zjkgNICdX8J8c*d;(ntK>HiE7b38dwssVJwAV7}YUmFb=R_OM%rO|Fh}ooEK8l-q9x z134t=oZK89IhKcuvYB`SP3dz~r`Rtys_WnL$k^9nJcSO`LllReW*3_u42rD4TcvE; zb!z?=!Sgy1yO!-lqja6{@wmbOzo5y?y?B+_T_^3^8Fxln6W%ErgMk@b?tjm$SpTs^ z?y{{Pvx&)$**Iv@JhbX2D;-k%lmIu8wZ;(Dc`d!Bn?csrJzAZKMZ2j6o!zS&b#_D` z#E-k3DyZFmG|VEHngT9YrF^`wBCCKCG0)z+xcwai_U|qHyoWirU}Z{_ibX6a>t|X7eHY|i}J8^tc$ysvfe|Bl{S-&^4u zKpI#Cx#C-9XJt44kQa9Y6wZ1g9S-LGf>T$EQj${&=%rn&N`=mKVP5cCgqu=P?w>uM zzDk@d%Y%7z8wklnE))rgO2tg*cm6Hh; z9j!N=UKw2t(u5np|R}5e}eif7I1}2sm7@|~lu%b=kLYjMXt{o1PUA0(v zO8cV!CObY$H@3lIv{#>4WF>x9({XH|k0>hoR1^NxUqzXr6$5)O-V%j1xof5whN&Yq zUQ_W6ULez57#Wk3kTZhL_L3DRq%Y($ldDJxV3;>KV8L&)G2X`d91cu*I2$BC82br8 zQ)Pw@`V3XtGpl`e6l!sjofc1r8>QwxbhEB@PrnBH$+>7Ah4byv6q1_eljzFfOEo)P z7k;}27RF_~K+Z>h<2BtXKWwWQHkuUewT@3Hy9;?iel&4HMcK5Uk|?yY@L8lg@k}Ac zU-FVN9itv1uWW5#WJOH~!a zEKLzkuX&GB!r%$2kb`p(3CKkg+7mC#G8Ql`1>yxroagw`k+u3dTwLCEygPmu+5YUL z`7Uzm#xGo`KYh4E0(vxS>_fZ14L4Vz#`lw4#oV04glj3S^6=8nom}4bKocIUlt*C% zgZI5(A-`F=u4uz#qIpK~etzWEd-^gh-v zx-9E9*&$k(p=>LGKFAt%7saE3 z;*ZXSH>(*9{P?56QZ38m6r4Sp^Y01YTQ#5X7}cntEk<1s?S5{(tv8qAL<4=w2L;&xoUayGeM`0)hR@|i55dddb zU+l_hyrmw@>6gMNYNENn@l8G8Qs`R3_e*dH>hAK}?vdk*ZbZFO|8^4^?7I@+V+{0O z02Qo^UIava<$Ich!5A#B6g6cr$aBRkZw)((Vc4hgjG|oiifkEKWQ=EWD#I*+@b=LN zd(hpSrKm{p6&N0*Prro+1+U^fu}d|Z*H^g5mlTtV5Cn4&FQWo67KE1!$-s>76g#}< zF)&#SNPA_!cK)mWNDvjITfUwI zT@NGMZ*}OqVHe(XyVOlJ;F!)x=vtR^;RYG!9-O^qzLXyA*VzpkU)IHa4(eFd%U&Nq z&~ZhN1~wGOeV-c}>^oUzGylSPwBSKKs*9px=DK=pi_A~B2skLQ0%zt)8L!lJg4kwa znt@frxuEAgiO*XvcaHYG3)ADTQR%XEM-u1j1PU&yqu-n3Egc;?4o%EApQ9(V-U&7# z4;UO^H`49`F`c8UhWAPRX7*I*b?Z+*$v3cWyQ|;T!_Zr|A=AclKFf~E(p!o5Qlx35 zA7)QQS2k6?D%u|5^xl8rDJd;$tsp)hZ)Rj}eXaaUTuVl)8>h6`j}(qhvf|z5Pc{W%^QZ_!`t@gMav< zzq+vDz|BjB4hyLjroXnd77uDg_FxW)Rs#*0E1F@o3vl*5*=TxFQ0$i$5D^s~-h9qa zG&Y>w(s>|y!`tD9q>jdIk3DdCW5OrYU9~f<1P*DBFv@!bCrL=DsaWj<7O7afKRv&(+*rqC8 zK!3v-skr$Z(Zdc&m+Vg{u`DIDwIzG1TN@@28jeU&UAN=)FAvUMB5eij!Mv6UgggLg z0>VO0a(hwS9zWFmy`ote%J?@)qK^{7frW=1uCyC(md?M(1eW3>oRxR`^M7M!%XI^b zyPD0#Ztsj|Ox$AWjWl~_H!yC_h$ux(-yci=@z$7GO^9U&F0g&J_YI=-(1;jU)7;>g z>gBYru>`1yuCeWGx?F5^^@Dq0Tudc{y)9o$y%0;kZtk(LdVLJFSvr6SdE+uMzv*1K z3Gk}g@rD4UXnC(PXHPz3Qeqr@<(n#cOD80T&OK_gsj7djX_(30u+Nw~#tH>V!F~Vy zQK&Jqz0rI%p818aH4q~9n;0gfzG3rLAdL0wG9FXgiNM>;0hHd1m)WXZPU?u>Pj|Dq zcANGZD&&OJb-n0n6*L4eNT*C0&vn~za*1oAQKoYq{H*`I?Es#VE||QJzO1Kzg6H^l zis217j*syM1Th*`(-6bFylF;t5Qe{%GMXOCd}C}YNZ^ij)sL^PzNM#n0;lksY|C~Y zA_Ax(JJN~)8kp-so)q<@xs9OJ7A1Rx*UTx=%D)3K^=PUmKWLD>Gy=T_zQ!Wt1CEi7 z{yA*{GM#IvGY-BFGrM~eH>GG;u8LlEx$(EA!=T^C<`CYho6MXg8z!&I_#6m848yfF z(3zDRh!254>ml!zfyieytVU<%0F_L0QR?B?Tqrdf;UcSnUbfs^##s3$(O+kmbGJGl zm@Fv>!u}R=o3eu42%Dego(wHn4f#Bg)E)fCObLEEC~*b>%y6JZqr8?1tocUT+HXst z-?*D3D-ce(%(JemNBTEEzTLFiYPMn4Pg~$Fna$Z**~F6Sru2{ZU*B0^0nAG08_+;+ z%Il`$_KA^!vO+@Ajq7fAISHLb+nO%*_iuZfge!0Y<)9p7nt{5xg-vYkp7OvvoO%vY z3O;qW9~GYG5#_qN(`tTrbDqCn+y>cyyY zUmR)tMfLLY=GMht&(x}&heqbAm1*Re+v?kT zgo68Wn}OvN7(Y>LfF#M4TE12rH_kr}^83y0>Tu;+jdTuOF1r`H;%jb^SxJvFo=?jP zsRJDFhY=fcXj0{7f4&|HlqYAbRB)>Jt4yA9A$#m*UY0HUFZ+ZnG6@HBL4>qPqI6Ed zdC@WQ;vv`74#udZ6%>r~asp3%Yt5-Jw{*;`4#{=J&$TOe^!3*l7n;ej-si7cQq&Oh z$OjBU8Nxf4{OB~(c=Pigg=$XM02gtn)v$P0K*I6HRU#m|IX3rb(RxD@tHpa~R?I3g|+0uFk=X0nv{4b8#lRYJRER#&4zxvn>i4B=DHB}++yHym$s0`5(YYGy7i zY_@$Bz4s^CY9m8E$Mq_44>dIOye*P2_Q&m5Sw+80x~p<7zxnm~SYY^RS=$j2y+_iu zKTx0ggg!|~vSj?Us&jI`21?7|ky2O5O}S;OZ$Z7^FMK0zPXv4Zy)qwIjfzC8X1j&b zAJ^NEg$QG)_Jc@6IMb>;Z=*lh(e=jOhU(sqrs7<>9p~Zr+Sl}`Pv*FZ>tx?jE>Ob{#QUH3zXFjc_!}b?wW^&9@I8zy&(x3Dhm?7N`}&iy3lm z#Re9FtY1D^hOUpy{dqo1H7obcc{thXh#+AAHTP_ZJH?_L=-+@dvpw&23U03Z_7KZ%6y#1{U@+Q0gJQl8(vm?=$b*D!9EU!C*x3bo^cJ{_jYc4;0 R%ytblHn@7J@Pgfw{|D~!DbfG{ literal 0 HcmV?d00001 diff --git a/docs/build/media/cmake-targets-add-debug.PNG b/docs/build/media/cmake-targets-add-debug.PNG new file mode 100644 index 0000000000000000000000000000000000000000..38762cfc42737124597f32a288f627de0cd3ba2f GIT binary patch literal 21939 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 CBPi(r literal 0 HcmV?d00001 From a17d251261857f946dcc04459e301e734e336140 Mon Sep 17 00:00:00 2001 From: Erika Date: Tue, 24 Mar 2020 18:02:36 -0700 Subject: [PATCH 3/5] More changes Add properties for new cppgdb configuration type, clean up docs for old configuration type --- .../configure-cmake-debugging-sessions.md | 128 ++++++++---------- 1 file changed, 54 insertions(+), 74 deletions(-) diff --git a/docs/build/configure-cmake-debugging-sessions.md b/docs/build/configure-cmake-debugging-sessions.md index 4ed69dcba8c..96be30d8451 100644 --- a/docs/build/configure-cmake-debugging-sessions.md +++ b/docs/build/configure-cmake-debugging-sessions.md @@ -22,19 +22,25 @@ You can also start a debug session from Solution Explorer. First, switch to **CM ![CMake targets view button](media/cmake-targets-view.png "CMake Targets View menu item") -Then, right-click on any executable and select **Debug**. This automatically starts debugging the selected target, based on your active configuration. +Then, right-click on any executable and select **Debug**. This automatically starts debugging the selected target based on your active configuration. ## Customize debugger settings You can customize the debugger settings for any executable CMake target in your project in a configuration file called *launch.vs.json* located in a *.vs* folder in your project root. For most debugging scenarios, creating a launch configuration file is beneficial because it allows you to configure and save debugging setup details. There are three entry points to this file: -- Select **Debug > Debug and Launch Settings for ${activeDebugTarget}** from the main menu to edit the debug configuration specific to your active debug target. If you don't have a debug target selected, this option will be grayed out. +- **Debug Menu:** Select **Debug > Debug and Launch Settings for ${activeDebugTarget}** from the main menu to customize the debug configuration specific to your active debug target. If you don't have a debug target selected, this option will be grayed out. -- Navigate to **Targets View** in Solution Explorer. Then, right-click on a debug target and select **Add Debug Configuration** to edit the debug configuration specific to the selected target. +![Debug menu entry point](media/cmake-debug-menu.png "Debug menu entry point") -- Right-click on a root CMakeLists.txt and select **Add Debug Configuration** to open the **Select a Debugger** dialog box. The dialog allows you to add any type of debug configuration, but you must manually specify the CMake target to invoke via the `projectTarget` property. +- **Targets View:** Navigate to **Targets View** in Solution Explorer. Then, right-click on a debug target and select **Add Debug Configuration** to customize the debug configuration specific to the selected target. -When you save the *launch.vs.json* file, Visual Studio creates an entry for the new name in the **Startup Item** dropdown. You can edit the *launch.vs.json* file to create multiple debug configurations, for any number of CMake targets. +![Targets view entry point](media/cmake-targets-add-debug.PNG "Targets view entry point") + +- **Root CMakeLists.txt:** Right-click on a root CMakeLists.txt and select **Add Debug Configuration** to open the **Select a Debugger** dialog box. The dialog allows you to add *any* type of debug configuration, but you must manually specify the CMake target to invoke via the `projectTarget` property. + +![Select a debugger dialog box](media/cmake-select-a-debugger.png "Select a debugger dialog box") + +When you save the *launch.vs.json* file, Visual Studio creates an entry for the new configuration in the **Startup Item** dropdown. You can edit the *launch.vs.json* file to create multiple debug configurations, for any number of CMake targets. ## Reference keys in CMakeSettings.json @@ -61,13 +67,13 @@ To reference any key in a *CMakeSettings.json* file, preface it with `cmake.` in There are many *launch.vs.json* properties to support all your debugging scenarios. The following properties are common to all debug configurations, both remote and local: -- `projectTarget`: Specifies the CMake target to invoke when building the project. Visual Studio autopopulates this property if you enter *launch.vs.json* from **Debug > Debug and Launch Settings for ${activeDebugTarget}** or **Targets View**. +- `projectTarget`: Specifies the CMake target to invoke when building the project. Visual Studio autopopulates this property if you enter *launch.vs.json* from the **Debug Menu** or **Targets View**. This value must match the name of an existing debug target listed in the **Startup Item** dropdown. - `env`: Additional environment variables to add with the syntax: ```json "env": { - "DEBUG_LOGGING_LEVEL": "trace;info" + "DEBUG_LOGGING_LEVEL": "trace;info", "ENABLE_TRACING": "true" } ``` @@ -76,17 +82,17 @@ There are many *launch.vs.json* properties to support all your debugging scenari ## Launch.vs.json reference for remote projects and WSL -In Visual Studio 2019 version 16.6 we added a new debug configuration of `type: cppgdb` to simplify debugging with **gdb** and **gdbserver** on a remote system or WSL. Old debug configurations of `type: cppdbg` are still supported. +In Visual Studio 2019 version 16.6 we added a new debug configuration of `type: cppgdb` to simplify debugging with **gdb** and **gdbserver** on remote systems and WSL. Old debug configurations of `type: cppdbg` are still supported. ### Configuration type `cppgdb` - `name`: A friendly name to identify the configuration in the **Startup Item** dropdown. - `project`: Specifies the relative path to the project file. You shouldn't need to change this when debugging a CMake project. -- `projectTarget`: Specifies the CMake target to invoke when building the project. Visual Studio autopopulates this property if you enter *launch.vs.json* from **Debug > Debug and Launch Settings for ${activeDebugTarget}** or **Targets View**. This value must match the name of an existing debug target listed in the **Startup Item** dropdown. +- `projectTarget`: Specifies the CMake target to invoke when building the project. Visual Studio autopopulates this property if you enter *launch.vs.json* from the **Debug Menu** or **Targets View**. This value must match the name of an existing debug target listed in the **Startup Item** dropdown. - `debuggerConfiguration`: Indicates which set of debugging default values to use. Valid options are **gdb** and **gdbserver**. - `args`: Command-line arguments passed on startup to the program being debugged. - `env`: Additional environment variables passed to the program being debugged. For example, `{"DISPLAY": "0.0"}`. -- `processID`: Linux process ID to attach to. Only used when attaching to a remote process. +- `processID`: Linux process ID to attach to. Only used when attaching to a remote process. For more information, see [Troubleshoot attaching to processes using GDB](https://github.com/Microsoft/MIEngine/wiki/Troubleshoot-attaching-to-processes-using-GDB). #### Additional options allowed with the `gdb` configuration @@ -98,14 +104,47 @@ In Visual Studio 2019 version 16.6 we added a new debug configuration of `type: #### Additional options allowed with the `gdbserver` configuration +- `program`: Defaults to `"${debugInfo.fullTargetPath}"`. The Unix path to the application to debug. Only required if different than the target executable in the build or deploy location. +- `remoteMachineName`: Defaults to `"${debugInfo.remoteMachineName}"`. Name of the remote system that hosts the program to debug. Only required if different than the build system. Must have an existing entry in the [Connection Manager](../linux/connect-to-your-remote-linux-computer.md). Press **Ctrl+Space** to view a list of all existing remote connections. +- `cwd`: Defaults to `"${debugInfo.defaultWorkingDirectory}"`. Full Unix path to the directory on the remote system where `program` is run. The directory must exist. +- `gdbPath`: Defaults to `${debugInfo.vsInstalledGdb}`. Full Windows path to the gdb used to debug. Defaults to the gdb installed with the Linux development with C/C++ workload. +- `gdbserverPath`: Defaults to `usr/bin/gdbserver`. Full Unix path to the gdbserver used to debug. +- `preDebugCommand`: A Linux command to run immediately before starting gdbserver. Gdbserver will not start until it completes. + +#### Deployment options + +Use the following options to separate your build machine (defined in CMakeSettings.json) from your remote debug machine. These options apply to both `gdb` and `gdbserver` configurations. +- `remoteMachineName`: Remote debug machine. Only required if different than the build machine. Must have an existing entry in the [Connection Manager](../linux/connect-to-your-remote-linux-computer.md). Press **Ctrl+Space** to view a list of all existing remote connections. +- `disableDeploy`: Defaults to `false`. Indicates whether build/debug separation is disabled. When `false`, this option allows build and debug to occur on two separate machines. +- `deployDirectory`: Full Unix path to the directory on `remoteMachineName` that the executable will be copied to. +- `deploy`: An array of advanced deployment settings. You only need to configure these settings when you want more granular control over the deployment process. By default, only the files necessary for the process to debug will be deployed to the remote debug machine. + - `sourceMachine`: The machine from which the file or directory will be copied. Press **Ctrl+Space** to view a list of all the remote connections stored in the Connection Manager. When building natively on WSL this option will be ignored. + - `targetMachine`: The machine to which the file or directory will be copied. Press **Ctrl+Space** to view a list of all the remote connections stored in the Connection Manager. + - `sourcePath`: The file or directory location on `sourceMachine`. + - `targetPath`: The file or directory location on `targetMachine`. + - `deploymentType`: A description of the deployment type. `LocalRemote` and `RemoteRemote` are supported. `LocalRemote` means copying from the local file system to the remote system specified by `remoteMachineName` in *launch.vs.json*. `RemoteRemote` means copying from the remote build system specified in *CMakeSettings.json* to the different remote system specified in *launch.vs.json*. + - `executable`: Indicates whether the deployed file is an executable. + +### Execute custom gdb commands +Visual Studio supports executing custom gdb commands to interact directly with the underlying debugger. [Learn more](https://github.com/microsoft/MIEngine/wiki/Executing-custom-gdb-lldb-commands) -The following properties are specific to **remote debug configurations**. You can also [execute custom gdb commands](https://github.com/microsoft/MIEngine/wiki/Executing-custom-gdb-lldb-commands) to send commands directly to the underlying debugger, and [enable MIEngine logging](https://github.com/microsoft/MIEngine/wiki/Logging) to see what commands get sent to gdb, what output gdb returns, and how long each command takes. +### Enable logging +Enable MIEngine logging to see what commands get sent to gdb, what output gdb returns, and how long each command takes. [Learn more](https://github.com/microsoft/MIEngine/wiki/Logging) -- `cwd`: Current working directory for finding dependencies and other files on the remote machine. The macro `${debugInfo.defaultWorkingDirectory}` can be used. The default value is the remote workspace root unless overridden in *CMakeLists.txt*. This property is only used for remote configurations; `currentDir` is used to set the current directory of the launching app for a local project. +### Configuration type `cppdbg` -- `environment`: Additional environment variables to add to the environment for the program with this syntax: +The following options can be used when debugging on a remote system or WSL using the `cppdbg` configuration type. In Visual Studio 2019 version 16.6 or later, configuration type `cppgdb` is recommended. +- `name`: A friendly name to identify the configuration in the **Startup Item** dropdown. +- `project`: Specifies the relative path to the project file. You shouldn't need to change this when debugging a CMake project. +- `projectTarget`: Specifies the CMake target to invoke when building the project. Visual Studio autopopulates this property if you enter *launch.vs.json* from the **Debug Menu** or **Targets View**. This value must match the name of an existing debug target listed in the **Startup Item** dropdown. +- `args`: Command-line arguments passed on startup to the program being debugged. +- `processID`: Linux process ID to attach to. Only used when attaching to a remote process. For more information, see [Troubleshoot attaching to processes using GDB](https://github.com/Microsoft/MIEngine/wiki/Troubleshoot-attaching-to-processes-using-GDB). +- `program`: Defaults to `"${debugInfo.fullTargetPath}"`. The Unix path to the application to debug. Only required if different than the target executable in the build or deploy location. +- `remoteMachineName`: Defaults to `"${debugInfo.remoteMachineName}"`. Name of the remote system that hosts the program to debug. Only required if different than the build system. Must have an existing entry in the [Connection Manager](../linux/connect-to-your-remote-linux-computer.md). Press **Ctrl+Space** to view a list of all existing remote connections. +- `cwd`: Defaults to `"${debugInfo.defaultWorkingDirectory}"`. Full Unix path to the directory on the remote system where `program` is run. The directory must exist. +- `environment`: Additional environment variables passed to the program being debugged. For example, ```json "environment": [ { @@ -118,11 +157,8 @@ The following properties are specific to **remote debug configurations**. You ca } ] ``` - -- `pipeArgs`: Command-line arguments passed to the pipe program to configure the connection. The pipe program is used to relay standard input/output between Visual Studio and gdb. The command `${debuggerCommand}` launches gdb on the remote system, and can be modified to: - +- `pipeArgs`: An array of command-line arguments passed to the pipe program to configure the connection. The pipe program is used to relay standard input/output between Visual Studio and gdb. Most of this array **does not need to be customized** when debugging CMake projects. The exception is the `${debuggerCommand}`. which launches gdb on the remote system and can be modified to: - Export the value of the environment variable DISPLAY on your Linux system. In the following example, this value is `:1`. - ```json "pipeArgs": [ "/s", @@ -134,9 +170,7 @@ The following properties are specific to **remote debug configurations**. You ca "--tty=${debugInfo.tty}" ], ``` - - Run a script before the execution of gdb. Ensure execute permissions are set on your script. - ```json "pipeArgs": [ "/s", @@ -148,66 +182,12 @@ The following properties are specific to **remote debug configurations**. You ca "--tty=${debugInfo.tty}" ], ``` - - `stopOnEntry`: A boolean that specifies whether to break as soon as the process is launched. The default is false. - - `visualizerFile`: A [.natvis file](/visualstudio/debugger/create-custom-views-of-native-objects) to use when debugging this process. This option is incompatible with gdb pretty printing. Also set `showDisplayString` when you set this property. - - `showDisplayString`: A boolean that enables the display string when a `visualizerFile` is specified. Setting this option to `true` can cause slower performance during debugging. - - `setupCommands`: One or more gdb command(s) to execute, to set up the underlying debugger. - -- `externalConsole`: A boolean that specifies whether a console is launched for the debuggee. - - `miDebuggerPath`: The full path to gdb. When unspecified, Visual Studio searches PATH first for the debugger. - -::: moniker-end - -::: moniker range="vs-2017" - -- `remoteMachineName`: The remote Linux system that hosts gdb and the program to debug. - -::: moniker-end - -::: moniker range="vs-2019" - -The following properties can be used to separate your **remote build system** from your **remote debug system**. For more information, see [Specify different machines for building and debugging](../linux/deploy-run-and-debug-your-linux-project.md#cmake-projects). - -- `remoteMachineName`: The remote Linux system that hosts gdb and the program to debug. This entry doesn't need to match the remote Linux system used for build specified in *CMakeSettings.json*. Press **Ctrl+Space** to view a list of all remote connections stored in the [Connection Manager](../linux/connect-to-your-remote-linux-computer.md). - -- `disableDeploy`: Indicates whether build/debug separation is disabled. When enabled, this feature allows build and debug to occur on two separate machines. - -- `deployDirectory`: The directory on the remote debug machine (specified by `remoteMachineName`) that the executable will be copied to. - -- `deploy`: An array of advanced deployment settings. You only need to configure these settings when you want more granular control over the deployment process. By default, only the files necessary for the process to debug will be deployed to the remote debug machine. - - - `sourceMachine`: The machine from which the file or directory will be copied. Press **Ctrl+Space** to view a list of all the remote connections stored in the Connection Manager. - - - `targetMachine`: The machine to which the file or directory will be copied. Press **Ctrl+Space** to view a list of all the remote connections stored in the Connection Manager. - - - `sourcePath`: The file or directory location on `sourceMachine`. - - - `targetPath`: The file or directory location on `targetMachine`. - - - `deploymentType`: A description of the deployment type. `LocalRemote` and `RemoteRemote` are supported. `LocalRemote` means copying from the local file system to the remote system specified by `remoteMachineName` in *launch.vs.json*. `RemoteRemote` means copying from the remote build system specified in *CMakeSettings.json* to the different remote system specified in *launch.vs.json*. - - - `executable`: Indicates whether the deployed file is an executable. - -::: moniker-end - -::: moniker range=">=vs-2017" - -## Attach to a remote process - -You can attach to a process running on your Linux system by setting `processId` to the Process ID to attach the debugger to. For more information, see [Troubleshoot attaching to processes using GDB](https://github.com/Microsoft/MIEngine/wiki/Troubleshoot-attaching-to-processes-using-GDB). - -::: moniker-end - -::: moniker range="vs-2019" - -## Debug on Linux using gdbserver - -Visual Studio 2019 version 16.5 Preview 1 or later supports the remote debugging of CMake projects with gdbserver. For more information, see [debugging Linux CMake projects with gdbserver](https://devblogs.microsoft.com/cppblog/debugging-linux-cmake-projects-with-gdbserver/). +- Finally, all of the deployment options defined for the `cppgdb` configuration type can be used with the `cppdbg` configuration type as well. ::: moniker-end From 9248d40f20eaea26dff81b96afcd847d55705b35 Mon Sep 17 00:00:00 2001 From: Colin Robertson Date: Tue, 24 Mar 2020 21:02:17 -0700 Subject: [PATCH 4/5] Update configure-cmake-debugging-sessions.md Fix at least a couple of things Acrolinx will hate. @esweet431 The powers that be hate image files with capitalized extensions. Can you change the name and recommit cmake-targets-add-debug.PNG as cmake-targets-add-debug.png? Thanks! --- .../configure-cmake-debugging-sessions.md | 81 ++++++++++++------- 1 file changed, 52 insertions(+), 29 deletions(-) diff --git a/docs/build/configure-cmake-debugging-sessions.md b/docs/build/configure-cmake-debugging-sessions.md index 96be30d8451..94e141677f5 100644 --- a/docs/build/configure-cmake-debugging-sessions.md +++ b/docs/build/configure-cmake-debugging-sessions.md @@ -22,11 +22,11 @@ You can also start a debug session from Solution Explorer. First, switch to **CM ![CMake targets view button](media/cmake-targets-view.png "CMake Targets View menu item") -Then, right-click on any executable and select **Debug**. This automatically starts debugging the selected target based on your active configuration. +Then, right-click on an executable and select **Debug**. This command automatically starts debugging the selected target based on your active configuration. ## Customize debugger settings -You can customize the debugger settings for any executable CMake target in your project in a configuration file called *launch.vs.json* located in a *.vs* folder in your project root. For most debugging scenarios, creating a launch configuration file is beneficial because it allows you to configure and save debugging setup details. There are three entry points to this file: +You can customize the debugger settings for any executable CMake target in your project in a configuration file called *launch.vs.json*, located in a *.vs* folder in your project root. A launch configuration file is useful in most debugging scenarios, because you can configure and save your debugging setup details. There are three entry points to this file: - **Debug Menu:** Select **Debug > Debug and Launch Settings for ${activeDebugTarget}** from the main menu to customize the debug configuration specific to your active debug target. If you don't have a debug target selected, this option will be grayed out. @@ -34,9 +34,9 @@ You can customize the debugger settings for any executable CMake target in your - **Targets View:** Navigate to **Targets View** in Solution Explorer. Then, right-click on a debug target and select **Add Debug Configuration** to customize the debug configuration specific to the selected target. -![Targets view entry point](media/cmake-targets-add-debug.PNG "Targets view entry point") +![Targets view entry point](media/cmake-targets-add-debug.png "Targets view entry point") -- **Root CMakeLists.txt:** Right-click on a root CMakeLists.txt and select **Add Debug Configuration** to open the **Select a Debugger** dialog box. The dialog allows you to add *any* type of debug configuration, but you must manually specify the CMake target to invoke via the `projectTarget` property. +- **Root CMakeLists.txt:** Right-click on a root *CMakeLists.txt* and select **Add Debug Configuration** to open the **Select a Debugger** dialog box. The dialog allows you to add *any* type of debug configuration, but you must manually specify the CMake target to invoke via the `projectTarget` property. ![Select a debugger dialog box](media/cmake-select-a-debugger.png "Select a debugger dialog box") @@ -61,6 +61,7 @@ To reference any key in a *CMakeSettings.json* file, preface it with `cmake.` in ] } ``` + **Environment variables** defined in CMakeSettings.json can also be used in launch.vs.json using the syntax `${env.VARIABLE_NAME}`. In Visual Studio 2019 version 16.4 and later, debug targets are automatically launched with the environment you specify in CMakeSettings.json. You can unset an environment variable by setting it to **null**. ## Launch.vs.json reference @@ -71,12 +72,12 @@ There are many *launch.vs.json* properties to support all your debugging scenari - `env`: Additional environment variables to add with the syntax: -```json + ```json "env": { "DEBUG_LOGGING_LEVEL": "trace;info", "ENABLE_TRACING": "true" } -``` + ``` - `args`: Command-line arguments passed to the program to debug. @@ -127,9 +128,11 @@ Use the following options to separate your build machine (defined in CMakeSettin - `executable`: Indicates whether the deployed file is an executable. ### Execute custom gdb commands + Visual Studio supports executing custom gdb commands to interact directly with the underlying debugger. [Learn more](https://github.com/microsoft/MIEngine/wiki/Executing-custom-gdb-lldb-commands) ### Enable logging + Enable MIEngine logging to see what commands get sent to gdb, what output gdb returns, and how long each command takes. [Learn more](https://github.com/microsoft/MIEngine/wiki/Logging) ### Configuration type `cppdbg` @@ -137,40 +140,54 @@ Enable MIEngine logging to see what commands get sent to gdb, what output gdb re The following options can be used when debugging on a remote system or WSL using the `cppdbg` configuration type. In Visual Studio 2019 version 16.6 or later, configuration type `cppgdb` is recommended. - `name`: A friendly name to identify the configuration in the **Startup Item** dropdown. + - `project`: Specifies the relative path to the project file. You shouldn't need to change this when debugging a CMake project. + - `projectTarget`: Specifies the CMake target to invoke when building the project. Visual Studio autopopulates this property if you enter *launch.vs.json* from the **Debug Menu** or **Targets View**. This value must match the name of an existing debug target listed in the **Startup Item** dropdown. + - `args`: Command-line arguments passed on startup to the program being debugged. + - `processID`: Linux process ID to attach to. Only used when attaching to a remote process. For more information, see [Troubleshoot attaching to processes using GDB](https://github.com/Microsoft/MIEngine/wiki/Troubleshoot-attaching-to-processes-using-GDB). + - `program`: Defaults to `"${debugInfo.fullTargetPath}"`. The Unix path to the application to debug. Only required if different than the target executable in the build or deploy location. + - `remoteMachineName`: Defaults to `"${debugInfo.remoteMachineName}"`. Name of the remote system that hosts the program to debug. Only required if different than the build system. Must have an existing entry in the [Connection Manager](../linux/connect-to-your-remote-linux-computer.md). Press **Ctrl+Space** to view a list of all existing remote connections. + - `cwd`: Defaults to `"${debugInfo.defaultWorkingDirectory}"`. Full Unix path to the directory on the remote system where `program` is run. The directory must exist. + - `environment`: Additional environment variables passed to the program being debugged. For example, -```json - "environment": [ - { - "name": "ENV1", - "value": "envvalue1" - }, - { - "name": "ENV2", - "value": "envvalue2" - } - ] -``` -- `pipeArgs`: An array of command-line arguments passed to the pipe program to configure the connection. The pipe program is used to relay standard input/output between Visual Studio and gdb. Most of this array **does not need to be customized** when debugging CMake projects. The exception is the `${debuggerCommand}`. which launches gdb on the remote system and can be modified to: - - Export the value of the environment variable DISPLAY on your Linux system. In the following example, this value is `:1`. + ```json - "pipeArgs": [ - "/s", - "${debugInfo.remoteMachineId}", - "/p", - "${debugInfo.parentProcessId}", - "/c", - "export DISPLAY=:1;${debuggerCommand}", - "--tty=${debugInfo.tty}" - ], + "environment": [ + { + "name": "ENV1", + "value": "envvalue1" + }, + { + "name": "ENV2", + "value": "envvalue2" + } + ] ``` + +- `pipeArgs`: An array of command-line arguments passed to the pipe program to configure the connection. The pipe program is used to relay standard input/output between Visual Studio and gdb. Most of this array **does not need to be customized** when debugging CMake projects. The exception is the `${debuggerCommand}`. which launches gdb on the remote system and can be modified to: + + - Export the value of the environment variable DISPLAY on your Linux system. In the following example, this value is `:1`. + + ```json + "pipeArgs": [ + "/s", + "${debugInfo.remoteMachineId}", + "/p", + "${debugInfo.parentProcessId}", + "/c", + "export DISPLAY=:1;${debuggerCommand}", + "--tty=${debugInfo.tty}" + ], + ``` + - Run a script before the execution of gdb. Ensure execute permissions are set on your script. + ```json "pipeArgs": [ "/s", @@ -182,11 +199,17 @@ The following options can be used when debugging on a remote system or WSL using "--tty=${debugInfo.tty}" ], ``` + - `stopOnEntry`: A boolean that specifies whether to break as soon as the process is launched. The default is false. + - `visualizerFile`: A [.natvis file](/visualstudio/debugger/create-custom-views-of-native-objects) to use when debugging this process. This option is incompatible with gdb pretty printing. Also set `showDisplayString` when you set this property. + - `showDisplayString`: A boolean that enables the display string when a `visualizerFile` is specified. Setting this option to `true` can cause slower performance during debugging. + - `setupCommands`: One or more gdb command(s) to execute, to set up the underlying debugger. + - `miDebuggerPath`: The full path to gdb. When unspecified, Visual Studio searches PATH first for the debugger. + - Finally, all of the deployment options defined for the `cppgdb` configuration type can be used with the `cppdbg` configuration type as well. ::: moniker-end From affa9cc79ac556c9eeaff097b5bc8364e3c803ed Mon Sep 17 00:00:00 2001 From: Erika Date: Wed, 25 Mar 2020 08:15:07 -0700 Subject: [PATCH 5/5] Rename .png Change cmake-targets-add-debug.PNG to cmake-targets-add-debug.png --- docs/build/media/cmake-targets-add-debug.png | Bin 0 -> 21939 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/build/media/cmake-targets-add-debug.png diff --git a/docs/build/media/cmake-targets-add-debug.png b/docs/build/media/cmake-targets-add-debug.png new file mode 100644 index 0000000000000000000000000000000000000000..38762cfc42737124597f32a288f627de0cd3ba2f GIT binary patch literal 21939 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 CBPi(r literal 0 HcmV?d00001