-
-
Notifications
You must be signed in to change notification settings - Fork 974
Groovy 5.0.x support for Grails 8 + Spring Boot 4 #15557
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 133 commits
Commits
Show all changes
205 commits
Select commit
Hold shift + click to select a range
6b8c1ad
build: Groovy 5.0.0-SNAPSHOT and Spock 2.4-M6-groovy-4.0
matrei 88baa17
build: add `-Dspock.iKnowWhatImDoing.disableGroovyVersionCheck=true`
matrei f3edd09
fix: Groovy 5 compatibility
matrei d6b30be
test: Add `@PendingFeatureIf` for currently incompatible tests
matrei 00fcb6c
Merge remote-tracking branch 'upstream/7.0.x' into groovy-5
jdaugherty cb7d7ff
feature: allow pulling staged versions of groovy for testing
jdaugherty cd9ff39
fix: switch to groovy.transform.Generated
jdaugherty 457d6cd
chore: testing push access to grails-core
matrei c879a1c
Revert "chore: testing push access to grails-core"
matrei ace4d30
Merge branch '7.0.x' into groovy-5
matrei bd260ef
test(deps): update to Spock 2.4-groovy-5.0-SNAPSHOT
matrei 30b1611
fix(deps): update to Groovy 5.0.2
matrei 329f31e
test: remove `@PendingFeature` for passing tests
matrei 94a02b8
style: fix imports
matrei 41b8e09
Merge branch '7.0.x' into groovy-5
matrei bcbdff4
build: fix snapshot repositories
matrei efa1502
build: fix sbom issues
matrei 72bdc31
Merge branch '7.0.x' into groovy-5
matrei 554b802
fix: migrate to new groovysh api
matrei 9427f51
chore: bump Groovy to 5.0.3-SNAPSHOT
matrei c54de20
fix: more Groovy 5 compatibility changes
matrei bb53f13
chore: bump Groovy to 5.0.4-SNAPSHOT
matrei f5d023f
Merge branch '8.0.x' into groovy-5
jamesfredley 765ff5d
fix(deps): Bump Groovy to 5.0.5
matrei f64e026
test: Remove `@PendingFeature` from passing test
matrei d1b8b5f
fix(deps): Bump Grails Spring Security to 7.0.1
matrei 393bbfd
Merge remote-tracking branch 'apache/8.0.x' into groovy-5
matrei 4fe600e
Merge origin/groovy-5 into grails8-groovy5-sb4 (resolve: Groovy 5.0.5…
jamesfredley 4a27159
cherry-pick 9574fe8: Groovy 5 compatibility fixes (66 files)
jamesfredley 92b89ce
chore: remove unrelated files from previous branch
jamesfredley 5fc3bda
fix: improve Groovy 5 compatibility - replace dynamic workarounds wit…
jamesfredley bfe1492
fix: pin Groovy to 5.0.3 and resolve downstream test failures
jamesfredley a427c33
Merge remote-tracking branch 'origin/8.0.x' into grails8-groovy5-sb4
jamesfredley 28dd32f
fix(build): normalize line endings via .gitattributes
jamesfredley 7896ef8
fix(grails-gradle): skip missing input dirs in mergeTestReports
jamesfredley 708e03c
fix: bump Groovy to 5.0.5 with GROOVY-11907 workaround
jamesfredley 60c04d6
fix: clean up Groovy 5.0.3 workarounds now on 5.0.5
jamesfredley e82ea6b
fix: resolve CI failures for CodeNarc and cyclonedxBom
jamesfredley 83567f4
fix: resolve Groovy 5 CI failures for CodeNarc, controller params, an…
jamesfredley 10a450c
fix: resolve Groovy 5 deep compatibility issues for MongoDB, Hibernat…
jamesfredley a6e9881
fix: work around Groovy 5 @CompileStatic instanceof bytecode bug
jamesfredley 09a482f
chore: remove stale file
jamesfredley a191fec
fix: resolve remaining Hibernate5 config-binding and trait test failures
jamesfredley 153e14c
fix: cherry-pick Groovy 5 fixes from Groovy 6 canary branch
jamesfredley e9ddaf3
fix: resolve functional test failures for cache, async, geb, views, a…
jamesfredley 6ad040f
fix: replace DemoController method parameters with params access
jamesfredley d2441fb
fix: remove static fields from CommandLineHelper trait (GROOVY-11907)
jamesfredley ba430f3
fix: remove @Override from ProductController.index to avoid inherited…
jamesfredley 3608a76
fix: add explicit render(Map) to GrailsApplicationCommand trait
jamesfredley 43f98a1
fix: bypass named-arg render() in GenerateControllerCommand for Groovy 5
jamesfredley af8923a
Merge branch 'spring-boot-4' into grails8-groovy5-sb4
jamesfredley a0ee062
fix: convert GrailsApplicationCommand from trait to abstract class
jamesfredley 6972dd1
Merge branch 'spring-boot-4' into grails8-groovy5-sb4
jamesfredley 890c872
Merge remote-tracking branch 'origin/8.0.x' into grails8-groovy5-sb4
jamesfredley 0999a5b
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley ff5d972
Restore grails.plugin.json.builder deprecation shims for Groovy 5 build
jamesfredley 0270152
Resolve render(Map) statically in TemplateRendererImpl for Groovy 5
jamesfredley f408b2f
Derive Apache Groovy joint branch from dependencies.gradle
jamesfredley ff01c08
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley 8c5d1d1
fix(sbom): align jline license overrides with post-merge resolved ver…
jamesfredley fe05ce8
ci: make groovy-joint-workflow patch pattern-based, not line-numbered
jamesfredley ba6c488
build: bump Apache Groovy to 5.0.6-SNAPSHOT for GROOVY-11907 trait-fi…
jamesfredley 325e2fe
fix: replace File truthy-check with explicit null checks in TemplateR…
jamesfredley 39b5e58
style: use single-quoted Strings for non-interpolated messages
jamesfredley 962b41e
Merge remote-tracking branch 'origin/upgrade/gradle-9.3.1' into pr-15557
jamesfredley cf7e003
fix(grails-gradle): pin documentation deps to gradle-groovy.version (…
jamesfredley 76f6f72
Merge branch 'upgrade/gradle-9.3.1' into grails8-groovy5-sb4
jamesfredley d280308
Revert: line-ending normalization (#15557 review feedback)
jamesfredley 4040590
Restore Map[key]++ form in MongoCodecSession (#15557 review feedback)
jamesfredley edb40f2
Make NavigableMap ConfigObject conversion shallow + lazy (#15557 revi…
jamesfredley 558e132
Replace Groovy joint-build awk patches with a Gradle init-script (#15…
jamesfredley 8af5d1d
Restore static SQL methods on HibernateEntity trait (GROOVY-11907 ver…
jamesfredley a290b37
Restore GROOVY-11907 trait static members in Geb and scaffolding helpers
jamesfredley a71c8b5
Restore generic trait property coverage in ClassPropertyFetcherTests
jamesfredley 2bb0930
Remove JspTagImpl CompileDynamic workaround after grails-web-jsp comp…
jamesfredley b0c7f34
Restore interface defaults for ContainerGebConfiguration after compil…
jamesfredley b8ee60d
Re-trait ContainerGebConfiguration: interface defaults still hit Groo…
jamesfredley 0804a4f
Re-CompileDynamic ContainerSupport: GROOVY-11907 fix incomplete for i…
jamesfredley 29a9a59
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley 1bedef1
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley b1c235a
ci: add groovy-joint-build init-script to sparse-checkout list
jamesfredley 47ed74f
Restore GrailsApplicationCommand as trait; correct root-cause comments
jamesfredley e753a6e
Trim instanceof workaround to only the site that needs it; correct di…
jamesfredley 30200c7
Replace ConfigObject conversion shim with targeted root-cause fix in …
jamesfredley 878adaf
VariableScopeVisitor / @Slf4j workaround audit - keep what is needed,…
jamesfredley 057ad50
Validateable: link standalone reproducer for the TraitReceiverTransfo…
jamesfredley fa7260c
render(Map) silent no-op: note the regression also exists on Groovy 6…
jamesfredley 94f87b0
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley be0c63a
Align grails-micronaut-bom Groovy version with main bom
jamesfredley 1c723ed
Disable integrationTest for 5 test apps - Groovy 5 indy=false regress…
jamesfredley b91b576
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley 74da807
Restore ContainerSupport @CompileStatic - GROOVY-11968 fixed in 5.0.6…
jamesfredley f61aa98
Merge remote-tracking branch 'origin/8.0.x' into grails8-groovy5-sb4
jamesfredley 5ff34e8
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley 8ece2cb
Merge remote-tracking branch 'origin/8.0.x' into grails8-groovy5-sb4
jamesfredley 73bd63c
Restore instanceof shape - GROOVY-11983 fixed in 5.0.6-SNAPSHOT build…
jamesfredley ad634e0
Restore SUCCESS/FAILURE constants and revert validation drive-by
jamesfredley 65d194f
Restore IContainerGebConfiguration as interface - GROOVY-11982 fixed …
jamesfredley faef56c
render(Map) workarounds: align inline diagnoses with File-truthiness …
jamesfredley a0b7428
Merge remote-tracking branch 'origin/8.0.x' into grails8-groovy5-sb4
jamesfredley 43ad57a
Final Groovy 5 audit pass: clean up silent File-truthiness traps + st…
jamesfredley 813b131
Bump javaparser-core to 3.28.1 to align with Groovy 5.0.6-SNAPSHOT
jamesfredley 0ce8095
Fix dbmigration GroovyChangeLogSpec: drop env-dependent log-capture a…
jamesfredley bda52ad
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley a000a5f
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley 4250923
Bring in #15294 compile-static dynamic-checking test app
jdaugherty 423022f
fix(deps): pin Groovy to released 5.0.6 to unblock CI dependency reso…
jamesfredley 84b0c95
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley f1b78b7
deps: bump Apache Groovy to 5.0.7-SNAPSHOT
jamesfredley 1c411f8
Merge branch 'fix/8.0.x-merge-sb4-fallout' into grails8-groovy5-sb4
jamesfredley 6ee894f
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley 0a88ace
fix(ci): align micronaut-bom groovy version and resolve Groovy 5 STC …
jamesfredley 4ac7735
fix(test): drop generic argument from `instanceof List<FieldError>`
jamesfredley 68fe246
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley 649d7bb
fix(gsp): resolve g.taglib STC calls when the GSP page inherits getPr…
jamesfredley ef6cca8
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley fea4868
Merge remote-tracking branch 'origin/8.0.x' into grails8-groovy5-sb4
jamesfredley b73f6bc
Merge remote-tracking branch 'origin/8.0.x' into grails8-groovy5-sb4
jamesfredley db381c1
fix: drop ConfigurationBuilder @Builder-detection workaround (GROOVY-…
jamesfredley 637c6d1
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley ebcb9d8
Drop unnecessary Spock 2.4 test-config workarounds
jamesfredley 9d7149d
Revert incidental NavigableMap logger refactor; condense comments
jamesfredley 8812be9
Remove changes not required for Groovy 5 support
jamesfredley 9d944e2
Remove non-Groovy-5 source changes
jamesfredley 5c5d1a4
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley 42a9292
Re-test Groovy 5 workarounds against latest 5.0.7-SNAPSHOT
jamesfredley c8aa652
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley ae5fa97
Minimize the Groovy 5 diff to bare essentials
jamesfredley b61bd6a
Remove changes unrelated to Groovy 5
jamesfredley e24e503
Correct boot4-disabled integration test blocker comment
jamesfredley df3fd3e
Fix Groovy 5 VariableScopeVisitor NPE on null method exceptions array
jamesfredley 95b8e7f
Bump javaparser-core to 3.28.2 for Groovy 5
jamesfredley 248c75f
Allow Micronaut platform asm override in micronaut test examples
jamesfredley fb725b1
Work around Groovy 5 OptimizingStatementWriter slow-path bug for para…
jamesfredley 013becf
Bind Class-typed GORM settings via the context class loader
jamesfredley 3fbfc1a
Restore Groovy truth for the template argument in TemplateRendererImpl
jamesfredley 369d674
Revert manual controller-action parameter workarounds
jamesfredley df4750c
Pin org.ow2.asm in the micronaut BOM instead of per-app overrides
jamesfredley 9dd7985
Re-enable JsonViewTemplateResolverSpec on Groovy 5
jamesfredley c884184
Clean up the global GroovySpy in DataBindingTests
jamesfredley d67db7e
Clarify Groovy 5 workaround comments
jamesfredley caad542
Document Groovy 5 behaviour changes in the upgrade guide
jamesfredley 0c88546
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley 9b47e14
Fix GROOVY-12063 at source and correct Groovy 5 workaround records
jamesfredley abae8a1
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley e4bc0b6
Sync grails-hibernate7-micronaut-bom with sibling micronaut BOMs
jamesfredley 3bd7a28
Remove map-entry colon alignment in ConstrainedProperty.DEFAULT_MESSAGES
jamesfredley 8429505
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley d3506cf
fix: Remove Groovy 5 OptimizingStatementWriter workaround
matrei 2b83d84
Restore Groovy logging transform injection
jamesfredley 37a9a4d
Keep MethodNode exceptions non-null
jamesfredley 1eb7022
Clean Groovy 5 workaround notes
jamesfredley c3eba98
Retain active Groovy 5 regression guards
jamesfredley dc37429
Stabilize Hibernate 7 migration assertions
jamesfredley 7c1bae7
Type default view renderers generically
jamesfredley cddfec9
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley 214b620
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley 6f776b0
Avoid CodeQL autobuild for Groovy sample apps
jamesfredley 53e673f
fix: pass empty arrays to AST addMethod instead of null
matrei 078f320
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley c73ea01
Align Spring DM example with project Groovy version
jamesfredley 6eeec26
fix: Groovy 5 page-scope bean lookup in form-fields taglib
matrei 92aaae4
style: remove unused import in `ASTValidationErrorsHelper`
matrei 7b2b4f7
fix(deps): align the Groovy version for GSP in boot-gsp example
matrei 93f7295
refactor: use idiomatic Groovy for map initialization
matrei 475b6e0
build: simplify dependency version resolution
matrei da62b07
test: revert changes to `GroovyChangeLogSpec`
matrei 6432abf
fix(deps): bump `net.java.dev.jna:jna` to 5.19.1
matrei 3842442
test: revert workaround for combined `@Entity` and `@Sortable`
matrei 2102709
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley ce69720
test: cite GROOVY-12091 for the bounded generic trait workaround
jamesfredley 5fc96ae
Remove GROOVY-11985 defaultNullable() reflection workaround
jamesfredley 29f5aa8
Merge remote-tracking branch 'origin/8.0.x' into grails8-groovy5-sb4
jamesfredley 13a123a
Merge remote-tracking branch 'origin/8.0.x' into grails8-groovy5-sb4
jamesfredley 09d087c
Track GSP undeclared-variable specs as @PendingFeatureIf for GROOVY-1…
jamesfredley c68efa4
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley 78954b0
Merge remote-tracking branch 'origin/8.0.x' into grails8-groovy5-sb4
jamesfredley ce31e1f
Restore Serializable trait bound now that GROOVY-12091 is fixed
jamesfredley 40c7fe7
Make @GrailsCompileStatic controller namespaced tag calls compile on …
jamesfredley fa5d0ba
Merge remote-tracking branch 'origin/8.0.x' into grails8-groovy5-sb4
jamesfredley c8a2545
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley 3fea3cd
Fix Groovy 5 CI failures
jamesfredley 25c424b
Use Groovy 5.0.7 release
jamesfredley 62ec5e2
Handle Groovy 5 dynamic taglib receivers
jamesfredley 9774d03
Use anchored GraphQL closure helper
jamesfredley 996a779
Restore GSP undeclared-variable validation
jamesfredley 235ced2
Fix Spring DM SiteMesh resolution
jamesfredley cd1c452
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley dce6edb
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley 4cbeeae
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley 0035ca1
Track Groovy 5.0.7-SNAPSHOT and re-inline GraphQL closure-delegate he…
jamesfredley eb3c850
Mark Validateable.defaultNullable() @Virtual for Groovy 5 trait-stati…
jamesfredley 70aae5e
Reference GROOVY-12106 in the GraphQL trait-static inline workaround
jamesfredley bae7f58
Record GROOVY-12106 fixed-but-unpublished status on GraphQL trait inline
jamesfredley 12292b8
Correct GROOVY-12106 root cause on GraphQL trait inline (order-depend…
jamesfredley 037d565
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley 6d5f20e
Merge remote-tracking branch 'origin/8.0.x' into grails8-groovy5-sb4
jamesfredley 149030d
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley 3cc0f06
Remove GROOVY-12106 GraphQL trait-static inline workaround (fixed ups…
jamesfredley 402c02b
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley 7140f77
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley 24332f0
Update groovy.version from 5.0.7-SNAPSHOT to 5.0.7
jamesfredley 5c0d1df
Merge branch '8.0.x' into grails8-groovy5-sb4
jamesfredley c01b016
Remove JLine 2 (jline:jline) now that Grails 8 targets Groovy 5
jamesfredley 2966b3b
Exclude legacy JLine 2 pulled transitively by spring-boot-cli
jamesfredley File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,56 @@ | ||
| /* | ||
| * Licensed to the Apache Software Foundation (ASF) under one or more | ||
| * contributor license agreements. See the NOTICE file distributed with | ||
| * this work for additional information regarding copyright ownership. | ||
| * The ASF licenses this file to You under the Apache License, Version 2.0 | ||
| * (the "License"); you may not use this file except in compliance with | ||
| * the License. You may obtain a copy of the License at | ||
| * | ||
| * https://www.apache.org/licenses/LICENSE-2.0 | ||
| * | ||
| * Unless required by applicable law or agreed to in writing, software | ||
| * distributed under the License is distributed on an "AS IS" BASIS, | ||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| * See the License for the specific language governing permissions and | ||
| * limitations under the License. | ||
| */ | ||
|
|
||
| // Gradle init-script applied during the Groovy joint-validation build. | ||
| // Overrides Develocity and build-cache configuration injected by Groovy's own | ||
| // build-scans.gradle without modifying any of Groovy's source files. | ||
| // | ||
| // Applied via: ./gradlew --init-script <path>/groovy-joint-build.init.gradle | ||
| // | ||
| // Defensive: the pluginManager.withPlugin guard makes this a no-op when the | ||
| // Develocity plugin is absent, so the script never crashes Groovy's build. | ||
|
|
||
| settingsEvaluated { settings -> | ||
| settings.pluginManager.withPlugin('com.gradle.develocity') { | ||
| def isAuthenticated = System.getenv('GRAILS_DEVELOCITY_ACCESS_KEY') != null | ||
|
|
||
| // 'develocity' is the DSL extension registered by the plugin on Settings. | ||
| settings.develocity { | ||
| server = 'https://develocity.apache.org' | ||
|
|
||
| buildScan { | ||
| // Tag the build for visibility on develocity.apache.org. Groovy's own | ||
| // gradle/build-scans.gradle does not add any tags, so additive is safe. | ||
| tag('groovy') | ||
| tag('grails-core') | ||
| // Only publish when a valid access key is present in the environment. | ||
| publishing.onlyIf { isAuthenticated } | ||
| uploadInBackground = false | ||
| } | ||
| } | ||
|
|
||
| settings.buildCache { | ||
| local { | ||
| enabled = false | ||
| } | ||
| remote(settings.develocity.buildCache) { | ||
| push = isAuthenticated | ||
| enabled = true | ||
| } | ||
| } | ||
| } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.