From e1b98e0315022ed22678efe5dfc9edf93cb53c28 Mon Sep 17 00:00:00 2001 From: Inaki Villar Date: Sun, 22 Mar 2026 16:23:30 -0700 Subject: [PATCH 1/7] Rework gradle latest versions --- .github/workflows/update-gradle-versions.yml | 41 +++++ project-generator/build.gradle.kts | 1 + .../projectgenerator/ProjectGenerator.kt | 2 +- .../cdsap/projectgenerator/model/Gradle.kt | 62 ++++++-- .../projectgenerator/writer/GradleWrapper.kt | 2 +- .../src/main/resources/gradle_8_12_1.zip | Bin 0 -> 45137 bytes .../src/main/resources/gradle_8_13.zip | Bin 0 -> 45136 bytes .../src/main/resources/gradle_8_14_4.zip | Bin 0 -> 45138 bytes .../src/main/resources/gradle_9_2_1.zip | Bin 0 -> 46971 bytes .../{gradle_9_4_0.zip => gradle_9_4_1.zip} | Bin 50073 -> 50073 bytes .../resources/supported-gradle-versions.txt | 6 + .../projectgenerator/DefaultTestVersions.kt | 3 +- .../ProjectGeneratorE2ETest.kt | 4 +- .../SupportedGradleVersionsE2ETest.kt | 69 +++++++++ .../projectgenerator/model/GradleTest.kt | 36 +++++ .../model/VersionsFileTest.kt | 4 +- .../writer/ProjectWriterTest.kt | 3 +- scripts/update_gradle_versions.sh | 142 ++++++++++++++++++ 18 files changed, 358 insertions(+), 17 deletions(-) create mode 100644 .github/workflows/update-gradle-versions.yml create mode 100644 project-generator/src/main/resources/gradle_8_12_1.zip create mode 100644 project-generator/src/main/resources/gradle_8_13.zip create mode 100644 project-generator/src/main/resources/gradle_8_14_4.zip create mode 100644 project-generator/src/main/resources/gradle_9_2_1.zip rename project-generator/src/main/resources/{gradle_9_4_0.zip => gradle_9_4_1.zip} (98%) create mode 100644 project-generator/src/main/resources/supported-gradle-versions.txt create mode 100644 project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/SupportedGradleVersionsE2ETest.kt create mode 100644 project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/model/GradleTest.kt create mode 100755 scripts/update_gradle_versions.sh diff --git a/.github/workflows/update-gradle-versions.yml b/.github/workflows/update-gradle-versions.yml new file mode 100644 index 00000000..3583fba4 --- /dev/null +++ b/.github/workflows/update-gradle-versions.yml @@ -0,0 +1,41 @@ +name: Update Gradle Versions + +on: + schedule: + - cron: '0 9 * * 1' + workflow_dispatch: + +permissions: + contents: write + pull-requests: write + +jobs: + update-gradle-versions: + runs-on: ubuntu-latest + timeout-minutes: 60 + + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Set up JDK 21 + uses: actions/setup-java@v5 + with: + distribution: temurin + java-version: '21' + + - name: Update bundled Gradle wrappers + run: ./scripts/update_gradle_versions.sh + + - name: Run tests + run: ./gradlew :project-generator:test :cli:test + + - name: Create pull request + uses: peter-evans/create-pull-request@v7 + with: + commit-message: Update bundled Gradle versions + title: Update bundled Gradle versions + body: | + Updates the bundled Gradle wrapper resources and README to the latest three minor lines for Gradle 9 and Gradle 8 from the official Gradle versions feed. + branch: codex/update-gradle-versions + delete-branch: true diff --git a/project-generator/build.gradle.kts b/project-generator/build.gradle.kts index 1dd3d9ed..8dca860c 100644 --- a/project-generator/build.gradle.kts +++ b/project-generator/build.gradle.kts @@ -9,6 +9,7 @@ group = "io.github.cdsap" version = "0.6.0" dependencies { + implementation(libs.jackson.annotations) implementation(libs.kotlinx.coroutines.core) testImplementation(platform(libs.junit.bom)) testImplementation(libs.junit.jupiter) diff --git a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/ProjectGenerator.kt b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/ProjectGenerator.kt index 96dccd07..664c5966 100644 --- a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/ProjectGenerator.kt +++ b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/ProjectGenerator.kt @@ -15,7 +15,7 @@ class ProjectGenerator( private val typeOfStringResources: TypeOfStringResources = TypeOfStringResources.NORMAL, private val layers: Int, private val generateUnitTest: Boolean = false, - private val gradle: GradleWrapper = GradleWrapper(Gradle.GRADLE_9_4_0), + private val gradle: GradleWrapper = GradleWrapper(Gradle.latest()), private val projectRootPath: String = "projects_generated/generated_project/project_kts", private val develocity: Boolean = false, private val layerNames: List = DefaultNames.layerNames, diff --git a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/model/Gradle.kt b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/model/Gradle.kt index a0668370..933a5387 100644 --- a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/model/Gradle.kt +++ b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/model/Gradle.kt @@ -1,17 +1,61 @@ package io.github.cdsap.projectgenerator.model -enum class Gradle(val version: String) { - GRADLE_8_14_3("8.14.3"), - GRADLE_9_1_0("9.1.0"), - GRADLE_9_2_0("9.2.0"), - GRADLE_9_3_0("9.3.0"), - GRADLE_9_3_1("9.3.1"), - GRADLE_9_4_0("9.4.0"); +import com.fasterxml.jackson.annotation.JsonCreator +import com.fasterxml.jackson.annotation.JsonValue + +data class Gradle @JsonCreator(mode = JsonCreator.Mode.DELEGATING) constructor( + @get:JsonValue val version: String +) { + + val cliValue: String + get() = "gradle_${version.replace('.', '_')}" + + val legacyEnumName: String + get() = cliValue.uppercase() + + val resourceZipName: String + get() = "${cliValue.lowercase()}.zip" companion object { + private const val SUPPORTED_VERSIONS_RESOURCE = "supported-gradle-versions.txt" + + private val supportedVersions: List by lazy { + val stream = requireNotNull(Gradle::class.java.classLoader.getResourceAsStream(SUPPORTED_VERSIONS_RESOURCE)) { + "Missing resource: $SUPPORTED_VERSIONS_RESOURCE" + } + stream.bufferedReader().useLines { lines -> + lines + .map(String::trim) + .filter { it.isNotEmpty() && !it.startsWith("#") } + .map(::Gradle) + .toList() + } + } + + private val supportedLookup: Map by lazy { + supportedVersions.flatMap { gradle -> + listOf( + gradle.version.lowercase() to gradle, + gradle.cliValue.lowercase() to gradle, + gradle.legacyEnumName.lowercase() to gradle + ) + }.toMap() + } + + fun supported(): List = supportedVersions + + fun latest(): Gradle = supported().first() + + fun oldest(): Gradle = supported().last() + + fun supportedCliChoices(): List = supported().flatMap { listOf(it.cliValue, it.version) } + + fun supportedDisplayValues(): String = supported().joinToString(", ") { "${it.cliValue} (${it.version})" } + + fun isSupportedValue(value: String): Boolean = supportedLookup.containsKey(value.lowercase()) + fun fromValue(value: String): Gradle { - return entries.firstOrNull { it.version == value } - ?: entries.firstOrNull { it.name.equals(value, ignoreCase = true) } + return supportedLookup[value.lowercase()] ?: throw IllegalArgumentException("Unknown Gradle version: $value") } } diff --git a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/writer/GradleWrapper.kt b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/writer/GradleWrapper.kt index 56f0e6e6..926834fe 100644 --- a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/writer/GradleWrapper.kt +++ b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/writer/GradleWrapper.kt @@ -8,7 +8,7 @@ import java.util.zip.ZipInputStream class GradleWrapper(val gradle: Gradle) { fun installGradleVersion(path: String) { - val zipFileName = "${gradle.name.lowercase()}.zip" + val zipFileName = gradle.resourceZipName val outputDir = path unzipResourceFile(zipFileName, outputDir) diff --git a/project-generator/src/main/resources/gradle_8_12_1.zip b/project-generator/src/main/resources/gradle_8_12_1.zip new file mode 100644 index 0000000000000000000000000000000000000000..d9e94709c4cc021d0a0cd4828396661d07f736e1 GIT binary patch literal 45137 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

G1~Ir=Ql*Tk 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%0Dtf&WP=8I)iy^ z&PlnixMq6)aWBVIPjNli-y&qq*Ovr5wULb<50dDdXcsJYPj$mjL$RnHY-kIAQHR&Y zb2p?d`MA_IYnQF>@dtvfgKvvgjz+;zG1$HnwpcJa6 zF5f`j0#~X57klP<-{XSNK7{fV)ol)XF`8Q{miH%5H^q10KuiyP&pI`h@QVz5Ie%323gN4 zs0UCeJu*!kGCw)aT@$?C@e<4nzyIy!VwicIDF1r7!+-R0%>Q2$`d5-}?)=V9X2v#7 z=7#!Cw*N(xN*f9ba>&{tnv&qE2!mLdati{Qzxo^y{0Mb?{eJ0R-tJ=03u1{Sc*Ofh z65;KGy+%eS%bQ^5I1R@*Z0_wh4q=Q5#y7mIdsa2fNcenxzr+0IGr`!tx}q7{F}v7Y zMRbwCnu~;~Qf11tnr>`0<#ZvwCNJ+`ow^mnqY27lwI(PuFQI6sDU{Sgju8dRzY~+Nva}7* zgC4I>NC{45py`8mHsVZ9<~9ynjXrG4jIA>_9cjkSKG#W{zStV;OhITi#oTl>0#Jsw z&hW|@vDzCNcVK~*zOKFqqgGZRn?a@(JlI6wy-8EC%03anuo#xwcpS#ic&yhlOUhG# zt16evr3BB_5r%JSDit9T6xDEx*mQQqPNU2(wq|rX%WLat|ArwvCOxku);S82^v}6D zHUspq*B=XRmy9i-q|IGgaf-|P;70k?$fQI^OVcUFxXDW=4o17Ok64`;TEwKSo?akV zrxp(XjamJX&xx_PF9pDcasKHiKH>;HVqnHY)7+XBP2<_ESjvyqj$+n2G^>-HHJ+g& zF*~*`pIeYEGwm9hWe|F5s+o1=qaaJH|M*JdG3GOuXol%Qb2NhtBz9 zSO9=KZ^T0ux96ZB(LEto6tav+Ny<>92Mm#Z$T!@O%>MjD1cH<*KNpGmvzsmF?$2xX z7&iv=h@_uLFteZu(nVET@WG_fG}rE*Ey3>Y8=O63_73o4@ywN__beAA;W2La%No!A ziHEg+4A2I7^iR&L6FAS>!#zMAAR!GyJId@2$Q`8Dh?v7SSn$A6ZXM(7rR-v3 zp*ZqFSDwf7z@Lu`YHk{#mrT2Aa zpRhaJ?aLkpLIIL+O0}#DFAhJ|6ZRHXk}X~gG$?CFl{#mTaS9-7HE__tR+!Xt3Kb2R za+ZwYavp|!-$rbHvN zh+vai7;zev_mnrR7a60pN$tnrHsG-ydXHn_&r~@Z{81Tvk34U6OmJ!Bbd}<$%VG?4Yp@jsk zifS-wUb#68mgLkwzPIJL8YJeJ*`3fR5SctK9Sp@~g|(2JZg#4q(0B$IrCHFiO;w5QgD2y9Cj&Fa{;^ct062TLzHrcBAv6kfCv05uc!ePZQ01elwuxoI;hIoE6 z1dRg_b8Ivb+{Ez7E8$oXa(ye%1R;qEeOZ|Zp7ivhAYoI7`Bfx^&+Af}#wVTBnM&71O zzGLTgmLh&GiWai94Eml|u!&{8q)@^9^um1NjVgrk_1+%N107Xfs(-O09yw75p^W}r zj9A|FtoUfaCgj;5WVs4UMklUl#V|%~Ekj$rk^oO<|8o0e@V%Xxja(f$guS;mHIxgQ zB)c%+72ff5u})#>0qMkx-1-MA zHvtQAQhlr6M#el`K#MtT0t#8Cj}c>N)gV$Y)1xBR_Lz#j7hZ#WxY#MVG z1f-!K6S`~U6`?S_c?0M^z%s@jb(1#=HQS+$z|a;&v{D;ww*#)h;embA0!6)jA?x+r z>jADTKu@%Q4cNB8jxkan!*mmb;G-bMkn4z-eO$Wh-Vbz}t*)k$iYm*JP1AS4 z7OM~4Y#adf5-v3rX7wd0+@fF-QByD4anj@|qO{b*tY*O@bY}@c9I*%vpSlE(TY_?sbnW9z@|tD7NY5_z@EAD^hyiE8uCZp#e(yuL6Cp%i zT89^%y-`CYq7&dIQu0$=uXxCWPD?`^Cv=8aV3RF3cS+S2;;n3#Gizk>UnX89Q!q9{c-%>B4No#V(<4ejW4PUwmFBE$2|$~tC@F6k8+n3Tz-*pk4Kuyn!)f@(B>nGW$7$p;?`!^_d1R#3~=i zlNUG8G1f8} zp!5ibBJUI%uwBm0I^+_mt$zO1_+CY^sU-CG-E}EztLBN)2YNzsq<7;;ZdZX zrHvE;9e{^Hf*9CmoRDR-0j{nfGrcVQx?kTfmlL~RqPs-unqPR6y9M7dO;F#kKV+l~ zdt@`xB81YkKT4o6uYB5{@YgfDbEGXlk-dC3gxm_3KLV+tzt{?lWkF@(myjS(Z5=*( zlKa?FI$q}Pk&Fn+bbGjV@Be7t@+Qqp)KhC(MJI6t7ntJJ)Ko!n4x8Q%K#-Zuu=8sM z0v#48zCzdx5MbdBZ?SfQy{y^!e-iE%EZRhX^NM%L^_JW=!sPTdusVI}%76$eOT8%z z`OyqJ+SM84C+(H2#=_j{yImQzX&YtO{meLC+oG+~IjV*9`eY4of;?|vFO$^n0)Z5TL;^c&z$;$5>@ zSL40p!5!@)~rmhdG$mA21?Xba`I9Km!%12{*gHddAD7cm?vOFn0wWhV>>FGY33 zv4A5mp@~@Rld$4LS`lv=Px4JBtIUf#7Vv;UDyftaF4{4`$%03z(ecfq$Ce}op^0s5 z!B?q^KBtOA&|v0?f+~9NYOqCTW4#P;?IT7c98!>zSBtJK8&Lz(I*y(t@;8l|PbQ{6 zyTaPJo3B-7Bt)jNz>PE$jzDbgl(A)%*btN7IFHoMJQ+%`Bz|L6_Er!n^3-~es=)UY znibD$8Nn5QS}n2$A>KH&kjOa`JCz7t5;DQ5m1#NE+r*OWaM&PI`>4@yVTfu$B7f$; zA15hn_LoObxm_((W<)FYU<-)3;ZRb`J{w*EucHzpNX$l0>>*x2>Sx~S8X}+_KKp=8 zPde_z1%C-|<1uOs1Lyd@(WQDkAuJr-lTBvrxxCTRna=X<_Ic`2Puz0)O~U<)JXLb< ziEDphuK&kw7v(>Z=YKTD|JCLE&ozKLloz&f6QAibLqoz9RYoFhk+HaDhj~2&O>DEK zLb~ckV@4x0jPXaVlndF|{8m;i*9L2;8wh3Y3X~2CjYC(so>wk@bH?vLLJNLj`NazI z?k=67m8T#`iJPB{HR<}X;>De-nyX8%9gY*On-Ml$kEgkjFtaG;UZb>}2=e$;**5fEhhJ_w~?qsBY}o`u#Sk1fL{#JL}STG zr@lxcQdj=YcrQwtT*_kM2L7?e*fKyPB9Tc(Qe;Kq^yR7HZEXa24I!VT>4Jx}PDNLv zcHc2$%&rbj(_CjjYYOesc|^#>eCKhcfy2Hup4&L&!BWb6nWg5GT8;f&HjV3wArh)F67MN&yjFUA&tlEwO-hk-f(getyW(aWl{8jxsD3afEv4y5X@ zh@o!g1vK9%xz6r{S@di&NVfe{U5f%$lq`xFRm)i#BC;7e=kUPk<_*$~nv!Qa>lQVA zI@ez?E9PlOkk%nU%+SWrz#(a~4Uo=$HIclDi$Ze7^|Rycj3>!^g_#Jhvod*aRB0;N zSO}7txP6B<8++FFf&QINC{<`&o~eL}fIP`ky+w)?G&nK%#sCBrrbglYrTiJ&yh+dV zK5Dv>q)|j&XM*MjVjd&0c5ZGk1A^6g0l2+d5iP%h-u2ir+{nQ+^7x5Bej)@dhhuR_ zEGJAtM=!P3O8AMsnDJXNxGSJp8>LqIP&G{OQ~V)a;NbdlP=$(%@MEPE#sx#bt?r&6 zVF<`;W=NbA^PpAMQT!pO>Ic*nWrG6qP&g-# zmK%c+R7y3TVcwFi7>jp0$l8Gc-LD79y8(^$wGfv$kWzLYvqb)}S@HTmniS8UrFUD{ob zJ)t}sw`Z73-crk08rr79G6=ST_*~1Mc|YO}6`HM8FDx=?|OW|$iVDk-8Y zs;h-~@QS^t%z~W?3R9ANFmAyu?Ma|;m#VE~&oE4NJnOn9sW+QiwNaB@% z0dJC}p6e>=J{OEEO4)tmf3g(8yqvksq;f&x>ab!2WXaAAQ1S@nn8XVZ1j#T4={&S1 z`+%#BiZVup1F)-R@#W8>^FUSw3Vc+X^U9UXn%>6GOChgRrr@G&F3wRT23u9rY1-YK z>zS@ueW`mW{Qd)*wj!1y*71TZ*=reYfs~oAi~Rw@Nu%_Pypa9}SGSmsFau>3#b++w zFAxoE#xF&Iwp(hZ^pWHpvJ|9dbQ$$=ZL?M)&opmdh_f1RYYvVs;GVPV(b+@h^c<@{ zh09d&qy>2NPo6l-JWUYu^rFVJL~DJH`G4*3A;()1WS06!9&H2Ab&9H^Q>Ok~kxE4d_}we8XfCGias;sC@ep=;rl6 zQGEe1VxHL)%%ZuSMb6#|!uuam9V$o(QaL&O) zn~78Hazzh6`Zp~z&@`*VxIEzRSev9E3{)LrZ@<7ngP z*zjA9WVAZx+uOiLIR-4TJ9h9GqFypVuW*+j0~FaF(-5*Y`(HjXp=^U<1ypA9ULJ+Q zgsvI$?|o7b!QAL+pi<)um|*a{NHOwWpSi$%iC zHH=r+0xiP{P@A9KXC#~8GUO;{EFemY!1xM{<7niHn}>;$Xo4i zFwrQYWsj&l^6+8hC~*j9V5ovfPFQcA3ubK1YQB$#bb9@KGmhn2P)8yvo2;SB(j&!| zVFDB8mw8f;ejZMvWtr-$MA|95kBYQE?^Va(jbIqJNxoHJKO;@r>18Vb2_qA-TuW)l z7;0Ov@qb0{5l%f)K`)cv+lYguZ%fZ|5j{F;Sv&gWh(biAA06MI(X*W)PEV6{Bw*tI znDq&prx&T{C{<8YQq|BfOL*H+357fiespTlBenO^3nY2d*Zydwf;GE=1k_G$GIGUi zj6p(ky`nOcT|B-3z;|=tsnngp0Mh2+Y71MXs0Pi8zrkq*d84ToecY`=_b2uSMdCMu z^GWdj=vyxQ<_e|7($}Xxzhj}=)$A4=YcnY*=R&a!3HT)Mb?cDdC^BkW%mWZ0*g`bd zs(GAW7p~Hq;b-h=b~bVkE-DSOL*HlFvE@>IsXCc3FB?0Y=H+ISp{D4DP0&a&zs8Hw zXDJK^>?jtZAnUW?^ZLPaI?PL8*R#5izYlZrq%l%RmE=aU8Z_nQ{QNB8ezSY|4GF#; zX%)%UL{lLG7qByn%Vaq0*Pm#<8$U%Kzcc?eAe%RfGzM#FJMDK1#&X zd!|$3Na*z#+qDaH&gq=OR;m=%II@yPgq^;~MU%sL`wEs&V<$H)z0r0{sKJOuz%LO} z{6$=NP;l}{dqdn-o3jbbvCOiKWbeLqrNf(w&(2e>#KvS+A(dv#OKY8PgderV2w zrAp%lKyalO%kQY)Uo;Ex4gTYiZ33)J0|;Ui^HWxZL%gToem|x6H*d01Sl@U)luX45 zAj??-n)9RQs^J&yhqp#9y=Tk8=v$R8Pc@%xNk9E`DU(+AWMhWe_#QA?R z0RAM+lzzfNG(<3g!aYeK65w#taD?l~tMID#9}=QWEYLIs;Q6~(NGty*+qx%rgg_&57N4G|2AOt+4 zx~WrZ=SrMNN_H;l|Fp}E*4I1=j#00w%u1q_DI^7!8Nr?hgEMZpEYMY4Dr2{5X%Ik% z-W76E@xJ%=MW>ToX5(dkaZ`{lK{`QGN$S@H3rJ=zI-ITIuRC-Mpgk)Tdgv4Ap)$^e zub53iwTWBAVg}*TAH9xm22RXlf)r#w@#IUgfx(Eimq8zSGm*>kP!+sHaLtKi0K#@j zStyhVXlObZ%0rS!Uc?b2oec~V5a&J_i%hQ7BufS}ng=+wQ3jDfi&v+H3fDLVfrnC> zBPos;olAw&nYKHN+ElQ}DLLwCPE`LU)Yi(@-~^&lHBx0IM?5BBbD)NNXV#fGErG5X z;t;n;;hg0b%aDhL{HkqjQ7x?6C(=)wD5GehnrC(THSbb94B!RlH3B5s7zlw+^&z`> z?rUOP>uatygb#h5+Ps;+8?l34M+q2ag>U*tOTLiG{;@Ebz8qEn4SfvgnS?m-Mqk7E z*-|(#z`igQ2tlZeoMB#B>M7_PGZp*(5|U(*ljBx{2obj5t*H*C4OY^AG9pchunNqe ze=At7mzn`;jJj5O0{ERtgc6=<-viHxO2eY2b$|oP@&m*YES$z9&+-&QCS!eWtegsm z+UK;%%n2)brsd)*BT9?YW~WtLfiP13&ANl&Kqc_+^FMI+o3_)8yFGP zvO89YzDodK%`h5Q4my@!?_Sy6WULZxK{=+LqT^px$79a0am=kHf-|DyaqTa z(2`G^c-Ta`oOtLLw^TF@tMcw7pNS}t9_MNNJ^OGM&#l{NdN}FmBZ=H|S*jAqT>r4{ zUsiP``;j#l%kE%oEOi=oa?R1_Y>>Cd{`9)%JEgB`41FMm|ow*|F-Kn2Q$7lSrN$$ftY3=E?$uOM7e!;99G3zfzyZgEon$eqLoW1z=VuaMc%`~ zJl+DpyYB68i}YxYg#LV|`SAH{mf#g*ciHCS+EnGJ&xN-mzo|%&z%AhTX(QTXrA~?r zlE&a;ntcOF#p`o}-ouCa{Cf8Q)oD052=&flbhEB94hYYJ@RpCmdM{&?M9OLnOGiOWwx44$<+BQ=W{ zM-a+i;-7v3oD&|rM931egMy$?E^I(`@s-_95tvO)qV#%}o$Kx|8}qO*7m64Ep7kVm zmh$jfnG{r@O(;`M8yG{f!x}NTLRMRcb2a_Ic2m4Wpf8&qFw#<$h=_i2QUKWUog33b zCJ^&SZt!D|;`*4r|FT5+vmr6&kB^k*#eVH&N>2WE|GB_Q$8}!S!DmD%iZ0!9K!EPi zn`<)B7svV+GL3Lyz%bQohi^77E9o70*~XW{3pkxn_<6AR40oe*giGIgOTxE`YsEP`xg{_7YrbFq57$)BEjt*rQQ7 zvPs9f_uGS@CoN^vdE51i&`Bg-Pb*M4?e5i+AB6AwnW1= zD>f^tPBdIsJ#3t8o3k^vvab2LiLP;$9a}yyFV;?Q8?$X)@DeodxR1LR{Qs1E(B36# z9?@R3DPGrQcisCwb;@*$bI*-D9`t~&+dQ#ei05Y==5`$tc=#UA1~8{&7r8%TPnjm6+L0(r=hI8@^I z6eLf(GS3-^VrlQLic4Y#G%m&!L*cZ@_1a@;AHISvvFqd;%Yf0ijyLvm#ORz<7A8&O zgJeA^U34a@aI7d~H3Xe!sVa`T`(kD?SUBMpL}b0pS)71Z+4G8}u=hx&aO&nyWY)+b ziCi~TA2m*+jD9Ua$#BMi|y}lA1%91Sc%rh^31Q&j)ld&x^bx01Eb3{LSwK4lDm#7#TUveOkJ{ zSetcahmPlFGv>j0<}1hX#p`o-001>232=k9!|Ewsvb-Z|SA+?*{8<&uv;3kWz@>2} z96j22#7mybXx?ozGF7C%a7>4259&F+FDlH4S^nyVfe@mhyPfVb0@Ir}!q|z8jSiC5 zCco*9WbKP*Oe_!-u`AdXq0WTbYDkL7W~iUJeJqkp3@wVzoV{8g^Bn-By9Fo6v{BXT$t0g5eqtE&&1 z6OtQ{>BwxpjxdU!3sq|Pz+}?gD$iQPbxNM{fhGwz|PyRkXU+9AW3jqy+X zZ-yEObqLcS6g2V)2m1=Hu{aH^80<}CrmW$n3QcoG2s)xF9u;^Q?qKNK`thDT^q7V`ha-j}5nBi}h z<*+|OM=ILY5 zFgpFTf>^#SbK88jxpi(jLf(qQHzW-u^?CiAw_7K;!1WYHqW4nAyX5L zVtyloR?6)qLH-J?Ek=aSjFcD$ML{;eB08D-b25a$Ix{hg3W^!7O~qTb2c1b_cPVe9 zV27%nq2m^eQv{GX1+f;bY^axSDA~_Y0I8yQILW?saUWn(Lr8^Fzr>tx)Q4F~BLFsC z#I>* z$|#1_*QRXQkcm7)rdCzYW!q^=0NN8FU@BxqR3|k<+(kf?`wApYhZl01#)VkGTuK88 zG9FOaq;Y0#UWAK$SRL+20+$HvqfUK*RBjnf*eq}Em~Z^ks^$8SZyO6gN&=X zKPCK5SW6lfhqGoEQv$NQ=IYo)bVRkb5`AT#6L2II`<3$ez8400BoqfWqtMKwn`@Dj zOnf7%wJa3y$NAm^qy(-=S(zLPMVYdDjDCKown4hrQ%xMwrg$_~0;lEn-gZwV+>MjK zn1&i71rWPp!yXLpy#=Dv@j-mVwH4E+ivrV9Y!s`&AT_mBoV+6pKmYx>SRsw&!EG%W;aI<5 z-+|#ja)qS?F3?mWdOSQUEy+4W+xj|*%!Yl;p`U1Y58pt@O*T}?9FEGf1A6PHw2;Ux z#B13ytsF%jXIpvU0{vA;>FG*&v4&c-QK>i$qdM-^!f{rffy2IC*Ys^PPSVJs5X1={ z5v>D51S?CC_X$o6;!?*+Bu*2sX(~b(A-%PkNm{t2qLxd-ZKbn=$P7v45NXMdQ>Tb0 zP7Q4@vS>Q;V;RLU6h_3%7VNNGe2Pd7MtnSc41C3q@Ar?R>V8G;^JZK6jy{!o^I9~= z@m35mDAX7UWQjXYRVen0hrf+ z-!ef0KrECovSsuY4zQJmR|_pl+*&g9`TkCkrZ#FKUS-&r@>#nGAFA(yU$jt-w$ROr zNMMEQh8$D?n#yaf~6ekuYb& z)E!JD)T$&VjVFv6lpy)a0}8*yl(=mWKQAez;L-NWZtk5?Di7@ia^J$dC*-tpz4!fT z+aIU2bi>d5iA(Nm!w+M-A19S1kmJSgM?x;D?aVu9L!3<9RaceE|IM#?onJ~)zYqKz zut{66H081%IhxM8_zy)UdtgyOsnp(Lm07uDo-q}snJmZ`B@jg=wut6#C4VN8*$&K% zucyJ**C{cnH@HNZI?atsEV^dDl3a!@Yt}d|HZt0f~&<6NHo?be}=r8s90f)l?IycmG_nXlt zo#P3sigcK`mr&o1T<*x+O!dK6|WlhN8}p_$RP2tSX`n`5{dD1P@~D6H~ugyA!1!@fej`bz$A zNA_&S{3*QEKNF>ZZ8im<6H9^eHtrYp342D6hrhiX{P6Q_sioSbMaqu$XUua!X7yCa zZ{1v2Vjw0h7NRhgmXO*A2Oi1GD%e%+WM(dSETe^7W6}xQrzd3Z2p+TwKi1Kx#bVKs zO-nscg>n&qc#YW9DGJEfPDFe-qt-RY>os~;uFo|*E$C;XK3B|-^Z%WBZg{>C_19Eb zB|>(L59Zs4$?IySAda|>e;^S$$aLInBg|p%PS6v}tPbs*70@7&jdy*F4~nNX6uDCu zmkdbnbK5gEUAszpz_D~of!+BQ#>g*>IKgEnJsMvoJhEJ-JW5;OrTU09rI0VFNzX$l zb*HL?bHuAeAd&E>S0*!4z7JOHBiqNdO3YUbHO1@DHA{LlpeH{P)Tz#Q?Yr0E!PAAO z5clYI4lO!IU5LB@*J;fY&h4*Xw=3UErS(iXmmH=s^6g?Kaw{H(Xu(NjQ#^2K$B6yi z#I$9{{ymuE&_(E8JbB~TMeujibLFA>_j7+{p8WoP?kBH9?p`X)HKmm*H6_svaB=~H zn=LoqS9Mnka95_a4i@C`kgm|R7)%urdHb#v4ie+5Lal~wT_gdZQzQvB##ZmFfYl8R+cR?ev&!c1UAvDr`Eq zZslGrZ{mk36d4!CuSUe9*4c<9G!ACqn0Mt0_ElYpEN@v$T9+Lc=b?=)Dz=F_nwH>N z*)UmR@;zKtFH^5ZKb~(YV3((kma-c)i4NbZSF*7-vtsH*cw7rY2;_RDIZ6K(l}PAy zFc9Elt}hzvVPcdXdnK!zDqNP_d86-9Ll^*5WUD9hra749v)z`9MPV5C(LERuAM{Bm z0TLncx$YSe(4^dAaS~Y`j}1Fp&`p`3?x9gE_@Go-^XuIo*A4i&Jx}_rZ~Qdw7cj;c zUdm3cZv{U1I_q4EL5KcTzmc#}sHGW3N1gG3`Il2VCR0Nt4_AOKG{fMwh&0r3A3&i_1!qXyxIHR9|e2msvb4;!Cv zbXvQTXy(T*hJ!#M*o=)^FO86otRSj4mYmY-uLZGc?1C0=wj!}UY98Hej#v_wIP9>s z?4(H+r2$b`Aast>;k;02zEEhoK5VmIteUTZQ%~M?>%MsMMkUna`AsW*p6FKy-F0{GJBht~{T-0(CSlLxk&#O6lM86wpd1rlk zew?a*-fo?0h|W{B0XyCQS{;pp)3J~7<#d7c3(-Fjp+c|Z=_4wW)-207#yNUTgS5mo zyRIn=V(S{49!GWJ=<^Vz@x0JQ<6_eMSnb4bF2Q5{NwF*UJ(GpCc*B30%(7B;d~C}f z5aS{;t)Ve8H>wHvV`2ebyCg^Y1TxxQ<9sPW<|4X5mx;xFylW`}W?{)%al+YzU^T5_ zzQk^Cx=WIFT>qRp@MPp>oa$i=uR+Ib1a+UwEg--3|?3VbM z)WG@Sz&Ov@IzozkL&q0t1Y61mZ!pD&ib=O)pu9GB7c?_?&T79i)4(orGqD*wW=9dhi%&4BNl67 z?d2H$6}9;qNL3Rw{uZJPEp+sjSBAC|Ta7HZ27|6B-xkrRExYF%A^*Cd^~9-8yXet9|vL|wd0@U>H^=Zs8lfvM7pLPKzx z{8NL*`jm9}hRG2r7vLfjU83aovm%~WT+?MIXvQ{<4s@s?i%qKFMiE# zQQ$Z8-?PQHScD3}3%LRxxABKnH3T-#?Ze`q&VS z4I^OdXqv=gA*b{e{lKwIB0!HS!w`?wHTsb{6ApRBtaW(dQLX7PDyyASvLncx)2Ws@ zwn&N-Of0QZ^elFt;5kkLv)ybW@OU+AUQ6oKWh^Rt-RZe3Vt67h^#Xsqk2ZyUnZ#DRJ4Z@9XEfWvCh31jnU*TT5gJMx`EMXuOJo?#Okf^(;8<_}2;dTB;6P56{{ zfk_$8iU$p!CFV9Qt;3`ufuL!gYHZ88n}ocLr`(!Q7|ja>;n1_$Vj#w&>FNRKzN*m) z&K3C!z-EasqmVMDLuGxXVxsR}P0tfs-lGpLa7@evJOX9nVS51XW0cXc0!u!Do?Sh{ zCV%yXFDtWM)1bFOn+Ca3I%WIKvy(CSE)p^gcj$4hc*yZ-YBYe?HT?Rp@rV)Nle#%l zif-@2ft!z+{T023Hv}&@H2B3D_<>qOOXV-UEz39E?)6*F%N&lT?q0C-o}v(8rTny= zQ%i9vCpV_{Qk288v&wgzTnsHu|KrTi>i41?t=0P-A_pIh8A^xKF z0O>o0yy~Aoed|JFjAD&7jbFJYEcgVDrWtD{#c~u&iDQ-t=dCUps-n(YO4>9rv!F4V z44Ze+tPL}a4Z&HeTlP~!G1WF@I^2xa1n?q|Z#3tD*7|u|WrUbyZJX%u2=p8)F-3uH34+Xy54C6F0^^g z9OyJR1*BE+VG;uk%<2^KNbwr$li7_>Axbb6M`1+4hOOtV7c%T&(~Lka^ccyK+ieCd z2@qvMtO`$S5YN#`K{e2sa@M@J&%c|Es^mcvHSF|orKJzzTWy-mq@10!IfYrYLaMyi z0RZ^z`J%!dVJ!zh7Fg~%Ef~E0SKiJ{(F$MO&&(w9PEOquF-UIngi85|;Rs3{>($KD zs(v2>eSo|J58Nm4zq`MKfDCPx{6+wIU;vtQ6rGx6A5nOqB&j_08ciivR#ioAAKyG$ zkxpsI%$@BtFt1S`y=Z=}$4-h7iT}bS;|05#U<;kfr{6stmbI3D+ z=7DLn3MEA-X$Z2#If2Z=F2VQ`c9cMYpFn#nNAPD?2m{6Dhw# zP{(!%QfIwO(={~!2H_Eq||2)GXze9eIFrTbh_%Swq%jMB6;N>|aLfE;e$eFUM zZ#X4QOwK5@&g9JI)LZ^Q>y$a?=6qw@aRnSg1pJVkl=kG-Jj@_dn6u^a1f(V3C0qKtXo|c)Zp3_LtX} zvJy7D&mw1woASFbklu_Nj}?}`4IJI9i4Plja#$`Qa-A1{zji%ijYO*fNhYz1GOpnf z&sRRgdB^hJp3#!9WP&($t41SvzItU^5A_*Z%ddPf>CCgqc_Ns=cD=7nY!?l(Whz2q zR$stdxAP@zqAf*$y#P1KGL!22s!i9jDR_!~7ke;Gz?ccrT_)|(yi?B0Q5lT`%0Ii9KJl3i#Q4=`RDQW(Ox%bQVy``hcUsNU*7RkQ@I&{B>a=1bu`c^V%Pb z30`M#@gYiIw4vW}gTkUfPUk|^y&OjcrX-#Ew5UU@by+W~emsSY8pYHI$Xt?&xy4O; zB!)Vd25B98lML>`5uRj{Ala)?fN%*flb#TSjZUEZxBz%X%mdxbjj@xG1-FM8!ZC!` zNL^}r>{{;YF8Y8={Bn;06bub3qMx=X2r>fGI1LDupWjPU!ha^!(GfB}o+?#F+mgQf zKql8 z*_*M=O9jNJmBuXPT^ftGbS2n{VlAk0JFtOkao8iXR}uHaO0t1ZBYFV_tuiZNcP#$c z{ChjX#hcjKD?Pn>?tF2Vxk;#ce*IJ#a;SR#eFBjerqPcz88r;7wh;HK-mFl}6_;i{ zIihe<&dV&40B*WJ_I)BT^Bs&%T)sao|txV7$C`*Zi*o2rDI67KOxy-c_1 z2CH07?8bTVtxi$dVmvY!d6UN`^A)Am%9AuF_K=x6;zfMmps{AUKAskmW6CRA7GoM7 z)2Br;JfulyBEoK)ht`9`)}7`?rd=xBo|mDEo%jg}MB(9NQn}D%O6O4J3sE*hh>g$u z%3!@QX~!#CRqc3c7cvi@P$N18x>xo{KAsn@`v7gc=3L+l|0hLZA-<5w&r4Eb3e#tl zw!6@~`z_8#{|AIbEzT;P&j5YWH^H5`XPsdaFO8`q6s9WbxM;<-B?U=#@PL&_Kbd=l z^3J{W4MOe#Dz2C8xKQ)~2Lhq}_kd=bDsa>(p1v}TD7u@|!YMMIx7kza{_`sX5&lNU z(jxpRQZAzFA_)1*`P#=~-X&-A^qIGmPIn_#V$!#w*q?0gG3e6#a?jo{5;26?4mm*| zhE?=rlsQaqOM!7_Z_G(C%7F0G?>sckgXGsjc`ha2_`rNfWk8wl2sCSSt_&=jT0l zJza5Kv}Ds`W1k{Tyv0u+m0|QYJ-b0&(pRrGZ zVGc0_0`q2guv9${ma>*rs0XBC$=3N z;YMp|<;>arihO$J^-b+~A<*=0NaALE^7##W`O!&LG-44nN3lQQN6kFWZ&L4esamy6 zTPE{EUfUB?bo|l2%(B^~hBAAM@MDbSdPzI48NFSaT9g(e<{{20DeMlAVrg{;R1w`) zqs+8M;!@4Q#U9hydz@C1HqDdVgAz_@D}g@?j+|@i{R9uMj*%n3{pADjY4qTF z1VzcD`Nb9M?DDTo@LHg00Rm2zm6p7o)Ez22WY^adGVO+f2IR&JGbTT_Bj>DInXKXV zuigZGkjS+P+P#&PTL9XCoYCqUrsDP!spVJX)%}3rF+NriM0#`(cvU=5y$oN}furk+!T_1t#U} z4`UI4TOWI2vl+w0JbCKk7xyl6aOkggD~mW(=unpZTFrNZrV0G9`omtYbv}HfNXN=0 zR=O;U8M96U6!^AKEPrc4FMQGme%igiROe7X51m8(+5Q;ohua=azWJAcJ94g0fNC|`8L z_MfmtX&k6G0UsY@f7r{D%}rL)3=f-+L)z1J;inwDMY}=U_FY8k^iZv;?KEb!eZKg$ zY9i{0pq{t)JdBR&XkAkE4`mCv2w$VhMa zmLQd+HxH&9zNh{LNF&$VTeazJWjmF|=@nU<(K*`nX;9YRR zs`d;`>m&;^x=drvI!Y)b#b&HMS>0l&n>>1YTGfW|^KF%nE}r%MieZJMvZ$lAid>Q* zVJ1s?_&g?FFi6pPum>y&R}q`}h* z!vJ?E68j5iv}}-&d=}01jrIaP$ikhGxFB&XC z2|VP>MaS`&)Xh%4PHet2tHiTNM1b*0YUG_gdfJGb)6jO|Vt{>TX>z)z56{E4><^L> zO(P4XEV7fUh7;!9V~K#`7A-_%frM63n9-yr>hi%r4Ho&KwjwI&9?cD`HYzvALJW}Sgz?J*EsFTg zEQ&C)i#H1WT*Z-6t>g5R>W&A7WaF5Z;@x&jchG&jFWBTOenYo^q6;&~&71wOjVS+m z`tj1RS5Vl|QB;uL&*vgFnbyL0?$q5F^26n1)JV)r?l?$*J<)bFu2bwgdbsUNZq^R@ zP3hjO-OkCNGOfH8CmyrMV53|+^T1T|_7?We*3=LnXU0n@NBLQQ5RMee4%$$F61exR zc~g|6e3V?Fo;#{PYVlXhRX zzIZ~684+kbB9u?RZ=R-@8uE75#C*!Ro^P%X2Wvo@2c&r?UP@$p-r z$H*{G$D@H#CDZ?;I3pYfZFkfpC8RuN=7`40(6R4Lo6KHeiI>^LQsPQZE<8GS!)y1{ zyi#5}Wh`hHeknYVQcQZZw;HYNX0NSq#Yzwbiq*a=`gw*evI6zx!gk7BO5n(}w zoluM@0U7d+%DxdImmNf8c`NPjs8SeqL^h{~FpKp5fo{i91XF!!mSHmwf}lp#gehD3 zR=U<_iy@>z2Xjnj=06IA-I2q7K6y@C;a8-{X2u=Bbewv(4SbSGPEwZ=v<|}cMkXK2 ze3_(Z^ds+atq58-L4K6~wy$S#E(XMW+Qb<4XfyWdob7zeP z?1Y*&23;Ucp^huljk|JcNMZTLX+D2m3((>S&d|$z@o9(4NN8l+JPQTEtg@e-RY|fI z*-e~VF9JEM%D1lzy>NGLq)>`Y#JIpJrLNEpJk;C{ev!c@eZm~$bj(JCZsH<^I=Fv? zx(p}BVPG2D)zz?Jy|H?*_l1^mb4PNN9hBV#r$l$5)Z+z`MI3Z*T3ki!ifFlG&P?(- zo>B;V5PCDA{*1z!yBGDX75zd0vl#!B2!K+{*fTLwIN$LO4?xUvyRfER{Nuj#`HA_GpfZ7q!_hb&rcXu0`m(L`NOx5veK4sIf z)&a4 zxNci#9w}yzuw|Ko#ksL}`#`BO!mU}_q;{&*Rn`Wdl=!xq{Z9)W!MZ!RO5Fq-;=7?W zZp*wzx{Eq3Nu^;l?mL5r?MVH3XLxu>bNC0I)X@7QInBW8=-ATQ{Nw|AQJOb0j=oU> zvG$VshXq3*K!O%ri`@2`#cR3-Qh24fTJ|E~XI))P^rRCQRatb_1T&ZFM{TtA#DwY1 z;Pt#KbPO9D?A&6vPs55U`3(7;ldV1#DKO0vUPL_Lo=ycBYoz3rXD+zdsZydik>VT` zsC~EO!Tvn%8R_$0I(#!QvKi_iAdB;{r}Y+M>yo5ANH^rY(emW#$fYxx?`v=1hk4xA zBwcCY&c!MIV&`(F5Il#DV;Wl$Ih4nfyIxG=rPM{si=R_f_r%C-q8<(i%o7#OQmP+= zQXYlHEhUeeM2K!hbmg^=rxnF-)&5eU6)nR_*x}xQNof96mV|{)uEi!B=BIw*6_0>O z56(JKF?%#i7IwFVCzl_J2Qia6A(?vkWY;_chUpG8YNQ8LLkYNazvrbEFTrMR^u0D5 zGB2)L%bePh12Uh64a)r6bhsJ@tg}Xj&lvF^L54Fd4T(_VoeFiM6Pfui=pS`sa)$v8 z51#YZa*;O?-#YroGiyGigs;3^HQjY3-|v9Rd7wTl@o7bJC1(Es0)Bw}{C3_t2a1^* z&OGV;iSeS06LKg%RsnK}yoE$sBXty#2!?2~_D37&7x3)39@wNm5A(u%OXU&bQ z(}5Bv$CYWsf*IU{Hl|Kcs1@hAp}g`F%a&M%slIfES)mE6MlR}g^tp*qKm==FK8^GqgcN;4b!&RJ|eEUGT1B?MCtkwM^ZM zxhCDOUUY8b^;Q3k#|A{9)0}Kj)j#_}1H7`(=5JA5xwcujgcbxlAl6SBk<7cjSaR$w z9Xe4`=)3do`IS^Dfx`uyUH!!;-JieT-NnkB`4V+sUc6q@Ls8b#Lz7@O<~HupS+*Mg zbdDH}zy}P{iuby=WxbUlG&Kj7s_}I8oxN#vtX`1rJ`L0C@h3*ok>$N2mCj9A_xM?x zi#tHwX+W9tEuiu#O}Mr;`B`&+g+xY-Ip|);9AVM#u-YuNak(a_*Bi3S?JM9=_DrvU1o9Ral6EZx?P<<9!3zGw`o$HN8(Ly=_F)Epxb7`f;vC$u%!FuQU$hh< zFVXX(XD%5k?lX|%?qQ0E9sNYf0to1dK(qbM;P3;;dQ6J8m5)g0p*H_M8xcbs)g=B{ zbl!ckf8w*qwV3x_De;P3XIkR#MEbFtJ{uVy0;u0SRtgb+VlFI>u^EEtzF9}K)j*A# ziBTHRn${@(pK|Ya2W1zV5bycu5OFAZxnyAY6@JKo z2+oz$>!KVByB#JX7ExLJ9I}zo!qkWrME6isG?3)W?W+<2Md${s3qs+>fF+AA(9tMj zFpW1=Y+7vW6=PhCm)cT*kd0JE)07A@6|Th84U#e(|0&Wh`P(2O;7G%qL#`mT8mo%I zzNMko=cIeOsSS72`M9WRNizrk+i%fL$^MMncwsyWv;>%9N?Jv>y2!!s-W4diTDk3# zkTFLr-F65{E-hhEropoK!{)Rqu((*vTAtnJ1-7!^lOPBL+7RBYD0S^PbgWC8KI=`_ z0X^Y(Q=FyA*_*4Tw;&VYbf|lwI5s!ZRVB?-uNKPSRWCw4p1D!@1;+oC6y$NEmo$VyQ`pjMCkg6wDeQQjiy^wuG`33z&fMN}u3 za;h4`tj!R{GyzR1l>g8SV`Tr#n@~7} zKTfAWPbS^Uvvj{`iuB|f6fkVDoqE30!)Sg1yX&5fB&(h%v@w&vMBXtF-Foj@vYd(m5LS8WOaO?LciqG zB;I2UDJK@r=8aNb;00kw+V@qgKtKOW0GaKwC9Lr+oV zsLE(wtnvjI%Brdd7i{Yz8pFy^l?O>C*C_i+qwTKy7w?`tu>49X>Y%_c`=t3quhPnB zdKSY;Plx=HGfe;8P~RjaA!z-KdG50sPDr0W>L(ZnX1-4vsLmWt_d#Z6G?iv%#G+kG zqhQIiaR&-=@rNoZej}x&HB)}Wkc-e7*|MLm9b6Idr;FpEk2xK$45tkRk9`n|^n0Abd%8J$@xo_FIml&>pT|nMImJIx>$17i zi35FQKQ`09*~qDp8|^kOA7LuhgM^=7&}szc&zO#DG6|lK3);G3e}kZ4!dU zKH@L%O~55>!{@(m`rG`k;_L z@f`h`B?7v?5dDK)J+BUPka&>Ma0{$kh61-pGEWeW)v?H4KAob3In1+Q zmp$=bjac;#R@|f2%$H?ztD~20rl~_fZc=J7tdV~Jg)Wg*-HL^s2nu6f~0B{Kb0Koq_ zb=SYmjPTLX?62}4GaJ;fc0?9M`mEMvsD!P@sWFmDC`V3-NKqa%l|R{h}fY61?o;MwOwS zM5kN|T%6jaecd1sBFkXpbOZbwO+<>(3TI)&TY{qbqs`+h321vzvJi#^rwW;4jI1ac zAf|E9Dbo96>^b)mrei=_K)#~b&XZ=xg@7JyZ=@+bd3JsKA0|`Vu#K8@%_N*{-Op}) z?z(LUk8qy~<4{%!7yC>H!enMs2TKvelaa+SB|)2sj;I&Yn;<2)#eG(9^zv2P$jjrB2}F;0s4Kw!oZCd+DIQ#BF(X08J|RdVlT zzNxKoOBqi`YB&%uW@si-NEY@l-d{kN22Z6A10sU;eKAm65*ZrqSGBnv#C@S;)vKxZ z(WeMb(X{+p)U{ucWjx&vYmCR7ph8_62U8#R7q$4BS+)hlExJ=N6f_7 ze4zd#5$bhtXJ`{{U0ceOmWHXNQIY6DE0|yvs8~I*naXw0OoH@Rc;B_%RgrQZ=w3vB ziXU#Rbt;?Sx86JYK@T?aONKRRsbppj@>ked)O4i~!nN1H%kkTvOd@Dh zV~vgQlh;GPBZR~cZ)YxNk7Sml1=4+KBA^>2YChCGEp&!ICcHs=ob00E{0h)^c{zybTSd~K) zAygl9pT)$0N|9RJ<4bs|=ubARz|eJ2(ibVsH&vaO+}g@#{Q~w0u?EVOt=nsnBr{}M zu0xq-v$xzVL_ctJs1j-(>cD74ud+0fvS2;4A@#4pI@1zbeCes;cnPV{#*5pPB_?-* zObt%pdbMGA18%TJNK{=Ab)@-}m9UXN_`7yrw>yLP^H0+{KRWq1d2wySO#@Sb-_&jk z4u56AgiJrV=K>!Gqd-{LIc_fk&>QX>w%H4zr6~%H>nIq(<_53DG*JdSLI$h^5u}(P zKcM#cl-A&Kssme_=N+^aRRC!wARQ!fJ}6-0@CWAw&Q{RWwPa<3+IOYqO`y49n9%01;*shrZ+?Em(4<` z6tEzc2^Dxuc<=4)TZt(68?zHoc2HPxZJy&M`uTbms|-GkuLXbnHK5u3=A$(s-+@=m zy*wim=1I}{WS-XDjq!k1d(|M$s72(19Bos_XWfC*dfBh#C00+>sbqwa43q#)KyW__ zh*2cZCs6S&lwK5f07QEFdG4bRkygi6m(g*=YYm@1qP#6(dVX?eLEqqf!%zYe5U9sB z6U|n5;kO7r#X^L0X0f!{_bThg3qjik!5ppApz!PM8c4TJez~ijLL(xsQBb46EsmmI5SEVpuIx)szUDBhyX}vsP+*ly)^kL~5dS|$A!6cc zFg1n8#BAm^mS9^uTQ_cYuSqGynk&!M;)HFJyNq0X*4uAw^X2ePfhzW~dE2pv!`P%|6&I{61c+1L9$_zt}Aj;dIO*jpI9E^0|TL`a#V4 zHIs4^)4&5&ukqjqtF(8wNSK--7d;4)Y^VK?%p^`~VqpB}D!zNDi@Q4V>Rp#-mjkOHvSetfl} zO_hRhS%}5<%1zZ6+y*p1@Sc7&2^akJhH+m{F@VLdnc^_)J<-gSCaO=J1R{2+(vgz2 z{0%~N%O~Gz10$Nff$~e!_e_7`(jhj*UThGlbaUb`5skzLpDg)cKol;R=|;G#>{EjOs*>m0 z^}C}@?II!IhajrwMPm}V+)OZ`oGJi^nX~kmaMvLjv?qW!&wxkd=`!KLY(Qw8B;2wK>cVZcu@NrgwC zQ#jSTmS+yK08IJh>+?d6$Ivs9Jc#QY6EH0)4)Z(U0=QE6fVuuy57N)pak#u^`%XTA zG@l~iDSbx@Hthi{AG=FXDf?ZhF*q~Gk62<`V00++w-e1p7W~F5R(-1?Q%+D}pc|;@ zSh|YhO`K>E&>%+{;cF2R>svSvci4@Onq53R@Wn@@>wsdSqoDLy{y>UnkPsNv|X%{?r9P7|ts)rdeq6g{1f+$3}~MFi5Sh@-Jy0b{)E zRh#XZIt)ps;<6hE{m8T1>DJZ39YFJ>2Q;VIYm&NbLK_t(0RKcO$~%h$q+lRQo~u7& zEaIv5^~x|4%)5;s#z%9){f(agEC|hbLak%v8 z7qg<4HoHDnjpLeT)KGmXoK&~|N4Xp>Y(BTf@Y5p9Le9%?>^xVsnF9?ot)kM+IdYjc zEHiPmdz8L(QT)cg@H9bgm;ySc+*#h}INBiu@;f0OrQ9Ls(45xsAxb#vqxjh4$_$0( zE03(&^s@z5oGFU;#&h+~Z}CYySZk(k1=+UNx^kOn_ipPEWHE~q+iIuX<|Kf6W69C1)Gw;jP z-O}bz=@^Kmea&c5b5tkNwr}CrQ=wEnMz#h@Ozc>v#|2^YPR7Y>0f zvyM%?CJspRFv_xf!)5(aK&^Hrc4$HCXVOll-yx)meD;Oeu_;4EL7<_^*sG2QkOXvm znVT(c-5I!-EMsjo95bhG^A7(SoP-*T31@@`H9>`Prp}7XW^CE>Nr;1MK)iMHb?Wzz zg=@UL`M?mY%HH5K9vB-;A<0J zb5qCnDfQ|4)9vlg6kfv{ekoa+RHHb^d;d0Pj9DTo&_~()yp+}|`xorLtk}qJEA}gQ z$z&P?0Kgp@008=5RxGW7zSG|OG>~D_*x< ze2YrrsrF`l4pDy~Fq&Cb&G3bUM%tQ4Tw!xP&aFUfk%#p__Kd5gug`ZCdR&158MR{SEKM zn{Gnq`NBrVemkx5(ZmJ{-KRYPQ$jH~4BL{E!cVaIQy^qkEq1*vp6YGs2?g_9&Z8*G z_^VpG7r@SDQwOLX_TLVai&DM#i)NbQ8{O8p=Eo(S&oEoxMa)*Vt&kD>}BRxR!DKLQ7hIAbdP)^Ux;OP%VDEArPy1+ zEFq5%Yvkf;NnOcbi9}3zT?>hfuV~EPa9rT|zdKBZE={pqj^Fk}(9-H=YjXLpXG)tC z+%Vw0_({XJ2NNj8)-hpPDSBD6_jozWNA;FJSX8er%%u4Cqod!fJ>RT3Jx^2)7-SmI zu|P&=_X)vYgG0{i`KXH8sHGPt>5;>fQur4%)nia%jJZld<>+ft)Qb!c8Y>7gDeL7M zU%^!vtq6itJ~B6P72VD!2AKC*Ek1Nhy9>L;TP@ZeKYrBo*>5~>Ne*!h->g8)pm&1T z!c@q)^PvGsCebfL>~keBO1X9R8qgf%fwSO!UVEt?({d5I7y#=WDMUES7k@hdgb^kR zdpGPU^#T2MzMoG7Yx-PvKIO96XjM7qMLPq)gS~75?K2gc5*K;%DcC14p^~X1IRN2m zI98=ikCqh@sFL=kj^n)|F_1qkreU)#VCH<*>=kgH3^|(Mb0hPrX=n113LXj=wUzX8 ze^csp5ek~_e*wb7o;3iQ*~Cx`@{73wXc1~i-9X_7 zr@i2FD&coj5dh1gqgpQhHq{@wWpYm6$%MHbeP6ciuz~$qiqGZJ3QdX{tY`_bQJJ|9Alh!1zZE0pODVuj)S_r?L_# z0I<-1pBw*O>@P<8k6-`o4gUWS`%CRVi0R)%{|6}gchSFt*S|*i;B+Z&l?DLtP!0e< z@J~?yfI|O>{}%lZ3~Qn9@c$nB|BdhdeIdR%?RPiw-`Mv*#{M7O{5$RaUa9}jr2ZSJ z{;Ri3f2oZB-P<={{TBNl;Of7x(0}i2{}L-umvt5sE+qP}nwr$(?`HpSdwr$(C-T&S;ZIgB~duJXdEBkRW3evzJPyqi` znHo1*|2_OK0|&qXFn2OEu`#7rRe=Nm7I|^D5c`i@J)i*qL0$j>06>(qbjzgpMaZ*TK!+jn*ItLJJr z$-huk#LOCV!5hCQ{vl>OISB+v3=9Aq92@|E0N`C;{~iDVU~y3Do8^#+$VKTeXpkvt za8il@pzqh!Nm_WxF&K5lytH&}diWVhSfu;tvU5Xwpk5?{Hj=WJI#xX(T}K}w@w098 z@r@gPlk6jXx`|nS)5%XmAmC`LnfkgYWG&-jJ4ASfAl>c5C4)-$3_HgW&3d(J%AMI~ zE?xGJ*|Y6!%sHHLQ&nPjZbxObAJ13nX!-O~P0S%WxMo)GZ)|i4RxM{!t-Q)wbaY{@ zM;3W-X6CWCx5(^#X=QwAbr~QnZMB+gYj`PJrI?0}} zwCBvrxd4ioN#V6grz*N%TI%EZ()YwiEkyz|`SjwCIh1U3YxoVkEt z#tE_tBNzyB**kp!Eor8Tu>E&L`xkJ|$YzE#9SI(0&WQEtEvO`p{(FK)6jeV`i<3h! z2+?L>YC$zeFb2FB6!gifS0Gf%$d*VAo#D&hz=P6Ub$}v*2Uorq2 z9!w!eTOyj6UHVg**HYBM`DATl-7~>vKHI`J0Wvc5^f3H=F5+h!AvcmYJ?W>mQ%JG* zmzmmYUI(ndaqR5Dh1@>E%Jd>AR3e~i5 zCQo>`PMe8bRx6PD+(BXkcIcf4G4crx+CsxB9aT)1=k|Yc zKd}o&WV+4fX!`OKwWn6oDDr{ugf>uI?v+jsJ=9iSy=PtSCS(@mfQ>L~WS4u9w@Ki? zrQQvuZf;FkG)6wwdygY%>w9i`bFOnH?2S}sP3_wr+=l{VtW%OObR<4b)UkjVxijCk z63XRo2wPVB4_UYS46Law)*J~93`utwsrPFv0x+2C&p64`U*{JoIMaHgH*lyH2kt-_wKs6_Wds47bqV zW<}ta!@JRifCWt^)%{>K#f+0vH9}3`fJsR;eT(d>zG0SeAUd^!|%mdiGY6&9(^K91LiV1C=&m1oa(fZWMMM^Lb*D3NZCy(lnD zN38StFM3fLF$+-Az{hj=8SFw6_xg|AJyVOlt2S(X?d>}OZ69YLOUOJPiqjFFcj+t$ zTqSX};WUQ{3L!CTj_}>oUdozEZ##E)IcY9rZ%Z;R3hI3QT2M+93? z^~rQN{lbeK6cvyXsl$E(-1p`8SpUSbaG>THh)NzGur<~U*KIjCrtYv|Nq1(a;U_@2 zQWnusFTU`pAsybvtJLGBMfykCNcb2Y%_MXaCX{h_)DUt(C!UPOtQR5>K4~%mc}b7t zW_xrRzb5!N9Xn#&7AQj^*vpP_-Ps=}XLGEr2);J2kxq$+6&dr;hP-puelRcu=_Jbll53 zkE}S7e?vGi^tkX_+zVIvaY(%ONQ^QkAdvkSH}$81wxFir=VLEI`#~EY6>M_JzBs0* zDYKIi3aC6ZWZgj6=oE30he}6k$`ZsQa40@`&WRiP$5lQVXf)j_BDfvQkHqF;(dWEx z9O!Cyt^Mqk+(wV>Ss2IE<^jlT)+WNo<~EY2zJ3J!kNB06TtPr`TQeLg-c7@ z&|fSF79TGY;vaekl8c&#`zqw|g4UoF3jr)wL^fr14^(sk+?XPy(#EgUIYgC|uLr;U z{$PQbd3y*YQUE`x1y{vRDP20+OIej{8aq}+wVEud@$q#8+vl% z-dv{Y#>kMaWZ5YZ(;Wo$0p_@2B5>&Px)YZiu7Acx@DslaHtzSig$Z-kHg5)f1jT^V z28lgXX0bx4kz>g?`*+iKw5k^~p0SG4c+3GBWqa(JcGzohQ`sK@H4~S%p*OgjqjNf% z2cMp_Lr6Nal3Q;_63`GTiE#+(>o~xv3_ip@*aBaFr#pvfj{pld5>;H&x))OzjxX7< z$Y!Eyc=#6jX2z0l)&@M2%ePqry9G}$6r5h3A`U*H1AMtg8DkbAE;SK4sAS_?+X1-s zbVd;cdjexu_yi(At-=hIaT0sSG;M0O*%bjQI?i>ToED*?Ld>MU$(uT zKI%0ARAWdhv-eKwWScOfA`HBU6m{*$s+t-n@sKuOT67uId|k<+L%L3kA_m57v*m+aH{KQi^NkRiG8@aN+3UR|k{0{K>s^ly4GH0^rIlF;etNa;+H*-*KHj7{-N_t}X+& zrMwUXMmJo#lbJk04H8=37XP$Tp=@T}Vv+OR%V{oB$c&B>B3(Q4<`FtcDNNJ37)C}4 zXO)QLNxyT;gGWl(dnG)u#obf4Ozhc;a0Fz@_6#GNREz zvVKGL+Wk-j3%o5h3vQ1Kc(ro&<|vO8ZKe6CH@F;h+7abZjD4_nTQL0tCjUKFd%q@k z;CEQ6a5y}wa<+?86PQ^*weAiy(D;rT?a6)Eh9EuuEGh}7=zDWSr;#h^h)Td z_z@Uv^uAh^huEFvp`|sD97=w(yDi) z6(T7J3&_|Jc54>g4VN_s?8`g*Dz1=7%8I#JRjbzC)$HT6T-)3kh>ZyH_)fPS+pGcF z+1z71d9G!sUcugEsA`>B7wtV9?%5|#$5YF;CPknc`IArOGRt1fmO91`cDk*4H0qrEW%4-ITwhS6wX(MLy9vUHw9Uyng zdmBv3w^(PKE+M-t0O~7<7oDiHs$!WE{9LMwp)m_pa^+>>EuXPAoQiRa-6l9xjhpRG zFmZ~$zveIAOT+Ed(~G2>AoGrTErI%qp+B@^Qy$&w+^d^ZhgH1ob~Xc?c&YIM>|X&v zpa~x1rv#W7x$X5Mvh7uvV!$tu7y9+~ERQShll*>T`H=h;lh$4mV4h_S>^&!_xC#sf z&}@0Y#mbJBgNu7OI1rX}g;0bgXX-cs=Xu62+tiKIwi&&hYg4S6=^mSfi9zcdmQ*{A zbgVRIu9*>*`eRdrx8}SPHfYSIP`Iwlk^14eS2xe85S#A%APpoAD8j`TqscbzmNiz=5Py&si3PRAspsrIbPznU_WCGHu~n0B>$8@522J%ICmsl@waLA zw%R*a$SyQX{ZK^aMOoc_kV5I_8D&`Ul{hebnBQ!GkEfA2CA$((>1^YHZENA75ko6tR`Kx!CWR?o*1 z%sb#bay2Lay1FJeoWqPo88d6KMpH9Qy>7a#XX2GpkL~JZ^^}X989ZNj3{xv=v8gKX z9dsNQWo0UiDhL;kmwpXvTyGl6s(9OUsmu^~J%eiipjE`3Pex!%?{2VgoDgsH)e~*t zye~f9tVw{rmsAFH;bpX~B6sZkJrlQzh|E7ecGCTxUTvNL&jW)6uUPEM_uva5RpwAVW${M(n&q@q z#S^)4kT`f}5g&6;x=9k?2fiCVOgXY_wUQ6jfQCG*3Yl5(8p_3SQDswC zm-UO&Z(Z_j_`(;Fg5MqdWIH1QXV9@wu}sA?a#VPuKb^sVu|!=@O!!;8t)A^NLtBe; zl^%nPSIdG^_^gT2n4`t-s&49J=nE81f#R0nr60fYAAz5X!sxM_Ase-OPQDOO7%(?7hV2b`~m016F~Yr zyk-?P*qjR~ua=kU*X?MCs7KknSug8BiU>N_VGjb7`7EXI!)*Vml~ zpw%OikITX@6N-Kqu1r7tfiAM zgl{$W-bL}NSxi6BuEp$j#QmRBZJt^;Fie^%^S@$n7Y+X0(=muWJd7&L3Hbl(&%jct%!ElV-Vhv_WaPf8g}Ev%YEpa6xWByuY& zhT*Jcup(dqL7@L_7w63m<`vH4J&0Po4XCLyfNyG?$BHw}iE#nGs4uTU)N8DZ`8^||z^V5z zY!E4MLKp|u5u0GJ1OmRB+R6sMZH;O4;MMtI8Nz~uf0ufhF8 zu1i9xGf8+)^aS~dVmtjA(6_97=wo5HI3f%W94Q%QxOiI7hmGb&i+Rz_T55d+7YEiW z=ra$LJOvxDdm_?hM>tr@sFTE%jc>xWUu@U$_1nG8_W~p=a4sxzRqrU1f?0^#ll2|^;yt-v{uqlmUNAT|bh$={PTOZm4` z%lrM6kBq9DpzU#-)uGMBsPCz)^ADoSjWUszC(3~^^HeBUh+&VB#Dk(5o8fkNdOmh| zS@u8>ng_y9c;i@rRc5gdj%@um=!1N9ydsYRvWqNLu_Uxib91(#$|4(iep9j+L zz+FM>7!=!~$__u!S(`h(tRA%?Ps(pU2=D$2#99+T6VfSdk3Y&DWU@49wzDZsx7DTy z+M!2W1>XRkgSM8b<}u;8plU4_eN4~_)l(4P_cN!*r+PQ&qvi@tr}Sv9(UJk{6RAy} z)$W&$K&ZZC>SX$O-W9+0UegxI30fRhtF-C+f zYP-l^qQySzT{e^$-3HW`?!xtl%Vy0bK@kK-u`e~LQ!3h4<9*ZS%)g*&;GrJ|n|{Zo zZ;2aJn~ghF&M?#^;1{WP=-v@WGhzSIn?_GRauF8&_3qnF6Ed~*BW-x5|4+o|_75%+ zG)C42H%4?C7bgcL2ljXD<8Szs%v5>na*utF;g91ZMMWP9(!loxPq~jGS zMroS;hEnwj`H8Lr=1xW_9@eKXQ6b{?whZhcrlUnR@MCO2jjE2PO`Zv#iJWH-UQX&9 zK;#}J2?ZOA*@&?54rB>Ls}^f)NvH`x>`OhRwH<)kB6BWojW{+}?GE*bLq5M&qz5oB$D2eYEEyz`yBgEqH|iJbqv zHiuaP#3-pzSVajyXte!tMK%<4J)~EL7cO`)UwqEv5~NbRI4F>yw^_^5Ms9Q#=xHLO zHE%zIC%6Y$#g&X=Jvf|BLpYM4wK+?Y0e0qs(8>AL!?Yz_BviM8ggJ!ZM+M# ze~g^B>2v!B<)wI70WlXcG_lo|BmVklQL}wq!TKiu6a{QDvn^PHZUJ3)n=eUqIl4zS zQF3rocNo&du^}V`YfOVGvwK{gA6Pnt$bDEebF0M1Hm#30p};F?JH$#lell#hg{KrF zq|&D=vo|<(WklK)@w@n6hBd~5r=9v@MVJ7e`^2r@9zf{0TZZ1qHEkmyg|Sr8m#}qS zM61)EU#O^+WUgeeQg_QB8bg=r=}B532wuT}7Qvi>tk_vJPs0yi@NiCIMisvAi3|F$ z3VeSb2ow<*x5O9wkVWuMl7QzgH&9A*gKNu2Jk1lnI7-fQPRw7DP?O56PGZc0pGSJ^ zT22T{>J@jvhjR(Ch{9DS_Y4c-Aym9XW;d`_NxBL8_h>QG5>|?UUblN#t4g5mnHJIL z%^uu<7Z2Wp8T`E)XCwUhtw+Xi!>|?l#o{6#8?UolZ>xoy-)@{5fCju@{>8n=rgd$u zx$}}Ic!?#NBk6t+#1mFh>1@#4ToPj`3&X@_sX-+tv!QVE#G+&T9Ehn0J@iW`29~hmFW8E_x5`2KY;t4XxdQK)eY~ z5x@Sa>`|@lYnFai5VQV3(o9Y-SjdeUiV z&eW1kZ4)UvN^P-)tyY>CJpzI#nKc9Q%i1OG+U<0cfC?n#xz_f$L9qZ@K@*dLb5RTU zB8eB62hAZ*TI~`JgO(ts!b0jg6@4<6B!cddLpqU6!(wIY%4`5?E|nZj!T&!EA$y zG6b1AVcU}C@Fv`b6(+t%I+oU8JHbEHQEKJua;n(g{`>&t>ftrP8i9YEr!ePhnl7vM zM34nH!q%;GAQ7{Q`bp^cifY~=N-56!1c*8(uwvsBnr$Kb9U+K;QC*!Ob#9)NCjQ_a z$dggv+Uz(<$BqM+{363{g&_DmjAIKO3ubmH$Z%f=eR~(5Wp}#lDa^DII|q9En30Aw zwinR&Fx=tZvz7IGUzReD+Y$G2{wiBQdJMwtuUjfCzLi@?~1M3!*PGPTue(Q zD1}zPPGzJ*LpHW8urt_pP-9H3>NrNj5T&j`S!IsH*Fqs?7T|3nte#0l{Z;}l0b*YW zhs$gzYEcOafGljLbKGF^A(Vo)5Ao`Yt_7>`F!2%iRWn&_#Nyb-@zq1<4P#PSFm?vu z-4n3*+FR3GeWgsIe zdqy#MzW(iStctps`V-%FGzswNU|$ZsJ;%~Xen+z^Ai}6g zYW+=TYrRs{_+ihMH6~3+ z7lVWOpiSlG$riHop)$;;&w_TOYS_Ft*I;`J9q7iAS8p+>wFbbGYVYev*09f%5Gw-k zWeyh%saG-el|r)L71f%hDGxXQQR*9t8m3_=V9JLESl~)Dtl)mhOgv4rEF)!Vil!!5vhnFiBtjum z1o9?+qG^H|UK#C0pr=OpXM~>`s3b4{7KQTa5#3)OekT8X0yCI7^{>4g85keKrHh+l zC-Qn>)-$(@h}~&-H`1^Tuw)XrP>hA!XrFSXC z(~gYA%FmPKh~x-USwpdyna?bHZSVKKFYK zj3GJa@_JM{t{u8a@_wjf@VM%Rg5}qib;@)BexD zlp#PzL*k|cO^2^><$3PKQkGjrd%WItN^zvL21{K~->KjNbDTHy=`Oh}Wy84l3yuh1 z6oZGz!zi`t$=5h{cMLCrcQh*)Td{R4 zfo1JdT#&PYJii)0u7?|j4Eo}ONm(gQkT^w>qLw>wn8H3*j)*_30b$}h%2(NXRN;Qz z$JNd}&@SSMhQku>JJNpOwa8>)<|;j3JPW9sh;<4PQjcs}DE3BNKWWpMZ|tAo1>tvp zx-nAE1JE)73a}c4KLe=hmq?!k(-cuILwzX<;4&eeke>9FI5Uv-N`6>Fm(sL-v<#43 zstFyTQWN++7(R77s4xq8u=>42+(-lmR-|wE2f9DF?^k>AADRv2pGN&p+xPw-L2XrU z@WbB*JQ(Fq&HC}YuR#M+(KX|`-^AI+mIkIZAUt$DQdZ=K;vbnG?4%2vBEylB1~~>! zXqU0~Nw_4U(C5(<`|l-?OR^3n?NP?hVeZpm{m=Km;5A@`io3Qq2DZ`%y#&9~lRL-QCkfsE~%P09=*(>>YN(HJI z5{W$@$dGxA^zitJIpTR;v=nw1p2Jyu5=CZte4HMxxG8rD!~s&Hh8G6o>Cc=Qe6b}f z`x!cXV7K$k#JnuQ*-xXeF37m7Ih4q+atB1ZC7(*v)g`(uOU7m<X0trOrwSlS-` z%zjxERQX_D?OxcWlXdXw>425B-D)9r&IWro4H0`pRS{AV)HEJ_5Al zDt`(mfl$FXJB>-SbtAJpB|B6`72|3+s$OWJ&3HZ`oczV+)G*}Q0l~V-yjp*5+Ljsf zcm~XIfT4^w>2qH=-WAyb%|8MI=Pk*@zmaR04^wl%KNKK)wAWh-LNJ7nNYh)|-2z}3 z!Fz_T>PC3p6Yv!YF6J-Tr&uDGQOPtiYBj`c+QdDVK-?u>Y1V$-lkayA;kalOG6r0A zs_5w6S;}ugz$h0Yvy_~_QPM%Sq50>q=6p(v<=w81NAaLC1{oPECanV99qSh_K zM|W+ry4${H6_6Og=1+BLB!a(U($~M<)ZaNKsee~V14aR3k`Xze_tIi119tr6`(>*t z0*I-^@1f~+06JQuc5nNFVW{#^mhOaIfl$;(QGZOB8svWSWd|7qu?4{hy`Lf_ z=V9}$F0B|0Ws>CX3)ALP&D0K%D~q13N9uG+92{zgco*}PMwmj%MWeWgPLJ&eZ{xU+ zfM}H5B=Rr;hBlUxh(Oq#P)3)87b!vki}N`+#by`6#-oK4Gyci4p5kDR=YS7suF3jl zJ6Wi7t|=_sLz~SqaCNB7iaw9nIcCys0z^XDt1*;r9qP}TJ(tYv&@!h#t8*)BK{CD) z*CDH0M*5Od;nIU?@YA#e$%J1ZAWAICnK zon1~1VC@JLw8CqX!=`_1Q(NyH2~Y#QYdrhVYTklKC%5-S&*I=FwHF1YhFT~X$ke8l_xL?eV;%jkXhKRkkc`|m9Nzzb1u zaeli({6#{~LTxtw*_XnQ1ZH>d5byi2bK) z;%!%`>8$4ijOB~rzK`isaA7a5)Si{b4G0asB*4<4;Enig_m7dV?0I>rGBlb_nX|1| zE7OrtxOP(M$4fN_0w=<_$wO?m#}Sq3hK7wgwn(tI`Wfeh zFVb?!JpKG}yw=DX!r{R_Xq>{HM>X-z{bjx2Xqh;z6E0xi!ZnX3{F6Q4w}C2t!rz2N zC^BAR?{EdigruFHtz@f~cB1~@lk9zdI#PyTcaJyt44q$oAq31o5(H4th%rw*)M}4^ zj1W+q`}_0-M35jpe}9-kh1|@;{Ym?;=j)KUUITd06ycD^Mv&o$eKK)HZfY67-##6{ zUxVGRcY6H%>|FQ}R+cBC{+d@@zNkx*HDw`r(|LzY3=}q}&?d;k4<^CK;n&JWsHHD9 zxQcKncjKSry#P6kXX>h)Yb%j$to)qM4illkm16PH9ZX2N7x`oY6bF&}AAM{6t zI?`GvpYgMap!A>09=fWuigy?i=#6uD=7kRwZy&)Q(tOp|uig#QYboCM5hCh*TX!8^ zFIsH<*Q#S|aoddw1=FIRWn79!8*ef^a=XleuRSzFo=s;Xqn=4>&v?*sU-l9-qMjq1 zX_z?fzTn`mUIImeGr{@9qlBbxlb!Zkse)*QvVO-b zhTrxKLmOjH{L4Px?ncNwJ#v%HjvdEMv{6h}M$F3K^g*axNQ}T_Xg+G2sez;6>0nMki*jPVEa;WZ33)-;!1`<;v@3awYfjneO$I=d&;HdRqypqi{S1h?Xj6{I)tgd z?}w~5e28F(0tSjn+fb20o+OO0b9*3t zLn9>Vlzb4w^gV39L}0P*N!f3UxA8LS`>id$T*Re=0SalH$wfv;Oe3bE)n?YennJTw z(~iee{dPH~uR}1&klr-Uc_i-YH{!Mucf@2LiOu!*$@uzhp1R?!h5&L%@u`WPM3-q` zeOmgIb{Ft-o$4YXGq}R=h0A$iHbharqlfb^v{=WjtBJbMyP_02!-nb_aW8v+dANBu z$flth5pd5F&1QLgw7UHWETU+y!FZF5=WpS94blzT&(faBB2!}@rGpw2#k*_8uvIHJ z6n#_FI&||(YELmkQ)`N?Q)8~%?%@^?Na80iOH+1>ya1S@cg9eKj-g~oPzCz6jBILq zGJ*k9L-`9qcnX*IDXp!EB8k3Y0GeRgq9`>L z^P1=gfsg_Sh-6C42P9N3y7^k?a8NFI;O$wgkNHw`Ik&u~ zPo{szy)$9Tdv|g#bmYuC^JJX19e8w(etdR~f5VyratBT%`G0`(n%Z_XzurH!sfj0D z(@TT{MK7_6I4gWwaQlKKD&@2I2j4r}8~k29q>U+{>=q3HNv~#uggosj6Z^d%A0{^b zm4O@{Hk?wGQN^MdCn>Ia3QESB05s$kASvR~-W%xcoS&Y4U+TP02kd9zd0^zarHG

G1~Ir=Ql*Tk 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%0Dtf&WP=8I)iy^ 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 L03faTtMtDBUS69C literal 0 HcmV?d00001 diff --git a/project-generator/src/main/resources/gradle_8_14_4.zip b/project-generator/src/main/resources/gradle_8_14_4.zip new file mode 100644 index 0000000000000000000000000000000000000000..b06b0ce77cdbf1930482be0fad8d86ebe5ffe457 GIT binary patch literal 45138 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

G1~Ir=Ql*Tk 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%0Dtf&WP=8I)iy^ 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 P`+lMT0RWKI{MGs&00f#b literal 0 HcmV?d00001 diff --git a/project-generator/src/main/resources/gradle_9_2_1.zip b/project-generator/src/main/resources/gradle_9_2_1.zip new file mode 100644 index 0000000000000000000000000000000000000000..179cc2981d0937424497c1714928f030bc9b3a8d GIT binary patch literal 46971 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�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 literal 0 HcmV?d00001 diff --git a/project-generator/src/main/resources/gradle_9_4_0.zip b/project-generator/src/main/resources/gradle_9_4_1.zip similarity index 98% rename from project-generator/src/main/resources/gradle_9_4_0.zip rename to project-generator/src/main/resources/gradle_9_4_1.zip index 93be226f0dfae2834950549c96704da425d75a42..4f714998881973e056a4a38f7e307834edba0fef 100644 GIT binary patch delta 111 zcmbQ)&OEc7d4e~yLuJ`SKUMba83!_fc%q@m#y+hz96-^S?~#GslMk%1gvm`>E5oQV uS$1s^Q+xO3iEGV7Kzb*iI%v!c)Hvx-GeT4MA$N$F%;e2$g(fo}o(2GTt}&bd delta 108 zcmbQ)&OEc7d4e}{YEa5VKULPb = Gradle.supported() + } +} diff --git a/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/model/GradleTest.kt b/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/model/GradleTest.kt new file mode 100644 index 00000000..95238add --- /dev/null +++ b/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/model/GradleTest.kt @@ -0,0 +1,36 @@ +package io.github.cdsap.projectgenerator.model + +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Assertions.assertTrue +import org.junit.jupiter.api.Test + +class GradleTest { + + @Test + fun `supported gradle list is capped to five entries`() { + assertEquals(6, Gradle.supported().size) + } + + @Test + fun `latest gradle is the first supported entry`() { + assertEquals(Gradle.supported().first(), Gradle.latest()) + } + + @Test + fun `fromValue accepts version cli value and legacy enum name`() { + val gradle = Gradle.supported()[1] + + assertEquals(gradle, Gradle.fromValue(gradle.version)) + assertEquals(gradle, Gradle.fromValue(gradle.cliValue)) + assertEquals(gradle, Gradle.fromValue(gradle.legacyEnumName)) + } + + @Test + fun `supported gradle list keeps three minor lines for each targeted major`() { + val grouped = Gradle.supported().groupBy { it.version.substringBefore('.') } + + assertEquals(setOf("8", "9"), grouped.keys) + assertEquals(3, grouped.getValue("8").size) + assertEquals(3, grouped.getValue("9").size) + } +} diff --git a/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/model/VersionsFileTest.kt b/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/model/VersionsFileTest.kt index 3b5b2afa..2bc2bbac 100644 --- a/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/model/VersionsFileTest.kt +++ b/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/model/VersionsFileTest.kt @@ -38,8 +38,8 @@ class VersionsFileTest { @Test fun `gradle override is preserved in versions file`() { - val versionsFile = VersionsFile(gradle = Gradle.GRADLE_9_3_1) + val versionsFile = VersionsFile(gradle = Gradle.supported()[1]) - assertEquals(Gradle.GRADLE_9_3_1, versionsFile.gradle) + assertEquals(Gradle.supported()[1], versionsFile.gradle) } } diff --git a/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/writer/ProjectWriterTest.kt b/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/writer/ProjectWriterTest.kt index 3ddb10ff..996caf3a 100644 --- a/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/writer/ProjectWriterTest.kt +++ b/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/writer/ProjectWriterTest.kt @@ -1,6 +1,7 @@ package io.github.cdsap.projectgenerator import io.github.cdsap.projectgenerator.DefaultTestVersions.Companion.LATEST_GRADLE +import io.github.cdsap.projectgenerator.DefaultTestVersions.Companion.OLDEST_SUPPORTED_GRADLE import io.github.cdsap.projectgenerator.model.* import io.github.cdsap.projectgenerator.writer.GradleWrapper import io.github.cdsap.projectgenerator.writer.ProjectWriter @@ -39,7 +40,7 @@ class ProjectWriterTest { typeOfProjectRequested, TypeOfStringResources.NORMAL, false, - GradleWrapper(Gradle.GRADLE_8_14_3), + GradleWrapper(OLDEST_SUPPORTED_GRADLE), true, "awesomeapp" ) diff --git a/scripts/update_gradle_versions.sh b/scripts/update_gradle_versions.sh new file mode 100755 index 00000000..e32897bc --- /dev/null +++ b/scripts/update_gradle_versions.sh @@ -0,0 +1,142 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +RESOURCES_DIR="$ROOT_DIR/project-generator/src/main/resources" +VERSIONS_FILE="$RESOURCES_DIR/supported-gradle-versions.txt" +README_FILE="$ROOT_DIR/README.md" +TARGET_MAJORS="${TARGET_MAJORS:-9 8}" +MINORS_PER_MAJOR="${MINORS_PER_MAJOR:-3}" +VERSIONS_ENDPOINT="https://services.gradle.org/versions/all" +TEMP_DIR="$(mktemp -d)" +GRADLE_USER_HOME="$TEMP_DIR/gradle-user-home" + +cleanup() { + rm -rf "$TEMP_DIR" +} +trap cleanup EXIT + +fetch_versions() { + curl -fsSL "$VERSIONS_ENDPOINT" | python3 -c ' +import json +import os +import sys + +items = json.load(sys.stdin) +target_majors = os.environ["TARGET_MAJORS"].split() +minors_per_major = int(os.environ["MINORS_PER_MAJOR"]) +selected = [] +selected_by_minor = {major: [] for major in target_majors} +seen_minor = {major: set() for major in target_majors} + +for item in items: + version = item.get("version", "").strip() + if not version: + continue + if item.get("snapshot") or item.get("nightly") or item.get("releaseNightly") or item.get("broken"): + continue + if any(ch.isalpha() for ch in version): + continue + parts = version.split(".") + if len(parts) < 2: + continue + major = parts[0] + if major not in selected_by_minor: + continue + minor_key = ".".join(parts[:2]) + if minor_key in seen_minor[major]: + continue + selected_by_minor[major].append(version) + seen_minor[major].add(minor_key) + + if all(len(selected_by_minor[major]) >= minors_per_major for major in target_majors): + break + +for major in target_majors: + print("\n".join(selected_by_minor[major][:minors_per_major])) +' +} + +generate_wrapper_bundle() { + local version="$1" + local bundle_name="gradle_${version//./_}.zip" + local work_dir="$TEMP_DIR/$version" + + mkdir -p "$work_dir/gradle/wrapper" + cp "$ROOT_DIR/gradlew" "$ROOT_DIR/gradlew.bat" "$work_dir/" + cp "$ROOT_DIR/gradle/wrapper/gradle-wrapper.jar" "$ROOT_DIR/gradle/wrapper/gradle-wrapper.properties" "$work_dir/gradle/wrapper/" + printf 'rootProject.name = "wrapper-bundle"\n' > "$work_dir/settings.gradle.kts" + printf '\n' > "$work_dir/build.gradle.kts" + + GRADLE_USER_HOME="$GRADLE_USER_HOME" "$work_dir/gradlew" -p "$work_dir" wrapper --gradle-version "$version" --distribution-type bin + ( + cd "$work_dir" + zip -qr "$RESOURCES_DIR/$bundle_name" gradle gradlew gradlew.bat + ) +} + +prune_removed_bundles() { + local versions=("$@") + local keep_list=() + + for version in "${versions[@]}"; do + keep_list+=("gradle_${version//./_}.zip") + done + + while IFS= read -r existing; do + local base + base="$(basename "$existing")" + if [[ ! " ${keep_list[*]} " =~ [[:space:]]${base}[[:space:]] ]]; then + rm -f "$existing" + fi + done < <(find "$RESOURCES_DIR" -maxdepth 1 -name 'gradle_*.zip' -type f | sort) +} + +update_readme() { + python3 - "$README_FILE" <<'PY' +from pathlib import Path +import re + +readme = Path(__import__("sys").argv[1]) +versions = Path(__import__("os").environ["VERSIONS_FILE"]).read_text().strip().splitlines() +majors = {} +for version in versions: + major = version.split(".", 1)[0] + majors.setdefault(major, []).append(version) + +lines = [] +for major, items in majors.items(): + lines.append(f"* Gradle {major}.x") + lines.extend(f" * {version}" for version in items) + +replacement = "Gradle used, versions supported:\n" + "\n".join(lines) + "\n* The newest bundled version is the default." +content = readme.read_text() +pattern = re.compile( + r"Gradle used, versions supported:\n(?:.*\n)*?\* The newest bundled version is the default\.", + re.MULTILINE +) +updated = pattern.sub(replacement, content) +readme.write_text(updated) +PY +} + +export TARGET_MAJORS MINORS_PER_MAJOR VERSIONS_FILE +mapfile -t versions < <(fetch_versions) + +if [[ "${#versions[@]}" -eq 0 ]]; then + echo "No stable Gradle versions found from $VERSIONS_ENDPOINT" >&2 + exit 1 +fi + +printf '%s\n' "${versions[@]}" > "$VERSIONS_FILE" + +for version in "${versions[@]}"; do + echo "Generating wrapper bundle for Gradle $version" + generate_wrapper_bundle "$version" +done + +prune_removed_bundles "${versions[@]}" +update_readme + +echo "Updated supported Gradle versions:" +cat "$VERSIONS_FILE" From 314832b1042d35406d806950762ead4bb4502219 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki=20Villar?= Date: Sun, 22 Mar 2026 18:26:54 -0700 Subject: [PATCH 2/7] Update project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/model/GradleTest.kt Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --- .../io/github/cdsap/projectgenerator/model/GradleTest.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/model/GradleTest.kt b/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/model/GradleTest.kt index 95238add..de478437 100644 --- a/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/model/GradleTest.kt +++ b/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/model/GradleTest.kt @@ -7,9 +7,8 @@ import org.junit.jupiter.api.Test class GradleTest { @Test - fun `supported gradle list is capped to five entries`() { + fun `supported gradle list is capped to six entries`() { assertEquals(6, Gradle.supported().size) - } @Test fun `latest gradle is the first supported entry`() { From 44c31196ee30f5058213a44c21dc78b3de0b0f1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki=20Villar?= Date: Sun, 22 Mar 2026 18:27:02 -0700 Subject: [PATCH 3/7] Update scripts/update_gradle_versions.sh Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --- scripts/update_gradle_versions.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/update_gradle_versions.sh b/scripts/update_gradle_versions.sh index e32897bc..6b9ee889 100755 --- a/scripts/update_gradle_versions.sh +++ b/scripts/update_gradle_versions.sh @@ -25,7 +25,6 @@ import sys items = json.load(sys.stdin) target_majors = os.environ["TARGET_MAJORS"].split() minors_per_major = int(os.environ["MINORS_PER_MAJOR"]) -selected = [] selected_by_minor = {major: [] for major in target_majors} seen_minor = {major: set() for major in target_majors} From 78c7d21ca6ad8b434a440364c85f1c4e61c56ed5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki=20Villar?= Date: Sun, 22 Mar 2026 18:27:20 -0700 Subject: [PATCH 4/7] Update scripts/update_gradle_versions.sh Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --- scripts/update_gradle_versions.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/update_gradle_versions.sh b/scripts/update_gradle_versions.sh index 6b9ee889..5c06a41f 100755 --- a/scripts/update_gradle_versions.sh +++ b/scripts/update_gradle_versions.sh @@ -85,7 +85,7 @@ prune_removed_bundles() { while IFS= read -r existing; do local base base="$(basename "$existing")" - if [[ ! " ${keep_list[*]} " =~ [[:space:]]${base}[[:space:]] ]]; then + if [[ ! " ${keep_list[*]} " == *" ${base} "* ]]; then rm -f "$existing" fi done < <(find "$RESOURCES_DIR" -maxdepth 1 -name 'gradle_*.zip' -type f | sort) From 9a21c8b24fd8b75468b6d1a343cc5f7ece953846 Mon Sep 17 00:00:00 2001 From: Inaki Villar Date: Sun, 22 Mar 2026 18:41:09 -0700 Subject: [PATCH 5/7] removing jackson --- README.md | 19 +++++++----- backend/server.cjs | 4 +-- .../cli/GenerateVersionsYaml.kt | 2 +- .../github/cdsap/projectgenerator/cli/Main.kt | 17 +++++----- .../projectgenerator/cli/VersionsParser.kt | 31 +++++++++++++++++-- .../cli/GenerateProjectsCliTest.kt | 26 +++++++++++++--- .../cli/VersionsParserTest.kt | 8 ++--- project-generator/build.gradle.kts | 1 - .../cdsap/projectgenerator/model/Gradle.kt | 7 +---- 9 files changed, 77 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index 8dc53748..a81ba327 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Then, you can use the versions.yaml in the `generate-project` command: - `--classes-module-type`: fixed (default), random - `--type-of-string-resources`: normal (default), large - `--generate-unit-test`: Generate unit tests (default: false) -- `--gradle`: gradle_8_14_3, gradle_9_1_0, gradle_9_2_0, gradle_9_3_0, gradle_9_3_1, gradle_9_4_0 (default: gradle_9_4_0) +- `--gradle`: gradle_9_4_1, gradle_9_3_1, gradle_9_2_1, gradle_8_14_4, gradle_8_13, gradle_8_12_1 (default: gradle_9_4_1) - `--develocity`: Enables the Develocity build scan plugin (default: false). If --develocity-url is not specified, the build scan will be published to Gradle Scans. - `--develocity-url`: Specify Develocity URL - `--versions-file`: Path to a custom YAML file with dependency versions @@ -77,7 +77,7 @@ ProjectGenerator( typeOfStringResources = TypeOfStringResources.LARGE, layers = 5, generateUnitTest = true, - gradle = GradleWrapper(Gradle.GRADLE_9_3_1), + gradle = GradleWrapper(Gradle.fromValue("9.3.1")), projectRootPath = file.path ).write() @@ -200,12 +200,15 @@ If enabled, each module will generate n unit tests, where n is the argument `cla ``` ## Gradle Gradle used, versions supported: -* Gradle 8.14.3 -* Gradle 9.1.0 -* Gradle 9.2.0 -* Gradle 9.3.0 -* Gradle 9.3.1 -* Gradle 9.4.0 **default** +* Gradle 9.x + * 9.4.1 + * 9.3.1 + * 9.2.1 +* Gradle 8.x + * 8.14.4 + * 8.13 + * 8.12.1 +* The newest bundled version is the default. ##### Example ```kotlin diff --git a/backend/server.cjs b/backend/server.cjs index 73556c9a..db1dec7b 100644 --- a/backend/server.cjs +++ b/backend/server.cjs @@ -76,10 +76,10 @@ app.post('/api/generate', upload.single('versions-file'), async (req, res) => { `--type`, type, `--classes-module`, classesModule, `--classes-module-type`, body['classes-module-type'] || 'fixed', - `--type-of-string-resources`, body['type-of-string-resources'] || 'normal', - `--gradle`, body.gradle || 'GRADLE_9_4_0' + `--type-of-string-resources`, body['type-of-string-resources'] || 'normal' ]; + if (body.gradle) args.push('--gradle', body.gradle); // Add project name if provided if (body['project-name']) { args.push('--project-name', body['project-name']);} if (toBool(body['generate-unit-test']) || toBool(body.generateUnitTest)) args.push('--generate-unit-test'); diff --git a/cli/src/main/kotlin/io/github/cdsap/projectgenerator/cli/GenerateVersionsYaml.kt b/cli/src/main/kotlin/io/github/cdsap/projectgenerator/cli/GenerateVersionsYaml.kt index 9758f6fc..5210f5f3 100644 --- a/cli/src/main/kotlin/io/github/cdsap/projectgenerator/cli/GenerateVersionsYaml.kt +++ b/cli/src/main/kotlin/io/github/cdsap/projectgenerator/cli/GenerateVersionsYaml.kt @@ -10,7 +10,7 @@ class GenerateVersionsYaml { val file = File("versions.yaml") val versions = Versions() val content = """ - |gradle: ${Gradle.GRADLE_9_4_0.version} + |gradle: ${Gradle.latest().version} |project: | develocity: ${versions.project.develocity} | develocityUrl: ${versions.project.develocityUrl} diff --git a/cli/src/main/kotlin/io/github/cdsap/projectgenerator/cli/Main.kt b/cli/src/main/kotlin/io/github/cdsap/projectgenerator/cli/Main.kt index a70c4cac..523dcc89 100644 --- a/cli/src/main/kotlin/io/github/cdsap/projectgenerator/cli/Main.kt +++ b/cli/src/main/kotlin/io/github/cdsap/projectgenerator/cli/Main.kt @@ -42,14 +42,13 @@ class GenerateProjects : CliktCommand(name = "generate-project") { private val typeOfStringResources: String by option().choice("large", "normal").default("normal") private val layers by option().int().default(5) private val generateUnitTest by option().flag(default = false) - private val gradle: String? by option().choice( - "gradle_8_14_3", - "gradle_9_1_0", - "gradle_9_2_0", - "gradle_9_3_0", - "gradle_9_3_1", - "gradle_9_4_0" - ) + private val gradle: String? by option() + .convert { + if (!Gradle.isSupportedValue(it)) { + fail("Unknown Gradle version: $it. Supported versions: ${Gradle.supportedDisplayValues()}") + } + it + } private val develocity by option().flag(default = false) private val versionsFile by option().file() private val outputDir by option("--output-dir") @@ -151,7 +150,7 @@ internal fun resolveProjectRootPath(outputDir: String?, language: Language, proj internal fun resolveGradle(cliGradle: String?, versionsFile: VersionsFile?): Gradle { return cliGradle?.let(Gradle::fromValue) ?: versionsFile?.gradle - ?: Gradle.GRADLE_9_4_0 + ?: Gradle.latest() } class GenerateYaml : CliktCommand(name = "generate-yaml-versions") { diff --git a/cli/src/main/kotlin/io/github/cdsap/projectgenerator/cli/VersionsParser.kt b/cli/src/main/kotlin/io/github/cdsap/projectgenerator/cli/VersionsParser.kt index 3f05c109..7de22c7c 100644 --- a/cli/src/main/kotlin/io/github/cdsap/projectgenerator/cli/VersionsParser.kt +++ b/cli/src/main/kotlin/io/github/cdsap/projectgenerator/cli/VersionsParser.kt @@ -7,7 +7,13 @@ import com.fasterxml.jackson.databind.node.ObjectNode import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.dataformat.yaml.YAMLFactory import com.fasterxml.jackson.module.kotlin.KotlinModule +import io.github.cdsap.projectgenerator.model.AdditionalPlugin +import io.github.cdsap.projectgenerator.model.Android +import io.github.cdsap.projectgenerator.model.DependencyInjection import io.github.cdsap.projectgenerator.model.Gradle +import io.github.cdsap.projectgenerator.model.Kotlin +import io.github.cdsap.projectgenerator.model.Project +import io.github.cdsap.projectgenerator.model.Testing import io.github.cdsap.projectgenerator.model.VersionsFile import java.io.File @@ -28,7 +34,17 @@ object VersionsParser { val tree = mapper.readTree(file) normalizeGradleVersion(tree) normalizeProjectDefaults(tree) - return mapper.treeToValue(tree, VersionsFile::class.java) + val payload = mapper.treeToValue(tree, VersionsFilePayload::class.java) + return VersionsFile( + gradle = payload.gradle?.let(Gradle::fromValue), + kotlin = payload.kotlin, + android = payload.android, + testing = payload.testing, + project = payload.project, + di = payload.di, + additionalBuildGradleRootPlugins = payload.additionalBuildGradleRootPlugins, + additionalSettingsPlugins = payload.additionalSettingsPlugins + ) } private fun normalizeGradleVersion(tree: com.fasterxml.jackson.databind.JsonNode) { @@ -36,7 +52,7 @@ object VersionsParser { val gradleNode = tree.get("gradle") ?: return if (!gradleNode.isTextual) return - val normalized = Gradle.fromValue(gradleNode.asText()).name + val normalized = Gradle.fromValue(gradleNode.asText()).version tree.put("gradle", normalized) } @@ -49,4 +65,15 @@ object VersionsParser { projectNode.put("develocityUrl", "") } } + + private data class VersionsFilePayload( + val gradle: String? = null, + val kotlin: Kotlin = Kotlin(), + val android: Android = Android(), + val testing: Testing = Testing(), + val project: Project = Project(), + val di: DependencyInjection = DependencyInjection.HILT, + val additionalBuildGradleRootPlugins: List? = null, + val additionalSettingsPlugins: List? = null + ) } diff --git a/cli/src/test/kotlin/io/github/cdsap/projectgenerator/cli/GenerateProjectsCliTest.kt b/cli/src/test/kotlin/io/github/cdsap/projectgenerator/cli/GenerateProjectsCliTest.kt index 384bb85c..7ee56652 100644 --- a/cli/src/test/kotlin/io/github/cdsap/projectgenerator/cli/GenerateProjectsCliTest.kt +++ b/cli/src/test/kotlin/io/github/cdsap/projectgenerator/cli/GenerateProjectsCliTest.kt @@ -41,25 +41,41 @@ class GenerateProjectsCliTest { assertTrue(error.message?.contains("classes per module must be >= 10") == true) } + @Test + fun `unsupported gradle version lists supported values`() { + val error = assertThrows { + GenerateProjects().parse( + listOf( + "--modules", "6", + "--gradle", "9.9.9" + ) + ) + } + + assertTrue(error.message?.contains("Unknown Gradle version: 9.9.9") == true) + assertTrue(error.message?.contains(Gradle.supportedDisplayValues()) == true) + } + @Test fun `gradle from versions file is used when flag is absent`() { - val resolved = resolveGradle(null, VersionsFile(gradle = Gradle.GRADLE_9_3_1)) + val configured = Gradle.supported()[1] + val resolved = resolveGradle(null, VersionsFile(gradle = configured)) - assertEquals(Gradle.GRADLE_9_3_1, resolved) + assertEquals(configured, resolved) } @Test fun `gradle flag overrides versions file`() { - val resolved = resolveGradle("gradle_9_4_0", VersionsFile(gradle = Gradle.GRADLE_9_3_1)) + val resolved = resolveGradle(Gradle.latest().cliValue, VersionsFile(gradle = Gradle.oldest())) - assertEquals(Gradle.GRADLE_9_4_0, resolved) + assertEquals(Gradle.latest(), resolved) } @Test fun `latest gradle is used when neither flag nor versions file provide one`() { val resolved = resolveGradle(null, null) - assertEquals(Gradle.GRADLE_9_4_0, resolved) + assertEquals(Gradle.latest(), resolved) } @Test diff --git a/cli/src/test/kotlin/io/github/cdsap/projectgenerator/cli/VersionsParserTest.kt b/cli/src/test/kotlin/io/github/cdsap/projectgenerator/cli/VersionsParserTest.kt index 354dec66..61e214a5 100644 --- a/cli/src/test/kotlin/io/github/cdsap/projectgenerator/cli/VersionsParserTest.kt +++ b/cli/src/test/kotlin/io/github/cdsap/projectgenerator/cli/VersionsParserTest.kt @@ -148,24 +148,24 @@ class VersionsParserTest { @Test fun `parses gradle from YAML case insensitively`() { val yaml = """ - gradle: 9.3.1 + gradle: ${Gradle.supported()[1].version} """.trimIndent() val file = File(tempDir.toFile(), "versions.yaml").apply { writeText(yaml) } val versionsFile = VersionsParser.fromFile(file) - assertEquals(Gradle.GRADLE_9_3_1, versionsFile.gradle) + assertEquals(Gradle.supported()[1], versionsFile.gradle) } @Test fun `parses legacy gradle enum name from YAML for backwards compatibility`() { val yaml = """ - gradle: GRADLE_9_3_1 + gradle: ${Gradle.supported()[1].legacyEnumName} """.trimIndent() val file = File(tempDir.toFile(), "versions.yaml").apply { writeText(yaml) } val versionsFile = VersionsParser.fromFile(file) - assertEquals(Gradle.GRADLE_9_3_1, versionsFile.gradle) + assertEquals(Gradle.supported()[1], versionsFile.gradle) } } diff --git a/project-generator/build.gradle.kts b/project-generator/build.gradle.kts index 8dca860c..1dd3d9ed 100644 --- a/project-generator/build.gradle.kts +++ b/project-generator/build.gradle.kts @@ -9,7 +9,6 @@ group = "io.github.cdsap" version = "0.6.0" dependencies { - implementation(libs.jackson.annotations) implementation(libs.kotlinx.coroutines.core) testImplementation(platform(libs.junit.bom)) testImplementation(libs.junit.jupiter) diff --git a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/model/Gradle.kt b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/model/Gradle.kt index 933a5387..60ea02c0 100644 --- a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/model/Gradle.kt +++ b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/model/Gradle.kt @@ -1,11 +1,6 @@ package io.github.cdsap.projectgenerator.model -import com.fasterxml.jackson.annotation.JsonCreator -import com.fasterxml.jackson.annotation.JsonValue - -data class Gradle @JsonCreator(mode = JsonCreator.Mode.DELEGATING) constructor( - @get:JsonValue val version: String -) { +data class Gradle(val version: String) { val cliValue: String get() = "gradle_${version.replace('.', '_')}" From 067acf0a3bea9192483d31c052dc2fcc5275ec9c Mon Sep 17 00:00:00 2001 From: Inaki Villar Date: Mon, 23 Mar 2026 08:05:06 -0700 Subject: [PATCH 6/7] fixing typo in commit --- .../kotlin/io/github/cdsap/projectgenerator/model/GradleTest.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/model/GradleTest.kt b/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/model/GradleTest.kt index de478437..8e57eb45 100644 --- a/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/model/GradleTest.kt +++ b/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/model/GradleTest.kt @@ -1,7 +1,6 @@ package io.github.cdsap.projectgenerator.model import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Assertions.assertTrue import org.junit.jupiter.api.Test class GradleTest { @@ -9,6 +8,7 @@ class GradleTest { @Test fun `supported gradle list is capped to six entries`() { assertEquals(6, Gradle.supported().size) + } @Test fun `latest gradle is the first supported entry`() { From ea81ad8dd96cc52eda45e41b4acb70969378af2d Mon Sep 17 00:00:00 2001 From: Inaki Villar Date: Mon, 23 Mar 2026 08:30:30 -0700 Subject: [PATCH 7/7] using more prominent message --- .../kotlin/io/github/cdsap/projectgenerator/model/Gradle.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/model/Gradle.kt b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/model/Gradle.kt index 60ea02c0..807a3b47 100644 --- a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/model/Gradle.kt +++ b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/model/Gradle.kt @@ -51,7 +51,9 @@ data class Gradle(val version: String) { fun fromValue(value: String): Gradle { return supportedLookup[value.lowercase()] - ?: throw IllegalArgumentException("Unknown Gradle version: $value") + ?: throw IllegalArgumentException( + "Unknown Gradle version: $value. Supported versions: ${supportedDisplayValues()}" + ) } } }