diff --git a/README.md b/README.md index 118cb86..7530245 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Sept 2017 – June 2023 - GPA: 8.0/10 — Academic Excellence Scholarship; Five Good Student Award (university-wide recognition for academic performance, personal conduct, and community involvement) -- Thesis: Survival2D — Designed and implemented a high-performance multiplayer battle royale game server in Java; applied finite state machines to implement autonomous game bots +- Thesis: Survival2D — Built a 2D multiplayer Battle Royale game server in Java (Netty/WebSocket) with authoritative server architecture, QuadTree-based collision detection, FlatBuffers serialization (76% packet reduction vs JSON), behavior tree AI bots with A* pathfinding, and server-side anti-cheat via visibility culling @@ -41,7 +41,7 @@ Joined VNG as a Game Programming Fresher and progressed through Associate Softwa Sept 2021 – present -University thesis project — a 2D survival battle royale game server written in Java. Implemented a real-time multiplayer game loop with player synchronization, collision detection, match lifecycle management, and finite state machine-based autonomous bots. +University thesis — a 2D multiplayer Battle Royale game server in Java (Netty) over WebSocket. Designed an authoritative server with client-side prediction, QuadTree spatial indexing for efficient collision detection, and procedural map generation. Applied FlatBuffers serialization to reduce packet sizes by 76% compared to JSON. Implemented AI bots using behavior trees with A* pathfinding, and server-side anti-cheat through visibility culling to prevent ESP exploits. diff --git a/index.html b/index.html index 57ca5e1..1dd761f 100644 --- a/index.html +++ b/index.html @@ -57,7 +57,7 @@

