"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/Users/przemo/Coding/.venv/lib/python3.13/site-packages/torch/utils/data/dataloader.py:692: UserWarning: 'pin_memory' argument is set as true but not supported on MPS now, device pinned memory won't be used.\n",
+ " warnings.warn(warn_msg)\n",
+ "/Users/przemo/Coding/.venv/lib/python3.13/site-packages/torch/utils/data/dataloader.py:692: UserWarning: 'pin_memory' argument is set as true but not supported on MPS now, device pinned memory won't be used.\n",
+ " warnings.warn(warn_msg)\n",
+ "/Users/przemo/Coding/.venv/lib/python3.13/site-packages/torch/utils/data/dataloader.py:692: UserWarning: 'pin_memory' argument is set as true but not supported on MPS now, device pinned memory won't be used.\n",
+ " warnings.warn(warn_msg)\n",
+ "/Users/przemo/Coding/.venv/lib/python3.13/site-packages/torch/utils/data/dataloader.py:692: UserWarning: 'pin_memory' argument is set as true but not supported on MPS now, device pinned memory won't be used.\n",
+ " warnings.warn(warn_msg)\n",
+ "/Users/przemo/Coding/.venv/lib/python3.13/site-packages/torch/utils/data/dataloader.py:692: UserWarning: 'pin_memory' argument is set as true but not supported on MPS now, device pinned memory won't be used.\n",
+ " warnings.warn(warn_msg)\n",
+ "/Users/przemo/Coding/.venv/lib/python3.13/site-packages/torch/utils/data/dataloader.py:692: UserWarning: 'pin_memory' argument is set as true but not supported on MPS now, device pinned memory won't be used.\n",
+ " warnings.warn(warn_msg)\n",
+ "/Users/przemo/Coding/.venv/lib/python3.13/site-packages/torch/utils/data/dataloader.py:692: UserWarning: 'pin_memory' argument is set as true but not supported on MPS now, device pinned memory won't be used.\n",
+ " warnings.warn(warn_msg)\n",
+ "/Users/przemo/Coding/.venv/lib/python3.13/site-packages/torch/utils/data/dataloader.py:692: UserWarning: 'pin_memory' argument is set as true but not supported on MPS now, device pinned memory won't be used.\n",
+ " warnings.warn(warn_msg)\n",
+ "/Users/przemo/Coding/.venv/lib/python3.13/site-packages/torch/utils/data/dataloader.py:692: UserWarning: 'pin_memory' argument is set as true but not supported on MPS now, device pinned memory won't be used.\n",
+ " warnings.warn(warn_msg)\n",
+ "/Users/przemo/Coding/.venv/lib/python3.13/site-packages/torch/utils/data/dataloader.py:692: UserWarning: 'pin_memory' argument is set as true but not supported on MPS now, device pinned memory won't be used.\n",
+ " warnings.warn(warn_msg)\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "PL Headline: Licencja Ruchu - Podmiot - Data\n",
+ "DE Summary: Dieses Dokument scheint ein Vertrag zwischen einem Unternehmen und einem Unternehmen für IT-Services zu sein.\n"
+ ]
+ }
+ ],
+ "source": [
+ "import os\n",
+ "import torch\n",
+ "import matplotlib.pyplot as plt\n",
+ "from pathlib import Path\n",
+ "from datasets import Dataset\n",
+ "from transformers import (\n",
+ " AutoTokenizer, \n",
+ " AutoModelForSeq2SeqLM, \n",
+ " DataCollatorForSeq2Seq, \n",
+ " Seq2SeqTrainingArguments, \n",
+ " Seq2SeqTrainer\n",
+ ")\n",
+ "\n",
+ "# --- 1. CONFIGURATION ---\n",
+ "BASE_DIR = Path.cwd().parent\n",
+ "DATA_ROOT = BASE_DIR / \"content\"\n",
+ "# Roots for labels (titles and summaries)\n",
+ "TITLE_ROOT = BASE_DIR / \"synthetic_dataset\" / \"titles\"\n",
+ "SUMMARY_ROOT = BASE_DIR / \"synthetic_dataset\" / \"summary\"\n",
+ "\n",
+ "MODEL_ID = \"google/flan-t5-small\" # FLAN-T5 is excellent for instructions\n",
+ "OUTPUT_MODEL_DIR = BASE_DIR / \"models\" / \"flan_t5_multilingual\"\n",
+ "\n",
+ "MAX_INPUT_LEN = 512\n",
+ "MAX_TARGET_LEN = 128\n",
+ "\n",
+ "# Mapping language codes to full names for the prompt\n",
+ "LANG_MAP = {\n",
+ " \"pl\": \"Polish\",\n",
+ " \"en\": \"English\",\n",
+ " \"de\": \"German\",\n",
+ " \"fr\": \"French\",\n",
+ " \"es\": \"Spanish\",\n",
+ " \"it\": \"Italian\",\n",
+ " \"uk\": \"Ukrainian\"\n",
+ "}\n",
+ "\n",
+ "# --- 2. MULTILINGUAL DATA LOADING ---\n",
+ "def load_multilingual_data():\n",
+ " dataset_dict = {\"input_text\": [], \"target_text\": []}\n",
+ " \n",
+ " print(f\"📂 Searching for documents in: {DATA_ROOT}\")\n",
+ " all_docs = list(DATA_ROOT.rglob(\"*.txt\"))\n",
+ " \n",
+ " for txt_file in all_docs:\n",
+ " rel_path = txt_file.relative_to(DATA_ROOT)\n",
+ " try:\n",
+ " content = txt_file.read_text(encoding=\"utf-8\").strip()\n",
+ " except: continue\n",
+ " if not content: continue\n",
+ "\n",
+ " # Iterate through all available languages\n",
+ " for lang_code, lang_name in LANG_MAP.items():\n",
+ " \n",
+ " # 1. Look for TITLES (Headlines) in this language\n",
+ " t_file = TITLE_ROOT / lang_code / rel_path\n",
+ " if t_file.exists():\n",
+ " target_title = t_file.read_text(encoding=\"utf-8\").strip()\n",
+ " # PROMPT: \"headline in Polish: [content]\"\n",
+ " dataset_dict[\"input_text\"].append(f\"headline in {lang_name}: {content}\")\n",
+ " dataset_dict[\"target_text\"].append(target_title)\n",
+ " \n",
+ " # 2. Look for SUMMARIES in this language\n",
+ " s_file = SUMMARY_ROOT / lang_code / rel_path\n",
+ " if s_file.exists():\n",
+ " target_summary = s_file.read_text(encoding=\"utf-8\").strip()\n",
+ " # PROMPT: \"summarize in English: [content]\"\n",
+ " dataset_dict[\"input_text\"].append(f\"summarize in {lang_name}: {content}\")\n",
+ " dataset_dict[\"target_text\"].append(target_summary)\n",
+ " \n",
+ " return Dataset.from_dict(dataset_dict)\n",
+ "\n",
+ "# --- 3. PREPARATION ---\n",
+ "raw_dataset = load_multilingual_data()\n",
+ "if len(raw_dataset) == 0:\n",
+ " print(\"❌ No data found! Check your folder structure.\")\n",
+ "else:\n",
+ " print(f\"✅ Created {len(raw_dataset)} multilingual instruction pairs.\")\n",
+ " dataset = raw_dataset.train_test_split(test_size=0.1)\n",
+ "\n",
+ "tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)\n",
+ "model = AutoModelForSeq2SeqLM.from_pretrained(MODEL_ID)\n",
+ "\n",
+ "def preprocess(examples):\n",
+ " model_inputs = tokenizer(examples[\"input_text\"], max_length=MAX_INPUT_LEN, truncation=True, padding=\"max_length\")\n",
+ " labels = tokenizer(text_target=examples[\"target_text\"], max_length=MAX_TARGET_LEN, truncation=True, padding=\"max_length\")\n",
+ " model_inputs[\"labels\"] = labels[\"input_ids\"]\n",
+ " return model_inputs\n",
+ "\n",
+ "tokenized_dataset = dataset.map(preprocess, batched=True)\n",
+ "\n",
+ "# --- 4. TRAINING ---\n",
+ "\n",
+ "\n",
+ "training_args = Seq2SeqTrainingArguments(\n",
+ " output_dir=\"./tmp_multilingual_results\",\n",
+ " eval_strategy=\"epoch\",\n",
+ " learning_rate=5e-4, # Slightly higher for multilingual tasks\n",
+ " per_device_train_batch_size=8,\n",
+ " per_device_eval_batch_size=8,\n",
+ " num_train_epochs=10,\n",
+ " predict_with_generate=True,\n",
+ " generation_max_length=MAX_TARGET_LEN,\n",
+ " generation_num_beams=4,\n",
+ " fp16=torch.cuda.is_available(), # Speed up if GPU is present\n",
+ " logging_steps=50\n",
+ ")\n",
+ "\n",
+ "trainer = Seq2SeqTrainer(\n",
+ " model=model,\n",
+ " args=training_args,\n",
+ " train_dataset=tokenized_dataset[\"train\"],\n",
+ " eval_dataset=tokenized_dataset[\"test\"],\n",
+ " tokenizer=tokenizer,\n",
+ " data_collator=DataCollatorForSeq2Seq(tokenizer, model=model),\n",
+ ")\n",
+ "\n",
+ "print(\"🚀 Training Multilingual Model...\")\n",
+ "trainer.train()\n",
+ "\n",
+ "# --- 5. SAVING & TESTING ---\n",
+ "model.save_pretrained(OUTPUT_MODEL_DIR)\n",
+ "tokenizer.save_pretrained(OUTPUT_MODEL_DIR)\n",
+ "\n",
+ "def test_multilingual(text, task=\"summarize\", lang=\"English\"):\n",
+ " device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n",
+ " model.to(device)\n",
+ " prompt = f\"{task} in {lang}: {text}\"\n",
+ " inputs = tokenizer(prompt, return_tensors=\"pt\", max_length=MAX_INPUT_LEN, truncation=True).to(device)\n",
+ " outputs = model.generate(inputs[\"input_ids\"], max_length=MAX_TARGET_LEN, num_beams=4)\n",
+ " return tokenizer.decode(outputs[0], skip_special_tokens=True)\n",
+ "\n",
+ "# Example Test\n",
+ "test_text = \"This contract is between Company A and Company B for IT services.\"\n",
+ "print(f\"PL Headline: {test_multilingual(test_text, 'headline', 'Polish')}\")\n",
+ "print(f\"DE Summary: {test_multilingual(test_text, 'summarize', 'German')}\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "5adc4c0f",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/var/folders/t6/7gm1y_yj5831dq3xh1b21y8w0000gp/T/ipykernel_31309/3125303398.py:40: FutureWarning: \n",
+ "\n",
+ "Passing `palette` without assigning `hue` is deprecated and will be removed in v0.14.0. Assign the `x` variable to `hue` and set `legend=False` for the same effect.\n",
+ "\n",
+ " sns.barplot(x=eval_df['epoch'].astype(float).astype(int), y=eval_df['eval_samples_per_second'], ax=axes[2], palette='viridis')\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAABGAAAAa4CAYAAADP/K/CAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Qd4W+XZxvFH8t6Os/ckAUIYIewdZlktq5RZChTKbilllF12mWVvKKPA10KhFChlr7JngDCy9473lvRd92sfRXZsx44lW8f+/65L2NY8OpJwzu3ned5AJBKJGAAAAAAAABImmLi7BgAAAAAAAAEMAAAAAABAF6ACBgAAAAAAIMEIYAAAAAAAABKMAAYAAAAAACDBCGAAAAAAAAASjAAGAAAAAAAgwQhgAAAAAAAAEowABgAA9Fr19fVd+niRSMRCoVCXPiYAAEgOBDAAAHSBZ555xiZMmOBOU6dObfE6M2fOtG222SZ6vc0228w++OADXp82zJ4926644grbd999bcstt7RNNtnEtt9+e/vlL39pf/vb36y2trbF2ykEefzxx+13v/tdl+3fadOm2RFHHGGLFy9O+GOdeeaZ7j108803R8875phjou+t2267zfzs6aefds/j5z//uYXD4e7eHAAA2oUABgCAJKCD8hNOOMGKi4vdz2lpae4gedttt+3uTUtazz33nB1wwAH22GOPufCqvLzc6urqbOXKlS64uvzyy90B+qpVq5rcTtf92c9+Zn/605+i+zvRLrjgAjvssMPs888/T/hjvfnmm/byyy9bamqqHXnkkdYT7b///tanTx/78ssv7cknn+zuzQEAoF0IYAAA6GarV6924YtXGaED51tuucV23nnn7t60pDV//nz74x//6AIXGTFihB166KGuymOrrbaKXm/69Ol28cUXN7mtDtp/+OGHLq+AUvtRoukxrrvuOvf9nnvuaQMHDrSeKCMjw4VroiofhW8AACQ7AhgAALpRZWWlnXzyya4qQ4LBoP35z3+2PfbYg9dlHdUv3vwWBVWq+LjqqqvsoosuchUxsa1Fr7/++lpVMD3Vq6++arNmzXLfH3TQQdaT/fSnP3VfS0tLXUsSAADJjgAGAIBuouqNM844w1VkSCAQcCHCfvvt1+YMmRtuuMH+8Y9/2C677GKTJk1y7RhqO/Eub+v04Ycf2u9///voz5qf0tJBvHe5Wny8eRstXV/b4l129tlnN7nszjvvjF4WO4vk3XfftV//+te23Xbb2cYbb2ybbrqp7b333nb11Ve7g+n2WLZsWfT7nJwcF1zFOvroo90sGD2G5uqoykhUIaN2IM9HH33ktk/ni/aPt80Kcd544w3ba6+93GwZVZSo8sZ7fLU46Ty9BnoeO+ywg/3mN79p0mbkvW6xdt99d3fed9995+b8eI/39ddfr/U8TzvttOjlDzzwwDr3yyOPPOK+5ubmuuceLwqwbr/9djvwwANt8uTJtsUWW9jBBx9s999/v1VXV691fc3eeeihh1zblWbzaP9MmTLFfvGLX7jZOy3NbVG1kt6bu+22m9vf2q+al3TuuedGA8pYY8eOtdGjR7vvH3300S6pMAIAoDNSO3VrAACwXnSweP7557swwnPJJZe4g9p1efvtt+2+++6L/pyXl2dZWVntfmy16vz73/9236ty5MILL2wSYLz00kvR7zUrRQfEulwHzbHb6wUWno8//rjJZe+8806T0EH++9//2llnndXkAFwDcefMmeNOun8FPut6PmPGjGmyvWpBOeSQQ1wIkp+f7wIIBQCdoYDklVdeibY56euwYcNcGKHARtsba8WKFS6w0eujYEIBUFu0jQp3/vWvf7mfX3jhBRc8ePScvH2YkpLiwo+2KBTyXgPth/T0dIsHBUOnnnqqLV26tMn533zzjTs9++yz7vkOGjQo+t5WcKT9EKusrMyFUzrpPq+55pomQZja8JoPTV64cKE7ab8qZNlwww2bXK73pgYxKxj7/vvv17ocAIBkQgADAEA3UKWLF4KIDl4VjLSHDjQVuqhSRnNjVAkzZMgQV1USS4GBqg28AKF///42btw4KyoqckHCggULbPny5S5E8aolampqXMuOd9CvChhdX5UaOnBW6KDb6fYKCHQAHhsAzJ0710aOHOkOtr/66it3/oABA1w1g7ZDg2+98GXHHXd026PnoKobBTGqdNCBuypi2qL2mnvvvdcN3BUFFTopKNJBuMKPffbZxz1uLFULKdx566233M+DBw925w0fPnytx1Arj0IMhWJqFdOcGVUp6XG98EX7QSGAggPtN+1PPQ9Vomgbxo8f716X2MBMVSB6/XTSa+4FMP/5z39ctYceQ1577TX3enj7Sq9fW/Q6elUgqjiJB1UkqUrLC180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7vwFCxbYueeeazvuuKNNnDjRtttuO/fz6tWr3eUHHXSQnXLKKU3uf4899nD7q3kFk6pePAcccIB7jVatWrXe+6+3IIABAAAAACQlhS0PP/ywXXLJJW52zNixY+2GG25wbUuHH3643X///XbFFVdYcXGxnXXWWVZVVdXqfb388sv22muvuUqNm266yVasWGFnnHGGe4zOePbZZ+3444+3wYMHu/u94IIL7PPPP3fbt3LlSned++67z1WpnHbaafbggw/aEUccYQ888ICrHJFPP/3UhSF77bWXu67uQ4GSgpy2PP/887b33nuvdf5LL73klk/W/Z944oluvxx77LE2c+ZMu/TSS91j6+cXXnjBBUOyyy672EcffRTdHwps5s+f74IkfRUFRu+//36TUEZhkm7zyiuvdGo/9ga0IPlIVW3IFpVU2fA+2ZaeSnYGAAAA9FahcMSSQUow8Utkn3TSSW6eS2ZmplsSWG03v/vd75oMx83IyHBhyvfff99qK1N9fb0LHrz5MhUVFXbeeefZ9OnTm1SQdIQqWxQIqapEFS2eyZMn27777useT8GKgg09xiGHHOIu33rrrS0rK8vy8vKiAYyen56r2rGksLDQpk2bZpFIpMWlkBWmLF++3FXMNJeWlmaXX3559L70HNWSdd1119nw4cPdeaqy+fLLL922iUIVBTaqCtpiiy1c0DJq1CgXVH388cfudtrOyspK22233aKPlZ2d7YIxXV+hE1pHAOMj81dX2ryVlZYaDNjIvjndvTkAAAAAusEnc1ZZceWa1pXuVJidZlNGFSX0MTbaaKMmP3tBh1peZs2aZXPnzrU33njDnVdbW9vq/YwbN67JcN+BAwe6r21VzazL7NmzXQjSvFJFM24UYnjhhtqStN1qU1LFiMIOrSDk2WqrrVwlitqqVNGiahSFOvraGq8qZdiwYWtdNmbMmGj44u3Dv/3tby4wmjNnjttnaufS/lMwJQpy+vTp41ZT0rarAkfbrUoYBTBaaentt9+2DTbYYK3HHDp0qLse2kYZhY+EIw0pd32SpN0AAAAAkGiqsIilqpBDDz3UzTBRe41ae4LBhkNbVYu0RhUnsbzbKJRYX2p9kn79+q11mc4rKytz32s71UZVXV3tKmb2228/F7Z4c2sUeGg+japMNNflqKOOsp133tkeffTRVh/bu+/mz0vUftSc7lf7TAGPVi9SOBR7W+0PPaYqWcQLYFSt4wVJ77zzTpPqF4/ux9setI4KGB8JWEPZWRv/TwEAAADQw6nipDe1IMUqLy93YYYG7Gp+iSo9FBy89dZbbsZLV1ObkKhNpzlVxqiiRLSNClV00lwYba+Wj1bblAb4qlpFbVY6qSJH4ccjjzxiV155pW222WYtthl5911aWrrO7dSsmGuvvdb+8Ic/uEoWrTwlmpujQMujyhy1TKkNSc9J4YuG/Ko6R3NtfvjhB7vsssvWun9tg7c9aB0VMD6ypu0vOf5nCwAAAKD7go9kOHU1tcyo6kQDZNVS5FWxqDWms9Us62P06NHWv39/t4JR8/agL774ws2CEa24pDBF+vbt60IQhTEKLhQqaTaL5sOogkfVJKoy0XwaWbRoUYuPrWBElixZss7t1OyW/Px8F1554Ytm4Oj82H2mtidtwz333BN9bloxSlVI119/vQtZVK3TnLZBbUhoGxUwPuL9740KGAAAAAC9kUIBzXFR9Uhqaqo7qfJFyyB3dp5LaxQuaCWm5saPH2/bb7+9nX322W7VIs2B0TLSWtb59ttvt4KCgugS0JrxotWP1JakAEPLS6slSBUmCkQ0EFc/a6Un3YdWG9IKT6qw0WUtUfWPQhiFKFqmuy2qoFGrlqpgFO5okLEGBKvKRdvpUUij7Xv11VejA3W1j6dMmeJCrp/+9KfR0Muj1qMff/zRrQSFthHA+Ig3+Zr6FwAAAAC9kVYN0hLUf/7zn137jGadaMDsY489Zr/+9a/tk08+cUNu42nevHl2zTXXrHW+5tAogFE1i7ZDVSNaZloBkVqJFMyogkS0rWozevrpp+2OO+5wz0Pb6Q3v1bBdzYZRSHP66ae7Y78tt9zStSF5bU4t0TwXBSMKbtpy0EEHuSG5enwN49UAYj2mhgJffPHFbkUlrWTkbYuG7mr+i0ff63Fil5/2aC6MVl1q6TI0FYi0NaWoB/L621RGlcy0tJeWCtP/TLyhUzOXl9vs5RU2vCjbJgxqWK4MQMc+RwA697sIQMfwOUJnaGCrVtlR1YeWKO6tQqGQ2xfaBykpKd29OUlFlTR77LGHC25UZdMdfvnLX7pqoAsvvNB64+dwWgcyBmbA+LAFyVsNCQAAAADQe6mS5bjjjrP77ruvWx5f4cN3331nJ510Urc8vt8QwPixBYn8BQAAAABg5lZSUiXMu+++2+X7Q61ZamHyWq3QNmbA+HEIL1NgAAAAAABmbrbMc8891y37QvNk0H5UwPhIkAoYAAAAAAB8iQDGRxrzFwAAAAAA4DMEMD7EEF4AAAAAAPyFAMaHFTAM4QUAAAAAwF8IYPy4ClJ3bwgAAAAAAOgQAhg/roJECQwAAAAAAL5CAOPHVZC6e0MAAAAAAECHEMD4CDNgAAAAAAA9QaQXdnYQwPgILUgAAAAA/O7888+3CRMmtHk65phjOvUYt912m7ufztJ2dHZbEq2urs4OPvhg+9///md+8fe//92uu+666M/PPPOMe70WLFiQkMdrfv//+Mc/7KSTTrKultrlj4j1562CxD4EAAAA4FOnnnqq/eIXv4j+fOedd9q3335rt99+e/S83NzcTj3GYYcdZjvttJP1BnfffbcNGjTItt9+e/OLu+66y7beeutue/xDDjnEHn/8cRfEHHrooV32uAQwPhJoTGB6YaUWAAAAgB5ixIgR7uQpKiqy9PR023zzzeP2GAokdOrpli1bZvfee6898cQT3b0pvlth+OSTT7Y//elPtv/++1tmZmaXPC4tSD4S9CpgSGAAAAAA9HBqG9l4441dlcKee+5p2267rc2YMcNCoZALHXTgvOmmm7rgRhU1H3zwQastSGojuvDCC93tdt11V5s0aZK7zVdffRWXbX3vvffsyCOPtC233NK22WYb+/3vf2+LFy+OXh4Oh+3mm2+2qVOn2iabbOK+3njjja59yPPvf//bDjzwQPec9FzPOeccW7p0aZuP+9BDD9mQIUPcfXrmzZtnv/nNb9x2bLbZZnb44YfbW2+91WTf7LPPPvbKK6+4fah98dOf/tQ+//xz++KLL1z1kLZBl73//vtNHm/atGl2wgknuPuePHmye5wff/xxrVDoggsusF122cXdjypMXnvttejleu4LFy60f/7zn2u1HX355ZfuddE26XW6//77m9x3TU2N/fnPf3b3red8wAEH2IsvvtjkOtrXqqrS7fX8VXFVUlKy1r7bbbfd3P09/fTT1lUIYHyW0gkFMAAAAAB6A4UtDz/8sF1yySVudszYsWPthhtucAfYChZ0gH7FFVdYcXGxnXXWWVZVVdXqfb388ssuCLjooovspptushUrVtgZZ5zhHqMznn32WTv++ONt8ODB7n4VPijM0PatXLnS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B4VraqzsP/+xsldfs1BJsaUUFFreHrtb3j77WLALl7o+//zz7Z///Gebf4R/77334vZ4mil67LHH2iOPPGLbbLNNi9c55phj3NdHH300bo8LxCKA8ZmAqQ8pQgADAAAAoEPKXn/dFp1/gYVLSzXrwSwcdl/LXnnFglddbUOuvdbypu7WZXu1f//+dvvtt7d4WVpaWpdtB9BVCGD8pnEODC1IAAAAADoSviw47fQ1Zyh8ifkaLiuzBaedZsPuuN3ypk7tkh2bnp5um2++eZc8FpAMkn4VJDTlzeGlBQkAAADonSKhkNWvWtXuU+3ixbbovPMbb9zKLIPG83U9Xb+9961tSSQtyLLpppu6xVhiPfzwwzZx4kRbuXKl+/njjz+2E044wbbaaivbZJNNbOrUqXbbbbdZ2Aua4kitUUceeaRtueWWrp3p97//vS1evDh6uR7z5ptvdtvgbYsWlamrq4te59///rcdeOCB7rltu+22ds4559jSpUvjvq1ILlTA+EzQLYVE/QsAAADQG5X+5z+25IorLdQYPMRVJOIqYWbu1v4KmJS+fW3QxRdZ/j77rNdD1tfXt3y/KSluEZIDDjjAbrnlFnvttdfsiCOOiF7+wgsv2I477mh9+/a17777zo477jjbZ599XPARiUTs+eefd+1NY8aMsf3228/i5dlnn7XzzjvP9t9/fzv55JNt9erVduutt9rhhx/uZtpoe+677z574okn3PWGDx9uX375pdsutVWdeeaZ9umnn9q5555rp556qguMlixZYtdff70Lch577LG4bSuSDwGMT5ei1v9UAAAAAPQuiy++xIUkyUJBkLZpfQKYhQsXuiqWliigUEXL0KFDbcqUKfaf//wnGsDMmzfPvvrqKxdqiAKY7bff3oUYQc22MbMddtjBXn/9dTd8N14BjCpbbrjhBhf8qKLFM3nyZNt3333tgQcecNv90UcfucqXQw45xF2+9dZbW1ZWluXl5bmfFcBkZmbaSSed5NqwpLCw0KZNm+aO8xQ8oWcigPHlEF6zMPkLAAAAAB/TEN677rqrxcsGDx4c/V6tOpdddpktX77cBg0a5KpfcnNzXWuP/OxnP3Onmpoamz17ts2dO9emT59uoVCoSdtPZ+m+tQ2qVIk1YsQI22KLLVzwImpLUkCjNiVt46677mpHH3109PqqelF4pCqavffe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AAAAJBgBDAAAAAAAQIIRwAAAAAAAACQYAQwAAAAAAECCEcAAAAAAAAAkGAEMAAAAAABAghHAAAAAAAAAJBgBDAAAAAAAQIIRwCShcDhst956q+200062+eab269//WubP39+d28W0C2Ki4vtkksusZ133tkmT55sRxxxhH3yySfRy99//307+OCDbbPNNrN99tnHXnjhhSa3r6mpscsvv9y2224722KLLez3v/+9rVq1qsl11nUfQE8ye/Zs91l45plnoudNnz7djj76aPc7Z+rUqfbII490+PfSuu4D6AmeffZZ23fffW3SpEm233772UsvvRS9bMGCBXbyySe731U77rij3XLLLRYKhZrc/vHHH7fdd9/dNt10UzvyyCPt22+/bXJ5e+4D8Kv6+nr7y1/+Yrvttpv7PXTUUUfZF198Eb2c30XoDQhgktCdd95pf/vb3+yKK66wJ5980v3D98QTT7Ta2tru3jSgy5199tn2+eef20033WRPP/20bbTRRnbCCSfYrFmzbObMme4fqjoo1MHkYYcdZueee64LVDyXXXaZvfvuu3bbbbfZX//6V3e7M888M3p5e+4D6Cnq6ursnHPOscrKyuh5q1evtl/96lc2YsQI9xk77bTT7IYbbnDft/f3UnvuA/C75557zi688EJ30Kigfv/994/+jtJnS7+bRJ8R/e554okn7I477oje/p///Kf9+c9/trPOOsv9vhk2bJj73Hh/FGjPfQB+dtddd9nf//5397tEYebo0aPd75Jly5bxuwi9RwRJpaamJrLFFltEHn/88eh5JSUlkU033TTy/PPPd+u2AV1tzpw5kfHjx0c++eST6HnhcDiyxx57RG655ZbIxRdfHDn00EOb3Obss8+OHH/88e77JUuWRDbccMPIm2++Gb181qxZ7j4/++wz9/O67gPoSW688cbIscce6z4DTz/9tDvv7rvvjuy4446Rurq6Jtfba6+92v17aV33AfidfvfstttukWuvvbbJ+fpdofe/PgubbLJJpLi4OHrZk08+GZk8ebL7DIk+D3/+85+jl+vzsssuu7jbS3vuA/CzAw88MHLNNddEfy4rK3O/j15++WV+F6HXoAImyXz33XdWUVHh2iU8+fn5tvHGG9vHH3/crdsGdLU+ffrYvffe60q9PYFAwJ1KS0tdK1LsZ0W23XZb+/TTTxUuu6/eeR79tWXgwIHRz9O67gPoKfSef+qpp+zaa69tcr4+A1tvvbWlpqY2+QzMmTPHVqxY0a7fS+u6D6AntO4tXLjQDjjggCbnP/DAA66KUp+BiRMnWkFBQZPPQHl5uWurWLlypfs8xH6O9HmZMmVKk89RW/cB+F3fvn3tjTfecK12aq3T76T09HTbcMMN+V2EXoMAJsksWbLEfR08eHCT8wcMGBC9DOgtdJC3yy67uF/Onpdfftnmzp3rWob0mRg0aNBan5WqqipXyrp06VIX4mRkZLT6eVrXfQA9gQJLtdZddNFFa/1+ae0zIIsXL27X76V13QfQEwIYUfue2oQUpKhl9fXXX3fn8zkC1k0tfGlpaW4Okv64dvPNN7v5Ympf5TOE3oIAJsnooE9iDzhFB5AaJgr0Zp999pldcMEFttdee9muu+5q1dXVa31WvJ81m0Kfp+aXN/88res+gJ5AsyQ08LD5X+9b+wx4oaU+J+35vbSu+wD8TlUoct5557nZLw8++KDtsMMOduqpp7qZYXyOgHWbMWOG5eXlublGqn7RAgiaS6YKLz5D6C3W1AojKWRmZkYP/LzvvX/AZmVldeOWAd3r1Vdfdb+ktTKEhnt6B3jNQxLvZ31e9BlqKUSJ/Tyt6z4Av9OgQ7U2PP/88y1e3tLnxAtNsrOz2/V7aV33Afid/movqn456KCD3PcaCq9VjB566KEOfY6aX4fPEXoDVUNqJcqHH37Ytd6JqmAUymihBH4XobegAibJeCXemgYeSz9rbgXQGz322GN2xhlnuGUL77777uhf1vV5aemzon/s6i8saonQMtbN/8Eb+3la130AfqeViDR/QlVjqoLRSS699FK3+oQ+Jy19BkSfk/b8XlrXfQB+572Px48f3+T8cePGuXkWfI6Atn355Zdupa/YuX6y2WabudZyPkPoLQhgkoyGUOXm5tqHH37YpHdff2HZaqutunXbgO7gLX2rZT+1FHVsm4P+gvLRRx81uf4HH3zgqmSCwaBtueWWbrlcbxiv18ev2TDe52ld9wH4nSrGXnzxRVcJ451Ey7FfddVV7rOgz4gGIsZ+BjSwWgMT2/N7aV33AfidhuPm5OS4g8hYP/zwg5tfoc+APhNeq5L3GdBt9BnS50Cfh9jPUX19vatOi/0ctXUfgJ95c8K+//77tT5Do0aN4ncReo/uXoYJa7vpppsiW2+9deTVV1+NTJ8+3S1xqKULa2tr2V3oVbRk9MSJEyOnnXZaZNmyZU1OpaWlkR9++MFdfv3110dmzJgReeCBByIbb7xx5H//+1+TJaWnTp0a+eCDDyJffvll5Gc/+1nk6KOPjl7envsAeprYZahXrFgR2WqrrSLnnXde5Mcff3TnT5o0KfLMM8+0+/dSe+4D8Ls77rjDLcmu5aLnzp0bufPOOyMbbrih+/1SXV0d2WOPPSInnHCC+4y88sor7jNz2223RW//1FNPueXb9bnQ5+QPf/hDZJtttomsXLnSXd6e+wD8KhQKRY444ojIPvvsE3n//fcjs2fPjtx8882RjTbaKPLFF1/wuwi9RkD/6e4QCE3pL4j6S/8zzzzjBlLpLyKXXHKJDRs2jF2FXkXtRpqQ3xL14Gs53bffftuuv/56t7ynPiNqVdp3332j19OKFVdffbVbPUl23nlntxKMVkfyrOs+gJ5mwoQJds0117gBiPLVV1+5ahj99b1///52/PHH29FHH92h30vrug+gJ9C8F7XFqpJy7Nix7vfFHnvs4S5TG8Xll1/uqlq0lPShhx7qLo+tptSy1Y888ohrj91kk03c7yPNkvG05z4AvyopKbFbbrnF3nzzTfe9WvrOPvts23rrrd3l/C5Cb0AAAwAAAAAAkGDE6QAAAAAAAAlGAAMAAAAAAJBgBDAAAAAAAAAJRgADAAAAAACQYAQwAAAAAAAACUYAAwAAAAAAkGAEMAAAAAkQiUTYrwAAIIoABgAAdLljjjnGnZorLy+3n//857bJJpvYq6++2unHmTBhgt12223rddsrrrjCbr755ujPlZWV7r723Xdf23TTTW3LLbe0X/ziF/b3v/+9SdhSWlpq5557rn3yyScWb7NmzbKpU6e6xwAAAP5CAAMAAJKCwpcTTzzRvvvuO7vjjjtsjz326LZtef/99+2VV16x3/zmN+5nBSz6/qmnnnKhyz333GM33nijC4ouvvhiu+aaa6K3nT59uj333HMWDofjvl1jxoyx3Xff3a688sq43zcAAEis1ATfPwAAQLvDF4UXd911l+2www7dutcUqBx33HGWlZXlfv7000/tww8/tAcffLDJtu26664WDAbtscces1//+tfWv3//hG/bSSed5B73l7/8pU2cODHhjwcAAOKDChgAANCtKioqXHjx/fff27333rtW+KKWm6uvvtoFDmr9ufDCC935y5YtswsuuMB22WUXd/6hhx5qr732WpuPdeutt9pGG21k//znP1u9zptvvmk//PCD7bffftHzli9f7r62VNVy5JFH2u9+9zsLBAIupDn22GPd+foa22allqqDDz7YJk2a5J6jqljU1uRRe5Oe6xtvvGH77LOPbbbZZq4dS/cZSyHPtttu66pwAACAfxDAAACAbqMAQhUd3377rd133322zTbbtHi9xx9/3AUXd955pwtaVqxY4b5qzorCD4UXQ4cOtdNOO83+9a9/tXgfDzzwgLu9ZrscdNBBrW6Tbr/55pvbwIEDo+dtvfXWlp2dbWeffbZdf/31LhSprq52l40aNcoFSP369XMVKZdccok7X18vvfRS9/3zzz/vtk0tRGqvOv30093jnHrqqU3mx6xatcrOO+88F+r85S9/sczMTDvhhBNcZVAsBTSvv/66C68AAIA/0IIEAAC6NXxRe4/3c2uGDBli55xzTvRnhSAKK15++WUXvIgqYdQ29Oc//9n2339/1xrkeeKJJ9xt/vSnP7ngpi0ffPBBk+oX6du3rwuIzj//fLv//vvdKS0tzQU1Bx54oB1yyCGWkpJiubm5Nm7cOHcbfdVJAcsNN9xgO+20k/vqUXCj7X3rrbdcS5FUVVXZZZddZj/72c/cz6p00SwcVQbFDgRWGFVXV+cCKD1vAACQ/KiAAQAA3eLrr7+2H3/80VW3jBw50oUbXqtPc2obivXRRx/ZFltsEQ1fPApDdB9aLcijlp7LL7/cpkyZ4lp62qIQaOXKlTZs2LC1LtPt//vf/7p5LxrIqxDkiy++cEN41WrkVcQ0p21ZsmSJay+qr6+PnrbaaisX2Lz33nvR66amprrwyKMKmJ133tk+/vjjJvfpPe8FCxa0+XwAAEDyIIABAADdoqCgwP7617+65ZxVtVJSUuLab2Jbcjxq/4ml67Y08FZtQBK7TPM333zjqkQUYqhtpy1lZWUtPp5HVTUKTtT2pKoahSdHHHGEq+L5xz/+0eJtiouL3VeFQGpRij1p+LBm2cRuv0KY5tU33n14vOHAuj0AAPAHWpAAAEC3mDBhgm244Ybuew2cPfnkk918FLX3aKbKusKblqplvPP69OkTPe/www934YeCEn3VPBdVnrTEu11sgCO//e1vXQjy8MMPr7UdmvXy4osv2owZM1q8z/z8fPf13HPPdY/d0nPxNA9aRPNuFMLE8rYv9nkCAIDkRgUMAABIChpIq7YeDZ/96quv2ryuqlA+//xzW7hwYZPzNdhWlTFqafLoZ61QpNkqCjNuvPHGVu83PT3dXX/x4sVNztf9aTaMWo6aUwWLWpfGjx/vftYsmFgavKsARe1Cen7eSUN+tS0aQOxRG9M777zT5Oe3337btttuuyb3qZYmbzYOAADwBwIYAACQFNR6o0G5+qrVhtpqr/nVr35lhYWFbojtc8895wbZqi1IIYm+xg7g9ajaRktZq3Xos88+a/W+tUR088uPP/54Gzt2rHtcbaNCEbU0aX7NUUcdZRtssIFbYlry8vKiy1l/9913LpDRNj355JNu6Wm1Lb300ktudSOFL2pFiqWltdXOpNk1J554ogt3TjnllCbXUcuT2pA0lwYAAPgDAQwAAEgao0ePdq068+fPjy7h3BJVqShIUXihUOOss85yVStaZlorErXmjDPOcFUjF110kdXW1rZ4nb333tsFJ0uXLm3SJvTUU0/Zscce68IXtSQplHn00Ufd0FwN5tXAXFEYo/MUzngrNx122GGu2kXBjgb4qhpHg351++HDhzd5fF2m56HQRhU5ep6xFT2ibdDKSd5jAgCA5BeItDTpDgAAoJfSP420mpKCmNNPP73LHve2226z22+/3b7//vs2r6e2qz333NNVyWy88cZdtn0AAKBzqIABAACIoXkxf/jDH1zLUDKuMvTggw/aPvvsQ/gCAIDPEMAAAAA0s/POO9vuu+9u99xzT1Ltm5kzZ7qltLXyEgAA8BdakAAAAAAAABKMChgAAAAAAIAEI4ABAAAAAABIMAIYAAAAAACABCOAAQAAAAAASDACGAAAAAAAgAQjgAEAAAAAAEgwAhgAAAAAAIAEI4ABAAAAAABIMAIYAAAAAACABCOAAQAAAAAASDACGAAAAAAAgAQjgAEAAAAAAEgwAhgAAAAAAIAEI4ABAAAAAABIMAIYAAAAAACABCOAAQAAAAAASDACGAAAAAAAgAQjgAEAAAAAAEgwAhgAAAAAAIAEI4ABAAAAAABIMAIYAAAAAACABCOAAQAAAAAASDACGAAAAAAAgAQjgAEAAAAAAEgwAhgAAAAAAIAEI4ABAAAAAABIMAIYAAAAAACABCOAAQAAAAAASDACGAAAAAAAgAQjgAEAAAAAAEgwAhgAAAAAAIAEI4ABAAAAAABIMAIYAAAAAACABCOAAQAAAAAASDACGAAAAAAAgAQjgAEAAAAAAEgwAhgAAAAAAIAEI4ABAAAAAABIMAIYAAAAAACABCOAAQAAAAAASDACGAAAAAAAAAIYAAAAAAAAf6MCBgAAAAAAIMEIYAAAAAAAABKMAAYAAAAAACDBCGAAAAAAAAASjAAGAAAAAAAgwQhgAAAAAAAAEowABgAAAAAAIMEIYAAAAHyivr6+uzcBAACsp9T1vSEAAC055phj7KOPPmrXzhk6dKi9/vrrCdmRU6dOtYULF7rvH3nkEdtmm23Mjz788EM79thjoz9///331tOdf/759s9//tN9f/rpp9sZZ5xhyWLBggW2++67t3p5Wlqa5eXl2YgRI9z19HnIysrq9OMuXbrUbrzxRtt+++3tZz/7mSXSm2++aSeffLINGTLEXn31VUtJSYle9tVXX9lTTz1lH3/8sS1fvtzq6uqsT58+tvHGG9v+++/vToFAIG7v+UT+P6Ij/y+75ppr7OCDD+7U/U2YMCH6/WuvvWbDhg2zRJg3b57tvffelp2dbS+99JINGDAgIY8DAOg4KmAAAADiRIHEqlWr7IsvvnCByXHHHWfV1dWdus8nnnjC9tlnH3vuuecsHA4n9LWqrKy0P/3pT+77I444okn4cs8999jPf/5z+8c//mFz585119XzXbZsmQttzjnnHDvxxBM7/XzROQr/dt55ZysvL7err76a3QkASYQKGABAXOkv4JtttlmLl+mv5jow9WywwQYJ2/u/+MUvrLS01H2vv+TDP3bZZRfr16+f+37LLbe0ZKb3mSpeJBKJWE1NjX3yySc2ffp0d57e73/729/s+OOPX+/HePHFF13Y0RUeffRRVzmWmZnpwhaPntNNN93UpJpj8803t9TUVPccv/nmG3f+u+++6673xz/+sUu2F61X7ygUUwXM0UcfbVOmTGFXAUASIIABAMTV4Ycf3uL5M2fOdAeinsGDB7uy/kQ56aSTEnbfSKyf/OQn7uQHv/71r9dqJVGVig56P/30U/ez2ng6E8B0FYVHateTXXfd1QoLC6OXPf30000+416VjOfiiy+2//u//3PfP/PMM3beeec1qZ5B11KrWv/+/V2b2EMPPUQAAwBJghYkAEDC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mO8x55A5D8z5kPw8SkxMtNlpyc+ja90HkJ4564Rt3br1X+eQn58fr0XIPNzdhgn/9sEHHzjq16/viIyMdERFRdkWh6Z1YXx8PIcLmYppGV21alXHM8884zh69Ogl48yZM45t27bZ+ZEjRzp27Njh+OqrrxxVqlRx/Pbbb5e0lG7RooXj999/d6xfv97RqVMnR48ePVzzKbkPIKNJ3ob6+PHjjnr16jleffVVx/bt2+3t1atXd8yYMSPFr0spuQ8gvRszZoxtyW7aRe/du9cxduxYR+XKle3rS1xcnCMgIMDx2GOP2XMkIiLCnjOffPKJ6/unTZtm27eb88KcJ/369XM0aNDAceLECTufkvsA0quLFy86HnjgAUdwcLBjxYoVjt27dztGjx7t8Pf3d6xbt47XImQaHub/3B0EwqXMO4jmnf4ZM2bYglTmHZFBgwapRIkSHCpkKma7kamQfyVmD75pp7ts2TKNHDnStvc054jZqtSmTRvX15mOFe+++67tnmQ0adLEdoIx3ZGcrncfQEZTqVIlDRs2zBZANP766y+bDWPefS9UqJAeffRR9ejR44Zel653H0BGYOq9mG2xJpOyXLly9vUiICDAzpltFG+99ZbNajGtpENCQux88mxK07Z6woQJdntstWrV7OuRqSXjlJL7ANKr06dP68MPP9SSJUvsv82Wvr59+6p+/fp2ntciZAYEYAAAAAAAAFIZ4XQAAAAAAIBURgAGAAAAAAAglRGAAQAAAAAASGUEYAAAAAAAAFIZARgAAAAAAIBURgAGAAAAAAAglRGAAQAAAAAASGUEYAAAAFKBw+HguAIAABcCMAAA4Lbr2bOnHZc7e/as7r33XlWrVk2RkZH/+XEqVaqkTz755Ka+95133tHo0aNdn58/f97eV5s2bVSjRg3VrVtX999/v6ZPn35JsOXMmTN65ZVXtGbNGt1qu3btUosWLexjAACA9IUADAAASBNM8KVXr17asmWLxowZo4CAALetZcWKFYqIiNCTTz5pPzcBFvPvadOm2aDL559/rvfff98Git544w0NGzbM9b1RUVGaNWuWkpKSbvm6ypYtq5YtW2rIkCG3/L4BAEDqypLK9w8AAJDi4IsJXowbN0533323W4+aCag8/PDDyp49u/38jz/+0MqVK/X1119fsrZmzZrJ09NToaGh6t27twoVKpTq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AEDJBDAAAAAAJRPAAAAAAJRMAAMAAABQMgEMAAAAQMkEMAAAAAAlE8AAAAAAlEwAAwAAAFAyAQwAAABAyQQwAAAAACUTwAAAAACUTAADAAAAUDIBDAAAAEDJBDAAAAAAJRPAAAAAAJRMAAMAAABQMgEMAAAAQMkEMAAAAAAlE8AAAAAAlEwAAwAAAFAyAQwAAABAyQQwAAAAACUTwAAAAACUTAADAAAAUDIBDAAAAEDJBDAAAAAAJRPAAAAAAJRMAAMAAABQMgEMAAAAgAAGAAAAoHVTAQMAAABQMgEMAAAAQMkEMAAAAAAlE8AAAAAAlEwAAwAAAFAyAQwAAABAyQQwAE2w6667ptVWWy37uuyyy750/7XXXlt7f3wdf/zxX3rMH/7wh9r7v/Od75Sy/IttePfdd+f7efbee+/a57nzzjtTtTjkkENq23Xeeed95eMvvfTS2scffvjhafbs2QulnbSM++67L1vXG264Yfriiy++dP/f//73dPTRR6cddtghrbfeemmttdZK3/72t9OgQYPSDTfckKZNm/aV+1X+tfrqq6dvfOMbaYMNNkj/9V//lc4555z0ySef1Pm72Acbs0/G8WJex455+cc//pH93TbbbFP7mi+++OJ627zGGmukddZZp/Y1P/jgg6k5fP7552nTTTfN/kcs1yeffPJLjym2qSmvcdttt639u8cff/wrHx+PyR8ff0vzvje0hOZ6P9prr72y57jxxhubtX0AjSGAAWiC6GTlnnvuuS/d/+ijj9b5/YknnvjSY5599tnanzfaaCPLv4lefvnlrAMdDj744KwjPS+fffZZ+u1vf5v9/N3vfjcLbDp16mS5t2H5fhf7a8eOHWtv/89//pP222+/LMD705/+lMaNG5emTp2aZs2alT766KP0r3/9K5122mlpxx13TK+88kqj/tfcuXOzQC+2szfffDNdffXVaY899kjjx49PC0u8hqFDh2Y/77nnnnVec33mzJmTZsyYUfuaDzrooHT55ZcvcDuiQztx4sTUvXv3dOWVV2YBGFSbCGDC+eefn+0DAAuTT6AATRAdit/97nf1BjAzZ85MTz31VJ3b3nvvvews49e+9rXa24p/V+0dlJ122il985vfzH5eddVVUzUYMWJE9n3w4MFZNctXuf7669Onn34qfGlHRo8enX3feOONa2+LbSDCidgnc7FtR/VLBBIR7OX7Zjxm//33T/fcc09acsklG9w3ll566exvIwB55plnakObt99+O/3mN79JF1xwQVoY4pgUbe7atWvafffd631MtDXaHCJwijDqoYceytoeLrzwwrTddtulVVZZZb6rX6655posfLniiita/Ni2zDLLpAMOOCD7efHFF2/RtlBdtt9++2x/iJA0QpgzzzyzpZsEtCMCGIAmKHYqYpjBO++8k5Zbbrnaypa8M1N5Nj4PYKZPn55effXVVlMBE2fyq00MJ2qKqHaIL9qH2C9ff/31LwUwxx13XG34ssQSS2SBw2abbVbnb//2t7+lo446qrYi5rrrrst+r08EHZtsskmdSphf/OIXWWgT/vd//zeriunRo0cqU1SyRMgYtt5669SzZ896HxfHqWOPPbbObXEs+p//+Z8sPI4gKYZ1xHKaH4suumgaNWpUqhb1vV4IUSEWVW5XXXVVtr8ec8wxqXfv3hYOsFAYggTQBH369EkrrLBCvcOJopQ/V+z4FYchvfjii7Xzj/Tr1y87ux5n4fNx7XF/paj0yO+P4Q25mOchOohxVnvttdfO5n646KKLss7UvMTQixhLH21cc80107rrrpt23nnnrLIkOnONGXMfP+e3Dxs2LKsu+PWvf5222GKLrC3f//730+9///sG2/Dwww9nr2vLLbfMKhDi72Io0fPPP1/v48eMGZN9SI7XGI+P/xHzOgwZMiSNHTu23r+J1xJz8gwcODCbj2L99dfPXmec8ayco6MhxdcZFQ0ffPBB9j9jnot4zlg+jz322Jf+rrjcXnjhhaxjHss5Arxzzz33S/OVxLCYmI8jf10nnXRSeuONNxpsV3R0I1T61re+lS2P+JvDDjuszvZYFENtYr6N+B/x+Fju81p2EUREmyKgiPlNou2xncW6njRpUr1/E9v1bbfdln7yk59kyyfmGIkhX2eccUZWbTGv+U5iDpJ4XAwZiuUa6zr3yCOPZJUM0ZbYXvPnjbPWkydPbrD6JYKPeHx4+umnszlScrEuK8OX/Mx4DMeJ7zG8rSkBaU1NTdpnn33qBDIR0JYt9ucJEyZkP8ecNk0Ry37zzTevs50srG04F8O2YluO/TPWfzxPZSXhvPzqV7+qbWc8x0svvTTfc8AU55mJ48f999+ffvSjH2WvO8K2CHTef//9L/3dlClT0vDhw9P3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tWB98uF/UQknfAEWJgEMQAuLCTRjuEOUWOdXPorhF/WNWV9YlS8xnCNvSz4MqCnDIoCFJybljiFNMaQinxQX2qPild5iYt7iBMa5mMMrhiDFkLEYFgiwMAlgAFpYhBv5XCgxl0aMxY/S6ZY6KxdVL9GmmEsg5qaI4Q0xz0N9V24CWl7My5EPlStelh7am5VXXjmbCybmhYn3r8o52ELMaRNizqXipdwBFgZzwAAAAACUTAUMAAAAQMkEMAAAAAAl65TamWeeeSYbGx1zLQAAAADMr7hwRU1NTVpvvfW+8rHtLoCJ8MXkdAAAAMCCakq+0O4CmLzyZe21127ppgAAAACt2AsvvNDox5oDBgAAAKBkAhgAAACAkglgAAAAAEomgAEAAAAomQAGAAAAoGQCGAAAAICSCWAAAAAASiaAAQAAACiZAAYAAACgZAIYAAAAgJIJYAAAAABKJoABAAAAKJkABgAAAKBkAhgAAACAkglgAAAAAEomgAEAAAAomQAGAAAAoGQCGAAAAICSCWAAAAAASiaAAQAAACiZAAagnftizpyWbkKbYnm2T9a75QkAX6XTVz4CgDatY4cO6dTr7kpvfTChpZvS6n29f5906j67tnQzaKH96IQ/3Z7e+Nh+tKBW6t0nnbXj/zTLegGAaiKAASALX/797geWBCyACF9e+XC8ZQgA1MsQJAAAAICSCWAAAAAASiaAAQAAACiZAAYAAACgZAIYAAAAgJIJYAAAAABKJoABAAAAKJkABgAAAKBkAhgAAACAkglgAAAAAEomgAEAAAAomQAGAAAAoGQCGAAAAICSCWAAAAAASiaAAQAAACiZAAYAAACgZAIYAAAAgJIJYAAAAABKJoABAAAAKJkABgAAAKBkAhgAAACAkglgAAAAAEomgAEAAAAomQAGAAAAoGQCGAAAAID2FMC8+eabab311kt33nln7W1jxoxJe+21V1p33XXTtttum66//voWbSMAAABAqw1gZs2alY499tg0derU2tsmTpyYBg0alJZffvl0xx13pMGDB6dhw4ZlPwMAAAC0Fp1Slbj44otTjx496tx22223pUUWWSQNHTo0derUKa288spp3Lhx6YorrkgDBw5ssbYCAAAAtLoKmNGjR6dbb701nX322XVuf/LJJ9PGG2+chS+5TTfdNL311ltpwoQJLdBSAAAAgFYYwEyePDkNGTIknXzyyWnppZeuc98HH3yQ+vfvX+e2pZZaKvs+fvz4hdpOAAAAgFY7BOnUU0/NJt7deeedv3Tf9OnTU+fOnevc1qVLl+z7jBkz5vt/zp07t85cMwDtVU1NTerWrVtLN6PNmTZtWvZeQ/tgP2od+1GsJ5qX4xxAyo6FjX2PadEA5u67786GGd1zzz313t+1a9c0c+bMOrflwUv37t0XaMLfuLoSQHsX4cuaa67Z0s1oc+KqftF5pH2wH1X/fhRzCq75jTVTp44tfu6xzZj9xez08ksvZ5+rAdq7zhWFIw1p0XehuJrRxx9/nLbeeus6t59yyinpvvvuy4Yfffjhh3Xuy3/v16/fAr0JDxgwYL7/HqCtcEa4HCuuuKIzw+2I/aj696NYRxG+/Pqft6Vxn37ULM/Znq3Qs286Zcvd0yqrrOJYB7R7r7/+eqOXQYsGMHFJ6RhmVLTDDjukww8/PH3/+99Pf/jDH9Itt9ySvvjii9SxY8fs/lGjRmVvyL17916gN+EFqaABgHkxrAuqcz+K8OXfn7zf7M/bXjnWAaQmnYhp0Ul4o4plhRVWqPMVIlyJ++JS05999lk66aSTslTpzjvvTNddd1068MADW7LZAAAAAK3rKkjzEkHMVVddlY0B3nXXXdOIESOyKybFzwAAAACtRdXNRPbqq6/W+X2dddZJt956a4u1BwAAAKBNV8AAAAAAtAUCGAAAAICSCWAAAAAASiaAAQAAACiZAAYAAACgZAIYAAAAgJIJYAAAAABKJoABAAAAKJkABgAAAKBkAhgAAACAkglgAAAAAEomgAEAAAAomQAGAAAAoGQCGAAAAICSCWAAAAAASiaAAQAAACiZAAYAAACgZAIYAAAAgJIJYAAAAABKJoABAAAAKJkABgAAAKBkAhgAAACAkglgAAAAAEomgAEAAAAQwAAAAAC0bipgAAAAAEomgAEAAAAomQAGAAAAoGQCGAAAAICSCWAAAAAASiaAAQAAACiZAAYAAACgZAIYAAAAgJIJYAAAAABKJoABAAAAKJkABgAAAKBkAhgAAACAkglgAAAAAEomgAEAAAAomQAGAAAAoGQCGAAAAICSCWAAAAAASiaAAQAAACiZAAYAAACgZAIYAAAAgJIJYAAAAABKJoABAAAAKJkABgAAAKBkAhgAAACAkglgAAAAAEomgAEAAAAomQAGAAAAoGQCGAAAAICSCWAAAAAASiaAAQAAACiZAAYAAACgZAIYAAAAgJIJYAAAAABKJoABAAAAKJkABgAAAKBkAhgAAACAkglgAAAAAEomgAEAAAAomQAGAAAAoGQCGAAAAICSCWAAAAAASiaAAQAAACiZAAYAAACgZAIYAAAAgJIJYAAAAABKJoABAAAAKJkABgAAAKBkAhgAAACAkglgAAAAAEomgAEAAAAomQAGAAAAoGQCGAAAAICSCWAAAAAASiaAAQAAACiZAAYAAACgZAIYAAAAgJIJYAAAAABKJoABAAAAKJkABgAAAKBkAhgAAACAkglgAAAAAEomgAEAAAAomQAGAAAAoGQCGAAAAIC2HsB8/PHH6Re/+EXadNNN03rrrZd+/vOfp7Fjx9beP2bMmLTXXnulddddN2277bbp+uuvb9H2AgAAALS6AGbw4MFp3Lhx6Yorrki333576tq1a9pnn33StGnT0sSJE9OgQYPS8ssvn+64447sscOGDct+BgAAAGgtOrXkP580aVJadtll04EHHphWXXXV7LZDDjkk7bLLLum1115Ljz32WFpkkUXS0KFDU6dOndLKK69cG9YMHDiwJZsOAAAA0DoqYJZYYok0fPjw2vDlk08+Sdddd13q379/GjBgQHryySfTxhtvnIUvuRiq9NZbb6UJEya0YMsBAAAAmrkC5u67727CU6b0gx/8IDXVL3/5y3Tbbbelzp07p8suuyx17949ffDBB7XhTG6ppZbKvo8fPz716dOnyf8HAAAAoCoDmOOPP77O7zU1Ndn3uXPnfum2+Q1gfvazn6U99tgj3XjjjdlcLzfddFOaPn16FsgUdenSJfs+Y8aMNL+i3VOnTp3vvwdoK+LY3a1bt5ZuRpsT85gV3yNp2+xH1b8fWUflcKwDSNl7VTEPWeAA5u9//3udqxLFVYtirpb//u//zipSYrLcBx54IF188cXprLPOmq91EEOOwhlnnJGee+65dMMNN2QT8s6cObPO4/LgJSpk5tesWbOy1wHQ3kX4suaaa7Z0M9qcN998M+uY0D7Yj6p/P7KOyuFYB/B/VRaOLFAAExPl5g477LAsfDnggANqb+vXr1/ac889s7Dk3HPPTVtttVWj/nnM+RIT7X73u9+tneelQ4cOWRjz4YcfZnPBxPei/Pf4n/MrJvbNAx+A9qyxaT1Ns+KKK6qAaUfsR9W/H1lH5XCsA0jp9ddfL+8qSGPHjm3wbOlKK62U3n333UY/V0yke/TRR6errroqbbHFFrXVKS+//HLadtttszlebrnllvTFF1+kjh07ZvePGjUqO9j37t07Lcib8IJU0ADAvBjWBQvOflT9rCOA1KSQv8lXQfr617+e7rnnnnrvu/XWW780ae68xGO33HLLdPrpp6fRo0enf//739l8M5MnT0777LNPdqnpzz77LJ100klZqnTnnXdmV0mKy1YDAAAAtBZNroCJCXKPOOKI7FLQ22yzTVpyySWzSpa//vWvWUhy5ZVXNun5zjvvvOxS1EcddVSaMmVK2nDDDbOJeJdZZpns/qiOiXlhdt1119S3b980ZMiQ7GcAAACANhvA7LDDDumSSy7Jvi644IJsbG7M27Leeutl1SkRoDTFYostlk499dTsqz7rrLNOVlkDAAAA0G4CmBDzs8RXXJFo0qRJqWfPno2e9RcAAACgvZmvACZE8BKXBpwzZ042BKkoHz4EAAAAwHwEMOPGjUvHHXdceu655xp8zJgxYyxbAAAAgPkNYE477bRsAt5DDz009e/fP5v/BQAAAIBmDGDictFxVaKddtqpqX8KAAAA0C41uXylR48eaYklliinNQAAAABtUJMDmF122SXdeOON2eWnAQAAAChhCFK3bt3SU089lbbffvu09tprp65du9a5v6amJp155plNfVoAAACANqvJAcxdd92VFltssezy0/VdCSkCGAAAAAAWIIB54IEHmvonAAAAAO1akwOY3OTJk9Ozzz6bpkyZknr16pUNR4oJegEAAABohgDmiiuuSJdeemmaPn167W2dO3dOBx54YBo8ePD8PCUAAABAm9XkAOaOO+5I5513Xvqf//mf9P3vfz/16dMnffTRR+kPf/hDGjFiRFpmmWXSrrvuWk5rAQAAANpDAHPdddelPffcM51yyim1t6200kppk002ya6IdP311wtgAAAAAAo6pCYaN25c+s53vlPvfdttt1164403mvqUAAAAAG1akwOYfv36pffff7/e+959910T8QIAAAAsaACz7bbbpgsvvDA9//zzdW5/7rnn0sUXX5zdDwAAAMACzAFz2GGHpX/9619pjz32SMsuu2w2Ce+ECRPSe++9l1ZeeeV0zDHHNPUpAQAAANq0JgcwPXr0SLfffnt2NaTRo0enSZMmpbXXXjvtu+++abfddssm4gUAAABgAQKYMGPGjPS1r30t/fjHP66d++Whhx5Ks2bNEsAAAAAALOgcMGPHjk077rhjOvXUU2tve+edd9JZZ52VBg4c2OAEvQAAAADtVZMDmHPPPTe7EtLNN99ce9tmm22WVcD07NkznXPOOc3dRgAAAID2FcA8/fTT2US8EcIU9e7dOx100EFp1KhRzdk+AAAAgPYXwNTU1KRp06bVe9/s2bOzeWAAAAAAWIAAZqONNkqXXHJJ+uSTT+rc/umnn6bLL788bbzxxk19SgAAAIA2rclXQTrmmGPS7rvvnrbbbru07rrrpl69eqWJEyemZ599NnXu3DkNHz68nJYCAAAAtJcKmBVXXDHde++96Uc/+lGaOnVqevHFF9PkyZOzUObuu+/O7gcAAABgASpgQkzAe9xxx83PnwIAAAC0O/MVwMycOTPdfvvt6V//+lf66KOP0plnnpmeeOKJ9I1vfCOts846zd9KAAAAgPY0BCkm3x04cGA644wz0rhx49Lzzz+fpk+fnv7xj3+kvffeOz3zzDPltBQAAACgvQQw55xzTvr888/Tfffdl+666640d+7c7PaLLroorb322tl3AAAAABYggHnwwQfTEUcckVZYYYVUU1NTe3uXLl3Svvvum1566aWmPiUAAABAm9bkAGbGjBmpZ8+e9d7XsWPHNGvWrOZoFwAAAED7DWBimNFNN91U73333HNPWmuttZqjXQAAAADt9ypIMfxon332SbvsskvaaqutsmFI9957b7r44ovTI488kq666qpyWgoAAADQXipgNtxww3Tttdembt26ZWFLTMJ73XXXZZejHjlyZNp0003LaSkAAABAe6mACRtttFG65ZZbsstPT5o0KfXo0SMtuuiizd86AAAAgPZYAVPUtWvXNGXKlPTwww+nN954o/laBQAAANAeA5j7778/7bzzzumGG26ove03v/lNdtuRRx6ZdtxxxzR06NCy2gkAAADQtgOY0aNHp8MPPzx17tw5rbzyytlt//rXv7K5YDbYYIN09913p+HDh2ff77jjjrLbDAAAANCqNGoOmKuvvjptvvnm2SS7HTr838zm5ptvzq6AdNZZZ6Xlllsurb766um1115Lt912Wxo4cGDZ7QYAAABoWxUwzz33XPrhD39YG77MmTMnPfbYY2nAgAFZ+JLbeOONsxAGAAAAgCYGMDHRbq9evWp/f/XVV9Nnn32WNtlkkzqPi4AmwhkAAAAAmhjA9OnTJ40fP77296h+ieFHm266aZ3HjRkzJvXt27cxTwkAAADQbjQqgIn5X66//vo0derUrBrm1ltvTT169EhbbLFF7WM+/fTT7DGVVTEAAAAA7V2jJuEdPHhw2n333dO3vvWtrPJl2rRp6ZRTTkldunTJ7h8xYkR29aPJkyenAw88sOw2AwAAALS9AGaZZZbJLjEdlS8ff/xx2nrrrdOWW25Ze/+dd96Z+vfvnwUxxUl5AQAAAGhkAJPPAxOVMPW5//77a6+QBAAAAEBdzZKaCF8AAAAAGqZsBQAAAKBkAhgAAACAkglgAAAAAKotgLn00kvT2LFjy2kNAAAAQBvU5ABm5MiR6d133y2nNQAAAABtUJMDmAEDBqQ333yznNYAAAAAtEGdmvoH22yzTTrvvPPSww8/nFZbbbXUvXv3OvfX1NSkwYMHN2cbAQAAgK8wd+4Xqaamo+VUpcuzyQHMiBEjsu+PPvpo9lVJAAMAAAALX4QFT7/+6/TZtHEW/wLq0W2FtP6AU1JzanIA88orrzRrA4C27Ys5c1LHDi64ZnkCALAwRPgyaeq/Lewq1OQApmjKlCnpww8/TMstt1zq2LFj9gVQFOHLmZfcld5+f4IFs4CWX6ZPOnHwrpYjAAC0lwDm8ccfT8OGDUsvvvhiNuTo97//fbryyitT//790/HHH9/8rYQGzPliTurQUXVFtS/PCF9ef+uDZn9eAACANhvAPPbYY+mAAw5I6623Xjr22GOzICasvvrq6aKLLkr9+vVLgwYNKqOt8CURFpz7m9+nd975yNJZQMst1zf94rgfWo4AAADVEMBccMEFabvttksXXnhhmj17djr33HOz2w866KA0derUrBpGAMPCFOHL2NfHW+gAAABUrSaPNRgzZkwaOHBg9nMMPyrafPPN03vvvdd8rQMAAABojwHMYostlj76qP7hHuPHj8/ub0vzYWB5AgAAwEIfghTDj84///y06qqrpjXXXLO2EuaDDz5Il19+edp6661TW5pf5Jzjr0nvvGHy0AW13Er905Cz922W9QIAAABtPoA55phj0nPPPZd233331KdPn+y2o48+Ogtgll566ezntiTCl7Fj3mnpZgAAAADtKYBZYoklsol277777jRq1Kj06aefZsOO9t5777Tbbrulbt26ldNSAAAAgPYSwITOnTtnFTDxBQAAAEAJAcwrr7ySrrzyyvTEE0+kSZMmpd69e6fNNtssHXzwwWm55Zabn6cEAAAAaLOaHMBE6LLffvtlQ5G22mqrLHyZMGFC+uc//5n+8pe/pJtvvjmboBcAAACA+Qxghg8fnjbYYIM0cuTI1KVLl9rbp0+fnvbff/90zjnnpKuuuqqpTwsAAADQZnVo6h+8+uqradCgQXXCl9C1a9esMuapp55qzvYBAAAAtL8AJi41/e6779Z73yeffJJ69erVHO0CAAAAaL8BzHHHHZcuuuiidM8996Q5c+bU3v7oo4+mCy64IJ144onN3UYAAACA9jUHzNChQ9PMmTPTkCFD0gknnJD69u2bPv3002wOmLlz56ZDDz209rE1NTXp5Zdfbu42AwAAALTtAGa33XYrpyUAAAAAbVSTA5hihQsAAAAAJcwBAwAAAEDTCGAAAAAASiaAAQAAACiZAAYAAACgNQQws2fPzi5FDQAAAEAzBDARtowYMSLdc8892e+PP/542nzzzdNmm22Wfvazn6VJkyY19SkBAAAA2rQmBzAXXXRRuuyyy9LkyZOz308//fTUs2fPdMIJJ6S33347DR8+vIx2AgAAbdicuXNaugltiuUJ1adTU//gT3/6Uzr66KPTT37ykzR27Nj02muvpbPPPjv94Ac/yIKYc845Jw0dOrSc1gIAAG1Sh5oOaeRzN6Txn/2npZvS6i3do1868Jt7tXQzgAUNYD788MP0zW9+M/v5H//4R+rQoUPacssts9/79++fpkyZ0tSnBAAAyMKXcZPfsySANqnJQ5CWWmqp9O6772Y/P/DAA2mNNdZIvXr1yn5/5plnshAGAAAAgAUIYHbaaad01llnpf322y899dRTaeDAgdntZ5xxRrr44ovTzjvv3NSnBAAAAGjTmjwE6cgjj0zdu3dPo0ePTsccc0z68Y9/nN3+wgsvpH333TcdcsghZbQTAAAAoP0EMDU1NenAAw/MvopuueWW5mwXAAAAQPsdghRmzpyZbrrppnTooYemPfbYI7sa0s0335yef/75Jj/Xp59+mn71q19lE/muv/76ac8990xPPvlk7f2PPfZY2m233bKJf//rv/4ruwoTAAAAQJsO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AGjTmhzAxNCj008/PW2//fZpypQp6ZZbbklbbbVV9jVr1qx02WWXpSuuuKKc1gIAAAC0Qh2a+gcx10u/fv2yn1dYYYX02muv1d733e9+1yWoAQAAABY0gFl++eWzKpiw4oorZhPvvvHGG9nvs2fPTp9//nlTnxIAAACgTWtyALPzzjunYcOGpRtuuCH16tUrrbXWWtl8MA888EC65JJL0oABA8ppKQAAAEB7CWD233//9KMf/Sg999xz2e+nnHJKGjNmTDrkkEOySpghQ4aU0U4AAACA9jMJb1z16Ljjjqv9fe211073339/Fr6stNJKqUePHs3dRgAAAID2FcBUmjRpUnr77bez+WCELwAAAAALMATp+eefTwcddFC6++67a2+LeWC23HLLtPvuu6ctttgiXX311Y19OgAAAIB2o1EBzCuvvJL23nvvbK6X7t27Z7e98MIL6YwzzkjLLbdcuvjii7M5YM4///xsOBIAAAAATRyCNHLkyLT66qun6667LnXr1i277frrr8++xxWR4r4wYcKE9Lvf/S595zvfaczTAgAAALQLjaqAGT16dFYBk4cv4ZFHHsmqX/LwJXz7299OL7/8cjktBQAAAGjLAcynn36a+vfvX/v72LFj08SJE9Mmm2xS53ER0MycObP5WwkAAADQ1gOYnj17po8//rj291GjRqWampq02Wab1XlcBDO9evVq/lYCAAAAtPUAZuONN0633XZbmjt3bpo9e3a64447UpcuXbIrH+Wi8uXGG29M66+/fpntBQAAAGibk/AefPDBaY899sgm140Q5v3330+DBw9Oiy22WHZ/BDIRvrz55pvpnHPOKbvNAAAAAG0vgFlllVWyCphrrrkmG4p0wAEHpD333LP2/gsuuCB16tQpXXLJJWmNNdYos70AAAAAbTOACQMGDEhnnnlmvffdfvvtqW/fvqlDh0aNaAIAAABoVxodwMxLv379muNpAAAAANokJSsAAAAAJRPAAAAAAJRMAAMAAABQMgEMAAAAQMkEMAAAAAAlE8AAAAAAlEwAAwAAAFAyAQwAAABAyQQwAAAAACUTwAAAAAAIYAAAAABaNxUwAAAAACUTwAAAAACUTAADAAAAUDIBDAAAAEDJBDAAAAAAJRPAAAAAAJRMAAMAAABQMgEMAAAAQMkEMAAAAAAlE8AAAAAAlEwAAwAAAFAyAQwAAABAyQQwAAAAACUTwAAAAACUTAADAAAAUDIBDAAAAEDJBDAAAAAAJRPAAAAAAJRMAAMAAABQMgEMAAAAQMkEMAAAAAAlE8AAAAAAlEwAAwAAAFAyAQwAAABAyQQwAAAAACUTwAAAAACUTAADAAAAUDIBDAAAAEDJBDAAAAAAJRPAAAAAAJRMAAMAAABQMgEMAAAAQMkEMAAAAADtKYAZOXJk2nvvvevcNmbMmLTXXnulddddN2277bbp+uuvb7H2AQAAALTqAObGG29MF1xwQZ3bJk6cmAYNGpSWX375dMcdd6TBgwenYcOGZT8DAAAAtBadWroB//nPf9Ipp5ySHn/88fT1r3+9zn233XZbWmSRRdLQoUNTp06d0sorr5zGjRuXrrjiijRw4MAWazMAAABAq6qAeemll7KQ5Y9//GP65je/Wee+J598Mm288cZZ+JLbdNNN01tvvZUmTJjQAq0FAAAAaIUVMDGvS3zV54MPPkirrrpqnduWWmqp7Pv48eNTnz59FkobAQAAAFp1ADMv06dPT507d65zW5cuXbLvM2bMmO/nnTt3bpo6deo8H1NTU5O6des23/+D+k2bNi1b/s3BOiqHdVT9rKP2tY6oft6PyuFYV/2so+pnHVU/66j1r6O4Lz4LtPoApmvXrmnmzJl1bsuDl+7du8/3886aNSu7utK8RPiy5pprzvf/oH5vvvlmtgE3B+uoHNZR9bOO2tc6CjFUtzgclwUze/bs7LNAc/F+VA7HuupnHVU/66j6WUdtYx1VFo40pKo/zfXv3z99+OGHdW7Lf+/Xr98CfZAdMGDAPB/T2ASLpllxxRWbtQKG5mcdVT/rqP2to85duqSOHVp82rY244s5c9LMGTO8H1U5x7rqZx1VP+uo+llHrX8dvf76641+rqoOYDbaaKN0yy23pC+++CJ17Ngxu23UqFHZAujdu/cCfZhdkAoa5p9hXdXPOqp+1lH7XEcn33ZnevMjE9AvqBX79kmn776b/agVcKyrftZR9bOOqp911PrXUVMKA6o6gIlLTV911VXppJNOSvvvv396/vnn03XXXZd+/etft3TTAGChivDllfc/sNQBAFqpqq5njiqXCGBizNWuu+6aRowYkYYMGZL9DAAAANBaVFUFzNlnn/2l29ZZZ5106623tkh7AAAAANp8BQwAAABAWyCAAQAAACiZAAYAAACgZAIYAAAAgJIJYAAAAABKJoABAAAAKJkABgAAAKBkAhgAAACAkglgAAAAAEomgAEAAAAomQAGAAAAoGQCGAAAAICSCWAAAAAASiaAAQAAACiZAAYAAACgZAIYAAAAgJIJYAAAAABKJoABAAAAKJkABgAAAKBkAhgAAACAkglgAAAAAEomgAEAAAAomQAGAAAAoGQCGAAAAICSCWAAAAAASiaAAQAAACiZAAYAAACgZAIYAAAAgJIJYAAAAABKJoABAAAAKJkABgAAAKBkAhgAAACAkglgAAAAAEomgAEAAAAomQAGAAAAoGQCGAAAAICSCWAAAAAASiaAAQAAACiZAAYAAACgZAIYAAAAgJIJYAAAAABKJoABAAAAKJkABgAAAKBkAhgAAACAkglgAAAAAEomgAEAAAAomQAGAAAAoGQCGAAAAICSCWAAAAAASiaAAQAAACiZAAYAAACgZAIYAAAAgJIJYAAAAABKJoABAAAAKJkABgAAAKBkAhgAAACAkglgAAAAAEomgAEAAAAomQAGAAAAoGQCGAAAAICSCWAAAAAASiaAAQAAACiZAAYAAACgZAIYAAAAgJIJYAAAAABKJoABAAAAKJkABgAAAKBkAhgAAACAkglgAAAAAEomgAEAAAAomQAGAAAAQAADAAAA0LqpgAEAAAAomQAGAAAAoGQCGAAAAICSCWAAAAAASiaAAQAAACiZAAYAAACgZAIYAAAAgJIJYAAAAABKJoABAAAAKJkABgAAAKBkAhgAAACAkglgAAAAAEomgAEAAAAomQAGAAAAoGQCGAAAAICSCWAAAAAASiaAAQAAACiZAAYAAACgZK0igJkzZ0666KKL0hZbbJHWXXfddMABB6R33nmnpZsFAAAA0HYCmEsvvTTddNNN6bTTTku33HJLFsjsv//+aebMmS3dNAAAAIDWH8BEyHLNNdekww8/PG299dZp9dVXT+eff3764IMP0l//+teWbh4AAABA6w9gXnnllfT555+nzTbbrPa2xRdfPK255ppp9OjRLdo2AAAAgMaomTt37txUxaLK5bDDDkvPPfdc6tq1a+3tRxxxRJo+fXoaOXJkk57v6aefTvGSF1lkka98bE1NTZr0yZQ0e/YX89V2/r9OnTqmJXotli375pSto08/T7O/sI4WVKeOHdMSPRctZR19OnmqddRM66jn4t1LWUcTP5vqWNdMx7ole5S0jj7/PM36Yk6zPm97tEjHDmnJRcs51n0y9fM0e473owXVqUPH1Kt7Oeto4nTrqLnW0ZJdy1lHU2Z+Zj9qpnW0WOcepayjqbMmpzlzHesWVIeajqn7IouXso5mzpqY5syd3azP2x51qOmUOi+y5Feuo1mzZmXLff311//K5+yUqty0adOy7507d65ze5cuXdKkSZOa/HyxYIrfv0qEBjSfxi73pojQgOpeRxEaUN3rKEIDqnwdLepYV+3rKEIDqnw/6modVfs6itCA6l5HERpQ3esoQgMW3jqK+xu7Hqs+gMmrXmIumGIFzIwZM1K3bt2a/Hzrrbdes7YPAAAAoNXPAbP00ktn3z/88MM6t8fv/fr1a6FWAQAAALShACauetSjR4/0+OOP1942efLk9PLLL6eNNtqoRdsGAAAA0CaGIMXcL3vttVcaNmxY6tWrV1p22WXTueeem/r375922GGHlm4eAAAAQOsPYMLhhx+eZs+enU4++eTsykdR+XL11Vc36kpGAAAAAC2t6i9DDQAAANDaVf0cMAAAAACtnQAGAAAAoGQCGAAAAICSCWAAAAAASiaAAQAAACiZAAYAAACgZAKYNmLkyJFp7733bulmUPDpp5+mX/3qV2nLLbdM66+/ftpzzz3Tk08+aRlVkY8//jj94he/SJtuumlab7310s9//vM0duzYlm4WDXjzzTez9XTnnXdaRlXkP//5T1pttdW+9GU9VZe77747fe9730trr7122nHHHdOf//znlm4S/8/jjz9e7z4UX9ttt53lVCVmz56dLrzwwrTNNttk70U/+clP0rPPPtvSzaLgs88+S6ecckr69re/nTbeeON07LHHZp/1qN7+6pgxY9Jee+2V1l133bTtttum66+/PrV1Apg24MYbb0wXXHBBSzeDCkcffXR65pln0nnnnZfuuOOOtMYaa6T99tsvvfHGG5ZVlRg8eHAaN25cuuKKK9Ltt9+eunbtmvbZZ580bdq0lm4aFWbNmpV9kJo6daplU2VeeeWV1KVLl/Twww+nRx55pPYrOvtUhz/84Q/ppJNOyjqMf/rTn9JOO+1U+x5Fy4vOfHHfia8RI0akmpqadMghh7R08/h/LrvssvT73/8+nXbaaVmgueKKK6b9998/ffjhh5ZRlTjiiCPSQw89lM4444ysfxSf537605+mmTNntnTT2r36+qsTJ05MgwYNSssvv3zWV4rP5cOGDct+bssEMK38rONBBx2Ubahf//rXW7o5FESn/tFHH02nnnpq2nDDDbM36V/+8pdpqaWWSvfcc49lVQUmTZqUll122XT66aenddZZJ6288srZB934IPXaa6+1dPOocPHFF6cePXpYLlXo3//+d/YeFMe3vn371n5FoEnLmzt3bnbWPjohEcDEB92DDz44fetb30pPPPFESzePlFLnzp3r7DuLLrpoOuuss9Kuu+6aBg4caBlVifvvvz8LL6O6YoUVVkjHH398mjJliiqYKhGVFBFeDh06NG211VZplVVWSeecc072uS6CZ6qvv3rbbbelRRZZJFtn8Tk8jndxIjROjLZlAphW7KWXXso22j/+8Y/pm9/8Zks3h4Ill1wyO3hEqXcuzmTF1+TJky2rKrDEEkuk4cOHp1VXXTX7/ZNPPknXXXdd6t+/fxowYEBLN4+C0aNHp1tvvTWdffbZlksVevXVV7MPTlTv0L333nsv7bzzznVuv/rqq9OBBx7YYu2iYZdffnl25v64446zmKpI796904MPPpjefffd9MUXX2TvSxGerb766i3dNFJKb731VrYc4sRnLsLMCMuEzdXZX33yySezoWKdOnWqvS2mBYh1OWHChNRW/f9XS6sT4+Tii+qz+OKLZ+l70V/+8pesMubEE09ssXZRv6hOihQ+PkhFiXH37t0tqioRgeWQIUPSySefnJZeeumWbg4NVMBE6BzVFdHZjw+7UWER81/R8mKdhBi+F8NgX3755fS1r30tW0c+Q1Sf/GTAMccck3r27NnSzaEghvHFEJeYl6djx46pQ4cOWXVmVJXR8qIKM4wfP772pEAEZR988EEWnlF9/dUPPvig9kRofeuxT58+qS1SAQMLwdNPP51OOOGEtMMOO6Stt97aMq8yP/vZz7LxplFaHONPI62nOsQwvpgfofLsPdUzKWXMaxVD+g477LCs8i8m0osJrR977LGWbh7/b1LKENUUcYy75ppr0uabb54NubSOqs9NN92UFltssbTHHnu0dFOo8Prrr2fr5pJLLsmqX3bbbbdsbrIY+kLLi6rzlVZaKZuEN4a9TJ8+Pat0jnlGYh45qs/06dOzk59FMadcmDFjRmqrVMDAQhgzHG/QcSWkGP9I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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "==================================================\n",
+ "SZCZEGÓŁOWE WYNIKI EWALUACJI\n",
+ "==================================================\n",
+ " epoch step eval_loss eval_runtime eval_samples_per_second\n",
+ " 1.0 915 0.698937 35.1236 23.175\n",
+ " 2.0 1830 0.617202 34.4665 23.617\n",
+ " 3.0 2745 0.577280 34.1537 23.833\n",
+ " 4.0 3660 0.545364 18.8015 43.294\n",
+ " 5.0 4575 0.526966 82.4268 9.875\n",
+ " 6.0 5490 0.512095 18.8094 43.276\n",
+ " 7.0 6405 0.500422 20.3806 39.940\n",
+ " 8.0 7320 0.499637 38.3302 21.236\n",
+ " 9.0 8235 0.494340 43.7664 18.599\n",
+ " 10.0 9150 0.497277 33.9088 24.006\n"
+ ]
+ }
+ ],
+ "source": [
+ "import pandas as pd\n",
+ "import matplotlib.pyplot as plt\n",
+ "import seaborn as sns\n",
+ "\n",
+ "# 1. Pobranie danych z historii trenera\n",
+ "history = trainer.state.log_history\n",
+ "df = pd.DataFrame(history)\n",
+ "\n",
+ "# Rozdzielenie logów treningowych i ewaluacyjnych\n",
+ "train_df = df[df['loss'].notna()].copy()\n",
+ "eval_df = df[df['eval_loss'].notna()].copy()\n",
+ "\n",
+ "# Konfiguracja stylu i rozmiaru - wysokość ustawiona na 18 cali dla 3 wykresów\n",
+ "sns.set_theme(style=\"whitegrid\")\n",
+ "fig, axes = plt.subplots(3, 1, figsize=(12, 18))\n",
+ "\n",
+ "# --- WYKRES 1: STRATA (LOSS) ---\n",
+ "# Wyświetlamy surowe dane (lekka linia) i średnią kroczącą (wyraźna linia) dla lepszej czytelności\n",
+ "axes[0].plot(train_df['step'], train_df['loss'], label='Train Loss (raw)', color='#1f77b4', alpha=0.3)\n",
+ "axes[0].plot(train_df['step'], train_df['loss'].rolling(window=5).mean(), label='Train Loss (smoothed)', color='#1f77b4', linewidth=2)\n",
+ "\n",
+ "if not eval_df.empty:\n",
+ " axes[0].plot(eval_df['step'], eval_df['eval_loss'], label='Eval Loss', color='#d62728', marker='o', markersize=8, linewidth=3)\n",
+ "\n",
+ "axes[0].set_title('Krzywa Straty (Loss)', fontsize=16, fontweight='bold')\n",
+ "axes[0].set_xlabel('Krok (Step)', fontsize=12)\n",
+ "axes[0].set_ylabel('Loss', fontsize=12)\n",
+ "axes[0].legend(fontsize=12)\n",
+ "\n",
+ "# --- WYKRES 2: LEARNING RATE ---\n",
+ "axes[1].plot(train_df['step'], train_df['learning_rate'], color='#2ca02c', linewidth=2)\n",
+ "axes[1].set_title('Zmiana Learning Rate (Scheduler)', fontsize=16, fontweight='bold')\n",
+ "axes[1].set_xlabel('Krok (Step)', fontsize=12)\n",
+ "axes[1].set_ylabel('Learning Rate', fontsize=12)\n",
+ "axes[1].ticklabel_format(axis='y', style='sci', scilimits=(0,0)) # Notacja naukowa dla małych wartości\n",
+ "\n",
+ "# --- WYKRES 3: WYDAJNOŚĆ (SAMPLES PER SECOND) ---\n",
+ "if not eval_df.empty:\n",
+ " # Używamy barplotu dla wydajności na epokę\n",
+ " sns.barplot(x=eval_df['epoch'].astype(float).astype(int), y=eval_df['eval_samples_per_second'], ax=axes[2], palette='viridis')\n",
+ " axes[2].set_title('Wydajność procesora/GPU (Próbki na sekundę)', fontsize=16, fontweight='bold')\n",
+ " axes[2].set_xlabel('Epoka', fontsize=12)\n",
+ " axes[2].set_ylabel('Samples per Second', fontsize=12)\n",
+ "else:\n",
+ " axes[2].text(0.5, 0.5, 'Brak danych o wydajności ewaluacji', ha='center', fontsize=14)\n",
+ "\n",
+ "# Automatyczne dopasowanie marginesów, żeby napisy na siebie nie nachodziły\n",
+ "plt.tight_layout(pad=3.0)\n",
+ "plt.show()\n",
+ "\n",
+ "# Wyświetlenie tabeli z kluczowymi metrykami pod wykresami\n",
+ "if not eval_df.empty:\n",
+ " print(\"\\n\" + \"=\"*50)\n",
+ " print(\"SZCZEGÓŁOWE WYNIKI EWALUACJI\")\n",
+ " print(\"=\"*50)\n",
+ " print(eval_df[['epoch', 'step', 'eval_loss', 'eval_runtime', 'eval_samples_per_second']].to_string(index=False))"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python (Projekt AI)",
+ "language": "python",
+ "name": "projekt_ai"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.13.7"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/summarizer/summarizer_learn.py b/summarizer/summarizer_learn.py
new file mode 100644
index 0000000000000000000000000000000000000000..8836c998d5ff67e5e1a8f98eaaf57acd96b0345a
--- /dev/null
+++ b/summarizer/summarizer_learn.py
@@ -0,0 +1,121 @@
+import os
+import torch
+from pathlib import Path
+from datasets import Dataset
+from transformers import (
+ AutoTokenizer,
+ AutoModelForSeq2SeqLM,
+ DataCollatorForSeq2Seq,
+ Seq2SeqTrainingArguments,
+ Seq2SeqTrainer
+)
+
+# --- KONFIGURACJA ŚCIEŻEK ---
+# Wyjście o jeden poziom wyżej z folderu 'summarizer' do głównego folderu projektu
+BASE_DIR = Path(__file__).resolve().parent.parent
+DATA_ROOT = BASE_DIR / "content"
+TITLE_ROOT = BASE_DIR / "titles"
+SUMMARY_ROOT = BASE_DIR / "summary"
+
+MODEL_ID = "google/flan-t5-small"
+OUTPUT_MODEL_DIR = BASE_DIR / "summarizer" / "models" / "flan_t5_custom"
+
+MAX_INPUT_LEN = 512
+MAX_TARGET_LEN = 128
+
+def load_data():
+ """Wczytuje dane i tworzy pary: Instrukcja + Tekst -> Wynik."""
+ dataset_dict = {"input_text": [], "target_text": []}
+
+ print(f"📂 Szukam danych w: {DATA_ROOT}")
+
+ # Przeszukujemy foldery rekurencyjnie
+ files = list(DATA_ROOT.rglob("*.txt"))
+ for txt_file in files:
+ rel_path = txt_file.relative_to(DATA_ROOT)
+
+ # 1. Wczytaj surowy tekst (cecha wejściowa)
+ with open(txt_file, "r", encoding="utf-8") as f:
+ ocr_content = f.read().strip()
+
+ if not ocr_content: continue
+
+ # 2. Dodaj parę dla zadania HEADLINE
+ t_file = TITLE_ROOT / rel_path
+ if t_file.exists():
+ with open(t_file, "r", encoding="utf-8") as f:
+ dataset_dict["input_text"].append(f"headline: {ocr_content}")
+ dataset_dict["target_text"].append(f.read().strip())
+
+ # 3. Dodaj parę dla zadania SUMMARIZE
+ s_file = SUMMARY_ROOT / rel_path
+ if s_file.exists():
+ with open(s_file, "r", encoding="utf-8") as f:
+ dataset_dict["input_text"].append(f"summarize: {ocr_content}")
+ dataset_dict["target_text"].append(f.read().strip())
+
+ return Dataset.from_dict(dataset_dict)
+
+def main():
+ # 1. Przygotowanie danych
+ raw_dataset = load_data()
+ if len(raw_dataset) == 0:
+ print("❌ Nie znaleziono plików w content/titles/summary. Sprawdź ścieżki.")
+ return
+
+ dataset = raw_dataset.train_test_split(test_size=0.1)
+
+ # 2. Tokenizer i Model
+ tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
+ model = AutoModelForSeq2SeqLM.from_pretrained(MODEL_ID)
+
+ def preprocess(examples):
+ inputs = [ex for ex in examples["input_text"]]
+ model_inputs = tokenizer(inputs, max_length=MAX_INPUT_LEN, truncation=True, padding="max_length")
+
+ labels = tokenizer(text_target=examples["target_text"], max_length=MAX_TARGET_LEN, truncation=True, padding="max_length")
+ model_inputs["labels"] = labels["input_ids"]
+ return model_inputs
+
+ tokenized_dataset = dataset.map(preprocess, batched=True)
+
+ # 3. Argumenty treningu
+ # 3. Argumenty treningu
+ training_args = Seq2SeqTrainingArguments(
+ output_dir="./tmp_results",
+ eval_strategy="epoch", # <--- Zmieniono z evaluation_strategy
+ learning_rate=3e-4,
+ per_device_train_batch_size=8,
+ per_device_eval_batch_size=8,
+ weight_decay=0.01,
+ save_total_limit=2,
+ num_train_epochs=15,
+ predict_with_generate=True,
+ fp16=False,
+ logging_steps=10,
+ # Opcjonalnie dodaj te parametry dla lepszego generowania:
+ generation_max_length=MAX_TARGET_LEN,
+ generation_num_beams=4,
+ )
+
+ # 4. Trener
+ trainer = Seq2SeqTrainer(
+ model=model,
+ args=training_args,
+ train_dataset=tokenized_dataset["train"],
+ eval_dataset=tokenized_dataset["test"],
+ tokenizer=tokenizer,
+ data_collator=DataCollatorForSeq2Seq(tokenizer, model=model),
+ )
+
+ print(f"🚀 Rozpoczynam uczenie na {len(raw_dataset)} przykładach...")
+ trainer.train()
+
+ # 5. Zapisywanie modelu
+ os.makedirs(OUTPUT_MODEL_DIR, exist_ok=True)
+ model.save_pretrained(OUTPUT_MODEL_DIR)
+ tokenizer.save_pretrained(OUTPUT_MODEL_DIR)
+ print(f"✨ Model wyuczony i zapisany w: {OUTPUT_MODEL_DIR}")
+
+if __name__ == "__main__":
+ main()
\ No newline at end of file
diff --git a/summarizer/verify_converted_to_tflite.py b/summarizer/verify_converted_to_tflite.py
new file mode 100644
index 0000000000000000000000000000000000000000..30e942a3561e6cbfc46954883598c7c47d1aa33c
--- /dev/null
+++ b/summarizer/verify_converted_to_tflite.py
@@ -0,0 +1,100 @@
+import numpy as np
+import tensorflow as tf
+from transformers import AutoTokenizer
+from pathlib import Path
+
+# --- KONFIGURACJA ---
+BASE_DIR = Path(__file__).resolve().parent.parent
+MODEL_PATH = BASE_DIR / "summarizer" / "models" / "summarizer.tflite"
+TOKENIZER_DIR = BASE_DIR / "summarizer" / "models" / "flan_t5_custom"
+
+# Te wartości muszą być zgodne z tymi, które ustawiliśmy podczas konwersji (256)
+MAX_LEN = 256
+
+
+def generate_tflite(prompt, interpreter, tokenizer):
+ # 1. Tokenizacja wejścia (Enkoder)
+ input_ids = tokenizer.encode(prompt, max_length=MAX_LEN, truncation=True, padding="max_length")
+ input_ids = np.array([input_ids], dtype=np.int32)
+
+ # 2. Przygotowanie wejścia dla Dekodera (zaczynamy od tokena PAD/START = 0)
+ decoder_input_ids = np.zeros((1, MAX_LEN), dtype=np.int32)
+ output_tokens = [0]
+
+ # Pobranie szczegółów tensorów wejściowych i wyjściowych
+ input_details = interpreter.get_input_details()
+ output_details = interpreter.get_output_details()
+
+ # Logika generowania (identyczna jak we Flutterze)
+ generated_text = ""
+ print(f"⏳ Generowanie dla promptu: '{prompt[:30]}...'")
+
+ for i in range(MAX_LEN - 1):
+ # Wypełniamy decoder_input_ids dotychczasowymi tokenami
+ for j, token in enumerate(output_tokens):
+ decoder_input_ids[0, j] = token
+
+ # Uruchomienie interpretera
+ # Uwaga: kolejność zależy od tego, jak model został zapisany
+ # Sprawdzamy nazwy tensorów, aby dopasować dane
+ for detail in input_details:
+ if "input_ids" in detail['name'] and "decoder" not in detail['name']:
+ interpreter.set_tensor(detail['index'], input_ids)
+ elif "decoder_input_ids" in detail['name']:
+ interpreter.set_tensor(detail['index'], decoder_input_ids)
+
+ interpreter.invoke()
+
+ # Pobranie logitów z wyjścia [1, 256, 32128]
+ output_data = interpreter.get_tensor(output_details[0]['index'])
+
+ # Interesuje nas logit dla ostatniego wygenerowanego tokena
+ next_token_logits = output_data[0, len(output_tokens) - 1, :]
+
+ # Greedy Search (wybieramy najlepszy token - Argmax)
+ next_token = int(np.argmax(next_token_logits))
+
+ # Warunki stopu
+ if next_token == 1: # 1 to EOS (End of String) w T5
+ print("LOG: Otrzymano token EOS (1)")
+ break
+
+ output_tokens.append(next_token)
+
+ # Dekodowanie na bieżąco
+ word = tokenizer.decode([next_token])
+ generated_text += word
+ print(f" Step {i}: {next_token} -> '{word}'")
+
+ if len(output_tokens) >= MAX_LEN:
+ break
+
+ return generated_text.strip()
+
+
+def main():
+ if not MODEL_PATH.exists():
+ print(f"❌ Nie znaleziono pliku modelu w: {MODEL_PATH}")
+ return
+
+ print(f"🚀 Ładowanie modelu TFLite: {MODEL_PATH}")
+ interpreter = tf.lite.Interpreter(model_path=str(MODEL_PATH))
+ interpreter.allocate_tensors()
+
+ print(f"🚀 Ładowanie tokenizera z: {TOKENIZER_DIR}")
+ tokenizer = AutoTokenizer.from_pretrained(TOKENIZER_DIR)
+
+ # Przykładowy test (używamy tekstu, który już znamy)
+ sample_text = "Matura 2005 przykład RZECZPOSPOLITA POLSKA ŚWIADECTWO DOJRZAŁOŚCI Janina Kosińska-Iksińska"
+
+ # Test 1: Tytuł
+ title = generate_tflite(f"headline: {sample_text}", interpreter, tokenizer)
+ print(f"\n📌 FINALNY TYTUŁ TFLITE: {title}")
+
+ # Test 2: Podsumowanie
+ summary = generate_tflite(f"summarize: {sample_text}", interpreter, tokenizer)
+ print(f"\n📝 FINALNE PODSUMOWANIE TFLITE: {summary}")
+
+
+if __name__ == "__main__":
+ main()
\ No newline at end of file
diff --git a/summarizer/verify_summarizer_before_converting_to_tflite.py b/summarizer/verify_summarizer_before_converting_to_tflite.py
new file mode 100644
index 0000000000000000000000000000000000000000..55bb0574f47f34e0dbc05845224979d0f9618c8c
--- /dev/null
+++ b/summarizer/verify_summarizer_before_converting_to_tflite.py
@@ -0,0 +1,124 @@
+import os
+import torch
+import pytesseract
+import json
+from pathlib import Path
+from PIL import Image
+from pdf2image import convert_from_path
+from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
+
+# --- KONFIGURACJA ---
+# Ścieżka do Tesseracta (zgodnie z Twoim systemem)
+pytesseract.pytesseract.tesseract_cmd = r'/opt/homebrew/bin/tesseract'
+
+# Ścieżki relatywne
+SUMMARIZER_DIR = Path(__file__).resolve().parent
+BASE_DIR = SUMMARIZER_DIR.parent
+MODEL_PATH = SUMMARIZER_DIR / "models" / "flan_t5_custom"
+VERIFY_DIR = SUMMARIZER_DIR / "scans_to_verify_summary"
+
+# Urządzenie (wykryte mps w Twoich logach)
+device = "mps" if torch.backends.mps.is_available() else "cpu"
+
+
+def perform_ocr(file_path):
+ """Konwertuje obraz/PDF na tekst."""
+ text = ""
+ try:
+ if file_path.suffix.lower() == ".pdf":
+ pages = convert_from_path(file_path)
+ for page in pages:
+ text += pytesseract.image_to_string(page, lang='pol+eng')
+ else:
+ text = pytesseract.image_to_string(Image.open(file_path), lang='pol+eng')
+ except Exception as e:
+ print(f" [!] Błąd OCR dla {file_path.name}: {e}")
+ return text
+
+
+def load_model():
+ print(f"🚀 Ładowanie modelu z: {MODEL_PATH}...")
+ if not MODEL_PATH.exists():
+ raise FileNotFoundError(f"❌ Nie znaleziono modelu w {MODEL_PATH}.")
+
+ tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH)
+ model = AutoModelForSeq2SeqLM.from_pretrained(MODEL_PATH).to(device)
+
+ # --- DEBUG TOKENIZERA ---
+ print("\n" + "=" * 40)
+ print("🔍 TOKENIZER VERIFICATION (Dla porównania z Flutterem)")
+
+ for word in ["Janina", "Joanna"]:
+ encoded = tokenizer.encode(word, add_special_tokens=False)
+ print(f" ID dla słowa '{word}': {encoded}")
+
+ # Dodatkowy test na dekodowanie
+ test_ids = [0, 2664, 15, 1] # Przykładowe ID
+ decoded = tokenizer.decode(test_ids)
+ print(f" Test dekodowania {test_ids}: '{decoded}'")
+ print("=" * 40 + "\n")
+ # -----------------------
+
+ return tokenizer, model
+
+
+def generate_text(prompt, tokenizer, model):
+ # Logowanie długości inputu
+ inputs = tokenizer(prompt, return_tensors="pt", max_length=512, truncation=True).to(device)
+ input_len = inputs['input_ids'].shape[1]
+
+ outputs = model.generate(
+ **inputs,
+ max_new_tokens=128,
+ num_beams=4,
+ early_stopping=True
+ )
+
+ result = tokenizer.decode(outputs[0], skip_special_tokens=True)
+ return result, input_len
+
+
+def main():
+ tokenizer, model = load_model()
+
+ if not VERIFY_DIR.exists():
+ os.makedirs(VERIFY_DIR)
+ print(f"📁 Folder {VERIFY_DIR} był pusty. Wrzuć tam zdjęcia dokumentów i uruchom ponownie.")
+ return
+
+ # Szukamy plików graficznych i PDF
+ extensions = [".jpg", ".jpeg", ".png", ".pdf"]
+ files = [f for f in VERIFY_DIR.glob("*") if f.suffix.lower() in extensions]
+
+ if not files:
+ print(f"ℹ️ Brak obrazów lub plików PDF w {VERIFY_DIR}.")
+ return
+
+ print(f"🔍 Znaleziono {len(files)} dokumentów do weryfikacji.\n")
+
+ for file_path in files:
+ print(f"📄 PRZETWARZANIE: {file_path.name}")
+ print("⏳ Wykonywanie OCR...")
+
+ ocr_text = perform_ocr(file_path)
+
+ if not ocr_text.strip():
+ print(f"⚠️ Nie udało się odczytać tekstu z {file_path.name}. Pomijam.")
+ continue
+
+ print(f"📊 Długość tekstu OCR: {len(ocr_text)} znaków")
+ print(f"📝 Pierwsze 100 znaków OCR: {ocr_text[:100].replace('\n', ' ')}...")
+ print("-" * 30)
+
+ # Zadanie 1: Tytuł
+ title, t_len = generate_text(f"headline: {ocr_text}", tokenizer, model)
+ print(f"📌 TYTUŁ (Tokeny wejściowe: {t_len}):\n{title}\n")
+
+ # Zadanie 2: Streszczenie
+ summary, s_len = generate_text(f"summarize: {ocr_text}", tokenizer, model)
+ print(f"📝 STRESZCZENIE (Tokeny wejściowe: {s_len}):\n{summary}")
+ print("=" * 60 + "\n")
+
+
+if __name__ == "__main__":
+ main()
\ No newline at end of file
diff --git a/summary/.DS_Store b/summary/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..f5292d565227080701f2e7c14c57132c80341278
Binary files /dev/null and b/summary/.DS_Store differ
diff --git a/summary/en/contract/b2bContract_12.txt b/summary/en/contract/b2bContract_12.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8ee66dd309a96777153cc200788184b9a30617e7
--- /dev/null
+++ b/summary/en/contract/b2bContract_12.txt
@@ -0,0 +1 @@
+Cooperation agreement between University of Wrocław and II Liceum Ogólnokształcące w Lubinie for educational and promotional activities.
\ No newline at end of file
diff --git a/summary/en/contract/b2bContract_15.txt b/summary/en/contract/b2bContract_15.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7db37d03261ffecc66d42550e02a86ae87dc6e06
--- /dev/null
+++ b/summary/en/contract/b2bContract_15.txt
@@ -0,0 +1 @@
+Termination of cooperation agreement. The agreement was terminated by mutual consent, with no disputes or issues.
\ No newline at end of file
diff --git a/summary/en/contract/b2bContract_16.txt b/summary/en/contract/b2bContract_16.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2d98de636ee4803023b1210f37269f4c099bb501
--- /dev/null
+++ b/summary/en/contract/b2bContract_16.txt
@@ -0,0 +1 @@
+A construction work agreement between an investor and a contractor, outlining the terms and conditions of the project.
\ No newline at end of file
diff --git a/summary/en/contract/b2bContract_18.txt b/summary/en/contract/b2bContract_18.txt
new file mode 100644
index 0000000000000000000000000000000000000000..1b09618f505213b741578065c507c1184118aef1
--- /dev/null
+++ b/summary/en/contract/b2bContract_18.txt
@@ -0,0 +1 @@
+This is a labor contract between an employer and an employee. The contract outlines the terms of employment, including the duration, duties, and termination procedures.
\ No newline at end of file
diff --git a/summary/en/contract/b2bContract_19.txt b/summary/en/contract/b2bContract_19.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0dc5e6355060df3b0314cae10c6cdc4829aba7cd
--- /dev/null
+++ b/summary/en/contract/b2bContract_19.txt
@@ -0,0 +1 @@
+This contract outlines the agreement between the employer and the contractor for the execution of a specific work. The contractor agrees to complete the work within a specified timeframe, and the employer agrees to provide necessary materials and tools.
\ No newline at end of file
diff --git a/summary/en/contract/employmentContract_0.txt b/summary/en/contract/employmentContract_0.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8d8f7954de6473b2f6741eaa30691f4ed36567ec
--- /dev/null
+++ b/summary/en/contract/employmentContract_0.txt
@@ -0,0 +1 @@
+This document appears to be a Polish employment contract, outlining the terms and conditions of an employee's work. The details include the employer's name, location, and other relevant information.
\ No newline at end of file
diff --git a/summary/en/contract/employmentContract_1.txt b/summary/en/contract/employmentContract_1.txt
new file mode 100644
index 0000000000000000000000000000000000000000..243e4bc018b4ed0a7a1262f910b95c2442617f23
--- /dev/null
+++ b/summary/en/contract/employmentContract_1.txt
@@ -0,0 +1 @@
+This employment contract outlines the terms and conditions of employment between the employer, Paco (also known as Przednwcą), and the employee. The contract covers aspects such as job responsibilities, salary, and benefits.
\ No newline at end of file
diff --git a/summary/en/contract/employmentContract_11.txt b/summary/en/contract/employmentContract_11.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0550518e8bac6c123253802755b72834635b1641
--- /dev/null
+++ b/summary/en/contract/employmentContract_11.txt
@@ -0,0 +1 @@
+This is a temporary employment agreement between an agency, a temporary worker, and a user. The agreement outlines the terms of employment, including the scope of work, duration, compensation, and other conditions.
\ No newline at end of file
diff --git a/summary/en/contract/employmentContract_12.txt b/summary/en/contract/employmentContract_12.txt
new file mode 100644
index 0000000000000000000000000000000000000000..cc3432b5eb793d0ff94f04771d000f3b8f83f0dc
--- /dev/null
+++ b/summary/en/contract/employmentContract_12.txt
@@ -0,0 +1 @@
+A contract between Jorn Raklualna (Zleceniodawca) and an unnamed party (Zleceniobiorca) for the performance of certain tasks. The contractor will receive a payment of 52 zł brutto after completing the work.
\ No newline at end of file
diff --git a/summary/en/contract/employmentContract_13.txt b/summary/en/contract/employmentContract_13.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c99397c753ab82598e45c2e9c1c7251362f1a5db
--- /dev/null
+++ b/summary/en/contract/employmentContract_13.txt
@@ -0,0 +1 @@
+Employment agreement between ABC Sp. z 0.0. and Agata Nowak, effective from March 1, 2021, for a temporary period until the end of justified absence from work.
\ No newline at end of file
diff --git a/summary/en/contract/employmentContract_15.txt b/summary/en/contract/employmentContract_15.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e0b9c1efe481eb101384c92eddacc1d2ab26d8fc
--- /dev/null
+++ b/summary/en/contract/employmentContract_15.txt
@@ -0,0 +1 @@
+This is a remote work contract between an employer and employee, outlining the terms of employment, including job description, working hours, compensation, and other conditions.
\ No newline at end of file
diff --git a/summary/en/contract/employmentContract_16.txt b/summary/en/contract/employmentContract_16.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2b4d9969ad6318a8f1b760957ee9cd8ad275bee3
--- /dev/null
+++ b/summary/en/contract/employmentContract_16.txt
@@ -0,0 +1 @@
+This document outlines the employment contract terms, including job type, work location, time commitment, compensation, and duration.
\ No newline at end of file
diff --git a/summary/en/contract/employmentContract_17.txt b/summary/en/contract/employmentContract_17.txt
new file mode 100644
index 0000000000000000000000000000000000000000..64751f487aa756ad91d849196498f37b2aecbf42
--- /dev/null
+++ b/summary/en/contract/employmentContract_17.txt
@@ -0,0 +1 @@
+A labor contract between an employer and an employee for performing work on a freelance basis. The employee is obligated to perform the work diligently and according to the employer's instructions. The employer guarantees the employee will receive a certain level of remuneration.
\ No newline at end of file
diff --git a/summary/en/contract/employmentContract_18.txt b/summary/en/contract/employmentContract_18.txt
new file mode 100644
index 0000000000000000000000000000000000000000..579f7ffc9fbd4484b037e7c4eac212e41b80a0cb
--- /dev/null
+++ b/summary/en/contract/employmentContract_18.txt
@@ -0,0 +1 @@
+This employment agreement outlines the terms and conditions of an employment contract between Tamer REGON KOJ and an employee. The agreement specifies the type of work, place of performance, duration of the contract, and other provisions.
\ No newline at end of file
diff --git a/summary/en/contract/employmentContract_19.txt b/summary/en/contract/employmentContract_19.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b5478704a478fea892b4eea5e9ef36e1f0c4dd34
--- /dev/null
+++ b/summary/en/contract/employmentContract_19.txt
@@ -0,0 +1 @@
+This is a pre-employment contract between an employer and an employee. The contract outlines the terms of employment, including job description, duration, compensation, and start date.
\ No newline at end of file
diff --git a/summary/en/contract/employmentContract_2.txt b/summary/en/contract/employmentContract_2.txt
new file mode 100644
index 0000000000000000000000000000000000000000..31d445d9a525d89e56d3c18993bd34530980f312
--- /dev/null
+++ b/summary/en/contract/employmentContract_2.txt
@@ -0,0 +1 @@
+This is a labor contract between an employer and employee, outlining the terms of employment including job type, work location, working hours, salary, and other conditions.
\ No newline at end of file
diff --git a/summary/en/contract/employmentContract_3.txt b/summary/en/contract/employmentContract_3.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9721fb4ce489303193a3439b2cc01aa7d1c7a406
--- /dev/null
+++ b/summary/en/contract/employmentContract_3.txt
@@ -0,0 +1 @@
+This employment agreement outlines the terms and conditions of a remote work arrangement between an employer and employee. The agreement includes provisions for communication, job duties, and compensation.
\ No newline at end of file
diff --git a/summary/en/contract/employmentContract_5.txt b/summary/en/contract/employmentContract_5.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c5216ab041cd518264db576fb127329523c16706
--- /dev/null
+++ b/summary/en/contract/employmentContract_5.txt
@@ -0,0 +1 @@
+This document is a contract between Przcodzncą and Gama seda akad acy) for employment. It outlines the terms of employment, including working hours, salary, and social benefits.
\ No newline at end of file
diff --git a/summary/en/contract/employmentContract_6.txt b/summary/en/contract/employmentContract_6.txt
new file mode 100644
index 0000000000000000000000000000000000000000..fe90a4c6862591763f505d0686236e929994284f
--- /dev/null
+++ b/summary/en/contract/employmentContract_6.txt
@@ -0,0 +1 @@
+This employment agreement outlines the terms and conditions of employment between the employer and employee. The agreement includes details on job type, work location, working hours, compensation, and termination notice.
\ No newline at end of file
diff --git a/summary/en/contract/employmentContract_8.txt b/summary/en/contract/employmentContract_8.txt
new file mode 100644
index 0000000000000000000000000000000000000000..64350959c35fcf16f2cd2137238b598e986534d7
--- /dev/null
+++ b/summary/en/contract/employmentContract_8.txt
@@ -0,0 +1 @@
+This is an employment agreement between the employer and employee, outlining the terms of employment, including job type, work location, working hours, compensation, and other conditions.
\ No newline at end of file
diff --git a/summary/en/contract/employmentContract_9.txt b/summary/en/contract/employmentContract_9.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8a486843fca1f1dd76b7a799a01cc5851760d910
--- /dev/null
+++ b/summary/en/contract/employmentContract_9.txt
@@ -0,0 +1 @@
+This employment agreement is a trial period contract between an employer and an employee. The contract duration is from [start date] to [end date]. The parties may decide to continue the employment after the trial period.
\ No newline at end of file
diff --git a/summary/en/contract/mandateContract_0.txt b/summary/en/contract/mandateContract_0.txt
new file mode 100644
index 0000000000000000000000000000000000000000..cc3432b5eb793d0ff94f04771d000f3b8f83f0dc
--- /dev/null
+++ b/summary/en/contract/mandateContract_0.txt
@@ -0,0 +1 @@
+A contract between Jorn Raklualna (Zleceniodawca) and an unnamed party (Zleceniobiorca) for the performance of certain tasks. The contractor will receive a payment of 52 zł brutto after completing the work.
\ No newline at end of file
diff --git a/summary/en/contract/mandateContract_1.txt b/summary/en/contract/mandateContract_1.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4a9d8c308ba15ac6a8df006e0951015e6e3d7d75
--- /dev/null
+++ b/summary/en/contract/mandateContract_1.txt
@@ -0,0 +1 @@
+A contract between Powerlobs and Jan Kowalski for services including packaging, production line support, and labeling. The contract period is from April 3, 2024 to August 31, 2024.
\ No newline at end of file
diff --git a/summary/en/contract/mandateContract_10.txt b/summary/en/contract/mandateContract_10.txt
new file mode 100644
index 0000000000000000000000000000000000000000..fd849e5ff37830fdbeb5695745e078a7b3c99c19
--- /dev/null
+++ b/summary/en/contract/mandateContract_10.txt
@@ -0,0 +1 @@
+A contract document for a freelancer or independent contractor, containing personal and contact information.
\ No newline at end of file
diff --git a/summary/en/contract/mandateContract_11.txt b/summary/en/contract/mandateContract_11.txt
new file mode 100644
index 0000000000000000000000000000000000000000..56d64bdf2e372282b90badaedf8773281049d641
--- /dev/null
+++ b/summary/en/contract/mandateContract_11.txt
@@ -0,0 +1 @@
+This employment contract outlines the terms and conditions of employment between the employer and employee. The contract specifies the job title, work location, and salary.
\ No newline at end of file
diff --git a/summary/en/contract/mandateContract_14.txt b/summary/en/contract/mandateContract_14.txt
new file mode 100644
index 0000000000000000000000000000000000000000..10af7d317b5b26297c9474a23c978b4b3541bd39
--- /dev/null
+++ b/summary/en/contract/mandateContract_14.txt
@@ -0,0 +1 @@
+This contract outlines the agreement between the Employer and the Employee. The Employer may assign additional tasks to the Employee as needed, while the Employee must personally perform the tasks outlined in the contract.
\ No newline at end of file
diff --git a/summary/en/contract/mandateContract_15.txt b/summary/en/contract/mandateContract_15.txt
new file mode 100644
index 0000000000000000000000000000000000000000..566339e3359d53843c89f9e8d0295f6fc7d9db16
--- /dev/null
+++ b/summary/en/contract/mandateContract_15.txt
@@ -0,0 +1 @@
+This contract outlines the agreement between the entity and the contractor. The contractor agrees to perform certain tasks personally, with the option to delegate tasks to a third party with the employer's approval. The contractor is responsible for completing tasks with due diligence.
\ No newline at end of file
diff --git a/summary/en/contract/mandateContract_16.txt b/summary/en/contract/mandateContract_16.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ebaee74487a6e493f802241a4f452e66601cd8b9
--- /dev/null
+++ b/summary/en/contract/mandateContract_16.txt
@@ -0,0 +1 @@
+This employment agreement outlines the terms and conditions of a commission-based contract between an employer and employee. The employee agrees to perform specific tasks and duties, and will receive payment for their work.
\ No newline at end of file
diff --git a/summary/en/contract/mandateContract_18.txt b/summary/en/contract/mandateContract_18.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7e52a8235a6753966760b83df99afb710ce74564
--- /dev/null
+++ b/summary/en/contract/mandateContract_18.txt
@@ -0,0 +1 @@
+A tax document related to a contract, outlining payment details and social insurance contributions.
\ No newline at end of file
diff --git a/summary/en/contract/mandateContract_2.txt b/summary/en/contract/mandateContract_2.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ebb2075eea0a2beb1355e3f89944d485e79da41e
--- /dev/null
+++ b/summary/en/contract/mandateContract_2.txt
@@ -0,0 +1 @@
+A contract between a client (Zleceniodawca) and a contractor (Zleceniobiorca) for the provision of services. The contractor agrees to perform certain work in exchange for payment in Polish złotys, as specified on an invoice.
\ No newline at end of file
diff --git a/summary/en/contract/mandateContract_3.txt b/summary/en/contract/mandateContract_3.txt
new file mode 100644
index 0000000000000000000000000000000000000000..bfed488eecff5c24dfa0b0823bf966daf614b2b4
--- /dev/null
+++ b/summary/en/contract/mandateContract_3.txt
@@ -0,0 +1 @@
+This is an amendment to a previous contract between Zleceniodawca (Gabriela Jóżwiak) and Zleceniobiorca, outlining changes to the payment terms for services rendered.
\ No newline at end of file
diff --git a/summary/en/contract/mandateContract_4.txt b/summary/en/contract/mandateContract_4.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b6916115ee133aba2785a96773134f417c793436
--- /dev/null
+++ b/summary/en/contract/mandateContract_4.txt
@@ -0,0 +1 @@
+A loan agreement between a borrower and a lender, outlining the terms of the loan. The borrower agrees to perform certain work with due diligence. The lender will pay the borrower a fee for completing the work, as specified in the SL. The borrower cannot assign the work mentioned in § 1 to someone else without the consent of the lender.
\ No newline at end of file
diff --git a/summary/en/contract/mandateContract_5.txt b/summary/en/contract/mandateContract_5.txt
new file mode 100644
index 0000000000000000000000000000000000000000..69f308d9645a227b09ca5ff75d1f3b3894d255a7
--- /dev/null
+++ b/summary/en/contract/mandateContract_5.txt
@@ -0,0 +1 @@
+This document is a notarial deed that provides personal information for tax, insurance, and administrative purposes. It includes details such as name, address, nationality, date of birth, and other relevant information.
\ No newline at end of file
diff --git a/summary/en/contract/mandateContract_6.txt b/summary/en/contract/mandateContract_6.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a800863971b04bc72ef38aaa568d0206b380ce59
--- /dev/null
+++ b/summary/en/contract/mandateContract_6.txt
@@ -0,0 +1 @@
+Emy Tan's employment contract, including details about their job, salary, and social insurance contributions.
\ No newline at end of file
diff --git a/summary/en/contract/mandateContract_7.txt b/summary/en/contract/mandateContract_7.txt
new file mode 100644
index 0000000000000000000000000000000000000000..30edde54f0ac44d6a309230aaa2e1c2d2a8541cc
--- /dev/null
+++ b/summary/en/contract/mandateContract_7.txt
@@ -0,0 +1 @@
+A contract between an employer and an employee, outlining the terms of a job assignment. The contract specifies the scope of work to be performed by the employee.
\ No newline at end of file
diff --git a/summary/en/contract/mandateContract_8.txt b/summary/en/contract/mandateContract_8.txt
new file mode 100644
index 0000000000000000000000000000000000000000..61dff627bd56961023055d9b9d45f55b5a8e022d
--- /dev/null
+++ b/summary/en/contract/mandateContract_8.txt
@@ -0,0 +1 @@
+This contract outlines the agreement between [Name] and [Name 1] for a period of [Time]. The contractor will receive payment for each hour worked at a rate of [Amount] PLN. The contractor is required to keep records of the hours worked and submit them to the client by the last day of each month.
\ No newline at end of file
diff --git a/summary/en/contract/mandateContract_9.txt b/summary/en/contract/mandateContract_9.txt
new file mode 100644
index 0000000000000000000000000000000000000000..fe92e19bdb38eed739cf4ff9909005741353e9b9
--- /dev/null
+++ b/summary/en/contract/mandateContract_9.txt
@@ -0,0 +1 @@
+This contract outlines the terms and conditions of a service agreement between Zleceniodawca and Zleceniobiorca. The agreement covers the scope of services, payment terms, confidentiality obligations, and termination clauses.
\ No newline at end of file
diff --git a/summary/en/contract/nonCompeteAgreement_0.txt b/summary/en/contract/nonCompeteAgreement_0.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c8bf66d9f129f019a8f8183321685b86ce269d4f
--- /dev/null
+++ b/summary/en/contract/nonCompeteAgreement_0.txt
@@ -0,0 +1 @@
+This contract, also known as the 'Agreement on Prohibition of Competition', was signed between a company and an individual. The agreement prohibits the individual from engaging in any competitive activities or providing services to a competitor without prior consent from the company.
\ No newline at end of file
diff --git a/summary/en/contract/nonCompeteAgreement_3.txt b/summary/en/contract/nonCompeteAgreement_3.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f97c8a5284ef0fcf8b1bc044e56c9ae9fa09fe4a
--- /dev/null
+++ b/summary/en/contract/nonCompeteAgreement_3.txt
@@ -0,0 +1 @@
+This contract outlines the agreement between XYZ and a business partner, establishing their rights and obligations regarding competitive activities during the term of the contract.
\ No newline at end of file
diff --git a/summary/en/contract/nonCompeteAgreement_5.txt b/summary/en/contract/nonCompeteAgreement_5.txt
new file mode 100644
index 0000000000000000000000000000000000000000..08b0be6766dd6d8fc8f5c04cf0ffdd3743b0b9b8
--- /dev/null
+++ b/summary/en/contract/nonCompeteAgreement_5.txt
@@ -0,0 +1 @@
+This is an employment agreement between a company and an employee, outlining the terms of their employment and confidentiality obligations.
\ No newline at end of file
diff --git a/summary/en/contract/nonCompeteAgreement_6.txt b/summary/en/contract/nonCompeteAgreement_6.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b1437ad9537474d50290ff9b36e8aa931902a801
--- /dev/null
+++ b/summary/en/contract/nonCompeteAgreement_6.txt
@@ -0,0 +1 @@
+This non-compete agreement is between an employee and their employer, prohibiting the employee from engaging in competitive activities or sharing confidential information after the employment relationship ends.
\ No newline at end of file
diff --git a/summary/en/contract/nonCompeteAgreement_7.txt b/summary/en/contract/nonCompeteAgreement_7.txt
new file mode 100644
index 0000000000000000000000000000000000000000..879fcbccd314a36470081cbd4f4178833ca39ab8
--- /dev/null
+++ b/summary/en/contract/nonCompeteAgreement_7.txt
@@ -0,0 +1 @@
+This document outlines the non-compete agreement between an employee and their employer, prohibiting the employee from engaging in competitive activities or sharing confidential information after the employment relationship ends.
\ No newline at end of file
diff --git a/summary/en/contract/taskContract_0.txt b/summary/en/contract/taskContract_0.txt
new file mode 100644
index 0000000000000000000000000000000000000000..26b2887826d51930a3db66e5729b63b1a681e4e0
--- /dev/null
+++ b/summary/en/contract/taskContract_0.txt
@@ -0,0 +1 @@
+This contract outlines the agreement between the employer and the contractor for the execution of a specific work. The employer agrees to provide the necessary materials and tools, while the contractor agrees to complete the work and present an accounting of the materials used.
\ No newline at end of file
diff --git a/summary/en/contract/taskContract_1.txt b/summary/en/contract/taskContract_1.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e763b1192eb0fc530bbabf5ace2ed9aa33807333
--- /dev/null
+++ b/summary/en/contract/taskContract_1.txt
@@ -0,0 +1 @@
+This employment agreement outlines the terms and conditions between the employer and employee. The employee agrees to start working on a specific date and complete the work by another specified date. In return, the employer will pay the employee a certain amount of money.
\ No newline at end of file
diff --git a/summary/en/contract/taskContract_10.txt b/summary/en/contract/taskContract_10.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0dc5e6355060df3b0314cae10c6cdc4829aba7cd
--- /dev/null
+++ b/summary/en/contract/taskContract_10.txt
@@ -0,0 +1 @@
+This contract outlines the agreement between the employer and the contractor for the execution of a specific work. The contractor agrees to complete the work within a specified timeframe, and the employer agrees to provide necessary materials and tools.
\ No newline at end of file
diff --git a/summary/en/contract/taskContract_12.txt b/summary/en/contract/taskContract_12.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4373e410dc6012440368e296753eca98dd555819
--- /dev/null
+++ b/summary/en/contract/taskContract_12.txt
@@ -0,0 +1 @@
+A contract for a creative work, including the transfer of copyright rights. The contractor agrees to create an original work and maintain its quality.
\ No newline at end of file
diff --git a/summary/en/contract/taskContract_13.txt b/summary/en/contract/taskContract_13.txt
new file mode 100644
index 0000000000000000000000000000000000000000..664bc7bfe30573c6cbe6b7e5243fed6c8384c626
--- /dev/null
+++ b/summary/en/contract/taskContract_13.txt
@@ -0,0 +1 @@
+A contract for renovation works in a residential building, including electrical installation, painting, flooring, and other finishing work.
\ No newline at end of file
diff --git a/summary/en/contract/taskContract_15.txt b/summary/en/contract/taskContract_15.txt
new file mode 100644
index 0000000000000000000000000000000000000000..62be0700c214a3c0b465ffaebfb2831f30632eb9
--- /dev/null
+++ b/summary/en/contract/taskContract_15.txt
@@ -0,0 +1 @@
+A contract between an employer and a contractor for the execution of a work project. The contractor agrees to complete the work according to the specifications provided by the employer, and the employer will provide necessary materials and tools.
\ No newline at end of file
diff --git a/summary/en/contract/taskContract_16.txt b/summary/en/contract/taskContract_16.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ba218cba8de8223fc7a49c06ea5b3ff8a060d683
--- /dev/null
+++ b/summary/en/contract/taskContract_16.txt
@@ -0,0 +1 @@
+This contract outlines the terms and conditions for a work project between Ania (Zamawiający) and the contractor (Wykonawca). The contract includes details on the scope of work, payment terms, and liability.
\ No newline at end of file
diff --git a/summary/en/contract/taskContract_17.txt b/summary/en/contract/taskContract_17.txt
new file mode 100644
index 0000000000000000000000000000000000000000..380b14609887aa21136eda20337b7e0c35cb9c4b
--- /dev/null
+++ b/summary/en/contract/taskContract_17.txt
@@ -0,0 +1 @@
+This contract outlines the terms and conditions for a work project between an employer (Zamawiający) and a contractor (Wykonawca). The contract includes details on the scope of work, timeline, payment terms, and penalties for delays.
\ No newline at end of file
diff --git a/summary/en/contract/taskContract_18.txt b/summary/en/contract/taskContract_18.txt
new file mode 100644
index 0000000000000000000000000000000000000000..31c356740e1f7facd9eaf89a507b771b7a4414bc
--- /dev/null
+++ b/summary/en/contract/taskContract_18.txt
@@ -0,0 +1 @@
+A contract between an employer and a contractor for the execution of a specific work. The contractor agrees to complete the work by a certain date, and the employer agrees to provide necessary materials and tools.
\ No newline at end of file
diff --git a/summary/en/contract/taskContract_19.txt b/summary/en/contract/taskContract_19.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2a2ef05baaf0ec664716077812601b8a23f2ce5f
--- /dev/null
+++ b/summary/en/contract/taskContract_19.txt
@@ -0,0 +1 @@
+This contract outlines the terms and conditions for a work project between two parties. The contractor agrees to complete the work, known as 'dzieło', and the client agrees to pay the agreed-upon fee.
\ No newline at end of file
diff --git a/summary/en/contract/taskContract_2.txt b/summary/en/contract/taskContract_2.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e8151eaa47e4b08a1e04579dd9007129ecd8aec0
--- /dev/null
+++ b/summary/en/contract/taskContract_2.txt
@@ -0,0 +1 @@
+This is an employment agreement between [Employer Name] and [Employee Name]. The agreement outlines the terms of employment, including job responsibilities, compensation, and other relevant details.
\ No newline at end of file
diff --git a/summary/en/contract/taskContract_3.txt b/summary/en/contract/taskContract_3.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4968b65b26c1026015107b0914604dca9def9cec
--- /dev/null
+++ b/summary/en/contract/taskContract_3.txt
@@ -0,0 +1 @@
+This contract outlines the agreement between the Employer (Zamawiający) and the Contractor (Wykonawca) for the completion of certain works. The contractor agrees to use their own materials and tools to complete the work, which will be done within a specified timeframe.
\ No newline at end of file
diff --git a/summary/en/contract/taskContract_4.txt b/summary/en/contract/taskContract_4.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5dbac73626f04958517ce1d86089c787f8ba7cb5
--- /dev/null
+++ b/summary/en/contract/taskContract_4.txt
@@ -0,0 +1 @@
+This contract outlines the agreement between the employer and the employee. The employer orders the employee to perform a task, and the employee agrees to do so. The payment terms include a down payment of $4, with the remaining amount due after the task is completed. Any changes to the contract require written consent from both parties.
\ No newline at end of file
diff --git a/summary/en/contract/taskContract_5.txt b/summary/en/contract/taskContract_5.txt
new file mode 100644
index 0000000000000000000000000000000000000000..91310e209d5fba823d72b2082ec32c07503abd69
--- /dev/null
+++ b/summary/en/contract/taskContract_5.txt
@@ -0,0 +1 @@
+This is a contract between the employer and the employee, outlining the terms of employment. The employee confirms their employment status, insurance coverage, and education level.
\ No newline at end of file
diff --git a/summary/en/contract/taskContract_6.txt b/summary/en/contract/taskContract_6.txt
new file mode 100644
index 0000000000000000000000000000000000000000..94e0a97b8995c10fb49d8d07b69f2090f8ac9973
--- /dev/null
+++ b/summary/en/contract/taskContract_6.txt
@@ -0,0 +1 @@
+This employment agreement outlines the terms and conditions of a temporary employment contract between an employer and employee. The contract specifies the duration, duties, and responsibilities of both parties.
\ No newline at end of file
diff --git a/summary/en/contract/taskContract_7.txt b/summary/en/contract/taskContract_7.txt
new file mode 100644
index 0000000000000000000000000000000000000000..22fff8c2c0dd500a28ca72698b23973a6cf3c627
--- /dev/null
+++ b/summary/en/contract/taskContract_7.txt
@@ -0,0 +1 @@
+A contract between Zamawiający and Wykonawca for the execution of a work project. The contract outlines the terms and conditions, including payment and completion dates.
\ No newline at end of file
diff --git a/summary/en/contract/taskContract_8.txt b/summary/en/contract/taskContract_8.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8438abc24c799e901f606271eeebff77f4ff98e3
--- /dev/null
+++ b/summary/en/contract/taskContract_8.txt
@@ -0,0 +1 @@
+A contract between an employer and a contractor for the execution of a work project. The contractor agrees to complete the work within a specified timeframe and provide materials and tools as needed.
\ No newline at end of file
diff --git a/summary/en/contract/taskContract_9.txt b/summary/en/contract/taskContract_9.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f3072d369dd8fe73bf4b8fc0b3274302073c0307
--- /dev/null
+++ b/summary/en/contract/taskContract_9.txt
@@ -0,0 +1 @@
+This contract outlines the agreement between the Employer (Zamawiający) and the Contractor (Wykonawca) for the execution of a specific work project. The contractor is responsible for completing the work within the agreed-upon timeframe and is entitled to payment upon completion.
\ No newline at end of file
diff --git a/summary/en/referral/referral_0.txt b/summary/en/referral/referral_0.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ca6c229378c4553f38785814b7fd7339249821d3
--- /dev/null
+++ b/summary/en/referral/referral_0.txt
@@ -0,0 +1 @@
+A referral document for an employee's medical examination, issued by their employer.
\ No newline at end of file
diff --git a/summary/en/referral/referral_1.txt b/summary/en/referral/referral_1.txt
new file mode 100644
index 0000000000000000000000000000000000000000..42ec761eb504ad091015d5479b9c6f5312bcfde3
--- /dev/null
+++ b/summary/en/referral/referral_1.txt
@@ -0,0 +1 @@
+A medical referral document issued by a healthcare institution, stating the patient's name and address, as well as the doctor's signature and contact information.
\ No newline at end of file
diff --git a/summary/en/referral/referral_10.txt b/summary/en/referral/referral_10.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2449d33600fde8ea32f8ed8d2c53b3e3148f823f
--- /dev/null
+++ b/summary/en/referral/referral_10.txt
@@ -0,0 +1 @@
+A referral document for a patient with a diagnosis of coronary heart disease. The patient is requested to receive specialist care.
\ No newline at end of file
diff --git a/summary/en/referral/referral_11.txt b/summary/en/referral/referral_11.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e898ffecccef28a7c68a3e062e906568d6536977
--- /dev/null
+++ b/summary/en/referral/referral_11.txt
@@ -0,0 +1 @@
+A referral document for a candidate to serve in the Prison Service, including medical information and job description.
\ No newline at end of file
diff --git a/summary/en/referral/referral_12.txt b/summary/en/referral/referral_12.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3b96be02991fcd19c514f22ea7235d7037afa063
--- /dev/null
+++ b/summary/en/referral/referral_12.txt
@@ -0,0 +1 @@
+A referral to a hospital's cardiology department for coronary angiography. The patient, a male born on January 16, 1962, has undiagnosed hypertension (110). The referring doctor is Jan Nowak.
\ No newline at end of file
diff --git a/summary/en/referral/referral_13.txt b/summary/en/referral/referral_13.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f75c21eb066c89b0fa59288a8fe57189463c44f0
--- /dev/null
+++ b/summary/en/referral/referral_13.txt
@@ -0,0 +1 @@
+This document is a referral from Siewna to Rozpoanie for hypertension treatment. It appears to be a medical referral with some normative standards.
\ No newline at end of file
diff --git a/summary/en/referral/referral_14.txt b/summary/en/referral/referral_14.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e987997e7f016e8dfda1c95d053fb0b6d155c709
--- /dev/null
+++ b/summary/en/referral/referral_14.txt
@@ -0,0 +1 @@
+A referral document for Janusz Stępień, dated January 31st, 2020. It outlines the requirements and procedures for a medical examination.
\ No newline at end of file
diff --git a/summary/en/referral/referral_15.txt b/summary/en/referral/referral_15.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4d108d8364d5561ed60524c0273c0ec4682f0eec
--- /dev/null
+++ b/summary/en/referral/referral_15.txt
@@ -0,0 +1 @@
+A referral document from a hospital to another medical institution, containing patient information and treatment details.
\ No newline at end of file
diff --git a/summary/en/referral/referral_16.txt b/summary/en/referral/referral_16.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0c743f4a9d64e50bd516a18cbe7d57786d103c20
--- /dev/null
+++ b/summary/en/referral/referral_16.txt
@@ -0,0 +1 @@
+A medical referral document issued by an employer to a worker for a preliminary, periodic, or control medical examination. The document outlines the work conditions and potential health risks associated with the job.
\ No newline at end of file
diff --git a/summary/en/referral/referral_17.txt b/summary/en/referral/referral_17.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5d73a6fad92f0bbadd12087d9a6eeea7424a634f
--- /dev/null
+++ b/summary/en/referral/referral_17.txt
@@ -0,0 +1 @@
+A referral request from Neo Hospital's Nutrition Counseling Department for a patient to receive specialist treatment. The referral includes the patient's information, diagnosis code (ICD10), and reason for consultation.
\ No newline at end of file
diff --git a/summary/en/referral/referral_18.txt b/summary/en/referral/referral_18.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5f80d111d287edd7139a5d40a1b311e8e684a5c9
--- /dev/null
+++ b/summary/en/referral/referral_18.txt
@@ -0,0 +1 @@
+A medical referral document for sanitary-epidemiological tests, intended for reaction. It includes information about the patient's name, address, and contact details.
\ No newline at end of file
diff --git a/summary/en/referral/referral_19.txt b/summary/en/referral/referral_19.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6d8c6601a46741f134fbaecf2f592eb83d00026b
--- /dev/null
+++ b/summary/en/referral/referral_19.txt
@@ -0,0 +1 @@
+This document is a referral for a patient with the following details: name, PESEL number, address, and previous diagnosis. The purpose of the referral is to conduct additional tests and their results are included.
\ No newline at end of file
diff --git a/summary/en/referral/referral_2.txt b/summary/en/referral/referral_2.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4146cb763df86fc5efb3c870ae4cb509cf016eb3
--- /dev/null
+++ b/summary/en/referral/referral_2.txt
@@ -0,0 +1 @@
+This document is a referral for a patient to be admitted to a hospital. The patient's information includes their name and any relevant medical details.
\ No newline at end of file
diff --git a/summary/en/referral/referral_3.txt b/summary/en/referral/referral_3.txt
new file mode 100644
index 0000000000000000000000000000000000000000..38431ad605347a39b890d5b93119a84dfd0b0114
--- /dev/null
+++ b/summary/en/referral/referral_3.txt
@@ -0,0 +1 @@
+A referral document for Mieczysław Kowalski, issued by Lek. Adam Zadrożny on April 13, 2020. The patient has been diagnosed with hypertension (110 Nadciśnienie tętnicze).
\ No newline at end of file
diff --git a/summary/en/referral/referral_5.txt b/summary/en/referral/referral_5.txt
new file mode 100644
index 0000000000000000000000000000000000000000..1cae8759852ca10cd4e877cd2212889af6a1deca
--- /dev/null
+++ b/summary/en/referral/referral_5.txt
@@ -0,0 +1 @@
+Information about electronic referral, enabling realization of electronic referral, but not replacing its content. Access details at pacjent.gov.pl.
\ No newline at end of file
diff --git a/summary/en/referral/referral_8.txt b/summary/en/referral/referral_8.txt
new file mode 100644
index 0000000000000000000000000000000000000000..97a29e2be46234ea7a2b9d36b4c2adadfccc3c63
--- /dev/null
+++ b/summary/en/referral/referral_8.txt
@@ -0,0 +1 @@
+A referral document for a patient to be admitted to a hospital or clinic, with details on diagnosis and treatment.
\ No newline at end of file
diff --git a/summary/en/referral/referral_9.txt b/summary/en/referral/referral_9.txt
new file mode 100644
index 0000000000000000000000000000000000000000..651bbe95ed0bda3b0fac6f00be93992638ca4289
--- /dev/null
+++ b/summary/en/referral/referral_9.txt
@@ -0,0 +1 @@
+A referral document for a patient to be admitted to a hospital or institute. The document includes information such as the patient's PESEL number, phone number, and ICD 10 code.
\ No newline at end of file
diff --git a/summary/en/rentalAgreement/loanAgreement_13.txt b/summary/en/rentalAgreement/loanAgreement_13.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c194d088d8edd6ef1218097145c542c93e9ac2d8
--- /dev/null
+++ b/summary/en/rentalAgreement/loanAgreement_13.txt
@@ -0,0 +1 @@
+This rental agreement is between two individuals, identified as the landlord and tenant. The landlord agrees to rent a residential property located at [address] to the tenant for a specified period of time.
\ No newline at end of file
diff --git a/summary/en/rentalAgreement/rentalAgreement_0.txt b/summary/en/rentalAgreement/rentalAgreement_0.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7273caea0f29589b5933dca79e6dd711e6ebdeef
--- /dev/null
+++ b/summary/en/rentalAgreement/rentalAgreement_0.txt
@@ -0,0 +1 @@
+This document outlines a rental agreement between two parties: the landlord and the tenant. The agreement specifies the location of the rented space, which is a room in an apartment complex.
\ No newline at end of file
diff --git a/summary/en/rentalAgreement/rentalAgreement_1.txt b/summary/en/rentalAgreement/rentalAgreement_1.txt
new file mode 100644
index 0000000000000000000000000000000000000000..875ed1fcbbea7df9bbca85b0afe49a4ef35932f2
--- /dev/null
+++ b/summary/en/rentalAgreement/rentalAgreement_1.txt
@@ -0,0 +1 @@
+The tenant agrees to pay all costs and services related to the rental of an apartment, during the term of this agreement. The tenant must also provide a security deposit, which will be returned upon termination of the agreement if the apartment is in good condition.
\ No newline at end of file
diff --git a/summary/en/rentalAgreement/rentalAgreement_10.txt b/summary/en/rentalAgreement/rentalAgreement_10.txt
new file mode 100644
index 0000000000000000000000000000000000000000..21990e462757ec6fffee863dc60e182f72b84ae0
--- /dev/null
+++ b/summary/en/rentalAgreement/rentalAgreement_10.txt
@@ -0,0 +1 @@
+This document outlines the terms and conditions of a rental agreement between two parties: the landlord (Wynajmujący) and the tenant (Najemca). The agreement covers the property's details, rent payment, and maintenance responsibilities.
\ No newline at end of file
diff --git a/summary/en/rentalAgreement/rentalAgreement_11.txt b/summary/en/rentalAgreement/rentalAgreement_11.txt
new file mode 100644
index 0000000000000000000000000000000000000000..aaf5974b5ac6f07155d97da7cfe24037aeed5174
--- /dev/null
+++ b/summary/en/rentalAgreement/rentalAgreement_11.txt
@@ -0,0 +1 @@
+This document outlines the terms and conditions of a rental agreement between a landlord and tenant. The landlord agrees to rent out a property for the tenant's use, and the tenant agrees to pay rent and follow certain rules.
\ No newline at end of file
diff --git a/summary/en/rentalAgreement/rentalAgreement_13.txt b/summary/en/rentalAgreement/rentalAgreement_13.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9cfa884d1a1dd9320c63c9fa2bc1c4508b387daf
--- /dev/null
+++ b/summary/en/rentalAgreement/rentalAgreement_13.txt
@@ -0,0 +1 @@
+This rental agreement outlines the terms of a residential lease between the landlord and tenant. The landlord agrees to rent the property to the tenant for a monthly rent of [amount]. The tenant is responsible for paying the rent on time and in full.
\ No newline at end of file
diff --git a/summary/en/rentalAgreement/rentalAgreement_14.txt b/summary/en/rentalAgreement/rentalAgreement_14.txt
new file mode 100644
index 0000000000000000000000000000000000000000..79cb0482d9cd4c6d18a7124bd85027db7585d245
--- /dev/null
+++ b/summary/en/rentalAgreement/rentalAgreement_14.txt
@@ -0,0 +1 @@
+This rental agreement outlines the terms and conditions between the landlord (Wynajmujący) and tenant (Najemca). The agreement covers the property's location, size, and condition. The tenant agrees to pay rent and the landlord agrees to provide a habitable space.
\ No newline at end of file
diff --git a/summary/en/rentalAgreement/rentalAgreement_15.txt b/summary/en/rentalAgreement/rentalAgreement_15.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e08842012eb7bf873c75b97ae2961af5637eadc3
--- /dev/null
+++ b/summary/en/rentalAgreement/rentalAgreement_15.txt
@@ -0,0 +1 @@
+This is a rental agreement between Wynajmujący and Najemca for a residential property located at Opinogórska 21, Ciechanów 06-400. The agreement is valid from [Date] to [Date] with the possibility of extension for another year.
\ No newline at end of file
diff --git a/summary/en/rentalAgreement/rentalAgreement_16.txt b/summary/en/rentalAgreement/rentalAgreement_16.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f01e983dd4e7a9f5ed9ace81571ee64207e6587f
--- /dev/null
+++ b/summary/en/rentalAgreement/rentalAgreement_16.txt
@@ -0,0 +1 @@
+This is a rental agreement between the landlord and tenant for a residential property located at [address]. The agreement outlines the terms and conditions of the rental, including the duration, rent, and responsibilities of both parties.
\ No newline at end of file
diff --git a/summary/en/rentalAgreement/rentalAgreement_17.txt b/summary/en/rentalAgreement/rentalAgreement_17.txt
new file mode 100644
index 0000000000000000000000000000000000000000..dd005036b0185e98cc98749ef79202fa61c2e5c4
--- /dev/null
+++ b/summary/en/rentalAgreement/rentalAgreement_17.txt
@@ -0,0 +1 @@
+This is a rental agreement between the landlord and tenant for a residential property located at [address]. The agreement outlines the terms and conditions of the rental, including the rent, duration, and responsibilities of both parties.
\ No newline at end of file
diff --git a/summary/en/rentalAgreement/rentalAgreement_19.txt b/summary/en/rentalAgreement/rentalAgreement_19.txt
new file mode 100644
index 0000000000000000000000000000000000000000..cf56b467589d63b81ac4e54b559ca1f61db2bb68
--- /dev/null
+++ b/summary/en/rentalAgreement/rentalAgreement_19.txt
@@ -0,0 +1 @@
+This rental agreement outlines the terms and conditions of a residential property lease between the landlord and tenant. The agreement specifies the rent, payment terms, and responsibilities of both parties.
\ No newline at end of file
diff --git a/summary/en/rentalAgreement/rentalAgreement_4.txt b/summary/en/rentalAgreement/rentalAgreement_4.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5e6bd5cd5183814ebd737dbe315db399cb527618
--- /dev/null
+++ b/summary/en/rentalAgreement/rentalAgreement_4.txt
@@ -0,0 +1 @@
+This is a rental agreement between Adam Bębenek (Wynajmujący) and (imię i nazwisko Najemcy) for a residential property located at Warszawa, ul. Dembego 18a m.40.
\ No newline at end of file
diff --git a/summary/en/rentalAgreement/rentalAgreement_6.txt b/summary/en/rentalAgreement/rentalAgreement_6.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f68181b6397f093ca33e99162d18a5703b539548
--- /dev/null
+++ b/summary/en/rentalAgreement/rentalAgreement_6.txt
@@ -0,0 +1 @@
+This rental agreement outlines the terms and conditions of a vehicle rental between the lessor (Wynajmujący) and the lessee (Najemca). The agreement covers the condition of the vehicle, payment terms, and responsibilities.
\ No newline at end of file
diff --git a/summary/en/rentalAgreement/rentalAgreement_7.txt b/summary/en/rentalAgreement/rentalAgreement_7.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4d2c61f40e993b0365f68353e24d2003ec4256a4
--- /dev/null
+++ b/summary/en/rentalAgreement/rentalAgreement_7.txt
@@ -0,0 +1 @@
+This is a rental agreement between Veen and the tenant for a specific apartment located at Veen pn ZAMIESZKAKYMIĄ W m PREY UL. The agreement outlines the terms of the lease, including rent payment and utility bills.
\ No newline at end of file
diff --git a/summary/en/taxDocument/cit8_10.txt b/summary/en/taxDocument/cit8_10.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ad8e5db14e78b83c190cf4653b130697f8270f21
--- /dev/null
+++ b/summary/en/taxDocument/cit8_10.txt
@@ -0,0 +1 @@
+This is a tax document for an employer in Poland. It contains information about the employee's income and deductions.
\ No newline at end of file
diff --git a/summary/en/taxDocument/cit8_11.txt b/summary/en/taxDocument/cit8_11.txt
new file mode 100644
index 0000000000000000000000000000000000000000..731d9122b58ed29e152edbc5de55e5f1f362225a
--- /dev/null
+++ b/summary/en/taxDocument/cit8_11.txt
@@ -0,0 +1 @@
+This document appears to be a tax document for an individual, likely related to employment income. It includes information on income and expenses, as well as calculations for tax purposes.
\ No newline at end of file
diff --git a/summary/en/taxDocument/cit8_12.txt b/summary/en/taxDocument/cit8_12.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ee7d4e32713e2205f29ad37476a6d84fa1e56dff
--- /dev/null
+++ b/summary/en/taxDocument/cit8_12.txt
@@ -0,0 +1 @@
+This document appears to be a tax declaration form for an individual, detailing income and expenses for a specific period.
\ No newline at end of file
diff --git a/summary/en/taxDocument/cit8_13.txt b/summary/en/taxDocument/cit8_13.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2eec8bb46f4e9b748f0b16fdc313a5d389234f04
--- /dev/null
+++ b/summary/en/taxDocument/cit8_13.txt
@@ -0,0 +1 @@
+This document appears to be a tax document related to business activities and public assistance in Poland. It contains information about the taxpayer's identity and their eligibility for certain benefits.
\ No newline at end of file
diff --git a/summary/en/taxDocument/cit8_14.txt b/summary/en/taxDocument/cit8_14.txt
new file mode 100644
index 0000000000000000000000000000000000000000..71e74eeaf55ab4d68037f9e3fa7d6df405b9b8dc
--- /dev/null
+++ b/summary/en/taxDocument/cit8_14.txt
@@ -0,0 +1 @@
+This document appears to be a Polish tax document, specifically a PIT-11 form. It outlines various calculations and deductions for taxation purposes.
\ No newline at end of file
diff --git a/summary/en/taxDocument/cit8_15.txt b/summary/en/taxDocument/cit8_15.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a651d7a62eccdf1e02e5ab160d7dbe38236c720f
--- /dev/null
+++ b/summary/en/taxDocument/cit8_15.txt
@@ -0,0 +1 @@
+This document appears to be a tax document from Poland, specifically a CIT-8AB form. It contains information about income and expenses for a given year.
\ No newline at end of file
diff --git a/summary/en/taxDocument/cit8_16.txt b/summary/en/taxDocument/cit8_16.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9a4f39c28db2ebaba128627fb765eaacdeaf0942
--- /dev/null
+++ b/summary/en/taxDocument/cit8_16.txt
@@ -0,0 +1 @@
+This document appears to be a tax document in Polish, detailing various tax-related information and obligations. It includes sections on income tax, deductions, and additional information.
\ No newline at end of file
diff --git a/summary/en/taxDocument/cit8_17.txt b/summary/en/taxDocument/cit8_17.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9f2d41899afd1cf7bc54fe8fd42e02da4ec08212
--- /dev/null
+++ b/summary/en/taxDocument/cit8_17.txt
@@ -0,0 +1 @@
+This document is a tax declaration for an employer, detailing income and expenses for a specific period. It includes information on employees' salaries, taxes paid, and other relevant details.
\ No newline at end of file
diff --git a/summary/en/taxDocument/cit8_5.txt b/summary/en/taxDocument/cit8_5.txt
new file mode 100644
index 0000000000000000000000000000000000000000..664060ec45ed25bda1e6d48cc5e862700b096af9
--- /dev/null
+++ b/summary/en/taxDocument/cit8_5.txt
@@ -0,0 +1 @@
+This is a tax document for the employer's income declaration. It includes personal and address information of the taxpayer.
\ No newline at end of file
diff --git a/summary/en/taxDocument/cit8_7.txt b/summary/en/taxDocument/cit8_7.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e053871452c92e679384a022eb0c956c7feb453f
--- /dev/null
+++ b/summary/en/taxDocument/cit8_7.txt
@@ -0,0 +1 @@
+This document appears to be a tax declaration form for an individual or entity, likely related to income tax. It contains information about the taxpayer's identity, address, and additional details.
\ No newline at end of file
diff --git a/summary/en/taxDocument/cit8_8.txt b/summary/en/taxDocument/cit8_8.txt
new file mode 100644
index 0000000000000000000000000000000000000000..57f524ca0782e9decec659e054978f140bccda5e
--- /dev/null
+++ b/summary/en/taxDocument/cit8_8.txt
@@ -0,0 +1 @@
+This is a tax document for PIT-8 (CIT-8) in Poland. It contains information about income and taxes paid by individuals and legal entities.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pcc3_0.txt b/summary/en/taxDocument/pcc3_0.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9c9adead339e054877603414c340d0aa6a36d6db
--- /dev/null
+++ b/summary/en/taxDocument/pcc3_0.txt
@@ -0,0 +1 @@
+This document is a tax declaration for civil law transactions. It provides information about the taxpayer, the transaction, and the payment or exemption from tax.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pcc3_10.txt b/summary/en/taxDocument/pcc3_10.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ebe14ca5fba440b6dfab65ec1be1578689133b4b
--- /dev/null
+++ b/summary/en/taxDocument/pcc3_10.txt
@@ -0,0 +1 @@
+This document appears to be a tax document for an employer, containing information about other taxpayers. It includes sections for identification data and additional taxpayer information.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pcc3_11.txt b/summary/en/taxDocument/pcc3_11.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3978e0450fe75905a75983079de34b4784650af5
--- /dev/null
+++ b/summary/en/taxDocument/pcc3_11.txt
@@ -0,0 +1 @@
+This document is a tax declaration for civil law activities. It includes information about the taxpayer, the subject of taxation, and the place of submission.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pcc3_8.txt b/summary/en/taxDocument/pcc3_8.txt
new file mode 100644
index 0000000000000000000000000000000000000000..536c932dbcdded54365026700a5336d89800585a
--- /dev/null
+++ b/summary/en/taxDocument/pcc3_8.txt
@@ -0,0 +1 @@
+This document appears to be a tax declaration for civil law activities, submitted by STS PEB. It includes personal and identification information of the taxpayer.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit11_11.txt b/summary/en/taxDocument/pit11_11.txt
new file mode 100644
index 0000000000000000000000000000000000000000..68557e18464a232c23f348c93167f8a88aa09a7b
--- /dev/null
+++ b/summary/en/taxDocument/pit11_11.txt
@@ -0,0 +1 @@
+This document appears to be a Polish tax form, specifically PIT-11, used for reporting income and deductions. It contains various sections for reporting different types of income, including employment income, self-employment income, and other sources of income.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit11_18.txt b/summary/en/taxDocument/pit11_18.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0bb64ffa6d51d79b38e064a0739c7348763b523c
--- /dev/null
+++ b/summary/en/taxDocument/pit11_18.txt
@@ -0,0 +1 @@
+This document is a tax declaration form for PIT-11, filled out by Szafrański Michał. It includes information about income from abroad and paid taxes.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit11_2.txt b/summary/en/taxDocument/pit11_2.txt
new file mode 100644
index 0000000000000000000000000000000000000000..189ab029dbe0be762f77b9b0a00afa9bccbd81c8
--- /dev/null
+++ b/summary/en/taxDocument/pit11_2.txt
@@ -0,0 +1 @@
+The PIT-11 tax document provides information on income from other sources and deductions for income tax. It includes details such as the taxpayer's identification, income, and expenses.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit11_4.txt b/summary/en/taxDocument/pit11_4.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2584c2eac83e4b2b84aeff4804631b11e331402e
--- /dev/null
+++ b/summary/en/taxDocument/pit11_4.txt
@@ -0,0 +1 @@
+This is a tax document for income and taxes paid by an individual. It includes personal identification information, employer details, and tax-related data.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit11_6.txt b/summary/en/taxDocument/pit11_6.txt
new file mode 100644
index 0000000000000000000000000000000000000000..49c8582d00f62abd79acb1087e9ce402cf617836
--- /dev/null
+++ b/summary/en/taxDocument/pit11_6.txt
@@ -0,0 +1 @@
+This document is a tax form PIT-11, submitted by TUR SP. ZO.O., containing information about income and expenses for the year.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit28_0.txt b/summary/en/taxDocument/pit28_0.txt
new file mode 100644
index 0000000000000000000000000000000000000000..60d3ff0941754bd24f90529a09c0e1c6eaa71ec8
--- /dev/null
+++ b/summary/en/taxDocument/pit28_0.txt
@@ -0,0 +1 @@
+This document is a tax declaration form for individuals who have income subject to ryczałt, a type of Polish tax. It provides information on the taxpayer's identity, address, and income from various sources.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit28_18.txt b/summary/en/taxDocument/pit28_18.txt
new file mode 100644
index 0000000000000000000000000000000000000000..60d3ff0941754bd24f90529a09c0e1c6eaa71ec8
--- /dev/null
+++ b/summary/en/taxDocument/pit28_18.txt
@@ -0,0 +1 @@
+This document is a tax declaration form for individuals who have income subject to ryczałt, a type of Polish tax. It provides information on the taxpayer's identity, address, and income from various sources.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit28_2.txt b/summary/en/taxDocument/pit28_2.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e01e87b1bbafe6eabcc3512b38a69dbf71f5fa9d
--- /dev/null
+++ b/summary/en/taxDocument/pit28_2.txt
@@ -0,0 +1 @@
+This document appears to be a tax document in Polish, likely related to income tax. It contains various calculations and information about income, deductions, and payments.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit28_3.txt b/summary/en/taxDocument/pit28_3.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6ccabe0fe410d43e9fd0232a8df09400dd504732
--- /dev/null
+++ b/summary/en/taxDocument/pit28_3.txt
@@ -0,0 +1 @@
+This document appears to be a Polish tax document, specifically PIT-28S. It contains information about income, deductions, and tax liabilities.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit5_1.txt b/summary/en/taxDocument/pit5_1.txt
new file mode 100644
index 0000000000000000000000000000000000000000..11fa986d0a7b4bd5a58991aff502f29f1cb099c5
--- /dev/null
+++ b/summary/en/taxDocument/pit5_1.txt
@@ -0,0 +1 @@
+This document is a tax form for Polish taxpayers, used to report income and calculate taxes owed. It includes sections for personal information, income and expenses, and tax calculations.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit5_16.txt b/summary/en/taxDocument/pit5_16.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e6748b6d083fbf2bc9f1e0465e175ee4a0baa73c
--- /dev/null
+++ b/summary/en/taxDocument/pit5_16.txt
@@ -0,0 +1 @@
+The PIT-36L is a tax document used by Polish taxpayers to report their income and expenses. It is used for individuals who are self-employed or have special agricultural production activities.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit5_17.txt b/summary/en/taxDocument/pit5_17.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6e702f50708a1a5e4deb3bf8d589aef8e4ce1088
--- /dev/null
+++ b/summary/en/taxDocument/pit5_17.txt
@@ -0,0 +1 @@
+This is a tax document for PIT-2, which is an income tax return form in Poland. It contains information about the taxpayer's identity, income, and deductions.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit5_18.txt b/summary/en/taxDocument/pit5_18.txt
new file mode 100644
index 0000000000000000000000000000000000000000..70c532cfa32aa5a36a61b12fa8704ceabd54f54b
--- /dev/null
+++ b/summary/en/taxDocument/pit5_18.txt
@@ -0,0 +1 @@
+This document appears to be a Polish tax document, specifically a PIT-57 form. It contains information about income, deductions, and tax obligations.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit5_3.txt b/summary/en/taxDocument/pit5_3.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9a3ea7572e0c1cbabf2c1e936d2a0342d59d67e6
--- /dev/null
+++ b/summary/en/taxDocument/pit5_3.txt
@@ -0,0 +1 @@
+This tax document is for taxpayers who received income from sources located within the territory of the Republic of Poland and are subject to taxation. It includes information on income, expenses, and other relevant details.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit5_4.txt b/summary/en/taxDocument/pit5_4.txt
new file mode 100644
index 0000000000000000000000000000000000000000..812877679c61f8381a6df9495ed1158226ce5bf6
--- /dev/null
+++ b/summary/en/taxDocument/pit5_4.txt
@@ -0,0 +1 @@
+This document appears to be a tax declaration form for an individual, likely used in Poland. It contains personal and financial information, including income, expenses, and tax obligations.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit5_5.txt b/summary/en/taxDocument/pit5_5.txt
new file mode 100644
index 0000000000000000000000000000000000000000..de4baa3098d04d5fe64aeb2da06847aa343abb3b
--- /dev/null
+++ b/summary/en/taxDocument/pit5_5.txt
@@ -0,0 +1 @@
+This document appears to be a tax-related document with no specific details provided.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit5_6.txt b/summary/en/taxDocument/pit5_6.txt
new file mode 100644
index 0000000000000000000000000000000000000000..60d3ff0941754bd24f90529a09c0e1c6eaa71ec8
--- /dev/null
+++ b/summary/en/taxDocument/pit5_6.txt
@@ -0,0 +1 @@
+This document is a tax declaration form for individuals who have income subject to ryczałt, a type of Polish tax. It provides information on the taxpayer's identity, address, and income from various sources.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit5_7.txt b/summary/en/taxDocument/pit5_7.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7c7c4c254f2dfc30e6882b7a47d105ed3f6353f8
--- /dev/null
+++ b/summary/en/taxDocument/pit5_7.txt
@@ -0,0 +1 @@
+This is a tax document for PIT-CFC, containing information about income and taxes. It includes details about the taxpayer's identity, address, and income from foreign sources.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit5_8.txt b/summary/en/taxDocument/pit5_8.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3780104f6731f02537625a032e67858565a39423
--- /dev/null
+++ b/summary/en/taxDocument/pit5_8.txt
@@ -0,0 +1 @@
+This document is a PIT-2 tax form for an individual, used to calculate monthly income tax deductions. It contains identifying information about the taxpayer and payment details.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit8C_12.txt b/summary/en/taxDocument/pit8C_12.txt
new file mode 100644
index 0000000000000000000000000000000000000000..62fea3982fb6ee9bcf6083f05d8716eecb940c35
--- /dev/null
+++ b/summary/en/taxDocument/pit8C_12.txt
@@ -0,0 +1 @@
+This document appears to be a tax document, specifically a PIT-8C form. It contains information about income from capital and other financial instruments.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit8C_14.txt b/summary/en/taxDocument/pit8C_14.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8b8f0d6bd6d59c5d4c54a939693a9da93c24c95b
--- /dev/null
+++ b/summary/en/taxDocument/pit8C_14.txt
@@ -0,0 +1 @@
+This is a Polish tax document for PIT-8, declaring income and taxes paid. It includes information about the taxpayer's identity, income, and tax payments.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit8C_5.txt b/summary/en/taxDocument/pit8C_5.txt
new file mode 100644
index 0000000000000000000000000000000000000000..132d7c04c5bf745c550ed847ce4dd0020b86faf1
--- /dev/null
+++ b/summary/en/taxDocument/pit8C_5.txt
@@ -0,0 +1 @@
+This document is a tax document, specifically PIT-8C, which provides information on paid stipends, income from other sources, and capital gains. It outlines the legal basis for the document, the entities responsible for submitting the information, and the deadline for submission.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit8C_7.txt b/summary/en/taxDocument/pit8C_7.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ac02062444c66fe5aa447df5f3c24dededa3449c
--- /dev/null
+++ b/summary/en/taxDocument/pit8C_7.txt
@@ -0,0 +1 @@
+This document appears to be a tax form for an employer, detailing income and expenses. The document is written in Polish and includes various financial information.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit8C_8.txt b/summary/en/taxDocument/pit8C_8.txt
new file mode 100644
index 0000000000000000000000000000000000000000..dd26e6f39bbc401580d501a7eeeaec14d8f3300b
--- /dev/null
+++ b/summary/en/taxDocument/pit8C_8.txt
@@ -0,0 +1 @@
+This document is a PIT-8C tax form, providing information on some capital income. It outlines the legal basis, filing deadlines, and recipients of the document.
\ No newline at end of file
diff --git a/summary/en/taxDocument/pit8C_9.txt b/summary/en/taxDocument/pit8C_9.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9e94e1c317be15780146ced2d004f0615a8bb4ba
--- /dev/null
+++ b/summary/en/taxDocument/pit8C_9.txt
@@ -0,0 +1 @@
+This document is a tax document related to income and expenses. It contains information about paid stipend, income from other sources, and some capital gains.
\ No newline at end of file
diff --git a/summary/en/technicalInspection/technicalInspection_10.txt b/summary/en/technicalInspection/technicalInspection_10.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2ee18e09ad341e937b18da252ad7c7dd596db230
--- /dev/null
+++ b/summary/en/technicalInspection/technicalInspection_10.txt
@@ -0,0 +1 @@
+This document reports on a technical inspection of a vehicle designated for transporting hazardous materials. The report includes details on the vehicle's compliance with ADR regulations and Polish Ministry of Defense requirements.
\ No newline at end of file
diff --git a/summary/en/technicalInspection/technicalInspection_11.txt b/summary/en/technicalInspection/technicalInspection_11.txt
new file mode 100644
index 0000000000000000000000000000000000000000..87935362201d982184c4b75e74abf36defd1e051
--- /dev/null
+++ b/summary/en/technicalInspection/technicalInspection_11.txt
@@ -0,0 +1 @@
+This document is a technical inspection report for a vehicle. It contains information about the vehicle's make, model, and type, as well as the results of the inspection.
\ No newline at end of file
diff --git a/summary/en/technicalInspection/technicalInspection_12.txt b/summary/en/technicalInspection/technicalInspection_12.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0d209c8164e4d57fb92b20a2808f6b02e6fcdb64
--- /dev/null
+++ b/summary/en/technicalInspection/technicalInspection_12.txt
@@ -0,0 +1 @@
+This document is a technical inspection report for a vintage vehicle, providing information on its condition and suitability for use. The report includes details such as the vehicle's make, model, and specifications, as well as the results of the inspection.
\ No newline at end of file
diff --git a/summary/en/technicalInspection/technicalInspection_13.txt b/summary/en/technicalInspection/technicalInspection_13.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e6331b37381f97e8d77dff7ed07660234eb69433
--- /dev/null
+++ b/summary/en/technicalInspection/technicalInspection_13.txt
@@ -0,0 +1 @@
+This document is a technical inspection report for a bus, providing information on its speed, braking system, and other safety features.
\ No newline at end of file
diff --git a/summary/en/technicalInspection/technicalInspection_17.txt b/summary/en/technicalInspection/technicalInspection_17.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f06b8efbf321dc0c99ea50631ffab859686b7d1b
--- /dev/null
+++ b/summary/en/technicalInspection/technicalInspection_17.txt
@@ -0,0 +1 @@
+This document is a technical inspection report for a vehicle, including changes made and new technical data. It also includes administrative information such as weight and load capacity.
\ No newline at end of file
diff --git a/summary/en/technicalInspection/technicalInspection_4.txt b/summary/en/technicalInspection/technicalInspection_4.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d8e52f843c5d7402fe7b018ae1cad3d2aaaa6df7
--- /dev/null
+++ b/summary/en/technicalInspection/technicalInspection_4.txt
@@ -0,0 +1 @@
+A technical inspection report for a vehicle, indicating whether it meets or does not meet the technical requirements of Article 66 of the law.
\ No newline at end of file
diff --git a/summary/en/technicalInspection/technicalInspection_5.txt b/summary/en/technicalInspection/technicalInspection_5.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f63bc9e53791228da6441c43e9fbaff3a53e286a
--- /dev/null
+++ b/summary/en/technicalInspection/technicalInspection_5.txt
@@ -0,0 +1 @@
+Roadworthiness certificate for a vehicle, including details of the inspection and test results.
\ No newline at end of file
diff --git a/summary/en/technicalInspection/technicalInspection_6.txt b/summary/en/technicalInspection/technicalInspection_6.txt
new file mode 100644
index 0000000000000000000000000000000000000000..906e641c7aea4186d2761af70d5e62243f7f881e
--- /dev/null
+++ b/summary/en/technicalInspection/technicalInspection_6.txt
@@ -0,0 +1 @@
+This document appears to be a technical inspection report for a vehicle, likely located in the 'technicalInspection' folder.
\ No newline at end of file
diff --git a/summary/es/other/other_18.txt b/summary/es/other/other_18.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b21dadef74f155df9418b3fdcb9be3e4e715949a
--- /dev/null
+++ b/summary/es/other/other_18.txt
@@ -0,0 +1 @@
+La gmina de Sobótka actualiza el programa de revitalización local para el período 2015-2025. El documento describe los objetivos y metas del programa, incluyendo oportunidades de financiamiento procedentes de la Unión Europea.
\ No newline at end of file
diff --git a/summary/es/other/other_19.txt b/summary/es/other/other_19.txt
new file mode 100644
index 0000000000000000000000000000000000000000..1bc59685c4ec4cee9eb696d8fccbe68d0e5a1dba
--- /dev/null
+++ b/summary/es/other/other_19.txt
@@ -0,0 +1 @@
+Flujo Office Gdynia ofrece un amplio rango de suministros y soluciones para empresas. Proporcionan una selección integral, términos de cooperación flexibles y logística fiable.
\ No newline at end of file
diff --git a/summary/es/other/other_2.txt b/summary/es/other/other_2.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5a1470643742c4821f06765a1526db67fff22ba4
--- /dev/null
+++ b/summary/es/other/other_2.txt
@@ -0,0 +1 @@
+Este documento parece ser un archivo misceláneo ubicado en la carpeta "otro". Contiene información sobre parcelas de tierra y su uso, así como consentimiento electrónico para correspondencia y adjuntos.
\ No newline at end of file
diff --git a/summary/es/other/other_3.txt b/summary/es/other/other_3.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3de4b30f59b0c4a3f5e24eb975ab3bf8f780c0b9
--- /dev/null
+++ b/summary/es/other/other_3.txt
@@ -0,0 +1 @@
+El documento aborda cambios a las reglas para el acceso a armas de fuego, con propuestas sobre almacenamiento y uso por soldados de defensa territorial.
\ No newline at end of file
diff --git a/summary/es/other/other_4.txt b/summary/es/other/other_4.txt
new file mode 100644
index 0000000000000000000000000000000000000000..65eea0f572b9ff4f7a1af3852a0804ca5b5ce94d
--- /dev/null
+++ b/summary/es/other/other_4.txt
@@ -0,0 +1 @@
+Notificación del Sołectwo Droszków al Sr. Janusz Kubicki, Presidente de la Ciudad Zielona Góra, sobre preocupaciones en relación con el transporte de residuos peligrosos desde Przylepie hasta un destino desconocido.
\ No newline at end of file
diff --git a/summary/es/other/other_5.txt b/summary/es/other/other_5.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7a90edc977f3c081906c997568968ee832a99e87
--- /dev/null
+++ b/summary/es/other/other_5.txt
@@ -0,0 +1,3 @@
+Traducción automática del texto:
+
+Autopropuesta de enmienda al proyecto de ley gubernamental sobre la modificación de la ley sobre planes de pensiones laborales, junto con una opinión sobre la compatibilidad de las regulaciones propuestas con el derecho de la UE.
\ No newline at end of file
diff --git a/summary/es/other/other_7.txt b/summary/es/other/other_7.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6fb24ef1847892d4287f3b10de050abb77a4429e
--- /dev/null
+++ b/summary/es/other/other_7.txt
@@ -0,0 +1 @@
+Notificación de inicio para mantener un libro fiscal. El libro estará ubicado en la oficina de la empresa en Varsovia, ulica Mostowa 241.
\ No newline at end of file
diff --git a/summary/es/technicalInspection/technicalInspection_0.txt b/summary/es/technicalInspection/technicalInspection_0.txt
new file mode 100644
index 0000000000000000000000000000000000000000..252dff3e4772d94e2c8b880bdfd7b87730487728
--- /dev/null
+++ b/summary/es/technicalInspection/technicalInspection_0.txt
@@ -0,0 +1 @@
+Este documento es un certificado de idoneidad para un vehículo, que indica los resultados de una inspección técnica. El informe incluye información sobre el tipo y modelo del vehículo, así como el número de registro y la fecha de primera matriculación en Polonia o en el extranjero.
\ No newline at end of file
diff --git a/summary/es/technicalInspection/technicalInspection_10.txt b/summary/es/technicalInspection/technicalInspection_10.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d2737c1193886e46f353c60415ff82044002569f
--- /dev/null
+++ b/summary/es/technicalInspection/technicalInspection_10.txt
@@ -0,0 +1 @@
+Este documento informa sobre una inspección técnica de un vehículo destinado al transporte de materiales peligrosos. El informe incluye detalles sobre la conformidad del vehículo con las regulaciones ADR y los requisitos del Ministerio de Defensa polaco.
\ No newline at end of file
diff --git a/summary/es/technicalInspection/technicalInspection_11.txt b/summary/es/technicalInspection/technicalInspection_11.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a3680aff49dbd8e8e715dbe11597e4c19fa50432
--- /dev/null
+++ b/summary/es/technicalInspection/technicalInspection_11.txt
@@ -0,0 +1 @@
+Este documento es un informe de inspección técnica para un vehículo. Contiene información sobre el tipo, modelo y marca del vehículo, así como los resultados de la inspección.
\ No newline at end of file
diff --git a/summary/es/technicalInspection/technicalInspection_12.txt b/summary/es/technicalInspection/technicalInspection_12.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0c51f380a44fec0858449370ca33e5f27bd4aee5
--- /dev/null
+++ b/summary/es/technicalInspection/technicalInspection_12.txt
@@ -0,0 +1 @@
+Este documento es un informe de inspección técnica para un vehículo clásico, proporcionando información sobre su condición y idoneidad para el uso. El informe incluye detalles como la marca, modelo y especificaciones del vehículo, así como los resultados de la inspección.
\ No newline at end of file
diff --git a/summary/es/technicalInspection/technicalInspection_2.txt b/summary/es/technicalInspection/technicalInspection_2.txt
new file mode 100644
index 0000000000000000000000000000000000000000..cbc4d01e7fb48c304639f5179bd69592fcf3f039
--- /dev/null
+++ b/summary/es/technicalInspection/technicalInspection_2.txt
@@ -0,0 +1 @@
+Este documento informa sobre una inspección técnica de un vehículo diseñado para transportar mercancías peligrosas. El informe confirma que el vehículo cumple con los requisitos técnicos especificados en el Anexo B del acuerdo ADR, así como los requisitos adicionales para las instalaciones eléctricas y sistemas de frenos.
\ No newline at end of file
diff --git a/summary/es/technicalInspection/technicalInspection_3.txt b/summary/es/technicalInspection/technicalInspection_3.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9fcccb940c93100c896631bb37b07b16c0999cd2
--- /dev/null
+++ b/summary/es/technicalInspection/technicalInspection_3.txt
@@ -0,0 +1 @@
+Este documento es un informe de inspección técnica para un autobús eléctrico. Incluye información sobre la fecha de producción del vehículo, resultados de pruebas y próxima inspección programada.
\ No newline at end of file
diff --git a/summary/es/technicalInspection/technicalInspection_4.txt b/summary/es/technicalInspection/technicalInspection_4.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b2cbaaf0a625d7c1db131877403498fa2af6191a
--- /dev/null
+++ b/summary/es/technicalInspection/technicalInspection_4.txt
@@ -0,0 +1 @@
+Informe de inspección técnica para un vehículo, que indica si cumple o no cumple con los requisitos técnicos del artículo 66 de la ley.
\ No newline at end of file
diff --git a/summary/es/technicalInspection/technicalInspection_5.txt b/summary/es/technicalInspection/technicalInspection_5.txt
new file mode 100644
index 0000000000000000000000000000000000000000..14c87e1acd240ca511e9b221572cfb9ac7fbadc8
--- /dev/null
+++ b/summary/es/technicalInspection/technicalInspection_5.txt
@@ -0,0 +1 @@
+Título de idoneidad para un vehículo, incluyendo detalles del inspección y resultados de las pruebas.
\ No newline at end of file
diff --git a/summary/es/technicalInspection/technicalInspection_6.txt b/summary/es/technicalInspection/technicalInspection_6.txt
new file mode 100644
index 0000000000000000000000000000000000000000..76bdd66eec07c40a9761a7ae8a787f9710ebf883
--- /dev/null
+++ b/summary/es/technicalInspection/technicalInspection_6.txt
@@ -0,0 +1 @@
+Este documento parece ser un informe de inspección técnica para un vehículo, probablemente ubicado en la carpeta "inspecciónTécnica".
\ No newline at end of file
diff --git a/summary/es/utilityBill/utilityBill_11.txt b/summary/es/utilityBill/utilityBill_11.txt
new file mode 100644
index 0000000000000000000000000000000000000000..dcac4903b076d76bb89129021ec3982c0cbfb86e
--- /dev/null
+++ b/summary/es/utilityBill/utilityBill_11.txt
@@ -0,0 +1 @@
+Una factura de servicios públicos del Banco PKO Polonia SA Sucursal 2 en Varsovia para el período comprendido entre el 17 de junio de 2014 y el 16 de julio de 2014. El consumo total es de 509 kWh.
\ No newline at end of file
diff --git a/summary/es/utilityBill/utilityBill_12.txt b/summary/es/utilityBill/utilityBill_12.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b9e036ebfdddf91ba7c0fc332b155048bd3ae466
--- /dev/null
+++ b/summary/es/utilityBill/utilityBill_12.txt
@@ -0,0 +1 @@
+Este documento contiene información sobre el consumo de energía y facturación para un período específico. Incluye detalles sobre la energía activa, tarifas de distribución y otros cargos.
\ No newline at end of file
diff --git a/summary/es/utilityBill/utilityBill_13.txt b/summary/es/utilityBill/utilityBill_13.txt
new file mode 100644
index 0000000000000000000000000000000000000000..482bdeb7c702961d9e8e59c5e3819485d7080370
--- /dev/null
+++ b/summary/es/utilityBill/utilityBill_13.txt
@@ -0,0 +1 @@
+Esta es una factura de servicios de distribución de electricidad de E.ON Polska S.A. por los servicios prestados desde el 28 de diciembre de 2022 hasta el 25 de junio de 2023.
\ No newline at end of file
diff --git a/summary/es/utilityBill/utilityBill_14.txt b/summary/es/utilityBill/utilityBill_14.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6291124790c244542aaf9c96bb6e4177c072d24c
--- /dev/null
+++ b/summary/es/utilityBill/utilityBill_14.txt
@@ -0,0 +1 @@
+Este documento es una factura de servicios públicos por consumo eléctrico desde el 6 de diciembre de 2022 hasta el 7 de junio de 2023. Incluye detalles sobre ventas y distribución de energía, así como cálculos de IVA.
\ No newline at end of file
diff --git a/summary/es/utilityBill/utilityBill_15.txt b/summary/es/utilityBill/utilityBill_15.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4aff130e2b0c76bafa3ef23cc7725aabf93fd62a
--- /dev/null
+++ b/summary/es/utilityBill/utilityBill_15.txt
@@ -0,0 +1 @@
+Una factura de servicios públicos por consumo eléctrico desde el 20 de abril de 2011 hasta el 3 de junio de 2011. La cantidad total a pagar es de 638,39 PLN.
\ No newline at end of file
diff --git a/summary/es/utilityBill/utilityBill_17.txt b/summary/es/utilityBill/utilityBill_17.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6cead6fefb8f9edc140fccd0aa5fac462de50c91
--- /dev/null
+++ b/summary/es/utilityBill/utilityBill_17.txt
@@ -0,0 +1 @@
+Una factura de servicios públicos de PGE Obrót S.A. por consumo eléctrico, incluyendo información detallada sobre el uso energético y los horarios de pago.
\ No newline at end of file
diff --git a/summary/es/utilityBill/utilityBill_19.txt b/summary/es/utilityBill/utilityBill_19.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5ee427e5fb9e8646dff32d70a4488adda8b13f56
--- /dev/null
+++ b/summary/es/utilityBill/utilityBill_19.txt
@@ -0,0 +1 @@
+El documento muestra el consumo y los costos de electricidad para el año 2022. El costo total del energía y distribución fue de 1.971,94 PLN. También hay cargos adicionales por exceder el límite.
\ No newline at end of file
diff --git a/summary/es/utilityBill/utilityBill_9.txt b/summary/es/utilityBill/utilityBill_9.txt
new file mode 100644
index 0000000000000000000000000000000000000000..388492ba1bcf49db54423c0adc9f8604f18884c0
--- /dev/null
+++ b/summary/es/utilityBill/utilityBill_9.txt
@@ -0,0 +1 @@
+Una factura de servicios públicos de Energii por consumo eléctrico desde el 7 de noviembre de 2021 hasta el 13 de mayo de 2022. La factura incluye un resumen de la utilización y detalles de pago.
\ No newline at end of file
diff --git a/synthetic_content/.DS_Store b/synthetic_content/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..2f5a36a4980acbaf3617b919852933ec8d1e3f81
Binary files /dev/null and b/synthetic_content/.DS_Store differ
diff --git a/synthetic_dataset/.DS_Store b/synthetic_dataset/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..4f844fc2cfb50fedb5ee00ddc8361bde663fb0d5
Binary files /dev/null and b/synthetic_dataset/.DS_Store differ
diff --git a/synthetic_processed_files.log b/synthetic_processed_files.log
new file mode 100644
index 0000000000000000000000000000000000000000..19a247b8aa47ca715e97164e617a45cbd6be16c8
--- /dev/null
+++ b/synthetic_processed_files.log
@@ -0,0 +1,581 @@
+content/taxDocument/pit5_1.txt
+content/taxDocument/pcc3_8.txt
+content/taxDocument/pit28_18.txt
+content/taxDocument/pit5_3.txt
+content/taxDocument/pit5_7.txt
+content/taxDocument/pit5_18.txt
+content/taxDocument/cit8_8.txt
+content/taxDocument/pit5_6.txt
+content/taxDocument/pit8C_8.txt
+content/taxDocument/pit5_4.txt
+content/taxDocument/pit5_5.txt
+content/taxDocument/pit8C_9.txt
+content/taxDocument/cit8_13.txt
+content/taxDocument/cit8_12.txt
+content/taxDocument/pit8C_14.txt
+content/taxDocument/cit8_10.txt
+content/taxDocument/cit8_11.txt
+content/taxDocument/cit8_15.txt
+content/taxDocument/cit8_14.txt
+content/taxDocument/pit11_11.txt
+content/taxDocument/pit8C_12.txt
+content/taxDocument/cit8_16.txt
+content/taxDocument/cit8_17.txt
+content/taxDocument/pit28_2.txt
+content/taxDocument/pit11_6.txt
+content/taxDocument/pit28_3.txt
+content/taxDocument/pit11_4.txt
+content/taxDocument/pit28_0.txt
+content/taxDocument/pit11_18.txt
+content/taxDocument/pit11_2.txt
+content/taxDocument/pit5_8.txt
+content/taxDocument/pit5_17.txt
+content/taxDocument/pcc3_10.txt
+content/taxDocument/cit8_7.txt
+content/taxDocument/pcc3_11.txt
+content/taxDocument/pit5_16.txt
+content/taxDocument/pcc3_0.txt
+content/taxDocument/pit8C_5.txt
+content/taxDocument/pit8C_7.txt
+content/taxDocument/cit8_5.txt
+content/taxDocument/pcc3_12.txt
+content/taxDocument/pcc3_3.txt
+content/taxDocument/pit36_0.txt
+content/taxDocument/cit8_1.txt
+content/taxDocument/cit8_0.txt
+content/taxDocument/pit5_10.txt
+content/taxDocument/pit5_12.txt
+content/taxDocument/cit8_3.txt
+content/taxDocument/pcc3_14.txt
+content/taxDocument/pcc3_5.txt
+content/taxDocument/pit8C_0.txt
+content/vaccinationCard/vaccinationCard_18.txt
+content/vaccinationCard/vaccinationCard_2.txt
+content/vaccinationCard/vaccinationCard_1.txt
+content/vaccinationCard/vaccinationCard_9.txt
+content/vaccinationCard/vaccinationCard_8.txt
+content/vaccinationCard/vaccinationCard_16.txt
+content/vaccinationCard/vaccinationCard_17.txt
+content/vaccinationCard/vaccinationCard_15.txt
+content/vaccinationCard/vaccinationCard_14.txt
+content/vaccinationCard/vaccinationCard_10.txt
+content/vaccinationCard/vaccinationCard_11.txt
+content/vaccinationCard/vaccinationCard_13.txt
+content/contract/mandateContract_18.txt
+content/contract/b2bContract_12.txt
+content/contract/taskContract_18.txt
+content/contract/taskContract_19.txt
+content/contract/b2bContract_16.txt
+content/contract/employmentContract_9.txt
+content/contract/employmentContract_8.txt
+content/contract/b2bContract_15.txt
+content/contract/taskContract_6.txt
+content/contract/taskContract_7.txt
+content/contract/taskContract_5.txt
+content/contract/taskContract_4.txt
+content/contract/taskContract_0.txt
+content/contract/taskContract_1.txt
+content/contract/mandateContract_8.txt
+content/contract/employmentContract_19.txt
+content/contract/taskContract_3.txt
+content/contract/taskContract_2.txt
+content/contract/employmentContract_18.txt
+content/contract/mandateContract_9.txt
+content/contract/mandateContract_4.txt
+content/contract/employmentContract_15.txt
+content/contract/nonCompeteAgreement_3.txt
+content/contract/mandateContract_5.txt
+content/contract/mandateContract_7.txt
+content/contract/employmentContract_16.txt
+content/contract/nonCompeteAgreement_0.txt
+content/contract/employmentContract_17.txt
+content/contract/mandateContract_6.txt
+content/contract/mandateContract_2.txt
+content/contract/employmentContract_13.txt
+content/contract/nonCompeteAgreement_5.txt
+content/contract/taskContract_9.txt
+content/contract/taskContract_8.txt
+content/contract/employmentContract_12.txt
+content/contract/mandateContract_3.txt
+content/contract/mandateContract_1.txt
+content/contract/nonCompeteAgreement_6.txt
+content/contract/nonCompeteAgreement_7.txt
+content/contract/employmentContract_11.txt
+content/contract/mandateContract_0.txt
+content/contract/employmentContract_5.txt
+content/contract/mandateContract_10.txt
+content/contract/b2bContract_18.txt
+content/contract/taskContract_17.txt
+content/contract/taskContract_16.txt
+content/contract/mandateContract_11.txt
+content/contract/b2bContract_19.txt
+content/contract/employmentContract_6.txt
+content/contract/taskContract_15.txt
+content/contract/employmentContract_3.txt
+content/contract/mandateContract_16.txt
+content/contract/employmentContract_2.txt
+content/contract/taskContract_10.txt
+content/contract/taskContract_12.txt
+content/contract/employmentContract_0.txt
+content/contract/mandateContract_15.txt
+content/contract/mandateContract_14.txt
+content/contract/employmentContract_1.txt
+content/contract/taskContract_13.txt
+content/referral/referral_19.txt
+content/referral/referral_18.txt
+content/referral/referral_8.txt
+content/referral/referral_9.txt
+content/referral/referral_10.txt
+content/referral/referral_11.txt
+content/referral/referral_5.txt
+content/referral/referral_13.txt
+content/referral/referral_12.txt
+content/referral/referral_2.txt
+content/referral/referral_16.txt
+content/referral/referral_17.txt
+content/referral/referral_3.txt
+content/referral/referral_1.txt
+content/referral/referral_15.txt
+content/referral/referral_14.txt
+content/referral/referral_0.txt
+content/rentalAgreement/rentalAgreement_19.txt
+content/rentalAgreement/rentalAgreement_17.txt
+content/rentalAgreement/rentalAgreement_16.txt
+content/rentalAgreement/rentalAgreement_14.txt
+content/rentalAgreement/rentalAgreement_15.txt
+content/rentalAgreement/rentalAgreement_11.txt
+content/rentalAgreement/rentalAgreement_10.txt
+content/rentalAgreement/rentalAgreement_13.txt
+content/rentalAgreement/rentalAgreement_7.txt
+content/rentalAgreement/rentalAgreement_6.txt
+content/rentalAgreement/rentalAgreement_4.txt
+content/rentalAgreement/loanAgreement_13.txt
+content/rentalAgreement/rentalAgreement_1.txt
+content/rentalAgreement/rentalAgreement_0.txt
+content/technicalInspection/technicalInspection_17.txt
+content/technicalInspection/technicalInspection_13.txt
+content/technicalInspection/technicalInspection_12.txt
+content/technicalInspection/technicalInspection_10.txt
+content/technicalInspection/technicalInspection_11.txt
+content/technicalInspection/technicalInspection_6.txt
+content/technicalInspection/technicalInspection_4.txt
+content/technicalInspection/technicalInspection_5.txt
+content/technicalInspection/technicalInspection_1.txt
+content/technicalInspection/technicalInspection_0.txt
+content/technicalInspection/technicalInspection_2.txt
+content/technicalInspection/technicalInspection_3.txt
+content/utilityBill/utilityBill_19.txt
+content/utilityBill/utilityBill_13.txt
+content/utilityBill/utilityBill_12.txt
+content/utilityBill/utilityBill_9.txt
+content/utilityBill/utilityBill_11.txt
+content/utilityBill/utilityBill_15.txt
+content/utilityBill/utilityBill_14.txt
+content/utilityBill/utilityBill_17.txt
+content/other/other_4.txt
+content/other/other_5.txt
+content/other/other_18.txt
+content/other/other_7.txt
+content/other/other_19.txt
+content/other/other_2.txt
+content/other/other_3.txt
+content/other/authorization_18.txt
+content/other/authorization_8.txt
+content/other/authorization_9.txt
+content/other/authorization_19.txt
+content/other/authorization_14.txt
+content/other/other_12.txt
+content/other/authorization_4.txt
+content/other/other_13.txt
+content/other/authorization_15.txt
+content/other/authorization_17.txt
+content/other/other_11.txt
+content/other/authorization_7.txt
+content/other/authorization_6.txt
+content/other/other_10.txt
+content/other/authorization_12.txt
+content/other/other_14.txt
+content/other/authorization_2.txt
+content/other/authorization_3.txt
+content/other/authorization_13.txt
+content/other/authorization_11.txt
+content/other/other_9.txt
+content/other/other_16.txt
+content/other/authorization_10.txt
+content/vehicleDocument/vehicleHistory_9.txt
+content/vehicleDocument/registrationCertificate_8.txt
+content/vehicleDocument/registrationCertificate_9.txt
+content/vehicleDocument/registrationCertificate_17.txt
+content/vehicleDocument/vehicleHistory_16.txt
+content/vehicleDocument/vehicleHistory_17.txt
+content/vehicleDocument/registrationCertificate_14.txt
+content/vehicleDocument/vehicleHistory_14.txt
+content/vehicleDocument/registrationCertificate_15.txt
+content/vehicleDocument/vehicleHistory_10.txt
+content/vehicleDocument/vehicleHistory_11.txt
+content/vehicleDocument/registrationCertificate_10.txt
+content/vehicleDocument/registrationCertificate_12.txt
+content/vehicleDocument/vehicleHistory_13.txt
+content/vehicleDocument/vehicleHistory_12.txt
+content/vehicleDocument/registrationCertificate_13.txt
+content/vehicleDocument/vehicleHistory_18.txt
+content/vehicleDocument/vehicleHistory_3.txt
+content/vehicleDocument/registrationCertificate_4.txt
+content/vehicleDocument/registrationCertificate_5.txt
+content/vehicleDocument/vehicleHistory_2.txt
+content/vehicleDocument/vehicleHistory_0.txt
+content/vehicleDocument/registrationCertificate_7.txt
+content/vehicleDocument/registrationCertificate_6.txt
+content/vehicleDocument/vehicleHistory_1.txt
+content/vehicleDocument/vehicleHistory_5.txt
+content/vehicleDocument/registrationCertificate_2.txt
+content/vehicleDocument/registrationCertificate_3.txt
+content/vehicleDocument/vehicleHistory_4.txt
+content/vehicleDocument/vehicleHistory_6.txt
+content/vehicleDocument/registrationCertificate_1.txt
+content/vehicleDocument/registrationCertificate_0.txt
+content/prescription/prescription_9.txt
+content/prescription/prescription_18.txt
+content/prescription/prescription_3.txt
+content/prescription/prescription_14.txt
+content/prescription/prescription_2.txt
+content/prescription/prescription_0.txt
+content/prescription/prescription_16.txt
+content/prescription/prescription_5.txt
+content/prescription/prescription_4.txt
+content/prescription/prescription_6.txt
+content/prescription/prescription_11.txt
+content/prescription/prescription_7.txt
+content/sanitaryBooklet/sanitaryBooklet_16.txt
+content/sanitaryBooklet/sanitaryBooklet_12.txt
+content/sanitaryBooklet/sanitaryBooklet_10.txt
+content/sanitaryBooklet/sanitaryBooklet_7.txt
+content/sanitaryBooklet/sanitaryBooklet_18.txt
+content/deathCertificate/deathCertificate_2.txt
+content/deathCertificate/birthCertificate_15.txt
+content/deathCertificate/deathCertificate_3.txt
+content/deathCertificate/deathCertificate_1.txt
+content/deathCertificate/deathCertificate_4.txt
+content/deathCertificate/deathCertificate_7.txt
+content/deathCertificate/deathCertificate_6.txt
+content/deathCertificate/deathCertificate_19.txt
+content/deathCertificate/deathCertificate_15.txt
+content/deathCertificate/deathCertificate_16.txt
+content/deathCertificate/deathCertificate_10.txt
+content/deathCertificate/deathCertificate_8.txt
+content/deathCertificate/deathCertificate_9.txt
+content/medicalDocument/sickLeave_14.txt
+content/medicalDocument/sickLeave_15.txt
+content/medicalDocument/medicalHistory_4.txt
+content/medicalDocument/medicalResults_14.txt
+content/medicalDocument/medicalHistory_6.txt
+content/medicalDocument/medicalHistory_7.txt
+content/medicalDocument/medicalHistory_3.txt
+content/medicalDocument/medicalHistory_0.txt
+content/medicalDocument/sickLeave_10.txt
+content/medicalDocument/medicalHistory_1.txt
+content/medicalDocument/medicalResults_7.txt
+content/medicalDocument/medicalResults_6.txt
+content/medicalDocument/medicalResults_4.txt
+content/medicalDocument/medicalResults_5.txt
+content/medicalDocument/medicalResults_2.txt
+content/medicalDocument/medicalResults_8.txt
+content/medicalDocument/sickLeave_1.txt
+content/medicalDocument/medicalHistory_16.txt
+content/medicalDocument/sickLeave_0.txt
+content/medicalDocument/sickLeave_2.txt
+content/medicalDocument/medicalHistory_15.txt
+content/medicalDocument/medicalHistory_14.txt
+content/medicalDocument/medicalHistory_10.txt
+content/medicalDocument/sickLeave_6.txt
+content/medicalDocument/medicalHistory_9.txt
+content/medicalDocument/medicalHistory_8.txt
+content/medicalDocument/sickLeave_5.txt
+content/passport/passport_9.txt
+content/passport/passport_8.txt
+content/passport/passport_12.txt
+content/passport/passport_11.txt
+content/passport/passport_10.txt
+content/passport/passport_0.txt
+content/passport/passport_1.txt
+content/passport/passport_3.txt
+content/passport/passport_2.txt
+content/passport/passport_5.txt
+content/officialCertificate/peselConfirmation_19.txt
+content/officialCertificate/peselConfirmation_9.txt
+content/officialCertificate/peselConfirmation_8.txt
+content/officialCertificate/peselConfirmation_6.txt
+content/officialCertificate/authorization_5.txt
+content/officialCertificate/peselConfirmation_7.txt
+content/officialCertificate/peselConfirmation_13.txt
+content/officialCertificate/peselConfirmation_11.txt
+content/officialCertificate/peselConfirmation_5.txt
+content/officialCertificate/certificate_12.txt
+content/officialCertificate/peselConfirmation_4.txt
+content/officialCertificate/peselConfirmation_14.txt
+content/officialCertificate/peselConfirmation_1.txt
+content/officialCertificate/peselConfirmation_15.txt
+content/officialCertificate/peselConfirmation_17.txt
+content/officialCertificate/peselConfirmation_3.txt
+content/officialCertificate/peselConfirmation_2.txt
+content/powerOfAttorney/powerOfAttorney_0.txt
+content/powerOfAttorney/powerOfAttorney_1.txt
+content/powerOfAttorney/powerOfAttorney_2.txt
+content/powerOfAttorney/powerOfAttorney_6.txt
+content/powerOfAttorney/powerOfAttorney_7.txt
+content/powerOfAttorney/powerOfAttorney_5.txt
+content/powerOfAttorney/powerOfAttorney_13.txt
+content/powerOfAttorney/powerOfAttorney_11.txt
+content/powerOfAttorney/powerOfAttorney_10.txt
+content/powerOfAttorney/powerOfAttorney_14.txt
+content/powerOfAttorney/powerOfAttorney_15.txt
+content/powerOfAttorney/powerOfAttorney_17.txt
+content/powerOfAttorney/powerOfAttorney_18.txt
+content/powerOfAttorney/powerOfAttorney_19.txt
+content/marriageCertificate/marriageCertificate_8.txt
+content/marriageCertificate/marriageCertificate_15.txt
+content/marriageCertificate/marriageCertificate_14.txt
+content/marriageCertificate/marriageCertificate_9.txt
+content/marriageCertificate/marriageCertificate_17.txt
+content/marriageCertificate/marriageCertificate_11.txt
+content/marriageCertificate/marriageCertificate_1.txt
+content/marriageCertificate/marriageCertificate_2.txt
+content/marriageCertificate/marriageCertificate_18.txt
+content/drivingLicense/drivingLicense_9.txt
+content/drivingLicense/drivingLicense_18.txt
+content/drivingLicense/drivingLicense_10.txt
+content/drivingLicense/drivingLicense_0.txt
+content/drivingLicense/drivingLicense_11.txt
+content/drivingLicense/drivingLicense_2.txt
+content/drivingLicense/drivingLicense_3.txt
+content/drivingLicense/drivingLicense_12.txt
+content/drivingLicense/drivingLicense_17.txt
+content/receipt/receipt_18.txt
+content/receipt/receipt_19.txt
+content/receipt/receipt_17.txt
+content/receipt/receipt_16.txt
+content/receipt/receipt_14.txt
+content/receipt/receipt_15.txt
+content/receipt/receipt_10.txt
+content/receipt/receipt_12.txt
+content/receipt/receipt_13.txt
+content/receipt/receipt_0.txt
+content/receipt/receipt_1.txt
+content/receipt/receipt_3.txt
+content/receipt/receipt_2.txt
+content/receipt/receipt_7.txt
+content/loanAgreement/loanAgreement_8.txt
+content/loanAgreement/loanAgreement_11.txt
+content/loanAgreement/loanAgreement_0.txt
+content/loanAgreement/loanAgreement_1.txt
+content/loanAgreement/loanAgreement_16.txt
+content/loanAgreement/loanAgreement_14.txt
+content/loanAgreement/loanAgreement_7.txt
+content/loanAgreement/loanAgreement_15.txt
+content/educationDocument/universityDiploma_15.txt
+content/educationDocument/universityDiploma_8.txt
+content/educationDocument/universityDiploma_11.txt
+content/educationDocument/universityDiploma_10.txt
+content/educationDocument/universityDiploma_9.txt
+content/educationDocument/universityDiploma_12.txt
+content/educationDocument/universityDiploma_13.txt
+content/educationDocument/schoolCertificate_17.txt
+content/educationDocument/professionalCertificate_5.txt
+content/educationDocument/professionalCertificate_4.txt
+content/educationDocument/schoolCertificate_16.txt
+content/educationDocument/courtJudgment_5.txt
+content/educationDocument/professionalCertificate_6.txt
+content/educationDocument/professionalCertificate_7.txt
+content/educationDocument/schoolCertificate_9.txt
+content/educationDocument/professionalCertificate_3.txt
+content/educationDocument/schoolCertificate_10.txt
+content/educationDocument/professionalCertificate_2.txt
+content/educationDocument/professionalCertificate_1.txt
+content/educationDocument/professionalCertificate_18.txt
+content/educationDocument/professionalCertificate_15.txt
+content/educationDocument/professionalCertificate_17.txt
+content/educationDocument/schoolCertificate_4.txt
+content/educationDocument/professionalCertificate_12.txt
+content/educationDocument/schoolCertificate_1.txt
+content/educationDocument/professionalCertificate_10.txt
+content/educationDocument/professionalCertificate_9.txt
+content/educationDocument/professionalCertificate_11.txt
+content/educationDocument/schoolCertificate_2.txt
+content/educationDocument/universityDiploma_7.txt
+content/educationDocument/lawsuit_13.txt
+content/educationDocument/certificate_6.txt
+content/educationDocument/universityDiploma_6.txt
+content/educationDocument/universityDiploma_5.txt
+content/educationDocument/universityDiploma_1.txt
+content/educationDocument/universityDiploma_18.txt
+content/educationDocument/universityDiploma_0.txt
+content/educationDocument/universityDiploma_2.txt
+content/educationDocument/universityDiploma_3.txt
+content/birthCertificate/birthCertificate_7.txt
+content/birthCertificate/birthCertificate_1.txt
+content/birthCertificate/birthCertificate_10.txt
+content/birthCertificate/propertyDeed_16.txt
+content/birthCertificate/birthCertificate_9.txt
+content/propertyDeed/landRegistry_7.txt
+content/propertyDeed/landRegistry_4.txt
+content/propertyDeed/landRegistry_0.txt
+content/propertyDeed/landRegistry_16.txt
+content/propertyDeed/landRegistry_17.txt
+content/propertyDeed/landRegistry_1.txt
+content/propertyDeed/landRegistry_14.txt
+content/propertyDeed/landRegistry_2.txt
+content/propertyDeed/propertyDeed_10.txt
+content/propertyDeed/propertyDeed_11.txt
+content/propertyDeed/propertyDeed_6.txt
+content/propertyDeed/propertyDeed_7.txt
+content/propertyDeed/propertyDeed_3.txt
+content/propertyDeed/propertyDeed_2.txt
+content/propertyDeed/propertyDeed_17.txt
+content/propertyDeed/propertyDeed_15.txt
+content/propertyDeed/propertyDeed_19.txt
+content/propertyDeed/propertyDeed_18.txt
+content/propertyDeed/landRegistry_19.txt
+content/cv/cv_13.txt
+content/cv/cv_12.txt
+content/cv/cv_10.txt
+content/cv/cv_11.txt
+content/cv/cv_15.txt
+content/cv/cv_14.txt
+content/cv/cv_16.txt
+content/cv/cv_17.txt
+content/cv/cv_7.txt
+content/cv/cv_6.txt
+content/cv/cv_4.txt
+content/cv/cv_1.txt
+content/cv/cv_0.txt
+content/cv/cv_2.txt
+content/cv/cv_3.txt
+content/cv/cv_9.txt
+content/cv/cv_19.txt
+content/cv/cv_18.txt
+content/bankStatement/bankStatement_13.txt
+content/bankStatement/bankStatement_3.txt
+content/bankStatement/bankStatement_1.txt
+content/bankStatement/bankStatement_19.txt
+content/application/certificate_8.txt
+content/application/application_5.txt
+content/application/application_11.txt
+content/application/certificate_19.txt
+content/application/application_6.txt
+content/application/application_12.txt
+content/application/application_13.txt
+content/application/application_3.txt
+content/application/application_16.txt
+content/application/application_0.txt
+content/application/application_15.txt
+content/application/application_18.txt
+content/application/application_19.txt
+content/application/application_9.txt
+content/application/application_8.txt
+content/notarialDeed/notarialDeed_5.txt
+content/notarialDeed/notarialDeed_7.txt
+content/notarialDeed/notarialDeed_6.txt
+content/notarialDeed/notarialDeed_2.txt
+content/notarialDeed/notarialDeed_1.txt
+content/notarialDeed/notarialDeed_0.txt
+content/notarialDeed/notarialDeed_18.txt
+content/notarialDeed/notarialDeed_12.txt
+content/notarialDeed/notarialDeed_13.txt
+content/notarialDeed/notarialDeed_11.txt
+content/notarialDeed/notarialDeed_17.txt
+content/idCard/idCard_19.txt
+content/idCard/idCard_18.txt
+content/idCard/idCard_9.txt
+content/idCard/idCard_1.txt
+content/idCard/idCard_0.txt
+content/idCard/idCard_3.txt
+content/idCard/idCard_7.txt
+content/idCard/idCard_6.txt
+content/idCard/idCard_4.txt
+content/idCard/idCard_5.txt
+content/idCard/idCard_10.txt
+content/idCard/idCard_11.txt
+content/idCard/idCard_13.txt
+content/idCard/idCard_12.txt
+content/idCard/idCard_14.txt
+content/courtDocument/courtJudgment_17.txt
+content/courtDocument/courtJudgment_14.txt
+content/courtDocument/courtJudgment_15.txt
+content/courtDocument/lawsuit_19.txt
+content/courtDocument/courtJudgment_10.txt
+content/courtDocument/propertyDeed_13.txt
+content/courtDocument/courtJudgment_7.txt
+content/courtDocument/courtJudgment_6.txt
+content/courtDocument/courtJudgment_3.txt
+content/courtDocument/lawsuit_9.txt
+content/courtDocument/other_1.txt
+content/courtDocument/courtJudgment_1.txt
+content/courtDocument/courtJudgment_0.txt
+content/courtDocument/other_0.txt
+content/courtDocument/propertyDeed_14.txt
+content/courtDocument/lawsuit_5.txt
+content/courtDocument/lawsuit_4.txt
+content/courtDocument/lawsuit_6.txt
+content/courtDocument/lawsuit_3.txt
+content/courtDocument/lawsuit_2.txt
+content/courtDocument/lawsuit_0.txt
+content/courtDocument/other_17.txt
+content/courtDocument/lawsuit_12.txt
+content/courtDocument/lawsuit_11.txt
+content/courtDocument/lawsuit_10.txt
+content/courtDocument/lawsuit_14.txt
+content/courtDocument/courtJudgment_18.txt
+content/courtDocument/lawsuit_17.txt
+content/courtDocument/lawsuit_16.txt
+content/insurancePolicy/insurancePolicy_3.txt
+content/insurancePolicy/insurancePolicy_0.txt
+content/insurancePolicy/insurancePolicy_1.txt
+content/insurancePolicy/insurancePolicy_5.txt
+content/insurancePolicy/insurancePolicy_18.txt
+content/insurancePolicy/insurancePolicy_7.txt
+content/insurancePolicy/insurancePolicy_14.txt
+content/insurancePolicy/insurancePolicy_15.txt
+content/insurancePolicy/insurancePolicy_17.txt
+content/insurancePolicy/insurancePolicy_9.txt
+content/insurancePolicy/insurancePolicy_8.txt
+content/insurancePolicy/insurancePolicy_16.txt
+content/insurancePolicy/insurancePolicy_13.txt
+content/insurancePolicy/insurancePolicy_10.txt
+content/invoice/invoice_9.txt
+content/invoice/invoice_11.txt
+content/invoice/proformaInvoice_4.txt
+content/invoice/proformaInvoice_5.txt
+content/invoice/invoice_10.txt
+content/invoice/proformaInvoice_18.txt
+content/invoice/invoice_12.txt
+content/invoice/proformaInvoice_7.txt
+content/invoice/proformaInvoice_6.txt
+content/invoice/invoice_13.txt
+content/invoice/proformaInvoice_19.txt
+content/invoice/invoice_17.txt
+content/invoice/proformaInvoice_2.txt
+content/invoice/proformaInvoice_3.txt
+content/invoice/invoice_16.txt
+content/invoice/proformaInvoice_1.txt
+content/invoice/proformaInvoice_0.txt
+content/invoice/invoice_15.txt
+content/invoice/invoice_18.txt
+content/invoice/invoice_0.txt
+content/invoice/proformaInvoice_12.txt
+content/invoice/proformaInvoice_13.txt
+content/invoice/invoice_1.txt
+content/invoice/invoice_19.txt
+content/invoice/invoice_3.txt
+content/invoice/proformaInvoice_11.txt
+content/invoice/proformaInvoice_10.txt
+content/invoice/invoice_2.txt
+content/invoice/proformaInvoice_14.txt
+content/invoice/invoice_6.txt
+content/invoice/invoice_7.txt
+content/invoice/proformaInvoice_15.txt
+content/invoice/proformaInvoice_17.txt
+content/invoice/invoice_5.txt
+content/invoice/proformaInvoice_8.txt
+content/invoice/proformaInvoice_9.txt
+content/invoice/invoice_4.txt
+content/invoice/proformaInvoice_16.txt
diff --git a/titles/.DS_Store b/titles/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..bbcb39971324d40988171cd0e96080e1deed3651
Binary files /dev/null and b/titles/.DS_Store differ
diff --git a/type/.DS_Store b/type/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..174bb97ae9a8585a1507038ce8cfccda6e6629a0
Binary files /dev/null and b/type/.DS_Store differ