mutiny-core 0.4.39

The core SDK for the mutiny node
Documentation
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
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
#![allow(dead_code)]

pub fn create_manager() -> AuthManager {
    let mnemonic = generate_seed(12).unwrap();
    let seed = mnemonic.to_seed("");
    let xprivkey = ExtendedPrivKey::new_master(Network::Regtest, &seed).unwrap();
    AuthManager::new(xprivkey).unwrap()
}

pub async fn create_vss_client() -> MutinyVssClient {
    // Set up test auth client
    let auth_manager = create_manager();
    let lnurl_client = Arc::new(
        lnurl::Builder::default()
            .build_async()
            .expect("failed to make lnurl client"),
    );
    let logger = Arc::new(MutinyLogger::default());
    let url = "https://auth-staging.mutinywallet.com";

    let auth_client =
        MutinyAuthClient::new(auth_manager, lnurl_client, logger.clone(), url.to_string());

    // Test authenticate method
    match auth_client.authenticate().await {
        Ok(_) => assert!(auth_client.is_authenticated().is_some()),
        Err(e) => panic!("Authentication failed with error: {:?}", e),
    };

    let encryption_key = SecretKey::from_slice(&[2; 32]).unwrap();

    MutinyVssClient::new_authenticated(
        Arc::new(auth_client),
        "https://vss-staging.fly.dev/v2".to_string(),
        encryption_key,
        logger,
    )
}

pub fn create_nwc_request(nwc: &NostrWalletConnectURI, invoice: String) -> Event {
    let req = Request {
        method: Method::PayInvoice,
        params: RequestParams::PayInvoice(PayInvoiceRequestParams { invoice }),
    };

    let encrypted = encrypt(&nwc.secret, &nwc.public_key, req.as_json()).unwrap();
    let p_tag = Tag::PubKey(nwc.public_key, None);

    EventBuilder::new(Kind::WalletConnectRequest, encrypted, &[p_tag])
        .to_event(&Keys::new(nwc.secret))
        .unwrap()
}

pub(crate) async fn create_node<S: MutinyStorage>(storage: S) -> Node<S> {
    // mark first sync as done so we can execute node functions
    storage.set_done_first_sync().unwrap();

    let stop = Arc::new(AtomicBool::new(false));
    let logger = Arc::new(MutinyLogger::default());
    let seed = generate_seed(12).unwrap();
    let network = Network::Regtest;
    let xprivkey = ExtendedPrivKey::new_master(network, &seed.to_seed("")).unwrap();
    let network_graph = Arc::new(NetworkGraph::new(network, logger.clone()));
    let gossip_sync = Arc::new(RapidGossipSync::new(network_graph.clone(), logger.clone()));
    let params = ProbabilisticScoringDecayParameters::default();
    let scorer = Arc::new(Mutex::new(HubPreferentialScorer::new(ProbScorer::new(
        params,
        network_graph.clone(),
        logger.clone(),
    ))));

    let esplora_server_url = get_esplora_url(network, None);
    let client = Arc::new(
        esplora_client::Builder::new(&esplora_server_url)
            .build_async()
            .unwrap(),
    );
    let esplora = MultiEsploraClient::new(vec![client]);
    let tx_sync = Arc::new(EsploraSyncClient::from_client(
        esplora.clone(),
        logger.clone(),
    ));
    let esplora = Arc::new(esplora);
    let fee_estimator = Arc::new(MutinyFeeEstimator::new(
        storage.clone(),
        esplora.clone(),
        logger.clone(),
    ));

    let wallet = Arc::new(
        OnChainWallet::new(
            xprivkey,
            storage.clone(),
            network,
            esplora.clone(),
            fee_estimator.clone(),
            stop.clone(),
            logger.clone(),
        )
        .unwrap(),
    );

    let chain = Arc::new(MutinyChain::new(tx_sync, wallet.clone(), logger.clone()));

    Node::new(
        Uuid::new_v4().to_string(),
        &NodeIndex::default(),
        xprivkey,
        storage,
        gossip_sync,
        scorer,
        chain,
        fee_estimator,
        wallet,
        network,
        &esplora,
        &[],
        logger,
        false,
        false,
        true,
        #[cfg(target_arch = "wasm32")]
        String::from("wss://p.mutinywallet.com"),
    )
    .await
    .unwrap()
}

pub fn create_dummy_invoice(
    msats: Option<u64>,
    network: Network,
    sk: Option<SecretKey>,
) -> (Bolt11Invoice, [u8; 32]) {
    let preimage = &mut [0u8; 32];
    getrandom::getrandom(preimage).unwrap();
    let invoice_hash = sha256::Hash::hash(preimage);

    let payment_secret = &mut [0u8; 32];
    getrandom::getrandom(payment_secret).unwrap();

    let sk = sk.unwrap_or_else(|| {
        let priv_key_bytes = &mut [0u8; 32];
        getrandom::getrandom(priv_key_bytes).unwrap();
        SecretKey::from_slice(priv_key_bytes).unwrap()
    });

    let secp = Secp256k1::new();
    let builder = InvoiceBuilder::new(network.into())
        .description("Dummy invoice".to_string())
        .duration_since_epoch(now())
        .payment_hash(invoice_hash)
        .payment_secret(PaymentSecret(*payment_secret))
        .min_final_cltv_expiry_delta(144);

    let builder = if let Some(msats) = msats {
        builder.amount_milli_satoshis(msats)
    } else {
        builder
    };

    let invoice = builder
        .build_signed(|hash| secp.sign_ecdsa_recoverable(hash, &sk))
        .unwrap();

    (invoice, *preimage)
}

#[allow(unused_macros)]
macro_rules! log {
        ( $( $t:tt )* ) => {
            #[cfg(target_arch = "wasm32")]
            web_sys::console::log_1(&format!( $( $t )* ).into());
            #[cfg(not(target_arch = "wasm32"))]
            println!( $( $t )* );
        }
    }
use bitcoin::hashes::{sha256, Hash};
use bitcoin::secp256k1::{Secp256k1, SecretKey};
use bitcoin::{util::bip32::ExtendedPrivKey, Network};
use lightning::ln::PaymentSecret;
use lightning::routing::scoring::ProbabilisticScoringDecayParameters;
use lightning_invoice::{Bolt11Invoice, InvoiceBuilder};
#[allow(unused_imports)]
pub(crate) use log;
use nostr::nips::nip47::*;
use nostr::prelude::{encrypt, NostrWalletConnectURI};
use nostr::{Event, EventBuilder, Keys, Kind, Tag};
use std::sync::atomic::AtomicBool;
use std::sync::Arc;
use uuid::Uuid;

use crate::auth::MutinyAuthClient;
use crate::chain::MutinyChain;
use crate::esplora::EsploraSyncClient;
use crate::fees::MutinyFeeEstimator;
use crate::logging::MutinyLogger;
use crate::multiesplora::MultiEsploraClient;
use crate::node::{NetworkGraph, Node, RapidGossipSync};
use crate::nodemanager::NodeIndex;
use crate::onchain::{get_esplora_url, OnChainWallet};
use crate::scorer::{HubPreferentialScorer, ProbScorer};
use crate::storage::MutinyStorage;
use crate::utils::{now, Mutex};
use crate::vss::MutinyVssClient;
use crate::{generate_seed, lnurlauth::AuthManager};

pub const MANAGER_BYTES: [u8; 256] = [
    1, 1, 246, 30, 238, 59, 99, 163, 128, 164, 119, 160, 99, 175, 50, 178, 187, 201, 124, 159, 249,
    240, 31, 44, 66, 37, 233, 115, 152, 129, 8, 0, 0, 0, 0, 3, 123, 222, 76, 244, 143, 88, 178,
    115, 155, 195, 17, 83, 168, 252, 26, 45, 231, 72, 39, 21, 96, 23, 203, 8, 101, 10, 238, 136,
    77, 5, 250, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 172, 120, 225, 100,
    172, 120, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 1, 2, 0, 0, 3, 2, 0, 0, 5,
    33, 3, 49, 56, 184, 182, 87, 71, 249, 167, 155, 99, 242, 124, 162, 190, 245, 15, 63, 119, 66,
    102, 88, 52, 223, 137, 219, 56, 27, 137, 175, 103, 200, 26, 7, 32, 23, 65, 121, 234, 117, 201,
    12, 57, 255, 124, 147, 188, 210, 48, 53, 179, 20, 157, 122, 21, 212, 195, 166, 222, 214, 124,
    167, 7, 217, 175, 93, 50, 9, 0, 11, 32, 124, 241, 131, 188, 131, 90, 195, 214, 250, 125, 197,
    126, 163, 168, 131, 111, 78, 41, 166, 218, 20, 49, 233, 172, 19, 243, 93, 239, 33, 64, 36, 240,
];

