From 4db5b76501dda465560a6becb61e7a88cf86f47f Mon Sep 17 00:00:00 2001 From: SheetJS Date: Mon, 11 Sep 2023 00:44:15 -0400 Subject: [PATCH] synthetic-dom --- .../02-examples/02-export.mdx | 19 +- docz/docs/03-demos/01-frontend/08-bundler.md | 2 +- docz/docs/03-demos/03-net/09-dom.md | 195 ++++++++---- docz/docs/03-demos/05-mobile/04-ionic.md | 278 +++++++++++++++--- docz/docs/03-demos/05-mobile/05-capacitor.md | 2 +- docz/static/dom/SheetJSDOM.js | 11 + docz/static/dom/SheetJSHappyDOM.js | 23 ++ docz/static/dom/SheetJSXMLDOM.js | 20 ++ docz/static/flutter/ios.png | Bin 83999 -> 47522 bytes docz/static/ionic/home.page.ts | 4 +- 10 files changed, 440 insertions(+), 114 deletions(-) create mode 100644 docz/static/dom/SheetJSDOM.js create mode 100644 docz/static/dom/SheetJSHappyDOM.js create mode 100644 docz/static/dom/SheetJSXMLDOM.js diff --git a/docz/docs/02-getting-started/02-examples/02-export.mdx b/docz/docs/02-getting-started/02-examples/02-export.mdx index 4b88522..a4e737e 100644 --- a/docz/docs/02-getting-started/02-examples/02-export.mdx +++ b/docz/docs/02-getting-started/02-examples/02-export.mdx @@ -484,8 +484,14 @@ The data is in the workbook and can be exported. ![Rough export](pathname:///example/rough.png) There are multiple opportunities for improvement: the headers can be renamed and -the column widths can be adjusted. [SheetJS Pro](https://sheetjs.com/pro) offers -additional styling options like cell styling and frozen rows. +the column widths can be adjusted. + +:::tip pass + +[SheetJS Pro](https://sheetjs.com/pro) offers additional styling options like +cell styling and frozen rows. + +:::
Changing Header Names (click to show) @@ -957,10 +963,17 @@ of the React Native documentation before testing the demo. ::: +:::caution pass + +For Android testing, React Native requires Java 11. It will not work with +current Java releases. + +::: + Create a new project by running the following commands in the Terminal: {`\ -npx react-native@0.71 init SheetJSPres --version="0.72.0-rc.1" +npx -y react-native@0.72.4 init SheetJSPres --version="0.72.4" cd SheetJSPres \n\ npm i -S https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz react-native-blob-util@0.17.1`} diff --git a/docz/docs/03-demos/01-frontend/08-bundler.md b/docz/docs/03-demos/01-frontend/08-bundler.md index 2c652fc..fee1bf4 100644 --- a/docz/docs/03-demos/01-frontend/08-bundler.md +++ b/docz/docs/03-demos/01-frontend/08-bundler.md @@ -1266,7 +1266,7 @@ Access `http://localhost:8080` in your web browser and click the export button.
-:::note +:::note pass The [Vite section of the Content demo](/docs/demos/static/vitejs) covers asset loaders. They are ideal for static sites pulling data from sheets at build time. diff --git a/docz/docs/03-demos/03-net/09-dom.md b/docz/docs/03-demos/03-net/09-dom.md index 083c490..52d9797 100644 --- a/docz/docs/03-demos/03-net/09-dom.md +++ b/docz/docs/03-demos/03-net/09-dom.md @@ -5,10 +5,16 @@ title: Synthetic DOM import current from '/version.js'; import CodeBlock from '@theme/CodeBlock'; -`table_to_book` / `table_to_sheet` / `sheet_add_dom` act on HTML DOM elements. -Traditionally there is no DOM in server-side environments. +SheetJS offers three methods to directly process HTML DOM TABLE elements[^1]: -:::note +- `table_to_sheet` generates a SheetJS worksheet[^2] from a TABLE element +- `table_to_book` generates a SheetJS workbook[^3] from a TABLE element +- `sheet_add_dom` adds data from a TABLE element to an existing worksheet + +These methods work in the web browser. NodeJS and other server-side platforms +traditionally lack a DOM implementation, but third-party modules fill the gap. + +:::tip pass The most robust approach for server-side processing is to automate a headless web browser. ["Browser Automation"](/docs/demos/net/headless) includes demos. @@ -17,23 +23,60 @@ web browser. ["Browser Automation"](/docs/demos/net/headless) includes demos. This demo covers synthetic DOM implementations for non-browser platforms. +## Integration Details + +SheetJS API methods use DOM features that may not be available. + +### Table rows + +The `rows` property of TABLE elements is a list of TR row children. This list +automatically updates when rows are added and deleted. + +SheetJS does not mutate `rows`. Assuming there are no nested tables, the `rows` +property can be created using `getElementsByTagName`: + +```js +tbl.rows = Array.from(tbl.getElementsByTagName("tr")); +``` + +### Row cells + +The `cells` property of TR elements is a list of TD cell children. This list +automatically updates when cells are added and deleted. + +SheetJS does not mutate `cells`. Assuming there are no nested tables, the +`cells` property can be created using `getElementsByTagName`: + +```js +tbl.rows.forEach(row => row.cells = Array.from(row.getElementsByTagName("td"))); +``` + ## NodeJS ### JSDOM -JSDOM is a DOM implementation for NodeJS. Given an HTML string, a reference to -the table element plays nice with the SheetJS DOM methods: +JSDOM is a DOM implementation for NodeJS. The synthetic DOM elements are +compatible with SheetJS methods. -```js +The following example scrapes the first table from the file `SheetJSTable.html` +and generates a XLSX workbook: + +```js title="SheetJSDOM.js" const XLSX = require("xlsx"); +const { readFileSync } = require("fs"); const { JSDOM } = require("jsdom"); -/* parse HTML */ -const dom = new JSDOM(html_string); +/* obtain HTML string. This example reads from SheetJSTable.html */ +const html_str = readFileSync("SheetJSTable.html", "utf8"); + +// highlight-start /* get first TABLE element */ -const tbl = dom.window.document.querySelector("table"); +const doc = new JSDOM(html_str).window.document.querySelector("table"); + /* generate workbook */ -const workbook = XLSX.utils.table_to_book(tbl); +const workbook = XLSX.utils.table_to_book(doc); +// highlight-end + XLSX.writeFile(workbook, "SheetJSDOM.xlsx"); ``` @@ -41,7 +84,7 @@ XLSX.writeFile(workbook, "SheetJSDOM.xlsx"); :::note -This demo was last tested on 2023 May 18 against JSDOM `22.0.0` +This demo was last tested on 2023 September 10 against JSDOM `22.1.0` ::: @@ -51,21 +94,7 @@ This demo was last tested on 2023 May 18 against JSDOM `22.0.0` npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz jsdom@22.0.0`} -2) Save the following script to `SheetJSDOM.js`: - -```js title="SheetJSDOM.js" -const XLSX = require("xlsx"); -const { readFileSync } = require("fs"); -const { JSDOM } = require("jsdom"); - -/* obtain HTML string. This example reads from SheetJSTable.html */ -const html_str = readFileSync("SheetJSTable.html", "utf8"); -/* get first TABLE element */ -const doc = new JSDOM(html_str).window.document.querySelector("table"); -/* generate workbook */ -const workbook = XLSX.utils.table_to_book(doc); -XLSX.writeFile(workbook, "SheetJSDOM.xlsx"); -``` +2) Save the previous codeblock to `SheetJSDOM.js`. 3) Download [the sample `SheetJSTable.html`](pathname:///dom/SheetJSTable.html): @@ -83,48 +112,79 @@ The script will create a file `SheetJSDOM.xlsx` that can be opened. -### XMLDOM +### HappyDOM -XMLDOM provides a DOM framework for NodeJS. Given an HTML string, a reference to -the table element works with the SheetJS DOM methods after patching the object. +HappyDOM provides a DOM framework for NodeJS. For the tested version (`11.0.2`), +the following patches were needed: + +- TABLE `rows` property (explained above) +- TR `cells` property (explained above)
Complete Demo (click to show) :::note -This demo was last tested on 2023 May 18 against XMLDOM `0.8.7` +This demo was last tested on 2023 September 10 against HappyDOM `11.0.2` + +::: + +1) Install SheetJS and HappyDOM libraries: + +{`\ +npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz happy-dom@11.0.2`} + + +2) Download [the sample script `SheetJSHappyDOM.js`](pathname:///dom/SheetJSHappyDOM.js): + +```bash +curl -LO https://docs.sheetjs.com/dom/SheetJSHappyDOM.js +``` + +3) Run the script: + +```bash +node SheetJSHappyDOM.js +``` + +The script will create a file `SheetJSHappyDOM.xlsx` that can be opened. + +
+ +### XMLDOM + +XMLDOM provides a DOM framework for NodeJS. For the tested version (`0.8.10`), +the following patches were needed: + +- TABLE `rows` property (explained above) +- TR `cells` property (explained above) +- Element `innerHTML` property: + +```js +Object.defineProperty(tbl.__proto__, "innerHTML", { get: function() { + var outerHTML = new XMLSerializer().serializeToString(this); + if(outerHTML.match(/]*(("[^"]*"|'[^']*')[^"'>]*)*>/, ""); +}}); +``` + +
Complete Demo (click to show) + +:::note + +This demo was last tested on 2023 September 10 against XMLDOM `0.8.10` ::: 1) Install SheetJS and XMLDOM libraries: {`\ -npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz @xmldom/xmldom@0.8.7`} +npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz @xmldom/xmldom@0.8.10`} -2) Save the following codeblock to `SheetJSXMLDOM.js`: +2) Download [the sample script `SheetJSXMLDOM.js`](pathname:///dom/SheetJSXMLDOM.js): -```js title="SheetJSXMLDOM.js" -const XLSX = require("xlsx"); -const { DOMParser, XMLSerializer } = require("@xmldom/xmldom"); - -(async() => { -const text = await (await fetch('https://docs.sheetjs.com/dom/SheetJSTable.html')).text(); -const doc = new DOMParser().parseFromString( text, "text/html"); -const tbl = doc.getElementsByTagName("table")[0]; - -/* patch XMLDOM */ -tbl.rows = Array.from(tbl.getElementsByTagName("tr")); -tbl.rows.forEach(row => row.cells = Array.from(row.getElementsByTagName("td"))) -Object.defineProperty(tbl.__proto__, "innerHTML", { get: function() { - var outerHTML = new XMLSerializer().serializeToString(this); - if(outerHTML.match(/]*(("[^"]*"|'[^']*')[^"'>]*)*>/, ""); -}}); - -const workbook = XLSX.utils.table_to_book(tbl); -XLSX.writeFile(workbook, "SheetJSXMLDOM.xlsx"); -})(); +```bash +curl -LO https://docs.sheetjs.com/dom/SheetJSXMLDOM.js ``` 3) Run the script: @@ -135,28 +195,26 @@ node SheetJSXMLDOM.js The script will create a file `SheetJSXMLDOM.xlsx` that can be opened. -
### CheerioJS -:::caution +:::caution pass Cheerio does not support a number of fundamental properties out of the box. They can be shimmed, but it is strongly recommended to use a more compliant library. ::: -CheerioJS provides a DOM-like framework for NodeJS. Given an HTML string, a -reference to the table element works with the SheetJS DOM methods with some -prototype fixes. [`SheetJSCheerio.js`](pathname:///dom/SheetJSCheerio.js) is a -complete script. +CheerioJS provides a DOM-like framework for NodeJS. Many features were missing. +[`SheetJSCheerio.js`](pathname:///dom/SheetJSCheerio.js) implements the missing +features to ensure that SheetJS DOM methods can process TABLE elements.
Complete Demo (click to show) :::note -This demo was last tested on 2023 May 18 against Cheerio `1.0.0-rc.12` +This demo was last tested on 2023 September 10 against Cheerio `1.0.0-rc.12` ::: @@ -192,8 +250,11 @@ The script will create a file `SheetJSCheerio.xlsx` that can be opened. ### DenoDOM -DenoDOM provides a DOM framework for Deno. Given an HTML string, a reference to -the table element works with the SheetJS DOM methods after patching the object. +DenoDOM provides a DOM framework for Deno. For the tested version (`0.1.38`), +the following patches were needed: + +- TABLE `rows` property (explained above) +- TR `cells` property (explained above) This example fetches [a sample table](pathname:///dom/SheetJSTable.html): @@ -220,11 +281,11 @@ const workbook = XLSX.utils.table_to_book(tbl); XLSX.writeFile(workbook, "SheetJSDenoDOM.xlsx");`} -
Complete Demo (click to hide) +
Complete Demo (click to show) :::note -This demo was last tested on 2023 May 18 against DenoDOM `0.1.38` +This demo was last tested on 2023 September 10 against DenoDOM `0.1.38` ::: @@ -238,4 +299,8 @@ deno run --allow-net --allow-write SheetJSDenoDOM.ts The script will create a file `SheetJSDenoDOM.xlsx` that can be opened. -
\ No newline at end of file +
+ +[^1]: See ["HTML Table Input" in "Utilities"](/docs/api/utilities/html#html-table-input) +[^2]: See ["Worksheet Object" in "SheetJS Data Model"](/docs/csf/book) for more details. +[^3]: See ["Workbook Object" in "SheetJS Data Model"](/docs/csf/book) for more details. diff --git a/docz/docs/03-demos/05-mobile/04-ionic.md b/docz/docs/03-demos/05-mobile/04-ionic.md index 8369cbb..c5d7b37 100644 --- a/docz/docs/03-demos/05-mobile/04-ionic.md +++ b/docz/docs/03-demos/05-mobile/04-ionic.md @@ -1,5 +1,7 @@ --- -title: Ionic +title: Data Conduction in Ionic Apps +sidebar_label: Ionic +description: Build data-intensive mobile apps with Ionic and Cordova. Seamlessly integrate spreadsheets into your app using SheetJS. Let data in your Excel spreadsheets shine. pagination_prev: demos/static/index pagination_next: demos/desktop/index sidebar_position: 4 @@ -10,10 +12,17 @@ sidebar_custom_props: import current from '/version.js'; import CodeBlock from '@theme/CodeBlock'; -The [NodeJS Module](/docs/getting-started/installation/nodejs) can be imported -from the main entrypoint or any script in the project. +[Ionic](https://ionicframework.com/) is a mobile app framework for building iOS +and Android apps with the Cordova platform. -The "Complete Example" creates an app that looks like the screenshots below: +[SheetJS](https://sheetjs.com) is a JavaScript library for reading and writing +data from spreadsheets. + +This demo uses Ionic and SheetJS to process data and generate spreadsheets. +We'll explore how to load SheetJS in an Ionic app and use Ionic APIs and plugins +to extract data from, and write data to, spreadsheet files on the device. + +The ["Demo"](#demo) creates an app that looks like the screenshots below: @@ -28,6 +37,13 @@ The "Complete Example" creates an app that looks like the screenshots below:
iOS
+:::info pass + +This demo covers Ionic apps using the Cordova platform. + +The [CapacitorJS demo](/docs/demos/mobile/capacitor) covers CapacitorJS apps. + +::: :::warning Telemetry @@ -57,18 +73,36 @@ npx @capacitor/cli telemetry ## Integration Details -:::caution pass +The [SheetJS NodeJS Module](/docs/getting-started/installation/nodejs) can be +imported from the main entrypoint or any script in the project. -The latest version of Ionic uses CapacitorJS. These notes are for Cordova apps. -The [CapacitorJS demo](/docs/demos/mobile/capacitor) covers CapacitorJS apps. +### Internal State -::: +The ["Angular" demo](/docs/demos/frontend/angular) discusses a number of state +representations and preview strategies. -### Angular +For this demo, the internal state is an "array of arrays"[^1] (`any[][]`): -`Array>` neatly maps to a table with `ngFor`: +```ts title="Array of Arrays state" +import { Component } from '@angular/core'; +type AOA = any[][]; -```html +@Component({...}) +export class SheetJSTablePage { + data: AOA = [ + ["S", "h", "e", "e", "t", "J", "S"], + [ 5, 4, 3, 3, 7, 9, 5] + ]; + // ... +} +``` + +### Displaying Data + +`ion-grid`[^2] is a display grid component. The Angular `ngFor` directive[^3] +simplifies iteration over the array of arrays: + +```html title="Template for displaying an array of arrays" @@ -78,29 +112,62 @@ The [CapacitorJS demo](/docs/demos/mobile/capacitor) covers CapacitorJS apps. ``` -### Cordova +### File Operations -`@ionic-native/file` reads and writes files on devices. +`@awesome-cordova-plugins/file` reads and writes files on devices. -_Reading Files_ +:::info pass -`readAsArrayBuffer` returns `ArrayBuffer` objects suitable for `array` type: +The plugins in the `@ionic-native` scope have been deprecated. The community +modules in the `@awesome-cordova-plugins` scope should be used. + +::: + +#### Reading Files + +`this.file.readAsArrayBuffer` reads file data from a specified URL and resolves +to `ArrayBuffer` objects. + +These objects can be parsed with the SheetJS `read` method[^4]. The SheetJS +`sheet_to_json` method[^5] with the option `header: 1` generates an array of +arrays which can be assigned to the page state: ```ts -/* read a workbook */ +/* read a workbook file */ const ab: ArrayBuffer = await this.file.readAsArrayBuffer(url, filename); +/* parse */ const wb: XLSX.WorkBook = XLSX.read(ab, {type: 'array'}); +/* generate an array of arrays from the first worksheet */ +const ws: XLSX.WorkSheet = wb.SheetNames[wb.Sheets[0]]; +const aoa: AOA = XLSX.utils.sheet_to_json(ws, {header: 1}); +/* update state */ +this.data = aoa; ``` -_Writing Files_ +#### Writing Files -`array` type can be converted to blobs that can be exported with `writeFile`: +`this.file.writeFile` writes file data stored in `Blob` objects to the device. +From the array of arrays, the SheetJS `aoa_to_sheet` method[^6] generates a +worksheet object. The `book_new` and `book_append_sheet` helpers[^7] generate a +workbook object. The SheetJS `write` method[^8] with the option `type: "array"` +will generate an `ArrayBuffer`, from which a `Blob` can be created: ```ts -/* write a workbook */ -const wbout: ArrayBuffer = XLSX.write(wb, { bookType: 'xlsx', type: 'array' }); -let blob = new Blob([wbout], {type: 'application/octet-stream'}); +/* generate worksheet */ +const ws: XLSX.WorkSheet = XLSX.utils.aoa_to_sheet(this.data); + +/* generate workbook and add the worksheet */ +const wb: XLSX.WorkBook = XLSX.utils.book_new(); +XLSX.utils.book_append_sheet(wb, ws, 'SheetJS'); + +/* write XLSX to ArrayBuffer */ +const ab: ArrayBuffer = XLSX.write(wb, { bookType: 'xlsx', type: 'array' }); + +/* generate Blob */ +let blob = new Blob([ab], {type: 'application/octet-stream'}); + +/* write Blob to device */ this.file.writeFile(url, filename, blob, {replace: true}); ``` @@ -108,47 +175,72 @@ this.file.writeFile(url, filename, blob, {replace: true}); :::note -This demo was tested on an Intel Mac on 2023 March 28 with Cordova. -The file integration uses `@ionic-native/file` version `5.36.0`. +The project was last tested in 2023 September 10. `ionic info` showed: -The iOS simulator runs iOS 15.5 on an iPhone SE (3rd Generation). +- Ionic: `@ionic/angular 7.3.3`, `@ionic/angular-toolkit 9.0.0` +- Cordova: `cordova-lib@12.0.1`, `android 12.0.1, ios 7.0.1` -The Android simulator runs Android 12.0 (S) API 31 on a Pixel 3. +The file integration uses `@awesome-cordova-plugins/file` version `6.4.0`. + +The iOS demo was last tested on 2023 September 10 on an emulated iPhone SE +(3rd generation) + iOS 16.4 + +The Android demo was last tested on 2023 September 10 on an emulated Pixel 3 + +Android 13 ("Tiramisu") API 33. ::: +The app in this demo will display data in a table. + +On load, a [test file](https://sheetjs.com/pres.numbers) will be processed. + +When a document is selected with the file picker, it will be processed and the +table will refresh to show the contents. + +"Import Data" will attempt to read `SheetJSIonic.xlsx` from a known location. An +alert will display the expected location. + +"Export Data" will attempt to export the table data to `SheetJSIonic.xlsx` in a +known location. After writing, an alert will display the location of the file. + + +### Platform Setup + 0) Disable telemetry as noted in the warning. -Install required global dependencies: +1) Follow the official instructions for iOS and Android development[^9]. + +2) Install required global dependencies: ```bash npm i -g cordova-res @angular/cli native-run @ionic/cli ``` -Follow the [React Native demo](/docs/demos/mobile/reactnative) to ensure iOS and Android sims are ready. +### Base Project - -1) Create a new project: +3) Create a new project: ```bash ionic start SheetJSIonic blank --type angular --cordova --quiet --no-git --no-link --confirm ``` +When asked to select `NgModules` or `Standalone Components`, select `NgModules` + If a prompt asks to confirm Cordova use, enter `Yes` to continue. If a prompt asks about creating an Ionic account, enter `N` to opt out. -2) Set up Cordova: +4) Set up Cordova: ```bash cd SheetJSIonic ionic cordova plugin add cordova-plugin-file ionic cordova platform add ios --confirm ionic cordova platform add android --confirm -npm i --save @ionic-native/core @ionic-native/file @ionic/cordova-builders +npm i --save @awesome-cordova-plugins/core @awesome-cordova-plugins/file @ionic/cordova-builders ``` -:::note +:::note pass If `cordova-plugin-file` is added before the platforms, installation may fail: @@ -165,9 +257,9 @@ ionic cordova platform add ios --confirm ::: -:::caution +:::caution pass -If the `npm i` fails due to `rxjs` resolution, add the highlighted lines +If the `npm i` step fails due to `rxjs` resolution, add the highlighted lines to `package.json` to force a resolution: ```js title="package.json" @@ -180,24 +272,26 @@ to `package.json` to force a resolution: "dependencies": { ``` +Note that the required `rxjs` version will be displayed in the error log. + After adding the lines, the `npm i` command will succeed. ::: -3) Install dependencies: +5) Install dependencies: {`\ npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} -4) Add `@ionic-native/file` to the module. Differences highlighted below: +6) Add `@awesome-cordova-plugins/file` to the module. Differences highlighted below: ```ts title="src/app/app.module.ts" import { AppComponent } from './app.component'; import { AppRoutingModule } from './app-routing.module'; // highlight-next-line -import { File } from '@ionic-native/file/ngx'; +import { File } from '@awesome-cordova-plugins/file/ngx'; @NgModule({ declarations: [AppComponent], @@ -210,19 +304,41 @@ import { File } from '@ionic-native/file/ngx'; export class AppModule {} ``` -5) Download [`home.page.ts`](pathname:///ionic/home.page.ts) and replace: +7) Download [`home.page.ts`](pathname:///ionic/home.page.ts) and replace: ```bash curl -o src/app/home/home.page.ts -L https://docs.sheetjs.com/ionic/home.page.ts ``` -**iOS Testing** +### iOS + +8) Enable file sharing and make the documents folder visible in the iOS app. +Add the following lines to `platforms/ios/SheetJSIonic/SheetJSIonic-Info.plist`: + +```xml title="platforms/ios/SheetJSIonic/SheetJSIonic-Info.plist (add to file)" + + + + UIFileSharingEnabled + + LSSupportsOpeningDocumentsInPlace + + + CFBundleDevelopmentRegion +``` + +(The root element of the document is `plist` and it contains one `dict` child) + +9) Build the app and start the simulator ```bash ionic cordova emulate ios ``` -:::caution +When the app is loaded, a list of Presidents should be displayed. This list is +dynamically generated by fetching and parsing a test file. + +:::caution pass In some test runs, the `cordova build ios --emulator` step failed with error: @@ -239,13 +355,54 @@ npm i --save cordova-ios ::: -**Android Testing** +:::info pass + +In the most recent test, the `native-run ios` command failed with + +``` +[native-run] ERR_UNKNOWN: Path 'platforms/ios/build/emulator/SheetJSIonic.app' not found +``` + +Inspecting `platforms/ios/build/`, the actual folder name was: + +```bash +% ls platforms/ios/build +#highlight-next-line +Debug-iphonesimulator +``` + +The iOS simulator can be launched manually: + +```bash +native-run ios --app platforms/ios/build/Debug-iphonesimulator/SheetJSIonic.app --virtual +``` + +::: + +### Android + +10) Enable file reading and writing in the Android app. + +Edit `platforms/android/app/src/main/AndroidManifest.xml` and add the following +two lines before the `application` tag: + +```xml title="platforms/android/app/src/main/AndroidManifest.xml (add to file)" + + +``` + +In the `application` tag, add the attribute `android:requestLegacyExternalStorage="true"`. + +11) Build the app and start the emulator ```bash ionic cordova emulate android ``` -:::caution +When the app is loaded, a list of Presidents should be displayed. This list is +dynamically generated by fetching and parsing a test file. + +:::caution pass In some test runs, `cordova build android --emulator` step failed with error: @@ -260,3 +417,40 @@ npm i --save cordova-android ``` ::: + +:::caution pass + +In some tests, the build failed with a Gradle error: + +``` +Could not find an installed version of Gradle either in Android Studio, +or on your system to install the gradle wrapper. Please include gradle +in your path or install Android Studio +``` + +On macOS, this issue was resolved by installing gradle with Homebrew manager: + +```bash +brew install gradle +``` + +::: + +:::warning pass + +When the demo was last tested on Android, reading files worked as expected. +However, the generated files were not externally visible from the Files app. + +**This is a known bug with Android SDK 33 and the underlying file plugins!** + +::: + +[^1]: See ["Array of Arrays" in the API reference](/docs/api/utilities/array#array-of-arrays) +[^2]: See [`ion-grid`](https://ionicframework.com/docs/api/grid) in the Ionic documentation. +[^3]: See [`ngFor`](https://angular.io/api/common/NgFor) in the Angular documentation. +[^4]: See [`read` in "Reading Files"](/docs/api/parse-options) +[^5]: See ["Array Output" in "Utility Functions"](/docs/api/utilities/array#array-output) +[^6]: See [`aoa_to_sheet` in "Utilities"](/docs/api/utilities/array#array-of-arrays-input) +[^7]: See ["Workbook Helpers" in "Utilities"](/docs/api/utilities/wb) for details on `book_new` and `book_append_sheet`. +[^8]: See [`write` in "Writing Files"](/docs/api/write-options) +[^9]: See ["Developing for iOS"](https://ionicframework.com/docs/v6/developing/ios) and ["Developing for Android"](https://ionicframework.com/docs/v6/developing/android) in the v6 Ionic framework documentation. \ No newline at end of file diff --git a/docz/docs/03-demos/05-mobile/05-capacitor.md b/docz/docs/03-demos/05-mobile/05-capacitor.md index d7252b3..bd26b1c 100644 --- a/docz/docs/03-demos/05-mobile/05-capacitor.md +++ b/docz/docs/03-demos/05-mobile/05-capacitor.md @@ -200,7 +200,7 @@ after the `Permissions` comment: - + diff --git a/docz/static/dom/SheetJSDOM.js b/docz/static/dom/SheetJSDOM.js new file mode 100644 index 0000000..7120a54 --- /dev/null +++ b/docz/static/dom/SheetJSDOM.js @@ -0,0 +1,11 @@ +const XLSX = require("xlsx"); +const { readFileSync } = require("fs"); +const { JSDOM } = require("jsdom"); + +/* obtain HTML string. This example reads from SheetJSTable.html */ +const html_str = readFileSync("SheetJSTable.html", "utf8"); +/* get first TABLE element */ +const doc = new JSDOM(html_str).window.document.querySelector("table"); +/* generate workbook */ +const workbook = XLSX.utils.table_to_book(doc); +XLSX.writeFile(workbook, "SheetJSDOM.xlsx"); \ No newline at end of file diff --git a/docz/static/dom/SheetJSHappyDOM.js b/docz/static/dom/SheetJSHappyDOM.js new file mode 100644 index 0000000..5c1c6e0 --- /dev/null +++ b/docz/static/dom/SheetJSHappyDOM.js @@ -0,0 +1,23 @@ +const XLSX = require("xlsx"); +const { readFileSync } = require("fs"); +const { Window } = require("happy-dom"); + +/* obtain HTML string. This example reads from SheetJSTable.html */ +const html_str = readFileSync("SheetJSTable.html", "utf8"); + +/* get table element */ +const window = new Window({ + url: "https://localhost:8080", + width: 1024, + height: 768 +}); +window.document.body.innerHTML = html_str; +const tbl = window.document.body.getElementsByTagName("table")[0]; + +/* add `rows` and `cells` properties */ +tbl.rows = Array.from(tbl.getElementsByTagName("tr")); +tbl.rows.forEach(row => row.cells = Array.from(row.getElementsByTagName("td"))) + +/* generate workbook */ +const workbook = XLSX.utils.table_to_book(tbl); +XLSX.writeFile(workbook, "SheetJSHappyDOM.xlsx"); \ No newline at end of file diff --git a/docz/static/dom/SheetJSXMLDOM.js b/docz/static/dom/SheetJSXMLDOM.js new file mode 100644 index 0000000..dc53342 --- /dev/null +++ b/docz/static/dom/SheetJSXMLDOM.js @@ -0,0 +1,20 @@ +const XLSX = require("xlsx"); +const { DOMParser, XMLSerializer } = require("@xmldom/xmldom"); + +(async() => { +const text = await (await fetch('https://docs.sheetjs.com/dom/SheetJSTable.html')).text(); +const doc = new DOMParser().parseFromString( text, "text/html"); +const tbl = doc.getElementsByTagName("table")[0]; + +/* patch XMLDOM */ +tbl.rows = Array.from(tbl.getElementsByTagName("tr")); +tbl.rows.forEach(row => row.cells = Array.from(row.getElementsByTagName("td"))); +Object.defineProperty(tbl.__proto__, "innerHTML", { get: function() { + var outerHTML = new XMLSerializer().serializeToString(this); + if(outerHTML.match(/]*(("[^"]*"|'[^']*')[^"'>]*)*>/, ""); +}}); + +const workbook = XLSX.utils.table_to_book(tbl); +XLSX.writeFile(workbook, "SheetJSXMLDOM.xlsx"); +})(); \ No newline at end of file diff --git a/docz/static/flutter/ios.png b/docz/static/flutter/ios.png index c5ba8b788388610e6c54e862618939d8c5126f0b..9b5e8c3a4278121b3011f216d8be64a6ca636601 100644 GIT binary patch literal 47522 zcmeFZRaBhK(gsR!*Wm8%!9BRUYtZ2C?gW>?f+V=RySoKtOe}MpgCo+;yk_7?rpa22!3jzUo1ZMdifPgqNfq)ztfPiqPfPi4yr8g_` z0t*yOG$c)BWkG0wX=o7852zquz|;reA4sS<2>72g2netz;0NsIhyRrR1pS{<(9@q_ z|C9c3{a&$H!gB#gD66@OhLeV@47ZW3HNzKUTSF5DH*3513Lw00+`y!@iPIM%H)|^! zM{YMhl0P-Lf$8^bMiQbwRh%sONHk;>h=gq&Oo-SSm>8Hy_+g2NhGU`tCN!*HzT8~t1E*mD}$|r86z_n7Z)QF3nL2)J+KD7qq~jM7dLtvN78?F@<08E zm^d0anA2gvwd!pO|P#Q1;L z%*ovJ|DoA?$-kQY8P~sF$NSzHw}QEwiIt{^xwVOnBak$HW>(fuyno*Fe<}J8rGGWm z_)k*~Hm1K@{#EjSZYgYQW$U19_r=JBpZVWS{>u8R_B-L+@($)Ez&U-Nx%cY-m%M-1 z=Vg4K*1x9tUp)Mi3uGccEHC3f0>KYEdOuDC0wM?^DI%oe_ThI1L^}E`=D@_%D%~pZ zLj$R?fbR>A&IFB)5}^W5ry>$tU3HLjYU7{R!t;9Pnw*-E{Is@ww>Iwi#N(Az#KY0f zYP&buw4aGPZK*wR{F(RzD$!q0C7ZuWeK|g@I4GImU(Zh%1^fM|zjFjZQ3U4PxD)YQQG|FQKYfK#N&U1$K;G){$j%UrDu`FB59^mU z5q&5gQ|HgP>m`h_EQxd6%2|#XPS0|jjj)JG=SliSpU$SQX8vlyTI3{7zOUSBv#rT$ zxk0y@5E^t)#!BX$bgfkBAw;dzQVFoolu`((*?7i28xP}{p=#;mBRx$5RfXfEbXS9B25X8g8$k{0@L^;Y6@|GPpd5)wgD6a@lpT_PW2^mv2|U-rdAMY>!@crabBDadWJ1&@(<$#>0u!J_^M+Dd8WA?*k!hj<2n&O^z_Etp}1R z0iMF=%zhQ^woASx`rUZF7O|W0;CL{C_OEx-5Y-zs5DbLf(bQ=5F5~Oe%llTzmkogA z&up;dc#T!2s^QWNbo5-|#;%e^za^5n+Nz3^D{Ess?MlOwkk=#BvL#`PT;x>~#Ss_l z+#2W}4dXgfs=rJ@QWw&#)q#DIn(@w#WxPD9ugS5FI-`5Hom^VcHWKdX%YQ}a(sP&Ol zTA6=tRnwf_c3M1HvnfcF3=OA(AYe>fp#dLHkrNnv6kz|#5mox2+oFX(E}ex7B)4^& z2fusJfG9=+GJL&`C>J|SJL*R(G8?sO>?DjA{p>-E!itOcJ9s9I zTxXsFflHboXcrMO;ickYlq$3sbm^)KN)ChAYGiY^kD02xnQ4S&Hlwp#{8qc+wSz7s z!F3{!+ig*A1WcT4z1%tt?Lb+4{%RWM41#Vc?LhfQrw@d0XDP<&jDuc@m(ma>Ri9U+ zOE&V@+TK3#fn@2v)mIBU!`Ldusoj<>(at6^dXGU_9_(29XwkMLsy4+JtG9jOW)P*s>GCV0oK2U#+)H*9GSKY(5}6RHH`== zAc}G2tSnr*^X+wkk;N*(=rn!l>q?1bx2>N<0d1|~Y=3Gr7wumlY%F(EUP0-eC0uMW zC`fG;+K0@aviaRxQ(o(l)KvzNEJbuS0V-Lq564Ipj$d9($NXRoH1mG#G{Q&N3ME;jb1z0g!ld zA75tqc5P2POghIL9OQ+k8J9ULwIA%|kJyL2!nPy8VR-=;dFu>uJRObF;WT}-v9vS< zd(G=}mb6OdYzjvOWGhlSAyoXjH_O>ms;8iFpL7b;?gk?vv=Bg`13 zmf+3vGCdC2kCuKBbLkDXV4TLw`dUxTgA8+c&1dbHjixGIst;4{E+?xKV)c<3MMpmB zL>jd3AGff<-RtP8;Z2v=+(QlU3FfW(GjK={`3v^rVP9*+ULI`|Z2fLeie>RBbL-h! z3ahfdb*U>YC9!PsLH@y$v@v2G1qw#%+&p@*t(JbpR*ztUshEAKI%xLWMPm!wU@)#s zJaU$d(b=8Jw8(Y5%NYuSkOE76n~n`|VZ4h(3$YCvZN)?4F12qjm+ie#g*J(9K;-|$ z|BoV2M|G0#npe5@@l*Rca{Wjemi|=P>U{E zSJ$=RQ&Mi4-I-ghs?^Kj!BB*1ruUres|FXnxx=J9j0tf#88&ytYfRuA`Mi7et$gd& z;wOd}ZjU@~mD}Fn(?Egm)J=ETh8EK73?ayq3dcpjCY&))JDnF@OJZPMv(Uk)rwcjw zVP83pHL;!N?>v54m5EzmhdOyDd9{hC6(*A`g`e7$7~uL+ZpjV$4o}=3C6*{%`Qs?v z6*cF>A@GA5e9+-`DB^v*BGsB~*y{prYyRM%bL;xudJ~pz1QhJi19pjBjYNZ`A8NoS zc)VhbS|zI>)UdAdJF~xI%q0 zSR<0NRqZ|Ja)R68(T!t%^F3!7fuFyAVl6A8BHzOj)2IE{dNC85^D%J7zPB;2xn}7*!RMlEEuEHp3T>q%hG%y);UfJkomjOf zefowY{~nWT>NiZlZ*+D=2m^sm}XbtQH;6H@?q(sX?pQlz&<_TFXFJ-z&^4WHq zY!%hYhcu}leWr5C%>lmLh1$4|1uES{`AxCygX&p1&6PkjQeVh9 zKrIJ$DYS|myEv+s} zu-bvJlpD$?zuEJ@xtR0bPN^z&sd)02@3*IuW@Fqa)-gfaHTqT z3;A?7CvvJzjDeCl8`go?)0=DKd+?QEZpl!vc+#j*4dGN|K?9yQ)RWj_Ys1tGT~{rD zC+{Y9z!?hy`3A%niwTJXgKE<;WRz`!dUB?Yqm#E#t$3}B!b5pN?wZ7)-b`6V_g4aJ zk(+j(UlhNokIuVO<_}F7OA}Sn5Y|8eVP!usS{SSBDepeAzHj6viMQgWAVHrA@`!wo&dzs8jVSHPCfV9mcZlH|9S<_Q{rZu&$3)gx=xz!Q-7(z)67x!Mdd!n{ z{?)^rwZRRm<2^KY(|#_V>W!%F2fb6bL!1EToj^%NUeP?} zDF;cQ!Oso4pD54KKWbn|+E}6qwb9cZeI5%f^lkkP(quQ}IFk4vs`aI3dFSpl!O2Z( zv^P|s#DM7$(5_rJRZ2SC$+(KtwLtXj9={Yb#}b8^In}va(CCo*ATN8?CPjU8pczbL zoVVEy#(@p{t|7U`pv*@P=|e0GLzoyJXivrNaj5EcpM>RInBCQazG5mYeRu1g?iI=&00fF zg=Af1cyy?8De?#P^DnuJIu*%VMf-Y6>Cc4XrZX0DBnz}R^qJ%!#lYd$TrsG+ie_02 zX75$2#bxaZR<~w)1Z-1VmwxcpdzGp!*=IWcEOz97wJ{>1Cke|6?ZosqMC`*a7i6O8 zY&6hVX7(dMv7>r-;$q`ra#fqLP4jQXLDg0+9Q*{Sd7DoP>z^N$nWj#am33o0-CCpV z0*VZz*=UQP{JXy+y$xWWjoLkJT{htPPT|(rY^Fc8AMf1G9MhD3j(n5}U^L?dSGyGV z^%fb35d(ycJHG9+{F>K7qPjw8`Sel5^}g_SAfWN#F6!u`0;i;9yAI_CREZ$JBfRw2 zai`t(?Cjw}|C1>FuYf_A^3ch&5TVD=2D~}`V>?$z0`Z{py8A%sv8s##GE4tbQ$We; zaItmRMLK)Ew{E>>Nm=SA-K2ZWhz>sILc(r|Ze6GZ`Y%ca^vd-IUL~v2mMt(Tw7_8t z5&4yis-Hy?8RG@eDa^YStyIPP$l)xv(}Ah2IATmtyASW6P{kk5(s|o0o>NrT0=@CJ3jvOwe5?zK}fE!PStoa*i8#hD$E0y0V+g_&l2GXC^!K5m7M z8*+j-2LWQJSx%7N_6be8P;7HhMK3+QyLiNN+hmsofAV8N&@7Tl&mkLp7L11;#@4Me zbUd9eOl!s-Z->qII#OJ&m`3?j7{o(Y<7NeTX=4sikX`!gt&`^SjUj#vrv2>dP%s+i^^Snu=GR|b zdgkKXy`UigH86<`2pd+lk+`c11)Kc}B|+L#?E-6i9urQ;#I6|L!0?Ooj%uUYG=;g5 zVy~P6qhVZSlWl$68(9mDT{|P9DcP2WWeWk<*6XtU;A)@IG;k$uf0-ogb7YS>_e=7| z(yl&4)>sk%9f|rE0+^Cg#W{0Q3&3m#zBveu!r#JlnQ#ooad@DQ zK!sL`3N4k$B-;tXY!UTEujQT}hJToT!mtcJ55RF;NAeI;plT95CWo)3(I8!`FxzcR z+#{3X#8h(&lI#g08zN5eMrYI={S@xjtLEPa$GkQmz}`i^709MrI8Vv{kb@&wFUQ&q zg~IPt30`xPFb5Z{40Iy9r9m9Eh`8ZRwc4IaT6&8IaoLKTdY0fhFoTkU*>J$vQGR%@ ziC>uBBhv6G04jN5U8xRoto+3PzQoB4f zhuGI!Gax1MN4_-V-#;e96)+rO-&OaUCQi{yA1j#6Id)e?V~g7=Uc|k5J;;~k_896` ziV+Ka3TvaiJ4AvLk&zhJI6!!v7rbRyr=|It28VjTp2HFJ4&(TMR#Nc{=r_!PvdW$* ze<4C)gR3EU%cID0#NgGoRZZyMub5`IX4xuWzI*bbDYSdGWBJisS}nE4fkz@iU;%elrGblz72(|uY2-9Dp-%A zxKoxZj(df?D4L3eblOwVr60Z({fShOG(%@;u*}S2IfV zcFSol&ts6%j5JFJmC&`Q9KdFHKIP3;;vCK}1wWz!A>m-m zL|Kx*AmK26Ab6Z}_PtsZ$i;siMF}7t{ZUVa{o7yt5E;JG1{Qvp|jbe}#Pf zY)t!acn5-sH4bojZ}gM%~0B5sk{_)J8_ZSyyfJG|AF3N6R^r zDqRRX97AH;gdTmnY#OOH8b(}XHVVblb6v26tHvB*AYTRmSWZSHLejBY^LM)jiTsj> zV_aXps?{qMNGX*#(mV20p|1(7!3fzuWStY1qTs2{E$TCNisRGtE5gOga~ z8J3#N7bT~lsPtH@dih$Rd%Sz7W!J$6B)DPUS+ZX1M88U3En1_9o}^s`6yqULzXD+G zYny;0KO4J6A1+;4O5P6mVK}9O$>n;TzNmBU@N>S$ru%8YM!nbcM)JrzedfwKg!JPq zSN(3vsHbbD`YzUPHx+Bmoy^Oq&AEfOWEz()RdLRhh^BNXP?&#q*KjC^Q zW64o!ubod_t}nx3kgndLbf+jqoZ&|s9h5rZ$6Qw9{nCsjlYF1MM`HU7uG-UBnN#jX zs&SoezI?l$?s#HP$i)V$A9(9NE4(3zWxh7EZ4gnO97&(By_HpeFZk5CTTPDO%pvL$9d zc10yRxB{jFP0OCPQQdzmRJ{~-=pLJxjNA;qn;4hnn!haJlQBy=#aEZX*1uyMS0(}4 z>PmY~bJAkCtsF@`V9sB^tyzvFi9-70PrH64pDeUa3@wr9U%`%&jTs4WhLb$hmP#9N zm02aeM@9<4TeR!V!fa4j4dCxkznmXDQwZMXL0w_SM_gH`GGyp) zx#N*rhiNy6I#6kHn?olCAB^^IMi^v6KE*5cA@`FhRDOmK4p0nDeE=T+ftp%~X zk4Pz!+EtY@!(5F2t)sN;0o-WS<}PNEVnrOf!!$gcZht~VzcNX4b$}^_fon@I?FMOb zxG%xN2Xf>kk-Fk6A#0Pr!;4|FA)0`5-yJ{RgOKvZ%XT5)f`{#Lpav;W0KwiMt8{_V zCF57sjJLY#6_vB9%Kyyz}M@G>$$TY`G0UFusBxswVL>C3Ch6NEo>JdGLB59dJ= zGxPQ3?`>`_p^g{)=Tz+00v-&%-E?^!cKpMLf&4LKP(7gWIB^KD<&o+d8P)F^Y2GYB zc;Oo(<^w?8i)6RV;oNjefUiHYG$h8sx~d}ILp;%9DZnNFj1sT~)P&;c(}?MXN$MZ% zDaGqQoDSsPb_mm?n3NKB=*>mxnyHL^`6hvUUjwT*R|Z*EeF{6$tb0nh->=u~5gYy#}# zg{KyiTb6zC3fHOJNr}~|0xds)v2QMc=S^m z#`)Rf-R8$oE&;DZnI_glccJq*Fv)^Qj?CWjlLpH+Ui+Qb!S@+-C|4b{2**AybA?|k;;1KsO`7F#) z&Lc-2HE4B5jvA`IF2b5j5A!~AGaD5Wr}-@A>f^P`$)JX_{G{5WCR{f`IKG&qhuMbQ zsE?Z+Dx>tiy%xLaX|C;g*)HnZP;Zg8)@1iem2+_G`O;Nab{T6Hv6bn2cOZc*mg%ft zO55~&u*WgJ&5|jobhe$FY1@XFb)TVi)lja_@2eTiuCw>kPb&t>^5q~uXdm=ahVC)E z#lew^L!=~Kfe=hmb*1d#p~c6vBj?GqK0A|ic%kkExTJQ>2OOS=17liV$|V;pKWd9o zS4t_ece`YbIEhVQPZi3O4(apRHw5IWVG+W%?4QlO9y@1NcG(m(f2ZA7hKfLKcvVjhv6Pd@6XSG}+Q2zfTd};l zoWCKgsnxI-mbD-|D&hzmZwz1OBJJPPp~9)sp-k$#Pj33Ne}LV?^*k%3#7XXkcZe8E z7^Fea43l;L%6ruX+eqox8?)5n?A1C=Wg}%;C&x-!hLJ-B~G~0mvU{; z9M|%Q^aFfjAd4mXy`TIEyJ}0afl{Ob|6o>ak9fOzM?NT_qn8Ml6weWO1TG0-EzZF~ zN88B{YYPLNZUZLEmnuXPOh$R(b5Lv6+$fdiiuk~(=xqZKlg2(C`dqu0?tW^I0BT!B zjBdpcP3*LCvb&cAEQ}lQbySo0nKb7wIC-nGRH(C42~E(Zq;QpDnQOnXb; zN$z>2=G|<}DLwcP2S76{^w%IveDZz%)iyam1dL$#Et9b3>#6f-6@3~%CsZ%CwyD+a zm))bZMunUea;0{Tr@i(^tGk`?HRTR~ZZs19a@a67>+e}5sqmW4OXlM`&CBUkfuY*u z{GsoPme;>suy|qhHw+}F+hrlZK-ysFT1=Lb*%LaUrjGax2^yNsO$XJkuQK_FOoJnc!+Jq#V`-zGVqbz!*y42H2z8rBx1R)rI0gg7pXx zgd>w*!jKJ|eI)cLgRG5jP2{D`=pu^nuMYt~T8rln+#Wd0V||69VmgWikdr`{J(?y8 zW2h3S*jUq$04S?0pH8$GY)nIzr;g!S#8-9B~f9z6bBY zhhz8@014a!URZ-cQvxvknUZAo}|KSyUxsDh+5Zj3JehJX?Y_+;93S;3hJDcI( z30ZGx3E22-*cjJ|*{&1nU_o<2;zN55aa{O~%gaf8FlCxqj>}M?1+DS6lX30c`hU`a z92XiC6t*7_zCVBLQ7UZT9uNic=!lSdWT(;B%OntK1n4LrQw`fe1g4>T#Nyo8kZHfI z6yK3DMtT=s7$bC?8R;KyrXxCEe9WBTDs#pq90T;ikjV6(|ZZK!?`!d1W(RM*q^SIVae4< z*E}-+ha)S@JMI5t^(|Py({iqSIS*~zt5nF=z76{BgTufYGU8wN*^bu#NotxS?Gf*8 z=|`#-^RHi+_9@KD8OR*A4cd2v^6tdLk*W;okw2h&n;G#;G)5w7Z|qhDULAxg1cBzg z@l{3IP0?|G8Apv^g<=&&-{^^5=}uXSx)coufiDCrj4~=^tWJlr*xp-2$^tXcgist0n{S^huGX&MC*I|#MnBQ#Ou6ccv?~GuB zMT|;q-V`hg?4|jw{9$? zk|1gO^)h&xIlDG2k+u7}exDn+#Xq~!4Ywm73k)ZBy{IX!#<4L8NCP_jR*U=n7&k+6 z9Zs6hDp?8wTNBwrUf3!#HbzT;o0FLJl_&!%=#PfogsKI zHs7!kc1nYu9IP3+G>>|+8cBa|uQcp^pY2&d6~VmXh)?(QQP4FUVe4wb`7o@mLpV7xq}V7Bd~0(Vw2?_3+= zi@h*)%8rdqM^k|R8!}+N)R*;weKNk_@n2gsW%LRm*SpI$URUib%Zy7zmogXYak?Vi zJsSqUh*qjVRU@%Y;?psTT4KpLEK!O$>A;(QhXe>lr@78)d2(Dd8_6AmvhKB@kHF~9 z`Z~aNV{hsDJ};*Z(Sc9$XBYbR;>e&SK`fEvkZ==+9OCf4UO|;sw`!~>%Qj_!6~`{t zKo4h^Rz1Il@k8_Q!rf9(p6P*F->0*FLc>EynsfPDDI(qaxvPZgQ#?of6S(@IoJfQD z#pGvr+LSm9urgjrvNZu{F0&xm;1QXTJMD0kHyr*m?&jc^8%6o#-nSPy{+Dqu^fnW> z(*rKsP-}ZSE#Cr29kb)+2Fb%n$5LtDtFkM{or*YpQLSNPS=3tRYo{?!&rB`~*lj%n z^O!O`w*#4$`t|Y~*rh&Wu_3X}D_pL{;@*HBNf2T@N|%(cuP3^V92;91M)Rhl=u4++ zw&;C=!XKv`Bg3O%;}Iwo{A!9|x@&^kdVpYj>sd}{xkw@5m7Re;hp z!zs)_QMu2Vaph;_j2Fe1IRp68evo4Ti9%-SmbneMC63YRGB1+Y_Z_{Z7uWA9{8-@T z2t_R>QyA0VPo&qda--IRi6Jb|nbZQCdpj2&&R#4Lp+kj!y1(s7x)jvD?_U)^^;Cdy z%0OOI!nr(sJbG5*sk{{IOblGlR{eZJX-+@lj$e-1r;WkkdX~~odJt&RqZqOXQh=@x zxzd*#u84w*F}Q=7f6x&ehzU!wB1Urf+7$|KDlMv^4E^yI)xwSqd=m?9 zRyM@|j)B!*?BEx+*e~C(7Td(D0lbQin-pjKa>USi@{_=Y@I`aj*b8*7P`cc9i?d%Gsdk0ZX-On`D%$C5>v%W_@mg^J%TgZ zFnZqn8?38|$L^|3>}VDRz3)!u*O8fGi%TAvVTgzkYFQpI!&LdG0#(!YhBTxCM(!_< z&JVUB+Y!9ln^yf_l1<1~1u8|f=nt_ftwt9jOzJ3As0MKZ9$=XgNZmwQI9o)CM1C*^ zESkP#T(HFgN17}+fi!Jmy#W-Ke{YQ`SEWVi+v9g5E9gw} zcAteUVfRU>2;;N(ptTi@vwFMKZ%c*3MA9ww0_iufLAVp&WPk@5q*u)lWpm8T%t{Yk z!-x;E$IPWucuq#D#M;StwdyqhhWkN|jcOnsHz9n|XFQ1i40;%$%b zvUbWi5If3$xz_zTgJ%kewBVF>dY?eS;VXfi0O4McI zLiStT9-8^__}yT0)$w)Y5W#Ym52+`{NgTR<*?CIuwm-<35o-s?1k&=^OzBrQbtbi( zDeuJ5&lmpfK!f~(-SlwOpS5}?hkTDqgW6MEv*HTtw{ELC1s}8ItNSV8!*092@%(RH z#C;xH0}`I+)6&E5HTRH3`W;D<1&{g}Kb>MW&6zZD0bZz=?uPYa(N`?mhM(lvM}xBDOKNSS zLFewzqa0OP%lx>4s-Qf`Ic{O8S{mZTh)2^5@x^0$R$W62D|xUq1N#u#(7MvLh})y) zo(c}{x$A(UqA#k!p3tQWl`5N}Mzv7xpWKStJM||sfZI%tj))IuEk#zz!+8j4JhPdY zw{^LGQ~Afsku6?Tu9ZYP`Y33cucUxix`*n6+R9J3C+oQsg<7AS;uO>Mx@k`E@Vkip zm!R)nwsm|Am+wJzne6-p75xQ;D(1_|+i%DB_h=HOwILDo#6NBu%0@hVipX))%dAH+ z{dkv34DGL8Yp!U-N+s>0tBnB0SmM7Q8O;9p3z!4|4rZxkY}c`Qq64a6p>e zva3|7)?SgTo_@1Qaq|>*ix+FANyvX?V2&4*O91FaY%fQ{@p~b3Sxt}INc2}J&`q+2 zWOg}*Zb8B4@Tcr@s~_q_E5^@+s;>laKBzyW<(Lh{hTo|HSU8d|3LASI_;dE*r{iPH zcG}6Ga!2V+$YjOlL7cfg5*{0uFP|`Spxfx?N>ffBdIo|8d^xehD=DkApQ1cMn)SrE zbn@{)%RA};(=PSbkRLQ;k9qaQ%XQl*>`<7&89$UnKvVSlfx-#6?GKXnbGg&*Cqh=R zBkzB(?Z2>N%yR1PWj+s-)_YJ?gj?yKKxDaUQKlJ*suMaTi^n zKa7pUq(xTzyN&TX!(8UPtI8iY1SpqZCGG0Y^IqPk-3yFQ0BELJ>h?56uY2U^MH$ao z){I)B1M%983c)eZ_!cjl7ki{Y_>ZO~L;yyQtkyA{$SS1q2^gxYFuEPNtTjH@hQOy> z#Z2cZa-$!N(zRpSDN-$U>tB@%k4*qQCd0&n>Zt(7vbOqLzzsnF^A4|Dvg7pWZpH?z0S(L!~C)vK?LZG-A)J(|u@BYcfhi?nN^ zdKb;pv}Iav?s^!|G$D7=P)`fEsZQ#-0SNh(vrunyKg~!{xm2kd=D9^|H6NqF;;%5a z!i-aUOPiPNB%Ud(^{Mu(HoZD+^ZYoADT%z%X>~GC9oD62(BX0wl{@3J=CdltEZ5ht za4sjeLm5&Vy!t6~1wJChIqWx!Eam(izDN}CG_@FLHil!sWcO{3eAN0Fc06#(;bGK- z6))|ku_}6@=lrVt){RYazl+8?*I6&*_|=|ae)=|VI$7nu>0ytE`?|c-V*j_?jzhZx zRNxaVz}bia^qRLT1EQQ%61}Bq80%!HbfsX!6CRFdrD)~lb`oqFXe2L*Lhg69QP>E5 zK9JGZF|pJ8dB;2+Ot$;1@FJJ6tV)q7^Gug}kSNHxmXj83F)y~A;{0uG@^ST8dKZd@ zHjnRO-1WKr3NVtRn{y5yic8|5o&{(|+xP6z#qquEqKC5)_y)5AcJj+--y@`0Z+zE| z=Mkp&dTEaJv4=wB%^6-24uv1-wZ!e4Fib!U?TXa7;Q(Q_;s(SKZ=Rb34ce&8EItx# zHuK>}JqfqMt%)#}_?;~v!ck1-Az)|yt1rqjpbB~o+^6XNtA97rk26-N2?_4q?R23B z)}Ev91%{bFnZuTz25>j1xI&PU9787#*Pmx;)yb7lWghQN$CJ6RWN+{IT^Lw5u6nL{ zoXc$+>o?c3bvJFE*CtsZT?b^UQo*;mP;07NN+>mY@?fucz)#!{%YPF6uCaU)R;(b} zFvLLl42&iS(xFmI_|K`o1d$1v-Pve*b!z3!KVb*&2?HMBK5p$QsX_c#Ji!N4yY~ak zM3}pOVjtcUekVXErD2u)OYlF@1n-H?L=bdWb&3_?zhVyrLF<9%1*NW64E01R~(K+ryS4|T0XR>Wca7vdt$>Ms0&C2 zjcI==uOIkt5g>^D|4qk4Q5iHn&Hqw#5k~(TOSR$0x)L(&TRey9GW?u|EGz7HWep1R zD{8FJsn^&W`(7OWEiUxOZ#pi=UAfx9?Sbgw16%&-!_)RRMQV-4ui5)dAO7gK;5{_f z#O+LxvUDo+?o z>K#q%8yXt6X8Jx{l3%53+jJ~jY7zV^pbJ{y!}ek(rL9#p?dhg1pY(gK{{hLy+`!8K zq1fwkn@d~S4$$1Qr^{GwD%Nw=Rzs#XGod1T5J!&ZD|oCt zm+oz!)HFG5lYXyMsm>J@g7!%P;;VOQC5u>gbM3F@;%QVZ8VX)N-ST`}Zd10Hx1^HQ zs!g1wO&Sc(i!h#i=87k`R4dZTi7p2+f$Qc0lOcWHx!<5v_IO^RkA^Mxa~{o9>8xx# zhrUmP2^J5dZYxy;=BOf=Q^C+}S=#PaFkG{bGcJ2#KK-)PoYi7fu1@@WOz#Y`ozM8z z;x{v@%m$_nK#78=#at01{qib}`BY;o3m#`Wr;m)O%!6_gqaM+6y%k`Ke57#Sj;(1o zx`muw|3hf)8vC<1!5g=Iq(_HU0z5X$Fj|H_;QElY(YV8P!X}k-PrI$dJJj=1Py`@hx z-UD=8-@e4~(`U5YI6eJbtu}9aex2sTFEf3JhqzoZy8G^KVDkF=kmclTeYc0PJ$c4l zX~dF`+p=#>qSj~`H*JD*r?OXi>&1s}_iWwQVWGqM3NrN>7=bM9 z&Dr|4nQZ7q#7VXV`7Wy>OdpONU2ekjrgkqp`yN}@DqZRXnKOADi(6k$70U2hEKe_T z#CLYfn7L=5azEzq3xDG5yY|V(r6($X1ohMNr<0zAAViOOZk&YUwkl&_a))wP;7%qr#LB@ zQNN52o7GVF1Itf+M(=UfiH_1zc7$BJI7848&aDTZn?q!54jTS-Gkv!{qcvRB6@B=W zlZU-0r8YG_>zlroxZs{)E2tCd2A87+20E$s;Yct=WkW zD8;4xFHkK2f2c=}BY(s^e55N+0xumJm2#THsl0?S+_@3Lj>zP^h`kZ0vztVITO^k! z|IK*nKg<;jLh+&L2oO~seoTS^H z18d{(KfeXwBpHI>B~5!$S?&7!I##7fPa2npy-b_l5is?3Yso0NZCa)?UUv$8?XL4v z0p)P+SoU!BL=*e9>q)7=$7r?2awjTNh3cemSy{K45{G$=Ge-Jd*(-5B#Dse;)tc`% z5ww}iUiK}qnQR@{?oOIDKkE24PRe9n*Z3%`IcbZ#|4!YE5|!+XJt2lt6Mwqz8+-qrs60zH<7rKIz1`fgj#o zgPDJb4Z{Joi}I>F^IRga{scQ`dEMFVZ1;SpKXRv!l+1JL)48b`U5nQ5mGdJ`<80bD zRt0!xr9{i1)O;m7>e_qP{lR>N%BW%4L@9HCerY9}{)Eb?_Z(@b%%4#5XvQ4;D$472 z6GWE)@TAjp)l8qp^S<>Ep+dXirH2n=DxuNbC|s-%|3JX~=}mAGg7iiV$?LUC`OGCv z+j45ytzN7pybqq7)Mnqpw+BnxqH4~8s;15etG*2$gPXDVJ(`3*z=CXx+LG+V;_l|$3zS!EPUH5Fj z5y$8EIEykLE-_=rZT)+nfoJY9{I-($qneSr3?sSxF&EM9mrXXHfe1QOW-_nJ$;>u0 z>KMrO2Y;B$u zKHMXl!^5vJM>qIvhK-#P*MrKsk=c!Z#vew$F{#@B6{QqQp8Cf?;;;#1AVAFLp{n(K z7?(jePt3zrT0`l!|0I5ur@_*4Y_Y~{cV&^)!R}4Zbx8Nt9rq)wI#$>hcUOL{{znpr z@Bl{@gnSlou!;L}cQ%@{Fyw`mO2K@r6e1!&w2)(J9j%GtjKkM$8L$)k?$Ux3B%k)qAEKtX0} z^SC%1w{I5_tjPZfp`_RV-nE6CDW8|fJe?9odh9AK-lb8ySYn_$34FYp+r+CenIM*T zIi(<<*%-%ba*(FjB>{s&EPc3JUz@Vz&*DuXHWFifLJ@e*hh%Arp^OnZw-)zCi-58< z9YlX$FMwCL9ri}cw7c;b zx4h`M!xZstOkWU5gw56N&#wYV5GjHNhhwl#<0+iR^hpEQ8#2@*nMKE+s_;wq?N`d* zj2C{sHWxGohWmltjmtxJkOqeO9=l2yx!&yX|DjwC^i-V0y$}U5uv;DZa^6;8nACOs zH*p@7@4f1y##l4L%DM;rI2CO^Dt9ybUdnwlOh`Xun2g+>|G(kh&PhA zqSdlmE)qG`W)ZG2zEE66RqCf;QB(BSVeuM7+3606!UgK_tU>!imcVblG$)*Ba~uoF zVI4SK4-&gdHpaZ~eoAB?M6#K?>9Q#?)LhN{OEw1?`7d#9Ij|;-8v6{?Y^aVofZk)S zD%#g{8TcmaGqJr%HXv_I> z*lc8Y?>hv|`g{Ef_n_?!pno?rounv>}*q zq{Bhm#g*{ya!+!;P%|OjM>FfxdX2Q^sXX>jrE-oJ+#S6p(+Y;1RHaD5T0pVu4i5&m zMvFY!Yb}BkST&TA`n26;JF>`n(S8=!o9s*uoURXne){~U{gQ4(hDzB$3(qYQLs?=h z=}xCXuX!2uHTb?{`R6x0ZZ|=J6%>Dv_A{iFO>bDMoKXe(tVpB$4)qrPB6_yUxlVHE z8VJKV4Pl$+x*T559tWe}+wp%K1i@ONoICA6r=2P;RtmUR+y zLSJd|s%n^od;m0E4F9z18a9j05r<8F0=*`uJnhL{ap(b*eq?+=FkdL-6~LD2*2oaq zON8i_5#S<1$^>w^KS08|O>F%?*n97wroJs~SOo+H1XMtz+CW<9O*)G7-aCr)UP9;y z2q;LCCenNFolsSJZ=r_JJE0S5@*VWv-@SL{`}dpq-kEnMlYz|1IcJ}}*ILi>thHCr z1Ine9=)erazCS|5)4&^Fsed(7vD(f+hBSgw1!7$Lyo9$4Ij+I8x0Nj2;8JQw_%|G9 zbE`rO93{G{st7BZTJ~jYEsd5lD*yF*4s`iRY4x}MAHrs=cdej!T55A#o8~_+ z>Fd@(emE1?5$c~;Yt1$1I~gf^|39aQyzWPI3%}&QH+n>Vw7sr%-pPK~{-5t(M>~KY zqOi&I|8yVt=W;XmKi4}Q>uZ}SR~nYhbV2ye-6L?BW-cO^Pe00 z^9OJsDGIMny6EZuj2h^lB>Z2SRe(GH|Du1AG#u4GagGB`Ib7|JFKt0zM48$jQ z?Ls4b$-BNLR4%VaJyWgtAQNmdDZO3Sd&g&+-}9u1O4vglXhAfRqfi)U^@2pENMvsM zhcrw`{yK<|D9xWAZ*A6lsE_0-vE{1{lRexgk0As`4|I#-e!D})X81H9*o#gsjwRMS z#iwV|7UaCr!}vljHfFIsM24~Y)8dxmK&mKP>B;spPZTn?T`sN*;j8eC+p_Qdhm{@; zPK!Nd_wx;gZ19#QNawlh?8>J%t~N6@2J{N&uj!Q%m=bwydDXNE)Mb!$OT6{fSN$Mb zaes>gp2OxI{D~vVsR^R&Ra=%o;R9 z=B8BUwl97x_a%(3I0O+;WXZN=LH=Vt_rAiwc{5-c%nVoLQzXQQPZvYN+XU$c1J>%9|vDUpRIyE-+mj_$+2fb`9J$_dgrl)&K&mlW4;yXRQ5D`UmW3^^?fftH(8leBOy?uFH@6E?8~Zwvp!+?>w z+Fd>8@kY^u=d8wi=8{;Ognk&O< z-#D!FHk|4On-F5Wy)F}f#rLl>x=FHU{hWlQZ)XPa6ymy_hObxdB`FpdbdY7z8D3~N z+t%<|5jFP=4sBUatJ3QoND+os&@|B#QjSePMbRJXT6LBFtPBhKy>@b=?i$;f<%M8c z7eQE;+RR#CLM~CY?L>#TWo?eVZ*TwV>NI$(4_xxsy*>w?Svx$Qr8kzjFq)d*VaWDi z{{el^YQJ8VX8#YTt>W4`g$D)6q2z32E>jXI-X|MxaHZSsNBC8&i?_DUCJREW;vXAr ztrZvVQN!z<mFN#xfqas9bMViCs!vsg3I%50shvS)v~0*7DX-_s*2{% zZRoQH?$kQ~QKPj4n+&86m@bb5v_S|_9cqO1E6YJ-JUpZiqja}1Oc8Q-iD15cfeP>vxcSUk!} z({;AbF=VMUQyhmLtSWdp#2xF~+rrCyGLf1f)vV7nv_l)sxGM)My{j9ATBT96K93mG zauuSV1mMbce5L3&A&+5We58w$&bW_Tzf*Gpd%gN9=48&>Fdi`b@!4R~MllAZlmgtX z@N*=k<#0y*FGrJSj9}h_dB99tQ?QBeLx$#`G&nVRHZh$Yt{oO;*q?X{47I15f z&)#}HgByAoN|pLO^*x$YIXfI|Ii@QSMW4z&=COH6B;=5)6R3TBlfx6n-2?;%G$#Zp zv@v}wP=8Sp?vV<0NU{)>u$8c6)2sQ~v+I*@*i=AQN=V7uomB5^dbCcvTn}Q)BMMSc zt$a&ZDYO}Yrqi_M_$rJgR z+Gj1J!Fy5j13$vaj|)qipEIiy-MHKVYSm~=QaI` z>!790zqwtaj|8v~o`|0>I^pT}F2X^lH#2twjpqpD=WzL&+X8OaC8x1HT;Wu@20hX; z*!nC;<>#H~y(WAtc}MT{p?5mv@3T{km#$E_J$_iY%V852b#LA{3JAyxR+#l##XTgi zmD+?Ao7gd|h14P!Y0lm$GF^4zW7gXCYx#SB^U+09y{EH&N_eAIa(3h%f}XNssRi?O{DV`^Q8z;rsK_VLc3L_TFcR#LK&pt$k{zgUUh|$ ziC62U?63d8K|i-!ATo$iYYd~B?qJC)@TQAStzDBX&Df)%sTx~r@g`oIJsX9S?69b~ zjF{5;}UJ{vq`I$8MnRZoTa0`#JqxxyWe}Xmm(mLIwMi{H&IE~jeSdXR>dmtV5Qo> z5j=D9T!vo@OP5 zk!9A#m2m3)CX$ujc&^OJPubsCJ^|082z!3cqKj+Lg;!G;w2&Dt+68&m5*Np+=Ozy| z>(|{FS#hWC-rA|X=*D7VBKsFbufhhJobcJs66#;IG5IHED zWPBVZjumB0S2*^YJ_XxnCqn2T@*b;z#gKBoZgvPw^n8*}ACU?8k@U9xbXED`J3D~v zydm+sO}N>uBpR+%C0W`$t=FOSJumgipwLy!#F6L8b`-hccKX#S$Hiu}lE^@cVCiqS z$ZIU;FV!mP*oiFdx7so7;%+>% zo~Ba6hpb=0eQ*fE(&oBPk=QK}lGCHn!DE8yx9{zvkDn+!;enp~#BmN={*%SIap!py zkT-xEq>#q0)VS{Gs^-{OG8z=br2J-hsAdLb7L4?EKUh`)vA@oSE7+O>IJm-Q%E|Tx zCyQj)1FTXzXmyjzx&t)y_*Eq5Yp`N=2T87y7cm= zD%luu_B}GLY>CG_RxguZ!82#JH@qP3PPEqq@ndWK;ToR*Uo1~?=eK^n2hxKxjy5iX z!(Cl}mPWwqv@A)$`K@FaV;akDdlkNnHWTr0i4p@Sy@Q@aT_?9?qc6mu(M^T@tS1nE z4eXLkCEzqf&hvS~U*|teSd9Np7GAq>l9&$J|FF_e{$lI7M+B0^2@L=9c@{fB$JHir z%$={J`M+OJqXBB$)o545^Ir#x-M!w^7--jprRg}YOFH|uI&}Y={r}(70y7Rg z1WPZ=-E6t|<`Wcu7(BYawTIM&mqGac% ztF6B=k?x2^d0c7R1Cg=o$-IiAsM}tedK)d=|+}}Z_f`N>laet+auLm&W6^4n-|0PYds^BEL$)>U$^I|8Ls^y zE^Q;ix_JPX{4cFf+x5F9^=DGkHCCb~XJ<75n?0$iFzwa6(w{7I%$(2U*Q>Eng}Smb zYLygmTh40VC1qOQarxT}@;=^2z&5WY5I*toMo7kZHY3-rgYBtG-KbzrqBBILQg0}m z2%GXcqYOhNhskY#q+iM%0URj?I0o8(^fM6uV7N?axobG{{L~u-`6g8F3{~)4=^;J4 z3@!bzJJ-bdVNa~qvT;YqZ7=d{!ECHw?Obqo`y~L#6;OR{vcIky&z;aYTvrO8E-l=8 z_VG#i*}>yN!+4B*%2Q#F#;0x!+NQ^wJRX$*A?N(ibt7LVGw7K8j|%Y-`mnzo&!&H-2tq&t5M(2jkc%?Ft6vzsG$jV`&NRzz(~MEbL&k5v3-*qB zVwn?(dF|((g12BCwZ+Vd51n6IcA|m*tasRhxavVyJv7igcQ?dkzozYG7) zW_6*{QP=+~>&Hgn1EILJ85_7}e(Z_r3prUE8$+Esi*lt{YCa$TqwOiF+@0Ao9m~ww z0pK=@2!)}pJ8||>;oktX(<_XcWfMj7hxb60)D!;H6?r|IPpiv>jw(;T+xIS3vhR*z z%uIOTH9LHDC$Ra7l}~PMt)T~SSk;oKCJ2Ie)bR!TEu6c{@i_{KU9ejR?5_@Q#aaW0G7vXvHB#l(M|Md<1|@wYjZVz;`q^ecTMmSoELw#<9h_ z+RoG|^daez;h0jTA>-As*waoWCl+6m|J%v?#zu|wd7 zL+1{V^c$WAWEa^jP1fVpm~J&;k;Jb@{|Z&7imhYIaV!S(LB5OlY_7+Q9t5|ag0~%l zTN%(3M!xa!hMUNm589T-k|`w*2duMP}Vl@OL{R=yGu-v zB1xlBs2-I#797N9&FRGtLC(GaqzA2)>NxkqRcq8e?EuaKnm|XB2VO#9oDoz4Pkk}M zI(q56jD_I*kr&w^Oj~oFNHXn?DBL3TvxAk&Ln+v3w?g;3<-9~;iNXX*p%16raN>sC`8+-bjEg1g-67hqS3 znGbm9blyh+*9-9MOa_cus`>0h&^u2GMUEr;QBbGkA)fZh0{th$z|HYOnFP-4Y|~IO zj}0W%n)m5slBlm=k#@N%g7$cGB371^S+-D6V&o6j26H2l`Q0Um9qGZFV>F`&e?{w$yMV$*4PuLA z(qOV)X^&?yw)ECItIaGNS9{6+vb4#ggl#z z&l=ga>}a0(96i!0&KTxrMgoRB0^`V%dYGo%OT%-6OttAPxK^@1SZTEx;9lL?{hWF0d|=#GG`dy6HL)QTR8A zBkR{d*DT$T^uZDpNCwCprjC-RlrOqR*4_9ZiCN@3^* z!S3Qdr|)94d}RqTE{~!Ym?AF5a9?9F0$|hlW46Y?%TR~ZiMb(78?WE96B~xM{gQc= zfRD8d^&K?yZggd1$cBF&8ZBR<=5$<6e&a_8leLO$7Y>uY>H zd4%2xd(0E#kAwdR`np2D+N!!acwUak7p2^7-=Y9W$QkQLTN7H3d5cPm57q+{GCja^ zzP@QkZX2X(=vR)NY0g+NmLJ`GT{k-3Al^`UJNIuNmwkou4p%PWV%!boY50Ddc4# zgJRN9Kbu;P{1E%)>FD6WMsDhcav-f2yY@V}J)XYa=2!`<64MqR%kHEP`V7?Z&iT&P zCg4#DYdIeEJT@f2N}q>CGSSC|hwuHwhnxO9EvH$+#hk4fU5mcUUl?c(CtvSv>AiiHDYkiwWdVsgA+Nsf5M8ZcO6NE+H15Q1?)*2R4 z`&$c|p7iwgWuiC2;Zgj@?|YGEG*1WC14Ph}^`R&6js$CisquhrvE>kzsa|yY?S-7Q zujvk`sA2x~3qYD1)oHnOBC5YS(d&QjV85W7to$IbZOykJ#A-ptF*Sd-*rBwIv~&Gu z@WlgtZ=lmou_%F$8fuxjfMBUkhgeIRPU23h0!bULG1dCqPGH*Xj6oXrOoHxT=%Dn z>4B`E&(|f`i`n;$j62F-F=yr#A}fTX5witVlxJCT@rrY9O%V@Sb$?H;lo7mzhLwe> zjbUr!wOQiLzM6mk$?x4tPsc^{YnivtAG`S3PnNYw7hK7j_ormmTDz4AC4TYNx1760 zw)v?g(Z1e*#%o;#UU(}$eSfK=?uhvGd$m%xgJ^3m?fcUqU8PUf^1E|P5*=R|4>p219SP-3dA#0vH*-r z!@9$7-V!2icPgY+s7VT)l?|s75NeL`AGSLZX_u>Xy*!>k_#;>(_;1S{tafMm zV^wLi^zy1UdkNT%ZOoup$D_}y`cwl@$zdFAO!0pdD>2y@X$Ge3XF*Sb#~x0$MgAgt zK^5(I2{rbcu_@JWevgz|CNErcIqK+3laBm;fpZ!2gfdogI(qqp9hw(4r#zkhm0pv^ z>jW;tJ{@NGsb*916fjLIeCR$&x!b;~LDu1K`D(kba^D5*Q-rcvx+B99c{g6n$_PoC z4d3y)Byya+mha@Oj@YSQxoAt7ZJ=N?)18;Cepn4!PZb_}d)6mK$51OV@#RV~X`=8cS3%QUv+#YvKJnNdnDb((au%0Jsip(%{_jl z|N1^Yg^qGPTrABCD1GhDb%;C1?)6=Z8RW&T^r6pj@z_kjdka;;HHqBoAuU`+U%c9| zV2(zgJ_yeGF-nl^WZN^r~7i{yk|&QW!Q;Tq}`ZMHhlv^IB<)aM0+Q?G&N6OT)bb(d~_GjNIGw4HvQ zC~(Lj`VunNcm}dv^J<|48>w0^nu1zfib~{lIW%u)eV}DNep1GVmj_L6Cbw^@F4rja z>97-i4(}d8#e#eid7=HN{0WFSQ-$sh>_MgzHnEs78wsA|^h!_cq2I*>^LvQsP+z`f z=s|vAUTXEZFYb%RmBVg^)!&41=t>Mr{Do1}Q%V2+E0Z}P!G;}+3}V7h1f^W>B~kAW za}<1{bc4o)p9^Nc*F)QZi@6YxBM7UgSFwXn)=?kr|V%L4nOA(JfC2v4rfm4f487Jo=mP!CxJ1 zpJ)f!S}r$@N{nisxC|RrS*RdBlQbKerCO^pz+=b0Q}suS&8O%Hz+T_DiM@#b=@#lP zDP(zd{DWjIujRJday!DM6Z&J(Fk3>q<5AN9Ei733X8r99vucZqh_oWZrdI|j2lK+h zCHiN@zWH{<`v;I<`{K*eygKjBjt4F_p&%}LGI~;+1A1U4=795P>ydo> z=Ccle^wwr7b#anohoy)EX6Q<~0LRchMlR-M%0~C+jPZnI(-oyx-D^-Il5C8736|3t z69&Dt`(1U+`_(%IifCdX}CM<>#$_|5|8fV zja%I$djV=1vAQ+^-Ji|mQ)Ba|#~HjAerjDdm_p11?(nK_Sq~jt?bHhTZ_YRMi4<%} zDoa&~vFAzoRngO_3KW`!89T<&j+^EI&&UV*4s=5uF=S!tFQ=40&#o)e;f{L@D*%W4 zHas)B+Crb@Thf2H3nM&lyMWone^ba7zdGdFK6qf0TGYwba^9n*QSWpfhprG*3(KMY zMAf{jQRpha_^_FUYY;q zo9}b%B6?Vk`zi;6T4Is)9nCLOp|Uq8jwAhV+`^-ar1DdqFNs@)>h4%Xsf32o^Mvs6 z+h^l<>{@x(iiS*A4;~vl|4AeR7qDwgk21>At1kC91`E_fZ3Qv4Px@Q6kF8tIRw=!y z18x)YWUq&6(j<#Ki@AL;>pU1jp~KRmiLYCv5V20*hdK z7B48)sK@kxY$(R%{3ro^`7nuD%cCj-Bq7_KXD3M%M!l<*@2XpEQHZQDef+7>xGh|0 zOM@vl^)hdEKs;SmjbaB8S25i8or7z2KmVft3WX{|!adJR{YbM#CIN-N8zr$J&GrGunckfSvt{WYM3PcnbX_sGUMV?G&w8N0i_ezuwqDv62&7Z$=`UE2}NIU2Fjh|vS^KV(=jL8b- zbDI>-8f*4D}K7t5wC$BWx=2)*Uh0Cb)t z#|J&%WHy1Nd_B}$kzL9Yyyv7gY&__O#cW!9zsP9#7)MES7+b!_I^{%(QFL4~+a7V# zhyBNi7QjH2X|MLK;#t+EThvRg_Lmrf(5&l~V|BN@!^Mqe_ICW&WTOGbxjUKFtp;xi zob&k^zvtpC%UA$?!qgD(ds)VhDgy7hl$gPBOo3))>70`_7si|FQpAGjN2D!smcdIA z($su1UAWT+7oyX=NWV6!i%_w=2&m#U(dM;TH&$z%@NK0NrOZEXWOf5G>v2RWq;TRt&hl*5Nt~@C$&jW zqdSey*0_#Q52mNPdrRFm?F(cPXOtw?Y)>M=mOCMGz<}#p!65XOy6Ief(~7NTFHV<| z@RfX@?l;G|g3G;ML@2fBtzczIuKo_@1-OM(gP+9|g%)us`Y{hg|Iu$fsR#P-38W!P zAUBmrO!Qnq=ADyN42dWpQcqWi_YSFHun>{YR6ChZ+N$yY! zLv_&>BH9Ut3nVys8bFp9vJo1rQj*D3oES$ro#cjwP@8@+uN936k9#~NHd6wbJA1`cj$WmV^i~ZxoqvWMMHrlQyd%uM z;#q_cr#98GO54&T$FrSs0cYG0gmU)1;>c5IB!(cROLF@JpT@^pS2G6n&1`GD+maY>%kWP$YbFS}W4PtxMV( zmIXZdaf%KczUk@*1!*b@yzs&I07$63Z$nq!3aCm|B}PEvCM2OEyVxaP)#quEw&>X7 zGT7!ooNJw6yd;PSsyi2}sGeQFl{i;q8C_S4s7^V*8cY_Pp>K!-6V8rnV_kJi3Bb4N zedVQDTRSqTMKkH^osG?4w33Z2G4KjHJaOBO?XS#rn0R9gJt6UB*Ya z!=(Bbz^g6e`RQY95GO{BTq=q#{d8vml-zEgtZ#yJtMV*==4iL+G&YP0zx9S|l$~))9A~8gE2;({?rnAr8=9$`Hn5_N96QE`z|q%U==#ky zSFE9g6Y6Y!Apw^S%()TI(1`Ngj+f&Y!B_&>MPwQvg?DR7Ckdi0+mIt7XS?#mZgis8rquYo(I z-0<@pxR4ik_RoiYR4;)GV2P?L-ud_N#OT)U5ZA3W4#sdv{O2Nm*B9A)y%O_Z7y19w z>FS;51+tG~=DZGB^_my0nO!d(HA@ZQG02PE7EFyoBJWfiE-jGuT&dKrcQWD@77uIhx~7vm%kqr$9M{@ zrv>=eo@{l#kc*p6YkOVnewf2}XBOB@WR7p>HJsw>(+ub=&?gr_#$aa3Jk>Pbz@vP; zNaxo*f#t{{&*7A;^SVrGtX^R84&J?9rhriW=+);@#ZohJ?mSwL=aC=>t@u!& zQdE+sZXxKcEBXvvyh06`(z92jC*K9H zgiW@UcaoI@z(xC45c#wLq`DfYUY%}0t(!(DCfZ0*IlcjgA$G&>O3!$yLjhKbp^F%* zcgFQx8K0=2u4AYyxw=qW*d_sv_=-~zqwzL?mXf!ztE6$!$>>mu)+c74M*GF}xMWU{8}MV4{`Um*&5X zWS&G1iek7;byXnI_RTt$dbM`dTm$@Y#aH=B$&Tk6ni+5QjmKGp(I+$Z%@;lPCCv|% zga8-1AM|~Vy7)aI85&5uUFzBD)*euN$S5XnE|Lhm3#+lEq!hUnPdr(7u^w3_>jf07 zQ>Kj+`>Bfd6pu}c-OFxFWU&h&8RpD1`rJhv!0CicHX)}_c zMkvT#Mab3hbx`L{SwtaxYjacGVcg%(0YZ0Z;HM~%odG>mLxemOpx=2X**JjYc&q*s zAN$17uNL7m(Giwv+(`{df{$+wu$X4bdTs(1WD9S6d+oiX*&>Tuy~iU&&wmuul~4@# zob1fl!iqYJ^iU}|F@fSLH(uG#d0{GaD(PY9X3w3W*F=PK_k=+gm-vYS)-|Nentg_@ zelF2DtP;D7FA3ScAmzY}7Q3@6K8ajw`+Ei6#(6lKBHV6!Hv~&vi$9~dJksY|)YeK) zfI@+W8>jD~oj9ZAAkFvV*`cJQ$&hL1i0ZJo)FsZomkxjk8^&sI{$)H*MR;|yLAv4U zM9_AM+~^bR%xpzgtz~@w0Zq+RWsct20Yl&%zVEj@-&6Bqq!u8izIHoCKT2_56-X31 zd)J$MAqHIXgiyFy_y*5{E}V z`Q<%S61SrF7-5sES!jiW|F9}T6#biw)o>eOJzMuh_+al;9-#?~(2WPdy@q^_$F+2K z4Tbf|idtcsZNzqNIR1F~&6sbA~5C#pG17^Q-9CnOG#v!sVsFpd0 z)r%{Z-pi*(gZN#@GfZ+pCwspgHS?6ym6O||-&_TFh&aLk-MZSx8~D{?>UyFcTdT8O zSaEJk+9RP4dA303)t0WuqCQ2*`pu13`<=8W!{1)On!Ool`-mt{(g>+0+44A#z89Gg zXmmZmK2hhZoOQnX^W+36~+P)I6Tc`=0992VV_%XF9LK7lDK$Ya2^Kl{9;S5-YEGYFjNJ`N(2h0>wTj;FboD zuJ&`(j#Cql3)^mf7`-u(mM1s{;6W3>cZcSedI3yHA9053UwdW3c^Pomln0qU?79$0 zjvZPABpF=CRHPC>KV10UtZ{8b-9g_1Y0Gq?f#|E#8J=vrz+5^FB(#=vS0PuGimM#A zFP2ICyjA84OXKufe6YN*Bxay`=4VKwQvty5?s>R}{|U-Q##)~q)EMp@zBdoCbh!e< zs;zUsC&+StJZ{5<5QGyHaxUgqq~_%%{z4%z#Fd!3hM+uO*CH{2VQC*PoqUlP2xe+nXb5ZVG*c2 zzkG2fEO#7F=YRAQvEhOQgvN11_YzK-V!-MGW zCU=8*;Xtx|-Q6tp!^tBqJ=(1&Wwm$uQd?TXuoBF928!$^3_KMig5&!d?!O}Dz4p^5 zul-#7pbgr6-$i(+0~_dyAgr~t-c`Rnj<$Ey9$Jm0UO-*L*MATh{?pdme^we z5SSGBc%;;0IZ7&stVe|_!z|lE$iHV;sxyUfKgoF@+;cy>RY&yXN0MZKwo-9JCRlLC z@k6I*W4M>2*@A}Fqu2nrJMDbz|X>;%`7z&;n$kDbCr*AhI%wMOCx^?z=vrV{_d>+B%G zDI%Uxtpif7JVAJsk8o@{gb+#)lnOErK7daw2v#;)+{kUXY09%DH*L~1Xxhc7oc3`r zZ!}lQml>#mqwV|Q+SJ!PkSti6x+hy(CwgHsAt`QFGcoCx_7Y3EsG>t?-kx3e#cDN+X{sjuf-22Ez2) zpED#w-@1g!nHi`M`3L?9XcTupFgs`!Un`%uNaopP*@czDm0lngnVNKdt*X=y^_tFr z&3}k_gNhX`^6V(k5Iq;XGbIcHbEw{?CN$Q#=aLPzL8Mpq|2WI*4N_%-j_Vr4x4-qf zur6h-0SelG@0{Fkj^2Y|ti}}yeVG^Q>6M3#E4356xj&-%`4A^FF%DCoe#&K_7r;9u zYZpH`kR{H!hS+0G94}dQs|Zp$yr@LqWh6r1W%&9YWPKqaBm!W|>dn2|*Nj9=-_HgY zY2;IF!aLX#tMp~Et<$c8mh?DOWb{gsS@uQT*Kh01V=Gb+93aVRp31CWnn{XNdN&Dk zwQCf=*61`Q;}b)!1G#?$DczE47y;Y51DMw9-q9VrG{ zTRvGbg`7;ADcpi4BkVVB@OsF+5m$e|{IX@5kdHgWf=3Qo3>&`z*Cr=t*7Bj0m2qFZ z6GdTg|5(YB1-f*6y~LIp^B>&2W04fb$!n^9ZU&6mZEdw_nwArf&W!w_4Un;Md2zyt5G^J|zrLc)JFg9U~V0DI$$ zghckH&I+#5%~^o4dt;be3Mp^Q!uurzt;QZPBk3y|08K5Rc2wBTHQ*x@yt`s9KQ1ZL zJ7X_bt2m8=g-cjNLUd1w&q6`RDTn|bHC+i5z;Br801ke~aXWnCdOE`oa}=?kr%^<& z4J5=q38LpnDBt4leIeo`Isss zQ=Omc*&agrjHyK3QVPG(On97iV!UwT6g5u$`lsMfC9Y$`e?~jlph%m8a;PQMS5Ndaktio4 ztbhV!?{Zb0?ufmE+?r=lIhzKnjBwnRto*#`zj-pV%dJq5HInJ6h43dUda$DcksN~n zr5EYVn8Nch`9$ z{mz_1OZ0Z{vo5CLTmB8y^*;j$xy8c|;)$rZf8(CrJ&Gmw*_j6WaMGDNs31^>TSkv; zzU_2=*p_3h=ov2IHV-9lL1M;K4Km(1iketBI27+Ti~^LaV%{`|W?W*t#fVl^TjSp2 zB3(d&leeX89!U?Tu_7X%eeZpKQk%eKeqkfrGwGaU9aichD|s>AUse$34ewW0nfMX) zENDiO+||-1opvg!;|pM z=IshOlM|hY8WRKKK2J0SC6{Xw5QGlXHMkj7qv>nU4~bX_JioDE%9x_jE=K$vS*hHl zz;@C^Dby z=FO*vOPk|0!_>L-Q6ohKKZ-UdO+ue1MfikTHzD>$m2$dM@75Iw4tFsAK9CObEoz9a z_5!Z>A({F3k0k(pZQ%ao4j@7;F53J@NFtu(y0vjT7n$(Oxb)AH{?{9^(#KZelzY2R z{@(5NEtkdP5!da$pv4Xbe#7_Q$BGF7;+os5#(z%~@Oi7@Q?dExcrRkAKkoEj$L?d} z%`R>1(fsqx8@D{a-0-_FJP>zy^zX9)$Nqjm=Ma(mFJkof^X(Ua0Or|^+xG5XBe_21 z{{c5h2WjMUw-0Vjv~M=;)$+1!4;LK(D%}!U5=@9=MF;p9j;5 zW+uKni||GXdv0V0s=T--vTV$(UY176q~6sNFWM~|4>AQ>F@-ePDeC8?c>>M?*62P8 zge+$Lc|?<^5_Hf1w$8oTwE^#+&6fv-Hp7Mv;@;PS)YNob7_k_gIsQM|SNA{K7xhlJ zbtu^kWoZk=PO(cbsIklsNYGg|tg!siZo5*%0MZQXfC)=2+rk$z1QR|^vajWCo*H;n zXx2FH#wK%%S+l6?$UNFLe!M_K0s46Yn7fZxfS$nnFV#!>ujILW4()Q3dF`f`C#*do*35b}^0T%*u`3r0AY%J#)6{t=P3}nRwb$mlkxkxN zv%_rqT+^mD)5+!%7n?2>!k@Q zb6ld|n(&P@8vB=|#YtU%>X$+Vo$vG=R%A8g0b#=_Q9Y7>fB^hd1E98DS*+&6AZz#YYh(q{P z29X;)a(38aLSdozo<(1!BSve&s2zWkkmN?W`kwc>#2XJUPFywQLd7e?9vhegJ26o+ zR{%>nIpP{TAJj^%)IGeGuz2!}{zzCEc1_ZH7$woG56-hn6jUw%EDGEuU(ayf_-H~9Lt^JLj1>JIFCdZ z-cbUjb215Q?cioaqC(vh!KFClLYgW%5LQ0;J5kauAy-bvTE26Ok!-R7T-Y1Q^Lw{it@A{M?eh}#h&}SX zA$T2%?s|4-c1dUdIy#gIVgmy3mhnK5Pmm}*PRS-Hns+DdmKo0K-D#fB8yIwHl(l5> zhrkGt={VMlk?KZJ4N%yA@zM7Dh|$$*e3C*rt}e~ZAK!o1l^oB!K~o*)fRfL)YAq$v zJX0#7+8p>*;DG|2(VeAp7sXO2%*Q||Z`RXZ&vzEs-;|LbsKvT#Wst(ZPr_Hn6;W*s zQEJ#(Vm;j|Z7G73Hj8wz8Z=bF*BgkFJ*+ekA=e`7Iev)i&MR&BtF`t*`t05OSnsi} z;kg2{u*a^8Ul=A&d~0`WOiq6r=qn^}j-Maz*ftP%c`MsRE7aNvUrUaY^G{yeUWm>p z1f+FF&{{LZv)MPyj|M7VoFsd(i`q;E@H!Z`~29p*q&ZB8V zzZU;{)~{e4L!e;{P&&cHzB5d50&Jg{0`eb=yQ*g6?*PTg=K=iAD0L4Y3ALp_ z!f1Qr+4!2SGkO=hYt92AGdQRX++K6AZ_yu*L(CYdJn!@KPP;_4?Odb4k&qkEb%L9g zc&oZ1kP-4mxOts#m>1ip8a6AL?FBU`sq>$G zpk2;if%HuVdrgGyQ60*r?8=#NmiZu!apV|?|1DZ@Y|D}WV^fs^OyS7jm z41Crl8=oLWuTT!`h?}Mzp(EE0GHQHDSE5xKUTrrD%Te^?=HCW{BcM1#ul53}4S=o5 zo46m`zrT))z}%ULwVHjMxdWgzJX^hrH+Mw8*8mP#WF7Wb9eeszTZY^d&^A-S+mlm} z%4g zoJ>D;_n`FWkAaR1r@7}TKJ8%d#ub=Zn_haSls>8+s5hxz_!Xqv=8q%M>;BhK*NI7} z=*=~{8$2%miGImzj}}<881p#q%Ifw>xP{zH6V_G{rLuaW@i99tQPS>xgtnxg0XrS< z&a3!3kv^t^*WUfVLj6y1X{pRgS@ew|aMC7Gb0FGY(r^Aqe^sHnI_TS0I#;NL`kW@5 z_u2sB;j&9sO{r3*SU@|@O0OXf9Z)FVUJ&U%bBpR>=@uUA#|cEZSZ1ROnFE~7z1@EY`lC9=X_7q4B z0L40K{OfCZu%W#S^pZHSmsOI?NA5Hg10!{^7W7*;Qj)>J0-a}OTMiEUX@tBxeH>Kf zja) zI(7d=$VIK96W768=1!{0rJu^XKo1I@X(sefF|06?SmV{V$G%3DuC_(v+Tmj1q~C#^ z2ed*)zq}_5Av-)%B7;Vdnz}70VAi-ctsk33EI&TR;#QO~py>Qcv0*;#v)>+X(9`WV zHAhbQ2is?ncP0C%tj6d0)}E6WE)S-%z5f+fg78!hhfLuwl7bVJ&wd_5!Zkw3MLA%4 zBoBz%tyRX`+X1Mw%Qa);WZ+qYt{L}n#wz}a%iS?66T_#jrOf$C3Mc3B%X+@+()64o z_Jf_i#}90CH}7UT?G41CsN!yjJ;&bKE}Q!+h7o5 zGMe$6qwjs+y}r-${0Fxm{4lTAT-SMC*Lhv%alDVu@tFo+`ExH=_rEEDOy4xbo;%~V z2Vvh;QpClJa`$zPeCErcO`InD!YU0(N8YV*2BUMh7rM zhM``D?~-ck2&X^47Zp9FeZ&w;Va(?5ixg#$JZL!lN+_gu@X#PIPH<+9N}R-4zAuo& z6ox)jl9)67N?gcVIuo*5%-*x<*>d)&DOCCenMwMlnSihW)UzK2H!Or(KtZ(UQI{ zDIPvC*yEL);B7d|-9}(xwD*cM!VnsPtHm{=XkRBSFg!83woR#CyBGR7Q|SDlT30iy z!H%871d+IS^{23wd5&XG`p_B6+|PSKg-|?mk*RhfgYfn@3o|?3;tO&{7FuH8-g)c zRib`3sLNqU<--J4Z?IZtGT70F+Vl}roq9hSU~>%tPe5=5R3*kr;hKO0O5F&2r3RS{ zSt@pGLt~D&k@AOb+Qx!>L)-U+OR}M`^^*O){w9-rQL_e_BNVtHr~Vb+V?>@Hk!=V?j6 zeGq2XL-zf`T35r6+^?rb1KK<8I4Bq$gMw(DoFH|8i4)J)e61<#peFogj1H3J_C9|? zl|xpL+|x z@7a1`$*ZKz*}0j~G3HnkYm56)V@Il-ycP4*-M&O7z?%f-B~FXquO!YtK%l1$FN^!N zTt+0J>kSbw+9Z{uIQw_ieJLnDSsK*ZNghl0FL}F&Gy&SOQ7Kp>ll%3W(h1nG9?aIE za*wt8J|mEMO(NG3ySM83;rE&cwhCSL4k&+ERm$|mz9AZ9DLR{2LEZQr>*muB7icHq zu3#$orQY&=(~EG3NvYA2@O2+Ucbxc&kIS>iRPRvFP=&*ep1OZqAa3dS{nI_Q(8DtG z;%RZgnUagRnyi{F+{n;)fq4oxUgFp3{zjCy<<@dVFw*vm{2M}?cRB2BI#YX`z%uFm zD0#YB*C*#Bf>a2#^6Hyo--yueIomYaQ8kw`eQAwTDjwCXRGxtqi`Gc9Ui0wPoT7z=nexWb|ut(3|ps)V+mz7?Wd4(u(*+@ z*NJQUcXLU7-ZAN1bAFe86jzn;8eMY@8el(QIpP?Dd_|tJ3LeVz?W!RSb*Fuz&`&bNuiboom0rDM zxL2F6dy*w&>0mZyXs|dV-#dOg$fUJhw65)T)wL6yJ|f$A_jRCeB!{z=D*amZi;#M% zy1ChDyt@(>=tzzinyciOIAsEo+Qs!UZ`0f0y6|k}ub<^DI~4o2L_H-OwI6 zTaK;Ku9AoL7h(vU6B>##Ct*3cOZLmJaWvxyHv5?9fJ(UhmXENY$L zK%0fb;h+4S9+ry6eTn9Fz^|Wqb67OnL)*RPB0j&oL010UL*-fejbz2fjvESJC>5Z4 zHV|>PFk&lpUesj~W4<gnkQZ$*f|&>s9RZ1;x9l7GNwKFX5vlC z0~q~MakN$FNof!2khR}w-@)iNvBkKKPOtvDp3I7`FhfNp0i)b5F}dcX1h=c0gLzDig?g*Oz;Z`I-hGdn86V zIrYB|2AGZuAa-W!_uT$C#pW|Gyfb$lvi=z{<9%&F8C|UMqiCGt_uT5wu<&|LoL^cx z@yAf|fhx|SBcg1#i1B;WgXd{b@NshTe|YLHDUkv>*=W>fc8LkWuYneNaqMiNPO3 z0kfSm3!YTj7NTgKN!ZH33i(St5u=D1doac^H#e zsYF+P%JMV>H0O&@ezLa5ukd5O{b>IPVFuA(eeIJ3NwrN?^39N_lRLqkg^XE2ViNmTJ zT;c0s9E?jfbX-?mX<#bs=xS+S-Vi+#{;5?n{0B&Fhe3~qM@&b83whk&8VEy-KS}Mu z=0Z{ZIo?*)9sbO;JHg9Emk`~H70*+?v-hlB*P(oiig5(HZ1@_hFJ=CQT&_@Ibt4+K zcn=U5UD774E|8U^-*AAyCYY48oT>n60w6J@#%i)|hg!mN{>I3goWASL=0D$NsCG>& zY=Hu~S$kZ8E69h{@;7JVtrMtx+9}So`U9adBXg!B@zOnRtKB7X-Hii4p0Wt0gLV)+i-SRI%1Jz6T<-V-CsFT-* z%d0Q}V}zAgIRR$7+D%?tu<#>ZWmYO> zAa?0ipv=eej0;}5Upovg>)avN(aKgbk>|T^k@wuu&9=NkJ6TVY!;~y!@a!W><5l0U z{6hNQ-ySo(1!L)Mq$GPb9>k@qYbF9jfm!>qQ}XKK?Z>#OgR~{Dyh-08_&Nwv6QEi4 zLE6>tCB(mJhAN{(Ud^Z>`(2X(lC0!a)neygqXV{=WEs9L3gxruf^#9#Sy^)>q+4`9uLC`&nPlBZ&B25~AyP6XyGr5D7p70=IzgORy;|`}`9{YSow5%Y0 z)>)lAu~S>}PO8&qvA+Z~47ARE4Qh--tC+OM7Zw4>36M6-<9jtZ&1tnA9E)38@cg*n zw8-{+#>HAH-XY~Kn~vfTO`|tq9$l_29=|YZghN3%%7)EKc-D3Lbrkw3EmkL>+#;j@ zp_3B|A1T-%7#+Z?Hph_!}06F&1gO76cSAUuM zM=R^F`E4)5+(v&M^c{WBJOn8qeAQ=v3mcOGHPX&pr+DjNC$02-M`h||VT63^-OupIiM*j7WGJG*LWUCebhf5;e=BN1Gc zO>VHCDv80(gq_+4dw>4oU>_8&=mc=?zM!d5cd*Or*$?Z?Z5o^XeeGBy zJ6N2NsBPr!*pp*--!RQiJ-uYsK=+a|@hN5@D~hYYtZzhE#<%8D45%b~h1&95O|UmS zzU68N`#G0E-5!7-LMb3%OB)Mb(!ZmFRP3_~T)4<3?w2~#`srciv7@@j1_i*Y(wL+m z|G5s2Ee`t1zHVxR)-%3?dka{w49;0tgSMXxYSZ01JX+x~LD=U_zwDe$t=n*8#`wR@mC}_UDNivUZi(LjP$aR%P+n5fbN)YLc!g9#er*HO}-D6>J zf|CcaOKHLxY0^$wGbBr1bDWIZd{A1lFgR7a+IJJbo~fzi8)|?QXHx7N3tM^v{6yO! z!bIX6Xm@nN^bnJkh}c}}w>jV`MGW!6_;TmFCt*EW$*w-XG)JFw?S~b6R&X85s$NHT z4_7*6fWo7^^d4Bgt}YCiLlPz?h(p&P_N2db7FfFMn#c}-i|1jAN+(ak27CTEwYQ_9_FWrvNGJk955)M>x^ z5Gvh_0E}Z&5r%5mUJz`xX#hHA?E>hUD3?g1i@*!deQ#eDjz|C%Mo-u`!5}RjT zu=D6_nB5~cKQ$W!tKL8Z4HAk5xUIM+&#Z7u*R%Q}VM|r5J zOkA>qLDp8MsO-N58pluEY@0NMhWgP2L;QFuOMw)mA;-LkZ4b>!vD~re+cQ-Y?!z3l z`1mId0*uDJHtjmemYbnZ4r_&`H%6F0!XC=&Er1UI0%)qsagbZCj3hQ!Wqf|-alRlUBSg!% z++CMe6dlFin@RALIisG)W9+EEIDUNqu~7`;a3~pjF;j!&er0>{(ss$6ygKn&HKF** zwF81=Qf34PEvh}%4eO_A?8Ib!9Op#mOB8vUJ>)`tjXpNfuQ@-wHmFVb;1d(mkuqgI zjU+Y%tWKm6qH`n8{Z$>jb#S!q*AF2c;e{fd0(QBZh7}x84?VLbKA%HkPfvS2lN!8c zi!}EKk5A%i#kAr8H8gm2&Alsb{F*;@4z(D`fV?5(kn|v6lt*et#JI;b!v%+mGJazH zp#i9SXClb8=$8F6PkDkFQ|uS-zz#I-NV=r`5Xj5!qOzG-+1f%F4wl_;DC7UhWUmH1 zk^1hrqaxD1$0jEnFD4+P@Jf01Onvngj_L~wz+k-Z!=ykA;}VGu|1G^?h8$c;7c(XJdhVQNcWJ!=tQMuJT#P+3z-q zguGDJN4L59gmQ$wx)UGCi(KJwvLEf+)J`0|w^Erj9RWdX%0d@`tODZbfZ0=7y}0T1 zaZ!-frG6@`i1*jUfvDMzit$57FMV4>*6kduF=j|u-6QL#O8GV&3$ScisHMWE)4Rp$`E_hzUdPn8Wf=c=}|Wp@Ha;FzHEj8$E5XxII|3Gu9M=eCx}RHsHVhok>CWvy|aM-D53#>F`e# z{aW-8eE4yWMYv>!0TAP>o-Z)c3+5^B2 z(DFuEpN?c*;kqVgART79z#f_*fG)Adh!;3c+WOhkmD%eiUTwAS4E#z;z@=WI8RegZ)M*y`v>8JP|F@z*@Y1s@#?T84G2(^D}4M2WziP9s#b=|$r_ z&wS$RD$9jq(2z7GVosq&VTiUD?1~S|d&Bqy5p-VatAwtyw_MG~3TU&WRNX5r*BFro zy(IO4(l>%8#sgezcgA8NujTJ@e92Xvj=slc*Dl*U#)RdTBRl0YoNd^uwMdm-GZn!J=vR*QPWkEX!hm}c5wP(G801flghSXz z8O_gGzdX6x!Gnvp-0MH=DwW12vG#r4&iXUNWeiRHppq%rmitlc&5ujT-}jN&%uY(b z*!(3eDypg?y$#z9(;0mZk9(C<;Dn)udpkc97LR-HP!#gv zq!j9bv)?+B#UAmz%5`V&=JgIAZ$m28Ay3}yf?Ak{7N@h#T&dk{roQ_L6_>pVg*x1A zc`sxl2*~nVaw}uSNXV|5nnZ3^V32o19 zc{fVyFV|jNhs*wB&&2eA8F-?cgK-!Fjmb%0S+fbU%e!qMxd;tqnA>i0P8d-B>1fvw zA-1(8x?u%6jnplk{ASie$5un&mvcHneP1h7u43u5Yc4si3U&Syk6*V*!N`ZHpfjIH zSqZ}ZoEhv3prt$ELndJ7iCyt1m85q9h9OmL-Dg9!f`&e6f}Cc_ZQ#0u(+|UnAP{Itv4rc!_^}MvL19F@aSO;gqxelNTj3+YGSuYDP2M#L* zMSD~&$p>v8E&9;mzTTW2OaR%(*B@);&d{g8w_D(wcWjCgWyE?_wM z!eYrS3$a2LW!^G6^0?cOS2HY}ZQT>fdzy4o6B!R){3X>F!@$y|<6wdK%9 z7XLu0=lZ2X8*iRWQc;k6)n*;V*O4Dvv+ZiGKY6WPRS!Lzn$GjcaU{^`1+zQRqLcKuig&78Jdtgj4A0zn1TzaeIP=;F6#y<;C9E;SzJGHpIe+S+)u<_rG=qYf~8p(#MPl$Hu%Jx*&v zu8p{ruaZ;doNVho*SX1Y^!C{g!9=pb9#j&6h{qKRp(=$TE^tpR&Ns5YUvKW}5~+Fx zN-Eu`2E&R`uabT!bU(!X(Q>b%6||pC@iH*3OX?EfsYW!=6AM}kD%6ryBuyPW{N$?w z{SlFNZE@wj?xTn<}iDywB+LqC;0X1neK@>y}OwB z`_2W1=taQwh(H2CxP;RqC8&jaZ93DXF0s=;#_RIr=?2{(=4M`cS^7eSatKG%7&@CO zdZ$>Na39BShSatvHG`685q$rK0;HwGA&tgm0fr@T051*Lj{D%gKiDGU1%OCXo}C%_ zlR=&XC@8u6-Pc>h10<(#8$=wIIhXy_ck zrO)S!MgBN}z;RwrT^32qKmE+gyewe!Y8!*>f1Kb1fUjAM@5cTa2JZ{Na^dF!TqFKC zK{yzP!Tt{Sf1vWQn}EG4uqc%ONru(II0PQqOaC#e|L-cEP$~K6!U6jL0ETtdV%+|K zz&Brlar}GP{=N$@Xp8UP%l7x;<^6ZH{riyq^blLN{{f@xDQ*A& literal 83999 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 z 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 Lu6{1-oD!M {