Newer
Older
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
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "2c1f46cb",
"metadata": {},
"outputs": [],
"source": [
"from pseudowalls import *\n",
"%display latex"
]
},
{
"cell_type": "markdown",
"id": "48112244",
"metadata": {},
"source": [
"# Initialize Cherns"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "7a52d103",
"metadata": {},
"outputs": [],
"source": [
"var(\"R C D r c d A B\", domain=\"real\")\n",
"P = A, B"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "cfde4b23",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html>\\(\\displaystyle \\text{Chern Character:} \\\\ \\begin{array}{l} \\mathrm{ch}_{0} = R \\\\ \\mathrm{ch}_{1} = C \\ell^{1} \\\\ \\mathrm{ch}_{2} = D \\ell^{2} \\end{array}\\)</html>"
],
"text/latex": [
"$\\displaystyle \\text{Chern Character:} \\\\ \\begin{array}{l} \\mathrm{ch}_{0} = R \\\\ \\mathrm{ch}_{1} = C \\ell^{1} \\\\ \\mathrm{ch}_{2} = D \\ell^{2} \\end{array}$"
],
"text/plain": [
"<pseudowalls.chern_character.Chern_Char object at 0x7f73433b6ad0>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"v = Chern_Char(R,C,D)\n",
"v"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "f015f4ab",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html>\\(\\displaystyle \\text{ Twisted Chern Character for $\\beta={ B }$ } \\\\ \\begin{array}{l} \\mathrm{ch}_{0} = R \\\\ \\mathrm{ch}_{1} = {\\mathrm{ch}_1^B(v)} \\ell^{1} \\\\ \\mathrm{ch}_{2} = {\\mathrm{ch}_2^B(v)} \\ell^{2} \\end{array}\\)</html>"
],
"text/latex": [
"$\\displaystyle \\text{ Twisted Chern Character for $\\beta={ B }$ } \\\\ \\begin{array}{l} \\mathrm{ch}_{0} = R \\\\ \\mathrm{ch}_{1} = {\\mathrm{ch}_1^B(v)} \\ell^{1} \\\\ \\mathrm{ch}_{2} = {\\mathrm{ch}_2^B(v)} \\ell^{2} \\end{array}$"
],
"text/plain": [
"<pseudowalls.chern_character.Twisted_Chern_Char object at 0x7f733b798820>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"twisted_v = Twisted_Chern_Char(B,\n",
" R,\n",
" var(\"twisted_v1\", latex_name = r\"\\mathrm{ch}_1^B(v)\", domain=\"real\"),\n",
" var(\"twisted_v2\", latex_name = r\"\\mathrm{ch}_2^B(v)\", domain=\"real\"),\n",
")\n",
"twisted_v"
]
},
"id": "6fced6d0",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html>\\(\\displaystyle \\text{Chern Character:} \\\\ \\begin{array}{l} \\mathrm{ch}_{0} = r \\\\ \\mathrm{ch}_{1} = c \\ell^{1} \\\\ \\mathrm{ch}_{2} = d \\ell^{2} \\end{array}\\)</html>"
],
"text/latex": [
"$\\displaystyle \\text{Chern Character:} \\\\ \\begin{array}{l} \\mathrm{ch}_{0} = r \\\\ \\mathrm{ch}_{1} = c \\ell^{1} \\\\ \\mathrm{ch}_{2} = d \\ell^{2} \\end{array}$"
],
"text/plain": [
"<pseudowalls.chern_character.Chern_Char object at 0x7f733b7987f0>"
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"u = Chern_Char(r,c,d)\n",
"u"
]
},
"id": "711e4205",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html>\\(\\displaystyle \\text{ Twisted Chern Character for $\\beta={ B }$ } \\\\ \\begin{array}{l} \\mathrm{ch}_{0} = r \\\\ \\mathrm{ch}_{1} = {\\mathrm{ch}_1^B(u)} \\ell^{1} \\\\ \\mathrm{ch}_{2} = {\\mathrm{ch}_2^B(u)} \\ell^{2} \\end{array}\\)</html>"
],
"text/latex": [
"$\\displaystyle \\text{ Twisted Chern Character for $\\beta={ B }$ } \\\\ \\begin{array}{l} \\mathrm{ch}_{0} = r \\\\ \\mathrm{ch}_{1} = {\\mathrm{ch}_1^B(u)} \\ell^{1} \\\\ \\mathrm{ch}_{2} = {\\mathrm{ch}_2^B(u)} \\ell^{2} \\end{array}$"
],
"text/plain": [
"<pseudowalls.chern_character.Twisted_Chern_Char object at 0x7f733b799f30>"
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
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"twisted_u = Twisted_Chern_Char(B,\n",
" r,\n",
" var(\"twisted_u1\", latex_name = r\"\\mathrm{ch}_1^B(u)\", domain=\"real\"),\n",
" var(\"twisted_u2\", latex_name = r\"\\mathrm{ch}_2^B(u)\", domain=\"real\"),\n",
")\n",
"twisted_u"
]
},
{
"cell_type": "markdown",
"id": "5f3e6e12",
"metadata": {},
"source": [
"# Numerical Conditions"
]
},
{
"cell_type": "markdown",
"id": "1206d912",
"metadata": {},
"source": [
"Condition of $P = (A,B)$ being on $\\Theta_v$ (i.e. $ch_2^{A,B}(v) = 0$) expressed in terms of twisted Chern character for $v$ at $\\beta=B$:"
]
},
{
"cell_type": "code",
"id": "17c390cd",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html>\\(\\displaystyle A^{2} = \\frac{2 \\, {\\mathrm{ch}_2^B(v)}}{R}\\)</html>"
],
"text/latex": [
"$\\displaystyle A^{2} = \\frac{2 \\, {\\mathrm{ch}_2^B(v)}}{R}$"
],
"text/plain": [
"A^2 == 2*twisted_v2/R"
]
},
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"A2_subs = solve(\n",
" stability.Tilt(*P).degree(twisted_v) == 0,\n",
" A^2)[0]\n",
"\n",
"A2_subs"
]
},
{
"cell_type": "markdown",
"id": "11b9c67b",
"metadata": {},
"source": [
"## Condition: $ch_2^{P}(u) > 0$"
]
},
{
"cell_type": "code",
"id": "47b34ed7",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html>\\(\\displaystyle -\\frac{1}{2} \\, A^{2} r + {\\mathrm{ch}_2^B(u)} > 0\\)</html>"
],
"text/latex": [
"$\\displaystyle -\\frac{1}{2} \\, A^{2} r + {\\mathrm{ch}_2^B(u)} > 0$"
],
"text/plain": [
"-1/2*A^2*r + twisted_u2 > 0"
]
},
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"stability.Tilt(*P).degree(twisted_u) > 0"
]
},
{
"cell_type": "code",
"id": "d8abf566",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html>\\(\\displaystyle R {\\mathrm{ch}_2^B(u)} - r {\\mathrm{ch}_2^B(v)} > 0\\)</html>"
],
"text/latex": [
"$\\displaystyle R {\\mathrm{ch}_2^B(u)} - r {\\mathrm{ch}_2^B(v)} > 0$"
],
"text/plain": [
"R*twisted_u2 - r*twisted_v2 > 0"
]
},
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"radius_condition = expand(\n",
" (stability.Tilt(*P).degree(twisted_u) / r > 0).expand().subs(\n",
" A2_subs\n",
" ) * r * R\n",
")\n",
"radius_condition"
]
},
{
"cell_type": "code",
"outputs": [
{
"data": {
"text/html": [
"<html>\\(\\displaystyle d > \\frac{1}{2} \\, B^{2} r + B q + \\frac{r {\\mathrm{ch}_2^B(v)}}{R}\\)</html>"
"$\\displaystyle d > \\frac{1}{2} \\, B^{2} r + B q + \\frac{r {\\mathrm{ch}_2^B(v)}}{R}$"
"d > 1/2*B^2*r + B*q + r*twisted_v2/R"
"metadata": {},
"output_type": "execute_result"
}
],
"from plots_and_expressions import c_in_terms_of_q, beta\n",
"radius_condition_d_bound = (\n",
" radius_condition\n",
" .subs(twisted_u.ch[2] == u.twist(B).ch[2])\n",
" .expand()\n",
" .add_to_both_sides(B*R*c - B^2*R*r/2 + r*twisted_v.ch[2])\n",
" .divide_both_sides(R)\n",
" .subs(c_in_terms_of_q.subs(beta==B))\n",
")\n",
"radius_condition_d_bound"
]
},
{
"cell_type": "markdown",
"id": "fe9fe5b8",
"metadata": {},
"source": [
"## Condition: $\\Delta(u) \\geq 0$"
]
},
{
"cell_type": "code",
"id": "f09514cb",
"metadata": {},
"outputs": [],
"source": [
"from plots_and_expressions import bgmlv2_d_upperbound_terms"
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html>\\(\\displaystyle \\frac{1}{2} \\, \\beta^{2} r + \\beta q + \\frac{q^{2}}{2 \\, r}\\)</html>"
"$\\displaystyle \\frac{1}{2} \\, \\beta^{2} r + \\beta q + \\frac{q^{2}}{2 \\, r}$"
"1/2*beta^2*r + beta*q + 1/2*q^2/r"
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(bgmlv2_d_upperbound_terms.linear\n",
" + bgmlv2_d_upperbound_terms.const\n",
" + bgmlv2_d_upperbound_terms.hyperbolic)"
"## Condition: $\\Delta(v-u) \\geq 0$"
]
},
{
"cell_type": "code",
"id": "a686d2da",
"metadata": {},
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
"outputs": [
{
"data": {
"text/html": [
"<html>\\(\\displaystyle \\frac{1}{2} \\, B^{2} r + B q - \\frac{{\\left(q - {\\mathrm{ch}_1^B(v)}\\right)}^{2}}{2 \\, {\\left(R - r\\right)}} + {\\mathrm{ch}_2^B(v)}\\)</html>"
],
"text/latex": [
"$\\displaystyle \\frac{1}{2} \\, B^{2} r + B q - \\frac{{\\left(q - {\\mathrm{ch}_1^B(v)}\\right)}^{2}}{2 \\, {\\left(R - r\\right)}} + {\\mathrm{ch}_2^B(v)}$"
],
"text/plain": [
"1/2*B^2*r + B*q - 1/2*(q - twisted_v1)^2/(R - r) + twisted_v2"
]
},
"execution_count": 61,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from plots_and_expressions import bgmlv3_d_upperbound_terms, ch1bv, ch2bv, q\n",
"\n",
"(bgmlv3_d_upperbound_terms.linear\n",
" + bgmlv3_d_upperbound_terms.const\n",
" + bgmlv3_d_upperbound_terms.hyperbolic)"
]
},
{
"cell_type": "markdown",
"id": "9d591f22",
"metadata": {},
"### Specialize last 2 conditions to $\\beta=B$"
]
},
{
"cell_type": "code",
"id": "3f3b7d88",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html>\\(\\displaystyle \\frac{1}{2} \\, \\beta^{2} r + \\beta q - \\frac{{\\left({\\operatorname{ch}_1^{\\beta}(v)} - q\\right)}^{2}}{2 \\, {\\left(R - r\\right)}} + {\\operatorname{ch}_2^{\\beta}(v)}\\)</html>"
"$\\displaystyle \\frac{1}{2} \\, \\beta^{2} r + \\beta q - \\frac{{\\left({\\operatorname{ch}_1^{\\beta}(v)} - q\\right)}^{2}}{2 \\, {\\left(R - r\\right)}} + {\\operatorname{ch}_2^{\\beta}(v)}$"
"1/2*beta^2*r + beta*q - 1/2*(ch1bv - q)^2/(R - r) + ch2bv"
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# substitutions to replace beta -> B in relevant equations to specialize to problem 1\n",
"beta_substitutions = [beta==B, ch1bv==twisted_v.ch[1], ch2bv==twisted_v.ch[2]]"
]
},
{
"cell_type": "code",
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
"source": [
"for terms in [bgmlv2_d_upperbound_terms, bgmlv3_d_upperbound_terms]:\n",
" terms.const = terms.const.subs(beta_substitutions)\n",
" terms.linear = terms.linear.subs(beta_substitutions)\n",
" terms.hyperbolic = terms.hyperbolic.subs(beta_substitutions)\n",
" terms.all = terms.const + terms.linear + terms.hyperbolic"
]
},
{
"cell_type": "code",
"execution_count": 43,
"id": "d006ea59",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html>\\(\\displaystyle \\frac{1}{2} \\, B^{2} r\\)</html>"
],
"text/latex": [
"$\\displaystyle \\frac{1}{2} \\, B^{2} r$"
],
"text/plain": [
"1/2*B^2*r"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bgmlv3_d_upperbound_terms.linear"
]
},
{
"cell_type": "code",
"execution_count": 44,
"id": "c1ec0dec",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html>\\(\\displaystyle \\frac{1}{2} \\, B^{2} r\\)</html>"
],
"text/latex": [
"$\\displaystyle \\frac{1}{2} \\, B^{2} r$"
],
"text/plain": [
"1/2*B^2*r"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bgmlv2_d_upperbound_terms.linear"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e124ab6f",
"metadata": {},
"outputs": [],
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
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
},
{
"cell_type": "markdown",
"id": "ae775c5e",
"metadata": {},
"source": [
"# Example bounds"
]
},
{
"cell_type": "code",
"execution_count": 48,
"id": "3eab094d",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html>\\(\\displaystyle \\text{Chern Character:} \\\\ \\begin{array}{l} \\mathrm{ch}_{0} = 3 \\\\ \\mathrm{ch}_{1} = 2 \\ell^{1} \\\\ \\mathrm{ch}_{2} = -2 \\ell^{2} \\end{array}\\)</html>"
],
"text/latex": [
"$\\displaystyle \\text{Chern Character:} \\\\ \\begin{array}{l} \\mathrm{ch}_{0} = 3 \\\\ \\mathrm{ch}_{1} = 2 \\ell^{1} \\\\ \\mathrm{ch}_{2} = -2 \\ell^{2} \\end{array}$"
],
"text/plain": [
"<pseudowalls.chern_character.Chern_Char object at 0x7f733b799300>"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from plots_and_expressions import v_example, beta_minus\n",
"v_example"
]
},
{
"cell_type": "code",
"execution_count": 88,
"id": "b4f4f892",
"metadata": {},
"outputs": [],
"source": [
"B_example = -2/3 - 1/99 # anything less than -2/3"
]
},
{
"cell_type": "code",
"execution_count": 89,
"id": "8756764b",
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<html>\\(\\displaystyle \\text{ Twisted Chern Character for $\\beta={ -\\frac{67}{99} }$ } \\\\ \\begin{array}{l} \\mathrm{ch}_{0} = 3 \\\\ \\mathrm{ch}_{1} = \\frac{133}{33} \\ell^{1} \\\\ \\mathrm{ch}_{2} = \\frac{265}{6534} \\ell^{2} \\end{array}\\)</html>"
],
"text/latex": [
"$\\displaystyle \\text{ Twisted Chern Character for $\\beta={ -\\frac{67}{99} }$ } \\\\ \\begin{array}{l} \\mathrm{ch}_{0} = 3 \\\\ \\mathrm{ch}_{1} = \\frac{133}{33} \\ell^{1} \\\\ \\mathrm{ch}_{2} = \\frac{265}{6534} \\ell^{2} \\end{array}$"
],
"text/plain": [
"<pseudowalls.chern_character.Twisted_Chern_Char object at 0x7f7332a27ee0>"
]
},
"execution_count": 89,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"v_example_twisted = v_example.twist(B_example)\n",
"v_example_twisted"
]
},
{
"cell_type": "code",
"execution_count": 110,
"id": "16dce8ed",
"metadata": {},
"outputs": [],
"source": [
"q_example = 2"
]
},
{
"cell_type": "code",
"execution_count": 111,
"id": "bf3b7639",
"metadata": {},
"outputs": [],
"source": [
"example_substitutions = [\n",
" B == B_example,\n",
" twisted_v.ch[0] == v_example_twisted.ch[0],\n",
" twisted_v.ch[1] == v_example_twisted.ch[1],\n",
" twisted_v.ch[2] == v_example_twisted.ch[2],\n",
" q == q_example\n",
"]"
]
},
{
"cell_type": "code",
"execution_count": 112,
"id": "db9f2513",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html>\\(\\displaystyle \\frac{4489}{19602} \\, r + \\frac{4489}{2178 \\, {\\left(r - 3\\right)}} - \\frac{8579}{6534}\\)</html>"
],
"text/latex": [
"$\\displaystyle \\frac{4489}{19602} \\, r + \\frac{4489}{2178 \\, {\\left(r - 3\\right)}} - \\frac{8579}{6534}$"
],
"text/plain": [
"4489/19602*r + 4489/2178/(r - 3) - 8579/6534"
]
},
"execution_count": 112,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"example_upperbound_1 = (bgmlv3_d_upperbound_terms.linear\n",
" + bgmlv3_d_upperbound_terms.const\n",
" + bgmlv3_d_upperbound_terms.hyperbolic).subs(example_substitutions)\n",
"example_upperbound_1"
]
},
{
"cell_type": "code",
"execution_count": 113,
"id": "71f8d1ef",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html>\\(\\displaystyle \\frac{4489}{19602} \\, r + \\frac{2}{r} - \\frac{134}{99}\\)</html>"
],
"text/latex": [
"$\\displaystyle \\frac{4489}{19602} \\, r + \\frac{2}{r} - \\frac{134}{99}$"
],
"text/plain": [
"4489/19602*r + 2/r - 134/99"
]
},
"execution_count": 113,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"example_upperbound_2 = (bgmlv2_d_upperbound_terms.linear\n",
" + bgmlv2_d_upperbound_terms.const\n",
" + bgmlv2_d_upperbound_terms.hyperbolic).subs(example_substitutions)\n",
"example_upperbound_2"
]
},
{
"cell_type": "code",
"execution_count": 114,
"id": "bd3a5e35",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html>\\(\\displaystyle \\frac{2377}{9801} \\, r - \\frac{134}{99}\\)</html>"
],
"text/latex": [
"$\\displaystyle \\frac{2377}{9801} \\, r - \\frac{134}{99}$"
],
"text/plain": [
"2377/9801*r - 134/99"
]
},
"execution_count": 114,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"example_lowerbound_1 = radius_condition_d_bound.subs(example_substitutions).rhs()\n",
"example_lowerbound_1"
]
},
{
"cell_type": "code",
"execution_count": 115,
"id": "ec13b9b8",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAnQAAAHWCAYAAAD+VRS3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAABluElEQVR4nO3dd1RUZxMG8AdRsQG2WLB3BEFRsdfYuzHR2GuMGuzG2HvUqNHEwqfRJLZo1NiNvWEvKIIodom9F0AQhOV+f4xYUSm7e+/dfX7neDYmsDsQlGHed2ZsFEVRQERERES6lULtAIiIiIgoeZjQEREREekcEzoiIiIinWNCR0RERKRzTOiIiIiIdI4JHREREZHOMaEjIiIi0jkmdEREREQ6p+mETlEUhIaGgrOPiYiIiD5M0wldWFgYHB0dERYWluj3ffIEsLEBVq82QWCUbHv2yP+fq1fVjoSIiEj/NJ3QJUe6dPL4/Lm6cVD8HBzkMSRE3TiIiIgsgcUmdKlTAylSABERakdC8XF0lEcmdERERMlnsQmdjY1U6ZjQaRMTOiIiIuMxaUI3d+5cuLu7w8HBAQ4ODqhYsSK2bt1qypd8CxM67WJCR0REZDwmTehy586Nn376CSdOnMCJEyfw+eefo1mzZjh79qwpX/YVJnTaZWcnv5jQERERJV9KUz55kyZN3vr9xIkTMXfuXBw9ehSurq6mfGkATOi0ztGRCR0REZExmDShe5PBYMA///yD8PBwVKxY0SyvyYRO25jQERERGYfJE7rAwEBUrFgRkZGRyJAhA9atWwcXF5d43zYqKgpRUVGvfh8aGpqs12ZCp20ODkzoiIiIjMHkXa7FihWDv78/jh49il69eqFTp04ICgqK920nT54MR0fHV7/y5MmTrNdOl45z6LTM0RFIZs5OREREAGwUM+/Vql27NgoVKoTffvvtvf8WX4UuT548CAkJgUPcJNpEaNECiIwEtmxJVshkIi1aSMJtxsZnIiIii2S2O3RxFEV5K2l7k52dHezs7Iz2WunSAY8fG+3pyMgcHYG7d9WOgoiISP9MmtANHz4cDRo0QJ48eRAWFoYVK1bAx8cH27ZtM+XLvsI7dNqWMSPw9KnaURAREemfSRO6e/fuoUOHDrhz5w4cHR3h7u6Obdu2oU6dOqZ82VeY0GlbpkzAkydqR0FERKR/Jk3o/vjjD1M+/ScxodM2JnRERETGYbG7XAEmdFqXKRMQFcVOZCIiouRiQkeqyZRJHlmlIyIiSh4mdKSauISOnchERETJY/EJncEAREerHQnFhxU6IiIi47D4hA5glU6rMmeWRyZ0REREyWMVCV14uLpxUPxYoSMiIjIOi07o0qeXRyZ02pQ6tSTdTOiIiIiSx6ITugwZ5PHZM3XjoA/jLDoiIqLks+iEjhU67cuUiV2uREREyWXRCR0rdNrHCh0REVHyMaEjVTGhIyIiSj6LTujijlyZ0GlX5sxM6IiIiJLLohO6VKmkk5J36LSLFToiIqLk02RC5+3tDRcXF3h6eib7uTJkYIVOy9gUQURElHyaTOi8vLwQFBQEX1/fZD8XEzpti6vQKYrakRAREZmBwQDExBj9aTWZ0BkTEzpty5RJdu1yPRsREVm8//4DatYEJk0y+lNbfEKXPj3v0GkZ138REZHFUxRgyRLA3R24fh2oUcPoL2HxCR0rdNqWObM8MqEjIiKL9OgR0KoV0KkT0Lw5EBAAVKtm9JdJafRn1BgmdNoWV6FjYwQREVmcHTuAzp2ByEhg1SqgZUsoChBrAGxtjftSFl+h45GrtmXNKo+PHqkbBxERkdE8fw707QvUqweUKAEEBgItW+LqVaB+fWD6dOO/pMUndKzQaVvGjECKFMDDh2pHQkREZASnTgFlygALFgAzZwLbtiE6Wy5MmSK53fnz8mhsTOhIVba2co+OCR0REemawQD89BNQvjxgZwecPAn07YtjvilQtiwwfDjQsydw9izQsKHxX54JHakua1YmdEREpGNx40iGDwcGDgSOHUNobhf07g1UrAikTAkcPw7MmPF6z7yxWXxTBO/QaV/WrMCDB2pHQURElEhx40j69JHjJh8foFo1rFsn/+rpU7kv16ePJHWmxAodqY4VOiIi0p1Hj4CWLaWL9YsvgIAA3CxYDc2bAy1aAB4ecrw6YIDpkznAShK6qCjZRkDa9NlnTOiIiEhHtm8H3NyAvXuBf/6B4c/FmLXYEcWLA8eOAf/8A2zcCOTL9/67Pn5smtmrVpHQATx21TJW6IiISBfixpHUry8JXWAg/At/hYoVgX79gPbtgXPngK++Amxs3n5XRQFWrgSKF5erdsZm8Qld+vTyyIROu5jQERGR5vn5vR5HMmsWwldvxfcznFC2rOwjP3gQmDtXxnG968YNoGlToHVroGpVYPRo44dn8QldXIWO9+i0K2tW+f8TGal2JERERO8wGIDJk2UcSZo0wMmT+LdAH7iUSAFvb+DHHyXXq1z5/XeNjQW8vQEXF5lisnYtsHo1kDOn8cNkQkeq47YIIiLSpOBgoEYNYMQIYPBg3F57FC3HuKBJE8DZGThzBhg6FEid+v13PXsWqFIF6N0baNcOCAqS3glTsfiELu7IlQmddsUldBxdQkREmqAowKJFQMmSwM2bMOzdD+9ck+Dsnhr79wPLlwPbtgGFCr3/rlFRwNix0uX66BGwbx8wb178R7HGZPEJHZsitC8uoeM9OiIiUt3Dh9LV0KUL8OWXCPwrAJV+qILeveUO3PnzQJs27zc9AMDhw5LITZwIDBkCBAQA1aqZJ2xNJnTe3t5wcXGBp6dnsp+LR67ax4SOiIg0IW4ciY8PIv9ajR8+WwiP6g549gw4cACYPx/IlOn9dwsNlaPVKlUAe3u5Uzdhgly5MxdNJnReXl4ICgqCr69vsp+LR67aZ28PpErFhI6IiFQSESHrHOrXB0qWxO5fA+E84kvMng2MHw+cOiXJWnw2bZKmh0WLgF9+kSqdm5tZoweg0YTOmGxtJUPmkat22dhwuDAREakkbhzJ778j5MfZaGW/FbU7OqFoUSAwUGbGxdf0cO8e8PXXMo7E3V2aIPr1k7xDDRaf0AFc/6UHnEVHRERmZTAAkyYB5ctDSZsWfw/2Q96pveGzzwbLlsnpa+HC77+bogALF8qA4D17gGXLgM2b498KYU5Wk9CFhakdBX0MEzoiIjKb4GCgenVg1Cjc7zQY1VIdRdsJxdGqlTQ9tG0bf9PDlStA7dpA165A48ayFeJDb2tuVpHQOTgwodM6JnRERGRyceU1d3fE3ryFua33wWnRJDwKk3EkCxYAmTO//24xMcDUqUCJEsDVq1K9W7LkdVOfFlhNQhcaqnYU9DFZs3IOHRERmdDDh8CXXwJdu+Jmha9QUgnAgDVVMG4c4O8vK7ni4+cHlCsHDBsGfPedDBOuW9eskScIEzrSBFboiIjIZLZuBdzcEOuzH9Mrr0GeXQuRvYgDzpyRJRDxNT1ERACDB0syZzAAR48C06e/np6hNVaR0NnbM6HTuriETlHUjoSIiCxGRATg5QU0bIjrmUuheEwgfrrQAkuXAjt3xt/0AMh/K1ECmDNHdrWeOAEYYTSuSVlFQsc7dNr32WfAixf8/0REREZy8iRQujRi//gTPxeYg3xBW1C1VU6cPw+0bx9/I8PDh0DHjnKkmj8/cPq07GpNlcrs0SdaSrUDMAceuWpf9uzyeO+e/P8iIiJKkpgYYMoUKGPH4lbWkqgfcwoGO2fs2/fhNVyKIuNHBgyQ49U//wQ6d9ZG92pCWU2FjgmdtuXIIY9376obBxER6djVq0D16lBGj4Z3+iEo/vgwvh7jDH//DydzwcFAgwZAhw4ykuTcOVnjqqdkDmCFjjQirkLHhI6IiBJNUYBFixDbpy8e4jN8EbsfacpUxsm5QNGi8b9LTAwwcyYwejSQJQvw779Ao0bmDduYrKZCFx4uZVTSpkyZ5I7CvXtqR0JERLry8CGUFjKOZHl0S5S380fPJZWxa9eHk7lTp4AKFaSL9ZtvZG2XnpM5wIoqdIBcuM+YUdVQ6ANsbOTYlRU6IiJKsK1bEd2xK8KfRqMr1iBT+xY4MVUqbvGJiADGjgVmzABcXIAjR4Dy5c0asclYTYUO4LGr1mXPzgodERElQEQEYnrIOJLdj0qhSb5A9PNpgT/++HAyt2sX4OYGzJoFjB8vTbCWkswBVlahY0KnbazQERHRJ504gfAv2iPFresYaOuNrKN6YddQG9jZxf/mjx4BAwfKqq4aNWTG8IeOYvXMKhI6e3t5ZEKnbdmzy8wfIiKi98TE4NnIn5Bm6jicU0pidjk/DF/ijGLF4n9zRQGWLwf695cGiN9/B7p21V/3akJZ1ZErh9ZqGyt0REQUn9hLV3CvWDWknTIGv6YZiqDfj2DR0Q8nc//9BzRsKAOEP/9cRpF062a5yRyg0YTO29sbLi4u8DTSng0euepD3B06rv8iIiIAgKLg1vg/EFm8FJ5dvYefGh5A5+sT0LFbqniTs5gYaXhwdQXOnAE2bQJWrnw969SSaTKh8/LyQlBQEHx9fY3yfBkyyCMTOm3LkUPWfz19qnYkRESktohrD3C2WAvkGvMNtqRvhVv/+mPE5krImjX+t/f3l1Ek338v1bigIKBxY7OGrCpNJnTGZmsrSR0TOm3jtggiIgIA33FbEF7QDdkuHcTK1uvQ5P4fqNbIPt63jYgAhgwBypYFoqKAw4elk9U+/je3WFaR0AHcFqEHb+5zJSIi63PrYji2F+wFz7GNEJypNMIOBeLrv5t/sIN1927A3V02PowbJ6NIKlQwb8xawYSONIMVOiIi6xQTA6wY5IsI59KoGrwYvl3+B8/7m1GwUvyX3x49Ajp3lt2ruXPLhIQRI4DUqc0bt5ZYxdgSgAmdHtjbA2nSsEJHRGRNfI/E4MSXk/HNnfG4/VkpxGw+BU/P+NtXFQX4+28ZRRIdDSxYIKNIUlhNeerDrOZTYG/PhE7ruP6LiMh6hIQAYztcQXSlavj2zljc7zIU+W4dhsMHkrlr12Tfart2MiD43DnZw8pkTrBCR5qSIwcrdERElkxRgFUrFRzv8QfGhfZHTJbsUNYeQK5qleJ9e4MBmD0bGDkSyJQJ2LgRaNLEzEHrgNXktQ4OHCysBzlyAHfuqB0FERGZwuXLwNefP4Bdmy8wPbQ7bFq3RsZgf6T8QDIXEABUrCiru7p0Ac6eZTL3IazQkaY4OQEHDqgdBRERGVNUFDBtGnBi3GYsiO0GBwcDsHgd0jdvHu/bP38OjB8v7+PsDBw6JIkdfZhVVeiY0GlfrlzA7dtqR0FERMaydy9QwS0cn43uhfUxjZGpThnYXQgEPpDM7dkjo0hmzADGjgX8/JjMJQQrdKQpuXJJO3pkpHS8EhGRPt2/DwweDJxbchwb07RHLrubwC9zkbJHj3iXqj5+LFseFi4EqlUD/v0XH9zVSu+zqgpdSAj3hGpdrlzyyCodEZE+xcbKOBHXYjFw/mc8jqaohNxuGZEiwB/o2fO9ZE5RgBUrgOLFgbVrgfnzparHZC5xrCahy5RJvsiePVM7EvqYuITu1i114yAiosQLDASqVgWmfHsZR1JVxdCocUgxcgRsDh0CihZ97+2vX5d9q23aSFXu3Dmge3eOIkkKq/mUZcwoj1z8rm1M6IiI9Cc8HPjhB8CjlIJaVxfgQppSKOzwQBK5ceOAVKneenuDQdZ1ubhIJ+uGDcA//wA5c6r0AVgAq0vonjxRNQz6BAcHIEMGJnRERHqxaZMkZitm3UdQ0eYYf/db2LZvA/j7x7tY9fRpoFIlYMAAWd8VFAQ0bWr2sC2O1SR0mTLJIyt02pcrFxM6IiKtu3EDaNFCkrFOWf7F1QxuKProiJTbFiyQn87f8Pw5MHw4UKaMXH86eBCYM0d+kKfks5qEjkeu+sGEjohIu2JiZKRI8eKA/6FwXK7dE+NPNUHKCp5yiS6ectvevTKKZPp0YPRo4NQpqdKR8VhNQufoKI88ctU+JnRERNp07BhQtqyMFxnb8Dgu2Xug0OGlwLx5cvaaPftbb//4MdCtG/D553I/LiAAGDUKSJ1apQ/AgllNQmdnB6RNywqdHjChIyLSlidPgF69ZMBv6hQxuNF9HL5fWwm2mTNKue2d2XKKAqxcKVW81asl3/Pxka0PZBqaTOi8vb3h4uICT09Poz5vpkxM6PQgblsEZwYSEalLUYDlyyURW7YMWDj8Eo6lqoJcf0wARoyQnVzvjCO5fl32rbZuDVSpIqNIevTgKBJT0+Sn18vLC0FBQfD19TXq82bMyIROD3LlAl68AB4+VDsSIiLrdfEiUKcO0K4dUL2agmsj5qPTL6Vg8+ihdDS8M47EYABmzQJcXaVot24dsGaN7Ogm09NkQmcqGTPyDp0e5M4tjzdvqhsHEZE1ioyUXM3NDbh6Fdi57D5WRTVDpqE9JLuLZxxJ3CiSfv2ADh1kFMkHVrWSiVjNLleAR656kS+fPF67Bnh4qBsLEZE12bkT8PIC/vtP9rCO9tgEu++6yX/csOG9DtaICGD8eODnn2VV18GDQOXK5o+brLBCx4RO+z77TBpYrl1TOxIiIutw+7bceatbV45IAw49w8SHPWDXsilQvny840h27pQq3q+/SkXv1Ckmc2qyqgpdxozyNUnaZmMD5M3LhI6IyNRiYgBvbxklkjYtsGQJ0L7IMdi0bS9Z3m+/yXLVNzpYHzwABg4E/voLqFED2Lo13jWtZGZWVaHjkat+5MsnJX8iIjKNo0cBT09ZwdWhA3A+MBodroyFTZXKQJYsclfu229fJXOKAixeLB2vW7YACxcCe/YwmdMKq0roeOSqH/nysUJHRGQKjx5JnlaxImBrK8OCvftfQqYmVYAff5Ry3cGDQJEir97n0iWgdm3ZvdqggYwi6dz5rcIdqczqErrQUGmtJm1jQkdEZFyxsVJVc3YGVq2SParHjirwPDUfKFVK1jocOgSMGQOklBtZL14AkybJXbngYGDbNjlqzZZN3Y+F3mdVCV2mTPIYEqJuHPRp+fLJT5Hh4WpHQkSkf4GBQLVqQNeuQP36wPnzgNdX92D7RVOZ+tu+vXQ1lC//6n2OHAHKlJHdq/36AWfOAPXqqfhB0EdZVUKXMaM88thV+94cXUJEREkTFiZ7Vz085IfkPXuApUuBHL6bpOx27BiwcaM0P2TIAECKHl5e0rGaNi1w4gQwZQqQLp3KHwx9FBM60iQmdERESacosqWheHHgf/8DJkwAAgKAmp7P5AJd06YyHPjMGdnT9dK6dYCLizQ//PqrVOlKlVLtw6BEsKqELu7IldsitM/JSS7rMqEjIkqcK1eAhg2Br74CSpeWrQ3DhgGp/Y5KqW7ZMmD+fBkU/PIy3M2bstmhRQs5Zg0KAvr2lb+HSR+sKqFjhU4/UqYE8uRhQkdElFCRkbK1wdVVErING+Q0NX+uaGl0qFLl9TiSl7PlDAZg9myp5B0/DqxeLe+XN6/aHw0llkkTusmTJ8PT0xP29vbIli0bmjdvjgsXLpjyJT/KwUEemdDpAztdiYgSZudOwN1djlYHDJCErmlTABcvymW4iRPfG0cSt3+1b1/piQgKAr78kqNI9MqkCd2+ffvg5eWFo0ePYufOnYiJiUHdunURrlLroq2tJHVM6PSBCR0R0cfdvg18/bWs7MqVS+7JTZ4MpE+nAPPmyRHr06dvjSN5/lyOYMuUAZ49kxxv7tzXp1ikTyZd/bVt27a3fr9w4UJky5YNJ0+eRLVq1Uz50h+UKZOM2iHty5cP2L1b7SiIiLQnJkbmyI0eLZ2oS5cC7dq9rK7duwd06wZs3iwjSaZPB9KnByCVvJ49gVu3gLFjgcGDgdSpVf1QyEjMuss15OUAuMyZM5vzZd+SNau0bpP25csnP32+eMG/cIiI4hw5AvTqJUemvXrJaeqr6tqGDcA33wApUgCbNgGNGwOQ/auDBknix/2rlslsTRGKomDgwIGoUqUKSpQoEe/bREVFITQ09K1fxpYlCxM6vciXT1rvb9xQOxIiIvU9eiS9DJUqSePY8eOAt/fLZO7ZM0nkmjeXNwgMBBo3frV/tXhxKdj9+Sf3r1oqsyV0vXv3xunTp/H3339/8G0mT54MR0fHV7/y5Mlj9DiyZAEePjT605IJ5M8vj//9p2YURETqio2VRKxYMeCffySJO3YMKFv25RvEDYtbsQJYsABYvx7Ilu2t/av168v+1S5d2PRgqcyS0PXp0wcbN27E3r17kTt37g++3bBhwxASEvLq1w0TlGZYodOPfPmkkeXKFbUjISJSh78/ULWqXIlr0AC4cAH47ruX8+Gio+USXZUqwGefyRt/8w1eRNtw/6oVMukdOkVR0KdPH6xbtw4+Pj4oUKDAR9/ezs4OdnZ2pgyJd+h0JFUqSeouX1Y7EiIi83r6VHI1b2/A2RnYu1fuvr1y8aLMGvHzk+7V4cOBlClx5Igsgjh3Tu7MjRnDlV3WwqQJnZeXF5YvX44NGzbA3t4ed+/eBQA4Ojoibdq0pnzpD4o7clUUlp31oHBhJnREZD0URappgwcD4eHA1KkyJy5Vqjfe4LffgIEDgdy5gcOHgXLlEBIiOd3cuXIUe+IEV3ZZG5Meuc6dOxchISGoUaMGcubM+erXypUrTfmyH5Uli3RNqjQKjxKpUCEeuRKRdQgMBKpVAzp2lGrc+fNSZXuVzN29K3tXe/UCOnUCTp0CypXj/lUCYIYjV63JkkUeHz0CMmRQNxb6tMKFgSVLWFElIssVGipHo7NnyxKHXbuAWrXeeaM3x5H8+y/QqBFu3gR6t5P/1LixHM9yZZf1sqpdroDcoQN4j04vCheWauq9e2pHQkRkXIoCLF8u3avz5wOTJsmmh7eSubCw1+NIKlcGzpyBoX4jzJkjVbnjx6XzdeNGJnPWzuoSurgKHUeX6EOhQvLIe3REZEnOngVq1pTtDlWqyPHqDz+8M0T9zXEkv/8OrFuH03c+Q+XKQJ8+8r5BQcBXX/EEg6w4oWOFTh8KFpRH3qMjIksQFgZ8/73kaXfuANu3S4XtrbGr0dHAqFGS6WXPDgQE4Hnbbhg23AZlyshzcP8qvcusq7+0IH16+QmICZ0+pE0rC6dZoSMiPVMUYNUqaU598gQYP17++b1JXRcuyDiSU6eAceOAoUOxyycletYDbt6Uu3bvVfKIYIUVOhsbzqLTm8KFgUuX1I6CiChpzp2TjQ2tWwPly8vvhw17J5lTFOB//wM8PKRL4sgRPOgxEh27pkSdOlLBO30aGDmSyRzFz+oSOoDrv/TG2Vl+aCUi0pNnz4AhQwB3d+DaNWDLFmDtWhmY/pa7d4FGjQAvL6BzZygn/bA4yBPFi0tDK/evUkJY3ZErwPVfeuPsLKNLYmOlY5+ISMsUBVizBhgwQIoHY8bIvbk0aeJ543XrgO7dgZQpgc2bcaFQQ/RsAvj4AG3bAr/8wpVdlDBW+e2RCZ2+FCsGPH8OmGC1LxGRUV28CNSvD7RsCZQuLV2oI0fGk8yFhcmC1hYtgKpVEXUiEONPNIS7u/xdt2MHsGwZkzlKOKus0GXNCvz3n9pRUEI5O8vjhQvxHFUQEWlAeLjMkZs2TTZybdokw37jdfgw0KGDDNj8/XfsK9QVPWrb4MoVaXgYOVIawogSw2ordLxDpx9588rl4fPn1Y6EiOhtioJXq7emTwdGjJAZc/Emc9HRkq1VrQpkz44nPgHoeqgbatS0QdasgL8/MHEikzlKGqus0PHIVV9sbeUyMBM6ItKSy5eBvn2BrVuBhg2lcSFuGPp7zp+XcSQBAVDGjsNfuYdiYIOUiImRLRHduvGOMCWPVX75ZMki3UcvXqgdCSVUsWLsdCUibYiIAEaPBlxd5Y7chg3SjRpvMqcosmS1dGng2TNcW3EEtX1kHEndupLnde/OZI6Szyq/hLjPVX+cnVmhIyJ1xR2vuroCU6bISJKgIKBp0w+s3rpzR0p3vXvD0LELJrf0Q7F2ZREcDGzbJk0P2bOb/cMgC6XJhM7b2xsuLi7w9PQ0yfNzn6v+ODsDt2/LvE0iInM7f166V1u0kPtyZ87Itod06T7wDuvWAW5ugL8/AqdsQYl93hj9UzoMHCjvW6+eWcMnK6DJhM7LywtBQUHw9fU1yfPHVeiY0OlH8eLyeO6cunEQkXUJC5POUzc3uTO3aROweTNQpMhH3qFrV6BFC0RVqIZ+nwfCfUgDZM4s27wmTfpIEkiUDFbZFBE31+f+fXXjoIQrXlyONM6ckdU5RESmpCjA8uXA4MHA06efGA4c59AhoEMHKA8e4Mg3f6LZus6IjrHBvHm8J0emZ5VfXvb2MgaDCZ1+pE0rO13PnFE7EiKydAEBQPXq0pRaubIct8Y7HDjOixcyr6RaNTzP5ISO7gGo/HsX1K5jg/PngR49mMyR6Vllhc7GRqp0TOj0pUQJJnREZDqPH0v36ty50lm/axdQq9Yn3uncOaB9eyinT8Pn8wlotH8IcuSyxdatcueOyFys9meG7NmZ0OkNEzoiMgWDAViwQJK4JUtk20NAwCeSuTfGkUQ8jEDL3EdR12c4+g20xZkzTObI/Kw2ocuWTbaukH6UKAHcvctmFiIynmPHgAoVgG+/lQkjFy8CAwcCqVJ95J3eGEeyp0A3ZL1+ErdylIGfHzB5MpseSB1WndCxQqcvbm7yePasunEQkf7duyfNqBUqSIXu0CFg8WIgR45PvOPatVDc3PD8iD++dtyKFrfnYMbcdDh06PXfUURqYEJHulG4MJA6NY9diSjpYmKAmTNlneCGDXJfztcXqFTpE+8YGgp06QJ8+SUOpqiOPCGBsKlfH+fOAT17sumB1GeVTRGA3KHjkau+pEolA4YDA9WOhIj0yMcH6NNHqvw9egA//vh60PxHHTwIpX0HvLjzEL1TLsSudJ2wdIsNGjQwdcRECWe1P1Nkyyb7XCMi1I6EEsPdXS4rExEl1M2bQOvWQM2aMrbqxAmpzH0ymXvxAhg+HEr16jh1PxdKxAQg88DOOBvEZI60x2ordHHDhR88APLlUzcWSjgPD2DtWrnzYmurdjREpGVRUcCMGVKJs7eXO3Lt2yfwePTcOcS0aQ+cPo3RygT4uA3BmgW2cHc3edhESWLVFTqA9+j0xsNDqqoXL6odCRFp2ZYt0hk/apTccbtwAejYMQHJnKJAmTUbMSVL4+qZCNRKdxR5/jccBw4zmSNts9oKXfbs8sh7dPpSqpQ8njr1er8rEVGcCxeAAQOArVuBzz8H1q8HXF0T+M63byPi6y5Id3AH5qI3jreYgr9np4OTkykjJjIOq63QZc0qj6zQ6UumTED+/ICfn9qREJGWhITIrtUSJWR5w5o1sukhoclc9IrVeF7YDSEHA9Ex2zYU2jwbS9cwmSP9sNoKXapUQObMTOj0yMNDKnRERLGxwKJFwLBh0ug2ZgwwaJDsf06Q0FDca90X2bcuxkZ8icDev2HuT1mQPr0poyYyPqut0AFy7Hr3rtpRUGLFJXSKonYkRKSmI0eA8uWBbt1kTdeFC8DIkQlP5kI3H8DDXCWRdutajCuwCIVP/YOxs5nMkT5ZdUKXM6dscCF98fAAnjwBrl9XOxIiUsPt20CHDjIM2GAADhwAli8HcudO2PsrUS9wpskwZGhcHZee58L6sQEYeakTSpayMW3gRCZktUeuAODkBFy7pnYUlFilS8vjyZMcOUNkTSIjgV9+ASZOlCrc/PmyvisxI4yCNwchpnV7FHsWiFXuE1F98w+omJszkEj/NFmh8/b2houLCzw9PU36Ojlzyk96pC9OTkCuXLJUm4gsn6LImi5XV2D0aODbb4FLl4Du3ROezEVGxGJz/dnI0bgMEBUJ39nH0DpgGHIymSMLocmEzsvLC0FBQfD19TXp6zg5yZEr72LpT/nywPHjakdBRKYWFATUqwc0bw4UKQKcPi3DgjNmTPhz7F9xG75ZG6DR9r7w9+yO3HdPolLv0qYKmUgVmkzozCVnThlSGxqqdiSUWOXKyfoeg0HtSIjIFJ4+Bfr3l3V/V68CGzfKbLnEzJ+8exf4tcpquLZxQ3FDIG4s2IaKx2chbeaEtsAS6YdVJ3Rx84V47Ko/5cvLiIJz59SOhIiMyWCQu3FFigB//CH35c6eBZo0AWwS2LNgMAB/zAjB3ryd0P9QS4R5fo4stwKR55t6pg2eSEVM6MBOVz0qU0b+cuexK5HlOHAA8PQEevQAGjaUFX9DhgB2dgl/jlOngO/cDqDWoJJojnUI816M/MdWwSZrFtMFTqQBVp3Q5cwpj6zQ6Y+9vVyQZmMEkf5dvw60aQNUqyZD348eBRYvfv13dEKEhQGD+73AjtJDMfdcdWRyz4O0F0/D/ruOCS/tEemYVY8tSZcOcHRkhU6vypWTv/iJSJ+ePQOmTgWmTZO/ixctkvlyKRJRalAU2dc6p9dZzLjfHiVsz0IZNwmOQwcnbp4Jkc5ZdYUOkGNXVuj0qUoVIDBQLk8TkX7ExkoFrmhRSegGDpQxJJ06JS6Zu3YNaNYkFj4tZmLrgzIoXigKtr7HYDtiKJM5sjpWn9BxFp1+Va0qP50fOqR2JESUUAcPSlNT587yZ/j8eWl8sLdP+HNER0siWMv5Fgbtqo+Z6I9UXj2Q+vRJWSVDZIWsPqGLm0VH+lOoEJAjh1ykJiJtCw4GWrWSJA6QP7crVwL58yfueQ4dkm0xJ4f+gwDFDVUznwV27IDNrJkJX+JKZIGsPqFjhU6/bGzkmwMTOiLtCgsDhg+X+XGHDslR67FjcmUiMR4/ls0QDauEYMqdjliptEL6JrWQ4kwgUKeOaYIn0hGrT+i4LULfqlYFfH2B58/VjoSI3mQwyBy5IkVk/+qQITKGpGPHxDc9LF0KODsDN5fvx43MJdHgxXrJDFetAjJnNtnHQKQnTOicuC1Cz6pWlfs0nEdHpB0+PkDZssA33wC1agEXLgDjxgHp0yfueS5ckPf/pmMUfs8yBFue14CDa17YnD4tmSHHkRC9YvUJHWfR6Zubm4w74LErkfquXAG+/BKoWVOGAR8+DCxbBuTNm7jnef4cGD1a1n7ZXT6LBwXLo+mVX2AzeTKwd2/iL94RWQGrT+i4LULfbG2BypWB/fvVjoTIeoWEAD/8ALi4SLV82TJJ5ipWTPxz7dghP6hNmRyLtTVmYsv9MnBIEy0X74YM4TgSog9gQvcyobt1S904KOmqV5fL1lFRakdCZF0MBuC33+SenLc3MGKEHJO2bZu4e3IAcPeubIuoVw/wyHYLjz3rodGO/rDp2RM4cYLjSIg+weoTurRpgSxZgBs31I6Ekqp2bbkHeeSI2pEQWY/duyXH6tkTaNBAGh5Gj5YNPIlhMAD/+580PezaBfh8twqrzrsh/bUgKdf9+ivHkRAlgNUndIDc77h+Xe0oKKlKlQKyZgV27lQ7EiLLd+4c0KSJ/CBlby9HrIsXA7lyJf65Tp0CKlUCvLyAjs1CcLNmB1T/39ewqVNH1sBwHAlRgjGhA5AnDyt0epYihXxzYUJHZDr37gG9esn9trNnZSjwwYOAp2finyssDBgwQDphIyKA07P3YZaPO+y2b5QZJStWcBwJUSIxoQMrdJagTh25ZvP4sdqREFmWiAhZzVW4sCRx06ZJla5Vq8RPDVEUYPVqGTL822/A1AlR8K/7A9z61gQKFABOnwbat+c4EqIk0GRC5+3tDRcXF3gm5Ue/JGCFTv/q1JFvFnv2qB0JkWWIjZWj1KJFZYbct98Cly9LZc3OLvHPd/my3LVr2RIoUwa4tO4MBq0qD9vZvwJTpsilvHz5jP5xEFkLTSZ0Xl5eCAoKgq+vr1leL29eabvncGH9ypMHKFaMx65ExrB7tyRdnTvLHbdz54Dp05N2ChoZKQlhiRLA+fPAhnWx2FDzV+RqVhaIiZFLeIMHcxwJUTJpMqEztzx55JFVOn2rVw/Yto1r3IiSKigIaNRI7qSmTSuz5FatAgoVStrzxc2UmzgRGDgQCNpxE03n1JUyX69eck+iVCmjfgxE1ooJHV4ndLxHp29Nmsj/w9On1Y6ESF/u3pXxI25uUkX75x+Z7ZiUwcCAzPVs1Up+yMqdGwgIACaVXIl05V++wM6dsuA1TRrjfiBEVowJHWS4cIoUrNDpXbVqgIMDsHGj2pEQ6UNEBPDjjzIYeNUqOVYNCgK++ippfQkxMZKnOTsD+/YBf/0F7Fn7FMUntgdatwbq1pWfuGrXNv4HQ2TlmNABSJlSkjpW6PQtdWq5dM2EjujjDAZg0SJJ5CZMAHr0kD2s/fsnreEBkOPZMmWAQYOATp1kY0S7XD6wKekObNrEcSREJsaE7qW8eVmhswRNmsi1HK5yI4rfrl2SeHXpAlStKg0PP/8MZMqUtOd7+BD45hvZqZw6tfQ4zJkehYwTBwOffw4ULMhxJERmwITupTx5WKGzBA0aSLPcv/+qHQmRtvj7A/Xry4if9OllVd6KFZJvJUVsLPD779Jdvnq1rO86ehQoaxcIlCsHzJzJcSREZsSE7iUOF7YMmTNL1YHHrkQiOFiKYx4e8s9r1siGhwoVkv6cAQFAlSpA9+7SFXvhAtCrRyxsZ86Q9Q8GA+Dry3EkRGbEhO6luCNXg0HtSCi5mjWTY6WQELUjIVLPgwdyJ65YMRm4PX++rOxq0SLpJ59hYTJ+pEwZ4OlTwMcHWLIEyP7ihpT+Bg2SxawnTgAlSxrxoyGiT2FC91KBAkB0NHD7ttqRUHJ99RXw4gWwYYPakRCZX3i4dK4WKgQsXAiMHStbGrp3lwawpFAU6YJ1dpaVXRMnyhFu9eqQc1t3dynT7doFzJjBcSREKmBC91KBAvIYHKxuHJR8uXPLcdDKlWpHQmQ+0dHAvHmyc3XCBGlUuHIFGD4cSJcu6c976ZLcvfv6a8DTU8aaDBkCpI54CrRrB7RpI28QGAjUqmW0j4eIEocJ3Uv588vjf/+pGQUZS6tWMqX+yRO1IyEyrbiF966uwHffycnnhQtSKMuaNenPGxkp1T03N+DiRbmXun79y/6GvXulKrd5M7BsGfD330lvkyUio2BC91K6dED27KzQWYqvvpL7kGvXqh0Jken4+EhzQ8uWUpk7dUrutMX9gJpU27bJ7tVJk+Ra3NmzMhIIUVHA999LJa5QIRlH0ratET4SIkouJnRvyJ+fCZ2lyJlTvucsXqx2JETGd/o00LAhULOmVOj27AG2bEl+H8LNm5IcNmgglbjTp+W+XLp0kCPVcuWA2bOBadNkHEnevEb5eIgo+ZjQvaFAASZ0lqRLF+DAAbkQTmQJrl4FOnaUffaXL8vO1WPHJLFLjuhoOaItXlz+zCxbJv0Nzs6QgXMzXo4jiY2VcSSDBsm+RCLSDP6JfAMTOsvSvLnsdl2yRO1IiJLn1i2gVy8ZQbJzJ+DtLcegSd25+qZDh2QMyeDB8kPQhQtyimpjA5nlFDeOpHdvSebc3Y3yMRGRcTGhe0PBgnLkEBWldiRkDOnSSWfe4sVSWCDSm4cPJdEqXFjGhkycKJ2rvXoBqVIl/7m7dpWO8DRpZGXXrFmAo+PLN/j7b0neLl6U49Xp0zmOhEjDmNC9oXBhuY9y9arakZCxdO4sG0D27lU7EqKECw2VDtOCBWUUyQ8/yN9LP/yQvBEkgPxwM3++VPvWrQPmzpU1YGXKvHyDJ0+kRNe2rVymO31adrISkaZpMqHz9vaGi4sLPD09zfq6RYrI46VLZn1ZMqGKFYGiRYE//lA7EqJPi4iQfoMCBWQNao8ecg1k3Lg3KmfJcOKEdMX26AE0bizHqz17vrGda88eqcpt2SIX6ZYv5zgSIp3QZELn5eWFoKAg+Pr6mvV1nZzkp18mdJbDxka+ea1eDdy9q3Y0RPF78UKW2xcuLIOAW7WSpodp05I3Sy7O48dyTFuunFwpOXBAriJky/byDSIj5Z5crVryky3HkRDpjiYTOrXY2MhfqEzoLEvXrnLfaP58tSMhepvBIIlVsWLSc1C7tlTN5s4FcuVK/vPHxkp1umhRKbb9+itw8qTcm3vl9GnJ9ObMAX7+WdpbOY6ESHeY0L2jSBEmdJYmY0agQwf5JvnihdrREMld3TVrZAtD585A6dIy5m3JErk3Zwx+fkClSrICrGFDSRT79n1jn2tsrCRwcVdbOI6ESNf4J/cdTOgsU58+cuS6Zo3akZA1UxRZn1W6tIwcyZtX8qg1a2R1lzE8eQJ4ecnYuPBwYN8+SRRz5Hjjja5fl+PVH36QPxzHj3McCZHOMaF7R5EiMnrp+XO1IyFjcnWVRr1Zs9SOhKyRogAbNkgn6RdfAJkzA/v3y4qtsmWN8xqxscDChXK8unSpTBnx8wOqVXvnDZcvl+TtyhUZR/LzzxxHQmQBmNC9I67T9coVdeMg4+vfHzh6VL6REpmDoshS+zJlZNC1o6PsX929G6ha1Xiv4+8v9+K6dgXq1pXj1QED3plV9+QJ0KYN0K4d0KiR3J1L7ooJItIMJnTviEvouC7K8jRqJIWJiRPVjoQsnaIA//4r19OaNQPs7WUW4t69QPXqxnudp0/lXlyZMkBIiDz/smWyy/gtceNItm6VCt2yZXK5lIgsBhO6d2TPDmTIwHt0lihFCmDECGDHDrkyRGRsigJs3ixNo02ayBikPXvkHluNGsZ9nSVLpDt24UJg6lSp0r33GpGRwMCBr8eRBAZKlY6ILA4TunfY2LAxwpJ9+aV8E2SVjoxJUWQWb/nyMrA3TRo5Vt23z/inmqdPy724Tp3kXuj589Kc+t4qsNOnpUTo7S0X6nbtAvLkMW4wRKQZTOjiwYTOctnaAsOGyb0mf3+1oyG9i0vkKlSQI/3UqSVv2r9fki0bG+O9VkiI3AMtXVr2sO7eLetW35tX9+Y4EhsbWQ8xcCDHkRBZOP4JjwcTOsvWtq0MkB49Wu1ISK9iY2X7SJkyksilTAns3CkbGGrVMm4ipyjAX39JZfn334FJk4CAgA+sV31zHEnfvjITxc3NeMEQkWYxoYtH0aLArVvAs2dqR0KmkCoVMGECsGmTHIkRJVR0tNxdc3UFWraUNad79gAHD8qWB2MmcgBw5ozci+vQQY5Zz52TXC116nfeUFGk0SFuHMmePbI3zM7OuAERkWYxoYuHi4s8njunbhxkOq1ayX2nAQNk/RLRx0RGAvPmyQ97nTpJhffIETn2rFnT+IlcaKickpYqJQOxd+wAVq36wBW4uHEk7dvLBb7Tp43bgUFEumDShG7//v1o0qQJnJycYGNjg/Xr15vy5YymeHF5PHtW3TjIdFKkkL2Wp07JLk2i+ISHAzNmyDqu776T7lV/f6nuVqhg/NeLO151dgZ++w348UfJz+rU+cA77N4tR6rbtwMrVsg7cxwJkVUyaUIXHh6OkiVLYs6cOaZ8GaNLnx4oUIAJnaWrUEHu0w0fDoSFqR0NacnTp5JM5csHDBkC1KsnFfuVK4GSJU3zmv7+cqzaoQNQubK83tChHzg1jYyU8nLt2nK5LjAQ+Ppr0wRGRLqQ8tNvknQNGjRAgwYNTPkSJuPqyoTOGvz0k3w/HDNGKjFk3e7dA2bOlEkfUVFAt25yZy1fPtO95uPHwKhRcqRbrJh0ydaq9ZF3CAiQbQ+XL8sXbb9+7GAlIt6h+xAmdNYhTx5g7Fj5Jn7ypNrRkFouXAC+/VYSt1mz5J+DgyWxM1UyZzAACxa83r06bZrkah9M5gwGeSNPT5m/c+KEVOmYzBERNJbQRUVFITQ09K1fanF1lQkAPIqzfAMGACVKAN27SxcjWY9Dh2THavHici9uzBjgxg3Jm95bn2VER49KU86338rYk4sXpQniveHAca5dk0xvyBAZRnf8uHzREhG9pKmEbvLkyXB0dHz1K4+KU83jOl2DglQLgcwkVSqZ73X6tMz4IstmMADr1gGVKslC+wsXpFL2338ydDpTJtO99r17QNeuQMWKMsvu0CFpysmR4wPvENcl4e4OXL0q40imTuU4EiJ6j6YSumHDhiEkJOTVrxs3bqgWS/HiMoqAx67WwdNT9rxOmCCzWMnyPH8u99SKFwdatJBEfuNG+TPerZtpc6ToaDnWL1oU2LABmDtXvs4qVfrIOz1+DLRuLV0STZpwHAkRfZRJmyISy87ODnYa+ckzXTp2ulqbkSNlsXrr1nI9yZSVGjKfu3dlBIi3N/DokSRzS5fKkac57N0L9Okj1f4ePaR7NkuWT7zTrl1A584yN2XFCnawEtEnmbRC9+zZM/j7+8P/5dLM4OBg+Pv74/r166Z8WaNxdeWRqzVJlUqGtz55IjNaY2PVjoiS4/hx+f+YN6+cUrZsKXfV/vnHPMnczZvyw8HnnwMODvJDwty5n0jmnj+XO3J16sgwOo4jIaIEMmlCd+LECXh4eMDDwwMAMHDgQHh4eGC0TpZostPV+hQsKBuUtm6V41fSlxcvgOXLZcZg+fLA4cMymubWLanQFSpk+hiiooDJk2UEiY+P3JE7eBAoXfoT7+jvD5QtK+fCv/wi6yFy5zZ9wERkEUx65FqjRg0oimLKlzApV1fpeHv6lMPXrUmDBsC4cdLx6OkJNGyodkT0KXHHqvPmyT/Xri334xo2lAkf5rJli4yFCw6Wx9GjAUfHT7yTwQBMny5n/i4uUspjBysRJZKmmiK0plQpeQwIUDUMUsGIEbIWs1077vTVMl9f6RmIO1Zt3lwW2u/cKX0E5krmrlwBmjaVESR588rfGdOnJyCZu3ZNzmSHDpX5OceOMZkjoiRhQvcRzs5AmjSAn5/akZC5pUgBLFkiJ1716kmllrQhIgJYtEhGf5QrJ8eZkyfLnbW5c6Wybs5YRo2S1/T3l/t5u3YlIAZFkc4Md3eZl7J3LzBlCseREFGSMaH7iJQp5e/bU6fUjoTUkDEjsG2bJHf16gEPH6odkXULCAB69wacnIAuXYAMGYD162UD1qBB5u1KVhRg9WoZgTJ1KvD991LJ/eorGXf0UY8fS6NDx45As2YyjqR6dbPETUSWS1NjS7SodGmpAJB1ypUL2L4dqFpVBvXv2gV89pnaUVmPZ8+AlSuB+fOlazVHDsDLS+bGFSyoTkxnzkgj6u7dciy/ezdQuHAC33nnThlH8vy5tFS3bGnCSInImrBC9wkeHvKT9/PnakdCailWTE7E7t6V6063b6sdkeXz8wN69ZJqXPfuMupj7VpZxzdxojrJ3OPHMk+uVCmJ499/ZV1YgpK558+lS6JuXTmPDQxkMkdERsWE7hNKl5YmtMBAtSMhNbm6ygiKJ09kJMaZM2pHZHnu3QN+/VX+zJUpI8lS//7SMbplC/DFFx/ZdWpCBoPczStaVEaQTJ4s//8bNUrgE8SNI/ntN/kAt22T0i8RkRExofuEEiWkU46NEVS8uDQhZs4MVK4sR22UPM+fy5Fq48aS4/zwA5A/v6zH+u8/YPx4IF8+9eLbt08SzO++k67ZixeBwYOB1KkT8M4GgzQ6lCsn73DypFTpUvCvXSIyPv7N8glp0shoKDZGECBJx/790mFZvz7w88/cKJFYsbHAgQNylJojh2xTePwYmD0buHNHjlabNpWmJLVcuwa0aiWrU9OmlUR+4UKJN0H++w+oWRMYNgwYOBA4etS87bdEZHXYFJEApUszoaPXHBzkOHDkSKnW7N0rR3FZs6odmXYpijQ1/POP/Lp+XSpx/frJHLkiRdSOUERESNfqlCnS5bx4sawPS3BRLW4cSe/eUsr18QGqVTNhxEREghW6BPDwkMkC0dFqR0JakSqVfNPfskUSFXd3YM0a+X5OQlGksvX995K8VagA/PWXHK/u2yfDeMeP10YypyjSdFq8uNyR69dPjlc7dkxEMvfokZT1OnWSCccBAUzmiMhsmNAlQNmysp+RF+HpXQ0avL7z/tVXMlbMmocQR0dLUWrQIKBAAUnili6VJG7v3tc7VatV085VsoAAOR39+mvpYD17Vva/2tsn4kl27ADc3ORi5apVMpX6k2siiIiMRyN/pWpb6dJyn+foUbUjIS3KlUsu8a9eLWs4nZ1lddiTJ2pHZh6PHknlrXVrmdFXsybw99+yR3XPHhnz4u0t99HMuVf1Ux4+lNEopUtLh+22bfL/McEz5QDp6ujbVyZPlyjBcSREpBobRdHuIVFoaCgcHR0REhICBwcHVWPx9JTmiMWLVQ2DNC4kRI7sZs2SLU7ffy8dkubcYmBqMTHS9b17N7B5M3DkiDQ6lC0rlbjGjeWaglYqcO+KiZExJKNHy1Hr2LEyrDjRI1H8/OSCXXCwnL/37q3dD5qILJ4mEzpvb294e3vDYDDg4sWLmkjo+vSRU5ULF1QNg3Ti7l1g0iQZPWZrK9Wrnj3lB4NProbSGINBjiX37pVf+/cDYWFA+vRA7doyzqNhQyBnTrUj/bTdu+V+XFAQ8M03wI8/AtmyJfJJDAbpnBgzRjpXly2Tn/aIiFSkyYQujpYqdMuWyQ/jDx/K1HqihLh7F/jzT1ldde2aVK66dZMqlprz1T4mIkK6uo8dk/Ei+/bJ8XGaNDJ/r2ZN2ZhRtqw6g36T4vJl6Uhev14+hlmz5Kg10YKDpVPi0CFgyBBg3LgEDqUjIjItJnQJdOWK3K3ZvFmqEUSJYTDITti5c4GtW+X3xYtLU0WDBrIr1s7O/HE9eSJNAGfOSHPH8ePS0W0wSAJXrpwkcDVrSoODGjEmR0iIVOFmzpQZclOmSLU00VVSRZFGhz59ZBzJ0qXyP42ISCOY0CWQosjRTK9eMmqBKKmePgV27ZLEbutWGaabNq1UjMqWlbv1hQvLOA8np+Qd0SqKVJWvX5fu2+vXZeZtXBIXt5fW1laaOcqXlySuXDmJQy8VuHfFxAC//y735MLDZb7voEHyeU60R4+AHj1kLk2nTlLeU/nvIyKidzGhS4QmTYDISGDnTrUjIUuhKFIR27VLOmRPnJBqcNyfyrRpgTx5pCgU9ytjRknyYmOlkhYb+/qfo6Ol6vbkCfDggSRxkZGvX8/ODsibV658lSghv1xdZU+p3qpvH7JrFzBggCSsnTrJXUYnpyQ+2fbtQJcuMrfot99kNg0RkQZxU0QiVKok3xxiYtRdS0SWw8YGKFlSfsWJipKrWpcvA5cuSRXt8WP5de2aNCgA0lCZIoVU1+L+OVUqSfiKFJH1ZHnySAIX9/jZZ/prykioixelq3jTJrkn5+srFc8kef5c7sjNng3UrSt7v5KcFRIRmR4rdIlw+LB8ozh+XLoViUh9T54AEyZI7pUrlzSgtmyZjMT1zXEkU6fKTBOOIyEijePfUolQtqwcgfn4qB0JEcXEAP/7n1QjFyyQu63nz8v2rSQlcwaDDBEsX146Qk6elCYIJnNEpAP8myoRUqeWY9d9+9SOhMi6bd8ux9S9e8u6tYsXpfEhTZokPmFwsKyyGDFC5pscPcrZckSkK0zoEqlGDZnNZTCoHQmR9Tl/HmjUCKhfH8iaVZpI/vgjGUONFQVYtEiyw5s3ZWrypEmcLUdEusOELpGqVwdCQ19fTCci03v8WDY8uLkB587J3lwfnyQOB47z8KF0rXbpAnz5pfyhrlLFWCETEZkVE7pEKldOjnV47EpketHR0uxQuLA0mk6cKGu7vvwymd2627ZJdujjI9nhwoWcLUdEusaELpHs7GRiPhsjiExHUYAtWwB3d6nMffWVjHD54Ydk3JMDZK9Z796ynqNkSSAwULJDIiKdY0KXBJ9/LglddLTakRBZHn9/oE4duSuXM6dMEZk/H8iePZlPfPIkUKaMXLqbPVvWdHC2HBFZCCZ0SVCvntyjO3ZM7UiILMfNm3KdrXRp+eeNG4Hdu4FSpZL5xAaDnNVWqACkSycZYu/eljthmYisEhO6JChTBsiSRa7hEFHyhIUBo0bJ+rHNmwFvbzkJbdLECDlXcLB0Mo0eLee1R44AxYsbJW4iIi1hQpcEtrZyJLR9u9qREOlXTIysRy1cGPj5Z9m/evky0KuXrDBLFkWRRgd3d+DWLelimjiR40iIyGIxoUui+vXlSs6DB2pHQqQvcQ0PJUsCPXvKFYYLFyTfMkqj6cOH0ujQtat0U3AcCRFZASZ0SVS3rnxj2rlT7UiI9OPNhods2eSHoiVLgLx5jfQCW7fKOJL9+4E1aziOhIishiYTOm9vb7i4uMDT01PtUD4oZ045zeE9OqJPu3kT6NxZGh5u3QI2bQL27EnmYOA3RUQAXl5Aw4bSRREYCLRoYaQnJyLSPhtFURS1g/iQ0NBQODo6IiQkBA4a/Cl7+HAZp3D3LpAypdrREGlPWBgwZQowYwaQIQMwbhzQvbuR/7ycPAm0awdcuyaX8b77jh2sRGR1NFmh04sWLYBHj+R0h4hee7PhYfr0txsejJbMxcS8HkeSIQNw6pRU6ZjMEZEVYkKXDGXKyN2fNWvUjoRIGxQF+PdfuY7Qs6c0D128aMSGhzhXr74eRzJkCHD4MODsbMQXICLSFyZ0yWBjI1W6deuA2Fi1oyFS1+HDQLVqMj8uRw45CV28GMiTx4gvoijAn39Ki+ydO1Ie//FHjiMhIqvHhC6ZvvxSvq8cPap2JETqOH8e+OILoHJluTO3bZtseDBaw0OcBw/kJ6hu3YBWrWQcSeXKRn4RIiJ9YkKXTBUryo7JtWvVjoTIvG7dAr79FnB1lXEkf/0lW7Xq1TPBNbYtW2QcyYED8oftjz8Ae3sjvwgRkX4xoUsmW1upTqxdK6dBRJbu6VPp8C5SRL7uZ8yQKl27dkAKY/+NEhEhXauNGknJLzBQ/sAREdFbmNAZQYsWsjLS31/tSIhMJzJSkrdChYBffwUGDgSuXAH69QPs7EzwgidOAB4ewKJFsuB182YZAElERO9hQmcENWoAmTKx25Usk8Eg2xyKFZP99q1aSSL344+Ao6MJXjAmRp68YkU5VvXz42w5IqJPYEJnBKlSySnQihU8diXLEbdz1cMD6NQJKFcOOHsWmDvXhIWyK1ekVXbMGGDoUODIEY4jISJKACZ0RtK+vXwvOnJE7UiIku/YMaBmTbm6ljmzdHH/849U6UxCUaTRoVQp4N49aX6YMEF+WiIiok9iQmck1asDuXMDS5eqHQlR0p09K6N4KlQAHj+WCt3evUD58iZ80bhxJN98I+e5/v5ApUomfEEiIsvDhM5IUqQAOnYE/v5bGvOI9OTKFaBDB5kM4ucnA4FPnQIaNDDx1bW4cSQHD8qEbo4jISJKEiZ0RtStGxASIkdTRHpw65as6HJ2lmHA3t7AhQvyw4mtrQlfODxcFru+OY6keXMTviARkWWzURTtXuMPDQ2Fo6MjQkJC4GDURZCmU6cO8Py5FByItOrBA+CnnySBy5BB+g+8vIC0ac3w4r6+cun0xg1g+nTJKNnBSkSULKzQGVn37sChQ0BQkNqREL3v6VNg1CigYEFgwQIZEHz1KvD992ZI5mJipNGhYkXAwUHOdHv1YjJHRGQETOiMrFkzIEsW+WZJpBXh4VKRK1hQimLffSfDsEePltzK5K5cAapWBcaOlSzy8GETtswSEVkfJnRGZmcHdO0KLFwIPHumdjRk7aKigNmzZbvD6NFA27aSW02ZIj94mJyiAL//DpQsKee8Bw8C48dzHAkRkZExoTMBLy9J5hYtUjsSslYxMcCffwJFiwL9+0u36sWLwJw5Ztye9eCBNDp07w60aSPjSCpWNNOLExFZF00mdN7e3nBxcYGnp6faoSRJvnwyy2vmTFmbRGQuMTGypqt4cem6rlBBZsstXAjkz2/GQDZvlnEkhw8D69fLHYQMGcwYABGRdWGXq4kcPSrFiPXr5V4dkSnFxADLl0vPweXL8jU3Zoys7TKr8HDpsJg3D2jYUObK5chh5iCIiKyPJit0lqBCBfn1889qR0KW7M2KXKdOgKurDAZev16FZO74cXnRxYtl4eu//zKZIyIyEyZ0JjR0qNwB37dP7UjI0mgqkYuJkUaHSpWAjBnlrhxnyxERmRUTOhNq2lSa+8aPVzsSshSaSuQAOd+tWhUYNw4YMUKGMBYtqkIgRETWjQmdCdnYyKiIPXu4OYKSJ75E7uRJFRM5RZFGh1KlpJv10CFJ6jiOhIhIFUzoTKx5c2n2GzNGvgcSJcbHErnSpVUK6v59+cL+9tvX40gqVFApGCIiApjQmVyKFMDEiVKl27xZ7WhIL6KigPnzZZmCZhI5QBod3NyAI0eADRs4joSISCOY0JlB48ZArVrAoEHAixdqR0NaFh4O/PqrbHbo2VOSt7g7cqomcuHhQI8eQJMmgKcnEBgol0SJiEgTmNCZgY0NMGOG3B+fO1ftaEiLnj6VSm7+/DLGrXZtGQj8zz8q3ZF707Fjclfur79kvtymTUD27CoHRUREb2JCZybu7sA338hu8keP1I6GtOLBA2kOzZdPhgK3bCmJ/6JFcm9OVTEx8gVbuTKQOTNw6pRU6TiOhIhIc5jQmdGECbIKbNw4tSMhtV27JjtW8+eXFXHduwPBwcD//mfmFV0fcukSUKUK8OOPwMiR0qbNcSRERJrFhM6MsmUDRo2Sb9p+fmpHQ2rw9wfatZM7ckuXyr3Ka9dko0jOnGpHB2nFnj9fjlgfPZJxJGPHchwJEZHGcZermUVHA+XKAbGxgK8vkDq12hGRqSkKsGsXMG0asHOnVOAGDgS6dgXSp1c7ujfcvy/3AjZtkpLhjBnsYCUi0glW6MwsVSrgzz+BoCBg8mS1oyFTiokBli+X7tS6daXg9fffcprZp4/GkrlNm4ASJYCjR2Ucyfz5TOaIiHSECZ0KPDxkz+uPPwIBAWpHQ8b27JnciytcWI5Xs2eXCt2JE0Dr1kDKlGpH+IZnz6TRoWlToHx5jiMhItIpHrmqJCpKvn9GRso3ehZD9O/WLbkfOXcuEBoqSxS+/172+WrSsWNA+/bA7dvAL7/IMSs7WImIdIkVOpXY2QErVwI3bwK9enEtmJ4dPSrJW/78wOzZQOfOwNWr0vSgyWQuOvr1OJIsWaRT49tvmcwREekYEzoVFSsG/PabzGv980+1o6HEePECWLZMqqwVK0qVdfp0SdBnzADy5lU7wg94cxzJqFEyjqRIEbWjIiKiZNLSbZ5XvL294e3tDYPBoHYoJteuHbB/v1TpChcGqldXOyL6mPv3JQmfOxe4c0c2Ovz7L9Cggezt1ay4cSQDBwJOTjKOpHx5taMiIiIj4R06DXjxAmjYUJavHz6sgQ0B9J4TJwBvb+lSTZEC6NAB6NsXcHVVO7IEuHdPxpH8+680QEyfrrEWWyIiSi4mdBrx9KmchIWHy50srspUX3i4JHDz5kmynScP4OUlvQOZM6sdXQJt3CjJnI0N8PvvQJMmakdEREQmoOVDIquSMSOwZYt0vTZpItMkSB1nz8qcOCcn6RXIkUPGtAUHA0OG6CSZe/ZMMs9mzYAKFWQcCZM5IiKLxYROQ/LmBTZvBi5ckCNYJnXmExkpQ4CrVZP5uv/8I0ldcLCcVDZuDNjaqh1lAh09Kqu7li+Xe3MbNsjeOSIislhM6DSmdGlg2zbg1CnZLvDkidoRWS5FkfVrXl5SjWvXTjZ5rFoFXL8ujaD58qkdZSJERwNjxsjZfdasMo6Es+WIiKwC79BplK+vdE46OQHbt2tkcbuFuHdPRsUsXCjHq7lyAR07yvy4okXVji6JLl6UIcF+fjKOZMQIja2kICIiU2KFTqM8PYEDB6RCV66cVOwo6V68ANatk61WuXJJvlOihFRDr10DJk3SaTKnKNK14eEhnTWHDkmVjskcEZFVYUKnYcWLy3amHDnkFG35crUj0pfYWEmKvbwkiWvRArh7F5g1S2bIrVgB1Kuno7tx77p3TxodevWSOSqnTnG2HBGRleKP8Rrn5ATs2yfjw9q1A3bvloSEY8TipygyYmTFiter1fLkkePUTp2kKmcRNmyQcSQpUkgLbuPGakdEREQq4h06nVAUYNEiqTblySMjxapWVTsqbVAUuf+/dq0kcpcvS1Nny5ayY7ViRY1vcUiMZ8+A/v2BP/6Q8+MFC9jBSkRETOj05tw5oFs34MgRoGdPufuVKZPaUZlfdLSsTNuwQX5dvw44Osqxaps2QM2aFniN7MgROVq9exf49Vf5QmAHKxERgQmdLhkMskt02DDAzk7uwHfvDqRJo3ZkphUWJk0M69fLEOanT4HcuWV2bvPmMkMudWqVgzSF6GhgwgRg4kTpkFm6VBb/EhERvcSETsfu3AFGjpTxGzlyAN9/L3ftLOV+ncEg9+F27ZJfhw5Jt6q7uyRwzZpJc6dFF6kuXJCqnJ+fZO7Dhllg6ZGIiJKLCZ0FuHgR+OknKdw4OgK9e0vFLlcutSNLHEWR+29xCdyePVKFs7cHatQAateWps4CBdSO1AzixpEMGiSXJv/6S2bZEBERxYMJnQW5dg2YNk2aJ54/l3tkLVoAX3yhzcHEERHAiROyqerIEXm8e1cKUBUqSAJXu7acMqZKpXa0ZnT3rtyP27JFRpJMm2Y5ZVciIjIJJnQWKDRUuj1Xr5YqV2wsUKmSHFPWrAmULGn+U7uHD2Urw9mzwJkzwPHjQEAAEBMjuUq5cpLEVaoEVK8uVTmrtH69lFdTpAD+/BNo1EjtiIiISAeY0Fm4x49lTNmaNcDOnbKEPn16mcfm7g64ucljsWIy/SKp4z1iY4EHD2Tu240b8uvCBUnggoKA+/fl7VKlko0MZctKAlexIuDqymthCAsDBgyQcSTNmsk4ks8+UzsqIiLSCbMndIqiICwsLN7/FhUVhaioqFe/DwsLg4uLC27cuMGEzgiiomSZwLFjrxOt8+eliRKQjQnZssnxbMaMQLp08ittWvnv0dFSUYuOluaE0FC54/bkiSwtiHseQBK3AgVk20Xx4oCzszwWKmRlx6cJcfy4VOXu3wemTJEmCIvu9CAiosSwt7eHzSe+L5g9oYuruhERERHRpyXkpFLTFbo7d+6gXLlyCAoKQq5ktGx6enrC19c3ye9vjOdI7vuHhoYiT548ya5Wqv1xGOM5jPG5UP3juHQJ6N4dMadOIeWIEcDAgYk+d9bK14QxnkMLXxPGiEMLn0uL+PNhhOfQyteEMZ5DC18TxohDC59Lvf75SEiFzuw3l2xsbBL9SbS3t0/WF6GtrW2yj2yT+xzGiAEAHBwcVI1DC5/LOMn5XKj2cSiKTIX+/nsgTx60yp8fq378MVlxqP01YYzn0MLXhDHi0MLnMo4u/3yY4DnU/powxnNo4WvCGHFo4XMZxxL+fLzLUjZcfpSXl5fqz2GMGIxBCx+HFj4Xqnwcd+9K16qXF9C5M+Dnh+rff5/sOJJLC/9PtfA1AWjj49DC50IrHwc/F8aLwRi08HFo4XOh1Y9D012uN2/efFUazZ07t9rhqIodv6/p8nOxbp00PqRMKeNIGjZM9lPq8vNgIvxcvMbPheDn4TV+Ll6z5M+Fpit0dnZ2bz1aMzs7O4wZM4afC+jscxEWBnTtKhOeq1YFAgONkswBOvs8mBg/F6/xcyH4eXiNn4vXLPlzoekKnSVn0mQFDh2SESQPHgAzZwJdunAcCRERmYSmK3REuhQdDYwcCVSrJkP9AgKkSsdkjoiITMTa5/MTGdf580D79pLEjR8PDBnCNRhERGRyrNARGYOiAN7eQOnSwLNnwJEjwIgRTOaIiMgsmNARJdedO9Lo0Lu33JPz85NltURERGbChE7DJk+eDE9PT9jb2yNbtmxo3rw5Lly4oHZYmjB58mTY2Nigf//+6gaybh3g5gb4+wNbtkiVLl06k7/srVu30L59e2TJkgXp0qVDqVKlcPLkSZO/rpbExMRg5MiRKFCgANKmTYuCBQti/PjxiI2NVTs0k9u/fz+aNGkCJycn2NjYYP369W/9d0VRMHbsWDg5OSFt2rSoUaMGzp49q06wJvaxz0V0dDSGDBkCNzc3pE+fHk5OTujYsSNu376tXsAm9Kmvizf16NEDNjY2+PXXX80Wn7kk5PNw7tw5NG3aFI6OjrC3t0eFChVw/fp18wdrREzoNGzfvn3w8vLC0aNHsXPnTsTExKBu3boIDw9XOzRV+fr6Yv78+XB3d1cviDfHkVSrJuNIGjQwy0s/efIElStXRqpUqbB161YEBQVh+vTpyJgxo1leXyumTJmCefPmYc6cOTh37hymTp2KadOmYfbs2WqHZnLh4eEoWbIk5syZE+9/nzp1KmbMmIE5c+bA19cXOXLkQJ06dT64dlHPPva5iIiIgJ+fH0aNGgU/Pz+sXbsWFy9eRNOmTVWI1PQ+9XURZ/369Th27BicnJzMFJl5ferzcOXKFVSpUgXOzs7w8fFBQEAARo0ahTRp0pg5UiNTNCwkJEQBoISEhKgdiibcv39fAaDs27dP7VBUExYWphQpUkTZuXOnUr16daVfv37mD+LgQUUpUEBRMmRQlD//VJTYWLO+/JAhQ5QqVaqY9TW1qFGjRkrXrl3f+nctWrRQ2rdvr1JE6gCgrFu37tXvY2NjlRw5cig//fTTq38XGRmpODo6KvPmzVMhQvN593MRn+PHjysAlGvXrpknKJV86HNx8+ZNJVeuXMqZM2eUfPnyKb/88ovZYzOn+D4PX3/9tUX+PcEKnY6EhIQAADJnzqxyJOrx8vJCo0aNULt2bfO/+IsX0uhQrRrg5CSdrCrMltu4cSPKli2Lli1bIlu2bPDw8MCCBQvMGoMWVKlSBbt378bFixcBAAEBATh48CAaGmlws14FBwfj7t27qFu37qt/Z2dnh+rVq+Pw4cMqRqYNISEhsLGxsbqKNgDExsaiQ4cOGDx4MFxdXdUORxWxsbHYvHkzihYtinr16iFbtmwoX778R4+n9YIJnU4oioKBAweiSpUqKFGihNrhqGLFihXw8/PD5MmTzf/i584BFSsCU6cCEyYA+/YBBQuaPw4AV69exdy5c1GkSBFs374dPXv2RN++fbFkyRJV4lHLkCFD0KZNGzg7OyNVqlTw8PBA//790aZNG7VDU9Xdu3cBANmzZ3/r32fPnv3Vf7NWkZGRGDp0KNq2bWuVw+qnTJmClClTom/fvmqHopr79+/j2bNn+Omnn1C/fn3s2LEDX3zxBVq0aIF9+/apHV6ycKaCTvTu3RunT5/GwYMH1Q5FFTdu3EC/fv2wY8cO895ziBtHMngwkD8/cPQoUKaM+V4/HrGxsShbtiwmTZoEAPDw8MDZs2cxd+5cdOzYUdXYzGnlypX466+/sHz5cri6usLf3x/9+/eHk5MTOnXqpHZ4qrN5p3KsKMp7/86aREdHo3Xr1oiNjcX//vc/tcMxu5MnT2LmzJnw8/Oz6q+DuKapZs2aYcCAAQCAUqVK4fDhw5g3bx6qV6+uZnjJwgqdDvTp0wcbN27E3r17kTt3brXDUcXJkydx//59lClTBilTpkTKlCmxb98+zJo1CylTpoTBYDD+i96+LY0OffoA3boBJ0+qnswBQM6cOeHi4vLWvytevLjuO7QSa/DgwRg6dChat24NNzc3dOjQAQMGDFCngqshOXLkAID3qnH3799/r2pnLaKjo9GqVSsEBwdj586dVlmdO3DgAO7fv4+8efO++jv02rVrGDRoEPLnz692eGaTNWtWpEyZ0iL/DmWFTsMURUGfPn2wbt06+Pj4oECBAmqHpJpatWohMDDwrX/XpUsXODs7Y8iQIbC1tTXuC65ZA3z7LZA6NbB1K1C/vnGfPxkqV6783viaixcvIl++fCpFpI6IiAikSPH2z6S2trZWMbbkYwoUKIAcOXJg586d8PDwAAC8ePEC+/btw5QpU1SOzvzikrlLly5h7969yJIli9ohqaJDhw7v3T2uV68eOnTogC5duqgUlfmlTp0anp6eFvl3qCYTOm9vb3h7e5um6qIjXl5eWL58OTZs2AB7e/tXP3E7Ojoibdq0KkdnXvb29u/dHUyfPj2yZMli3DuFoaFA377A4sUykuS334CsWY33/EYwYMAAVKpUCZMmTUKrVq1w/PhxzJ8/H/Pnz1c7NLNq0qQJJk6ciLx588LV1RWnTp3CjBkz0LVrV7VDM7lnz57h8uXLr34fHBwMf39/ZM6cGXnz5kX//v0xadIkFClSBEWKFMGkSZOQLl06tG3bVsWoTeNjnwsnJyd89dVX8PPzw7///guDwfDq79HMmTMjderUaoVtEp/6ung3mU2VKhVy5MiBYsWKmTtUk/rU52Hw4MH4+uuvUa1aNdSsWRPbtm3Dpk2b4OPjo17QxqByl+1HWfvYEgDx/lq4cKHaoWmC0ceWHDigKPnzK4q9vaIsXGj2cSSJsWnTJqVEiRKKnZ2d4uzsrMyfP1/tkMwuNDRU6devn5I3b14lTZo0SsGCBZURI0YoUVFRaodmcnv37o3374ZOnTopiiKjS8aMGaPkyJFDsbOzU6pVq6YEBgaqG7SJfOxzERwc/MG/R/fu3at26Eb3qa+Ld1nq2JKEfB7++OMPpXDhwkqaNGmUkiVLKuvXr1cvYCOxURRFMXnWmEShoaFwdHRESEiIVd55IDN58QIYOxaYMkU6WZcuBaz4eJuIiPRHk0euRGZz7hzQvj1w+rSMIxkyBDD2fTwiIiITY5crWSdFAWbPBkqXBiIiZBzJ8OFM5oiISJeY0JH1uX1bulb79gW++UYz40iIiIiSikeuZF1WrwZ69ADs7IBt24B69dSOiIiIKNlYoSPrEBoKdO4MtGwJ1KwJBAYymSMiIovBCh1ZvgMHgI4dgUePgEWL5J+tePUNERFZHlboyHK9eAEMGwZUrw7kzg0EBACdOjGZIyIii8MKHVmmoCAZR3LmDDBpEjB4MDtYiYjIYrFCR5YlNhaYNUu6ViMjgWPHgKFDmcwREZFFY0JHluPWLRlH0q8f8O23Mo7k5XJyIiIiS8YjV7IMq1dLEpcmDbB9O1C3rtoRERERmQ0rdKRvISHS6NCyJVCrlowjYTJHRERWhhU60q8DB4AOHYDHj4HFi+Wf2cFKRERWiBU60p8XL6TRoXp1IE8e4PRpzpYjIiKrxgod6cvZszKO5OxZjiMhIiJ6iRU60ofYWGDmTBlHEhXFcSRERERvYEJH2hc3jqR/f6BHD44jISIieocmj1y9vb3h7e0Ng8GgdiiktlWrgJ49gbRpgR07gDp11I6IiIhIc2wURVHUDuJDQkND4ejoiJCQEDg4OKgdDplTSAjQuzfw118ykmTePCBzZrWjIiIi0iRNVujIyu3fLyNInj4FliyRJgh2sBIREX0Q79CRdkRFAUOGADVqAPnzyzgSzpYjIiL6JFboSBvOngXatQOCgoCffgIGDWIHKxERUQKxQkfqio0Ffv1VxpFERwPHjwM//MBkjoiIKBGY0JF6bt0C6tUDBgyQTtYTJ4BSpdSOioiISHd45Erq4DgSIiIio2GFjswrJEQaHb7+WpK4wEAmc0RERMnECh2Zz759QMeOMo5k6VJpgmAHKxERUbKxQkemFxUljQ41awIFCsg4Es6WIyIiMhpW6Mi0zpyR5C0oCJgyBRg4kB2sRERERsYKHZlGbCzwyy9A2bJATIyMIxk8mMkcERGRCTChI+O7eROoW1eqcb16cRwJERGRifHIlYxrxQpJ4tKnB3buBGrXVjsiIiIii8cKHRnH06fStdqmjQwLPn2ayRwREZGZsEJHyefjI+NIQkOBv/4C2rZlBysREZEZsUJHSRcVJY0On38OFCwoVTnOliMiIjI7VugoaQIDZRzJuXMcR0JERKQyTVbovL294eLiAk9PT7VDoXfFxgIzZsg4EoMB8PXlOBIiIiKV2SiKoqgdxIeEhobC0dERISEhcHBwUDscunED6NwZ2LMHGDAAmDQJSJNG7aiIiIisHo9cKWHeHEeyaxdQq5baEREREdFLmjxyJQ15cxxJ/fpyd47JHBERkaawQkcftncv0KmTjCNZtkzGkRAREZHmsEJH74uKAr7/XipxhQrJOBImc0RERJrFCh29LTBQjlgvXACmTZPmhxTM+4mIiLSM36lJxMYC06fLOBJFkXEkgwYxmSMiItIBfrcmGUdSu7Ycs/buLcmcu7vaUREREVEC8cjV2v39t4wjsbcHdu+WNV5ERESkK6zQWasnT6TRoW1boGFDaXxgMkdERKRLrNBZoz17ZBxJWBjHkRAREVkAVuisSWSkNDrUqgUUKcJxJERERBaCFTprcfo00L69jCP5+WeOIyEiIrIg/I5u6WJjJYHz9JTfcxwJERGRxeF3dUt2/bocr/7wA9CnD3D8OMeREBERWSAeuVqq5cuB774DHBxkHEnNmmpHRERERCbCCp2lefIEaNNG1nc1aiR355jMERERWTRW6CzJ7t1A587As2cyMLh1a7UjIiIiIjPQZIXO29sbLi4u8Iy7yE8fFxkJDBwo67uKFpWqHJM5IiIiq2GjKIqidhAfEhoaCkdHR4SEhMDBwUHtcLQpIEDGkVy6BEyeDPTrxw5WIiIiK8Pv/HoVN46kXDlJ4E6c4Gw5IiIiK8Xv/nr05jiSvn1lHEmJEmpHRURERCphU4SeKIqMI/HyknEke/YANWqoHRURERGpjBU6vYgbR9K+PdC4sTQ+MJkjIiIisEKnD7t3A506AeHhwIoVwNdfqx0RERERaQgrdFoWGSmNDrVrA8WKAYGBTOaIiIjoPazQaVVAgGx7uHwZmDGD40iIiIjog5ghaI3BAEydCnh6Ara2HEdCREREn8QsQUuuXQM+/xwYOhTo35/jSIiIiChBeOSqBYoC/PUX0Ls3kDEjsHcvUL262lERERGRTrBCp7bHj6XRoWNHoGlTGUfCZI6IiIgSgRU6Ne3aJeNInj8HVq4EWrVSOyIiIiLSIVbo1PD8udyRq1MHcHGRcSRM5oiIiCiJTJrQTZw4EZUqVUK6dOmQMWNGU76Ufvj7A2XLAvPmAb/8AmzfDuTKpXZUREREpGMmTehevHiBli1bolevXqZ8GX2IG0dSrhyQKpWMI+nfn+NIiIiIKNlMeodu3LhxAIBFixaZ8mW079o1aXo4cAAYPBgYPx6ws1M7KiIiIrIQmmqKiIqKQlRU1Kvfh4aGqhiNEXAcCREREZmBps77Jk+eDEdHx1e/8uTJo3ZISffmOJJmzTiOhIiIiEwm0Qnd2LFjYWNj89FfJ06cSFIww4YNQ0hIyKtfN27cSNLzqG7nTsDNTcaSrFoFLFkCODqqHRURERFZqEQfufbu3RutW7f+6Nvkz58/ScHY2dnBTs93y54/l7Vds2bJSJKFC9nBSkRERCaX6IQua9asyJo1qyli0bdTp4D27YErV4CZM+XeHDtYiYiIyAxM2hRx/fp1PH78GNevX4fBYIC/vz8AoHDhwsiQIYMpX9p8DAZg2jRg9GjA1RU4eVIeiYiIiMzERlEUxVRP3rlzZyxevPi9f793717UqFHjk+8fGhoKR0dHhISEwMHBwQQRJtN//0nTw8GDwA8/yDiS1KnVjoqIiIisjEkTuuTSbEKnKMDSpXKsmjmzND1Uq6Z2VERERGSleMkrsR49kr2rnToBX3wBBAQwmSMiIiJVaWqwsObt2AF07gxERso4kpYt1Y6IiIiIiBW6BHn+HOjbF6hXDyhRAggMZDJHREREmsEK3af4+ck4kuBgjiMhIiIiTWJm8iEGAzB5MlChAmBnJ+NI+vZlMkdERESaw+wkPsHBQI0awIgRwKBBwLFjgIuL2lERERERxYtHrm9SFBlB0qePjCPZtw+oWlXtqIiIiIg+ihW6OI8eSaND585AixbA6dNM5oiIiEgXWKEDgO3bgS5dgKgoYPVq4Msv1Y6IiIiIKMGsu0IXESHHq/XrA+7uMo6EyRwRERHpjPVW6Pz8gHbtZB/r7NmAlxdgY6N2VERERESJZn0VurhxJOXLA2nTSmLXuzeTOSIiItIt60ro3hxHMngwcPQoULy42lERERERJYsmEzpvb2+4uLjA09PTOE+oKMCiRUDJksDNm8D+/cCkSUDq1MZ5fiIiIiIV2SiKoqgdxIeEhobC0dERISEhcHBwSNqTPHwI9OgBrF0rI0lmzgSS+lxEREREGmTZTRHbtsk4khcvOI6EiIiILJYmj1yTLSJCGh0aNJBjVo4jISIiIgtmeRW6kyeB9u05joSIiIishuVU6AwGYOJEoEIFIF06jiMhIiIiq2EZFbqrV4EOHWQMydChwJgx7GAlIiIiq6HvhC5uHEnfvsBnn8k4ksqV1Y6KiIiIyKz0e+T68KE0OnTtCrRsCfj7M5kjIiIiq6TPCt3WrZLIRUcDa9YALVqoHRERERGRavRVoYuIkK7Vhg2BUqVkHAmTOSIiIrJy+qnQnTwJtGsHXLsGeHsDvXqxg5WIiIgIeqnQTZsm40gyZABOnQK++47JHBEREdFL2k7ogoPlceJEYMgQ4PBhwNlZ3ZiIiIiINEbbR66bNsnjtm1A3brqxkJERESkUTaKoihqB/EhoU+ewDFzZoSEhMDBwUHtcIiIiIg0SdtHrra2akdAREREpHnaTuiIiIiI6JOY0BERERHpnCYTOm9vb7i4uMDT01PtUIiIiIg0T9tNEaGhcHR0ZFMEERER0UdoskJHRERERAnHhI6IiIhI55jQEREREekcEzoiIiIinWNCR0RERKRzTOiIiIiIdI4JHREREZHOMaEjIiIi0jkmdEREREQ6x4SOiIiISOeY0BERERHpHBM6IiIiIp1jQkdERESkc0zoiIiIiHSOCR0RERGRzjGhIyIiItI5JnREREREOmejKIqidhAfoigKwsLCYG9vDxsbG7XDISIiItIkTSd0RERERPRpPHIlIiIi0jkmdEREREQ6x4SOiIiISOeY0BERERHpHBM6IiIiIp1jQkdERESkc0zoiIiIiHTu//T4hJ7vrJZIAAAAAElFTkSuQmCC\n",
"text/plain": [
"Graphics object consisting of 3 graphics primitives"
]
},
"execution_count": 115,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"r_range = r,0,17\n",
"\n",
"example_plot = (\n",
" plot(example_upperbound_1, (r,3,17))\n",
" + plot(example_upperbound_2, (r,0,17))\n",
" + plot(example_lowerbound_1, r_range, rgbcolor=\"red\")\n",
")\n",
"example_plot.ymin(-1.5)\n",
"example_plot.ymax(3)\n",
"example_plot"
]
},
{
"cell_type": "markdown",
"id": "7a7cddc2",
"metadata": {},
"source": [
"# Finding intersection points"
]
},
{
"cell_type": "code",
"execution_count": 132,
"id": "c36db5ce",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html>\\(\\displaystyle \\frac{R q^{2}}{2 \\, {\\mathrm{ch}_2^B(v)}} = r^{2}\\)</html>"
],
"text/latex": [
"$\\displaystyle \\frac{R q^{2}}{2 \\, {\\mathrm{ch}_2^B(v)}} = r^{2}$"
],
"text/plain": [
"1/2*R*q^2/twisted_v2 == r^2"
]
},
"execution_count": 132,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(\n",
" ( bgmlv2_d_upperbound_terms.all == radius_condition_d_bound.rhs() )\n",
" .subtract_from_both_sides(B^2*r/2 + B*q)\n",
" .multiply_both_sides(r * R)\n",
" .divide_both_sides(twisted_v.ch[2])\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 137,
"id": "f712c5fd",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html>\\(\\displaystyle r_{\\mathit{alt}}\\)</html>"
],
"text/latex": [
"$\\displaystyle r_{\\mathit{alt}}$"
],
"text/plain": [
"r_alt"
]
},
"execution_count": 137,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"var(\"r_alt\")"
]
},
{
"cell_type": "code",
"execution_count": 166,
"id": "829e36f9",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html>\\(\\displaystyle \\left[\\left(\\frac{q^{2} - 2 \\, q {\\mathrm{ch}_1^B(v)} + {\\mathrm{ch}_1^B(v)}^{2} + 4 \\, r {\\mathrm{ch}_2^B(v)} + \\sqrt{q^{2} - 2 \\, q {\\mathrm{ch}_1^B(v)} + {\\mathrm{ch}_1^B(v)}^{2} + 8 \\, r {\\mathrm{ch}_2^B(v)}} {\\left(q - {\\mathrm{ch}_1^B(v)}\\right)}}{4 \\, {\\mathrm{ch}_2^B(v)}}, 1\\right), \\left(\\frac{q^{2} - 2 \\, q {\\mathrm{ch}_1^B(v)} + {\\mathrm{ch}_1^B(v)}^{2} + 4 \\, r {\\mathrm{ch}_2^B(v)} - \\sqrt{q^{2} - 2 \\, q {\\mathrm{ch}_1^B(v)} + {\\mathrm{ch}_1^B(v)}^{2} + 8 \\, r {\\mathrm{ch}_2^B(v)}} {\\left(q - {\\mathrm{ch}_1^B(v)}\\right)}}{4 \\, {\\mathrm{ch}_2^B(v)}}, 1\\right)\\right]\\)</html>"
],
"text/latex": [
"$\\displaystyle \\left[\\left(\\frac{q^{2} - 2 \\, q {\\mathrm{ch}_1^B(v)} + {\\mathrm{ch}_1^B(v)}^{2} + 4 \\, r {\\mathrm{ch}_2^B(v)} + \\sqrt{q^{2} - 2 \\, q {\\mathrm{ch}_1^B(v)} + {\\mathrm{ch}_1^B(v)}^{2} + 8 \\, r {\\mathrm{ch}_2^B(v)}} {\\left(q - {\\mathrm{ch}_1^B(v)}\\right)}}{4 \\, {\\mathrm{ch}_2^B(v)}}, 1\\right), \\left(\\frac{q^{2} - 2 \\, q {\\mathrm{ch}_1^B(v)} + {\\mathrm{ch}_1^B(v)}^{2} + 4 \\, r {\\mathrm{ch}_2^B(v)} - \\sqrt{q^{2} - 2 \\, q {\\mathrm{ch}_1^B(v)} + {\\mathrm{ch}_1^B(v)}^{2} + 8 \\, r {\\mathrm{ch}_2^B(v)}} {\\left(q - {\\mathrm{ch}_1^B(v)}\\right)}}{4 \\, {\\mathrm{ch}_2^B(v)}}, 1\\right)\\right]$"
],
"text/plain": [
"[(1/4*(q^2 - 2*q*twisted_v1 + twisted_v1^2 + 4*r*twisted_v2 + sqrt(q^2 - 2*q*twisted_v1 + twisted_v1^2 + 8*r*twisted_v2)*(q - twisted_v1))/twisted_v2,\n",
" 1),\n",
" (1/4*(q^2 - 2*q*twisted_v1 + twisted_v1^2 + 4*r*twisted_v2 - sqrt(q^2 - 2*q*twisted_v1 + twisted_v1^2 + 8*r*twisted_v2)*(q - twisted_v1))/twisted_v2,\n",
" 1)]"
]
},
"execution_count": 166,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(\n",
" ( bgmlv3_d_upperbound_terms.all == radius_condition_d_bound.rhs() )\n",
" .subtract_from_both_sides(B^2*r/2 + B*q + r*twisted_v.ch[2]/R)\n",
" .subs(r == r_alt + R)\n",
" .multiply_both_sides(R*r_alt) # assumes r>R\n",
" .expand()\n",
" .subs(r_alt == r - R)\n",
" .expand()\n",
").lhs().poly(r).roots()\n"
]
},
{
"cell_type": "markdown",
"id": "0597549e",
"metadata": {},
"source": [
"## rational B, involving epsilon"
]
},
{
"cell_type": "code",
"execution_count": 184,
"id": "7b6ac93e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html>\\(\\displaystyle \\left[\\left(-\\frac{R {\\varepsilon} + \\sqrt{R^{2} {\\varepsilon}^{2} + 2 \\, R q^{2} {\\mathrm{ch}_2^B(v)}}}{2 \\, {\\mathrm{ch}_2^B(v)}}, 1\\right), \\left(-\\frac{R {\\varepsilon} - \\sqrt{R^{2} {\\varepsilon}^{2} + 2 \\, R q^{2} {\\mathrm{ch}_2^B(v)}}}{2 \\, {\\mathrm{ch}_2^B(v)}}, 1\\right)\\right]\\)</html>"
],
"text/latex": [
"$\\displaystyle \\left[\\left(-\\frac{R {\\varepsilon} + \\sqrt{R^{2} {\\varepsilon}^{2} + 2 \\, R q^{2} {\\mathrm{ch}_2^B(v)}}}{2 \\, {\\mathrm{ch}_2^B(v)}}, 1\\right), \\left(-\\frac{R {\\varepsilon} - \\sqrt{R^{2} {\\varepsilon}^{2} + 2 \\, R q^{2} {\\mathrm{ch}_2^B(v)}}}{2 \\, {\\mathrm{ch}_2^B(v)}}, 1\\right)\\right]$"
],
"text/plain": [
"[(-1/2*(R*epsilon + sqrt(R^2*epsilon^2 + 2*R*q^2*twisted_v2))/twisted_v2, 1),\n",
" (-1/2*(R*epsilon - sqrt(R^2*epsilon^2 + 2*R*q^2*twisted_v2))/twisted_v2, 1)]"
]
},
"execution_count": 184,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"var(\"epsilon\", latex_name=r\"\\varepsilon\")\n",
"(\n",
" ( bgmlv2_d_upperbound_terms.all - radius_condition_d_bound.rhs() - epsilon )\n",
" .__mul__(r * R)\n",
" .expand()\n",
" .poly(r)\n",
" .roots(r)\n",
"\n",
")"
]
}
],
"metadata": {
"kernelspec": {
"language": "sage",
"name": "sagemath"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
}
},
"nbformat": 4,
"nbformat_minor": 5
}