From 880d08bf39660f865f16d905faea1715a0f6dd06 Mon Sep 17 00:00:00 2001 From: sheche Date: Wed, 5 Jan 2022 16:26:32 +0800 Subject: [PATCH 1/3] Add VS Code samples Signed-off-by: sheche --- IDE/VSCode/Modular/Gradle/README.md | 37 ++++ .../Modular/Gradle/hellofx/build.gradle | 23 +++ .../Modular/Gradle/hellofx/gradle.properties | 4 + .../hellofx/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54413 bytes .../gradle/wrapper/gradle-wrapper.properties | 5 + IDE/VSCode/Modular/Gradle/hellofx/gradlew.bat | 84 +++++++++ .../Modular/Gradle/hellofx/settings.gradle | 1 + .../hellofx/src/main/java/module-info.java | 8 + .../main/java/org/openjfx/FXMLController.java | 16 ++ .../src/main/java/org/openjfx/MainApp.java | 28 +++ .../src/main/resources/org/openjfx/scene.fxml | 11 ++ .../src/main/resources/org/openjfx/styles.css | 3 + IDE/VSCode/Modular/Gradle/run.png | Bin 0 -> 66179 bytes IDE/VSCode/Modular/Maven/README.md | 37 ++++ IDE/VSCode/Modular/Maven/hellofx/pom.xml | 48 +++++ .../hellofx/src/main/java/module-info.java | 8 + .../main/java/org/openjfx/hellofx/App.java | 39 ++++ .../openjfx/hellofx/PrimaryController.java | 12 ++ .../openjfx/hellofx/SecondaryController.java | 12 ++ .../org/openjfx/hellofx/primary.fxml | 16 ++ .../org/openjfx/hellofx/secondary.fxml | 16 ++ .../resources/org/openjfx/hellofx/styles.css | 3 + IDE/VSCode/Modular/Maven/run.png | Bin 0 -> 86146 bytes IDE/VSCode/Non-Modular/Gradle/README.md | 21 +++ .../Non-Modular/Gradle/hellofx/build.gradle | 15 ++ .../Gradle/hellofx/gradle.properties | 4 + .../hellofx/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 56177 bytes .../gradle/wrapper/gradle-wrapper.properties | 5 + IDE/VSCode/Non-Modular/Gradle/hellofx/gradlew | 172 ++++++++++++++++++ .../Non-Modular/Gradle/hellofx/gradlew.bat | 84 +++++++++ .../Gradle/hellofx/settings.gradle | 10 + .../main/java/org/openjfx/FXMLController.java | 14 ++ .../src/main/java/org/openjfx/MainApp.java | 28 +++ .../src/main/resources/org/openjfx/scene.fxml | 11 ++ .../src/main/resources/org/openjfx/styles.css | 3 + IDE/VSCode/Non-Modular/Gradle/run.png | Bin 0 -> 66179 bytes IDE/VSCode/Non-Modular/Java/README.md | 26 +++ .../Java/hellofx/.vscode/launch.json | 15 ++ .../Java/hellofx/.vscode/settings.json | 7 + .../Java/hellofx/src/hellofx/Controller.java | 16 ++ .../Java/hellofx/src/hellofx/Main.java | 23 +++ .../Java/hellofx/src/hellofx/hellofx.fxml | 11 ++ IDE/VSCode/Non-Modular/Maven/README.md | 21 +++ IDE/VSCode/Non-Modular/Maven/hellofx/pom.xml | 45 +++++ .../main/java/org/openjfx/hellofx/App.java | 39 ++++ .../openjfx/hellofx/PrimaryController.java | 12 ++ .../openjfx/hellofx/SecondaryController.java | 12 ++ .../org/openjfx/hellofx/primary.fxml | 16 ++ .../org/openjfx/hellofx/secondary.fxml | 16 ++ .../resources/org/openjfx/hellofx/styles.css | 3 + IDE/VSCode/Non-Modular/Maven/run.png | Bin 0 -> 86146 bytes README.md | 21 +++ 52 files changed, 1061 insertions(+) create mode 100644 IDE/VSCode/Modular/Gradle/README.md create mode 100644 IDE/VSCode/Modular/Gradle/hellofx/build.gradle create mode 100644 IDE/VSCode/Modular/Gradle/hellofx/gradle.properties create mode 100644 IDE/VSCode/Modular/Gradle/hellofx/gradle/wrapper/gradle-wrapper.jar create mode 100644 IDE/VSCode/Modular/Gradle/hellofx/gradle/wrapper/gradle-wrapper.properties create mode 100644 IDE/VSCode/Modular/Gradle/hellofx/gradlew.bat create mode 100644 IDE/VSCode/Modular/Gradle/hellofx/settings.gradle create mode 100644 IDE/VSCode/Modular/Gradle/hellofx/src/main/java/module-info.java create mode 100644 IDE/VSCode/Modular/Gradle/hellofx/src/main/java/org/openjfx/FXMLController.java create mode 100644 IDE/VSCode/Modular/Gradle/hellofx/src/main/java/org/openjfx/MainApp.java create mode 100644 IDE/VSCode/Modular/Gradle/hellofx/src/main/resources/org/openjfx/scene.fxml create mode 100644 IDE/VSCode/Modular/Gradle/hellofx/src/main/resources/org/openjfx/styles.css create mode 100644 IDE/VSCode/Modular/Gradle/run.png create mode 100644 IDE/VSCode/Modular/Maven/README.md create mode 100644 IDE/VSCode/Modular/Maven/hellofx/pom.xml create mode 100644 IDE/VSCode/Modular/Maven/hellofx/src/main/java/module-info.java create mode 100644 IDE/VSCode/Modular/Maven/hellofx/src/main/java/org/openjfx/hellofx/App.java create mode 100644 IDE/VSCode/Modular/Maven/hellofx/src/main/java/org/openjfx/hellofx/PrimaryController.java create mode 100644 IDE/VSCode/Modular/Maven/hellofx/src/main/java/org/openjfx/hellofx/SecondaryController.java create mode 100644 IDE/VSCode/Modular/Maven/hellofx/src/main/resources/org/openjfx/hellofx/primary.fxml create mode 100644 IDE/VSCode/Modular/Maven/hellofx/src/main/resources/org/openjfx/hellofx/secondary.fxml create mode 100644 IDE/VSCode/Modular/Maven/hellofx/src/main/resources/org/openjfx/hellofx/styles.css create mode 100644 IDE/VSCode/Modular/Maven/run.png create mode 100644 IDE/VSCode/Non-Modular/Gradle/README.md create mode 100644 IDE/VSCode/Non-Modular/Gradle/hellofx/build.gradle create mode 100644 IDE/VSCode/Non-Modular/Gradle/hellofx/gradle.properties create mode 100644 IDE/VSCode/Non-Modular/Gradle/hellofx/gradle/wrapper/gradle-wrapper.jar create mode 100644 IDE/VSCode/Non-Modular/Gradle/hellofx/gradle/wrapper/gradle-wrapper.properties create mode 100644 IDE/VSCode/Non-Modular/Gradle/hellofx/gradlew create mode 100644 IDE/VSCode/Non-Modular/Gradle/hellofx/gradlew.bat create mode 100644 IDE/VSCode/Non-Modular/Gradle/hellofx/settings.gradle create mode 100644 IDE/VSCode/Non-Modular/Gradle/hellofx/src/main/java/org/openjfx/FXMLController.java create mode 100644 IDE/VSCode/Non-Modular/Gradle/hellofx/src/main/java/org/openjfx/MainApp.java create mode 100644 IDE/VSCode/Non-Modular/Gradle/hellofx/src/main/resources/org/openjfx/scene.fxml create mode 100644 IDE/VSCode/Non-Modular/Gradle/hellofx/src/main/resources/org/openjfx/styles.css create mode 100644 IDE/VSCode/Non-Modular/Gradle/run.png create mode 100644 IDE/VSCode/Non-Modular/Java/README.md create mode 100644 IDE/VSCode/Non-Modular/Java/hellofx/.vscode/launch.json create mode 100644 IDE/VSCode/Non-Modular/Java/hellofx/.vscode/settings.json create mode 100644 IDE/VSCode/Non-Modular/Java/hellofx/src/hellofx/Controller.java create mode 100644 IDE/VSCode/Non-Modular/Java/hellofx/src/hellofx/Main.java create mode 100644 IDE/VSCode/Non-Modular/Java/hellofx/src/hellofx/hellofx.fxml create mode 100644 IDE/VSCode/Non-Modular/Maven/README.md create mode 100644 IDE/VSCode/Non-Modular/Maven/hellofx/pom.xml create mode 100644 IDE/VSCode/Non-Modular/Maven/hellofx/src/main/java/org/openjfx/hellofx/App.java create mode 100644 IDE/VSCode/Non-Modular/Maven/hellofx/src/main/java/org/openjfx/hellofx/PrimaryController.java create mode 100644 IDE/VSCode/Non-Modular/Maven/hellofx/src/main/java/org/openjfx/hellofx/SecondaryController.java create mode 100644 IDE/VSCode/Non-Modular/Maven/hellofx/src/main/resources/org/openjfx/hellofx/primary.fxml create mode 100644 IDE/VSCode/Non-Modular/Maven/hellofx/src/main/resources/org/openjfx/hellofx/secondary.fxml create mode 100644 IDE/VSCode/Non-Modular/Maven/hellofx/src/main/resources/org/openjfx/hellofx/styles.css create mode 100644 IDE/VSCode/Non-Modular/Maven/run.png diff --git a/IDE/VSCode/Modular/Gradle/README.md b/IDE/VSCode/Modular/Gradle/README.md new file mode 100644 index 0000000..39f2873 --- /dev/null +++ b/IDE/VSCode/Modular/Gradle/README.md @@ -0,0 +1,37 @@ +## Modular samples for Visual Studio Code + +JavaFX 17 samples to run from Visual Studio Code with different options and build tools. + +Version Visual Studio Code: 1.63.0 or higher. + +Download [JDK 11 or later](http://jdk.java.net/) for your operating system. Make sure `JAVA_HOME` is properly set to the JDK installation directory. + +### Gradle + +For the first time only: + +- Make sure you have installed following extensions in your Visual Studio Code: + - [Extension Pack for Java](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack) + - [Gradle for Java](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-gradle) + +- Clone the sample, open the folder `hellofx` in Visual Studio Code. + +To run the JavaFX application, you can open the `Gadle Projects` explorer, expand `hellofx` > `Tasks` > `application` and run the Gradle task: `run` + +![Run](./run.png) + +#### Custom Runtime + +To create and run a custom JRE, from terminal: + +On Linux or Mac run: + + cd IDE/VSCode/Modular/Gradle/hellofx + ./gradlew jlink + build/image/bin/hellofx + +On Windows run: + + cd IDE\VSCode\Modular\Gradle\hellofx + .\gradlew.bat jlink + build\image\bin\hellofx.bat diff --git a/IDE/VSCode/Modular/Gradle/hellofx/build.gradle b/IDE/VSCode/Modular/Gradle/hellofx/build.gradle new file mode 100644 index 0000000..23d8e16 --- /dev/null +++ b/IDE/VSCode/Modular/Gradle/hellofx/build.gradle @@ -0,0 +1,23 @@ +plugins { + id 'application' + id 'org.openjfx.javafxplugin' version '0.0.10' + id 'org.beryx.jlink' version '2.24.4' +} + +repositories { + mavenCentral() +} + +javafx { + version = "17.0.1" + modules = [ 'javafx.controls', 'javafx.fxml' ] +} + +mainClassName = "$moduleName/org.openjfx.MainApp" + +jlink { + options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages'] + launcher { + name = 'hellofx' + } +} \ No newline at end of file diff --git a/IDE/VSCode/Modular/Gradle/hellofx/gradle.properties b/IDE/VSCode/Modular/Gradle/hellofx/gradle.properties new file mode 100644 index 0000000..a1524d4 --- /dev/null +++ b/IDE/VSCode/Modular/Gradle/hellofx/gradle.properties @@ -0,0 +1,4 @@ +## if JAVA_HOME is not JDK, set and uncomment: +#org.gradle.java.home=/path/to/jdk/ + + diff --git a/IDE/VSCode/Modular/Gradle/hellofx/gradle/wrapper/gradle-wrapper.jar b/IDE/VSCode/Modular/Gradle/hellofx/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..1948b9074f1016d15d505d185bc3f73deb82d8c8 GIT binary patch literal 54413 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 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/IDE/VSCode/Modular/Gradle/hellofx/settings.gradle b/IDE/VSCode/Modular/Gradle/hellofx/settings.gradle new file mode 100644 index 0000000..c2bd2b4 --- /dev/null +++ b/IDE/VSCode/Modular/Gradle/hellofx/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'hellofx' diff --git a/IDE/VSCode/Modular/Gradle/hellofx/src/main/java/module-info.java b/IDE/VSCode/Modular/Gradle/hellofx/src/main/java/module-info.java new file mode 100644 index 0000000..a1eadfc --- /dev/null +++ b/IDE/VSCode/Modular/Gradle/hellofx/src/main/java/module-info.java @@ -0,0 +1,8 @@ +module hellofx { + requires javafx.controls; + requires javafx.fxml; + requires transitive javafx.graphics; + + opens org.openjfx to javafx.fxml; + exports org.openjfx; +} diff --git a/IDE/VSCode/Modular/Gradle/hellofx/src/main/java/org/openjfx/FXMLController.java b/IDE/VSCode/Modular/Gradle/hellofx/src/main/java/org/openjfx/FXMLController.java new file mode 100644 index 0000000..bed5c0d --- /dev/null +++ b/IDE/VSCode/Modular/Gradle/hellofx/src/main/java/org/openjfx/FXMLController.java @@ -0,0 +1,16 @@ +package org.openjfx; + +import javafx.fxml.FXML; +import javafx.scene.control.Label; + +public class FXMLController { + + @FXML + private Label label; + + public void initialize() { + String javaVersion = System.getProperty("java.version"); + String javafxVersion = System.getProperty("javafx.version"); + label.setText("Hello, JavaFX " + javafxVersion + "\nRunning on Java " + javaVersion + "."); + } +} diff --git a/IDE/VSCode/Modular/Gradle/hellofx/src/main/java/org/openjfx/MainApp.java b/IDE/VSCode/Modular/Gradle/hellofx/src/main/java/org/openjfx/MainApp.java new file mode 100644 index 0000000..85cb828 --- /dev/null +++ b/IDE/VSCode/Modular/Gradle/hellofx/src/main/java/org/openjfx/MainApp.java @@ -0,0 +1,28 @@ +package org.openjfx; + +import javafx.application.Application; +import javafx.fxml.FXMLLoader; +import javafx.scene.Parent; +import javafx.scene.Scene; +import javafx.stage.Stage; + + +public class MainApp extends Application { + + @Override + public void start(Stage stage) throws Exception { + Parent root = FXMLLoader.load(getClass().getResource("scene.fxml")); + + Scene scene = new Scene(root); + scene.getStylesheets().add(getClass().getResource("styles.css").toExternalForm()); + + stage.setTitle("JavaFX and Gradle"); + stage.setScene(scene); + stage.show(); + } + + public static void main(String[] args) { + launch(args); + } + +} diff --git a/IDE/VSCode/Modular/Gradle/hellofx/src/main/resources/org/openjfx/scene.fxml b/IDE/VSCode/Modular/Gradle/hellofx/src/main/resources/org/openjfx/scene.fxml new file mode 100644 index 0000000..622748f --- /dev/null +++ b/IDE/VSCode/Modular/Gradle/hellofx/src/main/resources/org/openjfx/scene.fxml @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/IDE/VSCode/Modular/Gradle/hellofx/src/main/resources/org/openjfx/styles.css b/IDE/VSCode/Modular/Gradle/hellofx/src/main/resources/org/openjfx/styles.css new file mode 100644 index 0000000..65f6003 --- /dev/null +++ b/IDE/VSCode/Modular/Gradle/hellofx/src/main/resources/org/openjfx/styles.css @@ -0,0 +1,3 @@ +.button { + -fx-text-fill: blue; +} diff --git a/IDE/VSCode/Modular/Gradle/run.png b/IDE/VSCode/Modular/Gradle/run.png new file mode 100644 index 0000000000000000000000000000000000000000..58c84ca6d906f3d628957212590bc6525041ca59 GIT binary patch literal 66179 zcmeGES5#AL8$XI-Uy2PB5TqkgLJ^SOEEEYKibyB{q)RtMN~kKL5K06Ip$Uqh)X+)j zh;)!nLPruHbflM1_5{~*t?$40zBxDNTpY%5n3*}}Tb}kl<@Y4`!F}~}XIReA(9oRI zxTm5^LvtKLLvyV0uam$xtWB3Efd7ubb=B|CVB1)yfs5m|x3zE6(Bz?Lcg#-!*QcM| zGlbL7u)RI_cLX)DWKBb}pQ@p9ThG&UZui`C)(zi2Z%TqfiR^}Kh221kwh=D){nded zJ%(G{C!@1tQiPhXZJq>kt0I#(x#_OeN&hF;nIZ?D;e!glTL$YLdp?(yx(dhJU|qXktH=iS}cab*%A{ll@tqU~F( zA$|L;ZAbl&^@-Z+y1O1VMi;mVH&|kH2DhHowZc32O9L>8< zcX;t56#weh|NoT(TKs>7VsV04A%omo>x-kJd^(9)rI+~bHx@e$rc_i6D@5b-|KU=W z9jO@*j%&li!#01VN2{F`B3wIqu;`DmlB&>7e4cGPyTl7UVTg^jGjKb%v>uu0x|l6U>#N{J5pl+XR`s!cb9!_J$bn3#8`F;~gtWx~~* z=8h4!<-k)562<$kg=As8F7Zbfhu229YZUh?R&6^TW%L2cSvEN z-QC@;!NK?qF@}w53+-f^uKed!30Dh7I|fA>r7V@L$;iQ8c)n92n;mj{=SBI%NW)d? z#1V%C0fWZIEBmEqopzx8jd!32YSIxD1maq%XYft5Zi$Y?`Gvy|b_suqe#|%0?0?DM z5<23u8@0MPEJ|hD{W?B$)uk!yY8#$5zopMi1Y6FVQ;KV!!aT~U5+Eh(ndC`S~ z-KCu;f$wGEliLfPe0%lg48U!Bp9{_P-B^RA5#!~V70uK-*4Yltx9csLpL3#R;dSAn z%t`(HUqx(_B<8cpNw@|E1L3b&8yt1gSe((53T?b1pV#B5Kp8ou-&`zODM0RDnyDwc zw|ouD6AZ=cF2o$n`jG$-K!6dlnx}R+L}HFTHkY(e#}O*K39ed2Fkpz}+?$QR%j(g2^j5>Ucjfp~bC>TDfs4eAv|u+}$wia}ksGse)QS3j%G~_29*a2pyImJ6l;nI(TaBt`@b4izv0vG* zV_$!}3R!i&oe9Z_MuQ-e2vRWLc*m!^2ut+IXe?F)KKc-t@Qs_x!nxhr-beY(ERVQG zVRa0eJ5a{e>X$jT8{T)@oM5DS%EYF00kz}SBX{$m=DYP3#%(_mDl7t7Ne4&S3$>dH z3PNUbrD(jk@d#cwIN;QUIBGb(1HELHE&LPbob;+6x%sR2XlwXN0cZAXD_y&x$OVq} z?5ma^9!9z_a*;=dm)GWsFJVrdIeO;sTnIu+8G5*CU3VFdkWaVMsO;qXkWIkf$<{g7 z)Mo|OO)qQ`WA@7U!3z24mbzLI5jCy1E$cEIwbU(djg=I6a}&!?Y8Ik{u;_@q7*F_$^asUZ|YjCLcxFY~3})4w4Ee2y%I zt1sYFMApEWVp8qjkBNVQ)mAv!Yn^15s-LubpQxF>Gv5_y3%P1ZraUHrWr9Fqwu6uY zt|uhqSz%m*o*)xsBoeZ*fZ26^`(}K|MJA--ynev%?6zu5A>$m>8GpTINm|)WN04ZWJBouLSx@YU?DF;nFohsS)<)1 zH$4%1sw6P~!Nk{(M}>h>M>maMax+1|o-TlTyHyF!vC{o%CUMM3 zRXMD}YRBEK;o%QV+=7p@@w%tO1QslLuqrK&zJAbzV;egx*JH|*M0F6OKRNcdwdVNQ zAVanuLwpw$wiC|ozJXIIr%RTKhAWS1E<|^_G%d9cT8iVM{eCdpn#hgEXhUJc!;OFO zo7bX$HXOJLA1~4lyb)N2rB+lZMrk^;)}s3Xv-jC+GjNE_ePqtJn)Ol7@{mR09vMl# z-M>}@eS#?1xZO@>Ul^1;^&od@KGg8_S>kNs=FIx5hQBrGVG0@f20dKnK{*lB&y8&j z2h=}$RyTgxqi-qZF;t`b$+Gi$iHnbkyKnuK_il@AwEey(Qao0~7H{bx8lR0WZ_S=M z6L9%Zux{~``g^=4LObi8>LkdBUE&DmP!_4EsCZfatA-YFBmgfi512og({P#Y8xh-p7nOO+^DF0- zKGmXcZm?Vjl=qcNNy{_GBn)}9bpcM&mR)TbX$W`|ddiw?M_EfTVUN7O;>z>eWYn*s z%}LYY3=sFL5*qw#bI8M1ZBD{{q=x$AVkT$yh1$9#2Eq5@>mH_G`+1fA8`%qqjH1O>Aq4$A{TARfyHoUVT|g zf~@XpbaQHn%b3DmT`#twIqc7 zz+aH^IZ!QH?zfE5T=WM%bN}|{|3CRGXpeZ7xU&KISA9WG z1=s6qK*dV`aT);!V7u><`ndXepC>2ZgQqH=ClTPi!0G+x^@~%f%3e(sM37#962|Rpk(D<0;d^n+u+%#n%ByKRA1I>nbSZJGvTG&TmKi7h zGcN<)Wh6ht^rT+65{^B<&9T?!-6S>+%w%D+Co0126KGxvaZHjObK78}C{{RR9t zrMZ`P7n}UxTF;b=*R)rP-ZuRc#}#}D27!;Y5VDOYHkZh;MUZA$nO~92VuI_b%I|h@ zReYmcmE(J_uR!!#0#;gy?Ei)aK-6)ZVPqb&UjW@&^aqXZ-a!k;VW-55b9n!aY3Lx}&9MNE z*dvyNj4S^SQ|)w&jY|B#y~&Ba{D-E1YkL%Pg5iIzX$Khpdws_fXR)4U0UgtCJ(SfR zMp)|WB%_Ud<{LKINSG?B-%Hs1KjE@&O}l8n{mD?nObckIWwEK|zw#LJ7&^VUh{-m_ z5nA8Od$+z2b9fvI628zTp^W)=2%#>Rb$`Bf7m4V#nJ^TKTE-J4`D8Hxc$0yIQ8SLRIN2M&)>M|}u z{Kl(KO;SW0|A>AaH#W`dWV9$Nhh%_Sl+Ro+&m=|oKew-Adj?VNd_U6YPIx&I#2^8G zW~gOI%5XQHyr@TAZ*l%J9v$T9X46`geSMf$mt}r zqSP#Q85B<{GR|Jf{3FJIB%D}?$7Nw(swNquzR4Ba|4}S}eO!R%vt$06h7-u43~&Ek z8QL&of*V(4T28R|hh)q!-s4`NaeLG2DOBvle6;3&xJI80D6Pr?X>2&tUoU8G*eOCP ze#gU08=dMLsss7fEv@8}FZemJdfyr_i-+cwS!<`m$&G_hIs4;KZiAFTPgPFCPTY#3 zgJh&ld_%;xApGoyTVkIiV>WhveM61EJ-=`IW)J75#nCM$r;p29XJ9y_+pQg0I!gMt@eW-(@=Xch;mzyLd2KmE;u1Y(LH`I647nJ0RFNKGivYu=ATo5mvwUzE` zM`dvRcS!5)`aZ96_Em!fa)vGRv{$s6Wbew#&$snSpVd*1eTL-PcHKODCO~F(p#=uv z;ghDsR6lR6)Ql3BC{^ff&VR_}(i{W|3QQ}pC9@1y0ub-&+2KreeCS8 zj-kA@)xgN&xI<>x(wkciagj|9mg26(kkZN<#F3+t#<-|n{V zd$Rb?tf>Xc2U{ngd2j3a{;@ops`8JHaB19T!+$%eW?&HXY*IWw`#M zq^F* z`LR5t!``41^_Bq=b&_!dKE*6dz&G+>ZweizG9NyAY9io^5%j*xY7c#wz8c?mzI_kb zx1^SCxxS_5BGnKV;kV*foH=F4dX5bewX~LT6Pwn9K4M53fK;ZU+q*Z^QwAyJ89Goy z!C{x7n>c}VdziJIS5l(Ht7gDo3zDK}8R2DS2*`5Kkx3VPx$v4ucuPtFW5^<&o<3rwPBydCp4FjBwz!kiM~ZWu_vUh`#dcT!|>v} zYAz#r2;sBkZ9xnW1(zserhCM^hp{(58|dCwOt|Wx_SW%u>o_&O{>h9==>r*izK3#Pn`_t6AJ$ z;xj2lQE@U5)+YZzJkl4!PQ{aBrJe1H{t~K1Pr;LlNV_bLd9YLcf^AA`bLcc-XXA=o z51ndB3TKrM{4WBKRDtgJ-*v9OXHU4XlyP) zT8W0QwxEK%&4KGgUk?4lZekn>&+)+ z_Y+t4QMifJHimqKn^a!0g2ji^xWpv9F68$qXC{@1o*i|sWY*)!9j^h`>uq0cJL&+v zsJc-2p5^@~&X8uKSI0vXdFtcW#9^sLI% z4BBe7Owq}+oY2>RikT_frUF45Wg|@&rrIl>tHO(&f|r@W6%S6XRLq1-!-SB9G3`Ry z=TCJkk2n_ay4POlwKh}+|IwUGYdFB=x2tBWuhFUm{EN_w5nIIN_gv-awDdyZ%r1M) zwPA!;(xKaG^1B9^OZ8PlylUuLbm7*tWp3NgXX+<=Jz>`GuZ5QNYbE-7*=W6+y78=E z;=YMHs)*;K#|Nf(*qis@FfdA1DN`RdktY$k>YOCC>$P+u@))f!c4#+&$;|NzO>+B| zNd^@9u;>gRrgt79K^PH}I9aTbsK~5Bjwy?kqA5o$+D7g0m_5V2Q>~kt8)=g$_R}_u zUfJhVNUHerUM2Xa&3MgOGio=r4XV^>QyUZ&I=8g&J+%feZhPP5Tfanend!anb!Y+? zv*?xhsvzv*R7b=JW=WRy>hli~y5sa{EiL$B=9QJ!v{i>ei%_>7er&5WF@hPxMckGw z0LU#Mj$3q=zkb)4@imh_&Br$hqhEJw86JmJ)1&dpn8K+Q_1jT|E3ir_GMU)gklCat zoeWRE467puI-FFS*giE)j*ENeQR#j!8fQR0Qt9O#PnXoSm8t)*E zL82tKJG{QZ5POF~wl3W!Ac zVMm?erj3g(+4*Ts{!sy{Z}m@qcBDNrCzFKlx_%c@F_?-NfkJq&QF`lP1$F+=Jf`R$ zRjkcA&ts@6IiXkJxj#3vWj-FMX*cnYLS4~&A_YrL+3{U9uZ3bt)v+4rmA0x;$#Arf+Ha$uz-$OXET`HQjV+vo3W8Wr*H z*e$uNm6OO_bCMQdzjOBV5J4F%SdRswN4?MNhco!=2L^n;CA=C(bLz!_s~;|7Jj}J| zDBydS27wq!$UywjD_I&huYNnG`F0LG)VRxGWubCDkX>IdiiAwe&WA8=m$ZI2qUphh z*2oQhnqsrCp@X#68C;#r=Tx3E<~oHukBfA*Y5%PHd0>u=^qmAR&w(u+8DVv)+Hx1J zS(W$AHw<6D)HSi;Dom4hjIxml9_23^ofF(GlN9-j1b#j}AlgR!!Vbg&@BqBUSUzX< z6Yb=Fd&8Cd@_A5hk6;!*_1xFBdh9lA0^77QvG^{3rl>~Js8zbjAyoCjqt9Ko6-${i zSOeR}r?pM{s+lY>-c{+J47KPUDo+<=JbL)$=kN3J;&Uaejh$Zkzr=4;EzOGTbHVBz zNyx<$PV+6V7NBf`)ct^4Hf#`9CvpFlccIrc{hhui#nW75r+8$6NBC!7C3_JWZ8=;j z*7W&lbLb(-Keh%!QK)znE%(vwKI3Os>LD2zD4@xs{Q8GM2k4W zRUI=}9Re-~kxFEjb~&afWiTVvk!ii@yC`)V@PC4qPF8l|Erhe;C&Ls0KM5=8+B04x z#$0jZ+OSTmN!jc7*y^x_1W>c3?Hv@Q$0nXMP zmfHBLxQ_ct>YWgfZ0Qvkx8bz!-ASxAZ&cX% zIz~azO-1SK z>PUYIKTQxl#Uq;&mKtZSN(VWkDu69tZU#v-q|PoFSZ0hh@ex}U79o|(ak5{Of2oF>G|B`WO~SI(M+DoOZE`A(6yi8tT|PCZg4Hh z9?(n_n&R$pT$}F5Yvl=>%MpCj|GTNO_<&pdQ>_%&`>2}|d;iRtCoQDJR@sXY*l`83*L;-=XSuLo1CG#5Akv)2;#)BO%3yzgZKQ&hCi(l;2hGuH zV^mo$cNV`QBSkj(dHqS(p_Pw}W;_);jR+-%4{Q2Sr~*yF$q^4`VtY%067lA3&)>W2 zeQ?pBYm~FNcTDPwYJ2qq+*e+NEZ5iYd9)iUJF2ZAF?zxBD=)0q^RA&ev{RGz4c5pd zS3R}C_f0S&TDwFV=42Cthdc56o5Z>{43yrAPBHT*e&fzj1i2xqp*e5xk=Ckj!?~EH zj|PdHN#I~WzK+S79*?DT#1~oE1EGJBJc_t{KbH3}o$ra4>Ai;fo z!nFVevSa&7yZB;4>O<6$blZ@x6SJ+=xV^YX!bDHslhGt2 zN@^8T0(*fn#QX!pF`CCecSatIU=K{#LFHwU{&7eFP}s_z@;A1e;X4Wo%+-}X^ca)v z?F{{<7N+4-iDZhtxqPpLX+D2ofmaJkiY|iMQjdPZG99Dgf{!Gik)WcpAS9mNcYDpFJ=os#3%T;FMp6MG zWGWhxi5KTuv=X_xe6PxdJFDly?}Work%sO5)ZEeUjwJB*R+)O1bb4Dn)s$JX&H0AQ zx4Fkw+9Bnd0XEDKU5HLgDZN9_MMyqU^#!3~o!5-u@N_;>qHaO=QT=La<*OnepSp-? zx@nQ+wR0eB8n3$G&i<3vB&4+Iky|}7E=D1B48A$c<`&pJ$;^Y*F_ zmBd!sGeBxaq-$;+dVlte*&iw*@%rE5>zZK9>)3O2{MZ!51V6Y-HY!4aXSUl#F58W5 zXE?&@Wr7#6%qfnVg#nYBvs12tvB5AV7;mP^@fiPBCHQwGS_|x)jLF8PHq%Kg*7gJ13OjW)gzIpxL(}W+G1yvjESdgFe5`C`G-cQG@b6;~tf9$G&3BUXD zKul=DJQ^$77ZQ9j9Au}79Ex5ymiGVpi(GGlK<2r4%o^p?xj;*@L&isZZ94GaxKddSt+zqWzSm=qWSca#05|=$S&6HaaYplLzB@u zBUZWHyy@}H;l*PscS;NBX!K%7rLkW1w}fkuNHBDI%7EL%#F)qY`437v9bU2yjWT~2h6m-FwAuNAqsT9!l%_&78RfPBN@oIi6>MUlh-Ueq2&Z|vu)A))~Jd` zHebQ@VrWvcpD8v8ZQDvwSNzRBAkBW!zb)R7bfzZRHts3l;J>*&&3vP?Y}l1q*kK}7 zj4xO3+uF*Ivn(LKf5X;*nC!<@*a`FQ#^jJezX?zdgJOK$C(GxKtD;8)KN-CY%%!*c zPttVdSHqwB&N-0sZnv^FRKWV%s}uQtyI%bTwy4#$wWjLo7YQ=3JNFY6 zWXW|*W>Mq@RLj`+x7L)l5Bc`Jf_5%0(i=>+f0k}%z=gfS?lr~LpKBh#D(jlUnX)M< zBg22{JnOp#4*wyaaG5{loH>r&&;C)jp-o+B`EIj>)_wu~8|gi?qUD?pM66_z#Qi^& z3TngtCWq}sNEeX!j4CN?K=PPRPfthGg)qgpbDa9mMeex_*1J#^M@aMP0Cw*%-YNl{Tx%1 zRdG&}(Df}!QhP$Lh0`n%C|8JMjvBUqS``ZuBNRXUQ))Hru4kxt?3$OW8|LI2XX=LNi7w3-#g6^l^YinQ?ggo~-{ywPa6b`fQ*OO%$~mCa z)G?&gyBx9%GC5^EJ&j9Qsqtps9^Dr6Z5=p(-_o!Izd`$N>+IXD)G{dERcXJxRDVt} zB$W{dCcH?-TtyHqI;%X~++qh+f`PHh*$s--qLbJ#XfyB8!nt11atO*jZtwtLbL;bF zY|>V2C{WTIEOr9@b+zaW==?b$FAuIo*p$iZ=WJIT;?r`k)5Z1hEkp#Wx5YiIbEoI~DY(`h0T%_4^dDEO*tgJxz=!w;~z57O*N$ojJm74HG;OFY@( zn-NvD-KM`BQ6Q^y1`xi>o3(rskka$*#~F7=PZ6Dq8cwP}Pd~~mtn!1F7Boaqmd{u! z0OQbTcGogg45^8h!QO`QsE4<1>$eoFt#<3!wj~A+z!)sGxobQ4lmzzYFv_6$%tZ7F z@B7UZ@2YETqP}+-D>l6*t0Y4ea#uCB#w#`k2dU2%k6mbv>~;YVXvct5zK{l)_?(6g?gfogV}(2zZWdMU+qgoOftiLDuBYb*ix_#xMfGQ zvF3YDGjeQJqVw}*MY2^BlW23mY+^ff!Eyl?iUik~yR0mhAv`eCFB_XT8etmw>Har_Z zGH{WUU?`vMCal)bv$yX*>L++ZCKqMLyyv5UiQd=osoNBrtxt%RxGc=^90fpxWw@sB zxs}BvpZfz@V!%W}mw_<*097lgHRLfF+-wLsujri$RL?}Qs~a0FU8$Nsme#Dalc%QN znGCmsL$(YI?3Y-_I*RTOg|xKkQy}k`w~pmRo#S<)h1{c*c-R*6V8=75voa$RD?3>^ zfV^J30OXGCk@#fWm!97PMXo!9Wn0MflRuA3d176%ZGmUQNmb}+p!f%n$^C##0KT^~S@nd+ zcrb}qnvkj~@3C;RfdJ?;w>8IW*^yCUDYFtKG0>Y)v>9|Y#y8;z9pug-6gP( z+TyeW_PNtnw%y>N6P=attv1kv75ka&4l;;MFO4RC|LIhHG;&jyZW)yKcnl$P8~`bt6W2Ax4-{*=5}&6lh0jT^;EoG8|v z-d9s&9jf*mUd8H4h{fIIUn5-b(5@EWn*&2s&H4PNzlg13rXbU@>)A8UYs(Px|{;Kk?mhnJ0Ium(c)}Nz0j4k_~JG#u&0TGJx!CqdW$umNf%#bXhfea5{;ld%Awl5sR{RAo`1U!a(iLk(BbBiHh$M4Qu1Ziuu#WbUaIX`Dl}b zhlsoCxQSxTs>IkOj@6QN%z6=ntG|1^x7l2i>U-m|iQ6lZ{`zv)3oQLM7!b)s764TC z0su6sK)yGiWuW$C04<Z=q%m)G)z}pE8Zu;d_9@tgkb!CHED zzMjEC8mJ{_>8slcsMW;t^RAq4<-v26ZqiwESB!;)N2GVNFErYUmL9EHti1MNP|?z+ zaFRQ0TOXyc+*%Px)>jbG@oVWHW$s_K_a2KW>>xFh7?z`ETO$_6i&rnGT0#dD+ZA|q zO2UQV>l*0=>OMIoU4kfR%REtzKs8fTTG?C(387^_1)Q}qf13#E`aI&>t3&)GGT4EQTgsW za@lkspSp}B*`^dK34P#*I)99LLDR^2t&svYxl=eT+b<{Kj`Jb>bp=SnluPP>69go_ zU$R8jC53X*4k(qFO37OKZ{!Mj_O11O$5P6Rbd+ZO&H}RZ=^rW|r#%HrEj1#P3%O9w z2rbcq?42oIhKMm-YsaTmtw>SUGR`XeCaff9_fxBI+*%~3!Nd6=kS7 zu~$%1AUGHFtV#$!Gqx|+I9YD|V6bFpsgxVBQ!4BI;u* z;Oz;+gH~@PMv&(gf<8GQJvpTDq5+5n=vY4&0Mqq0bytndR5Jbg*)3f`48GnBGsJgY z`TS}GS+WMt_pvcSulh-@T?88$G zaH3V%5#w}#wE@=Xj6B7tV^EU#&P41lP=@uM1w0#V)K%xoVNhJJPVBtLycPEIEQZWU*{LT`Z|NWdqm3r?g?kg6wy%ehaB9u()w9LyZj+G%723tNxPIR) z0mE^H_H1^;pA=^;U}Z7r8{}q7Q6-1)yVd~2PROhh8qOvk%_Qu;Fa+2;K9f^w!~hrv zrP7z$ns;!<$_Snn8nnEs-(xHNJpS8f{hM=B7Nvx|K;cz9Df}$@Mvcl9SX~7w`DIE_ zd*$Q3Ef5l9hnTIl^3h22%BvNQ1F+Q>SzMrq$+ct49W&}b@=R9}7v7z7S*3?$qyWaZ z9I-O~YwSCs^Ugk&16NOM87OjCY0G_BdNM?^I1#X45aE_n);$acBo_TiAJY5$UyX(m zUOlyeqmeo})A^|EGjXEWa(=e>We!k7#bPeGIpHk_=IapdP32xst5ZBM{{vqZ)r4Eg z?87C^tdvyp&|tPqX(#L3=9@myhhATh@JZW!HQ7S*6QdkXx<*@dr6|t;_yu zAoyCYp%opk3pofD$tY##@SGy2!Qu(F_%4*8SdHNGbB?N%Z5JD+9hCX~r2A2tyFU)N$q=FGSV-86Y#Q@80 z_3a_3qRj(2b8SHCc+G5(uPWarLUvCAq%1ny=0OSbpBs;E?H3|=>U{w~oB2oUM=HDl z`1~-d83?4G#c%KovOjWgg69D4=%>mVX2|nwCX0+aPtLEs>;GEN_qqe(1I#z}2^ z(V=ZFI`vdi^xGs8E;cHmd7wa^wtm_Wl!TaDne=;D0)$e8RO!+eS*GGvVL2zx$sa~T zDap^9A~BM|56mV=%}DtEo#+ZL-g)WNl}rtIC~-L_)VA2r?|Q|Lz>QY18A$PJT!WtW zSOa>;cfns&(Iy&$e@zdW91^9)POg(@@r*g|4w`^KsYLtJ^bo0%wuO=+WA^844T{sd ztwYUnuMcfybGM|v+^J=z;x+(2{)9bH z{!|^2wthxw66<4Q1I^as!L}ki(-mYd@wVObaE({kR9RB}wt!fL=l}dc?lK%_Y#IZK z?tDZFK~kfIm3Zd&@hPIymhcj;=5A)nwZTHR*$f9Ip~E*4c8zc*&TiRDu4;+$?Gv{F zohthHGSzZ4u5~`<$2(GupIlx12W zSFjL5mAP4{;+A~?V|-vncvbB6227oyv@Rv>^!P4sjfhT!K@R*hr-Pu_Cu0JWVmU=z zsdp&v%(V>5`I1q~ur>$Bwme&y+54!I=sL>$G)t$rlv^wB8NCryqimzYxj&JO(ziQe zPGk%5vg$r%*6dv_Uy{DVd`*cA2F@|qLRIBR<$OLB4*iz>`M@^GngmRAQaCV@IScRB zswU3}yR0^Mn+=0dKr}R&Z46xxzZ3J}3lao&ahVHa0Urwy@o{jvRIJM{xnsXLJU%zeq>OMDlVwpi9YA?>g?dy#YZtZ^-y zk#m~_&3rq@c%hlygrP^=PhPV@7D^#TUPMhwFFF6a+q%{y{yKHMX$94COjU$g932A6 zPJ)}9A2+HkzS5rhINsC=*8q^0=3JTp8JWoDI@R&%RrRNvK6;iB#wO+NKu6^=DMU1` zJ-xGTK*at}Qp%wepB!;_v7UU6)l^YY@zaO8Jtwg_VJ9ruYpKMoF zItlrP!Q=+P`)#7d^8__U6CPDu(YhhBK6aP75pSExUvZgV#5POj-w87C7Q;xx={xx> za^)Nz-4a?i3l%no;D@otnBln_+kHS7ErIhaUMHv3ZHx3i`3GBT*j-2{27{i{O2y8@as4Pa!-zV=q={JDL@}aGu*9D{8jBRr2-~ryS3Y+4 zSTMHA!in6#gHni;r9J3@jh!NO_`18hOF^}k{-rDz8EHx=ux(F#m7DBwrc3^$;b1k# zzXOV64RBCGl?wp)zhs)_^b_?5mwb*1f*f`=Y`5adYEAt2TLuU+kio<|wUc-!o#Eec zu4AW${Z~b9jpQcd%n9;)27{b3|K8=sK2_)px?_;8^yfPZj^D#ubQTz9IX#g5_XZo} zX4XOSjx!7JCrbB_MdxgQTrBL@&w!++r!M=2TQYz=0{t*ZCupbq{uJAba`Oow``S8$ z>>oH;U<>YPimLI!47fbififGDIFhuw2DY0(CC=mvIgt!*lmwx$`#_LfYz zh5^p!`QOc)FYJT00Wkm|@sNx9tCp|P13(8F>)$;zz4Rdf8i+b&tqhO}b86c94nZpI zewf^r`yMV1CrL(3+CGiI2hra*a zDK{I0Q3T2l=ph28DoWR-8JM+{25{ov{YHd?WBsUKG70Ky~v0gPtL z8cHb=C3s`0ceu-9?$QA#S$V0KO?ojP8fYU&vbZ~>9A&Tc-QIO%A)Ki zD=^j{uBRrt{VV=bNws+54biJ-EJow>$$baUbH@EHwZLvcms;2$M-u|O@{Q>)wYhV} zc&Xoaxt@FQP|&I0a9e;gI~g~yDL-bfq6J*8#fE7D8Rlx#5#}4oe;a`=|P zze8p&;letW-}rEju0X=q z{C&y(!0&$I|2_(IDgGANAHl!zT&HRos=&4AXa?7*1ekyhb1(+ivdl>I1E)WN8hS_x zq#LIv4;`uV8j4V$7XCjDSx0KVBrYR`-t~O;2(xW%`VG!Ja~T2-u}u3t(?8P({33zh z&dvDg8?`pn=!Q`EzZgKLF%S8?^sMgC%li%)#p3Dd4;AKt=I?^F%wK$1AQzTeX6ph~ zhGcI(1YW9RgLEmyM5brOqAD=&d_RD!N-j|8FO|$!ei($n`tv3?PcthHn6tu*=ni|y zqJGz^kO2=!&GiMYyMrat`(q6#s6kT<3wrMa0dK!t%h2LYnP7$+e}8owF*u-J=X}qC z;zKRTcyp+RA8-E6zSjWEoG;~nfr|FDvOwK;g)}HWww>^UP+M|taz#(4<3Z>372Mf- zBobb0q}lB3M%w{8UO`x1ZZLHIY&LDmtihf7$nMC}`GNNNs1zlw=Dxrq{e8}k6lx5n zxtd`^Y$U371s(=VdRL+|hkoQ@kR!nRo~Sn7(}wP{cLb6VG&cd;0{k4sL)O;}5WUTp zyn^PcTLy66C(zS%ot?4mI#Fcs?4!Hl>z_ahm(h`V-%=-)Sm8+=(c{7ngFco4gmu60 z5&+{n^n5{CL;=j+7VfAR`}l{BK352?Yt3S9fu}tsFDLj0bqVVNit% zj4K0z_Kt(=06FiDn8Rjj#JVT>x>CNJbt&HHF6HHV51?;Kd>_?+*p;Dzhkdj10rZ~< z#rHM(m4xv^0@S4g7IoDAE$|oJp$~uOz3vC4UCUJwJ}75@`UvCYZKAEn zZ!U#?_5FJ7I{Xu<4Sj^H8+Stdxv;d2t5uGWz!f-gh|eo^@a)Z06r$;8Oo|P=PSYkx zXArZhpv>LfhVKE|9y1yzw7j;uURHG3DIO@=%_DzP5b%1_0Ce2t@5nO}*yoK{_+n#J zfyupO05|yI{^bi7!^@wD2`ZkjRA?v8_zs~+4ReYho8>!@&LZ6*TauPppH=vQ*8%_o zZUL4sz`l-wK_M3yr#1|FBj!rP-H5*c65_=dr=CuktE&3n9&}xAZfrFYl(zP)*jT!e z*gm2@8*Lu@+$8Si*7p6_c$|rn2Q*e;zwpo=(7;X{0W!nqGnj#fv^dO!li5q&W^>iR z%Mc@XO^cd-9XyExBBfzr(>Z9TaT!YJ27T^d(-X(cmFqQ`c!pXo-1B#|sq(nyhWI!& zp%&g&&=kAmp~M=&Hu>SOJMlO2k@Rr@ri#8G1h*c9d}alpGLj>S;>J;6435lU zFsm+(A+(ulKnu(USBqY+K94r6Jvc_5KKt8#rC9?K{W}w4qav4;_KUIb+~aXFIR3c_ zJ~re$?yL1q7}vC){YyIW=Ij#EC!DNO^gGywa6*A@lSG$wVjxLr5+(~5-zT(K255#k zHOEtHO=aE01iDXrvo%sf=@lRRjLk>7e|SiMsWKdoo~2kDk24+T#a>>fgDexSmk0z4 zr?!p%bp-+yhmrGb6{906)T)=*3;6b0xpS?oUbP2Zvu&$>s3F^H9(t(!fXo5?Q2gg- z0QR&j-*q(=jo4blSYFhRlE-Q_4Vtk>eLI4FHw%P<+^~tCPZwI>W!|+GDT9q7WeuPu znc9SsMbdi~bmA*9f|w}!Wy^va)VaB_(lF7ftCR0@ciY~=JpjMy%?d2O=s;{+pREfM2)}dTM-A&r0Z5mThEo$=Y(C z3DGsA>5IsPvR5h*c+wo%9sC8bv`}_TibL3YlI@30naS|gnAifdF5PKZqJ$05lda%4 z`z5rURejGvHyv~=zqaV0b-Y9CkB<>6OllqudLV>NDROW6MJ?%jqG6&aJZsc4B>Z$Y zSIetdVi*igo_bZd7hd9~$-Q5q04zR#Hjn;`=!H}>$X+F2`d--F`NtV)cBF$Wym?Iz zQ=Jw@nz5jPKGp&Q=daf!WktT9(zg+15cCI4whCiLue6V%z|*lpmXR|0bCFzc_bn5t z<$SqX;rDQt48(EJ`;AjY@sX}c6Oqwf5{4r(!ozhU%m=n3?yo;CT0w8?Zzmf3`$wAq zAJe+{w`=_1?7vS<0NKq)99q2uy@itBKeUki<{#$=-QSD?tv%muaR~drn0xDhsP?sO z*uCuz1f)bkKw3aRazH_)Bt(W7K&9KEh8_#0dk86|1c9LhhBkmfY6zu6XXxB?3=H3I z4eCDUJm-AR_q<=df12=*pbmP}SQ9i4E4&E`g65JRi9?@K%?z7~s!2wv4-s2$y znyj3rsiGMsa`hSWA#u{f9JyVwH{1F+KF<$(Cw9ghH1!vS9GHSm4Qjm_Qlgp!DT9w6 z%t1koeN}&nVx>kjkOO~h7tu9=q&HW25&pwaJR)}&ME|{I zP8RZ)+gG%m<@;Zr_sG2O1xXhSRq7o$aNtNu=ZbzM2`C$AGS{+0F65j=dYu;^U$I-r zL+}nC2A7muikz1UI`O#}f8G_UfQa0)Kr=+Uh?;ZDS=5F0ioLnUHABqvC9bo5PXP|G zBc-+Vj+68v*Bf=Vz~kFubA0V6Q*c31cT1E_2;UXgGSwgELUHs}R%yp3auq_C5?z zgu-+A5z_xOKDr`Bz4NZ(bnB^_HNK~1XcXreO@oX149nktZ;nYyI`70s9ReE|!aqYB zvP;59%6%e&)%-MALa(h_LjQePb===PUWYOVnAa_>Qv1erYG`CPuEnPV2ntV*l7!uP zO9@h?cLB#YvbI1?xV!44O70qya}bSdf_+Y$m}nk<+lMs!QvLkWpu_z@5E;EFjdHtd^V|4nn?B2&bj}dl=K>(OEAbG5=NzM-_ zDJ>Q!nq7zgaI&bbb|){qif(6D3HAnO>O<~DVgO~35gs7$aC+$Fkm&7sIn!W8peRJV zAb?c#rPq}lX%k0GM|f!vAiQ%~)2$9+i(5fWJ);E`*g@y2H)<;B!&|bp^LQq<@`LzG zqg&pR+@w}n!B7=PNiq@-NVNLF-d&GsK=wf;eLjLKC=C`9*_~jbqJkDk6p?Pm5q$*G zEskN_>>|gj$UWQ^=JnJ3v55tfB-|^qTmAIjj=0j?VO*j10fF)4Ugz=E_m>9AsH!{o z<#bv00}_kLo)f^eoR*4<4MO@m@TvAbiAyF~1M&JI$1bCoaV~c`UE=%2%|;%(Ff<{0*E@8L zR5Pc2ENJ04y&Fn0fEAPOIQ}h>b5gy_fWz?Jby`;DMTr1~%l7tv8 z(}i?A1-?5M_H1?QLZ_lYjkO`SjDuT!5}#{^Ke_B~L`R+j5BFyRz0Zj;+2pVJrIYtBxQs+MR{b*k2%6hdA3&!7nM6iOTOxf?H+=5DKhSJ17vLo(n~=ST`8p| zT?XP6Yo|x-Zy1%wVv`PwT)7ffs-Di;S?AcDqi15z1QOT*&#u+~p9RSGq_FFYe_3@i zO|v;z%A8J{U|@IGX#$?9UA?is#w@;z8&isz*@ugLLaF?=Sd zB!`GQ#*D7ROln!4K{95vYKx@C<%XdSvb{^__?_F})6;8(v6jtkQv1r-UnEs^w6{M9 zL3I`>RmRX-?P>r1Fj(*>YL!yyjY$a{lclVa#;S>*Kw9`zH!kHDqC)coFHagUPEfkf z=M$|zjyT@@qViA#u%Zkm#}X}^EZ8g)E}y#_xUIts_b_uFi^z%>Mm!Uh6EkX14AFYS zJ%B5O-!!L_Ns101uL`9vohlyaP!9jx$mZxE_aDxo78@p)gF`mrB16iZnS2o#W#D`KY>np>wgUBMG;OM>eGMf zE$YTBCoo6crN3#$=V>#xwO`r07ITuO!z{P}M}Nh8?S1o_tWoN=&RKW~?!2IDnYQm3 zK`W3XOTlGO^PELS}5Lg>}q^>FZ)Pq!r|+JO8PZERb}%4 z3Jk2N3^tSaq>e@h%Vi25`4n&jia#gXH?Z6A%nYO%)>b;Yq0${Slpj4Nh>b1yq-9^> zF;_Ye`>~)RG^=UvM(DlQ#ZGS%%43(^<4KJ5v}@xZk6q%(VQuBVZsU_g4FBps% zmzR&!`qP+yXmioMns9l3ljp>s&f0_7igPk#MZx)k)wd5UfHSc;5~*%Jfvy1xYGb;= zB8*l!<9@=>$z%uo+jF`l_)9sLS&?Q_FDku3$-jv)yy#$3{(RCI?OdWVBxBI0$>Gve z#=qp3AR$34S2>C_d%=rcH#nMsgOV47QC9jjfs{ulK%z|-js=jHPAxBTwL(&8neo7Vdx?E; zW<;1pCejQ5k)M2i;d0cXCT3kX=FDUXhA+)P9Xj|ofu`k!d<0Cezi+mny}cGWx)DCW zG^V|&X7{CE2rh_iMh)th5`8U>znKx2LkR5+5j<)-q3_CS6-i&NJjDN209nU!+q`Hj zU_*kc2c`|2Q`+>Sy;Ek_x)|6_R4G^zl4J_q79KjWj#?gS_r|Sdk&Ei}mtEUEqE*uS zZ$ancbvsbM)bqLBI?W*rm{7+)1vug{-0tM2XTsNBpK+}END3g^OLpd=;!MoAl1#wjDF$IYp*W7pkTDG{dK{E&j*}rPZ4C+5Ju-Tuu0T3|VLV;xbR}->jYS_o8x1fsDT4LeOH@Al zzVX$YQnN;uyOpm%9zs+DibyD9 z?Q62=79#F`Qzwo@4eGyLM;!jZ1c&r?eQvPW4$>K}cU7H~xg%p_V|x~Il>K-${~=Ff z`4@m)ez&ye4_c1j4EOeRh>Sn|^i4s5O)&1-xPoPr5@2_9k;mj2^iVSELf4=&L`2 zq65dvh#{#tM6Z~5OMMT-`-R?V0Hs(r5!f}Il=+B=& zzu+zbABy9&VlA&Ofxnc=tF!o?Z$D^AbQ!ug$45^MaX{MQ&$j(egAWwuDKwXYCiDa# zEJpt=jwcxqo(qcdYyi>GT=9?4FXF3>XJ8JGt1f=>V4uVIn8_c^4SFwaVv ztq%(0F`^rNok_F(Y15VBC)@`ZWA3UK@7LwEcybIO;3&O6k3;S|q&-7#Xi*pC$P2t9 zgVI%3YPAYvKsX))*q!<6Xb3wa0JTSd%Z87$#7s?23gK^JsKwDUW@_M41J1s?9fH%L zY{+l;&KGA#?H6L#9D;cLc;i9|m|*-FVcEDHPT0x=t$L$r%srpE%lA6Bb*^x#$2SiP zU+`~Iid$94-W3mlfUo8Y1w-=P;4Rhj2#PPC`A;l9&x+4 zhZ(J=1`d0acJ^NpMBv&6IN$wT3-C)fsVbCg;8kHsRVmYHICg(VX67gsDOc0;sQRg1 z9z#RJxFUm`g$FEm`G1~{v46^hQKPrlXKFD=Cd}k?t^l^z0ydYJ5wq9IxnPyWW%tBK zjp8vL<&@Fl`US;P)NC6B^!M$;8uEg8y(y5>$5OW!sAX>kyH%78Q;jwd`>~trT5=rp zV=2DsQeaHSgr`%YzU+dQA8%2<+XAt9&}U#F?W{}&KrZ3MaxMcK3hLp28wMrK6pjEz zvQQWW$9(P4g(c~^SYn$=d(l1T2L?9eYrCn8HVx{HAeRQztQVU_2xn_C0O5XBK?4bS z4X5D$`2Vj_hx)q3FWVe2iXoh5iZq@8!g`dW!x1}#H^b4al3SjTq~lp-^w!IhK9_*D zUKCX!5-9kMj>p(yq7RP85l#a&GN_o(_){|YERg&ymUYthq4=h;Xz-*JjFOsA@dUWT z?yrF{P&0e9o9lfhi#sw~b|N9qM}aov1y)a@-^SJoP(uEV8%WP01q>BifHHd=9sn|? zno>RQdqJbfb8@P9#ohNB2#t(X#Lx@)*B}v1jq_K7z*g*xD)pr^OBGCDuS-@=5x63m|{~ zH!#6!3J2gjRPq_0{`-c3P@|_NzQLJoq@s`tAUXMWy7VfbQ~~in2nF0P>Aau|l;YHK z>C3j?nCw{aZO?mFhc6V7tF2^ZnZ6B_3RLIh;GwtgX>W5zrk9pNSOZJ@@wWc+1{c}i z?MhVsjWhtLvdzuSwA9qk1NCa%A_Z(WwI>(!^HLcT{FiEc9ysI-6nWXyCz$oO;4M;L zkzI)aE4m__S5D;w*|D!4m!EpnXD3jJz)?` zxf9y&A@hJ8dlqm@rr*-fg@w+Q;kU*PL$hL!-dISE8cjB|t1iv-1&&9#Pveul2b*KH z0+I%ahMv@I`h!hid3`YNEhAMR?#E`8daF>46?E_(kLICQxlD(~lf;INwGDu8We6Ju zh@vYXD+dWR8$27umsDHbJgP!eztolt+o_@49a@F0b)my~cPQwF(-mC1e+XVkF7a^y67qRk<;)`PNUU2OYt1g*G4VAg{^gtc?MYrdL#7m@5_(1 z!gQ{-H=&&u^t};Q3Jche#0kJIbYB`%f}}X_YpQ<7EzVOuH~6IrFIS+NS{o+;V|G?vqd&u=URNm z_GWY&@NBBPGc$DY7+PMPh5{4(5w$i#o1B1idac>>q()#7Xyfy}PJIIh8_5$%>aXTms$B>& zW9!xdE{NU|I|CzTO^=OGBOcRWROfn1U~hTpHe{mrJcq} z!BH5+$#}Ed9ZhiRciC)A-pZ26cy66n@$*X@==2;$Q7{QSGo(zepky(hZGM}3bmFhf zGQlX<$>i;bjUjo0Z9zT!ZVo8`m5TvcZ@miFT!}7-1

