File size: 66,066 Bytes
47fc4b4
 
1821344
1989065
1b17a7b
9f952bc
50efd9f
1989065
1f3f2ad
 
 
 
 
50efd9f
1b17a7b
1989065
 
 
9f952bc
1f3f2ad
 
 
 
1989065
9f952bc
2805605
1f3f2ad
9f952bc
2805605
 
 
1f3f2ad
 
1989065
 
 
 
 
0a9b7ca
9f952bc
4f9ccf9
 
1989065
1b17a7b
1989065
 
1b17a7b
1989065
 
0a9b7ca
 
 
1f3f2ad
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
422b6c8
1f3f2ad
 
 
 
 
 
 
1989065
 
422b6c8
88430cf
1f3f2ad
1989065
812d914
9f3cddf
 
1f3f2ad
 
 
 
 
1b17a7b
e83a3b2
 
1f3f2ad
 
 
e83a3b2
47fc4b4
1f3f2ad
1989065
 
 
422b6c8
1f3f2ad
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1989065
1f3f2ad
50efd9f
 
 
 
 
9f952bc
 
 
50efd9f
 
 
 
 
 
 
1b17a7b
1f3f2ad
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0a9b7ca
1f3f2ad
 
 
 
 
 
 
0a9b7ca
1f3f2ad
 
 
50efd9f
 
 
1f3f2ad
1b17a7b
 
 
9f952bc
1b17a7b
 
 
 
 
 
 
b009d54
1f3f2ad
 
c567238
 
 
 
1f3f2ad
 
 
1b17a7b
 
1f3f2ad
1b17a7b
 
983a9ba
1b17a7b
983a9ba
 
 
 
 
9f3cddf
1f3f2ad
88430cf
 
 
 
75300a2
9f952bc
 
1f3f2ad
75300a2
 
 
 
 
9f952bc
e7438aa
88430cf
 
 
75300a2
 
 
e7438aa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
import gradio as gr
import logging
import requests
import time
from bs4 import BeautifulSoup
from datetime import datetime
from typing import List, Optional, Tuple
from urllib.parse import urljoin, urlparse
import random
import nltk
from nltk.tokenize import sent_tokenize
import PyPDF2
from joblib import dump, load

from transformers import AutoTokenizer, AutoModelForCausalLM
from sentence_transformers import SentenceTransformer
from sklearn.metrics.pairwise import cosine_similarity
import numpy as np
from icalendar import Calendar
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retry
from fake_useragent import UserAgent
from concurrent.futures import ThreadPoolExecutor

# Configure logging
logging.basicConfig(
    level=logging.INFO,
    format="%(asctime)s - %(name)s - %(levelname)s - %(message)s"
)
logger = logging.getLogger(__name__)

nltk.download('punkt')