// 2 channel monitors, one before and one after a payment

pub const MONITOR_VERSION_HIGHER: [u8; 5849] = [
    1, 1, 0, 0, 0, 0, 0, 0, 0, 10, 154, 109, 35, 244, 90, 14, 0, 34, 81, 32, 65, 93, 220, 7, 194,
    50, 109, 153, 149, 239, 116, 229, 216, 194, 52, 104, 10, 212, 3, 72, 161, 38, 119, 196, 117,
    219, 30, 227, 74, 131, 60, 43, 1, 0, 22, 0, 20, 65, 10, 38, 42, 95, 246, 244, 88, 7, 193, 27,
    85, 33, 248, 164, 100, 116, 167, 81, 131, 0, 0, 0, 0, 0, 0, 153, 138, 15, 64, 0, 0, 0, 0, 101,
    9, 69, 166, 8, 100, 42, 4, 222, 170, 7, 115, 149, 79, 64, 161, 84, 83, 192, 134, 3, 210, 234,
    68, 18, 21, 39, 158, 188, 30, 48, 110, 109, 138, 227, 110, 155, 105, 174, 70, 253, 241, 91,
    239, 159, 253, 83, 253, 26, 206, 232, 60, 39, 226, 223, 127, 106, 59, 88, 192, 252, 24, 23,
    239, 254, 29, 27, 49, 165, 198, 37, 11, 20, 13, 186, 166, 171, 167, 86, 123, 223, 254, 110, 48,
    67, 0, 0, 0, 34, 0, 32, 208, 244, 191, 20, 197, 149, 7, 106, 201, 46, 119, 19, 187, 96, 162,
    41, 247, 125, 88, 42, 229, 34, 6, 202, 244, 7, 46, 78, 14, 61, 91, 97, 33, 138, 148, 48, 45,
    203, 227, 187, 163, 153, 119, 212, 255, 252, 48, 0, 40, 0, 24, 146, 167, 36, 197, 51, 122, 210,
    89, 102, 3, 242, 88, 233, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 33, 3, 33, 88, 253, 177, 233,
    158, 226, 126, 248, 230, 147, 151, 18, 250, 180, 242, 239, 106, 199, 121, 76, 165, 236, 84,
    151, 218, 162, 193, 73, 216, 163, 235, 2, 33, 2, 102, 194, 245, 56, 190, 148, 142, 23, 14, 18,
    212, 128, 124, 41, 30, 99, 228, 244, 77, 167, 111, 159, 210, 77, 134, 43, 250, 151, 154, 217,
    163, 226, 4, 2, 0, 144, 0, 71, 82, 33, 2, 187, 2, 3, 79, 186, 192, 60, 67, 252, 172, 82, 26,
    102, 22, 113, 168, 132, 178, 196, 196, 123, 110, 147, 195, 27, 156, 18, 200, 244, 151, 205,
    254, 33, 3, 131, 221, 176, 32, 165, 131, 251, 198, 154, 238, 179, 38, 122, 19, 19, 211, 203,
    12, 0, 199, 161, 186, 226, 233, 31, 45, 196, 174, 114, 119, 95, 177, 82, 174, 0, 0, 0, 0, 0, 1,
    168, 42, 255, 255, 255, 255, 255, 252, 3, 135, 149, 248, 137, 131, 21, 104, 28, 9, 162, 86, 55,
    4, 108, 206, 224, 27, 220, 58, 30, 188, 197, 98, 195, 108, 44, 133, 114, 206, 49, 40, 182, 3,
    221, 239, 96, 0, 35, 99, 247, 127, 194, 170, 32, 50, 6, 130, 242, 232, 73, 142, 164, 249, 68,
    253, 102, 13, 223, 206, 3, 59, 246, 69, 142, 223, 0, 6, 61, 83, 55, 40, 9, 194, 48, 133, 121,
    91, 253, 51, 163, 8, 142, 250, 101, 232, 15, 239, 217, 168, 110, 45, 90, 138, 230, 5, 159, 56,
    125, 34, 0, 0, 255, 255, 255, 255, 255, 253, 48, 252, 253, 73, 72, 56, 121, 88, 202, 181, 51,
    186, 28, 206, 74, 120, 173, 68, 51, 31, 238, 48, 11, 84, 231, 180, 255, 150, 232, 148, 83, 26,
    0, 0, 255, 255, 255, 255, 255, 254, 139, 124, 72, 238, 170, 26, 98, 126, 151, 25, 85, 15, 71,
    147, 79, 45, 42, 151, 184, 210, 112, 39, 107, 62, 58, 97, 198, 210, 239, 164, 202, 50, 0, 0,
    255, 255, 255, 255, 255, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 5, 96, 10, 179, 100, 168, 83, 45, 155, 65, 255, 164, 116, 148, 201, 149, 185, 13, 76,
    254, 163, 131, 243, 222, 206, 17, 175, 172, 185, 120, 76, 110, 174, 0, 0, 0, 0, 0, 0, 0, 0, 49,
    11, 0, 30, 89, 85, 93, 242, 225, 196, 247, 145, 235, 201, 222, 76, 204, 163, 180, 193, 90, 79,
    60, 70, 161, 206, 157, 206, 204, 111, 40, 202, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3,
    233, 0, 6, 120, 31, 232, 188, 222, 158, 69, 94, 212, 160, 13, 108, 187, 217, 29, 36, 140, 143,
    45, 142, 221, 104, 236, 91, 178, 211, 230, 248, 245, 208, 152, 72, 19, 236, 0, 0, 138, 148, 48,
    45, 203, 227, 187, 163, 153, 119, 212, 255, 252, 48, 0, 40, 0, 24, 146, 167, 36, 197, 51, 122,
    210, 89, 102, 3, 242, 88, 233, 191, 0, 0, 0, 0, 0, 0, 0, 0, 93, 30, 191, 211, 132, 13, 223, 28,
    30, 155, 213, 28, 146, 28, 240, 23, 133, 82, 103, 92, 34, 212, 33, 88, 197, 9, 104, 15, 105,
    87, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 25, 99, 36, 213, 104, 22, 164, 98, 20, 155, 99, 230,
    147, 53, 36, 1, 203, 131, 128, 171, 157, 191, 180, 109, 116, 39, 25, 150, 155, 79, 163, 0, 0,
    0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 114, 112, 224, 0, 6, 119, 81, 98, 164, 145, 193, 45, 31,
    120, 243, 144, 168, 100, 49, 84, 4, 224, 73, 72, 92, 90, 213, 166, 100, 246, 66, 103, 26, 243,
    246, 153, 133, 173, 59, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 232,
    188, 222, 158, 69, 94, 212, 160, 13, 108, 187, 217, 29, 36, 140, 143, 45, 142, 221, 104, 236,
    91, 178, 211, 230, 248, 245, 208, 152, 72, 19, 236, 255, 255, 255, 255, 255, 252, 1, 253, 2, 5,
    0, 32, 240, 36, 143, 171, 249, 153, 75, 141, 246, 252, 141, 209, 37, 176, 178, 5, 117, 242,
    143, 140, 232, 13, 166, 18, 6, 216, 227, 16, 114, 252, 62, 192, 1, 8, 0, 0, 0, 0, 0, 0, 29, 74,
    2, 33, 2, 247, 34, 149, 238, 169, 171, 219, 3, 202, 193, 58, 240, 240, 137, 207, 86, 202, 232,
    140, 14, 53, 247, 218, 92, 84, 243, 232, 62, 175, 106, 234, 190, 4, 33, 3, 231, 119, 4, 90,
    125, 246, 84, 13, 54, 22, 216, 252, 145, 174, 245, 72, 143, 6, 214, 142, 169, 46, 90, 172, 133,
    104, 158, 65, 198, 4, 30, 160, 6, 33, 2, 211, 122, 58, 31, 71, 2, 45, 67, 29, 120, 151, 222,
    10, 201, 133, 51, 19, 121, 126, 166, 229, 158, 89, 93, 135, 55, 118, 28, 228, 32, 0, 159, 8,
    33, 2, 113, 136, 197, 1, 1, 148, 130, 150, 88, 246, 16, 246, 173, 185, 162, 156, 2, 114, 139,
    207, 179, 58, 164, 123, 1, 18, 141, 118, 222, 66, 231, 96, 10, 33, 3, 40, 122, 215, 156, 220,
    181, 67, 246, 235, 119, 185, 229, 133, 56, 178, 33, 14, 251, 214, 74, 32, 3, 135, 146, 115,
    139, 130, 127, 75, 209, 164, 99, 12, 4, 0, 0, 1, 12, 14, 253, 1, 32, 53, 0, 1, 1, 2, 8, 0, 0,
    0, 0, 0, 0, 3, 233, 4, 4, 0, 6, 120, 31, 6, 32, 232, 188, 222, 158, 69, 94, 212, 160, 13, 108,
    187, 217, 29, 36, 140, 143, 45, 142, 221, 104, 236, 91, 178, 211, 230, 248, 245, 208, 152, 72,
    19, 236, 0, 233, 0, 230, 0, 32, 105, 253, 117, 112, 209, 74, 81, 80, 27, 29, 166, 200, 135, 23,
    245, 174, 215, 1, 166, 81, 194, 158, 229, 182, 9, 237, 14, 186, 250, 96, 208, 218, 1, 32, 232,
    188, 222, 158, 69, 94, 212, 160, 13, 108, 187, 217, 29, 36, 140, 143, 45, 142, 221, 104, 236,
    91, 178, 211, 230, 248, 245, 208, 152, 72, 19, 236, 2, 8, 0, 0, 0, 0, 0, 0, 3, 233, 4, 150, 76,
    0, 33, 3, 102, 171, 200, 235, 77, 166, 30, 49, 168, 210, 196, 82, 13, 49, 202, 189, 245, 140,
    197, 37, 15, 133, 86, 87, 57, 127, 61, 214, 36, 147, 147, 138, 2, 9, 0, 7, 8, 160, 0, 8, 10,
    97, 162, 4, 8, 6, 119, 38, 0, 0, 1, 0, 0, 6, 2, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 1, 10, 4, 0,
    0, 0, 6, 72, 0, 33, 2, 70, 94, 213, 190, 83, 208, 79, 222, 102, 201, 65, 143, 241, 74, 95, 34,
    103, 114, 56, 16, 23, 108, 146, 18, 183, 34, 229, 66, 220, 26, 251, 27, 2, 5, 0, 3, 2, 66, 0,
    4, 8, 0, 163, 91, 0, 0, 1, 0, 1, 6, 2, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 3, 232, 10, 4, 0, 0, 0,
    240, 227, 0, 32, 57, 122, 179, 1, 7, 26, 130, 195, 196, 99, 62, 192, 228, 125, 160, 15, 88,
    109, 160, 95, 173, 118, 136, 134, 116, 254, 120, 47, 153, 245, 218, 163, 1, 8, 0, 0, 0, 0, 0,
    0, 29, 74, 2, 33, 3, 185, 187, 202, 237, 76, 100, 33, 67, 198, 106, 20, 53, 255, 236, 90, 244,
    165, 82, 94, 183, 161, 91, 17, 155, 79, 22, 125, 85, 241, 192, 221, 22, 4, 33, 2, 102, 100, 0,
    142, 24, 185, 50, 208, 0, 31, 53, 171, 84, 151, 45, 201, 84, 247, 94, 197, 103, 203, 69, 109,
    61, 31, 28, 105, 121, 32, 139, 49, 6, 33, 2, 177, 97, 28, 79, 202, 157, 135, 59, 69, 84, 121,
    188, 148, 189, 154, 124, 179, 159, 221, 108, 102, 101, 13, 21, 252, 172, 226, 253, 236, 122,
    87, 141, 8, 33, 3, 228, 66, 52, 168, 196, 34, 8, 67, 145, 248, 210, 70, 197, 31, 154, 136, 216,
    242, 131, 18, 20, 102, 217, 167, 229, 9, 70, 170, 244, 138, 147, 105, 10, 33, 2, 100, 202, 68,
    171, 169, 58, 210, 226, 81, 178, 210, 143, 154, 242, 64, 64, 157, 121, 44, 104, 255, 179, 20,
    201, 86, 92, 20, 252, 246, 4, 197, 2, 12, 4, 0, 0, 1, 12, 14, 0, 255, 255, 255, 255, 255, 251,
    255, 255, 255, 255, 255, 251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 128, 20, 236, 103, 32, 226, 239, 255, 29, 0, 198, 148, 224, 30, 143, 152, 92, 206, 6, 26,
    175, 144, 0, 153, 187, 27, 143, 131, 91, 3, 0, 0, 0, 6, 119, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 1, 226, 223, 127, 106, 59, 88, 192, 252, 24, 23, 239, 254, 29, 27, 49, 165, 198,
    37, 11, 20, 13, 186, 166, 171, 167, 86, 123, 223, 254, 110, 48, 67, 0, 0, 0, 0, 0, 0, 0, 1, 0,
    0, 0, 0, 0, 34, 0, 32, 208, 244, 191, 20, 197, 149, 7, 106, 201, 46, 119, 19, 187, 96, 162, 41,
    247, 125, 88, 42, 229, 34, 6, 202, 244, 7, 46, 78, 14, 61, 91, 97, 1, 1, 0, 34, 81, 32, 65, 93,
    220, 7, 194, 50, 109, 153, 149, 239, 116, 229, 216, 194, 52, 104, 10, 212, 3, 72, 161, 38, 119,
    196, 117, 219, 30, 227, 74, 131, 60, 43, 253, 1, 206, 0, 253, 1, 131, 253, 1, 128, 0, 8, 0, 0,
    255, 255, 255, 255, 255, 251, 2, 8, 0, 0, 0, 0, 0, 0, 29, 74, 4, 8, 0, 0, 0, 0, 0, 1, 138, 29,
    6, 4, 0, 0, 1, 12, 8, 176, 175, 0, 33, 2, 100, 202, 68, 171, 169, 58, 210, 226, 81, 178, 210,
    143, 154, 242, 64, 64, 157, 121, 44, 104, 255, 179, 20, 201, 86, 92, 20, 252, 246, 4, 197, 2,
    2, 33, 3, 185, 187, 202, 237, 76, 100, 33, 67, 198, 106, 20, 53, 255, 236, 90, 244, 165, 82,
    94, 183, 161, 91, 17, 155, 79, 22, 125, 85, 241, 192, 221, 22, 4, 33, 2, 102, 100, 0, 142, 24,
    185, 50, 208, 0, 31, 53, 171, 84, 151, 45, 201, 84, 247, 94, 197, 103, 203, 69, 109, 61, 31,
    28, 105, 121, 32, 139, 49, 6, 33, 2, 177, 97, 28, 79, 202, 157, 135, 59, 69, 84, 121, 188, 148,
    189, 154, 124, 179, 159, 221, 108, 102, 101, 13, 21, 252, 172, 226, 253, 236, 122, 87, 141, 8,
    33, 3, 228, 66, 52, 168, 196, 34, 8, 67, 145, 248, 210, 70, 197, 31, 154, 136, 216, 242, 131,
    18, 20, 102, 217, 167, 229, 9, 70, 170, 244, 138, 147, 105, 10, 162, 161, 0, 125, 2, 0, 0, 0,
    1, 226, 223, 127, 106, 59, 88, 192, 252, 24, 23, 239, 254, 29, 27, 49, 165, 198, 37, 11, 20,
    13, 186, 166, 171, 167, 86, 123, 223, 254, 110, 48, 67, 0, 0, 0, 0, 0, 35, 109, 154, 128, 2,
    74, 29, 0, 0, 0, 0, 0, 0, 34, 0, 32, 51, 4, 230, 6, 41, 209, 178, 200, 117, 186, 85, 189, 102,
    86, 23, 247, 244, 73, 239, 128, 237, 10, 200, 54, 30, 1, 62, 112, 193, 56, 254, 65, 29, 138, 1,
    0, 0, 0, 0, 0, 22, 0, 20, 51, 158, 131, 246, 71, 104, 102, 154, 80, 177, 165, 227, 253, 31,
    103, 124, 143, 230, 217, 25, 10, 90, 244, 32, 2, 32, 57, 122, 179, 1, 7, 26, 130, 195, 196, 99,
    62, 192, 228, 125, 160, 15, 88, 109, 160, 95, 173, 118, 136, 134, 116, 254, 120, 47, 153, 245,
    218, 163, 12, 0, 15, 2, 16, 0, 2, 64, 115, 40, 21, 5, 135, 46, 119, 177, 184, 231, 240, 114,
    236, 75, 182, 243, 27, 95, 82, 250, 32, 205, 70, 195, 27, 15, 218, 161, 38, 100, 141, 74, 49,
    24, 225, 47, 6, 186, 141, 96, 182, 237, 203, 63, 114, 2, 179, 26, 242, 244, 75, 43, 193, 33,
    45, 118, 237, 7, 2, 143, 249, 63, 220, 252, 4, 1, 1, 6, 0, 0, 253, 1, 210, 253, 1, 206, 0, 253,
    1, 131, 253, 1, 128, 0, 8, 0, 0, 255, 255, 255, 255, 255, 252, 2, 8, 0, 0, 0, 0, 0, 0, 29, 74,
    4, 8, 0, 0, 0, 0, 0, 1, 138, 28, 6, 4, 0, 0, 1, 12, 8, 176, 175, 0, 33, 3, 40, 122, 215, 156,
    220, 181, 67, 246, 235, 119, 185, 229, 133, 56, 178, 33, 14, 251, 214, 74, 32, 3, 135, 146,
    115, 139, 130, 127, 75, 209, 164, 99, 2, 33, 2, 247, 34, 149, 238, 169, 171, 219, 3, 202, 193,
    58, 240, 240, 137, 207, 86, 202, 232, 140, 14, 53, 247, 218, 92, 84, 243, 232, 62, 175, 106,
    234, 190, 4, 33, 3, 231, 119, 4, 90, 125, 246, 84, 13, 54, 22, 216, 252, 145, 174, 245, 72,
    143, 6, 214, 142, 169, 46, 90, 172, 133, 104, 158, 65, 198, 4, 30, 160, 6, 33, 2, 211, 122, 58,
    31, 71, 2, 45, 67, 29, 120, 151, 222, 10, 201, 133, 51, 19, 121, 126, 166, 229, 158, 89, 93,
    135, 55, 118, 28, 228, 32, 0, 159, 8, 33, 2, 113, 136, 197, 1, 1, 148, 130, 150, 88, 246, 16,
    246, 173, 185, 162, 156, 2, 114, 139, 207, 179, 58, 164, 123, 1, 18, 141, 118, 222, 66, 231,
    96, 10, 162, 161, 0, 125, 2, 0, 0, 0, 1, 226, 223, 127, 106, 59, 88, 192, 252, 24, 23, 239,
    254, 29, 27, 49, 165, 198, 37, 11, 20, 13, 186, 166, 171, 167, 86, 123, 223, 254, 110, 48, 67,
    0, 0, 0, 0, 0, 35, 109, 154, 128, 2, 74, 29, 0, 0, 0, 0, 0, 0, 34, 0, 32, 131, 194, 90, 26, 85,
    49, 65, 217, 161, 229, 61, 70, 238, 75, 71, 104, 199, 50, 9, 138, 229, 54, 86, 11, 111, 218,
    185, 204, 87, 142, 216, 222, 28, 138, 1, 0, 0, 0, 0, 0, 22, 0, 20, 51, 158, 131, 246, 71, 104,
    102, 154, 80, 177, 165, 227, 253, 31, 103, 124, 143, 230, 217, 25, 13, 90, 244, 32, 2, 32, 240,
    36, 143, 171, 249, 153, 75, 141, 246, 252, 141, 209, 37, 176, 178, 5, 117, 242, 143, 140, 232,
    13, 166, 18, 6, 216, 227, 16, 114, 252, 62, 192, 12, 0, 15, 2, 16, 0, 2, 64, 100, 121, 216,
    130, 76, 139, 132, 137, 143, 51, 254, 166, 124, 124, 92, 99, 76, 194, 115, 254, 105, 139, 126,
    84, 8, 150, 81, 40, 112, 192, 235, 222, 81, 51, 197, 211, 166, 29, 236, 68, 111, 13, 4, 189,
    89, 161, 221, 139, 119, 233, 155, 245, 105, 88, 213, 141, 173, 99, 88, 166, 202, 37, 119, 4, 4,
    1, 1, 6, 0, 0, 253, 1, 154, 0, 176, 175, 0, 33, 2, 187, 2, 3, 79, 186, 192, 60, 67, 252, 172,
    82, 26, 102, 22, 113, 168, 132, 178, 196, 196, 123, 110, 147, 195, 27, 156, 18, 200, 244, 151,
    205, 254, 2, 33, 3, 210, 234, 68, 18, 21, 39, 158, 188, 30, 48, 110, 109, 138, 227, 110, 155,
    105, 174, 70, 253, 241, 91, 239, 159, 253, 83, 253, 26, 206, 232, 60, 39, 4, 33, 2, 244, 19,
    142, 111, 20, 44, 233, 125, 191, 160, 222, 234, 95, 70, 122, 5, 96, 41, 155, 121, 3, 213, 132,
    63, 131, 69, 15, 228, 130, 253, 114, 21, 6, 33, 2, 63, 234, 246, 244, 91, 189, 96, 58, 68, 236,
    168, 170, 63, 146, 247, 33, 150, 16, 148, 180, 104, 75, 188, 198, 143, 249, 6, 27, 73, 164, 78,
    202, 8, 33, 3, 76, 42, 89, 187, 90, 189, 240, 115, 251, 1, 44, 247, 198, 84, 118, 102, 173, 11,
    202, 151, 61, 122, 222, 253, 36, 37, 19, 183, 217, 8, 229, 173, 2, 2, 0, 144, 4, 1, 0, 6, 183,
    182, 0, 176, 175, 0, 33, 3, 131, 221, 176, 32, 165, 131, 251, 198, 154, 238, 179, 38, 122, 19,
    19, 211, 203, 12, 0, 199, 161, 186, 226, 233, 31, 45, 196, 174, 114, 119, 95, 177, 2, 33, 2,
    45, 83, 223, 96, 212, 69, 226, 199, 245, 94, 185, 86, 181, 149, 106, 88, 201, 145, 45, 215,
    114, 176, 188, 203, 21, 191, 3, 104, 100, 163, 204, 122, 4, 33, 3, 183, 46, 17, 0, 22, 89, 15,
    4, 245, 60, 239, 75, 44, 83, 246, 243, 29, 25, 163, 57, 190, 142, 154, 163, 166, 210, 146, 62,
    254, 20, 139, 230, 6, 33, 3, 33, 88, 253, 177, 233, 158, 226, 126, 248, 230, 147, 151, 18, 250,
    180, 242, 239, 106, 199, 121, 76, 165, 236, 84, 151, 218, 162, 193, 73, 216, 163, 235, 8, 33,
    2, 102, 194, 245, 56, 190, 148, 142, 23, 14, 18, 212, 128, 124, 41, 30, 99, 228, 244, 77, 167,
    111, 159, 210, 77, 134, 43, 250, 151, 154, 217, 163, 226, 2, 2, 0, 6, 8, 34, 226, 223, 127,
    106, 59, 88, 192, 252, 24, 23, 239, 254, 29, 27, 49, 165, 198, 37, 11, 20, 13, 186, 166, 171,
    167, 86, 123, 223, 254, 110, 48, 67, 0, 0, 11, 2, 16, 0, 0, 0, 2, 139, 1, 1, 135, 211, 13, 56,
    138, 53, 76, 177, 22, 89, 33, 173, 232, 104, 58, 46, 9, 214, 248, 141, 2, 74, 73, 175, 151,
    192, 64, 152, 26, 208, 88, 28, 68, 148, 225, 145, 60, 246, 85, 136, 233, 107, 89, 21, 33, 187,
    115, 203, 12, 155, 5, 18, 98, 20, 216, 147, 53, 226, 212, 241, 106, 200, 172, 245, 84, 75, 149,
    55, 54, 37, 197, 178, 195, 160, 223, 29, 37, 12, 142, 168, 202, 82, 118, 153, 95, 154, 132, 46,
    239, 233, 98, 178, 156, 104, 110, 178, 4, 73, 61, 133, 51, 69, 166, 249, 177, 47, 251, 109,
    231, 4, 111, 77, 48, 253, 113, 109, 128, 180, 136, 29, 3, 245, 150, 23, 165, 156, 30, 74, 184,
    6, 55, 180, 180, 179, 100, 37, 185, 14, 208, 210, 191, 137, 29, 30, 7, 12, 226, 111, 250, 114,
    70, 237, 180, 55, 24, 175, 130, 153, 26, 57, 69, 59, 171, 225, 158, 186, 169, 209, 50, 235,
    250, 170, 88, 118, 12, 37, 103, 189, 106, 253, 106, 113, 255, 235, 229, 216, 39, 40, 62, 199,
    224, 43, 253, 1, 158, 253, 1, 154, 0, 176, 175, 0, 33, 2, 187, 2, 3, 79, 186, 192, 60, 67, 252,
    172, 82, 26, 102, 22, 113, 168, 132, 178, 196, 196, 123, 110, 147, 195, 27, 156, 18, 200, 244,
    151, 205, 254, 2, 33, 3, 210, 234, 68, 18, 21, 39, 158, 188, 30, 48, 110, 109, 138, 227, 110,
    155, 105, 174, 70, 253, 241, 91, 239, 159, 253, 83, 253, 26, 206, 232, 60, 39, 4, 33, 2, 244,
    19, 142, 111, 20, 44, 233, 125, 191, 160, 222, 234, 95, 70, 122, 5, 96, 41, 155, 121, 3, 213,
    132, 63, 131, 69, 15, 228, 130, 253, 114, 21, 6, 33, 2, 63, 234, 246, 244, 91, 189, 96, 58, 68,
    236, 168, 170, 63, 146, 247, 33, 150, 16, 148, 180, 104, 75, 188, 198, 143, 249, 6, 27, 73,
    164, 78, 202, 8, 33, 3, 76, 42, 89, 187, 90, 189, 240, 115, 251, 1, 44, 247, 198, 84, 118, 102,
    173, 11, 202, 151, 61, 122, 222, 253, 36, 37, 19, 183, 217, 8, 229, 173, 2, 2, 0, 144, 4, 1, 0,
    6, 183, 182, 0, 176, 175, 0, 33, 3, 131, 221, 176, 32, 165, 131, 251, 198, 154, 238, 179, 38,
    122, 19, 19, 211, 203, 12, 0, 199, 161, 186, 226, 233, 31, 45, 196, 174, 114, 119, 95, 177, 2,
    33, 2, 45, 83, 223, 96, 212, 69, 226, 199, 245, 94, 185, 86, 181, 149, 106, 88, 201, 145, 45,
    215, 114, 176, 188, 203, 21, 191, 3, 104, 100, 163, 204, 122, 4, 33, 3, 183, 46, 17, 0, 22, 89,
    15, 4, 245, 60, 239, 75, 44, 83, 246, 243, 29, 25, 163, 57, 190, 142, 154, 163, 166, 210, 146,
    62, 254, 20, 139, 230, 6, 33, 3, 33, 88, 253, 177, 233, 158, 226, 126, 248, 230, 147, 151, 18,
    250, 180, 242, 239, 106, 199, 121, 76, 165, 236, 84, 151, 218, 162, 193, 73, 216, 163, 235, 8,
    33, 2, 102, 194, 245, 56, 190, 148, 142, 23, 14, 18, 212, 128, 124, 41, 30, 99, 228, 244, 77,
    167, 111, 159, 210, 77, 134, 43, 250, 151, 154, 217, 163, 226, 2, 2, 0, 6, 8, 34, 226, 223,
    127, 106, 59, 88, 192, 252, 24, 23, 239, 254, 29, 27, 49, 165, 198, 37, 11, 20, 13, 186, 166,
    171, 167, 86, 123, 223, 254, 110, 48, 67, 0, 0, 11, 2, 16, 0, 0, 0, 0, 0, 0, 1, 168, 42, 0, 0,
    0, 0, 153, 138, 15, 64, 0, 0, 0, 0, 101, 9, 69, 166, 8, 100, 42, 4, 222, 170, 7, 115, 149, 79,
    64, 161, 84, 83, 192, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 3, 0, 5, 0, 7, 1, 0, 9, 33, 3, 102, 171, 200, 235,
    77, 166, 30, 49, 168, 210, 196, 82, 13, 49, 202, 189, 245, 140, 197, 37, 15, 133, 86, 87, 57,
    127, 61, 214, 36, 147, 147, 138, 13, 0, 15, 2, 0, 0,
];
pub const MONITOR_VERSION_LOWER: [u8; 5714] = [
    1, 1, 0, 0, 0, 0, 0, 0, 0, 5, 154, 109, 35, 244, 90, 14, 0, 34, 81, 32, 65, 93, 220, 7, 194,
    50, 109, 153, 149, 239, 116, 229, 216, 194, 52, 104, 10, 212, 3, 72, 161, 38, 119, 196, 117,
    219, 30, 227, 74, 131, 60, 43, 1, 0, 22, 0, 20, 65, 10, 38, 42, 95, 246, 244, 88, 7, 193, 27,
    85, 33, 248, 164, 100, 116, 167, 81, 131, 0, 0, 0, 0, 0, 0, 153, 138, 15, 64, 0, 0, 0, 0, 101,
    9, 69, 166, 8, 100, 42, 4, 222, 170, 7, 115, 149, 79, 64, 161, 84, 83, 192, 134, 3, 210, 234,
    68, 18, 21, 39, 158, 188, 30, 48, 110, 109, 138, 227, 110, 155, 105, 174, 70, 253, 241, 91,
    239, 159, 253, 83, 253, 26, 206, 232, 60, 39, 226, 223, 127, 106, 59, 88, 192, 252, 24, 23,
    239, 254, 29, 27, 49, 165, 198, 37, 11, 20, 13, 186, 166, 171, 167, 86, 123, 223, 254, 110, 48,
    67, 0, 0, 0, 34, 0, 32, 208, 244, 191, 20, 197, 149, 7, 106, 201, 46, 119, 19, 187, 96, 162,
    41, 247, 125, 88, 42, 229, 34, 6, 202, 244, 7, 46, 78, 14, 61, 91, 97, 33, 93, 30, 191, 211,
    132, 13, 223, 28, 30, 155, 213, 28, 146, 28, 240, 23, 133, 82, 103, 92, 34, 212, 33, 88, 197,
    9, 104, 15, 105, 87, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 33, 3, 33, 88, 253, 177, 233,
    158, 226, 126, 248, 230, 147, 151, 18, 250, 180, 242, 239, 106, 199, 121, 76, 165, 236, 84,
    151, 218, 162, 193, 73, 216, 163, 235, 2, 33, 2, 102, 194, 245, 56, 190, 148, 142, 23, 14, 18,
    212, 128, 124, 41, 30, 99, 228, 244, 77, 167, 111, 159, 210, 77, 134, 43, 250, 151, 154, 217,
    163, 226, 4, 2, 0, 144, 0, 71, 82, 33, 2, 187, 2, 3, 79, 186, 192, 60, 67, 252, 172, 82, 26,
    102, 22, 113, 168, 132, 178, 196, 196, 123, 110, 147, 195, 27, 156, 18, 200, 244, 151, 205,
    254, 33, 3, 131, 221, 176, 32, 165, 131, 251, 198, 154, 238, 179, 38, 122, 19, 19, 211, 203,
    12, 0, 199, 161, 186, 226, 233, 31, 45, 196, 174, 114, 119, 95, 177, 82, 174, 0, 0, 0, 0, 0, 1,
    168, 42, 255, 255, 255, 255, 255, 254, 2, 119, 114, 90, 44, 154, 8, 139, 43, 248, 20, 53, 160,
    39, 155, 42, 205, 51, 89, 215, 173, 239, 34, 207, 251, 99, 149, 117, 197, 34, 191, 28, 219, 2,
    247, 74, 82, 189, 189, 227, 98, 56, 93, 114, 253, 246, 1, 34, 4, 87, 75, 195, 80, 35, 197, 243,
    129, 135, 119, 209, 52, 48, 35, 12, 233, 218, 0, 6, 81, 230, 208, 171, 171, 61, 180, 114, 98,
    13, 153, 144, 117, 231, 52, 180, 150, 77, 227, 78, 247, 176, 113, 68, 195, 220, 221, 87, 178,
    84, 146, 24, 0, 0, 255, 255, 255, 255, 255, 255, 48, 252, 253, 73, 72, 56, 121, 88, 202, 181,
    51, 186, 28, 206, 74, 120, 173, 68, 51, 31, 238, 48, 11, 84, 231, 180, 255, 150, 232, 148, 83,
    26, 0, 0, 255, 255, 255, 255, 255, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 96, 10, 179, 100, 168, 83, 45, 155, 65, 255, 164,
    116, 148, 201, 149, 185, 13, 76, 254, 163, 131, 243, 222, 206, 17, 175, 172, 185, 120, 76, 110,
    174, 0, 0, 0, 0, 0, 0, 0, 0, 93, 30, 191, 211, 132, 13, 223, 28, 30, 155, 213, 28, 146, 28,
    240, 23, 133, 82, 103, 92, 34, 212, 33, 88, 197, 9, 104, 15, 105, 87, 104, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 45, 25, 99, 36, 213, 104, 22, 164, 98, 20, 155, 99, 230, 147, 53, 36, 1, 203, 131, 128,
    171, 157, 191, 180, 109, 116, 39, 25, 150, 155, 79, 163, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,
    0, 114, 112, 224, 0, 6, 119, 81, 98, 164, 145, 193, 45, 31, 120, 243, 144, 168, 100, 49, 84, 4,
    224, 73, 72, 92, 90, 213, 166, 100, 246, 66, 103, 26, 243, 246, 153, 133, 173, 59, 5, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 98, 164, 145, 193, 45, 31, 120, 243, 144,
    168, 100, 49, 84, 4, 224, 73, 72, 92, 90, 213, 166, 100, 246, 66, 103, 26, 243, 246, 153, 133,
    173, 59, 255, 255, 255, 255, 255, 254, 1, 253, 1, 97, 0, 32, 89, 217, 56, 33, 63, 107, 197, 44,
    64, 80, 134, 90, 183, 137, 23, 25, 45, 100, 192, 240, 112, 73, 8, 50, 77, 16, 167, 36, 10, 142,
    187, 118, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 2, 33, 2, 15, 137, 104, 72, 210, 98, 222, 187, 143,
    161, 238, 208, 85, 191, 192, 166, 99, 127, 139, 155, 243, 39, 242, 172, 117, 196, 153, 176, 86,
    203, 0, 47, 4, 33, 3, 145, 83, 28, 120, 41, 12, 163, 45, 249, 88, 105, 185, 130, 77, 228, 169,
    21, 241, 114, 192, 231, 75, 138, 21, 193, 194, 89, 100, 165, 86, 190, 94, 6, 33, 2, 97, 95, 89,
    103, 186, 249, 85, 156, 250, 70, 98, 33, 19, 131, 201, 65, 216, 117, 134, 107, 249, 69, 65, 20,
    86, 97, 151, 141, 126, 165, 18, 82, 8, 33, 2, 85, 204, 109, 230, 216, 30, 33, 108, 62, 43, 13,
    255, 136, 174, 50, 235, 129, 103, 240, 176, 16, 46, 218, 47, 162, 71, 33, 26, 190, 13, 53, 239,
    10, 33, 3, 158, 20, 175, 174, 221, 138, 182, 249, 11, 94, 240, 251, 232, 201, 73, 25, 247, 123,
    108, 198, 153, 89, 84, 209, 127, 114, 55, 144, 120, 149, 13, 222, 12, 4, 0, 0, 1, 12, 14, 126,
    59, 0, 1, 0, 2, 8, 0, 0, 0, 0, 0, 114, 112, 224, 4, 4, 0, 6, 119, 81, 6, 32, 98, 164, 145, 193,
    45, 31, 120, 243, 144, 168, 100, 49, 84, 4, 224, 73, 72, 92, 90, 213, 166, 100, 246, 66, 103,
    26, 243, 246, 153, 133, 173, 59, 8, 4, 0, 0, 0, 0, 65, 73, 28, 136, 174, 80, 53, 242, 220, 98,
    76, 43, 50, 6, 2, 5, 205, 185, 103, 13, 169, 25, 93, 148, 104, 201, 117, 18, 196, 1, 65, 178,
    246, 38, 196, 230, 182, 133, 110, 195, 98, 252, 95, 151, 252, 54, 201, 159, 219, 167, 215, 133,
    122, 181, 50, 26, 125, 229, 215, 232, 138, 118, 243, 204, 167, 0, 227, 0, 32, 17, 181, 23, 102,
    210, 241, 125, 227, 46, 171, 126, 131, 218, 214, 253, 66, 22, 116, 205, 142, 85, 228, 175, 72,
    131, 154, 83, 153, 47, 184, 157, 94, 1, 8, 0, 0, 0, 0, 0, 0, 29, 76, 2, 33, 2, 175, 165, 163,
    174, 79, 249, 13, 185, 133, 20, 147, 249, 194, 94, 7, 71, 200, 101, 121, 72, 2, 16, 192, 254,
    121, 87, 124, 156, 129, 38, 193, 125, 4, 33, 2, 28, 121, 32, 158, 56, 3, 101, 176, 228, 108,
    52, 175, 90, 109, 116, 106, 158, 4, 106, 84, 11, 85, 175, 203, 177, 244, 74, 236, 242, 188,
    240, 230, 6, 33, 2, 60, 227, 70, 247, 179, 167, 49, 36, 118, 149, 141, 81, 75, 108, 203, 16,
    246, 243, 177, 242, 116, 25, 218, 67, 219, 185, 182, 104, 73, 24, 120, 9, 8, 33, 2, 224, 26,
    168, 176, 116, 253, 116, 195, 181, 240, 156, 83, 203, 56, 217, 21, 4, 252, 206, 47, 228, 126,
    106, 217, 229, 94, 15, 205, 229, 100, 206, 29, 10, 33, 3, 177, 222, 79, 53, 98, 224, 242, 44,
    101, 16, 136, 157, 31, 227, 224, 74, 42, 163, 135, 176, 53, 119, 107, 139, 182, 243, 177, 220,
    154, 15, 135, 249, 12, 4, 0, 0, 1, 12, 14, 0, 255, 255, 255, 255, 255, 253, 255, 255, 255, 255,
    255, 253, 0, 0, 0, 0, 0, 0, 0, 1, 201, 23, 62, 65, 84, 63, 137, 186, 185, 147, 134, 140, 99,
    135, 108, 219, 50, 127, 85, 78, 39, 244, 54, 22, 164, 110, 100, 107, 224, 32, 19, 197, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 179, 23, 201, 41, 253, 56, 169, 186, 130, 87, 217,
    208, 223, 235, 162, 73, 126, 102, 80, 241, 62, 97, 181, 44, 135, 110, 72, 6, 1, 0, 0, 0, 6,
    119, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 226, 223, 127, 106, 59, 88, 192, 252,
    24, 23, 239, 254, 29, 27, 49, 165, 198, 37, 11, 20, 13, 186, 166, 171, 167, 86, 123, 223, 254,
    110, 48, 67, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 34, 0, 32, 208, 244, 191, 20, 197, 149, 7,
    106, 201, 46, 119, 19, 187, 96, 162, 41, 247, 125, 88, 42, 229, 34, 6, 202, 244, 7, 46, 78, 14,
    61, 91, 97, 1, 1, 0, 34, 81, 32, 65, 93, 220, 7, 194, 50, 109, 153, 149, 239, 116, 229, 216,
    194, 52, 104, 10, 212, 3, 72, 161, 38, 119, 196, 117, 219, 30, 227, 74, 131, 60, 43, 253, 1,
    206, 0, 253, 1, 131, 253, 1, 128, 0, 8, 0, 0, 255, 255, 255, 255, 255, 253, 2, 8, 0, 0, 0, 0,
    0, 0, 29, 76, 4, 8, 0, 0, 0, 0, 0, 1, 138, 28, 6, 4, 0, 0, 1, 12, 8, 176, 175, 0, 33, 3, 177,
    222, 79, 53, 98, 224, 242, 44, 101, 16, 136, 157, 31, 227, 224, 74, 42, 163, 135, 176, 53, 119,
    107, 139, 182, 243, 177, 220, 154, 15, 135, 249, 2, 33, 2, 175, 165, 163, 174, 79, 249, 13,
    185, 133, 20, 147, 249, 194, 94, 7, 71, 200, 101, 121, 72, 2, 16, 192, 254, 121, 87, 124, 156,
    129, 38, 193, 125, 4, 33, 2, 28, 121, 32, 158, 56, 3, 101, 176, 228, 108, 52, 175, 90, 109,
    116, 106, 158, 4, 106, 84, 11, 85, 175, 203, 177, 244, 74, 236, 242, 188, 240, 230, 6, 33, 2,
    60, 227, 70, 247, 179, 167, 49, 36, 118, 149, 141, 81, 75, 108, 203, 16, 246, 243, 177, 242,
    116, 25, 218, 67, 219, 185, 182, 104, 73, 24, 120, 9, 8, 33, 2, 224, 26, 168, 176, 116, 253,
    116, 195, 181, 240, 156, 83, 203, 56, 217, 21, 4, 252, 206, 47, 228, 126, 106, 217, 229, 94,
    15, 205, 229, 100, 206, 29, 10, 162, 161, 0, 125, 2, 0, 0, 0, 1, 226, 223, 127, 106, 59, 88,
    192, 252, 24, 23, 239, 254, 29, 27, 49, 165, 198, 37, 11, 20, 13, 186, 166, 171, 167, 86, 123,
    223, 254, 110, 48, 67, 0, 0, 0, 0, 0, 35, 109, 154, 128, 2, 76, 29, 0, 0, 0, 0, 0, 0, 34, 0,
    32, 51, 225, 205, 29, 34, 103, 27, 41, 45, 87, 228, 143, 80, 119, 195, 209, 26, 8, 150, 85, 30,
    243, 164, 98, 185, 70, 152, 237, 233, 132, 251, 74, 28, 138, 1, 0, 0, 0, 0, 0, 22, 0, 20, 51,
    158, 131, 246, 71, 104, 102, 154, 80, 177, 165, 227, 253, 31, 103, 124, 143, 230, 217, 25, 12,
    90, 244, 32, 2, 32, 17, 181, 23, 102, 210, 241, 125, 227, 46, 171, 126, 131, 218, 214, 253, 66,
    22, 116, 205, 142, 85, 228, 175, 72, 131, 154, 83, 153, 47, 184, 157, 94, 12, 0, 15, 2, 16, 0,
    2, 64, 29, 248, 93, 57, 251, 90, 191, 219, 227, 162, 168, 98, 11, 252, 50, 158, 160, 138, 223,
    167, 135, 212, 146, 192, 86, 10, 159, 50, 39, 201, 235, 229, 102, 39, 141, 18, 118, 169, 213,
    154, 39, 245, 23, 239, 34, 54, 227, 103, 112, 56, 5, 195, 3, 4, 205, 24, 119, 220, 201, 156,
    209, 86, 165, 73, 4, 1, 1, 6, 0, 0, 253, 2, 78, 253, 2, 74, 0, 253, 1, 191, 253, 1, 188, 0, 8,
    0, 0, 255, 255, 255, 255, 255, 254, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0, 0, 0, 0, 0, 1, 137,
    238, 6, 4, 0, 0, 1, 12, 8, 176, 175, 0, 33, 3, 158, 20, 175, 174, 221, 138, 182, 249, 11, 94,
    240, 251, 232, 201, 73, 25, 247, 123, 108, 198, 153, 89, 84, 209, 127, 114, 55, 144, 120, 149,
    13, 222, 2, 33, 2, 15, 137, 104, 72, 210, 98, 222, 187, 143, 161, 238, 208, 85, 191, 192, 166,
    99, 127, 139, 155, 243, 39, 242, 172, 117, 196, 153, 176, 86, 203, 0, 47, 4, 33, 3, 145, 83,
    28, 120, 41, 12, 163, 45, 249, 88, 105, 185, 130, 77, 228, 169, 21, 241, 114, 192, 231, 75,
    138, 21, 193, 194, 89, 100, 165, 86, 190, 94, 6, 33, 2, 97, 95, 89, 103, 186, 249, 85, 156,
    250, 70, 98, 33, 19, 131, 201, 65, 216, 117, 134, 107, 249, 69, 65, 20, 86, 97, 151, 141, 126,
    165, 18, 82, 8, 33, 2, 85, 204, 109, 230, 216, 30, 33, 108, 62, 43, 13, 255, 136, 174, 50, 235,
    129, 103, 240, 176, 16, 46, 218, 47, 162, 71, 33, 26, 190, 13, 53, 239, 10, 162, 161, 0, 125,
    2, 0, 0, 0, 1, 226, 223, 127, 106, 59, 88, 192, 252, 24, 23, 239, 254, 29, 27, 49, 165, 198,
    37, 11, 20, 13, 186, 166, 171, 167, 86, 123, 223, 254, 110, 48, 67, 0, 0, 0, 0, 0, 35, 109,
    154, 128, 2, 76, 29, 0, 0, 0, 0, 0, 0, 34, 0, 32, 208, 147, 170, 59, 12, 215, 105, 107, 155,
    107, 67, 8, 167, 131, 245, 95, 195, 242, 190, 170, 75, 42, 164, 200, 33, 212, 126, 24, 240,
    170, 202, 83, 238, 137, 1, 0, 0, 0, 0, 0, 22, 0, 20, 51, 158, 131, 246, 71, 104, 102, 154, 80,
    177, 165, 227, 253, 31, 103, 124, 143, 230, 217, 25, 15, 90, 244, 32, 2, 32, 89, 217, 56, 33,
    63, 107, 197, 44, 64, 80, 134, 90, 183, 137, 23, 25, 45, 100, 192, 240, 112, 73, 8, 50, 77, 16,
    167, 36, 10, 142, 187, 118, 12, 60, 59, 0, 1, 0, 2, 8, 0, 0, 0, 0, 0, 114, 112, 224, 4, 4, 0,
    6, 119, 81, 6, 32, 98, 164, 145, 193, 45, 31, 120, 243, 144, 168, 100, 49, 84, 4, 224, 73, 72,
    92, 90, 213, 166, 100, 246, 66, 103, 26, 243, 246, 153, 133, 173, 59, 8, 4, 0, 0, 0, 0, 15, 2,
    16, 0, 2, 64, 80, 191, 58, 169, 212, 71, 51, 95, 72, 143, 113, 69, 77, 137, 229, 162, 1, 241,
    198, 96, 5, 234, 242, 250, 7, 189, 12, 196, 211, 195, 70, 104, 68, 157, 50, 134, 195, 251, 238,
    202, 143, 151, 190, 174, 193, 235, 242, 188, 118, 254, 233, 206, 113, 37, 31, 51, 245, 228,
    176, 206, 43, 228, 92, 83, 4, 1, 1, 6, 64, 73, 28, 136, 174, 80, 53, 242, 220, 98, 76, 43, 50,
    6, 2, 5, 205, 185, 103, 13, 169, 25, 93, 148, 104, 201, 117, 18, 196, 1, 65, 178, 246, 38, 196,
    230, 182, 133, 110, 195, 98, 252, 95, 151, 252, 54, 201, 159, 219, 167, 215, 133, 122, 181, 50,
    26, 125, 229, 215, 232, 138, 118, 243, 204, 167, 0, 253, 1, 154, 0, 176, 175, 0, 33, 2, 187, 2,
    3, 79, 186, 192, 60, 67, 252, 172, 82, 26, 102, 22, 113, 168, 132, 178, 196, 196, 123, 110,
    147, 195, 27, 156, 18, 200, 244, 151, 205, 254, 2, 33, 3, 210, 234, 68, 18, 21, 39, 158, 188,
    30, 48, 110, 109, 138, 227, 110, 155, 105, 174, 70, 253, 241, 91, 239, 159, 253, 83, 253, 26,
    206, 232, 60, 39, 4, 33, 2, 244, 19, 142, 111, 20, 44, 233, 125, 191, 160, 222, 234, 95, 70,
    122, 5, 96, 41, 155, 121, 3, 213, 132, 63, 131, 69, 15, 228, 130, 253, 114, 21, 6, 33, 2, 63,
    234, 246, 244, 91, 189, 96, 58, 68, 236, 168, 170, 63, 146, 247, 33, 150, 16, 148, 180, 104,
    75, 188, 198, 143, 249, 6, 27, 73, 164, 78, 202, 8, 33, 3, 76, 42, 89, 187, 90, 189, 240, 115,
    251, 1, 44, 247, 198, 84, 118, 102, 173, 11, 202, 151, 61, 122, 222, 253, 36, 37, 19, 183, 217,
    8, 229, 173, 2, 2, 0, 144, 4, 1, 0, 6, 183, 182, 0, 176, 175, 0, 33, 3, 131, 221, 176, 32, 165,
    131, 251, 198, 154, 238, 179, 38, 122, 19, 19, 211, 203, 12, 0, 199, 161, 186, 226, 233, 31,
    45, 196, 174, 114, 119, 95, 177, 2, 33, 2, 45, 83, 223, 96, 212, 69, 226, 199, 245, 94, 185,
    86, 181, 149, 106, 88, 201, 145, 45, 215, 114, 176, 188, 203, 21, 191, 3, 104, 100, 163, 204,
    122, 4, 33, 3, 183, 46, 17, 0, 22, 89, 15, 4, 245, 60, 239, 75, 44, 83, 246, 243, 29, 25, 163,
    57, 190, 142, 154, 163, 166, 210, 146, 62, 254, 20, 139, 230, 6, 33, 3, 33, 88, 253, 177, 233,
    158, 226, 126, 248, 230, 147, 151, 18, 250, 180, 242, 239, 106, 199, 121, 76, 165, 236, 84,
    151, 218, 162, 193, 73, 216, 163, 235, 8, 33, 2, 102, 194, 245, 56, 190, 148, 142, 23, 14, 18,
    212, 128, 124, 41, 30, 99, 228, 244, 77, 167, 111, 159, 210, 77, 134, 43, 250, 151, 154, 217,
    163, 226, 2, 2, 0, 6, 8, 34, 226, 223, 127, 106, 59, 88, 192, 252, 24, 23, 239, 254, 29, 27,
    49, 165, 198, 37, 11, 20, 13, 186, 166, 171, 167, 86, 123, 223, 254, 110, 48, 67, 0, 0, 11, 2,
    16, 0, 0, 0, 2, 139, 1, 1, 135, 211, 13, 56, 138, 53, 76, 177, 22, 89, 33, 173, 232, 104, 58,
    46, 9, 214, 248, 141, 2, 74, 73, 175, 151, 192, 64, 152, 26, 208, 88, 28, 68, 148, 225, 145,
    60, 246, 85, 136, 233, 107, 89, 21, 33, 187, 115, 203, 12, 155, 5, 18, 98, 20, 216, 147, 53,
    226, 212, 241, 106, 200, 172, 245, 84, 75, 149, 55, 54, 37, 197, 178, 195, 160, 223, 29, 37,
    12, 142, 168, 202, 82, 118, 153, 95, 154, 132, 46, 239, 233, 98, 178, 156, 104, 110, 178, 4,
    73, 61, 133, 51, 69, 166, 249, 177, 47, 251, 109, 231, 4, 111, 77, 48, 253, 113, 109, 128, 180,
    136, 29, 3, 245, 150, 23, 165, 156, 30, 74, 184, 6, 55, 180, 180, 179, 100, 37, 185, 14, 208,
    210, 191, 137, 29, 30, 7, 12, 226, 111, 250, 114, 70, 237, 180, 55, 24, 175, 130, 153, 26, 57,
    69, 59, 171, 225, 158, 186, 169, 209, 50, 235, 250, 170, 88, 118, 12, 37, 103, 189, 106, 253,
    106, 113, 255, 235, 229, 216, 39, 40, 62, 199, 224, 43, 253, 1, 158, 253, 1, 154, 0, 176, 175,
    0, 33, 2, 187, 2, 3, 79, 186, 192, 60, 67, 252, 172, 82, 26, 102, 22, 113, 168, 132, 178, 196,
    196, 123, 110, 147, 195, 27, 156, 18, 200, 244, 151, 205, 254, 2, 33, 3, 210, 234, 68, 18, 21,
    39, 158, 188, 30, 48, 110, 109, 138, 227, 110, 155, 105, 174, 70, 253, 241, 91, 239, 159, 253,
    83, 253, 26, 206, 232, 60, 39, 4, 33, 2, 244, 19, 142, 111, 20, 44, 233, 125, 191, 160, 222,
    234, 95, 70, 122, 5, 96, 41, 155, 121, 3, 213, 132, 63, 131, 69, 15, 228, 130, 253, 114, 21, 6,
    33, 2, 63, 234, 246, 244, 91, 189, 96, 58, 68, 236, 168, 170, 63, 146, 247, 33, 150, 16, 148,
    180, 104, 75, 188, 198, 143, 249, 6, 27, 73, 164, 78, 202, 8, 33, 3, 76, 42, 89, 187, 90, 189,
    240, 115, 251, 1, 44, 247, 198, 84, 118, 102, 173, 11, 202, 151, 61, 122, 222, 253, 36, 37, 19,
    183, 217, 8, 229, 173, 2, 2, 0, 144, 4, 1, 0, 6, 183, 182, 0, 176, 175, 0, 33, 3, 131, 221,
    176, 32, 165, 131, 251, 198, 154, 238, 179, 38, 122, 19, 19, 211, 203, 12, 0, 199, 161, 186,
    226, 233, 31, 45, 196, 174, 114, 119, 95, 177, 2, 33, 2, 45, 83, 223, 96, 212, 69, 226, 199,
    245, 94, 185, 86, 181, 149, 106, 88, 201, 145, 45, 215, 114, 176, 188, 203, 21, 191, 3, 104,
    100, 163, 204, 122, 4, 33, 3, 183, 46, 17, 0, 22, 89, 15, 4, 245, 60, 239, 75, 44, 83, 246,
    243, 29, 25, 163, 57, 190, 142, 154, 163, 166, 210, 146, 62, 254, 20, 139, 230, 6, 33, 3, 33,
    88, 253, 177, 233, 158, 226, 126, 248, 230, 147, 151, 18, 250, 180, 242, 239, 106, 199, 121,
    76, 165, 236, 84, 151, 218, 162, 193, 73, 216, 163, 235, 8, 33, 2, 102, 194, 245, 56, 190, 148,
    142, 23, 14, 18, 212, 128, 124, 41, 30, 99, 228, 244, 77, 167, 111, 159, 210, 77, 134, 43, 250,
    151, 154, 217, 163, 226, 2, 2, 0, 6, 8, 34, 226, 223, 127, 106, 59, 88, 192, 252, 24, 23, 239,
    254, 29, 27, 49, 165, 198, 37, 11, 20, 13, 186, 166, 171, 167, 86, 123, 223, 254, 110, 48, 67,
    0, 0, 11, 2, 16, 0, 0, 0, 0, 0, 0, 1, 168, 42, 0, 0, 0, 0, 153, 138, 15, 64, 0, 0, 0, 0, 101,
    9, 69, 166, 8, 100, 42, 4, 222, 170, 7, 115, 149, 79, 64, 161, 84, 83, 192, 134, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    48, 3, 0, 5, 0, 7, 1, 0, 9, 33, 3, 102, 171, 200, 235, 77, 166, 30, 49, 168, 210, 196, 82, 13,
    49, 202, 189, 245, 140, 197, 37, 15, 133, 86, 87, 57, 127, 61, 214, 36, 147, 147, 138, 13, 0,
    15, 2, 0, 0,
];