mTth#8SZ4VR120cFs;hB+ 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 TRE_8H)C4TdY)r8xSML57HP5Ma literal 0 HcmV?d00001 diff --git a/IDE/VSCode/Modular/Maven/README.md b/IDE/VSCode/Modular/Maven/README.md new file mode 100644 index 0000000..06b177c --- /dev/null +++ b/IDE/VSCode/Modular/Maven/README.md @@ -0,0 +1,37 @@ +## Modular samples for Visual Studio Code + +JavaFX 17 samples to run from Visual Studio Code with different options and build tools. + +Version Visual Studio Code: 1.63.0 or higher. + +Download [JDK 11 or later](http://jdk.java.net/) for your operating system. Make sure `JAVA_HOME` is properly set to the JDK installation directory. + +### Maven + +For the first time only: + +- Make sure you have the [Extension Pack for Java](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack) installed in your Visual Studio Code. + +- Clone the sample, open the folder `hellofx` in Visual Studio Code. + +#### Run the JavaFX Application + +To run the JavaFX application, you can open the `Maven` explorer, expand `hellofx` > `Plugins` > `javafx` and run the Maven goal: `javafx:run` + +![Run](./run.png) + +#### Custom Runtime + +To create and run a custom JRE, from terminal: + +On Linux or Mac run: + + cd IDE/VSCode/Modular/Maven/hellofx + mvn clean javafx:jlink + target/hellofx/bin/launcher + +On Windows run: + + cd IDE\VSCode\Modular\Maven\hellofx + mvn clean javafx:jlink + target\hellofx\bin\launcher.bat diff --git a/IDE/VSCode/Modular/Maven/hellofx/pom.xml b/IDE/VSCode/Modular/Maven/hellofx/pom.xml new file mode 100644 index 0000000..712a1d1 --- /dev/null +++ b/IDE/VSCode/Modular/Maven/hellofx/pom.xml @@ -0,0 +1,48 @@ + + 4.0.0 + org.openjfx + hellofx + 0.0.1-SNAPSHOT + + UTF-8 + 11 + 17.0.1 + 0.0.8 + + + + org.openjfx + javafx-controls + ${javafx.version} + + + org.openjfx + javafx-fxml + ${javafx.version} + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + ${maven.compiler.release} + + + + org.openjfx + javafx-maven-plugin + ${javafx.maven.plugin.version} + + ${maven.compiler.release} + hellofx + launcher + hellofx/org.openjfx.hellofx.App + + + + + \ No newline at end of file diff --git a/IDE/VSCode/Modular/Maven/hellofx/src/main/java/module-info.java b/IDE/VSCode/Modular/Maven/hellofx/src/main/java/module-info.java new file mode 100644 index 0000000..d2369df --- /dev/null +++ b/IDE/VSCode/Modular/Maven/hellofx/src/main/java/module-info.java @@ -0,0 +1,8 @@ +module hellofx { + requires javafx.controls; + requires javafx.fxml; + requires transitive javafx.graphics; + + opens org.openjfx.hellofx to javafx.fxml; + exports org.openjfx.hellofx; +} \ No newline at end of file diff --git a/IDE/VSCode/Modular/Maven/hellofx/src/main/java/org/openjfx/hellofx/App.java b/IDE/VSCode/Modular/Maven/hellofx/src/main/java/org/openjfx/hellofx/App.java new file mode 100644 index 0000000..523242f --- /dev/null +++ b/IDE/VSCode/Modular/Maven/hellofx/src/main/java/org/openjfx/hellofx/App.java @@ -0,0 +1,39 @@ +package org.openjfx.hellofx; + +import javafx.application.Application; +import javafx.fxml.FXMLLoader; +import javafx.scene.Parent; +import javafx.scene.Scene; +import javafx.stage.Stage; + +import java.io.IOException; + +/** + * JavaFX App + */ +public class App extends Application { + + private static Scene scene; + + @Override + public void start(Stage stage) throws IOException { + scene = new Scene(loadFXML("primary")); + scene.getStylesheets().add(getClass().getResource("styles.css").toExternalForm()); + stage.setScene(scene); + stage.show(); + } + + static void setRoot(String fxml) throws IOException { + scene.setRoot(loadFXML(fxml)); + } + + private static Parent loadFXML(String fxml) throws IOException { + FXMLLoader fxmlLoader = new FXMLLoader(App.class.getResource(fxml + ".fxml")); + return fxmlLoader.load(); + } + + public static void main(String[] args) { + launch(); + } + +} \ No newline at end of file diff --git a/IDE/VSCode/Modular/Maven/hellofx/src/main/java/org/openjfx/hellofx/PrimaryController.java b/IDE/VSCode/Modular/Maven/hellofx/src/main/java/org/openjfx/hellofx/PrimaryController.java new file mode 100644 index 0000000..4407bd7 --- /dev/null +++ b/IDE/VSCode/Modular/Maven/hellofx/src/main/java/org/openjfx/hellofx/PrimaryController.java @@ -0,0 +1,12 @@ +package org.openjfx.hellofx; + +import java.io.IOException; +import javafx.fxml.FXML; + +public class PrimaryController { + + @FXML + private void switchToSecondary() throws IOException { + App.setRoot("secondary"); + } +} diff --git a/IDE/VSCode/Modular/Maven/hellofx/src/main/java/org/openjfx/hellofx/SecondaryController.java b/IDE/VSCode/Modular/Maven/hellofx/src/main/java/org/openjfx/hellofx/SecondaryController.java new file mode 100644 index 0000000..7122403 --- /dev/null +++ b/IDE/VSCode/Modular/Maven/hellofx/src/main/java/org/openjfx/hellofx/SecondaryController.java @@ -0,0 +1,12 @@ +package org.openjfx.hellofx; + +import java.io.IOException; +import javafx.fxml.FXML; + +public class SecondaryController { + + @FXML + private void switchToPrimary() throws IOException { + App.setRoot("primary"); + } +} \ No newline at end of file diff --git a/IDE/VSCode/Modular/Maven/hellofx/src/main/resources/org/openjfx/hellofx/primary.fxml b/IDE/VSCode/Modular/Maven/hellofx/src/main/resources/org/openjfx/hellofx/primary.fxml new file mode 100644 index 0000000..b8d2733 --- /dev/null +++ b/IDE/VSCode/Modular/Maven/hellofx/src/main/resources/org/openjfx/hellofx/primary.fxml @@ -0,0 +1,16 @@ + + + + + + + + + +