tangled
alpha
login
or
join now
chadtmiller.com
/
conf-demo
2
fork
atom
Gleam Lustre Fullstack Atproto Demo App w/Slices.Network GraphQL API
2
fork
atom
overview
issues
pulls
pipelines
add attendees page
chadtmiller.com
4 months ago
819cfe6c
6a29e212
+534
-15
12 changed files
expand all
collapse all
unified
split
client
.gitignore
src
client.gleam
pages
attendees.gleam
home.gleam
ui
layout.gleam
server
.gitignore
priv
static
client.js
src
api
graphql
list_profiles.gleam
list_profiles.gql
graphql.gleam
server.gleam
shared
.gitignore
+1
client/.gitignore
···
7
7
/.lustre
8
8
/dist
9
9
/node_modules
10
10
+
.DS_Store
+109
-1
client/src/client.gleam
···
14
14
import lustre/element.{type Element}
15
15
import lustre/element/html
16
16
import modem
17
17
+
import pages/attendees
17
18
import pages/home
18
19
import pages/login
19
20
import pages/profile as profile_page
···
36
37
pub type Route {
37
38
Home
38
39
Login
40
40
+
Attendees
39
41
Profile(handle: String)
40
42
ProfileEdit(handle: String)
41
43
NotFound(uri: Uri)
···
48
50
Failed(error: String)
49
51
}
50
52
53
53
+
pub type AttendeesState {
54
54
+
AttendeesNotAsked
55
55
+
AttendeesLoading
56
56
+
AttendeesLoaded(List(Profile))
57
57
+
AttendeesFailed(error: String)
58
58
+
}
59
59
+
51
60
type Model {
52
61
Model(
53
62
route: Route,
54
63
profile_state: ProfileState,
64
64
+
attendees_state: AttendeesState,
55
65
edit_form_data: profile_edit.FormData,
56
66
current_user: option.Option(layout.User),
57
67
)
···
69
79
70
80
// Check if we need to fetch profile data on initial load
71
81
let #(model, initial_effect) = case route {
82
82
+
Attendees -> {
83
83
+
// Check if user is logged in before fetching attendees
84
84
+
case prerendered_user {
85
85
+
None -> {
86
86
+
let model =
87
87
+
Model(
88
88
+
route: route,
89
89
+
profile_state: NotAsked,
90
90
+
attendees_state: AttendeesNotAsked,
91
91
+
edit_form_data: profile_edit.init_form_data(None),
92
92
+
current_user: prerendered_user,
93
93
+
)
94
94
+
#(model, modem.push("/login", option.None, option.None))
95
95
+
}
96
96
+
Some(_) -> {
97
97
+
let model =
98
98
+
Model(
99
99
+
route: route,
100
100
+
profile_state: NotAsked,
101
101
+
attendees_state: AttendeesLoading,
102
102
+
edit_form_data: profile_edit.init_form_data(None),
103
103
+
current_user: prerendered_user,
104
104
+
)
105
105
+
#(model, fetch_attendees())
106
106
+
}
107
107
+
}
108
108
+
}
72
109
Profile(handle: _handle) -> {
73
110
// Use prerendered data if available, otherwise show loading
74
111
case prerendered_profile {
···
77
114
Model(
78
115
route: route,
79
116
profile_state: Loaded(profile_data),
117
117
+
attendees_state: AttendeesNotAsked,
80
118
edit_form_data: profile_edit.init_form_data(None),
81
119
current_user: prerendered_user,
82
120
)
···
87
125
Model(
88
126
route: route,
89
127
profile_state: Failed("Profile not found"),
128
128
+
attendees_state: AttendeesNotAsked,
90
129
edit_form_data: profile_edit.init_form_data(None),
91
130
current_user: prerendered_user,
92
131
)
···
102
141
Model(
103
142
route: route,
104
143
profile_state: Loaded(profile_data),
144
144
+
attendees_state: AttendeesNotAsked,
105
145
edit_form_data: profile_edit.init_form_data(Some(profile_data)),
106
146
current_user: prerendered_user,
107
147
)
···
112
152
Model(
113
153
route: route,
114
154
profile_state: Failed("Profile not found"),
155
155
+
attendees_state: AttendeesNotAsked,
115
156
edit_form_data: profile_edit.init_form_data(None),
116
157
current_user: prerendered_user,
117
158
)
···
124
165
Model(
125
166
route: route,
126
167
profile_state: NotAsked,
168
168
+
attendees_state: AttendeesNotAsked,
127
169
edit_form_data: profile_edit.init_form_data(None),
128
170
current_user: prerendered_user,
129
171
)
···
178
220
case uri.path_segments(uri.path) {
179
221
[] | [""] -> Home
180
222
["login"] -> Login
223
223
+
["attendees"] -> Attendees
181
224
["profile", handle] -> Profile(handle: handle)
182
225
["profile", handle, "edit"] -> ProfileEdit(handle: handle)
183
226
_ -> NotFound(uri: uri)
···
189
232
type Msg {
190
233
UserNavigatedTo(route: Route)
191
234
ProfileFetched(Result(option.Option(Profile), String))
235
235
+
AttendeesFetched(Result(List(Profile), String))
192
236
ProfileEditMsg(profile_edit.Msg)
193
237
CurrentUserFetched(Result(layout.User, String))
194
238
}
···
208
252
209
253
// Fetch profile when navigating to a profile page
210
254
case route {
255
255
+
Attendees -> {
256
256
+
io.println("Navigating to attendees")
257
257
+
// Check if user is logged in
258
258
+
case model.current_user {
259
259
+
option.None -> {
260
260
+
// Redirect to login if not authenticated
261
261
+
io.println("Not authenticated, redirecting to login")
262
262
+
#(model, modem.push("/login", option.None, option.None))
263
263
+
}
264
264
+
option.Some(_) -> {
265
265
+
let model = Model(..model, attendees_state: AttendeesLoading)
266
266
+
#(model, fetch_attendees())
267
267
+
}
268
268
+
}
269
269
+
}
211
270
Profile(handle: handle) -> {
212
271
io.println("Navigating to profile: " <> handle)
213
272
// Check if we have the correct profile loaded
···
297
356
Model(..model, profile_state: profile_state, edit_form_data: edit_form_data),
298
357
effect.none(),
299
358
)
359
359
+
}
360
360
+
361
361
+
AttendeesFetched(result) -> {
362
362
+
io.println("Attendees fetched result: " <> string.inspect(result))
363
363
+
let attendees_state = case result {
364
364
+
Ok(profiles) -> AttendeesLoaded(profiles)
365
365
+
Error(error) -> AttendeesFailed(error)
366
366
+
}
367
367
+
#(Model(..model, attendees_state: attendees_state), effect.none())
300
368
}
301
369
302
370
ProfileEditMsg(edit_msg) -> {
···
477
545
})
478
546
}
479
547
548
548
+
fn fetch_attendees() -> Effect(Msg) {
549
549
+
effect.from(fn(dispatch) {
550
550
+
let url = "/api/attendees"
551
551
+
io.println("Fetching attendees from: " <> url)
552
552
+
553
553
+
fetch_url(url)
554
554
+
|> promise.map(fn(body_result) {
555
555
+
io.println("Attendees body result: " <> string.inspect(body_result))
556
556
+
case body_result {
557
557
+
Ok(#(200, text)) -> {
558
558
+
io.println("Got 200 response, parsing JSON...")
559
559
+
json.parse(text, decode.list(profile.profile_decoder()))
560
560
+
|> result.map_error(fn(err) {
561
561
+
io.println("JSON parse error: " <> string.inspect(err))
562
562
+
"Failed to parse attendees JSON"
563
563
+
})
564
564
+
}
565
565
+
Ok(#(status, _)) -> {
566
566
+
io.println("Got status: " <> string.inspect(status))
567
567
+
Error("API request failed")
568
568
+
}
569
569
+
Error(err) -> {
570
570
+
io.println("Fetch error: " <> err)
571
571
+
Error(err)
572
572
+
}
573
573
+
}
574
574
+
})
575
575
+
|> promise.tap(fn(result) { dispatch(AttendeesFetched(result)) })
576
576
+
577
577
+
Nil
578
578
+
})
579
579
+
}
580
580
+
480
581
@external(javascript, "./client_ffi.mjs", "fetchUrl")
481
582
fn fetch_url(url: String) -> promise.Promise(Result(#(Int, String), String))
482
583
···
636
737
fn view(model: Model) -> Element(Msg) {
637
738
layout.layout(model.current_user, [
638
739
case model.route {
639
639
-
Home -> home.view()
740
740
+
Home -> home.view(model.current_user)
640
741
Login -> login.view()
742
742
+
Attendees -> {
743
743
+
case model.attendees_state {
744
744
+
AttendeesNotAsked | AttendeesLoading -> attendees.view_loading()
745
745
+
AttendeesLoaded(profiles) -> attendees.view(profiles)
746
746
+
AttendeesFailed(error) -> attendees.view_error(error)
747
747
+
}
748
748
+
}
641
749
Profile(handle: _handle) -> {
642
750
case model.profile_state {
643
751
NotAsked | Loading ->
+92
client/src/pages/attendees.gleam
···
1
1
+
import gleam/list
2
2
+
import gleam/option
3
3
+
import lustre/attribute
4
4
+
import lustre/element.{type Element}
5
5
+
import lustre/element/html
6
6
+
import shared/profile.{type Profile}
7
7
+
import ui/avatar
8
8
+
9
9
+
pub fn view(profiles: List(Profile)) -> Element(msg) {
10
10
+
html.div([attribute.class("space-y-6")], [
11
11
+
// Header
12
12
+
html.div([attribute.class("mb-6")], [
13
13
+
html.h2([attribute.class("text-2xl font-bold text-white mb-2")], [
14
14
+
html.text("Attendees"),
15
15
+
]),
16
16
+
html.p([attribute.class("text-zinc-400")], [
17
17
+
html.text("Connect with other conference attendees"),
18
18
+
]),
19
19
+
]),
20
20
+
// Profiles grid
21
21
+
html.div(
22
22
+
[attribute.class("grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4")],
23
23
+
list.map(profiles, view_profile_card),
24
24
+
),
25
25
+
])
26
26
+
}
27
27
+
28
28
+
fn view_profile_card(p: Profile) -> Element(msg) {
29
29
+
let handle = option.unwrap(p.handle, "")
30
30
+
let display_name = option.unwrap(p.display_name, p.did)
31
31
+
32
32
+
html.a(
33
33
+
[
34
34
+
attribute.href("/profile/" <> handle),
35
35
+
attribute.class(
36
36
+
"block p-4 bg-zinc-900 border border-zinc-800 rounded-lg hover:border-zinc-700 transition-colors",
37
37
+
),
38
38
+
],
39
39
+
[
40
40
+
html.div([attribute.class("flex items-start gap-4")], [
41
41
+
// Avatar
42
42
+
avatar.avatar(p.avatar_url, display_name, avatar.Md),
43
43
+
// Profile info
44
44
+
html.div([attribute.class("flex-1 min-w-0")], [
45
45
+
// Display name
46
46
+
html.h3([attribute.class("text-lg font-semibold text-white truncate")], [
47
47
+
html.text(display_name),
48
48
+
]),
49
49
+
// Handle
50
50
+
case p.handle {
51
51
+
option.Some(h) ->
52
52
+
html.p([attribute.class("text-sm text-zinc-400 truncate")], [
53
53
+
html.text("@" <> h),
54
54
+
])
55
55
+
option.None -> html.text("")
56
56
+
},
57
57
+
// Location
58
58
+
case p.home_town {
59
59
+
option.Some(ht) ->
60
60
+
html.p(
61
61
+
[
62
62
+
attribute.class(
63
63
+
"text-xs text-zinc-500 mt-1 flex items-center gap-1",
64
64
+
),
65
65
+
],
66
66
+
[
67
67
+
html.span([attribute.class("text-zinc-600")], [html.text("📍")]),
68
68
+
html.text(ht.name),
69
69
+
],
70
70
+
)
71
71
+
option.None -> html.text("")
72
72
+
},
73
73
+
]),
74
74
+
]),
75
75
+
],
76
76
+
)
77
77
+
}
78
78
+
79
79
+
pub fn view_loading() -> Element(msg) {
80
80
+
html.div([attribute.class("text-center py-12")], [
81
81
+
html.p([attribute.class("text-zinc-400")], [html.text("Loading attendees...")]),
82
82
+
])
83
83
+
}
84
84
+
85
85
+
pub fn view_error(error: String) -> Element(msg) {
86
86
+
html.div([attribute.class("text-center py-12")], [
87
87
+
html.h2([attribute.class("text-2xl font-bold text-white mb-4")], [
88
88
+
html.text("Error"),
89
89
+
]),
90
90
+
html.p([attribute.class("text-zinc-400")], [html.text(error)]),
91
91
+
])
92
92
+
}
+41
-8
client/src/pages/home.gleam
···
1
1
+
import gleam/option.{type Option}
1
2
import lustre/attribute
2
3
import lustre/element.{type Element}
3
4
import lustre/element/html
5
5
+
import ui/button
6
6
+
import ui/layout
4
7
5
5
-
pub fn view() -> Element(msg) {
6
6
-
html.div([attribute.class("space-y-8")], [
7
7
-
// Welcome section
8
8
-
html.div([], [
9
9
-
html.h2([attribute.class("text-2xl font-bold text-white mb-4")], [
10
10
-
html.text("Welcome to Atmosphere Conf"),
11
11
-
]),
12
12
-
]),
8
8
+
pub fn view(current_user: Option(layout.User)) -> Element(msg) {
9
9
+
html.div([attribute.class("flex items-center justify-center min-h-[60vh]")], [
10
10
+
// Centered card
11
11
+
html.div(
12
12
+
[
13
13
+
attribute.class(
14
14
+
"w-full max-w-md p-8 bg-zinc-900 border border-zinc-800 rounded-lg space-y-6 text-center",
15
15
+
),
16
16
+
],
17
17
+
case current_user {
18
18
+
option.Some(user) -> [
19
19
+
html.p([attribute.class("text-zinc-400 mb-4")], [
20
20
+
html.text("Welcome back! Edit your profile to connect with other attendees"),
21
21
+
]),
22
22
+
html.a([attribute.href("/profile/" <> user.handle <> "/edit")], [
23
23
+
button.button(
24
24
+
[attribute.class("w-full justify-center")],
25
25
+
button.Primary,
26
26
+
button.Md,
27
27
+
[html.text("Edit profile")],
28
28
+
),
29
29
+
]),
30
30
+
]
31
31
+
option.None -> [
32
32
+
html.p([attribute.class("text-zinc-400")], [
33
33
+
html.text("Create your profile to connect with other attendees"),
34
34
+
]),
35
35
+
html.a([attribute.href("/login")], [
36
36
+
button.button(
37
37
+
[attribute.class("w-full justify-center")],
38
38
+
button.Primary,
39
39
+
button.Md,
40
40
+
[html.text("Sign in to create your profile")],
41
41
+
),
42
42
+
]),
43
43
+
]
44
44
+
},
45
45
+
),
13
46
])
14
47
}
+11
client/src/ui/layout.gleam
···
32
32
),
33
33
// Navigation
34
34
html.div([attribute.class("flex gap-4 text-xs items-center")], [
35
35
+
case user {
36
36
+
option.Some(_) ->
37
37
+
html.a(
38
38
+
[
39
39
+
attribute.href("/attendees"),
40
40
+
attribute.class("px-2 py-1 text-zinc-500 hover:text-zinc-300 transition-colors"),
41
41
+
],
42
42
+
[html.text("Attendees")],
43
43
+
)
44
44
+
option.None -> html.text("")
45
45
+
},
35
46
view_nav(user),
36
47
]),
37
48
]),
+1
server/.gitignore
···
4
4
erl_crash.dump
5
5
*db*
6
6
.env
7
7
+
.DS_Store
+6
-6
server/priv/static/client.js
···
1
1
-
class m{withFields(J){let Q=Object.keys(this).map((U)=>(U in J)?J[U]:this[U]);return new this.constructor(...Q)}}class v6{static fromArray(J,Q){let U=Q||new r;for(let M=J.length-1;M>=0;--M)U=new Y0(J[M],U);return U}[Symbol.iterator](){return new z5(this)}toArray(){return[...this]}atLeastLength(J){let Q=this;while(J-- >0&&Q)Q=Q.tail;return Q!==void 0}hasLength(J){let Q=this;while(J-- >0&&Q)Q=Q.tail;return J===-1&&Q instanceof r}countLength(){let J=this,Q=0;while(J)J=J.tail,Q++;return Q-1}}function g(J,Q){return new Y0(J,Q)}function I(J,Q){return v6.fromArray(J,Q)}class z5{#Y;constructor(J){this.#Y=J}next(){if(this.#Y instanceof r)return{done:!0};else{let{head:J,tail:Q}=this.#Y;return this.#Y=Q,{value:J,done:!1}}}}class r extends v6{}class Y0 extends v6{constructor(J,Q){super();this.head=J,this.tail=Q}}class l7{bitSize;byteSize;bitOffset;rawBuffer;constructor(J,Q,U){if(!(J instanceof Uint8Array))throw globalThis.Error("BitArray can only be constructed from a Uint8Array");if(this.bitSize=Q??J.length*8,this.byteSize=Math.trunc((this.bitSize+7)/8),this.bitOffset=U??0,this.bitSize<0)throw globalThis.Error(`BitArray bit size is invalid: ${this.bitSize}`);if(this.bitOffset<0||this.bitOffset>7)throw globalThis.Error(`BitArray bit offset is invalid: ${this.bitOffset}`);if(J.length!==Math.trunc((this.bitOffset+this.bitSize+7)/8))throw globalThis.Error("BitArray buffer length is invalid");this.rawBuffer=J}byteAt(J){if(J<0||J>=this.byteSize)return;return d7(this.rawBuffer,this.bitOffset,J)}equals(J){if(this.bitSize!==J.bitSize)return!1;let Q=Math.trunc(this.bitSize/8);if(this.bitOffset===0&&J.bitOffset===0){for(let M=0;M<Q;M++)if(this.rawBuffer[M]!==J.rawBuffer[M])return!1;let U=this.bitSize%8;if(U){let M=8-U;if(this.rawBuffer[Q]>>M!==J.rawBuffer[Q]>>M)return!1}}else{for(let M=0;M<Q;M++){let D=d7(this.rawBuffer,this.bitOffset,M),C=d7(J.rawBuffer,J.bitOffset,M);if(D!==C)return!1}let U=this.bitSize%8;if(U){let M=d7(this.rawBuffer,this.bitOffset,Q),D=d7(J.rawBuffer,J.bitOffset,Q),C=8-U;if(M>>C!==D>>C)return!1}}return!0}get buffer(){if(G5("buffer","Use BitArray.byteAt() or BitArray.rawBuffer instead"),this.bitOffset!==0||this.bitSize%8!==0)throw new globalThis.Error("BitArray.buffer does not support unaligned bit arrays");return this.rawBuffer}get length(){if(G5("length","Use BitArray.bitSize or BitArray.byteSize instead"),this.bitOffset!==0||this.bitSize%8!==0)throw new globalThis.Error("BitArray.length does not support unaligned bit arrays");return this.rawBuffer.length}}function d7(J,Q,U){if(Q===0)return J[U]??0;else{let M=J[U]<<Q&255,D=J[U+1]>>8-Q;return M|D}}class BX{constructor(J){this.value=J}}var Q5={};function G5(J,Q){if(Q5[J])return;console.warn(`Deprecated BitArray.${J} property used in JavaScript FFI code. ${Q}.`),Q5[J]=!0}class U7 extends m{static isResult(J){return J instanceof U7}}class i extends U7{constructor(J){super();this[0]=J}isOk(){return!0}}class W8 extends U7{constructor(J){super();this[0]=J}isOk(){return!1}}function O6(J,Q){let U=[J,Q];while(U.length){let M=U.pop(),D=U.pop();if(M===D)continue;if(!F5(M)||!F5(D))return!1;if(!WG(M,D)||t3(M,D)||a3(M,D)||e3(M,D)||YG(M,D)||VG(M,D)||XG(M,D))return!1;let S=Object.getPrototypeOf(M);if(S!==null&&typeof S.equals==="function")try{if(M.equals(D))continue;else return!1}catch{}let[w,T]=o3(M),v=w(M),f=w(D);if(v.length!==f.length)return!1;for(let b of v)U.push(T(M,b),T(D,b))}return!0}function o3(J){if(J instanceof Map)return[(Q)=>Q.keys(),(Q,U)=>Q.get(U)];else{let Q=J instanceof globalThis.Error?["message"]:[];return[(U)=>[...Q,...Object.keys(U)],(U,M)=>U[M]]}}function t3(J,Q){return J instanceof Date&&(J>Q||J<Q)}function a3(J,Q){return!(J instanceof l7)&&J.buffer instanceof ArrayBuffer&&J.BYTES_PER_ELEMENT&&!(J.byteLength===Q.byteLength&&J.every((U,M)=>U===Q[M]))}function e3(J,Q){return Array.isArray(J)&&J.length!==Q.length}function YG(J,Q){return J instanceof Map&&J.size!==Q.size}function VG(J,Q){return J instanceof Set&&(J.size!=Q.size||[...J].some((U)=>!Q.has(U)))}function XG(J,Q){return J instanceof RegExp&&(J.source!==Q.source||J.flags!==Q.flags)}function F5(J){return typeof J==="object"&&J!==null}function WG(J,Q){if(typeof J!=="object"&&typeof Q!=="object"&&(!J||!Q))return!1;if([Promise,WeakSet,WeakMap,Function].some((M)=>J instanceof M))return!1;return J.constructor===Q.constructor}function m9(J,Q,U,M,D,C,S){let w=new globalThis.Error(C);w.gleam_error=J,w.file=Q,w.module=U,w.line=M,w.function=D,w.fn=D;for(let T in S)w[T]=S[T];return w}class K8 extends m{constructor(J){super();this[0]=J}}class D8 extends m{}function DX(J){if(J instanceof i){let Q=J[0];return new K8(Q)}else return new D8}function q0(J,Q){if(J instanceof K8)return J[0];else return Q}function U5(J,Q){if(J instanceof K8){let U=J[0];return Q(U)}else return J}var M5=new WeakMap,NX=new DataView(new ArrayBuffer(8)),CX=0;function OX(J){let Q=M5.get(J);if(Q!==void 0)return Q;let U=CX++;if(CX===2147483647)CX=0;return M5.set(J,U),U}function AX(J,Q){return J^Q+2654435769+(J<<6)+(J>>2)|0}function PX(J){let Q=0,U=J.length;for(let M=0;M<U;M++)Q=Math.imul(31,Q)+J.charCodeAt(M)|0;return Q}function B5(J){NX.setFloat64(0,J);let Q=NX.getInt32(0),U=NX.getInt32(4);return Math.imul(73244475,Q>>16^Q)^U}function KG(J){return PX(J.toString())}function JG(J){let Q=Object.getPrototypeOf(J);if(Q!==null&&typeof Q.hashCode==="function")try{let M=J.hashCode(J);if(typeof M==="number")return M}catch{}if(J instanceof Promise||J instanceof WeakSet||J instanceof WeakMap)return OX(J);if(J instanceof Date)return B5(J.getTime());let U=0;if(J instanceof ArrayBuffer)J=new Uint8Array(J);if(Array.isArray(J)||J instanceof Uint8Array)for(let M=0;M<J.length;M++)U=Math.imul(31,U)+B0(J[M])|0;else if(J instanceof Set)J.forEach((M)=>{U=U+B0(M)|0});else if(J instanceof Map)J.forEach((M,D)=>{U=U+AX(B0(M),B0(D))|0});else{let M=Object.keys(J);for(let D=0;D<M.length;D++){let C=M[D],S=J[C];U=U+AX(B0(S),PX(C))|0}}return U}function B0(J){if(J===null)return 1108378658;if(J===void 0)return 1108378659;if(J===!0)return 1108378657;if(J===!1)return 1108378656;switch(typeof J){case"number":return B5(J);case"string":return PX(J);case"bigint":return KG(J);case"object":return JG(J);case"symbol":return OX(J);case"function":return OX(J);default:return 0}}var v0=5,RX=Math.pow(2,v0),ZG=RX-1,QG=RX/2,GG=RX/4,n6=0,k0=1,J0=2,fY=3,IX={type:J0,bitmap:0,array:[]};function i7(J,Q){return J>>>Q&ZG}function u9(J,Q){return 1<<i7(J,Q)}function FG(J){return J-=J>>1&1431655765,J=(J&858993459)+(J>>2&858993459),J=J+(J>>4)&252645135,J+=J>>8,J+=J>>16,J&127}function wX(J,Q){return FG(J&Q-1)}function D0(J,Q,U){let M=J.length,D=Array(M);for(let C=0;C<M;++C)D[C]=J[C];return D[Q]=U,D}function zG(J,Q,U){let M=J.length,D=Array(M+1),C=0,S=0;while(C<Q)D[S++]=J[C++];D[S++]=U;while(C<M)D[S++]=J[C++];return D}function SX(J,Q){let U=J.length,M=Array(U-1),D=0,C=0;while(D<Q)M[C++]=J[D++];++D;while(D<U)M[C++]=J[D++];return M}function D5(J,Q,U,M,D,C){let S=B0(Q);if(S===M)return{type:fY,hash:S,array:[{type:n6,k:Q,v:U},{type:n6,k:D,v:C}]};let w={val:!1};return o7(HX(IX,J,S,Q,U,w),J,M,D,C,w)}function o7(J,Q,U,M,D,C){switch(J.type){case k0:return UG(J,Q,U,M,D,C);case J0:return HX(J,Q,U,M,D,C);case fY:return MG(J,Q,U,M,D,C)}}function UG(J,Q,U,M,D,C){let S=i7(U,Q),w=J.array[S];if(w===void 0)return C.val=!0,{type:k0,size:J.size+1,array:D0(J.array,S,{type:n6,k:M,v:D})};if(w.type===n6){if(O6(M,w.k)){if(D===w.v)return J;return{type:k0,size:J.size,array:D0(J.array,S,{type:n6,k:M,v:D})}}return C.val=!0,{type:k0,size:J.size,array:D0(J.array,S,D5(Q+v0,w.k,w.v,U,M,D))}}let T=o7(w,Q+v0,U,M,D,C);if(T===w)return J;return{type:k0,size:J.size,array:D0(J.array,S,T)}}function HX(J,Q,U,M,D,C){let S=u9(U,Q),w=wX(J.bitmap,S);if((J.bitmap&S)!==0){let T=J.array[w];if(T.type!==n6){let f=o7(T,Q+v0,U,M,D,C);if(f===T)return J;return{type:J0,bitmap:J.bitmap,array:D0(J.array,w,f)}}let v=T.k;if(O6(M,v)){if(D===T.v)return J;return{type:J0,bitmap:J.bitmap,array:D0(J.array,w,{type:n6,k:M,v:D})}}return C.val=!0,{type:J0,bitmap:J.bitmap,array:D0(J.array,w,D5(Q+v0,v,T.v,U,M,D))}}else{let T=J.array.length;if(T>=QG){let v=Array(32),f=i7(U,Q);v[f]=HX(IX,Q+v0,U,M,D,C);let b=0,o=J.bitmap;for(let J8=0;J8<32;J8++){if((o&1)!==0){let Y8=J.array[b++];v[J8]=Y8}o=o>>>1}return{type:k0,size:T+1,array:v}}else{let v=zG(J.array,w,{type:n6,k:M,v:D});return C.val=!0,{type:J0,bitmap:J.bitmap|S,array:v}}}}function MG(J,Q,U,M,D,C){if(U===J.hash){let S=LX(J,M);if(S!==-1){if(J.array[S].v===D)return J;return{type:fY,hash:U,array:D0(J.array,S,{type:n6,k:M,v:D})}}let w=J.array.length;return C.val=!0,{type:fY,hash:U,array:D0(J.array,w,{type:n6,k:M,v:D})}}return o7({type:J0,bitmap:u9(J.hash,Q),array:[J]},Q,U,M,D,C)}function LX(J,Q){let U=J.array.length;for(let M=0;M<U;M++)if(O6(Q,J.array[M].k))return M;return-1}function b9(J,Q,U,M){switch(J.type){case k0:return qG(J,Q,U,M);case J0:return BG(J,Q,U,M);case fY:return DG(J,M)}}function qG(J,Q,U,M){let D=i7(U,Q),C=J.array[D];if(C===void 0)return;if(C.type!==n6)return b9(C,Q+v0,U,M);if(O6(M,C.k))return C;return}function BG(J,Q,U,M){let D=u9(U,Q);if((J.bitmap&D)===0)return;let C=wX(J.bitmap,D),S=J.array[C];if(S.type!==n6)return b9(S,Q+v0,U,M);if(O6(M,S.k))return S;return}function DG(J,Q){let U=LX(J,Q);if(U<0)return;return J.array[U]}function jX(J,Q,U,M){switch(J.type){case k0:return NG(J,Q,U,M);case J0:return CG(J,Q,U,M);case fY:return OG(J,M)}}function NG(J,Q,U,M){let D=i7(U,Q),C=J.array[D];if(C===void 0)return J;let S=void 0;if(C.type===n6){if(!O6(C.k,M))return J}else if(S=jX(C,Q+v0,U,M),S===C)return J;if(S===void 0){if(J.size<=GG){let w=J.array,T=Array(J.size-1),v=0,f=0,b=0;while(v<D){let o=w[v];if(o!==void 0)T[f]=o,b|=1<<v,++f;++v}++v;while(v<w.length){let o=w[v];if(o!==void 0)T[f]=o,b|=1<<v,++f;++v}return{type:J0,bitmap:b,array:T}}return{type:k0,size:J.size-1,array:D0(J.array,D,S)}}return{type:k0,size:J.size,array:D0(J.array,D,S)}}function CG(J,Q,U,M){let D=u9(U,Q);if((J.bitmap&D)===0)return J;let C=wX(J.bitmap,D),S=J.array[C];if(S.type!==n6){let w=jX(S,Q+v0,U,M);if(w===S)return J;if(w!==void 0)return{type:J0,bitmap:J.bitmap,array:D0(J.array,C,w)};if(J.bitmap===D)return;return{type:J0,bitmap:J.bitmap^D,array:SX(J.array,C)}}if(O6(M,S.k)){if(J.bitmap===D)return;return{type:J0,bitmap:J.bitmap^D,array:SX(J.array,C)}}return J}function OG(J,Q){let U=LX(J,Q);if(U<0)return J;if(J.array.length===1)return;return{type:fY,hash:J.hash,array:SX(J.array,U)}}function N5(J,Q){if(J===void 0)return;let U=J.array,M=U.length;for(let D=0;D<M;D++){let C=U[D];if(C===void 0)continue;if(C.type===n6){Q(C.v,C.k);continue}N5(C,Q)}}class s6{static fromObject(J){let Q=Object.keys(J),U=s6.new();for(let M=0;M<Q.length;M++){let D=Q[M];U=U.set(D,J[D])}return U}static fromMap(J){let Q=s6.new();return J.forEach((U,M)=>{Q=Q.set(M,U)}),Q}static new(){return new s6(void 0,0)}constructor(J,Q){this.root=J,this.size=Q}get(J,Q){if(this.root===void 0)return Q;let U=b9(this.root,0,B0(J),J);if(U===void 0)return Q;return U.v}set(J,Q){let U={val:!1},M=this.root===void 0?IX:this.root,D=o7(M,0,B0(J),J,Q,U);if(D===this.root)return this;return new s6(D,U.val?this.size+1:this.size)}delete(J){if(this.root===void 0)return this;let Q=jX(this.root,0,B0(J),J);if(Q===this.root)return this;if(Q===void 0)return s6.new();return new s6(Q,this.size-1)}has(J){if(this.root===void 0)return!1;return b9(this.root,0,B0(J),J)!==void 0}entries(){if(this.root===void 0)return[];let J=[];return this.forEach((Q,U)=>J.push([U,Q])),J}forEach(J){N5(this.root,J)}hashCode(){let J=0;return this.forEach((Q,U)=>{J=J+AX(B0(Q),B0(U))|0}),J}equals(J){if(!(J instanceof s6)||this.size!==J.size)return!1;try{return this.forEach((Q,U)=>{if(!O6(J.get(U,!Q),Q))throw q5}),!0}catch(Q){if(Q===q5)return!1;throw Q}}}var q5=Symbol();class A6 extends m{}class S6 extends m{}class r0 extends m{}function xX(J,Q){if(J>Q)return J;else return Q}class _6 extends m{}class M7 extends m{}function t7(J,Q){while(!0){let U=J,M=Q;if(U instanceof r)return M;else{let D=U.head;J=U.tail,Q=g(D,M)}}}function e8(J){return t7(J,I([]))}function wG(J,Q,U){while(!0){let M=J,D=Q,C=U;if(M instanceof r)return e8(C);else{let{head:S,tail:w}=M,T;if(D(S))T=g(S,C);else T=C;let f=T;J=w,Q=D,U=f}}}function S5(J,Q){return wG(J,Q,I([]))}function HG(J,Q,U){while(!0){let M=J,D=Q,C=U;if(M instanceof r)return e8(C);else{let{head:S,tail:w}=M,T,v=D(S);if(v instanceof i){let b=v[0];T=g(b,C)}else T=C;let f=T;J=w,Q=D,U=f}}}function q7(J,Q){return HG(J,Q,I([]))}function LG(J,Q,U){while(!0){let M=J,D=Q,C=U;if(M instanceof r)return e8(C);else{let S=M.head;J=M.tail,Q=D,U=g(D(S),C)}}}function $6(J,Q){return LG(J,Q,I([]))}function jG(J,Q,U){while(!0){let M=J,D=Q,C=U;if(D<=0)return e8(C);else if(M instanceof r)return e8(C);else{let w=M.head;J=M.tail,Q=D-1,U=g(w,C)}}}function EX(J,Q){return jG(J,Q,I([]))}function TG(J,Q){while(!0){let U=J,M=Q;if(U instanceof r)return M;else{let D=U.head;J=U.tail,Q=g(D,M)}}}function I0(J,Q){return TG(e8(J),Q)}function c9(J,Q){return g(Q,J)}function r6(J,Q,U){while(!0){let M=J,D=Q,C=U;if(M instanceof r)return D;else{let S=M.head;J=M.tail,Q=C(D,S),U=C}}}function xG(J,Q,U,M,D,C){while(!0){let S=J,w=Q,T=U,v=M,f=D,b=C,o=g(f,T);if(S instanceof r)if(v instanceof _6)return g(e8(o),b);else return g(o,b);else{let{head:J8,tail:Y8}=S,G8=w(f,J8);if(v instanceof _6)if(G8 instanceof A6)J=Y8,Q=w,U=o,M=v,D=J8,C=b;else if(G8 instanceof S6)J=Y8,Q=w,U=o,M=v,D=J8,C=b;else{let e;if(v instanceof _6)e=g(e8(o),b);else e=g(o,b);let N8=e;if(Y8 instanceof r)return g(I([J8]),N8);else{let{head:V8,tail:F8}=Y8,j8,u=w(J8,V8);if(u instanceof A6)j8=new _6;else if(u instanceof S6)j8=new _6;else j8=new M7;let q8=j8;J=F8,Q=w,U=I([J8]),M=q8,D=V8,C=N8}}else if(G8 instanceof A6){let e;if(v instanceof _6)e=g(e8(o),b);else e=g(o,b);let N8=e;if(Y8 instanceof r)return g(I([J8]),N8);else{let{head:V8,tail:F8}=Y8,j8,u=w(J8,V8);if(u instanceof A6)j8=new _6;else if(u instanceof S6)j8=new _6;else j8=new M7;let q8=j8;J=F8,Q=w,U=I([J8]),M=q8,D=V8,C=N8}}else if(G8 instanceof S6){let e;if(v instanceof _6)e=g(e8(o),b);else e=g(o,b);let N8=e;if(Y8 instanceof r)return g(I([J8]),N8);else{let{head:V8,tail:F8}=Y8,j8,u=w(J8,V8);if(u instanceof A6)j8=new _6;else if(u instanceof S6)j8=new _6;else j8=new M7;let q8=j8;J=F8,Q=w,U=I([J8]),M=q8,D=V8,C=N8}}else J=Y8,Q=w,U=o,M=v,D=J8,C=b}}}function EG(J,Q,U,M){while(!0){let D=J,C=Q,S=U,w=M;if(D instanceof r)return t7(C,w);else if(C instanceof r)return t7(D,w);else{let{head:T,tail:v}=D,f=C.head,b=C.tail,o=S(T,f);if(o instanceof A6)J=v,Q=C,U=S,M=g(T,w);else if(o instanceof S6)J=D,Q=b,U=S,M=g(f,w);else J=D,Q=b,U=S,M=g(f,w)}}}function yG(J,Q,U){while(!0){let M=J,D=Q,C=U;if(M instanceof r)return e8(C);else{let S=M.tail;if(S instanceof r){let w=M.head;return e8(g(e8(w),C))}else{let w=M.head,T=S.head,v=S.tail,f=EG(w,T,D,I([]));J=v,Q=D,U=g(f,C)}}}}function kG(J,Q,U,M){while(!0){let D=J,C=Q,S=U,w=M;if(D instanceof r)return t7(C,w);else if(C instanceof r)return t7(D,w);else{let{head:T,tail:v}=D,f=C.head,b=C.tail,o=S(T,f);if(o instanceof A6)J=D,Q=b,U=S,M=g(f,w);else if(o instanceof S6)J=v,Q=C,U=S,M=g(T,w);else J=v,Q=C,U=S,M=g(T,w)}}}function vG(J,Q,U){while(!0){let M=J,D=Q,C=U;if(M instanceof r)return e8(C);else{let S=M.tail;if(S instanceof r){let w=M.head;return e8(g(e8(w),C))}else{let w=M.head,T=S.head,v=S.tail,f=kG(w,T,D,I([]));J=v,Q=D,U=g(f,C)}}}}function _G(J,Q,U){while(!0){let M=J,D=Q,C=U;if(M instanceof r)return M;else if(D instanceof _6)if(M.tail instanceof r)return M.head;else J=yG(M,C,I([])),Q=new M7,U=C;else if(M.tail instanceof r){let w=M.head;return e8(w)}else J=vG(M,C,I([])),Q=new _6,U=C}}function yX(J,Q){if(J instanceof r)return J;else{let U=J.tail;if(U instanceof r)return J;else{let M=J.head,D=U.head,C=U.tail,S,w=Q(M,D);if(w instanceof A6)S=new _6;else if(w instanceof S6)S=new _6;else S=new M7;let T=S,v=xG(C,Q,I([M]),T,D,I([]));return _G(v,new _6,Q)}}}function P5(J,Q){while(!0){let U=J,M=Q;if(U instanceof r)return;else{let{head:D,tail:C}=U;M(D),J=C,Q=M}}}function fG(J,Q){while(!0){let U=J,M=Q;if(U instanceof r)return M;else{let D=U.head;J=U.tail,Q=M+D}}}function e7(J){return fG(J,"")}function mG(J,Q,U){while(!0){let M=J,D=Q,C=U;if(M instanceof r)return C;else{let S=M.head;J=M.tail,Q=D,U=C+D+S}}}function $0(J,Q){if(J instanceof r)return"";else{let{head:U,tail:M}=J;return mG(M,Q,U)}}function w5(J){let U=j5(J);return _X(U)}function mY(J,Q){if(Q==="")return kX(J);else{let M=z6(J),D=vX(M,Q);return $6(D,z6)}}function H5(J){let Q=L5(J);if(Q instanceof i){let U=Q[0][0];return new i(U)}else return Q}function Y9(J){let U=T5(J);return z6(U)}class h0 extends m{constructor(J,Q,U){super();this.expected=J,this.found=Q,this.path=U}}class w0 extends m{constructor(J){super();this.function=J}}function H0(J,Q){let U=Q.function(J),M,D;if(M=U[0],D=U[1],D instanceof r)return new i(M);else return new W8(D)}function P6(J){return new w0((Q)=>{return[J,I([])]})}function rG(J){return[J,I([])]}function d0(J,Q){return new w0((U)=>{let M=J.function(U),D,C;return D=M[0],C=M[1],[Q(D),C]})}function dG(J,Q,U){while(!0){let M=J,D=Q,C=U;if(C instanceof r)return D;else{let{head:S,tail:w}=C,T=S.function(M),v,f;if(v=T,f=T[1],f instanceof r)return v;else J=M,Q=D,U=w}}}function $X(J,Q){return new w0((U)=>{let M=J.function(U),D,C;if(D=M,C=M[1],C instanceof r)return D;else return dG(U,D,Q)})}function N0(J){return new w0((Q)=>{if(h5(Q))return[new D8,I([])];else{let M=J.function(Q),D,C;return D=M[0],C=M[1],[new K8(D),C]}})}var d9=new w0(rG);function E5(J,Q,U){let M=U(J);if(M instanceof i)return[M[0],I([])];else return[M[0],I([new h0(Q,l0(J),I([]))])]}function lG(J){return E5(J,"Int",_5)}var C7=new w0(lG);function iG(J){return E5(J,"String",$5)}var r8=new w0(iG);function X9(J){return new w0((Q)=>{return v5(Q,J.function,(U,M)=>{return V9(U,I([M]))},0,I([]))})}function V9(J,Q){let U=$X(r8,I([(()=>{return d0(C7,Z0)})()])),M=$6(Q,(C)=>{let S=z6(C),w=H0(S,U);if(w instanceof i)return w[0];else return"<"+l0(S)+">"}),D=$6(J[1],(C)=>{return new h0(C.expected,C.found,I0(M,C.path))});return[J[0],D]}function y5(J,Q,U,M,D){while(!0){let C=J,S=Q,w=U,T=M,v=D;if(C instanceof r){let b=w(T);return V9(b,e8(S))}else{let{head:f,tail:b}=C,o=k5(T,f);if(o instanceof i){let J8=o[0];if(J8 instanceof K8){let Y8=J8[0];J=b,Q=g(f,S),U=w,M=Y8,D=v}else return v(T,g(f,S))}else{let J8=o[0],Y8=w(T),G8;G8=Y8[0];let e=[G8,I([new h0(J8,l0(T),I([]))])];return V9(e,e8(S))}}}}function l9(J,Q,U){return new w0((M)=>{let D=y5(J,I([]),Q.function,M,(f,b)=>{let o=Q.function(f),J8;J8=o[0];let Y8=[J8,I([new h0("Field","Nothing",I([]))])];return V9(Y8,e8(b))}),C,S;C=D[0],S=D[1];let w=U(C).function(M),T,v;return T=w[0],v=w[1],[T,I0(S,v)]})}function hX(J,Q){return new w0((U)=>{return y5(J,I([]),Q.function,U,(M,D)=>{let C=Q.function(M),S;S=C[0];let w=[S,I([new h0("Field","Nothing",I([]))])];return V9(w,e8(D))})})}function b8(J,Q,U){return l9(I([J]),Q,U)}var gX=void 0,f5={};function z6(J){return J}function p9(J){if(/^[-+]?(\d+)\.(\d+)([eE][-+]?\d+)?$/.test(J))return new i(parseFloat(J));else return new W8(gX)}function Z0(J){return J.toString()}function r9(J){if(J==="")return 0;let Q=fX(J);if(Q){let U=0;for(let M of Q)U++;return U}else return J.match(/./gsu).length}function kX(J){let Q=fX(J);if(Q)return v6.fromArray(Array.from(Q).map((U)=>U.segment));else return v6.fromArray(J.match(/./gsu))}var m5=void 0;function fX(J){if(globalThis.Intl&&Intl.Segmenter)return m5||=new Intl.Segmenter,m5.segment(J)[Symbol.iterator]()}function L5(J){let Q,U=fX(J);if(U)Q=U.next().value?.segment;else Q=J.match(/./su)?.[0];if(Q)return new i([Q,J.slice(Q.length)]);else return new W8(gX)}function s9(J){return J.toUpperCase()}function vX(J,Q){return v6.fromArray(J.split(Q))}function N7(J,Q){return J.startsWith(Q)}var b5=[" ","\t",`
2
2
-
`,"\v","\f","\r"," ","\u2028","\u2029"].join(""),oG=new RegExp(`^[${b5}]*`),tG=new RegExp(`[${b5}]*$`);function j5(J){return J.replace(oG,"")}function _X(J){return J.replace(tG,"")}function N6(J){console.log(J)}function B7(){return s6.new()}function u5(J){return v6.fromArray(J.entries())}function SY(J,Q){let U=J.get(Q,f5);if(U===f5)return new W8(gX);return new i(U)}function p5(J,Q,U){return U.set(J,Q)}function l0(J){if(typeof J==="string")return"String";else if(typeof J==="boolean")return"Bool";else if(J instanceof U7)return"Result";else if(J instanceof v6)return"List";else if(J instanceof l7)return"BitArray";else if(J instanceof s6)return"Dict";else if(Number.isInteger(J))return"Int";else if(Array.isArray(J))return"Array";else if(typeof J==="number")return"Float";else if(J===null)return"Nil";else if(J===void 0)return"Nil";else{let Q=typeof J;return Q.charAt(0).toUpperCase()+Q.slice(1)}}function T5(J){return new c5().inspect(J)}function A5(J){let Q=J.toString().replace("+","");if(Q.indexOf(".")>=0)return Q;else{let U=Q.indexOf("e");if(U>=0)return Q.slice(0,U)+".0"+Q.slice(U);else return Q+".0"}}class c5{#Y=new Set;inspect(J){let Q=typeof J;if(J===!0)return"True";if(J===!1)return"False";if(J===null)return"//js(null)";if(J===void 0)return"Nil";if(Q==="string")return this.#J(J);if(Q==="bigint"||Number.isInteger(J))return J.toString();if(Q==="number")return A5(J);if(J instanceof BX)return this.#Q(J);if(J instanceof l7)return this.#G(J);if(J instanceof RegExp)return`//js(${J})`;if(J instanceof Date)return`//js(Date("${J.toISOString()}"))`;if(J instanceof globalThis.Error)return`//js(${J.toString()})`;if(J instanceof Function){let M=[];for(let D of Array(J.length).keys())M.push(String.fromCharCode(D+97));return`//fn(${M.join(", ")}) { ... }`}if(this.#Y.size===this.#Y.add(J).size)return"//js(circular reference)";let U;if(Array.isArray(J))U=`#(${J.map((M)=>this.inspect(M)).join(", ")})`;else if(J instanceof v6)U=this.#V(J);else if(J instanceof m)U=this.#X(J);else if(J instanceof s6)U=this.#W(J);else if(J instanceof Set)return`//js(Set(${[...J].map((M)=>this.inspect(M)).join(", ")}))`;else U=this.#K(J);return this.#Y.delete(J),U}#K(J){let Q=Object.getPrototypeOf(J)?.constructor?.name||"Object",U=[];for(let C of Object.keys(J))U.push(`${this.inspect(C)}: ${this.inspect(J[C])}`);let M=U.length?" "+U.join(", ")+" ":"";return`//js(${Q==="Object"?"":Q+" "}{${M}})`}#W(J){let Q="dict.from_list([",U=!0;return J.forEach((M,D)=>{if(!U)Q=Q+", ";Q=Q+"#("+this.inspect(D)+", "+this.inspect(M)+")",U=!1}),Q+"])"}#X(J){let Q=Object.keys(J).map((U)=>{let M=this.inspect(J[U]);return isNaN(parseInt(U))?`${U}: ${M}`:M}).join(", ");return Q?`${J.constructor.name}(${Q})`:J.constructor.name}#V(J){if(J instanceof r)return"[]";let Q='charlist.from_string("',U="[",M=J;while(M instanceof Y0){let D=M.head;if(M=M.tail,U!=="[")U+=", ";if(U+=this.inspect(D),Q)if(Number.isInteger(D)&&D>=32&&D<=126)Q+=String.fromCharCode(D);else Q=null}if(Q)return Q+'")';else return U+"]"}#J(J){let Q='"';for(let U=0;U<J.length;U++){let M=J[U];switch(M){case`
3
3
-
`:Q+="\\n";break;case"\r":Q+="\\r";break;case"\t":Q+="\\t";break;case"\f":Q+="\\f";break;case"\\":Q+="\\\\";break;case'"':Q+="\\\"";break;default:if(M<" "||M>"~"&&M<" ")Q+="\\u{"+M.charCodeAt(0).toString(16).toUpperCase().padStart(4,"0")+"}";else Q+=M}}return Q+='"',Q}#Q(J){return`//utfcodepoint(${String.fromCodePoint(J.value)})`}#G(J){if(J.bitSize===0)return"<<>>";let Q="<<";for(let U=0;U<J.byteSize-1;U++)Q+=J.byteAt(U).toString(),Q+=", ";if(J.byteSize*8===J.bitSize)Q+=J.byteAt(J.byteSize-1).toString();else{let U=J.bitSize%8;Q+=J.byteAt(J.byteSize-1)>>8-U,Q+=`:size(${U})`}return Q+=">>",Q}}function k5(J,Q){if(J instanceof s6||J instanceof WeakMap||J instanceof Map){let M={},D=J.get(Q,M);if(D===M)return new i(new D8);return new i(new K8(D))}let U=Number.isInteger(Q);if(U&&Q>=0&&Q<8&&J instanceof v6){let M=0;for(let D of J){if(M===Q)return new i(new K8(D));M++}return new W8("Indexable")}if(U&&Array.isArray(J)||J&&typeof J==="object"||J&&Object.getPrototypeOf(J)===Object.prototype){if(Q in J)return new i(new K8(J[Q]));return new i(new D8)}return new W8(U?"Indexable":"Dict")}function v5(J,Q,U,M,D){if(!(J instanceof v6||Array.isArray(J))){let S=new h0("List",l0(J),D);return[D,v6.fromArray([S])]}let C=[];for(let S of J){let w=Q(S),[T,v]=w;if(v instanceof Y0){let[f,b]=U(w,M.toString());return[D,b]}C.push(T),M++}return[v6.fromArray(C),D]}function _5(J){if(Number.isInteger(J))return new i(J);return new W8(0)}function $5(J){if(typeof J==="string")return new i(J);return new W8("")}function h5(J){return J===null||J===void 0}function a7(J,Q,U){return p5(Q,U,J)}function aG(J,Q){while(!0){let U=J,M=Q;if(U instanceof r)return M;else{let D=U.head;J=U.tail,Q=g(D,M)}}}function eG(J,Q){while(!0){let U=J,M=Q;if(U instanceof r)return aG(M,I([]));else{let D=U.tail,C=U.head[0];J=D,Q=g(C,M)}}}function W9(J){return eG(u5(J),I([]))}class bY{constructor(J){this.promise=J}static wrap(J){return J instanceof Promise?new bY(J):J}static unwrap(J){return J instanceof bY?J.promise:J}}function O7(J){return Promise.resolve(bY.wrap(J))}function A7(J,Q){return J.then((U)=>Q(bY.unwrap(U)))}function i0(J,Q){return J.then((U)=>bY.wrap(Q(bY.unwrap(U))))}function bX(J,Q){return i0(J,(M)=>{return Q(M),M})}function S7(J,Q){if(J instanceof i){let U=J[0];return new i(Q(U))}else return J}function J9(J,Q){if(J instanceof i)return J;else{let U=J[0];return new W8(Q(U))}}function uY(J,Q){if(J instanceof i){let U=J[0];return Q(U)}else return J}function P7(J,Q){if(J instanceof i)return J;else return new W8(Q)}function s5(J){return q7(J,(Q)=>{return Q})}function uX(J){return JSON.stringify(J)}function n5(J){return Object.fromEntries(J)}function R7(J){return J}function r5(J){return J.toArray()}function d5(J){try{let Q=JSON.parse(J);return new i(Q)}catch(Q){return new W8(WF(Q,J))}}function WF(J,Q){if(KF(J))return new pX;return JF(J,Q)}function KF(J){return/((unexpected (end|eof))|(end of data)|(unterminated string)|(json( parse error|\.parse)\: expected '(\:|\}|\])'))/i.test(J.message)}function JF(J,Q){let U=[ZF,QF,FF,GF];for(let M of U){let D=M(J,Q);if(D)return D}return new pY("",0)}function ZF(J){let U=/unexpected token '(.)', ".+" is not valid JSON/i.exec(J.message);if(!U)return null;let M=i9(U[1]);return new pY(M,-1)}function QF(J){let U=/unexpected token (.) in JSON at position (\d+)/i.exec(J.message);if(!U)return null;let M=i9(U[1]),D=Number(U[2]);return new pY(M,D)}function GF(J,Q){let M=/(unexpected character|expected .*) at line (\d+) column (\d+)/i.exec(J.message);if(!M)return null;let D=Number(M[2]),C=Number(M[3]),S=zF(D,C,Q),w=i9(Q[S]);return new pY(w,S)}function FF(J){let U=/unexpected (identifier|token) "(.)"/i.exec(J.message);if(!U)return null;let M=i9(U[2]);return new pY(M,0)}function i9(J){return"0x"+J.charCodeAt(0).toString(16).toUpperCase()}function zF(J,Q,U){if(J===1)return Q-1;let M=1,D=0;return U.split("").find((C,S)=>{if(C===`
4
4
-
`)M+=1;if(M===J)return D=S+Q,!0;return!1}),D}class pX extends m{}class pY extends m{constructor(J){super();this[0]=J}}class l5 extends m{constructor(J){super();this[0]=J}}function UF(J,Q){return uY(d5(J),(U)=>{let M=H0(U,Q);return J9(M,(D)=>{return new l5(D)})})}function cY(J,Q){return UF(J,Q)}function cX(J){return uX(J)}function l6(J){return R7(J)}function sX(J){return R7(J)}function sY(J){return n5(J)}function i5(J){return r5(J)}function I7(J,Q){let M=$6(J,Q);return i5(M)}class w7 extends m{constructor(J,Q,U,M,D,C,S){super();this.scheme=J,this.userinfo=Q,this.host=U,this.port=M,this.path=D,this.query=C,this.fragment=S}}function qF(J,Q){while(!0){let U=J,M=Q;if(U instanceof r)return e8(M);else{let{head:D,tail:C}=U,S;if(D==="")S=M;else if(D===".")S=M;else if(D==="..")if(M instanceof r)S=M;else S=M.tail;else S=g(D,M);let w=S;J=C,Q=w}}}function BF(J){return qF(J,I([]))}function o5(J){return BF(mY(J,"/"))}function t5(J){let Q,U=J.fragment;if(U instanceof K8){let u=U[0];Q=I(["#",u])}else Q=I([]);let M=Q,D,C=J.query;if(C instanceof K8){let u=C[0];D=g("?",g(u,M))}else D=M;let S=D,w=g(J.path,S),T,v=J.host,f=N7(J.path,"/");if(v instanceof K8&&!f)if(v[0]!=="")T=g("/",w);else T=w;else T=w;let b=T,o,J8=J.host,Y8=J.port;if(J8 instanceof K8&&Y8 instanceof K8){let u=Y8[0];o=g(":",g(Z0(u),b))}else o=b;let G8=o,e,N8=J.scheme,V8=J.userinfo,F8=J.host;if(N8 instanceof K8)if(V8 instanceof K8)if(F8 instanceof K8){let u=N8[0],q8=V8[0],B8=F8[0];e=g(u,g("://",g(q8,g("@",g(B8,G8)))))}else{let u=N8[0];e=g(u,g(":",G8))}else if(F8 instanceof K8){let u=N8[0],q8=F8[0];e=g(u,g("://",g(q8,G8)))}else{let u=N8[0];e=g(u,g(":",G8))}else if(V8 instanceof D8&&F8 instanceof K8){let u=F8[0];e=g("//",g(u,G8))}else e=G8;return e7(e)}function Z9(J,Q,U){if(J)return Q;else return U()}function i8(J){return J}var C0=()=>globalThis?.document,t9="http://www.w3.org/1999/xhtml",a9=1,nX=3;var KJ=!!globalThis.HTMLElement?.prototype?.moveBefore;var v8=I([]),e9=new D8;var OF=new r0,AF=new A6,SF=new S6;function YV(J,Q){if(J.name===Q.name)return SF;else if(J.name<Q.name)return AF;else return OF}class O0 extends m{constructor(J,Q,U){super();this.kind=J,this.name=Q,this.value=U}}class Q9 extends m{constructor(J,Q,U){super();this.kind=J,this.name=Q,this.value=U}}class E6 extends m{constructor(J,Q,U,M,D,C,S,w,T){super();this.kind=J,this.name=Q,this.handler=U,this.include=M,this.prevent_default=D,this.stop_propagation=C,this.immediate=S,this.debounce=w,this.throttle=T}}class G9 extends m{constructor(J,Q,U){super();this.prevent_default=J,this.stop_propagation=Q,this.message=U}}class zJ extends m{constructor(J){super();this.kind=J}}class UJ extends m{constructor(J){super();this.kind=J}}function LF(J,Q){while(!0){let U=J,M=Q;if(U instanceof r)return M;else{let D=U.head;if(D instanceof O0){let C=D.name;if(C==="")J=U.tail,Q=M;else if(C==="class"){let S=D.value;if(S==="")J=U.tail,Q=M;else{let w=U.tail;if(w instanceof r){let T=D;J=w,Q=g(T,M)}else{let T=w.head;if(T instanceof O0)if(T.name==="class"){let f=D.kind,b=S,o=w.tail,J8=T.value,Y8=b+" "+J8,G8=new O0(f,"class",Y8);J=g(G8,o),Q=M}else{let f=D;J=w,Q=g(f,M)}else{let v=D;J=w,Q=g(v,M)}}}}else if(C==="style"){let S=D.value;if(S==="")J=U.tail,Q=M;else{let w=U.tail;if(w instanceof r){let T=D;J=w,Q=g(T,M)}else{let T=w.head;if(T instanceof O0)if(T.name==="style"){let f=D.kind,b=S,o=w.tail,J8=T.value,Y8=b+";"+J8,G8=new O0(f,"style",Y8);J=g(G8,o),Q=M}else{let f=D;J=w,Q=g(f,M)}else{let v=D;J=w,Q=g(v,M)}}}}else{let S=D;J=U.tail,Q=g(S,M)}}else{let C=D;J=U.tail,Q=g(C,M)}}}}function MJ(J){if(J instanceof r)return J;else if(J.tail instanceof r)return J;else{let M=yX(J,(D,C)=>{return YV(C,D)});return LF(M,v8)}}var dX=0;function qJ(J,Q){return new O0(dX,J,Q)}var lX=1;function BJ(J,Q){return new Q9(lX,J,Q)}var iX=2;function DJ(J,Q,U,M,D,C,S,w){return new E6(iX,J,Q,U,M,D,C,S,w)}var oX=0;var tX=new zJ(oX);var VV=2,NJ=new UJ(VV);function Z6(J,Q){return qJ(J,Q)}function aX(J,Q){return BJ(J,Q)}function jF(J,Q){if(Q)return Z6(J,"");else return aX(J,sX(!1))}function n(J){return Z6("class",J)}function XV(J){return Z6("id",J)}function RY(J){return Z6("href",J)}function CJ(J){return Z6("target",J)}function OJ(J){return Z6("alt",J)}function AJ(J){return Z6("src",J)}function WV(J){return Z6("action",J)}function KV(J){return Z6("method",J)}function SJ(J){return Z6("accept",$0(J,","))}function PJ(J){return jF("disabled",J)}function RJ(J){return Z6("for",J)}function IJ(J){return Z6("name",J)}function IY(J){return Z6("placeholder",J)}function X0(J){return Z6("type",J)}function F9(J){return Z6("value",J)}class z9 extends m{constructor(J,Q,U){super();this.synchronous=J,this.before_paint=Q,this.after_paint=U}}class YW extends m{constructor(J,Q,U,M,D){super();this.dispatch=J,this.emit=Q,this.select=U,this.root=M,this.provide=D}}function TF(J,Q,U){return}function xF(J,Q){return new YW((U)=>{return J.dispatch(Q(U))},J.emit,(U)=>{return TF(J,U,Q)},J.root,J.provide)}function eX(J,Q){return $6(J,(U)=>{return(M)=>{return U(xF(M,Q))}})}function wJ(J,Q){return new z9(eX(J.synchronous,Q),eX(J.before_paint,Q),eX(J.after_paint,Q))}function HJ(J,Q,U,M,D,C){let S=new YW(Q,U,M,D,C);return P5(J.synchronous,(w)=>{return w(S)})}var JV=new z9(I([]),I([]),I([]));function d8(){return JV}function g0(J){return new z9(I([(U)=>{let M=U.dispatch;return J(M)}]),JV.before_paint,JV.after_paint)}function ZV(J){return r6(J,JV,(Q,U)=>{return new z9(r6(U.synchronous,Q.synchronous,c9),r6(U.before_paint,Q.before_paint,c9),r6(U.after_paint,Q.after_paint,c9))})}function Q0(){return null}function U9(J,Q){let U=J?.get(Q);if(U!=null)return new i(U);else return new W8(void 0)}function M9(J,Q){return J&&J.has(Q)}function nY(J,Q,U){return J??=new Map,J.set(Q,U),J}function VW(J,Q){return J?.delete(Q),J}class XW extends m{}class WW extends m{constructor(J,Q){super();this.key=J,this.parent=Q}}class LJ extends m{constructor(J,Q){super();this.index=J,this.parent=Q}}function EF(J,Q){while(!0){let U=J,M=Q;if(M instanceof r)return!1;else{let{head:D,tail:C}=M,S=N7(U,D);if(S)return S;else J=U,Q=C}}}function A0(J,Q,U){if(U==="")return new LJ(Q,J);else return new WW(U,J)}var L7=new XW,B9="\t";function jJ(J,Q){while(!0){let U=J,M=Q;if(U instanceof XW)if(M instanceof r)return"";else{let D=M.tail;return e7(D)}else if(U instanceof WW){let D=U.key;J=U.parent,Q=g(B9,g(D,M))}else{let D=U.index;J=U.parent,Q=g(B9,g(Z0(D),M))}}}function TJ(J){return jJ(J,I([]))}function xJ(J,Q){if(Q instanceof r)return!1;else return EF(TJ(J),Q)}var KW=`
5
5
-
`;function JW(J,Q){return jJ(J,I([KW,Q]))}class W0 extends m{constructor(J,Q,U,M,D){super();this.kind=J,this.key=Q,this.mapper=U,this.children=M,this.keyed_children=D}}class i6 extends m{constructor(J,Q,U,M,D,C,S,w,T,v){super();this.kind=J,this.key=Q,this.mapper=U,this.namespace=M,this.tag=D,this.attributes=C,this.children=S,this.keyed_children=w,this.self_closing=T,this.void=v}}class G0 extends m{constructor(J,Q,U,M){super();this.kind=J,this.key=Q,this.mapper=U,this.content=M}}class wY extends m{constructor(J,Q,U,M,D,C,S){super();this.kind=J,this.key=Q,this.mapper=U,this.namespace=M,this.tag=D,this.attributes=C,this.inner_html=S}}function vF(J,Q){if(Q==="")if(J==="area")return!0;else if(J==="base")return!0;else if(J==="br")return!0;else if(J==="col")return!0;else if(J==="embed")return!0;else if(J==="hr")return!0;else if(J==="img")return!0;else if(J==="input")return!0;else if(J==="link")return!0;else if(J==="meta")return!0;else if(J==="param")return!0;else if(J==="source")return!0;else if(J==="track")return!0;else if(J==="wbr")return!0;else return!1;else return!1}function EJ(J,Q){if(Q instanceof W0)return new W0(Q.kind,J,Q.mapper,Q.children,Q.keyed_children);else if(Q instanceof i6)return new i6(Q.kind,J,Q.mapper,Q.namespace,Q.tag,Q.attributes,Q.children,Q.keyed_children,Q.self_closing,Q.void);else if(Q instanceof G0)return new G0(Q.kind,J,Q.mapper,Q.content);else return new wY(Q.kind,J,Q.mapper,Q.namespace,Q.tag,Q.attributes,Q.inner_html)}var L0=0;function ZW(J,Q,U,M){return new W0(L0,J,Q,U,M)}var rY=1;function D9(J,Q,U,M,D,C,S,w,T){return new i6(rY,J,Q,U,M,MJ(D),C,S,w,T||vF(M,U))}var j7=2;function QW(J,Q,U){return new G0(j7,J,Q,U)}var yJ=3;var GW=(J,Q)=>J===Q,dY=(J,Q)=>{if(J===Q)return!0;if(J==null||Q==null)return!1;let U=typeof J;if(U!==typeof Q)return!1;if(U!=="object")return!1;if(J.constructor!==Q.constructor)return!1;if(Array.isArray(J))return _F(J,Q);return $F(J,Q)},_F=(J,Q)=>{let U=J.length;if(U!==Q.length)return!1;while(U--)if(!dY(J[U],Q[U]))return!1;return!0},$F=(J,Q)=>{let U=Object.keys(J),M=U.length;if(Object.keys(Q).length!==M)return!1;while(M--){let D=U[M];if(!Object.hasOwn(Q,D))return!1;if(!dY(J[D],Q[D]))return!1}return!0};class VY extends m{constructor(J,Q,U){super();this.handlers=J,this.dispatched_paths=Q,this.next_dispatched_paths=U}}function zW(){return new VY(Q0(),v8,v8)}function $J(J){return new VY(J.handlers,J.next_dispatched_paths,v8)}function hJ(J,Q,U){return VW(J,JW(Q,U))}function GV(J,Q,U){let M=hJ(J.handlers,Q,U);return new VY(M,J.dispatched_paths,J.next_dispatched_paths)}function kJ(J,Q,U){return r6(U,J,(M,D)=>{if(D instanceof E6){let C=D.name;return hJ(M,Q,C)}else return M})}function T7(J,Q,U,M){let D=g(Q,J.next_dispatched_paths),C=new VY(J.handlers,J.dispatched_paths,D),S=U9(C.handlers,Q+KW+U);if(S instanceof i){let w=S[0];return[C,H0(M,w)]}else return[C,new W8(I([]))]}function FV(J,Q){return xJ(Q,J.dispatched_paths)}function gJ(J,Q,U,M,D){return nY(J,JW(U,M),d0(D,(C)=>{return new G9(C.prevent_default,C.stop_propagation,i8(Q)(C.message))}))}function x7(J,Q,U,M,D){let C=gJ(J.handlers,Q,U,M,D);return new VY(C,J.dispatched_paths,J.next_dispatched_paths)}function vJ(J,Q,U,M){return r6(M,J,(D,C)=>{if(C instanceof E6){let{name:S,handler:w}=C;return gJ(D,Q,U,S,w)}else return D})}function YY(J,Q){let U=GW(J,i8);if(GW(Q,i8))return J;else if(U)return Q;else return(D)=>{return J(Q(D))}}function _J(J,Q,U,M){while(!0){let D=J,C=Q,S=U,w=M;if(w instanceof r)return D;else{let{head:T,tail:v}=w;J=fJ(D,C,S,T),Q=C,U=S+1,M=v}}}function fJ(J,Q,U,M){if(M instanceof W0){let D=M.children,C=A0(Q,U,M.key);return _J(J,C,0,D)}else if(M instanceof i6){let{attributes:D,children:C}=M,S=A0(Q,U,M.key),T=kJ(J,S,D);return _J(T,S,0,C)}else if(M instanceof G0)return J;else{let D=M.attributes,C=A0(Q,U,M.key);return kJ(J,C,D)}}function XY(J,Q,U,M){let D=fJ(J.handlers,Q,U,M);return new VY(D,J.dispatched_paths,J.next_dispatched_paths)}function FW(J,Q,U,M,D){while(!0){let C=J,S=Q,w=U,T=M,v=D;if(v instanceof r)return C;else{let{head:f,tail:b}=v;J=mJ(C,S,w,T,f),Q=S,U=w,M=T+1,D=b}}}function mJ(J,Q,U,M,D){if(D instanceof W0){let C=D.children,S=A0(U,M,D.key),w=YY(Q,D.mapper);return FW(J,w,S,0,C)}else if(D instanceof i6){let{attributes:C,children:S}=D,w=A0(U,M,D.key),T=YY(Q,D.mapper),f=vJ(J,T,w,C);return FW(f,T,w,0,S)}else if(D instanceof G0)return J;else{let C=D.attributes,S=A0(U,M,D.key),w=YY(Q,D.mapper);return vJ(J,w,S,C)}}function WY(J,Q,U,M,D){let C=mJ(J.handlers,Q,U,M,D);return new VY(C,J.dispatched_paths,J.next_dispatched_paths)}function UW(J){return WY(zW(),i8,L7,0,J)}function bJ(J,Q,U,M,D){let C=FW(J.handlers,Q,U,M,D);return new VY(C,J.dispatched_paths,J.next_dispatched_paths)}function o6(J,Q,U){return D9("",i8,"",J,Q,U,Q0(),!1,!1)}function N9(J){return QW("",i8,J)}function f0(){return QW("",i8,"")}function uJ(J,Q){let U=i8(YY(i8(Q),J.mapper));if(J instanceof W0){let{children:M,keyed_children:D}=J;return new W0(J.kind,J.key,U,i8(M),i8(D))}else if(J instanceof i6){let{attributes:M,children:D,keyed_children:C}=J;return new i6(J.kind,J.key,U,J.namespace,J.tag,i8(M),i8(D),i8(C),J.self_closing,J.void)}else if(J instanceof G0)return i8(J);else{let M=J.attributes;return new wY(J.kind,J.key,U,J.namespace,J.tag,i8(M),J.inner_html)}}function S8(J){return N9(J)}function pJ(J,Q){return o6("h1",J,Q)}function m0(J,Q){return o6("h2",J,Q)}function MW(J,Q){return o6("h3",J,Q)}function M8(J,Q){return o6("div",J,Q)}function R6(J,Q){return o6("p",J,Q)}function HY(J,Q){return o6("a",J,Q)}function cJ(J,Q){return o6("span",J,Q)}function sJ(J){return o6("img",J,v8)}function LY(J,Q){return o6("button",J,Q)}function E7(J,Q){return o6("form",J,Q)}function y7(J){return o6("input",J,v8)}function KY(J,Q){return o6("label",J,Q)}function nJ(J,Q){return o6("textarea",g(aX("value",l6(Q)),J),I([N9(Q)]))}class C9 extends m{constructor(J,Q,U,M){super();this.index=J,this.removed=Q,this.changes=U,this.children=M}}class rJ extends m{constructor(J,Q){super();this.kind=J,this.content=Q}}class dJ extends m{constructor(J,Q){super();this.kind=J,this.inner_html=Q}}class lJ extends m{constructor(J,Q,U){super();this.kind=J,this.added=Q,this.removed=U}}class iJ extends m{constructor(J,Q,U){super();this.kind=J,this.key=Q,this.before=U}}class oJ extends m{constructor(J,Q,U){super();this.kind=J,this.index=Q,this.with=U}}class tJ extends m{constructor(J,Q){super();this.kind=J,this.index=Q}}class aJ extends m{constructor(J,Q,U){super();this.kind=J,this.children=Q,this.before=U}}function qW(J,Q,U,M){return new C9(J,Q,U,M)}var BW=0;function eJ(J){return new rJ(BW,J)}var DW=1;function YZ(J){return new dJ(DW,J)}var NW=2;function CW(J,Q){return new lJ(NW,J,Q)}var OW=3;function VZ(J,Q){return new iJ(OW,J,Q)}var AW=4;function XZ(J){return new tJ(AW,J)}var SW=5;function iY(J,Q){return new oJ(SW,J,Q)}var PW=6;function RW(J,Q){return new aJ(PW,J,Q)}class KZ extends m{constructor(J,Q,U,M,D,C,S,w){super();this.kind=J,this.open_shadow_root=Q,this.will_adopt_styles=U,this.observed_attributes=M,this.observed_properties=D,this.requested_contexts=C,this.provided_contexts=S,this.vdom=w}}class JZ extends m{constructor(J,Q){super();this.kind=J,this.patch=Q}}class ZZ extends m{constructor(J,Q,U){super();this.kind=J,this.name=Q,this.data=U}}class QZ extends m{constructor(J,Q,U){super();this.kind=J,this.key=Q,this.value=U}}class zV extends m{constructor(J,Q){super();this.kind=J,this.messages=Q}}class UV extends m{constructor(J,Q,U){super();this.kind=J,this.name=Q,this.value=U}}class MV extends m{constructor(J,Q,U){super();this.kind=J,this.name=Q,this.value=U}}class qV extends m{constructor(J,Q,U,M){super();this.kind=J,this.path=Q,this.name=U,this.event=M}}class IW extends m{constructor(J,Q,U){super();this.kind=J,this.key=Q,this.value=U}}var gF=0;function GZ(J,Q,U,M,D,C,S){return new KZ(gF,J,Q,U,M,D,C,S)}var fF=1;function wW(J){return new JZ(fF,J)}var mF=2;function FZ(J,Q){return new ZZ(mF,J,Q)}var bF=3;function zZ(J,Q){return new QZ(bF,J,Q)}class BV extends m{constructor(J,Q){super();this.patch=J,this.events=Q}}class qZ extends m{constructor(J,Q,U){super();this.added=J,this.removed=Q,this.events=U}}function uF(J,Q,U,M){if(U==="input"&&Q==="")return FV(J,M);else if(U==="select"&&Q==="")return FV(J,M);else if(U==="textarea"&&Q==="")return FV(J,M);else return!1}function MZ(J,Q,U,M,D,C,S,w){while(!0){let T=J,v=Q,f=U,b=M,o=D,J8=C,Y8=S,G8=w;if(o instanceof r)if(J8 instanceof r)return new qZ(Y8,G8,b);else{let e=J8.head;if(e instanceof E6){let N8=e,V8=J8.tail,F8=e.name,j8=e.handler,u=g(N8,Y8),q8=x7(b,f,v,F8,j8);J=T,Q=v,U=f,M=q8,D=o,C=V8,S=u,w=G8}else{let N8=e,V8=J8.tail,F8=g(N8,Y8);J=T,Q=v,U=f,M=b,D=o,C=V8,S=F8,w=G8}}else if(J8 instanceof r){let e=o.head;if(e instanceof E6){let N8=e,V8=o.tail,F8=e.name,j8=g(N8,G8),u=GV(b,v,F8);J=T,Q=v,U=f,M=u,D=V8,C=J8,S=Y8,w=j8}else{let N8=e,V8=o.tail,F8=g(N8,G8);J=T,Q=v,U=f,M=b,D=V8,C=J8,S=Y8,w=F8}}else{let{head:e,tail:N8}=o,V8=J8.head,F8=J8.tail,j8=YV(e,V8);if(j8 instanceof A6)if(e instanceof E6){let u=e.name,q8=g(e,G8),B8=GV(b,v,u);J=T,Q=v,U=f,M=B8,D=N8,C=J8,S=Y8,w=q8}else{let u=g(e,G8);J=T,Q=v,U=f,M=b,D=N8,C=J8,S=Y8,w=u}else if(j8 instanceof S6)if(e instanceof O0)if(V8 instanceof O0){let u,q8=V8.name;if(q8==="value")u=T||e.value!==V8.value;else if(q8==="checked")u=T||e.value!==V8.value;else if(q8==="selected")u=T||e.value!==V8.value;else u=e.value!==V8.value;let B8=u,$8;if(B8)$8=g(V8,Y8);else $8=Y8;let A8=$8;J=T,Q=v,U=f,M=b,D=N8,C=F8,S=A8,w=G8}else if(V8 instanceof E6){let{name:u,handler:q8}=V8,B8=g(V8,Y8),$8=g(e,G8),A8=x7(b,f,v,u,q8);J=T,Q=v,U=f,M=A8,D=N8,C=F8,S=B8,w=$8}else{let u=g(V8,Y8),q8=g(e,G8);J=T,Q=v,U=f,M=b,D=N8,C=F8,S=u,w=q8}else if(e instanceof Q9)if(V8 instanceof Q9){let u,q8=V8.name;if(q8==="scrollLeft")u=!0;else if(q8==="scrollRight")u=!0;else if(q8==="value")u=T||!dY(e.value,V8.value);else if(q8==="checked")u=T||!dY(e.value,V8.value);else if(q8==="selected")u=T||!dY(e.value,V8.value);else u=!dY(e.value,V8.value);let B8=u,$8;if(B8)$8=g(V8,Y8);else $8=Y8;let A8=$8;J=T,Q=v,U=f,M=b,D=N8,C=F8,S=A8,w=G8}else if(V8 instanceof E6){let{name:u,handler:q8}=V8,B8=g(V8,Y8),$8=g(e,G8),A8=x7(b,f,v,u,q8);J=T,Q=v,U=f,M=A8,D=N8,C=F8,S=B8,w=$8}else{let u=g(V8,Y8),q8=g(e,G8);J=T,Q=v,U=f,M=b,D=N8,C=F8,S=u,w=q8}else if(V8 instanceof E6){let{name:u,handler:q8}=V8,B8=e.prevent_default.kind!==V8.prevent_default.kind||e.stop_propagation.kind!==V8.stop_propagation.kind||e.immediate!==V8.immediate||e.debounce!==V8.debounce||e.throttle!==V8.throttle,$8;if(B8)$8=g(V8,Y8);else $8=Y8;let A8=$8,h8=x7(b,f,v,u,q8);J=T,Q=v,U=f,M=h8,D=N8,C=F8,S=A8,w=G8}else{let u=e.name,q8=g(V8,Y8),B8=g(e,G8),$8=GV(b,v,u);J=T,Q=v,U=f,M=$8,D=N8,C=F8,S=q8,w=B8}else if(V8 instanceof E6){let{name:u,handler:q8}=V8,B8=g(V8,Y8),$8=x7(b,f,v,u,q8);J=T,Q=v,U=f,M=$8,D=o,C=F8,S=B8,w=G8}else{let u=g(V8,Y8);J=T,Q=v,U=f,M=b,D=o,C=F8,S=u,w=G8}}}}function HW(J,Q,U,M,D,C,S,w,T,v,f,b,o,J8){while(!0){let Y8=J,G8=Q,e=U,N8=M,V8=D,F8=C,j8=S,u=w,q8=T,B8=v,$8=f,A8=b,h8=o,Y6=J8;if(Y8 instanceof r)if(e instanceof r)return new BV(new C9(q8,j8,$8,A8),Y6);else{let D6=bJ(Y6,h8,B8,u,e),q6=RW(e,u-F8),u8=g(q6,$8);return new BV(new C9(q8,j8,u8,A8),D6)}else if(e instanceof r){let{head:D6,tail:q6}=Y8,u8;if(D6.key===""||!M9(V8,D6.key))u8=j8+1;else u8=j8;let s8=u8,X6=XY(Y6,B8,u,D6);J=q6,Q=G8,U=e,M=N8,D=V8,C=F8,S=s8,w=u,T=q8,v=B8,f=$8,b=A8,o=h8,J8=X6}else{let D6=Y8.head,q6=e.head;if(D6.key!==q6.key){let u8=Y8.tail,V6=e.tail,s8=U9(G8,q6.key);if(M9(N8,D6.key))if(s8 instanceof i){let T8=s8[0];if(M9(V8,D6.key))J=u8,Q=G8,U=e,M=N8,D=V8,C=F8-1,S=j8,w=u,T=q8,v=B8,f=$8,b=A8,o=h8,J8=Y6;else{let l8=u-F8,f8=g(VZ(q6.key,l8),$8),G6=nY(V8,q6.key,void 0),W6=F8+1;J=g(T8,Y8),Q=G8,U=e,M=N8,D=G6,C=W6,S=j8,w=u,T=q8,v=B8,f=f8,b=A8,o=h8,J8=Y6}}else{let T8=u-F8,o8=WY(Y6,h8,B8,u,q6),l8=RW(I([q6]),T8),f8=g(l8,$8);J=Y8,Q=G8,U=V6,M=N8,D=V8,C=F8+1,S=j8,w=u+1,T=q8,v=B8,f=f8,b=A8,o=h8,J8=o8}else if(s8 instanceof i){let T8=u-F8,o8=g(XZ(T8),$8),l8=XY(Y6,B8,u,D6),f8=F8-1;J=u8,Q=G8,U=e,M=N8,D=V8,C=f8,S=j8,w=u,T=q8,v=B8,f=o8,b=A8,o=h8,J8=l8}else{let T8=iY(u-F8,q6),o8,f8=XY(Y6,B8,u,D6);o8=WY(f8,h8,B8,u,q6);let G6=o8;J=u8,Q=G8,U=V6,M=N8,D=V8,C=F8,S=j8,w=u+1,T=q8,v=B8,f=g(T8,$8),b=A8,o=h8,J8=G6}}else{let u8=Y8.head;if(u8 instanceof W0){let V6=e.head;if(V6 instanceof W0){let s8=u8,X6=Y8.tail,T8=V6,o8=e.tail,l8=YY(h8,T8.mapper),f8=A0(B8,u,T8.key),G6=HW(s8.children,s8.keyed_children,T8.children,T8.keyed_children,Q0(),0,0,0,u,f8,v8,v8,l8,Y6),W6,M6=G6.patch;if(M6.changes instanceof r)if(M6.children instanceof r)if(M6.removed===0)W6=A8;else W6=g(G6.patch,A8);else W6=g(G6.patch,A8);else W6=g(G6.patch,A8);let u6=W6;J=X6,Q=G8,U=o8,M=N8,D=V8,C=F8,S=j8,w=u+1,T=q8,v=B8,f=$8,b=u6,o=h8,J8=G6.events}else{let s8=u8,X6=Y8.tail,T8=V6,o8=e.tail,l8=iY(u-F8,T8),f8,W6=XY(Y6,B8,u,s8);f8=WY(W6,h8,B8,u,T8);let M6=f8;J=X6,Q=G8,U=o8,M=N8,D=V8,C=F8,S=j8,w=u+1,T=q8,v=B8,f=g(l8,$8),b=A8,o=h8,J8=M6}}else if(u8 instanceof i6){let V6=e.head;if(V6 instanceof i6){let s8=u8,X6=V6;if(s8.namespace===X6.namespace&&s8.tag===X6.tag){let T8=Y8.tail,o8=e.tail,l8=YY(h8,X6.mapper),f8=A0(B8,u,X6.key),G6=uF(Y6,X6.namespace,X6.tag,f8),W6=MZ(G6,f8,l8,Y6,s8.attributes,X6.attributes,v8,v8),M6,F0,u6;M6=W6.added,F0=W6.removed,u6=W6.events;let T0;if(M6 instanceof r&&F0 instanceof r)T0=v8;else T0=I([CW(M6,F0)]);let zY=T0,UY=HW(s8.children,s8.keyed_children,X6.children,X6.keyed_children,Q0(),0,0,0,u,f8,zY,v8,l8,u6),R0,p0=UY.patch;if(p0.changes instanceof r)if(p0.children instanceof r)if(p0.removed===0)R0=A8;else R0=g(UY.patch,A8);else R0=g(UY.patch,A8);else R0=g(UY.patch,A8);let _V=R0;J=T8,Q=G8,U=o8,M=N8,D=V8,C=F8,S=j8,w=u+1,T=q8,v=B8,f=$8,b=_V,o=h8,J8=UY.events}else{let T8=u8,o8=Y8.tail,l8=V6,f8=e.tail,G6=iY(u-F8,l8),W6,F0=XY(Y6,B8,u,T8);W6=WY(F0,h8,B8,u,l8);let u6=W6;J=o8,Q=G8,U=f8,M=N8,D=V8,C=F8,S=j8,w=u+1,T=q8,v=B8,f=g(G6,$8),b=A8,o=h8,J8=u6}}else{let s8=u8,X6=Y8.tail,T8=V6,o8=e.tail,l8=iY(u-F8,T8),f8,W6=XY(Y6,B8,u,s8);f8=WY(W6,h8,B8,u,T8);let M6=f8;J=X6,Q=G8,U=o8,M=N8,D=V8,C=F8,S=j8,w=u+1,T=q8,v=B8,f=g(l8,$8),b=A8,o=h8,J8=M6}}else if(u8 instanceof G0){let V6=e.head;if(V6 instanceof G0){let s8=u8,X6=V6;if(s8.content===X6.content){let T8=Y8.tail,o8=e.tail;J=T8,Q=G8,U=o8,M=N8,D=V8,C=F8,S=j8,w=u+1,T=q8,v=B8,f=$8,b=A8,o=h8,J8=Y6}else{let T8=Y8.tail,o8=V6,l8=e.tail,f8=qW(u,0,I([eJ(o8.content)]),v8);J=T8,Q=G8,U=l8,M=N8,D=V8,C=F8,S=j8,w=u+1,T=q8,v=B8,f=$8,b=g(f8,A8),o=h8,J8=Y6}}else{let s8=u8,X6=Y8.tail,T8=V6,o8=e.tail,l8=iY(u-F8,T8),f8,W6=XY(Y6,B8,u,s8);f8=WY(W6,h8,B8,u,T8);let M6=f8;J=X6,Q=G8,U=o8,M=N8,D=V8,C=F8,S=j8,w=u+1,T=q8,v=B8,f=g(l8,$8),b=A8,o=h8,J8=M6}}else{let V6=e.head;if(V6 instanceof wY){let s8=u8,X6=Y8.tail,T8=V6,o8=e.tail,l8=YY(h8,T8.mapper),f8=A0(B8,u,T8.key),G6=MZ(!1,f8,l8,Y6,s8.attributes,T8.attributes,v8,v8),W6,M6,F0;W6=G6.added,M6=G6.removed,F0=G6.events;let u6;if(W6 instanceof r&&M6 instanceof r)u6=v8;else u6=I([CW(W6,M6)]);let T0=u6,zY;if(s8.inner_html===T8.inner_html)zY=T0;else zY=g(YZ(T8.inner_html),T0);let R0=zY,p0;if(R0 instanceof r)p0=A8;else p0=g(qW(u,0,R0,I([])),A8);let T9=p0;J=X6,Q=G8,U=o8,M=N8,D=V8,C=F8,S=j8,w=u+1,T=q8,v=B8,f=$8,b=T9,o=h8,J8=F0}else{let s8=u8,X6=Y8.tail,T8=V6,o8=e.tail,l8=iY(u-F8,T8),f8,W6=XY(Y6,B8,u,s8);f8=WY(W6,h8,B8,u,T8);let M6=f8;J=X6,Q=G8,U=o8,M=N8,D=V8,C=F8,S=j8,w=u+1,T=q8,v=B8,f=g(l8,$8),b=A8,o=h8,J8=M6}}}}}}function k7(J,Q,U){return HW(I([Q]),Q0(),I([U]),Q0(),Q0(),0,0,0,0,L7,v8,v8,i8,$J(J))}var{setTimeout:pF,clearTimeout:LW}=globalThis,cF=(J,Q)=>C0().createElementNS(J,Q),sF=(J)=>C0().createTextNode(J),nF=()=>C0().createDocumentFragment(),v7=(J,Q,U)=>J.insertBefore(Q,U),DZ=KJ?(J,Q,U)=>J.moveBefore(Q,U):v7,rF=(J,Q)=>J.removeChild(Q),dF=(J,Q)=>J.getAttribute(Q),NZ=(J,Q,U)=>J.setAttribute(Q,U),lF=(J,Q)=>J.removeAttribute(Q),iF=(J,Q,U,M)=>J.addEventListener(Q,U,M),CZ=(J,Q,U)=>J.removeEventListener(Q,U),oF=(J,Q)=>J.innerHTML=Q,tF=(J,Q)=>J.data=Q,JY=Symbol("lustre");class SZ{constructor(J,Q,U,M){this.kind=J,this.key=M,this.parent=Q,this.children=[],this.node=U,this.handlers=new Map,this.throttles=new Map,this.debouncers=new Map}get parentNode(){return this.kind===L0?this.node.parentNode:this.node}}var ZY=(J,Q,U,M,D)=>{let C=new SZ(J,Q,U,D);return U[JY]=C,Q?.children.splice(M,0,C),C},aF=(J)=>{let Q="";for(let U=J[JY];U.parent;U=U.parent)if(U.key)Q=`${B9}${U.key}${Q}`;else{let M=U.parent.children.indexOf(U);Q=`${B9}${M}${Q}`}return Q.slice(1)};class TW{#Y=null;#K=()=>{};#W=!1;#X=!1;constructor(J,Q,{useServerEvents:U=!1,exposeKeys:M=!1}={}){this.#Y=J,this.#K=Q,this.#W=U,this.#X=M}mount(J){ZY(rY,null,this.#Y,0,null),this.#O(this.#Y,null,this.#Y[JY],0,J)}push(J){this.#V.push({node:this.#Y[JY],patch:J}),this.#J()}#V=[];#J(){let J=this.#V;while(J.length){let{node:Q,patch:U}=J.pop(),{children:M}=Q,{changes:D,removed:C,children:S}=U;if(oY(D,(w)=>this.#Q(Q,w)),C)this.#B(Q,M.length-C,C);oY(S,(w)=>{let T=M[w.index|0];this.#V.push({node:T,patch:w})})}}#Q(J,Q){switch(Q.kind){case BW:this.#I(J,Q);break;case DW:this.#A(J,Q);break;case NW:this.#D(J,Q);break;case OW:this.#z(J,Q);break;case AW:this.#M(J,Q);break;case SW:this.#U(J,Q);break;case PW:this.#G(J,Q);break}}#G(J,{children:Q,before:U}){let M=nF(),D=this.#F(J,U);this.#C(M,null,J,U|0,Q),v7(J.parentNode,M,D)}#U(J,{index:Q,with:U}){this.#B(J,Q|0,1);let M=this.#F(J,Q);this.#O(J.parentNode,M,J,Q|0,U)}#F(J,Q){Q=Q|0;let{children:U}=J,M=U.length;if(Q<M)return U[Q].node;let D=U[M-1];if(!D&&J.kind!==L0)return null;if(!D)D=J;while(D.kind===L0&&D.children.length)D=D.children[D.children.length-1];return D.node.nextSibling}#z(J,{key:Q,before:U}){U=U|0;let{children:M,parentNode:D}=J,C=M[U].node,S=M[U];for(let f=U+1;f<M.length;++f){let b=M[f];if(M[f]=S,S=b,b.key===Q){M[U]=b;break}}let{kind:w,node:T,children:v}=S;if(DZ(D,T,C),w===L0)this.#Z(D,v,C)}#Z(J,Q,U){for(let M=0;M<Q.length;++M){let{kind:D,node:C,children:S}=Q[M];if(DZ(J,C,U),D===L0)this.#Z(J,S,U)}}#M(J,{index:Q}){this.#B(J,Q,1)}#B(J,Q,U){let{children:M,parentNode:D}=J,C=M.splice(Q,U);for(let S=0;S<C.length;++S){let{kind:w,node:T,children:v}=C[S];if(rF(D,T),this.#q(C[S]),w===L0)C.push(...v)}}#q(J){let{debouncers:Q,children:U}=J;for(let{timeout:M}of Q.values())if(M)LW(M);Q.clear(),oY(U,(M)=>this.#q(M))}#D({node:J,handlers:Q,throttles:U,debouncers:M},{added:D,removed:C}){oY(C,({name:S})=>{if(Q.delete(S))CZ(J,S,jW),this.#N(U,S,0),this.#N(M,S,0);else lF(J,S),AZ[S]?.removed?.(J,S)}),oY(D,(S)=>this.#R(J,S))}#I({node:J},{content:Q}){tF(J,Q??"")}#A({node:J},{inner_html:Q}){oF(J,Q??"")}#C(J,Q,U,M,D){oY(D,(C)=>this.#O(J,Q,U,M++,C))}#O(J,Q,U,M,D){switch(D.kind){case rY:{let C=this.#S(U,M,D);this.#C(C,null,C[JY],0,D.children),v7(J,C,Q);break}case j7:{let C=this.#P(U,M,D);v7(J,C,Q);break}case L0:{let C=this.#P(U,M,D);v7(J,C,Q),this.#C(J,Q,C[JY],0,D.children);break}case yJ:{let C=this.#S(U,M,D);this.#A({node:C},D),v7(J,C,Q);break}}}#S(J,Q,{kind:U,key:M,tag:D,namespace:C,attributes:S}){let w=cF(C||t9,D);if(ZY(U,J,w,Q,M),this.#X&&M)NZ(w,"data-lustre-key",M);return oY(S,(T)=>this.#R(w,T)),w}#P(J,Q,{kind:U,key:M,content:D}){let C=sF(D??"");return ZY(U,J,C,Q,M),C}#R(J,Q){let{debouncers:U,handlers:M,throttles:D}=J[JY],{kind:C,name:S,value:w,prevent_default:T,debounce:v,throttle:f}=Q;switch(C){case dX:{let b=w??"";if(S==="virtual:defaultValue"){J.defaultValue=b;return}if(b!==dF(J,S))NZ(J,S,b);AZ[S]?.added?.(J,b);break}case lX:J[S]=w;break;case iX:{if(M.has(S))CZ(J,S,jW);let b=T.kind===oX;iF(J,S,jW,{passive:b}),this.#N(D,S,f),this.#N(U,S,v),M.set(S,(o)=>this.#w(Q,o));break}}}#N(J,Q,U){let M=J.get(Q);if(U>0)if(M)M.delay=U;else J.set(Q,{delay:U});else if(M){let{timeout:D}=M;if(D)LW(D);J.delete(Q)}}#w(J,Q){let{currentTarget:U,type:M}=Q,{debouncers:D,throttles:C}=U[JY],S=aF(U),{prevent_default:w,stop_propagation:T,include:v,immediate:f}=J;if(w.kind===VV)Q.preventDefault();if(T.kind===VV)Q.stopPropagation();if(M==="submit")Q.detail??={},Q.detail.formData=[...new FormData(Q.target,Q.submitter).entries()];let b=this.#W?eF(Q,v??[]):Q,o=C.get(M);if(o){let Y8=Date.now(),G8=o.last||0;if(Y8>G8+o.delay)o.last=Y8,o.lastEvent=Q,this.#K(b,S,M,f)}let J8=D.get(M);if(J8)LW(J8.timeout),J8.timeout=pF(()=>{if(Q===C.get(M)?.lastEvent)return;this.#K(b,S,M,f)},J8.delay);if(!o&&!J8)this.#K(b,S,M,f)}}var oY=(J,Q)=>{if(Array.isArray(J))for(let U=0;U<J.length;U++)Q(J[U]);else if(J)for(J;J.head;J=J.tail)Q(J.head)},jW=(J)=>{let{currentTarget:Q,type:U}=J;Q[JY].handlers.get(U)(J)},eF=(J,Q=[])=>{let U={};if(J.type==="input"||J.type==="change")Q.push("target.value");if(J.type==="submit")Q.push("detail.formData");for(let M of Q){let D=M.split(".");for(let C=0,S=J,w=U;C<D.length;C++){if(C===D.length-1){w[D[C]]=S[D[C]];break}w=w[D[C]]??={},S=S[D[C]]}}return U},OZ=(J)=>{return{added(Q){Q[J]=!0},removed(Q){Q[J]=!1}}},Yz=(J)=>{return{added(Q,U){Q[J]=U}}},AZ={checked:OZ("checked"),selected:OZ("selected"),value:Yz("value"),autofocus:{added(J){queueMicrotask(()=>{J.focus?.()})}},autoplay:{added(J){try{J.play?.()}catch(Q){console.error(Q)}}}};function Vz(J,Q,U){while(!0){let M=J,D=Q,C=U;if(M instanceof r)return[D,e8(C)];else{let S=M.tail,w=M.head[0],T=M.head[1],v=EJ(w,T),f;if(w==="")f=D;else f=nY(D,w,v);let b=f,o=g(v,C);J=S,Q=b,U=o}}}function xW(J){return Vz(J,Q0(),v8)}function PZ(J,Q,U){let M=xW(U),D,C;return D=M[0],C=M[1],D9("",i8,"",J,Q,C,D,!1,!1)}function RZ(J,Q,U,M){let D=xW(M),C,S;return C=D[0],S=D[1],D9("",i8,J,Q,U,S,C,!1,!1)}function IZ(J){let Q=xW(J),U,M;return U=Q[0],M=Q[1],ZW("",i8,M,U)}var wZ=(J)=>{let Q=ZY(rY,null,J,0,null),U=0;for(let S=J.firstChild;S;S=S.nextSibling)if(HZ(S))U+=1;if(U===0){let S=C0().createTextNode("");return ZY(j7,Q,S,0,null),J.replaceChildren(S),f0()}if(U===1)return EW(Q,J).head[1];let M=C0().createTextNode(""),D=ZY(L0,Q,M,0,null),C=EW(D,J);return J.insertBefore(M,J.firstChild),IZ(C)},HZ=(J)=>{switch(J.nodeType){case a9:return!0;case nX:return!!J.data;default:return!1}},Xz=(J,Q,U,M)=>{if(!HZ(Q))return null;switch(Q.nodeType){case a9:{let D=ZY(rY,J,Q,M,U),C=Q.localName,S=Q.namespaceURI,w=!S||S===t9;if(w&&Wz.includes(C))Kz(C,Q);let T=Jz(Q),v=EW(D,Q);return w?PZ(C,T,v):RZ(S,C,T,v)}case nX:return ZY(j7,J,Q,M,null),N9(Q.data);default:return null}},Wz=["input","select","textarea"],Kz=(J,Q)=>{let{value:U,checked:M}=Q;if(J==="input"&&Q.type==="checkbox"&&!M)return;if(J==="input"&&Q.type==="radio"&&!M)return;if(Q.type!=="checkbox"&&Q.type!=="radio"&&!U)return;queueMicrotask(()=>{if(Q.value=U,Q.checked=M,Q.dispatchEvent(new Event("input",{bubbles:!0})),Q.dispatchEvent(new Event("change",{bubbles:!0})),C0().activeElement!==Q)Q.dispatchEvent(new Event("blur",{bubbles:!0}))})},EW=(J,Q)=>{let U=null,M=Q.firstChild,D=null,C=0;while(M){let S=M.nodeType===a9?M.getAttribute("data-lustre-key"):null;if(S!=null)M.removeAttribute("data-lustre-key");let w=Xz(J,M,S,C),T=M.nextSibling;if(w){let v=new Y0([S??"",w],null);if(D)D=D.tail=v;else D=U=v;C+=1}else Q.removeChild(M);M=T}if(!D)return v8;return D.tail=v8,U},Jz=(J)=>{let Q=J.attributes.length,U=v8;while(Q-- >0){let M=J.attributes[Q];if(M.name==="xmlns")continue;U=new Y0(Zz(M),U)}return U},Zz=(J)=>{let{localName:Q,value:U}=J;return Z6(Q,U)};var jY=()=>!!C0();class DV{constructor(J,[Q,U],M,D){this.root=J,this.#Y=Q,this.#K=M,this.#W=D,this.root.addEventListener("context-request",(C)=>{if(!(C.context&&C.callback))return;if(!this.#Q.has(C.context))return;C.stopImmediatePropagation();let S=this.#Q.get(C.context);if(C.subscribe){let w=()=>{S.subscribers=S.subscribers.filter((T)=>T!==C.callback)};S.subscribers.push([C.callback,w]),C.callback(S.value,w)}else C.callback(S.value)}),this.#J=new TW(this.root,(C,S,w)=>{let[T,v]=T7(this.#V,S,w,C);if(this.#V=T,v.isOk()){let f=v[0];if(f.stop_propagation)C.stopPropagation();if(f.prevent_default)C.preventDefault();this.dispatch(f.message,!1)}}),this.#X=wZ(this.root),this.#V=zW(),this.#M=!0,this.#q(U)}root=null;dispatch(J,Q=!1){if(this.#M||=Q,this.#G)this.#U.push(J);else{let[U,M]=this.#W(this.#Y,J);this.#Y=U,this.#q(M)}}emit(J,Q){(this.root.host??this.root).dispatchEvent(new CustomEvent(J,{detail:Q,bubbles:!0,composed:!0}))}provide(J,Q){if(!this.#Q.has(J))this.#Q.set(J,{value:Q,subscribers:[]});else{let U=this.#Q.get(J);U.value=Q;for(let M=U.subscribers.length-1;M>=0;M--){let[D,C]=U.subscribers[M];if(!D){U.subscribers.splice(M,1);continue}D(Q,C)}}}#Y;#K;#W;#X;#V;#J;#Q=new Map;#G=!1;#U=[];#F=v8;#z=v8;#Z=null;#M=!1;#B={dispatch:(J,Q)=>this.dispatch(J,Q),emit:(J,Q)=>this.emit(J,Q),select:()=>{},root:()=>this.root,provide:(J,Q)=>this.provide(J,Q)};#q(J){this.#G=!0;while(!0){for(let Q=J.synchronous;Q.tail;Q=Q.tail)Q.head(this.#B);if(this.#F=jZ(this.#F,J.before_paint),this.#z=jZ(this.#z,J.after_paint),!this.#U.length)break;[this.#Y,J]=this.#W(this.#Y,this.#U.shift())}if(this.#G=!1,this.#M)cancelAnimationFrame(this.#Z),this.#D();else if(!this.#Z)this.#Z=requestAnimationFrame(()=>{this.#D()})}#D(){this.#M=!1,this.#Z=null;let J=this.#K(this.#Y),{patch:Q,events:U}=k7(this.#V,this.#X,J);if(this.#V=U,this.#X=J,this.#J.push(Q),this.#F instanceof Y0){let M=LZ(this.#F);this.#F=v8,queueMicrotask(()=>{this.#M=!0,this.#q(M)})}if(this.#z instanceof Y0){let M=LZ(this.#z);this.#z=v8,requestAnimationFrame(()=>{this.#M=!0,this.#q(M)})}}}function LZ(J){return{synchronous:J,after_paint:v8,before_paint:v8}}function jZ(J,Q){if(J instanceof r)return Q;else if(Q instanceof r)return J;else return I0(J,Q)}class kW extends m{constructor(J){super();this.message=J}}class vW extends m{constructor(J){super();this.callback=J}}class _W extends m{constructor(J){super();this.callback=J}}class TY extends m{constructor(J){super();this.message=J}}class tY extends m{constructor(J,Q){super();this.name=J,this.data=Q}}class NV extends m{constructor(J,Q){super();this.key=J,this.value=Q}}class aY extends m{}class xZ extends m{constructor(J,Q,U,M,D,C,S,w,T,v){super();this.open_shadow_root=J,this.adopt_styles=Q,this.delegates_focus=U,this.attributes=M,this.properties=D,this.contexts=C,this.is_form_associated=S,this.on_form_autofill=w,this.on_form_reset=T,this.on_form_restore=v}}function EZ(J){let Q=new xZ(!0,!0,!1,v8,v8,v8,!1,e9,e9,e9);return r6(J,Q,(U,M)=>{return M.apply(U)})}class kZ{#Y;constructor(J,[Q,U],M,D){this.#Y=new DV(J,[Q,U],D,M)}send(J){switch(J.constructor){case TY:{this.dispatch(J.message,!1);break}case tY:{this.emit(J.name,J.data);break}case aY:break}}dispatch(J,Q){this.#Y.dispatch(J,Q)}emit(J,Q){this.#Y.emit(J,Q)}}var vZ=({init:J,update:Q,view:U},M,D)=>{if(!jY())return new W8(new O9);let C=M instanceof HTMLElement?M:C0().querySelector(M);if(!C)return new W8(new $W(M));return new i(new kZ(C,J(D),Q,U))};class Qz{#Y;#K;#W;#X;#V;#J;#Q=B7();#G=new Set;constructor([J,Q],U,M,D){this.#Y=J,this.#K=U,this.#W=M,this.#X=D,this.#V=this.#W(this.#Y),this.#J=UW(this.#V),this.#Z(Q)}send(J){switch(J.constructor){case kW:{let{message:Q}=J,U=this.#U(Q),M=k7(this.#J,this.#V,U);this.#V=U,this.#J=M.events,this.broadcast(wW(M.patch));return}case vW:{let{callback:Q}=J;this.#G.add(Q),Q(GZ(this.#X.open_shadow_root,this.#X.adopt_styles,W9(this.#X.attributes),W9(this.#X.properties),W9(this.#X.contexts),this.#Q,this.#V));return}case _W:{let{callback:Q}=J;this.#G.delete(Q);return}case TY:{let{message:Q}=J,[U,M]=this.#K(this.#Y,Q),D=this.#W(U),C=k7(this.#J,this.#V,D);this.#Z(M),this.#Y=U,this.#V=D,this.#J=C.events,this.broadcast(wW(C.patch));return}case tY:{let{name:Q,data:U}=J;this.broadcast(FZ(Q,U));return}case NV:{let{key:Q,value:U}=J;this.#Q=a7(this.#Q,Q,U),this.broadcast(zZ(Q,U));return}case aY:{this.#Y=null,this.#K=null,this.#W=null,this.#X=null,this.#V=null,this.#J=null,this.#Q=null,this.#G.clear();return}default:return}}broadcast(J){for(let Q of this.#G)Q(J)}#U(J){switch(J.constructor){case zV:{let{messages:Q}=J,U=this.#Y,M=d8();for(let D=Q;D.head;D=D.tail){let C=this.#U(D.head);if(C instanceof i){U=C[0][0],M=ZV(v6.fromArray([M,C[0][1]]));break}}return this.#Z(M),this.#Y=U,this.#W(this.#Y)}case UV:{let{name:Q,value:U}=J,M=this.#F(Q,U);if(M instanceof W8)return this.#V;else{let[D,C]=this.#K(this.#Y,M[0]);return this.#Z(C),this.#Y=D,this.#W(this.#Y)}}case MV:{let{name:Q,value:U}=J,M=this.#z(Q,U);if(M instanceof W8)return this.#V;else{let[D,C]=this.#K(this.#Y,M[0]);return this.#Z(C),this.#Y=D,this.#W(this.#Y)}}case qV:{let{path:Q,name:U,event:M}=J,[D,C]=T7(this.#J,Q,U,M);if(this.#J=D,C instanceof W8)return this.#V;else{let[S,w]=this.#K(this.#Y,C[0].message);return this.#Z(w),this.#Y=S,this.#W(this.#Y)}}case IW:{let{key:Q,value:U}=J,M=SY(this.#X.contexts,Q);if(M instanceof W8)return this.#V;if(M=H0(U,M[0]),M instanceof W8)return this.#V;let[D,C]=this.#K(this.#Y,M[0]);return this.#Z(C),this.#Y=D,this.#W(this.#Y)}}}#F(J,Q){let U=SY(this.#X.attributes,J);switch(U.constructor){case i:return U[0](Q);case W8:return new W8(void 0)}}#z(J,Q){let U=SY(this.#X.properties,J);switch(U.constructor){case i:return U[0](Q);case W8:return new W8(void 0)}}#Z(J){let Q=(S)=>this.send(new TY(S)),U=(S,w)=>this.send(new tY(S,w)),M=()=>{return},D=()=>{return},C=(S,w)=>this.send(new NV(S,w));globalThis.queueMicrotask(()=>{HJ(J,Q,U,M,D,C)})}}class _Z extends m{constructor(J,Q,U,M){super();this.init=J,this.update=Q,this.view=U,this.config=M}}class $W extends m{constructor(J){super();this.selector=J}}class O9 extends m{}function $Z(J,Q,U){return new _Z(J,Q,U,EZ(v8))}function hZ(J,Q,U){return Z9(!jY(),new W8(new O9),()=>{return vZ(J,Q,U)})}function mZ(J,Q){return[J,Q]}var Uz={handle_external_links:!1,handle_internal_links:!0},uZ=globalThis?.window?.location?.href,gW=()=>{if(!uZ)return new W8(void 0);else return new i(hW(new URL(uZ)))},fW=(J,Q=Uz)=>{document.addEventListener("click",(U)=>{let M=cZ(U.target);if(!M)return;try{let D=new URL(M.href),C=hW(D),S=D.host!==window.location.host;if(!Q.handle_external_links&&S)return;if(!Q.handle_internal_links&&!S)return;if(U.preventDefault(),!S)window.history.pushState({},"",M.href),window.requestAnimationFrame(()=>{if(D.hash)document.getElementById(D.hash.slice(1))?.scrollIntoView();else window.scrollTo(0,0)});return J(C)}catch{return}}),window.addEventListener("popstate",(U)=>{U.preventDefault();let M=new URL(window.location.href),D=hW(M);window.requestAnimationFrame(()=>{if(M.hash)document.getElementById(M.hash.slice(1))?.scrollIntoView();else window.scrollTo(0,0)}),J(D)}),window.addEventListener("modem-push",({detail:U})=>{J(U)}),window.addEventListener("modem-replace",({detail:U})=>{J(U)})},pZ=(J)=>{window.history.pushState({},"",t5(J)),window.requestAnimationFrame(()=>{if(J.fragment[0])document.getElementById(J.fragment[0])?.scrollIntoView()}),window.dispatchEvent(new CustomEvent("modem-push",{detail:J}))};var cZ=(J)=>{if(!J||J.tagName==="BODY")return null;else if(J.tagName==="A")return J;else return cZ(J.parentElement)},hW=(J)=>{return new w7(J.protocol?new K8(J.protocol.slice(0,-1)):new D8,new D8,J.hostname?new K8(J.hostname):new D8,J.port?new K8(Number(J.port)):new D8,J.pathname,J.search?new K8(J.search.slice(1)):new D8,J.hash?new K8(J.hash.slice(1)):new D8)};function sZ(J){return g0((Q)=>{return Z9(!jY(),void 0,()=>{return fW((U)=>{let D=J(U);return Q(D)})})})}var CV=new w7(new D8,new D8,new D8,new D8,"",new D8,new D8);function mW(J,Q,U){return g0((M)=>{return Z9(!jY(),void 0,()=>{return pZ(new w7(CV.scheme,CV.userinfo,CV.host,CV.port,J,Q,U))})})}function OV(J){let Q=document.querySelector(J);if(!Q)return new W8;return new i(Q)}function AV(J){return J.innerText}class dZ extends m{constructor(J,Q){super();this.name=J,this.h3_index=Q}}class lZ extends m{constructor(J,Q,U){super();this.ref=J,this.mime_type=Q,this.size=U}}class iZ extends m{constructor(J,Q,U,M,D,C,S,w,T,v,f,b){super();this.id=J,this.uri=Q,this.cid=U,this.did=M,this.handle=D,this.display_name=C,this.description=S,this.avatar_url=w,this.avatar_blob=T,this.home_town=v,this.interests=f,this.indexed_at=b}}function Dz(){return b8("name",r8,(J)=>{return b8("value",r8,(Q)=>{return P6(new dZ(J,Q))})})}function Nz(){return b8("ref",r8,(J)=>{return b8("mime_type",r8,(Q)=>{return b8("size",C7,(U)=>{return P6(new lZ(J,Q,U))})})})}function SV(){return b8("id",r8,(J)=>{return b8("uri",r8,(Q)=>{return b8("cid",r8,(U)=>{return b8("did",r8,(M)=>{return b8("handle",N0(r8),(D)=>{return b8("display_name",N0(r8),(C)=>{return b8("description",N0(r8),(S)=>{return b8("avatar_url",N0(r8),(w)=>{return b8("avatar_blob",N0(Nz()),(T)=>{return b8("home_town",N0(Dz()),(v)=>{return b8("interests",N0(X9(r8)),(f)=>{return b8("indexed_at",r8,(b)=>{return P6(new iZ(J,Q,U,M,D,C,S,w,T,v,f,b))})})})})})})})})})})})})}var j0=function(J){J=J||{};var Q=typeof J<"u"?J:{},U={},M;for(M in Q)if(Q.hasOwnProperty(M))U[M]=Q[M];var D=[],C="";function S($){if(Q.locateFile)return Q.locateFile($,C);return C+$}var w;{if(typeof document<"u"&&document.currentScript)C=document.currentScript.src;if(C.indexOf("blob:")!==0)C=C.substr(0,C.lastIndexOf("/")+1);else C="";w=function(p,X8,c){var V=new XMLHttpRequest;V.open("GET",p,!0),V.responseType="arraybuffer",V.onload=function(){if(V.status==200||V.status==0&&V.response){X8(V.response);return}var n8=fV(p);if(n8){X8(n8.buffer);return}c()},V.onerror=c,V.send(null)}}var T=Q.print||console.log.bind(console),v=Q.printErr||console.warn.bind(console);for(M in U)if(U.hasOwnProperty(M))Q[M]=U[M];if(U=null,Q.arguments)D=Q.arguments;var f=0,b=function($){f=$},o=function(){return f},J8=8;function Y8($,p,X8,c){if(X8=X8||"i8",X8.charAt(X8.length-1)==="*")X8="i32";switch(X8){case"i1":u8[$>>0]=p;break;case"i8":u8[$>>0]=p;break;case"i16":s8[$>>1]=p;break;case"i32":T8[$>>2]=p;break;case"i64":gV=[p>>>0,(X7=p,+$Q(X7)>=1?X7>0?(fQ(+gQ(X7/4294967296),4294967295)|0)>>>0:~~+hQ((X7-+(~~X7>>>0))/4294967296)>>>0:0)],T8[$>>2]=gV[0],T8[$+4>>2]=gV[1];break;case"float":l8[$>>2]=p;break;case"double":f8[$>>3]=p;break;default:kY("invalid type for setValue: "+X8)}}function G8($,p,X8){if(p=p||"i8",p.charAt(p.length-1)==="*")p="i32";switch(p){case"i1":return u8[$>>0];case"i8":return u8[$>>0];case"i16":return s8[$>>1];case"i32":return T8[$>>2];case"i64":return T8[$>>2];case"float":return l8[$>>2];case"double":return f8[$>>3];default:kY("invalid type for getValue: "+p)}return null}var e=!1;function N8($,p){if(!$)kY("Assertion failed: "+p)}function V8($){var p=Q["_"+$];return N8(p,"Cannot call unknown function "+$+", make sure it is exported"),p}function F8($,p,X8,c,V){var K6={string:function(H6){var m8=0;if(H6!==null&&H6!==void 0&&H6!==0){var c8=(H6.length<<2)+1;m8=zK(c8),A8(H6,m8,c8)}return m8},array:function(H6){var m8=zK(H6.length);return Y6(H6,m8),m8}};function n8(H6){if(p==="string")return B8(H6);if(p==="boolean")return Boolean(H6);return H6}var O=V8($),I6=[],t6=0;if(c)for(var w6=0;w6<c.length;w6++){var p8=K6[X8[w6]];if(p8){if(t6===0)t6=Y1();I6[w6]=p8(c[w6])}else I6[w6]=c[w6]}var F6=O.apply(null,I6);if(F6=n8(F6),t6!==0)eQ(t6);return F6}function j8($,p,X8,c){X8=X8||[];var V=X8.every(function(n8){return n8==="number"}),K6=p!=="string";if(K6&&V&&!c)return V8($);return function(){return F8($,p,X8,arguments,c)}}var u=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function q8($,p,X8){var c=p+X8,V=p;while($[V]&&!(V>=c))++V;if(V-p>16&&$.subarray&&u)return u.decode($.subarray(p,V));else{var K6="";while(p<V){var n8=$[p++];if(!(n8&128)){K6+=String.fromCharCode(n8);continue}var O=$[p++]&63;if((n8&224)==192){K6+=String.fromCharCode((n8&31)<<6|O);continue}var I6=$[p++]&63;if((n8&240)==224)n8=(n8&15)<<12|O<<6|I6;else n8=(n8&7)<<18|O<<12|I6<<6|$[p++]&63;if(n8<65536)K6+=String.fromCharCode(n8);else{var t6=n8-65536;K6+=String.fromCharCode(55296|t6>>10,56320|t6&1023)}}}return K6}function B8($,p){return $?q8(V6,$,p):""}function $8($,p,X8,c){if(!(c>0))return 0;var V=X8,K6=X8+c-1;for(var n8=0;n8<$.length;++n8){var O=$.charCodeAt(n8);if(O>=55296&&O<=57343){var I6=$.charCodeAt(++n8);O=65536+((O&1023)<<10)|I6&1023}if(O<=127){if(X8>=K6)break;p[X8++]=O}else if(O<=2047){if(X8+1>=K6)break;p[X8++]=192|O>>6,p[X8++]=128|O&63}else if(O<=65535){if(X8+2>=K6)break;p[X8++]=224|O>>12,p[X8++]=128|O>>6&63,p[X8++]=128|O&63}else{if(X8+3>=K6)break;p[X8++]=240|O>>18,p[X8++]=128|O>>12&63,p[X8++]=128|O>>6&63,p[X8++]=128|O&63}}return p[X8]=0,X8-V}function A8($,p,X8){return $8($,V6,p,X8)}var h8=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function Y6($,p){u8.set($,p)}function D6($,p){if($%p>0)$+=p-$%p;return $}var q6,u8,V6,s8,X6,T8,o8,l8,f8;function G6($){q6=$,Q.HEAP8=u8=new Int8Array($),Q.HEAP16=s8=new Int16Array($),Q.HEAP32=T8=new Int32Array($),Q.HEAPU8=V6=new Uint8Array($),Q.HEAPU16=X6=new Uint16Array($),Q.HEAPU32=o8=new Uint32Array($),Q.HEAPF32=l8=new Float32Array($),Q.HEAPF64=f8=new Float64Array($)}var W6=5271520,M6=28608,F0=Q.TOTAL_MEMORY||33554432;if(Q.buffer)q6=Q.buffer;else q6=new ArrayBuffer(F0);F0=q6.byteLength,G6(q6),T8[M6>>2]=W6;function u6($){while($.length>0){var p=$.shift();if(typeof p=="function"){p();continue}var X8=p.func;if(typeof X8==="number")if(p.arg===void 0)Q.dynCall_v(X8);else Q.dynCall_vi(X8,p.arg);else X8(p.arg===void 0?null:p.arg)}}var T0=[],zY=[],UY=[],R0=[];function p0(){if(Q.preRun){if(typeof Q.preRun=="function")Q.preRun=[Q.preRun];while(Q.preRun.length)WK(Q.preRun.shift())}u6(T0)}function T9(){u6(zY)}function _V(){u6(UY)}function XK(){if(Q.postRun){if(typeof Q.postRun=="function")Q.postRun=[Q.postRun];while(Q.postRun.length)_Q(Q.postRun.shift())}u6(R0)}function WK($){T0.unshift($)}function _Q($){R0.unshift($)}var{abs:$Q,ceil:hQ,floor:gQ,min:fQ}=Math,yY=0,$V=null,f7=null;function mQ($){if(yY++,Q.monitorRunDependencies)Q.monitorRunDependencies(yY)}function bQ($){if(yY--,Q.monitorRunDependencies)Q.monitorRunDependencies(yY);if(yY==0){if($V!==null)clearInterval($V),$V=null;if(f7){var p=f7;f7=null,p()}}}Q.preloadedImages={},Q.preloadedAudios={};var c0=null,hV="data:application/octet-stream;base64,";function KK($){return String.prototype.startsWith?$.startsWith(hV):$.indexOf(hV)===0}var X7,gV;c0="data:application/octet-stream;base64,AAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAAAQAAAAQAAAADAAAABgAAAAUAAAACAAAAAAAAAAIAAAADAAAAAQAAAAQAAAAGAAAAAAAAAAUAAAADAAAABgAAAAQAAAAFAAAAAAAAAAEAAAACAAAABAAAAAUAAAAGAAAAAAAAAAIAAAADAAAAAQAAAAUAAAACAAAAAAAAAAEAAAADAAAABgAAAAQAAAAGAAAAAAAAAAUAAAACAAAAAQAAAAQAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAAAAAAEAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAYAAAAAAAAABQAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAYAAAAAAAAAAwAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAFAAAABAAAAAAAAAABAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAgAAAAQAAAADAAAACAAAAAEAAAAHAAAABgAAAAkAAAAAAAAAAwAAAAIAAAACAAAA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AAAAAAAAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAABQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAEAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAwAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAUAAAABAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAAUAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAD/////AQAAAAAAAAADAAAABAAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAUAAAABAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAEAAAD//////////wEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAACAAAAAAAAAAAAAAABAAAAAgAAAAYAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAAAAAAAAAAAAQAAAAEAAAAFAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAACAAAAAAAAAAAAAAABAAAAAwAAAAcAAAAGAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABwAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAADgAAAAIAAAAAAAAAAAAAAAEAAAAAAAAACQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAIAAAAAAAAAAAAAAAEAAAAEAAAACAAAAAoAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAACQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAAAAAAAAAAAAQAAAAsAAAAPAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAIAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAgAAAAAAAAAAAAAAAQAAAAwAAAAQAAAADAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAADwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAAAAAAAAAAAAABAAAACgAAABMAAAAIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAACQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAAAAAAAAAAAAAEAAAANAAAAEQAAAA0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAACAAAAAAAAAAAAAAABAAAADgAAABIAAAAPAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAADwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABIAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAgAAAAAAAAAAAAAAAQAAAP//////////EwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAASAAAAAAAAABgAAAAAAAAAIQAAAAAAAAAeAAAAAAAAACAAAAADAAAAMQAAAAEAAAAwAAAAAwAAADIAAAADAAAACAAAAAAAAAAFAAAABQAAAAoAAAAFAAAAFgAAAAAAAAAQAAAAAAAAABIAAAAAAAAAKQAAAAEAAAAhAAAAAAAAAB4AAAAAAAAABAAAAAAAAAAAAAAABQAAAAIAAAAFAAAADwAAAAEAAAAIAAAAAAAAAAUAAAAFAAAAHwAAAAEAAAAWAAAAAAAAABAAAAAAAAAAAgAAAAAAAAAGAAAAAAAAAA4AAAAAAAAACgAAAAAAAAALAAAAAAAAABEAAAADAAAAGAAAAAEAAAAXAAAAAwAAABkAAAADAAAAAAAAAAAAAAABAAAABQAAAAkAAAAFAAAABQAAAAAAAAACAAAAAAAAAAYAAAAAAAAAEgAAAAEAAAAKAAAAAAAAAAsAAAAAAAAABAAAAAEAAAADAAAABQAAAAcAAAAFAAAACAAAAAEAAAAAAAAAAAAAAAEAAAAFAAAAEAAAAAEAAAAFAAAAAAAAAAIAAAAAAAAABwAAAAAAAAAVAAAAAAAAACYAAAAAAAAACQAAAAAAAAATAAAAAAAAACIAAAADAAAADgAAAAEAAAAUAAAAAwAAACQAAAADAAAAAwAAAAAAAAANAAAABQAAAB0AAAAFAAAAAQAAAAAAAAAHAAAAAAAAABUAAAAAAAAABgAAAAEAAAAJAAAAAAAAABMAAAAAAAAABAAAAAIAAAAMAAAA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Zhu25b633D8c1YgmzowSQNM25BRKWARArGS08/lNxD+LFssHwmMRQLC5aNcxBgJABL9HT0WRF0CjCmJmOGEOQHsuaVzMP/s/TWJCaGGwBUCeu1PAPLzjP9nqN9DZOBNAKE4JcydbCkCGtbd1qjPzP8dgm9U8jhVAtPeKTkVwDkCeCLss5l37P401XMPLmBdAFd29VMVQDUBg0yA55h75Pz6odcYLCRdApBM4rBrkAkDyAVWgQxbRP4XDMnK20hFAymLlF7EmzD8GUgo9XBHlP3lbK7T9COc/k+OhPthhy7+YGEpnrOvCPzBFhLs15u4/epbqB6H4uz9IuuLF5svev6lzLKY31es/CaQ0envF5z8ZY0xlUADXv7zaz7HYEuI/CfbK1sn16T8uAQfWwxLWPzKn/YuFN94/5KdbC1AFu793fyCSnlfvPzK2y4doAMY/NRg5t1/X6b/shq4QJaHDP5yNIAKPOeI/vpn7BSE30r/X4YQrO6nrv78Ziv/Thto/DqJ1Y6+y5z9l51NaxFrlv8QlA65HOLS/86dxiEc96z+Hj0+LFjneP6LzBZ8LTc2/DaJ1Y6+y579l51NaxFrlP8QlA65HOLQ/8qdxiEc967+Jj0+LFjnev6LzBZ8LTc0/1qdbC1AFuz93fyCSnlfvvzK2y4doAMa/NRg5t1/X6T/vhq4QJaHDv5yNIAKPOeK/wJn7BSE30j/W4YQrO6nrP78Ziv/Thtq/CaQ0envF578XY0xlUADXP7zaz7HYEuK/CvbK1sn16b8rAQfWwxLWvzKn/YuFN96/zWLlF7EmzL8GUgo9XBHlv3lbK7T9COe/kOOhPthhyz+cGEpnrOvCvzBFhLs15u6/c5bqB6H4u79IuuLF5sveP6lzLKY31eu/AQAAAP////8HAAAA/////zEAAAD/////VwEAAP////9hCQAA/////6dBAAD/////kcsBAP/////3kAwA/////8H2VwAAAAAAAAAAAAAAAAACAAAA/////w4AAAD/////YgAAAP////+uAgAA/////8ISAAD/////ToMAAP////8ilwMA/////+4hGQD/////gu2vAAAAAAAAAAAAAAAAAAAAAAACAAAA//////////8BAAAAAwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////AgAAAP//////////AQAAAAAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD/////////////////////AQAAAP///////////////wIAAAD///////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP///////////////////////////////wIAAAD///////////////8BAAAA/////////////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAABAAAA//////////8CAAAA//////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAAAQAAAP//////////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAACAAAAAAAAAAIAAAABAAAAAQAAAAIAAAACAAAAAAAAAAUAAAAFAAAAAAAAAAIAAAACAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAEAAAACAAAAAgAAAAIAAAAAAAAABQAAAAYAAAAAAAAAAgAAAAIAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAAAAAACAAAAAQAAAAMAAAACAAAAAgAAAAAAAAAFAAAABwAAAAAAAAACAAAAAgAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAIAAAABAAAABAAAAAIAAAACAAAAAAAAAAUAAAAIAAAAAAAAAAIAAAACAAAAAwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAgAAAAEAAAAAAAAAAgAAAAIAAAAAAAAABQAAAAkAAAAAAAAAAgAAAAIAAAADAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAIAAAAAAAAAAwAAAA4AAAACAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAgAAAAMAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAACAAAAAgAAAAAAAAADAAAACgAAAAIAAAAAAAAAAgAAAAMAAAABAAAAAAAAAAIAAAACAAAAAwAAAAcAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAIAAAACAAAAAAAAAAMAAAALAAAAAgAAAAAAAAACAAAAAwAAAAIAAAAAAAAAAgAAAAIAAAADAAAACAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAgAAAAIAAAAAAAAAAwAAAAwAAAACAAAAAAAAAAIAAAADAAAAAwAAAAAAAAACAAAAAgAAAAMAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAACAAAAAgAAAAAAAAADAAAADQAAAAIAAAAAAAAAAgAAAAMAAAAEAAAAAAAAAAIAAAACAAAAAwAAAAoAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAIAAAACAAAAAAAAAAMAAAAGAAAAAgAAAAAAAAACAAAAAwAAAA8AAAAAAAAAAgAAAAIAAAADAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAIAAAAAAAAAAwAAAAcAAAACAAAAAAAAAAIAAAADAAAAEAAAAAAAAAACAAAAAgAAAAMAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAACAAAAAgAAAAAAAAADAAAACAAAAAIAAAAAAAAAAgAAAAMAAAARAAAAAAAAAAIAAAACAAAAAwAAAA0AAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAACAAAAAAAAAAMAAAAJAAAAAgAAAAAAAAACAAAAAwAAABIAAAAAAAAAAgAAAAIAAAADAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAgAAAAIAAAAAAAAAAwAAAAUAAAACAAAA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ZV0gPT0gS0kAZmFjZWlqay5jAF9mYWNlSWprUGVudFRvQ2VsbEJvdW5kYXJ5AGFkamFjZW50RmFjZURpcltjZW50ZXJJSksuZmFjZV1bZmFjZTJdID09IEtJAF9mYWNlSWprVG9DZWxsQm91bmRhcnkAaDNJbmRleC5jAGNvbXBhY3RDZWxscwBsYXRMbmdUb0NlbGwAY2VsbFRvQ2hpbGRQb3MAdmFsaWRhdGVDaGlsZFBvcwBsYXRMbmcuYwBjZWxsQXJlYVJhZHMyAHBvbHlnb24tPm5leHQgPT0gTlVMTABsaW5rZWRHZW8uYwBhZGROZXdMaW5rZWRQb2x5Z29uAG5leHQgIT0gTlVMTABsb29wICE9IE5VTEwAYWRkTmV3TGlua2VkTG9vcABwb2x5Z29uLT5maXJzdCA9PSBOVUxMAGFkZExpbmtlZExvb3AAY29vcmQgIT0gTlVMTABhZGRMaW5rZWRDb29yZABsb29wLT5maXJzdCA9PSBOVUxMAGlubmVyTG9vcHMgIT0gTlVMTABub3JtYWxpemVNdWx0aVBvbHlnb24AYmJveGVzICE9IE5VTEwAY2FuZGlkYXRlcyAhPSBOVUxMAGZpbmRQb2x5Z29uRm9ySG9sZQBjYW5kaWRhdGVCQm94ZXMgIT0gTlVMTAByZXZEaXIgIT0gSU5WQUxJRF9ESUdJVABsb2NhbGlqLmMAY2VsbFRvTG9jYWxJamsAYmFzZUNlbGwgIT0gb3JpZ2luQmFzZUNlbGwAIShvcmlnaW5PblBlbnQgJiYgaW5kZXhPblBlbnQpAGJhc2VDZWxsID09IG9yaWdpbkJhc2VDZWxsAGJhc2VDZWxsICE9IElOVkFMSURfQkFTRV9DRUxMAGxvY2FsSWprVG9DZWxsACFfaXNCYXNlQ2VsbFBlbnRhZ29uKGJhc2VDZWxsKQBiYXNlQ2VsbFJvdGF0aW9ucyA+PSAwAGdyaWRQYXRoQ2VsbHMAcG9seWZpbGwuYwBpdGVyU3RlcFBvbHlnb25Db21wYWN0ADAAdmVydGV4LmMAY2VsbFRvVmVydGV4AGdyYXBoLT5idWNrZXRzICE9IE5VTEwAdmVydGV4R3JhcGguYwBpbml0VmVydGV4R3JhcGgAbm9kZSAhPSBOVUxMAGFkZFZlcnRleE5vZGU=";var uQ=28624;function JK($){return $}function ZK($){var p=/\b__Z[\w\d_]+/g;return $.replace(p,function(X8){var c=JK(X8);return X8===c?X8:c+" ["+X8+"]"})}function QK(){var $=Error();if(!$.stack){try{throw Error(0)}catch(p){$=p}if(!$.stack)return"(no stack trace available)"}return $.stack.toString()}function pQ(){var $=QK();if(Q.extraStackTrace)$+=`
6
6
-
`+Q.extraStackTrace();return ZK($)}function cQ($,p,X8,c){kY("Assertion failed: "+B8($)+", at: "+[p?B8(p):"unknown filename",X8,c?B8(c):"unknown function"])}function GK(){return u8.length}function sQ($,p,X8){V6.set(V6.subarray(p,p+X8),$)}function nQ($){if(Q.___errno_location)T8[Q.___errno_location()>>2]=$;return $}function rQ($){kY("OOM")}function FK($){try{var p=new ArrayBuffer($);if(p.byteLength!=$)return;return new Int8Array(p).set(u8),aQ(p),G6(p),1}catch(X8){}}function dQ($){var p=GK(),X8=16777216,c=2147483648-X8;if($>c)return!1;var V=16777216,K6=Math.max(p,V);while(K6<$)if(K6<=536870912)K6=D6(2*K6,X8);else K6=Math.min(D6((3*K6+2147483648)/4,X8),c);var n8=FK(K6);if(!n8)return!1;return!0}var lQ=typeof atob==="function"?atob:function($){var p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",X8="",c,V,K6,n8,O,I6,t6,w6=0;$=$.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{if(n8=p.indexOf($.charAt(w6++)),O=p.indexOf($.charAt(w6++)),I6=p.indexOf($.charAt(w6++)),t6=p.indexOf($.charAt(w6++)),c=n8<<2|O>>4,V=(O&15)<<4|I6>>2,K6=(I6&3)<<6|t6,X8=X8+String.fromCharCode(c),I6!==64)X8=X8+String.fromCharCode(V);if(t6!==64)X8=X8+String.fromCharCode(K6)}while(w6<$.length);return X8};function iQ($){try{var p=lQ($),X8=new Uint8Array(p.length);for(var c=0;c<p.length;++c)X8[c]=p.charCodeAt(c);return X8}catch(V){throw Error("Converting base64 string to bytes failed.")}}function fV($){if(!KK($))return;return iQ($.slice(hV.length))}var oQ={Math,Int8Array,Int32Array,Uint8Array,Float32Array,Float64Array},tQ={a:kY,b,c:o,d:cQ,e:nQ,f:GK,g:sQ,h:dQ,i:rQ,j:JK,k:ZK,l:FK,m:QK,n:pQ,o:uQ,p:M6},d=function($,p,X8){var c=new $.Int8Array(X8),V=new $.Int32Array(X8),K6=new $.Uint8Array(X8),n8=new $.Float32Array(X8),O=new $.Float64Array(X8),I6=p.o|0,t6=p.p|0,w6=$.Math.floor,p8=$.Math.abs,F6=$.Math.sqrt,H6=$.Math.pow,m8=$.Math.cos,c8=$.Math.sin,m7=$.Math.tan,V1=$.Math.acos,X1=$.Math.asin,uV=$.Math.atan,z0=$.Math.atan2,W7=$.Math.ceil,x0=$.Math.imul,pV=$.Math.min,W1=$.Math.max,s0=$.Math.clz32,E8=p.b,R=p.c,I8=p.d,BK=p.e,K1=p.f,J1=p.g,Z1=p.h,Q1=p.i,A=28640;function G1(Y){return c=new Int8Array(Y),K6=new Uint8Array(Y),V=new Int32Array(Y),n8=new Float32Array(Y),O=new Float64Array(Y),X8=Y,!0}function F1(Y){Y=Y|0;var X=0;return X=A,A=A+Y|0,A=A+15&-16,X|0}function z1(){return A|0}function U1(Y){Y=Y|0,A=Y}function M1(Y,X){Y=Y|0,X=X|0,A=Y}function q1(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0;if((Y|0)<0)return X=2,X|0;if((Y|0)>13780509)return X=_9(15,X)|0,X|0;else return W=((Y|0)<0)<<31>>31,Z=j6(Y|0,W|0,3,0)|0,K=R()|0,W=C8(Y|0,W|0,1,0)|0,W=j6(Z|0,K|0,W|0,R()|0)|0,W=C8(W|0,R()|0,1,0)|0,Y=R()|0,V[X>>2]=W,V[X+4>>2]=Y,X=0,X|0;return 0}function DK(Y,X,W,K){return Y=Y|0,X=X|0,W=W|0,K=K|0,NK(Y,X,W,K,0)|0}function NK(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,q=0,B=0;if(q=A,A=A+16|0,F=q,!(CK(Y,X,W,K,Z)|0))return K=0,A=q,K|0;do if((W|0)>=0){if((W|0)>13780509){if(G=_9(15,F)|0,G|0)break;z=F,F=V[z>>2]|0,z=V[z+4>>2]|0}else G=((W|0)<0)<<31>>31,B=j6(W|0,G|0,3,0)|0,z=R()|0,G=C8(W|0,G|0,1,0)|0,G=j6(B|0,z|0,G|0,R()|0)|0,G=C8(G|0,R()|0,1,0)|0,z=R()|0,V[F>>2]=G,V[F+4>>2]=z,F=G;if(NY(K|0,0,F<<3|0)|0,Z|0){NY(Z|0,0,F<<2|0)|0,G=E0(Y,X,W,K,Z,F,z,0)|0;break}if(G=e6(F,4)|0,!G)G=13;else B=E0(Y,X,W,K,G,F,z,0)|0,O8(G),G=B}else G=2;while(0);return B=G,A=q,B|0}function CK(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0,x=0;if(x=A,A=A+16|0,L=x,j=x+8|0,H=L,V[H>>2]=Y,V[H+4>>2]=X,(W|0)<0)return j=2,A=x,j|0;if(G=K,V[G>>2]=Y,V[G+4>>2]=X,G=(Z|0)!=0,G)V[Z>>2]=0;if(J6(Y,X)|0)return j=9,A=x,j|0;V[j>>2]=0;Y:do if((W|0)>=1)if(G){N=1,B=0,P=0,H=1,G=Y;while(!0){if(!(B|P)){if(G=L6(G,X,4,j,L)|0,G|0)break Y;if(X=L,G=V[X>>2]|0,X=V[X+4>>2]|0,J6(G,X)|0){G=9;break Y}}if(G=L6(G,X,V[26800+(P<<2)>>2]|0,j,L)|0,G|0)break Y;if(X=L,G=V[X>>2]|0,X=V[X+4>>2]|0,Y=K+(N<<3)|0,V[Y>>2]=G,V[Y+4>>2]=X,V[Z+(N<<2)>>2]=H,Y=B+1|0,F=(Y|0)==(H|0),z=P+1|0,q=(z|0)==6,J6(G,X)|0){G=9;break Y}if(H=H+(q&F&1)|0,(H|0)>(W|0)){G=0;break}else N=N+1|0,B=F?0:Y,P=F?q?0:z:P}}else{N=1,B=0,P=0,H=1,G=Y;while(!0){if(!(B|P)){if(G=L6(G,X,4,j,L)|0,G|0)break Y;if(X=L,G=V[X>>2]|0,X=V[X+4>>2]|0,J6(G,X)|0){G=9;break Y}}if(G=L6(G,X,V[26800+(P<<2)>>2]|0,j,L)|0,G|0)break Y;if(X=L,G=V[X>>2]|0,X=V[X+4>>2]|0,Y=K+(N<<3)|0,V[Y>>2]=G,V[Y+4>>2]=X,Y=B+1|0,F=(Y|0)==(H|0),z=P+1|0,q=(z|0)==6,J6(G,X)|0){G=9;break Y}if(H=H+(q&F&1)|0,(H|0)>(W|0)){G=0;break}else N=N+1|0,B=F?0:Y,P=F?q?0:z:P}}else G=0;while(0);return j=G,A=x,j|0}function E0(Y,X,W,K,Z,G,F,z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0,G=G|0,F=F|0,z=z|0;var q=0,B=0,N=0,P=0,H=0,L=0,j=0,x=0,y=0,h=0;if(x=A,A=A+16|0,L=x+8|0,j=x,q=F7(Y|0,X|0,G|0,F|0)|0,N=R()|0,P=K+(q<<3)|0,y=P,h=V[y>>2]|0,y=V[y+4>>2]|0,B=(h|0)==(Y|0)&(y|0)==(X|0),!((h|0)==0&(y|0)==0|B))do q=C8(q|0,N|0,1,0)|0,q=G7(q|0,R()|0,G|0,F|0)|0,N=R()|0,P=K+(q<<3)|0,h=P,y=V[h>>2]|0,h=V[h+4>>2]|0,B=(y|0)==(Y|0)&(h|0)==(X|0);while(!((y|0)==0&(h|0)==0|B));if(q=Z+(q<<2)|0,B?(V[q>>2]|0)<=(z|0):0)return h=0,A=x,h|0;if(h=P,V[h>>2]=Y,V[h+4>>2]=X,V[q>>2]=z,(z|0)>=(W|0))return h=0,A=x,h|0;switch(B=z+1|0,V[L>>2]=0,q=L6(Y,X,2,L,j)|0,q|0){case 9:{H=9;break}case 0:{if(q=j,q=E0(V[q>>2]|0,V[q+4>>2]|0,W,K,Z,G,F,B)|0,!q)H=9;break}default:}Y:do if((H|0)==9){switch(V[L>>2]=0,q=L6(Y,X,3,L,j)|0,q|0){case 9:break;case 0:{if(q=j,q=E0(V[q>>2]|0,V[q+4>>2]|0,W,K,Z,G,F,B)|0,q|0)break Y;break}default:break Y}switch(V[L>>2]=0,q=L6(Y,X,1,L,j)|0,q|0){case 9:break;case 0:{if(q=j,q=E0(V[q>>2]|0,V[q+4>>2]|0,W,K,Z,G,F,B)|0,q|0)break Y;break}default:break Y}switch(V[L>>2]=0,q=L6(Y,X,5,L,j)|0,q|0){case 9:break;case 0:{if(q=j,q=E0(V[q>>2]|0,V[q+4>>2]|0,W,K,Z,G,F,B)|0,q|0)break Y;break}default:break Y}switch(V[L>>2]=0,q=L6(Y,X,4,L,j)|0,q|0){case 9:break;case 0:{if(q=j,q=E0(V[q>>2]|0,V[q+4>>2]|0,W,K,Z,G,F,B)|0,q|0)break Y;break}default:break Y}switch(V[L>>2]=0,q=L6(Y,X,6,L,j)|0,q|0){case 9:break;case 0:{if(q=j,q=E0(V[q>>2]|0,V[q+4>>2]|0,W,K,Z,G,F,B)|0,q|0)break Y;break}default:break Y}return h=0,A=x,h|0}while(0);return h=q,A=x,h|0}function L6(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0;if(W>>>0>6)return Z=1,Z|0;if(P=(V[K>>2]|0)%6|0,V[K>>2]=P,(P|0)>0){G=0;do W=$Y(W)|0,G=G+1|0;while((G|0)<(V[K>>2]|0))}if(P=s(Y|0,X|0,45)|0,R()|0,N=P&127,N>>>0>121)return Z=5,Z|0;q=a6(Y,X)|0,G=s(Y|0,X|0,52)|0,R()|0,G=G&15;Y:do if(!G)B=8;else{while(!0){if(F=(15-G|0)*3|0,z=s(Y|0,X|0,F|0)|0,R()|0,z=z&7,(z|0)==7){X=5;break}if(j=(U0(G)|0)==0,G=G+-1|0,H=a(7,0,F|0)|0,X=X&~(R()|0),L=a(V[(j?432:16)+(z*28|0)+(W<<2)>>2]|0,0,F|0)|0,F=R()|0,W=V[(j?640:224)+(z*28|0)+(W<<2)>>2]|0,Y=L|Y&~H,X=F|X,!W){W=0;break Y}if(!G){B=8;break Y}}return X|0}while(0);if((B|0)==8){if(j=V[848+(N*28|0)+(W<<2)>>2]|0,L=a(j|0,0,45)|0,Y=L|Y,X=R()|0|X&-1040385,W=V[4272+(N*28|0)+(W<<2)>>2]|0,(j&127|0)==127)j=a(V[848+(N*28|0)+20>>2]|0,0,45)|0,X=R()|0|X&-1040385,W=V[4272+(N*28|0)+20>>2]|0,Y=hY(j|Y,X)|0,X=R()|0,V[K>>2]=(V[K>>2]|0)+1}z=s(Y|0,X|0,45)|0,R()|0,z=z&127;Y:do if(!(Q6(z)|0)){if((W|0)>0){G=0;do Y=hY(Y,X)|0,X=R()|0,G=G+1|0;while((G|0)!=(W|0))}}else{V:do if((a6(Y,X)|0)==1){if((N|0)!=(z|0))if(PK(z,V[7696+(N*28|0)>>2]|0)|0){Y=WX(Y,X)|0,F=1,X=R()|0;break}else I8(27795,26864,533,26872);switch(q|0){case 3:{Y=hY(Y,X)|0,X=R()|0,V[K>>2]=(V[K>>2]|0)+1,F=0;break V}case 5:{Y=WX(Y,X)|0,X=R()|0,V[K>>2]=(V[K>>2]|0)+5,F=0;break V}case 0:return j=9,j|0;default:return j=1,j|0}}else F=0;while(0);if((W|0)>0){G=0;do Y=XX(Y,X)|0,X=R()|0,G=G+1|0;while((G|0)!=(W|0))}if((N|0)!=(z|0)){if(!(sV(z)|0)){if((F|0)!=0|(a6(Y,X)|0)!=5)break;V[K>>2]=(V[K>>2]|0)+1;break}switch(P&127){case 8:case 118:break Y;default:}if((a6(Y,X)|0)!=3)V[K>>2]=(V[K>>2]|0)+1}}while(0);return V[K>>2]=((V[K>>2]|0)+W|0)%6|0,j=Z,V[j>>2]=Y,V[j+4>>2]=X,j=0,j|0}function B1(Y,X,W,K){if(Y=Y|0,X=X|0,W=W|0,K=K|0,!(OK(Y,X,W,K)|0))return K=0,K|0;return NY(K|0,0,W*48|0)|0,K=D1(Y,X,W,K)|0,K|0}function OK(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0;if(j=A,A=A+16|0,H=j,L=j+8|0,P=H,V[P>>2]=Y,V[P+4>>2]=X,(W|0)<0)return L=2,A=j,L|0;if(!W)return L=K,V[L>>2]=Y,V[L+4>>2]=X,L=0,A=j,L|0;V[L>>2]=0;Y:do if(!(J6(Y,X)|0)){Z=0,P=Y;do{if(Y=L6(P,X,4,L,H)|0,Y|0)break Y;if(X=H,P=V[X>>2]|0,X=V[X+4>>2]|0,Z=Z+1|0,J6(P,X)|0){Y=9;break Y}}while((Z|0)<(W|0));N=K,V[N>>2]=P,V[N+4>>2]=X,N=W+-1|0,B=0,Y=1;do{if(Z=26800+(B<<2)|0,(B|0)==5){F=V[Z>>2]|0,G=0,Z=Y;while(!0){if(Y=H,Y=L6(V[Y>>2]|0,V[Y+4>>2]|0,F,L,H)|0,Y|0)break Y;if((G|0)!=(N|0))if(q=H,z=V[q>>2]|0,q=V[q+4>>2]|0,Y=K+(Z<<3)|0,V[Y>>2]=z,V[Y+4>>2]=q,!(J6(z,q)|0))Y=Z+1|0;else{Y=9;break Y}else Y=Z;if(G=G+1|0,(G|0)>=(W|0))break;else Z=Y}}else{F=H,q=V[Z>>2]|0,z=0,Z=Y,G=V[F>>2]|0,F=V[F+4>>2]|0;while(!0){if(Y=L6(G,F,q,L,H)|0,Y|0)break Y;if(F=H,G=V[F>>2]|0,F=V[F+4>>2]|0,Y=K+(Z<<3)|0,V[Y>>2]=G,V[Y+4>>2]=F,Y=Z+1|0,J6(G,F)|0){Y=9;break Y}if(z=z+1|0,(z|0)>=(W|0))break;else Z=Y}}B=B+1|0}while(B>>>0<6);Y=H,Y=((P|0)==(V[Y>>2]|0)?(X|0)==(V[Y+4>>2]|0):0)?0:9}else Y=9;while(0);return L=Y,A=j,L|0}function D1(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0;if(P=A,A=A+16|0,F=P,!W)return V[K>>2]=Y,V[K+4>>2]=X,K=0,A=P,K|0;do if((W|0)>=0){if((W|0)>13780509){if(Z=_9(15,F)|0,Z|0)break;G=F,Z=V[G>>2]|0,G=V[G+4>>2]|0}else Z=((W|0)<0)<<31>>31,N=j6(W|0,Z|0,3,0)|0,G=R()|0,Z=C8(W|0,Z|0,1,0)|0,Z=j6(N|0,G|0,Z|0,R()|0)|0,Z=C8(Z|0,R()|0,1,0)|0,G=R()|0,N=F,V[N>>2]=Z,V[N+4>>2]=G;if(B=e6(Z,8)|0,!B)Z=13;else{if(N=e6(Z,4)|0,!N){O8(B),Z=13;break}if(Z=E0(Y,X,W,B,N,Z,G,0)|0,Z|0){O8(B),O8(N);break}if(X=V[F>>2]|0,F=V[F+4>>2]|0,(F|0)>0|(F|0)==0&X>>>0>0){Z=0,z=0,q=0;do{if(Y=B+(z<<3)|0,G=V[Y>>2]|0,Y=V[Y+4>>2]|0,!((G|0)==0&(Y|0)==0)?(V[N+(z<<2)>>2]|0)==(W|0):0)H=K+(Z<<3)|0,V[H>>2]=G,V[H+4>>2]=Y,Z=Z+1|0;z=C8(z|0,q|0,1,0)|0,q=R()|0}while((q|0)<(F|0)|(q|0)==(F|0)&z>>>0<X>>>0)}O8(B),O8(N),Z=0}}else Z=2;while(0);return H=Z,A=P,H|0}function cV(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,q=0,B=0;z=A,A=A+16|0,G=z,F=z+8|0,Z=(J6(Y,X)|0)==0,Z=Z?1:2;while(!0){if(V[F>>2]=0,B=(L6(Y,X,Z,F,G)|0)==0,q=G,B&((V[q>>2]|0)==(W|0)?(V[q+4>>2]|0)==(K|0):0)){Y=4;break}if(Z=Z+1|0,Z>>>0>=7){Z=7,Y=4;break}}if((Y|0)==4)return A=z,Z|0;return 0}function N1(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,q=0,B=0;if(z=A,A=A+48|0,Z=z+16|0,G=z+8|0,F=z,W=n7(W)|0,W|0)return F=W,A=z,F|0;if(B=Y,q=V[B+4>>2]|0,W=G,V[W>>2]=V[B>>2],V[W+4>>2]=q,rK(G,Z),W=HK(Z,X,F)|0,!W){if(X=V[G>>2]|0,G=V[Y+8>>2]|0,(G|0)>0){Z=V[Y+12>>2]|0,W=0;do X=(V[Z+(W<<3)>>2]|0)+X|0,W=W+1|0;while((W|0)<(G|0))}if(W=F,Z=V[W>>2]|0,W=V[W+4>>2]|0,G=((X|0)<0)<<31>>31,(W|0)<(G|0)|(W|0)==(G|0)&Z>>>0<X>>>0)W=F,V[W>>2]=X,V[W+4>>2]=G,W=G;else X=Z;q=C8(X|0,W|0,12,0)|0,B=R()|0,W=F,V[W>>2]=q,V[W+4>>2]=B,W=K,V[W>>2]=q,V[W+4>>2]=B,W=0}return B=W,A=z,B|0}function AK(Y,X,W,K,Z,G,F){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0,G=G|0,F=F|0;var z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0,x=0,y=0,h=0,_=0,k=0,E=0,t=0,z8=0,Z8=0,x8=0,y8=0,g8=0,R8=0,U8=0,l=0,_8=0,t8=0,k8=0,a8=0,c6=0,Z5=0;if(t8=A,A=A+64|0,R8=t8+48|0,U8=t8+32|0,l=t8+24|0,t=t8+8|0,z8=t8,q=V[Y>>2]|0,(q|0)<=0)return _8=0,A=t8,_8|0;Z8=Y+4|0,x8=R8+8|0,y8=U8+8|0,g8=t+8|0,z=0,k=0;while(!0){if(B=V[Z8>>2]|0,_=B+(k<<4)|0,V[R8>>2]=V[_>>2],V[R8+4>>2]=V[_+4>>2],V[R8+8>>2]=V[_+8>>2],V[R8+12>>2]=V[_+12>>2],(k|0)==(q+-1|0))V[U8>>2]=V[B>>2],V[U8+4>>2]=V[B+4>>2],V[U8+8>>2]=V[B+8>>2],V[U8+12>>2]=V[B+12>>2];else _=B+(k+1<<4)|0,V[U8>>2]=V[_>>2],V[U8+4>>2]=V[_+4>>2],V[U8+8>>2]=V[_+8>>2],V[U8+12>>2]=V[_+12>>2];q=T1(R8,U8,K,l)|0;Y:do if(!q)if(q=l,B=V[q>>2]|0,q=V[q+4>>2]|0,(q|0)>0|(q|0)==0&B>>>0>0){h=0,_=0;V:while(!0){if(a8=1/(+(B>>>0)+4294967296*+(q|0)),Z5=+O[R8>>3],q=k6(B|0,q|0,h|0,_|0)|0,c6=+(q>>>0)+4294967296*+(R()|0),k8=+(h>>>0)+4294967296*+(_|0),O[t>>3]=a8*(Z5*c6)+a8*(+O[U8>>3]*k8),O[g8>>3]=a8*(+O[x8>>3]*c6)+a8*(+O[y8>>3]*k8),q=KX(t,K,z8)|0,q|0){z=q;break}y=z8,x=V[y>>2]|0,y=V[y+4>>2]|0,H=F7(x|0,y|0,X|0,W|0)|0,N=R()|0,q=F+(H<<3)|0,P=q,B=V[P>>2]|0,P=V[P+4>>2]|0;X:do if((B|0)==0&(P|0)==0)E=q,_8=16;else{L=0,j=0;while(!0){if((L|0)>(W|0)|(L|0)==(W|0)&j>>>0>X>>>0){z=1;break V}if((B|0)==(x|0)&(P|0)==(y|0))break X;if(q=C8(H|0,N|0,1,0)|0,H=G7(q|0,R()|0,X|0,W|0)|0,N=R()|0,j=C8(j|0,L|0,1,0)|0,L=R()|0,q=F+(H<<3)|0,P=q,B=V[P>>2]|0,P=V[P+4>>2]|0,(B|0)==0&(P|0)==0){E=q,_8=16;break}}}while(0);if((_8|0)==16?(_8=0,!((x|0)==0&(y|0)==0)):0)j=E,V[j>>2]=x,V[j+4>>2]=y,j=G+(V[Z>>2]<<3)|0,V[j>>2]=x,V[j+4>>2]=y,j=Z,j=C8(V[j>>2]|0,V[j+4>>2]|0,1,0)|0,x=R()|0,y=Z,V[y>>2]=j,V[y+4>>2]=x;if(h=C8(h|0,_|0,1,0)|0,_=R()|0,q=l,B=V[q>>2]|0,q=V[q+4>>2]|0,!((q|0)>(_|0)|(q|0)==(_|0)&B>>>0>h>>>0)){B=1;break Y}}B=0}else B=1;else B=0,z=q;while(0);if(k=k+1|0,!B){_8=21;break}if(q=V[Y>>2]|0,(k|0)>=(q|0)){z=0,_8=21;break}}if((_8|0)==21)return A=t8,z|0;return 0}function C1(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0,x=0,y=0,h=0,_=0,k=0,E=0,t=0,z8=0,Z8=0,x8=0,y8=0,g8=0,R8=0,U8=0,l=0,_8=0,t8=0,k8=0,a8=0,c6=0;if(c6=A,A=A+112|0,_8=c6+80|0,q=c6+72|0,t8=c6,k8=c6+56|0,Z=n7(W)|0,Z|0)return a8=Z,A=c6,a8|0;if(B=Y+8|0,a8=y0((V[B>>2]<<5)+32|0)|0,!a8)return a8=13,A=c6,a8|0;if(UX(Y,a8),Z=n7(W)|0,!Z){if(U8=Y,l=V[U8+4>>2]|0,Z=q,V[Z>>2]=V[U8>>2],V[Z+4>>2]=l,rK(q,_8),Z=HK(_8,X,t8)|0,!Z){if(Z=V[q>>2]|0,G=V[B>>2]|0,(G|0)>0){F=V[Y+12>>2]|0,W=0;do Z=(V[F+(W<<3)>>2]|0)+Z|0,W=W+1|0;while((W|0)!=(G|0));W=Z}else W=Z;if(Z=t8,G=V[Z>>2]|0,Z=V[Z+4>>2]|0,F=((W|0)<0)<<31>>31,(Z|0)<(F|0)|(Z|0)==(F|0)&G>>>0<W>>>0)Z=t8,V[Z>>2]=W,V[Z+4>>2]=F,Z=F;else W=G;U8=C8(W|0,Z|0,12,0)|0,l=R()|0,Z=t8,V[Z>>2]=U8,V[Z+4>>2]=l,Z=0}else U8=0,l=0;if(!Z){if(W=e6(U8,8)|0,!W)return O8(a8),a8=13,A=c6,a8|0;if(z=e6(U8,8)|0,!z)return O8(a8),O8(W),a8=13,A=c6,a8|0;g8=_8,V[g8>>2]=0,V[g8+4>>2]=0,g8=Y,R8=V[g8+4>>2]|0,Z=q,V[Z>>2]=V[g8>>2],V[Z+4>>2]=R8,Z=AK(q,U8,l,X,_8,W,z)|0;Y:do if(!Z){V:do if((V[B>>2]|0)>0){F=Y+12|0,G=0;while(!0){if(Z=AK((V[F>>2]|0)+(G<<3)|0,U8,l,X,_8,W,z)|0,G=G+1|0,Z|0)break;if((G|0)>=(V[B>>2]|0))break V}O8(W),O8(z),O8(a8);break Y}while(0);if((l|0)>0|(l|0)==0&U8>>>0>0)NY(z|0,0,U8<<3|0)|0;R8=_8,g8=V[R8+4>>2]|0;V:do if((g8|0)>0|(g8|0)==0&(V[R8>>2]|0)>>>0>0){Z8=W,x8=z,y8=W,g8=z,R8=W,Z=W,E=W,t=z,z8=z,W=z;X:while(!0){y=0,h=0,_=0,k=0,G=0,F=0;while(!0){z=t8,q=z+56|0;do V[z>>2]=0,z=z+4|0;while((z|0)<(q|0));if(X=Z8+(y<<3)|0,B=V[X>>2]|0,X=V[X+4>>2]|0,CK(B,X,1,t8,0)|0){z=t8,q=z+56|0;do V[z>>2]=0,z=z+4|0;while((z|0)<(q|0));if(z=e6(7,4)|0,z|0)E0(B,X,1,t8,z,7,0,0)|0,O8(z)}x=0;while(!0){j=t8+(x<<3)|0,L=V[j>>2]|0,j=V[j+4>>2]|0;W:do if((L|0)==0&(j|0)==0)z=G,q=F;else{if(N=F7(L|0,j|0,U8|0,l|0)|0,B=R()|0,z=K+(N<<3)|0,X=z,q=V[X>>2]|0,X=V[X+4>>2]|0,!((q|0)==0&(X|0)==0)){P=0,H=0;do{if((P|0)>(l|0)|(P|0)==(l|0)&H>>>0>U8>>>0)break X;if((q|0)==(L|0)&(X|0)==(j|0)){z=G,q=F;break W}z=C8(N|0,B|0,1,0)|0,N=G7(z|0,R()|0,U8|0,l|0)|0,B=R()|0,H=C8(H|0,P|0,1,0)|0,P=R()|0,z=K+(N<<3)|0,X=z,q=V[X>>2]|0,X=V[X+4>>2]|0}while(!((q|0)==0&(X|0)==0))}if((L|0)==0&(j|0)==0){z=G,q=F;break}if(gY(L,j,k8)|0,MX(Y,a8,k8)|0)H=C8(G|0,F|0,1,0)|0,F=R()|0,P=z,V[P>>2]=L,V[P+4>>2]=j,G=x8+(G<<3)|0,V[G>>2]=L,V[G+4>>2]=j,G=H;z=G,q=F}while(0);if(x=x+1|0,x>>>0>=7)break;else G=z,F=q}if(y=C8(y|0,h|0,1,0)|0,h=R()|0,_=C8(_|0,k|0,1,0)|0,k=R()|0,F=_8,G=V[F>>2]|0,F=V[F+4>>2]|0,!((k|0)<(F|0)|(k|0)==(F|0)&_>>>0<G>>>0))break;else G=z,F=q}if((F|0)>0|(F|0)==0&G>>>0>0){G=0,F=0;do k=Z8+(G<<3)|0,V[k>>2]=0,V[k+4>>2]=0,G=C8(G|0,F|0,1,0)|0,F=R()|0,k=_8,_=V[k+4>>2]|0;while((F|0)<(_|0)|((F|0)==(_|0)?G>>>0<(V[k>>2]|0)>>>0:0))}if(k=_8,V[k>>2]=z,V[k+4>>2]=q,(q|0)>0|(q|0)==0&z>>>0>0)x=W,y=z8,h=R8,_=t,k=x8,W=E,z8=Z,t=y8,E=x,Z=y,R8=g8,g8=h,y8=_,x8=Z8,Z8=k;else break V}O8(y8),O8(g8),O8(a8),Z=1;break Y}else Z=z;while(0);O8(a8),O8(W),O8(Z),Z=0}else O8(W),O8(z),O8(a8);while(0);return a8=Z,A=c6,a8|0}}return O8(a8),a8=Z,A=c6,a8|0}function O1(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,q=0,B=0,N=0;if(N=A,A=A+176|0,q=N,(X|0)<1)return tK(W,0,0),B=0,A=N,B|0;z=Y,z=s(V[z>>2]|0,V[z+4>>2]|0,52)|0,R()|0,tK(W,(X|0)>6?X:6,z&15),z=0;while(!0){if(K=Y+(z<<3)|0,K=Z7(V[K>>2]|0,V[K+4>>2]|0,q)|0,K|0)break;if(K=V[q>>2]|0,(K|0)>0){F=0;do{if(G=q+8+(F<<4)|0,F=F+1|0,K=q+8+(((F|0)%(K|0)|0)<<4)|0,Z=r3(W,K,G)|0,!Z)n3(W,G,K)|0;else Y5(W,Z)|0;K=V[q>>2]|0}while((F|0)<(K|0))}if(z=z+1|0,(z|0)>=(X|0)){K=0,B=13;break}}if((B|0)==13)return A=N,K|0;return aK(W),B=K,A=N,B|0}function A1(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0;if(G=A,A=A+32|0,K=G,Z=G+16|0,Y=O1(Y,X,Z)|0,Y|0)return W=Y,A=G,W|0;if(V[W>>2]=0,V[W+4>>2]=0,V[W+8>>2]=0,Y=eK(Z)|0,Y|0)do{X=S3(W)|0;do P3(X,Y)|0,F=Y+16|0,V[K>>2]=V[F>>2],V[K+4>>2]=V[F+4>>2],V[K+8>>2]=V[F+8>>2],V[K+12>>2]=V[F+12>>2],Y5(Z,Y)|0,Y=d3(Z,K)|0;while((Y|0)!=0);Y=eK(Z)|0}while((Y|0)!=0);if(aK(Z),Y=R3(W)|0,!Y)return F=0,A=G,F|0;return pK(W),F=Y,A=G,F|0}function Q6(Y){if(Y=Y|0,Y>>>0>121)return Y=0,Y|0;return Y=V[7696+(Y*28|0)+16>>2]|0,Y|0}function sV(Y){return Y=Y|0,(Y|0)==4|(Y|0)==117|0}function SK(Y){return Y=Y|0,V[11120+((V[Y>>2]|0)*216|0)+((V[Y+4>>2]|0)*72|0)+((V[Y+8>>2]|0)*24|0)+(V[Y+12>>2]<<3)>>2]|0}function S1(Y){return Y=Y|0,V[11120+((V[Y>>2]|0)*216|0)+((V[Y+4>>2]|0)*72|0)+((V[Y+8>>2]|0)*24|0)+(V[Y+12>>2]<<3)+4>>2]|0}function P1(Y,X){Y=Y|0,X=X|0,Y=7696+(Y*28|0)|0,V[X>>2]=V[Y>>2],V[X+4>>2]=V[Y+4>>2],V[X+8>>2]=V[Y+8>>2],V[X+12>>2]=V[Y+12>>2];return}function R1(Y,X){Y=Y|0,X=X|0;var W=0,K=0;if(X>>>0>20)return X=-1,X|0;do if((V[11120+(X*216|0)>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+8>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+16>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+24>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+32>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+40>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+48>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+56>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+64>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+72>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+80>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+88>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+96>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+104>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+112>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+120>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+128>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+136>>2]|0)==(Y|0))Y=2,W=1,K=2;else{if((V[11120+(X*216|0)+144>>2]|0)==(Y|0)){Y=0,W=2,K=0;break}if((V[11120+(X*216|0)+152>>2]|0)==(Y|0)){Y=0,W=2,K=1;break}if((V[11120+(X*216|0)+160>>2]|0)==(Y|0)){Y=0,W=2,K=2;break}if((V[11120+(X*216|0)+168>>2]|0)==(Y|0)){Y=1,W=2,K=0;break}if((V[11120+(X*216|0)+176>>2]|0)==(Y|0)){Y=1,W=2,K=1;break}if((V[11120+(X*216|0)+184>>2]|0)==(Y|0)){Y=1,W=2,K=2;break}if((V[11120+(X*216|0)+192>>2]|0)==(Y|0)){Y=2,W=2,K=0;break}if((V[11120+(X*216|0)+200>>2]|0)==(Y|0)){Y=2,W=2,K=1;break}if((V[11120+(X*216|0)+208>>2]|0)==(Y|0)){Y=2,W=2,K=2;break}else Y=-1;return Y|0}else Y=2,W=1,K=1;else Y=2,W=1,K=0;else Y=1,W=1,K=2;else Y=1,W=1,K=1;else Y=1,W=1,K=0;else Y=0,W=1,K=2;else Y=0,W=1,K=1;else Y=0,W=1,K=0;else Y=2,W=0,K=2;else Y=2,W=0,K=1;else Y=2,W=0,K=0;else Y=1,W=0,K=2;else Y=1,W=0,K=1;else Y=1,W=0,K=0;else Y=0,W=0,K=2;else Y=0,W=0,K=1;else Y=0,W=0,K=0;while(0);return X=V[11120+(X*216|0)+(W*72|0)+(Y*24|0)+(K<<3)+4>>2]|0,X|0}function PK(Y,X){if(Y=Y|0,X=X|0,(V[7696+(Y*28|0)+20>>2]|0)==(X|0))return X=1,X|0;return X=(V[7696+(Y*28|0)+24>>2]|0)==(X|0),X|0}function nV(Y,X){return Y=Y|0,X=X|0,V[848+(Y*28|0)+(X<<2)>>2]|0}function rV(Y,X){if(Y=Y|0,X=X|0,(V[848+(Y*28|0)>>2]|0)==(X|0))return X=0,X|0;if((V[848+(Y*28|0)+4>>2]|0)==(X|0))return X=1,X|0;if((V[848+(Y*28|0)+8>>2]|0)==(X|0))return X=2,X|0;if((V[848+(Y*28|0)+12>>2]|0)==(X|0))return X=3,X|0;if((V[848+(Y*28|0)+16>>2]|0)==(X|0))return X=4,X|0;if((V[848+(Y*28|0)+20>>2]|0)==(X|0))return X=5,X|0;else return((V[848+(Y*28|0)+24>>2]|0)==(X|0)?6:7)|0;return 0}function I1(){return 122}function w1(Y){Y=Y|0;var X=0,W=0,K=0;X=0;do a(X|0,0,45)|0,K=R()|0|134225919,W=Y+(X<<3)|0,V[W>>2]=-1,V[W+4>>2]=K,X=X+1|0;while((X|0)!=122);return 0}function H1(Y){Y=Y|0;var X=0,W=0,K=0;return K=+O[Y+16>>3],W=+O[Y+24>>3],X=K-W,+(K<W?X+6.283185307179586:X)}function RK(Y){return Y=Y|0,+O[Y+16>>3]<+O[Y+24>>3]|0}function L1(Y){return Y=Y|0,+(+O[Y>>3]-+O[Y+8>>3])}function dV(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0;if(W=+O[X>>3],!(W>=+O[Y+8>>3]))return X=0,X|0;if(!(W<=+O[Y>>3]))return X=0,X|0;if(K=+O[Y+16>>3],W=+O[Y+24>>3],Z=+O[X+8>>3],X=Z>=W,Y=Z<=K&1,K<W){if(X)Y=1}else if(!X)Y=0;return X=(Y|0)!=0,X|0}function lV(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0,q=0,B=0,N=0;if(+O[Y>>3]<+O[X+8>>3])return K=0,K|0;if(+O[Y+8>>3]>+O[X>>3])return K=0,K|0;if(G=+O[Y+16>>3],W=Y+24|0,N=+O[W>>3],F=G<N,K=X+16|0,B=+O[K>>3],Z=X+24|0,q=+O[Z>>3],z=B<q,X=N-B<q-G,Y=F?z|X?1:2:0,X=z?F?1:X?2:1:0,G=+K0(G,Y),G<+K0(+O[Z>>3],X))return z=0,z|0;if(N=+K0(+O[W>>3],Y),N>+K0(+O[K>>3],X))return z=0,z|0;return z=1,z|0}function j1(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,q=0;G=+O[Y+16>>3],q=+O[Y+24>>3],Y=G<q,z=+O[X+16>>3],F=+O[X+24>>3],Z=z<F,X=q-z<F-G,V[W>>2]=Y?Z|X?1:2:0,V[K>>2]=Z?Y?1:X?2:1:0;return}function IK(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0,q=0,B=0,N=0;if(+O[Y>>3]<+O[X>>3])return K=0,K|0;if(+O[Y+8>>3]>+O[X+8>>3])return K=0,K|0;if(K=Y+16|0,q=+O[K>>3],G=+O[Y+24>>3],F=q<G,W=X+16|0,N=+O[W>>3],Z=X+24|0,B=+O[Z>>3],z=N<B,X=G-N<B-q,Y=F?z|X?1:2:0,X=z?F?1:X?2:1:0,G=+K0(G,Y),!(G<=+K0(+O[Z>>3],X)))return z=0,z|0;return N=+K0(+O[K>>3],Y),z=N>=+K0(+O[W>>3],X),z|0}function wK(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0;Z=A,A=A+176|0,K=Z,V[K>>2]=4,z=+O[X>>3],O[K+8>>3]=z,G=+O[X+16>>3],O[K+16>>3]=G,O[K+24>>3]=z,z=+O[X+24>>3],O[K+32>>3]=z,F=+O[X+8>>3],O[K+40>>3]=F,O[K+48>>3]=z,O[K+56>>3]=F,O[K+64>>3]=G,X=K+72|0,W=X+96|0;do V[X>>2]=0,X=X+4|0;while((X|0)<(W|0));z7(Y|0,K|0,168)|0,A=Z;return}function HK(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0,x=0,y=0;j=A,A=A+288|0,N=j+264|0,P=j+96|0,B=j,z=B,q=z+96|0;do V[z>>2]=0,z=z+4|0;while((z|0)<(q|0));if(X=ZX(X,B)|0,X|0)return L=X,A=j,L|0;if(q=B,B=V[q>>2]|0,q=V[q+4>>2]|0,gY(B,q,N)|0,Z7(B,q,P)|0,F=+c7(N,P+8|0),O[N>>3]=+O[Y>>3],q=N+8|0,O[q>>3]=+O[Y+16>>3],O[P>>3]=+O[Y+8>>3],B=P+8|0,O[B>>3]=+O[Y+24>>3],Z=+c7(N,P),y=+O[q>>3]-+O[B>>3],G=+p8(+y),x=+O[N>>3]-+O[P>>3],K=+p8(+x),!(y==0|x==0)?(y=+K5(+G,+K),y=+W7(+(Z*Z/+g9(+(y/+g9(+G,+K)),3)/(F*(F*2.59807621135)*0.8))),O[I6>>3]=y,H=~~y>>>0,L=+p8(y)>=1?y>0?~~+pV(+w6(y/4294967296),4294967295)>>>0:~~+W7((y-+(~~y>>>0))/4294967296)>>>0:0,(V[I6+4>>2]&2146435072|0)!=2146435072):0)P=(H|0)==0&(L|0)==0,X=W,V[X>>2]=P?1:H,V[X+4>>2]=P?0:L,X=0;else X=1;return L=X,A=j,L|0}function T1(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,q=0,B=0,N=0;B=A,A=A+288|0,F=B+264|0,z=B+96|0,q=B,Z=q,G=Z+96|0;do V[Z>>2]=0,Z=Z+4|0;while((Z|0)<(G|0));if(W=ZX(W,q)|0,W|0)return K=W,A=B,K|0;if(W=q,Z=V[W>>2]|0,W=V[W+4>>2]|0,gY(Z,W,F)|0,Z7(Z,W,z)|0,N=+c7(F,z+8|0),N=+W7(+(+c7(Y,X)/(N*2))),O[I6>>3]=N,W=~~N>>>0,Z=+p8(N)>=1?N>0?~~+pV(+w6(N/4294967296),4294967295)>>>0:~~+W7((N-+(~~N>>>0))/4294967296)>>>0:0,(V[I6+4>>2]&2146435072|0)==2146435072)return K=1,A=B,K|0;return q=(W|0)==0&(Z|0)==0,V[K>>2]=q?1:W,V[K+4>>2]=q?0:Z,K=0,A=B,K|0}function x1(Y,X){Y=Y|0,X=+X;var W=0,K=0,Z=0,G=0,F=0,z=0,q=0,B=0,N=0;G=Y+16|0,F=+O[G>>3],W=Y+24|0,Z=+O[W>>3],K=F-Z,K=F<Z?K+6.283185307179586:K,B=+O[Y>>3],z=Y+8|0,q=+O[z>>3],N=B-q,K=(K*X-K)*0.5,X=(N*X-N)*0.5,B=B+X,O[Y>>3]=B>1.5707963267948966?1.5707963267948966:B,X=q-X,O[z>>3]=X<-1.5707963267948966?-1.5707963267948966:X,X=F+K,X=X>3.141592653589793?X+-6.283185307179586:X,O[G>>3]=X<-3.141592653589793?X+6.283185307179586:X,X=Z-K,X=X>3.141592653589793?X+-6.283185307179586:X,O[W>>3]=X<-3.141592653589793?X+6.283185307179586:X;return}function E1(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0,V[Y>>2]=X,V[Y+4>>2]=W,V[Y+8>>2]=K;return}function y1(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0;P=X+8|0,V[P>>2]=0,q=+O[Y>>3],F=+p8(+q),B=+O[Y+8>>3],z=+p8(+B)*1.1547005383792515,F=F+z*0.5,W=~~F,Y=~~z,F=F-+(W|0),z=z-+(Y|0);do if(F<0.5)if(F<0.3333333333333333)if(V[X>>2]=W,z<(F+1)*0.5){V[X+4>>2]=Y;break}else{Y=Y+1|0,V[X+4>>2]=Y;break}else if(H=1-F,Y=(!(z<H)&1)+Y|0,V[X+4>>2]=Y,H<=z&z<F*2){W=W+1|0,V[X>>2]=W;break}else{V[X>>2]=W;break}else{if(!(F<0.6666666666666666))if(W=W+1|0,V[X>>2]=W,z<F*0.5){V[X+4>>2]=Y;break}else{Y=Y+1|0,V[X+4>>2]=Y;break}if(z<1-F){if(V[X+4>>2]=Y,F*2+-1<z){V[X>>2]=W;break}}else Y=Y+1|0,V[X+4>>2]=Y;W=W+1|0,V[X>>2]=W}while(0);do if(q<0)if(!(Y&1)){N=(Y|0)/2|0,N=k6(W|0,((W|0)<0)<<31>>31|0,N|0,((N|0)<0)<<31>>31|0)|0,W=~~(+(W|0)-(+(N>>>0)+4294967296*+(R()|0))*2),V[X>>2]=W;break}else{N=(Y+1|0)/2|0,N=k6(W|0,((W|0)<0)<<31>>31|0,N|0,((N|0)<0)<<31>>31|0)|0,W=~~(+(W|0)-((+(N>>>0)+4294967296*+(R()|0))*2+1)),V[X>>2]=W;break}while(0);if(N=X+4|0,B<0)W=W-((Y<<1|1|0)/2|0)|0,V[X>>2]=W,Y=0-Y|0,V[N>>2]=Y;if(K=Y-W|0,(W|0)<0)Z=0-W|0,V[N>>2]=K,V[P>>2]=Z,V[X>>2]=0,Y=K,W=0;else Z=0;if((Y|0)<0)W=W-Y|0,V[X>>2]=W,Z=Z-Y|0,V[P>>2]=Z,V[N>>2]=0,Y=0;if(G=W-Z|0,K=Y-Z|0,(Z|0)<0)V[X>>2]=G,V[N>>2]=K,V[P>>2]=0,Y=K,W=G,Z=0;if(K=(Y|0)<(W|0)?Y:W,K=(Z|0)<(K|0)?Z:K,(K|0)<=0)return;V[X>>2]=W-K,V[N>>2]=Y-K,V[P>>2]=Z-K;return}function b6(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0;if(X=V[Y>>2]|0,F=Y+4|0,W=V[F>>2]|0,(X|0)<0)W=W-X|0,V[F>>2]=W,G=Y+8|0,V[G>>2]=(V[G>>2]|0)-X,V[Y>>2]=0,X=0;if((W|0)<0)X=X-W|0,V[Y>>2]=X,G=Y+8|0,Z=(V[G>>2]|0)-W|0,V[G>>2]=Z,V[F>>2]=0,W=0;else Z=Y+8|0,G=Z,Z=V[Z>>2]|0;if((Z|0)<0)X=X-Z|0,V[Y>>2]=X,W=W-Z|0,V[F>>2]=W,V[G>>2]=0,Z=0;if(K=(W|0)<(X|0)?W:X,K=(Z|0)<(K|0)?Z:K,(K|0)<=0)return;V[Y>>2]=X-K,V[F>>2]=W-K,V[G>>2]=Z-K;return}function vY(Y,X){Y=Y|0,X=X|0;var W=0,K=0;K=V[Y+8>>2]|0,W=+((V[Y+4>>2]|0)-K|0),O[X>>3]=+((V[Y>>2]|0)-K|0)-W*0.5,O[X+8>>3]=W*0.8660254037844386;return}function p6(Y,X,W){Y=Y|0,X=X|0,W=W|0,V[W>>2]=(V[X>>2]|0)+(V[Y>>2]|0),V[W+4>>2]=(V[X+4>>2]|0)+(V[Y+4>>2]|0),V[W+8>>2]=(V[X+8>>2]|0)+(V[Y+8>>2]|0);return}function iV(Y,X,W){Y=Y|0,X=X|0,W=W|0,V[W>>2]=(V[Y>>2]|0)-(V[X>>2]|0),V[W+4>>2]=(V[Y+4>>2]|0)-(V[X+4>>2]|0),V[W+8>>2]=(V[Y+8>>2]|0)-(V[X+8>>2]|0);return}function LK(Y,X){Y=Y|0,X=X|0;var W=0,K=0;W=x0(V[Y>>2]|0,X)|0,V[Y>>2]=W,W=Y+4|0,K=x0(V[W>>2]|0,X)|0,V[W>>2]=K,Y=Y+8|0,X=x0(V[Y>>2]|0,X)|0,V[Y>>2]=X;return}function E9(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0;F=V[Y>>2]|0,z=(F|0)<0,K=(V[Y+4>>2]|0)-(z?F:0)|0,G=(K|0)<0,Z=(G?0-K|0:0)+((V[Y+8>>2]|0)-(z?F:0))|0,W=(Z|0)<0,Y=W?0:Z,X=(G?0:K)-(W?Z:0)|0,Z=(z?0:F)-(G?K:0)-(W?Z:0)|0,W=(X|0)<(Z|0)?X:Z,W=(Y|0)<(W|0)?Y:W,K=(W|0)>0,Y=Y-(K?W:0)|0,X=X-(K?W:0)|0;Y:do switch(Z-(K?W:0)|0){case 0:switch(X|0){case 0:return z=(Y|0)==0?0:(Y|0)==1?1:7,z|0;case 1:return z=(Y|0)==0?2:(Y|0)==1?3:7,z|0;default:break Y}case 1:switch(X|0){case 0:return z=(Y|0)==0?4:(Y|0)==1?5:7,z|0;case 1:{if(!Y)Y=6;else break Y;return Y|0}default:break Y}default:}while(0);return z=7,z|0}function k1(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0,q=0,B=0;if(q=Y+8|0,F=V[q>>2]|0,z=(V[Y>>2]|0)-F|0,B=Y+4|0,F=(V[B>>2]|0)-F|0,z>>>0>715827881|F>>>0>715827881){if(K=(z|0)>0,Z=2147483647-z|0,G=-2147483648-z|0,K?(Z|0)<(z|0):(G|0)>(z|0))return B=1,B|0;if(W=z<<1,K?(2147483647-W|0)<(z|0):(-2147483648-W|0)>(z|0))return B=1,B|0;if((F|0)>0?(2147483647-F|0)<(F|0):(-2147483648-F|0)>(F|0))return B=1,B|0;if(X=z*3|0,W=F<<1,(K?(Z|0)<(W|0):(G|0)>(W|0))?1:(z|0)>-1?(X|-2147483648|0)>=(F|0):(X^-2147483648|0)<(F|0))return B=1,B|0}else W=F<<1,X=z*3|0;if(K=BY(+(X-F|0)*0.14285714285714285)|0,V[Y>>2]=K,Z=BY(+(W+z|0)*0.14285714285714285)|0,V[B>>2]=Z,V[q>>2]=0,W=(Z|0)<(K|0),X=W?K:Z,W=W?Z:K,(W|0)<0){if((W|0)==-2147483648?1:(X|0)>0?(2147483647-X|0)<(W|0):(-2147483648-X|0)>(W|0))I8(27795,26892,354,26903);if((X|0)>-1?(X|-2147483648|0)>=(W|0):(X^-2147483648|0)<(W|0))I8(27795,26892,354,26903)}if(X=Z-K|0,(K|0)<0)W=0-K|0,V[B>>2]=X,V[q>>2]=W,V[Y>>2]=0,K=0;else X=Z,W=0;if((X|0)<0)K=K-X|0,V[Y>>2]=K,W=W-X|0,V[q>>2]=W,V[B>>2]=0,X=0;if(G=K-W|0,Z=X-W|0,(W|0)<0)V[Y>>2]=G,V[B>>2]=Z,V[q>>2]=0,X=Z,Z=G,W=0;else Z=K;if(K=(X|0)<(Z|0)?X:Z,K=(W|0)<(K|0)?W:K,(K|0)<=0)return B=0,B|0;return V[Y>>2]=Z-K,V[B>>2]=X-K,V[q>>2]=W-K,B=0,B|0}function v1(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0,q=0;if(F=Y+8|0,Z=V[F>>2]|0,G=(V[Y>>2]|0)-Z|0,z=Y+4|0,Z=(V[z>>2]|0)-Z|0,G>>>0>715827881|Z>>>0>715827881){if(W=(G|0)>0,W?(2147483647-G|0)<(G|0):(-2147483648-G|0)>(G|0))return z=1,z|0;if(X=G<<1,K=(Z|0)>0,K?(2147483647-Z|0)<(Z|0):(-2147483648-Z|0)>(Z|0))return z=1,z|0;if(q=Z<<1,K?(2147483647-q|0)<(Z|0):(-2147483648-q|0)>(Z|0))return q=1,q|0;if(W?(2147483647-X|0)<(Z|0):(-2147483648-X|0)>(Z|0))return q=1,q|0;if(W=Z*3|0,(Z|0)>-1?(W|-2147483648|0)>=(G|0):(W^-2147483648|0)<(G|0))return q=1,q|0}else W=Z*3|0,X=G<<1;if(K=BY(+(X+Z|0)*0.14285714285714285)|0,V[Y>>2]=K,Z=BY(+(W-G|0)*0.14285714285714285)|0,V[z>>2]=Z,V[F>>2]=0,W=(Z|0)<(K|0),X=W?K:Z,W=W?Z:K,(W|0)<0){if((W|0)==-2147483648?1:(X|0)>0?(2147483647-X|0)<(W|0):(-2147483648-X|0)>(W|0))I8(27795,26892,402,26917);if((X|0)>-1?(X|-2147483648|0)>=(W|0):(X^-2147483648|0)<(W|0))I8(27795,26892,402,26917)}if(X=Z-K|0,(K|0)<0)W=0-K|0,V[z>>2]=X,V[F>>2]=W,V[Y>>2]=0,K=0;else X=Z,W=0;if((X|0)<0)K=K-X|0,V[Y>>2]=K,W=W-X|0,V[F>>2]=W,V[z>>2]=0,X=0;if(G=K-W|0,Z=X-W|0,(W|0)<0)V[Y>>2]=G,V[z>>2]=Z,V[F>>2]=0,X=Z,Z=G,W=0;else Z=K;if(K=(X|0)<(Z|0)?X:Z,K=(W|0)<(K|0)?W:K,(K|0)<=0)return q=0,q|0;return V[Y>>2]=Z-K,V[z>>2]=X-K,V[F>>2]=W-K,q=0,q|0}function _1(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0;if(F=Y+8|0,W=V[F>>2]|0,X=(V[Y>>2]|0)-W|0,z=Y+4|0,W=(V[z>>2]|0)-W|0,K=BY(+((X*3|0)-W|0)*0.14285714285714285)|0,V[Y>>2]=K,X=BY(+((W<<1)+X|0)*0.14285714285714285)|0,V[z>>2]=X,V[F>>2]=0,W=X-K|0,(K|0)<0)G=0-K|0,V[z>>2]=W,V[F>>2]=G,V[Y>>2]=0,X=W,K=0,W=G;else W=0;if((X|0)<0)K=K-X|0,V[Y>>2]=K,W=W-X|0,V[F>>2]=W,V[z>>2]=0,X=0;if(G=K-W|0,Z=X-W|0,(W|0)<0)V[Y>>2]=G,V[z>>2]=Z,V[F>>2]=0,X=Z,Z=G,W=0;else Z=K;if(K=(X|0)<(Z|0)?X:Z,K=(W|0)<(K|0)?W:K,(K|0)<=0)return;V[Y>>2]=Z-K,V[z>>2]=X-K,V[F>>2]=W-K;return}function jK(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0;if(F=Y+8|0,W=V[F>>2]|0,X=(V[Y>>2]|0)-W|0,z=Y+4|0,W=(V[z>>2]|0)-W|0,K=BY(+((X<<1)+W|0)*0.14285714285714285)|0,V[Y>>2]=K,X=BY(+((W*3|0)-X|0)*0.14285714285714285)|0,V[z>>2]=X,V[F>>2]=0,W=X-K|0,(K|0)<0)G=0-K|0,V[z>>2]=W,V[F>>2]=G,V[Y>>2]=0,X=W,K=0,W=G;else W=0;if((X|0)<0)K=K-X|0,V[Y>>2]=K,W=W-X|0,V[F>>2]=W,V[z>>2]=0,X=0;if(G=K-W|0,Z=X-W|0,(W|0)<0)V[Y>>2]=G,V[z>>2]=Z,V[F>>2]=0,X=Z,Z=G,W=0;else Z=K;if(K=(X|0)<(Z|0)?X:Z,K=(W|0)<(K|0)?W:K,(K|0)<=0)return;V[Y>>2]=Z-K,V[z>>2]=X-K,V[F>>2]=W-K;return}function y9(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0;if(X=V[Y>>2]|0,F=Y+4|0,W=V[F>>2]|0,z=Y+8|0,K=V[z>>2]|0,Z=W+(X*3|0)|0,V[Y>>2]=Z,W=K+(W*3|0)|0,V[F>>2]=W,X=(K*3|0)+X|0,V[z>>2]=X,K=W-Z|0,(Z|0)<0)X=X-Z|0,V[F>>2]=K,V[z>>2]=X,V[Y>>2]=0,W=K,K=0;else K=Z;if((W|0)<0)K=K-W|0,V[Y>>2]=K,X=X-W|0,V[z>>2]=X,V[F>>2]=0,W=0;if(G=K-X|0,Z=W-X|0,(X|0)<0)V[Y>>2]=G,V[F>>2]=Z,V[z>>2]=0,K=G,X=0;else Z=W;if(W=(Z|0)<(K|0)?Z:K,W=(X|0)<(W|0)?X:W,(W|0)<=0)return;V[Y>>2]=K-W,V[F>>2]=Z-W,V[z>>2]=X-W;return}function _Y(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0;if(Z=V[Y>>2]|0,F=Y+4|0,X=V[F>>2]|0,z=Y+8|0,W=V[z>>2]|0,K=(X*3|0)+Z|0,Z=W+(Z*3|0)|0,V[Y>>2]=Z,V[F>>2]=K,X=(W*3|0)+X|0,V[z>>2]=X,W=K-Z|0,(Z|0)<0)X=X-Z|0,V[F>>2]=W,V[z>>2]=X,V[Y>>2]=0,Z=0;else W=K;if((W|0)<0)Z=Z-W|0,V[Y>>2]=Z,X=X-W|0,V[z>>2]=X,V[F>>2]=0,W=0;if(G=Z-X|0,K=W-X|0,(X|0)<0)V[Y>>2]=G,V[F>>2]=K,V[z>>2]=0,Z=G,X=0;else K=W;if(W=(K|0)<(Z|0)?K:Z,W=(X|0)<(W|0)?X:W,(W|0)<=0)return;V[Y>>2]=Z-W,V[F>>2]=K-W,V[z>>2]=X-W;return}function TK(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0;if((X+-1|0)>>>0>=6)return;if(Z=(V[15440+(X*12|0)>>2]|0)+(V[Y>>2]|0)|0,V[Y>>2]=Z,z=Y+4|0,K=(V[15440+(X*12|0)+4>>2]|0)+(V[z>>2]|0)|0,V[z>>2]=K,F=Y+8|0,X=(V[15440+(X*12|0)+8>>2]|0)+(V[F>>2]|0)|0,V[F>>2]=X,W=K-Z|0,(Z|0)<0)X=X-Z|0,V[z>>2]=W,V[F>>2]=X,V[Y>>2]=0,K=0;else W=K,K=Z;if((W|0)<0)K=K-W|0,V[Y>>2]=K,X=X-W|0,V[F>>2]=X,V[z>>2]=0,W=0;if(G=K-X|0,Z=W-X|0,(X|0)<0)V[Y>>2]=G,V[z>>2]=Z,V[F>>2]=0,K=G,X=0;else Z=W;if(W=(Z|0)<(K|0)?Z:K,W=(X|0)<(W|0)?X:W,(W|0)<=0)return;V[Y>>2]=K-W,V[z>>2]=Z-W,V[F>>2]=X-W;return}function xK(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0;if(Z=V[Y>>2]|0,F=Y+4|0,X=V[F>>2]|0,z=Y+8|0,W=V[z>>2]|0,K=X+Z|0,Z=W+Z|0,V[Y>>2]=Z,V[F>>2]=K,X=W+X|0,V[z>>2]=X,W=K-Z|0,(Z|0)<0)X=X-Z|0,V[F>>2]=W,V[z>>2]=X,V[Y>>2]=0,K=0;else W=K,K=Z;if((W|0)<0)K=K-W|0,V[Y>>2]=K,X=X-W|0,V[z>>2]=X,V[F>>2]=0,W=0;if(G=K-X|0,Z=W-X|0,(X|0)<0)V[Y>>2]=G,V[F>>2]=Z,V[z>>2]=0,K=G,X=0;else Z=W;if(W=(Z|0)<(K|0)?Z:K,W=(X|0)<(W|0)?X:W,(W|0)<=0)return;V[Y>>2]=K-W,V[F>>2]=Z-W,V[z>>2]=X-W;return}function k9(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0;if(X=V[Y>>2]|0,F=Y+4|0,K=V[F>>2]|0,z=Y+8|0,W=V[z>>2]|0,Z=K+X|0,V[Y>>2]=Z,K=W+K|0,V[F>>2]=K,X=W+X|0,V[z>>2]=X,W=K-Z|0,(Z|0)<0)X=X-Z|0,V[F>>2]=W,V[z>>2]=X,V[Y>>2]=0,K=0;else W=K,K=Z;if((W|0)<0)K=K-W|0,V[Y>>2]=K,X=X-W|0,V[z>>2]=X,V[F>>2]=0,W=0;if(G=K-X|0,Z=W-X|0,(X|0)<0)V[Y>>2]=G,V[F>>2]=Z,V[z>>2]=0,K=G,X=0;else Z=W;if(W=(Z|0)<(K|0)?Z:K,W=(X|0)<(W|0)?X:W,(W|0)<=0)return;V[Y>>2]=K-W,V[F>>2]=Z-W,V[z>>2]=X-W;return}function $Y(Y){switch(Y=Y|0,Y|0){case 1:{Y=5;break}case 5:{Y=4;break}case 4:{Y=6;break}case 6:{Y=2;break}case 2:{Y=3;break}case 3:{Y=1;break}default:}return Y|0}function MY(Y){switch(Y=Y|0,Y|0){case 1:{Y=3;break}case 3:{Y=2;break}case 2:{Y=6;break}case 6:{Y=4;break}case 4:{Y=5;break}case 5:{Y=1;break}default:}return Y|0}function EK(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0;if(X=V[Y>>2]|0,F=Y+4|0,W=V[F>>2]|0,z=Y+8|0,K=V[z>>2]|0,Z=W+(X<<1)|0,V[Y>>2]=Z,W=K+(W<<1)|0,V[F>>2]=W,X=(K<<1)+X|0,V[z>>2]=X,K=W-Z|0,(Z|0)<0)X=X-Z|0,V[F>>2]=K,V[z>>2]=X,V[Y>>2]=0,W=K,K=0;else K=Z;if((W|0)<0)K=K-W|0,V[Y>>2]=K,X=X-W|0,V[z>>2]=X,V[F>>2]=0,W=0;if(G=K-X|0,Z=W-X|0,(X|0)<0)V[Y>>2]=G,V[F>>2]=Z,V[z>>2]=0,K=G,X=0;else Z=W;if(W=(Z|0)<(K|0)?Z:K,W=(X|0)<(W|0)?X:W,(W|0)<=0)return;V[Y>>2]=K-W,V[F>>2]=Z-W,V[z>>2]=X-W;return}function yK(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0;if(Z=V[Y>>2]|0,F=Y+4|0,X=V[F>>2]|0,z=Y+8|0,W=V[z>>2]|0,K=(X<<1)+Z|0,Z=W+(Z<<1)|0,V[Y>>2]=Z,V[F>>2]=K,X=(W<<1)+X|0,V[z>>2]=X,W=K-Z|0,(Z|0)<0)X=X-Z|0,V[F>>2]=W,V[z>>2]=X,V[Y>>2]=0,Z=0;else W=K;if((W|0)<0)Z=Z-W|0,V[Y>>2]=Z,X=X-W|0,V[z>>2]=X,V[F>>2]=0,W=0;if(G=Z-X|0,K=W-X|0,(X|0)<0)V[Y>>2]=G,V[F>>2]=K,V[z>>2]=0,Z=G,X=0;else K=W;if(W=(K|0)<(Z|0)?K:Z,W=(X|0)<(W|0)?X:W,(W|0)<=0)return;V[Y>>2]=Z-W,V[F>>2]=K-W,V[z>>2]=X-W;return}function oV(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0;return F=(V[Y>>2]|0)-(V[X>>2]|0)|0,z=(F|0)<0,K=(V[Y+4>>2]|0)-(V[X+4>>2]|0)-(z?F:0)|0,G=(K|0)<0,Z=(z?0-F|0:0)+(V[Y+8>>2]|0)-(V[X+8>>2]|0)+(G?0-K|0:0)|0,Y=(Z|0)<0,X=Y?0:Z,W=(G?0:K)-(Y?Z:0)|0,Z=(z?0:F)-(G?K:0)-(Y?Z:0)|0,Y=(W|0)<(Z|0)?W:Z,Y=(X|0)<(Y|0)?X:Y,K=(Y|0)>0,X=X-(K?Y:0)|0,W=W-(K?Y:0)|0,Y=Z-(K?Y:0)|0,Y=(Y|0)>-1?Y:0-Y|0,W=(W|0)>-1?W:0-W|0,X=(X|0)>-1?X:0-X|0,X=(W|0)>(X|0)?W:X,((Y|0)>(X|0)?Y:X)|0}function $1(Y,X){Y=Y|0,X=X|0;var W=0;W=V[Y+8>>2]|0,V[X>>2]=(V[Y>>2]|0)-W,V[X+4>>2]=(V[Y+4>>2]|0)-W;return}function h1(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0;if(K=V[Y>>2]|0,V[X>>2]=K,Z=V[Y+4>>2]|0,F=X+4|0,V[F>>2]=Z,z=X+8|0,V[z>>2]=0,W=(Z|0)<(K|0),Y=W?K:Z,W=W?Z:K,(W|0)<0){if((W|0)==-2147483648?1:(Y|0)>0?(2147483647-Y|0)<(W|0):(-2147483648-Y|0)>(W|0))return X=1,X|0;if((Y|0)>-1?(Y|-2147483648|0)>=(W|0):(Y^-2147483648|0)<(W|0))return X=1,X|0}if(Y=Z-K|0,(K|0)<0)W=0-K|0,V[F>>2]=Y,V[z>>2]=W,V[X>>2]=0,K=0;else Y=Z,W=0;if((Y|0)<0)K=K-Y|0,V[X>>2]=K,W=W-Y|0,V[z>>2]=W,V[F>>2]=0,Y=0;if(G=K-W|0,Z=Y-W|0,(W|0)<0)V[X>>2]=G,V[F>>2]=Z,V[z>>2]=0,Y=Z,Z=G,W=0;else Z=K;if(K=(Y|0)<(Z|0)?Y:Z,K=(W|0)<(K|0)?W:K,(K|0)<=0)return X=0,X|0;return V[X>>2]=Z-K,V[F>>2]=Y-K,V[z>>2]=W-K,X=0,X|0}function kK(Y){Y=Y|0;var X=0,W=0,K=0,Z=0;X=Y+8|0,Z=V[X>>2]|0,W=Z-(V[Y>>2]|0)|0,V[Y>>2]=W,K=Y+4|0,Y=(V[K>>2]|0)-Z|0,V[K>>2]=Y,V[X>>2]=0-(Y+W);return}function g1(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0;if(W=V[Y>>2]|0,X=0-W|0,V[Y>>2]=X,F=Y+8|0,V[F>>2]=0,z=Y+4|0,K=V[z>>2]|0,Z=K+W|0,(W|0)>0)V[z>>2]=Z,V[F>>2]=W,V[Y>>2]=0,X=0,K=Z;else W=0;if((K|0)<0)if(G=X-K|0,V[Y>>2]=G,W=W-K|0,V[F>>2]=W,V[z>>2]=0,Z=G-W|0,X=0-W|0,(W|0)<0)V[Y>>2]=Z,V[z>>2]=X,V[F>>2]=0,K=X,W=0;else K=0,Z=G;else Z=X;if(X=(K|0)<(Z|0)?K:Z,X=(W|0)<(X|0)?W:X,(X|0)<=0)return;V[Y>>2]=Z-X,V[z>>2]=K-X,V[F>>2]=W-X;return}function f1(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,q=0,B=0,N=0,P=0;if(P=A,A=A+64|0,N=P,z=P+56|0,!(!0&(X&2013265920|0)==134217728&(!0&(K&2013265920|0)==134217728)))return Z=5,A=P,Z|0;if((Y|0)==(W|0)&(X|0)==(K|0))return V[Z>>2]=0,Z=0,A=P,Z|0;if(F=s(Y|0,X|0,52)|0,R()|0,F=F&15,B=s(W|0,K|0,52)|0,R()|0,(F|0)!=(B&15|0))return Z=12,A=P,Z|0;if(G=F+-1|0,F>>>0>1){VX(Y,X,G,N)|0,VX(W,K,G,z)|0,B=N,q=V[B>>2]|0,B=V[B+4>>2]|0;Y:do if((q|0)==(V[z>>2]|0)?(B|0)==(V[z+4>>2]|0):0){F=(F^15)*3|0,G=s(Y|0,X|0,F|0)|0,R()|0,G=G&7,F=s(W|0,K|0,F|0)|0,R()|0,F=F&7;do if(!((G|0)==0|(F|0)==0))if((G|0)==7)G=5;else{if((G|0)==1|(F|0)==1?J6(q,B)|0:0){G=5;break}if((V[15536+(G<<2)>>2]|0)!=(F|0)?(V[15568+(G<<2)>>2]|0)!=(F|0):0)break Y;V[Z>>2]=1,G=0}else V[Z>>2]=1,G=0;while(0);return Z=G,A=P,Z|0}while(0)}G=N,F=G+56|0;do V[G>>2]=0,G=G+4|0;while((G|0)<(F|0));if(DK(Y,X,1,N)|0,X=N,((((!((V[X>>2]|0)==(W|0)?(V[X+4>>2]|0)==(K|0):0)?(X=N+8|0,!((V[X>>2]|0)==(W|0)?(V[X+4>>2]|0)==(K|0):0)):0)?(X=N+16|0,!((V[X>>2]|0)==(W|0)?(V[X+4>>2]|0)==(K|0):0)):0)?(X=N+24|0,!((V[X>>2]|0)==(W|0)?(V[X+4>>2]|0)==(K|0):0)):0)?(X=N+32|0,!((V[X>>2]|0)==(W|0)?(V[X+4>>2]|0)==(K|0):0)):0)?(X=N+40|0,!((V[X>>2]|0)==(W|0)?(V[X+4>>2]|0)==(K|0):0)):0)G=N+48|0,G=((V[G>>2]|0)==(W|0)?(V[G+4>>2]|0)==(K|0):0)&1;else G=1;return V[Z>>2]=G,Z=0,A=P,Z|0}function m1(Y,X,W,K,Z){if(Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0,W=cV(Y,X,W,K)|0,(W|0)==7)return Z=11,Z|0;return K=a(W|0,0,56)|0,X=X&-2130706433|(R()|0)|268435456,V[Z>>2]=Y|K,V[Z+4>>2]=X,Z=0,Z|0}function b1(Y,X,W){if(Y=Y|0,X=X|0,W=W|0,!(!0&(X&2013265920|0)==268435456))return W=6,W|0;return V[W>>2]=Y,V[W+4>>2]=X&-2130706433|134217728,W=0,W|0}function u1(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0;if(Z=A,A=A+16|0,K=Z,V[K>>2]=0,!(!0&(X&2013265920|0)==268435456))return K=6,A=Z,K|0;return G=s(Y|0,X|0,56)|0,R()|0,K=L6(Y,X&-2130706433|134217728,G&7,K,W)|0,A=Z,K|0}function p1(Y,X){Y=Y|0,X=X|0;var W=0;switch(W=s(Y|0,X|0,56)|0,R()|0,W&7){case 0:case 7:return W=0,W|0;default:}if(W=X&-2130706433|134217728,!(!0&(X&2013265920|0)==268435456))return W=0,W|0;if(!0&(X&117440512|0)==16777216&(J6(Y,W)|0)!=0)return W=0,W|0;return W=eV(Y,W)|0,W|0}function c1(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0;if(Z=A,A=A+16|0,K=Z,!(!0&(X&2013265920|0)==268435456))return K=6,A=Z,K|0;return G=X&-2130706433|134217728,F=W,V[F>>2]=Y,V[F+4>>2]=G,V[K>>2]=0,X=s(Y|0,X|0,56)|0,R()|0,K=L6(Y,G,X&7,K,W+8|0)|0,A=Z,K|0}function s1(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0;return Z=(J6(Y,X)|0)==0,X=X&-2130706433,K=W,V[K>>2]=Z?Y:0,V[K+4>>2]=Z?X|285212672:0,K=W+8|0,V[K>>2]=Y,V[K+4>>2]=X|301989888,K=W+16|0,V[K>>2]=Y,V[K+4>>2]=X|318767104,K=W+24|0,V[K>>2]=Y,V[K+4>>2]=X|335544320,K=W+32|0,V[K>>2]=Y,V[K+4>>2]=X|352321536,W=W+40|0,V[W>>2]=Y,V[W+4>>2]=X|369098752,0}function v9(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0;if(F=A,A=A+16|0,Z=F,G=X&-2130706433|134217728,!(!0&(X&2013265920|0)==268435456))return G=6,A=F,G|0;if(K=s(Y|0,X|0,56)|0,R()|0,K=u3(Y,G,K&7)|0,(K|0)==-1)return V[W>>2]=0,G=6,A=F,G|0;if(J7(Y,G,Z)|0)I8(27795,26932,282,26947);if(X=s(Y|0,X|0,52)|0,R()|0,X=X&15,!(J6(Y,G)|0))aV(Z,X,K,2,W);else tV(Z,X,K,2,W);return G=0,A=F,G|0}function n1(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0;K=A,A=A+16|0,Z=K,r1(Y,X,W,Z),y1(Z,W+4|0),A=K;return}function r1(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,q=0;if(z=A,A=A+16|0,q=z,d1(Y,W,q),G=+V1(+(1-+O[q>>3]*0.5)),G<0.0000000000000001){V[K>>2]=0,V[K+4>>2]=0,V[K+8>>2]=0,V[K+12>>2]=0,A=z;return}if(q=V[W>>2]|0,Z=+O[15920+(q*24|0)>>3],Z=+p7(Z-+p7(+z3(15600+(q<<4)|0,Y))),!(U0(X)|0))F=Z;else F=+p7(Z+-0.3334731722518321);if(Z=+m7(+G)*2.618033988749896,(X|0)>0){Y=0;do Z=Z*2.6457513110645907,Y=Y+1|0;while((Y|0)!=(X|0))}G=+m8(+F)*Z,O[K>>3]=G,F=+c8(+F)*Z,O[K+8>>3]=F,A=z;return}function d1(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0;if(G=A,A=A+32|0,Z=G,b3(Y,Z),V[X>>2]=0,O[W>>3]=5,K=+C6(16400,Z),K<+O[W>>3])V[X>>2]=0,O[W>>3]=K;if(K=+C6(16424,Z),K<+O[W>>3])V[X>>2]=1,O[W>>3]=K;if(K=+C6(16448,Z),K<+O[W>>3])V[X>>2]=2,O[W>>3]=K;if(K=+C6(16472,Z),K<+O[W>>3])V[X>>2]=3,O[W>>3]=K;if(K=+C6(16496,Z),K<+O[W>>3])V[X>>2]=4,O[W>>3]=K;if(K=+C6(16520,Z),K<+O[W>>3])V[X>>2]=5,O[W>>3]=K;if(K=+C6(16544,Z),K<+O[W>>3])V[X>>2]=6,O[W>>3]=K;if(K=+C6(16568,Z),K<+O[W>>3])V[X>>2]=7,O[W>>3]=K;if(K=+C6(16592,Z),K<+O[W>>3])V[X>>2]=8,O[W>>3]=K;if(K=+C6(16616,Z),K<+O[W>>3])V[X>>2]=9,O[W>>3]=K;if(K=+C6(16640,Z),K<+O[W>>3])V[X>>2]=10,O[W>>3]=K;if(K=+C6(16664,Z),K<+O[W>>3])V[X>>2]=11,O[W>>3]=K;if(K=+C6(16688,Z),K<+O[W>>3])V[X>>2]=12,O[W>>3]=K;if(K=+C6(16712,Z),K<+O[W>>3])V[X>>2]=13,O[W>>3]=K;if(K=+C6(16736,Z),K<+O[W>>3])V[X>>2]=14,O[W>>3]=K;if(K=+C6(16760,Z),K<+O[W>>3])V[X>>2]=15,O[W>>3]=K;if(K=+C6(16784,Z),K<+O[W>>3])V[X>>2]=16,O[W>>3]=K;if(K=+C6(16808,Z),K<+O[W>>3])V[X>>2]=17,O[W>>3]=K;if(K=+C6(16832,Z),K<+O[W>>3])V[X>>2]=18,O[W>>3]=K;if(K=+C6(16856,Z),!(K<+O[W>>3])){A=G;return}V[X>>2]=19,O[W>>3]=K,A=G;return}function b7(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0;if(G=+m3(Y),G<0.0000000000000001){X=15600+(X<<4)|0,V[Z>>2]=V[X>>2],V[Z+4>>2]=V[X+4>>2],V[Z+8>>2]=V[X+8>>2],V[Z+12>>2]=V[X+12>>2];return}if(F=+z0(+ +O[Y+8>>3],+ +O[Y>>3]),(W|0)>0){Y=0;do G=G*0.37796447300922725,Y=Y+1|0;while((Y|0)!=(W|0))}if(z=G*0.3333333333333333,!K){if(G=+uV(+(G*0.381966011250105)),U0(W)|0)F=+p7(F+0.3334731722518321)}else W=(U0(W)|0)==0,G=+uV(+((W?z:z*0.37796447300922725)*0.381966011250105));U3(15600+(X<<4)|0,+p7(+O[15920+(X*24|0)>>3]-F),G,Z);return}function l1(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0;K=A,A=A+16|0,Z=K,vY(Y+4|0,Z),b7(Z,V[Y>>2]|0,X,0,W),A=K;return}function tV(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0,x=0,y=0,h=0,_=0,k=0,E=0,t=0,z8=0,Z8=0,x8=0,y8=0,g8=0,R8=0,U8=0,l=0,_8=0,t8=0,k8=0;if(_8=A,A=A+272|0,G=_8+256|0,_=_8+240|0,R8=_8,U8=_8+224|0,l=_8+208|0,k=_8+176|0,E=_8+160|0,t=_8+192|0,z8=_8+144|0,Z8=_8+128|0,x8=_8+112|0,y8=_8+96|0,g8=_8+80|0,V[G>>2]=X,V[_>>2]=V[Y>>2],V[_+4>>2]=V[Y+4>>2],V[_+8>>2]=V[Y+8>>2],V[_+12>>2]=V[Y+12>>2],vK(_,G,R8),V[Z>>2]=0,_=K+W+((K|0)==5&1)|0,(_|0)<=(W|0)){A=_8;return}q=V[G>>2]|0,B=U8+4|0,N=k+4|0,P=W+5|0,H=16880+(q<<2)|0,L=16960+(q<<2)|0,j=Z8+8|0,x=x8+8|0,y=y8+8|0,h=l+4|0,z=W;Y:while(!0){F=R8+(((z|0)%5|0)<<4)|0,V[l>>2]=V[F>>2],V[l+4>>2]=V[F+4>>2],V[l+8>>2]=V[F+8>>2],V[l+12>>2]=V[F+12>>2];do;while((K7(l,q,0,1)|0)==2);if((z|0)>(W|0)&(U0(X)|0)!=0){if(V[k>>2]=V[l>>2],V[k+4>>2]=V[l+4>>2],V[k+8>>2]=V[l+8>>2],V[k+12>>2]=V[l+12>>2],vY(B,E),K=V[k>>2]|0,G=V[17040+(K*80|0)+(V[U8>>2]<<2)>>2]|0,V[k>>2]=V[18640+(K*80|0)+(G*20|0)>>2],F=V[18640+(K*80|0)+(G*20|0)+16>>2]|0,(F|0)>0){Y=0;do xK(N),Y=Y+1|0;while((Y|0)<(F|0))}switch(F=18640+(K*80|0)+(G*20|0)+4|0,V[t>>2]=V[F>>2],V[t+4>>2]=V[F+4>>2],V[t+8>>2]=V[F+8>>2],LK(t,(V[H>>2]|0)*3|0),p6(N,t,N),b6(N),vY(N,z8),t8=+(V[L>>2]|0),O[Z8>>3]=t8*3,O[j>>3]=0,k8=t8*-1.5,O[x8>>3]=k8,O[x>>3]=t8*2.598076211353316,O[y8>>3]=k8,O[y>>3]=t8*-2.598076211353316,V[17040+((V[k>>2]|0)*80|0)+(V[l>>2]<<2)>>2]|0){case 1:{Y=x8,K=Z8;break}case 3:{Y=y8,K=x8;break}case 2:{Y=Z8,K=y8;break}default:{Y=12;break Y}}iK(E,z8,K,Y,g8),b7(g8,V[k>>2]|0,q,1,Z+8+(V[Z>>2]<<4)|0),V[Z>>2]=(V[Z>>2]|0)+1}if((z|0)<(P|0))vY(h,k),b7(k,V[l>>2]|0,q,1,Z+8+(V[Z>>2]<<4)|0),V[Z>>2]=(V[Z>>2]|0)+1;if(V[U8>>2]=V[l>>2],V[U8+4>>2]=V[l+4>>2],V[U8+8>>2]=V[l+8>>2],V[U8+12>>2]=V[l+12>>2],z=z+1|0,(z|0)>=(_|0)){Y=3;break}}if((Y|0)==3){A=_8;return}else if((Y|0)==12)I8(26970,27017,572,27027)}function vK(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,q=0;q=A,A=A+128|0,K=q+64|0,Z=q,G=K,F=20240,z=G+60|0;do V[G>>2]=V[F>>2],G=G+4|0,F=F+4|0;while((G|0)<(z|0));G=Z,F=20304,z=G+60|0;do V[G>>2]=V[F>>2],G=G+4|0,F=F+4|0;while((G|0)<(z|0));if(z=(U0(V[X>>2]|0)|0)==0,K=z?K:Z,Z=Y+4|0,EK(Z),yK(Z),U0(V[X>>2]|0)|0)_Y(Z),V[X>>2]=(V[X>>2]|0)+1;V[W>>2]=V[Y>>2],X=W+4|0,p6(Z,K,X),b6(X),V[W+16>>2]=V[Y>>2],X=W+20|0,p6(Z,K+12|0,X),b6(X),V[W+32>>2]=V[Y>>2],X=W+36|0,p6(Z,K+24|0,X),b6(X),V[W+48>>2]=V[Y>>2],X=W+52|0,p6(Z,K+36|0,X),b6(X),V[W+64>>2]=V[Y>>2],W=W+68|0,p6(Z,K+48|0,W),b6(W),A=q;return}function K7(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0;if(j=A,A=A+32|0,H=j+12|0,z=j,L=Y+4|0,P=V[16960+(X<<2)>>2]|0,N=(K|0)!=0,P=N?P*3|0:P,Z=V[L>>2]|0,B=Y+8|0,F=V[B>>2]|0,N)if(G=Y+12|0,K=V[G>>2]|0,Z=F+Z+K|0,(Z|0)==(P|0))return L=1,A=j,L|0;else q=G;else q=Y+12|0,K=V[q>>2]|0,Z=F+Z+K|0;if((Z|0)<=(P|0))return L=0,A=j,L|0;do if((K|0)>0){if(K=V[Y>>2]|0,(F|0)>0){G=18640+(K*80|0)+60|0,K=Y;break}if(K=18640+(K*80|0)+40|0,!W)G=K,K=Y;else E1(H,P,0,0),iV(L,H,z),k9(z),p6(z,H,L),G=K,K=Y}else G=18640+((V[Y>>2]|0)*80|0)+20|0,K=Y;while(0);if(V[K>>2]=V[G>>2],Z=G+16|0,(V[Z>>2]|0)>0){K=0;do xK(L),K=K+1|0;while((K|0)<(V[Z>>2]|0))}if(Y=G+4|0,V[H>>2]=V[Y>>2],V[H+4>>2]=V[Y+4>>2],V[H+8>>2]=V[Y+8>>2],X=V[16880+(X<<2)>>2]|0,LK(H,N?X*3|0:X),p6(L,H,L),b6(L),N)K=((V[B>>2]|0)+(V[L>>2]|0)+(V[q>>2]|0)|0)==(P|0)?1:2;else K=2;return L=K,A=j,L|0}function i1(Y,X){Y=Y|0,X=X|0;var W=0;do W=K7(Y,X,0,1)|0;while((W|0)==2);return W|0}function aV(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0,x=0,y=0,h=0,_=0,k=0,E=0,t=0,z8=0,Z8=0,x8=0,y8=0,g8=0,R8=0;if(y8=A,A=A+240|0,G=y8+224|0,t=y8+208|0,z8=y8,Z8=y8+192|0,x8=y8+176|0,y=y8+160|0,h=y8+144|0,_=y8+128|0,k=y8+112|0,E=y8+96|0,V[G>>2]=X,V[t>>2]=V[Y>>2],V[t+4>>2]=V[Y+4>>2],V[t+8>>2]=V[Y+8>>2],V[t+12>>2]=V[Y+12>>2],_K(t,G,z8),V[Z>>2]=0,x=K+W+((K|0)==6&1)|0,(x|0)<=(W|0)){A=y8;return}q=V[G>>2]|0,B=W+6|0,N=16960+(q<<2)|0,P=h+8|0,H=_+8|0,L=k+8|0,j=Z8+4|0,F=0,z=W,K=-1;Y:while(!0){if(G=(z|0)%6|0,Y=z8+(G<<4)|0,V[Z8>>2]=V[Y>>2],V[Z8+4>>2]=V[Y+4>>2],V[Z8+8>>2]=V[Y+8>>2],V[Z8+12>>2]=V[Y+12>>2],Y=F,F=K7(Z8,q,0,1)|0,(z|0)>(W|0)&(U0(X)|0)!=0?(Y|0)!=1?(V[Z8>>2]|0)!=(K|0):0:0){switch(vY(z8+(((G+5|0)%6|0)<<4)+4|0,x8),vY(z8+(G<<4)+4|0,y),g8=+(V[N>>2]|0),O[h>>3]=g8*3,O[P>>3]=0,R8=g8*-1.5,O[_>>3]=R8,O[H>>3]=g8*2.598076211353316,O[k>>3]=R8,O[L>>3]=g8*-2.598076211353316,G=V[t>>2]|0,V[17040+(G*80|0)+(((K|0)==(G|0)?V[Z8>>2]|0:K)<<2)>>2]|0){case 1:{Y=_,K=h;break}case 3:{Y=k,K=_;break}case 2:{Y=h,K=k;break}default:{Y=8;break Y}}if(iK(x8,y,K,Y,E),!(oK(x8,E)|0)?!(oK(y,E)|0):0)b7(E,V[t>>2]|0,q,1,Z+8+(V[Z>>2]<<4)|0),V[Z>>2]=(V[Z>>2]|0)+1}if((z|0)<(B|0))vY(j,x8),b7(x8,V[Z8>>2]|0,q,1,Z+8+(V[Z>>2]<<4)|0),V[Z>>2]=(V[Z>>2]|0)+1;if(z=z+1|0,(z|0)>=(x|0)){Y=3;break}else K=V[Z8>>2]|0}if((Y|0)==3){A=y8;return}else if((Y|0)==8)I8(27054,27017,737,27099)}function _K(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,q=0;q=A,A=A+160|0,K=q+80|0,Z=q,G=K,F=20368,z=G+72|0;do V[G>>2]=V[F>>2],G=G+4|0,F=F+4|0;while((G|0)<(z|0));G=Z,F=20448,z=G+72|0;do V[G>>2]=V[F>>2],G=G+4|0,F=F+4|0;while((G|0)<(z|0));if(z=(U0(V[X>>2]|0)|0)==0,K=z?K:Z,Z=Y+4|0,EK(Z),yK(Z),U0(V[X>>2]|0)|0)_Y(Z),V[X>>2]=(V[X>>2]|0)+1;V[W>>2]=V[Y>>2],X=W+4|0,p6(Z,K,X),b6(X),V[W+16>>2]=V[Y>>2],X=W+20|0,p6(Z,K+12|0,X),b6(X),V[W+32>>2]=V[Y>>2],X=W+36|0,p6(Z,K+24|0,X),b6(X),V[W+48>>2]=V[Y>>2],X=W+52|0,p6(Z,K+36|0,X),b6(X),V[W+64>>2]=V[Y>>2],X=W+68|0,p6(Z,K+48|0,X),b6(X),V[W+80>>2]=V[Y>>2],W=W+84|0,p6(Z,K+60|0,W),b6(W),A=q;return}function o1(Y,X){return Y=Y|0,X=X|0,X=s(Y|0,X|0,52)|0,R()|0,X&15|0}function $K(Y,X){return Y=Y|0,X=X|0,X=s(Y|0,X|0,45)|0,R()|0,X&127|0}function eV(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0;if(!(!0&(X&-16777216|0)==134217728))return Y=0,Y|0;if(K=s(Y|0,X|0,52)|0,R()|0,K=K&15,W=s(Y|0,X|0,45)|0,R()|0,W=W&127,W>>>0>121)return Y=0,Y|0;if(F=(K^15)*3|0,Z=s(Y|0,X|0,F|0)|0,F=a(Z|0,R()|0,F|0)|0,Z=R()|0,G=k6(-1227133514,-1171,F|0,Z|0)|0,!((F&613566756&G|0)==0&(Z&4681&(R()|0)|0)==0))return F=0,F|0;if(F=(K*3|0)+19|0,G=a(~Y|0,~X|0,F|0)|0,F=s(G|0,R()|0,F|0)|0,!((K|0)==15|(F|0)==0&(R()|0)==0))return F=0,F|0;if(!(c[20528+W>>0]|0))return F=1,F|0;if(X=X&8191,(Y|0)==0&(X|0)==0)return F=1,F|0;else return F=W5(Y|0,X|0,0)|0,R()|0,((63-F|0)%3|0|0)!=0|0;return 0}function YX(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0;if(Z=a(X|0,0,52)|0,G=R()|0,W=a(W|0,0,45)|0,W=G|(R()|0)|134225919,(X|0)<1){G=-1,K=W,X=Y,V[X>>2]=G,Y=Y+4|0,V[Y>>2]=K;return}G=1,Z=-1;while(!0)if(F=(15-G|0)*3|0,z=a(7,0,F|0)|0,W=W&~(R()|0),F=a(K|0,0,F|0)|0,Z=Z&~z|F,W=W|(R()|0),(G|0)==(X|0))break;else G=G+1|0;z=Y,F=z,V[F>>2]=Z,z=z+4|0,V[z>>2]=W;return}function VX(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0;if(G=s(Y|0,X|0,52)|0,R()|0,G=G&15,W>>>0>15)return K=4,K|0;if((G|0)<(W|0))return K=12,K|0;if((G|0)==(W|0))return V[K>>2]=Y,V[K+4>>2]=X,K=0,K|0;if(Z=a(W|0,0,52)|0,Z=Z|Y,Y=R()|0|X&-15728641,(G|0)>(W|0))do X=a(7,0,(14-W|0)*3|0)|0,W=W+1|0,Z=X|Z,Y=R()|0|Y;while((W|0)<(G|0));return V[K>>2]=Z,V[K+4>>2]=Y,K=0,K|0}function u7(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0;if(G=s(Y|0,X|0,52)|0,R()|0,G=G&15,!((W|0)<16&(G|0)<=(W|0)))return K=4,K|0;Z=W-G|0,W=s(Y|0,X|0,45)|0,R()|0;Y:do if(!(Q6(W&127)|0))W=qY(7,0,Z,((Z|0)<0)<<31>>31)|0,Z=R()|0;else{V:do if(G|0){W=1;while(!0){if(F=a(7,0,(15-W|0)*3|0)|0,!((F&Y|0)==0&((R()|0)&X|0)==0))break;if(W>>>0<G>>>0)W=W+1|0;else break V}W=qY(7,0,Z,((Z|0)<0)<<31>>31)|0,Z=R()|0;break Y}while(0);W=qY(7,0,Z,((Z|0)<0)<<31>>31)|0,W=j6(W|0,R()|0,5,0)|0,W=C8(W|0,R()|0,-5,-1)|0,W=DY(W|0,R()|0,6,0)|0,W=C8(W|0,R()|0,1,0)|0,Z=R()|0}while(0);return F=K,V[F>>2]=W,V[F+4>>2]=Z,F=0,F|0}function J6(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0;if(Z=s(Y|0,X|0,45)|0,R()|0,!(Q6(Z&127)|0))return Z=0,Z|0;Z=s(Y|0,X|0,52)|0,R()|0,Z=Z&15;Y:do if(!Z)W=0;else{K=1;while(!0){if(W=s(Y|0,X|0,(15-K|0)*3|0)|0,R()|0,W=W&7,W|0)break Y;if(K>>>0<Z>>>0)K=K+1|0;else{W=0;break}}}while(0);return Z=(W|0)==0&1,Z|0}function t1(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0;if(F=A,A=A+16|0,G=F,QX(G,Y,X,W),X=G,Y=V[X>>2]|0,X=V[X+4>>2]|0,(Y|0)==0&(X|0)==0)return A=F,0;Z=0,W=0;do z=K+(Z<<3)|0,V[z>>2]=Y,V[z+4>>2]=X,Z=C8(Z|0,W|0,1,0)|0,W=R()|0,GX(G),z=G,Y=V[z>>2]|0,X=V[z+4>>2]|0;while(!((Y|0)==0&(X|0)==0));return A=F,0}function hK(Y,X,W,K){if(Y=Y|0,X=X|0,W=W|0,K=K|0,(K|0)<(W|0))return W=X,K=Y,E8(W|0),K|0;return W=a(-1,-1,((K-W|0)*3|0)+3|0)|0,K=a(~W|0,~(R()|0)|0,(15-K|0)*3|0)|0,W=~(R()|0)&X,K=~K&Y,E8(W|0),K|0}function gK(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0;if(Z=s(Y|0,X|0,52)|0,R()|0,Z=Z&15,!((W|0)<16&(Z|0)<=(W|0)))return K=4,K|0;if((Z|0)<(W|0))Z=a(-1,-1,((W+-1-Z|0)*3|0)+3|0)|0,Z=a(~Z|0,~(R()|0)|0,(15-W|0)*3|0)|0,X=~(R()|0)&X,Y=~Z&Y;return Z=a(W|0,0,52)|0,W=X&-15728641|(R()|0),V[K>>2]=Y|Z,V[K+4>>2]=W,K=0,K|0}function a1(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0,x=0,y=0,h=0,_=0,k=0,E=0,t=0,z8=0,Z8=0,x8=0,y8=0,g8=0,R8=0,U8=0,l=0;if((W|0)==0&(K|0)==0)return l=0,l|0;if(Z=Y,G=V[Z>>2]|0,Z=V[Z+4>>2]|0,!0&(Z&15728640|0)==0){if(!((K|0)>0|(K|0)==0&W>>>0>0))return l=0,l|0;if(l=X,V[l>>2]=G,V[l+4>>2]=Z,(W|0)==1&(K|0)==0)return l=0,l|0;Z=1,G=0;do R8=Y+(Z<<3)|0,U8=V[R8+4>>2]|0,l=X+(Z<<3)|0,V[l>>2]=V[R8>>2],V[l+4>>2]=U8,Z=C8(Z|0,G|0,1,0)|0,G=R()|0;while((G|0)<(K|0)|(G|0)==(K|0)&Z>>>0<W>>>0);return Z=0,Z|0}if(g8=W<<3,U8=y0(g8)|0,!U8)return l=13,l|0;if(z7(U8|0,Y|0,g8|0)|0,R8=e6(W,8)|0,!R8)return O8(U8),l=13,l|0;Y:while(!0){Z=U8,B=V[Z>>2]|0,Z=V[Z+4>>2]|0,x8=s(B|0,Z|0,52)|0,R()|0,x8=x8&15,y8=x8+-1|0,Z8=(x8|0)!=0,z8=(K|0)>0|(K|0)==0&W>>>0>0;V:do if(Z8&z8){if(_=a(y8|0,0,52)|0,k=R()|0,y8>>>0>15){if(!((B|0)==0&(Z|0)==0)){l=16;break Y}G=0,Y=0;while(!0){if(G=C8(G|0,Y|0,1,0)|0,Y=R()|0,!((Y|0)<(K|0)|(Y|0)==(K|0)&G>>>0<W>>>0))break V;if(F=U8+(G<<3)|0,t=V[F>>2]|0,F=V[F+4>>2]|0,!((t|0)==0&(F|0)==0)){Z=F,l=16;break Y}}}z=B,Y=Z,G=0,F=0;while(!0){if(!((z|0)==0&(Y|0)==0)){if(!(!0&(Y&117440512|0)==0)){l=21;break Y}if(N=s(z|0,Y|0,52)|0,R()|0,N=N&15,(N|0)<(y8|0)){Z=12,l=27;break Y}if((N|0)!=(y8|0)){if(z=z|_,Y=Y&-15728641|k,N>>>0>=x8>>>0){q=y8;do t=a(7,0,(14-q|0)*3|0)|0,q=q+1|0,z=t|z,Y=R()|0|Y;while(q>>>0<N>>>0)}}if(H=F7(z|0,Y|0,W|0,K|0)|0,L=R()|0,q=R8+(H<<3)|0,N=q,P=V[N>>2]|0,N=V[N+4>>2]|0,!((P|0)==0&(N|0)==0)){y=0,h=0;do{if((y|0)>(K|0)|(y|0)==(K|0)&h>>>0>W>>>0){l=31;break Y}if((P|0)==(z|0)&(N&-117440513|0)==(Y|0)){j=s(P|0,N|0,56)|0,R()|0,j=j&7,x=j+1|0,t=s(P|0,N|0,45)|0,R()|0;X:do if(!(Q6(t&127)|0))N=7;else{if(P=s(P|0,N|0,52)|0,R()|0,P=P&15,!P){N=6;break}N=1;while(!0){if(t=a(7,0,(15-N|0)*3|0)|0,!((t&z|0)==0&((R()|0)&Y|0)==0)){N=7;break X}if(N>>>0<P>>>0)N=N+1|0;else{N=6;break}}}while(0);if((j+2|0)>>>0>N>>>0){l=41;break Y}t=a(x|0,0,56)|0,Y=R()|0|Y&-117440513,E=q,V[E>>2]=0,V[E+4>>2]=0,z=t|z}else H=C8(H|0,L|0,1,0)|0,H=G7(H|0,R()|0,W|0,K|0)|0,L=R()|0;h=C8(h|0,y|0,1,0)|0,y=R()|0,q=R8+(H<<3)|0,N=q,P=V[N>>2]|0,N=V[N+4>>2]|0}while(!((P|0)==0&(N|0)==0))}t=q,V[t>>2]=z,V[t+4>>2]=Y}if(G=C8(G|0,F|0,1,0)|0,F=R()|0,!((F|0)<(K|0)|(F|0)==(K|0)&G>>>0<W>>>0))break V;Y=U8+(G<<3)|0,z=V[Y>>2]|0,Y=V[Y+4>>2]|0}}while(0);if(t=C8(W|0,K|0,5,0)|0,E=R()|0,E>>>0<0|(E|0)==0&t>>>0<11){l=85;break}if(t=DY(W|0,K|0,6,0)|0,R()|0,t=e6(t,8)|0,!t){l=48;break}do if(z8){x=0,Y=0,j=0,y=0;while(!0){if(N=R8+(x<<3)|0,F=N,G=V[F>>2]|0,F=V[F+4>>2]|0,!((G|0)==0&(F|0)==0)){P=s(G|0,F|0,56)|0,R()|0,P=P&7,z=P+1|0,H=F&-117440513,E=s(G|0,F|0,45)|0,R()|0;V:do if(Q6(E&127)|0){if(L=s(G|0,F|0,52)|0,R()|0,L=L&15,L|0){q=1;while(!0){if(E=a(7,0,(15-q|0)*3|0)|0,!((G&E|0)==0&(H&(R()|0)|0)==0))break V;if(q>>>0<L>>>0)q=q+1|0;else break}}F=a(z|0,0,56)|0,G=F|G,F=R()|0|H,z=N,V[z>>2]=G,V[z+4>>2]=F,z=P+2|0}while(0);if((z|0)==7)E=t+(Y<<3)|0,V[E>>2]=G,V[E+4>>2]=F&-117440513,Y=C8(Y|0,j|0,1,0)|0,E=R()|0;else E=j}else E=j;if(x=C8(x|0,y|0,1,0)|0,y=R()|0,!((y|0)<(K|0)|(y|0)==(K|0)&x>>>0<W>>>0))break;else j=E}if(z8){if(h=y8>>>0>15,_=a(y8|0,0,52)|0,k=R()|0,!Z8){G=0,q=0,z=0,F=0;while(!0){if(!((B|0)==0&(Z|0)==0))y8=X+(G<<3)|0,V[y8>>2]=B,V[y8+4>>2]=Z,G=C8(G|0,q|0,1,0)|0,q=R()|0;if(z=C8(z|0,F|0,1,0)|0,F=R()|0,!((F|0)<(K|0)|(F|0)==(K|0)&z>>>0<W>>>0))break;Z=U8+(z<<3)|0,B=V[Z>>2]|0,Z=V[Z+4>>2]|0}Z=E;break}G=0,q=0,F=0,z=0;while(!0){do if(!((B|0)==0&(Z|0)==0)){if(L=s(B|0,Z|0,52)|0,R()|0,L=L&15,h|(L|0)<(y8|0)){l=80;break Y}if((L|0)!=(y8|0)){if(N=B|_,P=Z&-15728641|k,L>>>0>=x8>>>0){H=y8;do Z8=a(7,0,(14-H|0)*3|0)|0,H=H+1|0,N=Z8|N,P=R()|0|P;while(H>>>0<L>>>0)}}else N=B,P=Z;j=F7(N|0,P|0,W|0,K|0)|0,H=0,L=0,y=R()|0;do{if((H|0)>(K|0)|(H|0)==(K|0)&L>>>0>W>>>0){l=81;break Y}if(Z8=R8+(j<<3)|0,x=V[Z8+4>>2]|0,(x&-117440513|0)==(P|0)?(V[Z8>>2]|0)==(N|0):0){l=65;break}Z8=C8(j|0,y|0,1,0)|0,j=G7(Z8|0,R()|0,W|0,K|0)|0,y=R()|0,L=C8(L|0,H|0,1,0)|0,H=R()|0,Z8=R8+(j<<3)|0}while(!((V[Z8>>2]|0)==(N|0)?(V[Z8+4>>2]|0)==(P|0):0));if((l|0)==65?(l=0,!0&(x&117440512|0)==100663296):0)break;Z8=X+(G<<3)|0,V[Z8>>2]=B,V[Z8+4>>2]=Z,G=C8(G|0,q|0,1,0)|0,q=R()|0}while(0);if(F=C8(F|0,z|0,1,0)|0,z=R()|0,!((z|0)<(K|0)|(z|0)==(K|0)&F>>>0<W>>>0))break;Z=U8+(F<<3)|0,B=V[Z>>2]|0,Z=V[Z+4>>2]|0}Z=E}else G=0,Z=E}else G=0,Y=0,Z=0;while(0);if(NY(R8|0,0,g8|0)|0,z7(U8|0,t|0,Y<<3|0)|0,O8(t),(Y|0)==0&(Z|0)==0){l=89;break}else X=X+(G<<3)|0,K=Z,W=Y}if((l|0)==16)if(!0&(Z&117440512|0)==0)Z=4,l=27;else l=21;else if((l|0)==31)I8(27795,27122,529,27132);else if((l|0)==41)return O8(U8),O8(R8),l=10,l|0;else if((l|0)==48)return O8(U8),O8(R8),l=13,l|0;else if((l|0)==80)I8(27795,27122,620,27132);else if((l|0)==81)I8(27795,27122,632,27132);else if((l|0)==85)z7(X|0,U8|0,W<<3|0)|0,l=89;if((l|0)==21)return O8(U8),O8(R8),l=5,l|0;else if((l|0)==27)return O8(U8),O8(R8),l=Z,l|0;else if((l|0)==89)return O8(U8),O8(R8),l=0,l|0;return 0}function e1(Y,X,W,K,Z,G,F){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0,G=G|0,F=F|0;var z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0,x=0;if(x=A,A=A+16|0,j=x,!((W|0)>0|(W|0)==0&X>>>0>0))return j=0,A=x,j|0;if((F|0)>=16)return j=12,A=x,j|0;H=0,L=0,P=0,z=0;Y:while(!0){if(B=Y+(H<<3)|0,q=V[B>>2]|0,B=V[B+4>>2]|0,N=s(q|0,B|0,52)|0,R()|0,(N&15|0)>(F|0)){z=12,q=11;break}if(QX(j,q,B,F),N=j,B=V[N>>2]|0,N=V[N+4>>2]|0,(B|0)==0&(N|0)==0)q=P;else{q=P;do{if(!((z|0)<(G|0)|(z|0)==(G|0)&q>>>0<Z>>>0)){q=10;break Y}P=K+(q<<3)|0,V[P>>2]=B,V[P+4>>2]=N,q=C8(q|0,z|0,1,0)|0,z=R()|0,GX(j),P=j,B=V[P>>2]|0,N=V[P+4>>2]|0}while(!((B|0)==0&(N|0)==0))}if(H=C8(H|0,L|0,1,0)|0,L=R()|0,!((L|0)<(W|0)|(L|0)==(W|0)&H>>>0<X>>>0)){z=0,q=11;break}else P=q}if((q|0)==10)return j=14,A=x,j|0;else if((q|0)==11)return A=x,z|0;return 0}function Y3(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0;H=A,A=A+16|0,P=H;Y:do if((W|0)>0|(W|0)==0&X>>>0>0){B=0,F=0,G=0,N=0;while(!0){if(q=Y+(B<<3)|0,z=V[q>>2]|0,q=V[q+4>>2]|0,!((z|0)==0&(q|0)==0)){if(q=(u7(z,q,K,P)|0)==0,z=P,F=C8(V[z>>2]|0,V[z+4>>2]|0,F|0,G|0)|0,G=R()|0,!q){G=12;break}}if(B=C8(B|0,N|0,1,0)|0,N=R()|0,!((N|0)<(W|0)|(N|0)==(W|0)&B>>>0<X>>>0))break Y}return A=H,G|0}else F=0,G=0;while(0);return V[Z>>2]=F,V[Z+4>>2]=G,Z=0,A=H,Z|0}function V3(Y,X){return Y=Y|0,X=X|0,X=s(Y|0,X|0,52)|0,R()|0,X&1|0}function a6(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0;if(Z=s(Y|0,X|0,52)|0,R()|0,Z=Z&15,!Z)return Z=0,Z|0;K=1;while(!0){if(W=s(Y|0,X|0,(15-K|0)*3|0)|0,R()|0,W=W&7,W|0){K=5;break}if(K>>>0<Z>>>0)K=K+1|0;else{W=0,K=5;break}}if((K|0)==5)return W|0;return 0}function XX(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0,q=0;if(q=s(Y|0,X|0,52)|0,R()|0,q=q&15,!q)return z=X,q=Y,E8(z|0),q|0;z=1,W=0;while(!0){G=(15-z|0)*3|0,K=a(7,0,G|0)|0,Z=R()|0,F=s(Y|0,X|0,G|0)|0,R()|0,G=a($Y(F&7)|0,0,G|0)|0,F=R()|0,Y=G|Y&~K,X=F|X&~Z;Y:do if(!W)if(!((G&K|0)==0&(F&Z|0)==0))if(K=s(Y|0,X|0,52)|0,R()|0,K=K&15,!K)W=1;else{W=1;V:while(!0){switch(F=s(Y|0,X|0,(15-W|0)*3|0)|0,R()|0,F&7){case 1:break V;case 0:break;default:{W=1;break Y}}if(W>>>0<K>>>0)W=W+1|0;else{W=1;break Y}}W=1;while(!0)if(F=(15-W|0)*3|0,Z=s(Y|0,X|0,F|0)|0,R()|0,G=a(7,0,F|0)|0,X=X&~(R()|0),F=a($Y(Z&7)|0,0,F|0)|0,Y=Y&~G|F,X=X|(R()|0),W>>>0<K>>>0)W=W+1|0;else{W=1;break}}else W=0;while(0);if(z>>>0<q>>>0)z=z+1|0;else break}return E8(X|0),Y|0}function hY(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0;if(K=s(Y|0,X|0,52)|0,R()|0,K=K&15,!K)return W=X,K=Y,E8(W|0),K|0;W=1;while(!0)if(G=(15-W|0)*3|0,F=s(Y|0,X|0,G|0)|0,R()|0,Z=a(7,0,G|0)|0,X=X&~(R()|0),G=a($Y(F&7)|0,0,G|0)|0,Y=G|Y&~Z,X=R()|0|X,W>>>0<K>>>0)W=W+1|0;else break;return E8(X|0),Y|0}function X3(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0,q=0;if(q=s(Y|0,X|0,52)|0,R()|0,q=q&15,!q)return z=X,q=Y,E8(z|0),q|0;z=1,W=0;while(!0){G=(15-z|0)*3|0,K=a(7,0,G|0)|0,Z=R()|0,F=s(Y|0,X|0,G|0)|0,R()|0,G=a(MY(F&7)|0,0,G|0)|0,F=R()|0,Y=G|Y&~K,X=F|X&~Z;Y:do if(!W)if(!((G&K|0)==0&(F&Z|0)==0))if(K=s(Y|0,X|0,52)|0,R()|0,K=K&15,!K)W=1;else{W=1;V:while(!0){switch(F=s(Y|0,X|0,(15-W|0)*3|0)|0,R()|0,F&7){case 1:break V;case 0:break;default:{W=1;break Y}}if(W>>>0<K>>>0)W=W+1|0;else{W=1;break Y}}W=1;while(!0)if(Z=(15-W|0)*3|0,G=a(7,0,Z|0)|0,F=X&~(R()|0),X=s(Y|0,X|0,Z|0)|0,R()|0,X=a(MY(X&7)|0,0,Z|0)|0,Y=Y&~G|X,X=F|(R()|0),W>>>0<K>>>0)W=W+1|0;else{W=1;break}}else W=0;while(0);if(z>>>0<q>>>0)z=z+1|0;else break}return E8(X|0),Y|0}function WX(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0;if(K=s(Y|0,X|0,52)|0,R()|0,K=K&15,!K)return W=X,K=Y,E8(W|0),K|0;W=1;while(!0)if(F=(15-W|0)*3|0,G=a(7,0,F|0)|0,Z=X&~(R()|0),X=s(Y|0,X|0,F|0)|0,R()|0,X=a(MY(X&7)|0,0,F|0)|0,Y=X|Y&~G,X=R()|0|Z,W>>>0<K>>>0)W=W+1|0;else break;return E8(X|0),Y|0}function W3(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0,q=0,B=0,N=0;if(q=A,A=A+64|0,z=q+40|0,K=q+24|0,Z=q+12|0,G=q,a(X|0,0,52)|0,W=R()|0|134225919,!X){if((V[Y+4>>2]|0)>2)return F=0,z=0,E8(F|0),A=q,z|0;if((V[Y+8>>2]|0)>2)return F=0,z=0,E8(F|0),A=q,z|0;if((V[Y+12>>2]|0)>2)return F=0,z=0,E8(F|0),A=q,z|0;return a(SK(Y)|0,0,45)|0,F=R()|0|W,z=-1,E8(F|0),A=q,z|0}if(V[z>>2]=V[Y>>2],V[z+4>>2]=V[Y+4>>2],V[z+8>>2]=V[Y+8>>2],V[z+12>>2]=V[Y+12>>2],F=z+4|0,(X|0)>0){Y=-1;while(!0){if(V[K>>2]=V[F>>2],V[K+4>>2]=V[F+4>>2],V[K+8>>2]=V[F+8>>2],!(X&1))jK(F),V[Z>>2]=V[F>>2],V[Z+4>>2]=V[F+4>>2],V[Z+8>>2]=V[F+8>>2],_Y(Z);else _1(F),V[Z>>2]=V[F>>2],V[Z+4>>2]=V[F+4>>2],V[Z+8>>2]=V[F+8>>2],y9(Z);if(iV(K,Z,G),b6(G),N=(15-X|0)*3|0,B=a(7,0,N|0)|0,W=W&~(R()|0),N=a(E9(G)|0,0,N|0)|0,Y=N|Y&~B,W=R()|0|W,(X|0)>1)X=X+-1|0;else break}}else Y=-1;Y:do if(((V[F>>2]|0)<=2?(V[z+8>>2]|0)<=2:0)?(V[z+12>>2]|0)<=2:0){if(K=SK(z)|0,X=a(K|0,0,45)|0,X=X|Y,Y=R()|0|W&-1040385,G=S1(z)|0,!(Q6(K)|0)){if((G|0)<=0)break;Z=0;while(!0){if(K=s(X|0,Y|0,52)|0,R()|0,K=K&15,K){W=1;while(!0)if(N=(15-W|0)*3|0,z=s(X|0,Y|0,N|0)|0,R()|0,B=a(7,0,N|0)|0,Y=Y&~(R()|0),N=a($Y(z&7)|0,0,N|0)|0,X=X&~B|N,Y=Y|(R()|0),W>>>0<K>>>0)W=W+1|0;else break}if(Z=Z+1|0,(Z|0)==(G|0))break Y}}Z=s(X|0,Y|0,52)|0,R()|0,Z=Z&15;V:do if(Z){W=1;X:while(!0){switch(N=s(X|0,Y|0,(15-W|0)*3|0)|0,R()|0,N&7){case 1:break X;case 0:break;default:break V}if(W>>>0<Z>>>0)W=W+1|0;else break V}if(PK(K,V[z>>2]|0)|0){W=1;while(!0)if(z=(15-W|0)*3|0,B=a(7,0,z|0)|0,N=Y&~(R()|0),Y=s(X|0,Y|0,z|0)|0,R()|0,Y=a(MY(Y&7)|0,0,z|0)|0,X=X&~B|Y,Y=N|(R()|0),W>>>0<Z>>>0)W=W+1|0;else break}else{W=1;while(!0)if(N=(15-W|0)*3|0,z=s(X|0,Y|0,N|0)|0,R()|0,B=a(7,0,N|0)|0,Y=Y&~(R()|0),N=a($Y(z&7)|0,0,N|0)|0,X=X&~B|N,Y=Y|(R()|0),W>>>0<Z>>>0)W=W+1|0;else break}}while(0);if((G|0)>0){W=0;do X=XX(X,Y)|0,Y=R()|0,W=W+1|0;while((W|0)!=(G|0))}}else X=0,Y=0;while(0);return B=Y,N=X,E8(B|0),A=q,N|0}function U0(Y){return Y=Y|0,(Y|0)%2|0|0}function KX(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0;if(Z=A,A=A+16|0,K=Z,X>>>0>15)return K=4,A=Z,K|0;if((V[Y+4>>2]&2146435072|0)==2146435072)return K=3,A=Z,K|0;if((V[Y+8+4>>2]&2146435072|0)==2146435072)return K=3,A=Z,K|0;if(n1(Y,X,K),X=W3(K,X)|0,K=R()|0,V[W>>2]=X,V[W+4>>2]=K,(X|0)==0&(K|0)==0)I8(27795,27122,959,27145);return K=0,A=Z,K|0}function JX(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0;if(Z=W+4|0,G=s(Y|0,X|0,52)|0,R()|0,G=G&15,F=s(Y|0,X|0,45)|0,R()|0,K=(G|0)==0,!(Q6(F&127)|0)){if(K)return F=0,F|0;if((V[Z>>2]|0)==0?(V[W+8>>2]|0)==0:0)K=(V[W+12>>2]|0)!=0&1;else K=1}else if(K)return F=1,F|0;else K=1;W=1;while(!0){if(!(W&1))_Y(Z);else y9(Z);if(F=s(Y|0,X|0,(15-W|0)*3|0)|0,R()|0,TK(Z,F&7),W>>>0<G>>>0)W=W+1|0;else break}return K|0}function J7(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,q=0,B=0,N=0;if(N=A,A=A+16|0,q=N,B=s(Y|0,X|0,45)|0,R()|0,B=B&127,B>>>0>121)return V[W>>2]=0,V[W+4>>2]=0,V[W+8>>2]=0,V[W+12>>2]=0,B=5,A=N,B|0;Y:do if((Q6(B)|0)!=0?(G=s(Y|0,X|0,52)|0,R()|0,G=G&15,(G|0)!=0):0){K=1;V:while(!0){switch(z=s(Y|0,X|0,(15-K|0)*3|0)|0,R()|0,z&7){case 5:break V;case 0:break;default:{K=X;break Y}}if(K>>>0<G>>>0)K=K+1|0;else{K=X;break Y}}Z=1,K=X;while(!0)if(X=(15-Z|0)*3|0,F=a(7,0,X|0)|0,z=K&~(R()|0),K=s(Y|0,K|0,X|0)|0,R()|0,K=a(MY(K&7)|0,0,X|0)|0,Y=Y&~F|K,K=z|(R()|0),Z>>>0<G>>>0)Z=Z+1|0;else break}else K=X;while(0);if(z=7696+(B*28|0)|0,V[W>>2]=V[z>>2],V[W+4>>2]=V[z+4>>2],V[W+8>>2]=V[z+8>>2],V[W+12>>2]=V[z+12>>2],!(JX(Y,K,W)|0))return B=0,A=N,B|0;if(F=W+4|0,V[q>>2]=V[F>>2],V[q+4>>2]=V[F+4>>2],V[q+8>>2]=V[F+8>>2],G=s(Y|0,K|0,52)|0,R()|0,z=G&15,!(G&1))G=z;else _Y(F),G=z+1|0;if(!(Q6(B)|0))K=0;else{Y:do if(!z)K=0;else{X=1;while(!0){if(Z=s(Y|0,K|0,(15-X|0)*3|0)|0,R()|0,Z=Z&7,Z|0){K=Z;break Y}if(X>>>0<z>>>0)X=X+1|0;else{K=0;break}}}while(0);K=(K|0)==4&1}if(!(K7(W,G,K,0)|0)){if((G|0)!=(z|0))V[F>>2]=V[q>>2],V[F+4>>2]=V[q+4>>2],V[F+8>>2]=V[q+8>>2]}else{if(Q6(B)|0)do;while((K7(W,G,0,0)|0)!=0);if((G|0)!=(z|0))jK(F)}return B=0,A=N,B|0}function gY(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0;if(G=A,A=A+16|0,K=G,Z=J7(Y,X,K)|0,Z|0)return A=G,Z|0;return Z=s(Y|0,X|0,52)|0,R()|0,l1(K,Z&15,W),Z=0,A=G,Z|0}function Z7(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0;if(F=A,A=A+16|0,G=F,K=J7(Y,X,G)|0,K|0)return G=K,A=F,G|0;K=s(Y|0,X|0,45)|0,R()|0,K=(Q6(K&127)|0)==0,Z=s(Y|0,X|0,52)|0,R()|0,Z=Z&15;Y:do if(!K){if(Z|0){K=1;while(!0){if(z=a(7,0,(15-K|0)*3|0)|0,!((z&Y|0)==0&((R()|0)&X|0)==0))break Y;if(K>>>0<Z>>>0)K=K+1|0;else break}}return tV(G,Z,0,5,W),z=0,A=F,z|0}while(0);return aV(G,Z,0,6,W),z=0,A=F,z|0}function K3(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0;if(Z=s(Y|0,X|0,45)|0,R()|0,!(Q6(Z&127)|0))return Z=2,V[W>>2]=Z,0;if(Z=s(Y|0,X|0,52)|0,R()|0,Z=Z&15,!Z)return Z=5,V[W>>2]=Z,0;K=1;while(!0){if(G=a(7,0,(15-K|0)*3|0)|0,!((G&Y|0)==0&((R()|0)&X|0)==0)){K=2,Y=6;break}if(K>>>0<Z>>>0)K=K+1|0;else{K=5,Y=6;break}}if((Y|0)==6)return V[W>>2]=K,0;return 0}function fK(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,q=0,B=0,N=0,P=0;P=A,A=A+128|0,B=P+112|0,G=P+96|0,N=P,Z=s(Y|0,X|0,52)|0,R()|0,z=Z&15,V[B>>2]=z,F=s(Y|0,X|0,45)|0,R()|0,F=F&127;Y:do if(Q6(F)|0){if(z|0){K=1;while(!0){if(q=a(7,0,(15-K|0)*3|0)|0,!((q&Y|0)==0&((R()|0)&X|0)==0)){Z=0;break Y}if(K>>>0<z>>>0)K=K+1|0;else break}}if(!(Z&1))return q=a(z+1|0,0,52)|0,N=R()|0|X&-15728641,B=a(7,0,(14-z|0)*3|0)|0,N=fK((q|Y)&~B,N&~(R()|0),W)|0,A=P,N|0;else Z=1}else Z=0;while(0);if(K=J7(Y,X,G)|0,!K){if(Z)vK(G,B,N),q=5;else _K(G,B,N),q=6;Y:do if(Q6(F)|0)if(!z)Y=5;else{K=1;while(!0){if(F=a(7,0,(15-K|0)*3|0)|0,!((F&Y|0)==0&((R()|0)&X|0)==0)){Y=2;break Y}if(K>>>0<z>>>0)K=K+1|0;else{Y=5;break}}}else Y=2;while(0);NY(W|0,-1,Y<<2|0)|0;Y:do if(Z){G=0;while(!0){if(F=N+(G<<4)|0,i1(F,V[B>>2]|0)|0,F=V[F>>2]|0,z=V[W>>2]|0,(z|0)==-1|(z|0)==(F|0))K=W;else{Z=0;do{if(Z=Z+1|0,Z>>>0>=Y>>>0){K=1;break Y}K=W+(Z<<2)|0,z=V[K>>2]|0}while(!((z|0)==-1|(z|0)==(F|0)))}if(V[K>>2]=F,G=G+1|0,G>>>0>=q>>>0){K=0;break}}}else{G=0;while(!0){if(F=N+(G<<4)|0,K7(F,V[B>>2]|0,0,1)|0,F=V[F>>2]|0,z=V[W>>2]|0,(z|0)==-1|(z|0)==(F|0))K=W;else{Z=0;do{if(Z=Z+1|0,Z>>>0>=Y>>>0){K=1;break Y}K=W+(Z<<2)|0,z=V[K>>2]|0}while(!((z|0)==-1|(z|0)==(F|0)))}if(V[K>>2]=F,G=G+1|0,G>>>0>=q>>>0){K=0;break}}}while(0)}return N=K,A=P,N|0}function J3(){return 12}function ZX(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0,q=0;if(Y>>>0>15)return z=4,z|0;if(a(Y|0,0,52)|0,z=R()|0|134225919,!Y){W=0,K=0;do{if(Q6(K)|0)a(K|0,0,45)|0,F=z|(R()|0),Y=X+(W<<3)|0,V[Y>>2]=-1,V[Y+4>>2]=F,W=W+1|0;K=K+1|0}while((K|0)!=122);return W=0,W|0}W=0,F=0;do{if(Q6(F)|0){a(F|0,0,45)|0,K=1,Z=-1,G=z|(R()|0);while(!0)if(q=a(7,0,(15-K|0)*3|0)|0,Z=Z&~q,G=G&~(R()|0),(K|0)==(Y|0))break;else K=K+1|0;q=X+(W<<3)|0,V[q>>2]=Z,V[q+4>>2]=G,W=W+1|0}F=F+1|0}while((F|0)!=122);return W=0,W|0}function Z3(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0,x=0,y=0,h=0,_=0;if(_=A,A=A+16|0,y=_,h=s(Y|0,X|0,52)|0,R()|0,h=h&15,W>>>0>15)return h=4,A=_,h|0;if((h|0)<(W|0))return h=12,A=_,h|0;if((h|0)!=(W|0))if(G=a(W|0,0,52)|0,G=G|Y,z=R()|0|X&-15728641,(h|0)>(W|0)){q=W;do x=a(7,0,(14-q|0)*3|0)|0,q=q+1|0,G=x|G,z=R()|0|z;while((q|0)<(h|0));x=G}else x=G;else x=Y,z=X;j=s(x|0,z|0,45)|0,R()|0;Y:do if(Q6(j&127)|0){if(q=s(x|0,z|0,52)|0,R()|0,q=q&15,q|0){G=1;while(!0){if(j=a(7,0,(15-G|0)*3|0)|0,!((j&x|0)==0&((R()|0)&z|0)==0)){B=33;break Y}if(G>>>0<q>>>0)G=G+1|0;else break}}if(j=K,V[j>>2]=0,V[j+4>>2]=0,(h|0)>(W|0)){j=X&-15728641,L=h;while(!0){if(H=L,L=L+-1|0,L>>>0>15|(h|0)<(L|0)){B=19;break}if((h|0)!=(L|0))if(G=a(L|0,0,52)|0,G=G|Y,q=R()|0|j,(h|0)<(H|0))P=G;else{B=L;do P=a(7,0,(14-B|0)*3|0)|0,B=B+1|0,G=P|G,q=R()|0|q;while((B|0)<(h|0));P=G}else P=Y,q=X;if(N=s(P|0,q|0,45)|0,R()|0,!(Q6(N&127)|0))G=0;else{N=s(P|0,q|0,52)|0,R()|0,N=N&15;V:do if(!N)G=0;else{B=1;while(!0){if(G=s(P|0,q|0,(15-B|0)*3|0)|0,R()|0,G=G&7,G|0)break V;if(B>>>0<N>>>0)B=B+1|0;else{G=0;break}}}while(0);G=(G|0)==0&1}if(q=s(Y|0,X|0,(15-H|0)*3|0)|0,R()|0,q=q&7,(q|0)==7){Z=5,B=42;break}if(G=(G|0)!=0,(q|0)==1&G){Z=5,B=42;break}if(P=q+(((q|0)!=0&G)<<31>>31)|0,P|0){if(B=h-H|0,B=qY(7,0,B,((B|0)<0)<<31>>31)|0,N=R()|0,G)G=j6(B|0,N|0,5,0)|0,G=C8(G|0,R()|0,-5,-1)|0,G=DY(G|0,R()|0,6,0)|0,G=C8(G|0,R()|0,1,0)|0,q=R()|0;else G=B,q=N;H=P+-1|0,H=j6(B|0,N|0,H|0,((H|0)<0)<<31>>31|0)|0,H=C8(G|0,q|0,H|0,R()|0)|0,P=R()|0,N=K,N=C8(H|0,P|0,V[N>>2]|0,V[N+4>>2]|0)|0,P=R()|0,H=K,V[H>>2]=N,V[H+4>>2]=P}if((L|0)<=(W|0)){B=37;break}}if((B|0)==19)I8(27795,27122,1276,27158);else if((B|0)==37){F=K,Z=V[F+4>>2]|0,F=V[F>>2]|0;break}else if((B|0)==42)return A=_,Z|0}else Z=0,F=0}else B=33;while(0);Y:do if((B|0)==33)if(j=K,V[j>>2]=0,V[j+4>>2]=0,(h|0)>(W|0)){G=h;while(!0){if(Z=s(Y|0,X|0,(15-G|0)*3|0)|0,R()|0,Z=Z&7,(Z|0)==7){Z=5;break}if(F=h-G|0,F=qY(7,0,F,((F|0)<0)<<31>>31)|0,Z=j6(F|0,R()|0,Z|0,0)|0,F=R()|0,j=K,F=C8(V[j>>2]|0,V[j+4>>2]|0,Z|0,F|0)|0,Z=R()|0,j=K,V[j>>2]=F,V[j+4>>2]=Z,G=G+-1|0,(G|0)<=(W|0))break Y}return A=_,Z|0}else Z=0,F=0;while(0);if(u7(x,z,h,y)|0)I8(27795,27122,1236,27173);if(h=y,y=V[h+4>>2]|0,((Z|0)>-1|(Z|0)==-1&F>>>0>4294967295)&((y|0)>(Z|0)|((y|0)==(Z|0)?(V[h>>2]|0)>>>0>F>>>0:0)))return h=0,A=_,h|0;else I8(27795,27122,1316,27158);return 0}function Q3(Y,X,W,K,Z,G){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0,G=G|0;var F=0,z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0,x=0;if(P=A,A=A+16|0,F=P,Z>>>0>15)return G=4,A=P,G|0;if(z=s(W|0,K|0,52)|0,R()|0,z=z&15,(z|0)>(Z|0))return G=12,A=P,G|0;if(u7(W,K,Z,F)|0)I8(27795,27122,1236,27173);if(N=F,B=V[N+4>>2]|0,!(((X|0)>-1|(X|0)==-1&Y>>>0>4294967295)&((B|0)>(X|0)|((B|0)==(X|0)?(V[N>>2]|0)>>>0>Y>>>0:0))))return G=2,A=P,G|0;N=Z-z|0,Z=a(Z|0,0,52)|0,q=R()|0|K&-15728641,B=G,V[B>>2]=Z|W,V[B+4>>2]=q,B=s(W|0,K|0,45)|0,R()|0;Y:do if(Q6(B&127)|0){if(z|0){F=1;while(!0){if(B=a(7,0,(15-F|0)*3|0)|0,!((B&W|0)==0&((R()|0)&K|0)==0))break Y;if(F>>>0<z>>>0)F=F+1|0;else break}}if((N|0)<1)return G=0,A=P,G|0;B=z^15,K=-1,q=1,F=1;while(!0){z=N-q|0,z=qY(7,0,z,((z|0)<0)<<31>>31)|0,W=R()|0;do if(F)if(F=j6(z|0,W|0,5,0)|0,F=C8(F|0,R()|0,-5,-1)|0,F=DY(F|0,R()|0,6,0)|0,Z=R()|0,(X|0)>(Z|0)|(X|0)==(Z|0)&Y>>>0>F>>>0){X=C8(Y|0,X|0,-1,-1)|0,X=k6(X|0,R()|0,F|0,Z|0)|0,F=R()|0,H=G,j=V[H>>2]|0,H=V[H+4>>2]|0,x=(B+K|0)*3|0,L=a(7,0,x|0)|0,H=H&~(R()|0),K=DY(X|0,F|0,z|0,W|0)|0,Y=R()|0,Z=C8(K|0,Y|0,2,0)|0,x=a(Z|0,R()|0,x|0)|0,H=R()|0|H,Z=G,V[Z>>2]=x|j&~L,V[Z+4>>2]=H,Y=j6(K|0,Y|0,z|0,W|0)|0,Y=k6(X|0,F|0,Y|0,R()|0)|0,F=0,X=R()|0;break}else{x=G,L=V[x>>2]|0,x=V[x+4>>2]|0,j=a(7,0,(B+K|0)*3|0)|0,x=x&~(R()|0),F=G,V[F>>2]=L&~j,V[F+4>>2]=x,F=1;break}else L=G,Z=V[L>>2]|0,L=V[L+4>>2]|0,K=(B+K|0)*3|0,H=a(7,0,K|0)|0,L=L&~(R()|0),x=DY(Y|0,X|0,z|0,W|0)|0,F=R()|0,K=a(x|0,F|0,K|0)|0,L=R()|0|L,j=G,V[j>>2]=K|Z&~H,V[j+4>>2]=L,F=j6(x|0,F|0,z|0,W|0)|0,Y=k6(Y|0,X|0,F|0,R()|0)|0,F=0,X=R()|0;while(0);if((N|0)>(q|0))K=~q,q=q+1|0;else{X=0;break}}return A=P,X|0}while(0);if((N|0)<1)return x=0,A=P,x|0;Z=z^15,F=1;while(!0)if(j=N-F|0,j=qY(7,0,j,((j|0)<0)<<31>>31)|0,x=R()|0,q=G,W=V[q>>2]|0,q=V[q+4>>2]|0,z=(Z-F|0)*3|0,K=a(7,0,z|0)|0,q=q&~(R()|0),H=DY(Y|0,X|0,j|0,x|0)|0,L=R()|0,z=a(H|0,L|0,z|0)|0,q=R()|0|q,B=G,V[B>>2]=z|W&~K,V[B+4>>2]=q,x=j6(H|0,L|0,j|0,x|0)|0,Y=k6(Y|0,X|0,x|0,R()|0)|0,X=R()|0,(N|0)<=(F|0)){X=0;break}else F=F+1|0;return A=P,X|0}function QX(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0;if(Z=s(X|0,W|0,52)|0,R()|0,Z=Z&15,(X|0)==0&(W|0)==0|((K|0)>15|(Z|0)>(K|0)))G=-1,X=-1,W=0,Z=0;else X=hK(X,W,Z+1|0,K)|0,F=(R()|0)&-15728641,W=a(K|0,0,52)|0,W=X|W,F=F|(R()|0),X=(J6(W,F)|0)==0,G=Z,X=X?-1:K,Z=F;F=Y,V[F>>2]=W,V[F+4>>2]=Z,V[Y+8>>2]=G,V[Y+12>>2]=X;return}function mK(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0;if(Z=s(Y|0,X|0,52)|0,R()|0,Z=Z&15,G=K+8|0,V[G>>2]=Z,(Y|0)==0&(X|0)==0|((W|0)>15|(Z|0)>(W|0))){W=K,V[W>>2]=0,V[W+4>>2]=0,V[G>>2]=-1,V[K+12>>2]=-1;return}if(Y=hK(Y,X,Z+1|0,W)|0,G=(R()|0)&-15728641,Z=a(W|0,0,52)|0,Z=Y|Z,G=G|(R()|0),Y=K,V[Y>>2]=Z,V[Y+4>>2]=G,Y=K+12|0,!(J6(Z,G)|0)){V[Y>>2]=-1;return}else{V[Y>>2]=W;return}}function GX(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0,q=0,B=0;if(W=Y,X=V[W>>2]|0,W=V[W+4>>2]|0,(X|0)==0&(W|0)==0)return;if(K=s(X|0,W|0,52)|0,R()|0,K=K&15,z=a(1,0,(K^15)*3|0)|0,X=C8(z|0,R()|0,X|0,W|0)|0,W=R()|0,z=Y,V[z>>2]=X,V[z+4>>2]=W,z=Y+8|0,F=V[z>>2]|0,(K|0)<(F|0))return;q=Y+12|0,G=K;while(!0){if((G|0)==(F|0)){K=5;break}if(B=(G|0)==(V[q>>2]|0),Z=(15-G|0)*3|0,K=s(X|0,W|0,Z|0)|0,R()|0,K=K&7,B&((K|0)==1&!0)){K=7;break}if(!((K|0)==7&!0)){K=10;break}if(B=a(1,0,Z|0)|0,X=C8(X|0,W|0,B|0,R()|0)|0,W=R()|0,B=Y,V[B>>2]=X,V[B+4>>2]=W,(G|0)>(F|0))G=G+-1|0;else{K=10;break}}if((K|0)==5){B=Y,V[B>>2]=0,V[B+4>>2]=0,V[z>>2]=-1,V[q>>2]=-1;return}else if((K|0)==7){F=a(1,0,Z|0)|0,F=C8(X|0,W|0,F|0,R()|0)|0,z=R()|0,B=Y,V[B>>2]=F,V[B+4>>2]=z,V[q>>2]=G+-1;return}else if((K|0)==10)return}function p7(Y){Y=+Y;var X=0;return X=Y<0?Y+6.283185307179586:Y,+(!(Y>=6.283185307179586)?X:X+-6.283185307179586)}function Q7(Y,X){if(Y=Y|0,X=X|0,!(+p8(+(+O[Y>>3]-+O[X>>3]))<0.000000000017453292519943298))return X=0,X|0;return X=+p8(+(+O[Y+8>>3]-+O[X+8>>3]))<0.000000000017453292519943298,X|0}function K0(Y,X){switch(Y=+Y,X=X|0,X|0){case 1:{Y=Y<0?Y+6.283185307179586:Y;break}case 2:{Y=Y>0?Y+-6.283185307179586:Y;break}default:}return+Y}function G3(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0;return Z=+O[X>>3],K=+O[Y>>3],G=+c8(+((Z-K)*0.5)),W=+c8(+((+O[X+8>>3]-+O[Y+8>>3])*0.5)),W=G*G+W*(+m8(+Z)*+m8(+K)*W),+(+z0(+ +F6(+W),+ +F6(+(1-W)))*2)}function c7(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0;return Z=+O[X>>3],K=+O[Y>>3],G=+c8(+((Z-K)*0.5)),W=+c8(+((+O[X+8>>3]-+O[Y+8>>3])*0.5)),W=G*G+W*(+m8(+Z)*+m8(+K)*W),+(+z0(+ +F6(+W),+ +F6(+(1-W)))*2*6371.007180918475)}function F3(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0;return Z=+O[X>>3],K=+O[Y>>3],G=+c8(+((Z-K)*0.5)),W=+c8(+((+O[X+8>>3]-+O[Y+8>>3])*0.5)),W=G*G+W*(+m8(+Z)*+m8(+K)*W),+(+z0(+ +F6(+W),+ +F6(+(1-W)))*2*6371.007180918475*1000)}function z3(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0;return G=+O[X>>3],K=+m8(+G),Z=+O[X+8>>3]-+O[Y+8>>3],F=K*+c8(+Z),W=+O[Y>>3],+ +z0(+F,+(+c8(+G)*+m8(+W)-+m8(+Z)*(K*+c8(+W))))}function U3(Y,X,W,K){Y=Y|0,X=+X,W=+W,K=K|0;var Z=0,G=0,F=0,z=0;if(W<0.0000000000000001){V[K>>2]=V[Y>>2],V[K+4>>2]=V[Y+4>>2],V[K+8>>2]=V[Y+8>>2],V[K+12>>2]=V[Y+12>>2];return}G=X<0?X+6.283185307179586:X,G=!(X>=6.283185307179586)?G:G+-6.283185307179586;do if(G<0.0000000000000001)X=+O[Y>>3]+W,O[K>>3]=X,Z=K;else{if(Z=+p8(+(G+-3.141592653589793))<0.0000000000000001,X=+O[Y>>3],Z){X=X-W,O[K>>3]=X,Z=K;break}if(F=+m8(+W),W=+c8(+W),X=F*+c8(+X)+ +m8(+G)*(W*+m8(+X)),X=X>1?1:X,X=+X1(+(X<-1?-1:X)),O[K>>3]=X,+p8(+(X+-1.5707963267948966))<0.0000000000000001){O[K>>3]=1.5707963267948966,O[K+8>>3]=0;return}if(+p8(+(X+1.5707963267948966))<0.0000000000000001){O[K>>3]=-1.5707963267948966,O[K+8>>3]=0;return}if(z=1/+m8(+X),G=W*+c8(+G)*z,W=+O[Y>>3],X=z*((F-+c8(+X)*+c8(+W))/+m8(+W)),F=G>1?1:G,X=X>1?1:X,X=+O[Y+8>>3]+ +z0(+(F<-1?-1:F),+(X<-1?-1:X)),X>3.141592653589793)do X=X+-6.283185307179586;while(X>3.141592653589793);if(X<-3.141592653589793)do X=X+6.283185307179586;while(X<-3.141592653589793);O[K+8>>3]=X;return}while(0);if(+p8(+(X+-1.5707963267948966))<0.0000000000000001){O[Z>>3]=1.5707963267948966,O[K+8>>3]=0;return}if(+p8(+(X+1.5707963267948966))<0.0000000000000001){O[Z>>3]=-1.5707963267948966,O[K+8>>3]=0;return}if(X=+O[Y+8>>3],X>3.141592653589793)do X=X+-6.283185307179586;while(X>3.141592653589793);if(X<-3.141592653589793)do X=X+6.283185307179586;while(X<-3.141592653589793);O[K+8>>3]=X;return}function bK(Y,X){if(Y=Y|0,X=X|0,Y>>>0>15)return X=4,X|0;return O[X>>3]=+O[20656+(Y<<3)>>3],X=0,X|0}function M3(Y,X){if(Y=Y|0,X=X|0,Y>>>0>15)return X=4,X|0;return O[X>>3]=+O[20784+(Y<<3)>>3],X=0,X|0}function q3(Y,X){if(Y=Y|0,X=X|0,Y>>>0>15)return X=4,X|0;return O[X>>3]=+O[20912+(Y<<3)>>3],X=0,X|0}function B3(Y,X){if(Y=Y|0,X=X|0,Y>>>0>15)return X=4,X|0;return O[X>>3]=+O[21040+(Y<<3)>>3],X=0,X|0}function _9(Y,X){Y=Y|0,X=X|0;var W=0;if(Y>>>0>15)return X=4,X|0;return W=qY(7,0,Y,((Y|0)<0)<<31>>31)|0,W=j6(W|0,R()|0,120,0)|0,Y=R()|0,V[X>>2]=W|2,V[X+4>>2]=Y,X=0,X|0}function uK(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0;return H=+O[X>>3],N=+O[Y>>3],q=+c8(+((H-N)*0.5)),G=+O[X+8>>3],B=+O[Y+8>>3],F=+c8(+((G-B)*0.5)),z=+m8(+N),P=+m8(+H),F=q*q+F*(P*z*F),F=+z0(+ +F6(+F),+ +F6(+(1-F)))*2,q=+O[W>>3],H=+c8(+((q-H)*0.5)),K=+O[W+8>>3],G=+c8(+((K-G)*0.5)),Z=+m8(+q),G=H*H+G*(P*Z*G),G=+z0(+ +F6(+G),+ +F6(+(1-G)))*2,q=+c8(+((N-q)*0.5)),K=+c8(+((B-K)*0.5)),K=q*q+K*(z*Z*K),K=+z0(+ +F6(+K),+ +F6(+(1-K)))*2,Z=(F+G+K)*0.5,+(+uV(+ +F6(+(+m7(+(Z*0.5))*+m7(+((Z-F)*0.5))*+m7(+((Z-G)*0.5))*+m7(+((Z-K)*0.5)))))*4)}function FX(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0;if(z=A,A=A+192|0,G=z+168|0,F=z,Z=gY(Y,X,G)|0,Z|0)return W=Z,A=z,W|0;if(Z7(Y,X,F)|0)I8(27795,27190,415,27199);if(X=V[F>>2]|0,(X|0)>0){if(K=+uK(F+8|0,F+8+(((X|0)!=1&1)<<4)|0,G)+0,(X|0)!=1){Y=1;do Z=Y,Y=Y+1|0,K=K+ +uK(F+8+(Z<<4)|0,F+8+(((Y|0)%(X|0)|0)<<4)|0,G);while((Y|0)<(X|0))}}else K=0;return O[W>>3]=K,W=0,A=z,W|0}function D3(Y,X,W){if(Y=Y|0,X=X|0,W=W|0,Y=FX(Y,X,W)|0,Y|0)return Y|0;return O[W>>3]=+O[W>>3]*6371.007180918475*6371.007180918475,Y|0}function N3(Y,X,W){if(Y=Y|0,X=X|0,W=W|0,Y=FX(Y,X,W)|0,Y|0)return Y|0;return O[W>>3]=+O[W>>3]*6371.007180918475*6371.007180918475*1000*1000,Y|0}function C3(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,q=0,B=0,N=0;if(z=A,A=A+176|0,F=z,Y=v9(Y,X,F)|0,Y|0)return F=Y,A=z,F|0;if(O[W>>3]=0,Y=V[F>>2]|0,(Y|0)<=1)return F=0,A=z,F|0;X=Y+-1|0,Y=0,K=+O[F+8>>3],Z=+O[F+16>>3],G=0;do Y=Y+1|0,B=K,K=+O[F+8+(Y<<4)>>3],N=+c8(+((K-B)*0.5)),q=Z,Z=+O[F+8+(Y<<4)+8>>3],q=+c8(+((Z-q)*0.5)),q=N*N+q*(+m8(+K)*+m8(+B)*q),G=G+ +z0(+ +F6(+q),+ +F6(+(1-q)))*2;while((Y|0)<(X|0));return O[W>>3]=G,F=0,A=z,F|0}function O3(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,q=0,B=0,N=0;if(z=A,A=A+176|0,F=z,Y=v9(Y,X,F)|0,Y|0)return F=Y,G=+O[W>>3],G=G*6371.007180918475,O[W>>3]=G,A=z,F|0;if(O[W>>3]=0,Y=V[F>>2]|0,(Y|0)<=1)return F=0,G=0,G=G*6371.007180918475,O[W>>3]=G,A=z,F|0;X=Y+-1|0,Y=0,K=+O[F+8>>3],Z=+O[F+16>>3],G=0;do Y=Y+1|0,B=K,K=+O[F+8+(Y<<4)>>3],N=+c8(+((K-B)*0.5)),q=Z,Z=+O[F+8+(Y<<4)+8>>3],q=+c8(+((Z-q)*0.5)),q=N*N+q*(+m8(+B)*+m8(+K)*q),G=G+ +z0(+ +F6(+q),+ +F6(+(1-q)))*2;while((Y|0)!=(X|0));return O[W>>3]=G,F=0,N=G,N=N*6371.007180918475,O[W>>3]=N,A=z,F|0}function A3(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,q=0,B=0,N=0;if(z=A,A=A+176|0,F=z,Y=v9(Y,X,F)|0,Y|0)return F=Y,G=+O[W>>3],G=G*6371.007180918475,G=G*1000,O[W>>3]=G,A=z,F|0;if(O[W>>3]=0,Y=V[F>>2]|0,(Y|0)<=1)return F=0,G=0,G=G*6371.007180918475,G=G*1000,O[W>>3]=G,A=z,F|0;X=Y+-1|0,Y=0,K=+O[F+8>>3],Z=+O[F+16>>3],G=0;do Y=Y+1|0,B=K,K=+O[F+8+(Y<<4)>>3],N=+c8(+((K-B)*0.5)),q=Z,Z=+O[F+8+(Y<<4)+8>>3],q=+c8(+((Z-q)*0.5)),q=N*N+q*(+m8(+B)*+m8(+K)*q),G=G+ +z0(+ +F6(+q),+ +F6(+(1-q)))*2;while((Y|0)!=(X|0));return O[W>>3]=G,F=0,N=G,N=N*6371.007180918475,N=N*1000,O[W>>3]=N,A=z,F|0}function S3(Y){Y=Y|0;var X=0,W=0,K=0;if(X=e6(1,12)|0,!X)I8(27280,27235,49,27293);if(W=Y+4|0,K=V[W>>2]|0,K|0)return K=K+8|0,V[K>>2]=X,V[W>>2]=X,X|0;if(V[Y>>2]|0)I8(27310,27235,61,27333);return K=Y,V[K>>2]=X,V[W>>2]=X,X|0}function P3(Y,X){Y=Y|0,X=X|0;var W=0,K=0;if(K=y0(24)|0,!K)I8(27347,27235,78,27361);if(V[K>>2]=V[X>>2],V[K+4>>2]=V[X+4>>2],V[K+8>>2]=V[X+8>>2],V[K+12>>2]=V[X+12>>2],V[K+16>>2]=0,X=Y+4|0,W=V[X>>2]|0,W|0)return V[W+16>>2]=K,V[X>>2]=K,K|0;if(V[Y>>2]|0)I8(27376,27235,82,27361);return V[Y>>2]=K,V[X>>2]=K,K|0}function pK(Y){Y=Y|0;var X=0,W=0,K=0,Z=0;if(!Y)return;K=1;while(!0){if(X=V[Y>>2]|0,X|0)do{if(W=V[X>>2]|0,W|0)do Z=W,W=V[W+16>>2]|0,O8(Z);while((W|0)!=0);Z=X,X=V[X+8>>2]|0,O8(Z)}while((X|0)!=0);if(X=Y,Y=V[Y+8>>2]|0,!K)O8(X);if(!Y)break;else K=0}return}function R3(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0,x=0,y=0,h=0,_=0,k=0,E=0,t=0,z8=0,Z8=0,x8=0,y8=0,g8=0,R8=0,U8=0,l=0,_8=0,t8=0,k8=0;if(Z=Y+8|0,V[Z>>2]|0)return k8=1,k8|0;if(K=V[Y>>2]|0,!K)return k8=0,k8|0;X=K,W=0;do W=W+1|0,X=V[X+8>>2]|0;while((X|0)!=0);if(W>>>0<2)return k8=0,k8|0;if(_8=y0(W<<2)|0,!_8)I8(27396,27235,317,27415);if(l=y0(W<<5)|0,!l)I8(27437,27235,321,27415);V[Y>>2]=0,z8=Y+4|0,V[z8>>2]=0,V[Z>>2]=0,W=0,U8=0,t=0,P=0;Y:while(!0){if(N=V[K>>2]|0,N){G=0,F=N;do{if(q=+O[F+8>>3],X=F,F=V[F+16>>2]|0,B=(F|0)==0,Z=B?N:F,z=+O[Z+8>>3],+p8(+(q-z))>3.141592653589793){k8=14;break}G=G+(z-q)*(+O[X>>3]+ +O[Z>>3])}while(!B);if((k8|0)==14){k8=0,G=0,X=N;do E=+O[X+8>>3],R8=X+16|0,g8=V[R8>>2]|0,g8=(g8|0)==0?N:g8,k=+O[g8+8>>3],G=G+(+O[X>>3]+ +O[g8>>3])*((k<0?k+6.283185307179586:k)-(E<0?E+6.283185307179586:E)),X=V[((X|0)==0?K:R8)>>2]|0;while((X|0)!=0)}if(G>0)V[_8+(U8<<2)>>2]=K,U8=U8+1|0,Z=t,X=P;else k8=19}else k8=19;if((k8|0)==19){k8=0;do if(!W)if(!P)if(!(V[Y>>2]|0)){Z=z8,F=Y,X=K,W=Y;break}else{k8=27;break Y}else{Z=z8,F=P+8|0,X=K,W=Y;break}else{if(X=W+8|0,V[X>>2]|0){k8=21;break Y}if(W=e6(1,12)|0,!W){k8=23;break Y}V[X>>2]=W,Z=W+4|0,F=W,X=P}while(0);if(V[F>>2]=K,V[Z>>2]=K,F=l+(t<<5)|0,B=V[K>>2]|0,B){N=l+(t<<5)+8|0,O[N>>3]=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,P=l+(t<<5)+24|0,O[P>>3]=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,O[F>>3]=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,H=l+(t<<5)+16|0,O[H>>3]=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,h=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,_=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,Z=0,L=B,q=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,x=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,y=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,z=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000;while(!0){if(G=+O[L>>3],E=+O[L+8>>3],L=V[L+16>>2]|0,j=(L|0)==0,k=+O[(j?B:L)+8>>3],G<q)O[N>>3]=G,q=G;if(E<x)O[P>>3]=E,x=E;if(G>y)O[F>>3]=G;else G=y;if(E>z)O[H>>3]=E,z=E;if(h=E>0&E<h?E:h,_=E<0&E>_?E:_,Z=Z|+p8(+(E-k))>3.141592653589793,j)break;else y=G}if(Z)O[H>>3]=_,O[P>>3]=h}else V[F>>2]=0,V[F+4>>2]=0,V[F+8>>2]=0,V[F+12>>2]=0,V[F+16>>2]=0,V[F+20>>2]=0,V[F+24>>2]=0,V[F+28>>2]=0;Z=t+1|0}if(R8=K+8|0,K=V[R8>>2]|0,V[R8>>2]=0,!K){k8=45;break}else t=Z,P=X}if((k8|0)==21)I8(27213,27235,35,27247);else if((k8|0)==23)I8(27267,27235,37,27247);else if((k8|0)==27)I8(27310,27235,61,27333);else if((k8|0)==45){Y:do if((U8|0)>0){R8=(Z|0)==0,y8=Z<<2,g8=(Y|0)==0,x8=0,X=0;while(!0){if(Z8=V[_8+(x8<<2)>>2]|0,!R8){if(t=y0(y8)|0,!t){k8=50;break}if(z8=y0(y8)|0,!z8){k8=52;break}V:do if(!g8){Z=0,W=0,F=Y;while(!0){if(K=l+(Z<<5)|0,cK(V[F>>2]|0,K,V[Z8>>2]|0)|0)V[t+(W<<2)>>2]=F,V[z8+(W<<2)>>2]=K,j=W+1|0;else j=W;if(F=V[F+8>>2]|0,!F)break;else Z=Z+1|0,W=j}if((j|0)>0)if(K=V[t>>2]|0,(j|0)==1)W=K;else{H=0,L=-1,W=K,P=K;while(!0){B=V[P>>2]|0,K=0,F=0;while(!0){if(Z=V[V[t+(F<<2)>>2]>>2]|0,(Z|0)==(B|0))N=K;else N=K+((cK(Z,V[z8+(F<<2)>>2]|0,V[B>>2]|0)|0)&1)|0;if(F=F+1|0,(F|0)==(j|0))break;else K=N}if(Z=(N|0)>(L|0),W=Z?P:W,K=H+1|0,(K|0)==(j|0))break V;H=K,L=Z?N:L,P=V[t+(K<<2)>>2]|0}}else W=0}else W=0;while(0);if(O8(t),O8(z8),W){if(Z=W+4|0,K=V[Z>>2]|0,!K){if(V[W>>2]|0){k8=70;break}}else W=K+8|0;V[W>>2]=Z8,V[Z>>2]=Z8}else k8=73}else k8=73;if((k8|0)==73){if(k8=0,X=V[Z8>>2]|0,X|0)do z8=X,X=V[X+16>>2]|0,O8(z8);while((X|0)!=0);O8(Z8),X=1}if(x8=x8+1|0,(x8|0)>=(U8|0)){t8=X;break Y}}if((k8|0)==50)I8(27452,27235,249,27471);else if((k8|0)==52)I8(27490,27235,252,27471);else if((k8|0)==70)I8(27310,27235,61,27333)}else t8=0;while(0);return O8(_8),O8(l),k8=t8,k8|0}return 0}function cK(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,q=0,B=0,N=0;if(!(dV(X,W)|0))return Y=0,Y|0;if(X=RK(X)|0,K=+O[W>>3],Z=+O[W+8>>3],Z=X&Z<0?Z+6.283185307179586:Z,Y=V[Y>>2]|0,!Y)return Y=0,Y|0;if(X){X=0,B=Z,W=Y;Y:while(!0){while(!0){if(F=+O[W>>3],Z=+O[W+8>>3],W=W+16|0,N=V[W>>2]|0,N=(N|0)==0?Y:N,G=+O[N>>3],z=+O[N+8>>3],F>G)q=F,F=z;else q=G,G=F,F=Z,Z=z;if(K=K==G|K==q?K+0.0000000000000002220446049250313:K,!(K<G|K>q))break;if(W=V[W>>2]|0,!W){W=22;break Y}}if(z=F<0?F+6.283185307179586:F,F=Z<0?Z+6.283185307179586:Z,B=z==B|F==B?B+-0.0000000000000002220446049250313:B,q=z+(F-z)*((K-G)/(q-G)),(q<0?q+6.283185307179586:q)>B)X=X^1;if(W=V[W>>2]|0,!W){W=22;break}}if((W|0)==22)return X|0}else{X=0,B=Z,W=Y;Y:while(!0){while(!0){if(F=+O[W>>3],Z=+O[W+8>>3],W=W+16|0,N=V[W>>2]|0,N=(N|0)==0?Y:N,G=+O[N>>3],z=+O[N+8>>3],F>G)q=F,F=z;else q=G,G=F,F=Z,Z=z;if(K=K==G|K==q?K+0.0000000000000002220446049250313:K,!(K<G|K>q))break;if(W=V[W>>2]|0,!W){W=22;break Y}}if(B=F==B|Z==B?B+-0.0000000000000002220446049250313:B,F+(Z-F)*((K-G)/(q-G))>B)X=X^1;if(W=V[W>>2]|0,!W){W=22;break}}if((W|0)==22)return X|0}return 0}function n0(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0,x=0,y=0,h=0,_=0;if(_=A,A=A+32|0,h=_+16|0,y=_,G=s(Y|0,X|0,52)|0,R()|0,G=G&15,L=s(W|0,K|0,52)|0,R()|0,(G|0)!=(L&15|0))return h=12,A=_,h|0;if(B=s(Y|0,X|0,45)|0,R()|0,B=B&127,N=s(W|0,K|0,45)|0,R()|0,N=N&127,B>>>0>121|N>>>0>121)return h=5,A=_,h|0;if(L=(B|0)!=(N|0),L){if(z=rV(B,N)|0,(z|0)==7)return h=1,A=_,h|0;if(q=rV(N,B)|0,(q|0)==7)I8(27514,27538,161,27548);else j=z,F=q}else j=0,F=0;P=Q6(B)|0,H=Q6(N)|0,V[h>>2]=0,V[h+4>>2]=0,V[h+8>>2]=0,V[h+12>>2]=0;do if(!j)if(JX(W,K,h)|0,(P|0)!=0&(H|0)!=0){if((N|0)!=(B|0))I8(27621,27538,261,27548);if(F=a6(Y,X)|0,G=a6(W,K)|0,!((F|0)==7|(G|0)==7))if(!(c[22000+(F*7|0)+G>>0]|0))if(F=V[21168+(F*28|0)+(G<<2)>>2]|0,(F|0)>0){z=h+4|0,G=0;do k9(z),G=G+1|0;while((G|0)!=(F|0));x=51}else x=51;else G=1;else G=5}else x=51;else{if(N=V[4272+(B*28|0)+(j<<2)>>2]|0,z=(N|0)>0,!H)if(z){B=0,q=W,z=K;do q=WX(q,z)|0,z=R()|0,F=MY(F)|0,B=B+1|0;while((B|0)!=(N|0));N=F,B=q,q=z}else N=F,B=W,q=K;else if(z){B=0,q=W,z=K;do{if(q=X3(q,z)|0,z=R()|0,F=MY(F)|0,(F|0)==1)F=MY(1)|0;B=B+1|0}while((B|0)!=(N|0));N=F,B=q,q=z}else N=F,B=W,q=K;if(JX(B,q,h)|0,!L)I8(27563,27538,191,27548);if(z=(P|0)!=0,F=(H|0)!=0,z&F)I8(27590,27538,192,27548);if(!z)if(F){if(F=a6(B,q)|0,(F|0)==7){G=5;break}if(c[22000+(F*7|0)+N>>0]|0){G=1;break}B=0,q=V[21168+(N*28|0)+(F<<2)>>2]|0}else B=0,q=0;else{if(F=a6(Y,X)|0,(F|0)==7){G=5;break}if(c[22000+(F*7|0)+j>>0]|0){G=1;break}q=V[21168+(F*28|0)+(j<<2)>>2]|0,B=q}if((B|q|0)<0)G=5;else{if((q|0)>0){z=h+4|0,F=0;do k9(z),F=F+1|0;while((F|0)!=(q|0))}if(V[y>>2]=0,V[y+4>>2]=0,V[y+8>>2]=0,TK(y,j),G|0)while(!0){if(!(U0(G)|0))_Y(y);else y9(y);if((G|0)>1)G=G+-1|0;else break}if((B|0)>0){G=0;do k9(y),G=G+1|0;while((G|0)!=(B|0))}x=h+4|0,p6(x,y,x),b6(x),x=51}}while(0);if((x|0)==51)G=h+4|0,V[Z>>2]=V[G>>2],V[Z+4>>2]=V[G+4>>2],V[Z+8>>2]=V[G+8>>2],G=0;return h=G,A=_,h|0}function sK(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0,x=0,y=0,h=0,_=0,k=0;if(x=A,A=A+48|0,B=x+36|0,F=x+24|0,z=x+12|0,q=x,Z=s(Y|0,X|0,52)|0,R()|0,Z=Z&15,H=s(Y|0,X|0,45)|0,R()|0,H=H&127,H>>>0>121)return K=5,A=x,K|0;if(N=Q6(H)|0,a(Z|0,0,52)|0,y=R()|0|134225919,G=K,V[G>>2]=-1,V[G+4>>2]=y,!Z){if(Z=E9(W)|0,(Z|0)==7)return y=1,A=x,y|0;if(Z=nV(H,Z)|0,(Z|0)==127)return y=1,A=x,y|0;return L=a(Z|0,0,45)|0,j=R()|0,H=K,j=V[H+4>>2]&-1040385|j,y=K,V[y>>2]=V[H>>2]|L,V[y+4>>2]=j,y=0,A=x,y|0}V[B>>2]=V[W>>2],V[B+4>>2]=V[W+4>>2],V[B+8>>2]=V[W+8>>2],W=Z;while(!0){if(G=W,W=W+-1|0,V[F>>2]=V[B>>2],V[F+4>>2]=V[B+4>>2],V[F+8>>2]=V[B+8>>2],!(U0(G)|0)){if(Z=v1(B)|0,Z|0){W=13;break}V[z>>2]=V[B>>2],V[z+4>>2]=V[B+4>>2],V[z+8>>2]=V[B+8>>2],_Y(z)}else{if(Z=k1(B)|0,Z|0){W=13;break}V[z>>2]=V[B>>2],V[z+4>>2]=V[B+4>>2],V[z+8>>2]=V[B+8>>2],y9(z)}if(iV(F,z,q),b6(q),Z=K,_=V[Z>>2]|0,Z=V[Z+4>>2]|0,k=(15-G|0)*3|0,h=a(7,0,k|0)|0,Z=Z&~(R()|0),k=a(E9(q)|0,0,k|0)|0,Z=R()|0|Z,y=K,V[y>>2]=k|_&~h,V[y+4>>2]=Z,(G|0)<=1){W=14;break}}Y:do if((W|0)!=13){if((W|0)==14)if(((V[B>>2]|0)<=1?(V[B+4>>2]|0)<=1:0)?(V[B+8>>2]|0)<=1:0){if(W=E9(B)|0,Z=nV(H,W)|0,(Z|0)==127)q=0;else q=Q6(Z)|0;V:do if(!W)if((N|0)!=0&(q|0)!=0){if(W=a6(Y,X)|0,G=K,G=a6(V[G>>2]|0,V[G+4>>2]|0)|0,(W|0)==7|(G|0)==7){Z=5;break Y}if(G=V[21376+(W*28|0)+(G<<2)>>2]|0,(G|0)<0){Z=5;break Y}if(!G)W=59;else{z=K,W=0,F=V[z>>2]|0,z=V[z+4>>2]|0;do F=hY(F,z)|0,z=R()|0,k=K,V[k>>2]=F,V[k+4>>2]=z,W=W+1|0;while((W|0)<(G|0));W=58}}else W=58;else{if(N){if(Z=a6(Y,X)|0,(Z|0)==7){Z=5;break Y}if(G=V[21376+(Z*28|0)+(W<<2)>>2]|0,(G|0)>0){Z=W,W=0;do Z=$Y(Z)|0,W=W+1|0;while((W|0)!=(G|0))}else Z=W;if((Z|0)==1){Z=9;break Y}if(W=nV(H,Z)|0,(W|0)==127)I8(27648,27538,411,27678);if(!(Q6(W)|0))j=W,L=G,P=Z;else I8(27693,27538,412,27678)}else j=Z,L=0,P=W;if(z=V[4272+(H*28|0)+(P<<2)>>2]|0,(z|0)<=-1)I8(27724,27538,419,27678);if(!q){if((L|0)<0){Z=5;break Y}if(L|0){G=K,Z=0,W=V[G>>2]|0,G=V[G+4>>2]|0;do W=hY(W,G)|0,G=R()|0,k=K,V[k>>2]=W,V[k+4>>2]=G,Z=Z+1|0;while((Z|0)<(L|0))}if((z|0)<=0){Z=j,W=58;break}G=K,Z=0,W=V[G>>2]|0,G=V[G+4>>2]|0;while(!0)if(W=hY(W,G)|0,G=R()|0,k=K,V[k>>2]=W,V[k+4>>2]=G,Z=Z+1|0,(Z|0)==(z|0)){Z=j,W=58;break V}}if(F=rV(j,H)|0,(F|0)==7)I8(27514,27538,428,27678);if(Z=K,W=V[Z>>2]|0,Z=V[Z+4>>2]|0,(z|0)>0){G=0;do W=hY(W,Z)|0,Z=R()|0,k=K,V[k>>2]=W,V[k+4>>2]=Z,G=G+1|0;while((G|0)!=(z|0))}if(Z=a6(W,Z)|0,(Z|0)==7)I8(27795,27538,440,27678);if(W=sV(j)|0,W=V[(W?21792:21584)+(F*28|0)+(Z<<2)>>2]|0,(W|0)<0)I8(27795,27538,454,27678);if(!W)Z=j,W=58;else{F=K,Z=0,G=V[F>>2]|0,F=V[F+4>>2]|0;do G=XX(G,F)|0,F=R()|0,k=K,V[k>>2]=G,V[k+4>>2]=F,Z=Z+1|0;while((Z|0)<(W|0));Z=j,W=58}}while(0);if((W|0)==58){if(q)W=59}if((W|0)==59){if(k=K,(a6(V[k>>2]|0,V[k+4>>2]|0)|0)==1){Z=9;break}}k=K,h=V[k>>2]|0,k=V[k+4>>2]&-1040385,_=a(Z|0,0,45)|0,k=k|(R()|0),Z=K,V[Z>>2]=h|_,V[Z+4>>2]=k,Z=0}else Z=1}while(0);return k=Z,A=x,k|0}function I3(Y,X,W,K,Z,G){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0,G=G|0;var F=0,z=0;if(z=A,A=A+16|0,F=z,!Z){if(Y=n0(Y,X,W,K,F)|0,!Y)$1(F,G),Y=0}else Y=15;return A=z,Y|0}function w3(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0;if(F=A,A=A+16|0,G=F,!K){if(W=h1(W,G)|0,!W)W=sK(Y,X,G,Z)|0}else W=15;return A=F,W|0}function H3(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,q=0;if(q=A,A=A+32|0,F=q+12|0,z=q,G=n0(Y,X,Y,X,F)|0,G|0)return z=G,A=q,z|0;if(Y=n0(Y,X,W,K,z)|0,Y|0)return z=Y,A=q,z|0;return F=oV(F,z)|0,z=Z,V[z>>2]=F,V[z+4>>2]=((F|0)<0)<<31>>31,z=0,A=q,z|0}function L3(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,q=0;if(q=A,A=A+32|0,F=q+12|0,z=q,G=n0(Y,X,Y,X,F)|0,!G){if(G=n0(Y,X,W,K,z)|0,!G)return K=oV(F,z)|0,K=C8(K|0,((K|0)<0)<<31>>31|0,1,0)|0,F=R()|0,z=Z,V[z>>2]=K,V[z+4>>2]=F,z=0,A=q,z|0}return z=G,A=q,z|0}function j3(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0,x=0,y=0,h=0,_=0,k=0,E=0,t=0,z8=0,Z8=0,x8=0;if(Z8=A,A=A+48|0,t=Z8+24|0,F=Z8+12|0,z8=Z8,G=n0(Y,X,Y,X,t)|0,!G){if(G=n0(Y,X,W,K,F)|0,!G){if(k=oV(t,F)|0,E=((k|0)<0)<<31>>31,V[t>>2]=0,V[t+4>>2]=0,V[t+8>>2]=0,V[F>>2]=0,V[F+4>>2]=0,V[F+8>>2]=0,n0(Y,X,Y,X,t)|0)I8(27795,27538,692,27747);if(n0(Y,X,W,K,F)|0)I8(27795,27538,697,27747);kK(t),kK(F),N=(k|0)==0?0:1/+(k|0),W=V[t>>2]|0,x=N*+((V[F>>2]|0)-W|0),y=t+4|0,K=V[y>>2]|0,h=N*+((V[F+4>>2]|0)-K|0),_=t+8|0,G=V[_>>2]|0,N=N*+((V[F+8>>2]|0)-G|0),V[z8>>2]=W,P=z8+4|0,V[P>>2]=K,H=z8+8|0,V[H>>2]=G;Y:do if((k|0)<0)G=0;else{L=0,j=0;while(!0){q=+(j>>>0)+4294967296*+(L|0),x8=x*q+ +(W|0),z=h*q+ +(K|0),q=N*q+ +(G|0),W=~~+f9(+x8),F=~~+f9(+z),G=~~+f9(+q),x8=+p8(+(+(W|0)-x8)),z=+p8(+(+(F|0)-z)),q=+p8(+(+(G|0)-q));do if(!(x8>z&x8>q))if(B=0-W|0,z>q){K=B-G|0;break}else{K=F,G=B-F|0;break}else W=0-(F+G)|0,K=F;while(0);if(V[z8>>2]=W,V[P>>2]=K,V[H>>2]=G,g1(z8),G=sK(Y,X,z8,Z+(j<<3)|0)|0,G|0)break Y;if(!((L|0)<(E|0)|(L|0)==(E|0)&j>>>0<k>>>0)){G=0;break Y}W=C8(j|0,L|0,1,0)|0,K=R()|0,L=K,j=W,W=V[t>>2]|0,K=V[y>>2]|0,G=V[_>>2]|0}}while(0);return z8=G,A=Z8,z8|0}}return z8=G,A=Z8,z8|0}function qY(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0;if((W|0)==0&(K|0)==0)return Z=0,G=1,E8(Z|0),G|0;G=Y,Z=X,Y=1,X=0;do F=(W&1|0)==0&!0,Y=j6((F?1:G)|0,(F?0:Z)|0,Y|0,X|0)|0,X=R()|0,W=X5(W|0,K|0,1)|0,K=R()|0,G=j6(G|0,Z|0,G|0,Z|0)|0,Z=R()|0;while(!((W|0)==0&(K|0)==0));return E8(X|0),Y|0}function zX(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,q=0,B=0,N=0;z=A,A=A+16|0,G=z,F=s(Y|0,X|0,52)|0,R()|0,F=F&15;do if(!F)if(Z=s(Y|0,X|0,45)|0,R()|0,Z=Z&127,Z>>>0>121)return F=5,A=z,F|0;else{G=22064+(Z<<5)|0,V[W>>2]=V[G>>2],V[W+4>>2]=V[G+4>>2],V[W+8>>2]=V[G+8>>2],V[W+12>>2]=V[G+12>>2],V[W+16>>2]=V[G+16>>2],V[W+20>>2]=V[G+20>>2],V[W+24>>2]=V[G+24>>2],V[W+28>>2]=V[G+28>>2];break}else{if(Z=gY(Y,X,G)|0,!Z){B=+O[G>>3],q=1/+m8(+B),N=+O[25968+(F<<3)>>3],O[W>>3]=B+N,O[W+8>>3]=B-N,B=+O[G+8>>3],q=N*q,O[W+16>>3]=q+B,O[W+24>>3]=B-q;break}return F=Z,A=z,F|0}while(0);if(x1(W,K?1.4:1.1),K=26096+(F<<3)|0,(V[K>>2]|0)==(Y|0)?(V[K+4>>2]|0)==(X|0):0)O[W>>3]=1.5707963267948966;if(F=26224+(F<<3)|0,(V[F>>2]|0)==(Y|0)?(V[F+4>>2]|0)==(X|0):0)O[W+8>>3]=-1.5707963267948966;if(+O[W>>3]!=1.5707963267948966?+O[W+8>>3]!=-1.5707963267948966:0)return F=0,A=z,F|0;return O[W+16>>3]=3.141592653589793,O[W+24>>3]=-3.141592653589793,F=0,A=z,F|0}function T3(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,q=0,B=0,N=0;B=A,A=A+48|0,F=B+32|0,G=B+40|0,z=B,YX(F,0,0,0),q=V[F>>2]|0,F=V[F+4>>2]|0;do if(W>>>0<=15){if(Z=n7(K)|0,Z|0){K=z,V[K>>2]=0,V[K+4>>2]=0,V[z+8>>2]=Z,V[z+12>>2]=-1,K=z+16|0,q=z+29|0,V[K>>2]=0,V[K+4>>2]=0,V[K+8>>2]=0,c[K+12>>0]=0,c[q>>0]=c[G>>0]|0,c[q+1>>0]=c[G+1>>0]|0,c[q+2>>0]=c[G+2>>0]|0;break}if(Z=e6((V[X+8>>2]|0)+1|0,32)|0,!Z){K=z,V[K>>2]=0,V[K+4>>2]=0,V[z+8>>2]=13,V[z+12>>2]=-1,K=z+16|0,q=z+29|0,V[K>>2]=0,V[K+4>>2]=0,V[K+8>>2]=0,c[K+12>>0]=0,c[q>>0]=c[G>>0]|0,c[q+1>>0]=c[G+1>>0]|0,c[q+2>>0]=c[G+2>>0]|0;break}else{UX(X,Z),N=z,V[N>>2]=q,V[N+4>>2]=F,V[z+8>>2]=0,V[z+12>>2]=W,V[z+16>>2]=K,V[z+20>>2]=X,V[z+24>>2]=Z,c[z+28>>0]=0,q=z+29|0,c[q>>0]=c[G>>0]|0,c[q+1>>0]=c[G+1>>0]|0,c[q+2>>0]=c[G+2>>0]|0;break}}else q=z,V[q>>2]=0,V[q+4>>2]=0,V[z+8>>2]=4,V[z+12>>2]=-1,q=z+16|0,N=z+29|0,V[q>>2]=0,V[q+4>>2]=0,V[q+8>>2]=0,c[q+12>>0]=0,c[N>>0]=c[G>>0]|0,c[N+1>>0]=c[G+1>>0]|0,c[N+2>>0]=c[G+2>>0]|0;while(0);$9(z),V[Y>>2]=V[z>>2],V[Y+4>>2]=V[z+4>>2],V[Y+8>>2]=V[z+8>>2],V[Y+12>>2]=V[z+12>>2],V[Y+16>>2]=V[z+16>>2],V[Y+20>>2]=V[z+20>>2],V[Y+24>>2]=V[z+24>>2],V[Y+28>>2]=V[z+28>>2],A=B;return}function $9(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0,x=0,y=0,h=0,_=0,k=0,E=0;if(E=A,A=A+336|0,L=E+168|0,j=E,K=Y,W=V[K>>2]|0,K=V[K+4>>2]|0,(W|0)==0&(K|0)==0){A=E;return}if(X=Y+28|0,!(c[X>>0]|0))c[X>>0]=1;else W=nK(W,K)|0,K=R()|0;if(k=Y+20|0,!(V[V[k>>2]>>2]|0)){if(X=Y+24|0,W=V[X>>2]|0,W|0)O8(W);_=Y,V[_>>2]=0,V[_+4>>2]=0,V[Y+8>>2]=0,V[k>>2]=0,V[Y+12>>2]=-1,V[Y+16>>2]=0,V[X>>2]=0,A=E;return}_=Y+16|0,X=V[_>>2]|0,Z=X&15;Y:do if(!((W|0)==0&(K|0)==0)){x=Y+12|0,P=(Z|0)==3,N=X&255,q=(Z|1|0)==3,H=Y+24|0,B=(Z+-1|0)>>>0<3,F=(Z|2|0)==3,z=j+8|0;V:while(!0){if(G=s(W|0,K|0,52)|0,R()|0,G=G&15,(G|0)==(V[x>>2]|0)){switch(N&15){case 0:case 2:case 3:{if(Z=gY(W,K,L)|0,Z|0){y=15;break V}if(MX(V[k>>2]|0,V[H>>2]|0,L)|0){y=19;break V}break}default:}if(q?(Z=V[(V[k>>2]|0)+4>>2]|0,V[L>>2]=V[Z>>2],V[L+4>>2]=V[Z+4>>2],V[L+8>>2]=V[Z+8>>2],V[L+12>>2]=V[Z+12>>2],dV(26832,L)|0):0){if(KX(V[(V[k>>2]|0)+4>>2]|0,G,j)|0){y=25;break}if(Z=j,(V[Z>>2]|0)==(W|0)?(V[Z+4>>2]|0)==(K|0):0){y=29;break}}if(B){if(Z=Z7(W,K,L)|0,Z|0){y=32;break}if(zX(W,K,j,0)|0){y=36;break}if(F?dK(V[k>>2]|0,V[H>>2]|0,L,j)|0:0){y=42;break}if(q?lK(V[k>>2]|0,V[H>>2]|0,L,j)|0:0){y=42;break}}if(P){if(X=zX(W,K,L,1)|0,Z=V[H>>2]|0,X|0){y=45;break}if(lV(Z,L)|0){if(wK(j,L),IK(L,V[H>>2]|0)|0){y=53;break}if(MX(V[k>>2]|0,V[H>>2]|0,z)|0){y=53;break}if(lK(V[k>>2]|0,V[H>>2]|0,j,L)|0){y=53;break}}}}do if((G|0)<(V[x>>2]|0)){if(X=zX(W,K,L,1)|0,Z=V[H>>2]|0,X|0){y=58;break V}if(!(lV(Z,L)|0)){y=73;break}if(IK(V[H>>2]|0,L)|0?(wK(j,L),dK(V[k>>2]|0,V[H>>2]|0,j,L)|0):0){y=65;break V}if(W=gK(W,K,G+1|0,j)|0,W|0){y=67;break V}K=j,W=V[K>>2]|0,K=V[K+4>>2]|0}else y=73;while(0);if((y|0)==73)y=0,W=nK(W,K)|0,K=R()|0;if((W|0)==0&(K|0)==0){h=H;break Y}}switch(y|0){case 15:{if(X=V[H>>2]|0,X|0)O8(X);y=Y,V[y>>2]=0,V[y+4>>2]=0,V[k>>2]=0,V[x>>2]=-1,V[_>>2]=0,V[H>>2]=0,V[Y+8>>2]=Z,y=20;break}case 19:{V[Y>>2]=W,V[Y+4>>2]=K,y=20;break}case 25:{I8(27795,27761,470,27772);break}case 29:{V[Y>>2]=W,V[Y+4>>2]=K,A=E;return}case 32:{if(X=V[H>>2]|0,X|0)O8(X);h=Y,V[h>>2]=0,V[h+4>>2]=0,V[k>>2]=0,V[x>>2]=-1,V[_>>2]=0,V[H>>2]=0,V[Y+8>>2]=Z,A=E;return}case 36:{I8(27795,27761,493,27772);break}case 42:{V[Y>>2]=W,V[Y+4>>2]=K,A=E;return}case 45:{if(Z|0)O8(Z);y=Y,V[y>>2]=0,V[y+4>>2]=0,V[k>>2]=0,V[x>>2]=-1,V[_>>2]=0,V[H>>2]=0,V[Y+8>>2]=X,y=55;break}case 53:{V[Y>>2]=W,V[Y+4>>2]=K,y=55;break}case 58:{if(Z|0)O8(Z);y=Y,V[y>>2]=0,V[y+4>>2]=0,V[k>>2]=0,V[x>>2]=-1,V[_>>2]=0,V[H>>2]=0,V[Y+8>>2]=X,y=71;break}case 65:{V[Y>>2]=W,V[Y+4>>2]=K,y=71;break}case 67:{if(X=V[H>>2]|0,X|0)O8(X);h=Y,V[h>>2]=0,V[h+4>>2]=0,V[k>>2]=0,V[x>>2]=-1,V[_>>2]=0,V[H>>2]=0,V[Y+8>>2]=W,A=E;return}}if((y|0)==20){A=E;return}else if((y|0)==55){A=E;return}else if((y|0)==71){A=E;return}}else h=Y+24|0;while(0);if(X=V[h>>2]|0,X|0)O8(X);y=Y,V[y>>2]=0,V[y+4>>2]=0,V[Y+8>>2]=0,V[k>>2]=0,V[Y+12>>2]=-1,V[_>>2]=0,V[h>>2]=0,A=E;return}function nK(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0,q=0,B=0,N=0,P=0;P=A,A=A+16|0,N=P,K=s(Y|0,X|0,52)|0,R()|0,K=K&15,W=s(Y|0,X|0,45)|0,R()|0;do if(K){while(!0){if(W=a(K+4095|0,0,52)|0,Z=R()|0|X&-15728641,G=(15-K|0)*3|0,F=a(7,0,G|0)|0,z=R()|0,W=W|Y|F,Z=Z|z,q=s(Y|0,X|0,G|0)|0,R()|0,q=q&7,K=K+-1|0,q>>>0<6)break;if(!K){B=4;break}else X=Z,Y=W}if((B|0)==4){W=s(W|0,Z|0,45)|0,R()|0;break}return N=(q|0)==0&(J6(W,Z)|0)!=0,N=a((N?2:1)+q|0,0,G|0)|0,B=R()|0|X&~z,N=N|Y&~F,E8(B|0),A=P,N|0}while(0);if(W=W&127,W>>>0>120)return B=0,N=0,E8(B|0),A=P,N|0;return YX(N,0,W+1|0,0),B=V[N+4>>2]|0,N=V[N>>2]|0,E8(B|0),A=P,N|0}function x3(Y,X,W,K,Z,G){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0,G=G|0;var F=0,z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0,x=0,y=0;y=A,A=A+160|0,P=y+80|0,z=y+64|0,H=y+112|0,x=y,T3(P,Y,X,W),B=P,QX(z,V[B>>2]|0,V[B+4>>2]|0,X),B=z,q=V[B>>2]|0,B=V[B+4>>2]|0,F=V[P+8>>2]|0,L=H+4|0,V[L>>2]=V[P>>2],V[L+4>>2]=V[P+4>>2],V[L+8>>2]=V[P+8>>2],V[L+12>>2]=V[P+12>>2],V[L+16>>2]=V[P+16>>2],V[L+20>>2]=V[P+20>>2],V[L+24>>2]=V[P+24>>2],V[L+28>>2]=V[P+28>>2],L=x,V[L>>2]=q,V[L+4>>2]=B,L=x+8|0,V[L>>2]=F,Y=x+12|0,X=H,W=Y+36|0;do V[Y>>2]=V[X>>2],Y=Y+4|0,X=X+4|0;while((Y|0)<(W|0));if(H=x+48|0,V[H>>2]=V[z>>2],V[H+4>>2]=V[z+4>>2],V[H+8>>2]=V[z+8>>2],V[H+12>>2]=V[z+12>>2],(q|0)==0&(B|0)==0)return x=F,A=y,x|0;W=x+16|0,N=x+24|0,P=x+28|0,F=0,z=0,X=q,Y=B;do{if(!((F|0)<(Z|0)|(F|0)==(Z|0)&z>>>0<K>>>0)){j=4;break}if(B=z,z=C8(z|0,F|0,1,0)|0,F=R()|0,B=G+(B<<3)|0,V[B>>2]=X,V[B+4>>2]=Y,GX(H),Y=H,X=V[Y>>2]|0,Y=V[Y+4>>2]|0,(X|0)==0&(Y|0)==0){if($9(W),X=W,Y=V[X>>2]|0,X=V[X+4>>2]|0,(Y|0)==0&(X|0)==0){j=10;break}mK(Y,X,V[P>>2]|0,H),Y=H,X=V[Y>>2]|0,Y=V[Y+4>>2]|0}B=x,V[B>>2]=X,V[B+4>>2]=Y}while(!((X|0)==0&(Y|0)==0));if((j|0)==4){if(Y=x+40|0,X=V[Y>>2]|0,X|0)O8(X);return j=x+16|0,V[j>>2]=0,V[j+4>>2]=0,V[N>>2]=0,V[x+36>>2]=0,V[P>>2]=-1,V[x+32>>2]=0,V[Y>>2]=0,mK(0,0,0,H),V[x>>2]=0,V[x+4>>2]=0,V[L>>2]=0,x=14,A=y,x|0}else if((j|0)==10)V[x>>2]=0,V[x+4>>2]=0,V[L>>2]=V[N>>2];return x=V[L>>2]|0,A=y,x|0}function E3(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0,L=0;if(P=A,A=A+48|0,q=P+32|0,z=P+40|0,B=P,!(V[Y>>2]|0))return N=K,V[N>>2]=0,V[N+4>>2]=0,N=0,A=P,N|0;YX(q,0,0,0),F=q,Z=V[F>>2]|0,F=V[F+4>>2]|0;do if(X>>>0>15)N=B,V[N>>2]=0,V[N+4>>2]=0,V[B+8>>2]=4,V[B+12>>2]=-1,N=B+16|0,W=B+29|0,V[N>>2]=0,V[N+4>>2]=0,V[N+8>>2]=0,c[N+12>>0]=0,c[W>>0]=c[z>>0]|0,c[W+1>>0]=c[z+1>>0]|0,c[W+2>>0]=c[z+2>>0]|0,W=4,N=9;else{if(W=n7(W)|0,W|0){q=B,V[q>>2]=0,V[q+4>>2]=0,V[B+8>>2]=W,V[B+12>>2]=-1,q=B+16|0,N=B+29|0,V[q>>2]=0,V[q+4>>2]=0,V[q+8>>2]=0,c[q+12>>0]=0,c[N>>0]=c[z>>0]|0,c[N+1>>0]=c[z+1>>0]|0,c[N+2>>0]=c[z+2>>0]|0,N=9;break}if(W=e6((V[Y+8>>2]|0)+1|0,32)|0,!W){N=B,V[N>>2]=0,V[N+4>>2]=0,V[B+8>>2]=13,V[B+12>>2]=-1,N=B+16|0,W=B+29|0,V[N>>2]=0,V[N+4>>2]=0,V[N+8>>2]=0,c[N+12>>0]=0,c[W>>0]=c[z>>0]|0,c[W+1>>0]=c[z+1>>0]|0,c[W+2>>0]=c[z+2>>0]|0,W=13,N=9;break}UX(Y,W),L=B,V[L>>2]=Z,V[L+4>>2]=F,F=B+8|0,V[F>>2]=0,V[B+12>>2]=X,V[B+20>>2]=Y,V[B+24>>2]=W,c[B+28>>0]=0,Z=B+29|0,c[Z>>0]=c[z>>0]|0,c[Z+1>>0]=c[z+1>>0]|0,c[Z+2>>0]=c[z+2>>0]|0,V[B+16>>2]=3,H=+L1(W),H=H*+H1(W),G=+p8(+ +O[W>>3]),G=H/+m8(+ +g9(+G,+ +p8(+ +O[W+8>>3])))*6371.007180918475*6371.007180918475,Z=B+12|0,W=V[Z>>2]|0;Y:do if((W|0)>0)do{if(bK(W+-1|0,q)|0,!(G/+O[q>>3]>10))break Y;L=V[Z>>2]|0,W=L+-1|0,V[Z>>2]=W}while((L|0)>1);while(0);if($9(B),Z=K,V[Z>>2]=0,V[Z+4>>2]=0,Z=B,W=V[Z>>2]|0,Z=V[Z+4>>2]|0,!((W|0)==0&(Z|0)==0))do u7(W,Z,X,q)|0,z=q,Y=K,z=C8(V[Y>>2]|0,V[Y+4>>2]|0,V[z>>2]|0,V[z+4>>2]|0)|0,Y=R()|0,L=K,V[L>>2]=z,V[L+4>>2]=Y,$9(B),L=B,W=V[L>>2]|0,Z=V[L+4>>2]|0;while(!((W|0)==0&(Z|0)==0));W=V[F>>2]|0}while(0);return L=W,A=P,L|0}function s7(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0;if(!(dV(X,W)|0))return H=0,H|0;if(X=RK(X)|0,K=+O[W>>3],Z=+O[W+8>>3],Z=X&Z<0?Z+6.283185307179586:Z,H=V[Y>>2]|0,(H|0)<=0)return H=0,H|0;if(P=V[Y+4>>2]|0,X){X=0,N=Z,W=-1,Y=0;Y:while(!0){B=Y;while(!0){if(F=+O[P+(B<<4)>>3],Z=+O[P+(B<<4)+8>>3],Y=(W+2|0)%(H|0)|0,G=+O[P+(Y<<4)>>3],z=+O[P+(Y<<4)+8>>3],F>G)q=F,F=z;else q=G,G=F,F=Z,Z=z;if(K=K==G|K==q?K+0.0000000000000002220446049250313:K,!(K<G|K>q))break;if(W=B+1|0,(W|0)>=(H|0)){W=22;break Y}else Y=B,B=W,W=Y}if(z=F<0?F+6.283185307179586:F,F=Z<0?Z+6.283185307179586:Z,N=z==N|F==N?N+-0.0000000000000002220446049250313:N,q=z+(F-z)*((K-G)/(q-G)),(q<0?q+6.283185307179586:q)>N)X=X^1;if(Y=B+1|0,(Y|0)>=(H|0)){W=22;break}else W=B}if((W|0)==22)return X|0}else{X=0,N=Z,W=-1,Y=0;Y:while(!0){B=Y;while(!0){if(F=+O[P+(B<<4)>>3],Z=+O[P+(B<<4)+8>>3],Y=(W+2|0)%(H|0)|0,G=+O[P+(Y<<4)>>3],z=+O[P+(Y<<4)+8>>3],F>G)q=F,F=z;else q=G,G=F,F=Z,Z=z;if(K=K==G|K==q?K+0.0000000000000002220446049250313:K,!(K<G|K>q))break;if(W=B+1|0,(W|0)>=(H|0)){W=22;break Y}else Y=B,B=W,W=Y}if(N=F==N|Z==N?N+-0.0000000000000002220446049250313:N,F+(Z-F)*((K-G)/(q-G))>N)X=X^1;if(Y=B+1|0,(Y|0)>=(H|0)){W=22;break}else W=B}if((W|0)==22)return X|0}return 0}function rK(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0,x=0,y=0,h=0,_=0;if(j=V[Y>>2]|0,!j){V[X>>2]=0,V[X+4>>2]=0,V[X+8>>2]=0,V[X+12>>2]=0,V[X+16>>2]=0,V[X+20>>2]=0,V[X+24>>2]=0,V[X+28>>2]=0;return}if(x=X+8|0,O[x>>3]=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,y=X+24|0,O[y>>3]=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,O[X>>3]=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,h=X+16|0,O[h>>3]=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,(j|0)<=0)return;H=V[Y+4>>2]|0,B=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,N=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,P=0,Y=-1,G=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,F=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,q=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,K=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,L=0;while(!0){if(W=+O[H+(L<<4)>>3],z=+O[H+(L<<4)+8>>3],Y=Y+2|0,Z=+O[H+(((Y|0)==(j|0)?0:Y)<<4)+8>>3],W<G)O[x>>3]=W,G=W;if(z<F)O[y>>3]=z,F=z;if(W>q)O[X>>3]=W;else W=q;if(z>K)O[h>>3]=z,K=z;if(B=z>0&z<B?z:B,N=z<0&z>N?z:N,P=P|+p8(+(z-Z))>3.141592653589793,Y=L+1|0,(Y|0)==(j|0))break;else _=L,q=W,L=Y,Y=_}if(!P)return;O[h>>3]=N,O[y>>3]=B;return}function n7(Y){return Y=Y|0,(Y>>>0<4?0:15)|0}function UX(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0,x=0,y=0,h=0,_=0,k=0,E=0,t=0,z8=0,Z8=0;if(j=V[Y>>2]|0,j){if(x=X+8|0,O[x>>3]=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,y=X+24|0,O[y>>3]=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,O[X>>3]=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,h=X+16|0,O[h>>3]=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,(j|0)>0){Z=V[Y+4>>2]|0,H=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,L=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,K=0,W=-1,q=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,B=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,P=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,F=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,_=0;while(!0){if(G=+O[Z+(_<<4)>>3],N=+O[Z+(_<<4)+8>>3],z8=W+2|0,z=+O[Z+(((z8|0)==(j|0)?0:z8)<<4)+8>>3],G<q)O[x>>3]=G,q=G;if(N<B)O[y>>3]=N,B=N;if(G>P)O[X>>3]=G;else G=P;if(N>F)O[h>>3]=N,F=N;if(H=N>0&N<H?N:H,L=N<0&N>L?N:L,K=K|+p8(+(N-z))>3.141592653589793,W=_+1|0,(W|0)==(j|0))break;else z8=_,P=G,_=W,W=z8}if(K)O[h>>3]=L,O[y>>3]=H}}else V[X>>2]=0,V[X+4>>2]=0,V[X+8>>2]=0,V[X+12>>2]=0,V[X+16>>2]=0,V[X+20>>2]=0,V[X+24>>2]=0,V[X+28>>2]=0;if(z8=Y+8|0,W=V[z8>>2]|0,(W|0)<=0)return;t=Y+12|0,E=0;do if(Z=V[t>>2]|0,K=E,E=E+1|0,y=X+(E<<5)|0,h=V[Z+(K<<3)>>2]|0,h){if(_=X+(E<<5)+8|0,O[_>>3]=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,Y=X+(E<<5)+24|0,O[Y>>3]=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,O[y>>3]=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,k=X+(E<<5)+16|0,O[k>>3]=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,(h|0)>0){j=V[Z+(K<<3)+4>>2]|0,H=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,L=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,Z=0,K=-1,x=0,q=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,B=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,N=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,F=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000;while(!0){if(G=+O[j+(x<<4)>>3],P=+O[j+(x<<4)+8>>3],K=K+2|0,z=+O[j+(((K|0)==(h|0)?0:K)<<4)+8>>3],G<q)O[_>>3]=G,q=G;if(P<B)O[Y>>3]=P,B=P;if(G>N)O[y>>3]=G;else G=N;if(P>F)O[k>>3]=P,F=P;if(H=P>0&P<H?P:H,L=P<0&P>L?P:L,Z=Z|+p8(+(P-z))>3.141592653589793,K=x+1|0,(K|0)==(h|0))break;else Z8=x,x=K,N=G,K=Z8}if(Z)O[k>>3]=L,O[Y>>3]=H}}else V[y>>2]=0,V[y+4>>2]=0,V[y+8>>2]=0,V[y+12>>2]=0,V[y+16>>2]=0,V[y+20>>2]=0,V[y+24>>2]=0,V[y+28>>2]=0,W=V[z8>>2]|0;while((E|0)<(W|0));return}function MX(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0;if(!(s7(Y,X,W)|0))return Z=0,Z|0;if(Z=Y+8|0,(V[Z>>2]|0)<=0)return Z=1,Z|0;K=Y+12|0,Y=0;while(!0){if(G=Y,Y=Y+1|0,s7((V[K>>2]|0)+(G<<3)|0,X+(Y<<5)|0,W)|0){Y=0,K=6;break}if((Y|0)>=(V[Z>>2]|0)){Y=1,K=6;break}}if((K|0)==6)return Y|0;return 0}function dK(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,q=0,B=0,N=0;if(B=A,A=A+16|0,z=B,F=W+8|0,!(s7(Y,X,F)|0))return q=0,A=B,q|0;q=Y+8|0;Y:do if((V[q>>2]|0)>0){G=Y+12|0,Z=0;while(!0){if(N=Z,Z=Z+1|0,s7((V[G>>2]|0)+(N<<3)|0,X+(Z<<5)|0,F)|0){Z=0;break}if((Z|0)>=(V[q>>2]|0))break Y}return A=B,Z|0}while(0);if(h9(Y,X,W,K)|0)return N=0,A=B,N|0;V[z>>2]=V[W>>2],V[z+4>>2]=F,Z=V[q>>2]|0;Y:do if((Z|0)>0){Y=Y+12|0,F=0,G=Z;while(!0){if(Z=V[Y>>2]|0,(V[Z+(F<<3)>>2]|0)>0){if(s7(z,K,V[Z+(F<<3)+4>>2]|0)|0){Z=0;break Y}if(Z=F+1|0,h9((V[Y>>2]|0)+(F<<3)|0,X+(Z<<5)|0,W,K)|0){Z=0;break Y}G=V[q>>2]|0}else Z=F+1|0;if((Z|0)<(G|0))F=Z;else{Z=1;break}}}else Z=1;while(0);return N=Z,A=B,N|0}function h9(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0,x=0,y=0,h=0,_=0,k=0,E=0,t=0,z8=0,Z8=0,x8=0;if(z8=A,A=A+176|0,_=z8+172|0,Z=z8+168|0,k=z8,!(lV(X,K)|0))return Y=0,A=z8,Y|0;if(j1(X,K,_,Z),z7(k|0,W|0,168)|0,(V[W>>2]|0)>0){X=0;do Z8=k+8+(X<<4)+8|0,h=+K0(+O[Z8>>3],V[Z>>2]|0),O[Z8>>3]=h,X=X+1|0;while((X|0)<(V[W>>2]|0))}x=+O[K>>3],y=+O[K+8>>3],h=+K0(+O[K+16>>3],V[Z>>2]|0),L=+K0(+O[K+24>>3],V[Z>>2]|0);Y:do if((V[Y>>2]|0)>0){if(K=Y+4|0,Z=V[k>>2]|0,(Z|0)<=0){X=0;while(!0)if(X=X+1|0,(X|0)>=(V[Y>>2]|0)){X=0;break Y}}W=0;while(!0){if(X=V[K>>2]|0,H=+O[X+(W<<4)>>3],j=+K0(+O[X+(W<<4)+8>>3],V[_>>2]|0),X=V[K>>2]|0,W=W+1|0,Z8=(W|0)%(V[Y>>2]|0)|0,G=+O[X+(Z8<<4)>>3],F=+K0(+O[X+(Z8<<4)+8>>3],V[_>>2]|0),((!(H>=x)|!(G>=x)?!(H<=y)|!(G<=y):0)?!(j<=L)|!(F<=L):0)?!(j>=h)|!(F>=h):0){P=G-H,B=F-j,X=0;do if(x8=X,X=X+1|0,Z8=(X|0)==(Z|0)?0:X,G=+O[k+8+(x8<<4)+8>>3],F=+O[k+8+(Z8<<4)+8>>3]-G,z=+O[k+8+(x8<<4)>>3],q=+O[k+8+(Z8<<4)>>3]-z,N=P*F-B*q,(N!=0?(E=j-G,t=H-z,q=(E*q-F*t)/N,!(q<0|q>1)):0)?(N=(P*E-B*t)/N,N>=0&N<=1):0){X=1;break Y}while((X|0)<(Z|0))}if((W|0)>=(V[Y>>2]|0)){X=0;break}}}else X=0;while(0);return x8=X,A=z8,x8|0}function lK(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0;if(h9(Y,X,W,K)|0)return G=1,G|0;if(G=Y+8|0,(V[G>>2]|0)<=0)return G=0,G|0;Z=Y+12|0,Y=0;while(!0){if(F=Y,Y=Y+1|0,h9((V[Z>>2]|0)+(F<<3)|0,X+(Y<<5)|0,W,K)|0){Y=1,Z=6;break}if((Y|0)>=(V[G>>2]|0)){Y=0,Z=6;break}}if((Z|0)==6)return Y|0;return 0}function y3(){return 8}function k3(){return 16}function v3(){return 168}function _3(){return 8}function $3(){return 16}function h3(){return 12}function g3(){return 8}function f3(Y){return Y=Y|0,+(+((V[Y>>2]|0)>>>0)+4294967296*+(V[Y+4>>2]|0))}function m3(Y){Y=Y|0;var X=0,W=0;return W=+O[Y>>3],X=+O[Y+8>>3],+ +F6(+(W*W+X*X))}function iK(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0;B=+O[Y>>3],q=+O[X>>3]-B,z=+O[Y+8>>3],F=+O[X+8>>3]-z,P=+O[W>>3],G=+O[K>>3]-P,H=+O[W+8>>3],N=+O[K+8>>3]-H,G=(G*(z-H)-(B-P)*N)/(q*N-F*G),O[Z>>3]=B+q*G,O[Z+8>>3]=z+F*G;return}function oK(Y,X){if(Y=Y|0,X=X|0,!(+p8(+(+O[Y>>3]-+O[X>>3]))<0.00000011920928955078125))return X=0,X|0;return X=+p8(+(+O[Y+8>>3]-+O[X+8>>3]))<0.00000011920928955078125,X|0}function C6(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0;return Z=+O[Y>>3]-+O[X>>3],K=+O[Y+8>>3]-+O[X+8>>3],W=+O[Y+16>>3]-+O[X+16>>3],+(Z*Z+K*K+W*W)}function b3(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0;W=+O[Y>>3],K=+m8(+W),W=+c8(+W),O[X+16>>3]=W,W=+O[Y+8>>3],Z=K*+m8(+W),O[X>>3]=Z,W=K*+c8(+W),O[X+8>>3]=W;return}function u3(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0;if(G=A,A=A+16|0,Z=G,K=J6(Y,X)|0,(W+-1|0)>>>0>5)return Z=-1,A=G,Z|0;if(K=(K|0)!=0,(W|0)==1&K)return Z=-1,A=G,Z|0;do if(!(r7(Y,X,Z)|0))if(K){K=((V[26352+(W<<2)>>2]|0)+5-(V[Z>>2]|0)|0)%5|0;break}else{K=((V[26384+(W<<2)>>2]|0)+6-(V[Z>>2]|0)|0)%6|0;break}else K=-1;while(0);return Z=K,A=G,Z|0}function r7(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,q=0,B=0;if(B=A,A=A+32|0,F=B+16|0,z=B,K=J7(Y,X,F)|0,K|0)return W=K,A=B,W|0;G=$K(Y,X)|0,q=a6(Y,X)|0,P1(G,z),K=R1(G,V[F>>2]|0)|0;Y:do if(Q6(G)|0){do switch(G|0){case 4:{Y=0;break}case 14:{Y=1;break}case 24:{Y=2;break}case 38:{Y=3;break}case 49:{Y=4;break}case 58:{Y=5;break}case 63:{Y=6;break}case 72:{Y=7;break}case 83:{Y=8;break}case 97:{Y=9;break}case 107:{Y=10;break}case 117:{Y=11;break}default:{K=1;break Y}}while(0);if(Z=V[26416+(Y*24|0)+8>>2]|0,X=V[26416+(Y*24|0)+16>>2]|0,Y=V[F>>2]|0,(Y|0)!=(V[z>>2]|0)){if(z=sV(G)|0,Y=V[F>>2]|0,z|(Y|0)==(X|0))K=(K+1|0)%6|0}if((q|0)==3&(Y|0)==(X|0)){K=(K+5|0)%6|0,Z=22;break}if((q|0)==5&(Y|0)==(Z|0))K=(K+1|0)%6|0,Z=22;else Z=22}else Z=22;while(0);if((Z|0)==22)V[W>>2]=K,K=0;return W=K,A=B,W|0}function M0(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0,x=0,y=0,h=0,_=0,k=0;if(k=A,A=A+32|0,_=k+24|0,y=k+20|0,j=k+8|0,L=k+16|0,H=k,q=(J6(Y,X)|0)==0,q=q?6:5,N=s(Y|0,X|0,52)|0,R()|0,N=N&15,q>>>0<=W>>>0)return K=2,A=k,K|0;if(P=(N|0)==0,!P?(x=a(7,0,(N^15)*3|0)|0,(x&Y|0)==0&((R()|0)&X|0)==0):0)Z=W;else G=4;Y:do if((G|0)==4){if(Z=(J6(Y,X)|0)!=0,((Z?4:5)|0)<(W|0))return K=1,A=k,K|0;if(r7(Y,X,_)|0)return K=1,A=k,K|0;if(G=(V[_>>2]|0)+W|0,Z)Z=26704+(((G|0)%5|0)<<2)|0;else Z=26736+(((G|0)%6|0)<<2)|0;if(x=V[Z>>2]|0,(x|0)==7)return K=1,A=k,K|0;V[y>>2]=0,Z=L6(Y,X,x,y,j)|0;do if(!Z){if(z=j,B=V[z>>2]|0,z=V[z+4>>2]|0,F=z>>>0<X>>>0|(z|0)==(X|0)&B>>>0<Y>>>0,G=F?B:Y,F=F?z:X,!P?(P=a(7,0,(N^15)*3|0)|0,(B&P|0)==0&(z&(R()|0)|0)==0):0)Z=W;else{if(z=(W+-1+q|0)%(q|0)|0,Z=J6(Y,X)|0,(z|0)<0)I8(27795,27797,246,27806);if(q=(Z|0)!=0,((q?4:5)|0)<(z|0))I8(27795,27797,246,27806);if(r7(Y,X,_)|0)I8(27795,27797,246,27806);if(Z=(V[_>>2]|0)+z|0,q)Z=26704+(((Z|0)%5|0)<<2)|0;else Z=26736+(((Z|0)%6|0)<<2)|0;if(z=V[Z>>2]|0,(z|0)==7)I8(27795,27797,246,27806);if(V[L>>2]=0,Z=L6(Y,X,z,L,H)|0,Z|0)break;B=H,q=V[B>>2]|0,B=V[B+4>>2]|0;do if(B>>>0<F>>>0|(B|0)==(F|0)&q>>>0<G>>>0){if(!(J6(q,B)|0))G=V[26800+((((V[L>>2]|0)+(V[26768+(z<<2)>>2]|0)|0)%6|0)<<2)>>2]|0;else G=cV(q,B,Y,X)|0;if(Z=J6(q,B)|0,(G+-1|0)>>>0>5){Z=-1,G=q,F=B;break}if(Z=(Z|0)!=0,(G|0)==1&Z){Z=-1,G=q,F=B;break}do if(!(r7(q,B,_)|0))if(Z){Z=((V[26352+(G<<2)>>2]|0)+5-(V[_>>2]|0)|0)%5|0;break}else{Z=((V[26384+(G<<2)>>2]|0)+6-(V[_>>2]|0)|0)%6|0;break}else Z=-1;while(0);G=q,F=B}else Z=W;while(0);z=j,B=V[z>>2]|0,z=V[z+4>>2]|0}if((G|0)==(B|0)&(F|0)==(z|0)){if(q=(J6(B,z)|0)!=0,q)Y=cV(B,z,Y,X)|0;else Y=V[26800+((((V[y>>2]|0)+(V[26768+(x<<2)>>2]|0)|0)%6|0)<<2)>>2]|0;if(Z=J6(B,z)|0,(Y+-1|0)>>>0<=5?(h=(Z|0)!=0,!((Y|0)==1&h)):0)do if(!(r7(B,z,_)|0))if(h){Z=((V[26352+(Y<<2)>>2]|0)+5-(V[_>>2]|0)|0)%5|0;break}else{Z=((V[26384+(Y<<2)>>2]|0)+6-(V[_>>2]|0)|0)%6|0;break}else Z=-1;while(0);else Z=-1;Z=Z+1|0,Z=(Z|0)==6|q&(Z|0)==5?0:Z}X=F,Y=G;break Y}while(0);return K=Z,A=k,K|0}while(0);return h=a(Z|0,0,56)|0,_=R()|0|X&-2130706433|536870912,V[K>>2]=h|Y,V[K+4>>2]=_,K=0,A=k,K|0}function p3(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0;if(G=(J6(Y,X)|0)==0,K=M0(Y,X,0,W)|0,Z=(K|0)==0,G){if(!Z)return G=K,G|0;if(K=M0(Y,X,1,W+8|0)|0,K|0)return G=K,G|0;if(K=M0(Y,X,2,W+16|0)|0,K|0)return G=K,G|0;if(K=M0(Y,X,3,W+24|0)|0,K|0)return G=K,G|0;if(K=M0(Y,X,4,W+32|0)|0,!K)return M0(Y,X,5,W+40|0)|0;else return G=K,G|0}if(!Z)return G=K,G|0;if(K=M0(Y,X,1,W+8|0)|0,K|0)return G=K,G|0;if(K=M0(Y,X,2,W+16|0)|0,K|0)return G=K,G|0;if(K=M0(Y,X,3,W+24|0)|0,K|0)return G=K,G|0;if(K=M0(Y,X,4,W+32|0)|0,K|0)return G=K,G|0;return G=W+40|0,V[G>>2]=0,V[G+4>>2]=0,G=0,G|0}function c3(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,q=0;if(q=A,A=A+192|0,Z=q,G=q+168|0,F=s(Y|0,X|0,56)|0,R()|0,F=F&7,z=X&-2130706433|134217728,K=J7(Y,z,G)|0,K|0)return z=K,A=q,z|0;if(X=s(Y|0,X|0,52)|0,R()|0,X=X&15,!(J6(Y,z)|0))aV(G,X,F,1,Z);else tV(G,X,F,1,Z);return z=Z+8|0,V[W>>2]=V[z>>2],V[W+4>>2]=V[z+4>>2],V[W+8>>2]=V[z+8>>2],V[W+12>>2]=V[z+12>>2],z=0,A=q,z|0}function s3(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0;if(Z=A,A=A+16|0,W=Z,!(!0&(X&2013265920|0)==536870912))return K=0,A=Z,K|0;if(K=X&-2130706433|134217728,!(eV(Y,K)|0))return K=0,A=Z,K|0;return G=s(Y|0,X|0,56)|0,R()|0,G=(M0(Y,K,G&7,W)|0)==0,K=W,K=G&((V[K>>2]|0)==(Y|0)?(V[K+4>>2]|0)==(X|0):0)&1,A=Z,K|0}function tK(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0;if((X|0)>0){if(K=e6(X,4)|0,V[Y>>2]=K,!K)I8(27819,27842,40,27856)}else V[Y>>2]=0;V[Y+4>>2]=X,V[Y+8>>2]=0,V[Y+12>>2]=W;return}function aK(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0;Z=Y+4|0,G=Y+12|0,F=Y+8|0;Y:while(!0){W=V[Z>>2]|0,X=0;while(!0){if((X|0)>=(W|0))break Y;if(K=V[Y>>2]|0,z=V[K+(X<<2)>>2]|0,!z)X=X+1|0;else break}X=K+(~~(+p8(+(+H6(10,+ +(15-(V[G>>2]|0)|0))*(+O[z>>3]+ +O[z+8>>3])))%+(W|0))>>>0<<2)|0,W=V[X>>2]|0;V:do if(W|0){if(K=z+32|0,(W|0)==(z|0))V[X>>2]=V[K>>2];else{if(W=W+32|0,X=V[W>>2]|0,!X)break;while(!0){if((X|0)==(z|0))break;if(W=X+32|0,X=V[W>>2]|0,!X)break V}V[W>>2]=V[K>>2]}O8(z),V[F>>2]=(V[F>>2]|0)+-1}while(0)}O8(V[Y>>2]|0);return}function eK(Y){Y=Y|0;var X=0,W=0,K=0;K=V[Y+4>>2]|0,W=0;while(!0){if((W|0)>=(K|0)){X=0,W=4;break}if(X=V[(V[Y>>2]|0)+(W<<2)>>2]|0,!X)W=W+1|0;else{W=4;break}}if((W|0)==4)return X|0;return 0}function Y5(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0;if(W=~~(+p8(+(+H6(10,+ +(15-(V[Y+12>>2]|0)|0))*(+O[X>>3]+ +O[X+8>>3])))%+(V[Y+4>>2]|0))>>>0,W=(V[Y>>2]|0)+(W<<2)|0,K=V[W>>2]|0,!K)return G=1,G|0;G=X+32|0;do if((K|0)!=(X|0)){if(W=V[K+32>>2]|0,!W)return G=1,G|0;Z=W;while(!0){if((Z|0)==(X|0)){Z=8;break}if(W=V[Z+32>>2]|0,!W){W=1,Z=10;break}else K=Z,Z=W}if((Z|0)==8){V[K+32>>2]=V[G>>2];break}else if((Z|0)==10)return W|0}else V[W>>2]=V[G>>2];while(0);return O8(X),G=Y+8|0,V[G>>2]=(V[G>>2]|0)+-1,G=0,G|0}function n3(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0;if(G=y0(40)|0,!G)I8(27872,27842,98,27885);V[G>>2]=V[X>>2],V[G+4>>2]=V[X+4>>2],V[G+8>>2]=V[X+8>>2],V[G+12>>2]=V[X+12>>2],Z=G+16|0,V[Z>>2]=V[W>>2],V[Z+4>>2]=V[W+4>>2],V[Z+8>>2]=V[W+8>>2],V[Z+12>>2]=V[W+12>>2],V[G+32>>2]=0,Z=~~(+p8(+(+H6(10,+ +(15-(V[Y+12>>2]|0)|0))*(+O[X>>3]+ +O[X+8>>3])))%+(V[Y+4>>2]|0))>>>0,Z=(V[Y>>2]|0)+(Z<<2)|0,K=V[Z>>2]|0;do if(!K)V[Z>>2]=G;else{while(!0){if(Q7(K,X)|0?Q7(K+16|0,W)|0:0)break;if(Z=V[K+32>>2]|0,K=(Z|0)==0?K:Z,!(V[K+32>>2]|0)){F=10;break}}if((F|0)==10){V[K+32>>2]=G;break}return O8(G),F=K,F|0}while(0);return F=Y+8|0,V[F>>2]=(V[F>>2]|0)+1,F=G,F|0}function r3(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0;if(Z=~~(+p8(+(+H6(10,+ +(15-(V[Y+12>>2]|0)|0))*(+O[X>>3]+ +O[X+8>>3])))%+(V[Y+4>>2]|0))>>>0,Z=V[(V[Y>>2]|0)+(Z<<2)>>2]|0,!Z)return W=0,W|0;if(!W){Y=Z;while(!0){if(Q7(Y,X)|0){K=10;break}if(Y=V[Y+32>>2]|0,!Y){Y=0,K=10;break}}if((K|0)==10)return Y|0}Y=Z;while(!0){if(Q7(Y,X)|0?Q7(Y+16|0,W)|0:0){K=10;break}if(Y=V[Y+32>>2]|0,!Y){Y=0,K=10;break}}if((K|0)==10)return Y|0;return 0}function d3(Y,X){Y=Y|0,X=X|0;var W=0;if(W=~~(+p8(+(+H6(10,+ +(15-(V[Y+12>>2]|0)|0))*(+O[X>>3]+ +O[X+8>>3])))%+(V[Y+4>>2]|0))>>>0,Y=V[(V[Y>>2]|0)+(W<<2)>>2]|0,!Y)return W=0,W|0;while(!0){if(Q7(Y,X)|0){X=5;break}if(Y=V[Y+32>>2]|0,!Y){Y=0,X=5;break}}if((X|0)==5)return Y|0;return 0}function l3(){return 27904}function BY(Y){return Y=+Y,~~+J5(+Y)|0}function y0(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0,x=0,y=0,h=0,_=0,k=0,E=0,t=0;t=A,A=A+16|0,H=t;do if(Y>>>0<245){if(B=Y>>>0<11?16:Y+11&-8,Y=B>>>3,P=V[6977]|0,W=P>>>Y,W&3|0){if(X=(W&1^1)+Y|0,Y=27948+(X<<1<<2)|0,W=Y+8|0,K=V[W>>2]|0,Z=K+8|0,G=V[Z>>2]|0,(G|0)==(Y|0))V[6977]=P&~(1<<X);else V[G+12>>2]=Y,V[W>>2]=G;return E=X<<3,V[K+4>>2]=E|3,E=K+E+4|0,V[E>>2]=V[E>>2]|1,E=Z,A=t,E|0}if(N=V[6979]|0,B>>>0>N>>>0){if(W|0){if(X=2<<Y,X=W<<Y&(X|0-X),X=(X&0-X)+-1|0,z=X>>>12&16,X=X>>>z,W=X>>>5&8,X=X>>>W,G=X>>>2&4,X=X>>>G,Y=X>>>1&2,X=X>>>Y,K=X>>>1&1,K=(W|z|G|Y|K)+(X>>>K)|0,X=27948+(K<<1<<2)|0,Y=X+8|0,G=V[Y>>2]|0,z=G+8|0,W=V[z>>2]|0,(W|0)==(X|0))Y=P&~(1<<K),V[6977]=Y;else V[W+12>>2]=X,V[Y>>2]=W,Y=P;if(E=K<<3,F=E-B|0,V[G+4>>2]=B|3,Z=G+B|0,V[Z+4>>2]=F|1,V[G+E>>2]=F,N|0){if(K=V[6982]|0,X=N>>>3,W=27948+(X<<1<<2)|0,X=1<<X,!(Y&X))V[6977]=Y|X,X=W,Y=W+8|0;else Y=W+8|0,X=V[Y>>2]|0;V[Y>>2]=K,V[X+12>>2]=K,V[K+8>>2]=X,V[K+12>>2]=W}return V[6979]=F,V[6982]=Z,E=z,A=t,E|0}if(G=V[6978]|0,G){W=(G&0-G)+-1|0,Z=W>>>12&16,W=W>>>Z,K=W>>>5&8,W=W>>>K,F=W>>>2&4,W=W>>>F,z=W>>>1&2,W=W>>>z,q=W>>>1&1,q=V[28212+((K|Z|F|z|q)+(W>>>q)<<2)>>2]|0,W=q,z=q,q=(V[q+4>>2]&-8)-B|0;while(!0){if(Y=V[W+16>>2]|0,!Y){if(Y=V[W+20>>2]|0,!Y)break}F=(V[Y+4>>2]&-8)-B|0,Z=F>>>0<q>>>0,W=Y,z=Z?Y:z,q=Z?F:q}if(F=z+B|0,F>>>0>z>>>0){Z=V[z+24>>2]|0,X=V[z+12>>2]|0;do if((X|0)==(z|0)){if(Y=z+20|0,X=V[Y>>2]|0,!X){if(Y=z+16|0,X=V[Y>>2]|0,!X){W=0;break}}while(!0)if(K=X+20|0,W=V[K>>2]|0,!W)if(K=X+16|0,W=V[K>>2]|0,!W)break;else X=W,Y=K;else X=W,Y=K;V[Y>>2]=0,W=X}else W=V[z+8>>2]|0,V[W+12>>2]=X,V[X+8>>2]=W,W=X;while(0);do if(Z|0){if(X=V[z+28>>2]|0,Y=28212+(X<<2)|0,(z|0)==(V[Y>>2]|0)){if(V[Y>>2]=W,!W){V[6978]=G&~(1<<X);break}}else if(E=Z+16|0,V[((V[E>>2]|0)==(z|0)?E:Z+20|0)>>2]=W,!W)break;if(V[W+24>>2]=Z,X=V[z+16>>2]|0,X|0)V[W+16>>2]=X,V[X+24>>2]=W;if(X=V[z+20>>2]|0,X|0)V[W+20>>2]=X,V[X+24>>2]=W}while(0);if(q>>>0<16)E=q+B|0,V[z+4>>2]=E|3,E=z+E+4|0,V[E>>2]=V[E>>2]|1;else{if(V[z+4>>2]=B|3,V[F+4>>2]=q|1,V[F+q>>2]=q,N|0){if(K=V[6982]|0,X=N>>>3,W=27948+(X<<1<<2)|0,X=1<<X,!(X&P))V[6977]=X|P,X=W,Y=W+8|0;else Y=W+8|0,X=V[Y>>2]|0;V[Y>>2]=K,V[X+12>>2]=K,V[K+8>>2]=X,V[K+12>>2]=W}V[6979]=q,V[6982]=F}return E=z+8|0,A=t,E|0}else P=B}else P=B}else P=B}else if(Y>>>0<=4294967231)if(Y=Y+11|0,B=Y&-8,K=V[6978]|0,K){if(Z=0-B|0,Y=Y>>>8,Y)if(B>>>0>16777215)q=31;else P=(Y+1048320|0)>>>16&8,x=Y<<P,z=(x+520192|0)>>>16&4,x=x<<z,q=(x+245760|0)>>>16&2,q=14-(z|P|q)+(x<<q>>>15)|0,q=B>>>(q+7|0)&1|q<<1;else q=0;W=V[28212+(q<<2)>>2]|0;Y:do if(!W)W=0,Y=0,x=61;else{Y=0,z=B<<((q|0)==31?0:25-(q>>>1)|0),G=0;while(!0){if(F=(V[W+4>>2]&-8)-B|0,F>>>0<Z>>>0)if(!F){Y=W,Z=0,x=65;break Y}else Y=W,Z=F;if(x=V[W+20>>2]|0,W=V[W+16+(z>>>31<<2)>>2]|0,G=(x|0)==0|(x|0)==(W|0)?G:x,!W){W=G,x=61;break}else z=z<<1}}while(0);if((x|0)==61){if((W|0)==0&(Y|0)==0){if(Y=2<<q,Y=(Y|0-Y)&K,!Y){P=B;break}P=(Y&0-Y)+-1|0,F=P>>>12&16,P=P>>>F,G=P>>>5&8,P=P>>>G,z=P>>>2&4,P=P>>>z,q=P>>>1&2,P=P>>>q,W=P>>>1&1,Y=0,W=V[28212+((G|F|z|q|W)+(P>>>W)<<2)>>2]|0}if(!W)z=Y,F=Z;else x=65}if((x|0)==65){G=W;while(!0){if(P=(V[G+4>>2]&-8)-B|0,W=P>>>0<Z>>>0,Z=W?P:Z,Y=W?G:Y,W=V[G+16>>2]|0,!W)W=V[G+20>>2]|0;if(!W){z=Y,F=Z;break}else G=W}}if(((z|0)!=0?F>>>0<((V[6979]|0)-B|0)>>>0:0)?(N=z+B|0,N>>>0>z>>>0):0){G=V[z+24>>2]|0,X=V[z+12>>2]|0;do if((X|0)==(z|0)){if(Y=z+20|0,X=V[Y>>2]|0,!X){if(Y=z+16|0,X=V[Y>>2]|0,!X){X=0;break}}while(!0)if(Z=X+20|0,W=V[Z>>2]|0,!W)if(Z=X+16|0,W=V[Z>>2]|0,!W)break;else X=W,Y=Z;else X=W,Y=Z;V[Y>>2]=0}else E=V[z+8>>2]|0,V[E+12>>2]=X,V[X+8>>2]=E;while(0);do if(G){if(Y=V[z+28>>2]|0,W=28212+(Y<<2)|0,(z|0)==(V[W>>2]|0)){if(V[W>>2]=X,!X){K=K&~(1<<Y),V[6978]=K;break}}else if(E=G+16|0,V[((V[E>>2]|0)==(z|0)?E:G+20|0)>>2]=X,!X)break;if(V[X+24>>2]=G,Y=V[z+16>>2]|0,Y|0)V[X+16>>2]=Y,V[Y+24>>2]=X;if(Y=V[z+20>>2]|0,Y)V[X+20>>2]=Y,V[Y+24>>2]=X}while(0);Y:do if(F>>>0<16)E=F+B|0,V[z+4>>2]=E|3,E=z+E+4|0,V[E>>2]=V[E>>2]|1;else{if(V[z+4>>2]=B|3,V[N+4>>2]=F|1,V[N+F>>2]=F,X=F>>>3,F>>>0<256){if(W=27948+(X<<1<<2)|0,Y=V[6977]|0,X=1<<X,!(Y&X))V[6977]=Y|X,X=W,Y=W+8|0;else Y=W+8|0,X=V[Y>>2]|0;V[Y>>2]=N,V[X+12>>2]=N,V[N+8>>2]=X,V[N+12>>2]=W;break}if(X=F>>>8,X)if(F>>>0>16777215)W=31;else k=(X+1048320|0)>>>16&8,E=X<<k,_=(E+520192|0)>>>16&4,E=E<<_,W=(E+245760|0)>>>16&2,W=14-(_|k|W)+(E<<W>>>15)|0,W=F>>>(W+7|0)&1|W<<1;else W=0;if(X=28212+(W<<2)|0,V[N+28>>2]=W,Y=N+16|0,V[Y+4>>2]=0,V[Y>>2]=0,Y=1<<W,!(K&Y)){V[6978]=K|Y,V[X>>2]=N,V[N+24>>2]=X,V[N+12>>2]=N,V[N+8>>2]=N;break}X=V[X>>2]|0;V:do if((V[X+4>>2]&-8|0)!=(F|0)){K=F<<((W|0)==31?0:25-(W>>>1)|0);while(!0){if(W=X+16+(K>>>31<<2)|0,Y=V[W>>2]|0,!Y)break;if((V[Y+4>>2]&-8|0)==(F|0)){X=Y;break V}else K=K<<1,X=Y}V[W>>2]=N,V[N+24>>2]=X,V[N+12>>2]=N,V[N+8>>2]=N;break Y}while(0);k=X+8|0,E=V[k>>2]|0,V[E+12>>2]=N,V[k>>2]=N,V[N+8>>2]=E,V[N+12>>2]=X,V[N+24>>2]=0}while(0);return E=z+8|0,A=t,E|0}else P=B}else P=B;else P=-1;while(0);if(W=V[6979]|0,W>>>0>=P>>>0){if(X=W-P|0,Y=V[6982]|0,X>>>0>15)E=Y+P|0,V[6982]=E,V[6979]=X,V[E+4>>2]=X|1,V[Y+W>>2]=X,V[Y+4>>2]=P|3;else V[6979]=0,V[6982]=0,V[Y+4>>2]=W|3,E=Y+W+4|0,V[E>>2]=V[E>>2]|1;return E=Y+8|0,A=t,E|0}if(F=V[6980]|0,F>>>0>P>>>0)return _=F-P|0,V[6980]=_,E=V[6983]|0,k=E+P|0,V[6983]=k,V[k+4>>2]=_|1,V[E+4>>2]=P|3,E=E+8|0,A=t,E|0;if(!(V[7095]|0))V[7097]=4096,V[7096]=4096,V[7098]=-1,V[7099]=-1,V[7100]=0,V[7088]=0,V[7095]=H&-16^1431655768,Y=4096;else Y=V[7097]|0;if(z=P+48|0,q=P+47|0,G=Y+q|0,Z=0-Y|0,B=G&Z,B>>>0<=P>>>0)return E=0,A=t,E|0;if(Y=V[7087]|0,Y|0?(N=V[7085]|0,H=N+B|0,H>>>0<=N>>>0|H>>>0>Y>>>0):0)return E=0,A=t,E|0;Y:do if(!(V[7088]&4)){W=V[6983]|0;V:do if(W){K=28356;while(!0){if(H=V[K>>2]|0,H>>>0<=W>>>0?(H+(V[K+4>>2]|0)|0)>>>0>W>>>0:0)break;if(Y=V[K+8>>2]|0,!Y){x=128;break V}else K=Y}if(X=G-F&Z,X>>>0<2147483647)if(Y=CY(X|0)|0,(Y|0)==((V[K>>2]|0)+(V[K+4>>2]|0)|0)){if((Y|0)!=-1){F=X,G=Y,x=145;break Y}}else K=Y,x=136;else X=0}else x=128;while(0);do if((x|0)==128)if(W=CY(0)|0,(W|0)!=-1?(X=W,L=V[7096]|0,j=L+-1|0,X=((j&X|0)==0?0:(j+X&0-L)-X|0)+B|0,L=V[7085]|0,j=X+L|0,X>>>0>P>>>0&X>>>0<2147483647):0){if(H=V[7087]|0,H|0?j>>>0<=L>>>0|j>>>0>H>>>0:0){X=0;break}if(Y=CY(X|0)|0,(Y|0)==(W|0)){F=X,G=W,x=145;break Y}else K=Y,x=136}else X=0;while(0);do if((x|0)==136){if(W=0-X|0,!(z>>>0>X>>>0&(X>>>0<2147483647&(K|0)!=-1)))if((K|0)==-1){X=0;break}else{F=X,G=K,x=145;break Y}if(Y=V[7097]|0,Y=q-X+Y&0-Y,Y>>>0>=2147483647){F=X,G=K,x=145;break Y}if((CY(Y|0)|0)==-1){CY(W|0)|0,X=0;break}else{F=Y+X|0,G=K,x=145;break Y}}while(0);V[7088]=V[7088]|4,x=143}else X=0,x=143;while(0);if(((x|0)==143?B>>>0<2147483647:0)?(_=CY(B|0)|0,j=CY(0)|0,y=j-_|0,h=y>>>0>(P+40|0)>>>0,!((_|0)==-1|h^1|_>>>0<j>>>0&((_|0)!=-1&(j|0)!=-1)^1)):0)F=h?y:X,G=_,x=145;if((x|0)==145){if(X=(V[7085]|0)+F|0,V[7085]=X,X>>>0>(V[7086]|0)>>>0)V[7086]=X;q=V[6983]|0;Y:do if(q){X=28356;while(!0){if(Y=V[X>>2]|0,W=V[X+4>>2]|0,(G|0)==(Y+W|0)){x=154;break}if(K=V[X+8>>2]|0,!K)break;else X=K}if(((x|0)==154?(k=X+4|0,(V[X+12>>2]&8|0)==0):0)?G>>>0>q>>>0&Y>>>0<=q>>>0:0){V[k>>2]=W+F,E=(V[6980]|0)+F|0,_=q+8|0,_=(_&7|0)==0?0:0-_&7,k=q+_|0,_=E-_|0,V[6983]=k,V[6980]=_,V[k+4>>2]=_|1,V[q+E+4>>2]=40,V[6984]=V[7099];break}if(G>>>0<(V[6981]|0)>>>0)V[6981]=G;W=G+F|0,X=28356;while(!0){if((V[X>>2]|0)==(W|0)){x=162;break}if(Y=V[X+8>>2]|0,!Y)break;else X=Y}if((x|0)==162?(V[X+12>>2]&8|0)==0:0){V[X>>2]=G,N=X+4|0,V[N>>2]=(V[N>>2]|0)+F,N=G+8|0,N=G+((N&7|0)==0?0:0-N&7)|0,X=W+8|0,X=W+((X&7|0)==0?0:0-X&7)|0,B=N+P|0,z=X-N-P|0,V[N+4>>2]=P|3;V:do if((q|0)==(X|0))E=(V[6980]|0)+z|0,V[6980]=E,V[6983]=B,V[B+4>>2]=E|1;else{if((V[6982]|0)==(X|0)){E=(V[6979]|0)+z|0,V[6979]=E,V[6982]=B,V[B+4>>2]=E|1,V[B+E>>2]=E;break}if(Y=V[X+4>>2]|0,(Y&3|0)==1){F=Y&-8,K=Y>>>3;X:do if(Y>>>0<256)if(Y=V[X+8>>2]|0,W=V[X+12>>2]|0,(W|0)==(Y|0)){V[6977]=V[6977]&~(1<<K);break}else{V[Y+12>>2]=W,V[W+8>>2]=Y;break}else{G=V[X+24>>2]|0,Y=V[X+12>>2]|0;do if((Y|0)==(X|0)){if(W=X+16|0,K=W+4|0,Y=V[K>>2]|0,!Y){if(Y=V[W>>2]|0,!Y){Y=0;break}}else W=K;while(!0)if(Z=Y+20|0,K=V[Z>>2]|0,!K)if(Z=Y+16|0,K=V[Z>>2]|0,!K)break;else Y=K,W=Z;else Y=K,W=Z;V[W>>2]=0}else E=V[X+8>>2]|0,V[E+12>>2]=Y,V[Y+8>>2]=E;while(0);if(!G)break;W=V[X+28>>2]|0,K=28212+(W<<2)|0;do if((V[K>>2]|0)!=(X|0)){if(E=G+16|0,V[((V[E>>2]|0)==(X|0)?E:G+20|0)>>2]=Y,!Y)break X}else{if(V[K>>2]=Y,Y|0)break;V[6978]=V[6978]&~(1<<W);break X}while(0);if(V[Y+24>>2]=G,W=X+16|0,K=V[W>>2]|0,K|0)V[Y+16>>2]=K,V[K+24>>2]=Y;if(W=V[W+4>>2]|0,!W)break;V[Y+20>>2]=W,V[W+24>>2]=Y}while(0);X=X+F|0,Z=F+z|0}else Z=z;if(X=X+4|0,V[X>>2]=V[X>>2]&-2,V[B+4>>2]=Z|1,V[B+Z>>2]=Z,X=Z>>>3,Z>>>0<256){if(W=27948+(X<<1<<2)|0,Y=V[6977]|0,X=1<<X,!(Y&X))V[6977]=Y|X,X=W,Y=W+8|0;else Y=W+8|0,X=V[Y>>2]|0;V[Y>>2]=B,V[X+12>>2]=B,V[B+8>>2]=X,V[B+12>>2]=W;break}X=Z>>>8;do if(!X)K=0;else{if(Z>>>0>16777215){K=31;break}k=(X+1048320|0)>>>16&8,E=X<<k,_=(E+520192|0)>>>16&4,E=E<<_,K=(E+245760|0)>>>16&2,K=14-(_|k|K)+(E<<K>>>15)|0,K=Z>>>(K+7|0)&1|K<<1}while(0);if(X=28212+(K<<2)|0,V[B+28>>2]=K,Y=B+16|0,V[Y+4>>2]=0,V[Y>>2]=0,Y=V[6978]|0,W=1<<K,!(Y&W)){V[6978]=Y|W,V[X>>2]=B,V[B+24>>2]=X,V[B+12>>2]=B,V[B+8>>2]=B;break}X=V[X>>2]|0;X:do if((V[X+4>>2]&-8|0)!=(Z|0)){K=Z<<((K|0)==31?0:25-(K>>>1)|0);while(!0){if(W=X+16+(K>>>31<<2)|0,Y=V[W>>2]|0,!Y)break;if((V[Y+4>>2]&-8|0)==(Z|0)){X=Y;break X}else K=K<<1,X=Y}V[W>>2]=B,V[B+24>>2]=X,V[B+12>>2]=B,V[B+8>>2]=B;break V}while(0);k=X+8|0,E=V[k>>2]|0,V[E+12>>2]=B,V[k>>2]=B,V[B+8>>2]=E,V[B+12>>2]=X,V[B+24>>2]=0}while(0);return E=N+8|0,A=t,E|0}X=28356;while(!0){if(Y=V[X>>2]|0,Y>>>0<=q>>>0?(E=Y+(V[X+4>>2]|0)|0,E>>>0>q>>>0):0)break;X=V[X+8>>2]|0}Z=E+-47|0,Y=Z+8|0,Y=Z+((Y&7|0)==0?0:0-Y&7)|0,Z=q+16|0,Y=Y>>>0<Z>>>0?q:Y,X=Y+8|0,W=F+-40|0,_=G+8|0,_=(_&7|0)==0?0:0-_&7,k=G+_|0,_=W-_|0,V[6983]=k,V[6980]=_,V[k+4>>2]=_|1,V[G+W+4>>2]=40,V[6984]=V[7099],W=Y+4|0,V[W>>2]=27,V[X>>2]=V[7089],V[X+4>>2]=V[7090],V[X+8>>2]=V[7091],V[X+12>>2]=V[7092],V[7089]=G,V[7090]=F,V[7092]=0,V[7091]=X,X=Y+24|0;do k=X,X=X+4|0,V[X>>2]=7;while((k+8|0)>>>0<E>>>0);if((Y|0)!=(q|0)){if(G=Y-q|0,V[W>>2]=V[W>>2]&-2,V[q+4>>2]=G|1,V[Y>>2]=G,X=G>>>3,G>>>0<256){if(W=27948+(X<<1<<2)|0,Y=V[6977]|0,X=1<<X,!(Y&X))V[6977]=Y|X,X=W,Y=W+8|0;else Y=W+8|0,X=V[Y>>2]|0;V[Y>>2]=q,V[X+12>>2]=q,V[q+8>>2]=X,V[q+12>>2]=W;break}if(X=G>>>8,X)if(G>>>0>16777215)K=31;else k=(X+1048320|0)>>>16&8,E=X<<k,_=(E+520192|0)>>>16&4,E=E<<_,K=(E+245760|0)>>>16&2,K=14-(_|k|K)+(E<<K>>>15)|0,K=G>>>(K+7|0)&1|K<<1;else K=0;if(W=28212+(K<<2)|0,V[q+28>>2]=K,V[q+20>>2]=0,V[Z>>2]=0,X=V[6978]|0,Y=1<<K,!(X&Y)){V[6978]=X|Y,V[W>>2]=q,V[q+24>>2]=W,V[q+12>>2]=q,V[q+8>>2]=q;break}X=V[W>>2]|0;V:do if((V[X+4>>2]&-8|0)!=(G|0)){K=G<<((K|0)==31?0:25-(K>>>1)|0);while(!0){if(W=X+16+(K>>>31<<2)|0,Y=V[W>>2]|0,!Y)break;if((V[Y+4>>2]&-8|0)==(G|0)){X=Y;break V}else K=K<<1,X=Y}V[W>>2]=q,V[q+24>>2]=X,V[q+12>>2]=q,V[q+8>>2]=q;break Y}while(0);k=X+8|0,E=V[k>>2]|0,V[E+12>>2]=q,V[k>>2]=q,V[q+8>>2]=E,V[q+12>>2]=X,V[q+24>>2]=0}}else{if(E=V[6981]|0,(E|0)==0|G>>>0<E>>>0)V[6981]=G;V[7089]=G,V[7090]=F,V[7092]=0,V[6986]=V[7095],V[6985]=-1,V[6990]=27948,V[6989]=27948,V[6992]=27956,V[6991]=27956,V[6994]=27964,V[6993]=27964,V[6996]=27972,V[6995]=27972,V[6998]=27980,V[6997]=27980,V[7000]=27988,V[6999]=27988,V[7002]=27996,V[7001]=27996,V[7004]=28004,V[7003]=28004,V[7006]=28012,V[7005]=28012,V[7008]=28020,V[7007]=28020,V[7010]=28028,V[7009]=28028,V[7012]=28036,V[7011]=28036,V[7014]=28044,V[7013]=28044,V[7016]=28052,V[7015]=28052,V[7018]=28060,V[7017]=28060,V[7020]=28068,V[7019]=28068,V[7022]=28076,V[7021]=28076,V[7024]=28084,V[7023]=28084,V[7026]=28092,V[7025]=28092,V[7028]=28100,V[7027]=28100,V[7030]=28108,V[7029]=28108,V[7032]=28116,V[7031]=28116,V[7034]=28124,V[7033]=28124,V[7036]=28132,V[7035]=28132,V[7038]=28140,V[7037]=28140,V[7040]=28148,V[7039]=28148,V[7042]=28156,V[7041]=28156,V[7044]=28164,V[7043]=28164,V[7046]=28172,V[7045]=28172,V[7048]=28180,V[7047]=28180,V[7050]=28188,V[7049]=28188,V[7052]=28196,V[7051]=28196,E=F+-40|0,_=G+8|0,_=(_&7|0)==0?0:0-_&7,k=G+_|0,_=E-_|0,V[6983]=k,V[6980]=_,V[k+4>>2]=_|1,V[G+E+4>>2]=40,V[6984]=V[7099]}while(0);if(X=V[6980]|0,X>>>0>P>>>0)return _=X-P|0,V[6980]=_,E=V[6983]|0,k=E+P|0,V[6983]=k,V[k+4>>2]=_|1,V[E+4>>2]=P|3,E=E+8|0,A=t,E|0}return E=l3()|0,V[E>>2]=12,E=0,A=t,E|0}function O8(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0,q=0;if(!Y)return;W=Y+-8|0,Z=V[6981]|0,Y=V[Y+-4>>2]|0,X=Y&-8,q=W+X|0;do if(!(Y&1)){if(K=V[W>>2]|0,!(Y&3))return;if(F=W+(0-K)|0,G=K+X|0,F>>>0<Z>>>0)return;if((V[6982]|0)==(F|0)){if(Y=q+4|0,X=V[Y>>2]|0,(X&3|0)!=3){z=F,X=G;break}V[6979]=G,V[Y>>2]=X&-2,V[F+4>>2]=G|1,V[F+G>>2]=G;return}if(W=K>>>3,K>>>0<256)if(Y=V[F+8>>2]|0,X=V[F+12>>2]|0,(X|0)==(Y|0)){V[6977]=V[6977]&~(1<<W),z=F,X=G;break}else{V[Y+12>>2]=X,V[X+8>>2]=Y,z=F,X=G;break}Z=V[F+24>>2]|0,Y=V[F+12>>2]|0;do if((Y|0)==(F|0)){if(X=F+16|0,W=X+4|0,Y=V[W>>2]|0,!Y){if(Y=V[X>>2]|0,!Y){Y=0;break}}else X=W;while(!0)if(K=Y+20|0,W=V[K>>2]|0,!W)if(K=Y+16|0,W=V[K>>2]|0,!W)break;else Y=W,X=K;else Y=W,X=K;V[X>>2]=0}else z=V[F+8>>2]|0,V[z+12>>2]=Y,V[Y+8>>2]=z;while(0);if(Z){if(X=V[F+28>>2]|0,W=28212+(X<<2)|0,(V[W>>2]|0)==(F|0)){if(V[W>>2]=Y,!Y){V[6978]=V[6978]&~(1<<X),z=F,X=G;break}}else if(z=Z+16|0,V[((V[z>>2]|0)==(F|0)?z:Z+20|0)>>2]=Y,!Y){z=F,X=G;break}if(V[Y+24>>2]=Z,X=F+16|0,W=V[X>>2]|0,W|0)V[Y+16>>2]=W,V[W+24>>2]=Y;if(X=V[X+4>>2]|0,X)V[Y+20>>2]=X,V[X+24>>2]=Y,z=F,X=G;else z=F,X=G}else z=F,X=G}else z=W,F=W;while(0);if(F>>>0>=q>>>0)return;if(Y=q+4|0,K=V[Y>>2]|0,!(K&1))return;if(!(K&2)){if((V[6983]|0)==(q|0)){if(q=(V[6980]|0)+X|0,V[6980]=q,V[6983]=z,V[z+4>>2]=q|1,(z|0)!=(V[6982]|0))return;V[6982]=0,V[6979]=0;return}if((V[6982]|0)==(q|0)){q=(V[6979]|0)+X|0,V[6979]=q,V[6982]=F,V[z+4>>2]=q|1,V[F+q>>2]=q;return}Z=(K&-8)+X|0,W=K>>>3;do if(K>>>0<256)if(X=V[q+8>>2]|0,Y=V[q+12>>2]|0,(Y|0)==(X|0)){V[6977]=V[6977]&~(1<<W);break}else{V[X+12>>2]=Y,V[Y+8>>2]=X;break}else{G=V[q+24>>2]|0,Y=V[q+12>>2]|0;do if((Y|0)==(q|0)){if(X=q+16|0,W=X+4|0,Y=V[W>>2]|0,!Y){if(Y=V[X>>2]|0,!Y){W=0;break}}else X=W;while(!0)if(K=Y+20|0,W=V[K>>2]|0,!W)if(K=Y+16|0,W=V[K>>2]|0,!W)break;else Y=W,X=K;else Y=W,X=K;V[X>>2]=0,W=Y}else W=V[q+8>>2]|0,V[W+12>>2]=Y,V[Y+8>>2]=W,W=Y;while(0);if(G|0){if(Y=V[q+28>>2]|0,X=28212+(Y<<2)|0,(V[X>>2]|0)==(q|0)){if(V[X>>2]=W,!W){V[6978]=V[6978]&~(1<<Y);break}}else if(K=G+16|0,V[((V[K>>2]|0)==(q|0)?K:G+20|0)>>2]=W,!W)break;if(V[W+24>>2]=G,Y=q+16|0,X=V[Y>>2]|0,X|0)V[W+16>>2]=X,V[X+24>>2]=W;if(Y=V[Y+4>>2]|0,Y|0)V[W+20>>2]=Y,V[Y+24>>2]=W}}while(0);if(V[z+4>>2]=Z|1,V[F+Z>>2]=Z,(z|0)==(V[6982]|0)){V[6979]=Z;return}}else V[Y>>2]=K&-2,V[z+4>>2]=X|1,V[F+X>>2]=X,Z=X;if(Y=Z>>>3,Z>>>0<256){if(W=27948+(Y<<1<<2)|0,X=V[6977]|0,Y=1<<Y,!(X&Y))V[6977]=X|Y,Y=W,X=W+8|0;else X=W+8|0,Y=V[X>>2]|0;V[X>>2]=z,V[Y+12>>2]=z,V[z+8>>2]=Y,V[z+12>>2]=W;return}if(Y=Z>>>8,Y)if(Z>>>0>16777215)K=31;else F=(Y+1048320|0)>>>16&8,q=Y<<F,G=(q+520192|0)>>>16&4,q=q<<G,K=(q+245760|0)>>>16&2,K=14-(G|F|K)+(q<<K>>>15)|0,K=Z>>>(K+7|0)&1|K<<1;else K=0;Y=28212+(K<<2)|0,V[z+28>>2]=K,V[z+20>>2]=0,V[z+16>>2]=0,X=V[6978]|0,W=1<<K;Y:do if(!(X&W))V[6978]=X|W,V[Y>>2]=z,V[z+24>>2]=Y,V[z+12>>2]=z,V[z+8>>2]=z;else{Y=V[Y>>2]|0;V:do if((V[Y+4>>2]&-8|0)!=(Z|0)){K=Z<<((K|0)==31?0:25-(K>>>1)|0);while(!0){if(W=Y+16+(K>>>31<<2)|0,X=V[W>>2]|0,!X)break;if((V[X+4>>2]&-8|0)==(Z|0)){Y=X;break V}else K=K<<1,Y=X}V[W>>2]=z,V[z+24>>2]=Y,V[z+12>>2]=z,V[z+8>>2]=z;break Y}while(0);F=Y+8|0,q=V[F>>2]|0,V[q+12>>2]=z,V[F>>2]=z,V[z+8>>2]=q,V[z+12>>2]=Y,V[z+24>>2]=0}while(0);if(q=(V[6985]|0)+-1|0,V[6985]=q,q|0)return;Y=28364;while(!0)if(Y=V[Y>>2]|0,!Y)break;else Y=Y+8|0;V[6985]=-1;return}function e6(Y,X){Y=Y|0,X=X|0;var W=0;if(Y){if(W=x0(X,Y)|0,(X|Y)>>>0>65535)W=((W>>>0)/(Y>>>0)|0|0)==(X|0)?W:-1}else W=0;if(Y=y0(W)|0,!Y)return Y|0;if(!(V[Y+-4>>2]&3))return Y|0;return NY(Y|0,0,W|0)|0,Y|0}function C8(Y,X,W,K){return Y=Y|0,X=X|0,W=W|0,K=K|0,W=Y+W>>>0,(E8(X+K+(W>>>0<Y>>>0|0)>>>0|0),W|0)|0}function k6(Y,X,W,K){return Y=Y|0,X=X|0,W=W|0,K=K|0,K=X-K-(W>>>0>Y>>>0|0)>>>0,(E8(K|0),Y-W>>>0|0)|0}function V5(Y){return Y=Y|0,(Y?31-(s0(Y^Y-1)|0)|0:32)|0}function qX(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,q=0,B=0,N=0,P=0,H=0,L=0,j=0;if(N=Y,q=X,B=q,F=W,H=K,z=H,!B)if(G=(Z|0)!=0,!z){if(G)V[Z>>2]=(N>>>0)%(F>>>0),V[Z+4>>2]=0;return H=0,Z=(N>>>0)/(F>>>0)>>>0,(E8(H|0),Z)|0}else{if(!G)return H=0,Z=0,(E8(H|0),Z)|0;return V[Z>>2]=Y|0,V[Z+4>>2]=X&0,H=0,Z=0,(E8(H|0),Z)|0}G=(z|0)==0;do if(F){if(!G){if(G=(s0(z|0)|0)-(s0(B|0)|0)|0,G>>>0<=31){P=G+1|0,z=31-G|0,X=G-31>>31,F=P,Y=N>>>(P>>>0)&X|B<<z,X=B>>>(P>>>0)&X,G=0,z=N<<z;break}if(!Z)return H=0,Z=0,(E8(H|0),Z)|0;return V[Z>>2]=Y|0,V[Z+4>>2]=q|X&0,H=0,Z=0,(E8(H|0),Z)|0}if(G=F-1|0,G&F|0){z=(s0(F|0)|0)+33-(s0(B|0)|0)|0,j=64-z|0,P=32-z|0,q=P>>31,L=z-32|0,X=L>>31,F=z,Y=P-1>>31&B>>>(L>>>0)|(B<<P|N>>>(z>>>0))&X,X=X&B>>>(z>>>0),G=N<<j&q,z=(B<<j|N>>>(L>>>0))&q|N<<P&z-33>>31;break}if(Z|0)V[Z>>2]=G&N,V[Z+4>>2]=0;if((F|0)==1)return L=q|X&0,j=Y|0|0,(E8(L|0),j)|0;else return j=V5(F|0)|0,L=B>>>(j>>>0)|0,j=B<<32-j|N>>>(j>>>0)|0,(E8(L|0),j)|0}else{if(G){if(Z|0)V[Z>>2]=(B>>>0)%(F>>>0),V[Z+4>>2]=0;return L=0,j=(B>>>0)/(F>>>0)>>>0,(E8(L|0),j)|0}if(!N){if(Z|0)V[Z>>2]=0,V[Z+4>>2]=(B>>>0)%(z>>>0);return L=0,j=(B>>>0)/(z>>>0)>>>0,(E8(L|0),j)|0}if(G=z-1|0,!(G&z)){if(Z|0)V[Z>>2]=Y|0,V[Z+4>>2]=G&B|X&0;return L=0,j=B>>>((V5(z|0)|0)>>>0),(E8(L|0),j)|0}if(G=(s0(z|0)|0)-(s0(B|0)|0)|0,G>>>0<=30){X=G+1|0,z=31-G|0,F=X,Y=B<<z|N>>>(X>>>0),X=B>>>(X>>>0),G=0,z=N<<z;break}if(!Z)return L=0,j=0,(E8(L|0),j)|0;return V[Z>>2]=Y|0,V[Z+4>>2]=q|X&0,L=0,j=0,(E8(L|0),j)|0}while(0);if(!F)B=z,q=0,z=0;else{P=W|0|0,N=H|K&0,B=C8(P|0,N|0,-1,-1)|0,W=R()|0,q=z,z=0;do K=q,q=G>>>31|q<<1,G=z|G<<1,K=Y<<1|K>>>31|0,H=Y>>>31|X<<1|0,k6(B|0,W|0,K|0,H|0)|0,j=R()|0,L=j>>31|((j|0)<0?-1:0)<<1,z=L&1,Y=k6(K|0,H|0,L&P|0,(((j|0)<0?-1:0)>>31|((j|0)<0?-1:0)<<1)&N|0)|0,X=R()|0,F=F-1|0;while((F|0)!=0);B=q,q=0}if(F=0,Z|0)V[Z>>2]=Y,V[Z+4>>2]=X;return L=(G|0)>>>31|(B|F)<<1|(F<<1|G>>>31)&0|q,j=(G<<1|0)&-2|z,(E8(L|0),j)|0}function DY(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,q=0,B=0;return B=X>>31|((X|0)<0?-1:0)<<1,q=((X|0)<0?-1:0)>>31|((X|0)<0?-1:0)<<1,G=K>>31|((K|0)<0?-1:0)<<1,Z=((K|0)<0?-1:0)>>31|((K|0)<0?-1:0)<<1,z=k6(B^Y|0,q^X|0,B|0,q|0)|0,F=R()|0,Y=G^B,X=Z^q,k6((qX(z,F,k6(G^W|0,Z^K|0,G|0,Z|0)|0,R()|0,0)|0)^Y|0,(R()|0)^X|0,Y|0,X|0)|0}function i3(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0;return G=Y&65535,Z=X&65535,W=x0(Z,G)|0,K=Y>>>16,Y=(W>>>16)+(x0(Z,K)|0)|0,Z=X>>>16,X=x0(Z,G)|0,(E8((Y>>>16)+(x0(Z,K)|0)+(((Y&65535)+X|0)>>>16)|0),Y+X<<16|W&65535|0)|0}function j6(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0;return Z=Y,G=W,W=i3(Z,G)|0,Y=R()|0,(E8((x0(X,G)|0)+(x0(K,Z)|0)+Y|Y&0|0),W|0|0)|0}function G7(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,q=0,B=0;return Z=A,A=A+16|0,z=Z|0,F=X>>31|((X|0)<0?-1:0)<<1,G=((X|0)<0?-1:0)>>31|((X|0)<0?-1:0)<<1,B=K>>31|((K|0)<0?-1:0)<<1,q=((K|0)<0?-1:0)>>31|((K|0)<0?-1:0)<<1,Y=k6(F^Y|0,G^X|0,F|0,G|0)|0,X=R()|0,qX(Y,X,k6(B^W|0,q^K|0,B|0,q|0)|0,R()|0,z)|0,K=k6(V[z>>2]^F|0,V[z+4>>2]^G|0,F|0,G|0)|0,W=R()|0,A=Z,(E8(W|0),K)|0}function F7(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0;return G=A,A=A+16|0,Z=G|0,qX(Y,X,W,K,Z)|0,A=G,(E8(V[Z+4>>2]|0),V[Z>>2]|0)|0}function X5(Y,X,W){if(Y=Y|0,X=X|0,W=W|0,(W|0)<32)return E8(X>>W|0),Y>>>W|(X&(1<<W)-1)<<32-W;return E8(((X|0)<0?-1:0)|0),X>>W-32|0}function s(Y,X,W){if(Y=Y|0,X=X|0,W=W|0,(W|0)<32)return E8(X>>>W|0),Y>>>W|(X&(1<<W)-1)<<32-W;return E8(0),X>>>W-32|0}function a(Y,X,W){if(Y=Y|0,X=X|0,W=W|0,(W|0)<32)return E8(X<<W|(Y&(1<<W)-1<<32-W)>>>32-W|0),Y<<W;return E8(Y<<W-32|0),0}function W5(Y,X,W){if(Y=Y|0,X=X|0,W=W|0,X=s0(X)|0,(X|0)==32)X=X+(s0(Y)|0)|0;return E8(0),X|0}function K5(Y,X){if(Y=+Y,X=+X,Y!=Y)return+X;if(X!=X)return+Y;return+W1(+Y,+X)}function g9(Y,X){if(Y=+Y,X=+X,Y!=Y)return+X;if(X!=X)return+Y;return+pV(+Y,+X)}function f9(Y){return Y=+Y,Y>=0?+w6(Y+0.5):+W7(Y-0.5)}function z7(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0;if((W|0)>=8192)return J1(Y|0,X|0,W|0)|0,Y|0;if(G=Y|0,Z=Y+W|0,(Y&3)==(X&3)){while(Y&3){if(!W)return G|0;c[Y>>0]=c[X>>0]|0,Y=Y+1|0,X=X+1|0,W=W-1|0}W=Z&-4|0,K=W-64|0;while((Y|0)<=(K|0))V[Y>>2]=V[X>>2],V[Y+4>>2]=V[X+4>>2],V[Y+8>>2]=V[X+8>>2],V[Y+12>>2]=V[X+12>>2],V[Y+16>>2]=V[X+16>>2],V[Y+20>>2]=V[X+20>>2],V[Y+24>>2]=V[X+24>>2],V[Y+28>>2]=V[X+28>>2],V[Y+32>>2]=V[X+32>>2],V[Y+36>>2]=V[X+36>>2],V[Y+40>>2]=V[X+40>>2],V[Y+44>>2]=V[X+44>>2],V[Y+48>>2]=V[X+48>>2],V[Y+52>>2]=V[X+52>>2],V[Y+56>>2]=V[X+56>>2],V[Y+60>>2]=V[X+60>>2],Y=Y+64|0,X=X+64|0;while((Y|0)<(W|0))V[Y>>2]=V[X>>2],Y=Y+4|0,X=X+4|0}else{W=Z-4|0;while((Y|0)<(W|0))c[Y>>0]=c[X>>0]|0,c[Y+1>>0]=c[X+1>>0]|0,c[Y+2>>0]=c[X+2>>0]|0,c[Y+3>>0]=c[X+3>>0]|0,Y=Y+4|0,X=X+4|0}while((Y|0)<(Z|0))c[Y>>0]=c[X>>0]|0,Y=Y+1|0,X=X+1|0;return G|0}function NY(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0;if(G=Y+W|0,X=X&255,(W|0)>=67){while(Y&3)c[Y>>0]=X,Y=Y+1|0;K=G&-4|0,F=X|X<<8|X<<16|X<<24,Z=K-64|0;while((Y|0)<=(Z|0))V[Y>>2]=F,V[Y+4>>2]=F,V[Y+8>>2]=F,V[Y+12>>2]=F,V[Y+16>>2]=F,V[Y+20>>2]=F,V[Y+24>>2]=F,V[Y+28>>2]=F,V[Y+32>>2]=F,V[Y+36>>2]=F,V[Y+40>>2]=F,V[Y+44>>2]=F,V[Y+48>>2]=F,V[Y+52>>2]=F,V[Y+56>>2]=F,V[Y+60>>2]=F,Y=Y+64|0;while((Y|0)<(K|0))V[Y>>2]=F,Y=Y+4|0}while((Y|0)<(G|0))c[Y>>0]=X,Y=Y+1|0;return G-W|0}function J5(Y){return Y=+Y,Y>=0?+w6(Y+0.5):+W7(Y-0.5)}function CY(Y){Y=Y|0;var X=0,W=0,K=0;if(K=K1()|0,W=V[t6>>2]|0,X=W+Y|0,(Y|0)>0&(X|0)<(W|0)|(X|0)<0)return Q1(X|0)|0,BK(12),-1;if((X|0)>(K|0)){if(!(Z1(X|0)|0))return BK(12),-1}return V[t6>>2]=X,W|0}return{___divdi3:DY,___muldi3:j6,___remdi3:G7,___uremdi3:F7,_areNeighborCells:f1,_bitshift64Ashr:X5,_bitshift64Lshr:s,_bitshift64Shl:a,_calloc:e6,_cellAreaKm2:D3,_cellAreaM2:N3,_cellAreaRads2:FX,_cellToBoundary:Z7,_cellToCenterChild:gK,_cellToChildPos:Z3,_cellToChildren:t1,_cellToChildrenSize:u7,_cellToLatLng:gY,_cellToLocalIj:I3,_cellToParent:VX,_cellToVertex:M0,_cellToVertexes:p3,_cellsToDirectedEdge:m1,_cellsToLinkedMultiPolygon:A1,_childPosToCell:Q3,_compactCells:a1,_destroyLinkedMultiPolygon:pK,_directedEdgeToBoundary:v9,_directedEdgeToCells:c1,_edgeLengthKm:O3,_edgeLengthM:A3,_edgeLengthRads:C3,_emscripten_replace_memory:G1,_free:O8,_getBaseCellNumber:$K,_getDirectedEdgeDestination:u1,_getDirectedEdgeOrigin:b1,_getHexagonAreaAvgKm2:bK,_getHexagonAreaAvgM2:M3,_getHexagonEdgeLengthAvgKm:q3,_getHexagonEdgeLengthAvgM:B3,_getIcosahedronFaces:fK,_getNumCells:_9,_getPentagons:ZX,_getRes0Cells:w1,_getResolution:o1,_greatCircleDistanceKm:c7,_greatCircleDistanceM:F3,_greatCircleDistanceRads:G3,_gridDisk:DK,_gridDiskDistances:NK,_gridDistance:H3,_gridPathCells:j3,_gridPathCellsSize:L3,_gridRing:B1,_gridRingUnsafe:OK,_i64Add:C8,_i64Subtract:k6,_isPentagon:J6,_isResClassIII:V3,_isValidCell:eV,_isValidDirectedEdge:p1,_isValidVertex:s3,_latLngToCell:KX,_llvm_ctlz_i64:W5,_llvm_maxnum_f64:K5,_llvm_minnum_f64:g9,_llvm_round_f64:f9,_localIjToCell:w3,_malloc:y0,_maxFaceCount:K3,_maxGridDiskSize:q1,_maxPolygonToCellsSize:N1,_maxPolygonToCellsSizeExperimental:E3,_memcpy:z7,_memset:NY,_originToDirectedEdges:s1,_pentagonCount:J3,_polygonToCells:C1,_polygonToCellsExperimental:x3,_readInt64AsDoubleFromPointer:f3,_res0CellCount:I1,_round:J5,_sbrk:CY,_sizeOfCellBoundary:v3,_sizeOfCoordIJ:g3,_sizeOfGeoLoop:_3,_sizeOfGeoPolygon:$3,_sizeOfH3Index:y3,_sizeOfLatLng:k3,_sizeOfLinkedGeoPolygon:h3,_uncompactCells:e1,_uncompactCellsSize:Y3,_vertexToLatLng:c3,establishStackSpace:M1,stackAlloc:F1,stackRestore:U1,stackSave:z1}}(oQ,tQ,q6),AU=Q.___divdi3=d.___divdi3,SU=Q.___muldi3=d.___muldi3,PU=Q.___remdi3=d.___remdi3,RU=Q.___uremdi3=d.___uremdi3,IU=Q._areNeighborCells=d._areNeighborCells,wU=Q._bitshift64Ashr=d._bitshift64Ashr,HU=Q._bitshift64Lshr=d._bitshift64Lshr,LU=Q._bitshift64Shl=d._bitshift64Shl,jU=Q._calloc=d._calloc,TU=Q._cellAreaKm2=d._cellAreaKm2,xU=Q._cellAreaM2=d._cellAreaM2,EU=Q._cellAreaRads2=d._cellAreaRads2,yU=Q._cellToBoundary=d._cellToBoundary,kU=Q._cellToCenterChild=d._cellToCenterChild,vU=Q._cellToChildPos=d._cellToChildPos,_U=Q._cellToChildren=d._cellToChildren,$U=Q._cellToChildrenSize=d._cellToChildrenSize,hU=Q._cellToLatLng=d._cellToLatLng,gU=Q._cellToLocalIj=d._cellToLocalIj,fU=Q._cellToParent=d._cellToParent,mU=Q._cellToVertex=d._cellToVertex,bU=Q._cellToVertexes=d._cellToVertexes,uU=Q._cellsToDirectedEdge=d._cellsToDirectedEdge,pU=Q._cellsToLinkedMultiPolygon=d._cellsToLinkedMultiPolygon,cU=Q._childPosToCell=d._childPosToCell,sU=Q._compactCells=d._compactCells,nU=Q._destroyLinkedMultiPolygon=d._destroyLinkedMultiPolygon,rU=Q._directedEdgeToBoundary=d._directedEdgeToBoundary,dU=Q._directedEdgeToCells=d._directedEdgeToCells,lU=Q._edgeLengthKm=d._edgeLengthKm,iU=Q._edgeLengthM=d._edgeLengthM,oU=Q._edgeLengthRads=d._edgeLengthRads,aQ=Q._emscripten_replace_memory=d._emscripten_replace_memory,tU=Q._free=d._free,aU=Q._getBaseCellNumber=d._getBaseCellNumber,eU=Q._getDirectedEdgeDestination=d._getDirectedEdgeDestination,YM=Q._getDirectedEdgeOrigin=d._getDirectedEdgeOrigin,VM=Q._getHexagonAreaAvgKm2=d._getHexagonAreaAvgKm2,XM=Q._getHexagonAreaAvgM2=d._getHexagonAreaAvgM2,WM=Q._getHexagonEdgeLengthAvgKm=d._getHexagonEdgeLengthAvgKm,KM=Q._getHexagonEdgeLengthAvgM=d._getHexagonEdgeLengthAvgM,JM=Q._getIcosahedronFaces=d._getIcosahedronFaces,ZM=Q._getNumCells=d._getNumCells,QM=Q._getPentagons=d._getPentagons,GM=Q._getRes0Cells=d._getRes0Cells,FM=Q._getResolution=d._getResolution,zM=Q._greatCircleDistanceKm=d._greatCircleDistanceKm,UM=Q._greatCircleDistanceM=d._greatCircleDistanceM,MM=Q._greatCircleDistanceRads=d._greatCircleDistanceRads,qM=Q._gridDisk=d._gridDisk,BM=Q._gridDiskDistances=d._gridDiskDistances,DM=Q._gridDistance=d._gridDistance,NM=Q._gridPathCells=d._gridPathCells,CM=Q._gridPathCellsSize=d._gridPathCellsSize,OM=Q._gridRing=d._gridRing,AM=Q._gridRingUnsafe=d._gridRingUnsafe,SM=Q._i64Add=d._i64Add,PM=Q._i64Subtract=d._i64Subtract,RM=Q._isPentagon=d._isPentagon,IM=Q._isResClassIII=d._isResClassIII,wM=Q._isValidCell=d._isValidCell,HM=Q._isValidDirectedEdge=d._isValidDirectedEdge,LM=Q._isValidVertex=d._isValidVertex,jM=Q._latLngToCell=d._latLngToCell,TM=Q._llvm_ctlz_i64=d._llvm_ctlz_i64,xM=Q._llvm_maxnum_f64=d._llvm_maxnum_f64,EM=Q._llvm_minnum_f64=d._llvm_minnum_f64,yM=Q._llvm_round_f64=d._llvm_round_f64,kM=Q._localIjToCell=d._localIjToCell,vM=Q._malloc=d._malloc,_M=Q._maxFaceCount=d._maxFaceCount,$M=Q._maxGridDiskSize=d._maxGridDiskSize,hM=Q._maxPolygonToCellsSize=d._maxPolygonToCellsSize,gM=Q._maxPolygonToCellsSizeExperimental=d._maxPolygonToCellsSizeExperimental,fM=Q._memcpy=d._memcpy,mM=Q._memset=d._memset,bM=Q._originToDirectedEdges=d._originToDirectedEdges,uM=Q._pentagonCount=d._pentagonCount,pM=Q._polygonToCells=d._polygonToCells,cM=Q._polygonToCellsExperimental=d._polygonToCellsExperimental,sM=Q._readInt64AsDoubleFromPointer=d._readInt64AsDoubleFromPointer,nM=Q._res0CellCount=d._res0CellCount,rM=Q._round=d._round,dM=Q._sbrk=d._sbrk,lM=Q._sizeOfCellBoundary=d._sizeOfCellBoundary,iM=Q._sizeOfCoordIJ=d._sizeOfCoordIJ,oM=Q._sizeOfGeoLoop=d._sizeOfGeoLoop,tM=Q._sizeOfGeoPolygon=d._sizeOfGeoPolygon,aM=Q._sizeOfH3Index=d._sizeOfH3Index,eM=Q._sizeOfLatLng=d._sizeOfLatLng,Yq=Q._sizeOfLinkedGeoPolygon=d._sizeOfLinkedGeoPolygon,Vq=Q._uncompactCells=d._uncompactCells,Xq=Q._uncompactCellsSize=d._uncompactCellsSize,Wq=Q._vertexToLatLng=d._vertexToLatLng,Kq=Q.establishStackSpace=d.establishStackSpace,zK=Q.stackAlloc=d.stackAlloc,eQ=Q.stackRestore=d.stackRestore,Y1=Q.stackSave=d.stackSave;if(Q.asm=d,Q.cwrap=j8,Q.setValue=Y8,Q.getValue=G8,c0){if(!KK(c0))c0=S(c0);{mQ("memory initializer");var mV=function($){if($.byteLength)$=new Uint8Array($);if(V6.set($,J8),Q.memoryInitializerRequest)delete Q.memoryInitializerRequest.response;bQ("memory initializer")},UK=function(){w(c0,mV,function(){throw"could not load memory initializer "+c0})},MK=fV(c0);if(MK)mV(MK.buffer);else if(Q.memoryInitializerRequest){var qK=function(){var $=Q.memoryInitializerRequest,p=$.response;if($.status!==200&&$.status!==0){var X8=fV(Q.memoryInitializerRequestURL);if(X8)p=X8.buffer;else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+$.status+", retrying "+c0),UK();return}}mV(p)};if(Q.memoryInitializerRequest.response)setTimeout(qK,0);else Q.memoryInitializerRequest.addEventListener("load",qK)}else UK()}}var x9;f7=function $(){if(!x9)bV();if(!x9)f7=$};function bV($){if($=$||D,yY>0)return;if(p0(),yY>0)return;function p(){if(x9)return;if(x9=!0,e)return;if(T9(),_V(),Q.onRuntimeInitialized)Q.onRuntimeInitialized();XK()}if(Q.setStatus)Q.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Q.setStatus("")},1),p()},1);else p()}Q.run=bV;function kY($){if(Q.onAbort)Q.onAbort($);throw $+="",T($),v($),e=!0,"abort("+$+"). Build with -s ASSERTIONS=1 for more info."}if(Q.abort=kY,Q.preInit){if(typeof Q.preInit=="function")Q.preInit=[Q.preInit];while(Q.preInit.length>0)Q.preInit.pop()()}return bV(),J}(typeof j0==="object"?j0:{}),L8="number",P8=L8,A9=L8,w8=L8,H8=L8,y6=L8,Q8=L8,Cz=[["sizeOfH3Index",L8],["sizeOfLatLng",L8],["sizeOfCellBoundary",L8],["sizeOfGeoLoop",L8],["sizeOfGeoPolygon",L8],["sizeOfLinkedGeoPolygon",L8],["sizeOfCoordIJ",L8],["readInt64AsDoubleFromPointer",L8],["isValidCell",A9,[w8,H8]],["latLngToCell",P8,[L8,L8,y6,Q8]],["cellToLatLng",P8,[w8,H8,Q8]],["cellToBoundary",P8,[w8,H8,Q8]],["maxGridDiskSize",P8,[L8,Q8]],["gridDisk",P8,[w8,H8,L8,Q8]],["gridDiskDistances",P8,[w8,H8,L8,Q8,Q8]],["gridRing",P8,[w8,H8,L8,Q8]],["gridRingUnsafe",P8,[w8,H8,L8,Q8]],["maxPolygonToCellsSize",P8,[Q8,y6,L8,Q8]],["polygonToCells",P8,[Q8,y6,L8,Q8]],["maxPolygonToCellsSizeExperimental",P8,[Q8,y6,L8,Q8]],["polygonToCellsExperimental",P8,[Q8,y6,L8,L8,L8,Q8]],["cellsToLinkedMultiPolygon",P8,[Q8,L8,Q8]],["destroyLinkedMultiPolygon",null,[Q8]],["compactCells",P8,[Q8,Q8,L8,L8]],["uncompactCells",P8,[Q8,L8,L8,Q8,L8,y6]],["uncompactCellsSize",P8,[Q8,L8,L8,y6,Q8]],["isPentagon",A9,[w8,H8]],["isResClassIII",A9,[w8,H8]],["getBaseCellNumber",L8,[w8,H8]],["getResolution",L8,[w8,H8]],["maxFaceCount",P8,[w8,H8,Q8]],["getIcosahedronFaces",P8,[w8,H8,Q8]],["cellToParent",P8,[w8,H8,y6,Q8]],["cellToChildren",P8,[w8,H8,y6,Q8]],["cellToCenterChild",P8,[w8,H8,y6,Q8]],["cellToChildrenSize",P8,[w8,H8,y6,Q8]],["cellToChildPos",P8,[w8,H8,y6,Q8]],["childPosToCell",P8,[L8,L8,w8,H8,y6,Q8]],["areNeighborCells",P8,[w8,H8,w8,H8,Q8]],["cellsToDirectedEdge",P8,[w8,H8,w8,H8,Q8]],["getDirectedEdgeOrigin",P8,[w8,H8,Q8]],["getDirectedEdgeDestination",P8,[w8,H8,Q8]],["isValidDirectedEdge",A9,[w8,H8]],["directedEdgeToCells",P8,[w8,H8,Q8]],["originToDirectedEdges",P8,[w8,H8,Q8]],["directedEdgeToBoundary",P8,[w8,H8,Q8]],["gridDistance",P8,[w8,H8,w8,H8,Q8]],["gridPathCells",P8,[w8,H8,w8,H8,Q8]],["gridPathCellsSize",P8,[w8,H8,w8,H8,Q8]],["cellToLocalIj",P8,[w8,H8,w8,H8,L8,Q8]],["localIjToCell",P8,[w8,H8,Q8,L8,Q8]],["getHexagonAreaAvgM2",P8,[y6,Q8]],["getHexagonAreaAvgKm2",P8,[y6,Q8]],["getHexagonEdgeLengthAvgM",P8,[y6,Q8]],["getHexagonEdgeLengthAvgKm",P8,[y6,Q8]],["greatCircleDistanceM",L8,[Q8,Q8]],["greatCircleDistanceKm",L8,[Q8,Q8]],["greatCircleDistanceRads",L8,[Q8,Q8]],["cellAreaM2",P8,[w8,H8,Q8]],["cellAreaKm2",P8,[w8,H8,Q8]],["cellAreaRads2",P8,[w8,H8,Q8]],["edgeLengthM",P8,[w8,H8,Q8]],["edgeLengthKm",P8,[w8,H8,Q8]],["edgeLengthRads",P8,[w8,H8,Q8]],["getNumCells",P8,[y6,Q8]],["getRes0Cells",P8,[Q8]],["res0CellCount",L8],["getPentagons",P8,[L8,Q8]],["pentagonCount",L8],["cellToVertex",P8,[w8,H8,L8,Q8]],["cellToVertexes",P8,[w8,H8,Q8]],["vertexToLatLng",P8,[w8,H8,Q8]],["isValidVertex",A9,[w8,H8]]],Oz=0,Az=1,Sz=2,Pz=3,Rz=4,Iz=5,wz=6,Hz=7,Lz=8,jz=9,Tz=10,xz=11,Ez=12,yz=13,kz=14,vz=15,m6={};m6[Oz]="Success";m6[Az]="The operation failed but a more specific error is not available";m6[Sz]="Argument was outside of acceptable range";m6[Pz]="Latitude or longitude arguments were outside of acceptable range";m6[Rz]="Resolution argument was outside of acceptable range";m6[Iz]="Cell argument was not valid";m6[wz]="Directed edge argument was not valid";m6[Hz]="Undirected edge argument was not valid";m6[Lz]="Vertex argument was not valid";m6[jz]="Pentagon distortion was encountered";m6[Tz]="Duplicate input";m6[xz]="Cell arguments were not neighbors";m6[Ez]="Cell arguments had incompatible resolutions";m6[yz]="Memory allocation failed";m6[kz]="Bounds of provided memory were insufficient";m6[vz]="Mode or flags argument was not valid";var _z=1000,$z=1001,tZ=1002,RV={};RV[_z]="Unknown unit";RV[$z]="Array length out of bounds";RV[tZ]="Got unexpected null value for H3 index";var hz="Unknown error";function aZ(J,Q,U){var M=U&&"value"in U,D=Error((J[Q]||hz)+" (code: "+Q+(M?", value: "+U.value:"")+")");return D.code=Q,D}function gz(J,Q){var U=arguments.length===2?{value:Q}:{};return aZ(m6,J,U)}function fz(J,Q){var U=arguments.length===2?{value:Q}:{};return aZ(RV,J,U)}function mz(J){if(J!==0)throw gz(J)}var QY={};Cz.forEach(function(Q){QY[Q[0]]=j0.cwrap.apply(j0,Q)});var PV=16;var bz=4;var uz=8;var uW=QY.sizeOfH3Index(),pz=QY.sizeOfLatLng(),n4=QY.sizeOfCellBoundary(),r4=QY.sizeOfGeoPolygon(),d4=QY.sizeOfGeoLoop(),l4=QY.sizeOfLinkedGeoPolygon(),i4=QY.sizeOfCoordIJ();function cz(J){if(!J)throw fz(tZ);return J}var o4=Math.pow(2,32)-1;function oZ(J){if(J>=0)return J.toString(PV);J=J&2147483647;var Q=eZ(8,J.toString(PV)),U=(parseInt(Q[0],PV)+8).toString(PV);return Q=U+Q.substring(1),Q}function sz(J,Q){return oZ(Q)+eZ(8,oZ(J))}function eZ(J,Q){var U=J-Q.length,M="";for(var D=0;D<U;D++)M+="0";return M=M+Q,M}var t4=Math.pow(2,32);function nz(J,Q){if(Q===void 0)Q=0;var U=j0.getValue(J+uW*Q,"i32"),M=j0.getValue(J+uW*Q+bz,"i32");return M?sz(U,M):null}function YQ(J,Q,U){var M=j0._malloc(pz);j0.HEAPF64.set([J,Q].map(rz),M/uz);var D=j0._malloc(uW);try{return mz(QY.latLngToCell(M,U,D)),cz(nz(D))}finally{j0._free(D),j0._free(M)}}function rz(J){return J*Math.PI/180}function VQ(J){let Q=new r;for(let U=J.length-1;U>=0;U--)Q=new Y0(J[U],Q);return Q}function pW(J){return fetch(J).then((Q)=>{return Q.text().then((U)=>{return new i([Q.status,U])})}).catch((Q)=>{return new W8(Q.message||"Network error")})}function XQ(J,Q){return fetch(J,{method:"POST",headers:{"Content-Type":"application/json"},body:Q}).then((U)=>{return U.text().then((M)=>{return new i([U.status,M])})}).catch((U)=>{return new W8(U.message||"Network error")})}function cW(J){if(!J||J.trim().length<2)return Promise.resolve(new i(VQ([])));let Q=new URL("https://nominatim.openstreetmap.org/search");return Q.searchParams.set("format","json"),Q.searchParams.set("q",J.trim()),Q.searchParams.set("limit","5"),Q.searchParams.set("addressdetails","1"),fetch(Q.toString(),{headers:{"User-Agent":"lustre-fullstack-app/1.0"}}).then((U)=>{if(!U.ok)throw new W8(`Nominatim API error: ${U.statusText}`);return U.json()}).then((U)=>{return new i(VQ(U))}).catch((U)=>{return console.error("Error fetching locations from Nominatim:",U),new W8(U.message||"Failed to fetch locations")})}function sW(J,Q,U=5){return YQ(J,Q,U)}async function WQ(J){console.log("processFileFromInputId called for:",J);let Q=document.getElementById(J);if(!Q)return console.error("Input element not found:",J),new W8("Input element not found");let U=Q.files?.[0];if(!U)return console.log("No file selected"),new W8("No file selected");if(!U.type.startsWith("image/"))return console.log("File is not an image:",U.type),new W8("File is not an image");try{let M=URL.createObjectURL(U);console.log("Created preview URL:",M);let D=await U.arrayBuffer(),C=new Uint8Array(D),S=Array.from(C).map((T)=>String.fromCharCode(T)).join(""),w=btoa(S);return console.log("Converted to base64, length:",w.length),new i({preview_url:M,base64_data:w,mime_type:U.type})}catch(M){return console.error("Failed to process file:",M),new W8(M.message||"Failed to process file")}}function KQ(){return M8(I([n("space-y-8")]),I([M8(I([]),I([m0(I([n("text-2xl font-bold text-white mb-4")]),I([S8("Welcome to Atmosphere Conf")]))]))]))}class IV extends m{}class _7 extends m{}class JQ extends m{}class ZQ extends m{}class eY extends m{}function S9(J,Q,U,M){let D;if(U instanceof ZQ)D="px-3 py-1.5 text-xs";else if(U instanceof eY)D="px-4 py-2 text-sm";else D="px-6 py-3 text-base";let C=D,S;if(Q instanceof IV)S="text-zinc-400 border border-zinc-800 hover:border-zinc-700 hover:text-zinc-300 rounded";else if(Q instanceof _7)S="text-zinc-300 bg-zinc-800 hover:bg-zinc-700 rounded";else if(Q instanceof JQ)S="text-zinc-500 hover:text-zinc-300 px-2 py-1";else S="bg-red-900 text-red-100 border border-red-800 hover:bg-red-800 hover:border-red-700 rounded";let w=S,T=C+" "+w+" transition-colors cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed";return LY(g(n(T),J),M)}function P9(J){return y7(g(n("w-full px-3 py-2 bg-zinc-900 border border-zinc-800 rounded text-sm text-zinc-300 focus:outline-none focus:border-zinc-700 disabled:opacity-50 disabled:cursor-not-allowed"),J))}function FQ(){return M8(I([n("flex items-center justify-center min-h-[60vh]")]),I([M8(I([n("w-full max-w-[300px] space-y-4")]),I([E7(I([KV("POST"),WV("/oauth/authorize"),n("space-y-4")]),I([M8(I([]),I([KY(I([RJ("loginHint"),n("block text-sm font-medium text-zinc-400 mb-2")]),I([S8("Handle or PDS Host")])),P9(I([XV("loginHint"),IJ("loginHint"),X0("text"),IY("user.bsky.social"),Z6("required","true")]))])),S9(I([X0("submit"),n("w-full justify-center")]),new _7,new eY,I([S8("Sign In")]))])),M8(I([n("text-xs text-zinc-500")]),I([R6(I([]),I([S8("Examples: user.bsky.social, pds.example.com")])),R6(I([n("mt-2")]),I([S8("Don't have an account? "),HY(I([RY("https://bsky.app"),CJ("_blank"),Z6("rel","noopener noreferrer"),n("text-zinc-400 hover:text-zinc-300 underline")]),I([S8("Create one on Bluesky")]))]))]))]))]))}class zQ extends m{}class UQ extends m{}class wV extends m{}class nW extends m{}function HV(J,Q,U){let M;if(U instanceof zQ)M="w-8 h-8";else if(U instanceof UQ)M="w-12 h-12";else if(U instanceof wV)M="w-16 h-16";else M="w-24 h-24";let C=M+" rounded-full border-2 border-zinc-700 bg-zinc-800";if(J instanceof K8){let S=J[0];return sJ(I([AJ(S),OJ(Q),n(C+" object-cover")]))}else{let S,T=mY(Q," "),v=q7(T,(Y8)=>{let G8=H5(Y8);if(G8 instanceof i){let e=G8[0];return new i(s9(e))}else return new W8(void 0)}),f=EX(v,2);S=$0(f,"");let b=S,o;if(b==="")o="?";else o=b;let J8=o;return M8(I([n(C+" flex items-center justify-center text-zinc-400 font-semibold")]),I([S8(J8)]))}}function qQ(J,Q){return M8(I([n("space-y-8")]),I([M8(I([n("flex items-start gap-6")]),I([HV(J.avatar_url,q0(J.display_name,J.did),new nW),M8(I([n("flex-1 space-y-2")]),I([m0(I([n("text-3xl font-bold text-white")]),I([S8(q0(J.display_name,J.did))])),(()=>{let U=J.handle;if(U instanceof K8){let M=U[0];return R6(I([n("text-zinc-300 text-base")]),I([S8("@"+M)]))}else return M8(I([]),I([]))})(),R6(I([n("text-zinc-500 text-sm font-mono")]),I([S8(J.did)])),(()=>{let U=J.home_town;if(U instanceof K8){let M=U[0];return R6(I([n("text-zinc-400 text-sm")]),I([S8("\uD83D\uDCCD "+M.name)]))}else return M8(I([]),I([]))})()])),(()=>{let U=J.handle;if(U instanceof K8&&Q instanceof K8){let M=U[0],D=Q[0];if(M===D)return HY(I([RY("/profile/"+M+"/edit"),n("px-4 py-2 text-sm text-zinc-400 border border-zinc-800 hover:border-zinc-700 hover:text-zinc-300 rounded transition-colors cursor-pointer")]),I([S8("Edit Profile")]));else return f0()}else return f0()})()])),M8(I([n("space-y-6 pt-6 border-t border-zinc-800")]),I([(()=>{let U=J.description;if(U instanceof K8){let M=U[0];return M8(I([n("space-y-3")]),I([MW(I([n("text-lg font-semibold text-white")]),I([S8("About")])),R6(I([n("text-zinc-400")]),I([S8(M)]))]))}else return M8(I([]),I([]))})(),(()=>{let U=J.interests;if(U instanceof K8){let M=U[0];if(M instanceof r)return M8(I([]),I([]));else return M8(I([n("space-y-3")]),I([MW(I([n("text-lg font-semibold text-white")]),I([S8("Interests")])),M8(I([n("flex flex-wrap gap-2")]),$6(M,(D)=>{return cJ(I([n("px-3 py-1 bg-zinc-800 text-zinc-300 rounded-full text-sm")]),I([S8(D)]))}))]))}else return M8(I([]),I([]))})()]))]))}function oz(J){if(J==="input")return!0;else if(J==="change")return!0;else if(J==="focus")return!0;else if(J==="focusin")return!0;else if(J==="focusout")return!0;else if(J==="blur")return!0;else if(J==="select")return!0;else return!1}function Y7(J,Q){return DJ(J,d0(Q,(U)=>{return new G9(!1,!1,U)}),v8,tX,tX,oz(J),0,0)}function tz(J){if(J instanceof E6)return new E6(J.kind,J.name,J.handler,J.include,NJ,J.stop_propagation,J.immediate,J.debounce,J.throttle);else return J}function BQ(J,Q){if(J instanceof E6)return new E6(J.kind,J.name,J.handler,J.include,J.prevent_default,J.stop_propagation,J.immediate,xX(0,Q),J.throttle);else return J}function R9(J){return Y7("click",P6(J))}function $7(J){return Y7("input",l9(I(["target","value"]),r8,(Q)=>{return P6(J(Q))}))}function az(){let Q=b8(0,r8,(M)=>{return b8(1,$X(d0(r8,(D)=>{return new i(D)}),I([P6(new W8(void 0))])),(D)=>{let S=S7(D,(w)=>{return mZ(M,w)});return P6(S)})}),U=X9(Q);return d0(U,s5)}function DQ(J){let Q=Y7("submit",l9(I(["detail","formData"]),az(),(U)=>{let D=J(U);return P6(D)}));return tz(Q)}function NQ(J){return Y7("focus",P6(J))}function CQ(J){return Y7("blur",P6(J))}class AQ extends m{constructor(J,Q,U,M,D){super();this.display_name=J,this.lat=Q,this.lon=U,this.place_id=M,this.address=D}}class SQ extends m{constructor(J,Q,U){super();this.city=J,this.state=Q,this.country=U}}class I9 extends m{constructor(J,Q,U,M){super();this.name=J,this.lat=Q,this.lon=U,this.h3_index=M}}function ez(){return b8("city",N0(r8),(J)=>{return b8("state",N0(r8),(Q)=>{return b8("country",N0(r8),(U)=>{return P6(new SQ(q0(J,""),q0(Q,""),q0(U,"")))})})})}function PQ(){return b8("display_name",r8,(J)=>{return b8("lat",r8,(Q)=>{return b8("lon",r8,(U)=>{return b8("place_id",C7,(M)=>{return b8("address",ez(),(D)=>{return P6(new AQ(J,Q,U,M,D))})})})})})}class b0 extends m{constructor(J,Q,U,M,D){super();this.input_value=J,this.selected_location=Q,this.suggestions=U,this.is_loading=M,this.show_dropdown=D}}class dW extends m{constructor(J){super();this[0]=J}}class lW extends m{constructor(J){super();this[0]=J}}class iW extends m{}class oW extends m{}class rW extends m{constructor(J){super();this[0]=J}}function tW(J){return new b0((()=>{if(J instanceof K8)return J[0].name;else return""})(),J,I([]),!1,!1)}function IQ(J){return g0((Q)=>{let U=cW(J),M=i0(U,(D)=>{if(D instanceof i){let C=D[0],S=q7(C,(w)=>{return H0(w,PQ())});return Q(new rW(new i(S)))}else{let C=D[0];return Q(new rW(new W8(C)))}});A7(M,(D)=>{return O7(void 0)});return})}function wQ(J){let Q=I([]),U,M=J.address.city;if(M==="")U=Q;else U=I0(Q,I([M]));let D=U,C,S=J.address.state;if(S==="")C=D;else C=I0(D,I([S]));let w=C,T,v=J.address.country;if(v==="")T=w;else T=I0(w,I([v]));let f=T;if(f instanceof r)return J.display_name;else return $0(f,", ")}function HQ(J,Q){if(Q instanceof dW){let U=Q[0],M=new b0(U,J.selected_location,J.suggestions,J.is_loading,J.show_dropdown);if(r9(U)>=2)return[new b0(M.input_value,M.selected_location,M.suggestions,!0,!0),IQ(U)];else return[new b0(M.input_value,new D8,I([]),M.is_loading,!1),d8()]}else if(Q instanceof lW){let U=Q[0],M,D=p9(U.lat);if(D instanceof i)M=D[0];else M=0;let C=M,S,w=p9(U.lon);if(w instanceof i)S=w[0];else S=0;let T=S,v=sW(C,T),f=wQ(U),b=new I9(f,C,T,v);return[new b0(f,new K8(b),I([]),J.is_loading,!1),d8()]}else if(Q instanceof iW)if(r9(J.input_value)>=2){let M=new b0(J.input_value,J.selected_location,J.suggestions,!0,!0);return[M,IQ(M.input_value)]}else return[J,d8()];else if(Q instanceof oW)return[new b0(J.input_value,J.selected_location,J.suggestions,J.is_loading,!1),d8()];else{let U=Q[0];if(U instanceof i){let M=U[0];return[new b0(J.input_value,J.selected_location,M,!1,!O6(M,I([]))),d8()]}else return[new b0(J.input_value,J.selected_location,I([]),!1,J.show_dropdown),d8()]}}function YU(J,Q,U){return y7(I([X0("text"),F9(J),IY(Q),n("w-full px-3 py-2 pr-10 bg-zinc-900 border border-zinc-800 rounded text-sm text-zinc-300 focus:outline-none focus:border-zinc-700"),(()=>{let M=$7((D)=>{return new dW(D)});return BQ(M,300)})(),NQ(new iW),CQ(new oW)]))}function VU(){return M8(I([n("absolute right-3 top-1/2 -translate-y-1/2 text-zinc-500")]),I([S8("\uD83D\uDCCD")]))}function XU(J){return LY(I([X0("button"),n("w-full px-4 py-3 text-left hover:bg-zinc-800 transition-colors border-b border-zinc-800 last:border-b-0"),R9(new lW(J))]),I([M8(I([n("flex items-center gap-2")]),I([M8(I([n("text-zinc-500 flex-shrink-0")]),I([S8("\uD83D\uDCCD")])),M8(I([n("text-sm text-zinc-300")]),I([S8(wQ(J))]))]))]))}function WU(J,Q){if(J&&!O6(Q,I([])))return M8(I([n("absolute z-50 w-full mt-1 bg-zinc-900 border border-zinc-800 rounded-lg shadow-lg max-h-60 overflow-y-auto"),Z6("onmousedown","event.preventDefault()")]),$6(Q,XU));else return f0()}function LQ(J,Q){return M8(I([n("relative")]),I([M8(I([n("relative")]),I([YU(J.input_value,Q,J.is_loading),VU()])),WU(J.show_dropdown,J.suggestions)]))}function TQ(J,Q){return nJ(g(n("w-full px-3 py-2 bg-zinc-900 border border-zinc-800 rounded text-sm text-zinc-300 focus:outline-none focus:border-zinc-700 disabled:opacity-50 disabled:cursor-not-allowed resize-y min-h-[100px]"),J),Q)}class LV extends m{constructor(J){super();this[0]=J}}class jV extends m{constructor(J){super();this[0]=J}}class TV extends m{constructor(J){super();this[0]=J}}class xV extends m{constructor(J){super();this[0]=J}}class EV extends m{constructor(J){super();this[0]=J}}class w9 extends m{constructor(J){super();this[0]=J}}class yV extends m{}class V7 extends m{constructor(J){super();this[0]=J}}class aW extends m{}class P0 extends m{constructor(J,Q,U,M,D,C,S,w,T){super();this.display_name=J,this.description=Q,this.location_input=U,this.interests=M,this.avatar_preview_url=D,this.avatar_file_data=C,this.success_message=S,this.error_message=w,this.is_saving=T}}function xY(J){if(J instanceof K8){let Q=J[0],U,M=Q.interests;if(M instanceof K8){let T=M[0];U=$0(T,", ")}else U="";let D=U,C,S=Q.home_town;if(S instanceof K8){let T=S[0];C=new K8(new I9(T.name,0,0,T.h3_index))}else C=S;let w=C;return new P0(q0(Q.display_name,""),q0(Q.description,""),tW(w),D,Q.avatar_url,new D8,new D8,new D8,!1)}else return new P0("","",tW(new D8),"",new D8,new D8,new D8,new D8,!1)}function xQ(J,Q,U,M){return M8(I([n("space-y-8")]),I([M8(I([n("border-b border-zinc-800 pb-6")]),I([LY(I([n("inline-flex items-center gap-2 text-zinc-400 hover:text-zinc-200 transition-colors mb-4"),R9(M(new aW))]),I([S8("← Back to Profile")])),m0(I([n("text-3xl font-bold text-white mb-2")]),I([S8("Profile Settings")])),R6(I([n("text-zinc-500 text-sm")]),I([S8("@"+U)]))])),(()=>{let D=Q.success_message;if(D instanceof K8){let C=D[0];return M8(I([n("p-4 bg-green-900/20 border border-green-800 rounded-lg text-green-300 text-sm")]),I([S8(C)]))}else return f0()})(),(()=>{let D=Q.error_message;if(D instanceof K8){let C=D[0];return M8(I([n("p-4 bg-red-900/20 border border-red-800 rounded-lg text-red-300 text-sm")]),I([S8(C)]))}else return f0()})(),E7(I([n("space-y-6"),DQ((D)=>{return M(new yV)})]),I([M8(I([n("bg-zinc-900 border border-zinc-800 rounded-lg p-6 space-y-6")]),I([M8(I([n("space-y-2")]),I([KY(I([n("text-sm font-medium text-white")]),I([S8("Avatar")])),M8(I([n("flex items-center gap-4")]),I([HV(Q.avatar_preview_url,q0((()=>{return U5(J,(C)=>{return C.display_name})})(),U),new wV),KY(I([Z6("for","avatar-upload"),n("cursor-pointer px-4 py-2 bg-zinc-800 hover:bg-zinc-700 text-zinc-300 rounded text-sm transition-colors")]),I([S8("Change Avatar")])),y7(I([X0("file"),XV("avatar-upload"),SJ(I(["image/*"])),n("hidden"),Y7("change",d0(d9,(D)=>{return M(new xV(I([])))}))]))]))])),M8(I([n("space-y-2")]),I([KY(I([n("text-sm font-medium text-white")]),I([S8("Display Name")])),P9(I([X0("text"),IY("Your display name"),F9(Q.display_name),$7((D)=>{return M(new LV(D))})]))])),M8(I([n("space-y-2")]),I([KY(I([n("text-sm font-medium text-white")]),I([S8("Description")])),TQ(I([IY("Tell us about yourself..."),$7((D)=>{return M(new jV(D))})]),Q.description)])),M8(I([n("space-y-2")]),I([KY(I([n("text-sm font-medium text-white")]),I([S8("Home Town")])),(()=>{let D=LQ(Q.location_input,"Search for your hometown...");return uJ(D,(C)=>{return M(new w9(C))})})()])),M8(I([n("space-y-2")]),I([KY(I([n("text-sm font-medium text-white")]),I([S8("Interests")])),R6(I([n("text-xs text-zinc-400")]),I([S8("Enter your interests, separated by commas")])),P9(I([X0("text"),IY("e.g., web development, photography, hiking"),F9(Q.interests),$7((D)=>{return M(new TV(D))})]))]))])),M8(I([n("flex justify-end gap-3")]),I([S9(I([X0("button"),R9(M(new aW))]),new IV,new eY,I([S8("Cancel")])),S9(I([X0("submit"),PJ(Q.is_saving)]),new _7,new eY,I([S8((()=>{if(Q.is_saving)return"Saving...";else return"Save Changes"})())]))]))]))]))}class kV extends m{constructor(J,Q){super();this.name=J,this.handle=Q}}function ZU(J){if(J instanceof K8){let Q=J[0],U,M=Q.name;if(M instanceof K8)U=M[0];else U="@"+Q.handle;let D=U;return M8(I([n("flex gap-4 items-center")]),I([HY(I([RY("/profile/"+Q.handle),n("px-2 py-1 text-zinc-400 hover:text-zinc-200 transition-colors")]),I([S8(D)])),E7(I([WV("/logout"),KV("post"),n("inline")]),I([LY(I([X0("submit"),n("px-2 py-1 text-zinc-500 hover:text-zinc-300 transition-colors cursor-pointer")]),I([S8("Sign Out")]))]))]))}else return HY(I([RY("/login"),n("px-2 py-1 text-zinc-500 hover:text-zinc-300 transition-colors")]),I([S8("Sign In")]))}function EQ(J,Q){return M8(I([n("min-h-screen bg-zinc-950 text-zinc-300 font-mono")]),I([M8(I([n("max-w-4xl mx-auto px-6 py-12")]),I([M8(I([n("border-b border-zinc-800 pb-4")]),I([M8(I([n("flex items-end justify-between")]),I([HY(I([RY("/"),n("flex items-center gap-3 hover:opacity-80 transition-opacity")]),I([M8(I([]),I([pJ(I([n("text-2xl font-bold text-white")]),I([S8("atmosphere conf")]))]))])),M8(I([n("flex gap-4 text-xs items-center")]),I([ZU(J)]))]))])),M8(I([n("mb-8")]),I([])),M8(I([]),Q)]))]))}var GU="src/client.gleam";class H9 extends m{}class eW extends m{}class j9 extends m{constructor(J){super();this.handle=J}}class EY extends m{constructor(J){super();this.handle=J}}class g7 extends m{constructor(J){super();this.uri=J}}class vV extends m{}class GY extends m{}class u0 extends m{constructor(J){super();this[0]=J}}class L9 extends m{constructor(J){super();this.error=J}}class U6 extends m{constructor(J,Q,U,M){super();this.route=J,this.profile_state=Q,this.edit_form_data=U,this.current_user=M}}class YK extends m{constructor(J){super();this.route=J}}class VK extends m{constructor(J){super();this[0]=J}}class FY extends m{constructor(J){super();this[0]=J}}class yQ extends m{constructor(J){super();this[0]=J}}function FU(){let J=OV("#model"),Q=S7(J,AV),U=uY(Q,(M)=>{let D=cY(M,hX(I(["profile"]),SV()));return P7(D,void 0)});return DX(U)}function zU(){let J=OV("#model"),Q=S7(J,AV),U=uY(Q,(M)=>{let D=cY(M,hX(I(["user"]),b8("handle",r8,(C)=>{return P6(new kV(new D8,C))})));return P7(D,void 0)});return DX(U)}function kQ(J){let Q=o5(J.path);if(Q instanceof r)return new H9;else{let U=Q.tail;if(U instanceof r){let M=Q.head;if(M==="")return new H9;else if(M==="login")return new eW;else return new g7(J)}else{let M=U.tail;if(M instanceof r)if(Q.head==="profile"){let C=U.head;return new j9(C)}else return new g7(J);else if(M.tail instanceof r)if(Q.head==="profile")if(M.head==="edit"){let w=U.head;return new EY(w)}else return new g7(J);else return new g7(J);else return new g7(J)}}}function UU(J){let U=kQ(J);return new YK(U)}function MU(){return g0((J)=>{let U=pW("/api/user/current"),M=i0(U,(D)=>{if(D instanceof i){let C=D[0][0];if(C===200){let S=D[0][1],w=cY(S,b8("handle",r8,(T)=>{return P6(new kV(new D8,T))}));return J9(w,(T)=>{return"Failed to parse user JSON"})}else if(C===401)return new W8("Not authenticated");else return new W8("API request failed with status: "+Z0(C))}else return D});bX(M,(D)=>{return J(new yQ(D))});return})}function qU(J){let Q,U=gW();if(U instanceof i){let Y8=U[0];Q=kQ(Y8)}else Q=new H9;let M=Q,D=FU(),C=zU(),S;if(M instanceof j9)if(D instanceof K8){let Y8=D[0];S=[new U6(M,new u0(Y8),xY(new D8),C),d8()]}else S=[new U6(M,new L9("Profile not found"),xY(new D8),C),d8()];else if(M instanceof EY)if(D instanceof K8){let Y8=D[0];S=[new U6(M,new u0(Y8),xY(new K8(Y8)),C),d8()]}else S=[new U6(M,new L9("Profile not found"),xY(new D8),C),d8()];else S=[new U6(M,new vV,xY(new D8),C),d8()];let w=S,T,v;T=w[0],v=w[1];let f=sZ(UU),b;if(C instanceof K8)b=d8();else b=MU();let J8=ZV(I([f,v,b]));return[T,J8]}function h7(J){return g0((Q)=>{let U="/api/profile/"+J;N6("Fetching profile from: "+U);let M=pW(U),D=i0(M,(C)=>{if(N6("Body result: "+Y9(C)),C instanceof i){let S=C[0][0];if(S===200){let w=C[0][1];N6("Got 200 response, parsing JSON...");let T=cY(w,SV()),v=S7(T,(f)=>{return new K8(f)});return J9(v,(f)=>{return N6("JSON parse error: "+Y9(f)),"Failed to parse profile JSON"})}else if(S===404)return N6("Got 404 response"),new i(new D8);else return N6("Got status: "+Y9(S)),new W8("API request failed")}else{let S=C[0];return N6("Fetch error: "+S),new W8(S)}});bX(D,(C)=>{return Q(new VK(C))});return})}function BU(J){return g0((Q)=>{let U=WQ(J),M=i0(U,(D)=>{if(D instanceof i){let C=D[0];return N6("File processed successfully"),Q(new FY(new EV(C)))}else{let C=D[0];return N6("Failed to process file: "+C)}});A7(M,(D)=>{return O7(void 0)});return})}function DU(J,Q){return g0((U)=>{let M="/api/profile/"+J+"/update",D=I([]),C,S=Q.display_name;if(S==="")C=D;else C=g(["display_name",l6(S)],D);let w=C,T,v=Q.description;if(v==="")T=w;else T=g(["description",l6(v)],w);let f=T,b,o=Q.location_input.selected_location;if(o instanceof K8){let A8=o[0],h8=sY(I([["name",l6(A8.name)],["value",l6(A8.h3_index)]]));b=g(["home_town",h8],f)}else b=f;let J8=b,Y8,G8=Q.interests;if(G8==="")Y8=J8;else{let A8=G8,h8,Y6=mY(A8,","),D6=$6(Y6,w5);h8=S5(D6,(u8)=>{return u8!==""}),Y8=g(["interests",I7(h8,l6)],J8)}let e=Y8,N8,V8=Q.avatar_file_data;if(V8 instanceof K8){let A8=V8[0];if(A8.base64_data==="")N8=e;else N8=g(["avatar_base64",l6(A8.base64_data)],g(["avatar_mime_type",l6(A8.mime_type)],e))}else N8=e;let F8=N8,j8,u=sY(F8);j8=cX(u);let q8=j8;N6("Sending profile update: "+q8);let B8=XQ(M,q8),$8=i0(B8,(A8)=>{if(A8 instanceof i){let h8=A8[0][0];if(h8===200){let Y6=A8[0][1];N6("Profile saved successfully, parsing response...");let D6=cY(Y6,SV());if(D6 instanceof i){let q6=D6[0];return N6("Profile parsed successfully"),U(new FY(new V7(new i(q6))))}else return N6("Failed to parse profile response"),U(new FY(new V7(new W8("Failed to parse updated profile"))))}else{let Y6=h8,D6=A8[0][1];return N6("Save failed with status "+Z0(Y6)+": "+D6),U(new FY(new V7(new W8("Failed to save profile (status "+Z0(Y6)+")"))))}}else{let h8=A8[0];return N6("Save request failed: "+h8),U(new FY(new V7(new W8(h8))))}});A7($8,(A8)=>{return O7(void 0)});return})}function NU(J,Q){if(Q instanceof YK){let U=Q.route,M=new U6(U,J.profile_state,J.edit_form_data,J.current_user);if(U instanceof j9){let D=U.handle;N6("Navigating to profile: "+D);let C=M.profile_state;if(C instanceof u0){let w=C[0].handle;if(w instanceof K8)if(w[0]===D)return[M,d8()];else return[new U6(M.route,new GY,M.edit_form_data,M.current_user),h7(D)];else return[new U6(M.route,new GY,M.edit_form_data,M.current_user),h7(D)]}else return[new U6(M.route,new GY,M.edit_form_data,M.current_user),h7(D)]}else if(U instanceof EY){let D=U.handle;N6("Navigating to profile edit: "+D);let C,S=M.current_user;if(S instanceof K8)if(S[0].handle===D)C=!0;else C=!1;else C=!1;if(C){let T=M.profile_state;if(T instanceof u0){let v=T[0],f=v.handle;if(f instanceof K8)if(f[0]===D){let o=xY(new K8(v));return[new U6(M.route,M.profile_state,o,M.current_user),d8()]}else return[new U6(M.route,new GY,M.edit_form_data,M.current_user),h7(D)];else return[new U6(M.route,new GY,M.edit_form_data,M.current_user),h7(D)]}else return[new U6(M.route,new GY,M.edit_form_data,M.current_user),h7(D)]}else return N6("Unauthorized edit attempt, redirecting to profile view"),[M,mW("/profile/"+D,new D8,new D8)]}else return[M,d8()]}else if(Q instanceof VK){let U=Q[0];N6("Profile fetched result: "+Y9(U));let M;if(U instanceof i){let T=U[0];if(T instanceof K8){let v=T[0];M=new u0(v)}else M=new L9("Profile not found")}else{let T=U[0];M=new L9(T)}let D=M,C,S=J.route;if(D instanceof u0&&S instanceof EY){let T=D[0];C=xY(new K8(T))}else C=J.edit_form_data;let w=C;return[new U6(J.route,D,w,J.current_user),d8()]}else if(Q instanceof FY){let U=Q[0];if(U instanceof LV){let M=U[0],D,C=J.edit_form_data;D=new P0(M,C.description,C.location_input,C.interests,C.avatar_preview_url,C.avatar_file_data,C.success_message,C.error_message,C.is_saving);let S=D;return[new U6(J.route,J.profile_state,S,J.current_user),d8()]}else if(U instanceof jV){let M=U[0],D,C=J.edit_form_data;D=new P0(C.display_name,M,C.location_input,C.interests,C.avatar_preview_url,C.avatar_file_data,C.success_message,C.error_message,C.is_saving);let S=D;return[new U6(J.route,J.profile_state,S,J.current_user),d8()]}else if(U instanceof TV){let M=U[0],D,C=J.edit_form_data;D=new P0(C.display_name,C.description,C.location_input,M,C.avatar_preview_url,C.avatar_file_data,C.success_message,C.error_message,C.is_saving);let S=D;return[new U6(J.route,J.profile_state,S,J.current_user),d8()]}else if(U instanceof xV)return[J,BU("avatar-upload")];else if(U instanceof EV){let M=U[0],D,C=J.edit_form_data;D=new P0(C.display_name,C.description,C.location_input,C.interests,new K8(M.preview_url),new K8(M),C.success_message,C.error_message,C.is_saving);let S=D;return[new U6(J.route,J.profile_state,S,J.current_user),d8()]}else if(U instanceof w9){let M=U[0],D=HQ(J.edit_form_data.location_input,M),C,S;C=D[0],S=D[1];let w,T=J.edit_form_data;w=new P0(T.display_name,T.description,C,T.interests,T.avatar_preview_url,T.avatar_file_data,T.success_message,T.error_message,T.is_saving);let v=w;return[new U6(J.route,J.profile_state,v,J.current_user),(()=>{return wJ(S,(b)=>{return new FY(new w9(b))})})()]}else if(U instanceof yV){let M,D=J.edit_form_data;M=new P0(D.display_name,D.description,D.location_input,D.interests,D.avatar_preview_url,D.avatar_file_data,new D8,new D8,!0);let C=M,S=new U6(J.route,J.profile_state,C,J.current_user),w=S.route;if(w instanceof EY){let T=w.handle;return[S,DU(T,S.edit_form_data)]}else return[S,d8()]}else if(U instanceof V7){let M=U[0];if(M instanceof i){let D=M[0],C,S=J.edit_form_data;C=new P0(S.display_name,S.description,S.location_input,S.interests,S.avatar_preview_url,S.avatar_file_data,new K8("Profile updated successfully!"),new D8,!1);let w=C;return[new U6(J.route,new u0(D),w,J.current_user),d8()]}else{let D=M[0],C,S=J.edit_form_data;C=new P0(S.display_name,S.description,S.location_input,S.interests,S.avatar_preview_url,S.avatar_file_data,new D8,new K8(D),!1);let w=C;return[new U6(J.route,J.profile_state,w,J.current_user),d8()]}}else{let M=J.route;if(M instanceof EY){let D=M.handle;return[J,mW("/profile/"+D,new D8,new D8)]}else return[J,d8()]}}else{let U=Q[0],M;if(U instanceof i){let C=U[0];M=new K8(C)}else M=new D8;let D=M;return[new U6(J.route,J.profile_state,J.edit_form_data,D),d8()]}}function CU(){return M8(I([n("text-center py-12")]),I([m0(I([n("text-2xl font-bold text-white mb-4")]),I([S8("404 - Page Not Found")])),R6(I([n("text-zinc-400")]),I([S8("The page you're looking for doesn't exist.")]))]))}function OU(J){return EQ(J.current_user,I([(()=>{let Q=J.route;if(Q instanceof H9)return KQ();else if(Q instanceof eW)return FQ();else if(Q instanceof j9){let U=J.profile_state;if(U instanceof vV)return M8(I([n("text-center py-12")]),I([R6(I([n("text-zinc-400")]),I([S8("Loading profile...")]))]));else if(U instanceof GY)return M8(I([n("text-center py-12")]),I([R6(I([n("text-zinc-400")]),I([S8("Loading profile...")]))]));else if(U instanceof u0){let M=U[0],D,C=J.current_user;if(C instanceof K8){let w=C[0];D=new K8(w.handle)}else D=C;return qQ(M,D)}else{let M=U.error;return M8(I([n("text-center py-12")]),I([m0(I([n("text-2xl font-bold text-white mb-4")]),I([S8("Error")])),R6(I([n("text-zinc-400")]),I([S8(M)]))]))}}else if(Q instanceof EY){let U=Q.handle,M=J.profile_state;if(M instanceof vV)return M8(I([n("text-center py-12")]),I([R6(I([n("text-zinc-400")]),I([S8("Loading profile...")]))]));else if(M instanceof GY)return M8(I([n("text-center py-12")]),I([R6(I([n("text-zinc-400")]),I([S8("Loading profile...")]))]));else if(M instanceof u0){let D=M[0];return xQ(new K8(D),J.edit_form_data,U,(C)=>{return new FY(C)})}else{let D=M.error;return M8(I([n("text-center py-12")]),I([m0(I([n("text-2xl font-bold text-white mb-4")]),I([S8("Error")])),R6(I([n("text-zinc-400")]),I([S8(D)]))]))}}else return CU()})()]))}function vQ(){let J=$Z(qU,NU,OU),Q=hZ(J,"#app",void 0);if(!(Q instanceof i))throw m9("let_assert",GU,"client",29,"main","Pattern match failed, no pattern matched the value.",{value:Q,start:708,end:757,pattern_start:719,pattern_end:724});return}vQ();
1
1
+
class g{withFields(J){let Q=Object.keys(this).map((U)=>(U in J)?J[U]:this[U]);return new this.constructor(...Q)}}class $6{static fromArray(J,Q){let U=Q||new r;for(let q=J.length-1;q>=0;--q)U=new V0(J[q],U);return U}[Symbol.iterator](){return new P5(this)}toArray(){return[...this]}atLeastLength(J){let Q=this;while(J-- >0&&Q)Q=Q.tail;return Q!==void 0}hasLength(J){let Q=this;while(J-- >0&&Q)Q=Q.tail;return J===-1&&Q instanceof r}countLength(){let J=this,Q=0;while(J)J=J.tail,Q++;return Q-1}}function f(J,Q){return new V0(J,Q)}function A(J,Q){return $6.fromArray(J,Q)}class P5{#Y;constructor(J){this.#Y=J}next(){if(this.#Y instanceof r)return{done:!0};else{let{head:J,tail:Q}=this.#Y;return this.#Y=Q,{value:J,done:!1}}}}class r extends $6{}class V0 extends $6{constructor(J,Q){super();this.head=J,this.tail=Q}}class V9{bitSize;byteSize;bitOffset;rawBuffer;constructor(J,Q,U){if(!(J instanceof Uint8Array))throw globalThis.Error("BitArray can only be constructed from a Uint8Array");if(this.bitSize=Q??J.length*8,this.byteSize=Math.trunc((this.bitSize+7)/8),this.bitOffset=U??0,this.bitSize<0)throw globalThis.Error(`BitArray bit size is invalid: ${this.bitSize}`);if(this.bitOffset<0||this.bitOffset>7)throw globalThis.Error(`BitArray bit offset is invalid: ${this.bitOffset}`);if(J.length!==Math.trunc((this.bitOffset+this.bitSize+7)/8))throw globalThis.Error("BitArray buffer length is invalid");this.rawBuffer=J}byteAt(J){if(J<0||J>=this.byteSize)return;return Y9(this.rawBuffer,this.bitOffset,J)}equals(J){if(this.bitSize!==J.bitSize)return!1;let Q=Math.trunc(this.bitSize/8);if(this.bitOffset===0&&J.bitOffset===0){for(let q=0;q<Q;q++)if(this.rawBuffer[q]!==J.rawBuffer[q])return!1;let U=this.bitSize%8;if(U){let q=8-U;if(this.rawBuffer[Q]>>q!==J.rawBuffer[Q]>>q)return!1}}else{for(let q=0;q<Q;q++){let B=Y9(this.rawBuffer,this.bitOffset,q),N=Y9(J.rawBuffer,J.bitOffset,q);if(B!==N)return!1}let U=this.bitSize%8;if(U){let q=Y9(this.rawBuffer,this.bitOffset,Q),B=Y9(J.rawBuffer,J.bitOffset,Q),N=8-U;if(q>>N!==B>>N)return!1}}return!0}get buffer(){if(O5("buffer","Use BitArray.byteAt() or BitArray.rawBuffer instead"),this.bitOffset!==0||this.bitSize%8!==0)throw new globalThis.Error("BitArray.buffer does not support unaligned bit arrays");return this.rawBuffer}get length(){if(O5("length","Use BitArray.bitSize or BitArray.byteSize instead"),this.bitOffset!==0||this.bitSize%8!==0)throw new globalThis.Error("BitArray.length does not support unaligned bit arrays");return this.rawBuffer.length}}function Y9(J,Q,U){if(Q===0)return J[U]??0;else{let q=J[U]<<Q&255,B=J[U+1]>>8-Q;return q|B}}class wX{constructor(J){this.value=J}}var C5={};function O5(J,Q){if(C5[J])return;console.warn(`Deprecated BitArray.${J} property used in JavaScript FFI code. ${Q}.`),C5[J]=!0}class N7 extends g{static isResult(J){return J instanceof N7}}class l extends N7{constructor(J){super();this[0]=J}isOk(){return!0}}class W8 extends N7{constructor(J){super();this[0]=J}isOk(){return!1}}function S6(J,Q){let U=[J,Q];while(U.length){let q=U.pop(),B=U.pop();if(q===B)continue;if(!S5(q)||!S5(B))return!1;if(!BG(q,B)||GG(q,B)||FG(q,B)||zG(q,B)||UG(q,B)||qG(q,B)||MG(q,B))return!1;let S=Object.getPrototypeOf(q);if(S!==null&&typeof S.equals==="function")try{if(q.equals(B))continue;else return!1}catch{}let[w,T]=QG(q),v=w(q),m=w(B);if(v.length!==m.length)return!1;for(let u of v)U.push(T(q,u),T(B,u))}return!0}function QG(J){if(J instanceof Map)return[(Q)=>Q.keys(),(Q,U)=>Q.get(U)];else{let Q=J instanceof globalThis.Error?["message"]:[];return[(U)=>[...Q,...Object.keys(U)],(U,q)=>U[q]]}}function GG(J,Q){return J instanceof Date&&(J>Q||J<Q)}function FG(J,Q){return!(J instanceof V9)&&J.buffer instanceof ArrayBuffer&&J.BYTES_PER_ELEMENT&&!(J.byteLength===Q.byteLength&&J.every((U,q)=>U===Q[q]))}function zG(J,Q){return Array.isArray(J)&&J.length!==Q.length}function UG(J,Q){return J instanceof Map&&J.size!==Q.size}function qG(J,Q){return J instanceof Set&&(J.size!=Q.size||[...J].some((U)=>!Q.has(U)))}function MG(J,Q){return J instanceof RegExp&&(J.source!==Q.source||J.flags!==Q.flags)}function S5(J){return typeof J==="object"&&J!==null}function BG(J,Q){if(typeof J!=="object"&&typeof Q!=="object"&&(!J||!Q))return!1;if([Promise,WeakSet,WeakMap,Function].some((q)=>J instanceof q))return!1;return J.constructor===Q.constructor}function r9(J,Q,U,q,B,N,S){let w=new globalThis.Error(N);w.gleam_error=J,w.file=Q,w.module=U,w.line=q,w.function=B,w.fn=B;for(let T in S)w[T]=S[T];return w}class V8 extends g{constructor(J){super();this[0]=J}}class U8 extends g{}function HX(J){if(J instanceof l){let Q=J[0];return new V8(Q)}else return new U8}function s6(J,Q){if(J instanceof V8)return J[0];else return Q}function A5(J,Q){if(J instanceof V8){let U=J[0];return Q(U)}else return J}var R5=new WeakMap,LX=new DataView(new ArrayBuffer(8)),jX=0;function TX(J){let Q=R5.get(J);if(Q!==void 0)return Q;let U=jX++;if(jX===2147483647)jX=0;return R5.set(J,U),U}function xX(J,Q){return J^Q+2654435769+(J<<6)+(J>>2)|0}function yX(J){let Q=0,U=J.length;for(let q=0;q<U;q++)Q=Math.imul(31,Q)+J.charCodeAt(q)|0;return Q}function w5(J){LX.setFloat64(0,J);let Q=LX.getInt32(0),U=LX.getInt32(4);return Math.imul(73244475,Q>>16^Q)^U}function DG(J){return yX(J.toString())}function NG(J){let Q=Object.getPrototypeOf(J);if(Q!==null&&typeof Q.hashCode==="function")try{let q=J.hashCode(J);if(typeof q==="number")return q}catch{}if(J instanceof Promise||J instanceof WeakSet||J instanceof WeakMap)return TX(J);if(J instanceof Date)return w5(J.getTime());let U=0;if(J instanceof ArrayBuffer)J=new Uint8Array(J);if(Array.isArray(J)||J instanceof Uint8Array)for(let q=0;q<J.length;q++)U=Math.imul(31,U)+O0(J[q])|0;else if(J instanceof Set)J.forEach((q)=>{U=U+O0(q)|0});else if(J instanceof Map)J.forEach((q,B)=>{U=U+xX(O0(q),O0(B))|0});else{let q=Object.keys(J);for(let B=0;B<q.length;B++){let N=q[B],S=J[N];U=U+xX(O0(S),yX(N))|0}}return U}function O0(J){if(J===null)return 1108378658;if(J===void 0)return 1108378659;if(J===!0)return 1108378657;if(J===!1)return 1108378656;switch(typeof J){case"number":return w5(J);case"string":return yX(J);case"bigint":return DG(J);case"object":return NG(J);case"symbol":return TX(J);case"function":return TX(J);default:return 0}}var g0=5,kX=Math.pow(2,g0),CG=kX-1,OG=kX/2,SG=kX/4,r6=0,$0=1,G0=2,sY=3,vX={type:G0,bitmap:0,array:[]};function X9(J,Q){return J>>>Q&CG}function l9(J,Q){return 1<<X9(J,Q)}function PG(J){return J-=J>>1&1431655765,J=(J&858993459)+(J>>2&858993459),J=J+(J>>4)&252645135,J+=J>>8,J+=J>>16,J&127}function _X(J,Q){return PG(J&Q-1)}function S0(J,Q,U){let q=J.length,B=Array(q);for(let N=0;N<q;++N)B[N]=J[N];return B[Q]=U,B}function AG(J,Q,U){let q=J.length,B=Array(q+1),N=0,S=0;while(N<Q)B[S++]=J[N++];B[S++]=U;while(N<q)B[S++]=J[N++];return B}function EX(J,Q){let U=J.length,q=Array(U-1),B=0,N=0;while(B<Q)q[N++]=J[B++];++B;while(B<U)q[N++]=J[B++];return q}function H5(J,Q,U,q,B,N){let S=O0(Q);if(S===q)return{type:sY,hash:S,array:[{type:r6,k:Q,v:U},{type:r6,k:B,v:N}]};let w={val:!1};return W9(hX(vX,J,S,Q,U,w),J,q,B,N,w)}function W9(J,Q,U,q,B,N){switch(J.type){case $0:return RG(J,Q,U,q,B,N);case G0:return hX(J,Q,U,q,B,N);case sY:return IG(J,Q,U,q,B,N)}}function RG(J,Q,U,q,B,N){let S=X9(U,Q),w=J.array[S];if(w===void 0)return N.val=!0,{type:$0,size:J.size+1,array:S0(J.array,S,{type:r6,k:q,v:B})};if(w.type===r6){if(S6(q,w.k)){if(B===w.v)return J;return{type:$0,size:J.size,array:S0(J.array,S,{type:r6,k:q,v:B})}}return N.val=!0,{type:$0,size:J.size,array:S0(J.array,S,H5(Q+g0,w.k,w.v,U,q,B))}}let T=W9(w,Q+g0,U,q,B,N);if(T===w)return J;return{type:$0,size:J.size,array:S0(J.array,S,T)}}function hX(J,Q,U,q,B,N){let S=l9(U,Q),w=_X(J.bitmap,S);if((J.bitmap&S)!==0){let T=J.array[w];if(T.type!==r6){let m=W9(T,Q+g0,U,q,B,N);if(m===T)return J;return{type:G0,bitmap:J.bitmap,array:S0(J.array,w,m)}}let v=T.k;if(S6(q,v)){if(B===T.v)return J;return{type:G0,bitmap:J.bitmap,array:S0(J.array,w,{type:r6,k:q,v:B})}}return N.val=!0,{type:G0,bitmap:J.bitmap,array:S0(J.array,w,H5(Q+g0,v,T.v,U,q,B))}}else{let T=J.array.length;if(T>=OG){let v=Array(32),m=X9(U,Q);v[m]=hX(vX,Q+g0,U,q,B,N);let u=0,d=J.bitmap;for(let J8=0;J8<32;J8++){if((d&1)!==0){let Y8=J.array[u++];v[J8]=Y8}d=d>>>1}return{type:$0,size:T+1,array:v}}else{let v=AG(J.array,w,{type:r6,k:q,v:B});return N.val=!0,{type:G0,bitmap:J.bitmap|S,array:v}}}}function IG(J,Q,U,q,B,N){if(U===J.hash){let S=$X(J,q);if(S!==-1){if(J.array[S].v===B)return J;return{type:sY,hash:U,array:S0(J.array,S,{type:r6,k:q,v:B})}}let w=J.array.length;return N.val=!0,{type:sY,hash:U,array:S0(J.array,w,{type:r6,k:q,v:B})}}return W9({type:G0,bitmap:l9(J.hash,Q),array:[J]},Q,U,q,B,N)}function $X(J,Q){let U=J.array.length;for(let q=0;q<U;q++)if(S6(Q,J.array[q].k))return q;return-1}function d9(J,Q,U,q){switch(J.type){case $0:return wG(J,Q,U,q);case G0:return HG(J,Q,U,q);case sY:return LG(J,q)}}function wG(J,Q,U,q){let B=X9(U,Q),N=J.array[B];if(N===void 0)return;if(N.type!==r6)return d9(N,Q+g0,U,q);if(S6(q,N.k))return N;return}function HG(J,Q,U,q){let B=l9(U,Q);if((J.bitmap&B)===0)return;let N=_X(J.bitmap,B),S=J.array[N];if(S.type!==r6)return d9(S,Q+g0,U,q);if(S6(q,S.k))return S;return}function LG(J,Q){let U=$X(J,Q);if(U<0)return;return J.array[U]}function gX(J,Q,U,q){switch(J.type){case $0:return jG(J,Q,U,q);case G0:return TG(J,Q,U,q);case sY:return xG(J,q)}}function jG(J,Q,U,q){let B=X9(U,Q),N=J.array[B];if(N===void 0)return J;let S=void 0;if(N.type===r6){if(!S6(N.k,q))return J}else if(S=gX(N,Q+g0,U,q),S===N)return J;if(S===void 0){if(J.size<=SG){let w=J.array,T=Array(J.size-1),v=0,m=0,u=0;while(v<B){let d=w[v];if(d!==void 0)T[m]=d,u|=1<<v,++m;++v}++v;while(v<w.length){let d=w[v];if(d!==void 0)T[m]=d,u|=1<<v,++m;++v}return{type:G0,bitmap:u,array:T}}return{type:$0,size:J.size-1,array:S0(J.array,B,S)}}return{type:$0,size:J.size,array:S0(J.array,B,S)}}function TG(J,Q,U,q){let B=l9(U,Q);if((J.bitmap&B)===0)return J;let N=_X(J.bitmap,B),S=J.array[N];if(S.type!==r6){let w=gX(S,Q+g0,U,q);if(w===S)return J;if(w!==void 0)return{type:G0,bitmap:J.bitmap,array:S0(J.array,N,w)};if(J.bitmap===B)return;return{type:G0,bitmap:J.bitmap^B,array:EX(J.array,N)}}if(S6(q,S.k)){if(J.bitmap===B)return;return{type:G0,bitmap:J.bitmap^B,array:EX(J.array,N)}}return J}function xG(J,Q){let U=$X(J,Q);if(U<0)return J;if(J.array.length===1)return;return{type:sY,hash:J.hash,array:EX(J.array,U)}}function L5(J,Q){if(J===void 0)return;let U=J.array,q=U.length;for(let B=0;B<q;B++){let N=U[B];if(N===void 0)continue;if(N.type===r6){Q(N.v,N.k);continue}L5(N,Q)}}class n6{static fromObject(J){let Q=Object.keys(J),U=n6.new();for(let q=0;q<Q.length;q++){let B=Q[q];U=U.set(B,J[B])}return U}static fromMap(J){let Q=n6.new();return J.forEach((U,q)=>{Q=Q.set(q,U)}),Q}static new(){return new n6(void 0,0)}constructor(J,Q){this.root=J,this.size=Q}get(J,Q){if(this.root===void 0)return Q;let U=d9(this.root,0,O0(J),J);if(U===void 0)return Q;return U.v}set(J,Q){let U={val:!1},q=this.root===void 0?vX:this.root,B=W9(q,0,O0(J),J,Q,U);if(B===this.root)return this;return new n6(B,U.val?this.size+1:this.size)}delete(J){if(this.root===void 0)return this;let Q=gX(this.root,0,O0(J),J);if(Q===this.root)return this;if(Q===void 0)return n6.new();return new n6(Q,this.size-1)}has(J){if(this.root===void 0)return!1;return d9(this.root,0,O0(J),J)!==void 0}entries(){if(this.root===void 0)return[];let J=[];return this.forEach((Q,U)=>J.push([U,Q])),J}forEach(J){L5(this.root,J)}hashCode(){let J=0;return this.forEach((Q,U)=>{J=J+xX(O0(Q),O0(U))|0}),J}equals(J){if(!(J instanceof n6)||this.size!==J.size)return!1;try{return this.forEach((Q,U)=>{if(!S6(J.get(U,!Q),Q))throw I5}),!0}catch(Q){if(Q===I5)return!1;throw Q}}}var I5=Symbol();class A6 extends g{}class R6 extends g{}class a0 extends g{}function mX(J,Q){if(J>Q)return J;else return Q}class g6 extends g{}class C7 extends g{}function K9(J,Q){while(!0){let U=J,q=Q;if(U instanceof r)return q;else{let B=U.head;J=U.tail,Q=f(B,q)}}}function Y6(J){return K9(J,A([]))}function hG(J,Q,U){while(!0){let q=J,B=Q,N=U;if(q instanceof r)return Y6(N);else{let{head:S,tail:w}=q,T;if(B(S))T=f(S,N);else T=N;let m=T;J=w,Q=B,U=m}}}function E5(J,Q){return hG(J,Q,A([]))}function $G(J,Q,U){while(!0){let q=J,B=Q,N=U;if(q instanceof r)return Y6(N);else{let{head:S,tail:w}=q,T,v=B(S);if(v instanceof l){let u=v[0];T=f(u,N)}else T=N;let m=T;J=w,Q=B,U=m}}}function O7(J,Q){return $G(J,Q,A([]))}function gG(J,Q,U){while(!0){let q=J,B=Q,N=U;if(q instanceof r)return Y6(N);else{let S=q.head;J=q.tail,Q=B,U=f(B(S),N)}}}function I6(J,Q){return gG(J,Q,A([]))}function fG(J,Q,U){while(!0){let q=J,B=Q,N=U;if(B<=0)return Y6(N);else if(q instanceof r)return Y6(N);else{let w=q.head;J=q.tail,Q=B-1,U=f(w,N)}}}function bX(J,Q){return fG(J,Q,A([]))}function mG(J,Q){while(!0){let U=J,q=Q;if(U instanceof r)return q;else{let B=U.head;J=U.tail,Q=f(B,q)}}}function H0(J,Q){return mG(Y6(J),Q)}function o9(J,Q){return f(Q,J)}function d6(J,Q,U){while(!0){let q=J,B=Q,N=U;if(q instanceof r)return B;else{let S=q.head;J=q.tail,Q=N(B,S),U=N}}}function bG(J,Q,U,q,B,N){while(!0){let S=J,w=Q,T=U,v=q,m=B,u=N,d=f(m,T);if(S instanceof r)if(v instanceof g6)return f(Y6(d),u);else return f(d,u);else{let{head:J8,tail:Y8}=S,z8=w(m,J8);if(v instanceof g6)if(z8 instanceof A6)J=Y8,Q=w,U=d,q=v,B=J8,N=u;else if(z8 instanceof R6)J=Y8,Q=w,U=d,q=v,B=J8,N=u;else{let e;if(v instanceof g6)e=f(Y6(d),u);else e=f(d,u);let C8=e;if(Y8 instanceof r)return f(A([J8]),C8);else{let{head:X8,tail:q8}=Y8,j8,p=w(J8,X8);if(p instanceof A6)j8=new g6;else if(p instanceof R6)j8=new g6;else j8=new C7;let D8=j8;J=q8,Q=w,U=A([J8]),q=D8,B=X8,N=C8}}else if(z8 instanceof A6){let e;if(v instanceof g6)e=f(Y6(d),u);else e=f(d,u);let C8=e;if(Y8 instanceof r)return f(A([J8]),C8);else{let{head:X8,tail:q8}=Y8,j8,p=w(J8,X8);if(p instanceof A6)j8=new g6;else if(p instanceof R6)j8=new g6;else j8=new C7;let D8=j8;J=q8,Q=w,U=A([J8]),q=D8,B=X8,N=C8}}else if(z8 instanceof R6){let e;if(v instanceof g6)e=f(Y6(d),u);else e=f(d,u);let C8=e;if(Y8 instanceof r)return f(A([J8]),C8);else{let{head:X8,tail:q8}=Y8,j8,p=w(J8,X8);if(p instanceof A6)j8=new g6;else if(p instanceof R6)j8=new g6;else j8=new C7;let D8=j8;J=q8,Q=w,U=A([J8]),q=D8,B=X8,N=C8}}else J=Y8,Q=w,U=d,q=v,B=J8,N=u}}}function uG(J,Q,U,q){while(!0){let B=J,N=Q,S=U,w=q;if(B instanceof r)return K9(N,w);else if(N instanceof r)return K9(B,w);else{let{head:T,tail:v}=B,m=N.head,u=N.tail,d=S(T,m);if(d instanceof A6)J=v,Q=N,U=S,q=f(T,w);else if(d instanceof R6)J=B,Q=u,U=S,q=f(m,w);else J=B,Q=u,U=S,q=f(m,w)}}}function pG(J,Q,U){while(!0){let q=J,B=Q,N=U;if(q instanceof r)return Y6(N);else{let S=q.tail;if(S instanceof r){let w=q.head;return Y6(f(Y6(w),N))}else{let w=q.head,T=S.head,v=S.tail,m=uG(w,T,B,A([]));J=v,Q=B,U=f(m,N)}}}}function cG(J,Q,U,q){while(!0){let B=J,N=Q,S=U,w=q;if(B instanceof r)return K9(N,w);else if(N instanceof r)return K9(B,w);else{let{head:T,tail:v}=B,m=N.head,u=N.tail,d=S(T,m);if(d instanceof A6)J=B,Q=u,U=S,q=f(m,w);else if(d instanceof R6)J=v,Q=N,U=S,q=f(T,w);else J=v,Q=N,U=S,q=f(T,w)}}}function sG(J,Q,U){while(!0){let q=J,B=Q,N=U;if(q instanceof r)return Y6(N);else{let S=q.tail;if(S instanceof r){let w=q.head;return Y6(f(Y6(w),N))}else{let w=q.head,T=S.head,v=S.tail,m=cG(w,T,B,A([]));J=v,Q=B,U=f(m,N)}}}}function nG(J,Q,U){while(!0){let q=J,B=Q,N=U;if(q instanceof r)return q;else if(B instanceof g6)if(q.tail instanceof r)return q.head;else J=pG(q,N,A([])),Q=new C7,U=N;else if(q.tail instanceof r){let w=q.head;return Y6(w)}else J=sG(q,N,A([])),Q=new g6,U=N}}function uX(J,Q){if(J instanceof r)return J;else{let U=J.tail;if(U instanceof r)return J;else{let q=J.head,B=U.head,N=U.tail,S,w=Q(q,B);if(w instanceof A6)S=new g6;else if(w instanceof R6)S=new g6;else S=new C7;let T=S,v=bG(N,Q,A([q]),T,B,A([]));return nG(v,new g6,Q)}}}function y5(J,Q){while(!0){let U=J,q=Q;if(U instanceof r)return;else{let{head:B,tail:N}=U;q(B),J=N,Q=q}}}function iG(J,Q){while(!0){let U=J,q=Q;if(U instanceof r)return q;else{let B=U.head;J=U.tail,Q=q+B}}}function Z9(J){return iG(J,"")}function oG(J,Q,U){while(!0){let q=J,B=Q,N=U;if(q instanceof r)return N;else{let S=q.head;J=q.tail,Q=B,U=N+B+S}}}function m0(J,Q){if(J instanceof r)return"";else{let{head:U,tail:q}=J;return oG(q,Q,U)}}function _5(J){let U=g5(J);return sX(U)}function nY(J,Q){if(Q==="")return pX(J);else{let q=M6(J),B=cX(q,Q);return I6(B,M6)}}function h5(J){let Q=$5(J);if(Q instanceof l){let U=Q[0][0];return new l(U)}else return Q}function t0(J){let U=f5(J);return M6(U)}class b0 extends g{constructor(J,Q,U){super();this.expected=J,this.found=Q,this.path=U}}class L0 extends g{constructor(J){super();this.function=J}}function j0(J,Q){let U=Q.function(J),q,B;if(q=U[0],B=U[1],B instanceof r)return new l(q);else return new W8(B)}function w6(J){return new L0((Q)=>{return[J,A([])]})}function WF(J){return[J,A([])]}function e0(J,Q){return new L0((U)=>{let q=J.function(U),B,N;return B=q[0],N=q[1],[Q(B),N]})}function KF(J,Q,U){while(!0){let q=J,B=Q,N=U;if(N instanceof r)return B;else{let{head:S,tail:w}=N,T=S.function(q),v,m;if(v=T,m=T[1],m instanceof r)return v;else J=q,Q=B,U=w}}}function nX(J,Q){return new L0((U)=>{let q=J.function(U),B,N;if(B=q,N=q[1],N instanceof r)return B;else return KF(U,B,Q)})}function z0(J){return new L0((Q)=>{if(r5(Q))return[new U8,A([])];else{let q=J.function(Q),B,N;return B=q[0],N=q[1],[new V8(B),N]}})}var YV=new L0(WF);function b5(J,Q,U){let q=U(J);if(q instanceof l)return[q[0],A([])];else return[q[0],A([new b0(Q,YY(J),A([]))])]}function JF(J){return b5(J,"Int",s5)}var R7=new L0(JF);function ZF(J){return b5(J,"String",n5)}var s8=new L0(ZF);function rY(J){return new L0((Q)=>{return c5(Q,J.function,(U,q)=>{return Q9(U,A([q]))},0,A([]))})}function Q9(J,Q){let U=nX(s8,A([(()=>{return e0(R7,F0)})()])),q=I6(Q,(N)=>{let S=M6(N),w=j0(S,U);if(w instanceof l)return w[0];else return"<"+YY(S)+">"}),B=I6(J[1],(N)=>{return new b0(N.expected,N.found,H0(q,N.path))});return[J[0],B]}function u5(J,Q,U,q,B){while(!0){let N=J,S=Q,w=U,T=q,v=B;if(N instanceof r){let u=w(T);return Q9(u,Y6(S))}else{let{head:m,tail:u}=N,d=p5(T,m);if(d instanceof l){let J8=d[0];if(J8 instanceof V8){let Y8=J8[0];J=u,Q=f(m,S),U=w,q=Y8,B=v}else return v(T,f(m,S))}else{let J8=d[0],Y8=w(T),z8;z8=Y8[0];let e=[z8,A([new b0(J8,YY(T),A([]))])];return Q9(e,Y6(S))}}}}function VV(J,Q,U){return new L0((q)=>{let B=u5(J,A([]),Q.function,q,(m,u)=>{let d=Q.function(m),J8;J8=d[0];let Y8=[J8,A([new b0("Field","Nothing",A([]))])];return Q9(Y8,Y6(u))}),N,S;N=B[0],S=B[1];let w=U(N).function(q),T,v;return T=w[0],v=w[1],[T,H0(S,v)]})}function rX(J,Q){return new L0((U)=>{return u5(J,A([]),Q.function,U,(q,B)=>{let N=Q.function(q),S;S=N[0];let w=[S,A([new b0("Field","Nothing",A([]))])];return Q9(w,Y6(B))})})}function b8(J,Q,U){return VV(A([J]),Q,U)}var dX=void 0,l5={};function M6(J){return J}function i9(J){if(/^[-+]?(\d+)\.(\d+)([eE][-+]?\d+)?$/.test(J))return new l(parseFloat(J));else return new W8(dX)}function F0(J){return J.toString()}function e9(J){if(J==="")return 0;let Q=lX(J);if(Q){let U=0;for(let q of Q)U++;return U}else return J.match(/./gsu).length}function pX(J){let Q=lX(J);if(Q)return $6.fromArray(Array.from(Q).map((U)=>U.segment));else return $6.fromArray(J.match(/./gsu))}var i5=void 0;function lX(J){if(globalThis.Intl&&Intl.Segmenter)return i5||=new Intl.Segmenter,i5.segment(J)[Symbol.iterator]()}function $5(J){let Q,U=lX(J);if(U)Q=U.next().value?.segment;else Q=J.match(/./su)?.[0];if(Q)return new l([Q,J.slice(Q.length)]);else return new W8(dX)}function a9(J){return J.toUpperCase()}function cX(J,Q){return $6.fromArray(J.split(Q))}function A7(J,Q){return J.startsWith(Q)}var o5=[" ","\t",`
2
2
+
`,"\v","\f","\r"," ","\u2028","\u2029"].join(""),QF=new RegExp(`^[${o5}]*`),GF=new RegExp(`[${o5}]*$`);function g5(J){return J.replace(QF,"")}function sX(J){return J.replace(GF,"")}function i8(J){console.log(J)}function S7(){return n6.new()}function a5(J){return $6.fromArray(J.entries())}function LY(J,Q){let U=J.get(Q,l5);if(U===l5)return new W8(dX);return new l(U)}function t5(J,Q,U){return U.set(J,Q)}function YY(J){if(typeof J==="string")return"String";else if(typeof J==="boolean")return"Bool";else if(J instanceof N7)return"Result";else if(J instanceof $6)return"List";else if(J instanceof V9)return"BitArray";else if(J instanceof n6)return"Dict";else if(Number.isInteger(J))return"Int";else if(Array.isArray(J))return"Array";else if(typeof J==="number")return"Float";else if(J===null)return"Nil";else if(J===void 0)return"Nil";else{let Q=typeof J;return Q.charAt(0).toUpperCase()+Q.slice(1)}}function f5(J){return new e5().inspect(J)}function x5(J){let Q=J.toString().replace("+","");if(Q.indexOf(".")>=0)return Q;else{let U=Q.indexOf("e");if(U>=0)return Q.slice(0,U)+".0"+Q.slice(U);else return Q+".0"}}class e5{#Y=new Set;inspect(J){let Q=typeof J;if(J===!0)return"True";if(J===!1)return"False";if(J===null)return"//js(null)";if(J===void 0)return"Nil";if(Q==="string")return this.#J(J);if(Q==="bigint"||Number.isInteger(J))return J.toString();if(Q==="number")return x5(J);if(J instanceof wX)return this.#Q(J);if(J instanceof V9)return this.#G(J);if(J instanceof RegExp)return`//js(${J})`;if(J instanceof Date)return`//js(Date("${J.toISOString()}"))`;if(J instanceof globalThis.Error)return`//js(${J.toString()})`;if(J instanceof Function){let q=[];for(let B of Array(J.length).keys())q.push(String.fromCharCode(B+97));return`//fn(${q.join(", ")}) { ... }`}if(this.#Y.size===this.#Y.add(J).size)return"//js(circular reference)";let U;if(Array.isArray(J))U=`#(${J.map((q)=>this.inspect(q)).join(", ")})`;else if(J instanceof $6)U=this.#V(J);else if(J instanceof g)U=this.#X(J);else if(J instanceof n6)U=this.#W(J);else if(J instanceof Set)return`//js(Set(${[...J].map((q)=>this.inspect(q)).join(", ")}))`;else U=this.#K(J);return this.#Y.delete(J),U}#K(J){let Q=Object.getPrototypeOf(J)?.constructor?.name||"Object",U=[];for(let N of Object.keys(J))U.push(`${this.inspect(N)}: ${this.inspect(J[N])}`);let q=U.length?" "+U.join(", ")+" ":"";return`//js(${Q==="Object"?"":Q+" "}{${q}})`}#W(J){let Q="dict.from_list([",U=!0;return J.forEach((q,B)=>{if(!U)Q=Q+", ";Q=Q+"#("+this.inspect(B)+", "+this.inspect(q)+")",U=!1}),Q+"])"}#X(J){let Q=Object.keys(J).map((U)=>{let q=this.inspect(J[U]);return isNaN(parseInt(U))?`${U}: ${q}`:q}).join(", ");return Q?`${J.constructor.name}(${Q})`:J.constructor.name}#V(J){if(J instanceof r)return"[]";let Q='charlist.from_string("',U="[",q=J;while(q instanceof V0){let B=q.head;if(q=q.tail,U!=="[")U+=", ";if(U+=this.inspect(B),Q)if(Number.isInteger(B)&&B>=32&&B<=126)Q+=String.fromCharCode(B);else Q=null}if(Q)return Q+'")';else return U+"]"}#J(J){let Q='"';for(let U=0;U<J.length;U++){let q=J[U];switch(q){case`
3
3
+
`:Q+="\\n";break;case"\r":Q+="\\r";break;case"\t":Q+="\\t";break;case"\f":Q+="\\f";break;case"\\":Q+="\\\\";break;case'"':Q+="\\\"";break;default:if(q<" "||q>"~"&&q<" ")Q+="\\u{"+q.charCodeAt(0).toString(16).toUpperCase().padStart(4,"0")+"}";else Q+=q}}return Q+='"',Q}#Q(J){return`//utfcodepoint(${String.fromCodePoint(J.value)})`}#G(J){if(J.bitSize===0)return"<<>>";let Q="<<";for(let U=0;U<J.byteSize-1;U++)Q+=J.byteAt(U).toString(),Q+=", ";if(J.byteSize*8===J.bitSize)Q+=J.byteAt(J.byteSize-1).toString();else{let U=J.bitSize%8;Q+=J.byteAt(J.byteSize-1)>>8-U,Q+=`:size(${U})`}return Q+=">>",Q}}function p5(J,Q){if(J instanceof n6||J instanceof WeakMap||J instanceof Map){let q={},B=J.get(Q,q);if(B===q)return new l(new U8);return new l(new V8(B))}let U=Number.isInteger(Q);if(U&&Q>=0&&Q<8&&J instanceof $6){let q=0;for(let B of J){if(q===Q)return new l(new V8(B));q++}return new W8("Indexable")}if(U&&Array.isArray(J)||J&&typeof J==="object"||J&&Object.getPrototypeOf(J)===Object.prototype){if(Q in J)return new l(new V8(J[Q]));return new l(new U8)}return new W8(U?"Indexable":"Dict")}function c5(J,Q,U,q,B){if(!(J instanceof $6||Array.isArray(J))){let S=new b0("List",YY(J),B);return[B,$6.fromArray([S])]}let N=[];for(let S of J){let w=Q(S),[T,v]=w;if(v instanceof V0){let[m,u]=U(w,q.toString());return[B,u]}N.push(T),q++}return[$6.fromArray(N),B]}function s5(J){if(Number.isInteger(J))return new l(J);return new W8(0)}function n5(J){if(typeof J==="string")return new l(J);return new W8("")}function r5(J){return J===null||J===void 0}function J9(J,Q,U){return t5(Q,U,J)}function FF(J,Q){while(!0){let U=J,q=Q;if(U instanceof r)return q;else{let B=U.head;J=U.tail,Q=f(B,q)}}}function zF(J,Q){while(!0){let U=J,q=Q;if(U instanceof r)return FF(q,A([]));else{let B=U.tail,N=U.head[0];J=B,Q=f(N,q)}}}function G9(J){return zF(a5(J),A([]))}class dY{constructor(J){this.promise=J}static wrap(J){return J instanceof Promise?new dY(J):J}static unwrap(J){return J instanceof dY?J.promise:J}}function I7(J){return Promise.resolve(dY.wrap(J))}function w7(J,Q){return J.then((U)=>Q(dY.unwrap(U)))}function u0(J,Q){return J.then((U)=>dY.wrap(Q(dY.unwrap(U))))}function XV(J,Q){return u0(J,(q)=>{return Q(q),q})}function H7(J,Q){if(J instanceof l){let U=J[0];return new l(Q(U))}else return J}function L7(J,Q){if(J instanceof l)return J;else{let U=J[0];return new W8(Q(U))}}function lY(J,Q){if(J instanceof l){let U=J[0];return Q(U)}else return J}function j7(J,Q){if(J instanceof l)return J;else return new W8(Q)}function YJ(J){return O7(J,(Q)=>{return Q})}function oX(J){return JSON.stringify(J)}function VJ(J){return Object.fromEntries(J)}function T7(J){return J}function XJ(J){return J.toArray()}function WJ(J){try{let Q=JSON.parse(J);return new l(Q)}catch(Q){return new W8(BF(Q,J))}}function BF(J,Q){if(DF(J))return new aX;return NF(J,Q)}function DF(J){return/((unexpected (end|eof))|(end of data)|(unterminated string)|(json( parse error|\.parse)\: expected '(\:|\}|\])'))/i.test(J.message)}function NF(J,Q){let U=[CF,OF,PF,SF];for(let q of U){let B=q(J,Q);if(B)return B}return new iY("",0)}function CF(J){let U=/unexpected token '(.)', ".+" is not valid JSON/i.exec(J.message);if(!U)return null;let q=WV(U[1]);return new iY(q,-1)}function OF(J){let U=/unexpected token (.) in JSON at position (\d+)/i.exec(J.message);if(!U)return null;let q=WV(U[1]),B=Number(U[2]);return new iY(q,B)}function SF(J,Q){let q=/(unexpected character|expected .*) at line (\d+) column (\d+)/i.exec(J.message);if(!q)return null;let B=Number(q[2]),N=Number(q[3]),S=AF(B,N,Q),w=WV(Q[S]);return new iY(w,S)}function PF(J){let U=/unexpected (identifier|token) "(.)"/i.exec(J.message);if(!U)return null;let q=WV(U[2]);return new iY(q,0)}function WV(J){return"0x"+J.charCodeAt(0).toString(16).toUpperCase()}function AF(J,Q,U){if(J===1)return Q-1;let q=1,B=0;return U.split("").find((N,S)=>{if(N===`
4
4
+
`)q+=1;if(q===J)return B=S+Q,!0;return!1}),B}class aX extends g{}class iY extends g{constructor(J){super();this[0]=J}}class KJ extends g{constructor(J){super();this[0]=J}}function RF(J,Q){return lY(WJ(J),(U)=>{let q=j0(U,Q);return L7(q,(B)=>{return new KJ(B)})})}function jY(J,Q){return RF(J,Q)}function tX(J){return oX(J)}function i6(J){return T7(J)}function eX(J){return T7(J)}function oY(J){return VJ(J)}function JJ(J){return XJ(J)}function x7(J,Q){let q=I6(J,Q);return JJ(q)}class E7 extends g{constructor(J,Q,U,q,B,N,S){super();this.scheme=J,this.userinfo=Q,this.host=U,this.port=q,this.path=B,this.query=N,this.fragment=S}}function wF(J,Q){while(!0){let U=J,q=Q;if(U instanceof r)return Y6(q);else{let{head:B,tail:N}=U,S;if(B==="")S=q;else if(B===".")S=q;else if(B==="..")if(q instanceof r)S=q;else S=q.tail;else S=f(B,q);let w=S;J=N,Q=w}}}function HF(J){return wF(J,A([]))}function ZJ(J){return HF(nY(J,"/"))}function QJ(J){let Q,U=J.fragment;if(U instanceof V8){let p=U[0];Q=A(["#",p])}else Q=A([]);let q=Q,B,N=J.query;if(N instanceof V8){let p=N[0];B=f("?",f(p,q))}else B=q;let S=B,w=f(J.path,S),T,v=J.host,m=A7(J.path,"/");if(v instanceof V8&&!m)if(v[0]!=="")T=f("/",w);else T=w;else T=w;let u=T,d,J8=J.host,Y8=J.port;if(J8 instanceof V8&&Y8 instanceof V8){let p=Y8[0];d=f(":",f(F0(p),u))}else d=u;let z8=d,e,C8=J.scheme,X8=J.userinfo,q8=J.host;if(C8 instanceof V8)if(X8 instanceof V8)if(q8 instanceof V8){let p=C8[0],D8=X8[0],N8=q8[0];e=f(p,f("://",f(D8,f("@",f(N8,z8)))))}else{let p=C8[0];e=f(p,f(":",z8))}else if(q8 instanceof V8){let p=C8[0],D8=q8[0];e=f(p,f("://",f(D8,z8)))}else{let p=C8[0];e=f(p,f(":",z8))}else if(X8 instanceof U8&&q8 instanceof V8){let p=q8[0];e=f("//",f(p,z8))}else e=z8;return Z9(e)}function z9(J,Q,U){if(J)return Q;else return U()}function o8(J){return J}var P0=()=>globalThis?.document,JV="http://www.w3.org/1999/xhtml",ZV=1,YW=3;var BJ=!!globalThis.HTMLElement?.prototype?.moveBefore;var v8=A([]),QV=new U8;var xF=new a0,EF=new A6,yF=new R6;function GV(J,Q){if(J.name===Q.name)return yF;else if(J.name<Q.name)return EF;else return xF}class A0 extends g{constructor(J,Q,U){super();this.kind=J,this.name=Q,this.value=U}}class U9 extends g{constructor(J,Q,U){super();this.kind=J,this.name=Q,this.value=U}}class y6 extends g{constructor(J,Q,U,q,B,N,S,w,T){super();this.kind=J,this.name=Q,this.handler=U,this.include=q,this.prevent_default=B,this.stop_propagation=N,this.immediate=S,this.debounce=w,this.throttle=T}}class q9 extends g{constructor(J,Q,U){super();this.prevent_default=J,this.stop_propagation=Q,this.message=U}}class PJ extends g{constructor(J){super();this.kind=J}}class AJ extends g{constructor(J){super();this.kind=J}}function gF(J,Q){while(!0){let U=J,q=Q;if(U instanceof r)return q;else{let B=U.head;if(B instanceof A0){let N=B.name;if(N==="")J=U.tail,Q=q;else if(N==="class"){let S=B.value;if(S==="")J=U.tail,Q=q;else{let w=U.tail;if(w instanceof r){let T=B;J=w,Q=f(T,q)}else{let T=w.head;if(T instanceof A0)if(T.name==="class"){let m=B.kind,u=S,d=w.tail,J8=T.value,Y8=u+" "+J8,z8=new A0(m,"class",Y8);J=f(z8,d),Q=q}else{let m=B;J=w,Q=f(m,q)}else{let v=B;J=w,Q=f(v,q)}}}}else if(N==="style"){let S=B.value;if(S==="")J=U.tail,Q=q;else{let w=U.tail;if(w instanceof r){let T=B;J=w,Q=f(T,q)}else{let T=w.head;if(T instanceof A0)if(T.name==="style"){let m=B.kind,u=S,d=w.tail,J8=T.value,Y8=u+";"+J8,z8=new A0(m,"style",Y8);J=f(z8,d),Q=q}else{let m=B;J=w,Q=f(m,q)}else{let v=B;J=w,Q=f(v,q)}}}}else{let S=B;J=U.tail,Q=f(S,q)}}else{let N=B;J=U.tail,Q=f(N,q)}}}}function RJ(J){if(J instanceof r)return J;else if(J.tail instanceof r)return J;else{let q=uX(J,(B,N)=>{return GV(N,B)});return gF(q,v8)}}var XW=0;function IJ(J,Q){return new A0(XW,J,Q)}var WW=1;function wJ(J,Q){return new U9(WW,J,Q)}var KW=2;function HJ(J,Q,U,q,B,N,S,w){return new y6(KW,J,Q,U,q,B,N,S,w)}var JW=0;var ZW=new PJ(JW);var FV=2,LJ=new AJ(FV);function F6(J,Q){return IJ(J,Q)}function QW(J,Q){return wJ(J,Q)}function fF(J,Q){if(Q)return F6(J,"");else return QW(J,eX(!1))}function b(J){return F6("class",J)}function zV(J){return F6("id",J)}function W0(J){return F6("href",J)}function jJ(J){return F6("target",J)}function TJ(J){return F6("alt",J)}function xJ(J){return F6("src",J)}function UV(J){return F6("action",J)}function qV(J){return F6("method",J)}function EJ(J){return F6("accept",m0(J,","))}function yJ(J){return fF("disabled",J)}function kJ(J){return F6("for",J)}function vJ(J){return F6("name",J)}function xY(J){return F6("placeholder",J)}function K0(J){return F6("type",J)}function M9(J){return F6("value",J)}class B9 extends g{constructor(J,Q,U){super();this.synchronous=J,this.before_paint=Q,this.after_paint=U}}class FW extends g{constructor(J,Q,U,q,B){super();this.dispatch=J,this.emit=Q,this.select=U,this.root=q,this.provide=B}}function mF(J,Q,U){return}function bF(J,Q){return new FW((U)=>{return J.dispatch(Q(U))},J.emit,(U)=>{return mF(J,U,Q)},J.root,J.provide)}function GW(J,Q){return I6(J,(U)=>{return(q)=>{return U(bF(q,Q))}})}function _J(J,Q){return new B9(GW(J.synchronous,Q),GW(J.before_paint,Q),GW(J.after_paint,Q))}function hJ(J,Q,U,q,B,N){let S=new FW(Q,U,q,B,N);return y5(J.synchronous,(w)=>{return w(S)})}var MV=new B9(A([]),A([]),A([]));function n8(){return MV}function T0(J){return new B9(A([(U)=>{let q=U.dispatch;return J(q)}]),MV.before_paint,MV.after_paint)}function BV(J){return d6(J,MV,(Q,U)=>{return new B9(d6(U.synchronous,Q.synchronous,o9),d6(U.before_paint,Q.before_paint,o9),d6(U.after_paint,Q.after_paint,o9))})}function U0(){return null}function D9(J,Q){let U=J?.get(Q);if(U!=null)return new l(U);else return new W8(void 0)}function N9(J,Q){return J&&J.has(Q)}function aY(J,Q,U){return J??=new Map,J.set(Q,U),J}function zW(J,Q){return J?.delete(Q),J}class UW extends g{}class qW extends g{constructor(J,Q){super();this.key=J,this.parent=Q}}class $J extends g{constructor(J,Q){super();this.index=J,this.parent=Q}}function uF(J,Q){while(!0){let U=J,q=Q;if(q instanceof r)return!1;else{let{head:B,tail:N}=q,S=A7(U,B);if(S)return S;else J=U,Q=N}}}function R0(J,Q,U){if(U==="")return new $J(Q,J);else return new qW(U,J)}var k7=new UW,O9="\t";function gJ(J,Q){while(!0){let U=J,q=Q;if(U instanceof UW)if(q instanceof r)return"";else{let B=q.tail;return Z9(B)}else if(U instanceof qW){let B=U.key;J=U.parent,Q=f(O9,f(B,q))}else{let B=U.index;J=U.parent,Q=f(O9,f(F0(B),q))}}}function fJ(J){return gJ(J,A([]))}function mJ(J,Q){if(Q instanceof r)return!1;else return uF(fJ(J),Q)}var MW=`
5
5
+
`;function BW(J,Q){return gJ(J,A([MW,Q]))}class J0 extends g{constructor(J,Q,U,q,B){super();this.kind=J,this.key=Q,this.mapper=U,this.children=q,this.keyed_children=B}}class o6 extends g{constructor(J,Q,U,q,B,N,S,w,T,v){super();this.kind=J,this.key=Q,this.mapper=U,this.namespace=q,this.tag=B,this.attributes=N,this.children=S,this.keyed_children=w,this.self_closing=T,this.void=v}}class q0 extends g{constructor(J,Q,U,q){super();this.kind=J,this.key=Q,this.mapper=U,this.content=q}}class EY extends g{constructor(J,Q,U,q,B,N,S){super();this.kind=J,this.key=Q,this.mapper=U,this.namespace=q,this.tag=B,this.attributes=N,this.inner_html=S}}function sF(J,Q){if(Q==="")if(J==="area")return!0;else if(J==="base")return!0;else if(J==="br")return!0;else if(J==="col")return!0;else if(J==="embed")return!0;else if(J==="hr")return!0;else if(J==="img")return!0;else if(J==="input")return!0;else if(J==="link")return!0;else if(J==="meta")return!0;else if(J==="param")return!0;else if(J==="source")return!0;else if(J==="track")return!0;else if(J==="wbr")return!0;else return!1;else return!1}function bJ(J,Q){if(Q instanceof J0)return new J0(Q.kind,J,Q.mapper,Q.children,Q.keyed_children);else if(Q instanceof o6)return new o6(Q.kind,J,Q.mapper,Q.namespace,Q.tag,Q.attributes,Q.children,Q.keyed_children,Q.self_closing,Q.void);else if(Q instanceof q0)return new q0(Q.kind,J,Q.mapper,Q.content);else return new EY(Q.kind,J,Q.mapper,Q.namespace,Q.tag,Q.attributes,Q.inner_html)}var x0=0;function DW(J,Q,U,q){return new J0(x0,J,Q,U,q)}var tY=1;function S9(J,Q,U,q,B,N,S,w,T){return new o6(tY,J,Q,U,q,RJ(B),N,S,w,T||sF(q,U))}var v7=2;function NW(J,Q,U){return new q0(v7,J,Q,U)}var uJ=3;var CW=(J,Q)=>J===Q,eY=(J,Q)=>{if(J===Q)return!0;if(J==null||Q==null)return!1;let U=typeof J;if(U!==typeof Q)return!1;if(U!=="object")return!1;if(J.constructor!==Q.constructor)return!1;if(Array.isArray(J))return nF(J,Q);return rF(J,Q)},nF=(J,Q)=>{let U=J.length;if(U!==Q.length)return!1;while(U--)if(!eY(J[U],Q[U]))return!1;return!0},rF=(J,Q)=>{let U=Object.keys(J),q=U.length;if(Object.keys(Q).length!==q)return!1;while(q--){let B=U[q];if(!Object.hasOwn(Q,B))return!1;if(!eY(J[B],Q[B]))return!1}return!0};class ZY extends g{constructor(J,Q,U){super();this.handlers=J,this.dispatched_paths=Q,this.next_dispatched_paths=U}}function SW(){return new ZY(U0(),v8,v8)}function nJ(J){return new ZY(J.handlers,J.next_dispatched_paths,v8)}function rJ(J,Q,U){return zW(J,BW(Q,U))}function NV(J,Q,U){let q=rJ(J.handlers,Q,U);return new ZY(q,J.dispatched_paths,J.next_dispatched_paths)}function pJ(J,Q,U){return d6(U,J,(q,B)=>{if(B instanceof y6){let N=B.name;return rJ(q,Q,N)}else return q})}function _7(J,Q,U,q){let B=f(Q,J.next_dispatched_paths),N=new ZY(J.handlers,J.dispatched_paths,B),S=D9(N.handlers,Q+MW+U);if(S instanceof l){let w=S[0];return[N,j0(q,w)]}else return[N,new W8(A([]))]}function CV(J,Q){return mJ(Q,J.dispatched_paths)}function dJ(J,Q,U,q,B){return aY(J,BW(U,q),e0(B,(N)=>{return new q9(N.prevent_default,N.stop_propagation,o8(Q)(N.message))}))}function h7(J,Q,U,q,B){let N=dJ(J.handlers,Q,U,q,B);return new ZY(N,J.dispatched_paths,J.next_dispatched_paths)}function cJ(J,Q,U,q){return d6(q,J,(B,N)=>{if(N instanceof y6){let{name:S,handler:w}=N;return dJ(B,Q,U,S,w)}else return B})}function JY(J,Q){let U=CW(J,o8);if(CW(Q,o8))return J;else if(U)return Q;else return(B)=>{return J(Q(B))}}function sJ(J,Q,U,q){while(!0){let B=J,N=Q,S=U,w=q;if(w instanceof r)return B;else{let{head:T,tail:v}=w;J=lJ(B,N,S,T),Q=N,U=S+1,q=v}}}function lJ(J,Q,U,q){if(q instanceof J0){let B=q.children,N=R0(Q,U,q.key);return sJ(J,N,0,B)}else if(q instanceof o6){let{attributes:B,children:N}=q,S=R0(Q,U,q.key),T=pJ(J,S,B);return sJ(T,S,0,N)}else if(q instanceof q0)return J;else{let B=q.attributes,N=R0(Q,U,q.key);return pJ(J,N,B)}}function QY(J,Q,U,q){let B=lJ(J.handlers,Q,U,q);return new ZY(B,J.dispatched_paths,J.next_dispatched_paths)}function OW(J,Q,U,q,B){while(!0){let N=J,S=Q,w=U,T=q,v=B;if(v instanceof r)return N;else{let{head:m,tail:u}=v;J=iJ(N,S,w,T,m),Q=S,U=w,q=T+1,B=u}}}function iJ(J,Q,U,q,B){if(B instanceof J0){let N=B.children,S=R0(U,q,B.key),w=JY(Q,B.mapper);return OW(J,w,S,0,N)}else if(B instanceof o6){let{attributes:N,children:S}=B,w=R0(U,q,B.key),T=JY(Q,B.mapper),m=cJ(J,T,w,N);return OW(m,T,w,0,S)}else if(B instanceof q0)return J;else{let N=B.attributes,S=R0(U,q,B.key),w=JY(Q,B.mapper);return cJ(J,w,S,N)}}function GY(J,Q,U,q,B){let N=iJ(J.handlers,Q,U,q,B);return new ZY(N,J.dispatched_paths,J.next_dispatched_paths)}function PW(J){return GY(SW(),o8,k7,0,J)}function oJ(J,Q,U,q,B){let N=OW(J.handlers,Q,U,q,B);return new ZY(N,J.dispatched_paths,J.next_dispatched_paths)}function a6(J,Q,U){return S9("",o8,"",J,Q,U,U0(),!1,!1)}function P9(J){return NW("",o8,J)}function p0(){return NW("",o8,"")}function aJ(J,Q){let U=o8(JY(o8(Q),J.mapper));if(J instanceof J0){let{children:q,keyed_children:B}=J;return new J0(J.kind,J.key,U,o8(q),o8(B))}else if(J instanceof o6){let{attributes:q,children:B,keyed_children:N}=J;return new o6(J.kind,J.key,U,J.namespace,J.tag,o8(q),o8(B),o8(N),J.self_closing,J.void)}else if(J instanceof q0)return o8(J);else{let q=J.attributes;return new EY(J.kind,J.key,U,J.namespace,J.tag,o8(q),J.inner_html)}}function Z8(J){return P9(J)}function tJ(J,Q){return a6("h1",J,Q)}function E0(J,Q){return a6("h2",J,Q)}function A9(J,Q){return a6("h3",J,Q)}function G8(J,Q){return a6("div",J,Q)}function Q6(J,Q){return a6("p",J,Q)}function Z0(J,Q){return a6("a",J,Q)}function OV(J,Q){return a6("span",J,Q)}function eJ(J){return a6("img",J,v8)}function yY(J,Q){return a6("button",J,Q)}function $7(J,Q){return a6("form",J,Q)}function g7(J){return a6("input",J,v8)}function FY(J,Q){return a6("label",J,Q)}function YZ(J,Q){return a6("textarea",f(QW("value",i6(Q)),J),A([P9(Q)]))}class R9 extends g{constructor(J,Q,U,q){super();this.index=J,this.removed=Q,this.changes=U,this.children=q}}class VZ extends g{constructor(J,Q){super();this.kind=J,this.content=Q}}class XZ extends g{constructor(J,Q){super();this.kind=J,this.inner_html=Q}}class WZ extends g{constructor(J,Q,U){super();this.kind=J,this.added=Q,this.removed=U}}class KZ extends g{constructor(J,Q,U){super();this.kind=J,this.key=Q,this.before=U}}class JZ extends g{constructor(J,Q,U){super();this.kind=J,this.index=Q,this.with=U}}class ZZ extends g{constructor(J,Q){super();this.kind=J,this.index=Q}}class QZ extends g{constructor(J,Q,U){super();this.kind=J,this.children=Q,this.before=U}}function AW(J,Q,U,q){return new R9(J,Q,U,q)}var RW=0;function GZ(J){return new VZ(RW,J)}var IW=1;function FZ(J){return new XZ(IW,J)}var wW=2;function HW(J,Q){return new WZ(wW,J,Q)}var LW=3;function zZ(J,Q){return new KZ(LW,J,Q)}var jW=4;function UZ(J){return new ZZ(jW,J)}var TW=5;function V7(J,Q){return new JZ(TW,J,Q)}var xW=6;function EW(J,Q){return new QZ(xW,J,Q)}class MZ extends g{constructor(J,Q,U,q,B,N,S,w){super();this.kind=J,this.open_shadow_root=Q,this.will_adopt_styles=U,this.observed_attributes=q,this.observed_properties=B,this.requested_contexts=N,this.provided_contexts=S,this.vdom=w}}class BZ extends g{constructor(J,Q){super();this.kind=J,this.patch=Q}}class DZ extends g{constructor(J,Q,U){super();this.kind=J,this.name=Q,this.data=U}}class NZ extends g{constructor(J,Q,U){super();this.kind=J,this.key=Q,this.value=U}}class SV extends g{constructor(J,Q){super();this.kind=J,this.messages=Q}}class PV extends g{constructor(J,Q,U){super();this.kind=J,this.name=Q,this.value=U}}class AV extends g{constructor(J,Q,U){super();this.kind=J,this.name=Q,this.value=U}}class RV extends g{constructor(J,Q,U,q){super();this.kind=J,this.path=Q,this.name=U,this.event=q}}class yW extends g{constructor(J,Q,U){super();this.kind=J,this.key=Q,this.value=U}}var lF=0;function CZ(J,Q,U,q,B,N,S){return new MZ(lF,J,Q,U,q,B,N,S)}var iF=1;function kW(J){return new BZ(iF,J)}var oF=2;function OZ(J,Q){return new DZ(oF,J,Q)}var aF=3;function SZ(J,Q){return new NZ(aF,J,Q)}class IV extends g{constructor(J,Q){super();this.patch=J,this.events=Q}}class RZ extends g{constructor(J,Q,U){super();this.added=J,this.removed=Q,this.events=U}}function tF(J,Q,U,q){if(U==="input"&&Q==="")return CV(J,q);else if(U==="select"&&Q==="")return CV(J,q);else if(U==="textarea"&&Q==="")return CV(J,q);else return!1}function AZ(J,Q,U,q,B,N,S,w){while(!0){let T=J,v=Q,m=U,u=q,d=B,J8=N,Y8=S,z8=w;if(d instanceof r)if(J8 instanceof r)return new RZ(Y8,z8,u);else{let e=J8.head;if(e instanceof y6){let C8=e,X8=J8.tail,q8=e.name,j8=e.handler,p=f(C8,Y8),D8=h7(u,m,v,q8,j8);J=T,Q=v,U=m,q=D8,B=d,N=X8,S=p,w=z8}else{let C8=e,X8=J8.tail,q8=f(C8,Y8);J=T,Q=v,U=m,q=u,B=d,N=X8,S=q8,w=z8}}else if(J8 instanceof r){let e=d.head;if(e instanceof y6){let C8=e,X8=d.tail,q8=e.name,j8=f(C8,z8),p=NV(u,v,q8);J=T,Q=v,U=m,q=p,B=X8,N=J8,S=Y8,w=j8}else{let C8=e,X8=d.tail,q8=f(C8,z8);J=T,Q=v,U=m,q=u,B=X8,N=J8,S=Y8,w=q8}}else{let{head:e,tail:C8}=d,X8=J8.head,q8=J8.tail,j8=GV(e,X8);if(j8 instanceof A6)if(e instanceof y6){let p=e.name,D8=f(e,z8),N8=NV(u,v,p);J=T,Q=v,U=m,q=N8,B=C8,N=J8,S=Y8,w=D8}else{let p=f(e,z8);J=T,Q=v,U=m,q=u,B=C8,N=J8,S=Y8,w=p}else if(j8 instanceof R6)if(e instanceof A0)if(X8 instanceof A0){let p,D8=X8.name;if(D8==="value")p=T||e.value!==X8.value;else if(D8==="checked")p=T||e.value!==X8.value;else if(D8==="selected")p=T||e.value!==X8.value;else p=e.value!==X8.value;let N8=p,h8;if(N8)h8=f(X8,Y8);else h8=Y8;let P8=h8;J=T,Q=v,U=m,q=u,B=C8,N=q8,S=P8,w=z8}else if(X8 instanceof y6){let{name:p,handler:D8}=X8,N8=f(X8,Y8),h8=f(e,z8),P8=h7(u,m,v,p,D8);J=T,Q=v,U=m,q=P8,B=C8,N=q8,S=N8,w=h8}else{let p=f(X8,Y8),D8=f(e,z8);J=T,Q=v,U=m,q=u,B=C8,N=q8,S=p,w=D8}else if(e instanceof U9)if(X8 instanceof U9){let p,D8=X8.name;if(D8==="scrollLeft")p=!0;else if(D8==="scrollRight")p=!0;else if(D8==="value")p=T||!eY(e.value,X8.value);else if(D8==="checked")p=T||!eY(e.value,X8.value);else if(D8==="selected")p=T||!eY(e.value,X8.value);else p=!eY(e.value,X8.value);let N8=p,h8;if(N8)h8=f(X8,Y8);else h8=Y8;let P8=h8;J=T,Q=v,U=m,q=u,B=C8,N=q8,S=P8,w=z8}else if(X8 instanceof y6){let{name:p,handler:D8}=X8,N8=f(X8,Y8),h8=f(e,z8),P8=h7(u,m,v,p,D8);J=T,Q=v,U=m,q=P8,B=C8,N=q8,S=N8,w=h8}else{let p=f(X8,Y8),D8=f(e,z8);J=T,Q=v,U=m,q=u,B=C8,N=q8,S=p,w=D8}else if(X8 instanceof y6){let{name:p,handler:D8}=X8,N8=e.prevent_default.kind!==X8.prevent_default.kind||e.stop_propagation.kind!==X8.stop_propagation.kind||e.immediate!==X8.immediate||e.debounce!==X8.debounce||e.throttle!==X8.throttle,h8;if(N8)h8=f(X8,Y8);else h8=Y8;let P8=h8,$8=h7(u,m,v,p,D8);J=T,Q=v,U=m,q=$8,B=C8,N=q8,S=P8,w=z8}else{let p=e.name,D8=f(X8,Y8),N8=f(e,z8),h8=NV(u,v,p);J=T,Q=v,U=m,q=h8,B=C8,N=q8,S=D8,w=N8}else if(X8 instanceof y6){let{name:p,handler:D8}=X8,N8=f(X8,Y8),h8=h7(u,m,v,p,D8);J=T,Q=v,U=m,q=h8,B=d,N=q8,S=N8,w=z8}else{let p=f(X8,Y8);J=T,Q=v,U=m,q=u,B=d,N=q8,S=p,w=z8}}}}function vW(J,Q,U,q,B,N,S,w,T,v,m,u,d,J8){while(!0){let Y8=J,z8=Q,e=U,C8=q,X8=B,q8=N,j8=S,p=w,D8=T,N8=v,h8=m,P8=u,$8=d,V6=J8;if(Y8 instanceof r)if(e instanceof r)return new IV(new R9(D8,j8,h8,P8),V6);else{let C6=oJ(V6,$8,N8,p,e),N6=EW(e,p-q8),u8=f(N6,h8);return new IV(new R9(D8,j8,u8,P8),C6)}else if(e instanceof r){let{head:C6,tail:N6}=Y8,u8;if(C6.key===""||!N9(X8,C6.key))u8=j8+1;else u8=j8;let r8=u8,W6=QY(V6,N8,p,C6);J=N6,Q=z8,U=e,q=C8,B=X8,N=q8,S=r8,w=p,T=D8,v=N8,m=h8,u=P8,d=$8,J8=W6}else{let C6=Y8.head,N6=e.head;if(C6.key!==N6.key){let u8=Y8.tail,X6=e.tail,r8=D9(z8,N6.key);if(N9(C8,C6.key))if(r8 instanceof l){let T8=r8[0];if(N9(X8,C6.key))J=u8,Q=z8,U=e,q=C8,B=X8,N=q8-1,S=j8,w=p,T=D8,v=N8,m=h8,u=P8,d=$8,J8=V6;else{let l8=p-q8,f8=f(zZ(N6.key,l8),h8),U6=aY(X8,N6.key,void 0),K6=q8+1;J=f(T8,Y8),Q=z8,U=e,q=C8,B=U6,N=K6,S=j8,w=p,T=D8,v=N8,m=f8,u=P8,d=$8,J8=V6}}else{let T8=p-q8,a8=GY(V6,$8,N8,p,N6),l8=EW(A([N6]),T8),f8=f(l8,h8);J=Y8,Q=z8,U=X6,q=C8,B=X8,N=q8+1,S=j8,w=p+1,T=D8,v=N8,m=f8,u=P8,d=$8,J8=a8}else if(r8 instanceof l){let T8=p-q8,a8=f(UZ(T8),h8),l8=QY(V6,N8,p,C6),f8=q8-1;J=u8,Q=z8,U=e,q=C8,B=X8,N=f8,S=j8,w=p,T=D8,v=N8,m=a8,u=P8,d=$8,J8=l8}else{let T8=V7(p-q8,N6),a8,f8=QY(V6,N8,p,C6);a8=GY(f8,$8,N8,p,N6);let U6=a8;J=u8,Q=z8,U=X6,q=C8,B=X8,N=q8,S=j8,w=p+1,T=D8,v=N8,m=f(T8,h8),u=P8,d=$8,J8=U6}}else{let u8=Y8.head;if(u8 instanceof J0){let X6=e.head;if(X6 instanceof J0){let r8=u8,W6=Y8.tail,T8=X6,a8=e.tail,l8=JY($8,T8.mapper),f8=R0(N8,p,T8.key),U6=vW(r8.children,r8.keyed_children,T8.children,T8.keyed_children,U0(),0,0,0,p,f8,v8,v8,l8,V6),K6,B6=U6.patch;if(B6.changes instanceof r)if(B6.children instanceof r)if(B6.removed===0)K6=P8;else K6=f(U6.patch,P8);else K6=f(U6.patch,P8);else K6=f(U6.patch,P8);let u6=K6;J=W6,Q=z8,U=a8,q=C8,B=X8,N=q8,S=j8,w=p+1,T=D8,v=N8,m=h8,u=u6,d=$8,J8=U6.events}else{let r8=u8,W6=Y8.tail,T8=X6,a8=e.tail,l8=V7(p-q8,T8),f8,K6=QY(V6,N8,p,r8);f8=GY(K6,$8,N8,p,T8);let B6=f8;J=W6,Q=z8,U=a8,q=C8,B=X8,N=q8,S=j8,w=p+1,T=D8,v=N8,m=f(l8,h8),u=P8,d=$8,J8=B6}}else if(u8 instanceof o6){let X6=e.head;if(X6 instanceof o6){let r8=u8,W6=X6;if(r8.namespace===W6.namespace&&r8.tag===W6.tag){let T8=Y8.tail,a8=e.tail,l8=JY($8,W6.mapper),f8=R0(N8,p,W6.key),U6=tF(V6,W6.namespace,W6.tag,f8),K6=AZ(U6,f8,l8,V6,r8.attributes,W6.attributes,v8,v8),B6,B0,u6;B6=K6.added,B0=K6.removed,u6=K6.events;let k0;if(B6 instanceof r&&B0 instanceof r)k0=v8;else k0=A([HW(B6,B0)]);let NY=k0,CY=vW(r8.children,r8.keyed_children,W6.children,W6.keyed_children,U0(),0,0,0,p,f8,NY,v8,l8,u6),w0,d0=CY.patch;if(d0.changes instanceof r)if(d0.children instanceof r)if(d0.removed===0)w0=P8;else w0=f(CY.patch,P8);else w0=f(CY.patch,P8);else w0=f(CY.patch,P8);let sV=w0;J=T8,Q=z8,U=a8,q=C8,B=X8,N=q8,S=j8,w=p+1,T=D8,v=N8,m=h8,u=sV,d=$8,J8=CY.events}else{let T8=u8,a8=Y8.tail,l8=X6,f8=e.tail,U6=V7(p-q8,l8),K6,B0=QY(V6,N8,p,T8);K6=GY(B0,$8,N8,p,l8);let u6=K6;J=a8,Q=z8,U=f8,q=C8,B=X8,N=q8,S=j8,w=p+1,T=D8,v=N8,m=f(U6,h8),u=P8,d=$8,J8=u6}}else{let r8=u8,W6=Y8.tail,T8=X6,a8=e.tail,l8=V7(p-q8,T8),f8,K6=QY(V6,N8,p,r8);f8=GY(K6,$8,N8,p,T8);let B6=f8;J=W6,Q=z8,U=a8,q=C8,B=X8,N=q8,S=j8,w=p+1,T=D8,v=N8,m=f(l8,h8),u=P8,d=$8,J8=B6}}else if(u8 instanceof q0){let X6=e.head;if(X6 instanceof q0){let r8=u8,W6=X6;if(r8.content===W6.content){let T8=Y8.tail,a8=e.tail;J=T8,Q=z8,U=a8,q=C8,B=X8,N=q8,S=j8,w=p+1,T=D8,v=N8,m=h8,u=P8,d=$8,J8=V6}else{let T8=Y8.tail,a8=X6,l8=e.tail,f8=AW(p,0,A([GZ(a8.content)]),v8);J=T8,Q=z8,U=l8,q=C8,B=X8,N=q8,S=j8,w=p+1,T=D8,v=N8,m=h8,u=f(f8,P8),d=$8,J8=V6}}else{let r8=u8,W6=Y8.tail,T8=X6,a8=e.tail,l8=V7(p-q8,T8),f8,K6=QY(V6,N8,p,r8);f8=GY(K6,$8,N8,p,T8);let B6=f8;J=W6,Q=z8,U=a8,q=C8,B=X8,N=q8,S=j8,w=p+1,T=D8,v=N8,m=f(l8,h8),u=P8,d=$8,J8=B6}}else{let X6=e.head;if(X6 instanceof EY){let r8=u8,W6=Y8.tail,T8=X6,a8=e.tail,l8=JY($8,T8.mapper),f8=R0(N8,p,T8.key),U6=AZ(!1,f8,l8,V6,r8.attributes,T8.attributes,v8,v8),K6,B6,B0;K6=U6.added,B6=U6.removed,B0=U6.events;let u6;if(K6 instanceof r&&B6 instanceof r)u6=v8;else u6=A([HW(K6,B6)]);let k0=u6,NY;if(r8.inner_html===T8.inner_html)NY=k0;else NY=f(FZ(T8.inner_html),k0);let w0=NY,d0;if(w0 instanceof r)d0=P8;else d0=f(AW(p,0,w0,A([])),P8);let h9=d0;J=W6,Q=z8,U=a8,q=C8,B=X8,N=q8,S=j8,w=p+1,T=D8,v=N8,m=h8,u=h9,d=$8,J8=B0}else{let r8=u8,W6=Y8.tail,T8=X6,a8=e.tail,l8=V7(p-q8,T8),f8,K6=QY(V6,N8,p,r8);f8=GY(K6,$8,N8,p,T8);let B6=f8;J=W6,Q=z8,U=a8,q=C8,B=X8,N=q8,S=j8,w=p+1,T=D8,v=N8,m=f(l8,h8),u=P8,d=$8,J8=B6}}}}}}function f7(J,Q,U){return vW(A([Q]),U0(),A([U]),U0(),U0(),0,0,0,0,k7,v8,v8,o8,nJ(J))}var{setTimeout:eF,clearTimeout:_W}=globalThis,Yz=(J,Q)=>P0().createElementNS(J,Q),Vz=(J)=>P0().createTextNode(J),Xz=()=>P0().createDocumentFragment(),m7=(J,Q,U)=>J.insertBefore(Q,U),wZ=BJ?(J,Q,U)=>J.moveBefore(Q,U):m7,Wz=(J,Q)=>J.removeChild(Q),Kz=(J,Q)=>J.getAttribute(Q),HZ=(J,Q,U)=>J.setAttribute(Q,U),Jz=(J,Q)=>J.removeAttribute(Q),Zz=(J,Q,U,q)=>J.addEventListener(Q,U,q),LZ=(J,Q,U)=>J.removeEventListener(Q,U),Qz=(J,Q)=>J.innerHTML=Q,Gz=(J,Q)=>J.data=Q,zY=Symbol("lustre");class xZ{constructor(J,Q,U,q){this.kind=J,this.key=q,this.parent=Q,this.children=[],this.node=U,this.handlers=new Map,this.throttles=new Map,this.debouncers=new Map}get parentNode(){return this.kind===x0?this.node.parentNode:this.node}}var UY=(J,Q,U,q,B)=>{let N=new xZ(J,Q,U,B);return U[zY]=N,Q?.children.splice(q,0,N),N},Fz=(J)=>{let Q="";for(let U=J[zY];U.parent;U=U.parent)if(U.key)Q=`${O9}${U.key}${Q}`;else{let q=U.parent.children.indexOf(U);Q=`${O9}${q}${Q}`}return Q.slice(1)};class $W{#Y=null;#K=()=>{};#W=!1;#X=!1;constructor(J,Q,{useServerEvents:U=!1,exposeKeys:q=!1}={}){this.#Y=J,this.#K=Q,this.#W=U,this.#X=q}mount(J){UY(tY,null,this.#Y,0,null),this.#O(this.#Y,null,this.#Y[zY],0,J)}push(J){this.#V.push({node:this.#Y[zY],patch:J}),this.#J()}#V=[];#J(){let J=this.#V;while(J.length){let{node:Q,patch:U}=J.pop(),{children:q}=Q,{changes:B,removed:N,children:S}=U;if(X7(B,(w)=>this.#Q(Q,w)),N)this.#B(Q,q.length-N,N);X7(S,(w)=>{let T=q[w.index|0];this.#V.push({node:T,patch:w})})}}#Q(J,Q){switch(Q.kind){case RW:this.#I(J,Q);break;case IW:this.#S(J,Q);break;case wW:this.#D(J,Q);break;case LW:this.#z(J,Q);break;case jW:this.#q(J,Q);break;case TW:this.#U(J,Q);break;case xW:this.#G(J,Q);break}}#G(J,{children:Q,before:U}){let q=Xz(),B=this.#F(J,U);this.#C(q,null,J,U|0,Q),m7(J.parentNode,q,B)}#U(J,{index:Q,with:U}){this.#B(J,Q|0,1);let q=this.#F(J,Q);this.#O(J.parentNode,q,J,Q|0,U)}#F(J,Q){Q=Q|0;let{children:U}=J,q=U.length;if(Q<q)return U[Q].node;let B=U[q-1];if(!B&&J.kind!==x0)return null;if(!B)B=J;while(B.kind===x0&&B.children.length)B=B.children[B.children.length-1];return B.node.nextSibling}#z(J,{key:Q,before:U}){U=U|0;let{children:q,parentNode:B}=J,N=q[U].node,S=q[U];for(let m=U+1;m<q.length;++m){let u=q[m];if(q[m]=S,S=u,u.key===Q){q[U]=u;break}}let{kind:w,node:T,children:v}=S;if(wZ(B,T,N),w===x0)this.#Z(B,v,N)}#Z(J,Q,U){for(let q=0;q<Q.length;++q){let{kind:B,node:N,children:S}=Q[q];if(wZ(J,N,U),B===x0)this.#Z(J,S,U)}}#q(J,{index:Q}){this.#B(J,Q,1)}#B(J,Q,U){let{children:q,parentNode:B}=J,N=q.splice(Q,U);for(let S=0;S<N.length;++S){let{kind:w,node:T,children:v}=N[S];if(Wz(B,T),this.#M(N[S]),w===x0)N.push(...v)}}#M(J){let{debouncers:Q,children:U}=J;for(let{timeout:q}of Q.values())if(q)_W(q);Q.clear(),X7(U,(q)=>this.#M(q))}#D({node:J,handlers:Q,throttles:U,debouncers:q},{added:B,removed:N}){X7(N,({name:S})=>{if(Q.delete(S))LZ(J,S,hW),this.#N(U,S,0),this.#N(q,S,0);else Jz(J,S),TZ[S]?.removed?.(J,S)}),X7(B,(S)=>this.#R(J,S))}#I({node:J},{content:Q}){Gz(J,Q??"")}#S({node:J},{inner_html:Q}){Qz(J,Q??"")}#C(J,Q,U,q,B){X7(B,(N)=>this.#O(J,Q,U,q++,N))}#O(J,Q,U,q,B){switch(B.kind){case tY:{let N=this.#P(U,q,B);this.#C(N,null,N[zY],0,B.children),m7(J,N,Q);break}case v7:{let N=this.#A(U,q,B);m7(J,N,Q);break}case x0:{let N=this.#A(U,q,B);m7(J,N,Q),this.#C(J,Q,N[zY],0,B.children);break}case uJ:{let N=this.#P(U,q,B);this.#S({node:N},B),m7(J,N,Q);break}}}#P(J,Q,{kind:U,key:q,tag:B,namespace:N,attributes:S}){let w=Yz(N||JV,B);if(UY(U,J,w,Q,q),this.#X&&q)HZ(w,"data-lustre-key",q);return X7(S,(T)=>this.#R(w,T)),w}#A(J,Q,{kind:U,key:q,content:B}){let N=Vz(B??"");return UY(U,J,N,Q,q),N}#R(J,Q){let{debouncers:U,handlers:q,throttles:B}=J[zY],{kind:N,name:S,value:w,prevent_default:T,debounce:v,throttle:m}=Q;switch(N){case XW:{let u=w??"";if(S==="virtual:defaultValue"){J.defaultValue=u;return}if(u!==Kz(J,S))HZ(J,S,u);TZ[S]?.added?.(J,u);break}case WW:J[S]=w;break;case KW:{if(q.has(S))LZ(J,S,hW);let u=T.kind===JW;Zz(J,S,hW,{passive:u}),this.#N(B,S,m),this.#N(U,S,v),q.set(S,(d)=>this.#w(Q,d));break}}}#N(J,Q,U){let q=J.get(Q);if(U>0)if(q)q.delay=U;else J.set(Q,{delay:U});else if(q){let{timeout:B}=q;if(B)_W(B);J.delete(Q)}}#w(J,Q){let{currentTarget:U,type:q}=Q,{debouncers:B,throttles:N}=U[zY],S=Fz(U),{prevent_default:w,stop_propagation:T,include:v,immediate:m}=J;if(w.kind===FV)Q.preventDefault();if(T.kind===FV)Q.stopPropagation();if(q==="submit")Q.detail??={},Q.detail.formData=[...new FormData(Q.target,Q.submitter).entries()];let u=this.#W?zz(Q,v??[]):Q,d=N.get(q);if(d){let Y8=Date.now(),z8=d.last||0;if(Y8>z8+d.delay)d.last=Y8,d.lastEvent=Q,this.#K(u,S,q,m)}let J8=B.get(q);if(J8)_W(J8.timeout),J8.timeout=eF(()=>{if(Q===N.get(q)?.lastEvent)return;this.#K(u,S,q,m)},J8.delay);if(!d&&!J8)this.#K(u,S,q,m)}}var X7=(J,Q)=>{if(Array.isArray(J))for(let U=0;U<J.length;U++)Q(J[U]);else if(J)for(J;J.head;J=J.tail)Q(J.head)},hW=(J)=>{let{currentTarget:Q,type:U}=J;Q[zY].handlers.get(U)(J)},zz=(J,Q=[])=>{let U={};if(J.type==="input"||J.type==="change")Q.push("target.value");if(J.type==="submit")Q.push("detail.formData");for(let q of Q){let B=q.split(".");for(let N=0,S=J,w=U;N<B.length;N++){if(N===B.length-1){w[B[N]]=S[B[N]];break}w=w[B[N]]??={},S=S[B[N]]}}return U},jZ=(J)=>{return{added(Q){Q[J]=!0},removed(Q){Q[J]=!1}}},Uz=(J)=>{return{added(Q,U){Q[J]=U}}},TZ={checked:jZ("checked"),selected:jZ("selected"),value:Uz("value"),autofocus:{added(J){queueMicrotask(()=>{J.focus?.()})}},autoplay:{added(J){try{J.play?.()}catch(Q){console.error(Q)}}}};function qz(J,Q,U){while(!0){let q=J,B=Q,N=U;if(q instanceof r)return[B,Y6(N)];else{let S=q.tail,w=q.head[0],T=q.head[1],v=bJ(w,T),m;if(w==="")m=B;else m=aY(B,w,v);let u=m,d=f(v,N);J=S,Q=u,U=d}}}function gW(J){return qz(J,U0(),v8)}function EZ(J,Q,U){let q=gW(U),B,N;return B=q[0],N=q[1],S9("",o8,"",J,Q,N,B,!1,!1)}function yZ(J,Q,U,q){let B=gW(q),N,S;return N=B[0],S=B[1],S9("",o8,J,Q,U,S,N,!1,!1)}function kZ(J){let Q=gW(J),U,q;return U=Q[0],q=Q[1],DW("",o8,q,U)}var vZ=(J)=>{let Q=UY(tY,null,J,0,null),U=0;for(let S=J.firstChild;S;S=S.nextSibling)if(_Z(S))U+=1;if(U===0){let S=P0().createTextNode("");return UY(v7,Q,S,0,null),J.replaceChildren(S),p0()}if(U===1)return fW(Q,J).head[1];let q=P0().createTextNode(""),B=UY(x0,Q,q,0,null),N=fW(B,J);return J.insertBefore(q,J.firstChild),kZ(N)},_Z=(J)=>{switch(J.nodeType){case ZV:return!0;case YW:return!!J.data;default:return!1}},Mz=(J,Q,U,q)=>{if(!_Z(Q))return null;switch(Q.nodeType){case ZV:{let B=UY(tY,J,Q,q,U),N=Q.localName,S=Q.namespaceURI,w=!S||S===JV;if(w&&Bz.includes(N))Dz(N,Q);let T=Nz(Q),v=fW(B,Q);return w?EZ(N,T,v):yZ(S,N,T,v)}case YW:return UY(v7,J,Q,q,null),P9(Q.data);default:return null}},Bz=["input","select","textarea"],Dz=(J,Q)=>{let{value:U,checked:q}=Q;if(J==="input"&&Q.type==="checkbox"&&!q)return;if(J==="input"&&Q.type==="radio"&&!q)return;if(Q.type!=="checkbox"&&Q.type!=="radio"&&!U)return;queueMicrotask(()=>{if(Q.value=U,Q.checked=q,Q.dispatchEvent(new Event("input",{bubbles:!0})),Q.dispatchEvent(new Event("change",{bubbles:!0})),P0().activeElement!==Q)Q.dispatchEvent(new Event("blur",{bubbles:!0}))})},fW=(J,Q)=>{let U=null,q=Q.firstChild,B=null,N=0;while(q){let S=q.nodeType===ZV?q.getAttribute("data-lustre-key"):null;if(S!=null)q.removeAttribute("data-lustre-key");let w=Mz(J,q,S,N),T=q.nextSibling;if(w){let v=new V0([S??"",w],null);if(B)B=B.tail=v;else B=U=v;N+=1}else Q.removeChild(q);q=T}if(!B)return v8;return B.tail=v8,U},Nz=(J)=>{let Q=J.attributes.length,U=v8;while(Q-- >0){let q=J.attributes[Q];if(q.name==="xmlns")continue;U=new V0(Cz(q),U)}return U},Cz=(J)=>{let{localName:Q,value:U}=J;return F6(Q,U)};var kY=()=>!!P0();class wV{constructor(J,[Q,U],q,B){this.root=J,this.#Y=Q,this.#K=q,this.#W=B,this.root.addEventListener("context-request",(N)=>{if(!(N.context&&N.callback))return;if(!this.#Q.has(N.context))return;N.stopImmediatePropagation();let S=this.#Q.get(N.context);if(N.subscribe){let w=()=>{S.subscribers=S.subscribers.filter((T)=>T!==N.callback)};S.subscribers.push([N.callback,w]),N.callback(S.value,w)}else N.callback(S.value)}),this.#J=new $W(this.root,(N,S,w)=>{let[T,v]=_7(this.#V,S,w,N);if(this.#V=T,v.isOk()){let m=v[0];if(m.stop_propagation)N.stopPropagation();if(m.prevent_default)N.preventDefault();this.dispatch(m.message,!1)}}),this.#X=vZ(this.root),this.#V=SW(),this.#q=!0,this.#M(U)}root=null;dispatch(J,Q=!1){if(this.#q||=Q,this.#G)this.#U.push(J);else{let[U,q]=this.#W(this.#Y,J);this.#Y=U,this.#M(q)}}emit(J,Q){(this.root.host??this.root).dispatchEvent(new CustomEvent(J,{detail:Q,bubbles:!0,composed:!0}))}provide(J,Q){if(!this.#Q.has(J))this.#Q.set(J,{value:Q,subscribers:[]});else{let U=this.#Q.get(J);U.value=Q;for(let q=U.subscribers.length-1;q>=0;q--){let[B,N]=U.subscribers[q];if(!B){U.subscribers.splice(q,1);continue}B(Q,N)}}}#Y;#K;#W;#X;#V;#J;#Q=new Map;#G=!1;#U=[];#F=v8;#z=v8;#Z=null;#q=!1;#B={dispatch:(J,Q)=>this.dispatch(J,Q),emit:(J,Q)=>this.emit(J,Q),select:()=>{},root:()=>this.root,provide:(J,Q)=>this.provide(J,Q)};#M(J){this.#G=!0;while(!0){for(let Q=J.synchronous;Q.tail;Q=Q.tail)Q.head(this.#B);if(this.#F=$Z(this.#F,J.before_paint),this.#z=$Z(this.#z,J.after_paint),!this.#U.length)break;[this.#Y,J]=this.#W(this.#Y,this.#U.shift())}if(this.#G=!1,this.#q)cancelAnimationFrame(this.#Z),this.#D();else if(!this.#Z)this.#Z=requestAnimationFrame(()=>{this.#D()})}#D(){this.#q=!1,this.#Z=null;let J=this.#K(this.#Y),{patch:Q,events:U}=f7(this.#V,this.#X,J);if(this.#V=U,this.#X=J,this.#J.push(Q),this.#F instanceof V0){let q=hZ(this.#F);this.#F=v8,queueMicrotask(()=>{this.#q=!0,this.#M(q)})}if(this.#z instanceof V0){let q=hZ(this.#z);this.#z=v8,requestAnimationFrame(()=>{this.#q=!0,this.#M(q)})}}}function hZ(J){return{synchronous:J,after_paint:v8,before_paint:v8}}function $Z(J,Q){if(J instanceof r)return Q;else if(Q instanceof r)return J;else return H0(J,Q)}class bW extends g{constructor(J){super();this.message=J}}class uW extends g{constructor(J){super();this.callback=J}}class pW extends g{constructor(J){super();this.callback=J}}class vY extends g{constructor(J){super();this.message=J}}class W7 extends g{constructor(J,Q){super();this.name=J,this.data=Q}}class HV extends g{constructor(J,Q){super();this.key=J,this.value=Q}}class K7 extends g{}class fZ extends g{constructor(J,Q,U,q,B,N,S,w,T,v){super();this.open_shadow_root=J,this.adopt_styles=Q,this.delegates_focus=U,this.attributes=q,this.properties=B,this.contexts=N,this.is_form_associated=S,this.on_form_autofill=w,this.on_form_reset=T,this.on_form_restore=v}}function mZ(J){let Q=new fZ(!0,!0,!1,v8,v8,v8,!1,QV,QV,QV);return d6(J,Q,(U,q)=>{return q.apply(U)})}class uZ{#Y;constructor(J,[Q,U],q,B){this.#Y=new wV(J,[Q,U],B,q)}send(J){switch(J.constructor){case vY:{this.dispatch(J.message,!1);break}case W7:{this.emit(J.name,J.data);break}case K7:break}}dispatch(J,Q){this.#Y.dispatch(J,Q)}emit(J,Q){this.#Y.emit(J,Q)}}var pZ=({init:J,update:Q,view:U},q,B)=>{if(!kY())return new W8(new I9);let N=q instanceof HTMLElement?q:P0().querySelector(q);if(!N)return new W8(new cW(q));return new l(new uZ(N,J(B),Q,U))};class Oz{#Y;#K;#W;#X;#V;#J;#Q=S7();#G=new Set;constructor([J,Q],U,q,B){this.#Y=J,this.#K=U,this.#W=q,this.#X=B,this.#V=this.#W(this.#Y),this.#J=PW(this.#V),this.#Z(Q)}send(J){switch(J.constructor){case bW:{let{message:Q}=J,U=this.#U(Q),q=f7(this.#J,this.#V,U);this.#V=U,this.#J=q.events,this.broadcast(kW(q.patch));return}case uW:{let{callback:Q}=J;this.#G.add(Q),Q(CZ(this.#X.open_shadow_root,this.#X.adopt_styles,G9(this.#X.attributes),G9(this.#X.properties),G9(this.#X.contexts),this.#Q,this.#V));return}case pW:{let{callback:Q}=J;this.#G.delete(Q);return}case vY:{let{message:Q}=J,[U,q]=this.#K(this.#Y,Q),B=this.#W(U),N=f7(this.#J,this.#V,B);this.#Z(q),this.#Y=U,this.#V=B,this.#J=N.events,this.broadcast(kW(N.patch));return}case W7:{let{name:Q,data:U}=J;this.broadcast(OZ(Q,U));return}case HV:{let{key:Q,value:U}=J;this.#Q=J9(this.#Q,Q,U),this.broadcast(SZ(Q,U));return}case K7:{this.#Y=null,this.#K=null,this.#W=null,this.#X=null,this.#V=null,this.#J=null,this.#Q=null,this.#G.clear();return}default:return}}broadcast(J){for(let Q of this.#G)Q(J)}#U(J){switch(J.constructor){case SV:{let{messages:Q}=J,U=this.#Y,q=n8();for(let B=Q;B.head;B=B.tail){let N=this.#U(B.head);if(N instanceof l){U=N[0][0],q=BV($6.fromArray([q,N[0][1]]));break}}return this.#Z(q),this.#Y=U,this.#W(this.#Y)}case PV:{let{name:Q,value:U}=J,q=this.#F(Q,U);if(q instanceof W8)return this.#V;else{let[B,N]=this.#K(this.#Y,q[0]);return this.#Z(N),this.#Y=B,this.#W(this.#Y)}}case AV:{let{name:Q,value:U}=J,q=this.#z(Q,U);if(q instanceof W8)return this.#V;else{let[B,N]=this.#K(this.#Y,q[0]);return this.#Z(N),this.#Y=B,this.#W(this.#Y)}}case RV:{let{path:Q,name:U,event:q}=J,[B,N]=_7(this.#J,Q,U,q);if(this.#J=B,N instanceof W8)return this.#V;else{let[S,w]=this.#K(this.#Y,N[0].message);return this.#Z(w),this.#Y=S,this.#W(this.#Y)}}case yW:{let{key:Q,value:U}=J,q=LY(this.#X.contexts,Q);if(q instanceof W8)return this.#V;if(q=j0(U,q[0]),q instanceof W8)return this.#V;let[B,N]=this.#K(this.#Y,q[0]);return this.#Z(N),this.#Y=B,this.#W(this.#Y)}}}#F(J,Q){let U=LY(this.#X.attributes,J);switch(U.constructor){case l:return U[0](Q);case W8:return new W8(void 0)}}#z(J,Q){let U=LY(this.#X.properties,J);switch(U.constructor){case l:return U[0](Q);case W8:return new W8(void 0)}}#Z(J){let Q=(S)=>this.send(new vY(S)),U=(S,w)=>this.send(new W7(S,w)),q=()=>{return},B=()=>{return},N=(S,w)=>this.send(new HV(S,w));globalThis.queueMicrotask(()=>{hJ(J,Q,U,q,B,N)})}}class cZ extends g{constructor(J,Q,U,q){super();this.init=J,this.update=Q,this.view=U,this.config=q}}class cW extends g{constructor(J){super();this.selector=J}}class I9 extends g{}function sZ(J,Q,U){return new cZ(J,Q,U,mZ(v8))}function nZ(J,Q,U){return z9(!kY(),new W8(new I9),()=>{return pZ(J,Q,U)})}function lZ(J,Q){return[J,Q]}var Rz={handle_external_links:!1,handle_internal_links:!0},oZ=globalThis?.window?.location?.href,nW=()=>{if(!oZ)return new W8(void 0);else return new l(sW(new URL(oZ)))},rW=(J,Q=Rz)=>{document.addEventListener("click",(U)=>{let q=tZ(U.target);if(!q)return;try{let B=new URL(q.href),N=sW(B),S=B.host!==window.location.host;if(!Q.handle_external_links&&S)return;if(!Q.handle_internal_links&&!S)return;if(U.preventDefault(),!S)window.history.pushState({},"",q.href),window.requestAnimationFrame(()=>{if(B.hash)document.getElementById(B.hash.slice(1))?.scrollIntoView();else window.scrollTo(0,0)});return J(N)}catch{return}}),window.addEventListener("popstate",(U)=>{U.preventDefault();let q=new URL(window.location.href),B=sW(q);window.requestAnimationFrame(()=>{if(q.hash)document.getElementById(q.hash.slice(1))?.scrollIntoView();else window.scrollTo(0,0)}),J(B)}),window.addEventListener("modem-push",({detail:U})=>{J(U)}),window.addEventListener("modem-replace",({detail:U})=>{J(U)})},aZ=(J)=>{window.history.pushState({},"",QJ(J)),window.requestAnimationFrame(()=>{if(J.fragment[0])document.getElementById(J.fragment[0])?.scrollIntoView()}),window.dispatchEvent(new CustomEvent("modem-push",{detail:J}))};var tZ=(J)=>{if(!J||J.tagName==="BODY")return null;else if(J.tagName==="A")return J;else return tZ(J.parentElement)},sW=(J)=>{return new E7(J.protocol?new V8(J.protocol.slice(0,-1)):new U8,new U8,J.hostname?new V8(J.hostname):new U8,J.port?new V8(Number(J.port)):new U8,J.pathname,J.search?new V8(J.search.slice(1)):new U8,J.hash?new V8(J.hash.slice(1)):new U8)};function eZ(J){return T0((Q)=>{return z9(!kY(),void 0,()=>{return rW((U)=>{let B=J(U);return Q(B)})})})}var LV=new E7(new U8,new U8,new U8,new U8,"",new U8,new U8);function w9(J,Q,U){return T0((q)=>{return z9(!kY(),void 0,()=>{return aZ(new E7(LV.scheme,LV.userinfo,LV.host,LV.port,J,Q,U))})})}function jV(J){let Q=document.querySelector(J);if(!Q)return new W8;return new l(Q)}function TV(J){return J.innerText}class XQ extends g{constructor(J,Q){super();this.name=J,this.h3_index=Q}}class WQ extends g{constructor(J,Q,U){super();this.ref=J,this.mime_type=Q,this.size=U}}class KQ extends g{constructor(J,Q,U,q,B,N,S,w,T,v,m,u,d){super();this.id=J,this.uri=Q,this.cid=U,this.did=q,this.handle=B,this.display_name=N,this.description=S,this.avatar_url=w,this.avatar_blob=T,this.home_town=v,this.interests=m,this.created_at=u,this.indexed_at=d}}function Lz(){return b8("name",s8,(J)=>{return b8("value",s8,(Q)=>{return w6(new XQ(J,Q))})})}function jz(){return b8("ref",s8,(J)=>{return b8("mime_type",s8,(Q)=>{return b8("size",R7,(U)=>{return w6(new WQ(J,Q,U))})})})}function H9(){return b8("id",s8,(J)=>{return b8("uri",s8,(Q)=>{return b8("cid",s8,(U)=>{return b8("did",s8,(q)=>{return b8("handle",z0(s8),(B)=>{return b8("display_name",z0(s8),(N)=>{return b8("description",z0(s8),(S)=>{return b8("avatar_url",z0(s8),(w)=>{return b8("avatar_blob",z0(jz()),(T)=>{return b8("home_town",z0(Lz()),(v)=>{return b8("interests",z0(rY(s8)),(m)=>{return b8("created_at",z0(s8),(u)=>{return b8("indexed_at",s8,(d)=>{return w6(new KQ(J,Q,U,q,B,N,S,w,T,v,m,u,d))})})})})})})})})})})})})})}var y0=function(J){J=J||{};var Q=typeof J<"u"?J:{},U={},q;for(q in Q)if(Q.hasOwnProperty(q))U[q]=Q[q];var B=[],N="";function S(h){if(Q.locateFile)return Q.locateFile(h,N);return N+h}var w;{if(typeof document<"u"&&document.currentScript)N=document.currentScript.src;if(N.indexOf("blob:")!==0)N=N.substr(0,N.lastIndexOf("/")+1);else N="";w=function(c,K8,s){var V=new XMLHttpRequest;V.open("GET",c,!0),V.responseType="arraybuffer",V.onload=function(){if(V.status==200||V.status==0&&V.response){K8(V.response);return}var d8=lV(c);if(d8){K8(d8.buffer);return}s()},V.onerror=s,V.send(null)}}var T=Q.print||console.log.bind(console),v=Q.printErr||console.warn.bind(console);for(q in U)if(U.hasOwnProperty(q))Q[q]=U[q];if(U=null,Q.arguments)B=Q.arguments;var m=0,u=function(h){m=h},d=function(){return m},J8=8;function Y8(h,c,K8,s){if(K8=K8||"i8",K8.charAt(K8.length-1)==="*")K8="i32";switch(K8){case"i1":u8[h>>0]=c;break;case"i8":u8[h>>0]=c;break;case"i16":r8[h>>1]=c;break;case"i32":T8[h>>2]=c;break;case"i64":dV=[c>>>0,(Q7=c,+rQ(Q7)>=1?Q7>0?(iQ(+lQ(Q7/4294967296),4294967295)|0)>>>0:~~+dQ((Q7-+(~~Q7>>>0))/4294967296)>>>0:0)],T8[h>>2]=dV[0],T8[h+4>>2]=dV[1];break;case"float":l8[h>>2]=c;break;case"double":f8[h>>3]=c;break;default:fY("invalid type for setValue: "+K8)}}function z8(h,c,K8){if(c=c||"i8",c.charAt(c.length-1)==="*")c="i32";switch(c){case"i1":return u8[h>>0];case"i8":return u8[h>>0];case"i16":return r8[h>>1];case"i32":return T8[h>>2];case"i64":return T8[h>>2];case"float":return l8[h>>2];case"double":return f8[h>>3];default:fY("invalid type for getValue: "+c)}return null}var e=!1;function C8(h,c){if(!h)fY("Assertion failed: "+c)}function X8(h){var c=Q["_"+h];return C8(c,"Cannot call unknown function "+h+", make sure it is exported"),c}function q8(h,c,K8,s,V){var J6={string:function(j6){var m8=0;if(j6!==null&&j6!==void 0&&j6!==0){var c8=(j6.length<<2)+1;m8=PK(c8),P8(j6,m8,c8)}return m8},array:function(j6){var m8=PK(j6.length);return V6(j6,m8),m8}};function d8(j6){if(c==="string")return N8(j6);if(c==="boolean")return Boolean(j6);return j6}var O=X8(h),H6=[],t6=0;if(s)for(var L6=0;L6<s.length;L6++){var p8=J6[K8[L6]];if(p8){if(t6===0)t6=U1();H6[L6]=p8(s[L6])}else H6[L6]=s[L6]}var q6=O.apply(null,H6);if(q6=d8(q6),t6!==0)z1(t6);return q6}function j8(h,c,K8,s){K8=K8||[];var V=K8.every(function(d8){return d8==="number"}),J6=c!=="string";if(J6&&V&&!s)return X8(h);return function(){return q8(h,c,K8,arguments,s)}}var p=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function D8(h,c,K8){var s=c+K8,V=c;while(h[V]&&!(V>=s))++V;if(V-c>16&&h.subarray&&p)return p.decode(h.subarray(c,V));else{var J6="";while(c<V){var d8=h[c++];if(!(d8&128)){J6+=String.fromCharCode(d8);continue}var O=h[c++]&63;if((d8&224)==192){J6+=String.fromCharCode((d8&31)<<6|O);continue}var H6=h[c++]&63;if((d8&240)==224)d8=(d8&15)<<12|O<<6|H6;else d8=(d8&7)<<18|O<<12|H6<<6|h[c++]&63;if(d8<65536)J6+=String.fromCharCode(d8);else{var t6=d8-65536;J6+=String.fromCharCode(55296|t6>>10,56320|t6&1023)}}}return J6}function N8(h,c){return h?D8(X6,h,c):""}function h8(h,c,K8,s){if(!(s>0))return 0;var V=K8,J6=K8+s-1;for(var d8=0;d8<h.length;++d8){var O=h.charCodeAt(d8);if(O>=55296&&O<=57343){var H6=h.charCodeAt(++d8);O=65536+((O&1023)<<10)|H6&1023}if(O<=127){if(K8>=J6)break;c[K8++]=O}else if(O<=2047){if(K8+1>=J6)break;c[K8++]=192|O>>6,c[K8++]=128|O&63}else if(O<=65535){if(K8+2>=J6)break;c[K8++]=224|O>>12,c[K8++]=128|O>>6&63,c[K8++]=128|O&63}else{if(K8+3>=J6)break;c[K8++]=240|O>>18,c[K8++]=128|O>>12&63,c[K8++]=128|O>>6&63,c[K8++]=128|O&63}}return c[K8]=0,K8-V}function P8(h,c,K8){return h8(h,X6,c,K8)}var $8=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function V6(h,c){u8.set(h,c)}function C6(h,c){if(h%c>0)h+=c-h%c;return h}var N6,u8,X6,r8,W6,T8,a8,l8,f8;function U6(h){N6=h,Q.HEAP8=u8=new Int8Array(h),Q.HEAP16=r8=new Int16Array(h),Q.HEAP32=T8=new Int32Array(h),Q.HEAPU8=X6=new Uint8Array(h),Q.HEAPU16=W6=new Uint16Array(h),Q.HEAPU32=a8=new Uint32Array(h),Q.HEAPF32=l8=new Float32Array(h),Q.HEAPF64=f8=new Float64Array(h)}var K6=5271520,B6=28608,B0=Q.TOTAL_MEMORY||33554432;if(Q.buffer)N6=Q.buffer;else N6=new ArrayBuffer(B0);B0=N6.byteLength,U6(N6),T8[B6>>2]=K6;function u6(h){while(h.length>0){var c=h.shift();if(typeof c=="function"){c();continue}var K8=c.func;if(typeof K8==="number")if(c.arg===void 0)Q.dynCall_v(K8);else Q.dynCall_vi(K8,c.arg);else K8(c.arg===void 0?null:c.arg)}}var k0=[],NY=[],CY=[],w0=[];function d0(){if(Q.preRun){if(typeof Q.preRun=="function")Q.preRun=[Q.preRun];while(Q.preRun.length)MK(Q.preRun.shift())}u6(k0)}function h9(){u6(NY)}function sV(){u6(CY)}function qK(){if(Q.postRun){if(typeof Q.postRun=="function")Q.postRun=[Q.postRun];while(Q.postRun.length)nQ(Q.postRun.shift())}u6(w0)}function MK(h){k0.unshift(h)}function nQ(h){w0.unshift(h)}var{abs:rQ,ceil:dQ,floor:lQ,min:iQ}=Math,gY=0,nV=null,n7=null;function oQ(h){if(gY++,Q.monitorRunDependencies)Q.monitorRunDependencies(gY)}function aQ(h){if(gY--,Q.monitorRunDependencies)Q.monitorRunDependencies(gY);if(gY==0){if(nV!==null)clearInterval(nV),nV=null;if(n7){var c=n7;n7=null,c()}}}Q.preloadedImages={},Q.preloadedAudios={};var l0=null,rV="data:application/octet-stream;base64,";function BK(h){return String.prototype.startsWith?h.startsWith(rV):h.indexOf(rV)===0}var Q7,dV;l0="data:application/octet-stream;base64,AAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAAAQAAAAQAAAADAAAABgAAAAUAAAACAAAAAAAAAAIAAAADAAAAAQAAAAQAAAAGAAAAAAAAAAUAAAADAAAABgAAAAQAAAAFAAAAAAAAAAEAAAACAAAABAAAAAUAAAAGAAAAAAAAAAIAAAADAAAAAQAAAAUAAAACAAAAAAAAAAEAAAADAAAABgAAAAQAAAAGAAAAAAAAAAUAAAACAAAAAQAAAAQAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAAAAAAEAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAYAAAAAAAAABQAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAYAAAAAAAAAAwAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAFAAAABAAAAAAAAAABAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAgAAAAQAAAADAAAACAAAAAEAAAAHAAAABgAAAAkAAAAAAAAAAwAAAAIAAAACAAAA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AAAAAAAAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAABQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAEAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAwAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAUAAAABAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAAUAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAD/////AQAAAAAAAAADAAAABAAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAUAAAABAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAEAAAD//////////wEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAACAAAAAAAAAAAAAAABAAAAAgAAAAYAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAAAAAAAAAAAAQAAAAEAAAAFAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAACAAAAAAAAAAAAAAABAAAAAwAAAAcAAAAGAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABwAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAADgAAAAIAAAAAAAAAAAAAAAEAAAAAAAAACQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAIAAAAAAAAAAAAAAAEAAAAEAAAACAAAAAoAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAACQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAAAAAAAAAAAAQAAAAsAAAAPAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAIAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAgAAAAAAAAAAAAAAAQAAAAwAAAAQAAAADAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAADwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAAAAAAAAAAAAABAAAACgAAABMAAAAIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAACQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAAAAAAAAAAAAAEAAAANAAAAEQAAAA0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAACAAAAAAAAAAAAAAABAAAADgAAABIAAAAPAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAADwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABIAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAgAAAAAAAAAAAAAAAQAAAP//////////EwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAASAAAAAAAAABgAAAAAAAAAIQAAAAAAAAAeAAAAAAAAACAAAAADAAAAMQAAAAEAAAAwAAAAAwAAADIAAAADAAAACAAAAAAAAAAFAAAABQAAAAoAAAAFAAAAFgAAAAAAAAAQAAAAAAAAABIAAAAAAAAAKQAAAAEAAAAhAAAAAAAAAB4AAAAAAAAABAAAAAAAAAAAAAAABQAAAAIAAAAFAAAADwAAAAEAAAAIAAAAAAAAAAUAAAAFAAAAHwAAAAEAAAAWAAAAAAAAABAAAAAAAAAAAgAAAAAAAAAGAAAAAAAAAA4AAAAAAAAACgAAAAAAAAALAAAAAAAAABEAAAADAAAAGAAAAAEAAAAXAAAAAwAAABkAAAADAAAAAAAAAAAAAAABAAAABQAAAAkAAAAFAAAABQAAAAAAAAACAAAAAAAAAAYAAAAAAAAAEgAAAAEAAAAKAAAAAAAAAAsAAAAAAAAABAAAAAEAAAADAAAABQAAAAcAAAAFAAAACAAAAAEAAAAAAAAAAAAAAAEAAAAFAAAAEAAAAAEAAAAFAAAAAAAAAAIAAAAAAAAABwAAAAAAAAAVAAAAAAAAACYAAAAAAAAACQAAAAAAAAATAAAAAAAAACIAAAADAAAADgAAAAEAAAAUAAAAAwAAACQAAAADAAAAAwAAAAAAAAANAAAABQAAAB0AAAAFAAAAAQAAAAAAAAAHAAAAAAAAABUAAAAAAAAABgAAAAEAAAAJAAAAAAAAABMAAAAAAAAABAAAAAIAAAAMAAAA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Zhu25b633D8c1YgmzowSQNM25BRKWARArGS08/lNxD+LFssHwmMRQLC5aNcxBgJABL9HT0WRF0CjCmJmOGEOQHsuaVzMP/s/TWJCaGGwBUCeu1PAPLzjP9nqN9DZOBNAKE4JcydbCkCGtbd1qjPzP8dgm9U8jhVAtPeKTkVwDkCeCLss5l37P401XMPLmBdAFd29VMVQDUBg0yA55h75Pz6odcYLCRdApBM4rBrkAkDyAVWgQxbRP4XDMnK20hFAymLlF7EmzD8GUgo9XBHlP3lbK7T9COc/k+OhPthhy7+YGEpnrOvCPzBFhLs15u4/epbqB6H4uz9IuuLF5svev6lzLKY31es/CaQ0envF5z8ZY0xlUADXv7zaz7HYEuI/CfbK1sn16T8uAQfWwxLWPzKn/YuFN94/5KdbC1AFu793fyCSnlfvPzK2y4doAMY/NRg5t1/X6b/shq4QJaHDP5yNIAKPOeI/vpn7BSE30r/X4YQrO6nrv78Ziv/Thto/DqJ1Y6+y5z9l51NaxFrlv8QlA65HOLS/86dxiEc96z+Hj0+LFjneP6LzBZ8LTc2/DaJ1Y6+y579l51NaxFrlP8QlA65HOLQ/8qdxiEc967+Jj0+LFjnev6LzBZ8LTc0/1qdbC1AFuz93fyCSnlfvvzK2y4doAMa/NRg5t1/X6T/vhq4QJaHDv5yNIAKPOeK/wJn7BSE30j/W4YQrO6nrP78Ziv/Thtq/CaQ0envF578XY0xlUADXP7zaz7HYEuK/CvbK1sn16b8rAQfWwxLWvzKn/YuFN96/zWLlF7EmzL8GUgo9XBHlv3lbK7T9COe/kOOhPthhyz+cGEpnrOvCvzBFhLs15u6/c5bqB6H4u79IuuLF5sveP6lzLKY31eu/AQAAAP////8HAAAA/////zEAAAD/////VwEAAP////9hCQAA/////6dBAAD/////kcsBAP/////3kAwA/////8H2VwAAAAAAAAAAAAAAAAACAAAA/////w4AAAD/////YgAAAP////+uAgAA/////8ISAAD/////ToMAAP////8ilwMA/////+4hGQD/////gu2vAAAAAAAAAAAAAAAAAAAAAAACAAAA//////////8BAAAAAwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////AgAAAP//////////AQAAAAAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD/////////////////////AQAAAP///////////////wIAAAD///////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP///////////////////////////////wIAAAD///////////////8BAAAA/////////////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAABAAAA//////////8CAAAA//////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAAAQAAAP//////////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAACAAAAAAAAAAIAAAABAAAAAQAAAAIAAAACAAAAAAAAAAUAAAAFAAAAAAAAAAIAAAACAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAEAAAACAAAAAgAAAAIAAAAAAAAABQAAAAYAAAAAAAAAAgAAAAIAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAAAAAACAAAAAQAAAAMAAAACAAAAAgAAAAAAAAAFAAAABwAAAAAAAAACAAAAAgAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAIAAAABAAAABAAAAAIAAAACAAAAAAAAAAUAAAAIAAAAAAAAAAIAAAACAAAAAwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAgAAAAEAAAAAAAAAAgAAAAIAAAAAAAAABQAAAAkAAAAAAAAAAgAAAAIAAAADAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAIAAAAAAAAAAwAAAA4AAAACAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAgAAAAMAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAACAAAAAgAAAAAAAAADAAAACgAAAAIAAAAAAAAAAgAAAAMAAAABAAAAAAAAAAIAAAACAAAAAwAAAAcAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAIAAAACAAAAAAAAAAMAAAALAAAAAgAAAAAAAAACAAAAAwAAAAIAAAAAAAAAAgAAAAIAAAADAAAACAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAgAAAAIAAAAAAAAAAwAAAAwAAAACAAAAAAAAAAIAAAADAAAAAwAAAAAAAAACAAAAAgAAAAMAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAACAAAAAgAAAAAAAAADAAAADQAAAAIAAAAAAAAAAgAAAAMAAAAEAAAAAAAAAAIAAAACAAAAAwAAAAoAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAIAAAACAAAAAAAAAAMAAAAGAAAAAgAAAAAAAAACAAAAAwAAAA8AAAAAAAAAAgAAAAIAAAADAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAIAAAAAAAAAAwAAAAcAAAACAAAAAAAAAAIAAAADAAAAEAAAAAAAAAACAAAAAgAAAAMAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAACAAAAAgAAAAAAAAADAAAACAAAAAIAAAAAAAAAAgAAAAMAAAARAAAAAAAAAAIAAAACAAAAAwAAAA0AAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAACAAAAAAAAAAMAAAAJAAAAAgAAAAAAAAACAAAAAwAAABIAAAAAAAAAAgAAAAIAAAADAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAgAAAAIAAAAAAAAAAwAAAAUAAAACAAAA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ZV0gPT0gS0kAZmFjZWlqay5jAF9mYWNlSWprUGVudFRvQ2VsbEJvdW5kYXJ5AGFkamFjZW50RmFjZURpcltjZW50ZXJJSksuZmFjZV1bZmFjZTJdID09IEtJAF9mYWNlSWprVG9DZWxsQm91bmRhcnkAaDNJbmRleC5jAGNvbXBhY3RDZWxscwBsYXRMbmdUb0NlbGwAY2VsbFRvQ2hpbGRQb3MAdmFsaWRhdGVDaGlsZFBvcwBsYXRMbmcuYwBjZWxsQXJlYVJhZHMyAHBvbHlnb24tPm5leHQgPT0gTlVMTABsaW5rZWRHZW8uYwBhZGROZXdMaW5rZWRQb2x5Z29uAG5leHQgIT0gTlVMTABsb29wICE9IE5VTEwAYWRkTmV3TGlua2VkTG9vcABwb2x5Z29uLT5maXJzdCA9PSBOVUxMAGFkZExpbmtlZExvb3AAY29vcmQgIT0gTlVMTABhZGRMaW5rZWRDb29yZABsb29wLT5maXJzdCA9PSBOVUxMAGlubmVyTG9vcHMgIT0gTlVMTABub3JtYWxpemVNdWx0aVBvbHlnb24AYmJveGVzICE9IE5VTEwAY2FuZGlkYXRlcyAhPSBOVUxMAGZpbmRQb2x5Z29uRm9ySG9sZQBjYW5kaWRhdGVCQm94ZXMgIT0gTlVMTAByZXZEaXIgIT0gSU5WQUxJRF9ESUdJVABsb2NhbGlqLmMAY2VsbFRvTG9jYWxJamsAYmFzZUNlbGwgIT0gb3JpZ2luQmFzZUNlbGwAIShvcmlnaW5PblBlbnQgJiYgaW5kZXhPblBlbnQpAGJhc2VDZWxsID09IG9yaWdpbkJhc2VDZWxsAGJhc2VDZWxsICE9IElOVkFMSURfQkFTRV9DRUxMAGxvY2FsSWprVG9DZWxsACFfaXNCYXNlQ2VsbFBlbnRhZ29uKGJhc2VDZWxsKQBiYXNlQ2VsbFJvdGF0aW9ucyA+PSAwAGdyaWRQYXRoQ2VsbHMAcG9seWZpbGwuYwBpdGVyU3RlcFBvbHlnb25Db21wYWN0ADAAdmVydGV4LmMAY2VsbFRvVmVydGV4AGdyYXBoLT5idWNrZXRzICE9IE5VTEwAdmVydGV4R3JhcGguYwBpbml0VmVydGV4R3JhcGgAbm9kZSAhPSBOVUxMAGFkZFZlcnRleE5vZGU=";var tQ=28624;function DK(h){return h}function NK(h){var c=/\b__Z[\w\d_]+/g;return h.replace(c,function(K8){var s=DK(K8);return K8===s?K8:s+" ["+K8+"]"})}function CK(){var h=Error();if(!h.stack){try{throw Error(0)}catch(c){h=c}if(!h.stack)return"(no stack trace available)"}return h.stack.toString()}function eQ(){var h=CK();if(Q.extraStackTrace)h+=`
6
6
+
`+Q.extraStackTrace();return NK(h)}function Y1(h,c,K8,s){fY("Assertion failed: "+N8(h)+", at: "+[c?N8(c):"unknown filename",K8,s?N8(s):"unknown function"])}function OK(){return u8.length}function V1(h,c,K8){X6.set(X6.subarray(c,c+K8),h)}function X1(h){if(Q.___errno_location)T8[Q.___errno_location()>>2]=h;return h}function W1(h){fY("OOM")}function SK(h){try{var c=new ArrayBuffer(h);if(c.byteLength!=h)return;return new Int8Array(c).set(u8),F1(c),U6(c),1}catch(K8){}}function K1(h){var c=OK(),K8=16777216,s=2147483648-K8;if(h>s)return!1;var V=16777216,J6=Math.max(c,V);while(J6<h)if(J6<=536870912)J6=C6(2*J6,K8);else J6=Math.min(C6((3*J6+2147483648)/4,K8),s);var d8=SK(J6);if(!d8)return!1;return!0}var J1=typeof atob==="function"?atob:function(h){var c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",K8="",s,V,J6,d8,O,H6,t6,L6=0;h=h.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{if(d8=c.indexOf(h.charAt(L6++)),O=c.indexOf(h.charAt(L6++)),H6=c.indexOf(h.charAt(L6++)),t6=c.indexOf(h.charAt(L6++)),s=d8<<2|O>>4,V=(O&15)<<4|H6>>2,J6=(H6&3)<<6|t6,K8=K8+String.fromCharCode(s),H6!==64)K8=K8+String.fromCharCode(V);if(t6!==64)K8=K8+String.fromCharCode(J6)}while(L6<h.length);return K8};function Z1(h){try{var c=J1(h),K8=new Uint8Array(c.length);for(var s=0;s<c.length;++s)K8[s]=c.charCodeAt(s);return K8}catch(V){throw Error("Converting base64 string to bytes failed.")}}function lV(h){if(!BK(h))return;return Z1(h.slice(rV.length))}var Q1={Math,Int8Array,Int32Array,Uint8Array,Float32Array,Float64Array},G1={a:fY,b:u,c:d,d:Y1,e:X1,f:OK,g:V1,h:K1,i:W1,j:DK,k:NK,l:SK,m:CK,n:eQ,o:tQ,p:B6},i=function(h,c,K8){var s=new h.Int8Array(K8),V=new h.Int32Array(K8),J6=new h.Uint8Array(K8),d8=new h.Float32Array(K8),O=new h.Float64Array(K8),H6=c.o|0,t6=c.p|0,L6=h.Math.floor,p8=h.Math.abs,q6=h.Math.sqrt,j6=h.Math.pow,m8=h.Math.cos,c8=h.Math.sin,r7=h.Math.tan,q1=h.Math.acos,M1=h.Math.asin,aV=h.Math.atan,D0=h.Math.atan2,G7=h.Math.ceil,v0=h.Math.imul,tV=h.Math.min,B1=h.Math.max,i0=h.Math.clz32,E8=c.b,I=c.c,I8=c.d,wK=c.e,D1=c.f,N1=c.g,C1=c.h,O1=c.i,P=28640;function S1(Y){return s=new Int8Array(Y),J6=new Uint8Array(Y),V=new Int32Array(Y),d8=new Float32Array(Y),O=new Float64Array(Y),K8=Y,!0}function P1(Y){Y=Y|0;var X=0;return X=P,P=P+Y|0,P=P+15&-16,X|0}function A1(){return P|0}function R1(Y){Y=Y|0,P=Y}function I1(Y,X){Y=Y|0,X=X|0,P=Y}function w1(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0;if((Y|0)<0)return X=2,X|0;if((Y|0)>13780509)return X=u9(15,X)|0,X|0;else return W=((Y|0)<0)<<31>>31,Z=x6(Y|0,W|0,3,0)|0,K=I()|0,W=O8(Y|0,W|0,1,0)|0,W=x6(Z|0,K|0,W|0,I()|0)|0,W=O8(W|0,I()|0,1,0)|0,Y=I()|0,V[X>>2]=W,V[X+4>>2]=Y,X=0,X|0;return 0}function HK(Y,X,W,K){return Y=Y|0,X=X|0,W=W|0,K=K|0,LK(Y,X,W,K,0)|0}function LK(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,M=0,D=0;if(M=P,P=P+16|0,F=M,!(jK(Y,X,W,K,Z)|0))return K=0,P=M,K|0;do if((W|0)>=0){if((W|0)>13780509){if(G=u9(15,F)|0,G|0)break;z=F,F=V[z>>2]|0,z=V[z+4>>2]|0}else G=((W|0)<0)<<31>>31,D=x6(W|0,G|0,3,0)|0,z=I()|0,G=O8(W|0,G|0,1,0)|0,G=x6(D|0,z|0,G|0,I()|0)|0,G=O8(G|0,I()|0,1,0)|0,z=I()|0,V[F>>2]=G,V[F+4>>2]=z,F=G;if(RY(K|0,0,F<<3|0)|0,Z|0){RY(Z|0,0,F<<2|0)|0,G=_0(Y,X,W,K,Z,F,z,0)|0;break}if(G=Y0(F,4)|0,!G)G=13;else D=_0(Y,X,W,K,G,F,z,0)|0,S8(G),G=D}else G=2;while(0);return D=G,P=M,D|0}function jK(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0,x=0;if(x=P,P=P+16|0,L=x,j=x+8|0,H=L,V[H>>2]=Y,V[H+4>>2]=X,(W|0)<0)return j=2,P=x,j|0;if(G=K,V[G>>2]=Y,V[G+4>>2]=X,G=(Z|0)!=0,G)V[Z>>2]=0;if(Z6(Y,X)|0)return j=9,P=x,j|0;V[j>>2]=0;Y:do if((W|0)>=1)if(G){C=1,D=0,R=0,H=1,G=Y;while(!0){if(!(D|R)){if(G=T6(G,X,4,j,L)|0,G|0)break Y;if(X=L,G=V[X>>2]|0,X=V[X+4>>2]|0,Z6(G,X)|0){G=9;break Y}}if(G=T6(G,X,V[26800+(R<<2)>>2]|0,j,L)|0,G|0)break Y;if(X=L,G=V[X>>2]|0,X=V[X+4>>2]|0,Y=K+(C<<3)|0,V[Y>>2]=G,V[Y+4>>2]=X,V[Z+(C<<2)>>2]=H,Y=D+1|0,F=(Y|0)==(H|0),z=R+1|0,M=(z|0)==6,Z6(G,X)|0){G=9;break Y}if(H=H+(M&F&1)|0,(H|0)>(W|0)){G=0;break}else C=C+1|0,D=F?0:Y,R=F?M?0:z:R}}else{C=1,D=0,R=0,H=1,G=Y;while(!0){if(!(D|R)){if(G=T6(G,X,4,j,L)|0,G|0)break Y;if(X=L,G=V[X>>2]|0,X=V[X+4>>2]|0,Z6(G,X)|0){G=9;break Y}}if(G=T6(G,X,V[26800+(R<<2)>>2]|0,j,L)|0,G|0)break Y;if(X=L,G=V[X>>2]|0,X=V[X+4>>2]|0,Y=K+(C<<3)|0,V[Y>>2]=G,V[Y+4>>2]=X,Y=D+1|0,F=(Y|0)==(H|0),z=R+1|0,M=(z|0)==6,Z6(G,X)|0){G=9;break Y}if(H=H+(M&F&1)|0,(H|0)>(W|0)){G=0;break}else C=C+1|0,D=F?0:Y,R=F?M?0:z:R}}else G=0;while(0);return j=G,P=x,j|0}function _0(Y,X,W,K,Z,G,F,z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0,G=G|0,F=F|0,z=z|0;var M=0,D=0,C=0,R=0,H=0,L=0,j=0,x=0,y=0,$=0;if(x=P,P=P+16|0,L=x+8|0,j=x,M=B7(Y|0,X|0,G|0,F|0)|0,C=I()|0,R=K+(M<<3)|0,y=R,$=V[y>>2]|0,y=V[y+4>>2]|0,D=($|0)==(Y|0)&(y|0)==(X|0),!(($|0)==0&(y|0)==0|D))do M=O8(M|0,C|0,1,0)|0,M=M7(M|0,I()|0,G|0,F|0)|0,C=I()|0,R=K+(M<<3)|0,$=R,y=V[$>>2]|0,$=V[$+4>>2]|0,D=(y|0)==(Y|0)&($|0)==(X|0);while(!((y|0)==0&($|0)==0|D));if(M=Z+(M<<2)|0,D?(V[M>>2]|0)<=(z|0):0)return $=0,P=x,$|0;if($=R,V[$>>2]=Y,V[$+4>>2]=X,V[M>>2]=z,(z|0)>=(W|0))return $=0,P=x,$|0;switch(D=z+1|0,V[L>>2]=0,M=T6(Y,X,2,L,j)|0,M|0){case 9:{H=9;break}case 0:{if(M=j,M=_0(V[M>>2]|0,V[M+4>>2]|0,W,K,Z,G,F,D)|0,!M)H=9;break}default:}Y:do if((H|0)==9){switch(V[L>>2]=0,M=T6(Y,X,3,L,j)|0,M|0){case 9:break;case 0:{if(M=j,M=_0(V[M>>2]|0,V[M+4>>2]|0,W,K,Z,G,F,D)|0,M|0)break Y;break}default:break Y}switch(V[L>>2]=0,M=T6(Y,X,1,L,j)|0,M|0){case 9:break;case 0:{if(M=j,M=_0(V[M>>2]|0,V[M+4>>2]|0,W,K,Z,G,F,D)|0,M|0)break Y;break}default:break Y}switch(V[L>>2]=0,M=T6(Y,X,5,L,j)|0,M|0){case 9:break;case 0:{if(M=j,M=_0(V[M>>2]|0,V[M+4>>2]|0,W,K,Z,G,F,D)|0,M|0)break Y;break}default:break Y}switch(V[L>>2]=0,M=T6(Y,X,4,L,j)|0,M|0){case 9:break;case 0:{if(M=j,M=_0(V[M>>2]|0,V[M+4>>2]|0,W,K,Z,G,F,D)|0,M|0)break Y;break}default:break Y}switch(V[L>>2]=0,M=T6(Y,X,6,L,j)|0,M|0){case 9:break;case 0:{if(M=j,M=_0(V[M>>2]|0,V[M+4>>2]|0,W,K,Z,G,F,D)|0,M|0)break Y;break}default:break Y}return $=0,P=x,$|0}while(0);return $=M,P=x,$|0}function T6(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0;if(W>>>0>6)return Z=1,Z|0;if(R=(V[K>>2]|0)%6|0,V[K>>2]=R,(R|0)>0){G=0;do W=uY(W)|0,G=G+1|0;while((G|0)<(V[K>>2]|0))}if(R=n(Y|0,X|0,45)|0,I()|0,C=R&127,C>>>0>121)return Z=5,Z|0;M=e6(Y,X)|0,G=n(Y|0,X|0,52)|0,I()|0,G=G&15;Y:do if(!G)D=8;else{while(!0){if(F=(15-G|0)*3|0,z=n(Y|0,X|0,F|0)|0,I()|0,z=z&7,(z|0)==7){X=5;break}if(j=(N0(G)|0)==0,G=G+-1|0,H=t(7,0,F|0)|0,X=X&~(I()|0),L=t(V[(j?432:16)+(z*28|0)+(W<<2)>>2]|0,0,F|0)|0,F=I()|0,W=V[(j?640:224)+(z*28|0)+(W<<2)>>2]|0,Y=L|Y&~H,X=F|X,!W){W=0;break Y}if(!G){D=8;break Y}}return X|0}while(0);if((D|0)==8){if(j=V[848+(C*28|0)+(W<<2)>>2]|0,L=t(j|0,0,45)|0,Y=L|Y,X=I()|0|X&-1040385,W=V[4272+(C*28|0)+(W<<2)>>2]|0,(j&127|0)==127)j=t(V[848+(C*28|0)+20>>2]|0,0,45)|0,X=I()|0|X&-1040385,W=V[4272+(C*28|0)+20>>2]|0,Y=pY(j|Y,X)|0,X=I()|0,V[K>>2]=(V[K>>2]|0)+1}z=n(Y|0,X|0,45)|0,I()|0,z=z&127;Y:do if(!(z6(z)|0)){if((W|0)>0){G=0;do Y=pY(Y,X)|0,X=I()|0,G=G+1|0;while((G|0)!=(W|0))}}else{V:do if((e6(Y,X)|0)==1){if((C|0)!=(z|0))if(yK(z,V[7696+(C*28|0)>>2]|0)|0){Y=MX(Y,X)|0,F=1,X=I()|0;break}else I8(27795,26864,533,26872);switch(M|0){case 3:{Y=pY(Y,X)|0,X=I()|0,V[K>>2]=(V[K>>2]|0)+1,F=0;break V}case 5:{Y=MX(Y,X)|0,X=I()|0,V[K>>2]=(V[K>>2]|0)+5,F=0;break V}case 0:return j=9,j|0;default:return j=1,j|0}}else F=0;while(0);if((W|0)>0){G=0;do Y=qX(Y,X)|0,X=I()|0,G=G+1|0;while((G|0)!=(W|0))}if((C|0)!=(z|0)){if(!(YX(z)|0)){if((F|0)!=0|(e6(Y,X)|0)!=5)break;V[K>>2]=(V[K>>2]|0)+1;break}switch(R&127){case 8:case 118:break Y;default:}if((e6(Y,X)|0)!=3)V[K>>2]=(V[K>>2]|0)+1}}while(0);return V[K>>2]=((V[K>>2]|0)+W|0)%6|0,j=Z,V[j>>2]=Y,V[j+4>>2]=X,j=0,j|0}function H1(Y,X,W,K){if(Y=Y|0,X=X|0,W=W|0,K=K|0,!(TK(Y,X,W,K)|0))return K=0,K|0;return RY(K|0,0,W*48|0)|0,K=L1(Y,X,W,K)|0,K|0}function TK(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0;if(j=P,P=P+16|0,H=j,L=j+8|0,R=H,V[R>>2]=Y,V[R+4>>2]=X,(W|0)<0)return L=2,P=j,L|0;if(!W)return L=K,V[L>>2]=Y,V[L+4>>2]=X,L=0,P=j,L|0;V[L>>2]=0;Y:do if(!(Z6(Y,X)|0)){Z=0,R=Y;do{if(Y=T6(R,X,4,L,H)|0,Y|0)break Y;if(X=H,R=V[X>>2]|0,X=V[X+4>>2]|0,Z=Z+1|0,Z6(R,X)|0){Y=9;break Y}}while((Z|0)<(W|0));C=K,V[C>>2]=R,V[C+4>>2]=X,C=W+-1|0,D=0,Y=1;do{if(Z=26800+(D<<2)|0,(D|0)==5){F=V[Z>>2]|0,G=0,Z=Y;while(!0){if(Y=H,Y=T6(V[Y>>2]|0,V[Y+4>>2]|0,F,L,H)|0,Y|0)break Y;if((G|0)!=(C|0))if(M=H,z=V[M>>2]|0,M=V[M+4>>2]|0,Y=K+(Z<<3)|0,V[Y>>2]=z,V[Y+4>>2]=M,!(Z6(z,M)|0))Y=Z+1|0;else{Y=9;break Y}else Y=Z;if(G=G+1|0,(G|0)>=(W|0))break;else Z=Y}}else{F=H,M=V[Z>>2]|0,z=0,Z=Y,G=V[F>>2]|0,F=V[F+4>>2]|0;while(!0){if(Y=T6(G,F,M,L,H)|0,Y|0)break Y;if(F=H,G=V[F>>2]|0,F=V[F+4>>2]|0,Y=K+(Z<<3)|0,V[Y>>2]=G,V[Y+4>>2]=F,Y=Z+1|0,Z6(G,F)|0){Y=9;break Y}if(z=z+1|0,(z|0)>=(W|0))break;else Z=Y}}D=D+1|0}while(D>>>0<6);Y=H,Y=((R|0)==(V[Y>>2]|0)?(X|0)==(V[Y+4>>2]|0):0)?0:9}else Y=9;while(0);return L=Y,P=j,L|0}function L1(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0;if(R=P,P=P+16|0,F=R,!W)return V[K>>2]=Y,V[K+4>>2]=X,K=0,P=R,K|0;do if((W|0)>=0){if((W|0)>13780509){if(Z=u9(15,F)|0,Z|0)break;G=F,Z=V[G>>2]|0,G=V[G+4>>2]|0}else Z=((W|0)<0)<<31>>31,C=x6(W|0,Z|0,3,0)|0,G=I()|0,Z=O8(W|0,Z|0,1,0)|0,Z=x6(C|0,G|0,Z|0,I()|0)|0,Z=O8(Z|0,I()|0,1,0)|0,G=I()|0,C=F,V[C>>2]=Z,V[C+4>>2]=G;if(D=Y0(Z,8)|0,!D)Z=13;else{if(C=Y0(Z,4)|0,!C){S8(D),Z=13;break}if(Z=_0(Y,X,W,D,C,Z,G,0)|0,Z|0){S8(D),S8(C);break}if(X=V[F>>2]|0,F=V[F+4>>2]|0,(F|0)>0|(F|0)==0&X>>>0>0){Z=0,z=0,M=0;do{if(Y=D+(z<<3)|0,G=V[Y>>2]|0,Y=V[Y+4>>2]|0,!((G|0)==0&(Y|0)==0)?(V[C+(z<<2)>>2]|0)==(W|0):0)H=K+(Z<<3)|0,V[H>>2]=G,V[H+4>>2]=Y,Z=Z+1|0;z=O8(z|0,M|0,1,0)|0,M=I()|0}while((M|0)<(F|0)|(M|0)==(F|0)&z>>>0<X>>>0)}S8(D),S8(C),Z=0}}else Z=2;while(0);return H=Z,P=R,H|0}function eV(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,M=0,D=0;z=P,P=P+16|0,G=z,F=z+8|0,Z=(Z6(Y,X)|0)==0,Z=Z?1:2;while(!0){if(V[F>>2]=0,D=(T6(Y,X,Z,F,G)|0)==0,M=G,D&((V[M>>2]|0)==(W|0)?(V[M+4>>2]|0)==(K|0):0)){Y=4;break}if(Z=Z+1|0,Z>>>0>=7){Z=7,Y=4;break}}if((Y|0)==4)return P=z,Z|0;return 0}function j1(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,M=0,D=0;if(z=P,P=P+48|0,Z=z+16|0,G=z+8|0,F=z,W=t7(W)|0,W|0)return F=W,P=z,F|0;if(D=Y,M=V[D+4>>2]|0,W=G,V[W>>2]=V[D>>2],V[W+4>>2]=M,X5(G,Z),W=hK(Z,X,F)|0,!W){if(X=V[G>>2]|0,G=V[Y+8>>2]|0,(G|0)>0){Z=V[Y+12>>2]|0,W=0;do X=(V[Z+(W<<3)>>2]|0)+X|0,W=W+1|0;while((W|0)<(G|0))}if(W=F,Z=V[W>>2]|0,W=V[W+4>>2]|0,G=((X|0)<0)<<31>>31,(W|0)<(G|0)|(W|0)==(G|0)&Z>>>0<X>>>0)W=F,V[W>>2]=X,V[W+4>>2]=G,W=G;else X=Z;M=O8(X|0,W|0,12,0)|0,D=I()|0,W=F,V[W>>2]=M,V[W+4>>2]=D,W=K,V[W>>2]=M,V[W+4>>2]=D,W=0}return D=W,P=z,D|0}function xK(Y,X,W,K,Z,G,F){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0,G=G|0,F=F|0;var z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0,x=0,y=0,$=0,_=0,k=0,E=0,a=0,M8=0,Q8=0,x8=0,y8=0,g8=0,R8=0,B8=0,o=0,_8=0,t8=0,k8=0,e8=0,c6=0,N5=0;if(t8=P,P=P+64|0,R8=t8+48|0,B8=t8+32|0,o=t8+24|0,a=t8+8|0,M8=t8,M=V[Y>>2]|0,(M|0)<=0)return _8=0,P=t8,_8|0;Q8=Y+4|0,x8=R8+8|0,y8=B8+8|0,g8=a+8|0,z=0,k=0;while(!0){if(D=V[Q8>>2]|0,_=D+(k<<4)|0,V[R8>>2]=V[_>>2],V[R8+4>>2]=V[_+4>>2],V[R8+8>>2]=V[_+8>>2],V[R8+12>>2]=V[_+12>>2],(k|0)==(M+-1|0))V[B8>>2]=V[D>>2],V[B8+4>>2]=V[D+4>>2],V[B8+8>>2]=V[D+8>>2],V[B8+12>>2]=V[D+12>>2];else _=D+(k+1<<4)|0,V[B8>>2]=V[_>>2],V[B8+4>>2]=V[_+4>>2],V[B8+8>>2]=V[_+8>>2],V[B8+12>>2]=V[_+12>>2];M=m1(R8,B8,K,o)|0;Y:do if(!M)if(M=o,D=V[M>>2]|0,M=V[M+4>>2]|0,(M|0)>0|(M|0)==0&D>>>0>0){$=0,_=0;V:while(!0){if(e8=1/(+(D>>>0)+4294967296*+(M|0)),N5=+O[R8>>3],M=h6(D|0,M|0,$|0,_|0)|0,c6=+(M>>>0)+4294967296*+(I()|0),k8=+($>>>0)+4294967296*+(_|0),O[a>>3]=e8*(N5*c6)+e8*(+O[B8>>3]*k8),O[g8>>3]=e8*(+O[x8>>3]*c6)+e8*(+O[y8>>3]*k8),M=BX(a,K,M8)|0,M|0){z=M;break}y=M8,x=V[y>>2]|0,y=V[y+4>>2]|0,H=B7(x|0,y|0,X|0,W|0)|0,C=I()|0,M=F+(H<<3)|0,R=M,D=V[R>>2]|0,R=V[R+4>>2]|0;X:do if((D|0)==0&(R|0)==0)E=M,_8=16;else{L=0,j=0;while(!0){if((L|0)>(W|0)|(L|0)==(W|0)&j>>>0>X>>>0){z=1;break V}if((D|0)==(x|0)&(R|0)==(y|0))break X;if(M=O8(H|0,C|0,1,0)|0,H=M7(M|0,I()|0,X|0,W|0)|0,C=I()|0,j=O8(j|0,L|0,1,0)|0,L=I()|0,M=F+(H<<3)|0,R=M,D=V[R>>2]|0,R=V[R+4>>2]|0,(D|0)==0&(R|0)==0){E=M,_8=16;break}}}while(0);if((_8|0)==16?(_8=0,!((x|0)==0&(y|0)==0)):0)j=E,V[j>>2]=x,V[j+4>>2]=y,j=G+(V[Z>>2]<<3)|0,V[j>>2]=x,V[j+4>>2]=y,j=Z,j=O8(V[j>>2]|0,V[j+4>>2]|0,1,0)|0,x=I()|0,y=Z,V[y>>2]=j,V[y+4>>2]=x;if($=O8($|0,_|0,1,0)|0,_=I()|0,M=o,D=V[M>>2]|0,M=V[M+4>>2]|0,!((M|0)>(_|0)|(M|0)==(_|0)&D>>>0>$>>>0)){D=1;break Y}}D=0}else D=1;else D=0,z=M;while(0);if(k=k+1|0,!D){_8=21;break}if(M=V[Y>>2]|0,(k|0)>=(M|0)){z=0,_8=21;break}}if((_8|0)==21)return P=t8,z|0;return 0}function T1(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0,x=0,y=0,$=0,_=0,k=0,E=0,a=0,M8=0,Q8=0,x8=0,y8=0,g8=0,R8=0,B8=0,o=0,_8=0,t8=0,k8=0,e8=0,c6=0;if(c6=P,P=P+112|0,_8=c6+80|0,M=c6+72|0,t8=c6,k8=c6+56|0,Z=t7(W)|0,Z|0)return e8=Z,P=c6,e8|0;if(D=Y+8|0,e8=h0((V[D>>2]<<5)+32|0)|0,!e8)return e8=13,P=c6,e8|0;if(AX(Y,e8),Z=t7(W)|0,!Z){if(B8=Y,o=V[B8+4>>2]|0,Z=M,V[Z>>2]=V[B8>>2],V[Z+4>>2]=o,X5(M,_8),Z=hK(_8,X,t8)|0,!Z){if(Z=V[M>>2]|0,G=V[D>>2]|0,(G|0)>0){F=V[Y+12>>2]|0,W=0;do Z=(V[F+(W<<3)>>2]|0)+Z|0,W=W+1|0;while((W|0)!=(G|0));W=Z}else W=Z;if(Z=t8,G=V[Z>>2]|0,Z=V[Z+4>>2]|0,F=((W|0)<0)<<31>>31,(Z|0)<(F|0)|(Z|0)==(F|0)&G>>>0<W>>>0)Z=t8,V[Z>>2]=W,V[Z+4>>2]=F,Z=F;else W=G;B8=O8(W|0,Z|0,12,0)|0,o=I()|0,Z=t8,V[Z>>2]=B8,V[Z+4>>2]=o,Z=0}else B8=0,o=0;if(!Z){if(W=Y0(B8,8)|0,!W)return S8(e8),e8=13,P=c6,e8|0;if(z=Y0(B8,8)|0,!z)return S8(e8),S8(W),e8=13,P=c6,e8|0;g8=_8,V[g8>>2]=0,V[g8+4>>2]=0,g8=Y,R8=V[g8+4>>2]|0,Z=M,V[Z>>2]=V[g8>>2],V[Z+4>>2]=R8,Z=xK(M,B8,o,X,_8,W,z)|0;Y:do if(!Z){V:do if((V[D>>2]|0)>0){F=Y+12|0,G=0;while(!0){if(Z=xK((V[F>>2]|0)+(G<<3)|0,B8,o,X,_8,W,z)|0,G=G+1|0,Z|0)break;if((G|0)>=(V[D>>2]|0))break V}S8(W),S8(z),S8(e8);break Y}while(0);if((o|0)>0|(o|0)==0&B8>>>0>0)RY(z|0,0,B8<<3|0)|0;R8=_8,g8=V[R8+4>>2]|0;V:do if((g8|0)>0|(g8|0)==0&(V[R8>>2]|0)>>>0>0){Q8=W,x8=z,y8=W,g8=z,R8=W,Z=W,E=W,a=z,M8=z,W=z;X:while(!0){y=0,$=0,_=0,k=0,G=0,F=0;while(!0){z=t8,M=z+56|0;do V[z>>2]=0,z=z+4|0;while((z|0)<(M|0));if(X=Q8+(y<<3)|0,D=V[X>>2]|0,X=V[X+4>>2]|0,jK(D,X,1,t8,0)|0){z=t8,M=z+56|0;do V[z>>2]=0,z=z+4|0;while((z|0)<(M|0));if(z=Y0(7,4)|0,z|0)_0(D,X,1,t8,z,7,0,0)|0,S8(z)}x=0;while(!0){j=t8+(x<<3)|0,L=V[j>>2]|0,j=V[j+4>>2]|0;W:do if((L|0)==0&(j|0)==0)z=G,M=F;else{if(C=B7(L|0,j|0,B8|0,o|0)|0,D=I()|0,z=K+(C<<3)|0,X=z,M=V[X>>2]|0,X=V[X+4>>2]|0,!((M|0)==0&(X|0)==0)){R=0,H=0;do{if((R|0)>(o|0)|(R|0)==(o|0)&H>>>0>B8>>>0)break X;if((M|0)==(L|0)&(X|0)==(j|0)){z=G,M=F;break W}z=O8(C|0,D|0,1,0)|0,C=M7(z|0,I()|0,B8|0,o|0)|0,D=I()|0,H=O8(H|0,R|0,1,0)|0,R=I()|0,z=K+(C<<3)|0,X=z,M=V[X>>2]|0,X=V[X+4>>2]|0}while(!((M|0)==0&(X|0)==0))}if((L|0)==0&(j|0)==0){z=G,M=F;break}if(cY(L,j,k8)|0,RX(Y,e8,k8)|0)H=O8(G|0,F|0,1,0)|0,F=I()|0,R=z,V[R>>2]=L,V[R+4>>2]=j,G=x8+(G<<3)|0,V[G>>2]=L,V[G+4>>2]=j,G=H;z=G,M=F}while(0);if(x=x+1|0,x>>>0>=7)break;else G=z,F=M}if(y=O8(y|0,$|0,1,0)|0,$=I()|0,_=O8(_|0,k|0,1,0)|0,k=I()|0,F=_8,G=V[F>>2]|0,F=V[F+4>>2]|0,!((k|0)<(F|0)|(k|0)==(F|0)&_>>>0<G>>>0))break;else G=z,F=M}if((F|0)>0|(F|0)==0&G>>>0>0){G=0,F=0;do k=Q8+(G<<3)|0,V[k>>2]=0,V[k+4>>2]=0,G=O8(G|0,F|0,1,0)|0,F=I()|0,k=_8,_=V[k+4>>2]|0;while((F|0)<(_|0)|((F|0)==(_|0)?G>>>0<(V[k>>2]|0)>>>0:0))}if(k=_8,V[k>>2]=z,V[k+4>>2]=M,(M|0)>0|(M|0)==0&z>>>0>0)x=W,y=M8,$=R8,_=a,k=x8,W=E,M8=Z,a=y8,E=x,Z=y,R8=g8,g8=$,y8=_,x8=Q8,Q8=k;else break V}S8(y8),S8(g8),S8(e8),Z=1;break Y}else Z=z;while(0);S8(e8),S8(W),S8(Z),Z=0}else S8(W),S8(z),S8(e8);while(0);return e8=Z,P=c6,e8|0}}return S8(e8),e8=Z,P=c6,e8|0}function x1(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,M=0,D=0,C=0;if(C=P,P=P+176|0,M=C,(X|0)<1)return Q5(W,0,0),D=0,P=C,D|0;z=Y,z=n(V[z>>2]|0,V[z+4>>2]|0,52)|0,I()|0,Q5(W,(X|0)>6?X:6,z&15),z=0;while(!0){if(K=Y+(z<<3)|0,K=U7(V[K>>2]|0,V[K+4>>2]|0,M)|0,K|0)break;if(K=V[M>>2]|0,(K|0)>0){F=0;do{if(G=M+8+(F<<4)|0,F=F+1|0,K=M+8+(((F|0)%(K|0)|0)<<4)|0,Z=WG(W,K,G)|0,!Z)XG(W,G,K)|0;else z5(W,Z)|0;K=V[M>>2]|0}while((F|0)<(K|0))}if(z=z+1|0,(z|0)>=(X|0)){K=0,D=13;break}}if((D|0)==13)return P=C,K|0;return G5(W),D=K,P=C,D|0}function E1(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0;if(G=P,P=P+32|0,K=G,Z=G+16|0,Y=x1(Y,X,Z)|0,Y|0)return W=Y,P=G,W|0;if(V[W>>2]=0,V[W+4>>2]=0,V[W+8>>2]=0,Y=F5(Z)|0,Y|0)do{X=y3(W)|0;do k3(X,Y)|0,F=Y+16|0,V[K>>2]=V[F>>2],V[K+4>>2]=V[F+4>>2],V[K+8>>2]=V[F+8>>2],V[K+12>>2]=V[F+12>>2],z5(Z,Y)|0,Y=KG(Z,K)|0;while((Y|0)!=0);Y=F5(Z)|0}while((Y|0)!=0);if(G5(Z),Y=v3(W)|0,!Y)return F=0,P=G,F|0;return tK(W),F=Y,P=G,F|0}function z6(Y){if(Y=Y|0,Y>>>0>121)return Y=0,Y|0;return Y=V[7696+(Y*28|0)+16>>2]|0,Y|0}function YX(Y){return Y=Y|0,(Y|0)==4|(Y|0)==117|0}function EK(Y){return Y=Y|0,V[11120+((V[Y>>2]|0)*216|0)+((V[Y+4>>2]|0)*72|0)+((V[Y+8>>2]|0)*24|0)+(V[Y+12>>2]<<3)>>2]|0}function y1(Y){return Y=Y|0,V[11120+((V[Y>>2]|0)*216|0)+((V[Y+4>>2]|0)*72|0)+((V[Y+8>>2]|0)*24|0)+(V[Y+12>>2]<<3)+4>>2]|0}function k1(Y,X){Y=Y|0,X=X|0,Y=7696+(Y*28|0)|0,V[X>>2]=V[Y>>2],V[X+4>>2]=V[Y+4>>2],V[X+8>>2]=V[Y+8>>2],V[X+12>>2]=V[Y+12>>2];return}function v1(Y,X){Y=Y|0,X=X|0;var W=0,K=0;if(X>>>0>20)return X=-1,X|0;do if((V[11120+(X*216|0)>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+8>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+16>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+24>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+32>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+40>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+48>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+56>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+64>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+72>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+80>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+88>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+96>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+104>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+112>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+120>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+128>>2]|0)!=(Y|0))if((V[11120+(X*216|0)+136>>2]|0)==(Y|0))Y=2,W=1,K=2;else{if((V[11120+(X*216|0)+144>>2]|0)==(Y|0)){Y=0,W=2,K=0;break}if((V[11120+(X*216|0)+152>>2]|0)==(Y|0)){Y=0,W=2,K=1;break}if((V[11120+(X*216|0)+160>>2]|0)==(Y|0)){Y=0,W=2,K=2;break}if((V[11120+(X*216|0)+168>>2]|0)==(Y|0)){Y=1,W=2,K=0;break}if((V[11120+(X*216|0)+176>>2]|0)==(Y|0)){Y=1,W=2,K=1;break}if((V[11120+(X*216|0)+184>>2]|0)==(Y|0)){Y=1,W=2,K=2;break}if((V[11120+(X*216|0)+192>>2]|0)==(Y|0)){Y=2,W=2,K=0;break}if((V[11120+(X*216|0)+200>>2]|0)==(Y|0)){Y=2,W=2,K=1;break}if((V[11120+(X*216|0)+208>>2]|0)==(Y|0)){Y=2,W=2,K=2;break}else Y=-1;return Y|0}else Y=2,W=1,K=1;else Y=2,W=1,K=0;else Y=1,W=1,K=2;else Y=1,W=1,K=1;else Y=1,W=1,K=0;else Y=0,W=1,K=2;else Y=0,W=1,K=1;else Y=0,W=1,K=0;else Y=2,W=0,K=2;else Y=2,W=0,K=1;else Y=2,W=0,K=0;else Y=1,W=0,K=2;else Y=1,W=0,K=1;else Y=1,W=0,K=0;else Y=0,W=0,K=2;else Y=0,W=0,K=1;else Y=0,W=0,K=0;while(0);return X=V[11120+(X*216|0)+(W*72|0)+(Y*24|0)+(K<<3)+4>>2]|0,X|0}function yK(Y,X){if(Y=Y|0,X=X|0,(V[7696+(Y*28|0)+20>>2]|0)==(X|0))return X=1,X|0;return X=(V[7696+(Y*28|0)+24>>2]|0)==(X|0),X|0}function VX(Y,X){return Y=Y|0,X=X|0,V[848+(Y*28|0)+(X<<2)>>2]|0}function XX(Y,X){if(Y=Y|0,X=X|0,(V[848+(Y*28|0)>>2]|0)==(X|0))return X=0,X|0;if((V[848+(Y*28|0)+4>>2]|0)==(X|0))return X=1,X|0;if((V[848+(Y*28|0)+8>>2]|0)==(X|0))return X=2,X|0;if((V[848+(Y*28|0)+12>>2]|0)==(X|0))return X=3,X|0;if((V[848+(Y*28|0)+16>>2]|0)==(X|0))return X=4,X|0;if((V[848+(Y*28|0)+20>>2]|0)==(X|0))return X=5,X|0;else return((V[848+(Y*28|0)+24>>2]|0)==(X|0)?6:7)|0;return 0}function _1(){return 122}function h1(Y){Y=Y|0;var X=0,W=0,K=0;X=0;do t(X|0,0,45)|0,K=I()|0|134225919,W=Y+(X<<3)|0,V[W>>2]=-1,V[W+4>>2]=K,X=X+1|0;while((X|0)!=122);return 0}function $1(Y){Y=Y|0;var X=0,W=0,K=0;return K=+O[Y+16>>3],W=+O[Y+24>>3],X=K-W,+(K<W?X+6.283185307179586:X)}function kK(Y){return Y=Y|0,+O[Y+16>>3]<+O[Y+24>>3]|0}function g1(Y){return Y=Y|0,+(+O[Y>>3]-+O[Y+8>>3])}function WX(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0;if(W=+O[X>>3],!(W>=+O[Y+8>>3]))return X=0,X|0;if(!(W<=+O[Y>>3]))return X=0,X|0;if(K=+O[Y+16>>3],W=+O[Y+24>>3],Z=+O[X+8>>3],X=Z>=W,Y=Z<=K&1,K<W){if(X)Y=1}else if(!X)Y=0;return X=(Y|0)!=0,X|0}function KX(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0,M=0,D=0,C=0;if(+O[Y>>3]<+O[X+8>>3])return K=0,K|0;if(+O[Y+8>>3]>+O[X>>3])return K=0,K|0;if(G=+O[Y+16>>3],W=Y+24|0,C=+O[W>>3],F=G<C,K=X+16|0,D=+O[K>>3],Z=X+24|0,M=+O[Z>>3],z=D<M,X=C-D<M-G,Y=F?z|X?1:2:0,X=z?F?1:X?2:1:0,G=+Q0(G,Y),G<+Q0(+O[Z>>3],X))return z=0,z|0;if(C=+Q0(+O[W>>3],Y),C>+Q0(+O[K>>3],X))return z=0,z|0;return z=1,z|0}function f1(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,M=0;G=+O[Y+16>>3],M=+O[Y+24>>3],Y=G<M,z=+O[X+16>>3],F=+O[X+24>>3],Z=z<F,X=M-z<F-G,V[W>>2]=Y?Z|X?1:2:0,V[K>>2]=Z?Y?1:X?2:1:0;return}function vK(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0,M=0,D=0,C=0;if(+O[Y>>3]<+O[X>>3])return K=0,K|0;if(+O[Y+8>>3]>+O[X+8>>3])return K=0,K|0;if(K=Y+16|0,M=+O[K>>3],G=+O[Y+24>>3],F=M<G,W=X+16|0,C=+O[W>>3],Z=X+24|0,D=+O[Z>>3],z=C<D,X=G-C<D-M,Y=F?z|X?1:2:0,X=z?F?1:X?2:1:0,G=+Q0(G,Y),!(G<=+Q0(+O[Z>>3],X)))return z=0,z|0;return C=+Q0(+O[K>>3],Y),z=C>=+Q0(+O[W>>3],X),z|0}function _K(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0;Z=P,P=P+176|0,K=Z,V[K>>2]=4,z=+O[X>>3],O[K+8>>3]=z,G=+O[X+16>>3],O[K+16>>3]=G,O[K+24>>3]=z,z=+O[X+24>>3],O[K+32>>3]=z,F=+O[X+8>>3],O[K+40>>3]=F,O[K+48>>3]=z,O[K+56>>3]=F,O[K+64>>3]=G,X=K+72|0,W=X+96|0;do V[X>>2]=0,X=X+4|0;while((X|0)<(W|0));D7(Y|0,K|0,168)|0,P=Z;return}function hK(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0,x=0,y=0;j=P,P=P+288|0,C=j+264|0,R=j+96|0,D=j,z=D,M=z+96|0;do V[z>>2]=0,z=z+4|0;while((z|0)<(M|0));if(X=NX(X,D)|0,X|0)return L=X,P=j,L|0;if(M=D,D=V[M>>2]|0,M=V[M+4>>2]|0,cY(D,M,C)|0,U7(D,M,R)|0,F=+o7(C,R+8|0),O[C>>3]=+O[Y>>3],M=C+8|0,O[M>>3]=+O[Y+16>>3],O[R>>3]=+O[Y+8>>3],D=R+8|0,O[D>>3]=+O[Y+24>>3],Z=+o7(C,R),y=+O[M>>3]-+O[D>>3],G=+p8(+y),x=+O[C>>3]-+O[R>>3],K=+p8(+x),!(y==0|x==0)?(y=+B5(+G,+K),y=+G7(+(Z*Z/+s9(+(y/+s9(+G,+K)),3)/(F*(F*2.59807621135)*0.8))),O[H6>>3]=y,H=~~y>>>0,L=+p8(y)>=1?y>0?~~+tV(+L6(y/4294967296),4294967295)>>>0:~~+G7((y-+(~~y>>>0))/4294967296)>>>0:0,(V[H6+4>>2]&2146435072|0)!=2146435072):0)R=(H|0)==0&(L|0)==0,X=W,V[X>>2]=R?1:H,V[X+4>>2]=R?0:L,X=0;else X=1;return L=X,P=j,L|0}function m1(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,M=0,D=0,C=0;D=P,P=P+288|0,F=D+264|0,z=D+96|0,M=D,Z=M,G=Z+96|0;do V[Z>>2]=0,Z=Z+4|0;while((Z|0)<(G|0));if(W=NX(W,M)|0,W|0)return K=W,P=D,K|0;if(W=M,Z=V[W>>2]|0,W=V[W+4>>2]|0,cY(Z,W,F)|0,U7(Z,W,z)|0,C=+o7(F,z+8|0),C=+G7(+(+o7(Y,X)/(C*2))),O[H6>>3]=C,W=~~C>>>0,Z=+p8(C)>=1?C>0?~~+tV(+L6(C/4294967296),4294967295)>>>0:~~+G7((C-+(~~C>>>0))/4294967296)>>>0:0,(V[H6+4>>2]&2146435072|0)==2146435072)return K=1,P=D,K|0;return M=(W|0)==0&(Z|0)==0,V[K>>2]=M?1:W,V[K+4>>2]=M?0:Z,K=0,P=D,K|0}function b1(Y,X){Y=Y|0,X=+X;var W=0,K=0,Z=0,G=0,F=0,z=0,M=0,D=0,C=0;G=Y+16|0,F=+O[G>>3],W=Y+24|0,Z=+O[W>>3],K=F-Z,K=F<Z?K+6.283185307179586:K,D=+O[Y>>3],z=Y+8|0,M=+O[z>>3],C=D-M,K=(K*X-K)*0.5,X=(C*X-C)*0.5,D=D+X,O[Y>>3]=D>1.5707963267948966?1.5707963267948966:D,X=M-X,O[z>>3]=X<-1.5707963267948966?-1.5707963267948966:X,X=F+K,X=X>3.141592653589793?X+-6.283185307179586:X,O[G>>3]=X<-3.141592653589793?X+6.283185307179586:X,X=Z-K,X=X>3.141592653589793?X+-6.283185307179586:X,O[W>>3]=X<-3.141592653589793?X+6.283185307179586:X;return}function u1(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0,V[Y>>2]=X,V[Y+4>>2]=W,V[Y+8>>2]=K;return}function p1(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0;R=X+8|0,V[R>>2]=0,M=+O[Y>>3],F=+p8(+M),D=+O[Y+8>>3],z=+p8(+D)*1.1547005383792515,F=F+z*0.5,W=~~F,Y=~~z,F=F-+(W|0),z=z-+(Y|0);do if(F<0.5)if(F<0.3333333333333333)if(V[X>>2]=W,z<(F+1)*0.5){V[X+4>>2]=Y;break}else{Y=Y+1|0,V[X+4>>2]=Y;break}else if(H=1-F,Y=(!(z<H)&1)+Y|0,V[X+4>>2]=Y,H<=z&z<F*2){W=W+1|0,V[X>>2]=W;break}else{V[X>>2]=W;break}else{if(!(F<0.6666666666666666))if(W=W+1|0,V[X>>2]=W,z<F*0.5){V[X+4>>2]=Y;break}else{Y=Y+1|0,V[X+4>>2]=Y;break}if(z<1-F){if(V[X+4>>2]=Y,F*2+-1<z){V[X>>2]=W;break}}else Y=Y+1|0,V[X+4>>2]=Y;W=W+1|0,V[X>>2]=W}while(0);do if(M<0)if(!(Y&1)){C=(Y|0)/2|0,C=h6(W|0,((W|0)<0)<<31>>31|0,C|0,((C|0)<0)<<31>>31|0)|0,W=~~(+(W|0)-(+(C>>>0)+4294967296*+(I()|0))*2),V[X>>2]=W;break}else{C=(Y+1|0)/2|0,C=h6(W|0,((W|0)<0)<<31>>31|0,C|0,((C|0)<0)<<31>>31|0)|0,W=~~(+(W|0)-((+(C>>>0)+4294967296*+(I()|0))*2+1)),V[X>>2]=W;break}while(0);if(C=X+4|0,D<0)W=W-((Y<<1|1|0)/2|0)|0,V[X>>2]=W,Y=0-Y|0,V[C>>2]=Y;if(K=Y-W|0,(W|0)<0)Z=0-W|0,V[C>>2]=K,V[R>>2]=Z,V[X>>2]=0,Y=K,W=0;else Z=0;if((Y|0)<0)W=W-Y|0,V[X>>2]=W,Z=Z-Y|0,V[R>>2]=Z,V[C>>2]=0,Y=0;if(G=W-Z|0,K=Y-Z|0,(Z|0)<0)V[X>>2]=G,V[C>>2]=K,V[R>>2]=0,Y=K,W=G,Z=0;if(K=(Y|0)<(W|0)?Y:W,K=(Z|0)<(K|0)?Z:K,(K|0)<=0)return;V[X>>2]=W-K,V[C>>2]=Y-K,V[R>>2]=Z-K;return}function b6(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0;if(X=V[Y>>2]|0,F=Y+4|0,W=V[F>>2]|0,(X|0)<0)W=W-X|0,V[F>>2]=W,G=Y+8|0,V[G>>2]=(V[G>>2]|0)-X,V[Y>>2]=0,X=0;if((W|0)<0)X=X-W|0,V[Y>>2]=X,G=Y+8|0,Z=(V[G>>2]|0)-W|0,V[G>>2]=Z,V[F>>2]=0,W=0;else Z=Y+8|0,G=Z,Z=V[Z>>2]|0;if((Z|0)<0)X=X-Z|0,V[Y>>2]=X,W=W-Z|0,V[F>>2]=W,V[G>>2]=0,Z=0;if(K=(W|0)<(X|0)?W:X,K=(Z|0)<(K|0)?Z:K,(K|0)<=0)return;V[Y>>2]=X-K,V[F>>2]=W-K,V[G>>2]=Z-K;return}function mY(Y,X){Y=Y|0,X=X|0;var W=0,K=0;K=V[Y+8>>2]|0,W=+((V[Y+4>>2]|0)-K|0),O[X>>3]=+((V[Y>>2]|0)-K|0)-W*0.5,O[X+8>>3]=W*0.8660254037844386;return}function p6(Y,X,W){Y=Y|0,X=X|0,W=W|0,V[W>>2]=(V[X>>2]|0)+(V[Y>>2]|0),V[W+4>>2]=(V[X+4>>2]|0)+(V[Y+4>>2]|0),V[W+8>>2]=(V[X+8>>2]|0)+(V[Y+8>>2]|0);return}function JX(Y,X,W){Y=Y|0,X=X|0,W=W|0,V[W>>2]=(V[Y>>2]|0)-(V[X>>2]|0),V[W+4>>2]=(V[Y+4>>2]|0)-(V[X+4>>2]|0),V[W+8>>2]=(V[Y+8>>2]|0)-(V[X+8>>2]|0);return}function $K(Y,X){Y=Y|0,X=X|0;var W=0,K=0;W=v0(V[Y>>2]|0,X)|0,V[Y>>2]=W,W=Y+4|0,K=v0(V[W>>2]|0,X)|0,V[W>>2]=K,Y=Y+8|0,X=v0(V[Y>>2]|0,X)|0,V[Y>>2]=X;return}function g9(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0;F=V[Y>>2]|0,z=(F|0)<0,K=(V[Y+4>>2]|0)-(z?F:0)|0,G=(K|0)<0,Z=(G?0-K|0:0)+((V[Y+8>>2]|0)-(z?F:0))|0,W=(Z|0)<0,Y=W?0:Z,X=(G?0:K)-(W?Z:0)|0,Z=(z?0:F)-(G?K:0)-(W?Z:0)|0,W=(X|0)<(Z|0)?X:Z,W=(Y|0)<(W|0)?Y:W,K=(W|0)>0,Y=Y-(K?W:0)|0,X=X-(K?W:0)|0;Y:do switch(Z-(K?W:0)|0){case 0:switch(X|0){case 0:return z=(Y|0)==0?0:(Y|0)==1?1:7,z|0;case 1:return z=(Y|0)==0?2:(Y|0)==1?3:7,z|0;default:break Y}case 1:switch(X|0){case 0:return z=(Y|0)==0?4:(Y|0)==1?5:7,z|0;case 1:{if(!Y)Y=6;else break Y;return Y|0}default:break Y}default:}while(0);return z=7,z|0}function c1(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0,M=0,D=0;if(M=Y+8|0,F=V[M>>2]|0,z=(V[Y>>2]|0)-F|0,D=Y+4|0,F=(V[D>>2]|0)-F|0,z>>>0>715827881|F>>>0>715827881){if(K=(z|0)>0,Z=2147483647-z|0,G=-2147483648-z|0,K?(Z|0)<(z|0):(G|0)>(z|0))return D=1,D|0;if(W=z<<1,K?(2147483647-W|0)<(z|0):(-2147483648-W|0)>(z|0))return D=1,D|0;if((F|0)>0?(2147483647-F|0)<(F|0):(-2147483648-F|0)>(F|0))return D=1,D|0;if(X=z*3|0,W=F<<1,(K?(Z|0)<(W|0):(G|0)>(W|0))?1:(z|0)>-1?(X|-2147483648|0)>=(F|0):(X^-2147483648|0)<(F|0))return D=1,D|0}else W=F<<1,X=z*3|0;if(K=PY(+(X-F|0)*0.14285714285714285)|0,V[Y>>2]=K,Z=PY(+(W+z|0)*0.14285714285714285)|0,V[D>>2]=Z,V[M>>2]=0,W=(Z|0)<(K|0),X=W?K:Z,W=W?Z:K,(W|0)<0){if((W|0)==-2147483648?1:(X|0)>0?(2147483647-X|0)<(W|0):(-2147483648-X|0)>(W|0))I8(27795,26892,354,26903);if((X|0)>-1?(X|-2147483648|0)>=(W|0):(X^-2147483648|0)<(W|0))I8(27795,26892,354,26903)}if(X=Z-K|0,(K|0)<0)W=0-K|0,V[D>>2]=X,V[M>>2]=W,V[Y>>2]=0,K=0;else X=Z,W=0;if((X|0)<0)K=K-X|0,V[Y>>2]=K,W=W-X|0,V[M>>2]=W,V[D>>2]=0,X=0;if(G=K-W|0,Z=X-W|0,(W|0)<0)V[Y>>2]=G,V[D>>2]=Z,V[M>>2]=0,X=Z,Z=G,W=0;else Z=K;if(K=(X|0)<(Z|0)?X:Z,K=(W|0)<(K|0)?W:K,(K|0)<=0)return D=0,D|0;return V[Y>>2]=Z-K,V[D>>2]=X-K,V[M>>2]=W-K,D=0,D|0}function s1(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0,M=0;if(F=Y+8|0,Z=V[F>>2]|0,G=(V[Y>>2]|0)-Z|0,z=Y+4|0,Z=(V[z>>2]|0)-Z|0,G>>>0>715827881|Z>>>0>715827881){if(W=(G|0)>0,W?(2147483647-G|0)<(G|0):(-2147483648-G|0)>(G|0))return z=1,z|0;if(X=G<<1,K=(Z|0)>0,K?(2147483647-Z|0)<(Z|0):(-2147483648-Z|0)>(Z|0))return z=1,z|0;if(M=Z<<1,K?(2147483647-M|0)<(Z|0):(-2147483648-M|0)>(Z|0))return M=1,M|0;if(W?(2147483647-X|0)<(Z|0):(-2147483648-X|0)>(Z|0))return M=1,M|0;if(W=Z*3|0,(Z|0)>-1?(W|-2147483648|0)>=(G|0):(W^-2147483648|0)<(G|0))return M=1,M|0}else W=Z*3|0,X=G<<1;if(K=PY(+(X+Z|0)*0.14285714285714285)|0,V[Y>>2]=K,Z=PY(+(W-G|0)*0.14285714285714285)|0,V[z>>2]=Z,V[F>>2]=0,W=(Z|0)<(K|0),X=W?K:Z,W=W?Z:K,(W|0)<0){if((W|0)==-2147483648?1:(X|0)>0?(2147483647-X|0)<(W|0):(-2147483648-X|0)>(W|0))I8(27795,26892,402,26917);if((X|0)>-1?(X|-2147483648|0)>=(W|0):(X^-2147483648|0)<(W|0))I8(27795,26892,402,26917)}if(X=Z-K|0,(K|0)<0)W=0-K|0,V[z>>2]=X,V[F>>2]=W,V[Y>>2]=0,K=0;else X=Z,W=0;if((X|0)<0)K=K-X|0,V[Y>>2]=K,W=W-X|0,V[F>>2]=W,V[z>>2]=0,X=0;if(G=K-W|0,Z=X-W|0,(W|0)<0)V[Y>>2]=G,V[z>>2]=Z,V[F>>2]=0,X=Z,Z=G,W=0;else Z=K;if(K=(X|0)<(Z|0)?X:Z,K=(W|0)<(K|0)?W:K,(K|0)<=0)return M=0,M|0;return V[Y>>2]=Z-K,V[z>>2]=X-K,V[F>>2]=W-K,M=0,M|0}function n1(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0;if(F=Y+8|0,W=V[F>>2]|0,X=(V[Y>>2]|0)-W|0,z=Y+4|0,W=(V[z>>2]|0)-W|0,K=PY(+((X*3|0)-W|0)*0.14285714285714285)|0,V[Y>>2]=K,X=PY(+((W<<1)+X|0)*0.14285714285714285)|0,V[z>>2]=X,V[F>>2]=0,W=X-K|0,(K|0)<0)G=0-K|0,V[z>>2]=W,V[F>>2]=G,V[Y>>2]=0,X=W,K=0,W=G;else W=0;if((X|0)<0)K=K-X|0,V[Y>>2]=K,W=W-X|0,V[F>>2]=W,V[z>>2]=0,X=0;if(G=K-W|0,Z=X-W|0,(W|0)<0)V[Y>>2]=G,V[z>>2]=Z,V[F>>2]=0,X=Z,Z=G,W=0;else Z=K;if(K=(X|0)<(Z|0)?X:Z,K=(W|0)<(K|0)?W:K,(K|0)<=0)return;V[Y>>2]=Z-K,V[z>>2]=X-K,V[F>>2]=W-K;return}function gK(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0;if(F=Y+8|0,W=V[F>>2]|0,X=(V[Y>>2]|0)-W|0,z=Y+4|0,W=(V[z>>2]|0)-W|0,K=PY(+((X<<1)+W|0)*0.14285714285714285)|0,V[Y>>2]=K,X=PY(+((W*3|0)-X|0)*0.14285714285714285)|0,V[z>>2]=X,V[F>>2]=0,W=X-K|0,(K|0)<0)G=0-K|0,V[z>>2]=W,V[F>>2]=G,V[Y>>2]=0,X=W,K=0,W=G;else W=0;if((X|0)<0)K=K-X|0,V[Y>>2]=K,W=W-X|0,V[F>>2]=W,V[z>>2]=0,X=0;if(G=K-W|0,Z=X-W|0,(W|0)<0)V[Y>>2]=G,V[z>>2]=Z,V[F>>2]=0,X=Z,Z=G,W=0;else Z=K;if(K=(X|0)<(Z|0)?X:Z,K=(W|0)<(K|0)?W:K,(K|0)<=0)return;V[Y>>2]=Z-K,V[z>>2]=X-K,V[F>>2]=W-K;return}function f9(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0;if(X=V[Y>>2]|0,F=Y+4|0,W=V[F>>2]|0,z=Y+8|0,K=V[z>>2]|0,Z=W+(X*3|0)|0,V[Y>>2]=Z,W=K+(W*3|0)|0,V[F>>2]=W,X=(K*3|0)+X|0,V[z>>2]=X,K=W-Z|0,(Z|0)<0)X=X-Z|0,V[F>>2]=K,V[z>>2]=X,V[Y>>2]=0,W=K,K=0;else K=Z;if((W|0)<0)K=K-W|0,V[Y>>2]=K,X=X-W|0,V[z>>2]=X,V[F>>2]=0,W=0;if(G=K-X|0,Z=W-X|0,(X|0)<0)V[Y>>2]=G,V[F>>2]=Z,V[z>>2]=0,K=G,X=0;else Z=W;if(W=(Z|0)<(K|0)?Z:K,W=(X|0)<(W|0)?X:W,(W|0)<=0)return;V[Y>>2]=K-W,V[F>>2]=Z-W,V[z>>2]=X-W;return}function bY(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0;if(Z=V[Y>>2]|0,F=Y+4|0,X=V[F>>2]|0,z=Y+8|0,W=V[z>>2]|0,K=(X*3|0)+Z|0,Z=W+(Z*3|0)|0,V[Y>>2]=Z,V[F>>2]=K,X=(W*3|0)+X|0,V[z>>2]=X,W=K-Z|0,(Z|0)<0)X=X-Z|0,V[F>>2]=W,V[z>>2]=X,V[Y>>2]=0,Z=0;else W=K;if((W|0)<0)Z=Z-W|0,V[Y>>2]=Z,X=X-W|0,V[z>>2]=X,V[F>>2]=0,W=0;if(G=Z-X|0,K=W-X|0,(X|0)<0)V[Y>>2]=G,V[F>>2]=K,V[z>>2]=0,Z=G,X=0;else K=W;if(W=(K|0)<(Z|0)?K:Z,W=(X|0)<(W|0)?X:W,(W|0)<=0)return;V[Y>>2]=Z-W,V[F>>2]=K-W,V[z>>2]=X-W;return}function fK(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0;if((X+-1|0)>>>0>=6)return;if(Z=(V[15440+(X*12|0)>>2]|0)+(V[Y>>2]|0)|0,V[Y>>2]=Z,z=Y+4|0,K=(V[15440+(X*12|0)+4>>2]|0)+(V[z>>2]|0)|0,V[z>>2]=K,F=Y+8|0,X=(V[15440+(X*12|0)+8>>2]|0)+(V[F>>2]|0)|0,V[F>>2]=X,W=K-Z|0,(Z|0)<0)X=X-Z|0,V[z>>2]=W,V[F>>2]=X,V[Y>>2]=0,K=0;else W=K,K=Z;if((W|0)<0)K=K-W|0,V[Y>>2]=K,X=X-W|0,V[F>>2]=X,V[z>>2]=0,W=0;if(G=K-X|0,Z=W-X|0,(X|0)<0)V[Y>>2]=G,V[z>>2]=Z,V[F>>2]=0,K=G,X=0;else Z=W;if(W=(Z|0)<(K|0)?Z:K,W=(X|0)<(W|0)?X:W,(W|0)<=0)return;V[Y>>2]=K-W,V[z>>2]=Z-W,V[F>>2]=X-W;return}function mK(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0;if(Z=V[Y>>2]|0,F=Y+4|0,X=V[F>>2]|0,z=Y+8|0,W=V[z>>2]|0,K=X+Z|0,Z=W+Z|0,V[Y>>2]=Z,V[F>>2]=K,X=W+X|0,V[z>>2]=X,W=K-Z|0,(Z|0)<0)X=X-Z|0,V[F>>2]=W,V[z>>2]=X,V[Y>>2]=0,K=0;else W=K,K=Z;if((W|0)<0)K=K-W|0,V[Y>>2]=K,X=X-W|0,V[z>>2]=X,V[F>>2]=0,W=0;if(G=K-X|0,Z=W-X|0,(X|0)<0)V[Y>>2]=G,V[F>>2]=Z,V[z>>2]=0,K=G,X=0;else Z=W;if(W=(Z|0)<(K|0)?Z:K,W=(X|0)<(W|0)?X:W,(W|0)<=0)return;V[Y>>2]=K-W,V[F>>2]=Z-W,V[z>>2]=X-W;return}function m9(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0;if(X=V[Y>>2]|0,F=Y+4|0,K=V[F>>2]|0,z=Y+8|0,W=V[z>>2]|0,Z=K+X|0,V[Y>>2]=Z,K=W+K|0,V[F>>2]=K,X=W+X|0,V[z>>2]=X,W=K-Z|0,(Z|0)<0)X=X-Z|0,V[F>>2]=W,V[z>>2]=X,V[Y>>2]=0,K=0;else W=K,K=Z;if((W|0)<0)K=K-W|0,V[Y>>2]=K,X=X-W|0,V[z>>2]=X,V[F>>2]=0,W=0;if(G=K-X|0,Z=W-X|0,(X|0)<0)V[Y>>2]=G,V[F>>2]=Z,V[z>>2]=0,K=G,X=0;else Z=W;if(W=(Z|0)<(K|0)?Z:K,W=(X|0)<(W|0)?X:W,(W|0)<=0)return;V[Y>>2]=K-W,V[F>>2]=Z-W,V[z>>2]=X-W;return}function uY(Y){switch(Y=Y|0,Y|0){case 1:{Y=5;break}case 5:{Y=4;break}case 4:{Y=6;break}case 6:{Y=2;break}case 2:{Y=3;break}case 3:{Y=1;break}default:}return Y|0}function OY(Y){switch(Y=Y|0,Y|0){case 1:{Y=3;break}case 3:{Y=2;break}case 2:{Y=6;break}case 6:{Y=4;break}case 4:{Y=5;break}case 5:{Y=1;break}default:}return Y|0}function bK(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0;if(X=V[Y>>2]|0,F=Y+4|0,W=V[F>>2]|0,z=Y+8|0,K=V[z>>2]|0,Z=W+(X<<1)|0,V[Y>>2]=Z,W=K+(W<<1)|0,V[F>>2]=W,X=(K<<1)+X|0,V[z>>2]=X,K=W-Z|0,(Z|0)<0)X=X-Z|0,V[F>>2]=K,V[z>>2]=X,V[Y>>2]=0,W=K,K=0;else K=Z;if((W|0)<0)K=K-W|0,V[Y>>2]=K,X=X-W|0,V[z>>2]=X,V[F>>2]=0,W=0;if(G=K-X|0,Z=W-X|0,(X|0)<0)V[Y>>2]=G,V[F>>2]=Z,V[z>>2]=0,K=G,X=0;else Z=W;if(W=(Z|0)<(K|0)?Z:K,W=(X|0)<(W|0)?X:W,(W|0)<=0)return;V[Y>>2]=K-W,V[F>>2]=Z-W,V[z>>2]=X-W;return}function uK(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0;if(Z=V[Y>>2]|0,F=Y+4|0,X=V[F>>2]|0,z=Y+8|0,W=V[z>>2]|0,K=(X<<1)+Z|0,Z=W+(Z<<1)|0,V[Y>>2]=Z,V[F>>2]=K,X=(W<<1)+X|0,V[z>>2]=X,W=K-Z|0,(Z|0)<0)X=X-Z|0,V[F>>2]=W,V[z>>2]=X,V[Y>>2]=0,Z=0;else W=K;if((W|0)<0)Z=Z-W|0,V[Y>>2]=Z,X=X-W|0,V[z>>2]=X,V[F>>2]=0,W=0;if(G=Z-X|0,K=W-X|0,(X|0)<0)V[Y>>2]=G,V[F>>2]=K,V[z>>2]=0,Z=G,X=0;else K=W;if(W=(K|0)<(Z|0)?K:Z,W=(X|0)<(W|0)?X:W,(W|0)<=0)return;V[Y>>2]=Z-W,V[F>>2]=K-W,V[z>>2]=X-W;return}function ZX(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0;return F=(V[Y>>2]|0)-(V[X>>2]|0)|0,z=(F|0)<0,K=(V[Y+4>>2]|0)-(V[X+4>>2]|0)-(z?F:0)|0,G=(K|0)<0,Z=(z?0-F|0:0)+(V[Y+8>>2]|0)-(V[X+8>>2]|0)+(G?0-K|0:0)|0,Y=(Z|0)<0,X=Y?0:Z,W=(G?0:K)-(Y?Z:0)|0,Z=(z?0:F)-(G?K:0)-(Y?Z:0)|0,Y=(W|0)<(Z|0)?W:Z,Y=(X|0)<(Y|0)?X:Y,K=(Y|0)>0,X=X-(K?Y:0)|0,W=W-(K?Y:0)|0,Y=Z-(K?Y:0)|0,Y=(Y|0)>-1?Y:0-Y|0,W=(W|0)>-1?W:0-W|0,X=(X|0)>-1?X:0-X|0,X=(W|0)>(X|0)?W:X,((Y|0)>(X|0)?Y:X)|0}function r1(Y,X){Y=Y|0,X=X|0;var W=0;W=V[Y+8>>2]|0,V[X>>2]=(V[Y>>2]|0)-W,V[X+4>>2]=(V[Y+4>>2]|0)-W;return}function d1(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0;if(K=V[Y>>2]|0,V[X>>2]=K,Z=V[Y+4>>2]|0,F=X+4|0,V[F>>2]=Z,z=X+8|0,V[z>>2]=0,W=(Z|0)<(K|0),Y=W?K:Z,W=W?Z:K,(W|0)<0){if((W|0)==-2147483648?1:(Y|0)>0?(2147483647-Y|0)<(W|0):(-2147483648-Y|0)>(W|0))return X=1,X|0;if((Y|0)>-1?(Y|-2147483648|0)>=(W|0):(Y^-2147483648|0)<(W|0))return X=1,X|0}if(Y=Z-K|0,(K|0)<0)W=0-K|0,V[F>>2]=Y,V[z>>2]=W,V[X>>2]=0,K=0;else Y=Z,W=0;if((Y|0)<0)K=K-Y|0,V[X>>2]=K,W=W-Y|0,V[z>>2]=W,V[F>>2]=0,Y=0;if(G=K-W|0,Z=Y-W|0,(W|0)<0)V[X>>2]=G,V[F>>2]=Z,V[z>>2]=0,Y=Z,Z=G,W=0;else Z=K;if(K=(Y|0)<(Z|0)?Y:Z,K=(W|0)<(K|0)?W:K,(K|0)<=0)return X=0,X|0;return V[X>>2]=Z-K,V[F>>2]=Y-K,V[z>>2]=W-K,X=0,X|0}function pK(Y){Y=Y|0;var X=0,W=0,K=0,Z=0;X=Y+8|0,Z=V[X>>2]|0,W=Z-(V[Y>>2]|0)|0,V[Y>>2]=W,K=Y+4|0,Y=(V[K>>2]|0)-Z|0,V[K>>2]=Y,V[X>>2]=0-(Y+W);return}function l1(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0;if(W=V[Y>>2]|0,X=0-W|0,V[Y>>2]=X,F=Y+8|0,V[F>>2]=0,z=Y+4|0,K=V[z>>2]|0,Z=K+W|0,(W|0)>0)V[z>>2]=Z,V[F>>2]=W,V[Y>>2]=0,X=0,K=Z;else W=0;if((K|0)<0)if(G=X-K|0,V[Y>>2]=G,W=W-K|0,V[F>>2]=W,V[z>>2]=0,Z=G-W|0,X=0-W|0,(W|0)<0)V[Y>>2]=Z,V[z>>2]=X,V[F>>2]=0,K=X,W=0;else K=0,Z=G;else Z=X;if(X=(K|0)<(Z|0)?K:Z,X=(W|0)<(X|0)?W:X,(X|0)<=0)return;V[Y>>2]=Z-X,V[z>>2]=K-X,V[F>>2]=W-X;return}function i1(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,M=0,D=0,C=0,R=0;if(R=P,P=P+64|0,C=R,z=R+56|0,!(!0&(X&2013265920|0)==134217728&(!0&(K&2013265920|0)==134217728)))return Z=5,P=R,Z|0;if((Y|0)==(W|0)&(X|0)==(K|0))return V[Z>>2]=0,Z=0,P=R,Z|0;if(F=n(Y|0,X|0,52)|0,I()|0,F=F&15,D=n(W|0,K|0,52)|0,I()|0,(F|0)!=(D&15|0))return Z=12,P=R,Z|0;if(G=F+-1|0,F>>>0>1){UX(Y,X,G,C)|0,UX(W,K,G,z)|0,D=C,M=V[D>>2]|0,D=V[D+4>>2]|0;Y:do if((M|0)==(V[z>>2]|0)?(D|0)==(V[z+4>>2]|0):0){F=(F^15)*3|0,G=n(Y|0,X|0,F|0)|0,I()|0,G=G&7,F=n(W|0,K|0,F|0)|0,I()|0,F=F&7;do if(!((G|0)==0|(F|0)==0))if((G|0)==7)G=5;else{if((G|0)==1|(F|0)==1?Z6(M,D)|0:0){G=5;break}if((V[15536+(G<<2)>>2]|0)!=(F|0)?(V[15568+(G<<2)>>2]|0)!=(F|0):0)break Y;V[Z>>2]=1,G=0}else V[Z>>2]=1,G=0;while(0);return Z=G,P=R,Z|0}while(0)}G=C,F=G+56|0;do V[G>>2]=0,G=G+4|0;while((G|0)<(F|0));if(HK(Y,X,1,C)|0,X=C,((((!((V[X>>2]|0)==(W|0)?(V[X+4>>2]|0)==(K|0):0)?(X=C+8|0,!((V[X>>2]|0)==(W|0)?(V[X+4>>2]|0)==(K|0):0)):0)?(X=C+16|0,!((V[X>>2]|0)==(W|0)?(V[X+4>>2]|0)==(K|0):0)):0)?(X=C+24|0,!((V[X>>2]|0)==(W|0)?(V[X+4>>2]|0)==(K|0):0)):0)?(X=C+32|0,!((V[X>>2]|0)==(W|0)?(V[X+4>>2]|0)==(K|0):0)):0)?(X=C+40|0,!((V[X>>2]|0)==(W|0)?(V[X+4>>2]|0)==(K|0):0)):0)G=C+48|0,G=((V[G>>2]|0)==(W|0)?(V[G+4>>2]|0)==(K|0):0)&1;else G=1;return V[Z>>2]=G,Z=0,P=R,Z|0}function o1(Y,X,W,K,Z){if(Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0,W=eV(Y,X,W,K)|0,(W|0)==7)return Z=11,Z|0;return K=t(W|0,0,56)|0,X=X&-2130706433|(I()|0)|268435456,V[Z>>2]=Y|K,V[Z+4>>2]=X,Z=0,Z|0}function a1(Y,X,W){if(Y=Y|0,X=X|0,W=W|0,!(!0&(X&2013265920|0)==268435456))return W=6,W|0;return V[W>>2]=Y,V[W+4>>2]=X&-2130706433|134217728,W=0,W|0}function t1(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0;if(Z=P,P=P+16|0,K=Z,V[K>>2]=0,!(!0&(X&2013265920|0)==268435456))return K=6,P=Z,K|0;return G=n(Y|0,X|0,56)|0,I()|0,K=T6(Y,X&-2130706433|134217728,G&7,K,W)|0,P=Z,K|0}function e1(Y,X){Y=Y|0,X=X|0;var W=0;switch(W=n(Y|0,X|0,56)|0,I()|0,W&7){case 0:case 7:return W=0,W|0;default:}if(W=X&-2130706433|134217728,!(!0&(X&2013265920|0)==268435456))return W=0,W|0;if(!0&(X&117440512|0)==16777216&(Z6(Y,W)|0)!=0)return W=0,W|0;return W=FX(Y,W)|0,W|0}function Y3(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0;if(Z=P,P=P+16|0,K=Z,!(!0&(X&2013265920|0)==268435456))return K=6,P=Z,K|0;return G=X&-2130706433|134217728,F=W,V[F>>2]=Y,V[F+4>>2]=G,V[K>>2]=0,X=n(Y|0,X|0,56)|0,I()|0,K=T6(Y,G,X&7,K,W+8|0)|0,P=Z,K|0}function V3(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0;return Z=(Z6(Y,X)|0)==0,X=X&-2130706433,K=W,V[K>>2]=Z?Y:0,V[K+4>>2]=Z?X|285212672:0,K=W+8|0,V[K>>2]=Y,V[K+4>>2]=X|301989888,K=W+16|0,V[K>>2]=Y,V[K+4>>2]=X|318767104,K=W+24|0,V[K>>2]=Y,V[K+4>>2]=X|335544320,K=W+32|0,V[K>>2]=Y,V[K+4>>2]=X|352321536,W=W+40|0,V[W>>2]=Y,V[W+4>>2]=X|369098752,0}function b9(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0;if(F=P,P=P+16|0,Z=F,G=X&-2130706433|134217728,!(!0&(X&2013265920|0)==268435456))return G=6,P=F,G|0;if(K=n(Y|0,X|0,56)|0,I()|0,K=t3(Y,G,K&7)|0,(K|0)==-1)return V[W>>2]=0,G=6,P=F,G|0;if(z7(Y,G,Z)|0)I8(27795,26932,282,26947);if(X=n(Y|0,X|0,52)|0,I()|0,X=X&15,!(Z6(Y,G)|0))GX(Z,X,K,2,W);else QX(Z,X,K,2,W);return G=0,P=F,G|0}function X3(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0;K=P,P=P+16|0,Z=K,W3(Y,X,W,Z),p1(Z,W+4|0),P=K;return}function W3(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,M=0;if(z=P,P=P+16|0,M=z,K3(Y,W,M),G=+q1(+(1-+O[M>>3]*0.5)),G<0.0000000000000001){V[K>>2]=0,V[K+4>>2]=0,V[K+8>>2]=0,V[K+12>>2]=0,P=z;return}if(M=V[W>>2]|0,Z=+O[15920+(M*24|0)>>3],Z=+i7(Z-+i7(+A3(15600+(M<<4)|0,Y))),!(N0(X)|0))F=Z;else F=+i7(Z+-0.3334731722518321);if(Z=+r7(+G)*2.618033988749896,(X|0)>0){Y=0;do Z=Z*2.6457513110645907,Y=Y+1|0;while((Y|0)!=(X|0))}G=+m8(+F)*Z,O[K>>3]=G,F=+c8(+F)*Z,O[K+8>>3]=F,P=z;return}function K3(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0;if(G=P,P=P+32|0,Z=G,a3(Y,Z),V[X>>2]=0,O[W>>3]=5,K=+O6(16400,Z),K<+O[W>>3])V[X>>2]=0,O[W>>3]=K;if(K=+O6(16424,Z),K<+O[W>>3])V[X>>2]=1,O[W>>3]=K;if(K=+O6(16448,Z),K<+O[W>>3])V[X>>2]=2,O[W>>3]=K;if(K=+O6(16472,Z),K<+O[W>>3])V[X>>2]=3,O[W>>3]=K;if(K=+O6(16496,Z),K<+O[W>>3])V[X>>2]=4,O[W>>3]=K;if(K=+O6(16520,Z),K<+O[W>>3])V[X>>2]=5,O[W>>3]=K;if(K=+O6(16544,Z),K<+O[W>>3])V[X>>2]=6,O[W>>3]=K;if(K=+O6(16568,Z),K<+O[W>>3])V[X>>2]=7,O[W>>3]=K;if(K=+O6(16592,Z),K<+O[W>>3])V[X>>2]=8,O[W>>3]=K;if(K=+O6(16616,Z),K<+O[W>>3])V[X>>2]=9,O[W>>3]=K;if(K=+O6(16640,Z),K<+O[W>>3])V[X>>2]=10,O[W>>3]=K;if(K=+O6(16664,Z),K<+O[W>>3])V[X>>2]=11,O[W>>3]=K;if(K=+O6(16688,Z),K<+O[W>>3])V[X>>2]=12,O[W>>3]=K;if(K=+O6(16712,Z),K<+O[W>>3])V[X>>2]=13,O[W>>3]=K;if(K=+O6(16736,Z),K<+O[W>>3])V[X>>2]=14,O[W>>3]=K;if(K=+O6(16760,Z),K<+O[W>>3])V[X>>2]=15,O[W>>3]=K;if(K=+O6(16784,Z),K<+O[W>>3])V[X>>2]=16,O[W>>3]=K;if(K=+O6(16808,Z),K<+O[W>>3])V[X>>2]=17,O[W>>3]=K;if(K=+O6(16832,Z),K<+O[W>>3])V[X>>2]=18,O[W>>3]=K;if(K=+O6(16856,Z),!(K<+O[W>>3])){P=G;return}V[X>>2]=19,O[W>>3]=K,P=G;return}function d7(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0;if(G=+o3(Y),G<0.0000000000000001){X=15600+(X<<4)|0,V[Z>>2]=V[X>>2],V[Z+4>>2]=V[X+4>>2],V[Z+8>>2]=V[X+8>>2],V[Z+12>>2]=V[X+12>>2];return}if(F=+D0(+ +O[Y+8>>3],+ +O[Y>>3]),(W|0)>0){Y=0;do G=G*0.37796447300922725,Y=Y+1|0;while((Y|0)!=(W|0))}if(z=G*0.3333333333333333,!K){if(G=+aV(+(G*0.381966011250105)),N0(W)|0)F=+i7(F+0.3334731722518321)}else W=(N0(W)|0)==0,G=+aV(+((W?z:z*0.37796447300922725)*0.381966011250105));R3(15600+(X<<4)|0,+i7(+O[15920+(X*24|0)>>3]-F),G,Z);return}function J3(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0;K=P,P=P+16|0,Z=K,mY(Y+4|0,Z),d7(Z,V[Y>>2]|0,X,0,W),P=K;return}function QX(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0,x=0,y=0,$=0,_=0,k=0,E=0,a=0,M8=0,Q8=0,x8=0,y8=0,g8=0,R8=0,B8=0,o=0,_8=0,t8=0,k8=0;if(_8=P,P=P+272|0,G=_8+256|0,_=_8+240|0,R8=_8,B8=_8+224|0,o=_8+208|0,k=_8+176|0,E=_8+160|0,a=_8+192|0,M8=_8+144|0,Q8=_8+128|0,x8=_8+112|0,y8=_8+96|0,g8=_8+80|0,V[G>>2]=X,V[_>>2]=V[Y>>2],V[_+4>>2]=V[Y+4>>2],V[_+8>>2]=V[Y+8>>2],V[_+12>>2]=V[Y+12>>2],cK(_,G,R8),V[Z>>2]=0,_=K+W+((K|0)==5&1)|0,(_|0)<=(W|0)){P=_8;return}M=V[G>>2]|0,D=B8+4|0,C=k+4|0,R=W+5|0,H=16880+(M<<2)|0,L=16960+(M<<2)|0,j=Q8+8|0,x=x8+8|0,y=y8+8|0,$=o+4|0,z=W;Y:while(!0){F=R8+(((z|0)%5|0)<<4)|0,V[o>>2]=V[F>>2],V[o+4>>2]=V[F+4>>2],V[o+8>>2]=V[F+8>>2],V[o+12>>2]=V[F+12>>2];do;while((F7(o,M,0,1)|0)==2);if((z|0)>(W|0)&(N0(X)|0)!=0){if(V[k>>2]=V[o>>2],V[k+4>>2]=V[o+4>>2],V[k+8>>2]=V[o+8>>2],V[k+12>>2]=V[o+12>>2],mY(D,E),K=V[k>>2]|0,G=V[17040+(K*80|0)+(V[B8>>2]<<2)>>2]|0,V[k>>2]=V[18640+(K*80|0)+(G*20|0)>>2],F=V[18640+(K*80|0)+(G*20|0)+16>>2]|0,(F|0)>0){Y=0;do mK(C),Y=Y+1|0;while((Y|0)<(F|0))}switch(F=18640+(K*80|0)+(G*20|0)+4|0,V[a>>2]=V[F>>2],V[a+4>>2]=V[F+4>>2],V[a+8>>2]=V[F+8>>2],$K(a,(V[H>>2]|0)*3|0),p6(C,a,C),b6(C),mY(C,M8),t8=+(V[L>>2]|0),O[Q8>>3]=t8*3,O[j>>3]=0,k8=t8*-1.5,O[x8>>3]=k8,O[x>>3]=t8*2.598076211353316,O[y8>>3]=k8,O[y>>3]=t8*-2.598076211353316,V[17040+((V[k>>2]|0)*80|0)+(V[o>>2]<<2)>>2]|0){case 1:{Y=x8,K=Q8;break}case 3:{Y=y8,K=x8;break}case 2:{Y=Q8,K=y8;break}default:{Y=12;break Y}}J5(E,M8,K,Y,g8),d7(g8,V[k>>2]|0,M,1,Z+8+(V[Z>>2]<<4)|0),V[Z>>2]=(V[Z>>2]|0)+1}if((z|0)<(R|0))mY($,k),d7(k,V[o>>2]|0,M,1,Z+8+(V[Z>>2]<<4)|0),V[Z>>2]=(V[Z>>2]|0)+1;if(V[B8>>2]=V[o>>2],V[B8+4>>2]=V[o+4>>2],V[B8+8>>2]=V[o+8>>2],V[B8+12>>2]=V[o+12>>2],z=z+1|0,(z|0)>=(_|0)){Y=3;break}}if((Y|0)==3){P=_8;return}else if((Y|0)==12)I8(26970,27017,572,27027)}function cK(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,M=0;M=P,P=P+128|0,K=M+64|0,Z=M,G=K,F=20240,z=G+60|0;do V[G>>2]=V[F>>2],G=G+4|0,F=F+4|0;while((G|0)<(z|0));G=Z,F=20304,z=G+60|0;do V[G>>2]=V[F>>2],G=G+4|0,F=F+4|0;while((G|0)<(z|0));if(z=(N0(V[X>>2]|0)|0)==0,K=z?K:Z,Z=Y+4|0,bK(Z),uK(Z),N0(V[X>>2]|0)|0)bY(Z),V[X>>2]=(V[X>>2]|0)+1;V[W>>2]=V[Y>>2],X=W+4|0,p6(Z,K,X),b6(X),V[W+16>>2]=V[Y>>2],X=W+20|0,p6(Z,K+12|0,X),b6(X),V[W+32>>2]=V[Y>>2],X=W+36|0,p6(Z,K+24|0,X),b6(X),V[W+48>>2]=V[Y>>2],X=W+52|0,p6(Z,K+36|0,X),b6(X),V[W+64>>2]=V[Y>>2],W=W+68|0,p6(Z,K+48|0,W),b6(W),P=M;return}function F7(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0;if(j=P,P=P+32|0,H=j+12|0,z=j,L=Y+4|0,R=V[16960+(X<<2)>>2]|0,C=(K|0)!=0,R=C?R*3|0:R,Z=V[L>>2]|0,D=Y+8|0,F=V[D>>2]|0,C)if(G=Y+12|0,K=V[G>>2]|0,Z=F+Z+K|0,(Z|0)==(R|0))return L=1,P=j,L|0;else M=G;else M=Y+12|0,K=V[M>>2]|0,Z=F+Z+K|0;if((Z|0)<=(R|0))return L=0,P=j,L|0;do if((K|0)>0){if(K=V[Y>>2]|0,(F|0)>0){G=18640+(K*80|0)+60|0,K=Y;break}if(K=18640+(K*80|0)+40|0,!W)G=K,K=Y;else u1(H,R,0,0),JX(L,H,z),m9(z),p6(z,H,L),G=K,K=Y}else G=18640+((V[Y>>2]|0)*80|0)+20|0,K=Y;while(0);if(V[K>>2]=V[G>>2],Z=G+16|0,(V[Z>>2]|0)>0){K=0;do mK(L),K=K+1|0;while((K|0)<(V[Z>>2]|0))}if(Y=G+4|0,V[H>>2]=V[Y>>2],V[H+4>>2]=V[Y+4>>2],V[H+8>>2]=V[Y+8>>2],X=V[16880+(X<<2)>>2]|0,$K(H,C?X*3|0:X),p6(L,H,L),b6(L),C)K=((V[D>>2]|0)+(V[L>>2]|0)+(V[M>>2]|0)|0)==(R|0)?1:2;else K=2;return L=K,P=j,L|0}function Z3(Y,X){Y=Y|0,X=X|0;var W=0;do W=F7(Y,X,0,1)|0;while((W|0)==2);return W|0}function GX(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0,x=0,y=0,$=0,_=0,k=0,E=0,a=0,M8=0,Q8=0,x8=0,y8=0,g8=0,R8=0;if(y8=P,P=P+240|0,G=y8+224|0,a=y8+208|0,M8=y8,Q8=y8+192|0,x8=y8+176|0,y=y8+160|0,$=y8+144|0,_=y8+128|0,k=y8+112|0,E=y8+96|0,V[G>>2]=X,V[a>>2]=V[Y>>2],V[a+4>>2]=V[Y+4>>2],V[a+8>>2]=V[Y+8>>2],V[a+12>>2]=V[Y+12>>2],sK(a,G,M8),V[Z>>2]=0,x=K+W+((K|0)==6&1)|0,(x|0)<=(W|0)){P=y8;return}M=V[G>>2]|0,D=W+6|0,C=16960+(M<<2)|0,R=$+8|0,H=_+8|0,L=k+8|0,j=Q8+4|0,F=0,z=W,K=-1;Y:while(!0){if(G=(z|0)%6|0,Y=M8+(G<<4)|0,V[Q8>>2]=V[Y>>2],V[Q8+4>>2]=V[Y+4>>2],V[Q8+8>>2]=V[Y+8>>2],V[Q8+12>>2]=V[Y+12>>2],Y=F,F=F7(Q8,M,0,1)|0,(z|0)>(W|0)&(N0(X)|0)!=0?(Y|0)!=1?(V[Q8>>2]|0)!=(K|0):0:0){switch(mY(M8+(((G+5|0)%6|0)<<4)+4|0,x8),mY(M8+(G<<4)+4|0,y),g8=+(V[C>>2]|0),O[$>>3]=g8*3,O[R>>3]=0,R8=g8*-1.5,O[_>>3]=R8,O[H>>3]=g8*2.598076211353316,O[k>>3]=R8,O[L>>3]=g8*-2.598076211353316,G=V[a>>2]|0,V[17040+(G*80|0)+(((K|0)==(G|0)?V[Q8>>2]|0:K)<<2)>>2]|0){case 1:{Y=_,K=$;break}case 3:{Y=k,K=_;break}case 2:{Y=$,K=k;break}default:{Y=8;break Y}}if(J5(x8,y,K,Y,E),!(Z5(x8,E)|0)?!(Z5(y,E)|0):0)d7(E,V[a>>2]|0,M,1,Z+8+(V[Z>>2]<<4)|0),V[Z>>2]=(V[Z>>2]|0)+1}if((z|0)<(D|0))mY(j,x8),d7(x8,V[Q8>>2]|0,M,1,Z+8+(V[Z>>2]<<4)|0),V[Z>>2]=(V[Z>>2]|0)+1;if(z=z+1|0,(z|0)>=(x|0)){Y=3;break}else K=V[Q8>>2]|0}if((Y|0)==3){P=y8;return}else if((Y|0)==8)I8(27054,27017,737,27099)}function sK(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,M=0;M=P,P=P+160|0,K=M+80|0,Z=M,G=K,F=20368,z=G+72|0;do V[G>>2]=V[F>>2],G=G+4|0,F=F+4|0;while((G|0)<(z|0));G=Z,F=20448,z=G+72|0;do V[G>>2]=V[F>>2],G=G+4|0,F=F+4|0;while((G|0)<(z|0));if(z=(N0(V[X>>2]|0)|0)==0,K=z?K:Z,Z=Y+4|0,bK(Z),uK(Z),N0(V[X>>2]|0)|0)bY(Z),V[X>>2]=(V[X>>2]|0)+1;V[W>>2]=V[Y>>2],X=W+4|0,p6(Z,K,X),b6(X),V[W+16>>2]=V[Y>>2],X=W+20|0,p6(Z,K+12|0,X),b6(X),V[W+32>>2]=V[Y>>2],X=W+36|0,p6(Z,K+24|0,X),b6(X),V[W+48>>2]=V[Y>>2],X=W+52|0,p6(Z,K+36|0,X),b6(X),V[W+64>>2]=V[Y>>2],X=W+68|0,p6(Z,K+48|0,X),b6(X),V[W+80>>2]=V[Y>>2],W=W+84|0,p6(Z,K+60|0,W),b6(W),P=M;return}function Q3(Y,X){return Y=Y|0,X=X|0,X=n(Y|0,X|0,52)|0,I()|0,X&15|0}function nK(Y,X){return Y=Y|0,X=X|0,X=n(Y|0,X|0,45)|0,I()|0,X&127|0}function FX(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0;if(!(!0&(X&-16777216|0)==134217728))return Y=0,Y|0;if(K=n(Y|0,X|0,52)|0,I()|0,K=K&15,W=n(Y|0,X|0,45)|0,I()|0,W=W&127,W>>>0>121)return Y=0,Y|0;if(F=(K^15)*3|0,Z=n(Y|0,X|0,F|0)|0,F=t(Z|0,I()|0,F|0)|0,Z=I()|0,G=h6(-1227133514,-1171,F|0,Z|0)|0,!((F&613566756&G|0)==0&(Z&4681&(I()|0)|0)==0))return F=0,F|0;if(F=(K*3|0)+19|0,G=t(~Y|0,~X|0,F|0)|0,F=n(G|0,I()|0,F|0)|0,!((K|0)==15|(F|0)==0&(I()|0)==0))return F=0,F|0;if(!(s[20528+W>>0]|0))return F=1,F|0;if(X=X&8191,(Y|0)==0&(X|0)==0)return F=1,F|0;else return F=M5(Y|0,X|0,0)|0,I()|0,((63-F|0)%3|0|0)!=0|0;return 0}function zX(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0;if(Z=t(X|0,0,52)|0,G=I()|0,W=t(W|0,0,45)|0,W=G|(I()|0)|134225919,(X|0)<1){G=-1,K=W,X=Y,V[X>>2]=G,Y=Y+4|0,V[Y>>2]=K;return}G=1,Z=-1;while(!0)if(F=(15-G|0)*3|0,z=t(7,0,F|0)|0,W=W&~(I()|0),F=t(K|0,0,F|0)|0,Z=Z&~z|F,W=W|(I()|0),(G|0)==(X|0))break;else G=G+1|0;z=Y,F=z,V[F>>2]=Z,z=z+4|0,V[z>>2]=W;return}function UX(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0;if(G=n(Y|0,X|0,52)|0,I()|0,G=G&15,W>>>0>15)return K=4,K|0;if((G|0)<(W|0))return K=12,K|0;if((G|0)==(W|0))return V[K>>2]=Y,V[K+4>>2]=X,K=0,K|0;if(Z=t(W|0,0,52)|0,Z=Z|Y,Y=I()|0|X&-15728641,(G|0)>(W|0))do X=t(7,0,(14-W|0)*3|0)|0,W=W+1|0,Z=X|Z,Y=I()|0|Y;while((W|0)<(G|0));return V[K>>2]=Z,V[K+4>>2]=Y,K=0,K|0}function l7(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0;if(G=n(Y|0,X|0,52)|0,I()|0,G=G&15,!((W|0)<16&(G|0)<=(W|0)))return K=4,K|0;Z=W-G|0,W=n(Y|0,X|0,45)|0,I()|0;Y:do if(!(z6(W&127)|0))W=SY(7,0,Z,((Z|0)<0)<<31>>31)|0,Z=I()|0;else{V:do if(G|0){W=1;while(!0){if(F=t(7,0,(15-W|0)*3|0)|0,!((F&Y|0)==0&((I()|0)&X|0)==0))break;if(W>>>0<G>>>0)W=W+1|0;else break V}W=SY(7,0,Z,((Z|0)<0)<<31>>31)|0,Z=I()|0;break Y}while(0);W=SY(7,0,Z,((Z|0)<0)<<31>>31)|0,W=x6(W|0,I()|0,5,0)|0,W=O8(W|0,I()|0,-5,-1)|0,W=AY(W|0,I()|0,6,0)|0,W=O8(W|0,I()|0,1,0)|0,Z=I()|0}while(0);return F=K,V[F>>2]=W,V[F+4>>2]=Z,F=0,F|0}function Z6(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0;if(Z=n(Y|0,X|0,45)|0,I()|0,!(z6(Z&127)|0))return Z=0,Z|0;Z=n(Y|0,X|0,52)|0,I()|0,Z=Z&15;Y:do if(!Z)W=0;else{K=1;while(!0){if(W=n(Y|0,X|0,(15-K|0)*3|0)|0,I()|0,W=W&7,W|0)break Y;if(K>>>0<Z>>>0)K=K+1|0;else{W=0;break}}}while(0);return Z=(W|0)==0&1,Z|0}function G3(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0;if(F=P,P=P+16|0,G=F,CX(G,Y,X,W),X=G,Y=V[X>>2]|0,X=V[X+4>>2]|0,(Y|0)==0&(X|0)==0)return P=F,0;Z=0,W=0;do z=K+(Z<<3)|0,V[z>>2]=Y,V[z+4>>2]=X,Z=O8(Z|0,W|0,1,0)|0,W=I()|0,OX(G),z=G,Y=V[z>>2]|0,X=V[z+4>>2]|0;while(!((Y|0)==0&(X|0)==0));return P=F,0}function rK(Y,X,W,K){if(Y=Y|0,X=X|0,W=W|0,K=K|0,(K|0)<(W|0))return W=X,K=Y,E8(W|0),K|0;return W=t(-1,-1,((K-W|0)*3|0)+3|0)|0,K=t(~W|0,~(I()|0)|0,(15-K|0)*3|0)|0,W=~(I()|0)&X,K=~K&Y,E8(W|0),K|0}function dK(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0;if(Z=n(Y|0,X|0,52)|0,I()|0,Z=Z&15,!((W|0)<16&(Z|0)<=(W|0)))return K=4,K|0;if((Z|0)<(W|0))Z=t(-1,-1,((W+-1-Z|0)*3|0)+3|0)|0,Z=t(~Z|0,~(I()|0)|0,(15-W|0)*3|0)|0,X=~(I()|0)&X,Y=~Z&Y;return Z=t(W|0,0,52)|0,W=X&-15728641|(I()|0),V[K>>2]=Y|Z,V[K+4>>2]=W,K=0,K|0}function F3(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0,x=0,y=0,$=0,_=0,k=0,E=0,a=0,M8=0,Q8=0,x8=0,y8=0,g8=0,R8=0,B8=0,o=0;if((W|0)==0&(K|0)==0)return o=0,o|0;if(Z=Y,G=V[Z>>2]|0,Z=V[Z+4>>2]|0,!0&(Z&15728640|0)==0){if(!((K|0)>0|(K|0)==0&W>>>0>0))return o=0,o|0;if(o=X,V[o>>2]=G,V[o+4>>2]=Z,(W|0)==1&(K|0)==0)return o=0,o|0;Z=1,G=0;do R8=Y+(Z<<3)|0,B8=V[R8+4>>2]|0,o=X+(Z<<3)|0,V[o>>2]=V[R8>>2],V[o+4>>2]=B8,Z=O8(Z|0,G|0,1,0)|0,G=I()|0;while((G|0)<(K|0)|(G|0)==(K|0)&Z>>>0<W>>>0);return Z=0,Z|0}if(g8=W<<3,B8=h0(g8)|0,!B8)return o=13,o|0;if(D7(B8|0,Y|0,g8|0)|0,R8=Y0(W,8)|0,!R8)return S8(B8),o=13,o|0;Y:while(!0){Z=B8,D=V[Z>>2]|0,Z=V[Z+4>>2]|0,x8=n(D|0,Z|0,52)|0,I()|0,x8=x8&15,y8=x8+-1|0,Q8=(x8|0)!=0,M8=(K|0)>0|(K|0)==0&W>>>0>0;V:do if(Q8&M8){if(_=t(y8|0,0,52)|0,k=I()|0,y8>>>0>15){if(!((D|0)==0&(Z|0)==0)){o=16;break Y}G=0,Y=0;while(!0){if(G=O8(G|0,Y|0,1,0)|0,Y=I()|0,!((Y|0)<(K|0)|(Y|0)==(K|0)&G>>>0<W>>>0))break V;if(F=B8+(G<<3)|0,a=V[F>>2]|0,F=V[F+4>>2]|0,!((a|0)==0&(F|0)==0)){Z=F,o=16;break Y}}}z=D,Y=Z,G=0,F=0;while(!0){if(!((z|0)==0&(Y|0)==0)){if(!(!0&(Y&117440512|0)==0)){o=21;break Y}if(C=n(z|0,Y|0,52)|0,I()|0,C=C&15,(C|0)<(y8|0)){Z=12,o=27;break Y}if((C|0)!=(y8|0)){if(z=z|_,Y=Y&-15728641|k,C>>>0>=x8>>>0){M=y8;do a=t(7,0,(14-M|0)*3|0)|0,M=M+1|0,z=a|z,Y=I()|0|Y;while(M>>>0<C>>>0)}}if(H=B7(z|0,Y|0,W|0,K|0)|0,L=I()|0,M=R8+(H<<3)|0,C=M,R=V[C>>2]|0,C=V[C+4>>2]|0,!((R|0)==0&(C|0)==0)){y=0,$=0;do{if((y|0)>(K|0)|(y|0)==(K|0)&$>>>0>W>>>0){o=31;break Y}if((R|0)==(z|0)&(C&-117440513|0)==(Y|0)){j=n(R|0,C|0,56)|0,I()|0,j=j&7,x=j+1|0,a=n(R|0,C|0,45)|0,I()|0;X:do if(!(z6(a&127)|0))C=7;else{if(R=n(R|0,C|0,52)|0,I()|0,R=R&15,!R){C=6;break}C=1;while(!0){if(a=t(7,0,(15-C|0)*3|0)|0,!((a&z|0)==0&((I()|0)&Y|0)==0)){C=7;break X}if(C>>>0<R>>>0)C=C+1|0;else{C=6;break}}}while(0);if((j+2|0)>>>0>C>>>0){o=41;break Y}a=t(x|0,0,56)|0,Y=I()|0|Y&-117440513,E=M,V[E>>2]=0,V[E+4>>2]=0,z=a|z}else H=O8(H|0,L|0,1,0)|0,H=M7(H|0,I()|0,W|0,K|0)|0,L=I()|0;$=O8($|0,y|0,1,0)|0,y=I()|0,M=R8+(H<<3)|0,C=M,R=V[C>>2]|0,C=V[C+4>>2]|0}while(!((R|0)==0&(C|0)==0))}a=M,V[a>>2]=z,V[a+4>>2]=Y}if(G=O8(G|0,F|0,1,0)|0,F=I()|0,!((F|0)<(K|0)|(F|0)==(K|0)&G>>>0<W>>>0))break V;Y=B8+(G<<3)|0,z=V[Y>>2]|0,Y=V[Y+4>>2]|0}}while(0);if(a=O8(W|0,K|0,5,0)|0,E=I()|0,E>>>0<0|(E|0)==0&a>>>0<11){o=85;break}if(a=AY(W|0,K|0,6,0)|0,I()|0,a=Y0(a,8)|0,!a){o=48;break}do if(M8){x=0,Y=0,j=0,y=0;while(!0){if(C=R8+(x<<3)|0,F=C,G=V[F>>2]|0,F=V[F+4>>2]|0,!((G|0)==0&(F|0)==0)){R=n(G|0,F|0,56)|0,I()|0,R=R&7,z=R+1|0,H=F&-117440513,E=n(G|0,F|0,45)|0,I()|0;V:do if(z6(E&127)|0){if(L=n(G|0,F|0,52)|0,I()|0,L=L&15,L|0){M=1;while(!0){if(E=t(7,0,(15-M|0)*3|0)|0,!((G&E|0)==0&(H&(I()|0)|0)==0))break V;if(M>>>0<L>>>0)M=M+1|0;else break}}F=t(z|0,0,56)|0,G=F|G,F=I()|0|H,z=C,V[z>>2]=G,V[z+4>>2]=F,z=R+2|0}while(0);if((z|0)==7)E=a+(Y<<3)|0,V[E>>2]=G,V[E+4>>2]=F&-117440513,Y=O8(Y|0,j|0,1,0)|0,E=I()|0;else E=j}else E=j;if(x=O8(x|0,y|0,1,0)|0,y=I()|0,!((y|0)<(K|0)|(y|0)==(K|0)&x>>>0<W>>>0))break;else j=E}if(M8){if($=y8>>>0>15,_=t(y8|0,0,52)|0,k=I()|0,!Q8){G=0,M=0,z=0,F=0;while(!0){if(!((D|0)==0&(Z|0)==0))y8=X+(G<<3)|0,V[y8>>2]=D,V[y8+4>>2]=Z,G=O8(G|0,M|0,1,0)|0,M=I()|0;if(z=O8(z|0,F|0,1,0)|0,F=I()|0,!((F|0)<(K|0)|(F|0)==(K|0)&z>>>0<W>>>0))break;Z=B8+(z<<3)|0,D=V[Z>>2]|0,Z=V[Z+4>>2]|0}Z=E;break}G=0,M=0,F=0,z=0;while(!0){do if(!((D|0)==0&(Z|0)==0)){if(L=n(D|0,Z|0,52)|0,I()|0,L=L&15,$|(L|0)<(y8|0)){o=80;break Y}if((L|0)!=(y8|0)){if(C=D|_,R=Z&-15728641|k,L>>>0>=x8>>>0){H=y8;do Q8=t(7,0,(14-H|0)*3|0)|0,H=H+1|0,C=Q8|C,R=I()|0|R;while(H>>>0<L>>>0)}}else C=D,R=Z;j=B7(C|0,R|0,W|0,K|0)|0,H=0,L=0,y=I()|0;do{if((H|0)>(K|0)|(H|0)==(K|0)&L>>>0>W>>>0){o=81;break Y}if(Q8=R8+(j<<3)|0,x=V[Q8+4>>2]|0,(x&-117440513|0)==(R|0)?(V[Q8>>2]|0)==(C|0):0){o=65;break}Q8=O8(j|0,y|0,1,0)|0,j=M7(Q8|0,I()|0,W|0,K|0)|0,y=I()|0,L=O8(L|0,H|0,1,0)|0,H=I()|0,Q8=R8+(j<<3)|0}while(!((V[Q8>>2]|0)==(C|0)?(V[Q8+4>>2]|0)==(R|0):0));if((o|0)==65?(o=0,!0&(x&117440512|0)==100663296):0)break;Q8=X+(G<<3)|0,V[Q8>>2]=D,V[Q8+4>>2]=Z,G=O8(G|0,M|0,1,0)|0,M=I()|0}while(0);if(F=O8(F|0,z|0,1,0)|0,z=I()|0,!((z|0)<(K|0)|(z|0)==(K|0)&F>>>0<W>>>0))break;Z=B8+(F<<3)|0,D=V[Z>>2]|0,Z=V[Z+4>>2]|0}Z=E}else G=0,Z=E}else G=0,Y=0,Z=0;while(0);if(RY(R8|0,0,g8|0)|0,D7(B8|0,a|0,Y<<3|0)|0,S8(a),(Y|0)==0&(Z|0)==0){o=89;break}else X=X+(G<<3)|0,K=Z,W=Y}if((o|0)==16)if(!0&(Z&117440512|0)==0)Z=4,o=27;else o=21;else if((o|0)==31)I8(27795,27122,529,27132);else if((o|0)==41)return S8(B8),S8(R8),o=10,o|0;else if((o|0)==48)return S8(B8),S8(R8),o=13,o|0;else if((o|0)==80)I8(27795,27122,620,27132);else if((o|0)==81)I8(27795,27122,632,27132);else if((o|0)==85)D7(X|0,B8|0,W<<3|0)|0,o=89;if((o|0)==21)return S8(B8),S8(R8),o=5,o|0;else if((o|0)==27)return S8(B8),S8(R8),o=Z,o|0;else if((o|0)==89)return S8(B8),S8(R8),o=0,o|0;return 0}function z3(Y,X,W,K,Z,G,F){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0,G=G|0,F=F|0;var z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0,x=0;if(x=P,P=P+16|0,j=x,!((W|0)>0|(W|0)==0&X>>>0>0))return j=0,P=x,j|0;if((F|0)>=16)return j=12,P=x,j|0;H=0,L=0,R=0,z=0;Y:while(!0){if(D=Y+(H<<3)|0,M=V[D>>2]|0,D=V[D+4>>2]|0,C=n(M|0,D|0,52)|0,I()|0,(C&15|0)>(F|0)){z=12,M=11;break}if(CX(j,M,D,F),C=j,D=V[C>>2]|0,C=V[C+4>>2]|0,(D|0)==0&(C|0)==0)M=R;else{M=R;do{if(!((z|0)<(G|0)|(z|0)==(G|0)&M>>>0<Z>>>0)){M=10;break Y}R=K+(M<<3)|0,V[R>>2]=D,V[R+4>>2]=C,M=O8(M|0,z|0,1,0)|0,z=I()|0,OX(j),R=j,D=V[R>>2]|0,C=V[R+4>>2]|0}while(!((D|0)==0&(C|0)==0))}if(H=O8(H|0,L|0,1,0)|0,L=I()|0,!((L|0)<(W|0)|(L|0)==(W|0)&H>>>0<X>>>0)){z=0,M=11;break}else R=M}if((M|0)==10)return j=14,P=x,j|0;else if((M|0)==11)return P=x,z|0;return 0}function U3(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0;H=P,P=P+16|0,R=H;Y:do if((W|0)>0|(W|0)==0&X>>>0>0){D=0,F=0,G=0,C=0;while(!0){if(M=Y+(D<<3)|0,z=V[M>>2]|0,M=V[M+4>>2]|0,!((z|0)==0&(M|0)==0)){if(M=(l7(z,M,K,R)|0)==0,z=R,F=O8(V[z>>2]|0,V[z+4>>2]|0,F|0,G|0)|0,G=I()|0,!M){G=12;break}}if(D=O8(D|0,C|0,1,0)|0,C=I()|0,!((C|0)<(W|0)|(C|0)==(W|0)&D>>>0<X>>>0))break Y}return P=H,G|0}else F=0,G=0;while(0);return V[Z>>2]=F,V[Z+4>>2]=G,Z=0,P=H,Z|0}function q3(Y,X){return Y=Y|0,X=X|0,X=n(Y|0,X|0,52)|0,I()|0,X&1|0}function e6(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0;if(Z=n(Y|0,X|0,52)|0,I()|0,Z=Z&15,!Z)return Z=0,Z|0;K=1;while(!0){if(W=n(Y|0,X|0,(15-K|0)*3|0)|0,I()|0,W=W&7,W|0){K=5;break}if(K>>>0<Z>>>0)K=K+1|0;else{W=0,K=5;break}}if((K|0)==5)return W|0;return 0}function qX(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0,M=0;if(M=n(Y|0,X|0,52)|0,I()|0,M=M&15,!M)return z=X,M=Y,E8(z|0),M|0;z=1,W=0;while(!0){G=(15-z|0)*3|0,K=t(7,0,G|0)|0,Z=I()|0,F=n(Y|0,X|0,G|0)|0,I()|0,G=t(uY(F&7)|0,0,G|0)|0,F=I()|0,Y=G|Y&~K,X=F|X&~Z;Y:do if(!W)if(!((G&K|0)==0&(F&Z|0)==0))if(K=n(Y|0,X|0,52)|0,I()|0,K=K&15,!K)W=1;else{W=1;V:while(!0){switch(F=n(Y|0,X|0,(15-W|0)*3|0)|0,I()|0,F&7){case 1:break V;case 0:break;default:{W=1;break Y}}if(W>>>0<K>>>0)W=W+1|0;else{W=1;break Y}}W=1;while(!0)if(F=(15-W|0)*3|0,Z=n(Y|0,X|0,F|0)|0,I()|0,G=t(7,0,F|0)|0,X=X&~(I()|0),F=t(uY(Z&7)|0,0,F|0)|0,Y=Y&~G|F,X=X|(I()|0),W>>>0<K>>>0)W=W+1|0;else{W=1;break}}else W=0;while(0);if(z>>>0<M>>>0)z=z+1|0;else break}return E8(X|0),Y|0}function pY(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0;if(K=n(Y|0,X|0,52)|0,I()|0,K=K&15,!K)return W=X,K=Y,E8(W|0),K|0;W=1;while(!0)if(G=(15-W|0)*3|0,F=n(Y|0,X|0,G|0)|0,I()|0,Z=t(7,0,G|0)|0,X=X&~(I()|0),G=t(uY(F&7)|0,0,G|0)|0,Y=G|Y&~Z,X=I()|0|X,W>>>0<K>>>0)W=W+1|0;else break;return E8(X|0),Y|0}function M3(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0,M=0;if(M=n(Y|0,X|0,52)|0,I()|0,M=M&15,!M)return z=X,M=Y,E8(z|0),M|0;z=1,W=0;while(!0){G=(15-z|0)*3|0,K=t(7,0,G|0)|0,Z=I()|0,F=n(Y|0,X|0,G|0)|0,I()|0,G=t(OY(F&7)|0,0,G|0)|0,F=I()|0,Y=G|Y&~K,X=F|X&~Z;Y:do if(!W)if(!((G&K|0)==0&(F&Z|0)==0))if(K=n(Y|0,X|0,52)|0,I()|0,K=K&15,!K)W=1;else{W=1;V:while(!0){switch(F=n(Y|0,X|0,(15-W|0)*3|0)|0,I()|0,F&7){case 1:break V;case 0:break;default:{W=1;break Y}}if(W>>>0<K>>>0)W=W+1|0;else{W=1;break Y}}W=1;while(!0)if(Z=(15-W|0)*3|0,G=t(7,0,Z|0)|0,F=X&~(I()|0),X=n(Y|0,X|0,Z|0)|0,I()|0,X=t(OY(X&7)|0,0,Z|0)|0,Y=Y&~G|X,X=F|(I()|0),W>>>0<K>>>0)W=W+1|0;else{W=1;break}}else W=0;while(0);if(z>>>0<M>>>0)z=z+1|0;else break}return E8(X|0),Y|0}function MX(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0;if(K=n(Y|0,X|0,52)|0,I()|0,K=K&15,!K)return W=X,K=Y,E8(W|0),K|0;W=1;while(!0)if(F=(15-W|0)*3|0,G=t(7,0,F|0)|0,Z=X&~(I()|0),X=n(Y|0,X|0,F|0)|0,I()|0,X=t(OY(X&7)|0,0,F|0)|0,Y=X|Y&~G,X=I()|0|Z,W>>>0<K>>>0)W=W+1|0;else break;return E8(X|0),Y|0}function B3(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0,M=0,D=0,C=0;if(M=P,P=P+64|0,z=M+40|0,K=M+24|0,Z=M+12|0,G=M,t(X|0,0,52)|0,W=I()|0|134225919,!X){if((V[Y+4>>2]|0)>2)return F=0,z=0,E8(F|0),P=M,z|0;if((V[Y+8>>2]|0)>2)return F=0,z=0,E8(F|0),P=M,z|0;if((V[Y+12>>2]|0)>2)return F=0,z=0,E8(F|0),P=M,z|0;return t(EK(Y)|0,0,45)|0,F=I()|0|W,z=-1,E8(F|0),P=M,z|0}if(V[z>>2]=V[Y>>2],V[z+4>>2]=V[Y+4>>2],V[z+8>>2]=V[Y+8>>2],V[z+12>>2]=V[Y+12>>2],F=z+4|0,(X|0)>0){Y=-1;while(!0){if(V[K>>2]=V[F>>2],V[K+4>>2]=V[F+4>>2],V[K+8>>2]=V[F+8>>2],!(X&1))gK(F),V[Z>>2]=V[F>>2],V[Z+4>>2]=V[F+4>>2],V[Z+8>>2]=V[F+8>>2],bY(Z);else n1(F),V[Z>>2]=V[F>>2],V[Z+4>>2]=V[F+4>>2],V[Z+8>>2]=V[F+8>>2],f9(Z);if(JX(K,Z,G),b6(G),C=(15-X|0)*3|0,D=t(7,0,C|0)|0,W=W&~(I()|0),C=t(g9(G)|0,0,C|0)|0,Y=C|Y&~D,W=I()|0|W,(X|0)>1)X=X+-1|0;else break}}else Y=-1;Y:do if(((V[F>>2]|0)<=2?(V[z+8>>2]|0)<=2:0)?(V[z+12>>2]|0)<=2:0){if(K=EK(z)|0,X=t(K|0,0,45)|0,X=X|Y,Y=I()|0|W&-1040385,G=y1(z)|0,!(z6(K)|0)){if((G|0)<=0)break;Z=0;while(!0){if(K=n(X|0,Y|0,52)|0,I()|0,K=K&15,K){W=1;while(!0)if(C=(15-W|0)*3|0,z=n(X|0,Y|0,C|0)|0,I()|0,D=t(7,0,C|0)|0,Y=Y&~(I()|0),C=t(uY(z&7)|0,0,C|0)|0,X=X&~D|C,Y=Y|(I()|0),W>>>0<K>>>0)W=W+1|0;else break}if(Z=Z+1|0,(Z|0)==(G|0))break Y}}Z=n(X|0,Y|0,52)|0,I()|0,Z=Z&15;V:do if(Z){W=1;X:while(!0){switch(C=n(X|0,Y|0,(15-W|0)*3|0)|0,I()|0,C&7){case 1:break X;case 0:break;default:break V}if(W>>>0<Z>>>0)W=W+1|0;else break V}if(yK(K,V[z>>2]|0)|0){W=1;while(!0)if(z=(15-W|0)*3|0,D=t(7,0,z|0)|0,C=Y&~(I()|0),Y=n(X|0,Y|0,z|0)|0,I()|0,Y=t(OY(Y&7)|0,0,z|0)|0,X=X&~D|Y,Y=C|(I()|0),W>>>0<Z>>>0)W=W+1|0;else break}else{W=1;while(!0)if(C=(15-W|0)*3|0,z=n(X|0,Y|0,C|0)|0,I()|0,D=t(7,0,C|0)|0,Y=Y&~(I()|0),C=t(uY(z&7)|0,0,C|0)|0,X=X&~D|C,Y=Y|(I()|0),W>>>0<Z>>>0)W=W+1|0;else break}}while(0);if((G|0)>0){W=0;do X=qX(X,Y)|0,Y=I()|0,W=W+1|0;while((W|0)!=(G|0))}}else X=0,Y=0;while(0);return D=Y,C=X,E8(D|0),P=M,C|0}function N0(Y){return Y=Y|0,(Y|0)%2|0|0}function BX(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0;if(Z=P,P=P+16|0,K=Z,X>>>0>15)return K=4,P=Z,K|0;if((V[Y+4>>2]&2146435072|0)==2146435072)return K=3,P=Z,K|0;if((V[Y+8+4>>2]&2146435072|0)==2146435072)return K=3,P=Z,K|0;if(X3(Y,X,K),X=B3(K,X)|0,K=I()|0,V[W>>2]=X,V[W+4>>2]=K,(X|0)==0&(K|0)==0)I8(27795,27122,959,27145);return K=0,P=Z,K|0}function DX(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0;if(Z=W+4|0,G=n(Y|0,X|0,52)|0,I()|0,G=G&15,F=n(Y|0,X|0,45)|0,I()|0,K=(G|0)==0,!(z6(F&127)|0)){if(K)return F=0,F|0;if((V[Z>>2]|0)==0?(V[W+8>>2]|0)==0:0)K=(V[W+12>>2]|0)!=0&1;else K=1}else if(K)return F=1,F|0;else K=1;W=1;while(!0){if(!(W&1))bY(Z);else f9(Z);if(F=n(Y|0,X|0,(15-W|0)*3|0)|0,I()|0,fK(Z,F&7),W>>>0<G>>>0)W=W+1|0;else break}return K|0}function z7(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,M=0,D=0,C=0;if(C=P,P=P+16|0,M=C,D=n(Y|0,X|0,45)|0,I()|0,D=D&127,D>>>0>121)return V[W>>2]=0,V[W+4>>2]=0,V[W+8>>2]=0,V[W+12>>2]=0,D=5,P=C,D|0;Y:do if((z6(D)|0)!=0?(G=n(Y|0,X|0,52)|0,I()|0,G=G&15,(G|0)!=0):0){K=1;V:while(!0){switch(z=n(Y|0,X|0,(15-K|0)*3|0)|0,I()|0,z&7){case 5:break V;case 0:break;default:{K=X;break Y}}if(K>>>0<G>>>0)K=K+1|0;else{K=X;break Y}}Z=1,K=X;while(!0)if(X=(15-Z|0)*3|0,F=t(7,0,X|0)|0,z=K&~(I()|0),K=n(Y|0,K|0,X|0)|0,I()|0,K=t(OY(K&7)|0,0,X|0)|0,Y=Y&~F|K,K=z|(I()|0),Z>>>0<G>>>0)Z=Z+1|0;else break}else K=X;while(0);if(z=7696+(D*28|0)|0,V[W>>2]=V[z>>2],V[W+4>>2]=V[z+4>>2],V[W+8>>2]=V[z+8>>2],V[W+12>>2]=V[z+12>>2],!(DX(Y,K,W)|0))return D=0,P=C,D|0;if(F=W+4|0,V[M>>2]=V[F>>2],V[M+4>>2]=V[F+4>>2],V[M+8>>2]=V[F+8>>2],G=n(Y|0,K|0,52)|0,I()|0,z=G&15,!(G&1))G=z;else bY(F),G=z+1|0;if(!(z6(D)|0))K=0;else{Y:do if(!z)K=0;else{X=1;while(!0){if(Z=n(Y|0,K|0,(15-X|0)*3|0)|0,I()|0,Z=Z&7,Z|0){K=Z;break Y}if(X>>>0<z>>>0)X=X+1|0;else{K=0;break}}}while(0);K=(K|0)==4&1}if(!(F7(W,G,K,0)|0)){if((G|0)!=(z|0))V[F>>2]=V[M>>2],V[F+4>>2]=V[M+4>>2],V[F+8>>2]=V[M+8>>2]}else{if(z6(D)|0)do;while((F7(W,G,0,0)|0)!=0);if((G|0)!=(z|0))gK(F)}return D=0,P=C,D|0}function cY(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0;if(G=P,P=P+16|0,K=G,Z=z7(Y,X,K)|0,Z|0)return P=G,Z|0;return Z=n(Y|0,X|0,52)|0,I()|0,J3(K,Z&15,W),Z=0,P=G,Z|0}function U7(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0;if(F=P,P=P+16|0,G=F,K=z7(Y,X,G)|0,K|0)return G=K,P=F,G|0;K=n(Y|0,X|0,45)|0,I()|0,K=(z6(K&127)|0)==0,Z=n(Y|0,X|0,52)|0,I()|0,Z=Z&15;Y:do if(!K){if(Z|0){K=1;while(!0){if(z=t(7,0,(15-K|0)*3|0)|0,!((z&Y|0)==0&((I()|0)&X|0)==0))break Y;if(K>>>0<Z>>>0)K=K+1|0;else break}}return QX(G,Z,0,5,W),z=0,P=F,z|0}while(0);return GX(G,Z,0,6,W),z=0,P=F,z|0}function D3(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0;if(Z=n(Y|0,X|0,45)|0,I()|0,!(z6(Z&127)|0))return Z=2,V[W>>2]=Z,0;if(Z=n(Y|0,X|0,52)|0,I()|0,Z=Z&15,!Z)return Z=5,V[W>>2]=Z,0;K=1;while(!0){if(G=t(7,0,(15-K|0)*3|0)|0,!((G&Y|0)==0&((I()|0)&X|0)==0)){K=2,Y=6;break}if(K>>>0<Z>>>0)K=K+1|0;else{K=5,Y=6;break}}if((Y|0)==6)return V[W>>2]=K,0;return 0}function lK(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,M=0,D=0,C=0,R=0;R=P,P=P+128|0,D=R+112|0,G=R+96|0,C=R,Z=n(Y|0,X|0,52)|0,I()|0,z=Z&15,V[D>>2]=z,F=n(Y|0,X|0,45)|0,I()|0,F=F&127;Y:do if(z6(F)|0){if(z|0){K=1;while(!0){if(M=t(7,0,(15-K|0)*3|0)|0,!((M&Y|0)==0&((I()|0)&X|0)==0)){Z=0;break Y}if(K>>>0<z>>>0)K=K+1|0;else break}}if(!(Z&1))return M=t(z+1|0,0,52)|0,C=I()|0|X&-15728641,D=t(7,0,(14-z|0)*3|0)|0,C=lK((M|Y)&~D,C&~(I()|0),W)|0,P=R,C|0;else Z=1}else Z=0;while(0);if(K=z7(Y,X,G)|0,!K){if(Z)cK(G,D,C),M=5;else sK(G,D,C),M=6;Y:do if(z6(F)|0)if(!z)Y=5;else{K=1;while(!0){if(F=t(7,0,(15-K|0)*3|0)|0,!((F&Y|0)==0&((I()|0)&X|0)==0)){Y=2;break Y}if(K>>>0<z>>>0)K=K+1|0;else{Y=5;break}}}else Y=2;while(0);RY(W|0,-1,Y<<2|0)|0;Y:do if(Z){G=0;while(!0){if(F=C+(G<<4)|0,Z3(F,V[D>>2]|0)|0,F=V[F>>2]|0,z=V[W>>2]|0,(z|0)==-1|(z|0)==(F|0))K=W;else{Z=0;do{if(Z=Z+1|0,Z>>>0>=Y>>>0){K=1;break Y}K=W+(Z<<2)|0,z=V[K>>2]|0}while(!((z|0)==-1|(z|0)==(F|0)))}if(V[K>>2]=F,G=G+1|0,G>>>0>=M>>>0){K=0;break}}}else{G=0;while(!0){if(F=C+(G<<4)|0,F7(F,V[D>>2]|0,0,1)|0,F=V[F>>2]|0,z=V[W>>2]|0,(z|0)==-1|(z|0)==(F|0))K=W;else{Z=0;do{if(Z=Z+1|0,Z>>>0>=Y>>>0){K=1;break Y}K=W+(Z<<2)|0,z=V[K>>2]|0}while(!((z|0)==-1|(z|0)==(F|0)))}if(V[K>>2]=F,G=G+1|0,G>>>0>=M>>>0){K=0;break}}}while(0)}return C=K,P=R,C|0}function N3(){return 12}function NX(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0,M=0;if(Y>>>0>15)return z=4,z|0;if(t(Y|0,0,52)|0,z=I()|0|134225919,!Y){W=0,K=0;do{if(z6(K)|0)t(K|0,0,45)|0,F=z|(I()|0),Y=X+(W<<3)|0,V[Y>>2]=-1,V[Y+4>>2]=F,W=W+1|0;K=K+1|0}while((K|0)!=122);return W=0,W|0}W=0,F=0;do{if(z6(F)|0){t(F|0,0,45)|0,K=1,Z=-1,G=z|(I()|0);while(!0)if(M=t(7,0,(15-K|0)*3|0)|0,Z=Z&~M,G=G&~(I()|0),(K|0)==(Y|0))break;else K=K+1|0;M=X+(W<<3)|0,V[M>>2]=Z,V[M+4>>2]=G,W=W+1|0}F=F+1|0}while((F|0)!=122);return W=0,W|0}function C3(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0,x=0,y=0,$=0,_=0;if(_=P,P=P+16|0,y=_,$=n(Y|0,X|0,52)|0,I()|0,$=$&15,W>>>0>15)return $=4,P=_,$|0;if(($|0)<(W|0))return $=12,P=_,$|0;if(($|0)!=(W|0))if(G=t(W|0,0,52)|0,G=G|Y,z=I()|0|X&-15728641,($|0)>(W|0)){M=W;do x=t(7,0,(14-M|0)*3|0)|0,M=M+1|0,G=x|G,z=I()|0|z;while((M|0)<($|0));x=G}else x=G;else x=Y,z=X;j=n(x|0,z|0,45)|0,I()|0;Y:do if(z6(j&127)|0){if(M=n(x|0,z|0,52)|0,I()|0,M=M&15,M|0){G=1;while(!0){if(j=t(7,0,(15-G|0)*3|0)|0,!((j&x|0)==0&((I()|0)&z|0)==0)){D=33;break Y}if(G>>>0<M>>>0)G=G+1|0;else break}}if(j=K,V[j>>2]=0,V[j+4>>2]=0,($|0)>(W|0)){j=X&-15728641,L=$;while(!0){if(H=L,L=L+-1|0,L>>>0>15|($|0)<(L|0)){D=19;break}if(($|0)!=(L|0))if(G=t(L|0,0,52)|0,G=G|Y,M=I()|0|j,($|0)<(H|0))R=G;else{D=L;do R=t(7,0,(14-D|0)*3|0)|0,D=D+1|0,G=R|G,M=I()|0|M;while((D|0)<($|0));R=G}else R=Y,M=X;if(C=n(R|0,M|0,45)|0,I()|0,!(z6(C&127)|0))G=0;else{C=n(R|0,M|0,52)|0,I()|0,C=C&15;V:do if(!C)G=0;else{D=1;while(!0){if(G=n(R|0,M|0,(15-D|0)*3|0)|0,I()|0,G=G&7,G|0)break V;if(D>>>0<C>>>0)D=D+1|0;else{G=0;break}}}while(0);G=(G|0)==0&1}if(M=n(Y|0,X|0,(15-H|0)*3|0)|0,I()|0,M=M&7,(M|0)==7){Z=5,D=42;break}if(G=(G|0)!=0,(M|0)==1&G){Z=5,D=42;break}if(R=M+(((M|0)!=0&G)<<31>>31)|0,R|0){if(D=$-H|0,D=SY(7,0,D,((D|0)<0)<<31>>31)|0,C=I()|0,G)G=x6(D|0,C|0,5,0)|0,G=O8(G|0,I()|0,-5,-1)|0,G=AY(G|0,I()|0,6,0)|0,G=O8(G|0,I()|0,1,0)|0,M=I()|0;else G=D,M=C;H=R+-1|0,H=x6(D|0,C|0,H|0,((H|0)<0)<<31>>31|0)|0,H=O8(G|0,M|0,H|0,I()|0)|0,R=I()|0,C=K,C=O8(H|0,R|0,V[C>>2]|0,V[C+4>>2]|0)|0,R=I()|0,H=K,V[H>>2]=C,V[H+4>>2]=R}if((L|0)<=(W|0)){D=37;break}}if((D|0)==19)I8(27795,27122,1276,27158);else if((D|0)==37){F=K,Z=V[F+4>>2]|0,F=V[F>>2]|0;break}else if((D|0)==42)return P=_,Z|0}else Z=0,F=0}else D=33;while(0);Y:do if((D|0)==33)if(j=K,V[j>>2]=0,V[j+4>>2]=0,($|0)>(W|0)){G=$;while(!0){if(Z=n(Y|0,X|0,(15-G|0)*3|0)|0,I()|0,Z=Z&7,(Z|0)==7){Z=5;break}if(F=$-G|0,F=SY(7,0,F,((F|0)<0)<<31>>31)|0,Z=x6(F|0,I()|0,Z|0,0)|0,F=I()|0,j=K,F=O8(V[j>>2]|0,V[j+4>>2]|0,Z|0,F|0)|0,Z=I()|0,j=K,V[j>>2]=F,V[j+4>>2]=Z,G=G+-1|0,(G|0)<=(W|0))break Y}return P=_,Z|0}else Z=0,F=0;while(0);if(l7(x,z,$,y)|0)I8(27795,27122,1236,27173);if($=y,y=V[$+4>>2]|0,((Z|0)>-1|(Z|0)==-1&F>>>0>4294967295)&((y|0)>(Z|0)|((y|0)==(Z|0)?(V[$>>2]|0)>>>0>F>>>0:0)))return $=0,P=_,$|0;else I8(27795,27122,1316,27158);return 0}function O3(Y,X,W,K,Z,G){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0,G=G|0;var F=0,z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0,x=0;if(R=P,P=P+16|0,F=R,Z>>>0>15)return G=4,P=R,G|0;if(z=n(W|0,K|0,52)|0,I()|0,z=z&15,(z|0)>(Z|0))return G=12,P=R,G|0;if(l7(W,K,Z,F)|0)I8(27795,27122,1236,27173);if(C=F,D=V[C+4>>2]|0,!(((X|0)>-1|(X|0)==-1&Y>>>0>4294967295)&((D|0)>(X|0)|((D|0)==(X|0)?(V[C>>2]|0)>>>0>Y>>>0:0))))return G=2,P=R,G|0;C=Z-z|0,Z=t(Z|0,0,52)|0,M=I()|0|K&-15728641,D=G,V[D>>2]=Z|W,V[D+4>>2]=M,D=n(W|0,K|0,45)|0,I()|0;Y:do if(z6(D&127)|0){if(z|0){F=1;while(!0){if(D=t(7,0,(15-F|0)*3|0)|0,!((D&W|0)==0&((I()|0)&K|0)==0))break Y;if(F>>>0<z>>>0)F=F+1|0;else break}}if((C|0)<1)return G=0,P=R,G|0;D=z^15,K=-1,M=1,F=1;while(!0){z=C-M|0,z=SY(7,0,z,((z|0)<0)<<31>>31)|0,W=I()|0;do if(F)if(F=x6(z|0,W|0,5,0)|0,F=O8(F|0,I()|0,-5,-1)|0,F=AY(F|0,I()|0,6,0)|0,Z=I()|0,(X|0)>(Z|0)|(X|0)==(Z|0)&Y>>>0>F>>>0){X=O8(Y|0,X|0,-1,-1)|0,X=h6(X|0,I()|0,F|0,Z|0)|0,F=I()|0,H=G,j=V[H>>2]|0,H=V[H+4>>2]|0,x=(D+K|0)*3|0,L=t(7,0,x|0)|0,H=H&~(I()|0),K=AY(X|0,F|0,z|0,W|0)|0,Y=I()|0,Z=O8(K|0,Y|0,2,0)|0,x=t(Z|0,I()|0,x|0)|0,H=I()|0|H,Z=G,V[Z>>2]=x|j&~L,V[Z+4>>2]=H,Y=x6(K|0,Y|0,z|0,W|0)|0,Y=h6(X|0,F|0,Y|0,I()|0)|0,F=0,X=I()|0;break}else{x=G,L=V[x>>2]|0,x=V[x+4>>2]|0,j=t(7,0,(D+K|0)*3|0)|0,x=x&~(I()|0),F=G,V[F>>2]=L&~j,V[F+4>>2]=x,F=1;break}else L=G,Z=V[L>>2]|0,L=V[L+4>>2]|0,K=(D+K|0)*3|0,H=t(7,0,K|0)|0,L=L&~(I()|0),x=AY(Y|0,X|0,z|0,W|0)|0,F=I()|0,K=t(x|0,F|0,K|0)|0,L=I()|0|L,j=G,V[j>>2]=K|Z&~H,V[j+4>>2]=L,F=x6(x|0,F|0,z|0,W|0)|0,Y=h6(Y|0,X|0,F|0,I()|0)|0,F=0,X=I()|0;while(0);if((C|0)>(M|0))K=~M,M=M+1|0;else{X=0;break}}return P=R,X|0}while(0);if((C|0)<1)return x=0,P=R,x|0;Z=z^15,F=1;while(!0)if(j=C-F|0,j=SY(7,0,j,((j|0)<0)<<31>>31)|0,x=I()|0,M=G,W=V[M>>2]|0,M=V[M+4>>2]|0,z=(Z-F|0)*3|0,K=t(7,0,z|0)|0,M=M&~(I()|0),H=AY(Y|0,X|0,j|0,x|0)|0,L=I()|0,z=t(H|0,L|0,z|0)|0,M=I()|0|M,D=G,V[D>>2]=z|W&~K,V[D+4>>2]=M,x=x6(H|0,L|0,j|0,x|0)|0,Y=h6(Y|0,X|0,x|0,I()|0)|0,X=I()|0,(C|0)<=(F|0)){X=0;break}else F=F+1|0;return P=R,X|0}function CX(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0;if(Z=n(X|0,W|0,52)|0,I()|0,Z=Z&15,(X|0)==0&(W|0)==0|((K|0)>15|(Z|0)>(K|0)))G=-1,X=-1,W=0,Z=0;else X=rK(X,W,Z+1|0,K)|0,F=(I()|0)&-15728641,W=t(K|0,0,52)|0,W=X|W,F=F|(I()|0),X=(Z6(W,F)|0)==0,G=Z,X=X?-1:K,Z=F;F=Y,V[F>>2]=W,V[F+4>>2]=Z,V[Y+8>>2]=G,V[Y+12>>2]=X;return}function iK(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0;if(Z=n(Y|0,X|0,52)|0,I()|0,Z=Z&15,G=K+8|0,V[G>>2]=Z,(Y|0)==0&(X|0)==0|((W|0)>15|(Z|0)>(W|0))){W=K,V[W>>2]=0,V[W+4>>2]=0,V[G>>2]=-1,V[K+12>>2]=-1;return}if(Y=rK(Y,X,Z+1|0,W)|0,G=(I()|0)&-15728641,Z=t(W|0,0,52)|0,Z=Y|Z,G=G|(I()|0),Y=K,V[Y>>2]=Z,V[Y+4>>2]=G,Y=K+12|0,!(Z6(Z,G)|0)){V[Y>>2]=-1;return}else{V[Y>>2]=W;return}}function OX(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0,M=0,D=0;if(W=Y,X=V[W>>2]|0,W=V[W+4>>2]|0,(X|0)==0&(W|0)==0)return;if(K=n(X|0,W|0,52)|0,I()|0,K=K&15,z=t(1,0,(K^15)*3|0)|0,X=O8(z|0,I()|0,X|0,W|0)|0,W=I()|0,z=Y,V[z>>2]=X,V[z+4>>2]=W,z=Y+8|0,F=V[z>>2]|0,(K|0)<(F|0))return;M=Y+12|0,G=K;while(!0){if((G|0)==(F|0)){K=5;break}if(D=(G|0)==(V[M>>2]|0),Z=(15-G|0)*3|0,K=n(X|0,W|0,Z|0)|0,I()|0,K=K&7,D&((K|0)==1&!0)){K=7;break}if(!((K|0)==7&!0)){K=10;break}if(D=t(1,0,Z|0)|0,X=O8(X|0,W|0,D|0,I()|0)|0,W=I()|0,D=Y,V[D>>2]=X,V[D+4>>2]=W,(G|0)>(F|0))G=G+-1|0;else{K=10;break}}if((K|0)==5){D=Y,V[D>>2]=0,V[D+4>>2]=0,V[z>>2]=-1,V[M>>2]=-1;return}else if((K|0)==7){F=t(1,0,Z|0)|0,F=O8(X|0,W|0,F|0,I()|0)|0,z=I()|0,D=Y,V[D>>2]=F,V[D+4>>2]=z,V[M>>2]=G+-1;return}else if((K|0)==10)return}function i7(Y){Y=+Y;var X=0;return X=Y<0?Y+6.283185307179586:Y,+(!(Y>=6.283185307179586)?X:X+-6.283185307179586)}function q7(Y,X){if(Y=Y|0,X=X|0,!(+p8(+(+O[Y>>3]-+O[X>>3]))<0.000000000017453292519943298))return X=0,X|0;return X=+p8(+(+O[Y+8>>3]-+O[X+8>>3]))<0.000000000017453292519943298,X|0}function Q0(Y,X){switch(Y=+Y,X=X|0,X|0){case 1:{Y=Y<0?Y+6.283185307179586:Y;break}case 2:{Y=Y>0?Y+-6.283185307179586:Y;break}default:}return+Y}function S3(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0;return Z=+O[X>>3],K=+O[Y>>3],G=+c8(+((Z-K)*0.5)),W=+c8(+((+O[X+8>>3]-+O[Y+8>>3])*0.5)),W=G*G+W*(+m8(+Z)*+m8(+K)*W),+(+D0(+ +q6(+W),+ +q6(+(1-W)))*2)}function o7(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0;return Z=+O[X>>3],K=+O[Y>>3],G=+c8(+((Z-K)*0.5)),W=+c8(+((+O[X+8>>3]-+O[Y+8>>3])*0.5)),W=G*G+W*(+m8(+Z)*+m8(+K)*W),+(+D0(+ +q6(+W),+ +q6(+(1-W)))*2*6371.007180918475)}function P3(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0;return Z=+O[X>>3],K=+O[Y>>3],G=+c8(+((Z-K)*0.5)),W=+c8(+((+O[X+8>>3]-+O[Y+8>>3])*0.5)),W=G*G+W*(+m8(+Z)*+m8(+K)*W),+(+D0(+ +q6(+W),+ +q6(+(1-W)))*2*6371.007180918475*1000)}function A3(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0;return G=+O[X>>3],K=+m8(+G),Z=+O[X+8>>3]-+O[Y+8>>3],F=K*+c8(+Z),W=+O[Y>>3],+ +D0(+F,+(+c8(+G)*+m8(+W)-+m8(+Z)*(K*+c8(+W))))}function R3(Y,X,W,K){Y=Y|0,X=+X,W=+W,K=K|0;var Z=0,G=0,F=0,z=0;if(W<0.0000000000000001){V[K>>2]=V[Y>>2],V[K+4>>2]=V[Y+4>>2],V[K+8>>2]=V[Y+8>>2],V[K+12>>2]=V[Y+12>>2];return}G=X<0?X+6.283185307179586:X,G=!(X>=6.283185307179586)?G:G+-6.283185307179586;do if(G<0.0000000000000001)X=+O[Y>>3]+W,O[K>>3]=X,Z=K;else{if(Z=+p8(+(G+-3.141592653589793))<0.0000000000000001,X=+O[Y>>3],Z){X=X-W,O[K>>3]=X,Z=K;break}if(F=+m8(+W),W=+c8(+W),X=F*+c8(+X)+ +m8(+G)*(W*+m8(+X)),X=X>1?1:X,X=+M1(+(X<-1?-1:X)),O[K>>3]=X,+p8(+(X+-1.5707963267948966))<0.0000000000000001){O[K>>3]=1.5707963267948966,O[K+8>>3]=0;return}if(+p8(+(X+1.5707963267948966))<0.0000000000000001){O[K>>3]=-1.5707963267948966,O[K+8>>3]=0;return}if(z=1/+m8(+X),G=W*+c8(+G)*z,W=+O[Y>>3],X=z*((F-+c8(+X)*+c8(+W))/+m8(+W)),F=G>1?1:G,X=X>1?1:X,X=+O[Y+8>>3]+ +D0(+(F<-1?-1:F),+(X<-1?-1:X)),X>3.141592653589793)do X=X+-6.283185307179586;while(X>3.141592653589793);if(X<-3.141592653589793)do X=X+6.283185307179586;while(X<-3.141592653589793);O[K+8>>3]=X;return}while(0);if(+p8(+(X+-1.5707963267948966))<0.0000000000000001){O[Z>>3]=1.5707963267948966,O[K+8>>3]=0;return}if(+p8(+(X+1.5707963267948966))<0.0000000000000001){O[Z>>3]=-1.5707963267948966,O[K+8>>3]=0;return}if(X=+O[Y+8>>3],X>3.141592653589793)do X=X+-6.283185307179586;while(X>3.141592653589793);if(X<-3.141592653589793)do X=X+6.283185307179586;while(X<-3.141592653589793);O[K+8>>3]=X;return}function oK(Y,X){if(Y=Y|0,X=X|0,Y>>>0>15)return X=4,X|0;return O[X>>3]=+O[20656+(Y<<3)>>3],X=0,X|0}function I3(Y,X){if(Y=Y|0,X=X|0,Y>>>0>15)return X=4,X|0;return O[X>>3]=+O[20784+(Y<<3)>>3],X=0,X|0}function w3(Y,X){if(Y=Y|0,X=X|0,Y>>>0>15)return X=4,X|0;return O[X>>3]=+O[20912+(Y<<3)>>3],X=0,X|0}function H3(Y,X){if(Y=Y|0,X=X|0,Y>>>0>15)return X=4,X|0;return O[X>>3]=+O[21040+(Y<<3)>>3],X=0,X|0}function u9(Y,X){Y=Y|0,X=X|0;var W=0;if(Y>>>0>15)return X=4,X|0;return W=SY(7,0,Y,((Y|0)<0)<<31>>31)|0,W=x6(W|0,I()|0,120,0)|0,Y=I()|0,V[X>>2]=W|2,V[X+4>>2]=Y,X=0,X|0}function aK(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0;return H=+O[X>>3],C=+O[Y>>3],M=+c8(+((H-C)*0.5)),G=+O[X+8>>3],D=+O[Y+8>>3],F=+c8(+((G-D)*0.5)),z=+m8(+C),R=+m8(+H),F=M*M+F*(R*z*F),F=+D0(+ +q6(+F),+ +q6(+(1-F)))*2,M=+O[W>>3],H=+c8(+((M-H)*0.5)),K=+O[W+8>>3],G=+c8(+((K-G)*0.5)),Z=+m8(+M),G=H*H+G*(R*Z*G),G=+D0(+ +q6(+G),+ +q6(+(1-G)))*2,M=+c8(+((C-M)*0.5)),K=+c8(+((D-K)*0.5)),K=M*M+K*(z*Z*K),K=+D0(+ +q6(+K),+ +q6(+(1-K)))*2,Z=(F+G+K)*0.5,+(+aV(+ +q6(+(+r7(+(Z*0.5))*+r7(+((Z-F)*0.5))*+r7(+((Z-G)*0.5))*+r7(+((Z-K)*0.5)))))*4)}function SX(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0;if(z=P,P=P+192|0,G=z+168|0,F=z,Z=cY(Y,X,G)|0,Z|0)return W=Z,P=z,W|0;if(U7(Y,X,F)|0)I8(27795,27190,415,27199);if(X=V[F>>2]|0,(X|0)>0){if(K=+aK(F+8|0,F+8+(((X|0)!=1&1)<<4)|0,G)+0,(X|0)!=1){Y=1;do Z=Y,Y=Y+1|0,K=K+ +aK(F+8+(Z<<4)|0,F+8+(((Y|0)%(X|0)|0)<<4)|0,G);while((Y|0)<(X|0))}}else K=0;return O[W>>3]=K,W=0,P=z,W|0}function L3(Y,X,W){if(Y=Y|0,X=X|0,W=W|0,Y=SX(Y,X,W)|0,Y|0)return Y|0;return O[W>>3]=+O[W>>3]*6371.007180918475*6371.007180918475,Y|0}function j3(Y,X,W){if(Y=Y|0,X=X|0,W=W|0,Y=SX(Y,X,W)|0,Y|0)return Y|0;return O[W>>3]=+O[W>>3]*6371.007180918475*6371.007180918475*1000*1000,Y|0}function T3(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,M=0,D=0,C=0;if(z=P,P=P+176|0,F=z,Y=b9(Y,X,F)|0,Y|0)return F=Y,P=z,F|0;if(O[W>>3]=0,Y=V[F>>2]|0,(Y|0)<=1)return F=0,P=z,F|0;X=Y+-1|0,Y=0,K=+O[F+8>>3],Z=+O[F+16>>3],G=0;do Y=Y+1|0,D=K,K=+O[F+8+(Y<<4)>>3],C=+c8(+((K-D)*0.5)),M=Z,Z=+O[F+8+(Y<<4)+8>>3],M=+c8(+((Z-M)*0.5)),M=C*C+M*(+m8(+K)*+m8(+D)*M),G=G+ +D0(+ +q6(+M),+ +q6(+(1-M)))*2;while((Y|0)<(X|0));return O[W>>3]=G,F=0,P=z,F|0}function x3(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,M=0,D=0,C=0;if(z=P,P=P+176|0,F=z,Y=b9(Y,X,F)|0,Y|0)return F=Y,G=+O[W>>3],G=G*6371.007180918475,O[W>>3]=G,P=z,F|0;if(O[W>>3]=0,Y=V[F>>2]|0,(Y|0)<=1)return F=0,G=0,G=G*6371.007180918475,O[W>>3]=G,P=z,F|0;X=Y+-1|0,Y=0,K=+O[F+8>>3],Z=+O[F+16>>3],G=0;do Y=Y+1|0,D=K,K=+O[F+8+(Y<<4)>>3],C=+c8(+((K-D)*0.5)),M=Z,Z=+O[F+8+(Y<<4)+8>>3],M=+c8(+((Z-M)*0.5)),M=C*C+M*(+m8(+D)*+m8(+K)*M),G=G+ +D0(+ +q6(+M),+ +q6(+(1-M)))*2;while((Y|0)!=(X|0));return O[W>>3]=G,F=0,C=G,C=C*6371.007180918475,O[W>>3]=C,P=z,F|0}function E3(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,M=0,D=0,C=0;if(z=P,P=P+176|0,F=z,Y=b9(Y,X,F)|0,Y|0)return F=Y,G=+O[W>>3],G=G*6371.007180918475,G=G*1000,O[W>>3]=G,P=z,F|0;if(O[W>>3]=0,Y=V[F>>2]|0,(Y|0)<=1)return F=0,G=0,G=G*6371.007180918475,G=G*1000,O[W>>3]=G,P=z,F|0;X=Y+-1|0,Y=0,K=+O[F+8>>3],Z=+O[F+16>>3],G=0;do Y=Y+1|0,D=K,K=+O[F+8+(Y<<4)>>3],C=+c8(+((K-D)*0.5)),M=Z,Z=+O[F+8+(Y<<4)+8>>3],M=+c8(+((Z-M)*0.5)),M=C*C+M*(+m8(+D)*+m8(+K)*M),G=G+ +D0(+ +q6(+M),+ +q6(+(1-M)))*2;while((Y|0)!=(X|0));return O[W>>3]=G,F=0,C=G,C=C*6371.007180918475,C=C*1000,O[W>>3]=C,P=z,F|0}function y3(Y){Y=Y|0;var X=0,W=0,K=0;if(X=Y0(1,12)|0,!X)I8(27280,27235,49,27293);if(W=Y+4|0,K=V[W>>2]|0,K|0)return K=K+8|0,V[K>>2]=X,V[W>>2]=X,X|0;if(V[Y>>2]|0)I8(27310,27235,61,27333);return K=Y,V[K>>2]=X,V[W>>2]=X,X|0}function k3(Y,X){Y=Y|0,X=X|0;var W=0,K=0;if(K=h0(24)|0,!K)I8(27347,27235,78,27361);if(V[K>>2]=V[X>>2],V[K+4>>2]=V[X+4>>2],V[K+8>>2]=V[X+8>>2],V[K+12>>2]=V[X+12>>2],V[K+16>>2]=0,X=Y+4|0,W=V[X>>2]|0,W|0)return V[W+16>>2]=K,V[X>>2]=K,K|0;if(V[Y>>2]|0)I8(27376,27235,82,27361);return V[Y>>2]=K,V[X>>2]=K,K|0}function tK(Y){Y=Y|0;var X=0,W=0,K=0,Z=0;if(!Y)return;K=1;while(!0){if(X=V[Y>>2]|0,X|0)do{if(W=V[X>>2]|0,W|0)do Z=W,W=V[W+16>>2]|0,S8(Z);while((W|0)!=0);Z=X,X=V[X+8>>2]|0,S8(Z)}while((X|0)!=0);if(X=Y,Y=V[Y+8>>2]|0,!K)S8(X);if(!Y)break;else K=0}return}function v3(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0,x=0,y=0,$=0,_=0,k=0,E=0,a=0,M8=0,Q8=0,x8=0,y8=0,g8=0,R8=0,B8=0,o=0,_8=0,t8=0,k8=0;if(Z=Y+8|0,V[Z>>2]|0)return k8=1,k8|0;if(K=V[Y>>2]|0,!K)return k8=0,k8|0;X=K,W=0;do W=W+1|0,X=V[X+8>>2]|0;while((X|0)!=0);if(W>>>0<2)return k8=0,k8|0;if(_8=h0(W<<2)|0,!_8)I8(27396,27235,317,27415);if(o=h0(W<<5)|0,!o)I8(27437,27235,321,27415);V[Y>>2]=0,M8=Y+4|0,V[M8>>2]=0,V[Z>>2]=0,W=0,B8=0,a=0,R=0;Y:while(!0){if(C=V[K>>2]|0,C){G=0,F=C;do{if(M=+O[F+8>>3],X=F,F=V[F+16>>2]|0,D=(F|0)==0,Z=D?C:F,z=+O[Z+8>>3],+p8(+(M-z))>3.141592653589793){k8=14;break}G=G+(z-M)*(+O[X>>3]+ +O[Z>>3])}while(!D);if((k8|0)==14){k8=0,G=0,X=C;do E=+O[X+8>>3],R8=X+16|0,g8=V[R8>>2]|0,g8=(g8|0)==0?C:g8,k=+O[g8+8>>3],G=G+(+O[X>>3]+ +O[g8>>3])*((k<0?k+6.283185307179586:k)-(E<0?E+6.283185307179586:E)),X=V[((X|0)==0?K:R8)>>2]|0;while((X|0)!=0)}if(G>0)V[_8+(B8<<2)>>2]=K,B8=B8+1|0,Z=a,X=R;else k8=19}else k8=19;if((k8|0)==19){k8=0;do if(!W)if(!R)if(!(V[Y>>2]|0)){Z=M8,F=Y,X=K,W=Y;break}else{k8=27;break Y}else{Z=M8,F=R+8|0,X=K,W=Y;break}else{if(X=W+8|0,V[X>>2]|0){k8=21;break Y}if(W=Y0(1,12)|0,!W){k8=23;break Y}V[X>>2]=W,Z=W+4|0,F=W,X=R}while(0);if(V[F>>2]=K,V[Z>>2]=K,F=o+(a<<5)|0,D=V[K>>2]|0,D){C=o+(a<<5)+8|0,O[C>>3]=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,R=o+(a<<5)+24|0,O[R>>3]=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,O[F>>3]=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,H=o+(a<<5)+16|0,O[H>>3]=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,$=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,_=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,Z=0,L=D,M=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,x=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,y=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,z=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000;while(!0){if(G=+O[L>>3],E=+O[L+8>>3],L=V[L+16>>2]|0,j=(L|0)==0,k=+O[(j?D:L)+8>>3],G<M)O[C>>3]=G,M=G;if(E<x)O[R>>3]=E,x=E;if(G>y)O[F>>3]=G;else G=y;if(E>z)O[H>>3]=E,z=E;if($=E>0&E<$?E:$,_=E<0&E>_?E:_,Z=Z|+p8(+(E-k))>3.141592653589793,j)break;else y=G}if(Z)O[H>>3]=_,O[R>>3]=$}else V[F>>2]=0,V[F+4>>2]=0,V[F+8>>2]=0,V[F+12>>2]=0,V[F+16>>2]=0,V[F+20>>2]=0,V[F+24>>2]=0,V[F+28>>2]=0;Z=a+1|0}if(R8=K+8|0,K=V[R8>>2]|0,V[R8>>2]=0,!K){k8=45;break}else a=Z,R=X}if((k8|0)==21)I8(27213,27235,35,27247);else if((k8|0)==23)I8(27267,27235,37,27247);else if((k8|0)==27)I8(27310,27235,61,27333);else if((k8|0)==45){Y:do if((B8|0)>0){R8=(Z|0)==0,y8=Z<<2,g8=(Y|0)==0,x8=0,X=0;while(!0){if(Q8=V[_8+(x8<<2)>>2]|0,!R8){if(a=h0(y8)|0,!a){k8=50;break}if(M8=h0(y8)|0,!M8){k8=52;break}V:do if(!g8){Z=0,W=0,F=Y;while(!0){if(K=o+(Z<<5)|0,eK(V[F>>2]|0,K,V[Q8>>2]|0)|0)V[a+(W<<2)>>2]=F,V[M8+(W<<2)>>2]=K,j=W+1|0;else j=W;if(F=V[F+8>>2]|0,!F)break;else Z=Z+1|0,W=j}if((j|0)>0)if(K=V[a>>2]|0,(j|0)==1)W=K;else{H=0,L=-1,W=K,R=K;while(!0){D=V[R>>2]|0,K=0,F=0;while(!0){if(Z=V[V[a+(F<<2)>>2]>>2]|0,(Z|0)==(D|0))C=K;else C=K+((eK(Z,V[M8+(F<<2)>>2]|0,V[D>>2]|0)|0)&1)|0;if(F=F+1|0,(F|0)==(j|0))break;else K=C}if(Z=(C|0)>(L|0),W=Z?R:W,K=H+1|0,(K|0)==(j|0))break V;H=K,L=Z?C:L,R=V[a+(K<<2)>>2]|0}}else W=0}else W=0;while(0);if(S8(a),S8(M8),W){if(Z=W+4|0,K=V[Z>>2]|0,!K){if(V[W>>2]|0){k8=70;break}}else W=K+8|0;V[W>>2]=Q8,V[Z>>2]=Q8}else k8=73}else k8=73;if((k8|0)==73){if(k8=0,X=V[Q8>>2]|0,X|0)do M8=X,X=V[X+16>>2]|0,S8(M8);while((X|0)!=0);S8(Q8),X=1}if(x8=x8+1|0,(x8|0)>=(B8|0)){t8=X;break Y}}if((k8|0)==50)I8(27452,27235,249,27471);else if((k8|0)==52)I8(27490,27235,252,27471);else if((k8|0)==70)I8(27310,27235,61,27333)}else t8=0;while(0);return S8(_8),S8(o),k8=t8,k8|0}return 0}function eK(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,M=0,D=0,C=0;if(!(WX(X,W)|0))return Y=0,Y|0;if(X=kK(X)|0,K=+O[W>>3],Z=+O[W+8>>3],Z=X&Z<0?Z+6.283185307179586:Z,Y=V[Y>>2]|0,!Y)return Y=0,Y|0;if(X){X=0,D=Z,W=Y;Y:while(!0){while(!0){if(F=+O[W>>3],Z=+O[W+8>>3],W=W+16|0,C=V[W>>2]|0,C=(C|0)==0?Y:C,G=+O[C>>3],z=+O[C+8>>3],F>G)M=F,F=z;else M=G,G=F,F=Z,Z=z;if(K=K==G|K==M?K+0.0000000000000002220446049250313:K,!(K<G|K>M))break;if(W=V[W>>2]|0,!W){W=22;break Y}}if(z=F<0?F+6.283185307179586:F,F=Z<0?Z+6.283185307179586:Z,D=z==D|F==D?D+-0.0000000000000002220446049250313:D,M=z+(F-z)*((K-G)/(M-G)),(M<0?M+6.283185307179586:M)>D)X=X^1;if(W=V[W>>2]|0,!W){W=22;break}}if((W|0)==22)return X|0}else{X=0,D=Z,W=Y;Y:while(!0){while(!0){if(F=+O[W>>3],Z=+O[W+8>>3],W=W+16|0,C=V[W>>2]|0,C=(C|0)==0?Y:C,G=+O[C>>3],z=+O[C+8>>3],F>G)M=F,F=z;else M=G,G=F,F=Z,Z=z;if(K=K==G|K==M?K+0.0000000000000002220446049250313:K,!(K<G|K>M))break;if(W=V[W>>2]|0,!W){W=22;break Y}}if(D=F==D|Z==D?D+-0.0000000000000002220446049250313:D,F+(Z-F)*((K-G)/(M-G))>D)X=X^1;if(W=V[W>>2]|0,!W){W=22;break}}if((W|0)==22)return X|0}return 0}function o0(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0,x=0,y=0,$=0,_=0;if(_=P,P=P+32|0,$=_+16|0,y=_,G=n(Y|0,X|0,52)|0,I()|0,G=G&15,L=n(W|0,K|0,52)|0,I()|0,(G|0)!=(L&15|0))return $=12,P=_,$|0;if(D=n(Y|0,X|0,45)|0,I()|0,D=D&127,C=n(W|0,K|0,45)|0,I()|0,C=C&127,D>>>0>121|C>>>0>121)return $=5,P=_,$|0;if(L=(D|0)!=(C|0),L){if(z=XX(D,C)|0,(z|0)==7)return $=1,P=_,$|0;if(M=XX(C,D)|0,(M|0)==7)I8(27514,27538,161,27548);else j=z,F=M}else j=0,F=0;R=z6(D)|0,H=z6(C)|0,V[$>>2]=0,V[$+4>>2]=0,V[$+8>>2]=0,V[$+12>>2]=0;do if(!j)if(DX(W,K,$)|0,(R|0)!=0&(H|0)!=0){if((C|0)!=(D|0))I8(27621,27538,261,27548);if(F=e6(Y,X)|0,G=e6(W,K)|0,!((F|0)==7|(G|0)==7))if(!(s[22000+(F*7|0)+G>>0]|0))if(F=V[21168+(F*28|0)+(G<<2)>>2]|0,(F|0)>0){z=$+4|0,G=0;do m9(z),G=G+1|0;while((G|0)!=(F|0));x=51}else x=51;else G=1;else G=5}else x=51;else{if(C=V[4272+(D*28|0)+(j<<2)>>2]|0,z=(C|0)>0,!H)if(z){D=0,M=W,z=K;do M=MX(M,z)|0,z=I()|0,F=OY(F)|0,D=D+1|0;while((D|0)!=(C|0));C=F,D=M,M=z}else C=F,D=W,M=K;else if(z){D=0,M=W,z=K;do{if(M=M3(M,z)|0,z=I()|0,F=OY(F)|0,(F|0)==1)F=OY(1)|0;D=D+1|0}while((D|0)!=(C|0));C=F,D=M,M=z}else C=F,D=W,M=K;if(DX(D,M,$)|0,!L)I8(27563,27538,191,27548);if(z=(R|0)!=0,F=(H|0)!=0,z&F)I8(27590,27538,192,27548);if(!z)if(F){if(F=e6(D,M)|0,(F|0)==7){G=5;break}if(s[22000+(F*7|0)+C>>0]|0){G=1;break}D=0,M=V[21168+(C*28|0)+(F<<2)>>2]|0}else D=0,M=0;else{if(F=e6(Y,X)|0,(F|0)==7){G=5;break}if(s[22000+(F*7|0)+j>>0]|0){G=1;break}M=V[21168+(F*28|0)+(j<<2)>>2]|0,D=M}if((D|M|0)<0)G=5;else{if((M|0)>0){z=$+4|0,F=0;do m9(z),F=F+1|0;while((F|0)!=(M|0))}if(V[y>>2]=0,V[y+4>>2]=0,V[y+8>>2]=0,fK(y,j),G|0)while(!0){if(!(N0(G)|0))bY(y);else f9(y);if((G|0)>1)G=G+-1|0;else break}if((D|0)>0){G=0;do m9(y),G=G+1|0;while((G|0)!=(D|0))}x=$+4|0,p6(x,y,x),b6(x),x=51}}while(0);if((x|0)==51)G=$+4|0,V[Z>>2]=V[G>>2],V[Z+4>>2]=V[G+4>>2],V[Z+8>>2]=V[G+8>>2],G=0;return $=G,P=_,$|0}function Y5(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0,x=0,y=0,$=0,_=0,k=0;if(x=P,P=P+48|0,D=x+36|0,F=x+24|0,z=x+12|0,M=x,Z=n(Y|0,X|0,52)|0,I()|0,Z=Z&15,H=n(Y|0,X|0,45)|0,I()|0,H=H&127,H>>>0>121)return K=5,P=x,K|0;if(C=z6(H)|0,t(Z|0,0,52)|0,y=I()|0|134225919,G=K,V[G>>2]=-1,V[G+4>>2]=y,!Z){if(Z=g9(W)|0,(Z|0)==7)return y=1,P=x,y|0;if(Z=VX(H,Z)|0,(Z|0)==127)return y=1,P=x,y|0;return L=t(Z|0,0,45)|0,j=I()|0,H=K,j=V[H+4>>2]&-1040385|j,y=K,V[y>>2]=V[H>>2]|L,V[y+4>>2]=j,y=0,P=x,y|0}V[D>>2]=V[W>>2],V[D+4>>2]=V[W+4>>2],V[D+8>>2]=V[W+8>>2],W=Z;while(!0){if(G=W,W=W+-1|0,V[F>>2]=V[D>>2],V[F+4>>2]=V[D+4>>2],V[F+8>>2]=V[D+8>>2],!(N0(G)|0)){if(Z=s1(D)|0,Z|0){W=13;break}V[z>>2]=V[D>>2],V[z+4>>2]=V[D+4>>2],V[z+8>>2]=V[D+8>>2],bY(z)}else{if(Z=c1(D)|0,Z|0){W=13;break}V[z>>2]=V[D>>2],V[z+4>>2]=V[D+4>>2],V[z+8>>2]=V[D+8>>2],f9(z)}if(JX(F,z,M),b6(M),Z=K,_=V[Z>>2]|0,Z=V[Z+4>>2]|0,k=(15-G|0)*3|0,$=t(7,0,k|0)|0,Z=Z&~(I()|0),k=t(g9(M)|0,0,k|0)|0,Z=I()|0|Z,y=K,V[y>>2]=k|_&~$,V[y+4>>2]=Z,(G|0)<=1){W=14;break}}Y:do if((W|0)!=13){if((W|0)==14)if(((V[D>>2]|0)<=1?(V[D+4>>2]|0)<=1:0)?(V[D+8>>2]|0)<=1:0){if(W=g9(D)|0,Z=VX(H,W)|0,(Z|0)==127)M=0;else M=z6(Z)|0;V:do if(!W)if((C|0)!=0&(M|0)!=0){if(W=e6(Y,X)|0,G=K,G=e6(V[G>>2]|0,V[G+4>>2]|0)|0,(W|0)==7|(G|0)==7){Z=5;break Y}if(G=V[21376+(W*28|0)+(G<<2)>>2]|0,(G|0)<0){Z=5;break Y}if(!G)W=59;else{z=K,W=0,F=V[z>>2]|0,z=V[z+4>>2]|0;do F=pY(F,z)|0,z=I()|0,k=K,V[k>>2]=F,V[k+4>>2]=z,W=W+1|0;while((W|0)<(G|0));W=58}}else W=58;else{if(C){if(Z=e6(Y,X)|0,(Z|0)==7){Z=5;break Y}if(G=V[21376+(Z*28|0)+(W<<2)>>2]|0,(G|0)>0){Z=W,W=0;do Z=uY(Z)|0,W=W+1|0;while((W|0)!=(G|0))}else Z=W;if((Z|0)==1){Z=9;break Y}if(W=VX(H,Z)|0,(W|0)==127)I8(27648,27538,411,27678);if(!(z6(W)|0))j=W,L=G,R=Z;else I8(27693,27538,412,27678)}else j=Z,L=0,R=W;if(z=V[4272+(H*28|0)+(R<<2)>>2]|0,(z|0)<=-1)I8(27724,27538,419,27678);if(!M){if((L|0)<0){Z=5;break Y}if(L|0){G=K,Z=0,W=V[G>>2]|0,G=V[G+4>>2]|0;do W=pY(W,G)|0,G=I()|0,k=K,V[k>>2]=W,V[k+4>>2]=G,Z=Z+1|0;while((Z|0)<(L|0))}if((z|0)<=0){Z=j,W=58;break}G=K,Z=0,W=V[G>>2]|0,G=V[G+4>>2]|0;while(!0)if(W=pY(W,G)|0,G=I()|0,k=K,V[k>>2]=W,V[k+4>>2]=G,Z=Z+1|0,(Z|0)==(z|0)){Z=j,W=58;break V}}if(F=XX(j,H)|0,(F|0)==7)I8(27514,27538,428,27678);if(Z=K,W=V[Z>>2]|0,Z=V[Z+4>>2]|0,(z|0)>0){G=0;do W=pY(W,Z)|0,Z=I()|0,k=K,V[k>>2]=W,V[k+4>>2]=Z,G=G+1|0;while((G|0)!=(z|0))}if(Z=e6(W,Z)|0,(Z|0)==7)I8(27795,27538,440,27678);if(W=YX(j)|0,W=V[(W?21792:21584)+(F*28|0)+(Z<<2)>>2]|0,(W|0)<0)I8(27795,27538,454,27678);if(!W)Z=j,W=58;else{F=K,Z=0,G=V[F>>2]|0,F=V[F+4>>2]|0;do G=qX(G,F)|0,F=I()|0,k=K,V[k>>2]=G,V[k+4>>2]=F,Z=Z+1|0;while((Z|0)<(W|0));Z=j,W=58}}while(0);if((W|0)==58){if(M)W=59}if((W|0)==59){if(k=K,(e6(V[k>>2]|0,V[k+4>>2]|0)|0)==1){Z=9;break}}k=K,$=V[k>>2]|0,k=V[k+4>>2]&-1040385,_=t(Z|0,0,45)|0,k=k|(I()|0),Z=K,V[Z>>2]=$|_,V[Z+4>>2]=k,Z=0}else Z=1}while(0);return k=Z,P=x,k|0}function _3(Y,X,W,K,Z,G){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0,G=G|0;var F=0,z=0;if(z=P,P=P+16|0,F=z,!Z){if(Y=o0(Y,X,W,K,F)|0,!Y)r1(F,G),Y=0}else Y=15;return P=z,Y|0}function h3(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0;if(F=P,P=P+16|0,G=F,!K){if(W=d1(W,G)|0,!W)W=Y5(Y,X,G,Z)|0}else W=15;return P=F,W|0}function $3(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,M=0;if(M=P,P=P+32|0,F=M+12|0,z=M,G=o0(Y,X,Y,X,F)|0,G|0)return z=G,P=M,z|0;if(Y=o0(Y,X,W,K,z)|0,Y|0)return z=Y,P=M,z|0;return F=ZX(F,z)|0,z=Z,V[z>>2]=F,V[z+4>>2]=((F|0)<0)<<31>>31,z=0,P=M,z|0}function g3(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,M=0;if(M=P,P=P+32|0,F=M+12|0,z=M,G=o0(Y,X,Y,X,F)|0,!G){if(G=o0(Y,X,W,K,z)|0,!G)return K=ZX(F,z)|0,K=O8(K|0,((K|0)<0)<<31>>31|0,1,0)|0,F=I()|0,z=Z,V[z>>2]=K,V[z+4>>2]=F,z=0,P=M,z|0}return z=G,P=M,z|0}function f3(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0,x=0,y=0,$=0,_=0,k=0,E=0,a=0,M8=0,Q8=0,x8=0;if(Q8=P,P=P+48|0,a=Q8+24|0,F=Q8+12|0,M8=Q8,G=o0(Y,X,Y,X,a)|0,!G){if(G=o0(Y,X,W,K,F)|0,!G){if(k=ZX(a,F)|0,E=((k|0)<0)<<31>>31,V[a>>2]=0,V[a+4>>2]=0,V[a+8>>2]=0,V[F>>2]=0,V[F+4>>2]=0,V[F+8>>2]=0,o0(Y,X,Y,X,a)|0)I8(27795,27538,692,27747);if(o0(Y,X,W,K,F)|0)I8(27795,27538,697,27747);pK(a),pK(F),C=(k|0)==0?0:1/+(k|0),W=V[a>>2]|0,x=C*+((V[F>>2]|0)-W|0),y=a+4|0,K=V[y>>2]|0,$=C*+((V[F+4>>2]|0)-K|0),_=a+8|0,G=V[_>>2]|0,C=C*+((V[F+8>>2]|0)-G|0),V[M8>>2]=W,R=M8+4|0,V[R>>2]=K,H=M8+8|0,V[H>>2]=G;Y:do if((k|0)<0)G=0;else{L=0,j=0;while(!0){M=+(j>>>0)+4294967296*+(L|0),x8=x*M+ +(W|0),z=$*M+ +(K|0),M=C*M+ +(G|0),W=~~+n9(+x8),F=~~+n9(+z),G=~~+n9(+M),x8=+p8(+(+(W|0)-x8)),z=+p8(+(+(F|0)-z)),M=+p8(+(+(G|0)-M));do if(!(x8>z&x8>M))if(D=0-W|0,z>M){K=D-G|0;break}else{K=F,G=D-F|0;break}else W=0-(F+G)|0,K=F;while(0);if(V[M8>>2]=W,V[R>>2]=K,V[H>>2]=G,l1(M8),G=Y5(Y,X,M8,Z+(j<<3)|0)|0,G|0)break Y;if(!((L|0)<(E|0)|(L|0)==(E|0)&j>>>0<k>>>0)){G=0;break Y}W=O8(j|0,L|0,1,0)|0,K=I()|0,L=K,j=W,W=V[a>>2]|0,K=V[y>>2]|0,G=V[_>>2]|0}}while(0);return M8=G,P=Q8,M8|0}}return M8=G,P=Q8,M8|0}function SY(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0;if((W|0)==0&(K|0)==0)return Z=0,G=1,E8(Z|0),G|0;G=Y,Z=X,Y=1,X=0;do F=(W&1|0)==0&!0,Y=x6((F?1:G)|0,(F?0:Z)|0,Y|0,X|0)|0,X=I()|0,W=q5(W|0,K|0,1)|0,K=I()|0,G=x6(G|0,Z|0,G|0,Z|0)|0,Z=I()|0;while(!((W|0)==0&(K|0)==0));return E8(X|0),Y|0}function PX(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,M=0,D=0,C=0;z=P,P=P+16|0,G=z,F=n(Y|0,X|0,52)|0,I()|0,F=F&15;do if(!F)if(Z=n(Y|0,X|0,45)|0,I()|0,Z=Z&127,Z>>>0>121)return F=5,P=z,F|0;else{G=22064+(Z<<5)|0,V[W>>2]=V[G>>2],V[W+4>>2]=V[G+4>>2],V[W+8>>2]=V[G+8>>2],V[W+12>>2]=V[G+12>>2],V[W+16>>2]=V[G+16>>2],V[W+20>>2]=V[G+20>>2],V[W+24>>2]=V[G+24>>2],V[W+28>>2]=V[G+28>>2];break}else{if(Z=cY(Y,X,G)|0,!Z){D=+O[G>>3],M=1/+m8(+D),C=+O[25968+(F<<3)>>3],O[W>>3]=D+C,O[W+8>>3]=D-C,D=+O[G+8>>3],M=C*M,O[W+16>>3]=M+D,O[W+24>>3]=D-M;break}return F=Z,P=z,F|0}while(0);if(b1(W,K?1.4:1.1),K=26096+(F<<3)|0,(V[K>>2]|0)==(Y|0)?(V[K+4>>2]|0)==(X|0):0)O[W>>3]=1.5707963267948966;if(F=26224+(F<<3)|0,(V[F>>2]|0)==(Y|0)?(V[F+4>>2]|0)==(X|0):0)O[W+8>>3]=-1.5707963267948966;if(+O[W>>3]!=1.5707963267948966?+O[W+8>>3]!=-1.5707963267948966:0)return F=0,P=z,F|0;return O[W+16>>3]=3.141592653589793,O[W+24>>3]=-3.141592653589793,F=0,P=z,F|0}function m3(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,M=0,D=0,C=0;D=P,P=P+48|0,F=D+32|0,G=D+40|0,z=D,zX(F,0,0,0),M=V[F>>2]|0,F=V[F+4>>2]|0;do if(W>>>0<=15){if(Z=t7(K)|0,Z|0){K=z,V[K>>2]=0,V[K+4>>2]=0,V[z+8>>2]=Z,V[z+12>>2]=-1,K=z+16|0,M=z+29|0,V[K>>2]=0,V[K+4>>2]=0,V[K+8>>2]=0,s[K+12>>0]=0,s[M>>0]=s[G>>0]|0,s[M+1>>0]=s[G+1>>0]|0,s[M+2>>0]=s[G+2>>0]|0;break}if(Z=Y0((V[X+8>>2]|0)+1|0,32)|0,!Z){K=z,V[K>>2]=0,V[K+4>>2]=0,V[z+8>>2]=13,V[z+12>>2]=-1,K=z+16|0,M=z+29|0,V[K>>2]=0,V[K+4>>2]=0,V[K+8>>2]=0,s[K+12>>0]=0,s[M>>0]=s[G>>0]|0,s[M+1>>0]=s[G+1>>0]|0,s[M+2>>0]=s[G+2>>0]|0;break}else{AX(X,Z),C=z,V[C>>2]=M,V[C+4>>2]=F,V[z+8>>2]=0,V[z+12>>2]=W,V[z+16>>2]=K,V[z+20>>2]=X,V[z+24>>2]=Z,s[z+28>>0]=0,M=z+29|0,s[M>>0]=s[G>>0]|0,s[M+1>>0]=s[G+1>>0]|0,s[M+2>>0]=s[G+2>>0]|0;break}}else M=z,V[M>>2]=0,V[M+4>>2]=0,V[z+8>>2]=4,V[z+12>>2]=-1,M=z+16|0,C=z+29|0,V[M>>2]=0,V[M+4>>2]=0,V[M+8>>2]=0,s[M+12>>0]=0,s[C>>0]=s[G>>0]|0,s[C+1>>0]=s[G+1>>0]|0,s[C+2>>0]=s[G+2>>0]|0;while(0);p9(z),V[Y>>2]=V[z>>2],V[Y+4>>2]=V[z+4>>2],V[Y+8>>2]=V[z+8>>2],V[Y+12>>2]=V[z+12>>2],V[Y+16>>2]=V[z+16>>2],V[Y+20>>2]=V[z+20>>2],V[Y+24>>2]=V[z+24>>2],V[Y+28>>2]=V[z+28>>2],P=D;return}function p9(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0,x=0,y=0,$=0,_=0,k=0,E=0;if(E=P,P=P+336|0,L=E+168|0,j=E,K=Y,W=V[K>>2]|0,K=V[K+4>>2]|0,(W|0)==0&(K|0)==0){P=E;return}if(X=Y+28|0,!(s[X>>0]|0))s[X>>0]=1;else W=V5(W,K)|0,K=I()|0;if(k=Y+20|0,!(V[V[k>>2]>>2]|0)){if(X=Y+24|0,W=V[X>>2]|0,W|0)S8(W);_=Y,V[_>>2]=0,V[_+4>>2]=0,V[Y+8>>2]=0,V[k>>2]=0,V[Y+12>>2]=-1,V[Y+16>>2]=0,V[X>>2]=0,P=E;return}_=Y+16|0,X=V[_>>2]|0,Z=X&15;Y:do if(!((W|0)==0&(K|0)==0)){x=Y+12|0,R=(Z|0)==3,C=X&255,M=(Z|1|0)==3,H=Y+24|0,D=(Z+-1|0)>>>0<3,F=(Z|2|0)==3,z=j+8|0;V:while(!0){if(G=n(W|0,K|0,52)|0,I()|0,G=G&15,(G|0)==(V[x>>2]|0)){switch(C&15){case 0:case 2:case 3:{if(Z=cY(W,K,L)|0,Z|0){y=15;break V}if(RX(V[k>>2]|0,V[H>>2]|0,L)|0){y=19;break V}break}default:}if(M?(Z=V[(V[k>>2]|0)+4>>2]|0,V[L>>2]=V[Z>>2],V[L+4>>2]=V[Z+4>>2],V[L+8>>2]=V[Z+8>>2],V[L+12>>2]=V[Z+12>>2],WX(26832,L)|0):0){if(BX(V[(V[k>>2]|0)+4>>2]|0,G,j)|0){y=25;break}if(Z=j,(V[Z>>2]|0)==(W|0)?(V[Z+4>>2]|0)==(K|0):0){y=29;break}}if(D){if(Z=U7(W,K,L)|0,Z|0){y=32;break}if(PX(W,K,j,0)|0){y=36;break}if(F?W5(V[k>>2]|0,V[H>>2]|0,L,j)|0:0){y=42;break}if(M?K5(V[k>>2]|0,V[H>>2]|0,L,j)|0:0){y=42;break}}if(R){if(X=PX(W,K,L,1)|0,Z=V[H>>2]|0,X|0){y=45;break}if(KX(Z,L)|0){if(_K(j,L),vK(L,V[H>>2]|0)|0){y=53;break}if(RX(V[k>>2]|0,V[H>>2]|0,z)|0){y=53;break}if(K5(V[k>>2]|0,V[H>>2]|0,j,L)|0){y=53;break}}}}do if((G|0)<(V[x>>2]|0)){if(X=PX(W,K,L,1)|0,Z=V[H>>2]|0,X|0){y=58;break V}if(!(KX(Z,L)|0)){y=73;break}if(vK(V[H>>2]|0,L)|0?(_K(j,L),W5(V[k>>2]|0,V[H>>2]|0,j,L)|0):0){y=65;break V}if(W=dK(W,K,G+1|0,j)|0,W|0){y=67;break V}K=j,W=V[K>>2]|0,K=V[K+4>>2]|0}else y=73;while(0);if((y|0)==73)y=0,W=V5(W,K)|0,K=I()|0;if((W|0)==0&(K|0)==0){$=H;break Y}}switch(y|0){case 15:{if(X=V[H>>2]|0,X|0)S8(X);y=Y,V[y>>2]=0,V[y+4>>2]=0,V[k>>2]=0,V[x>>2]=-1,V[_>>2]=0,V[H>>2]=0,V[Y+8>>2]=Z,y=20;break}case 19:{V[Y>>2]=W,V[Y+4>>2]=K,y=20;break}case 25:{I8(27795,27761,470,27772);break}case 29:{V[Y>>2]=W,V[Y+4>>2]=K,P=E;return}case 32:{if(X=V[H>>2]|0,X|0)S8(X);$=Y,V[$>>2]=0,V[$+4>>2]=0,V[k>>2]=0,V[x>>2]=-1,V[_>>2]=0,V[H>>2]=0,V[Y+8>>2]=Z,P=E;return}case 36:{I8(27795,27761,493,27772);break}case 42:{V[Y>>2]=W,V[Y+4>>2]=K,P=E;return}case 45:{if(Z|0)S8(Z);y=Y,V[y>>2]=0,V[y+4>>2]=0,V[k>>2]=0,V[x>>2]=-1,V[_>>2]=0,V[H>>2]=0,V[Y+8>>2]=X,y=55;break}case 53:{V[Y>>2]=W,V[Y+4>>2]=K,y=55;break}case 58:{if(Z|0)S8(Z);y=Y,V[y>>2]=0,V[y+4>>2]=0,V[k>>2]=0,V[x>>2]=-1,V[_>>2]=0,V[H>>2]=0,V[Y+8>>2]=X,y=71;break}case 65:{V[Y>>2]=W,V[Y+4>>2]=K,y=71;break}case 67:{if(X=V[H>>2]|0,X|0)S8(X);$=Y,V[$>>2]=0,V[$+4>>2]=0,V[k>>2]=0,V[x>>2]=-1,V[_>>2]=0,V[H>>2]=0,V[Y+8>>2]=W,P=E;return}}if((y|0)==20){P=E;return}else if((y|0)==55){P=E;return}else if((y|0)==71){P=E;return}}else $=Y+24|0;while(0);if(X=V[$>>2]|0,X|0)S8(X);y=Y,V[y>>2]=0,V[y+4>>2]=0,V[Y+8>>2]=0,V[k>>2]=0,V[Y+12>>2]=-1,V[_>>2]=0,V[$>>2]=0,P=E;return}function V5(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0,M=0,D=0,C=0,R=0;R=P,P=P+16|0,C=R,K=n(Y|0,X|0,52)|0,I()|0,K=K&15,W=n(Y|0,X|0,45)|0,I()|0;do if(K){while(!0){if(W=t(K+4095|0,0,52)|0,Z=I()|0|X&-15728641,G=(15-K|0)*3|0,F=t(7,0,G|0)|0,z=I()|0,W=W|Y|F,Z=Z|z,M=n(Y|0,X|0,G|0)|0,I()|0,M=M&7,K=K+-1|0,M>>>0<6)break;if(!K){D=4;break}else X=Z,Y=W}if((D|0)==4){W=n(W|0,Z|0,45)|0,I()|0;break}return C=(M|0)==0&(Z6(W,Z)|0)!=0,C=t((C?2:1)+M|0,0,G|0)|0,D=I()|0|X&~z,C=C|Y&~F,E8(D|0),P=R,C|0}while(0);if(W=W&127,W>>>0>120)return D=0,C=0,E8(D|0),P=R,C|0;return zX(C,0,W+1|0,0),D=V[C+4>>2]|0,C=V[C>>2]|0,E8(D|0),P=R,C|0}function b3(Y,X,W,K,Z,G){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0,G=G|0;var F=0,z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0,x=0,y=0;y=P,P=P+160|0,R=y+80|0,z=y+64|0,H=y+112|0,x=y,m3(R,Y,X,W),D=R,CX(z,V[D>>2]|0,V[D+4>>2]|0,X),D=z,M=V[D>>2]|0,D=V[D+4>>2]|0,F=V[R+8>>2]|0,L=H+4|0,V[L>>2]=V[R>>2],V[L+4>>2]=V[R+4>>2],V[L+8>>2]=V[R+8>>2],V[L+12>>2]=V[R+12>>2],V[L+16>>2]=V[R+16>>2],V[L+20>>2]=V[R+20>>2],V[L+24>>2]=V[R+24>>2],V[L+28>>2]=V[R+28>>2],L=x,V[L>>2]=M,V[L+4>>2]=D,L=x+8|0,V[L>>2]=F,Y=x+12|0,X=H,W=Y+36|0;do V[Y>>2]=V[X>>2],Y=Y+4|0,X=X+4|0;while((Y|0)<(W|0));if(H=x+48|0,V[H>>2]=V[z>>2],V[H+4>>2]=V[z+4>>2],V[H+8>>2]=V[z+8>>2],V[H+12>>2]=V[z+12>>2],(M|0)==0&(D|0)==0)return x=F,P=y,x|0;W=x+16|0,C=x+24|0,R=x+28|0,F=0,z=0,X=M,Y=D;do{if(!((F|0)<(Z|0)|(F|0)==(Z|0)&z>>>0<K>>>0)){j=4;break}if(D=z,z=O8(z|0,F|0,1,0)|0,F=I()|0,D=G+(D<<3)|0,V[D>>2]=X,V[D+4>>2]=Y,OX(H),Y=H,X=V[Y>>2]|0,Y=V[Y+4>>2]|0,(X|0)==0&(Y|0)==0){if(p9(W),X=W,Y=V[X>>2]|0,X=V[X+4>>2]|0,(Y|0)==0&(X|0)==0){j=10;break}iK(Y,X,V[R>>2]|0,H),Y=H,X=V[Y>>2]|0,Y=V[Y+4>>2]|0}D=x,V[D>>2]=X,V[D+4>>2]=Y}while(!((X|0)==0&(Y|0)==0));if((j|0)==4){if(Y=x+40|0,X=V[Y>>2]|0,X|0)S8(X);return j=x+16|0,V[j>>2]=0,V[j+4>>2]=0,V[C>>2]=0,V[x+36>>2]=0,V[R>>2]=-1,V[x+32>>2]=0,V[Y>>2]=0,iK(0,0,0,H),V[x>>2]=0,V[x+4>>2]=0,V[L>>2]=0,x=14,P=y,x|0}else if((j|0)==10)V[x>>2]=0,V[x+4>>2]=0,V[L>>2]=V[C>>2];return x=V[L>>2]|0,P=y,x|0}function u3(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0,L=0;if(R=P,P=P+48|0,M=R+32|0,z=R+40|0,D=R,!(V[Y>>2]|0))return C=K,V[C>>2]=0,V[C+4>>2]=0,C=0,P=R,C|0;zX(M,0,0,0),F=M,Z=V[F>>2]|0,F=V[F+4>>2]|0;do if(X>>>0>15)C=D,V[C>>2]=0,V[C+4>>2]=0,V[D+8>>2]=4,V[D+12>>2]=-1,C=D+16|0,W=D+29|0,V[C>>2]=0,V[C+4>>2]=0,V[C+8>>2]=0,s[C+12>>0]=0,s[W>>0]=s[z>>0]|0,s[W+1>>0]=s[z+1>>0]|0,s[W+2>>0]=s[z+2>>0]|0,W=4,C=9;else{if(W=t7(W)|0,W|0){M=D,V[M>>2]=0,V[M+4>>2]=0,V[D+8>>2]=W,V[D+12>>2]=-1,M=D+16|0,C=D+29|0,V[M>>2]=0,V[M+4>>2]=0,V[M+8>>2]=0,s[M+12>>0]=0,s[C>>0]=s[z>>0]|0,s[C+1>>0]=s[z+1>>0]|0,s[C+2>>0]=s[z+2>>0]|0,C=9;break}if(W=Y0((V[Y+8>>2]|0)+1|0,32)|0,!W){C=D,V[C>>2]=0,V[C+4>>2]=0,V[D+8>>2]=13,V[D+12>>2]=-1,C=D+16|0,W=D+29|0,V[C>>2]=0,V[C+4>>2]=0,V[C+8>>2]=0,s[C+12>>0]=0,s[W>>0]=s[z>>0]|0,s[W+1>>0]=s[z+1>>0]|0,s[W+2>>0]=s[z+2>>0]|0,W=13,C=9;break}AX(Y,W),L=D,V[L>>2]=Z,V[L+4>>2]=F,F=D+8|0,V[F>>2]=0,V[D+12>>2]=X,V[D+20>>2]=Y,V[D+24>>2]=W,s[D+28>>0]=0,Z=D+29|0,s[Z>>0]=s[z>>0]|0,s[Z+1>>0]=s[z+1>>0]|0,s[Z+2>>0]=s[z+2>>0]|0,V[D+16>>2]=3,H=+g1(W),H=H*+$1(W),G=+p8(+ +O[W>>3]),G=H/+m8(+ +s9(+G,+ +p8(+ +O[W+8>>3])))*6371.007180918475*6371.007180918475,Z=D+12|0,W=V[Z>>2]|0;Y:do if((W|0)>0)do{if(oK(W+-1|0,M)|0,!(G/+O[M>>3]>10))break Y;L=V[Z>>2]|0,W=L+-1|0,V[Z>>2]=W}while((L|0)>1);while(0);if(p9(D),Z=K,V[Z>>2]=0,V[Z+4>>2]=0,Z=D,W=V[Z>>2]|0,Z=V[Z+4>>2]|0,!((W|0)==0&(Z|0)==0))do l7(W,Z,X,M)|0,z=M,Y=K,z=O8(V[Y>>2]|0,V[Y+4>>2]|0,V[z>>2]|0,V[z+4>>2]|0)|0,Y=I()|0,L=K,V[L>>2]=z,V[L+4>>2]=Y,p9(D),L=D,W=V[L>>2]|0,Z=V[L+4>>2]|0;while(!((W|0)==0&(Z|0)==0));W=V[F>>2]|0}while(0);return L=W,P=R,L|0}function a7(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0;if(!(WX(X,W)|0))return H=0,H|0;if(X=kK(X)|0,K=+O[W>>3],Z=+O[W+8>>3],Z=X&Z<0?Z+6.283185307179586:Z,H=V[Y>>2]|0,(H|0)<=0)return H=0,H|0;if(R=V[Y+4>>2]|0,X){X=0,C=Z,W=-1,Y=0;Y:while(!0){D=Y;while(!0){if(F=+O[R+(D<<4)>>3],Z=+O[R+(D<<4)+8>>3],Y=(W+2|0)%(H|0)|0,G=+O[R+(Y<<4)>>3],z=+O[R+(Y<<4)+8>>3],F>G)M=F,F=z;else M=G,G=F,F=Z,Z=z;if(K=K==G|K==M?K+0.0000000000000002220446049250313:K,!(K<G|K>M))break;if(W=D+1|0,(W|0)>=(H|0)){W=22;break Y}else Y=D,D=W,W=Y}if(z=F<0?F+6.283185307179586:F,F=Z<0?Z+6.283185307179586:Z,C=z==C|F==C?C+-0.0000000000000002220446049250313:C,M=z+(F-z)*((K-G)/(M-G)),(M<0?M+6.283185307179586:M)>C)X=X^1;if(Y=D+1|0,(Y|0)>=(H|0)){W=22;break}else W=D}if((W|0)==22)return X|0}else{X=0,C=Z,W=-1,Y=0;Y:while(!0){D=Y;while(!0){if(F=+O[R+(D<<4)>>3],Z=+O[R+(D<<4)+8>>3],Y=(W+2|0)%(H|0)|0,G=+O[R+(Y<<4)>>3],z=+O[R+(Y<<4)+8>>3],F>G)M=F,F=z;else M=G,G=F,F=Z,Z=z;if(K=K==G|K==M?K+0.0000000000000002220446049250313:K,!(K<G|K>M))break;if(W=D+1|0,(W|0)>=(H|0)){W=22;break Y}else Y=D,D=W,W=Y}if(C=F==C|Z==C?C+-0.0000000000000002220446049250313:C,F+(Z-F)*((K-G)/(M-G))>C)X=X^1;if(Y=D+1|0,(Y|0)>=(H|0)){W=22;break}else W=D}if((W|0)==22)return X|0}return 0}function X5(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0,x=0,y=0,$=0,_=0;if(j=V[Y>>2]|0,!j){V[X>>2]=0,V[X+4>>2]=0,V[X+8>>2]=0,V[X+12>>2]=0,V[X+16>>2]=0,V[X+20>>2]=0,V[X+24>>2]=0,V[X+28>>2]=0;return}if(x=X+8|0,O[x>>3]=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,y=X+24|0,O[y>>3]=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,O[X>>3]=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,$=X+16|0,O[$>>3]=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,(j|0)<=0)return;H=V[Y+4>>2]|0,D=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,C=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,R=0,Y=-1,G=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,F=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,M=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,K=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,L=0;while(!0){if(W=+O[H+(L<<4)>>3],z=+O[H+(L<<4)+8>>3],Y=Y+2|0,Z=+O[H+(((Y|0)==(j|0)?0:Y)<<4)+8>>3],W<G)O[x>>3]=W,G=W;if(z<F)O[y>>3]=z,F=z;if(W>M)O[X>>3]=W;else W=M;if(z>K)O[$>>3]=z,K=z;if(D=z>0&z<D?z:D,C=z<0&z>C?z:C,R=R|+p8(+(z-Z))>3.141592653589793,Y=L+1|0,(Y|0)==(j|0))break;else _=L,M=W,L=Y,Y=_}if(!R)return;O[$>>3]=C,O[y>>3]=D;return}function t7(Y){return Y=Y|0,(Y>>>0<4?0:15)|0}function AX(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0,x=0,y=0,$=0,_=0,k=0,E=0,a=0,M8=0,Q8=0;if(j=V[Y>>2]|0,j){if(x=X+8|0,O[x>>3]=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,y=X+24|0,O[y>>3]=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,O[X>>3]=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,$=X+16|0,O[$>>3]=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,(j|0)>0){Z=V[Y+4>>2]|0,H=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,L=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,K=0,W=-1,M=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,D=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,R=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,F=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,_=0;while(!0){if(G=+O[Z+(_<<4)>>3],C=+O[Z+(_<<4)+8>>3],M8=W+2|0,z=+O[Z+(((M8|0)==(j|0)?0:M8)<<4)+8>>3],G<M)O[x>>3]=G,M=G;if(C<D)O[y>>3]=C,D=C;if(G>R)O[X>>3]=G;else G=R;if(C>F)O[$>>3]=C,F=C;if(H=C>0&C<H?C:H,L=C<0&C>L?C:L,K=K|+p8(+(C-z))>3.141592653589793,W=_+1|0,(W|0)==(j|0))break;else M8=_,R=G,_=W,W=M8}if(K)O[$>>3]=L,O[y>>3]=H}}else V[X>>2]=0,V[X+4>>2]=0,V[X+8>>2]=0,V[X+12>>2]=0,V[X+16>>2]=0,V[X+20>>2]=0,V[X+24>>2]=0,V[X+28>>2]=0;if(M8=Y+8|0,W=V[M8>>2]|0,(W|0)<=0)return;a=Y+12|0,E=0;do if(Z=V[a>>2]|0,K=E,E=E+1|0,y=X+(E<<5)|0,$=V[Z+(K<<3)>>2]|0,$){if(_=X+(E<<5)+8|0,O[_>>3]=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,Y=X+(E<<5)+24|0,O[Y>>3]=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,O[y>>3]=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,k=X+(E<<5)+16|0,O[k>>3]=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,($|0)>0){j=V[Z+(K<<3)+4>>2]|0,H=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,L=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,Z=0,K=-1,x=0,M=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,D=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,C=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,F=-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000;while(!0){if(G=+O[j+(x<<4)>>3],R=+O[j+(x<<4)+8>>3],K=K+2|0,z=+O[j+(((K|0)==($|0)?0:K)<<4)+8>>3],G<M)O[_>>3]=G,M=G;if(R<D)O[Y>>3]=R,D=R;if(G>C)O[y>>3]=G;else G=C;if(R>F)O[k>>3]=R,F=R;if(H=R>0&R<H?R:H,L=R<0&R>L?R:L,Z=Z|+p8(+(R-z))>3.141592653589793,K=x+1|0,(K|0)==($|0))break;else Q8=x,x=K,C=G,K=Q8}if(Z)O[k>>3]=L,O[Y>>3]=H}}else V[y>>2]=0,V[y+4>>2]=0,V[y+8>>2]=0,V[y+12>>2]=0,V[y+16>>2]=0,V[y+20>>2]=0,V[y+24>>2]=0,V[y+28>>2]=0,W=V[M8>>2]|0;while((E|0)<(W|0));return}function RX(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0;if(!(a7(Y,X,W)|0))return Z=0,Z|0;if(Z=Y+8|0,(V[Z>>2]|0)<=0)return Z=1,Z|0;K=Y+12|0,Y=0;while(!0){if(G=Y,Y=Y+1|0,a7((V[K>>2]|0)+(G<<3)|0,X+(Y<<5)|0,W)|0){Y=0,K=6;break}if((Y|0)>=(V[Z>>2]|0)){Y=1,K=6;break}}if((K|0)==6)return Y|0;return 0}function W5(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,M=0,D=0,C=0;if(D=P,P=P+16|0,z=D,F=W+8|0,!(a7(Y,X,F)|0))return M=0,P=D,M|0;M=Y+8|0;Y:do if((V[M>>2]|0)>0){G=Y+12|0,Z=0;while(!0){if(C=Z,Z=Z+1|0,a7((V[G>>2]|0)+(C<<3)|0,X+(Z<<5)|0,F)|0){Z=0;break}if((Z|0)>=(V[M>>2]|0))break Y}return P=D,Z|0}while(0);if(c9(Y,X,W,K)|0)return C=0,P=D,C|0;V[z>>2]=V[W>>2],V[z+4>>2]=F,Z=V[M>>2]|0;Y:do if((Z|0)>0){Y=Y+12|0,F=0,G=Z;while(!0){if(Z=V[Y>>2]|0,(V[Z+(F<<3)>>2]|0)>0){if(a7(z,K,V[Z+(F<<3)+4>>2]|0)|0){Z=0;break Y}if(Z=F+1|0,c9((V[Y>>2]|0)+(F<<3)|0,X+(Z<<5)|0,W,K)|0){Z=0;break Y}G=V[M>>2]|0}else Z=F+1|0;if((Z|0)<(G|0))F=Z;else{Z=1;break}}}else Z=1;while(0);return C=Z,P=D,C|0}function c9(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0,x=0,y=0,$=0,_=0,k=0,E=0,a=0,M8=0,Q8=0,x8=0;if(M8=P,P=P+176|0,_=M8+172|0,Z=M8+168|0,k=M8,!(KX(X,K)|0))return Y=0,P=M8,Y|0;if(f1(X,K,_,Z),D7(k|0,W|0,168)|0,(V[W>>2]|0)>0){X=0;do Q8=k+8+(X<<4)+8|0,$=+Q0(+O[Q8>>3],V[Z>>2]|0),O[Q8>>3]=$,X=X+1|0;while((X|0)<(V[W>>2]|0))}x=+O[K>>3],y=+O[K+8>>3],$=+Q0(+O[K+16>>3],V[Z>>2]|0),L=+Q0(+O[K+24>>3],V[Z>>2]|0);Y:do if((V[Y>>2]|0)>0){if(K=Y+4|0,Z=V[k>>2]|0,(Z|0)<=0){X=0;while(!0)if(X=X+1|0,(X|0)>=(V[Y>>2]|0)){X=0;break Y}}W=0;while(!0){if(X=V[K>>2]|0,H=+O[X+(W<<4)>>3],j=+Q0(+O[X+(W<<4)+8>>3],V[_>>2]|0),X=V[K>>2]|0,W=W+1|0,Q8=(W|0)%(V[Y>>2]|0)|0,G=+O[X+(Q8<<4)>>3],F=+Q0(+O[X+(Q8<<4)+8>>3],V[_>>2]|0),((!(H>=x)|!(G>=x)?!(H<=y)|!(G<=y):0)?!(j<=L)|!(F<=L):0)?!(j>=$)|!(F>=$):0){R=G-H,D=F-j,X=0;do if(x8=X,X=X+1|0,Q8=(X|0)==(Z|0)?0:X,G=+O[k+8+(x8<<4)+8>>3],F=+O[k+8+(Q8<<4)+8>>3]-G,z=+O[k+8+(x8<<4)>>3],M=+O[k+8+(Q8<<4)>>3]-z,C=R*F-D*M,(C!=0?(E=j-G,a=H-z,M=(E*M-F*a)/C,!(M<0|M>1)):0)?(C=(R*E-D*a)/C,C>=0&C<=1):0){X=1;break Y}while((X|0)<(Z|0))}if((W|0)>=(V[Y>>2]|0)){X=0;break}}}else X=0;while(0);return x8=X,P=M8,x8|0}function K5(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0;if(c9(Y,X,W,K)|0)return G=1,G|0;if(G=Y+8|0,(V[G>>2]|0)<=0)return G=0,G|0;Z=Y+12|0,Y=0;while(!0){if(F=Y,Y=Y+1|0,c9((V[Z>>2]|0)+(F<<3)|0,X+(Y<<5)|0,W,K)|0){Y=1,Z=6;break}if((Y|0)>=(V[G>>2]|0)){Y=0,Z=6;break}}if((Z|0)==6)return Y|0;return 0}function p3(){return 8}function c3(){return 16}function s3(){return 168}function n3(){return 8}function r3(){return 16}function d3(){return 12}function l3(){return 8}function i3(Y){return Y=Y|0,+(+((V[Y>>2]|0)>>>0)+4294967296*+(V[Y+4>>2]|0))}function o3(Y){Y=Y|0;var X=0,W=0;return W=+O[Y>>3],X=+O[Y+8>>3],+ +q6(+(W*W+X*X))}function J5(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0;D=+O[Y>>3],M=+O[X>>3]-D,z=+O[Y+8>>3],F=+O[X+8>>3]-z,R=+O[W>>3],G=+O[K>>3]-R,H=+O[W+8>>3],C=+O[K+8>>3]-H,G=(G*(z-H)-(D-R)*C)/(M*C-F*G),O[Z>>3]=D+M*G,O[Z+8>>3]=z+F*G;return}function Z5(Y,X){if(Y=Y|0,X=X|0,!(+p8(+(+O[Y>>3]-+O[X>>3]))<0.00000011920928955078125))return X=0,X|0;return X=+p8(+(+O[Y+8>>3]-+O[X+8>>3]))<0.00000011920928955078125,X|0}function O6(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0;return Z=+O[Y>>3]-+O[X>>3],K=+O[Y+8>>3]-+O[X+8>>3],W=+O[Y+16>>3]-+O[X+16>>3],+(Z*Z+K*K+W*W)}function a3(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0;W=+O[Y>>3],K=+m8(+W),W=+c8(+W),O[X+16>>3]=W,W=+O[Y+8>>3],Z=K*+m8(+W),O[X>>3]=Z,W=K*+c8(+W),O[X+8>>3]=W;return}function t3(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0;if(G=P,P=P+16|0,Z=G,K=Z6(Y,X)|0,(W+-1|0)>>>0>5)return Z=-1,P=G,Z|0;if(K=(K|0)!=0,(W|0)==1&K)return Z=-1,P=G,Z|0;do if(!(e7(Y,X,Z)|0))if(K){K=((V[26352+(W<<2)>>2]|0)+5-(V[Z>>2]|0)|0)%5|0;break}else{K=((V[26384+(W<<2)>>2]|0)+6-(V[Z>>2]|0)|0)%6|0;break}else K=-1;while(0);return Z=K,P=G,Z|0}function e7(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,M=0,D=0;if(D=P,P=P+32|0,F=D+16|0,z=D,K=z7(Y,X,F)|0,K|0)return W=K,P=D,W|0;G=nK(Y,X)|0,M=e6(Y,X)|0,k1(G,z),K=v1(G,V[F>>2]|0)|0;Y:do if(z6(G)|0){do switch(G|0){case 4:{Y=0;break}case 14:{Y=1;break}case 24:{Y=2;break}case 38:{Y=3;break}case 49:{Y=4;break}case 58:{Y=5;break}case 63:{Y=6;break}case 72:{Y=7;break}case 83:{Y=8;break}case 97:{Y=9;break}case 107:{Y=10;break}case 117:{Y=11;break}default:{K=1;break Y}}while(0);if(Z=V[26416+(Y*24|0)+8>>2]|0,X=V[26416+(Y*24|0)+16>>2]|0,Y=V[F>>2]|0,(Y|0)!=(V[z>>2]|0)){if(z=YX(G)|0,Y=V[F>>2]|0,z|(Y|0)==(X|0))K=(K+1|0)%6|0}if((M|0)==3&(Y|0)==(X|0)){K=(K+5|0)%6|0,Z=22;break}if((M|0)==5&(Y|0)==(Z|0))K=(K+1|0)%6|0,Z=22;else Z=22}else Z=22;while(0);if((Z|0)==22)V[W>>2]=K,K=0;return W=K,P=D,W|0}function C0(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0,x=0,y=0,$=0,_=0,k=0;if(k=P,P=P+32|0,_=k+24|0,y=k+20|0,j=k+8|0,L=k+16|0,H=k,M=(Z6(Y,X)|0)==0,M=M?6:5,C=n(Y|0,X|0,52)|0,I()|0,C=C&15,M>>>0<=W>>>0)return K=2,P=k,K|0;if(R=(C|0)==0,!R?(x=t(7,0,(C^15)*3|0)|0,(x&Y|0)==0&((I()|0)&X|0)==0):0)Z=W;else G=4;Y:do if((G|0)==4){if(Z=(Z6(Y,X)|0)!=0,((Z?4:5)|0)<(W|0))return K=1,P=k,K|0;if(e7(Y,X,_)|0)return K=1,P=k,K|0;if(G=(V[_>>2]|0)+W|0,Z)Z=26704+(((G|0)%5|0)<<2)|0;else Z=26736+(((G|0)%6|0)<<2)|0;if(x=V[Z>>2]|0,(x|0)==7)return K=1,P=k,K|0;V[y>>2]=0,Z=T6(Y,X,x,y,j)|0;do if(!Z){if(z=j,D=V[z>>2]|0,z=V[z+4>>2]|0,F=z>>>0<X>>>0|(z|0)==(X|0)&D>>>0<Y>>>0,G=F?D:Y,F=F?z:X,!R?(R=t(7,0,(C^15)*3|0)|0,(D&R|0)==0&(z&(I()|0)|0)==0):0)Z=W;else{if(z=(W+-1+M|0)%(M|0)|0,Z=Z6(Y,X)|0,(z|0)<0)I8(27795,27797,246,27806);if(M=(Z|0)!=0,((M?4:5)|0)<(z|0))I8(27795,27797,246,27806);if(e7(Y,X,_)|0)I8(27795,27797,246,27806);if(Z=(V[_>>2]|0)+z|0,M)Z=26704+(((Z|0)%5|0)<<2)|0;else Z=26736+(((Z|0)%6|0)<<2)|0;if(z=V[Z>>2]|0,(z|0)==7)I8(27795,27797,246,27806);if(V[L>>2]=0,Z=T6(Y,X,z,L,H)|0,Z|0)break;D=H,M=V[D>>2]|0,D=V[D+4>>2]|0;do if(D>>>0<F>>>0|(D|0)==(F|0)&M>>>0<G>>>0){if(!(Z6(M,D)|0))G=V[26800+((((V[L>>2]|0)+(V[26768+(z<<2)>>2]|0)|0)%6|0)<<2)>>2]|0;else G=eV(M,D,Y,X)|0;if(Z=Z6(M,D)|0,(G+-1|0)>>>0>5){Z=-1,G=M,F=D;break}if(Z=(Z|0)!=0,(G|0)==1&Z){Z=-1,G=M,F=D;break}do if(!(e7(M,D,_)|0))if(Z){Z=((V[26352+(G<<2)>>2]|0)+5-(V[_>>2]|0)|0)%5|0;break}else{Z=((V[26384+(G<<2)>>2]|0)+6-(V[_>>2]|0)|0)%6|0;break}else Z=-1;while(0);G=M,F=D}else Z=W;while(0);z=j,D=V[z>>2]|0,z=V[z+4>>2]|0}if((G|0)==(D|0)&(F|0)==(z|0)){if(M=(Z6(D,z)|0)!=0,M)Y=eV(D,z,Y,X)|0;else Y=V[26800+((((V[y>>2]|0)+(V[26768+(x<<2)>>2]|0)|0)%6|0)<<2)>>2]|0;if(Z=Z6(D,z)|0,(Y+-1|0)>>>0<=5?($=(Z|0)!=0,!((Y|0)==1&$)):0)do if(!(e7(D,z,_)|0))if($){Z=((V[26352+(Y<<2)>>2]|0)+5-(V[_>>2]|0)|0)%5|0;break}else{Z=((V[26384+(Y<<2)>>2]|0)+6-(V[_>>2]|0)|0)%6|0;break}else Z=-1;while(0);else Z=-1;Z=Z+1|0,Z=(Z|0)==6|M&(Z|0)==5?0:Z}X=F,Y=G;break Y}while(0);return K=Z,P=k,K|0}while(0);return $=t(Z|0,0,56)|0,_=I()|0|X&-2130706433|536870912,V[K>>2]=$|Y,V[K+4>>2]=_,K=0,P=k,K|0}function e3(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0;if(G=(Z6(Y,X)|0)==0,K=C0(Y,X,0,W)|0,Z=(K|0)==0,G){if(!Z)return G=K,G|0;if(K=C0(Y,X,1,W+8|0)|0,K|0)return G=K,G|0;if(K=C0(Y,X,2,W+16|0)|0,K|0)return G=K,G|0;if(K=C0(Y,X,3,W+24|0)|0,K|0)return G=K,G|0;if(K=C0(Y,X,4,W+32|0)|0,!K)return C0(Y,X,5,W+40|0)|0;else return G=K,G|0}if(!Z)return G=K,G|0;if(K=C0(Y,X,1,W+8|0)|0,K|0)return G=K,G|0;if(K=C0(Y,X,2,W+16|0)|0,K|0)return G=K,G|0;if(K=C0(Y,X,3,W+24|0)|0,K|0)return G=K,G|0;if(K=C0(Y,X,4,W+32|0)|0,K|0)return G=K,G|0;return G=W+40|0,V[G>>2]=0,V[G+4>>2]=0,G=0,G|0}function YG(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0,z=0,M=0;if(M=P,P=P+192|0,Z=M,G=M+168|0,F=n(Y|0,X|0,56)|0,I()|0,F=F&7,z=X&-2130706433|134217728,K=z7(Y,z,G)|0,K|0)return z=K,P=M,z|0;if(X=n(Y|0,X|0,52)|0,I()|0,X=X&15,!(Z6(Y,z)|0))GX(G,X,F,1,Z);else QX(G,X,F,1,Z);return z=Z+8|0,V[W>>2]=V[z>>2],V[W+4>>2]=V[z+4>>2],V[W+8>>2]=V[z+8>>2],V[W+12>>2]=V[z+12>>2],z=0,P=M,z|0}function VG(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0;if(Z=P,P=P+16|0,W=Z,!(!0&(X&2013265920|0)==536870912))return K=0,P=Z,K|0;if(K=X&-2130706433|134217728,!(FX(Y,K)|0))return K=0,P=Z,K|0;return G=n(Y|0,X|0,56)|0,I()|0,G=(C0(Y,K,G&7,W)|0)==0,K=W,K=G&((V[K>>2]|0)==(Y|0)?(V[K+4>>2]|0)==(X|0):0)&1,P=Z,K|0}function Q5(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0;if((X|0)>0){if(K=Y0(X,4)|0,V[Y>>2]=K,!K)I8(27819,27842,40,27856)}else V[Y>>2]=0;V[Y+4>>2]=X,V[Y+8>>2]=0,V[Y+12>>2]=W;return}function G5(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0;Z=Y+4|0,G=Y+12|0,F=Y+8|0;Y:while(!0){W=V[Z>>2]|0,X=0;while(!0){if((X|0)>=(W|0))break Y;if(K=V[Y>>2]|0,z=V[K+(X<<2)>>2]|0,!z)X=X+1|0;else break}X=K+(~~(+p8(+(+j6(10,+ +(15-(V[G>>2]|0)|0))*(+O[z>>3]+ +O[z+8>>3])))%+(W|0))>>>0<<2)|0,W=V[X>>2]|0;V:do if(W|0){if(K=z+32|0,(W|0)==(z|0))V[X>>2]=V[K>>2];else{if(W=W+32|0,X=V[W>>2]|0,!X)break;while(!0){if((X|0)==(z|0))break;if(W=X+32|0,X=V[W>>2]|0,!X)break V}V[W>>2]=V[K>>2]}S8(z),V[F>>2]=(V[F>>2]|0)+-1}while(0)}S8(V[Y>>2]|0);return}function F5(Y){Y=Y|0;var X=0,W=0,K=0;K=V[Y+4>>2]|0,W=0;while(!0){if((W|0)>=(K|0)){X=0,W=4;break}if(X=V[(V[Y>>2]|0)+(W<<2)>>2]|0,!X)W=W+1|0;else{W=4;break}}if((W|0)==4)return X|0;return 0}function z5(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0;if(W=~~(+p8(+(+j6(10,+ +(15-(V[Y+12>>2]|0)|0))*(+O[X>>3]+ +O[X+8>>3])))%+(V[Y+4>>2]|0))>>>0,W=(V[Y>>2]|0)+(W<<2)|0,K=V[W>>2]|0,!K)return G=1,G|0;G=X+32|0;do if((K|0)!=(X|0)){if(W=V[K+32>>2]|0,!W)return G=1,G|0;Z=W;while(!0){if((Z|0)==(X|0)){Z=8;break}if(W=V[Z+32>>2]|0,!W){W=1,Z=10;break}else K=Z,Z=W}if((Z|0)==8){V[K+32>>2]=V[G>>2];break}else if((Z|0)==10)return W|0}else V[W>>2]=V[G>>2];while(0);return S8(X),G=Y+8|0,V[G>>2]=(V[G>>2]|0)+-1,G=0,G|0}function XG(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0;if(G=h0(40)|0,!G)I8(27872,27842,98,27885);V[G>>2]=V[X>>2],V[G+4>>2]=V[X+4>>2],V[G+8>>2]=V[X+8>>2],V[G+12>>2]=V[X+12>>2],Z=G+16|0,V[Z>>2]=V[W>>2],V[Z+4>>2]=V[W+4>>2],V[Z+8>>2]=V[W+8>>2],V[Z+12>>2]=V[W+12>>2],V[G+32>>2]=0,Z=~~(+p8(+(+j6(10,+ +(15-(V[Y+12>>2]|0)|0))*(+O[X>>3]+ +O[X+8>>3])))%+(V[Y+4>>2]|0))>>>0,Z=(V[Y>>2]|0)+(Z<<2)|0,K=V[Z>>2]|0;do if(!K)V[Z>>2]=G;else{while(!0){if(q7(K,X)|0?q7(K+16|0,W)|0:0)break;if(Z=V[K+32>>2]|0,K=(Z|0)==0?K:Z,!(V[K+32>>2]|0)){F=10;break}}if((F|0)==10){V[K+32>>2]=G;break}return S8(G),F=K,F|0}while(0);return F=Y+8|0,V[F>>2]=(V[F>>2]|0)+1,F=G,F|0}function WG(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0;if(Z=~~(+p8(+(+j6(10,+ +(15-(V[Y+12>>2]|0)|0))*(+O[X>>3]+ +O[X+8>>3])))%+(V[Y+4>>2]|0))>>>0,Z=V[(V[Y>>2]|0)+(Z<<2)>>2]|0,!Z)return W=0,W|0;if(!W){Y=Z;while(!0){if(q7(Y,X)|0){K=10;break}if(Y=V[Y+32>>2]|0,!Y){Y=0,K=10;break}}if((K|0)==10)return Y|0}Y=Z;while(!0){if(q7(Y,X)|0?q7(Y+16|0,W)|0:0){K=10;break}if(Y=V[Y+32>>2]|0,!Y){Y=0,K=10;break}}if((K|0)==10)return Y|0;return 0}function KG(Y,X){Y=Y|0,X=X|0;var W=0;if(W=~~(+p8(+(+j6(10,+ +(15-(V[Y+12>>2]|0)|0))*(+O[X>>3]+ +O[X+8>>3])))%+(V[Y+4>>2]|0))>>>0,Y=V[(V[Y>>2]|0)+(W<<2)>>2]|0,!Y)return W=0,W|0;while(!0){if(q7(Y,X)|0){X=5;break}if(Y=V[Y+32>>2]|0,!Y){Y=0,X=5;break}}if((X|0)==5)return Y|0;return 0}function JG(){return 27904}function PY(Y){return Y=+Y,~~+D5(+Y)|0}function h0(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0,x=0,y=0,$=0,_=0,k=0,E=0,a=0;a=P,P=P+16|0,H=a;do if(Y>>>0<245){if(D=Y>>>0<11?16:Y+11&-8,Y=D>>>3,R=V[6977]|0,W=R>>>Y,W&3|0){if(X=(W&1^1)+Y|0,Y=27948+(X<<1<<2)|0,W=Y+8|0,K=V[W>>2]|0,Z=K+8|0,G=V[Z>>2]|0,(G|0)==(Y|0))V[6977]=R&~(1<<X);else V[G+12>>2]=Y,V[W>>2]=G;return E=X<<3,V[K+4>>2]=E|3,E=K+E+4|0,V[E>>2]=V[E>>2]|1,E=Z,P=a,E|0}if(C=V[6979]|0,D>>>0>C>>>0){if(W|0){if(X=2<<Y,X=W<<Y&(X|0-X),X=(X&0-X)+-1|0,z=X>>>12&16,X=X>>>z,W=X>>>5&8,X=X>>>W,G=X>>>2&4,X=X>>>G,Y=X>>>1&2,X=X>>>Y,K=X>>>1&1,K=(W|z|G|Y|K)+(X>>>K)|0,X=27948+(K<<1<<2)|0,Y=X+8|0,G=V[Y>>2]|0,z=G+8|0,W=V[z>>2]|0,(W|0)==(X|0))Y=R&~(1<<K),V[6977]=Y;else V[W+12>>2]=X,V[Y>>2]=W,Y=R;if(E=K<<3,F=E-D|0,V[G+4>>2]=D|3,Z=G+D|0,V[Z+4>>2]=F|1,V[G+E>>2]=F,C|0){if(K=V[6982]|0,X=C>>>3,W=27948+(X<<1<<2)|0,X=1<<X,!(Y&X))V[6977]=Y|X,X=W,Y=W+8|0;else Y=W+8|0,X=V[Y>>2]|0;V[Y>>2]=K,V[X+12>>2]=K,V[K+8>>2]=X,V[K+12>>2]=W}return V[6979]=F,V[6982]=Z,E=z,P=a,E|0}if(G=V[6978]|0,G){W=(G&0-G)+-1|0,Z=W>>>12&16,W=W>>>Z,K=W>>>5&8,W=W>>>K,F=W>>>2&4,W=W>>>F,z=W>>>1&2,W=W>>>z,M=W>>>1&1,M=V[28212+((K|Z|F|z|M)+(W>>>M)<<2)>>2]|0,W=M,z=M,M=(V[M+4>>2]&-8)-D|0;while(!0){if(Y=V[W+16>>2]|0,!Y){if(Y=V[W+20>>2]|0,!Y)break}F=(V[Y+4>>2]&-8)-D|0,Z=F>>>0<M>>>0,W=Y,z=Z?Y:z,M=Z?F:M}if(F=z+D|0,F>>>0>z>>>0){Z=V[z+24>>2]|0,X=V[z+12>>2]|0;do if((X|0)==(z|0)){if(Y=z+20|0,X=V[Y>>2]|0,!X){if(Y=z+16|0,X=V[Y>>2]|0,!X){W=0;break}}while(!0)if(K=X+20|0,W=V[K>>2]|0,!W)if(K=X+16|0,W=V[K>>2]|0,!W)break;else X=W,Y=K;else X=W,Y=K;V[Y>>2]=0,W=X}else W=V[z+8>>2]|0,V[W+12>>2]=X,V[X+8>>2]=W,W=X;while(0);do if(Z|0){if(X=V[z+28>>2]|0,Y=28212+(X<<2)|0,(z|0)==(V[Y>>2]|0)){if(V[Y>>2]=W,!W){V[6978]=G&~(1<<X);break}}else if(E=Z+16|0,V[((V[E>>2]|0)==(z|0)?E:Z+20|0)>>2]=W,!W)break;if(V[W+24>>2]=Z,X=V[z+16>>2]|0,X|0)V[W+16>>2]=X,V[X+24>>2]=W;if(X=V[z+20>>2]|0,X|0)V[W+20>>2]=X,V[X+24>>2]=W}while(0);if(M>>>0<16)E=M+D|0,V[z+4>>2]=E|3,E=z+E+4|0,V[E>>2]=V[E>>2]|1;else{if(V[z+4>>2]=D|3,V[F+4>>2]=M|1,V[F+M>>2]=M,C|0){if(K=V[6982]|0,X=C>>>3,W=27948+(X<<1<<2)|0,X=1<<X,!(X&R))V[6977]=X|R,X=W,Y=W+8|0;else Y=W+8|0,X=V[Y>>2]|0;V[Y>>2]=K,V[X+12>>2]=K,V[K+8>>2]=X,V[K+12>>2]=W}V[6979]=M,V[6982]=F}return E=z+8|0,P=a,E|0}else R=D}else R=D}else R=D}else if(Y>>>0<=4294967231)if(Y=Y+11|0,D=Y&-8,K=V[6978]|0,K){if(Z=0-D|0,Y=Y>>>8,Y)if(D>>>0>16777215)M=31;else R=(Y+1048320|0)>>>16&8,x=Y<<R,z=(x+520192|0)>>>16&4,x=x<<z,M=(x+245760|0)>>>16&2,M=14-(z|R|M)+(x<<M>>>15)|0,M=D>>>(M+7|0)&1|M<<1;else M=0;W=V[28212+(M<<2)>>2]|0;Y:do if(!W)W=0,Y=0,x=61;else{Y=0,z=D<<((M|0)==31?0:25-(M>>>1)|0),G=0;while(!0){if(F=(V[W+4>>2]&-8)-D|0,F>>>0<Z>>>0)if(!F){Y=W,Z=0,x=65;break Y}else Y=W,Z=F;if(x=V[W+20>>2]|0,W=V[W+16+(z>>>31<<2)>>2]|0,G=(x|0)==0|(x|0)==(W|0)?G:x,!W){W=G,x=61;break}else z=z<<1}}while(0);if((x|0)==61){if((W|0)==0&(Y|0)==0){if(Y=2<<M,Y=(Y|0-Y)&K,!Y){R=D;break}R=(Y&0-Y)+-1|0,F=R>>>12&16,R=R>>>F,G=R>>>5&8,R=R>>>G,z=R>>>2&4,R=R>>>z,M=R>>>1&2,R=R>>>M,W=R>>>1&1,Y=0,W=V[28212+((G|F|z|M|W)+(R>>>W)<<2)>>2]|0}if(!W)z=Y,F=Z;else x=65}if((x|0)==65){G=W;while(!0){if(R=(V[G+4>>2]&-8)-D|0,W=R>>>0<Z>>>0,Z=W?R:Z,Y=W?G:Y,W=V[G+16>>2]|0,!W)W=V[G+20>>2]|0;if(!W){z=Y,F=Z;break}else G=W}}if(((z|0)!=0?F>>>0<((V[6979]|0)-D|0)>>>0:0)?(C=z+D|0,C>>>0>z>>>0):0){G=V[z+24>>2]|0,X=V[z+12>>2]|0;do if((X|0)==(z|0)){if(Y=z+20|0,X=V[Y>>2]|0,!X){if(Y=z+16|0,X=V[Y>>2]|0,!X){X=0;break}}while(!0)if(Z=X+20|0,W=V[Z>>2]|0,!W)if(Z=X+16|0,W=V[Z>>2]|0,!W)break;else X=W,Y=Z;else X=W,Y=Z;V[Y>>2]=0}else E=V[z+8>>2]|0,V[E+12>>2]=X,V[X+8>>2]=E;while(0);do if(G){if(Y=V[z+28>>2]|0,W=28212+(Y<<2)|0,(z|0)==(V[W>>2]|0)){if(V[W>>2]=X,!X){K=K&~(1<<Y),V[6978]=K;break}}else if(E=G+16|0,V[((V[E>>2]|0)==(z|0)?E:G+20|0)>>2]=X,!X)break;if(V[X+24>>2]=G,Y=V[z+16>>2]|0,Y|0)V[X+16>>2]=Y,V[Y+24>>2]=X;if(Y=V[z+20>>2]|0,Y)V[X+20>>2]=Y,V[Y+24>>2]=X}while(0);Y:do if(F>>>0<16)E=F+D|0,V[z+4>>2]=E|3,E=z+E+4|0,V[E>>2]=V[E>>2]|1;else{if(V[z+4>>2]=D|3,V[C+4>>2]=F|1,V[C+F>>2]=F,X=F>>>3,F>>>0<256){if(W=27948+(X<<1<<2)|0,Y=V[6977]|0,X=1<<X,!(Y&X))V[6977]=Y|X,X=W,Y=W+8|0;else Y=W+8|0,X=V[Y>>2]|0;V[Y>>2]=C,V[X+12>>2]=C,V[C+8>>2]=X,V[C+12>>2]=W;break}if(X=F>>>8,X)if(F>>>0>16777215)W=31;else k=(X+1048320|0)>>>16&8,E=X<<k,_=(E+520192|0)>>>16&4,E=E<<_,W=(E+245760|0)>>>16&2,W=14-(_|k|W)+(E<<W>>>15)|0,W=F>>>(W+7|0)&1|W<<1;else W=0;if(X=28212+(W<<2)|0,V[C+28>>2]=W,Y=C+16|0,V[Y+4>>2]=0,V[Y>>2]=0,Y=1<<W,!(K&Y)){V[6978]=K|Y,V[X>>2]=C,V[C+24>>2]=X,V[C+12>>2]=C,V[C+8>>2]=C;break}X=V[X>>2]|0;V:do if((V[X+4>>2]&-8|0)!=(F|0)){K=F<<((W|0)==31?0:25-(W>>>1)|0);while(!0){if(W=X+16+(K>>>31<<2)|0,Y=V[W>>2]|0,!Y)break;if((V[Y+4>>2]&-8|0)==(F|0)){X=Y;break V}else K=K<<1,X=Y}V[W>>2]=C,V[C+24>>2]=X,V[C+12>>2]=C,V[C+8>>2]=C;break Y}while(0);k=X+8|0,E=V[k>>2]|0,V[E+12>>2]=C,V[k>>2]=C,V[C+8>>2]=E,V[C+12>>2]=X,V[C+24>>2]=0}while(0);return E=z+8|0,P=a,E|0}else R=D}else R=D;else R=-1;while(0);if(W=V[6979]|0,W>>>0>=R>>>0){if(X=W-R|0,Y=V[6982]|0,X>>>0>15)E=Y+R|0,V[6982]=E,V[6979]=X,V[E+4>>2]=X|1,V[Y+W>>2]=X,V[Y+4>>2]=R|3;else V[6979]=0,V[6982]=0,V[Y+4>>2]=W|3,E=Y+W+4|0,V[E>>2]=V[E>>2]|1;return E=Y+8|0,P=a,E|0}if(F=V[6980]|0,F>>>0>R>>>0)return _=F-R|0,V[6980]=_,E=V[6983]|0,k=E+R|0,V[6983]=k,V[k+4>>2]=_|1,V[E+4>>2]=R|3,E=E+8|0,P=a,E|0;if(!(V[7095]|0))V[7097]=4096,V[7096]=4096,V[7098]=-1,V[7099]=-1,V[7100]=0,V[7088]=0,V[7095]=H&-16^1431655768,Y=4096;else Y=V[7097]|0;if(z=R+48|0,M=R+47|0,G=Y+M|0,Z=0-Y|0,D=G&Z,D>>>0<=R>>>0)return E=0,P=a,E|0;if(Y=V[7087]|0,Y|0?(C=V[7085]|0,H=C+D|0,H>>>0<=C>>>0|H>>>0>Y>>>0):0)return E=0,P=a,E|0;Y:do if(!(V[7088]&4)){W=V[6983]|0;V:do if(W){K=28356;while(!0){if(H=V[K>>2]|0,H>>>0<=W>>>0?(H+(V[K+4>>2]|0)|0)>>>0>W>>>0:0)break;if(Y=V[K+8>>2]|0,!Y){x=128;break V}else K=Y}if(X=G-F&Z,X>>>0<2147483647)if(Y=IY(X|0)|0,(Y|0)==((V[K>>2]|0)+(V[K+4>>2]|0)|0)){if((Y|0)!=-1){F=X,G=Y,x=145;break Y}}else K=Y,x=136;else X=0}else x=128;while(0);do if((x|0)==128)if(W=IY(0)|0,(W|0)!=-1?(X=W,L=V[7096]|0,j=L+-1|0,X=((j&X|0)==0?0:(j+X&0-L)-X|0)+D|0,L=V[7085]|0,j=X+L|0,X>>>0>R>>>0&X>>>0<2147483647):0){if(H=V[7087]|0,H|0?j>>>0<=L>>>0|j>>>0>H>>>0:0){X=0;break}if(Y=IY(X|0)|0,(Y|0)==(W|0)){F=X,G=W,x=145;break Y}else K=Y,x=136}else X=0;while(0);do if((x|0)==136){if(W=0-X|0,!(z>>>0>X>>>0&(X>>>0<2147483647&(K|0)!=-1)))if((K|0)==-1){X=0;break}else{F=X,G=K,x=145;break Y}if(Y=V[7097]|0,Y=M-X+Y&0-Y,Y>>>0>=2147483647){F=X,G=K,x=145;break Y}if((IY(Y|0)|0)==-1){IY(W|0)|0,X=0;break}else{F=Y+X|0,G=K,x=145;break Y}}while(0);V[7088]=V[7088]|4,x=143}else X=0,x=143;while(0);if(((x|0)==143?D>>>0<2147483647:0)?(_=IY(D|0)|0,j=IY(0)|0,y=j-_|0,$=y>>>0>(R+40|0)>>>0,!((_|0)==-1|$^1|_>>>0<j>>>0&((_|0)!=-1&(j|0)!=-1)^1)):0)F=$?y:X,G=_,x=145;if((x|0)==145){if(X=(V[7085]|0)+F|0,V[7085]=X,X>>>0>(V[7086]|0)>>>0)V[7086]=X;M=V[6983]|0;Y:do if(M){X=28356;while(!0){if(Y=V[X>>2]|0,W=V[X+4>>2]|0,(G|0)==(Y+W|0)){x=154;break}if(K=V[X+8>>2]|0,!K)break;else X=K}if(((x|0)==154?(k=X+4|0,(V[X+12>>2]&8|0)==0):0)?G>>>0>M>>>0&Y>>>0<=M>>>0:0){V[k>>2]=W+F,E=(V[6980]|0)+F|0,_=M+8|0,_=(_&7|0)==0?0:0-_&7,k=M+_|0,_=E-_|0,V[6983]=k,V[6980]=_,V[k+4>>2]=_|1,V[M+E+4>>2]=40,V[6984]=V[7099];break}if(G>>>0<(V[6981]|0)>>>0)V[6981]=G;W=G+F|0,X=28356;while(!0){if((V[X>>2]|0)==(W|0)){x=162;break}if(Y=V[X+8>>2]|0,!Y)break;else X=Y}if((x|0)==162?(V[X+12>>2]&8|0)==0:0){V[X>>2]=G,C=X+4|0,V[C>>2]=(V[C>>2]|0)+F,C=G+8|0,C=G+((C&7|0)==0?0:0-C&7)|0,X=W+8|0,X=W+((X&7|0)==0?0:0-X&7)|0,D=C+R|0,z=X-C-R|0,V[C+4>>2]=R|3;V:do if((M|0)==(X|0))E=(V[6980]|0)+z|0,V[6980]=E,V[6983]=D,V[D+4>>2]=E|1;else{if((V[6982]|0)==(X|0)){E=(V[6979]|0)+z|0,V[6979]=E,V[6982]=D,V[D+4>>2]=E|1,V[D+E>>2]=E;break}if(Y=V[X+4>>2]|0,(Y&3|0)==1){F=Y&-8,K=Y>>>3;X:do if(Y>>>0<256)if(Y=V[X+8>>2]|0,W=V[X+12>>2]|0,(W|0)==(Y|0)){V[6977]=V[6977]&~(1<<K);break}else{V[Y+12>>2]=W,V[W+8>>2]=Y;break}else{G=V[X+24>>2]|0,Y=V[X+12>>2]|0;do if((Y|0)==(X|0)){if(W=X+16|0,K=W+4|0,Y=V[K>>2]|0,!Y){if(Y=V[W>>2]|0,!Y){Y=0;break}}else W=K;while(!0)if(Z=Y+20|0,K=V[Z>>2]|0,!K)if(Z=Y+16|0,K=V[Z>>2]|0,!K)break;else Y=K,W=Z;else Y=K,W=Z;V[W>>2]=0}else E=V[X+8>>2]|0,V[E+12>>2]=Y,V[Y+8>>2]=E;while(0);if(!G)break;W=V[X+28>>2]|0,K=28212+(W<<2)|0;do if((V[K>>2]|0)!=(X|0)){if(E=G+16|0,V[((V[E>>2]|0)==(X|0)?E:G+20|0)>>2]=Y,!Y)break X}else{if(V[K>>2]=Y,Y|0)break;V[6978]=V[6978]&~(1<<W);break X}while(0);if(V[Y+24>>2]=G,W=X+16|0,K=V[W>>2]|0,K|0)V[Y+16>>2]=K,V[K+24>>2]=Y;if(W=V[W+4>>2]|0,!W)break;V[Y+20>>2]=W,V[W+24>>2]=Y}while(0);X=X+F|0,Z=F+z|0}else Z=z;if(X=X+4|0,V[X>>2]=V[X>>2]&-2,V[D+4>>2]=Z|1,V[D+Z>>2]=Z,X=Z>>>3,Z>>>0<256){if(W=27948+(X<<1<<2)|0,Y=V[6977]|0,X=1<<X,!(Y&X))V[6977]=Y|X,X=W,Y=W+8|0;else Y=W+8|0,X=V[Y>>2]|0;V[Y>>2]=D,V[X+12>>2]=D,V[D+8>>2]=X,V[D+12>>2]=W;break}X=Z>>>8;do if(!X)K=0;else{if(Z>>>0>16777215){K=31;break}k=(X+1048320|0)>>>16&8,E=X<<k,_=(E+520192|0)>>>16&4,E=E<<_,K=(E+245760|0)>>>16&2,K=14-(_|k|K)+(E<<K>>>15)|0,K=Z>>>(K+7|0)&1|K<<1}while(0);if(X=28212+(K<<2)|0,V[D+28>>2]=K,Y=D+16|0,V[Y+4>>2]=0,V[Y>>2]=0,Y=V[6978]|0,W=1<<K,!(Y&W)){V[6978]=Y|W,V[X>>2]=D,V[D+24>>2]=X,V[D+12>>2]=D,V[D+8>>2]=D;break}X=V[X>>2]|0;X:do if((V[X+4>>2]&-8|0)!=(Z|0)){K=Z<<((K|0)==31?0:25-(K>>>1)|0);while(!0){if(W=X+16+(K>>>31<<2)|0,Y=V[W>>2]|0,!Y)break;if((V[Y+4>>2]&-8|0)==(Z|0)){X=Y;break X}else K=K<<1,X=Y}V[W>>2]=D,V[D+24>>2]=X,V[D+12>>2]=D,V[D+8>>2]=D;break V}while(0);k=X+8|0,E=V[k>>2]|0,V[E+12>>2]=D,V[k>>2]=D,V[D+8>>2]=E,V[D+12>>2]=X,V[D+24>>2]=0}while(0);return E=C+8|0,P=a,E|0}X=28356;while(!0){if(Y=V[X>>2]|0,Y>>>0<=M>>>0?(E=Y+(V[X+4>>2]|0)|0,E>>>0>M>>>0):0)break;X=V[X+8>>2]|0}Z=E+-47|0,Y=Z+8|0,Y=Z+((Y&7|0)==0?0:0-Y&7)|0,Z=M+16|0,Y=Y>>>0<Z>>>0?M:Y,X=Y+8|0,W=F+-40|0,_=G+8|0,_=(_&7|0)==0?0:0-_&7,k=G+_|0,_=W-_|0,V[6983]=k,V[6980]=_,V[k+4>>2]=_|1,V[G+W+4>>2]=40,V[6984]=V[7099],W=Y+4|0,V[W>>2]=27,V[X>>2]=V[7089],V[X+4>>2]=V[7090],V[X+8>>2]=V[7091],V[X+12>>2]=V[7092],V[7089]=G,V[7090]=F,V[7092]=0,V[7091]=X,X=Y+24|0;do k=X,X=X+4|0,V[X>>2]=7;while((k+8|0)>>>0<E>>>0);if((Y|0)!=(M|0)){if(G=Y-M|0,V[W>>2]=V[W>>2]&-2,V[M+4>>2]=G|1,V[Y>>2]=G,X=G>>>3,G>>>0<256){if(W=27948+(X<<1<<2)|0,Y=V[6977]|0,X=1<<X,!(Y&X))V[6977]=Y|X,X=W,Y=W+8|0;else Y=W+8|0,X=V[Y>>2]|0;V[Y>>2]=M,V[X+12>>2]=M,V[M+8>>2]=X,V[M+12>>2]=W;break}if(X=G>>>8,X)if(G>>>0>16777215)K=31;else k=(X+1048320|0)>>>16&8,E=X<<k,_=(E+520192|0)>>>16&4,E=E<<_,K=(E+245760|0)>>>16&2,K=14-(_|k|K)+(E<<K>>>15)|0,K=G>>>(K+7|0)&1|K<<1;else K=0;if(W=28212+(K<<2)|0,V[M+28>>2]=K,V[M+20>>2]=0,V[Z>>2]=0,X=V[6978]|0,Y=1<<K,!(X&Y)){V[6978]=X|Y,V[W>>2]=M,V[M+24>>2]=W,V[M+12>>2]=M,V[M+8>>2]=M;break}X=V[W>>2]|0;V:do if((V[X+4>>2]&-8|0)!=(G|0)){K=G<<((K|0)==31?0:25-(K>>>1)|0);while(!0){if(W=X+16+(K>>>31<<2)|0,Y=V[W>>2]|0,!Y)break;if((V[Y+4>>2]&-8|0)==(G|0)){X=Y;break V}else K=K<<1,X=Y}V[W>>2]=M,V[M+24>>2]=X,V[M+12>>2]=M,V[M+8>>2]=M;break Y}while(0);k=X+8|0,E=V[k>>2]|0,V[E+12>>2]=M,V[k>>2]=M,V[M+8>>2]=E,V[M+12>>2]=X,V[M+24>>2]=0}}else{if(E=V[6981]|0,(E|0)==0|G>>>0<E>>>0)V[6981]=G;V[7089]=G,V[7090]=F,V[7092]=0,V[6986]=V[7095],V[6985]=-1,V[6990]=27948,V[6989]=27948,V[6992]=27956,V[6991]=27956,V[6994]=27964,V[6993]=27964,V[6996]=27972,V[6995]=27972,V[6998]=27980,V[6997]=27980,V[7000]=27988,V[6999]=27988,V[7002]=27996,V[7001]=27996,V[7004]=28004,V[7003]=28004,V[7006]=28012,V[7005]=28012,V[7008]=28020,V[7007]=28020,V[7010]=28028,V[7009]=28028,V[7012]=28036,V[7011]=28036,V[7014]=28044,V[7013]=28044,V[7016]=28052,V[7015]=28052,V[7018]=28060,V[7017]=28060,V[7020]=28068,V[7019]=28068,V[7022]=28076,V[7021]=28076,V[7024]=28084,V[7023]=28084,V[7026]=28092,V[7025]=28092,V[7028]=28100,V[7027]=28100,V[7030]=28108,V[7029]=28108,V[7032]=28116,V[7031]=28116,V[7034]=28124,V[7033]=28124,V[7036]=28132,V[7035]=28132,V[7038]=28140,V[7037]=28140,V[7040]=28148,V[7039]=28148,V[7042]=28156,V[7041]=28156,V[7044]=28164,V[7043]=28164,V[7046]=28172,V[7045]=28172,V[7048]=28180,V[7047]=28180,V[7050]=28188,V[7049]=28188,V[7052]=28196,V[7051]=28196,E=F+-40|0,_=G+8|0,_=(_&7|0)==0?0:0-_&7,k=G+_|0,_=E-_|0,V[6983]=k,V[6980]=_,V[k+4>>2]=_|1,V[G+E+4>>2]=40,V[6984]=V[7099]}while(0);if(X=V[6980]|0,X>>>0>R>>>0)return _=X-R|0,V[6980]=_,E=V[6983]|0,k=E+R|0,V[6983]=k,V[k+4>>2]=_|1,V[E+4>>2]=R|3,E=E+8|0,P=a,E|0}return E=JG()|0,V[E>>2]=12,E=0,P=a,E|0}function S8(Y){Y=Y|0;var X=0,W=0,K=0,Z=0,G=0,F=0,z=0,M=0;if(!Y)return;W=Y+-8|0,Z=V[6981]|0,Y=V[Y+-4>>2]|0,X=Y&-8,M=W+X|0;do if(!(Y&1)){if(K=V[W>>2]|0,!(Y&3))return;if(F=W+(0-K)|0,G=K+X|0,F>>>0<Z>>>0)return;if((V[6982]|0)==(F|0)){if(Y=M+4|0,X=V[Y>>2]|0,(X&3|0)!=3){z=F,X=G;break}V[6979]=G,V[Y>>2]=X&-2,V[F+4>>2]=G|1,V[F+G>>2]=G;return}if(W=K>>>3,K>>>0<256)if(Y=V[F+8>>2]|0,X=V[F+12>>2]|0,(X|0)==(Y|0)){V[6977]=V[6977]&~(1<<W),z=F,X=G;break}else{V[Y+12>>2]=X,V[X+8>>2]=Y,z=F,X=G;break}Z=V[F+24>>2]|0,Y=V[F+12>>2]|0;do if((Y|0)==(F|0)){if(X=F+16|0,W=X+4|0,Y=V[W>>2]|0,!Y){if(Y=V[X>>2]|0,!Y){Y=0;break}}else X=W;while(!0)if(K=Y+20|0,W=V[K>>2]|0,!W)if(K=Y+16|0,W=V[K>>2]|0,!W)break;else Y=W,X=K;else Y=W,X=K;V[X>>2]=0}else z=V[F+8>>2]|0,V[z+12>>2]=Y,V[Y+8>>2]=z;while(0);if(Z){if(X=V[F+28>>2]|0,W=28212+(X<<2)|0,(V[W>>2]|0)==(F|0)){if(V[W>>2]=Y,!Y){V[6978]=V[6978]&~(1<<X),z=F,X=G;break}}else if(z=Z+16|0,V[((V[z>>2]|0)==(F|0)?z:Z+20|0)>>2]=Y,!Y){z=F,X=G;break}if(V[Y+24>>2]=Z,X=F+16|0,W=V[X>>2]|0,W|0)V[Y+16>>2]=W,V[W+24>>2]=Y;if(X=V[X+4>>2]|0,X)V[Y+20>>2]=X,V[X+24>>2]=Y,z=F,X=G;else z=F,X=G}else z=F,X=G}else z=W,F=W;while(0);if(F>>>0>=M>>>0)return;if(Y=M+4|0,K=V[Y>>2]|0,!(K&1))return;if(!(K&2)){if((V[6983]|0)==(M|0)){if(M=(V[6980]|0)+X|0,V[6980]=M,V[6983]=z,V[z+4>>2]=M|1,(z|0)!=(V[6982]|0))return;V[6982]=0,V[6979]=0;return}if((V[6982]|0)==(M|0)){M=(V[6979]|0)+X|0,V[6979]=M,V[6982]=F,V[z+4>>2]=M|1,V[F+M>>2]=M;return}Z=(K&-8)+X|0,W=K>>>3;do if(K>>>0<256)if(X=V[M+8>>2]|0,Y=V[M+12>>2]|0,(Y|0)==(X|0)){V[6977]=V[6977]&~(1<<W);break}else{V[X+12>>2]=Y,V[Y+8>>2]=X;break}else{G=V[M+24>>2]|0,Y=V[M+12>>2]|0;do if((Y|0)==(M|0)){if(X=M+16|0,W=X+4|0,Y=V[W>>2]|0,!Y){if(Y=V[X>>2]|0,!Y){W=0;break}}else X=W;while(!0)if(K=Y+20|0,W=V[K>>2]|0,!W)if(K=Y+16|0,W=V[K>>2]|0,!W)break;else Y=W,X=K;else Y=W,X=K;V[X>>2]=0,W=Y}else W=V[M+8>>2]|0,V[W+12>>2]=Y,V[Y+8>>2]=W,W=Y;while(0);if(G|0){if(Y=V[M+28>>2]|0,X=28212+(Y<<2)|0,(V[X>>2]|0)==(M|0)){if(V[X>>2]=W,!W){V[6978]=V[6978]&~(1<<Y);break}}else if(K=G+16|0,V[((V[K>>2]|0)==(M|0)?K:G+20|0)>>2]=W,!W)break;if(V[W+24>>2]=G,Y=M+16|0,X=V[Y>>2]|0,X|0)V[W+16>>2]=X,V[X+24>>2]=W;if(Y=V[Y+4>>2]|0,Y|0)V[W+20>>2]=Y,V[Y+24>>2]=W}}while(0);if(V[z+4>>2]=Z|1,V[F+Z>>2]=Z,(z|0)==(V[6982]|0)){V[6979]=Z;return}}else V[Y>>2]=K&-2,V[z+4>>2]=X|1,V[F+X>>2]=X,Z=X;if(Y=Z>>>3,Z>>>0<256){if(W=27948+(Y<<1<<2)|0,X=V[6977]|0,Y=1<<Y,!(X&Y))V[6977]=X|Y,Y=W,X=W+8|0;else X=W+8|0,Y=V[X>>2]|0;V[X>>2]=z,V[Y+12>>2]=z,V[z+8>>2]=Y,V[z+12>>2]=W;return}if(Y=Z>>>8,Y)if(Z>>>0>16777215)K=31;else F=(Y+1048320|0)>>>16&8,M=Y<<F,G=(M+520192|0)>>>16&4,M=M<<G,K=(M+245760|0)>>>16&2,K=14-(G|F|K)+(M<<K>>>15)|0,K=Z>>>(K+7|0)&1|K<<1;else K=0;Y=28212+(K<<2)|0,V[z+28>>2]=K,V[z+20>>2]=0,V[z+16>>2]=0,X=V[6978]|0,W=1<<K;Y:do if(!(X&W))V[6978]=X|W,V[Y>>2]=z,V[z+24>>2]=Y,V[z+12>>2]=z,V[z+8>>2]=z;else{Y=V[Y>>2]|0;V:do if((V[Y+4>>2]&-8|0)!=(Z|0)){K=Z<<((K|0)==31?0:25-(K>>>1)|0);while(!0){if(W=Y+16+(K>>>31<<2)|0,X=V[W>>2]|0,!X)break;if((V[X+4>>2]&-8|0)==(Z|0)){Y=X;break V}else K=K<<1,Y=X}V[W>>2]=z,V[z+24>>2]=Y,V[z+12>>2]=z,V[z+8>>2]=z;break Y}while(0);F=Y+8|0,M=V[F>>2]|0,V[M+12>>2]=z,V[F>>2]=z,V[z+8>>2]=M,V[z+12>>2]=Y,V[z+24>>2]=0}while(0);if(M=(V[6985]|0)+-1|0,V[6985]=M,M|0)return;Y=28364;while(!0)if(Y=V[Y>>2]|0,!Y)break;else Y=Y+8|0;V[6985]=-1;return}function Y0(Y,X){Y=Y|0,X=X|0;var W=0;if(Y){if(W=v0(X,Y)|0,(X|Y)>>>0>65535)W=((W>>>0)/(Y>>>0)|0|0)==(X|0)?W:-1}else W=0;if(Y=h0(W)|0,!Y)return Y|0;if(!(V[Y+-4>>2]&3))return Y|0;return RY(Y|0,0,W|0)|0,Y|0}function O8(Y,X,W,K){return Y=Y|0,X=X|0,W=W|0,K=K|0,W=Y+W>>>0,(E8(X+K+(W>>>0<Y>>>0|0)>>>0|0),W|0)|0}function h6(Y,X,W,K){return Y=Y|0,X=X|0,W=W|0,K=K|0,K=X-K-(W>>>0>Y>>>0|0)>>>0,(E8(K|0),Y-W>>>0|0)|0}function U5(Y){return Y=Y|0,(Y?31-(i0(Y^Y-1)|0)|0:32)|0}function IX(Y,X,W,K,Z){Y=Y|0,X=X|0,W=W|0,K=K|0,Z=Z|0;var G=0,F=0,z=0,M=0,D=0,C=0,R=0,H=0,L=0,j=0;if(C=Y,M=X,D=M,F=W,H=K,z=H,!D)if(G=(Z|0)!=0,!z){if(G)V[Z>>2]=(C>>>0)%(F>>>0),V[Z+4>>2]=0;return H=0,Z=(C>>>0)/(F>>>0)>>>0,(E8(H|0),Z)|0}else{if(!G)return H=0,Z=0,(E8(H|0),Z)|0;return V[Z>>2]=Y|0,V[Z+4>>2]=X&0,H=0,Z=0,(E8(H|0),Z)|0}G=(z|0)==0;do if(F){if(!G){if(G=(i0(z|0)|0)-(i0(D|0)|0)|0,G>>>0<=31){R=G+1|0,z=31-G|0,X=G-31>>31,F=R,Y=C>>>(R>>>0)&X|D<<z,X=D>>>(R>>>0)&X,G=0,z=C<<z;break}if(!Z)return H=0,Z=0,(E8(H|0),Z)|0;return V[Z>>2]=Y|0,V[Z+4>>2]=M|X&0,H=0,Z=0,(E8(H|0),Z)|0}if(G=F-1|0,G&F|0){z=(i0(F|0)|0)+33-(i0(D|0)|0)|0,j=64-z|0,R=32-z|0,M=R>>31,L=z-32|0,X=L>>31,F=z,Y=R-1>>31&D>>>(L>>>0)|(D<<R|C>>>(z>>>0))&X,X=X&D>>>(z>>>0),G=C<<j&M,z=(D<<j|C>>>(L>>>0))&M|C<<R&z-33>>31;break}if(Z|0)V[Z>>2]=G&C,V[Z+4>>2]=0;if((F|0)==1)return L=M|X&0,j=Y|0|0,(E8(L|0),j)|0;else return j=U5(F|0)|0,L=D>>>(j>>>0)|0,j=D<<32-j|C>>>(j>>>0)|0,(E8(L|0),j)|0}else{if(G){if(Z|0)V[Z>>2]=(D>>>0)%(F>>>0),V[Z+4>>2]=0;return L=0,j=(D>>>0)/(F>>>0)>>>0,(E8(L|0),j)|0}if(!C){if(Z|0)V[Z>>2]=0,V[Z+4>>2]=(D>>>0)%(z>>>0);return L=0,j=(D>>>0)/(z>>>0)>>>0,(E8(L|0),j)|0}if(G=z-1|0,!(G&z)){if(Z|0)V[Z>>2]=Y|0,V[Z+4>>2]=G&D|X&0;return L=0,j=D>>>((U5(z|0)|0)>>>0),(E8(L|0),j)|0}if(G=(i0(z|0)|0)-(i0(D|0)|0)|0,G>>>0<=30){X=G+1|0,z=31-G|0,F=X,Y=D<<z|C>>>(X>>>0),X=D>>>(X>>>0),G=0,z=C<<z;break}if(!Z)return L=0,j=0,(E8(L|0),j)|0;return V[Z>>2]=Y|0,V[Z+4>>2]=M|X&0,L=0,j=0,(E8(L|0),j)|0}while(0);if(!F)D=z,M=0,z=0;else{R=W|0|0,C=H|K&0,D=O8(R|0,C|0,-1,-1)|0,W=I()|0,M=z,z=0;do K=M,M=G>>>31|M<<1,G=z|G<<1,K=Y<<1|K>>>31|0,H=Y>>>31|X<<1|0,h6(D|0,W|0,K|0,H|0)|0,j=I()|0,L=j>>31|((j|0)<0?-1:0)<<1,z=L&1,Y=h6(K|0,H|0,L&R|0,(((j|0)<0?-1:0)>>31|((j|0)<0?-1:0)<<1)&C|0)|0,X=I()|0,F=F-1|0;while((F|0)!=0);D=M,M=0}if(F=0,Z|0)V[Z>>2]=Y,V[Z+4>>2]=X;return L=(G|0)>>>31|(D|F)<<1|(F<<1|G>>>31)&0|M,j=(G<<1|0)&-2|z,(E8(L|0),j)|0}function AY(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,M=0,D=0;return D=X>>31|((X|0)<0?-1:0)<<1,M=((X|0)<0?-1:0)>>31|((X|0)<0?-1:0)<<1,G=K>>31|((K|0)<0?-1:0)<<1,Z=((K|0)<0?-1:0)>>31|((K|0)<0?-1:0)<<1,z=h6(D^Y|0,M^X|0,D|0,M|0)|0,F=I()|0,Y=G^D,X=Z^M,h6((IX(z,F,h6(G^W|0,Z^K|0,G|0,Z|0)|0,I()|0,0)|0)^Y|0,(I()|0)^X|0,Y|0,X|0)|0}function ZG(Y,X){Y=Y|0,X=X|0;var W=0,K=0,Z=0,G=0;return G=Y&65535,Z=X&65535,W=v0(Z,G)|0,K=Y>>>16,Y=(W>>>16)+(v0(Z,K)|0)|0,Z=X>>>16,X=v0(Z,G)|0,(E8((Y>>>16)+(v0(Z,K)|0)+(((Y&65535)+X|0)>>>16)|0),Y+X<<16|W&65535|0)|0}function x6(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0;return Z=Y,G=W,W=ZG(Z,G)|0,Y=I()|0,(E8((v0(X,G)|0)+(v0(K,Z)|0)+Y|Y&0|0),W|0|0)|0}function M7(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0,F=0,z=0,M=0,D=0;return Z=P,P=P+16|0,z=Z|0,F=X>>31|((X|0)<0?-1:0)<<1,G=((X|0)<0?-1:0)>>31|((X|0)<0?-1:0)<<1,D=K>>31|((K|0)<0?-1:0)<<1,M=((K|0)<0?-1:0)>>31|((K|0)<0?-1:0)<<1,Y=h6(F^Y|0,G^X|0,F|0,G|0)|0,X=I()|0,IX(Y,X,h6(D^W|0,M^K|0,D|0,M|0)|0,I()|0,z)|0,K=h6(V[z>>2]^F|0,V[z+4>>2]^G|0,F|0,G|0)|0,W=I()|0,P=Z,(E8(W|0),K)|0}function B7(Y,X,W,K){Y=Y|0,X=X|0,W=W|0,K=K|0;var Z=0,G=0;return G=P,P=P+16|0,Z=G|0,IX(Y,X,W,K,Z)|0,P=G,(E8(V[Z+4>>2]|0),V[Z>>2]|0)|0}function q5(Y,X,W){if(Y=Y|0,X=X|0,W=W|0,(W|0)<32)return E8(X>>W|0),Y>>>W|(X&(1<<W)-1)<<32-W;return E8(((X|0)<0?-1:0)|0),X>>W-32|0}function n(Y,X,W){if(Y=Y|0,X=X|0,W=W|0,(W|0)<32)return E8(X>>>W|0),Y>>>W|(X&(1<<W)-1)<<32-W;return E8(0),X>>>W-32|0}function t(Y,X,W){if(Y=Y|0,X=X|0,W=W|0,(W|0)<32)return E8(X<<W|(Y&(1<<W)-1<<32-W)>>>32-W|0),Y<<W;return E8(Y<<W-32|0),0}function M5(Y,X,W){if(Y=Y|0,X=X|0,W=W|0,X=i0(X)|0,(X|0)==32)X=X+(i0(Y)|0)|0;return E8(0),X|0}function B5(Y,X){if(Y=+Y,X=+X,Y!=Y)return+X;if(X!=X)return+Y;return+B1(+Y,+X)}function s9(Y,X){if(Y=+Y,X=+X,Y!=Y)return+X;if(X!=X)return+Y;return+tV(+Y,+X)}function n9(Y){return Y=+Y,Y>=0?+L6(Y+0.5):+G7(Y-0.5)}function D7(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0;if((W|0)>=8192)return N1(Y|0,X|0,W|0)|0,Y|0;if(G=Y|0,Z=Y+W|0,(Y&3)==(X&3)){while(Y&3){if(!W)return G|0;s[Y>>0]=s[X>>0]|0,Y=Y+1|0,X=X+1|0,W=W-1|0}W=Z&-4|0,K=W-64|0;while((Y|0)<=(K|0))V[Y>>2]=V[X>>2],V[Y+4>>2]=V[X+4>>2],V[Y+8>>2]=V[X+8>>2],V[Y+12>>2]=V[X+12>>2],V[Y+16>>2]=V[X+16>>2],V[Y+20>>2]=V[X+20>>2],V[Y+24>>2]=V[X+24>>2],V[Y+28>>2]=V[X+28>>2],V[Y+32>>2]=V[X+32>>2],V[Y+36>>2]=V[X+36>>2],V[Y+40>>2]=V[X+40>>2],V[Y+44>>2]=V[X+44>>2],V[Y+48>>2]=V[X+48>>2],V[Y+52>>2]=V[X+52>>2],V[Y+56>>2]=V[X+56>>2],V[Y+60>>2]=V[X+60>>2],Y=Y+64|0,X=X+64|0;while((Y|0)<(W|0))V[Y>>2]=V[X>>2],Y=Y+4|0,X=X+4|0}else{W=Z-4|0;while((Y|0)<(W|0))s[Y>>0]=s[X>>0]|0,s[Y+1>>0]=s[X+1>>0]|0,s[Y+2>>0]=s[X+2>>0]|0,s[Y+3>>0]=s[X+3>>0]|0,Y=Y+4|0,X=X+4|0}while((Y|0)<(Z|0))s[Y>>0]=s[X>>0]|0,Y=Y+1|0,X=X+1|0;return G|0}function RY(Y,X,W){Y=Y|0,X=X|0,W=W|0;var K=0,Z=0,G=0,F=0;if(G=Y+W|0,X=X&255,(W|0)>=67){while(Y&3)s[Y>>0]=X,Y=Y+1|0;K=G&-4|0,F=X|X<<8|X<<16|X<<24,Z=K-64|0;while((Y|0)<=(Z|0))V[Y>>2]=F,V[Y+4>>2]=F,V[Y+8>>2]=F,V[Y+12>>2]=F,V[Y+16>>2]=F,V[Y+20>>2]=F,V[Y+24>>2]=F,V[Y+28>>2]=F,V[Y+32>>2]=F,V[Y+36>>2]=F,V[Y+40>>2]=F,V[Y+44>>2]=F,V[Y+48>>2]=F,V[Y+52>>2]=F,V[Y+56>>2]=F,V[Y+60>>2]=F,Y=Y+64|0;while((Y|0)<(K|0))V[Y>>2]=F,Y=Y+4|0}while((Y|0)<(G|0))s[Y>>0]=X,Y=Y+1|0;return G-W|0}function D5(Y){return Y=+Y,Y>=0?+L6(Y+0.5):+G7(Y-0.5)}function IY(Y){Y=Y|0;var X=0,W=0,K=0;if(K=D1()|0,W=V[t6>>2]|0,X=W+Y|0,(Y|0)>0&(X|0)<(W|0)|(X|0)<0)return O1(X|0)|0,wK(12),-1;if((X|0)>(K|0)){if(!(C1(X|0)|0))return wK(12),-1}return V[t6>>2]=X,W|0}return{___divdi3:AY,___muldi3:x6,___remdi3:M7,___uremdi3:B7,_areNeighborCells:i1,_bitshift64Ashr:q5,_bitshift64Lshr:n,_bitshift64Shl:t,_calloc:Y0,_cellAreaKm2:L3,_cellAreaM2:j3,_cellAreaRads2:SX,_cellToBoundary:U7,_cellToCenterChild:dK,_cellToChildPos:C3,_cellToChildren:G3,_cellToChildrenSize:l7,_cellToLatLng:cY,_cellToLocalIj:_3,_cellToParent:UX,_cellToVertex:C0,_cellToVertexes:e3,_cellsToDirectedEdge:o1,_cellsToLinkedMultiPolygon:E1,_childPosToCell:O3,_compactCells:F3,_destroyLinkedMultiPolygon:tK,_directedEdgeToBoundary:b9,_directedEdgeToCells:Y3,_edgeLengthKm:x3,_edgeLengthM:E3,_edgeLengthRads:T3,_emscripten_replace_memory:S1,_free:S8,_getBaseCellNumber:nK,_getDirectedEdgeDestination:t1,_getDirectedEdgeOrigin:a1,_getHexagonAreaAvgKm2:oK,_getHexagonAreaAvgM2:I3,_getHexagonEdgeLengthAvgKm:w3,_getHexagonEdgeLengthAvgM:H3,_getIcosahedronFaces:lK,_getNumCells:u9,_getPentagons:NX,_getRes0Cells:h1,_getResolution:Q3,_greatCircleDistanceKm:o7,_greatCircleDistanceM:P3,_greatCircleDistanceRads:S3,_gridDisk:HK,_gridDiskDistances:LK,_gridDistance:$3,_gridPathCells:f3,_gridPathCellsSize:g3,_gridRing:H1,_gridRingUnsafe:TK,_i64Add:O8,_i64Subtract:h6,_isPentagon:Z6,_isResClassIII:q3,_isValidCell:FX,_isValidDirectedEdge:e1,_isValidVertex:VG,_latLngToCell:BX,_llvm_ctlz_i64:M5,_llvm_maxnum_f64:B5,_llvm_minnum_f64:s9,_llvm_round_f64:n9,_localIjToCell:h3,_malloc:h0,_maxFaceCount:D3,_maxGridDiskSize:w1,_maxPolygonToCellsSize:j1,_maxPolygonToCellsSizeExperimental:u3,_memcpy:D7,_memset:RY,_originToDirectedEdges:V3,_pentagonCount:N3,_polygonToCells:T1,_polygonToCellsExperimental:b3,_readInt64AsDoubleFromPointer:i3,_res0CellCount:_1,_round:D5,_sbrk:IY,_sizeOfCellBoundary:s3,_sizeOfCoordIJ:l3,_sizeOfGeoLoop:n3,_sizeOfGeoPolygon:r3,_sizeOfH3Index:p3,_sizeOfLatLng:c3,_sizeOfLinkedGeoPolygon:d3,_uncompactCells:z3,_uncompactCellsSize:U3,_vertexToLatLng:YG,establishStackSpace:I1,stackAlloc:P1,stackRestore:R1,stackSave:A1}}(Q1,G1,N6),yU=Q.___divdi3=i.___divdi3,kU=Q.___muldi3=i.___muldi3,vU=Q.___remdi3=i.___remdi3,_U=Q.___uremdi3=i.___uremdi3,hU=Q._areNeighborCells=i._areNeighborCells,$U=Q._bitshift64Ashr=i._bitshift64Ashr,gU=Q._bitshift64Lshr=i._bitshift64Lshr,fU=Q._bitshift64Shl=i._bitshift64Shl,mU=Q._calloc=i._calloc,bU=Q._cellAreaKm2=i._cellAreaKm2,uU=Q._cellAreaM2=i._cellAreaM2,pU=Q._cellAreaRads2=i._cellAreaRads2,cU=Q._cellToBoundary=i._cellToBoundary,sU=Q._cellToCenterChild=i._cellToCenterChild,nU=Q._cellToChildPos=i._cellToChildPos,rU=Q._cellToChildren=i._cellToChildren,dU=Q._cellToChildrenSize=i._cellToChildrenSize,lU=Q._cellToLatLng=i._cellToLatLng,iU=Q._cellToLocalIj=i._cellToLocalIj,oU=Q._cellToParent=i._cellToParent,aU=Q._cellToVertex=i._cellToVertex,tU=Q._cellToVertexes=i._cellToVertexes,eU=Q._cellsToDirectedEdge=i._cellsToDirectedEdge,Yq=Q._cellsToLinkedMultiPolygon=i._cellsToLinkedMultiPolygon,Vq=Q._childPosToCell=i._childPosToCell,Xq=Q._compactCells=i._compactCells,Wq=Q._destroyLinkedMultiPolygon=i._destroyLinkedMultiPolygon,Kq=Q._directedEdgeToBoundary=i._directedEdgeToBoundary,Jq=Q._directedEdgeToCells=i._directedEdgeToCells,Zq=Q._edgeLengthKm=i._edgeLengthKm,Qq=Q._edgeLengthM=i._edgeLengthM,Gq=Q._edgeLengthRads=i._edgeLengthRads,F1=Q._emscripten_replace_memory=i._emscripten_replace_memory,Fq=Q._free=i._free,zq=Q._getBaseCellNumber=i._getBaseCellNumber,Uq=Q._getDirectedEdgeDestination=i._getDirectedEdgeDestination,qq=Q._getDirectedEdgeOrigin=i._getDirectedEdgeOrigin,Mq=Q._getHexagonAreaAvgKm2=i._getHexagonAreaAvgKm2,Bq=Q._getHexagonAreaAvgM2=i._getHexagonAreaAvgM2,Dq=Q._getHexagonEdgeLengthAvgKm=i._getHexagonEdgeLengthAvgKm,Nq=Q._getHexagonEdgeLengthAvgM=i._getHexagonEdgeLengthAvgM,Cq=Q._getIcosahedronFaces=i._getIcosahedronFaces,Oq=Q._getNumCells=i._getNumCells,Sq=Q._getPentagons=i._getPentagons,Pq=Q._getRes0Cells=i._getRes0Cells,Aq=Q._getResolution=i._getResolution,Rq=Q._greatCircleDistanceKm=i._greatCircleDistanceKm,Iq=Q._greatCircleDistanceM=i._greatCircleDistanceM,wq=Q._greatCircleDistanceRads=i._greatCircleDistanceRads,Hq=Q._gridDisk=i._gridDisk,Lq=Q._gridDiskDistances=i._gridDiskDistances,jq=Q._gridDistance=i._gridDistance,Tq=Q._gridPathCells=i._gridPathCells,xq=Q._gridPathCellsSize=i._gridPathCellsSize,Eq=Q._gridRing=i._gridRing,yq=Q._gridRingUnsafe=i._gridRingUnsafe,kq=Q._i64Add=i._i64Add,vq=Q._i64Subtract=i._i64Subtract,_q=Q._isPentagon=i._isPentagon,hq=Q._isResClassIII=i._isResClassIII,$q=Q._isValidCell=i._isValidCell,gq=Q._isValidDirectedEdge=i._isValidDirectedEdge,fq=Q._isValidVertex=i._isValidVertex,mq=Q._latLngToCell=i._latLngToCell,bq=Q._llvm_ctlz_i64=i._llvm_ctlz_i64,uq=Q._llvm_maxnum_f64=i._llvm_maxnum_f64,pq=Q._llvm_minnum_f64=i._llvm_minnum_f64,cq=Q._llvm_round_f64=i._llvm_round_f64,sq=Q._localIjToCell=i._localIjToCell,nq=Q._malloc=i._malloc,rq=Q._maxFaceCount=i._maxFaceCount,dq=Q._maxGridDiskSize=i._maxGridDiskSize,lq=Q._maxPolygonToCellsSize=i._maxPolygonToCellsSize,iq=Q._maxPolygonToCellsSizeExperimental=i._maxPolygonToCellsSizeExperimental,oq=Q._memcpy=i._memcpy,aq=Q._memset=i._memset,tq=Q._originToDirectedEdges=i._originToDirectedEdges,eq=Q._pentagonCount=i._pentagonCount,YM=Q._polygonToCells=i._polygonToCells,VM=Q._polygonToCellsExperimental=i._polygonToCellsExperimental,XM=Q._readInt64AsDoubleFromPointer=i._readInt64AsDoubleFromPointer,WM=Q._res0CellCount=i._res0CellCount,KM=Q._round=i._round,JM=Q._sbrk=i._sbrk,ZM=Q._sizeOfCellBoundary=i._sizeOfCellBoundary,QM=Q._sizeOfCoordIJ=i._sizeOfCoordIJ,GM=Q._sizeOfGeoLoop=i._sizeOfGeoLoop,FM=Q._sizeOfGeoPolygon=i._sizeOfGeoPolygon,zM=Q._sizeOfH3Index=i._sizeOfH3Index,UM=Q._sizeOfLatLng=i._sizeOfLatLng,qM=Q._sizeOfLinkedGeoPolygon=i._sizeOfLinkedGeoPolygon,MM=Q._uncompactCells=i._uncompactCells,BM=Q._uncompactCellsSize=i._uncompactCellsSize,DM=Q._vertexToLatLng=i._vertexToLatLng,NM=Q.establishStackSpace=i.establishStackSpace,PK=Q.stackAlloc=i.stackAlloc,z1=Q.stackRestore=i.stackRestore,U1=Q.stackSave=i.stackSave;if(Q.asm=i,Q.cwrap=j8,Q.setValue=Y8,Q.getValue=z8,l0){if(!BK(l0))l0=S(l0);{oQ("memory initializer");var iV=function(h){if(h.byteLength)h=new Uint8Array(h);if(X6.set(h,J8),Q.memoryInitializerRequest)delete Q.memoryInitializerRequest.response;aQ("memory initializer")},AK=function(){w(l0,iV,function(){throw"could not load memory initializer "+l0})},RK=lV(l0);if(RK)iV(RK.buffer);else if(Q.memoryInitializerRequest){var IK=function(){var h=Q.memoryInitializerRequest,c=h.response;if(h.status!==200&&h.status!==0){var K8=lV(Q.memoryInitializerRequestURL);if(K8)c=K8.buffer;else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+h.status+", retrying "+l0),AK();return}}iV(c)};if(Q.memoryInitializerRequest.response)setTimeout(IK,0);else Q.memoryInitializerRequest.addEventListener("load",IK)}else AK()}}var $9;n7=function h(){if(!$9)oV();if(!$9)n7=h};function oV(h){if(h=h||B,gY>0)return;if(d0(),gY>0)return;function c(){if($9)return;if($9=!0,e)return;if(h9(),sV(),Q.onRuntimeInitialized)Q.onRuntimeInitialized();qK()}if(Q.setStatus)Q.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Q.setStatus("")},1),c()},1);else c()}Q.run=oV;function fY(h){if(Q.onAbort)Q.onAbort(h);throw h+="",T(h),v(h),e=!0,"abort("+h+"). Build with -s ASSERTIONS=1 for more info."}if(Q.abort=fY,Q.preInit){if(typeof Q.preInit=="function")Q.preInit=[Q.preInit];while(Q.preInit.length>0)Q.preInit.pop()()}return oV(),J}(typeof y0==="object"?y0:{}),L8="number",A8=L8,L9=L8,w8=L8,H8=L8,_6=L8,F8=L8,Tz=[["sizeOfH3Index",L8],["sizeOfLatLng",L8],["sizeOfCellBoundary",L8],["sizeOfGeoLoop",L8],["sizeOfGeoPolygon",L8],["sizeOfLinkedGeoPolygon",L8],["sizeOfCoordIJ",L8],["readInt64AsDoubleFromPointer",L8],["isValidCell",L9,[w8,H8]],["latLngToCell",A8,[L8,L8,_6,F8]],["cellToLatLng",A8,[w8,H8,F8]],["cellToBoundary",A8,[w8,H8,F8]],["maxGridDiskSize",A8,[L8,F8]],["gridDisk",A8,[w8,H8,L8,F8]],["gridDiskDistances",A8,[w8,H8,L8,F8,F8]],["gridRing",A8,[w8,H8,L8,F8]],["gridRingUnsafe",A8,[w8,H8,L8,F8]],["maxPolygonToCellsSize",A8,[F8,_6,L8,F8]],["polygonToCells",A8,[F8,_6,L8,F8]],["maxPolygonToCellsSizeExperimental",A8,[F8,_6,L8,F8]],["polygonToCellsExperimental",A8,[F8,_6,L8,L8,L8,F8]],["cellsToLinkedMultiPolygon",A8,[F8,L8,F8]],["destroyLinkedMultiPolygon",null,[F8]],["compactCells",A8,[F8,F8,L8,L8]],["uncompactCells",A8,[F8,L8,L8,F8,L8,_6]],["uncompactCellsSize",A8,[F8,L8,L8,_6,F8]],["isPentagon",L9,[w8,H8]],["isResClassIII",L9,[w8,H8]],["getBaseCellNumber",L8,[w8,H8]],["getResolution",L8,[w8,H8]],["maxFaceCount",A8,[w8,H8,F8]],["getIcosahedronFaces",A8,[w8,H8,F8]],["cellToParent",A8,[w8,H8,_6,F8]],["cellToChildren",A8,[w8,H8,_6,F8]],["cellToCenterChild",A8,[w8,H8,_6,F8]],["cellToChildrenSize",A8,[w8,H8,_6,F8]],["cellToChildPos",A8,[w8,H8,_6,F8]],["childPosToCell",A8,[L8,L8,w8,H8,_6,F8]],["areNeighborCells",A8,[w8,H8,w8,H8,F8]],["cellsToDirectedEdge",A8,[w8,H8,w8,H8,F8]],["getDirectedEdgeOrigin",A8,[w8,H8,F8]],["getDirectedEdgeDestination",A8,[w8,H8,F8]],["isValidDirectedEdge",L9,[w8,H8]],["directedEdgeToCells",A8,[w8,H8,F8]],["originToDirectedEdges",A8,[w8,H8,F8]],["directedEdgeToBoundary",A8,[w8,H8,F8]],["gridDistance",A8,[w8,H8,w8,H8,F8]],["gridPathCells",A8,[w8,H8,w8,H8,F8]],["gridPathCellsSize",A8,[w8,H8,w8,H8,F8]],["cellToLocalIj",A8,[w8,H8,w8,H8,L8,F8]],["localIjToCell",A8,[w8,H8,F8,L8,F8]],["getHexagonAreaAvgM2",A8,[_6,F8]],["getHexagonAreaAvgKm2",A8,[_6,F8]],["getHexagonEdgeLengthAvgM",A8,[_6,F8]],["getHexagonEdgeLengthAvgKm",A8,[_6,F8]],["greatCircleDistanceM",L8,[F8,F8]],["greatCircleDistanceKm",L8,[F8,F8]],["greatCircleDistanceRads",L8,[F8,F8]],["cellAreaM2",A8,[w8,H8,F8]],["cellAreaKm2",A8,[w8,H8,F8]],["cellAreaRads2",A8,[w8,H8,F8]],["edgeLengthM",A8,[w8,H8,F8]],["edgeLengthKm",A8,[w8,H8,F8]],["edgeLengthRads",A8,[w8,H8,F8]],["getNumCells",A8,[_6,F8]],["getRes0Cells",A8,[F8]],["res0CellCount",L8],["getPentagons",A8,[L8,F8]],["pentagonCount",L8],["cellToVertex",A8,[w8,H8,L8,F8]],["cellToVertexes",A8,[w8,H8,F8]],["vertexToLatLng",A8,[w8,H8,F8]],["isValidVertex",L9,[w8,H8]]],xz=0,Ez=1,yz=2,kz=3,vz=4,_z=5,hz=6,$z=7,gz=8,fz=9,mz=10,bz=11,uz=12,pz=13,cz=14,sz=15,m6={};m6[xz]="Success";m6[Ez]="The operation failed but a more specific error is not available";m6[yz]="Argument was outside of acceptable range";m6[kz]="Latitude or longitude arguments were outside of acceptable range";m6[vz]="Resolution argument was outside of acceptable range";m6[_z]="Cell argument was not valid";m6[hz]="Directed edge argument was not valid";m6[$z]="Undirected edge argument was not valid";m6[gz]="Vertex argument was not valid";m6[fz]="Pentagon distortion was encountered";m6[mz]="Duplicate input";m6[bz]="Cell arguments were not neighbors";m6[uz]="Cell arguments had incompatible resolutions";m6[pz]="Memory allocation failed";m6[cz]="Bounds of provided memory were insufficient";m6[sz]="Mode or flags argument was not valid";var nz=1000,rz=1001,ZQ=1002,yV={};yV[nz]="Unknown unit";yV[rz]="Array length out of bounds";yV[ZQ]="Got unexpected null value for H3 index";var dz="Unknown error";function QQ(J,Q,U){var q=U&&"value"in U,B=Error((J[Q]||dz)+" (code: "+Q+(q?", value: "+U.value:"")+")");return B.code=Q,B}function lz(J,Q){var U=arguments.length===2?{value:Q}:{};return QQ(m6,J,U)}function iz(J,Q){var U=arguments.length===2?{value:Q}:{};return QQ(yV,J,U)}function oz(J){if(J!==0)throw lz(J)}var qY={};Tz.forEach(function(Q){qY[Q[0]]=y0.cwrap.apply(y0,Q)});var EV=16;var az=4;var tz=8;var dW=qY.sizeOfH3Index(),ez=qY.sizeOfLatLng(),WP=qY.sizeOfCellBoundary(),KP=qY.sizeOfGeoPolygon(),JP=qY.sizeOfGeoLoop(),ZP=qY.sizeOfLinkedGeoPolygon(),QP=qY.sizeOfCoordIJ();function YU(J){if(!J)throw iz(ZQ);return J}var GP=Math.pow(2,32)-1;function JQ(J){if(J>=0)return J.toString(EV);J=J&2147483647;var Q=GQ(8,J.toString(EV)),U=(parseInt(Q[0],EV)+8).toString(EV);return Q=U+Q.substring(1),Q}function VU(J,Q){return JQ(Q)+GQ(8,JQ(J))}function GQ(J,Q){var U=J-Q.length,q="";for(var B=0;B<U;B++)q+="0";return q=q+Q,q}var FP=Math.pow(2,32);function XU(J,Q){if(Q===void 0)Q=0;var U=y0.getValue(J+dW*Q,"i32"),q=y0.getValue(J+dW*Q+az,"i32");return q?VU(U,q):null}function FQ(J,Q,U){var q=y0._malloc(ez);y0.HEAPF64.set([J,Q].map(WU),q/tz);var B=y0._malloc(dW);try{return oz(qY.latLngToCell(q,U,B)),YU(XU(B))}finally{y0._free(B),y0._free(q)}}function WU(J){return J*Math.PI/180}function zQ(J){let Q=new r;for(let U=J.length-1;U>=0;U--)Q=new V0(J[U],Q);return Q}function kV(J){return fetch(J).then((Q)=>{return Q.text().then((U)=>{return new l([Q.status,U])})}).catch((Q)=>{return new W8(Q.message||"Network error")})}function UQ(J,Q){return fetch(J,{method:"POST",headers:{"Content-Type":"application/json"},body:Q}).then((U)=>{return U.text().then((q)=>{return new l([U.status,q])})}).catch((U)=>{return new W8(U.message||"Network error")})}function lW(J){if(!J||J.trim().length<2)return Promise.resolve(new l(zQ([])));let Q=new URL("https://nominatim.openstreetmap.org/search");return Q.searchParams.set("format","json"),Q.searchParams.set("q",J.trim()),Q.searchParams.set("limit","5"),Q.searchParams.set("addressdetails","1"),fetch(Q.toString(),{headers:{"User-Agent":"lustre-fullstack-app/1.0"}}).then((U)=>{if(!U.ok)throw new W8(`Nominatim API error: ${U.statusText}`);return U.json()}).then((U)=>{return new l(zQ(U))}).catch((U)=>{return console.error("Error fetching locations from Nominatim:",U),new W8(U.message||"Failed to fetch locations")})}function iW(J,Q,U=5){return FQ(J,Q,U)}async function qQ(J){console.log("processFileFromInputId called for:",J);let Q=document.getElementById(J);if(!Q)return console.error("Input element not found:",J),new W8("Input element not found");let U=Q.files?.[0];if(!U)return console.log("No file selected"),new W8("No file selected");if(!U.type.startsWith("image/"))return console.log("File is not an image:",U.type),new W8("File is not an image");try{let q=URL.createObjectURL(U);console.log("Created preview URL:",q);let B=await U.arrayBuffer(),N=new Uint8Array(B),S=Array.from(N).map((T)=>String.fromCharCode(T)).join(""),w=btoa(S);return console.log("Converted to base64, length:",w.length),new l({preview_url:q,base64_data:w,mime_type:U.type})}catch(q){return console.error("Failed to process file:",q),new W8(q.message||"Failed to process file")}}class MQ extends g{}class vV extends g{}class _V extends g{}class oW extends g{}function b7(J,Q,U){let q;if(U instanceof MQ)q="w-8 h-8";else if(U instanceof vV)q="w-12 h-12";else if(U instanceof _V)q="w-16 h-16";else q="w-24 h-24";let N=q+" rounded-full border-2 border-zinc-700 bg-zinc-800";if(J instanceof V8){let S=J[0];return eJ(A([xJ(S),TJ(Q),b(N+" object-cover")]))}else{let S,T=nY(Q," "),v=O7(T,(Y8)=>{let z8=h5(Y8);if(z8 instanceof l){let e=z8[0];return new l(a9(e))}else return new W8(void 0)}),m=bX(v,2);S=m0(m,"");let u=S,d;if(u==="")d="?";else d=u;let J8=d;return G8(A([b(N+" flex items-center justify-center text-zinc-400 font-semibold")]),A([Z8(J8)]))}}function KU(J){let Q=s6(J.handle,""),U=s6(J.display_name,J.did);return Z0(A([W0("/profile/"+Q),b("block p-4 bg-zinc-900 border border-zinc-800 rounded-lg hover:border-zinc-700 transition-colors")]),A([G8(A([b("flex items-start gap-4")]),A([b7(J.avatar_url,U,new vV),G8(A([b("flex-1 min-w-0")]),A([A9(A([b("text-lg font-semibold text-white truncate")]),A([Z8(U)])),(()=>{let q=J.handle;if(q instanceof V8){let B=q[0];return Q6(A([b("text-sm text-zinc-400 truncate")]),A([Z8("@"+B)]))}else return Z8("")})(),(()=>{let q=J.home_town;if(q instanceof V8){let B=q[0];return Q6(A([b("text-xs text-zinc-500 mt-1 flex items-center gap-1")]),A([OV(A([b("text-zinc-600")]),A([Z8("\uD83D\uDCCD")])),Z8(B.name)]))}else return Z8("")})()]))]))]))}function BQ(J){return G8(A([b("space-y-6")]),A([G8(A([b("mb-6")]),A([E0(A([b("text-2xl font-bold text-white mb-2")]),A([Z8("Attendees")])),Q6(A([b("text-zinc-400")]),A([Z8("Connect with other conference attendees")]))])),G8(A([b("grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4")]),I6(J,KU))]))}function tW(){return G8(A([b("text-center py-12")]),A([Q6(A([b("text-zinc-400")]),A([Z8("Loading attendees...")]))]))}function DQ(J){return G8(A([b("text-center py-12")]),A([E0(A([b("text-2xl font-bold text-white mb-4")]),A([Z8("Error")])),Q6(A([b("text-zinc-400")]),A([Z8(J)]))]))}class hV extends g{}class MY extends g{}class NQ extends g{}class CQ extends g{}class c0 extends g{}function _Y(J,Q,U,q){let B;if(U instanceof CQ)B="px-3 py-1.5 text-xs";else if(U instanceof c0)B="px-4 py-2 text-sm";else B="px-6 py-3 text-base";let N=B,S;if(Q instanceof hV)S="text-zinc-400 border border-zinc-800 hover:border-zinc-700 hover:text-zinc-300 rounded";else if(Q instanceof MY)S="text-zinc-300 bg-zinc-800 hover:bg-zinc-700 rounded";else if(Q instanceof NQ)S="text-zinc-500 hover:text-zinc-300 px-2 py-1";else S="bg-red-900 text-red-100 border border-red-800 hover:bg-red-800 hover:border-red-700 rounded";let w=S,T=N+" "+w+" transition-colors cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed";return yY(f(b(T),J),q)}class $V extends g{constructor(J,Q){super();this.name=J,this.handle=Q}}function ZU(J){if(J instanceof V8){let Q=J[0],U,q=Q.name;if(q instanceof V8)U=q[0];else U="@"+Q.handle;let B=U;return G8(A([b("flex gap-4 items-center")]),A([Z0(A([W0("/profile/"+Q.handle),b("px-2 py-1 text-zinc-400 hover:text-zinc-200 transition-colors")]),A([Z8(B)])),$7(A([UV("/logout"),qV("post"),b("inline")]),A([yY(A([K0("submit"),b("px-2 py-1 text-zinc-500 hover:text-zinc-300 transition-colors cursor-pointer")]),A([Z8("Sign Out")]))]))]))}else return Z0(A([W0("/login"),b("px-2 py-1 text-zinc-500 hover:text-zinc-300 transition-colors")]),A([Z8("Sign In")]))}function OQ(J,Q){return G8(A([b("min-h-screen bg-zinc-950 text-zinc-300 font-mono")]),A([G8(A([b("max-w-4xl mx-auto px-6 py-12")]),A([G8(A([b("border-b border-zinc-800 pb-4")]),A([G8(A([b("flex items-end justify-between")]),A([Z0(A([W0("/"),b("flex items-center gap-3 hover:opacity-80 transition-opacity")]),A([G8(A([]),A([tJ(A([b("text-2xl font-bold text-white")]),A([Z8("atmosphere conf")]))]))])),G8(A([b("flex gap-4 text-xs items-center")]),A([(()=>{if(J instanceof V8)return Z0(A([W0("/attendees"),b("px-2 py-1 text-zinc-500 hover:text-zinc-300 transition-colors")]),A([Z8("Attendees")]));else return Z8("")})(),ZU(J)]))]))])),G8(A([b("mb-8")]),A([])),G8(A([]),Q)]))]))}function PQ(J){return G8(A([b("flex items-center justify-center min-h-[60vh]")]),A([G8(A([b("w-full max-w-md p-8 bg-zinc-900 border border-zinc-800 rounded-lg space-y-6 text-center")]),(()=>{if(J instanceof V8){let Q=J[0];return A([Q6(A([b("text-zinc-400 mb-4")]),A([Z8("Welcome back! Edit your profile to connect with other attendees")])),Z0(A([W0("/profile/"+Q.handle+"/edit")]),A([_Y(A([b("w-full justify-center")]),new MY,new c0,A([Z8("Edit profile")]))]))])}else return A([Q6(A([b("text-zinc-400")]),A([Z8("Create your profile to connect with other attendees")])),Z0(A([W0("/login")]),A([_Y(A([b("w-full justify-center")]),new MY,new c0,A([Z8("Sign in to create your profile")]))]))])})())]))}function j9(J){return g7(f(b("w-full px-3 py-2 bg-zinc-900 border border-zinc-800 rounded text-sm text-zinc-300 focus:outline-none focus:border-zinc-700 disabled:opacity-50 disabled:cursor-not-allowed"),J))}function RQ(){return G8(A([b("flex items-center justify-center min-h-[60vh]")]),A([G8(A([b("w-full max-w-[300px] space-y-4")]),A([$7(A([qV("POST"),UV("/oauth/authorize"),b("space-y-4")]),A([G8(A([]),A([FY(A([kJ("loginHint"),b("block text-sm font-medium text-zinc-400 mb-2")]),A([Z8("Handle or PDS Host")])),j9(A([zV("loginHint"),vJ("loginHint"),K0("text"),xY("user.bsky.social"),F6("required","true")]))])),_Y(A([K0("submit"),b("w-full justify-center")]),new MY,new c0,A([Z8("Sign In")]))])),G8(A([b("text-xs text-zinc-500")]),A([Q6(A([]),A([Z8("Examples: user.bsky.social, pds.example.com")])),Q6(A([b("mt-2")]),A([Z8("Don't have an account? "),Z0(A([W0("https://bsky.app"),jJ("_blank"),F6("rel","noopener noreferrer"),b("text-zinc-400 hover:text-zinc-300 underline")]),A([Z8("Create one on Bluesky")]))]))]))]))]))}function IQ(J,Q){return G8(A([b("space-y-8")]),A([G8(A([b("flex items-start gap-6")]),A([b7(J.avatar_url,s6(J.display_name,J.did),new oW),G8(A([b("flex-1 space-y-2")]),A([E0(A([b("text-3xl font-bold text-white")]),A([Z8(s6(J.display_name,J.did))])),(()=>{let U=J.handle;if(U instanceof V8){let q=U[0];return Q6(A([b("text-zinc-300 text-base")]),A([Z8("@"+q)]))}else return G8(A([]),A([]))})(),Q6(A([b("text-zinc-500 text-sm font-mono")]),A([Z8(J.did)])),(()=>{let U=J.home_town;if(U instanceof V8){let q=U[0];return Q6(A([b("text-zinc-400 text-sm")]),A([Z8("\uD83D\uDCCD "+q.name)]))}else return G8(A([]),A([]))})()])),(()=>{let U=J.handle;if(U instanceof V8&&Q instanceof V8){let q=U[0],B=Q[0];if(q===B)return Z0(A([W0("/profile/"+q+"/edit"),b("px-4 py-2 text-sm text-zinc-400 border border-zinc-800 hover:border-zinc-700 hover:text-zinc-300 rounded transition-colors cursor-pointer")]),A([Z8("Edit Profile")]));else return p0()}else return p0()})()])),G8(A([b("space-y-6 pt-6 border-t border-zinc-800")]),A([(()=>{let U=J.description;if(U instanceof V8){let q=U[0];return G8(A([b("space-y-3")]),A([A9(A([b("text-lg font-semibold text-white")]),A([Z8("About")])),Q6(A([b("text-zinc-400")]),A([Z8(q)]))]))}else return G8(A([]),A([]))})(),(()=>{let U=J.interests;if(U instanceof V8){let q=U[0];if(q instanceof r)return G8(A([]),A([]));else return G8(A([b("space-y-3")]),A([A9(A([b("text-lg font-semibold text-white")]),A([Z8("Interests")])),G8(A([b("flex flex-wrap gap-2")]),I6(q,(B)=>{return OV(A([b("px-3 py-1 bg-zinc-800 text-zinc-300 rounded-full text-sm")]),A([Z8(B)]))}))]))}else return G8(A([]),A([]))})()]))]))}function zU(J){if(J==="input")return!0;else if(J==="change")return!0;else if(J==="focus")return!0;else if(J==="focusin")return!0;else if(J==="focusout")return!0;else if(J==="blur")return!0;else if(J==="select")return!0;else return!1}function J7(J,Q){return HJ(J,e0(Q,(U)=>{return new q9(!1,!1,U)}),v8,ZW,ZW,zU(J),0,0)}function UU(J){if(J instanceof y6)return new y6(J.kind,J.name,J.handler,J.include,LJ,J.stop_propagation,J.immediate,J.debounce,J.throttle);else return J}function wQ(J,Q){if(J instanceof y6)return new y6(J.kind,J.name,J.handler,J.include,J.prevent_default,J.stop_propagation,J.immediate,mX(0,Q),J.throttle);else return J}function T9(J){return J7("click",w6(J))}function u7(J){return J7("input",VV(A(["target","value"]),s8,(Q)=>{return w6(J(Q))}))}function qU(){let Q=b8(0,s8,(q)=>{return b8(1,nX(e0(s8,(B)=>{return new l(B)}),A([w6(new W8(void 0))])),(B)=>{let S=H7(B,(w)=>{return lZ(q,w)});return w6(S)})}),U=rY(Q);return e0(U,YJ)}function HQ(J){let Q=J7("submit",VV(A(["detail","formData"]),qU(),(U)=>{let B=J(U);return w6(B)}));return UU(Q)}function LQ(J){return J7("focus",w6(J))}function jQ(J){return J7("blur",w6(J))}class xQ extends g{constructor(J,Q,U,q,B){super();this.display_name=J,this.lat=Q,this.lon=U,this.place_id=q,this.address=B}}class EQ extends g{constructor(J,Q,U){super();this.city=J,this.state=Q,this.country=U}}class x9 extends g{constructor(J,Q,U,q){super();this.name=J,this.lat=Q,this.lon=U,this.h3_index=q}}function MU(){return b8("city",z0(s8),(J)=>{return b8("state",z0(s8),(Q)=>{return b8("country",z0(s8),(U)=>{return w6(new EQ(s6(J,""),s6(Q,""),s6(U,"")))})})})}function yQ(){return b8("display_name",s8,(J)=>{return b8("lat",s8,(Q)=>{return b8("lon",s8,(U)=>{return b8("place_id",R7,(q)=>{return b8("address",MU(),(B)=>{return w6(new xQ(J,Q,U,q,B))})})})})})}class s0 extends g{constructor(J,Q,U,q,B){super();this.input_value=J,this.selected_location=Q,this.suggestions=U,this.is_loading=q,this.show_dropdown=B}}class VK extends g{constructor(J){super();this[0]=J}}class XK extends g{constructor(J){super();this[0]=J}}class WK extends g{}class KK extends g{}class YK extends g{constructor(J){super();this[0]=J}}function JK(J){return new s0((()=>{if(J instanceof V8)return J[0].name;else return""})(),J,A([]),!1,!1)}function vQ(J){return T0((Q)=>{let U=lW(J),q=u0(U,(B)=>{if(B instanceof l){let N=B[0],S=O7(N,(w)=>{return j0(w,yQ())});return Q(new YK(new l(S)))}else{let N=B[0];return Q(new YK(new W8(N)))}});w7(q,(B)=>{return I7(void 0)});return})}function _Q(J){let Q=A([]),U,q=J.address.city;if(q==="")U=Q;else U=H0(Q,A([q]));let B=U,N,S=J.address.state;if(S==="")N=B;else N=H0(B,A([S]));let w=N,T,v=J.address.country;if(v==="")T=w;else T=H0(w,A([v]));let m=T;if(m instanceof r)return J.display_name;else return m0(m,", ")}function hQ(J,Q){if(Q instanceof VK){let U=Q[0],q=new s0(U,J.selected_location,J.suggestions,J.is_loading,J.show_dropdown);if(e9(U)>=2)return[new s0(q.input_value,q.selected_location,q.suggestions,!0,!0),vQ(U)];else return[new s0(q.input_value,new U8,A([]),q.is_loading,!1),n8()]}else if(Q instanceof XK){let U=Q[0],q,B=i9(U.lat);if(B instanceof l)q=B[0];else q=0;let N=q,S,w=i9(U.lon);if(w instanceof l)S=w[0];else S=0;let T=S,v=iW(N,T),m=_Q(U),u=new x9(m,N,T,v);return[new s0(m,new V8(u),A([]),J.is_loading,!1),n8()]}else if(Q instanceof WK)if(e9(J.input_value)>=2){let q=new s0(J.input_value,J.selected_location,J.suggestions,!0,!0);return[q,vQ(q.input_value)]}else return[J,n8()];else if(Q instanceof KK)return[new s0(J.input_value,J.selected_location,J.suggestions,J.is_loading,!1),n8()];else{let U=Q[0];if(U instanceof l){let q=U[0];return[new s0(J.input_value,J.selected_location,q,!1,!S6(q,A([]))),n8()]}else return[new s0(J.input_value,J.selected_location,A([]),!1,J.show_dropdown),n8()]}}function BU(J,Q,U){return g7(A([K0("text"),M9(J),xY(Q),b("w-full px-3 py-2 pr-10 bg-zinc-900 border border-zinc-800 rounded text-sm text-zinc-300 focus:outline-none focus:border-zinc-700"),(()=>{let q=u7((B)=>{return new VK(B)});return wQ(q,300)})(),LQ(new WK),jQ(new KK)]))}function DU(){return G8(A([b("absolute right-3 top-1/2 -translate-y-1/2 text-zinc-500")]),A([Z8("\uD83D\uDCCD")]))}function NU(J){return yY(A([K0("button"),b("w-full px-4 py-3 text-left hover:bg-zinc-800 transition-colors border-b border-zinc-800 last:border-b-0"),T9(new XK(J))]),A([G8(A([b("flex items-center gap-2")]),A([G8(A([b("text-zinc-500 flex-shrink-0")]),A([Z8("\uD83D\uDCCD")])),G8(A([b("text-sm text-zinc-300")]),A([Z8(_Q(J))]))]))]))}function CU(J,Q){if(J&&!S6(Q,A([])))return G8(A([b("absolute z-50 w-full mt-1 bg-zinc-900 border border-zinc-800 rounded-lg shadow-lg max-h-60 overflow-y-auto"),F6("onmousedown","event.preventDefault()")]),I6(Q,NU));else return p0()}function $Q(J,Q){return G8(A([b("relative")]),A([G8(A([b("relative")]),A([BU(J.input_value,Q,J.is_loading),DU()])),CU(J.show_dropdown,J.suggestions)]))}function fQ(J,Q){return YZ(f(b("w-full px-3 py-2 bg-zinc-900 border border-zinc-800 rounded text-sm text-zinc-300 focus:outline-none focus:border-zinc-700 disabled:opacity-50 disabled:cursor-not-allowed resize-y min-h-[100px]"),J),Q)}class gV extends g{constructor(J){super();this[0]=J}}class fV extends g{constructor(J){super();this[0]=J}}class mV extends g{constructor(J){super();this[0]=J}}class bV extends g{constructor(J){super();this[0]=J}}class uV extends g{constructor(J){super();this[0]=J}}class E9 extends g{constructor(J){super();this[0]=J}}class pV extends g{}class Z7 extends g{constructor(J){super();this[0]=J}}class ZK extends g{}class I0 extends g{constructor(J,Q,U,q,B,N,S,w,T){super();this.display_name=J,this.description=Q,this.location_input=U,this.interests=q,this.avatar_preview_url=B,this.avatar_file_data=N,this.success_message=S,this.error_message=w,this.is_saving=T}}function n0(J){if(J instanceof V8){let Q=J[0],U,q=Q.interests;if(q instanceof V8){let T=q[0];U=m0(T,", ")}else U="";let B=U,N,S=Q.home_town;if(S instanceof V8){let T=S[0];N=new V8(new x9(T.name,0,0,T.h3_index))}else N=S;let w=N;return new I0(s6(Q.display_name,""),s6(Q.description,""),JK(w),B,Q.avatar_url,new U8,new U8,new U8,!1)}else return new I0("","",JK(new U8),"",new U8,new U8,new U8,new U8,!1)}function mQ(J,Q,U,q){return G8(A([b("space-y-8")]),A([G8(A([b("border-b border-zinc-800 pb-6")]),A([yY(A([b("inline-flex items-center gap-2 text-zinc-400 hover:text-zinc-200 transition-colors mb-4"),T9(q(new ZK))]),A([Z8("← Back to Profile")])),E0(A([b("text-3xl font-bold text-white mb-2")]),A([Z8("Profile Settings")])),Q6(A([b("text-zinc-500 text-sm")]),A([Z8("@"+U)]))])),(()=>{let B=Q.success_message;if(B instanceof V8){let N=B[0];return G8(A([b("p-4 bg-green-900/20 border border-green-800 rounded-lg text-green-300 text-sm")]),A([Z8(N)]))}else return p0()})(),(()=>{let B=Q.error_message;if(B instanceof V8){let N=B[0];return G8(A([b("p-4 bg-red-900/20 border border-red-800 rounded-lg text-red-300 text-sm")]),A([Z8(N)]))}else return p0()})(),$7(A([b("space-y-6"),HQ((B)=>{return q(new pV)})]),A([G8(A([b("bg-zinc-900 border border-zinc-800 rounded-lg p-6 space-y-6")]),A([G8(A([b("space-y-2")]),A([FY(A([b("text-sm font-medium text-white")]),A([Z8("Avatar")])),G8(A([b("flex items-center gap-4")]),A([b7(Q.avatar_preview_url,s6((()=>{return A5(J,(N)=>{return N.display_name})})(),U),new _V),FY(A([F6("for","avatar-upload"),b("cursor-pointer px-4 py-2 bg-zinc-800 hover:bg-zinc-700 text-zinc-300 rounded text-sm transition-colors")]),A([Z8("Change Avatar")])),g7(A([K0("file"),zV("avatar-upload"),EJ(A(["image/*"])),b("hidden"),J7("change",e0(YV,(B)=>{return q(new bV(A([])))}))]))]))])),G8(A([b("space-y-2")]),A([FY(A([b("text-sm font-medium text-white")]),A([Z8("Display Name")])),j9(A([K0("text"),xY("Your display name"),M9(Q.display_name),u7((B)=>{return q(new gV(B))})]))])),G8(A([b("space-y-2")]),A([FY(A([b("text-sm font-medium text-white")]),A([Z8("Description")])),fQ(A([xY("Tell us about yourself..."),u7((B)=>{return q(new fV(B))})]),Q.description)])),G8(A([b("space-y-2")]),A([FY(A([b("text-sm font-medium text-white")]),A([Z8("Home Town")])),(()=>{let B=$Q(Q.location_input,"Search for your hometown...");return aJ(B,(N)=>{return q(new E9(N))})})()])),G8(A([b("space-y-2")]),A([FY(A([b("text-sm font-medium text-white")]),A([Z8("Interests")])),Q6(A([b("text-xs text-zinc-400")]),A([Z8("Enter your interests, separated by commas")])),j9(A([K0("text"),xY("e.g., web development, photography, hiking"),M9(Q.interests),u7((B)=>{return q(new mV(B))})]))]))])),G8(A([b("flex justify-end gap-3")]),A([_Y(A([K0("button"),T9(q(new ZK))]),new hV,new c0,A([Z8("Cancel")])),_Y(A([K0("submit"),yJ(Q.is_saving)]),new MY,new c0,A([Z8((()=>{if(Q.is_saving)return"Saving...";else return"Save Changes"})())]))]))]))]))}var PU="src/client.gleam";class y9 extends g{}class QK extends g{}class v9 extends g{}class _9 extends g{constructor(J){super();this.handle=J}}class $Y extends g{constructor(J){super();this.handle=J}}class c7 extends g{constructor(J){super();this.uri=J}}class s7 extends g{}class BY extends g{}class r0 extends g{constructor(J){super();this[0]=J}}class k9 extends g{constructor(J){super();this.error=J}}class hY extends g{}class cV extends g{}class GK extends g{constructor(J){super();this[0]=J}}class bQ extends g{constructor(J){super();this.error=J}}class G6 extends g{constructor(J,Q,U,q,B){super();this.route=J,this.profile_state=Q,this.attendees_state=U,this.edit_form_data=q,this.current_user=B}}class FK extends g{constructor(J){super();this.route=J}}class zK extends g{constructor(J){super();this[0]=J}}class UK extends g{constructor(J){super();this[0]=J}}class DY extends g{constructor(J){super();this[0]=J}}class uQ extends g{constructor(J){super();this[0]=J}}function AU(){let J=jV("#model"),Q=H7(J,TV),U=lY(Q,(q)=>{let B=jY(q,rX(A(["profile"]),H9()));return j7(B,void 0)});return HX(U)}function RU(){let J=jV("#model"),Q=H7(J,TV),U=lY(Q,(q)=>{let B=jY(q,rX(A(["user"]),b8("handle",s8,(N)=>{return w6(new $V(new U8,N))})));return j7(B,void 0)});return HX(U)}function pQ(J){let Q=ZJ(J.path);if(Q instanceof r)return new y9;else{let U=Q.tail;if(U instanceof r){let q=Q.head;if(q==="")return new y9;else if(q==="login")return new QK;else if(q==="attendees")return new v9;else return new c7(J)}else{let q=U.tail;if(q instanceof r)if(Q.head==="profile"){let N=U.head;return new _9(N)}else return new c7(J);else if(q.tail instanceof r)if(Q.head==="profile")if(q.head==="edit"){let w=U.head;return new $Y(w)}else return new c7(J);else return new c7(J);else return new c7(J)}}}function IU(J){let U=pQ(J);return new FK(U)}function wU(){return T0((J)=>{let U=kV("/api/user/current"),q=u0(U,(B)=>{if(B instanceof l){let N=B[0][0];if(N===200){let S=B[0][1],w=jY(S,b8("handle",s8,(T)=>{return w6(new $V(new U8,T))}));return L7(w,(T)=>{return"Failed to parse user JSON"})}else if(N===401)return new W8("Not authenticated");else return new W8("API request failed with status: "+F0(N))}else return B});XV(q,(B)=>{return J(new uQ(B))});return})}function p7(J){return T0((Q)=>{let U="/api/profile/"+J;i8("Fetching profile from: "+U);let q=kV(U),B=u0(q,(N)=>{if(i8("Body result: "+t0(N)),N instanceof l){let S=N[0][0];if(S===200){let w=N[0][1];i8("Got 200 response, parsing JSON...");let T=jY(w,H9()),v=H7(T,(m)=>{return new V8(m)});return L7(v,(m)=>{return i8("JSON parse error: "+t0(m)),"Failed to parse profile JSON"})}else if(S===404)return i8("Got 404 response"),new l(new U8);else return i8("Got status: "+t0(S)),new W8("API request failed")}else{let S=N[0];return i8("Fetch error: "+S),new W8(S)}});XV(B,(N)=>{return Q(new zK(N))});return})}function cQ(){return T0((J)=>{let Q="/api/attendees";i8("Fetching attendees from: "+Q);let U=kV(Q),q=u0(U,(B)=>{if(i8("Attendees body result: "+t0(B)),B instanceof l){let N=B[0][0];if(N===200){let S=B[0][1];i8("Got 200 response, parsing JSON...");let w=jY(S,rY(H9()));return L7(w,(T)=>{return i8("JSON parse error: "+t0(T)),"Failed to parse attendees JSON"})}else return i8("Got status: "+t0(N)),new W8("API request failed")}else{let N=B[0];return i8("Fetch error: "+N),new W8(N)}});XV(q,(B)=>{return J(new UK(B))});return})}function HU(J){let Q,U=nW();if(U instanceof l){let Y8=U[0];Q=pQ(Y8)}else Q=new y9;let q=Q,B=AU(),N=RU(),S;if(q instanceof v9)if(N instanceof V8)S=[new G6(q,new s7,new cV,n0(new U8),N),cQ()];else S=[new G6(q,new s7,new hY,n0(new U8),N),w9("/login",new U8,new U8)];else if(q instanceof _9)if(B instanceof V8){let Y8=B[0];S=[new G6(q,new r0(Y8),new hY,n0(new U8),N),n8()]}else S=[new G6(q,new k9("Profile not found"),new hY,n0(new U8),N),n8()];else if(q instanceof $Y)if(B instanceof V8){let Y8=B[0];S=[new G6(q,new r0(Y8),new hY,n0(new V8(Y8)),N),n8()]}else S=[new G6(q,new k9("Profile not found"),new hY,n0(new U8),N),n8()];else S=[new G6(q,new s7,new hY,n0(new U8),N),n8()];let w=S,T,v;T=w[0],v=w[1];let m=eZ(IU),u;if(N instanceof V8)u=n8();else u=wU();let J8=BV(A([m,v,u]));return[T,J8]}function LU(J){return T0((Q)=>{let U=qQ(J),q=u0(U,(B)=>{if(B instanceof l){let N=B[0];return i8("File processed successfully"),Q(new DY(new uV(N)))}else{let N=B[0];return i8("Failed to process file: "+N)}});w7(q,(B)=>{return I7(void 0)});return})}function jU(J,Q){return T0((U)=>{let q="/api/profile/"+J+"/update",B=A([]),N,S=Q.display_name;if(S==="")N=B;else N=f(["display_name",i6(S)],B);let w=N,T,v=Q.description;if(v==="")T=w;else T=f(["description",i6(v)],w);let m=T,u,d=Q.location_input.selected_location;if(d instanceof V8){let P8=d[0],$8=oY(A([["name",i6(P8.name)],["value",i6(P8.h3_index)]]));u=f(["home_town",$8],m)}else u=m;let J8=u,Y8,z8=Q.interests;if(z8==="")Y8=J8;else{let P8=z8,$8,V6=nY(P8,","),C6=I6(V6,_5);$8=E5(C6,(u8)=>{return u8!==""}),Y8=f(["interests",x7($8,i6)],J8)}let e=Y8,C8,X8=Q.avatar_file_data;if(X8 instanceof V8){let P8=X8[0];if(P8.base64_data==="")C8=e;else C8=f(["avatar_base64",i6(P8.base64_data)],f(["avatar_mime_type",i6(P8.mime_type)],e))}else C8=e;let q8=C8,j8,p=oY(q8);j8=tX(p);let D8=j8;i8("Sending profile update: "+D8);let N8=UQ(q,D8),h8=u0(N8,(P8)=>{if(P8 instanceof l){let $8=P8[0][0];if($8===200){let V6=P8[0][1];i8("Profile saved successfully, parsing response...");let C6=jY(V6,H9());if(C6 instanceof l){let N6=C6[0];return i8("Profile parsed successfully"),U(new DY(new Z7(new l(N6))))}else return i8("Failed to parse profile response"),U(new DY(new Z7(new W8("Failed to parse updated profile"))))}else{let V6=$8,C6=P8[0][1];return i8("Save failed with status "+F0(V6)+": "+C6),U(new DY(new Z7(new W8("Failed to save profile (status "+F0(V6)+")"))))}}else{let $8=P8[0];return i8("Save request failed: "+$8),U(new DY(new Z7(new W8($8))))}});w7(h8,(P8)=>{return I7(void 0)});return})}function TU(J,Q){if(Q instanceof FK){let U=Q.route,q=new G6(U,J.profile_state,J.attendees_state,J.edit_form_data,J.current_user);if(U instanceof v9)if(i8("Navigating to attendees"),q.current_user instanceof V8)return[new G6(q.route,q.profile_state,new cV,q.edit_form_data,q.current_user),cQ()];else return i8("Not authenticated, redirecting to login"),[q,w9("/login",new U8,new U8)];else if(U instanceof _9){let B=U.handle;i8("Navigating to profile: "+B);let N=q.profile_state;if(N instanceof r0){let w=N[0].handle;if(w instanceof V8)if(w[0]===B)return[q,n8()];else return[new G6(q.route,new BY,q.attendees_state,q.edit_form_data,q.current_user),p7(B)];else return[new G6(q.route,new BY,q.attendees_state,q.edit_form_data,q.current_user),p7(B)]}else return[new G6(q.route,new BY,q.attendees_state,q.edit_form_data,q.current_user),p7(B)]}else if(U instanceof $Y){let B=U.handle;i8("Navigating to profile edit: "+B);let N,S=q.current_user;if(S instanceof V8)if(S[0].handle===B)N=!0;else N=!1;else N=!1;if(N){let T=q.profile_state;if(T instanceof r0){let v=T[0],m=v.handle;if(m instanceof V8)if(m[0]===B){let d=n0(new V8(v));return[new G6(q.route,q.profile_state,q.attendees_state,d,q.current_user),n8()]}else return[new G6(q.route,new BY,q.attendees_state,q.edit_form_data,q.current_user),p7(B)];else return[new G6(q.route,new BY,q.attendees_state,q.edit_form_data,q.current_user),p7(B)]}else return[new G6(q.route,new BY,q.attendees_state,q.edit_form_data,q.current_user),p7(B)]}else return i8("Unauthorized edit attempt, redirecting to profile view"),[q,w9("/profile/"+B,new U8,new U8)]}else return[q,n8()]}else if(Q instanceof zK){let U=Q[0];i8("Profile fetched result: "+t0(U));let q;if(U instanceof l){let T=U[0];if(T instanceof V8){let v=T[0];q=new r0(v)}else q=new k9("Profile not found")}else{let T=U[0];q=new k9(T)}let B=q,N,S=J.route;if(B instanceof r0&&S instanceof $Y){let T=B[0];N=n0(new V8(T))}else N=J.edit_form_data;let w=N;return[new G6(J.route,B,J.attendees_state,w,J.current_user),n8()]}else if(Q instanceof UK){let U=Q[0];i8("Attendees fetched result: "+t0(U));let q;if(U instanceof l){let N=U[0];q=new GK(N)}else{let N=U[0];q=new bQ(N)}let B=q;return[new G6(J.route,J.profile_state,B,J.edit_form_data,J.current_user),n8()]}else if(Q instanceof DY){let U=Q[0];if(U instanceof gV){let q=U[0],B,N=J.edit_form_data;B=new I0(q,N.description,N.location_input,N.interests,N.avatar_preview_url,N.avatar_file_data,N.success_message,N.error_message,N.is_saving);let S=B;return[new G6(J.route,J.profile_state,J.attendees_state,S,J.current_user),n8()]}else if(U instanceof fV){let q=U[0],B,N=J.edit_form_data;B=new I0(N.display_name,q,N.location_input,N.interests,N.avatar_preview_url,N.avatar_file_data,N.success_message,N.error_message,N.is_saving);let S=B;return[new G6(J.route,J.profile_state,J.attendees_state,S,J.current_user),n8()]}else if(U instanceof mV){let q=U[0],B,N=J.edit_form_data;B=new I0(N.display_name,N.description,N.location_input,q,N.avatar_preview_url,N.avatar_file_data,N.success_message,N.error_message,N.is_saving);let S=B;return[new G6(J.route,J.profile_state,J.attendees_state,S,J.current_user),n8()]}else if(U instanceof bV)return[J,LU("avatar-upload")];else if(U instanceof uV){let q=U[0],B,N=J.edit_form_data;B=new I0(N.display_name,N.description,N.location_input,N.interests,new V8(q.preview_url),new V8(q),N.success_message,N.error_message,N.is_saving);let S=B;return[new G6(J.route,J.profile_state,J.attendees_state,S,J.current_user),n8()]}else if(U instanceof E9){let q=U[0],B=hQ(J.edit_form_data.location_input,q),N,S;N=B[0],S=B[1];let w,T=J.edit_form_data;w=new I0(T.display_name,T.description,N,T.interests,T.avatar_preview_url,T.avatar_file_data,T.success_message,T.error_message,T.is_saving);let v=w;return[new G6(J.route,J.profile_state,J.attendees_state,v,J.current_user),(()=>{return _J(S,(u)=>{return new DY(new E9(u))})})()]}else if(U instanceof pV){let q,B=J.edit_form_data;q=new I0(B.display_name,B.description,B.location_input,B.interests,B.avatar_preview_url,B.avatar_file_data,new U8,new U8,!0);let N=q,S=new G6(J.route,J.profile_state,J.attendees_state,N,J.current_user),w=S.route;if(w instanceof $Y){let T=w.handle;return[S,jU(T,S.edit_form_data)]}else return[S,n8()]}else if(U instanceof Z7){let q=U[0];if(q instanceof l){let B=q[0],N,S=J.edit_form_data;N=new I0(S.display_name,S.description,S.location_input,S.interests,S.avatar_preview_url,S.avatar_file_data,new V8("Profile updated successfully!"),new U8,!1);let w=N;return[new G6(J.route,new r0(B),J.attendees_state,w,J.current_user),n8()]}else{let B=q[0],N,S=J.edit_form_data;N=new I0(S.display_name,S.description,S.location_input,S.interests,S.avatar_preview_url,S.avatar_file_data,new U8,new V8(B),!1);let w=N;return[new G6(J.route,J.profile_state,J.attendees_state,w,J.current_user),n8()]}}else{let q=J.route;if(q instanceof $Y){let B=q.handle;return[J,w9("/profile/"+B,new U8,new U8)]}else return[J,n8()]}}else{let U=Q[0],q;if(U instanceof l){let N=U[0];q=new V8(N)}else q=new U8;let B=q;return[new G6(J.route,J.profile_state,J.attendees_state,J.edit_form_data,B),n8()]}}function xU(){return G8(A([b("text-center py-12")]),A([E0(A([b("text-2xl font-bold text-white mb-4")]),A([Z8("404 - Page Not Found")])),Q6(A([b("text-zinc-400")]),A([Z8("The page you're looking for doesn't exist.")]))]))}function EU(J){return OQ(J.current_user,A([(()=>{let Q=J.route;if(Q instanceof y9)return PQ(J.current_user);else if(Q instanceof QK)return RQ();else if(Q instanceof v9){let U=J.attendees_state;if(U instanceof hY)return tW();else if(U instanceof cV)return tW();else if(U instanceof GK){let q=U[0];return BQ(q)}else{let q=U.error;return DQ(q)}}else if(Q instanceof _9){let U=J.profile_state;if(U instanceof s7)return G8(A([b("text-center py-12")]),A([Q6(A([b("text-zinc-400")]),A([Z8("Loading profile...")]))]));else if(U instanceof BY)return G8(A([b("text-center py-12")]),A([Q6(A([b("text-zinc-400")]),A([Z8("Loading profile...")]))]));else if(U instanceof r0){let q=U[0],B,N=J.current_user;if(N instanceof V8){let w=N[0];B=new V8(w.handle)}else B=N;return IQ(q,B)}else{let q=U.error;return G8(A([b("text-center py-12")]),A([E0(A([b("text-2xl font-bold text-white mb-4")]),A([Z8("Error")])),Q6(A([b("text-zinc-400")]),A([Z8(q)]))]))}}else if(Q instanceof $Y){let U=Q.handle,q=J.profile_state;if(q instanceof s7)return G8(A([b("text-center py-12")]),A([Q6(A([b("text-zinc-400")]),A([Z8("Loading profile...")]))]));else if(q instanceof BY)return G8(A([b("text-center py-12")]),A([Q6(A([b("text-zinc-400")]),A([Z8("Loading profile...")]))]));else if(q instanceof r0){let B=q[0];return mQ(new V8(B),J.edit_form_data,U,(N)=>{return new DY(N)})}else{let B=q.error;return G8(A([b("text-center py-12")]),A([E0(A([b("text-2xl font-bold text-white mb-4")]),A([Z8("Error")])),Q6(A([b("text-zinc-400")]),A([Z8(B)]))]))}}else return xU()})()]))}function sQ(){let J=sZ(HU,TU,EU),Q=nZ(J,"#app",void 0);if(!(Q instanceof l))throw r9("let_assert",PU,"client",30,"main","Pattern match failed, no pattern matched the value.",{value:Q,start:731,end:780,pattern_start:742,pattern_end:747});return}sQ();
+64
server/src/api/graphql.gleam
···
2
2
import api/graphql/create_profile as create_profile_gql
3
3
import api/graphql/get_bluesky_profile
4
4
import api/graphql/get_profile as get_profile_gql
5
5
+
import api/graphql/list_profiles as list_profiles_gql
5
6
import api/graphql/sync_user_collections
6
7
import api/graphql/update_profile as update_profile_gql
7
8
import api/graphql/upload_blob as upload_blob_gql
8
9
import gleam/json
10
10
+
import gleam/list
9
11
import gleam/option.{type Option, None, Some}
10
12
import gleam/result
11
13
import shared/profile.{type Profile}
···
263
265
264
266
Ok(Nil)
265
267
}
268
268
+
269
269
+
/// List all profiles
270
270
+
pub fn list_profiles(config: Config) -> Result(List(Profile), String) {
271
271
+
let client = create_client(config)
272
272
+
273
273
+
use response <- result.try(list_profiles_gql.list_profiles(client))
274
274
+
275
275
+
// Convert all profiles from generated types to our Profile type
276
276
+
let profiles =
277
277
+
response.org_atmosphereconf_profiles.edges
278
278
+
|> list.map(fn(edge) {
279
279
+
let node = edge.node
280
280
+
281
281
+
// Convert avatar from generated Blob type to our AvatarBlob type
282
282
+
let avatar_blob = case node.avatar {
283
283
+
Some(blob) ->
284
284
+
Some(profile.AvatarBlob(
285
285
+
ref: blob.ref,
286
286
+
mime_type: blob.mime_type,
287
287
+
size: blob.size,
288
288
+
))
289
289
+
None -> None
290
290
+
}
291
291
+
292
292
+
// Convert home_town from generated type to HomeTown type
293
293
+
let home_town = case node.home_town {
294
294
+
Some(ht) -> convert_home_town_from_list(ht)
295
295
+
None -> None
296
296
+
}
297
297
+
298
298
+
profile.Profile(
299
299
+
id: node.id,
300
300
+
uri: node.uri,
301
301
+
cid: node.cid,
302
302
+
did: node.did,
303
303
+
handle: node.actor_handle,
304
304
+
display_name: node.display_name,
305
305
+
description: node.description,
306
306
+
avatar_url: case node.avatar {
307
307
+
Some(blob) -> Some(blob.url)
308
308
+
None -> None
309
309
+
},
310
310
+
avatar_blob: avatar_blob,
311
311
+
home_town: home_town,
312
312
+
interests: node.interests,
313
313
+
created_at: node.created_at,
314
314
+
indexed_at: node.indexed_at,
315
315
+
)
316
316
+
})
317
317
+
318
318
+
Ok(profiles)
319
319
+
}
320
320
+
321
321
+
/// Convert list_profiles's CommunityLexiconLocationHthree to HomeTown type
322
322
+
fn convert_home_town_from_list(
323
323
+
ht: list_profiles_gql.CommunityLexiconLocationHthree,
324
324
+
) -> Option(profile.HomeTown) {
325
325
+
case ht.name, ht.value {
326
326
+
Some(name), Some(value) -> Some(profile.HomeTown(name: name, h3_index: value))
327
327
+
_, _ -> None
328
328
+
}
329
329
+
}
+144
server/src/api/graphql/list_profiles.gleam
···
1
1
+
import gleam/dynamic/decode
2
2
+
import gleam/http
3
3
+
import gleam/http/request
4
4
+
import gleam/httpc
5
5
+
import gleam/json
6
6
+
import gleam/list
7
7
+
import gleam/result
8
8
+
import squall
9
9
+
import gleam/option.{type Option}
10
10
+
11
11
+
pub type OrgAtmosphereconfProfileConnection {
12
12
+
OrgAtmosphereconfProfileConnection(edges: List(OrgAtmosphereconfProfileEdge))
13
13
+
}
14
14
+
15
15
+
pub fn org_atmosphereconf_profile_connection_decoder() -> decode.Decoder(OrgAtmosphereconfProfileConnection) {
16
16
+
use edges <- decode.field("edges", decode.list(org_atmosphereconf_profile_edge_decoder()))
17
17
+
decode.success(OrgAtmosphereconfProfileConnection(edges: edges))
18
18
+
}
19
19
+
20
20
+
pub type OrgAtmosphereconfProfileEdge {
21
21
+
OrgAtmosphereconfProfileEdge(node: OrgAtmosphereconfProfile)
22
22
+
}
23
23
+
24
24
+
pub fn org_atmosphereconf_profile_edge_decoder() -> decode.Decoder(OrgAtmosphereconfProfileEdge) {
25
25
+
use node <- decode.field("node", org_atmosphereconf_profile_decoder())
26
26
+
decode.success(OrgAtmosphereconfProfileEdge(node: node))
27
27
+
}
28
28
+
29
29
+
pub type OrgAtmosphereconfProfile {
30
30
+
OrgAtmosphereconfProfile(
31
31
+
id: String,
32
32
+
uri: String,
33
33
+
cid: String,
34
34
+
did: String,
35
35
+
actor_handle: Option(String),
36
36
+
display_name: Option(String),
37
37
+
description: Option(String),
38
38
+
avatar: Option(Blob),
39
39
+
home_town: Option(CommunityLexiconLocationHthree),
40
40
+
interests: Option(List(String)),
41
41
+
created_at: Option(String),
42
42
+
indexed_at: String,
43
43
+
)
44
44
+
}
45
45
+
46
46
+
pub fn org_atmosphereconf_profile_decoder() -> decode.Decoder(OrgAtmosphereconfProfile) {
47
47
+
use id <- decode.field("id", decode.string)
48
48
+
use uri <- decode.field("uri", decode.string)
49
49
+
use cid <- decode.field("cid", decode.string)
50
50
+
use did <- decode.field("did", decode.string)
51
51
+
use actor_handle <- decode.field("actorHandle", decode.optional(decode.string))
52
52
+
use display_name <- decode.field("displayName", decode.optional(decode.string))
53
53
+
use description <- decode.field("description", decode.optional(decode.string))
54
54
+
use avatar <- decode.field("avatar", decode.optional(blob_decoder()))
55
55
+
use home_town <- decode.field("homeTown", decode.optional(community_lexicon_location_hthree_decoder()))
56
56
+
use interests <- decode.field("interests", decode.optional(decode.list(decode.string)))
57
57
+
use created_at <- decode.field("createdAt", decode.optional(decode.string))
58
58
+
use indexed_at <- decode.field("indexedAt", decode.string)
59
59
+
decode.success(OrgAtmosphereconfProfile(
60
60
+
id: id,
61
61
+
uri: uri,
62
62
+
cid: cid,
63
63
+
did: did,
64
64
+
actor_handle: actor_handle,
65
65
+
display_name: display_name,
66
66
+
description: description,
67
67
+
avatar: avatar,
68
68
+
home_town: home_town,
69
69
+
interests: interests,
70
70
+
created_at: created_at,
71
71
+
indexed_at: indexed_at,
72
72
+
))
73
73
+
}
74
74
+
75
75
+
pub type Blob {
76
76
+
Blob(ref: String, mime_type: String, size: Int, url: String)
77
77
+
}
78
78
+
79
79
+
pub fn blob_decoder() -> decode.Decoder(Blob) {
80
80
+
use ref <- decode.field("ref", decode.string)
81
81
+
use mime_type <- decode.field("mimeType", decode.string)
82
82
+
use size <- decode.field("size", decode.int)
83
83
+
use url <- decode.field("url", decode.string)
84
84
+
decode.success(Blob(ref: ref, mime_type: mime_type, size: size, url: url))
85
85
+
}
86
86
+
87
87
+
pub type CommunityLexiconLocationHthree {
88
88
+
CommunityLexiconLocationHthree(name: Option(String), value: Option(String))
89
89
+
}
90
90
+
91
91
+
pub fn community_lexicon_location_hthree_decoder() -> decode.Decoder(CommunityLexiconLocationHthree) {
92
92
+
use name <- decode.field("name", decode.optional(decode.string))
93
93
+
use value <- decode.field("value", decode.optional(decode.string))
94
94
+
decode.success(CommunityLexiconLocationHthree(name: name, value: value))
95
95
+
}
96
96
+
97
97
+
pub type ListProfilesResponse {
98
98
+
ListProfilesResponse(
99
99
+
org_atmosphereconf_profiles: OrgAtmosphereconfProfileConnection,
100
100
+
)
101
101
+
}
102
102
+
103
103
+
pub fn list_profiles_response_decoder() -> decode.Decoder(ListProfilesResponse) {
104
104
+
use org_atmosphereconf_profiles <- decode.field("orgAtmosphereconfProfiles", org_atmosphereconf_profile_connection_decoder())
105
105
+
decode.success(ListProfilesResponse(
106
106
+
org_atmosphereconf_profiles: org_atmosphereconf_profiles,
107
107
+
))
108
108
+
}
109
109
+
110
110
+
pub fn list_profiles(client: squall.Client) -> Result(ListProfilesResponse, String) {
111
111
+
let query =
112
112
+
"query ListProfiles { orgAtmosphereconfProfiles { edges { node { id uri cid did actorHandle displayName description avatar { ref mimeType size url(preset: \"avatar\") } homeTown { name value } interests createdAt indexedAt } } } }"
113
113
+
let variables =
114
114
+
json.object([])
115
115
+
let body =
116
116
+
json.object([#("query", json.string(query)), #("variables", variables)])
117
117
+
use req <- result.try(
118
118
+
request.to(client.endpoint)
119
119
+
|> result.map_error(fn(_) { "Invalid endpoint URL" }),
120
120
+
)
121
121
+
let req =
122
122
+
req
123
123
+
|> request.set_method(http.Post)
124
124
+
|> request.set_body(json.to_string(body))
125
125
+
|> request.set_header("content-type", "application/json")
126
126
+
let req =
127
127
+
list.fold(client.headers, req, fn(r, header) {
128
128
+
request.set_header(r, header.0, header.1)
129
129
+
})
130
130
+
use resp <- result.try(
131
131
+
httpc.send(req)
132
132
+
|> result.map_error(fn(_) { "HTTP request failed" }),
133
133
+
)
134
134
+
use json_value <- result.try(
135
135
+
json.parse(from: resp.body, using: decode.dynamic)
136
136
+
|> result.map_error(fn(_) { "Failed to decode JSON response" }),
137
137
+
)
138
138
+
let data_and_response_decoder = {
139
139
+
use data <- decode.field("data", list_profiles_response_decoder())
140
140
+
decode.success(data)
141
141
+
}
142
142
+
decode.run(json_value, data_and_response_decoder)
143
143
+
|> result.map_error(fn(_) { "Failed to decode response data" })
144
144
+
}
+28
server/src/api/graphql/list_profiles.gql
···
1
1
+
query ListProfiles {
2
2
+
orgAtmosphereconfProfiles {
3
3
+
edges {
4
4
+
node {
5
5
+
id
6
6
+
uri
7
7
+
cid
8
8
+
did
9
9
+
actorHandle
10
10
+
displayName
11
11
+
description
12
12
+
avatar {
13
13
+
ref
14
14
+
mimeType
15
15
+
size
16
16
+
url(preset: "avatar")
17
17
+
}
18
18
+
homeTown {
19
19
+
name
20
20
+
value
21
21
+
}
22
22
+
interests
23
23
+
createdAt
24
24
+
indexedAt
25
25
+
}
26
26
+
}
27
27
+
}
28
28
+
}
+36
server/src/server.gleam
···
194
194
// API endpoint to get current user
195
195
Get, ["api", "user", "current"] -> get_current_user_json(req, db)
196
196
197
197
+
// API endpoint to list all attendees
198
198
+
Get, ["api", "attendees"] -> fetch_attendees_json(req, db)
199
199
+
197
200
// API endpoint to fetch profile data as JSON
198
201
Get, ["api", "profile", handle] -> fetch_profile_json(handle, req, db)
199
202
···
204
207
// Profile routes - prerender with data
205
208
Get, ["profile", handle] -> serve_profile(handle, req, db)
206
209
Get, ["profile", handle, "edit"] -> serve_profile(handle, req, db)
210
210
+
211
211
+
// Attendees page
212
212
+
Get, ["attendees"] -> serve_index(option.None, req, db)
207
213
208
214
// Everything else gets our base HTML
209
215
Get, _ -> serve_index(option.None, req, db)
···
337
343
}
338
344
Error(err) -> {
339
345
wisp.log_error("API: Error fetching profile: " <> err)
346
346
+
wisp.json_response(
347
347
+
json.to_string(json.object([#("error", json.string(err))])),
348
348
+
500,
349
349
+
)
350
350
+
}
351
351
+
}
352
352
+
}
353
353
+
354
354
+
fn fetch_attendees_json(req: Request, db: sqlight.Connection) -> Response {
355
355
+
// Get access token from session if available
356
356
+
let access_token = case session.get_current_user(req, db) {
357
357
+
Ok(#(_, _, token)) -> token
358
358
+
Error(_) -> ""
359
359
+
}
360
360
+
361
361
+
let config = get_graphql_config(access_token)
362
362
+
363
363
+
wisp.log_info("API: Fetching all attendees")
364
364
+
365
365
+
case graphql.list_profiles(config) {
366
366
+
Ok(profiles) -> {
367
367
+
wisp.log_info(
368
368
+
"API: Found " <> int.to_string(list.length(profiles)) <> " profiles",
369
369
+
)
370
370
+
let profiles_json = json.array(profiles, profile.profile_to_json)
371
371
+
json.to_string(profiles_json)
372
372
+
|> wisp.json_response(200)
373
373
+
}
374
374
+
Error(err) -> {
375
375
+
wisp.log_error("API: Error fetching attendees: " <> err)
340
376
wisp.json_response(
341
377
json.to_string(json.object([#("error", json.string(err))])),
342
378
500,
+1
shared/.gitignore
···
2
2
*.ez
3
3
/build
4
4
erl_crash.dump
5
5
+
.DS_Store