class Config:
    MODEL_NAME = "microsoft/DialoGPT-medium"
    EMBEDDING_MODEL = "sentence-transformers/all-MiniLM-L6-v2"
    MAX_TOKENS = 1000
    REQUEST_TIMEOUT = 10
    MAX_DEPTH = 1
    SIMILARITY_THRESHOLD = 0.5
    INDEXED_URLS = {"https://calendar.google.com/calendar/ical/south.spencer%40sspencer.k12.in.us/public/basic.ics", "https://calendar.google.com/calendar/ical/hs.spencer%40sspencer.k12.in.us/public/basic.ics", "https://calendar.google.com/calendar/ical/le.spencer%40sspencer.k12.in.us/public/basic.ics", "https://calendar.google.com/calendar/ical/re.spencer%40sspencer.k12.in.us/public/basic.ics", "https://drive.google.com/file/d/1gNTdzCSRG8h-GY21zMsmuyQEv_16eiq_/view?usp=drive_link", "https://drive.google.com/file/d/1wxQKZuI77-3cPceJ8mKbREQDSgEKXCFX/view?usp=drive_link", "https://drive.google.com/file/d/1vDix0a2shD7U46IVOprqnNWMzC7D01vl/view?usp=drive_link", "https://drive.google.com/file/d/1ShYZl7re5cdNoORTCJ-6vVp2rKM9xa_d/view?usp=drive_link", "https://drive.google.com/file/d/1Gky4kY1KGt6P4wxx7OPatmfSc_VZGx6v/view?usp=drive_link", "https://drive.google.com/file/d/1aoK7oA45je8Tkl7v2dEnYseHXFaisJ-W/view?usp=drive_link", "https://drive.google.com/file/d/1NG3ak3YqLtNEbYwT5U52tnmgyTK_6NMo/view?usp=drive_link", "https://drive.google.com/file/d/1FH8r8JeOEXhS7BUIWKM-FyrLN8Nu3oHm/view?usp=drive_link", "https://drive.google.com/file/d/1YZ4dushzkbmQPI98rnUJqfmDQJoVfvpn/view?usp=drive_link", "https://drive.google.com/file/d/1PJj23lAF45N0sBg6PknJLHl-OYsF0QWU/view?usp=drive_link", "https://drive.google.com/file/d/1DeJ3fTy61I7n86ofmrZUg6jzAqOsg-w-/view?usp=drive_link", "https://drive.google.com/file/d/1aunHxceGluv4l9cWWEKadWzNwnpEeFX2/view?usp=drive_link", "https://drive.google.com/file/d/1FBhLaXc1To-I21eqhVMzneDnmsZSfi3r/view?usp=drive_link", "https://drive.google.com/file/d/1Kvjpiq9Y_zUviyxYN9SERJ8dHxco_br8/view?usp=drive_link", "https://drive.google.com/file/d/18YN4uX8o108FpYqiWHbOqynnMT-w7fIe/view?usp=drive_link", "https://drive.google.com/file/d/1ju5O6J_3w5ffjWJcIfzQmTa2JFiK4rG_/view?usp=drive_link", "https://drive.google.com/file/d/1awbYPSnxSIx2Gb08DSJgUyx-dGDkgmHH/view?usp=drive_link", "https://drive.google.com/file/d/1ciKJS5HuDO2KR9wG9pqcf39mFa5gVw3A/view?usp=drive_link", "https://drive.google.com/file/d/1mt8qWowJnzd9O-RPX39cWg_w8wn6IDCn/view?usp=drive_link", "https://drive.google.com/file/d/1GFc7aKVLGFl23OxMiIGZZczx_D48C-hL/view?usp=drive_link", "https://drive.google.com/file/d/1_1mQn2ika8MypPfUbW5o3jMjZXaqFcXj/view?usp=drive_link", "https://drive.google.com/file/d/1UOyDdf5PPEguLdA7pr8N6biUtre0WrAc/view?usp=drive_link", "https://drive.google.com/file/d/1uvBJs6EUwYfGEoK-9YMmG65gEm1XKXOB/view?usp=drive_link", "https://drive.google.com/file/d/1t00WkdwoVR5GjPOLG0mP41uhraG8U7Yv/view?usp=drive_link", "https://drive.google.com/file/d/15s_b_79QvnMC3vz2phJawILiPL3S8A9U/view?usp=drive_link", "https://drive.google.com/file/d/1nClSEZE42T6hsDQ_mn7Y_BOkoFoV8I56/view?usp=drive_link", "https://drive.google.com/file/d/1JBM0pQvCWoFhr1ALWDmgrFNeYqSm7UTI/view?usp=drive_link", "https://drive.google.com/file/d/14eCiz8u12VnMrBDD7T-ow0re6eCF5Pzk/view?usp=drive_link", "https://drive.google.com/file/d/1ZbyVweQrbRc2pFRkRz_kF7Q6LYkGu3MV/view?usp=drive_link", "https://drive.google.com/file/d/167rFgOViNzNMhbXmlf9cHgc6efomzHab/view?usp=drive_link", "https://drive.google.com/file/d/1uR7RyujbSkLz4k8zQzzbrf-JKOYG5-Bh/view?usp=drive_link", "https://drive.google.com/file/d/1GdNQ8j7S1kOpxmIQ4rPKn3antkkXd2OT/view?usp=drive_link", "https://drive.google.com/file/d/146nf7ZFYX4ypMGRHTd2Z1WJtFWnp8_YL/view?usp=drive_link", "https://drive.google.com/file/d/10rKZhq2RV9QEYEV3h1NgeWngHu_NGDeC/view?usp=drive_link", "https://drive.google.com/file/d/1Oh4QpMMApcm-9GKsqd-hALJyGGedsaIK/view?usp=drive_link", "https://drive.google.com/file/d/1Aol_v7n-9XHZBGHyM_NGbkf25m07T3Wl/view?usp=drive_link", "https://drive.google.com/file/d/169HBRiDEqRrnbzSBgaLT3npcc7vRBu4G/view?usp=drive_link", "https://drive.google.com/file/d/1UL6e35UtcYxSh8aonFOFmSeBw6_jonZl/view?usp=drive_link", "https://drive.google.com/file/d/1U1mx9vFLyUx-1Ej1gSto76urTTHwoUAN/view?usp=drive_link", "https://drive.google.com/file/d/12e_FI7UZJl3BjJSsQ5RbMsQq6jw3V7ZC/view?usp=drive_link", "https://drive.google.com/file/d/1ov9J5PXyedvDD1XRO44DczdUsSzrzaS8/view?usp=drive_link", "https://drive.google.com/file/d/1MFX4dw6575Wp_uNSw3OdS4ebi2-ebW9m/view?usp=drive_link", "https://drive.google.com/file/d/1hck2cZzzsWlPbdv85JmqKbSQov_vtAfe/view?usp=drive_link", "https://drive.google.com/file/d/1mk27rjFx8Yvzlps9TZ1GYMFm4EKMJnMZ/view?usp=drive_link", "https://drive.google.com/file/d/1LSiDDpLfvcDlX8edksvb28TP7LQP0ceg/view?usp=drive_link", "https://drive.google.com/file/d/1ztlp8vwK6PFiVz5mHxWtxifNt2oBds-Q/view?usp=drive_link", "https://drive.google.com/file/d/1Qzyea19kdfqyyFD_msR5BO_AnAtble0y/view?usp=drive_link", "https://drive.google.com/file/d/142kP6zJKLQ9E9U-KJLms82jXrfrB7lsN/view?usp=drive_link", "https://drive.google.com/file/d/1_0uMOJaEpE0hrzD6umPivf7ZrJ_B7Awc/view?usp=drive_link", "https://drive.google.com/file/d/1T4i9bNUoQ6uqPH8EB8rNceprl7h4DA2L/view?usp=drive_link", "https://drive.google.com/file/d/1t-vyEMvEtFqe0h-Xssuquo7-4kOTNGvs/view?usp=drive_link", "https://drive.google.com/file/d/1LSuqga7MgIojRBlDzv788JbhqD1GmdxV/view?usp=drive_link", "https://drive.google.com/file/d/1gCvqWEvCQ8oBWBw4uphYX7zTGrYNNWXF/view?usp=drive_link", "https://drive.google.com/file/d/1IxNuk1jav-TjVvwYerB0lZAKNyHS0dUk/view?usp=drive_link", "https://drive.google.com/file/d/11cdVMs1YRw3MXmd04JLiuusx8nMJLjSH/view?usp=drive_link", "https://drive.google.com/file/d/19yLDRf4wzapEP0PLOShGPLJhrnt9TvJu/view?usp=drive_link", "https://drive.google.com/file/d/1xgh11TYt1e5pYE5N9mUARjg-D5Y0m7qg/view?usp=drive_link", "https://drive.google.com/file/d/1OXmntrhZ_2z-KftU07R-SHCcUKMPWBRQ/view?usp=drive_link", "https://drive.google.com/file/d/1aLs_gQjX1SHfIsREg7KdG2JbYioSfXpe/view?usp=drive_link", "https://drive.google.com/file/d/1V42lLs7xo65WhGKYm0WzYdGvDPIF_Bkb/view?usp=drive_link", "https://drive.google.com/file/d/1mxj-eGId_xZEXteJoFxVLZg701dqfJ7K/view?usp=drive_link", "https://drive.google.com/file/d/1yKHDHcSUDrtDsOIrsJsVlEKkxySsUcgj/view?usp=drive_link", "https://drive.google.com/file/d/10yTEBlfCRZ7f8A_Tx3RkYXdFvXfcK1xz/view?usp=drive_link", "https://drive.google.com/file/d/1LZcSI-QnAcw0aqlADHi7Rcs4RgqQfMjX/view?usp=drive_link", "https://drive.google.com/file/d/1z2AZQvDCZVu7GLK0mXJq55ObWsxfWMgs/view?usp=drive_link", "https://drive.google.com/file/d/1q35GQFTd6dFWj1vZDmYHEjyw5r171f0q/view?usp=drive_link", "https://drive.google.com/file/d/1Yjbun_-9Z2akhK0Izv0vrK7frX5uiVxe/view?usp=drive_link", "https://drive.google.com/file/d/1qkEJKU-73AoevioFk5roTPRADE1hiJyO/view?usp=drive_link", "https://drive.google.com/file/d/1XqbFbyoD1hts8Sq5vBLA40u4csHDOTM2/view?usp=drive_link", "https://drive.google.com/file/d/1jc52u2dLRGJkllLzGWlHnYuAGCoYwHvX/view?usp=drive_link", "https://drive.google.com/file/d/1DvSAe52A9GUu85dpJizJSw7bh3cXphW5/view?usp=drive_link", "https://drive.google.com/file/d/1y7MqM_SDLrzZbaSKZLBDhaiWqSynG50v/view?usp=drive_link", "https://drive.google.com/file/d/1PxtA_l0Ntcz0ZZy1ut8a1GHIisAscJBS/view?usp=drive_link", "https://drive.google.com/file/d/1mAcHJ0t4uQtzdwo6ibbyCsojjLM8FqHK/view?usp=drive_link", "https://drive.google.com/file/d/1xcdOoTVesjIpyU5Mmb_zD6WxHzxG7h_e/view?usp=drive_link", "https://drive.google.com/file/d/11OEmiHOgQBBmTSsfs2yv7Dwbx4H1gArE/view?usp=drive_link", "https://drive.google.com/file/d/1VKkofGegA3vOUoaS0NMP8EgwaNLkdvQa/view?usp=drive_link", "https://drive.google.com/file/d/18JnQZhelSIbUZ2uJRGW5ZOQ4RPYxLIr6/view?usp=drive_link", "https://drive.google.com/file/d/1UBEA00RATwDKptG5mp7idhotLlv0Ehm9/view?usp=drive_link", "https://drive.google.com/file/d/1hL80abacnLCWSO1nTEav0rTeY515TCoS/view?usp=drive_link", "https://drive.google.com/file/d/1HVHckJUJOYyOm43_TCJP7N3IFx7noVyz/view?usp=drive_link", "https://drive.google.com/file/d/1f1s-x50XKgkpcF5-5_PJGgI35JEzwjYF/view?usp=drive_link", "https://drive.google.com/file/d/1Nb8W9SHyBmfOQ9Y9_PFuz8V6oJpDTku3/view?usp=drive_link", "https://drive.google.com/file/d/1oUxu9zJ8EspLY9w84e1X9TztX4VNGuin/view?usp=drive_link", "https://drive.google.com/file/d/1s-zM8dukhe9S0-eu8A86I6LzcDWvFoJs/view?usp=drive_link", "https://drive.google.com/file/d/1QBU_t9cmNq8tKXh8XRMf1zVh5c0W9Eiu/view?usp=drive_link", "https://drive.google.com/file/d/1OpedffzPAVD3H1ij6aXKskhyLELAsceP/view?usp=drive_link", "https://drive.google.com/file/d/1VMn6Afhs02Ed_dW0XK-WNDGxX1NGc0t-/view?usp=drive_link", "https://drive.google.com/file/d/1eCv9OzrJnea28oBOV_qOwmuzvfWMmrSr/view?usp=drive_link", "https://drive.google.com/file/d/1ZBEhYvuhXnMHdTcVkyMgo7x8944ot7d3/view?usp=drive_link", "https://drive.google.com/file/d/1X5ukI9Qc4QfNaGr1O-eMzpwNnqTGSZnj/view?usp=drive_link", "https://drive.google.com/file/d/1BzxqDN2QmR15lf9d0dpXxEPeJ-jpiI4b/view?usp=drive_link", "https://drive.google.com/file/d/1BVkrM1kG86Ltq9m3XjAXIn7qtiIRS1HG/view?usp=drive_link", "https://drive.google.com/file/d/1tUiW__swsp4cSk21oZPTXKQg4NQqeq3S/view?usp=drive_link", "https://drive.google.com/file/d/1s_8xwkDOdmU6KnFIe0VnuBxLNHfF3Xe5/view?usp=drive_link", "https://drive.google.com/file/d/1OqqA6_cbYTcYJet1BEli27dB1EM8I4Cd/view?usp=drive_link", "https://drive.google.com/file/d/1fPnac9zSXAY9tIBG4YVsoXbTetrNICQe/view?usp=drive_link", "https://drive.google.com/file/d/1l2Ry3bJz7bGVXb8G2q0-Jr5OXE-l_Ym1/view?usp=drive_link", "https://drive.google.com/file/d/1f1ofvoKlX0Mpw0o2HBLm17oUo8Xaz-Tg/view?usp=drive_link", "https://drive.google.com/file/d/1bOB9Jt0Ep44ujY1uxh7i4vOH8jofgoBZ/view?usp=drive_link", "https://drive.google.com/file/d/1j7nsBCOr6MaTLAG0wClra_d9yXPoDQkU/view?usp=drive_link", "https://drive.google.com/file/d/1jhLwkXDif2hd74huSaRotVkvtdSH5-z0/view?usp=drive_link", "https://drive.google.com/file/d/1pmkHlFRDOZUe1OWv3YxnUk_ff77MhRFl/view?usp=drive_link", "https://drive.google.com/file/d/1jqToolNY0ifi3G6NBB39glgALUbQm3pv/view?usp=drive_link", "https://drive.google.com/file/d/1jIPONsKKAExCEfJkgoJYjC3w40EAe7d8/view?usp=drive_link", "https://drive.google.com/file/d/1189eS4KD83hXEjyX3geAEAQkbNkjDMD_/view?usp=drive_link", "https://drive.google.com/file/d/1Rk9RSfCXdbxN6Nn0kFJ6O08zWyOHSGA4/view?usp=drive_link", "https://drive.google.com/file/d/1BXNfM3dHD4sda8Z-lRSBGYHPZTZLiG26/view?usp=drive_link", "https://drive.google.com/file/d/1IW_CeflQTNjOIjytJ5-gVlJWbZk7ZIaN/view?usp=drive_link", "https://drive.google.com/file/d/1rxHGeFl1KgPL_6gLQDxmfdsBZqg9a4QV/view?usp=drive_link", "https://drive.google.com/file/d/1AwmXzNsNpe0qezhB7QbN9xOBdVcztRvn/view?usp=drive_link", "https://drive.google.com/file/d/1VyaSHUxwceZEqa_i2-MT63J9KF2L8VS3/view?usp=drive_link", "https://drive.google.com/file/d/1vK-bqDQ60hXzDjjXLAu_P1IAcvgRBf6g/view?usp=drive_link", "https://drive.google.com/file/d/1hiLQhXS0QJ-C61rb39Xo5pWf1kzpSrae/view?usp=drive_link", "https://drive.google.com/file/d/1CYja6-FL2LFRgjPeWCxY3PGO0tJR6PPA/view?usp=drive_link", "https://drive.google.com/file/d/1GRCIbV-NnvqmmvKglqI9arKQPp5sFM6_/view?usp=drive_link", "https://drive.google.com/file/d/1l6kx0wC4cvGmxRZ5W-AxRusF8geDk1yu/view?usp=drive_link", "https://drive.google.com/file/d/1b7_GkMcbNDjstiD8uBVq8egV52fJhZ91/view?usp=drive_link", "https://drive.google.com/file/d/1d56Ec-37accWw88a3PskQ3OqPntQQ0l0/view?usp=drive_link", "https://drive.google.com/file/d/11DIA9vh8MzFcJHvImXv8OuWP9q_Vem2b/view?usp=drive_link", "https://drive.google.com/file/d/112vn1b6dkq3GNVK32Qz3m5K59yHDlTID/view?usp=drive_link", "https://drive.google.com/file/d/1iWyGZoEUoHdM_4aYz0VTQX2Xk2Ya2eX_/view?usp=drive_link", "https://drive.google.com/file/d/1hRTPKoAWbNCFRd1fCELn_msQjbDL9Eix/view?usp=drive_link", "https://drive.google.com/file/d/1Ag1jv3CNSYOWr_dXxa2OtYG9bTpZs2BO/view?usp=drive_link", "https://drive.google.com/file/d/1VwZSiVyzzuptaNfgsUyHHETjuRqnG1ie/view?usp=drive_link", "https://drive.google.com/file/d/1IVWyQncV_-rOfkpoek9hitrlM2Kj7NrK/view?usp=drive_link", "https://drive.google.com/file/d/1_5gj8EbKzgNSJsOzGs_hv9fhpB8L-uNL/view?usp=drive_link", "https://drive.google.com/file/d/1zkZI-3Jp0p2UzruxIAKnRNZpthBQpokD/view?usp=drive_link", "https://drive.google.com/file/d/1oadonMtvXFb26CgK7SOvplzeviNY9itX/view?usp=drive_link", "https://drive.google.com/file/d/1L6CosuCoABXZyki2XPcjko6nY8BbUnsV/view?usp=drive_link", "https://drive.google.com/file/d/1UlVs22XeL8Kw6OzqYgFUNRW7J75E__mQ/view?usp=drive_link", "https://drive.google.com/file/d/1BZADq3P3dYrE3U9s3xHP1DTrZKGodXRQ/view?usp=drive_link", "https://drive.google.com/file/d/1wMly7a_w2IQmOYEo6-ddctYc5SAVbbbc/view?usp=drive_link", "https://drive.google.com/file/d/1JxuincHH79SJrG12ce6iZCoY7r0AG-zL/view?usp=drive_link", "https://drive.google.com/file/d/1IO2ENlNJkZtWCRt4UWZT85V29bDGL_m-/view?usp=drive_link", "https://drive.google.com/file/d/1Ph60H1JcsTQujeTeGwkj836tnqckjV5m/view?usp=drive_link", "https://drive.google.com/file/d/1UNLut1x6_kZf8ZbE8uWnmfNFzh1mkq0U/view?usp=drive_link", "https://drive.google.com/file/d/1IZpe_vlg1KbiDv_vwyCPdSC2TSpAxh3P/view?usp=drive_link", "https://drive.google.com/file/d/1O-lgr1AN9RlcZjMQS1jp-rXfdf7Ed-UU/view?usp=drive_link", "https://drive.google.com/file/d/1dmgr5K0XzOO5C43P6r16dvjz4qBkgEEK/view?usp=drive_link", "https://drive.google.com/file/d/1hWARs3wQnLE2YIobhpp1Xc1hoI2IYRN9/view?usp=drive_link", "https://drive.google.com/file/d/169VF86oxIjGpoTWrqnETXzoD5agHQRp4/view?usp=drive_link", "https://drive.google.com/file/d/1TgDrR5vGeG1Q8wYL6insSc8Dv8B0JJs-/view?usp=drive_link", "https://drive.google.com/file/d/1hY0v57gVUdfFo329DR9AFYpQuwLBBvyL/view?usp=drive_link", "https://drive.google.com/file/d/1M7H8Ni_gt_tz5QLL_WiHy19jGRWmdENj/view?usp=drive_link", "https://drive.google.com/file/d/1HRZxPQ066JLkplsZoM5tEn7F8S8zN_2e/view?usp=drive_link", "https://drive.google.com/file/d/1Eo-Zu7DGv1smiTbahTjkmeuSRkMLvANA/view?usp=drive_link", "https://drive.google.com/file/d/1SBDEXtzIwRTzAMSprM3_tOfGLLTFN7Ye/view?usp=drive_link", "https://drive.google.com/file/d/1IqFYSNeFV0l3Lv3lnZgUrB6OsKGkfEBm/view?usp=drive_link", "https://drive.google.com/file/d/1hHBnyqFu7DAz0CVhzWib_MjpqqNk5WZ1/view?usp=drive_link", "https://drive.google.com/file/d/1zGBHK0dDWNvSBEXwH_jtqEWSYj_P3ixa/view?usp=drive_link", "https://drive.google.com/file/d/1xz-4oSS6wbIM3rFXDsPRVFqs4zgtTVQ3/view?usp=drive_link", "https://drive.google.com/file/d/1oQjoZuETmaP2yvKSwpTwxbjGMxi5i_V5/view?usp=drive_link", "https://drive.google.com/file/d/1rd7je1LWi2Rc4KyFBGMfogb0CqodWIRL/view?usp=drive_link", "https://drive.google.com/file/d/1UXVIOF_yOlFSrN-zCNBs2J07Q3cIgs22/view?usp=drive_link", "https://drive.google.com/file/d/1aud7OsJD_VgcjR4tl-0NTsdByhOXcYYl/view?usp=drive_link", "https://drive.google.com/file/d/1gIkxwItUR37rqJgZu6u-D55hod1QkumS/view?usp=drive_link", "https://drive.google.com/file/d/1oPZmRoy27ByKyyYEvBQ2YfZGJ3edDlN2/view?usp=drive_link", "https://drive.google.com/file/d/1KCtwS-bcIL98ZoetZTS4m4csM9DTuyhq/view?usp=drive_link", "https://drive.google.com/file/d/1N12sUN1PBc2DnXydCd_o1LjJpUphdnqU/view?usp=drive_link", "https://drive.google.com/file/d/17cNEoZiNCYoURA3b4Pzq78PIXTsoDtxc/view?usp=drive_link", "https://drive.google.com/file/d/1qslE0JGtznx-pvkSTaPfwCxPD84oQNfz/view?usp=drive_link", "https://drive.google.com/file/d/1mzBFkep7GBqI-rfaPGemK6elrZRNW7m2/view?usp=drive_link", "https://drive.google.com/file/d/15mJpLzoRCTSSz9iRBq6JPwFrLCgNwqEz/view?usp=drive_link", "https://drive.google.com/file/d/1RE92vh9UgQS7PKIq4wHQGnE3sWOX8cE2/view?usp=drive_link", "https://drive.google.com/file/d/1h9a6bLZdtmiXk7yPmmI2rUpEO2VgTVvL/view?usp=drive_link", "https://drive.google.com/file/d/1IQuCps5-pITTD_vFHTMdCZoezluEfxcR/view?usp=drive_link", "https://drive.google.com/file/d/1A7_UEv9J53TSHjcrWMHQNB9jsagKVkRX/view?usp=drive_link", "https://drive.google.com/file/d/1kdXV0J7shf5WjlI7Mt_-DE2ip1Z_wYhF/view?usp=drive_link", "https://drive.google.com/file/d/1B1UX-w7Ojbx-e11SKlG46gbfaKDsHCyT/view?usp=drive_link", "https://drive.google.com/file/d/1qr3ZWvuyuUrxIm3WKvqsTD4YpxEokM7w/view?usp=drive_link", "https://drive.google.com/file/d/1DuIeunbj6W4a-ee0LnGJYuwO7M46XjUZ/view?usp=drive_link", "https://drive.google.com/file/d/1CjezA-zsak5lu7Btxo61HkkLKGMSF72v/view?usp=drive_link", "https://drive.google.com/file/d/1uqK02_naxpCo948DMp0dVZv3TZ4bs31A/view?usp=drive_link", "https://drive.google.com/file/d/1ghwf8m2X6pshvwsZVH0pTUNWePWBnvip/view?usp=drive_link", "https://drive.google.com/file/d/1keYR-IAXq9PYDTrHkp_BukSeHEzyn-oK/view?usp=drive_link", "https://drive.google.com/file/d/15fk8p5HQ07uusd7YcspfipMIMlEvhuQk/view?usp=drive_link", "https://drive.google.com/file/d/12g0J4OO1fTG_n8_i9VcOpJGyYqnPuqZY/view?usp=drive_link", "https://drive.google.com/file/d/18IsrwezCN0SfJ6iWqjGvzYnATs2ytLAu/view?usp=drive_link", "https://drive.google.com/file/d/1g0m_bKXHUGv1bJEmXmCZ89OnNQex5hmQ/view?usp=drive_link", "https://drive.google.com/file/d/1Q5qkM5KHc3smlBF4b-C1M0LL1mlltMcU/view?usp=drive_link", "https://drive.google.com/file/d/1BVstKY7rCSN-gvsidCNc-e9c0NzXH3yN/view?usp=drive_link", "https://drive.google.com/file/d/1EWEsnBa35F0k2_amfXc5VY7ky6VNAzPG/view?usp=drive_link", "https://drive.google.com/file/d/15Yj2mPbGFBuiFqxuX9KLT7U2MikyuVKn/view?usp=drive_link", "https://drive.google.com/file/d/1BPl4XMvqYuA7N7q008XsshJetj2quk2Q/view?usp=drive_link", "https://drive.google.com/file/d/1cZnPsQyS_RbnDymdaNfB1kyA3VlHuKUo/view?usp=drive_link", "https://drive.google.com/file/d/1FEqcABToTL0ZQoQpB0rtnT3blx3HI9hN/view?usp=drive_link", "https://drive.google.com/file/d/1nblVUiZF6g9R5ZU-qof8ERViRWZfKsyZ/view?usp=drive_link", "https://drive.google.com/file/d/1ej14G6a3cdSNzbjc96IFGGeJwLojAsab/view?usp=drive_link", "https://drive.google.com/file/d/1qOW6dZfmsYiz3A8TFUHeJ-xeUODSK_ZQ/view?usp=drive_link", "https://drive.google.com/file/d/197pz7gmKtuQ8cc7EINjlJes5iGnwooGf/view?usp=drive_link", "https://drive.google.com/file/d/1PNWK_AM-XtrOdHiQTb3LdXrIO9sMg_YP/view?usp=drive_link", "https://drive.google.com/file/d/1gNa9Wm1yXINLOIkGFw6LGetgFL_2kL-F/view?usp=drive_link", "https://drive.google.com/file/d/12lwVb_hYd4RH6azzVCt_np-2nNQhdfzS/view?usp=drive_link", "https://drive.google.com/file/d/11nxk8D2I55NPwu1_UTCnmKJ1atu__kug/view?usp=drive_link", "https://drive.google.com/file/d/1geXEsVtMPS5YevYtT3jt2cAjhNjQ52LC/view?usp=drive_link", "https://drive.google.com/file/d/1IZzX6Hxpx2PCGP_FBrsng8Nl-pPC7ldY/view?usp=drive_link", "https://drive.google.com/file/d/1hCAme9PrM5bsFJW8Gt4BbW8XgR84Jfiw/view?usp=drive_link", "https://drive.google.com/file/d/16U-KkN0XVUxvxpEQUT1qaZZrk4-2kv8p/view?usp=drive_link", "https://drive.google.com/file/d/1AlEM3aZCdRKr-CwA_NqXr6x2uyFN6SDO/view?usp=drive_link", "https://drive.google.com/file/d/1O_oNsWwxT7GmaZzEXXQ_UZgiTwD9Ckp0/view?usp=drive_link", "https://drive.google.com/file/d/1RgETErHkP1qEZnFhm14a5ROZD1LwTtQ-/view?usp=drive_link", "https://drive.google.com/file/d/1hBT9WBQrEyJr8TpMHndDTJXZmZVpgFxm/view?usp=drive_link", "https://drive.google.com/file/d/1nkkEt6F2GlNozy9MMxZOMdPNXe1BgO8X/view?usp=drive_link", "https://drive.google.com/file/d/1CXWbaxxIrVT0fHDlRStWoJxouWdSttf-/view?usp=drive_link", "https://drive.google.com/file/d/1Vv0ZWB8MbYSo-uFgLHiqwEqn1kUvC1Br/view?usp=drive_link", "https://drive.google.com/file/d/1HdQCwpDyfBx5QhmgiqC-CboH2SdGsoCv/view?usp=drive_link", "https://drive.google.com/file/d/1agxdZShCFGULCL4U7fNhQuXnK3zREDAI/view?usp=drive_link", "https://drive.google.com/file/d/1442L6uMT9ylpPs2C--dmR_ko8wLMJwZc/view?usp=drive_link", "https://drive.google.com/file/d/1Ic5K11CSy0-_gvqNv0qCJq_NFet7--9I/view?usp=drive_link", "https://drive.google.com/file/d/1Cb-LpyeFmjyalDz5BPaTI9A6ZfO-XEjN/view?usp=drive_link", "https://drive.google.com/file/d/1929Eo134JgwNHjPM9y1kqgs5f2R4P3Po/view?usp=drive_link", "https://drive.google.com/file/d/1KI0rgqmhECtlev6z2DKRRFeYvp0z4sn7/view?usp=drive_link", "https://drive.google.com/file/d/1NxwBOct24nFbwl2_5rLXv6oqtr7Og99I/view?usp=drive_link", "https://drive.google.com/file/d/1lrPQIK4k8M5iH9G4UfB2AsC_47AThhID/view?usp=drive_link", "https://drive.google.com/file/d/1s8xX7KN2OuhDUIcbidnES_5sl58N54ss/view?usp=drive_link", "https://drive.google.com/file/d/1b_Hwb3dxR-S-4iCAv8X1lG305pubhT7D/view?usp=drive_link", "https://drive.google.com/file/d/1vZ3U-cZY5pqKypHnIAfj5DpciN65nuIg/view?usp=drive_link", "https://drive.google.com/file/d/1PDN7_Jd6-jk4cFqqDbn1EHnhctmdvXty/view?usp=drive_link", "https://drive.google.com/file/d/1E1V35w4nHLijvB7CE-FhRJe5FmUNi8ra/view?usp=drive_link", "https://drive.google.com/file/d/1RVFHercH2erHC2qFGOopRuKihtBIQmg7/view?usp=drive_link", "https://drive.google.com/file/d/1_ZqIw-7D7eZz3kAkUyhWgZsyVMhUpESJ/view?usp=drive_link", "https://drive.google.com/file/d/17BiPlp_5GhKj4ZMqtd6Gk4-lec0ueOCd/view?usp=drive_link", "https://drive.google.com/file/d/14cvo3K1FT64lmnSwplWEpue9QEbN3uNW/view?usp=drive_link", "https://drive.google.com/file/d/1c7xvCrdYlFa7TYEcfDsF8lxnTd3peb5u/view?usp=drive_link", "https://drive.google.com/file/d/1bxl_t9C-SHkR-7UanK4C84-xwWoEdlZ8/view?usp=drive_link", "https://drive.google.com/file/d/1_DBCnQqJ-T7jS-cLiTatwT3f7KCYQLxg/view?usp=drive_link", "https://drive.google.com/file/d/14mE65Bete1r85buqOuHDv-jXgFWxiwvb/view?usp=drive_link", "https://drive.google.com/file/d/1Ljd2zliG5oHZ-SJ3rTtNFHUOuwYCnLHC/view?usp=drive_link", "https://drive.google.com/file/d/1x7FTY1wUVdalLR5vfPSkJZy-h5yVdHiU/view?usp=drive_link", "https://drive.google.com/file/d/1KYs9Sgchi5I0KBbsT-uttj_2Z9M0SokC/view?usp=drive_link", "https://drive.google.com/file/d/1NyUxWhgwZA0fSoihDkYd-Ft7GHTn8siw/view?usp=drive_link", "https://drive.google.com/file/d/1zcxuSoa6UhSi3zDc6lTbYbyuCl3zD21L/view?usp=drive_link", "https://drive.google.com/file/d/1GG3zccd6ggj5u7viykPM33dFMN6iRbFM/view?usp=drive_link", "https://drive.google.com/file/d/1Y2sPyCetJFlBrjKJml1BqOactRP7kqn6/view?usp=drive_link", "https://drive.google.com/file/d/1fRZv4jbT5i9vLPCLRc5mmfzbS87IArkD/view?usp=drive_link", "https://drive.google.com/file/d/148ExCpM2NURVryAyexopagSvtrr72rce/view?usp=drive_link", "https://drive.google.com/file/d/1r58b7Vm7yiZGqvkTCUZ9bdl5nQyp0MAz/view?usp=drive_link", "https://drive.google.com/file/d/1pBD6ILHHLJ1078tmV_78HoY4o76ze73P/view?usp=drive_link", "https://drive.google.com/file/d/1T7Pl6CE8W7LntUtDdM5BceQh9A-y0H8z/view?usp=drive_link", "https://drive.google.com/file/d/1js3syP7gpcYV2g68lp8txcFb4LkTymcu/view?usp=drive_link", "https://drive.google.com/file/d/1bL6fu36cuklapV7UKNmvnGX_vONTdaDh/view?usp=drive_link", "https://drive.google.com/file/d/17FialEwjWtd4_y-09JVsY_e0RFlAB0Mg/view?usp=drive_link", "https://drive.google.com/file/d/14bFHwzQGs5W0srWMXWmTwqvgkk_x3_Dx/view?usp=drive_link", "https://drive.google.com/file/d/1AUqVhjpShGCjFuB4-XHcPtBY6ZEbSx_V/view?usp=drive_link", "https://drive.google.com/file/d/1ZZJzErEmm9Y5FBaOafh8lIRufcfLlraN/view?usp=drive_link", "https://drive.google.com/file/d/1sGsapDQ_Nw-yOEKK-i5KjNRrSO8cirMb/view?usp=drive_link", "https://drive.google.com/file/d/1Mfp7SjyqKE5Z02Z8yg_3T5Tr8z3lyA19/view?usp=drive_link", "https://drive.google.com/file/d/1Fts-V4wRDeuUH8S4xDbwa5qip3JxL6lz/view?usp=drive_link", "https://drive.google.com/file/d/1t0IQl11w4myNr1h_20iVQePZKbdaC_y4/view?usp=drive_link", "https://drive.google.com/file/d/17oDFopvbJ7pYSQj6z2mm16fpzbiEvOGd/view?usp=drive_link", "https://drive.google.com/file/d/1crsNKWeYD4kSscbB8ZQd_9uHGhDu5eS9/view?usp=drive_link", "https://drive.google.com/file/d/1AA-tbaOy_ajmq1zKwQBaSZnCuOz34p-f/view?usp=drive_link", "https://drive.google.com/file/d/1Bef7xaRPWB7idW2VriBi5Pqwi88Y9vd9/view?usp=drive_link", "https://drive.google.com/file/d/1Iwc9UJdp2xfRBQBdksnCyCoufhSBGF_L/view?usp=drive_link", "https://drive.google.com/file/d/1Ky7oC_vEdfD8BiFfSpDRsxwR4-38pkY2/view?usp=drive_link", "https://drive.google.com/file/d/1Dj3y4BfeFKfRL2v2T6EBnsYR5nKqsysj/view?usp=drive_link", "https://drive.google.com/file/d/10euyk7WvOhCwXY8wZFe4Jj0oqHTi7PPP/view?usp=drive_link", "https://drive.google.com/file/d/1Ky8U3kpD4rjgGLZYhGNov6Sqys7_IkG3/view?usp=drive_link", "https://drive.google.com/file/d/1Bnlj6DY0zv3fmu9jxPqxrpE9aG-Yapkx/view?usp=drive_link", "https://drive.google.com/file/d/1vMMy282pvbb_FT5ifca84vVXvVQVdnx5/view?usp=drive_link", "https://drive.google.com/file/d/1Z7l_M5f8lVWF0MiZq9Sc6P5cpocHPs6O/view?usp=drive_link", "https://drive.google.com/file/d/1BvrmsacYCxJbI6pieajDq648sBM6x_8o/view?usp=drive_link", "https://drive.google.com/file/d/1rCNZwXfc_Lo9yC-_C2ymNCWuFdqwSylR/view?usp=drive_link", "https://drive.google.com/file/d/1-4aqTJiUf0Y8_1S5M69mdV_9ICD-YXgE/view?usp=drive_link", "https://drive.google.com/file/d/1Me11-RwFhevlP2CmscGMCbtCUXkq3EWO/view?usp=drive_link", "https://drive.google.com/file/d/1x1HpjBUbOYpVh2296pVKKddoCSvBYRmd/view?usp=drive_link", "https://drive.google.com/file/d/1t42CJPpdWS6B7n3b3yiZUJNl14ZcAOT3/view?usp=drive_link", "https://drive.google.com/file/d/1M0Z5CL338MIWUIsF71YeSK_aoVyNcCQj/view?usp=drive_link", "https://drive.google.com/file/d/1_i0DalURKz2qGhUI4x1QL_B_vAXYEijG/view?usp=drive_link", "https://drive.google.com/file/d/1Ue0-LSdDvjpDg2dzS4GXYAPafo-5n0N0/view?usp=drive_link", "https://drive.google.com/file/d/1T77sH-_WKFL2wVAufxHNth3qPH7erbQF/view?usp=drive_link", "https://drive.google.com/file/d/1EmC7xOoj5FrsLVgNXF4Y3DhJDilkfb7Z/view?usp=drive_link", "https://drive.google.com/file/d/1kD7i0EtZJh5Qg7HQrxxxA0e8SC7abm47/view?usp=drive_link", "https://drive.google.com/file/d/1LtIOuqxxNkmf5JnHbr7MeiNmfNs_ULXo/view?usp=drive_link", "https://drive.google.com/file/d/11X-T4QnTawOQXWS0NznRgYrTKooEQ6Pf/view?usp=drive_link", "https://drive.google.com/file/d/1XNAXDKyx93XYixMJl_Tc2JcZ6QwWqnRZ/view?usp=drive_link", "https://drive.google.com/file/d/1VpGKt4_kcRCoJdlStZqfMfU4YrkRCF29/view?usp=drive_link", "https://drive.google.com/file/d/1wdZU12eD5YqITEP0i7THTT239SIYq_xR/view?usp=drive_link", "https://drive.google.com/file/d/1mFTmRpiAM5B-LbFM9gS9lycc751GMQUL/view?usp=drive_link", "https://drive.google.com/file/d/1hp7LXVc82jKNOxWz7RA8YLX71MYukacr/view?usp=drive_link", "https://drive.google.com/file/d/1QDWra8jYp--LNBkhAUA9iMACgktRBqz4/view?usp=drive_link", "https://drive.google.com/file/d/1US_YJlCH7rt0aFQCX24-5XLdpGteL0UX/view?usp=drive_link", "https://drive.google.com/file/d/1GrtrjSjWrtcDKhu8aBbGEUUw0LVWTIJy/view?usp=drive_link", "https://drive.google.com/file/d/1y4Ogg3BRUIqU67gWAhnQjOfxepjAN2FI/view?usp=drive_link", "https://drive.google.com/file/d/1AZT_RcZaOfkkWQQR8IfIICprGQUqro5N/view?usp=drive_link", "https://drive.google.com/file/d/1Lgh9nu1s0iMJysXed9Z-Dbt3eG3Bvlu0/view?usp=drive_link", "https://drive.google.com/file/d/1h7ft8gbf4CyCPHJc-0FQ9yeYeLDjQOF1/view?usp=drive_link", "https://drive.google.com/file/d/1jqggJ3gkDVcV4F5JX-E8eGKzVToT2nRH/view?usp=drive_link", "https://drive.google.com/file/d/1kNdZtb9TAziQ3DXTluoCOlgrRMs1cp4c/view?usp=drive_link", "https://drive.google.com/file/d/1LlTUTmYLUXksIF_tfogjXfbFmRJfgaZs/view?usp=drive_link", "https://drive.google.com/file/d/1mxtDeIYMRv9_IzWIJrHxzTadDlkJaQFI/view?usp=drive_link", "https://drive.google.com/file/d/1c2LggHQeq_205CCZA8N4fOTffUb1SQ7i/view?usp=drive_link", "https://drive.google.com/file/d/16Z8uJ2SXCaf0MNL9PMJ4oVldFcv1cLwa/view?usp=drive_link", "https://drive.google.com/file/d/1eRmIFuxg0LWnk3lzzwCO1xZgxLApCLna/view?usp=drive_link", "https://drive.google.com/file/d/1UGOJJjHzRVi350iE-8Llv_j4S-HXfCM7/view?usp=drive_link", "https://drive.google.com/file/d/1KjhEnseQVGpmf8G9mLhSEkAK8k_Q88sx/view?usp=drive_link", "https://drive.google.com/file/d/1vbRAZgGUHM6Q1IbddMOxrRENWb0wjjYV/view?usp=drive_link", "https://drive.google.com/file/d/11wSrybzqac_NIsPnH1L-7mS370CxxBw0/view?usp=drive_link", "https://drive.google.com/file/d/1-CZZ6cFUZGw494b0rU7d8HU8GBnoiNNg/view?usp=drive_link", "https://drive.google.com/file/d/1OzyW0EkSxptIbZkT0EC3rASFV5QrnRjN/view?usp=drive_link", "https://drive.google.com/file/d/12kDJ6VMvvI6Sy3Tr5pchQh4LQqQnk9dX/view?usp=drive_link", "https://drive.google.com/file/d/110DG70VHsSEA7yhrXJ8wL439nlsU9cV5/view?usp=drive_link", "https://drive.google.com/file/d/10iheQHkqYqgpZJWMZItH9rsuZzXQR0RA/view?usp=drive_link", "https://drive.google.com/file/d/17X2zyEFlujAmkebAUuNiHI-l_K2t9jZW/view?usp=drive_link", "https://drive.google.com/file/d/1nuZgmEdqjAuGN9CJzd3vkGumSF-RrwQS/view?usp=drive_link", "https://drive.google.com/file/d/1GmdPkiVv7YfwZao_uw6B2DJb3fuAzEIy/view?usp=drive_link", "https://drive.google.com/file/d/1-5z0UEDmpAeReaGxN9kRrxm5KSjoIeSD/view?usp=drive_link", "https://drive.google.com/file/d/1zHzrcfNl6vDfjElu8wiTMd2CBpYsLaUj/view?usp=drive_link", "https://drive.google.com/file/d/19mQJ1bPzE6kTslGtNCr79lRgWVOFJ1Xc/view?usp=drive_link", "https://drive.google.com/file/d/1WSenbnykCaQ78RiQCg5LWkKYiqvsFJim/view?usp=drive_link", "https://drive.google.com/file/d/1ZBah5r4EcMGNeflQ_l5RPNcyfVX0CRhw/view?usp=drive_link", "https://drive.google.com/file/d/1WbZhBA-vXiGoBy48xvVwM_c5x8KaAjKA/view?usp=drive_link", "https://drive.google.com/file/d/1BPE6GbfZ4qAOonwX51gFyxopcmGR2y4g/view?usp=drive_link", "https://drive.google.com/file/d/1WESg82w2F15TX03wAIIApNQf42MsBMLV/view?usp=drive_link", "https://drive.google.com/file/d/1urc7dkxLCCU72gmRKHoJ784y_5wL_UUl/view?usp=drive_link", "https://drive.google.com/file/d/10jfiURE4BgRZ1aLN9WH_sw3DNhJ9gR84/view?usp=drive_link", "https://drive.google.com/file/d/172e_Pe_hBX4s-PJCqQkhoVdALSuvb2_q/view?usp=drive_link", "https://drive.google.com/file/d/1Y4C3A8NWP4qI57JbOG6kTb4kdm-xzPWU/view?usp=drive_link", "https://drive.google.com/file/d/1NtsZKRjrh1ZUVe866pAT2skYEMK8O4xe/view?usp=drive_link", "https://drive.google.com/file/d/1ABsrn2OSsKoH7SKBsepsq5IgQAwubcBZ/view?usp=drive_link", "https://drive.google.com/file/d/1VKIY9ZM3ZqmH90v-4PLCmaNC3G6y5V7c/view?usp=drive_link", "https://drive.google.com/file/d/19qI_KBqQvta1vjKRhlydsKWILe3PRjGX/view?usp=drive_link", "https://drive.google.com/file/d/1HyowzSLbytIeiYeihec3zwxsT1RBApvK/view?usp=drive_link", "https://drive.google.com/file/d/1U18sbKJALHsqOcUb2FhQUswcAcEdp0AT/view?usp=drive_link", "https://drive.google.com/file/d/16a44liQcgChQK6oKl_p8Y_tfZIEvaonk/view?usp=drive_link", "https://drive.google.com/file/d/1b8ktz8CAeI_QBy_EbhxIzfoBflxsxME5/view?usp=drive_link", "https://drive.google.com/file/d/1l3q259-GjfWrdaswrAI1gvUZkjuQsPRM/view?usp=drive_link", "https://drive.google.com/file/d/1jf-N-kVWy6JPPTJQ-22tkYP1OFE6Z4Sf/view?usp=drive_link", "https://drive.google.com/file/d/1NGyqpsesI7EDCzdDKjhLhvv-b4C_N-X-/view?usp=drive_link", "https://drive.google.com/file/d/1XVJuggKW9W3pN4wKQd2xi24Kk0-tLXvI/view?usp=drive_link", "https://drive.google.com/file/d/1bu-Va5teeRI3KxMjWoFl77uthtVHJx1O/view?usp=drive_link", "https://drive.google.com/file/d/1T1sh0g2dZTysHOWsMQ-NokDins_9CybJ/view?usp=drive_link", "https://drive.google.com/file/d/1ogozL-alz20N9-lx564-nV6kUxRDj41X/view?usp=drive_link", "https://drive.google.com/file/d/1AKTN3B29KnBO8WbVSCQHamIm5m9i25X6/view?usp=drive_link", "https://drive.google.com/file/d/14oCQuzDcOYsNx1FNMb9q2_mouK_KTyS6/view?usp=drive_link", "https://drive.google.com/file/d/1Dz6SBJgX4LewZV0WOqIoeICvqncMjvvF/view?usp=drive_link", "https://drive.google.com/file/d/1kJWKxyLPN9WxJQEMD00h8b0neXbBv6o7/view?usp=drive_link", "https://drive.google.com/file/d/1PkDlBO1bARtzT_FPaOWCWP6XsLZWr0oE/view?usp=drive_link", "https://drive.google.com/file/d/1X8daLhr40-ao00JfYuwmUi0KY1QQOgIZ/view?usp=drive_link", "https://drive.google.com/file/d/10EgIIldSkKy8afpQncF0KVYpITIGWnYg/view?usp=drive_link", "https://drive.google.com/file/d/17t2kErmlh3GtoYrjxk8ZDL5d_KJpb3e6/view?usp=drive_link", "https://drive.google.com/file/d/1EsFp52la0th0YE3MOz0QQdj1SuaMvsim/view?usp=drive_link", "https://drive.google.com/file/d/1-k2G3wpXVPdRnXy789sySvKEqfHkasqY/view?usp=drive_link", "https://drive.google.com/file/d/1p1SWYAg3H7qyyv8YrKSKdBhSzOFndFk5/view?usp=drive_link", "https://drive.google.com/file/d/1UiXosBzbKxSFn4z4rQTLXLupGO-f9uEA/view?usp=drive_link", "https://drive.google.com/file/d/1Kry_9eabuK2jH-GrAeSWu8xqU-dWAL02/view?usp=drive_link", "https://drive.google.com/file/d/1spnl0OHQmj_oTFl9pX5w8lGCXihNePAM/view?usp=drive_link", "https://drive.google.com/file/d/1J1yHTEgNocaldV7O2Zf7oqwUG6sR0Nrq/view?usp=drive_link", "https://drive.google.com/file/d/1VbDKwkbG2AO6y4NYxh_IEwBk3Dcw763s/view?usp=drive_link", "https://drive.google.com/file/d/1uDXS-huDRGk63Os2oSBJ-vzYgPVYTdV0/view?usp=drive_link", "https://drive.google.com/file/d/1n32Vxdk8YWDSpHR6tKRqyrnnuXPjQMkM/view?usp=drive_link", "https://drive.google.com/file/d/15c_VDKDYW4HEEf_ETUjwVQntrjE_YDl9/view?usp=drive_link", "https://drive.google.com/file/d/1OVnthzHItRQd3K31c_WAxllsMP7dR7Vr/view?usp=drive_link", "https://drive.google.com/file/d/1t3dCRf5KVZD-ABx--lFsZ2v-frg-2Mrv/view?usp=drive_link", "https://drive.google.com/file/d/17aEsMzaiNUu983UzEErkDEWitSdahykD/view?usp=drive_link", "https://drive.google.com/file/d/1PXqfJJC7OqIhRHZwrq72nQJ_DtYvqh8k/view?usp=drive_link", "https://drive.google.com/file/d/1e3o6AWNmyJ2GqmzgAjdOpZTnII8lrmnf/view?usp=drive_link", "https://drive.google.com/file/d/1k6waLUxAjWXYPUga7VO84V73m23JUHO3/view?usp=drive_link", "https://drive.google.com/file/d/1zigcZM8Dg-BiZEn4D0mQADesi_nxTQBe/view?usp=drive_link", "https://drive.google.com/file/d/1SoQPMl2fKvCEFgU0k6JDSuauSJ-HII2z/view?usp=drive_link", "https://drive.google.com/file/d/1NxH5TFAlLX0TD3IsNw0DKj6G2bwYx5M-/view?usp=drive_link", "https://drive.google.com/file/d/19nly3A2xR2-5kBLcuf3uoA7Be2CvvgwT/view?usp=drive_link", "https://drive.google.com/file/d/1NbDIRF2KOdn4dWEISsJBWi8VCJuMHetM/view?usp=drive_link", "https://drive.google.com/file/d/1CrsV4tsva-M3164CU_lyrGEQoh_LVGh-/view?usp=drive_link", "https://drive.google.com/file/d/1ae08dTuYZjPKageTdVmGWMjXVlTkQtzV/view?usp=drive_link", "https://drive.google.com/file/d/1ECRDa1LgN7Hb9G5stVZ_mQ2_eg46IBSk/view?usp=drive_link", "https://drive.google.com/file/d/1aFX_7aC7TCIX2STYw5waa-XP4-1DGkik/view?usp=drive_link", "https://drive.google.com/file/d/12fbLnxlryzFvjUQTYr-wgHXqXvL2S438/view?usp=drive_link", "https://drive.google.com/file/d/1x7a0MUEaWnQVj141jdN3lTUX-u0_po-w/view?usp=drive_link", "https://drive.google.com/file/d/1RjPIKHMxvrSE4VzA-UClUgJyfBFu8Oia/view?usp=drive_link", "https://drive.google.com/file/d/1AUCVA9OtQDB1qpAZdpWtaZHIRLd_1WF7/view?usp=drive_link", "https://drive.google.com/file/d/19rCTyzTORnMlP1wKOVt4C0LeGO3loxfi/view?usp=drive_link", "https://drive.google.com/file/d/1KjjMS2GvuXnhplugR6e0Kn_Ul6WWcSwg/view?usp=drive_link", "https://drive.google.com/file/d/1xgYIB7Jc8DrgsD-4SJKDyFrFVhVDrd6j/view?usp=drive_link", "https://drive.google.com/file/d/1hhX5G3bHWJaZhQJjIHgNgjlCzZU1-EXw/view?usp=drive_link", "https://drive.google.com/file/d/1Ta-ZI1Sw0W37DWOPi26OxZVczqa47FoK/view?usp=drive_link", "https://drive.google.com/file/d/1Xz-OzgDzVqQdWtQtVanpmZDLdAGzbIFZ/view?usp=drive_link", "https://drive.google.com/file/d/1apsjYKt1YNPB-wlYM2uHLBc4g3gwxZUQ/view?usp=drive_link", "https://drive.google.com/file/d/1muwYZDIw2_Bfgwhwo969Cz0vp-1Kbceq/view?usp=drive_link", "https://drive.google.com/file/d/1VFDtXiibR7OzJG8V2PtQH-LGDECJv5DY/view?usp=drive_link", "https://drive.google.com/file/d/1LiuJEAPMC9nSFk0raYMA1o-Amiif95uM/view?usp=drive_link", "https://drive.google.com/file/d/1dWHtOB5ANkkfSjy4gpE7sCjpKEDI-ybf/view?usp=drive_link", "https://drive.google.com/file/d/1oAIYU6WaonP-FPzSwOYJWxlOpN7GT-Ki/view?usp=drive_link", "https://drive.google.com/file/d/1G0J5Sb8x2mx0omWS_ZUgSBgq2k7S2aGn/view?usp=drive_link", "https://drive.google.com/file/d/1uCpQzBfTPxNOmrvg5OknvbFQSDcmmWq1/view?usp=drive_link", "https://drive.google.com/file/d/1B3jzvzdISxV3zfydn6S1-P_256F8I5zg/view?usp=drive_link", "https://drive.google.com/file/d/1JQ1N5CJABYslaNpPXVxJgOGKT1k8zYDs/view?usp=drive_link", "https://drive.google.com/file/d/1X98Iiy3VQ8ImWs1SDxHJ2oqP58T5TtX9/view?usp=drive_link", "https://drive.google.com/file/d/1McUWXKMenPbkDrN9o6w7m9w_stN-yxUP/view?usp=drive_link", "https://drive.google.com/file/d/1EodELbT3H8GDgPqDqKy9f_YbHT4DRcAf/view?usp=drive_link", "https://drive.google.com/file/d/1_sKVOs4gXIiYHXCoe2oc5rMwPJgrMd9V/view?usp=drive_link", "https://drive.google.com/file/d/1zfu8KIFTO13fQ-QiFzQz9eSh5S-19pXt/view?usp=drive_link", "https://drive.google.com/file/d/1-NXU_wPnMmbh5YjJ_zHic9mufs_cfTPn/view?usp=drive_link", "https://drive.google.com/file/d/1kJ575uGSgJ6ilnwXYqN9LgKnm_Pk7eA-/view?usp=drive_link", "https://drive.google.com/file/d/15b2NWUT1HwT0VVqmpdh8qfm0kbEW3Jd_/view?usp=drive_link", "https://drive.google.com/file/d/1ntSLnWFyvDeb6ryaqLxfZTN6zAYVWGM7/view?usp=drive_link", "https://drive.google.com/file/d/14b4TdyjgSRglEnfdKvgm208-4M12DlIp/view?usp=drive_link", "https://drive.google.com/file/d/1dZSKc3L1dtCZt6K_TEaYHiNl9W3z8LLi/view?usp=drive_link", "https://drive.google.com/file/d/1Go9VgUhpeE1ddFwjJUBxEj-EOJC_lnQU/view?usp=drive_link", "https://drive.google.com/file/d/1hFjsX9P7c1_mtGmfXtR5Av_vtLGqrrWq/view?usp=drive_link", "https://drive.google.com/file/d/1OQvs8juu5cKyiggR_MfEeZVG9OpOdLJt/view?usp=drive_link", "https://drive.google.com/file/d/1Ty_oJYCeGrV0-b9p2ic14upoCWuK_Pfb/view?usp=drive_link", "https://drive.google.com/file/d/183TUO8DqW1EZWHDSEmRI1RWQRE6qZHBL/view?usp=drive_link", "https://drive.google.com/file/d/1n-eGQM2d5XA0NXiR7lEDARv1y8fJ9ihl/view?usp=drive_link", "https://drive.google.com/file/d/1H2nJgIXXtutJlIv_K5KZEdH9oWnjGlR5/view?usp=drive_link", "https://drive.google.com/file/d/1Ip4SROBCqBdqzYoHgz4KPWY8vJ8rgz9v/view?usp=drive_link", "https://drive.google.com/file/d/1amseoRi83BZpnXTwXEAMPU_fJIqlpStD/view?usp=drive_link", "https://drive.google.com/file/d/1Vc3ZWYhxxLTef1nPutAm3n6k5XOEENDT/view?usp=drive_link", "https://drive.google.com/file/d/17tJZ5JchRcBAKBcJL2HGf7wgbZcv21ja/view?usp=drive_link", "https://drive.google.com/file/d/1XRBmFbs7M3-rpCKvCNzlM4p4U9u49b5B/view?usp=drive_link", "https://drive.google.com/file/d/1x8Z_PlP0ddY4ZcnJAdUnWCA2rW3zK-0p/view?usp=drive_link", "https://drive.google.com/file/d/1Bg-xOu3e97C0uKO1ugROhvUOudmpLE2r/view?usp=drive_link", "https://drive.google.com/file/d/1yWjOutrcqyNLkLmWtN-PLtAIaAsYPP3A/view?usp=drive_link", "https://drive.google.com/file/d/1st-ghmZs7tPx2xEseiiuuUNwvkywaOz3/view?usp=drive_link", "https://drive.google.com/file/d/1A7-n-hY8byCmVWvSMxfXeCh3j12IENud/view?usp=drive_link", "https://drive.google.com/file/d/1vs51D12NJCDz5rO8d0sQaN6sQdeD4o6-/view?usp=drive_link", "https://drive.google.com/file/d/1l0QDi0tmlCCrKEa8lbEBWrMMWYF7OxZI/view?usp=drive_link", "https://drive.google.com/file/d/1hsxeBtwXFrGS_kp5_XT9wOSU3WF4DakU/view?usp=drive_link", "https://drive.google.com/file/d/1tvJjKo7C-ZJfkeGzCk62wAPksTzoDqGP/view?usp=drive_link", "https://drive.google.com/file/d/17Vq1H64-I9a7FmGoPNlwZO-TlNZtaevQ/view?usp=drive_link", "https://drive.google.com/file/d/15D2RxQT4wN2Hzrq-uhhkpAxQbVbujVBE/view?usp=drive_link", "https://drive.google.com/file/d/1Brl9dxxx50K3njju8BeQU1iHNWhf6cHR/view?usp=drive_link", "https://drive.google.com/file/d/13lvwO_k3H2IQVydTiTnKUJx9Lv5XLgu3/view?usp=drive_link", "https://drive.google.com/file/d/1AaLJ5bSiFDX8g-DW_YVCbhFpphF8GXxs/view?usp=drive_link", "https://drive.google.com/file/d/1AVqxpztNGwRVovIaH671WuZ0AinVU4tM/view?usp=drive_link", "https://drive.google.com/file/d/1iBu6eJ-m0UgIqXGLsYN1auBv9SMulT6m/view?usp=drive_link", "https://drive.google.com/file/d/1XdMOHaRAa6yXR5y46DIaXNteSLtbQ_q6/view?usp=drive_link", "https://drive.google.com/file/d/1z1QZAoxojhRztOPF4UjVRVLG0Wj5NK9K/view?usp=drive_link", "https://drive.google.com/file/d/17kF6fxIktn1lV-B1fylpgRB29TKsrk_r/view?usp=drive_link", "https://drive.google.com/file/d/1jafwBRl4UhLVa3Gi00qSRHV5jbJwm9IO/view?usp=drive_link", "https://drive.google.com/file/d/1zmExCwKMqy_YdZHEUAzE1TTcdZ1oMGLr/view?usp=drive_link", "https://drive.google.com/file/d/1z3go7j7KR3_TIlY7y49wNTIn-romRSjy/view?usp=drive_link", "https://drive.google.com/file/d/1CIO5s_dX7yk7OGgIOR_qARJxEuMzkZrC/view?usp=drive_link", "https://drive.google.com/file/d/14OzGOsN3P8dcN9hbyeqxnMAEZQN-0VaV/view?usp=drive_link", "https://drive.google.com/file/d/1mKD1Rbiy8d18YVIm5NZ6dFtN9kuHqlJD/view?usp=drive_link", "https://drive.google.com/file/d/1EAxfitMsJLu3FapQoW7CMhpNBwZOfZO6/view?usp=drive_link", "https://drive.google.com/file/d/1zILQ7pzz-FbteqQMA66IXaULNnie5Hp9/view?usp=drive_link", "https://drive.google.com/file/d/1WgKfxxII7KyktbzMPqdccJyiKk2Bs2KS/view?usp=drive_link", "https://drive.google.com/file/d/1wuUoeoavNe1GtZAxV9MkwML5Adolu5Gg/view?usp=drive_link", "https://drive.google.com/file/d/110YSBRU19KmdqpXZaazVeb8TcVx3t1AN/view?usp=drive_link", "https://drive.google.com/file/d/1x9X6rBQLvgOUlWXgtetuiDBoUmgfvHUW/view?usp=drive_link", "https://drive.google.com/file/d/13PI4zf3UozO71GJ2Wydm1foL4gT31ZNF/view?usp=drive_link", "https://drive.google.com/file/d/1F8XV4Pcwu6FA-6nnoYVhgo8Un0hxL6nM/view?usp=drive_link", "https://drive.google.com/file/d/1xqb_RTt1nKIqPlO2RMdT8pRLqFK_dPBH/view?usp=drive_link", "https://drive.google.com/file/d/1tFgSB79xJyi-ICISPqSk1oUjyvo-_Zcb/view?usp=drive_link", "https://drive.google.com/file/d/1t9e-Y4bqTtZzfh8mN-2gIMhobDZXggMX/view?usp=drive_link", "https://drive.google.com/file/d/14BUpTs-ujb9fpeoBrO1VTQpbSFFQkjaT/view?usp=drive_link", "https://drive.google.com/file/d/1sUGVR68JpoyNnQN6CDRyqghhawRO_UXg/view?usp=drive_link", "https://drive.google.com/file/d/1OMb8ZSDfN1TmEwXSMCylwCQapNyxJPyb/view?usp=drive_link", "https://drive.google.com/file/d/1y8DCLY3ZewMdCFOD8iEMui8bs1CJsDrW/view?usp=drive_link", "https://drive.google.com/file/d/1vTAfmkJ6bBGpFZfVMZwAe1t9R6MfBcrt/view?usp=drive_link", "https://drive.google.com/file/d/12os7F0QvPP2K_qZattQGVQSZ6ED_Kwcv/view?usp=drive_link", "https://drive.google.com/file/d/1WsG1NqAUO3x9U-Rja2AZFn_lnCg5ZOTx/view?usp=drive_link", "https://drive.google.com/file/d/14adZ6n3QoadbN638UM5Ok-BZOqdSTm47/view?usp=drive_link", "https://drive.google.com/file/d/14FSfVSSdIlvaHAFSaZArjF0APNQi6tlN/view?usp=drive_link", "https://drive.google.com/file/d/15CjwDwEddTJd9Q_MU3bIkMqVQmeAh-iE/view?usp=drive_link", "https://drive.google.com/file/d/1UCqOLchTBZNK7YC--kSXo5I7hjO-D4Di/view?usp=drive_link", "https://drive.google.com/file/d/1UYr8z6au6EtrveugJS_h_nclh5hHmLWY/view?usp=drive_link", "https://drive.google.com/file/d/16ivs7JgfXVJm-fI1fMZQE7z__MSNPweH/view?usp=drive_link", "https://drive.google.com/file/d/1nNtFliRydIA_w3yq9O0NnaTdItdX6wVI/view?usp=drive_link", "https://drive.google.com/file/d/18dYuFM2elxu8opRcwIBzdEsoLAowtGos/view?usp=drive_link", "https://drive.google.com/file/d/1paoz0hphsLMvqaLVNbdAu5WSYNxAEtzK/view?usp=drive_link", "https://drive.google.com/file/d/1ZkX8YSbBBZb2x8BA7B-NLyBibrW0X8ip/view?usp=drive_link", "https://drive.google.com/file/d/1lU9XH2imegfS1t5G67ZMW9gKke49IxBH/view?usp=drive_link", "https://drive.google.com/file/d/1n3VN4Ym3yCDkHSXWZpn4D0CwXUogF9Dm/view?usp=drive_link", "https://drive.google.com/file/d/1C8e4RP18kCVLUV729X3x4JtXiyursgJm/view?usp=drive_link", "https://drive.google.com/file/d/1uDTuzMwvvZ-b4LimmsLD1lRvwA2_PwbP/view?usp=drive_link", "https://drive.google.com/file/d/1paiuNFoVAG8r0QSR3NAny110YevS6IpY/view?usp=drive_link", "https://drive.google.com/file/d/10FeSaLOLXiH-NM-g_oiEdQ9RmA8a7cji/view?usp=drive_link", "https://drive.google.com/file/d/1TtOBcdF4Y6L1xcHUFkOH8OA9tpS1KQOD/view?usp=drive_link", "https://drive.google.com/file/d/18UqLeFcpkBHxx9c3r7LDEwVWLk48qeoV/view?usp=drive_link", "https://drive.google.com/file/d/1E6PaPT8jdL4QqE360G0nI8UJjvBfSCO6/view?usp=drive_link", "https://drive.google.com/file/d/1LJOO7qFXuto2E6DS0SJtwOynyfCLlL2C/view?usp=drive_link", "https://drive.google.com/file/d/1bbXIBn7eyHHqm7wGybKLH8Yyt_aTwjYt/view?usp=drive_link", "https://drive.google.com/file/d/1TNeEZ9AfeHAPloc8z3nm8JcBXBWk_9dP/view?usp=drive_link", "https://drive.google.com/file/d/1Xnnl6xGBTPg5uSl-hmQY5OZWmB6dj9n2/view?usp=drive_link", "https://drive.google.com/file/d/1nEloxH4soDxgIlZ3k2RSisrDXd12E2TX/view?usp=drive_link", "https://drive.google.com/file/d/1oh2UDgxRCCr4IUlHPVRZ03nISd2_390v/view?usp=drive_link", "https://drive.google.com/file/d/18jtX6042QaC3LUt6NIGmjtU7GyZZM2AY/view?usp=drive_link", "https://drive.google.com/file/d/1n_slGz7GoI1Jw6Oos4HAjEOYKTRnwbaP/view?usp=drive_link", "https://drive.google.com/file/d/1-8JSFm3P9e38ayoha6hq9oZH1ncVVCw-/view?usp=drive_link", "https://drive.google.com/file/d/1doZxFysJhsk8BFS5HRqmFBC5-2QYlAnk/view?usp=drive_link", "https://drive.google.com/file/d/1C0y_DAJDLEA1v61nAWqGJa8I1LxrJ4aM/view?usp=drive_link", "https://drive.google.com/file/d/1MsJe-hQ5rnx-_0WgrDO-bc-vDp5lffnM/view?usp=drive_link", "https://drive.google.com/file/d/1dItAoCJPDm2YTAQVvsW2MYEfhvQVKUiH/view?usp=drive_link", "https://drive.google.com/file/d/1nVvROHtI4AYWw9Q_KEcRgRcK6J-X_d-x/view?usp=drive_link", "https://drive.google.com/file/d/1ffuYuHYqdVprt4ticasFZzPlhrJ4-77-/view?usp=drive_link", "https://drive.google.com/file/d/1tSSN1Hxk31PbfP404YF1o-W4MJ2T20aP/view?usp=drive_link", "https://drive.google.com/file/d/1sOYFXWrDmNgCmSd9Md6g63Vc3mKAc7hT/view?usp=drive_link", "https://drive.google.com/file/d/1TnFndwlKbgj1OLOqQF33ZIe4MXCt1L6y/view?usp=drive_link", "https://drive.google.com/file/d/16DX9Y6aaGN_v8FCl99vsoTOqJp160ng0/view?usp=drive_link", "https://drive.google.com/file/d/1SnVPJBEMiL8oPgaXiQpPy5VFg7ouO_j_/view?usp=drive_link", "https://drive.google.com/file/d/1WXSOh7huL_YmAq-73Yottb8dqsOa29VB/view?usp=drive_link", "https://drive.google.com/file/d/1ROwZwX9DwgDAg8adZCTzFwfW9bjfZktt/view?usp=drive_link", "https://drive.google.com/file/d/1jxvhwbXroy9ggs6K5e-UREmKbZyCvuW9/view?usp=drive_link", "https://drive.google.com/file/d/1anZfxOKnGzdMJInoqSvR-dyrFRWE9ix_/view?usp=drive_link", "https://drive.google.com/file/d/1pYDbWUf2KXRYu3MBcWLUVLFh5--cPrUp/view?usp=drive_link", "https://drive.google.com/file/d/1wPO20BPkBaE3aTEO7yRqkOC-UTAZkshs/view?usp=drive_link", "https://drive.google.com/file/d/1FlUM5kKltGrOJVI53x6zY2CP9qm5WIPA/view?usp=drive_link", "https://drive.google.com/file/d/1QFWkE_cPO7soOep7LrV32nO0wkQ74Duk/view?usp=drive_link", "https://drive.google.com/file/d/1q10kNmiL5SCp_w9HiaQ7ypm7BZhCzylC/view?usp=drive_link", "https://drive.google.com/file/d/1BMyu2sShBsWMqWFZb__dyrSnE5G3C2oU/view?usp=drive_link", "https://drive.google.com/file/d/1OuRsPHvbdqXkHZbPG_jjBlzAPloc7vDH/view?usp=drive_link", "https://drive.google.com/file/d/1pubaESCv_Bf7MxWK0_gKnRUuPqiNHujd/view?usp=drive_link", "https://drive.google.com/file/d/1wPscn8mM2xY3pDNxYLUIoNzcXVEA38SV/view?usp=drive_link", "https://drive.google.com/file/d/16RRFmYTuusAworkYOFcFHwmkp-sejcj0/view?usp=drive_link", "https://drive.google.com/file/d/1hyWCRH8VcZJ6TAuYeZtZswMNKt9lxYMd/view?usp=drive_link", "https://drive.google.com/file/d/1g5utUZH7E3uJpkrsWwfvioW13K-8B2ei/view?usp=drive_link", "https://drive.google.com/file/d/1zPaK6x-VaEiKyrDRLowKP-oXNnd7mgKY/view?usp=drive_link", "https://drive.google.com/file/d/1NZHgrMIXU0EOXFVzYhBE6Oaz4x1UTxeQ/view?usp=drive_link", "https://drive.google.com/file/d/1EarvOry4ozquje2M2XMcs_vK726anzqA/view?usp=drive_link", "https://drive.google.com/file/d/15D-RBXnsztOsbgCzrVG0i3Ux_OTrH4Tq/view?usp=drive_link", "https://drive.google.com/file/d/1SXaX83XP3G-6uKnuuYUs6THAS__xSGA5/view?usp=drive_link", "https://drive.google.com/file/d/1frw6w-FkxH3tCmKIqTZF9DtJc85FxydY/view?usp=drive_link", "https://drive.google.com/file/d/1P_b0lWwGf2xAk9fi7z1k7hhQNzWo3GL2/view?usp=drive_link", "https://drive.google.com/file/d/1A1flKI97v_n3jMKIRz2v6zz0lVeJ9nP_/view?usp=drive_link", "https://drive.google.com/file/d/1u2-qlZSF7i01AtzEnJTBZj4SZlElga1V/view?usp=drive_link", "https://drive.google.com/file/d/1se_q_DKYg1uj3RgnyAKX6hrdEOAsWSSg/view?usp=drive_link", "https://drive.google.com/file/d/1Ova1ZWf91uiOTSjSZGanv6TJznZO4Tsx/view?usp=drive_link", "https://drive.google.com/file/d/16Eb1N6kLeTqL3u_op7bw561Z3TO94_za/view?usp=drive_link", "https://drive.google.com/file/d/1x5kNe0wozlXRGM3CumWz8g1xhM2cKyoo/view?usp=drive_link", "https://drive.google.com/file/d/1mgK2G7VS4BmO5w845WV_PD1hkQKzld-i/view?usp=drive_link", "https://drive.google.com/file/d/1Fga67xxcG8kAKPDwDL9QqL4dw-HU-3tE/view?usp=drive_link", "https://drive.google.com/file/d/19Ih5OrMRcp4mJXtuYEWDaXwV078gWvBn/view?usp=drive_link", "https://drive.google.com/file/d/1dCQxH85kCYWjZySPR6hmPlC343KV66ZZ/view?usp=drive_link", "https://drive.google.com/file/d/1NMafc4x0exTCRX69w-gF3aL2FC_yE2Tu/view?usp=drive_link", "https://drive.google.com/file/d/1i-6XtZIsiThF3GtxOXyPLAgLr5wQPiy8/view?usp=drive_link", "https://drive.google.com/file/d/1FvXbxJFr7cNQYTiV6lkHXvZVRRR4sruX/view?usp=drive_link", "https://drive.google.com/file/d/1NZqWOHIXanK3xwEGuMbQldgBRvDwPSbP/view?usp=drive_link", "https://drive.google.com/file/d/1nmfQjvLjZbC-YuHeJNXYpKhfCJoniCS6/view?usp=drive_link", "https://drive.google.com/file/d/1sR8iwKYiDYeDuKZYhGXnoNakwuXl4O-r/view?usp=drive_link", "https://drive.google.com/file/d/1NvIAPRRfRVhRXCrKYOFDv8dwMhsYv1M5/view?usp=drive_link", "https://drive.google.com/file/d/1mHfeg106Fc8C-hdjpBDsorxGK5QLrqZi/view?usp=drive_link", "https://drive.google.com/file/d/1TTQCGFDvijf8G3ltYbJMHoNkSMPMdSRw/view?usp=drive_link", "https://drive.google.com/file/d/1LsNlUNxhWBacILiezcJwxHircN_L57YC/view?usp=drive_link", "https://drive.google.com/file/d/1OqJXCrORN00y4ue8WqZP63rh52E5XPO8/view?usp=drive_link", "https://drive.google.com/file/d/1eMecS-HKWQPOLnS6pbI_HohPwZZIMlHl/view?usp=drive_link", "https://drive.google.com/file/d/1ASNKNNDAMQoHo3kCKxzpaskYSwqfLAGH/view?usp=drive_link", "https://drive.google.com/file/d/1eU7iAv9f6KT_GM1_9R0dBxon91PuPMBa/view?usp=drive_link", "https://drive.google.com/file/d/1BfJxXVaehHsKfkzq0xQ2eksLh1AdG7gJ/view?usp=drive_link", "https://drive.google.com/file/d/1slMjqAuNzyKK2N6WP1sD44DHgd_LLt4K/view?usp=drive_link", "https://drive.google.com/file/d/1FSoZ00Xcc5XeCtQD9Nk0h6Nbd9uFBYUp/view?usp=drive_link", "https://drive.google.com/file/d/1xXtfZ_Q8FC3F-KUeWfXLIQnlgFOU-i1z/view?usp=drive_link", "https://drive.google.com/file/d/1jHzvAm1w8tsOHT0GDa3_Fs1Pi2LJSz1r/view?usp=drive_link", "https://drive.google.com/file/d/1E9LQaZccaYfO431nHi6zXPRTMfaBfU-M/view?usp=drive_link", "https://drive.google.com/file/d/1i31y5kGaZjvtma241FYZ46ofRf8J5PMi/view?usp=drive_link", "https://drive.google.com/file/d/15q_2hnJxj_dJqfnnazp4FePN7utWXs1M/view?usp=drive_link", "https://drive.google.com/file/d/1ou4yT9ThJJAiPBwJgMd94pv2K02z19Qx/view?usp=drive_link", "https://drive.google.com/file/d/1toco-eOiVyeQEskWAs9bUDuYq2-Kfxxw/view?usp=drive_link", "https://drive.google.com/file/d/10iDkDAP9_1Q4XJwzBmycXRt7nhyn1VvL/view?usp=drive_link", "https://drive.google.com/file/d/1fkvmaJuQKst99MD93SsDGErCmzPUsy0s/view?usp=drive_link", "https://drive.google.com/file/d/1Z__pNrqjv3B-XhB3Uek_sj8vRAW-ZXVq/view?usp=drive_link", "https://drive.google.com/file/d/1u6zUoHM5HLxwBdYloKeUNOJA9ZKdVfHf/view?usp=drive_link", "https://drive.google.com/file/d/1docUJ21VPjeS9rIQObY_DnVLBPmRwCdH/view?usp=drive_link", "https://drive.google.com/file/d/1h9eEm0oj0a1xHiWUh9iUxpxFQigAN3Br/view?usp=drive_link", "https://drive.google.com/file/d/1usIPwcqYCrWDYN4kT4boE5kGucceWaB7/view?usp=drive_link", "https://drive.google.com/file/d/1YnybX_PlzqA3EODHbrXc4ylSv_dMWsuM/view?usp=drive_link", "https://drive.google.com/file/d/1Y4S_JzNp1txpPw-aJ3dclw4AOg2HUSAp/view?usp=drive_link", "https://drive.google.com/file/d/1EyYa75sSPe-babGJMG4kS8ORGQ-3H8Dn/view?usp=drive_link", "https://drive.google.com/file/d/1cJqABLlkXNROqq8nqV3W6Td224k_AQbx/view?usp=drive_link", "https://drive.google.com/file/d/15WOfwdB3AM5z7kSioboBt0BgKb9cAOl5/view?usp=drive_link", "https://drive.google.com/file/d/1z9lP1RSm7fFj1SrIpIyaF_JxWhZn6vm1/view?usp=drive_link", "https://drive.google.com/file/d/1JIH1Z6t10Y72Q1FcxMsIjTla3Vk4JKHc/view?usp=drive_link", "https://drive.google.com/file/d/1m9abkKdvC5E-QM32KFA0v7PE-kFib81R/view?usp=drive_link", "https://drive.google.com/file/d/1Iyq3cELDqC-UeODisEQaYkE9lCyeBd6w/view?usp=drive_link", "https://drive.google.com/file/d/1GCbdFF0pfuMc9_O07fLLp-yRZ1D1mkQ4/view?usp=drive_link", "https://drive.google.com/file/d/172lJEJzjhCdsSzNUjic1ScSv4-yHWZ4Z/view?usp=drive_link", "https://drive.google.com/file/d/1WuYV94zyY5JcBHC95yAdQ8Fv0VW2kCi4/view?usp=drive_link", "https://drive.google.com/file/d/1tbH4SbyxnPgBVywkl0ly-4Qes6pVR4VS/view?usp=drive_link", "https://drive.google.com/file/d/15rIIb-gLoSzxWH9qbBl1KFg9pEYPmrqb/view?usp=drive_link", "https://drive.google.com/file/d/1obuQsljm6X2oghShpL-Ly52VOSyhoUz7/view?usp=drive_link", "https://drive.google.com/file/d/1vXpzgINbmwZE7otwbAJ1jBB8-UoJHsry/view?usp=drive_link", "https://drive.google.com/file/d/1YfwW9vmslG5CmU8fBt2GEk9m_Y8DpXKN/view?usp=drive_link", "https://drive.google.com/file/d/1Sgy4DA8BZ22e4Zkl2FutGGVedlSTgHaR/view?usp=drive_link", "https://drive.google.com/file/d/1GR5ex2fMX3F3plPsH9p0rkmeFsdp5b0K/view?usp=drive_link", "https://drive.google.com/file/d/1nqUYxeBpf5mwJOsdEv5OyFy6XLMGZwbO/view?usp=drive_link", "https://drive.google.com/file/d/1WZCvU3v3lyVOCJGXKCbimXmpJOky_P2P/view?usp=drive_link", "https://drive.google.com/file/d/1RjhAayWxG8hLP9oZDg1tog32NHKz5UKj/view?usp=drive_link", "https://drive.google.com/file/d/1RYGVM4oTZt-HVK9DwBKOg83y5wfV8PnI/view?usp=drive_link", "https://drive.google.com/file/d/1KdkKRIIin2Ln3ujaJ9asKvg4-9TLI2gi/view?usp=drive_link", "https://drive.google.com/file/d/1cYVsnF1TbY2k4ckLtLJmVHefcowbjq-R/view?usp=drive_link", "https://drive.google.com/file/d/11aWOII5XoJgOL7Pli_90_LCDHViaB70L/view?usp=drive_link", "https://drive.google.com/file/d/1Pn-F8BTEaxr-cf-ojzMfPzZvIC7w8_RI/view?usp=drive_link", "https://drive.google.com/file/d/1ejMZ0L7bQ6rBaq7o8Ro4iN65M_0lBThi/view?usp=drive_link", "https://drive.google.com/file/d/1br2hHrrFbqosI2kTZhHm39RISe-a9UQe/view?usp=drive_link", "https://drive.google.com/file/d/1Su3sJMvTWgc_Tl2JHInMjrKva6iMKflI/view?usp=drive_link", "https://drive.google.com/file/d/1NNH5N0hkWyveQlTbHVoBWiKBUOcc8i7a/view?usp=drive_link", "https://drive.google.com/file/d/1BPuandHpG0L0rMjaIQtO5v-reUZz3faW/view?usp=drive_link", "https://drive.google.com/file/d/1lOxe6wXipNrVlaKSnnsJbIONL6Uy-d8g/view?usp=drive_link", "https://drive.google.com/file/d/1kUQbdlun7envlUdoPUceRkj6I8ZgKeMp/view?usp=drive_link", "https://drive.google.com/file/d/1gSqgQ2l0rH2jnVz-ARSUw4-U3XantMkO/view?usp=drive_link", "https://drive.google.com/file/d/1V7dd-6XDNFMEIbN3VD22piZh9WZCcaOB/view?usp=drive_link", "https://drive.google.com/file/d/1IzgGN5rJeg3OsVRJ6hUAhuU71hxka7Ar/view?usp=drive_link", "https://drive.google.com/file/d/1BRnPEbTxmngMrcIrXo281IZxUd8nXZA9/view?usp=drive_link", "https://drive.google.com/file/d/1Zjw8UUng_K-HCUn7PL1yEeAdB-cmIbV6/view?usp=drive_link", "https://drive.google.com/file/d/12yTbrvBGzw8-oOsGB1lg9sNIQShEcWa8/view?usp=drive_link", "https://drive.google.com/file/d/1U-SXNthDWWouZTZOJs9goQi56K3JgnjB/view?usp=drive_link", "https://drive.google.com/file/d/1I94yYVlrFw-8tEdn2MDu2rq_HEVdwy-9/view?usp=drive_link", "https://drive.google.com/file/d/1ix0dXN-mrIL8j6rVcd74x-XnLiBt5QJp/view?usp=drive_link", "https://drive.google.com/file/d/1QKwTKws8-Z2LT6LmMTxf_Cwhpr5H-2-M/view?usp=drive_link", "https://drive.google.com/file/d/1deyrvKHB3NiJLIbOgKTMk8lzYjrMaiVS/view?usp=drive_link", "https://drive.google.com/file/d/1yEhbB1zHfjzcyYPL2nc0cG-M1YrT0nQY/view?usp=drive_link", "https://drive.google.com/file/d/1CbiHM6uDIPs4NcUo9URevEH2t-1UO2Iv/view?usp=drive_link", "https://drive.google.com/file/d/1n5ZfeLQMl6S4ioCLrxuuDZgIxAELba6S/view?usp=drive_link", "https://drive.google.com/file/d/1twK-7ijaK-lEbaO1ASaM4cqCaS-a8Lzx/view?usp=drive_link", "https://drive.google.com/file/d/1GjzScaq_hyUinN9F-_2HiwqsbkZuAmxv/view?usp=drive_link", "https://drive.google.com/file/d/17hEDmpHAMOH1W0TlbhYP-xEVCO2FZ_Dv/view?usp=drive_link", "https://drive.google.com/file/d/1nH55ggPRX9IAey6BTEpIt-tXGfFquCmO/view?usp=drive_link”}
                    
class ResourceItem:
    def __init__(self, url: str, content: str, resource_type: str):
        self.url = url
        self.content = content
        self.type = resource_type
        self.embedding = None

    def __str__(self):
        return f"ResourceItem(type={self.type}, url={self.url}, content_length={len(self.content)})"

class RobustCrawler:
    def __init__(self, max_retries=3, backoff_factor=0.3, proxies=None):
        self.ua = UserAgent()
        self.proxies = proxies or {}
        self.session = self._create_robust_session(max_retries, backoff_factor)

    def _create_robust_session(self, max_retries, backoff_factor):
        session = requests.Session()
        retry_strategy = Retry(
            total=max_retries,
            status_forcelist=[429, 500, 502, 503, 504],
            method_whitelist=["HEAD", "GET", "OPTIONS"],
            backoff_factor=backoff_factor,
            raise_on_status=False
        )
        adapter = HTTPAdapter(max_retries=retry_strategy)
        session.mount("https://", adapter)
        session.mount("http://", adapter)
        return session

    def get_headers(self):
        return {
            "User-Agent": self.ua.random,
            "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
            "Accept-Language": "en-US,en;q=0.5",
            "Referer": "https://www.google.com/",
            "DNT": "1",
            "Connection": "keep-alive",
            "Upgrade-Insecure-Requests": "1"
        }

    def crawl_with_exponential_backoff(self, url, timeout=10):
        try:
            time.sleep(random.uniform(0.5, 2.0))
            response = self.session.get(
                url,
                headers=self.get_headers(),
                timeout=timeout
            )
            response.raise_for_status()
            return response
        except requests.exceptions.RequestException as e:
            logger.error(f"Crawling error for {url}: {e}")
            return None

class SchoolChatbot:
    def __init__(self):
        print("Initializing SchoolChatbot...")
        self.setup_models()
        self.resources = []
        self.visited_urls = set()
        self.crawl_and_index_resources()

    def setup_models(self):
        logger.info("Setting up models...")
        self.tokenizer = AutoTokenizer.from_pretrained(Config.MODEL_NAME)
        self.model = AutoModelForCausalLM.from_pretrained(Config.MODEL_NAME)
        self.embedding_model = SentenceTransformer(Config.EMBEDDING_MODEL)
        logger.info("Models setup completed successfully.")

    def crawl_and_index_resources(self):
        logger.info("Starting to crawl and index resources...")
        with ThreadPoolExecutor(max_workers=5) as executor:
            for url in Config.INDEXED_URLS:
                executor.submit(self.crawl_url, url, 0)
        logger.info("Crawling and indexing completed.")

    def crawl_url(self, url, depth):
        if depth > Config.MAX_DEPTH or url in self.visited_urls:
            return
        self.visited_urls.add(url)
        crawler = RobustCrawler()
        response = crawler.crawl_with_exponential_backoff(url)
        if not response:
            logger.warning(f"Failed to retrieve {url}")
            return
        content_type = response.headers.get("Content-Type", "").lower()
        if "text/calendar" in content_type or url.endswith(".ics"):
            self.extract_ics_content(url, response.text)
        elif "text/html" in content_type:
            soup = BeautifulSoup(response.content, 'html.parser')
            self.extract_page_content(url, soup)
            if depth < Config.MAX_DEPTH:
                for link in soup.find_all('a', href=True):
                    full_url = urljoin(url, link['href'])
                    if self.is_valid_url(full_url):
                        time.sleep(random.uniform(0.5, 2.0))
                        self.crawl_url(full_url, depth + 1)
        elif "application/pdf" in content_type:
            self.extract_pdf_content(url, response.content)
        else:
            logger.warning(f"Unrecognized content-type ({content_type}). Storing as raw.")
            self.store_resource(url, response.text, 'unknown')

    def extract_ics_content(self, url, ics_text):
        try:
            cal = Calendar.from_ical(ics_text)
            events = []
            for component in cal.walk():
                if component.name == "VEVENT":
                    summary = component.get("SUMMARY", "No Summary")
                    dtstart = component.get("DTSTART", "No Start Date")
                    dtend = component.get("DTEND", "No End Date")
                    event_str = f"{summary} from {dtstart} to {dtend}"
                    events.append(event_str)
            if events:
                combined_text = "\n".join(events)
                self.store_resource(url, combined_text, 'calendar')
        except Exception as e:
            logger.error(f"Error parsing ICS from {url}: {e}")

    def extract_page_content(self, url, soup):
        content_sections = []
        for tag in soup.find_all(['main', 'article', 'section']):
            text_found = tag.get_text(strip=True)
            if text_found:
                content_sections.append(text_found)
        for heading in soup.find_all(['h1', 'h2', 'h3']):
            section_content = [heading.get_text(strip=True)]
            next_elem = heading.find_next_sibling()
            while next_elem and next_elem.name in ['p', 'ul', 'ol']:
                section_content.append(next_elem.get_text(strip=True))
                next_elem = next_elem.find_next_sibling()
            if section_content:
                content_sections.append(' '.join(section_content))
        if content_sections:
            full_content = ' '.join(content_sections)
            self.store_resource(url, full_content, 'webpage')

    def extract_pdf_content(self, url, pdf_content):
        try:
            pdf_reader = PyPDF2.PdfFileReader(pdf_content)
            text = ''
            for page in range(pdf_reader.getNumPages()):
                text += pdf_reader.getPage(page).extractText()
            if text:
                self.store_resource(url, text, 'pdf')
        except Exception as e:
            logger.error(f"Error extracting PDF content from {url}: {e}")

    def store_resource(self, url, text_data, resource_type):
        try:
            text_chunks = [text_data[i:i+512] for i in range(0, len(text_data), 512)]
            embeddings = [self.embedding_model.encode(chunk) for chunk in text_chunks]
            average_embedding = np.mean(embeddings, axis=0)
            item = ResourceItem(url, text_data, resource_type)
            item.embedding = average_embedding
            self.resources.append(item)
            logger.debug(f"Stored resource: {url} (type={resource_type}). Total resources: {len(self.resources)}")
        except Exception as e:
            logger.error(f"Error storing resource {url}: {e}")

    def is_valid_url(self, url):
        parsed = urlparse(url)
        return bool(parsed.scheme) and bool(parsed.netloc)

    def find_best_matching_resource(self, query):
        if not self.resources:
            return None, -1.0
        query_embedding = self.embedding_model.encode(query)
        best_resource, best_score = None, -1.0
        for resource in self.resources:
            if resource.embedding is not None:
                score = cosine_similarity([query_embedding], [resource.embedding])[0][0]
                if score > best_score:
                    best_score = score
                    best_resource = resource
        return best_resource, best_score

    def extract_relevant_snippet(self, content, query):
        sentences = sent_tokenize(content)
        query_embedding = self.embedding_model.encode(query)
        sentence_embeddings = self.embedding_model.encode(sentences)
        similarities = cosine_similarity([query_embedding], sentence_embeddings)[0]
        best_idx = np.argmax(similarities)
        start_idx = max(0, best_idx - 1)
        end_idx = min(len(sentences), best_idx + 2)
        snippet = ' '.join(sentences[start_idx:end_idx])
        return snippet

    def generate_response(self, user_input):
        best_resource, similarity_score = self.find_best_matching_resource(user_input)
        if best_resource is None or similarity_score < Config.SIMILARITY_THRESHOLD:
            return "Great question! According to my resources, I couldn't find a direct answer. Please rephrase your query or contact support for more information."
        snippet = self.extract_relevant_snippet(best_resource.content, user_input)
        conversation_history = f"User: {user_input}\nAssistant: {snippet}"
        new_user_input_ids = self.tokenizer.encode(conversation_history + self.tokenizer.eos_token, return_tensors='pt')
        chat_history_ids = self.model.generate(new_user_input_ids, max_length=Config.MAX_TOKENS, pad_token_id=self.tokenizer.eos_token_id)
        response = self.tokenizer.decode(chat_history_ids[:, new_user_input_ids.shape[-1]:][0], skip_special_tokens=True)
        return f"Great question! According to my resources, {response}. For more details, see the answer in full context here: {best_resource.url}"

def create_gradio_interface(chatbot):
    def respond(user_input):
        return chatbot.generate_response(user_input)
    interface = gr.Interface(
        fn=respond,
        inputs=gr.Textbox(label="Ask a Question", placeholder="Type your question here..."),
        outputs=gr.Textbox(label="Answer", placeholder="Response will appear here..."),
        title="School Information Chatbot",
        description="Ask about school events, holidays, or other information. Supports calendar and website queries.",
        examples=[
            ["What events are happening this week?"],
            ["When is the next board meeting?"],
            ["Are there any upcoming holidays?"]
        ],
        theme=gr.themes.Monochrome(),
        flagging_mode="never"  # Replaced allow_flagging with flagging_mode
    )
    return interface

if __name__ == "__main__":
    chatbot = SchoolChatbot()
    interface = create_gradio_interface(chatbot)
    interface.launch(server_name="0.0.0.0", server_port=7860, inbrowser=True)