diff --git a/AquaNet/src/components/StatusOverlays.svelte b/AquaNet/src/components/StatusOverlays.svelte
index 2003e933..824b7499 100644
--- a/AquaNet/src/components/StatusOverlays.svelte
+++ b/AquaNet/src/components/StatusOverlays.svelte
@@ -3,14 +3,13 @@
-
+
-
-
{isSrc ? "Source" : "Target"} Server
+
+
{t(`trans.${isSrc ? "source" : "target"}.title`)}
- {#if expectedError}
-
{expectedError}
+ {#if error}
+
{error}
{/if}
- /^https?:\/\/[a-z0-9.-]+(:\d+)?$/i.test(v)} disabled={tested} />
- /^([A-Z0-9]{11}|[A-Z0-9]{4}-[A-Z0-9]{11})$/.test(v)} disabled={tested} />
@@ -117,10 +121,10 @@
{#if !tested}
-
+
{:else}
-
-
+
+
{/if}
diff --git a/docs/dev/ongeki_dev_notes.md b/docs/dev/ongeki_dev_notes.md
new file mode 100644
index 00000000..eb0d6ad0
--- /dev/null
+++ b/docs/dev/ongeki_dev_notes.md
@@ -0,0 +1,26 @@
+# Ongeki dev notes
+
+## Item types
+
+| ItemKind | Name |
+|----------|----------------|
+| 1 | Card |
+| 2 | NamePlate |
+| 3 | Trophy |
+| 4 | LimitBreakItem |
+| 5 | AlmightyJewel |
+| 6 | Money |
+| 7 | Music |
+| 8 | ProfileVoice |
+| 9 | Present |
+| 10 | ChapterJewel |
+| 11 | GachaTicket |
+| 12 | KaikaItem |
+| 13 | ExpUpItem |
+| 14 | IntimateUpItem |
+| 15 | BookItem |
+| 16 | SystemVoice |
+| 17 | Costume |
+| 18 | Medal |
+| 19 | Attachment |
+| 20 | UnlockItem |
diff --git a/docs/dev/sinmai_dev_notes.md b/docs/dev/sinmai_dev_notes.md
index a5c84083..63c41ef6 100644
--- a/docs/dev/sinmai_dev_notes.md
+++ b/docs/dev/sinmai_dev_notes.md
@@ -20,3 +20,112 @@
| 14 | Intimate Item |
| 15 | Kaleidx Scope Key |
+## Multiplayer
+
+### Party Host/Client/Member
+
+Manager.Party.Party/**Host.cs** : Host :
+* TCP **Listen** 50100 (Accept into Member)
+* UDP Broadcast 50100
+ * Send: StartRecruit, FinishRecruit
+
+PartyLink/**Party.cs** : Party.Host : Exact same as Host.cs
+
+Manager.Party.Party/**Member.cs** : Member :
+* TCP Connect 50100
+ * Send: JoinResult, Kick, StartPlay, StartClientState, PartyMember{Info/State}, PartyPlayInfo, RequestMeasure
+ * Recv: RequestJoin, ClientState, ClientPlayInfo, UpdateMechaInfo, ResponseMeasure, FinishNews
+
+PartyLink/**Party.cs** : Party.Member : Exact same as Member.cs
+
+Manager.Party.Party/**Client.cs** : Client :
+* UDP **Listen** 50100
+ * Recv: StartRecruit, FinishRecruit
+* TCP Connect 50100
+ * Recv: JoinResult, Kick, StartPlay, StartClientState,PartyMember{Info/State}, PartyPlayInfo, RequestMeasure
+ * Send: RequestJoin, ClientState, ClientPlayInfo, UpdateMechaInfo, ResponseMeasure, FinishNews
+
+PartyLink/**Party.cs** : Party.Client : Exact same as Client.cs
+
+**Enums**
+* **ClientStateID**: {Setup, Wait, Connect, Request, Joined, FinishSetting, ToReady, BeginPlay, AllBeginPlay, Ready, Sync, Play, FinishPlay, News, NewsEnd, Result, Disconnected, Finish, Error}
+* **JoinResult**: {Success, Full, NoRecruit, Disconnect, AlreadyJoined, DifferentGroup, DifferentMusic, DifferentEventMode}
+
+**Models**
+* **MechaInfo**: IsJoin (bool), IP Address, MusicID, Entries[2], UserIDs[2], Rating[2], ...
+* **RecruitInfo**: MechaInfo, MusicID, GroupID, EventModeID, JoinNumber, PartyStance, Start time, Recv time
+* **MemberPlayInfo**: IP Address, Rankings[2], Achieves[2], Combos[2], Miss[2], ...
+* **ChainHistory**: PacketNo (int), Chain (int)
+
+**Commands**
+* **StartRecruit/FinishRecruit**: RecruitInfo
+* **JoinResult**: JoinResult (enum)
+* **RequestJoin**: MechaInfo, GroupID, EventModeID
+* **UpdateMechaInfo**: MechaInfo
+* **Kick**: RecruitInfo, KickBy {Cancel, Start, Disconnect}
+* **RequestMeasure/ResponseMeasure**: {} - Sync delay
+* **StartPlay**: MaxMeasure (long), MyMeasure (long) - Sync delay
+* **StartClientState**: ClientStateID (enum)
+* **ClientState**: ClientStateID (enum)
+* **PartyMemberInfo**: MechaInfo[2]
+* **PartyMemberState**: ClientStateID[2]
+* **PartyPlayInfo**: MemberPlayInfo[2], ChainHistory[10], Chain (int), ChainMiss (int), MaxChain (int), IsFullChain (bool), CalcStatus (int)
+* **ClientPlayInfo**: IP Address, Count, IsValids[2], Achieves[2], Combos[2], Miss[2], ...
+* **FinishNews**: IP Address, IsValids[2], GaugeClears[2], GaugeStockNums[2]
+
+### Setting Host/Client/Member
+
+> This might be for synchronizing event settings across different cabs,
+> I'm not sure if this is relevant for multiplayer.
+
+PartyLink/**Setting.cs** : Setting.**Host** :
+* TCP **Listen** 50101 (Accept into Setting.Member)
+* UDP Broadcast 50101
+ * Send: SettingHostAddress
+* UDP **Listen** 50101
+ * Recv: SettingHostAddress (Check duplicate host)
+
+PartyLink/**Setting.cs** : Setting.**Client** :
+* TCP Connect 50101
+ * Send: SettingRequest
+ * Recv: SettingResponse, HeartBeat{}
+* UDP **Listen** 50101
+ * Recv: SettingHostAddress
+
+PartyLink/**Setting.cs** : Setting.**Member** :
+* TCP Connect 50101
+ * Recv: SettingRequest, HeartBeat{}
+ * Send: SettingResponse, HeartBeat{}
+
+**Models**
+* **SettingHostAddress**: IP Address (u32), Group (int)
+* **SettingRequest**: Group (int)
+* **SettingResponse**: Group (int), Data (isEventMode, eventModeMusicCount, memberNumber)
+
+### Advertise
+
+> For finding IP addresses of other cabs and checking their latency.
+
+PartyLink/**Advertise.cs** : Advertise.Manager :
+* UDP **Listen** 50102
+ * Recv: AdvertiseRequest, AdvertiseResponse, AdvertiseGo
+* UDP Broadcast 50102
+ * Send: AdvertiseRequest, AdvertiseResponse, AdvertiseGo
+
+**Models**
+* **AdvertiseRequest**: IP Address (u32), Group (int), Kind (int)
+* **AdvertiseResponse**: IP Address (u32), Group (int), Kind (int)
+* **AdvertiseGo**: IP Address (u32), Group (int), Kind (int), MaxUsec (long), MyUsec (long)
+
+!! sendTo is not necessarily broadcast !!
+
+### DeliveryChecker
+
+PartyLink/**DeliveryChecker** : DeliveryChecker.Manager :
+* UDP **Listen** 50103
+ * Recv: AdvocateDelivery
+* UDP Broadcast 50103
+ * Send: AdvocateDelivery
+
+**Models**
+* **AdvocateDelivery**: IP Address (u32)
diff --git a/src/main/java/ext/Http.kt b/src/main/java/ext/Http.kt
index d0c73fe7..b01c7c36 100644
--- a/src/main/java/ext/Http.kt
+++ b/src/main/java/ext/Http.kt
@@ -5,18 +5,19 @@ import java.net.URI
import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
+import java.time.Duration
val client = HttpClient.newBuilder().build()
fun HttpRequest.Builder.send() = client.send(this.build(), HttpResponse.BodyHandlers.ofByteArray())
fun HttpRequest.Builder.header(pair: Pair
) = this.header(pair.first.toString(), pair.second.toString())
-fun String.request() = HttpRequest.newBuilder(URI.create(this))
+fun String.request() = HttpRequest.newBuilder(URI.create(this)).timeout(Duration.ofSeconds(10))
fun HttpRequest.Builder.post(body: Any? = null) = this.POST(when (body) {
is ByteArray -> HttpRequest.BodyPublishers.ofByteArray(body)
is String -> HttpRequest.BodyPublishers.ofString(body)
is HttpRequest.BodyPublisher -> body
- else -> throw Exception("Unsupported body type")
+ else -> throw IllegalArgumentException("Unsupported body type")
}).send()
diff --git a/src/main/java/icu/samnyan/aqua/net/transfer/AllNetClient.kt b/src/main/java/icu/samnyan/aqua/net/transfer/AllNetClient.kt
index ad4d5559..00b247cc 100644
--- a/src/main/java/icu/samnyan/aqua/net/transfer/AllNetClient.kt
+++ b/src/main/java/icu/samnyan/aqua/net/transfer/AllNetClient.kt
@@ -3,6 +3,7 @@ package icu.samnyan.aqua.net.transfer
import ext.header
import ext.post
import ext.request
+import java.net.URI
import icu.samnyan.aqua.sega.aimedb.AimeDbClient
import icu.samnyan.aqua.sega.allnet.AllNetBillingDecoder
import icu.samnyan.aqua.sega.allnet.AllNetBillingDecoder.decodeAllNetResp
@@ -23,7 +24,7 @@ class AllNetClient(val dns: String, val keychip: String, val game: String, val v
if (keychip.length == 11) keychip
else keychip.substring(0, 4) + keychip.substring(5, 12)
}
- val aime by lazy { AimeDbClient(game, keychipShort, dns.substringAfter("://").substringBefore(":").substringBefore("/")) }
+ val aime by lazy { AimeDbClient(game, keychipShort, URI(dns).host) }
// Send AllNet PowerOn request to obtain game URL
val gameUrl by lazy {
@@ -38,9 +39,6 @@ class AllNetClient(val dns: String, val keychip: String, val game: String, val v
"ip" to "127.0.0.1", "firm_ver" to "60001", "boot_ver" to "0000",
"encode" to "UTF-8", "format_ver" to "3", "hops" to "1", "token" to "2864179931"
)))
- ?.also {
- println(it)
- }
?.decodeAllNetResp()?.get("uri")
?: throw Exception("PowerOn Failed: No game URL returned")
}
diff --git a/src/main/resources/db/V1000_10__fix_unique.sql b/src/main/resources/db/40/V1000_10__fix_unique.sql
similarity index 100%
rename from src/main/resources/db/V1000_10__fix_unique.sql
rename to src/main/resources/db/40/V1000_10__fix_unique.sql
diff --git a/src/main/resources/db/V1000_11__wacca_init.sql b/src/main/resources/db/40/V1000_11__wacca_init.sql
similarity index 100%
rename from src/main/resources/db/V1000_11__wacca_init.sql
rename to src/main/resources/db/40/V1000_11__wacca_init.sql
diff --git a/src/main/resources/db/V1000_12__wacca_reinit.sql b/src/main/resources/db/40/V1000_12__wacca_reinit.sql
similarity index 100%
rename from src/main/resources/db/V1000_12__wacca_reinit.sql
rename to src/main/resources/db/40/V1000_12__wacca_reinit.sql
diff --git a/src/main/resources/db/V1000_13__wacca_cheats.sql b/src/main/resources/db/40/V1000_13__wacca_cheats.sql
similarity index 100%
rename from src/main/resources/db/V1000_13__wacca_cheats.sql
rename to src/main/resources/db/40/V1000_13__wacca_cheats.sql
diff --git a/src/main/resources/db/V1000_14__ranking_ban.sql b/src/main/resources/db/40/V1000_14__ranking_ban.sql
similarity index 100%
rename from src/main/resources/db/V1000_14__ranking_ban.sql
rename to src/main/resources/db/40/V1000_14__ranking_ban.sql
diff --git a/src/main/resources/db/V1000_15__diva_id.sql b/src/main/resources/db/40/V1000_15__diva_id.sql
similarity index 100%
rename from src/main/resources/db/V1000_15__diva_id.sql
rename to src/main/resources/db/40/V1000_15__diva_id.sql
diff --git a/src/main/resources/db/V1000_16__safety.sql b/src/main/resources/db/40/V1000_16__safety.sql
similarity index 100%
rename from src/main/resources/db/V1000_16__safety.sql
rename to src/main/resources/db/40/V1000_16__safety.sql
diff --git a/src/main/resources/db/V1000_17__wacca_last_client_id.sql b/src/main/resources/db/40/V1000_17__wacca_last_client_id.sql
similarity index 100%
rename from src/main/resources/db/V1000_17__wacca_last_client_id.sql
rename to src/main/resources/db/40/V1000_17__wacca_last_client_id.sql
diff --git a/src/main/resources/db/V1000_18__opt_out_of_leaderboard.sql b/src/main/resources/db/40/V1000_18__opt_out_of_leaderboard.sql
similarity index 100%
rename from src/main/resources/db/V1000_18__opt_out_of_leaderboard.sql
rename to src/main/resources/db/40/V1000_18__opt_out_of_leaderboard.sql
diff --git a/src/main/resources/db/V1000_19__optimization.sql b/src/main/resources/db/40/V1000_19__optimization.sql
similarity index 100%
rename from src/main/resources/db/V1000_19__optimization.sql
rename to src/main/resources/db/40/V1000_19__optimization.sql
diff --git a/src/main/resources/db/V1000_1__add_aquanet_user.sql b/src/main/resources/db/40/V1000_1__add_aquanet_user.sql
similarity index 95%
rename from src/main/resources/db/V1000_1__add_aquanet_user.sql
rename to src/main/resources/db/40/V1000_1__add_aquanet_user.sql
index af652d07..06209cb7 100644
--- a/src/main/resources/db/V1000_1__add_aquanet_user.sql
+++ b/src/main/resources/db/40/V1000_1__add_aquanet_user.sql
@@ -1,49 +1,49 @@
-CREATE TABLE aqua_net_user
-(
- au_id BIGINT AUTO_INCREMENT NOT NULL,
- username VARCHAR(32) NOT NULL,
- email VARCHAR(255) NOT NULL,
- email_confirmed BOOLEAN NOT NULL,
- pw_hash VARCHAR(255) NOT NULL,
- display_name VARCHAR(32) NULL,
- country VARCHAR(3) NULL,
- last_login BIGINT NOT NULL,
- reg_time BIGINT NOT NULL,
- profile_location VARCHAR(255) NULL,
- profile_bio VARCHAR(255) NULL,
- ghost_card BIGINT NOT NULL,
- CONSTRAINT pk_aqua_net_user PRIMARY KEY (au_id)
-);
-
-ALTER TABLE sega_card
- ADD net_user_id BIGINT NULL;
-
-ALTER TABLE sega_card
- ADD is_ghost BOOLEAN NOT NULL DEFAULT FALSE;
-
-ALTER TABLE aqua_net_user
- ADD CONSTRAINT uc_aqua_net_user_email UNIQUE (email);
-
-ALTER TABLE aqua_net_user
- ADD CONSTRAINT uc_aqua_net_user_username UNIQUE (username);
-
-ALTER TABLE sega_card
- ADD CONSTRAINT FK_SEGA_CARD_ON_NET_USER FOREIGN KEY (net_user_id) REFERENCES aqua_net_user (au_id);
-
-ALTER TABLE aqua_net_user
- ADD CONSTRAINT uc_aqua_net_user_canonical_card UNIQUE (ghost_card);
-
-ALTER TABLE aqua_net_user
- ADD CONSTRAINT FK_AQUA_NET_USER_ON_CANONICAL_CARD FOREIGN KEY (ghost_card) REFERENCES sega_card (id);
-
-CREATE TABLE aqua_net_email_confirmation
-(
- id BIGINT AUTO_INCREMENT NOT NULL,
- token VARCHAR(255) NOT NULL,
- created_at datetime NOT NULL,
- au_id BIGINT NULL,
- CONSTRAINT pk_email_confirmation PRIMARY KEY (id)
-);
-
-ALTER TABLE aqua_net_email_confirmation
+CREATE TABLE aqua_net_user
+(
+ au_id BIGINT AUTO_INCREMENT NOT NULL,
+ username VARCHAR(32) NOT NULL,
+ email VARCHAR(255) NOT NULL,
+ email_confirmed BOOLEAN NOT NULL,
+ pw_hash VARCHAR(255) NOT NULL,
+ display_name VARCHAR(32) NULL,
+ country VARCHAR(3) NULL,
+ last_login BIGINT NOT NULL,
+ reg_time BIGINT NOT NULL,
+ profile_location VARCHAR(255) NULL,
+ profile_bio VARCHAR(255) NULL,
+ ghost_card BIGINT NOT NULL,
+ CONSTRAINT pk_aqua_net_user PRIMARY KEY (au_id)
+);
+
+ALTER TABLE sega_card
+ ADD net_user_id BIGINT NULL;
+
+ALTER TABLE sega_card
+ ADD is_ghost BOOLEAN NOT NULL DEFAULT FALSE;
+
+ALTER TABLE aqua_net_user
+ ADD CONSTRAINT uc_aqua_net_user_email UNIQUE (email);
+
+ALTER TABLE aqua_net_user
+ ADD CONSTRAINT uc_aqua_net_user_username UNIQUE (username);
+
+ALTER TABLE sega_card
+ ADD CONSTRAINT FK_SEGA_CARD_ON_NET_USER FOREIGN KEY (net_user_id) REFERENCES aqua_net_user (au_id);
+
+ALTER TABLE aqua_net_user
+ ADD CONSTRAINT uc_aqua_net_user_canonical_card UNIQUE (ghost_card);
+
+ALTER TABLE aqua_net_user
+ ADD CONSTRAINT FK_AQUA_NET_USER_ON_CANONICAL_CARD FOREIGN KEY (ghost_card) REFERENCES sega_card (id);
+
+CREATE TABLE aqua_net_email_confirmation
+(
+ id BIGINT AUTO_INCREMENT NOT NULL,
+ token VARCHAR(255) NOT NULL,
+ created_at datetime NOT NULL,
+ au_id BIGINT NULL,
+ CONSTRAINT pk_email_confirmation PRIMARY KEY (id)
+);
+
+ALTER TABLE aqua_net_email_confirmation
ADD CONSTRAINT FK_EMAIL_CONFIRMATION_ON_AQUA_USER FOREIGN KEY (au_id) REFERENCES aqua_net_user (au_id);
\ No newline at end of file
diff --git a/src/main/resources/db/V1000_20__keychip_session_game_id.sql b/src/main/resources/db/40/V1000_20__keychip_session_game_id.sql
similarity index 97%
rename from src/main/resources/db/V1000_20__keychip_session_game_id.sql
rename to src/main/resources/db/40/V1000_20__keychip_session_game_id.sql
index 162c2a2a..bf9f1bc5 100644
--- a/src/main/resources/db/V1000_20__keychip_session_game_id.sql
+++ b/src/main/resources/db/40/V1000_20__keychip_session_game_id.sql
@@ -1,2 +1,2 @@
-ALTER TABLE allnet_keychip_sessions
- ADD game_id VARCHAR(4) NULL;
+ALTER TABLE allnet_keychip_sessions
+ ADD game_id VARCHAR(4) NULL;
diff --git a/src/main/resources/db/V1000_21__chusan_team.sql b/src/main/resources/db/40/V1000_21__chusan_team.sql
similarity index 100%
rename from src/main/resources/db/V1000_21__chusan_team.sql
rename to src/main/resources/db/40/V1000_21__chusan_team.sql
diff --git a/src/main/resources/db/V1000_22__chusan_unique.sql b/src/main/resources/db/40/V1000_22__chusan_unique.sql
similarity index 100%
rename from src/main/resources/db/V1000_22__chusan_unique.sql
rename to src/main/resources/db/40/V1000_22__chusan_unique.sql
diff --git a/src/main/resources/db/V1000_23__chusan_infinite_penguins.sql b/src/main/resources/db/40/V1000_23__chusan_infinite_penguins.sql
similarity index 100%
rename from src/main/resources/db/V1000_23__chusan_infinite_penguins.sql
rename to src/main/resources/db/40/V1000_23__chusan_infinite_penguins.sql
diff --git a/src/main/resources/db/V1000_24__chusan_matching_member.sql b/src/main/resources/db/40/V1000_24__chusan_matching_member.sql
similarity index 100%
rename from src/main/resources/db/V1000_24__chusan_matching_member.sql
rename to src/main/resources/db/40/V1000_24__chusan_matching_member.sql
diff --git a/src/main/resources/db/V1000_25__mai2_unique.sql b/src/main/resources/db/40/V1000_25__mai2_unique.sql
similarity index 100%
rename from src/main/resources/db/V1000_25__mai2_unique.sql
rename to src/main/resources/db/40/V1000_25__mai2_unique.sql
diff --git a/src/main/resources/db/V1000_26__chusan_matching.sql b/src/main/resources/db/40/V1000_26__chusan_matching.sql
similarity index 100%
rename from src/main/resources/db/V1000_26__chusan_matching.sql
rename to src/main/resources/db/40/V1000_26__chusan_matching.sql
diff --git a/src/main/resources/db/V1000_27__chusan_net_battle_log.sql b/src/main/resources/db/40/V1000_27__chusan_net_battle_log.sql
similarity index 100%
rename from src/main/resources/db/V1000_27__chusan_net_battle_log.sql
rename to src/main/resources/db/40/V1000_27__chusan_net_battle_log.sql
diff --git a/src/main/resources/db/V1000_28__chusan_drops_database.sql b/src/main/resources/db/40/V1000_28__chusan_drops_database.sql
similarity index 100%
rename from src/main/resources/db/V1000_28__chusan_drops_database.sql
rename to src/main/resources/db/40/V1000_28__chusan_drops_database.sql
diff --git a/src/main/resources/db/V1000_29__chusan_favorite_music_fix.sql b/src/main/resources/db/40/V1000_29__chusan_favorite_music_fix.sql
similarity index 100%
rename from src/main/resources/db/V1000_29__chusan_favorite_music_fix.sql
rename to src/main/resources/db/40/V1000_29__chusan_favorite_music_fix.sql
diff --git a/src/main/resources/db/V1000_2__secure_allnet.sql b/src/main/resources/db/40/V1000_2__secure_allnet.sql
similarity index 90%
rename from src/main/resources/db/V1000_2__secure_allnet.sql
rename to src/main/resources/db/40/V1000_2__secure_allnet.sql
index 6029c9da..f5e97d8d 100644
--- a/src/main/resources/db/V1000_2__secure_allnet.sql
+++ b/src/main/resources/db/40/V1000_2__secure_allnet.sql
@@ -1,19 +1,19 @@
-CREATE TABLE allnet_keychip_sessions
-(
- token VARCHAR(32) NOT NULL,
- au_id BIGINT NULL,
- last_use BIGINT NOT NULL,
- CONSTRAINT pk_allnet_keychip_sessions PRIMARY KEY (token)
-);
-
-ALTER TABLE aqua_net_user
- ADD keychip VARCHAR(32) NULL;
-
-ALTER TABLE aqua_net_user
- ADD CONSTRAINT uc_aqua_net_user_keychip UNIQUE (keychip);
-
-# Optimization on session cleanup
-CREATE INDEX idx_last_use ON allnet_keychip_sessions (last_use);
-
-ALTER TABLE allnet_keychip_sessions
+CREATE TABLE allnet_keychip_sessions
+(
+ token VARCHAR(32) NOT NULL,
+ au_id BIGINT NULL,
+ last_use BIGINT NOT NULL,
+ CONSTRAINT pk_allnet_keychip_sessions PRIMARY KEY (token)
+);
+
+ALTER TABLE aqua_net_user
+ ADD keychip VARCHAR(32) NULL;
+
+ALTER TABLE aqua_net_user
+ ADD CONSTRAINT uc_aqua_net_user_keychip UNIQUE (keychip);
+
+# Optimization on session cleanup
+CREATE INDEX idx_last_use ON allnet_keychip_sessions (last_use);
+
+ALTER TABLE allnet_keychip_sessions
ADD CONSTRAINT FK_ALLNET_KEYCHIP_SESSIONS_ON_AU FOREIGN KEY (au_id) REFERENCES aqua_net_user (au_id);
\ No newline at end of file
diff --git a/src/main/resources/db/V1000_30__chusan_user_misc.sql b/src/main/resources/db/40/V1000_30__chusan_user_misc.sql
similarity index 100%
rename from src/main/resources/db/V1000_30__chusan_user_misc.sql
rename to src/main/resources/db/40/V1000_30__chusan_user_misc.sql
diff --git a/src/main/resources/db/V1000_31__chusan_cascade.sql b/src/main/resources/db/40/V1000_31__chusan_cascade.sql
similarity index 100%
rename from src/main/resources/db/V1000_31__chusan_cascade.sql
rename to src/main/resources/db/40/V1000_31__chusan_cascade.sql
diff --git a/src/main/resources/db/V1000_32__maimai2_music_ranking_index.sql b/src/main/resources/db/40/V1000_32__maimai2_music_ranking_index.sql
similarity index 100%
rename from src/main/resources/db/V1000_32__maimai2_music_ranking_index.sql
rename to src/main/resources/db/40/V1000_32__maimai2_music_ranking_index.sql
diff --git a/src/main/resources/db/V1000_33__maimai2_prism.sql b/src/main/resources/db/40/V1000_33__maimai2_prism.sql
similarity index 100%
rename from src/main/resources/db/V1000_33__maimai2_prism.sql
rename to src/main/resources/db/40/V1000_33__maimai2_prism.sql
diff --git a/src/main/resources/db/V1000_34__maimai2_prism_events.sql b/src/main/resources/db/40/V1000_34__maimai2_prism_events.sql
similarity index 100%
rename from src/main/resources/db/V1000_34__maimai2_prism_events.sql
rename to src/main/resources/db/40/V1000_34__maimai2_prism_events.sql
diff --git a/src/main/resources/db/V1000_35__maimai2_optional_music_rank.sql b/src/main/resources/db/40/V1000_35__maimai2_optional_music_rank.sql
similarity index 100%
rename from src/main/resources/db/V1000_35__maimai2_optional_music_rank.sql
rename to src/main/resources/db/40/V1000_35__maimai2_optional_music_rank.sql
diff --git a/src/main/resources/db/V1000_36__maimai2_maimile_intimate.sql b/src/main/resources/db/40/V1000_36__maimai2_maimile_intimate.sql
similarity index 97%
rename from src/main/resources/db/V1000_36__maimai2_maimile_intimate.sql
rename to src/main/resources/db/40/V1000_36__maimai2_maimile_intimate.sql
index 8cb4ba59..72a68cbd 100644
--- a/src/main/resources/db/V1000_36__maimai2_maimile_intimate.sql
+++ b/src/main/resources/db/40/V1000_36__maimai2_maimile_intimate.sql
@@ -1,15 +1,15 @@
-ALTER TABLE maimai2_user_detail
- ADD COLUMN point INT DEFAULT 0,
- ADD COLUMN total_point INT DEFAULT 0;
-
-CREATE TABLE maimai2_user_intimate
-(
- id BIGINT AUTO_INCREMENT NOT NULL PRIMARY KEY,
- user_id BIGINT NULL,
- partner_id INT NOT NULL,
- intimate_level INT NOT NULL,
- intimate_count_rewarded INT NOT NULL,
- CONSTRAINT fku_maimai2_user_intimate FOREIGN KEY (user_id) REFERENCES maimai2_user_detail (id) ON DELETE CASCADE ON UPDATE CASCADE,
- CONSTRAINT unique_maimai2_user_intimate UNIQUE (user_id, partner_id)
-);
-
+ALTER TABLE maimai2_user_detail
+ ADD COLUMN point INT DEFAULT 0,
+ ADD COLUMN total_point INT DEFAULT 0;
+
+CREATE TABLE maimai2_user_intimate
+(
+ id BIGINT AUTO_INCREMENT NOT NULL PRIMARY KEY,
+ user_id BIGINT NULL,
+ partner_id INT NOT NULL,
+ intimate_level INT NOT NULL,
+ intimate_count_rewarded INT NOT NULL,
+ CONSTRAINT fku_maimai2_user_intimate FOREIGN KEY (user_id) REFERENCES maimai2_user_detail (id) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT unique_maimai2_user_intimate UNIQUE (user_id, partner_id)
+);
+
diff --git a/src/main/resources/db/V1000_37__ongeki_infinite_kaika.sql b/src/main/resources/db/40/V1000_37__ongeki_infinite_kaika.sql
similarity index 100%
rename from src/main/resources/db/V1000_37__ongeki_infinite_kaika.sql
rename to src/main/resources/db/40/V1000_37__ongeki_infinite_kaika.sql
diff --git a/src/main/resources/db/V1000_38__chusan_verse_event_121.sql b/src/main/resources/db/40/V1000_38__chusan_verse_event_121.sql
similarity index 100%
rename from src/main/resources/db/V1000_38__chusan_verse_event_121.sql
rename to src/main/resources/db/40/V1000_38__chusan_verse_event_121.sql
diff --git a/src/main/resources/db/V1000_3__pfp.sql b/src/main/resources/db/40/V1000_3__pfp.sql
similarity index 100%
rename from src/main/resources/db/V1000_3__pfp.sql
rename to src/main/resources/db/40/V1000_3__pfp.sql
diff --git a/src/main/resources/db/40/V1000_40__chusan_verse.sql b/src/main/resources/db/40/V1000_40__chusan_verse.sql
new file mode 100644
index 00000000..ea17e466
--- /dev/null
+++ b/src/main/resources/db/40/V1000_40__chusan_verse.sql
@@ -0,0 +1,17 @@
+ALTER TABLE chusan_user_data ADD COLUMN trophy_id_sub1 INT NOT NULL DEFAULT 0;
+ALTER TABLE chusan_user_data ADD COLUMN trophy_id_sub2 INT NOT NULL DEFAULT 0;
+
+CREATE TABLE chusan_user_challenge
+(
+ id BIGINT AUTO_INCREMENT NOT NULL PRIMARY KEY,
+ user_id BIGINT NOT NULL,
+ unlock_challenge_id INT NOT NULL,
+ status INT NOT NULL,
+ clear_course_id INT NOT NULL,
+ condition_type INT NOT NULL,
+ score INT NOT NULL,
+ life INT NOT NULL,
+ clear_date VARCHAR(20) NULL,
+ CONSTRAINT fku_chusan_user_challenge FOREIGN KEY (user_id) REFERENCES chusan_user_data (id) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT unique_user_challenge UNIQUE (user_id, unlock_challenge_id)
+);
diff --git a/src/main/resources/db/V1000_4__aqua_game_options.sql b/src/main/resources/db/40/V1000_4__aqua_game_options.sql
similarity index 90%
rename from src/main/resources/db/V1000_4__aqua_game_options.sql
rename to src/main/resources/db/40/V1000_4__aqua_game_options.sql
index 6a8bb1ac..877e4143 100644
--- a/src/main/resources/db/V1000_4__aqua_game_options.sql
+++ b/src/main/resources/db/40/V1000_4__aqua_game_options.sql
@@ -1,18 +1,18 @@
-CREATE TABLE aqua_game_options
-(
- id BIGINT AUTO_INCREMENT NOT NULL,
- unlock_music BIT(1) NOT NULL,
- unlock_chara BIT(1) NOT NULL,
- unlock_collectables BIT(1) NOT NULL,
- unlock_tickets BIT(1) NOT NULL,
- CONSTRAINT pk_aquagameoptions PRIMARY KEY (id)
-);
-
-ALTER TABLE aqua_net_user
- ADD game_options BIGINT NULL;
-
-ALTER TABLE aqua_net_user
- ADD CONSTRAINT uc_aquanetuser_gameoptions UNIQUE (game_options);
-
-ALTER TABLE aqua_net_user
+CREATE TABLE aqua_game_options
+(
+ id BIGINT AUTO_INCREMENT NOT NULL,
+ unlock_music BIT(1) NOT NULL,
+ unlock_chara BIT(1) NOT NULL,
+ unlock_collectables BIT(1) NOT NULL,
+ unlock_tickets BIT(1) NOT NULL,
+ CONSTRAINT pk_aquagameoptions PRIMARY KEY (id)
+);
+
+ALTER TABLE aqua_net_user
+ ADD game_options BIGINT NULL;
+
+ALTER TABLE aqua_net_user
+ ADD CONSTRAINT uc_aquanetuser_gameoptions UNIQUE (game_options);
+
+ALTER TABLE aqua_net_user
ADD CONSTRAINT FK_AQUANETUSER_ON_GAMEOPTIONS FOREIGN KEY (game_options) REFERENCES aqua_game_options (id);
\ No newline at end of file
diff --git a/src/main/resources/db/V1000_5__cleanup.sql b/src/main/resources/db/40/V1000_5__cleanup.sql
similarity index 79%
rename from src/main/resources/db/V1000_5__cleanup.sql
rename to src/main/resources/db/40/V1000_5__cleanup.sql
index 0d23d4da..a4e25ff1 100644
--- a/src/main/resources/db/V1000_5__cleanup.sql
+++ b/src/main/resources/db/40/V1000_5__cleanup.sql
@@ -1,11 +1,11 @@
-ALTER TABLE bak_maimai2_user_rate
- DROP FOREIGN KEY FKfaewgvanchzwo8um;
-
-DROP TABLE bak_diva_pv_entry;
-
-DROP TABLE bak_maimai2_user_rate;
-
-DROP TABLE hibernate_sequence;
-
-ALTER TABLE chusan_user_data
+ALTER TABLE bak_maimai2_user_rate
+ DROP FOREIGN KEY FKfaewgvanchzwo8um;
+
+DROP TABLE bak_diva_pv_entry;
+
+DROP TABLE bak_maimai2_user_rate;
+
+DROP TABLE hibernate_sequence;
+
+ALTER TABLE chusan_user_data
DROP COLUMN rank_up_challenge_results;
\ No newline at end of file
diff --git a/src/main/resources/db/V1000_6__chusan_playlog_sunplus_fields.sql b/src/main/resources/db/40/V1000_6__chusan_playlog_sunplus_fields.sql
similarity index 100%
rename from src/main/resources/db/V1000_6__chusan_playlog_sunplus_fields.sql
rename to src/main/resources/db/40/V1000_6__chusan_playlog_sunplus_fields.sql
diff --git a/src/main/resources/db/V1000_7__fix_fk_cascade.sql b/src/main/resources/db/40/V1000_7__fix_fk_cascade.sql
similarity index 100%
rename from src/main/resources/db/V1000_7__fix_fk_cascade.sql
rename to src/main/resources/db/40/V1000_7__fix_fk_cascade.sql
diff --git a/src/main/resources/db/V1000_8__fix_userid_nullability.sql b/src/main/resources/db/40/V1000_8__fix_userid_nullability.sql
similarity index 100%
rename from src/main/resources/db/V1000_8__fix_userid_nullability.sql
rename to src/main/resources/db/40/V1000_8__fix_userid_nullability.sql
diff --git a/src/main/resources/db/V1000_9__fix_mai2_nullability.sql b/src/main/resources/db/40/V1000_9__fix_mai2_nullability.sql
similarity index 100%
rename from src/main/resources/db/V1000_9__fix_mai2_nullability.sql
rename to src/main/resources/db/40/V1000_9__fix_mai2_nullability.sql
diff --git a/src/main/resources/db/80/v1000_41__chusan_verse.sql b/src/main/resources/db/80/v1000_41__chusan_verse.sql
new file mode 100644
index 00000000..86e7ef5c
--- /dev/null
+++ b/src/main/resources/db/80/v1000_41__chusan_verse.sql
@@ -0,0 +1,157 @@
+INSERT INTO chusan_game_event (id, type, end_date, start_date, enable)
+VALUES
+ (51,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (52,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (53,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (1021,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (3027,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (3217,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (3309,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (3412,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (3514,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (3623,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (3726,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (3808,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (3912,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (4010,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (4111,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (4210,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (4323,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (4513,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (4614,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (4710,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (4808,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (4909,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (4911,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (5026,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (5112,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (5216,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (5311,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (5360,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (5410,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (5513,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (5630,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (5708,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (5819,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (5920,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (6020,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (6130,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (6221,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (6319,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (6409,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (6511,9,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (11159,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (12580,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (12582,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (12584,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (12586,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (12587,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (12602,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (12611,12,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (12613,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (13060,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (13451,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (13453,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (13504,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (13506,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (13507,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (13513,12,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (13552,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (13553,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (13616,7,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (13617,7,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (13651,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15150,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15151,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15152,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15156,14,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15157,7,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15158,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15200,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15201,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15202,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15203,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15204,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15205,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15206,11,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15207,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15208,14,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15209,12,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15210,10,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15211,4,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15212,5,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15213,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15250,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15251,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15252,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15253,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15254,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15255,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15256,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15480,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15481,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15482,7,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15483,7,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (15560,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16100,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16101,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16102,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16103,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16104,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16105,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16106,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16107,16,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16108,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16109,4,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16110,5,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16111,11,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16150,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16151,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16152,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16153,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16154,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16155,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16156,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16157,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16158,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16159,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16160,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16161,14,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16162,10,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16163,11,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16164,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16165,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16200,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16201,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16202,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16203,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16204,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16205,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16206,14,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16207,5,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16208,4,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16209,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16250,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16251,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16252,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16253,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16254,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16255,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16256,12,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16257,11,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16258,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16300,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16301,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16302,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16303,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16304,2,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16305,8,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16306,1,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16307,16,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16308,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16309,10,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16310,5,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16311,4,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (16312,11,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (99000,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true),
+ (99001,3,'2029-01-01 00:00:00.000000','2019-01-01 00:00:00.000000',true);
\ No newline at end of file