aboutsummaryrefslogtreecommitdiff
path: root/advtrains_interlocking/database.lua
blob: 6787c504e583139f45712cc0c1690879ed44fc91 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
-- interlocking/database.lua
-- saving the location of TCB's, their neighbors and their state
--[[

== THIS COMMENT IS PARTIALLY INCORRECT AND OUTDATED! ==

The interlocking system is based on track circuits.
Track circuit breaks must be manually set by the user. Signals must be assigned to track circuit breaks and to a direction(connid).
To simplify the whole system, there is no overlap.
== Trains ==
Trains always occupy certain track circuits. These are shown red in the signalbox view (TRAIN occupation entry).
== Database storage ==
The things that are actually saved are the Track Circuit Breaks. Each TCB holds a list of the TCBs that are adjacent in each direction.
TC occupation/state is then saved inside each (TCB,Direction) and held in sync across all TCBs adjacent to this one. If something should not be in sync,
all entries are merged to perform the most restrictive setup.
== Traverser function ==
To determine and update the list of neighboring TCBs, we need a traverser function.
It will start at one TCB in a specified direction (connid) and use get_adjacent_rail to crawl along the track. When encountering a turnout or a crossing,
it needs to branch(call itself recursively) to find all required TCBs. Those found TCBs are then saved in a list as tuples (TCB,Dir)
In the last step, they exchange their neighbors.
== TC states ==
A track circuit does not have a state as such, but has more or less a list of "reservations"
type can be one of these:
TRAIN See Trains obove
ROUTE Route set from a signal, but no train has yet passed that signal.
Not implemented (see note by reversible): OWNED - former ROUTE segments that a train has begun passing (train_id assigned)
		  - Space behind a train up to the next signal, when a TC is set as REVERSIBLE
Certain TCs can be marked as "allow call-on".
== Route setting: ==
Routes are set from a signal (the entry signal) to another signal facing the same direction (the exit signal)
Remember that signals are assigned to a TCB and a connid.
Whenever this is done, the following track circuits are set "reserved" by the train by saving the entry signal's ID:
- all TCs on the direct way of the route - set as ROUTE
Route setting fails whenever any TC that we want to set ROUTE to is already set ROUTE or TRAIN from another signal (except call-on, see below)
Apart from this, we need to set turnouts
- Turnouts on the track are set held as ROUTE
- Turnouts that purpose as flank protection are set held as FLANK (NOTE: left as an idea for later, because it's not clear how to do this properly without an engineer)
Note: In SimSig, it is possible to set a route into an still occupied section on the victoria line sim. (at the depot exit at seven sisters), although
	there are still segments set ahead of the first train passing, remaining from another route.
	Because our system will be able to remember "requested routes" and set them automatically once ready, this is not necessary here.
== Call-On/Multiple Trains ==
It will be necessary to join and split trains using call-on routes. A call-on route may be set when:
- there are no ROUTE reservations
- there are TRAIN reservations only inside TCs that have "allow call-on" set
== TC Properties ==
Note: Reversible property will not be implemented, assuming everything as non-rev.
This is sufficient to cover all use cases, and is done this way in reality.
	REVERSIBLE - Whether trains are allowed to reverse while on track circuit
	This property is supposed to be set for station tracks, where there is a signal at each end, and for sidings.
	It should in no case be set for TCs covering turnouts, or for main running lines.
	When a TC is not set as reversible, the OWNED status is cleared from the TC right after the train left it,
	to allow other trains to pass it.
	If it is set reversible, interlocking will keep the OWNED state behind the train up to the next signal, clearing it
	as soon as the train passes another signal or enters a non-reversible section.
CALL_ON_ALLOWED - Whether this TC being blocked (TRAIN or ROUTE) does not prevent shunt routes being set through this TC
== More notes ==
- It may not be possible to switch turnouts when their TC has any state entry

== Route releasing (TORR) ==
A train passing through a route happens as follows:
Route set from entry to exit signal
Train passes entry signal and enters first TC past the signal
-> Route from signal cleared (TCs remain locked)
-> ROUTE status of first TC past signal cleared
Train continues along the route.
Whenever train leaves a TC
-> Clearing any routes set from this TC outward recursively - see "Reversing problem"
Whenever train enters a TC
-> Clear route status from the just entered TC
Note that this prohibits by design that the train clears the route ahead of it.
== Reversing Problem ==
Encountered at the Royston simulation in SimSig. It is solved there by imposing a time limit on the set route. Call-on routes can somehow be set anyway.
Imagine this setup: (T=Train, R=Route, >=in_dir TCB)
    O-|  Royston P2 |-O
T->---|->RRR-|->RRR-|--
Train T enters from the left, the route is set to the right signal. But train is supposed to reverse here and stops this way:
    O-|  Royston P2 |-O
------|-TTTT-|->RRR-|--
The "Route" on the right is still set. Imposing a timeout here is a thing only professional engineers can determine, not an algorithm.
    O-|  Royston P2 |-O
<-T---|------|->RRR-|--
The train has left again, while route on the right is still set.
So, we have to clear the set route when the train has left the left TC.
This does not conflict with call-on routes, because both station tracks are set as "allow call-on"
Because none of the routes extends past any non-call-on sections, call-on route would be allowed here, even though the route
is locked in opposite direction at the time of routesetting.
Another case of this:
--TTT/--|->RRR--
The / here is a non-interlocked turnout (to a non-frequently used siding). For some reason, there is no exit node there,
so the route is set to the signal at the right end. The train is taking the exit to the siding and frees the TC, without ever
having touched the right TC.
]]--

local TRAVERSER_LIMIT = 1000


local ildb = {}

local track_circuit_breaks = {}
local track_sections = {}

-- Assignment of signals to TCBs
local signal_assignments = {}

-- track+direction -> signal position
local influence_points = {}

advtrains.interlocking.npr_rails = {}


function ildb.load(data)
	if not data then return end
	if data.tcbs then
		track_circuit_breaks = data.tcbs
	end
	if data.ts then
		track_sections = data.ts
	end
	if data.signalass then
		signal_assignments = data.signalass
	end
	if data.rs_locks then
		advtrains.interlocking.route.rte_locks = data.rs_locks
	end
	if data.rs_callbacks then
		advtrains.interlocking.route.rte_callbacks = data.rs_callbacks
	end
	if data.influence_points then
		influence_points = data.influence_points
	end
	if data.npr_rails then
		advtrains.interlocking.npr_rails = data.npr_rails
	end
	
	--COMPATIBILITY to Signal aspect format
	-- TODO remove in time...
	for pts,tcb in pairs(track_circuit_breaks) do
		for connid, tcbs in ipairs(tcb) do
			if tcbs.routes then
				for _,route in ipairs(tcbs.routes) do
					if route.aspect then
						-- transform the signal aspect format
						local asp = route.aspect
						if type(asp.main) == "table" then
							atwarn("Transforming route aspect of signal",pts,"/",connid,"")
							if asp.main.free then
								asp.main = asp.main.speed
							else
								asp.main = 0
							end
							if asp.dst.free then
								asp.dst = asp.dst.speed
							else
								asp.dst = 0
							end
							asp.proceed_as_main = asp.shunt.proceed_as_main
							asp.shunt = asp.shunt.free
							-- Note: info table not transferred, it's not used right now
						end
					end
				end
			end
		end
	end
end

function ildb.save()
	return {
		tcbs = track_circuit_breaks,
		ts=track_sections,
		signalass = signal_assignments,
		rs_locks = advtrains.interlocking.route.rte_locks,
		rs_callbacks = advtrains.interlocking.route.rte_callbacks,
		influence_points = influence_points,
		npr_rails = advtrains.interlocking.npr_rails,
	}
end

--
--[[
TCB data structure
{
-- This is the "A" side of the TCB
[1] = { -- Variant: with adjacent TCs.
	ts_id = <id> -- ID of the assigned track section
	signal = <pos> -- optional: when set, routes can be set from this tcb/direction and signal
	-- aspect will be set accordingly.
	routeset = <index in routes> -- Route set from this signal. This is the entry that is cleared once
	-- train has passed the signal. (which will set the aspect to "danger" again)
	route_committed = <boolean> -- When setting/requesting a route, routetar will be set accordingly,
	-- while the signal still displays danger and nothing is written to the TCs
	-- As soon as the route can actually be set, all relevant TCs and turnouts are set and this field
	-- is set true, clearing the signal
	aspect = <asp> -- The aspect the signal should show. If this is nil, should show the most restrictive aspect (red)
	signal_name = <string> -- The human-readable name of the signal, only for documenting purposes
	routes = { <route definition> } -- a collection of routes from this signal
	route_auto = <boolean> -- When set, we will automatically re-set the route (designated by routeset)
},
-- This is the "B" side of the TCB
[2] = { -- Variant: end of track-circuited area (initial state of TC)
	ts_id = nil, -- this is the indication for end_of_interlocking
	section_free = <boolean>, --this can be set by an exit node via mesecons or atlatc, 
	-- or from the tc formspec.
}
}

Track section
[id] = {
	name = "Some human-readable name"
	tc_breaks = { <signal specifier>,... } -- Bounding TC's (signal specifiers)
	-- Can be direct ends (auto-detected), conflicting routes or TCBs that are too far away from each other
	route = {
		origin = <signal>,  -- route origin
		entry = <sigd>,     -- supposed train entry point
		rsn = <string>,
		first = <bool>
	}
	route_post = {
		locks = {[n] = <pts>}
		next = <sigd>
	}
	-- Set whenever a route has been set through this TC. It saves the origin tcb id and side
	-- (=the origin signal). rsn is some description to be shown to the user
	-- first says whether to clear the routesetting status from the origin signal.
	-- locks contains the positions where locks are held by this ts.
	-- 'route' is cleared when train enters the section, while 'route_post' cleared when train leaves section.
	trains = {<id>, ...} -- Set whenever a train (or more) reside in this TC
}


Signal specifier (sigd) (a pair of TCB/Side):
{p = <pos>, s = <1/2>}

Signal Assignments: reverse lookup of signals assigned to TCBs
signal_assignments = {
[<signal pts>] = <sigd>
}
]]


--
function ildb.create_tcb(pos)
	local new_tcb = {
		[1] = {},
		[2] = {},
	}
	local pts = advtrains.roundfloorpts(pos)
	if not track_circuit_breaks[pts] then
		track_circuit_breaks[pts] = new_tcb
		return true
	else
		return false
	end
end

function ildb.get_tcb(pos)
	local pts = advtrains.roundfloorpts(pos)
	return track_circuit_breaks[pts]
end

function ildb.get_tcbs(sigd)
	local tcb = ildb.get_tcb(sigd.p)
	if not tcb then return nil end
	return tcb[sigd.s]
end


function ildb.create_ts(sigd)
	local tcbs = ildb.get_tcbs(sigd)
	local id = advtrains.random_id()
	
	while track_sections[id] do
		id = advtrains.random_id()
	end
	
	track_sections[id] = {
		name = "Section "..id,
		tc_breaks = { sigd }
	}
	tcbs.ts_id = id
end

function ildb.get_ts(id)
	return track_sections[id]
end



-- various helper functions handling sigd's
local sigd_equal = advtrains.interlocking.sigd_equal
local function insert_sigd_nodouble(list, sigd)
	for idx, cmp in pairs(list) do
		if sigd_equal(sigd, cmp) then
			return
		end
	end
	table.insert(list, sigd)
end


-- This function will actually handle the node that is in connid direction from the node at pos
-- so, this needs the conns of the node at pos, since these are already calculated
local function traverser(found_tcbs, pos, conns, connid, count, brk_when_found_n)
	local adj_pos, adj_connid, conn_idx, nextrail_y, next_conns = advtrains.get_adjacent_rail(pos, conns, connid, advtrains.all_tracktypes)
	if not adj_pos then
		--atdebug("Traverser found end-of-track at",pos, connid)
		return
	end
	-- look whether there is a TCB here
	if #next_conns == 2 then --if not, don't even try!
		local tcb = ildb.get_tcb(adj_pos)
		if tcb then
			-- done with this branch
			--atdebug("Traverser found tcb at",adj_pos, adj_connid)
			insert_sigd_nodouble(found_tcbs, {p=adj_pos, s=adj_connid})
			return
		end
	end
	-- recursion abort condition
	if count > TRAVERSER_LIMIT then
		--atdebug("Traverser hit counter at",adj_pos, adj_connid)
		return true
	end
	-- continue traversing
	local counter_hit = false
	for nconnid, nconn in ipairs(next_conns) do
		if adj_connid ~= nconnid then
			counter_hit = counter_hit or traverser(found_tcbs, adj_pos, next_conns, nconnid, count + 1, brk_when_found_n)
			if brk_when_found_n and #found_tcbs>=brk_when_found_n then
				break
			end
		end
	end
	return counter_hit
end



-- Merges the TS with merge_id into root_id and then deletes merge_id
local function merge_ts(root_id, merge_id)
	local rts = ildb.get_ts(root_id)
	local mts = ildb.get_ts(merge_id)
	if not mts then return end -- This may be the case when sync_tcb_neighbors
	-- inserts the same id twice. do nothing.
	
	if not ildb.may_modify_ts(rts) then return false end
	if not ildb.may_modify_ts(mts) then return false end
	
	-- cobble together the list of TCBs
	for _, msigd in ipairs(mts.tc_breaks) do
		local tcbs = ildb.get_tcbs(msigd)
		if tcbs then
			insert_sigd_nodouble(rts.tc_breaks, msigd)
			tcbs.ts_id = root_id
		end
		advtrains.interlocking.show_tcb_marker(msigd.p)
	end
	-- done
	track_sections[merge_id] = nil
end

local lntrans = { "A", "B" }
local function sigd_to_string(sigd)
	return minetest.pos_to_string(sigd.p).." / "..lntrans[sigd.s]
end

-- Check for near TCBs and connect to their TS if they have one, and syncs their data.
function ildb.sync_tcb_neighbors(pos, connid)
	local found_tcbs = { {p = pos, s = connid} }
	local node_ok, conns, rhe = advtrains.get_rail_info_at(pos, advtrains.all_tracktypes)
	if not node_ok then
		atwarn("update_tcb_neighbors but node is NOK: "..minetest.pos_to_string(pos))
		return
	end
	
	--atdebug("Traversing from ",pos, connid)
	local counter_hit = traverser(found_tcbs, pos, conns, connid, 0)
	
	local ts_id
	local list_eoi = {}
	local list_ok = {}
	local list_mismatch = {}
	local ts_to_merge = {}
	
	for idx, sigd in pairs(found_tcbs) do
		local tcbs = ildb.get_tcbs(sigd)
		if not tcbs.ts_id then
			--atdebug("Sync: put",sigd_to_string(sigd),"into list_eoi")
			table.insert(list_eoi, sigd)
		elseif not ts_id and tcbs.ts_id then
			if not ildb.get_ts(tcbs.ts_id) then
				atwarn("Track section database is inconsistent, there's no TS with ID=",tcbs.ts_id)
				tcbs.ts_id = nil
				table.insert(list_eoi, sigd)
			else
				--atdebug("Sync: put",sigd_to_string(sigd),"into list_ok")
				ts_id = tcbs.ts_id
				table.insert(list_ok, sigd)
			end
		elseif ts_id and tcbs.ts_id and tcbs.ts_id ~= ts_id then
			atwarn("Track section database is inconsistent, sections share track!")
			atwarn("Merging",tcbs.ts_id,"into",ts_id,".")
			table.insert(list_mismatch, sigd)
			table.insert(ts_to_merge, tcbs.ts_id)
		end
	end
	if ts_id then
		local ts = ildb.get_ts(ts_id)
		for _, sigd in ipairs(list_eoi) do
			local tcbs = ildb.get_tcbs(sigd)
			tcbs.ts_id = ts_id
			table.insert(ts.tc_breaks, sigd)
			advtrains.interlocking.show_tcb_marker(sigd.p)
		end
		for _, mts in ipairs(ts_to_merge) do
			merge_ts(ts_id, mts)
		end
	end
end

function ildb.link_track_sections(merge_id, root_id)
	if merge_id == root_id then
		return
	end
	merge_ts(root_id, merge_id)
end

function ildb.remove_from_interlocking(sigd)
	local tcbs = ildb.get_tcbs(sigd)
	if not ildb.may_modify_tcbs(tcbs) then return false end
	
	if tcbs.ts_id then
		local tsid = tcbs.ts_id
		local ts = ildb.get_ts(tsid)
		if not ts then
			tcbs.ts_id = nil
			return true
		end
		
		-- remove entry from the list
		local idx = 1
		while idx <= #ts.tc_breaks do
			local cmp = ts.tc_breaks[idx]
			if sigd_equal(sigd, cmp) then
				table.remove(ts.tc_breaks, idx)
			else
				idx = idx + 1
			end
		end
		tcbs.ts_id = nil
		
		--ildb.sync_tcb_neighbors(sigd.p, sigd.s)
		
		if #ts.tc_breaks == 0 then
			track_sections[tsid] = nil
		end
	end
	advtrains.interlocking.show_tcb_marker(sigd.p)
	if tcbs.signal then
		return false
	end
	return true
end

function ildb.remove_tcb(pos)
	local pts = advtrains.roundfloorpts(pos)
	if not track_circuit_breaks[pts] then
		return true --FIX: not an error, because tcb is already removed
	end
	for connid=1,2 do
		if not ildb.remove_from_interlocking({p=pos, s=connid}) then
			return false
		end
	end
	track_circuit_breaks[pts] = nil
	return true
end

function ildb.dissolve_ts(ts_id)
	local ts = ildb.get_ts(ts_id)
	if not ildb.may_modify_ts(ts) then return false end
	local tcbr = advtrains.merge_tables(ts.tc_breaks)
	for _,sigd in ipairs(tcbr) do
		ildb.remove_from_interlocking(sigd)
	end
	-- Note: ts gets removed in the moment of the removal of the last TCB.
	return true
end

-- Returns true if it is allowed to modify any property of a track section, such as
-- - removing TCBs
-- - merging and dissolving sections
-- As of now the action will be denied if a route is set or if a train is in the section.
function ildb.may_modify_ts(ts)
	if ts.route or ts.route_post or (ts.trains and #ts.trains>0) then
		return false
	end
	return true
end


function ildb.may_modify_tcbs(tcbs)
	if tcbs.ts_id then
		local ts = ildb.get_ts(tcbs.ts_id)
		if ts and not ildb.may_modify_ts(ts) then
			return false
		end
	end
	return true
end

-- Utilize the traverser to find the track section at the specified position
-- Returns:
-- ts_id, origin - the first found ts and the sigd of the found tcb
-- nil - there were no TCBs in TRAVERSER_MAX range of the position
-- false - the first found TCB stated End-Of-Interlocking, or track ends were reached
function ildb.get_ts_at_pos(pos)
	local node_ok, conns, rhe = advtrains.get_rail_info_at(pos, advtrains.all_tracktypes)
	if not node_ok then
		error("get_ts_at_pos but node is NOK: "..minetest.pos_to_string(pos))
	end
	local limit_hit = false
	local found_tcbs = {}
	for connid, conn in ipairs(conns) do -- Note: a breadth-first-search would be better for performance
		limit_hit = limit_hit or traverser(found_tcbs, pos, conns, connid, 0, 1)
		if #found_tcbs >= 1 then
			local tcbs = ildb.get_tcbs(found_tcbs[1])
			local ts
			if tcbs.ts_id then
				return tcbs.ts_id, found_tcbs[1]
			else
				return false
			end
		end
	end
	if limit_hit then
		-- there was at least one limit hit
		return nil
	else
		-- all traverser ends were track ends
		return false
	end
end


-- returns the sigd the signal at pos belongs to, if this is known
function ildb.get_sigd_for_signal(pos)
	local pts = advtrains.roundfloorpts(pos)
	local sigd = signal_assignments[pts]
	if sigd then
		if not ildb.get_tcbs(sigd) then
			signal_assignments[pts] = nil
			return nil
		end
		return sigd
	end
	return nil
end
function ildb.set_sigd_for_signal(pos, sigd)
	local pts = advtrains.roundfloorpts(pos)
	signal_assignments[pts] = sigd
end

-- checks if there's any influence point set to this position
-- if purge is true, checks whether the associated signal still exists
-- and deletes the ip if not.
function ildb.is_ip_at(pos, purge)
	local pts = advtrains.roundfloorpts(pos)
	if influence_points[pts] then
		if purge then
			-- is there still a signal assigned to it?
			for connid, sigpos in pairs(influence_points[pts]) do
				local asp = advtrains.interlocking.signal_get_aspect(sigpos)
				if not asp then
					atlog("Clearing orphaned signal influence point", pts, "/", connid)
					ildb.clear_ip_signal(pts, connid)
				end
			end
			-- if there's no side left after purging, return false
			if not influence_points[pts] then return false end
		end
		return true
	end
	return false
end

-- checks if a signal is influencing here
function ildb.get_ip_signal(pts, connid)
	if influence_points[pts] then
		return influence_points[pts][connid]
	end
end

-- Tries to get aspect to obey here, if there
-- is a signal ip at this location
-- auto-clears invalid assignments
function ildb.get_ip_signal_asp(pts, connid)
	local p = ildb.get_ip_signal(pts, connid)
	if p then
		local asp = advtrains.interlocking.signal_get_aspect(p)
		if not asp then
			atlog("Clearing orphaned signal influence point", pts, "/", connid)
			ildb.clear_ip_signal(pts, connid)
			return nil
		end
		return asp, p
	end
	return nil
end

-- set signal assignment.
function ildb.set_ip_signal(pts, connid, spos)
	ildb.clear_ip_by_signalpos(spos)
	if not influence_points[pts] then
		influence_points[pts] = {}
	end
	influence_points[pts][connid] = spos
end
-- clear signal assignment.
function ildb.clear_ip_signal(pts, connid)
	influence_points[pts][connid] = nil
	for _,_ in pairs(influence_points[pts]) do
		return
	end
	influence_points[pts] = nil
end

function ildb.get_ip_by_signalpos(spos)
	for pts,tab in pairs(influence_points) do
		for connid,pos in pairs(tab) do
			if vector.equals(pos, spos) then
				return pts, connid
			end
		end
	end
end
function ildb.check_for_duplicate_ip(spos)
	local main_ip_found = false
	-- first pass: check for duplicates
	for pts,tab in pairs(influence_points) do
		for connid,pos in pairs(tab) do
			if vector.equals(pos, spos) then
				if main_ip_found then
					atwarn("Signal at",spos,": Deleting duplicate signal influence point at",pts,"/",connid)
					tab[connid] = nil
				end
				main_ip_found = true
			end
		end
	end
	-- second pass: delete empty tables
	for pts,tab in pairs(influence_points) do
		if not tab[1] and not tab[2] then -- only those two connids may exist
			influence_points[pts] = nil
		end
	end
end

-- clear signal assignment given the signal position
function ildb.clear_ip_by_signalpos(spos)
	local pts, connid = ildb.get_ip_by_signalpos(spos)
	if pts then ildb.clear_ip_signal(pts, connid) end
end


advtrains.interlocking.db = ildb




> 68 ca 74 3d 04 bf 50 bd 84 dd 41 3f 35 75 1a 3f 00 d2 7f 3e 86 8e c3 3e a4 15 fd 3e ec d4 09 bf h.t=..P...A?5u.?...>...>...>.... 33e0 d0 ca e0 3d 84 af 50 bd 6c 0b 36 3f 54 c5 29 bf de 01 6f 3e ee 93 d3 3e a2 15 fd 3e 90 f9 f5 be ...=..P.l.6?T.)...o>...>...>.... 3400 24 3f e1 3d 9f 22 95 be 79 5f 3c 3f 57 7f 2b bf 94 e1 c9 3d f0 93 d3 3e 7f 3e 19 3f 08 cb 09 bf $?.=."..y_<?W.+....=...>.>.?.... 3420 68 ca 74 3d 04 bf 50 bd 84 dd 41 3f 35 75 1a 3f 00 d2 7f 3e 86 8e c3 3e a4 15 fd 3e b4 17 24 bf h.t=..P...A?5u.?...>...>...>..$. 3440 f0 0a 74 3d cd ff 46 3e 7b 63 3d 3f 2e db 16 3f 4c 3d a6 3e 84 8e c3 3e 4a ae c7 3e b4 17 24 bf ..t=..F>{c=?...?L=.>...>J..>..$. 3460 e0 6b e0 3d cd ff 46 3e 65 73 32 3f 4c fd 25 bf 39 a5 9c 3e ea 93 d3 3e 48 ae c7 3e ec d4 09 bf .k.=..F>es2?L.%.9..>...>H..>.... 3480 d0 ca e0 3d 84 af 50 bd 6c 0b 36 3f 54 c5 29 bf de 01 6f 3e ee 93 d3 3e a2 15 fd 3e b4 17 24 bf ...=..P.l.6?T.)...o>...>...>..$. 34a0 f0 0a 74 3d cd ff 46 3e 7b 63 3d 3f 2e db 16 3f 4c 3d a6 3e 84 8e c3 3e 4a ae c7 3e 76 4e 3e bf ..t=..F>{c=?...?L=.>...>J..>vN>. 34c0 20 c7 74 3d b6 e1 d5 3e 76 05 3b 3f 2d 9f 16 3f 63 65 b1 3e 82 8e c3 3e f0 46 92 3e 76 4e 3e bf ..t=...>v.;?-..?ce.>...>.F.>vN>. 34e0 f8 c9 e0 3d b6 e1 d5 3e 60 41 30 3f 4b 8d 25 bf 50 09 a8 3e e6 93 d3 3e ec 46 92 3e b4 17 24 bf ...=...>`A0?K.%.P..>...>.F.>..$. 3500 e0 6b e0 3d cd ff 46 3e 65 73 32 3f 4c fd 25 bf 39 a5 9c 3e ea 93 d3 3e 48 ae c7 3e 76 4e 3e bf .k.=..F>es2?L.%.9..>...>H..>vN>. 3520 20 c7 74 3d b6 e1 d5 3e 76 05 3b 3f 2d 9f 16 3f 63 65 b1 3e 82 8e c3 3e f0 46 92 3e 10 f4 56 bf ..t=...>v.;?-..?ce.>...>.F.>..V. 3540 d0 aa 75 3d c4 fa 1c 3f 76 dd 3a 3f 2c f3 15 3f 69 51 b4 3e 81 8e c3 3e 28 bf 39 3e 10 f4 56 bf ..u=...?v.:?,..?iQ.>...>(.9>..V. 3560 d0 3b e1 3d c4 fa 1c 3f 61 7b 30 3f 49 a1 24 bf 55 a9 aa 3e e4 93 d3 3e 20 bf 39 3e 76 4e 3e bf .;.=...?a{0?I.$.U..>...>..9>vN>. 3580 f8 c9 e0 3d b6 e1 d5 3e 60 41 30 3f 4b 8d 25 bf 50 09 a8 3e e6 93 d3 3e ec 46 92 3e 5a 14 80 bf ...=...>`A0?K.%.P..>...>.F.>Z... 35a0 08 d7 23 3d 19 2e 40 3f 72 f1 b8 be dd 67 6e 3f 80 e1 3f 3d ea 16 1c 3f d0 e0 9d 3d 7e 4e 6b bf ..#=..@?r....gn?..?=...?...=~Nk. 35c0 f0 b6 23 3d 4d 9a 11 3f 21 61 90 be e7 4b 73 3f 0d 79 06 be ea 16 1c 3f 20 bf 39 3e 50 1a 5d bf ..#=M..?!a...Ks?.y.....?..9>P.]. 35e0 d0 a4 75 3d b0 55 18 3f 75 53 3a bf 31 b9 18 3f 5a 1d ad be 25 b0 11 3f 1c bf 39 3e 18 02 72 bf ..u=.U.?uS:.1..?Z...%..?..9>..r. 3600 90 c2 75 3d 45 3c 47 3f 7d a3 3e bf 24 fd 91 3e 35 79 1a 3f 23 b0 11 3f c8 e0 9d 3d 7e 4e 6b bf ..u=E<G?}.>.$..>5y.?#..?...=~Nk. 3620 f0 b6 23 3d 4d 9a 11 3f 21 61 90 be e7 4b 73 3f 0d 79 06 be ea 16 1c 3f 20 bf 39 3e 72 4f 53 bf ..#=M..?!a...Ks?.y.....?..9>rOS. 3640 d8 ce 22 3d 1a 23 c0 3e 22 31 91 be e6 ff 72 3f 17 79 0b be ea 16 1c 3f ea 46 92 3e 8a d9 44 bf .."=.#.>"1....r?.y.....?.F.>..D. 3660 b0 b9 74 3d be c7 ca 3e 72 25 39 bf 32 2f 19 3f 61 85 b0 be 27 b0 11 3f e8 46 92 3e 50 1a 5d bf ..t=...>r%9.2/.?a...'..?.F.>P.]. 3680 d0 a4 75 3d b0 55 18 3f 75 53 3a bf 31 b9 18 3f 5a 1d ad be 25 b0 11 3f 1c bf 39 3e 72 4f 53 bf ..u=.U.?uS:.1..?Z...%..?..9>rOS. 36a0 d8 ce 22 3d 1a 23 c0 3e 22 31 91 be e6 ff 72 3f 17 79 0b be ea 16 1c 3f ea 46 92 3e 20 8f 39 bf .."=.#.>"1....r?.y.....?.F.>..9. 36c0 68 1f 22 3d 23 9c 26 3e 25 8d 92 be e6 01 73 3f 0b 51 05 be ea 16 1c 3f 44 ae c7 3e b8 71 2a bf h."=#.&>%.....s?.Q.....?D..>.q*. 36e0 f0 0a 74 3d fd b2 36 3e 78 1d 3c bf 2f 93 17 3f 53 5d a9 be 28 b0 11 3f 44 ae c7 3e 8a d9 44 bf ..t=..6>x.<./..?S]..(..?D..>..D. 3700 b0 b9 74 3d be c7 ca 3e 72 25 39 bf 32 2f 19 3f 61 85 b0 be 27 b0 11 3f e8 46 92 3e 20 8f 39 bf ..t=...>r%9.2/.?a...'..?.F.>..9. 3720 68 1f 22 3d 23 9c 26 3e 25 8d 92 be e6 01 73 3f 0b 51 05 be ea 16 1c 3f 44 ae c7 3e 34 35 20 bf h."=#.&>%.....s?.Q.....?D..>45.. 3740 08 ce 22 3d c1 a3 8a bd 2b 8d 95 be e7 79 73 3f 9b b1 cd bd ea 16 1c 3f 9e 15 fd 3e 24 63 10 bf .."=....+....ys?.......?...>$c.. 3760 58 bf 74 3d 46 c4 67 bd 8d 69 46 bf 27 81 13 3f 0a c9 84 be 2a b0 11 3f a0 15 fd 3e b8 71 2a bf X.t=F.g..iF.'..?....*..?...>.q*. 3780 f0 0a 74 3d fd b2 36 3e 78 1d 3c bf 2f 93 17 3f 53 5d a9 be 28 b0 11 3f 44 ae c7 3e 34 35 20 bf ..t=..6>x.<./..?S]..(..?D..>45.. 37a0 08 ce 22 3d c1 a3 8a bd 2b 8d 95 be e7 79 73 3f 9b b1 cd bd ea 16 1c 3f 9e 15 fd 3e fe 77 11 bf .."=....+....ys?.......?...>.w.. 37c0 c0 b7 23 3d 4c 9c 97 be 35 95 9a be e8 cb 73 3f 64 21 32 bd ea 16 1c 3f 7c 3e 19 3f 74 78 01 bf ..#=L...5.....s?d!2....?|>.?tx.. 37e0 e8 aa 75 3d 16 d5 95 be a0 1d 50 bf 25 4f 12 3f c8 31 e4 bd 2c b0 11 3f 7d 3e 19 3f 24 63 10 bf ..u=......P.%O.?.1..,..?}>.?$c.. 3800 58 bf 74 3d 46 c4 67 bd 8d 69 46 bf 27 81 13 3f 0a c9 84 be 2a b0 11 3f a0 15 fd 3e e4 32 d3 be X.t=F.g..iF.'..?....*..?...>.2.. 3820 08 d7 23 3d 16 98 ff be 36 cd 9a 3e de 23 6f 3f 84 01 42 be fa c0 ae 3e 2e f2 33 3f 5c 0a d6 be ..#=....6..>.#o?..B....>..3?\... 3840 38 cc 23 3d 0a 57 93 be 36 f9 9a 3e e8 c7 73 3f 3e c1 1e 3d fc c0 ae 3e 81 3e 19 3f 4c f1 f5 be 8.#=.W..6..>..s?>..=...>.>.?L... 3860 20 b2 75 3d 6e 23 95 be 92 39 49 3f 38 e9 1b 3f b2 e1 d8 3d 87 8e c3 3e 80 3e 19 3f 78 d2 f2 be ..u=n#...9I?8..?...=...>.>.?x... 3880 90 c2 75 3d 49 d6 ff be a8 11 d4 3e 33 a9 99 3e b8 f7 5b bf 89 8e c3 3e 2d f2 33 3f 5c 0a d6 be ..u=I......>3..>..[....>-.3?\... 38a0 38 cc 23 3d 0a 57 93 be 36 f9 9a 3e e8 c7 73 3f 3e c1 1e 3d fc c0 ae 3e 81 3e 19 3f bc f1 f3 be 8.#=.W..6..>..s?>..=...>.>.?.... 38c0 e0 e4 22 3d df f3 22 bd 2c 25 96 3e e7 89 73 3f 83 91 c1 3d ff c0 ae 3e a8 15 fd 3e 08 cb 09 bf .."=..".,%.>..s?...=...>...>.... 38e0 68 ca 74 3d 04 bf 50 bd 84 dd 41 3f 35 75 1a 3f 00 d2 7f 3e 86 8e c3 3e a4 15 fd 3e 4c f1 f5 be h.t=..P...A?5u.?...>...>...>L... 3900 20 b2 75 3d 6e 23 95 be 92 39 49 3f 38 e9 1b 3f b2 e1 d8 3d 87 8e c3 3e 80 3e 19 3f bc f1 f3 be ..u=n#...9I?8..?...=...>.>.?.... 3920 e0 e4 22 3d df f3 22 bd 2c 25 96 3e e7 89 73 3f 83 91 c1 3d ff c0 ae 3e a8 15 fd 3e e2 fa 14 bf .."=..".,%.>..s?...=...>...>.... 3940 68 1f 22 3d 0a 51 57 3e 26 e5 92 3e e6 1d 73 3f 01 a1 00 3e 01 c1 ae 3e 4c ae c7 3e b4 17 24 bf h."=.QW>&..>..s?...>...>L..>..$. 3960 f0 0a 74 3d cd ff 46 3e 7b 63 3d 3f 2e db 16 3f 4c 3d a6 3e 84 8e c3 3e 4a ae c7 3e 08 cb 09 bf ..t=..F>{c=?...?L=.>...>J..>.... 3980 68 ca 74 3d 04 bf 50 bd 84 dd 41 3f 35 75 1a 3f 00 d2 7f 3e 86 8e c3 3e a4 15 fd 3e e2 fa 14 bf h.t=..P...A?5u.?...>...>...>.... 39a0 68 1f 22 3d 0a 51 57 3e 26 e5 92 3e e6 1d 73 3f 01 a1 00 3e 01 c1 ae 3e 4c ae c7 3e a0 d2 2f bf h."=.QW>&..>..s?...>...>L..>../. 39c0 90 db 22 3d 3b b3 e0 3e 23 5d 91 3e e6 13 73 3f 11 79 08 3e 04 c1 ae 3e f2 46 92 3e 76 4e 3e bf .."=;..>#].>..s?.y.>...>.F.>vN>. 39e0 20 c7 74 3d b6 e1 d5 3e 76 05 3b 3f 2d 9f 16 3f 63 65 b1 3e 82 8e c3 3e f0 46 92 3e b4 17 24 bf ..t=...>v.;?-..?ce.>...>.F.>..$. 3a00 f0 0a 74 3d cd ff 46 3e 7b 63 3d 3f 2e db 16 3f 4c 3d a6 3e 84 8e c3 3e 4a ae c7 3e a0 d2 2f bf ..t=..F>{c=?...?L=.>...>J..>../. 3a20 90 db 22 3d 3b b3 e0 3e 23 5d 91 3e e6 13 73 3f 11 79 08 3e 04 c1 ae 3e f2 46 92 3e 24 bf 48 bf .."=;..>#].>..s?.y.>...>.F.>$.H. 3a40 48 c1 23 3d c0 c6 23 3f 1f 59 8f 3e e7 57 73 3f 13 61 09 3e 06 c1 ae 3e 30 bf 39 3e 10 f4 56 bf H.#=..#?.Y.>.Ws?.a.>...>0.9>..V. 3a60 d0 aa 75 3d c4 fa 1c 3f 76 dd 3a 3f 2c f3 15 3f 69 51 b4 3e 81 8e c3 3e 28 bf 39 3e 76 4e 3e bf ..u=...?v.:?,..?iQ.>...>(.9>vN>. 3a80 20 c7 74 3d b6 e1 d5 3e 76 05 3b 3f 2d 9f 16 3f 63 65 b1 3e 82 8e c3 3e f0 46 92 3e b4 78 ff be ..t=...>v.;?-..?ce.>...>.F.>.x.. 3aa0 90 c2 75 3d 2b ef ff be 92 31 c9 be 27 6d 93 3e bf 8f 5f bf 2e b0 11 3f 2a f2 33 3f b4 78 ff be ..u=+....1..'m.>.._....?*.3?.x.. 3ac0 b0 47 e1 3d 2b ef ff be 60 35 b0 be 2e 0d 97 be c8 2d 64 bf 7e ad 09 3f 2a f2 33 3f c8 77 01 bf .G.=+...`5.......-d.~..?*.3?.w.. 3ae0 e8 3b e1 3d 38 d5 95 be 8b 55 45 bf 42 c9 20 bf b3 b1 d9 bd 7b ad 09 3f 7c 3e 19 3f 74 78 01 bf .;.=8....UE.B.......{..?|>.?tx.. 3b00 e8 aa 75 3d 16 d5 95 be a0 1d 50 bf 25 4f 12 3f c8 31 e4 bd 2c b0 11 3f 7d 3e 19 3f 74 78 01 bf ..u=......P.%O.?.1..,..?}>.?tx.. 3b20 e8 aa 75 3d 16 d5 95 be a0 1d 50 bf 25 4f 12 3f c8 31 e4 bd 2c b0 11 3f 7d 3e 19 3f c8 77 01 bf ..u=......P.%O.?.1..,..?}>.?.w.. 3b40 e8 3b e1 3d 38 d5 95 be 8b 55 45 bf 42 c9 20 bf b3 b1 d9 bd 7b ad 09 3f 7c 3e 19 3f dc 55 10 bf .;.=8....UE.B.......{..?|>.?.U.. 3b60 98 c7 e0 3d 86 54 6a bd 79 b5 3c bf 42 0b 21 bf f9 89 7c be 78 ad 09 3f 9e 15 fd 3e 24 63 10 bf ...=.Tj.y.<.B.!...|.x..?...>$c.. 3b80 58 bf 74 3d 46 c4 67 bd 8d 69 46 bf 27 81 13 3f 0a c9 84 be 2a b0 11 3f a0 15 fd 3e 24 63 10 bf X.t=F.g..iF.'..?....*..?...>$c.. 3ba0 58 bf 74 3d 46 c4 67 bd 8d 69 46 bf 27 81 13 3f 0a c9 84 be 2a b0 11 3f a0 15 fd 3e dc 55 10 bf X.t=F.g..iF.'..?....*..?...>.U.. 3bc0 98 c7 e0 3d 86 54 6a bd 79 b5 3c bf 42 0b 21 bf f9 89 7c be 78 ad 09 3f 9e 15 fd 3e b0 5d 2a bf ...=.Tj.y.<.B.!...|.x..?...>.]*. 3be0 e0 6b e0 3d 95 0f 39 3e 69 b1 34 bf 44 0d 22 bf 45 bd a2 be 76 ad 09 3f 42 ae c7 3e b8 71 2a bf .k.=..9>i.4.D.".E...v..?B..>.q*. 3c00 f0 0a 74 3d fd b2 36 3e 78 1d 3c bf 2f 93 17 3f 53 5d a9 be 28 b0 11 3f 44 ae c7 3e b8 71 2a bf ..t=..6>x.<./..?S]..(..?D..>.q*. 3c20 f0 0a 74 3d fd b2 36 3e 78 1d 3c bf 2f 93 17 3f 53 5d a9 be 28 b0 11 3f 44 ae c7 3e b0 5d 2a bf ..t=..6>x.<./..?S]..(..?D..>.]*. 3c40 e0 6b e0 3d 95 0f 39 3e 69 b1 34 bf 44 0d 22 bf 45 bd a2 be 76 ad 09 3f 42 ae c7 3e ca af 44 bf .k.=..9>i.4.D.".E...v..?B..>..D. 3c60 04 c4 e0 3d 0a ca cc 3e 67 53 33 bf 43 97 21 bf 55 75 aa be 74 ad 09 3f e8 46 92 3e 8a d9 44 bf ...=...>gS3.C.!.Uu..t..?.F.>..D. 3c80 b0 b9 74 3d be c7 ca 3e 72 25 39 bf 32 2f 19 3f 61 85 b0 be 27 b0 11 3f e8 46 92 3e 8a d9 44 bf ..t=...>r%9.2/.?a...'..?.F.>..D. 3ca0 b0 b9 74 3d be c7 ca 3e 72 25 39 bf 32 2f 19 3f 61 85 b0 be 27 b0 11 3f e8 46 92 3e ca af 44 bf ..t=...>r%9.2/.?a...'..?.F.>..D. 3cc0 04 c4 e0 3d 0a ca cc 3e 67 53 33 bf 43 97 21 bf 55 75 aa be 74 ad 09 3f e8 46 92 3e b0 0d 5d bf ...=...>gS3.C.!.Uu..t..?.F.>..]. 3ce0 a0 38 e1 3d a0 aa 18 3f 64 0b 32 bf 49 55 24 bf 4a 41 a5 be 71 ad 09 3f 1c bf 39 3e 50 1a 5d bf .8.=...?d.2.IU$.JA..q..?..9>P.]. 3d00 d0 a4 75 3d b0 55 18 3f 75 53 3a bf 31 b9 18 3f 5a 1d ad be 25 b0 11 3f 1c bf 39 3e df 76 07 3f ..u=.U.?uS:.1..?Z...%..?..9>.v.? 3d20 28 5c 0f 3e 78 fa 8f be 6e e3 36 3f 66 fb 32 3f bf 81 df 3c f4 a8 00 3f c8 57 04 3e 77 c5 02 3f (\.>x...n.6?f.2?...<...?.W.>w..? 3d40 28 5c 0f 3e 31 62 ec bc 6e 37 37 3f 60 11 30 3f f1 61 f8 3d f7 a8 00 3f 24 bf 39 3e c8 88 dc 3e (\.>1b..n77?`.0?.a.=...?$.9>...> 3d60 28 5c 0f 3e 10 6b 8f bd 5a 1d 2d bf 75 9b 3a 3f b4 41 da bd bc 9c e5 3e 20 bf 39 3e 64 34 e4 3e (\.>.k..Z.-.u.:?.A.....>..9>d4.> 3d80 28 5c 0f 3e f5 73 9f be 66 c9 32 bf 6e 29 37 3f 20 c1 8f bc b7 9c e5 3e c8 57 04 3e 68 2d e5 3e (\.>.s..f.2.n)7?.......>.W.>h-.> 3da0 28 5c 0f 3e a1 7e 53 3e 5b 61 2d 3f 6a 29 35 3f 9c 01 4e 3e fa a8 00 3f 80 26 6f 3e 02 ba c0 3e (\.>.~S>[a-?j)5?..N>...?.&o>...> 3dc0 28 5c 0f 3e 82 2f d8 3e 52 1b 29 3f 68 c5 33 3f 10 e5 87 3e fd a8 00 3f ec 46 92 3e f0 e0 99 3e (\.>./.>R.)?h.3?...>...?.F.>...> 3de0 28 5c 0f 3e f9 86 c2 3e 48 3b 24 bf 72 f7 38 3f 08 dd 83 be c7 9c e5 3e ec 46 92 3e c0 e3 bd 3e (\.>...>H;$.r.8?.......>.F.>...> 3e00 28 5c 0f 3e a6 ae 27 3e 58 07 2c bf 6e df 36 3f 90 c9 47 be c2 9c e5 3e 7c 26 6f 3e 02 ba c0 3e (\.>..'>X.,.n.6?..G....>|&o>...> 3e20 28 5c 0f 3e 82 2f d8 3e 52 1b 29 3f 68 c5 33 3f 10 e5 87 3e fd a8 00 3f ec 46 92 3e c2 a6 79 3e (\.>./.>R.)?h.3?...>...?.F.>..y> 3e40 28 5c 0f 3e 3b 69 32 3f 44 d9 21 3f 6c c1 35 3f 3e c5 9e 3e 03 a9 00 3f 46 ae c7 3e 30 68 2a 3e (\.>;i2?D.!?l.5?>..>...?F..>0h*> 3e60 28 5c 0f 3e 97 88 28 3f 45 53 22 bf 6b 57 35 3f 3d b1 9e be d2 9c e5 3e 48 ae c7 3e f0 e0 99 3e (\.>..(?ES".kW5?=......>H..>...> 3e80 28 5c 0f 3e f9 86 c2 3e 48 3b 24 bf 72 f7 38 3f 08 dd 83 be c7 9c e5 3e ec 46 92 3e c2 a6 79 3e (\.>...>H;$.r.8?.......>.F.>..y> 3ea0 28 5c 0f 3e 3b 69 32 3f 44 d9 21 3f 6c c1 35 3f 3e c5 9e 3e 03 a9 00 3f 46 ae c7 3e 02 c1 10 3e (\.>;i2?D.!?l.5?>..>...?F..>...> 3ec0 28 5c 0f 3e 16 4b 67 3f 44 23 22 3f 6a f3 34 3f 42 3d a1 3e 08 a9 00 3f a2 15 fd 3e d8 04 83 3d (\.>.Kg?D#"?j.4?B=.>...?...>...= 3ee0 28 5c 0f 3e 70 6a 5d 3f 44 07 22 bf 6a 13 35 3f 42 21 a1 be dc 9c e5 3e a2 15 fd 3e 30 68 2a 3e (\.>pj]?D.".j.5?B!.....>...>0h*> 3f00 28 5c 0f 3e 97 88 28 3f 45 53 22 bf 6b 57 35 3f 3d b1 9e be d2 9c e5 3e 48 ae c7 3e 02 c1 10 3e (\.>..(?ES".kW5?=......>H..>...> 3f20 28 5c 0f 3e 16 4b 67 3f 44 23 22 3f 6a f3 34 3f 42 3d a1 3e 08 a9 00 3f a2 15 fd 3e 18 4a 6e 3d (\.>.Kg?D#"?j.4?B=.>...?...>.Jn= 3f40 28 5c 0f 3e b6 00 89 3f 44 ff 21 3f 6a 03 35 3f 43 89 a1 3e 0e a9 00 3f 7e 3e 19 3f 98 60 9d bc (\.>...?D.!?j.5?C..>...?~>.?.`.. 3f60 28 5c 0f 3e 64 10 84 3f 44 ff 21 bf 6a 03 35 3f 43 89 a1 be e6 9c e5 3e 7e 3e 19 3f d8 04 83 3d (\.>d..?D.!.j.5?C......>~>.?...= 3f80 28 5c 0f 3e 70 6a 5d 3f 44 07 22 bf 6a 13 35 3f 42 21 a1 be dc 9c e5 3e a2 15 fd 3e 64 34 e4 3e (\.>pj]?D.".j.5?B!.....>...>d4.> 3fa0 20 85 eb 3d f5 73 9f be 83 85 41 bf 4f 81 27 bf 30 c1 97 bc 17 9a dd 3e cc 57 04 3e 64 34 e4 3e ...=.s....A.O.'.0......>.W.>d4.> 3fc0 28 5c 0f 3e f5 73 9f be 66 c9 32 bf 6e 29 37 3f 20 c1 8f bc b7 9c e5 3e c8 57 04 3e c8 88 dc 3e (\.>.s..f.2.n)7?.......>.W.>...> 3fe0 28 5c 0f 3e 10 6b 8f bd 5a 1d 2d bf 75 9b 3a 3f b4 41 da bd bc 9c e5 3e 20 bf 39 3e c8 88 dc 3e (\.>.k..Z.-.u.:?.A.....>..9>...> 4000 20 85 eb 3d 10 6b 8f bd 79 81 3c bf 55 b7 2a bf d4 21 ea bd 1a 9a dd 3e 28 bf 39 3e c0 e3 bd 3e ...=.k..y.<.U.*..!.....>(.9>...> 4020 20 85 eb 3d a6 ae 27 3e 74 0f 3a bf 4f 55 27 bf b0 f9 57 be 1d 9a dd 3e 80 26 6f 3e c0 e3 bd 3e ...=..'>t.:.OU'...W....>.&o>...> 4040 28 5c 0f 3e a6 ae 27 3e 58 07 2c bf 6e df 36 3f 90 c9 47 be c2 9c e5 3e 7c 26 6f 3e f0 e0 99 3e (\.>..'>X.,.n.6?..G....>|&o>...> 4060 28 5c 0f 3e f9 86 c2 3e 48 3b 24 bf 72 f7 38 3f 08 dd 83 be c7 9c e5 3e ec 46 92 3e f0 e0 99 3e (\.>...>H;$.r.8?.......>.F.>...> 4080 20 85 eb 3d f9 86 c2 3e 65 47 32 bf 52 3f 29 bf 1e e5 8e be 20 9a dd 3e ee 46 92 3e f0 e0 99 3e ...=...>eG2.R?)........>.F.>...> 40a0 20 85 eb 3d f9 86 c2 3e 65 47 32 bf 52 3f 29 bf 1e e5 8e be 20 9a dd 3e ee 46 92 3e f0 e0 99 3e ...=...>eG2.R?)........>.F.>...> 40c0 28 5c 0f 3e f9 86 c2 3e 48 3b 24 bf 72 f7 38 3f 08 dd 83 be c7 9c e5 3e ec 46 92 3e 30 68 2a 3e (\.>...>H;$.r.8?.......>.F.>0h*> 40e0 28 5c 0f 3e 97 88 28 3f 45 53 22 bf 6b 57 35 3f 3d b1 9e be d2 9c e5 3e 48 ae c7 3e 30 68 2a 3e (\.>..(?ES".kW5?=......>H..>0h*> 4100 20 85 eb 3d 97 88 28 3f 5e f9 2e bf 4c 25 26 bf 56 09 ab be 27 9a dd 3e 48 ae c7 3e 30 68 2a 3e ...=..(?^...L%&.V...'..>H..>0h*> 4120 20 85 eb 3d 97 88 28 3f 5e f9 2e bf 4c 25 26 bf 56 09 ab be 27 9a dd 3e 48 ae c7 3e 30 68 2a 3e ...=..(?^...L%&.V...'..>H..>0h*> 4140 28 5c 0f 3e 97 88 28 3f 45 53 22 bf 6b 57 35 3f 3d b1 9e be d2 9c e5 3e 48 ae c7 3e d8 04 83 3d (\.>..(?ES".kW5?=......>H..>...= 4160 28 5c 0f 3e 70 6a 5d 3f 44 07 22 bf 6a 13 35 3f 42 21 a1 be dc 9c e5 3e a2 15 fd 3e d8 04 83 3d (\.>pj]?D.".j.5?B!.....>...>...= 4180 20 85 eb 3d 70 6a 5d 3f 5d 83 2e bf 4c f9 25 bf 5b 8d ad be 2e 9a dd 3e a2 15 fd 3e d8 04 83 3d ...=pj]?]...L.%.[......>...>...= 41a0 20 85 eb 3d 70 6a 5d 3f 5d 83 2e bf 4c f9 25 bf 5b 8d ad be 2e 9a dd 3e a2 15 fd 3e d8 04 83 3d ...=pj]?]...L.%.[......>...>...= 41c0 28 5c 0f 3e 70 6a 5d 3f 44 07 22 bf 6a 13 35 3f 42 21 a1 be dc 9c e5 3e a2 15 fd 3e 98 60 9d bc (\.>pj]?D.".j.5?B!.....>...>.`.. 41e0 28 5c 0f 3e 64 10 84 3f 44 ff 21 bf 6a 03 35 3f 43 89 a1 be e6 9c e5 3e 7e 3e 19 3f 98 60 9d bc (\.>d..?D.!.j.5?C......>~>.?.`.. 4200 20 85 eb 3d 64 10 84 3f 5d 77 2e bf 4c eb 25 bf 5c f5 ad be 34 9a dd 3e 7f 3e 19 3f b8 b3 cc bc ...=d..?]w..L.%.\...4..>.>.?.... 4220 20 85 eb 3d 78 5a 9e 3f 29 bd 94 3e 0d 6b 06 bf 9a c7 4c 3f 64 aa 04 3f 2a f2 33 3f b8 b3 cc bc ...=xZ.?)..>.k....L?d..?*.3?.... 4240 28 5c 0f 3e 78 5a 9e 3f 09 a5 84 3e 28 cd 13 3f 8c 37 46 3f 14 a9 00 3f 2a f2 33 3f 18 4a 6e 3d (\.>xZ.?...>(..?.7F?...?*.3?.Jn= 4260 28 5c 0f 3e b6 00 89 3f 44 ff 21 3f 6a 03 35 3f 43 89 a1 3e 0e a9 00 3f 7e 3e 19 3f 18 4a 6e 3d (\.>...?D.!?j.5?C..>...?~>.?.Jn= 4280 20 85 eb 3d b6 00 89 3f 5d 77 2e 3f 4c eb 25 bf 5c f5 ad 3e 60 aa 04 3f 7e 3e 19 3f 18 4a 6e 3d ...=...?]w.?L.%.\..>`..?~>.?.Jn= 42a0 20 85 eb 3d b6 00 89 3f 5d 77 2e 3f 4c eb 25 bf 5c f5 ad 3e 60 aa 04 3f 7e 3e 19 3f 18 4a 6e 3d ...=...?]w.?L.%.\..>`..?~>.?.Jn= 42c0 28 5c 0f 3e b6 00 89 3f 44 ff 21 3f 6a 03 35 3f 43 89 a1 3e 0e a9 00 3f 7e 3e 19 3f 02 c1 10 3e (\.>...?D.!?j.5?C..>...?~>.?...> 42e0 28 5c 0f 3e 16 4b 67 3f 44 23 22 3f 6a f3 34 3f 42 3d a1 3e 08 a9 00 3f a2 15 fd 3e 02 c1 10 3e (\.>.Kg?D#"?j.4?B=.>...?...>...> 4300 20 85 eb 3d 16 4b 67 3f 5d 99 2e 3f 4c dd 25 bf 5b a1 ad 3e 5c aa 04 3f a2 15 fd 3e 02 c1 10 3e ...=.Kg?]..?L.%.[..>\..?...>...> 4320 20 85 eb 3d 16 4b 67 3f 5d 99 2e 3f 4c dd 25 bf 5b a1 ad 3e 5c aa 04 3f a2 15 fd 3e 02 c1 10 3e ...=.Kg?]..?L.%.[..>\..?...>...> 4340 28 5c 0f 3e 16 4b 67 3f 44 23 22 3f 6a f3 34 3f 42 3d a1 3e 08 a9 00 3f a2 15 fd 3e c2 a6 79 3e (\.>.Kg?D#"?j.4?B=.>...?...>..y> 4360 28 5c 0f 3e 3b 69 32 3f 44 d9 21 3f 6c c1 35 3f 3e c5 9e 3e 03 a9 00 3f 46 ae c7 3e c2 a6 79 3e (\.>;i2?D.!?l.5?>..>...?F..>..y> 4380 20 85 eb 3d 3b 69 32 3f 60 09 30 3f 49 8f 24 bf 5a c5 ac 3e 58 aa 04 3f 46 ae c7 3e c2 a6 79 3e ...=;i2?`.0?I.$.Z..>X..?F..>..y> 43a0 20 85 eb 3d 3b 69 32 3f 60 09 30 3f 49 8f 24 bf 5a c5 ac 3e 58 aa 04 3f 46 ae c7 3e c2 a6 79 3e ...=;i2?`.0?I.$.Z..>X..?F..>..y> 43c0 28 5c 0f 3e 3b 69 32 3f 44 d9 21 3f 6c c1 35 3f 3e c5 9e 3e 03 a9 00 3f 46 ae c7 3e 02 ba c0 3e (\.>;i2?D.!?l.5?>..>...?F..>...> 43e0 28 5c 0f 3e 82 2f d8 3e 52 1b 29 3f 68 c5 33 3f 10 e5 87 3e fd a8 00 3f ec 46 92 3e b4 e4 c0 3e (\.>./.>R.)?h.3?...>...?.F.>...> 4400 20 85 eb 3d da 2f d9 3e 73 43 39 3f 3f 9f 1f bf 2f 69 97 3e 54 aa 04 3f ec 46 92 3e e8 52 e5 3e ...=./.>sC9??.../i.>T..?.F.>.R.> 4420 20 85 eb 3d 61 ae 54 3e 7c c7 3d 3f 44 2d 22 bf c5 b9 62 3e 52 aa 04 3f 80 26 6f 3e 68 2d e5 3e ...=a.T>|.=?D-"...b>R..?.&o>h-.> 4440 28 5c 0f 3e a1 7e 53 3e 5b 61 2d 3f 6a 29 35 3f 9c 01 4e 3e fa a8 00 3f 80 26 6f 3e 77 c5 02 3f (\.>.~S>[a-?j)5?..N>...?.&o>w..? 4460 28 5c 0f 3e 31 62 ec bc 6e 37 37 3f 60 11 30 3f f1 61 f8 3d f7 a8 00 3f 24 bf 39 3e d9 c2 02 3f (\.>1b..n77?`.0?.a.=...?$.9>...? 4480 20 85 eb 3d dd 5e f0 bc 89 83 44 3f 41 a5 20 bf 0a 19 05 3e 50 aa 04 3f 24 bf 39 3e 80 7a f3 3e ...=.^....D?A......>P..?$.9>.z.> 44a0 b0 47 e1 3d 0b 0b 9a be 89 b5 44 bf 47 b7 23 bf 82 41 c1 bc e2 93 d3 3e c8 57 04 3e 64 34 e4 3e .G.=......D.G.#..A.....>.W.>d4.> 44c0 20 85 eb 3d f5 73 9f be 83 85 41 bf 4f 81 27 bf 30 c1 97 bc 17 9a dd 3e cc 57 04 3e c8 88 dc 3e ...=.s....A.O.'.0......>.W.>...> 44e0 20 85 eb 3d 10 6b 8f bd 79 81 3c bf 55 b7 2a bf d4 21 ea bd 1a 9a dd 3e 28 bf 39 3e d2 32 eb 3e ...=.k..y.<.U.*..!.....>(.9>.2.> 4500 b0 47 e1 3d cf 0d 65 bd 89 95 44 bf 41 bd 20 bf 03 a1 01 be e4 93 d3 3e 20 bf 39 3e 8e f9 cb 3e .G.=..e...D.A..........>..9>...> 4520 b0 47 e1 3d 74 e8 34 3e 7a 11 3d bf 47 4f 23 bf be 41 5f be e5 93 d3 3e 7c 26 6f 3e c0 e3 bd 3e .G.=t.4>z.=.GO#..A_....>|&o>...> 4540 20 85 eb 3d a6 ae 27 3e 74 0f 3a bf 4f 55 27 bf b0 f9 57 be 1d 9a dd 3e 80 26 6f 3e f0 e0 99 3e ...=..'>t.:.OU'...W....>.&o>...> 4560 20 85 eb 3d f9 86 c2 3e 65 47 32 bf 52 3f 29 bf 1e e5 8e be 20 9a dd 3e ee 46 92 3e 32 c3 a7 3e ...=...>eG2.R?)........>.F.>2..> 4580 b0 47 e1 3d 91 77 c9 3e 71 75 38 bf 43 49 21 bf 28 41 94 be e6 93 d3 3e ec 46 92 3e 32 c3 a7 3e .G.=.w.>qu8.CI!.(A.....>.F.>2..> 45a0 b0 47 e1 3d 91 77 c9 3e 71 75 38 bf 43 49 21 bf 28 41 94 be e6 93 d3 3e ec 46 92 3e f0 e0 99 3e .G.=.w.>qu8.CI!.(A.....>.F.>...> 45c0 20 85 eb 3d f9 86 c2 3e 65 47 32 bf 52 3f 29 bf 1e e5 8e be 20 9a dd 3e ee 46 92 3e 30 68 2a 3e ...=...>eG2.R?)........>.F.>0h*> 45e0 20 85 eb 3d 97 88 28 3f 5e f9 2e bf 4c 25 26 bf 56 09 ab be 27 9a dd 3e 48 ae c7 3e 68 b5 46 3e ...=..(?^...L%&.V...'..>H..>h.F> 4600 b0 47 e1 3d ab 0f 2c 3f 60 e9 2f bf 4a 11 25 bf 57 55 ab be ea 93 d3 3e 48 ae c7 3e 68 b5 46 3e .G.=..,?`./.J.%.WU.....>H..>h.F> 4620 b0 47 e1 3d ab 0f 2c 3f 60 e9 2f bf 4a 11 25 bf 57 55 ab be ea 93 d3 3e 48 ae c7 3e 30 68 2a 3e .G.=..,?`./.J.%.WU.....>H..>0h*> 4640 20 85 eb 3d 97 88 28 3f 5e f9 2e bf 4c 25 26 bf 56 09 ab be 27 9a dd 3e 48 ae c7 3e d8 04 83 3d ...=..(?^...L%&.V...'..>H..>...= 4660 20 85 eb 3d 70 6a 5d 3f 5d 83 2e bf 4c f9 25 bf 5b 8d ad be 2e 9a dd 3e a2 15 fd 3e 48 9f bb 3d ...=pj]?]...L.%.[......>...>H..= 4680 b0 47 e1 3d 85 f1 60 3f 5d 99 2e bf 4c dd 25 bf 5b a1 ad be ee 93 d3 3e a2 15 fd 3e 48 9f bb 3d .G.=..`?]...L.%.[......>...>H..= 46a0 b0 47 e1 3d 85 f1 60 3f 5d 99 2e bf 4c dd 25 bf 5b a1 ad be ee 93 d3 3e a2 15 fd 3e d8 04 83 3d .G.=..`?]...L.%.[......>...>...= 46c0 20 85 eb 3d 70 6a 5d 3f 5d 83 2e bf 4c f9 25 bf 5b 8d ad be 2e 9a dd 3e a2 15 fd 3e 98 60 9d bc ...=pj]?]...L.%.[......>...>.`.. 46e0 20 85 eb 3d 64 10 84 3f 5d 77 2e bf 4c eb 25 bf 5c f5 ad be 34 9a dd 3e 7f 3e 19 3f 6c 12 0a 3c ...=d..?]w..L.%.\...4..>.>.?l..< 4700 b0 47 e1 3d ee d3 85 3f 5d 77 2e bf 4c eb 25 bf 5c f5 ad be f0 93 d3 3e 7f 3e 19 3f dc 8e 57 bd .G.=...?]w..L.%.\......>.>.?..W. 4720 b0 47 e1 3d ec 96 9c 3f 3f 81 9f bd 35 61 9a be e7 43 73 3f 7e ad 09 3f 2a f2 33 3f b8 b3 cc bc .G.=...??...5a...Cs?~..?*.3?.... 4740 20 85 eb 3d 78 5a 9e 3f 29 bd 94 3e 0d 6b 06 bf 9a c7 4c 3f 64 aa 04 3f 2a f2 33 3f 18 4a 6e 3d ...=xZ.?)..>.k....L?d..?*.3?.Jn= 4760 20 85 eb 3d b6 00 89 3f 5d 77 2e 3f 4c eb 25 bf 5c f5 ad 3e 60 aa 04 3f 7e 3e 19 3f 64 2a fa 3c ...=...?]w.?L.%.\..>`..?~>.?d*.< 4780 b0 47 e1 3d 2c 3d 87 3f 5d 77 2e 3f 4c eb 25 bf 5c f5 ad 3e 7b ad 09 3f 7c 3e 19 3f 64 2a fa 3c .G.=,=.?]w.?L.%.\..>{..?|>.?d*.< 47a0 b0 47 e1 3d 2c 3d 87 3f 5d 77 2e 3f 4c eb 25 bf 5c f5 ad 3e 7b ad 09 3f 7c 3e 19 3f 18 4a 6e 3d .G.=,=.?]w.?L.%.\..>{..?|>.?.Jn= 47c0 20 85 eb 3d b6 00 89 3f 5d 77 2e 3f 4c eb 25 bf 5c f5 ad 3e 60 aa 04 3f 7e 3e 19 3f 02 c1 10 3e ...=...?]w.?L.%.\..>`..?~>.?...> 47e0 20 85 eb 3d 16 4b 67 3f 5d 99 2e 3f 4c dd 25 bf 5b a1 ad 3e 5c aa 04 3f a2 15 fd 3e 90 e7 e8 3d ...=.Kg?]..?L.%.[..>\..?...>...= 4800 b0 47 e1 3d 02 c4 63 3f 5d 83 2e 3f 4c f9 25 bf 5b 8d ad 3e 78 ad 09 3f 9e 15 fd 3e 90 e7 e8 3d .G.=..c?]..?L.%.[..>x..?...>...= 4820 b0 47 e1 3d 02 c4 63 3f 5d 83 2e 3f 4c f9 25 bf 5b 8d ad 3e 78 ad 09 3f 9e 15 fd 3e 02 c1 10 3e .G.=..c?]..?L.%.[..>x..?...>...> 4840 20 85 eb 3d 16 4b 67 3f 5d 99 2e 3f 4c dd 25 bf 5b a1 ad 3e 5c aa 04 3f a2 15 fd 3e c2 a6 79 3e ...=.Kg?]..?L.%.[..>\..?...>..y> 4860 20 85 eb 3d 3b 69 32 3f 60 09 30 3f 49 8f 24 bf 5a c5 ac 3e 58 aa 04 3f 46 ae c7 3e 8a 59 5d 3e ...=;i2?`.0?I.$.Z..>X..?F..>.Y]> 4880 b0 47 e1 3d 27 e2 2e 3f 5e d3 2e 3f 4c fd 25 bf 58 41 ac 3e 76 ad 09 3f 42 ae c7 3e 8a 59 5d 3e .G.='..?^..?L.%.XA.>v..?B..>.Y]> 48a0 b0 47 e1 3d 27 e2 2e 3f 5e d3 2e 3f 4c fd 25 bf 58 41 ac 3e 76 ad 09 3f 42 ae c7 3e c2 a6 79 3e .G.='..?^..?L.%.XA.>v..?B..>..y> 48c0 20 85 eb 3d 3b 69 32 3f 60 09 30 3f 49 8f 24 bf 5a c5 ac 3e 58 aa 04 3f 46 ae c7 3e b4 e4 c0 3e ...=;i2?`.0?I.$.Z..>X..?F..>...> 48e0 20 85 eb 3d da 2f d9 3e 73 43 39 3f 3f 9f 1f bf 2f 69 97 3e 54 aa 04 3f ec 46 92 3e e8 04 b3 3e ...=./.>sC9??.../i.>T..?.F.>...> 4900 b0 47 e1 3d 96 2b d2 3e 64 dd 31 3f 53 5f 29 bf 21 55 90 3e 74 ad 09 3f e8 46 92 3e 9a 46 d7 3e .G.=.+.>d.1?S_).!U.>t..?.F.>.F.> 4920 b0 47 e1 3d fd 2b 47 3e 74 ed 39 3f 4f 51 27 bf b4 f9 59 3e 72 ad 09 3f 78 26 6f 3e e8 52 e5 3e .G.=.+G>t.9?OQ'...Y>r..?x&o>.R.> 4940 20 85 eb 3d 61 ae 54 3e 7c c7 3d 3f 44 2d 22 bf c5 b9 62 3e 52 aa 04 3f 80 26 6f 3e d9 c2 02 3f ...=a.T>|.=?D-"...b>R..?.&o>...? 4960 20 85 eb 3d dd 5e f0 bc 89 83 44 3f 41 a5 20 bf 0a 19 05 3e 50 aa 04 3f 24 bf 39 3e e8 ed f6 3e ...=.^....D?A......>P..?$.9>...> 4980 b0 47 e1 3d a5 8b 33 bd 79 71 3c 3f 55 9d 2a bf e3 b1 f1 3d 71 ad 09 3f 1c bf 39 3e bc 0f 99 bd .G.=..3.yq<?U.*....=q..?..9>.... 49a0 90 c2 75 3d b0 2d 9b 3f 7f 93 3f bf 2d 99 96 3e 30 31 18 3f 89 8e c3 3e 2d f2 33 3f 6c 12 0a 3c ..u=.-.?..?.-..>01.?...>-.3?l..< 49c0 90 c2 75 3d ee d3 85 3f 73 47 39 bf 2d 93 16 3f 71 bd b8 be 87 8e c3 3e 80 3e 19 3f 6c 12 0a 3c ..u=...?sG9.-..?q......>.>.?l..< 49e0 b0 47 e1 3d ee d3 85 3f 5d 77 2e bf 4c eb 25 bf 5c f5 ad be f0 93 d3 3e 7f 3e 19 3f bc 0f 99 bd .G.=...?]w..L.%.\......>.>.?.... 4a00 b0 47 e1 3d b0 2d 9b 3f 6d 47 36 bf 35 61 9a be 45 53 22 3f f4 93 d3 3e 2d f2 33 3f 6c 12 0a 3c .G.=.-.?mG6.5a..ES"?...>-.3?l..< 4a20 90 c2 75 3d ee d3 85 3f 73 47 39 bf 2d 93 16 3f 71 bd b8 be 87 8e c3 3e 80 3e 19 3f 48 9f bb 3d ..u=...?sG9.-..?q......>.>.?H..= 4a40 90 c2 75 3d 85 f1 60 3f 73 67 39 bf 2d 87 16 3f 71 61 b8 be 86 8e c3 3e a4 15 fd 3e 48 9f bb 3d ..u=..`?sg9.-..?qa.....>...>H..= 4a60 b0 47 e1 3d 85 f1 60 3f 5d 99 2e bf 4c dd 25 bf 5b a1 ad be ee 93 d3 3e a2 15 fd 3e 6c 12 0a 3c .G.=..`?]...L.%.[......>...>l..< 4a80 b0 47 e1 3d ee d3 85 3f 5d 77 2e bf 4c eb 25 bf 5c f5 ad be f0 93 d3 3e 7f 3e 19 3f 48 9f bb 3d .G.=...?]w..L.%.\......>.>.?H..= 4aa0 90 c2 75 3d 85 f1 60 3f 73 67 39 bf 2d 87 16 3f 71 61 b8 be 86 8e c3 3e a4 15 fd 3e 68 b5 46 3e ..u=..`?sg9.-..?qa.....>...>h.F> 4ac0 90 c2 75 3d ab 0f 2c 3f 74 1d 3a bf 2d a1 16 3f 6a 25 b5 be 84 8e c3 3e 4a ae c7 3e 68 b5 46 3e ..u=..,?t.:.-..?j%.....>J..>h.F> 4ae0 b0 47 e1 3d ab 0f 2c 3f 60 e9 2f bf 4a 11 25 bf 57 55 ab be ea 93 d3 3e 48 ae c7 3e 48 9f bb 3d .G.=..,?`./.J.%.WU.....>H..>H..= 4b00 b0 47 e1 3d 85 f1 60 3f 5d 99 2e bf 4c dd 25 bf 5b a1 ad be ee 93 d3 3e a2 15 fd 3e 68 b5 46 3e .G.=..`?]...L.%.[......>...>h.F> 4b20 90 c2 75 3d ab 0f 2c 3f 74 1d 3a bf 2d a1 16 3f 6a 25 b5 be 84 8e c3 3e 4a ae c7 3e 30 9e a7 3e ..u=..,?t.:.-..?j%.....>J..>0..> 4b40 90 c2 75 3d 81 b6 c8 3e 83 7f 41 bf 29 a3 14 3f 36 e1 9a be 82 8e c3 3e f0 46 92 3e 32 c3 a7 3e ..u=...>..A.)..?6......>.F.>2..> 4b60 b0 47 e1 3d 91 77 c9 3e 71 75 38 bf 43 49 21 bf 28 41 94 be e6 93 d3 3e ec 46 92 3e 68 b5 46 3e .G.=.w.>qu8.CI!.(A.....>.F.>h.F> 4b80 b0 47 e1 3d ab 0f 2c 3f 60 e9 2f bf 4a 11 25 bf 57 55 ab be ea 93 d3 3e 48 ae c7 3e 52 d9 cb 3e .G.=..,?`./.J.%.WU.....>H..>R..> 4ba0 90 c2 75 3d 78 ed 33 3e 8e 17 47 bf 2c d3 15 3f d6 e1 6a be 82 8e c3 3e 84 26 6f 3e 6c 36 eb 3e ..u=x.3>..G.,..?..j....>.&o>l6.> 4bc0 90 c2 75 3d 67 bb 63 bd 9f 43 4f bf 24 39 12 3f 14 29 0a be 81 8e c3 3e 28 bf 39 3e d2 32 eb 3e ..u=g.c..CO.$9.?.).....>(.9>.2.> 4be0 b0 47 e1 3d cf 0d 65 bd 89 95 44 bf 41 bd 20 bf 03 a1 01 be e4 93 d3 3e 20 bf 39 3e 8e f9 cb 3e .G.=..e...D.A..........>..9>...> 4c00 b0 47 e1 3d 74 e8 34 3e 7a 11 3d bf 47 4f 23 bf be 41 5f be e5 93 d3 3e 7c 26 6f 3e 97 13 0f 3f .G.=t.4>z.=.GO#..A_....>|&o>...? 4c20 10 d7 23 3d 75 32 8a be 42 f9 a0 3e e6 fb 72 3f d0 01 68 3c ea 16 1c 3f c4 57 04 3e 46 0f 0a 3f ..#=u2..B..>..r?..h<...?.W.>F..? 4c40 10 d7 23 3d 19 64 5e bc 39 4d 9c 3e e7 57 73 3f d0 41 68 3d ea 16 1c 3f 20 bf 39 3e e8 ed f6 3e ..#=.d^.9M.>.Ws?.Ah=...?..9>...> 4c60 90 c2 75 3d a5 8b 33 bd 93 95 49 3f 35 7d 1a 3f 00 41 00 3e 25 b0 11 3f 1c bf 39 3e 84 af ff 3e ..u=..3...I?5}.?.A.>%..?..9>...> 4c80 90 c2 75 3d 71 9f 95 be 9c 39 4e 3f 2f 85 17 3f b6 01 db 3c 24 b0 11 3f c0 57 04 3e be 3f f3 3e ..u=q....9N?/..?...<$..?.W.>.?.> 4ca0 08 d7 23 3d 16 6f 65 3e 31 49 98 3e e7 55 73 3f 6f 51 b7 3d ea 16 1c 3f 78 26 6f 3e 14 b4 ce 3e ..#=.oe>1I.>.Us?oQ.=...?x&o>...> 4cc0 08 d7 23 3d 5e 2f e1 3e 25 a1 92 3e e7 67 73 3f e3 a1 f1 3d ea 16 1c 3f ea 46 92 3e e8 04 b3 3e ..#=^/.>%..>.gs?...=...?.F.>...> 4ce0 90 c2 75 3d 96 2b d2 3e 7c cf 3d 3f 33 97 19 3f 34 d1 99 3e 27 b0 11 3f e8 46 92 3e 9a 46 d7 3e ..u=.+.>|.=?3..?4..>'..?.F.>.F.> 4d00 90 c2 75 3d fd 2b 47 3e 8c cf 45 3f 30 cb 17 3f d0 01 68 3e 26 b0 11 3f 78 26 6f 3e 14 b4 ce 3e ..u=.+G>..E?0..?..h>&..?x&o>...> 4d20 08 d7 23 3d 5e 2f e1 3e 25 a1 92 3e e7 67 73 3f e3 a1 f1 3d ea 16 1c 3f ea 46 92 3e fc f9 8a 3e ..#=^/.>%..>.gs?...=...?.F.>...> 4d40 08 d7 23 3d 51 f0 35 3f 1b a5 8d 3e e7 83 73 3f 17 81 0b 3e ea 16 1c 3f 44 ae c7 3e 8a 59 5d 3e ..#=Q.5?...>..s?...>...?D..>.Y]> 4d60 90 c2 75 3d 27 e2 2e 3f 73 a9 39 3f 2d a7 16 3f 6e ed b6 3e 28 b0 11 3f 44 ae c7 3e e8 04 b3 3e ..u='..?s.9?-..?n..>(..?D..>...> 4d80 90 c2 75 3d 96 2b d2 3e 7c cf 3d 3f 33 97 19 3f 34 d1 99 3e 27 b0 11 3f e8 46 92 3e fc f9 8a 3e ..u=.+.>|.=?3..?4..>'..?.F.>...> 4da0 08 d7 23 3d 51 f0 35 3f 1b a5 8d 3e e7 83 73 3f 17 81 0b 3e ea 16 1c 3f 44 ae c7 3e 34 0e 2d 3e ..#=Q.5?...>..s?...>...?D..>4.-> 4dc0 08 d7 23 3d 2a d2 6a 3f 1a 39 8d 3e e7 8b 73 3f 19 71 0c 3e ea 16 1c 3f 9e 15 fd 3e 90 e7 e8 3d ..#=*.j?.9.>..s?.q.>...?...>...= 4de0 90 c2 75 3d 02 c4 63 3f 73 57 39 3f 2d 9f 16 3f 71 51 b8 3e 2a b0 11 3f a0 15 fd 3e 8a 59 5d 3e ..u=..c?sW9?-..?qQ.>*..?...>.Y]> 4e00 90 c2 75 3d 27 e2 2e 3f 73 a9 39 3f 2d a7 16 3f 6e ed b6 3e 28 b0 11 3f 44 ae c7 3e 34 0e 2d 3e ..u='..?s.9?-..?n..>(..?D..>4.-> 4e20 08 d7 23 3d 2a d2 6a 3f 1a 39 8d 3e e7 8b 73 3f 19 71 0c 3e ea 16 1c 3f 9e 15 fd 3e 70 bf af 3d ..#=*.j?.9.>..s?.q.>...?...>p..= 4e40 08 d7 23 3d 40 c4 8a 3f 1a 25 8d 3e e7 8b 73 3f 19 b9 0c 3e ea 16 1c 3f 7c 3e 19 3f 64 2a fa 3c ..#=@..?.%.>..s?...>...?|>.?d*.< 4e60 90 c2 75 3d 2c 3d 87 3f 73 47 39 3f 2d 93 16 3f 71 bd b8 3e 2c b0 11 3f 7d 3e 19 3f 90 e7 e8 3d ..u=,=.?sG9?-..?q..>,..?}>.?...= 4e80 90 c2 75 3d 02 c4 63 3f 73 57 39 3f 2d 9f 16 3f 71 51 b8 3e 2a b0 11 3f a0 15 fd 3e 4e 22 05 be ..u=..c?sW9?-..?qQ.>*..?...>N".. 4ea0 08 d7 23 3d 9c a6 97 3f 6e 15 b7 be de d7 6e 3f 49 81 24 3d fa c0 ae 3e 2e f2 33 3f 4c e5 3f bd ..#=...?n.....n?I.$=...>..3?L.?. 4ec0 08 d7 23 3d da 4c 82 3f 1a 25 8d be e7 8b 73 3f 19 b9 0c be fc c0 ae 3e 81 3e 19 3f 6c 12 0a 3c ..#=.L.?.%....s?.......>.>.?l..< 4ee0 90 c2 75 3d ee d3 85 3f 73 47 39 bf 2d 93 16 3f 71 bd b8 be 87 8e c3 3e 80 3e 19 3f bc 0f 99 bd ..u=...?sG9.-..?q......>.>.?.... 4f00 90 c2 75 3d b0 2d 9b 3f 7f 93 3f bf 2d 99 96 3e 30 31 18 3f 89 8e c3 3e 2d f2 33 3f 4c e5 3f bd ..u=.-.?..?.-..>01.?...>-.3?L.?. 4f20 08 d7 23 3d da 4c 82 3f 1a 25 8d be e7 8b 73 3f 19 b9 0c be fc c0 ae 3e 81 3e 19 3f ac d4 14 3d ..#=.L.?.%....s?.......>.>.?...= 4f40 08 d7 23 3d 5c e3 59 3f 1a 39 8d be e7 8b 73 3f 19 71 0c be ff c0 ae 3e a8 15 fd 3e 48 9f bb 3d ..#=\.Y?.9....s?.q.....>...>H..= 4f60 90 c2 75 3d 85 f1 60 3f 73 67 39 bf 2d 87 16 3f 71 61 b8 be 86 8e c3 3e a4 15 fd 3e 6c 12 0a 3c ..u=..`?sg9.-..?qa.....>...>l..< 4f80 90 c2 75 3d ee d3 85 3f 73 47 39 bf 2d 93 16 3f 71 bd b8 be 87 8e c3 3e 80 3e 19 3f ac d4 14 3d ..u=...?sG9.-..?q......>.>.?...= 4fa0 08 d7 23 3d 5c e3 59 3f 1a 39 8d be e7 8b 73 3f 19 71 0c be ff c0 ae 3e a8 15 fd 3e f0 1a 0e 3e ..#=\.Y?.9....s?.q.....>...>...> 4fc0 08 d7 23 3d 83 01 25 3f 1c 05 8e be e7 83 73 3f 14 11 0a be 01 c1 ae 3e 4c ae c7 3e 68 b5 46 3e ..#=..%?......s?.......>L..>h.F> 4fe0 90 c2 75 3d ab 0f 2c 3f 74 1d 3a bf 2d a1 16 3f 6a 25 b5 be 84 8e c3 3e 4a ae c7 3e 48 9f bb 3d ..u=..,?t.:.-..?j%.....>J..>H..= 5000 90 c2 75 3d 85 f1 60 3f 73 67 39 bf 2d 87 16 3f 71 61 b8 be 86 8e c3 3e a4 15 fd 3e f0 1a 0e 3e ..u=..`?sg9.-..?qa.....>...>...> 5020 08 d7 23 3d 83 01 25 3f 1c 05 8e be e7 83 73 3f 14 11 0a be 01 c1 ae 3e 4c ae c7 3e f4 e3 8b 3e ..#=..%?......s?.......>L..>...> 5040 08 d7 23 3d 70 c5 b9 3e 28 c1 93 be e7 5f 73 3f d1 b1 e8 bd 04 c1 ae 3e f2 46 92 3e 30 9e a7 3e ..#=p..>(...._s?.......>.F.>0..> 5060 90 c2 75 3d 81 b6 c8 3e 83 7f 41 bf 29 a3 14 3f 36 e1 9a be 82 8e c3 3e f0 46 92 3e 68 b5 46 3e ..u=...>..A.)..?6......>.F.>h.F> 5080 90 c2 75 3d ab 0f 2c 3f 74 1d 3a bf 2d a1 16 3f 6a 25 b5 be 84 8e c3 3e 4a ae c7 3e b8 c1 af 3e ..u=..,?t.:.-..?j%.....>J..>...> 50a0 08 d7 23 3d a3 74 16 3e 31 b5 98 be e7 59 73 3f 60 41 b0 bd 05 c1 ae 3e 88 26 6f 3e 18 d2 cd 3e ..#=.t.>1....Ys?`A.....>.&o>...> 50c0 10 d7 23 3d a7 58 ac bd 3c 3d 9e be e6 35 73 3f 64 21 32 bd 06 c1 ae 3e 30 bf 39 3e 6c 36 eb 3e ..#=.X..<=...5s?d!2....>0.9>l6.> 50e0 90 c2 75 3d 67 bb 63 bd 9f 43 4f bf 24 39 12 3f 14 29 0a be 81 8e c3 3e 28 bf 39 3e 52 d9 cb 3e ..u=g.c..CO.$9.?.).....>(.9>R..> 5100 90 c2 75 3d 78 ed 33 3e 8e 17 47 bf 2c d3 15 3f d6 e1 6a be 82 8e c3 3e 84 26 6f 3e dc 8e 57 bd ..u=x.3>..G.,..?..j....>.&o>..W. 5120 90 c2 75 3d ec 96 9c 3f 90 01 c8 bc 2d 99 96 3e e9 95 74 3f 2e b0 11 3f 2a f2 33 3f dc 8e 57 bd ..u=...?....-..>..t?...?*.3?..W. 5140 b0 47 e1 3d ec 96 9c 3f 3f 81 9f bd 35 61 9a be e7 43 73 3f 7e ad 09 3f 2a f2 33 3f 64 2a fa 3c .G.=...??...5a...Cs?~..?*.3?d*.< 5160 b0 47 e1 3d 2c 3d 87 3f 5d 77 2e 3f 4c eb 25 bf 5c f5 ad 3e 7b ad 09 3f 7c 3e 19 3f 64 2a fa 3c .G.=,=.?]w.?L.%.\..>{..?|>.?d*.< 5180 90 c2 75 3d 2c 3d 87 3f 73 47 39 3f 2d 93 16 3f 71 bd b8 3e 2c b0 11 3f 7d 3e 19 3f 64 2a fa 3c ..u=,=.?sG9?-..?q..>,..?}>.?d*.< 51a0 90 c2 75 3d 2c 3d 87 3f 73 47 39 3f 2d 93 16 3f 71 bd b8 3e 2c b0 11 3f 7d 3e 19 3f 64 2a fa 3c ..u=,=.?sG9?-..?q..>,..?}>.?d*.< 51c0 b0 47 e1 3d 2c 3d 87 3f 5d 77 2e 3f 4c eb 25 bf 5c f5 ad 3e 7b ad 09 3f 7c 3e 19 3f 90 e7 e8 3d .G.=,=.?]w.?L.%.\..>{..?|>.?...= 51e0 b0 47 e1 3d 02 c4 63 3f 5d 83 2e 3f 4c f9 25 bf 5b 8d ad 3e 78 ad 09 3f 9e 15 fd 3e 90 e7 e8 3d .G.=..c?]..?L.%.[..>x..?...>...= 5200 90 c2 75 3d 02 c4 63 3f 73 57 39 3f 2d 9f 16 3f 71 51 b8 3e 2a b0 11 3f a0 15 fd 3e 90 e7 e8 3d ..u=..c?sW9?-..?qQ.>*..?...>...= 5220 90 c2 75 3d 02 c4 63 3f 73 57 39 3f 2d 9f 16 3f 71 51 b8 3e 2a b0 11 3f a0 15 fd 3e 90 e7 e8 3d ..u=..c?sW9?-..?qQ.>*..?...>...= 5240 b0 47 e1 3d 02 c4 63 3f 5d 83 2e 3f 4c f9 25 bf 5b 8d ad 3e 78 ad 09 3f 9e 15 fd 3e 8a 59 5d 3e .G.=..c?]..?L.%.[..>x..?...>.Y]> 5260 b0 47 e1 3d 27 e2 2e 3f 5e d3 2e 3f 4c fd 25 bf 58 41 ac 3e 76 ad 09 3f 42 ae c7 3e 8a 59 5d 3e .G.='..?^..?L.%.XA.>v..?B..>.Y]> 5280 90 c2 75 3d 27 e2 2e 3f 73 a9 39 3f 2d a7 16 3f 6e ed b6 3e 28 b0 11 3f 44 ae c7 3e 8a 59 5d 3e ..u='..?s.9?-..?n..>(..?D..>.Y]> 52a0 90 c2 75 3d 27 e2 2e 3f 73 a9 39 3f 2d a7 16 3f 6e ed b6 3e 28 b0 11 3f 44 ae c7 3e 8a 59 5d 3e ..u='..?s.9?-..?n..>(..?D..>.Y]> 52c0 b0 47 e1 3d 27 e2 2e 3f 5e d3 2e 3f 4c fd 25 bf 58 41 ac 3e 76 ad 09 3f 42 ae c7 3e e8 04 b3 3e .G.='..?^..?L.%.XA.>v..?B..>...> 52e0 b0 47 e1 3d 96 2b d2 3e 64 dd 31 3f 53 5f 29 bf 21 55 90 3e 74 ad 09 3f e8 46 92 3e e8 04 b3 3e .G.=.+.>d.1?S_).!U.>t..?.F.>...> 5300 90 c2 75 3d 96 2b d2 3e 7c cf 3d 3f 33 97 19 3f 34 d1 99 3e 27 b0 11 3f e8 46 92 3e 9a 46 d7 3e ..u=.+.>|.=?3..?4..>'..?.F.>.F.> 5320 90 c2 75 3d fd 2b 47 3e 8c cf 45 3f 30 cb 17 3f d0 01 68 3e 26 b0 11 3f 78 26 6f 3e 9a 46 d7 3e ..u=.+G>..E?0..?..h>&..?x&o>.F.> 5340 b0 47 e1 3d fd 2b 47 3e 74 ed 39 3f 4f 51 27 bf b4 f9 59 3e 72 ad 09 3f 78 26 6f 3e e8 ed f6 3e .G.=.+G>t.9?OQ'...Y>r..?x&o>...> 5360 b0 47 e1 3d a5 8b 33 bd 79 71 3c 3f 55 9d 2a bf e3 b1 f1 3d 71 ad 09 3f 1c bf 39 3e e8 ed f6 3e .G.=..3.yq<?U.*....=q..?..9>...> 5380 90 c2 75 3d a5 8b 33 bd 93 95 49 3f 35 7d 1a 3f 00 41 00 3e 25 b0 11 3f 1c bf 39 3e 72 94 0f 3f ..u=..3...I?5}.?.A.>%..?..9>r..? 53a0 10 d7 23 3d c2 df ff be 3b 7d 9d 3e dd 69 6e 3f 8f 99 47 be ea 16 1c 3f d0 e0 9d 3d 97 13 0f 3f ..#=....;}.>.in?..G....?...=...? 53c0 10 d7 23 3d 75 32 8a be 42 f9 a0 3e e6 fb 72 3f d0 01 68 3c ea 16 1c 3f c4 57 04 3e 84 af ff 3e ..#=u2..B..>..r?..h<...?.W.>...> 53e0 90 c2 75 3d 71 9f 95 be 9c 39 4e 3f 2f 85 17 3f b6 01 db 3c 24 b0 11 3f c0 57 04 3e 1a 89 ff 3e ..u=q....9N?/..?...<$..?.W.>...> 5400 90 c2 75 3d 90 fa ff be a2 e9 d0 3e 2b b5 95 3e bb 67 5d bf 23 b0 11 3f c8 e0 9d 3d ce e2 f2 3e ..u=.......>+..>.g].#..?...=...> 5420 b0 47 e1 3d aa 02 00 bf 6a dd b4 be 37 85 9b be c5 83 62 bf e1 93 d3 3e d8 e0 9d 3d ec 12 e3 3e .G.=....j...7.....b....>...=...> 5440 20 85 eb 3d 5c 09 00 bf 3e d1 1e bf 0c 19 06 bf 2b 6d 15 bf 14 9a dd 3e e0 e0 9d 3d 64 34 e4 3e ...=\...>.......+m.....>...=d4.> 5460 20 85 eb 3d f5 73 9f be 83 85 41 bf 4f 81 27 bf 30 c1 97 bc 17 9a dd 3e cc 57 04 3e 80 7a f3 3e ...=.s....A.O.'.0......>.W.>.z.> 5480 b0 47 e1 3d 0b 0b 9a be 89 b5 44 bf 47 b7 23 bf 82 41 c1 bc e2 93 d3 3e c8 57 04 3e ec 12 e3 3e .G.=......D.G.#..A.....>.W.>...> 54a0 20 85 eb 3d 5c 09 00 bf 3e d1 1e bf 0c 19 06 bf 2b 6d 15 bf 14 9a dd 3e e0 e0 9d 3d ec 12 e3 3e ...=\...>.......+m.....>...=...> 54c0 28 5c 0f 3e 5c 09 00 bf 29 85 14 bf 27 99 13 3f 27 47 13 bf b2 9c e5 3e d8 e0 9d 3d 64 34 e4 3e (\.>\...)...'..?'G.....>...=d4.> 54e0 28 5c 0f 3e f5 73 9f be 66 c9 32 bf 6e 29 37 3f 20 c1 8f bc b7 9c e5 3e c8 57 04 3e 64 34 e4 3e (\.>.s..f.2.n)7?.......>.W.>d4.> 5500 20 85 eb 3d f5 73 9f be 83 85 41 bf 4f 81 27 bf 30 c1 97 bc 17 9a dd 3e cc 57 04 3e 7f ac 07 3f ...=.s....A.O.'.0......>.W.>...? 5520 28 5c 0f 3e 2a ed ff be 29 53 14 3f 28 cb 13 3f 27 47 13 bf f2 a8 00 3f e0 e0 9d 3d df 76 07 3f (\.>*...)S.?(..?'G.....?...=.v.? 5540 28 5c 0f 3e 78 fa 8f be 6e e3 36 3f 66 fb 32 3f bf 81 df 3c f4 a8 00 3f c8 57 04 3e 64 34 e4 3e (\.>x...n.6?f.2?...<...?.W.>d4.> 5560 28 5c 0f 3e f5 73 9f be 66 c9 32 bf 6e 29 37 3f 20 c1 8f bc b7 9c e5 3e c8 57 04 3e ec 12 e3 3e (\.>.s..f.2.n)7?.......>.W.>...> 5580 28 5c 0f 3e 5c 09 00 bf 29 85 14 bf 27 99 13 3f 27 47 13 bf b2 9c e5 3e d8 e0 9d 3d d9 c2 02 3f (\.>\...)...'..?'G.....>...=...? 55a0 20 85 eb 3d dd 5e f0 bc 89 83 44 3f 41 a5 20 bf 0a 19 05 3e 50 aa 04 3f 24 bf 39 3e 77 c5 02 3f ...=.^....D?A......>P..?$.9>w..? 55c0 28 5c 0f 3e 31 62 ec bc 6e 37 37 3f 60 11 30 3f f1 61 f8 3d f7 a8 00 3f 24 bf 39 3e df 76 07 3f (\.>1b..n77?`.0?.a.=...?$.9>.v.? 55e0 28 5c 0f 3e 78 fa 8f be 6e e3 36 3f 66 fb 32 3f bf 81 df 3c f4 a8 00 3f c8 57 04 3e df 76 07 3f (\.>x...n.6?f.2?...<...?.W.>.v.? 5600 20 85 eb 3d 78 fa 8f be 89 8d 44 3f 48 d7 23 bf ea c1 f4 3c 4e aa 04 3f c8 57 04 3e e8 ed f6 3e ...=x.....D?H.#....<N..?.W.>...> 5620 b0 47 e1 3d a5 8b 33 bd 79 71 3c 3f 55 9d 2a bf e3 b1 f1 3d 71 ad 09 3f 1c bf 39 3e d9 c2 02 3f .G.=..3.yq<?U.*....=q..?..9>...? 5640 20 85 eb 3d dd 5e f0 bc 89 83 44 3f 41 a5 20 bf 0a 19 05 3e 50 aa 04 3f 24 bf 39 3e df 76 07 3f ...=.^....D?A......>P..?$.9>.v.? 5660 20 85 eb 3d 78 fa 8f be 89 8d 44 3f 48 d7 23 bf ea c1 f4 3c 4e aa 04 3f c8 57 04 3e 84 af ff 3e ...=x.....D?H.#....<N..?.W.>...> 5680 b0 47 e1 3d 71 9f 95 be 83 8d 41 3f 4f 6b 27 bf 9a c1 cc 3c 70 ad 09 3f c0 57 04 3e 6c 36 eb 3e .G.=q.....A?Ok'....<p..?.W.>l6.> 56a0 90 c2 75 3d 67 bb 63 bd 9f 43 4f bf 24 39 12 3f 14 29 0a be 81 8e c3 3e 28 bf 39 3e 80 7a f3 3e ..u=g.c..CO.$9.?.).....>(.9>.z.> 56c0 90 c2 75 3d 0b 0b 9a be a1 a3 50 bf 28 31 14 3f 98 01 cc bc 80 8e c3 3e d0 57 04 3e 80 7a f3 3e ..u=......P.(1.?.......>.W.>.z.> 56e0 b0 47 e1 3d 0b 0b 9a be 89 b5 44 bf 47 b7 23 bf 82 41 c1 bc e2 93 d3 3e c8 57 04 3e d2 32 eb 3e .G.=......D.G.#..A.....>.W.>.2.> 5700 b0 47 e1 3d cf 0d 65 bd 89 95 44 bf 41 bd 20 bf 03 a1 01 be e4 93 d3 3e 20 bf 39 3e 18 d2 cd 3e .G.=..e...D.A..........>..9>...> 5720 10 d7 23 3d a7 58 ac bd 3c 3d 9e be e6 35 73 3f 64 21 32 bd 06 c1 ae 3e 30 bf 39 3e 4c ea d4 3e ..#=.X..<=...5s?d!2....>0.9>L..> 5740 10 d7 23 3d 2e bd a4 be 42 f1 a0 be e6 03 73 3f 7c 01 be bb 08 c1 ae 3e d4 57 04 3e 80 7a f3 3e ..#=....B.....s?|......>.W.>.z.> 5760 90 c2 75 3d 0b 0b 9a be a1 a3 50 bf 28 31 14 3f 98 01 cc bc 80 8e c3 3e d0 57 04 3e 6c 36 eb 3e ..u=......P.(1.?.......>.W.>l6.> 5780 90 c2 75 3d 67 bb 63 bd 9f 43 4f bf 24 39 12 3f 14 29 0a be 81 8e c3 3e 28 bf 39 3e e8 ed f6 3e ..u=g.c..CO.$9.?.).....>(.9>...> 57a0 90 c2 75 3d a5 8b 33 bd 93 95 49 3f 35 7d 1a 3f 00 41 00 3e 25 b0 11 3f 1c bf 39 3e e8 ed f6 3e ..u=..3...I?5}.?.A.>%..?..9>...> 57c0 b0 47 e1 3d a5 8b 33 bd 79 71 3c 3f 55 9d 2a bf e3 b1 f1 3d 71 ad 09 3f 1c bf 39 3e 84 af ff 3e .G.=..3.yq<?U.*....=q..?..9>...> 57e0 b0 47 e1 3d 71 9f 95 be 83 8d 41 3f 4f 6b 27 bf 9a c1 cc 3c 70 ad 09 3f c0 57 04 3e 84 af ff 3e .G.=q.....A?Ok'....<p..?.W.>...> 5800 90 c2 75 3d 71 9f 95 be 9c 39 4e 3f 2f 85 17 3f b6 01 db 3c 24 b0 11 3f c0 57 04 3e e8 04 b3 3e ..u=q....9N?/..?...<$..?.W.>...> 5820 90 c2 75 3d 96 2b d2 3e 7c cf 3d 3f 33 97 19 3f 34 d1 99 3e 27 b0 11 3f e8 46 92 3e e8 04 b3 3e ..u=.+.>|.=?3..?4..>'..?.F.>...> 5840 b0 47 e1 3d 96 2b d2 3e 64 dd 31 3f 53 5f 29 bf 21 55 90 3e 74 ad 09 3f e8 46 92 3e 9a 46 d7 3e .G.=.+.>d.1?S_).!U.>t..?.F.>.F.> 5860 b0 47 e1 3d fd 2b 47 3e 74 ed 39 3f 4f 51 27 bf b4 f9 59 3e 72 ad 09 3f 78 26 6f 3e 9a 46 d7 3e .G.=.+G>t.9?OQ'...Y>r..?x&o>.F.> 5880 90 c2 75 3d fd 2b 47 3e 8c cf 45 3f 30 cb 17 3f d0 01 68 3e 26 b0 11 3f 78 26 6f 3e f4 e3 8b 3e ..u=.+G>..E?0..?..h>&..?x&o>...> 58a0 08 d7 23 3d 70 c5 b9 3e 28 c1 93 be e7 5f 73 3f d1 b1 e8 bd 04 c1 ae 3e f2 46 92 3e b8 c1 af 3e ..#=p..>(...._s?.......>.F.>...> 58c0 08 d7 23 3d a3 74 16 3e 31 b5 98 be e7 59 73 3f 60 41 b0 bd 05 c1 ae 3e 88 26 6f 3e 52 d9 cb 3e ..#=.t.>1....Ys?`A.....>.&o>R..> 58e0 90 c2 75 3d 78 ed 33 3e 8e 17 47 bf 2c d3 15 3f d6 e1 6a be 82 8e c3 3e 84 26 6f 3e 30 9e a7 3e ..u=x.3>..G.,..?..j....>.&o>0..> 5900 90 c2 75 3d 81 b6 c8 3e 83 7f 41 bf 29 a3 14 3f 36 e1 9a be 82 8e c3 3e f0 46 92 3e 46 0f 0a 3f ..u=...>..A.)..?6......>.F.>F..? 5920 10 d7 23 3d 19 64 5e bc 39 4d 9c 3e e7 57 73 3f d0 41 68 3d ea 16 1c 3f 20 bf 39 3e be 3f f3 3e ..#=.d^.9M.>.Ws?.Ah=...?..9>.?.> 5940 08 d7 23 3d 16 6f 65 3e 31 49 98 3e e7 55 73 3f 6f 51 b7 3d ea 16 1c 3f 78 26 6f 3e 9a 46 d7 3e ..#=.oe>1I.>.Us?oQ.=...?x&o>.F.> 5960 90 c2 75 3d fd 2b 47 3e 8c cf 45 3f 30 cb 17 3f d0 01 68 3e 26 b0 11 3f 78 26 6f 3e e8 ed f6 3e ..u=.+G>..E?0..?..h>&..?x&o>...> 5980 90 c2 75 3d a5 8b 33 bd 93 95 49 3f 35 7d 1a 3f 00 41 00 3e 25 b0 11 3f 1c bf 39 3e 30 9e a7 3e ..u=..3...I?5}.?.A.>%..?..9>0..> 59a0 90 c2 75 3d 81 b6 c8 3e 83 7f 41 bf 29 a3 14 3f 36 e1 9a be 82 8e c3 3e f0 46 92 3e 52 d9 cb 3e ..u=...>..A.)..?6......>.F.>R..> 59c0 90 c2 75 3d 78 ed 33 3e 8e 17 47 bf 2c d3 15 3f d6 e1 6a be 82 8e c3 3e 84 26 6f 3e 8e f9 cb 3e ..u=x.3>..G.,..?..j....>.&o>...> 59e0 b0 47 e1 3d 74 e8 34 3e 7a 11 3d bf 47 4f 23 bf be 41 5f be e5 93 d3 3e 7c 26 6f 3e 32 c3 a7 3e .G.=t.4>z.=.GO#..A_....>|&o>2..> 5a00 b0 47 e1 3d 91 77 c9 3e 71 75 38 bf 43 49 21 bf 28 41 94 be e6 93 d3 3e ec 46 92 3e e8 04 b3 3e .G.=.w.>qu8.CI!.(A.....>.F.>...> 5a20 b0 47 e1 3d 96 2b d2 3e 64 dd 31 3f 53 5f 29 bf 21 55 90 3e 74 ad 09 3f e8 46 92 3e b4 e4 c0 3e .G.=.+.>d.1?S_).!U.>t..?.F.>...> 5a40 20 85 eb 3d da 2f d9 3e 73 43 39 3f 3f 9f 1f bf 2f 69 97 3e 54 aa 04 3f ec 46 92 3e e8 52 e5 3e ...=./.>sC9??.../i.>T..?.F.>.R.> 5a60 20 85 eb 3d 61 ae 54 3e 7c c7 3d 3f 44 2d 22 bf c5 b9 62 3e 52 aa 04 3f 80 26 6f 3e 9a 46 d7 3e ...=a.T>|.=?D-"...b>R..?.&o>.F.> 5a80 b0 47 e1 3d fd 2b 47 3e 74 ed 39 3f 4f 51 27 bf b4 f9 59 3e 72 ad 09 3f 78 26 6f 3e d2 32 eb 3e .G.=.+G>t.9?OQ'...Y>r..?x&o>.2.> 5aa0 b0 47 e1 3d cf 0d 65 bd 89 95 44 bf 41 bd 20 bf 03 a1 01 be e4 93 d3 3e 20 bf 39 3e c8 88 dc 3e .G.=..e...D.A..........>..9>...> 5ac0 20 85 eb 3d 10 6b 8f bd 79 81 3c bf 55 b7 2a bf d4 21 ea bd 1a 9a dd 3e 28 bf 39 3e c0 e3 bd 3e ...=.k..y.<.U.*..!.....>(.9>...> 5ae0 20 85 eb 3d a6 ae 27 3e 74 0f 3a bf 4f 55 27 bf b0 f9 57 be 1d 9a dd 3e 80 26 6f 3e 8e f9 cb 3e ...=..'>t.:.OU'...W....>.&o>...> 5b00 b0 47 e1 3d 74 e8 34 3e 7a 11 3d bf 47 4f 23 bf be 41 5f be e5 93 d3 3e 7c 26 6f 3e b4 e4 c0 3e .G.=t.4>z.=.GO#..A_....>|&o>...> 5b20 20 85 eb 3d da 2f d9 3e 73 43 39 3f 3f 9f 1f bf 2f 69 97 3e 54 aa 04 3f ec 46 92 3e 02 ba c0 3e ...=./.>sC9??.../i.>T..?.F.>...> 5b40 28 5c 0f 3e 82 2f d8 3e 52 1b 29 3f 68 c5 33 3f 10 e5 87 3e fd a8 00 3f ec 46 92 3e 68 2d e5 3e (\.>./.>R.)?h.3?...>...?.F.>h-.> 5b60 28 5c 0f 3e a1 7e 53 3e 5b 61 2d 3f 6a 29 35 3f 9c 01 4e 3e fa a8 00 3f 80 26 6f 3e e8 52 e5 3e (\.>.~S>[a-?j)5?..N>...?.&o>.R.> 5b80 20 85 eb 3d 61 ae 54 3e 7c c7 3d 3f 44 2d 22 bf c5 b9 62 3e 52 aa 04 3f 80 26 6f 3e c8 88 dc 3e ...=a.T>|.=?D-"...b>R..?.&o>...> 5ba0 20 85 eb 3d 10 6b 8f bd 79 81 3c bf 55 b7 2a bf d4 21 ea bd 1a 9a dd 3e 28 bf 39 3e c8 88 dc 3e ...=.k..y.<.U.*..!.....>(.9>...> 5bc0 28 5c 0f 3e 10 6b 8f bd 5a 1d 2d bf 75 9b 3a 3f b4 41 da bd bc 9c e5 3e 20 bf 39 3e c0 e3 bd 3e (\.>.k..Z.-.u.:?.A.....>..9>...> 5be0 28 5c 0f 3e a6 ae 27 3e 58 07 2c bf 6e df 36 3f 90 c9 47 be c2 9c e5 3e 7c 26 6f 3e c0 e3 bd 3e (\.>..'>X.,.n.6?..G....>|&o>...> 5c00 20 85 eb 3d a6 ae 27 3e 74 0f 3a bf 4f 55 27 bf b0 f9 57 be 1d 9a dd 3e 80 26 6f 3e 77 c5 02 3f ...=..'>t.:.OU'...W....>.&o>w..? 5c20 28 5c 0f 3e 31 62 ec bc 6e 37 37 3f 60 11 30 3f f1 61 f8 3d f7 a8 00 3f 24 bf 39 3e 68 2d e5 3e (\.>1b..n77?`.0?.a.=...?$.9>h-.> 5c40 28 5c 0f 3e a1 7e 53 3e 5b 61 2d 3f 6a 29 35 3f 9c 01 4e 3e fa a8 00 3f 80 26 6f 3e c0 e3 bd 3e (\.>.~S>[a-?j)5?..N>...?.&o>...> 5c60 28 5c 0f 3e a6 ae 27 3e 58 07 2c bf 6e df 36 3f 90 c9 47 be c2 9c e5 3e 7c 26 6f 3e c8 88 dc 3e (\.>..'>X.,.n.6?..G....>|&o>...> 5c80 28 5c 0f 3e 10 6b 8f bd 5a 1d 2d bf 75 9b 3a 3f b4 41 da bd bc 9c e5 3e 20 bf 39 3e 54 52 49 53 (\.>.k..Z.-.u.:?.A.....>..9>TRIS 5ca0 e4 10 00 00 00 00 00 00 02 00 00 00 01 00 00 00 00 00 00 00 03 00 00 00 02 00 00 00 00 00 00 00 ................................ 5cc0 06 00 00 00 05 00 00 00 04 00 00 00 07 00 00 00 06 00 00 00 04 00 00 00 0a 00 00 00 09 00 00 00 ................................ 5ce0 08 00 00 00 0b 00 00 00 0a 00 00 00 08 00 00 00 0e 00 00 00 0d 00 00 00 0c 00 00 00 0f 00 00 00 ................................ 5d00 0e 00 00 00 0c 00 00 00 12 00 00 00 11 00 00 00 10 00 00 00 13 00 00 00 12 00 00 00 10 00 00 00 ................................ 5d20 16 00 00 00 15 00 00 00 14 00 00 00 17 00 00 00 16 00 00 00 14 00 00 00 1a 00 00 00 19 00 00 00 ................................ 5d40 18 00 00 00 1b 00 00 00 1a 00 00 00 18 00 00 00 1e 00 00 00 1d 00 00 00 1c 00 00 00 1f 00 00 00 ................................ 5d60 1e 00 00 00 1c 00 00 00 22 00 00 00 21 00 00 00 20 00 00 00 23 00 00 00 22 00 00 00 20 00 00 00 ........"...!.......#..."....... 5d80 26 00 00 00 25 00 00 00 24 00 00 00 27 00 00 00 26 00 00 00 24 00 00 00 2a 00 00 00 29 00 00 00 &...%...$...'...&...$...*...)... 5da0 28 00 00 00 2b 00 00 00 2a 00 00 00 28 00 00 00 2e 00 00 00 2d 00 00 00 2c 00 00 00 2f 00 00 00 (...+...*...(.......-...,.../... 5dc0 2e 00 00 00 2c 00 00 00 32 00 00 00 31 00 00 00 30 00 00 00 33 00 00 00 32 00 00 00 30 00 00 00 ....,...2...1...0...3...2...0... 5de0 36 00 00 00 35 00 00 00 34 00 00 00 37 00 00 00 36 00 00 00 34 00 00 00 3a 00 00 00 39 00 00 00 6...5...4...7...6...4...:...9... 5e00 38 00 00 00 3b 00 00 00 3a 00 00 00 38 00 00 00 3e 00 00 00 3d 00 00 00 3c 00 00 00 3f 00 00 00 8...;...:...8...>...=...<...?... 5e20 3e 00 00 00 3c 00 00 00 42 00 00 00 41 00 00 00 40 00 00 00 43 00 00 00 42 00 00 00 40 00 00 00 >...<...B...A...@...C...B...@... 5e40 46 00 00 00 45 00 00 00 44 00 00 00 47 00 00 00 46 00 00 00 44 00 00 00 4a 00 00 00 49 00 00 00 F...E...D...G...F...D...J...I... 5e60 48 00 00 00 4b 00 00 00 4a 00 00 00 48 00 00 00 4e 00 00 00 4d 00 00 00 4c 00 00 00 4f 00 00 00 H...K...J...H...N...M...L...O... 5e80 4e 00 00 00 4c 00 00 00 52 00 00 00 51 00 00 00 50 00 00 00 53 00 00 00 52 00 00 00 50 00 00 00 N...L...R...Q...P...S...R...P... 5ea0 56 00 00 00 55 00 00 00 54 00 00 00 57 00 00 00 56 00 00 00 54 00 00 00 5a 00 00 00 59 00 00 00 V...U...T...W...V...T...Z...Y... 5ec0 58 00 00 00 5b 00 00 00 5a 00 00 00 58 00 00 00 5e 00 00 00 5d 00 00 00 5c 00 00 00 5f 00 00 00 X...[...Z...X...^...]...\..._... 5ee0 5e 00 00 00 5c 00 00 00 62 00 00 00 61 00 00 00 60 00 00 00 63 00 00 00 62 00 00 00 60 00 00 00 ^...\...b...a...`...c...b...`... 5f00 66 00 00 00 65 00 00 00 64 00 00 00 67 00 00 00 66 00 00 00 64 00 00 00 6a 00 00 00 69 00 00 00 f...e...d...g...f...d...j...i... 5f20 68 00 00 00 6b 00 00 00 6a 00 00 00 68 00 00 00 6e 00 00 00 6d 00 00 00 6c 00 00 00 6f 00 00 00 h...k...j...h...n...m...l...o... 5f40 6e 00 00 00 6c 00 00 00 72 00 00 00 71 00 00 00 70 00 00 00 73 00 00 00 72 00 00 00 70 00 00 00 n...l...r...q...p...s...r...p... 5f60 76 00 00 00 75 00 00 00 74 00 00 00 77 00 00 00 76 00 00 00 74 00 00 00 7a 00 00 00 79 00 00 00 v...u...t...w...v...t...z...y... 5f80 78 00 00 00 7b 00 00 00 7a 00 00 00 78 00 00 00 7e 00 00 00 7d 00 00 00 7c 00 00 00 7f 00 00 00 x...{...z...x...~...}...|....... 5fa0 7e 00 00 00 7c 00 00 00 82 00 00 00 81 00 00 00 80 00 00 00 83 00 00 00 82 00 00 00 80 00 00 00 ~...|........................... 5fc0 86 00 00 00 85 00 00 00 84 00 00 00 87 00 00 00 86 00 00 00 84 00 00 00 8a 00 00 00 89 00 00 00 ................................ 5fe0 88 00 00 00 8b 00 00 00 8a 00 00 00 88 00 00 00 8e 00 00 00 8d 00 00 00 8c 00 00 00 8f 00 00 00 ................................ 6000 8e 00 00 00 8c 00 00 00 92 00 00 00 91 00 00 00 90 00 00 00 93 00 00 00 92 00 00 00 90 00 00 00 ................................ 6020 96 00 00 00 95 00 00 00 94 00 00 00 99 00 00 00 98 00 00 00 97 00 00 00 9c 00 00 00 9b 00 00 00 ................................ 6040 9a 00 00 00 9f 00 00 00 9e 00 00 00 9d 00 00 00 a2 00 00 00 a1 00 00 00 a0 00 00 00 a5 00 00 00 ................................ 6060 a4 00 00 00 a3 00 00 00 a8 00 00 00 a7 00 00 00 a6 00 00 00 ab 00 00 00 aa 00 00 00 a9 00 00 00 ................................ 6080 ae 00 00 00 ad 00 00 00 ac 00 00 00 af 00 00 00 ae 00 00 00 ac 00 00 00 b2 00 00 00 b1 00 00 00 ................................ 60a0 b0 00 00 00 b3 00 00 00 b2 00 00 00 b0 00 00 00 b6 00 00 00 b5 00 00 00 b4 00 00 00 b7 00 00 00 ................................ 60c0 b6 00 00 00 b4 00 00 00 ba 00 00 00 b9 00 00 00 b8 00 00 00 bb 00 00 00 ba 00 00 00 b8 00 00 00 ................................ 60e0 be 00 00 00 bd 00 00 00 bc 00 00 00 bf 00 00 00 be 00 00 00 bc 00 00 00 c2 00 00 00 c1 00 00 00 ................................ 6100 c0 00 00 00 c3 00 00 00 c2 00 00 00 c0 00 00 00 c6 00 00 00 c5 00 00 00 c4 00 00 00 c7 00 00 00 ................................ 6120 c6 00 00 00 c4 00 00 00 ca 00 00 00 c9 00 00 00 c8 00 00 00 cb 00 00 00 ca 00 00 00 c8 00 00 00 ................................ 6140 ce 00 00 00 cd 00 00 00 cc 00 00 00 cf 00 00 00 ce 00 00 00 cc 00 00 00 d2 00 00 00 d1 00 00 00 ................................ 6160 d0 00 00 00 d3 00 00 00 d2 00 00 00 d0 00 00 00 d6 00 00 00 d5 00 00 00 d4 00 00 00 d7 00 00 00 ................................ 6180 d6 00 00 00 d4 00 00 00 da 00 00 00 d9 00 00 00 d8 00 00 00 db 00 00 00 da 00 00 00 d8 00 00 00 ................................ 61a0 de 00 00 00 dd 00 00 00 dc 00 00 00 df 00 00 00 de 00 00 00 dc 00 00 00 e2 00 00 00 e1 00 00 00 ................................ 61c0 e0 00 00 00 e5 00 00 00 e4 00 00 00 e3 00 00 00 e8 00 00 00 e7 00 00 00 e6 00 00 00 eb 00 00 00 ................................ 61e0 ea 00 00 00 e9 00 00 00 ee 00 00 00 ed 00 00 00 ec 00 00 00 f1 00 00 00 f0 00 00 00 ef 00 00 00 ................................ 6200 f4 00 00 00 f3 00 00 00 f2 00 00 00 f7 00 00 00 f6 00 00 00 f5 00 00 00 fa 00 00 00 f9 00 00 00 ................................ 6220 f8 00 00 00 fb 00 00 00 fa 00 00 00 f8 00 00 00 fe 00 00 00 fd 00 00 00 fc 00 00 00 ff 00 00 00 ................................ 6240 fe 00 00 00 fc 00 00 00 02 01 00 00 01 01 00 00 00 01 00 00 03 01 00 00 02 01 00 00 00 01 00 00 ................................ 6260 06 01 00 00 05 01 00 00 04 01 00 00 07 01 00 00 06 01 00 00 04 01 00 00 0a 01 00 00 09 01 00 00 ................................ 6280 08 01 00 00 0b 01 00 00 0a 01 00 00 08 01 00 00 0e 01 00 00 0d 01 00 00 0c 01 00 00 0f 01 00 00 ................................ 62a0 0e 01 00 00 0c 01 00 00 12 01 00 00 11 01 00 00 10 01 00 00 13 01 00 00 12 01 00 00 10 01 00 00 ................................ 62c0 16