GPA: 8.0/10 — Academic Excellence Scholarship; Five Good Student Award (university-wide recognition for academic performance, personal conduct, and community involvement)

  • -

    Thesis: Survival2D — Designed and implemented a high-performance multiplayer battle royale game server in Java; applied finite state machines to implement autonomous game bots

    +

    Thesis: Survival2D — Built a 2D multiplayer Battle Royale game server in Java (Netty/WebSocket) with authoritative server architecture, QuadTree-based collision detection, FlatBuffers serialization (76% packet reduction vs JSON), behavior tree AI bots with A* pathfinding, and server-side anti-cheat via visibility culling

  • Experience

    @@ -81,7 +81,7 @@

    Projects

    Survival 2D Server

    Sept 2021 – present

    -

    University thesis project — a 2D survival battle royale game server written in Java. Implemented a real-time multiplayer game loop with player synchronization, collision detection, match lifecycle management, and finite state machine-based autonomous bots.

    +

    University thesis — a 2D multiplayer Battle Royale game server in Java (Netty) over WebSocket. Designed an authoritative server with client-side prediction, QuadTree spatial indexing for efficient collision detection, and procedural map generation. Applied FlatBuffers serialization to reduce packet sizes by 76% compared to JSON. Implemented AI bots using behavior trees with A* pathfinding, and server-side anti-cheat through visibility culling to prevent ESP exploits.

    VN GeoGuessr

    A location-guessing game for Vietnam built with Leaflet.js, Mapillary, and OpenStreetMap, featuring street-level panoramic imagery and interactive map-based scoring.

    Store Scraper Bot

    diff --git a/miti99.pdf b/miti99.pdf index 9aa6a27..ef2344a 100644 --- a/miti99.pdf +++ b/miti99.pdf @@ -5,7 +5,7 @@ << /Type /Pages /Count 2 - /Kids [181 0 R 185 0 R] + /Kids [180 0 R 185 0 R] >> endobj @@ -79,18 +79,18 @@ endobj >> /K [11 0 R] /ParentTree << - /Nums [0 132 0 R 1 131 0 R 2 130 0 R 3 129 0 R 4 128 0 R 5 127 0 R 6 126 0 R 7 94 0 R 8 88 0 R 9 86 0 R 10 80 0 R 11 74 0 R 12 65 0 R 13 56 0 R 14 48 0 R 15 9 0 R 16 40 0 R 17 31 0 R 18 10 0 R] + /Nums [0 132 0 R 1 131 0 R 2 130 0 R 3 129 0 R 4 128 0 R 5 127 0 R 6 126 0 R 7 94 0 R 8 88 0 R 9 86 0 R 10 80 0 R 11 74 0 R 12 65 0 R 13 56 0 R 14 9 0 R 15 48 0 R 16 40 0 R 17 31 0 R 18 10 0 R] >> /ParentTreeNextKey 19 >> endobj 9 0 obj -[138 0 R 137 0 R 135 0 R 133 0 R 125 0 R 125 0 R 132 0 R 125 0 R 131 0 R 130 0 R 125 0 R 129 0 R 125 0 R 128 0 R 125 0 R 127 0 R 126 0 R 122 0 R 120 0 R 119 0 R 119 0 R 117 0 R 114 0 R 113 0 R 113 0 R 110 0 R 109 0 R 109 0 R 105 0 R 103 0 R 102 0 R 102 0 R 100 0 R 97 0 R 97 0 R 97 0 R 97 0 R 96 0 R 95 0 R 93 0 R 93 0 R 93 0 R 90 0 R 89 0 R 85 0 R 87 0 R 85 0 R 85 0 R 85 0 R 82 0 R 81 0 R 79 0 R 79 0 R 76 0 R 75 0 R 73 0 R 73 0 R 73 0 R 69 0 R 67 0 R 62 0 R 59 0 R 59 0 R 59 0 R 58 0 R 51 0 R 51 0 R 50 0 R 43 0 R 43 0 R] +[138 0 R 137 0 R 135 0 R 133 0 R 125 0 R 125 0 R 132 0 R 125 0 R 131 0 R 130 0 R 125 0 R 129 0 R 125 0 R 128 0 R 125 0 R 127 0 R 126 0 R 122 0 R 120 0 R 119 0 R 119 0 R 117 0 R 114 0 R 113 0 R 113 0 R 110 0 R 109 0 R 109 0 R 109 0 R 105 0 R 103 0 R 102 0 R 102 0 R 100 0 R 97 0 R 97 0 R 97 0 R 97 0 R 96 0 R 95 0 R 93 0 R 93 0 R 93 0 R 90 0 R 89 0 R 85 0 R 87 0 R 85 0 R 85 0 R 85 0 R 82 0 R 81 0 R 79 0 R 79 0 R 76 0 R 75 0 R 73 0 R 73 0 R 73 0 R 69 0 R 67 0 R 62 0 R 59 0 R 59 0 R 59 0 R 59 0 R 59 0 R 58 0 R 51 0 R 51 0 R] endobj 10 0 obj -[42 0 R 37 0 R 34 0 R 34 0 R 33 0 R 26 0 R 26 0 R 26 0 R 25 0 R 23 0 R 22 0 R 21 0 R 20 0 R 19 0 R 18 0 R 17 0 R 16 0 R 15 0 R 14 0 R 13 0 R 12 0 R] +[50 0 R 43 0 R 43 0 R 42 0 R 37 0 R 34 0 R 34 0 R 33 0 R 26 0 R 26 0 R 26 0 R 25 0 R 23 0 R 22 0 R 21 0 R 20 0 R 19 0 R 18 0 R 17 0 R 16 0 R 15 0 R 14 0 R 13 0 R 12 0 R] endobj 11 0 obj @@ -107,7 +107,7 @@ endobj /Type /StructElem /S /P /P 11 0 R - /K [13 0 R 20] + /K [13 0 R 23] /Pg 185 0 R >> endobj @@ -117,7 +117,7 @@ endobj /Type /StructElem /S /Strong /P 12 0 R - /K [19] + /K [22] /Pg 185 0 R >> endobj @@ -127,7 +127,7 @@ endobj /Type /StructElem /S /P /P 11 0 R - /K [15 0 R 18] + /K [15 0 R 21] /Pg 185 0 R >> endobj @@ -137,7 +137,7 @@ endobj /Type /StructElem /S /Strong /P 14 0 R - /K [17] + /K [20] /Pg 185 0 R >> endobj @@ -147,7 +147,7 @@ endobj /Type /StructElem /S /P /P 11 0 R - /K [17 0 R 16] + /K [17 0 R 19] /Pg 185 0 R >> endobj @@ -157,7 +157,7 @@ endobj /Type /StructElem /S /Strong /P 16 0 R - /K [15] + /K [18] /Pg 185 0 R >> endobj @@ -167,7 +167,7 @@ endobj /Type /StructElem /S /P /P 11 0 R - /K [19 0 R 14] + /K [19 0 R 17] /Pg 185 0 R >> endobj @@ -177,7 +177,7 @@ endobj /Type /StructElem /S /Strong /P 18 0 R - /K [13] + /K [16] /Pg 185 0 R >> endobj @@ -187,7 +187,7 @@ endobj /Type /StructElem /S /P /P 11 0 R - /K [21 0 R 12] + /K [21 0 R 15] /Pg 185 0 R >> endobj @@ -197,7 +197,7 @@ endobj /Type /StructElem /S /Strong /P 20 0 R - /K [11] + /K [14] /Pg 185 0 R >> endobj @@ -207,7 +207,7 @@ endobj /Type /StructElem /S /P /P 11 0 R - /K [23 0 R 10] + /K [23 0 R 13] /Pg 185 0 R >> endobj @@ -217,7 +217,7 @@ endobj /Type /StructElem /S /Strong /P 22 0 R - /K [9] + /K [12] /Pg 185 0 R >> endobj @@ -237,7 +237,7 @@ endobj /Type /StructElem /S /P /P 24 0 R - /K [8] + /K [11] /Pg 185 0 R >> endobj @@ -251,7 +251,7 @@ endobj /O /Layout /Placement /Block >>] - /K [5 6 7] + /K [8 9 10] /Pg 185 0 R >> endobj @@ -323,7 +323,7 @@ endobj /O /Layout /TextDecorationType /Underline >>] - /K [4] + /K [7] /Pg 185 0 R >> endobj @@ -337,7 +337,7 @@ endobj /O /Layout /Placement /Block >>] - /K [2 3] + /K [5 6] /Pg 185 0 R >> endobj @@ -365,7 +365,7 @@ endobj /Type /StructElem /S /P /P 36 0 R - /K [1] + /K [4] /Pg 185 0 R >> endobj @@ -419,7 +419,7 @@ endobj /O /Layout /TextDecorationType /Underline >>] - /K [0] + /K [3] /Pg 185 0 R >> endobj @@ -433,8 +433,8 @@ endobj /O /Layout /Placement /Block >>] - /K [68 69] - /Pg 181 0 R + /K [1 2] + /Pg 185 0 R >> endobj @@ -481,8 +481,8 @@ endobj /P 47 0 R /K [<< /Type /OBJR - /Pg 181 0 R - /Obj 180 0 R + /Pg 185 0 R + /Obj 182 0 R >> 49 0 R] >> endobj @@ -505,8 +505,8 @@ endobj /O /Layout /TextDecorationType /Underline >>] - /K [67] - /Pg 181 0 R + /K [0] + /Pg 185 0 R >> endobj @@ -519,8 +519,8 @@ endobj /O /Layout /Placement /Block >>] - /K [65 66] - /Pg 181 0 R + /K [68 69] + /Pg 180 0 R >> endobj @@ -567,7 +567,7 @@ endobj /P 55 0 R /K [<< /Type /OBJR - /Pg 181 0 R + /Pg 180 0 R /Obj 179 0 R >> 57 0 R] >> @@ -591,8 +591,8 @@ endobj /O /Layout /TextDecorationType /Underline >>] - /K [64] - /Pg 181 0 R + /K [67] + /Pg 180 0 R >> endobj @@ -605,8 +605,8 @@ endobj /O /Layout /Placement /Block >>] - /K [61 62 63] - /Pg 181 0 R + /K [62 63 64 65 66] + /Pg 180 0 R >> endobj @@ -633,8 +633,8 @@ endobj /Type /StructElem /S /P /P 61 0 R - /K [60] - /Pg 181 0 R + /K [61] + /Pg 180 0 R >> endobj @@ -663,7 +663,7 @@ endobj /P 64 0 R /K [<< /Type /OBJR - /Pg 181 0 R + /Pg 180 0 R /Obj 178 0 R >> 66 0 R] >> @@ -687,8 +687,8 @@ endobj /O /Layout /TextDecorationType /Underline >>] - /K [59] - /Pg 181 0 R + /K [60] + /Pg 180 0 R >> endobj @@ -707,8 +707,8 @@ endobj /Type /StructElem /S /P /P 68 0 R - /K [58] - /Pg 181 0 R + /K [59] + /Pg 180 0 R >> endobj @@ -748,8 +748,8 @@ endobj /Type /StructElem /S /P /P 72 0 R - /K [74 0 R 55 56 57] - /Pg 181 0 R + /K [74 0 R 56 57 58] + /Pg 180 0 R >> endobj @@ -760,7 +760,7 @@ endobj /P 73 0 R /K [<< /Type /OBJR - /Pg 181 0 R + /Pg 180 0 R /Obj 177 0 R >> 75 0 R] >> @@ -775,8 +775,8 @@ endobj /O /Layout /TextDecorationType /Underline >>] - /K [54] - /Pg 181 0 R + /K [55] + /Pg 180 0 R >> endobj @@ -785,8 +785,8 @@ endobj /Type /StructElem /S /Lbl /P 71 0 R - /K [53] - /Pg 181 0 R + /K [54] + /Pg 180 0 R >> endobj @@ -813,8 +813,8 @@ endobj /Type /StructElem /S /P /P 78 0 R - /K [80 0 R 51 52] - /Pg 181 0 R + /K [80 0 R 52 53] + /Pg 180 0 R >> endobj @@ -825,7 +825,7 @@ endobj /P 79 0 R /K [<< /Type /OBJR - /Pg 181 0 R + /Pg 180 0 R /Obj 176 0 R >> 81 0 R] >> @@ -840,8 +840,8 @@ endobj /O /Layout /TextDecorationType /Underline >>] - /K [50] - /Pg 181 0 R + /K [51] + /Pg 180 0 R >> endobj @@ -850,8 +850,8 @@ endobj /Type /StructElem /S /Lbl /P 77 0 R - /K [49] - /Pg 181 0 R + /K [50] + /Pg 180 0 R >> endobj @@ -878,8 +878,8 @@ endobj /Type /StructElem /S /P /P 84 0 R - /K [88 0 R 44 86 0 R 46 47 48] - /Pg 181 0 R + /K [88 0 R 45 86 0 R 47 48 49] + /Pg 180 0 R >> endobj @@ -890,7 +890,7 @@ endobj /P 85 0 R /K [<< /Type /OBJR - /Pg 181 0 R + /Pg 180 0 R /Obj 175 0 R >> 87 0 R] >> @@ -905,8 +905,8 @@ endobj /O /Layout /TextDecorationType /Underline >>] - /K [45] - /Pg 181 0 R + /K [46] + /Pg 180 0 R >> endobj @@ -917,7 +917,7 @@ endobj /P 85 0 R /K [<< /Type /OBJR - /Pg 181 0 R + /Pg 180 0 R /Obj 174 0 R >> 89 0 R] >> @@ -932,8 +932,8 @@ endobj /O /Layout /TextDecorationType /Underline >>] - /K [43] - /Pg 181 0 R + /K [44] + /Pg 180 0 R >> endobj @@ -942,8 +942,8 @@ endobj /Type /StructElem /S /Lbl /P 83 0 R - /K [42] - /Pg 181 0 R + /K [43] + /Pg 180 0 R >> endobj @@ -970,8 +970,8 @@ endobj /Type /StructElem /S /P /P 92 0 R - /K [94 0 R 39 40 41] - /Pg 181 0 R + /K [94 0 R 40 41 42] + /Pg 180 0 R >> endobj @@ -982,7 +982,7 @@ endobj /P 93 0 R /K [<< /Type /OBJR - /Pg 181 0 R + /Pg 180 0 R /Obj 173 0 R >> 95 0 R] >> @@ -997,8 +997,8 @@ endobj /O /Layout /TextDecorationType /Underline >>] - /K [38] - /Pg 181 0 R + /K [39] + /Pg 180 0 R >> endobj @@ -1007,8 +1007,8 @@ endobj /Type /StructElem /S /Lbl /P 91 0 R - /K [37] - /Pg 181 0 R + /K [38] + /Pg 180 0 R >> endobj @@ -1021,8 +1021,8 @@ endobj /O /Layout /Placement /Block >>] - /K [33 34 35 36] - /Pg 181 0 R + /K [34 35 36 37] + /Pg 180 0 R >> endobj @@ -1049,8 +1049,8 @@ endobj /Type /StructElem /S /P /P 99 0 R - /K [32] - /Pg 181 0 R + /K [33] + /Pg 180 0 R >> endobj @@ -1068,8 +1068,8 @@ endobj /Type /StructElem /S /P /P 101 0 R - /K [103 0 R 30 31] - /Pg 181 0 R + /K [103 0 R 31 32] + /Pg 180 0 R >> endobj @@ -1078,8 +1078,8 @@ endobj /Type /StructElem /S /Strong /P 102 0 R - /K [29] - /Pg 181 0 R + /K [30] + /Pg 180 0 R >> endobj @@ -1098,8 +1098,8 @@ endobj /Type /StructElem /S /P /P 104 0 R - /K [28] - /Pg 181 0 R + /K [29] + /Pg 180 0 R >> endobj @@ -1139,8 +1139,8 @@ endobj /Type /StructElem /S /P /P 108 0 R - /K [26 27] - /Pg 181 0 R + /K [26 27 28] + /Pg 180 0 R >> endobj @@ -1150,7 +1150,7 @@ endobj /S /Lbl /P 107 0 R /K [25] - /Pg 181 0 R + /Pg 180 0 R >> endobj @@ -1178,7 +1178,7 @@ endobj /S /P /P 112 0 R /K [23 24] - /Pg 181 0 R + /Pg 180 0 R >> endobj @@ -1188,7 +1188,7 @@ endobj /S /Lbl /P 111 0 R /K [22] - /Pg 181 0 R + /Pg 180 0 R >> endobj @@ -1216,7 +1216,7 @@ endobj /S /P /P 116 0 R /K [21] - /Pg 181 0 R + /Pg 180 0 R >> endobj @@ -1235,7 +1235,7 @@ endobj /S /P /P 118 0 R /K [120 0 R 19 20] - /Pg 181 0 R + /Pg 180 0 R >> endobj @@ -1245,7 +1245,7 @@ endobj /S /Strong /P 119 0 R /K [18] - /Pg 181 0 R + /Pg 180 0 R >> endobj @@ -1265,7 +1265,7 @@ endobj /S /P /P 121 0 R /K [17] - /Pg 181 0 R + /Pg 180 0 R >> endobj @@ -1293,7 +1293,7 @@ endobj /S /P /P 124 0 R /K [4 5 132 0 R 7 131 0 R 130 0 R 10 129 0 R 12 128 0 R 14 127 0 R 126 0 R] - /Pg 181 0 R + /Pg 180 0 R >> endobj @@ -1304,10 +1304,10 @@ endobj /P 125 0 R /K [16 << /Type /OBJR - /Pg 181 0 R + /Pg 180 0 R /Obj 172 0 R >>] - /Pg 181 0 R + /Pg 180 0 R >> endobj @@ -1318,10 +1318,10 @@ endobj /P 125 0 R /K [15 << /Type /OBJR - /Pg 181 0 R + /Pg 180 0 R /Obj 171 0 R >>] - /Pg 181 0 R + /Pg 180 0 R >> endobj @@ -1332,10 +1332,10 @@ endobj /P 125 0 R /K [13 << /Type /OBJR - /Pg 181 0 R + /Pg 180 0 R /Obj 170 0 R >>] - /Pg 181 0 R + /Pg 180 0 R >> endobj @@ -1346,10 +1346,10 @@ endobj /P 125 0 R /K [11 << /Type /OBJR - /Pg 181 0 R + /Pg 180 0 R /Obj 169 0 R >>] - /Pg 181 0 R + /Pg 180 0 R >> endobj @@ -1360,10 +1360,10 @@ endobj /P 125 0 R /K [9 << /Type /OBJR - /Pg 181 0 R + /Pg 180 0 R /Obj 168 0 R >>] - /Pg 181 0 R + /Pg 180 0 R >> endobj @@ -1374,10 +1374,10 @@ endobj /P 125 0 R /K [8 << /Type /OBJR - /Pg 181 0 R + /Pg 180 0 R /Obj 167 0 R >>] - /Pg 181 0 R + /Pg 180 0 R >> endobj @@ -1388,10 +1388,10 @@ endobj /P 125 0 R /K [6 << /Type /OBJR - /Pg 181 0 R + /Pg 180 0 R /Obj 166 0 R >>] - /Pg 181 0 R + /Pg 180 0 R >> endobj @@ -1405,7 +1405,7 @@ endobj /Placement /Block >>] /K [3] - /Pg 181 0 R + /Pg 180 0 R >> endobj @@ -1425,7 +1425,7 @@ endobj /S /P /P 134 0 R /K [2] - /Pg 181 0 R + /Pg 180 0 R >> endobj @@ -1448,7 +1448,7 @@ endobj /Placement /Block >>] /K [1] - /Pg 181 0 R + /Pg 180 0 R >> endobj @@ -1462,7 +1462,7 @@ endobj /Placement /Block >>] /K [0] - /Pg 181 0 R + /Pg 180 0 R >> endobj @@ -1599,7 +1599,7 @@ endobj << /Type /Font /Subtype /Type0 - /BaseFont /GQVION+XCharter-Roman-Identity-H + /BaseFont /QGOKFN+XCharter-Roman-Identity-H /Encoding /Identity-H /DescendantFonts [146 0 R] /ToUnicode 149 0 R @@ -1610,7 +1610,7 @@ endobj << /Type /Font /Subtype /CIDFontType0 - /BaseFont /GQVION+XCharter-Roman + /BaseFont /QGOKFN+XCharter-Roman /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) @@ -1618,7 +1618,7 @@ endobj >> /FontDescriptor 148 0 R /DW 0 - /W [0 0 500 1 1 597 2 2 280 3 3 491 4 4 568 5 5 278 6 6 713 7 7 523 8 8 569 9 9 495 10 10 866 11 11 564 12 12 556 13 13 539 14 14 382 15 15 321 16 16 334 17 17 771 18 18 507.00003 19 19 576 20 20 738 21 21 632 22 22 278 23 23 618 24 24 843 25 25 500 26 26 556 27 27 942 28 28 282 29 29 517 30 30 278 31 31 446 32 37 556 38 38 565 39 39 481 40 40 539 41 41 848 42 42 604 43 43 551 44 44 500 45 46 556 47 47 444 48 48 556 49 49 590 50 50 694 51 51 558 52 52 639 53 53 319 54 54 1000 55 55 503.00003 56 56 400 57 57 319 58 58 537 59 59 494 60 60 417 61 61 319 62 62 417 63 63 693 64 64 574 65 65 586 66 66 704 67 67 468 68 68 646 69 69 324 70 70 266 71 71 833 72 72 579 73 73 694 74 74 520 75 75 731 76 76 507.00003 77 77 731 78 78 833] + /W [0 0 500 1 1 597 2 2 280 3 3 491 4 4 568 5 5 278 6 6 713 7 7 523 8 8 569 9 9 495 10 10 866 11 11 564 12 12 556 13 13 539 14 14 382 15 15 321 16 16 334 17 17 771 18 18 507.00003 19 19 576 20 20 738 21 21 632 22 22 278 23 23 618 24 24 843 25 25 500 26 26 556 27 27 942 28 28 282 29 29 517 30 30 278 31 31 446 32 37 556 38 38 565 39 39 481 40 40 539 41 41 848 42 42 604 43 43 551 44 44 500 45 46 556 47 47 444 48 48 556 49 49 590 50 50 694 51 51 558 52 52 639 53 53 319 54 54 1000 55 55 503.00003 56 56 400 57 57 319 58 58 537 59 59 494 60 60 417 61 61 319 62 62 417 63 63 693 64 64 646 65 65 928 66 66 731 67 67 642 68 68 468 69 69 852 70 70 731 71 71 324 72 72 500 73 73 574 74 74 586 75 75 704 76 76 266 77 77 833 78 78 579 79 79 694 80 80 884 81 81 520 82 82 507.00003 83 83 833] >> endobj @@ -1628,15 +1628,15 @@ endobj /Filter /FlateDecode >> stream -xœûÿ -þ6Ò ö +xœûÿ>Aº +ç endstream endobj 148 0 obj << /Type /FontDescriptor - /FontName /GQVION+XCharter-Roman + /FontName /QGOKFN+XCharter-Roman /Flags 131076 /FontBBox [-78 -236 1000 764] /ItalicAngle 0 @@ -1651,7 +1651,7 @@ endobj 149 0 obj << - /Length 1710 + /Length 1796 /Type /CMap /WMode 0 >> @@ -1678,7 +1678,7 @@ end def 1 begincodespacerange <0000> endcodespacerange -78 beginbfchar +83 beginbfchar <0001> <0054> <0002> <0069> <0003> <0065> @@ -1742,21 +1742,26 @@ endcodespacerange <003D> <002D> <003E> <0029> <003F> <0044> -<0040> <00660069> -<0041> <005A> -<0042> <0026> -<0043> <007A> -<0044> <0052> -<0045> <0049> -<0046> <006A> -<0047> <007E> -<0048> <0066006C> -<0049> <0055> -<004A> <004C> -<004B> <004F> -<004C> <0103> -<004D> <0051> -<004E> <002B> +<0040> <0052> +<0041> <0057> +<0042> <0051> +<0043> <00660066> +<0044> <007A> +<0045> <0025> +<0046> <004F> +<0047> <0049> +<0048> <002AFE0E> +<0049> <00660069> +<004A> <005A> +<004B> <0026> +<004C> <006A> +<004D> <007E> +<004E> <0066006C> +<004F> <0055> +<0050> <006600660069> +<0051> <004C> +<0052> <0103> +<0053> <002B> endbfchar endcmap CMapName currentdict /CMap defineresource pop @@ -1769,31 +1774,32 @@ endobj 150 0 obj << - /Length 6196 + /Length 6556 /Filter /FlateDecode /Subtype /CIDFontType0C >> stream -xœ•YyTS×öN 79E�5—‹s‚už«ÕJë¬ Ê EDp`� “ˆDP´n¬8�Œ" "A@„0£ ˆXk¥âð¨VE­Zµ­Ý—wbßo%è{v½®·Ö•{Ï=9çÛ{ŸïÛ_„�P(°z‘¯[H˜WÈ”•A�nJÝ­%ü0~8ô“ó#„rC� ÷ÚO¢Ý¯5.1Ü †!—Ð]Žþõ¯~Ÿè¾(û�Ö}x÷# …bi×Ï w/KO/e˜_X䢠M‘!~>¾a&ÓçÌ15q 5qSš„+7…»ø…úzyšD…ø›¸Gš,ô ñr 4±TzL51Y`¢1Ô$Ä+Ô+d³—çTÃÿL7Þc‚‰™©éœÉ&f¦ÓMõ×éú«™É¥gˆW¤Éª©&vnÊ ÍÿýÖôS¦˜™šÍ0Yáçáëæ`âàë²Ék²‰»[¨—§I�òƒÕ¼ƒÊDÕTC� �@(XFü�\t:žŒË25ÅT ègXnØÕW$ -�­V£D€DŒ#Á0LÖ2�­n†Q‚`A³ÐD¸]¸Cx½ONŸ·"{Q™ÁPƒ,ƒûÌ<&…é+ćÄo$ë$Í’2�\&w>šg¸È0Èðªá˾ û~ݯ¿°~¹ýEýçöÏï_'.mà:àû÷?^ô±ïÇåôø@f!Û'k‘u²fl¹ÑGFë�}kô€Sp!ÆŒñ<ãƒÆ *ôx°õà½CDC¼†d=5lÒ0ûO¡†_R#¬©ÁúQ�1?šÏ׎×h#8~ Ök—H¤‡¡Œß„S×VÊÒѪ­�†³wÓ{fptj£$õ ÃV§¦áTmkdŒE¸c*@™ERd*ð­8R·2ìÝÔ©�8•‘ÒK æÙu²(‘=@2¾‹åqlÏjÎ?8d£ÿÉ�Ó§Ož8­8|Ò_¾�†pTâ ûûwôO1ËGE¯J P;&1ìï‘éÀ/`¤“â.¢ÿ9Y!,¾�ª‡"þ«7ÜJ/çg c-n¢‘";%‰Ép°¸ƒ -éЉ£é$:®{<–_†+G/•3<ÀÑhñþ{/´¹Z¼þs…t‹~µ!í²W]è×ÅVäc�Zì’•ø€)?Vœ|HÇ©À… - ™QÑ.ºÕéW§Qļt©ûT¾V‡Yx“F/ ÛI‰\ FE;&0RÚ*E”ñ?• -QÐÀ�hå£O™Øö`dð»ù�Ú+íü«ÌÌK‡ ”zx\ŠËŒíFú”?Äœ v’¶�™1 -�ÜbÏH­©²— ·FU"+½cû r?¤ƒ}(àÞƒco¼²¼y5„yË`"ÌרuFö'�¿Wtö¡¢÷mÝCØŸUËb=\À涯A Ü„k9õå%§³Ë¡:œ -¨a&™”ÆìIÞs’ }_Ú�T’!f �üpõ¡Šâò¶ä죳š¥âšJ]çÍ÷p±·÷¨úAÑYZÙ$÷Ð~Î=�dØÕwÛN«À‘8Ø:›Íq¬l’Ãù‚âÆ "�ÜÞæ¨æGÈžëcP�Ÿð±%Þ½82ãªVÝ—WC}Î¥rÂnuÀñj‰k’.3–zÁ¿‡=fØj÷¯íÞ@,Ï|¯À%ÒiÔysÏÄbá>œï–�h®]Ê„,V:oR’Ig™¨è¸Hˆ€�§ÂÎÁ¨jÔ CЕ�j:Åt)€wîƒÑt m£ý°-%½~3R<ý.˜Â>é�¨@L}0Ëq‹öŸå€Û{ @Û²=ÆRW+ñeË“bS�¯bRR/ï‡Rº €®Ô&P;~œ¢¾í;�ôFØ6ž‘†�šÒŽK ÔÂg:HD8²'Œ£RèÐòºÌz—‡z þ.S]u#”êUúEÌKW}¦:é2›$Ò€Øzþa�ìR³ËÜõؼŽ}ré(WÑû=à§ðK !œßZ¬Ì[[ᘾ:›°7¦•¸œ€«p£¶êAþŽ1$-*mrNcì²}ô03ÊÀÄ&o¹ö -]›"a6,qtžëÀë 2�lˈE‰0R—¸rÞ¬\XüóŸŠð˜.ìÃ&Ž¥èøcp(ýå5ŽÇñ^ÓaŠ w›¾ 5¶ÿòó¹ö·�Cã‹�wRêjäï¯øaQ�ìU›—oŒ;Õâ%úò,aʪŠNa[²!#þH49}_Ìæm>´e_ÄCÄMØ¥�¿¯yê%a�ü§z#£Wéª7 Ô<§q=�ç#d/»ØŠ•|<é�ï�n4WøKX uu™£`~õªÛ@ª þØårrÆÀY齜!°ªáÆåS8²„HUP‰…•¸¿RöÇ#´Ó¿]Çþ³Ð˜OÁÏœÄQcc¢i6âlHÝzx‘7¹Âö…11t6îÇh`tœ£M�uÇjC<.î̈mUTÌÊFŠ“  Ë*ñP©ð�Gøü‘¨°g÷—1àŽ»ÊV$E¥ÃçôXT ³âýƒ•º|UFêE]ÁîðhÕ½LU }Ž*qFjë~(e¤±õüýzaù¯¼ñ/‡C3I8EG3�qÊ]A@è¬ñh€+qÙsàE ¨ãŠ£È‘È4SÝÚ§2 s,“í€zUP…þsP;%ØT7Å´ÃU¸–ÒžC¤´•~Qˆ£~â„fQ ý‚{•üí-¸OÚÕÎ~!á噓KÚTbXè½na ‘¤oîù¸T¦ßy[,ƾ5¸ÕcК¥ÔE¿£Ã1ÔR›HíøÄäÔ¦ýL©DЇ>àÃu]¸¾‹­æ×ðæ\Øy¯œ5àN›-=õDw÷¯D÷î8zOœlõùcÅÉ…@.ån\òuú}xdeŸM9 ¤õ݈È�¬^rýŹÞ\î+Ãæ¯'ÒO1¨U„A=IÜŸ[[ÿ¹U" À¨üU#,Š%Eü4üž[æë dòªaŸæoÿÑݰ€š(À—_¼/¡gµá)*ÐЙàÌY?S:zÜ*§Æ?ÎÂþòóPsäÂÉõT2q�ºˆHé”jœqÁ±*Åéå²›×qÈ=´é@×J¶NÕcËoå!2ŒñËô?ä‹a¡×KŸ5v°&Ô¯¸• Ém¸@â$ì�ªÕ'ƒ«ämpó|MgñŬvèt ƒÐˆú•eÜÌMš±†Š€jxvbÇbÒ¹à¥'ÀSø-ïM3‰9Ã|¶fz¨Ð�@Gá(À @òg]�×ۻϠð @1%@Má³à/Ö;¥ïƨ`�¨ 8 É{3÷Ÿ$%8Ÿ9xv¿úH!¡c½¸2wêͰu*ßõ~á>@Vž½�ÆO+ÀÁ=ö)muOýÖ%Ê5ÆmjñJ]{æzÁ‡œd—ÀH—€rѾízÙKtB/¨zcþeà0º -6¢)ÀYë$ºqŽiÓ�U+¼™Š]bè:o þ×é{ÅT²Â�¡ 9_e��OÞ¦¢¢ÜÜ"uP®¯BJGîhæG• -‹»Ñ镈ÿâW'q r�Yd”å €²–ÎûŠ HOH‹#s$iÛÓÒ€œ9–}ºÉ±t5é%Ÿ‡ãp¸¢2Oi@lÿ\#,{ŠgaAÏ<ŽŽšBe4˜?¥,ŽÂQO‘Å` ž‚2:Jájð¸f ]C×8�™6mõ+\ƒ.µ¯+¤Ñuü‹*ÙùÎu]˜ÐiŸíĞᨰdU´“öººk7ªœçÊaUÐj'?r.’ë()k�vò|þuÚ�~<{þH9,R¯º¦$ìCSßµv`N(óÓ\�ŠÇßÈáÖš–)…„Žçp¨óÕ0'æŽ3'Ù4?�ÃÕüòoÕú­àëKèÓ$¬y‚ç»E¼mÏ:Ž~MÇÓ9@jñ‚ -qŽøý7†¬Y7í+·»ÍN¸ôõSüÈ7bZK¯qeùÕi�@î5[�i;oöÇq†² {o6‘@9ŸîJ„÷=a›±@+pÃé¹ -Š�¢’�°œ£‚¤Ø4è2Ò€¸J¼ÜŠËo _µâ¶Ç¢Wºî£Krl_ÞÞb ¨¸æ:zªµÅE8„í ?H<î3Û÷Æ'îâàrmí¯8û×çÈ¡xÖ-:Tá> ž*‚®X}KwN¬ºÂÏŠâëNoÐ3‡£Oµ³À - Ñ�� ÀÊð³˜/©�£­$Òð¸ËŽjÞô<.)PGÈÔ0¥‹­åٞ鵓ܧ;Þ'�4¡ŸR“§ PÑUGkË»ÍI'QõGá¿k„éÔvrl­w˜O¬�é¶×ñ#øÝÝWŠã�¿óÌv"Ù3#BÈ�ê™Áiç½Mºüüž$Fêüˆú^)x¿ ¿~$ÂA:)8Àn¼�ŽFÀ Ã/Ý8‡Ï}L ëa]¬KÁBÉÛ¥|?Iááüý'€¼¼¸”¤r[j¬H€-�H¤˜ -ëôò¦ ¦l–½ìB_Ý�°NªÇ¿x�fh2ç)í£p׈Uz}þžEµ�ú§âJØ»g�¦œòSóR*¡–™OP„BPÒÆdz·ñ¸� ¿»E" €ÛüüÍ8¶Vvù†<«`yy›Ã`\Œý‘”dÌoRŽ~#µ1 Ê©ÊЧ -oUêÄîÎ'¢BcL*/ÖK[g¦`÷‰¯³€àÌ?¡NžYG¿RÐ-â+fœ�^—dîÍ„t hԲƄö±±£bÅVß«ü†Hë  ½+yY„‹{ærtÛ[±},¸ãj€2«¤í©×ÑUð=uØ£ÑeŒm -ÝÑ#fœ?á~¥ùt0Rš‡,ª�>Ó‘ø >œó Úä㛫,*ÊË+R+Où*è¿ |ƒ‚||r7åå©•:bç§ë³ÞÛàŸ[[þÜ*–~Åü¤bafo¤Â¡Ô‰Ž¦Ž+ãÁíŠWHHy�cžÐ ñn;À›A¿b±íA:7â`\tá0S ïª�·™R£ÏpPÒáÊýº–ˆÚÆ�ÛÈl.—�«ò¸ƒ“nYW³—ñ9ïDZ…~ižÖÃr'˜çýïyµª#Á \}üìA AƒÒ [{Ï€3EÛÎÇ×ê:éká Çä‡fm<å•ê›A؇SÊl(‡ŠüSõpŽï8CØËWëaêÕû˜ˆ¬ì².Mì«ÿK¡CK>å­œcŸ¼J¾úwýÀ•ÿôÎP†¹•˜®Ï;Mfã_òäPo³µP×lÐl¥c8ÙʤMÖ¹{¦Ú0�G:µ·Mx߈ÎÔZ]\Ä[4Ø~R#z‡~„wt]'S,‘Ò/é'çz2Î ßÜñÆ=î]>†Nzè¡7t.Œ ç$thŽ Êcw4¡Ž8N¤4=® -5.Òà)Îï~0n¾'*èqçÜ$8"´‰Ý4Ö†ÊèÐ0â&Á…Gßà$ÀC€GÆà$ºô‘¾�Jþ¦’ß^‰PG&<Ä¥æ%ÜLþ¶ö­åOûô¦ƒq Ý.Ÿ½–»-Fë‡S¨]e6‰Z+ÌÅÒm½ŽAŽüµJç ×œßØ.ü¾g ——’š'HAð1÷‘:>”ëȰö/\> ^Ý˼èß{Ÿq|ß¹&E§oµ¶Ë~u¸ÁÀ�¬š’c„ÍÄé.œ2',//''/7,G) W*¤{ š¿^%¼Úˆÿj]ÕmrZ£$ýiÖ< -ÚÚÛàÎÇ ¥#DÒ¾ªm´ø�ùN8ÇHñ£ØK.e˜[Šg*eõ�Ýî C; óø¡œMƒ9Ô‘‹¥eõ—În°”ƒU€›E)ÚȽÒTTÃÒeyuä'_.˜&Çܵ ««™á±Þæ=˜‰¡ÚòÚ/’ -g†ÝŠ‹Ë$¦I_½Î¹WHqªš5 {by1·d�ý&[p† ™.ëÒ×¥;�=,]æJ¬$×kšr›¡š7] +Tì̃Kp9§]C¤ñïKCo¦á¦.ö.ïÙÍ�qavå‡fyÑW…BWÕÿ£*öî_}·‡¢“Ú?Þý ^©×ß é±­ü­Rá/ÝØÓ :ñA\% ,HúªÄõìÚŽÀŸágèÈ?[Y¢Iº7ð‚w†¼�Þ�ÏŠŠ ʨÑêË8\øgæ;È*ù车Ãu¢SÆ|(Z9‰£h¿˜hº€o}g#íð¸ü>jËu>Õèèzþiƒ°ü7Þòwß§g17æÚÚ[XùN**,2ýֲɡ3ð �—Mž�iÊh‡(ôydqŶiAþL ŽÈ=¤Ô†Ú˜QFç’š!ƒ6h÷û ±âC›ïæe½ÑçZ‚‹»¾*eçÌǾ=ΜJ2±Ôïõ˲¢gòd�x‰£2jÑÂÀŒùA ¥ÂÅoÿ_C°Zõÿqq4]\‰}kø' Â’7¸ðg\ðFÄ›©8œŸû´Õí·{ÙÛ‹_æÏ„™0/ÐvåR+S=Hv( Cq~0¡—W!+/MR}2)“øÄìÞÓÀµt÷mâRÃÑAÓ‘Á½° ÆÁ½�­ÐA6X—ßÙ›1ç¢�Ü$âóO8zŒf¬Ä šÓ„9˜~‘¦ã1‰ôÿ€w +xœ­YiTTǶî¶9݇6öáàÜ�qž£Ñ@⬠‘1ˆj˜A ‘Y@Ѹ1 (Ȥˆƒ„F@dPP@ˆQ‰8\¢Ñ FÍ`öé[mî[Ýh¢ïåݵî[ïOõ¢»NQgï¯ö÷í¯„==�P(ºn™·KPˆGÐLÛ¥ö«üh~ –óc…ò�@ÿ8X¢Ù§1#;F¯ž+WÕŽ‰ÃÆ +ÿú×à÷´(OÐ~xž( …biï÷WsweˆOHIJ€-A>^Þ!†s.42t 6tQ†*·„ºúù{{¸†ùºF.õ  òpñ74WºÍ24\âçg¨{0Ø0È#Ø#(ÌÃ}–áÀ¿–›â6ÕÐØÈhá Cc£9FºqŽn46\¢tòˆ0\;ËÐÚEö?Ÿš3wæLc#㹆k|ܼ]<ü í¼]‚¶xÌ0tu öp7 P¾±›W¡2Ô…jÖ@�`€@(°}þ[.*‹MÃU95©bª X9°w�H ‚OµaÕOHÒ†q¬@ ­ “…Lð©v…ñ‚@A«ÐP¸C˜ ¼: oÀK‘�¨Bo”Þa½{Ì"&�é+ÄÄ/$%­5™MÚÉíw \60``×Àgƒ–ú|ð�Á!ƒó‡ˆ†˜ )rN:FÚ1Ôy赡÷Þ]ö®÷»•Ösv_f&K–]’õ°Æl¥þ;ú›ô꥟SpA"ƒ5W‡/a>¢lÄý‘Œl¥7ªl´Áèu£»Æ�eÇZŒ}"ö>Ôó+ê…õõØX/ª7à'ð…š âzM8ǯÀFÍ +‰ô Tð[pÖ†jYV3®îÃÕÍúcØ;Yê¹�Õ,Éxİu™8 @Óm–®˜Pa–‘|΂Œm {'cV3Îb¤ô"¨x¶HŽ,Jd÷‘Léeyœ¤^Çùmö=têԉ㧧OøÊ“iG%^àǰ¿}Mÿ³|dÔÚDðÂP•} +Ãþ‘üF:=îúžÁqUÂÒ{û@Äú‚³õp w2Éìê+Ò°G’”á Á¡Ë»©�Žš6�N§“û¦ày;\>r±œã~ŽF‰÷ݽp¾HWé¦Ò­ºÝuÊž÷¢O/[Uh€*±SJdà}¦òhiÚ) Ý'ý—*€æDF9iw Û�vF óÌéÜûòÏ`]ˆ™'iö�°=”x�ßUúGd”}"#¥mR”Aÿ]¹MüØ&Q�zUˆ­R#¿›¦¹Ü À?ÏɹxÊ©'€ÛŸœÐl¦�ùÌqjí&騙 šòˆ­–ñŒÔ‚*«ñazÖÄ–ÉÊoÛÜÛqGÞ êfx†wãØë�Þ<€„E«`,®±î‰$ìw_�(?$ìD%oÛMØbWŸ9�˜t®G Ü€+y�•e§r+¡ºŠèÀ2=“Ù“¶'R +9sÉ³ß �|Óõ@%q[ ¨³Ýz8–k)w^´ØÍÉÆÆ­öEOyu‹ÜMó!÷4‚a/Å~½ýT,Ø;+Gã…öÕ-r8[TÚœM¤;:ìUüð¢ÒpÙS]êð=>†£Ä³?ŽÅÌäÚµ÷äuИw±’°ÛìpŠJ✢EÆJøsÚC†­s ÷Øá ÄÌÿËk +üV"�MÃÔÓJ…{øPr.Cms 2�ùÈ–T(¥+<›v¥FÑa´ƒÆŽô¬Æd(e¤xêU2…M|Ê}Q‘.™–ºdVâVÍ?+w¨õ@siG´¹ö¬ÄT|’“|-“žÑ¾Êéf?j«I¤Öü8I½Ü:wêϰU<# ?²W©Â…O´!á8uG¥^à× áµÈz…C] þ©ÎÚJÕZÝŒ晳©Z¤b‹DêÓÈ?¨—]luz„»šžc]<ÂU‡·Å\|~êg·•* 6TÙg­Ë%ìõÙeNÇ¡ ®7ÔÞ…(L8M2#3gœÀÙŒõa»Ÿ}ŒM�20­ÅEN„}„Bç–X+ì§ÁFðHUf’íÙ1(±FêWÉW +KcácÕ¦}ô´It*�òãD…£~ú§à”©?ÓÑŠÏôî´|D9j`óñ‡&67‘Cƒ =wRê*äï­ùfY‘ìy/[Ph€;UâºãYÆTÔ–/Â^Ê…ìøCQäÔ=1[v`kr8ÄCÄNØK^J/_o/òØCÂúëôFD­ÕžÞàâ¹çSx6\ö¬—­*0Àh•x�vy^À°=hXC×ÅðíÑs•GHŸsbæa8FNùß@ΟB?”C,ÃVYlß�àÕºûv7ðïÔï÷Šîó 9zC²<׿W^Uûk2I©$$1dw�Û‹o(0gÔÐ/<%ŸÍ2W‚#ÅOrÃxëRáç¯q=R³º p4?‡h†¶ŽçÍÎkA¼âˆ'Ò› ÈË,�ŽÒÈŒðæk4›$49«p[ N8+;sßâšö²aø] wÈÇý žJæù¦Ê÷¨l‘ƒepjBžüÊ·â“iÇR޹vd³©ÂWÂÖPg§Ùþ0×­½¤�¶W’/õ•®Q›Áü‹¡®·ŸÄqeD ÕX\�ûªe¿�Ö5ÇÎG�cÿYlÀ§ãâÈIÑQ4‹qdl;¸¬·8ÃŽ¥ÑÑtîÃ(`´œ£É˜'i‚Ü.ìÌŽMmd´m"#ÅéP�Õx \øû÷øô{Q±z.÷ÖpÅ]kR"3�âSz42šYóú[í|mvÆí�ÝàÖ¦}˜Æ2ô)ÆŠ³3ÚöA9#­Šiäï5 ++á ΋ø»yÛIB©(*Šñ�Sî +BçOA=´ÅUOQ€Se Š+�$‡"2�´{ŸÅ,Í3O³êTAºÏá�”ünYØÝ ]p%½3�Hiý¨Çÿ$Ä©­¢2ú÷<í«›p�tø«}‚B7Ë!"%:-†tÄŠa©çÆ¥ÑDZ”¦~·\¢{óŽŒy©w0R­×–åÔI÷F£©¹&‰ZóIi-û˜r‰¼Á‡{qS/[ǯçM¹�³yëÁÂÌÝuDwçm¢{UŽ^'[wöhiZ1�‹ù›W¼A�>o–¬ÜÓé§€´½šñfÉê'ןMån`²x‘¾�m" P§plkûç6‰Ô#›ð—aåc,{ âgã5ncˆKŒ;�k/¡´~õ�¾¦%ÔP¾»|â½ =­‘p�Q�–€ŽçÍÿ�Ò “§R95øv>‘Ÿ…úCçOl¢’isé¬eDŠHgÖáÜóö—ð»rœS)»qGÞEËnt®fÏŪ­ømœ=D„0>9¾|a9,õXoîµ>Ü>�©�k®B5Ôä7�'qöÛØu'kåpãl}Oé…Ã�Ð hG‡£>õ*ʸ˜.›>w= tàéiÝËIÏ’gî¨�áׂ­$úKæƒõs‚��n:ǬxÒÛsµ³ïK~(¦¨|øÑ&¢ôÞA™ ' moξ¤ 3©§÷©:Ƀ«°s¥ž {.Ö{“O¨�µþ§¯£A÷£‡Šý�ºgÿ"¥- Rђѯ½¢|Ü®ÛjS¨6ñ€79É:‘‘®Úå£M)Z÷³—è¸NPõçüãÀÑt-lF#€Ó)t9&áXœØ¡­U¶žLÕ®ýÑt&]´€}{ù~1‡¬ðdE¨À�œ·2ÀË«`KII~~‰* ß[!¥ãZùñåÂÒ>tx.â?:Ã�“¸¸Fo2Þü:EÙ¥ž{ŠlÈJÌŒ# %™;23�|y4÷T‹}ùtjØO>&ãE4e7Ÿ"R¿˜Zþi�°â1žþA„EêE?“Êh |LY�ã#‹�8et¼ÂYïaýDºž®wœ8{öºç¸�~~¨�úE�㬕�íÙØ‹‰=6÷ØìæŽ +ËÖVA'éo¥ÞÈÑÏ£èºèBÍ~¤B�cûG#kÜGÉ­Á:ÌÁ­Wþüßò…˜6Ð+\Ea]f3�»­ÆY-Z0Óþ[œ«€Ã�»7—Hý ’/¬ÆohTF!p™2ü|æc*äh‰44®Ý^Å�ÅEªp™ê>¦÷² <«žÃQk‰ß~ÿdmyŸ1Î�¾O ¿�‰BE3Ôi¨ ìv­DÕ•Â?ÏÓ£éáØÏ¯/ s¬®â;8ìë;ÏÇ pç—;ˆtœzn¸�¯žËi½L¹übu +#u‚*~lc¿¼×‹Ÿ/ÂáZ)8Ô ün¼œƒúÀ ÝO}¸ǘ<¤›`cŒSÁbÉË•zü`IñÁÂ}Ç�<»°’£r+Kj H„­à—D¤˜Uuò¦(º÷‡Éžõ¢·öŸ°±©[¿Ö9^±8º†ŽÒ +�܆Ê#äê§%'*^ÎfØäXÔÿíÊC%S72‰ùÁ9^@ÆO¦ï+ØÉ±Ű±Qà÷—âírü` ›ûo¶› 5XP‰i5›Îj…CàO¶?²·þŽÙ³�Á�û¾F™~4»D%öΓu pƒà€EçèL¹½À±Oñ „½s<éðÞC@p@“ë‡Ól\è0E l‡íI„~­‡G$eÉÅ{OaÛQÔô™Ñ¤5®t”" B“‚÷©UªpU?¤(´]ö¸“ï³wò¨’ÕØBGa&Lé΢ÝÇ�à”Fc4\ø˜P8ƒsøZ7‹>}Í¢š]…ÃY˜Àá {çôÑâô/�|׺’JèÐU¦SÁ�²9MK„ž—„xLÏ’ß}I"õƒ[üâ0œÔ kŽAOCªXÇÝâ0—ãdeÓ”£ïÎ]¾Â'7´Dž™)Éï’Âì‚ý…Ð õv0èp:Œ +i]I>‘°¿ñn¸`£8b>#õãÞ^­]ÕžI“IV^zëåà^€£xW=J«„èø˜Zþa¹0ýh 4¨œŽêtøeJP`YØÝ„å[áJú­<Ÿ�ÑœŒT èU‹7«µbwç#Q±¦Tˆ—뤭#S´ûøç‡�༿C}œ1ïýTA·º‰/¿!˜qfsxU’³7²€ þ¥õ†t€¥5+¶Aè^åDz*Ð³š—… ±TmÂÑí/Å61àŠë*V§ìȸŠv ר]B´ND‡T0Vé4A-fßã~¡…t#0Rš‡,Æ"+|¢%ñ¹|(ç°ÅË;_YRRPP¢RžôVÐéyxyåo)))È/Q)µÄÎÏÑ¡ÞSïŸÛ.ý±M,ýJùé¥Âœþ(GQ:�ÚÛÆƒ'Ú”ÚîOLÿ'>¢Sã]À“AŸR±U*�Œ›q.;J©€gíÎÔíFTÿžr°zŸ¶%¢Vqgð2a•²3µn·qúM‹:¶Ÿò>[ì“é¾P1|âsÁì¬ï]�NU8€³—� (! 5 ‹°1w�¨S²ýl|ƒ¶“¾rAitaðáÍ'=2¼³ [dwR™ •PUx²ŽÁ±„Ñ„mO]^§ S¿ÞÇ$deO�ujaŸÿ�`)´Ñ’Ï|)çØGÏÓºþ®¸üW?à˜_�Y:”X×ä4¿…“ýÍÖRm³øF³•…¡ph“9CëîiBÜÞŽtV#šøº�§Y}poÖúfûIõémúÞÖv�L©DJ?¦ï�QgŸ¾¸+â Ô®]:‘Nzè�t:. 'g$tTž%ÊcZPÇ#Rš‹n] ÕàIÎ C»ÞX ÃԮœ‹Ç·P}  @c,©ŒŽ +!.\zäN<xh"N§+�é ¨æoèBòësjÉ„‚›øm:`žÁ�´¯þÑVùpAO:‡Ñò¸[b´x0“:еÆÓ©…ÂT,m�¯q¯Àô*,Öõ·Ûž±Ûþޤâ^w™Çä$e'eB”ž\˜k‘¼ºÖ…°uyáÅqU�Ç¿(ÜGNÇI�ozhkDÍžæ€êðbŸÜõ‡Pp¬é<Ü#8Ôô�/7ÚÀÕŠñÝ‹ã§ØºÓÁŠ�ÑOó�sÃԃʅeÐø!?Òœý +p.ÿ²+Ê©›¶èƤEÓ!º€?µè„G@3Ts \ù84·‡:(v;mþ]¾Î0R|'æ¢Sæ—ã—ղƇ.·Ñ®—��ü(βɷΑ å�Of.‡Õ~.f~¤d3÷¼¦ªn“^ó®qï}¼d¶ìó74­%lÍ\·MÖ`TtƒNè(è¼@ª6,—WHŒR>úž9ÝpòBN¹vÊé&·æøœ­L‚çVÿÏ=„ 8t§á [ó™ëÆ­ë`XvA4/kT)íÖºöÃÞ¸AšÑËþ†BþN³J³£ÖyÆ�i­LPlÌVßã¡g¡ òÊÎ4_ÜÛ ¿~’‡D'«–¯Ç(îõ�“îÊI{ ¥�âŒm9Ð"TÇðbnÅz›-VàŸå8eoÌÚ˜å6ðIð*g²Zrµ¾%¿Ú uË•�âØ¢�pÚó:kˆ4þ5@t¾0néeïðîê(n¢³«0ø°;6ZlÔýl0ì�· M·]ɉ*ÍﯮÂÂT¶ºVr)#ý=¦�¿Y.ü©ÕM¢ão°Š„�%)Ÿ–9ŸÞÐíÿüÝ…§«ËjRÎÃu¼àÕÝ’—înépPdè‡O¨Œê¯kÇ1rÀ?r^9šXÿÚð6üEûbᯡ¯~çï¡o¡¿_‡F ùß�ÿ'î™ÿð_š¾ùgifØ:^ ùï1û_‹sÝÛÅYý9ßÄIÍ šÿ‡Î>xNtÒ€ÆÕâH:8:Іðm¯LßÝZÒ{]g>I|Ë+¿Ñ®sË�Ëpyï§åìÂÅ8HíÈÅJ¦•ûüü¬¢ä‰<Í-^b¯Œ\¶Ô?»Iž*a#cqùKÅêª×Åþ'¶:îÉ Ã¼ B~D‹ˆÁ?âèQšm‹Ù4¯ó0ëÍ£éQmq† endstream endobj @@ -2001,23 +2007,23 @@ endstream endobj 161 0 obj -[181 0 R /XYZ 50.4 604.48724 0] +[180 0 R /XYZ 50.4 604.48724 0] endobj 162 0 obj -[181 0 R /XYZ 50.4 493.96262 0] +[180 0 R /XYZ 50.4 481.25262 0] endobj 163 0 obj -[181 0 R /XYZ 50.4 236.82489 0] +[180 0 R /XYZ 50.4 224.11487 0] endobj 164 0 obj -[185 0 R /XYZ 50.4 638.0158 0] +[185 0 R /XYZ 50.4 585.7126 0] endobj 165 0 obj -[181 0 R /XYZ 172.28976 751.6 0] +[180 0 R /XYZ 172.28976 751.6 0] endobj 166 0 obj @@ -2143,7 +2149,7 @@ endobj << /Type /Annot /Subtype /Link - /Rect [61.07 371.90125 115.11889 384.61127] + /Rect [61.07 359.19125 115.11889 371.90125] /Border [0 0 0] /A << /Type /Action @@ -2160,7 +2166,7 @@ endobj << /Type /Annot /Subtype /Link - /Rect [61.07 331.50354 84.91 344.21353] + /Rect [61.07 318.79355 84.91 331.50354] /Border [0 0 0] /A << /Type /Action @@ -2177,7 +2183,7 @@ endobj << /Type /Annot /Subtype /Link - /Rect [95.97111 331.50354 134.4611 344.21353] + /Rect [95.97111 318.79355 134.4611 331.50354] /Border [0 0 0] /A << /Type /Action @@ -2194,7 +2200,7 @@ endobj << /Type /Annot /Subtype /Link - /Rect [61.07 291.10583 93.12 303.81583] + /Rect [61.07 278.3958 93.12 291.10583] /Border [0 0 0] /A << /Type /Action @@ -2211,7 +2217,7 @@ endobj << /Type /Annot /Subtype /Link - /Rect [61.07 263.4181 112.31389 276.1281] + /Rect [61.07 250.70813 112.31389 263.4181] /Border [0 0 0] /A << /Type /Action @@ -2228,7 +2234,7 @@ endobj << /Type /Annot /Subtype /Link - /Rect [50.4 195.55896 136.07 208.26892] + /Rect [50.4 182.84894 136.07 195.55896] /Border [0 0 0] /A << /Type /Action @@ -2245,7 +2251,7 @@ endobj << /Type /Annot /Subtype /Link - /Rect [50.4 130.54572 116.4 143.25574] + /Rect [50.4 105.12573 116.4 117.83569] /Border [0 0 0] /A << /Type /Action @@ -2259,23 +2265,6 @@ endobj endobj 180 0 obj -<< - /Type /Annot - /Subtype /Link - /Rect [50.4 78.24249 131.63 90.952515] - /Border [0 0 0] - /A << - /Type /Action - /S /URI - /URI (https://github.com/tiennm99/store-scraper-bot) - >> - /F 4 - /StructParent 14 - /Contents (https://github.com/tiennm99/store-scraper-bot) ->> -endobj - -181 0 obj << /Type /Page /Resources << @@ -2293,50 +2282,67 @@ endobj >> >> /MediaBox [0 0 612 792] - /StructParents 15 + /StructParents 14 /Tabs /S /Parent 1 0 R - /Contents 182 0 R - /Annots [166 0 R 167 0 R 168 0 R 169 0 R 170 0 R 171 0 R 172 0 R 173 0 R 174 0 R 175 0 R 176 0 R 177 0 R 178 0 R 179 0 R 180 0 R] + /Contents 181 0 R + /Annots [166 0 R 167 0 R 168 0 R 169 0 R 170 0 R 171 0 R 172 0 R 173 0 R 174 0 R 175 0 R 176 0 R 177 0 R 178 0 R 179 0 R] >> endobj +181 0 obj +<< + /Length 4992 + /Filter /FlateDecode +>> +stream +xœí=Û²·qïûPdÓ\Ñ â~¡HÊ)*rD'.ñ-ʃÈ2§$&9>.ûóS3; Ñ `wfYzðËÙ³;\º}Gãñ÷ÿûãöôé�±Ç¯_|û’‰á¿ï~üðŸìáŸ>ÏŸ³¯^¾8üßA2Á;IfœâÂæ�àÞIöîçÃãw‚½ûËAp+dt"0ì¿¿¼ûpøêÍA°7w‡Çï‹ìÍûµ×áãÍχøƒâ!ä‘�¤aóWudJ,ßôôi¦O;}ºéÓ�Ÿoçw³Ö÷Ù³ó›ÎߤÎ~}Ÿ½—�%§±¤Ï¿+qüöæ÷‡¯ßþxøúõ‹Ãc`¹Â4F®¤rãâ¥V<êh s’{lÐ̉À�Æ�@þ»`/ÿ‡êU!˜RÎqmLÌKÍ…Ž1EÖØ*GŠdʶ°¢|Š”E$RŽÌ¬¨KQs_}óŠ>!u À…–’+ƒg.8n‚×¾ )*°xd§H®}€L˜žÞå2ב�fHÞ¥P� J‰#;9ÿ¬äq˜ÐüM�NsÊ +NÈC`™ÔÅô§OéZ 6µ ÇepÎ1g#�ÚÄm*�$Ø~jÞ†,¬A;x/s»3Ìg’¾†_€¤rü å�LÚú^Pb÷I®¸œ†ÓM^a1RÖ‚K¡•ß +çi6ZÙ›ÿ®LÂa“0ŠËCØ Ù¢‹©LŸzj­ø<·¿KöÊÛ¼m’gw)ié ±zB´öK_ æÚó˜Ä´†ëLøX ¨ØvÜ-Õ>cßO†?ÿ”£à¼?>þü*yœüüëù…,#² 4FÜÑ\(ÌFÊ›iieù÷‚Æ6чë4‚kçœÝ¼¨^ +‘›†UÜX­Ü~°]"Ø¿3ã÷ë¢QÐÃço°s)Z›(Ãt+í·aT(>ÊP½ÆîüÈZvBTf¸M²óÌN^ˆ¡­Ü½‰"L!1Þs£µüxÂĵ ‘[·Ó ”” ðE +Í ÿUʨ& �ÒDæ”ãRš°Q±>þÒH “èVpÃì`Ih«ZULªºUµ® ±®ô‘I·|#MÝÄÒx›èË÷p]_ÞÝÿùý�ïîÙW¯±¥èÊR†ÏŸv0¡˜`?ÍÿqË~ž�ŸÿuxOB0´\ +ç98Ç•’º Íù|H`0©~RÚ·wÜ:g›í}fUøJËÕÈò‰Õz×ì{å¤.µ*V�:Ø`‚,D0ÈþÈ\jªõÛÌ¥g‹Ã\?öÛ”üV �¥;2kà$&"½[¬'tp_êå󆔾¹1uPYσҡ—zšÌu±òÆe .Öe–s¦äºòJ©Ôà­”ÍÝ�×=ÊÀ˜1üÔ³€t�úffJòÊÔ)°´Õ¿œå5(D ’·XÍ­ÜJ;ÂÛ8öõáòé(¿CþÃã¢0ÃÈ8¹ƒA܆�Ù�¸8-6öh2si�Ó­C�èqü¯i¨*En&í¹Tµ!¡Imº¥J+ÌØq’ ϬÜjm·é™ã¶ÐG'p�ÛcV®v¥täZæÃÃÅÕ13{¶èŸŸ._ñ×ýhÖHg¯JyÀ,[Påva'H¯3ßð8ç™ òÌ v‰€Ã¡(LЮú»‡¿Ïæ ¦-árQºƒ±ˆÙrrx„2óm ™dlÌTGõG¦ji29C³eÍÒmU(ÕÛ|Ù ¥|¯­îvU3jÛ;p<¢É`„64òAÀ¬Û51é’$È`Ì.T¼@OÁ˜š"E»F‡m2$E¢Å.I ñ¶qÝ€ úw†º3sÿ d&Ï›$lI9-"7Z…Û +jGï )x0¶güºGRé  V€ôvŠ‘H›qðÙ0ÒÎçÛLY2EÇ£öô5”£|†¥$hDn€©¯¤]<«Ï§íbÄUÒ"‚z é ÷´å‰-wuOÌûVTÕ�¢›ß%or+ÔðÓ×é*ŒÖ@lë�€-¼"h‰qk9oó8óÁ A•.Ð(ÕËÓé�«¥¶6ª´_™ à¥R×›ùšÇ: óª�µ¬†ˆ­0,ÿ 1ÿ +¼¹ê ­àqÍk"$ÏU²Å�=ÉM \ê­ìð:B<¹Àm�AQ $@s/Õ³\©Ë”áRõSôÐ_%4ôöÈN ¥åŠ‘L“†Š,½jªéV™HÙ±* ÈõÔÕ@J.RRó€®×€hÇè>©Z\ç!Iô"KaA-…r ”Ïó>¹.=ph9³±—•™^ ð§‹ÇdÌ=øšløWÑq^FPON›Ý +ìU ûüȦWhìœýAï�LO~uÂOsç.aË µ¸Z ¹Z°Ü(»5ª iP“ƒdx9¬qö1·ÁýMöfÖë¹—à½ÒkìúÈâ´½þ9ýÐ]þò·)™‹þÒo]*7ž:váÀÆ„šå3B¼,ø…[ à8å(h“bš )»Ë𛿠”e*‹E4cV*RÆ™qš+!œÚ)x¬çO…Ç@1ä³÷¨xQ…Ž�•…l ëf6úyFñœß:zˆuF#,ОÃvˆ‘.´“quÞ }ùZdõš•„õ‚@‹¾† 5‘À=°e|‰bUG3— ‡ÈAäø¨|/à/‰ºzî¼—a⛿OÝË8ò$V›·Û„-†Rm›0¡æ†â=×�èõAò•<æ.T¥yZM9ø#L6^§`åƒþ¶24€ˆÍÈz…ÍTnº÷ËÒº›[� ˆ-¸òÛwÁÇÈ(×X`ÍxË£Ýg7gÉIrÞW‘Kð,#­•€�úô˜Uëh.Ü�è“–«bضîä„Ò°‘’³Ktp6µK¥êYaB¦¤ ¢œ°æ!Ê|©5U�îo ´ÿSÔ¦L[)•kèœ@g{«£K(`öI‚Ù†÷Û­¸Å³ÈØŽcúùV‰³tÃÙW»j¹âÈL©ÀvŽÑá�݈0‹åm=`ÇdŒ¤×ôäÈ4 %N6ê‘a±‰ô¤i7SÞ0Àˆ5j�jvÞäa +:2S¶'4ƒÏ÷R—x�Ò›ºÄ«C–´|Øç©lõs†Ôý‘ÅÜ�+Pw(°„¥}æ�®Œdµ8¢£8¢‘â6íõšÈYó˜hNKN‹§À£ÎÙ™WáT�´ÒÉeÀ‘÷E@ì‡Z´!qõ )§2¥Ë<é1BwÌ.A<“ǰŒ“÷ÚÇÐ/ŒI=°gMÏy•óøÝNXäTk"’è¤"l'Ó~…´)öOËÄÆùúnŸt’…÷ t¹§rqøÔiH�0u:ât¨ÝŒè½-FD ÒÞsé¶š“¸Pm�n†@¿•,+H$Ù~mb€)qå5¶òÜ‘ìDÓ¶ìRdh5¤ºõ…,¤–H›,9g„¢XÄËšN„t¶ºY"Brƒ …c|P7ÍKÓ±98Ç/‡s¼2Je·îVàÑœ�Sú~GUÉðhŒQ~6Ø)–MO½Á™yy’™,ïÅ÷Óò¾ñ‡ƒàN²¿ {=j´åRiãìù¾5†ŠK9x^/g(G#¼06§(3‚è‘Òr)Cˆ;áÎÒÀF3žh[¼}¥]zÉø"ž@Z"W]"m–¹Ã<ýõ"ÿû3‡«cÉT؃È[O—Û’èYÆ Ü�‹ßº2³ëÔ¿çð‰‘�rñ��¾U´õÕöj1,¨¯…&qWp —Bá+ÖTü �˜­‰Ü„¡ ×6YÒ8ÓÀ¬æ^ØJ?öp9 +TÚ]fUÑ%°ÉÐâ’yã®ä)§OºÿÐɼ]õìˆ2“ÊÒ§!t `§À ä%±DÂXmF¨i‹XÖ@o/f�¤�ÃÁZc¬ !IЦ²pùn͸Cˆ°``M¬TQx ·nŒ[dåKÙÑå.B}ΈÏNY¤‡mn“sT4sÔŽ{/Õæ(yí¨OÛ{¼·¿„àvW%\4¡«I“J ®ƒ°ö–&•1�&•’ÜGÝ3™ÆQéPKZÿ@¼9SQòB‹HI.d2»º¥¢†rc +‹ÒÃ£Ü ç,7j8eþK÷–t-¬EË£´Ý}f›�t¬%Q߆ÄïÂ/®M/2³I_€O¸‰ |b®=© 7n7 Y +¯OèÔÔLd)í¢ÿýä…›*UQÁ tf˜\ªÉæÏN› Ìbœ©œ¿�Ëüé.¦eÞ%9Öcï®eo”Àkªè0ð”©">ÃÕv4%“ y¦¾PWB +夼±6H‹“Ó§0´ˆ\m7ŸV¯)Ɇ+-¼7Ybær3_ +‚¶xE‹®Z&�Wìáöèò´ÀÕA¥£4* ´e¦¥‹à)¸ ¶G&uUû®jZ�7ÜëÑ .Ð.�JeÏÖªyWôÅ``âù‚bm–±I©JêèN)Þ·ÕÛêÈÙÁ|ØùxŠÆ9üU}Öôaмx¤ÃÓ–¿¯á=G�7Ûj%U–½ð<4²V;7z¼��Pô��üX¸o9çHHs¯uu­Ž&§#ç wR¨håMuoÛ©{�!·°C Ø5°1ip ^N!rB Î%ç­Eæ^¨²[Å£ +²3[Kòè\pª/+Ì´Ò\8ŒöÜx'|#Üb±#R*®¥q'$Yó‰ä…1æ<êì= +F»öp ÚK15"ÃøÒâ�š^ùF–^V<íeêôlNë®+|s¢örß™¤b91üâ­5‘…ì–:X—7|½\À4‹÷5½„Uá|Ã$“r¹Y&Ä«•Ól—Ö¦¼Å–T£‹Á 7>ŤÜëÚ´Zš¤;Kú,MòD?ß'MtZo§äHÐ+zX»¨Æ+ú˜ +¬cPwi•·‚ï@¡M± ­Â³.Ý +›åKH²º¦”¾RL"ÖJ ×dKWáLdXÉê;ôTPY"÷j¿|¼h2kñ6:©Tà*±ítúe‰�9î2Ò,dL&AkV*,(‡Ç–Ëì²vŽÝRDsš–JMD�%Ɔ Y…SÍ ¹Z%Æf'ótæ}¶� ¼lïù÷n“dš¬®Lvc1×WFL˃ Ñl®#ö*dð>§ÈcŒÑÍÅÏ[5ÑVaDÀ'ZÜò#V¼,¿5ê" ðQ"DEØs13ç‚åÎ×M9‡^¶â 7ýÈØý•S–|sãªDŽ,*5\¢¼TjÓúÿ5»Rnç»"f‘•“ÞÌ7©PÞN,}{ßU»VôSX½|ûãVD‡ã_]v´SUô>]†.xëÚ‚ÔÅØXI ÐêÚêè°Ÿkë£?¯, ãÃ`ÇÂë ¦ è r[¦y,u7½3+øÛV½ÉKÑôx'¸tƶùiÚß—ïîÿúãOoþô÷{öôÕׯ^ ñåËçsï=·Å>;»œ_¿¨Í—tzK¸t;JÞ\îžéÈ}°¾Vû»Ièy}ž1øÎÍò ò�Péžõ4×¾©–�º_Q|iEÎ#F�µÛÔäœ;qQ 0¤·–߸}èßÐÔˆîü‚Úö» à¦W»�ò#Õ(V <ïƒR{ZÑ—Ñ �Ô´:¿[ìž,Ž'�åÆJµõ2Ø¢êþ¹¾´n&£‡°Ö:­qE"èæ6÷AäcüïƒÈ'HÇL`» /sÈÔ⼯k®–ÀÁ +�4D/?”–ZÞ¿"„¾= ¬‘Ì9¿­›,†°Ë„è�tÔNlÏ~ÓÂ~­D“Ù‘uï¤VÜ©6F’ÊH\½ d·¿°ãWp|Ä+8¶•$Îð^ÒÔǼ¡£³¸ª÷wm¦ïz½à'Ñ…1„V ÏøC»Ú–ó}n¸TÖëMîOÁ1#ýÓŒ–Þ¦T�^@aÀç…Žhá¹ÕÉG´s /4Y©l8s`‚ØÆZa}J$ÖzÕ�g•SÓ>†Þ];¡n íx•A.o�{Zÿ(vdWÉÔ?Ž· +“S0LGxؾC­yžeâ€ù×Ëû5ÊÌÒU1^¥CæL,¿À„t)LÏ[ë�sº*p]%ÒpÉ|ŸÑº^-Ç£G#C®Ap£}Üùzõhu.É÷ùÊ‹ÍÒU»$5¾•Ï�2hó¼á&¹µK¤H8ù “qNš,!È«î‡Lžä> �Býÿ‰®ƒÈ +endstream +endobj + 182 0 obj << - /Length 4783 - /Filter /FlateDecode + /Type /Annot + /Subtype /Link + /Rect [50.4 731.89 131.63 744.6] + /Border [0 0 0] + /A << + /Type /Action + /S /URI + /URI (https://github.com/tiennm99/store-scraper-bot) + >> + /F 4 + /StructParent 15 + /Contents (https://github.com/tiennm99/store-scraper-bot) >> -stream -xœíْܶñ}¾‚ŽYãõ@¸[+Û’ìÄN”ª”ôçÁ«Šr”­$ë­J>?E Ñ €Cî–ò"j–8»}£ùäõ¿~xß=}zèº'¯^|û²ãýÿ~ÿÃû¿v�ÿòþxxö¬{þòÅáßÑñŽw'Ñi+w¾s–3gE÷ö§Ã“·¼{ûó�3ÃE°ÜwØÿ~~ûþðüÍ�wonOÞñ.toÞ-£ö�7?þôø{Îù÷œ‹cwº›~Êc'ùüK�O=>Íø´ãÓ Ï›©oÒú.ywîùþüK¨ä¯ï’þ·é\bœK¸ô·äÇ?wo¾;|ýæðÇÃׯ^ž@‹¦!0)¤6/”dA£;+˜SÞxÕY\ÛÈÿåÝËR£JSÒZ¦´ö¾sB1®Bˆ‘5´J‘":ijX‘.FJ„")ÇN/¨‹QsWìùEª`…€B Á¤ -ÞuÖ[¦½S® - Á °xwìN�Ü{?¾½M d"®cwš yCu"(É�ÝI‹éÏRûM¿$4¥\.á‚æ±*[þø¶b�Q·LxkmgM`Aé° Â\Æ‹ÇONÇP��Uhejw†ùDÒwýô3�dŠ?.ݱ¦|$_À} .ÇéT•WŒ”g‚+é¶Ây\�ÇîÍ? -‹°Ø"´dÂïwC6ob*ãS�­•ÏsûÛè¬Ü¤ã+½»�IK�ˆU#¢•›Çš1WǘÃ$¦ÑL«ýCaÌ£bÛ2£•�û`¬ëÿù ÿçW) -ÎçãÃþŸ�¢×ÑŸ=u¨Á2 Û^1¯9×�ÕŠq©½ÞHy--L ý�ÑØ&úc�š3e­5›7ÕJ!B`Ë0’i£¤Ý¶³@çwb¼Ãy}D4*º~Œuüx-Z«(Ãt+e%3~P( -e¨^ã4³n`-;¡ ª -ÜFÙyf§�Wbh+w¯¢SH´sL+%C˜¸Ö>0#Âv:�’r>�¡¹àU¡ŒjÒ³ t謴Lí7*ÖÇ_iaÝp¦;Ó[ÊÈBe'dÙªZvYWêØ ;ÿ"MÝÈÒ¸‰ôå;¸¯¯nïþþwÝóWØVTa+ýó§ƒéM¨Žw?Nÿc¦û±7<ÿvxGBÐ×\ -ç5XˤªÍù¼�`0ª~BõÚ·³ÌX&›í]bU¸BËÅÈr‘Õz[{á¤6¶*�:Yo‚ÌD0ÈîØÙØ”˯‰KO‡¾|ü ]¥=vFÃEŒDz;[Oèà.×˧)\õ bê 4Žy©|+õT™ëlå ÛæŒ/Ûþ$åLÈU¡K®Ôà­¤IÝ�×]%`L~ìY@†Žý 3%yeì˜Ûª_Îö*"9É[ŒbFl¥Ža‰œGûúp¹x–OÁ”ÿ÷¸HÌ0ÒVìÄ`·á û§ÙÆLfF"íI|t’#ÿ«ªR’‡I9&$·uH(R›®©Ò3v¬`ÜuFyf”2ÛôÌáX¨cFp ÇcR®zv%U`JõæÃãÙÕ11ûnÖ??œâÝ,ýjÒH'¯ŒyÀ$[Påvf'Ȩßp8ç™ òÄ ¶FÀéPž8ÚŠ“cmð~fÚ™Cùx©7w8�žû³6£¢ñy¬•–‡tnÞ‹m19 7š&\.gA÷±S®Å›_XÊÓ(”2ù6(ŒÐ.ú»û¯§Æ-ávQºƒ±ˆÉrrx„óm™$lLguÇNJ*ÔReršf3Òôš¥ÝªPÊŽù|rù^Úÿ4ì¢f”ŽwยÉ`„6z4²^À,Û52é’EHoÌÎTA‚3¯MËüe�¤ÒAe¬Ìé- ãRh•Zä“?` žÏ1¾ódŠ�õé r.K¾ù‚\~Ìs î½/Šð‘–³ß;²¸5 L‘«–…½Ìb¶‰Öpý Ì]Æ &敆®ͦç ÍÜѦ:œzt¦ýð¢Æ†ØÆ~˜=79áh ]W;ylëݤB·±=IW½UÆç:Õ*kÜÕ‘ìMÏ„ÚÎÞrÌ\%$F»9÷eE¿JŒAI¶%¯ -’tWÀ#Ôý¢gÂ�Í��ÆS;ödT³zÐ÷>ƒ˜O97ÈJ f3k 0Ê»\’kpìÆÑÁvëÇ'b·ñ&|•B=%ÿµ3,ˆª�ÞžPÓSâ®ç!­¼;L“—rUpB;IïcclB†¦Ø„6†Ù`ݶØW½3 -É;,’“‚¶wÂ{Æ•a±ú±\Éuöý/T›!àeœmPdª‘îíºÃ2£�j²æ³Ö3ã‚t­€_ãÖwÌ:'üxP¿Šý¸³Tʼn^í"?›JÖEhÚ¡äy€æò¨ùÚ~û(ÌBÓ²Ð<ñÝ�DbÖ Ô0y‘]ŸNúia5¨‡[5!šò¶Õ\AzôuyƒÕ£ Hö£% ~û)xˆ”E…ù�Qdö9͉Ç{T�î -žîÙ;›�ÖBÀÀqå)•¢ºqE¢Oöê�÷¥À÷)JŽo²O‚sæ�­œé0¤áÇÜΗ›Óo˜!ì’Z 0tøÏâà)±v|¢ÏPº@Õh–„4ÒaÓ«–FdêÛQÍÓ…OSäùÔÇÇë -ÂÿèÌ㢧 -M÷A€S³Ã¼ý-FèŽáËhiöUÌ©nÖÙÇí~ÓùÄ<Æp¥×Þ²P?ym*HtÔ;Ç´_!mŒýÓ¼°a½®9ö¥y<Ê]«±TìŸ*¾¨J˜:~5Aç Î†,ņ”Ì»­æ$.Rk×ç ÐïK’e¤HÆK›‰æ\¬Jœ©%R"é/·ƒ.Sch%¤xW†^Š™ZÑ–Sæ@¨‰Ù•çª!^­ªÞAVäÅ åÓÞKsŸ‰ªz«á&ìoh.ZS>­À£9"'÷ýŠ’fAk-Ýd°SÌ›žZc3Ëö„Œ¶÷âõ¸½×/þpàÌŠî?ݽ5Ê0!•v~Ö¼®Í!¸dBôž×•óôõ¸ãÚ¤ódHD¯˜ -Äð>ì„;C;µ'Ë, ï}¡UFIø"ž¡” "?Ý"m–©Ã¼ýu99įž H¦ÌDz=�S~·#$1Ï“k'ð@Î~ëÂÊ.SÿžÁ [#å<â9 }«hë‹­ÕlZPÀÍ,à.™Â—¬ªøi,":2[+™ÛeI%i¶3Š9n¼Ï½ØË9×<·šÌªlH`;’¡Å9ñÆ]É%R.Ÿøü¡‹¹y90êÙeÈ•¦‘,¨6ÀI÷ï°N|Ž„u¥¡¦-bY½=[5’'«h�°&„$)šJÂdß’q‡aÆÀªX)¢ðn]™·$ÈòNUovŠP�3âñ†Ùϳô0ÕcRcŽ‚fŽ:0íûrZûd죹ä�‰\;úKnwQÂEºä�/¥ã�›{5©´j4©”f†+³±’»P󕥞xS¦"ÅJ‹H)æd´º²¥"ûz6e+EcQ:¯Y{�âœåb g¤ÌçÍGÒÔ° ®×v÷Yí'˜YK¤¾½èãˆ)ÓˆÌhÑ«ð©<Ó¡‚O̵'”fÚî$Cáõ3,»ýü¼®§gŠv6þ~òÌM«¨`R:³ ,.ÖdÓw§Mf6OƒTNû@ã2}»‹i™IεÁ˜Ä‡«Ù9ðª*: PCiñWÛÑ”L4ä¥MØ¡¬2ø -ò#Hycl�'§/;()˜ ªEþ7/B•dͤâÎé$1s¾¿’î -ÞEHÌW0-_Fwt�}âKYM͆&–�îèôˆ±ñþþ%6-<+‰ù˜íê~ÂÆÈL"M?‚±šÛRc^žf^<0î•ÙlMÛêe\É ™ ²¥2Ü寕©ö>KÍï«Oo×ÑSâ8cz@óëL*SÒøV\2^ üÌ�r'Dú±öŒcÌ(Y¾¾¿{¸`¦\TP^é¥Ýe2 -L¼* _:©hg{,©èºÖÌò)žÃN¤ÄÊòd@!T¢¢ÆÊ»5ù¢.’c‚ -ŽÑl¨šÕAã{¹=ʆü`1D( G$’r-bÓ`.¿‘ëzÁT0[3À›t-Ï´íKÇWh ´KãRÉ»¥0ÓÅ&}6Xxº¡PZåæÞù k‡§Œj‡�täö`:ítAEá þ¢1K1hL^™’`ÐÂ|;åG‚QÑûÚYÅGÞÆT`)ƒ|: ‘×ç\f@¡ofM±* µâ†�V�®¹úcc­Ðl QbטÕGÖ©*‘Ùæ„é"œ‰$+QìC/e‘9r/vÍ7À‹&³o£ã‘ý“Bðb›¶.·3Å]Bš™Œ�UÅH3Ü‘!ÂËy‚Y=Íî·1 ¢iMÝØ¿ZcÌ�5ƤðÌ9Y½[+269™ÇKï“9làùxOo¶IÆÅšÂb7V3m•ÄDðÌìæRbà¬BF¿X!ذœr‰F\¤ÅÍÄê—ESã_&Y…# ÂêžOH¬9o˜ueKÎbéôÚi¦Û‘±{QÿS’sÏ…‰,YWªÿ˜žñ¢ú£òþ¿M>[´s=ò3�ZÍ”‘ íâÎN,;ï�h¤�‹Ã–&©w°ppúÖïX¢]ÙÅõeá·——…#¶¿´Öº,2\ üŽ/„ 0M¶Æ Ë`*”tK›6—ã¦C{qî@­)Õ}]e�d(MÏ„Ý|Aµ­RÄ£_V‘ïÄ�ro[jYØjtð ^¥˜ÑÆÉMÆcüÕî3=|˜ËMlœ(´¼³Ï•6ž’,ðå^EÏÚŠ}G–ëÂ3c]ØV° VB’§ Ï¦•'_'ŠrFú¶ú3­7Ë1³ §‡ù̈ÿe%†š -’}7| -÷\ưlÝgÍúÔ‡™†`Ñä�|ýåâ9•"nô�ÓßÅS¦2+-ž» -Ó×ö×t‘O¸H¤~Íz¯ií >iÑàÉÊZ‚›¾,ëÆÊZ<%&bÒ­g§¥éjpœ­[Sw`RN•Þê7�³Å¯ tåŸA)òúRU ­ÌqÛF¡ 2Ú5Éh/˜ÔR‡½ü»vÑ\n¨O6L]’o̲y>qNHùY¾4±Äô'>mW wÏ™í?sß$ܵëݰ�¥ 8³vÝðгPs“¡�þ{¯V;·§öЧ‰E%N±paõ¢?”¬1•g2ÈÌLC¹@wÎBY¸e’(Çd±œŠl¥”�"ÿJåÊ…õZè -Ï ÌȬ^Èäá†XuÉ:»kÌ-‹È3À_ÙPq°tWo° -®°Ìj‹žšÙhˆG¨¾…*­•ñ\•佯þ£äF»­wjQ§S™ÂýŠãD•aÊJ´é~RZ+}âJôÿŒAW -endstream endobj 183 0 obj << /Type /Annot /Subtype /Link - /Rect [50.4 731.89 170.3 744.6] + /Rect [50.4 679.5868 170.3 692.29675] /Border [0 0 0] /A << /Type /Action @@ -2353,7 +2359,7 @@ endobj << /Type /Annot /Subtype /Link - /Rect [50.4 679.5868 177.11 692.29675] + /Rect [50.4 627.28357 177.11 639.9935] /Border [0 0 0] /A << /Type /Action @@ -2384,25 +2390,22 @@ endobj /Tabs /S /Parent 1 0 R /Contents 186 0 R - /Annots [183 0 R 184 0 R] + /Annots [182 0 R 183 0 R 184 0 R] >> endobj 186 0 obj << - /Length 1824 + /Length 2090 /Filter /FlateDecode >> stream -xœÍZmoÜ6 þî_! h·;�Þ,ËëËÖ¦°¤)0$ß–}h‚Ý6  ¶4Àþþ Û’I™²u¹Ø—ó�eKù�|HÝöò¯�wìåËŠ±íÅÉOï˜ðßÞ¼û�ÿvWW¯_³·ïNª¿+Él#Y#¸a­6Üuìösµ½ìöKåûr{W½½ª»º¯¶;Á¤`W»éU¹ú\ýr|-„¸ZWak¶Q‚�·En�×¶fÒÄQ3\åø²65S6Œ*å¯OÆ㣢ÅMãÓTäó÷è©»q,¼ã¿‹ë›úWvuV�^U?W§'ÕöÍýß»�·ìí­=Õí�\ŽÚ»<ùP Þ±*Ã.ú{Ÿ+)—¶ìSu¹6½´Þ.V«}Öh¸Ú:gð)2$Ó:Þé28ÈE8lk¦ZlÆÉØ$6þƒáoaì[øãùh1 må°áÂÔJ¤¦K÷­²N ;ÞI¥Ú·®™j"¸5”|�ø¾fROè¯ÙFÊIO5“Ž ?O¸Q<¸Ñ1Ô«wí>A{CéþŽ*Tùkt§Á„PÐ_5š>!}EÏÍÜÎâGe[3¥ðâ–{u$Ûk(-Â1EË4F‡›A‹ð]3vïŒMUŠ€7rS³Ñ܉.¢P©=ÂÆ5¥«DÎð6Þ¼�m¢L…¢WœSÉš©D�á=Î¥ƒWõ¿ ´ÀØ,þ‚Œaõè‚–C†ÆE 1£@Ë ªz�5¡lN–µ0¡³aB´\‰ÃDt$äèÿAj--G§^k‚_>àm/ ÛŽ\ŸÝÞ?bS…E‚ µ]Ó©)"#Ö)Þ8ë¥# ÅÑð6! *;8Å,qYŠjÁOÇ‚†Tm\U×l ‚øäºi^S{Që$ï̤ÃE 57­U•‘gy£Ek÷\ÄñÎtJ."•ãz¿ŒãN.sž&‹9Ûr+:y˜Sß%¨IГI´³ŒÑxR :®µÖ1ñ‚È5}4÷uÄ·õ¢ç+ßCÆ2õäó¯Az²Ë&—ŸÊMz{žqx³–Õ)[…Ñ\^&e¡´÷C”bA‚#AÙicñµ�7¤ë/¾!jW…LbmUš©R�¢™²ƒ€‚…ÅÎ1P"`<ùŠŽb¢�óx]ò5È -fô62GœÄ F6'Uk™ÙfcãKÁN4EÆüÇ‹^ªRÁ„ÿ{† õMºÌÌ‘JSYfXŽU憩^áX'°="çF*x,ÓJÅ•™‚Žà>\"t -;~Ö �aÜMß Pë’­ÄÊ‚¢H�«ÀÖs%ôó¨“Ù"Í>�¯¼Oâÿb UˆË¸ï !“øS Úl40ŠKw Múý€!t«$Ì µ™TJ„í|£%àÓ‹X¯ž\Ö*¾qeuAÁ¤–û·@½)“I¯f¿rDÚ¼„c×RJ®zö>~ã ûäÇúëÕ.§–®¨¨lºŽ·¦;°Ç]#ÔŒöHsLÍ6A�SE.¨fõ³5›KAlH -Í¥,ÝÒZ#b�0é×9n®(D6í�“ï@�<µ3Pê ”�nõì˜g¹q -‰«�eðrŠ·®= ^aCšè„ÇRŸ�¸„îõ/¯¶&jèÓáP%m?jê”f_ÔR=v–ѺRM•¡vèRÕ-Yåú@#õ¬5ØÖÌN~›°�©Éå¯íäÒ#‹EJò x*Ö!}Õ�>€Â�‰ÓÅC•£HNÛŸ=Â˯šX—ù…m¸SÍa~ÁP‚m2§Œ“òŸL·@·Å<ʆ À>+î­ÉØ´˜{ÊXÑ$�ÝãµÂUSf‡úæ0PÒ>ßÈv»šéq†‹i²³hqÔ¥élìÄÂúd™ƒëUë5e(õ­Ckér�°ã)ºRPŒÝä˜� ¥ÓžsÚ޵Ë<гê’jLâŸê Hk¹+ÔZü¿'ZDÄ‹ýaÉÔk!av -öªÀÜãc/kÖŒàÚû ÐÐçKÍ¡ˆÖ§ÙÏV+‘ì6_çcú|[衳4/ÕLv�U�éâZòN¨ƒ‚ŸšéÉQú·€•“-:ʬ‡ ª8•Rp×n°,N¨µÆúcZéóþLÚ°KRiO¬ TiÀš�g›Ç¯Òˆ³´}úüxv:k(ªÒ!A–7(ü¡f醸 K“‹ñ!ÒJ¸ù -¦;з_[œaXìˆjAªÄOÖ+ÃÂÆƒ4¼3BØÿWç!`zëðÄÅ` (P” áy¶( - Šla˜–7åÊ)æÐ¾j�þ~•9ùÌœÜP>åÈ´p=†L˜ë©¿Må!Ifîù©@ãÄœ{¡`š�¡ ‰Ö3¾s$_ÿÜ)º\¯¿~ã?zæØ|èÅÄÆý§¦`À +xœµZÙnÜ6}×WEãXq‡æ.ªYÚÚ‰�q×~kúu[ 1Ú‰�þ~!‰¤È«K‘ãI^F3CŠË]Ï=äñÕ?îÉ‹ !ǧo_6|{÷áþOrøÇ}Û¼zEN^Ÿ6ÿ6œ0ÂȆͨ"�TÔöäöSs|ËÈíçfhdäóí}srÝ0r½mŽïáŒ\ßͯ�ëOÍo‡ïcï™”Ó“™–(2ýy3ý%\“Ó“»ßR¶dÓ¹¾Œ©´7Ó-áÖ·J‘Žá{Mc}OÇLû;¹þ¹ysÝ\6o.N›ãŸ¶ß}¸} 'øî…ö»?½r»¿:ý¥a´'ÿ5Š\Œÿ}jTG•"Œ|l®JCsƨ1» .í»tp¨NžÕ ïiÏ…,è�¯êÐÉŸi÷ä-1³v¼ÎT; þe�Ó†Iµ$Y2æôÖÖõIÛÂooAÓ°ŸV@cL2 ,�ÍÆ·m çÁ|XfÐq2Ïà~ÈÅ–sœ¦�F=ro¹!ƒü:¸Þ¸ý mô£Oë8Šå&fUól["‚¶øb èâ�Ò^A[^¬%”=mä +éí/•"ª“yúh “¼™‰Uã‹Õ–X&cßÏ$“ß´Ä™’·_ºa]jf¸ÊÐIˆÌ¬èîZÂ�""…Šòж¶®ga€ÙÃ:*Øž&œHT¶¶9»ƒ7…Ã�“Ô5b¬µ$ßÿhÅÌBOkܯ'USRŒ¬JäÆ +ª­±_0•G¾ƒßh×î%d’»j‰0i\xâ~@±u‰ÅPhÿmÒëˆt2…›� €±œöj–ßj¾æÌRnzÖW3€,#Ån³hª˜4ÖØíC!&¡:K{Ykë®{g—Ô½al†’~ómßíî/Á ž¡³Î`:jXÏ÷Ú·l‰ðcÎ f^1ˆä-ÙÌ n�©ã0–k’Þ¶;£ »š‘ç({mˆDñs"ʇ» HÁ2áô#@¿…àɇc›À×äbÄ”�“%[¢¢ÝNUDºÄ~(e\€ZSY�uú··« i‰ž=ã-@€þŸÚd;T¬g°Yû»�` X´Àz“©CHcå8g›Q(¿¦’¨-ZK)L˜l˜ÐC\î™ÞÚty„›`¿›<êÛ(ï˜é>C1+iS=HuG¼Kuå'ñ:,£’®•HF…•ºÛ–è8Õ¼iÈ±× +Ò7ä8ˆ6kw\SÉ´ÝÓ³ï�å ÊÀ Œ4@ÖS)¥ é7Š_‹Öç±->ÁÞrÕý‘™3lÁ²çÑ×€>Ùiª£“Íeg¹eœ^•r;¦+ßšËÎèZ0é=� #L°QšC‚�h5¯MèÎ{¸úÆ¢N]ݬ8^ź"üÏ¢âžáÍr„³ÔP‚Á Ðñ…ÚÅxô‘Æìžk¾CƒÈ…”…³I—-¡U)=÷ÙÈÈÕ½Þ¯$|;|¬@éuª& L†¸ÿscq£³ð¿D¢p-K2Ç—H”›†z™†:–ª#oÀå<mÁåòLU9ú5z Y4´º4ú”«�ˆ·³êÌ6-k¶RÁåîZ†•SeìæA&‹Iô.q¯¾"áµ�E˜ÖrßÇŠá§"p–‹ÚöÔZmÍ^áàkÐSì ,UÛÔf*·ó| 4Á/CI”k(ž=ÔÓ�eXI-Œp±ÎæFò…X>ÕNE‰6*¿BÇ_rNÅàÝ7ªÉÇ¡m|þÕÜeå"ªŠK=žÉS!¥5�ß&†ãLà&š–lÂ�4<4KÉëgEµKdGœIÊyõžJ”Ä´D@ÝV9Tʳˆqš=¿‹ýá)ë4—Çí8ësß €rŒE ¨:“Œ*«ö#/ü†$BЇzb80±ØÍ‰Ã"GÑÆníOY Îêãij«Ùbtûp´ÑÙZIÕYíDb%.ZêÁ:DëKصÄÌŽ 0ÏLw Ï®drðôb˜<‹<\{X,r(@õ9—FhÊ8+\žY«–¢HŸaC"©ŽÏÁÅäÂùe†Q×p5é¢#c9[ +¿xUªîn­êzª{»ß•:óð ^(œsá�¦)V¤rΨíjwX)D‰c «¾äj yÉ)È�Õ™ Y‹ö,�ü¿ ‡o?O^×Ç•FŒôÉBÖ7 ü¡%.ˆÀ‹{ #‹C × ÕRÊJ¾ŒS^Äá¹×VG˜&;ÀèH¥XŠ:BA�Ü÷ÎÝ—æ¼Ixd1äÑB’ +ãÓmVP"CuTW˦G•ë|+sš9ÂÁ<Ê¢iὋ˜q®ÇnQå ÍÜË+ÞÁ­Ø8͆À”,mÄ|gÉúÆ~çÉ_ÞñÆç7ÃLjÇ�«q™©nÿ6 Ü endstream endobj @@ -4737,7 +4740,7 @@ endobj /Subtype /XML >> stream -Tien Nguyen Minh - CVTien Nguyen MinhTypst 0.14.2en2026-03-31T00:00:00Z2026-03-31T00:00:00Z2application/pdf68B+Z1AiIX3RhiT6w4A5AA==8oe3U4f+o3oDeoTZ97aacg==proof1.7 +Tien Nguyen Minh - CVTien Nguyen MinhTypst 0.14.2en2026-03-31T00:00:00Z2026-03-31T00:00:00Z2application/pdfODJOmGrISiW7Qccz04ZAHw==8oe3U4f+o3oDeoTZ97aacg==proof1.7 endstream endobj @@ -4771,194 +4774,194 @@ xref 0000000588 00000 n 0000000674 00000 n 0000001080 00000 n -0000001621 00000 n -0000001787 00000 n -0000002058 00000 n -0000002152 00000 n -0000002244 00000 n -0000002338 00000 n -0000002430 00000 n -0000002524 00000 n -0000002616 00000 n -0000002710 00000 n -0000002802 00000 n -0000002896 00000 n -0000002988 00000 n -0000003082 00000 n -0000003173 00000 n -0000003265 00000 n -0000003351 00000 n -0000003496 00000 n -0000003582 00000 n -0000003655 00000 n -0000003734 00000 n -0000003811 00000 n -0000003948 00000 n -0000004030 00000 n -0000004184 00000 n -0000004327 00000 n -0000004413 00000 n -0000004492 00000 n -0000004578 00000 n -0000004657 00000 n -0000004734 00000 n -0000004871 00000 n -0000004953 00000 n -0000005107 00000 n -0000005252 00000 n -0000005338 00000 n -0000005411 00000 n -0000005490 00000 n -0000005567 00000 n -0000005704 00000 n -0000005786 00000 n -0000005941 00000 n -0000006086 00000 n -0000006172 00000 n -0000006245 00000 n -0000006324 00000 n -0000006401 00000 n -0000006538 00000 n -0000006620 00000 n -0000006775 00000 n -0000006923 00000 n -0000007009 00000 n -0000007088 00000 n -0000007175 00000 n -0000007254 00000 n -0000007331 00000 n -0000007468 00000 n -0000007550 00000 n -0000007705 00000 n -0000007799 00000 n -0000007886 00000 n -0000008039 00000 n -0000008124 00000 n -0000008205 00000 n -0000008305 00000 n -0000008442 00000 n -0000008597 00000 n -0000008686 00000 n -0000008771 00000 n -0000008852 00000 n -0000008949 00000 n -0000009086 00000 n -0000009241 00000 n -0000009330 00000 n -0000009415 00000 n -0000009496 00000 n -0000009606 00000 n -0000009743 00000 n -0000009898 00000 n -0000010035 00000 n -0000010190 00000 n -0000010279 00000 n -0000010364 00000 n -0000010445 00000 n -0000010545 00000 n -0000010682 00000 n -0000010837 00000 n -0000010926 00000 n -0000011077 00000 n -0000011164 00000 n -0000011244 00000 n -0000011332 00000 n -0000011413 00000 n -0000011513 00000 n -0000011607 00000 n -0000011705 00000 n -0000011794 00000 n -0000011936 00000 n -0000012025 00000 n -0000012109 00000 n -0000012201 00000 n -0000012292 00000 n -0000012381 00000 n -0000012465 00000 n -0000012557 00000 n -0000012648 00000 n -0000012737 00000 n -0000012819 00000 n -0000012908 00000 n -0000012990 00000 n -0000013090 00000 n -0000013184 00000 n -0000013281 00000 n -0000013370 00000 n -0000013459 00000 n -0000013557 00000 n -0000013714 00000 n -0000013863 00000 n -0000014012 00000 n -0000014161 00000 n -0000014310 00000 n -0000014458 00000 n -0000014606 00000 n -0000014754 00000 n -0000014897 00000 n -0000015002 00000 n -0000015090 00000 n -0000015172 00000 n -0000015317 00000 n -0000015457 00000 n -0000015634 00000 n -0000015994 00000 n -0000016083 00000 n -0000016333 00000 n -0000017244 00000 n -0000019284 00000 n -0000019460 00000 n -0000020418 00000 n -0000020509 00000 n -0000020757 00000 n -0000022549 00000 n -0000028851 00000 n -0000029026 00000 n -0000029706 00000 n -0000029796 00000 n -0000030043 00000 n -0000031403 00000 n -0000035895 00000 n -0000035933 00000 n -0000035971 00000 n -0000036394 00000 n -0000036845 00000 n -0000036895 00000 n -0000036945 00000 n -0000036995 00000 n -0000037044 00000 n -0000037095 00000 n -0000037366 00000 n -0000037627 00000 n -0000037884 00000 n -0000038163 00000 n -0000038435 00000 n -0000038693 00000 n -0000038979 00000 n -0000039306 00000 n -0000039637 00000 n -0000039982 00000 n -0000040324 00000 n -0000040650 00000 n -0000040934 00000 n -0000041223 00000 n -0000041524 00000 n -0000042009 00000 n -0000046872 00000 n -0000047130 00000 n -0000047395 00000 n -0000047717 00000 n -0000049621 00000 n -0000560829 00000 n -0000561008 00000 n -0000562261 00000 n +0000001622 00000 n +0000001809 00000 n +0000002080 00000 n +0000002174 00000 n +0000002266 00000 n +0000002360 00000 n +0000002452 00000 n +0000002546 00000 n +0000002638 00000 n +0000002732 00000 n +0000002824 00000 n +0000002918 00000 n +0000003010 00000 n +0000003104 00000 n +0000003196 00000 n +0000003288 00000 n +0000003375 00000 n +0000003521 00000 n +0000003607 00000 n +0000003680 00000 n +0000003759 00000 n +0000003836 00000 n +0000003973 00000 n +0000004055 00000 n +0000004209 00000 n +0000004352 00000 n +0000004438 00000 n +0000004517 00000 n +0000004603 00000 n +0000004682 00000 n +0000004759 00000 n +0000004896 00000 n +0000004978 00000 n +0000005132 00000 n +0000005275 00000 n +0000005361 00000 n +0000005434 00000 n +0000005513 00000 n +0000005590 00000 n +0000005727 00000 n +0000005809 00000 n +0000005963 00000 n +0000006108 00000 n +0000006194 00000 n +0000006267 00000 n +0000006346 00000 n +0000006423 00000 n +0000006560 00000 n +0000006642 00000 n +0000006797 00000 n +0000006951 00000 n +0000007037 00000 n +0000007116 00000 n +0000007203 00000 n +0000007282 00000 n +0000007359 00000 n +0000007496 00000 n +0000007578 00000 n +0000007733 00000 n +0000007827 00000 n +0000007914 00000 n +0000008067 00000 n +0000008152 00000 n +0000008233 00000 n +0000008333 00000 n +0000008470 00000 n +0000008625 00000 n +0000008714 00000 n +0000008799 00000 n +0000008880 00000 n +0000008977 00000 n +0000009114 00000 n +0000009269 00000 n +0000009358 00000 n +0000009443 00000 n +0000009524 00000 n +0000009634 00000 n +0000009771 00000 n +0000009926 00000 n +0000010063 00000 n +0000010218 00000 n +0000010307 00000 n +0000010392 00000 n +0000010473 00000 n +0000010573 00000 n +0000010710 00000 n +0000010865 00000 n +0000010954 00000 n +0000011105 00000 n +0000011192 00000 n +0000011272 00000 n +0000011360 00000 n +0000011441 00000 n +0000011541 00000 n +0000011635 00000 n +0000011733 00000 n +0000011822 00000 n +0000011964 00000 n +0000012053 00000 n +0000012137 00000 n +0000012232 00000 n +0000012323 00000 n +0000012412 00000 n +0000012496 00000 n +0000012588 00000 n +0000012679 00000 n +0000012768 00000 n +0000012850 00000 n +0000012939 00000 n +0000013021 00000 n +0000013121 00000 n +0000013215 00000 n +0000013312 00000 n +0000013401 00000 n +0000013490 00000 n +0000013588 00000 n +0000013745 00000 n +0000013894 00000 n +0000014043 00000 n +0000014192 00000 n +0000014341 00000 n +0000014489 00000 n +0000014637 00000 n +0000014785 00000 n +0000014928 00000 n +0000015033 00000 n +0000015121 00000 n +0000015203 00000 n +0000015348 00000 n +0000015488 00000 n +0000015665 00000 n +0000016025 00000 n +0000016114 00000 n +0000016364 00000 n +0000017275 00000 n +0000019315 00000 n +0000019491 00000 n +0000020499 00000 n +0000020590 00000 n +0000020838 00000 n +0000022716 00000 n +0000029378 00000 n +0000029553 00000 n +0000030233 00000 n +0000030323 00000 n +0000030570 00000 n +0000031930 00000 n +0000036422 00000 n +0000036460 00000 n +0000036498 00000 n +0000036921 00000 n +0000037372 00000 n +0000037422 00000 n +0000037472 00000 n +0000037522 00000 n +0000037571 00000 n +0000037622 00000 n +0000037893 00000 n +0000038154 00000 n +0000038411 00000 n +0000038690 00000 n +0000038962 00000 n +0000039220 00000 n +0000039506 00000 n +0000039833 00000 n +0000040164 00000 n +0000040509 00000 n +0000040850 00000 n +0000041177 00000 n +0000041461 00000 n +0000041750 00000 n +0000042227 00000 n +0000047299 00000 n +0000047594 00000 n +0000047858 00000 n +0000048123 00000 n +0000048453 00000 n +0000050623 00000 n +0000561831 00000 n +0000562010 00000 n +0000563263 00000 n trailer << /Size 191 /Root 190 0 R /Info 188 0 R - /ID [(8oe3U4f+o3oDeoTZ97aacg==) (68B+Z1AiIX3RhiT6w4A5AA==)] + /ID [(8oe3U4f+o3oDeoTZ97aacg==) (ODJOmGrISiW7Qccz04ZAHw==)] >> startxref -562498 +563500 %%EOF \ No newline at end of file diff --git a/miti99.typ b/miti99.typ index 4eb045a..9d689d6 100644 --- a/miti99.typ +++ b/miti99.typ @@ -125,7 +125,7 @@ main-column-second-row: [ - GPA: 8.0\/10 — Academic Excellence Scholarship; Five Good Student Award (university-wide recognition for academic performance, personal conduct, and community involvement) - - Thesis: Survival2D — Designed and implemented a high-performance multiplayer battle royale game server in Java; applied finite state machines to implement autonomous game bots + - Thesis: Survival2D — Built a 2D multiplayer Battle Royale game server in Java (Netty\/WebSocket) with authoritative server architecture, QuadTree-based collision detection, FlatBuffers serialization (76\% packet reduction vs JSON), behavior tree AI bots with A#sym.ast.basic pathfinding, and server-side anti-cheat via visibility culling ], ) @@ -167,7 +167,7 @@ ], main-column-second-row: [ - #summary[University thesis project — a 2D survival battle royale game server written in Java. Implemented a real-time multiplayer game loop with player synchronization, collision detection, match lifecycle management, and finite state machine-based autonomous bots.] + #summary[University thesis — a 2D multiplayer Battle Royale game server in Java (Netty) over WebSocket. Designed an authoritative server with client-side prediction, QuadTree spatial indexing for efficient collision detection, and procedural map generation. Applied FlatBuffers serialization to reduce packet sizes by 76\% compared to JSON. Implemented AI bots using behavior trees with A#sym.ast.basic pathfinding, and server-side anti-cheat through visibility culling to prevent ESP exploits.] ], )